From 01ecc269c7c968fa07159fdc5c69b84bc1118f98 Mon Sep 17 00:00:00 2001 From: Marc Doerflinger Date: Fri, 2 Jun 2023 07:21:33 +0000 Subject: [PATCH 01/29] add package.json --- docs/package.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/package.json diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 00000000..e69de29b From fabd05ed1f4dd607e3d2c048d0a87af0521a8f02 Mon Sep 17 00:00:00 2001 From: lydiamussenbrock Date: Fri, 2 Jun 2023 07:51:23 +0000 Subject: [PATCH 02/29] Edit Docu --- contracts/modules/AccessController.sol | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/contracts/modules/AccessController.sol b/contracts/modules/AccessController.sol index 9dbd8d8b..efa31c6b 100644 --- a/contracts/modules/AccessController.sol +++ b/contracts/modules/AccessController.sol @@ -8,6 +8,10 @@ import "@etherisc/gif-interface/contracts/modules/IAccess.sol"; import "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +/** +blub blub +*/ + contract AccessController is IAccess, From 65b9037a6e58c8821ecb4c6b93cf084806cad174 Mon Sep 17 00:00:00 2001 From: lydiamussenbrock Date: Mon, 5 Jun 2023 14:18:22 +0000 Subject: [PATCH 03/29] Documentation of smart contracts --- contracts/modules/AccessController.sol | 33 +++++++++++++++++- contracts/modules/BundleController.sol | 27 +++++++++++++++ contracts/modules/ComponentController.sol | 35 +++++++++++++++++++ contracts/modules/LicenseController.sol | 17 +++++++++ contracts/modules/PolicyController.sol | 42 +++++++++++++++++++++++ contracts/modules/PoolController.sol | 27 +++++++++++++++ contracts/modules/QueryModule.sol | 26 ++++++++++++++ contracts/modules/RegistryController.sol | 35 +++++++++++++++++++ contracts/modules/TreasuryModule.sol | 33 ++++++++++++++++++ 9 files changed, 274 insertions(+), 1 deletion(-) diff --git a/contracts/modules/AccessController.sol b/contracts/modules/AccessController.sol index efa31c6b..392d2018 100644 --- a/contracts/modules/AccessController.sol +++ b/contracts/modules/AccessController.sol @@ -9,7 +9,38 @@ import "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; /** -blub blub +The provided smart contract is called "AccessController" and is written in Solidity. It implements the "IAccess" interface and inherits from the "CoreController" contract and the "AccessControlEnumerable" contract. The contract provides functionalities for access control and role management. + +Roles: +The contract defines three role identifiers as bytes32 constants: +1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. +2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. +3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. + +State Variables: +- `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. +- `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. + +Functions: +- `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. +- `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. +- `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. +- `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract. +- `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract. +- `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract. +- `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping. +- `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping. +- `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role. +- `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE. +- `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE. +- `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE. +- `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. +- `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. + +Modifiers: +- `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. + +Overall, the contract provides a flexible access control mechanism by defining roles and allowing the assignment, revocation, and validation of roles by instance operators. It also sets a default admin role and manages the validity of roles through the `validRole` mapping. */ diff --git a/contracts/modules/BundleController.sol b/contracts/modules/BundleController.sol index 917a001e..f78ab251 100644 --- a/contracts/modules/BundleController.sol +++ b/contracts/modules/BundleController.sol @@ -9,6 +9,33 @@ import "@etherisc/gif-interface/contracts/components/IProduct.sol"; import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; import "./PoolController.sol"; +/** +The smart contract is used to manage bundles, which are collections of policies. + +- The contract imports other Solidity contracts such as `PolicyController.sol`, `CoreController.sol`, and `BundleToken.sol`. +- The contract implements the `IBundle` interface and extends the `CoreController` contract. +- It defines several mappings to store information about bundles, active policies, locked capital per policy, and the number of unburt bundles for each risk pool. +- There is a private variable `_bundleCount` to keep track of the number of bundles created. +- The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`. + +Functions: +- `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment. +- `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token. +- `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance. +- `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle. +- `lock()`: Locks a bundle of assets by changing its state to "Locked." +- `unlock()`: Unlocks a bundle, changing its state back to "Active." +- `close()`: Closes a bundle of policies. +- `burn()`: Burns a bundle, changing its state to "Burned." +- `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. +- `processPremium()`: Processes the premium payment for a given bundle and updates its balance. +- `processPayout()`: Processes a payout for a policy from a bundle. +- `releasePolicy()`: Releases a policy and updates the bundle's capital. + +The contract includes various modifiers and event emitters to enforce access control and emit relevant events. +Overall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle. + */ + contract BundleController is IBundle, diff --git a/contracts/modules/ComponentController.sol b/contracts/modules/ComponentController.sol index fa8552cb..b9564be8 100644 --- a/contracts/modules/ComponentController.sol +++ b/contracts/modules/ComponentController.sol @@ -9,6 +9,41 @@ import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; import "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol"; import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; +/** +The smart contract provides functionality to manage and control components in a system. +The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. +It also includes modifiers to restrict access to certain functions based on the caller's role. + +Functions: +- `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. +- `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. +- `exists()`: Checks if a component with the given ID exists in the system. +- `approve()`: Approves a component with the given ID, changing its state to "Active" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping. +- `decline()`: Changes the state of a component with the given ID to "Declined" and emits an event. It also calls the `declineCallback` function of the component. +- `suspend()`: Suspends a component with the given ID by changing its state to "Suspended" and emitting an event. It also calls the `suspendCallback` function of the component. +- `resume()`: Resumes a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `resumeCallback` function of the component. +- `pause()`: Pauses a component with the given ID by changing its state to "Paused" and emitting an event. It also calls the `pauseCallback` function of the component. +- `unpause()`: Unpauses a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `unpauseCallback` function of the component. +- `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. +- `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. +- `getComponent()`: Retrieves the component with the given ID. +- `getComponentId()`: Retrieves the ID of a registered component given its address. +- `getComponentType()`: Retrieves the component type of a given component ID. +- `getComponentState()`: Retrieves the state of the component with the given ID. +- `getOracleId()`: Retrieves the oracle ID at the specified index. +- `getRiskpoolId()`: Retrieves the risk pool ID at the specified index. +- `getProductId()`: Retrieves the product ID at the specified index. +- `getRequiredRole()`: Retrieves the required role for a given component type. +- `components()`: Returns the number of components currently stored in the contract. +- `products()`: Returns the number of products in the `_products` set. +- `oracles()`: Returns the number of oracles registered in the `_oracles` set. +- `riskpools()`: Returns the number of risk pools in the set. + +The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. + +The contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations. + */ + contract ComponentController is IComponentEvents, CoreController diff --git a/contracts/modules/LicenseController.sol b/contracts/modules/LicenseController.sol index 6516325c..ef12bf7e 100644 --- a/contracts/modules/LicenseController.sol +++ b/contracts/modules/LicenseController.sol @@ -8,6 +8,23 @@ import "@etherisc/gif-interface/contracts/components/IComponent.sol"; import "@etherisc/gif-interface/contracts/components/IProduct.sol"; import "@etherisc/gif-interface/contracts/modules/ILicense.sol"; +/** +The smart contract serves as a controller contract for managing licenses related to products in an insurance ecosystem. +The contract implements the `ILicense` interface and extends the `CoreController` contract. + +The contract imports two other contracts: `ComponentController.sol` and `CoreController.sol`, which are expected to be located in specific file paths. +It also imports several interfaces from the "etherisc/gif-interface" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`. +The contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract. + +Functions: +- `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract. +- `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function. +- `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`. +- `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`. + +Overall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem. + */ + contract LicenseController is ILicense, diff --git a/contracts/modules/PolicyController.sol b/contracts/modules/PolicyController.sol index f8e1c28d..c8952f5e 100644 --- a/contracts/modules/PolicyController.sol +++ b/contracts/modules/PolicyController.sol @@ -5,6 +5,48 @@ import "../shared/CoreController.sol"; import "./ComponentController.sol"; import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; +/** +The smart contract implements functions for policy operations, including creation, update, cancellation, and retrieval. +It also provides functions for claim creation, confirmation, decline, closure, and payout creation. +Additionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy. +The contract inherits from the `IPolicy` interface and the `CoreController` contract. + +1. State Variables: +- `metadata`: A mapping that stores metadata associated with policy flows. +- `applications`: A mapping that stores insurance applications associated with policy flows. +- `policies`: A mapping that stores policies associated with policy flows. +- `claims`: A nested mapping that stores claims associated with policies. +- `payouts`: A nested mapping that stores payouts associated with policies. +- `payoutCount`: A mapping that stores the count of payouts for each policy flow. +- `_assigendProcessIds`: A counter variable for assigning unique process IDs. +- `_component`: A reference to the `ComponentController` contract. + +2. Functions: +- `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization. +- `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data. +- `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data. +- `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount. +- `revokeApplication()`: Revokes an application for a policy flow. +- `underwriteApplication()`: Changes the state of an application to "Underwritten". +- `declineApplication()`: Declines an application for a policy flow. +- `createPolicy()`: Creates a new policy for a given application process ID. +- `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application. +- `expirePolicy()`: Expires a policy with the given process ID. +- `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims. +- `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event. +- `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event. +- `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event. +- `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event. +- `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event. +- `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event. +- `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists. +- `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists. +- `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function. +- `getNumberOfPayouts()`: Returns the number of payouts for a given process ID. + +Overall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract. + */ + contract PolicyController is IPolicy, CoreController diff --git a/contracts/modules/PoolController.sol b/contracts/modules/PoolController.sol index ec45911a..3f01f412 100644 --- a/contracts/modules/PoolController.sol +++ b/contracts/modules/PoolController.sol @@ -13,6 +13,33 @@ import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; +/** +The smart contract manages riskpools, their registration, funding, defunding, collateralization, and other related operations. + +- The contract implements the IPool interface and extends the CoreController contract. +- It imports other contracts such as ComponentController, PolicyController, BundleController, and CoreController. +- It uses the EnumerableSet library from OpenZeppelin for managing sets of bundle IDs. +- The contract defines constants for full collateralization level, collateralization level cap, and default maximum number of active bundles. +- It maintains mappings to store riskpool information, riskpool IDs for products, maximum number of active bundles for riskpools, and active bundle IDs for riskpools. +- The contract has a private array to store riskpool IDs. +- It has references to other contracts: ComponentController, PolicyController, and BundleController. +- The contract defines modifiers for access control to specific functions. + +Functions: +- `_afterInitialize()`: Called after contract initialization to set addresses of other contracts. +- `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration. +- `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID. +- `fund()`: Adds funds to a specific riskpool. +- `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount. +- `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure. +- `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount. +- `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract. +- `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout. +- `release()`: Releases a policy's collateral from the riskpool. + +Overall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations. + */ + contract PoolController is IPool, CoreController diff --git a/contracts/modules/QueryModule.sol b/contracts/modules/QueryModule.sol index ae21ac4b..baeaf87a 100644 --- a/contracts/modules/QueryModule.sol +++ b/contracts/modules/QueryModule.sol @@ -9,6 +9,32 @@ import "@etherisc/gif-interface/contracts/components/IOracle.sol"; import "@etherisc/gif-interface/contracts/modules/IQuery.sol"; import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; +/** +The smart contract implements the "IQuery" interface and extends the "CoreController" contract. +The contract imports several external contracts from the "etherisc/gif-interface" repository, including "IComponent.sol", "IOracle.sol", "IQuery.sol", and "IInstanceService.sol". +It also imports two local contracts, "ComponentController.sol" and "CoreController.sol". + +The contract defines a private variable `_component` of type "ComponentController" and an array `_oracleRequests` of type "OracleRequest[]". + +The contract includes two modifiers: +1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the "OracleService" contract address stored in the CoreController. +2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`. + +The contract provides the following functions: +- `_afterInitialize()`: Sets the `_component` variable to the address of the "ComponentController" contract. It is called after contract initialization and only during the initialization phase. +- `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the "Query" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event. +- `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the "OracleService" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event. +- `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the "Query" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event. +- `getProcessId()`: Returns the process ID associated with a given `requestId`. +- `getOracleRequestCount()`: Returns the number of oracle requests made. +- `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component. + +The contract emits the following events: +1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID. +2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status. +3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID. + */ + contract QueryModule is IQuery, diff --git a/contracts/modules/RegistryController.sol b/contracts/modules/RegistryController.sol index 46a55303..edb0b0c4 100644 --- a/contracts/modules/RegistryController.sol +++ b/contracts/modules/RegistryController.sol @@ -9,6 +9,41 @@ import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; import "@openzeppelin/contracts/utils/Strings.sol"; import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; +/** +The smart contract implements the `IRegistry` interface and inherits from the `CoreController` contract. +The contract provides functionality for registering, deregistering, and accessing contracts within different releases. It maintains mappings and sets to store contract names and addresses in different releases. + +- `MAX_CONTRACTS`: A constant variable set to 100, representing the maximum number of contracts allowed in a release. +- `release`: A bytes32 variable representing the current release identifier. +- `startBlock`: An unsigned integer storing the block number at which the contract was deployed. +- `_contracts`: A nested mapping that stores contract addresses based on the release and contract name. +- `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release. +- `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release. + +Functions: +- `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs. +- `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release. +- `getRelease()`: Returns the current release identifier. +- `getContract()`: Returns the address of a contract by its name in the current release. +- `register()`: Registers a contract with a given name and address in the current release. +- `deregister()`: Deregisters a contract from the current release. +- `getContractInRelease()`: Returns the address of a specific contract within a given release. +- `registerInRelease()`: Registers a contract in a specific release. +- `deregisterInRelease()`: Deregisters a contract name from a specific release. +- `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one. +- `contracts()`: Returns the number of contracts in the current release. +- `contractName()`: Returns the name of the contract at the specified index in the contractNames set. + +Internal functions: +- `_getContractInRelease()`: Returns the address of a contract in a specific release. +- `_registerInRelease()`: Registers a contract in a release. +- `_deregisterInRelease()`: Deregisters a contract in a specific release. + +The contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered. + +Overall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts. + */ + contract RegistryController is IRegistry, diff --git a/contracts/modules/TreasuryModule.sol b/contracts/modules/TreasuryModule.sol index 74943089..c71f9210 100644 --- a/contracts/modules/TreasuryModule.sol +++ b/contracts/modules/TreasuryModule.sol @@ -17,6 +17,39 @@ import "@openzeppelin/contracts/security/Pausable.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/utils/Strings.sol"; +/** +The smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts. +The contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the "etherisc/gif-interface" and "openzeppelin/contracts" libraries. + +The contract defines several state variables, including: +- FRACTION_FULL_UNIT: a constant representing the full unit value (10^18). +- FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%). +- event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation. +- event LogTransferHelperInputValidation2Failed: an event that logs a failed input validation. +- event LogTransferHelperCallFailed: an event that logs a failed external call. +- _instanceWalletAddress: a private variable representing the address of the instance wallet. +- _riskpoolWallet: a mapping of riskpool IDs to wallet addresses. +- _fees: a mapping of component IDs to FeeSpecification structs. +- _componentToken: a mapping of product IDs/riskpool IDs to ERC20 token addresses. +- _bundle: an instance of the BundleController contract. +- _component: an instance of the ComponentController contract. +- _policy: an instance of the PolicyController contract. +- _pool: an instance of the PoolController contract. + +The contract includes several modifiers that enforce certain conditions on function execution, such as the instanceWalletDefined modifier, which requires the instance wallet address to be defined; +the riskpoolWalletDefinedForProcess modifier, which requires the riskpool wallet address to be defined for a given process ID; +the riskpoolWalletDefinedForBundle modifier, which requires the riskpool wallet address to be defined for a given bundle ID; +the whenNotSuspended modifier, which requires the contract to not be paused; and the onlyRiskpoolService modifier, which restricts access to the RiskpoolService contract. + +The contract contains various functions for managing the treasury, such as setting the product token address, setting the instance wallet address, setting the riskpool wallet address, creating fee specifications, and setting premium and capital fees for components. +There are also functions for suspending and resuming the treasury contract. + +The contract includes a function to calculate the fee amount and net amount for a given component ID and amount. +It also includes functions to process premium payments for policies, either for the remaining premium amount or for a specific amount. + +Overall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system. + */ + contract TreasuryModule is ITreasury, CoreController, From 77adc63938075d4fb38c1b364233cb6d6f679765 Mon Sep 17 00:00:00 2001 From: lydiamussenbrock Date: Wed, 7 Jun 2023 15:40:24 +0000 Subject: [PATCH 04/29] First push of docs --- .../src/v0.8/Chainlink.sol/Chainlink.dbg.json | 4 + .../src/v0.8/Chainlink.sol/Chainlink.json | 10 + .../ChainlinkClient.dbg.json | 4 + .../ChainlinkClient.sol/ChainlinkClient.json | 50 + .../ChainlinkRequestInterface.dbg.json | 4 + .../ChainlinkRequestInterface.json | 87 + .../ENSInterface.sol/ENSInterface.dbg.json | 4 + .../ENSInterface.sol/ENSInterface.json | 227 + .../LinkTokenInterface.dbg.json | 4 + .../LinkTokenInterface.json | 254 + .../OperatorInterface.dbg.json | 4 + .../OperatorInterface.json | 354 + .../OracleInterface.dbg.json | 4 + .../OracleInterface.sol/OracleInterface.json | 105 + .../PointerInterface.dbg.json | 4 + .../PointerInterface.json | 24 + .../BufferChainlink.dbg.json | 4 + .../BufferChainlink.sol/BufferChainlink.json | 10 + .../CBORChainlink.sol/CBORChainlink.dbg.json | 4 + .../CBORChainlink.sol/CBORChainlink.json | 10 + .../ENSResolver.sol/ENSResolver.dbg.json | 4 + .../vendor/ENSResolver.sol/ENSResolver.json | 30 + .../BasicRiskpool.sol/BasicRiskpool.dbg.json | 4 + .../BasicRiskpool.sol/BasicRiskpool.json | 1252 +++ .../Component.sol/Component.dbg.json | 4 + .../components/Component.sol/Component.json | 427 + .../IComponent.sol/IComponent.dbg.json | 4 + .../components/IComponent.sol/IComponent.json | 228 + .../components/IOracle.sol/IOracle.dbg.json | 4 + .../components/IOracle.sol/IOracle.json | 311 + .../components/IProduct.sol/IProduct.dbg.json | 4 + .../components/IProduct.sol/IProduct.json | 371 + .../IRiskpool.sol/IRiskpool.dbg.json | 4 + .../components/IRiskpool.sol/IRiskpool.json | 977 +++ .../components/Oracle.sol/Oracle.dbg.json | 4 + .../components/Oracle.sol/Oracle.json | 510 ++ .../components/Product.sol/Product.dbg.json | 4 + .../components/Product.sol/Product.json | 570 ++ .../components/Riskpool.sol/Riskpool.dbg.json | 4 + .../components/Riskpool.sol/Riskpool.json | 1202 +++ .../modules/IAccess.sol/IAccess.dbg.json | 4 + .../modules/IAccess.sol/IAccess.json | 167 + .../modules/IBundle.sol/IBundle.dbg.json | 4 + .../modules/IBundle.sol/IBundle.json | 437 + .../IComponentEvents.dbg.json | 4 + .../IComponentEvents.json | 158 + .../modules/ILicense.sol/ILicense.dbg.json | 4 + .../modules/ILicense.sol/ILicense.json | 40 + .../modules/IPolicy.sol/IPolicy.dbg.json | 4 + .../modules/IPolicy.sol/IPolicy.json | 712 ++ .../modules/IPool.sol/IPool.dbg.json | 4 + .../contracts/modules/IPool.sol/IPool.json | 267 + .../modules/IQuery.sol/IQuery.dbg.json | 4 + .../contracts/modules/IQuery.sol/IQuery.json | 155 + .../modules/IRegistry.sol/IRegistry.dbg.json | 4 + .../modules/IRegistry.sol/IRegistry.json | 271 + .../modules/ITreasury.sol/ITreasury.dbg.json | 4 + .../modules/ITreasury.sol/ITreasury.json | 819 ++ .../IComponentOwnerService.dbg.json | 4 + .../IComponentOwnerService.json | 89 + .../IInstanceOperatorService.dbg.json | 4 + .../IInstanceOperatorService.json | 478 + .../IInstanceService.dbg.json | 4 + .../IInstanceService.json | 1140 +++ .../IOracleService.dbg.json | 4 + .../IOracleService.sol/IOracleService.json | 29 + .../IProductService.dbg.json | 4 + .../IProductService.sol/IProductService.json | 381 + .../IRiskpoolService.dbg.json | 4 + .../IRiskpoolService.json | 279 + .../shared/ICoreProxy.sol/ICoreProxy.dbg.json | 4 + .../shared/ICoreProxy.sol/ICoreProxy.json | 30 + .../IBundleToken.sol/IBundleToken.dbg.json | 4 + .../tokens/IBundleToken.sol/IBundleToken.json | 410 + .../AccessControl.sol/AccessControl.dbg.json | 4 + .../AccessControl.sol/AccessControl.json | 215 + .../AccessControlEnumerable.dbg.json | 4 + .../AccessControlEnumerable.json | 258 + .../IAccessControl.dbg.json | 4 + .../IAccessControl.sol/IAccessControl.json | 183 + .../IAccessControlEnumerable.dbg.json | 4 + .../IAccessControlEnumerable.json | 226 + .../access/Ownable.sol/Ownable.dbg.json | 4 + .../contracts/access/Ownable.sol/Ownable.json | 63 + .../IERC1822Proxiable.dbg.json | 4 + .../draft-IERC1822.sol/IERC1822Proxiable.json | 24 + .../ERC1967Proxy.sol/ERC1967Proxy.dbg.json | 4 + .../ERC1967Proxy.sol/ERC1967Proxy.json | 80 + .../ERC1967Upgrade.dbg.json | 4 + .../ERC1967Upgrade.sol/ERC1967Upgrade.json | 56 + .../contracts/proxy/Proxy.sol/Proxy.dbg.json | 4 + .../contracts/proxy/Proxy.sol/Proxy.json | 19 + .../proxy/beacon/IBeacon.sol/IBeacon.dbg.json | 4 + .../proxy/beacon/IBeacon.sol/IBeacon.json | 24 + .../Initializable.sol/Initializable.dbg.json | 4 + .../Initializable.sol/Initializable.json | 24 + .../security/Pausable.sol/Pausable.dbg.json | 4 + .../security/Pausable.sol/Pausable.json | 50 + .../token/ERC20/ERC20.sol/ERC20.dbg.json | 4 + .../token/ERC20/ERC20.sol/ERC20.json | 297 + .../token/ERC20/IERC20.sol/IERC20.dbg.json | 4 + .../token/ERC20/IERC20.sol/IERC20.json | 194 + .../IERC20Metadata.dbg.json | 4 + .../IERC20Metadata.sol/IERC20Metadata.json | 233 + .../IERC20Permit.dbg.json | 4 + .../draft-IERC20Permit.sol/IERC20Permit.json | 86 + .../utils/SafeERC20.sol/SafeERC20.dbg.json | 4 + .../ERC20/utils/SafeERC20.sol/SafeERC20.json | 10 + .../token/ERC721/ERC721.sol/ERC721.dbg.json | 4 + .../token/ERC721/ERC721.sol/ERC721.json | 357 + .../token/ERC721/IERC721.sol/IERC721.dbg.json | 4 + .../token/ERC721/IERC721.sol/IERC721.json | 296 + .../IERC721Receiver.dbg.json | 4 + .../IERC721Receiver.sol/IERC721Receiver.json | 45 + .../IERC721Metadata.dbg.json | 4 + .../IERC721Metadata.sol/IERC721Metadata.json | 341 + .../utils/Address.sol/Address.dbg.json | 4 + .../contracts/utils/Address.sol/Address.json | 10 + .../utils/Context.sol/Context.dbg.json | 4 + .../contracts/utils/Context.sol/Context.json | 10 + .../StorageSlot.sol/StorageSlot.dbg.json | 4 + .../utils/StorageSlot.sol/StorageSlot.json | 10 + .../utils/Strings.sol/Strings.dbg.json | 4 + .../contracts/utils/Strings.sol/Strings.json | 10 + .../introspection/ERC165.sol/ERC165.dbg.json | 4 + .../introspection/ERC165.sol/ERC165.json | 30 + .../IERC165.sol/IERC165.dbg.json | 4 + .../introspection/IERC165.sol/IERC165.json | 30 + .../EnumerableSet.sol/EnumerableSet.dbg.json | 4 + .../EnumerableSet.sol/EnumerableSet.json | 10 + .../599ab32d9f05fdb89405f0e2d60efa8c.json | 1 + .../Migrations.sol/Migrations.dbg.json | 4 + .../contracts/Migrations.sol/Migrations.json | 68 + .../AyiiOracle.sol/AyiiOracle.dbg.json | 4 + .../examples/AyiiOracle.sol/AyiiOracle.json | 844 ++ .../AyiiProduct.sol/AyiiProduct.dbg.json | 4 + .../examples/AyiiProduct.sol/AyiiProduct.json | 1972 +++++ .../AyiiRiskpool.sol/AyiiRiskpool.dbg.json | 4 + .../AyiiRiskpool.sol/AyiiRiskpool.json | 1526 ++++ .../ChainlinkOperator.dbg.json | 4 + .../ChainlinkOperator.json | 328 + .../ChainlinkToken.dbg.json | 4 + .../ChainlinkToken.sol/ChainlinkToken.json | 326 + .../ERC677Receiver.dbg.json | 4 + .../ChainlinkToken.sol/ERC677Receiver.json | 34 + .../examples/strings.sol/strings.dbg.json | 4 + .../examples/strings.sol/strings.json | 10 + .../PolicyDefaultFlow.dbg.json | 4 + .../PolicyDefaultFlow.json | 509 ++ .../AccessController.dbg.json | 4 + .../AccessController.json | 433 + .../BundleController.dbg.json | 4 + .../BundleController.json | 693 ++ .../ComponentController.dbg.json | 4 + .../ComponentController.json | 600 ++ .../LicenseController.dbg.json | 4 + .../LicenseController.json | 66 + .../PolicyController.dbg.json | 4 + .../PolicyController.json | 1333 +++ .../PoolController.dbg.json | 4 + .../PoolController.sol/PoolController.json | 629 ++ .../QueryModule.sol/QueryModule.dbg.json | 4 + .../modules/QueryModule.sol/QueryModule.json | 213 + .../RegistryController.dbg.json | 4 + .../RegistryController.json | 392 + .../TreasuryModule.dbg.json | 4 + .../TreasuryModule.sol/TreasuryModule.json | 1022 +++ .../ComponentOwnerService.dbg.json | 4 + .../ComponentOwnerService.json | 115 + .../InstanceOperatorService.dbg.json | 4 + .../InstanceOperatorService.json | 556 ++ .../InstanceService.dbg.json | 4 + .../InstanceService.sol/InstanceService.json | 1366 +++ .../OracleService.sol/OracleService.dbg.json | 4 + .../OracleService.sol/OracleService.json | 55 + .../ProductService.dbg.json | 4 + .../ProductService.sol/ProductService.json | 71 + .../RiskpoolService.dbg.json | 4 + .../RiskpoolService.sol/RiskpoolService.json | 318 + .../CoreController.dbg.json | 4 + .../CoreController.sol/CoreController.json | 42 + .../shared/CoreProxy.sol/CoreProxy.dbg.json | 4 + .../shared/CoreProxy.sol/CoreProxy.json | 130 + .../TransferHelper.dbg.json | 4 + .../TransferHelper.sol/TransferHelper.json | 80 + .../WithRegistry.sol/WithRegistry.dbg.json | 4 + .../shared/WithRegistry.sol/WithRegistry.json | 54 + .../test/TestCoin.sol/TestCoin.dbg.json | 4 + .../contracts/test/TestCoin.sol/TestCoin.json | 325 + .../test/TestCoin.sol/TestCoinX.dbg.json | 4 + .../test/TestCoin.sol/TestCoinX.json | 325 + ...TestCoinAlternativeImplementation.dbg.json | 4 + .../TestCoinAlternativeImplementation.json | 325 + .../TestCompromisedProduct.dbg.json | 4 + .../TestCompromisedProduct.json | 545 ++ .../test/TestOracle.sol/TestOracle.dbg.json | 4 + .../test/TestOracle.sol/TestOracle.json | 544 ++ .../test/TestProduct.sol/TestProduct.dbg.json | 4 + .../test/TestProduct.sol/TestProduct.json | 1246 +++ ...TestRegistryCompromisedController.dbg.json | 4 + .../TestRegistryCompromisedController.json | 93 + .../TestRegistryControllerUpdated.dbg.json | 4 + .../TestRegistryControllerUpdated.json | 431 + .../TestRiskpool.sol/TestRiskpool.dbg.json | 4 + .../test/TestRiskpool.sol/TestRiskpool.json | 1296 +++ .../TestTransferFrom.dbg.json | 4 + .../TestTransferFrom.json | 114 + .../BundleToken.sol/BundleToken.dbg.json | 4 + .../tokens/BundleToken.sol/BundleToken.json | 620 ++ .../RiskpoolToken.sol/RiskpoolToken.dbg.json | 4 + .../RiskpoolToken.sol/RiskpoolToken.json | 312 + cache/solidity-files-cache.json | 3950 +++++++++ docs/antora.yml | 6 + docs/config.js | 22 + docs/modules/ROOT/nav.adoc | 21 + docs/modules/ROOT/pages/index.adoc | 73 + docs/modules/api/nav.adoc | 7 + docs/modules/api/pages/flows.adoc | 299 + docs/modules/api/pages/modules.adoc | 2229 +++++ docs/modules/api/pages/services.adoc | 1352 +++ docs/modules/api/pages/shared.adoc | 345 + docs/modules/api/pages/test.adoc | 1419 +++ docs/modules/api/pages/tokens.adoc | 277 + docs/package.json | 0 docs/templates/contract.hbs | 93 + docs/templates/helpers.js | 47 + docs/templates/page.hbs | 4 + docs/templates/properties.js | 81 + hardhat.config.js | 19 + package-lock.json | 7731 ++++++++++++++++- package.json | 3 +- 231 files changed, 54401 insertions(+), 21 deletions(-) create mode 100644 artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.dbg.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.dbg.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.dbg.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.dbg.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.dbg.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.dbg.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.dbg.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.dbg.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.dbg.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.dbg.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.dbg.json create mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.dbg.json create mode 100644 artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.json create mode 100644 artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json create mode 100644 artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.json create mode 100644 artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json create mode 100644 artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.json create mode 100644 artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json create mode 100644 artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json create mode 100644 artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json create mode 100644 artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json create mode 100644 artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json create mode 100644 artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json create mode 100644 artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json create mode 100644 artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json create mode 100644 artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json create mode 100644 artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json create mode 100644 artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json create mode 100644 artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json create mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json create mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json create mode 100644 artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json create mode 100644 artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json create mode 100644 artifacts/build-info/599ab32d9f05fdb89405f0e2d60efa8c.json create mode 100644 artifacts/contracts/Migrations.sol/Migrations.dbg.json create mode 100644 artifacts/contracts/Migrations.sol/Migrations.json create mode 100644 artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.dbg.json create mode 100644 artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.json create mode 100644 artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.dbg.json create mode 100644 artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.json create mode 100644 artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.dbg.json create mode 100644 artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.json create mode 100644 artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.dbg.json create mode 100644 artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.json create mode 100644 artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.dbg.json create mode 100644 artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.json create mode 100644 artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.dbg.json create mode 100644 artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.json create mode 100644 artifacts/contracts/examples/strings.sol/strings.dbg.json create mode 100644 artifacts/contracts/examples/strings.sol/strings.json create mode 100644 artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.dbg.json create mode 100644 artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.json create mode 100644 artifacts/contracts/modules/AccessController.sol/AccessController.dbg.json create mode 100644 artifacts/contracts/modules/AccessController.sol/AccessController.json create mode 100644 artifacts/contracts/modules/BundleController.sol/BundleController.dbg.json create mode 100644 artifacts/contracts/modules/BundleController.sol/BundleController.json create mode 100644 artifacts/contracts/modules/ComponentController.sol/ComponentController.dbg.json create mode 100644 artifacts/contracts/modules/ComponentController.sol/ComponentController.json create mode 100644 artifacts/contracts/modules/LicenseController.sol/LicenseController.dbg.json create mode 100644 artifacts/contracts/modules/LicenseController.sol/LicenseController.json create mode 100644 artifacts/contracts/modules/PolicyController.sol/PolicyController.dbg.json create mode 100644 artifacts/contracts/modules/PolicyController.sol/PolicyController.json create mode 100644 artifacts/contracts/modules/PoolController.sol/PoolController.dbg.json create mode 100644 artifacts/contracts/modules/PoolController.sol/PoolController.json create mode 100644 artifacts/contracts/modules/QueryModule.sol/QueryModule.dbg.json create mode 100644 artifacts/contracts/modules/QueryModule.sol/QueryModule.json create mode 100644 artifacts/contracts/modules/RegistryController.sol/RegistryController.dbg.json create mode 100644 artifacts/contracts/modules/RegistryController.sol/RegistryController.json create mode 100644 artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.dbg.json create mode 100644 artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.json create mode 100644 artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.dbg.json create mode 100644 artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.json create mode 100644 artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.dbg.json create mode 100644 artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.json create mode 100644 artifacts/contracts/services/InstanceService.sol/InstanceService.dbg.json create mode 100644 artifacts/contracts/services/InstanceService.sol/InstanceService.json create mode 100644 artifacts/contracts/services/OracleService.sol/OracleService.dbg.json create mode 100644 artifacts/contracts/services/OracleService.sol/OracleService.json create mode 100644 artifacts/contracts/services/ProductService.sol/ProductService.dbg.json create mode 100644 artifacts/contracts/services/ProductService.sol/ProductService.json create mode 100644 artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.dbg.json create mode 100644 artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.json create mode 100644 artifacts/contracts/shared/CoreController.sol/CoreController.dbg.json create mode 100644 artifacts/contracts/shared/CoreController.sol/CoreController.json create mode 100644 artifacts/contracts/shared/CoreProxy.sol/CoreProxy.dbg.json create mode 100644 artifacts/contracts/shared/CoreProxy.sol/CoreProxy.json create mode 100644 artifacts/contracts/shared/TransferHelper.sol/TransferHelper.dbg.json create mode 100644 artifacts/contracts/shared/TransferHelper.sol/TransferHelper.json create mode 100644 artifacts/contracts/shared/WithRegistry.sol/WithRegistry.dbg.json create mode 100644 artifacts/contracts/shared/WithRegistry.sol/WithRegistry.json create mode 100644 artifacts/contracts/test/TestCoin.sol/TestCoin.dbg.json create mode 100644 artifacts/contracts/test/TestCoin.sol/TestCoin.json create mode 100644 artifacts/contracts/test/TestCoin.sol/TestCoinX.dbg.json create mode 100644 artifacts/contracts/test/TestCoin.sol/TestCoinX.json create mode 100644 artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.dbg.json create mode 100644 artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.json create mode 100644 artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.dbg.json create mode 100644 artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.json create mode 100644 artifacts/contracts/test/TestOracle.sol/TestOracle.dbg.json create mode 100644 artifacts/contracts/test/TestOracle.sol/TestOracle.json create mode 100644 artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json create mode 100644 artifacts/contracts/test/TestProduct.sol/TestProduct.json create mode 100644 artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.dbg.json create mode 100644 artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.json create mode 100644 artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.dbg.json create mode 100644 artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.json create mode 100644 artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.dbg.json create mode 100644 artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.json create mode 100644 artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.dbg.json create mode 100644 artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.json create mode 100644 artifacts/contracts/tokens/BundleToken.sol/BundleToken.dbg.json create mode 100644 artifacts/contracts/tokens/BundleToken.sol/BundleToken.json create mode 100644 artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.dbg.json create mode 100644 artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.json create mode 100644 cache/solidity-files-cache.json create mode 100644 docs/antora.yml create mode 100644 docs/config.js create mode 100644 docs/modules/ROOT/nav.adoc create mode 100644 docs/modules/ROOT/pages/index.adoc create mode 100644 docs/modules/api/nav.adoc create mode 100644 docs/modules/api/pages/flows.adoc create mode 100644 docs/modules/api/pages/modules.adoc create mode 100644 docs/modules/api/pages/services.adoc create mode 100644 docs/modules/api/pages/shared.adoc create mode 100644 docs/modules/api/pages/test.adoc create mode 100644 docs/modules/api/pages/tokens.adoc delete mode 100644 docs/package.json create mode 100644 docs/templates/contract.hbs create mode 100644 docs/templates/helpers.js create mode 100644 docs/templates/page.hbs create mode 100644 docs/templates/properties.js create mode 100644 hardhat.config.js diff --git a/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.json b/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.json new file mode 100644 index 00000000..7d009103 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Chainlink", + "sourceName": "@chainlink/contracts/src/v0.8/Chainlink.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f21ad28c31b9d80a1984a2000941e273e3b3b71fe3fcff419a8ea3c0893efa8164736f6c63430008020033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f21ad28c31b9d80a1984a2000941e273e3b3b71fe3fcff419a8ea3c0893efa8164736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.json b/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.json new file mode 100644 index 00000000..9a01882e --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.json @@ -0,0 +1,50 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ChainlinkClient", + "sourceName": "@chainlink/contracts/src/v0.8/ChainlinkClient.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "ChainlinkCancelled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "ChainlinkFulfilled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "ChainlinkRequested", + "type": "event" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.json new file mode 100644 index 00000000..fb34c695 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.json @@ -0,0 +1,87 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ChainlinkRequestInterface", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "bytes4", + "name": "callbackFunctionId", + "type": "bytes4" + }, + { + "internalType": "uint256", + "name": "expiration", + "type": "uint256" + } + ], + "name": "cancelOracleRequest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "requestPrice", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "serviceAgreementID", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callbackAddress", + "type": "address" + }, + { + "internalType": "bytes4", + "name": "callbackFunctionId", + "type": "bytes4" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "dataVersion", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "oracleRequest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.json new file mode 100644 index 00000000..3add3c2c --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.json @@ -0,0 +1,227 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ENSInterface", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "label", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "NewOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "resolver", + "type": "address" + } + ], + "name": "NewResolver", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "ttl", + "type": "uint64" + } + ], + "name": "NewTTL", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "resolver", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "setOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "resolver", + "type": "address" + } + ], + "name": "setResolver", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "label", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "setSubnodeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + }, + { + "internalType": "uint64", + "name": "ttl", + "type": "uint64" + } + ], + "name": "setTTL", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "ttl", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.json new file mode 100644 index 00000000..20eb8e3c --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.json @@ -0,0 +1,254 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "LinkTokenInterface", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "remaining", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "decimalPlaces", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "decreaseApproval", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "increaseApproval", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "tokenName", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "tokenSymbol", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "totalTokensIssued", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "transferAndCall", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.json new file mode 100644 index 00000000..8480fd94 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.json @@ -0,0 +1,354 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "OperatorInterface", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "bytes4", + "name": "callbackFunctionId", + "type": "bytes4" + }, + { + "internalType": "uint256", + "name": "expiration", + "type": "uint256" + } + ], + "name": "cancelOracleRequest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable[]", + "name": "receivers", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "amounts", + "type": "uint256[]" + } + ], + "name": "distributeFunds", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "address", + "name": "callbackAddress", + "type": "address" + }, + { + "internalType": "bytes4", + "name": "callbackFunctionId", + "type": "bytes4" + }, + { + "internalType": "uint256", + "name": "expiration", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "data", + "type": "bytes32" + } + ], + "name": "fulfillOracleRequest", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "address", + "name": "callbackAddress", + "type": "address" + }, + { + "internalType": "bytes4", + "name": "callbackFunctionId", + "type": "bytes4" + }, + { + "internalType": "uint256", + "name": "expiration", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "fulfillOracleRequest2", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getAuthorizedSenders", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getForwarder", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "node", + "type": "address" + } + ], + "name": "isAuthorizedSender", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "specId", + "type": "bytes32" + }, + { + "internalType": "bytes4", + "name": "callbackFunctionId", + "type": "bytes4" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "dataVersion", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "operatorRequest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "requestPrice", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "serviceAgreementID", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callbackAddress", + "type": "address" + }, + { + "internalType": "bytes4", + "name": "callbackFunctionId", + "type": "bytes4" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "dataVersion", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "oracleRequest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "ownerTransferAndCall", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "senders", + "type": "address[]" + } + ], + "name": "setAuthorizedSenders", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.json new file mode 100644 index 00000000..3a32f82d --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.json @@ -0,0 +1,105 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "OracleInterface", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "address", + "name": "callbackAddress", + "type": "address" + }, + { + "internalType": "bytes4", + "name": "callbackFunctionId", + "type": "bytes4" + }, + { + "internalType": "uint256", + "name": "expiration", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "data", + "type": "bytes32" + } + ], + "name": "fulfillOracleRequest", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "node", + "type": "address" + } + ], + "name": "isAuthorizedSender", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawable", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.json new file mode 100644 index 00000000..6f6d6604 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.json @@ -0,0 +1,24 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PointerInterface", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol", + "abi": [ + { + "inputs": [], + "name": "getAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.json new file mode 100644 index 00000000..dd3f6555 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "BufferChainlink", + "sourceName": "@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b90e44a5e48e43208418560358cef9c2b18e25770097989023282478f541b8d64736f6c63430008020033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b90e44a5e48e43208418560358cef9c2b18e25770097989023282478f541b8d64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.json new file mode 100644 index 00000000..eacbfa8f --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "CBORChainlink", + "sourceName": "@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0cc11b5be072f7d7cbc8fdc042eb6f7ea573a98370f597573bece0637c51ec564736f6c63430008020033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0cc11b5be072f7d7cbc8fdc042eb6f7ea573a98370f597573bece0637c51ec564736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.json new file mode 100644 index 00000000..039147c2 --- /dev/null +++ b/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ENSResolver", + "sourceName": "@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "node", + "type": "bytes32" + } + ], + "name": "addr", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.json b/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.json new file mode 100644 index 00000000..bc02c18b --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.json @@ -0,0 +1,1252 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "BasicRiskpool", + "sourceName": "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "activeBundles", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "LogBasicRiskpoolBundlesAndPolicies", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "maxAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "LogBasicRiskpoolCandidateBundleAmountCheck", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolBundleCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isMatching", + "type": "bool" + } + ], + "name": "LogRiskpoolBundleMatchesPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isSecured", + "type": "bool" + } + ], + "name": "LogRiskpoolCollateralLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "LogRiskpoolCollateralReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "riskpoolAddress", + "type": "address" + } + ], + "name": "LogRiskpoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolPayoutProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolPremiumProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_FILTER_DATA_STRUCTURE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FULL_COLLATERALIZATION_LEVEL", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "activeBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "bundle", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum IPolicy.ApplicationState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Application", + "name": "application", + "type": "tuple" + } + ], + "name": "bundleMatchesApplication", + "outputs": [ + { + "internalType": "bool", + "name": "isMatching", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "bundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "burnBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "closeBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "collateralizePolicy", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "initialAmount", + "type": "uint256" + } + ], + "name": "createBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "defundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "fundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getActiveBundleId", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getBundle", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCapacity", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getErc20Token", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFilterDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getFullCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMaximumNumberOfActiveBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSumOfSumInsuredCap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalValueLocked", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getWallet", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "lockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPolicyPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPolicyPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "releasePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "name": "setMaximumNumberOfActiveBundles", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "unlockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.json b/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.json new file mode 100644 index 00000000..326bbbda --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.json @@ -0,0 +1,427 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Component", + "sourceName": "@etherisc/gif-interface/contracts/components/Component.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.json b/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.json new file mode 100644 index 00000000..1d0bd67f --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.json @@ -0,0 +1,228 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IComponent", + "sourceName": "@etherisc/gif-interface/contracts/components/IComponent.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.json b/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.json new file mode 100644 index 00000000..18fcfdc3 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.json @@ -0,0 +1,311 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IOracle", + "sourceName": "@etherisc/gif-interface/contracts/components/IOracle.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oracleAddress", + "type": "address" + } + ], + "name": "LogOracleCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleProposed", + "type": "event" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "cancel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "input", + "type": "bytes" + } + ], + "name": "request", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.json b/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.json new file mode 100644 index 00000000..defd7cef --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.json @@ -0,0 +1,371 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IProduct", + "sourceName": "@etherisc/gif-interface/contracts/components/IProduct.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "productAddress", + "type": "address" + } + ], + "name": "LogProductCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductProposed", + "type": "event" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getApplicationDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getClaimDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPayoutDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPolicyFlow", + "outputs": [ + { + "internalType": "address", + "name": "policyFlow", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRiskpoolId", + "outputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "riskPoolCapacityCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.json b/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.json new file mode 100644 index 00000000..55be82d3 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.json @@ -0,0 +1,977 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IRiskpool", + "sourceName": "@etherisc/gif-interface/contracts/components/IRiskpool.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolBundleCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isMatching", + "type": "bool" + } + ], + "name": "LogRiskpoolBundleMatchesPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isSecured", + "type": "bool" + } + ], + "name": "LogRiskpoolCollateralLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "LogRiskpoolCollateralReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "riskpoolAddress", + "type": "address" + } + ], + "name": "LogRiskpoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolPayoutProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolPremiumProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolProposed", + "type": "event" + }, + { + "inputs": [], + "name": "activeBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "bundle", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum IPolicy.ApplicationState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Application", + "name": "application", + "type": "tuple" + } + ], + "name": "bundleMatchesApplication", + "outputs": [ + { + "internalType": "bool", + "name": "isMatching", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "bundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "burnBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "closeBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "collateralizePolicy", + "outputs": [ + { + "internalType": "bool", + "name": "isSecured", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "initialAmount", + "type": "uint256" + } + ], + "name": "createBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "defundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "fundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getActiveBundleId", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getBundle", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCapacity", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getErc20Token", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFilterDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFullCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMaximumNumberOfActiveBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSumOfSumInsuredCap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalValueLocked", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getWallet", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "lockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPolicyPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPolicyPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "releasePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "name": "setMaximumNumberOfActiveBundles", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "unlockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.json b/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.json new file mode 100644 index 00000000..057e9b36 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.json @@ -0,0 +1,510 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Oracle", + "sourceName": "@etherisc/gif-interface/contracts/components/Oracle.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oracleAddress", + "type": "address" + } + ], + "name": "LogOracleCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "cancel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "input", + "type": "bytes" + } + ], + "name": "request", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.json b/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.json new file mode 100644 index 00000000..7c6a3d2c --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.json @@ -0,0 +1,570 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Product", + "sourceName": "@etherisc/gif-interface/contracts/components/Product.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "productAddress", + "type": "address" + } + ], + "name": "LogProductCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getApplicationDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getClaimDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPayoutDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPolicyFlow", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRiskpoolId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "riskPoolCapacityCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.json b/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.json new file mode 100644 index 00000000..33874590 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.json @@ -0,0 +1,1202 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Riskpool", + "sourceName": "@etherisc/gif-interface/contracts/components/Riskpool.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolBundleCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isMatching", + "type": "bool" + } + ], + "name": "LogRiskpoolBundleMatchesPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isSecured", + "type": "bool" + } + ], + "name": "LogRiskpoolCollateralLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "LogRiskpoolCollateralReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "riskpoolAddress", + "type": "address" + } + ], + "name": "LogRiskpoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolPayoutProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolPremiumProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_FILTER_DATA_STRUCTURE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FULL_COLLATERALIZATION_LEVEL", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "activeBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "bundle", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum IPolicy.ApplicationState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Application", + "name": "application", + "type": "tuple" + } + ], + "name": "bundleMatchesApplication", + "outputs": [ + { + "internalType": "bool", + "name": "isMatching", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "bundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "burnBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "closeBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "collateralizePolicy", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "initialAmount", + "type": "uint256" + } + ], + "name": "createBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "defundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "fundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getActiveBundleId", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getBundle", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCapacity", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getErc20Token", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFilterDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getFullCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMaximumNumberOfActiveBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSumOfSumInsuredCap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalValueLocked", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getWallet", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "lockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPolicyPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPolicyPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "releasePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "name": "setMaximumNumberOfActiveBundles", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "unlockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.json b/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.json new file mode 100644 index 00000000..892f447e --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.json @@ -0,0 +1,167 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IAccess", + "sourceName": "@etherisc/gif-interface/contracts/modules/IAccess.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "addRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getDefaultAdminRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOracleProviderRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getProductOwnerRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRiskpoolKeeperRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "invalidateRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.json b/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.json new file mode 100644 index 00000000..94d1efbb --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.json @@ -0,0 +1,437 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IBundle", + "sourceName": "@etherisc/gif-interface/contracts/modules/IBundle.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "LogBundleCapitalProvided", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "LogBundleCapitalWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogBundleCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogBundlePayoutProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "LogBundlePolicyCollateralized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "LogBundlePolicyReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IBundle.BundleState", + "name": "oldState", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IBundle.BundleState", + "name": "newState", + "type": "uint8" + } + ], + "name": "LogBundleStateChanged", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "close", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "collateralizePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "riskpoolId_", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "filter_", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "amount_", + "type": "uint256" + } + ], + "name": "create", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "defund", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "fund", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "lock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "releasePolicy", + "outputs": [ + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "unlock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.json b/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.json new file mode 100644 index 00000000..83e56a27 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.json @@ -0,0 +1,158 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IComponentEvents", + "sourceName": "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.json b/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.json new file mode 100644 index 00000000..43ab10c6 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.json @@ -0,0 +1,40 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ILicense", + "sourceName": "@etherisc/gif-interface/contracts/modules/ILicense.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + } + ], + "name": "getAuthorizationStatus", + "outputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isAuthorized", + "type": "bool" + }, + { + "internalType": "address", + "name": "policyFlow", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.json b/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.json new file mode 100644 index 00000000..60e1a892 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.json @@ -0,0 +1,712 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IPolicy", + "sourceName": "@etherisc/gif-interface/contracts/modules/IPolicy.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "LogApplicationCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogApplicationDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumAmountOld", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + } + ], + "name": "LogApplicationPremiumAdjusted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogApplicationRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumInsuredAmountOld", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "LogApplicationSumInsuredAdjusted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogApplicationUnderwritten", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "LogClaimClosed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "confirmedAmount", + "type": "uint256" + } + ], + "name": "LogClaimConfirmed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "LogClaimCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "LogClaimDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IPolicy.PolicyFlowState", + "name": "state", + "type": "uint8" + } + ], + "name": "LogMetadataCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IPolicy.PolicyFlowState", + "name": "state", + "type": "uint8" + } + ], + "name": "LogMetadataStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogPayoutCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "LogPayoutProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogPolicyClosed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogPolicyCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogPolicyExpired", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumExpectedAmountOld", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumExpectedAmount", + "type": "uint256" + } + ], + "name": "LogPolicyPremiumAdjusted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogPremiumCollected", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "expectedPremiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "adjustPremiumSumInsured", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "closeClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "closePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "collectPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "confirmedAmount", + "type": "uint256" + } + ], + "name": "confirmClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "createApplication", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "createClaim", + "outputs": [ + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "createPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "createPolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "createPolicyFlow", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "declineApplication", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "declineClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "expirePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "revokeApplication", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "underwriteApplication", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.json b/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.json new file mode 100644 index 00000000..3c1a3eaa --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.json @@ -0,0 +1,267 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IPool", + "sourceName": "@etherisc/gif-interface/contracts/modules/IPool.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolCollateralReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolCollateralizationFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolCollateralizationSucceeded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "wallet", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "erc20Token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralizationLevel", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumOfSumInsuredCap", + "type": "uint256" + } + ], + "name": "LogRiskpoolRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumInsured", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "name": "LogRiskpoolRequiredCollateral", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "wallet", + "type": "address" + }, + { + "internalType": "address", + "name": "erc20Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralizationLevel", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumOfSumInsuredCap", + "type": "uint256" + } + ], + "name": "registerRiskpool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "release", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "setRiskpoolForProduct", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "underwrite", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.json b/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.json new file mode 100644 index 00000000..4faf4172 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.json @@ -0,0 +1,155 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IQuery", + "sourceName": "@etherisc/gif-interface/contracts/modules/IQuery.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "LogOracleCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "responsibleOracleId", + "type": "uint256" + } + ], + "name": "LogOracleRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "responder", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "name": "LogOracleResponded", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "cancel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "input", + "type": "bytes" + }, + { + "internalType": "string", + "name": "callbackMethodName", + "type": "string" + }, + { + "internalType": "address", + "name": "callbackContractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "responsibleOracleId", + "type": "uint256" + } + ], + "name": "request", + "outputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "responder", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "respond", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.json b/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.json new file mode 100644 index 00000000..3e11e848 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.json @@ -0,0 +1,271 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IRegistry", + "sourceName": "@etherisc/gif-interface/contracts/modules/IRegistry.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "release", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + } + ], + "name": "LogContractDeregistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "release", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isNew", + "type": "bool" + } + ], + "name": "LogContractRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "release", + "type": "bytes32" + } + ], + "name": "LogReleasePrepared", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "contractName", + "outputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "contracts", + "outputs": [ + { + "internalType": "uint256", + "name": "_numberOfContracts", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "deregister", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "deregisterInRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "ensureSender", + "outputs": [ + { + "internalType": "bool", + "name": "_senderMatches", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "getContract", + "outputs": [ + { + "internalType": "address", + "name": "_contractAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "getContractInRelease", + "outputs": [ + { + "internalType": "address", + "name": "_contractAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRelease", + "outputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_newRelease", + "type": "bytes32" + } + ], + "name": "prepareRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_contractAddress", + "type": "address" + } + ], + "name": "register", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_contractAddress", + "type": "address" + } + ], + "name": "registerInRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.json b/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.json new file mode 100644 index 00000000..8d0d469b --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.json @@ -0,0 +1,819 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ITreasury", + "sourceName": "@etherisc/gif-interface/contracts/modules/ITreasury.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + } + ], + "name": "LogTreasuryCapitalFeesSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryCapitalProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryCapitalTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "instanceWalletAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryFeesTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "walletAddress", + "type": "address" + } + ], + "name": "LogTreasuryInstanceWalletSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryPayoutProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryPayoutTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + } + ], + "name": "LogTreasuryPremiumFeesSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryPremiumProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryPremiumTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "erc20Address", + "type": "address" + } + ], + "name": "LogTreasuryProductTokenSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "LogTreasuryResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "walletAddress", + "type": "address" + } + ], + "name": "LogTreasuryRiskpoolWalletSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "LogTreasurySuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryWithdrawalProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryWithdrawalTransferred", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + } + ], + "name": "createFeeSpecification", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "feeSpec", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getComponentToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getFeeSpecification", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "feeSpecification", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFractionFullUnit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInstanceWallet", + "outputs": [ + { + "internalType": "address", + "name": "instanceWalletAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getRiskpoolWallet", + "outputs": [ + { + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "capitalAmount", + "type": "uint256" + } + ], + "name": "processCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netCapitalAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPayoutAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPremium", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPremiumAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "processPremium", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPremiumAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processWithdrawal", + "outputs": [ + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "feeSpec", + "type": "tuple" + } + ], + "name": "setCapitalFees", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "instanceWalletAddress", + "type": "address" + } + ], + "name": "setInstanceWallet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "feeSpec", + "type": "tuple" + } + ], + "name": "setPremiumFees", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "erc20Address", + "type": "address" + } + ], + "name": "setProductToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + } + ], + "name": "setRiskpoolWallet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.json b/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.json new file mode 100644 index 00000000..9d13e670 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.json @@ -0,0 +1,89 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IComponentOwnerService", + "sourceName": "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "archive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IComponent", + "name": "component", + "type": "address" + } + ], + "name": "propose", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "stake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.json b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.json new file mode 100644 index 00000000..a9bd2a9b --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.json @@ -0,0 +1,478 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IInstanceOperatorService", + "sourceName": "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "adjustStakingRequirements", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "archive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + } + ], + "name": "createFeeSpecification", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "createRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "decline", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + } + ], + "name": "deregister", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + } + ], + "name": "deregisterInRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "invalidateRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "newRelease", + "type": "bytes32" + } + ], + "name": "prepareRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + } + ], + "name": "register", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + } + ], + "name": "registerInRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "resume", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "feeSpec", + "type": "tuple" + } + ], + "name": "setCapitalFees", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "componentType", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "setDefaultStaking", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "walletAddress", + "type": "address" + } + ], + "name": "setInstanceWallet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "feeSpec", + "type": "tuple" + } + ], + "name": "setPremiumFees", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "erc20Address", + "type": "address" + } + ], + "name": "setProductToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "walletAddress", + "type": "address" + } + ], + "name": "setRiskpoolWallet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "suspend", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.json b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.json new file mode 100644 index 00000000..ca369446 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.json @@ -0,0 +1,1140 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IInstanceService", + "sourceName": "@etherisc/gif-interface/contracts/services/IInstanceService.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "activeBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfActiveBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "bundles", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "claims", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfClaims", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "contractName", + "outputs": [ + { + "internalType": "bytes32", + "name": "name", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "contracts", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfContracts", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bundleIdx", + "type": "uint256" + } + ], + "name": "getActiveBundleId", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "getApplication", + "outputs": [ + { + "components": [ + { + "internalType": "enum IPolicy.ApplicationState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Application", + "name": "application", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "balanceAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "getBundle", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "bundle", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBundleToken", + "outputs": [ + { + "internalType": "contract IBundleToken", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getCapacity", + "outputs": [ + { + "internalType": "uint256", + "name": "capacityAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "capitalAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getChainId", + "outputs": [ + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getChainName", + "outputs": [ + { + "internalType": "string", + "name": "chainName", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "getClaim", + "outputs": [ + { + "components": [ + { + "internalType": "enum IPolicy.ClaimState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "paidAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Claim", + "name": "claim", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getComponent", + "outputs": [ + { + "internalType": "contract IComponent", + "name": "component", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "componentAddress", + "type": "address" + } + ], + "name": "getComponentId", + "outputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getComponentOwnerService", + "outputs": [ + { + "internalType": "contract IComponentOwnerService", + "name": "service", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getComponentState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "componentState", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getComponentToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getComponentType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDefaultAdminRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFeeFractionFullUnit", + "outputs": [ + { + "internalType": "uint256", + "name": "fullUnit", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFullCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInstanceId", + "outputs": [ + { + "internalType": "bytes32", + "name": "instanceId", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInstanceOperator", + "outputs": [ + { + "internalType": "address", + "name": "instanceOperator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInstanceOperatorService", + "outputs": [ + { + "internalType": "contract IInstanceOperatorService", + "name": "service", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInstanceWallet", + "outputs": [ + { + "internalType": "address", + "name": "walletAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getMaximumNumberOfActiveBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "getMetadata", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "enum IPolicy.PolicyFlowState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Metadata", + "name": "metadata", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOracleProviderRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOracleService", + "outputs": [ + { + "internalType": "contract IOracleService", + "name": "service", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "getPayout", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "enum IPolicy.PayoutState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Payout", + "name": "payout", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "getPolicy", + "outputs": [ + { + "components": [ + { + "internalType": "enum IPolicy.PolicyState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumExpectedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premiumPaidAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "openClaimsCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutMaxAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Policy", + "name": "policy", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getProductOwnerRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getProductService", + "outputs": [ + { + "internalType": "contract IProductService", + "name": "service", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getRiskpool", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "wallet", + "type": "address" + }, + { + "internalType": "address", + "name": "erc20Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralizationLevel", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumOfSumInsuredCap", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumOfSumInsuredAtRisk", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPool.Pool", + "name": "riskPool", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRiskpoolKeeperRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRiskpoolService", + "outputs": [ + { + "internalType": "contract IRiskpoolService", + "name": "service", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getRiskpoolWallet", + "outputs": [ + { + "internalType": "address", + "name": "walletAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getStakedAssets", + "outputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getStakingRequirements", + "outputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getTotalValueLocked", + "outputs": [ + { + "internalType": "uint256", + "name": "totalValueLockedAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTreasuryAddress", + "outputs": [ + { + "internalType": "address", + "name": "treasuryAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "roleIsAssigned", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "oracles", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfOracles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "payouts", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfPayouts", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "processIds", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfProcessIds", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "products", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfProducts", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "riskpools", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfRiskpools", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "unburntBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfUnburntBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.json b/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.json new file mode 100644 index 00000000..f873c318 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.json @@ -0,0 +1,29 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IOracleService", + "sourceName": "@etherisc/gif-interface/contracts/services/IOracleService.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "respond", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.json b/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.json new file mode 100644 index 00000000..2b9d1f7d --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.json @@ -0,0 +1,381 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IProductService", + "sourceName": "@etherisc/gif-interface/contracts/services/IProductService.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "expectedPremiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "adjustPremiumSumInsured", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "cancelRequest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "close", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "closeClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "collectPremium", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPremiumAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "confirmedAmount", + "type": "uint256" + } + ], + "name": "confirmClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "decline", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "declineClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "expire", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "metaData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "applicationData", + "type": "bytes" + } + ], + "name": "newApplication", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "newClaim", + "outputs": [ + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "newPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPayoutAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "string", + "name": "callbackMethodName", + "type": "string" + }, + { + "internalType": "address", + "name": "callbackContractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "responsibleOracleId", + "type": "uint256" + } + ], + "name": "request", + "outputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "revoke", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "underwrite", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.json b/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.json new file mode 100644 index 00000000..d7606db3 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.json @@ -0,0 +1,279 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IRiskpoolService", + "sourceName": "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "burnBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "closeBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "collateralizePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner_", + "type": "address" + }, + { + "internalType": "bytes", + "name": "filter_", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "amount_", + "type": "uint256" + } + ], + "name": "createBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "defundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "fundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "lockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "wallet", + "type": "address" + }, + { + "internalType": "address", + "name": "erc20Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralization", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumOfSumInsuredCap", + "type": "uint256" + } + ], + "name": "registerRiskpool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "releasePolicy", + "outputs": [ + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxNumberOfActiveBundles", + "type": "uint256" + } + ], + "name": "setMaximumNumberOfActiveBundles", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "unlockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.dbg.json b/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.json b/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.json new file mode 100644 index 00000000..f2ccef85 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ICoreProxy", + "sourceName": "@etherisc/gif-interface/contracts/shared/ICoreProxy.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldImplementation", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newImplemntation", + "type": "address" + } + ], + "name": "LogCoreContractUpgraded", + "type": "event" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.dbg.json b/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.json b/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.json new file mode 100644 index 00000000..2e182b87 --- /dev/null +++ b/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.json @@ -0,0 +1,410 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IBundleToken", + "sourceName": "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "LogBundleTokenBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenOwner", + "type": "address" + } + ], + "name": "LogBundleTokenMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burned", + "outputs": [ + { + "internalType": "bool", + "name": "isBurned", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "exists", + "outputs": [ + { + "internalType": "bool", + "name": "doesExist", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getBundleId", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenCount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json b/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json b/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json new file mode 100644 index 00000000..17181da3 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json @@ -0,0 +1,215 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AccessControl", + "sourceName": "@openzeppelin/contracts/access/AccessControl.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.dbg.json b/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.json b/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.json new file mode 100644 index 00000000..480660e3 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.json @@ -0,0 +1,258 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AccessControlEnumerable", + "sourceName": "@openzeppelin/contracts/access/AccessControlEnumerable.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json b/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json b/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json new file mode 100644 index 00000000..0e26587c --- /dev/null +++ b/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json @@ -0,0 +1,183 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IAccessControl", + "sourceName": "@openzeppelin/contracts/access/IAccessControl.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.dbg.json b/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.json b/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.json new file mode 100644 index 00000000..4d09b9f3 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.json @@ -0,0 +1,226 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IAccessControlEnumerable", + "sourceName": "@openzeppelin/contracts/access/IAccessControlEnumerable.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json b/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json b/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json new file mode 100644 index 00000000..33254f2e --- /dev/null +++ b/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json @@ -0,0 +1,63 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Ownable", + "sourceName": "@openzeppelin/contracts/access/Ownable.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json new file mode 100644 index 00000000..e9576bf3 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json @@ -0,0 +1,24 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC1822Proxiable", + "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC1822.sol", + "abi": [ + { + "inputs": [], + "name": "proxiableUUID", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json new file mode 100644 index 00000000..1d0a3335 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json @@ -0,0 +1,80 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC1967Proxy", + "sourceName": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "bytecode": "0x608060405260405161071c38038061071c833981016040819052610022916102d2565b61002e82826000610035565b505061042c565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d083836040518060600160405280602781526020016106f5602791396101a9565b9392505050565b6100ea8161028760201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61029660201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606001600160a01b0384163b6102115760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610148565b600080856001600160a01b03168560405161022c919061039b565b600060405180830381855af49150503d8060008114610267576040519150601f19603f3d011682016040523d82523d6000602084013e61026c565b606091505b50909250905061027d828286610299565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a85750816100d0565b8251156102b85782518084602001fd5b8160405162461bcd60e51b815260040161014891906103b7565b600080604083850312156102e4578182fd5b82516001600160a01b03811681146102fa578283fd5b60208401519092506001600160401b0380821115610316578283fd5b818501915085601f830112610329578283fd5b81518181111561033b5761033b610416565b604051601f8201601f19908116603f0116810190838211818310171561036357610363610416565b8160405282815288602084870101111561037b578586fd5b61038c8360208301602088016103ea565b80955050505050509250929050565b600082516103ad8184602087016103ea565b9190910192915050565b60006020825282518060208401526103d68160408501602087016103ea565b601f01601f19169190910160400192915050565b60005b838110156104055781810151838201526020016103ed565b838111156100645750506000910152565b634e487b7160e01b600052604160045260246000fd5b6102ba8061043b6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b600060208252825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122055fbdb05f8012342ff5abfb4313f870083fb64d5b287fdd8f992499369cccd7764736f6c63430008020033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "deployedBytecode": "0x60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b600060208252825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122055fbdb05f8012342ff5abfb4313f870083fb64d5b287fdd8f992499369cccd7764736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json new file mode 100644 index 00000000..11a1efea --- /dev/null +++ b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json @@ -0,0 +1,56 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC1967Upgrade", + "sourceName": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json b/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json b/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json new file mode 100644 index 00000000..89b7ade9 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json @@ -0,0 +1,19 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Proxy", + "sourceName": "@openzeppelin/contracts/proxy/Proxy.sol", + "abi": [ + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json b/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json b/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json new file mode 100644 index 00000000..9ff0f137 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json @@ -0,0 +1,24 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IBeacon", + "sourceName": "@openzeppelin/contracts/proxy/beacon/IBeacon.sol", + "abi": [ + { + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json b/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json b/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json new file mode 100644 index 00000000..8d7c499d --- /dev/null +++ b/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json @@ -0,0 +1,24 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Initializable", + "sourceName": "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json b/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.json b/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.json new file mode 100644 index 00000000..c930cfec --- /dev/null +++ b/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.json @@ -0,0 +1,50 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Pausable", + "sourceName": "@openzeppelin/contracts/security/Pausable.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json b/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json new file mode 100644 index 00000000..6a90f49a --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json @@ -0,0 +1,297 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC20", + "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000b0e38038062000b0e8339810160408190526200003491620001c1565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b6002810460018216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610883806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b4114610149578063a457c2d714610151578063a9059cbb14610164578063dd62ed3e14610177576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b661018a565b6040516100c3919061079b565b60405180910390f35b6100df6100da366004610772565b61021c565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610737565b610234565b604051601281526020016100c3565b6100df610131366004610772565b610258565b6100f36101443660046106e4565b61027a565b6100b6610299565b6100df61015f366004610772565b6102a8565b6100df610172366004610772565b610328565b6100f3610185366004610705565b610336565b60606003805461019990610812565b80601f01602080910402602001604051908101604052809291908181526020018280546101c590610812565b80156102125780601f106101e757610100808354040283529160200191610212565b820191906000526020600020905b8154815290600101906020018083116101f557829003601f168201915b5050505050905090565b60003361022a818585610361565b5060019392505050565b600033610242858285610485565b61024d8585856104ff565b506001949350505050565b60003361022a81858561026b8383610336565b61027591906107ee565b610361565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461019990610812565b600033816102b68286610336565b90508381101561031b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61024d8286868403610361565b60003361022a8185856104ff565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103c35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610312565b6001600160a01b0382166104245760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610312565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104918484610336565b905060001981146104f957818110156104ec5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610312565b6104f98484848403610361565b50505050565b6001600160a01b0383166105635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610312565b6001600160a01b0382166105c55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610312565b6001600160a01b0383166000908152602081905260409020548181101561063d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610312565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106749084906107ee565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c091815260200190565b60405180910390a36104f9565b80356001600160a01b038116811461029457600080fd5b6000602082840312156106f5578081fd5b6106fe826106cd565b9392505050565b60008060408385031215610717578081fd5b610720836106cd565b915061072e602084016106cd565b90509250929050565b60008060006060848603121561074b578081fd5b610754846106cd565b9250610762602085016106cd565b9150604084013590509250925092565b60008060408385031215610784578182fd5b61078d836106cd565b946020939093013593505050565b6000602080835283518082850152825b818110156107c7578581018301518582016040015282016107ab565b818111156107d85783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561080d57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061082657607f821691505b6020821081141561084757634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122002edc58f2c0158e1ceaba74717f5f4f309ad6aaf007f846f016f8485f4f0fc4b64736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b4114610149578063a457c2d714610151578063a9059cbb14610164578063dd62ed3e14610177576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b661018a565b6040516100c3919061079b565b60405180910390f35b6100df6100da366004610772565b61021c565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610737565b610234565b604051601281526020016100c3565b6100df610131366004610772565b610258565b6100f36101443660046106e4565b61027a565b6100b6610299565b6100df61015f366004610772565b6102a8565b6100df610172366004610772565b610328565b6100f3610185366004610705565b610336565b60606003805461019990610812565b80601f01602080910402602001604051908101604052809291908181526020018280546101c590610812565b80156102125780601f106101e757610100808354040283529160200191610212565b820191906000526020600020905b8154815290600101906020018083116101f557829003601f168201915b5050505050905090565b60003361022a818585610361565b5060019392505050565b600033610242858285610485565b61024d8585856104ff565b506001949350505050565b60003361022a81858561026b8383610336565b61027591906107ee565b610361565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461019990610812565b600033816102b68286610336565b90508381101561031b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61024d8286868403610361565b60003361022a8185856104ff565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103c35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610312565b6001600160a01b0382166104245760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610312565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104918484610336565b905060001981146104f957818110156104ec5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610312565b6104f98484848403610361565b50505050565b6001600160a01b0383166105635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610312565b6001600160a01b0382166105c55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610312565b6001600160a01b0383166000908152602081905260409020548181101561063d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610312565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106749084906107ee565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c091815260200190565b60405180910390a36104f9565b80356001600160a01b038116811461029457600080fd5b6000602082840312156106f5578081fd5b6106fe826106cd565b9392505050565b60008060408385031215610717578081fd5b610720836106cd565b915061072e602084016106cd565b90509250929050565b60008060006060848603121561074b578081fd5b610754846106cd565b9250610762602085016106cd565b9150604084013590509250925092565b60008060408385031215610784578182fd5b61078d836106cd565b946020939093013593505050565b6000602080835283518082850152825b818110156107c7578581018301518582016040015282016107ab565b818111156107d85783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561080d57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061082657607f821691505b6020821081141561084757634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122002edc58f2c0158e1ceaba74717f5f4f309ad6aaf007f846f016f8485f4f0fc4b64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json b/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json new file mode 100644 index 00000000..76b073c0 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json @@ -0,0 +1,194 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC20", + "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json new file mode 100644 index 00000000..0436b925 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json @@ -0,0 +1,233 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC20Metadata", + "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json new file mode 100644 index 00000000..483a3e1a --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json @@ -0,0 +1,86 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC20Permit", + "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", + "abi": [ + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "v", + "type": "uint8" + }, + { + "internalType": "bytes32", + "name": "r", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "permit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json b/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json new file mode 100644 index 00000000..13704c2f --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SafeERC20", + "sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f2265fee8809f20a3a7d891c578673c85c3f0b5665433b90b90fcc918d4e46b764736f6c63430008020033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f2265fee8809f20a3a7d891c578673c85c3f0b5665433b90b90fcc918d4e46b764736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json b/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json new file mode 100644 index 00000000..622e2bd0 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json @@ -0,0 +1,357 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC721", + "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b50604051620013c4380380620013c48339810160408190526200003491620001c1565b81516200004990600090602085019062000068565b5080516200005f90600190602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b6002810460018216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b611139806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610e37565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190610f1f565b61012461011f366004610e6f565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610e0e565b610335565b005b61014f61015f366004610cc4565b610450565b61014f610172366004610cc4565b610481565b610124610185366004610e6f565b61049c565b61019d610198366004610c78565b6104fc565b6040519081526020016100f3565b610104610582565b61014f6101c1366004610dd4565b610591565b61014f6101d4366004610cff565b6105a0565b6101046101e7366004610e6f565b6105d8565b6100e76101fa366004610c92565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606000805461028b90611041565b80601f01602080910402602001604051908101604052809291908181526020018280546102b790611041565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b60006103198261064c565b506000908152600460205260409020546001600160a01b031690565b60006103408261049c565b9050806001600160a01b0316836001600160a01b031614156103b35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103cf57506103cf81336101fa565b6104415760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016103aa565b61044b83836106ae565b505050565b61045a338261071c565b6104765760405162461bcd60e51b81526004016103aa90610f84565b61044b83838361079b565b61044b838383604051806020016040528060008152506105a0565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b60006001600160a01b0382166105665760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103aa565b506001600160a01b031660009081526003602052604090205490565b60606001805461028b90611041565b61059c338383610937565b5050565b6105aa338361071c565b6105c65760405162461bcd60e51b81526004016103aa90610f84565b6105d284848484610a06565b50505050565b60606105e38261064c565b60006105fa60408051602081019091526000815290565b9050600081511161061a5760405180602001604052806000815250610645565b8061062484610a39565b604051602001610635929190610eb3565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166106ab5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e38261049c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806107288361049c565b9050806001600160a01b0316846001600160a01b0316148061076f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107935750836001600160a01b03166107888461030e565b6001600160a01b0316145b949350505050565b826001600160a01b03166107ae8261049c565b6001600160a01b0316146108125760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103aa565b6001600160a01b0382166108745760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103aa565b61087f6000826106ae565b6001600160a01b03831660009081526003602052604081208054600192906108a8908490610ffe565b90915550506001600160a01b03821660009081526003602052604081208054600192906108d6908490610fd2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a461044b565b816001600160a01b0316836001600160a01b031614156109995760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103aa565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a1184848461079b565b610a1d84848484610b54565b6105d25760405162461bcd60e51b81526004016103aa90610f32565b606081610a5e57506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610a885780610a728161107c565b9150610a819050600a83610fea565b9150610a62565b60008167ffffffffffffffff811115610ab157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610adb576020820181803683370190505b5090505b841561079357610af0600183610ffe565b9150610afd600a86611097565b610b08906030610fd2565b60f81b818381518110610b2b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610b4d600a86610fea565b9450610adf565b60006001600160a01b0384163b15610c5657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b98903390899088908890600401610ee2565b602060405180830381600087803b158015610bb257600080fd5b505af1925050508015610be2575060408051601f3d908101601f19168201909252610bdf91810190610e53565b60015b610c3c573d808015610c10576040519150601f19603f3d011682016040523d82523d6000602084013e610c15565b606091505b508051610c345760405162461bcd60e51b81526004016103aa90610f32565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610793565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610c89578081fd5b61064582610c61565b60008060408385031215610ca4578081fd5b610cad83610c61565b9150610cbb60208401610c61565b90509250929050565b600080600060608486031215610cd8578081fd5b610ce184610c61565b9250610cef60208501610c61565b9150604084013590509250925092565b60008060008060808587031215610d14578081fd5b610d1d85610c61565b9350610d2b60208601610c61565b925060408501359150606085013567ffffffffffffffff80821115610d4e578283fd5b818701915087601f830112610d61578283fd5b813581811115610d7357610d736110d7565b604051601f8201601f19908116603f01168101908382118183101715610d9b57610d9b6110d7565b816040528281528a6020848701011115610db3578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610de6578182fd5b610def83610c61565b915060208301358015158114610e03578182fd5b809150509250929050565b60008060408385031215610e20578182fd5b610e2983610c61565b946020939093013593505050565b600060208284031215610e48578081fd5b8135610645816110ed565b600060208284031215610e64578081fd5b8151610645816110ed565b600060208284031215610e80578081fd5b5035919050565b60008151808452610e9f816020860160208601611015565b601f01601f19169290920160200192915050565b60008351610ec5818460208801611015565b835190830190610ed9818360208801611015565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1590830184610e87565b9695505050505050565b6000602082526106456020830184610e87565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008219821115610fe557610fe56110ab565b500190565b600082610ff957610ff96110c1565b500490565b600082821015611010576110106110ab565b500390565b60005b83811015611030578181015183820152602001611018565b838111156105d25750506000910152565b60028104600182168061105557607f821691505b6020821081141561107657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611090576110906110ab565b5060010190565b6000826110a6576110a66110c1565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146106ab57600080fdfea2646970667358221220c015f1e648d0c91113d9455457bb32b225c6c39cb166f630dc2dbc2e5f163c5564736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610e37565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190610f1f565b61012461011f366004610e6f565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610e0e565b610335565b005b61014f61015f366004610cc4565b610450565b61014f610172366004610cc4565b610481565b610124610185366004610e6f565b61049c565b61019d610198366004610c78565b6104fc565b6040519081526020016100f3565b610104610582565b61014f6101c1366004610dd4565b610591565b61014f6101d4366004610cff565b6105a0565b6101046101e7366004610e6f565b6105d8565b6100e76101fa366004610c92565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606000805461028b90611041565b80601f01602080910402602001604051908101604052809291908181526020018280546102b790611041565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b60006103198261064c565b506000908152600460205260409020546001600160a01b031690565b60006103408261049c565b9050806001600160a01b0316836001600160a01b031614156103b35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103cf57506103cf81336101fa565b6104415760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016103aa565b61044b83836106ae565b505050565b61045a338261071c565b6104765760405162461bcd60e51b81526004016103aa90610f84565b61044b83838361079b565b61044b838383604051806020016040528060008152506105a0565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b60006001600160a01b0382166105665760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103aa565b506001600160a01b031660009081526003602052604090205490565b60606001805461028b90611041565b61059c338383610937565b5050565b6105aa338361071c565b6105c65760405162461bcd60e51b81526004016103aa90610f84565b6105d284848484610a06565b50505050565b60606105e38261064c565b60006105fa60408051602081019091526000815290565b9050600081511161061a5760405180602001604052806000815250610645565b8061062484610a39565b604051602001610635929190610eb3565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166106ab5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e38261049c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806107288361049c565b9050806001600160a01b0316846001600160a01b0316148061076f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107935750836001600160a01b03166107888461030e565b6001600160a01b0316145b949350505050565b826001600160a01b03166107ae8261049c565b6001600160a01b0316146108125760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103aa565b6001600160a01b0382166108745760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103aa565b61087f6000826106ae565b6001600160a01b03831660009081526003602052604081208054600192906108a8908490610ffe565b90915550506001600160a01b03821660009081526003602052604081208054600192906108d6908490610fd2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a461044b565b816001600160a01b0316836001600160a01b031614156109995760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103aa565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a1184848461079b565b610a1d84848484610b54565b6105d25760405162461bcd60e51b81526004016103aa90610f32565b606081610a5e57506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610a885780610a728161107c565b9150610a819050600a83610fea565b9150610a62565b60008167ffffffffffffffff811115610ab157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610adb576020820181803683370190505b5090505b841561079357610af0600183610ffe565b9150610afd600a86611097565b610b08906030610fd2565b60f81b818381518110610b2b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610b4d600a86610fea565b9450610adf565b60006001600160a01b0384163b15610c5657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b98903390899088908890600401610ee2565b602060405180830381600087803b158015610bb257600080fd5b505af1925050508015610be2575060408051601f3d908101601f19168201909252610bdf91810190610e53565b60015b610c3c573d808015610c10576040519150601f19603f3d011682016040523d82523d6000602084013e610c15565b606091505b508051610c345760405162461bcd60e51b81526004016103aa90610f32565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610793565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610c89578081fd5b61064582610c61565b60008060408385031215610ca4578081fd5b610cad83610c61565b9150610cbb60208401610c61565b90509250929050565b600080600060608486031215610cd8578081fd5b610ce184610c61565b9250610cef60208501610c61565b9150604084013590509250925092565b60008060008060808587031215610d14578081fd5b610d1d85610c61565b9350610d2b60208601610c61565b925060408501359150606085013567ffffffffffffffff80821115610d4e578283fd5b818701915087601f830112610d61578283fd5b813581811115610d7357610d736110d7565b604051601f8201601f19908116603f01168101908382118183101715610d9b57610d9b6110d7565b816040528281528a6020848701011115610db3578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610de6578182fd5b610def83610c61565b915060208301358015158114610e03578182fd5b809150509250929050565b60008060408385031215610e20578182fd5b610e2983610c61565b946020939093013593505050565b600060208284031215610e48578081fd5b8135610645816110ed565b600060208284031215610e64578081fd5b8151610645816110ed565b600060208284031215610e80578081fd5b5035919050565b60008151808452610e9f816020860160208601611015565b601f01601f19169290920160200192915050565b60008351610ec5818460208801611015565b835190830190610ed9818360208801611015565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1590830184610e87565b9695505050505050565b6000602082526106456020830184610e87565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008219821115610fe557610fe56110ab565b500190565b600082610ff957610ff96110c1565b500490565b600082821015611010576110106110ab565b500390565b60005b83811015611030578181015183820152602001611018565b838111156105d25750506000910152565b60028104600182168061105557607f821691505b6020821081141561107657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611090576110906110ab565b5060010190565b6000826110a6576110a66110c1565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146106ab57600080fdfea2646970667358221220c015f1e648d0c91113d9455457bb32b225c6c39cb166f630dc2dbc2e5f163c5564736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json new file mode 100644 index 00000000..3f0fc3af --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json @@ -0,0 +1,296 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC721", + "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json new file mode 100644 index 00000000..e91c7b08 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json @@ -0,0 +1,45 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC721Receiver", + "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json new file mode 100644 index 00000000..f80371f9 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json new file mode 100644 index 00000000..3fe38668 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json @@ -0,0 +1,341 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC721Metadata", + "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json b/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json b/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json new file mode 100644 index 00000000..8d82d360 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Address", + "sourceName": "@openzeppelin/contracts/utils/Address.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200fa1e693094ebf84cad290be5d43cf4715f087d620c601634c4648a02e72ace864736f6c63430008020033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200fa1e693094ebf84cad290be5d43cf4715f087d620c601634c4648a02e72ace864736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json b/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json b/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json new file mode 100644 index 00000000..8fe86fc7 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Context", + "sourceName": "@openzeppelin/contracts/utils/Context.sol", + "abi": [], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json b/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json b/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json new file mode 100644 index 00000000..bb66c4f5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "StorageSlot", + "sourceName": "@openzeppelin/contracts/utils/StorageSlot.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220548b09ac82e45b33b1735c483f99cdd694f65e585c1b1c385f7804aee5ecef8064736f6c63430008020033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220548b09ac82e45b33b1735c483f99cdd694f65e585c1b1c385f7804aee5ecef8064736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json new file mode 100644 index 00000000..76297600 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Strings", + "sourceName": "@openzeppelin/contracts/utils/Strings.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202855554d9d2f6e99da4b2b0abb5e45eda5c155eb156924975fd14aa04152e65964736f6c63430008020033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202855554d9d2f6e99da4b2b0abb5e45eda5c155eb156924975fd14aa04152e65964736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json b/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json b/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json new file mode 100644 index 00000000..1304472c --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC165", + "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json b/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json b/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json new file mode 100644 index 00000000..ff87f91e --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC165", + "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json b/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json new file mode 100644 index 00000000..f31d9de5 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json b/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json new file mode 100644 index 00000000..7f55d076 --- /dev/null +++ b/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "EnumerableSet", + "sourceName": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f5d74db21ef8a5bf17d7feea4a3de1c4cbcd77c6f2ba54e1031ce853bf59487f64736f6c63430008020033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f5d74db21ef8a5bf17d7feea4a3de1c4cbcd77c6f2ba54e1031ce853bf59487f64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/build-info/599ab32d9f05fdb89405f0e2d60efa8c.json b/artifacts/build-info/599ab32d9f05fdb89405f0e2d60efa8c.json new file mode 100644 index 00000000..931587b6 --- /dev/null +++ b/artifacts/build-info/599ab32d9f05fdb89405f0e2d60efa8c.json @@ -0,0 +1 @@ +{"id":"599ab32d9f05fdb89405f0e2d60efa8c","_format":"hh-sol-build-info-1","solcVersion":"0.8.2","solcLongVersion":"0.8.2+commit.661d1103","input":{"language":"Solidity","sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {CBORChainlink} from \"./vendor/CBORChainlink.sol\";\nimport {BufferChainlink} from \"./vendor/BufferChainlink.sol\";\n\n/**\n * @title Library for common Chainlink functions\n * @dev Uses imported CBOR library for encoding to buffer\n */\nlibrary Chainlink {\n uint256 internal constant defaultBufferSize = 256; // solhint-disable-line const-name-snakecase\n\n using CBORChainlink for BufferChainlink.buffer;\n\n struct Request {\n bytes32 id;\n address callbackAddress;\n bytes4 callbackFunctionId;\n uint256 nonce;\n BufferChainlink.buffer buf;\n }\n\n /**\n * @notice Initializes a Chainlink request\n * @dev Sets the ID, callback address, and callback function signature on the request\n * @param self The uninitialized request\n * @param jobId The Job Specification ID\n * @param callbackAddr The callback address\n * @param callbackFunc The callback function signature\n * @return The initialized request\n */\n function initialize(\n Request memory self,\n bytes32 jobId,\n address callbackAddr,\n bytes4 callbackFunc\n ) internal pure returns (Chainlink.Request memory) {\n BufferChainlink.init(self.buf, defaultBufferSize);\n self.id = jobId;\n self.callbackAddress = callbackAddr;\n self.callbackFunctionId = callbackFunc;\n return self;\n }\n\n /**\n * @notice Sets the data for the buffer without encoding CBOR on-chain\n * @dev CBOR can be closed with curly-brackets {} or they can be left off\n * @param self The initialized request\n * @param data The CBOR data\n */\n function setBuffer(Request memory self, bytes memory data) internal pure {\n BufferChainlink.init(self.buf, data.length);\n BufferChainlink.append(self.buf, data);\n }\n\n /**\n * @notice Adds a string value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The string value to add\n */\n function add(\n Request memory self,\n string memory key,\n string memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeString(value);\n }\n\n /**\n * @notice Adds a bytes value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The bytes value to add\n */\n function addBytes(\n Request memory self,\n string memory key,\n bytes memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeBytes(value);\n }\n\n /**\n * @notice Adds a int256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The int256 value to add\n */\n function addInt(\n Request memory self,\n string memory key,\n int256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeInt(value);\n }\n\n /**\n * @notice Adds a uint256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The uint256 value to add\n */\n function addUint(\n Request memory self,\n string memory key,\n uint256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeUInt(value);\n }\n\n /**\n * @notice Adds an array of strings to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param values The array of string values to add\n */\n function addStringArray(\n Request memory self,\n string memory key,\n string[] memory values\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.startArray();\n for (uint256 i = 0; i < values.length; i++) {\n self.buf.encodeString(values[i]);\n }\n self.buf.endSequence();\n }\n}\n"},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./Chainlink.sol\";\nimport \"./interfaces/ENSInterface.sol\";\nimport \"./interfaces/LinkTokenInterface.sol\";\nimport \"./interfaces/ChainlinkRequestInterface.sol\";\nimport \"./interfaces/OperatorInterface.sol\";\nimport \"./interfaces/PointerInterface.sol\";\nimport {ENSResolver as ENSResolver_Chainlink} from \"./vendor/ENSResolver.sol\";\n\n/**\n * @title The ChainlinkClient contract\n * @notice Contract writers can inherit this contract in order to create requests for the\n * Chainlink network\n */\nabstract contract ChainlinkClient {\n using Chainlink for Chainlink.Request;\n\n uint256 internal constant LINK_DIVISIBILITY = 10**18;\n uint256 private constant AMOUNT_OVERRIDE = 0;\n address private constant SENDER_OVERRIDE = address(0);\n uint256 private constant ORACLE_ARGS_VERSION = 1;\n uint256 private constant OPERATOR_ARGS_VERSION = 2;\n bytes32 private constant ENS_TOKEN_SUBNAME = keccak256(\"link\");\n bytes32 private constant ENS_ORACLE_SUBNAME = keccak256(\"oracle\");\n address private constant LINK_TOKEN_POINTER = 0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571;\n\n ENSInterface private s_ens;\n bytes32 private s_ensNode;\n LinkTokenInterface private s_link;\n OperatorInterface private s_oracle;\n uint256 private s_requestCount = 1;\n mapping(bytes32 => address) private s_pendingRequests;\n\n event ChainlinkRequested(bytes32 indexed id);\n event ChainlinkFulfilled(bytes32 indexed id);\n event ChainlinkCancelled(bytes32 indexed id);\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackAddr address to operate the callback on\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildChainlinkRequest(\n bytes32 specId,\n address callbackAddr,\n bytes4 callbackFunctionSignature\n ) internal pure returns (Chainlink.Request memory) {\n Chainlink.Request memory req;\n return req.initialize(specId, callbackAddr, callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildOperatorRequest(bytes32 specId, bytes4 callbackFunctionSignature)\n internal\n view\n returns (Chainlink.Request memory)\n {\n Chainlink.Request memory req;\n return req.initialize(specId, address(this), callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev Calls `chainlinkRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendChainlinkRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n ChainlinkRequestInterface.oracleRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n address(this),\n req.callbackFunctionId,\n nonce,\n ORACLE_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev This function supports multi-word response\n * @dev Calls `sendOperatorRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendOperatorRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev This function supports multi-word response\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n OperatorInterface.operatorRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n req.callbackFunctionId,\n nonce,\n OPERATOR_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Make a request to an oracle\n * @param oracleAddress The address of the oracle for the request\n * @param nonce used to generate the request ID\n * @param payment The amount of LINK to send for the request\n * @param encodedRequest data encoded for request type specific format\n * @return requestId The request ID\n */\n function _rawRequest(\n address oracleAddress,\n uint256 nonce,\n uint256 payment,\n bytes memory encodedRequest\n ) private returns (bytes32 requestId) {\n requestId = keccak256(abi.encodePacked(this, nonce));\n s_pendingRequests[requestId] = oracleAddress;\n emit ChainlinkRequested(requestId);\n require(s_link.transferAndCall(oracleAddress, payment, encodedRequest), \"unable to transferAndCall to oracle\");\n }\n\n /**\n * @notice Allows a request to be cancelled if it has not been fulfilled\n * @dev Requires keeping track of the expiration value emitted from the oracle contract.\n * Deletes the request from the `pendingRequests` mapping.\n * Emits ChainlinkCancelled event.\n * @param requestId The request ID\n * @param payment The amount of LINK sent for the request\n * @param callbackFunc The callback function specified for the request\n * @param expiration The time of the expiration for the request\n */\n function cancelChainlinkRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunc,\n uint256 expiration\n ) internal {\n OperatorInterface requested = OperatorInterface(s_pendingRequests[requestId]);\n delete s_pendingRequests[requestId];\n emit ChainlinkCancelled(requestId);\n requested.cancelOracleRequest(requestId, payment, callbackFunc, expiration);\n }\n\n /**\n * @notice the next request count to be used in generating a nonce\n * @dev starts at 1 in order to ensure consistent gas cost\n * @return returns the next request count to be used in a nonce\n */\n function getNextRequestCount() internal view returns (uint256) {\n return s_requestCount;\n }\n\n /**\n * @notice Sets the stored oracle address\n * @param oracleAddress The address of the oracle contract\n */\n function setChainlinkOracle(address oracleAddress) internal {\n s_oracle = OperatorInterface(oracleAddress);\n }\n\n /**\n * @notice Sets the LINK token address\n * @param linkAddress The address of the LINK token contract\n */\n function setChainlinkToken(address linkAddress) internal {\n s_link = LinkTokenInterface(linkAddress);\n }\n\n /**\n * @notice Sets the Chainlink token address for the public\n * network as given by the Pointer contract\n */\n function setPublicChainlinkToken() internal {\n setChainlinkToken(PointerInterface(LINK_TOKEN_POINTER).getAddress());\n }\n\n /**\n * @notice Retrieves the stored address of the LINK token\n * @return The address of the LINK token\n */\n function chainlinkTokenAddress() internal view returns (address) {\n return address(s_link);\n }\n\n /**\n * @notice Retrieves the stored address of the oracle contract\n * @return The address of the oracle contract\n */\n function chainlinkOracleAddress() internal view returns (address) {\n return address(s_oracle);\n }\n\n /**\n * @notice Allows for a request which was created on another contract to be fulfilled\n * on this contract\n * @param oracleAddress The address of the oracle contract that will fulfill the request\n * @param requestId The request ID used for the response\n */\n function addChainlinkExternalRequest(address oracleAddress, bytes32 requestId) internal notPendingRequest(requestId) {\n s_pendingRequests[requestId] = oracleAddress;\n }\n\n /**\n * @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n * @dev Accounts for subnodes having different resolvers\n * @param ensAddress The address of the ENS contract\n * @param node The ENS node hash\n */\n function useChainlinkWithENS(address ensAddress, bytes32 node) internal {\n s_ens = ENSInterface(ensAddress);\n s_ensNode = node;\n bytes32 linkSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_TOKEN_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(linkSubnode));\n setChainlinkToken(resolver.addr(linkSubnode));\n updateChainlinkOracleWithENS();\n }\n\n /**\n * @notice Sets the stored oracle contract with the address resolved by ENS\n * @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously\n */\n function updateChainlinkOracleWithENS() internal {\n bytes32 oracleSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_ORACLE_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(oracleSubnode));\n setChainlinkOracle(resolver.addr(oracleSubnode));\n }\n\n /**\n * @notice Ensures that the fulfillment is valid for this contract\n * @dev Use if the contract developer prefers methods instead of modifiers for validation\n * @param requestId The request ID for fulfillment\n */\n function validateChainlinkCallback(bytes32 requestId)\n internal\n recordChainlinkFulfillment(requestId)\n // solhint-disable-next-line no-empty-blocks\n {\n\n }\n\n /**\n * @dev Reverts if the sender is not the oracle of the request.\n * Emits ChainlinkFulfilled event.\n * @param requestId The request ID for fulfillment\n */\n modifier recordChainlinkFulfillment(bytes32 requestId) {\n require(msg.sender == s_pendingRequests[requestId], \"Source must be the oracle of the request\");\n delete s_pendingRequests[requestId];\n emit ChainlinkFulfilled(requestId);\n _;\n }\n\n /**\n * @dev Reverts if the request is already pending\n * @param requestId The request ID for fulfillment\n */\n modifier notPendingRequest(bytes32 requestId) {\n require(s_pendingRequests[requestId] == address(0), \"Request is already pending\");\n _;\n }\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ChainlinkRequestInterface {\n function oracleRequest(\n address sender,\n uint256 requestPrice,\n bytes32 serviceAgreementID,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function cancelOracleRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunctionId,\n uint256 expiration\n ) external;\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ENSInterface {\n // Logged when the owner of a node assigns a new owner to a subnode.\n event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);\n\n // Logged when the owner of a node transfers ownership to a new account.\n event Transfer(bytes32 indexed node, address owner);\n\n // Logged when the resolver for a node changes.\n event NewResolver(bytes32 indexed node, address resolver);\n\n // Logged when the TTL of a node changes\n event NewTTL(bytes32 indexed node, uint64 ttl);\n\n function setSubnodeOwner(\n bytes32 node,\n bytes32 label,\n address owner\n ) external;\n\n function setResolver(bytes32 node, address resolver) external;\n\n function setOwner(bytes32 node, address owner) external;\n\n function setTTL(bytes32 node, uint64 ttl) external;\n\n function owner(bytes32 node) external view returns (address);\n\n function resolver(bytes32 node) external view returns (address);\n\n function ttl(bytes32 node) external view returns (uint64);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface LinkTokenInterface {\n function allowance(address owner, address spender) external view returns (uint256 remaining);\n\n function approve(address spender, uint256 value) external returns (bool success);\n\n function balanceOf(address owner) external view returns (uint256 balance);\n\n function decimals() external view returns (uint8 decimalPlaces);\n\n function decreaseApproval(address spender, uint256 addedValue) external returns (bool success);\n\n function increaseApproval(address spender, uint256 subtractedValue) external;\n\n function name() external view returns (string memory tokenName);\n\n function symbol() external view returns (string memory tokenSymbol);\n\n function totalSupply() external view returns (uint256 totalTokensIssued);\n\n function transfer(address to, uint256 value) external returns (bool success);\n\n function transferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool success);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./OracleInterface.sol\";\nimport \"./ChainlinkRequestInterface.sol\";\n\ninterface OperatorInterface is OracleInterface, ChainlinkRequestInterface {\n function operatorRequest(\n address sender,\n uint256 payment,\n bytes32 specId,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function fulfillOracleRequest2(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes calldata data\n ) external returns (bool);\n\n function ownerTransferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function distributeFunds(address payable[] calldata receivers, uint256[] calldata amounts) external payable;\n\n function getAuthorizedSenders() external returns (address[] memory);\n\n function setAuthorizedSenders(address[] calldata senders) external;\n\n function getForwarder() external returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface OracleInterface {\n function fulfillOracleRequest(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes32 data\n ) external returns (bool);\n\n function isAuthorizedSender(address node) external view returns (bool);\n\n function withdraw(address recipient, uint256 amount) external;\n\n function withdrawable() external view returns (uint256);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface PointerInterface {\n function getAddress() external view returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/**\n * @dev A library for working with mutable byte buffers in Solidity.\n *\n * Byte buffers are mutable and expandable, and provide a variety of primitives\n * for writing to them. At any time you can fetch a bytes object containing the\n * current contents of the buffer. The bytes object should not be stored between\n * operations, as it may change due to resizing of the buffer.\n */\nlibrary BufferChainlink {\n /**\n * @dev Represents a mutable buffer. Buffers have a current value (buf) and\n * a capacity. The capacity may be longer than the current value, in\n * which case it can be extended without the need to allocate more memory.\n */\n struct buffer {\n bytes buf;\n uint256 capacity;\n }\n\n /**\n * @dev Initializes a buffer with an initial capacity.\n * @param buf The buffer to initialize.\n * @param capacity The number of bytes of space to allocate the buffer.\n * @return The buffer, for chaining.\n */\n function init(buffer memory buf, uint256 capacity) internal pure returns (buffer memory) {\n if (capacity % 32 != 0) {\n capacity += 32 - (capacity % 32);\n }\n // Allocate space for the buffer data\n buf.capacity = capacity;\n assembly {\n let ptr := mload(0x40)\n mstore(buf, ptr)\n mstore(ptr, 0)\n mstore(0x40, add(32, add(ptr, capacity)))\n }\n return buf;\n }\n\n /**\n * @dev Initializes a new buffer from an existing bytes object.\n * Changes to the buffer may mutate the original value.\n * @param b The bytes object to initialize the buffer with.\n * @return A new buffer.\n */\n function fromBytes(bytes memory b) internal pure returns (buffer memory) {\n buffer memory buf;\n buf.buf = b;\n buf.capacity = b.length;\n return buf;\n }\n\n function resize(buffer memory buf, uint256 capacity) private pure {\n bytes memory oldbuf = buf.buf;\n init(buf, capacity);\n append(buf, oldbuf);\n }\n\n function max(uint256 a, uint256 b) private pure returns (uint256) {\n if (a > b) {\n return a;\n }\n return b;\n }\n\n /**\n * @dev Sets buffer length to 0.\n * @param buf The buffer to truncate.\n * @return The original buffer, for chaining..\n */\n function truncate(buffer memory buf) internal pure returns (buffer memory) {\n assembly {\n let bufptr := mload(buf)\n mstore(bufptr, 0)\n }\n return buf;\n }\n\n /**\n * @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The start offset to write to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n require(len <= data.length);\n\n if (off + len > buf.capacity) {\n resize(buf, max(buf.capacity, len + off) * 2);\n }\n\n uint256 dest;\n uint256 src;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Start address = buffer address + offset + sizeof(buffer length)\n dest := add(add(bufptr, 32), off)\n // Update buffer length if we're extending it\n if gt(add(len, off), buflen) {\n mstore(bufptr, add(len, off))\n }\n src := add(data, 32)\n }\n\n // Copy word-length chunks while possible\n for (; len >= 32; len -= 32) {\n assembly {\n mstore(dest, mload(src))\n }\n dest += 32;\n src += 32;\n }\n\n // Copy remaining bytes\n unchecked {\n uint256 mask = (256**(32 - len)) - 1;\n assembly {\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n }\n }\n\n return buf;\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function append(\n buffer memory buf,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, len);\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function append(buffer memory buf, bytes memory data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, data.length);\n }\n\n /**\n * @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write the byte at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeUint8(\n buffer memory buf,\n uint256 off,\n uint8 data\n ) internal pure returns (buffer memory) {\n if (off >= buf.capacity) {\n resize(buf, buf.capacity * 2);\n }\n\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Address = buffer address + sizeof(buffer length) + off\n let dest := add(add(bufptr, off), 32)\n mstore8(dest, data)\n // Update buffer length if we extended it\n if eq(off, buflen) {\n mstore(bufptr, add(buflen, 1))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendUint8(buffer memory buf, uint8 data) internal pure returns (buffer memory) {\n return writeUint8(buf, buf.buf.length, data);\n }\n\n /**\n * @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (left-aligned).\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes32 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n unchecked {\n uint256 mask = (256**len) - 1;\n // Right-align data\n data = data >> (8 * (32 - len));\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + sizeof(buffer length) + off + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n }\n return buf;\n }\n\n /**\n * @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeBytes20(\n buffer memory buf,\n uint256 off,\n bytes20 data\n ) internal pure returns (buffer memory) {\n return write(buf, off, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chhaining.\n */\n function appendBytes20(buffer memory buf, bytes20 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendBytes32(buffer memory buf, bytes32 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, 32);\n }\n\n /**\n * @dev Writes an integer to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (right-aligned).\n * @return The original buffer, for chaining.\n */\n function writeInt(\n buffer memory buf,\n uint256 off,\n uint256 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n uint256 mask = (256**len) - 1;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + off + sizeof(buffer length) + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the end of the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer.\n */\n function appendInt(\n buffer memory buf,\n uint256 data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return writeInt(buf, buf.buf.length, data, len);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.4.19;\n\nimport {BufferChainlink} from \"./BufferChainlink.sol\";\n\nlibrary CBORChainlink {\n using BufferChainlink for BufferChainlink.buffer;\n\n uint8 private constant MAJOR_TYPE_INT = 0;\n uint8 private constant MAJOR_TYPE_NEGATIVE_INT = 1;\n uint8 private constant MAJOR_TYPE_BYTES = 2;\n uint8 private constant MAJOR_TYPE_STRING = 3;\n uint8 private constant MAJOR_TYPE_ARRAY = 4;\n uint8 private constant MAJOR_TYPE_MAP = 5;\n uint8 private constant MAJOR_TYPE_TAG = 6;\n uint8 private constant MAJOR_TYPE_CONTENT_FREE = 7;\n\n uint8 private constant TAG_TYPE_BIGNUM = 2;\n uint8 private constant TAG_TYPE_NEGATIVE_BIGNUM = 3;\n\n function encodeFixedNumeric(BufferChainlink.buffer memory buf, uint8 major, uint64 value) private pure {\n if(value <= 23) {\n buf.appendUint8(uint8((major << 5) | value));\n } else if (value <= 0xFF) {\n buf.appendUint8(uint8((major << 5) | 24));\n buf.appendInt(value, 1);\n } else if (value <= 0xFFFF) {\n buf.appendUint8(uint8((major << 5) | 25));\n buf.appendInt(value, 2);\n } else if (value <= 0xFFFFFFFF) {\n buf.appendUint8(uint8((major << 5) | 26));\n buf.appendInt(value, 4);\n } else {\n buf.appendUint8(uint8((major << 5) | 27));\n buf.appendInt(value, 8);\n }\n }\n\n function encodeIndefiniteLengthType(BufferChainlink.buffer memory buf, uint8 major) private pure {\n buf.appendUint8(uint8((major << 5) | 31));\n }\n\n function encodeUInt(BufferChainlink.buffer memory buf, uint value) internal pure {\n if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, value);\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(value));\n }\n }\n\n function encodeInt(BufferChainlink.buffer memory buf, int value) internal pure {\n if(value < -0x10000000000000000) {\n encodeSignedBigNum(buf, value);\n } else if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, uint(value));\n } else if(value >= 0) {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(uint256(value)));\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_NEGATIVE_INT, uint64(uint256(-1 - value)));\n }\n }\n\n function encodeBytes(BufferChainlink.buffer memory buf, bytes memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_BYTES, uint64(value.length));\n buf.append(value);\n }\n\n function encodeBigNum(BufferChainlink.buffer memory buf, uint value) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_BIGNUM));\n encodeBytes(buf, abi.encode(value));\n }\n\n function encodeSignedBigNum(BufferChainlink.buffer memory buf, int input) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_NEGATIVE_BIGNUM));\n encodeBytes(buf, abi.encode(uint256(-1 - input)));\n }\n\n function encodeString(BufferChainlink.buffer memory buf, string memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_STRING, uint64(bytes(value).length));\n buf.append(bytes(value));\n }\n\n function startArray(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_ARRAY);\n }\n\n function startMap(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_MAP);\n }\n\n function endSequence(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_CONTENT_FREE);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nabstract contract ENSResolver {\n function addr(bytes32 node) public view virtual returns (address);\n}\n"},"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"./Riskpool.sol\";\r\nimport \"../modules/IBundle.sol\";\r\nimport \"../modules/IPolicy.sol\";\r\n\r\n// basic riskpool always collateralizes one application using exactly one bundle\r\nabstract contract BasicRiskpool is Riskpool {\r\n\r\n event LogBasicRiskpoolBundlesAndPolicies(uint256 activeBundles, uint256 bundleId);\r\n event LogBasicRiskpoolCandidateBundleAmountCheck(uint256 index, uint256 bundleId, uint256 maxAmount, uint256 collateralAmount);\r\n\r\n // remember bundleId for each processId\r\n // approach only works for basic risk pool where a\r\n // policy is collateralized by exactly one bundle\r\n mapping(bytes32 /* processId */ => uint256 /** bundleId */) internal _collateralizedBy;\r\n uint32 private _policiesCounter = 0;\r\n\r\n constructor(\r\n bytes32 name,\r\n uint256 collateralization,\r\n uint256 sumOfSumInsuredCap,\r\n address erc20Token,\r\n address wallet,\r\n address registry\r\n )\r\n Riskpool(name, collateralization, sumOfSumInsuredCap, erc20Token, wallet, registry)\r\n { }\r\n\r\n \r\n\r\n // needs to remember which bundles helped to cover ther risk\r\n // simple (retail) approach: single policy covered by single bundle\r\n // first bundle with a match and sufficient capacity wins\r\n // Component <- Riskpool <- BasicRiskpool <- TestRiskpool\r\n // complex (wholesale) approach: single policy covered by many bundles\r\n // Component <- Riskpool <- AdvancedRiskpool <- TestRiskpool\r\n function _lockCollateral(bytes32 processId, uint256 collateralAmount) \r\n internal override\r\n returns(bool success) \r\n {\r\n uint256 activeBundles = activeBundles();\r\n uint256 capital = getCapital();\r\n uint256 lockedCapital = getTotalValueLocked();\r\n\r\n emit LogBasicRiskpoolBundlesAndPolicies(activeBundles, _policiesCounter);\r\n require(activeBundles > 0, \"ERROR:BRP-001:NO_ACTIVE_BUNDLES\");\r\n require(capital > lockedCapital, \"ERROR:BRP-002:NO_FREE_CAPITAL\");\r\n\r\n // ensure there is a chance to find the collateral\r\n if(capital >= lockedCapital + collateralAmount) {\r\n IPolicy.Application memory application = _instanceService.getApplication(processId);\r\n\r\n // initialize bundle idx with round robin based on active bundles\r\n uint idx = _policiesCounter % activeBundles;\r\n \r\n // basic riskpool implementation: policy coverage by single bundle only/\r\n // the initial bundle is selected via round robin based on the policies counter.\r\n // If a bundle does not match (application not matching or insufficient funds for collateral) the next one is tried. \r\n // This is continued until all bundles have been tried once. If no bundle matches the policy is rejected.\r\n for (uint256 i = 0; i < activeBundles && !success; i++) {\r\n uint256 bundleId = getActiveBundleId(idx);\r\n IBundle.Bundle memory bundle = _instanceService.getBundle(bundleId);\r\n bool isMatching = bundleMatchesApplication(bundle, application);\r\n emit LogRiskpoolBundleMatchesPolicy(bundleId, isMatching);\r\n\r\n if (isMatching) {\r\n uint256 maxAmount = bundle.capital - bundle.lockedCapital;\r\n emit LogBasicRiskpoolCandidateBundleAmountCheck(idx, bundleId, maxAmount, collateralAmount);\r\n\r\n if (maxAmount >= collateralAmount) {\r\n _riskpoolService.collateralizePolicy(bundleId, processId, collateralAmount);\r\n _collateralizedBy[processId] = bundleId;\r\n success = true;\r\n _policiesCounter++;\r\n } else {\r\n idx = (idx + 1) % activeBundles;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function _processPayout(bytes32 processId, uint256 amount)\r\n internal override\r\n {\r\n uint256 bundleId = _collateralizedBy[processId];\r\n _riskpoolService.processPayout(bundleId, processId, amount);\r\n }\r\n\r\n function _processPremium(bytes32 processId, uint256 amount)\r\n internal override\r\n {\r\n uint256 bundleId = _collateralizedBy[processId];\r\n _riskpoolService.processPremium(bundleId, processId, amount);\r\n }\r\n\r\n function _releaseCollateral(bytes32 processId) \r\n internal override\r\n returns(uint256 collateralAmount) \r\n { \r\n uint256 bundleId = _collateralizedBy[processId];\r\n collateralAmount = _riskpoolService.releasePolicy(bundleId, processId);\r\n }\r\n}"},"@etherisc/gif-interface/contracts/components/Component.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"./IComponent.sol\";\r\nimport \"../modules/IAccess.sol\";\r\nimport \"../modules/IComponentEvents.sol\";\r\nimport \"../modules/IRegistry.sol\";\r\nimport \"../services/IComponentOwnerService.sol\";\r\nimport \"../services/IInstanceService.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\n\r\n// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/GUIDELINES.md#style-guidelines\r\nabstract contract Component is \r\n IComponent,\r\n IComponentEvents,\r\n Ownable \r\n{\r\n bytes32 private _componentName;\r\n uint256 private _componentId;\r\n IComponent.ComponentType private _componentType;\r\n\r\n IRegistry private _registry;\r\n IAccess private _access;\r\n IComponentOwnerService private _componentOwnerService;\r\n IInstanceService private _instanceService;\r\n\r\n modifier onlyInstanceOperatorService() {\r\n require(\r\n _msgSender() == _getContractAddress(\"InstanceOperatorService\"),\r\n \"ERROR:CMP-001:NOT_INSTANCE_OPERATOR_SERVICE\");\r\n _;\r\n }\r\n\r\n modifier onlyComponent() {\r\n require(\r\n _msgSender() == _getContractAddress(\"Component\"),\r\n \"ERROR:CMP-002:NOT_COMPONENT\");\r\n _;\r\n }\r\n\r\n modifier onlyComponentOwnerService() {\r\n require(\r\n _msgSender() == address(_componentOwnerService),\r\n \"ERROR:CMP-003:NOT_COMPONENT_OWNER_SERVICE\");\r\n _;\r\n }\r\n\r\n constructor(\r\n bytes32 name,\r\n IComponent.ComponentType componentType,\r\n address registry\r\n )\r\n Ownable()\r\n {\r\n require(registry != address(0), \"ERROR:CMP-004:REGISTRY_ADDRESS_ZERO\");\r\n\r\n _registry = IRegistry(registry);\r\n _access = _getAccess();\r\n _componentOwnerService = _getComponentOwnerService();\r\n _instanceService = _getInstanceService();\r\n\r\n _componentName = name;\r\n _componentType = componentType;\r\n\r\n emit LogComponentCreated(\r\n _componentName, \r\n _componentType, \r\n address(this), \r\n address(_registry));\r\n }\r\n\r\n function setId(uint256 id) external override onlyComponent { _componentId = id; }\r\n\r\n function getName() public override view returns(bytes32) { return _componentName; }\r\n function getId() public override view returns(uint256) { return _componentId; }\r\n function getType() public override view returns(IComponent.ComponentType) { return _componentType; }\r\n function getState() public override view returns(IComponent.ComponentState) { return _instanceService.getComponentState(_componentId); }\r\n function getOwner() public override view returns(address) { return owner(); }\r\n\r\n function isProduct() public override view returns(bool) { return _componentType == IComponent.ComponentType.Product; }\r\n function isOracle() public override view returns(bool) { return _componentType == IComponent.ComponentType.Oracle; }\r\n function isRiskpool() public override view returns(bool) { return _componentType == IComponent.ComponentType.Riskpool; }\r\n\r\n function getRegistry() external override view returns(IRegistry) { return _registry; }\r\n\r\n function proposalCallback() public override onlyComponent { _afterPropose(); }\r\n function approvalCallback() public override onlyComponent { _afterApprove(); }\r\n function declineCallback() public override onlyComponent { _afterDecline(); }\r\n function suspendCallback() public override onlyComponent { _afterSuspend(); }\r\n function resumeCallback() public override onlyComponent { _afterResume(); }\r\n function pauseCallback() public override onlyComponent { _afterPause(); }\r\n function unpauseCallback() public override onlyComponent { _afterUnpause(); }\r\n function archiveCallback() public override onlyComponent { _afterArchive(); }\r\n \r\n // these functions are intended to be overwritten to implement\r\n // component specific notification handling\r\n function _afterPropose() internal virtual {}\r\n function _afterApprove() internal virtual {}\r\n function _afterDecline() internal virtual {}\r\n function _afterSuspend() internal virtual {}\r\n function _afterResume() internal virtual {}\r\n function _afterPause() internal virtual {}\r\n function _afterUnpause() internal virtual {}\r\n function _afterArchive() internal virtual {}\r\n\r\n function _getAccess() internal view returns (IAccess) {\r\n return IAccess(_getContractAddress(\"Access\")); \r\n }\r\n\r\n function _getInstanceService() internal view returns (IInstanceService) {\r\n return IInstanceService(_getContractAddress(\"InstanceService\")); \r\n }\r\n\r\n function _getComponentOwnerService() internal view returns (IComponentOwnerService) {\r\n return IComponentOwnerService(_getContractAddress(\"ComponentOwnerService\")); \r\n }\r\n\r\n function _getContractAddress(bytes32 contractName) internal view returns (address) { \r\n return _registry.getContract(contractName);\r\n }\r\n\r\n}\r\n"},"@etherisc/gif-interface/contracts/components/IComponent.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../modules/IRegistry.sol\";\r\n\r\ninterface IComponent {\r\n\r\n enum ComponentType {\r\n Oracle,\r\n Product,\r\n Riskpool\r\n }\r\n\r\n enum ComponentState {\r\n Created,\r\n Proposed,\r\n Declined,\r\n Active,\r\n Paused,\r\n Suspended,\r\n Archived\r\n }\r\n\r\n event LogComponentCreated (\r\n bytes32 componentName,\r\n IComponent.ComponentType componentType,\r\n address componentAddress,\r\n address registryAddress);\r\n\r\n function setId(uint256 id) external;\r\n\r\n function getName() external view returns(bytes32);\r\n function getId() external view returns(uint256);\r\n function getType() external view returns(ComponentType);\r\n function getState() external view returns(ComponentState);\r\n function getOwner() external view returns(address);\r\n\r\n function isProduct() external view returns(bool);\r\n function isOracle() external view returns(bool);\r\n function isRiskpool() external view returns(bool);\r\n\r\n function getRegistry() external view returns(IRegistry);\r\n\r\n function proposalCallback() external;\r\n function approvalCallback() external; \r\n function declineCallback() external;\r\n function suspendCallback() external;\r\n function resumeCallback() external;\r\n function pauseCallback() external;\r\n function unpauseCallback() external;\r\n function archiveCallback() external;\r\n}"},"@etherisc/gif-interface/contracts/components/IOracle.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./IComponent.sol\";\n\ninterface IOracle is IComponent {\n \n event LogOracleCreated (address oracleAddress);\n event LogOracleProposed (uint256 componentId);\n event LogOracleApproved (uint256 componentId);\n event LogOracleDeclined (uint256 componentId);\n \n function request(uint256 requestId, bytes calldata input) external;\n function cancel(uint256 requestId) external;\n}\n"},"@etherisc/gif-interface/contracts/components/IProduct.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./IComponent.sol\";\n\ninterface IProduct is IComponent {\n\n event LogProductCreated (address productAddress);\n event LogProductProposed (uint256 componentId);\n event LogProductApproved (uint256 componentId);\n event LogProductDeclined (uint256 componentId);\n\n function getToken() external view returns(address token);\n function getPolicyFlow() external view returns(address policyFlow);\n function getRiskpoolId() external view returns(uint256 riskpoolId);\n\n function getApplicationDataStructure() external view returns(string memory dataStructure);\n function getClaimDataStructure() external view returns(string memory dataStructure);\n function getPayoutDataStructure() external view returns(string memory dataStructure);\n\n function riskPoolCapacityCallback(uint256 capacity) external;\n}\n"},"@etherisc/gif-interface/contracts/components/IRiskpool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./IComponent.sol\";\nimport \"../modules/IBundle.sol\";\nimport \"../modules/IPolicy.sol\";\n\ninterface IRiskpool is IComponent {\n\n event LogRiskpoolCreated (address riskpoolAddress);\n event LogRiskpoolProposed (uint256 id);\n event LogRiskpoolApproved (uint256 id);\n event LogRiskpoolDeclined (uint256 id);\n\n event LogRiskpoolBundleCreated(uint256 bundleId, uint256 amount);\n event LogRiskpoolBundleMatchesPolicy(uint256 bundleId, bool isMatching);\n event LogRiskpoolCollateralLocked(bytes32 processId, uint256 collateralAmount, bool isSecured);\n\n event LogRiskpoolPremiumProcessed(bytes32 processId, uint256 amount);\n event LogRiskpoolPayoutProcessed(bytes32 processId, uint256 amount);\n event LogRiskpoolCollateralReleased(bytes32 processId, uint256 collateralAmount);\n\n\n function createBundle(bytes memory filter, uint256 initialAmount) external returns(uint256 bundleId);\n function fundBundle(uint256 bundleId, uint256 amount) external returns(uint256 netAmount);\n function defundBundle(uint256 bundleId, uint256 amount) external returns(uint256 netAmount);\n\n function lockBundle(uint256 bundleId) external;\n function unlockBundle(uint256 bundleId) external;\n function closeBundle(uint256 bundleId) external;\n function burnBundle(uint256 bundleId) external;\n\n function collateralizePolicy(bytes32 processId, uint256 collateralAmount) external returns(bool isSecured);\n function processPolicyPremium(bytes32 processId, uint256 amount) external;\n function processPolicyPayout(bytes32 processId, uint256 amount) external;\n function releasePolicy(bytes32 processId) external;\n\n function getCollateralizationLevel() external view returns (uint256);\n function getFullCollateralizationLevel() external view returns (uint256);\n\n function bundleMatchesApplication(\n IBundle.Bundle memory bundle, \n IPolicy.Application memory application\n ) \n external view returns(bool isMatching); \n \n function getFilterDataStructure() external view returns(string memory);\n\n function bundles() external view returns(uint256);\n function getBundle(uint256 idx) external view returns(IBundle.Bundle memory);\n\n function activeBundles() external view returns(uint256);\n function getActiveBundleId(uint256 idx) external view returns(uint256 bundleId);\n\n function getWallet() external view returns(address);\n function getErc20Token() external view returns(address);\n\n function getSumOfSumInsuredCap() external view returns (uint256);\n function getCapital() external view returns(uint256);\n function getTotalValueLocked() external view returns(uint256); \n function getCapacity() external view returns(uint256); \n function getBalance() external view returns(uint256); \n\n function setMaximumNumberOfActiveBundles(uint256 maximumNumberOfActiveBundles) external; \n function getMaximumNumberOfActiveBundles() external view returns(uint256 maximumNumberOfActiveBundles);\n}\n"},"@etherisc/gif-interface/contracts/components/Oracle.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"./IOracle.sol\";\r\nimport \"./Component.sol\";\r\nimport \"./IComponent.sol\";\r\nimport \"../services/IOracleService.sol\";\r\n\r\nabstract contract Oracle is\r\n IOracle, \r\n Component \r\n{ \r\n IOracleService private _oracleService;\r\n\r\n modifier onlyQuery {\r\n require(\r\n _msgSender() == _getContractAddress(\"Query\"),\r\n \"ERROR:ORA-001:ACCESS_DENIED\"\r\n );\r\n _;\r\n }\r\n\r\n constructor(\r\n bytes32 name,\r\n address registry\r\n )\r\n Component(name, ComponentType.Oracle, registry)\r\n {\r\n _oracleService = IOracleService(_getContractAddress(\"OracleService\"));\r\n emit LogOracleCreated(address(this));\r\n }\r\n\r\n // default callback function implementations\r\n function _afterApprove() internal override { \r\n emit LogOracleApproved(getId()); \r\n }\r\n\r\n function _afterPropose() internal override { emit LogOracleProposed(getId()); }\r\n function _afterDecline() internal override { emit LogOracleDeclined(getId()); }\r\n\r\n function _respond(uint256 requestId, bytes memory data) internal {\r\n _oracleService.respond(requestId, data);\r\n } \r\n}\r\n"},"@etherisc/gif-interface/contracts/components/Product.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./IProduct.sol\";\nimport \"./Component.sol\";\nimport \"../modules/IPolicy.sol\";\nimport \"../services/IInstanceService.sol\";\nimport \"../services/IProductService.sol\";\n\nabstract contract Product is\n IProduct, \n Component \n{ \n address private _policyFlow; // policy flow contract to use for this procut\n address private _token; // erc20 token to use for this product\n uint256 private _riskpoolId; // id of riskpool responsible for this product\n\n IProductService internal _productService;\n IInstanceService internal _instanceService;\n\n modifier onlyPolicyHolder(bytes32 policyId) {\n address policyHolder = _instanceService.getMetadata(policyId).owner;\n require(\n _msgSender() == policyHolder, \n \"ERROR:PRD-001:POLICY_OR_HOLDER_INVALID\"\n );\n _;\n }\n\n modifier onlyLicence {\n require(\n _msgSender() == _getContractAddress(\"Licence\"),\n \"ERROR:PRD-002:ACCESS_DENIED\"\n );\n _;\n }\n\n modifier onlyOracle {\n require(\n _msgSender() == _getContractAddress(\"Query\"),\n \"ERROR:PRD-003:ACCESS_DENIED\"\n );\n _;\n }\n\n constructor(\n bytes32 name,\n address token,\n bytes32 policyFlow,\n uint256 riskpoolId,\n address registry\n )\n Component(name, ComponentType.Product, registry)\n {\n _token = token;\n _riskpoolId = riskpoolId;\n\n // TODO add validation for policy flow\n _policyFlow = _getContractAddress(policyFlow);\n _productService = IProductService(_getContractAddress(\"ProductService\"));\n _instanceService = IInstanceService(_getContractAddress(\"InstanceService\"));\n\n emit LogProductCreated(address(this));\n }\n\n function getToken() public override view returns(address) {\n return _token;\n }\n\n function getPolicyFlow() public view override returns(address) {\n return _policyFlow;\n }\n\n function getRiskpoolId() public override view returns(uint256) {\n return _riskpoolId;\n }\n\n // default callback function implementations\n function _afterApprove() internal override { emit LogProductApproved(getId()); }\n\n function _afterPropose() internal override { emit LogProductProposed(getId()); }\n function _afterDecline() internal override { emit LogProductDeclined(getId()); }\n\n function _newApplication(\n address applicationOwner,\n uint256 premiumAmount,\n uint256 sumInsuredAmount,\n bytes memory metaData, \n bytes memory applicationData \n )\n internal\n returns(bytes32 processId)\n {\n processId = _productService.newApplication(\n applicationOwner, \n premiumAmount, \n sumInsuredAmount, \n metaData, \n applicationData);\n }\n\n function _collectPremium(bytes32 processId) \n internal\n returns(\n bool success,\n uint256 feeAmount,\n uint256 netAmount\n )\n {\n IPolicy.Policy memory policy = _getPolicy(processId);\n\n if (policy.premiumPaidAmount < policy.premiumExpectedAmount) {\n (success, feeAmount, netAmount) \n = _collectPremium(\n processId, \n policy.premiumExpectedAmount - policy.premiumPaidAmount\n );\n }\n }\n\n function _collectPremium(\n bytes32 processId,\n uint256 amount\n )\n internal\n returns(\n bool success,\n uint256 feeAmount,\n uint256 netAmount\n )\n {\n (success, feeAmount, netAmount) = _productService.collectPremium(processId, amount);\n }\n\n function _adjustPremiumSumInsured(\n bytes32 processId,\n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n ) internal {\n _productService.adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount);\n }\n\n function _revoke(bytes32 processId) internal {\n _productService.revoke(processId);\n }\n\n function _underwrite(bytes32 processId) internal returns(bool success) {\n success = _productService.underwrite(processId);\n }\n\n function _decline(bytes32 processId) internal {\n _productService.decline(processId);\n }\n\n function _expire(bytes32 processId) internal {\n _productService.expire(processId);\n }\n\n function _close(bytes32 processId) internal {\n _productService.close(processId);\n }\n\n function _newClaim(\n bytes32 processId, \n uint256 claimAmount,\n bytes memory data\n ) \n internal\n returns (uint256 claimId)\n {\n claimId = _productService.newClaim(\n processId, \n claimAmount, \n data);\n }\n\n function _confirmClaim(\n bytes32 processId,\n uint256 claimId,\n uint256 payoutAmount\n )\n internal\n {\n _productService.confirmClaim(\n processId, \n claimId, \n payoutAmount);\n }\n\n function _declineClaim(bytes32 processId, uint256 claimId) internal {\n _productService.declineClaim(processId, claimId);\n }\n\n function _closeClaim(bytes32 processId, uint256 claimId) internal {\n _productService.closeClaim(processId, claimId);\n }\n\n function _newPayout(\n bytes32 processId,\n uint256 claimId,\n uint256 amount,\n bytes memory data\n )\n internal\n returns(uint256 payoutId)\n {\n payoutId = _productService.newPayout(processId, claimId, amount, data);\n }\n\n function _processPayout(\n bytes32 processId,\n uint256 payoutId\n )\n internal\n returns(\n uint256 feeAmount,\n uint256 netPayoutAmount\n )\n {\n (\n feeAmount,\n netPayoutAmount\n ) = _productService.processPayout(processId, payoutId);\n }\n\n function _request(\n bytes32 processId,\n bytes memory input,\n string memory callbackMethodName,\n uint256 responsibleOracleId\n )\n internal\n returns (uint256 requestId)\n {\n requestId = _productService.request(\n processId,\n input,\n callbackMethodName,\n address(this),\n responsibleOracleId\n );\n }\n\n function _cancelRequest(uint256 requestId)\n internal\n {\n _productService.cancelRequest(requestId);\n }\n\n function _getMetadata(bytes32 processId) \n internal \n view \n returns (IPolicy.Metadata memory metadata) \n {\n return _instanceService.getMetadata(processId);\n }\n\n function _getApplication(bytes32 processId) \n internal \n view \n returns (IPolicy.Application memory application) \n {\n return _instanceService.getApplication(processId);\n }\n\n function _getPolicy(bytes32 processId) \n internal \n view \n returns (IPolicy.Policy memory policy) \n {\n return _instanceService.getPolicy(processId);\n }\n\n function _getClaim(bytes32 processId, uint256 claimId) \n internal \n view \n returns (IPolicy.Claim memory claim) \n {\n return _instanceService.getClaim(processId, claimId);\n }\n\n function _getPayout(bytes32 processId, uint256 payoutId) \n internal \n view \n returns (IPolicy.Payout memory payout) \n {\n return _instanceService.getPayout(processId, payoutId);\n }\n\n function getApplicationDataStructure() external override virtual view returns(string memory dataStructure) {\n return \"\";\n }\n\n function getClaimDataStructure() external override virtual view returns(string memory dataStructure) {\n return \"\";\n } \n function getPayoutDataStructure() external override virtual view returns(string memory dataStructure) {\n return \"\";\n }\n\n function riskPoolCapacityCallback(uint256 capacity) external override virtual { }\n}\n"},"@etherisc/gif-interface/contracts/components/Riskpool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"./IRiskpool.sol\";\r\nimport \"./Component.sol\";\r\n\r\nimport \"../modules/IBundle.sol\";\r\nimport \"../modules/IPolicy.sol\";\r\nimport \"../services/IInstanceService.sol\";\r\nimport \"../services/IRiskpoolService.sol\";\r\n\r\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\r\n\r\nabstract contract Riskpool is \r\n IRiskpool, \r\n Component \r\n{ \r\n // used for representation of collateralization\r\n // collateralization between 0 and 1 (1=100%) \r\n // value might be larger when overcollateralization\r\n uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10**18;\r\n string public constant DEFAULT_FILTER_DATA_STRUCTURE = \"\";\r\n\r\n IInstanceService internal _instanceService; \r\n IRiskpoolService internal _riskpoolService;\r\n IERC721 internal _bundleToken;\r\n \r\n // keep track of bundles associated with this riskpool\r\n uint256 [] internal _bundleIds;\r\n\r\n address private _wallet;\r\n address private _erc20Token;\r\n uint256 private _collateralization;\r\n uint256 private _sumOfSumInsuredCap;\r\n uint256 private _maxNumberOfActiveBundles;\r\n\r\n modifier onlyPool {\r\n require(\r\n _msgSender() == _getContractAddress(\"Pool\"),\r\n \"ERROR:RPL-001:ACCESS_DENIED\"\r\n );\r\n _;\r\n }\r\n\r\n modifier onlyBundleOwner(uint256 bundleId) {\r\n IBundle.Bundle memory bundle = _instanceService.getBundle(bundleId);\r\n address bundleOwner = _bundleToken.ownerOf(bundle.tokenId);\r\n\r\n require(\r\n _msgSender() == bundleOwner,\r\n \"ERROR:BUC-001:NOT_BUNDLE_OWNER\"\r\n );\r\n _;\r\n }\r\n\r\n constructor(\r\n bytes32 name,\r\n uint256 collateralization,\r\n uint256 sumOfSumInsuredCap,\r\n address erc20Token,\r\n address wallet,\r\n address registry\r\n )\r\n Component(name, ComponentType.Riskpool, registry)\r\n { \r\n _collateralization = collateralization;\r\n\r\n require(sumOfSumInsuredCap != 0, \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\");\r\n _sumOfSumInsuredCap = sumOfSumInsuredCap;\r\n\r\n require(erc20Token != address(0), \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\");\r\n _erc20Token = erc20Token;\r\n\r\n require(wallet != address(0), \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\");\r\n _wallet = wallet;\r\n\r\n _instanceService = IInstanceService(_getContractAddress(\"InstanceService\")); \r\n _riskpoolService = IRiskpoolService(_getContractAddress(\"RiskpoolService\"));\r\n _bundleToken = _instanceService.getBundleToken();\r\n }\r\n\r\n function _afterPropose() internal override virtual {\r\n _riskpoolService.registerRiskpool(\r\n _wallet,\r\n _erc20Token, \r\n _collateralization,\r\n _sumOfSumInsuredCap\r\n );\r\n }\r\n\r\n function createBundle(bytes memory filter, uint256 initialAmount) \r\n public virtual override\r\n returns(uint256 bundleId)\r\n {\r\n address bundleOwner = _msgSender();\r\n bundleId = _riskpoolService.createBundle(bundleOwner, filter, initialAmount);\r\n _bundleIds.push(bundleId);\r\n\r\n emit LogRiskpoolBundleCreated(bundleId, initialAmount);\r\n }\r\n\r\n function fundBundle(uint256 bundleId, uint256 amount) \r\n external override\r\n onlyBundleOwner(bundleId)\r\n returns(uint256 netAmount)\r\n {\r\n netAmount = _riskpoolService.fundBundle(bundleId, amount);\r\n }\r\n\r\n function defundBundle(uint256 bundleId, uint256 amount)\r\n external override\r\n onlyBundleOwner(bundleId)\r\n returns(uint256 netAmount)\r\n {\r\n netAmount = _riskpoolService.defundBundle(bundleId, amount);\r\n }\r\n\r\n function lockBundle(uint256 bundleId)\r\n external override\r\n onlyBundleOwner(bundleId)\r\n {\r\n _riskpoolService.lockBundle(bundleId);\r\n }\r\n\r\n function unlockBundle(uint256 bundleId)\r\n external override\r\n onlyBundleOwner(bundleId)\r\n {\r\n _riskpoolService.unlockBundle(bundleId);\r\n }\r\n\r\n function closeBundle(uint256 bundleId)\r\n external override\r\n onlyBundleOwner(bundleId)\r\n {\r\n _riskpoolService.closeBundle(bundleId);\r\n }\r\n\r\n function burnBundle(uint256 bundleId)\r\n external override\r\n onlyBundleOwner(bundleId)\r\n {\r\n _riskpoolService.burnBundle(bundleId);\r\n }\r\n\r\n function collateralizePolicy(bytes32 processId, uint256 collateralAmount) \r\n external override\r\n onlyPool\r\n returns(bool success) \r\n {\r\n success = _lockCollateral(processId, collateralAmount);\r\n emit LogRiskpoolCollateralLocked(processId, collateralAmount, success);\r\n }\r\n\r\n function processPolicyPayout(bytes32 processId, uint256 amount)\r\n external override\r\n onlyPool\r\n {\r\n _processPayout(processId, amount);\r\n emit LogRiskpoolPayoutProcessed(processId, amount);\r\n }\r\n\r\n function processPolicyPremium(bytes32 processId, uint256 amount)\r\n external override\r\n onlyPool\r\n {\r\n _processPremium(processId, amount);\r\n emit LogRiskpoolPremiumProcessed(processId, amount);\r\n }\r\n\r\n function releasePolicy(bytes32 processId) \r\n external override\r\n onlyPool\r\n {\r\n uint256 collateralAmount = _releaseCollateral(processId);\r\n emit LogRiskpoolCollateralReleased(processId, collateralAmount);\r\n }\r\n\r\n function setMaximumNumberOfActiveBundles(uint256 maximumNumberOfActiveBundles)\r\n external override\r\n onlyOwner\r\n {\r\n uint256 riskpoolId = getId();\r\n _riskpoolService.setMaximumNumberOfActiveBundles(riskpoolId, maximumNumberOfActiveBundles);\r\n }\r\n\r\n function getMaximumNumberOfActiveBundles()\r\n public view override\r\n returns(uint256 maximumNumberOfActiveBundles)\r\n {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.getMaximumNumberOfActiveBundles(riskpoolId);\r\n }\r\n\r\n function getWallet() public view override returns(address) {\r\n return _wallet;\r\n }\r\n\r\n function getErc20Token() public view override returns(address) {\r\n return _erc20Token;\r\n }\r\n\r\n function getSumOfSumInsuredCap() public view override returns (uint256) {\r\n return _sumOfSumInsuredCap;\r\n }\r\n\r\n function getFullCollateralizationLevel() public pure override returns (uint256) {\r\n return FULL_COLLATERALIZATION_LEVEL;\r\n }\r\n\r\n function getCollateralizationLevel() public view override returns (uint256) {\r\n return _collateralization;\r\n }\r\n\r\n function bundles() public override view returns(uint256) {\r\n return _bundleIds.length;\r\n }\r\n\r\n function getBundle(uint256 idx) public override view returns(IBundle.Bundle memory) {\r\n require(idx < _bundleIds.length, \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\");\r\n\r\n uint256 bundleIdx = _bundleIds[idx];\r\n return _instanceService.getBundle(bundleIdx);\r\n }\r\n\r\n function activeBundles() public override view returns(uint256) {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.activeBundles(riskpoolId);\r\n }\r\n\r\n function getActiveBundleId(uint256 idx) public override view returns(uint256 bundleId) {\r\n uint256 riskpoolId = getId();\r\n require(idx < _instanceService.activeBundles(riskpoolId), \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\");\r\n\r\n return _instanceService.getActiveBundleId(riskpoolId, idx);\r\n }\r\n\r\n function getFilterDataStructure() external override pure returns(string memory) {\r\n return DEFAULT_FILTER_DATA_STRUCTURE;\r\n }\r\n\r\n function getCapital() public override view returns(uint256) {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.getCapital(riskpoolId);\r\n }\r\n\r\n function getTotalValueLocked() public override view returns(uint256) {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.getTotalValueLocked(riskpoolId);\r\n }\r\n\r\n function getCapacity() public override view returns(uint256) {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.getCapacity(riskpoolId);\r\n }\r\n\r\n function getBalance() public override view returns(uint256) {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.getBalance(riskpoolId);\r\n }\r\n\r\n function bundleMatchesApplication(\r\n IBundle.Bundle memory bundle, \r\n IPolicy.Application memory application\r\n ) public override view virtual returns(bool isMatching);\r\n\r\n function _afterArchive() internal view override { \r\n uint256 riskpoolId = getId();\r\n require(\r\n _instanceService.unburntBundles(riskpoolId) == 0, \r\n \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\"\r\n );\r\n }\r\n\r\n function _lockCollateral(bytes32 processId, uint256 collateralAmount) internal virtual returns(bool success);\r\n function _processPremium(bytes32 processId, uint256 amount) internal virtual;\r\n function _processPayout(bytes32 processId, uint256 amount) internal virtual;\r\n function _releaseCollateral(bytes32 processId) internal virtual returns(uint256 collateralAmount);\r\n\r\n}"},"@etherisc/gif-interface/contracts/modules/IAccess.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IAccess {\n function getDefaultAdminRole() external view returns(bytes32 role);\n function getProductOwnerRole() external view returns(bytes32 role);\n function getOracleProviderRole() external view returns(bytes32 role);\n function getRiskpoolKeeperRole() external view returns(bytes32 role);\n function hasRole(bytes32 role, address principal) external view returns(bool);\n\n function grantRole(bytes32 role, address principal) external;\n function revokeRole(bytes32 role, address principal) external;\n function renounceRole(bytes32 role, address principal) external;\n \n function addRole(bytes32 role) external;\n function invalidateRole(bytes32 role) external;\n}\n"},"@etherisc/gif-interface/contracts/modules/IBundle.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IBundle {\n\n event LogBundleCreated(\n uint256 bundleId, \n uint256 riskpoolId, \n address owner,\n BundleState state,\n uint256 amount\n );\n\n event LogBundleStateChanged(uint256 bundleId, BundleState oldState, BundleState newState);\n\n event LogBundleCapitalProvided(uint256 bundleId, address sender, uint256 amount, uint256 capacity);\n event LogBundleCapitalWithdrawn(uint256 bundleId, address recipient, uint256 amount, uint256 capacity);\n\n event LogBundlePolicyCollateralized(uint256 bundleId, bytes32 processId, uint256 amount, uint256 capacity);\n event LogBundlePayoutProcessed(uint256 bundleId, bytes32 processId, uint256 amount);\n event LogBundlePolicyReleased(uint256 bundleId, bytes32 processId, uint256 amount, uint256 capacity);\n\n enum BundleState {\n Active,\n Locked,\n Closed,\n Burned\n }\n\n struct Bundle {\n uint256 id;\n uint256 riskpoolId;\n uint256 tokenId;\n BundleState state;\n bytes filter; // required conditions for applications to be considered for collateralization by this bundle\n uint256 capital; // net investment capital amount (<= balance)\n uint256 lockedCapital; // capital amount linked to collateralizaion of non-closed policies (<= capital)\n uint256 balance; // total amount of funds: net investment capital + net premiums - payouts\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n function create(address owner_, uint256 riskpoolId_, bytes calldata filter_, uint256 amount_) external returns(uint256 bundleId);\n function fund(uint256 bundleId, uint256 amount) external;\n function defund(uint256 bundleId, uint256 amount) external;\n\n function lock(uint256 bundleId) external;\n function unlock(uint256 bundleId) external;\n function close(uint256 bundleId) external;\n function burn(uint256 bundleId) external;\n\n function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 collateralAmount) external;\n function processPremium(uint256 bundleId, bytes32 processId, uint256 amount) external;\n function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) external;\n function releasePolicy(uint256 bundleId, bytes32 processId) external returns(uint256 collateralAmount);\n}\n"},"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../components/IComponent.sol\";\n\ninterface IComponentEvents {\n\n event LogComponentProposed (\n bytes32 componentName,\n IComponent.ComponentType componentType,\n address componentAddress,\n uint256 id);\n \n event LogComponentApproved (uint256 id);\n event LogComponentDeclined (uint256 id);\n\n event LogComponentSuspended (uint256 id);\n event LogComponentResumed (uint256 id);\n\n event LogComponentPaused (uint256 id);\n event LogComponentUnpaused (uint256 id);\n\n event LogComponentArchived (uint256 id);\n\n event LogComponentStateChanged (\n uint256 id, \n IComponent.ComponentState stateOld, \n IComponent.ComponentState stateNew);\n}\n"},"@etherisc/gif-interface/contracts/modules/ILicense.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface ILicense {\n\n function getAuthorizationStatus(address _sender)\n external\n view\n returns (uint256 productId, bool isAuthorized, address policyFlow);\n}\n"},"@etherisc/gif-interface/contracts/modules/IPolicy.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IPolicy {\n\n // Events\n event LogMetadataCreated(\n address owner,\n bytes32 processId,\n uint256 productId, \n PolicyFlowState state\n );\n\n event LogMetadataStateChanged(\n bytes32 processId, \n PolicyFlowState state\n );\n\n event LogApplicationCreated(\n bytes32 processId, \n uint256 premiumAmount, \n uint256 sumInsuredAmount\n );\n\n event LogApplicationRevoked(bytes32 processId);\n event LogApplicationUnderwritten(bytes32 processId);\n event LogApplicationDeclined(bytes32 processId);\n\n event LogPolicyCreated(bytes32 processId);\n event LogPolicyExpired(bytes32 processId);\n event LogPolicyClosed(bytes32 processId);\n\n event LogPremiumCollected(bytes32 processId, uint256 amount);\n \n event LogApplicationSumInsuredAdjusted(bytes32 processId, uint256 sumInsuredAmountOld, uint256 sumInsuredAmount);\n event LogApplicationPremiumAdjusted(bytes32 processId, uint256 premiumAmountOld, uint256 premiumAmount);\n event LogPolicyPremiumAdjusted(bytes32 processId, uint256 premiumExpectedAmountOld, uint256 premiumExpectedAmount);\n\n event LogClaimCreated(bytes32 processId, uint256 claimId, uint256 claimAmount);\n event LogClaimConfirmed(bytes32 processId, uint256 claimId, uint256 confirmedAmount);\n event LogClaimDeclined(bytes32 processId, uint256 claimId);\n event LogClaimClosed(bytes32 processId, uint256 claimId);\n\n event LogPayoutCreated(\n bytes32 processId,\n uint256 claimId,\n uint256 payoutId,\n uint256 amount\n );\n\n event LogPayoutProcessed(\n bytes32 processId, \n uint256 payoutId\n );\n\n // States\n enum PolicyFlowState {Started, Active, Finished}\n enum ApplicationState {Applied, Revoked, Underwritten, Declined}\n enum PolicyState {Active, Expired, Closed}\n enum ClaimState {Applied, Confirmed, Declined, Closed}\n enum PayoutState {Expected, PaidOut}\n\n // Objects\n struct Metadata {\n address owner;\n uint256 productId;\n PolicyFlowState state;\n bytes data;\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n struct Application {\n ApplicationState state;\n uint256 premiumAmount;\n uint256 sumInsuredAmount;\n bytes data; \n uint256 createdAt;\n uint256 updatedAt;\n }\n\n struct Policy {\n PolicyState state;\n uint256 premiumExpectedAmount;\n uint256 premiumPaidAmount;\n uint256 claimsCount;\n uint256 openClaimsCount;\n uint256 payoutMaxAmount;\n uint256 payoutAmount;\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n struct Claim {\n ClaimState state;\n uint256 claimAmount;\n uint256 paidAmount;\n bytes data;\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n struct Payout {\n uint256 claimId;\n PayoutState state;\n uint256 amount;\n bytes data;\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n function createPolicyFlow(\n address owner,\n uint256 productId, \n bytes calldata data\n ) external returns(bytes32 processId);\n\n function createApplication(\n bytes32 processId, \n uint256 premiumAmount,\n uint256 sumInsuredAmount,\n bytes calldata data\n ) external;\n\n function revokeApplication(bytes32 processId) external;\n function underwriteApplication(bytes32 processId) external;\n function declineApplication(bytes32 processId) external;\n\n function collectPremium(bytes32 processId, uint256 amount) external;\n\n function adjustPremiumSumInsured(\n bytes32 processId, \n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n ) external;\n\n function createPolicy(bytes32 processId) external;\n function expirePolicy(bytes32 processId) external;\n function closePolicy(bytes32 processId) external;\n\n function createClaim(\n bytes32 processId, \n uint256 claimAmount, \n bytes calldata data\n ) external returns (uint256 claimId);\n\n function confirmClaim(\n bytes32 processId, \n uint256 claimId, \n uint256 confirmedAmount\n ) external;\n\n function declineClaim(bytes32 processId, uint256 claimId) external;\n function closeClaim(bytes32 processId, uint256 claimId) external;\n\n function createPayout(\n bytes32 processId,\n uint256 claimId,\n uint256 payoutAmount,\n bytes calldata data\n ) external returns (uint256 payoutId);\n\n function processPayout(\n bytes32 processId,\n uint256 payoutId\n ) external;\n}\n"},"@etherisc/gif-interface/contracts/modules/IPool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IPool {\n\n event LogRiskpoolRegistered(\n uint256 riskpoolId, \n address wallet,\n address erc20Token, \n uint256 collateralizationLevel, \n uint256 sumOfSumInsuredCap\n );\n \n event LogRiskpoolRequiredCollateral(bytes32 processId, uint256 sumInsured, uint256 collateral);\n event LogRiskpoolCollateralizationFailed(uint256 riskpoolId, bytes32 processId, uint256 amount);\n event LogRiskpoolCollateralizationSucceeded(uint256 riskpoolId, bytes32 processId, uint256 amount);\n event LogRiskpoolCollateralReleased(uint256 riskpoolId, bytes32 processId, uint256 amount);\n\n struct Pool {\n uint256 id; // matches component id of riskpool\n address wallet; // riskpool wallet\n address erc20Token; // the value token of the riskpool\n uint256 collateralizationLevel; // required collateralization level to cover new policies \n uint256 sumOfSumInsuredCap; // max sum of sum insured the pool is allowed to secure\n uint256 sumOfSumInsuredAtRisk; // current sum of sum insured at risk in this pool\n uint256 capital; // net investment capital amount (<= balance)\n uint256 lockedCapital; // capital amount linked to collateralizaion of non-closed policies (<= capital)\n uint256 balance; // total amount of funds: net investment capital + net premiums - payouts\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n function registerRiskpool(\n uint256 riskpoolId, \n address wallet,\n address erc20Token,\n uint256 collateralizationLevel, \n uint256 sumOfSumInsuredCap\n ) external;\n\n function setRiskpoolForProduct(uint256 productId, uint256 riskpoolId) external;\n\n function underwrite(bytes32 processId) external returns(bool success);\n function processPremium(bytes32 processId, uint256 amount) external;\n function processPayout(bytes32 processId, uint256 amount) external;\n function release(bytes32 processId) external; \n}\n"},"@etherisc/gif-interface/contracts/modules/IQuery.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IQuery {\n\n struct OracleRequest {\n bytes32 processId;\n uint256 responsibleOracleId;\n address callbackContractAddress;\n string callbackMethodName;\n bytes data;\n uint256 createdAt;\n }\n\n event LogOracleRequested(\n bytes32 processId,\n uint256 requestId,\n uint256 responsibleOracleId\n );\n\n event LogOracleResponded(\n bytes32 processId,\n uint256 requestId,\n address responder,\n bool success\n );\n\n event LogOracleCanceled(\n uint256 requestId\n );\n\n function request(\n bytes32 processId,\n bytes calldata input,\n string calldata callbackMethodName,\n address callbackContractAddress,\n uint256 responsibleOracleId\n ) external returns (uint256 requestId);\n\n function respond(\n uint256 requestId,\n address responder,\n bytes calldata data\n ) external;\n\n function cancel(uint256 requestId) external;\n\n}\n"},"@etherisc/gif-interface/contracts/modules/IRegistry.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IRegistry {\n\n event LogContractRegistered(\n bytes32 release,\n bytes32 contractName,\n address contractAddress,\n bool isNew\n );\n\n event LogContractDeregistered(bytes32 release, bytes32 contractName);\n\n event LogReleasePrepared(bytes32 release);\n\n function registerInRelease(\n bytes32 _release,\n bytes32 _contractName,\n address _contractAddress\n ) external;\n\n function register(bytes32 _contractName, address _contractAddress) external;\n\n function deregisterInRelease(bytes32 _release, bytes32 _contractName)\n external;\n\n function deregister(bytes32 _contractName) external;\n\n function prepareRelease(bytes32 _newRelease) external;\n\n function getContractInRelease(bytes32 _release, bytes32 _contractName)\n external\n view\n returns (address _contractAddress);\n\n function getContract(bytes32 _contractName)\n external\n view\n returns (address _contractAddress);\n\n function getRelease() external view returns (bytes32 _release);\n\n function ensureSender(address sender, bytes32 _contractName) external view returns(bool _senderMatches);\n\n function contracts() external view returns (uint256 _numberOfContracts);\n\n function contractName(uint256 idx) external view returns (bytes32 _contractName);\n\n}\n"},"@etherisc/gif-interface/contracts/modules/ITreasury.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ninterface ITreasury {\n\n event LogTreasurySuspended();\n event LogTreasuryResumed();\n\n event LogTreasuryProductTokenSet(uint256 productId, uint256 riskpoolId, address erc20Address);\n event LogTreasuryInstanceWalletSet(address walletAddress);\n event LogTreasuryRiskpoolWalletSet(uint256 riskpoolId, address walletAddress);\n\n event LogTreasuryPremiumFeesSet(uint256 productId, uint256 fixedFee, uint256 fractionalFee);\n event LogTreasuryCapitalFeesSet(uint256 riskpoolId, uint256 fixedFee, uint256 fractionalFee);\n\n event LogTreasuryPremiumTransferred(address from, address riskpoolWalletAddress, uint256 amount);\n event LogTreasuryPayoutTransferred(address riskpoolWalletAddress, address to, uint256 amount);\n event LogTreasuryCapitalTransferred(address from, address riskpoolWalletAddress, uint256 amount);\n event LogTreasuryFeesTransferred(address from, address instanceWalletAddress, uint256 amount);\n event LogTreasuryWithdrawalTransferred(address riskpoolWalletAddress, address to, uint256 amount);\n\n event LogTreasuryPremiumProcessed(bytes32 processId, uint256 amount);\n event LogTreasuryPayoutProcessed(uint256 riskpoolId, address to, uint256 amount);\n event LogTreasuryCapitalProcessed(uint256 riskpoolId, uint256 bundleId, uint256 amount);\n event LogTreasuryWithdrawalProcessed(uint256 riskpoolId, uint256 bundleId, uint256 amount);\n\n struct FeeSpecification {\n uint256 componentId;\n uint256 fixedFee;\n uint256 fractionalFee;\n bytes feeCalculationData;\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n function setProductToken(uint256 productId, address erc20Address) external;\n\n function setInstanceWallet(address instanceWalletAddress) external;\n function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) external;\n\n function createFeeSpecification(\n uint256 componentId,\n uint256 fixedFee,\n uint256 fractionalFee,\n bytes calldata feeCalculationData\n )\n external view returns(FeeSpecification memory feeSpec);\n \n function setPremiumFees(FeeSpecification calldata feeSpec) external;\n function setCapitalFees(FeeSpecification calldata feeSpec) external;\n \n function processPremium(bytes32 processId) external \n returns(\n bool success,\n uint256 feeAmount,\n uint256 netPremiumAmount\n );\n \n function processPremium(bytes32 processId, uint256 amount) external \n returns(\n bool success,\n uint256 feeAmount,\n uint256 netPremiumAmount\n );\n \n function processPayout(bytes32 processId, uint256 payoutId) external \n returns(\n uint256 feeAmount,\n uint256 netPayoutAmount\n );\n \n function processCapital(uint256 bundleId, uint256 capitalAmount) external \n returns(\n uint256 feeAmount,\n uint256 netCapitalAmount\n );\n\n function processWithdrawal(uint256 bundleId, uint256 amount) external\n returns(\n uint256 feeAmount,\n uint256 netAmount\n );\n\n function getComponentToken(uint256 componentId) external view returns(IERC20 token);\n function getFeeSpecification(uint256 componentId) external view returns(FeeSpecification memory feeSpecification);\n\n function getFractionFullUnit() external view returns(uint256);\n function getInstanceWallet() external view returns(address instanceWalletAddress);\n function getRiskpoolWallet(uint256 riskpoolId) external view returns(address riskpoolWalletAddress);\n\n}\n"},"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../components/IComponent.sol\";\r\n\r\ninterface IComponentOwnerService {\r\n\r\n function propose(IComponent component) external;\r\n\r\n function stake(uint256 id) external;\r\n function withdraw(uint256 id) external;\r\n\r\n function pause(uint256 id) external; \r\n function unpause(uint256 id) external;\r\n\r\n function archive(uint256 id) external;\r\n}"},"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../modules/ITreasury.sol\";\n\ninterface IInstanceOperatorService {\n\n // registry\n function prepareRelease(bytes32 newRelease) external;\n function register(bytes32 contractName, address contractAddress) external;\n function deregister(bytes32 contractName) external;\n function registerInRelease(bytes32 release, bytes32 contractName, address contractAddress) external;\n function deregisterInRelease(bytes32 release, bytes32 contractName) external;\n\n // access\n function createRole(bytes32 role) external;\n function invalidateRole(bytes32 role) external;\n function grantRole(bytes32 role, address principal) external;\n function revokeRole(bytes32 role, address principal) external;\n\n // component\n function approve(uint256 id) external;\n function decline(uint256 id) external;\n function suspend(uint256 id) external;\n function resume(uint256 id) external;\n function archive(uint256 id) external;\n \n // service staking\n function setDefaultStaking(uint16 componentType, bytes calldata data) external;\n function adjustStakingRequirements(uint256 id, bytes calldata data) external;\n\n // treasury\n function suspendTreasury() external;\n function resumeTreasury() external;\n \n function setInstanceWallet(address walletAddress) external;\n function setRiskpoolWallet(uint256 riskpoolId, address walletAddress) external; \n function setProductToken(uint256 productId, address erc20Address) external; \n\n function setPremiumFees(ITreasury.FeeSpecification calldata feeSpec) external;\n function setCapitalFees(ITreasury.FeeSpecification calldata feeSpec) external;\n \n function createFeeSpecification(\n uint256 componentId,\n uint256 fixedFee,\n uint256 fractionalFee,\n bytes calldata feeCalculationData\n ) external view returns(ITreasury.FeeSpecification memory);\n\n\n}\n"},"@etherisc/gif-interface/contracts/services/IInstanceService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../components/IComponent.sol\";\nimport \"../modules/IBundle.sol\";\nimport \"../modules/IPolicy.sol\";\nimport \"../modules/IPool.sol\";\nimport \"../tokens/IBundleToken.sol\";\nimport \"./IComponentOwnerService.sol\";\nimport \"./IInstanceOperatorService.sol\";\nimport \"./IOracleService.sol\";\nimport \"./IProductService.sol\";\nimport \"./IRiskpoolService.sol\";\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\ninterface IInstanceService {\n\n // instance\n function getChainId() external view returns(uint256 chainId);\n function getChainName() external view returns(string memory chainName);\n function getInstanceId() external view returns(bytes32 instanceId);\n function getInstanceOperator() external view returns(address instanceOperator);\n\n // registry\n function getComponentOwnerService() external view returns(IComponentOwnerService service);\n function getInstanceOperatorService() external view returns(IInstanceOperatorService service);\n function getOracleService() external view returns(IOracleService service);\n function getProductService() external view returns(IProductService service);\n function getRiskpoolService() external view returns(IRiskpoolService service);\n function contracts() external view returns (uint256 numberOfContracts);\n function contractName(uint256 idx) external view returns (bytes32 name);\n\n // access\n function getDefaultAdminRole() external view returns(bytes32 role);\n function getProductOwnerRole() external view returns(bytes32 role);\n function getOracleProviderRole() external view returns(bytes32 role);\n function getRiskpoolKeeperRole() external view returns(bytes32 role);\n function hasRole(bytes32 role, address principal) external view returns (bool roleIsAssigned); \n\n // component\n function products() external view returns(uint256 numberOfProducts);\n function oracles() external view returns(uint256 numberOfOracles);\n function riskpools() external view returns(uint256 numberOfRiskpools);\n\n function getComponentId(address componentAddress) external view returns(uint256 componentId);\n function getComponent(uint256 componentId) external view returns(IComponent component);\n function getComponentType(uint256 componentId) external view returns(IComponent.ComponentType componentType);\n function getComponentState(uint256 componentId) external view returns(IComponent.ComponentState componentState);\n\n // service staking\n function getStakingRequirements(uint256 componentId) external view returns(bytes memory data);\n function getStakedAssets(uint256 componentId) external view returns(bytes memory data);\n\n // riskpool\n function getRiskpool(uint256 riskpoolId) external view returns(IPool.Pool memory riskPool);\n function getFullCollateralizationLevel() external view returns (uint256);\n function getCapital(uint256 riskpoolId) external view returns(uint256 capitalAmount);\n function getTotalValueLocked(uint256 riskpoolId) external view returns(uint256 totalValueLockedAmount);\n function getCapacity(uint256 riskpoolId) external view returns(uint256 capacityAmount);\n function getBalance(uint256 riskpoolId) external view returns(uint256 balanceAmount);\n\n function activeBundles(uint256 riskpoolId) external view returns(uint256 numberOfActiveBundles);\n function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external view returns(uint256 bundleId);\n function getMaximumNumberOfActiveBundles(uint256 riskpoolId) external view returns(uint256 maximumNumberOfActiveBundles);\n\n // bundles\n function getBundleToken() external view returns(IBundleToken token);\n function bundles() external view returns(uint256 numberOfBundles);\n function getBundle(uint256 bundleId) external view returns(IBundle.Bundle memory bundle);\n function unburntBundles(uint256 riskpoolId) external view returns(uint256 numberOfUnburntBundles);\n\n // policy\n function processIds() external view returns(uint256 numberOfProcessIds);\n function getMetadata(bytes32 processId) external view returns(IPolicy.Metadata memory metadata);\n function getApplication(bytes32 processId) external view returns(IPolicy.Application memory application);\n function getPolicy(bytes32 processId) external view returns(IPolicy.Policy memory policy);\n function claims(bytes32 processId) external view returns(uint256 numberOfClaims);\n function payouts(bytes32 processId) external view returns(uint256 numberOfPayouts);\n\n function getClaim(bytes32 processId, uint256 claimId) external view returns (IPolicy.Claim memory claim);\n function getPayout(bytes32 processId, uint256 payoutId) external view returns (IPolicy.Payout memory payout);\n\n // treasury\n function getTreasuryAddress() external view returns(address treasuryAddress);\n \n function getInstanceWallet() external view returns(address walletAddress);\n function getRiskpoolWallet(uint256 riskpoolId) external view returns(address walletAddress);\n \n function getComponentToken(uint256 componentId) external view returns(IERC20 token);\n function getFeeFractionFullUnit() external view returns(uint256 fullUnit);\n\n}\n"},"@etherisc/gif-interface/contracts/services/IOracleService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IOracleService {\n\n function respond(uint256 requestId, bytes calldata data) external;\n}\n"},"@etherisc/gif-interface/contracts/services/IProductService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IProductService {\n\n function newApplication(\n address owner,\n uint256 premiumAmount,\n uint256 sumInsuredAmount,\n bytes calldata metaData, \n bytes calldata applicationData \n ) external returns(bytes32 processId);\n\n function collectPremium(bytes32 processId, uint256 amount) external\n returns(\n bool success,\n uint256 feeAmount,\n uint256 netPremiumAmount\n );\n \n function adjustPremiumSumInsured(\n bytes32 processId, \n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n ) external;\n\n function revoke(bytes32 processId) external;\n function underwrite(bytes32 processId) external returns(bool success);\n function decline(bytes32 processId) external;\n function expire(bytes32 processId) external;\n function close(bytes32 processId) external;\n\n function newClaim(\n bytes32 processId, \n uint256 claimAmount,\n bytes calldata data\n ) external returns(uint256 claimId);\n\n function confirmClaim(\n bytes32 processId, \n uint256 claimId, \n uint256 confirmedAmount\n ) external;\n\n function declineClaim(bytes32 processId, uint256 claimId) external;\n function closeClaim(bytes32 processId, uint256 claimId) external;\n\n function newPayout(\n bytes32 processId, \n uint256 claimId, \n uint256 amount,\n bytes calldata data\n ) external returns(uint256 payoutId);\n\n function processPayout(bytes32 processId, uint256 payoutId) external\n returns(\n uint256 feeAmount,\n uint256 netPayoutAmount\n );\n\n function request(\n bytes32 processId,\n bytes calldata data,\n string calldata callbackMethodName,\n address callbackContractAddress,\n uint256 responsibleOracleId\n ) external returns(uint256 requestId);\n\n function cancelRequest(uint256 requestId) external;\n}\n"},"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IRiskpoolService {\n\n function registerRiskpool(\n address wallet,\n address erc20Token,\n uint256 collateralization, \n uint256 sumOfSumInsuredCap\n ) external;\n\n function createBundle(address owner_, bytes calldata filter_, uint256 amount_) external returns(uint256 bundleId);\n function fundBundle(uint256 bundleId, uint256 amount) external returns(uint256 netAmount);\n function defundBundle(uint256 bundleId, uint256 amount) external returns(uint256 netAmount);\n\n function lockBundle(uint256 bundleId) external;\n function unlockBundle(uint256 bundleId) external;\n function closeBundle(uint256 bundleId) external;\n function burnBundle(uint256 bundleId) external;\n\n function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 collateralAmount) external;\n function processPremium(uint256 bundleId, bytes32 processId, uint256 amount) external;\n function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) external;\n function releasePolicy(uint256 bundleId, bytes32 processId) external returns(uint256 collateralAmount);\n\n function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles) external;\n}\n\n"},"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\ninterface ICoreProxy {\r\n\r\n event LogCoreContractUpgraded (\r\n address oldImplementation, \r\n address newImplemntation\r\n );\r\n\r\n}\r\n"},"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\ninterface IBundleToken is\n IERC721\n{\n event LogBundleTokenMinted(uint256 bundleId, uint256 tokenId, address tokenOwner);\n event LogBundleTokenBurned(uint256 bundleId, uint256 tokenId); \n\n function burned(uint tokenId) external view returns(bool isBurned);\n function exists(uint256 tokenId) external view returns(bool doesExist);\n function getBundleId(uint256 tokenId) external view returns(uint256 bundleId);\n function totalSupply() external view returns(uint256 tokenCount);\n}\n"},"@openzeppelin/contracts/access/AccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\nimport \"../utils/Context.sol\";\nimport \"../utils/Strings.sol\";\nimport \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n struct RoleData {\n mapping(address => bool) members;\n bytes32 adminRole;\n }\n\n mapping(bytes32 => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Modifier that checks that an account has a specific role. Reverts\n * with a standardized message including the required role.\n *\n * The format of the revert reason is given by the following regular expression:\n *\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n *\n * _Available since v4.1._\n */\n modifier onlyRole(bytes32 role) {\n _checkRole(role);\n _;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\n return _roles[role].members[account];\n }\n\n /**\n * @dev Revert with a standard message if `_msgSender()` is missing `role`.\n * Overriding this function changes the behavior of the {onlyRole} modifier.\n *\n * Format of the revert message is described in {_checkRole}.\n *\n * _Available since v4.6._\n */\n function _checkRole(bytes32 role) internal view virtual {\n _checkRole(role, _msgSender());\n }\n\n /**\n * @dev Revert with a standard message if `account` is missing `role`.\n *\n * The format of the revert reason is given by the following regular expression:\n *\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n */\n function _checkRole(bytes32 role, address account) internal view virtual {\n if (!hasRole(role, account)) {\n revert(\n string(\n abi.encodePacked(\n \"AccessControl: account \",\n Strings.toHexString(uint160(account), 20),\n \" is missing role \",\n Strings.toHexString(uint256(role), 32)\n )\n )\n );\n }\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleGranted} event.\n */\n function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleRevoked} event.\n */\n function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n *\n * May emit a {RoleRevoked} event.\n */\n function renounceRole(bytes32 role, address account) public virtual override {\n require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event. Note that unlike {grantRole}, this function doesn't perform any\n * checks on the calling account.\n *\n * May emit a {RoleGranted} event.\n *\n * [WARNING]\n * ====\n * This function should only be called from the constructor when setting\n * up the initial roles for the system.\n *\n * Using this function in any other way is effectively circumventing the admin\n * system imposed by {AccessControl}.\n * ====\n *\n * NOTE: This function is deprecated in favor of {_grantRole}.\n */\n function _setupRole(bytes32 role, address account) internal virtual {\n _grantRole(role, account);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n bytes32 previousAdminRole = getRoleAdmin(role);\n _roles[role].adminRole = adminRole;\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleGranted} event.\n */\n function _grantRole(bytes32 role, address account) internal virtual {\n if (!hasRole(role, account)) {\n _roles[role].members[account] = true;\n emit RoleGranted(role, account, _msgSender());\n }\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleRevoked} event.\n */\n function _revokeRole(bytes32 role, address account) internal virtual {\n if (hasRole(role, account)) {\n _roles[role].members[account] = false;\n emit RoleRevoked(role, account, _msgSender());\n }\n }\n}\n"},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControlEnumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControlEnumerable.sol\";\nimport \"./AccessControl.sol\";\nimport \"../utils/structs/EnumerableSet.sol\";\n\n/**\n * @dev Extension of {AccessControl} that allows enumerating the members of each role.\n */\nabstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessControl {\n using EnumerableSet for EnumerableSet.AddressSet;\n\n mapping(bytes32 => EnumerableSet.AddressSet) private _roleMembers;\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControlEnumerable).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns one of the accounts that have `role`. `index` must be a\n * value between 0 and {getRoleMemberCount}, non-inclusive.\n *\n * Role bearers are not sorted in any particular way, and their ordering may\n * change at any point.\n *\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n * you perform all queries on the same block. See the following\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n * for more information.\n */\n function getRoleMember(bytes32 role, uint256 index) public view virtual override returns (address) {\n return _roleMembers[role].at(index);\n }\n\n /**\n * @dev Returns the number of accounts that have `role`. Can be used\n * together with {getRoleMember} to enumerate all bearers of a role.\n */\n function getRoleMemberCount(bytes32 role) public view virtual override returns (uint256) {\n return _roleMembers[role].length();\n }\n\n /**\n * @dev Overload {_grantRole} to track enumerable memberships\n */\n function _grantRole(bytes32 role, address account) internal virtual override {\n super._grantRole(role, account);\n _roleMembers[role].add(account);\n }\n\n /**\n * @dev Overload {_revokeRole} to track enumerable memberships\n */\n function _revokeRole(bytes32 role, address account) internal virtual override {\n super._revokeRole(role, account);\n _roleMembers[role].remove(account);\n }\n}\n"},"@openzeppelin/contracts/access/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n *\n * _Available since v3.1._\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {AccessControl-_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) external view returns (bool);\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n */\n function renounceRole(bytes32 role, address account) external;\n}\n"},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\n\n/**\n * @dev External interface of AccessControlEnumerable declared to support ERC165 detection.\n */\ninterface IAccessControlEnumerable is IAccessControl {\n /**\n * @dev Returns one of the accounts that have `role`. `index` must be a\n * value between 0 and {getRoleMemberCount}, non-inclusive.\n *\n * Role bearers are not sorted in any particular way, and their ordering may\n * change at any point.\n *\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n * you perform all queries on the same block. See the following\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n * for more information.\n */\n function getRoleMember(bytes32 role, uint256 index) external view returns (address);\n\n /**\n * @dev Returns the number of accounts that have `role`. Can be used\n * together with {getRoleMember} to enumerate all bearers of a role.\n */\n function getRoleMemberCount(bytes32 role) external view returns (uint256);\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor() {\n _transferOwnership(_msgSender());\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"},"@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n * proxy whose upgrades are fully controlled by the current implementation.\n */\ninterface IERC1822Proxiable {\n /**\n * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n * address.\n *\n * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n * function revert if invoked through a proxy.\n */\n function proxiableUUID() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n /**\n * @dev Must return an address that can be used as a delegate call target.\n *\n * {BeaconProxy} will check that this address is a contract.\n */\n function implementation() external view returns (address);\n}\n"},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Proxy.sol\";\nimport \"./ERC1967Upgrade.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\n /**\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n *\n * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n * function call, and allows initializing the storage of the proxy like a Solidity constructor.\n */\n constructor(address _logic, bytes memory _data) payable {\n _upgradeToAndCall(_logic, _data, false);\n }\n\n /**\n * @dev Returns the current implementation address.\n */\n function _implementation() internal view virtual override returns (address impl) {\n return ERC1967Upgrade._getImplementation();\n }\n}\n"},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (proxy/ERC1967/ERC1967Upgrade.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../beacon/IBeacon.sol\";\nimport \"../../interfaces/draft-IERC1822.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This abstract contract provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n *\n * _Available since v4.1._\n *\n * @custom:oz-upgrades-unsafe-allow delegatecall\n */\nabstract contract ERC1967Upgrade {\n // This is the keccak-256 hash of \"eip1967.proxy.rollback\" subtracted by 1\n bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\n\n /**\n * @dev Storage slot with the address of the current implementation.\n * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n * validated in the constructor.\n */\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n /**\n * @dev Emitted when the implementation is upgraded.\n */\n event Upgraded(address indexed implementation);\n\n /**\n * @dev Returns the current implementation address.\n */\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 implementation slot.\n */\n function _setImplementation(address newImplementation) private {\n require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n\n /**\n * @dev Perform implementation upgrade\n *\n * Emits an {Upgraded} event.\n */\n function _upgradeTo(address newImplementation) internal {\n _setImplementation(newImplementation);\n emit Upgraded(newImplementation);\n }\n\n /**\n * @dev Perform implementation upgrade with additional setup call.\n *\n * Emits an {Upgraded} event.\n */\n function _upgradeToAndCall(\n address newImplementation,\n bytes memory data,\n bool forceCall\n ) internal {\n _upgradeTo(newImplementation);\n if (data.length > 0 || forceCall) {\n Address.functionDelegateCall(newImplementation, data);\n }\n }\n\n /**\n * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n *\n * Emits an {Upgraded} event.\n */\n function _upgradeToAndCallUUPS(\n address newImplementation,\n bytes memory data,\n bool forceCall\n ) internal {\n // Upgrades from old implementations will perform a rollback test. This test requires the new\n // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\n // this special case will break upgrade paths from old UUPS implementation to new ones.\n if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\n _setImplementation(newImplementation);\n } else {\n try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\n require(slot == _IMPLEMENTATION_SLOT, \"ERC1967Upgrade: unsupported proxiableUUID\");\n } catch {\n revert(\"ERC1967Upgrade: new implementation is not UUPS\");\n }\n _upgradeToAndCall(newImplementation, data, forceCall);\n }\n }\n\n /**\n * @dev Storage slot with the admin of the contract.\n * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n * validated in the constructor.\n */\n bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n /**\n * @dev Emitted when the admin account has changed.\n */\n event AdminChanged(address previousAdmin, address newAdmin);\n\n /**\n * @dev Returns the current admin.\n */\n function _getAdmin() internal view returns (address) {\n return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 admin slot.\n */\n function _setAdmin(address newAdmin) private {\n require(newAdmin != address(0), \"ERC1967: new admin is the zero address\");\n StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\n }\n\n /**\n * @dev Changes the admin of the proxy.\n *\n * Emits an {AdminChanged} event.\n */\n function _changeAdmin(address newAdmin) internal {\n emit AdminChanged(_getAdmin(), newAdmin);\n _setAdmin(newAdmin);\n }\n\n /**\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\n */\n bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n /**\n * @dev Emitted when the beacon is upgraded.\n */\n event BeaconUpgraded(address indexed beacon);\n\n /**\n * @dev Returns the current beacon.\n */\n function _getBeacon() internal view returns (address) {\n return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\n }\n\n /**\n * @dev Stores a new beacon in the EIP1967 beacon slot.\n */\n function _setBeacon(address newBeacon) private {\n require(Address.isContract(newBeacon), \"ERC1967: new beacon is not a contract\");\n require(\n Address.isContract(IBeacon(newBeacon).implementation()),\n \"ERC1967: beacon implementation is not a contract\"\n );\n StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\n }\n\n /**\n * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n *\n * Emits a {BeaconUpgraded} event.\n */\n function _upgradeBeaconToAndCall(\n address newBeacon,\n bytes memory data,\n bool forceCall\n ) internal {\n _setBeacon(newBeacon);\n emit BeaconUpgraded(newBeacon);\n if (data.length > 0 || forceCall) {\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n }\n }\n}\n"},"@openzeppelin/contracts/proxy/Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n /**\n * @dev Delegates the current call to `implementation`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n */\n function _delegate(address implementation) internal virtual {\n assembly {\n // Copy msg.data. We take full control of memory in this inline assembly\n // block because it will not return to Solidity code. We overwrite the\n // Solidity scratch pad at memory position 0.\n calldatacopy(0, 0, calldatasize())\n\n // Call the implementation.\n // out and outsize are 0 because we don't know the size yet.\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n // Copy the returned data.\n returndatacopy(0, 0, returndatasize())\n\n switch result\n // delegatecall returns 0 on error.\n case 0 {\n revert(0, returndatasize())\n }\n default {\n return(0, returndatasize())\n }\n }\n }\n\n /**\n * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function\n * and {_fallback} should delegate.\n */\n function _implementation() internal view virtual returns (address);\n\n /**\n * @dev Delegates the current call to the address returned by `_implementation()`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n */\n function _fallback() internal virtual {\n _beforeFallback();\n _delegate(_implementation());\n }\n\n /**\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n * function in the contract matches the call data.\n */\n fallback() external payable virtual {\n _fallback();\n }\n\n /**\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n * is empty.\n */\n receive() external payable virtual {\n _fallback();\n }\n\n /**\n * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n * call, or as part of the Solidity `fallback` or `receive` functions.\n *\n * If overridden should call `super._beforeFallback()`.\n */\n function _beforeFallback() internal virtual {}\n}\n"},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../../utils/Address.sol\";\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * contract MyToken is ERC20Upgradeable {\n * function initialize() initializer public {\n * __ERC20_init(\"MyToken\", \"MTK\");\n * }\n * }\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n * function initializeV2() reinitializer(2) public {\n * __ERC20Permit_init(\"MyToken\");\n * }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n * _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Indicates that the contract has been initialized.\n * @custom:oz-retyped-from bool\n */\n uint8 private _initialized;\n\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool private _initializing;\n\n /**\n * @dev Triggered when the contract has been initialized or reinitialized.\n */\n event Initialized(uint8 version);\n\n /**\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n * `onlyInitializing` functions can be used to initialize parent contracts. Equivalent to `reinitializer(1)`.\n */\n modifier initializer() {\n bool isTopLevelCall = !_initializing;\n require(\n (isTopLevelCall && _initialized < 1) || (!Address.isContract(address(this)) && _initialized == 1),\n \"Initializable: contract is already initialized\"\n );\n _initialized = 1;\n if (isTopLevelCall) {\n _initializing = true;\n }\n _;\n if (isTopLevelCall) {\n _initializing = false;\n emit Initialized(1);\n }\n }\n\n /**\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n * used to initialize parent contracts.\n *\n * `initializer` is equivalent to `reinitializer(1)`, so a reinitializer may be used after the original\n * initialization step. This is essential to configure modules that are added through upgrades and that require\n * initialization.\n *\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n * a contract, executing them in the right order is up to the developer or operator.\n */\n modifier reinitializer(uint8 version) {\n require(!_initializing && _initialized < version, \"Initializable: contract is already initialized\");\n _initialized = version;\n _initializing = true;\n _;\n _initializing = false;\n emit Initialized(version);\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\n */\n modifier onlyInitializing() {\n require(_initializing, \"Initializable: contract is not initializing\");\n _;\n }\n\n /**\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n * through proxies.\n */\n function _disableInitializers() internal virtual {\n require(!_initializing, \"Initializable: contract is initializing\");\n if (_initialized < type(uint8).max) {\n _initialized = type(uint8).max;\n emit Initialized(type(uint8).max);\n }\n }\n}\n"},"@openzeppelin/contracts/security/Pausable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract Pausable is Context {\n /**\n * @dev Emitted when the pause is triggered by `account`.\n */\n event Paused(address account);\n\n /**\n * @dev Emitted when the pause is lifted by `account`.\n */\n event Unpaused(address account);\n\n bool private _paused;\n\n /**\n * @dev Initializes the contract in unpaused state.\n */\n constructor() {\n _paused = false;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is not paused.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n modifier whenNotPaused() {\n _requireNotPaused();\n _;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is paused.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n modifier whenPaused() {\n _requirePaused();\n _;\n }\n\n /**\n * @dev Returns true if the contract is paused, and false otherwise.\n */\n function paused() public view virtual returns (bool) {\n return _paused;\n }\n\n /**\n * @dev Throws if the contract is paused.\n */\n function _requireNotPaused() internal view virtual {\n require(!paused(), \"Pausable: paused\");\n }\n\n /**\n * @dev Throws if the contract is not paused.\n */\n function _requirePaused() internal view virtual {\n require(paused(), \"Pausable: not paused\");\n }\n\n /**\n * @dev Triggers stopped state.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n function _pause() internal virtual whenNotPaused {\n _paused = true;\n emit Paused(_msgSender());\n }\n\n /**\n * @dev Returns to normal state.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n function _unpause() internal virtual whenPaused {\n _paused = false;\n emit Unpaused(_msgSender());\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * The default value of {decimals} is 18. To select a different value for\n * {decimals} you should overload it.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\n * overridden;\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual override returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `amount`.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public virtual override returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, amount);\n _transfer(from, to, amount);\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, allowance(owner, spender) + addedValue);\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n address owner = _msgSender();\n uint256 currentAllowance = allowance(owner, spender);\n require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n unchecked {\n _approve(owner, spender, currentAllowance - subtractedValue);\n }\n\n return true;\n }\n\n /**\n * @dev Moves `amount` of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n */\n function _transfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {\n require(from != address(0), \"ERC20: transfer from the zero address\");\n require(to != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, amount);\n\n uint256 fromBalance = _balances[from];\n require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n unchecked {\n _balances[from] = fromBalance - amount;\n }\n _balances[to] += amount;\n\n emit Transfer(from, to, amount);\n\n _afterTokenTransfer(from, to, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply += amount;\n _balances[account] += amount;\n emit Transfer(address(0), account, amount);\n\n _afterTokenTransfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n uint256 accountBalance = _balances[account];\n require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n unchecked {\n _balances[account] = accountBalance - amount;\n }\n _totalSupply -= amount;\n\n emit Transfer(account, address(0), amount);\n\n _afterTokenTransfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n *\n * Does not update the allowance amount in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Might emit an {Approval} event.\n */\n function _spendAllowance(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n unchecked {\n _approve(owner, spender, currentAllowance - amount);\n }\n }\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * will be transferred to `to`.\n * - when `from` is zero, `amount` tokens will be minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * has been transferred to `to`.\n * - when `from` is zero, `amount` tokens have been minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n /**\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n * given ``owner``'s signed approval.\n *\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n * ordering also apply here.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `deadline` must be a timestamp in the future.\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n * over the EIP712-formatted function arguments.\n * - the signature must use ``owner``'s current nonce (see {nonces}).\n *\n * For more information on the signature format, see the\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n * section].\n */\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n /**\n * @dev Returns the current nonce for `owner`. This value must be\n * included whenever a signature is generated for {permit}.\n *\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\n * prevents a signature from being used multiple times.\n */\n function nonces(address owner) external view returns (uint256);\n\n /**\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n */\n // solhint-disable-next-line func-name-mixedcase\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/draft-IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using Address for address;\n\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n require(\n (value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n }\n\n function safeIncreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n uint256 newAllowance = token.allowance(address(this), spender) + value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n function safeDecreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n unchecked {\n uint256 oldAllowance = token.allowance(address(this), spender);\n require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n uint256 newAllowance = oldAllowance - value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n }\n\n function safePermit(\n IERC20Permit token,\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n uint256 nonceBefore = token.nonces(owner);\n token.permit(owner, spender, value, deadline, v, r, s);\n uint256 nonceAfter = token.nonces(owner);\n require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n if (returndata.length > 0) {\n // Return data is optional\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721.sol\";\nimport \"./IERC721Receiver.sol\";\nimport \"./extensions/IERC721Metadata.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/Context.sol\";\nimport \"../../utils/Strings.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\n using Address for address;\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Mapping from token ID to owner address\n mapping(uint256 => address) private _owners;\n\n // Mapping owner address to token count\n mapping(address => uint256) private _balances;\n\n // Mapping from token ID to approved address\n mapping(uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: address zero is not a valid owner\");\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n address owner = _owners[tokenId];\n require(owner != address(0), \"ERC721: invalid token ID\");\n return owner;\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n _requireMinted(tokenId);\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not token owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n _requireMinted(tokenId);\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner nor approved\");\n _safeTransfer(from, to, tokenId, data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _owners[tokenId] != address(0);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(\n address to,\n uint256 tokenId,\n bytes memory data\n ) internal virtual {\n _mint(to, tokenId);\n require(\n _checkOnERC721Received(address(0), to, tokenId, data),\n \"ERC721: transfer to non ERC721Receiver implementer\"\n );\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _balances[to] += 1;\n _owners[tokenId] = to;\n\n emit Transfer(address(0), to, tokenId);\n\n _afterTokenTransfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId);\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n _balances[owner] -= 1;\n delete _owners[tokenId];\n\n emit Transfer(owner, address(0), tokenId);\n\n _afterTokenTransfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _balances[from] -= 1;\n _balances[to] += 1;\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n _afterTokenTransfer(from, to, tokenId);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Emits an {ApprovalForAll} event.\n */\n function _setApprovalForAll(\n address owner,\n address operator,\n bool approved\n ) internal virtual {\n require(owner != operator, \"ERC721: approve to caller\");\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Reverts if the `tokenId` has not been minted yet.\n */\n function _requireMinted(uint256 tokenId) internal view virtual {\n require(_exists(tokenId), \"ERC721: invalid token ID\");\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) private returns (bool) {\n if (to.isContract()) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n return retval == IERC721Receiver.onERC721Received.selector;\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert(\"ERC721: transfer to non ERC721Receiver implementer\");\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n } else {\n return true;\n }\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes calldata data\n ) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n * constructor.\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n * revert reason using the provided one.\n *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/StorageSlot.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```\n * contract ERC1967 {\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n *\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant _HEX_SYMBOLS = \"0123456789abcdef\";\n uint8 private constant _ADDRESS_LENGTH = 20;\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n while (value != 0) {\n digits -= 1;\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\n value /= 10;\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n if (value == 0) {\n return \"0x00\";\n }\n uint256 temp = value;\n uint256 length = 0;\n while (temp != 0) {\n length++;\n temp >>= 8;\n }\n return toHexString(value, length);\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = _HEX_SYMBOLS[value & 0xf];\n value >>= 4;\n }\n require(value == 0, \"Strings: hex length insufficient\");\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n }\n}\n"},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/structs/EnumerableSet.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n *\n * [WARNING]\n * ====\n * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable.\n * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n *\n * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet.\n * ====\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping(bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) {\n // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n if (lastIndex != toDeleteIndex) {\n bytes32 lastValue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastValue;\n // Update the index for the moved value\n set._indexes[lastValue] = valueIndex; // Replace lastValue's index to valueIndex\n }\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n return set._values[index];\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function _values(Set storage set) private view returns (bytes32[] memory) {\n return set._values;\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {\n return _values(set._inner);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(AddressSet storage set) internal view returns (address[] memory) {\n bytes32[] memory store = _values(set._inner);\n address[] memory result;\n\n /// @solidity memory-safe-assembly\n assembly {\n result := store\n }\n\n return result;\n }\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(UintSet storage set) internal view returns (uint256[] memory) {\n bytes32[] memory store = _values(set._inner);\n uint256[] memory result;\n\n /// @solidity memory-safe-assembly\n assembly {\n result := store\n }\n\n return result;\n }\n}\n"},"contracts/examples/AyiiOracle.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.2;\n\nimport \"./strings.sol\";\n\nimport \"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\";\nimport \"@etherisc/gif-interface/contracts/components/Oracle.sol\";\n\ncontract AyiiOracle is \n Oracle, ChainlinkClient \n{\n using strings for bytes32;\n using Chainlink for Chainlink.Request;\n\n mapping(bytes32 /* Chainlink request ID */ => uint256 /* GIF request ID */) public gifRequests;\n bytes32 public jobId;\n uint256 public payment;\n\n event LogAyiiRequest(uint256 requestId, bytes32 chainlinkRequestId);\n \n event LogAyiiFulfill(\n uint256 requestId, \n bytes32 chainlinkRequestId, \n bytes32 projectId,\n bytes32 uaiId,\n bytes32 cropId,\n uint256 aaay\n );\n\n constructor(\n bytes32 _name,\n address _registry,\n address _chainLinkToken,\n address _chainLinkOperator,\n bytes32 _jobId,\n uint256 _payment\n )\n Oracle(_name, _registry)\n {\n updateRequestDetails(\n _chainLinkToken, \n _chainLinkOperator, \n _jobId, \n _payment);\n }\n\n function updateRequestDetails(\n address _chainLinkToken,\n address _chainLinkOperator,\n bytes32 _jobId,\n uint256 _payment\n ) \n public \n onlyOwner \n {\n if (_chainLinkToken != address(0)) { setChainlinkToken(_chainLinkToken); }\n if (_chainLinkOperator != address(0)) { setChainlinkOracle(_chainLinkOperator); }\n \n jobId = _jobId;\n payment = _payment;\n }\n\n function request(uint256 gifRequestId, bytes calldata input)\n external override\n onlyQuery\n {\n Chainlink.Request memory request_ = buildChainlinkRequest(\n jobId,\n address(this),\n this.fulfill.selector\n );\n\n (\n bytes32 projectId, \n bytes32 uaiId, \n bytes32 cropId\n ) = abi.decode(input, (bytes32, bytes32, bytes32));\n\n request_.add(\"projectId\", projectId.toB32String());\n request_.add(\"uaiId\", uaiId.toB32String());\n request_.add(\"cropId\", cropId.toB32String());\n\n bytes32 chainlinkRequestId = sendChainlinkRequest(request_, payment);\n\n gifRequests[chainlinkRequestId] = gifRequestId;\n emit LogAyiiRequest(gifRequestId, chainlinkRequestId);\n }\n\n function fulfill(\n bytes32 chainlinkRequestId, \n bytes32 projectId, \n bytes32 uaiId, \n bytes32 cropId, \n uint256 aaay\n )\n public recordChainlinkFulfillment(chainlinkRequestId) \n {\n uint256 gifRequest = gifRequests[chainlinkRequestId];\n bytes memory data = abi.encode(projectId, uaiId, cropId, aaay); \n _respond(gifRequest, data);\n\n delete gifRequests[chainlinkRequestId];\n emit LogAyiiFulfill(gifRequest, chainlinkRequestId, projectId, uaiId, cropId, aaay);\n }\n\n function cancel(uint256 requestId)\n external override\n onlyOwner\n {\n // TODO mid/low priority\n // cancelChainlinkRequest(_requestId, _payment, _callbackFunctionId, _expiration);\n }\n\n // only used for testing of chainlink operator\n function encodeFulfillParameters(\n bytes32 chainlinkRequestId, \n bytes32 projectId, \n bytes32 uaiId, \n bytes32 cropId, \n uint256 aaay\n ) \n external\n pure\n returns(bytes memory parameterData)\n {\n return abi.encode(\n chainlinkRequestId, \n projectId, \n uaiId, \n cropId, \n aaay\n );\n }\n\n function getChainlinkJobId() external view returns(bytes32 chainlinkJobId) {\n return jobId;\n }\n\n function getChainlinkPayment() external view returns(uint256 paymentAmount) {\n return payment;\n }\n\n function getChainlinkToken() external view returns(address linkTokenAddress) {\n return chainlinkTokenAddress();\n }\n\n function getChainlinkOperator() external view returns(address operator) {\n return chainlinkOracleAddress();\n }\n}\n\n"},"contracts/examples/AyiiProduct.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.2;\n\nimport \"../shared/TransferHelper.sol\";\n\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/Product.sol\";\nimport \"../modules/PolicyController.sol\";\n\nimport \"../modules/AccessController.sol\";\n\ncontract AyiiProduct is \n Product, \n AccessControl,\n Initializable\n{\n using EnumerableSet for EnumerableSet.Bytes32Set;\n\n bytes32 public constant NAME = \"AreaYieldIndexProduct\";\n bytes32 public constant VERSION = \"0.1\";\n bytes32 public constant POLICY_FLOW = \"PolicyDefaultFlow\";\n\n bytes32 public constant INSURER_ROLE = keccak256(\"INSURER\");\n\n uint256 public constant PERCENTAGE_MULTIPLIER = 2**24;\n\n uint256 public constant AAAY_MIN = 0;\n uint256 public constant AAAY_MAX = 15;\n\n uint256 public constant RISK_APH_MAX = 15 * PERCENTAGE_MULTIPLIER;\n uint256 public constant RISK_EXIT_MAX = PERCENTAGE_MULTIPLIER / 5;\n uint256 public constant RISK_TSI_AT_EXIT_MIN = PERCENTAGE_MULTIPLIER / 2;\n\n // group policy data structure\n struct Risk {\n bytes32 id; // hash over projectId, uaiId, cropId\n bytes32 projectId; // assumption: this makes risk unique over aggregarors/customers/seasons\n bytes32 uaiId; // region id\n bytes32 cropId; // crop id\n uint256 trigger; // at and above this harvest ratio no payout is made \n uint256 exit; // at and below this harvest ration the max payout is made\n uint256 tsi; // total sum insured at exit: max . payout percentage at exit\n uint256 aph; // average historical area yield for this crop and region\n uint256 requestId; \n bool requestTriggered;\n uint256 responseAt;\n uint256 aaay; // average area yield for current season for this crop and region\n uint256 payoutPercentage; // payout percentage for this year for this crop and region\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n uint256 private _oracleId;\n IERC20 private _token;\n\n bytes32 [] private _riskIds;\n mapping(bytes32 /* riskId */ => Risk) private _risks;\n mapping(bytes32 /* riskId */ => EnumerableSet.Bytes32Set /* processIds */) private _policies;\n bytes32 [] private _applications; // useful for debugging, might need to get rid of this\n\n event LogAyiiPolicyApplicationCreated(bytes32 policyId, address policyHolder, uint256 premiumAmount, uint256 sumInsuredAmount);\n event LogAyiiPolicyCreated(bytes32 policyId, address policyHolder, uint256 premiumAmount, uint256 sumInsuredAmount);\n event LogAyiiRiskDataCreated(bytes32 riskId, bytes32 productId, bytes32 uaiId, bytes32 cropId);\n event LogAyiiRiskDataBeforeAdjustment(bytes32 riskId, uint256 trigger, uint256 exit, uint256 tsi, uint aph);\n event LogAyiiRiskDataAfterAdjustment(bytes32 riskId, uint256 trigger, uint256 exit, uint256 tsi, uint aph);\n event LogAyiiRiskDataRequested(uint256 requestId, bytes32 riskId, bytes32 projectId, bytes32 uaiId, bytes32 cropId);\n event LogAyiiRiskDataReceived(uint256 requestId, bytes32 riskId, uint256 aaay);\n event LogAyiiRiskDataRequestCancelled(bytes32 processId, uint256 requestId);\n event LogAyiiRiskProcessed(bytes32 riskId, uint256 policies);\n event LogAyiiPolicyProcessed(bytes32 policyId);\n event LogAyiiClaimCreated(bytes32 policyId, uint256 claimId, uint256 payoutAmount);\n event LogAyiiPayoutCreated(bytes32 policyId, uint256 payoutAmount);\n\n event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to);\n event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance);\n event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData);\n\n constructor(\n bytes32 productName,\n address registry,\n address token,\n uint256 oracleId,\n uint256 riskpoolId,\n address insurer\n )\n Product(productName, token, POLICY_FLOW, riskpoolId, registry)\n {\n _token = IERC20(token);\n _oracleId = oracleId;\n\n _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());\n _setupRole(INSURER_ROLE, insurer);\n }\n\n function createRisk(\n bytes32 projectId,\n bytes32 uaiId,\n bytes32 cropId,\n uint256 trigger,\n uint256 exit,\n uint256 tsi,\n uint256 aph\n )\n external\n onlyRole(INSURER_ROLE)\n returns(bytes32 riskId)\n {\n _validateRiskParameters(trigger, exit, tsi, aph);\n\n riskId = getRiskId(projectId, uaiId, cropId);\n _riskIds.push(riskId);\n\n Risk storage risk = _risks[riskId];\n require(risk.createdAt == 0, \"ERROR:AYI-001:RISK_ALREADY_EXISTS\");\n\n risk.id = riskId;\n risk.projectId = projectId;\n risk.uaiId = uaiId;\n risk.cropId = cropId;\n risk.trigger = trigger;\n risk.exit = exit;\n risk.tsi = tsi;\n risk.aph = aph;\n risk.createdAt = block.timestamp; // solhint-disable-line\n risk.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogAyiiRiskDataCreated(\n risk.id, \n risk.projectId,\n risk.uaiId, \n risk.cropId);\n }\n\n function adjustRisk(\n bytes32 riskId,\n uint256 trigger,\n uint256 exit,\n uint256 tsi,\n uint256 aph\n )\n external\n onlyRole(INSURER_ROLE)\n {\n _validateRiskParameters(trigger, exit, tsi, aph);\n\n Risk storage risk = _risks[riskId];\n require(risk.createdAt > 0, \"ERROR:AYI-002:RISK_UNKNOWN\");\n require(EnumerableSet.length(_policies[riskId]) == 0, \"ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE\");\n\n emit LogAyiiRiskDataBeforeAdjustment(\n risk.id, \n risk.trigger,\n risk.exit, \n risk.tsi,\n risk.aph);\n \n risk.trigger = trigger;\n risk.exit = exit;\n risk.tsi = tsi;\n risk.aph = aph;\n\n emit LogAyiiRiskDataAfterAdjustment(\n risk.id, \n risk.trigger,\n risk.exit, \n risk.tsi,\n risk.aph);\n }\n\n function getRiskId(\n bytes32 projectId,\n bytes32 uaiId,\n bytes32 cropId\n )\n public\n pure\n returns(bytes32 riskId)\n {\n riskId = keccak256(abi.encode(projectId, uaiId, cropId));\n }\n\n\n function applyForPolicy(\n address policyHolder, \n uint256 premium, \n uint256 sumInsured,\n bytes32 riskId\n ) \n external \n onlyRole(INSURER_ROLE)\n returns(bytes32 processId)\n {\n Risk storage risk = _risks[riskId];\n require(risk.createdAt > 0, \"ERROR:AYI-004:RISK_UNDEFINED\");\n require(policyHolder != address(0), \"ERROR:AYI-005:POLICY_HOLDER_ZERO\");\n\n bytes memory metaData = \"\";\n bytes memory applicationData = abi.encode(riskId);\n\n processId = _newApplication(\n policyHolder, \n premium, \n sumInsured,\n metaData,\n applicationData);\n\n _applications.push(processId);\n\n emit LogAyiiPolicyApplicationCreated(\n processId, \n policyHolder, \n premium, \n sumInsured);\n\n bool success = _underwrite(processId);\n\n if (success) {\n EnumerableSet.add(_policies[riskId], processId);\n \n emit LogAyiiPolicyCreated(\n processId, \n policyHolder, \n premium, \n sumInsured);\n }\n }\n\n function underwrite(\n bytes32 processId\n ) \n external \n onlyRole(INSURER_ROLE)\n returns(bool success)\n {\n // ensure the application for processId exists\n _getApplication(processId);\n success = _underwrite(processId);\n\n if (success) {\n IPolicy.Application memory application = _getApplication(processId);\n IPolicy.Metadata memory metadata = _getMetadata(processId);\n emit LogAyiiPolicyCreated(\n processId, \n metadata.owner, \n application.premiumAmount, \n application.sumInsuredAmount);\n }\n }\n\n function collectPremium(bytes32 policyId) \n external\n onlyRole(INSURER_ROLE)\n returns(bool success, uint256 fee, uint256 netPremium)\n {\n (success, fee, netPremium) = _collectPremium(policyId);\n }\n\n /* premium collection always moves funds from the customers wallet to the riskpool wallet.\n * to stick to this principle: this method implements a two part transferFrom. \n * the 1st transfer moves the specified amount from the 'from' sender address to the customer\n * the 2nd transfer transfers the amount from the customer to the riskpool wallet (and some \n * fees to the instance wallet)\n */ \n function collectPremium(bytes32 policyId, address from, uint256 amount) \n external\n onlyRole(INSURER_ROLE)\n returns(bool success, uint256 fee, uint256 netPremium)\n {\n IPolicy.Metadata memory metadata = _getMetadata(policyId);\n\n if (from != metadata.owner) {\n bool transferSuccessful = TransferHelper.unifiedTransferFrom(_token, from, metadata.owner, amount);\n\n if (!transferSuccessful) {\n return (transferSuccessful, 0, amount);\n }\n }\n\n (success, fee, netPremium) = _collectPremium(policyId, amount);\n }\n\n function adjustPremiumSumInsured(\n bytes32 processId,\n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n )\n external\n onlyRole(INSURER_ROLE)\n {\n _adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount);\n }\n\n function triggerOracle(bytes32 processId) \n external\n onlyRole(INSURER_ROLE)\n returns(uint256 requestId)\n {\n Risk storage risk = _risks[_getRiskId(processId)];\n require(risk.createdAt > 0, \"ERROR:AYI-010:RISK_UNDEFINED\");\n require(risk.responseAt == 0, \"ERROR:AYI-011:ORACLE_ALREADY_RESPONDED\");\n\n bytes memory queryData = abi.encode(\n risk.projectId,\n risk.uaiId,\n risk.cropId\n );\n\n requestId = _request(\n processId, \n queryData,\n \"oracleCallback\",\n _oracleId\n );\n\n risk.requestId = requestId;\n risk.requestTriggered = true;\n risk.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogAyiiRiskDataRequested(\n risk.requestId, \n risk.id, \n risk.projectId, \n risk.uaiId, \n risk.cropId);\n } \n\n function cancelOracleRequest(bytes32 processId) \n external\n onlyRole(INSURER_ROLE)\n {\n Risk storage risk = _risks[_getRiskId(processId)];\n require(risk.createdAt > 0, \"ERROR:AYI-012:RISK_UNDEFINED\");\n require(risk.requestTriggered, \"ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND\");\n require(risk.responseAt == 0, \"ERROR:AYI-014:EXISTING_CALLBACK\");\n\n _cancelRequest(risk.requestId);\n\n // reset request id to allow to trigger again\n risk.requestTriggered = false;\n risk.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogAyiiRiskDataRequestCancelled(processId, risk.requestId);\n } \n\n function oracleCallback(\n uint256 requestId, \n bytes32 processId, \n bytes calldata responseData\n ) \n external \n onlyOracle\n {\n (\n bytes32 projectId, \n bytes32 uaiId, \n bytes32 cropId, \n uint256 aaay\n ) = abi.decode(responseData, (bytes32, bytes32, bytes32, uint256));\n\n bytes32 riskId = _getRiskId(processId);\n require(riskId == getRiskId(projectId, uaiId, cropId), \"ERROR:AYI-020:RISK_ID_MISMATCH\");\n\n Risk storage risk = _risks[riskId];\n require(risk.createdAt > 0, \"ERROR:AYI-021:RISK_UNDEFINED\");\n require(risk.requestId == requestId, \"ERROR:AYI-022:REQUEST_ID_MISMATCH\");\n require(risk.responseAt == 0, \"ERROR:AYI-023:EXISTING_CALLBACK\");\n\n require(aaay >= (AAAY_MIN * PERCENTAGE_MULTIPLIER) \n && aaay < (AAAY_MAX * PERCENTAGE_MULTIPLIER), \n \"ERROR:AYI-024:AAAY_INVALID\");\n\n // update risk using aaay info\n risk.aaay = aaay;\n risk.payoutPercentage = calculatePayoutPercentage(\n risk.tsi,\n risk.trigger,\n risk.exit,\n risk.aph,\n risk.aaay\n );\n\n risk.responseAt = block.timestamp; // solhint-disable-line\n risk.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogAyiiRiskDataReceived(\n requestId, \n riskId,\n aaay);\n }\n\n function processPoliciesForRisk(bytes32 riskId, uint256 batchSize)\n external\n onlyRole(INSURER_ROLE)\n returns(bytes32 [] memory processedPolicies)\n {\n Risk memory risk = _risks[riskId];\n require(risk.responseAt > 0, \"ERROR:AYI-030:ORACLE_RESPONSE_MISSING\");\n\n uint256 elements = EnumerableSet.length(_policies[riskId]);\n if (elements == 0) {\n emit LogAyiiRiskProcessed(riskId, 0);\n return new bytes32[](0);\n }\n\n if (batchSize == 0) { batchSize = elements; } \n else { batchSize = min(batchSize, elements); }\n\n processedPolicies = new bytes32[](batchSize);\n uint256 elementIdx = elements - 1;\n\n for (uint256 i = 0; i < batchSize; i++) {\n // grab and process the last policy\n bytes32 policyId = EnumerableSet.at(_policies[riskId], elementIdx - i);\n processPolicy(policyId);\n processedPolicies[i] = policyId;\n }\n\n emit LogAyiiRiskProcessed(riskId, batchSize);\n }\n\n function processPolicy(bytes32 policyId)\n public\n onlyRole(INSURER_ROLE)\n {\n IPolicy.Application memory application = _getApplication(policyId);\n bytes32 riskId = abi.decode(application.data, (bytes32));\n Risk memory risk = _risks[riskId];\n\n require(risk.id == riskId, \"ERROR:AYI-031:RISK_ID_INVALID\");\n require(risk.responseAt > 0, \"ERROR:AYI-032:ORACLE_RESPONSE_MISSING\");\n require(EnumerableSet.contains(_policies[riskId], policyId), \"ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN\");\n\n EnumerableSet.remove(_policies[riskId], policyId);\n\n\n uint256 claimAmount = calculatePayout(\n risk.payoutPercentage, \n application.sumInsuredAmount);\n \n uint256 claimId = _newClaim(policyId, claimAmount, \"\");\n emit LogAyiiClaimCreated(policyId, claimId, claimAmount);\n\n if (claimAmount > 0) {\n uint256 payoutAmount = claimAmount;\n _confirmClaim(policyId, claimId, payoutAmount);\n\n uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, \"\");\n _processPayout(policyId, payoutId);\n\n emit LogAyiiPayoutCreated(policyId, payoutAmount);\n }\n else {\n _declineClaim(policyId, claimId);\n _closeClaim(policyId, claimId);\n }\n\n _expire(policyId);\n _close(policyId);\n\n emit LogAyiiPolicyProcessed(policyId);\n }\n\n function calculatePayout(uint256 payoutPercentage, uint256 sumInsuredAmount)\n public\n pure\n returns(uint256 payoutAmount)\n {\n payoutAmount = payoutPercentage * sumInsuredAmount / PERCENTAGE_MULTIPLIER;\n }\n\n function calculatePayoutPercentage(\n uint256 tsi, // max payout percentage\n uint256 trigger,// at and above this harvest ratio no payout is made \n uint256 exit, // at and below this harvest ration the max payout is made\n uint256 aph, // average historical yield\n uint256 aaay // this season's yield\n )\n public\n pure\n returns(uint256 payoutPercentage)\n {\n // this year's harvest at or above threshold for any payouts\n if (aaay * PERCENTAGE_MULTIPLIER >= aph * trigger) {\n return 0;\n }\n\n // this year's harvest at or below threshold for maximal payout\n if (aaay * PERCENTAGE_MULTIPLIER <= aph * exit) {\n return tsi;\n }\n\n // calculated payout between exit and trigger\n uint256 harvestRatio = PERCENTAGE_MULTIPLIER * aaay / aph;\n payoutPercentage = tsi * (trigger - harvestRatio) / (trigger - exit);\n }\n\n function getPercentageMultiplier() external pure returns(uint256 multiplier) {\n return PERCENTAGE_MULTIPLIER;\n }\n\n function min(uint256 a, uint256 b) private pure returns (uint256) {\n return a <= b ? a : b;\n }\n\n\n function risks() external view returns(uint256) { return _riskIds.length; }\n function getRiskId(uint256 idx) external view returns(bytes32 riskId) { return _riskIds[idx]; }\n function getRisk(bytes32 riskId) external view returns(Risk memory risk) { return _risks[riskId]; }\n\n function applications() external view returns(uint256 applicationCount) {\n return _applications.length;\n }\n\n function getApplicationId(uint256 applicationIdx) external view returns(bytes32 processId) {\n return _applications[applicationIdx];\n }\n\n function policies(bytes32 riskId) external view returns(uint256 policyCount) {\n return EnumerableSet.length(_policies[riskId]);\n }\n\n function getPolicyId(bytes32 riskId, uint256 policyIdx) external view returns(bytes32 processId) {\n return EnumerableSet.at(_policies[riskId], policyIdx);\n }\n\n function getApplicationDataStructure() external override pure returns(string memory dataStructure) {\n return \"(bytes32 riskId)\";\n }\n\n\n function _validateRiskParameters(\n uint256 trigger, \n uint256 exit,\n uint256 tsi,\n uint256 aph\n )\n internal\n {\n require(trigger <= PERCENTAGE_MULTIPLIER, \"ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE\");\n require(trigger > exit, \"ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT\");\n require(exit <= RISK_EXIT_MAX, \"ERROR:AYI-042:RISK_EXIT_TOO_LARGE\");\n require(tsi >= RISK_TSI_AT_EXIT_MIN , \"ERROR:AYI-043:RISK_TSI_TOO_SMALL\");\n require(tsi <= PERCENTAGE_MULTIPLIER , \"ERROR:AYI-044:RISK_TSI_TOO_LARGE\");\n require(tsi + exit <= PERCENTAGE_MULTIPLIER, \"ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE\");\n require(aph > 0, \"ERROR:AYI-046:RISK_APH_ZERO_INVALID\");\n require(aph <= RISK_APH_MAX, \"ERROR:AYI-047:RISK_APH_TOO_LARGE\");\n }\n\n function _processPolicy(bytes32 policyId, Risk memory risk)\n internal\n {\n IPolicy.Application memory application \n = _getApplication(policyId);\n\n uint256 claimAmount = calculatePayout(\n risk.payoutPercentage, \n application.sumInsuredAmount);\n \n uint256 claimId = _newClaim(policyId, claimAmount, \"\");\n emit LogAyiiClaimCreated(policyId, claimId, claimAmount);\n\n if (claimAmount > 0) {\n uint256 payoutAmount = claimAmount;\n _confirmClaim(policyId, claimId, payoutAmount);\n\n uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, \"\");\n _processPayout(policyId, payoutId);\n\n emit LogAyiiPayoutCreated(policyId, payoutAmount);\n }\n else {\n _declineClaim(policyId, claimId);\n _closeClaim(policyId, claimId);\n }\n\n emit LogAyiiPolicyProcessed(policyId);\n }\n\n function _getRiskId(bytes32 processId) private view returns(bytes32 riskId) {\n IPolicy.Application memory application = _getApplication(processId);\n (riskId) = abi.decode(application.data, (bytes32));\n }\n}"},"contracts/examples/AyiiRiskpool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\r\n\r\nimport \"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IBundle.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\r\n\r\ncontract AyiiRiskpool is \r\n BasicRiskpool,\r\n AccessControl\r\n{\r\n // 0x5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d935\r\n bytes32 public constant INVESTOR_ROLE = keccak256(\"INVESTOR\");\r\n\r\n // restricts the maximal sum of sum insured that are secured by gthe riskpool\r\n uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24;\r\n\r\n constructor(\r\n bytes32 name,\r\n uint256 collateralization,\r\n address erc20Token,\r\n address wallet,\r\n address registry\r\n )\r\n BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry)\r\n {\r\n\r\n _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());\r\n }\r\n\r\n\r\n function grantInvestorRole(address investor)\r\n external\r\n onlyOwner\r\n {\r\n _setupRole(INVESTOR_ROLE, investor);\r\n }\r\n\r\n\r\n function createBundle(bytes memory filter, uint256 initialAmount) \r\n public override\r\n onlyRole(INVESTOR_ROLE)\r\n returns(uint256 bundleId)\r\n {\r\n bundleId = super.createBundle(filter, initialAmount);\r\n }\r\n\r\n\r\n // trivial implementation that matches every application\r\n function bundleMatchesApplication(\r\n IBundle.Bundle memory bundle, \r\n IPolicy.Application memory application\r\n ) \r\n public override\r\n pure\r\n returns(bool isMatching) \r\n {\r\n isMatching = true;\r\n }\r\n\r\n}"},"contracts/examples/mock/ChainlinkOperator.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract ChainlinkOperator is \n Ownable\n{\n\n struct Commitment {\n bytes31 paramsHash;\n uint8 dataVersion;\n }\n\n uint256 public constant getExpiryTime = 5 minutes;\n uint256 private constant MAXIMUM_DATA_VERSION = 256;\n uint256 private constant MINIMUM_CONSUMER_GAS_LIMIT = 400000;\n\n event AuthorizedSendersChanged(address[] senders, address changedBy);\n\n event OracleRequest(\n bytes32 indexed specId,\n address requester,\n bytes32 requestId,\n uint256 payment,\n address callbackAddr,\n bytes4 callbackFunctionId,\n uint256 cancelExpiration,\n uint256 dataVersion,\n bytes data\n );\n\n event CancelOracleRequest(bytes32 indexed requestId);\n\n event OracleResponse(bytes32 indexed requestId);\n\n // contract variables\n mapping(address => bool) private s_authorizedSenders;\n address[] private s_authorizedSenderList;\n\n mapping(bytes32 => Commitment) private s_commitments;\n\n /**\n * @notice prevents non-authorized addresses from calling this method\n */\n modifier validateAuthorizedSenderSetter() {\n require(_canSetAuthorizedSenders(), \"Cannot set authorized senders\");\n _;\n }\n\n constructor() Ownable() { }\n\n /**\n * @notice Sets the fulfillment permission for a given node. Use `true` to allow, `false` to disallow.\n * @param senders The addresses of the authorized Chainlink node\n */\n function setAuthorizedSenders(address[] calldata senders)\n external \n validateAuthorizedSenderSetter \n {\n require(senders.length > 0, \"Must have at least 1 authorized sender\");\n // Set previous authorized senders to false\n uint256 authorizedSendersLength = s_authorizedSenderList.length;\n for (uint256 i = 0; i < authorizedSendersLength; i++) {\n s_authorizedSenders[s_authorizedSenderList[i]] = false;\n }\n // Set new to true\n for (uint256 i = 0; i < senders.length; i++) {\n s_authorizedSenders[senders[i]] = true;\n }\n // Replace list\n s_authorizedSenderList = senders;\n emit AuthorizedSendersChanged(senders, msg.sender);\n }\n\n\n function getAuthorizedSenders()\n external \n view\n returns(address [] memory)\n {\n return s_authorizedSenderList;\n }\n\n /**\n * @notice Called when LINK is sent to the contract via `transferAndCall`\n * @dev The data payload's first 2 words will be overwritten by the `sender` and `amount`\n * values to ensure correctness. Calls oracleRequest.\n * @param sender Address of the sender\n * @param amount Amount of LINK sent (specified in wei)\n * @param data Payload of the transaction\n */\n function onTokenTransfer(\n address sender,\n uint256 amount,\n bytes memory data\n )\n public \n // validateFromLINK \n // permittedFunctionsForLINK(data) \n {\n assembly {\n // solhint-disable-next-line avoid-low-level-calls\n mstore(add(data, 36), sender) // ensure correct sender is passed\n // solhint-disable-next-line avoid-low-level-calls\n mstore(add(data, 68), amount) // ensure correct amount is passed\n }\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, ) = address(this).delegatecall(data); // calls oracleRequest\n require(success, \"Unable to create request\");\n }\n\n\n /**\n * @notice Creates the Chainlink request. This is a backwards compatible API\n * with the Oracle.sol contract, but the behavior changes because\n * callbackAddress is assumed to be the same as the request sender.\n * @param callbackAddress The consumer of the request\n * @param payment The amount of payment given (specified in wei)\n * @param specId The Job Specification ID\n * @param callbackAddress The address the oracle data will be sent to\n * @param callbackFunctionId The callback function ID for the response\n * @param nonce The nonce sent by the requester\n * @param dataVersion The specified data version\n * @param data The extra request parameters\n */\n function oracleRequest(\n address sender,\n uint256 payment,\n bytes32 specId,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n )\n external \n // override \n // validateFromLINK \n {\n (bytes32 requestId, uint256 expiration) = _verifyAndProcessOracleRequest(\n sender,\n payment,\n callbackAddress,\n callbackFunctionId,\n nonce,\n dataVersion\n );\n emit OracleRequest(specId, sender, requestId, payment, sender, callbackFunctionId, expiration, dataVersion, data);\n }\n\n\n /**\n * @notice Called by the Chainlink node to fulfill requests with multi-word support\n * @dev Given params must hash back to the commitment stored from `oracleRequest`.\n * Will call the callback address' callback function without bubbling up error\n * checking in a `require` so that the node can get paid.\n * @param requestId The fulfillment request ID that must match the requester's\n * @param payment The payment amount that will be released for the oracle (specified in wei)\n * @param callbackAddress The callback address to call for fulfillment\n * @param callbackFunctionId The callback function ID to use for fulfillment\n * @param expiration The expiration that the node should respond by before the requester can cancel\n * @param data The data to return to the consuming contract\n * @return Status if the external call was successful\n */\n function fulfillOracleRequest2(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes calldata data\n )\n external\n // override\n // validateAuthorizedSender\n // validateRequestId(requestId)\n // validateCallbackAddress(callbackAddress)\n // validateMultiWordResponseId(requestId, data)\n returns (bool)\n {\n _verifyOracleRequestAndProcessPayment(requestId, payment, callbackAddress, callbackFunctionId, expiration, 2);\n\n emit OracleResponse(requestId);\n require(gasleft() >= MINIMUM_CONSUMER_GAS_LIMIT, \"Must provide consumer enough gas\");\n\n // All updates to the oracle's fulfillment should come before calling the\n // callback(addr+functionId) as it is untrusted.\n // See: https://solidity.readthedocs.io/en/develop/security-considerations.html#use-the-checks-effects-interactions-pattern\n (bool success, ) = callbackAddress.call(abi.encodePacked(callbackFunctionId, data)); // solhint-disable-line avoid-low-level-calls\n return success;\n }\n\n\n /**\n * @notice Verify the Oracle Request and record necessary information\n * @param sender The sender of the request\n * @param payment The amount of payment given (specified in wei)\n * @param callbackAddress The callback address for the response\n * @param callbackFunctionId The callback function ID for the response\n * @param nonce The nonce sent by the requester\n */\n function _verifyAndProcessOracleRequest(\n address sender,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion\n ) \n private \n // validateNotToLINK(callbackAddress) \n returns (bytes32 requestId, uint256 expiration) \n {\n requestId = keccak256(abi.encodePacked(sender, nonce));\n require(s_commitments[requestId].paramsHash == 0, \"Must use a unique ID\");\n // solhint-disable-next-line not-rely-on-time\n // expiration = block.timestamp.add(getExpiryTime);\n expiration = block.timestamp + getExpiryTime;\n bytes31 paramsHash = _buildParamsHash(payment, callbackAddress, callbackFunctionId, expiration);\n s_commitments[requestId] = Commitment(paramsHash, _safeCastToUint8(dataVersion));\n // s_tokensInEscrow = s_tokensInEscrow.add(payment);\n return (requestId, expiration);\n }\n\n\n /**\n * @notice Verify the Oracle request and unlock escrowed payment\n * @param requestId The fulfillment request ID that must match the requester's\n * @param payment The payment amount that will be released for the oracle (specified in wei)\n * @param callbackAddress The callback address to call for fulfillment\n * @param callbackFunctionId The callback function ID to use for fulfillment\n * @param expiration The expiration that the node should respond by before the requester can cancel\n */\n function _verifyOracleRequestAndProcessPayment(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n uint256 dataVersion\n )\n internal\n {\n bytes31 paramsHash = _buildParamsHash(payment, callbackAddress, callbackFunctionId, expiration);\n require(s_commitments[requestId].paramsHash == paramsHash, \"Params do not match request ID\");\n require(s_commitments[requestId].dataVersion <= _safeCastToUint8(dataVersion), \"Data versions must match\");\n // s_tokensInEscrow = s_tokensInEscrow.sub(payment);\n delete s_commitments[requestId];\n }\n\n\n /**\n * @notice Build the bytes31 hash from the payment, callback and expiration.\n * @param payment The payment amount that will be released for the oracle (specified in wei)\n * @param callbackAddress The callback address to call for fulfillment\n * @param callbackFunctionId The callback function ID to use for fulfillment\n * @param expiration The expiration that the node should respond by before the requester can cancel\n * @return hash bytes31\n */\n function _buildParamsHash(\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration\n ) internal pure returns (bytes31) {\n return bytes31(keccak256(abi.encodePacked(payment, callbackAddress, callbackFunctionId, expiration)));\n }\n\n\n /**\n * @notice Safely cast uint256 to uint8\n * @param number uint256\n * @return uint8 number\n */\n function _safeCastToUint8(uint256 number) internal pure returns (uint8) {\n require(number < MAXIMUM_DATA_VERSION, \"number too big to cast\");\n return uint8(number);\n }\n\n /**\n * @notice concrete implementation of AuthorizedReceiver\n * @return bool of whether sender is authorized\n */\n function _canSetAuthorizedSenders() internal view returns (bool) {\n return owner() == msg.sender;\n }\n\n}\n"},"contracts/examples/mock/ChainlinkToken.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\nabstract contract ERC677Receiver {\n function onTokenTransfer (address _sender, uint _value, bytes calldata _data) public virtual;\n}\n\ncontract ChainlinkToken is ERC20 {\n constructor(address owner, uint256 supply) ERC20(\"Chainlink Dummy Token\", \"CDT\"){\n _mint(owner, supply);\n }\n\n function transferAndCall(address _to, uint _value, bytes calldata _data) public returns (bool success){\n super.transfer(_to, _value);\n // Transfer(msg.sender, _to, _value, _data);\n if (isContract(_to)) {\n contractFallback(_to, _value, _data);\n }\n return true;\n }\n\n function contractFallback(address _to, uint _value, bytes calldata _data) private {\n ERC677Receiver receiver = ERC677Receiver(_to);\n receiver.onTokenTransfer(msg.sender, _value, _data);\n }\n\n function isContract(address _addr) private view returns (bool hasCode) {\n uint length;\n assembly { length := extcodesize(_addr) }\n return length > 0;\n }\n}\n"},"contracts/examples/strings.sol":{"content":"// SPDX-License-Identifier: Apache2\r\n\r\n// source: https://github.com/Arachnid/solidity-stringutils\r\n/*\r\n * @title String & slice utility library for Solidity contracts.\r\n * @author Nick Johnson \r\n *\r\n * @dev Functionality in this library is largely implemented using an\r\n * abstraction called a 'slice'. A slice represents a part of a string -\r\n * anything from the entire string to a single character, or even no\r\n * characters at all (a 0-length slice). Since a slice only has to specify\r\n * an offset and a length, copying and manipulating slices is a lot less\r\n * expensive than copying and manipulating the strings they reference.\r\n *\r\n * To further reduce gas costs, most functions on slice that need to return\r\n * a slice modify the original one instead of allocating a new one; for\r\n * instance, `s.split(\".\")` will return the text up to the first '.',\r\n * modifying s to only contain the remainder of the string after the '.'.\r\n * In situations where you do not want to modify the original slice, you\r\n * can make a copy first with `.copy()`, for example:\r\n * `s.copy().split(\".\")`. Try and avoid using this idiom in loops; since\r\n * Solidity has no memory management, it will result in allocating many\r\n * short-lived slices that are later discarded.\r\n *\r\n * Functions that return two slices come in two versions: a non-allocating\r\n * version that takes the second slice as an argument, modifying it in\r\n * place, and an allocating version that allocates and returns the second\r\n * slice; see `nextRune` for example.\r\n *\r\n * Functions that have to copy string data will return strings rather than\r\n * slices; these can be cast back to slices for further processing if\r\n * required.\r\n *\r\n * For convenience, some functions are provided with non-modifying\r\n * variants that create a new slice and return both; for instance,\r\n * `s.splitNew('.')` leaves s unmodified, and returns two values\r\n * corresponding to the left and right parts of the string.\r\n */\r\npragma solidity 0.8.2;\r\n\r\nlibrary strings {\r\n\r\n struct slice {\r\n uint _len;\r\n uint _ptr;\r\n }\r\n\r\n function memcpy(uint dest, uint src, uint len_) private pure {\r\n // Copy word-length chunks while possible\r\n for(; len_ >= 32; len_ -= 32) {\r\n assembly {\r\n mstore(dest, mload(src))\r\n }\r\n dest += 32;\r\n src += 32;\r\n }\r\n\r\n // Copy remaining bytes\r\n uint mask = type(uint).max;\r\n if (len_ > 0) {\r\n mask = 256 ** (32 - len_) - 1;\r\n }\r\n assembly {\r\n let srcpart := and(mload(src), not(mask))\r\n let destpart := and(mload(dest), mask)\r\n mstore(dest, or(destpart, srcpart))\r\n }\r\n }\r\n\r\n /*\r\n * @dev Returns the length of a null-terminated bytes32 string.\r\n * @param self The value to find the length of.\r\n * @return The length of the string, from 0 to 32.\r\n */\r\n function len(bytes32 self) internal pure returns (uint) {\r\n uint ret;\r\n if (self == 0)\r\n return 0;\r\n if (uint(self) & type(uint128).max == 0) {\r\n ret += 16;\r\n self = bytes32(uint(self) / 0x100000000000000000000000000000000);\r\n }\r\n if (uint(self) & type(uint64).max == 0) {\r\n ret += 8;\r\n self = bytes32(uint(self) / 0x10000000000000000);\r\n }\r\n if (uint(self) & type(uint32).max == 0) {\r\n ret += 4;\r\n self = bytes32(uint(self) / 0x100000000);\r\n }\r\n if (uint(self) & type(uint16).max == 0) {\r\n ret += 2;\r\n self = bytes32(uint(self) / 0x10000);\r\n }\r\n if (uint(self) & type(uint8).max == 0) {\r\n ret += 1;\r\n }\r\n return 32 - ret;\r\n }\r\n\r\n // merge of toSliceB32 and toString of strings library\r\n function toB32String(bytes32 self) internal pure returns (string memory) {\r\n slice memory slc;\r\n assembly {\r\n let ptr := mload(0x40)\r\n mstore(0x40, add(ptr, 0x20))\r\n mstore(ptr, self)\r\n mstore(add(slc, 0x20), ptr)\r\n }\r\n slc._len = len(self);\r\n\r\n string memory ret = new string(slc._len);\r\n uint retptr;\r\n assembly { retptr := add(ret, 32) }\r\n memcpy(retptr, slc._ptr, slc._len);\r\n return ret;\r\n }\r\n}"},"contracts/flows/PolicyDefaultFlow.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../modules/ComponentController.sol\";\nimport \"../modules/PoolController.sol\";\nimport \"../modules/PolicyController.sol\";\nimport \"../modules/QueryModule.sol\";\nimport \"../modules/TreasuryModule.sol\";\nimport \"../shared/WithRegistry.sol\";\n\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\n// import \"@etherisc/gif-interface/contracts/modules/IQuery.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IPool.sol\";\n\n\ncontract PolicyDefaultFlow is \n WithRegistry \n{\n bytes32 public constant NAME = \"PolicyDefaultFlow\";\n\n modifier onlyActivePolicy(bytes32 processId) {\n PolicyController policy = getPolicyContract();\n require(\n policy.getPolicy(processId).state == IPolicy.PolicyState.Active,\n \"ERROR:PFD-001:POLICY_NOT_ACTIVE\"\n );\n _;\n }\n\n modifier onlyExpiredPolicy(bytes32 processId) {\n PolicyController policy = getPolicyContract();\n require(\n policy.getPolicy(processId).state == IPolicy.PolicyState.Expired,\n \"ERROR:PFD-002:POLICY_NOT_EXPIRED\"\n );\n _;\n }\n\n modifier notClosedPolicy(bytes32 processId) {\n PolicyController policy = getPolicyContract();\n require(\n policy.getPolicy(processId).state != IPolicy.PolicyState.Closed,\n \"ERROR:PFD-003:POLICY_CLOSED\"\n );\n _;\n }\n\n modifier onlyResponsibleProduct(bytes32 processId) {\n PolicyController policy = getPolicyContract();\n IPolicy.Metadata memory metadata = policy.getMetadata(processId);\n ComponentController component = ComponentController(getContractFromRegistry(\"Component\"));\n require(metadata.productId == component.getComponentId(address(msg.sender)), \"ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH\");\n _;\n }\n\n modifier onlyMatchingProduct(uint256 requestId) {\n QueryModule query = getQueryContract();\n bytes32 processId = getQueryContract().getProcessId(requestId);\n PolicyController policy = getPolicyContract();\n IPolicy.Metadata memory metadata = policy.getMetadata(processId);\n ComponentController component = ComponentController(getContractFromRegistry(\"Component\"));\n require(metadata.productId == component.getComponentId(address(msg.sender)), \"ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH\");\n _;\n }\n\n // ComponentController private _component;\n\n // solhint-disable-next-line no-empty-blocks\n constructor(address _registry) \n WithRegistry(_registry) \n { \n }\n\n function newApplication(\n address owner,\n uint256 premiumAmount,\n uint256 sumInsuredAmount,\n bytes calldata metaData, \n bytes calldata applicationData \n )\n external \n returns(bytes32 processId)\n {\n ComponentController component = getComponentContract();\n uint256 productId = component.getComponentId(msg.sender);\n\n IPolicy policy = getPolicyContract();\n processId = policy.createPolicyFlow(owner, productId, metaData);\n policy.createApplication(\n processId, \n premiumAmount, \n sumInsuredAmount, \n applicationData);\n }\n\n function revoke(bytes32 processId)\n external \n onlyResponsibleProduct(processId)\n {\n IPolicy policy = getPolicyContract();\n policy.revokeApplication(processId);\n }\n\n /* success implies the successful creation of a policy */\n function underwrite(bytes32 processId) \n external \n onlyResponsibleProduct(processId)\n returns(bool success) \n {\n // attempt to get the collateral to secure the policy\n PoolController pool = getPoolContract();\n success = pool.underwrite(processId);\n\n // TODO remove premium collection part below\n // this should be implemented on the prduct level\n // it's too much magic in the platform and not transparent enough\n // also, bad naming: the function name is 'underwrite? and not\n // 'underwriteAndIfSuccessfulCollectPremiumToo'\n if (success) {\n PolicyController policyController = getPolicyContract();\n policyController.underwriteApplication(processId);\n policyController.createPolicy(processId);\n\n // transfer premium amount\n IPolicy.Policy memory policy = policyController.getPolicy(processId);\n collectPremium(processId, policy.premiumExpectedAmount);\n }\n }\n\n /* success implies the successful collection of the amount for the policy.\n * valid amounts need to be > 0 up to the full premium amount\n * if no fee structure is defined for the policy, this call will revert. \n */\n function collectPremium(bytes32 processId, uint256 amount) \n public \n notClosedPolicy(processId)\n onlyResponsibleProduct(processId)\n returns(\n bool success, \n uint256 feeAmount, \n uint256 netPremiumAmount\n ) \n {\n TreasuryModule treasury = getTreasuryContract();\n PolicyController policy = getPolicyContract();\n\n (success, feeAmount, netPremiumAmount) = treasury.processPremium(processId, amount);\n\n // if premium collected: update book keeping of policy and riskpool\n if (success) {\n policy.collectPremium(processId, netPremiumAmount + feeAmount);\n\n PoolController pool = getPoolContract();\n pool.processPremium(processId, netPremiumAmount);\n }\n }\n \n function adjustPremiumSumInsured(\n bytes32 processId, \n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n )\n external\n notClosedPolicy(processId)\n onlyResponsibleProduct(processId)\n {\n PolicyController policy = getPolicyContract();\n policy.adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount);\n }\n\n\n function decline(bytes32 processId) \n onlyResponsibleProduct(processId)\n external \n {\n IPolicy policy = getPolicyContract();\n policy.declineApplication(processId);\n }\n\n function expire(bytes32 processId) \n external\n onlyActivePolicy(processId)\n onlyResponsibleProduct(processId)\n {\n IPolicy policy = getPolicyContract();\n policy.expirePolicy(processId);\n }\n\n function close(bytes32 processId) \n external\n onlyExpiredPolicy(processId)\n onlyResponsibleProduct(processId)\n {\n IPolicy policy = getPolicyContract();\n policy.closePolicy(processId);\n\n IPool pool = getPoolContract();\n pool.release(processId);\n }\n\n function newClaim(\n bytes32 processId, \n uint256 claimAmount,\n bytes calldata data\n )\n external\n onlyActivePolicy(processId)\n onlyResponsibleProduct(processId)\n returns (uint256 claimId)\n {\n claimId = getPolicyContract().createClaim(\n processId, \n claimAmount,\n data);\n }\n\n function confirmClaim(\n bytes32 processId,\n uint256 claimId,\n uint256 confirmedAmount\n ) \n external\n onlyResponsibleProduct(processId) \n {\n PolicyController policy = getPolicyContract();\n policy.confirmClaim(processId, claimId, confirmedAmount);\n }\n\n function declineClaim(bytes32 processId, uint256 claimId) \n external \n onlyResponsibleProduct(processId)\n {\n PolicyController policy = getPolicyContract();\n policy.declineClaim(processId, claimId);\n }\n\n function closeClaim(bytes32 processId, uint256 claimId) \n external \n onlyResponsibleProduct(processId)\n {\n PolicyController policy = getPolicyContract();\n policy.closeClaim(processId, claimId);\n }\n\n function newPayout(\n bytes32 processId,\n uint256 claimId,\n uint256 amount,\n bytes calldata data\n ) \n external \n onlyResponsibleProduct(processId)\n returns(uint256 payoutId)\n {\n payoutId = getPolicyContract()\n .createPayout(processId, claimId, amount, data);\n }\n\n function processPayout(\n bytes32 processId,\n uint256 payoutId\n )\n external \n onlyResponsibleProduct(processId)\n returns(\n bool success,\n uint256 feeAmount,\n uint256 netPayoutAmount\n )\n {\n TreasuryModule treasury = getTreasuryContract();\n (feeAmount, netPayoutAmount) = treasury.processPayout(processId, payoutId);\n\n // if payout successful: update book keeping of policy and riskpool\n IPolicy policy = getPolicyContract();\n policy.processPayout(processId, payoutId);\n\n PoolController pool = getPoolContract();\n pool.processPayout(processId, netPayoutAmount + feeAmount);\n }\n\n function request(\n bytes32 processId,\n bytes calldata _input,\n string calldata _callbackMethodName,\n address _callbackContractAddress,\n uint256 _responsibleOracleId\n ) \n external \n onlyResponsibleProduct(processId)\n returns (uint256 _requestId) \n {\n _requestId = getQueryContract().request(\n processId,\n _input,\n _callbackMethodName,\n _callbackContractAddress,\n _responsibleOracleId\n );\n }\n\n function cancelRequest(\n uint256 requestId\n ) \n external \n onlyMatchingProduct(requestId)\n {\n getQueryContract().cancel(requestId);\n }\n\n function getApplicationData(bytes32 processId)\n external\n view\n returns (bytes memory)\n {\n PolicyController policy = getPolicyContract();\n return policy.getApplication(processId).data;\n }\n\n function getClaimData(bytes32 processId, uint256 claimId)\n external\n view\n returns (bytes memory)\n {\n PolicyController policy = getPolicyContract();\n return policy.getClaim(processId, claimId).data;\n }\n\n function getPayoutData(bytes32 processId, uint256 payoutId)\n external\n view\n returns (bytes memory)\n {\n PolicyController policy = getPolicyContract();\n return policy.getPayout(processId, payoutId).data;\n }\n\n function getComponentContract() internal view returns (ComponentController) {\n return ComponentController(getContractFromRegistry(\"Component\"));\n }\n\n function getPoolContract() internal view returns (PoolController) {\n return PoolController(getContractFromRegistry(\"Pool\"));\n }\n\n function getPolicyContract() internal view returns (PolicyController) {\n return PolicyController(getContractFromRegistry(\"Policy\"));\n }\n\n function getQueryContract() internal view returns (QueryModule) {\n return QueryModule(getContractFromRegistry(\"Query\"));\n }\n\n function getTreasuryContract() internal view returns (TreasuryModule) {\n return TreasuryModule(getContractFromRegistry(\"Treasury\"));\n }\n}\n"},"contracts/Migrations.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ncontract Migrations {\n address public owner;\n uint256 public last_completed_migration; // solhint-disable-line\n\n constructor() {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint256 _completed) public restricted {\n last_completed_migration = _completed;\n }\n\n function upgrade(address _newAddress) public restricted {\n Migrations upgraded = Migrations(_newAddress);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n"},"contracts/modules/AccessController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../shared/CoreController.sol\";\r\n\r\nimport \"@etherisc/gif-interface/contracts/modules/IAccess.sol\";\r\n\r\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\r\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\r\n\r\n/**\r\nThe provided smart contract is called \"AccessController\" and is written in Solidity. It implements the \"IAccess\" interface and inherits from the \"CoreController\" contract and the \"AccessControlEnumerable\" contract. The contract provides functionalities for access control and role management.\r\n\r\nRoles:\r\nThe contract defines three role identifiers as bytes32 constants:\r\n1. PRODUCT_OWNER_ROLE: Represents the role of a product owner.\r\n2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider.\r\n3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper.\r\n\r\nState Variables:\r\n- `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid.\r\n- `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set.\r\n\r\nFunctions:\r\n- `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function.\r\n- `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value.\r\n- `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event.\r\n- `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract.\r\n- `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract.\r\n- `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract.\r\n- `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping.\r\n- `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping.\r\n- `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role.\r\n- `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE.\r\n- `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE.\r\n- `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE.\r\n- `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE.\r\n- `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true.\r\n\r\nModifiers:\r\n- `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators.\r\n\r\nOverall, the contract provides a flexible access control mechanism by defining roles and allowing the assignment, revocation, and validation of roles by instance operators. It also sets a default admin role and manages the validity of roles through the `validRole` mapping.\r\n*/\r\n\r\n\r\ncontract AccessController is \r\n IAccess, \r\n CoreController,\r\n AccessControlEnumerable\r\n {\r\n\r\n // 0xe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd\r\n bytes32 public constant PRODUCT_OWNER_ROLE = keccak256(\"PRODUCT_OWNER_ROLE\");\r\n\r\n // 0xd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa2\r\n bytes32 public constant ORACLE_PROVIDER_ROLE = keccak256(\"ORACLE_PROVIDER_ROLE\");\r\n\r\n // 0x3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd\r\n bytes32 public constant RISKPOOL_KEEPER_ROLE = keccak256(\"RISKPOOL_KEEPER_ROLE\");\r\n\r\n mapping(bytes32 => bool) public validRole;\r\n\r\n bool private _defaultAdminSet;\r\n\r\n function _afterInitialize() internal override {\r\n // add product owner, oracle provider and riskpool keeper roles\r\n _populateValidRoles();\r\n }\r\n\r\n function _getName() internal override pure returns(bytes32) { return \"Access\"; }\r\n\r\n // IMPORTANT check the setting of the default admin role\r\n // after the deployment of a GIF instance.\r\n // this method is called in the deployment of\r\n // the instance operator proxy/controller \r\n function setDefaultAdminRole(address defaultAdmin) \r\n external \r\n {\r\n require(!_defaultAdminSet, \"ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET\");\r\n _defaultAdminSet = true;\r\n\r\n _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);\r\n }\r\n\r\n //--- manage role ownership ---------------------------------------------//\r\n function grantRole(bytes32 role, address principal) \r\n public \r\n override(IAccessControl, IAccess) \r\n onlyInstanceOperator \r\n {\r\n require(validRole[role], \"ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID\");\r\n AccessControl.grantRole(role, principal);\r\n }\r\n\r\n function revokeRole(bytes32 role, address principal) \r\n public \r\n override(IAccessControl, IAccess) \r\n onlyInstanceOperator \r\n {\r\n AccessControl.revokeRole(role, principal);\r\n }\r\n\r\n function renounceRole(bytes32 role, address principal) \r\n public \r\n override(IAccessControl, IAccess) \r\n {\r\n AccessControl.renounceRole(role, principal);\r\n }\r\n \r\n //--- manage roles ------------------------------------------------------//\r\n function addRole(bytes32 role) \r\n public override\r\n onlyInstanceOperator \r\n {\r\n require(!validRole[role], \"ERROR:ACL-003:ROLE_EXISTING_AND_VALID\");\r\n validRole[role] = true;\r\n }\r\n\r\n function invalidateRole(bytes32 role)\r\n public override\r\n onlyInstanceOperator \r\n {\r\n require(validRole[role], \"ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID\");\r\n validRole[role] = false;\r\n }\r\n\r\n function hasRole(bytes32 role, address principal) \r\n public view \r\n override(IAccessControl, IAccess) \r\n returns(bool)\r\n {\r\n return super.hasRole(role, principal);\r\n }\r\n\r\n function getDefaultAdminRole() public pure override returns(bytes32) {\r\n return DEFAULT_ADMIN_ROLE;\r\n }\r\n\r\n function getProductOwnerRole() public pure override returns(bytes32) {\r\n return PRODUCT_OWNER_ROLE;\r\n }\r\n\r\n function getOracleProviderRole() public pure override returns(bytes32) {\r\n return ORACLE_PROVIDER_ROLE;\r\n }\r\n\r\n function getRiskpoolKeeperRole() public pure override returns(bytes32) {\r\n return RISKPOOL_KEEPER_ROLE;\r\n }\r\n\r\n function _populateValidRoles() private {\r\n validRole[PRODUCT_OWNER_ROLE] = true;\r\n validRole[ORACLE_PROVIDER_ROLE] = true;\r\n validRole[RISKPOOL_KEEPER_ROLE] = true;\r\n }\r\n}\r\n"},"contracts/modules/BundleController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./PolicyController.sol\";\nimport \"../shared/CoreController.sol\";\nimport \"../tokens/BundleToken.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IBundle.sol\";\nimport \"./PoolController.sol\";\n\n/**\nThe smart contract is used to manage bundles, which are collections of policies.\n\n- The contract imports other Solidity contracts such as `PolicyController.sol`, `CoreController.sol`, and `BundleToken.sol`.\n- The contract implements the `IBundle` interface and extends the `CoreController` contract.\n- It defines several mappings to store information about bundles, active policies, locked capital per policy, and the number of unburt bundles for each risk pool.\n- There is a private variable `_bundleCount` to keep track of the number of bundles created.\n- The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`.\n\nFunctions: \n- `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment.\n- `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token.\n- `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance.\n- `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle.\n- `lock()`: Locks a bundle of assets by changing its state to \"Locked.\"\n- `unlock()`: Unlocks a bundle, changing its state back to \"Active.\"\n- `close()`: Closes a bundle of policies.\n- `burn()`: Burns a bundle, changing its state to \"Burned.\"\n- `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle.\n- `processPremium()`: Processes the premium payment for a given bundle and updates its balance.\n- `processPayout()`: Processes a payout for a policy from a bundle.\n- `releasePolicy()`: Releases a policy and updates the bundle's capital.\n\nThe contract includes various modifiers and event emitters to enforce access control and emit relevant events.\nOverall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle.\n */\n\n\ncontract BundleController is \n IBundle,\n CoreController\n{\n\n PolicyController private _policy;\n BundleToken private _token; \n\n mapping(uint256 /* bundleId */ => Bundle /* Bundle */) private _bundles;\n mapping(uint256 /* bundleId */ => uint256 /* activePolicyCount */) private _activePolicies;\n mapping(uint256 /* bundleId */ => mapping(bytes32 /* processId */ => uint256 /* lockedCapitalAmount */)) private _valueLockedPerPolicy;\n mapping(uint256 /* riskpoolId */ => uint256 /* numberOfUnburntBundles */) private _unburntBundlesForRiskpoolId;\n \n\n uint256 private _bundleCount;\n\n modifier onlyRiskpoolService() {\n require(\n _msgSender() == _getContractAddress(\"RiskpoolService\"),\n \"ERROR:BUC-001:NOT_RISKPOOL_SERVICE\"\n );\n _;\n }\n\n modifier onlyFundableBundle(uint256 bundleId) {\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST\");\n require(\n bundle.state != IBundle.BundleState.Burned \n && bundle.state != IBundle.BundleState.Closed, \"ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED\"\n );\n _;\n }\n\n function _afterInitialize() internal override onlyInitializing {\n _policy = PolicyController(_getContractAddress(\"Policy\"));\n _token = BundleToken(_getContractAddress(\"BundleToken\"));\n }\n\n function create(address owner_, uint riskpoolId_, bytes calldata filter_, uint256 amount_) \n external override\n onlyRiskpoolService\n returns(uint256 bundleId)\n { \n // will start with bundleId 1.\n // this helps in maps where a bundleId equals a non-existing entry\n bundleId = _bundleCount + 1;\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt == 0, \"ERROR:BUC-010:BUNDLE_ALREADY_EXISTS\");\n\n // mint corresponding nft with bundleId as nft\n uint256 tokenId = _token.mint(bundleId, owner_);\n\n bundle.id = bundleId;\n bundle.tokenId = tokenId;\n bundle.riskpoolId = riskpoolId_;\n bundle.state = BundleState.Active;\n bundle.filter = filter_;\n bundle.capital = amount_;\n bundle.balance = amount_;\n bundle.createdAt = block.timestamp;\n bundle.updatedAt = block.timestamp;\n\n // update bundle count\n _bundleCount++;\n _unburntBundlesForRiskpoolId[riskpoolId_]++;\n\n emit LogBundleCreated(bundle.id, riskpoolId_, owner_, bundle.state, bundle.capital);\n }\n\n\n function fund(uint256 bundleId, uint256 amount)\n external override \n onlyRiskpoolService\n {\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST\");\n require(bundle.state != IBundle.BundleState.Closed, \"ERROR:BUC-012:BUNDLE_CLOSED\");\n\n bundle.capital += amount;\n bundle.balance += amount;\n bundle.updatedAt = block.timestamp;\n\n uint256 capacityAmount = bundle.capital - bundle.lockedCapital;\n emit LogBundleCapitalProvided(bundleId, _msgSender(), amount, capacityAmount);\n }\n\n\n function defund(uint256 bundleId, uint256 amount) \n external override \n onlyRiskpoolService\n {\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST\");\n require(\n bundle.capital >= bundle.lockedCapital + amount\n || (bundle.lockedCapital == 0 && bundle.balance >= amount),\n \"ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW\"\n );\n\n if (bundle.capital >= amount) { bundle.capital -= amount; } \n else { bundle.capital = 0; }\n\n bundle.balance -= amount;\n bundle.updatedAt = block.timestamp;\n\n uint256 capacityAmount = bundle.capital - bundle.lockedCapital;\n emit LogBundleCapitalWithdrawn(bundleId, _msgSender(), amount, capacityAmount);\n }\n\n function lock(uint256 bundleId)\n external override\n onlyRiskpoolService\n {\n _changeState(bundleId, BundleState.Locked);\n }\n\n function unlock(uint256 bundleId)\n external override\n onlyRiskpoolService\n {\n _changeState(bundleId, BundleState.Active);\n }\n\n function close(uint256 bundleId)\n external override\n onlyRiskpoolService\n {\n require(_activePolicies[bundleId] == 0, \"ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES\");\n _changeState(bundleId, BundleState.Closed);\n }\n\n function burn(uint256 bundleId) \n external override\n onlyRiskpoolService\n {\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.state == BundleState.Closed, \"ERROR:BUC-016:BUNDLE_NOT_CLOSED\");\n require(bundle.balance == 0, \"ERROR:BUC-017:BUNDLE_HAS_BALANCE\");\n\n // burn corresponding nft -> as a result bundle looses its owner\n _token.burn(bundleId);\n _unburntBundlesForRiskpoolId[bundle.riskpoolId] -= 1;\n\n _changeState(bundleId, BundleState.Burned);\n }\n\n function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 amount)\n external override \n onlyRiskpoolService\n {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.riskpoolId == _getPoolController().getRiskPoolForProduct(metadata.productId), \"ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL\");\n require(bundle.createdAt > 0, \"ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST\");\n require(bundle.state == IBundle.BundleState.Active, \"ERROR:BUC-021:BUNDLE_NOT_ACTIVE\"); \n require(bundle.capital >= bundle.lockedCapital + amount, \"ERROR:BUC-022:CAPACITY_TOO_LOW\");\n\n // might need to be added in a future relase\n require(_valueLockedPerPolicy[bundleId][processId] == 0, \"ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED\");\n\n bundle.lockedCapital += amount;\n bundle.updatedAt = block.timestamp;\n\n _activePolicies[bundleId] += 1;\n _valueLockedPerPolicy[bundleId][processId] = amount;\n\n uint256 capacityAmount = bundle.capital - bundle.lockedCapital;\n emit LogBundlePolicyCollateralized(bundleId, processId, amount, capacityAmount);\n }\n\n\n function processPremium(uint256 bundleId, bytes32 processId, uint256 amount)\n external override\n onlyRiskpoolService\n onlyFundableBundle(bundleId)\n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n require(\n policy.state != IPolicy.PolicyState.Closed,\n \"ERROR:POL-030:POLICY_STATE_INVALID\"\n );\n\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST\");\n \n bundle.balance += amount;\n bundle.updatedAt = block.timestamp; // solhint-disable-line\n }\n\n\n function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) \n external override \n onlyRiskpoolService\n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n require(\n policy.state != IPolicy.PolicyState.Closed,\n \"ERROR:POL-040:POLICY_STATE_INVALID\"\n );\n\n // check there are policies and there is sufficient locked capital for policy\n require(_activePolicies[bundleId] > 0, \"ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE\");\n require(_valueLockedPerPolicy[bundleId][processId] >= amount, \"ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY\");\n\n // make sure bundle exists and is not yet closed\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST\");\n require(\n bundle.state == IBundle.BundleState.Active\n || bundle.state == IBundle.BundleState.Locked, \n \"ERROR:BUC-044:BUNDLE_STATE_INVALID\");\n require(bundle.capital >= amount, \"ERROR:BUC-045:CAPITAL_TOO_LOW\");\n require(bundle.lockedCapital >= amount, \"ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW\");\n require(bundle.balance >= amount, \"ERROR:BUC-047:BALANCE_TOO_LOW\");\n\n _valueLockedPerPolicy[bundleId][processId] -= amount;\n bundle.capital -= amount;\n bundle.lockedCapital -= amount;\n bundle.balance -= amount;\n bundle.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogBundlePayoutProcessed(bundleId, processId, amount);\n }\n\n\n function releasePolicy(uint256 bundleId, bytes32 processId) \n external override \n onlyRiskpoolService\n returns(uint256 remainingCollateralAmount)\n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n require(\n policy.state == IPolicy.PolicyState.Closed,\n \"ERROR:POL-050:POLICY_STATE_INVALID\"\n );\n\n // make sure bundle exists and is not yet closed\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST\");\n require(_activePolicies[bundleId] > 0, \"ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE\");\n\n uint256 lockedForPolicyAmount = _valueLockedPerPolicy[bundleId][processId];\n // this should never ever fail ...\n require(\n bundle.lockedCapital >= lockedForPolicyAmount,\n \"PANIC:BUC-053:UNLOCK_CAPITAL_TOO_BIG\"\n );\n\n // policy no longer relevant for bundle\n _activePolicies[bundleId] -= 1;\n delete _valueLockedPerPolicy[bundleId][processId];\n\n // update bundle capital\n bundle.lockedCapital -= lockedForPolicyAmount;\n bundle.updatedAt = block.timestamp; // solhint-disable-line\n\n uint256 capacityAmount = bundle.capital - bundle.lockedCapital;\n emit LogBundlePolicyReleased(bundleId, processId, lockedForPolicyAmount, capacityAmount);\n }\n\n function getOwner(uint256 bundleId) public view returns(address) { \n uint256 tokenId = getBundle(bundleId).tokenId;\n return _token.ownerOf(tokenId); \n }\n\n function getState(uint256 bundleId) public view returns(BundleState) {\n return getBundle(bundleId).state; \n }\n\n function getFilter(uint256 bundleId) public view returns(bytes memory) {\n return getBundle(bundleId).filter;\n } \n\n function getCapacity(uint256 bundleId) public view returns(uint256) {\n Bundle memory bundle = getBundle(bundleId);\n return bundle.capital - bundle.lockedCapital;\n }\n\n function getTotalValueLocked(uint256 bundleId) public view returns(uint256) {\n return getBundle(bundleId).lockedCapital; \n }\n\n function getBalance(uint256 bundleId) public view returns(uint256) {\n return getBundle(bundleId).balance; \n }\n\n function getToken() external view returns(BundleToken) {\n return _token;\n }\n\n function getBundle(uint256 bundleId) public view returns(Bundle memory) {\n Bundle memory bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST\");\n return bundle;\n }\n\n function bundles() public view returns(uint256) {\n return _bundleCount;\n }\n\n function unburntBundles(uint256 riskpoolId) external view returns(uint256) {\n return _unburntBundlesForRiskpoolId[riskpoolId];\n }\n\n function _getPoolController() internal view returns (PoolController _poolController) {\n _poolController = PoolController(_getContractAddress(\"Pool\"));\n }\n\n function _changeState(uint256 bundleId, BundleState newState) internal {\n BundleState oldState = getState(bundleId);\n\n _checkStateTransition(oldState, newState);\n _setState(bundleId, newState);\n\n // log entry for successful state change\n emit LogBundleStateChanged(bundleId, oldState, newState);\n }\n\n function _setState(uint256 bundleId, BundleState newState) internal {\n _bundles[bundleId].state = newState;\n _bundles[bundleId].updatedAt = block.timestamp;\n }\n\n function _checkStateTransition(BundleState oldState, BundleState newState) \n internal \n pure \n {\n if (oldState == BundleState.Active) {\n require(\n newState == BundleState.Locked || newState == BundleState.Closed, \n \"ERROR:BUC-070:ACTIVE_INVALID_TRANSITION\"\n );\n } else if (oldState == BundleState.Locked) {\n require(\n newState == BundleState.Active || newState == BundleState.Closed, \n \"ERROR:BUC-071:LOCKED_INVALID_TRANSITION\"\n );\n } else if (oldState == BundleState.Closed) {\n require(\n newState == BundleState.Burned, \n \"ERROR:BUC-072:CLOSED_INVALID_TRANSITION\"\n );\n } else if (oldState == BundleState.Burned) {\n revert(\"ERROR:BUC-073:BURNED_IS_FINAL_STATE\");\n } else {\n revert(\"ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED\");\n }\n }\n}\n"},"contracts/modules/ComponentController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../shared/CoreController.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/IOracle.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/IRiskpool.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\";\r\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\r\n\r\n/**\r\nThe smart contract provides functionality to manage and control components in a system.\r\nThe contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types.\r\nIt also includes modifiers to restrict access to certain functions based on the caller's role.\r\n\r\nFunctions:\r\n- `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal.\r\n- `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets.\r\n- `exists()`: Checks if a component with the given ID exists in the system.\r\n- `approve()`: Approves a component with the given ID, changing its state to \"Active\" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping.\r\n- `decline()`: Changes the state of a component with the given ID to \"Declined\" and emits an event. It also calls the `declineCallback` function of the component.\r\n- `suspend()`: Suspends a component with the given ID by changing its state to \"Suspended\" and emitting an event. It also calls the `suspendCallback` function of the component.\r\n- `resume()`: Resumes a component with the given ID by changing its state to \"Active\" and emitting an event. It also calls the `resumeCallback` function of the component.\r\n- `pause()`: Pauses a component with the given ID by changing its state to \"Paused\" and emitting an event. It also calls the `pauseCallback` function of the component.\r\n- `unpause()`: Unpauses a component with the given ID by changing its state to \"Active\" and emitting an event. It also calls the `unpauseCallback` function of the component.\r\n- `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to \"Archived\" and emitting an event. It also calls the `archiveCallback` function of the component.\r\n- `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to \"Archived\" and emitting an event. It also calls the `archiveCallback` function of the component.\r\n- `getComponent()`: Retrieves the component with the given ID.\r\n- `getComponentId()`: Retrieves the ID of a registered component given its address.\r\n- `getComponentType()`: Retrieves the component type of a given component ID.\r\n- `getComponentState()`: Retrieves the state of the component with the given ID.\r\n- `getOracleId()`: Retrieves the oracle ID at the specified index.\r\n- `getRiskpoolId()`: Retrieves the risk pool ID at the specified index.\r\n- `getProductId()`: Retrieves the product ID at the specified index.\r\n- `getRequiredRole()`: Retrieves the required role for a given component type.\r\n- `components()`: Returns the number of components currently stored in the contract.\r\n- `products()`: Returns the number of products in the `_products` set.\r\n- `oracles()`: Returns the number of oracles registered in the `_oracles` set.\r\n- `riskpools()`: Returns the number of risk pools in the set.\r\n\r\nThe contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions.\r\n\r\nThe contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations.\r\n */\r\n\r\ncontract ComponentController is\r\n IComponentEvents,\r\n CoreController \r\n {\r\n using EnumerableSet for EnumerableSet.UintSet;\r\n\r\n mapping(uint256 => IComponent) private _componentById;\r\n mapping(bytes32 => uint256) private _componentIdByName;\r\n mapping(address => uint256) private _componentIdByAddress;\r\n\r\n mapping(uint256 => IComponent.ComponentState) private _componentState;\r\n\r\n EnumerableSet.UintSet private _products;\r\n EnumerableSet.UintSet private _oracles;\r\n EnumerableSet.UintSet private _riskpools;\r\n uint256 private _componentCount;\r\n\r\n mapping(uint256 /* product id */ => address /* policy flow address */) private _policyFlowByProductId;\r\n\r\n modifier onlyComponentOwnerService() {\r\n require(\r\n _msgSender() == _getContractAddress(\"ComponentOwnerService\"),\r\n \"ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE\");\r\n _;\r\n }\r\n\r\n modifier onlyInstanceOperatorService() {\r\n require(\r\n _msgSender() == _getContractAddress(\"InstanceOperatorService\"),\r\n \"ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE\");\r\n _;\r\n }\r\n\r\n function propose(IComponent component) \r\n external\r\n onlyComponentOwnerService \r\n {\r\n // input validation\r\n require(_componentIdByAddress[address(component)] == 0, \"ERROR:CCR-003:COMPONENT_ALREADY_EXISTS\");\r\n require(_componentIdByName[component.getName()] == 0, \"ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS\");\r\n\r\n // assigning id and persisting component\r\n uint256 id = _persistComponent(component);\r\n\r\n // log entry for successful proposal\r\n emit LogComponentProposed(\r\n component.getName(),\r\n component.getType(),\r\n address(component),\r\n id);\r\n \r\n // inform component about successful proposal\r\n component.proposalCallback();\r\n }\r\n\r\n function _persistComponent(IComponent component) \r\n internal\r\n returns(uint256 id)\r\n {\r\n // fetch next component id\r\n _componentCount++;\r\n id = _componentCount;\r\n\r\n // update component state\r\n _changeState(id, IComponent.ComponentState.Proposed);\r\n component.setId(id);\r\n\r\n // update controller book keeping\r\n _componentById[id] = component;\r\n _componentIdByName[component.getName()] = id;\r\n _componentIdByAddress[address(component)] = id;\r\n\r\n // type specific book keeping\r\n if (component.isProduct()) { EnumerableSet.add(_products, id); }\r\n else if (component.isOracle()) { EnumerableSet.add(_oracles, id); }\r\n else if (component.isRiskpool()) { EnumerableSet.add(_riskpools, id); }\r\n }\r\n\r\n function exists(uint256 id) public view returns(bool) {\r\n IComponent component = _componentById[id];\r\n return (address(component) != address(0));\r\n }\r\n\r\n function approve(uint256 id) \r\n external\r\n onlyInstanceOperatorService \r\n {\r\n _changeState(id, IComponent.ComponentState.Active);\r\n IComponent component = getComponent(id);\r\n\r\n if (isProduct(id)) {\r\n _policyFlowByProductId[id] = IProduct(address(component)).getPolicyFlow();\r\n }\r\n\r\n emit LogComponentApproved(id);\r\n \r\n // inform component about successful approval\r\n component.approvalCallback();\r\n }\r\n\r\n function decline(uint256 id) \r\n external\r\n onlyInstanceOperatorService \r\n {\r\n _changeState(id, IComponent.ComponentState.Declined);\r\n emit LogComponentDeclined(id);\r\n \r\n // inform component about decline\r\n IComponent component = getComponent(id);\r\n component.declineCallback();\r\n }\r\n\r\n function suspend(uint256 id) \r\n external \r\n onlyInstanceOperatorService \r\n {\r\n _changeState(id, IComponent.ComponentState.Suspended);\r\n emit LogComponentSuspended(id);\r\n \r\n // inform component about suspending\r\n IComponent component = getComponent(id);\r\n component.suspendCallback();\r\n }\r\n\r\n function resume(uint256 id) \r\n external \r\n onlyInstanceOperatorService \r\n {\r\n _changeState(id, IComponent.ComponentState.Active);\r\n emit LogComponentResumed(id);\r\n \r\n // inform component about resuming\r\n IComponent component = getComponent(id);\r\n component.resumeCallback();\r\n }\r\n\r\n function pause(uint256 id) \r\n external \r\n onlyComponentOwnerService \r\n {\r\n _changeState(id, IComponent.ComponentState.Paused);\r\n emit LogComponentPaused(id);\r\n \r\n // inform component about pausing\r\n IComponent component = getComponent(id);\r\n component.pauseCallback();\r\n }\r\n\r\n function unpause(uint256 id) \r\n external \r\n onlyComponentOwnerService \r\n {\r\n _changeState(id, IComponent.ComponentState.Active);\r\n emit LogComponentUnpaused(id);\r\n \r\n // inform component about unpausing\r\n IComponent component = getComponent(id);\r\n component.unpauseCallback();\r\n }\r\n\r\n function archiveFromComponentOwner(uint256 id) \r\n external \r\n onlyComponentOwnerService \r\n {\r\n _changeState(id, IComponent.ComponentState.Archived);\r\n emit LogComponentArchived(id);\r\n \r\n // inform component about archiving\r\n IComponent component = getComponent(id);\r\n component.archiveCallback();\r\n }\r\n\r\n function archiveFromInstanceOperator(uint256 id) \r\n external \r\n onlyInstanceOperatorService \r\n {\r\n _changeState(id, IComponent.ComponentState.Archived);\r\n emit LogComponentArchived(id);\r\n \r\n // inform component about archiving\r\n IComponent component = getComponent(id);\r\n component.archiveCallback();\r\n }\r\n\r\n function getComponent(uint256 id) public view returns (IComponent component) {\r\n component = _componentById[id];\r\n require(address(component) != address(0), \"ERROR:CCR-005:INVALID_COMPONENT_ID\");\r\n }\r\n\r\n function getComponentId(address componentAddress) public view returns (uint256 id) {\r\n require(componentAddress != address(0), \"ERROR:CCR-006:COMPONENT_ADDRESS_ZERO\");\r\n id = _componentIdByAddress[componentAddress];\r\n\r\n require(id > 0, \"ERROR:CCR-007:COMPONENT_UNKNOWN\");\r\n }\r\n\r\n function getComponentType(uint256 id) public view returns (IComponent.ComponentType componentType) {\r\n if (EnumerableSet.contains(_products, id)) {\r\n return IComponent.ComponentType.Product;\r\n } else if (EnumerableSet.contains(_oracles, id)) {\r\n return IComponent.ComponentType.Oracle;\r\n } else if (EnumerableSet.contains(_riskpools, id)) {\r\n return IComponent.ComponentType.Riskpool;\r\n } else {\r\n revert(\"ERROR:CCR-008:INVALID_COMPONENT_ID\");\r\n }\r\n }\r\n\r\n function getComponentState(uint256 id) public view returns (IComponent.ComponentState componentState) {\r\n return _componentState[id];\r\n }\r\n\r\n function getOracleId(uint256 idx) public view returns (uint256 oracleId) {\r\n return EnumerableSet.at(_oracles, idx);\r\n }\r\n\r\n function getRiskpoolId(uint256 idx) public view returns (uint256 riskpoolId) {\r\n return EnumerableSet.at(_riskpools, idx);\r\n }\r\n\r\n function getProductId(uint256 idx) public view returns (uint256 productId) {\r\n return EnumerableSet.at(_products, idx);\r\n }\r\n\r\n function getRequiredRole(IComponent.ComponentType componentType) external view returns (bytes32) {\r\n if (componentType == IComponent.ComponentType.Product) { return _access.getProductOwnerRole(); }\r\n else if (componentType == IComponent.ComponentType.Oracle) { return _access.getOracleProviderRole(); }\r\n else if (componentType == IComponent.ComponentType.Riskpool) { return _access.getRiskpoolKeeperRole(); }\r\n else { revert(\"ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN\"); }\r\n }\r\n\r\n function components() public view returns (uint256 count) { return _componentCount; }\r\n function products() public view returns (uint256 count) { return EnumerableSet.length(_products); }\r\n function oracles() public view returns (uint256 count) { return EnumerableSet.length(_oracles); }\r\n function riskpools() public view returns (uint256 count) { return EnumerableSet.length(_riskpools); }\r\n\r\n function isProduct(uint256 id) public view returns (bool) { return EnumerableSet.contains(_products, id); }\r\n\r\n function isOracle(uint256 id) public view returns (bool) { return EnumerableSet.contains(_oracles, id); }\r\n\r\n function isRiskpool(uint256 id) public view returns (bool) { return EnumerableSet.contains(_riskpools, id); }\r\n\r\n function getPolicyFlow(uint256 productId) public view returns (address _policyFlow) {\r\n require(isProduct(productId), \"ERROR:CCR-011:UNKNOWN_PRODUCT_ID\");\r\n _policyFlow = _policyFlowByProductId[productId];\r\n }\r\n\r\n function _changeState(uint256 componentId, IComponent.ComponentState newState) internal {\r\n IComponent.ComponentState oldState = _componentState[componentId];\r\n\r\n _checkStateTransition(oldState, newState);\r\n _componentState[componentId] = newState;\r\n\r\n // log entry for successful component state change\r\n emit LogComponentStateChanged(componentId, oldState, newState);\r\n }\r\n\r\n function _checkStateTransition(\r\n IComponent.ComponentState oldState, \r\n IComponent.ComponentState newState\r\n ) \r\n internal \r\n pure \r\n {\r\n require(newState != oldState, \r\n \"ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL\");\r\n \r\n if (oldState == IComponent.ComponentState.Created) {\r\n require(newState == IComponent.ComponentState.Proposed, \r\n \"ERROR:CCR-021:CREATED_INVALID_TRANSITION\");\r\n } else if (oldState == IComponent.ComponentState.Proposed) {\r\n require(newState == IComponent.ComponentState.Active \r\n || newState == IComponent.ComponentState.Declined, \r\n \"ERROR:CCR-22:PROPOSED_INVALID_TRANSITION\");\r\n } else if (oldState == IComponent.ComponentState.Declined) {\r\n revert(\"ERROR:CCR-023:DECLINED_IS_FINAL_STATE\");\r\n } else if (oldState == IComponent.ComponentState.Active) {\r\n require(newState == IComponent.ComponentState.Paused \r\n || newState == IComponent.ComponentState.Suspended, \r\n \"ERROR:CCR-024:ACTIVE_INVALID_TRANSITION\");\r\n } else if (oldState == IComponent.ComponentState.Paused) {\r\n require(newState == IComponent.ComponentState.Active\r\n || newState == IComponent.ComponentState.Archived, \r\n \"ERROR:CCR-025:PAUSED_INVALID_TRANSITION\");\r\n } else if (oldState == IComponent.ComponentState.Suspended) {\r\n require(newState == IComponent.ComponentState.Active\r\n || newState == IComponent.ComponentState.Archived, \r\n \"ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION\");\r\n } else {\r\n revert(\"ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED\");\r\n }\r\n }\r\n}\r\n"},"contracts/modules/LicenseController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./ComponentController.sol\";\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/ILicense.sol\";\n\n/**\nThe smart contract serves as a controller contract for managing licenses related to products in an insurance ecosystem.\nThe contract implements the `ILicense` interface and extends the `CoreController` contract.\n\nThe contract imports two other contracts: `ComponentController.sol` and `CoreController.sol`, which are expected to be located in specific file paths.\nIt also imports several interfaces from the \"etherisc/gif-interface\" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`.\nThe contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract.\n\nFunctions:\n- `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract.\n- `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function.\n- `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`.\n- `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`.\n\nOverall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem.\n */\n\n\ncontract LicenseController is\n ILicense, \n CoreController\n{\n\n ComponentController private _component;\n\n function _afterInitialize() internal override onlyInitializing {\n _component = ComponentController(_getContractAddress(\"Component\"));\n }\n\n // ensures that calling component (productAddress) is a product\n function getAuthorizationStatus(address productAddress)\n public override\n view\n returns (uint256 productId, bool isAuthorized, address policyFlow)\n {\n productId = _component.getComponentId(productAddress);\n isAuthorized = _isValidCall(productId);\n policyFlow = _component.getPolicyFlow(productId);\n }\n\n function _isValidCall(uint256 productId) internal view returns (bool) {\n return _component.getComponentState(productId) == IComponent.ComponentState.Active;\n }\n\n function _getProduct(uint256 id) internal view returns (IProduct product) {\n require(_component.isProduct(id), \"ERROR:LIC-001:COMPONENT_NOT_PRODUCT\");\n IComponent cmp = _component.getComponent(id);\n product = IProduct(address(cmp));\n }\n}\n"},"contracts/modules/PolicyController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../shared/CoreController.sol\";\nimport \"./ComponentController.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\n\n/**\nThe smart contract implements functions for policy operations, including creation, update, cancellation, and retrieval.\nIt also provides functions for claim creation, confirmation, decline, closure, and payout creation.\nAdditionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy.\nThe contract inherits from the `IPolicy` interface and the `CoreController` contract.\n\n1. State Variables:\n- `metadata`: A mapping that stores metadata associated with policy flows.\n- `applications`: A mapping that stores insurance applications associated with policy flows.\n- `policies`: A mapping that stores policies associated with policy flows.\n- `claims`: A nested mapping that stores claims associated with policies.\n- `payouts`: A nested mapping that stores payouts associated with policies.\n- `payoutCount`: A mapping that stores the count of payouts for each policy flow.\n- `_assigendProcessIds`: A counter variable for assigning unique process IDs.\n- `_component`: A reference to the `ComponentController` contract.\n\n2. Functions:\n- `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization.\n- `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data.\n- `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data.\n- `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount.\n- `revokeApplication()`: Revokes an application for a policy flow.\n- `underwriteApplication()`: Changes the state of an application to \"Underwritten\".\n- `declineApplication()`: Declines an application for a policy flow.\n- `createPolicy()`: Creates a new policy for a given application process ID.\n- `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application.\n- `expirePolicy()`: Expires a policy with the given process ID.\n- `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims.\n- `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event.\n- `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event.\n- `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event.\n- `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event.\n- `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event.\n- `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event.\n- `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists.\n- `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists.\n- `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function.\n- `getNumberOfPayouts()`: Returns the number of payouts for a given process ID.\n\nOverall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract.\n */\n\ncontract PolicyController is \n IPolicy, \n CoreController\n{\n // bytes32 public constant NAME = \"PolicyController\";\n\n // Metadata\n mapping(bytes32 /* processId */ => Metadata) public metadata;\n\n // Applications\n mapping(bytes32 /* processId */ => Application) public applications;\n\n // Policies\n mapping(bytes32 /* processId */ => Policy) public policies;\n\n // Claims\n mapping(bytes32 /* processId */ => mapping(uint256 /* claimId */ => Claim)) public claims;\n\n // Payouts\n mapping(bytes32 /* processId */ => mapping(uint256 /* payoutId */ => Payout)) public payouts;\n mapping(bytes32 /* processId */ => uint256) public payoutCount;\n\n // counter for assigned processIds, used to ensure unique processIds\n uint256 private _assigendProcessIds;\n\n ComponentController private _component;\n\n function _afterInitialize() internal override onlyInitializing {\n _component = ComponentController(_getContractAddress(\"Component\"));\n }\n\n /* Metadata */\n function createPolicyFlow(\n address owner,\n uint256 productId,\n bytes calldata data\n )\n external override\n onlyPolicyFlow(\"Policy\")\n returns(bytes32 processId)\n {\n require(owner != address(0), \"ERROR:POL-001:INVALID_OWNER\");\n\n require(_component.isProduct(productId), \"ERROR:POL-002:INVALID_PRODUCT\");\n require(_component.getComponentState(productId) == IComponent.ComponentState.Active, \"ERROR:POL-003:PRODUCT_NOT_ACTIVE\");\n \n processId = _generateNextProcessId();\n Metadata storage meta = metadata[processId];\n require(meta.createdAt == 0, \"ERROR:POC-004:METADATA_ALREADY_EXISTS\");\n\n meta.owner = owner;\n meta.productId = productId;\n meta.state = PolicyFlowState.Started;\n meta.data = data;\n meta.createdAt = block.timestamp; // solhint-disable-line\n meta.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogMetadataCreated(owner, processId, productId, PolicyFlowState.Started);\n }\n\n /* Application */\n function createApplication(\n bytes32 processId, \n uint256 premiumAmount,\n uint256 sumInsuredAmount,\n bytes calldata data\n )\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Metadata storage meta = metadata[processId];\n require(meta.createdAt > 0, \"ERROR:POC-010:METADATA_DOES_NOT_EXIST\");\n\n Application storage application = applications[processId];\n require(application.createdAt == 0, \"ERROR:POC-011:APPLICATION_ALREADY_EXISTS\");\n\n require(premiumAmount > 0, \"ERROR:POC-012:PREMIUM_AMOUNT_ZERO\");\n require(sumInsuredAmount > premiumAmount, \"ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL\");\n\n application.state = ApplicationState.Applied;\n application.premiumAmount = premiumAmount;\n application.sumInsuredAmount = sumInsuredAmount;\n application.data = data;\n application.createdAt = block.timestamp; // solhint-disable-line\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n meta.state = PolicyFlowState.Active;\n meta.updatedAt = block.timestamp; // solhint-disable-line\n emit LogMetadataStateChanged(processId, meta.state);\n\n emit LogApplicationCreated(processId, premiumAmount, sumInsuredAmount);\n }\n\n function collectPremium(bytes32 processId, uint256 amount) \n external override\n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-110:POLICY_DOES_NOT_EXIST\");\n require(policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, \"ERROR:POC-111:AMOUNT_TOO_BIG\");\n\n policy.premiumPaidAmount += amount;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n \n emit LogPremiumCollected(processId, amount);\n }\n \n function revokeApplication(bytes32 processId)\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Metadata storage meta = metadata[processId];\n require(meta.createdAt > 0, \"ERROR:POC-014:METADATA_DOES_NOT_EXIST\");\n\n Application storage application = applications[processId];\n require(application.createdAt > 0, \"ERROR:POC-015:APPLICATION_DOES_NOT_EXIST\");\n require(application.state == ApplicationState.Applied, \"ERROR:POC-016:APPLICATION_STATE_INVALID\");\n\n application.state = ApplicationState.Revoked;\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n meta.state = PolicyFlowState.Finished;\n meta.updatedAt = block.timestamp; // solhint-disable-line\n emit LogMetadataStateChanged(processId, meta.state);\n\n emit LogApplicationRevoked(processId);\n }\n\n function underwriteApplication(bytes32 processId)\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Application storage application = applications[processId];\n require(application.createdAt > 0, \"ERROR:POC-017:APPLICATION_DOES_NOT_EXIST\");\n require(application.state == ApplicationState.Applied, \"ERROR:POC-018:APPLICATION_STATE_INVALID\");\n\n application.state = ApplicationState.Underwritten;\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogApplicationUnderwritten(processId);\n }\n\n function declineApplication(bytes32 processId)\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Metadata storage meta = metadata[processId];\n require(meta.createdAt > 0, \"ERROR:POC-019:METADATA_DOES_NOT_EXIST\");\n\n Application storage application = applications[processId];\n require(application.createdAt > 0, \"ERROR:POC-020:APPLICATION_DOES_NOT_EXIST\");\n require(application.state == ApplicationState.Applied, \"ERROR:POC-021:APPLICATION_STATE_INVALID\");\n\n application.state = ApplicationState.Declined;\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n meta.state = PolicyFlowState.Finished;\n meta.updatedAt = block.timestamp; // solhint-disable-line\n emit LogMetadataStateChanged(processId, meta.state);\n\n emit LogApplicationDeclined(processId);\n }\n\n /* Policy */\n function createPolicy(bytes32 processId) \n external override \n onlyPolicyFlow(\"Policy\")\n {\n Application memory application = applications[processId];\n require(application.createdAt > 0 && application.state == ApplicationState.Underwritten, \"ERROR:POC-022:APPLICATION_ACCESS_INVALID\");\n\n Policy storage policy = policies[processId];\n require(policy.createdAt == 0, \"ERROR:POC-023:POLICY_ALREADY_EXISTS\");\n\n policy.state = PolicyState.Active;\n policy.premiumExpectedAmount = application.premiumAmount;\n policy.payoutMaxAmount = application.sumInsuredAmount;\n policy.createdAt = block.timestamp; // solhint-disable-line\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogPolicyCreated(processId);\n }\n\n function adjustPremiumSumInsured(\n bytes32 processId, \n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n )\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Application storage application = applications[processId];\n require(\n application.createdAt > 0 \n && application.state == ApplicationState.Underwritten, \n \"ERROR:POC-024:APPLICATION_ACCESS_INVALID\");\n\n require(\n sumInsuredAmount <= application.sumInsuredAmount, \n \"ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID\");\n\n Policy storage policy = policies[processId];\n require(\n policy.createdAt > 0 \n && policy.state == IPolicy.PolicyState.Active, \n \"ERROR:POC-027:POLICY_ACCESS_INVALID\");\n \n require(\n expectedPremiumAmount > 0 \n && expectedPremiumAmount >= policy.premiumPaidAmount\n && expectedPremiumAmount < sumInsuredAmount, \n \"ERROR:POC-025:APPLICATION_PREMIUM_INVALID\");\n\n if (sumInsuredAmount != application.sumInsuredAmount) {\n emit LogApplicationSumInsuredAdjusted(processId, application.sumInsuredAmount, sumInsuredAmount);\n application.sumInsuredAmount = sumInsuredAmount;\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n policy.payoutMaxAmount = sumInsuredAmount;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n }\n\n if (expectedPremiumAmount != application.premiumAmount) {\n emit LogApplicationPremiumAdjusted(processId, application.premiumAmount, expectedPremiumAmount);\n application.premiumAmount = expectedPremiumAmount;\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogPolicyPremiumAdjusted(processId, policy.premiumExpectedAmount, expectedPremiumAmount);\n policy.premiumExpectedAmount = expectedPremiumAmount;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n }\n }\n\n function expirePolicy(bytes32 processId)\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-028:POLICY_DOES_NOT_EXIST\");\n require(policy.state == PolicyState.Active, \"ERROR:POC-029:APPLICATION_STATE_INVALID\");\n\n policy.state = PolicyState.Expired;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogPolicyExpired(processId);\n }\n\n function closePolicy(bytes32 processId)\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Metadata storage meta = metadata[processId];\n require(meta.createdAt > 0, \"ERROR:POC-030:METADATA_DOES_NOT_EXIST\");\n\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-031:POLICY_DOES_NOT_EXIST\");\n require(policy.state == PolicyState.Expired, \"ERROR:POC-032:POLICY_STATE_INVALID\");\n require(policy.openClaimsCount == 0, \"ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS\");\n\n policy.state = PolicyState.Closed;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n meta.state = PolicyFlowState.Finished;\n meta.updatedAt = block.timestamp; // solhint-disable-line\n emit LogMetadataStateChanged(processId, meta.state);\n\n emit LogPolicyClosed(processId);\n }\n\n /* Claim */\n function createClaim(\n bytes32 processId, \n uint256 claimAmount,\n bytes calldata data\n )\n external override\n onlyPolicyFlow(\"Policy\")\n returns (uint256 claimId)\n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-040:POLICY_DOES_NOT_EXIST\");\n require(policy.state == IPolicy.PolicyState.Active, \"ERROR:POC-041:POLICY_NOT_ACTIVE\");\n // no validation of claimAmount > 0 here to explicitly allow claims with amount 0. This can be useful for parametric insurance \n // to have proof that the claim calculation was executed without entitlement to payment.\n require(policy.payoutAmount + claimAmount <= policy.payoutMaxAmount, \"ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT\");\n\n claimId = policy.claimsCount;\n Claim storage claim = claims[processId][claimId];\n require(claim.createdAt == 0, \"ERROR:POC-043:CLAIM_ALREADY_EXISTS\");\n\n claim.state = ClaimState.Applied;\n claim.claimAmount = claimAmount;\n claim.data = data;\n claim.createdAt = block.timestamp; // solhint-disable-line\n claim.updatedAt = block.timestamp; // solhint-disable-line\n\n policy.claimsCount++;\n policy.openClaimsCount++;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogClaimCreated(processId, claimId, claimAmount);\n }\n\n function confirmClaim(\n bytes32 processId,\n uint256 claimId,\n uint256 confirmedAmount\n ) \n external override\n onlyPolicyFlow(\"Policy\") \n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-050:POLICY_DOES_NOT_EXIST\");\n require(policy.openClaimsCount > 0, \"ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS\");\n // no validation of claimAmount > 0 here as is it possible to have claims with amount 0 (see createClaim()). \n require(policy.payoutAmount + confirmedAmount <= policy.payoutMaxAmount, \"ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED\");\n\n Claim storage claim = claims[processId][claimId];\n require(claim.createdAt > 0, \"ERROR:POC-053:CLAIM_DOES_NOT_EXIST\");\n require(claim.state == ClaimState.Applied, \"ERROR:POC-054:CLAIM_STATE_INVALID\");\n\n claim.state = ClaimState.Confirmed;\n claim.claimAmount = confirmedAmount;\n claim.updatedAt = block.timestamp; // solhint-disable-line\n\n policy.payoutAmount += confirmedAmount;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogClaimConfirmed(processId, claimId, confirmedAmount);\n }\n\n function declineClaim(bytes32 processId, uint256 claimId)\n external override\n onlyPolicyFlow(\"Policy\") \n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-060:POLICY_DOES_NOT_EXIST\");\n require(policy.openClaimsCount > 0, \"ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS\");\n\n Claim storage claim = claims[processId][claimId];\n require(claim.createdAt > 0, \"ERROR:POC-062:CLAIM_DOES_NOT_EXIST\");\n require(claim.state == ClaimState.Applied, \"ERROR:POC-063:CLAIM_STATE_INVALID\");\n\n claim.state = ClaimState.Declined;\n claim.updatedAt = block.timestamp; // solhint-disable-line\n\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogClaimDeclined(processId, claimId);\n }\n\n function closeClaim(bytes32 processId, uint256 claimId)\n external override\n onlyPolicyFlow(\"Policy\") \n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-070:POLICY_DOES_NOT_EXIST\");\n require(policy.openClaimsCount > 0, \"ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS\");\n\n Claim storage claim = claims[processId][claimId];\n require(claim.createdAt > 0, \"ERROR:POC-072:CLAIM_DOES_NOT_EXIST\");\n require(\n claim.state == ClaimState.Confirmed \n || claim.state == ClaimState.Declined, \n \"ERROR:POC-073:CLAIM_STATE_INVALID\");\n\n require(\n (claim.state == ClaimState.Confirmed && claim.claimAmount == claim.paidAmount) \n || (claim.state == ClaimState.Declined), \n \"ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS\"\n );\n\n claim.state = ClaimState.Closed;\n claim.updatedAt = block.timestamp; // solhint-disable-line\n\n policy.openClaimsCount--;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogClaimClosed(processId, claimId);\n }\n\n /* Payout */\n function createPayout(\n bytes32 processId,\n uint256 claimId,\n uint256 payoutAmount,\n bytes calldata data\n )\n external override \n onlyPolicyFlow(\"Policy\") \n returns (uint256 payoutId)\n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-080:POLICY_DOES_NOT_EXIST\");\n\n Claim storage claim = claims[processId][claimId];\n require(claim.createdAt > 0, \"ERROR:POC-081:CLAIM_DOES_NOT_EXIST\");\n require(claim.state == IPolicy.ClaimState.Confirmed, \"ERROR:POC-082:CLAIM_NOT_CONFIRMED\");\n require(payoutAmount > 0, \"ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID\");\n require(\n claim.paidAmount + payoutAmount <= claim.claimAmount,\n \"ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG\"\n );\n\n payoutId = payoutCount[processId];\n Payout storage payout = payouts[processId][payoutId];\n require(payout.createdAt == 0, \"ERROR:POC-085:PAYOUT_ALREADY_EXISTS\");\n\n payout.claimId = claimId;\n payout.amount = payoutAmount;\n payout.data = data;\n payout.state = PayoutState.Expected;\n payout.createdAt = block.timestamp; // solhint-disable-line\n payout.updatedAt = block.timestamp; // solhint-disable-line\n\n payoutCount[processId]++;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogPayoutCreated(processId, claimId, payoutId, payoutAmount);\n }\n\n function processPayout(\n bytes32 processId,\n uint256 payoutId\n )\n external override \n onlyPolicyFlow(\"Policy\")\n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-090:POLICY_DOES_NOT_EXIST\");\n require(policy.openClaimsCount > 0, \"ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS\");\n\n Payout storage payout = payouts[processId][payoutId];\n require(payout.createdAt > 0, \"ERROR:POC-092:PAYOUT_DOES_NOT_EXIST\");\n require(payout.state == PayoutState.Expected, \"ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT\");\n\n payout.state = IPolicy.PayoutState.PaidOut;\n payout.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogPayoutProcessed(processId, payoutId);\n\n Claim storage claim = claims[processId][payout.claimId];\n claim.paidAmount += payout.amount;\n claim.updatedAt = block.timestamp; // solhint-disable-line\n\n // check if claim can be closed\n if (claim.claimAmount == claim.paidAmount) {\n claim.state = IPolicy.ClaimState.Closed;\n\n policy.openClaimsCount -= 1;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogClaimClosed(processId, payout.claimId);\n }\n }\n\n function getMetadata(bytes32 processId)\n public\n view\n returns (IPolicy.Metadata memory _metadata)\n {\n _metadata = metadata[processId];\n require(_metadata.createdAt > 0, \"ERROR:POC-100:METADATA_DOES_NOT_EXIST\");\n }\n\n function getApplication(bytes32 processId)\n public\n view\n returns (IPolicy.Application memory application)\n {\n application = applications[processId];\n require(application.createdAt > 0, \"ERROR:POC-101:APPLICATION_DOES_NOT_EXIST\"); \n }\n\n function getNumberOfClaims(bytes32 processId) external view returns(uint256 numberOfClaims) {\n numberOfClaims = getPolicy(processId).claimsCount;\n }\n \n function getNumberOfPayouts(bytes32 processId) external view returns(uint256 numberOfPayouts) {\n numberOfPayouts = payoutCount[processId];\n }\n\n function getPolicy(bytes32 processId)\n public\n view\n returns (IPolicy.Policy memory policy)\n {\n policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-102:POLICY_DOES_NOT_EXIST\"); \n }\n\n function getClaim(bytes32 processId, uint256 claimId)\n public\n view\n returns (IPolicy.Claim memory claim)\n {\n claim = claims[processId][claimId];\n require(claim.createdAt > 0, \"ERROR:POC-103:CLAIM_DOES_NOT_EXIST\"); \n }\n\n function getPayout(bytes32 processId, uint256 payoutId)\n public\n view\n returns (IPolicy.Payout memory payout)\n {\n payout = payouts[processId][payoutId];\n require(payout.createdAt > 0, \"ERROR:POC-104:PAYOUT_DOES_NOT_EXIST\"); \n }\n\n function processIds() external view returns (uint256) {\n return _assigendProcessIds;\n }\n\n function _generateNextProcessId() private returns(bytes32 processId) {\n _assigendProcessIds++;\n\n processId = keccak256(\n abi.encodePacked(\n block.chainid, \n address(_registry),\n _assigendProcessIds\n )\n );\n } \n}\n"},"contracts/modules/PoolController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./ComponentController.sol\";\nimport \"./PolicyController.sol\";\nimport \"./BundleController.sol\";\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/modules/IPool.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IRiskpool.sol\";\n\n\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\n\n/**\nThe smart contract manages riskpools, their registration, funding, defunding, collateralization, and other related operations.\n\n- The contract implements the IPool interface and extends the CoreController contract.\n- It imports other contracts such as ComponentController, PolicyController, BundleController, and CoreController.\n- It uses the EnumerableSet library from OpenZeppelin for managing sets of bundle IDs.\n- The contract defines constants for full collateralization level, collateralization level cap, and default maximum number of active bundles.\n- It maintains mappings to store riskpool information, riskpool IDs for products, maximum number of active bundles for riskpools, and active bundle IDs for riskpools.\n- The contract has a private array to store riskpool IDs.\n- It has references to other contracts: ComponentController, PolicyController, and BundleController.\n- The contract defines modifiers for access control to specific functions.\n\nFunctions:\n- `_afterInitialize()`: Called after contract initialization to set addresses of other contracts.\n- `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration.\n- `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID.\n- `fund()`: Adds funds to a specific riskpool.\n- `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount.\n- `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure.\n- `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount.\n- `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract.\n- `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout.\n- `release()`: Releases a policy's collateral from the riskpool.\n\nOverall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations.\n */\n\ncontract PoolController is\n IPool,\n CoreController\n{\n\n using EnumerableSet for EnumerableSet.UintSet;\n\n // used for representation of collateralization\n // collateralization between 0 and 1 (1=100%) \n // value might be larger when overcollateralization\n uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10**18;\n\n // upper limit for overcollateralization at 200% \n uint256 public constant COLLATERALIZATION_LEVEL_CAP = 2 * FULL_COLLATERALIZATION_LEVEL;\n\n uint256 public constant DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES = 1;\n\n mapping(bytes32 /* processId */ => uint256 /* collateralAmount*/ ) private _collateralAmount;\n\n mapping(uint256 /* productId */ => uint256 /* riskpoolId */) private _riskpoolIdForProductId;\n\n mapping(uint256 /* riskpoolId */ => IPool.Pool) private _riskpools;\n\n mapping(uint256 /* riskpoolId */ => uint256 /* maxmimumNumberOfActiveBundles */) private _maxmimumNumberOfActiveBundlesForRiskpoolId;\n\n mapping(uint256 /* riskpoolId */ => EnumerableSet.UintSet /* active bundle id set */) private _activeBundleIdsForRiskpoolId;\n \n uint256 [] private _riskpoolIds;\n\n ComponentController private _component;\n PolicyController private _policy;\n BundleController private _bundle;\n\n modifier onlyInstanceOperatorService() {\n require(\n _msgSender() == _getContractAddress(\"InstanceOperatorService\"),\n \"ERROR:POL-001:NOT_INSTANCE_OPERATOR\"\n );\n _;\n }\n\n modifier onlyRiskpoolService() {\n require(\n _msgSender() == _getContractAddress(\"RiskpoolService\"),\n \"ERROR:POL-002:NOT_RISKPOOL_SERVICE\"\n );\n _;\n }\n\n modifier onlyActivePool(uint256 riskpoolId) {\n require(\n _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, \n \"ERROR:POL-003:RISKPOOL_NOT_ACTIVE\"\n );\n _;\n }\n\n modifier onlyActivePoolForProcess(bytes32 processId) {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n require(\n _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, \n \"ERROR:POL-004:RISKPOOL_NOT_ACTIVE\"\n );\n _;\n }\n\n function _afterInitialize() internal override onlyInitializing {\n _component = ComponentController(_getContractAddress(\"Component\"));\n _policy = PolicyController(_getContractAddress(\"Policy\"));\n _bundle = BundleController(_getContractAddress(\"Bundle\"));\n }\n\n\n function registerRiskpool(\n uint256 riskpoolId, \n address wallet,\n address erc20Token,\n uint256 collateralizationLevel, \n uint256 sumOfSumInsuredCap\n )\n external override\n onlyRiskpoolService\n {\n IPool.Pool storage pool = _riskpools[riskpoolId];\n _riskpoolIds.push(riskpoolId);\n _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES;\n \n require(pool.createdAt == 0, \"ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED\");\n\n require(wallet != address(0), \"ERROR:POL-006:WALLET_ADDRESS_ZERO\");\n require(erc20Token != address(0), \"ERROR:POL-007:ERC20_ADDRESS_ZERO\");\n require(collateralizationLevel <= COLLATERALIZATION_LEVEL_CAP, \"ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH\");\n require(sumOfSumInsuredCap > 0, \"ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO\");\n\n pool.id = riskpoolId; \n pool.wallet = wallet; \n pool.erc20Token = erc20Token; \n pool.collateralizationLevel = collateralizationLevel;\n pool.sumOfSumInsuredCap = sumOfSumInsuredCap;\n\n pool.sumOfSumInsuredAtRisk = 0;\n pool.capital = 0;\n pool.lockedCapital = 0;\n pool.balance = 0;\n\n pool.createdAt = block.timestamp;\n pool.updatedAt = block.timestamp;\n\n emit LogRiskpoolRegistered(riskpoolId, wallet, erc20Token, collateralizationLevel, sumOfSumInsuredCap);\n }\n\n function setRiskpoolForProduct(uint256 productId, uint256 riskpoolId) \n external override\n onlyInstanceOperatorService\n {\n require(_component.isProduct(productId), \"ERROR:POL-010:NOT_PRODUCT\");\n require(_component.isRiskpool(riskpoolId), \"ERROR:POL-011:NOT_RISKPOOL\");\n require(_riskpoolIdForProductId[productId] == 0, \"ERROR:POL-012:RISKPOOL_ALREADY_SET\");\n \n _riskpoolIdForProductId[productId] = riskpoolId;\n }\n\n function fund(uint256 riskpoolId, uint256 amount) \n external\n onlyRiskpoolService\n onlyActivePool(riskpoolId)\n {\n IPool.Pool storage pool = _riskpools[riskpoolId];\n pool.capital += amount;\n pool.balance += amount;\n pool.updatedAt = block.timestamp;\n }\n\n function defund(uint256 riskpoolId, uint256 amount) \n external\n onlyRiskpoolService\n onlyActivePool(riskpoolId)\n {\n IPool.Pool storage pool = _riskpools[riskpoolId];\n\n if (pool.capital >= amount) { pool.capital -= amount; }\n else { pool.capital = 0; }\n\n pool.balance -= amount;\n pool.updatedAt = block.timestamp;\n }\n\n function underwrite(bytes32 processId) \n external override \n onlyPolicyFlow(\"Pool\")\n onlyActivePoolForProcess(processId)\n returns(bool success)\n {\n // check that application is in applied state\n IPolicy.Application memory application = _policy.getApplication(processId);\n require(\n application.state == IPolicy.ApplicationState.Applied,\n \"ERROR:POL-020:APPLICATION_STATE_INVALID\"\n );\n\n // determine riskpool responsible for application\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n\n // calculate required collateral amount\n uint256 sumInsuredAmount = application.sumInsuredAmount;\n uint256 collateralAmount = calculateCollateral(riskpoolId, sumInsuredAmount);\n _collateralAmount[processId] = collateralAmount;\n\n emit LogRiskpoolRequiredCollateral(processId, sumInsuredAmount, collateralAmount);\n\n // check that riskpool stays inside sum insured cap when underwriting this application \n IPool.Pool storage pool = _riskpools[riskpoolId];\n require(\n pool.sumOfSumInsuredCap >= pool.sumOfSumInsuredAtRisk + sumInsuredAmount,\n \"ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED\"\n );\n\n // ask riskpool to secure application\n IRiskpool riskpool = _getRiskpoolComponent(metadata);\n success = riskpool.collateralizePolicy(processId, collateralAmount);\n\n if (success) {\n pool.sumOfSumInsuredAtRisk += sumInsuredAmount;\n pool.lockedCapital += collateralAmount;\n pool.updatedAt = block.timestamp;\n\n emit LogRiskpoolCollateralizationSucceeded(riskpoolId, processId, sumInsuredAmount);\n } else {\n emit LogRiskpoolCollateralizationFailed(riskpoolId, processId, sumInsuredAmount);\n }\n }\n\n\n function calculateCollateral(uint256 riskpoolId, uint256 sumInsuredAmount) \n public\n view \n returns (uint256 collateralAmount) \n {\n uint256 collateralization = getRiskpool(riskpoolId).collateralizationLevel;\n\n // fully collateralized case\n if (collateralization == FULL_COLLATERALIZATION_LEVEL) {\n collateralAmount = sumInsuredAmount;\n // over or under collateralized case\n } else if (collateralization > 0) {\n collateralAmount = (collateralization * sumInsuredAmount) / FULL_COLLATERALIZATION_LEVEL;\n }\n // collateralization == 0, eg complete risk coverd by re insurance outside gif\n else {\n collateralAmount = 0;\n }\n }\n\n\n function processPremium(bytes32 processId, uint256 amount) \n external override\n onlyPolicyFlow(\"Pool\")\n onlyActivePoolForProcess(processId)\n {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n IRiskpool riskpool = _getRiskpoolComponent(metadata);\n riskpool.processPolicyPremium(processId, amount);\n\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n IPool.Pool storage pool = _riskpools[riskpoolId];\n pool.balance += amount;\n pool.updatedAt = block.timestamp;\n }\n\n\n function processPayout(bytes32 processId, uint256 amount) \n external override\n onlyPolicyFlow(\"Pool\")\n onlyActivePoolForProcess(processId)\n {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n IPool.Pool storage pool = _riskpools[riskpoolId];\n require(pool.createdAt > 0, \"ERROR:POL-026:RISKPOOL_ID_INVALID\");\n require(pool.capital >= amount, \"ERROR:POL-027:CAPITAL_TOO_LOW\");\n require(pool.lockedCapital >= amount, \"ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW\");\n require(pool.balance >= amount, \"ERROR:POL-029:BALANCE_TOO_LOW\");\n\n pool.capital -= amount;\n pool.lockedCapital -= amount;\n pool.balance -= amount;\n pool.updatedAt = block.timestamp; // solhint-disable-line\n\n IRiskpool riskpool = _getRiskpoolComponent(metadata);\n riskpool.processPolicyPayout(processId, amount);\n }\n\n\n function release(bytes32 processId) \n external override\n onlyPolicyFlow(\"Pool\")\n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n require(\n policy.state == IPolicy.PolicyState.Closed,\n \"ERROR:POL-025:POLICY_STATE_INVALID\"\n );\n\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n IRiskpool riskpool = _getRiskpoolComponent(metadata);\n riskpool.releasePolicy(processId);\n\n IPolicy.Application memory application = _policy.getApplication(processId);\n\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n IPool.Pool storage pool = _riskpools[riskpoolId];\n uint256 remainingCollateralAmount = _collateralAmount[processId] - policy.payoutAmount;\n\n pool.sumOfSumInsuredAtRisk -= application.sumInsuredAmount;\n pool.lockedCapital -= remainingCollateralAmount;\n pool.updatedAt = block.timestamp; // solhint-disable-line\n\n // free memory\n delete _collateralAmount[processId];\n emit LogRiskpoolCollateralReleased(riskpoolId, processId, remainingCollateralAmount);\n }\n\n function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles)\n external \n onlyRiskpoolService\n {\n require(maxNumberOfActiveBundles > 0, \"ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID\");\n _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = maxNumberOfActiveBundles;\n }\n\n function getMaximumNumberOfActiveBundles(uint256 riskpoolId) public view returns(uint256 maximumNumberOfActiveBundles) {\n return _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId];\n }\n \n function riskpools() external view returns(uint256 idx) { return _riskpoolIds.length; }\n\n\n function getRiskpool(uint256 riskpoolId) public view returns(IPool.Pool memory riskPool) {\n riskPool = _riskpools[riskpoolId];\n require(riskPool.createdAt > 0, \"ERROR:POL-040:RISKPOOL_NOT_REGISTERED\");\n }\n\n function getRiskPoolForProduct(uint256 productId) external view returns (uint256 riskpoolId) {\n return _riskpoolIdForProductId[productId];\n }\n\n function activeBundles(uint256 riskpoolId) external view returns(uint256 numberOfActiveBundles) {\n return EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]);\n }\n\n function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external view returns(uint256 bundleId) {\n require(\n bundleIdx < EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]),\n \"ERROR:POL-041:BUNDLE_IDX_TOO_LARGE\"\n );\n\n return EnumerableSet.at(_activeBundleIdsForRiskpoolId[riskpoolId], bundleIdx);\n }\n\n function addBundleIdToActiveSet(uint256 riskpoolId, uint256 bundleId) \n external\n onlyRiskpoolService\n {\n require(\n !EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), \n \"ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET\"\n );\n require(\n EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]) < _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId], \n \"ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED\"\n );\n\n EnumerableSet.add(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId);\n }\n\n function removeBundleIdFromActiveSet(uint256 riskpoolId, uint256 bundleId) \n external\n onlyRiskpoolService\n {\n require(\n EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), \n \"ERROR:POL-044:BUNDLE_ID_NOT_IN_SET\"\n );\n\n EnumerableSet.remove(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId);\n }\n\n function getFullCollateralizationLevel() external pure returns (uint256) {\n return FULL_COLLATERALIZATION_LEVEL;\n }\n\n function _getRiskpoolComponent(IPolicy.Metadata memory metadata) internal view returns (IRiskpool riskpool) {\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n require(riskpoolId > 0, \"ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST\");\n\n riskpool = _getRiskpoolForId(riskpoolId);\n }\n\n function _getRiskpoolForId(uint256 riskpoolId) internal view returns (IRiskpool riskpool) {\n require(_component.isRiskpool(riskpoolId), \"ERROR:POL-046:COMPONENT_NOT_RISKPOOL\");\n \n IComponent cmp = _component.getComponent(riskpoolId);\n riskpool = IRiskpool(address(cmp));\n }\n}\n"},"contracts/modules/QueryModule.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./ComponentController.sol\";\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IOracle.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IQuery.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IInstanceService.sol\";\n\n/**\nThe smart contract implements the \"IQuery\" interface and extends the \"CoreController\" contract.\nThe contract imports several external contracts from the \"etherisc/gif-interface\" repository, including \"IComponent.sol\", \"IOracle.sol\", \"IQuery.sol\", and \"IInstanceService.sol\".\nIt also imports two local contracts, \"ComponentController.sol\" and \"CoreController.sol\".\n\nThe contract defines a private variable `_component` of type \"ComponentController\" and an array `_oracleRequests` of type \"OracleRequest[]\".\n\nThe contract includes two modifiers:\n1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the \"OracleService\" contract address stored in the CoreController.\n2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`.\n\nThe contract provides the following functions:\n- `_afterInitialize()`: Sets the `_component` variable to the address of the \"ComponentController\" contract. It is called after contract initialization and only during the initialization phase.\n- `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the \"Query\" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event.\n- `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the \"OracleService\" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event.\n- `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the \"Query\" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event.\n- `getProcessId()`: Returns the process ID associated with a given `requestId`.\n- `getOracleRequestCount()`: Returns the number of oracle requests made.\n- `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component.\n\nThe contract emits the following events:\n1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID.\n2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status.\n3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID.\n */\n\n\ncontract QueryModule is \n IQuery, \n CoreController\n{\n ComponentController private _component;\n OracleRequest[] private _oracleRequests;\n\n modifier onlyOracleService() {\n require(\n _msgSender() == _getContractAddress(\"OracleService\"),\n \"ERROR:CRC-001:NOT_ORACLE_SERVICE\"\n );\n _;\n }\n\n modifier onlyResponsibleOracle(uint256 requestId, address responder) {\n OracleRequest memory oracleRequest = _oracleRequests[requestId];\n\n require(\n oracleRequest.createdAt > 0,\n \"ERROR:QUC-002:REQUEST_ID_INVALID\"\n );\n\n uint256 oracleId = oracleRequest.responsibleOracleId;\n address oracleAddress = address(_getOracle(oracleId));\n require(\n oracleAddress == responder,\n \"ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE\"\n );\n _;\n }\n\n function _afterInitialize() internal override onlyInitializing {\n _component = ComponentController(_getContractAddress(\"Component\"));\n }\n\n /* Oracle Request */\n // request only works for active oracles\n // function call _getOracle reverts if oracle is not active\n // as a result all request call on oracles that are not active will revert\n function request(\n bytes32 processId,\n bytes calldata input,\n string calldata callbackMethodName,\n address callbackContractAddress,\n uint256 responsibleOracleId\n ) \n external\n override \n onlyPolicyFlow(\"Query\") \n returns (uint256 requestId) \n {\n uint256 componentId = _component.getComponentId(callbackContractAddress);\n require(\n _component.isProduct(componentId),\n \"ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT\"\n );\n \n requestId = _oracleRequests.length;\n _oracleRequests.push();\n\n // TODO: get token from product\n\n OracleRequest storage req = _oracleRequests[requestId];\n req.processId = processId;\n req.data = input;\n req.callbackMethodName = callbackMethodName;\n req.callbackContractAddress = callbackContractAddress;\n req.responsibleOracleId = responsibleOracleId;\n req.createdAt = block.timestamp; // solhint-disable-line\n\n _getOracle(responsibleOracleId).request(\n requestId,\n input\n );\n\n emit LogOracleRequested(processId, requestId, responsibleOracleId);\n }\n\n /* Oracle Response */\n // respond only works for active oracles\n // modifier onlyResponsibleOracle contains a function call to _getOracle \n // which reverts if oracle is not active\n // as a result, all response calls by oracles that are not active will revert\n function respond(\n uint256 requestId,\n address responder,\n bytes calldata data\n ) \n external override \n onlyOracleService \n onlyResponsibleOracle(requestId, responder) \n {\n OracleRequest storage req = _oracleRequests[requestId];\n string memory functionSignature = string(\n abi.encodePacked(\n req.callbackMethodName,\n \"(uint256,bytes32,bytes)\"\n ));\n bytes32 processId = req.processId;\n\n (bool success, ) =\n req.callbackContractAddress.call(\n abi.encodeWithSignature(\n functionSignature,\n requestId,\n processId,\n data\n )\n );\n\n require(success, \"ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL\");\n delete _oracleRequests[requestId];\n\n // TODO implement reward payment\n\n emit LogOracleResponded(processId, requestId, responder, success);\n }\n\n function cancel(uint256 requestId) \n external override \n onlyPolicyFlow(\"Query\") \n {\n OracleRequest storage oracleRequest = _oracleRequests[requestId];\n require(oracleRequest.createdAt > 0, \"ERROR:QUC-030:REQUEST_ID_INVALID\");\n delete _oracleRequests[requestId];\n emit LogOracleCanceled(requestId);\n }\n\n\n function getProcessId(uint256 requestId)\n external\n view\n returns(bytes32 processId)\n {\n OracleRequest memory oracleRequest = _oracleRequests[requestId];\n require(oracleRequest.createdAt > 0, \"ERROR:QUC-040:REQUEST_ID_INVALID\");\n return oracleRequest.processId;\n }\n\n\n function getOracleRequestCount() public view returns (uint256 _count) {\n return _oracleRequests.length;\n }\n\n function _getOracle(uint256 id) internal view returns (IOracle oracle) {\n IComponent cmp = _component.getComponent(id);\n oracle = IOracle(address(cmp));\n\n require(\n _component.getComponentType(id) == IComponent.ComponentType.Oracle, \n \"ERROR:QUC-041:COMPONENT_NOT_ORACLE\"\n );\n\n require(\n _component.getComponentState(id) == IComponent.ComponentState.Active, \n \"ERROR:QUC-042:ORACLE_NOT_ACTIVE\"\n );\n }\n}\n"},"contracts/modules/RegistryController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\n\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\n\n/**\nThe smart contract implements the `IRegistry` interface and inherits from the `CoreController` contract.\nThe contract provides functionality for registering, deregistering, and accessing contracts within different releases. It maintains mappings and sets to store contract names and addresses in different releases.\n\n- `MAX_CONTRACTS`: A constant variable set to 100, representing the maximum number of contracts allowed in a release.\n- `release`: A bytes32 variable representing the current release identifier.\n- `startBlock`: An unsigned integer storing the block number at which the contract was deployed.\n- `_contracts`: A nested mapping that stores contract addresses based on the release and contract name.\n- `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release.\n- `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release.\n\nFunctions:\n- `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs.\n- `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release.\n- `getRelease()`: Returns the current release identifier.\n- `getContract()`: Returns the address of a contract by its name in the current release.\n- `register()`: Registers a contract with a given name and address in the current release.\n- `deregister()`: Deregisters a contract from the current release.\n- `getContractInRelease()`: Returns the address of a specific contract within a given release.\n- `registerInRelease()`: Registers a contract in a specific release.\n- `deregisterInRelease()`: Deregisters a contract name from a specific release.\n- `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one.\n- `contracts()`: Returns the number of contracts in the current release.\n- `contractName()`: Returns the name of the contract at the specified index in the contractNames set.\n\nInternal functions:\n- `_getContractInRelease()`: Returns the address of a contract in a specific release.\n- `_registerInRelease()`: Registers a contract in a release.\n- `_deregisterInRelease()`: Deregisters a contract in a specific release.\n\nThe contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered.\n\nOverall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts.\n */\n\n\ncontract RegistryController is\n IRegistry,\n CoreController\n{\n using EnumerableSet for EnumerableSet.Bytes32Set;\n\n /**\n * @dev Save number of items to iterate through\n * Currently we have < 20 contracts.\n */\n uint256 public constant MAX_CONTRACTS = 100;\n\n /**\n * @dev Current release\n * We use semantic versioning.\n */\n bytes32 public release;\n \n uint256 public startBlock;\n\n mapping(bytes32 /* release */ => mapping(bytes32 /* contract name */ => address /* contract address */)) public _contracts;\n mapping(bytes32 /* release */ => uint256 /* number of contracts in release */) public _contractsInRelease;\n mapping(bytes32 /* release */ => EnumerableSet.Bytes32Set /* contract names */) private _contractNames;\n\n function initializeRegistry(bytes32 _initialRelease) public initializer {\n // _setupRegistry(address(this));\n _registry = this;\n\n // this is a temporary assignment and must only be used\n // during the intial setup of a gif instance\n // at execution time _msgSender is the address of the \n // registry proxy.\n release = _initialRelease;\n _contracts[release][\"InstanceOperatorService\"] = _msgSender();\n EnumerableSet.add(_contractNames[release], \"InstanceOperatorService\");\n _contractsInRelease[release] = 1;\n\n\n // register the deployment block for reading logs\n startBlock = block.number;\n }\n\n function ensureSender(address sender, bytes32 _contractName) \n external view override \n returns(bool _senderMatches) \n {\n _senderMatches = (sender == _getContractInRelease(release, _contractName));\n }\n\n /**\n * @dev get current release\n */\n function getRelease() \n external override view \n returns (bytes32 _release) \n {\n _release = release;\n }\n\n /**\n * @dev Get contract's address in the current release\n */\n function getContract(bytes32 _contractName)\n public override view\n returns (address _addr)\n {\n _addr = _getContractInRelease(release, _contractName);\n }\n\n /**\n * @dev Register contract in the current release\n */\n function register(bytes32 _contractName, address _contractAddress)\n external override\n onlyInstanceOperator\n {\n _registerInRelease(release, false, _contractName, _contractAddress);\n }\n\n /**\n * @dev Deregister contract in the current release\n */\n function deregister(bytes32 _contractName) \n external override \n onlyInstanceOperator \n {\n _deregisterInRelease(release, _contractName);\n }\n\n /**\n * @dev Get contract's address in certain release\n */\n function getContractInRelease(bytes32 _release, bytes32 _contractName)\n external override view\n returns (address _addr)\n {\n _addr = _getContractInRelease(_release, _contractName);\n }\n\n /**\n * @dev Register contract in certain release\n */\n function registerInRelease(bytes32 _release, bytes32 _contractName, address _contractAddress) \n external override \n onlyInstanceOperator\n {\n _registerInRelease(_release, false, _contractName, _contractAddress);\n }\n\n function deregisterInRelease(bytes32 _release, bytes32 _contractName)\n external override\n onlyInstanceOperator\n {\n _deregisterInRelease(_release, _contractName);\n }\n\n /**\n * @dev Create new release, copy contracts from previous release\n */\n function prepareRelease(bytes32 _newRelease) \n external override \n onlyInstanceOperator \n {\n uint256 countContracts = _contractsInRelease[release];\n\n require(countContracts > 0, \"ERROR:REC-001:EMPTY_RELEASE\");\n require(\n _contractsInRelease[_newRelease] == 0,\n \"ERROR:REC-002:NEW_RELEASE_NOT_EMPTY\"\n );\n\n // TODO think about how to avoid this loop\n for (uint256 i = 0; i < countContracts; i += 1) {\n bytes32 name = EnumerableSet.at(_contractNames[release], i);\n _registerInRelease(\n _newRelease,\n true,\n name,\n _contracts[release][name]\n );\n }\n\n release = _newRelease;\n\n emit LogReleasePrepared(release);\n }\n\n function contracts() external override view returns (uint256 _numberOfContracts) {\n _numberOfContracts = EnumerableSet.length(_contractNames[release]);\n }\n\n function contractName(uint256 idx) external override view returns (bytes32 _contractName) {\n _contractName = EnumerableSet.at(_contractNames[release], idx);\n }\n\n /**\n * @dev Get contract's address in certain release\n */\n function _getContractInRelease(bytes32 _release, bytes32 _contractName)\n internal view\n returns (address _addr)\n {\n _addr = _contracts[_release][_contractName];\n }\n\n /**\n * @dev Register contract in certain release\n */\n function _registerInRelease(\n bytes32 _release,\n bool isNewRelease,\n bytes32 _contractName,\n address _contractAddress\n ) \n internal\n {\n bool isNew = false;\n\n require(\n EnumerableSet.length(_contractNames[_release]) < MAX_CONTRACTS,\n \"ERROR:REC-010:MAX_CONTRACTS_LIMIT\"\n );\n\n // during `prepareRelease` the _release is not yet known, so check should not fail in this case \n require(_contractsInRelease[_release] > 0 || isNewRelease, \"ERROR:REC-011:RELEASE_UNKNOWN\");\n require(_contractName != 0x00, \"ERROR:REC-012:CONTRACT_NAME_EMPTY\");\n require(\n (! EnumerableSet.contains(_contractNames[_release], _contractName) )\n // the contract 'InstanceOperatorService' is initially registered with the owner address (see method initializeRegistry()); \n // due to this this special check is required\n || (_contractName == \"InstanceOperatorService\" && _contracts[_release][_contractName] == _msgSender()), \n \"ERROR:REC-013:CONTRACT_NAME_EXISTS\");\n require(_contractAddress != address(0), \"ERROR:REC-014:CONTRACT_ADDRESS_ZERO\");\n\n if (_contracts[_release][_contractName] == address(0)) {\n EnumerableSet.add(_contractNames[_release], _contractName);\n _contractsInRelease[_release]++;\n isNew = true;\n }\n\n _contracts[_release][_contractName] = _contractAddress;\n require(\n _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]),\n \"ERROR:REC-015:CONTRACT_NUMBER_MISMATCH\"\n );\n\n emit LogContractRegistered(\n _release,\n _contractName,\n _contractAddress,\n isNew\n );\n }\n\n\n /**\n * @dev Deregister contract in certain release\n */\n function _deregisterInRelease(bytes32 _release, bytes32 _contractName)\n internal\n onlyInstanceOperator\n {\n require(EnumerableSet.contains(_contractNames[_release], _contractName), \"ERROR:REC-020:CONTRACT_UNKNOWN\");\n\n EnumerableSet.remove(_contractNames[_release], _contractName);\n\n _contractsInRelease[_release] -= 1;\n delete _contracts[_release][_contractName];\n \n require(\n _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]),\n \"ERROR:REC-021:CONTRACT_NUMBER_MISMATCH\");\n emit LogContractDeregistered(_release, _contractName); \n }\n}\n"},"contracts/modules/TreasuryModule.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./ComponentController.sol\";\nimport \"./PolicyController.sol\";\nimport \"./BundleController.sol\";\nimport \"./PoolController.sol\";\nimport \"../shared/CoreController.sol\";\nimport \"../shared/TransferHelper.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/ITreasury.sol\";\n\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\n\n/**\nThe smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts.\nThe contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the \"etherisc/gif-interface\" and \"openzeppelin/contracts\" libraries.\n\nThe contract defines several state variables, including:\n- FRACTION_FULL_UNIT: a constant representing the full unit value (10^18).\n- FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%).\n- event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation.\n- event LogTransferHelperInputValidation2Failed: an event that logs a failed input validation.\n- event LogTransferHelperCallFailed: an event that logs a failed external call.\n- _instanceWalletAddress: a private variable representing the address of the instance wallet.\n- _riskpoolWallet: a mapping of riskpool IDs to wallet addresses.\n- _fees: a mapping of component IDs to FeeSpecification structs.\n- _componentToken: a mapping of product IDs/riskpool IDs to ERC20 token addresses.\n- _bundle: an instance of the BundleController contract.\n- _component: an instance of the ComponentController contract.\n- _policy: an instance of the PolicyController contract.\n- _pool: an instance of the PoolController contract.\n\nThe contract includes several modifiers that enforce certain conditions on function execution, such as the instanceWalletDefined modifier, which requires the instance wallet address to be defined;\nthe riskpoolWalletDefinedForProcess modifier, which requires the riskpool wallet address to be defined for a given process ID;\nthe riskpoolWalletDefinedForBundle modifier, which requires the riskpool wallet address to be defined for a given bundle ID;\nthe whenNotSuspended modifier, which requires the contract to not be paused; and the onlyRiskpoolService modifier, which restricts access to the RiskpoolService contract.\n\nThe contract contains various functions for managing the treasury, such as setting the product token address, setting the instance wallet address, setting the riskpool wallet address, creating fee specifications, and setting premium and capital fees for components.\nThere are also functions for suspending and resuming the treasury contract.\n\nThe contract includes a function to calculate the fee amount and net amount for a given component ID and amount.\nIt also includes functions to process premium payments for policies, either for the remaining premium amount or for a specific amount.\n\nOverall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system.\n */\n\ncontract TreasuryModule is \n ITreasury,\n CoreController,\n Pausable\n{\n uint256 public constant FRACTION_FULL_UNIT = 10**18;\n uint256 public constant FRACTIONAL_FEE_MAX = FRACTION_FULL_UNIT / 4; // max frctional fee is 25%\n\n event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to);\n event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance);\n event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData);\n\n address private _instanceWalletAddress;\n mapping(uint256 => address) private _riskpoolWallet; // riskpoolId => walletAddress\n mapping(uint256 => FeeSpecification) private _fees; // componentId => fee specification\n mapping(uint256 => IERC20) private _componentToken; // productId/riskpoolId => erc20Address\n\n BundleController private _bundle;\n ComponentController private _component;\n PolicyController private _policy;\n PoolController private _pool;\n\n modifier instanceWalletDefined() {\n require(\n _instanceWalletAddress != address(0),\n \"ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED\");\n _;\n }\n\n modifier riskpoolWalletDefinedForProcess(bytes32 processId) {\n (uint256 riskpoolId, address walletAddress) = _getRiskpoolWallet(processId);\n require(\n walletAddress != address(0),\n \"ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED\");\n _;\n }\n\n modifier riskpoolWalletDefinedForBundle(uint256 bundleId) {\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(\n getRiskpoolWallet(bundle.riskpoolId) != address(0),\n \"ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED\");\n _;\n }\n\n // surrogate modifier for whenNotPaused to create treasury specific error message\n modifier whenNotSuspended() {\n require(!paused(), \"ERROR:TRS-004:TREASURY_SUSPENDED\");\n _;\n }\n\n modifier onlyRiskpoolService() {\n require(\n _msgSender() == _getContractAddress(\"RiskpoolService\"),\n \"ERROR:TRS-005:NOT_RISKPOOL_SERVICE\"\n );\n _;\n }\n\n function _afterInitialize() internal override onlyInitializing {\n _bundle = BundleController(_getContractAddress(\"Bundle\"));\n _component = ComponentController(_getContractAddress(\"Component\"));\n _policy = PolicyController(_getContractAddress(\"Policy\"));\n _pool = PoolController(_getContractAddress(\"Pool\"));\n }\n\n function suspend() \n external \n onlyInstanceOperator\n {\n _pause();\n emit LogTreasurySuspended();\n }\n\n function resume() \n external \n onlyInstanceOperator\n {\n _unpause();\n emit LogTreasuryResumed();\n }\n\n function setProductToken(uint256 productId, address erc20Address)\n external override\n whenNotSuspended\n onlyInstanceOperator\n {\n require(erc20Address != address(0), \"ERROR:TRS-010:TOKEN_ADDRESS_ZERO\");\n\n require(_component.isProduct(productId), \"ERROR:TRS-011:NOT_PRODUCT\");\n require(address(_componentToken[productId]) == address(0), \"ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET\"); \n \n IComponent component = _component.getComponent(productId);\n require(address(IProduct(address(component)).getToken()) == erc20Address, \"ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING\");\n\n uint256 riskpoolId = _pool.getRiskPoolForProduct(productId);\n\n // require if riskpool token is already set and product token does match riskpool token\n require(address(_componentToken[riskpoolId]) == address(0)\n || address(_componentToken[riskpoolId]) == erc20Address, \n \"ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING\");\n \n _componentToken[productId] = IERC20(erc20Address);\n _componentToken[riskpoolId] = IERC20(erc20Address);\n\n emit LogTreasuryProductTokenSet(productId, riskpoolId, erc20Address);\n }\n\n function setInstanceWallet(address instanceWalletAddress) \n external override\n whenNotSuspended\n onlyInstanceOperator\n {\n require(instanceWalletAddress != address(0), \"ERROR:TRS-015:WALLET_ADDRESS_ZERO\");\n _instanceWalletAddress = instanceWalletAddress;\n\n emit LogTreasuryInstanceWalletSet (instanceWalletAddress);\n }\n\n function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) \n external override\n whenNotSuspended\n onlyInstanceOperator\n {\n IComponent component = _component.getComponent(riskpoolId);\n require(_component.isRiskpool(riskpoolId), \"ERROR:TRS-016:NOT_RISKPOOL\");\n require(riskpoolWalletAddress != address(0), \"ERROR:TRS-017:WALLET_ADDRESS_ZERO\");\n _riskpoolWallet[riskpoolId] = riskpoolWalletAddress;\n\n emit LogTreasuryRiskpoolWalletSet (riskpoolId, riskpoolWalletAddress);\n }\n\n function createFeeSpecification(\n uint256 componentId,\n uint256 fixedFee,\n uint256 fractionalFee,\n bytes calldata feeCalculationData\n )\n external override\n view \n returns(FeeSpecification memory)\n {\n require(_component.isProduct(componentId) || _component.isRiskpool(componentId), \"ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL\");\n require(fractionalFee <= FRACTIONAL_FEE_MAX, \"ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG\");\n\n return FeeSpecification(\n componentId,\n fixedFee,\n fractionalFee,\n feeCalculationData,\n block.timestamp, // solhint-disable-line\n block.timestamp // solhint-disable-line\n ); \n }\n\n function setPremiumFees(FeeSpecification calldata feeSpec) \n external override\n whenNotSuspended\n onlyInstanceOperator\n {\n require(_component.isProduct(feeSpec.componentId), \"ERROR:TRS-022:NOT_PRODUCT\");\n \n // record original creation timestamp \n uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt;\n _fees[feeSpec.componentId] = feeSpec;\n\n // set original creation timestamp if fee spec already existed\n if (originalCreatedAt > 0) {\n _fees[feeSpec.componentId].createdAt = originalCreatedAt;\n }\n\n emit LogTreasuryPremiumFeesSet (\n feeSpec.componentId,\n feeSpec.fixedFee, \n feeSpec.fractionalFee);\n }\n\n\n function setCapitalFees(FeeSpecification calldata feeSpec) \n external override\n whenNotSuspended\n onlyInstanceOperator\n {\n require(_component.isRiskpool(feeSpec.componentId), \"ERROR:TRS-023:NOT_RISKPOOL\");\n\n // record original creation timestamp \n uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt;\n _fees[feeSpec.componentId] = feeSpec;\n\n // set original creation timestamp if fee spec already existed\n if (originalCreatedAt > 0) {\n _fees[feeSpec.componentId].createdAt = originalCreatedAt;\n }\n\n emit LogTreasuryCapitalFeesSet (\n feeSpec.componentId,\n feeSpec.fixedFee, \n feeSpec.fractionalFee);\n }\n\n\n function calculateFee(uint256 componentId, uint256 amount)\n public \n view\n returns(uint256 feeAmount, uint256 netAmount)\n {\n FeeSpecification memory feeSpec = getFeeSpecification(componentId);\n require(feeSpec.createdAt > 0, \"ERROR:TRS-024:FEE_SPEC_UNDEFINED\");\n feeAmount = _calculateFee(feeSpec, amount);\n netAmount = amount - feeAmount;\n }\n \n\n /*\n * Process the remaining premium by calculating the remaining amount, the fees for that amount and \n * then transfering the fees to the instance wallet and the net premium remaining to the riskpool. \n * This will revert if no fee structure is defined. \n */\n function processPremium(bytes32 processId) \n external override \n whenNotSuspended\n onlyPolicyFlow(\"Treasury\")\n returns(\n bool success, \n uint256 feeAmount, \n uint256 netPremiumAmount\n ) \n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n\n if (policy.premiumPaidAmount < policy.premiumExpectedAmount) {\n (success, feeAmount, netPremiumAmount) \n = processPremium(processId, policy.premiumExpectedAmount - policy.premiumPaidAmount);\n }\n }\n\n /*\n * Process the premium by calculating the fees for the amount and \n * then transfering the fees to the instance wallet and the net premium to the riskpool. \n * This will revert if no fee structure is defined. \n */\n function processPremium(bytes32 processId, uint256 amount) \n public override \n whenNotSuspended\n instanceWalletDefined\n riskpoolWalletDefinedForProcess(processId)\n onlyPolicyFlow(\"Treasury\")\n returns(\n bool success, \n uint256 feeAmount, \n uint256 netAmount\n ) \n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n require(\n policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, \n \"ERROR:TRS-030:AMOUNT_TOO_BIG\"\n );\n\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n (feeAmount, netAmount) \n = calculateFee(metadata.productId, amount);\n\n // check if allowance covers requested amount\n IERC20 token = getComponentToken(metadata.productId);\n if (token.allowance(metadata.owner, address(this)) < amount) {\n success = false;\n return (success, feeAmount, netAmount);\n }\n\n // collect premium fees\n success = TransferHelper.unifiedTransferFrom(token, metadata.owner, _instanceWalletAddress, feeAmount);\n emit LogTreasuryFeesTransferred(metadata.owner, _instanceWalletAddress, feeAmount);\n require(success, \"ERROR:TRS-031:FEE_TRANSFER_FAILED\");\n\n // transfer premium net amount to riskpool for product\n // actual transfer of net premium to riskpool\n (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId);\n success = TransferHelper.unifiedTransferFrom(token, metadata.owner, riskpoolWalletAddress, netAmount);\n\n emit LogTreasuryPremiumTransferred(metadata.owner, riskpoolWalletAddress, netAmount);\n require(success, \"ERROR:TRS-032:PREMIUM_TRANSFER_FAILED\");\n\n emit LogTreasuryPremiumProcessed(processId, amount);\n }\n\n\n function processPayout(bytes32 processId, uint256 payoutId) \n external override\n whenNotSuspended\n instanceWalletDefined\n riskpoolWalletDefinedForProcess(processId)\n onlyPolicyFlow(\"Treasury\")\n returns(\n uint256 feeAmount,\n uint256 netPayoutAmount\n )\n {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n IERC20 token = getComponentToken(metadata.productId);\n (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId);\n\n IPolicy.Payout memory payout = _policy.getPayout(processId, payoutId);\n require(\n token.balanceOf(riskpoolWalletAddress) >= payout.amount, \n \"ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL\"\n );\n require(\n token.allowance(riskpoolWalletAddress, address(this)) >= payout.amount, \n \"ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL\"\n );\n\n // actual payout to policy holder\n bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWalletAddress, metadata.owner, payout.amount);\n feeAmount = 0;\n netPayoutAmount = payout.amount;\n\n emit LogTreasuryPayoutTransferred(riskpoolWalletAddress, metadata.owner, payout.amount);\n require(success, \"ERROR:TRS-044:PAYOUT_TRANSFER_FAILED\");\n\n emit LogTreasuryPayoutProcessed(riskpoolId, metadata.owner, payout.amount);\n }\n\n function processCapital(uint256 bundleId, uint256 capitalAmount) \n external override \n whenNotSuspended\n instanceWalletDefined\n riskpoolWalletDefinedForBundle(bundleId)\n onlyRiskpoolService\n returns(\n uint256 feeAmount,\n uint256 netCapitalAmount\n )\n {\n // obtain relevant fee specification\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n address bundleOwner = _bundle.getOwner(bundleId);\n\n FeeSpecification memory feeSpec = getFeeSpecification(bundle.riskpoolId);\n require(feeSpec.createdAt > 0, \"ERROR:TRS-050:FEE_SPEC_UNDEFINED\");\n\n // obtain relevant token for product/riskpool pair\n IERC20 token = _componentToken[bundle.riskpoolId];\n\n // calculate fees and net capital\n feeAmount = _calculateFee(feeSpec, capitalAmount);\n netCapitalAmount = capitalAmount - feeAmount;\n\n // check balance and allowance before starting any transfers\n require(token.balanceOf(bundleOwner) >= capitalAmount, \"ERROR:TRS-052:BALANCE_TOO_SMALL\");\n require(token.allowance(bundleOwner, address(this)) >= capitalAmount, \"ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL\");\n\n bool success = TransferHelper.unifiedTransferFrom(token, bundleOwner, _instanceWalletAddress, feeAmount);\n\n emit LogTreasuryFeesTransferred(bundleOwner, _instanceWalletAddress, feeAmount);\n require(success, \"ERROR:TRS-054:FEE_TRANSFER_FAILED\");\n\n // transfer net capital\n address riskpoolWallet = getRiskpoolWallet(bundle.riskpoolId);\n success = TransferHelper.unifiedTransferFrom(token, bundleOwner, riskpoolWallet, netCapitalAmount);\n\n emit LogTreasuryCapitalTransferred(bundleOwner, riskpoolWallet, netCapitalAmount);\n require(success, \"ERROR:TRS-055:CAPITAL_TRANSFER_FAILED\");\n\n emit LogTreasuryCapitalProcessed(bundle.riskpoolId, bundleId, capitalAmount);\n }\n\n function processWithdrawal(uint256 bundleId, uint256 amount) \n external override\n whenNotSuspended\n instanceWalletDefined\n riskpoolWalletDefinedForBundle(bundleId)\n onlyRiskpoolService\n returns(\n uint256 feeAmount,\n uint256 netAmount\n )\n {\n // obtain relevant bundle info\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(\n bundle.capital >= bundle.lockedCapital + amount\n || (bundle.lockedCapital == 0 && bundle.balance >= amount),\n \"ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL\"\n );\n\n // obtain relevant token for product/riskpool pair\n address riskpoolWallet = getRiskpoolWallet(bundle.riskpoolId);\n address bundleOwner = _bundle.getOwner(bundleId);\n IERC20 token = _componentToken[bundle.riskpoolId];\n\n require(\n token.balanceOf(riskpoolWallet) >= amount, \n \"ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL\"\n );\n require(\n token.allowance(riskpoolWallet, address(this)) >= amount, \n \"ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL\"\n );\n\n // TODO consider to introduce withdrawal fees\n // ideally symmetrical reusing capital fee spec for riskpool\n feeAmount = 0;\n netAmount = amount;\n bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWallet, bundleOwner, netAmount);\n\n emit LogTreasuryWithdrawalTransferred(riskpoolWallet, bundleOwner, netAmount);\n require(success, \"ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED\");\n\n emit LogTreasuryWithdrawalProcessed(bundle.riskpoolId, bundleId, netAmount);\n }\n\n\n function getComponentToken(uint256 componentId) \n public override\n view\n returns(IERC20 token) \n {\n require(_component.isProduct(componentId) || _component.isRiskpool(componentId), \"ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL\");\n return _componentToken[componentId];\n }\n\n function getFeeSpecification(uint256 componentId) public override view returns(FeeSpecification memory) {\n return _fees[componentId];\n }\n\n function getFractionFullUnit() public override pure returns(uint256) { \n return FRACTION_FULL_UNIT; \n }\n\n function getInstanceWallet() public override view returns(address) { \n return _instanceWalletAddress; \n }\n\n function getRiskpoolWallet(uint256 riskpoolId) public override view returns(address) {\n return _riskpoolWallet[riskpoolId];\n }\n\n\n function _calculatePremiumFee(\n FeeSpecification memory feeSpec, \n bytes32 processId\n )\n internal\n view\n returns (\n IPolicy.Application memory application, \n uint256 feeAmount\n )\n {\n application = _policy.getApplication(processId);\n feeAmount = _calculateFee(feeSpec, application.premiumAmount);\n } \n\n\n function _calculateFee(\n FeeSpecification memory feeSpec, \n uint256 amount\n )\n internal\n pure\n returns (uint256 feeAmount)\n {\n if (feeSpec.feeCalculationData.length > 0) {\n revert(\"ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED\");\n }\n\n // start with fixed fee\n feeAmount = feeSpec.fixedFee;\n\n // add fractional fee on top\n if (feeSpec.fractionalFee > 0) {\n feeAmount += (feeSpec.fractionalFee * amount) / FRACTION_FULL_UNIT;\n }\n\n // require that fee is smaller than amount\n require(feeAmount < amount, \"ERROR:TRS-091:FEE_TOO_BIG\");\n } \n\n function _getRiskpoolWallet(bytes32 processId)\n internal\n view\n returns(uint256 riskpoolId, address riskpoolWalletAddress)\n {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n riskpoolId = _pool.getRiskPoolForProduct(metadata.productId);\n require(riskpoolId > 0, \"ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL\");\n riskpoolWalletAddress = _riskpoolWallet[riskpoolId];\n }\n}\n"},"contracts/services/ComponentOwnerService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../modules/ComponentController.sol\";\r\n// TODO ComponentOwnerService should not know of the PoolController - if we have a better idea how to build this, it should be changed. \r\nimport \"../modules/PoolController.sol\";\r\nimport \"../shared/CoreController.sol\";\r\n\r\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\r\nimport \"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\";\r\n\r\ncontract ComponentOwnerService is \r\n IComponentOwnerService,\r\n CoreController\r\n{\r\n ComponentController private _component;\r\n\r\n modifier onlyOwnerWithRoleFromComponent(IComponent component) {\r\n address owner = component.getOwner();\r\n bytes32 requiredRole = _component.getRequiredRole(component.getType());\r\n require(_msgSender() == owner, \"ERROR:COS-001:NOT_OWNER\");\r\n require(_access.hasRole(requiredRole, owner), \"ERROR:COS-002:REQUIRED_ROLE_MISSING\");\r\n _;\r\n }\r\n\r\n modifier onlyOwnerWithRole(uint256 id) {\r\n IComponent component = _component.getComponent(id);\r\n require(address(component) != address(0), \"ERROR:COS-003:COMPONENT_ID_INVALID\");\r\n\r\n address owner = component.getOwner();\r\n bytes32 requiredRole = _component.getRequiredRole(_component.getComponentType(id));\r\n\r\n require(_msgSender() == owner, \"ERROR:COS-004:NOT_OWNER\");\r\n require(_access.hasRole(requiredRole, owner), \"ERROR:COS-005:REQUIRED_ROLE_MISSING\");\r\n _;\r\n }\r\n\r\n function _afterInitialize() internal override onlyInitializing {\r\n _component = ComponentController(_getContractAddress(\"Component\"));\r\n }\r\n\r\n function propose(IComponent component) \r\n external override\r\n onlyOwnerWithRoleFromComponent(component) \r\n {\r\n _component.propose(component);\r\n }\r\n\r\n function stake(uint256 id) \r\n external override \r\n onlyOwnerWithRole(id) \r\n {\r\n revert(\"ERROR:COS-006:IMPLEMENATION_MISSING\");\r\n }\r\n\r\n function withdraw(uint256 id) \r\n external override\r\n onlyOwnerWithRole(id) \r\n {\r\n revert(\"ERROR:COS-007:IMPLEMENATION_MISSING\");\r\n }\r\n \r\n\r\n function pause(uint256 id) \r\n external override\r\n onlyOwnerWithRole(id) \r\n {\r\n _component.pause(id);\r\n }\r\n\r\n function unpause(uint256 id) \r\n external override \r\n onlyOwnerWithRole(id) \r\n {\r\n _component.unpause(id);\r\n }\r\n\r\n function archive(uint256 id) \r\n external override \r\n onlyOwnerWithRole(id) \r\n {\r\n _component.archiveFromComponentOwner(id);\r\n }\r\n}"},"contracts/services/InstanceOperatorService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../modules/AccessController.sol\";\nimport \"../modules/BundleController.sol\";\nimport \"../modules/ComponentController.sol\";\nimport \"../modules/PoolController.sol\";\nimport \"../modules/TreasuryModule.sol\";\nimport \"../shared/CoreController.sol\";\nimport \"../test/TestProduct.sol\";\nimport \"../tokens/BundleToken.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IQuery.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/ITreasury.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\";\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract InstanceOperatorService is \n IInstanceOperatorService, \n CoreController, \n Ownable \n{\n ComponentController private _component;\n PoolController private _pool;\n TreasuryModule private _treasury;\n\n modifier onlyInstanceOperatorAddress() {\n require(owner() == _msgSender(), \"ERROR:IOS-001:NOT_INSTANCE_OPERATOR\");\n _;\n }\n\n function _afterInitialize() internal override onlyInitializing {\n _component = ComponentController(_getContractAddress(\"Component\"));\n _pool = PoolController(_getContractAddress(\"Pool\"));\n _treasury = TreasuryModule(_getContractAddress(\"Treasury\"));\n\n _transferOwnership(_msgSender());\n _linkBundleModuleToBundleToken();\n _setDefaultAdminRole();\n }\n\n function _setDefaultAdminRole() private {\n AccessController access = AccessController(_getContractAddress(\"Access\"));\n access.setDefaultAdminRole(address(this));\n }\n\n function _linkBundleModuleToBundleToken() private {\n BundleToken token = BundleToken(_getContractAddress(\"BundleToken\"));\n address bundleAddress = _getContractAddress(\"Bundle\");\n token.setBundleModule(bundleAddress);\n }\n\n /* registry */\n function prepareRelease(bytes32 _newRelease) \n external override \n onlyInstanceOperatorAddress \n {\n _registry.prepareRelease(_newRelease);\n }\n\n function register(bytes32 _contractName, address _contractAddress)\n external override\n onlyInstanceOperatorAddress\n {\n _registry.register(_contractName, _contractAddress);\n }\n\n function deregister(bytes32 _contractName) \n external override \n onlyInstanceOperatorAddress \n {\n _registry.deregister(_contractName);\n }\n\n function registerInRelease(\n bytes32 _release,\n bytes32 _contractName,\n address _contractAddress\n ) \n external override \n onlyInstanceOperatorAddress \n {\n _registry.registerInRelease(_release, _contractName, _contractAddress);\n }\n\n function deregisterInRelease(bytes32 _release, bytes32 _contractName)\n external override\n onlyInstanceOperatorAddress\n {\n _registry.deregisterInRelease(_release, _contractName);\n }\n \n /* access */\n function createRole(bytes32 _role) \n external override\n onlyInstanceOperatorAddress \n {\n _access.addRole(_role);\n }\n\n function invalidateRole(bytes32 _role) \n external override\n onlyInstanceOperatorAddress \n {\n _access.invalidateRole(_role);\n }\n\n function grantRole(bytes32 role, address principal)\n external override\n onlyInstanceOperatorAddress\n {\n _access.grantRole(role, principal);\n }\n\n function revokeRole(bytes32 role, address principal) \n external override \n onlyInstanceOperatorAddress \n {\n _access.revokeRole(role, principal);\n }\n\n /* component */\n function approve(uint256 id)\n external override \n onlyInstanceOperatorAddress \n {\n _component.approve(id);\n\n if (_component.isProduct(id)) {\n IComponent component = _component.getComponent(id);\n IProduct product = IProduct(address(component));\n\n _pool.setRiskpoolForProduct(\n id,\n product.getRiskpoolId());\n }\n }\n\n function decline(uint256 id) \n external override \n onlyInstanceOperatorAddress \n {\n _component.decline(id);\n }\n\n function suspend(uint256 id) \n external override \n onlyInstanceOperatorAddress \n {\n _component.suspend(id);\n }\n\n function resume(uint256 id) \n external override \n onlyInstanceOperatorAddress \n {\n _component.resume(id);\n }\n\n function archive(uint256 id) \n external override \n onlyInstanceOperatorAddress \n {\n _component.archiveFromInstanceOperator(id);\n }\n\n // service staking\n // TODO implement setDefaultStaking staking\n function setDefaultStaking(\n uint16 componentType, \n bytes calldata data\n )\n external override\n onlyInstanceOperatorAddress\n {\n revert(\"ERROR:IOS-010:IMPLEMENATION_MISSING\");\n }\n\n // TODO implement adjustStakingRequirements staking\n function adjustStakingRequirements(\n uint256 id, \n bytes calldata data\n )\n external override\n onlyInstanceOperatorAddress\n {\n revert(\"ERROR:IOS-011:IMPLEMENATION_MISSING\");\n }\n\n /* treasury */\n function suspendTreasury() \n external override\n onlyInstanceOperatorAddress\n { \n _treasury.suspend();\n }\n\n function resumeTreasury() \n external override\n onlyInstanceOperatorAddress\n { \n _treasury.resume();\n }\n\n function setInstanceWallet(address walletAddress) \n external override\n onlyInstanceOperatorAddress\n {\n _treasury.setInstanceWallet(walletAddress);\n }\n\n function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) \n external override\n onlyInstanceOperatorAddress\n {\n _treasury.setRiskpoolWallet(riskpoolId, riskpoolWalletAddress);\n }\n\n function setProductToken(uint256 productId, address erc20Address) \n external override\n onlyInstanceOperatorAddress\n {\n _treasury.setProductToken(productId, erc20Address);\n }\n\n function createFeeSpecification(\n uint256 componentId,\n uint256 fixedFee,\n uint256 fractionalFee,\n bytes calldata feeCalculationData\n )\n external override\n view \n returns(ITreasury.FeeSpecification memory)\n {\n return _treasury.createFeeSpecification(\n componentId,\n fixedFee,\n fractionalFee,\n feeCalculationData\n );\n }\n \n function setPremiumFees(ITreasury.FeeSpecification calldata feeSpec) \n external override\n onlyInstanceOperatorAddress\n {\n _treasury.setPremiumFees(feeSpec);\n }\n\n function setCapitalFees(ITreasury.FeeSpecification calldata feeSpec) \n external override\n onlyInstanceOperatorAddress\n {\n _treasury.setCapitalFees(feeSpec);\n }\n}\n"},"contracts/services/InstanceService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../modules/ComponentController.sol\";\nimport \"../modules/BundleController.sol\";\nimport \"../modules/PolicyController.sol\";\nimport \"../modules/PoolController.sol\";\nimport \"../modules/TreasuryModule.sol\";\nimport \"../shared/CoreController.sol\";\nimport \"../services/InstanceOperatorService.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IOracle.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IRiskpool.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IInstanceService.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IOracleService.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IProductService.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\";\nimport \"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\";\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\ncontract InstanceService is \n IInstanceService, \n CoreController\n{\n bytes32 public constant BUNDLE_NAME = \"Bundle\";\n bytes32 public constant COMPONENT_NAME = \"Component\";\n bytes32 public constant POLICY_NAME = \"Policy\";\n bytes32 public constant POOL_NAME = \"Pool\";\n bytes32 public constant TREASURY_NAME = \"Treasury\";\n\n bytes32 public constant COMPONENT_OWNER_SERVICE_NAME = \"ComponentOwnerService\";\n bytes32 public constant INSTANCE_OPERATOR_SERVICE_NAME = \"InstanceOperatorService\";\n bytes32 public constant ORACLE_SERVICE_NAME = \"OracleService\";\n bytes32 public constant PRODUCT_SERVICE_NAME = \"ProductService\";\n bytes32 public constant RISKPOOL_SERVICE_NAME = \"RiskpoolService\";\n\n BundleController _bundle;\n ComponentController _component;\n PolicyController _policy;\n PoolController _pool;\n TreasuryModule private _treasury;\n\n mapping(uint256 /* chain id */ => string /* chain name */) private _chainName;\n\n function _afterInitialize() internal override onlyInitializing {\n _bundle = BundleController(_getContractAddress(BUNDLE_NAME));\n _component = ComponentController(_getContractAddress(COMPONENT_NAME));\n _policy = PolicyController(_getContractAddress(POLICY_NAME));\n _pool = PoolController(_getContractAddress(POOL_NAME));\n _treasury = TreasuryModule(_getContractAddress(TREASURY_NAME));\n\n _setChainNames();\n }\n\n function _setChainNames() internal {\n _chainName[1] = \"Ethereum Mainnet/ETH\"; \n _chainName[5] = \"Goerli/ETH\"; \n _chainName[1337] = \"Ganache\"; \n _chainName[100] = \"Gnosis/xDai\"; \n _chainName[77] = \"Sokol/SPOA\"; \n _chainName[137] = \"Polygon Mainnet/MATIC\"; \n _chainName[8001] = \"Mumbai/MATIC\"; \n _chainName[43114] = \"Avalanche C-Chain/AVAX\"; \n _chainName[43113] = \"Avalanche Fuji Testnet/AVAX\"; \n }\n\n /* instance service */\n function getChainId() public override view returns(uint256 chainId) {\n chainId = block.chainid;\n }\n\n function getChainName() public override view returns(string memory chainName) {\n chainName = _chainName[block.chainid];\n }\n\n function getInstanceId() public override view returns(bytes32 instanceId) {\n instanceId = keccak256(\n abi.encodePacked(\n block.chainid, \n address(_registry)));\n }\n\n function getInstanceOperator() external override view returns(address) {\n InstanceOperatorService ios = InstanceOperatorService(_getContractAddress(INSTANCE_OPERATOR_SERVICE_NAME));\n return ios.owner();\n }\n \n /* registry */\n function getComponentOwnerService() external override view returns(IComponentOwnerService service) {\n return IComponentOwnerService(_getContractAddress(COMPONENT_OWNER_SERVICE_NAME));\n }\n\n function getInstanceOperatorService() external override view returns(IInstanceOperatorService service) {\n return IInstanceOperatorService(_getContractAddress(INSTANCE_OPERATOR_SERVICE_NAME));\n }\n\n function getOracleService() external override view returns(IOracleService service) {\n return IOracleService(_getContractAddress(ORACLE_SERVICE_NAME));\n }\n\n function getProductService() external override view returns(IProductService service) {\n return IProductService(_getContractAddress(PRODUCT_SERVICE_NAME));\n }\n\n function getRiskpoolService() external override view returns(IRiskpoolService service) {\n return IRiskpoolService(_getContractAddress(RISKPOOL_SERVICE_NAME));\n }\n\n /* registry */\n function getRegistry() external view returns(IRegistry service) {\n return _registry;\n }\n\n function contracts() external view override returns (uint256 numberOfContracts) {\n numberOfContracts = _registry.contracts();\n }\n \n function contractName(uint256 idx) external view override returns (bytes32 name) {\n name = _registry.contractName(idx);\n }\n\n /* access */\n function getDefaultAdminRole() external override view returns(bytes32) {\n return _access.getDefaultAdminRole();\n }\n\n function getProductOwnerRole() external override view returns(bytes32) {\n return _access.getProductOwnerRole();\n }\n\n function getOracleProviderRole() external override view returns(bytes32) {\n return _access.getOracleProviderRole();\n }\n\n function getRiskpoolKeeperRole() external override view returns(bytes32) {\n return _access.getRiskpoolKeeperRole();\n }\n\n function hasRole(bytes32 role, address principal)\n external override view \n returns(bool)\n {\n return _access.hasRole(role, principal);\n }\n\n /* component */\n function products() external override view returns(uint256) {\n return _component.products();\n }\n\n function oracles() external override view returns(uint256) {\n return _component.oracles();\n }\n\n function riskpools() external override view returns(uint256) {\n return _component.riskpools();\n }\n\n function getComponentId(address componentAddress) external override view returns(uint256 componentId) {\n return _component.getComponentId(componentAddress);\n }\n\n function getComponentType(uint256 componentId)\n external override \n view \n returns(IComponent.ComponentType componentType)\n {\n return _component.getComponentType(componentId);\n }\n\n function getComponentState(uint256 componentId) \n external override\n view \n returns(IComponent.ComponentState componentState)\n {\n componentState = _component.getComponentState(componentId);\n }\n\n function getComponent(uint256 id) external override view returns(IComponent) {\n return _component.getComponent(id);\n }\n\n function getOracleId(uint256 idx) public view returns (uint256 oracleId) {\n return _component.getOracleId(idx);\n }\n\n function getRiskpoolId(uint256 idx) public view returns (uint256 riskpoolId) {\n return _component.getRiskpoolId(idx);\n }\n\n function getProductId(uint256 idx) public view returns (uint256 productId) {\n return _component.getProductId(idx);\n }\n\n /* service staking */\n function getStakingRequirements(uint256 id) \n external override \n pure \n returns(bytes memory data) \n {\n revert(\"ERROR:IS-001:IMPLEMENATION_MISSING\");\n }\n\n function getStakedAssets(uint256 id)\n external override \n pure \n returns(bytes memory data) \n {\n revert(\"ERROR:IS-002:IMPLEMENATION_MISSING\");\n }\n\n /* policy */\n function processIds() external override view returns(uint256 numberOfProcessIds) {\n numberOfProcessIds = _policy.processIds();\n }\n\n function getMetadata(bytes32 bpKey) external override view returns(IPolicy.Metadata memory metadata) {\n metadata = _policy.getMetadata(bpKey);\n }\n\n function getApplication(bytes32 processId) external override view returns(IPolicy.Application memory application) {\n application = _policy.getApplication(processId);\n }\n\n function getPolicy(bytes32 processId) external override view returns(IPolicy.Policy memory policy) {\n policy = _policy.getPolicy(processId);\n }\n \n function claims(bytes32 processId) external override view returns(uint256 numberOfClaims) {\n numberOfClaims = _policy.getNumberOfClaims(processId);\n }\n \n function payouts(bytes32 processId) external override view returns(uint256 numberOfPayouts) {\n numberOfPayouts = _policy.getNumberOfPayouts(processId);\n }\n \n function getClaim(bytes32 processId, uint256 claimId) external override view returns (IPolicy.Claim memory claim) {\n claim = _policy.getClaim(processId, claimId);\n }\n \n function getPayout(bytes32 processId, uint256 payoutId) external override view returns (IPolicy.Payout memory payout) {\n payout = _policy.getPayout(processId, payoutId);\n }\n\n /* riskpool */\n function getRiskpool(uint256 riskpoolId) external override view returns(IPool.Pool memory riskPool) {\n return _pool.getRiskpool(riskpoolId);\n }\n\n function getFullCollateralizationLevel() external override view returns (uint256) {\n return _pool.getFullCollateralizationLevel();\n }\n\n function getCapital(uint256 riskpoolId) external override view returns(uint256 capitalAmount) {\n return _pool.getRiskpool(riskpoolId).capital;\n }\n\n function getTotalValueLocked(uint256 riskpoolId) external override view returns(uint256 totalValueLockedAmount) {\n return _pool.getRiskpool(riskpoolId).lockedCapital;\n }\n\n function getCapacity(uint256 riskpoolId) external override view returns(uint256 capacityAmount) {\n IPool.Pool memory pool = _pool.getRiskpool(riskpoolId);\n return pool.capital - pool.lockedCapital;\n }\n\n function getBalance(uint256 riskpoolId) external override view returns(uint256 balanceAmount) {\n return _pool.getRiskpool(riskpoolId).balance;\n }\n\n function activeBundles(uint256 riskpoolId) external override view returns(uint256 numberOfActiveBundles) {\n return _pool.activeBundles(riskpoolId);\n }\n\n function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external override view returns(uint256 bundleId) {\n return _pool.getActiveBundleId(riskpoolId, bundleIdx);\n }\n function getMaximumNumberOfActiveBundles(uint256 riskpoolId) external override view returns(uint256 maximumNumberOfActiveBundles) {\n return _pool.getMaximumNumberOfActiveBundles(riskpoolId);\n }\n\n /* bundle */\n function getBundleToken() external override view returns(IBundleToken token) {\n BundleToken bundleToken = _bundle.getToken();\n token = IBundleToken(bundleToken);\n }\n \n function getBundle(uint256 bundleId) external override view returns (IBundle.Bundle memory bundle) {\n bundle = _bundle.getBundle(bundleId);\n }\n\n function bundles() external override view returns (uint256) {\n return _bundle.bundles();\n }\n\n function unburntBundles(uint256 riskpoolId) external override view returns(uint256 numberOfUnburntBundles) {\n numberOfUnburntBundles = _bundle.unburntBundles(riskpoolId);\n }\n\n /* treasury */\n function getTreasuryAddress() external override view returns(address) { \n return address(_treasury);\n }\n\n function getInstanceWallet() external override view returns(address) { \n return _treasury.getInstanceWallet();\n }\n\n function getRiskpoolWallet(uint256 riskpoolId) external override view returns(address) { \n return _treasury.getRiskpoolWallet(riskpoolId);\n }\n\n function getComponentToken(uint256 componentId) external override view returns(IERC20) { \n return _treasury.getComponentToken(componentId);\n }\n\n function getFeeFractionFullUnit() external override view returns(uint256) {\n return _treasury.getFractionFullUnit();\n }\n}\n"},"contracts/services/OracleService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/modules/IQuery.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IOracleService.sol\";\n\n\ncontract OracleService is \n IOracleService, \n CoreController\n{\n IQuery private _query;\n\n function _afterInitialize() internal override onlyInitializing {\n _query = IQuery(_getContractAddress(\"Query\"));\n }\n\n function respond(uint256 _requestId, bytes calldata _data) external override {\n // function below enforces msg.sender to be a registered oracle\n _query.respond(_requestId, _msgSender(), _data);\n }\n}\n"},"contracts/services/ProductService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../shared/WithRegistry.sol\";\n// import \"../shared/CoreController.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/ILicense.sol\";\n\nimport \"@openzeppelin/contracts/utils/Context.sol\";\n\ncontract ProductService is\n WithRegistry,\n // CoreController\n Context\n {\n bytes32 public constant NAME = \"ProductService\";\n\n // solhint-disable-next-line no-empty-blocks\n constructor(address _registry) WithRegistry(_registry) {}\n\n fallback() external {\n // getAuthorizationStatus enforces msg.sender to be a registered product\n (,bool isAuthorized, address policyFlow) = _license().getAuthorizationStatus(_msgSender());\n\n require(isAuthorized, \"ERROR:PRS-001:NOT_AUTHORIZED\");\n require(policyFlow != address(0),\"ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED\");\n\n _delegate(policyFlow);\n }\n\n\n /**\n * @dev Delegates the current call to `implementation`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n * This function is a 1:1 copy of _delegate from\n * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.6/contracts/proxy/Proxy.sol\n */\n function _delegate(address implementation) internal {\n assembly {\n // Copy msg.data. We take full control of memory in this inline assembly\n // block because it will not return to Solidity code. We overwrite the\n // Solidity scratch pad at memory position 0.\n calldatacopy(0, 0, calldatasize())\n\n // Call the implementation.\n // out and outsize are 0 because we don't know the size yet.\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n // Copy the returned data.\n returndatacopy(0, 0, returndatasize())\n\n switch result\n // delegatecall returns 0 on error.\n case 0 {\n revert(0, returndatasize())\n }\n default {\n return(0, returndatasize())\n }\n }\n }\n\n function _license() internal view returns (ILicense) {\n return ILicense(registry.getContract(\"License\"));\n }\n\n}\n"},"contracts/services/RiskpoolService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../modules/BundleController.sol\";\nimport \"../modules/ComponentController.sol\";\nimport \"../modules/TreasuryModule.sol\";\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IBundle.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\";\n\ncontract RiskpoolService is\n IRiskpoolService, \n CoreController\n{\n bytes32 public constant RISKPOOL_NAME = \"Riskpool\";\n\n ComponentController private _component;\n BundleController private _bundle;\n PoolController private _pool;\n TreasuryModule private _treasury;\n\n modifier onlyProposedRiskpool() {\n uint256 componentId = _component.getComponentId(_msgSender());\n require(\n _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool,\n \"ERROR:RPS-001:SENDER_NOT_RISKPOOL\"\n );\n require(\n _component.getComponentState(componentId) == IComponent.ComponentState.Proposed,\n \"ERROR:RPS-002:RISKPOOL_NOT_PROPOSED\"\n );\n _;\n }\n\n modifier onlyActiveRiskpool() {\n uint256 componentId = _component.getComponentId(_msgSender());\n require(\n _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool,\n \"ERROR:RPS-003:SENDER_NOT_RISKPOOL\"\n );\n require(\n _component.getComponentState(componentId) == IComponent.ComponentState.Active,\n \"ERROR:RPS-004:RISKPOOL_NOT_ACTIVE\"\n );\n _;\n }\n\n modifier onlyOwningRiskpool(uint256 bundleId, bool mustBeActive) {\n uint256 componentId = _component.getComponentId(_msgSender());\n bool isRiskpool = _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool;\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(\n isRiskpool,\n \"ERROR:RPS-005:SENDER_NOT_RISKPOOL\"\n );\n require(\n componentId == bundle.riskpoolId,\n \"ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH\"\n );\n if (mustBeActive) {\n require(\n _component.getComponentState(componentId) == IComponent.ComponentState.Active,\n \"ERROR:RPS-007:RISKPOOL_NOT_ACTIVE\"\n );\n }\n _;\n }\n\n modifier onlyOwningRiskpoolId(uint256 riskpoolId, bool mustBeActive) {\n uint256 componentId = _component.getComponentId(_msgSender());\n bool isRiskpool = _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool;\n require(\n isRiskpool && componentId == riskpoolId,\n \"ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL\"\n );\n if (mustBeActive) {\n require(\n _component.getComponentState(componentId) == IComponent.ComponentState.Active,\n \"ERROR:RPS-009:RISKPOOL_NOT_ACTIVE\"\n );\n }\n _;\n }\n\n\n function _afterInitialize() \n internal override \n onlyInitializing \n {\n _bundle = BundleController(_getContractAddress(\"Bundle\"));\n _component = ComponentController(_getContractAddress(\"Component\"));\n _pool = PoolController(_getContractAddress(\"Pool\"));\n _treasury = TreasuryModule(_getContractAddress(\"Treasury\"));\n }\n\n\n function registerRiskpool(\n address wallet,\n address erc20Token,\n uint256 collateralizationLevel, \n uint256 sumOfSumInsuredCap\n )\n external override\n onlyProposedRiskpool\n {\n uint256 riskpoolId = _component.getComponentId(_msgSender());\n _pool.registerRiskpool(\n riskpoolId, \n wallet,\n erc20Token,\n collateralizationLevel, \n sumOfSumInsuredCap\n );\n }\n\n function createBundle(\n address owner, \n bytes calldata filter, \n uint256 initialCapital\n ) \n external override\n onlyActiveRiskpool\n returns(uint256 bundleId)\n {\n uint256 riskpoolId = _component.getComponentId(_msgSender());\n bundleId = _bundle.create(owner, riskpoolId, filter, 0);\n \n _pool.addBundleIdToActiveSet(riskpoolId, bundleId);\n\n (uint256 fee, uint256 netCapital) = _treasury.processCapital(bundleId, initialCapital);\n\n _bundle.fund(bundleId, netCapital);\n _pool.fund(riskpoolId, netCapital);\n }\n\n\n function fundBundle(uint256 bundleId, uint256 amount)\n external override\n onlyOwningRiskpool(bundleId, true)\n returns( uint256 netAmount)\n {\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(\n bundle.state != IBundle.BundleState.Closed\n && bundle.state != IBundle.BundleState.Burned, \n \"ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED\"\n );\n\n uint256 feeAmount;\n (feeAmount, netAmount) = _treasury.processCapital(bundleId, amount);\n\n _bundle.fund(bundleId, netAmount);\n _pool.fund(bundle.riskpoolId, netAmount);\n }\n\n\n function defundBundle(uint256 bundleId, uint256 amount)\n external override\n onlyOwningRiskpool(bundleId, true)\n returns(uint256 netAmount)\n {\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(\n bundle.state != IBundle.BundleState.Burned, \n \"ERROR:RPS-011:BUNDLE_BURNED\"\n );\n\n uint256 feeAmount;\n (feeAmount, netAmount) = _treasury.processWithdrawal(bundleId, amount);\n require(netAmount == amount, \"ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION\");\n\n _bundle.defund(bundleId, amount);\n _pool.defund(bundle.riskpoolId, netAmount);\n }\n\n\n function lockBundle(uint256 bundleId)\n external override\n onlyOwningRiskpool(bundleId, true)\n {\n uint256 riskpoolId = _component.getComponentId(_msgSender());\n _pool.removeBundleIdFromActiveSet(riskpoolId, bundleId);\n _bundle.lock(bundleId);\n }\n\n\n function unlockBundle(uint256 bundleId)\n external override\n onlyOwningRiskpool(bundleId, true) \n {\n uint256 riskpoolId = _component.getComponentId(_msgSender());\n _pool.addBundleIdToActiveSet(riskpoolId, bundleId);\n _bundle.unlock(bundleId);\n }\n\n\n function closeBundle(uint256 bundleId)\n external override\n onlyOwningRiskpool(bundleId, true) \n {\n uint256 riskpoolId = _component.getComponentId(_msgSender());\n\n if (_bundle.getState(bundleId) == IBundle.BundleState.Active) {\n _pool.removeBundleIdFromActiveSet(riskpoolId, bundleId);\n }\n\n _bundle.close(bundleId);\n }\n\n function burnBundle(uint256 bundleId)\n external override\n onlyOwningRiskpool(bundleId, true) \n {\n // ensure bundle is closed\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(bundle.state == IBundle.BundleState.Closed, \"ERROR:RPS-020:BUNDLE_NOT_CLOSED\");\n\n // withdraw remaining balance\n (uint256 feeAmount, uint256 netAmount) = _treasury.processWithdrawal(bundleId, bundle.balance);\n \n _bundle.defund(bundleId, netAmount);\n _pool.defund(bundle.riskpoolId, netAmount);\n\n _bundle.burn(bundleId);\n }\n \n function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 collateralAmount) \n external override\n onlyOwningRiskpool(bundleId, true) \n {\n _bundle.collateralizePolicy(bundleId, processId, collateralAmount);\n }\n\n function processPremium(uint256 bundleId, bytes32 processId, uint256 amount)\n external override\n onlyOwningRiskpool(bundleId, true)\n { \n _bundle.processPremium(bundleId, processId, amount);\n }\n\n function processPayout(uint256 bundleId, bytes32 processId, uint256 amount)\n external override\n onlyOwningRiskpool(bundleId, true) \n {\n _bundle.processPayout(bundleId, processId, amount);\n }\n\n function releasePolicy(uint256 bundleId, bytes32 processId)\n external override\n onlyOwningRiskpool(bundleId, false) \n returns(uint256 collateralAmount)\n {\n collateralAmount = _bundle.releasePolicy(bundleId, processId);\n }\n\n function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles)\n external override\n onlyOwningRiskpoolId(riskpoolId, true)\n {\n _pool.setMaximumNumberOfActiveBundles(riskpoolId, maxNumberOfActiveBundles);\n } \n}\n"},"contracts/shared/CoreController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@etherisc/gif-interface/contracts/modules/IAccess.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\n\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport \"@openzeppelin/contracts/utils/Context.sol\";\n\ncontract CoreController is\n Context,\n Initializable \n{\n IRegistry internal _registry;\n IAccess internal _access;\n\n constructor () {\n _disableInitializers();\n }\n\n modifier onlyInstanceOperator() {\n require(\n _registry.ensureSender(_msgSender(), \"InstanceOperatorService\"),\n \"ERROR:CRC-001:NOT_INSTANCE_OPERATOR\");\n _;\n }\n\n modifier onlyPolicyFlow(bytes32 module) {\n // Allow only from delegator\n require(\n address(this) == _getContractAddress(module),\n \"ERROR:CRC-002:NOT_ON_STORAGE\"\n );\n\n // Allow only ProductService (it delegates to PolicyFlow)\n require(\n _msgSender() == _getContractAddress(\"ProductService\"),\n \"ERROR:CRC-003:NOT_PRODUCT_SERVICE\"\n );\n _;\n }\n\n function initialize(address registry) public initializer {\n _registry = IRegistry(registry);\n if (_getName() != \"Access\") { _access = IAccess(_getContractAddress(\"Access\")); }\n \n _afterInitialize();\n }\n\n function _getName() internal virtual pure returns(bytes32) { return \"\"; }\n\n function _afterInitialize() internal virtual onlyInitializing {}\n\n function _getContractAddress(bytes32 contractName) internal view returns (address contractAddress) { \n contractAddress = _registry.getContract(contractName);\n require(\n contractAddress != address(0),\n \"ERROR:CRC-004:CONTRACT_NOT_REGISTERED\"\n );\n }\n}\n"},"contracts/shared/CoreProxy.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\n\r\nimport \"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol\";\r\nimport \"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\";\r\n\r\ncontract CoreProxy is \r\n ICoreProxy, \r\n ERC1967Proxy\r\n{\r\n\r\n modifier onlyAdmin() {\r\n require(\r\n msg.sender == _getAdmin(),\r\n \"ERROR:CRP-001:NOT_ADMIN\");\r\n _;\r\n }\r\n\r\n constructor(address _controller, bytes memory encoded_initializer) \r\n ERC1967Proxy(_controller, encoded_initializer) \r\n {\r\n _changeAdmin(msg.sender);\r\n }\r\n\r\n function implementation() external view returns (address) {\r\n return _implementation();\r\n }\r\n\r\n function upgradeToAndCall(address newImplementation, bytes calldata data) \r\n external\r\n payable\r\n onlyAdmin\r\n {\r\n address oldImplementation = _implementation();\r\n\r\n _upgradeToAndCall(newImplementation, data, true);\r\n\r\n emit LogCoreContractUpgraded(\r\n oldImplementation, \r\n newImplementation);\r\n } \r\n}\r\n"},"contracts/shared/TransferHelper.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\n// inspired/informed by\n// https://soliditydeveloper.com/safe-erc20\n// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/token/ERC20/ERC20.sol\n// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/token/ERC20/utils/SafeERC20.sol\n// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/utils/Address.sol\n// https://github.com/Uniswap/solidity-lib/blob/master/contracts/libraries/TransferHelper.sol\nlibrary TransferHelper {\n\n event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to);\n event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance);\n event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData);\n\n function unifiedTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n )\n internal\n returns(bool success)\n {\n // input validation step 1\n address tokenAddress = address(token);\n bool tokenIsContract = (tokenAddress.code.length > 0);\n if (from == address(0) || to == address (0) || !tokenIsContract) {\n emit LogTransferHelperInputValidation1Failed(tokenIsContract, from, to);\n return false;\n }\n \n // input validation step 2\n uint256 balance = token.balanceOf(from);\n uint256 allowance = token.allowance(from, address(this));\n if (balance < value || allowance < value) {\n emit LogTransferHelperInputValidation2Failed(balance, allowance);\n return false;\n }\n\n // low-level call to transferFrom\n // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));\n (bool callSuccess, bytes memory data) = address(token).call(\n abi.encodeWithSelector(\n 0x23b872dd, \n from, \n to, \n value));\n\n success = callSuccess && (false\n || data.length == 0 \n || (data.length == 32 && abi.decode(data, (bool))));\n\n if (!success) {\n emit LogTransferHelperCallFailed(callSuccess, data.length, data);\n }\n }\n}"},"contracts/shared/WithRegistry.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\n\ncontract WithRegistry {\n\n/*\n * We can consider the registry address as immutable here as it contains the\n * root data structure for the whole GIF Instance.\n * We can therefore ensure that a policy flow cannot overwrite the address\n * neither by chance nor by intention.\n */\n IRegistry public immutable registry;\n\n modifier onlyInstanceOperator() {\n require(\n msg.sender == getContractFromRegistry(\"InstanceOperatorService\"),\n \"ERROR:ACM-001:NOT_INSTANCE_OPERATOR\"\n );\n _;\n }\n\n modifier onlyOracleService() {\n require(\n msg.sender == getContractFromRegistry(\"OracleService\"),\n \"ERROR:ACM-004:NOT_ORACLE_SERVICE\"\n );\n _;\n }\n\n modifier onlyOracleOwner() {\n require(\n msg.sender == getContractFromRegistry(\"OracleOwnerService\"),\n \"ERROR:ACM-005:NOT_ORACLE_OWNER\"\n );\n _;\n }\n\n modifier onlyProductOwner() {\n require(\n msg.sender == getContractFromRegistry(\"ProductOwnerService\"),\n \"ERROR:ACM-006:NOT_PRODUCT_OWNER\"\n );\n _;\n }\n\n constructor(address _registry) {\n registry = IRegistry(_registry);\n }\n\n function getContractFromRegistry(bytes32 _contractName)\n public\n // override\n view\n returns (address _addr)\n {\n _addr = registry.getContract(_contractName);\n }\n\n function getContractInReleaseFromRegistry(bytes32 _release, bytes32 _contractName)\n internal\n view\n returns (address _addr)\n {\n _addr = registry.getContractInRelease(_release, _contractName);\n }\n\n function getReleaseFromRegistry() internal view returns (bytes32 _release) {\n _release = registry.getRelease();\n }\n}\n"},"contracts/test/TestCoin.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract TestCoin is ERC20 {\r\n\r\n string public constant NAME = \"Test Dummy\";\r\n string public constant SYMBOL = \"TDY\";\r\n\r\n uint256 public constant INITIAL_SUPPLY = 10**24;\r\n\r\n constructor()\r\n ERC20(NAME, SYMBOL)\r\n {\r\n _mint(\r\n _msgSender(),\r\n INITIAL_SUPPLY\r\n );\r\n }\r\n}\r\n\r\ncontract TestCoinX is ERC20 {\r\n\r\n string public constant NAME = \"Test Dummy X\";\r\n string public constant SYMBOL = \"TDX\";\r\n\r\n uint256 public constant INITIAL_SUPPLY = 10**24;\r\n\r\n constructor()\r\n ERC20(NAME, SYMBOL)\r\n {\r\n _mint(\r\n _msgSender(),\r\n INITIAL_SUPPLY\r\n );\r\n }\r\n}\r\n"},"contracts/test/TestCoinAlternativeImplementation.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract TestCoinAlternativeImplementation is ERC20 {\r\n\r\n string public constant NAME = \"Test Alternative Coin\";\r\n string public constant SYMBOL = \"TAC\";\r\n\r\n uint256 public constant INITIAL_SUPPLY = 10**24;\r\n\r\n constructor()\r\n ERC20(NAME, SYMBOL)\r\n {\r\n _mint(\r\n _msgSender(),\r\n INITIAL_SUPPLY\r\n );\r\n }\r\n\r\n // inspired by ZRX transfer implementation\r\n // see https://soliditydeveloper.com/safe-erc20\r\n function transferFrom(address _from, address _to, uint _value)\r\n public virtual override returns (bool) \r\n {\r\n if (balanceOf(_from) >= _value // check sufficient balance\r\n && allowance(_from, msg.sender) >= _value // check sufficient allowance\r\n && balanceOf(_to) + _value >= balanceOf(_to) // check overflow\r\n && _from != address(0) // sender not zero address\r\n && _to != address(0)) // recipient not zero address\r\n {\r\n return super.transferFrom(_from, _to, _value); // should never fail now\r\n } else { \r\n return false; \r\n }\r\n }\r\n}\r\n"},"contracts/test/TestCompromisedProduct.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\r\n\r\nimport \"@etherisc/gif-interface/contracts/modules/IAccess.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\r\n\r\nimport \"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\";\r\nimport \"@etherisc/gif-interface/contracts/services/IProductService.sol\";\r\nimport \"@etherisc/gif-interface/contracts/services/IInstanceService.sol\";\r\n\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\n/* \r\nthe TestCompromisedProduct claims to be an existing product that connects to an existing \r\nriskpool with the goal to create fraud claims that lead to fraud payouts whith the intention\r\nto drain the riskpool.\r\n\r\nfor this the compromised product claims\r\n- to be a product\r\n- to be in state active (independent of an approval step by the instance operator)\r\n*/\r\ncontract TestCompromisedProduct is \r\n IProduct,\r\n Ownable \r\n{\r\n IComponent.ComponentState public constant FAKE_STATE = IComponent.ComponentState.Active;\r\n \r\n bytes32 public constant POLICY_FLOW = \"PolicyDefaultFlow\";\r\n\r\n bytes32 private _componentName;\r\n address private _tokenAddress;\r\n uint256 private _componentId;\r\n uint256 private _riskpoolId;\r\n \r\n IRegistry private _registry;\r\n IAccess private _access;\r\n IComponentOwnerService private _componentOwnerService;\r\n IInstanceService private _instanceService;\r\n address private _policyFlow;\r\n IProductService private _productService;\r\n\r\n uint256 private _policies;\r\n uint256 private _claims;\r\n\r\n modifier onlyPolicyHolder(bytes32 policyId) {\r\n address policyHolder = _instanceService.getMetadata(policyId).owner;\r\n require(\r\n _msgSender() == policyHolder, \r\n \"ERROR:TCP-1:INVALID_POLICY_OR_HOLDER\"\r\n );\r\n _;\r\n }\r\n\r\n constructor(\r\n bytes32 fakeProductName,\r\n address tokenAddress,\r\n uint256 fakeComponentId,\r\n uint256 fakeRiskpoolId,\r\n address registryAddress\r\n )\r\n Ownable()\r\n { \r\n _componentName = fakeProductName;\r\n _tokenAddress = tokenAddress;\r\n _componentId = fakeComponentId;\r\n _riskpoolId = fakeRiskpoolId;\r\n\r\n _registry = IRegistry(registryAddress);\r\n _access = _getAccess();\r\n _componentOwnerService = _getComponentOwnerService();\r\n _instanceService = _getInstanceService();\r\n _policyFlow = _getContractAddress(POLICY_FLOW);\r\n _productService = _getProductService();\r\n }\r\n\r\n function applyForPolicy(\r\n uint256 premium, \r\n uint256 sumInsured,\r\n bytes calldata metaData,\r\n bytes calldata applicationData\r\n ) \r\n external \r\n payable \r\n returns (bytes32 processId) \r\n {\r\n address payable policyHolder = payable(_msgSender());\r\n\r\n // Create and underwrite new application\r\n processId = _productService.newApplication(\r\n policyHolder, \r\n premium, \r\n sumInsured, \r\n metaData, \r\n applicationData);\r\n\r\n _productService.underwrite(processId);\r\n }\r\n\r\n function collectPremium(bytes32 policyId) \r\n external \r\n {\r\n IPolicy.Policy memory policy = _instanceService.getPolicy(policyId);\r\n _productService.collectPremium(policyId, policy.premiumExpectedAmount);\r\n }\r\n\r\n function submitClaim(bytes32 policyId, uint256 claimAmount) \r\n external\r\n onlyPolicyHolder(policyId)\r\n {\r\n // increase claims counter\r\n _claims += 1;\r\n \r\n // create claim and confirm it\r\n uint256 claimId = _productService.newClaim(policyId, claimAmount, abi.encode(0));\r\n _productService.confirmClaim(policyId, claimId, claimAmount);\r\n\r\n // create payout record\r\n uint256 payoutId = _productService.newPayout(policyId, claimId, claimAmount, abi.encode(0));\r\n _productService.processPayout(policyId, payoutId);\r\n }\r\n\r\n //--- product service access --------------------------------------------//\r\n\r\n //--- iproduct ----------------------------------------------------------//\r\n function getToken() external override view returns(address token) { return _tokenAddress; }\r\n function getPolicyFlow() external override view returns(address policyFlow) { return _getContractAddress(POLICY_FLOW); }\r\n function getRiskpoolId() external override view returns(uint256 riskpoolId) { return _riskpoolId; }\r\n\r\n function getApplicationDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\r\n function getClaimDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\r\n function getPayoutDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\r\n\r\n function riskPoolCapacityCallback(uint256 capacity) external override {}\r\n\r\n //--- icomponent --------------------------------------------------------//\r\n function setId(uint256 id) external override {} // does not care about id\r\n\r\n function getName() external override view returns(bytes32) { return _componentName; }\r\n function getId() external override view returns(uint256) { return _componentId; }\r\n function getType() external override view returns(ComponentType) { return IComponent.ComponentType.Product; }\r\n function getState() external override view returns(ComponentState) { return IComponent.ComponentState.Active; }\r\n function getOwner() external override view returns(address) { return owner(); }\r\n function getRegistry() external override view returns(IRegistry) { return _registry; }\r\n\r\n function isProduct() public override view returns(bool) { return true; }\r\n function isOracle() public override view returns(bool) { return false; }\r\n function isRiskpool() public override view returns(bool) { return false; }\r\n\r\n function proposalCallback() external override {}\r\n function approvalCallback() external override {} \r\n function declineCallback() external override {}\r\n function suspendCallback() external override {}\r\n function resumeCallback() external override {}\r\n function pauseCallback() external override {}\r\n function unpauseCallback() external override {}\r\n function archiveCallback() external override {}\r\n\r\n function _getAccess() private view returns (IAccess) {\r\n return IAccess(_getContractAddress(\"Access\")); \r\n }\r\n\r\n function _getInstanceService() private view returns (IInstanceService) {\r\n return IInstanceService(_getContractAddress(\"InstanceService\")); \r\n }\r\n\r\n function _getComponentOwnerService() private view returns (IComponentOwnerService) {\r\n return IComponentOwnerService(_getContractAddress(\"ComponentOwnerService\")); \r\n }\r\n\r\n function _getProductService() private view returns (IProductService) {\r\n return IProductService(_getContractAddress(\"ProductService\")); \r\n }\r\n\r\n function _getContractAddress(bytes32 contractName) private view returns (address) { \r\n return _registry.getContract(contractName);\r\n }\r\n\r\n}"},"contracts/test/TestOracle.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@etherisc/gif-interface/contracts/components/Oracle.sol\";\r\n\r\ncontract TestOracle is Oracle {\r\n\r\n constructor(\r\n bytes32 oracleName,\r\n address registry\r\n )\r\n Oracle(oracleName, registry)\r\n { }\r\n\r\n function request(uint256 requestId, bytes calldata input) external override onlyQuery {\r\n // decode oracle input data\r\n (uint256 counter, bool immediateResponse) = abi.decode(input, (uint256, bool));\r\n\r\n if (immediateResponse) {\r\n // obtain data from oracle given the request data (counter)\r\n // for off chain oracles this happens outside the request\r\n // call in a separate asynchronous transaction\r\n bool isLossEvent = _oracleCalculation(counter);\r\n respond(requestId, isLossEvent);\r\n }\r\n }\r\n\r\n function cancel(uint256 requestId)\r\n external override\r\n onlyOwner\r\n {\r\n // TODO mid/low priority\r\n // cancelChainlinkRequest(_requestId, _payment, _callbackFunctionId, _expiration);\r\n }\r\n\r\n // usually called by off-chain oracle (and not internally) \r\n // in which case the function modifier should be changed \r\n // to external\r\n function respond(uint256 requestId, bool isLossEvent) \r\n public\r\n {\r\n // encode data obtained from oracle\r\n bytes memory output = abi.encode(bool(isLossEvent));\r\n\r\n // trigger inherited response handling\r\n _respond(requestId, output);\r\n }\r\n\r\n // dummy implementation\r\n // \"real\" oracles will get the output from some off-chain\r\n // component providing the outcome of the business logic\r\n function _oracleCalculation(uint256 counter) internal returns (bool isLossEvent) {\r\n isLossEvent = (counter % 2 == 1);\r\n } \r\n}"},"contracts/test/TestProduct.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\r\nimport \"@etherisc/gif-interface/contracts/services/IProductService.sol\";\r\nimport \"@etherisc/gif-interface/contracts/services/IInstanceService.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/Product.sol\";\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract TestProduct is \r\n Product \r\n{\r\n bytes32 public constant POLICY_FLOW = \"PolicyDefaultFlow\";\r\n string public constant ORACLE_CALLBACK_METHOD_NAME = \"oracleCallback\";\r\n\r\n address private _capitalOwner;\r\n uint256 private _testOracleId;\r\n uint256 private _testRiskpoolId;\r\n\r\n bytes32 [] private _applications;\r\n bytes32 [] private _policies;\r\n uint256 private _claims;\r\n\r\n mapping(bytes32 => uint256) private _policyIdToClaimId;\r\n mapping(bytes32 => uint256) private _policyIdToPayoutId;\r\n\r\n event LogTestProductFundingReceived(address sender, uint256 amount);\r\n event LogTestOracleCallbackReceived(uint256 requestId, bytes32 policyId, bytes response);\r\n\r\n constructor(\r\n bytes32 productName,\r\n address tokenAddress,\r\n address capitalOwner,\r\n uint256 oracleId,\r\n uint256 riskpoolId,\r\n address registryAddress\r\n )\r\n Product(productName, tokenAddress, POLICY_FLOW, riskpoolId, registryAddress)\r\n {\r\n require(tokenAddress != address(0), \"ERROR:TI-2:TOKEN_ADDRESS_ZERO\");\r\n _capitalOwner = capitalOwner;\r\n _testOracleId = oracleId;\r\n _testRiskpoolId = riskpoolId;\r\n }\r\n\r\n function applyForPolicy(\r\n uint256 premium, \r\n uint256 sumInsured,\r\n bytes calldata metaData,\r\n bytes calldata applicationData\r\n ) \r\n external \r\n payable \r\n returns (bytes32 processId) \r\n {\r\n address payable policyHolder = payable(_msgSender());\r\n\r\n processId = _newApplication(\r\n policyHolder,\r\n premium, \r\n sumInsured,\r\n metaData,\r\n applicationData);\r\n\r\n _applications.push(processId);\r\n\r\n bool success = _underwrite(processId);\r\n if (success) {\r\n _policies.push(processId);\r\n }\r\n }\r\n\r\n function applyForPolicy(\r\n address payable policyHolder,\r\n uint256 premium, \r\n uint256 sumInsured,\r\n bytes calldata metaData,\r\n bytes calldata applicationData\r\n ) \r\n external \r\n payable \r\n returns (bytes32 processId) \r\n {\r\n processId = _newApplication(\r\n policyHolder,\r\n premium, \r\n sumInsured,\r\n metaData,\r\n applicationData);\r\n\r\n _applications.push(processId);\r\n\r\n bool success = _underwrite(processId);\r\n if (success) {\r\n _policies.push(processId);\r\n }\r\n }\r\n\r\n\r\n function newAppliation(\r\n uint256 premium, \r\n uint256 sumInsured,\r\n bytes calldata metaData,\r\n bytes calldata applicationData\r\n ) \r\n external \r\n payable \r\n returns (bytes32 processId) \r\n {\r\n address payable policyHolder = payable(_msgSender());\r\n\r\n processId = _newApplication(\r\n policyHolder,\r\n premium, \r\n sumInsured,\r\n metaData,\r\n applicationData);\r\n\r\n _applications.push(processId);\r\n }\r\n\r\n\r\n function revoke(bytes32 processId) external onlyPolicyHolder(processId) { \r\n _revoke(processId);\r\n }\r\n\r\n function decline(bytes32 processId) external onlyOwner { \r\n _decline(processId);\r\n }\r\n\r\n function underwrite(bytes32 processId) external onlyOwner { \r\n bool success = _underwrite(processId);\r\n if (success) {\r\n _policies.push(processId);\r\n }\r\n }\r\n\r\n function collectPremium(bytes32 policyId) \r\n external onlyOwner\r\n returns(bool success, uint256 fee, uint256 netPremium)\r\n {\r\n (success, fee, netPremium) = _collectPremium(policyId);\r\n }\r\n\r\n function collectPremium(bytes32 policyId, uint256 amount) \r\n external onlyOwner\r\n returns(bool success, uint256 fee, uint256 netPremium)\r\n {\r\n (success, fee, netPremium) = _collectPremium(policyId, amount);\r\n }\r\n\r\n function adjustPremiumSumInsured(\r\n bytes32 processId,\r\n uint256 expectedPremiumAmount,\r\n uint256 sumInsuredAmount\r\n )\r\n external\r\n {\r\n _adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount);\r\n }\r\n\r\n function expire(bytes32 policyId) external onlyOwner {\r\n _expire(policyId);\r\n }\r\n\r\n function close(bytes32 policyId) external onlyOwner {\r\n _close(policyId);\r\n }\r\n\r\n function submitClaim(bytes32 policyId, uint256 claimAmount) \r\n external\r\n onlyPolicyHolder(policyId)\r\n returns(uint256 claimId)\r\n {\r\n\r\n // increase claims counter\r\n // the oracle business logic will use this counter value \r\n // to determine if the claim is linked to a loss event or not\r\n _claims++;\r\n \r\n // claim application\r\n claimId = _newClaim(policyId, claimAmount, \"\");\r\n _policyIdToClaimId[policyId] = claimId;\r\n\r\n // Request response to greeting via oracle call\r\n bool immediateResponse = true;\r\n bytes memory queryData = abi.encode(_claims, immediateResponse);\r\n _request(\r\n policyId,\r\n queryData,\r\n ORACLE_CALLBACK_METHOD_NAME,\r\n _testOracleId\r\n );\r\n }\r\n\r\n function submitClaimNoOracle(bytes32 policyId, uint256 claimAmount) \r\n external\r\n onlyPolicyHolder(policyId)\r\n returns(uint256 claimId)\r\n {\r\n\r\n // increase claims counter\r\n // the oracle business logic will use this counter value \r\n // to determine if the claim is linked to a loss event or not\r\n _claims++;\r\n \r\n // claim application\r\n claimId = _newClaim(policyId, claimAmount, \"\");\r\n _policyIdToClaimId[policyId] = claimId;\r\n }\r\n \r\n function submitClaimWithDeferredResponse(bytes32 policyId, uint256 claimAmount) \r\n external\r\n onlyPolicyHolder(policyId)\r\n returns(uint256 claimId, uint256 requestId)\r\n {\r\n\r\n // increase claims counter\r\n // the oracle business logic will use this counter value \r\n // to determine if the claim is linked to a loss event or not\r\n _claims++;\r\n \r\n // claim application\r\n claimId = _newClaim(policyId, claimAmount, \"\");\r\n _policyIdToClaimId[policyId] = claimId;\r\n\r\n // Request response to greeting via oracle call\r\n bool immediateResponse = false;\r\n bytes memory queryData = abi.encode(_claims, immediateResponse);\r\n requestId = _request(\r\n policyId,\r\n queryData,\r\n ORACLE_CALLBACK_METHOD_NAME,\r\n _testOracleId\r\n );\r\n }\r\n\r\n function confirmClaim(\r\n bytes32 policyId, \r\n uint256 claimId, \r\n uint256 confirmedAmount\r\n ) \r\n external\r\n onlyOwner\r\n {\r\n _confirmClaim(policyId, claimId, confirmedAmount);\r\n }\r\n\r\n function declineClaim(\r\n bytes32 policyId, \r\n uint256 claimId\r\n ) \r\n external\r\n onlyOwner\r\n {\r\n _declineClaim(policyId, claimId);\r\n }\r\n\r\n function closeClaim(\r\n bytes32 policyId, \r\n uint256 claimId\r\n ) \r\n external\r\n onlyOwner\r\n {\r\n _closeClaim(policyId, claimId);\r\n }\r\n\r\n function createPayout(\r\n bytes32 policyId, \r\n uint256 claimId, \r\n uint256 payoutAmount\r\n ) \r\n external\r\n onlyOwner\r\n returns(uint256 payoutId)\r\n {\r\n payoutId = _newPayout(\r\n policyId, \r\n claimId, \r\n payoutAmount, \r\n abi.encode(0));\r\n \r\n _processPayout(policyId, payoutId);\r\n }\r\n\r\n function newPayout(\r\n bytes32 policyId, \r\n uint256 claimId, \r\n uint256 payoutAmount\r\n ) \r\n external\r\n onlyOwner\r\n returns(uint256 payoutId)\r\n {\r\n payoutId = _newPayout(\r\n policyId, \r\n claimId, \r\n payoutAmount, \r\n abi.encode(0));\r\n }\r\n\r\n function processPayout(\r\n bytes32 policyId, \r\n uint256 payoutId\r\n ) \r\n external\r\n onlyOwner\r\n {\r\n _processPayout(policyId, payoutId);\r\n }\r\n\r\n function oracleCallback(\r\n uint256 requestId, \r\n bytes32 policyId, \r\n bytes calldata responseData\r\n )\r\n external\r\n onlyOracle\r\n {\r\n emit LogTestOracleCallbackReceived(requestId, policyId, responseData);\r\n\r\n // get oracle response data\r\n (bool isLossEvent) = abi.decode(responseData, (bool));\r\n uint256 claimId = _policyIdToClaimId[policyId];\r\n\r\n // claim handling if there is a loss\r\n if (isLossEvent) {\r\n // get policy and claims info for oracle response\r\n _getApplication(policyId);\r\n\r\n IPolicy.Claim memory claim \r\n = _getClaim(policyId, claimId);\r\n\r\n // specify payout data\r\n uint256 confirmedAmount = claim.claimAmount;\r\n _confirmClaim(policyId, claimId, confirmedAmount);\r\n\r\n // create payout record\r\n uint256 payoutAmount = confirmedAmount;\r\n bytes memory payoutData = abi.encode(0);\r\n uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, payoutData);\r\n _policyIdToPayoutId[policyId] = payoutId;\r\n\r\n _processPayout(policyId, payoutId);\r\n\r\n // TODO refactor to payout using erc-20 token\r\n // actual transfer of funds for payout of claim\r\n // failing requires not visible when called via .call in querycontroller\r\n // policyHolder.transfer(payoutAmount);\r\n } else {\r\n _declineClaim(policyId, claimId);\r\n }\r\n }\r\n\r\n function getClaimId(bytes32 policyId) external view returns (uint256) { return _policyIdToClaimId[policyId]; }\r\n function getPayoutId(bytes32 policyId) external view returns (uint256) { return _policyIdToPayoutId[policyId]; }\r\n function applications() external view returns (uint256) { return _applications.length; }\r\n function policies() external view returns (uint256) { return _policies.length; }\r\n function claims() external view returns (uint256) { return _claims; }\r\n}"},"contracts/test/TestRegistryCompromisedController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\ncontract TestRegistryCompromisedController {\r\n\r\n bytes32 public constant POLICY = bytes32(\"Policy\");\r\n bytes32 public constant QUERY = bytes32(\"Query\");\r\n\r\n mapping(bytes32 => address) public contracts;\r\n\r\n function getContract(bytes32 contractName)\r\n external\r\n view\r\n returns (address moduleAddress)\r\n {\r\n moduleAddress = contracts[contractName];\r\n }\r\n\r\n function upgradeToV2(\r\n address compromisedPolicyModuleAddress, \r\n address originalQueryModuleAddress\r\n ) \r\n public \r\n { \r\n contracts[POLICY] = compromisedPolicyModuleAddress;\r\n contracts[QUERY] = originalQueryModuleAddress;\r\n }\r\n}\r\n"},"contracts/test/TestRegistryControllerUpdated.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../modules/RegistryController.sol\";\r\n\r\n\r\ncontract TestRegistryControllerUpdated is RegistryController {\r\n\r\n string message;\r\n bool upgradeV2;\r\n\r\n function setMessage(string memory _message) public onlyInstanceOperator { message = _message; }\r\n function getMessage() public view returns (string memory) { return message; }\r\n\r\n function upgradeToV2(string memory _message) public { \r\n require(!upgradeV2, \"ERROR:REC-102:UPGRADE_ONCE_OMLY\");\r\n upgradeV2 = true;\r\n\r\n setMessage(_message); \r\n }\r\n}\r\n"},"contracts/test/TestRiskpool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IBundle.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\r\n\r\ncontract TestRiskpool is BasicRiskpool {\r\n\r\n uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24;\r\n\r\n constructor(\r\n bytes32 name,\r\n uint256 collateralization,\r\n address erc20Token,\r\n address wallet,\r\n address registry\r\n )\r\n BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry)\r\n { }\r\n\r\n // trivial implementation that matches every application\r\n function bundleMatchesApplication(\r\n IBundle.Bundle memory bundle, \r\n IPolicy.Application memory application\r\n ) \r\n public override\r\n pure\r\n returns(bool isMatching) \r\n {\r\n isMatching = true;\r\n }\r\n\r\n}"},"contracts/test/TestTransferFrom.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../shared/TransferHelper.sol\";\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\n\r\ncontract TestTransferFrom {\r\n\r\n event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to);\r\n event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance);\r\n event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData);\r\n\r\n function unifiedTransferFrom(\r\n IERC20 token, \r\n address from, \r\n address to, \r\n uint256 amount\r\n ) \r\n external \r\n returns(bool)\r\n {\r\n return TransferHelper.unifiedTransferFrom(token, from, to, amount);\r\n }\r\n\r\n}\r\n"},"contracts/tokens/BundleToken.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\n\nimport \"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\";\n\ncontract BundleToken is \n IBundleToken,\n ERC721,\n Ownable\n{\n string public constant NAME = \"GIF Bundle Token\";\n string public constant SYMBOL = \"BTK\";\n\n mapping(uint256 /** tokenId */ => uint256 /** bundleId */) public bundleIdForTokenId;\n address private _bundleModule;\n uint256 private _totalSupply;\n\n modifier onlyBundleModule() {\n require(_bundleModule != address(0), \"ERROR:BTK-001:NOT_INITIALIZED\");\n require(_msgSender() == _bundleModule, \"ERROR:BTK-002:NOT_BUNDLE_MODULE\");\n _;\n }\n\n constructor() ERC721(NAME, SYMBOL) Ownable() { }\n\n function setBundleModule(address bundleModule)\n external\n {\n require(_bundleModule == address(0), \"ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED\");\n require(bundleModule != address(0), \"ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS\");\n _bundleModule = bundleModule;\n }\n\n\n function mint(uint256 bundleId, address to) \n external\n onlyBundleModule\n returns(uint256 tokenId)\n {\n _totalSupply++;\n tokenId = _totalSupply;\n bundleIdForTokenId[tokenId] = bundleId; \n \n _safeMint(to, tokenId);\n \n emit LogBundleTokenMinted(bundleId, tokenId, to); \n }\n\n\n function burn(uint256 tokenId) \n external\n onlyBundleModule\n {\n require(_exists(tokenId), \"ERROR:BTK-005:TOKEN_ID_INVALID\"); \n _burn(tokenId);\n \n emit LogBundleTokenBurned(bundleIdForTokenId[tokenId], tokenId); \n }\n\n function burned(uint tokenId) \n external override\n view \n returns(bool isBurned)\n {\n isBurned = tokenId <= _totalSupply && !_exists(tokenId);\n }\n\n function getBundleId(uint256 tokenId) external override view returns(uint256) { return bundleIdForTokenId[tokenId]; }\n function getBundleModuleAddress() external view returns(address) { return _bundleModule; }\n\n function exists(uint256 tokenId) external override view returns(bool) { return tokenId <= _totalSupply; }\n function totalSupply() external override view returns(uint256 tokenCount) { return _totalSupply; }\n}\n"},"contracts/tokens/RiskpoolToken.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract RiskpoolToken is\n ERC20\n{\n string public constant NAME = \"GIF Riskpool Token\";\n string public constant SYMBOL = \"RPT\";\n\n constructor() \n ERC20(NAME, SYMBOL)\n {\n\n }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"8760","formattedMessage":"Warning: This declaration has the same name as another declaration.\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:20:5:\n |\n20 | address owner\n | ^^^^^^^^^^^^^\nNote: The other declaration is here:\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:29:3:\n |\n29 | function owner(bytes32 node) external view returns (address);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This declaration has the same name as another declaration.","secondarySourceLocations":[{"end":911,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","message":"The other declaration is here:","start":850}],"severity":"warning","sourceLocation":{"end":651,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","start":638},"type":"Warning"},{"component":"general","errorCode":"8760","formattedMessage":"Warning: This declaration has the same name as another declaration.\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:23:38:\n |\n23 | function setResolver(bytes32 node, address resolver) external;\n | ^^^^^^^^^^^^^^^^\nNote: The other declaration is here:\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:31:3:\n |\n31 | function resolver(bytes32 node) external view returns (address);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This declaration has the same name as another declaration.","secondarySourceLocations":[{"end":979,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","message":"The other declaration is here:","start":915}],"severity":"warning","sourceLocation":{"end":720,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","start":704},"type":"Warning"},{"component":"general","errorCode":"8760","formattedMessage":"Warning: This declaration has the same name as another declaration.\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:25:35:\n |\n25 | function setOwner(bytes32 node, address owner) external;\n | ^^^^^^^^^^^^^\nNote: The other declaration is here:\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:29:3:\n |\n29 | function owner(bytes32 node) external view returns (address);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This declaration has the same name as another declaration.","secondarySourceLocations":[{"end":911,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","message":"The other declaration is here:","start":850}],"severity":"warning","sourceLocation":{"end":780,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","start":767},"type":"Warning"},{"component":"general","errorCode":"8760","formattedMessage":"Warning: This declaration has the same name as another declaration.\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:27:33:\n |\n27 | function setTTL(bytes32 node, uint64 ttl) external;\n | ^^^^^^^^^^\nNote: The other declaration is here:\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:33:3:\n |\n33 | function ttl(bytes32 node) external view returns (uint64);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This declaration has the same name as another declaration.","secondarySourceLocations":[{"end":1041,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","message":"The other declaration is here:","start":983}],"severity":"warning","sourceLocation":{"end":835,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","start":825},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/examples/AyiiRiskpool.sol:53:9:\n |\n53 | IBundle.Bundle memory bundle, \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1571,"file":"contracts/examples/AyiiRiskpool.sol","start":1543},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/examples/AyiiRiskpool.sol:54:9:\n |\n54 | IPolicy.Application memory application\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1621,"file":"contracts/examples/AyiiRiskpool.sol","start":1583},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/modules/BundleController.sol:269:17:\n |\n269 | returns(uint256 remainingCollateralAmount)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":11110,"file":"contracts/modules/BundleController.sol","start":11077},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/modules/TreasuryModule.sol:177:9:\n |\n177 | IComponent component = _component.getComponent(riskpoolId);\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":8127,"file":"contracts/modules/TreasuryModule.sol","start":8107},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/modules/TreasuryModule.sol:330:10:\n |\n330 | (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId);\n | ^^^^^^^^^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":13709,"file":"contracts/modules/TreasuryModule.sol","start":13691},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/flows/PolicyDefaultFlow.sol:267:13:\n |\n267 | bool success,\n | ^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":8487,"file":"contracts/flows/PolicyDefaultFlow.sol","start":8475},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceOperatorService.sol:173:9:\n |\n173 | uint16 componentType, \n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":4901,"file":"contracts/services/InstanceOperatorService.sol","start":4881},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceOperatorService.sol:174:9:\n |\n174 | bytes calldata data\n | ^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":4931,"file":"contracts/services/InstanceOperatorService.sol","start":4912},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceOperatorService.sol:184:9:\n |\n184 | uint256 id, \n | ^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":5182,"file":"contracts/services/InstanceOperatorService.sol","start":5172},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceOperatorService.sol:185:9:\n |\n185 | bytes calldata data\n | ^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":5212,"file":"contracts/services/InstanceOperatorService.sol","start":5193},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceService.sol:204:37:\n |\n204 | function getStakingRequirements(uint256 id) \n | ^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":7688,"file":"contracts/services/InstanceService.sol","start":7678},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceService.sol:207:17:\n |\n207 | returns(bytes memory data) \n | ^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":7765,"file":"contracts/services/InstanceService.sol","start":7748},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceService.sol:212:30:\n |\n212 | function getStakedAssets(uint256 id)\n | ^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":7874,"file":"contracts/services/InstanceService.sol","start":7864},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceService.sol:215:17:\n |\n215 | returns(bytes memory data) \n | ^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":7950,"file":"contracts/services/InstanceService.sol","start":7933},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/services/RiskpoolService.sol:132:10:\n |\n132 | (uint256 fee, uint256 netCapital) = _treasury.processCapital(bundleId, initialCapital);\n | ^^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":4350,"file":"contracts/services/RiskpoolService.sol","start":4339},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/services/RiskpoolService.sol:221:10:\n |\n221 | (uint256 feeAmount, uint256 netAmount) = _treasury.processWithdrawal(bundleId, bundle.balance);\n | ^^^^^^^^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":7175,"file":"contracts/services/RiskpoolService.sol","start":7158},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/test/TestRiskpool.sol:24:9:\n |\n24 | IBundle.Bundle memory bundle, \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":795,"file":"contracts/test/TestRiskpool.sol","start":767},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/test/TestRiskpool.sol:25:9:\n |\n25 | IPolicy.Application memory application\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":845,"file":"contracts/test/TestRiskpool.sol","start":807},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/examples/AyiiProduct.sol:536:5:\n |\n536 | function _validateRiskParameters(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":18909,"file":"contracts/examples/AyiiProduct.sol","start":18095},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to view\n --> contracts/services/ComponentOwnerService.sol:49:5:\n |\n49 | function stake(uint256 id) \n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to view","severity":"warning","sourceLocation":{"end":2026,"file":"contracts/services/ComponentOwnerService.sol","start":1869},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to view\n --> contracts/services/ComponentOwnerService.sol:56:5:\n |\n56 | function withdraw(uint256 id) \n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to view","severity":"warning","sourceLocation":{"end":2193,"file":"contracts/services/ComponentOwnerService.sol","start":2034},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to view\n --> contracts/services/InstanceOperatorService.sol:172:5:\n |\n172 | function setDefaultStaking(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to view","severity":"warning","sourceLocation":{"end":5066,"file":"contracts/services/InstanceOperatorService.sol","start":4845},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to view\n --> contracts/services/InstanceOperatorService.sol:183:5:\n |\n183 | function adjustStakingRequirements(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to view","severity":"warning","sourceLocation":{"end":5347,"file":"contracts/services/InstanceOperatorService.sol","start":5128},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:134:5:\n |\n134 | function getApplicationDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":4851,"file":"contracts/test/TestCompromisedProduct.sol","start":4738},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:135:5:\n |\n135 | function getClaimDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":4964,"file":"contracts/test/TestCompromisedProduct.sol","start":4857},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:136:5:\n |\n136 | function getPayoutDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":5078,"file":"contracts/test/TestCompromisedProduct.sol","start":4970},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:145:5:\n |\n145 | function getType() external override view returns(ComponentType) { return IComponent.ComponentType.Product; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":5615,"file":"contracts/test/TestCompromisedProduct.sol","start":5506},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:146:5:\n |\n146 | function getState() external override view returns(ComponentState) { return IComponent.ComponentState.Active; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":5732,"file":"contracts/test/TestCompromisedProduct.sol","start":5621},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:150:5:\n |\n150 | function isProduct() public override view returns(bool) { return true; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":5989,"file":"contracts/test/TestCompromisedProduct.sol","start":5917},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:151:5:\n |\n151 | function isOracle() public override view returns(bool) { return false; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":6067,"file":"contracts/test/TestCompromisedProduct.sol","start":5995},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:152:5:\n |\n152 | function isRiskpool() public override view returns(bool) { return false; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":6147,"file":"contracts/test/TestCompromisedProduct.sol","start":6073},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestOracle.sol:52:5:\n |\n52 | function _oracleCalculation(uint256 counter) internal returns (bool isLossEvent) {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":1838,"file":"contracts/test/TestOracle.sol","start":1706},"type":"Warning"}],"sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","exportedSymbols":{"BufferChainlink":[1718],"CBORChainlink":[2165],"Chainlink":[268]},"id":269,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:0"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","file":"./vendor/CBORChainlink.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":2166,"src":"57:57:0","symbolAliases":[{"foreign":{"id":2,"name":"CBORChainlink","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./vendor/BufferChainlink.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":1719,"src":"115:61:0","symbolAliases":[{"foreign":{"id":4,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"src":"123:15:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"178:114:0","text":" @title Library for common Chainlink functions\n @dev Uses imported CBOR library for encoding to buffer"},"fullyImplemented":true,"id":268,"linearizedBaseContracts":[268],"name":"Chainlink","nameLocation":"301:9:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":9,"mutability":"constant","name":"defaultBufferSize","nameLocation":"341:17:0","nodeType":"VariableDeclaration","scope":268,"src":"315:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"323536","id":8,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"361:3:0","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"internal"},{"id":13,"libraryName":{"id":10,"name":"CBORChainlink","nodeType":"IdentifierPath","referencedDeclaration":2165,"src":"420:13:0"},"nodeType":"UsingForDirective","src":"414:47:0","typeName":{"id":12,"nodeType":"UserDefinedTypeName","pathNode":{"id":11,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"438:22:0"},"referencedDeclaration":1204,"src":"438:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"canonicalName":"Chainlink.Request","id":25,"members":[{"constant":false,"id":15,"mutability":"mutable","name":"id","nameLocation":"494:2:0","nodeType":"VariableDeclaration","scope":25,"src":"486:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14,"name":"bytes32","nodeType":"ElementaryTypeName","src":"486:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"callbackAddress","nameLocation":"510:15:0","nodeType":"VariableDeclaration","scope":25,"src":"502:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"502:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"538:18:0","nodeType":"VariableDeclaration","scope":25,"src":"531:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18,"name":"bytes4","nodeType":"ElementaryTypeName","src":"531:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"nonce","nameLocation":"570:5:0","nodeType":"VariableDeclaration","scope":25,"src":"562:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24,"mutability":"mutable","name":"buf","nameLocation":"604:3:0","nodeType":"VariableDeclaration","scope":25,"src":"581:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":23,"nodeType":"UserDefinedTypeName","pathNode":{"id":22,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"581:22:0"},"referencedDeclaration":1204,"src":"581:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"name":"Request","nameLocation":"472:7:0","nodeType":"StructDefinition","scope":268,"src":"465:147:0","visibility":"public"},{"body":{"id":69,"nodeType":"Block","src":"1155:183:0","statements":[{"expression":{"arguments":[{"expression":{"id":44,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1182:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":45,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1182:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":46,"name":"defaultBufferSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9,"src":"1192:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"1161:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1718_$","typeString":"type(library BufferChainlink)"}},"id":43,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"1161:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1161:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":48,"nodeType":"ExpressionStatement","src":"1161:49:0"},{"expression":{"id":53,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1216:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":51,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"1216:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"1226:5:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1216:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54,"nodeType":"ExpressionStatement","src":"1216:15:0"},{"expression":{"id":59,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1237:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":57,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbackAddress","nodeType":"MemberAccess","referencedDeclaration":17,"src":"1237:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"1260:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1237:35:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":60,"nodeType":"ExpressionStatement","src":"1237:35:0"},{"expression":{"id":65,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":61,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1278:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":63,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"1278:23:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":64,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"1304:12:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1278:38:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":66,"nodeType":"ExpressionStatement","src":"1278:38:0"},{"expression":{"id":67,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1329:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":40,"id":68,"nodeType":"Return","src":"1322:11:0"}]},"documentation":{"id":26,"nodeType":"StructuredDocumentation","src":"616:368:0","text":" @notice Initializes a Chainlink request\n @dev Sets the ID, callback address, and callback function signature on the request\n @param self The uninitialized request\n @param jobId The Job Specification ID\n @param callbackAddr The callback address\n @param callbackFunc The callback function signature\n @return The initialized request"},"id":70,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"996:10:0","nodeType":"FunctionDefinition","parameters":{"id":36,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29,"mutability":"mutable","name":"self","nameLocation":"1027:4:0","nodeType":"VariableDeclaration","scope":70,"src":"1012:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":28,"nodeType":"UserDefinedTypeName","pathNode":{"id":27,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1012:7:0"},"referencedDeclaration":25,"src":"1012:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":31,"mutability":"mutable","name":"jobId","nameLocation":"1045:5:0","nodeType":"VariableDeclaration","scope":70,"src":"1037:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":30,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1037:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33,"mutability":"mutable","name":"callbackAddr","nameLocation":"1064:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1056:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35,"mutability":"mutable","name":"callbackFunc","nameLocation":"1089:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1082:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":34,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1082:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1006:99:0"},"returnParameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70,"src":"1129:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":38,"nodeType":"UserDefinedTypeName","pathNode":{"id":37,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1129:17:0"},"referencedDeclaration":25,"src":"1129:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1128:26:0"},"scope":268,"src":"987:351:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":96,"nodeType":"Block","src":"1648:98:0","statements":[{"expression":{"arguments":[{"expression":{"id":82,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1675:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":83,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1675:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"id":84,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1685:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1685:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"1654:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1718_$","typeString":"type(library BufferChainlink)"}},"id":81,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"1654:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":86,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1654:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":87,"nodeType":"ExpressionStatement","src":"1654:43:0"},{"expression":{"arguments":[{"expression":{"id":91,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1726:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":92,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1726:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":93,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1736:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":88,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"1703:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1718_$","typeString":"type(library BufferChainlink)"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1461,"src":"1703:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1703:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":95,"nodeType":"ExpressionStatement","src":"1703:38:0"}]},"documentation":{"id":71,"nodeType":"StructuredDocumentation","src":"1342:230:0","text":" @notice Sets the data for the buffer without encoding CBOR on-chain\n @dev CBOR can be closed with curly-brackets {} or they can be left off\n @param self The initialized request\n @param data The CBOR data"},"id":97,"implemented":true,"kind":"function","modifiers":[],"name":"setBuffer","nameLocation":"1584:9:0","nodeType":"FunctionDefinition","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"self","nameLocation":"1609:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1594:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":73,"nodeType":"UserDefinedTypeName","pathNode":{"id":72,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1594:7:0"},"referencedDeclaration":25,"src":"1594:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":76,"mutability":"mutable","name":"data","nameLocation":"1628:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1615:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75,"name":"bytes","nodeType":"ElementaryTypeName","src":"1615:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1593:40:0"},"returnParameters":{"id":78,"nodeType":"ParameterList","parameters":[],"src":"1648:0:0"},"scope":268,"src":"1575:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":124,"nodeType":"Block","src":"2055:71:0","statements":[{"expression":{"arguments":[{"id":113,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2083:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":108,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2061:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2061:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"2061:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2061:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":115,"nodeType":"ExpressionStatement","src":"2061:26:0"},{"expression":{"arguments":[{"id":121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"2115:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2093:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2093:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"2093:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2093:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":123,"nodeType":"ExpressionStatement","src":"2093:28:0"}]},"documentation":{"id":98,"nodeType":"StructuredDocumentation","src":"1750:198:0","text":" @notice Adds a string value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The string value to add"},"id":125,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"1960:3:0","nodeType":"FunctionDefinition","parameters":{"id":106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"self","nameLocation":"1984:4:0","nodeType":"VariableDeclaration","scope":125,"src":"1969:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":100,"nodeType":"UserDefinedTypeName","pathNode":{"id":99,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1969:7:0"},"referencedDeclaration":25,"src":"1969:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":103,"mutability":"mutable","name":"key","nameLocation":"2008:3:0","nodeType":"VariableDeclaration","scope":125,"src":"1994:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":102,"name":"string","nodeType":"ElementaryTypeName","src":"1994:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":105,"mutability":"mutable","name":"value","nameLocation":"2031:5:0","nodeType":"VariableDeclaration","scope":125,"src":"2017:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":104,"name":"string","nodeType":"ElementaryTypeName","src":"2017:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1963:77:0"},"returnParameters":{"id":107,"nodeType":"ParameterList","parameters":[],"src":"2055:0:0"},"scope":268,"src":"1951:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":152,"nodeType":"Block","src":"2437:70:0","statements":[{"expression":{"arguments":[{"id":141,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"2465:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":136,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2443:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2443:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"2443:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2443:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":143,"nodeType":"ExpressionStatement","src":"2443:26:0"},{"expression":{"arguments":[{"id":149,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"2496:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":144,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2475:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2475:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeBytes","nodeType":"MemberAccess","referencedDeclaration":2029,"src":"2475:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2475:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":151,"nodeType":"ExpressionStatement","src":"2475:27:0"}]},"documentation":{"id":126,"nodeType":"StructuredDocumentation","src":"2130:196:0","text":" @notice Adds a bytes value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The bytes value to add"},"id":153,"implemented":true,"kind":"function","modifiers":[],"name":"addBytes","nameLocation":"2338:8:0","nodeType":"FunctionDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"self","nameLocation":"2367:4:0","nodeType":"VariableDeclaration","scope":153,"src":"2352:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":128,"nodeType":"UserDefinedTypeName","pathNode":{"id":127,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2352:7:0"},"referencedDeclaration":25,"src":"2352:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":131,"mutability":"mutable","name":"key","nameLocation":"2391:3:0","nodeType":"VariableDeclaration","scope":153,"src":"2377:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":130,"name":"string","nodeType":"ElementaryTypeName","src":"2377:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"value","nameLocation":"2413:5:0","nodeType":"VariableDeclaration","scope":153,"src":"2400:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":132,"name":"bytes","nodeType":"ElementaryTypeName","src":"2400:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2346:76:0"},"returnParameters":{"id":135,"nodeType":"ParameterList","parameters":[],"src":"2437:0:0"},"scope":268,"src":"2329:178:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":180,"nodeType":"Block","src":"2812:68:0","statements":[{"expression":{"arguments":[{"id":169,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":159,"src":"2840:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":164,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2818:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2818:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"2818:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2818:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":171,"nodeType":"ExpressionStatement","src":"2818:26:0"},{"expression":{"arguments":[{"id":177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"2869:5:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"expression":{"id":172,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2850:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2850:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeInt","nodeType":"MemberAccess","referencedDeclaration":2004,"src":"2850:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_int256_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2850:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":179,"nodeType":"ExpressionStatement","src":"2850:25:0"}]},"documentation":{"id":154,"nodeType":"StructuredDocumentation","src":"2511:198:0","text":" @notice Adds a int256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The int256 value to add"},"id":181,"implemented":true,"kind":"function","modifiers":[],"name":"addInt","nameLocation":"2721:6:0","nodeType":"FunctionDefinition","parameters":{"id":162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":157,"mutability":"mutable","name":"self","nameLocation":"2748:4:0","nodeType":"VariableDeclaration","scope":181,"src":"2733:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":156,"nodeType":"UserDefinedTypeName","pathNode":{"id":155,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2733:7:0"},"referencedDeclaration":25,"src":"2733:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":159,"mutability":"mutable","name":"key","nameLocation":"2772:3:0","nodeType":"VariableDeclaration","scope":181,"src":"2758:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":158,"name":"string","nodeType":"ElementaryTypeName","src":"2758:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":161,"mutability":"mutable","name":"value","nameLocation":"2788:5:0","nodeType":"VariableDeclaration","scope":181,"src":"2781:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":160,"name":"int256","nodeType":"ElementaryTypeName","src":"2781:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2727:70:0"},"returnParameters":{"id":163,"nodeType":"ParameterList","parameters":[],"src":"2812:0:0"},"scope":268,"src":"2712:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":208,"nodeType":"Block","src":"3189:69:0","statements":[{"expression":{"arguments":[{"id":197,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":187,"src":"3217:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":192,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3195:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3195:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"3195:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3195:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":199,"nodeType":"ExpressionStatement","src":"3195:26:0"},{"expression":{"arguments":[{"id":205,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"3247:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3227:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3227:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeUInt","nodeType":"MemberAccess","referencedDeclaration":1938,"src":"3227:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3227:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":207,"nodeType":"ExpressionStatement","src":"3227:26:0"}]},"documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"2884:200:0","text":" @notice Adds a uint256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The uint256 value to add"},"id":209,"implemented":true,"kind":"function","modifiers":[],"name":"addUint","nameLocation":"3096:7:0","nodeType":"FunctionDefinition","parameters":{"id":190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"self","nameLocation":"3124:4:0","nodeType":"VariableDeclaration","scope":209,"src":"3109:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":184,"nodeType":"UserDefinedTypeName","pathNode":{"id":183,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3109:7:0"},"referencedDeclaration":25,"src":"3109:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":187,"mutability":"mutable","name":"key","nameLocation":"3148:3:0","nodeType":"VariableDeclaration","scope":209,"src":"3134:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":186,"name":"string","nodeType":"ElementaryTypeName","src":"3134:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":189,"mutability":"mutable","name":"value","nameLocation":"3165:5:0","nodeType":"VariableDeclaration","scope":209,"src":"3157:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":188,"name":"uint256","nodeType":"ElementaryTypeName","src":"3157:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3103:71:0"},"returnParameters":{"id":191,"nodeType":"ParameterList","parameters":[],"src":"3189:0:0"},"scope":268,"src":"3087:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":266,"nodeType":"Block","src":"3597:188:0","statements":[{"expression":{"arguments":[{"id":226,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":215,"src":"3625:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":221,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3603:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3603:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"3603:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3603:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":228,"nodeType":"ExpressionStatement","src":"3603:26:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3635:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3635:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startArray","nodeType":"MemberAccess","referencedDeclaration":2140,"src":"3635:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3635:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":235,"nodeType":"ExpressionStatement","src":"3635:21:0"},{"body":{"id":257,"nodeType":"Block","src":"3706:47:0","statements":[{"expression":{"arguments":[{"baseExpression":{"id":252,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3736:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":254,"indexExpression":{"id":253,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3743:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3736:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3714:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3714:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"3714:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3714:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":256,"nodeType":"ExpressionStatement","src":"3714:32:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3682:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":241,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3686:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3686:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3682:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":258,"initializationExpression":{"assignments":[237],"declarations":[{"constant":false,"id":237,"mutability":"mutable","name":"i","nameLocation":"3675:1:0","nodeType":"VariableDeclaration","scope":258,"src":"3667:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":236,"name":"uint256","nodeType":"ElementaryTypeName","src":"3667:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":239,"initialValue":{"hexValue":"30","id":238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3679:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3667:13:0"},"loopExpression":{"expression":{"id":245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3701:3:0","subExpression":{"id":244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3701:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":246,"nodeType":"ExpressionStatement","src":"3701:3:0"},"nodeType":"ForStatement","src":"3662:91:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":259,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3758:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3758:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endSequence","nodeType":"MemberAccess","referencedDeclaration":2164,"src":"3758:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3758:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":265,"nodeType":"ExpressionStatement","src":"3758:22:0"}]},"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"3262:214:0","text":" @notice Adds an array of strings to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param values The array of string values to add"},"id":267,"implemented":true,"kind":"function","modifiers":[],"name":"addStringArray","nameLocation":"3488:14:0","nodeType":"FunctionDefinition","parameters":{"id":219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":213,"mutability":"mutable","name":"self","nameLocation":"3523:4:0","nodeType":"VariableDeclaration","scope":267,"src":"3508:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":212,"nodeType":"UserDefinedTypeName","pathNode":{"id":211,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3508:7:0"},"referencedDeclaration":25,"src":"3508:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":215,"mutability":"mutable","name":"key","nameLocation":"3547:3:0","nodeType":"VariableDeclaration","scope":267,"src":"3533:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":214,"name":"string","nodeType":"ElementaryTypeName","src":"3533:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":218,"mutability":"mutable","name":"values","nameLocation":"3572:6:0","nodeType":"VariableDeclaration","scope":267,"src":"3556:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":216,"name":"string","nodeType":"ElementaryTypeName","src":"3556:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":217,"nodeType":"ArrayTypeName","src":"3556:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"3502:80:0"},"returnParameters":{"id":220,"nodeType":"ParameterList","parameters":[],"src":"3597:0:0"},"scope":268,"src":"3479:306:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":269,"src":"293:3494:0"}],"src":"32:3756:0"},"id":0},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","exportedSymbols":{"BufferChainlink":[1718],"CBORChainlink":[2165],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[894],"ENSInterface":[974],"ENSResolver_Chainlink":[2175],"LinkTokenInterface":[1069],"OperatorInterface":[1149],"OracleInterface":[1188],"PointerInterface":[1196]},"id":862,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":270,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:1"},{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","file":"./Chainlink.sol","id":271,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":269,"src":"57:25:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","file":"./interfaces/ENSInterface.sol","id":272,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":975,"src":"83:39:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","file":"./interfaces/LinkTokenInterface.sol","id":273,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1070,"src":"123:45:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./interfaces/ChainlinkRequestInterface.sol","id":274,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":895,"src":"169:52:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","file":"./interfaces/OperatorInterface.sol","id":275,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1150,"src":"222:44:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","file":"./interfaces/PointerInterface.sol","id":276,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1197,"src":"267:43:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","file":"./vendor/ENSResolver.sol","id":278,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":2176,"src":"311:78:1","symbolAliases":[{"foreign":{"id":277,"name":"ENSResolver","nodeType":"Identifier","overloadedDeclarations":[],"src":"319:11:1","typeDescriptions":{}},"local":"ENSResolver_Chainlink","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":279,"nodeType":"StructuredDocumentation","src":"391:157:1","text":" @title The ChainlinkClient contract\n @notice Contract writers can inherit this contract in order to create requests for the\n Chainlink network"},"fullyImplemented":true,"id":861,"linearizedBaseContracts":[861],"name":"ChainlinkClient","nameLocation":"567:15:1","nodeType":"ContractDefinition","nodes":[{"id":283,"libraryName":{"id":280,"name":"Chainlink","nodeType":"IdentifierPath","referencedDeclaration":268,"src":"593:9:1"},"nodeType":"UsingForDirective","src":"587:38:1","typeName":{"id":282,"nodeType":"UserDefinedTypeName","pathNode":{"id":281,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"607:17:1"},"referencedDeclaration":25,"src":"607:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"constant":true,"id":288,"mutability":"constant","name":"LINK_DIVISIBILITY","nameLocation":"655:17:1","nodeType":"VariableDeclaration","scope":861,"src":"629:52:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":284,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"675:2:1","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"679:2:1","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"675:6:1","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"internal"},{"constant":true,"id":291,"mutability":"constant","name":"AMOUNT_OVERRIDE","nameLocation":"710:15:1","nodeType":"VariableDeclaration","scope":861,"src":"685:44:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":289,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"728:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":297,"mutability":"constant","name":"SENDER_OVERRIDE","nameLocation":"758:15:1","nodeType":"VariableDeclaration","scope":861,"src":"733:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":292,"name":"address","nodeType":"ElementaryTypeName","src":"733:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"30","id":295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"784:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"776:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":293,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:1","typeDescriptions":{}}},"id":296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"776:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":true,"id":300,"mutability":"constant","name":"ORACLE_ARGS_VERSION","nameLocation":"815:19:1","nodeType":"VariableDeclaration","scope":861,"src":"790:48:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":298,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":303,"mutability":"constant","name":"OPERATOR_ARGS_VERSION","nameLocation":"867:21:1","nodeType":"VariableDeclaration","scope":861,"src":"842:50:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint256","nodeType":"ElementaryTypeName","src":"842:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":308,"mutability":"constant","name":"ENS_TOKEN_SUBNAME","nameLocation":"921:17:1","nodeType":"VariableDeclaration","scope":861,"src":"896:62:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"896:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6c696e6b","id":306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"951:6:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""},"value":"link"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""}],"id":305,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"941:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"941:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":313,"mutability":"constant","name":"ENS_ORACLE_SUBNAME","nameLocation":"987:18:1","nodeType":"VariableDeclaration","scope":861,"src":"962:65:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"962:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6f7261636c65","id":311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1018:8:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""},"value":"oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""}],"id":310,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"1008:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1008:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":316,"mutability":"constant","name":"LINK_TOKEN_POINTER","nameLocation":"1056:18:1","nodeType":"VariableDeclaration","scope":861,"src":"1031:88:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":314,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307843383962443445313633324433413433434230334141416435323632636265343033384263353731","id":315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571"},"visibility":"private"},{"constant":false,"id":319,"mutability":"mutable","name":"s_ens","nameLocation":"1145:5:1","nodeType":"VariableDeclaration","scope":861,"src":"1124:26:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"},"typeName":{"id":318,"nodeType":"UserDefinedTypeName","pathNode":{"id":317,"name":"ENSInterface","nodeType":"IdentifierPath","referencedDeclaration":974,"src":"1124:12:1"},"referencedDeclaration":974,"src":"1124:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"visibility":"private"},{"constant":false,"id":321,"mutability":"mutable","name":"s_ensNode","nameLocation":"1170:9:1","nodeType":"VariableDeclaration","scope":861,"src":"1154:25:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1154:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":324,"mutability":"mutable","name":"s_link","nameLocation":"1210:6:1","nodeType":"VariableDeclaration","scope":861,"src":"1183:33:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"},"typeName":{"id":323,"nodeType":"UserDefinedTypeName","pathNode":{"id":322,"name":"LinkTokenInterface","nodeType":"IdentifierPath","referencedDeclaration":1069,"src":"1183:18:1"},"referencedDeclaration":1069,"src":"1183:18:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}},"visibility":"private"},{"constant":false,"id":327,"mutability":"mutable","name":"s_oracle","nameLocation":"1246:8:1","nodeType":"VariableDeclaration","scope":861,"src":"1220:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"},"typeName":{"id":326,"nodeType":"UserDefinedTypeName","pathNode":{"id":325,"name":"OperatorInterface","nodeType":"IdentifierPath","referencedDeclaration":1149,"src":"1220:17:1"},"referencedDeclaration":1149,"src":"1220:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"visibility":"private"},{"constant":false,"id":330,"mutability":"mutable","name":"s_requestCount","nameLocation":"1274:14:1","nodeType":"VariableDeclaration","scope":861,"src":"1258:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":328,"name":"uint256","nodeType":"ElementaryTypeName","src":"1258:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1291:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":false,"id":334,"mutability":"mutable","name":"s_pendingRequests","nameLocation":"1332:17:1","nodeType":"VariableDeclaration","scope":861,"src":"1296:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":333,"keyType":{"id":331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1304:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1296:27:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":332,"name":"address","nodeType":"ElementaryTypeName","src":"1315:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"anonymous":false,"id":338,"name":"ChainlinkRequested","nameLocation":"1360:18:1","nodeType":"EventDefinition","parameters":{"id":337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":336,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1395:2:1","nodeType":"VariableDeclaration","scope":338,"src":"1379:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1379:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1378:20:1"},"src":"1354:45:1"},{"anonymous":false,"id":342,"name":"ChainlinkFulfilled","nameLocation":"1408:18:1","nodeType":"EventDefinition","parameters":{"id":341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":340,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1443:2:1","nodeType":"VariableDeclaration","scope":342,"src":"1427:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1427:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1426:20:1"},"src":"1402:45:1"},{"anonymous":false,"id":346,"name":"ChainlinkCancelled","nameLocation":"1456:18:1","nodeType":"EventDefinition","parameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":344,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1491:2:1","nodeType":"VariableDeclaration","scope":346,"src":"1475:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1475:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1474:20:1"},"src":"1450:45:1"},{"body":{"id":372,"nodeType":"Block","src":"2018:115:1","statements":[{"assignments":[363],"declarations":[{"constant":false,"id":363,"mutability":"mutable","name":"req","nameLocation":"2049:3:1","nodeType":"VariableDeclaration","scope":372,"src":"2024:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":362,"nodeType":"UserDefinedTypeName","pathNode":{"id":361,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2024:17:1"},"referencedDeclaration":25,"src":"2024:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":364,"nodeType":"VariableDeclarationStatement","src":"2024:28:1"},{"expression":{"arguments":[{"id":367,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"2080:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":368,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"2088:12:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":369,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":353,"src":"2102:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":365,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"2065:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2065:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2065:63:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":358,"id":371,"nodeType":"Return","src":"2058:70:1"}]},"documentation":{"id":347,"nodeType":"StructuredDocumentation","src":"1499:348:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackAddr address to operate the callback on\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":373,"implemented":true,"kind":"function","modifiers":[],"name":"buildChainlinkRequest","nameLocation":"1859:21:1","nodeType":"FunctionDefinition","parameters":{"id":354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":349,"mutability":"mutable","name":"specId","nameLocation":"1894:6:1","nodeType":"VariableDeclaration","scope":373,"src":"1886:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1886:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":351,"mutability":"mutable","name":"callbackAddr","nameLocation":"1914:12:1","nodeType":"VariableDeclaration","scope":373,"src":"1906:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":350,"name":"address","nodeType":"ElementaryTypeName","src":"1906:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":353,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"1939:25:1","nodeType":"VariableDeclaration","scope":373,"src":"1932:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":352,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1932:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1880:88:1"},"returnParameters":{"id":358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":373,"src":"1992:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":356,"nodeType":"UserDefinedTypeName","pathNode":{"id":355,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1992:17:1"},"referencedDeclaration":25,"src":"1992:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1991:26:1"},"scope":861,"src":"1850:283:1","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":400,"nodeType":"Block","src":"2571:116:1","statements":[{"assignments":[388],"declarations":[{"constant":false,"id":388,"mutability":"mutable","name":"req","nameLocation":"2602:3:1","nodeType":"VariableDeclaration","scope":400,"src":"2577:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":387,"nodeType":"UserDefinedTypeName","pathNode":{"id":386,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2577:17:1"},"referencedDeclaration":25,"src":"2577:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":389,"nodeType":"VariableDeclarationStatement","src":"2577:28:1"},{"expression":{"arguments":[{"id":392,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"2633:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":395,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"2649:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2641:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":393,"name":"address","nodeType":"ElementaryTypeName","src":"2641:7:1","typeDescriptions":{}}},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2641:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":397,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"2656:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":390,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"2618:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2618:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2618:64:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":383,"id":399,"nodeType":"Return","src":"2611:71:1"}]},"documentation":{"id":374,"nodeType":"StructuredDocumentation","src":"2137:288:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":401,"implemented":true,"kind":"function","modifiers":[],"name":"buildOperatorRequest","nameLocation":"2437:20:1","nodeType":"FunctionDefinition","parameters":{"id":379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":376,"mutability":"mutable","name":"specId","nameLocation":"2466:6:1","nodeType":"VariableDeclaration","scope":401,"src":"2458:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2458:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":378,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"2481:25:1","nodeType":"VariableDeclaration","scope":401,"src":"2474:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":377,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2474:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2457:50:1"},"returnParameters":{"id":383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":401,"src":"2543:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":381,"nodeType":"UserDefinedTypeName","pathNode":{"id":380,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2543:17:1"},"referencedDeclaration":25,"src":"2543:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"2542:26:1"},"scope":861,"src":"2428:259:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":421,"nodeType":"Block","src":"3096:73:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":415,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"3140:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}],"id":414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3132:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":413,"name":"address","nodeType":"ElementaryTypeName","src":"3132:7:1","typeDescriptions":{}}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3132:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":417,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":405,"src":"3151:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":418,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":407,"src":"3156:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":412,"name":"sendChainlinkRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"3109:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3109:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":411,"id":420,"nodeType":"Return","src":"3102:62:1"}]},"documentation":{"id":402,"nodeType":"StructuredDocumentation","src":"2691:298:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev Calls `chainlinkRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":422,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequest","nameLocation":"3001:20:1","nodeType":"FunctionDefinition","parameters":{"id":408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":405,"mutability":"mutable","name":"req","nameLocation":"3047:3:1","nodeType":"VariableDeclaration","scope":422,"src":"3022:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":404,"nodeType":"UserDefinedTypeName","pathNode":{"id":403,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3022:17:1"},"referencedDeclaration":25,"src":"3022:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":407,"mutability":"mutable","name":"payment","nameLocation":"3060:7:1","nodeType":"VariableDeclaration","scope":422,"src":"3052:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":406,"name":"uint256","nodeType":"ElementaryTypeName","src":"3052:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:47:1"},"returnParameters":{"id":411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":422,"src":"3087:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3087:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3086:9:1"},"scope":861,"src":"2992:177:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":476,"nodeType":"Block","src":"3842:601:1","statements":[{"assignments":[436],"declarations":[{"constant":false,"id":436,"mutability":"mutable","name":"nonce","nameLocation":"3856:5:1","nodeType":"VariableDeclaration","scope":476,"src":"3848:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3848:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":438,"initialValue":{"id":437,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3864:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3848:30:1"},{"expression":{"id":443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":439,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3884:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":440,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"3901:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3909:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3901:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3884:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":444,"nodeType":"ExpressionStatement","src":"3884:26:1"},{"assignments":[446],"declarations":[{"constant":false,"id":446,"mutability":"mutable","name":"encodedRequest","nameLocation":"3929:14:1","nodeType":"VariableDeclaration","scope":476,"src":"3916:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":445,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":468,"initialValue":{"arguments":[{"expression":{"expression":{"id":449,"name":"ChainlinkRequestInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"3976:25:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ChainlinkRequestInterface_$894_$","typeString":"type(contract ChainlinkRequestInterface)"}},"id":450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"oracleRequest","nodeType":"MemberAccess","referencedDeclaration":882,"src":"3976:39:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ChainlinkRequestInterface.oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes calldata)"}},"id":451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"3976:48:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":452,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"4032:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":453,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"4140:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":454,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4245:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"4245:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":458,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"4267:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4259:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":456,"name":"address","nodeType":"ElementaryTypeName","src":"4259:7:1","typeDescriptions":{}}},"id":459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4259:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":460,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4280:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"4280:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":462,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4310:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":463,"name":"ORACLE_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":300,"src":"4323:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":464,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4350:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"4350:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"4350:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3946:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3946:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3946:421:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3916:451:1"},{"expression":{"arguments":[{"id":470,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"4392:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":471,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4407:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":472,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"4414:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":473,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4423:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":469,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"4380:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4380:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":434,"id":475,"nodeType":"Return","src":"4373:65:1"}]},"documentation":{"id":423,"nodeType":"StructuredDocumentation","src":"3173:511:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":477,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequestTo","nameLocation":"3696:22:1","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":425,"mutability":"mutable","name":"oracleAddress","nameLocation":"3732:13:1","nodeType":"VariableDeclaration","scope":477,"src":"3724:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":424,"name":"address","nodeType":"ElementaryTypeName","src":"3724:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":428,"mutability":"mutable","name":"req","nameLocation":"3776:3:1","nodeType":"VariableDeclaration","scope":477,"src":"3751:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":427,"nodeType":"UserDefinedTypeName","pathNode":{"id":426,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3751:17:1"},"referencedDeclaration":25,"src":"3751:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"payment","nameLocation":"3793:7:1","nodeType":"VariableDeclaration","scope":477,"src":"3785:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":429,"name":"uint256","nodeType":"ElementaryTypeName","src":"3785:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3718:86:1"},"returnParameters":{"id":434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":433,"mutability":"mutable","name":"requestId","nameLocation":"3831:9:1","nodeType":"VariableDeclaration","scope":477,"src":"3823:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3823:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3822:19:1"},"scope":861,"src":"3687:756:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":497,"nodeType":"Block","src":"4907:72:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":491,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"4950:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}],"id":490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4942:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":489,"name":"address","nodeType":"ElementaryTypeName","src":"4942:7:1","typeDescriptions":{}}},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4942:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":493,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"4961:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":494,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"4966:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":488,"name":"sendOperatorRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":549,"src":"4920:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4920:54:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":487,"id":496,"nodeType":"Return","src":"4913:61:1"}]},"documentation":{"id":478,"nodeType":"StructuredDocumentation","src":"4447:354:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev This function supports multi-word response\n @dev Calls `sendOperatorRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":498,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequest","nameLocation":"4813:19:1","nodeType":"FunctionDefinition","parameters":{"id":484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"req","nameLocation":"4858:3:1","nodeType":"VariableDeclaration","scope":498,"src":"4833:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":480,"nodeType":"UserDefinedTypeName","pathNode":{"id":479,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"4833:17:1"},"referencedDeclaration":25,"src":"4833:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":483,"mutability":"mutable","name":"payment","nameLocation":"4871:7:1","nodeType":"VariableDeclaration","scope":498,"src":"4863:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":482,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4832:47:1"},"returnParameters":{"id":487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":498,"src":"4898:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4898:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4897:9:1"},"scope":861,"src":"4804:175:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":548,"nodeType":"Block","src":"5704:576:1","statements":[{"assignments":[512],"declarations":[{"constant":false,"id":512,"mutability":"mutable","name":"nonce","nameLocation":"5718:5:1","nodeType":"VariableDeclaration","scope":548,"src":"5710:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":511,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":514,"initialValue":{"id":513,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5726:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5710:30:1"},{"expression":{"id":519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":515,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5746:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":516,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"5763:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5771:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5763:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5746:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":520,"nodeType":"ExpressionStatement","src":"5746:26:1"},{"assignments":[522],"declarations":[{"constant":false,"id":522,"mutability":"mutable","name":"encodedRequest","nameLocation":"5791:14:1","nodeType":"VariableDeclaration","scope":548,"src":"5778:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":521,"name":"bytes","nodeType":"ElementaryTypeName","src":"5778:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":540,"initialValue":{"arguments":[{"expression":{"expression":{"id":525,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"5838:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1149_$","typeString":"type(contract OperatorInterface)"}},"id":526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"operatorRequest","nodeType":"MemberAccess","referencedDeclaration":1094,"src":"5838:33:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function OperatorInterface.operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes calldata)"}},"id":527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"5838:42:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":528,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"5888:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":529,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"5996:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":530,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6101:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"6101:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":532,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6115:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"6115:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":534,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6145:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":535,"name":"OPERATOR_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"6158:21:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":536,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6187:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"6187:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"6187:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":523,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"5808:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"5808:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5808:396:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5778:426:1"},{"expression":{"arguments":[{"id":542,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"6229:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":543,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6244:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":544,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"6251:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":545,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"6260:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":541,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"6217:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6217:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":510,"id":547,"nodeType":"Return","src":"6210:65:1"}]},"documentation":{"id":499,"nodeType":"StructuredDocumentation","src":"4983:564:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev This function supports multi-word response\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":549,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequestTo","nameLocation":"5559:21:1","nodeType":"FunctionDefinition","parameters":{"id":507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":501,"mutability":"mutable","name":"oracleAddress","nameLocation":"5594:13:1","nodeType":"VariableDeclaration","scope":549,"src":"5586:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":500,"name":"address","nodeType":"ElementaryTypeName","src":"5586:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":504,"mutability":"mutable","name":"req","nameLocation":"5638:3:1","nodeType":"VariableDeclaration","scope":549,"src":"5613:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":503,"nodeType":"UserDefinedTypeName","pathNode":{"id":502,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"5613:17:1"},"referencedDeclaration":25,"src":"5613:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":506,"mutability":"mutable","name":"payment","nameLocation":"5655:7:1","nodeType":"VariableDeclaration","scope":549,"src":"5647:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":505,"name":"uint256","nodeType":"ElementaryTypeName","src":"5647:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5580:86:1"},"returnParameters":{"id":510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":509,"mutability":"mutable","name":"requestId","nameLocation":"5693:9:1","nodeType":"VariableDeclaration","scope":549,"src":"5685:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5685:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5684:19:1"},"scope":861,"src":"5550:730:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":593,"nodeType":"Block","src":"6790:269:1","statements":[{"expression":{"id":571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":563,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6796:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":567,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"6835:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}},{"id":568,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"6841:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":565,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6818:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"6818:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6818:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":564,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"6808:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6808:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6796:52:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":572,"nodeType":"ExpressionStatement","src":"6796:52:1"},{"expression":{"id":577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":573,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"6854:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":575,"indexExpression":{"id":574,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6872:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6854:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":576,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6885:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6854:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":578,"nodeType":"ExpressionStatement","src":"6854:44:1"},{"eventCall":{"arguments":[{"id":580,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6928:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":579,"name":"ChainlinkRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"6909:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6909:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":582,"nodeType":"EmitStatement","src":"6904:34:1"},{"expression":{"arguments":[{"arguments":[{"id":586,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6975:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":587,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"6990:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":588,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":558,"src":"6999:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":584,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"6952:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferAndCall","nodeType":"MemberAccess","referencedDeclaration":1057,"src":"6952:22:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory) external returns (bool)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6952:62:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65","id":590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7016:37:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""},"value":"unable to transferAndCall to oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""}],"id":583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6944:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6944:110:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":592,"nodeType":"ExpressionStatement","src":"6944:110:1"}]},"documentation":{"id":550,"nodeType":"StructuredDocumentation","src":"6284:342:1","text":" @notice Make a request to an oracle\n @param oracleAddress The address of the oracle for the request\n @param nonce used to generate the request ID\n @param payment The amount of LINK to send for the request\n @param encodedRequest data encoded for request type specific format\n @return requestId The request ID"},"id":594,"implemented":true,"kind":"function","modifiers":[],"name":"_rawRequest","nameLocation":"6638:11:1","nodeType":"FunctionDefinition","parameters":{"id":559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":552,"mutability":"mutable","name":"oracleAddress","nameLocation":"6663:13:1","nodeType":"VariableDeclaration","scope":594,"src":"6655:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"6655:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":554,"mutability":"mutable","name":"nonce","nameLocation":"6690:5:1","nodeType":"VariableDeclaration","scope":594,"src":"6682:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":553,"name":"uint256","nodeType":"ElementaryTypeName","src":"6682:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":556,"mutability":"mutable","name":"payment","nameLocation":"6709:7:1","nodeType":"VariableDeclaration","scope":594,"src":"6701:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":555,"name":"uint256","nodeType":"ElementaryTypeName","src":"6701:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":558,"mutability":"mutable","name":"encodedRequest","nameLocation":"6735:14:1","nodeType":"VariableDeclaration","scope":594,"src":"6722:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":557,"name":"bytes","nodeType":"ElementaryTypeName","src":"6722:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6649:104:1"},"returnParameters":{"id":562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":561,"mutability":"mutable","name":"requestId","nameLocation":"6779:9:1","nodeType":"VariableDeclaration","scope":594,"src":"6771:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6771:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6770:19:1"},"scope":861,"src":"6629:430:1","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":633,"nodeType":"Block","src":"7713:250:1","statements":[{"assignments":[608],"declarations":[{"constant":false,"id":608,"mutability":"mutable","name":"requested","nameLocation":"7737:9:1","nodeType":"VariableDeclaration","scope":633,"src":"7719:27:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"},"typeName":{"id":607,"nodeType":"UserDefinedTypeName","pathNode":{"id":606,"name":"OperatorInterface","nodeType":"IdentifierPath","referencedDeclaration":1149,"src":"7719:17:1"},"referencedDeclaration":1149,"src":"7719:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"visibility":"internal"}],"id":614,"initialValue":{"arguments":[{"baseExpression":{"id":610,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7767:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":612,"indexExpression":{"id":611,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7785:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7767:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":609,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"7749:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1149_$","typeString":"type(contract OperatorInterface)"}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7749:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"nodeType":"VariableDeclarationStatement","src":"7719:77:1"},{"expression":{"id":618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7802:35:1","subExpression":{"baseExpression":{"id":615,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7809:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":617,"indexExpression":{"id":616,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7827:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7809:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":619,"nodeType":"ExpressionStatement","src":"7802:35:1"},{"eventCall":{"arguments":[{"id":621,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7867:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":620,"name":"ChainlinkCancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"7848:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7848:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":623,"nodeType":"EmitStatement","src":"7843:34:1"},{"expression":{"arguments":[{"id":627,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7913:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":628,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"7924:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":629,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":601,"src":"7933:12:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":630,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":603,"src":"7947:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":624,"name":"requested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"7883:9:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"id":626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"cancelOracleRequest","nodeType":"MemberAccess","referencedDeclaration":893,"src":"7883:29:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes4_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,bytes4,uint256) external"}},"id":631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7883:75:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":632,"nodeType":"ExpressionStatement","src":"7883:75:1"}]},"documentation":{"id":595,"nodeType":"StructuredDocumentation","src":"7063:509:1","text":" @notice Allows a request to be cancelled if it has not been fulfilled\n @dev Requires keeping track of the expiration value emitted from the oracle contract.\n Deletes the request from the `pendingRequests` mapping.\n Emits ChainlinkCancelled event.\n @param requestId The request ID\n @param payment The amount of LINK sent for the request\n @param callbackFunc The callback function specified for the request\n @param expiration The time of the expiration for the request"},"id":634,"implemented":true,"kind":"function","modifiers":[],"name":"cancelChainlinkRequest","nameLocation":"7584:22:1","nodeType":"FunctionDefinition","parameters":{"id":604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":597,"mutability":"mutable","name":"requestId","nameLocation":"7620:9:1","nodeType":"VariableDeclaration","scope":634,"src":"7612:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7612:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":599,"mutability":"mutable","name":"payment","nameLocation":"7643:7:1","nodeType":"VariableDeclaration","scope":634,"src":"7635:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7635:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":601,"mutability":"mutable","name":"callbackFunc","nameLocation":"7663:12:1","nodeType":"VariableDeclaration","scope":634,"src":"7656:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":600,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7656:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":603,"mutability":"mutable","name":"expiration","nameLocation":"7689:10:1","nodeType":"VariableDeclaration","scope":634,"src":"7681:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":602,"name":"uint256","nodeType":"ElementaryTypeName","src":"7681:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7606:97:1"},"returnParameters":{"id":605,"nodeType":"ParameterList","parameters":[],"src":"7713:0:1"},"scope":861,"src":"7575:388:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":642,"nodeType":"Block","src":"8238:32:1","statements":[{"expression":{"id":640,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"8251:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":639,"id":641,"nodeType":"Return","src":"8244:21:1"}]},"documentation":{"id":635,"nodeType":"StructuredDocumentation","src":"7967:205:1","text":" @notice the next request count to be used in generating a nonce\n @dev starts at 1 in order to ensure consistent gas cost\n @return returns the next request count to be used in a nonce"},"id":643,"implemented":true,"kind":"function","modifiers":[],"name":"getNextRequestCount","nameLocation":"8184:19:1","nodeType":"FunctionDefinition","parameters":{"id":636,"nodeType":"ParameterList","parameters":[],"src":"8203:2:1"},"returnParameters":{"id":639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":643,"src":"8229:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":637,"name":"uint256","nodeType":"ElementaryTypeName","src":"8229:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8228:9:1"},"scope":861,"src":"8175:95:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":655,"nodeType":"Block","src":"8451:54:1","statements":[{"expression":{"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":649,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"8457:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":651,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"8486:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":650,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"8468:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1149_$","typeString":"type(contract OperatorInterface)"}},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8468:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"src":"8457:43:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"id":654,"nodeType":"ExpressionStatement","src":"8457:43:1"}]},"documentation":{"id":644,"nodeType":"StructuredDocumentation","src":"8274:114:1","text":" @notice Sets the stored oracle address\n @param oracleAddress The address of the oracle contract"},"id":656,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkOracle","nameLocation":"8400:18:1","nodeType":"FunctionDefinition","parameters":{"id":647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":646,"mutability":"mutable","name":"oracleAddress","nameLocation":"8427:13:1","nodeType":"VariableDeclaration","scope":656,"src":"8419:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":645,"name":"address","nodeType":"ElementaryTypeName","src":"8419:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8418:23:1"},"returnParameters":{"id":648,"nodeType":"ParameterList","parameters":[],"src":"8451:0:1"},"scope":861,"src":"8391:114:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":668,"nodeType":"Block","src":"8682:51:1","statements":[{"expression":{"id":666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":662,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"8688:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":664,"name":"linkAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"8716:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":663,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"8697:18:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1069_$","typeString":"type(contract LinkTokenInterface)"}},"id":665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8697:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}},"src":"8688:40:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}},"id":667,"nodeType":"ExpressionStatement","src":"8688:40:1"}]},"documentation":{"id":657,"nodeType":"StructuredDocumentation","src":"8509:113:1","text":" @notice Sets the LINK token address\n @param linkAddress The address of the LINK token contract"},"id":669,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkToken","nameLocation":"8634:17:1","nodeType":"FunctionDefinition","parameters":{"id":660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":659,"mutability":"mutable","name":"linkAddress","nameLocation":"8660:11:1","nodeType":"VariableDeclaration","scope":669,"src":"8652:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":658,"name":"address","nodeType":"ElementaryTypeName","src":"8652:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8651:21:1"},"returnParameters":{"id":661,"nodeType":"ParameterList","parameters":[],"src":"8682:0:1"},"scope":861,"src":"8625:108:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":681,"nodeType":"Block","src":"8900:79:1","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":675,"name":"LINK_TOKEN_POINTER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"8941:18:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":674,"name":"PointerInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1196,"src":"8924:16:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PointerInterface_$1196_$","typeString":"type(contract PointerInterface)"}},"id":676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8924:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PointerInterface_$1196","typeString":"contract PointerInterface"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":1195,"src":"8924:47:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8924:49:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":673,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"8906:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8906:68:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":680,"nodeType":"ExpressionStatement","src":"8906:68:1"}]},"documentation":{"id":670,"nodeType":"StructuredDocumentation","src":"8737:116:1","text":" @notice Sets the Chainlink token address for the public\n network as given by the Pointer contract"},"id":682,"implemented":true,"kind":"function","modifiers":[],"name":"setPublicChainlinkToken","nameLocation":"8865:23:1","nodeType":"FunctionDefinition","parameters":{"id":671,"nodeType":"ParameterList","parameters":[],"src":"8888:2:1"},"returnParameters":{"id":672,"nodeType":"ParameterList","parameters":[],"src":"8900:0:1"},"scope":861,"src":"8856:123:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":693,"nodeType":"Block","src":"9163:33:1","statements":[{"expression":{"arguments":[{"id":690,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"9184:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}],"id":689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9176:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":688,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:1","typeDescriptions":{}}},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9176:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":687,"id":692,"nodeType":"Return","src":"9169:22:1"}]},"documentation":{"id":683,"nodeType":"StructuredDocumentation","src":"8983:112:1","text":" @notice Retrieves the stored address of the LINK token\n @return The address of the LINK token"},"id":694,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkTokenAddress","nameLocation":"9107:21:1","nodeType":"FunctionDefinition","parameters":{"id":684,"nodeType":"ParameterList","parameters":[],"src":"9128:2:1"},"returnParameters":{"id":687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":694,"src":"9154:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":685,"name":"address","nodeType":"ElementaryTypeName","src":"9154:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9153:9:1"},"scope":861,"src":"9098:98:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":705,"nodeType":"Block","src":"9391:35:1","statements":[{"expression":{"arguments":[{"id":702,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"9412:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}],"id":701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9404:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"9404:7:1","typeDescriptions":{}}},"id":703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9404:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":699,"id":704,"nodeType":"Return","src":"9397:24:1"}]},"documentation":{"id":695,"nodeType":"StructuredDocumentation","src":"9200:122:1","text":" @notice Retrieves the stored address of the oracle contract\n @return The address of the oracle contract"},"id":706,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkOracleAddress","nameLocation":"9334:22:1","nodeType":"FunctionDefinition","parameters":{"id":696,"nodeType":"ParameterList","parameters":[],"src":"9356:2:1"},"returnParameters":{"id":699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":706,"src":"9382:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":697,"name":"address","nodeType":"ElementaryTypeName","src":"9382:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9381:9:1"},"scope":861,"src":"9325:101:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":723,"nodeType":"Block","src":"9819:55:1","statements":[{"expression":{"id":721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":717,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"9825:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":719,"indexExpression":{"id":718,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9843:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9825:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":720,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":709,"src":"9856:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9825:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":722,"nodeType":"ExpressionStatement","src":"9825:44:1"}]},"documentation":{"id":707,"nodeType":"StructuredDocumentation","src":"9430:269:1","text":" @notice Allows for a request which was created on another contract to be fulfilled\n on this contract\n @param oracleAddress The address of the oracle contract that will fulfill the request\n @param requestId The request ID used for the response"},"id":724,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":714,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9808:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":715,"modifierName":{"id":713,"name":"notPendingRequest","nodeType":"IdentifierPath","referencedDeclaration":860,"src":"9790:17:1"},"nodeType":"ModifierInvocation","src":"9790:28:1"}],"name":"addChainlinkExternalRequest","nameLocation":"9711:27:1","nodeType":"FunctionDefinition","parameters":{"id":712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":709,"mutability":"mutable","name":"oracleAddress","nameLocation":"9747:13:1","nodeType":"VariableDeclaration","scope":724,"src":"9739:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":708,"name":"address","nodeType":"ElementaryTypeName","src":"9739:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":711,"mutability":"mutable","name":"requestId","nameLocation":"9770:9:1","nodeType":"VariableDeclaration","scope":724,"src":"9762:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9762:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9738:42:1"},"returnParameters":{"id":716,"nodeType":"ParameterList","parameters":[],"src":"9819:0:1"},"scope":861,"src":"9702:172:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":772,"nodeType":"Block","src":"10207:326:1","statements":[{"expression":{"id":736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":732,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10213:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":734,"name":"ensAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"10234:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":733,"name":"ENSInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"10221:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSInterface_$974_$","typeString":"type(contract ENSInterface)"}},"id":735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10221:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"src":"10213:32:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"id":737,"nodeType":"ExpressionStatement","src":"10213:32:1"},{"expression":{"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":738,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10251:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":739,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":729,"src":"10263:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10251:16:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":741,"nodeType":"ExpressionStatement","src":"10251:16:1"},{"assignments":[743],"declarations":[{"constant":false,"id":743,"mutability":"mutable","name":"linkSubnode","nameLocation":"10281:11:1","nodeType":"VariableDeclaration","scope":772,"src":"10273:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10273:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":751,"initialValue":{"arguments":[{"arguments":[{"id":747,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10322:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":748,"name":"ENS_TOKEN_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":308,"src":"10333:17:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":745,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"10305:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"10305:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10305:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":744,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"10295:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10295:57:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10273:79:1"},{"assignments":[754],"declarations":[{"constant":false,"id":754,"mutability":"mutable","name":"resolver","nameLocation":"10380:8:1","nodeType":"VariableDeclaration","scope":772,"src":"10358:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"},"typeName":{"id":753,"nodeType":"UserDefinedTypeName","pathNode":{"id":752,"name":"ENSResolver_Chainlink","nodeType":"IdentifierPath","referencedDeclaration":2175,"src":"10358:21:1"},"referencedDeclaration":2175,"src":"10358:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":761,"initialValue":{"arguments":[{"arguments":[{"id":758,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10428:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":756,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10413:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":966,"src":"10413:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10413:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":755,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2175,"src":"10391:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2175_$","typeString":"type(contract ENSResolver)"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10391:50:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10358:83:1"},{"expression":{"arguments":[{"arguments":[{"id":765,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10479:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":763,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":754,"src":"10465:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2174,"src":"10465:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10465:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":762,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"10447:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10447:45:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":768,"nodeType":"ExpressionStatement","src":"10447:45:1"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":769,"name":"updateChainlinkOracleWithENS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"10498:28:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10498:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":771,"nodeType":"ExpressionStatement","src":"10498:30:1"}]},"documentation":{"id":725,"nodeType":"StructuredDocumentation","src":"9878:254:1","text":" @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n @dev Accounts for subnodes having different resolvers\n @param ensAddress The address of the ENS contract\n @param node The ENS node hash"},"id":773,"implemented":true,"kind":"function","modifiers":[],"name":"useChainlinkWithENS","nameLocation":"10144:19:1","nodeType":"FunctionDefinition","parameters":{"id":730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":727,"mutability":"mutable","name":"ensAddress","nameLocation":"10172:10:1","nodeType":"VariableDeclaration","scope":773,"src":"10164:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":726,"name":"address","nodeType":"ElementaryTypeName","src":"10164:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":729,"mutability":"mutable","name":"node","nameLocation":"10192:4:1","nodeType":"VariableDeclaration","scope":773,"src":"10184:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10184:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10163:34:1"},"returnParameters":{"id":731,"nodeType":"ParameterList","parameters":[],"src":"10207:0:1"},"scope":861,"src":"10135:398:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":804,"nodeType":"Block","src":"10776:238:1","statements":[{"assignments":[778],"declarations":[{"constant":false,"id":778,"mutability":"mutable","name":"oracleSubnode","nameLocation":"10790:13:1","nodeType":"VariableDeclaration","scope":804,"src":"10782:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10782:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":786,"initialValue":{"arguments":[{"arguments":[{"id":782,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10833:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":783,"name":"ENS_ORACLE_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":313,"src":"10844:18:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"10816:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"10816:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10816:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":779,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"10806:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10806:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10782:82:1"},{"assignments":[789],"declarations":[{"constant":false,"id":789,"mutability":"mutable","name":"resolver","nameLocation":"10892:8:1","nodeType":"VariableDeclaration","scope":804,"src":"10870:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"},"typeName":{"id":788,"nodeType":"UserDefinedTypeName","pathNode":{"id":787,"name":"ENSResolver_Chainlink","nodeType":"IdentifierPath","referencedDeclaration":2175,"src":"10870:21:1"},"referencedDeclaration":2175,"src":"10870:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":796,"initialValue":{"arguments":[{"arguments":[{"id":793,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10940:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":791,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10925:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"id":792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":966,"src":"10925:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10925:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":790,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2175,"src":"10903:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2175_$","typeString":"type(contract ENSResolver)"}},"id":795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10903:52:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10870:85:1"},{"expression":{"arguments":[{"arguments":[{"id":800,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10994:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":798,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"10980:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"id":799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2174,"src":"10980:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10980:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":797,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"10961:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10961:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":803,"nodeType":"ExpressionStatement","src":"10961:48:1"}]},"documentation":{"id":774,"nodeType":"StructuredDocumentation","src":"10537:187:1","text":" @notice Sets the stored oracle contract with the address resolved by ENS\n @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously"},"id":805,"implemented":true,"kind":"function","modifiers":[],"name":"updateChainlinkOracleWithENS","nameLocation":"10736:28:1","nodeType":"FunctionDefinition","parameters":{"id":775,"nodeType":"ParameterList","parameters":[],"src":"10764:2:1"},"returnParameters":{"id":776,"nodeType":"ParameterList","parameters":[],"src":"10776:0:1"},"scope":861,"src":"10727:287:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":814,"nodeType":"Block","src":"11402:6:1","statements":[]},"documentation":{"id":806,"nodeType":"StructuredDocumentation","src":"11018:223:1","text":" @notice Ensures that the fulfillment is valid for this contract\n @dev Use if the contract developer prefers methods instead of modifiers for validation\n @param requestId The request ID for fulfillment"},"id":815,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":811,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":808,"src":"11342:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":812,"modifierName":{"id":810,"name":"recordChainlinkFulfillment","nodeType":"IdentifierPath","referencedDeclaration":841,"src":"11315:26:1"},"nodeType":"ModifierInvocation","src":"11315:37:1"}],"name":"validateChainlinkCallback","nameLocation":"11253:25:1","nodeType":"FunctionDefinition","parameters":{"id":809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":808,"mutability":"mutable","name":"requestId","nameLocation":"11287:9:1","nodeType":"VariableDeclaration","scope":815,"src":"11279:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11279:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11278:19:1"},"returnParameters":{"id":813,"nodeType":"ParameterList","parameters":[],"src":"11402:0:1"},"scope":861,"src":"11244:164:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":840,"nodeType":"Block","src":"11635:194:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":821,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11649:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11649:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":823,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11663:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":825,"indexExpression":{"id":824,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11681:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11663:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11649:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374","id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11693:42:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""},"value":"Source must be the oracle of the request"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""}],"id":820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11641:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11641:95:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":829,"nodeType":"ExpressionStatement","src":"11641:95:1"},{"expression":{"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11742:35:1","subExpression":{"baseExpression":{"id":830,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11749:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":832,"indexExpression":{"id":831,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11767:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11749:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":834,"nodeType":"ExpressionStatement","src":"11742:35:1"},{"eventCall":{"arguments":[{"id":836,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11807:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":835,"name":"ChainlinkFulfilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"11788:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11788:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":838,"nodeType":"EmitStatement","src":"11783:34:1"},{"id":839,"nodeType":"PlaceholderStatement","src":"11823:1:1"}]},"documentation":{"id":816,"nodeType":"StructuredDocumentation","src":"11412:165:1","text":" @dev Reverts if the sender is not the oracle of the request.\n Emits ChainlinkFulfilled event.\n @param requestId The request ID for fulfillment"},"id":841,"name":"recordChainlinkFulfillment","nameLocation":"11589:26:1","nodeType":"ModifierDefinition","parameters":{"id":819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":818,"mutability":"mutable","name":"requestId","nameLocation":"11624:9:1","nodeType":"VariableDeclaration","scope":841,"src":"11616:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11616:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11615:19:1"},"src":"11580:249:1","virtual":false,"visibility":"internal"},{"body":{"id":859,"nodeType":"Block","src":"11996:99:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":847,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"12010:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":849,"indexExpression":{"id":848,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":844,"src":"12028:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12010:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12050:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12042:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":850,"name":"address","nodeType":"ElementaryTypeName","src":"12042:7:1","typeDescriptions":{}}},"id":853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12042:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12010:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265717565737420697320616c72656164792070656e64696e67","id":855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12054:28:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""},"value":"Request is already pending"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""}],"id":846,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12002:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12002:81:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":857,"nodeType":"ExpressionStatement","src":"12002:81:1"},{"id":858,"nodeType":"PlaceholderStatement","src":"12089:1:1"}]},"documentation":{"id":842,"nodeType":"StructuredDocumentation","src":"11833:114:1","text":" @dev Reverts if the request is already pending\n @param requestId The request ID for fulfillment"},"id":860,"name":"notPendingRequest","nameLocation":"11959:17:1","nodeType":"ModifierDefinition","parameters":{"id":845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":844,"mutability":"mutable","name":"requestId","nameLocation":"11985:9:1","nodeType":"VariableDeclaration","scope":860,"src":"11977:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11977:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11976:19:1"},"src":"11950:145:1","virtual":false,"visibility":"internal"}],"scope":862,"src":"549:11548:1"}],"src":"32:12066:1"},"id":1},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[894]},"id":895,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":863,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:2"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":894,"linearizedBaseContracts":[894],"name":"ChainlinkRequestInterface","nameLocation":"67:25:2","nodeType":"ContractDefinition","nodes":[{"functionSelector":"40429946","id":882,"implemented":false,"kind":"function","modifiers":[],"name":"oracleRequest","nameLocation":"106:13:2","nodeType":"FunctionDefinition","parameters":{"id":880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":865,"mutability":"mutable","name":"sender","nameLocation":"133:6:2","nodeType":"VariableDeclaration","scope":882,"src":"125:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":864,"name":"address","nodeType":"ElementaryTypeName","src":"125:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":867,"mutability":"mutable","name":"requestPrice","nameLocation":"153:12:2","nodeType":"VariableDeclaration","scope":882,"src":"145:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":866,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":869,"mutability":"mutable","name":"serviceAgreementID","nameLocation":"179:18:2","nodeType":"VariableDeclaration","scope":882,"src":"171:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":871,"mutability":"mutable","name":"callbackAddress","nameLocation":"211:15:2","nodeType":"VariableDeclaration","scope":882,"src":"203:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":870,"name":"address","nodeType":"ElementaryTypeName","src":"203:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":873,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"239:18:2","nodeType":"VariableDeclaration","scope":882,"src":"232:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":872,"name":"bytes4","nodeType":"ElementaryTypeName","src":"232:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":875,"mutability":"mutable","name":"nonce","nameLocation":"271:5:2","nodeType":"VariableDeclaration","scope":882,"src":"263:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":874,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":877,"mutability":"mutable","name":"dataVersion","nameLocation":"290:11:2","nodeType":"VariableDeclaration","scope":882,"src":"282:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":876,"name":"uint256","nodeType":"ElementaryTypeName","src":"282:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":879,"mutability":"mutable","name":"data","nameLocation":"322:4:2","nodeType":"VariableDeclaration","scope":882,"src":"307:19:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":878,"name":"bytes","nodeType":"ElementaryTypeName","src":"307:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"119:211:2"},"returnParameters":{"id":881,"nodeType":"ParameterList","parameters":[],"src":"339:0:2"},"scope":894,"src":"97:243:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ee4d553","id":893,"implemented":false,"kind":"function","modifiers":[],"name":"cancelOracleRequest","nameLocation":"353:19:2","nodeType":"FunctionDefinition","parameters":{"id":891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":884,"mutability":"mutable","name":"requestId","nameLocation":"386:9:2","nodeType":"VariableDeclaration","scope":893,"src":"378:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":886,"mutability":"mutable","name":"payment","nameLocation":"409:7:2","nodeType":"VariableDeclaration","scope":893,"src":"401:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":885,"name":"uint256","nodeType":"ElementaryTypeName","src":"401:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":888,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"429:18:2","nodeType":"VariableDeclaration","scope":893,"src":"422:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":887,"name":"bytes4","nodeType":"ElementaryTypeName","src":"422:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":890,"mutability":"mutable","name":"expiration","nameLocation":"461:10:2","nodeType":"VariableDeclaration","scope":893,"src":"453:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":889,"name":"uint256","nodeType":"ElementaryTypeName","src":"453:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"372:103:2"},"returnParameters":{"id":892,"nodeType":"ParameterList","parameters":[],"src":"484:0:2"},"scope":894,"src":"344:141:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":895,"src":"57:430:2"}],"src":"32:456:2"},"id":2},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","exportedSymbols":{"ENSInterface":[974]},"id":975,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":896,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:3"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":974,"linearizedBaseContracts":[974],"name":"ENSInterface","nameLocation":"67:12:3","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":904,"name":"NewOwner","nameLocation":"161:8:3","nodeType":"EventDefinition","parameters":{"id":903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":898,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"186:4:3","nodeType":"VariableDeclaration","scope":904,"src":"170:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":897,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":900,"indexed":true,"mutability":"mutable","name":"label","nameLocation":"208:5:3","nodeType":"VariableDeclaration","scope":904,"src":"192:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":902,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"223:5:3","nodeType":"VariableDeclaration","scope":904,"src":"215:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":901,"name":"address","nodeType":"ElementaryTypeName","src":"215:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"169:60:3"},"src":"155:75:3"},{"anonymous":false,"id":910,"name":"Transfer","nameLocation":"315:8:3","nodeType":"EventDefinition","parameters":{"id":909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":906,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"340:4:3","nodeType":"VariableDeclaration","scope":910,"src":"324:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":905,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":908,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"354:5:3","nodeType":"VariableDeclaration","scope":910,"src":"346:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":907,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"323:37:3"},"src":"309:52:3"},{"anonymous":false,"id":916,"name":"NewResolver","nameLocation":"421:11:3","nodeType":"EventDefinition","parameters":{"id":915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":912,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"449:4:3","nodeType":"VariableDeclaration","scope":916,"src":"433:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":911,"name":"bytes32","nodeType":"ElementaryTypeName","src":"433:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":914,"indexed":false,"mutability":"mutable","name":"resolver","nameLocation":"463:8:3","nodeType":"VariableDeclaration","scope":916,"src":"455:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":913,"name":"address","nodeType":"ElementaryTypeName","src":"455:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"432:40:3"},"src":"415:58:3"},{"anonymous":false,"id":922,"name":"NewTTL","nameLocation":"526:6:3","nodeType":"EventDefinition","parameters":{"id":921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":918,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"549:4:3","nodeType":"VariableDeclaration","scope":922,"src":"533:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"533:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":920,"indexed":false,"mutability":"mutable","name":"ttl","nameLocation":"562:3:3","nodeType":"VariableDeclaration","scope":922,"src":"555:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":919,"name":"uint64","nodeType":"ElementaryTypeName","src":"555:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"532:34:3"},"src":"520:47:3"},{"functionSelector":"06ab5923","id":931,"implemented":false,"kind":"function","modifiers":[],"name":"setSubnodeOwner","nameLocation":"580:15:3","nodeType":"FunctionDefinition","parameters":{"id":929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":924,"mutability":"mutable","name":"node","nameLocation":"609:4:3","nodeType":"VariableDeclaration","scope":931,"src":"601:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"601:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":926,"mutability":"mutable","name":"label","nameLocation":"627:5:3","nodeType":"VariableDeclaration","scope":931,"src":"619:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":925,"name":"bytes32","nodeType":"ElementaryTypeName","src":"619:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":928,"mutability":"mutable","name":"owner","nameLocation":"646:5:3","nodeType":"VariableDeclaration","scope":931,"src":"638:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":927,"name":"address","nodeType":"ElementaryTypeName","src":"638:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"595:60:3"},"returnParameters":{"id":930,"nodeType":"ParameterList","parameters":[],"src":"664:0:3"},"scope":974,"src":"571:94:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1896f70a","id":938,"implemented":false,"kind":"function","modifiers":[],"name":"setResolver","nameLocation":"678:11:3","nodeType":"FunctionDefinition","parameters":{"id":936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":933,"mutability":"mutable","name":"node","nameLocation":"698:4:3","nodeType":"VariableDeclaration","scope":938,"src":"690:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"690:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":935,"mutability":"mutable","name":"resolver","nameLocation":"712:8:3","nodeType":"VariableDeclaration","scope":938,"src":"704:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":934,"name":"address","nodeType":"ElementaryTypeName","src":"704:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"689:32:3"},"returnParameters":{"id":937,"nodeType":"ParameterList","parameters":[],"src":"730:0:3"},"scope":974,"src":"669:62:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5b0fc9c3","id":945,"implemented":false,"kind":"function","modifiers":[],"name":"setOwner","nameLocation":"744:8:3","nodeType":"FunctionDefinition","parameters":{"id":943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":940,"mutability":"mutable","name":"node","nameLocation":"761:4:3","nodeType":"VariableDeclaration","scope":945,"src":"753:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":939,"name":"bytes32","nodeType":"ElementaryTypeName","src":"753:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":942,"mutability":"mutable","name":"owner","nameLocation":"775:5:3","nodeType":"VariableDeclaration","scope":945,"src":"767:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":941,"name":"address","nodeType":"ElementaryTypeName","src":"767:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:29:3"},"returnParameters":{"id":944,"nodeType":"ParameterList","parameters":[],"src":"790:0:3"},"scope":974,"src":"735:56:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"14ab9038","id":952,"implemented":false,"kind":"function","modifiers":[],"name":"setTTL","nameLocation":"804:6:3","nodeType":"FunctionDefinition","parameters":{"id":950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":947,"mutability":"mutable","name":"node","nameLocation":"819:4:3","nodeType":"VariableDeclaration","scope":952,"src":"811:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"811:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":949,"mutability":"mutable","name":"ttl","nameLocation":"832:3:3","nodeType":"VariableDeclaration","scope":952,"src":"825:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":948,"name":"uint64","nodeType":"ElementaryTypeName","src":"825:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"810:26:3"},"returnParameters":{"id":951,"nodeType":"ParameterList","parameters":[],"src":"845:0:3"},"scope":974,"src":"795:51:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"02571be3","id":959,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"859:5:3","nodeType":"FunctionDefinition","parameters":{"id":955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":954,"mutability":"mutable","name":"node","nameLocation":"873:4:3","nodeType":"VariableDeclaration","scope":959,"src":"865:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":953,"name":"bytes32","nodeType":"ElementaryTypeName","src":"865:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"864:14:3"},"returnParameters":{"id":958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":959,"src":"902:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":956,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"901:9:3"},"scope":974,"src":"850:61:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0178b8bf","id":966,"implemented":false,"kind":"function","modifiers":[],"name":"resolver","nameLocation":"924:8:3","nodeType":"FunctionDefinition","parameters":{"id":962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":961,"mutability":"mutable","name":"node","nameLocation":"941:4:3","nodeType":"VariableDeclaration","scope":966,"src":"933:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"933:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"932:14:3"},"returnParameters":{"id":965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":966,"src":"970:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":963,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"969:9:3"},"scope":974,"src":"915:64:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"16a25cbd","id":973,"implemented":false,"kind":"function","modifiers":[],"name":"ttl","nameLocation":"992:3:3","nodeType":"FunctionDefinition","parameters":{"id":969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":968,"mutability":"mutable","name":"node","nameLocation":"1004:4:3","nodeType":"VariableDeclaration","scope":973,"src":"996:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"996:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"995:14:3"},"returnParameters":{"id":972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":971,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":973,"src":"1033:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":970,"name":"uint64","nodeType":"ElementaryTypeName","src":"1033:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1032:8:3"},"scope":974,"src":"983:58:3","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":975,"src":"57:986:3"}],"src":"32:1012:3"},"id":3},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","exportedSymbols":{"LinkTokenInterface":[1069]},"id":1070,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":976,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:4"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1069,"linearizedBaseContracts":[1069],"name":"LinkTokenInterface","nameLocation":"67:18:4","nodeType":"ContractDefinition","nodes":[{"functionSelector":"dd62ed3e","id":985,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"99:9:4","nodeType":"FunctionDefinition","parameters":{"id":981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":978,"mutability":"mutable","name":"owner","nameLocation":"117:5:4","nodeType":"VariableDeclaration","scope":985,"src":"109:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":977,"name":"address","nodeType":"ElementaryTypeName","src":"109:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":980,"mutability":"mutable","name":"spender","nameLocation":"132:7:4","nodeType":"VariableDeclaration","scope":985,"src":"124:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":979,"name":"address","nodeType":"ElementaryTypeName","src":"124:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"108:32:4"},"returnParameters":{"id":984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":983,"mutability":"mutable","name":"remaining","nameLocation":"172:9:4","nodeType":"VariableDeclaration","scope":985,"src":"164:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":982,"name":"uint256","nodeType":"ElementaryTypeName","src":"164:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"163:19:4"},"scope":1069,"src":"90:93:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":994,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"196:7:4","nodeType":"FunctionDefinition","parameters":{"id":990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":987,"mutability":"mutable","name":"spender","nameLocation":"212:7:4","nodeType":"VariableDeclaration","scope":994,"src":"204:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":986,"name":"address","nodeType":"ElementaryTypeName","src":"204:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":989,"mutability":"mutable","name":"value","nameLocation":"229:5:4","nodeType":"VariableDeclaration","scope":994,"src":"221:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":988,"name":"uint256","nodeType":"ElementaryTypeName","src":"221:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"203:32:4"},"returnParameters":{"id":993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":992,"mutability":"mutable","name":"success","nameLocation":"259:7:4","nodeType":"VariableDeclaration","scope":994,"src":"254:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":991,"name":"bool","nodeType":"ElementaryTypeName","src":"254:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"253:14:4"},"scope":1069,"src":"187:81:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":1001,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"281:9:4","nodeType":"FunctionDefinition","parameters":{"id":997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":996,"mutability":"mutable","name":"owner","nameLocation":"299:5:4","nodeType":"VariableDeclaration","scope":1001,"src":"291:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":995,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"290:15:4"},"returnParameters":{"id":1000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":999,"mutability":"mutable","name":"balance","nameLocation":"337:7:4","nodeType":"VariableDeclaration","scope":1001,"src":"329:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":998,"name":"uint256","nodeType":"ElementaryTypeName","src":"329:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"328:17:4"},"scope":1069,"src":"272:74:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":1006,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"359:8:4","nodeType":"FunctionDefinition","parameters":{"id":1002,"nodeType":"ParameterList","parameters":[],"src":"367:2:4"},"returnParameters":{"id":1005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1004,"mutability":"mutable","name":"decimalPlaces","nameLocation":"399:13:4","nodeType":"VariableDeclaration","scope":1006,"src":"393:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1003,"name":"uint8","nodeType":"ElementaryTypeName","src":"393:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"392:21:4"},"scope":1069,"src":"350:64:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"66188463","id":1015,"implemented":false,"kind":"function","modifiers":[],"name":"decreaseApproval","nameLocation":"427:16:4","nodeType":"FunctionDefinition","parameters":{"id":1011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1008,"mutability":"mutable","name":"spender","nameLocation":"452:7:4","nodeType":"VariableDeclaration","scope":1015,"src":"444:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1007,"name":"address","nodeType":"ElementaryTypeName","src":"444:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1010,"mutability":"mutable","name":"addedValue","nameLocation":"469:10:4","nodeType":"VariableDeclaration","scope":1015,"src":"461:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1009,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"443:37:4"},"returnParameters":{"id":1014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1013,"mutability":"mutable","name":"success","nameLocation":"504:7:4","nodeType":"VariableDeclaration","scope":1015,"src":"499:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1012,"name":"bool","nodeType":"ElementaryTypeName","src":"499:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"498:14:4"},"scope":1069,"src":"418:95:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d73dd623","id":1022,"implemented":false,"kind":"function","modifiers":[],"name":"increaseApproval","nameLocation":"526:16:4","nodeType":"FunctionDefinition","parameters":{"id":1020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1017,"mutability":"mutable","name":"spender","nameLocation":"551:7:4","nodeType":"VariableDeclaration","scope":1022,"src":"543:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1016,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1019,"mutability":"mutable","name":"subtractedValue","nameLocation":"568:15:4","nodeType":"VariableDeclaration","scope":1022,"src":"560:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1018,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"542:42:4"},"returnParameters":{"id":1021,"nodeType":"ParameterList","parameters":[],"src":"593:0:4"},"scope":1069,"src":"517:77:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"06fdde03","id":1027,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"607:4:4","nodeType":"FunctionDefinition","parameters":{"id":1023,"nodeType":"ParameterList","parameters":[],"src":"611:2:4"},"returnParameters":{"id":1026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1025,"mutability":"mutable","name":"tokenName","nameLocation":"651:9:4","nodeType":"VariableDeclaration","scope":1027,"src":"637:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1024,"name":"string","nodeType":"ElementaryTypeName","src":"637:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"636:25:4"},"scope":1069,"src":"598:64:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":1032,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"675:6:4","nodeType":"FunctionDefinition","parameters":{"id":1028,"nodeType":"ParameterList","parameters":[],"src":"681:2:4"},"returnParameters":{"id":1031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1030,"mutability":"mutable","name":"tokenSymbol","nameLocation":"721:11:4","nodeType":"VariableDeclaration","scope":1032,"src":"707:25:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1029,"name":"string","nodeType":"ElementaryTypeName","src":"707:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"706:27:4"},"scope":1069,"src":"666:68:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":1037,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"747:11:4","nodeType":"FunctionDefinition","parameters":{"id":1033,"nodeType":"ParameterList","parameters":[],"src":"758:2:4"},"returnParameters":{"id":1036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1035,"mutability":"mutable","name":"totalTokensIssued","nameLocation":"792:17:4","nodeType":"VariableDeclaration","scope":1037,"src":"784:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1034,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"783:27:4"},"scope":1069,"src":"738:73:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":1046,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"824:8:4","nodeType":"FunctionDefinition","parameters":{"id":1042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1039,"mutability":"mutable","name":"to","nameLocation":"841:2:4","nodeType":"VariableDeclaration","scope":1046,"src":"833:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1038,"name":"address","nodeType":"ElementaryTypeName","src":"833:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1041,"mutability":"mutable","name":"value","nameLocation":"853:5:4","nodeType":"VariableDeclaration","scope":1046,"src":"845:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1040,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"832:27:4"},"returnParameters":{"id":1045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1044,"mutability":"mutable","name":"success","nameLocation":"883:7:4","nodeType":"VariableDeclaration","scope":1046,"src":"878:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1043,"name":"bool","nodeType":"ElementaryTypeName","src":"878:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"877:14:4"},"scope":1069,"src":"815:77:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4000aea0","id":1057,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"905:15:4","nodeType":"FunctionDefinition","parameters":{"id":1053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1048,"mutability":"mutable","name":"to","nameLocation":"934:2:4","nodeType":"VariableDeclaration","scope":1057,"src":"926:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1047,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1050,"mutability":"mutable","name":"value","nameLocation":"950:5:4","nodeType":"VariableDeclaration","scope":1057,"src":"942:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1049,"name":"uint256","nodeType":"ElementaryTypeName","src":"942:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1052,"mutability":"mutable","name":"data","nameLocation":"976:4:4","nodeType":"VariableDeclaration","scope":1057,"src":"961:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1051,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"920:64:4"},"returnParameters":{"id":1056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1055,"mutability":"mutable","name":"success","nameLocation":"1008:7:4","nodeType":"VariableDeclaration","scope":1057,"src":"1003:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1054,"name":"bool","nodeType":"ElementaryTypeName","src":"1003:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1002:14:4"},"scope":1069,"src":"896:121:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":1068,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1030:12:4","nodeType":"FunctionDefinition","parameters":{"id":1064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1059,"mutability":"mutable","name":"from","nameLocation":"1056:4:4","nodeType":"VariableDeclaration","scope":1068,"src":"1048:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1058,"name":"address","nodeType":"ElementaryTypeName","src":"1048:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1061,"mutability":"mutable","name":"to","nameLocation":"1074:2:4","nodeType":"VariableDeclaration","scope":1068,"src":"1066:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1060,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1063,"mutability":"mutable","name":"value","nameLocation":"1090:5:4","nodeType":"VariableDeclaration","scope":1068,"src":"1082:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1062,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1042:57:4"},"returnParameters":{"id":1067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1066,"mutability":"mutable","name":"success","nameLocation":"1123:7:4","nodeType":"VariableDeclaration","scope":1068,"src":"1118:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1065,"name":"bool","nodeType":"ElementaryTypeName","src":"1118:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1117:14:4"},"scope":1069,"src":"1021:111:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1070,"src":"57:1077:4"}],"src":"32:1103:4"},"id":4},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[894],"OperatorInterface":[1149],"OracleInterface":[1188]},"id":1150,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1071,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:5"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","file":"./OracleInterface.sol","id":1072,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1150,"sourceUnit":1189,"src":"57:31:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./ChainlinkRequestInterface.sol","id":1073,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1150,"sourceUnit":895,"src":"89:41:5","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1074,"name":"OracleInterface","nodeType":"IdentifierPath","referencedDeclaration":1188,"src":"163:15:5"},"id":1075,"nodeType":"InheritanceSpecifier","src":"163:15:5"},{"baseName":{"id":1076,"name":"ChainlinkRequestInterface","nodeType":"IdentifierPath","referencedDeclaration":894,"src":"180:25:5"},"id":1077,"nodeType":"InheritanceSpecifier","src":"180:25:5"}],"contractDependencies":[894,1188],"contractKind":"interface","fullyImplemented":false,"id":1149,"linearizedBaseContracts":[1149,894,1188],"name":"OperatorInterface","nameLocation":"142:17:5","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3c6d41b9","id":1094,"implemented":false,"kind":"function","modifiers":[],"name":"operatorRequest","nameLocation":"219:15:5","nodeType":"FunctionDefinition","parameters":{"id":1092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1079,"mutability":"mutable","name":"sender","nameLocation":"248:6:5","nodeType":"VariableDeclaration","scope":1094,"src":"240:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1078,"name":"address","nodeType":"ElementaryTypeName","src":"240:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1081,"mutability":"mutable","name":"payment","nameLocation":"268:7:5","nodeType":"VariableDeclaration","scope":1094,"src":"260:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1080,"name":"uint256","nodeType":"ElementaryTypeName","src":"260:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1083,"mutability":"mutable","name":"specId","nameLocation":"289:6:5","nodeType":"VariableDeclaration","scope":1094,"src":"281:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"281:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1085,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"308:18:5","nodeType":"VariableDeclaration","scope":1094,"src":"301:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1084,"name":"bytes4","nodeType":"ElementaryTypeName","src":"301:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1087,"mutability":"mutable","name":"nonce","nameLocation":"340:5:5","nodeType":"VariableDeclaration","scope":1094,"src":"332:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1086,"name":"uint256","nodeType":"ElementaryTypeName","src":"332:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1089,"mutability":"mutable","name":"dataVersion","nameLocation":"359:11:5","nodeType":"VariableDeclaration","scope":1094,"src":"351:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1088,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1091,"mutability":"mutable","name":"data","nameLocation":"391:4:5","nodeType":"VariableDeclaration","scope":1094,"src":"376:19:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1090,"name":"bytes","nodeType":"ElementaryTypeName","src":"376:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"234:165:5"},"returnParameters":{"id":1093,"nodeType":"ParameterList","parameters":[],"src":"408:0:5"},"scope":1149,"src":"210:199:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ae0bc76","id":1111,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest2","nameLocation":"422:21:5","nodeType":"FunctionDefinition","parameters":{"id":1107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1096,"mutability":"mutable","name":"requestId","nameLocation":"457:9:5","nodeType":"VariableDeclaration","scope":1111,"src":"449:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"449:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1098,"mutability":"mutable","name":"payment","nameLocation":"480:7:5","nodeType":"VariableDeclaration","scope":1111,"src":"472:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1097,"name":"uint256","nodeType":"ElementaryTypeName","src":"472:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1100,"mutability":"mutable","name":"callbackAddress","nameLocation":"501:15:5","nodeType":"VariableDeclaration","scope":1111,"src":"493:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1099,"name":"address","nodeType":"ElementaryTypeName","src":"493:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1102,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"529:18:5","nodeType":"VariableDeclaration","scope":1111,"src":"522:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1101,"name":"bytes4","nodeType":"ElementaryTypeName","src":"522:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1104,"mutability":"mutable","name":"expiration","nameLocation":"561:10:5","nodeType":"VariableDeclaration","scope":1111,"src":"553:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1103,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1106,"mutability":"mutable","name":"data","nameLocation":"592:4:5","nodeType":"VariableDeclaration","scope":1111,"src":"577:19:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1105,"name":"bytes","nodeType":"ElementaryTypeName","src":"577:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"443:157:5"},"returnParameters":{"id":1110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1111,"src":"619:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1108,"name":"bool","nodeType":"ElementaryTypeName","src":"619:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"618:6:5"},"scope":1149,"src":"413:212:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"902fc370","id":1122,"implemented":false,"kind":"function","modifiers":[],"name":"ownerTransferAndCall","nameLocation":"638:20:5","nodeType":"FunctionDefinition","parameters":{"id":1118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1113,"mutability":"mutable","name":"to","nameLocation":"672:2:5","nodeType":"VariableDeclaration","scope":1122,"src":"664:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1112,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1115,"mutability":"mutable","name":"value","nameLocation":"688:5:5","nodeType":"VariableDeclaration","scope":1122,"src":"680:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1114,"name":"uint256","nodeType":"ElementaryTypeName","src":"680:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1117,"mutability":"mutable","name":"data","nameLocation":"714:4:5","nodeType":"VariableDeclaration","scope":1122,"src":"699:19:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1116,"name":"bytes","nodeType":"ElementaryTypeName","src":"699:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"658:64:5"},"returnParameters":{"id":1121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1120,"mutability":"mutable","name":"success","nameLocation":"746:7:5","nodeType":"VariableDeclaration","scope":1122,"src":"741:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1119,"name":"bool","nodeType":"ElementaryTypeName","src":"741:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"740:14:5"},"scope":1149,"src":"629:126:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6bd59ec0","id":1131,"implemented":false,"kind":"function","modifiers":[],"name":"distributeFunds","nameLocation":"768:15:5","nodeType":"FunctionDefinition","parameters":{"id":1129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1125,"mutability":"mutable","name":"receivers","nameLocation":"811:9:5","nodeType":"VariableDeclaration","scope":1131,"src":"784:36:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_calldata_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":1123,"name":"address","nodeType":"ElementaryTypeName","src":"784:15:5","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1124,"nodeType":"ArrayTypeName","src":"784:17:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"},{"constant":false,"id":1128,"mutability":"mutable","name":"amounts","nameLocation":"841:7:5","nodeType":"VariableDeclaration","scope":1131,"src":"822:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1126,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1127,"nodeType":"ArrayTypeName","src":"822:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"783:66:5"},"returnParameters":{"id":1130,"nodeType":"ParameterList","parameters":[],"src":"866:0:5"},"scope":1149,"src":"759:108:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"2408afaa","id":1137,"implemented":false,"kind":"function","modifiers":[],"name":"getAuthorizedSenders","nameLocation":"880:20:5","nodeType":"FunctionDefinition","parameters":{"id":1132,"nodeType":"ParameterList","parameters":[],"src":"900:2:5"},"returnParameters":{"id":1136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1137,"src":"921:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1133,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1134,"nodeType":"ArrayTypeName","src":"921:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"920:18:5"},"scope":1149,"src":"871:68:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ee56997b","id":1143,"implemented":false,"kind":"function","modifiers":[],"name":"setAuthorizedSenders","nameLocation":"952:20:5","nodeType":"FunctionDefinition","parameters":{"id":1141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1140,"mutability":"mutable","name":"senders","nameLocation":"992:7:5","nodeType":"VariableDeclaration","scope":1143,"src":"973:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1138,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1139,"nodeType":"ArrayTypeName","src":"973:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"972:28:5"},"returnParameters":{"id":1142,"nodeType":"ParameterList","parameters":[],"src":"1009:0:5"},"scope":1149,"src":"943:67:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a0042526","id":1148,"implemented":false,"kind":"function","modifiers":[],"name":"getForwarder","nameLocation":"1023:12:5","nodeType":"FunctionDefinition","parameters":{"id":1144,"nodeType":"ParameterList","parameters":[],"src":"1035:2:5"},"returnParameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1148,"src":"1056:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1055:9:5"},"scope":1149,"src":"1014:51:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1150,"src":"132:935:5"}],"src":"32:1036:5"},"id":5},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","exportedSymbols":{"OracleInterface":[1188]},"id":1189,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1151,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:6"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1188,"linearizedBaseContracts":[1188],"name":"OracleInterface","nameLocation":"67:15:6","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4ab0d190","id":1168,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest","nameLocation":"96:20:6","nodeType":"FunctionDefinition","parameters":{"id":1164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"requestId","nameLocation":"130:9:6","nodeType":"VariableDeclaration","scope":1168,"src":"122:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1155,"mutability":"mutable","name":"payment","nameLocation":"153:7:6","nodeType":"VariableDeclaration","scope":1168,"src":"145:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1154,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1157,"mutability":"mutable","name":"callbackAddress","nameLocation":"174:15:6","nodeType":"VariableDeclaration","scope":1168,"src":"166:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1156,"name":"address","nodeType":"ElementaryTypeName","src":"166:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1159,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"202:18:6","nodeType":"VariableDeclaration","scope":1168,"src":"195:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1158,"name":"bytes4","nodeType":"ElementaryTypeName","src":"195:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1161,"mutability":"mutable","name":"expiration","nameLocation":"234:10:6","nodeType":"VariableDeclaration","scope":1168,"src":"226:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1160,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1163,"mutability":"mutable","name":"data","nameLocation":"258:4:6","nodeType":"VariableDeclaration","scope":1168,"src":"250:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"116:150:6"},"returnParameters":{"id":1167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1166,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1168,"src":"285:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1165,"name":"bool","nodeType":"ElementaryTypeName","src":"285:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"284:6:6"},"scope":1188,"src":"87:204:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fa00763a","id":1175,"implemented":false,"kind":"function","modifiers":[],"name":"isAuthorizedSender","nameLocation":"304:18:6","nodeType":"FunctionDefinition","parameters":{"id":1171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1170,"mutability":"mutable","name":"node","nameLocation":"331:4:6","nodeType":"VariableDeclaration","scope":1175,"src":"323:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1169,"name":"address","nodeType":"ElementaryTypeName","src":"323:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322:14:6"},"returnParameters":{"id":1174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1175,"src":"360:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1172,"name":"bool","nodeType":"ElementaryTypeName","src":"360:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"359:6:6"},"scope":1188,"src":"295:71:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f3fef3a3","id":1182,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"379:8:6","nodeType":"FunctionDefinition","parameters":{"id":1180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1177,"mutability":"mutable","name":"recipient","nameLocation":"396:9:6","nodeType":"VariableDeclaration","scope":1182,"src":"388:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1176,"name":"address","nodeType":"ElementaryTypeName","src":"388:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1179,"mutability":"mutable","name":"amount","nameLocation":"415:6:6","nodeType":"VariableDeclaration","scope":1182,"src":"407:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1178,"name":"uint256","nodeType":"ElementaryTypeName","src":"407:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"387:35:6"},"returnParameters":{"id":1181,"nodeType":"ParameterList","parameters":[],"src":"431:0:6"},"scope":1188,"src":"370:62:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"50188301","id":1187,"implemented":false,"kind":"function","modifiers":[],"name":"withdrawable","nameLocation":"445:12:6","nodeType":"FunctionDefinition","parameters":{"id":1183,"nodeType":"ParameterList","parameters":[],"src":"457:2:6"},"returnParameters":{"id":1186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1185,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1187,"src":"483:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1184,"name":"uint256","nodeType":"ElementaryTypeName","src":"483:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"482:9:6"},"scope":1188,"src":"436:56:6","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1189,"src":"57:437:6"}],"src":"32:463:6"},"id":6},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","exportedSymbols":{"PointerInterface":[1196]},"id":1197,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1190,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:7"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1196,"linearizedBaseContracts":[1196],"name":"PointerInterface","nameLocation":"67:16:7","nodeType":"ContractDefinition","nodes":[{"functionSelector":"38cc4831","id":1195,"implemented":false,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"97:10:7","nodeType":"FunctionDefinition","parameters":{"id":1191,"nodeType":"ParameterList","parameters":[],"src":"107:2:7"},"returnParameters":{"id":1194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1195,"src":"133:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1192,"name":"address","nodeType":"ElementaryTypeName","src":"133:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"132:9:7"},"scope":1196,"src":"88:54:7","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1197,"src":"57:87:7"}],"src":"32:113:7"},"id":7},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","exportedSymbols":{"BufferChainlink":[1718]},"id":1719,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1198,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:8"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":1199,"nodeType":"StructuredDocumentation","src":"57:383:8","text":" @dev A library for working with mutable byte buffers in Solidity.\n Byte buffers are mutable and expandable, and provide a variety of primitives\n for writing to them. At any time you can fetch a bytes object containing the\n current contents of the buffer. The bytes object should not be stored between\n operations, as it may change due to resizing of the buffer."},"fullyImplemented":true,"id":1718,"linearizedBaseContracts":[1718],"name":"BufferChainlink","nameLocation":"449:15:8","nodeType":"ContractDefinition","nodes":[{"canonicalName":"BufferChainlink.buffer","id":1204,"members":[{"constant":false,"id":1201,"mutability":"mutable","name":"buf","nameLocation":"743:3:8","nodeType":"VariableDeclaration","scope":1204,"src":"737:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1200,"name":"bytes","nodeType":"ElementaryTypeName","src":"737:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1203,"mutability":"mutable","name":"capacity","nameLocation":"760:8:8","nodeType":"VariableDeclaration","scope":1204,"src":"752:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1202,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"buffer","nameLocation":"724:6:8","nodeType":"StructDefinition","scope":1718,"src":"717:56:8","visibility":"public"},{"body":{"id":1241,"nodeType":"Block","src":"1090:310:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1216,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"1100:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1100:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1117:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1100:18:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1231,"nodeType":"IfStatement","src":"1096:71:8","trueBody":{"id":1230,"nodeType":"Block","src":"1120:47:8","statements":[{"expression":{"id":1228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1221,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"1128:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1140:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1223,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"1146:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1157:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1146:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1226,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1145:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1140:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1128:32:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1229,"nodeType":"ExpressionStatement","src":"1128:32:8"}]}},{"expression":{"id":1236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1232,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"1214:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"1214:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1235,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"1229:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1214:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1237,"nodeType":"ExpressionStatement","src":"1214:23:8"},{"AST":{"nodeType":"YulBlock","src":"1252:128:8","statements":[{"nodeType":"YulVariableDeclaration","src":"1260:22:8","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1277:4:8","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1271:5:8"},"nodeType":"YulFunctionCall","src":"1271:11:8"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"1264:3:8","type":""}]},{"expression":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"1296:3:8"},{"name":"ptr","nodeType":"YulIdentifier","src":"1301:3:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1289:6:8"},"nodeType":"YulFunctionCall","src":"1289:16:8"},"nodeType":"YulExpressionStatement","src":"1289:16:8"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1319:3:8"},{"kind":"number","nodeType":"YulLiteral","src":"1324:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1312:6:8"},"nodeType":"YulFunctionCall","src":"1312:14:8"},"nodeType":"YulExpressionStatement","src":"1312:14:8"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1340:4:8","type":"","value":"0x40"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1350:2:8","type":"","value":"32"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1358:3:8"},{"name":"capacity","nodeType":"YulIdentifier","src":"1363:8:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1354:3:8"},"nodeType":"YulFunctionCall","src":"1354:18:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1346:3:8"},"nodeType":"YulFunctionCall","src":"1346:27:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:8"},"nodeType":"YulFunctionCall","src":"1333:41:8"},"nodeType":"YulExpressionStatement","src":"1333:41:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1208,"isOffset":false,"isSlot":false,"src":"1296:3:8","valueSize":1},{"declaration":1210,"isOffset":false,"isSlot":false,"src":"1363:8:8","valueSize":1}],"id":1238,"nodeType":"InlineAssembly","src":"1243:137:8"},{"expression":{"id":1239,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"1392:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1215,"id":1240,"nodeType":"Return","src":"1385:10:8"}]},"documentation":{"id":1205,"nodeType":"StructuredDocumentation","src":"777:221:8","text":" @dev Initializes a buffer with an initial capacity.\n @param buf The buffer to initialize.\n @param capacity The number of bytes of space to allocate the buffer.\n @return The buffer, for chaining."},"id":1242,"implemented":true,"kind":"function","modifiers":[],"name":"init","nameLocation":"1010:4:8","nodeType":"FunctionDefinition","parameters":{"id":1211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1208,"mutability":"mutable","name":"buf","nameLocation":"1029:3:8","nodeType":"VariableDeclaration","scope":1242,"src":"1015:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1207,"nodeType":"UserDefinedTypeName","pathNode":{"id":1206,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1015:6:8"},"referencedDeclaration":1204,"src":"1015:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1210,"mutability":"mutable","name":"capacity","nameLocation":"1042:8:8","nodeType":"VariableDeclaration","scope":1242,"src":"1034:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1209,"name":"uint256","nodeType":"ElementaryTypeName","src":"1034:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:37:8"},"returnParameters":{"id":1215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1242,"src":"1075:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1213,"nodeType":"UserDefinedTypeName","pathNode":{"id":1212,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1075:6:8"},"referencedDeclaration":1204,"src":"1075:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1074:15:8"},"scope":1718,"src":"1001:399:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1270,"nodeType":"Block","src":"1707:90:8","statements":[{"assignments":[1253],"declarations":[{"constant":false,"id":1253,"mutability":"mutable","name":"buf","nameLocation":"1727:3:8","nodeType":"VariableDeclaration","scope":1270,"src":"1713:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1252,"nodeType":"UserDefinedTypeName","pathNode":{"id":1251,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1713:6:8"},"referencedDeclaration":1204,"src":"1713:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"id":1254,"nodeType":"VariableDeclarationStatement","src":"1713:17:8"},{"expression":{"id":1259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1255,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"1736:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"1736:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1258,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"1746:1:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1736:11:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1260,"nodeType":"ExpressionStatement","src":"1736:11:8"},{"expression":{"id":1266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1261,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"1753:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"1753:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1264,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"1768:1:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1768:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1753:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1267,"nodeType":"ExpressionStatement","src":"1753:23:8"},{"expression":{"id":1268,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"1789:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1250,"id":1269,"nodeType":"Return","src":"1782:10:8"}]},"documentation":{"id":1243,"nodeType":"StructuredDocumentation","src":"1404:227:8","text":" @dev Initializes a new buffer from an existing bytes object.\n Changes to the buffer may mutate the original value.\n @param b The bytes object to initialize the buffer with.\n @return A new buffer."},"id":1271,"implemented":true,"kind":"function","modifiers":[],"name":"fromBytes","nameLocation":"1643:9:8","nodeType":"FunctionDefinition","parameters":{"id":1246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1245,"mutability":"mutable","name":"b","nameLocation":"1666:1:8","nodeType":"VariableDeclaration","scope":1271,"src":"1653:14:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1244,"name":"bytes","nodeType":"ElementaryTypeName","src":"1653:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1652:16:8"},"returnParameters":{"id":1250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1271,"src":"1692:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1248,"nodeType":"UserDefinedTypeName","pathNode":{"id":1247,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1692:6:8"},"referencedDeclaration":1204,"src":"1692:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1691:15:8"},"scope":1718,"src":"1634:163:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1294,"nodeType":"Block","src":"1867:90:8","statements":[{"assignments":[1280],"declarations":[{"constant":false,"id":1280,"mutability":"mutable","name":"oldbuf","nameLocation":"1886:6:8","nodeType":"VariableDeclaration","scope":1294,"src":"1873:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1279,"name":"bytes","nodeType":"ElementaryTypeName","src":"1873:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1283,"initialValue":{"expression":{"id":1281,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"1895:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"1895:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1873:29:8"},{"expression":{"arguments":[{"id":1285,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"1913:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1286,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1276,"src":"1918:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1284,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1242,"src":"1908:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1908:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1288,"nodeType":"ExpressionStatement","src":"1908:19:8"},{"expression":{"arguments":[{"id":1290,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"1940:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1291,"name":"oldbuf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1280,"src":"1945:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1289,"name":"append","nodeType":"Identifier","overloadedDeclarations":[1438,1461],"referencedDeclaration":1461,"src":"1933:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":1292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1933:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1293,"nodeType":"ExpressionStatement","src":"1933:19:8"}]},"id":1295,"implemented":true,"kind":"function","modifiers":[],"name":"resize","nameLocation":"1810:6:8","nodeType":"FunctionDefinition","parameters":{"id":1277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1274,"mutability":"mutable","name":"buf","nameLocation":"1831:3:8","nodeType":"VariableDeclaration","scope":1295,"src":"1817:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1273,"nodeType":"UserDefinedTypeName","pathNode":{"id":1272,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1817:6:8"},"referencedDeclaration":1204,"src":"1817:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1276,"mutability":"mutable","name":"capacity","nameLocation":"1844:8:8","nodeType":"VariableDeclaration","scope":1295,"src":"1836:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1275,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1816:37:8"},"returnParameters":{"id":1278,"nodeType":"ParameterList","parameters":[],"src":"1867:0:8"},"scope":1718,"src":"1801:156:8","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1313,"nodeType":"Block","src":"2027:58:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1304,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"2037:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1305,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"2041:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2037:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1310,"nodeType":"IfStatement","src":"2033:34:8","trueBody":{"id":1309,"nodeType":"Block","src":"2044:23:8","statements":[{"expression":{"id":1307,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"2059:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1303,"id":1308,"nodeType":"Return","src":"2052:8:8"}]}},{"expression":{"id":1311,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"2079:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1303,"id":1312,"nodeType":"Return","src":"2072:8:8"}]},"id":1314,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"1970:3:8","nodeType":"FunctionDefinition","parameters":{"id":1300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1297,"mutability":"mutable","name":"a","nameLocation":"1982:1:8","nodeType":"VariableDeclaration","scope":1314,"src":"1974:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1296,"name":"uint256","nodeType":"ElementaryTypeName","src":"1974:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1299,"mutability":"mutable","name":"b","nameLocation":"1993:1:8","nodeType":"VariableDeclaration","scope":1314,"src":"1985:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1298,"name":"uint256","nodeType":"ElementaryTypeName","src":"1985:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1973:22:8"},"returnParameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1302,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1314,"src":"2018:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1301,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2017:9:8"},"scope":1718,"src":"1961:124:8","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1327,"nodeType":"Block","src":"2300:97:8","statements":[{"AST":{"nodeType":"YulBlock","src":"2315:62:8","statements":[{"nodeType":"YulVariableDeclaration","src":"2323:24:8","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"2343:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2337:5:8"},"nodeType":"YulFunctionCall","src":"2337:10:8"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"2327:6:8","type":""}]},{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"2361:6:8"},{"kind":"number","nodeType":"YulLiteral","src":"2369:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2354:6:8"},"nodeType":"YulFunctionCall","src":"2354:17:8"},"nodeType":"YulExpressionStatement","src":"2354:17:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1318,"isOffset":false,"isSlot":false,"src":"2343:3:8","valueSize":1}],"id":1324,"nodeType":"InlineAssembly","src":"2306:71:8"},{"expression":{"id":1325,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"2389:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1323,"id":1326,"nodeType":"Return","src":"2382:10:8"}]},"documentation":{"id":1315,"nodeType":"StructuredDocumentation","src":"2089:133:8","text":" @dev Sets buffer length to 0.\n @param buf The buffer to truncate.\n @return The original buffer, for chaining.."},"id":1328,"implemented":true,"kind":"function","modifiers":[],"name":"truncate","nameLocation":"2234:8:8","nodeType":"FunctionDefinition","parameters":{"id":1319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1318,"mutability":"mutable","name":"buf","nameLocation":"2257:3:8","nodeType":"VariableDeclaration","scope":1328,"src":"2243:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1317,"nodeType":"UserDefinedTypeName","pathNode":{"id":1316,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2243:6:8"},"referencedDeclaration":1204,"src":"2243:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2242:19:8"},"returnParameters":{"id":1323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1328,"src":"2285:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1321,"nodeType":"UserDefinedTypeName","pathNode":{"id":1320,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2285:6:8"},"referencedDeclaration":1204,"src":"2285:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2284:15:8"},"scope":1718,"src":"2225:172:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1413,"nodeType":"Block","src":"2882:1073:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1345,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"2896:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":1346,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1336,"src":"2903:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2903:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2896:18:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1344,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2888:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2888:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1350,"nodeType":"ExpressionStatement","src":"2888:27:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1351,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"2926:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1352,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"2932:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1354,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2938:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"2938:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:24:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1371,"nodeType":"IfStatement","src":"2922:90:8","trueBody":{"id":1370,"nodeType":"Block","src":"2952:60:8","statements":[{"expression":{"arguments":[{"id":1358,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2967:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":1360,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2976:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"2976:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1362,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"2990:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1363,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"2996:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2990:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1359,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1314,"src":"2972:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2972:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3003:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2972:32:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1357,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1295,"src":"2960:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2960:45:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1369,"nodeType":"ExpressionStatement","src":"2960:45:8"}]}},{"assignments":[1373],"declarations":[{"constant":false,"id":1373,"mutability":"mutable","name":"dest","nameLocation":"3026:4:8","nodeType":"VariableDeclaration","scope":1413,"src":"3018:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1372,"name":"uint256","nodeType":"ElementaryTypeName","src":"3018:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1374,"nodeType":"VariableDeclarationStatement","src":"3018:12:8"},{"assignments":[1376],"declarations":[{"constant":false,"id":1376,"mutability":"mutable","name":"src","nameLocation":"3044:3:8","nodeType":"VariableDeclaration","scope":1413,"src":"3036:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1375,"name":"uint256","nodeType":"ElementaryTypeName","src":"3036:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1377,"nodeType":"VariableDeclarationStatement","src":"3036:11:8"},{"AST":{"nodeType":"YulBlock","src":"3062:430:8","statements":[{"nodeType":"YulVariableDeclaration","src":"3113:24:8","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"3133:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3127:5:8"},"nodeType":"YulFunctionCall","src":"3127:10:8"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"3117:6:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3184:27:8","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3204:6:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3198:5:8"},"nodeType":"YulFunctionCall","src":"3198:13:8"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"3188:6:8","type":""}]},{"nodeType":"YulAssignment","src":"3291:33:8","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3307:6:8"},{"kind":"number","nodeType":"YulLiteral","src":"3315:2:8","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3303:3:8"},"nodeType":"YulFunctionCall","src":"3303:15:8"},{"name":"off","nodeType":"YulIdentifier","src":"3320:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3299:3:8"},"nodeType":"YulFunctionCall","src":"3299:25:8"},"variableNames":[{"name":"dest","nodeType":"YulIdentifier","src":"3291:4:8"}]},{"body":{"nodeType":"YulBlock","src":"3412:47:8","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3429:6:8"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3441:3:8"},{"name":"off","nodeType":"YulIdentifier","src":"3446:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3437:3:8"},"nodeType":"YulFunctionCall","src":"3437:13:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3422:6:8"},"nodeType":"YulFunctionCall","src":"3422:29:8"},"nodeType":"YulExpressionStatement","src":"3422:29:8"}]},"condition":{"arguments":[{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3393:3:8"},{"name":"off","nodeType":"YulIdentifier","src":"3398:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3389:3:8"},"nodeType":"YulFunctionCall","src":"3389:13:8"},{"name":"buflen","nodeType":"YulIdentifier","src":"3404:6:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3386:2:8"},"nodeType":"YulFunctionCall","src":"3386:25:8"},"nodeType":"YulIf","src":"3383:2:8"},{"nodeType":"YulAssignment","src":"3466:20:8","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3477:4:8"},{"kind":"number","nodeType":"YulLiteral","src":"3483:2:8","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3473:3:8"},"nodeType":"YulFunctionCall","src":"3473:13:8"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"3466:3:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1332,"isOffset":false,"isSlot":false,"src":"3133:3:8","valueSize":1},{"declaration":1336,"isOffset":false,"isSlot":false,"src":"3477:4:8","valueSize":1},{"declaration":1373,"isOffset":false,"isSlot":false,"src":"3291:4:8","valueSize":1},{"declaration":1338,"isOffset":false,"isSlot":false,"src":"3393:3:8","valueSize":1},{"declaration":1338,"isOffset":false,"isSlot":false,"src":"3441:3:8","valueSize":1},{"declaration":1334,"isOffset":false,"isSlot":false,"src":"3320:3:8","valueSize":1},{"declaration":1334,"isOffset":false,"isSlot":false,"src":"3398:3:8","valueSize":1},{"declaration":1334,"isOffset":false,"isSlot":false,"src":"3446:3:8","valueSize":1},{"declaration":1376,"isOffset":false,"isSlot":false,"src":"3466:3:8","valueSize":1}],"id":1378,"nodeType":"InlineAssembly","src":"3053:439:8"},{"body":{"id":1395,"nodeType":"Block","src":"3573:100:8","statements":[{"AST":{"nodeType":"YulBlock","src":"3590:42:8","statements":[{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3607:4:8"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3619:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3613:5:8"},"nodeType":"YulFunctionCall","src":"3613:10:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3600:6:8"},"nodeType":"YulFunctionCall","src":"3600:24:8"},"nodeType":"YulExpressionStatement","src":"3600:24:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1373,"isOffset":false,"isSlot":false,"src":"3607:4:8","valueSize":1},{"declaration":1376,"isOffset":false,"isSlot":false,"src":"3619:3:8","valueSize":1}],"id":1386,"nodeType":"InlineAssembly","src":"3581:51:8"},{"expression":{"id":1389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1387,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1373,"src":"3639:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3647:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3639:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1390,"nodeType":"ExpressionStatement","src":"3639:10:8"},{"expression":{"id":1393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1391,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"3657:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3664:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3657:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1394,"nodeType":"ExpressionStatement","src":"3657:9:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1379,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"3551:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":1380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3558:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3551:9:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1396,"loopExpression":{"expression":{"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1382,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"3562:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":1383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3569:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3562:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1385,"nodeType":"ExpressionStatement","src":"3562:9:8"},"nodeType":"ForStatement","src":"3544:129:8"},{"id":1410,"nodeType":"UncheckedBlock","src":"3707:227:8","statements":[{"assignments":[1398],"declarations":[{"constant":false,"id":1398,"mutability":"mutable","name":"mask","nameLocation":"3733:4:8","nodeType":"VariableDeclaration","scope":1410,"src":"3725:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1397,"name":"uint256","nodeType":"ElementaryTypeName","src":"3725:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1408,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3741:3:8","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3747:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1401,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"3752:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3747:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1403,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3746:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3741:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3740:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3760:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3740:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3725:36:8"},{"AST":{"nodeType":"YulBlock","src":"3778:150:8","statements":[{"nodeType":"YulVariableDeclaration","src":"3788:41:8","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3813:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3807:5:8"},"nodeType":"YulFunctionCall","src":"3807:10:8"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"3823:4:8"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3819:3:8"},"nodeType":"YulFunctionCall","src":"3819:9:8"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3803:3:8"},"nodeType":"YulFunctionCall","src":"3803:26:8"},"variables":[{"name":"srcpart","nodeType":"YulTypedName","src":"3792:7:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3838:38:8","value":{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3864:4:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3858:5:8"},"nodeType":"YulFunctionCall","src":"3858:11:8"},{"name":"mask","nodeType":"YulIdentifier","src":"3871:4:8"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3854:3:8"},"nodeType":"YulFunctionCall","src":"3854:22:8"},"variables":[{"name":"destpart","nodeType":"YulTypedName","src":"3842:8:8","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3892:4:8"},{"arguments":[{"name":"destpart","nodeType":"YulIdentifier","src":"3901:8:8"},{"name":"srcpart","nodeType":"YulIdentifier","src":"3911:7:8"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3898:2:8"},"nodeType":"YulFunctionCall","src":"3898:21:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3885:6:8"},"nodeType":"YulFunctionCall","src":"3885:35:8"},"nodeType":"YulExpressionStatement","src":"3885:35:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1373,"isOffset":false,"isSlot":false,"src":"3864:4:8","valueSize":1},{"declaration":1373,"isOffset":false,"isSlot":false,"src":"3892:4:8","valueSize":1},{"declaration":1398,"isOffset":false,"isSlot":false,"src":"3823:4:8","valueSize":1},{"declaration":1398,"isOffset":false,"isSlot":false,"src":"3871:4:8","valueSize":1},{"declaration":1376,"isOffset":false,"isSlot":false,"src":"3813:3:8","valueSize":1}],"id":1409,"nodeType":"InlineAssembly","src":"3769:159:8"}]},{"expression":{"id":1411,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"3947:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1343,"id":1412,"nodeType":"Return","src":"3940:10:8"}]},"documentation":{"id":1329,"nodeType":"StructuredDocumentation","src":"2401:341:8","text":" @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The start offset to write to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1414,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"2754:5:8","nodeType":"FunctionDefinition","parameters":{"id":1339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1332,"mutability":"mutable","name":"buf","nameLocation":"2779:3:8","nodeType":"VariableDeclaration","scope":1414,"src":"2765:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1331,"nodeType":"UserDefinedTypeName","pathNode":{"id":1330,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2765:6:8"},"referencedDeclaration":1204,"src":"2765:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1334,"mutability":"mutable","name":"off","nameLocation":"2796:3:8","nodeType":"VariableDeclaration","scope":1414,"src":"2788:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1333,"name":"uint256","nodeType":"ElementaryTypeName","src":"2788:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1336,"mutability":"mutable","name":"data","nameLocation":"2818:4:8","nodeType":"VariableDeclaration","scope":1414,"src":"2805:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1335,"name":"bytes","nodeType":"ElementaryTypeName","src":"2805:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1338,"mutability":"mutable","name":"len","nameLocation":"2836:3:8","nodeType":"VariableDeclaration","scope":1414,"src":"2828:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1337,"name":"uint256","nodeType":"ElementaryTypeName","src":"2828:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2759:84:8"},"returnParameters":{"id":1343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1414,"src":"2867:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1341,"nodeType":"UserDefinedTypeName","pathNode":{"id":1340,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2867:6:8"},"referencedDeclaration":1204,"src":"2867:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2866:15:8"},"scope":1718,"src":"2745:1210:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1437,"nodeType":"Block","src":"4379:55:8","statements":[{"expression":{"arguments":[{"id":1429,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1418,"src":"4398:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1430,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1418,"src":"4403:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"4403:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4403:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1433,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1420,"src":"4419:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1434,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"4425:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1428,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1414,1574],"referencedDeclaration":1414,"src":"4392:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4392:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1427,"id":1436,"nodeType":"Return","src":"4385:44:8"}]},"documentation":{"id":1415,"nodeType":"StructuredDocumentation","src":"3959:296:8","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1438,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4267:6:8","nodeType":"FunctionDefinition","parameters":{"id":1423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1418,"mutability":"mutable","name":"buf","nameLocation":"4293:3:8","nodeType":"VariableDeclaration","scope":1438,"src":"4279:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1417,"nodeType":"UserDefinedTypeName","pathNode":{"id":1416,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"4279:6:8"},"referencedDeclaration":1204,"src":"4279:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1420,"mutability":"mutable","name":"data","nameLocation":"4315:4:8","nodeType":"VariableDeclaration","scope":1438,"src":"4302:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1419,"name":"bytes","nodeType":"ElementaryTypeName","src":"4302:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1422,"mutability":"mutable","name":"len","nameLocation":"4333:3:8","nodeType":"VariableDeclaration","scope":1438,"src":"4325:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1421,"name":"uint256","nodeType":"ElementaryTypeName","src":"4325:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4273:67:8"},"returnParameters":{"id":1427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1438,"src":"4364:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1425,"nodeType":"UserDefinedTypeName","pathNode":{"id":1424,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"4364:6:8"},"referencedDeclaration":1204,"src":"4364:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4363:15:8"},"scope":1718,"src":"4258:176:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1460,"nodeType":"Block","src":"4784:63:8","statements":[{"expression":{"arguments":[{"id":1451,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1442,"src":"4803:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1452,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1442,"src":"4808:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"4808:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4808:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1455,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1444,"src":"4824:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1456,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1444,"src":"4830:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4830:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1450,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1414,1574],"referencedDeclaration":1414,"src":"4797:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4797:45:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1449,"id":1459,"nodeType":"Return","src":"4790:52:8"}]},"documentation":{"id":1439,"nodeType":"StructuredDocumentation","src":"4438:251:8","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1461,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4701:6:8","nodeType":"FunctionDefinition","parameters":{"id":1445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1442,"mutability":"mutable","name":"buf","nameLocation":"4722:3:8","nodeType":"VariableDeclaration","scope":1461,"src":"4708:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1441,"nodeType":"UserDefinedTypeName","pathNode":{"id":1440,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"4708:6:8"},"referencedDeclaration":1204,"src":"4708:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1444,"mutability":"mutable","name":"data","nameLocation":"4740:4:8","nodeType":"VariableDeclaration","scope":1461,"src":"4727:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1443,"name":"bytes","nodeType":"ElementaryTypeName","src":"4727:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4707:38:8"},"returnParameters":{"id":1449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1461,"src":"4769:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1447,"nodeType":"UserDefinedTypeName","pathNode":{"id":1446,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"4769:6:8"},"referencedDeclaration":1204,"src":"4769:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4768:15:8"},"scope":1718,"src":"4692:155:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1492,"nodeType":"Block","src":"5266:521:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1475,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1467,"src":"5276:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":1476,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"5283:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"5283:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5276:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1488,"nodeType":"IfStatement","src":"5272:69:8","trueBody":{"id":1487,"nodeType":"Block","src":"5297:44:8","statements":[{"expression":{"arguments":[{"id":1480,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"5312:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1481,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"5317:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"5317:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5332:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5317:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1479,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1295,"src":"5305:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5305:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1486,"nodeType":"ExpressionStatement","src":"5305:29:8"}]}},{"AST":{"nodeType":"YulBlock","src":"5356:411:8","statements":[{"nodeType":"YulVariableDeclaration","src":"5407:24:8","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"5427:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5421:5:8"},"nodeType":"YulFunctionCall","src":"5421:10:8"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"5411:6:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5478:27:8","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5498:6:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5492:5:8"},"nodeType":"YulFunctionCall","src":"5492:13:8"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"5482:6:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5576:37:8","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5596:6:8"},{"name":"off","nodeType":"YulIdentifier","src":"5604:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5592:3:8"},"nodeType":"YulFunctionCall","src":"5592:16:8"},{"kind":"number","nodeType":"YulLiteral","src":"5610:2:8","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5588:3:8"},"nodeType":"YulFunctionCall","src":"5588:25:8"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"5580:4:8","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"5628:4:8"},{"name":"data","nodeType":"YulIdentifier","src":"5634:4:8"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"5620:7:8"},"nodeType":"YulFunctionCall","src":"5620:19:8"},"nodeType":"YulExpressionStatement","src":"5620:19:8"},{"body":{"nodeType":"YulBlock","src":"5713:48:8","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5730:6:8"},{"arguments":[{"name":"buflen","nodeType":"YulIdentifier","src":"5742:6:8"},{"kind":"number","nodeType":"YulLiteral","src":"5750:1:8","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:8"},"nodeType":"YulFunctionCall","src":"5738:14:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5723:6:8"},"nodeType":"YulFunctionCall","src":"5723:30:8"},"nodeType":"YulExpressionStatement","src":"5723:30:8"}]},"condition":{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"5700:3:8"},{"name":"buflen","nodeType":"YulIdentifier","src":"5705:6:8"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5697:2:8"},"nodeType":"YulFunctionCall","src":"5697:15:8"},"nodeType":"YulIf","src":"5694:2:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1465,"isOffset":false,"isSlot":false,"src":"5427:3:8","valueSize":1},{"declaration":1469,"isOffset":false,"isSlot":false,"src":"5634:4:8","valueSize":1},{"declaration":1467,"isOffset":false,"isSlot":false,"src":"5604:3:8","valueSize":1},{"declaration":1467,"isOffset":false,"isSlot":false,"src":"5700:3:8","valueSize":1}],"id":1489,"nodeType":"InlineAssembly","src":"5347:420:8"},{"expression":{"id":1490,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"5779:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1474,"id":1491,"nodeType":"Return","src":"5772:10:8"}]},"documentation":{"id":1462,"nodeType":"StructuredDocumentation","src":"4851:294:8","text":" @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write the byte at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1493,"implemented":true,"kind":"function","modifiers":[],"name":"writeUint8","nameLocation":"5157:10:8","nodeType":"FunctionDefinition","parameters":{"id":1470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1465,"mutability":"mutable","name":"buf","nameLocation":"5187:3:8","nodeType":"VariableDeclaration","scope":1493,"src":"5173:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1464,"nodeType":"UserDefinedTypeName","pathNode":{"id":1463,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"5173:6:8"},"referencedDeclaration":1204,"src":"5173:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1467,"mutability":"mutable","name":"off","nameLocation":"5204:3:8","nodeType":"VariableDeclaration","scope":1493,"src":"5196:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1466,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1469,"mutability":"mutable","name":"data","nameLocation":"5219:4:8","nodeType":"VariableDeclaration","scope":1493,"src":"5213:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1468,"name":"uint8","nodeType":"ElementaryTypeName","src":"5213:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5167:60:8"},"returnParameters":{"id":1474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1493,"src":"5251:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1472,"nodeType":"UserDefinedTypeName","pathNode":{"id":1471,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"5251:6:8"},"referencedDeclaration":1204,"src":"5251:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"5250:15:8"},"scope":1718,"src":"5148:639:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1513,"nodeType":"Block","src":"6130:55:8","statements":[{"expression":{"arguments":[{"id":1506,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"6154:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1507,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"6159:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"6159:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6159:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1510,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1499,"src":"6175:4:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1505,"name":"writeUint8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"6143:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6143:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1504,"id":1512,"nodeType":"Return","src":"6136:44:8"}]},"documentation":{"id":1494,"nodeType":"StructuredDocumentation","src":"5791:246:8","text":" @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1514,"implemented":true,"kind":"function","modifiers":[],"name":"appendUint8","nameLocation":"6049:11:8","nodeType":"FunctionDefinition","parameters":{"id":1500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1497,"mutability":"mutable","name":"buf","nameLocation":"6075:3:8","nodeType":"VariableDeclaration","scope":1514,"src":"6061:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1496,"nodeType":"UserDefinedTypeName","pathNode":{"id":1495,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"6061:6:8"},"referencedDeclaration":1204,"src":"6061:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1499,"mutability":"mutable","name":"data","nameLocation":"6086:4:8","nodeType":"VariableDeclaration","scope":1514,"src":"6080:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1498,"name":"uint8","nodeType":"ElementaryTypeName","src":"6080:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6060:31:8"},"returnParameters":{"id":1504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1514,"src":"6115:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1502,"nodeType":"UserDefinedTypeName","pathNode":{"id":1501,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"6115:6:8"},"referencedDeclaration":1204,"src":"6115:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6114:15:8"},"scope":1718,"src":"6040:145:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1573,"nodeType":"Block","src":"6677:652:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1530,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"6687:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1531,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"6693:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1533,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1518,"src":"6699:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"6699:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:24:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1547,"nodeType":"IfStatement","src":"6683:73:8","trueBody":{"id":1546,"nodeType":"Block","src":"6713:43:8","statements":[{"expression":{"arguments":[{"id":1537,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1518,"src":"6728:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1538,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"6734:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1539,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"6740:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6734:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1541,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6733:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6747:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6733:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1536,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1295,"src":"6721:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6721:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1545,"nodeType":"ExpressionStatement","src":"6721:28:8"}]}},{"id":1570,"nodeType":"UncheckedBlock","src":"6762:547:8","statements":[{"assignments":[1549],"declarations":[{"constant":false,"id":1549,"mutability":"mutable","name":"mask","nameLocation":"6788:4:8","nodeType":"VariableDeclaration","scope":1570,"src":"6780:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1548,"name":"uint256","nodeType":"ElementaryTypeName","src":"6780:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1556,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6796:3:8","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1551,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"6801:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6796:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1553,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6795:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6808:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6795:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6780:29:8"},{"expression":{"id":1567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1557,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"6843:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1558,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"6850:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6859:1:8","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6864:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1561,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"6869:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6864:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1563,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6863:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6859:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1565,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6858:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6850:24:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6843:31:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1568,"nodeType":"ExpressionStatement","src":"6843:31:8"},{"AST":{"nodeType":"YulBlock","src":"6891:412:8","statements":[{"nodeType":"YulVariableDeclaration","src":"6946:24:8","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"6966:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6960:5:8"},"nodeType":"YulFunctionCall","src":"6960:10:8"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"6950:6:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7051:38:8","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7071:6:8"},{"name":"off","nodeType":"YulIdentifier","src":"7079:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7067:3:8"},"nodeType":"YulFunctionCall","src":"7067:16:8"},{"name":"len","nodeType":"YulIdentifier","src":"7085:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7063:3:8"},"nodeType":"YulFunctionCall","src":"7063:26:8"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"7055:4:8","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7105:4:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7124:4:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7118:5:8"},"nodeType":"YulFunctionCall","src":"7118:11:8"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"7135:4:8"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7131:3:8"},"nodeType":"YulFunctionCall","src":"7131:9:8"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7114:3:8"},"nodeType":"YulFunctionCall","src":"7114:27:8"},{"name":"data","nodeType":"YulIdentifier","src":"7143:4:8"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7111:2:8"},"nodeType":"YulFunctionCall","src":"7111:37:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7098:6:8"},"nodeType":"YulFunctionCall","src":"7098:51:8"},"nodeType":"YulExpressionStatement","src":"7098:51:8"},{"body":{"nodeType":"YulBlock","src":"7244:51:8","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7263:6:8"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7275:3:8"},{"name":"len","nodeType":"YulIdentifier","src":"7280:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7271:3:8"},"nodeType":"YulFunctionCall","src":"7271:13:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7256:6:8"},"nodeType":"YulFunctionCall","src":"7256:29:8"},"nodeType":"YulExpressionStatement","src":"7256:29:8"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7218:3:8"},{"name":"len","nodeType":"YulIdentifier","src":"7223:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7214:3:8"},"nodeType":"YulFunctionCall","src":"7214:13:8"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7235:6:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7229:5:8"},"nodeType":"YulFunctionCall","src":"7229:13:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7211:2:8"},"nodeType":"YulFunctionCall","src":"7211:32:8"},"nodeType":"YulIf","src":"7208:2:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1518,"isOffset":false,"isSlot":false,"src":"6966:3:8","valueSize":1},{"declaration":1522,"isOffset":false,"isSlot":false,"src":"7143:4:8","valueSize":1},{"declaration":1524,"isOffset":false,"isSlot":false,"src":"7085:3:8","valueSize":1},{"declaration":1524,"isOffset":false,"isSlot":false,"src":"7223:3:8","valueSize":1},{"declaration":1524,"isOffset":false,"isSlot":false,"src":"7280:3:8","valueSize":1},{"declaration":1549,"isOffset":false,"isSlot":false,"src":"7135:4:8","valueSize":1},{"declaration":1520,"isOffset":false,"isSlot":false,"src":"7079:3:8","valueSize":1},{"declaration":1520,"isOffset":false,"isSlot":false,"src":"7218:3:8","valueSize":1},{"declaration":1520,"isOffset":false,"isSlot":false,"src":"7275:3:8","valueSize":1}],"id":1569,"nodeType":"InlineAssembly","src":"6882:421:8"}]},{"expression":{"id":1571,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1518,"src":"7321:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1529,"id":1572,"nodeType":"Return","src":"7314:10:8"}]},"documentation":{"id":1515,"nodeType":"StructuredDocumentation","src":"6189:354:8","text":" @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (left-aligned).\n @return The original buffer, for chaining."},"id":1574,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"6555:5:8","nodeType":"FunctionDefinition","parameters":{"id":1525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1518,"mutability":"mutable","name":"buf","nameLocation":"6580:3:8","nodeType":"VariableDeclaration","scope":1574,"src":"6566:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1517,"nodeType":"UserDefinedTypeName","pathNode":{"id":1516,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"6566:6:8"},"referencedDeclaration":1204,"src":"6566:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1520,"mutability":"mutable","name":"off","nameLocation":"6597:3:8","nodeType":"VariableDeclaration","scope":1574,"src":"6589:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1519,"name":"uint256","nodeType":"ElementaryTypeName","src":"6589:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1522,"mutability":"mutable","name":"data","nameLocation":"6614:4:8","nodeType":"VariableDeclaration","scope":1574,"src":"6606:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6606:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1524,"mutability":"mutable","name":"len","nameLocation":"6632:3:8","nodeType":"VariableDeclaration","scope":1574,"src":"6624:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1523,"name":"uint256","nodeType":"ElementaryTypeName","src":"6624:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6560:79:8"},"returnParameters":{"id":1529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1528,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1574,"src":"6662:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1527,"nodeType":"UserDefinedTypeName","pathNode":{"id":1526,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"6662:6:8"},"referencedDeclaration":1204,"src":"6662:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6661:15:8"},"scope":1718,"src":"6546:783:8","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1598,"nodeType":"Block","src":"7746:52:8","statements":[{"expression":{"arguments":[{"id":1589,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"7765:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1590,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1580,"src":"7770:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1593,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"7783:4:8","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7775:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7775:7:8","typeDescriptions":{}}},"id":1594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7775:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7790:2:8","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1588,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1414,1574],"referencedDeclaration":1574,"src":"7759:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7759:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1587,"id":1597,"nodeType":"Return","src":"7752:41:8"}]},"documentation":{"id":1575,"nodeType":"StructuredDocumentation","src":"7333:288:8","text":" @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1599,"implemented":true,"kind":"function","modifiers":[],"name":"writeBytes20","nameLocation":"7633:12:8","nodeType":"FunctionDefinition","parameters":{"id":1583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1578,"mutability":"mutable","name":"buf","nameLocation":"7665:3:8","nodeType":"VariableDeclaration","scope":1599,"src":"7651:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1577,"nodeType":"UserDefinedTypeName","pathNode":{"id":1576,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"7651:6:8"},"referencedDeclaration":1204,"src":"7651:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1580,"mutability":"mutable","name":"off","nameLocation":"7682:3:8","nodeType":"VariableDeclaration","scope":1599,"src":"7674:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1579,"name":"uint256","nodeType":"ElementaryTypeName","src":"7674:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1582,"mutability":"mutable","name":"data","nameLocation":"7699:4:8","nodeType":"VariableDeclaration","scope":1599,"src":"7691:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1581,"name":"bytes20","nodeType":"ElementaryTypeName","src":"7691:7:8","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"7645:62:8"},"returnParameters":{"id":1587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1599,"src":"7731:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1585,"nodeType":"UserDefinedTypeName","pathNode":{"id":1584,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"7731:6:8"},"referencedDeclaration":1204,"src":"7731:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"7730:15:8"},"scope":1718,"src":"7624:174:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1623,"nodeType":"Block","src":"8149:63:8","statements":[{"expression":{"arguments":[{"id":1612,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1603,"src":"8168:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1613,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1603,"src":"8173:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"8173:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8173:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1618,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1605,"src":"8197:4:8","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8189:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8189:7:8","typeDescriptions":{}}},"id":1619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8189:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8204:2:8","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1611,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1414,1574],"referencedDeclaration":1574,"src":"8162:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8162:45:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1610,"id":1622,"nodeType":"Return","src":"8155:52:8"}]},"documentation":{"id":1600,"nodeType":"StructuredDocumentation","src":"7802:250:8","text":" @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chhaining."},"id":1624,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes20","nameLocation":"8064:13:8","nodeType":"FunctionDefinition","parameters":{"id":1606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1603,"mutability":"mutable","name":"buf","nameLocation":"8092:3:8","nodeType":"VariableDeclaration","scope":1624,"src":"8078:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1602,"nodeType":"UserDefinedTypeName","pathNode":{"id":1601,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"8078:6:8"},"referencedDeclaration":1204,"src":"8078:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1605,"mutability":"mutable","name":"data","nameLocation":"8105:4:8","nodeType":"VariableDeclaration","scope":1624,"src":"8097:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1604,"name":"bytes20","nodeType":"ElementaryTypeName","src":"8097:7:8","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"8077:33:8"},"returnParameters":{"id":1610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1624,"src":"8134:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1608,"nodeType":"UserDefinedTypeName","pathNode":{"id":1607,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"8134:6:8"},"referencedDeclaration":1204,"src":"8134:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8133:15:8"},"scope":1718,"src":"8055:157:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1645,"nodeType":"Block","src":"8562:54:8","statements":[{"expression":{"arguments":[{"id":1637,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1628,"src":"8581:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1638,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1628,"src":"8586:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"8586:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8586:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1641,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1630,"src":"8602:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3332","id":1642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8608:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":1636,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1414,1574],"referencedDeclaration":1574,"src":"8575:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8575:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1635,"id":1644,"nodeType":"Return","src":"8568:43:8"}]},"documentation":{"id":1625,"nodeType":"StructuredDocumentation","src":"8216:249:8","text":" @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1646,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes32","nameLocation":"8477:13:8","nodeType":"FunctionDefinition","parameters":{"id":1631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1628,"mutability":"mutable","name":"buf","nameLocation":"8505:3:8","nodeType":"VariableDeclaration","scope":1646,"src":"8491:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1627,"nodeType":"UserDefinedTypeName","pathNode":{"id":1626,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"8491:6:8"},"referencedDeclaration":1204,"src":"8491:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1630,"mutability":"mutable","name":"data","nameLocation":"8518:4:8","nodeType":"VariableDeclaration","scope":1646,"src":"8510:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8510:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8490:33:8"},"returnParameters":{"id":1635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1646,"src":"8547:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1633,"nodeType":"UserDefinedTypeName","pathNode":{"id":1632,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"8547:6:8"},"referencedDeclaration":1204,"src":"8547:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8546:15:8"},"scope":1718,"src":"8468:148:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1692,"nodeType":"Block","src":"9108:541:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1662,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"9118:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1663,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"9124:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1665,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1650,"src":"9130:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"9130:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:24:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1679,"nodeType":"IfStatement","src":"9114:73:8","trueBody":{"id":1678,"nodeType":"Block","src":"9144:43:8","statements":[{"expression":{"arguments":[{"id":1669,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1650,"src":"9159:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1670,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"9165:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1671,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"9171:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9165:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1673,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9164:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9178:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9164:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1668,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1295,"src":"9152:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9152:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1677,"nodeType":"ExpressionStatement","src":"9152:28:8"}]}},{"assignments":[1681],"declarations":[{"constant":false,"id":1681,"mutability":"mutable","name":"mask","nameLocation":"9201:4:8","nodeType":"VariableDeclaration","scope":1692,"src":"9193:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1680,"name":"uint256","nodeType":"ElementaryTypeName","src":"9193:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1688,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9209:3:8","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1683,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"9214:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9209:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1685,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9208:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9221:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9208:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9193:29:8"},{"AST":{"nodeType":"YulBlock","src":"9237:392:8","statements":[{"nodeType":"YulVariableDeclaration","src":"9288:24:8","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"9308:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9302:5:8"},"nodeType":"YulFunctionCall","src":"9302:10:8"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"9292:6:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9389:38:8","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9409:6:8"},{"name":"off","nodeType":"YulIdentifier","src":"9417:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9405:3:8"},"nodeType":"YulFunctionCall","src":"9405:16:8"},{"name":"len","nodeType":"YulIdentifier","src":"9423:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9401:3:8"},"nodeType":"YulFunctionCall","src":"9401:26:8"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"9393:4:8","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9441:4:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9460:4:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9454:5:8"},"nodeType":"YulFunctionCall","src":"9454:11:8"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"9471:4:8"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9467:3:8"},"nodeType":"YulFunctionCall","src":"9467:9:8"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9450:3:8"},"nodeType":"YulFunctionCall","src":"9450:27:8"},{"name":"data","nodeType":"YulIdentifier","src":"9479:4:8"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9447:2:8"},"nodeType":"YulFunctionCall","src":"9447:37:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9434:6:8"},"nodeType":"YulFunctionCall","src":"9434:51:8"},"nodeType":"YulExpressionStatement","src":"9434:51:8"},{"body":{"nodeType":"YulBlock","src":"9576:47:8","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9593:6:8"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9605:3:8"},{"name":"len","nodeType":"YulIdentifier","src":"9610:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9601:3:8"},"nodeType":"YulFunctionCall","src":"9601:13:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9586:6:8"},"nodeType":"YulFunctionCall","src":"9586:29:8"},"nodeType":"YulExpressionStatement","src":"9586:29:8"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9550:3:8"},{"name":"len","nodeType":"YulIdentifier","src":"9555:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9546:3:8"},"nodeType":"YulFunctionCall","src":"9546:13:8"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9567:6:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9561:5:8"},"nodeType":"YulFunctionCall","src":"9561:13:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9543:2:8"},"nodeType":"YulFunctionCall","src":"9543:32:8"},"nodeType":"YulIf","src":"9540:2:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1650,"isOffset":false,"isSlot":false,"src":"9308:3:8","valueSize":1},{"declaration":1654,"isOffset":false,"isSlot":false,"src":"9479:4:8","valueSize":1},{"declaration":1656,"isOffset":false,"isSlot":false,"src":"9423:3:8","valueSize":1},{"declaration":1656,"isOffset":false,"isSlot":false,"src":"9555:3:8","valueSize":1},{"declaration":1656,"isOffset":false,"isSlot":false,"src":"9610:3:8","valueSize":1},{"declaration":1681,"isOffset":false,"isSlot":false,"src":"9471:4:8","valueSize":1},{"declaration":1652,"isOffset":false,"isSlot":false,"src":"9417:3:8","valueSize":1},{"declaration":1652,"isOffset":false,"isSlot":false,"src":"9550:3:8","valueSize":1},{"declaration":1652,"isOffset":false,"isSlot":false,"src":"9605:3:8","valueSize":1}],"id":1689,"nodeType":"InlineAssembly","src":"9228:401:8"},{"expression":{"id":1690,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1650,"src":"9641:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1661,"id":1691,"nodeType":"Return","src":"9634:10:8"}]},"documentation":{"id":1647,"nodeType":"StructuredDocumentation","src":"8620:351:8","text":" @dev Writes an integer to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (right-aligned).\n @return The original buffer, for chaining."},"id":1693,"implemented":true,"kind":"function","modifiers":[],"name":"writeInt","nameLocation":"8983:8:8","nodeType":"FunctionDefinition","parameters":{"id":1657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1650,"mutability":"mutable","name":"buf","nameLocation":"9011:3:8","nodeType":"VariableDeclaration","scope":1693,"src":"8997:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1649,"nodeType":"UserDefinedTypeName","pathNode":{"id":1648,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"8997:6:8"},"referencedDeclaration":1204,"src":"8997:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1652,"mutability":"mutable","name":"off","nameLocation":"9028:3:8","nodeType":"VariableDeclaration","scope":1693,"src":"9020:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1651,"name":"uint256","nodeType":"ElementaryTypeName","src":"9020:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1654,"mutability":"mutable","name":"data","nameLocation":"9045:4:8","nodeType":"VariableDeclaration","scope":1693,"src":"9037:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1653,"name":"uint256","nodeType":"ElementaryTypeName","src":"9037:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1656,"mutability":"mutable","name":"len","nameLocation":"9063:3:8","nodeType":"VariableDeclaration","scope":1693,"src":"9055:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1655,"name":"uint256","nodeType":"ElementaryTypeName","src":"9055:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8991:79:8"},"returnParameters":{"id":1661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1693,"src":"9093:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1659,"nodeType":"UserDefinedTypeName","pathNode":{"id":1658,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"9093:6:8"},"referencedDeclaration":1204,"src":"9093:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9092:15:8"},"scope":1718,"src":"8974:675:8","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1716,"nodeType":"Block","src":"10013:58:8","statements":[{"expression":{"arguments":[{"id":1708,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"10035:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1709,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"10040:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"10040:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10040:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1712,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"10056:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1713,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"10062:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1707,"name":"writeInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"10026:8:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10026:40:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1706,"id":1715,"nodeType":"Return","src":"10019:47:8"}]},"documentation":{"id":1694,"nodeType":"StructuredDocumentation","src":"9653:238:8","text":" @dev Appends a byte to the end of the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer."},"id":1717,"implemented":true,"kind":"function","modifiers":[],"name":"appendInt","nameLocation":"9903:9:8","nodeType":"FunctionDefinition","parameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1697,"mutability":"mutable","name":"buf","nameLocation":"9932:3:8","nodeType":"VariableDeclaration","scope":1717,"src":"9918:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1696,"nodeType":"UserDefinedTypeName","pathNode":{"id":1695,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"9918:6:8"},"referencedDeclaration":1204,"src":"9918:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1699,"mutability":"mutable","name":"data","nameLocation":"9949:4:8","nodeType":"VariableDeclaration","scope":1717,"src":"9941:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1698,"name":"uint256","nodeType":"ElementaryTypeName","src":"9941:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1701,"mutability":"mutable","name":"len","nameLocation":"9967:3:8","nodeType":"VariableDeclaration","scope":1717,"src":"9959:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1700,"name":"uint256","nodeType":"ElementaryTypeName","src":"9959:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9912:62:8"},"returnParameters":{"id":1706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1717,"src":"9998:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1704,"nodeType":"UserDefinedTypeName","pathNode":{"id":1703,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"9998:6:8"},"referencedDeclaration":1204,"src":"9998:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9997:15:8"},"scope":1718,"src":"9894:177:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1719,"src":"441:9632:8"}],"src":"32:10042:8"},"id":8},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","exportedSymbols":{"BufferChainlink":[1718],"CBORChainlink":[2165]},"id":2166,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1720,"literals":["solidity",">=","0.4",".19"],"nodeType":"PragmaDirective","src":"32:25:9"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./BufferChainlink.sol","id":1722,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2166,"sourceUnit":1719,"src":"59:54:9","symbolAliases":[{"foreign":{"id":1721,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"src":"67:15:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2165,"linearizedBaseContracts":[2165],"name":"CBORChainlink","nameLocation":"123:13:9","nodeType":"ContractDefinition","nodes":[{"id":1726,"libraryName":{"id":1723,"name":"BufferChainlink","nodeType":"IdentifierPath","referencedDeclaration":1718,"src":"147:15:9"},"nodeType":"UsingForDirective","src":"141:49:9","typeName":{"id":1725,"nodeType":"UserDefinedTypeName","pathNode":{"id":1724,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"167:22:9"},"referencedDeclaration":1204,"src":"167:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"constant":true,"id":1729,"mutability":"constant","name":"MAJOR_TYPE_INT","nameLocation":"217:14:9","nodeType":"VariableDeclaration","scope":2165,"src":"194:41:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1727,"name":"uint8","nodeType":"ElementaryTypeName","src":"194:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":1728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"234:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":1732,"mutability":"constant","name":"MAJOR_TYPE_NEGATIVE_INT","nameLocation":"262:23:9","nodeType":"VariableDeclaration","scope":2165,"src":"239:50:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1730,"name":"uint8","nodeType":"ElementaryTypeName","src":"239:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":1735,"mutability":"constant","name":"MAJOR_TYPE_BYTES","nameLocation":"316:16:9","nodeType":"VariableDeclaration","scope":2165,"src":"293:43:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1733,"name":"uint8","nodeType":"ElementaryTypeName","src":"293:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"335:1:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1738,"mutability":"constant","name":"MAJOR_TYPE_STRING","nameLocation":"363:17:9","nodeType":"VariableDeclaration","scope":2165,"src":"340:44:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1736,"name":"uint8","nodeType":"ElementaryTypeName","src":"340:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"383:1:9","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"constant":true,"id":1741,"mutability":"constant","name":"MAJOR_TYPE_ARRAY","nameLocation":"411:16:9","nodeType":"VariableDeclaration","scope":2165,"src":"388:43:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1739,"name":"uint8","nodeType":"ElementaryTypeName","src":"388:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":1740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"430:1:9","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"private"},{"constant":true,"id":1744,"mutability":"constant","name":"MAJOR_TYPE_MAP","nameLocation":"458:14:9","nodeType":"VariableDeclaration","scope":2165,"src":"435:41:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1742,"name":"uint8","nodeType":"ElementaryTypeName","src":"435:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"35","id":1743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"475:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"visibility":"private"},{"constant":true,"id":1747,"mutability":"constant","name":"MAJOR_TYPE_TAG","nameLocation":"503:14:9","nodeType":"VariableDeclaration","scope":2165,"src":"480:41:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1745,"name":"uint8","nodeType":"ElementaryTypeName","src":"480:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"36","id":1746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"520:1:9","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"visibility":"private"},{"constant":true,"id":1750,"mutability":"constant","name":"MAJOR_TYPE_CONTENT_FREE","nameLocation":"548:23:9","nodeType":"VariableDeclaration","scope":2165,"src":"525:50:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1748,"name":"uint8","nodeType":"ElementaryTypeName","src":"525:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"37","id":1749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"574:1:9","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"private"},{"constant":true,"id":1753,"mutability":"constant","name":"TAG_TYPE_BIGNUM","nameLocation":"603:15:9","nodeType":"VariableDeclaration","scope":2165,"src":"580:42:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1751,"name":"uint8","nodeType":"ElementaryTypeName","src":"580:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"621:1:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1756,"mutability":"constant","name":"TAG_TYPE_NEGATIVE_BIGNUM","nameLocation":"649:24:9","nodeType":"VariableDeclaration","scope":2165,"src":"626:51:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1754,"name":"uint8","nodeType":"ElementaryTypeName","src":"626:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"676:1:9","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"body":{"id":1885,"nodeType":"Block","src":"785:522:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1766,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"794:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3233","id":1767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"803:2:9","typeDescriptions":{"typeIdentifier":"t_rational_23_by_1","typeString":"int_const 23"},"value":"23"},"src":"794:11:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1784,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"876:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646","id":1785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"885:4:9","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"876:13:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1809,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"988:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"307846464646","id":1810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"997:6:9","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"value":"0xFFFF"},"src":"988:15:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1834,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"1102:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646464646464646","id":1835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:10:9","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xFFFFFFFF"},"src":"1102:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1880,"nodeType":"Block","src":"1216:87:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1864,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"1247:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1256:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1247:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1867,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1246:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3237","id":1868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:2:9","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"1246:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1240:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1862,"name":"uint8","nodeType":"ElementaryTypeName","src":"1240:5:9","typeDescriptions":{}}},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1240:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1859,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1224:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"1224:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1224:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1872,"nodeType":"ExpressionStatement","src":"1224:41:9"},{"expression":{"arguments":[{"id":1876,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"1287:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"38","id":1877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1294:1:9","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"expression":{"id":1873,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1273:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1717,"src":"1273:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1273:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1879,"nodeType":"ExpressionStatement","src":"1273:23:9"}]},"id":1881,"nodeType":"IfStatement","src":"1098:205:9","trueBody":{"id":1858,"nodeType":"Block","src":"1123:87:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1842,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"1154:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1163:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1154:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1845,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1153:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3236","id":1846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1168:2:9","typeDescriptions":{"typeIdentifier":"t_rational_26_by_1","typeString":"int_const 26"},"value":"26"},"src":"1153:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1147:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1840,"name":"uint8","nodeType":"ElementaryTypeName","src":"1147:5:9","typeDescriptions":{}}},"id":1848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1147:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1837,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1131:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"1131:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1131:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1850,"nodeType":"ExpressionStatement","src":"1131:41:9"},{"expression":{"arguments":[{"id":1854,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"1194:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"34","id":1855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1201:1:9","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"expression":{"id":1851,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1180:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1717,"src":"1180:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1180:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1857,"nodeType":"ExpressionStatement","src":"1180:23:9"}]}},"id":1882,"nodeType":"IfStatement","src":"984:319:9","trueBody":{"id":1833,"nodeType":"Block","src":"1005:87:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1817,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"1036:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1036:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1820,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1035:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3235","id":1821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:2:9","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"src":"1035:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1029:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1815,"name":"uint8","nodeType":"ElementaryTypeName","src":"1029:5:9","typeDescriptions":{}}},"id":1823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1029:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1812,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1013:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"1013:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1013:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1825,"nodeType":"ExpressionStatement","src":"1013:41:9"},{"expression":{"arguments":[{"id":1829,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"1076:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"32","id":1830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1083:1:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":1826,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1062:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1717,"src":"1062:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1062:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1832,"nodeType":"ExpressionStatement","src":"1062:23:9"}]}},"id":1883,"nodeType":"IfStatement","src":"872:431:9","trueBody":{"id":1808,"nodeType":"Block","src":"891:87:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1792,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"922:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"922:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1795,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"921:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3234","id":1796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:2:9","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"921:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1790,"name":"uint8","nodeType":"ElementaryTypeName","src":"915:5:9","typeDescriptions":{}}},"id":1798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"915:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1787,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"899:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"899:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"899:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1800,"nodeType":"ExpressionStatement","src":"899:41:9"},{"expression":{"arguments":[{"id":1804,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"962:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"31","id":1805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"969:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":1801,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"948:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1717,"src":"948:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"948:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1807,"nodeType":"ExpressionStatement","src":"948:23:9"}]}},"id":1884,"nodeType":"IfStatement","src":"791:512:9","trueBody":{"id":1783,"nodeType":"Block","src":"807:59:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1774,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"838:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"847:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"838:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1777,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"837:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":1778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"852:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"837:20:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"831:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1772,"name":"uint8","nodeType":"ElementaryTypeName","src":"831:5:9","typeDescriptions":{}}},"id":1780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"831:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1769,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"815:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"815:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"815:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1782,"nodeType":"ExpressionStatement","src":"815:44:9"}]}}]},"id":1886,"implemented":true,"kind":"function","modifiers":[],"name":"encodeFixedNumeric","nameLocation":"691:18:9","nodeType":"FunctionDefinition","parameters":{"id":1764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1759,"mutability":"mutable","name":"buf","nameLocation":"740:3:9","nodeType":"VariableDeclaration","scope":1886,"src":"710:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1758,"nodeType":"UserDefinedTypeName","pathNode":{"id":1757,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"710:22:9"},"referencedDeclaration":1204,"src":"710:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1761,"mutability":"mutable","name":"major","nameLocation":"751:5:9","nodeType":"VariableDeclaration","scope":1886,"src":"745:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1760,"name":"uint8","nodeType":"ElementaryTypeName","src":"745:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1763,"mutability":"mutable","name":"value","nameLocation":"765:5:9","nodeType":"VariableDeclaration","scope":1886,"src":"758:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1762,"name":"uint64","nodeType":"ElementaryTypeName","src":"758:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"709:62:9"},"returnParameters":{"id":1765,"nodeType":"ParameterList","parameters":[],"src":"785:0:9"},"scope":2165,"src":"682:625:9","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1908,"nodeType":"Block","src":"1408:52:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1899,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"1437:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1446:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1437:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1902,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1436:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3331","id":1903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1451:2:9","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"1436:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1430:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1897,"name":"uint8","nodeType":"ElementaryTypeName","src":"1430:5:9","typeDescriptions":{}}},"id":1905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1430:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1894,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1889,"src":"1414:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"1414:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1907,"nodeType":"ExpressionStatement","src":"1414:41:9"}]},"id":1909,"implemented":true,"kind":"function","modifiers":[],"name":"encodeIndefiniteLengthType","nameLocation":"1320:26:9","nodeType":"FunctionDefinition","parameters":{"id":1892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1889,"mutability":"mutable","name":"buf","nameLocation":"1377:3:9","nodeType":"VariableDeclaration","scope":1909,"src":"1347:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1888,"nodeType":"UserDefinedTypeName","pathNode":{"id":1887,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1347:22:9"},"referencedDeclaration":1204,"src":"1347:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1891,"mutability":"mutable","name":"major","nameLocation":"1388:5:9","nodeType":"VariableDeclaration","scope":1909,"src":"1382:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1890,"name":"uint8","nodeType":"ElementaryTypeName","src":"1382:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1346:48:9"},"returnParameters":{"id":1893,"nodeType":"ParameterList","parameters":[],"src":"1408:0:9"},"scope":2165,"src":"1311:149:9","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1937,"nodeType":"Block","src":"1545:155:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1917,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1914,"src":"1554:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":1918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1562:18:9","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1554:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1935,"nodeType":"Block","src":"1627:69:9","statements":[{"expression":{"arguments":[{"id":1927,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1912,"src":"1654:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1928,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1729,"src":"1659:14:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"id":1931,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1914,"src":"1682:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1675:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1929,"name":"uint64","nodeType":"ElementaryTypeName","src":"1675:6:9","typeDescriptions":{}}},"id":1932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1675:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1926,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1886,"src":"1635:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":1933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1635:54:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1934,"nodeType":"ExpressionStatement","src":"1635:54:9"}]},"id":1936,"nodeType":"IfStatement","src":"1551:145:9","trueBody":{"id":1925,"nodeType":"Block","src":"1582:39:9","statements":[{"expression":{"arguments":[{"id":1921,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1912,"src":"1603:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1922,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1914,"src":"1608:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1920,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"1590:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1590:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1924,"nodeType":"ExpressionStatement","src":"1590:24:9"}]}}]},"id":1938,"implemented":true,"kind":"function","modifiers":[],"name":"encodeUInt","nameLocation":"1473:10:9","nodeType":"FunctionDefinition","parameters":{"id":1915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1912,"mutability":"mutable","name":"buf","nameLocation":"1514:3:9","nodeType":"VariableDeclaration","scope":1938,"src":"1484:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1911,"nodeType":"UserDefinedTypeName","pathNode":{"id":1910,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1484:22:9"},"referencedDeclaration":1204,"src":"1484:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1914,"mutability":"mutable","name":"value","nameLocation":"1524:5:9","nodeType":"VariableDeclaration","scope":1938,"src":"1519:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1913,"name":"uint","nodeType":"ElementaryTypeName","src":"1519:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1483:47:9"},"returnParameters":{"id":1916,"nodeType":"ParameterList","parameters":[],"src":"1545:0:9"},"scope":2165,"src":"1464:236:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2003,"nodeType":"Block","src":"1783:367:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1946,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"1792:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1800:20:9","subExpression":{"hexValue":"30783130303030303030303030303030303030","id":1947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1801:19:9","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_18446744073709551616_by_1","typeString":"int_const -18446744073709551616"}},"src":"1792:28:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1956,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"1876:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":1957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1884:18:9","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1876:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1968,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"1958:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":1969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1967:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1958:10:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1999,"nodeType":"Block","src":"2054:92:9","statements":[{"expression":{"arguments":[{"id":1985,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1941,"src":"2081:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1986,"name":"MAJOR_TYPE_NEGATIVE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1732,"src":"2086:23:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2126:2:9","subExpression":{"hexValue":"31","id":1991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2127:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1993,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"2131:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2126:10:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2118:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2118:7:9","typeDescriptions":{}}},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2118:19:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2111:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1987,"name":"uint64","nodeType":"ElementaryTypeName","src":"2111:6:9","typeDescriptions":{}}},"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2111:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1984,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1886,"src":"2062:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":1997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2062:77:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1998,"nodeType":"ExpressionStatement","src":"2062:77:9"}]},"id":2000,"nodeType":"IfStatement","src":"1955:191:9","trueBody":{"id":1983,"nodeType":"Block","src":"1970:78:9","statements":[{"expression":{"arguments":[{"id":1972,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1941,"src":"1997:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1973,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1729,"src":"2002:14:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"id":1978,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"2033:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2025:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1976,"name":"uint256","nodeType":"ElementaryTypeName","src":"2025:7:9","typeDescriptions":{}}},"id":1979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2025:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2018:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1974,"name":"uint64","nodeType":"ElementaryTypeName","src":"2018:6:9","typeDescriptions":{}}},"id":1980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2018:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1971,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1886,"src":"1978:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":1981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1978:63:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1982,"nodeType":"ExpressionStatement","src":"1978:63:9"}]}},"id":2001,"nodeType":"IfStatement","src":"1873:273:9","trueBody":{"id":1967,"nodeType":"Block","src":"1904:45:9","statements":[{"expression":{"arguments":[{"id":1960,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1941,"src":"1925:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":1963,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"1935:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1930:4:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1961,"name":"uint","nodeType":"ElementaryTypeName","src":"1930:4:9","typeDescriptions":{}}},"id":1964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1930:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1959,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"1912:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1912:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1966,"nodeType":"ExpressionStatement","src":"1912:30:9"}]}},"id":2002,"nodeType":"IfStatement","src":"1789:357:9","trueBody":{"id":1955,"nodeType":"Block","src":"1822:45:9","statements":[{"expression":{"arguments":[{"id":1951,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1941,"src":"1849:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1952,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"1854:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1950,"name":"encodeSignedBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2097,"src":"1830:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_int256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":1953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1830:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1954,"nodeType":"ExpressionStatement","src":"1830:30:9"}]}}]},"id":2004,"implemented":true,"kind":"function","modifiers":[],"name":"encodeInt","nameLocation":"1713:9:9","nodeType":"FunctionDefinition","parameters":{"id":1944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1941,"mutability":"mutable","name":"buf","nameLocation":"1753:3:9","nodeType":"VariableDeclaration","scope":2004,"src":"1723:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1940,"nodeType":"UserDefinedTypeName","pathNode":{"id":1939,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1723:22:9"},"referencedDeclaration":1204,"src":"1723:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1943,"mutability":"mutable","name":"value","nameLocation":"1762:5:9","nodeType":"VariableDeclaration","scope":2004,"src":"1758:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1942,"name":"int","nodeType":"ElementaryTypeName","src":"1758:3:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1722:46:9"},"returnParameters":{"id":1945,"nodeType":"ParameterList","parameters":[],"src":"1783:0:9"},"scope":2165,"src":"1704:446:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2028,"nodeType":"Block","src":"2244:97:9","statements":[{"expression":{"arguments":[{"id":2013,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2007,"src":"2269:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2014,"name":"MAJOR_TYPE_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1735,"src":"2274:16:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"id":2017,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2009,"src":"2299:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2299:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2292:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2015,"name":"uint64","nodeType":"ElementaryTypeName","src":"2292:6:9","typeDescriptions":{}}},"id":2019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2292:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2012,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1886,"src":"2250:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2250:63:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2021,"nodeType":"ExpressionStatement","src":"2250:63:9"},{"expression":{"arguments":[{"id":2025,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2009,"src":"2330:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2022,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2007,"src":"2319:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1461,"src":"2319:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2319:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2027,"nodeType":"ExpressionStatement","src":"2319:17:9"}]},"id":2029,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBytes","nameLocation":"2163:11:9","nodeType":"FunctionDefinition","parameters":{"id":2010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2007,"mutability":"mutable","name":"buf","nameLocation":"2205:3:9","nodeType":"VariableDeclaration","scope":2029,"src":"2175:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2006,"nodeType":"UserDefinedTypeName","pathNode":{"id":2005,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2175:22:9"},"referencedDeclaration":1204,"src":"2175:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2009,"mutability":"mutable","name":"value","nameLocation":"2223:5:9","nodeType":"VariableDeclaration","scope":2029,"src":"2210:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2008,"name":"bytes","nodeType":"ElementaryTypeName","src":"2210:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2174:55:9"},"returnParameters":{"id":2011,"nodeType":"ParameterList","parameters":[],"src":"2244:0:9"},"scope":2165,"src":"2154:187:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2059,"nodeType":"Block","src":"2428:115:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2042,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"2457:14:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2475:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2457:19:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2456:21:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2046,"name":"TAG_TYPE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1753,"src":"2480:15:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2456:39:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2450:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2040,"name":"uint8","nodeType":"ElementaryTypeName","src":"2450:5:9","typeDescriptions":{}}},"id":2048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2450:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2037,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2032,"src":"2434:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"2434:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2434:63:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2050,"nodeType":"ExpressionStatement","src":"2434:63:9"},{"expression":{"arguments":[{"id":2052,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2032,"src":"2515:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":2055,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2034,"src":"2531:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2053,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2520:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2520:10:9","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2520:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2051,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"2503:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2503:35:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2058,"nodeType":"ExpressionStatement","src":"2503:35:9"}]},"id":2060,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBigNum","nameLocation":"2354:12:9","nodeType":"FunctionDefinition","parameters":{"id":2035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2032,"mutability":"mutable","name":"buf","nameLocation":"2397:3:9","nodeType":"VariableDeclaration","scope":2060,"src":"2367:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2031,"nodeType":"UserDefinedTypeName","pathNode":{"id":2030,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2367:22:9"},"referencedDeclaration":1204,"src":"2367:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2034,"mutability":"mutable","name":"value","nameLocation":"2407:5:9","nodeType":"VariableDeclaration","scope":2060,"src":"2402:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2033,"name":"uint","nodeType":"ElementaryTypeName","src":"2402:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2366:47:9"},"returnParameters":{"id":2036,"nodeType":"ParameterList","parameters":[],"src":"2428:0:9"},"scope":2165,"src":"2345:198:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2096,"nodeType":"Block","src":"2635:138:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2073,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"2664:14:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2682:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2664:19:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2076,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2663:21:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2077,"name":"TAG_TYPE_NEGATIVE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1756,"src":"2687:24:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2663:48:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2657:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2071,"name":"uint8","nodeType":"ElementaryTypeName","src":"2657:5:9","typeDescriptions":{}}},"id":2079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2657:55:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2068,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2063,"src":"2641:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"2641:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2641:72:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2081,"nodeType":"ExpressionStatement","src":"2641:72:9"},{"expression":{"arguments":[{"id":2083,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2063,"src":"2731:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2755:2:9","subExpression":{"hexValue":"31","id":2088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2756:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2090,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2065,"src":"2760:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2755:10:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2086,"name":"uint256","nodeType":"ElementaryTypeName","src":"2747:7:9","typeDescriptions":{}}},"id":2092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2747:19:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2084,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2736:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2736:10:9","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2736:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2082,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"2719:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2719:49:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2095,"nodeType":"ExpressionStatement","src":"2719:49:9"}]},"id":2097,"implemented":true,"kind":"function","modifiers":[],"name":"encodeSignedBigNum","nameLocation":"2556:18:9","nodeType":"FunctionDefinition","parameters":{"id":2066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2063,"mutability":"mutable","name":"buf","nameLocation":"2605:3:9","nodeType":"VariableDeclaration","scope":2097,"src":"2575:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2062,"nodeType":"UserDefinedTypeName","pathNode":{"id":2061,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2575:22:9"},"referencedDeclaration":1204,"src":"2575:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2065,"mutability":"mutable","name":"input","nameLocation":"2614:5:9","nodeType":"VariableDeclaration","scope":2097,"src":"2610:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2064,"name":"int","nodeType":"ElementaryTypeName","src":"2610:3:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2574:46:9"},"returnParameters":{"id":2067,"nodeType":"ParameterList","parameters":[],"src":"2635:0:9"},"scope":2165,"src":"2547:226:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2127,"nodeType":"Block","src":"2869:112:9","statements":[{"expression":{"arguments":[{"id":2106,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2100,"src":"2894:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2107,"name":"MAJOR_TYPE_STRING","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1738,"src":"2899:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"arguments":[{"id":2112,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2102,"src":"2931:5:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2925:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2110,"name":"bytes","nodeType":"ElementaryTypeName","src":"2925:5:9","typeDescriptions":{}}},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2925:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2925:19:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2918:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2108,"name":"uint64","nodeType":"ElementaryTypeName","src":"2918:6:9","typeDescriptions":{}}},"id":2115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2918:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2105,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1886,"src":"2875:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2875:71:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2117,"nodeType":"ExpressionStatement","src":"2875:71:9"},{"expression":{"arguments":[{"arguments":[{"id":2123,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2102,"src":"2969:5:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2963:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2121,"name":"bytes","nodeType":"ElementaryTypeName","src":"2963:5:9","typeDescriptions":{}}},"id":2124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2963:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2118,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2100,"src":"2952:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1461,"src":"2952:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2952:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2126,"nodeType":"ExpressionStatement","src":"2952:24:9"}]},"id":2128,"implemented":true,"kind":"function","modifiers":[],"name":"encodeString","nameLocation":"2786:12:9","nodeType":"FunctionDefinition","parameters":{"id":2103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2100,"mutability":"mutable","name":"buf","nameLocation":"2829:3:9","nodeType":"VariableDeclaration","scope":2128,"src":"2799:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2099,"nodeType":"UserDefinedTypeName","pathNode":{"id":2098,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2799:22:9"},"referencedDeclaration":1204,"src":"2799:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2102,"mutability":"mutable","name":"value","nameLocation":"2848:5:9","nodeType":"VariableDeclaration","scope":2128,"src":"2834:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2101,"name":"string","nodeType":"ElementaryTypeName","src":"2834:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2798:56:9"},"returnParameters":{"id":2104,"nodeType":"ParameterList","parameters":[],"src":"2869:0:9"},"scope":2165,"src":"2777:204:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2139,"nodeType":"Block","src":"3054:60:9","statements":[{"expression":{"arguments":[{"id":2135,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"3087:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2136,"name":"MAJOR_TYPE_ARRAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1741,"src":"3092:16:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2134,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"3060:26:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3060:49:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2138,"nodeType":"ExpressionStatement","src":"3060:49:9"}]},"id":2140,"implemented":true,"kind":"function","modifiers":[],"name":"startArray","nameLocation":"2994:10:9","nodeType":"FunctionDefinition","parameters":{"id":2132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2131,"mutability":"mutable","name":"buf","nameLocation":"3035:3:9","nodeType":"VariableDeclaration","scope":2140,"src":"3005:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2130,"nodeType":"UserDefinedTypeName","pathNode":{"id":2129,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"3005:22:9"},"referencedDeclaration":1204,"src":"3005:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3004:35:9"},"returnParameters":{"id":2133,"nodeType":"ParameterList","parameters":[],"src":"3054:0:9"},"scope":2165,"src":"2985:129:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2151,"nodeType":"Block","src":"3185:58:9","statements":[{"expression":{"arguments":[{"id":2147,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"3218:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2148,"name":"MAJOR_TYPE_MAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1744,"src":"3223:14:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2146,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"3191:26:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3191:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2150,"nodeType":"ExpressionStatement","src":"3191:47:9"}]},"id":2152,"implemented":true,"kind":"function","modifiers":[],"name":"startMap","nameLocation":"3127:8:9","nodeType":"FunctionDefinition","parameters":{"id":2144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2143,"mutability":"mutable","name":"buf","nameLocation":"3166:3:9","nodeType":"VariableDeclaration","scope":2152,"src":"3136:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2142,"nodeType":"UserDefinedTypeName","pathNode":{"id":2141,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"3136:22:9"},"referencedDeclaration":1204,"src":"3136:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3135:35:9"},"returnParameters":{"id":2145,"nodeType":"ParameterList","parameters":[],"src":"3185:0:9"},"scope":2165,"src":"3118:125:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2163,"nodeType":"Block","src":"3317:67:9","statements":[{"expression":{"arguments":[{"id":2159,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"3350:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2160,"name":"MAJOR_TYPE_CONTENT_FREE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1750,"src":"3355:23:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2158,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"3323:26:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3323:56:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2162,"nodeType":"ExpressionStatement","src":"3323:56:9"}]},"id":2164,"implemented":true,"kind":"function","modifiers":[],"name":"endSequence","nameLocation":"3256:11:9","nodeType":"FunctionDefinition","parameters":{"id":2156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2155,"mutability":"mutable","name":"buf","nameLocation":"3298:3:9","nodeType":"VariableDeclaration","scope":2164,"src":"3268:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2154,"nodeType":"UserDefinedTypeName","pathNode":{"id":2153,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"3268:22:9"},"referencedDeclaration":1204,"src":"3268:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3267:35:9"},"returnParameters":{"id":2157,"nodeType":"ParameterList","parameters":[],"src":"3317:0:9"},"scope":2165,"src":"3247:137:9","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2166,"src":"115:3271:9"}],"src":"32:3355:9"},"id":9},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","exportedSymbols":{"ENSResolver":[2175]},"id":2176,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2167,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:10"},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":2175,"linearizedBaseContracts":[2175],"name":"ENSResolver","nameLocation":"75:11:10","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3b3b57de","id":2174,"implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"100:4:10","nodeType":"FunctionDefinition","parameters":{"id":2170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2169,"mutability":"mutable","name":"node","nameLocation":"113:4:10","nodeType":"VariableDeclaration","scope":2174,"src":"105:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"104:14:10"},"returnParameters":{"id":2173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2174,"src":"148:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2171,"name":"address","nodeType":"ElementaryTypeName","src":"148:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"147:9:10"},"scope":2175,"src":"91:66:10","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2176,"src":"57:102:10"}],"src":"32:128:10"},"id":10},"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol","exportedSymbols":{"BasicRiskpool":[2464],"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Riskpool":[4773]},"id":2465,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":2177,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:11"},{"absolutePath":"@etherisc/gif-interface/contracts/components/Riskpool.sol","file":"./Riskpool.sol","id":2178,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2465,"sourceUnit":4774,"src":"66:24:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"../modules/IBundle.sol","id":2179,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2465,"sourceUnit":5021,"src":"92:32:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"../modules/IPolicy.sol","id":2180,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2465,"sourceUnit":5434,"src":"126:32:11","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2181,"name":"Riskpool","nodeType":"IdentifierPath","referencedDeclaration":4773,"src":"279:8:11"},"id":2182,"nodeType":"InheritanceSpecifier","src":"279:8:11"}],"contractDependencies":[2884,2988,3312,4773,5073,7481,10518],"contractKind":"contract","fullyImplemented":false,"id":2464,"linearizedBaseContracts":[2464,4773,2884,7481,10518,5073,3312,2988],"name":"BasicRiskpool","nameLocation":"262:13:11","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":2188,"name":"LogBasicRiskpoolBundlesAndPolicies","nameLocation":"303:34:11","nodeType":"EventDefinition","parameters":{"id":2187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2184,"indexed":false,"mutability":"mutable","name":"activeBundles","nameLocation":"346:13:11","nodeType":"VariableDeclaration","scope":2188,"src":"338:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2183,"name":"uint256","nodeType":"ElementaryTypeName","src":"338:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2186,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"369:8:11","nodeType":"VariableDeclaration","scope":2188,"src":"361:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2185,"name":"uint256","nodeType":"ElementaryTypeName","src":"361:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"337:41:11"},"src":"297:82:11"},{"anonymous":false,"id":2198,"name":"LogBasicRiskpoolCandidateBundleAmountCheck","nameLocation":"391:42:11","nodeType":"EventDefinition","parameters":{"id":2197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2190,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"442:5:11","nodeType":"VariableDeclaration","scope":2198,"src":"434:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2189,"name":"uint256","nodeType":"ElementaryTypeName","src":"434:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2192,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"457:8:11","nodeType":"VariableDeclaration","scope":2198,"src":"449:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2191,"name":"uint256","nodeType":"ElementaryTypeName","src":"449:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2194,"indexed":false,"mutability":"mutable","name":"maxAmount","nameLocation":"475:9:11","nodeType":"VariableDeclaration","scope":2198,"src":"467:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2193,"name":"uint256","nodeType":"ElementaryTypeName","src":"467:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2196,"indexed":false,"mutability":"mutable","name":"collateralAmount","nameLocation":"494:16:11","nodeType":"VariableDeclaration","scope":2198,"src":"486:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2195,"name":"uint256","nodeType":"ElementaryTypeName","src":"486:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"433:78:11"},"src":"385:127:11"},{"constant":false,"id":2202,"mutability":"mutable","name":"_collateralizedBy","nameLocation":"745:17:11","nodeType":"VariableDeclaration","scope":2464,"src":"676:86:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":2201,"keyType":{"id":2199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"684:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"676:59:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":2200,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":2205,"mutability":"mutable","name":"_policiesCounter","nameLocation":"784:16:11","nodeType":"VariableDeclaration","scope":2464,"src":"769:35:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2203,"name":"uint32","nodeType":"ElementaryTypeName","src":"769:6:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"value":{"hexValue":"30","id":2204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"803:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"body":{"id":2228,"nodeType":"Block","src":"1107:3:11","statements":[]},"id":2229,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":2220,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"1027:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2221,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2209,"src":"1033:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2222,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2211,"src":"1052:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2223,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2213,"src":"1072:10:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2224,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2215,"src":"1084:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2225,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2217,"src":"1092:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2226,"modifierName":{"id":2219,"name":"Riskpool","nodeType":"IdentifierPath","referencedDeclaration":4773,"src":"1018:8:11"},"nodeType":"ModifierInvocation","src":"1018:83:11"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2207,"mutability":"mutable","name":"name","nameLocation":"843:4:11","nodeType":"VariableDeclaration","scope":2229,"src":"835:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"835:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2209,"mutability":"mutable","name":"collateralization","nameLocation":"866:17:11","nodeType":"VariableDeclaration","scope":2229,"src":"858:25:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2208,"name":"uint256","nodeType":"ElementaryTypeName","src":"858:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2211,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"902:18:11","nodeType":"VariableDeclaration","scope":2229,"src":"894:26:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2210,"name":"uint256","nodeType":"ElementaryTypeName","src":"894:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2213,"mutability":"mutable","name":"erc20Token","nameLocation":"939:10:11","nodeType":"VariableDeclaration","scope":2229,"src":"931:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2212,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2215,"mutability":"mutable","name":"wallet","nameLocation":"968:6:11","nodeType":"VariableDeclaration","scope":2229,"src":"960:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2214,"name":"address","nodeType":"ElementaryTypeName","src":"960:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2217,"mutability":"mutable","name":"registry","nameLocation":"993:8:11","nodeType":"VariableDeclaration","scope":2229,"src":"985:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2216,"name":"address","nodeType":"ElementaryTypeName","src":"985:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"824:184:11"},"returnParameters":{"id":2227,"nodeType":"ParameterList","parameters":[],"src":"1107:0:11"},"scope":2464,"src":"813:297:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4751],"body":{"id":2393,"nodeType":"Block","src":"1668:2266:11","statements":[{"assignments":[2240],"declarations":[{"constant":false,"id":2240,"mutability":"mutable","name":"activeBundles","nameLocation":"1687:13:11","nodeType":"VariableDeclaration","scope":2393,"src":"1679:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1679:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2243,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2241,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4603,"src":"1703:13:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1703:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1679:39:11"},{"assignments":[2245],"declarations":[{"constant":false,"id":2245,"mutability":"mutable","name":"capital","nameLocation":"1737:7:11","nodeType":"VariableDeclaration","scope":2393,"src":"1729:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1729:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2248,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2246,"name":"getCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4659,"src":"1747:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1747:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1729:30:11"},{"assignments":[2250],"declarations":[{"constant":false,"id":2250,"mutability":"mutable","name":"lockedCapital","nameLocation":"1778:13:11","nodeType":"VariableDeclaration","scope":2393,"src":"1770:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2249,"name":"uint256","nodeType":"ElementaryTypeName","src":"1770:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2253,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2251,"name":"getTotalValueLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"1794:19:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1794:21:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1770:45:11"},{"eventCall":{"arguments":[{"id":2255,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2240,"src":"1868:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2256,"name":"_policiesCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"1883:16:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2254,"name":"LogBasicRiskpoolBundlesAndPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"1833:34:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":2257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1833:67:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2258,"nodeType":"EmitStatement","src":"1828:72:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2260,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2240,"src":"1919:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1935:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1919:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c4553","id":2263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1938:33:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08","typeString":"literal_string \"ERROR:BRP-001:NO_ACTIVE_BUNDLES\""},"value":"ERROR:BRP-001:NO_ACTIVE_BUNDLES"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08","typeString":"literal_string \"ERROR:BRP-001:NO_ACTIVE_BUNDLES\""}],"id":2259,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1911:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1911:61:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2265,"nodeType":"ExpressionStatement","src":"1911:61:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2267,"name":"capital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"1991:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2268,"name":"lockedCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"2001:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1991:23:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c","id":2270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2016:31:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a","typeString":"literal_string \"ERROR:BRP-002:NO_FREE_CAPITAL\""},"value":"ERROR:BRP-002:NO_FREE_CAPITAL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a","typeString":"literal_string \"ERROR:BRP-002:NO_FREE_CAPITAL\""}],"id":2266,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1983:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1983:65:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2272,"nodeType":"ExpressionStatement","src":"1983:65:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2273,"name":"capital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"2124:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2274,"name":"lockedCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"2135:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2275,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2233,"src":"2151:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2135:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2124:43:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2392,"nodeType":"IfStatement","src":"2121:1806:11","trueBody":{"id":2391,"nodeType":"Block","src":"2169:1758:11","statements":[{"assignments":[2282],"declarations":[{"constant":false,"id":2282,"mutability":"mutable","name":"application","nameLocation":"2211:11:11","nodeType":"VariableDeclaration","scope":2391,"src":"2184:38:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":2281,"nodeType":"UserDefinedTypeName","pathNode":{"id":2280,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"2184:19:11"},"referencedDeclaration":5262,"src":"2184:19:11","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":2287,"initialValue":{"arguments":[{"id":2285,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"2257:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2283,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"2225:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":6436,"src":"2225:31:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":2286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2225:42:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"2184:83:11"},{"assignments":[2289],"declarations":[{"constant":false,"id":2289,"mutability":"mutable","name":"idx","nameLocation":"2368:3:11","nodeType":"VariableDeclaration","scope":2391,"src":"2363:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2288,"name":"uint","nodeType":"ElementaryTypeName","src":"2363:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2293,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2290,"name":"_policiesCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"2374:16:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":2291,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2240,"src":"2393:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2374:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2363:43:11"},{"body":{"id":2389,"nodeType":"Block","src":"2921:995:11","statements":[{"assignments":[2308],"declarations":[{"constant":false,"id":2308,"mutability":"mutable","name":"bundleId","nameLocation":"2948:8:11","nodeType":"VariableDeclaration","scope":2389,"src":"2940:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2307,"name":"uint256","nodeType":"ElementaryTypeName","src":"2940:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2312,"initialValue":{"arguments":[{"id":2310,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"2977:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2309,"name":"getActiveBundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4633,"src":"2959:17:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":2311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2959:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2940:41:11"},{"assignments":[2317],"declarations":[{"constant":false,"id":2317,"mutability":"mutable","name":"bundle","nameLocation":"3022:6:11","nodeType":"VariableDeclaration","scope":2389,"src":"3000:28:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":2316,"nodeType":"UserDefinedTypeName","pathNode":{"id":2315,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"3000:14:11"},"referencedDeclaration":4936,"src":"3000:14:11","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":2322,"initialValue":{"arguments":[{"id":2320,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"3058:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2318,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"3031:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":2319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":6408,"src":"3031:26:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":2321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3031:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"3000:67:11"},{"assignments":[2324],"declarations":[{"constant":false,"id":2324,"mutability":"mutable","name":"isMatching","nameLocation":"3091:10:11","nodeType":"VariableDeclaration","scope":2389,"src":"3086:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2323,"name":"bool","nodeType":"ElementaryTypeName","src":"3086:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2329,"initialValue":{"arguments":[{"id":2326,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"3129:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},{"id":2327,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2282,"src":"3137:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"},{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}],"id":2325,"name":"bundleMatchesApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"3104:24:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bundle_$4936_memory_ptr_$_t_struct$_Application_$5262_memory_ptr_$returns$_t_bool_$","typeString":"function (struct IBundle.Bundle memory,struct IPolicy.Application memory) view returns (bool)"}},"id":2328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3104:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3086:63:11"},{"eventCall":{"arguments":[{"id":2331,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"3204:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2332,"name":"isMatching","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"3214:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2330,"name":"LogRiskpoolBundleMatchesPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"3173:30:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":2333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3173:52:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2334,"nodeType":"EmitStatement","src":"3168:57:11"},{"condition":{"id":2335,"name":"isMatching","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"3250:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2388,"nodeType":"IfStatement","src":"3246:655:11","trueBody":{"id":2387,"nodeType":"Block","src":"3262:639:11","statements":[{"assignments":[2337],"declarations":[{"constant":false,"id":2337,"mutability":"mutable","name":"maxAmount","nameLocation":"3293:9:11","nodeType":"VariableDeclaration","scope":2387,"src":"3285:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2336,"name":"uint256","nodeType":"ElementaryTypeName","src":"3285:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2343,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2338,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"3305:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":2339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"3305:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":2340,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"3322:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":2341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"3322:20:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3305:37:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3285:57:11"},{"eventCall":{"arguments":[{"id":2345,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"3413:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2346,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"3418:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2347,"name":"maxAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"3428:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2348,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2233,"src":"3439:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2344,"name":"LogBasicRiskpoolCandidateBundleAmountCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2198,"src":"3370:42:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":2349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3370:86:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2350,"nodeType":"EmitStatement","src":"3365:91:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2351,"name":"maxAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"3485:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2352,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2233,"src":"3498:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3485:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2385,"nodeType":"Block","src":"3800:82:11","statements":[{"expression":{"id":2383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2376,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"3827:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2377,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"3834:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3840:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3834:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2380,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3833:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":2381,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2240,"src":"3845:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3833:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3827:31:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2384,"nodeType":"ExpressionStatement","src":"3827:31:11"}]},"id":2386,"nodeType":"IfStatement","src":"3481:401:11","trueBody":{"id":2375,"nodeType":"Block","src":"3516:278:11","statements":[{"expression":{"arguments":[{"id":2357,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"3580:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2358,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"3590:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2359,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2233,"src":"3601:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2354,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3543:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":2356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collateralizePolicy","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"3543:36:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":2360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3543:75:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2361,"nodeType":"ExpressionStatement","src":"3543:75:11"},{"expression":{"id":2366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2362,"name":"_collateralizedBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"3645:17:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2364,"indexExpression":{"id":2363,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"3663:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3645:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2365,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"3676:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3645:39:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2367,"nodeType":"ExpressionStatement","src":"3645:39:11"},{"expression":{"id":2370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2368,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"3711:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3721:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3711:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2371,"nodeType":"ExpressionStatement","src":"3711:14:11"},{"expression":{"id":2373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3752:18:11","subExpression":{"id":2372,"name":"_policiesCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"3752:16:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2374,"nodeType":"ExpressionStatement","src":"3752:18:11"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"2885:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2299,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2240,"src":"2889:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2885:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":2302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2906:8:11","subExpression":{"id":2301,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"2907:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2885:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2390,"initializationExpression":{"assignments":[2295],"declarations":[{"constant":false,"id":2295,"mutability":"mutable","name":"i","nameLocation":"2878:1:11","nodeType":"VariableDeclaration","scope":2390,"src":"2870:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2294,"name":"uint256","nodeType":"ElementaryTypeName","src":"2870:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2297,"initialValue":{"hexValue":"30","id":2296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2882:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2870:13:11"},"loopExpression":{"expression":{"id":2305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2916:3:11","subExpression":{"id":2304,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"2916:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2306,"nodeType":"ExpressionStatement","src":"2916:3:11"},"nodeType":"ForStatement","src":"2865:1051:11"}]}}]},"id":2394,"implemented":true,"kind":"function","modifiers":[],"name":"_lockCollateral","nameLocation":"1542:15:11","nodeType":"FunctionDefinition","overrides":{"id":2235,"nodeType":"OverrideSpecifier","overrides":[],"src":"1622:8:11"},"parameters":{"id":2234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2231,"mutability":"mutable","name":"processId","nameLocation":"1566:9:11","nodeType":"VariableDeclaration","scope":2394,"src":"1558:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2230,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1558:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2233,"mutability":"mutable","name":"collateralAmount","nameLocation":"1585:16:11","nodeType":"VariableDeclaration","scope":2394,"src":"1577:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2232,"name":"uint256","nodeType":"ElementaryTypeName","src":"1577:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1557:45:11"},"returnParameters":{"id":2238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2237,"mutability":"mutable","name":"success","nameLocation":"1653:7:11","nodeType":"VariableDeclaration","scope":2394,"src":"1648:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2236,"name":"bool","nodeType":"ElementaryTypeName","src":"1648:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1647:14:11"},"scope":2464,"src":"1533:2401:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4765],"body":{"id":2416,"nodeType":"Block","src":"4033:136:11","statements":[{"assignments":[2403],"declarations":[{"constant":false,"id":2403,"mutability":"mutable","name":"bundleId","nameLocation":"4052:8:11","nodeType":"VariableDeclaration","scope":2416,"src":"4044:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2402,"name":"uint256","nodeType":"ElementaryTypeName","src":"4044:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2407,"initialValue":{"baseExpression":{"id":2404,"name":"_collateralizedBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"4063:17:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2406,"indexExpression":{"id":2405,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"4081:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4063:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4044:47:11"},{"expression":{"arguments":[{"id":2411,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"4133:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2412,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"4143:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2413,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2398,"src":"4154:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2408,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"4102:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":2410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":6753,"src":"4102:30:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4102:59:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2415,"nodeType":"ExpressionStatement","src":"4102:59:11"}]},"id":2417,"implemented":true,"kind":"function","modifiers":[],"name":"_processPayout","nameLocation":"3951:14:11","nodeType":"FunctionDefinition","overrides":{"id":2400,"nodeType":"OverrideSpecifier","overrides":[],"src":"4019:8:11"},"parameters":{"id":2399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2396,"mutability":"mutable","name":"processId","nameLocation":"3974:9:11","nodeType":"VariableDeclaration","scope":2417,"src":"3966:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3966:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2398,"mutability":"mutable","name":"amount","nameLocation":"3993:6:11","nodeType":"VariableDeclaration","scope":2417,"src":"3985:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2397,"name":"uint256","nodeType":"ElementaryTypeName","src":"3985:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3965:35:11"},"returnParameters":{"id":2401,"nodeType":"ParameterList","parameters":[],"src":"4033:0:11"},"scope":2464,"src":"3942:227:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4758],"body":{"id":2439,"nodeType":"Block","src":"4269:137:11","statements":[{"assignments":[2426],"declarations":[{"constant":false,"id":2426,"mutability":"mutable","name":"bundleId","nameLocation":"4288:8:11","nodeType":"VariableDeclaration","scope":2439,"src":"4280:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2425,"name":"uint256","nodeType":"ElementaryTypeName","src":"4280:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2430,"initialValue":{"baseExpression":{"id":2427,"name":"_collateralizedBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"4299:17:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2429,"indexExpression":{"id":2428,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2419,"src":"4317:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4299:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4280:47:11"},{"expression":{"arguments":[{"id":2434,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2426,"src":"4370:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2435,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2419,"src":"4380:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2436,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"4391:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2431,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"4338:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":2433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPremium","nodeType":"MemberAccess","referencedDeclaration":6744,"src":"4338:31:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":2437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4338:60:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2438,"nodeType":"ExpressionStatement","src":"4338:60:11"}]},"id":2440,"implemented":true,"kind":"function","modifiers":[],"name":"_processPremium","nameLocation":"4186:15:11","nodeType":"FunctionDefinition","overrides":{"id":2423,"nodeType":"OverrideSpecifier","overrides":[],"src":"4255:8:11"},"parameters":{"id":2422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2419,"mutability":"mutable","name":"processId","nameLocation":"4210:9:11","nodeType":"VariableDeclaration","scope":2440,"src":"4202:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4202:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2421,"mutability":"mutable","name":"amount","nameLocation":"4229:6:11","nodeType":"VariableDeclaration","scope":2440,"src":"4221:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2420,"name":"uint256","nodeType":"ElementaryTypeName","src":"4221:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4201:35:11"},"returnParameters":{"id":2424,"nodeType":"ParameterList","parameters":[],"src":"4269:0:11"},"scope":2464,"src":"4177:229:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4772],"body":{"id":2462,"nodeType":"Block","src":"4538:155:11","statements":[{"assignments":[2449],"declarations":[{"constant":false,"id":2449,"mutability":"mutable","name":"bundleId","nameLocation":"4565:8:11","nodeType":"VariableDeclaration","scope":2462,"src":"4557:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2448,"name":"uint256","nodeType":"ElementaryTypeName","src":"4557:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2453,"initialValue":{"baseExpression":{"id":2450,"name":"_collateralizedBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"4576:17:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2452,"indexExpression":{"id":2451,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2442,"src":"4594:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4576:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4557:47:11"},{"expression":{"id":2460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2454,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2446,"src":"4615:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2457,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2449,"src":"4665:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2458,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2442,"src":"4675:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2455,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"4634:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":2456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"releasePolicy","nodeType":"MemberAccess","referencedDeclaration":6762,"src":"4634:30:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (uint256,bytes32) external returns (uint256)"}},"id":2459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4634:51:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4615:70:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2461,"nodeType":"ExpressionStatement","src":"4615:70:11"}]},"id":2463,"implemented":true,"kind":"function","modifiers":[],"name":"_releaseCollateral","nameLocation":"4423:18:11","nodeType":"FunctionDefinition","overrides":{"id":2444,"nodeType":"OverrideSpecifier","overrides":[],"src":"4480:8:11"},"parameters":{"id":2443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2442,"mutability":"mutable","name":"processId","nameLocation":"4450:9:11","nodeType":"VariableDeclaration","scope":2463,"src":"4442:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4442:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4441:19:11"},"returnParameters":{"id":2447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2446,"mutability":"mutable","name":"collateralAmount","nameLocation":"4514:16:11","nodeType":"VariableDeclaration","scope":2463,"src":"4506:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2445,"name":"uint256","nodeType":"ElementaryTypeName","src":"4506:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4505:26:11"},"scope":2464,"src":"4414:279:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":2465,"src":"244:4452:11"}],"src":"40:4656:11"},"id":11},"@etherisc/gif-interface/contracts/components/Component.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/Component.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481]},"id":2885,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":2466,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:12"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"./IComponent.sol","id":2467,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":2989,"src":"66:26:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IAccess.sol","file":"../modules/IAccess.sol","id":2468,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":4837,"src":"94:32:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol","file":"../modules/IComponentEvents.sol","id":2469,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":5074,"src":"128:41:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"../modules/IRegistry.sol","id":2470,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":5715,"src":"171:34:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","file":"../services/IComponentOwnerService.sol","id":2471,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":6010,"src":"207:48:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"../services/IInstanceService.sol","id":2472,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":6510,"src":"257:42:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":2473,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":7482,"src":"301:52:12","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2474,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"498:10:12"},"id":2475,"nodeType":"InheritanceSpecifier","src":"498:10:12"},{"baseName":{"id":2476,"name":"IComponentEvents","nodeType":"IdentifierPath","referencedDeclaration":5073,"src":"515:16:12"},"id":2477,"nodeType":"InheritanceSpecifier","src":"515:16:12"},{"baseName":{"id":2478,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"538:7:12"},"id":2479,"nodeType":"InheritanceSpecifier","src":"538:7:12"}],"contractDependencies":[2988,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":2884,"linearizedBaseContracts":[2884,7481,10518,5073,2988],"name":"Component","nameLocation":"479:9:12","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":2481,"mutability":"mutable","name":"_componentName","nameLocation":"571:14:12","nodeType":"VariableDeclaration","scope":2884,"src":"555:30:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"555:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":2483,"mutability":"mutable","name":"_componentId","nameLocation":"608:12:12","nodeType":"VariableDeclaration","scope":2884,"src":"592:28:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2482,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":2486,"mutability":"mutable","name":"_componentType","nameLocation":"660:14:12","nodeType":"VariableDeclaration","scope":2884,"src":"627:47:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":2485,"nodeType":"UserDefinedTypeName","pathNode":{"id":2484,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"627:24:12"},"referencedDeclaration":2891,"src":"627:24:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"private"},{"constant":false,"id":2489,"mutability":"mutable","name":"_registry","nameLocation":"701:9:12","nodeType":"VariableDeclaration","scope":2884,"src":"683:27:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":2488,"nodeType":"UserDefinedTypeName","pathNode":{"id":2487,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"683:9:12"},"referencedDeclaration":5714,"src":"683:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"private"},{"constant":false,"id":2492,"mutability":"mutable","name":"_access","nameLocation":"733:7:12","nodeType":"VariableDeclaration","scope":2884,"src":"717:23:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"},"typeName":{"id":2491,"nodeType":"UserDefinedTypeName","pathNode":{"id":2490,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"717:7:12"},"referencedDeclaration":4836,"src":"717:7:12","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"visibility":"private"},{"constant":false,"id":2495,"mutability":"mutable","name":"_componentOwnerService","nameLocation":"778:22:12","nodeType":"VariableDeclaration","scope":2884,"src":"747:53:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":2494,"nodeType":"UserDefinedTypeName","pathNode":{"id":2493,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"747:22:12"},"referencedDeclaration":6009,"src":"747:22:12","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"private"},{"constant":false,"id":2498,"mutability":"mutable","name":"_instanceService","nameLocation":"832:16:12","nodeType":"VariableDeclaration","scope":2884,"src":"807:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":2497,"nodeType":"UserDefinedTypeName","pathNode":{"id":2496,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"807:16:12"},"referencedDeclaration":6509,"src":"807:16:12","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"private"},{"body":{"id":2511,"nodeType":"Block","src":"896:177:12","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2501,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"930:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"930:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":2504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"966:25:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"id":2503,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"946:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"946:46:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"930:62:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434d502d3030313a4e4f545f494e5354414e43455f4f50455241544f525f53455256494345","id":2507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1007:45:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cf129911f5ea89264cf2d932a66d14be63649422912365886718bb28b51326b","typeString":"literal_string \"ERROR:CMP-001:NOT_INSTANCE_OPERATOR_SERVICE\""},"value":"ERROR:CMP-001:NOT_INSTANCE_OPERATOR_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0cf129911f5ea89264cf2d932a66d14be63649422912365886718bb28b51326b","typeString":"literal_string \"ERROR:CMP-001:NOT_INSTANCE_OPERATOR_SERVICE\""}],"id":2500,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"907:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"907:146:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2509,"nodeType":"ExpressionStatement","src":"907:146:12"},{"id":2510,"nodeType":"PlaceholderStatement","src":"1064:1:12"}]},"id":2512,"name":"onlyInstanceOperatorService","nameLocation":"866:27:12","nodeType":"ModifierDefinition","parameters":{"id":2499,"nodeType":"ParameterList","parameters":[],"src":"893:2:12"},"src":"857:216:12","virtual":false,"visibility":"internal"},{"body":{"id":2525,"nodeType":"Block","src":"1106:147:12","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2515,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1140:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1140:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"436f6d706f6e656e74","id":2518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1176:11:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":2517,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1156:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":2519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1156:32:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1140:48:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e54","id":2521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1203:29:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a","typeString":"literal_string \"ERROR:CMP-002:NOT_COMPONENT\""},"value":"ERROR:CMP-002:NOT_COMPONENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a","typeString":"literal_string \"ERROR:CMP-002:NOT_COMPONENT\""}],"id":2514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1117:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1117:116:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2523,"nodeType":"ExpressionStatement","src":"1117:116:12"},{"id":2524,"nodeType":"PlaceholderStatement","src":"1244:1:12"}]},"id":2526,"name":"onlyComponent","nameLocation":"1090:13:12","nodeType":"ModifierDefinition","parameters":{"id":2513,"nodeType":"ParameterList","parameters":[],"src":"1103:2:12"},"src":"1081:172:12","virtual":false,"visibility":"internal"},{"body":{"id":2540,"nodeType":"Block","src":"1298:160:12","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2529,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1332:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1332:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":2533,"name":"_componentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"1356:22:12","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}],"id":2532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1348:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2531,"name":"address","nodeType":"ElementaryTypeName","src":"1348:7:12","typeDescriptions":{}}},"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1348:31:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1332:47:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434d502d3030333a4e4f545f434f4d504f4e454e545f4f574e45525f53455256494345","id":2536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1394:43:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a42b6523909db0c3f07c7fc4301f658eda0aaaedcec4492e9f126a1a0b351bc","typeString":"literal_string \"ERROR:CMP-003:NOT_COMPONENT_OWNER_SERVICE\""},"value":"ERROR:CMP-003:NOT_COMPONENT_OWNER_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a42b6523909db0c3f07c7fc4301f658eda0aaaedcec4492e9f126a1a0b351bc","typeString":"literal_string \"ERROR:CMP-003:NOT_COMPONENT_OWNER_SERVICE\""}],"id":2528,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1309:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1309:129:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2538,"nodeType":"ExpressionStatement","src":"1309:129:12"},{"id":2539,"nodeType":"PlaceholderStatement","src":"1449:1:12"}]},"id":2541,"name":"onlyComponentOwnerService","nameLocation":"1270:25:12","nodeType":"ModifierDefinition","parameters":{"id":2527,"nodeType":"ParameterList","parameters":[],"src":"1295:2:12"},"src":"1261:197:12","virtual":false,"visibility":"internal"},{"body":{"id":2605,"nodeType":"Block","src":"1608:515:12","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2554,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2548,"src":"1627:8:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1647:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1639:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2555,"name":"address","nodeType":"ElementaryTypeName","src":"1639:7:12","typeDescriptions":{}}},"id":2558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1639:10:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1627:22:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434d502d3030343a52454749535452595f414444524553535f5a45524f","id":2560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1651:37:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc","typeString":"literal_string \"ERROR:CMP-004:REGISTRY_ADDRESS_ZERO\""},"value":"ERROR:CMP-004:REGISTRY_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc","typeString":"literal_string \"ERROR:CMP-004:REGISTRY_ADDRESS_ZERO\""}],"id":2553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1619:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1619:70:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2562,"nodeType":"ExpressionStatement","src":"1619:70:12"},{"expression":{"id":2567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2563,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"1702:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2565,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2548,"src":"1724:8:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2564,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"1714:9:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$5714_$","typeString":"type(contract IRegistry)"}},"id":2566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1714:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"src":"1702:31:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":2568,"nodeType":"ExpressionStatement","src":"1702:31:12"},{"expression":{"id":2572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2569,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2492,"src":"1744:7:12","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":2570,"name":"_getAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"1754:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IAccess_$4836_$","typeString":"function () view returns (contract IAccess)"}},"id":2571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1754:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"src":"1744:22:12","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":2573,"nodeType":"ExpressionStatement","src":"1744:22:12"},{"expression":{"id":2577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2574,"name":"_componentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"1777:22:12","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":2575,"name":"_getComponentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2870,"src":"1802:25:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IComponentOwnerService_$6009_$","typeString":"function () view returns (contract IComponentOwnerService)"}},"id":2576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1802:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"src":"1777:52:12","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"id":2578,"nodeType":"ExpressionStatement","src":"1777:52:12"},{"expression":{"id":2582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2579,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2498,"src":"1840:16:12","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":2580,"name":"_getInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"1859:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IInstanceService_$6509_$","typeString":"function () view returns (contract IInstanceService)"}},"id":2581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1859:21:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"src":"1840:40:12","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":2583,"nodeType":"ExpressionStatement","src":"1840:40:12"},{"expression":{"id":2586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2584,"name":"_componentName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"1893:14:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2585,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2543,"src":"1910:4:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1893:21:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2587,"nodeType":"ExpressionStatement","src":"1893:21:12"},{"expression":{"id":2590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2588,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"1925:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2589,"name":"componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2546,"src":"1942:13:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"1925:30:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"id":2591,"nodeType":"ExpressionStatement","src":"1925:30:12"},{"eventCall":{"arguments":[{"id":2593,"name":"_componentName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"2007:14:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2594,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"2037:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},{"arguments":[{"id":2597,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"2075:4:12","typeDescriptions":{"typeIdentifier":"t_contract$_Component_$2884","typeString":"contract Component"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Component_$2884","typeString":"contract Component"}],"id":2596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2067:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2595,"name":"address","nodeType":"ElementaryTypeName","src":"2067:7:12","typeDescriptions":{}}},"id":2598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2067:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":2601,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"2104:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}],"id":2600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2096:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2599,"name":"address","nodeType":"ElementaryTypeName","src":"2096:7:12","typeDescriptions":{}}},"id":2602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2096:18:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2592,"name":"LogComponentCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"1973:19:12","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_ComponentType_$2891_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,enum IComponent.ComponentType,address,address)"}},"id":2603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1973:142:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2604,"nodeType":"EmitStatement","src":"1968:147:12"}]},"id":2606,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":2551,"modifierName":{"id":2550,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"1593:7:12"},"nodeType":"ModifierInvocation","src":"1593:9:12"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2543,"mutability":"mutable","name":"name","nameLocation":"1496:4:12","nodeType":"VariableDeclaration","scope":2606,"src":"1488:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1488:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2546,"mutability":"mutable","name":"componentType","nameLocation":"1536:13:12","nodeType":"VariableDeclaration","scope":2606,"src":"1511:38:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":2545,"nodeType":"UserDefinedTypeName","pathNode":{"id":2544,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"1511:24:12"},"referencedDeclaration":2891,"src":"1511:24:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"},{"constant":false,"id":2548,"mutability":"mutable","name":"registry","nameLocation":"1568:8:12","nodeType":"VariableDeclaration","scope":2606,"src":"1560:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2547,"name":"address","nodeType":"ElementaryTypeName","src":"1560:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1477:106:12"},"returnParameters":{"id":2552,"nodeType":"ParameterList","parameters":[],"src":"1608:0:12"},"scope":2884,"src":"1466:657:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2915],"body":{"id":2618,"nodeType":"Block","src":"2190:22:12","statements":[{"expression":{"id":2616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2614,"name":"_componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2192:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2615,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"2207:2:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2192:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2617,"nodeType":"ExpressionStatement","src":"2192:17:12"}]},"functionSelector":"d0e0ba95","id":2619,"implemented":true,"kind":"function","modifiers":[{"id":2612,"modifierName":{"id":2611,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"2176:13:12"},"nodeType":"ModifierInvocation","src":"2176:13:12"}],"name":"setId","nameLocation":"2140:5:12","nodeType":"FunctionDefinition","overrides":{"id":2610,"nodeType":"OverrideSpecifier","overrides":[],"src":"2167:8:12"},"parameters":{"id":2609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2608,"mutability":"mutable","name":"id","nameLocation":"2154:2:12","nodeType":"VariableDeclaration","scope":2619,"src":"2146:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2607,"name":"uint256","nodeType":"ElementaryTypeName","src":"2146:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2145:12:12"},"returnParameters":{"id":2613,"nodeType":"ParameterList","parameters":[],"src":"2190:0:12"},"scope":2884,"src":"2131:81:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2920],"body":{"id":2627,"nodeType":"Block","src":"2277:26:12","statements":[{"expression":{"id":2625,"name":"_componentName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"2286:14:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2624,"id":2626,"nodeType":"Return","src":"2279:21:12"}]},"functionSelector":"17d7de7c","id":2628,"implemented":true,"kind":"function","modifiers":[],"name":"getName","nameLocation":"2229:7:12","nodeType":"FunctionDefinition","overrides":{"id":2621,"nodeType":"OverrideSpecifier","overrides":[],"src":"2246:8:12"},"parameters":{"id":2620,"nodeType":"ParameterList","parameters":[],"src":"2236:2:12"},"returnParameters":{"id":2624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2628,"src":"2268:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2268:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2267:9:12"},"scope":2884,"src":"2220:83:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2925],"body":{"id":2636,"nodeType":"Block","src":"2364:24:12","statements":[{"expression":{"id":2634,"name":"_componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2373:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2633,"id":2635,"nodeType":"Return","src":"2366:19:12"}]},"functionSelector":"5d1ca631","id":2637,"implemented":true,"kind":"function","modifiers":[],"name":"getId","nameLocation":"2318:5:12","nodeType":"FunctionDefinition","overrides":{"id":2630,"nodeType":"OverrideSpecifier","overrides":[],"src":"2333:8:12"},"parameters":{"id":2629,"nodeType":"ParameterList","parameters":[],"src":"2323:2:12"},"returnParameters":{"id":2633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2637,"src":"2355:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2631,"name":"uint256","nodeType":"ElementaryTypeName","src":"2355:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2354:9:12"},"scope":2884,"src":"2309:79:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2931],"body":{"id":2646,"nodeType":"Block","src":"2468:26:12","statements":[{"expression":{"id":2644,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"2477:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":2643,"id":2645,"nodeType":"Return","src":"2470:21:12"}]},"functionSelector":"15dae03e","id":2647,"implemented":true,"kind":"function","modifiers":[],"name":"getType","nameLocation":"2403:7:12","nodeType":"FunctionDefinition","overrides":{"id":2639,"nodeType":"OverrideSpecifier","overrides":[],"src":"2420:8:12"},"parameters":{"id":2638,"nodeType":"ParameterList","parameters":[],"src":"2410:2:12"},"returnParameters":{"id":2643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2647,"src":"2442:24:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":2641,"nodeType":"UserDefinedTypeName","pathNode":{"id":2640,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"2442:24:12"},"referencedDeclaration":2891,"src":"2442:24:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"2441:26:12"},"scope":2884,"src":"2394:100:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2937],"body":{"id":2659,"nodeType":"Block","src":"2576:60:12","statements":[{"expression":{"arguments":[{"id":2656,"name":"_componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2620:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2654,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2498,"src":"2585:16:12","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":2655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":6311,"src":"2585:34:12","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2585:48:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"functionReturnParameters":2653,"id":2658,"nodeType":"Return","src":"2578:55:12"}]},"functionSelector":"1865c57d","id":2660,"implemented":true,"kind":"function","modifiers":[],"name":"getState","nameLocation":"2509:8:12","nodeType":"FunctionDefinition","overrides":{"id":2649,"nodeType":"OverrideSpecifier","overrides":[],"src":"2527:8:12"},"parameters":{"id":2648,"nodeType":"ParameterList","parameters":[],"src":"2517:2:12"},"returnParameters":{"id":2653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2660,"src":"2549:25:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":2651,"nodeType":"UserDefinedTypeName","pathNode":{"id":2650,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"2549:25:12"},"referencedDeclaration":2899,"src":"2549:25:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"2548:27:12"},"scope":2884,"src":"2500:136:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2942],"body":{"id":2669,"nodeType":"Block","src":"2700:19:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2666,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"2709:5:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2709:7:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2665,"id":2668,"nodeType":"Return","src":"2702:14:12"}]},"functionSelector":"893d20e8","id":2670,"implemented":true,"kind":"function","modifiers":[],"name":"getOwner","nameLocation":"2651:8:12","nodeType":"FunctionDefinition","overrides":{"id":2662,"nodeType":"OverrideSpecifier","overrides":[],"src":"2669:8:12"},"parameters":{"id":2661,"nodeType":"ParameterList","parameters":[],"src":"2659:2:12"},"returnParameters":{"id":2665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2670,"src":"2691:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2663,"name":"address","nodeType":"ElementaryTypeName","src":"2691:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2690:9:12"},"scope":2884,"src":"2642:77:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2947],"body":{"id":2682,"nodeType":"Block","src":"2783:62:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":2680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2676,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"2792:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":2677,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"2810:10:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":2678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"2810:24:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":2679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Product","nodeType":"MemberAccess","referencedDeclaration":2889,"src":"2810:32:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"2792:50:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2675,"id":2681,"nodeType":"Return","src":"2785:57:12"}]},"functionSelector":"e0815f0d","id":2683,"implemented":true,"kind":"function","modifiers":[],"name":"isProduct","nameLocation":"2736:9:12","nodeType":"FunctionDefinition","overrides":{"id":2672,"nodeType":"OverrideSpecifier","overrides":[],"src":"2755:8:12"},"parameters":{"id":2671,"nodeType":"ParameterList","parameters":[],"src":"2745:2:12"},"returnParameters":{"id":2675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2683,"src":"2777:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2673,"name":"bool","nodeType":"ElementaryTypeName","src":"2777:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2776:6:12"},"scope":2884,"src":"2727:118:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2952],"body":{"id":2695,"nodeType":"Block","src":"2906:61:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":2693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2689,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"2915:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":2690,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"2933:10:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":2691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"2933:24:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":2692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Oracle","nodeType":"MemberAccess","referencedDeclaration":2888,"src":"2933:31:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"2915:49:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2688,"id":2694,"nodeType":"Return","src":"2908:56:12"}]},"functionSelector":"9a82f890","id":2696,"implemented":true,"kind":"function","modifiers":[],"name":"isOracle","nameLocation":"2860:8:12","nodeType":"FunctionDefinition","overrides":{"id":2685,"nodeType":"OverrideSpecifier","overrides":[],"src":"2878:8:12"},"parameters":{"id":2684,"nodeType":"ParameterList","parameters":[],"src":"2868:2:12"},"returnParameters":{"id":2688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2696,"src":"2900:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2686,"name":"bool","nodeType":"ElementaryTypeName","src":"2900:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2899:6:12"},"scope":2884,"src":"2851:116:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2957],"body":{"id":2708,"nodeType":"Block","src":"3030:63:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":2706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2702,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"3039:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":2703,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"3057:10:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":2704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"3057:24:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":2705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"3057:33:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"3039:51:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2701,"id":2707,"nodeType":"Return","src":"3032:58:12"}]},"functionSelector":"258d560c","id":2709,"implemented":true,"kind":"function","modifiers":[],"name":"isRiskpool","nameLocation":"2982:10:12","nodeType":"FunctionDefinition","overrides":{"id":2698,"nodeType":"OverrideSpecifier","overrides":[],"src":"3002:8:12"},"parameters":{"id":2697,"nodeType":"ParameterList","parameters":[],"src":"2992:2:12"},"returnParameters":{"id":2701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2709,"src":"3024:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2699,"name":"bool","nodeType":"ElementaryTypeName","src":"3024:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3023:6:12"},"scope":2884,"src":"2973:120:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2963],"body":{"id":2718,"nodeType":"Block","src":"3166:21:12","statements":[{"expression":{"id":2716,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"3175:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"functionReturnParameters":2715,"id":2717,"nodeType":"Return","src":"3168:16:12"}]},"functionSelector":"5ab1bd53","id":2719,"implemented":true,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"3110:11:12","nodeType":"FunctionDefinition","overrides":{"id":2711,"nodeType":"OverrideSpecifier","overrides":[],"src":"3133:8:12"},"parameters":{"id":2710,"nodeType":"ParameterList","parameters":[],"src":"3121:2:12"},"returnParameters":{"id":2715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2719,"src":"3155:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":2713,"nodeType":"UserDefinedTypeName","pathNode":{"id":2712,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"3155:9:12"},"referencedDeclaration":5714,"src":"3155:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"3154:11:12"},"scope":2884,"src":"3101:86:12","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2966],"body":{"id":2728,"nodeType":"Block","src":"3253:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2725,"name":"_afterPropose","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2803,"src":"3255:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3255:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2727,"nodeType":"ExpressionStatement","src":"3255:15:12"}]},"functionSelector":"638ce0ba","id":2729,"implemented":true,"kind":"function","modifiers":[{"id":2723,"modifierName":{"id":2722,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3239:13:12"},"nodeType":"ModifierInvocation","src":"3239:13:12"}],"name":"proposalCallback","nameLocation":"3204:16:12","nodeType":"FunctionDefinition","overrides":{"id":2721,"nodeType":"OverrideSpecifier","overrides":[],"src":"3230:8:12"},"parameters":{"id":2720,"nodeType":"ParameterList","parameters":[],"src":"3220:2:12"},"returnParameters":{"id":2724,"nodeType":"ParameterList","parameters":[],"src":"3253:0:12"},"scope":2884,"src":"3195:78:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2969],"body":{"id":2738,"nodeType":"Block","src":"3337:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2735,"name":"_afterApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2807,"src":"3339:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3339:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2737,"nodeType":"ExpressionStatement","src":"3339:15:12"}]},"functionSelector":"1b867c63","id":2739,"implemented":true,"kind":"function","modifiers":[{"id":2733,"modifierName":{"id":2732,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3323:13:12"},"nodeType":"ModifierInvocation","src":"3323:13:12"}],"name":"approvalCallback","nameLocation":"3288:16:12","nodeType":"FunctionDefinition","overrides":{"id":2731,"nodeType":"OverrideSpecifier","overrides":[],"src":"3314:8:12"},"parameters":{"id":2730,"nodeType":"ParameterList","parameters":[],"src":"3304:2:12"},"returnParameters":{"id":2734,"nodeType":"ParameterList","parameters":[],"src":"3337:0:12"},"scope":2884,"src":"3279:78:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2972],"body":{"id":2748,"nodeType":"Block","src":"3420:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2745,"name":"_afterDecline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"3422:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3422:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2747,"nodeType":"ExpressionStatement","src":"3422:15:12"}]},"functionSelector":"bd1fe5d0","id":2749,"implemented":true,"kind":"function","modifiers":[{"id":2743,"modifierName":{"id":2742,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3406:13:12"},"nodeType":"ModifierInvocation","src":"3406:13:12"}],"name":"declineCallback","nameLocation":"3372:15:12","nodeType":"FunctionDefinition","overrides":{"id":2741,"nodeType":"OverrideSpecifier","overrides":[],"src":"3397:8:12"},"parameters":{"id":2740,"nodeType":"ParameterList","parameters":[],"src":"3387:2:12"},"returnParameters":{"id":2744,"nodeType":"ParameterList","parameters":[],"src":"3420:0:12"},"scope":2884,"src":"3363:77:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2975],"body":{"id":2758,"nodeType":"Block","src":"3503:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2755,"name":"_afterSuspend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"3505:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3505:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2757,"nodeType":"ExpressionStatement","src":"3505:15:12"}]},"functionSelector":"b3fca9bd","id":2759,"implemented":true,"kind":"function","modifiers":[{"id":2753,"modifierName":{"id":2752,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3489:13:12"},"nodeType":"ModifierInvocation","src":"3489:13:12"}],"name":"suspendCallback","nameLocation":"3455:15:12","nodeType":"FunctionDefinition","overrides":{"id":2751,"nodeType":"OverrideSpecifier","overrides":[],"src":"3480:8:12"},"parameters":{"id":2750,"nodeType":"ParameterList","parameters":[],"src":"3470:2:12"},"returnParameters":{"id":2754,"nodeType":"ParameterList","parameters":[],"src":"3503:0:12"},"scope":2884,"src":"3446:77:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2978],"body":{"id":2768,"nodeType":"Block","src":"3585:19:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2765,"name":"_afterResume","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2819,"src":"3587:12:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3587:14:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2767,"nodeType":"ExpressionStatement","src":"3587:14:12"}]},"functionSelector":"a18f5ae2","id":2769,"implemented":true,"kind":"function","modifiers":[{"id":2763,"modifierName":{"id":2762,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3571:13:12"},"nodeType":"ModifierInvocation","src":"3571:13:12"}],"name":"resumeCallback","nameLocation":"3538:14:12","nodeType":"FunctionDefinition","overrides":{"id":2761,"nodeType":"OverrideSpecifier","overrides":[],"src":"3562:8:12"},"parameters":{"id":2760,"nodeType":"ParameterList","parameters":[],"src":"3552:2:12"},"returnParameters":{"id":2764,"nodeType":"ParameterList","parameters":[],"src":"3585:0:12"},"scope":2884,"src":"3529:75:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2981],"body":{"id":2778,"nodeType":"Block","src":"3665:18:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2775,"name":"_afterPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2823,"src":"3667:11:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3667:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2777,"nodeType":"ExpressionStatement","src":"3667:13:12"}]},"functionSelector":"d73cd992","id":2779,"implemented":true,"kind":"function","modifiers":[{"id":2773,"modifierName":{"id":2772,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3651:13:12"},"nodeType":"ModifierInvocation","src":"3651:13:12"}],"name":"pauseCallback","nameLocation":"3619:13:12","nodeType":"FunctionDefinition","overrides":{"id":2771,"nodeType":"OverrideSpecifier","overrides":[],"src":"3642:8:12"},"parameters":{"id":2770,"nodeType":"ParameterList","parameters":[],"src":"3632:2:12"},"returnParameters":{"id":2774,"nodeType":"ParameterList","parameters":[],"src":"3665:0:12"},"scope":2884,"src":"3610:73:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2984],"body":{"id":2788,"nodeType":"Block","src":"3746:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2785,"name":"_afterUnpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2827,"src":"3748:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3748:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2787,"nodeType":"ExpressionStatement","src":"3748:15:12"}]},"functionSelector":"59dacc6a","id":2789,"implemented":true,"kind":"function","modifiers":[{"id":2783,"modifierName":{"id":2782,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3732:13:12"},"nodeType":"ModifierInvocation","src":"3732:13:12"}],"name":"unpauseCallback","nameLocation":"3698:15:12","nodeType":"FunctionDefinition","overrides":{"id":2781,"nodeType":"OverrideSpecifier","overrides":[],"src":"3723:8:12"},"parameters":{"id":2780,"nodeType":"ParameterList","parameters":[],"src":"3713:2:12"},"returnParameters":{"id":2784,"nodeType":"ParameterList","parameters":[],"src":"3746:0:12"},"scope":2884,"src":"3689:77:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2987],"body":{"id":2798,"nodeType":"Block","src":"3829:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2795,"name":"_afterArchive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2831,"src":"3831:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3831:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2797,"nodeType":"ExpressionStatement","src":"3831:15:12"}]},"functionSelector":"be169e7e","id":2799,"implemented":true,"kind":"function","modifiers":[{"id":2793,"modifierName":{"id":2792,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3815:13:12"},"nodeType":"ModifierInvocation","src":"3815:13:12"}],"name":"archiveCallback","nameLocation":"3781:15:12","nodeType":"FunctionDefinition","overrides":{"id":2791,"nodeType":"OverrideSpecifier","overrides":[],"src":"3806:8:12"},"parameters":{"id":2790,"nodeType":"ParameterList","parameters":[],"src":"3796:2:12"},"returnParameters":{"id":2794,"nodeType":"ParameterList","parameters":[],"src":"3829:0:12"},"scope":2884,"src":"3772:77:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2802,"nodeType":"Block","src":"4020:2:12","statements":[]},"id":2803,"implemented":true,"kind":"function","modifiers":[],"name":"_afterPropose","nameLocation":"3987:13:12","nodeType":"FunctionDefinition","parameters":{"id":2800,"nodeType":"ParameterList","parameters":[],"src":"4000:2:12"},"returnParameters":{"id":2801,"nodeType":"ParameterList","parameters":[],"src":"4020:0:12"},"scope":2884,"src":"3978:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2806,"nodeType":"Block","src":"4070:2:12","statements":[]},"id":2807,"implemented":true,"kind":"function","modifiers":[],"name":"_afterApprove","nameLocation":"4037:13:12","nodeType":"FunctionDefinition","parameters":{"id":2804,"nodeType":"ParameterList","parameters":[],"src":"4050:2:12"},"returnParameters":{"id":2805,"nodeType":"ParameterList","parameters":[],"src":"4070:0:12"},"scope":2884,"src":"4028:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2810,"nodeType":"Block","src":"4120:2:12","statements":[]},"id":2811,"implemented":true,"kind":"function","modifiers":[],"name":"_afterDecline","nameLocation":"4087:13:12","nodeType":"FunctionDefinition","parameters":{"id":2808,"nodeType":"ParameterList","parameters":[],"src":"4100:2:12"},"returnParameters":{"id":2809,"nodeType":"ParameterList","parameters":[],"src":"4120:0:12"},"scope":2884,"src":"4078:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2814,"nodeType":"Block","src":"4170:2:12","statements":[]},"id":2815,"implemented":true,"kind":"function","modifiers":[],"name":"_afterSuspend","nameLocation":"4137:13:12","nodeType":"FunctionDefinition","parameters":{"id":2812,"nodeType":"ParameterList","parameters":[],"src":"4150:2:12"},"returnParameters":{"id":2813,"nodeType":"ParameterList","parameters":[],"src":"4170:0:12"},"scope":2884,"src":"4128:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2818,"nodeType":"Block","src":"4219:2:12","statements":[]},"id":2819,"implemented":true,"kind":"function","modifiers":[],"name":"_afterResume","nameLocation":"4187:12:12","nodeType":"FunctionDefinition","parameters":{"id":2816,"nodeType":"ParameterList","parameters":[],"src":"4199:2:12"},"returnParameters":{"id":2817,"nodeType":"ParameterList","parameters":[],"src":"4219:0:12"},"scope":2884,"src":"4178:43:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2822,"nodeType":"Block","src":"4267:2:12","statements":[]},"id":2823,"implemented":true,"kind":"function","modifiers":[],"name":"_afterPause","nameLocation":"4236:11:12","nodeType":"FunctionDefinition","parameters":{"id":2820,"nodeType":"ParameterList","parameters":[],"src":"4247:2:12"},"returnParameters":{"id":2821,"nodeType":"ParameterList","parameters":[],"src":"4267:0:12"},"scope":2884,"src":"4227:42:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2826,"nodeType":"Block","src":"4317:2:12","statements":[]},"id":2827,"implemented":true,"kind":"function","modifiers":[],"name":"_afterUnpause","nameLocation":"4284:13:12","nodeType":"FunctionDefinition","parameters":{"id":2824,"nodeType":"ParameterList","parameters":[],"src":"4297:2:12"},"returnParameters":{"id":2825,"nodeType":"ParameterList","parameters":[],"src":"4317:0:12"},"scope":2884,"src":"4275:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2830,"nodeType":"Block","src":"4367:2:12","statements":[]},"id":2831,"implemented":true,"kind":"function","modifiers":[],"name":"_afterArchive","nameLocation":"4334:13:12","nodeType":"FunctionDefinition","parameters":{"id":2828,"nodeType":"ParameterList","parameters":[],"src":"4347:2:12"},"returnParameters":{"id":2829,"nodeType":"ParameterList","parameters":[],"src":"4367:0:12"},"scope":2884,"src":"4325:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2843,"nodeType":"Block","src":"4431:72:12","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"416363657373","id":2839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4477:8:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""}],"id":2838,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"4457:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4457:29:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2837,"name":"IAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"4449:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccess_$4836_$","typeString":"type(contract IAccess)"}},"id":2841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4449:38:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"functionReturnParameters":2836,"id":2842,"nodeType":"Return","src":"4442:45:12"}]},"id":2844,"implemented":true,"kind":"function","modifiers":[],"name":"_getAccess","nameLocation":"4386:10:12","nodeType":"FunctionDefinition","parameters":{"id":2832,"nodeType":"ParameterList","parameters":[],"src":"4396:2:12"},"returnParameters":{"id":2836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2835,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2844,"src":"4422:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"},"typeName":{"id":2834,"nodeType":"UserDefinedTypeName","pathNode":{"id":2833,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"4422:7:12"},"referencedDeclaration":4836,"src":"4422:7:12","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"visibility":"internal"}],"src":"4421:9:12"},"scope":2884,"src":"4377:126:12","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2856,"nodeType":"Block","src":"4583:90:12","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"496e7374616e636553657276696365","id":2852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4638:17:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""},"value":"InstanceService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""}],"id":2851,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"4618:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":2853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4618:38:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2850,"name":"IInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"4601:16:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IInstanceService_$6509_$","typeString":"type(contract IInstanceService)"}},"id":2854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4601:56:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"functionReturnParameters":2849,"id":2855,"nodeType":"Return","src":"4594:63:12"}]},"id":2857,"implemented":true,"kind":"function","modifiers":[],"name":"_getInstanceService","nameLocation":"4520:19:12","nodeType":"FunctionDefinition","parameters":{"id":2845,"nodeType":"ParameterList","parameters":[],"src":"4539:2:12"},"returnParameters":{"id":2849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2848,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2857,"src":"4565:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":2847,"nodeType":"UserDefinedTypeName","pathNode":{"id":2846,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"4565:16:12"},"referencedDeclaration":6509,"src":"4565:16:12","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"internal"}],"src":"4564:18:12"},"scope":2884,"src":"4511:162:12","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2869,"nodeType":"Block","src":"4765:102:12","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e744f776e657253657276696365","id":2865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4826:23:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""},"value":"ComponentOwnerService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""}],"id":2864,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"4806:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":2866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4806:44:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2863,"name":"IComponentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6009,"src":"4783:22:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponentOwnerService_$6009_$","typeString":"type(contract IComponentOwnerService)"}},"id":2867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4783:68:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"functionReturnParameters":2862,"id":2868,"nodeType":"Return","src":"4776:75:12"}]},"id":2870,"implemented":true,"kind":"function","modifiers":[],"name":"_getComponentOwnerService","nameLocation":"4690:25:12","nodeType":"FunctionDefinition","parameters":{"id":2858,"nodeType":"ParameterList","parameters":[],"src":"4715:2:12"},"returnParameters":{"id":2862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2870,"src":"4741:22:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":2860,"nodeType":"UserDefinedTypeName","pathNode":{"id":2859,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"4741:22:12"},"referencedDeclaration":6009,"src":"4741:22:12","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"internal"}],"src":"4740:24:12"},"scope":2884,"src":"4681:186:12","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2882,"nodeType":"Block","src":"4958:62:12","statements":[{"expression":{"arguments":[{"id":2879,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2872,"src":"4999:12:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2877,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"4977:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":2878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContract","nodeType":"MemberAccess","referencedDeclaration":5687,"src":"4977:21:12","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":2880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4977:35:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2876,"id":2881,"nodeType":"Return","src":"4970:42:12"}]},"id":2883,"implemented":true,"kind":"function","modifiers":[],"name":"_getContractAddress","nameLocation":"4884:19:12","nodeType":"FunctionDefinition","parameters":{"id":2873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2872,"mutability":"mutable","name":"contractName","nameLocation":"4912:12:12","nodeType":"VariableDeclaration","scope":2883,"src":"4904:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4904:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4903:22:12"},"returnParameters":{"id":2876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2875,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2883,"src":"4949:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2874,"name":"address","nodeType":"ElementaryTypeName","src":"4949:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4948:9:12"},"scope":2884,"src":"4875:145:12","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2885,"src":"461:4564:12"}],"src":"40:4987:12"},"id":12},"@etherisc/gif-interface/contracts/components/IComponent.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","exportedSymbols":{"IComponent":[2988],"IRegistry":[5714]},"id":2989,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":2886,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:13"},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"../modules/IRegistry.sol","id":2887,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2989,"sourceUnit":5715,"src":"66:34:13","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2988,"linearizedBaseContracts":[2988],"name":"IComponent","nameLocation":"114:10:13","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IComponent.ComponentType","id":2891,"members":[{"id":2888,"name":"Oracle","nameLocation":"164:6:13","nodeType":"EnumValue","src":"164:6:13"},{"id":2889,"name":"Product","nameLocation":"181:7:13","nodeType":"EnumValue","src":"181:7:13"},{"id":2890,"name":"Riskpool","nameLocation":"199:8:13","nodeType":"EnumValue","src":"199:8:13"}],"name":"ComponentType","nameLocation":"139:13:13","nodeType":"EnumDefinition","src":"134:80:13"},{"canonicalName":"IComponent.ComponentState","id":2899,"members":[{"id":2892,"name":"Created","nameLocation":"253:7:13","nodeType":"EnumValue","src":"253:7:13"},{"id":2893,"name":"Proposed","nameLocation":"271:8:13","nodeType":"EnumValue","src":"271:8:13"},{"id":2894,"name":"Declined","nameLocation":"290:8:13","nodeType":"EnumValue","src":"290:8:13"},{"id":2895,"name":"Active","nameLocation":"309:6:13","nodeType":"EnumValue","src":"309:6:13"},{"id":2896,"name":"Paused","nameLocation":"326:6:13","nodeType":"EnumValue","src":"326:6:13"},{"id":2897,"name":"Suspended","nameLocation":"343:9:13","nodeType":"EnumValue","src":"343:9:13"},{"id":2898,"name":"Archived","nameLocation":"363:8:13","nodeType":"EnumValue","src":"363:8:13"}],"name":"ComponentState","nameLocation":"227:14:13","nodeType":"EnumDefinition","src":"222:156:13"},{"anonymous":false,"id":2910,"name":"LogComponentCreated","nameLocation":"392:19:13","nodeType":"EventDefinition","parameters":{"id":2909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2901,"indexed":false,"mutability":"mutable","name":"componentName","nameLocation":"431:13:13","nodeType":"VariableDeclaration","scope":2910,"src":"423:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2900,"name":"bytes32","nodeType":"ElementaryTypeName","src":"423:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2904,"indexed":false,"mutability":"mutable","name":"componentType","nameLocation":"480:13:13","nodeType":"VariableDeclaration","scope":2910,"src":"455:38:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":2903,"nodeType":"UserDefinedTypeName","pathNode":{"id":2902,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"455:24:13"},"referencedDeclaration":2891,"src":"455:24:13","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"},{"constant":false,"id":2906,"indexed":false,"mutability":"mutable","name":"componentAddress","nameLocation":"512:16:13","nodeType":"VariableDeclaration","scope":2910,"src":"504:24:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2905,"name":"address","nodeType":"ElementaryTypeName","src":"504:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2908,"indexed":false,"mutability":"mutable","name":"registryAddress","nameLocation":"547:15:13","nodeType":"VariableDeclaration","scope":2910,"src":"539:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2907,"name":"address","nodeType":"ElementaryTypeName","src":"539:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"412:151:13"},"src":"386:178:13"},{"functionSelector":"d0e0ba95","id":2915,"implemented":false,"kind":"function","modifiers":[],"name":"setId","nameLocation":"581:5:13","nodeType":"FunctionDefinition","parameters":{"id":2913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2912,"mutability":"mutable","name":"id","nameLocation":"595:2:13","nodeType":"VariableDeclaration","scope":2915,"src":"587:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2911,"name":"uint256","nodeType":"ElementaryTypeName","src":"587:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"586:12:13"},"returnParameters":{"id":2914,"nodeType":"ParameterList","parameters":[],"src":"607:0:13"},"scope":2988,"src":"572:36:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"17d7de7c","id":2920,"implemented":false,"kind":"function","modifiers":[],"name":"getName","nameLocation":"625:7:13","nodeType":"FunctionDefinition","parameters":{"id":2916,"nodeType":"ParameterList","parameters":[],"src":"632:2:13"},"returnParameters":{"id":2919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2920,"src":"657:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"657:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"656:9:13"},"scope":2988,"src":"616:50:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5d1ca631","id":2925,"implemented":false,"kind":"function","modifiers":[],"name":"getId","nameLocation":"681:5:13","nodeType":"FunctionDefinition","parameters":{"id":2921,"nodeType":"ParameterList","parameters":[],"src":"686:2:13"},"returnParameters":{"id":2924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2925,"src":"711:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2922,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"710:9:13"},"scope":2988,"src":"672:48:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"15dae03e","id":2931,"implemented":false,"kind":"function","modifiers":[],"name":"getType","nameLocation":"735:7:13","nodeType":"FunctionDefinition","parameters":{"id":2926,"nodeType":"ParameterList","parameters":[],"src":"742:2:13"},"returnParameters":{"id":2930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2931,"src":"767:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":2928,"nodeType":"UserDefinedTypeName","pathNode":{"id":2927,"name":"ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"767:13:13"},"referencedDeclaration":2891,"src":"767:13:13","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"766:15:13"},"scope":2988,"src":"726:56:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1865c57d","id":2937,"implemented":false,"kind":"function","modifiers":[],"name":"getState","nameLocation":"797:8:13","nodeType":"FunctionDefinition","parameters":{"id":2932,"nodeType":"ParameterList","parameters":[],"src":"805:2:13"},"returnParameters":{"id":2936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2937,"src":"830:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":2934,"nodeType":"UserDefinedTypeName","pathNode":{"id":2933,"name":"ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"830:14:13"},"referencedDeclaration":2899,"src":"830:14:13","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"829:16:13"},"scope":2988,"src":"788:58:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"893d20e8","id":2942,"implemented":false,"kind":"function","modifiers":[],"name":"getOwner","nameLocation":"861:8:13","nodeType":"FunctionDefinition","parameters":{"id":2938,"nodeType":"ParameterList","parameters":[],"src":"869:2:13"},"returnParameters":{"id":2941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2942,"src":"894:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2939,"name":"address","nodeType":"ElementaryTypeName","src":"894:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"893:9:13"},"scope":2988,"src":"852:51:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e0815f0d","id":2947,"implemented":false,"kind":"function","modifiers":[],"name":"isProduct","nameLocation":"920:9:13","nodeType":"FunctionDefinition","parameters":{"id":2943,"nodeType":"ParameterList","parameters":[],"src":"929:2:13"},"returnParameters":{"id":2946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2947,"src":"954:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2944,"name":"bool","nodeType":"ElementaryTypeName","src":"954:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"953:6:13"},"scope":2988,"src":"911:49:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9a82f890","id":2952,"implemented":false,"kind":"function","modifiers":[],"name":"isOracle","nameLocation":"975:8:13","nodeType":"FunctionDefinition","parameters":{"id":2948,"nodeType":"ParameterList","parameters":[],"src":"983:2:13"},"returnParameters":{"id":2951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2950,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2952,"src":"1008:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2949,"name":"bool","nodeType":"ElementaryTypeName","src":"1008:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1007:6:13"},"scope":2988,"src":"966:48:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"258d560c","id":2957,"implemented":false,"kind":"function","modifiers":[],"name":"isRiskpool","nameLocation":"1029:10:13","nodeType":"FunctionDefinition","parameters":{"id":2953,"nodeType":"ParameterList","parameters":[],"src":"1039:2:13"},"returnParameters":{"id":2956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2957,"src":"1064:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2954,"name":"bool","nodeType":"ElementaryTypeName","src":"1064:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1063:6:13"},"scope":2988,"src":"1020:50:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5ab1bd53","id":2963,"implemented":false,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"1087:11:13","nodeType":"FunctionDefinition","parameters":{"id":2958,"nodeType":"ParameterList","parameters":[],"src":"1098:2:13"},"returnParameters":{"id":2962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2963,"src":"1123:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":2960,"nodeType":"UserDefinedTypeName","pathNode":{"id":2959,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"1123:9:13"},"referencedDeclaration":5714,"src":"1123:9:13","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"1122:11:13"},"scope":2988,"src":"1078:56:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"638ce0ba","id":2966,"implemented":false,"kind":"function","modifiers":[],"name":"proposalCallback","nameLocation":"1151:16:13","nodeType":"FunctionDefinition","parameters":{"id":2964,"nodeType":"ParameterList","parameters":[],"src":"1167:2:13"},"returnParameters":{"id":2965,"nodeType":"ParameterList","parameters":[],"src":"1178:0:13"},"scope":2988,"src":"1142:37:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1b867c63","id":2969,"implemented":false,"kind":"function","modifiers":[],"name":"approvalCallback","nameLocation":"1194:16:13","nodeType":"FunctionDefinition","parameters":{"id":2967,"nodeType":"ParameterList","parameters":[],"src":"1210:2:13"},"returnParameters":{"id":2968,"nodeType":"ParameterList","parameters":[],"src":"1221:0:13"},"scope":2988,"src":"1185:37:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"bd1fe5d0","id":2972,"implemented":false,"kind":"function","modifiers":[],"name":"declineCallback","nameLocation":"1238:15:13","nodeType":"FunctionDefinition","parameters":{"id":2970,"nodeType":"ParameterList","parameters":[],"src":"1253:2:13"},"returnParameters":{"id":2971,"nodeType":"ParameterList","parameters":[],"src":"1264:0:13"},"scope":2988,"src":"1229:36:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b3fca9bd","id":2975,"implemented":false,"kind":"function","modifiers":[],"name":"suspendCallback","nameLocation":"1280:15:13","nodeType":"FunctionDefinition","parameters":{"id":2973,"nodeType":"ParameterList","parameters":[],"src":"1295:2:13"},"returnParameters":{"id":2974,"nodeType":"ParameterList","parameters":[],"src":"1306:0:13"},"scope":2988,"src":"1271:36:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a18f5ae2","id":2978,"implemented":false,"kind":"function","modifiers":[],"name":"resumeCallback","nameLocation":"1322:14:13","nodeType":"FunctionDefinition","parameters":{"id":2976,"nodeType":"ParameterList","parameters":[],"src":"1336:2:13"},"returnParameters":{"id":2977,"nodeType":"ParameterList","parameters":[],"src":"1347:0:13"},"scope":2988,"src":"1313:35:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d73cd992","id":2981,"implemented":false,"kind":"function","modifiers":[],"name":"pauseCallback","nameLocation":"1363:13:13","nodeType":"FunctionDefinition","parameters":{"id":2979,"nodeType":"ParameterList","parameters":[],"src":"1376:2:13"},"returnParameters":{"id":2980,"nodeType":"ParameterList","parameters":[],"src":"1387:0:13"},"scope":2988,"src":"1354:34:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"59dacc6a","id":2984,"implemented":false,"kind":"function","modifiers":[],"name":"unpauseCallback","nameLocation":"1403:15:13","nodeType":"FunctionDefinition","parameters":{"id":2982,"nodeType":"ParameterList","parameters":[],"src":"1418:2:13"},"returnParameters":{"id":2983,"nodeType":"ParameterList","parameters":[],"src":"1429:0:13"},"scope":2988,"src":"1394:36:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"be169e7e","id":2987,"implemented":false,"kind":"function","modifiers":[],"name":"archiveCallback","nameLocation":"1445:15:13","nodeType":"FunctionDefinition","parameters":{"id":2985,"nodeType":"ParameterList","parameters":[],"src":"1460:2:13"},"returnParameters":{"id":2986,"nodeType":"ParameterList","parameters":[],"src":"1471:0:13"},"scope":2988,"src":"1436:36:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":2989,"src":"104:1371:13"}],"src":"40:1435:13"},"id":13},"@etherisc/gif-interface/contracts/components/IOracle.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/IOracle.sol","exportedSymbols":{"IComponent":[2988],"IOracle":[3022],"IRegistry":[5714]},"id":3023,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":2990,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:14"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"./IComponent.sol","id":2991,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3023,"sourceUnit":2989,"src":"63:26:14","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2992,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"112:10:14"},"id":2993,"nodeType":"InheritanceSpecifier","src":"112:10:14"}],"contractDependencies":[2988],"contractKind":"interface","fullyImplemented":false,"id":3022,"linearizedBaseContracts":[3022,2988],"name":"IOracle","nameLocation":"101:7:14","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":2997,"name":"LogOracleCreated","nameLocation":"140:16:14","nodeType":"EventDefinition","parameters":{"id":2996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2995,"indexed":false,"mutability":"mutable","name":"oracleAddress","nameLocation":"166:13:14","nodeType":"VariableDeclaration","scope":2997,"src":"158:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2994,"name":"address","nodeType":"ElementaryTypeName","src":"158:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"157:23:14"},"src":"134:47:14"},{"anonymous":false,"id":3001,"name":"LogOracleProposed","nameLocation":"192:17:14","nodeType":"EventDefinition","parameters":{"id":3000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2999,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"219:11:14","nodeType":"VariableDeclaration","scope":3001,"src":"211:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2998,"name":"uint256","nodeType":"ElementaryTypeName","src":"211:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"210:21:14"},"src":"186:46:14"},{"anonymous":false,"id":3005,"name":"LogOracleApproved","nameLocation":"243:17:14","nodeType":"EventDefinition","parameters":{"id":3004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3003,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"270:11:14","nodeType":"VariableDeclaration","scope":3005,"src":"262:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3002,"name":"uint256","nodeType":"ElementaryTypeName","src":"262:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"261:21:14"},"src":"237:46:14"},{"anonymous":false,"id":3009,"name":"LogOracleDeclined","nameLocation":"294:17:14","nodeType":"EventDefinition","parameters":{"id":3008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3007,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"321:11:14","nodeType":"VariableDeclaration","scope":3009,"src":"313:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3006,"name":"uint256","nodeType":"ElementaryTypeName","src":"313:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"312:21:14"},"src":"288:46:14"},{"functionSelector":"ffc79065","id":3016,"implemented":false,"kind":"function","modifiers":[],"name":"request","nameLocation":"353:7:14","nodeType":"FunctionDefinition","parameters":{"id":3014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3011,"mutability":"mutable","name":"requestId","nameLocation":"369:9:14","nodeType":"VariableDeclaration","scope":3016,"src":"361:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3010,"name":"uint256","nodeType":"ElementaryTypeName","src":"361:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3013,"mutability":"mutable","name":"input","nameLocation":"395:5:14","nodeType":"VariableDeclaration","scope":3016,"src":"380:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3012,"name":"bytes","nodeType":"ElementaryTypeName","src":"380:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"360:41:14"},"returnParameters":{"id":3015,"nodeType":"ParameterList","parameters":[],"src":"410:0:14"},"scope":3022,"src":"344:67:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"40e58ee5","id":3021,"implemented":false,"kind":"function","modifiers":[],"name":"cancel","nameLocation":"425:6:14","nodeType":"FunctionDefinition","parameters":{"id":3019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3018,"mutability":"mutable","name":"requestId","nameLocation":"440:9:14","nodeType":"VariableDeclaration","scope":3021,"src":"432:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3017,"name":"uint256","nodeType":"ElementaryTypeName","src":"432:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"431:19:14"},"returnParameters":{"id":3020,"nodeType":"ParameterList","parameters":[],"src":"459:0:14"},"scope":3022,"src":"416:44:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3023,"src":"91:371:14"}],"src":"39:424:14"},"id":14},"@etherisc/gif-interface/contracts/components/IProduct.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","exportedSymbols":{"IComponent":[2988],"IProduct":[3079],"IRegistry":[5714]},"id":3080,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3024,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:15"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"./IComponent.sol","id":3025,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3080,"sourceUnit":2989,"src":"63:26:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3026,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"113:10:15"},"id":3027,"nodeType":"InheritanceSpecifier","src":"113:10:15"}],"contractDependencies":[2988],"contractKind":"interface","fullyImplemented":false,"id":3079,"linearizedBaseContracts":[3079,2988],"name":"IProduct","nameLocation":"101:8:15","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":3031,"name":"LogProductCreated","nameLocation":"137:17:15","nodeType":"EventDefinition","parameters":{"id":3030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3029,"indexed":false,"mutability":"mutable","name":"productAddress","nameLocation":"164:14:15","nodeType":"VariableDeclaration","scope":3031,"src":"156:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3028,"name":"address","nodeType":"ElementaryTypeName","src":"156:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"155:24:15"},"src":"131:49:15"},{"anonymous":false,"id":3035,"name":"LogProductProposed","nameLocation":"191:18:15","nodeType":"EventDefinition","parameters":{"id":3034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3033,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"219:11:15","nodeType":"VariableDeclaration","scope":3035,"src":"211:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3032,"name":"uint256","nodeType":"ElementaryTypeName","src":"211:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"210:21:15"},"src":"185:47:15"},{"anonymous":false,"id":3039,"name":"LogProductApproved","nameLocation":"243:18:15","nodeType":"EventDefinition","parameters":{"id":3038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3037,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"271:11:15","nodeType":"VariableDeclaration","scope":3039,"src":"263:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3036,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"262:21:15"},"src":"237:47:15"},{"anonymous":false,"id":3043,"name":"LogProductDeclined","nameLocation":"295:18:15","nodeType":"EventDefinition","parameters":{"id":3042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3041,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"323:11:15","nodeType":"VariableDeclaration","scope":3043,"src":"315:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3040,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"314:21:15"},"src":"289:47:15"},{"functionSelector":"21df0da7","id":3048,"implemented":false,"kind":"function","modifiers":[],"name":"getToken","nameLocation":"351:8:15","nodeType":"FunctionDefinition","parameters":{"id":3044,"nodeType":"ParameterList","parameters":[],"src":"359:2:15"},"returnParameters":{"id":3047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3046,"mutability":"mutable","name":"token","nameLocation":"392:5:15","nodeType":"VariableDeclaration","scope":3048,"src":"384:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3045,"name":"address","nodeType":"ElementaryTypeName","src":"384:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"383:15:15"},"scope":3079,"src":"342:57:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"637d08f4","id":3053,"implemented":false,"kind":"function","modifiers":[],"name":"getPolicyFlow","nameLocation":"413:13:15","nodeType":"FunctionDefinition","parameters":{"id":3049,"nodeType":"ParameterList","parameters":[],"src":"426:2:15"},"returnParameters":{"id":3052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3051,"mutability":"mutable","name":"policyFlow","nameLocation":"459:10:15","nodeType":"VariableDeclaration","scope":3053,"src":"451:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3050,"name":"address","nodeType":"ElementaryTypeName","src":"451:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"450:20:15"},"scope":3079,"src":"404:67:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70d2fe53","id":3058,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolId","nameLocation":"485:13:15","nodeType":"FunctionDefinition","parameters":{"id":3054,"nodeType":"ParameterList","parameters":[],"src":"498:2:15"},"returnParameters":{"id":3057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3056,"mutability":"mutable","name":"riskpoolId","nameLocation":"531:10:15","nodeType":"VariableDeclaration","scope":3058,"src":"523:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3055,"name":"uint256","nodeType":"ElementaryTypeName","src":"523:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"522:20:15"},"scope":3079,"src":"476:67:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"94f64ff4","id":3063,"implemented":false,"kind":"function","modifiers":[],"name":"getApplicationDataStructure","nameLocation":"558:27:15","nodeType":"FunctionDefinition","parameters":{"id":3059,"nodeType":"ParameterList","parameters":[],"src":"585:2:15"},"returnParameters":{"id":3062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3061,"mutability":"mutable","name":"dataStructure","nameLocation":"624:13:15","nodeType":"VariableDeclaration","scope":3063,"src":"610:27:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3060,"name":"string","nodeType":"ElementaryTypeName","src":"610:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"609:29:15"},"scope":3079,"src":"549:90:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3ec92bda","id":3068,"implemented":false,"kind":"function","modifiers":[],"name":"getClaimDataStructure","nameLocation":"653:21:15","nodeType":"FunctionDefinition","parameters":{"id":3064,"nodeType":"ParameterList","parameters":[],"src":"674:2:15"},"returnParameters":{"id":3067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3066,"mutability":"mutable","name":"dataStructure","nameLocation":"713:13:15","nodeType":"VariableDeclaration","scope":3068,"src":"699:27:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3065,"name":"string","nodeType":"ElementaryTypeName","src":"699:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"698:29:15"},"scope":3079,"src":"644:84:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"39cf5e16","id":3073,"implemented":false,"kind":"function","modifiers":[],"name":"getPayoutDataStructure","nameLocation":"742:22:15","nodeType":"FunctionDefinition","parameters":{"id":3069,"nodeType":"ParameterList","parameters":[],"src":"764:2:15"},"returnParameters":{"id":3072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3071,"mutability":"mutable","name":"dataStructure","nameLocation":"803:13:15","nodeType":"VariableDeclaration","scope":3073,"src":"789:27:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3070,"name":"string","nodeType":"ElementaryTypeName","src":"789:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"788:29:15"},"scope":3079,"src":"733:85:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f4fdc1fa","id":3078,"implemented":false,"kind":"function","modifiers":[],"name":"riskPoolCapacityCallback","nameLocation":"833:24:15","nodeType":"FunctionDefinition","parameters":{"id":3076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3075,"mutability":"mutable","name":"capacity","nameLocation":"866:8:15","nodeType":"VariableDeclaration","scope":3078,"src":"858:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3074,"name":"uint256","nodeType":"ElementaryTypeName","src":"858:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"857:18:15"},"returnParameters":{"id":3077,"nodeType":"ParameterList","parameters":[],"src":"884:0:15"},"scope":3079,"src":"824:61:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3080,"src":"91:796:15"}],"src":"39:849:15"},"id":15},"@etherisc/gif-interface/contracts/components/IRiskpool.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","exportedSymbols":{"IBundle":[5020],"IComponent":[2988],"IPolicy":[5433],"IRegistry":[5714],"IRiskpool":[3312]},"id":3313,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3081,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:16"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"./IComponent.sol","id":3082,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3313,"sourceUnit":2989,"src":"63:26:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"../modules/IBundle.sol","id":3083,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3313,"sourceUnit":5021,"src":"90:32:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"../modules/IPolicy.sol","id":3084,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3313,"sourceUnit":5434,"src":"123:32:16","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3085,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"180:10:16"},"id":3086,"nodeType":"InheritanceSpecifier","src":"180:10:16"}],"contractDependencies":[2988],"contractKind":"interface","fullyImplemented":false,"id":3312,"linearizedBaseContracts":[3312,2988],"name":"IRiskpool","nameLocation":"167:9:16","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":3090,"name":"LogRiskpoolCreated","nameLocation":"204:18:16","nodeType":"EventDefinition","parameters":{"id":3089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3088,"indexed":false,"mutability":"mutable","name":"riskpoolAddress","nameLocation":"232:15:16","nodeType":"VariableDeclaration","scope":3090,"src":"224:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3087,"name":"address","nodeType":"ElementaryTypeName","src":"224:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"223:25:16"},"src":"198:51:16"},{"anonymous":false,"id":3094,"name":"LogRiskpoolProposed","nameLocation":"260:19:16","nodeType":"EventDefinition","parameters":{"id":3093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3092,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"289:2:16","nodeType":"VariableDeclaration","scope":3094,"src":"281:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3091,"name":"uint256","nodeType":"ElementaryTypeName","src":"281:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"280:12:16"},"src":"254:39:16"},{"anonymous":false,"id":3098,"name":"LogRiskpoolApproved","nameLocation":"304:19:16","nodeType":"EventDefinition","parameters":{"id":3097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3096,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"333:2:16","nodeType":"VariableDeclaration","scope":3098,"src":"325:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3095,"name":"uint256","nodeType":"ElementaryTypeName","src":"325:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"324:12:16"},"src":"298:39:16"},{"anonymous":false,"id":3102,"name":"LogRiskpoolDeclined","nameLocation":"348:19:16","nodeType":"EventDefinition","parameters":{"id":3101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3100,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"377:2:16","nodeType":"VariableDeclaration","scope":3102,"src":"369:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3099,"name":"uint256","nodeType":"ElementaryTypeName","src":"369:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"368:12:16"},"src":"342:39:16"},{"anonymous":false,"id":3108,"name":"LogRiskpoolBundleCreated","nameLocation":"393:24:16","nodeType":"EventDefinition","parameters":{"id":3107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3104,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"426:8:16","nodeType":"VariableDeclaration","scope":3108,"src":"418:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3103,"name":"uint256","nodeType":"ElementaryTypeName","src":"418:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3106,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"444:6:16","nodeType":"VariableDeclaration","scope":3108,"src":"436:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3105,"name":"uint256","nodeType":"ElementaryTypeName","src":"436:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"417:34:16"},"src":"387:65:16"},{"anonymous":false,"id":3114,"name":"LogRiskpoolBundleMatchesPolicy","nameLocation":"463:30:16","nodeType":"EventDefinition","parameters":{"id":3113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3110,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"502:8:16","nodeType":"VariableDeclaration","scope":3114,"src":"494:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3109,"name":"uint256","nodeType":"ElementaryTypeName","src":"494:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3112,"indexed":false,"mutability":"mutable","name":"isMatching","nameLocation":"517:10:16","nodeType":"VariableDeclaration","scope":3114,"src":"512:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3111,"name":"bool","nodeType":"ElementaryTypeName","src":"512:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"493:35:16"},"src":"457:72:16"},{"anonymous":false,"id":3122,"name":"LogRiskpoolCollateralLocked","nameLocation":"540:27:16","nodeType":"EventDefinition","parameters":{"id":3121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3116,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"576:9:16","nodeType":"VariableDeclaration","scope":3122,"src":"568:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3115,"name":"bytes32","nodeType":"ElementaryTypeName","src":"568:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3118,"indexed":false,"mutability":"mutable","name":"collateralAmount","nameLocation":"595:16:16","nodeType":"VariableDeclaration","scope":3122,"src":"587:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3117,"name":"uint256","nodeType":"ElementaryTypeName","src":"587:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3120,"indexed":false,"mutability":"mutable","name":"isSecured","nameLocation":"618:9:16","nodeType":"VariableDeclaration","scope":3122,"src":"613:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3119,"name":"bool","nodeType":"ElementaryTypeName","src":"613:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"567:61:16"},"src":"534:95:16"},{"anonymous":false,"id":3128,"name":"LogRiskpoolPremiumProcessed","nameLocation":"641:27:16","nodeType":"EventDefinition","parameters":{"id":3127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3124,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"677:9:16","nodeType":"VariableDeclaration","scope":3128,"src":"669:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"669:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3126,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"696:6:16","nodeType":"VariableDeclaration","scope":3128,"src":"688:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3125,"name":"uint256","nodeType":"ElementaryTypeName","src":"688:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"668:35:16"},"src":"635:69:16"},{"anonymous":false,"id":3134,"name":"LogRiskpoolPayoutProcessed","nameLocation":"715:26:16","nodeType":"EventDefinition","parameters":{"id":3133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3130,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"750:9:16","nodeType":"VariableDeclaration","scope":3134,"src":"742:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"742:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3132,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"769:6:16","nodeType":"VariableDeclaration","scope":3134,"src":"761:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3131,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"741:35:16"},"src":"709:68:16"},{"anonymous":false,"id":3140,"name":"LogRiskpoolCollateralReleased","nameLocation":"788:29:16","nodeType":"EventDefinition","parameters":{"id":3139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3136,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"826:9:16","nodeType":"VariableDeclaration","scope":3140,"src":"818:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"818:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3138,"indexed":false,"mutability":"mutable","name":"collateralAmount","nameLocation":"845:16:16","nodeType":"VariableDeclaration","scope":3140,"src":"837:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3137,"name":"uint256","nodeType":"ElementaryTypeName","src":"837:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"817:45:16"},"src":"782:81:16"},{"functionSelector":"7888a2ff","id":3149,"implemented":false,"kind":"function","modifiers":[],"name":"createBundle","nameLocation":"879:12:16","nodeType":"FunctionDefinition","parameters":{"id":3145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3142,"mutability":"mutable","name":"filter","nameLocation":"905:6:16","nodeType":"VariableDeclaration","scope":3149,"src":"892:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3141,"name":"bytes","nodeType":"ElementaryTypeName","src":"892:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3144,"mutability":"mutable","name":"initialAmount","nameLocation":"921:13:16","nodeType":"VariableDeclaration","scope":3149,"src":"913:21:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3143,"name":"uint256","nodeType":"ElementaryTypeName","src":"913:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:44:16"},"returnParameters":{"id":3148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3147,"mutability":"mutable","name":"bundleId","nameLocation":"961:8:16","nodeType":"VariableDeclaration","scope":3149,"src":"953:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3146,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:18:16"},"scope":3312,"src":"870:101:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"89002da5","id":3158,"implemented":false,"kind":"function","modifiers":[],"name":"fundBundle","nameLocation":"985:10:16","nodeType":"FunctionDefinition","parameters":{"id":3154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3151,"mutability":"mutable","name":"bundleId","nameLocation":"1004:8:16","nodeType":"VariableDeclaration","scope":3158,"src":"996:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3150,"name":"uint256","nodeType":"ElementaryTypeName","src":"996:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3153,"mutability":"mutable","name":"amount","nameLocation":"1022:6:16","nodeType":"VariableDeclaration","scope":3158,"src":"1014:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3152,"name":"uint256","nodeType":"ElementaryTypeName","src":"1014:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"995:34:16"},"returnParameters":{"id":3157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3156,"mutability":"mutable","name":"netAmount","nameLocation":"1055:9:16","nodeType":"VariableDeclaration","scope":3158,"src":"1047:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3155,"name":"uint256","nodeType":"ElementaryTypeName","src":"1047:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1046:19:16"},"scope":3312,"src":"976:90:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"36153f3a","id":3167,"implemented":false,"kind":"function","modifiers":[],"name":"defundBundle","nameLocation":"1080:12:16","nodeType":"FunctionDefinition","parameters":{"id":3163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3160,"mutability":"mutable","name":"bundleId","nameLocation":"1101:8:16","nodeType":"VariableDeclaration","scope":3167,"src":"1093:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3159,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3162,"mutability":"mutable","name":"amount","nameLocation":"1119:6:16","nodeType":"VariableDeclaration","scope":3167,"src":"1111:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3161,"name":"uint256","nodeType":"ElementaryTypeName","src":"1111:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:34:16"},"returnParameters":{"id":3166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3165,"mutability":"mutable","name":"netAmount","nameLocation":"1152:9:16","nodeType":"VariableDeclaration","scope":3167,"src":"1144:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3164,"name":"uint256","nodeType":"ElementaryTypeName","src":"1144:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1143:19:16"},"scope":3312,"src":"1071:92:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a17030d5","id":3172,"implemented":false,"kind":"function","modifiers":[],"name":"lockBundle","nameLocation":"1178:10:16","nodeType":"FunctionDefinition","parameters":{"id":3170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3169,"mutability":"mutable","name":"bundleId","nameLocation":"1197:8:16","nodeType":"VariableDeclaration","scope":3172,"src":"1189:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3168,"name":"uint256","nodeType":"ElementaryTypeName","src":"1189:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1188:18:16"},"returnParameters":{"id":3171,"nodeType":"ParameterList","parameters":[],"src":"1215:0:16"},"scope":3312,"src":"1169:47:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"316c5348","id":3177,"implemented":false,"kind":"function","modifiers":[],"name":"unlockBundle","nameLocation":"1230:12:16","nodeType":"FunctionDefinition","parameters":{"id":3175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3174,"mutability":"mutable","name":"bundleId","nameLocation":"1251:8:16","nodeType":"VariableDeclaration","scope":3177,"src":"1243:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3173,"name":"uint256","nodeType":"ElementaryTypeName","src":"1243:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1242:18:16"},"returnParameters":{"id":3176,"nodeType":"ParameterList","parameters":[],"src":"1269:0:16"},"scope":3312,"src":"1221:49:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8c483e5a","id":3182,"implemented":false,"kind":"function","modifiers":[],"name":"closeBundle","nameLocation":"1284:11:16","nodeType":"FunctionDefinition","parameters":{"id":3180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3179,"mutability":"mutable","name":"bundleId","nameLocation":"1304:8:16","nodeType":"VariableDeclaration","scope":3182,"src":"1296:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3178,"name":"uint256","nodeType":"ElementaryTypeName","src":"1296:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1295:18:16"},"returnParameters":{"id":3181,"nodeType":"ParameterList","parameters":[],"src":"1322:0:16"},"scope":3312,"src":"1275:48:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"587e59d0","id":3187,"implemented":false,"kind":"function","modifiers":[],"name":"burnBundle","nameLocation":"1337:10:16","nodeType":"FunctionDefinition","parameters":{"id":3185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3184,"mutability":"mutable","name":"bundleId","nameLocation":"1356:8:16","nodeType":"VariableDeclaration","scope":3187,"src":"1348:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3183,"name":"uint256","nodeType":"ElementaryTypeName","src":"1348:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1347:18:16"},"returnParameters":{"id":3186,"nodeType":"ParameterList","parameters":[],"src":"1374:0:16"},"scope":3312,"src":"1328:47:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"890fbf78","id":3196,"implemented":false,"kind":"function","modifiers":[],"name":"collateralizePolicy","nameLocation":"1390:19:16","nodeType":"FunctionDefinition","parameters":{"id":3192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3189,"mutability":"mutable","name":"processId","nameLocation":"1418:9:16","nodeType":"VariableDeclaration","scope":3196,"src":"1410:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1410:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3191,"mutability":"mutable","name":"collateralAmount","nameLocation":"1437:16:16","nodeType":"VariableDeclaration","scope":3196,"src":"1429:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3190,"name":"uint256","nodeType":"ElementaryTypeName","src":"1429:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1409:45:16"},"returnParameters":{"id":3195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3194,"mutability":"mutable","name":"isSecured","nameLocation":"1477:9:16","nodeType":"VariableDeclaration","scope":3196,"src":"1472:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3193,"name":"bool","nodeType":"ElementaryTypeName","src":"1472:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1471:16:16"},"scope":3312,"src":"1381:107:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3629c3c4","id":3203,"implemented":false,"kind":"function","modifiers":[],"name":"processPolicyPremium","nameLocation":"1502:20:16","nodeType":"FunctionDefinition","parameters":{"id":3201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3198,"mutability":"mutable","name":"processId","nameLocation":"1531:9:16","nodeType":"VariableDeclaration","scope":3203,"src":"1523:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3197,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1523:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3200,"mutability":"mutable","name":"amount","nameLocation":"1550:6:16","nodeType":"VariableDeclaration","scope":3203,"src":"1542:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3199,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1522:35:16"},"returnParameters":{"id":3202,"nodeType":"ParameterList","parameters":[],"src":"1566:0:16"},"scope":3312,"src":"1493:74:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"82558906","id":3210,"implemented":false,"kind":"function","modifiers":[],"name":"processPolicyPayout","nameLocation":"1581:19:16","nodeType":"FunctionDefinition","parameters":{"id":3208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3205,"mutability":"mutable","name":"processId","nameLocation":"1609:9:16","nodeType":"VariableDeclaration","scope":3210,"src":"1601:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1601:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3207,"mutability":"mutable","name":"amount","nameLocation":"1628:6:16","nodeType":"VariableDeclaration","scope":3210,"src":"1620:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3206,"name":"uint256","nodeType":"ElementaryTypeName","src":"1620:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1600:35:16"},"returnParameters":{"id":3209,"nodeType":"ParameterList","parameters":[],"src":"1644:0:16"},"scope":3312,"src":"1572:73:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c3004c86","id":3215,"implemented":false,"kind":"function","modifiers":[],"name":"releasePolicy","nameLocation":"1659:13:16","nodeType":"FunctionDefinition","parameters":{"id":3213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3212,"mutability":"mutable","name":"processId","nameLocation":"1681:9:16","nodeType":"VariableDeclaration","scope":3215,"src":"1673:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1673:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1672:19:16"},"returnParameters":{"id":3214,"nodeType":"ParameterList","parameters":[],"src":"1700:0:16"},"scope":3312,"src":"1650:51:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"54afef63","id":3220,"implemented":false,"kind":"function","modifiers":[],"name":"getCollateralizationLevel","nameLocation":"1716:25:16","nodeType":"FunctionDefinition","parameters":{"id":3216,"nodeType":"ParameterList","parameters":[],"src":"1741:2:16"},"returnParameters":{"id":3219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3218,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3220,"src":"1767:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3217,"name":"uint256","nodeType":"ElementaryTypeName","src":"1767:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1766:9:16"},"scope":3312,"src":"1707:69:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f1d354d0","id":3225,"implemented":false,"kind":"function","modifiers":[],"name":"getFullCollateralizationLevel","nameLocation":"1790:29:16","nodeType":"FunctionDefinition","parameters":{"id":3221,"nodeType":"ParameterList","parameters":[],"src":"1819:2:16"},"returnParameters":{"id":3224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3225,"src":"1845:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3222,"name":"uint256","nodeType":"ElementaryTypeName","src":"1845:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1844:9:16"},"scope":3312,"src":"1781:73:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"86c71288","id":3236,"implemented":false,"kind":"function","modifiers":[],"name":"bundleMatchesApplication","nameLocation":"1869:24:16","nodeType":"FunctionDefinition","parameters":{"id":3232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3228,"mutability":"mutable","name":"bundle","nameLocation":"1925:6:16","nodeType":"VariableDeclaration","scope":3236,"src":"1903:28:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":3227,"nodeType":"UserDefinedTypeName","pathNode":{"id":3226,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"1903:14:16"},"referencedDeclaration":4936,"src":"1903:14:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"},{"constant":false,"id":3231,"mutability":"mutable","name":"application","nameLocation":"1969:11:16","nodeType":"VariableDeclaration","scope":3236,"src":"1942:38:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":3230,"nodeType":"UserDefinedTypeName","pathNode":{"id":3229,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"1942:19:16"},"referencedDeclaration":5262,"src":"1942:19:16","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"1893:93:16"},"returnParameters":{"id":3235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3234,"mutability":"mutable","name":"isMatching","nameLocation":"2023:10:16","nodeType":"VariableDeclaration","scope":3236,"src":"2018:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3233,"name":"bool","nodeType":"ElementaryTypeName","src":"2018:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2017:17:16"},"scope":3312,"src":"1860:175:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3dcdde17","id":3241,"implemented":false,"kind":"function","modifiers":[],"name":"getFilterDataStructure","nameLocation":"2057:22:16","nodeType":"FunctionDefinition","parameters":{"id":3237,"nodeType":"ParameterList","parameters":[],"src":"2079:2:16"},"returnParameters":{"id":3240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3241,"src":"2104:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3238,"name":"string","nodeType":"ElementaryTypeName","src":"2104:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2103:15:16"},"scope":3312,"src":"2048:71:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18442e63","id":3246,"implemented":false,"kind":"function","modifiers":[],"name":"bundles","nameLocation":"2134:7:16","nodeType":"FunctionDefinition","parameters":{"id":3242,"nodeType":"ParameterList","parameters":[],"src":"2141:2:16"},"returnParameters":{"id":3245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3244,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3246,"src":"2166:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3243,"name":"uint256","nodeType":"ElementaryTypeName","src":"2166:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2165:9:16"},"scope":3312,"src":"2125:50:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2d0821b7","id":3254,"implemented":false,"kind":"function","modifiers":[],"name":"getBundle","nameLocation":"2189:9:16","nodeType":"FunctionDefinition","parameters":{"id":3249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3248,"mutability":"mutable","name":"idx","nameLocation":"2207:3:16","nodeType":"VariableDeclaration","scope":3254,"src":"2199:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3247,"name":"uint256","nodeType":"ElementaryTypeName","src":"2199:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2198:13:16"},"returnParameters":{"id":3253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3254,"src":"2234:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":3251,"nodeType":"UserDefinedTypeName","pathNode":{"id":3250,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"2234:14:16"},"referencedDeclaration":4936,"src":"2234:14:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"src":"2233:23:16"},"scope":3312,"src":"2180:77:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4101b90c","id":3259,"implemented":false,"kind":"function","modifiers":[],"name":"activeBundles","nameLocation":"2272:13:16","nodeType":"FunctionDefinition","parameters":{"id":3255,"nodeType":"ParameterList","parameters":[],"src":"2285:2:16"},"returnParameters":{"id":3258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3259,"src":"2310:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3256,"name":"uint256","nodeType":"ElementaryTypeName","src":"2310:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2309:9:16"},"scope":3312,"src":"2263:56:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0676cb0e","id":3266,"implemented":false,"kind":"function","modifiers":[],"name":"getActiveBundleId","nameLocation":"2333:17:16","nodeType":"FunctionDefinition","parameters":{"id":3262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3261,"mutability":"mutable","name":"idx","nameLocation":"2359:3:16","nodeType":"VariableDeclaration","scope":3266,"src":"2351:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3260,"name":"uint256","nodeType":"ElementaryTypeName","src":"2351:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2350:13:16"},"returnParameters":{"id":3265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3264,"mutability":"mutable","name":"bundleId","nameLocation":"2394:8:16","nodeType":"VariableDeclaration","scope":3266,"src":"2386:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3263,"name":"uint256","nodeType":"ElementaryTypeName","src":"2386:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2385:18:16"},"scope":3312,"src":"2324:80:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"13299604","id":3271,"implemented":false,"kind":"function","modifiers":[],"name":"getWallet","nameLocation":"2419:9:16","nodeType":"FunctionDefinition","parameters":{"id":3267,"nodeType":"ParameterList","parameters":[],"src":"2428:2:16"},"returnParameters":{"id":3270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3271,"src":"2453:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3268,"name":"address","nodeType":"ElementaryTypeName","src":"2453:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2452:9:16"},"scope":3312,"src":"2410:52:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"feb1824b","id":3276,"implemented":false,"kind":"function","modifiers":[],"name":"getErc20Token","nameLocation":"2476:13:16","nodeType":"FunctionDefinition","parameters":{"id":3272,"nodeType":"ParameterList","parameters":[],"src":"2489:2:16"},"returnParameters":{"id":3275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3276,"src":"2514:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3273,"name":"address","nodeType":"ElementaryTypeName","src":"2514:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2513:9:16"},"scope":3312,"src":"2467:56:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a18aa128","id":3281,"implemented":false,"kind":"function","modifiers":[],"name":"getSumOfSumInsuredCap","nameLocation":"2538:21:16","nodeType":"FunctionDefinition","parameters":{"id":3277,"nodeType":"ParameterList","parameters":[],"src":"2559:2:16"},"returnParameters":{"id":3280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3281,"src":"2585:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3278,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2584:9:16"},"scope":3312,"src":"2529:65:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e0032383","id":3286,"implemented":false,"kind":"function","modifiers":[],"name":"getCapital","nameLocation":"2608:10:16","nodeType":"FunctionDefinition","parameters":{"id":3282,"nodeType":"ParameterList","parameters":[],"src":"2618:2:16"},"returnParameters":{"id":3285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3286,"src":"2643:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3283,"name":"uint256","nodeType":"ElementaryTypeName","src":"2643:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2642:9:16"},"scope":3312,"src":"2599:53:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b26025aa","id":3291,"implemented":false,"kind":"function","modifiers":[],"name":"getTotalValueLocked","nameLocation":"2666:19:16","nodeType":"FunctionDefinition","parameters":{"id":3287,"nodeType":"ParameterList","parameters":[],"src":"2685:2:16"},"returnParameters":{"id":3290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3291,"src":"2710:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3288,"name":"uint256","nodeType":"ElementaryTypeName","src":"2710:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2709:9:16"},"scope":3312,"src":"2657:62:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c40000d4","id":3296,"implemented":false,"kind":"function","modifiers":[],"name":"getCapacity","nameLocation":"2734:11:16","nodeType":"FunctionDefinition","parameters":{"id":3292,"nodeType":"ParameterList","parameters":[],"src":"2745:2:16"},"returnParameters":{"id":3295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3296,"src":"2770:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3293,"name":"uint256","nodeType":"ElementaryTypeName","src":"2770:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2769:9:16"},"scope":3312,"src":"2725:54:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"12065fe0","id":3301,"implemented":false,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"2794:10:16","nodeType":"FunctionDefinition","parameters":{"id":3297,"nodeType":"ParameterList","parameters":[],"src":"2804:2:16"},"returnParameters":{"id":3300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3301,"src":"2829:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3298,"name":"uint256","nodeType":"ElementaryTypeName","src":"2829:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2828:9:16"},"scope":3312,"src":"2785:53:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"652028e5","id":3306,"implemented":false,"kind":"function","modifiers":[],"name":"setMaximumNumberOfActiveBundles","nameLocation":"2854:31:16","nodeType":"FunctionDefinition","parameters":{"id":3304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3303,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"2894:28:16","nodeType":"VariableDeclaration","scope":3306,"src":"2886:36:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3302,"name":"uint256","nodeType":"ElementaryTypeName","src":"2886:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2885:38:16"},"returnParameters":{"id":3305,"nodeType":"ParameterList","parameters":[],"src":"2932:0:16"},"scope":3312,"src":"2845:88:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7f3b6980","id":3311,"implemented":false,"kind":"function","modifiers":[],"name":"getMaximumNumberOfActiveBundles","nameLocation":"2948:31:16","nodeType":"FunctionDefinition","parameters":{"id":3307,"nodeType":"ParameterList","parameters":[],"src":"2979:2:16"},"returnParameters":{"id":3310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3309,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"3012:28:16","nodeType":"VariableDeclaration","scope":3311,"src":"3004:36:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3308,"name":"uint256","nodeType":"ElementaryTypeName","src":"3004:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3003:38:16"},"scope":3312,"src":"2939:103:16","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3313,"src":"157:2887:16"}],"src":"39:3006:16"},"id":16},"@etherisc/gif-interface/contracts/components/Oracle.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/Oracle.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Oracle":[3414],"Ownable":[7481]},"id":3415,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3314,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:17"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IOracle.sol","file":"./IOracle.sol","id":3315,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3415,"sourceUnit":3023,"src":"66:23:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Component.sol","file":"./Component.sol","id":3316,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3415,"sourceUnit":2885,"src":"91:25:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"./IComponent.sol","id":3317,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3415,"sourceUnit":2989,"src":"118:26:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IOracleService.sol","file":"../services/IOracleService.sol","id":3318,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3415,"sourceUnit":6520,"src":"146:40:17","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3319,"name":"IOracle","nodeType":"IdentifierPath","referencedDeclaration":3022,"src":"223:7:17"},"id":3320,"nodeType":"InheritanceSpecifier","src":"223:7:17"},{"baseName":{"id":3321,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"238:9:17"},"id":3322,"nodeType":"InheritanceSpecifier","src":"238:9:17"}],"contractDependencies":[2884,2988,3022,5073,7481,10518],"contractKind":"contract","fullyImplemented":false,"id":3414,"linearizedBaseContracts":[3414,2884,7481,10518,5073,3022,2988],"name":"Oracle","nameLocation":"208:6:17","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3325,"mutability":"mutable","name":"_oracleService","nameLocation":"283:14:17","nodeType":"VariableDeclaration","scope":3414,"src":"260:37:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"},"typeName":{"id":3324,"nodeType":"UserDefinedTypeName","pathNode":{"id":3323,"name":"IOracleService","nodeType":"IdentifierPath","referencedDeclaration":6519,"src":"260:14:17"},"referencedDeclaration":6519,"src":"260:14:17","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"visibility":"private"},{"body":{"id":3338,"nodeType":"Block","src":"325:153:17","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3328,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"359:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"359:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"5175657279","id":3331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"395:7:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""}],"id":3330,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"375:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"375:28:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"359:44:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4f52412d3030313a4143434553535f44454e494544","id":3334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"418:29:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0","typeString":"literal_string \"ERROR:ORA-001:ACCESS_DENIED\""},"value":"ERROR:ORA-001:ACCESS_DENIED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0","typeString":"literal_string \"ERROR:ORA-001:ACCESS_DENIED\""}],"id":3327,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"336:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"336:122:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3336,"nodeType":"ExpressionStatement","src":"336:122:17"},{"id":3337,"nodeType":"PlaceholderStatement","src":"469:1:17"}]},"id":3339,"name":"onlyQuery","nameLocation":"315:9:17","nodeType":"ModifierDefinition","parameters":{"id":3326,"nodeType":"ParameterList","parameters":[],"src":"325:0:17"},"src":"306:172:17","virtual":false,"visibility":"internal"},{"body":{"id":3367,"nodeType":"Block","src":"617:135:17","statements":[{"expression":{"id":3358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3352,"name":"_oracleService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3325,"src":"628:14:17","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"4f7261636c6553657276696365","id":3355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"680:15:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""},"value":"OracleService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""}],"id":3354,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"660:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"660:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3353,"name":"IOracleService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"645:14:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOracleService_$6519_$","typeString":"type(contract IOracleService)"}},"id":3357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"645:52:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"src":"628:69:17","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"id":3359,"nodeType":"ExpressionStatement","src":"628:69:17"},{"eventCall":{"arguments":[{"arguments":[{"id":3363,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"738:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_Oracle_$3414","typeString":"contract Oracle"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Oracle_$3414","typeString":"contract Oracle"}],"id":3362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"730:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3361,"name":"address","nodeType":"ElementaryTypeName","src":"730:7:17","typeDescriptions":{}}},"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"730:13:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3360,"name":"LogOracleCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2997,"src":"713:16:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"713:31:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3366,"nodeType":"EmitStatement","src":"708:36:17"}]},"id":3368,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3346,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"574:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3347,"name":"ComponentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"580:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":3348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Oracle","nodeType":"MemberAccess","referencedDeclaration":2888,"src":"580:20:17","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},{"id":3349,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"602:8:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3350,"modifierName":{"id":3345,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"564:9:17"},"nodeType":"ModifierInvocation","src":"564:47:17"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3341,"mutability":"mutable","name":"name","nameLocation":"516:4:17","nodeType":"VariableDeclaration","scope":3368,"src":"508:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"508:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3343,"mutability":"mutable","name":"registry","nameLocation":"539:8:17","nodeType":"VariableDeclaration","scope":3368,"src":"531:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3342,"name":"address","nodeType":"ElementaryTypeName","src":"531:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"497:57:17"},"returnParameters":{"id":3351,"nodeType":"ParameterList","parameters":[],"src":"617:0:17"},"scope":3414,"src":"486:266:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2807],"body":{"id":3377,"nodeType":"Block","src":"853:52:17","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3373,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"888:5:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"888:7:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3372,"name":"LogOracleApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"870:17:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"870:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3376,"nodeType":"EmitStatement","src":"865:31:17"}]},"id":3378,"implemented":true,"kind":"function","modifiers":[],"name":"_afterApprove","nameLocation":"819:13:17","nodeType":"FunctionDefinition","overrides":{"id":3370,"nodeType":"OverrideSpecifier","overrides":[],"src":"844:8:17"},"parameters":{"id":3369,"nodeType":"ParameterList","parameters":[],"src":"832:2:17"},"returnParameters":{"id":3371,"nodeType":"ParameterList","parameters":[],"src":"853:0:17"},"scope":3414,"src":"810:95:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2803],"body":{"id":3387,"nodeType":"Block","src":"956:36:17","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3383,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"981:5:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"981:7:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3382,"name":"LogOracleProposed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"963:17:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"963:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3386,"nodeType":"EmitStatement","src":"958:31:17"}]},"id":3388,"implemented":true,"kind":"function","modifiers":[],"name":"_afterPropose","nameLocation":"922:13:17","nodeType":"FunctionDefinition","overrides":{"id":3380,"nodeType":"OverrideSpecifier","overrides":[],"src":"947:8:17"},"parameters":{"id":3379,"nodeType":"ParameterList","parameters":[],"src":"935:2:17"},"returnParameters":{"id":3381,"nodeType":"ParameterList","parameters":[],"src":"956:0:17"},"scope":3414,"src":"913:79:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2811],"body":{"id":3397,"nodeType":"Block","src":"1041:36:17","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3393,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"1066:5:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1066:7:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3392,"name":"LogOracleDeclined","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3009,"src":"1048:17:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1048:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3396,"nodeType":"EmitStatement","src":"1043:31:17"}]},"id":3398,"implemented":true,"kind":"function","modifiers":[],"name":"_afterDecline","nameLocation":"1007:13:17","nodeType":"FunctionDefinition","overrides":{"id":3390,"nodeType":"OverrideSpecifier","overrides":[],"src":"1032:8:17"},"parameters":{"id":3389,"nodeType":"ParameterList","parameters":[],"src":"1020:2:17"},"returnParameters":{"id":3391,"nodeType":"ParameterList","parameters":[],"src":"1041:0:17"},"scope":3414,"src":"998:79:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3412,"nodeType":"Block","src":"1150:58:17","statements":[{"expression":{"arguments":[{"id":3408,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"1184:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3409,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3402,"src":"1195:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3405,"name":"_oracleService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3325,"src":"1161:14:17","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"id":3407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"respond","nodeType":"MemberAccess","referencedDeclaration":6518,"src":"1161:22:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":3410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1161:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3411,"nodeType":"ExpressionStatement","src":"1161:39:17"}]},"id":3413,"implemented":true,"kind":"function","modifiers":[],"name":"_respond","nameLocation":"1094:8:17","nodeType":"FunctionDefinition","parameters":{"id":3403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3400,"mutability":"mutable","name":"requestId","nameLocation":"1111:9:17","nodeType":"VariableDeclaration","scope":3413,"src":"1103:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3399,"name":"uint256","nodeType":"ElementaryTypeName","src":"1103:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3402,"mutability":"mutable","name":"data","nameLocation":"1135:4:17","nodeType":"VariableDeclaration","scope":3413,"src":"1122:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3401,"name":"bytes","nodeType":"ElementaryTypeName","src":"1122:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1102:38:17"},"returnParameters":{"id":3404,"nodeType":"ParameterList","parameters":[],"src":"1150:0:17"},"scope":3414,"src":"1085:123:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":3415,"src":"190:1025:17"}],"src":"40:1177:17"},"id":17},"@etherisc/gif-interface/contracts/components/Product.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/Product.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Product":[4042]},"id":4043,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3416,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:18"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"./IProduct.sol","id":3417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4043,"sourceUnit":3080,"src":"63:24:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Component.sol","file":"./Component.sol","id":3418,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4043,"sourceUnit":2885,"src":"88:25:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"../modules/IPolicy.sol","id":3419,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4043,"sourceUnit":5434,"src":"114:32:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"../services/IInstanceService.sol","id":3420,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4043,"sourceUnit":6510,"src":"147:42:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","file":"../services/IProductService.sol","id":3421,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4043,"sourceUnit":6665,"src":"190:41:18","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3422,"name":"IProduct","nodeType":"IdentifierPath","referencedDeclaration":3079,"src":"266:8:18"},"id":3423,"nodeType":"InheritanceSpecifier","src":"266:8:18"},{"baseName":{"id":3424,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"281:9:18"},"id":3425,"nodeType":"InheritanceSpecifier","src":"281:9:18"}],"contractDependencies":[2884,2988,3079,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":4042,"linearizedBaseContracts":[4042,2884,7481,10518,5073,3079,2988],"name":"Product","nameLocation":"251:7:18","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3427,"mutability":"mutable","name":"_policyFlow","nameLocation":"318:11:18","nodeType":"VariableDeclaration","scope":4042,"src":"302:27:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3426,"name":"address","nodeType":"ElementaryTypeName","src":"302:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":3429,"mutability":"mutable","name":"_token","nameLocation":"398:6:18","nodeType":"VariableDeclaration","scope":4042,"src":"382:22:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3428,"name":"address","nodeType":"ElementaryTypeName","src":"382:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":3431,"mutability":"mutable","name":"_riskpoolId","nameLocation":"465:11:18","nodeType":"VariableDeclaration","scope":4042,"src":"449:27:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3430,"name":"uint256","nodeType":"ElementaryTypeName","src":"449:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":3434,"mutability":"mutable","name":"_productService","nameLocation":"555:15:18","nodeType":"VariableDeclaration","scope":4042,"src":"530:40:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"},"typeName":{"id":3433,"nodeType":"UserDefinedTypeName","pathNode":{"id":3432,"name":"IProductService","nodeType":"IdentifierPath","referencedDeclaration":6664,"src":"530:15:18"},"referencedDeclaration":6664,"src":"530:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"visibility":"internal"},{"constant":false,"id":3437,"mutability":"mutable","name":"_instanceService","nameLocation":"602:16:18","nodeType":"VariableDeclaration","scope":4042,"src":"576:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":3436,"nodeType":"UserDefinedTypeName","pathNode":{"id":3435,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"576:16:18"},"referencedDeclaration":6509,"src":"576:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"internal"},{"body":{"id":3458,"nodeType":"Block","src":"669:219:18","statements":[{"assignments":[3442],"declarations":[{"constant":false,"id":3442,"mutability":"mutable","name":"policyHolder","nameLocation":"687:12:18","nodeType":"VariableDeclaration","scope":3458,"src":"679:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3441,"name":"address","nodeType":"ElementaryTypeName","src":"679:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3448,"initialValue":{"expression":{"arguments":[{"id":3445,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"731:8:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3443,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"702:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":6428,"src":"702:28:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":3446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"702:38:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":3447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"702:44:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"679:67:18"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3450,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"777:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"777:12:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3452,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3442,"src":"793:12:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"777:28:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5052442d3030313a504f4c4943595f4f525f484f4c4445525f494e56414c4944","id":3454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"820:40:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c751e03794b568011bdacc7506cfc24e9e6da1a04bd63102218013a02fcc8b2","typeString":"literal_string \"ERROR:PRD-001:POLICY_OR_HOLDER_INVALID\""},"value":"ERROR:PRD-001:POLICY_OR_HOLDER_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8c751e03794b568011bdacc7506cfc24e9e6da1a04bd63102218013a02fcc8b2","typeString":"literal_string \"ERROR:PRD-001:POLICY_OR_HOLDER_INVALID\""}],"id":3449,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"756:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"756:114:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3456,"nodeType":"ExpressionStatement","src":"756:114:18"},{"id":3457,"nodeType":"PlaceholderStatement","src":"880:1:18"}]},"id":3459,"name":"onlyPolicyHolder","nameLocation":"634:16:18","nodeType":"ModifierDefinition","parameters":{"id":3440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3439,"mutability":"mutable","name":"policyId","nameLocation":"659:8:18","nodeType":"VariableDeclaration","scope":3459,"src":"651:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"651:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"650:18:18"},"src":"625:263:18","virtual":false,"visibility":"internal"},{"body":{"id":3472,"nodeType":"Block","src":"915:149:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3462,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"947:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"947:12:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"4c6963656e6365","id":3465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"983:9:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ca2c06beb422d975cd2070710bcde13ae6539489c77a2eac3d019f18f8a11bd","typeString":"literal_string \"Licence\""},"value":"Licence"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6ca2c06beb422d975cd2070710bcde13ae6539489c77a2eac3d019f18f8a11bd","typeString":"literal_string \"Licence\""}],"id":3464,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"963:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"963:30:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"947:46:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5052442d3030323a4143434553535f44454e494544","id":3468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1007:29:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c303e58a1c0410c1101cc429b23d15274514a5237e202175e3c0976550224f8a","typeString":"literal_string \"ERROR:PRD-002:ACCESS_DENIED\""},"value":"ERROR:PRD-002:ACCESS_DENIED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c303e58a1c0410c1101cc429b23d15274514a5237e202175e3c0976550224f8a","typeString":"literal_string \"ERROR:PRD-002:ACCESS_DENIED\""}],"id":3461,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"925:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"925:121:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3470,"nodeType":"ExpressionStatement","src":"925:121:18"},{"id":3471,"nodeType":"PlaceholderStatement","src":"1056:1:18"}]},"id":3473,"name":"onlyLicence","nameLocation":"903:11:18","nodeType":"ModifierDefinition","parameters":{"id":3460,"nodeType":"ParameterList","parameters":[],"src":"915:0:18"},"src":"894:170:18","virtual":false,"visibility":"internal"},{"body":{"id":3486,"nodeType":"Block","src":"1090:147:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3476,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1122:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1122:12:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"5175657279","id":3479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1158:7:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""}],"id":3478,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1138:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1138:28:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1122:44:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5052442d3030333a4143434553535f44454e494544","id":3482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1180:29:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f","typeString":"literal_string \"ERROR:PRD-003:ACCESS_DENIED\""},"value":"ERROR:PRD-003:ACCESS_DENIED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f","typeString":"literal_string \"ERROR:PRD-003:ACCESS_DENIED\""}],"id":3475,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1100:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1100:119:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3484,"nodeType":"ExpressionStatement","src":"1100:119:18"},{"id":3485,"nodeType":"PlaceholderStatement","src":"1229:1:18"}]},"id":3487,"name":"onlyOracle","nameLocation":"1079:10:18","nodeType":"ModifierDefinition","parameters":{"id":3474,"nodeType":"ParameterList","parameters":[],"src":"1090:0:18"},"src":"1070:167:18","virtual":false,"visibility":"internal"},{"body":{"id":3543,"nodeType":"Block","src":"1449:383:18","statements":[{"expression":{"id":3508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3506,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3429,"src":"1459:6:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3507,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"1468:5:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1459:14:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3509,"nodeType":"ExpressionStatement","src":"1459:14:18"},{"expression":{"id":3512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3510,"name":"_riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"1483:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3511,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3495,"src":"1497:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1483:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3513,"nodeType":"ExpressionStatement","src":"1483:24:18"},{"expression":{"id":3518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3514,"name":"_policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"1565:11:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3516,"name":"policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3493,"src":"1599:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3515,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1579:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1579:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1565:45:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3519,"nodeType":"ExpressionStatement","src":"1565:45:18"},{"expression":{"id":3526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3520,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"1620:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"50726f6475637453657276696365","id":3523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1674:16:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""},"value":"ProductService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""}],"id":3522,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1654:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1654:37:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3521,"name":"IProductService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6664,"src":"1638:15:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProductService_$6664_$","typeString":"type(contract IProductService)"}},"id":3525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1638:54:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"src":"1620:72:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3527,"nodeType":"ExpressionStatement","src":"1620:72:18"},{"expression":{"id":3534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3528,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"1702:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"496e7374616e636553657276696365","id":3531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1758:17:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""},"value":"InstanceService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""}],"id":3530,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1738:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1738:38:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3529,"name":"IInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"1721:16:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IInstanceService_$6509_$","typeString":"type(contract IInstanceService)"}},"id":3533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1721:56:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"src":"1702:75:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3535,"nodeType":"ExpressionStatement","src":"1702:75:18"},{"eventCall":{"arguments":[{"arguments":[{"id":3539,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1819:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_Product_$4042","typeString":"contract Product"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Product_$4042","typeString":"contract Product"}],"id":3538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1811:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3537,"name":"address","nodeType":"ElementaryTypeName","src":"1811:7:18","typeDescriptions":{}}},"id":3540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1811:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3536,"name":"LogProductCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"1793:17:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1793:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3542,"nodeType":"EmitStatement","src":"1788:37:18"}]},"id":3544,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3500,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3489,"src":"1406:4:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3501,"name":"ComponentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"1412:13:18","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":3502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Product","nodeType":"MemberAccess","referencedDeclaration":2889,"src":"1412:21:18","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},{"id":3503,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3497,"src":"1435:8:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3504,"modifierName":{"id":3499,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"1396:9:18"},"nodeType":"ModifierInvocation","src":"1396:48:18"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3489,"mutability":"mutable","name":"name","nameLocation":"1272:4:18","nodeType":"VariableDeclaration","scope":3544,"src":"1264:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1264:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3491,"mutability":"mutable","name":"token","nameLocation":"1294:5:18","nodeType":"VariableDeclaration","scope":3544,"src":"1286:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3490,"name":"address","nodeType":"ElementaryTypeName","src":"1286:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3493,"mutability":"mutable","name":"policyFlow","nameLocation":"1317:10:18","nodeType":"VariableDeclaration","scope":3544,"src":"1309:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1309:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3495,"mutability":"mutable","name":"riskpoolId","nameLocation":"1345:10:18","nodeType":"VariableDeclaration","scope":3544,"src":"1337:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1337:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3497,"mutability":"mutable","name":"registry","nameLocation":"1373:8:18","nodeType":"VariableDeclaration","scope":3544,"src":"1365:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3496,"name":"address","nodeType":"ElementaryTypeName","src":"1365:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1254:133:18"},"returnParameters":{"id":3505,"nodeType":"ParameterList","parameters":[],"src":"1449:0:18"},"scope":4042,"src":"1243:589:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[3048],"body":{"id":3552,"nodeType":"Block","src":"1896:30:18","statements":[{"expression":{"id":3550,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3429,"src":"1913:6:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3549,"id":3551,"nodeType":"Return","src":"1906:13:18"}]},"functionSelector":"21df0da7","id":3553,"implemented":true,"kind":"function","modifiers":[],"name":"getToken","nameLocation":"1847:8:18","nodeType":"FunctionDefinition","overrides":{"id":3546,"nodeType":"OverrideSpecifier","overrides":[],"src":"1865:8:18"},"parameters":{"id":3545,"nodeType":"ParameterList","parameters":[],"src":"1855:2:18"},"returnParameters":{"id":3549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3553,"src":"1887:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3547,"name":"address","nodeType":"ElementaryTypeName","src":"1887:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1886:9:18"},"scope":4042,"src":"1838:88:18","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3053],"body":{"id":3561,"nodeType":"Block","src":"1995:35:18","statements":[{"expression":{"id":3559,"name":"_policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"2012:11:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3558,"id":3560,"nodeType":"Return","src":"2005:18:18"}]},"functionSelector":"637d08f4","id":3562,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyFlow","nameLocation":"1941:13:18","nodeType":"FunctionDefinition","overrides":{"id":3555,"nodeType":"OverrideSpecifier","overrides":[],"src":"1969:8:18"},"parameters":{"id":3554,"nodeType":"ParameterList","parameters":[],"src":"1954:2:18"},"returnParameters":{"id":3558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3562,"src":"1986:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3556,"name":"address","nodeType":"ElementaryTypeName","src":"1986:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1985:9:18"},"scope":4042,"src":"1932:98:18","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3058],"body":{"id":3570,"nodeType":"Block","src":"2099:35:18","statements":[{"expression":{"id":3568,"name":"_riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"2116:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3567,"id":3569,"nodeType":"Return","src":"2109:18:18"}]},"functionSelector":"70d2fe53","id":3571,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolId","nameLocation":"2045:13:18","nodeType":"FunctionDefinition","overrides":{"id":3564,"nodeType":"OverrideSpecifier","overrides":[],"src":"2068:8:18"},"parameters":{"id":3563,"nodeType":"ParameterList","parameters":[],"src":"2058:2:18"},"returnParameters":{"id":3567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3566,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3571,"src":"2090:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2090:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2089:9:18"},"scope":4042,"src":"2036:98:18","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2807],"body":{"id":3580,"nodeType":"Block","src":"2232:37:18","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3576,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"2258:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2258:7:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3575,"name":"LogProductApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3039,"src":"2239:18:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2239:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3579,"nodeType":"EmitStatement","src":"2234:32:18"}]},"id":3581,"implemented":true,"kind":"function","modifiers":[],"name":"_afterApprove","nameLocation":"2198:13:18","nodeType":"FunctionDefinition","overrides":{"id":3573,"nodeType":"OverrideSpecifier","overrides":[],"src":"2223:8:18"},"parameters":{"id":3572,"nodeType":"ParameterList","parameters":[],"src":"2211:2:18"},"returnParameters":{"id":3574,"nodeType":"ParameterList","parameters":[],"src":"2232:0:18"},"scope":4042,"src":"2189:80:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2803],"body":{"id":3590,"nodeType":"Block","src":"2318:37:18","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3586,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"2344:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2344:7:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3585,"name":"LogProductProposed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3035,"src":"2325:18:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2325:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3589,"nodeType":"EmitStatement","src":"2320:32:18"}]},"id":3591,"implemented":true,"kind":"function","modifiers":[],"name":"_afterPropose","nameLocation":"2284:13:18","nodeType":"FunctionDefinition","overrides":{"id":3583,"nodeType":"OverrideSpecifier","overrides":[],"src":"2309:8:18"},"parameters":{"id":3582,"nodeType":"ParameterList","parameters":[],"src":"2297:2:18"},"returnParameters":{"id":3584,"nodeType":"ParameterList","parameters":[],"src":"2318:0:18"},"scope":4042,"src":"2275:80:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2811],"body":{"id":3600,"nodeType":"Block","src":"2403:37:18","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3596,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"2429:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2429:7:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3595,"name":"LogProductDeclined","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3043,"src":"2410:18:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2410:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3599,"nodeType":"EmitStatement","src":"2405:32:18"}]},"id":3601,"implemented":true,"kind":"function","modifiers":[],"name":"_afterDecline","nameLocation":"2369:13:18","nodeType":"FunctionDefinition","overrides":{"id":3593,"nodeType":"OverrideSpecifier","overrides":[],"src":"2394:8:18"},"parameters":{"id":3592,"nodeType":"ParameterList","parameters":[],"src":"2382:2:18"},"returnParameters":{"id":3594,"nodeType":"ParameterList","parameters":[],"src":"2403:0:18"},"scope":4042,"src":"2360:80:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3627,"nodeType":"Block","src":"2703:202:18","statements":[{"expression":{"id":3625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3616,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3614,"src":"2713:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3619,"name":"applicationOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3603,"src":"2769:16:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3620,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"2800:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3621,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3607,"src":"2828:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3622,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3609,"src":"2859:8:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3623,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3611,"src":"2882:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3617,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"2725:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newApplication","nodeType":"MemberAccess","referencedDeclaration":6536,"src":"2725:30:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) external returns (bytes32)"}},"id":3624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2725:173:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2713:185:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3626,"nodeType":"ExpressionStatement","src":"2713:185:18"}]},"id":3628,"implemented":true,"kind":"function","modifiers":[],"name":"_newApplication","nameLocation":"2455:15:18","nodeType":"FunctionDefinition","parameters":{"id":3612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3603,"mutability":"mutable","name":"applicationOwner","nameLocation":"2488:16:18","nodeType":"VariableDeclaration","scope":3628,"src":"2480:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3602,"name":"address","nodeType":"ElementaryTypeName","src":"2480:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3605,"mutability":"mutable","name":"premiumAmount","nameLocation":"2522:13:18","nodeType":"VariableDeclaration","scope":3628,"src":"2514:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3604,"name":"uint256","nodeType":"ElementaryTypeName","src":"2514:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3607,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"2553:16:18","nodeType":"VariableDeclaration","scope":3628,"src":"2545:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3606,"name":"uint256","nodeType":"ElementaryTypeName","src":"2545:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3609,"mutability":"mutable","name":"metaData","nameLocation":"2592:8:18","nodeType":"VariableDeclaration","scope":3628,"src":"2579:21:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3608,"name":"bytes","nodeType":"ElementaryTypeName","src":"2579:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3611,"mutability":"mutable","name":"applicationData","nameLocation":"2624:15:18","nodeType":"VariableDeclaration","scope":3628,"src":"2611:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3610,"name":"bytes","nodeType":"ElementaryTypeName","src":"2611:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2470:176:18"},"returnParameters":{"id":3615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3614,"mutability":"mutable","name":"processId","nameLocation":"2688:9:18","nodeType":"VariableDeclaration","scope":3628,"src":"2680:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2680:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2679:19:18"},"scope":4042,"src":"2446:459:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3669,"nodeType":"Block","src":"3091:358:18","statements":[{"assignments":[3643],"declarations":[{"constant":false,"id":3643,"mutability":"mutable","name":"policy","nameLocation":"3123:6:18","nodeType":"VariableDeclaration","scope":3669,"src":"3101:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":3642,"nodeType":"UserDefinedTypeName","pathNode":{"id":3641,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"3101:14:18"},"referencedDeclaration":5282,"src":"3101:14:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":3647,"initialValue":{"arguments":[{"id":3645,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3630,"src":"3143:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3644,"name":"_getPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3973,"src":"3132:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Policy memory)"}},"id":3646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3132:21:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"3101:52:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3648,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"3168:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":3649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"3168:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":3650,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"3195:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":3651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"3195:28:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3168:55:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3668,"nodeType":"IfStatement","src":"3164:279:18","trueBody":{"id":3667,"nodeType":"Block","src":"3225:218:18","statements":[{"expression":{"id":3665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3653,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"3240:7:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3654,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3635,"src":"3249:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3655,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3637,"src":"3260:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3656,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3239:31:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3658,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3630,"src":"3327:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3659,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"3359:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":3660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"3359:28:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":3661,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"3390:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":3662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"3390:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3359:55:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3657,"name":"_collectPremium","nodeType":"Identifier","overloadedDeclarations":[3670,3695],"referencedDeclaration":3695,"src":"3290:15:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (bool,uint256,uint256)"}},"id":3664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3290:142:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"3239:193:18","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3666,"nodeType":"ExpressionStatement","src":"3239:193:18"}]}}]},"id":3670,"implemented":true,"kind":"function","modifiers":[],"name":"_collectPremium","nameLocation":"2920:15:18","nodeType":"FunctionDefinition","parameters":{"id":3631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3630,"mutability":"mutable","name":"processId","nameLocation":"2944:9:18","nodeType":"VariableDeclaration","scope":3670,"src":"2936:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2936:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2935:19:18"},"returnParameters":{"id":3638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3633,"mutability":"mutable","name":"success","nameLocation":"3007:7:18","nodeType":"VariableDeclaration","scope":3670,"src":"3002:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3632,"name":"bool","nodeType":"ElementaryTypeName","src":"3002:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3635,"mutability":"mutable","name":"feeAmount","nameLocation":"3036:9:18","nodeType":"VariableDeclaration","scope":3670,"src":"3028:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3634,"name":"uint256","nodeType":"ElementaryTypeName","src":"3028:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3637,"mutability":"mutable","name":"netAmount","nameLocation":"3067:9:18","nodeType":"VariableDeclaration","scope":3670,"src":"3059:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3636,"name":"uint256","nodeType":"ElementaryTypeName","src":"3059:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2988:98:18"},"scope":4042,"src":"2911:538:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3694,"nodeType":"Block","src":"3672:100:18","statements":[{"expression":{"id":3692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3683,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"3683:7:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3684,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"3692:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3685,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3681,"src":"3703:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3686,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3682:31:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3689,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3672,"src":"3747:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3690,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3674,"src":"3758:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3687,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"3716:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collectPremium","nodeType":"MemberAccess","referencedDeclaration":6549,"src":"3716:30:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (bool,uint256,uint256)"}},"id":3691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3716:49:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"3682:83:18","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3693,"nodeType":"ExpressionStatement","src":"3682:83:18"}]},"id":3695,"implemented":true,"kind":"function","modifiers":[],"name":"_collectPremium","nameLocation":"3464:15:18","nodeType":"FunctionDefinition","parameters":{"id":3675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3672,"mutability":"mutable","name":"processId","nameLocation":"3497:9:18","nodeType":"VariableDeclaration","scope":3695,"src":"3489:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3489:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3674,"mutability":"mutable","name":"amount","nameLocation":"3524:6:18","nodeType":"VariableDeclaration","scope":3695,"src":"3516:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3673,"name":"uint256","nodeType":"ElementaryTypeName","src":"3516:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3479:57:18"},"returnParameters":{"id":3682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3677,"mutability":"mutable","name":"success","nameLocation":"3588:7:18","nodeType":"VariableDeclaration","scope":3695,"src":"3583:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3676,"name":"bool","nodeType":"ElementaryTypeName","src":"3583:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3679,"mutability":"mutable","name":"feeAmount","nameLocation":"3617:9:18","nodeType":"VariableDeclaration","scope":3695,"src":"3609:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3678,"name":"uint256","nodeType":"ElementaryTypeName","src":"3609:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3681,"mutability":"mutable","name":"netAmount","nameLocation":"3648:9:18","nodeType":"VariableDeclaration","scope":3695,"src":"3640:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3680,"name":"uint256","nodeType":"ElementaryTypeName","src":"3640:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3569:98:18"},"scope":4042,"src":"3455:317:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3712,"nodeType":"Block","src":"3927:108:18","statements":[{"expression":{"arguments":[{"id":3707,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3697,"src":"3977:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3708,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3699,"src":"3988:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3709,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3701,"src":"4011:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3704,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"3937:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"adjustPremiumSumInsured","nodeType":"MemberAccess","referencedDeclaration":6558,"src":"3937:39:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256) external"}},"id":3710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3937:91:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3711,"nodeType":"ExpressionStatement","src":"3937:91:18"}]},"id":3713,"implemented":true,"kind":"function","modifiers":[],"name":"_adjustPremiumSumInsured","nameLocation":"3787:24:18","nodeType":"FunctionDefinition","parameters":{"id":3702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3697,"mutability":"mutable","name":"processId","nameLocation":"3829:9:18","nodeType":"VariableDeclaration","scope":3713,"src":"3821:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3696,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3821:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3699,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"3856:21:18","nodeType":"VariableDeclaration","scope":3713,"src":"3848:29:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3698,"name":"uint256","nodeType":"ElementaryTypeName","src":"3848:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3701,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"3895:16:18","nodeType":"VariableDeclaration","scope":3713,"src":"3887:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3700,"name":"uint256","nodeType":"ElementaryTypeName","src":"3887:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3811:106:18"},"returnParameters":{"id":3703,"nodeType":"ParameterList","parameters":[],"src":"3927:0:18"},"scope":4042,"src":"3778:257:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3724,"nodeType":"Block","src":"4086:50:18","statements":[{"expression":{"arguments":[{"id":3721,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3715,"src":"4119:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3718,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4096:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"revoke","nodeType":"MemberAccess","referencedDeclaration":6563,"src":"4096:22:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":3722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4096:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3723,"nodeType":"ExpressionStatement","src":"4096:33:18"}]},"id":3725,"implemented":true,"kind":"function","modifiers":[],"name":"_revoke","nameLocation":"4050:7:18","nodeType":"FunctionDefinition","parameters":{"id":3716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3715,"mutability":"mutable","name":"processId","nameLocation":"4066:9:18","nodeType":"VariableDeclaration","scope":3725,"src":"4058:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4058:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4057:19:18"},"returnParameters":{"id":3717,"nodeType":"ParameterList","parameters":[],"src":"4086:0:18"},"scope":4042,"src":"4041:95:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3739,"nodeType":"Block","src":"4213:64:18","statements":[{"expression":{"id":3737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3732,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3730,"src":"4223:7:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3735,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"4260:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3733,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4233:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"underwrite","nodeType":"MemberAccess","referencedDeclaration":6570,"src":"4233:26:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) external returns (bool)"}},"id":3736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4233:37:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4223:47:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3738,"nodeType":"ExpressionStatement","src":"4223:47:18"}]},"id":3740,"implemented":true,"kind":"function","modifiers":[],"name":"_underwrite","nameLocation":"4151:11:18","nodeType":"FunctionDefinition","parameters":{"id":3728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3727,"mutability":"mutable","name":"processId","nameLocation":"4171:9:18","nodeType":"VariableDeclaration","scope":3740,"src":"4163:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4163:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4162:19:18"},"returnParameters":{"id":3731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3730,"mutability":"mutable","name":"success","nameLocation":"4204:7:18","nodeType":"VariableDeclaration","scope":3740,"src":"4199:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3729,"name":"bool","nodeType":"ElementaryTypeName","src":"4199:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4198:14:18"},"scope":4042,"src":"4142:135:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3751,"nodeType":"Block","src":"4329:51:18","statements":[{"expression":{"arguments":[{"id":3748,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"4363:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3745,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4339:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decline","nodeType":"MemberAccess","referencedDeclaration":6575,"src":"4339:23:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":3749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4339:34:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3750,"nodeType":"ExpressionStatement","src":"4339:34:18"}]},"id":3752,"implemented":true,"kind":"function","modifiers":[],"name":"_decline","nameLocation":"4292:8:18","nodeType":"FunctionDefinition","parameters":{"id":3743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3742,"mutability":"mutable","name":"processId","nameLocation":"4309:9:18","nodeType":"VariableDeclaration","scope":3752,"src":"4301:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4301:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4300:19:18"},"returnParameters":{"id":3744,"nodeType":"ParameterList","parameters":[],"src":"4329:0:18"},"scope":4042,"src":"4283:97:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3763,"nodeType":"Block","src":"4431:50:18","statements":[{"expression":{"arguments":[{"id":3760,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"4464:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3757,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4441:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"expire","nodeType":"MemberAccess","referencedDeclaration":6580,"src":"4441:22:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":3761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4441:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3762,"nodeType":"ExpressionStatement","src":"4441:33:18"}]},"id":3764,"implemented":true,"kind":"function","modifiers":[],"name":"_expire","nameLocation":"4395:7:18","nodeType":"FunctionDefinition","parameters":{"id":3755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3754,"mutability":"mutable","name":"processId","nameLocation":"4411:9:18","nodeType":"VariableDeclaration","scope":3764,"src":"4403:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4403:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4402:19:18"},"returnParameters":{"id":3756,"nodeType":"ParameterList","parameters":[],"src":"4431:0:18"},"scope":4042,"src":"4386:95:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3775,"nodeType":"Block","src":"4531:49:18","statements":[{"expression":{"arguments":[{"id":3772,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"4563:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3769,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4541:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"close","nodeType":"MemberAccess","referencedDeclaration":6585,"src":"4541:21:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":3773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4541:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3774,"nodeType":"ExpressionStatement","src":"4541:32:18"}]},"id":3776,"implemented":true,"kind":"function","modifiers":[],"name":"_close","nameLocation":"4496:6:18","nodeType":"FunctionDefinition","parameters":{"id":3767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3766,"mutability":"mutable","name":"processId","nameLocation":"4511:9:18","nodeType":"VariableDeclaration","scope":3776,"src":"4503:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4503:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4502:19:18"},"returnParameters":{"id":3768,"nodeType":"ParameterList","parameters":[],"src":"4531:0:18"},"scope":4042,"src":"4487:93:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3796,"nodeType":"Block","src":"4751:120:18","statements":[{"expression":{"id":3794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3787,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"4761:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3790,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3778,"src":"4809:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3791,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3780,"src":"4833:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3792,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"4859:4:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3788,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4771:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newClaim","nodeType":"MemberAccess","referencedDeclaration":6596,"src":"4771:24:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) external returns (uint256)"}},"id":3793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4771:93:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4761:103:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3795,"nodeType":"ExpressionStatement","src":"4761:103:18"}]},"id":3797,"implemented":true,"kind":"function","modifiers":[],"name":"_newClaim","nameLocation":"4595:9:18","nodeType":"FunctionDefinition","parameters":{"id":3783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3778,"mutability":"mutable","name":"processId","nameLocation":"4622:9:18","nodeType":"VariableDeclaration","scope":3797,"src":"4614:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4614:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3780,"mutability":"mutable","name":"claimAmount","nameLocation":"4650:11:18","nodeType":"VariableDeclaration","scope":3797,"src":"4642:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3779,"name":"uint256","nodeType":"ElementaryTypeName","src":"4642:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3782,"mutability":"mutable","name":"data","nameLocation":"4684:4:18","nodeType":"VariableDeclaration","scope":3797,"src":"4671:17:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3781,"name":"bytes","nodeType":"ElementaryTypeName","src":"4671:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4604:90:18"},"returnParameters":{"id":3786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3785,"mutability":"mutable","name":"claimId","nameLocation":"4738:7:18","nodeType":"VariableDeclaration","scope":3797,"src":"4730:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3784,"name":"uint256","nodeType":"ElementaryTypeName","src":"4730:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4729:17:18"},"scope":4042,"src":"4586:285:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3814,"nodeType":"Block","src":"5009:118:18","statements":[{"expression":{"arguments":[{"id":3809,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"5061:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3810,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3801,"src":"5085:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3811,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3803,"src":"5107:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3806,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"5019:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"confirmClaim","nodeType":"MemberAccess","referencedDeclaration":6605,"src":"5019:28:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256) external"}},"id":3812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5019:101:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3813,"nodeType":"ExpressionStatement","src":"5019:101:18"}]},"id":3815,"implemented":true,"kind":"function","modifiers":[],"name":"_confirmClaim","nameLocation":"4886:13:18","nodeType":"FunctionDefinition","parameters":{"id":3804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3799,"mutability":"mutable","name":"processId","nameLocation":"4917:9:18","nodeType":"VariableDeclaration","scope":3815,"src":"4909:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4909:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3801,"mutability":"mutable","name":"claimId","nameLocation":"4944:7:18","nodeType":"VariableDeclaration","scope":3815,"src":"4936:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3800,"name":"uint256","nodeType":"ElementaryTypeName","src":"4936:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3803,"mutability":"mutable","name":"payoutAmount","nameLocation":"4969:12:18","nodeType":"VariableDeclaration","scope":3815,"src":"4961:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3802,"name":"uint256","nodeType":"ElementaryTypeName","src":"4961:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4899:88:18"},"returnParameters":{"id":3805,"nodeType":"ParameterList","parameters":[],"src":"5009:0:18"},"scope":4042,"src":"4877:250:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3829,"nodeType":"Block","src":"5201:65:18","statements":[{"expression":{"arguments":[{"id":3825,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3817,"src":"5240:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3826,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3819,"src":"5251:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3822,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"5211:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"declineClaim","nodeType":"MemberAccess","referencedDeclaration":6612,"src":"5211:28:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5211:48:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3828,"nodeType":"ExpressionStatement","src":"5211:48:18"}]},"id":3830,"implemented":true,"kind":"function","modifiers":[],"name":"_declineClaim","nameLocation":"5142:13:18","nodeType":"FunctionDefinition","parameters":{"id":3820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3817,"mutability":"mutable","name":"processId","nameLocation":"5164:9:18","nodeType":"VariableDeclaration","scope":3830,"src":"5156:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5156:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3819,"mutability":"mutable","name":"claimId","nameLocation":"5183:7:18","nodeType":"VariableDeclaration","scope":3830,"src":"5175:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3818,"name":"uint256","nodeType":"ElementaryTypeName","src":"5175:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5155:36:18"},"returnParameters":{"id":3821,"nodeType":"ParameterList","parameters":[],"src":"5201:0:18"},"scope":4042,"src":"5133:133:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3844,"nodeType":"Block","src":"5338:63:18","statements":[{"expression":{"arguments":[{"id":3840,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"5375:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3841,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3834,"src":"5386:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3837,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"5348:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"closeClaim","nodeType":"MemberAccess","referencedDeclaration":6619,"src":"5348:26:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5348:46:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3843,"nodeType":"ExpressionStatement","src":"5348:46:18"}]},"id":3845,"implemented":true,"kind":"function","modifiers":[],"name":"_closeClaim","nameLocation":"5281:11:18","nodeType":"FunctionDefinition","parameters":{"id":3835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3832,"mutability":"mutable","name":"processId","nameLocation":"5301:9:18","nodeType":"VariableDeclaration","scope":3845,"src":"5293:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5293:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3834,"mutability":"mutable","name":"claimId","nameLocation":"5320:7:18","nodeType":"VariableDeclaration","scope":3845,"src":"5312:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3833,"name":"uint256","nodeType":"ElementaryTypeName","src":"5312:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5292:36:18"},"returnParameters":{"id":3836,"nodeType":"ParameterList","parameters":[],"src":"5338:0:18"},"scope":4042,"src":"5272:129:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3868,"nodeType":"Block","src":"5591:87:18","statements":[{"expression":{"id":3866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3858,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3856,"src":"5601:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3861,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3847,"src":"5638:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3862,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3849,"src":"5649:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3863,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3851,"src":"5658:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3864,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3853,"src":"5666:4:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3859,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"5612:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newPayout","nodeType":"MemberAccess","referencedDeclaration":6632,"src":"5612:25:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) external returns (uint256)"}},"id":3865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5612:59:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5601:70:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3867,"nodeType":"ExpressionStatement","src":"5601:70:18"}]},"id":3869,"implemented":true,"kind":"function","modifiers":[],"name":"_newPayout","nameLocation":"5416:10:18","nodeType":"FunctionDefinition","parameters":{"id":3854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3847,"mutability":"mutable","name":"processId","nameLocation":"5444:9:18","nodeType":"VariableDeclaration","scope":3869,"src":"5436:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5436:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3849,"mutability":"mutable","name":"claimId","nameLocation":"5471:7:18","nodeType":"VariableDeclaration","scope":3869,"src":"5463:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3848,"name":"uint256","nodeType":"ElementaryTypeName","src":"5463:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3851,"mutability":"mutable","name":"amount","nameLocation":"5496:6:18","nodeType":"VariableDeclaration","scope":3869,"src":"5488:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3850,"name":"uint256","nodeType":"ElementaryTypeName","src":"5488:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3853,"mutability":"mutable","name":"data","nameLocation":"5525:4:18","nodeType":"VariableDeclaration","scope":3869,"src":"5512:17:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3852,"name":"bytes","nodeType":"ElementaryTypeName","src":"5512:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5426:109:18"},"returnParameters":{"id":3857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3856,"mutability":"mutable","name":"payoutId","nameLocation":"5577:8:18","nodeType":"VariableDeclaration","scope":3869,"src":"5569:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3855,"name":"uint256","nodeType":"ElementaryTypeName","src":"5569:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5568:18:18"},"scope":4042,"src":"5407:271:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3890,"nodeType":"Block","src":"5882:132:18","statements":[{"expression":{"id":3888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3880,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3876,"src":"5906:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3881,"name":"netPayoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3878,"src":"5929:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3882,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5892:62:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3885,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3871,"src":"5987:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3886,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3873,"src":"5998:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3883,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"5957:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":6643,"src":"5957:29:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (uint256,uint256)"}},"id":3887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5957:50:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"5892:115:18","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3889,"nodeType":"ExpressionStatement","src":"5892:115:18"}]},"id":3891,"implemented":true,"kind":"function","modifiers":[],"name":"_processPayout","nameLocation":"5693:14:18","nodeType":"FunctionDefinition","parameters":{"id":3874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3871,"mutability":"mutable","name":"processId","nameLocation":"5725:9:18","nodeType":"VariableDeclaration","scope":3891,"src":"5717:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3870,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5717:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3873,"mutability":"mutable","name":"payoutId","nameLocation":"5752:8:18","nodeType":"VariableDeclaration","scope":3891,"src":"5744:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3872,"name":"uint256","nodeType":"ElementaryTypeName","src":"5744:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5707:59:18"},"returnParameters":{"id":3879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3876,"mutability":"mutable","name":"feeAmount","nameLocation":"5821:9:18","nodeType":"VariableDeclaration","scope":3891,"src":"5813:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3875,"name":"uint256","nodeType":"ElementaryTypeName","src":"5813:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3878,"mutability":"mutable","name":"netPayoutAmount","nameLocation":"5852:15:18","nodeType":"VariableDeclaration","scope":3891,"src":"5844:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3877,"name":"uint256","nodeType":"ElementaryTypeName","src":"5844:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5799:78:18"},"scope":4042,"src":"5684:330:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3918,"nodeType":"Block","src":"6235:196:18","statements":[{"expression":{"id":3916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3904,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"6245:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3907,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"6294:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3908,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3895,"src":"6317:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3909,"name":"callbackMethodName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3897,"src":"6336:18:18","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":3912,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"6376:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_Product_$4042","typeString":"contract Product"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Product_$4042","typeString":"contract Product"}],"id":3911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6368:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3910,"name":"address","nodeType":"ElementaryTypeName","src":"6368:7:18","typeDescriptions":{}}},"id":3913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6368:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3914,"name":"responsibleOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"6395:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3905,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"6257:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"request","nodeType":"MemberAccess","referencedDeclaration":6658,"src":"6257:23:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,bytes memory,string memory,address,uint256) external returns (uint256)"}},"id":3915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6257:167:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6245:179:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3917,"nodeType":"ExpressionStatement","src":"6245:179:18"}]},"id":3919,"implemented":true,"kind":"function","modifiers":[],"name":"_request","nameLocation":"6029:8:18","nodeType":"FunctionDefinition","parameters":{"id":3900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3893,"mutability":"mutable","name":"processId","nameLocation":"6055:9:18","nodeType":"VariableDeclaration","scope":3919,"src":"6047:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6047:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3895,"mutability":"mutable","name":"input","nameLocation":"6087:5:18","nodeType":"VariableDeclaration","scope":3919,"src":"6074:18:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3894,"name":"bytes","nodeType":"ElementaryTypeName","src":"6074:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3897,"mutability":"mutable","name":"callbackMethodName","nameLocation":"6116:18:18","nodeType":"VariableDeclaration","scope":3919,"src":"6102:32:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3896,"name":"string","nodeType":"ElementaryTypeName","src":"6102:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3899,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"6152:19:18","nodeType":"VariableDeclaration","scope":3919,"src":"6144:27:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3898,"name":"uint256","nodeType":"ElementaryTypeName","src":"6144:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6037:140:18"},"returnParameters":{"id":3903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3902,"mutability":"mutable","name":"requestId","nameLocation":"6220:9:18","nodeType":"VariableDeclaration","scope":3919,"src":"6212:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3901,"name":"uint256","nodeType":"ElementaryTypeName","src":"6212:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6211:19:18"},"scope":4042,"src":"6020:411:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3930,"nodeType":"Block","src":"6501:57:18","statements":[{"expression":{"arguments":[{"id":3927,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"6541:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3924,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"6511:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"cancelRequest","nodeType":"MemberAccess","referencedDeclaration":6663,"src":"6511:29:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":3928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6511:40:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3929,"nodeType":"ExpressionStatement","src":"6511:40:18"}]},"id":3931,"implemented":true,"kind":"function","modifiers":[],"name":"_cancelRequest","nameLocation":"6446:14:18","nodeType":"FunctionDefinition","parameters":{"id":3922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3921,"mutability":"mutable","name":"requestId","nameLocation":"6469:9:18","nodeType":"VariableDeclaration","scope":3931,"src":"6461:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3920,"name":"uint256","nodeType":"ElementaryTypeName","src":"6461:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6460:19:18"},"returnParameters":{"id":3923,"nodeType":"ParameterList","parameters":[],"src":"6501:0:18"},"scope":4042,"src":"6437:121:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3944,"nodeType":"Block","src":"6694:63:18","statements":[{"expression":{"arguments":[{"id":3941,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"6740:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3939,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"6711:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":6428,"src":"6711:28:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6711:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"functionReturnParameters":3938,"id":3943,"nodeType":"Return","src":"6704:46:18"}]},"id":3945,"implemented":true,"kind":"function","modifiers":[],"name":"_getMetadata","nameLocation":"6573:12:18","nodeType":"FunctionDefinition","parameters":{"id":3934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3933,"mutability":"mutable","name":"processId","nameLocation":"6594:9:18","nodeType":"VariableDeclaration","scope":3945,"src":"6586:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6586:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6585:19:18"},"returnParameters":{"id":3938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3937,"mutability":"mutable","name":"metadata","nameLocation":"6679:8:18","nodeType":"VariableDeclaration","scope":3945,"src":"6655:32:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":3936,"nodeType":"UserDefinedTypeName","pathNode":{"id":3935,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"6655:16:18"},"referencedDeclaration":5248,"src":"6655:16:18","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"src":"6654:34:18"},"scope":4042,"src":"6564:193:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3958,"nodeType":"Block","src":"6902:66:18","statements":[{"expression":{"arguments":[{"id":3955,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"6951:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3953,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"6919:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":6436,"src":"6919:31:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6919:42:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"functionReturnParameters":3952,"id":3957,"nodeType":"Return","src":"6912:49:18"}]},"id":3959,"implemented":true,"kind":"function","modifiers":[],"name":"_getApplication","nameLocation":"6772:15:18","nodeType":"FunctionDefinition","parameters":{"id":3948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3947,"mutability":"mutable","name":"processId","nameLocation":"6796:9:18","nodeType":"VariableDeclaration","scope":3959,"src":"6788:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6788:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6787:19:18"},"returnParameters":{"id":3952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3951,"mutability":"mutable","name":"application","nameLocation":"6884:11:18","nodeType":"VariableDeclaration","scope":3959,"src":"6857:38:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":3950,"nodeType":"UserDefinedTypeName","pathNode":{"id":3949,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"6857:19:18"},"referencedDeclaration":5262,"src":"6857:19:18","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"6856:40:18"},"scope":4042,"src":"6763:205:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3972,"nodeType":"Block","src":"7098:61:18","statements":[{"expression":{"arguments":[{"id":3969,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3961,"src":"7142:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3967,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"7115:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":6444,"src":"7115:26:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":3970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7115:37:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"functionReturnParameters":3966,"id":3971,"nodeType":"Return","src":"7108:44:18"}]},"id":3973,"implemented":true,"kind":"function","modifiers":[],"name":"_getPolicy","nameLocation":"6983:10:18","nodeType":"FunctionDefinition","parameters":{"id":3962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3961,"mutability":"mutable","name":"processId","nameLocation":"7002:9:18","nodeType":"VariableDeclaration","scope":3973,"src":"6994:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6994:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6993:19:18"},"returnParameters":{"id":3966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3965,"mutability":"mutable","name":"policy","nameLocation":"7085:6:18","nodeType":"VariableDeclaration","scope":3973,"src":"7063:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":3964,"nodeType":"UserDefinedTypeName","pathNode":{"id":3963,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"7063:14:18"},"referencedDeclaration":5282,"src":"7063:14:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"src":"7062:30:18"},"scope":4042,"src":"6974:185:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3989,"nodeType":"Block","src":"7303:69:18","statements":[{"expression":{"arguments":[{"id":3985,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3975,"src":"7346:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3986,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3977,"src":"7357:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3983,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"7320:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getClaim","nodeType":"MemberAccess","referencedDeclaration":6468,"src":"7320:25:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Claim_$5296_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Claim memory)"}},"id":3987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7320:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"functionReturnParameters":3982,"id":3988,"nodeType":"Return","src":"7313:52:18"}]},"id":3990,"implemented":true,"kind":"function","modifiers":[],"name":"_getClaim","nameLocation":"7174:9:18","nodeType":"FunctionDefinition","parameters":{"id":3978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3975,"mutability":"mutable","name":"processId","nameLocation":"7192:9:18","nodeType":"VariableDeclaration","scope":3990,"src":"7184:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3974,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7184:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3977,"mutability":"mutable","name":"claimId","nameLocation":"7211:7:18","nodeType":"VariableDeclaration","scope":3990,"src":"7203:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3976,"name":"uint256","nodeType":"ElementaryTypeName","src":"7203:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7183:36:18"},"returnParameters":{"id":3982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3981,"mutability":"mutable","name":"claim","nameLocation":"7291:5:18","nodeType":"VariableDeclaration","scope":3990,"src":"7270:26:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":3980,"nodeType":"UserDefinedTypeName","pathNode":{"id":3979,"name":"IPolicy.Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"7270:13:18"},"referencedDeclaration":5296,"src":"7270:13:18","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"src":"7269:28:18"},"scope":4042,"src":"7165:207:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4006,"nodeType":"Block","src":"7520:71:18","statements":[{"expression":{"arguments":[{"id":4002,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3992,"src":"7564:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4003,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3994,"src":"7575:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4000,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"7537:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPayout","nodeType":"MemberAccess","referencedDeclaration":6478,"src":"7537:26:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Payout_$5310_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Payout memory)"}},"id":4004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7537:47:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"functionReturnParameters":3999,"id":4005,"nodeType":"Return","src":"7530:54:18"}]},"id":4007,"implemented":true,"kind":"function","modifiers":[],"name":"_getPayout","nameLocation":"7387:10:18","nodeType":"FunctionDefinition","parameters":{"id":3995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3992,"mutability":"mutable","name":"processId","nameLocation":"7406:9:18","nodeType":"VariableDeclaration","scope":4007,"src":"7398:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3991,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7398:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3994,"mutability":"mutable","name":"payoutId","nameLocation":"7425:8:18","nodeType":"VariableDeclaration","scope":4007,"src":"7417:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3993,"name":"uint256","nodeType":"ElementaryTypeName","src":"7417:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7397:37:18"},"returnParameters":{"id":3999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3998,"mutability":"mutable","name":"payout","nameLocation":"7507:6:18","nodeType":"VariableDeclaration","scope":4007,"src":"7485:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":3997,"nodeType":"UserDefinedTypeName","pathNode":{"id":3996,"name":"IPolicy.Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"7485:14:18"},"referencedDeclaration":5310,"src":"7485:14:18","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"src":"7484:30:18"},"scope":4042,"src":"7378:213:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[3063],"body":{"id":4015,"nodeType":"Block","src":"7704:26:18","statements":[{"expression":{"hexValue":"","id":4013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7721:2:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":4012,"id":4014,"nodeType":"Return","src":"7714:9:18"}]},"functionSelector":"94f64ff4","id":4016,"implemented":true,"kind":"function","modifiers":[],"name":"getApplicationDataStructure","nameLocation":"7606:27:18","nodeType":"FunctionDefinition","overrides":{"id":4009,"nodeType":"OverrideSpecifier","overrides":[],"src":"7645:8:18"},"parameters":{"id":4008,"nodeType":"ParameterList","parameters":[],"src":"7633:2:18"},"returnParameters":{"id":4012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4011,"mutability":"mutable","name":"dataStructure","nameLocation":"7689:13:18","nodeType":"VariableDeclaration","scope":4016,"src":"7675:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4010,"name":"string","nodeType":"ElementaryTypeName","src":"7675:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7674:29:18"},"scope":4042,"src":"7597:133:18","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[3068],"body":{"id":4024,"nodeType":"Block","src":"7837:26:18","statements":[{"expression":{"hexValue":"","id":4022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7854:2:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":4021,"id":4023,"nodeType":"Return","src":"7847:9:18"}]},"functionSelector":"3ec92bda","id":4025,"implemented":true,"kind":"function","modifiers":[],"name":"getClaimDataStructure","nameLocation":"7745:21:18","nodeType":"FunctionDefinition","overrides":{"id":4018,"nodeType":"OverrideSpecifier","overrides":[],"src":"7778:8:18"},"parameters":{"id":4017,"nodeType":"ParameterList","parameters":[],"src":"7766:2:18"},"returnParameters":{"id":4021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4020,"mutability":"mutable","name":"dataStructure","nameLocation":"7822:13:18","nodeType":"VariableDeclaration","scope":4025,"src":"7808:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4019,"name":"string","nodeType":"ElementaryTypeName","src":"7808:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7807:29:18"},"scope":4042,"src":"7736:127:18","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[3073],"body":{"id":4033,"nodeType":"Block","src":"7974:26:18","statements":[{"expression":{"hexValue":"","id":4031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7991:2:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":4030,"id":4032,"nodeType":"Return","src":"7984:9:18"}]},"functionSelector":"39cf5e16","id":4034,"implemented":true,"kind":"function","modifiers":[],"name":"getPayoutDataStructure","nameLocation":"7881:22:18","nodeType":"FunctionDefinition","overrides":{"id":4027,"nodeType":"OverrideSpecifier","overrides":[],"src":"7915:8:18"},"parameters":{"id":4026,"nodeType":"ParameterList","parameters":[],"src":"7903:2:18"},"returnParameters":{"id":4030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4029,"mutability":"mutable","name":"dataStructure","nameLocation":"7959:13:18","nodeType":"VariableDeclaration","scope":4034,"src":"7945:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4028,"name":"string","nodeType":"ElementaryTypeName","src":"7945:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7944:29:18"},"scope":4042,"src":"7872:128:18","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[3078],"body":{"id":4040,"nodeType":"Block","src":"8084:3:18","statements":[]},"functionSelector":"f4fdc1fa","id":4041,"implemented":true,"kind":"function","modifiers":[],"name":"riskPoolCapacityCallback","nameLocation":"8015:24:18","nodeType":"FunctionDefinition","overrides":{"id":4038,"nodeType":"OverrideSpecifier","overrides":[],"src":"8067:8:18"},"parameters":{"id":4037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4036,"mutability":"mutable","name":"capacity","nameLocation":"8048:8:18","nodeType":"VariableDeclaration","scope":4041,"src":"8040:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4035,"name":"uint256","nodeType":"ElementaryTypeName","src":"8040:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8039:18:18"},"returnParameters":{"id":4039,"nodeType":"ParameterList","parameters":[],"src":"8084:0:18"},"scope":4042,"src":"8006:81:18","stateMutability":"nonpayable","virtual":true,"visibility":"external"}],"scope":4043,"src":"233:7856:18"}],"src":"39:8051:18"},"id":18},"@etherisc/gif-interface/contracts/components/Riskpool.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/Riskpool.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Riskpool":[4773]},"id":4774,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":4044,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:19"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","file":"./IRiskpool.sol","id":4045,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":3313,"src":"66:25:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Component.sol","file":"./Component.sol","id":4046,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":2885,"src":"93:25:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"../modules/IBundle.sol","id":4047,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":5021,"src":"122:32:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"../modules/IPolicy.sol","id":4048,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":5434,"src":"156:32:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"../services/IInstanceService.sol","id":4049,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":6510,"src":"190:42:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","file":"../services/IRiskpoolService.sol","id":4050,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":6771,"src":"234:42:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":4051,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":10157,"src":"280:58:19","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4052,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"378:9:19"},"id":4053,"nodeType":"InheritanceSpecifier","src":"378:9:19"},{"baseName":{"id":4054,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"395:9:19"},"id":4055,"nodeType":"InheritanceSpecifier","src":"395:9:19"}],"contractDependencies":[2884,2988,3312,5073,7481,10518],"contractKind":"contract","fullyImplemented":false,"id":4773,"linearizedBaseContracts":[4773,2884,7481,10518,5073,3312,2988],"name":"Riskpool","nameLocation":"360:8:19","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"45fe1c6d","id":4060,"mutability":"constant","name":"FULL_COLLATERALIZATION_LEVEL","nameLocation":"604:28:19","nodeType":"VariableDeclaration","scope":4773,"src":"580:61:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4056,"name":"uint256","nodeType":"ElementaryTypeName","src":"580:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":4059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"635:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":4058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"639:2:19","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"635:6:19","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"public"},{"constant":true,"functionSelector":"7893c7bc","id":4063,"mutability":"constant","name":"DEFAULT_FILTER_DATA_STRUCTURE","nameLocation":"671:29:19","nodeType":"VariableDeclaration","scope":4773,"src":"648:57:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4061,"name":"string","nodeType":"ElementaryTypeName","src":"648:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"","id":4062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"703:2:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"visibility":"public"},{"constant":false,"id":4066,"mutability":"mutable","name":"_instanceService","nameLocation":"740:16:19","nodeType":"VariableDeclaration","scope":4773,"src":"714:42:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":4065,"nodeType":"UserDefinedTypeName","pathNode":{"id":4064,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"714:16:19"},"referencedDeclaration":6509,"src":"714:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"internal"},{"constant":false,"id":4069,"mutability":"mutable","name":"_riskpoolService","nameLocation":"790:16:19","nodeType":"VariableDeclaration","scope":4773,"src":"764:42:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"},"typeName":{"id":4068,"nodeType":"UserDefinedTypeName","pathNode":{"id":4067,"name":"IRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":6770,"src":"764:16:19"},"referencedDeclaration":6770,"src":"764:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"visibility":"internal"},{"constant":false,"id":4072,"mutability":"mutable","name":"_bundleToken","nameLocation":"830:12:19","nodeType":"VariableDeclaration","scope":4773,"src":"813:29:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$10156","typeString":"contract IERC721"},"typeName":{"id":4071,"nodeType":"UserDefinedTypeName","pathNode":{"id":4070,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":10156,"src":"813:7:19"},"referencedDeclaration":10156,"src":"813:7:19","typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$10156","typeString":"contract IERC721"}},"visibility":"internal"},{"constant":false,"id":4075,"mutability":"mutable","name":"_bundleIds","nameLocation":"935:10:19","nodeType":"VariableDeclaration","scope":4773,"src":"915:30:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":4073,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4074,"nodeType":"ArrayTypeName","src":"915:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":4077,"mutability":"mutable","name":"_wallet","nameLocation":"970:7:19","nodeType":"VariableDeclaration","scope":4773,"src":"954:23:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4076,"name":"address","nodeType":"ElementaryTypeName","src":"954:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":4079,"mutability":"mutable","name":"_erc20Token","nameLocation":"1000:11:19","nodeType":"VariableDeclaration","scope":4773,"src":"984:27:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4078,"name":"address","nodeType":"ElementaryTypeName","src":"984:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":4081,"mutability":"mutable","name":"_collateralization","nameLocation":"1034:18:19","nodeType":"VariableDeclaration","scope":4773,"src":"1018:34:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4080,"name":"uint256","nodeType":"ElementaryTypeName","src":"1018:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":4083,"mutability":"mutable","name":"_sumOfSumInsuredCap","nameLocation":"1075:19:19","nodeType":"VariableDeclaration","scope":4773,"src":"1059:35:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4082,"name":"uint256","nodeType":"ElementaryTypeName","src":"1059:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":4085,"mutability":"mutable","name":"_maxNumberOfActiveBundles","nameLocation":"1117:25:19","nodeType":"VariableDeclaration","scope":4773,"src":"1101:41:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4084,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":4098,"nodeType":"Block","src":"1169:151:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4088,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1202:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1202:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"506f6f6c","id":4091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1238:6:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":4090,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1218:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":4092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1218:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1202:43:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030313a4143434553535f44454e494544","id":4094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1260:29:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4","typeString":"literal_string \"ERROR:RPL-001:ACCESS_DENIED\""},"value":"ERROR:RPL-001:ACCESS_DENIED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4","typeString":"literal_string \"ERROR:RPL-001:ACCESS_DENIED\""}],"id":4087,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1180:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1180:120:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4096,"nodeType":"ExpressionStatement","src":"1180:120:19"},{"id":4097,"nodeType":"PlaceholderStatement","src":"1311:1:19"}]},"id":4099,"name":"onlyPool","nameLocation":"1160:8:19","nodeType":"ModifierDefinition","parameters":{"id":4086,"nodeType":"ParameterList","parameters":[],"src":"1169:0:19"},"src":"1151:169:19","virtual":false,"visibility":"internal"},{"body":{"id":4130,"nodeType":"Block","src":"1371:287:19","statements":[{"assignments":[4107],"declarations":[{"constant":false,"id":4107,"mutability":"mutable","name":"bundle","nameLocation":"1404:6:19","nodeType":"VariableDeclaration","scope":4130,"src":"1382:28:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":4106,"nodeType":"UserDefinedTypeName","pathNode":{"id":4105,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"1382:14:19"},"referencedDeclaration":4936,"src":"1382:14:19","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":4112,"initialValue":{"arguments":[{"id":4110,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4101,"src":"1440:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4108,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"1413:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":6408,"src":"1413:26:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":4111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1413:36:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"1382:67:19"},{"assignments":[4114],"declarations":[{"constant":false,"id":4114,"mutability":"mutable","name":"bundleOwner","nameLocation":"1468:11:19","nodeType":"VariableDeclaration","scope":4130,"src":"1460:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4113,"name":"address","nodeType":"ElementaryTypeName","src":"1460:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4120,"initialValue":{"arguments":[{"expression":{"id":4117,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4107,"src":"1503:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":4118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4920,"src":"1503:14:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4115,"name":"_bundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"1482:12:19","typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$10156","typeString":"contract IERC721"}},"id":4116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":10089,"src":"1482:20:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":4119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1482:36:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1460:58:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4122,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1553:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1553:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4124,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"1569:11:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1553:27:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e4552","id":4126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1595:32:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22","typeString":"literal_string \"ERROR:BUC-001:NOT_BUNDLE_OWNER\""},"value":"ERROR:BUC-001:NOT_BUNDLE_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22","typeString":"literal_string \"ERROR:BUC-001:NOT_BUNDLE_OWNER\""}],"id":4121,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1531:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1531:107:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4128,"nodeType":"ExpressionStatement","src":"1531:107:19"},{"id":4129,"nodeType":"PlaceholderStatement","src":"1649:1:19"}]},"id":4131,"name":"onlyBundleOwner","nameLocation":"1337:15:19","nodeType":"ModifierDefinition","parameters":{"id":4102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4101,"mutability":"mutable","name":"bundleId","nameLocation":"1361:8:19","nodeType":"VariableDeclaration","scope":4131,"src":"1353:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4100,"name":"uint256","nodeType":"ElementaryTypeName","src":"1353:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1352:18:19"},"src":"1328:330:19","virtual":false,"visibility":"internal"},{"body":{"id":4217,"nodeType":"Block","src":"1926:656:19","statements":[{"expression":{"id":4154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4152,"name":"_collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4081,"src":"1938:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4153,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4135,"src":"1959:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1938:38:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4155,"nodeType":"ExpressionStatement","src":"1938:38:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4157,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4137,"src":"1997:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2019:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1997:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245445f4341505f5a45524f","id":4160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2022:43:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992","typeString":"literal_string \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\""},"value":"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992","typeString":"literal_string \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\""}],"id":4156,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1989:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1989:77:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4162,"nodeType":"ExpressionStatement","src":"1989:77:19"},{"expression":{"id":4165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4163,"name":"_sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4083,"src":"2077:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4164,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4137,"src":"2099:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2077:40:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4166,"nodeType":"ExpressionStatement","src":"2077:40:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4168,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4139,"src":"2138:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2160:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2152:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4169,"name":"address","nodeType":"ElementaryTypeName","src":"2152:7:19","typeDescriptions":{}}},"id":4172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2152:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2138:24:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f","id":4174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2164:34:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6","typeString":"literal_string \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\""},"value":"ERROR:RPL-003:ERC20_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6","typeString":"literal_string \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\""}],"id":4167,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2130:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2130:69:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4176,"nodeType":"ExpressionStatement","src":"2130:69:19"},{"expression":{"id":4179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4177,"name":"_erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4079,"src":"2210:11:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4178,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4139,"src":"2224:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2210:24:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4180,"nodeType":"ExpressionStatement","src":"2210:24:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4182,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4141,"src":"2255:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2273:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2265:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4183,"name":"address","nodeType":"ElementaryTypeName","src":"2265:7:19","typeDescriptions":{}}},"id":4186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2265:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2255:20:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45524f","id":4188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2277:35:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a","typeString":"literal_string \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\""},"value":"ERROR:RPL-004:WALLET_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a","typeString":"literal_string \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\""}],"id":4181,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2247:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2247:66:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4190,"nodeType":"ExpressionStatement","src":"2247:66:19"},{"expression":{"id":4193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4191,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"2324:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4192,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4141,"src":"2334:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2324:16:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4194,"nodeType":"ExpressionStatement","src":"2324:16:19"},{"expression":{"id":4201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4195,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"2353:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"496e7374616e636553657276696365","id":4198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2409:17:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""},"value":"InstanceService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""}],"id":4197,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"2389:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":4199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2389:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4196,"name":"IInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"2372:16:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IInstanceService_$6509_$","typeString":"type(contract IInstanceService)"}},"id":4200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2372:56:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"src":"2353:75:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4202,"nodeType":"ExpressionStatement","src":"2353:75:19"},{"expression":{"id":4209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4203,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"2440:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"5269736b706f6f6c53657276696365","id":4206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2496:17:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""},"value":"RiskpoolService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""}],"id":4205,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"2476:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":4207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2476:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4204,"name":"IRiskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6770,"src":"2459:16:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskpoolService_$6770_$","typeString":"type(contract IRiskpoolService)"}},"id":4208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2459:56:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"src":"2440:75:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4210,"nodeType":"ExpressionStatement","src":"2440:75:19"},{"expression":{"id":4215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4211,"name":"_bundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"2526:12:19","typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$10156","typeString":"contract IERC721"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4212,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"2541:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundleToken","nodeType":"MemberAccess","referencedDeclaration":6395,"src":"2541:31:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IBundleToken_$6825_$","typeString":"function () view external returns (contract IBundleToken)"}},"id":4214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2541:33:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"src":"2526:48:19","typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$10156","typeString":"contract IERC721"}},"id":4216,"nodeType":"ExpressionStatement","src":"2526:48:19"}]},"id":4218,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4146,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4133,"src":"1881:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":4147,"name":"ComponentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"1887:13:19","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":4148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"1887:22:19","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},{"id":4149,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4143,"src":"1911:8:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4150,"modifierName":{"id":4145,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"1871:9:19"},"nodeType":"ModifierInvocation","src":"1871:49:19"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4133,"mutability":"mutable","name":"name","nameLocation":"1696:4:19","nodeType":"VariableDeclaration","scope":4218,"src":"1688:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1688:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4135,"mutability":"mutable","name":"collateralization","nameLocation":"1719:17:19","nodeType":"VariableDeclaration","scope":4218,"src":"1711:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4134,"name":"uint256","nodeType":"ElementaryTypeName","src":"1711:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4137,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"1755:18:19","nodeType":"VariableDeclaration","scope":4218,"src":"1747:26:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4136,"name":"uint256","nodeType":"ElementaryTypeName","src":"1747:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4139,"mutability":"mutable","name":"erc20Token","nameLocation":"1792:10:19","nodeType":"VariableDeclaration","scope":4218,"src":"1784:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4138,"name":"address","nodeType":"ElementaryTypeName","src":"1784:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4141,"mutability":"mutable","name":"wallet","nameLocation":"1821:6:19","nodeType":"VariableDeclaration","scope":4218,"src":"1813:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4140,"name":"address","nodeType":"ElementaryTypeName","src":"1813:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4143,"mutability":"mutable","name":"registry","nameLocation":"1846:8:19","nodeType":"VariableDeclaration","scope":4218,"src":"1838:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4142,"name":"address","nodeType":"ElementaryTypeName","src":"1838:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1677:184:19"},"returnParameters":{"id":4151,"nodeType":"ParameterList","parameters":[],"src":"1926:0:19"},"scope":4773,"src":"1666:916:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2803],"body":{"id":4231,"nodeType":"Block","src":"2641:179:19","statements":[{"expression":{"arguments":[{"id":4225,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"2700:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4226,"name":"_erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4079,"src":"2722:11:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4227,"name":"_collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4081,"src":"2749:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4228,"name":"_sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4083,"src":"2782:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4222,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"2652:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerRiskpool","nodeType":"MemberAccess","referencedDeclaration":6677,"src":"2652:33:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256) external"}},"id":4229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2652:160:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4230,"nodeType":"ExpressionStatement","src":"2652:160:19"}]},"id":4232,"implemented":true,"kind":"function","modifiers":[],"name":"_afterPropose","nameLocation":"2599:13:19","nodeType":"FunctionDefinition","overrides":{"id":4220,"nodeType":"OverrideSpecifier","overrides":[],"src":"2624:8:19"},"parameters":{"id":4219,"nodeType":"ParameterList","parameters":[],"src":"2612:2:19"},"returnParameters":{"id":4221,"nodeType":"ParameterList","parameters":[],"src":"2641:0:19"},"scope":4773,"src":"2590:230:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[3149],"body":{"id":4267,"nodeType":"Block","src":"2968:243:19","statements":[{"assignments":[4243],"declarations":[{"constant":false,"id":4243,"mutability":"mutable","name":"bundleOwner","nameLocation":"2987:11:19","nodeType":"VariableDeclaration","scope":4267,"src":"2979:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4242,"name":"address","nodeType":"ElementaryTypeName","src":"2979:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4246,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4244,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3001:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3001:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2979:34:19"},{"expression":{"id":4254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4247,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"3024:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4250,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"3065:11:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4251,"name":"filter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4234,"src":"3078:6:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4252,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4236,"src":"3086:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4248,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3035:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createBundle","nodeType":"MemberAccess","referencedDeclaration":6688,"src":"3035:29:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,bytes memory,uint256) external returns (uint256)"}},"id":4253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3035:65:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3024:76:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4255,"nodeType":"ExpressionStatement","src":"3024:76:19"},{"expression":{"arguments":[{"id":4259,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"3127:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4256,"name":"_bundleIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"3111:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"3111:15:19","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":4260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3111:25:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4261,"nodeType":"ExpressionStatement","src":"3111:25:19"},{"eventCall":{"arguments":[{"id":4263,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"3179:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4264,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4236,"src":"3189:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4262,"name":"LogRiskpoolBundleCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"3154:24:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":4265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3154:49:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4266,"nodeType":"EmitStatement","src":"3149:54:19"}]},"functionSelector":"7888a2ff","id":4268,"implemented":true,"kind":"function","modifiers":[],"name":"createBundle","nameLocation":"2837:12:19","nodeType":"FunctionDefinition","overrides":{"id":4238,"nodeType":"OverrideSpecifier","overrides":[],"src":"2919:8:19"},"parameters":{"id":4237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4234,"mutability":"mutable","name":"filter","nameLocation":"2863:6:19","nodeType":"VariableDeclaration","scope":4268,"src":"2850:19:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4233,"name":"bytes","nodeType":"ElementaryTypeName","src":"2850:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4236,"mutability":"mutable","name":"initialAmount","nameLocation":"2879:13:19","nodeType":"VariableDeclaration","scope":4268,"src":"2871:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4235,"name":"uint256","nodeType":"ElementaryTypeName","src":"2871:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2849:44:19"},"returnParameters":{"id":4241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4240,"mutability":"mutable","name":"bundleId","nameLocation":"2953:8:19","nodeType":"VariableDeclaration","scope":4268,"src":"2945:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4239,"name":"uint256","nodeType":"ElementaryTypeName","src":"2945:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2944:18:19"},"scope":4773,"src":"2828:383:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3158],"body":{"id":4289,"nodeType":"Block","src":"3377:76:19","statements":[{"expression":{"id":4287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4281,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4279,"src":"3388:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4284,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4270,"src":"3428:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4285,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4272,"src":"3438:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4282,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3400:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fundBundle","nodeType":"MemberAccess","referencedDeclaration":6697,"src":"3400:27:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256)"}},"id":4286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3400:45:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3388:57:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4288,"nodeType":"ExpressionStatement","src":"3388:57:19"}]},"functionSelector":"89002da5","id":4290,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4276,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4270,"src":"3326:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4277,"modifierName":{"id":4275,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"3310:15:19"},"nodeType":"ModifierInvocation","src":"3310:25:19"}],"name":"fundBundle","nameLocation":"3228:10:19","nodeType":"FunctionDefinition","overrides":{"id":4274,"nodeType":"OverrideSpecifier","overrides":[],"src":"3292:8:19"},"parameters":{"id":4273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4270,"mutability":"mutable","name":"bundleId","nameLocation":"3247:8:19","nodeType":"VariableDeclaration","scope":4290,"src":"3239:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4269,"name":"uint256","nodeType":"ElementaryTypeName","src":"3239:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4272,"mutability":"mutable","name":"amount","nameLocation":"3265:6:19","nodeType":"VariableDeclaration","scope":4290,"src":"3257:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4271,"name":"uint256","nodeType":"ElementaryTypeName","src":"3257:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3238:34:19"},"returnParameters":{"id":4280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4279,"mutability":"mutable","name":"netAmount","nameLocation":"3361:9:19","nodeType":"VariableDeclaration","scope":4290,"src":"3353:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4278,"name":"uint256","nodeType":"ElementaryTypeName","src":"3353:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3352:19:19"},"scope":4773,"src":"3219:234:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3167],"body":{"id":4311,"nodeType":"Block","src":"3620:78:19","statements":[{"expression":{"id":4309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4303,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4301,"src":"3631:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4306,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4292,"src":"3673:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4307,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"3683:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4304,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3643:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"defundBundle","nodeType":"MemberAccess","referencedDeclaration":6706,"src":"3643:29:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256)"}},"id":4308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3643:47:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3631:59:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4310,"nodeType":"ExpressionStatement","src":"3631:59:19"}]},"functionSelector":"36153f3a","id":4312,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4298,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4292,"src":"3569:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4299,"modifierName":{"id":4297,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"3553:15:19"},"nodeType":"ModifierInvocation","src":"3553:25:19"}],"name":"defundBundle","nameLocation":"3470:12:19","nodeType":"FunctionDefinition","overrides":{"id":4296,"nodeType":"OverrideSpecifier","overrides":[],"src":"3535:8:19"},"parameters":{"id":4295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4292,"mutability":"mutable","name":"bundleId","nameLocation":"3491:8:19","nodeType":"VariableDeclaration","scope":4312,"src":"3483:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4291,"name":"uint256","nodeType":"ElementaryTypeName","src":"3483:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4294,"mutability":"mutable","name":"amount","nameLocation":"3509:6:19","nodeType":"VariableDeclaration","scope":4312,"src":"3501:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4293,"name":"uint256","nodeType":"ElementaryTypeName","src":"3501:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3482:34:19"},"returnParameters":{"id":4302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4301,"mutability":"mutable","name":"netAmount","nameLocation":"3604:9:19","nodeType":"VariableDeclaration","scope":4312,"src":"3596:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4300,"name":"uint256","nodeType":"ElementaryTypeName","src":"3596:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3595:19:19"},"scope":4773,"src":"3461:237:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3172],"body":{"id":4327,"nodeType":"Block","src":"3811:56:19","statements":[{"expression":{"arguments":[{"id":4324,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4314,"src":"3850:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4321,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3822:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lockBundle","nodeType":"MemberAccess","referencedDeclaration":6711,"src":"3822:27:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3822:37:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4326,"nodeType":"ExpressionStatement","src":"3822:37:19"}]},"functionSelector":"a17030d5","id":4328,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4318,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4314,"src":"3796:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4319,"modifierName":{"id":4317,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"3780:15:19"},"nodeType":"ModifierInvocation","src":"3780:25:19"}],"name":"lockBundle","nameLocation":"3715:10:19","nodeType":"FunctionDefinition","overrides":{"id":4316,"nodeType":"OverrideSpecifier","overrides":[],"src":"3762:8:19"},"parameters":{"id":4315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4314,"mutability":"mutable","name":"bundleId","nameLocation":"3734:8:19","nodeType":"VariableDeclaration","scope":4328,"src":"3726:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4313,"name":"uint256","nodeType":"ElementaryTypeName","src":"3726:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3725:18:19"},"returnParameters":{"id":4320,"nodeType":"ParameterList","parameters":[],"src":"3811:0:19"},"scope":4773,"src":"3706:161:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3177],"body":{"id":4343,"nodeType":"Block","src":"3982:58:19","statements":[{"expression":{"arguments":[{"id":4340,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4330,"src":"4023:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4337,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3993:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unlockBundle","nodeType":"MemberAccess","referencedDeclaration":6716,"src":"3993:29:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3993:39:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4342,"nodeType":"ExpressionStatement","src":"3993:39:19"}]},"functionSelector":"316c5348","id":4344,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4334,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4330,"src":"3967:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4335,"modifierName":{"id":4333,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"3951:15:19"},"nodeType":"ModifierInvocation","src":"3951:25:19"}],"name":"unlockBundle","nameLocation":"3884:12:19","nodeType":"FunctionDefinition","overrides":{"id":4332,"nodeType":"OverrideSpecifier","overrides":[],"src":"3933:8:19"},"parameters":{"id":4331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4330,"mutability":"mutable","name":"bundleId","nameLocation":"3905:8:19","nodeType":"VariableDeclaration","scope":4344,"src":"3897:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4329,"name":"uint256","nodeType":"ElementaryTypeName","src":"3897:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3896:18:19"},"returnParameters":{"id":4336,"nodeType":"ParameterList","parameters":[],"src":"3982:0:19"},"scope":4773,"src":"3875:165:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3182],"body":{"id":4359,"nodeType":"Block","src":"4154:57:19","statements":[{"expression":{"arguments":[{"id":4356,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4346,"src":"4194:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4353,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"4165:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"closeBundle","nodeType":"MemberAccess","referencedDeclaration":6721,"src":"4165:28:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4165:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4358,"nodeType":"ExpressionStatement","src":"4165:38:19"}]},"functionSelector":"8c483e5a","id":4360,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4350,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4346,"src":"4139:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4351,"modifierName":{"id":4349,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"4123:15:19"},"nodeType":"ModifierInvocation","src":"4123:25:19"}],"name":"closeBundle","nameLocation":"4057:11:19","nodeType":"FunctionDefinition","overrides":{"id":4348,"nodeType":"OverrideSpecifier","overrides":[],"src":"4105:8:19"},"parameters":{"id":4347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4346,"mutability":"mutable","name":"bundleId","nameLocation":"4077:8:19","nodeType":"VariableDeclaration","scope":4360,"src":"4069:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4345,"name":"uint256","nodeType":"ElementaryTypeName","src":"4069:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4068:18:19"},"returnParameters":{"id":4352,"nodeType":"ParameterList","parameters":[],"src":"4154:0:19"},"scope":4773,"src":"4048:163:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3187],"body":{"id":4375,"nodeType":"Block","src":"4324:56:19","statements":[{"expression":{"arguments":[{"id":4372,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4362,"src":"4363:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4369,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"4335:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnBundle","nodeType":"MemberAccess","referencedDeclaration":6726,"src":"4335:27:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4335:37:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4374,"nodeType":"ExpressionStatement","src":"4335:37:19"}]},"functionSelector":"587e59d0","id":4376,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4366,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4362,"src":"4309:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4367,"modifierName":{"id":4365,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"4293:15:19"},"nodeType":"ModifierInvocation","src":"4293:25:19"}],"name":"burnBundle","nameLocation":"4228:10:19","nodeType":"FunctionDefinition","overrides":{"id":4364,"nodeType":"OverrideSpecifier","overrides":[],"src":"4275:8:19"},"parameters":{"id":4363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4362,"mutability":"mutable","name":"bundleId","nameLocation":"4247:8:19","nodeType":"VariableDeclaration","scope":4376,"src":"4239:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4361,"name":"uint256","nodeType":"ElementaryTypeName","src":"4239:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4238:18:19"},"returnParameters":{"id":4368,"nodeType":"ParameterList","parameters":[],"src":"4324:0:19"},"scope":4773,"src":"4219:161:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3196],"body":{"id":4401,"nodeType":"Block","src":"4545:154:19","statements":[{"expression":{"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4388,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4386,"src":"4556:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4390,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"4582:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4391,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4380,"src":"4593:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4389,"name":"_lockCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4751,"src":"4566:15:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$","typeString":"function (bytes32,uint256) returns (bool)"}},"id":4392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4566:44:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4556:54:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4394,"nodeType":"ExpressionStatement","src":"4556:54:19"},{"eventCall":{"arguments":[{"id":4396,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"4654:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4397,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4380,"src":"4665:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4398,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4386,"src":"4683:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4395,"name":"LogRiskpoolCollateralLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3122,"src":"4626:27:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (bytes32,uint256,bool)"}},"id":4399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4626:65:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4400,"nodeType":"EmitStatement","src":"4621:70:19"}]},"functionSelector":"890fbf78","id":4402,"implemented":true,"kind":"function","modifiers":[{"id":4384,"modifierName":{"id":4383,"name":"onlyPool","nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"4499:8:19"},"nodeType":"ModifierInvocation","src":"4499:8:19"}],"name":"collateralizePolicy","nameLocation":"4397:19:19","nodeType":"FunctionDefinition","overrides":{"id":4382,"nodeType":"OverrideSpecifier","overrides":[],"src":"4481:8:19"},"parameters":{"id":4381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4378,"mutability":"mutable","name":"processId","nameLocation":"4425:9:19","nodeType":"VariableDeclaration","scope":4402,"src":"4417:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4417:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4380,"mutability":"mutable","name":"collateralAmount","nameLocation":"4444:16:19","nodeType":"VariableDeclaration","scope":4402,"src":"4436:24:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4379,"name":"uint256","nodeType":"ElementaryTypeName","src":"4436:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4416:45:19"},"returnParameters":{"id":4387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4386,"mutability":"mutable","name":"success","nameLocation":"4530:7:19","nodeType":"VariableDeclaration","scope":4402,"src":"4525:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4385,"name":"bool","nodeType":"ElementaryTypeName","src":"4525:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4524:14:19"},"scope":4773,"src":"4388:311:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3210],"body":{"id":4422,"nodeType":"Block","src":"4821:113:19","statements":[{"expression":{"arguments":[{"id":4413,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4404,"src":"4847:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4414,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4406,"src":"4858:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4412,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"4832:14:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4832:33:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4416,"nodeType":"ExpressionStatement","src":"4832:33:19"},{"eventCall":{"arguments":[{"id":4418,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4404,"src":"4908:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4419,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4406,"src":"4919:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4417,"name":"LogRiskpoolPayoutProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3134,"src":"4881:26:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4881:45:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4421,"nodeType":"EmitStatement","src":"4876:50:19"}]},"functionSelector":"82558906","id":4423,"implemented":true,"kind":"function","modifiers":[{"id":4410,"modifierName":{"id":4409,"name":"onlyPool","nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"4807:8:19"},"nodeType":"ModifierInvocation","src":"4807:8:19"}],"name":"processPolicyPayout","nameLocation":"4716:19:19","nodeType":"FunctionDefinition","overrides":{"id":4408,"nodeType":"OverrideSpecifier","overrides":[],"src":"4789:8:19"},"parameters":{"id":4407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4404,"mutability":"mutable","name":"processId","nameLocation":"4744:9:19","nodeType":"VariableDeclaration","scope":4423,"src":"4736:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4403,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4736:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4406,"mutability":"mutable","name":"amount","nameLocation":"4763:6:19","nodeType":"VariableDeclaration","scope":4423,"src":"4755:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4405,"name":"uint256","nodeType":"ElementaryTypeName","src":"4755:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4735:35:19"},"returnParameters":{"id":4411,"nodeType":"ParameterList","parameters":[],"src":"4821:0:19"},"scope":4773,"src":"4707:227:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3203],"body":{"id":4443,"nodeType":"Block","src":"5057:115:19","statements":[{"expression":{"arguments":[{"id":4434,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4425,"src":"5084:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4435,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4427,"src":"5095:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4433,"name":"_processPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4758,"src":"5068:15:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5068:34:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4437,"nodeType":"ExpressionStatement","src":"5068:34:19"},{"eventCall":{"arguments":[{"id":4439,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4425,"src":"5146:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4440,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4427,"src":"5157:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4438,"name":"LogRiskpoolPremiumProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3128,"src":"5118:27:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5118:46:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4442,"nodeType":"EmitStatement","src":"5113:51:19"}]},"functionSelector":"3629c3c4","id":4444,"implemented":true,"kind":"function","modifiers":[{"id":4431,"modifierName":{"id":4430,"name":"onlyPool","nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"5043:8:19"},"nodeType":"ModifierInvocation","src":"5043:8:19"}],"name":"processPolicyPremium","nameLocation":"4951:20:19","nodeType":"FunctionDefinition","overrides":{"id":4429,"nodeType":"OverrideSpecifier","overrides":[],"src":"5025:8:19"},"parameters":{"id":4428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4425,"mutability":"mutable","name":"processId","nameLocation":"4980:9:19","nodeType":"VariableDeclaration","scope":4444,"src":"4972:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4972:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4427,"mutability":"mutable","name":"amount","nameLocation":"4999:6:19","nodeType":"VariableDeclaration","scope":4444,"src":"4991:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4426,"name":"uint256","nodeType":"ElementaryTypeName","src":"4991:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4971:35:19"},"returnParameters":{"id":4432,"nodeType":"ParameterList","parameters":[],"src":"5057:0:19"},"scope":4773,"src":"4942:230:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3215],"body":{"id":4463,"nodeType":"Block","src":"5273:149:19","statements":[{"assignments":[4453],"declarations":[{"constant":false,"id":4453,"mutability":"mutable","name":"collateralAmount","nameLocation":"5292:16:19","nodeType":"VariableDeclaration","scope":4463,"src":"5284:24:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4452,"name":"uint256","nodeType":"ElementaryTypeName","src":"5284:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4457,"initialValue":{"arguments":[{"id":4455,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4446,"src":"5330:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4454,"name":"_releaseCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4772,"src":"5311:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) returns (uint256)"}},"id":4456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5311:29:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5284:56:19"},{"eventCall":{"arguments":[{"id":4459,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4446,"src":"5386:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4460,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4453,"src":"5397:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4458,"name":"LogRiskpoolCollateralReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3140,"src":"5356:29:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5356:58:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4462,"nodeType":"EmitStatement","src":"5351:63:19"}]},"functionSelector":"c3004c86","id":4464,"implemented":true,"kind":"function","modifiers":[{"id":4450,"modifierName":{"id":4449,"name":"onlyPool","nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"5259:8:19"},"nodeType":"ModifierInvocation","src":"5259:8:19"}],"name":"releasePolicy","nameLocation":"5189:13:19","nodeType":"FunctionDefinition","overrides":{"id":4448,"nodeType":"OverrideSpecifier","overrides":[],"src":"5241:8:19"},"parameters":{"id":4447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4446,"mutability":"mutable","name":"processId","nameLocation":"5211:9:19","nodeType":"VariableDeclaration","scope":4464,"src":"5203:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5203:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5202:19:19"},"returnParameters":{"id":4451,"nodeType":"ParameterList","parameters":[],"src":"5273:0:19"},"scope":4773,"src":"5180:242:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3306],"body":{"id":4484,"nodeType":"Block","src":"5560:148:19","statements":[{"assignments":[4473],"declarations":[{"constant":false,"id":4473,"mutability":"mutable","name":"riskpoolId","nameLocation":"5579:10:19","nodeType":"VariableDeclaration","scope":4484,"src":"5571:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4472,"name":"uint256","nodeType":"ElementaryTypeName","src":"5571:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4476,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4474,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"5592:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5592:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5571:28:19"},{"expression":{"arguments":[{"id":4480,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4473,"src":"5659:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4481,"name":"maximumNumberOfActiveBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"5671:28:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4477,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"5610:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setMaximumNumberOfActiveBundles","nodeType":"MemberAccess","referencedDeclaration":6769,"src":"5610:48:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":4482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5610:90:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4483,"nodeType":"ExpressionStatement","src":"5610:90:19"}]},"functionSelector":"652028e5","id":4485,"implemented":true,"kind":"function","modifiers":[{"id":4470,"modifierName":{"id":4469,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"5545:9:19"},"nodeType":"ModifierInvocation","src":"5545:9:19"}],"name":"setMaximumNumberOfActiveBundles","nameLocation":"5439:31:19","nodeType":"FunctionDefinition","overrides":{"id":4468,"nodeType":"OverrideSpecifier","overrides":[],"src":"5527:8:19"},"parameters":{"id":4467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4466,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"5479:28:19","nodeType":"VariableDeclaration","scope":4485,"src":"5471:36:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4465,"name":"uint256","nodeType":"ElementaryTypeName","src":"5471:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5470:38:19"},"returnParameters":{"id":4471,"nodeType":"ParameterList","parameters":[],"src":"5560:0:19"},"scope":4773,"src":"5430:278:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3311],"body":{"id":4501,"nodeType":"Block","src":"5849:125:19","statements":[{"assignments":[4492],"declarations":[{"constant":false,"id":4492,"mutability":"mutable","name":"riskpoolId","nameLocation":"5868:10:19","nodeType":"VariableDeclaration","scope":4501,"src":"5860:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4491,"name":"uint256","nodeType":"ElementaryTypeName","src":"5860:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4495,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4493,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"5881:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5881:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5860:28:19"},{"expression":{"arguments":[{"id":4498,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4492,"src":"5955:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4496,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"5906:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMaximumNumberOfActiveBundles","nodeType":"MemberAccess","referencedDeclaration":6389,"src":"5906:48:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5906:60:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4490,"id":4500,"nodeType":"Return","src":"5899:67:19"}]},"functionSelector":"7f3b6980","id":4502,"implemented":true,"kind":"function","modifiers":[],"name":"getMaximumNumberOfActiveBundles","nameLocation":"5725:31:19","nodeType":"FunctionDefinition","overrides":{"id":4487,"nodeType":"OverrideSpecifier","overrides":[],"src":"5780:8:19"},"parameters":{"id":4486,"nodeType":"ParameterList","parameters":[],"src":"5756:2:19"},"returnParameters":{"id":4490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4489,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"5814:28:19","nodeType":"VariableDeclaration","scope":4502,"src":"5806:36:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4488,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5805:38:19"},"scope":4773,"src":"5716:258:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3271],"body":{"id":4510,"nodeType":"Block","src":"6041:33:19","statements":[{"expression":{"id":4508,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"6059:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4507,"id":4509,"nodeType":"Return","src":"6052:14:19"}]},"functionSelector":"13299604","id":4511,"implemented":true,"kind":"function","modifiers":[],"name":"getWallet","nameLocation":"5991:9:19","nodeType":"FunctionDefinition","overrides":{"id":4504,"nodeType":"OverrideSpecifier","overrides":[],"src":"6015:8:19"},"parameters":{"id":4503,"nodeType":"ParameterList","parameters":[],"src":"6000:2:19"},"returnParameters":{"id":4507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4511,"src":"6032:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4505,"name":"address","nodeType":"ElementaryTypeName","src":"6032:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6031:9:19"},"scope":4773,"src":"5982:92:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3276],"body":{"id":4519,"nodeType":"Block","src":"6145:37:19","statements":[{"expression":{"id":4517,"name":"_erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4079,"src":"6163:11:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4516,"id":4518,"nodeType":"Return","src":"6156:18:19"}]},"functionSelector":"feb1824b","id":4520,"implemented":true,"kind":"function","modifiers":[],"name":"getErc20Token","nameLocation":"6091:13:19","nodeType":"FunctionDefinition","overrides":{"id":4513,"nodeType":"OverrideSpecifier","overrides":[],"src":"6119:8:19"},"parameters":{"id":4512,"nodeType":"ParameterList","parameters":[],"src":"6104:2:19"},"returnParameters":{"id":4516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4520,"src":"6136:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4514,"name":"address","nodeType":"ElementaryTypeName","src":"6136:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6135:9:19"},"scope":4773,"src":"6082:100:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3281],"body":{"id":4528,"nodeType":"Block","src":"6262:45:19","statements":[{"expression":{"id":4526,"name":"_sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4083,"src":"6280:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4525,"id":4527,"nodeType":"Return","src":"6273:26:19"}]},"functionSelector":"a18aa128","id":4529,"implemented":true,"kind":"function","modifiers":[],"name":"getSumOfSumInsuredCap","nameLocation":"6199:21:19","nodeType":"FunctionDefinition","overrides":{"id":4522,"nodeType":"OverrideSpecifier","overrides":[],"src":"6235:8:19"},"parameters":{"id":4521,"nodeType":"ParameterList","parameters":[],"src":"6220:2:19"},"returnParameters":{"id":4525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4529,"src":"6253:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4523,"name":"uint256","nodeType":"ElementaryTypeName","src":"6253:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6252:9:19"},"scope":4773,"src":"6190:117:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3225],"body":{"id":4537,"nodeType":"Block","src":"6395:54:19","statements":[{"expression":{"id":4535,"name":"FULL_COLLATERALIZATION_LEVEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4060,"src":"6413:28:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4534,"id":4536,"nodeType":"Return","src":"6406:35:19"}]},"functionSelector":"f1d354d0","id":4538,"implemented":true,"kind":"function","modifiers":[],"name":"getFullCollateralizationLevel","nameLocation":"6324:29:19","nodeType":"FunctionDefinition","overrides":{"id":4531,"nodeType":"OverrideSpecifier","overrides":[],"src":"6368:8:19"},"parameters":{"id":4530,"nodeType":"ParameterList","parameters":[],"src":"6353:2:19"},"returnParameters":{"id":4534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4538,"src":"6386:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4532,"name":"uint256","nodeType":"ElementaryTypeName","src":"6386:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6385:9:19"},"scope":4773,"src":"6315:134:19","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[3220],"body":{"id":4546,"nodeType":"Block","src":"6533:44:19","statements":[{"expression":{"id":4544,"name":"_collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4081,"src":"6551:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4543,"id":4545,"nodeType":"Return","src":"6544:25:19"}]},"functionSelector":"54afef63","id":4547,"implemented":true,"kind":"function","modifiers":[],"name":"getCollateralizationLevel","nameLocation":"6466:25:19","nodeType":"FunctionDefinition","overrides":{"id":4540,"nodeType":"OverrideSpecifier","overrides":[],"src":"6506:8:19"},"parameters":{"id":4539,"nodeType":"ParameterList","parameters":[],"src":"6491:2:19"},"returnParameters":{"id":4543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4547,"src":"6524:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4541,"name":"uint256","nodeType":"ElementaryTypeName","src":"6524:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6523:9:19"},"scope":4773,"src":"6457:120:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3246],"body":{"id":4556,"nodeType":"Block","src":"6642:43:19","statements":[{"expression":{"expression":{"id":4553,"name":"_bundleIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"6660:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6660:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4552,"id":4555,"nodeType":"Return","src":"6653:24:19"}]},"functionSelector":"18442e63","id":4557,"implemented":true,"kind":"function","modifiers":[],"name":"bundles","nameLocation":"6594:7:19","nodeType":"FunctionDefinition","overrides":{"id":4549,"nodeType":"OverrideSpecifier","overrides":[],"src":"6611:8:19"},"parameters":{"id":4548,"nodeType":"ParameterList","parameters":[],"src":"6601:2:19"},"returnParameters":{"id":4552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4557,"src":"6633:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4550,"name":"uint256","nodeType":"ElementaryTypeName","src":"6633:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6632:9:19"},"scope":4773,"src":"6585:100:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3254],"body":{"id":4585,"nodeType":"Block","src":"6777:194:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4567,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4559,"src":"6796:3:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4568,"name":"_bundleIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"6802:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6802:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6796:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c41524745","id":4571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6821:38:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac","typeString":"literal_string \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\""},"value":"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac","typeString":"literal_string \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\""}],"id":4566,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6788:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6788:72:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4573,"nodeType":"ExpressionStatement","src":"6788:72:19"},{"assignments":[4575],"declarations":[{"constant":false,"id":4575,"mutability":"mutable","name":"bundleIdx","nameLocation":"6881:9:19","nodeType":"VariableDeclaration","scope":4585,"src":"6873:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4574,"name":"uint256","nodeType":"ElementaryTypeName","src":"6873:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4579,"initialValue":{"baseExpression":{"id":4576,"name":"_bundleIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"6893:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4578,"indexExpression":{"id":4577,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4559,"src":"6904:3:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6893:15:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6873:35:19"},{"expression":{"arguments":[{"id":4582,"name":"bundleIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4575,"src":"6953:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4580,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"6926:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":6408,"src":"6926:26:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":4583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6926:37:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"functionReturnParameters":4565,"id":4584,"nodeType":"Return","src":"6919:44:19"}]},"functionSelector":"2d0821b7","id":4586,"implemented":true,"kind":"function","modifiers":[],"name":"getBundle","nameLocation":"6702:9:19","nodeType":"FunctionDefinition","overrides":{"id":4561,"nodeType":"OverrideSpecifier","overrides":[],"src":"6732:8:19"},"parameters":{"id":4560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4559,"mutability":"mutable","name":"idx","nameLocation":"6720:3:19","nodeType":"VariableDeclaration","scope":4586,"src":"6712:11:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4558,"name":"uint256","nodeType":"ElementaryTypeName","src":"6712:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6711:13:19"},"returnParameters":{"id":4565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4586,"src":"6754:21:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":4563,"nodeType":"UserDefinedTypeName","pathNode":{"id":4562,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"6754:14:19"},"referencedDeclaration":4936,"src":"6754:14:19","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"src":"6753:23:19"},"scope":4773,"src":"6693:278:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3259],"body":{"id":4602,"nodeType":"Block","src":"7042:107:19","statements":[{"assignments":[4593],"declarations":[{"constant":false,"id":4593,"mutability":"mutable","name":"riskpoolId","nameLocation":"7061:10:19","nodeType":"VariableDeclaration","scope":4602,"src":"7053:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4592,"name":"uint256","nodeType":"ElementaryTypeName","src":"7053:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4596,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4594,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"7074:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7074:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7053:28:19"},{"expression":{"arguments":[{"id":4599,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"7130:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4597,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"7099:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"activeBundles","nodeType":"MemberAccess","referencedDeclaration":6373,"src":"7099:30:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7099:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4591,"id":4601,"nodeType":"Return","src":"7092:49:19"}]},"functionSelector":"4101b90c","id":4603,"implemented":true,"kind":"function","modifiers":[],"name":"activeBundles","nameLocation":"6988:13:19","nodeType":"FunctionDefinition","overrides":{"id":4588,"nodeType":"OverrideSpecifier","overrides":[],"src":"7011:8:19"},"parameters":{"id":4587,"nodeType":"ParameterList","parameters":[],"src":"7001:2:19"},"returnParameters":{"id":4591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4603,"src":"7033:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4589,"name":"uint256","nodeType":"ElementaryTypeName","src":"7033:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7032:9:19"},"scope":4773,"src":"6979:170:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3266],"body":{"id":4632,"nodeType":"Block","src":"7244:233:19","statements":[{"assignments":[4612],"declarations":[{"constant":false,"id":4612,"mutability":"mutable","name":"riskpoolId","nameLocation":"7263:10:19","nodeType":"VariableDeclaration","scope":4632,"src":"7255:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4611,"name":"uint256","nodeType":"ElementaryTypeName","src":"7255:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4613,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"7276:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7276:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7255:28:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4617,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4605,"src":"7302:3:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"id":4620,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"7339:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4618,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"7308:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"activeBundles","nodeType":"MemberAccess","referencedDeclaration":6373,"src":"7308:30:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7308:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7302:48:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e4445585f544f4f5f4c41524745","id":4623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7352:45:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9","typeString":"literal_string \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\""},"value":"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9","typeString":"literal_string \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\""}],"id":4616,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7294:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7294:104:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4625,"nodeType":"ExpressionStatement","src":"7294:104:19"},{"expression":{"arguments":[{"id":4628,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"7453:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4629,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4605,"src":"7465:3:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4626,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"7418:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getActiveBundleId","nodeType":"MemberAccess","referencedDeclaration":6382,"src":"7418:34:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256)"}},"id":4630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7418:51:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4610,"id":4631,"nodeType":"Return","src":"7411:58:19"}]},"functionSelector":"0676cb0e","id":4633,"implemented":true,"kind":"function","modifiers":[],"name":"getActiveBundleId","nameLocation":"7166:17:19","nodeType":"FunctionDefinition","overrides":{"id":4607,"nodeType":"OverrideSpecifier","overrides":[],"src":"7204:8:19"},"parameters":{"id":4606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4605,"mutability":"mutable","name":"idx","nameLocation":"7192:3:19","nodeType":"VariableDeclaration","scope":4633,"src":"7184:11:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4604,"name":"uint256","nodeType":"ElementaryTypeName","src":"7184:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7183:13:19"},"returnParameters":{"id":4610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4609,"mutability":"mutable","name":"bundleId","nameLocation":"7234:8:19","nodeType":"VariableDeclaration","scope":4633,"src":"7226:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7226:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7225:18:19"},"scope":4773,"src":"7157:320:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3241],"body":{"id":4641,"nodeType":"Block","src":"7565:55:19","statements":[{"expression":{"id":4639,"name":"DEFAULT_FILTER_DATA_STRUCTURE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"7583:29:19","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4638,"id":4640,"nodeType":"Return","src":"7576:36:19"}]},"functionSelector":"3dcdde17","id":4642,"implemented":true,"kind":"function","modifiers":[],"name":"getFilterDataStructure","nameLocation":"7494:22:19","nodeType":"FunctionDefinition","overrides":{"id":4635,"nodeType":"OverrideSpecifier","overrides":[],"src":"7528:8:19"},"parameters":{"id":4634,"nodeType":"ParameterList","parameters":[],"src":"7516:2:19"},"returnParameters":{"id":4638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4642,"src":"7550:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4636,"name":"string","nodeType":"ElementaryTypeName","src":"7550:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7549:15:19"},"scope":4773,"src":"7485:135:19","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[3286],"body":{"id":4658,"nodeType":"Block","src":"7688:104:19","statements":[{"assignments":[4649],"declarations":[{"constant":false,"id":4649,"mutability":"mutable","name":"riskpoolId","nameLocation":"7707:10:19","nodeType":"VariableDeclaration","scope":4658,"src":"7699:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4648,"name":"uint256","nodeType":"ElementaryTypeName","src":"7699:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4652,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4650,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"7720:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7720:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7699:28:19"},{"expression":{"arguments":[{"id":4655,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4649,"src":"7773:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4653,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"7745:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getCapital","nodeType":"MemberAccess","referencedDeclaration":6345,"src":"7745:27:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7745:39:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4647,"id":4657,"nodeType":"Return","src":"7738:46:19"}]},"functionSelector":"e0032383","id":4659,"implemented":true,"kind":"function","modifiers":[],"name":"getCapital","nameLocation":"7637:10:19","nodeType":"FunctionDefinition","overrides":{"id":4644,"nodeType":"OverrideSpecifier","overrides":[],"src":"7657:8:19"},"parameters":{"id":4643,"nodeType":"ParameterList","parameters":[],"src":"7647:2:19"},"returnParameters":{"id":4647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4659,"src":"7679:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4645,"name":"uint256","nodeType":"ElementaryTypeName","src":"7679:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7678:9:19"},"scope":4773,"src":"7628:164:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3291],"body":{"id":4675,"nodeType":"Block","src":"7869:113:19","statements":[{"assignments":[4666],"declarations":[{"constant":false,"id":4666,"mutability":"mutable","name":"riskpoolId","nameLocation":"7888:10:19","nodeType":"VariableDeclaration","scope":4675,"src":"7880:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4665,"name":"uint256","nodeType":"ElementaryTypeName","src":"7880:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4669,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4667,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"7901:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7901:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7880:28:19"},{"expression":{"arguments":[{"id":4672,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4666,"src":"7963:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4670,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"7926:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTotalValueLocked","nodeType":"MemberAccess","referencedDeclaration":6352,"src":"7926:36:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7926:48:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4664,"id":4674,"nodeType":"Return","src":"7919:55:19"}]},"functionSelector":"b26025aa","id":4676,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalValueLocked","nameLocation":"7809:19:19","nodeType":"FunctionDefinition","overrides":{"id":4661,"nodeType":"OverrideSpecifier","overrides":[],"src":"7838:8:19"},"parameters":{"id":4660,"nodeType":"ParameterList","parameters":[],"src":"7828:2:19"},"returnParameters":{"id":4664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4676,"src":"7860:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4662,"name":"uint256","nodeType":"ElementaryTypeName","src":"7860:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7859:9:19"},"scope":4773,"src":"7800:182:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3296],"body":{"id":4692,"nodeType":"Block","src":"8051:105:19","statements":[{"assignments":[4683],"declarations":[{"constant":false,"id":4683,"mutability":"mutable","name":"riskpoolId","nameLocation":"8070:10:19","nodeType":"VariableDeclaration","scope":4692,"src":"8062:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4682,"name":"uint256","nodeType":"ElementaryTypeName","src":"8062:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4686,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4684,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"8083:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8083:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8062:28:19"},{"expression":{"arguments":[{"id":4689,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4683,"src":"8137:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4687,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"8108:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getCapacity","nodeType":"MemberAccess","referencedDeclaration":6359,"src":"8108:28:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8108:40:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4681,"id":4691,"nodeType":"Return","src":"8101:47:19"}]},"functionSelector":"c40000d4","id":4693,"implemented":true,"kind":"function","modifiers":[],"name":"getCapacity","nameLocation":"7999:11:19","nodeType":"FunctionDefinition","overrides":{"id":4678,"nodeType":"OverrideSpecifier","overrides":[],"src":"8020:8:19"},"parameters":{"id":4677,"nodeType":"ParameterList","parameters":[],"src":"8010:2:19"},"returnParameters":{"id":4681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4693,"src":"8042:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4679,"name":"uint256","nodeType":"ElementaryTypeName","src":"8042:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8041:9:19"},"scope":4773,"src":"7990:166:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3301],"body":{"id":4709,"nodeType":"Block","src":"8224:104:19","statements":[{"assignments":[4700],"declarations":[{"constant":false,"id":4700,"mutability":"mutable","name":"riskpoolId","nameLocation":"8243:10:19","nodeType":"VariableDeclaration","scope":4709,"src":"8235:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4699,"name":"uint256","nodeType":"ElementaryTypeName","src":"8235:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4703,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4701,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"8256:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8256:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8235:28:19"},{"expression":{"arguments":[{"id":4706,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4700,"src":"8309:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4704,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"8281:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBalance","nodeType":"MemberAccess","referencedDeclaration":6366,"src":"8281:27:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8281:39:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4698,"id":4708,"nodeType":"Return","src":"8274:46:19"}]},"functionSelector":"12065fe0","id":4710,"implemented":true,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"8173:10:19","nodeType":"FunctionDefinition","overrides":{"id":4695,"nodeType":"OverrideSpecifier","overrides":[],"src":"8193:8:19"},"parameters":{"id":4694,"nodeType":"ParameterList","parameters":[],"src":"8183:2:19"},"returnParameters":{"id":4698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4710,"src":"8215:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4696,"name":"uint256","nodeType":"ElementaryTypeName","src":"8215:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8214:9:19"},"scope":4773,"src":"8164:164:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3236],"functionSelector":"86c71288","id":4722,"implemented":false,"kind":"function","modifiers":[],"name":"bundleMatchesApplication","nameLocation":"8345:24:19","nodeType":"FunctionDefinition","overrides":{"id":4718,"nodeType":"OverrideSpecifier","overrides":[],"src":"8473:8:19"},"parameters":{"id":4717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4713,"mutability":"mutable","name":"bundle","nameLocation":"8402:6:19","nodeType":"VariableDeclaration","scope":4722,"src":"8380:28:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":4712,"nodeType":"UserDefinedTypeName","pathNode":{"id":4711,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"8380:14:19"},"referencedDeclaration":4936,"src":"8380:14:19","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"},{"constant":false,"id":4716,"mutability":"mutable","name":"application","nameLocation":"8447:11:19","nodeType":"VariableDeclaration","scope":4722,"src":"8420:38:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":4715,"nodeType":"UserDefinedTypeName","pathNode":{"id":4714,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"8420:19:19"},"referencedDeclaration":5262,"src":"8420:19:19","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"8369:96:19"},"returnParameters":{"id":4721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4720,"mutability":"mutable","name":"isMatching","nameLocation":"8508:10:19","nodeType":"VariableDeclaration","scope":4722,"src":"8503:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4719,"name":"bool","nodeType":"ElementaryTypeName","src":"8503:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8502:17:19"},"scope":4773,"src":"8336:184:19","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2831],"body":{"id":4741,"nodeType":"Block","src":"8576:204:19","statements":[{"assignments":[4727],"declarations":[{"constant":false,"id":4727,"mutability":"mutable","name":"riskpoolId","nameLocation":"8596:10:19","nodeType":"VariableDeclaration","scope":4741,"src":"8588:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4726,"name":"uint256","nodeType":"ElementaryTypeName","src":"8588:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4730,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4728,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"8609:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8609:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8588:28:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4734,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"8681:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4732,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"8649:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unburntBundles","nodeType":"MemberAccess","referencedDeclaration":6415,"src":"8649:31:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8649:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8696:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8649:48:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255524e545f42554e444c4553","id":4738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8713:44:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a","typeString":"literal_string \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\""},"value":"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a","typeString":"literal_string \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\""}],"id":4731,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8627:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8627:145:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4740,"nodeType":"ExpressionStatement","src":"8627:145:19"}]},"id":4742,"implemented":true,"kind":"function","modifiers":[],"name":"_afterArchive","nameLocation":"8537:13:19","nodeType":"FunctionDefinition","overrides":{"id":4724,"nodeType":"OverrideSpecifier","overrides":[],"src":"8567:8:19"},"parameters":{"id":4723,"nodeType":"ParameterList","parameters":[],"src":"8550:2:19"},"returnParameters":{"id":4725,"nodeType":"ParameterList","parameters":[],"src":"8576:0:19"},"scope":4773,"src":"8528:252:19","stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4751,"implemented":false,"kind":"function","modifiers":[],"name":"_lockCollateral","nameLocation":"8797:15:19","nodeType":"FunctionDefinition","parameters":{"id":4747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4744,"mutability":"mutable","name":"processId","nameLocation":"8821:9:19","nodeType":"VariableDeclaration","scope":4751,"src":"8813:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8813:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4746,"mutability":"mutable","name":"collateralAmount","nameLocation":"8840:16:19","nodeType":"VariableDeclaration","scope":4751,"src":"8832:24:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4745,"name":"uint256","nodeType":"ElementaryTypeName","src":"8832:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8812:45:19"},"returnParameters":{"id":4750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4749,"mutability":"mutable","name":"success","nameLocation":"8888:7:19","nodeType":"VariableDeclaration","scope":4751,"src":"8883:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4748,"name":"bool","nodeType":"ElementaryTypeName","src":"8883:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8882:14:19"},"scope":4773,"src":"8788:109:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4758,"implemented":false,"kind":"function","modifiers":[],"name":"_processPremium","nameLocation":"8912:15:19","nodeType":"FunctionDefinition","parameters":{"id":4756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4753,"mutability":"mutable","name":"processId","nameLocation":"8936:9:19","nodeType":"VariableDeclaration","scope":4758,"src":"8928:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8928:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4755,"mutability":"mutable","name":"amount","nameLocation":"8955:6:19","nodeType":"VariableDeclaration","scope":4758,"src":"8947:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4754,"name":"uint256","nodeType":"ElementaryTypeName","src":"8947:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8927:35:19"},"returnParameters":{"id":4757,"nodeType":"ParameterList","parameters":[],"src":"8979:0:19"},"scope":4773,"src":"8903:77:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4765,"implemented":false,"kind":"function","modifiers":[],"name":"_processPayout","nameLocation":"8995:14:19","nodeType":"FunctionDefinition","parameters":{"id":4763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4760,"mutability":"mutable","name":"processId","nameLocation":"9018:9:19","nodeType":"VariableDeclaration","scope":4765,"src":"9010:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9010:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4762,"mutability":"mutable","name":"amount","nameLocation":"9037:6:19","nodeType":"VariableDeclaration","scope":4765,"src":"9029:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4761,"name":"uint256","nodeType":"ElementaryTypeName","src":"9029:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9009:35:19"},"returnParameters":{"id":4764,"nodeType":"ParameterList","parameters":[],"src":"9061:0:19"},"scope":4773,"src":"8986:76:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4772,"implemented":false,"kind":"function","modifiers":[],"name":"_releaseCollateral","nameLocation":"9077:18:19","nodeType":"FunctionDefinition","parameters":{"id":4768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4767,"mutability":"mutable","name":"processId","nameLocation":"9104:9:19","nodeType":"VariableDeclaration","scope":4772,"src":"9096:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9096:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9095:19:19"},"returnParameters":{"id":4771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4770,"mutability":"mutable","name":"collateralAmount","nameLocation":"9148:16:19","nodeType":"VariableDeclaration","scope":4772,"src":"9140:24:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4769,"name":"uint256","nodeType":"ElementaryTypeName","src":"9140:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9139:26:19"},"scope":4773,"src":"9068:98:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":4774,"src":"342:8829:19"}],"src":"40:9131:19"},"id":19},"@etherisc/gif-interface/contracts/modules/IAccess.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IAccess.sol","exportedSymbols":{"IAccess":[4836]},"id":4837,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":4775,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:20"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4836,"linearizedBaseContracts":[4836],"name":"IAccess","nameLocation":"73:7:20","nodeType":"ContractDefinition","nodes":[{"functionSelector":"52a9c8d7","id":4780,"implemented":false,"kind":"function","modifiers":[],"name":"getDefaultAdminRole","nameLocation":"96:19:20","nodeType":"FunctionDefinition","parameters":{"id":4776,"nodeType":"ParameterList","parameters":[],"src":"115:2:20"},"returnParameters":{"id":4779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4778,"mutability":"mutable","name":"role","nameLocation":"148:4:20","nodeType":"VariableDeclaration","scope":4780,"src":"140:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"140:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"139:14:20"},"scope":4836,"src":"87:67:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"775a4048","id":4785,"implemented":false,"kind":"function","modifiers":[],"name":"getProductOwnerRole","nameLocation":"168:19:20","nodeType":"FunctionDefinition","parameters":{"id":4781,"nodeType":"ParameterList","parameters":[],"src":"187:2:20"},"returnParameters":{"id":4784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4783,"mutability":"mutable","name":"role","nameLocation":"220:4:20","nodeType":"VariableDeclaration","scope":4785,"src":"212:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"212:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"211:14:20"},"scope":4836,"src":"159:67:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d49d21c0","id":4790,"implemented":false,"kind":"function","modifiers":[],"name":"getOracleProviderRole","nameLocation":"240:21:20","nodeType":"FunctionDefinition","parameters":{"id":4786,"nodeType":"ParameterList","parameters":[],"src":"261:2:20"},"returnParameters":{"id":4789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4788,"mutability":"mutable","name":"role","nameLocation":"294:4:20","nodeType":"VariableDeclaration","scope":4790,"src":"286:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"286:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"285:14:20"},"scope":4836,"src":"231:69:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3ffdd2f3","id":4795,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolKeeperRole","nameLocation":"314:21:20","nodeType":"FunctionDefinition","parameters":{"id":4791,"nodeType":"ParameterList","parameters":[],"src":"335:2:20"},"returnParameters":{"id":4794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4793,"mutability":"mutable","name":"role","nameLocation":"368:4:20","nodeType":"VariableDeclaration","scope":4795,"src":"360:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4792,"name":"bytes32","nodeType":"ElementaryTypeName","src":"360:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"359:14:20"},"scope":4836,"src":"305:69:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"91d14854","id":4804,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"388:7:20","nodeType":"FunctionDefinition","parameters":{"id":4800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4797,"mutability":"mutable","name":"role","nameLocation":"404:4:20","nodeType":"VariableDeclaration","scope":4804,"src":"396:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4796,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4799,"mutability":"mutable","name":"principal","nameLocation":"418:9:20","nodeType":"VariableDeclaration","scope":4804,"src":"410:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4798,"name":"address","nodeType":"ElementaryTypeName","src":"410:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"395:33:20"},"returnParameters":{"id":4803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4802,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4804,"src":"451:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4801,"name":"bool","nodeType":"ElementaryTypeName","src":"451:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"450:6:20"},"scope":4836,"src":"379:78:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2f2ff15d","id":4811,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"472:9:20","nodeType":"FunctionDefinition","parameters":{"id":4809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4806,"mutability":"mutable","name":"role","nameLocation":"490:4:20","nodeType":"VariableDeclaration","scope":4811,"src":"482:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"482:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4808,"mutability":"mutable","name":"principal","nameLocation":"504:9:20","nodeType":"VariableDeclaration","scope":4811,"src":"496:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4807,"name":"address","nodeType":"ElementaryTypeName","src":"496:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"481:33:20"},"returnParameters":{"id":4810,"nodeType":"ParameterList","parameters":[],"src":"523:0:20"},"scope":4836,"src":"463:61:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d547741f","id":4818,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"538:10:20","nodeType":"FunctionDefinition","parameters":{"id":4816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4813,"mutability":"mutable","name":"role","nameLocation":"557:4:20","nodeType":"VariableDeclaration","scope":4818,"src":"549:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"549:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4815,"mutability":"mutable","name":"principal","nameLocation":"571:9:20","nodeType":"VariableDeclaration","scope":4818,"src":"563:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4814,"name":"address","nodeType":"ElementaryTypeName","src":"563:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"548:33:20"},"returnParameters":{"id":4817,"nodeType":"ParameterList","parameters":[],"src":"590:0:20"},"scope":4836,"src":"529:62:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"36568abe","id":4825,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"605:12:20","nodeType":"FunctionDefinition","parameters":{"id":4823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4820,"mutability":"mutable","name":"role","nameLocation":"626:4:20","nodeType":"VariableDeclaration","scope":4825,"src":"618:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"618:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4822,"mutability":"mutable","name":"principal","nameLocation":"640:9:20","nodeType":"VariableDeclaration","scope":4825,"src":"632:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4821,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"617:33:20"},"returnParameters":{"id":4824,"nodeType":"ParameterList","parameters":[],"src":"659:0:20"},"scope":4836,"src":"596:64:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"274b02a7","id":4830,"implemented":false,"kind":"function","modifiers":[],"name":"addRole","nameLocation":"679:7:20","nodeType":"FunctionDefinition","parameters":{"id":4828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4827,"mutability":"mutable","name":"role","nameLocation":"695:4:20","nodeType":"VariableDeclaration","scope":4830,"src":"687:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"687:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"686:14:20"},"returnParameters":{"id":4829,"nodeType":"ParameterList","parameters":[],"src":"709:0:20"},"scope":4836,"src":"670:40:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d17d0233","id":4835,"implemented":false,"kind":"function","modifiers":[],"name":"invalidateRole","nameLocation":"724:14:20","nodeType":"FunctionDefinition","parameters":{"id":4833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4832,"mutability":"mutable","name":"role","nameLocation":"747:4:20","nodeType":"VariableDeclaration","scope":4835,"src":"739:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"739:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"738:14:20"},"returnParameters":{"id":4834,"nodeType":"ParameterList","parameters":[],"src":"761:0:20"},"scope":4836,"src":"715:47:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4837,"src":"63:701:20"}],"src":"39:726:20"},"id":20},"@etherisc/gif-interface/contracts/modules/IBundle.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","exportedSymbols":{"IBundle":[5020]},"id":5021,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":4838,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:21"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5020,"linearizedBaseContracts":[5020],"name":"IBundle","nameLocation":"73:7:21","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":4851,"name":"LogBundleCreated","nameLocation":"94:16:21","nodeType":"EventDefinition","parameters":{"id":4850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4840,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"128:8:21","nodeType":"VariableDeclaration","scope":4851,"src":"120:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4839,"name":"uint256","nodeType":"ElementaryTypeName","src":"120:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4842,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"155:10:21","nodeType":"VariableDeclaration","scope":4851,"src":"147:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4841,"name":"uint256","nodeType":"ElementaryTypeName","src":"147:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4844,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"184:5:21","nodeType":"VariableDeclaration","scope":4851,"src":"176:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4843,"name":"address","nodeType":"ElementaryTypeName","src":"176:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4847,"indexed":false,"mutability":"mutable","name":"state","nameLocation":"211:5:21","nodeType":"VariableDeclaration","scope":4851,"src":"199:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":4846,"nodeType":"UserDefinedTypeName","pathNode":{"id":4845,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"199:11:21"},"referencedDeclaration":4914,"src":"199:11:21","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"},{"constant":false,"id":4849,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"234:6:21","nodeType":"VariableDeclaration","scope":4851,"src":"226:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4848,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"110:136:21"},"src":"88:159:21"},{"anonymous":false,"id":4861,"name":"LogBundleStateChanged","nameLocation":"259:21:21","nodeType":"EventDefinition","parameters":{"id":4860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4853,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"289:8:21","nodeType":"VariableDeclaration","scope":4861,"src":"281:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4852,"name":"uint256","nodeType":"ElementaryTypeName","src":"281:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4856,"indexed":false,"mutability":"mutable","name":"oldState","nameLocation":"311:8:21","nodeType":"VariableDeclaration","scope":4861,"src":"299:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":4855,"nodeType":"UserDefinedTypeName","pathNode":{"id":4854,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"299:11:21"},"referencedDeclaration":4914,"src":"299:11:21","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"},{"constant":false,"id":4859,"indexed":false,"mutability":"mutable","name":"newState","nameLocation":"333:8:21","nodeType":"VariableDeclaration","scope":4861,"src":"321:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":4858,"nodeType":"UserDefinedTypeName","pathNode":{"id":4857,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"321:11:21"},"referencedDeclaration":4914,"src":"321:11:21","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"src":"280:62:21"},"src":"253:90:21"},{"anonymous":false,"id":4871,"name":"LogBundleCapitalProvided","nameLocation":"355:24:21","nodeType":"EventDefinition","parameters":{"id":4870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4863,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"388:8:21","nodeType":"VariableDeclaration","scope":4871,"src":"380:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4862,"name":"uint256","nodeType":"ElementaryTypeName","src":"380:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4865,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"406:6:21","nodeType":"VariableDeclaration","scope":4871,"src":"398:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4864,"name":"address","nodeType":"ElementaryTypeName","src":"398:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4867,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"422:6:21","nodeType":"VariableDeclaration","scope":4871,"src":"414:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4866,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4869,"indexed":false,"mutability":"mutable","name":"capacity","nameLocation":"438:8:21","nodeType":"VariableDeclaration","scope":4871,"src":"430:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4868,"name":"uint256","nodeType":"ElementaryTypeName","src":"430:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"379:68:21"},"src":"349:99:21"},{"anonymous":false,"id":4881,"name":"LogBundleCapitalWithdrawn","nameLocation":"459:25:21","nodeType":"EventDefinition","parameters":{"id":4880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4873,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"493:8:21","nodeType":"VariableDeclaration","scope":4881,"src":"485:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4872,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4875,"indexed":false,"mutability":"mutable","name":"recipient","nameLocation":"511:9:21","nodeType":"VariableDeclaration","scope":4881,"src":"503:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4874,"name":"address","nodeType":"ElementaryTypeName","src":"503:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4877,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"530:6:21","nodeType":"VariableDeclaration","scope":4881,"src":"522:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4876,"name":"uint256","nodeType":"ElementaryTypeName","src":"522:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4879,"indexed":false,"mutability":"mutable","name":"capacity","nameLocation":"546:8:21","nodeType":"VariableDeclaration","scope":4881,"src":"538:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4878,"name":"uint256","nodeType":"ElementaryTypeName","src":"538:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"484:71:21"},"src":"453:103:21"},{"anonymous":false,"id":4891,"name":"LogBundlePolicyCollateralized","nameLocation":"568:29:21","nodeType":"EventDefinition","parameters":{"id":4890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4883,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"606:8:21","nodeType":"VariableDeclaration","scope":4891,"src":"598:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4882,"name":"uint256","nodeType":"ElementaryTypeName","src":"598:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4885,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"624:9:21","nodeType":"VariableDeclaration","scope":4891,"src":"616:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"616:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4887,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"643:6:21","nodeType":"VariableDeclaration","scope":4891,"src":"635:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4886,"name":"uint256","nodeType":"ElementaryTypeName","src":"635:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4889,"indexed":false,"mutability":"mutable","name":"capacity","nameLocation":"659:8:21","nodeType":"VariableDeclaration","scope":4891,"src":"651:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4888,"name":"uint256","nodeType":"ElementaryTypeName","src":"651:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"597:71:21"},"src":"562:107:21"},{"anonymous":false,"id":4899,"name":"LogBundlePayoutProcessed","nameLocation":"680:24:21","nodeType":"EventDefinition","parameters":{"id":4898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4893,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"713:8:21","nodeType":"VariableDeclaration","scope":4899,"src":"705:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4892,"name":"uint256","nodeType":"ElementaryTypeName","src":"705:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4895,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"731:9:21","nodeType":"VariableDeclaration","scope":4899,"src":"723:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"723:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4897,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"750:6:21","nodeType":"VariableDeclaration","scope":4899,"src":"742:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4896,"name":"uint256","nodeType":"ElementaryTypeName","src":"742:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"704:53:21"},"src":"674:84:21"},{"anonymous":false,"id":4909,"name":"LogBundlePolicyReleased","nameLocation":"769:23:21","nodeType":"EventDefinition","parameters":{"id":4908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4901,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"801:8:21","nodeType":"VariableDeclaration","scope":4909,"src":"793:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4900,"name":"uint256","nodeType":"ElementaryTypeName","src":"793:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4903,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"819:9:21","nodeType":"VariableDeclaration","scope":4909,"src":"811:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"811:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4905,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"838:6:21","nodeType":"VariableDeclaration","scope":4909,"src":"830:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4904,"name":"uint256","nodeType":"ElementaryTypeName","src":"830:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4907,"indexed":false,"mutability":"mutable","name":"capacity","nameLocation":"854:8:21","nodeType":"VariableDeclaration","scope":4909,"src":"846:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4906,"name":"uint256","nodeType":"ElementaryTypeName","src":"846:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"792:71:21"},"src":"763:101:21"},{"canonicalName":"IBundle.BundleState","id":4914,"members":[{"id":4910,"name":"Active","nameLocation":"897:6:21","nodeType":"EnumValue","src":"897:6:21"},{"id":4911,"name":"Locked","nameLocation":"913:6:21","nodeType":"EnumValue","src":"913:6:21"},{"id":4912,"name":"Closed","nameLocation":"929:6:21","nodeType":"EnumValue","src":"929:6:21"},{"id":4913,"name":"Burned","nameLocation":"945:6:21","nodeType":"EnumValue","src":"945:6:21"}],"name":"BundleState","nameLocation":"875:11:21","nodeType":"EnumDefinition","src":"870:87:21"},{"canonicalName":"IBundle.Bundle","id":4936,"members":[{"constant":false,"id":4916,"mutability":"mutable","name":"id","nameLocation":"995:2:21","nodeType":"VariableDeclaration","scope":4936,"src":"987:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4915,"name":"uint256","nodeType":"ElementaryTypeName","src":"987:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4918,"mutability":"mutable","name":"riskpoolId","nameLocation":"1015:10:21","nodeType":"VariableDeclaration","scope":4936,"src":"1007:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4917,"name":"uint256","nodeType":"ElementaryTypeName","src":"1007:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4920,"mutability":"mutable","name":"tokenId","nameLocation":"1043:7:21","nodeType":"VariableDeclaration","scope":4936,"src":"1035:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4919,"name":"uint256","nodeType":"ElementaryTypeName","src":"1035:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4923,"mutability":"mutable","name":"state","nameLocation":"1072:5:21","nodeType":"VariableDeclaration","scope":4936,"src":"1060:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":4922,"nodeType":"UserDefinedTypeName","pathNode":{"id":4921,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"1060:11:21"},"referencedDeclaration":4914,"src":"1060:11:21","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"},{"constant":false,"id":4925,"mutability":"mutable","name":"filter","nameLocation":"1093:6:21","nodeType":"VariableDeclaration","scope":4936,"src":"1087:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":4924,"name":"bytes","nodeType":"ElementaryTypeName","src":"1087:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4927,"mutability":"mutable","name":"capital","nameLocation":"1211:7:21","nodeType":"VariableDeclaration","scope":4936,"src":"1203:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4926,"name":"uint256","nodeType":"ElementaryTypeName","src":"1203:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4929,"mutability":"mutable","name":"lockedCapital","nameLocation":"1282:13:21","nodeType":"VariableDeclaration","scope":4936,"src":"1274:21:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4928,"name":"uint256","nodeType":"ElementaryTypeName","src":"1274:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4931,"mutability":"mutable","name":"balance","nameLocation":"1394:7:21","nodeType":"VariableDeclaration","scope":4936,"src":"1386:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4930,"name":"uint256","nodeType":"ElementaryTypeName","src":"1386:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4933,"mutability":"mutable","name":"createdAt","nameLocation":"1493:9:21","nodeType":"VariableDeclaration","scope":4936,"src":"1485:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4932,"name":"uint256","nodeType":"ElementaryTypeName","src":"1485:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4935,"mutability":"mutable","name":"updatedAt","nameLocation":"1520:9:21","nodeType":"VariableDeclaration","scope":4936,"src":"1512:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4934,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Bundle","nameLocation":"970:6:21","nodeType":"StructDefinition","scope":5020,"src":"963:573:21","visibility":"public"},{"functionSelector":"c0e71404","id":4949,"implemented":false,"kind":"function","modifiers":[],"name":"create","nameLocation":"1551:6:21","nodeType":"FunctionDefinition","parameters":{"id":4945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4938,"mutability":"mutable","name":"owner_","nameLocation":"1566:6:21","nodeType":"VariableDeclaration","scope":4949,"src":"1558:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4937,"name":"address","nodeType":"ElementaryTypeName","src":"1558:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4940,"mutability":"mutable","name":"riskpoolId_","nameLocation":"1582:11:21","nodeType":"VariableDeclaration","scope":4949,"src":"1574:19:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4939,"name":"uint256","nodeType":"ElementaryTypeName","src":"1574:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4942,"mutability":"mutable","name":"filter_","nameLocation":"1610:7:21","nodeType":"VariableDeclaration","scope":4949,"src":"1595:22:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4941,"name":"bytes","nodeType":"ElementaryTypeName","src":"1595:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4944,"mutability":"mutable","name":"amount_","nameLocation":"1627:7:21","nodeType":"VariableDeclaration","scope":4949,"src":"1619:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4943,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1557:78:21"},"returnParameters":{"id":4948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4947,"mutability":"mutable","name":"bundleId","nameLocation":"1661:8:21","nodeType":"VariableDeclaration","scope":4949,"src":"1653:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4946,"name":"uint256","nodeType":"ElementaryTypeName","src":"1653:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1652:18:21"},"scope":5020,"src":"1542:129:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a65e2cfd","id":4956,"implemented":false,"kind":"function","modifiers":[],"name":"fund","nameLocation":"1685:4:21","nodeType":"FunctionDefinition","parameters":{"id":4954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4951,"mutability":"mutable","name":"bundleId","nameLocation":"1698:8:21","nodeType":"VariableDeclaration","scope":4956,"src":"1690:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4950,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4953,"mutability":"mutable","name":"amount","nameLocation":"1716:6:21","nodeType":"VariableDeclaration","scope":4956,"src":"1708:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4952,"name":"uint256","nodeType":"ElementaryTypeName","src":"1708:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1689:34:21"},"returnParameters":{"id":4955,"nodeType":"ParameterList","parameters":[],"src":"1732:0:21"},"scope":5020,"src":"1676:57:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c397ae39","id":4963,"implemented":false,"kind":"function","modifiers":[],"name":"defund","nameLocation":"1747:6:21","nodeType":"FunctionDefinition","parameters":{"id":4961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4958,"mutability":"mutable","name":"bundleId","nameLocation":"1762:8:21","nodeType":"VariableDeclaration","scope":4963,"src":"1754:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4957,"name":"uint256","nodeType":"ElementaryTypeName","src":"1754:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4960,"mutability":"mutable","name":"amount","nameLocation":"1780:6:21","nodeType":"VariableDeclaration","scope":4963,"src":"1772:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4959,"name":"uint256","nodeType":"ElementaryTypeName","src":"1772:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1753:34:21"},"returnParameters":{"id":4962,"nodeType":"ParameterList","parameters":[],"src":"1796:0:21"},"scope":5020,"src":"1738:59:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"dd467064","id":4968,"implemented":false,"kind":"function","modifiers":[],"name":"lock","nameLocation":"1812:4:21","nodeType":"FunctionDefinition","parameters":{"id":4966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4965,"mutability":"mutable","name":"bundleId","nameLocation":"1825:8:21","nodeType":"VariableDeclaration","scope":4968,"src":"1817:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4964,"name":"uint256","nodeType":"ElementaryTypeName","src":"1817:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1816:18:21"},"returnParameters":{"id":4967,"nodeType":"ParameterList","parameters":[],"src":"1843:0:21"},"scope":5020,"src":"1803:41:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6198e339","id":4973,"implemented":false,"kind":"function","modifiers":[],"name":"unlock","nameLocation":"1858:6:21","nodeType":"FunctionDefinition","parameters":{"id":4971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4970,"mutability":"mutable","name":"bundleId","nameLocation":"1873:8:21","nodeType":"VariableDeclaration","scope":4973,"src":"1865:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4969,"name":"uint256","nodeType":"ElementaryTypeName","src":"1865:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1864:18:21"},"returnParameters":{"id":4972,"nodeType":"ParameterList","parameters":[],"src":"1891:0:21"},"scope":5020,"src":"1849:43:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0aebeb4e","id":4978,"implemented":false,"kind":"function","modifiers":[],"name":"close","nameLocation":"1906:5:21","nodeType":"FunctionDefinition","parameters":{"id":4976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4975,"mutability":"mutable","name":"bundleId","nameLocation":"1920:8:21","nodeType":"VariableDeclaration","scope":4978,"src":"1912:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4974,"name":"uint256","nodeType":"ElementaryTypeName","src":"1912:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1911:18:21"},"returnParameters":{"id":4977,"nodeType":"ParameterList","parameters":[],"src":"1938:0:21"},"scope":5020,"src":"1897:42:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"42966c68","id":4983,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1953:4:21","nodeType":"FunctionDefinition","parameters":{"id":4981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4980,"mutability":"mutable","name":"bundleId","nameLocation":"1966:8:21","nodeType":"VariableDeclaration","scope":4983,"src":"1958:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4979,"name":"uint256","nodeType":"ElementaryTypeName","src":"1958:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1957:18:21"},"returnParameters":{"id":4982,"nodeType":"ParameterList","parameters":[],"src":"1984:0:21"},"scope":5020,"src":"1944:41:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4d03f9b7","id":4992,"implemented":false,"kind":"function","modifiers":[],"name":"collateralizePolicy","nameLocation":"2000:19:21","nodeType":"FunctionDefinition","parameters":{"id":4990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4985,"mutability":"mutable","name":"bundleId","nameLocation":"2028:8:21","nodeType":"VariableDeclaration","scope":4992,"src":"2020:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4984,"name":"uint256","nodeType":"ElementaryTypeName","src":"2020:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4987,"mutability":"mutable","name":"processId","nameLocation":"2046:9:21","nodeType":"VariableDeclaration","scope":4992,"src":"2038:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2038:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4989,"mutability":"mutable","name":"collateralAmount","nameLocation":"2065:16:21","nodeType":"VariableDeclaration","scope":4992,"src":"2057:24:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4988,"name":"uint256","nodeType":"ElementaryTypeName","src":"2057:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2019:63:21"},"returnParameters":{"id":4991,"nodeType":"ParameterList","parameters":[],"src":"2091:0:21"},"scope":5020,"src":"1991:101:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b7267420","id":5001,"implemented":false,"kind":"function","modifiers":[],"name":"processPremium","nameLocation":"2106:14:21","nodeType":"FunctionDefinition","parameters":{"id":4999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4994,"mutability":"mutable","name":"bundleId","nameLocation":"2129:8:21","nodeType":"VariableDeclaration","scope":5001,"src":"2121:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4993,"name":"uint256","nodeType":"ElementaryTypeName","src":"2121:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4996,"mutability":"mutable","name":"processId","nameLocation":"2147:9:21","nodeType":"VariableDeclaration","scope":5001,"src":"2139:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2139:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4998,"mutability":"mutable","name":"amount","nameLocation":"2166:6:21","nodeType":"VariableDeclaration","scope":5001,"src":"2158:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4997,"name":"uint256","nodeType":"ElementaryTypeName","src":"2158:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2120:53:21"},"returnParameters":{"id":5000,"nodeType":"ParameterList","parameters":[],"src":"2182:0:21"},"scope":5020,"src":"2097:86:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b299cc26","id":5010,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"2197:13:21","nodeType":"FunctionDefinition","parameters":{"id":5008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5003,"mutability":"mutable","name":"bundleId","nameLocation":"2219:8:21","nodeType":"VariableDeclaration","scope":5010,"src":"2211:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5002,"name":"uint256","nodeType":"ElementaryTypeName","src":"2211:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5005,"mutability":"mutable","name":"processId","nameLocation":"2237:9:21","nodeType":"VariableDeclaration","scope":5010,"src":"2229:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2229:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5007,"mutability":"mutable","name":"amount","nameLocation":"2256:6:21","nodeType":"VariableDeclaration","scope":5010,"src":"2248:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5006,"name":"uint256","nodeType":"ElementaryTypeName","src":"2248:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2210:53:21"},"returnParameters":{"id":5009,"nodeType":"ParameterList","parameters":[],"src":"2272:0:21"},"scope":5020,"src":"2188:85:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"bb540df6","id":5019,"implemented":false,"kind":"function","modifiers":[],"name":"releasePolicy","nameLocation":"2287:13:21","nodeType":"FunctionDefinition","parameters":{"id":5015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5012,"mutability":"mutable","name":"bundleId","nameLocation":"2309:8:21","nodeType":"VariableDeclaration","scope":5019,"src":"2301:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5011,"name":"uint256","nodeType":"ElementaryTypeName","src":"2301:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5014,"mutability":"mutable","name":"processId","nameLocation":"2327:9:21","nodeType":"VariableDeclaration","scope":5019,"src":"2319:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2319:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2300:37:21"},"returnParameters":{"id":5018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5017,"mutability":"mutable","name":"collateralAmount","nameLocation":"2363:16:21","nodeType":"VariableDeclaration","scope":5019,"src":"2355:24:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5016,"name":"uint256","nodeType":"ElementaryTypeName","src":"2355:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2354:26:21"},"scope":5020,"src":"2278:103:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5021,"src":"63:2320:21"}],"src":"39:2345:21"},"id":21},"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol","exportedSymbols":{"IComponent":[2988],"IComponentEvents":[5073],"IRegistry":[5714]},"id":5074,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5022,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:22"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"../components/IComponent.sol","id":5023,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5074,"sourceUnit":2989,"src":"63:38:22","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":true,"id":5073,"linearizedBaseContracts":[5073],"name":"IComponentEvents","nameLocation":"113:16:22","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":5034,"name":"LogComponentProposed","nameLocation":"143:20:22","nodeType":"EventDefinition","parameters":{"id":5033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5025,"indexed":false,"mutability":"mutable","name":"componentName","nameLocation":"182:13:22","nodeType":"VariableDeclaration","scope":5034,"src":"174:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5024,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5028,"indexed":false,"mutability":"mutable","name":"componentType","nameLocation":"230:13:22","nodeType":"VariableDeclaration","scope":5034,"src":"205:38:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":5027,"nodeType":"UserDefinedTypeName","pathNode":{"id":5026,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"205:24:22"},"referencedDeclaration":2891,"src":"205:24:22","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"},{"constant":false,"id":5030,"indexed":false,"mutability":"mutable","name":"componentAddress","nameLocation":"261:16:22","nodeType":"VariableDeclaration","scope":5034,"src":"253:24:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5029,"name":"address","nodeType":"ElementaryTypeName","src":"253:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5032,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"295:2:22","nodeType":"VariableDeclaration","scope":5034,"src":"287:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5031,"name":"uint256","nodeType":"ElementaryTypeName","src":"287:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"164:134:22"},"src":"137:162:22"},{"anonymous":false,"id":5038,"name":"LogComponentApproved","nameLocation":"315:20:22","nodeType":"EventDefinition","parameters":{"id":5037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5036,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"345:2:22","nodeType":"VariableDeclaration","scope":5038,"src":"337:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5035,"name":"uint256","nodeType":"ElementaryTypeName","src":"337:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"336:12:22"},"src":"309:40:22"},{"anonymous":false,"id":5042,"name":"LogComponentDeclined","nameLocation":"360:20:22","nodeType":"EventDefinition","parameters":{"id":5041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5040,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"390:2:22","nodeType":"VariableDeclaration","scope":5042,"src":"382:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5039,"name":"uint256","nodeType":"ElementaryTypeName","src":"382:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"381:12:22"},"src":"354:40:22"},{"anonymous":false,"id":5046,"name":"LogComponentSuspended","nameLocation":"406:21:22","nodeType":"EventDefinition","parameters":{"id":5045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5044,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"437:2:22","nodeType":"VariableDeclaration","scope":5046,"src":"429:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5043,"name":"uint256","nodeType":"ElementaryTypeName","src":"429:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"428:12:22"},"src":"400:41:22"},{"anonymous":false,"id":5050,"name":"LogComponentResumed","nameLocation":"452:19:22","nodeType":"EventDefinition","parameters":{"id":5049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5048,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"481:2:22","nodeType":"VariableDeclaration","scope":5050,"src":"473:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5047,"name":"uint256","nodeType":"ElementaryTypeName","src":"473:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"472:12:22"},"src":"446:39:22"},{"anonymous":false,"id":5054,"name":"LogComponentPaused","nameLocation":"497:18:22","nodeType":"EventDefinition","parameters":{"id":5053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5052,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"525:2:22","nodeType":"VariableDeclaration","scope":5054,"src":"517:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5051,"name":"uint256","nodeType":"ElementaryTypeName","src":"517:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"516:12:22"},"src":"491:38:22"},{"anonymous":false,"id":5058,"name":"LogComponentUnpaused","nameLocation":"540:20:22","nodeType":"EventDefinition","parameters":{"id":5057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5056,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"570:2:22","nodeType":"VariableDeclaration","scope":5058,"src":"562:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5055,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"561:12:22"},"src":"534:40:22"},{"anonymous":false,"id":5062,"name":"LogComponentArchived","nameLocation":"586:20:22","nodeType":"EventDefinition","parameters":{"id":5061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5060,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"616:2:22","nodeType":"VariableDeclaration","scope":5062,"src":"608:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5059,"name":"uint256","nodeType":"ElementaryTypeName","src":"608:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"607:12:22"},"src":"580:40:22"},{"anonymous":false,"id":5072,"name":"LogComponentStateChanged","nameLocation":"632:24:22","nodeType":"EventDefinition","parameters":{"id":5071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5064,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"675:2:22","nodeType":"VariableDeclaration","scope":5072,"src":"667:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5063,"name":"uint256","nodeType":"ElementaryTypeName","src":"667:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5067,"indexed":false,"mutability":"mutable","name":"stateOld","nameLocation":"714:8:22","nodeType":"VariableDeclaration","scope":5072,"src":"688:34:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":5066,"nodeType":"UserDefinedTypeName","pathNode":{"id":5065,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"688:25:22"},"referencedDeclaration":2899,"src":"688:25:22","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"},{"constant":false,"id":5070,"indexed":false,"mutability":"mutable","name":"stateNew","nameLocation":"759:8:22","nodeType":"VariableDeclaration","scope":5072,"src":"733:34:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":5069,"nodeType":"UserDefinedTypeName","pathNode":{"id":5068,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"733:25:22"},"referencedDeclaration":2899,"src":"733:25:22","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"657:111:22"},"src":"626:143:22"}],"scope":5074,"src":"103:668:22"}],"src":"39:733:22"},"id":22},"@etherisc/gif-interface/contracts/modules/ILicense.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/ILicense.sol","exportedSymbols":{"ILicense":[5087]},"id":5088,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5075,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:23"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5087,"linearizedBaseContracts":[5087],"name":"ILicense","nameLocation":"73:8:23","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d3e9c314","id":5086,"implemented":false,"kind":"function","modifiers":[],"name":"getAuthorizationStatus","nameLocation":"98:22:23","nodeType":"FunctionDefinition","parameters":{"id":5078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5077,"mutability":"mutable","name":"_sender","nameLocation":"129:7:23","nodeType":"VariableDeclaration","scope":5086,"src":"121:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5076,"name":"address","nodeType":"ElementaryTypeName","src":"121:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"120:17:23"},"returnParameters":{"id":5085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5080,"mutability":"mutable","name":"productId","nameLocation":"193:9:23","nodeType":"VariableDeclaration","scope":5086,"src":"185:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5079,"name":"uint256","nodeType":"ElementaryTypeName","src":"185:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5082,"mutability":"mutable","name":"isAuthorized","nameLocation":"209:12:23","nodeType":"VariableDeclaration","scope":5086,"src":"204:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5081,"name":"bool","nodeType":"ElementaryTypeName","src":"204:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5084,"mutability":"mutable","name":"policyFlow","nameLocation":"231:10:23","nodeType":"VariableDeclaration","scope":5086,"src":"223:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5083,"name":"address","nodeType":"ElementaryTypeName","src":"223:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"184:58:23"},"scope":5087,"src":"89:154:23","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5088,"src":"63:182:23"}],"src":"39:207:23"},"id":23},"@etherisc/gif-interface/contracts/modules/IPolicy.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","exportedSymbols":{"IPolicy":[5433]},"id":5434,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5089,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:24"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5433,"linearizedBaseContracts":[5433],"name":"IPolicy","nameLocation":"73:7:24","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":5100,"name":"LogMetadataCreated","nameLocation":"108:18:24","nodeType":"EventDefinition","parameters":{"id":5099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5091,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"144:5:24","nodeType":"VariableDeclaration","scope":5100,"src":"136:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5090,"name":"address","nodeType":"ElementaryTypeName","src":"136:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5093,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"167:9:24","nodeType":"VariableDeclaration","scope":5100,"src":"159:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5092,"name":"bytes32","nodeType":"ElementaryTypeName","src":"159:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5095,"indexed":false,"mutability":"mutable","name":"productId","nameLocation":"194:9:24","nodeType":"VariableDeclaration","scope":5100,"src":"186:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5094,"name":"uint256","nodeType":"ElementaryTypeName","src":"186:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5098,"indexed":false,"mutability":"mutable","name":"state","nameLocation":"230:5:24","nodeType":"VariableDeclaration","scope":5100,"src":"214:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"},"typeName":{"id":5097,"nodeType":"UserDefinedTypeName","pathNode":{"id":5096,"name":"PolicyFlowState","nodeType":"IdentifierPath","referencedDeclaration":5217,"src":"214:15:24"},"referencedDeclaration":5217,"src":"214:15:24","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"visibility":"internal"}],"src":"126:115:24"},"src":"102:140:24"},{"anonymous":false,"id":5107,"name":"LogMetadataStateChanged","nameLocation":"254:23:24","nodeType":"EventDefinition","parameters":{"id":5106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5102,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"295:9:24","nodeType":"VariableDeclaration","scope":5107,"src":"287:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5101,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5105,"indexed":false,"mutability":"mutable","name":"state","nameLocation":"331:5:24","nodeType":"VariableDeclaration","scope":5107,"src":"315:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"},"typeName":{"id":5104,"nodeType":"UserDefinedTypeName","pathNode":{"id":5103,"name":"PolicyFlowState","nodeType":"IdentifierPath","referencedDeclaration":5217,"src":"315:15:24"},"referencedDeclaration":5217,"src":"315:15:24","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"visibility":"internal"}],"src":"277:65:24"},"src":"248:95:24"},{"anonymous":false,"id":5115,"name":"LogApplicationCreated","nameLocation":"355:21:24","nodeType":"EventDefinition","parameters":{"id":5114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5109,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"394:9:24","nodeType":"VariableDeclaration","scope":5115,"src":"386:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5111,"indexed":false,"mutability":"mutable","name":"premiumAmount","nameLocation":"422:13:24","nodeType":"VariableDeclaration","scope":5115,"src":"414:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5110,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5113,"indexed":false,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"454:16:24","nodeType":"VariableDeclaration","scope":5115,"src":"446:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5112,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"376:100:24"},"src":"349:128:24"},{"anonymous":false,"id":5119,"name":"LogApplicationRevoked","nameLocation":"489:21:24","nodeType":"EventDefinition","parameters":{"id":5118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5117,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"519:9:24","nodeType":"VariableDeclaration","scope":5119,"src":"511:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"511:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"510:19:24"},"src":"483:47:24"},{"anonymous":false,"id":5123,"name":"LogApplicationUnderwritten","nameLocation":"541:26:24","nodeType":"EventDefinition","parameters":{"id":5122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5121,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"576:9:24","nodeType":"VariableDeclaration","scope":5123,"src":"568:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"568:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"567:19:24"},"src":"535:52:24"},{"anonymous":false,"id":5127,"name":"LogApplicationDeclined","nameLocation":"598:22:24","nodeType":"EventDefinition","parameters":{"id":5126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5125,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"629:9:24","nodeType":"VariableDeclaration","scope":5127,"src":"621:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"621:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"620:19:24"},"src":"592:48:24"},{"anonymous":false,"id":5131,"name":"LogPolicyCreated","nameLocation":"652:16:24","nodeType":"EventDefinition","parameters":{"id":5130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5129,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"677:9:24","nodeType":"VariableDeclaration","scope":5131,"src":"669:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"669:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"668:19:24"},"src":"646:42:24"},{"anonymous":false,"id":5135,"name":"LogPolicyExpired","nameLocation":"699:16:24","nodeType":"EventDefinition","parameters":{"id":5134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5133,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"724:9:24","nodeType":"VariableDeclaration","scope":5135,"src":"716:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"716:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"715:19:24"},"src":"693:42:24"},{"anonymous":false,"id":5139,"name":"LogPolicyClosed","nameLocation":"746:15:24","nodeType":"EventDefinition","parameters":{"id":5138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5137,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"770:9:24","nodeType":"VariableDeclaration","scope":5139,"src":"762:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"762:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"761:19:24"},"src":"740:41:24"},{"anonymous":false,"id":5145,"name":"LogPremiumCollected","nameLocation":"793:19:24","nodeType":"EventDefinition","parameters":{"id":5144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5141,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"821:9:24","nodeType":"VariableDeclaration","scope":5145,"src":"813:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"813:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5143,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"840:6:24","nodeType":"VariableDeclaration","scope":5145,"src":"832:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5142,"name":"uint256","nodeType":"ElementaryTypeName","src":"832:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"812:35:24"},"src":"787:61:24"},{"anonymous":false,"id":5153,"name":"LogApplicationSumInsuredAdjusted","nameLocation":"864:32:24","nodeType":"EventDefinition","parameters":{"id":5152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5147,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"905:9:24","nodeType":"VariableDeclaration","scope":5153,"src":"897:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"897:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5149,"indexed":false,"mutability":"mutable","name":"sumInsuredAmountOld","nameLocation":"924:19:24","nodeType":"VariableDeclaration","scope":5153,"src":"916:27:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5148,"name":"uint256","nodeType":"ElementaryTypeName","src":"916:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5151,"indexed":false,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"953:16:24","nodeType":"VariableDeclaration","scope":5153,"src":"945:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5150,"name":"uint256","nodeType":"ElementaryTypeName","src":"945:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"896:74:24"},"src":"858:113:24"},{"anonymous":false,"id":5161,"name":"LogApplicationPremiumAdjusted","nameLocation":"982:29:24","nodeType":"EventDefinition","parameters":{"id":5160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5155,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1020:9:24","nodeType":"VariableDeclaration","scope":5161,"src":"1012:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5154,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1012:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5157,"indexed":false,"mutability":"mutable","name":"premiumAmountOld","nameLocation":"1039:16:24","nodeType":"VariableDeclaration","scope":5161,"src":"1031:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5156,"name":"uint256","nodeType":"ElementaryTypeName","src":"1031:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5159,"indexed":false,"mutability":"mutable","name":"premiumAmount","nameLocation":"1065:13:24","nodeType":"VariableDeclaration","scope":5161,"src":"1057:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5158,"name":"uint256","nodeType":"ElementaryTypeName","src":"1057:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1011:68:24"},"src":"976:104:24"},{"anonymous":false,"id":5169,"name":"LogPolicyPremiumAdjusted","nameLocation":"1091:24:24","nodeType":"EventDefinition","parameters":{"id":5168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5163,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1124:9:24","nodeType":"VariableDeclaration","scope":5169,"src":"1116:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1116:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5165,"indexed":false,"mutability":"mutable","name":"premiumExpectedAmountOld","nameLocation":"1143:24:24","nodeType":"VariableDeclaration","scope":5169,"src":"1135:32:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5164,"name":"uint256","nodeType":"ElementaryTypeName","src":"1135:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5167,"indexed":false,"mutability":"mutable","name":"premiumExpectedAmount","nameLocation":"1177:21:24","nodeType":"VariableDeclaration","scope":5169,"src":"1169:29:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5166,"name":"uint256","nodeType":"ElementaryTypeName","src":"1169:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1115:84:24"},"src":"1085:115:24"},{"anonymous":false,"id":5177,"name":"LogClaimCreated","nameLocation":"1212:15:24","nodeType":"EventDefinition","parameters":{"id":5176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5171,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1236:9:24","nodeType":"VariableDeclaration","scope":5177,"src":"1228:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1228:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5173,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"1255:7:24","nodeType":"VariableDeclaration","scope":5177,"src":"1247:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1247:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5175,"indexed":false,"mutability":"mutable","name":"claimAmount","nameLocation":"1272:11:24","nodeType":"VariableDeclaration","scope":5177,"src":"1264:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5174,"name":"uint256","nodeType":"ElementaryTypeName","src":"1264:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1227:57:24"},"src":"1206:79:24"},{"anonymous":false,"id":5185,"name":"LogClaimConfirmed","nameLocation":"1296:17:24","nodeType":"EventDefinition","parameters":{"id":5184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5179,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1322:9:24","nodeType":"VariableDeclaration","scope":5185,"src":"1314:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5178,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1314:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5181,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"1341:7:24","nodeType":"VariableDeclaration","scope":5185,"src":"1333:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5180,"name":"uint256","nodeType":"ElementaryTypeName","src":"1333:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5183,"indexed":false,"mutability":"mutable","name":"confirmedAmount","nameLocation":"1358:15:24","nodeType":"VariableDeclaration","scope":5185,"src":"1350:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5182,"name":"uint256","nodeType":"ElementaryTypeName","src":"1350:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1313:61:24"},"src":"1290:85:24"},{"anonymous":false,"id":5191,"name":"LogClaimDeclined","nameLocation":"1386:16:24","nodeType":"EventDefinition","parameters":{"id":5190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5187,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1411:9:24","nodeType":"VariableDeclaration","scope":5191,"src":"1403:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1403:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5189,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"1430:7:24","nodeType":"VariableDeclaration","scope":5191,"src":"1422:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1422:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1402:36:24"},"src":"1380:59:24"},{"anonymous":false,"id":5197,"name":"LogClaimClosed","nameLocation":"1450:14:24","nodeType":"EventDefinition","parameters":{"id":5196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5193,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1473:9:24","nodeType":"VariableDeclaration","scope":5197,"src":"1465:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5192,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1465:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5195,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"1492:7:24","nodeType":"VariableDeclaration","scope":5197,"src":"1484:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5194,"name":"uint256","nodeType":"ElementaryTypeName","src":"1484:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1464:36:24"},"src":"1444:57:24"},{"anonymous":false,"id":5207,"name":"LogPayoutCreated","nameLocation":"1513:16:24","nodeType":"EventDefinition","parameters":{"id":5206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5199,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1547:9:24","nodeType":"VariableDeclaration","scope":5207,"src":"1539:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1539:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5201,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"1574:7:24","nodeType":"VariableDeclaration","scope":5207,"src":"1566:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5200,"name":"uint256","nodeType":"ElementaryTypeName","src":"1566:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5203,"indexed":false,"mutability":"mutable","name":"payoutId","nameLocation":"1599:8:24","nodeType":"VariableDeclaration","scope":5207,"src":"1591:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5202,"name":"uint256","nodeType":"ElementaryTypeName","src":"1591:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5205,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1625:6:24","nodeType":"VariableDeclaration","scope":5207,"src":"1617:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5204,"name":"uint256","nodeType":"ElementaryTypeName","src":"1617:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1529:108:24"},"src":"1507:131:24"},{"anonymous":false,"id":5213,"name":"LogPayoutProcessed","nameLocation":"1650:18:24","nodeType":"EventDefinition","parameters":{"id":5212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5209,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1686:9:24","nodeType":"VariableDeclaration","scope":5213,"src":"1678:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1678:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5211,"indexed":false,"mutability":"mutable","name":"payoutId","nameLocation":"1714:8:24","nodeType":"VariableDeclaration","scope":5213,"src":"1706:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5210,"name":"uint256","nodeType":"ElementaryTypeName","src":"1706:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1668:60:24"},"src":"1644:85:24"},{"canonicalName":"IPolicy.PolicyFlowState","id":5217,"members":[{"id":5214,"name":"Started","nameLocation":"1771:7:24","nodeType":"EnumValue","src":"1771:7:24"},{"id":5215,"name":"Active","nameLocation":"1780:6:24","nodeType":"EnumValue","src":"1780:6:24"},{"id":5216,"name":"Finished","nameLocation":"1788:8:24","nodeType":"EnumValue","src":"1788:8:24"}],"name":"PolicyFlowState","nameLocation":"1754:15:24","nodeType":"EnumDefinition","src":"1749:48:24"},{"canonicalName":"IPolicy.ApplicationState","id":5222,"members":[{"id":5218,"name":"Applied","nameLocation":"1825:7:24","nodeType":"EnumValue","src":"1825:7:24"},{"id":5219,"name":"Revoked","nameLocation":"1834:7:24","nodeType":"EnumValue","src":"1834:7:24"},{"id":5220,"name":"Underwritten","nameLocation":"1843:12:24","nodeType":"EnumValue","src":"1843:12:24"},{"id":5221,"name":"Declined","nameLocation":"1857:8:24","nodeType":"EnumValue","src":"1857:8:24"}],"name":"ApplicationState","nameLocation":"1807:16:24","nodeType":"EnumDefinition","src":"1802:64:24"},{"canonicalName":"IPolicy.PolicyState","id":5226,"members":[{"id":5223,"name":"Active","nameLocation":"1889:6:24","nodeType":"EnumValue","src":"1889:6:24"},{"id":5224,"name":"Expired","nameLocation":"1897:7:24","nodeType":"EnumValue","src":"1897:7:24"},{"id":5225,"name":"Closed","nameLocation":"1906:6:24","nodeType":"EnumValue","src":"1906:6:24"}],"name":"PolicyState","nameLocation":"1876:11:24","nodeType":"EnumDefinition","src":"1871:42:24"},{"canonicalName":"IPolicy.ClaimState","id":5231,"members":[{"id":5227,"name":"Applied","nameLocation":"1935:7:24","nodeType":"EnumValue","src":"1935:7:24"},{"id":5228,"name":"Confirmed","nameLocation":"1944:9:24","nodeType":"EnumValue","src":"1944:9:24"},{"id":5229,"name":"Declined","nameLocation":"1955:8:24","nodeType":"EnumValue","src":"1955:8:24"},{"id":5230,"name":"Closed","nameLocation":"1965:6:24","nodeType":"EnumValue","src":"1965:6:24"}],"name":"ClaimState","nameLocation":"1923:10:24","nodeType":"EnumDefinition","src":"1918:54:24"},{"canonicalName":"IPolicy.PayoutState","id":5234,"members":[{"id":5232,"name":"Expected","nameLocation":"1995:8:24","nodeType":"EnumValue","src":"1995:8:24"},{"id":5233,"name":"PaidOut","nameLocation":"2005:7:24","nodeType":"EnumValue","src":"2005:7:24"}],"name":"PayoutState","nameLocation":"1982:11:24","nodeType":"EnumDefinition","src":"1977:36:24"},{"canonicalName":"IPolicy.Metadata","id":5248,"members":[{"constant":false,"id":5236,"mutability":"mutable","name":"owner","nameLocation":"2068:5:24","nodeType":"VariableDeclaration","scope":5248,"src":"2060:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5235,"name":"address","nodeType":"ElementaryTypeName","src":"2060:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5238,"mutability":"mutable","name":"productId","nameLocation":"2091:9:24","nodeType":"VariableDeclaration","scope":5248,"src":"2083:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5237,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5241,"mutability":"mutable","name":"state","nameLocation":"2126:5:24","nodeType":"VariableDeclaration","scope":5248,"src":"2110:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"},"typeName":{"id":5240,"nodeType":"UserDefinedTypeName","pathNode":{"id":5239,"name":"PolicyFlowState","nodeType":"IdentifierPath","referencedDeclaration":5217,"src":"2110:15:24"},"referencedDeclaration":5217,"src":"2110:15:24","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"visibility":"internal"},{"constant":false,"id":5243,"mutability":"mutable","name":"data","nameLocation":"2147:4:24","nodeType":"VariableDeclaration","scope":5248,"src":"2141:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5242,"name":"bytes","nodeType":"ElementaryTypeName","src":"2141:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5245,"mutability":"mutable","name":"createdAt","nameLocation":"2169:9:24","nodeType":"VariableDeclaration","scope":5248,"src":"2161:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5244,"name":"uint256","nodeType":"ElementaryTypeName","src":"2161:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5247,"mutability":"mutable","name":"updatedAt","nameLocation":"2196:9:24","nodeType":"VariableDeclaration","scope":5248,"src":"2188:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5246,"name":"uint256","nodeType":"ElementaryTypeName","src":"2188:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Metadata","nameLocation":"2041:8:24","nodeType":"StructDefinition","scope":5433,"src":"2034:178:24","visibility":"public"},{"canonicalName":"IPolicy.Application","id":5262,"members":[{"constant":false,"id":5251,"mutability":"mutable","name":"state","nameLocation":"2264:5:24","nodeType":"VariableDeclaration","scope":5262,"src":"2247:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"typeName":{"id":5250,"nodeType":"UserDefinedTypeName","pathNode":{"id":5249,"name":"ApplicationState","nodeType":"IdentifierPath","referencedDeclaration":5222,"src":"2247:16:24"},"referencedDeclaration":5222,"src":"2247:16:24","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"visibility":"internal"},{"constant":false,"id":5253,"mutability":"mutable","name":"premiumAmount","nameLocation":"2287:13:24","nodeType":"VariableDeclaration","scope":5262,"src":"2279:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5252,"name":"uint256","nodeType":"ElementaryTypeName","src":"2279:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5255,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"2318:16:24","nodeType":"VariableDeclaration","scope":5262,"src":"2310:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5254,"name":"uint256","nodeType":"ElementaryTypeName","src":"2310:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5257,"mutability":"mutable","name":"data","nameLocation":"2350:4:24","nodeType":"VariableDeclaration","scope":5262,"src":"2344:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5256,"name":"bytes","nodeType":"ElementaryTypeName","src":"2344:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5259,"mutability":"mutable","name":"createdAt","nameLocation":"2373:9:24","nodeType":"VariableDeclaration","scope":5262,"src":"2365:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5258,"name":"uint256","nodeType":"ElementaryTypeName","src":"2365:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5261,"mutability":"mutable","name":"updatedAt","nameLocation":"2400:9:24","nodeType":"VariableDeclaration","scope":5262,"src":"2392:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5260,"name":"uint256","nodeType":"ElementaryTypeName","src":"2392:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Application","nameLocation":"2225:11:24","nodeType":"StructDefinition","scope":5433,"src":"2218:198:24","visibility":"public"},{"canonicalName":"IPolicy.Policy","id":5282,"members":[{"constant":false,"id":5265,"mutability":"mutable","name":"state","nameLocation":"2458:5:24","nodeType":"VariableDeclaration","scope":5282,"src":"2446:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"typeName":{"id":5264,"nodeType":"UserDefinedTypeName","pathNode":{"id":5263,"name":"PolicyState","nodeType":"IdentifierPath","referencedDeclaration":5226,"src":"2446:11:24"},"referencedDeclaration":5226,"src":"2446:11:24","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"visibility":"internal"},{"constant":false,"id":5267,"mutability":"mutable","name":"premiumExpectedAmount","nameLocation":"2481:21:24","nodeType":"VariableDeclaration","scope":5282,"src":"2473:29:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5266,"name":"uint256","nodeType":"ElementaryTypeName","src":"2473:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5269,"mutability":"mutable","name":"premiumPaidAmount","nameLocation":"2520:17:24","nodeType":"VariableDeclaration","scope":5282,"src":"2512:25:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5268,"name":"uint256","nodeType":"ElementaryTypeName","src":"2512:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5271,"mutability":"mutable","name":"claimsCount","nameLocation":"2555:11:24","nodeType":"VariableDeclaration","scope":5282,"src":"2547:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5270,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5273,"mutability":"mutable","name":"openClaimsCount","nameLocation":"2584:15:24","nodeType":"VariableDeclaration","scope":5282,"src":"2576:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5272,"name":"uint256","nodeType":"ElementaryTypeName","src":"2576:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5275,"mutability":"mutable","name":"payoutMaxAmount","nameLocation":"2617:15:24","nodeType":"VariableDeclaration","scope":5282,"src":"2609:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5274,"name":"uint256","nodeType":"ElementaryTypeName","src":"2609:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5277,"mutability":"mutable","name":"payoutAmount","nameLocation":"2650:12:24","nodeType":"VariableDeclaration","scope":5282,"src":"2642:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5276,"name":"uint256","nodeType":"ElementaryTypeName","src":"2642:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5279,"mutability":"mutable","name":"createdAt","nameLocation":"2680:9:24","nodeType":"VariableDeclaration","scope":5282,"src":"2672:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5278,"name":"uint256","nodeType":"ElementaryTypeName","src":"2672:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5281,"mutability":"mutable","name":"updatedAt","nameLocation":"2707:9:24","nodeType":"VariableDeclaration","scope":5282,"src":"2699:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5280,"name":"uint256","nodeType":"ElementaryTypeName","src":"2699:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Policy","nameLocation":"2429:6:24","nodeType":"StructDefinition","scope":5433,"src":"2422:301:24","visibility":"public"},{"canonicalName":"IPolicy.Claim","id":5296,"members":[{"constant":false,"id":5285,"mutability":"mutable","name":"state","nameLocation":"2763:5:24","nodeType":"VariableDeclaration","scope":5296,"src":"2752:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"typeName":{"id":5284,"nodeType":"UserDefinedTypeName","pathNode":{"id":5283,"name":"ClaimState","nodeType":"IdentifierPath","referencedDeclaration":5231,"src":"2752:10:24"},"referencedDeclaration":5231,"src":"2752:10:24","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"visibility":"internal"},{"constant":false,"id":5287,"mutability":"mutable","name":"claimAmount","nameLocation":"2786:11:24","nodeType":"VariableDeclaration","scope":5296,"src":"2778:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5286,"name":"uint256","nodeType":"ElementaryTypeName","src":"2778:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5289,"mutability":"mutable","name":"paidAmount","nameLocation":"2815:10:24","nodeType":"VariableDeclaration","scope":5296,"src":"2807:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5288,"name":"uint256","nodeType":"ElementaryTypeName","src":"2807:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5291,"mutability":"mutable","name":"data","nameLocation":"2841:4:24","nodeType":"VariableDeclaration","scope":5296,"src":"2835:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5290,"name":"bytes","nodeType":"ElementaryTypeName","src":"2835:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5293,"mutability":"mutable","name":"createdAt","nameLocation":"2863:9:24","nodeType":"VariableDeclaration","scope":5296,"src":"2855:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5292,"name":"uint256","nodeType":"ElementaryTypeName","src":"2855:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5295,"mutability":"mutable","name":"updatedAt","nameLocation":"2890:9:24","nodeType":"VariableDeclaration","scope":5296,"src":"2882:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5294,"name":"uint256","nodeType":"ElementaryTypeName","src":"2882:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Claim","nameLocation":"2736:5:24","nodeType":"StructDefinition","scope":5433,"src":"2729:177:24","visibility":"public"},{"canonicalName":"IPolicy.Payout","id":5310,"members":[{"constant":false,"id":5298,"mutability":"mutable","name":"claimId","nameLocation":"2944:7:24","nodeType":"VariableDeclaration","scope":5310,"src":"2936:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5297,"name":"uint256","nodeType":"ElementaryTypeName","src":"2936:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5301,"mutability":"mutable","name":"state","nameLocation":"2973:5:24","nodeType":"VariableDeclaration","scope":5310,"src":"2961:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"},"typeName":{"id":5300,"nodeType":"UserDefinedTypeName","pathNode":{"id":5299,"name":"PayoutState","nodeType":"IdentifierPath","referencedDeclaration":5234,"src":"2961:11:24"},"referencedDeclaration":5234,"src":"2961:11:24","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"visibility":"internal"},{"constant":false,"id":5303,"mutability":"mutable","name":"amount","nameLocation":"2996:6:24","nodeType":"VariableDeclaration","scope":5310,"src":"2988:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5302,"name":"uint256","nodeType":"ElementaryTypeName","src":"2988:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5305,"mutability":"mutable","name":"data","nameLocation":"3018:4:24","nodeType":"VariableDeclaration","scope":5310,"src":"3012:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5304,"name":"bytes","nodeType":"ElementaryTypeName","src":"3012:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5307,"mutability":"mutable","name":"createdAt","nameLocation":"3040:9:24","nodeType":"VariableDeclaration","scope":5310,"src":"3032:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5306,"name":"uint256","nodeType":"ElementaryTypeName","src":"3032:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5309,"mutability":"mutable","name":"updatedAt","nameLocation":"3067:9:24","nodeType":"VariableDeclaration","scope":5310,"src":"3059:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5308,"name":"uint256","nodeType":"ElementaryTypeName","src":"3059:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Payout","nameLocation":"2919:6:24","nodeType":"StructDefinition","scope":5433,"src":"2912:171:24","visibility":"public"},{"functionSelector":"a1814a1a","id":5321,"implemented":false,"kind":"function","modifiers":[],"name":"createPolicyFlow","nameLocation":"3098:16:24","nodeType":"FunctionDefinition","parameters":{"id":5317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5312,"mutability":"mutable","name":"owner","nameLocation":"3132:5:24","nodeType":"VariableDeclaration","scope":5321,"src":"3124:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5311,"name":"address","nodeType":"ElementaryTypeName","src":"3124:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5314,"mutability":"mutable","name":"productId","nameLocation":"3155:9:24","nodeType":"VariableDeclaration","scope":5321,"src":"3147:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5313,"name":"uint256","nodeType":"ElementaryTypeName","src":"3147:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5316,"mutability":"mutable","name":"data","nameLocation":"3190:4:24","nodeType":"VariableDeclaration","scope":5321,"src":"3175:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5315,"name":"bytes","nodeType":"ElementaryTypeName","src":"3175:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3114:86:24"},"returnParameters":{"id":5320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5319,"mutability":"mutable","name":"processId","nameLocation":"3226:9:24","nodeType":"VariableDeclaration","scope":5321,"src":"3218:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3218:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3217:19:24"},"scope":5433,"src":"3089:148:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6780336e","id":5332,"implemented":false,"kind":"function","modifiers":[],"name":"createApplication","nameLocation":"3252:17:24","nodeType":"FunctionDefinition","parameters":{"id":5330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5323,"mutability":"mutable","name":"processId","nameLocation":"3287:9:24","nodeType":"VariableDeclaration","scope":5332,"src":"3279:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3279:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5325,"mutability":"mutable","name":"premiumAmount","nameLocation":"3315:13:24","nodeType":"VariableDeclaration","scope":5332,"src":"3307:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5324,"name":"uint256","nodeType":"ElementaryTypeName","src":"3307:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5327,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"3346:16:24","nodeType":"VariableDeclaration","scope":5332,"src":"3338:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5326,"name":"uint256","nodeType":"ElementaryTypeName","src":"3338:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5329,"mutability":"mutable","name":"data","nameLocation":"3387:4:24","nodeType":"VariableDeclaration","scope":5332,"src":"3372:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5328,"name":"bytes","nodeType":"ElementaryTypeName","src":"3372:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3269:128:24"},"returnParameters":{"id":5331,"nodeType":"ParameterList","parameters":[],"src":"3406:0:24"},"scope":5433,"src":"3243:164:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"eb96cbed","id":5337,"implemented":false,"kind":"function","modifiers":[],"name":"revokeApplication","nameLocation":"3422:17:24","nodeType":"FunctionDefinition","parameters":{"id":5335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5334,"mutability":"mutable","name":"processId","nameLocation":"3448:9:24","nodeType":"VariableDeclaration","scope":5337,"src":"3440:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3440:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3439:19:24"},"returnParameters":{"id":5336,"nodeType":"ParameterList","parameters":[],"src":"3467:0:24"},"scope":5433,"src":"3413:55:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5c955288","id":5342,"implemented":false,"kind":"function","modifiers":[],"name":"underwriteApplication","nameLocation":"3482:21:24","nodeType":"FunctionDefinition","parameters":{"id":5340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5339,"mutability":"mutable","name":"processId","nameLocation":"3512:9:24","nodeType":"VariableDeclaration","scope":5342,"src":"3504:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3504:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3503:19:24"},"returnParameters":{"id":5341,"nodeType":"ParameterList","parameters":[],"src":"3531:0:24"},"scope":5433,"src":"3473:59:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"296d6c7d","id":5347,"implemented":false,"kind":"function","modifiers":[],"name":"declineApplication","nameLocation":"3546:18:24","nodeType":"FunctionDefinition","parameters":{"id":5345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5344,"mutability":"mutable","name":"processId","nameLocation":"3573:9:24","nodeType":"VariableDeclaration","scope":5347,"src":"3565:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3565:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3564:19:24"},"returnParameters":{"id":5346,"nodeType":"ParameterList","parameters":[],"src":"3592:0:24"},"scope":5433,"src":"3537:56:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e3ebdea5","id":5354,"implemented":false,"kind":"function","modifiers":[],"name":"collectPremium","nameLocation":"3608:14:24","nodeType":"FunctionDefinition","parameters":{"id":5352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5349,"mutability":"mutable","name":"processId","nameLocation":"3631:9:24","nodeType":"VariableDeclaration","scope":5354,"src":"3623:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3623:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5351,"mutability":"mutable","name":"amount","nameLocation":"3650:6:24","nodeType":"VariableDeclaration","scope":5354,"src":"3642:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5350,"name":"uint256","nodeType":"ElementaryTypeName","src":"3642:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3622:35:24"},"returnParameters":{"id":5353,"nodeType":"ParameterList","parameters":[],"src":"3666:0:24"},"scope":5433,"src":"3599:68:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"30a73da5","id":5363,"implemented":false,"kind":"function","modifiers":[],"name":"adjustPremiumSumInsured","nameLocation":"3682:23:24","nodeType":"FunctionDefinition","parameters":{"id":5361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5356,"mutability":"mutable","name":"processId","nameLocation":"3723:9:24","nodeType":"VariableDeclaration","scope":5363,"src":"3715:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3715:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5358,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"3751:21:24","nodeType":"VariableDeclaration","scope":5363,"src":"3743:29:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5357,"name":"uint256","nodeType":"ElementaryTypeName","src":"3743:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5360,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"3790:16:24","nodeType":"VariableDeclaration","scope":5363,"src":"3782:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5359,"name":"uint256","nodeType":"ElementaryTypeName","src":"3782:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3705:107:24"},"returnParameters":{"id":5362,"nodeType":"ParameterList","parameters":[],"src":"3821:0:24"},"scope":5433,"src":"3673:149:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4c14ccc2","id":5368,"implemented":false,"kind":"function","modifiers":[],"name":"createPolicy","nameLocation":"3837:12:24","nodeType":"FunctionDefinition","parameters":{"id":5366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5365,"mutability":"mutable","name":"processId","nameLocation":"3858:9:24","nodeType":"VariableDeclaration","scope":5368,"src":"3850:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5364,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3850:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3849:19:24"},"returnParameters":{"id":5367,"nodeType":"ParameterList","parameters":[],"src":"3877:0:24"},"scope":5433,"src":"3828:50:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"47e3b138","id":5373,"implemented":false,"kind":"function","modifiers":[],"name":"expirePolicy","nameLocation":"3892:12:24","nodeType":"FunctionDefinition","parameters":{"id":5371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5370,"mutability":"mutable","name":"processId","nameLocation":"3913:9:24","nodeType":"VariableDeclaration","scope":5373,"src":"3905:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3905:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3904:19:24"},"returnParameters":{"id":5372,"nodeType":"ParameterList","parameters":[],"src":"3932:0:24"},"scope":5433,"src":"3883:50:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"adcadb28","id":5378,"implemented":false,"kind":"function","modifiers":[],"name":"closePolicy","nameLocation":"3947:11:24","nodeType":"FunctionDefinition","parameters":{"id":5376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5375,"mutability":"mutable","name":"processId","nameLocation":"3967:9:24","nodeType":"VariableDeclaration","scope":5378,"src":"3959:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3959:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3958:19:24"},"returnParameters":{"id":5377,"nodeType":"ParameterList","parameters":[],"src":"3986:0:24"},"scope":5433,"src":"3938:49:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ec935668","id":5389,"implemented":false,"kind":"function","modifiers":[],"name":"createClaim","nameLocation":"4002:11:24","nodeType":"FunctionDefinition","parameters":{"id":5385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5380,"mutability":"mutable","name":"processId","nameLocation":"4031:9:24","nodeType":"VariableDeclaration","scope":5389,"src":"4023:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4023:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5382,"mutability":"mutable","name":"claimAmount","nameLocation":"4059:11:24","nodeType":"VariableDeclaration","scope":5389,"src":"4051:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5381,"name":"uint256","nodeType":"ElementaryTypeName","src":"4051:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5384,"mutability":"mutable","name":"data","nameLocation":"4096:4:24","nodeType":"VariableDeclaration","scope":5389,"src":"4081:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5383,"name":"bytes","nodeType":"ElementaryTypeName","src":"4081:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4013:93:24"},"returnParameters":{"id":5388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5387,"mutability":"mutable","name":"claimId","nameLocation":"4133:7:24","nodeType":"VariableDeclaration","scope":5389,"src":"4125:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5386,"name":"uint256","nodeType":"ElementaryTypeName","src":"4125:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4124:17:24"},"scope":5433,"src":"3993:149:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4e02c63f","id":5398,"implemented":false,"kind":"function","modifiers":[],"name":"confirmClaim","nameLocation":"4157:12:24","nodeType":"FunctionDefinition","parameters":{"id":5396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5391,"mutability":"mutable","name":"processId","nameLocation":"4187:9:24","nodeType":"VariableDeclaration","scope":5398,"src":"4179:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5390,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4179:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5393,"mutability":"mutable","name":"claimId","nameLocation":"4215:7:24","nodeType":"VariableDeclaration","scope":5398,"src":"4207:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5392,"name":"uint256","nodeType":"ElementaryTypeName","src":"4207:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5395,"mutability":"mutable","name":"confirmedAmount","nameLocation":"4241:15:24","nodeType":"VariableDeclaration","scope":5398,"src":"4233:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5394,"name":"uint256","nodeType":"ElementaryTypeName","src":"4233:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4169:93:24"},"returnParameters":{"id":5397,"nodeType":"ParameterList","parameters":[],"src":"4271:0:24"},"scope":5433,"src":"4148:124:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4cda0de9","id":5405,"implemented":false,"kind":"function","modifiers":[],"name":"declineClaim","nameLocation":"4287:12:24","nodeType":"FunctionDefinition","parameters":{"id":5403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5400,"mutability":"mutable","name":"processId","nameLocation":"4308:9:24","nodeType":"VariableDeclaration","scope":5405,"src":"4300:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4300:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5402,"mutability":"mutable","name":"claimId","nameLocation":"4327:7:24","nodeType":"VariableDeclaration","scope":5405,"src":"4319:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5401,"name":"uint256","nodeType":"ElementaryTypeName","src":"4319:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4299:36:24"},"returnParameters":{"id":5404,"nodeType":"ParameterList","parameters":[],"src":"4344:0:24"},"scope":5433,"src":"4278:67:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7f29dba2","id":5412,"implemented":false,"kind":"function","modifiers":[],"name":"closeClaim","nameLocation":"4359:10:24","nodeType":"FunctionDefinition","parameters":{"id":5410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5407,"mutability":"mutable","name":"processId","nameLocation":"4378:9:24","nodeType":"VariableDeclaration","scope":5412,"src":"4370:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5406,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4370:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5409,"mutability":"mutable","name":"claimId","nameLocation":"4397:7:24","nodeType":"VariableDeclaration","scope":5412,"src":"4389:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5408,"name":"uint256","nodeType":"ElementaryTypeName","src":"4389:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4369:36:24"},"returnParameters":{"id":5411,"nodeType":"ParameterList","parameters":[],"src":"4414:0:24"},"scope":5433,"src":"4350:65:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"db42b77b","id":5425,"implemented":false,"kind":"function","modifiers":[],"name":"createPayout","nameLocation":"4430:12:24","nodeType":"FunctionDefinition","parameters":{"id":5421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5414,"mutability":"mutable","name":"processId","nameLocation":"4460:9:24","nodeType":"VariableDeclaration","scope":5425,"src":"4452:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4452:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5416,"mutability":"mutable","name":"claimId","nameLocation":"4487:7:24","nodeType":"VariableDeclaration","scope":5425,"src":"4479:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5415,"name":"uint256","nodeType":"ElementaryTypeName","src":"4479:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5418,"mutability":"mutable","name":"payoutAmount","nameLocation":"4512:12:24","nodeType":"VariableDeclaration","scope":5425,"src":"4504:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5417,"name":"uint256","nodeType":"ElementaryTypeName","src":"4504:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5420,"mutability":"mutable","name":"data","nameLocation":"4549:4:24","nodeType":"VariableDeclaration","scope":5425,"src":"4534:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5419,"name":"bytes","nodeType":"ElementaryTypeName","src":"4534:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4442:117:24"},"returnParameters":{"id":5424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5423,"mutability":"mutable","name":"payoutId","nameLocation":"4586:8:24","nodeType":"VariableDeclaration","scope":5425,"src":"4578:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5422,"name":"uint256","nodeType":"ElementaryTypeName","src":"4578:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4577:18:24"},"scope":5433,"src":"4421:175:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fe64372b","id":5432,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"4611:13:24","nodeType":"FunctionDefinition","parameters":{"id":5430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5427,"mutability":"mutable","name":"processId","nameLocation":"4642:9:24","nodeType":"VariableDeclaration","scope":5432,"src":"4634:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4634:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5429,"mutability":"mutable","name":"payoutId","nameLocation":"4669:8:24","nodeType":"VariableDeclaration","scope":5432,"src":"4661:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5428,"name":"uint256","nodeType":"ElementaryTypeName","src":"4661:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4624:59:24"},"returnParameters":{"id":5431,"nodeType":"ParameterList","parameters":[],"src":"4692:0:24"},"scope":5433,"src":"4602:91:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5434,"src":"63:4632:24"}],"src":"39:4657:24"},"id":24},"@etherisc/gif-interface/contracts/modules/IPool.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPool.sol","exportedSymbols":{"IPool":[5549]},"id":5550,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5435,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:25"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5549,"linearizedBaseContracts":[5549],"name":"IPool","nameLocation":"73:5:25","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":5447,"name":"LogRiskpoolRegistered","nameLocation":"92:21:25","nodeType":"EventDefinition","parameters":{"id":5446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5437,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"131:10:25","nodeType":"VariableDeclaration","scope":5447,"src":"123:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5436,"name":"uint256","nodeType":"ElementaryTypeName","src":"123:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5439,"indexed":false,"mutability":"mutable","name":"wallet","nameLocation":"160:6:25","nodeType":"VariableDeclaration","scope":5447,"src":"152:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5438,"name":"address","nodeType":"ElementaryTypeName","src":"152:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5441,"indexed":false,"mutability":"mutable","name":"erc20Token","nameLocation":"184:10:25","nodeType":"VariableDeclaration","scope":5447,"src":"176:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5440,"name":"address","nodeType":"ElementaryTypeName","src":"176:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5443,"indexed":false,"mutability":"mutable","name":"collateralizationLevel","nameLocation":"213:22:25","nodeType":"VariableDeclaration","scope":5447,"src":"205:30:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5442,"name":"uint256","nodeType":"ElementaryTypeName","src":"205:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5445,"indexed":false,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"254:18:25","nodeType":"VariableDeclaration","scope":5447,"src":"246:26:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5444,"name":"uint256","nodeType":"ElementaryTypeName","src":"246:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"113:165:25"},"src":"86:193:25"},{"anonymous":false,"id":5455,"name":"LogRiskpoolRequiredCollateral","nameLocation":"295:29:25","nodeType":"EventDefinition","parameters":{"id":5454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5449,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"333:9:25","nodeType":"VariableDeclaration","scope":5455,"src":"325:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"325:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5451,"indexed":false,"mutability":"mutable","name":"sumInsured","nameLocation":"352:10:25","nodeType":"VariableDeclaration","scope":5455,"src":"344:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5450,"name":"uint256","nodeType":"ElementaryTypeName","src":"344:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5453,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"372:10:25","nodeType":"VariableDeclaration","scope":5455,"src":"364:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5452,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"324:59:25"},"src":"289:95:25"},{"anonymous":false,"id":5463,"name":"LogRiskpoolCollateralizationFailed","nameLocation":"395:34:25","nodeType":"EventDefinition","parameters":{"id":5462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5457,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"438:10:25","nodeType":"VariableDeclaration","scope":5463,"src":"430:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5456,"name":"uint256","nodeType":"ElementaryTypeName","src":"430:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5459,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"458:9:25","nodeType":"VariableDeclaration","scope":5463,"src":"450:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"450:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5461,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"477:6:25","nodeType":"VariableDeclaration","scope":5463,"src":"469:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5460,"name":"uint256","nodeType":"ElementaryTypeName","src":"469:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"429:55:25"},"src":"389:96:25"},{"anonymous":false,"id":5471,"name":"LogRiskpoolCollateralizationSucceeded","nameLocation":"496:37:25","nodeType":"EventDefinition","parameters":{"id":5470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5465,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"542:10:25","nodeType":"VariableDeclaration","scope":5471,"src":"534:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5464,"name":"uint256","nodeType":"ElementaryTypeName","src":"534:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5467,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"562:9:25","nodeType":"VariableDeclaration","scope":5471,"src":"554:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5466,"name":"bytes32","nodeType":"ElementaryTypeName","src":"554:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5469,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"581:6:25","nodeType":"VariableDeclaration","scope":5471,"src":"573:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5468,"name":"uint256","nodeType":"ElementaryTypeName","src":"573:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"533:55:25"},"src":"490:99:25"},{"anonymous":false,"id":5479,"name":"LogRiskpoolCollateralReleased","nameLocation":"600:29:25","nodeType":"EventDefinition","parameters":{"id":5478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5473,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"638:10:25","nodeType":"VariableDeclaration","scope":5479,"src":"630:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5472,"name":"uint256","nodeType":"ElementaryTypeName","src":"630:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5475,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"658:9:25","nodeType":"VariableDeclaration","scope":5479,"src":"650:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5474,"name":"bytes32","nodeType":"ElementaryTypeName","src":"650:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5477,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"677:6:25","nodeType":"VariableDeclaration","scope":5479,"src":"669:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5476,"name":"uint256","nodeType":"ElementaryTypeName","src":"669:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"629:55:25"},"src":"594:91:25"},{"canonicalName":"IPool.Pool","id":5502,"members":[{"constant":false,"id":5481,"mutability":"mutable","name":"id","nameLocation":"721:2:25","nodeType":"VariableDeclaration","scope":5502,"src":"713:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5480,"name":"uint256","nodeType":"ElementaryTypeName","src":"713:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5483,"mutability":"mutable","name":"wallet","nameLocation":"777:6:25","nodeType":"VariableDeclaration","scope":5502,"src":"769:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5482,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5485,"mutability":"mutable","name":"erc20Token","nameLocation":"820:10:25","nodeType":"VariableDeclaration","scope":5502,"src":"812:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5484,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5487,"mutability":"mutable","name":"collateralizationLevel","nameLocation":"883:22:25","nodeType":"VariableDeclaration","scope":5502,"src":"875:30:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5486,"name":"uint256","nodeType":"ElementaryTypeName","src":"875:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5489,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"982:18:25","nodeType":"VariableDeclaration","scope":5502,"src":"974:26:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5488,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5491,"mutability":"mutable","name":"sumOfSumInsuredAtRisk","nameLocation":"1074:21:25","nodeType":"VariableDeclaration","scope":5502,"src":"1066:29:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5490,"name":"uint256","nodeType":"ElementaryTypeName","src":"1066:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5493,"mutability":"mutable","name":"capital","nameLocation":"1164:7:25","nodeType":"VariableDeclaration","scope":5502,"src":"1156:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5492,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5495,"mutability":"mutable","name":"lockedCapital","nameLocation":"1235:13:25","nodeType":"VariableDeclaration","scope":5502,"src":"1227:21:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1227:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5497,"mutability":"mutable","name":"balance","nameLocation":"1347:7:25","nodeType":"VariableDeclaration","scope":5502,"src":"1339:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5496,"name":"uint256","nodeType":"ElementaryTypeName","src":"1339:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5499,"mutability":"mutable","name":"createdAt","nameLocation":"1446:9:25","nodeType":"VariableDeclaration","scope":5502,"src":"1438:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5498,"name":"uint256","nodeType":"ElementaryTypeName","src":"1438:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5501,"mutability":"mutable","name":"updatedAt","nameLocation":"1473:9:25","nodeType":"VariableDeclaration","scope":5502,"src":"1465:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5500,"name":"uint256","nodeType":"ElementaryTypeName","src":"1465:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Pool","nameLocation":"698:4:25","nodeType":"StructDefinition","scope":5549,"src":"691:798:25","visibility":"public"},{"functionSelector":"57419e8f","id":5515,"implemented":false,"kind":"function","modifiers":[],"name":"registerRiskpool","nameLocation":"1504:16:25","nodeType":"FunctionDefinition","parameters":{"id":5513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5504,"mutability":"mutable","name":"riskpoolId","nameLocation":"1538:10:25","nodeType":"VariableDeclaration","scope":5515,"src":"1530:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1530:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5506,"mutability":"mutable","name":"wallet","nameLocation":"1567:6:25","nodeType":"VariableDeclaration","scope":5515,"src":"1559:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5505,"name":"address","nodeType":"ElementaryTypeName","src":"1559:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5508,"mutability":"mutable","name":"erc20Token","nameLocation":"1591:10:25","nodeType":"VariableDeclaration","scope":5515,"src":"1583:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5507,"name":"address","nodeType":"ElementaryTypeName","src":"1583:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5510,"mutability":"mutable","name":"collateralizationLevel","nameLocation":"1619:22:25","nodeType":"VariableDeclaration","scope":5515,"src":"1611:30:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5509,"name":"uint256","nodeType":"ElementaryTypeName","src":"1611:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5512,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"1660:18:25","nodeType":"VariableDeclaration","scope":5515,"src":"1652:26:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5511,"name":"uint256","nodeType":"ElementaryTypeName","src":"1652:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1520:164:25"},"returnParameters":{"id":5514,"nodeType":"ParameterList","parameters":[],"src":"1693:0:25"},"scope":5549,"src":"1495:199:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f93b3673","id":5522,"implemented":false,"kind":"function","modifiers":[],"name":"setRiskpoolForProduct","nameLocation":"1709:21:25","nodeType":"FunctionDefinition","parameters":{"id":5520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5517,"mutability":"mutable","name":"productId","nameLocation":"1739:9:25","nodeType":"VariableDeclaration","scope":5522,"src":"1731:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1731:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5519,"mutability":"mutable","name":"riskpoolId","nameLocation":"1758:10:25","nodeType":"VariableDeclaration","scope":5522,"src":"1750:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5518,"name":"uint256","nodeType":"ElementaryTypeName","src":"1750:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1730:39:25"},"returnParameters":{"id":5521,"nodeType":"ParameterList","parameters":[],"src":"1778:0:25"},"scope":5549,"src":"1700:79:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1b07b17f","id":5529,"implemented":false,"kind":"function","modifiers":[],"name":"underwrite","nameLocation":"1794:10:25","nodeType":"FunctionDefinition","parameters":{"id":5525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5524,"mutability":"mutable","name":"processId","nameLocation":"1813:9:25","nodeType":"VariableDeclaration","scope":5529,"src":"1805:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1805:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1804:19:25"},"returnParameters":{"id":5528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5527,"mutability":"mutable","name":"success","nameLocation":"1846:7:25","nodeType":"VariableDeclaration","scope":5529,"src":"1841:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5526,"name":"bool","nodeType":"ElementaryTypeName","src":"1841:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1840:14:25"},"scope":5549,"src":"1785:70:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"02108268","id":5536,"implemented":false,"kind":"function","modifiers":[],"name":"processPremium","nameLocation":"1869:14:25","nodeType":"FunctionDefinition","parameters":{"id":5534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5531,"mutability":"mutable","name":"processId","nameLocation":"1892:9:25","nodeType":"VariableDeclaration","scope":5536,"src":"1884:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1884:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5533,"mutability":"mutable","name":"amount","nameLocation":"1911:6:25","nodeType":"VariableDeclaration","scope":5536,"src":"1903:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5532,"name":"uint256","nodeType":"ElementaryTypeName","src":"1903:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1883:35:25"},"returnParameters":{"id":5535,"nodeType":"ParameterList","parameters":[],"src":"1927:0:25"},"scope":5549,"src":"1860:68:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fe64372b","id":5543,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"1942:13:25","nodeType":"FunctionDefinition","parameters":{"id":5541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5538,"mutability":"mutable","name":"processId","nameLocation":"1964:9:25","nodeType":"VariableDeclaration","scope":5543,"src":"1956:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1956:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5540,"mutability":"mutable","name":"amount","nameLocation":"1983:6:25","nodeType":"VariableDeclaration","scope":5543,"src":"1975:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5539,"name":"uint256","nodeType":"ElementaryTypeName","src":"1975:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1955:35:25"},"returnParameters":{"id":5542,"nodeType":"ParameterList","parameters":[],"src":"1999:0:25"},"scope":5549,"src":"1933:67:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"67d42a8b","id":5548,"implemented":false,"kind":"function","modifiers":[],"name":"release","nameLocation":"2014:7:25","nodeType":"FunctionDefinition","parameters":{"id":5546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5545,"mutability":"mutable","name":"processId","nameLocation":"2030:9:25","nodeType":"VariableDeclaration","scope":5548,"src":"2022:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2022:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2021:19:25"},"returnParameters":{"id":5547,"nodeType":"ParameterList","parameters":[],"src":"2049:0:25"},"scope":5549,"src":"2005:45:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5550,"src":"63:1990:25"}],"src":"39:2015:25"},"id":25},"@etherisc/gif-interface/contracts/modules/IQuery.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IQuery.sol","exportedSymbols":{"IQuery":[5616]},"id":5617,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5551,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:26"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5616,"linearizedBaseContracts":[5616],"name":"IQuery","nameLocation":"73:6:26","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IQuery.OracleRequest","id":5564,"members":[{"constant":false,"id":5553,"mutability":"mutable","name":"processId","nameLocation":"126:9:26","nodeType":"VariableDeclaration","scope":5564,"src":"118:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"118:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5555,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"153:19:26","nodeType":"VariableDeclaration","scope":5564,"src":"145:27:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5554,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5557,"mutability":"mutable","name":"callbackContractAddress","nameLocation":"190:23:26","nodeType":"VariableDeclaration","scope":5564,"src":"182:31:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5556,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5559,"mutability":"mutable","name":"callbackMethodName","nameLocation":"230:18:26","nodeType":"VariableDeclaration","scope":5564,"src":"223:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":5558,"name":"string","nodeType":"ElementaryTypeName","src":"223:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5561,"mutability":"mutable","name":"data","nameLocation":"264:4:26","nodeType":"VariableDeclaration","scope":5564,"src":"258:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5560,"name":"bytes","nodeType":"ElementaryTypeName","src":"258:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5563,"mutability":"mutable","name":"createdAt","nameLocation":"286:9:26","nodeType":"VariableDeclaration","scope":5564,"src":"278:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5562,"name":"uint256","nodeType":"ElementaryTypeName","src":"278:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"OracleRequest","nameLocation":"94:13:26","nodeType":"StructDefinition","scope":5616,"src":"87:215:26","visibility":"public"},{"anonymous":false,"id":5572,"name":"LogOracleRequested","nameLocation":"314:18:26","nodeType":"EventDefinition","parameters":{"id":5571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5566,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"350:9:26","nodeType":"VariableDeclaration","scope":5572,"src":"342:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5568,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"377:9:26","nodeType":"VariableDeclaration","scope":5572,"src":"369:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5567,"name":"uint256","nodeType":"ElementaryTypeName","src":"369:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5570,"indexed":false,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"404:19:26","nodeType":"VariableDeclaration","scope":5572,"src":"396:27:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5569,"name":"uint256","nodeType":"ElementaryTypeName","src":"396:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"332:97:26"},"src":"308:122:26"},{"anonymous":false,"id":5582,"name":"LogOracleResponded","nameLocation":"442:18:26","nodeType":"EventDefinition","parameters":{"id":5581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5574,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"478:9:26","nodeType":"VariableDeclaration","scope":5582,"src":"470:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"470:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5576,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"505:9:26","nodeType":"VariableDeclaration","scope":5582,"src":"497:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5575,"name":"uint256","nodeType":"ElementaryTypeName","src":"497:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5578,"indexed":false,"mutability":"mutable","name":"responder","nameLocation":"532:9:26","nodeType":"VariableDeclaration","scope":5582,"src":"524:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5577,"name":"address","nodeType":"ElementaryTypeName","src":"524:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5580,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"556:7:26","nodeType":"VariableDeclaration","scope":5582,"src":"551:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5579,"name":"bool","nodeType":"ElementaryTypeName","src":"551:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"460:109:26"},"src":"436:134:26"},{"anonymous":false,"id":5586,"name":"LogOracleCanceled","nameLocation":"582:17:26","nodeType":"EventDefinition","parameters":{"id":5585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5584,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"617:9:26","nodeType":"VariableDeclaration","scope":5586,"src":"609:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5583,"name":"uint256","nodeType":"ElementaryTypeName","src":"609:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"599:33:26"},"src":"576:57:26"},{"functionSelector":"2c933f22","id":5601,"implemented":false,"kind":"function","modifiers":[],"name":"request","nameLocation":"648:7:26","nodeType":"FunctionDefinition","parameters":{"id":5597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5588,"mutability":"mutable","name":"processId","nameLocation":"673:9:26","nodeType":"VariableDeclaration","scope":5601,"src":"665:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"665:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5590,"mutability":"mutable","name":"input","nameLocation":"707:5:26","nodeType":"VariableDeclaration","scope":5601,"src":"692:20:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5589,"name":"bytes","nodeType":"ElementaryTypeName","src":"692:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5592,"mutability":"mutable","name":"callbackMethodName","nameLocation":"738:18:26","nodeType":"VariableDeclaration","scope":5601,"src":"722:34:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":5591,"name":"string","nodeType":"ElementaryTypeName","src":"722:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5594,"mutability":"mutable","name":"callbackContractAddress","nameLocation":"774:23:26","nodeType":"VariableDeclaration","scope":5601,"src":"766:31:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5593,"name":"address","nodeType":"ElementaryTypeName","src":"766:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5596,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"815:19:26","nodeType":"VariableDeclaration","scope":5601,"src":"807:27:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5595,"name":"uint256","nodeType":"ElementaryTypeName","src":"807:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"655:185:26"},"returnParameters":{"id":5600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5599,"mutability":"mutable","name":"requestId","nameLocation":"867:9:26","nodeType":"VariableDeclaration","scope":5601,"src":"859:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5598,"name":"uint256","nodeType":"ElementaryTypeName","src":"859:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"858:19:26"},"scope":5616,"src":"639:239:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"9af8c4ba","id":5610,"implemented":false,"kind":"function","modifiers":[],"name":"respond","nameLocation":"893:7:26","nodeType":"FunctionDefinition","parameters":{"id":5608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5603,"mutability":"mutable","name":"requestId","nameLocation":"918:9:26","nodeType":"VariableDeclaration","scope":5610,"src":"910:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5602,"name":"uint256","nodeType":"ElementaryTypeName","src":"910:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5605,"mutability":"mutable","name":"responder","nameLocation":"945:9:26","nodeType":"VariableDeclaration","scope":5610,"src":"937:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5604,"name":"address","nodeType":"ElementaryTypeName","src":"937:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5607,"mutability":"mutable","name":"data","nameLocation":"979:4:26","nodeType":"VariableDeclaration","scope":5610,"src":"964:19:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5606,"name":"bytes","nodeType":"ElementaryTypeName","src":"964:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"900:89:26"},"returnParameters":{"id":5609,"nodeType":"ParameterList","parameters":[],"src":"998:0:26"},"scope":5616,"src":"884:115:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"40e58ee5","id":5615,"implemented":false,"kind":"function","modifiers":[],"name":"cancel","nameLocation":"1014:6:26","nodeType":"FunctionDefinition","parameters":{"id":5613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5612,"mutability":"mutable","name":"requestId","nameLocation":"1029:9:26","nodeType":"VariableDeclaration","scope":5615,"src":"1021:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1020:19:26"},"returnParameters":{"id":5614,"nodeType":"ParameterList","parameters":[],"src":"1048:0:26"},"scope":5616,"src":"1005:44:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5617,"src":"63:989:26"}],"src":"39:1014:26"},"id":26},"@etherisc/gif-interface/contracts/modules/IRegistry.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","exportedSymbols":{"IRegistry":[5714]},"id":5715,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5618,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:27"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5714,"linearizedBaseContracts":[5714],"name":"IRegistry","nameLocation":"73:9:27","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":5628,"name":"LogContractRegistered","nameLocation":"96:21:27","nodeType":"EventDefinition","parameters":{"id":5627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5620,"indexed":false,"mutability":"mutable","name":"release","nameLocation":"135:7:27","nodeType":"VariableDeclaration","scope":5628,"src":"127:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"127:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5622,"indexed":false,"mutability":"mutable","name":"contractName","nameLocation":"160:12:27","nodeType":"VariableDeclaration","scope":5628,"src":"152:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"152:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5624,"indexed":false,"mutability":"mutable","name":"contractAddress","nameLocation":"190:15:27","nodeType":"VariableDeclaration","scope":5628,"src":"182:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5623,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5626,"indexed":false,"mutability":"mutable","name":"isNew","nameLocation":"220:5:27","nodeType":"VariableDeclaration","scope":5628,"src":"215:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5625,"name":"bool","nodeType":"ElementaryTypeName","src":"215:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"117:114:27"},"src":"90:142:27"},{"anonymous":false,"id":5634,"name":"LogContractDeregistered","nameLocation":"244:23:27","nodeType":"EventDefinition","parameters":{"id":5633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5630,"indexed":false,"mutability":"mutable","name":"release","nameLocation":"276:7:27","nodeType":"VariableDeclaration","scope":5634,"src":"268:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5632,"indexed":false,"mutability":"mutable","name":"contractName","nameLocation":"293:12:27","nodeType":"VariableDeclaration","scope":5634,"src":"285:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"267:39:27"},"src":"238:69:27"},{"anonymous":false,"id":5638,"name":"LogReleasePrepared","nameLocation":"319:18:27","nodeType":"EventDefinition","parameters":{"id":5637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5636,"indexed":false,"mutability":"mutable","name":"release","nameLocation":"346:7:27","nodeType":"VariableDeclaration","scope":5638,"src":"338:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"338:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"337:17:27"},"src":"313:42:27"},{"functionSelector":"1d5e7314","id":5647,"implemented":false,"kind":"function","modifiers":[],"name":"registerInRelease","nameLocation":"370:17:27","nodeType":"FunctionDefinition","parameters":{"id":5645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5640,"mutability":"mutable","name":"_release","nameLocation":"405:8:27","nodeType":"VariableDeclaration","scope":5647,"src":"397:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"397:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5642,"mutability":"mutable","name":"_contractName","nameLocation":"431:13:27","nodeType":"VariableDeclaration","scope":5647,"src":"423:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"423:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5644,"mutability":"mutable","name":"_contractAddress","nameLocation":"462:16:27","nodeType":"VariableDeclaration","scope":5647,"src":"454:24:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5643,"name":"address","nodeType":"ElementaryTypeName","src":"454:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"387:97:27"},"returnParameters":{"id":5646,"nodeType":"ParameterList","parameters":[],"src":"493:0:27"},"scope":5714,"src":"361:133:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d22057a9","id":5654,"implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"509:8:27","nodeType":"FunctionDefinition","parameters":{"id":5652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5649,"mutability":"mutable","name":"_contractName","nameLocation":"526:13:27","nodeType":"VariableDeclaration","scope":5654,"src":"518:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"518:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5651,"mutability":"mutable","name":"_contractAddress","nameLocation":"549:16:27","nodeType":"VariableDeclaration","scope":5654,"src":"541:24:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5650,"name":"address","nodeType":"ElementaryTypeName","src":"541:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"517:49:27"},"returnParameters":{"id":5653,"nodeType":"ParameterList","parameters":[],"src":"575:0:27"},"scope":5714,"src":"500:76:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"dc527b08","id":5661,"implemented":false,"kind":"function","modifiers":[],"name":"deregisterInRelease","nameLocation":"591:19:27","nodeType":"FunctionDefinition","parameters":{"id":5659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5656,"mutability":"mutable","name":"_release","nameLocation":"619:8:27","nodeType":"VariableDeclaration","scope":5661,"src":"611:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"611:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5658,"mutability":"mutable","name":"_contractName","nameLocation":"637:13:27","nodeType":"VariableDeclaration","scope":5661,"src":"629:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5657,"name":"bytes32","nodeType":"ElementaryTypeName","src":"629:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"610:41:27"},"returnParameters":{"id":5660,"nodeType":"ParameterList","parameters":[],"src":"668:0:27"},"scope":5714,"src":"582:87:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"20813154","id":5666,"implemented":false,"kind":"function","modifiers":[],"name":"deregister","nameLocation":"684:10:27","nodeType":"FunctionDefinition","parameters":{"id":5664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5663,"mutability":"mutable","name":"_contractName","nameLocation":"703:13:27","nodeType":"VariableDeclaration","scope":5666,"src":"695:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"695:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"694:23:27"},"returnParameters":{"id":5665,"nodeType":"ParameterList","parameters":[],"src":"726:0:27"},"scope":5714,"src":"675:52:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"893917ea","id":5671,"implemented":false,"kind":"function","modifiers":[],"name":"prepareRelease","nameLocation":"742:14:27","nodeType":"FunctionDefinition","parameters":{"id":5669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5668,"mutability":"mutable","name":"_newRelease","nameLocation":"765:11:27","nodeType":"VariableDeclaration","scope":5671,"src":"757:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"757:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"756:21:27"},"returnParameters":{"id":5670,"nodeType":"ParameterList","parameters":[],"src":"786:0:27"},"scope":5714,"src":"733:54:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b0ef18a0","id":5680,"implemented":false,"kind":"function","modifiers":[],"name":"getContractInRelease","nameLocation":"802:20:27","nodeType":"FunctionDefinition","parameters":{"id":5676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5673,"mutability":"mutable","name":"_release","nameLocation":"831:8:27","nodeType":"VariableDeclaration","scope":5680,"src":"823:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"823:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5675,"mutability":"mutable","name":"_contractName","nameLocation":"849:13:27","nodeType":"VariableDeclaration","scope":5680,"src":"841:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"841:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"822:41:27"},"returnParameters":{"id":5679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5678,"mutability":"mutable","name":"_contractAddress","nameLocation":"919:16:27","nodeType":"VariableDeclaration","scope":5680,"src":"911:24:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5677,"name":"address","nodeType":"ElementaryTypeName","src":"911:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"910:26:27"},"scope":5714,"src":"793:144:27","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e16c7d98","id":5687,"implemented":false,"kind":"function","modifiers":[],"name":"getContract","nameLocation":"952:11:27","nodeType":"FunctionDefinition","parameters":{"id":5683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5682,"mutability":"mutable","name":"_contractName","nameLocation":"972:13:27","nodeType":"VariableDeclaration","scope":5687,"src":"964:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5681,"name":"bytes32","nodeType":"ElementaryTypeName","src":"964:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"963:23:27"},"returnParameters":{"id":5686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5685,"mutability":"mutable","name":"_contractAddress","nameLocation":"1042:16:27","nodeType":"VariableDeclaration","scope":5687,"src":"1034:24:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5684,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1033:26:27"},"scope":5714,"src":"943:117:27","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"76b707b7","id":5692,"implemented":false,"kind":"function","modifiers":[],"name":"getRelease","nameLocation":"1075:10:27","nodeType":"FunctionDefinition","parameters":{"id":5688,"nodeType":"ParameterList","parameters":[],"src":"1085:2:27"},"returnParameters":{"id":5691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5690,"mutability":"mutable","name":"_release","nameLocation":"1119:8:27","nodeType":"VariableDeclaration","scope":5692,"src":"1111:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1111:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1110:18:27"},"scope":5714,"src":"1066:63:27","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2ca65a79","id":5701,"implemented":false,"kind":"function","modifiers":[],"name":"ensureSender","nameLocation":"1144:12:27","nodeType":"FunctionDefinition","parameters":{"id":5697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5694,"mutability":"mutable","name":"sender","nameLocation":"1165:6:27","nodeType":"VariableDeclaration","scope":5701,"src":"1157:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5693,"name":"address","nodeType":"ElementaryTypeName","src":"1157:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5696,"mutability":"mutable","name":"_contractName","nameLocation":"1181:13:27","nodeType":"VariableDeclaration","scope":5701,"src":"1173:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1173:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1156:39:27"},"returnParameters":{"id":5700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5699,"mutability":"mutable","name":"_senderMatches","nameLocation":"1223:14:27","nodeType":"VariableDeclaration","scope":5701,"src":"1218:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5698,"name":"bool","nodeType":"ElementaryTypeName","src":"1218:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1217:21:27"},"scope":5714,"src":"1135:104:27","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6c0f79b6","id":5706,"implemented":false,"kind":"function","modifiers":[],"name":"contracts","nameLocation":"1254:9:27","nodeType":"FunctionDefinition","parameters":{"id":5702,"nodeType":"ParameterList","parameters":[],"src":"1263:2:27"},"returnParameters":{"id":5705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5704,"mutability":"mutable","name":"_numberOfContracts","nameLocation":"1297:18:27","nodeType":"VariableDeclaration","scope":5706,"src":"1289:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5703,"name":"uint256","nodeType":"ElementaryTypeName","src":"1289:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1288:28:27"},"scope":5714,"src":"1245:72:27","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f6b3e7d0","id":5713,"implemented":false,"kind":"function","modifiers":[],"name":"contractName","nameLocation":"1332:12:27","nodeType":"FunctionDefinition","parameters":{"id":5709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5708,"mutability":"mutable","name":"idx","nameLocation":"1353:3:27","nodeType":"VariableDeclaration","scope":5713,"src":"1345:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5707,"name":"uint256","nodeType":"ElementaryTypeName","src":"1345:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1344:13:27"},"returnParameters":{"id":5712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5711,"mutability":"mutable","name":"_contractName","nameLocation":"1389:13:27","nodeType":"VariableDeclaration","scope":5713,"src":"1381:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1381:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1380:23:27"},"scope":5714,"src":"1323:81:27","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5715,"src":"63:1344:27"}],"src":"39:1369:27"},"id":27},"@etherisc/gif-interface/contracts/modules/ITreasury.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","exportedSymbols":{"IERC20":[8831],"ITreasury":[5974]},"id":5975,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5716,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:28"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":5717,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5975,"sourceUnit":8832,"src":"62:56:28","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5974,"linearizedBaseContracts":[5974],"name":"ITreasury","nameLocation":"130:9:28","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":5719,"name":"LogTreasurySuspended","nameLocation":"153:20:28","nodeType":"EventDefinition","parameters":{"id":5718,"nodeType":"ParameterList","parameters":[],"src":"173:2:28"},"src":"147:29:28"},{"anonymous":false,"id":5721,"name":"LogTreasuryResumed","nameLocation":"187:18:28","nodeType":"EventDefinition","parameters":{"id":5720,"nodeType":"ParameterList","parameters":[],"src":"205:2:28"},"src":"181:27:28"},{"anonymous":false,"id":5729,"name":"LogTreasuryProductTokenSet","nameLocation":"220:26:28","nodeType":"EventDefinition","parameters":{"id":5728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5723,"indexed":false,"mutability":"mutable","name":"productId","nameLocation":"255:9:28","nodeType":"VariableDeclaration","scope":5729,"src":"247:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5722,"name":"uint256","nodeType":"ElementaryTypeName","src":"247:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5725,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"274:10:28","nodeType":"VariableDeclaration","scope":5729,"src":"266:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5724,"name":"uint256","nodeType":"ElementaryTypeName","src":"266:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5727,"indexed":false,"mutability":"mutable","name":"erc20Address","nameLocation":"294:12:28","nodeType":"VariableDeclaration","scope":5729,"src":"286:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5726,"name":"address","nodeType":"ElementaryTypeName","src":"286:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"246:61:28"},"src":"214:94:28"},{"anonymous":false,"id":5733,"name":"LogTreasuryInstanceWalletSet","nameLocation":"319:28:28","nodeType":"EventDefinition","parameters":{"id":5732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5731,"indexed":false,"mutability":"mutable","name":"walletAddress","nameLocation":"356:13:28","nodeType":"VariableDeclaration","scope":5733,"src":"348:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5730,"name":"address","nodeType":"ElementaryTypeName","src":"348:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"347:23:28"},"src":"313:58:28"},{"anonymous":false,"id":5739,"name":"LogTreasuryRiskpoolWalletSet","nameLocation":"382:28:28","nodeType":"EventDefinition","parameters":{"id":5738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5735,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"419:10:28","nodeType":"VariableDeclaration","scope":5739,"src":"411:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5734,"name":"uint256","nodeType":"ElementaryTypeName","src":"411:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5737,"indexed":false,"mutability":"mutable","name":"walletAddress","nameLocation":"439:13:28","nodeType":"VariableDeclaration","scope":5739,"src":"431:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5736,"name":"address","nodeType":"ElementaryTypeName","src":"431:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"410:43:28"},"src":"376:78:28"},{"anonymous":false,"id":5747,"name":"LogTreasuryPremiumFeesSet","nameLocation":"466:25:28","nodeType":"EventDefinition","parameters":{"id":5746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5741,"indexed":false,"mutability":"mutable","name":"productId","nameLocation":"500:9:28","nodeType":"VariableDeclaration","scope":5747,"src":"492:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5740,"name":"uint256","nodeType":"ElementaryTypeName","src":"492:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5743,"indexed":false,"mutability":"mutable","name":"fixedFee","nameLocation":"519:8:28","nodeType":"VariableDeclaration","scope":5747,"src":"511:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5742,"name":"uint256","nodeType":"ElementaryTypeName","src":"511:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5745,"indexed":false,"mutability":"mutable","name":"fractionalFee","nameLocation":"537:13:28","nodeType":"VariableDeclaration","scope":5747,"src":"529:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5744,"name":"uint256","nodeType":"ElementaryTypeName","src":"529:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"491:60:28"},"src":"460:92:28"},{"anonymous":false,"id":5755,"name":"LogTreasuryCapitalFeesSet","nameLocation":"563:25:28","nodeType":"EventDefinition","parameters":{"id":5754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5749,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"597:10:28","nodeType":"VariableDeclaration","scope":5755,"src":"589:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5748,"name":"uint256","nodeType":"ElementaryTypeName","src":"589:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5751,"indexed":false,"mutability":"mutable","name":"fixedFee","nameLocation":"617:8:28","nodeType":"VariableDeclaration","scope":5755,"src":"609:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5750,"name":"uint256","nodeType":"ElementaryTypeName","src":"609:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5753,"indexed":false,"mutability":"mutable","name":"fractionalFee","nameLocation":"635:13:28","nodeType":"VariableDeclaration","scope":5755,"src":"627:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5752,"name":"uint256","nodeType":"ElementaryTypeName","src":"627:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"588:61:28"},"src":"557:93:28"},{"anonymous":false,"id":5763,"name":"LogTreasuryPremiumTransferred","nameLocation":"662:29:28","nodeType":"EventDefinition","parameters":{"id":5762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5757,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"700:4:28","nodeType":"VariableDeclaration","scope":5763,"src":"692:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5756,"name":"address","nodeType":"ElementaryTypeName","src":"692:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5759,"indexed":false,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"714:21:28","nodeType":"VariableDeclaration","scope":5763,"src":"706:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5758,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5761,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"745:6:28","nodeType":"VariableDeclaration","scope":5763,"src":"737:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5760,"name":"uint256","nodeType":"ElementaryTypeName","src":"737:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"691:61:28"},"src":"656:97:28"},{"anonymous":false,"id":5771,"name":"LogTreasuryPayoutTransferred","nameLocation":"764:28:28","nodeType":"EventDefinition","parameters":{"id":5770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5765,"indexed":false,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"801:21:28","nodeType":"VariableDeclaration","scope":5771,"src":"793:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5764,"name":"address","nodeType":"ElementaryTypeName","src":"793:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5767,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"832:2:28","nodeType":"VariableDeclaration","scope":5771,"src":"824:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5766,"name":"address","nodeType":"ElementaryTypeName","src":"824:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5769,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"844:6:28","nodeType":"VariableDeclaration","scope":5771,"src":"836:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5768,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"792:59:28"},"src":"758:94:28"},{"anonymous":false,"id":5779,"name":"LogTreasuryCapitalTransferred","nameLocation":"863:29:28","nodeType":"EventDefinition","parameters":{"id":5778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5773,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"901:4:28","nodeType":"VariableDeclaration","scope":5779,"src":"893:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5772,"name":"address","nodeType":"ElementaryTypeName","src":"893:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5775,"indexed":false,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"915:21:28","nodeType":"VariableDeclaration","scope":5779,"src":"907:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5774,"name":"address","nodeType":"ElementaryTypeName","src":"907:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5777,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"946:6:28","nodeType":"VariableDeclaration","scope":5779,"src":"938:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5776,"name":"uint256","nodeType":"ElementaryTypeName","src":"938:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"892:61:28"},"src":"857:97:28"},{"anonymous":false,"id":5787,"name":"LogTreasuryFeesTransferred","nameLocation":"965:26:28","nodeType":"EventDefinition","parameters":{"id":5786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5781,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"1000:4:28","nodeType":"VariableDeclaration","scope":5787,"src":"992:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5780,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5783,"indexed":false,"mutability":"mutable","name":"instanceWalletAddress","nameLocation":"1014:21:28","nodeType":"VariableDeclaration","scope":5787,"src":"1006:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5782,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5785,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1045:6:28","nodeType":"VariableDeclaration","scope":5787,"src":"1037:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5784,"name":"uint256","nodeType":"ElementaryTypeName","src":"1037:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"991:61:28"},"src":"959:94:28"},{"anonymous":false,"id":5795,"name":"LogTreasuryWithdrawalTransferred","nameLocation":"1064:32:28","nodeType":"EventDefinition","parameters":{"id":5794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5789,"indexed":false,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"1105:21:28","nodeType":"VariableDeclaration","scope":5795,"src":"1097:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5788,"name":"address","nodeType":"ElementaryTypeName","src":"1097:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5791,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"1136:2:28","nodeType":"VariableDeclaration","scope":5795,"src":"1128:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5790,"name":"address","nodeType":"ElementaryTypeName","src":"1128:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5793,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1148:6:28","nodeType":"VariableDeclaration","scope":5795,"src":"1140:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5792,"name":"uint256","nodeType":"ElementaryTypeName","src":"1140:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1096:59:28"},"src":"1058:98:28"},{"anonymous":false,"id":5801,"name":"LogTreasuryPremiumProcessed","nameLocation":"1168:27:28","nodeType":"EventDefinition","parameters":{"id":5800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5797,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1204:9:28","nodeType":"VariableDeclaration","scope":5801,"src":"1196:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5796,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1196:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5799,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1223:6:28","nodeType":"VariableDeclaration","scope":5801,"src":"1215:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5798,"name":"uint256","nodeType":"ElementaryTypeName","src":"1215:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1195:35:28"},"src":"1162:69:28"},{"anonymous":false,"id":5809,"name":"LogTreasuryPayoutProcessed","nameLocation":"1242:26:28","nodeType":"EventDefinition","parameters":{"id":5808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5803,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"1277:10:28","nodeType":"VariableDeclaration","scope":5809,"src":"1269:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5802,"name":"uint256","nodeType":"ElementaryTypeName","src":"1269:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5805,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"1297:2:28","nodeType":"VariableDeclaration","scope":5809,"src":"1289:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5804,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5807,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1309:6:28","nodeType":"VariableDeclaration","scope":5809,"src":"1301:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5806,"name":"uint256","nodeType":"ElementaryTypeName","src":"1301:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1268:48:28"},"src":"1236:81:28"},{"anonymous":false,"id":5817,"name":"LogTreasuryCapitalProcessed","nameLocation":"1328:27:28","nodeType":"EventDefinition","parameters":{"id":5816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5811,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"1364:10:28","nodeType":"VariableDeclaration","scope":5817,"src":"1356:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5810,"name":"uint256","nodeType":"ElementaryTypeName","src":"1356:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5813,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"1384:8:28","nodeType":"VariableDeclaration","scope":5817,"src":"1376:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5812,"name":"uint256","nodeType":"ElementaryTypeName","src":"1376:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5815,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1402:6:28","nodeType":"VariableDeclaration","scope":5817,"src":"1394:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5814,"name":"uint256","nodeType":"ElementaryTypeName","src":"1394:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1355:54:28"},"src":"1322:88:28"},{"anonymous":false,"id":5825,"name":"LogTreasuryWithdrawalProcessed","nameLocation":"1421:30:28","nodeType":"EventDefinition","parameters":{"id":5824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5819,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"1460:10:28","nodeType":"VariableDeclaration","scope":5825,"src":"1452:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5818,"name":"uint256","nodeType":"ElementaryTypeName","src":"1452:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5821,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"1480:8:28","nodeType":"VariableDeclaration","scope":5825,"src":"1472:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5820,"name":"uint256","nodeType":"ElementaryTypeName","src":"1472:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5823,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1498:6:28","nodeType":"VariableDeclaration","scope":5825,"src":"1490:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5822,"name":"uint256","nodeType":"ElementaryTypeName","src":"1490:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1451:54:28"},"src":"1415:91:28"},{"canonicalName":"ITreasury.FeeSpecification","id":5838,"members":[{"constant":false,"id":5827,"mutability":"mutable","name":"componentId","nameLocation":"1554:11:28","nodeType":"VariableDeclaration","scope":5838,"src":"1546:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5826,"name":"uint256","nodeType":"ElementaryTypeName","src":"1546:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5829,"mutability":"mutable","name":"fixedFee","nameLocation":"1583:8:28","nodeType":"VariableDeclaration","scope":5838,"src":"1575:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5828,"name":"uint256","nodeType":"ElementaryTypeName","src":"1575:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5831,"mutability":"mutable","name":"fractionalFee","nameLocation":"1609:13:28","nodeType":"VariableDeclaration","scope":5838,"src":"1601:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5830,"name":"uint256","nodeType":"ElementaryTypeName","src":"1601:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5833,"mutability":"mutable","name":"feeCalculationData","nameLocation":"1638:18:28","nodeType":"VariableDeclaration","scope":5838,"src":"1632:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5832,"name":"bytes","nodeType":"ElementaryTypeName","src":"1632:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5835,"mutability":"mutable","name":"createdAt","nameLocation":"1674:9:28","nodeType":"VariableDeclaration","scope":5838,"src":"1666:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5834,"name":"uint256","nodeType":"ElementaryTypeName","src":"1666:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5837,"mutability":"mutable","name":"updatedAt","nameLocation":"1701:9:28","nodeType":"VariableDeclaration","scope":5838,"src":"1693:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5836,"name":"uint256","nodeType":"ElementaryTypeName","src":"1693:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"FeeSpecification","nameLocation":"1519:16:28","nodeType":"StructDefinition","scope":5974,"src":"1512:205:28","visibility":"public"},{"functionSelector":"cc9cf8cd","id":5845,"implemented":false,"kind":"function","modifiers":[],"name":"setProductToken","nameLocation":"1732:15:28","nodeType":"FunctionDefinition","parameters":{"id":5843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5840,"mutability":"mutable","name":"productId","nameLocation":"1756:9:28","nodeType":"VariableDeclaration","scope":5845,"src":"1748:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5839,"name":"uint256","nodeType":"ElementaryTypeName","src":"1748:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5842,"mutability":"mutable","name":"erc20Address","nameLocation":"1775:12:28","nodeType":"VariableDeclaration","scope":5845,"src":"1767:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5841,"name":"address","nodeType":"ElementaryTypeName","src":"1767:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1747:41:28"},"returnParameters":{"id":5844,"nodeType":"ParameterList","parameters":[],"src":"1797:0:28"},"scope":5974,"src":"1723:75:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"cab2504d","id":5850,"implemented":false,"kind":"function","modifiers":[],"name":"setInstanceWallet","nameLocation":"1813:17:28","nodeType":"FunctionDefinition","parameters":{"id":5848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5847,"mutability":"mutable","name":"instanceWalletAddress","nameLocation":"1839:21:28","nodeType":"VariableDeclaration","scope":5850,"src":"1831:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5846,"name":"address","nodeType":"ElementaryTypeName","src":"1831:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1830:31:28"},"returnParameters":{"id":5849,"nodeType":"ParameterList","parameters":[],"src":"1870:0:28"},"scope":5974,"src":"1804:67:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"86039aed","id":5857,"implemented":false,"kind":"function","modifiers":[],"name":"setRiskpoolWallet","nameLocation":"1885:17:28","nodeType":"FunctionDefinition","parameters":{"id":5855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5852,"mutability":"mutable","name":"riskpoolId","nameLocation":"1911:10:28","nodeType":"VariableDeclaration","scope":5857,"src":"1903:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5851,"name":"uint256","nodeType":"ElementaryTypeName","src":"1903:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5854,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"1931:21:28","nodeType":"VariableDeclaration","scope":5857,"src":"1923:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5853,"name":"address","nodeType":"ElementaryTypeName","src":"1923:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1902:51:28"},"returnParameters":{"id":5856,"nodeType":"ParameterList","parameters":[],"src":"1962:0:28"},"scope":5974,"src":"1876:87:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"62f0ab55","id":5871,"implemented":false,"kind":"function","modifiers":[],"name":"createFeeSpecification","nameLocation":"1978:22:28","nodeType":"FunctionDefinition","parameters":{"id":5866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5859,"mutability":"mutable","name":"componentId","nameLocation":"2018:11:28","nodeType":"VariableDeclaration","scope":5871,"src":"2010:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5858,"name":"uint256","nodeType":"ElementaryTypeName","src":"2010:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5861,"mutability":"mutable","name":"fixedFee","nameLocation":"2047:8:28","nodeType":"VariableDeclaration","scope":5871,"src":"2039:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5860,"name":"uint256","nodeType":"ElementaryTypeName","src":"2039:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5863,"mutability":"mutable","name":"fractionalFee","nameLocation":"2073:13:28","nodeType":"VariableDeclaration","scope":5871,"src":"2065:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5862,"name":"uint256","nodeType":"ElementaryTypeName","src":"2065:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5865,"mutability":"mutable","name":"feeCalculationData","nameLocation":"2111:18:28","nodeType":"VariableDeclaration","scope":5871,"src":"2096:33:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5864,"name":"bytes","nodeType":"ElementaryTypeName","src":"2096:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2000:135:28"},"returnParameters":{"id":5870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5869,"mutability":"mutable","name":"feeSpec","nameLocation":"2190:7:28","nodeType":"VariableDeclaration","scope":5871,"src":"2166:31:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":5868,"nodeType":"UserDefinedTypeName","pathNode":{"id":5867,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"2166:16:28"},"referencedDeclaration":5838,"src":"2166:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"2165:33:28"},"scope":5974,"src":"1969:230:28","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"01132a7f","id":5877,"implemented":false,"kind":"function","modifiers":[],"name":"setPremiumFees","nameLocation":"2218:14:28","nodeType":"FunctionDefinition","parameters":{"id":5875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5874,"mutability":"mutable","name":"feeSpec","nameLocation":"2259:7:28","nodeType":"VariableDeclaration","scope":5877,"src":"2233:33:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":5873,"nodeType":"UserDefinedTypeName","pathNode":{"id":5872,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"2233:16:28"},"referencedDeclaration":5838,"src":"2233:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"2232:35:28"},"returnParameters":{"id":5876,"nodeType":"ParameterList","parameters":[],"src":"2276:0:28"},"scope":5974,"src":"2209:68:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8ca946aa","id":5883,"implemented":false,"kind":"function","modifiers":[],"name":"setCapitalFees","nameLocation":"2291:14:28","nodeType":"FunctionDefinition","parameters":{"id":5881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5880,"mutability":"mutable","name":"feeSpec","nameLocation":"2332:7:28","nodeType":"VariableDeclaration","scope":5883,"src":"2306:33:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":5879,"nodeType":"UserDefinedTypeName","pathNode":{"id":5878,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"2306:16:28"},"referencedDeclaration":5838,"src":"2306:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"2305:35:28"},"returnParameters":{"id":5882,"nodeType":"ParameterList","parameters":[],"src":"2349:0:28"},"scope":5974,"src":"2282:68:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5ecc078e","id":5894,"implemented":false,"kind":"function","modifiers":[],"name":"processPremium","nameLocation":"2369:14:28","nodeType":"FunctionDefinition","parameters":{"id":5886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5885,"mutability":"mutable","name":"processId","nameLocation":"2392:9:28","nodeType":"VariableDeclaration","scope":5894,"src":"2384:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2384:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2383:19:28"},"returnParameters":{"id":5893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5888,"mutability":"mutable","name":"success","nameLocation":"2447:7:28","nodeType":"VariableDeclaration","scope":5894,"src":"2442:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5887,"name":"bool","nodeType":"ElementaryTypeName","src":"2442:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5890,"mutability":"mutable","name":"feeAmount","nameLocation":"2476:9:28","nodeType":"VariableDeclaration","scope":5894,"src":"2468:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5889,"name":"uint256","nodeType":"ElementaryTypeName","src":"2468:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5892,"mutability":"mutable","name":"netPremiumAmount","nameLocation":"2507:16:28","nodeType":"VariableDeclaration","scope":5894,"src":"2499:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5891,"name":"uint256","nodeType":"ElementaryTypeName","src":"2499:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2428:105:28"},"scope":5974,"src":"2360:174:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"02108268","id":5907,"implemented":false,"kind":"function","modifiers":[],"name":"processPremium","nameLocation":"2553:14:28","nodeType":"FunctionDefinition","parameters":{"id":5899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5896,"mutability":"mutable","name":"processId","nameLocation":"2576:9:28","nodeType":"VariableDeclaration","scope":5907,"src":"2568:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2568:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5898,"mutability":"mutable","name":"amount","nameLocation":"2595:6:28","nodeType":"VariableDeclaration","scope":5907,"src":"2587:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5897,"name":"uint256","nodeType":"ElementaryTypeName","src":"2587:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2567:35:28"},"returnParameters":{"id":5906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5901,"mutability":"mutable","name":"success","nameLocation":"2647:7:28","nodeType":"VariableDeclaration","scope":5907,"src":"2642:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5900,"name":"bool","nodeType":"ElementaryTypeName","src":"2642:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5903,"mutability":"mutable","name":"feeAmount","nameLocation":"2676:9:28","nodeType":"VariableDeclaration","scope":5907,"src":"2668:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5902,"name":"uint256","nodeType":"ElementaryTypeName","src":"2668:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5905,"mutability":"mutable","name":"netPremiumAmount","nameLocation":"2707:16:28","nodeType":"VariableDeclaration","scope":5907,"src":"2699:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5904,"name":"uint256","nodeType":"ElementaryTypeName","src":"2699:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2628:105:28"},"scope":5974,"src":"2544:190:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fe64372b","id":5918,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"2753:13:28","nodeType":"FunctionDefinition","parameters":{"id":5912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5909,"mutability":"mutable","name":"processId","nameLocation":"2775:9:28","nodeType":"VariableDeclaration","scope":5918,"src":"2767:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2767:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5911,"mutability":"mutable","name":"payoutId","nameLocation":"2794:8:28","nodeType":"VariableDeclaration","scope":5918,"src":"2786:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5910,"name":"uint256","nodeType":"ElementaryTypeName","src":"2786:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2766:37:28"},"returnParameters":{"id":5917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5914,"mutability":"mutable","name":"feeAmount","nameLocation":"2851:9:28","nodeType":"VariableDeclaration","scope":5918,"src":"2843:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5913,"name":"uint256","nodeType":"ElementaryTypeName","src":"2843:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5916,"mutability":"mutable","name":"netPayoutAmount","nameLocation":"2882:15:28","nodeType":"VariableDeclaration","scope":5918,"src":"2874:23:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5915,"name":"uint256","nodeType":"ElementaryTypeName","src":"2874:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2829:78:28"},"scope":5974,"src":"2744:164:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"26debdaa","id":5929,"implemented":false,"kind":"function","modifiers":[],"name":"processCapital","nameLocation":"2927:14:28","nodeType":"FunctionDefinition","parameters":{"id":5923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5920,"mutability":"mutable","name":"bundleId","nameLocation":"2950:8:28","nodeType":"VariableDeclaration","scope":5929,"src":"2942:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5919,"name":"uint256","nodeType":"ElementaryTypeName","src":"2942:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5922,"mutability":"mutable","name":"capitalAmount","nameLocation":"2968:13:28","nodeType":"VariableDeclaration","scope":5929,"src":"2960:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5921,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2941:41:28"},"returnParameters":{"id":5928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5925,"mutability":"mutable","name":"feeAmount","nameLocation":"3030:9:28","nodeType":"VariableDeclaration","scope":5929,"src":"3022:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5924,"name":"uint256","nodeType":"ElementaryTypeName","src":"3022:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5927,"mutability":"mutable","name":"netCapitalAmount","nameLocation":"3061:16:28","nodeType":"VariableDeclaration","scope":5929,"src":"3053:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5926,"name":"uint256","nodeType":"ElementaryTypeName","src":"3053:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3008:79:28"},"scope":5974,"src":"2918:170:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d9358075","id":5940,"implemented":false,"kind":"function","modifiers":[],"name":"processWithdrawal","nameLocation":"3103:17:28","nodeType":"FunctionDefinition","parameters":{"id":5934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5931,"mutability":"mutable","name":"bundleId","nameLocation":"3129:8:28","nodeType":"VariableDeclaration","scope":5940,"src":"3121:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5930,"name":"uint256","nodeType":"ElementaryTypeName","src":"3121:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5933,"mutability":"mutable","name":"amount","nameLocation":"3147:6:28","nodeType":"VariableDeclaration","scope":5940,"src":"3139:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5932,"name":"uint256","nodeType":"ElementaryTypeName","src":"3139:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3120:34:28"},"returnParameters":{"id":5939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5936,"mutability":"mutable","name":"feeAmount","nameLocation":"3201:9:28","nodeType":"VariableDeclaration","scope":5940,"src":"3193:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5935,"name":"uint256","nodeType":"ElementaryTypeName","src":"3193:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5938,"mutability":"mutable","name":"netAmount","nameLocation":"3232:9:28","nodeType":"VariableDeclaration","scope":5940,"src":"3224:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5937,"name":"uint256","nodeType":"ElementaryTypeName","src":"3224:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3179:72:28"},"scope":5974,"src":"3094:158:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"038696bb","id":5948,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentToken","nameLocation":"3267:17:28","nodeType":"FunctionDefinition","parameters":{"id":5943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5942,"mutability":"mutable","name":"componentId","nameLocation":"3293:11:28","nodeType":"VariableDeclaration","scope":5948,"src":"3285:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5941,"name":"uint256","nodeType":"ElementaryTypeName","src":"3285:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3284:21:28"},"returnParameters":{"id":5947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5946,"mutability":"mutable","name":"token","nameLocation":"3335:5:28","nodeType":"VariableDeclaration","scope":5948,"src":"3328:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":5945,"nodeType":"UserDefinedTypeName","pathNode":{"id":5944,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"3328:6:28"},"referencedDeclaration":8831,"src":"3328:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"3327:14:28"},"scope":5974,"src":"3258:84:28","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a434f0ad","id":5956,"implemented":false,"kind":"function","modifiers":[],"name":"getFeeSpecification","nameLocation":"3356:19:28","nodeType":"FunctionDefinition","parameters":{"id":5951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5950,"mutability":"mutable","name":"componentId","nameLocation":"3384:11:28","nodeType":"VariableDeclaration","scope":5956,"src":"3376:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5949,"name":"uint256","nodeType":"ElementaryTypeName","src":"3376:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3375:21:28"},"returnParameters":{"id":5955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5954,"mutability":"mutable","name":"feeSpecification","nameLocation":"3443:16:28","nodeType":"VariableDeclaration","scope":5956,"src":"3419:40:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":5953,"nodeType":"UserDefinedTypeName","pathNode":{"id":5952,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"3419:16:28"},"referencedDeclaration":5838,"src":"3419:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"3418:42:28"},"scope":5974,"src":"3347:114:28","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"8ccf5ca2","id":5961,"implemented":false,"kind":"function","modifiers":[],"name":"getFractionFullUnit","nameLocation":"3476:19:28","nodeType":"FunctionDefinition","parameters":{"id":5957,"nodeType":"ParameterList","parameters":[],"src":"3495:2:28"},"returnParameters":{"id":5960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5959,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5961,"src":"3520:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5958,"name":"uint256","nodeType":"ElementaryTypeName","src":"3520:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3519:9:28"},"scope":5974,"src":"3467:62:28","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a44330c4","id":5966,"implemented":false,"kind":"function","modifiers":[],"name":"getInstanceWallet","nameLocation":"3543:17:28","nodeType":"FunctionDefinition","parameters":{"id":5962,"nodeType":"ParameterList","parameters":[],"src":"3560:2:28"},"returnParameters":{"id":5965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5964,"mutability":"mutable","name":"instanceWalletAddress","nameLocation":"3593:21:28","nodeType":"VariableDeclaration","scope":5966,"src":"3585:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5963,"name":"address","nodeType":"ElementaryTypeName","src":"3585:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3584:31:28"},"scope":5974,"src":"3534:82:28","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"49081637","id":5973,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolWallet","nameLocation":"3630:17:28","nodeType":"FunctionDefinition","parameters":{"id":5969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5968,"mutability":"mutable","name":"riskpoolId","nameLocation":"3656:10:28","nodeType":"VariableDeclaration","scope":5973,"src":"3648:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5967,"name":"uint256","nodeType":"ElementaryTypeName","src":"3648:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3647:20:28"},"returnParameters":{"id":5972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5971,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"3698:21:28","nodeType":"VariableDeclaration","scope":5973,"src":"3690:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5970,"name":"address","nodeType":"ElementaryTypeName","src":"3690:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3689:31:28"},"scope":5974,"src":"3621:100:28","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5975,"src":"120:3604:28"}],"src":"39:3686:28"},"id":28},"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","exportedSymbols":{"IComponent":[2988],"IComponentOwnerService":[6009],"IRegistry":[5714]},"id":6010,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5976,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:29"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"../components/IComponent.sol","id":5977,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6010,"sourceUnit":2989,"src":"66:38:29","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6009,"linearizedBaseContracts":[6009],"name":"IComponentOwnerService","nameLocation":"118:22:29","nodeType":"ContractDefinition","nodes":[{"functionSelector":"01267951","id":5983,"implemented":false,"kind":"function","modifiers":[],"name":"propose","nameLocation":"159:7:29","nodeType":"FunctionDefinition","parameters":{"id":5981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5980,"mutability":"mutable","name":"component","nameLocation":"178:9:29","nodeType":"VariableDeclaration","scope":5983,"src":"167:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":5979,"nodeType":"UserDefinedTypeName","pathNode":{"id":5978,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"167:10:29"},"referencedDeclaration":2988,"src":"167:10:29","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"166:22:29"},"returnParameters":{"id":5982,"nodeType":"ParameterList","parameters":[],"src":"197:0:29"},"scope":6009,"src":"150:48:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a694fc3a","id":5988,"implemented":false,"kind":"function","modifiers":[],"name":"stake","nameLocation":"215:5:29","nodeType":"FunctionDefinition","parameters":{"id":5986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5985,"mutability":"mutable","name":"id","nameLocation":"229:2:29","nodeType":"VariableDeclaration","scope":5988,"src":"221:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5984,"name":"uint256","nodeType":"ElementaryTypeName","src":"221:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"220:12:29"},"returnParameters":{"id":5987,"nodeType":"ParameterList","parameters":[],"src":"241:0:29"},"scope":6009,"src":"206:36:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2e1a7d4d","id":5993,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"257:8:29","nodeType":"FunctionDefinition","parameters":{"id":5991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5990,"mutability":"mutable","name":"id","nameLocation":"274:2:29","nodeType":"VariableDeclaration","scope":5993,"src":"266:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5989,"name":"uint256","nodeType":"ElementaryTypeName","src":"266:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"265:12:29"},"returnParameters":{"id":5992,"nodeType":"ParameterList","parameters":[],"src":"286:0:29"},"scope":6009,"src":"248:39:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"136439dd","id":5998,"implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"304:5:29","nodeType":"FunctionDefinition","parameters":{"id":5996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5995,"mutability":"mutable","name":"id","nameLocation":"318:2:29","nodeType":"VariableDeclaration","scope":5998,"src":"310:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5994,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"309:12:29"},"returnParameters":{"id":5997,"nodeType":"ParameterList","parameters":[],"src":"330:0:29"},"scope":6009,"src":"295:36:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fabc1cbc","id":6003,"implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"347:7:29","nodeType":"FunctionDefinition","parameters":{"id":6001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6000,"mutability":"mutable","name":"id","nameLocation":"363:2:29","nodeType":"VariableDeclaration","scope":6003,"src":"355:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5999,"name":"uint256","nodeType":"ElementaryTypeName","src":"355:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"354:12:29"},"returnParameters":{"id":6002,"nodeType":"ParameterList","parameters":[],"src":"375:0:29"},"scope":6009,"src":"338:38:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"93c829fc","id":6008,"implemented":false,"kind":"function","modifiers":[],"name":"archive","nameLocation":"393:7:29","nodeType":"FunctionDefinition","parameters":{"id":6006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6005,"mutability":"mutable","name":"id","nameLocation":"409:2:29","nodeType":"VariableDeclaration","scope":6008,"src":"401:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6004,"name":"uint256","nodeType":"ElementaryTypeName","src":"401:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"400:12:29"},"returnParameters":{"id":6007,"nodeType":"ParameterList","parameters":[],"src":"421:0:29"},"scope":6009,"src":"384:38:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6010,"src":"108:317:29"}],"src":"40:385:29"},"id":29},"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","exportedSymbols":{"IERC20":[8831],"IInstanceOperatorService":[6160],"ITreasury":[5974]},"id":6161,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6011,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:30"},{"absolutePath":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","file":"../modules/ITreasury.sol","id":6012,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6161,"sourceUnit":5975,"src":"63:34:30","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6160,"linearizedBaseContracts":[6160],"name":"IInstanceOperatorService","nameLocation":"109:24:30","nodeType":"ContractDefinition","nodes":[{"functionSelector":"893917ea","id":6017,"implemented":false,"kind":"function","modifiers":[],"name":"prepareRelease","nameLocation":"166:14:30","nodeType":"FunctionDefinition","parameters":{"id":6015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6014,"mutability":"mutable","name":"newRelease","nameLocation":"189:10:30","nodeType":"VariableDeclaration","scope":6017,"src":"181:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"181:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"180:20:30"},"returnParameters":{"id":6016,"nodeType":"ParameterList","parameters":[],"src":"209:0:30"},"scope":6160,"src":"157:53:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d22057a9","id":6024,"implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"224:8:30","nodeType":"FunctionDefinition","parameters":{"id":6022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6019,"mutability":"mutable","name":"contractName","nameLocation":"241:12:30","nodeType":"VariableDeclaration","scope":6024,"src":"233:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"233:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6021,"mutability":"mutable","name":"contractAddress","nameLocation":"263:15:30","nodeType":"VariableDeclaration","scope":6024,"src":"255:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6020,"name":"address","nodeType":"ElementaryTypeName","src":"255:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"232:47:30"},"returnParameters":{"id":6023,"nodeType":"ParameterList","parameters":[],"src":"288:0:30"},"scope":6160,"src":"215:74:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"20813154","id":6029,"implemented":false,"kind":"function","modifiers":[],"name":"deregister","nameLocation":"303:10:30","nodeType":"FunctionDefinition","parameters":{"id":6027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6026,"mutability":"mutable","name":"contractName","nameLocation":"322:12:30","nodeType":"VariableDeclaration","scope":6029,"src":"314:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"314:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"313:22:30"},"returnParameters":{"id":6028,"nodeType":"ParameterList","parameters":[],"src":"344:0:30"},"scope":6160,"src":"294:51:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1d5e7314","id":6038,"implemented":false,"kind":"function","modifiers":[],"name":"registerInRelease","nameLocation":"359:17:30","nodeType":"FunctionDefinition","parameters":{"id":6036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6031,"mutability":"mutable","name":"release","nameLocation":"385:7:30","nodeType":"VariableDeclaration","scope":6038,"src":"377:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"377:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6033,"mutability":"mutable","name":"contractName","nameLocation":"402:12:30","nodeType":"VariableDeclaration","scope":6038,"src":"394:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6032,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6035,"mutability":"mutable","name":"contractAddress","nameLocation":"424:15:30","nodeType":"VariableDeclaration","scope":6038,"src":"416:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6034,"name":"address","nodeType":"ElementaryTypeName","src":"416:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"376:64:30"},"returnParameters":{"id":6037,"nodeType":"ParameterList","parameters":[],"src":"449:0:30"},"scope":6160,"src":"350:100:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"dc527b08","id":6045,"implemented":false,"kind":"function","modifiers":[],"name":"deregisterInRelease","nameLocation":"464:19:30","nodeType":"FunctionDefinition","parameters":{"id":6043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6040,"mutability":"mutable","name":"release","nameLocation":"492:7:30","nodeType":"VariableDeclaration","scope":6045,"src":"484:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"484:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6042,"mutability":"mutable","name":"contractName","nameLocation":"509:12:30","nodeType":"VariableDeclaration","scope":6045,"src":"501:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"501:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"483:39:30"},"returnParameters":{"id":6044,"nodeType":"ParameterList","parameters":[],"src":"531:0:30"},"scope":6160,"src":"455:77:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c42994a2","id":6050,"implemented":false,"kind":"function","modifiers":[],"name":"createRole","nameLocation":"561:10:30","nodeType":"FunctionDefinition","parameters":{"id":6048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6047,"mutability":"mutable","name":"role","nameLocation":"580:4:30","nodeType":"VariableDeclaration","scope":6050,"src":"572:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"572:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"571:14:30"},"returnParameters":{"id":6049,"nodeType":"ParameterList","parameters":[],"src":"594:0:30"},"scope":6160,"src":"552:43:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d17d0233","id":6055,"implemented":false,"kind":"function","modifiers":[],"name":"invalidateRole","nameLocation":"609:14:30","nodeType":"FunctionDefinition","parameters":{"id":6053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6052,"mutability":"mutable","name":"role","nameLocation":"632:4:30","nodeType":"VariableDeclaration","scope":6055,"src":"624:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6051,"name":"bytes32","nodeType":"ElementaryTypeName","src":"624:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"623:14:30"},"returnParameters":{"id":6054,"nodeType":"ParameterList","parameters":[],"src":"646:0:30"},"scope":6160,"src":"600:47:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2f2ff15d","id":6062,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"661:9:30","nodeType":"FunctionDefinition","parameters":{"id":6060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6057,"mutability":"mutable","name":"role","nameLocation":"679:4:30","nodeType":"VariableDeclaration","scope":6062,"src":"671:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"671:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6059,"mutability":"mutable","name":"principal","nameLocation":"693:9:30","nodeType":"VariableDeclaration","scope":6062,"src":"685:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6058,"name":"address","nodeType":"ElementaryTypeName","src":"685:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"670:33:30"},"returnParameters":{"id":6061,"nodeType":"ParameterList","parameters":[],"src":"712:0:30"},"scope":6160,"src":"652:61:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d547741f","id":6069,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"727:10:30","nodeType":"FunctionDefinition","parameters":{"id":6067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6064,"mutability":"mutable","name":"role","nameLocation":"746:4:30","nodeType":"VariableDeclaration","scope":6069,"src":"738:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"738:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6066,"mutability":"mutable","name":"principal","nameLocation":"760:9:30","nodeType":"VariableDeclaration","scope":6069,"src":"752:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6065,"name":"address","nodeType":"ElementaryTypeName","src":"752:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"737:33:30"},"returnParameters":{"id":6068,"nodeType":"ParameterList","parameters":[],"src":"779:0:30"},"scope":6160,"src":"718:62:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b759f954","id":6074,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"812:7:30","nodeType":"FunctionDefinition","parameters":{"id":6072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6071,"mutability":"mutable","name":"id","nameLocation":"828:2:30","nodeType":"VariableDeclaration","scope":6074,"src":"820:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6070,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:12:30"},"returnParameters":{"id":6073,"nodeType":"ParameterList","parameters":[],"src":"840:0:30"},"scope":6160,"src":"803:38:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a0355f4e","id":6079,"implemented":false,"kind":"function","modifiers":[],"name":"decline","nameLocation":"855:7:30","nodeType":"FunctionDefinition","parameters":{"id":6077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6076,"mutability":"mutable","name":"id","nameLocation":"871:2:30","nodeType":"VariableDeclaration","scope":6079,"src":"863:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6075,"name":"uint256","nodeType":"ElementaryTypeName","src":"863:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"862:12:30"},"returnParameters":{"id":6078,"nodeType":"ParameterList","parameters":[],"src":"883:0:30"},"scope":6160,"src":"846:38:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4b865846","id":6084,"implemented":false,"kind":"function","modifiers":[],"name":"suspend","nameLocation":"898:7:30","nodeType":"FunctionDefinition","parameters":{"id":6082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6081,"mutability":"mutable","name":"id","nameLocation":"914:2:30","nodeType":"VariableDeclaration","scope":6084,"src":"906:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6080,"name":"uint256","nodeType":"ElementaryTypeName","src":"906:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"905:12:30"},"returnParameters":{"id":6083,"nodeType":"ParameterList","parameters":[],"src":"926:0:30"},"scope":6160,"src":"889:38:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"414000b5","id":6089,"implemented":false,"kind":"function","modifiers":[],"name":"resume","nameLocation":"941:6:30","nodeType":"FunctionDefinition","parameters":{"id":6087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6086,"mutability":"mutable","name":"id","nameLocation":"956:2:30","nodeType":"VariableDeclaration","scope":6089,"src":"948:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6085,"name":"uint256","nodeType":"ElementaryTypeName","src":"948:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"947:12:30"},"returnParameters":{"id":6088,"nodeType":"ParameterList","parameters":[],"src":"968:0:30"},"scope":6160,"src":"932:37:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"93c829fc","id":6094,"implemented":false,"kind":"function","modifiers":[],"name":"archive","nameLocation":"983:7:30","nodeType":"FunctionDefinition","parameters":{"id":6092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6091,"mutability":"mutable","name":"id","nameLocation":"999:2:30","nodeType":"VariableDeclaration","scope":6094,"src":"991:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6090,"name":"uint256","nodeType":"ElementaryTypeName","src":"991:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"990:12:30"},"returnParameters":{"id":6093,"nodeType":"ParameterList","parameters":[],"src":"1011:0:30"},"scope":6160,"src":"974:38:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"394c78ba","id":6101,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultStaking","nameLocation":"1054:17:30","nodeType":"FunctionDefinition","parameters":{"id":6099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6096,"mutability":"mutable","name":"componentType","nameLocation":"1079:13:30","nodeType":"VariableDeclaration","scope":6101,"src":"1072:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6095,"name":"uint16","nodeType":"ElementaryTypeName","src":"1072:6:30","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":6098,"mutability":"mutable","name":"data","nameLocation":"1109:4:30","nodeType":"VariableDeclaration","scope":6101,"src":"1094:19:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6097,"name":"bytes","nodeType":"ElementaryTypeName","src":"1094:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1071:43:30"},"returnParameters":{"id":6100,"nodeType":"ParameterList","parameters":[],"src":"1123:0:30"},"scope":6160,"src":"1045:79:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"72beb6fb","id":6108,"implemented":false,"kind":"function","modifiers":[],"name":"adjustStakingRequirements","nameLocation":"1138:25:30","nodeType":"FunctionDefinition","parameters":{"id":6106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6103,"mutability":"mutable","name":"id","nameLocation":"1172:2:30","nodeType":"VariableDeclaration","scope":6108,"src":"1164:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6102,"name":"uint256","nodeType":"ElementaryTypeName","src":"1164:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6105,"mutability":"mutable","name":"data","nameLocation":"1191:4:30","nodeType":"VariableDeclaration","scope":6108,"src":"1176:19:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6104,"name":"bytes","nodeType":"ElementaryTypeName","src":"1176:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1163:33:30"},"returnParameters":{"id":6107,"nodeType":"ParameterList","parameters":[],"src":"1205:0:30"},"scope":6160,"src":"1129:77:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d5fe1f10","id":6111,"implemented":false,"kind":"function","modifiers":[],"name":"suspendTreasury","nameLocation":"1237:15:30","nodeType":"FunctionDefinition","parameters":{"id":6109,"nodeType":"ParameterList","parameters":[],"src":"1252:2:30"},"returnParameters":{"id":6110,"nodeType":"ParameterList","parameters":[],"src":"1263:0:30"},"scope":6160,"src":"1228:36:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"10a81c4a","id":6114,"implemented":false,"kind":"function","modifiers":[],"name":"resumeTreasury","nameLocation":"1278:14:30","nodeType":"FunctionDefinition","parameters":{"id":6112,"nodeType":"ParameterList","parameters":[],"src":"1292:2:30"},"returnParameters":{"id":6113,"nodeType":"ParameterList","parameters":[],"src":"1303:0:30"},"scope":6160,"src":"1269:35:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"cab2504d","id":6119,"implemented":false,"kind":"function","modifiers":[],"name":"setInstanceWallet","nameLocation":"1323:17:30","nodeType":"FunctionDefinition","parameters":{"id":6117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6116,"mutability":"mutable","name":"walletAddress","nameLocation":"1349:13:30","nodeType":"VariableDeclaration","scope":6119,"src":"1341:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6115,"name":"address","nodeType":"ElementaryTypeName","src":"1341:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1340:23:30"},"returnParameters":{"id":6118,"nodeType":"ParameterList","parameters":[],"src":"1372:0:30"},"scope":6160,"src":"1314:59:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"86039aed","id":6126,"implemented":false,"kind":"function","modifiers":[],"name":"setRiskpoolWallet","nameLocation":"1387:17:30","nodeType":"FunctionDefinition","parameters":{"id":6124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6121,"mutability":"mutable","name":"riskpoolId","nameLocation":"1413:10:30","nodeType":"VariableDeclaration","scope":6126,"src":"1405:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6120,"name":"uint256","nodeType":"ElementaryTypeName","src":"1405:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6123,"mutability":"mutable","name":"walletAddress","nameLocation":"1433:13:30","nodeType":"VariableDeclaration","scope":6126,"src":"1425:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6122,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1404:43:30"},"returnParameters":{"id":6125,"nodeType":"ParameterList","parameters":[],"src":"1456:0:30"},"scope":6160,"src":"1378:79:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"cc9cf8cd","id":6133,"implemented":false,"kind":"function","modifiers":[],"name":"setProductToken","nameLocation":"1473:15:30","nodeType":"FunctionDefinition","parameters":{"id":6131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6128,"mutability":"mutable","name":"productId","nameLocation":"1497:9:30","nodeType":"VariableDeclaration","scope":6133,"src":"1489:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6127,"name":"uint256","nodeType":"ElementaryTypeName","src":"1489:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6130,"mutability":"mutable","name":"erc20Address","nameLocation":"1516:12:30","nodeType":"VariableDeclaration","scope":6133,"src":"1508:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6129,"name":"address","nodeType":"ElementaryTypeName","src":"1508:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1488:41:30"},"returnParameters":{"id":6132,"nodeType":"ParameterList","parameters":[],"src":"1538:0:30"},"scope":6160,"src":"1464:75:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"01132a7f","id":6139,"implemented":false,"kind":"function","modifiers":[],"name":"setPremiumFees","nameLocation":"1555:14:30","nodeType":"FunctionDefinition","parameters":{"id":6137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6136,"mutability":"mutable","name":"feeSpec","nameLocation":"1606:7:30","nodeType":"VariableDeclaration","scope":6139,"src":"1570:43:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":6135,"nodeType":"UserDefinedTypeName","pathNode":{"id":6134,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"1570:26:30"},"referencedDeclaration":5838,"src":"1570:26:30","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"1569:45:30"},"returnParameters":{"id":6138,"nodeType":"ParameterList","parameters":[],"src":"1623:0:30"},"scope":6160,"src":"1546:78:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8ca946aa","id":6145,"implemented":false,"kind":"function","modifiers":[],"name":"setCapitalFees","nameLocation":"1638:14:30","nodeType":"FunctionDefinition","parameters":{"id":6143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6142,"mutability":"mutable","name":"feeSpec","nameLocation":"1689:7:30","nodeType":"VariableDeclaration","scope":6145,"src":"1653:43:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":6141,"nodeType":"UserDefinedTypeName","pathNode":{"id":6140,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"1653:26:30"},"referencedDeclaration":5838,"src":"1653:26:30","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"1652:45:30"},"returnParameters":{"id":6144,"nodeType":"ParameterList","parameters":[],"src":"1706:0:30"},"scope":6160,"src":"1629:78:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"62f0ab55","id":6159,"implemented":false,"kind":"function","modifiers":[],"name":"createFeeSpecification","nameLocation":"1726:22:30","nodeType":"FunctionDefinition","parameters":{"id":6154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6147,"mutability":"mutable","name":"componentId","nameLocation":"1766:11:30","nodeType":"VariableDeclaration","scope":6159,"src":"1758:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6146,"name":"uint256","nodeType":"ElementaryTypeName","src":"1758:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6149,"mutability":"mutable","name":"fixedFee","nameLocation":"1795:8:30","nodeType":"VariableDeclaration","scope":6159,"src":"1787:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6148,"name":"uint256","nodeType":"ElementaryTypeName","src":"1787:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6151,"mutability":"mutable","name":"fractionalFee","nameLocation":"1821:13:30","nodeType":"VariableDeclaration","scope":6159,"src":"1813:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6150,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6153,"mutability":"mutable","name":"feeCalculationData","nameLocation":"1859:18:30","nodeType":"VariableDeclaration","scope":6159,"src":"1844:33:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6152,"name":"bytes","nodeType":"ElementaryTypeName","src":"1844:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1748:135:30"},"returnParameters":{"id":6158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6159,"src":"1906:33:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":6156,"nodeType":"UserDefinedTypeName","pathNode":{"id":6155,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"1906:26:30"},"referencedDeclaration":5838,"src":"1906:26:30","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"1905:35:30"},"scope":6160,"src":"1717:224:30","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6161,"src":"99:1846:30"}],"src":"39:1907:30"},"id":30},"@etherisc/gif-interface/contracts/services/IInstanceService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","exportedSymbols":{"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974]},"id":6510,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6162,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:31"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"../components/IComponent.sol","id":6163,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":2989,"src":"63:38:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"../modules/IBundle.sol","id":6164,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":5021,"src":"102:32:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"../modules/IPolicy.sol","id":6165,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":5434,"src":"135:32:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPool.sol","file":"../modules/IPool.sol","id":6166,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":5550,"src":"168:30:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","file":"../tokens/IBundleToken.sol","id":6167,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6826,"src":"199:36:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","file":"./IComponentOwnerService.sol","id":6168,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6010,"src":"236:38:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","file":"./IInstanceOperatorService.sol","id":6169,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6161,"src":"275:40:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IOracleService.sol","file":"./IOracleService.sol","id":6170,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6520,"src":"316:30:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","file":"./IProductService.sol","id":6171,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6665,"src":"347:31:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","file":"./IRiskpoolService.sol","id":6172,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6771,"src":"379:32:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":6173,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":8832,"src":"413:56:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":6174,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":10157,"src":"470:58:31","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6509,"linearizedBaseContracts":[6509],"name":"IInstanceService","nameLocation":"540:16:31","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3408e470","id":6179,"implemented":false,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"589:10:31","nodeType":"FunctionDefinition","parameters":{"id":6175,"nodeType":"ParameterList","parameters":[],"src":"599:2:31"},"returnParameters":{"id":6178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6177,"mutability":"mutable","name":"chainId","nameLocation":"632:7:31","nodeType":"VariableDeclaration","scope":6179,"src":"624:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6176,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"623:17:31"},"scope":6509,"src":"580:61:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d722b0bc","id":6184,"implemented":false,"kind":"function","modifiers":[],"name":"getChainName","nameLocation":"655:12:31","nodeType":"FunctionDefinition","parameters":{"id":6180,"nodeType":"ParameterList","parameters":[],"src":"667:2:31"},"returnParameters":{"id":6183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6182,"mutability":"mutable","name":"chainName","nameLocation":"706:9:31","nodeType":"VariableDeclaration","scope":6184,"src":"692:23:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6181,"name":"string","nodeType":"ElementaryTypeName","src":"692:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"691:25:31"},"scope":6509,"src":"646:71:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1551100f","id":6189,"implemented":false,"kind":"function","modifiers":[],"name":"getInstanceId","nameLocation":"731:13:31","nodeType":"FunctionDefinition","parameters":{"id":6185,"nodeType":"ParameterList","parameters":[],"src":"744:2:31"},"returnParameters":{"id":6188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6187,"mutability":"mutable","name":"instanceId","nameLocation":"777:10:31","nodeType":"VariableDeclaration","scope":6189,"src":"769:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"769:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"768:20:31"},"scope":6509,"src":"722:67:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"39c6fa90","id":6194,"implemented":false,"kind":"function","modifiers":[],"name":"getInstanceOperator","nameLocation":"803:19:31","nodeType":"FunctionDefinition","parameters":{"id":6190,"nodeType":"ParameterList","parameters":[],"src":"822:2:31"},"returnParameters":{"id":6193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6192,"mutability":"mutable","name":"instanceOperator","nameLocation":"855:16:31","nodeType":"VariableDeclaration","scope":6194,"src":"847:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6191,"name":"address","nodeType":"ElementaryTypeName","src":"847:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"846:26:31"},"scope":6509,"src":"794:79:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6fa29853","id":6200,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentOwnerService","nameLocation":"904:24:31","nodeType":"FunctionDefinition","parameters":{"id":6195,"nodeType":"ParameterList","parameters":[],"src":"928:2:31"},"returnParameters":{"id":6199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6198,"mutability":"mutable","name":"service","nameLocation":"976:7:31","nodeType":"VariableDeclaration","scope":6200,"src":"953:30:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":6197,"nodeType":"UserDefinedTypeName","pathNode":{"id":6196,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"953:22:31"},"referencedDeclaration":6009,"src":"953:22:31","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"internal"}],"src":"952:32:31"},"scope":6509,"src":"895:90:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"091924dc","id":6206,"implemented":false,"kind":"function","modifiers":[],"name":"getInstanceOperatorService","nameLocation":"999:26:31","nodeType":"FunctionDefinition","parameters":{"id":6201,"nodeType":"ParameterList","parameters":[],"src":"1025:2:31"},"returnParameters":{"id":6205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6204,"mutability":"mutable","name":"service","nameLocation":"1075:7:31","nodeType":"VariableDeclaration","scope":6206,"src":"1050:32:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceOperatorService_$6160","typeString":"contract IInstanceOperatorService"},"typeName":{"id":6203,"nodeType":"UserDefinedTypeName","pathNode":{"id":6202,"name":"IInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":6160,"src":"1050:24:31"},"referencedDeclaration":6160,"src":"1050:24:31","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceOperatorService_$6160","typeString":"contract IInstanceOperatorService"}},"visibility":"internal"}],"src":"1049:34:31"},"scope":6509,"src":"990:94:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a7ecda36","id":6212,"implemented":false,"kind":"function","modifiers":[],"name":"getOracleService","nameLocation":"1098:16:31","nodeType":"FunctionDefinition","parameters":{"id":6207,"nodeType":"ParameterList","parameters":[],"src":"1114:2:31"},"returnParameters":{"id":6211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6210,"mutability":"mutable","name":"service","nameLocation":"1154:7:31","nodeType":"VariableDeclaration","scope":6212,"src":"1139:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"},"typeName":{"id":6209,"nodeType":"UserDefinedTypeName","pathNode":{"id":6208,"name":"IOracleService","nodeType":"IdentifierPath","referencedDeclaration":6519,"src":"1139:14:31"},"referencedDeclaration":6519,"src":"1139:14:31","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"visibility":"internal"}],"src":"1138:24:31"},"scope":6509,"src":"1089:74:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4288121d","id":6218,"implemented":false,"kind":"function","modifiers":[],"name":"getProductService","nameLocation":"1177:17:31","nodeType":"FunctionDefinition","parameters":{"id":6213,"nodeType":"ParameterList","parameters":[],"src":"1194:2:31"},"returnParameters":{"id":6217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6216,"mutability":"mutable","name":"service","nameLocation":"1235:7:31","nodeType":"VariableDeclaration","scope":6218,"src":"1219:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"},"typeName":{"id":6215,"nodeType":"UserDefinedTypeName","pathNode":{"id":6214,"name":"IProductService","nodeType":"IdentifierPath","referencedDeclaration":6664,"src":"1219:15:31"},"referencedDeclaration":6664,"src":"1219:15:31","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"visibility":"internal"}],"src":"1218:25:31"},"scope":6509,"src":"1168:76:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"442ed817","id":6224,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolService","nameLocation":"1258:18:31","nodeType":"FunctionDefinition","parameters":{"id":6219,"nodeType":"ParameterList","parameters":[],"src":"1276:2:31"},"returnParameters":{"id":6223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6222,"mutability":"mutable","name":"service","nameLocation":"1318:7:31","nodeType":"VariableDeclaration","scope":6224,"src":"1301:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"},"typeName":{"id":6221,"nodeType":"UserDefinedTypeName","pathNode":{"id":6220,"name":"IRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":6770,"src":"1301:16:31"},"referencedDeclaration":6770,"src":"1301:16:31","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"visibility":"internal"}],"src":"1300:26:31"},"scope":6509,"src":"1249:78:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6c0f79b6","id":6229,"implemented":false,"kind":"function","modifiers":[],"name":"contracts","nameLocation":"1341:9:31","nodeType":"FunctionDefinition","parameters":{"id":6225,"nodeType":"ParameterList","parameters":[],"src":"1350:2:31"},"returnParameters":{"id":6228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6227,"mutability":"mutable","name":"numberOfContracts","nameLocation":"1384:17:31","nodeType":"VariableDeclaration","scope":6229,"src":"1376:25:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6226,"name":"uint256","nodeType":"ElementaryTypeName","src":"1376:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1375:27:31"},"scope":6509,"src":"1332:71:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f6b3e7d0","id":6236,"implemented":false,"kind":"function","modifiers":[],"name":"contractName","nameLocation":"1417:12:31","nodeType":"FunctionDefinition","parameters":{"id":6232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6231,"mutability":"mutable","name":"idx","nameLocation":"1438:3:31","nodeType":"VariableDeclaration","scope":6236,"src":"1430:11:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6230,"name":"uint256","nodeType":"ElementaryTypeName","src":"1430:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1429:13:31"},"returnParameters":{"id":6235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6234,"mutability":"mutable","name":"name","nameLocation":"1474:4:31","nodeType":"VariableDeclaration","scope":6236,"src":"1466:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6233,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1466:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1465:14:31"},"scope":6509,"src":"1408:72:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"52a9c8d7","id":6241,"implemented":false,"kind":"function","modifiers":[],"name":"getDefaultAdminRole","nameLocation":"1509:19:31","nodeType":"FunctionDefinition","parameters":{"id":6237,"nodeType":"ParameterList","parameters":[],"src":"1528:2:31"},"returnParameters":{"id":6240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6239,"mutability":"mutable","name":"role","nameLocation":"1561:4:31","nodeType":"VariableDeclaration","scope":6241,"src":"1553:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1553:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1552:14:31"},"scope":6509,"src":"1500:67:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"775a4048","id":6246,"implemented":false,"kind":"function","modifiers":[],"name":"getProductOwnerRole","nameLocation":"1581:19:31","nodeType":"FunctionDefinition","parameters":{"id":6242,"nodeType":"ParameterList","parameters":[],"src":"1600:2:31"},"returnParameters":{"id":6245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6244,"mutability":"mutable","name":"role","nameLocation":"1633:4:31","nodeType":"VariableDeclaration","scope":6246,"src":"1625:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1625:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1624:14:31"},"scope":6509,"src":"1572:67:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d49d21c0","id":6251,"implemented":false,"kind":"function","modifiers":[],"name":"getOracleProviderRole","nameLocation":"1653:21:31","nodeType":"FunctionDefinition","parameters":{"id":6247,"nodeType":"ParameterList","parameters":[],"src":"1674:2:31"},"returnParameters":{"id":6250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6249,"mutability":"mutable","name":"role","nameLocation":"1707:4:31","nodeType":"VariableDeclaration","scope":6251,"src":"1699:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6248,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1699:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1698:14:31"},"scope":6509,"src":"1644:69:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3ffdd2f3","id":6256,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolKeeperRole","nameLocation":"1727:21:31","nodeType":"FunctionDefinition","parameters":{"id":6252,"nodeType":"ParameterList","parameters":[],"src":"1748:2:31"},"returnParameters":{"id":6255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6254,"mutability":"mutable","name":"role","nameLocation":"1781:4:31","nodeType":"VariableDeclaration","scope":6256,"src":"1773:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1773:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1772:14:31"},"scope":6509,"src":"1718:69:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"91d14854","id":6265,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1801:7:31","nodeType":"FunctionDefinition","parameters":{"id":6261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6258,"mutability":"mutable","name":"role","nameLocation":"1817:4:31","nodeType":"VariableDeclaration","scope":6265,"src":"1809:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1809:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6260,"mutability":"mutable","name":"principal","nameLocation":"1831:9:31","nodeType":"VariableDeclaration","scope":6265,"src":"1823:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6259,"name":"address","nodeType":"ElementaryTypeName","src":"1823:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1808:33:31"},"returnParameters":{"id":6264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6263,"mutability":"mutable","name":"roleIsAssigned","nameLocation":"1870:14:31","nodeType":"VariableDeclaration","scope":6265,"src":"1865:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6262,"name":"bool","nodeType":"ElementaryTypeName","src":"1865:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1864:21:31"},"scope":6509,"src":"1792:94:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c71e261f","id":6270,"implemented":false,"kind":"function","modifiers":[],"name":"products","nameLocation":"1922:8:31","nodeType":"FunctionDefinition","parameters":{"id":6266,"nodeType":"ParameterList","parameters":[],"src":"1930:2:31"},"returnParameters":{"id":6269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6268,"mutability":"mutable","name":"numberOfProducts","nameLocation":"1963:16:31","nodeType":"VariableDeclaration","scope":6270,"src":"1955:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6267,"name":"uint256","nodeType":"ElementaryTypeName","src":"1955:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1954:26:31"},"scope":6509,"src":"1913:68:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2857373a","id":6275,"implemented":false,"kind":"function","modifiers":[],"name":"oracles","nameLocation":"1995:7:31","nodeType":"FunctionDefinition","parameters":{"id":6271,"nodeType":"ParameterList","parameters":[],"src":"2002:2:31"},"returnParameters":{"id":6274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6273,"mutability":"mutable","name":"numberOfOracles","nameLocation":"2035:15:31","nodeType":"VariableDeclaration","scope":6275,"src":"2027:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6272,"name":"uint256","nodeType":"ElementaryTypeName","src":"2027:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2026:25:31"},"scope":6509,"src":"1986:66:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a054381f","id":6280,"implemented":false,"kind":"function","modifiers":[],"name":"riskpools","nameLocation":"2066:9:31","nodeType":"FunctionDefinition","parameters":{"id":6276,"nodeType":"ParameterList","parameters":[],"src":"2075:2:31"},"returnParameters":{"id":6279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6278,"mutability":"mutable","name":"numberOfRiskpools","nameLocation":"2108:17:31","nodeType":"VariableDeclaration","scope":6280,"src":"2100:25:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6277,"name":"uint256","nodeType":"ElementaryTypeName","src":"2100:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2099:27:31"},"scope":6509,"src":"2057:70:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2b1c7f73","id":6287,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentId","nameLocation":"2142:14:31","nodeType":"FunctionDefinition","parameters":{"id":6283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6282,"mutability":"mutable","name":"componentAddress","nameLocation":"2165:16:31","nodeType":"VariableDeclaration","scope":6287,"src":"2157:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6281,"name":"address","nodeType":"ElementaryTypeName","src":"2157:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2156:26:31"},"returnParameters":{"id":6286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6285,"mutability":"mutable","name":"componentId","nameLocation":"2213:11:31","nodeType":"VariableDeclaration","scope":6287,"src":"2205:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6284,"name":"uint256","nodeType":"ElementaryTypeName","src":"2205:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2204:21:31"},"scope":6509,"src":"2133:93:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4f27da18","id":6295,"implemented":false,"kind":"function","modifiers":[],"name":"getComponent","nameLocation":"2240:12:31","nodeType":"FunctionDefinition","parameters":{"id":6290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6289,"mutability":"mutable","name":"componentId","nameLocation":"2261:11:31","nodeType":"VariableDeclaration","scope":6295,"src":"2253:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6288,"name":"uint256","nodeType":"ElementaryTypeName","src":"2253:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2252:21:31"},"returnParameters":{"id":6294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6293,"mutability":"mutable","name":"component","nameLocation":"2307:9:31","nodeType":"VariableDeclaration","scope":6295,"src":"2296:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":6292,"nodeType":"UserDefinedTypeName","pathNode":{"id":6291,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"2296:10:31"},"referencedDeclaration":2988,"src":"2296:10:31","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"2295:22:31"},"scope":6509,"src":"2231:87:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"dd51c86a","id":6303,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentType","nameLocation":"2332:16:31","nodeType":"FunctionDefinition","parameters":{"id":6298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6297,"mutability":"mutable","name":"componentId","nameLocation":"2357:11:31","nodeType":"VariableDeclaration","scope":6303,"src":"2349:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6296,"name":"uint256","nodeType":"ElementaryTypeName","src":"2349:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2348:21:31"},"returnParameters":{"id":6302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6301,"mutability":"mutable","name":"componentType","nameLocation":"2417:13:31","nodeType":"VariableDeclaration","scope":6303,"src":"2392:38:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":6300,"nodeType":"UserDefinedTypeName","pathNode":{"id":6299,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"2392:24:31"},"referencedDeclaration":2891,"src":"2392:24:31","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"2391:40:31"},"scope":6509,"src":"2323:109:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5e966e45","id":6311,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentState","nameLocation":"2446:17:31","nodeType":"FunctionDefinition","parameters":{"id":6306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6305,"mutability":"mutable","name":"componentId","nameLocation":"2472:11:31","nodeType":"VariableDeclaration","scope":6311,"src":"2464:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6304,"name":"uint256","nodeType":"ElementaryTypeName","src":"2464:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2463:21:31"},"returnParameters":{"id":6310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6309,"mutability":"mutable","name":"componentState","nameLocation":"2533:14:31","nodeType":"VariableDeclaration","scope":6311,"src":"2507:40:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":6308,"nodeType":"UserDefinedTypeName","pathNode":{"id":6307,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"2507:25:31"},"referencedDeclaration":2899,"src":"2507:25:31","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"2506:42:31"},"scope":6509,"src":"2437:112:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ab9c6ee4","id":6318,"implemented":false,"kind":"function","modifiers":[],"name":"getStakingRequirements","nameLocation":"2587:22:31","nodeType":"FunctionDefinition","parameters":{"id":6314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6313,"mutability":"mutable","name":"componentId","nameLocation":"2618:11:31","nodeType":"VariableDeclaration","scope":6318,"src":"2610:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6312,"name":"uint256","nodeType":"ElementaryTypeName","src":"2610:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2609:21:31"},"returnParameters":{"id":6317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6316,"mutability":"mutable","name":"data","nameLocation":"2666:4:31","nodeType":"VariableDeclaration","scope":6318,"src":"2653:17:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6315,"name":"bytes","nodeType":"ElementaryTypeName","src":"2653:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2652:19:31"},"scope":6509,"src":"2578:94:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3a42b053","id":6325,"implemented":false,"kind":"function","modifiers":[],"name":"getStakedAssets","nameLocation":"2686:15:31","nodeType":"FunctionDefinition","parameters":{"id":6321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6320,"mutability":"mutable","name":"componentId","nameLocation":"2710:11:31","nodeType":"VariableDeclaration","scope":6325,"src":"2702:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6319,"name":"uint256","nodeType":"ElementaryTypeName","src":"2702:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2701:21:31"},"returnParameters":{"id":6324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6323,"mutability":"mutable","name":"data","nameLocation":"2758:4:31","nodeType":"VariableDeclaration","scope":6325,"src":"2745:17:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6322,"name":"bytes","nodeType":"ElementaryTypeName","src":"2745:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2744:19:31"},"scope":6509,"src":"2677:87:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"eb802114","id":6333,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpool","nameLocation":"2795:11:31","nodeType":"FunctionDefinition","parameters":{"id":6328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6327,"mutability":"mutable","name":"riskpoolId","nameLocation":"2815:10:31","nodeType":"VariableDeclaration","scope":6333,"src":"2807:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6326,"name":"uint256","nodeType":"ElementaryTypeName","src":"2807:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2806:20:31"},"returnParameters":{"id":6332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6331,"mutability":"mutable","name":"riskPool","nameLocation":"2867:8:31","nodeType":"VariableDeclaration","scope":6333,"src":"2849:26:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":6330,"nodeType":"UserDefinedTypeName","pathNode":{"id":6329,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"2849:10:31"},"referencedDeclaration":5502,"src":"2849:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"src":"2848:28:31"},"scope":6509,"src":"2786:91:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f1d354d0","id":6338,"implemented":false,"kind":"function","modifiers":[],"name":"getFullCollateralizationLevel","nameLocation":"2891:29:31","nodeType":"FunctionDefinition","parameters":{"id":6334,"nodeType":"ParameterList","parameters":[],"src":"2920:2:31"},"returnParameters":{"id":6337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6338,"src":"2946:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6335,"name":"uint256","nodeType":"ElementaryTypeName","src":"2946:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2945:9:31"},"scope":6509,"src":"2882:73:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"29560980","id":6345,"implemented":false,"kind":"function","modifiers":[],"name":"getCapital","nameLocation":"2969:10:31","nodeType":"FunctionDefinition","parameters":{"id":6341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6340,"mutability":"mutable","name":"riskpoolId","nameLocation":"2988:10:31","nodeType":"VariableDeclaration","scope":6345,"src":"2980:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6339,"name":"uint256","nodeType":"ElementaryTypeName","src":"2980:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2979:20:31"},"returnParameters":{"id":6344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6343,"mutability":"mutable","name":"capitalAmount","nameLocation":"3030:13:31","nodeType":"VariableDeclaration","scope":6345,"src":"3022:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6342,"name":"uint256","nodeType":"ElementaryTypeName","src":"3022:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:23:31"},"scope":6509,"src":"2960:85:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3f5d9235","id":6352,"implemented":false,"kind":"function","modifiers":[],"name":"getTotalValueLocked","nameLocation":"3059:19:31","nodeType":"FunctionDefinition","parameters":{"id":6348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6347,"mutability":"mutable","name":"riskpoolId","nameLocation":"3087:10:31","nodeType":"VariableDeclaration","scope":6352,"src":"3079:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6346,"name":"uint256","nodeType":"ElementaryTypeName","src":"3079:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3078:20:31"},"returnParameters":{"id":6351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6350,"mutability":"mutable","name":"totalValueLockedAmount","nameLocation":"3129:22:31","nodeType":"VariableDeclaration","scope":6352,"src":"3121:30:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6349,"name":"uint256","nodeType":"ElementaryTypeName","src":"3121:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3120:32:31"},"scope":6509,"src":"3050:103:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"bcd5349f","id":6359,"implemented":false,"kind":"function","modifiers":[],"name":"getCapacity","nameLocation":"3167:11:31","nodeType":"FunctionDefinition","parameters":{"id":6355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6354,"mutability":"mutable","name":"riskpoolId","nameLocation":"3187:10:31","nodeType":"VariableDeclaration","scope":6359,"src":"3179:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6353,"name":"uint256","nodeType":"ElementaryTypeName","src":"3179:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3178:20:31"},"returnParameters":{"id":6358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6357,"mutability":"mutable","name":"capacityAmount","nameLocation":"3229:14:31","nodeType":"VariableDeclaration","scope":6359,"src":"3221:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6356,"name":"uint256","nodeType":"ElementaryTypeName","src":"3221:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3220:24:31"},"scope":6509,"src":"3158:87:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1e010439","id":6366,"implemented":false,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"3259:10:31","nodeType":"FunctionDefinition","parameters":{"id":6362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6361,"mutability":"mutable","name":"riskpoolId","nameLocation":"3278:10:31","nodeType":"VariableDeclaration","scope":6366,"src":"3270:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6360,"name":"uint256","nodeType":"ElementaryTypeName","src":"3270:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3269:20:31"},"returnParameters":{"id":6365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6364,"mutability":"mutable","name":"balanceAmount","nameLocation":"3320:13:31","nodeType":"VariableDeclaration","scope":6366,"src":"3312:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6363,"name":"uint256","nodeType":"ElementaryTypeName","src":"3312:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3311:23:31"},"scope":6509,"src":"3250:85:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a4266a66","id":6373,"implemented":false,"kind":"function","modifiers":[],"name":"activeBundles","nameLocation":"3350:13:31","nodeType":"FunctionDefinition","parameters":{"id":6369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6368,"mutability":"mutable","name":"riskpoolId","nameLocation":"3372:10:31","nodeType":"VariableDeclaration","scope":6373,"src":"3364:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6367,"name":"uint256","nodeType":"ElementaryTypeName","src":"3364:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3363:20:31"},"returnParameters":{"id":6372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6371,"mutability":"mutable","name":"numberOfActiveBundles","nameLocation":"3414:21:31","nodeType":"VariableDeclaration","scope":6373,"src":"3406:29:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6370,"name":"uint256","nodeType":"ElementaryTypeName","src":"3406:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3405:31:31"},"scope":6509,"src":"3341:96:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ec833b0c","id":6382,"implemented":false,"kind":"function","modifiers":[],"name":"getActiveBundleId","nameLocation":"3451:17:31","nodeType":"FunctionDefinition","parameters":{"id":6378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6375,"mutability":"mutable","name":"riskpoolId","nameLocation":"3477:10:31","nodeType":"VariableDeclaration","scope":6382,"src":"3469:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6374,"name":"uint256","nodeType":"ElementaryTypeName","src":"3469:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6377,"mutability":"mutable","name":"bundleIdx","nameLocation":"3497:9:31","nodeType":"VariableDeclaration","scope":6382,"src":"3489:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6376,"name":"uint256","nodeType":"ElementaryTypeName","src":"3489:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3468:39:31"},"returnParameters":{"id":6381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6380,"mutability":"mutable","name":"bundleId","nameLocation":"3538:8:31","nodeType":"VariableDeclaration","scope":6382,"src":"3530:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6379,"name":"uint256","nodeType":"ElementaryTypeName","src":"3530:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3529:18:31"},"scope":6509,"src":"3442:106:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7db32844","id":6389,"implemented":false,"kind":"function","modifiers":[],"name":"getMaximumNumberOfActiveBundles","nameLocation":"3562:31:31","nodeType":"FunctionDefinition","parameters":{"id":6385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6384,"mutability":"mutable","name":"riskpoolId","nameLocation":"3602:10:31","nodeType":"VariableDeclaration","scope":6389,"src":"3594:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6383,"name":"uint256","nodeType":"ElementaryTypeName","src":"3594:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3593:20:31"},"returnParameters":{"id":6388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6387,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"3644:28:31","nodeType":"VariableDeclaration","scope":6389,"src":"3636:36:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6386,"name":"uint256","nodeType":"ElementaryTypeName","src":"3636:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3635:38:31"},"scope":6509,"src":"3553:121:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"eb35783c","id":6395,"implemented":false,"kind":"function","modifiers":[],"name":"getBundleToken","nameLocation":"3704:14:31","nodeType":"FunctionDefinition","parameters":{"id":6390,"nodeType":"ParameterList","parameters":[],"src":"3718:2:31"},"returnParameters":{"id":6394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6393,"mutability":"mutable","name":"token","nameLocation":"3756:5:31","nodeType":"VariableDeclaration","scope":6395,"src":"3743:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"},"typeName":{"id":6392,"nodeType":"UserDefinedTypeName","pathNode":{"id":6391,"name":"IBundleToken","nodeType":"IdentifierPath","referencedDeclaration":6825,"src":"3743:12:31"},"referencedDeclaration":6825,"src":"3743:12:31","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"visibility":"internal"}],"src":"3742:20:31"},"scope":6509,"src":"3695:68:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18442e63","id":6400,"implemented":false,"kind":"function","modifiers":[],"name":"bundles","nameLocation":"3777:7:31","nodeType":"FunctionDefinition","parameters":{"id":6396,"nodeType":"ParameterList","parameters":[],"src":"3784:2:31"},"returnParameters":{"id":6399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6398,"mutability":"mutable","name":"numberOfBundles","nameLocation":"3817:15:31","nodeType":"VariableDeclaration","scope":6400,"src":"3809:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6397,"name":"uint256","nodeType":"ElementaryTypeName","src":"3809:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3808:25:31"},"scope":6509,"src":"3768:66:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2d0821b7","id":6408,"implemented":false,"kind":"function","modifiers":[],"name":"getBundle","nameLocation":"3848:9:31","nodeType":"FunctionDefinition","parameters":{"id":6403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6402,"mutability":"mutable","name":"bundleId","nameLocation":"3866:8:31","nodeType":"VariableDeclaration","scope":6408,"src":"3858:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6401,"name":"uint256","nodeType":"ElementaryTypeName","src":"3858:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3857:18:31"},"returnParameters":{"id":6407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6406,"mutability":"mutable","name":"bundle","nameLocation":"3920:6:31","nodeType":"VariableDeclaration","scope":6408,"src":"3898:28:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":6405,"nodeType":"UserDefinedTypeName","pathNode":{"id":6404,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"3898:14:31"},"referencedDeclaration":4936,"src":"3898:14:31","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"src":"3897:30:31"},"scope":6509,"src":"3839:89:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c559783e","id":6415,"implemented":false,"kind":"function","modifiers":[],"name":"unburntBundles","nameLocation":"3942:14:31","nodeType":"FunctionDefinition","parameters":{"id":6411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6410,"mutability":"mutable","name":"riskpoolId","nameLocation":"3965:10:31","nodeType":"VariableDeclaration","scope":6415,"src":"3957:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6409,"name":"uint256","nodeType":"ElementaryTypeName","src":"3957:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3956:20:31"},"returnParameters":{"id":6414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6413,"mutability":"mutable","name":"numberOfUnburntBundles","nameLocation":"4007:22:31","nodeType":"VariableDeclaration","scope":6415,"src":"3999:30:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6412,"name":"uint256","nodeType":"ElementaryTypeName","src":"3999:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3998:32:31"},"scope":6509,"src":"3933:98:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a427056e","id":6420,"implemented":false,"kind":"function","modifiers":[],"name":"processIds","nameLocation":"4060:10:31","nodeType":"FunctionDefinition","parameters":{"id":6416,"nodeType":"ParameterList","parameters":[],"src":"4070:2:31"},"returnParameters":{"id":6419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6418,"mutability":"mutable","name":"numberOfProcessIds","nameLocation":"4103:18:31","nodeType":"VariableDeclaration","scope":6420,"src":"4095:26:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6417,"name":"uint256","nodeType":"ElementaryTypeName","src":"4095:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4094:28:31"},"scope":6509,"src":"4051:72:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a5961b4c","id":6428,"implemented":false,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"4137:11:31","nodeType":"FunctionDefinition","parameters":{"id":6423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6422,"mutability":"mutable","name":"processId","nameLocation":"4157:9:31","nodeType":"VariableDeclaration","scope":6428,"src":"4149:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4149:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4148:19:31"},"returnParameters":{"id":6427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6426,"mutability":"mutable","name":"metadata","nameLocation":"4214:8:31","nodeType":"VariableDeclaration","scope":6428,"src":"4190:32:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":6425,"nodeType":"UserDefinedTypeName","pathNode":{"id":6424,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"4190:16:31"},"referencedDeclaration":5248,"src":"4190:16:31","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"src":"4189:34:31"},"scope":6509,"src":"4128:96:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"bc506f64","id":6436,"implemented":false,"kind":"function","modifiers":[],"name":"getApplication","nameLocation":"4238:14:31","nodeType":"FunctionDefinition","parameters":{"id":6431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6430,"mutability":"mutable","name":"processId","nameLocation":"4261:9:31","nodeType":"VariableDeclaration","scope":6436,"src":"4253:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4253:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4252:19:31"},"returnParameters":{"id":6435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6434,"mutability":"mutable","name":"application","nameLocation":"4321:11:31","nodeType":"VariableDeclaration","scope":6436,"src":"4294:38:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":6433,"nodeType":"UserDefinedTypeName","pathNode":{"id":6432,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"4294:19:31"},"referencedDeclaration":5262,"src":"4294:19:31","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"4293:40:31"},"scope":6509,"src":"4229:105:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a3f685f9","id":6444,"implemented":false,"kind":"function","modifiers":[],"name":"getPolicy","nameLocation":"4348:9:31","nodeType":"FunctionDefinition","parameters":{"id":6439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6438,"mutability":"mutable","name":"processId","nameLocation":"4366:9:31","nodeType":"VariableDeclaration","scope":6444,"src":"4358:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4358:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4357:19:31"},"returnParameters":{"id":6443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6442,"mutability":"mutable","name":"policy","nameLocation":"4421:6:31","nodeType":"VariableDeclaration","scope":6444,"src":"4399:28:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":6441,"nodeType":"UserDefinedTypeName","pathNode":{"id":6440,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"4399:14:31"},"referencedDeclaration":5282,"src":"4399:14:31","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"src":"4398:30:31"},"scope":6509,"src":"4339:90:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"eff0f592","id":6451,"implemented":false,"kind":"function","modifiers":[],"name":"claims","nameLocation":"4443:6:31","nodeType":"FunctionDefinition","parameters":{"id":6447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6446,"mutability":"mutable","name":"processId","nameLocation":"4458:9:31","nodeType":"VariableDeclaration","scope":6451,"src":"4450:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4450:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4449:19:31"},"returnParameters":{"id":6450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6449,"mutability":"mutable","name":"numberOfClaims","nameLocation":"4499:14:31","nodeType":"VariableDeclaration","scope":6451,"src":"4491:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6448,"name":"uint256","nodeType":"ElementaryTypeName","src":"4491:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4490:24:31"},"scope":6509,"src":"4434:81:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"aeddb905","id":6458,"implemented":false,"kind":"function","modifiers":[],"name":"payouts","nameLocation":"4529:7:31","nodeType":"FunctionDefinition","parameters":{"id":6454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6453,"mutability":"mutable","name":"processId","nameLocation":"4545:9:31","nodeType":"VariableDeclaration","scope":6458,"src":"4537:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4537:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4536:19:31"},"returnParameters":{"id":6457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6456,"mutability":"mutable","name":"numberOfPayouts","nameLocation":"4586:15:31","nodeType":"VariableDeclaration","scope":6458,"src":"4578:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6455,"name":"uint256","nodeType":"ElementaryTypeName","src":"4578:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4577:25:31"},"scope":6509,"src":"4520:83:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7f22c2d9","id":6468,"implemented":false,"kind":"function","modifiers":[],"name":"getClaim","nameLocation":"4618:8:31","nodeType":"FunctionDefinition","parameters":{"id":6463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6460,"mutability":"mutable","name":"processId","nameLocation":"4635:9:31","nodeType":"VariableDeclaration","scope":6468,"src":"4627:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4627:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6462,"mutability":"mutable","name":"claimId","nameLocation":"4654:7:31","nodeType":"VariableDeclaration","scope":6468,"src":"4646:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6461,"name":"uint256","nodeType":"ElementaryTypeName","src":"4646:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4626:36:31"},"returnParameters":{"id":6467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6466,"mutability":"mutable","name":"claim","nameLocation":"4707:5:31","nodeType":"VariableDeclaration","scope":6468,"src":"4686:26:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":6465,"nodeType":"UserDefinedTypeName","pathNode":{"id":6464,"name":"IPolicy.Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"4686:13:31"},"referencedDeclaration":5296,"src":"4686:13:31","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"src":"4685:28:31"},"scope":6509,"src":"4609:105:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"cef58f13","id":6478,"implemented":false,"kind":"function","modifiers":[],"name":"getPayout","nameLocation":"4728:9:31","nodeType":"FunctionDefinition","parameters":{"id":6473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6470,"mutability":"mutable","name":"processId","nameLocation":"4746:9:31","nodeType":"VariableDeclaration","scope":6478,"src":"4738:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4738:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6472,"mutability":"mutable","name":"payoutId","nameLocation":"4765:8:31","nodeType":"VariableDeclaration","scope":6478,"src":"4757:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6471,"name":"uint256","nodeType":"ElementaryTypeName","src":"4757:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4737:37:31"},"returnParameters":{"id":6477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6476,"mutability":"mutable","name":"payout","nameLocation":"4820:6:31","nodeType":"VariableDeclaration","scope":6478,"src":"4798:28:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":6475,"nodeType":"UserDefinedTypeName","pathNode":{"id":6474,"name":"IPolicy.Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"4798:14:31"},"referencedDeclaration":5310,"src":"4798:14:31","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"src":"4797:30:31"},"scope":6509,"src":"4719:109:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e0024604","id":6483,"implemented":false,"kind":"function","modifiers":[],"name":"getTreasuryAddress","nameLocation":"4859:18:31","nodeType":"FunctionDefinition","parameters":{"id":6479,"nodeType":"ParameterList","parameters":[],"src":"4877:2:31"},"returnParameters":{"id":6482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6481,"mutability":"mutable","name":"treasuryAddress","nameLocation":"4910:15:31","nodeType":"VariableDeclaration","scope":6483,"src":"4902:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6480,"name":"address","nodeType":"ElementaryTypeName","src":"4902:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4901:25:31"},"scope":6509,"src":"4850:77:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a44330c4","id":6488,"implemented":false,"kind":"function","modifiers":[],"name":"getInstanceWallet","nameLocation":"4943:17:31","nodeType":"FunctionDefinition","parameters":{"id":6484,"nodeType":"ParameterList","parameters":[],"src":"4960:2:31"},"returnParameters":{"id":6487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6486,"mutability":"mutable","name":"walletAddress","nameLocation":"4993:13:31","nodeType":"VariableDeclaration","scope":6488,"src":"4985:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6485,"name":"address","nodeType":"ElementaryTypeName","src":"4985:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4984:23:31"},"scope":6509,"src":"4934:74:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"49081637","id":6495,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolWallet","nameLocation":"5022:17:31","nodeType":"FunctionDefinition","parameters":{"id":6491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6490,"mutability":"mutable","name":"riskpoolId","nameLocation":"5048:10:31","nodeType":"VariableDeclaration","scope":6495,"src":"5040:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6489,"name":"uint256","nodeType":"ElementaryTypeName","src":"5040:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5039:20:31"},"returnParameters":{"id":6494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6493,"mutability":"mutable","name":"walletAddress","nameLocation":"5090:13:31","nodeType":"VariableDeclaration","scope":6495,"src":"5082:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6492,"name":"address","nodeType":"ElementaryTypeName","src":"5082:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5081:23:31"},"scope":6509,"src":"5013:92:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"038696bb","id":6503,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentToken","nameLocation":"5121:17:31","nodeType":"FunctionDefinition","parameters":{"id":6498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6497,"mutability":"mutable","name":"componentId","nameLocation":"5147:11:31","nodeType":"VariableDeclaration","scope":6503,"src":"5139:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6496,"name":"uint256","nodeType":"ElementaryTypeName","src":"5139:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5138:21:31"},"returnParameters":{"id":6502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6501,"mutability":"mutable","name":"token","nameLocation":"5189:5:31","nodeType":"VariableDeclaration","scope":6503,"src":"5182:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":6500,"nodeType":"UserDefinedTypeName","pathNode":{"id":6499,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"5182:6:31"},"referencedDeclaration":8831,"src":"5182:6:31","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"5181:14:31"},"scope":6509,"src":"5112:84:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6319112b","id":6508,"implemented":false,"kind":"function","modifiers":[],"name":"getFeeFractionFullUnit","nameLocation":"5210:22:31","nodeType":"FunctionDefinition","parameters":{"id":6504,"nodeType":"ParameterList","parameters":[],"src":"5232:2:31"},"returnParameters":{"id":6507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6506,"mutability":"mutable","name":"fullUnit","nameLocation":"5265:8:31","nodeType":"VariableDeclaration","scope":6508,"src":"5257:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6505,"name":"uint256","nodeType":"ElementaryTypeName","src":"5257:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5256:18:31"},"scope":6509,"src":"5201:74:31","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6510,"src":"530:4748:31"}],"src":"39:5240:31"},"id":31},"@etherisc/gif-interface/contracts/services/IOracleService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IOracleService.sol","exportedSymbols":{"IOracleService":[6519]},"id":6520,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6511,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:32"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6519,"linearizedBaseContracts":[6519],"name":"IOracleService","nameLocation":"73:14:32","nodeType":"ContractDefinition","nodes":[{"functionSelector":"e409534a","id":6518,"implemented":false,"kind":"function","modifiers":[],"name":"respond","nameLocation":"104:7:32","nodeType":"FunctionDefinition","parameters":{"id":6516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6513,"mutability":"mutable","name":"requestId","nameLocation":"120:9:32","nodeType":"VariableDeclaration","scope":6518,"src":"112:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6512,"name":"uint256","nodeType":"ElementaryTypeName","src":"112:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6515,"mutability":"mutable","name":"data","nameLocation":"146:4:32","nodeType":"VariableDeclaration","scope":6518,"src":"131:19:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6514,"name":"bytes","nodeType":"ElementaryTypeName","src":"131:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"111:40:32"},"returnParameters":{"id":6517,"nodeType":"ParameterList","parameters":[],"src":"160:0:32"},"scope":6519,"src":"95:66:32","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6520,"src":"63:100:32"}],"src":"39:125:32"},"id":32},"@etherisc/gif-interface/contracts/services/IProductService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","exportedSymbols":{"IProductService":[6664]},"id":6665,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6521,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:33"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6664,"linearizedBaseContracts":[6664],"name":"IProductService","nameLocation":"73:15:33","nodeType":"ContractDefinition","nodes":[{"functionSelector":"93b8414a","id":6536,"implemented":false,"kind":"function","modifiers":[],"name":"newApplication","nameLocation":"105:14:33","nodeType":"FunctionDefinition","parameters":{"id":6532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6523,"mutability":"mutable","name":"owner","nameLocation":"137:5:33","nodeType":"VariableDeclaration","scope":6536,"src":"129:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6522,"name":"address","nodeType":"ElementaryTypeName","src":"129:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6525,"mutability":"mutable","name":"premiumAmount","nameLocation":"160:13:33","nodeType":"VariableDeclaration","scope":6536,"src":"152:21:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6524,"name":"uint256","nodeType":"ElementaryTypeName","src":"152:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6527,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"191:16:33","nodeType":"VariableDeclaration","scope":6536,"src":"183:24:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6526,"name":"uint256","nodeType":"ElementaryTypeName","src":"183:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6529,"mutability":"mutable","name":"metaData","nameLocation":"232:8:33","nodeType":"VariableDeclaration","scope":6536,"src":"217:23:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6528,"name":"bytes","nodeType":"ElementaryTypeName","src":"217:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6531,"mutability":"mutable","name":"applicationData","nameLocation":"266:15:33","nodeType":"VariableDeclaration","scope":6536,"src":"251:30:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6530,"name":"bytes","nodeType":"ElementaryTypeName","src":"251:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"119:169:33"},"returnParameters":{"id":6535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6534,"mutability":"mutable","name":"processId","nameLocation":"314:9:33","nodeType":"VariableDeclaration","scope":6536,"src":"306:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"305:19:33"},"scope":6664,"src":"96:229:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e3ebdea5","id":6549,"implemented":false,"kind":"function","modifiers":[],"name":"collectPremium","nameLocation":"340:14:33","nodeType":"FunctionDefinition","parameters":{"id":6541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6538,"mutability":"mutable","name":"processId","nameLocation":"363:9:33","nodeType":"VariableDeclaration","scope":6549,"src":"355:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"355:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6540,"mutability":"mutable","name":"amount","nameLocation":"382:6:33","nodeType":"VariableDeclaration","scope":6549,"src":"374:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6539,"name":"uint256","nodeType":"ElementaryTypeName","src":"374:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"354:35:33"},"returnParameters":{"id":6548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6543,"mutability":"mutable","name":"success","nameLocation":"433:7:33","nodeType":"VariableDeclaration","scope":6549,"src":"428:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6542,"name":"bool","nodeType":"ElementaryTypeName","src":"428:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6545,"mutability":"mutable","name":"feeAmount","nameLocation":"462:9:33","nodeType":"VariableDeclaration","scope":6549,"src":"454:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6544,"name":"uint256","nodeType":"ElementaryTypeName","src":"454:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6547,"mutability":"mutable","name":"netPremiumAmount","nameLocation":"493:16:33","nodeType":"VariableDeclaration","scope":6549,"src":"485:24:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6546,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"414:105:33"},"scope":6664,"src":"331:189:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"30a73da5","id":6558,"implemented":false,"kind":"function","modifiers":[],"name":"adjustPremiumSumInsured","nameLocation":"539:23:33","nodeType":"FunctionDefinition","parameters":{"id":6556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6551,"mutability":"mutable","name":"processId","nameLocation":"580:9:33","nodeType":"VariableDeclaration","scope":6558,"src":"572:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"572:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6553,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"608:21:33","nodeType":"VariableDeclaration","scope":6558,"src":"600:29:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6552,"name":"uint256","nodeType":"ElementaryTypeName","src":"600:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6555,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"647:16:33","nodeType":"VariableDeclaration","scope":6558,"src":"639:24:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6554,"name":"uint256","nodeType":"ElementaryTypeName","src":"639:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"562:107:33"},"returnParameters":{"id":6557,"nodeType":"ParameterList","parameters":[],"src":"678:0:33"},"scope":6664,"src":"530:149:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b75c7dc6","id":6563,"implemented":false,"kind":"function","modifiers":[],"name":"revoke","nameLocation":"694:6:33","nodeType":"FunctionDefinition","parameters":{"id":6561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6560,"mutability":"mutable","name":"processId","nameLocation":"709:9:33","nodeType":"VariableDeclaration","scope":6563,"src":"701:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"701:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"700:19:33"},"returnParameters":{"id":6562,"nodeType":"ParameterList","parameters":[],"src":"728:0:33"},"scope":6664,"src":"685:44:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1b07b17f","id":6570,"implemented":false,"kind":"function","modifiers":[],"name":"underwrite","nameLocation":"743:10:33","nodeType":"FunctionDefinition","parameters":{"id":6566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6565,"mutability":"mutable","name":"processId","nameLocation":"762:9:33","nodeType":"VariableDeclaration","scope":6570,"src":"754:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"754:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"753:19:33"},"returnParameters":{"id":6569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6568,"mutability":"mutable","name":"success","nameLocation":"795:7:33","nodeType":"VariableDeclaration","scope":6570,"src":"790:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6567,"name":"bool","nodeType":"ElementaryTypeName","src":"790:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"789:14:33"},"scope":6664,"src":"734:70:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8cc7d3d1","id":6575,"implemented":false,"kind":"function","modifiers":[],"name":"decline","nameLocation":"818:7:33","nodeType":"FunctionDefinition","parameters":{"id":6573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6572,"mutability":"mutable","name":"processId","nameLocation":"834:9:33","nodeType":"VariableDeclaration","scope":6575,"src":"826:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6571,"name":"bytes32","nodeType":"ElementaryTypeName","src":"826:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"825:19:33"},"returnParameters":{"id":6574,"nodeType":"ParameterList","parameters":[],"src":"853:0:33"},"scope":6664,"src":"809:45:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c6441798","id":6580,"implemented":false,"kind":"function","modifiers":[],"name":"expire","nameLocation":"868:6:33","nodeType":"FunctionDefinition","parameters":{"id":6578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6577,"mutability":"mutable","name":"processId","nameLocation":"883:9:33","nodeType":"VariableDeclaration","scope":6580,"src":"875:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6576,"name":"bytes32","nodeType":"ElementaryTypeName","src":"875:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"874:19:33"},"returnParameters":{"id":6579,"nodeType":"ParameterList","parameters":[],"src":"902:0:33"},"scope":6664,"src":"859:44:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"39c79e0c","id":6585,"implemented":false,"kind":"function","modifiers":[],"name":"close","nameLocation":"917:5:33","nodeType":"FunctionDefinition","parameters":{"id":6583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6582,"mutability":"mutable","name":"processId","nameLocation":"931:9:33","nodeType":"VariableDeclaration","scope":6585,"src":"923:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"923:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"922:19:33"},"returnParameters":{"id":6584,"nodeType":"ParameterList","parameters":[],"src":"950:0:33"},"scope":6664,"src":"908:43:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fae43d15","id":6596,"implemented":false,"kind":"function","modifiers":[],"name":"newClaim","nameLocation":"966:8:33","nodeType":"FunctionDefinition","parameters":{"id":6592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6587,"mutability":"mutable","name":"processId","nameLocation":"992:9:33","nodeType":"VariableDeclaration","scope":6596,"src":"984:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6586,"name":"bytes32","nodeType":"ElementaryTypeName","src":"984:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6589,"mutability":"mutable","name":"claimAmount","nameLocation":"1020:11:33","nodeType":"VariableDeclaration","scope":6596,"src":"1012:19:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6588,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6591,"mutability":"mutable","name":"data","nameLocation":"1056:4:33","nodeType":"VariableDeclaration","scope":6596,"src":"1041:19:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6590,"name":"bytes","nodeType":"ElementaryTypeName","src":"1041:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"974:92:33"},"returnParameters":{"id":6595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6594,"mutability":"mutable","name":"claimId","nameLocation":"1092:7:33","nodeType":"VariableDeclaration","scope":6596,"src":"1084:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6593,"name":"uint256","nodeType":"ElementaryTypeName","src":"1084:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1083:17:33"},"scope":6664,"src":"957:144:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4e02c63f","id":6605,"implemented":false,"kind":"function","modifiers":[],"name":"confirmClaim","nameLocation":"1116:12:33","nodeType":"FunctionDefinition","parameters":{"id":6603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6598,"mutability":"mutable","name":"processId","nameLocation":"1146:9:33","nodeType":"VariableDeclaration","scope":6605,"src":"1138:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1138:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6600,"mutability":"mutable","name":"claimId","nameLocation":"1174:7:33","nodeType":"VariableDeclaration","scope":6605,"src":"1166:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6599,"name":"uint256","nodeType":"ElementaryTypeName","src":"1166:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6602,"mutability":"mutable","name":"confirmedAmount","nameLocation":"1200:15:33","nodeType":"VariableDeclaration","scope":6605,"src":"1192:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6601,"name":"uint256","nodeType":"ElementaryTypeName","src":"1192:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1128:93:33"},"returnParameters":{"id":6604,"nodeType":"ParameterList","parameters":[],"src":"1230:0:33"},"scope":6664,"src":"1107:124:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4cda0de9","id":6612,"implemented":false,"kind":"function","modifiers":[],"name":"declineClaim","nameLocation":"1246:12:33","nodeType":"FunctionDefinition","parameters":{"id":6610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6607,"mutability":"mutable","name":"processId","nameLocation":"1267:9:33","nodeType":"VariableDeclaration","scope":6612,"src":"1259:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1259:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6609,"mutability":"mutable","name":"claimId","nameLocation":"1286:7:33","nodeType":"VariableDeclaration","scope":6612,"src":"1278:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6608,"name":"uint256","nodeType":"ElementaryTypeName","src":"1278:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1258:36:33"},"returnParameters":{"id":6611,"nodeType":"ParameterList","parameters":[],"src":"1303:0:33"},"scope":6664,"src":"1237:67:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7f29dba2","id":6619,"implemented":false,"kind":"function","modifiers":[],"name":"closeClaim","nameLocation":"1318:10:33","nodeType":"FunctionDefinition","parameters":{"id":6617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6614,"mutability":"mutable","name":"processId","nameLocation":"1337:9:33","nodeType":"VariableDeclaration","scope":6619,"src":"1329:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1329:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6616,"mutability":"mutable","name":"claimId","nameLocation":"1356:7:33","nodeType":"VariableDeclaration","scope":6619,"src":"1348:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6615,"name":"uint256","nodeType":"ElementaryTypeName","src":"1348:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1328:36:33"},"returnParameters":{"id":6618,"nodeType":"ParameterList","parameters":[],"src":"1373:0:33"},"scope":6664,"src":"1309:65:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"781d7846","id":6632,"implemented":false,"kind":"function","modifiers":[],"name":"newPayout","nameLocation":"1389:9:33","nodeType":"FunctionDefinition","parameters":{"id":6628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6621,"mutability":"mutable","name":"processId","nameLocation":"1416:9:33","nodeType":"VariableDeclaration","scope":6632,"src":"1408:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1408:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6623,"mutability":"mutable","name":"claimId","nameLocation":"1444:7:33","nodeType":"VariableDeclaration","scope":6632,"src":"1436:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6622,"name":"uint256","nodeType":"ElementaryTypeName","src":"1436:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6625,"mutability":"mutable","name":"amount","nameLocation":"1470:6:33","nodeType":"VariableDeclaration","scope":6632,"src":"1462:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6624,"name":"uint256","nodeType":"ElementaryTypeName","src":"1462:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6627,"mutability":"mutable","name":"data","nameLocation":"1501:4:33","nodeType":"VariableDeclaration","scope":6632,"src":"1486:19:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6626,"name":"bytes","nodeType":"ElementaryTypeName","src":"1486:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1398:113:33"},"returnParameters":{"id":6631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6630,"mutability":"mutable","name":"payoutId","nameLocation":"1537:8:33","nodeType":"VariableDeclaration","scope":6632,"src":"1529:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6629,"name":"uint256","nodeType":"ElementaryTypeName","src":"1529:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1528:18:33"},"scope":6664,"src":"1380:167:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fe64372b","id":6643,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"1562:13:33","nodeType":"FunctionDefinition","parameters":{"id":6637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6634,"mutability":"mutable","name":"processId","nameLocation":"1584:9:33","nodeType":"VariableDeclaration","scope":6643,"src":"1576:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6633,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1576:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6636,"mutability":"mutable","name":"payoutId","nameLocation":"1603:8:33","nodeType":"VariableDeclaration","scope":6643,"src":"1595:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6635,"name":"uint256","nodeType":"ElementaryTypeName","src":"1595:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1575:37:33"},"returnParameters":{"id":6642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6639,"mutability":"mutable","name":"feeAmount","nameLocation":"1659:9:33","nodeType":"VariableDeclaration","scope":6643,"src":"1651:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6638,"name":"uint256","nodeType":"ElementaryTypeName","src":"1651:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6641,"mutability":"mutable","name":"netPayoutAmount","nameLocation":"1690:15:33","nodeType":"VariableDeclaration","scope":6643,"src":"1682:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6640,"name":"uint256","nodeType":"ElementaryTypeName","src":"1682:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1637:78:33"},"scope":6664,"src":"1553:163:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2c933f22","id":6658,"implemented":false,"kind":"function","modifiers":[],"name":"request","nameLocation":"1731:7:33","nodeType":"FunctionDefinition","parameters":{"id":6654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6645,"mutability":"mutable","name":"processId","nameLocation":"1756:9:33","nodeType":"VariableDeclaration","scope":6658,"src":"1748:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1748:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6647,"mutability":"mutable","name":"data","nameLocation":"1790:4:33","nodeType":"VariableDeclaration","scope":6658,"src":"1775:19:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6646,"name":"bytes","nodeType":"ElementaryTypeName","src":"1775:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6649,"mutability":"mutable","name":"callbackMethodName","nameLocation":"1820:18:33","nodeType":"VariableDeclaration","scope":6658,"src":"1804:34:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":6648,"name":"string","nodeType":"ElementaryTypeName","src":"1804:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6651,"mutability":"mutable","name":"callbackContractAddress","nameLocation":"1856:23:33","nodeType":"VariableDeclaration","scope":6658,"src":"1848:31:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6650,"name":"address","nodeType":"ElementaryTypeName","src":"1848:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6653,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"1897:19:33","nodeType":"VariableDeclaration","scope":6658,"src":"1889:27:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6652,"name":"uint256","nodeType":"ElementaryTypeName","src":"1889:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1738:184:33"},"returnParameters":{"id":6657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6656,"mutability":"mutable","name":"requestId","nameLocation":"1948:9:33","nodeType":"VariableDeclaration","scope":6658,"src":"1940:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6655,"name":"uint256","nodeType":"ElementaryTypeName","src":"1940:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1939:19:33"},"scope":6664,"src":"1722:237:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3015394c","id":6663,"implemented":false,"kind":"function","modifiers":[],"name":"cancelRequest","nameLocation":"1974:13:33","nodeType":"FunctionDefinition","parameters":{"id":6661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6660,"mutability":"mutable","name":"requestId","nameLocation":"1996:9:33","nodeType":"VariableDeclaration","scope":6663,"src":"1988:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6659,"name":"uint256","nodeType":"ElementaryTypeName","src":"1988:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1987:19:33"},"returnParameters":{"id":6662,"nodeType":"ParameterList","parameters":[],"src":"2015:0:33"},"scope":6664,"src":"1965:51:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6665,"src":"63:1955:33"}],"src":"39:1980:33"},"id":33},"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","exportedSymbols":{"IRiskpoolService":[6770]},"id":6771,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6666,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:34"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6770,"linearizedBaseContracts":[6770],"name":"IRiskpoolService","nameLocation":"73:16:34","nodeType":"ContractDefinition","nodes":[{"functionSelector":"bf2e3546","id":6677,"implemented":false,"kind":"function","modifiers":[],"name":"registerRiskpool","nameLocation":"106:16:34","nodeType":"FunctionDefinition","parameters":{"id":6675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6668,"mutability":"mutable","name":"wallet","nameLocation":"140:6:34","nodeType":"VariableDeclaration","scope":6677,"src":"132:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6667,"name":"address","nodeType":"ElementaryTypeName","src":"132:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6670,"mutability":"mutable","name":"erc20Token","nameLocation":"164:10:34","nodeType":"VariableDeclaration","scope":6677,"src":"156:18:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6669,"name":"address","nodeType":"ElementaryTypeName","src":"156:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6672,"mutability":"mutable","name":"collateralization","nameLocation":"192:17:34","nodeType":"VariableDeclaration","scope":6677,"src":"184:25:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6671,"name":"uint256","nodeType":"ElementaryTypeName","src":"184:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6674,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"228:18:34","nodeType":"VariableDeclaration","scope":6677,"src":"220:26:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6673,"name":"uint256","nodeType":"ElementaryTypeName","src":"220:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"122:130:34"},"returnParameters":{"id":6676,"nodeType":"ParameterList","parameters":[],"src":"261:0:34"},"scope":6770,"src":"97:165:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"15fc1e74","id":6688,"implemented":false,"kind":"function","modifiers":[],"name":"createBundle","nameLocation":"277:12:34","nodeType":"FunctionDefinition","parameters":{"id":6684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6679,"mutability":"mutable","name":"owner_","nameLocation":"298:6:34","nodeType":"VariableDeclaration","scope":6688,"src":"290:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6678,"name":"address","nodeType":"ElementaryTypeName","src":"290:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6681,"mutability":"mutable","name":"filter_","nameLocation":"321:7:34","nodeType":"VariableDeclaration","scope":6688,"src":"306:22:34","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6680,"name":"bytes","nodeType":"ElementaryTypeName","src":"306:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6683,"mutability":"mutable","name":"amount_","nameLocation":"338:7:34","nodeType":"VariableDeclaration","scope":6688,"src":"330:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6682,"name":"uint256","nodeType":"ElementaryTypeName","src":"330:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"289:57:34"},"returnParameters":{"id":6687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6686,"mutability":"mutable","name":"bundleId","nameLocation":"372:8:34","nodeType":"VariableDeclaration","scope":6688,"src":"364:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6685,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"363:18:34"},"scope":6770,"src":"268:114:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"89002da5","id":6697,"implemented":false,"kind":"function","modifiers":[],"name":"fundBundle","nameLocation":"396:10:34","nodeType":"FunctionDefinition","parameters":{"id":6693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6690,"mutability":"mutable","name":"bundleId","nameLocation":"415:8:34","nodeType":"VariableDeclaration","scope":6697,"src":"407:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6689,"name":"uint256","nodeType":"ElementaryTypeName","src":"407:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6692,"mutability":"mutable","name":"amount","nameLocation":"433:6:34","nodeType":"VariableDeclaration","scope":6697,"src":"425:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6691,"name":"uint256","nodeType":"ElementaryTypeName","src":"425:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"406:34:34"},"returnParameters":{"id":6696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6695,"mutability":"mutable","name":"netAmount","nameLocation":"466:9:34","nodeType":"VariableDeclaration","scope":6697,"src":"458:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6694,"name":"uint256","nodeType":"ElementaryTypeName","src":"458:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"457:19:34"},"scope":6770,"src":"387:90:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"36153f3a","id":6706,"implemented":false,"kind":"function","modifiers":[],"name":"defundBundle","nameLocation":"491:12:34","nodeType":"FunctionDefinition","parameters":{"id":6702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6699,"mutability":"mutable","name":"bundleId","nameLocation":"512:8:34","nodeType":"VariableDeclaration","scope":6706,"src":"504:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6698,"name":"uint256","nodeType":"ElementaryTypeName","src":"504:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6701,"mutability":"mutable","name":"amount","nameLocation":"530:6:34","nodeType":"VariableDeclaration","scope":6706,"src":"522:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6700,"name":"uint256","nodeType":"ElementaryTypeName","src":"522:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"503:34:34"},"returnParameters":{"id":6705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6704,"mutability":"mutable","name":"netAmount","nameLocation":"563:9:34","nodeType":"VariableDeclaration","scope":6706,"src":"555:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6703,"name":"uint256","nodeType":"ElementaryTypeName","src":"555:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"554:19:34"},"scope":6770,"src":"482:92:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a17030d5","id":6711,"implemented":false,"kind":"function","modifiers":[],"name":"lockBundle","nameLocation":"589:10:34","nodeType":"FunctionDefinition","parameters":{"id":6709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6708,"mutability":"mutable","name":"bundleId","nameLocation":"608:8:34","nodeType":"VariableDeclaration","scope":6711,"src":"600:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6707,"name":"uint256","nodeType":"ElementaryTypeName","src":"600:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"599:18:34"},"returnParameters":{"id":6710,"nodeType":"ParameterList","parameters":[],"src":"626:0:34"},"scope":6770,"src":"580:47:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"316c5348","id":6716,"implemented":false,"kind":"function","modifiers":[],"name":"unlockBundle","nameLocation":"641:12:34","nodeType":"FunctionDefinition","parameters":{"id":6714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6713,"mutability":"mutable","name":"bundleId","nameLocation":"662:8:34","nodeType":"VariableDeclaration","scope":6716,"src":"654:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6712,"name":"uint256","nodeType":"ElementaryTypeName","src":"654:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"653:18:34"},"returnParameters":{"id":6715,"nodeType":"ParameterList","parameters":[],"src":"680:0:34"},"scope":6770,"src":"632:49:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8c483e5a","id":6721,"implemented":false,"kind":"function","modifiers":[],"name":"closeBundle","nameLocation":"695:11:34","nodeType":"FunctionDefinition","parameters":{"id":6719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6718,"mutability":"mutable","name":"bundleId","nameLocation":"715:8:34","nodeType":"VariableDeclaration","scope":6721,"src":"707:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6717,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"706:18:34"},"returnParameters":{"id":6720,"nodeType":"ParameterList","parameters":[],"src":"733:0:34"},"scope":6770,"src":"686:48:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"587e59d0","id":6726,"implemented":false,"kind":"function","modifiers":[],"name":"burnBundle","nameLocation":"748:10:34","nodeType":"FunctionDefinition","parameters":{"id":6724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6723,"mutability":"mutable","name":"bundleId","nameLocation":"767:8:34","nodeType":"VariableDeclaration","scope":6726,"src":"759:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6722,"name":"uint256","nodeType":"ElementaryTypeName","src":"759:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"758:18:34"},"returnParameters":{"id":6725,"nodeType":"ParameterList","parameters":[],"src":"785:0:34"},"scope":6770,"src":"739:47:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4d03f9b7","id":6735,"implemented":false,"kind":"function","modifiers":[],"name":"collateralizePolicy","nameLocation":"801:19:34","nodeType":"FunctionDefinition","parameters":{"id":6733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6728,"mutability":"mutable","name":"bundleId","nameLocation":"829:8:34","nodeType":"VariableDeclaration","scope":6735,"src":"821:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6727,"name":"uint256","nodeType":"ElementaryTypeName","src":"821:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6730,"mutability":"mutable","name":"processId","nameLocation":"847:9:34","nodeType":"VariableDeclaration","scope":6735,"src":"839:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"839:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6732,"mutability":"mutable","name":"collateralAmount","nameLocation":"866:16:34","nodeType":"VariableDeclaration","scope":6735,"src":"858:24:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6731,"name":"uint256","nodeType":"ElementaryTypeName","src":"858:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"820:63:34"},"returnParameters":{"id":6734,"nodeType":"ParameterList","parameters":[],"src":"892:0:34"},"scope":6770,"src":"792:101:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b7267420","id":6744,"implemented":false,"kind":"function","modifiers":[],"name":"processPremium","nameLocation":"907:14:34","nodeType":"FunctionDefinition","parameters":{"id":6742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6737,"mutability":"mutable","name":"bundleId","nameLocation":"930:8:34","nodeType":"VariableDeclaration","scope":6744,"src":"922:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6736,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6739,"mutability":"mutable","name":"processId","nameLocation":"948:9:34","nodeType":"VariableDeclaration","scope":6744,"src":"940:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6738,"name":"bytes32","nodeType":"ElementaryTypeName","src":"940:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6741,"mutability":"mutable","name":"amount","nameLocation":"967:6:34","nodeType":"VariableDeclaration","scope":6744,"src":"959:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6740,"name":"uint256","nodeType":"ElementaryTypeName","src":"959:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"921:53:34"},"returnParameters":{"id":6743,"nodeType":"ParameterList","parameters":[],"src":"983:0:34"},"scope":6770,"src":"898:86:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b299cc26","id":6753,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"998:13:34","nodeType":"FunctionDefinition","parameters":{"id":6751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6746,"mutability":"mutable","name":"bundleId","nameLocation":"1020:8:34","nodeType":"VariableDeclaration","scope":6753,"src":"1012:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6745,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6748,"mutability":"mutable","name":"processId","nameLocation":"1038:9:34","nodeType":"VariableDeclaration","scope":6753,"src":"1030:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6747,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1030:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6750,"mutability":"mutable","name":"amount","nameLocation":"1057:6:34","nodeType":"VariableDeclaration","scope":6753,"src":"1049:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6749,"name":"uint256","nodeType":"ElementaryTypeName","src":"1049:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1011:53:34"},"returnParameters":{"id":6752,"nodeType":"ParameterList","parameters":[],"src":"1073:0:34"},"scope":6770,"src":"989:85:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"bb540df6","id":6762,"implemented":false,"kind":"function","modifiers":[],"name":"releasePolicy","nameLocation":"1088:13:34","nodeType":"FunctionDefinition","parameters":{"id":6758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6755,"mutability":"mutable","name":"bundleId","nameLocation":"1110:8:34","nodeType":"VariableDeclaration","scope":6762,"src":"1102:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6754,"name":"uint256","nodeType":"ElementaryTypeName","src":"1102:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6757,"mutability":"mutable","name":"processId","nameLocation":"1128:9:34","nodeType":"VariableDeclaration","scope":6762,"src":"1120:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1120:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1101:37:34"},"returnParameters":{"id":6761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6760,"mutability":"mutable","name":"collateralAmount","nameLocation":"1164:16:34","nodeType":"VariableDeclaration","scope":6762,"src":"1156:24:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6759,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1155:26:34"},"scope":6770,"src":"1079:103:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2127fd48","id":6769,"implemented":false,"kind":"function","modifiers":[],"name":"setMaximumNumberOfActiveBundles","nameLocation":"1197:31:34","nodeType":"FunctionDefinition","parameters":{"id":6767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6764,"mutability":"mutable","name":"riskpoolId","nameLocation":"1237:10:34","nodeType":"VariableDeclaration","scope":6769,"src":"1229:18:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6763,"name":"uint256","nodeType":"ElementaryTypeName","src":"1229:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6766,"mutability":"mutable","name":"maxNumberOfActiveBundles","nameLocation":"1257:24:34","nodeType":"VariableDeclaration","scope":6769,"src":"1249:32:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6765,"name":"uint256","nodeType":"ElementaryTypeName","src":"1249:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1228:54:34"},"returnParameters":{"id":6768,"nodeType":"ParameterList","parameters":[],"src":"1291:0:34"},"scope":6770,"src":"1188:104:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6771,"src":"63:1231:34"}],"src":"39:1257:34"},"id":34},"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol","exportedSymbols":{"ICoreProxy":[6779]},"id":6780,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6772,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:35"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":true,"id":6779,"linearizedBaseContracts":[6779],"name":"ICoreProxy","nameLocation":"76:10:35","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":6778,"name":"LogCoreContractUpgraded","nameLocation":"102:23:35","nodeType":"EventDefinition","parameters":{"id":6777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6774,"indexed":false,"mutability":"mutable","name":"oldImplementation","nameLocation":"145:17:35","nodeType":"VariableDeclaration","scope":6778,"src":"137:25:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6773,"name":"address","nodeType":"ElementaryTypeName","src":"137:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6776,"indexed":false,"mutability":"mutable","name":"newImplemntation","nameLocation":"182:16:35","nodeType":"VariableDeclaration","scope":6778,"src":"174:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6775,"name":"address","nodeType":"ElementaryTypeName","src":"174:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"126:79:35"},"src":"96:110:35"}],"scope":6780,"src":"66:145:35"}],"src":"40:173:35"},"id":35},"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","exportedSymbols":{"IBundleToken":[6825],"IERC165":[10840],"IERC721":[10156]},"id":6826,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6781,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:36"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":6782,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6826,"sourceUnit":10157,"src":"63:58:36","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6783,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":10156,"src":"153:7:36"},"id":6784,"nodeType":"InheritanceSpecifier","src":"153:7:36"}],"contractDependencies":[10156,10840],"contractKind":"interface","fullyImplemented":false,"id":6825,"linearizedBaseContracts":[6825,10156,10840],"name":"IBundleToken","nameLocation":"133:12:36","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":6792,"name":"LogBundleTokenMinted","nameLocation":"173:20:36","nodeType":"EventDefinition","parameters":{"id":6791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6786,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"202:8:36","nodeType":"VariableDeclaration","scope":6792,"src":"194:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6785,"name":"uint256","nodeType":"ElementaryTypeName","src":"194:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6788,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"220:7:36","nodeType":"VariableDeclaration","scope":6792,"src":"212:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6787,"name":"uint256","nodeType":"ElementaryTypeName","src":"212:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6790,"indexed":false,"mutability":"mutable","name":"tokenOwner","nameLocation":"237:10:36","nodeType":"VariableDeclaration","scope":6792,"src":"229:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6789,"name":"address","nodeType":"ElementaryTypeName","src":"229:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"193:55:36"},"src":"167:82:36"},{"anonymous":false,"id":6798,"name":"LogBundleTokenBurned","nameLocation":"260:20:36","nodeType":"EventDefinition","parameters":{"id":6797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6794,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"289:8:36","nodeType":"VariableDeclaration","scope":6798,"src":"281:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6793,"name":"uint256","nodeType":"ElementaryTypeName","src":"281:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6796,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"307:7:36","nodeType":"VariableDeclaration","scope":6798,"src":"299:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6795,"name":"uint256","nodeType":"ElementaryTypeName","src":"299:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"280:35:36"},"src":"254:62:36"},{"functionSelector":"23250cae","id":6805,"implemented":false,"kind":"function","modifiers":[],"name":"burned","nameLocation":"334:6:36","nodeType":"FunctionDefinition","parameters":{"id":6801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6800,"mutability":"mutable","name":"tokenId","nameLocation":"346:7:36","nodeType":"VariableDeclaration","scope":6805,"src":"341:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6799,"name":"uint","nodeType":"ElementaryTypeName","src":"341:4:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"340:14:36"},"returnParameters":{"id":6804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6803,"mutability":"mutable","name":"isBurned","nameLocation":"382:8:36","nodeType":"VariableDeclaration","scope":6805,"src":"377:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6802,"name":"bool","nodeType":"ElementaryTypeName","src":"377:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"376:15:36"},"scope":6825,"src":"325:67:36","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4f558e79","id":6812,"implemented":false,"kind":"function","modifiers":[],"name":"exists","nameLocation":"406:6:36","nodeType":"FunctionDefinition","parameters":{"id":6808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6807,"mutability":"mutable","name":"tokenId","nameLocation":"421:7:36","nodeType":"VariableDeclaration","scope":6812,"src":"413:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6806,"name":"uint256","nodeType":"ElementaryTypeName","src":"413:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"412:17:36"},"returnParameters":{"id":6811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6810,"mutability":"mutable","name":"doesExist","nameLocation":"457:9:36","nodeType":"VariableDeclaration","scope":6812,"src":"452:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6809,"name":"bool","nodeType":"ElementaryTypeName","src":"452:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"451:16:36"},"scope":6825,"src":"397:71:36","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"29a63083","id":6819,"implemented":false,"kind":"function","modifiers":[],"name":"getBundleId","nameLocation":"482:11:36","nodeType":"FunctionDefinition","parameters":{"id":6815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6814,"mutability":"mutable","name":"tokenId","nameLocation":"502:7:36","nodeType":"VariableDeclaration","scope":6819,"src":"494:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6813,"name":"uint256","nodeType":"ElementaryTypeName","src":"494:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"493:17:36"},"returnParameters":{"id":6818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6817,"mutability":"mutable","name":"bundleId","nameLocation":"541:8:36","nodeType":"VariableDeclaration","scope":6819,"src":"533:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6816,"name":"uint256","nodeType":"ElementaryTypeName","src":"533:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"532:18:36"},"scope":6825,"src":"473:78:36","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":6824,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"565:11:36","nodeType":"FunctionDefinition","parameters":{"id":6820,"nodeType":"ParameterList","parameters":[],"src":"576:2:36"},"returnParameters":{"id":6823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6822,"mutability":"mutable","name":"tokenCount","nameLocation":"609:10:36","nodeType":"VariableDeclaration","scope":6824,"src":"601:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6821,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:20:36"},"scope":6825,"src":"556:65:36","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6826,"src":"123:500:36"}],"src":"39:585:36"},"id":36},"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[7145],"Context":[10518],"ERC165":[10828],"IAccessControl":[7343],"IERC165":[10840],"Strings":[10804]},"id":7146,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6827,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:37"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":6828,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7146,"sourceUnit":7344,"src":"133:30:37","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":6829,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7146,"sourceUnit":10519,"src":"164:30:37","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../utils/Strings.sol","id":6830,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7146,"sourceUnit":10805,"src":"195:30:37","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":6831,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7146,"sourceUnit":10829,"src":"226:43:37","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":6833,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"1841:7:37"},"id":6834,"nodeType":"InheritanceSpecifier","src":"1841:7:37"},{"baseName":{"id":6835,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"1850:14:37"},"id":6836,"nodeType":"InheritanceSpecifier","src":"1850:14:37"},{"baseName":{"id":6837,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":10828,"src":"1866:6:37"},"id":6838,"nodeType":"InheritanceSpecifier","src":"1866:6:37"}],"contractDependencies":[7343,10518,10828,10840],"contractKind":"contract","documentation":{"id":6832,"nodeType":"StructuredDocumentation","src":"271:1534:37","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it."},"fullyImplemented":true,"id":7145,"linearizedBaseContracts":[7145,10828,10840,7343,10518],"name":"AccessControl","nameLocation":"1824:13:37","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":6845,"members":[{"constant":false,"id":6842,"mutability":"mutable","name":"members","nameLocation":"1930:7:37","nodeType":"VariableDeclaration","scope":6845,"src":"1905:32:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":6841,"keyType":{"id":6839,"name":"address","nodeType":"ElementaryTypeName","src":"1913:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1905:24:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":6840,"name":"bool","nodeType":"ElementaryTypeName","src":"1924:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":6844,"mutability":"mutable","name":"adminRole","nameLocation":"1955:9:37","nodeType":"VariableDeclaration","scope":6845,"src":"1947:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1947:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"1886:8:37","nodeType":"StructDefinition","scope":7145,"src":"1879:92:37","visibility":"public"},{"constant":false,"id":6850,"mutability":"mutable","name":"_roles","nameLocation":"2014:6:37","nodeType":"VariableDeclaration","scope":7145,"src":"1977:43:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":6849,"keyType":{"id":6846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1985:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1977:28:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueType":{"id":6848,"nodeType":"UserDefinedTypeName","pathNode":{"id":6847,"name":"RoleData","nodeType":"IdentifierPath","referencedDeclaration":6845,"src":"1996:8:37"},"referencedDeclaration":6845,"src":"1996:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":6853,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2051:18:37","nodeType":"VariableDeclaration","scope":7145,"src":"2027:49:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2027:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":6852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:4:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":6863,"nodeType":"Block","src":"2495:44:37","statements":[{"expression":{"arguments":[{"id":6859,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6856,"src":"2516:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6858,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[6918,6961],"referencedDeclaration":6918,"src":"2505:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":6860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2505:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6861,"nodeType":"ExpressionStatement","src":"2505:16:37"},{"id":6862,"nodeType":"PlaceholderStatement","src":"2531:1:37"}]},"documentation":{"id":6854,"nodeType":"StructuredDocumentation","src":"2083:375:37","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._"},"id":6864,"name":"onlyRole","nameLocation":"2472:8:37","nodeType":"ModifierDefinition","parameters":{"id":6857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6856,"mutability":"mutable","name":"role","nameLocation":"2489:4:37","nodeType":"VariableDeclaration","scope":6864,"src":"2481:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2481:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2480:14:37"},"src":"2463:76:37","virtual":false,"visibility":"internal"},{"baseFunctions":[10827],"body":{"id":6885,"nodeType":"Block","src":"2697:111:37","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6873,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"2714:11:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":6875,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"2734:14:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$7343_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$7343_$","typeString":"type(contract IAccessControl)"}],"id":6874,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"2729:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2729:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$7343","typeString":"type(contract IAccessControl)"}},"id":6877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2729:32:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2714:47:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6881,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"2789:11:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":6879,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"2765:5:37","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$7145_$","typeString":"type(contract super AccessControl)"}},"id":6880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":10827,"src":"2765:23:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":6882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2765:36:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2714:87:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6872,"id":6884,"nodeType":"Return","src":"2707:94:37"}]},"documentation":{"id":6865,"nodeType":"StructuredDocumentation","src":"2545:56:37","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":6886,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2615:17:37","nodeType":"FunctionDefinition","overrides":{"id":6869,"nodeType":"OverrideSpecifier","overrides":[],"src":"2673:8:37"},"parameters":{"id":6868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6867,"mutability":"mutable","name":"interfaceId","nameLocation":"2640:11:37","nodeType":"VariableDeclaration","scope":6886,"src":"2633:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6866,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2633:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2632:20:37"},"returnParameters":{"id":6872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6871,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6886,"src":"2691:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6870,"name":"bool","nodeType":"ElementaryTypeName","src":"2691:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2690:6:37"},"scope":7145,"src":"2606:202:37","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7310],"body":{"id":6904,"nodeType":"Block","src":"2987:53:37","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":6897,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"3004:6:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":6899,"indexExpression":{"id":6898,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6889,"src":"3011:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:12:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":6900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":6842,"src":"3004:20:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6902,"indexExpression":{"id":6901,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6891,"src":"3025:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:29:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6896,"id":6903,"nodeType":"Return","src":"2997:36:37"}]},"documentation":{"id":6887,"nodeType":"StructuredDocumentation","src":"2814:76:37","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":6905,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"2904:7:37","nodeType":"FunctionDefinition","overrides":{"id":6893,"nodeType":"OverrideSpecifier","overrides":[],"src":"2963:8:37"},"parameters":{"id":6892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6889,"mutability":"mutable","name":"role","nameLocation":"2920:4:37","nodeType":"VariableDeclaration","scope":6905,"src":"2912:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6888,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2912:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6891,"mutability":"mutable","name":"account","nameLocation":"2934:7:37","nodeType":"VariableDeclaration","scope":6905,"src":"2926:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6890,"name":"address","nodeType":"ElementaryTypeName","src":"2926:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2911:31:37"},"returnParameters":{"id":6896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6905,"src":"2981:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6894,"name":"bool","nodeType":"ElementaryTypeName","src":"2981:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2980:6:37"},"scope":7145,"src":"2895:145:37","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6917,"nodeType":"Block","src":"3390:47:37","statements":[{"expression":{"arguments":[{"id":6912,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"3411:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6913,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3417:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3417:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6911,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[6918,6961],"referencedDeclaration":6961,"src":"3400:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":6915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3400:30:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6916,"nodeType":"ExpressionStatement","src":"3400:30:37"}]},"documentation":{"id":6906,"nodeType":"StructuredDocumentation","src":"3046:283:37","text":" @dev Revert with a standard message if `_msgSender()` is missing `role`.\n Overriding this function changes the behavior of the {onlyRole} modifier.\n Format of the revert message is described in {_checkRole}.\n _Available since v4.6._"},"id":6918,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3343:10:37","nodeType":"FunctionDefinition","parameters":{"id":6909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6908,"mutability":"mutable","name":"role","nameLocation":"3362:4:37","nodeType":"VariableDeclaration","scope":6918,"src":"3354:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3354:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3353:14:37"},"returnParameters":{"id":6910,"nodeType":"ParameterList","parameters":[],"src":"3390:0:37"},"scope":7145,"src":"3334:103:37","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6960,"nodeType":"Block","src":"3791:419:37","statements":[{"condition":{"id":6930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3805:23:37","subExpression":{"arguments":[{"id":6927,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6921,"src":"3814:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6928,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6923,"src":"3820:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6926,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"3806:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":6929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3806:22:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6959,"nodeType":"IfStatement","src":"3801:403:37","trueBody":{"id":6958,"nodeType":"Block","src":"3830:374:37","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","id":6936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3938:25:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},"value":"AccessControl: account "},{"arguments":[{"arguments":[{"id":6941,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6923,"src":"4017:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4009:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":6939,"name":"uint160","nodeType":"ElementaryTypeName","src":"4009:7:37","typeDescriptions":{}}},"id":6942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4009:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"hexValue":"3230","id":6943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4027:2:37","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"expression":{"id":6937,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10804,"src":"3989:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$10804_$","typeString":"type(library Strings)"}},"id":6938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":10783,"src":"3989:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":6944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3989:41:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206973206d697373696e6720726f6c6520","id":6945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4056:19:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},"value":" is missing role "},{"arguments":[{"arguments":[{"id":6950,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6921,"src":"4129:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4121:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6948,"name":"uint256","nodeType":"ElementaryTypeName","src":"4121:7:37","typeDescriptions":{}}},"id":6951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4121:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":6952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4136:2:37","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"id":6946,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10804,"src":"4101:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$10804_$","typeString":"type(library Strings)"}},"id":6947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":10783,"src":"4101:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":6953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4101:38:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6934,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3896:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3896:16:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3896:265:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":6932,"name":"string","nodeType":"ElementaryTypeName","src":"3868:6:37","typeDescriptions":{}}},"id":6955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3868:311:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6931,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"3844:6:37","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3844:349:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6957,"nodeType":"ExpressionStatement","src":"3844:349:37"}]}}]},"documentation":{"id":6919,"nodeType":"StructuredDocumentation","src":"3443:270:37","text":" @dev Revert with a standard message if `account` is missing `role`.\n The format of the revert reason is given by the following regular expression:\n /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/"},"id":6961,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3727:10:37","nodeType":"FunctionDefinition","parameters":{"id":6924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6921,"mutability":"mutable","name":"role","nameLocation":"3746:4:37","nodeType":"VariableDeclaration","scope":6961,"src":"3738:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3738:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6923,"mutability":"mutable","name":"account","nameLocation":"3760:7:37","nodeType":"VariableDeclaration","scope":6961,"src":"3752:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6922,"name":"address","nodeType":"ElementaryTypeName","src":"3752:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3737:31:37"},"returnParameters":{"id":6925,"nodeType":"ParameterList","parameters":[],"src":"3791:0:37"},"scope":7145,"src":"3718:492:37","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[7318],"body":{"id":6975,"nodeType":"Block","src":"4474:46:37","statements":[{"expression":{"expression":{"baseExpression":{"id":6970,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"4491:6:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":6972,"indexExpression":{"id":6971,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"4498:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4491:12:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":6973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":6844,"src":"4491:22:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":6969,"id":6974,"nodeType":"Return","src":"4484:29:37"}]},"documentation":{"id":6962,"nodeType":"StructuredDocumentation","src":"4216:170:37","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":6976,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4400:12:37","nodeType":"FunctionDefinition","overrides":{"id":6966,"nodeType":"OverrideSpecifier","overrides":[],"src":"4447:8:37"},"parameters":{"id":6965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6964,"mutability":"mutable","name":"role","nameLocation":"4421:4:37","nodeType":"VariableDeclaration","scope":6976,"src":"4413:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6963,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4413:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4412:14:37"},"returnParameters":{"id":6969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6976,"src":"4465:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4465:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4464:9:37"},"scope":7145,"src":"4391:129:37","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7326],"body":{"id":6995,"nodeType":"Block","src":"4919:42:37","statements":[{"expression":{"arguments":[{"id":6991,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"4940:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6992,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"4946:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6990,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7113,"src":"4929:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":6993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4929:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6994,"nodeType":"ExpressionStatement","src":"4929:25:37"}]},"documentation":{"id":6977,"nodeType":"StructuredDocumentation","src":"4526:285:37","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":6996,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":6986,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"4912:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6985,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"4899:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":6987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4899:18:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":6988,"modifierName":{"id":6984,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"4890:8:37"},"nodeType":"ModifierInvocation","src":"4890:28:37"}],"name":"grantRole","nameLocation":"4825:9:37","nodeType":"FunctionDefinition","overrides":{"id":6983,"nodeType":"OverrideSpecifier","overrides":[],"src":"4881:8:37"},"parameters":{"id":6982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6979,"mutability":"mutable","name":"role","nameLocation":"4843:4:37","nodeType":"VariableDeclaration","scope":6996,"src":"4835:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6978,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4835:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6981,"mutability":"mutable","name":"account","nameLocation":"4857:7:37","nodeType":"VariableDeclaration","scope":6996,"src":"4849:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6980,"name":"address","nodeType":"ElementaryTypeName","src":"4849:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4834:31:37"},"returnParameters":{"id":6989,"nodeType":"ParameterList","parameters":[],"src":"4919:0:37"},"scope":7145,"src":"4816:145:37","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7334],"body":{"id":7015,"nodeType":"Block","src":"5345:43:37","statements":[{"expression":{"arguments":[{"id":7011,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6999,"src":"5367:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7012,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7001,"src":"5373:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7010,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7144,"src":"5355:11:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5355:26:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7014,"nodeType":"ExpressionStatement","src":"5355:26:37"}]},"documentation":{"id":6997,"nodeType":"StructuredDocumentation","src":"4967:269:37","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":7016,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":7006,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6999,"src":"5338:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7005,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"5325:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":7007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5325:18:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7008,"modifierName":{"id":7004,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"5316:8:37"},"nodeType":"ModifierInvocation","src":"5316:28:37"}],"name":"revokeRole","nameLocation":"5250:10:37","nodeType":"FunctionDefinition","overrides":{"id":7003,"nodeType":"OverrideSpecifier","overrides":[],"src":"5307:8:37"},"parameters":{"id":7002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6999,"mutability":"mutable","name":"role","nameLocation":"5269:4:37","nodeType":"VariableDeclaration","scope":7016,"src":"5261:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5261:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7001,"mutability":"mutable","name":"account","nameLocation":"5283:7:37","nodeType":"VariableDeclaration","scope":7016,"src":"5275:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7000,"name":"address","nodeType":"ElementaryTypeName","src":"5275:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5260:31:37"},"returnParameters":{"id":7009,"nodeType":"ParameterList","parameters":[],"src":"5345:0:37"},"scope":7145,"src":"5241:147:37","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7342],"body":{"id":7038,"nodeType":"Block","src":"6002:137:37","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7026,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7021,"src":"6020:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7027,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"6031:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6031:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6020:23:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":7030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6045:49:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""},"value":"AccessControl: can only renounce roles for self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""}],"id":7025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6012:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6012:83:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7032,"nodeType":"ExpressionStatement","src":"6012:83:37"},{"expression":{"arguments":[{"id":7034,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"6118:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7035,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7021,"src":"6124:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7033,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7144,"src":"6106:11:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6106:26:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7037,"nodeType":"ExpressionStatement","src":"6106:26:37"}]},"documentation":{"id":7017,"nodeType":"StructuredDocumentation","src":"5394:526:37","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":7039,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5934:12:37","nodeType":"FunctionDefinition","overrides":{"id":7023,"nodeType":"OverrideSpecifier","overrides":[],"src":"5993:8:37"},"parameters":{"id":7022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7019,"mutability":"mutable","name":"role","nameLocation":"5955:4:37","nodeType":"VariableDeclaration","scope":7039,"src":"5947:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5947:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7021,"mutability":"mutable","name":"account","nameLocation":"5969:7:37","nodeType":"VariableDeclaration","scope":7039,"src":"5961:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7020,"name":"address","nodeType":"ElementaryTypeName","src":"5961:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5946:31:37"},"returnParameters":{"id":7024,"nodeType":"ParameterList","parameters":[],"src":"6002:0:37"},"scope":7145,"src":"5925:214:37","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7052,"nodeType":"Block","src":"6892:42:37","statements":[{"expression":{"arguments":[{"id":7048,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7042,"src":"6913:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7049,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7044,"src":"6919:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7047,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7113,"src":"6902:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6902:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7051,"nodeType":"ExpressionStatement","src":"6902:25:37"}]},"documentation":{"id":7040,"nodeType":"StructuredDocumentation","src":"6145:674:37","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n May emit a {RoleGranted} event.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====\n NOTE: This function is deprecated in favor of {_grantRole}."},"id":7053,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"6833:10:37","nodeType":"FunctionDefinition","parameters":{"id":7045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7042,"mutability":"mutable","name":"role","nameLocation":"6852:4:37","nodeType":"VariableDeclaration","scope":7053,"src":"6844:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6844:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7044,"mutability":"mutable","name":"account","nameLocation":"6866:7:37","nodeType":"VariableDeclaration","scope":7053,"src":"6858:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7043,"name":"address","nodeType":"ElementaryTypeName","src":"6858:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6843:31:37"},"returnParameters":{"id":7046,"nodeType":"ParameterList","parameters":[],"src":"6892:0:37"},"scope":7145,"src":"6824:110:37","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7080,"nodeType":"Block","src":"7132:174:37","statements":[{"assignments":[7062],"declarations":[{"constant":false,"id":7062,"mutability":"mutable","name":"previousAdminRole","nameLocation":"7150:17:37","nodeType":"VariableDeclaration","scope":7080,"src":"7142:25:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7142:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7066,"initialValue":{"arguments":[{"id":7064,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7056,"src":"7183:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7063,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"7170:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":7065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7170:18:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7142:46:37"},{"expression":{"id":7072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":7067,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"7198:6:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":7069,"indexExpression":{"id":7068,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7056,"src":"7205:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7198:12:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":7070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":6844,"src":"7198:22:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7071,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"7223:9:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7198:34:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7073,"nodeType":"ExpressionStatement","src":"7198:34:37"},{"eventCall":{"arguments":[{"id":7075,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7056,"src":"7264:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7076,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"7270:17:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7077,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"7289:9:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7074,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7282,"src":"7247:16:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":7078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7247:52:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7079,"nodeType":"EmitStatement","src":"7242:57:37"}]},"documentation":{"id":7054,"nodeType":"StructuredDocumentation","src":"6940:114:37","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":7081,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"7068:13:37","nodeType":"FunctionDefinition","parameters":{"id":7059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7056,"mutability":"mutable","name":"role","nameLocation":"7090:4:37","nodeType":"VariableDeclaration","scope":7081,"src":"7082:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7082:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7058,"mutability":"mutable","name":"adminRole","nameLocation":"7104:9:37","nodeType":"VariableDeclaration","scope":7081,"src":"7096:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7096:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7081:33:37"},"returnParameters":{"id":7060,"nodeType":"ParameterList","parameters":[],"src":"7132:0:37"},"scope":7145,"src":"7059:247:37","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7112,"nodeType":"Block","src":"7542:165:37","statements":[{"condition":{"id":7093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7556:23:37","subExpression":{"arguments":[{"id":7090,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"7565:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7091,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7086,"src":"7571:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7089,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"7557:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":7092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7557:22:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7111,"nodeType":"IfStatement","src":"7552:149:37","trueBody":{"id":7110,"nodeType":"Block","src":"7581:120:37","statements":[{"expression":{"id":7101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":7094,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"7595:6:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":7096,"indexExpression":{"id":7095,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"7602:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7595:12:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":7097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":6842,"src":"7595:20:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7099,"indexExpression":{"id":7098,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7086,"src":"7616:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7595:29:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7627:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7595:36:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7102,"nodeType":"ExpressionStatement","src":"7595:36:37"},{"eventCall":{"arguments":[{"id":7104,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"7662:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7105,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7086,"src":"7668:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":7106,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"7677:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7677:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7103,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7291,"src":"7650:11:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":7108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7650:40:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7109,"nodeType":"EmitStatement","src":"7645:45:37"}]}}]},"documentation":{"id":7082,"nodeType":"StructuredDocumentation","src":"7312:157:37","text":" @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":7113,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7483:10:37","nodeType":"FunctionDefinition","parameters":{"id":7087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7084,"mutability":"mutable","name":"role","nameLocation":"7502:4:37","nodeType":"VariableDeclaration","scope":7113,"src":"7494:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7494:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7086,"mutability":"mutable","name":"account","nameLocation":"7516:7:37","nodeType":"VariableDeclaration","scope":7113,"src":"7508:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7085,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7493:31:37"},"returnParameters":{"id":7088,"nodeType":"ParameterList","parameters":[],"src":"7542:0:37"},"scope":7145,"src":"7474:233:37","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7143,"nodeType":"Block","src":"7947:165:37","statements":[{"condition":{"arguments":[{"id":7122,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7116,"src":"7969:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7123,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7118,"src":"7975:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7121,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"7961:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":7124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7961:22:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7142,"nodeType":"IfStatement","src":"7957:149:37","trueBody":{"id":7141,"nodeType":"Block","src":"7985:121:37","statements":[{"expression":{"id":7132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":7125,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"7999:6:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":7127,"indexExpression":{"id":7126,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7116,"src":"8006:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7999:12:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":7128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":6842,"src":"7999:20:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7130,"indexExpression":{"id":7129,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7118,"src":"8020:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7999:29:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":7131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8031:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7999:37:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7133,"nodeType":"ExpressionStatement","src":"7999:37:37"},{"eventCall":{"arguments":[{"id":7135,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7116,"src":"8067:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7136,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7118,"src":"8073:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":7137,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"8082:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8082:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7134,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7300,"src":"8055:11:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":7139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8055:40:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7140,"nodeType":"EmitStatement","src":"8050:45:37"}]}}]},"documentation":{"id":7114,"nodeType":"StructuredDocumentation","src":"7713:160:37","text":" @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":7144,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"7887:11:37","nodeType":"FunctionDefinition","parameters":{"id":7119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7116,"mutability":"mutable","name":"role","nameLocation":"7907:4:37","nodeType":"VariableDeclaration","scope":7144,"src":"7899:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7115,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7899:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7118,"mutability":"mutable","name":"account","nameLocation":"7921:7:37","nodeType":"VariableDeclaration","scope":7144,"src":"7913:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7117,"name":"address","nodeType":"ElementaryTypeName","src":"7913:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7898:31:37"},"returnParameters":{"id":7120,"nodeType":"ParameterList","parameters":[],"src":"7947:0:37"},"scope":7145,"src":"7878:234:37","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7146,"src":"1806:6308:37"}],"src":"108:8007:37"},"id":37},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","exportedSymbols":{"AccessControl":[7145],"AccessControlEnumerable":[7270],"Context":[10518],"ERC165":[10828],"EnumerableSet":[11439],"IAccessControl":[7343],"IAccessControlEnumerable":[7368],"IERC165":[10840],"Strings":[10804]},"id":7271,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7147,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:38"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControlEnumerable.sol","file":"./IAccessControlEnumerable.sol","id":7148,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7271,"sourceUnit":7369,"src":"143:40:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"./AccessControl.sol","id":7149,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7271,"sourceUnit":7146,"src":"184:29:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"../utils/structs/EnumerableSet.sol","id":7150,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7271,"sourceUnit":11440,"src":"214:44:38","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7152,"name":"IAccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":7368,"src":"400:24:38"},"id":7153,"nodeType":"InheritanceSpecifier","src":"400:24:38"},{"baseName":{"id":7154,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":7145,"src":"426:13:38"},"id":7155,"nodeType":"InheritanceSpecifier","src":"426:13:38"}],"contractDependencies":[7145,7343,7368,10518,10828,10840],"contractKind":"contract","documentation":{"id":7151,"nodeType":"StructuredDocumentation","src":"260:94:38","text":" @dev Extension of {AccessControl} that allows enumerating the members of each role."},"fullyImplemented":true,"id":7270,"linearizedBaseContracts":[7270,7145,10828,10840,7368,7343,10518],"name":"AccessControlEnumerable","nameLocation":"373:23:38","nodeType":"ContractDefinition","nodes":[{"id":7159,"libraryName":{"id":7156,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":11439,"src":"452:13:38"},"nodeType":"UsingForDirective","src":"446:49:38","typeName":{"id":7158,"nodeType":"UserDefinedTypeName","pathNode":{"id":7157,"name":"EnumerableSet.AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"470:24:38"},"referencedDeclaration":11152,"src":"470:24:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"constant":false,"id":7164,"mutability":"mutable","name":"_roleMembers","nameLocation":"554:12:38","nodeType":"VariableDeclaration","scope":7270,"src":"501:65:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet)"},"typeName":{"id":7163,"keyType":{"id":7160,"name":"bytes32","nodeType":"ElementaryTypeName","src":"509:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"501:44:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet)"},"valueType":{"id":7162,"nodeType":"UserDefinedTypeName","pathNode":{"id":7161,"name":"EnumerableSet.AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"520:24:38"},"referencedDeclaration":11152,"src":"520:24:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"private"},{"baseFunctions":[6886],"body":{"id":7185,"nodeType":"Block","src":"725:121:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":7178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7173,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7167,"src":"742:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":7175,"name":"IAccessControlEnumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7368,"src":"762:24:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlEnumerable_$7368_$","typeString":"type(contract IAccessControlEnumerable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControlEnumerable_$7368_$","typeString":"type(contract IAccessControlEnumerable)"}],"id":7174,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"757:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"757:30:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControlEnumerable_$7368","typeString":"type(contract IAccessControlEnumerable)"}},"id":7177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"757:42:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"742:57:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":7181,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7167,"src":"827:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":7179,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"803:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$7270_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":7180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":6886,"src":"803:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":7182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"803:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"742:97:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7172,"id":7184,"nodeType":"Return","src":"735:104:38"}]},"documentation":{"id":7165,"nodeType":"StructuredDocumentation","src":"573:56:38","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":7186,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"643:17:38","nodeType":"FunctionDefinition","overrides":{"id":7169,"nodeType":"OverrideSpecifier","overrides":[],"src":"701:8:38"},"parameters":{"id":7168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7167,"mutability":"mutable","name":"interfaceId","nameLocation":"668:11:38","nodeType":"VariableDeclaration","scope":7186,"src":"661:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7166,"name":"bytes4","nodeType":"ElementaryTypeName","src":"661:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"660:20:38"},"returnParameters":{"id":7172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7186,"src":"719:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7170,"name":"bool","nodeType":"ElementaryTypeName","src":"719:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"718:6:38"},"scope":7270,"src":"634:212:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7359],"body":{"id":7204,"nodeType":"Block","src":"1530:52:38","statements":[{"expression":{"arguments":[{"id":7201,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"1569:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":7197,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7164,"src":"1547:12:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":7199,"indexExpression":{"id":7198,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7189,"src":"1560:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1547:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":7200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11275,"src":"1547:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$11152_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$11152_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"}},"id":7202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1547:28:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7196,"id":7203,"nodeType":"Return","src":"1540:35:38"}]},"documentation":{"id":7187,"nodeType":"StructuredDocumentation","src":"852:574:38","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information."},"functionSelector":"9010d07c","id":7205,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"1440:13:38","nodeType":"FunctionDefinition","overrides":{"id":7193,"nodeType":"OverrideSpecifier","overrides":[],"src":"1503:8:38"},"parameters":{"id":7192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7189,"mutability":"mutable","name":"role","nameLocation":"1462:4:38","nodeType":"VariableDeclaration","scope":7205,"src":"1454:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1454:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7191,"mutability":"mutable","name":"index","nameLocation":"1476:5:38","nodeType":"VariableDeclaration","scope":7205,"src":"1468:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7190,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1453:29:38"},"returnParameters":{"id":7196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7205,"src":"1521:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7194,"name":"address","nodeType":"ElementaryTypeName","src":"1521:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1520:9:38"},"scope":7270,"src":"1431:151:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7367],"body":{"id":7220,"nodeType":"Block","src":"1839:51:38","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":7214,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7164,"src":"1856:12:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":7216,"indexExpression":{"id":7215,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7208,"src":"1869:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1856:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":7217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11248,"src":"1856:25:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$11152_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$11152_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":7218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1856:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7213,"id":7219,"nodeType":"Return","src":"1849:34:38"}]},"documentation":{"id":7206,"nodeType":"StructuredDocumentation","src":"1588:157:38","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":7221,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"1759:18:38","nodeType":"FunctionDefinition","overrides":{"id":7210,"nodeType":"OverrideSpecifier","overrides":[],"src":"1812:8:38"},"parameters":{"id":7209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7208,"mutability":"mutable","name":"role","nameLocation":"1786:4:38","nodeType":"VariableDeclaration","scope":7221,"src":"1778:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1778:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1777:14:38"},"returnParameters":{"id":7213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7221,"src":"1830:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7211,"name":"uint256","nodeType":"ElementaryTypeName","src":"1830:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1829:9:38"},"scope":7270,"src":"1750:140:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7113],"body":{"id":7244,"nodeType":"Block","src":"2055:89:38","statements":[{"expression":{"arguments":[{"id":7233,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"2082:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7234,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7226,"src":"2088:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7230,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"2065:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$7270_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_grantRole","nodeType":"MemberAccess","referencedDeclaration":7113,"src":"2065:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2065:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7236,"nodeType":"ExpressionStatement","src":"2065:31:38"},{"expression":{"arguments":[{"id":7241,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7226,"src":"2129:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":7237,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7164,"src":"2106:12:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":7239,"indexExpression":{"id":7238,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"2119:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2106:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":7240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11179,"src":"2106:22:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$11152_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$11152_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":7242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2106:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7243,"nodeType":"ExpressionStatement","src":"2106:31:38"}]},"documentation":{"id":7222,"nodeType":"StructuredDocumentation","src":"1896:77:38","text":" @dev Overload {_grantRole} to track enumerable memberships"},"id":7245,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"1987:10:38","nodeType":"FunctionDefinition","overrides":{"id":7228,"nodeType":"OverrideSpecifier","overrides":[],"src":"2046:8:38"},"parameters":{"id":7227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7224,"mutability":"mutable","name":"role","nameLocation":"2006:4:38","nodeType":"VariableDeclaration","scope":7245,"src":"1998:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7223,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1998:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7226,"mutability":"mutable","name":"account","nameLocation":"2020:7:38","nodeType":"VariableDeclaration","scope":7245,"src":"2012:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7225,"name":"address","nodeType":"ElementaryTypeName","src":"2012:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1997:31:38"},"returnParameters":{"id":7229,"nodeType":"ParameterList","parameters":[],"src":"2055:0:38"},"scope":7270,"src":"1978:166:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[7144],"body":{"id":7268,"nodeType":"Block","src":"2311:93:38","statements":[{"expression":{"arguments":[{"id":7257,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7248,"src":"2339:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7258,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7250,"src":"2345:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7254,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"2321:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$7270_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":7256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_revokeRole","nodeType":"MemberAccess","referencedDeclaration":7144,"src":"2321:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2321:32:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7260,"nodeType":"ExpressionStatement","src":"2321:32:38"},{"expression":{"arguments":[{"id":7265,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7250,"src":"2389:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":7261,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7164,"src":"2363:12:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":7263,"indexExpression":{"id":7262,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7248,"src":"2376:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2363:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":7264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":11206,"src":"2363:25:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$11152_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$11152_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":7266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2363:34:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7267,"nodeType":"ExpressionStatement","src":"2363:34:38"}]},"documentation":{"id":7246,"nodeType":"StructuredDocumentation","src":"2150:78:38","text":" @dev Overload {_revokeRole} to track enumerable memberships"},"id":7269,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"2242:11:38","nodeType":"FunctionDefinition","overrides":{"id":7252,"nodeType":"OverrideSpecifier","overrides":[],"src":"2302:8:38"},"parameters":{"id":7251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7248,"mutability":"mutable","name":"role","nameLocation":"2262:4:38","nodeType":"VariableDeclaration","scope":7269,"src":"2254:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2254:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7250,"mutability":"mutable","name":"account","nameLocation":"2276:7:38","nodeType":"VariableDeclaration","scope":7269,"src":"2268:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7249,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2253:31:38"},"returnParameters":{"id":7253,"nodeType":"ParameterList","parameters":[],"src":"2311:0:38"},"scope":7270,"src":"2233:171:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7271,"src":"355:2051:38"}],"src":"118:2289:38"},"id":38},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[7343]},"id":7344,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7272,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:39"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":7273,"nodeType":"StructuredDocumentation","src":"119:89:39","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":7343,"linearizedBaseContracts":[7343],"name":"IAccessControl","nameLocation":"219:14:39","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":7274,"nodeType":"StructuredDocumentation","src":"240:292:39","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._"},"id":7282,"name":"RoleAdminChanged","nameLocation":"543:16:39","nodeType":"EventDefinition","parameters":{"id":7281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7276,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:39","nodeType":"VariableDeclaration","scope":7282,"src":"560:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7278,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:39","nodeType":"VariableDeclaration","scope":7282,"src":"582:33:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7277,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7280,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:39","nodeType":"VariableDeclaration","scope":7282,"src":"617:28:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:39"},"src":"537:110:39"},{"anonymous":false,"documentation":{"id":7283,"nodeType":"StructuredDocumentation","src":"653:212:39","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}."},"id":7291,"name":"RoleGranted","nameLocation":"876:11:39","nodeType":"EventDefinition","parameters":{"id":7290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7285,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:39","nodeType":"VariableDeclaration","scope":7291,"src":"888:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7287,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:39","nodeType":"VariableDeclaration","scope":7291,"src":"910:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7286,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7289,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:39","nodeType":"VariableDeclaration","scope":7291,"src":"935:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7288,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:39"},"src":"870:89:39"},{"anonymous":false,"documentation":{"id":7292,"nodeType":"StructuredDocumentation","src":"965:275:39","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"id":7300,"name":"RoleRevoked","nameLocation":"1251:11:39","nodeType":"EventDefinition","parameters":{"id":7299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7294,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:39","nodeType":"VariableDeclaration","scope":7300,"src":"1263:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7296,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:39","nodeType":"VariableDeclaration","scope":7300,"src":"1285:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7295,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7298,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:39","nodeType":"VariableDeclaration","scope":7300,"src":"1310:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7297,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:39"},"src":"1245:89:39"},{"documentation":{"id":7301,"nodeType":"StructuredDocumentation","src":"1340:76:39","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":7310,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:39","nodeType":"FunctionDefinition","parameters":{"id":7306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7303,"mutability":"mutable","name":"role","nameLocation":"1446:4:39","nodeType":"VariableDeclaration","scope":7310,"src":"1438:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7305,"mutability":"mutable","name":"account","nameLocation":"1460:7:39","nodeType":"VariableDeclaration","scope":7310,"src":"1452:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7304,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:39"},"returnParameters":{"id":7309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7310,"src":"1492:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7307,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:39"},"scope":7343,"src":"1421:77:39","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7311,"nodeType":"StructuredDocumentation","src":"1504:184:39","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":7318,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:39","nodeType":"FunctionDefinition","parameters":{"id":7314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7313,"mutability":"mutable","name":"role","nameLocation":"1723:4:39","nodeType":"VariableDeclaration","scope":7318,"src":"1715:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:39"},"returnParameters":{"id":7317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7318,"src":"1752:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:39"},"scope":7343,"src":"1693:68:39","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7319,"nodeType":"StructuredDocumentation","src":"1767:239:39","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":7326,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:39","nodeType":"FunctionDefinition","parameters":{"id":7324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7321,"mutability":"mutable","name":"role","nameLocation":"2038:4:39","nodeType":"VariableDeclaration","scope":7326,"src":"2030:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7323,"mutability":"mutable","name":"account","nameLocation":"2052:7:39","nodeType":"VariableDeclaration","scope":7326,"src":"2044:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7322,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:39"},"returnParameters":{"id":7325,"nodeType":"ParameterList","parameters":[],"src":"2069:0:39"},"scope":7343,"src":"2011:59:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7327,"nodeType":"StructuredDocumentation","src":"2076:223:39","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":7334,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:39","nodeType":"FunctionDefinition","parameters":{"id":7332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7329,"mutability":"mutable","name":"role","nameLocation":"2332:4:39","nodeType":"VariableDeclaration","scope":7334,"src":"2324:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7331,"mutability":"mutable","name":"account","nameLocation":"2346:7:39","nodeType":"VariableDeclaration","scope":7334,"src":"2338:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7330,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:39"},"returnParameters":{"id":7333,"nodeType":"ParameterList","parameters":[],"src":"2363:0:39"},"scope":7343,"src":"2304:60:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7335,"nodeType":"StructuredDocumentation","src":"2370:480:39","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`."},"functionSelector":"36568abe","id":7342,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:39","nodeType":"FunctionDefinition","parameters":{"id":7340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7337,"mutability":"mutable","name":"role","nameLocation":"2885:4:39","nodeType":"VariableDeclaration","scope":7342,"src":"2877:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7339,"mutability":"mutable","name":"account","nameLocation":"2899:7:39","nodeType":"VariableDeclaration","scope":7342,"src":"2891:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7338,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:39"},"returnParameters":{"id":7341,"nodeType":"ParameterList","parameters":[],"src":"2916:0:39"},"scope":7343,"src":"2855:62:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7344,"src":"209:2710:39"}],"src":"94:2826:39"},"id":39},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControlEnumerable.sol","exportedSymbols":{"IAccessControl":[7343],"IAccessControlEnumerable":[7368]},"id":7369,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7345,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"104:23:40"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":7346,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7369,"sourceUnit":7344,"src":"129:30:40","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7348,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"299:14:40"},"id":7349,"nodeType":"InheritanceSpecifier","src":"299:14:40"}],"contractDependencies":[7343],"contractKind":"interface","documentation":{"id":7347,"nodeType":"StructuredDocumentation","src":"161:99:40","text":" @dev External interface of AccessControlEnumerable declared to support ERC165 detection."},"fullyImplemented":false,"id":7368,"linearizedBaseContracts":[7368,7343],"name":"IAccessControlEnumerable","nameLocation":"271:24:40","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7350,"nodeType":"StructuredDocumentation","src":"320:574:40","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information."},"functionSelector":"9010d07c","id":7359,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"908:13:40","nodeType":"FunctionDefinition","parameters":{"id":7355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7352,"mutability":"mutable","name":"role","nameLocation":"930:4:40","nodeType":"VariableDeclaration","scope":7359,"src":"922:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"922:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7354,"mutability":"mutable","name":"index","nameLocation":"944:5:40","nodeType":"VariableDeclaration","scope":7359,"src":"936:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7353,"name":"uint256","nodeType":"ElementaryTypeName","src":"936:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"921:29:40"},"returnParameters":{"id":7358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7359,"src":"974:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7356,"name":"address","nodeType":"ElementaryTypeName","src":"974:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"973:9:40"},"scope":7368,"src":"899:84:40","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7360,"nodeType":"StructuredDocumentation","src":"989:157:40","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":7367,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"1160:18:40","nodeType":"FunctionDefinition","parameters":{"id":7363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7362,"mutability":"mutable","name":"role","nameLocation":"1187:4:40","nodeType":"VariableDeclaration","scope":7367,"src":"1179:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1179:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1178:14:40"},"returnParameters":{"id":7366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7367,"src":"1216:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7364,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1215:9:40"},"scope":7368,"src":"1151:74:40","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7369,"src":"261:966:40"}],"src":"104:1124:40"},"id":40},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[10518],"Ownable":[7481]},"id":7482,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7370,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:41"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":7371,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7482,"sourceUnit":10519,"src":"127:30:41","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7373,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"683:7:41"},"id":7374,"nodeType":"InheritanceSpecifier","src":"683:7:41"}],"contractDependencies":[10518],"contractKind":"contract","documentation":{"id":7372,"nodeType":"StructuredDocumentation","src":"159:494:41","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":7481,"linearizedBaseContracts":[7481,10518],"name":"Ownable","nameLocation":"672:7:41","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":7376,"mutability":"mutable","name":"_owner","nameLocation":"713:6:41","nodeType":"VariableDeclaration","scope":7481,"src":"697:22:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7375,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"id":7382,"name":"OwnershipTransferred","nameLocation":"732:20:41","nodeType":"EventDefinition","parameters":{"id":7381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7378,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:41","nodeType":"VariableDeclaration","scope":7382,"src":"753:29:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7377,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7380,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:41","nodeType":"VariableDeclaration","scope":7382,"src":"784:24:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7379,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:41"},"src":"726:84:41"},{"body":{"id":7391,"nodeType":"Block","src":"926:49:41","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7387,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"955:10:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:12:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7386,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"936:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"936:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7390,"nodeType":"ExpressionStatement","src":"936:32:41"}]},"documentation":{"id":7383,"nodeType":"StructuredDocumentation","src":"816:91:41","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":7392,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7384,"nodeType":"ParameterList","parameters":[],"src":"923:2:41"},"returnParameters":{"id":7385,"nodeType":"ParameterList","parameters":[],"src":"926:0:41"},"scope":7481,"src":"912:63:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7399,"nodeType":"Block","src":"1084:41:41","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7395,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7423,"src":"1094:11:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":7396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1094:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7397,"nodeType":"ExpressionStatement","src":"1094:13:41"},{"id":7398,"nodeType":"PlaceholderStatement","src":"1117:1:41"}]},"documentation":{"id":7393,"nodeType":"StructuredDocumentation","src":"981:77:41","text":" @dev Throws if called by any account other than the owner."},"id":7400,"name":"onlyOwner","nameLocation":"1072:9:41","nodeType":"ModifierDefinition","parameters":{"id":7394,"nodeType":"ParameterList","parameters":[],"src":"1081:2:41"},"src":"1063:62:41","virtual":false,"visibility":"internal"},{"body":{"id":7408,"nodeType":"Block","src":"1256:30:41","statements":[{"expression":{"id":7406,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7376,"src":"1273:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7405,"id":7407,"nodeType":"Return","src":"1266:13:41"}]},"documentation":{"id":7401,"nodeType":"StructuredDocumentation","src":"1131:65:41","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":7409,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:41","nodeType":"FunctionDefinition","parameters":{"id":7402,"nodeType":"ParameterList","parameters":[],"src":"1215:2:41"},"returnParameters":{"id":7405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7409,"src":"1247:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7403,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:41"},"scope":7481,"src":"1201:85:41","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7422,"nodeType":"Block","src":"1404:85:41","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7414,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"1422:5:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:7:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7416,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1433:10:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1433:12:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":7419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":7413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1414:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:68:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7421,"nodeType":"ExpressionStatement","src":"1414:68:41"}]},"documentation":{"id":7410,"nodeType":"StructuredDocumentation","src":"1292:62:41","text":" @dev Throws if the sender is not the owner."},"id":7423,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:41","nodeType":"FunctionDefinition","parameters":{"id":7411,"nodeType":"ParameterList","parameters":[],"src":"1379:2:41"},"returnParameters":{"id":7412,"nodeType":"ParameterList","parameters":[],"src":"1404:0:41"},"scope":7481,"src":"1359:130:41","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7436,"nodeType":"Block","src":"1885:47:41","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":7432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7430,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:41","typeDescriptions":{}}},"id":7433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1914:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7429,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"1895:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1895:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7435,"nodeType":"ExpressionStatement","src":"1895:30:41"}]},"documentation":{"id":7424,"nodeType":"StructuredDocumentation","src":"1495:331:41","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":7437,"implemented":true,"kind":"function","modifiers":[{"id":7427,"modifierName":{"id":7426,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"1875:9:41"},"nodeType":"ModifierInvocation","src":"1875:9:41"}],"name":"renounceOwnership","nameLocation":"1840:17:41","nodeType":"FunctionDefinition","parameters":{"id":7425,"nodeType":"ParameterList","parameters":[],"src":"1857:2:41"},"returnParameters":{"id":7428,"nodeType":"ParameterList","parameters":[],"src":"1885:0:41"},"scope":7481,"src":"1831:101:41","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7459,"nodeType":"Block","src":"2151:128:41","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7446,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7440,"src":"2169:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7447,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:41","typeDescriptions":{}}},"id":7450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2181:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":7452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:40:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":7445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2161:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2161:73:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7454,"nodeType":"ExpressionStatement","src":"2161:73:41"},{"expression":{"arguments":[{"id":7456,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7440,"src":"2263:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7455,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"2244:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2244:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7458,"nodeType":"ExpressionStatement","src":"2244:28:41"}]},"documentation":{"id":7438,"nodeType":"StructuredDocumentation","src":"1938:138:41","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":7460,"implemented":true,"kind":"function","modifiers":[{"id":7443,"modifierName":{"id":7442,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"2141:9:41"},"nodeType":"ModifierInvocation","src":"2141:9:41"}],"name":"transferOwnership","nameLocation":"2090:17:41","nodeType":"FunctionDefinition","parameters":{"id":7441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7440,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:41","nodeType":"VariableDeclaration","scope":7460,"src":"2108:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7439,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:41"},"returnParameters":{"id":7444,"nodeType":"ParameterList","parameters":[],"src":"2151:0:41"},"scope":7481,"src":"2081:198:41","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7479,"nodeType":"Block","src":"2496:124:41","statements":[{"assignments":[7467],"declarations":[{"constant":false,"id":7467,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:41","nodeType":"VariableDeclaration","scope":7479,"src":"2506:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7466,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7469,"initialValue":{"id":7468,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7376,"src":"2525:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:41"},{"expression":{"id":7472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7470,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7376,"src":"2541:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7471,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"2550:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7473,"nodeType":"ExpressionStatement","src":"2541:17:41"},{"eventCall":{"arguments":[{"id":7475,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7467,"src":"2594:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7476,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"2604:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7474,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7382,"src":"2573:20:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":7477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:40:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7478,"nodeType":"EmitStatement","src":"2568:45:41"}]},"documentation":{"id":7461,"nodeType":"StructuredDocumentation","src":"2285:143:41","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":7480,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:41","nodeType":"FunctionDefinition","parameters":{"id":7464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7463,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:41","nodeType":"VariableDeclaration","scope":7480,"src":"2461:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7462,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:41"},"returnParameters":{"id":7465,"nodeType":"ParameterList","parameters":[],"src":"2496:0:41"},"scope":7481,"src":"2433:187:41","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7482,"src":"654:1968:41"}],"src":"102:2521:41"},"id":41},"@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC1822.sol","exportedSymbols":{"IERC1822Proxiable":[7491]},"id":7492,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7483,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"113:23:42"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":7484,"nodeType":"StructuredDocumentation","src":"138:203:42","text":" @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n proxy whose upgrades are fully controlled by the current implementation."},"fullyImplemented":false,"id":7491,"linearizedBaseContracts":[7491],"name":"IERC1822Proxiable","nameLocation":"352:17:42","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7485,"nodeType":"StructuredDocumentation","src":"376:438:42","text":" @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n address.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy."},"functionSelector":"52d1902d","id":7490,"implemented":false,"kind":"function","modifiers":[],"name":"proxiableUUID","nameLocation":"828:13:42","nodeType":"FunctionDefinition","parameters":{"id":7486,"nodeType":"ParameterList","parameters":[],"src":"841:2:42"},"returnParameters":{"id":7489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7490,"src":"867:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"867:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"866:9:42"},"scope":7491,"src":"819:57:42","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7492,"src":"342:536:42"}],"src":"113:766:42"},"id":42},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","exportedSymbols":{"Address":[10496],"ERC1967Proxy":[7528],"ERC1967Upgrade":[7846],"IBeacon":[7908],"IERC1822Proxiable":[7491],"Proxy":[7898],"StorageSlot":[10578]},"id":7529,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7493,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"114:23:43"},{"absolutePath":"@openzeppelin/contracts/proxy/Proxy.sol","file":"../Proxy.sol","id":7494,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7529,"sourceUnit":7899,"src":"139:22:43","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol","file":"./ERC1967Upgrade.sol","id":7495,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7529,"sourceUnit":7847,"src":"162:30:43","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7497,"name":"Proxy","nodeType":"IdentifierPath","referencedDeclaration":7898,"src":"592:5:43"},"id":7498,"nodeType":"InheritanceSpecifier","src":"592:5:43"},{"baseName":{"id":7499,"name":"ERC1967Upgrade","nodeType":"IdentifierPath","referencedDeclaration":7846,"src":"599:14:43"},"id":7500,"nodeType":"InheritanceSpecifier","src":"599:14:43"}],"contractDependencies":[7846,7898],"contractKind":"contract","documentation":{"id":7496,"nodeType":"StructuredDocumentation","src":"194:372:43","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"id":7528,"linearizedBaseContracts":[7528,7846,7898],"name":"ERC1967Proxy","nameLocation":"576:12:43","nodeType":"ContractDefinition","nodes":[{"body":{"id":7514,"nodeType":"Block","src":"1014:56:43","statements":[{"expression":{"arguments":[{"id":7509,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7503,"src":"1042:6:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7510,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7505,"src":"1050:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":7511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1057:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7508,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7629,"src":"1024:17:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":7512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1024:39:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7513,"nodeType":"ExpressionStatement","src":"1024:39:43"}]},"documentation":{"id":7501,"nodeType":"StructuredDocumentation","src":"620:333:43","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n function call, and allows initializing the storage of the proxy like a Solidity constructor."},"id":7515,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7503,"mutability":"mutable","name":"_logic","nameLocation":"978:6:43","nodeType":"VariableDeclaration","scope":7515,"src":"970:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7502,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7505,"mutability":"mutable","name":"_data","nameLocation":"999:5:43","nodeType":"VariableDeclaration","scope":7515,"src":"986:18:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7504,"name":"bytes","nodeType":"ElementaryTypeName","src":"986:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"969:36:43"},"returnParameters":{"id":7507,"nodeType":"ParameterList","parameters":[],"src":"1014:0:43"},"scope":7528,"src":"958:112:43","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[7863],"body":{"id":7526,"nodeType":"Block","src":"1229:59:43","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7522,"name":"ERC1967Upgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7846,"src":"1246:14:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Upgrade_$7846_$","typeString":"type(contract ERC1967Upgrade)"}},"id":7523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_getImplementation","nodeType":"MemberAccess","referencedDeclaration":7560,"src":"1246:33:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1246:35:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7521,"id":7525,"nodeType":"Return","src":"1239:42:43"}]},"documentation":{"id":7516,"nodeType":"StructuredDocumentation","src":"1076:67:43","text":" @dev Returns the current implementation address."},"id":7527,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1157:15:43","nodeType":"FunctionDefinition","overrides":{"id":7518,"nodeType":"OverrideSpecifier","overrides":[],"src":"1197:8:43"},"parameters":{"id":7517,"nodeType":"ParameterList","parameters":[],"src":"1172:2:43"},"returnParameters":{"id":7521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7520,"mutability":"mutable","name":"impl","nameLocation":"1223:4:43","nodeType":"VariableDeclaration","scope":7527,"src":"1215:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7519,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1214:14:43"},"scope":7528,"src":"1148:140:43","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":7529,"src":"567:723:43"}],"src":"114:1177:43"},"id":43},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol","exportedSymbols":{"Address":[10496],"ERC1967Upgrade":[7846],"IBeacon":[7908],"IERC1822Proxiable":[7491],"StorageSlot":[10578]},"id":7847,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7530,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"116:23:44"},{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","id":7531,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7847,"sourceUnit":7909,"src":"141:31:44","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC1822.sol","file":"../../interfaces/draft-IERC1822.sol","id":7532,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7847,"sourceUnit":7492,"src":"173:45:44","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":7533,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7847,"sourceUnit":10497,"src":"219:33:44","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","id":7534,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7847,"sourceUnit":10579,"src":"253:37:44","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":7535,"nodeType":"StructuredDocumentation","src":"292:236:44","text":" @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n _Available since v4.1._\n @custom:oz-upgrades-unsafe-allow delegatecall"},"fullyImplemented":true,"id":7846,"linearizedBaseContracts":[7846],"name":"ERC1967Upgrade","nameLocation":"547:14:44","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":7538,"mutability":"constant","name":"_ROLLBACK_SLOT","nameLocation":"672:14:44","nodeType":"VariableDeclaration","scope":7846,"src":"647:108:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"647:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834393130666466613136666564333236306564306537313437663763633664613131613630323038623562393430366431326136333536313466666439313433","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"689:66:44","typeDescriptions":{"typeIdentifier":"t_rational_33048860383849004559742813297059419343339852917517107368639918720169455489347_by_1","typeString":"int_const 3304...(69 digits omitted)...9347"},"value":"0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"},"visibility":"private"},{"constant":true,"documentation":{"id":7539,"nodeType":"StructuredDocumentation","src":"762:214:44","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n validated in the constructor."},"id":7542,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","nameLocation":"1007:20:44","nodeType":"VariableDeclaration","scope":7846,"src":"981:115:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"981:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":7541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1030:66:44","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":7543,"nodeType":"StructuredDocumentation","src":"1103:68:44","text":" @dev Emitted when the implementation is upgraded."},"id":7547,"name":"Upgraded","nameLocation":"1182:8:44","nodeType":"EventDefinition","parameters":{"id":7546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7545,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"1207:14:44","nodeType":"VariableDeclaration","scope":7547,"src":"1191:30:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7544,"name":"address","nodeType":"ElementaryTypeName","src":"1191:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1190:32:44"},"src":"1176:47:44"},{"body":{"id":7559,"nodeType":"Block","src":"1363:78:44","statements":[{"expression":{"expression":{"arguments":[{"id":7555,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"1407:20:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7553,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"1380:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"1380:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1380:48:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"1380:54:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7552,"id":7558,"nodeType":"Return","src":"1373:61:44"}]},"documentation":{"id":7548,"nodeType":"StructuredDocumentation","src":"1229:67:44","text":" @dev Returns the current implementation address."},"id":7560,"implemented":true,"kind":"function","modifiers":[],"name":"_getImplementation","nameLocation":"1310:18:44","nodeType":"FunctionDefinition","parameters":{"id":7549,"nodeType":"ParameterList","parameters":[],"src":"1328:2:44"},"returnParameters":{"id":7552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7560,"src":"1354:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7550,"name":"address","nodeType":"ElementaryTypeName","src":"1354:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1353:9:44"},"scope":7846,"src":"1301:140:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7583,"nodeType":"Block","src":"1595:196:44","statements":[{"expression":{"arguments":[{"arguments":[{"id":7569,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7563,"src":"1632:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7567,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"1613:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10219,"src":"1613:18:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1613:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":7571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1652:47:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":7566,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1605:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1605:95:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7573,"nodeType":"ExpressionStatement","src":"1605:95:44"},{"expression":{"id":7581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":7577,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"1737:20:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7574,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"1710:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"1710:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1710:48:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"1710:54:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7580,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7563,"src":"1767:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1710:74:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7582,"nodeType":"ExpressionStatement","src":"1710:74:44"}]},"documentation":{"id":7561,"nodeType":"StructuredDocumentation","src":"1447:80:44","text":" @dev Stores a new address in the EIP1967 implementation slot."},"id":7584,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1541:18:44","nodeType":"FunctionDefinition","parameters":{"id":7564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7563,"mutability":"mutable","name":"newImplementation","nameLocation":"1568:17:44","nodeType":"VariableDeclaration","scope":7584,"src":"1560:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7562,"name":"address","nodeType":"ElementaryTypeName","src":"1560:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1559:27:44"},"returnParameters":{"id":7565,"nodeType":"ParameterList","parameters":[],"src":"1595:0:44"},"scope":7846,"src":"1532:259:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7598,"nodeType":"Block","src":"1953:96:44","statements":[{"expression":{"arguments":[{"id":7591,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7587,"src":"1982:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7590,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7584,"src":"1963:18:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1963:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7593,"nodeType":"ExpressionStatement","src":"1963:37:44"},{"eventCall":{"arguments":[{"id":7595,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7587,"src":"2024:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7594,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7547,"src":"2015:8:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2015:27:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7597,"nodeType":"EmitStatement","src":"2010:32:44"}]},"documentation":{"id":7585,"nodeType":"StructuredDocumentation","src":"1797:95:44","text":" @dev Perform implementation upgrade\n Emits an {Upgraded} event."},"id":7599,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeTo","nameLocation":"1906:10:44","nodeType":"FunctionDefinition","parameters":{"id":7588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7587,"mutability":"mutable","name":"newImplementation","nameLocation":"1925:17:44","nodeType":"VariableDeclaration","scope":7599,"src":"1917:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7586,"name":"address","nodeType":"ElementaryTypeName","src":"1917:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1916:27:44"},"returnParameters":{"id":7589,"nodeType":"ParameterList","parameters":[],"src":"1953:0:44"},"scope":7846,"src":"1897:152:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7628,"nodeType":"Block","src":"2311:167:44","statements":[{"expression":{"arguments":[{"id":7610,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7602,"src":"2332:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7609,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7599,"src":"2321:10:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2321:29:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7612,"nodeType":"ExpressionStatement","src":"2321:29:44"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7613,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7604,"src":"2364:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2364:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2378:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2364:15:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":7617,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7606,"src":"2383:9:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2364:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7627,"nodeType":"IfStatement","src":"2360:112:44","trueBody":{"id":7626,"nodeType":"Block","src":"2394:78:44","statements":[{"expression":{"arguments":[{"id":7622,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7602,"src":"2437:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7623,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7604,"src":"2456:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7619,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"2408:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":10429,"src":"2408:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":7624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2408:53:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7625,"nodeType":"ExpressionStatement","src":"2408:53:44"}]}}]},"documentation":{"id":7600,"nodeType":"StructuredDocumentation","src":"2055:123:44","text":" @dev Perform implementation upgrade with additional setup call.\n Emits an {Upgraded} event."},"id":7629,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","nameLocation":"2192:17:44","nodeType":"FunctionDefinition","parameters":{"id":7607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7602,"mutability":"mutable","name":"newImplementation","nameLocation":"2227:17:44","nodeType":"VariableDeclaration","scope":7629,"src":"2219:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7601,"name":"address","nodeType":"ElementaryTypeName","src":"2219:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7604,"mutability":"mutable","name":"data","nameLocation":"2267:4:44","nodeType":"VariableDeclaration","scope":7629,"src":"2254:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7603,"name":"bytes","nodeType":"ElementaryTypeName","src":"2254:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7606,"mutability":"mutable","name":"forceCall","nameLocation":"2286:9:44","nodeType":"VariableDeclaration","scope":7629,"src":"2281:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7605,"name":"bool","nodeType":"ElementaryTypeName","src":"2281:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2209:92:44"},"returnParameters":{"id":7608,"nodeType":"ParameterList","parameters":[],"src":"2311:0:44"},"scope":7846,"src":"2183:295:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7681,"nodeType":"Block","src":"2782:820:44","statements":[{"condition":{"expression":{"arguments":[{"id":7641,"name":"_ROLLBACK_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7538,"src":"3123:14:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7639,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"3096:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBooleanSlot","nodeType":"MemberAccess","referencedDeclaration":10555,"src":"3096:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_BooleanSlot_$10527_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.BooleanSlot storage pointer)"}},"id":7642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3096:42:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10527_storage_ptr","typeString":"struct StorageSlot.BooleanSlot storage pointer"}},"id":7643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10526,"src":"3096:48:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7679,"nodeType":"Block","src":"3214:382:44","statements":[{"clauses":[{"block":{"id":7664,"nodeType":"Block","src":"3308:115:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7658,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"3334:4:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7659,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"3342:20:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3334:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f786961626c6555554944","id":7661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3364:43:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""},"value":"ERC1967Upgrade: unsupported proxiableUUID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""}],"id":7657,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3326:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3326:82:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7663,"nodeType":"ExpressionStatement","src":"3326:82:44"}]},"errorName":"","id":7665,"nodeType":"TryCatchClause","parameters":{"id":7656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7655,"mutability":"mutable","name":"slot","nameLocation":"3302:4:44","nodeType":"VariableDeclaration","scope":7665,"src":"3294:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3294:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3293:14:44"},"src":"3285:138:44"},{"block":{"id":7670,"nodeType":"Block","src":"3430:89:44","statements":[{"expression":{"arguments":[{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e746174696f6e206973206e6f742055555053","id":7667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3455:48:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""},"value":"ERC1967Upgrade: new implementation is not UUPS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""}],"id":7666,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"3448:6:44","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3448:56:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7669,"nodeType":"ExpressionStatement","src":"3448:56:44"}]},"errorName":"","id":7671,"nodeType":"TryCatchClause","src":"3424:95:44"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":7650,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"3250:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7649,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7491,"src":"3232:17:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822Proxiable_$7491_$","typeString":"type(contract IERC1822Proxiable)"}},"id":7651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3232:36:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822Proxiable_$7491","typeString":"contract IERC1822Proxiable"}},"id":7652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":7490,"src":"3232:50:44","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":7653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3232:52:44","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7672,"nodeType":"TryStatement","src":"3228:291:44"},{"expression":{"arguments":[{"id":7674,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"3550:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7675,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7634,"src":"3569:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7676,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7636,"src":"3575:9:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7673,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7629,"src":"3532:17:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":7677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3532:53:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7678,"nodeType":"ExpressionStatement","src":"3532:53:44"}]},"id":7680,"nodeType":"IfStatement","src":"3092:504:44","trueBody":{"id":7648,"nodeType":"Block","src":"3146:62:44","statements":[{"expression":{"arguments":[{"id":7645,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"3179:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7644,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7584,"src":"3160:18:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3160:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7647,"nodeType":"ExpressionStatement","src":"3160:37:44"}]}}]},"documentation":{"id":7630,"nodeType":"StructuredDocumentation","src":"2484:161:44","text":" @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n Emits an {Upgraded} event."},"id":7682,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"2659:21:44","nodeType":"FunctionDefinition","parameters":{"id":7637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7632,"mutability":"mutable","name":"newImplementation","nameLocation":"2698:17:44","nodeType":"VariableDeclaration","scope":7682,"src":"2690:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7631,"name":"address","nodeType":"ElementaryTypeName","src":"2690:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7634,"mutability":"mutable","name":"data","nameLocation":"2738:4:44","nodeType":"VariableDeclaration","scope":7682,"src":"2725:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7633,"name":"bytes","nodeType":"ElementaryTypeName","src":"2725:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7636,"mutability":"mutable","name":"forceCall","nameLocation":"2757:9:44","nodeType":"VariableDeclaration","scope":7682,"src":"2752:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7635,"name":"bool","nodeType":"ElementaryTypeName","src":"2752:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2680:92:44"},"returnParameters":{"id":7638,"nodeType":"ParameterList","parameters":[],"src":"2782:0:44"},"scope":7846,"src":"2650:952:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":7683,"nodeType":"StructuredDocumentation","src":"3608:189:44","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n validated in the constructor."},"id":7686,"mutability":"constant","name":"_ADMIN_SLOT","nameLocation":"3828:11:44","nodeType":"VariableDeclaration","scope":7846,"src":"3802:106:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7684,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3802:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":7685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3842:66:44","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":7687,"nodeType":"StructuredDocumentation","src":"3915:67:44","text":" @dev Emitted when the admin account has changed."},"id":7693,"name":"AdminChanged","nameLocation":"3993:12:44","nodeType":"EventDefinition","parameters":{"id":7692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7689,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"4014:13:44","nodeType":"VariableDeclaration","scope":7693,"src":"4006:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7688,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7691,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"4037:8:44","nodeType":"VariableDeclaration","scope":7693,"src":"4029:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7690,"name":"address","nodeType":"ElementaryTypeName","src":"4029:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4005:41:44"},"src":"3987:60:44"},{"body":{"id":7705,"nodeType":"Block","src":"4161:69:44","statements":[{"expression":{"expression":{"arguments":[{"id":7701,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7686,"src":"4205:11:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7699,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"4178:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"4178:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4178:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"4178:45:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7698,"id":7704,"nodeType":"Return","src":"4171:52:44"}]},"documentation":{"id":7694,"nodeType":"StructuredDocumentation","src":"4053:50:44","text":" @dev Returns the current admin."},"id":7706,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"4117:9:44","nodeType":"FunctionDefinition","parameters":{"id":7695,"nodeType":"ParameterList","parameters":[],"src":"4126:2:44"},"returnParameters":{"id":7698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7706,"src":"4152:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7696,"name":"address","nodeType":"ElementaryTypeName","src":"4152:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4151:9:44"},"scope":7846,"src":"4108:122:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7731,"nodeType":"Block","src":"4357:156:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7713,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7709,"src":"4375:8:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4395:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4387:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7714,"name":"address","nodeType":"ElementaryTypeName","src":"4387:7:44","typeDescriptions":{}}},"id":7717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4387:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4375:22:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061646472657373","id":7719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4399:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""},"value":"ERC1967: new admin is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""}],"id":7712,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4367:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4367:73:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7721,"nodeType":"ExpressionStatement","src":"4367:73:44"},{"expression":{"id":7729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":7725,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7686,"src":"4477:11:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7722,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"4450:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"4450:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4450:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"4450:45:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7728,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7709,"src":"4498:8:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4450:56:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7730,"nodeType":"ExpressionStatement","src":"4450:56:44"}]},"documentation":{"id":7707,"nodeType":"StructuredDocumentation","src":"4236:71:44","text":" @dev Stores a new address in the EIP1967 admin slot."},"id":7732,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"4321:9:44","nodeType":"FunctionDefinition","parameters":{"id":7710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7709,"mutability":"mutable","name":"newAdmin","nameLocation":"4339:8:44","nodeType":"VariableDeclaration","scope":7732,"src":"4331:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7708,"name":"address","nodeType":"ElementaryTypeName","src":"4331:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4330:18:44"},"returnParameters":{"id":7711,"nodeType":"ParameterList","parameters":[],"src":"4357:0:44"},"scope":7846,"src":"4312:201:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7748,"nodeType":"Block","src":"4673:86:44","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7739,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7706,"src":"4701:9:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4701:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7741,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7735,"src":"4714:8:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7738,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"4688:12:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":7742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4688:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7743,"nodeType":"EmitStatement","src":"4683:40:44"},{"expression":{"arguments":[{"id":7745,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7735,"src":"4743:8:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7744,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7732,"src":"4733:9:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4733:19:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7747,"nodeType":"ExpressionStatement","src":"4733:19:44"}]},"documentation":{"id":7733,"nodeType":"StructuredDocumentation","src":"4519:100:44","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event."},"id":7749,"implemented":true,"kind":"function","modifiers":[],"name":"_changeAdmin","nameLocation":"4633:12:44","nodeType":"FunctionDefinition","parameters":{"id":7736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7735,"mutability":"mutable","name":"newAdmin","nameLocation":"4654:8:44","nodeType":"VariableDeclaration","scope":7749,"src":"4646:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7734,"name":"address","nodeType":"ElementaryTypeName","src":"4646:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4645:18:44"},"returnParameters":{"id":7737,"nodeType":"ParameterList","parameters":[],"src":"4673:0:44"},"scope":7846,"src":"4624:135:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":7750,"nodeType":"StructuredDocumentation","src":"4765:232:44","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"id":7753,"mutability":"constant","name":"_BEACON_SLOT","nameLocation":"5028:12:44","nodeType":"VariableDeclaration","scope":7846,"src":"5002:107:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5002:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":7752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5043:66:44","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":7754,"nodeType":"StructuredDocumentation","src":"5116:60:44","text":" @dev Emitted when the beacon is upgraded."},"id":7758,"name":"BeaconUpgraded","nameLocation":"5187:14:44","nodeType":"EventDefinition","parameters":{"id":7757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7756,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"5218:6:44","nodeType":"VariableDeclaration","scope":7758,"src":"5202:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7755,"name":"address","nodeType":"ElementaryTypeName","src":"5202:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5201:24:44"},"src":"5181:45:44"},{"body":{"id":7770,"nodeType":"Block","src":"5342:70:44","statements":[{"expression":{"expression":{"arguments":[{"id":7766,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7753,"src":"5386:12:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7764,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"5359:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"5359:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5359:40:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"5359:46:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7763,"id":7769,"nodeType":"Return","src":"5352:53:44"}]},"documentation":{"id":7759,"nodeType":"StructuredDocumentation","src":"5232:51:44","text":" @dev Returns the current beacon."},"id":7771,"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"5297:10:44","nodeType":"FunctionDefinition","parameters":{"id":7760,"nodeType":"ParameterList","parameters":[],"src":"5307:2:44"},"returnParameters":{"id":7763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7771,"src":"5333:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7761,"name":"address","nodeType":"ElementaryTypeName","src":"5333:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5332:9:44"},"scope":7846,"src":"5288:124:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7806,"nodeType":"Block","src":"5541:324:44","statements":[{"expression":{"arguments":[{"arguments":[{"id":7780,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7774,"src":"5578:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7778,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"5559:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10219,"src":"5559:18:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5559:29:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720626561636f6e206973206e6f74206120636f6e7472616374","id":7782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5590:39:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""},"value":"ERC1967: new beacon is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""}],"id":7777,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5551:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5551:79:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7784,"nodeType":"ExpressionStatement","src":"5551:79:44"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":7789,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7774,"src":"5688:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7788,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7908,"src":"5680:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$7908_$","typeString":"type(contract IBeacon)"}},"id":7790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5680:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$7908","typeString":"contract IBeacon"}},"id":7791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":7907,"src":"5680:33:44","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":7792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5680:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7786,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"5661:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10219,"src":"5661:18:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5661:55:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a20626561636f6e20696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":7794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5730:50:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""},"value":"ERC1967: beacon implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""}],"id":7785,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5640:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5640:150:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7796,"nodeType":"ExpressionStatement","src":"5640:150:44"},{"expression":{"id":7804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":7800,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7753,"src":"5827:12:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7797,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"5800:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"5800:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5800:40:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"5800:46:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7803,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7774,"src":"5849:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5800:58:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7805,"nodeType":"ExpressionStatement","src":"5800:58:44"}]},"documentation":{"id":7772,"nodeType":"StructuredDocumentation","src":"5418:71:44","text":" @dev Stores a new beacon in the EIP1967 beacon slot."},"id":7807,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"5503:10:44","nodeType":"FunctionDefinition","parameters":{"id":7775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7774,"mutability":"mutable","name":"newBeacon","nameLocation":"5522:9:44","nodeType":"VariableDeclaration","scope":7807,"src":"5514:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7773,"name":"address","nodeType":"ElementaryTypeName","src":"5514:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5513:19:44"},"returnParameters":{"id":7776,"nodeType":"ParameterList","parameters":[],"src":"5541:0:44"},"scope":7846,"src":"5494:371:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7844,"nodeType":"Block","src":"6294:217:44","statements":[{"expression":{"arguments":[{"id":7818,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6315:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7817,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7807,"src":"6304:10:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6304:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7820,"nodeType":"ExpressionStatement","src":"6304:21:44"},{"eventCall":{"arguments":[{"id":7822,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6355:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7821,"name":"BeaconUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7758,"src":"6340:14:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6340:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7824,"nodeType":"EmitStatement","src":"6335:30:44"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7825,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7812,"src":"6379:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6379:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6393:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6379:15:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":7829,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7814,"src":"6398:9:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6379:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7843,"nodeType":"IfStatement","src":"6375:130:44","trueBody":{"id":7842,"nodeType":"Block","src":"6409:96:44","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":7835,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6460:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7834,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7908,"src":"6452:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$7908_$","typeString":"type(contract IBeacon)"}},"id":7836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6452:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$7908","typeString":"contract IBeacon"}},"id":7837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":7907,"src":"6452:33:44","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":7838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6452:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7839,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7812,"src":"6489:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7831,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"6423:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":10429,"src":"6423:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":7840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6423:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7841,"nodeType":"ExpressionStatement","src":"6423:71:44"}]}}]},"documentation":{"id":7808,"nodeType":"StructuredDocumentation","src":"5871:292:44","text":" @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n Emits a {BeaconUpgraded} event."},"id":7845,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeBeaconToAndCall","nameLocation":"6177:23:44","nodeType":"FunctionDefinition","parameters":{"id":7815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7810,"mutability":"mutable","name":"newBeacon","nameLocation":"6218:9:44","nodeType":"VariableDeclaration","scope":7845,"src":"6210:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7809,"name":"address","nodeType":"ElementaryTypeName","src":"6210:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7812,"mutability":"mutable","name":"data","nameLocation":"6250:4:44","nodeType":"VariableDeclaration","scope":7845,"src":"6237:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7811,"name":"bytes","nodeType":"ElementaryTypeName","src":"6237:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7814,"mutability":"mutable","name":"forceCall","nameLocation":"6269:9:44","nodeType":"VariableDeclaration","scope":7845,"src":"6264:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7813,"name":"bool","nodeType":"ElementaryTypeName","src":"6264:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6200:84:44"},"returnParameters":{"id":7816,"nodeType":"ParameterList","parameters":[],"src":"6294:0:44"},"scope":7846,"src":"6168:343:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":7847,"src":"529:5984:44"}],"src":"116:6398:44"},"id":44},"@openzeppelin/contracts/proxy/Proxy.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/Proxy.sol","exportedSymbols":{"Proxy":[7898]},"id":7899,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7848,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:45"},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":7849,"nodeType":"StructuredDocumentation","src":"124:598:45","text":" @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":false,"id":7898,"linearizedBaseContracts":[7898],"name":"Proxy","nameLocation":"741:5:45","nodeType":"ContractDefinition","nodes":[{"body":{"id":7856,"nodeType":"Block","src":"1008:835:45","statements":[{"AST":{"nodeType":"YulBlock","src":"1027:810:45","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1280:1:45","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1283:1:45","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1286:12:45"},"nodeType":"YulFunctionCall","src":"1286:14:45"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1267:12:45"},"nodeType":"YulFunctionCall","src":"1267:34:45"},"nodeType":"YulExpressionStatement","src":"1267:34:45"},{"nodeType":"YulVariableDeclaration","src":"1428:74:45","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"1455:3:45"},"nodeType":"YulFunctionCall","src":"1455:5:45"},{"name":"implementation","nodeType":"YulIdentifier","src":"1462:14:45"},{"kind":"number","nodeType":"YulLiteral","src":"1478:1:45","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1481:12:45"},"nodeType":"YulFunctionCall","src":"1481:14:45"},{"kind":"number","nodeType":"YulLiteral","src":"1497:1:45","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1500:1:45","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"1442:12:45"},"nodeType":"YulFunctionCall","src":"1442:60:45"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"1432:6:45","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1570:1:45","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1573:1:45","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1576:14:45"},"nodeType":"YulFunctionCall","src":"1576:16:45"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"1555:14:45"},"nodeType":"YulFunctionCall","src":"1555:38:45"},"nodeType":"YulExpressionStatement","src":"1555:38:45"},{"cases":[{"body":{"nodeType":"YulBlock","src":"1688:59:45","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1713:1:45","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1716:14:45"},"nodeType":"YulFunctionCall","src":"1716:16:45"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1706:6:45"},"nodeType":"YulFunctionCall","src":"1706:27:45"},"nodeType":"YulExpressionStatement","src":"1706:27:45"}]},"nodeType":"YulCase","src":"1681:66:45","value":{"kind":"number","nodeType":"YulLiteral","src":"1686:1:45","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"1768:59:45","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1793:1:45","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1796:14:45"},"nodeType":"YulFunctionCall","src":"1796:16:45"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1786:6:45"},"nodeType":"YulFunctionCall","src":"1786:27:45"},"nodeType":"YulExpressionStatement","src":"1786:27:45"}]},"nodeType":"YulCase","src":"1760:67:45","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"1614:6:45"},"nodeType":"YulSwitch","src":"1607:220:45"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":7852,"isOffset":false,"isSlot":false,"src":"1462:14:45","valueSize":1}],"id":7855,"nodeType":"InlineAssembly","src":"1018:819:45"}]},"documentation":{"id":7850,"nodeType":"StructuredDocumentation","src":"753:190:45","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":7857,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"957:9:45","nodeType":"FunctionDefinition","parameters":{"id":7853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7852,"mutability":"mutable","name":"implementation","nameLocation":"975:14:45","nodeType":"VariableDeclaration","scope":7857,"src":"967:22:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7851,"name":"address","nodeType":"ElementaryTypeName","src":"967:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"966:24:45"},"returnParameters":{"id":7854,"nodeType":"ParameterList","parameters":[],"src":"1008:0:45"},"scope":7898,"src":"948:895:45","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":7858,"nodeType":"StructuredDocumentation","src":"1849:173:45","text":" @dev This is a virtual function that should be overridden so it returns the address to which the fallback function\n and {_fallback} should delegate."},"id":7863,"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2036:15:45","nodeType":"FunctionDefinition","parameters":{"id":7859,"nodeType":"ParameterList","parameters":[],"src":"2051:2:45"},"returnParameters":{"id":7862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7863,"src":"2085:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7860,"name":"address","nodeType":"ElementaryTypeName","src":"2085:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2084:9:45"},"scope":7898,"src":"2027:67:45","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7875,"nodeType":"Block","src":"2360:72:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7867,"name":"_beforeFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7897,"src":"2370:15:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":7868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2370:17:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7869,"nodeType":"ExpressionStatement","src":"2370:17:45"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7871,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7863,"src":"2407:15:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2407:17:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7870,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7857,"src":"2397:9:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2397:28:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7874,"nodeType":"ExpressionStatement","src":"2397:28:45"}]},"documentation":{"id":7864,"nodeType":"StructuredDocumentation","src":"2100:217:45","text":" @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":7876,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2331:9:45","nodeType":"FunctionDefinition","parameters":{"id":7865,"nodeType":"ParameterList","parameters":[],"src":"2340:2:45"},"returnParameters":{"id":7866,"nodeType":"ParameterList","parameters":[],"src":"2360:0:45"},"scope":7898,"src":"2322:110:45","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7883,"nodeType":"Block","src":"2665:28:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7880,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"2675:9:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":7881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2675:11:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7882,"nodeType":"ExpressionStatement","src":"2675:11:45"}]},"documentation":{"id":7877,"nodeType":"StructuredDocumentation","src":"2438:186:45","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data."},"id":7884,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7878,"nodeType":"ParameterList","parameters":[],"src":"2637:2:45"},"returnParameters":{"id":7879,"nodeType":"ParameterList","parameters":[],"src":"2665:0:45"},"scope":7898,"src":"2629:64:45","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":7891,"nodeType":"Block","src":"2888:28:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7888,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"2898:9:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":7889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2898:11:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7890,"nodeType":"ExpressionStatement","src":"2898:11:45"}]},"documentation":{"id":7885,"nodeType":"StructuredDocumentation","src":"2699:149:45","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n is empty."},"id":7892,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7886,"nodeType":"ParameterList","parameters":[],"src":"2860:2:45"},"returnParameters":{"id":7887,"nodeType":"ParameterList","parameters":[],"src":"2888:0:45"},"scope":7898,"src":"2853:63:45","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":7896,"nodeType":"Block","src":"3242:2:45","statements":[]},"documentation":{"id":7893,"nodeType":"StructuredDocumentation","src":"2922:271:45","text":" @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n call, or as part of the Solidity `fallback` or `receive` functions.\n If overridden should call `super._beforeFallback()`."},"id":7897,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"3207:15:45","nodeType":"FunctionDefinition","parameters":{"id":7894,"nodeType":"ParameterList","parameters":[],"src":"3222:2:45"},"returnParameters":{"id":7895,"nodeType":"ParameterList","parameters":[],"src":"3242:0:45"},"scope":7898,"src":"3198:46:45","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7899,"src":"723:2523:45"}],"src":"99:3148:45"},"id":45},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","exportedSymbols":{"IBeacon":[7908]},"id":7909,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7900,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"93:23:46"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":7901,"nodeType":"StructuredDocumentation","src":"118:79:46","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":7908,"linearizedBaseContracts":[7908],"name":"IBeacon","nameLocation":"208:7:46","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7902,"nodeType":"StructuredDocumentation","src":"222:162:46","text":" @dev Must return an address that can be used as a delegate call target.\n {BeaconProxy} will check that this address is a contract."},"functionSelector":"5c60da1b","id":7907,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"398:14:46","nodeType":"FunctionDefinition","parameters":{"id":7903,"nodeType":"ParameterList","parameters":[],"src":"412:2:46"},"returnParameters":{"id":7906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7907,"src":"438:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7904,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"437:9:46"},"scope":7908,"src":"389:58:46","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7909,"src":"198:251:46"}],"src":"93:357:46"},"id":46},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","exportedSymbols":{"Address":[10496],"Initializable":[8059]},"id":8060,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7910,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:47"},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":7911,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8060,"sourceUnit":10497,"src":"138:33:47","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":7912,"nodeType":"StructuredDocumentation","src":"173:2198:47","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":8059,"linearizedBaseContracts":[8059],"name":"Initializable","nameLocation":"2390:13:47","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":7913,"nodeType":"StructuredDocumentation","src":"2410:109:47","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":7915,"mutability":"mutable","name":"_initialized","nameLocation":"2538:12:47","nodeType":"VariableDeclaration","scope":8059,"src":"2524:26:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7914,"name":"uint8","nodeType":"ElementaryTypeName","src":"2524:5:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":7916,"nodeType":"StructuredDocumentation","src":"2557:91:47","text":" @dev Indicates that the contract is in the process of being initialized."},"id":7918,"mutability":"mutable","name":"_initializing","nameLocation":"2666:13:47","nodeType":"VariableDeclaration","scope":8059,"src":"2653:26:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7917,"name":"bool","nodeType":"ElementaryTypeName","src":"2653:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":7919,"nodeType":"StructuredDocumentation","src":"2686:90:47","text":" @dev Triggered when the contract has been initialized or reinitialized."},"id":7923,"name":"Initialized","nameLocation":"2787:11:47","nodeType":"EventDefinition","parameters":{"id":7922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7921,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2805:7:47","nodeType":"VariableDeclaration","scope":7923,"src":"2799:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7920,"name":"uint8","nodeType":"ElementaryTypeName","src":"2799:5:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2798:15:47"},"src":"2781:33:47"},{"body":{"id":7978,"nodeType":"Block","src":"3090:472:47","statements":[{"assignments":[7927],"declarations":[{"constant":false,"id":7927,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3105:14:47","nodeType":"VariableDeclaration","scope":7978,"src":"3100:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7926,"name":"bool","nodeType":"ElementaryTypeName","src":"3100:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7930,"initialValue":{"id":7929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3122:14:47","subExpression":{"id":7928,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"3123:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3100:36:47"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7932,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"3168:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7933,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"3186:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":7934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3201:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3186:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3168:34:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7937,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3167:36:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3208:34:47","subExpression":{"arguments":[{"arguments":[{"id":7942,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"3236:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$8059","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$8059","typeString":"contract Initializable"}],"id":7941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3228:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7940,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:47","typeDescriptions":{}}},"id":7943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3228:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7938,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"3209:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10219,"src":"3209:18:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3209:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7946,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"3246:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":7947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3262:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3246:17:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3208:55:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7950,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3207:57:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3167:97:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":7952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3278:48:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":7931,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3146:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3146:190:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7954,"nodeType":"ExpressionStatement","src":"3146:190:47"},{"expression":{"id":7957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7955,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"3346:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":7956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3361:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3346:16:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":7958,"nodeType":"ExpressionStatement","src":"3346:16:47"},{"condition":{"id":7959,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"3376:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7965,"nodeType":"IfStatement","src":"3372:65:47","trueBody":{"id":7964,"nodeType":"Block","src":"3392:45:47","statements":[{"expression":{"id":7962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7960,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"3406:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3422:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3406:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7963,"nodeType":"ExpressionStatement","src":"3406:20:47"}]}},{"id":7966,"nodeType":"PlaceholderStatement","src":"3446:1:47"},{"condition":{"id":7967,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"3461:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7977,"nodeType":"IfStatement","src":"3457:99:47","trueBody":{"id":7976,"nodeType":"Block","src":"3477:79:47","statements":[{"expression":{"id":7970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7968,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"3491:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":7969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3507:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3491:21:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7971,"nodeType":"ExpressionStatement","src":"3491:21:47"},{"eventCall":{"arguments":[{"hexValue":"31","id":7973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3543:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":7972,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7923,"src":"3531:11:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":7974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3531:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7975,"nodeType":"EmitStatement","src":"3526:19:47"}]}}]},"documentation":{"id":7924,"nodeType":"StructuredDocumentation","src":"2820:242:47","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts. Equivalent to `reinitializer(1)`."},"id":7979,"name":"initializer","nameLocation":"3076:11:47","nodeType":"ModifierDefinition","parameters":{"id":7925,"nodeType":"ParameterList","parameters":[],"src":"3087:2:47"},"src":"3067:495:47","virtual":false,"visibility":"internal"},{"body":{"id":8011,"nodeType":"Block","src":"4377:255:47","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4395:14:47","subExpression":{"id":7985,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"4396:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7987,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"4413:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7988,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7982,"src":"4428:7:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4413:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4395:40:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":7991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4437:48:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":7984,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4387:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4387:99:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7993,"nodeType":"ExpressionStatement","src":"4387:99:47"},{"expression":{"id":7996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7994,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"4496:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7995,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7982,"src":"4511:7:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4496:22:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":7997,"nodeType":"ExpressionStatement","src":"4496:22:47"},{"expression":{"id":8000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7998,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"4528:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4544:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4528:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8001,"nodeType":"ExpressionStatement","src":"4528:20:47"},{"id":8002,"nodeType":"PlaceholderStatement","src":"4558:1:47"},{"expression":{"id":8005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8003,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"4569:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":8004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4585:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4569:21:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8006,"nodeType":"ExpressionStatement","src":"4569:21:47"},{"eventCall":{"arguments":[{"id":8008,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7982,"src":"4617:7:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8007,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7923,"src":"4605:11:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":8009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4605:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8010,"nodeType":"EmitStatement","src":"4600:25:47"}]},"documentation":{"id":7980,"nodeType":"StructuredDocumentation","src":"3568:766:47","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n `initializer` is equivalent to `reinitializer(1)`, so a reinitializer may be used after the original\n initialization step. This is essential to configure modules that are added through upgrades and that require\n initialization.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator."},"id":8012,"name":"reinitializer","nameLocation":"4348:13:47","nodeType":"ModifierDefinition","parameters":{"id":7983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7982,"mutability":"mutable","name":"version","nameLocation":"4368:7:47","nodeType":"VariableDeclaration","scope":8012,"src":"4362:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7981,"name":"uint8","nodeType":"ElementaryTypeName","src":"4362:5:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4361:15:47"},"src":"4339:293:47","virtual":false,"visibility":"internal"},{"body":{"id":8021,"nodeType":"Block","src":"4870:97:47","statements":[{"expression":{"arguments":[{"id":8016,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"4888:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":8017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4903:45:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""},"value":"Initializable: contract is not initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""}],"id":8015,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4880:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4880:69:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8019,"nodeType":"ExpressionStatement","src":"4880:69:47"},{"id":8020,"nodeType":"PlaceholderStatement","src":"4959:1:47"}]},"documentation":{"id":8013,"nodeType":"StructuredDocumentation","src":"4638:199:47","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":8022,"name":"onlyInitializing","nameLocation":"4851:16:47","nodeType":"ModifierDefinition","parameters":{"id":8014,"nodeType":"ParameterList","parameters":[],"src":"4867:2:47"},"src":"4842:125:47","virtual":false,"visibility":"internal"},{"body":{"id":8057,"nodeType":"Block","src":"5415:230:47","statements":[{"expression":{"arguments":[{"id":8028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5433:14:47","subExpression":{"id":8027,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"5434:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":8029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5449:41:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""},"value":"Initializable: contract is initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""}],"id":8026,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5425:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5425:66:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8031,"nodeType":"ExpressionStatement","src":"5425:66:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":8038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8032,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"5505:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":8035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5525:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8034,"name":"uint8","nodeType":"ElementaryTypeName","src":"5525:5:47","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":8033,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"5520:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5520:11:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":8037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5520:15:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5505:30:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8056,"nodeType":"IfStatement","src":"5501:138:47","trueBody":{"id":8055,"nodeType":"Block","src":"5537:102:47","statements":[{"expression":{"id":8045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8039,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"5551:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":8042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5571:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8041,"name":"uint8","nodeType":"ElementaryTypeName","src":"5571:5:47","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":8040,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"5566:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5566:11:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":8044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5566:15:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5551:30:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":8046,"nodeType":"ExpressionStatement","src":"5551:30:47"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":8050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5617:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8049,"name":"uint8","nodeType":"ElementaryTypeName","src":"5617:5:47","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":8048,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"5612:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5612:11:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":8052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5612:15:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8047,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7923,"src":"5600:11:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":8053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5600:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8054,"nodeType":"EmitStatement","src":"5595:33:47"}]}}]},"documentation":{"id":8023,"nodeType":"StructuredDocumentation","src":"4973:388:47","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies."},"id":8058,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5375:20:47","nodeType":"FunctionDefinition","parameters":{"id":8024,"nodeType":"ParameterList","parameters":[],"src":"5395:2:47"},"returnParameters":{"id":8025,"nodeType":"ParameterList","parameters":[],"src":"5415:0:47"},"scope":8059,"src":"5366:279:47","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8060,"src":"2372:3275:47"}],"src":"113:5535:47"},"id":47},"@openzeppelin/contracts/security/Pausable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","exportedSymbols":{"Context":[10518],"Pausable":[8167]},"id":8168,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8061,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:48"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":8062,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8168,"sourceUnit":10519,"src":"130:30:48","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8064,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"632:7:48"},"id":8065,"nodeType":"InheritanceSpecifier","src":"632:7:48"}],"contractDependencies":[10518],"contractKind":"contract","documentation":{"id":8063,"nodeType":"StructuredDocumentation","src":"162:439:48","text":" @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."},"fullyImplemented":true,"id":8167,"linearizedBaseContracts":[8167,10518],"name":"Pausable","nameLocation":"620:8:48","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":8066,"nodeType":"StructuredDocumentation","src":"646:73:48","text":" @dev Emitted when the pause is triggered by `account`."},"id":8070,"name":"Paused","nameLocation":"730:6:48","nodeType":"EventDefinition","parameters":{"id":8069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8068,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"745:7:48","nodeType":"VariableDeclaration","scope":8070,"src":"737:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8067,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"736:17:48"},"src":"724:30:48"},{"anonymous":false,"documentation":{"id":8071,"nodeType":"StructuredDocumentation","src":"760:70:48","text":" @dev Emitted when the pause is lifted by `account`."},"id":8075,"name":"Unpaused","nameLocation":"841:8:48","nodeType":"EventDefinition","parameters":{"id":8074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8073,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"858:7:48","nodeType":"VariableDeclaration","scope":8075,"src":"850:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8072,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"849:17:48"},"src":"835:32:48"},{"constant":false,"id":8077,"mutability":"mutable","name":"_paused","nameLocation":"886:7:48","nodeType":"VariableDeclaration","scope":8167,"src":"873:20:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8076,"name":"bool","nodeType":"ElementaryTypeName","src":"873:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"body":{"id":8085,"nodeType":"Block","src":"986:32:48","statements":[{"expression":{"id":8083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8081,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"996:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":8082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1006:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"996:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8084,"nodeType":"ExpressionStatement","src":"996:15:48"}]},"documentation":{"id":8078,"nodeType":"StructuredDocumentation","src":"900:67:48","text":" @dev Initializes the contract in unpaused state."},"id":8086,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8079,"nodeType":"ParameterList","parameters":[],"src":"983:2:48"},"returnParameters":{"id":8080,"nodeType":"ParameterList","parameters":[],"src":"986:0:48"},"scope":8167,"src":"972:46:48","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8093,"nodeType":"Block","src":"1229:47:48","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":8089,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"1239:17:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":8090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1239:19:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8091,"nodeType":"ExpressionStatement","src":"1239:19:48"},{"id":8092,"nodeType":"PlaceholderStatement","src":"1268:1:48"}]},"documentation":{"id":8087,"nodeType":"StructuredDocumentation","src":"1024:175:48","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"id":8094,"name":"whenNotPaused","nameLocation":"1213:13:48","nodeType":"ModifierDefinition","parameters":{"id":8088,"nodeType":"ParameterList","parameters":[],"src":"1226:2:48"},"src":"1204:72:48","virtual":false,"visibility":"internal"},{"body":{"id":8101,"nodeType":"Block","src":"1476:44:48","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":8097,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8134,"src":"1486:14:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":8098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1486:16:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8099,"nodeType":"ExpressionStatement","src":"1486:16:48"},{"id":8100,"nodeType":"PlaceholderStatement","src":"1512:1:48"}]},"documentation":{"id":8095,"nodeType":"StructuredDocumentation","src":"1282:167:48","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":8102,"name":"whenPaused","nameLocation":"1463:10:48","nodeType":"ModifierDefinition","parameters":{"id":8096,"nodeType":"ParameterList","parameters":[],"src":"1473:2:48"},"src":"1454:66:48","virtual":false,"visibility":"internal"},{"body":{"id":8110,"nodeType":"Block","src":"1668:31:48","statements":[{"expression":{"id":8108,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"1685:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8107,"id":8109,"nodeType":"Return","src":"1678:14:48"}]},"documentation":{"id":8103,"nodeType":"StructuredDocumentation","src":"1526:84:48","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":8111,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1624:6:48","nodeType":"FunctionDefinition","parameters":{"id":8104,"nodeType":"ParameterList","parameters":[],"src":"1630:2:48"},"returnParameters":{"id":8107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8111,"src":"1662:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8105,"name":"bool","nodeType":"ElementaryTypeName","src":"1662:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1661:6:48"},"scope":8167,"src":"1615:84:48","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8122,"nodeType":"Block","src":"1818:55:48","statements":[{"expression":{"arguments":[{"id":8118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1836:9:48","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8116,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8111,"src":"1837:6:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":8117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1837:8:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a20706175736564","id":8119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1847:18:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""},"value":"Pausable: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""}],"id":8115,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1828:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1828:38:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8121,"nodeType":"ExpressionStatement","src":"1828:38:48"}]},"documentation":{"id":8112,"nodeType":"StructuredDocumentation","src":"1705:57:48","text":" @dev Throws if the contract is paused."},"id":8123,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1776:17:48","nodeType":"FunctionDefinition","parameters":{"id":8113,"nodeType":"ParameterList","parameters":[],"src":"1793:2:48"},"returnParameters":{"id":8114,"nodeType":"ParameterList","parameters":[],"src":"1818:0:48"},"scope":8167,"src":"1767:106:48","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8133,"nodeType":"Block","src":"1993:58:48","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8128,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8111,"src":"2011:6:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":8129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2011:8:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a206e6f7420706175736564","id":8130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2021:22:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""},"value":"Pausable: not paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""}],"id":8127,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2003:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2003:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8132,"nodeType":"ExpressionStatement","src":"2003:41:48"}]},"documentation":{"id":8124,"nodeType":"StructuredDocumentation","src":"1879:61:48","text":" @dev Throws if the contract is not paused."},"id":8134,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1954:14:48","nodeType":"FunctionDefinition","parameters":{"id":8125,"nodeType":"ParameterList","parameters":[],"src":"1968:2:48"},"returnParameters":{"id":8126,"nodeType":"ParameterList","parameters":[],"src":"1993:0:48"},"scope":8167,"src":"1945:106:48","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8149,"nodeType":"Block","src":"2235:66:48","statements":[{"expression":{"id":8142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8140,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"2245:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2255:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2245:14:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8143,"nodeType":"ExpressionStatement","src":"2245:14:48"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8145,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"2281:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2281:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8144,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8070,"src":"2274:6:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2274:20:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8148,"nodeType":"EmitStatement","src":"2269:25:48"}]},"documentation":{"id":8135,"nodeType":"StructuredDocumentation","src":"2057:124:48","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":8150,"implemented":true,"kind":"function","modifiers":[{"id":8138,"modifierName":{"id":8137,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":8094,"src":"2221:13:48"},"nodeType":"ModifierInvocation","src":"2221:13:48"}],"name":"_pause","nameLocation":"2195:6:48","nodeType":"FunctionDefinition","parameters":{"id":8136,"nodeType":"ParameterList","parameters":[],"src":"2201:2:48"},"returnParameters":{"id":8139,"nodeType":"ParameterList","parameters":[],"src":"2235:0:48"},"scope":8167,"src":"2186:115:48","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8165,"nodeType":"Block","src":"2481:69:48","statements":[{"expression":{"id":8158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8156,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"2491:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":8157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2501:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2491:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8159,"nodeType":"ExpressionStatement","src":"2491:15:48"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8161,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"2530:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2530:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8160,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8075,"src":"2521:8:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2521:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8164,"nodeType":"EmitStatement","src":"2516:27:48"}]},"documentation":{"id":8151,"nodeType":"StructuredDocumentation","src":"2307:121:48","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":8166,"implemented":true,"kind":"function","modifiers":[{"id":8154,"modifierName":{"id":8153,"name":"whenPaused","nodeType":"IdentifierPath","referencedDeclaration":8102,"src":"2470:10:48"},"nodeType":"ModifierInvocation","src":"2470:10:48"}],"name":"_unpause","nameLocation":"2442:8:48","nodeType":"FunctionDefinition","parameters":{"id":8152,"nodeType":"ParameterList","parameters":[],"src":"2450:2:48"},"returnParameters":{"id":8155,"nodeType":"ParameterList","parameters":[],"src":"2481:0:48"},"scope":8167,"src":"2433:117:48","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8168,"src":"602:1950:48"}],"src":"105:2448:48"},"id":48},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[10518],"ERC20":[8753],"IERC20":[8831],"IERC20Metadata":[8856]},"id":8754,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8169,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:49"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":8170,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8754,"sourceUnit":8832,"src":"130:22:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":8171,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8754,"sourceUnit":8857,"src":"153:41:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":8172,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8754,"sourceUnit":10519,"src":"195:33:49","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8174,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"1421:7:49"},"id":8175,"nodeType":"InheritanceSpecifier","src":"1421:7:49"},{"baseName":{"id":8176,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"1430:6:49"},"id":8177,"nodeType":"InheritanceSpecifier","src":"1430:6:49"},{"baseName":{"id":8178,"name":"IERC20Metadata","nodeType":"IdentifierPath","referencedDeclaration":8856,"src":"1438:14:49"},"id":8179,"nodeType":"InheritanceSpecifier","src":"1438:14:49"}],"contractDependencies":[8831,8856,10518],"contractKind":"contract","documentation":{"id":8173,"nodeType":"StructuredDocumentation","src":"230:1172:49","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"id":8753,"linearizedBaseContracts":[8753,8856,8831,10518],"name":"ERC20","nameLocation":"1412:5:49","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8183,"mutability":"mutable","name":"_balances","nameLocation":"1495:9:49","nodeType":"VariableDeclaration","scope":8753,"src":"1459:45:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":8182,"keyType":{"id":8180,"name":"address","nodeType":"ElementaryTypeName","src":"1467:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1459:27:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":8181,"name":"uint256","nodeType":"ElementaryTypeName","src":"1478:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":8189,"mutability":"mutable","name":"_allowances","nameLocation":"1567:11:49","nodeType":"VariableDeclaration","scope":8753,"src":"1511:67:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":8188,"keyType":{"id":8184,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1511:47:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":8187,"keyType":{"id":8185,"name":"address","nodeType":"ElementaryTypeName","src":"1538:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1530:27:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":8186,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":8191,"mutability":"mutable","name":"_totalSupply","nameLocation":"1601:12:49","nodeType":"VariableDeclaration","scope":8753,"src":"1585:28:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8190,"name":"uint256","nodeType":"ElementaryTypeName","src":"1585:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":8193,"mutability":"mutable","name":"_name","nameLocation":"1635:5:49","nodeType":"VariableDeclaration","scope":8753,"src":"1620:20:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":8192,"name":"string","nodeType":"ElementaryTypeName","src":"1620:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":8195,"mutability":"mutable","name":"_symbol","nameLocation":"1661:7:49","nodeType":"VariableDeclaration","scope":8753,"src":"1646:22:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":8194,"name":"string","nodeType":"ElementaryTypeName","src":"1646:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":8211,"nodeType":"Block","src":"2034:57:49","statements":[{"expression":{"id":8205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8203,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8193,"src":"2044:5:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8204,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8198,"src":"2052:5:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2044:13:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8206,"nodeType":"ExpressionStatement","src":"2044:13:49"},{"expression":{"id":8209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8207,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"2067:7:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8208,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8200,"src":"2077:7:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2067:17:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8210,"nodeType":"ExpressionStatement","src":"2067:17:49"}]},"documentation":{"id":8196,"nodeType":"StructuredDocumentation","src":"1675:298:49","text":" @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction."},"id":8212,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8198,"mutability":"mutable","name":"name_","nameLocation":"2004:5:49","nodeType":"VariableDeclaration","scope":8212,"src":"1990:19:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8197,"name":"string","nodeType":"ElementaryTypeName","src":"1990:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8200,"mutability":"mutable","name":"symbol_","nameLocation":"2025:7:49","nodeType":"VariableDeclaration","scope":8212,"src":"2011:21:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8199,"name":"string","nodeType":"ElementaryTypeName","src":"2011:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1989:44:49"},"returnParameters":{"id":8202,"nodeType":"ParameterList","parameters":[],"src":"2034:0:49"},"scope":8753,"src":"1978:113:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8843],"body":{"id":8221,"nodeType":"Block","src":"2225:29:49","statements":[{"expression":{"id":8219,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8193,"src":"2242:5:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":8218,"id":8220,"nodeType":"Return","src":"2235:12:49"}]},"documentation":{"id":8213,"nodeType":"StructuredDocumentation","src":"2097:54:49","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":8222,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2165:4:49","nodeType":"FunctionDefinition","overrides":{"id":8215,"nodeType":"OverrideSpecifier","overrides":[],"src":"2192:8:49"},"parameters":{"id":8214,"nodeType":"ParameterList","parameters":[],"src":"2169:2:49"},"returnParameters":{"id":8218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8222,"src":"2210:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8216,"name":"string","nodeType":"ElementaryTypeName","src":"2210:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2209:15:49"},"scope":8753,"src":"2156:98:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8849],"body":{"id":8231,"nodeType":"Block","src":"2438:31:49","statements":[{"expression":{"id":8229,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"2455:7:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":8228,"id":8230,"nodeType":"Return","src":"2448:14:49"}]},"documentation":{"id":8223,"nodeType":"StructuredDocumentation","src":"2260:102:49","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":8232,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2376:6:49","nodeType":"FunctionDefinition","overrides":{"id":8225,"nodeType":"OverrideSpecifier","overrides":[],"src":"2405:8:49"},"parameters":{"id":8224,"nodeType":"ParameterList","parameters":[],"src":"2382:2:49"},"returnParameters":{"id":8228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8227,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8232,"src":"2423:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8226,"name":"string","nodeType":"ElementaryTypeName","src":"2423:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2422:15:49"},"scope":8753,"src":"2367:102:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8855],"body":{"id":8241,"nodeType":"Block","src":"3158:26:49","statements":[{"expression":{"hexValue":"3138","id":8239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3175:2:49","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":8238,"id":8240,"nodeType":"Return","src":"3168:9:49"}]},"documentation":{"id":8233,"nodeType":"StructuredDocumentation","src":"2475:613:49","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overridden;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":8242,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3102:8:49","nodeType":"FunctionDefinition","overrides":{"id":8235,"nodeType":"OverrideSpecifier","overrides":[],"src":"3133:8:49"},"parameters":{"id":8234,"nodeType":"ParameterList","parameters":[],"src":"3110:2:49"},"returnParameters":{"id":8238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8242,"src":"3151:5:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8236,"name":"uint8","nodeType":"ElementaryTypeName","src":"3151:5:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3150:7:49"},"scope":8753,"src":"3093:91:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8780],"body":{"id":8251,"nodeType":"Block","src":"3314:36:49","statements":[{"expression":{"id":8249,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8191,"src":"3331:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8248,"id":8250,"nodeType":"Return","src":"3324:19:49"}]},"documentation":{"id":8243,"nodeType":"StructuredDocumentation","src":"3190:49:49","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":8252,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3253:11:49","nodeType":"FunctionDefinition","overrides":{"id":8245,"nodeType":"OverrideSpecifier","overrides":[],"src":"3287:8:49"},"parameters":{"id":8244,"nodeType":"ParameterList","parameters":[],"src":"3264:2:49"},"returnParameters":{"id":8248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8252,"src":"3305:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8246,"name":"uint256","nodeType":"ElementaryTypeName","src":"3305:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3304:9:49"},"scope":8753,"src":"3244:106:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8788],"body":{"id":8265,"nodeType":"Block","src":"3491:42:49","statements":[{"expression":{"baseExpression":{"id":8261,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"3508:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8263,"indexExpression":{"id":8262,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8255,"src":"3518:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3508:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8260,"id":8264,"nodeType":"Return","src":"3501:25:49"}]},"documentation":{"id":8253,"nodeType":"StructuredDocumentation","src":"3356:47:49","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":8266,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3417:9:49","nodeType":"FunctionDefinition","overrides":{"id":8257,"nodeType":"OverrideSpecifier","overrides":[],"src":"3464:8:49"},"parameters":{"id":8256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8255,"mutability":"mutable","name":"account","nameLocation":"3435:7:49","nodeType":"VariableDeclaration","scope":8266,"src":"3427:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8254,"name":"address","nodeType":"ElementaryTypeName","src":"3427:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3426:17:49"},"returnParameters":{"id":8260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8266,"src":"3482:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8258,"name":"uint256","nodeType":"ElementaryTypeName","src":"3482:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3481:9:49"},"scope":8753,"src":"3408:125:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8798],"body":{"id":8290,"nodeType":"Block","src":"3814:104:49","statements":[{"assignments":[8278],"declarations":[{"constant":false,"id":8278,"mutability":"mutable","name":"owner","nameLocation":"3832:5:49","nodeType":"VariableDeclaration","scope":8290,"src":"3824:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8277,"name":"address","nodeType":"ElementaryTypeName","src":"3824:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8281,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8279,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3840:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3840:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3824:28:49"},{"expression":{"arguments":[{"id":8283,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8278,"src":"3872:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8284,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8269,"src":"3879:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8285,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8271,"src":"3883:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8282,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"3862:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3862:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8287,"nodeType":"ExpressionStatement","src":"3862:28:49"},{"expression":{"hexValue":"74727565","id":8288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3907:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8276,"id":8289,"nodeType":"Return","src":"3900:11:49"}]},"documentation":{"id":8267,"nodeType":"StructuredDocumentation","src":"3539:185:49","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":8291,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3738:8:49","nodeType":"FunctionDefinition","overrides":{"id":8273,"nodeType":"OverrideSpecifier","overrides":[],"src":"3790:8:49"},"parameters":{"id":8272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8269,"mutability":"mutable","name":"to","nameLocation":"3755:2:49","nodeType":"VariableDeclaration","scope":8291,"src":"3747:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8268,"name":"address","nodeType":"ElementaryTypeName","src":"3747:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8271,"mutability":"mutable","name":"amount","nameLocation":"3767:6:49","nodeType":"VariableDeclaration","scope":8291,"src":"3759:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8270,"name":"uint256","nodeType":"ElementaryTypeName","src":"3759:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3746:28:49"},"returnParameters":{"id":8276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8291,"src":"3808:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8274,"name":"bool","nodeType":"ElementaryTypeName","src":"3808:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3807:6:49"},"scope":8753,"src":"3729:189:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[8808],"body":{"id":8308,"nodeType":"Block","src":"4074:51:49","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":8302,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"4091:11:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":8304,"indexExpression":{"id":8303,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8294,"src":"4103:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:18:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8306,"indexExpression":{"id":8305,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8296,"src":"4110:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8301,"id":8307,"nodeType":"Return","src":"4084:34:49"}]},"documentation":{"id":8292,"nodeType":"StructuredDocumentation","src":"3924:47:49","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":8309,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3985:9:49","nodeType":"FunctionDefinition","overrides":{"id":8298,"nodeType":"OverrideSpecifier","overrides":[],"src":"4047:8:49"},"parameters":{"id":8297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8294,"mutability":"mutable","name":"owner","nameLocation":"4003:5:49","nodeType":"VariableDeclaration","scope":8309,"src":"3995:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8293,"name":"address","nodeType":"ElementaryTypeName","src":"3995:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8296,"mutability":"mutable","name":"spender","nameLocation":"4018:7:49","nodeType":"VariableDeclaration","scope":8309,"src":"4010:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8295,"name":"address","nodeType":"ElementaryTypeName","src":"4010:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3994:32:49"},"returnParameters":{"id":8301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8309,"src":"4065:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8299,"name":"uint256","nodeType":"ElementaryTypeName","src":"4065:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4064:9:49"},"scope":8753,"src":"3976:149:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8818],"body":{"id":8333,"nodeType":"Block","src":"4522:108:49","statements":[{"assignments":[8321],"declarations":[{"constant":false,"id":8321,"mutability":"mutable","name":"owner","nameLocation":"4540:5:49","nodeType":"VariableDeclaration","scope":8333,"src":"4532:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8320,"name":"address","nodeType":"ElementaryTypeName","src":"4532:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8324,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8322,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4548:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4548:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4532:28:49"},{"expression":{"arguments":[{"id":8326,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8321,"src":"4579:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8327,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8312,"src":"4586:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8328,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8314,"src":"4595:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8325,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8687,"src":"4570:8:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4570:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8330,"nodeType":"ExpressionStatement","src":"4570:32:49"},{"expression":{"hexValue":"74727565","id":8331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4619:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8319,"id":8332,"nodeType":"Return","src":"4612:11:49"}]},"documentation":{"id":8310,"nodeType":"StructuredDocumentation","src":"4131:297:49","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":8334,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4442:7:49","nodeType":"FunctionDefinition","overrides":{"id":8316,"nodeType":"OverrideSpecifier","overrides":[],"src":"4498:8:49"},"parameters":{"id":8315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8312,"mutability":"mutable","name":"spender","nameLocation":"4458:7:49","nodeType":"VariableDeclaration","scope":8334,"src":"4450:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8311,"name":"address","nodeType":"ElementaryTypeName","src":"4450:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8314,"mutability":"mutable","name":"amount","nameLocation":"4475:6:49","nodeType":"VariableDeclaration","scope":8334,"src":"4467:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8313,"name":"uint256","nodeType":"ElementaryTypeName","src":"4467:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4449:33:49"},"returnParameters":{"id":8319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8334,"src":"4516:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8317,"name":"bool","nodeType":"ElementaryTypeName","src":"4516:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4515:6:49"},"scope":8753,"src":"4433:197:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[8830],"body":{"id":8366,"nodeType":"Block","src":"5325:153:49","statements":[{"assignments":[8348],"declarations":[{"constant":false,"id":8348,"mutability":"mutable","name":"spender","nameLocation":"5343:7:49","nodeType":"VariableDeclaration","scope":8366,"src":"5335:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8347,"name":"address","nodeType":"ElementaryTypeName","src":"5335:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8351,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8349,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5353:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5353:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5335:30:49"},{"expression":{"arguments":[{"id":8353,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8337,"src":"5391:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8354,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8348,"src":"5397:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8355,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"5406:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8352,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8730,"src":"5375:15:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5375:38:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8357,"nodeType":"ExpressionStatement","src":"5375:38:49"},{"expression":{"arguments":[{"id":8359,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8337,"src":"5433:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8360,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8339,"src":"5439:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8361,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"5443:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8358,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"5423:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5423:27:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8363,"nodeType":"ExpressionStatement","src":"5423:27:49"},{"expression":{"hexValue":"74727565","id":8364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5467:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8346,"id":8365,"nodeType":"Return","src":"5460:11:49"}]},"documentation":{"id":8335,"nodeType":"StructuredDocumentation","src":"4636:551:49","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":8367,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5201:12:49","nodeType":"FunctionDefinition","overrides":{"id":8343,"nodeType":"OverrideSpecifier","overrides":[],"src":"5301:8:49"},"parameters":{"id":8342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8337,"mutability":"mutable","name":"from","nameLocation":"5231:4:49","nodeType":"VariableDeclaration","scope":8367,"src":"5223:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8336,"name":"address","nodeType":"ElementaryTypeName","src":"5223:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8339,"mutability":"mutable","name":"to","nameLocation":"5253:2:49","nodeType":"VariableDeclaration","scope":8367,"src":"5245:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8338,"name":"address","nodeType":"ElementaryTypeName","src":"5245:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8341,"mutability":"mutable","name":"amount","nameLocation":"5273:6:49","nodeType":"VariableDeclaration","scope":8367,"src":"5265:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8340,"name":"uint256","nodeType":"ElementaryTypeName","src":"5265:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5213:72:49"},"returnParameters":{"id":8346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8367,"src":"5319:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8344,"name":"bool","nodeType":"ElementaryTypeName","src":"5319:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5318:6:49"},"scope":8753,"src":"5192:286:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8395,"nodeType":"Block","src":"5967:140:49","statements":[{"assignments":[8378],"declarations":[{"constant":false,"id":8378,"mutability":"mutable","name":"owner","nameLocation":"5985:5:49","nodeType":"VariableDeclaration","scope":8395,"src":"5977:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8377,"name":"address","nodeType":"ElementaryTypeName","src":"5977:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8381,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8379,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5993:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5993:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5977:28:49"},{"expression":{"arguments":[{"id":8383,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"6024:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8384,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8370,"src":"6031:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8386,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"6050:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8387,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8370,"src":"6057:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8385,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"6040:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":8388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6040:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8389,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8372,"src":"6068:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6040:38:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8382,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8687,"src":"6015:8:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6015:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8392,"nodeType":"ExpressionStatement","src":"6015:64:49"},{"expression":{"hexValue":"74727565","id":8393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6096:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8376,"id":8394,"nodeType":"Return","src":"6089:11:49"}]},"documentation":{"id":8368,"nodeType":"StructuredDocumentation","src":"5484:384:49","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":8396,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5882:17:49","nodeType":"FunctionDefinition","parameters":{"id":8373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8370,"mutability":"mutable","name":"spender","nameLocation":"5908:7:49","nodeType":"VariableDeclaration","scope":8396,"src":"5900:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8369,"name":"address","nodeType":"ElementaryTypeName","src":"5900:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8372,"mutability":"mutable","name":"addedValue","nameLocation":"5925:10:49","nodeType":"VariableDeclaration","scope":8396,"src":"5917:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8371,"name":"uint256","nodeType":"ElementaryTypeName","src":"5917:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5899:37:49"},"returnParameters":{"id":8376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8396,"src":"5961:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8374,"name":"bool","nodeType":"ElementaryTypeName","src":"5961:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5960:6:49"},"scope":8753,"src":"5873:234:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8436,"nodeType":"Block","src":"6693:328:49","statements":[{"assignments":[8407],"declarations":[{"constant":false,"id":8407,"mutability":"mutable","name":"owner","nameLocation":"6711:5:49","nodeType":"VariableDeclaration","scope":8436,"src":"6703:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8406,"name":"address","nodeType":"ElementaryTypeName","src":"6703:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8410,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8408,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"6719:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6719:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6703:28:49"},{"assignments":[8412],"declarations":[{"constant":false,"id":8412,"mutability":"mutable","name":"currentAllowance","nameLocation":"6749:16:49","nodeType":"VariableDeclaration","scope":8436,"src":"6741:24:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8411,"name":"uint256","nodeType":"ElementaryTypeName","src":"6741:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8417,"initialValue":{"arguments":[{"id":8414,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8407,"src":"6778:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8415,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8399,"src":"6785:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8413,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"6768:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":8416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6768:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6741:52:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8419,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8412,"src":"6811:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8420,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8401,"src":"6831:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6811:35:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":8422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6848:39:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":8418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6803:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6803:85:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8424,"nodeType":"ExpressionStatement","src":"6803:85:49"},{"id":8433,"nodeType":"UncheckedBlock","src":"6898:95:49","statements":[{"expression":{"arguments":[{"id":8426,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8407,"src":"6931:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8427,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8399,"src":"6938:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8428,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8412,"src":"6947:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8429,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8401,"src":"6966:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6947:34:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8425,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8687,"src":"6922:8:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6922:60:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8432,"nodeType":"ExpressionStatement","src":"6922:60:49"}]},{"expression":{"hexValue":"74727565","id":8434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7010:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8405,"id":8435,"nodeType":"Return","src":"7003:11:49"}]},"documentation":{"id":8397,"nodeType":"StructuredDocumentation","src":"6113:476:49","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":8437,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6603:17:49","nodeType":"FunctionDefinition","parameters":{"id":8402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8399,"mutability":"mutable","name":"spender","nameLocation":"6629:7:49","nodeType":"VariableDeclaration","scope":8437,"src":"6621:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8398,"name":"address","nodeType":"ElementaryTypeName","src":"6621:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8401,"mutability":"mutable","name":"subtractedValue","nameLocation":"6646:15:49","nodeType":"VariableDeclaration","scope":8437,"src":"6638:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8400,"name":"uint256","nodeType":"ElementaryTypeName","src":"6638:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6620:42:49"},"returnParameters":{"id":8405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8437,"src":"6687:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8403,"name":"bool","nodeType":"ElementaryTypeName","src":"6687:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6686:6:49"},"scope":8753,"src":"6594:427:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8513,"nodeType":"Block","src":"7583:543:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8448,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"7601:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7617:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7609:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8449,"name":"address","nodeType":"ElementaryTypeName","src":"7609:7:49","typeDescriptions":{}}},"id":8452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7609:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7601:18:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":8454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7621:39:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":8447,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7593:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7593:68:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8456,"nodeType":"ExpressionStatement","src":"7593:68:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8458,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"7679:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7693:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7685:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8459,"name":"address","nodeType":"ElementaryTypeName","src":"7685:7:49","typeDescriptions":{}}},"id":8462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7685:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7679:16:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":8464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7697:37:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":8457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7671:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7671:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8466,"nodeType":"ExpressionStatement","src":"7671:64:49"},{"expression":{"arguments":[{"id":8468,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"7767:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8469,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"7773:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8470,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"7777:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8467,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8741,"src":"7746:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7746:38:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8472,"nodeType":"ExpressionStatement","src":"7746:38:49"},{"assignments":[8474],"declarations":[{"constant":false,"id":8474,"mutability":"mutable","name":"fromBalance","nameLocation":"7803:11:49","nodeType":"VariableDeclaration","scope":8513,"src":"7795:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8473,"name":"uint256","nodeType":"ElementaryTypeName","src":"7795:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8478,"initialValue":{"baseExpression":{"id":8475,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"7817:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8477,"indexExpression":{"id":8476,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"7827:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7817:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7795:37:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8480,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"7850:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8481,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"7865:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:21:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":8483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7873:40:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":8479,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7842:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7842:72:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8485,"nodeType":"ExpressionStatement","src":"7842:72:49"},{"id":8494,"nodeType":"UncheckedBlock","src":"7924:73:49","statements":[{"expression":{"id":8492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8486,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"7948:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8488,"indexExpression":{"id":8487,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"7958:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7948:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8489,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"7966:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8490,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"7980:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7966:20:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:38:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8493,"nodeType":"ExpressionStatement","src":"7948:38:49"}]},{"expression":{"id":8499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8495,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"8006:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8497,"indexExpression":{"id":8496,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"8016:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8006:13:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":8498,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"8023:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8006:23:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8500,"nodeType":"ExpressionStatement","src":"8006:23:49"},{"eventCall":{"arguments":[{"id":8502,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"8054:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8503,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"8060:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8504,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"8064:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8501,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8765,"src":"8045:8:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8045:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8506,"nodeType":"EmitStatement","src":"8040:31:49"},{"expression":{"arguments":[{"id":8508,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"8102:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8509,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"8108:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8510,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"8112:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8507,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8752,"src":"8082:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8082:37:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8512,"nodeType":"ExpressionStatement","src":"8082:37:49"}]},"documentation":{"id":8438,"nodeType":"StructuredDocumentation","src":"7027:443:49","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"id":8514,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7484:9:49","nodeType":"FunctionDefinition","parameters":{"id":8445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8440,"mutability":"mutable","name":"from","nameLocation":"7511:4:49","nodeType":"VariableDeclaration","scope":8514,"src":"7503:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8439,"name":"address","nodeType":"ElementaryTypeName","src":"7503:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8442,"mutability":"mutable","name":"to","nameLocation":"7533:2:49","nodeType":"VariableDeclaration","scope":8514,"src":"7525:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8441,"name":"address","nodeType":"ElementaryTypeName","src":"7525:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8444,"mutability":"mutable","name":"amount","nameLocation":"7553:6:49","nodeType":"VariableDeclaration","scope":8514,"src":"7545:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8443,"name":"uint256","nodeType":"ElementaryTypeName","src":"7545:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7493:72:49"},"returnParameters":{"id":8446,"nodeType":"ParameterList","parameters":[],"src":"7583:0:49"},"scope":8753,"src":"7475:651:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8569,"nodeType":"Block","src":"8467:324:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8523,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"8485:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8504:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8496:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8524,"name":"address","nodeType":"ElementaryTypeName","src":"8496:7:49","typeDescriptions":{}}},"id":8527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8496:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8485:21:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":8529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8508:33:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":8522,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8477:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8477:65:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8531,"nodeType":"ExpressionStatement","src":"8477:65:49"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8582:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8574:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8533,"name":"address","nodeType":"ElementaryTypeName","src":"8574:7:49","typeDescriptions":{}}},"id":8536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8574:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8537,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"8586:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8538,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8519,"src":"8595:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8532,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8741,"src":"8553:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8553:49:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8540,"nodeType":"ExpressionStatement","src":"8553:49:49"},{"expression":{"id":8543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8541,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8191,"src":"8613:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":8542,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8519,"src":"8629:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8613:22:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8544,"nodeType":"ExpressionStatement","src":"8613:22:49"},{"expression":{"id":8549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8545,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"8645:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8547,"indexExpression":{"id":8546,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"8655:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8645:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":8548,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8519,"src":"8667:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8645:28:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8550,"nodeType":"ExpressionStatement","src":"8645:28:49"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":8554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8705:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8697:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8552,"name":"address","nodeType":"ElementaryTypeName","src":"8697:7:49","typeDescriptions":{}}},"id":8555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8697:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8556,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"8709:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8557,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8519,"src":"8718:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8551,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8765,"src":"8688:8:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8688:37:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8559,"nodeType":"EmitStatement","src":"8683:42:49"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8764:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8756:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8561,"name":"address","nodeType":"ElementaryTypeName","src":"8756:7:49","typeDescriptions":{}}},"id":8564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8756:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8565,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"8768:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8566,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8519,"src":"8777:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8560,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8752,"src":"8736:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8736:48:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8568,"nodeType":"ExpressionStatement","src":"8736:48:49"}]},"documentation":{"id":8515,"nodeType":"StructuredDocumentation","src":"8132:265:49","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"id":8570,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8411:5:49","nodeType":"FunctionDefinition","parameters":{"id":8520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8517,"mutability":"mutable","name":"account","nameLocation":"8425:7:49","nodeType":"VariableDeclaration","scope":8570,"src":"8417:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8516,"name":"address","nodeType":"ElementaryTypeName","src":"8417:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8519,"mutability":"mutable","name":"amount","nameLocation":"8442:6:49","nodeType":"VariableDeclaration","scope":8570,"src":"8434:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8518,"name":"uint256","nodeType":"ElementaryTypeName","src":"8434:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8416:33:49"},"returnParameters":{"id":8521,"nodeType":"ParameterList","parameters":[],"src":"8467:0:49"},"scope":8753,"src":"8402:389:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8641,"nodeType":"Block","src":"9176:511:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8579,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9194:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9213:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9205:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8580,"name":"address","nodeType":"ElementaryTypeName","src":"9205:7:49","typeDescriptions":{}}},"id":8583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9205:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9194:21:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":8585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9217:35:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":8578,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9186:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9186:67:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8587,"nodeType":"ExpressionStatement","src":"9186:67:49"},{"expression":{"arguments":[{"id":8589,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9285:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9302:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9294:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8590,"name":"address","nodeType":"ElementaryTypeName","src":"9294:7:49","typeDescriptions":{}}},"id":8593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9294:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8594,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9306:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8588,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8741,"src":"9264:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9264:49:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8596,"nodeType":"ExpressionStatement","src":"9264:49:49"},{"assignments":[8598],"declarations":[{"constant":false,"id":8598,"mutability":"mutable","name":"accountBalance","nameLocation":"9332:14:49","nodeType":"VariableDeclaration","scope":8641,"src":"9324:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8597,"name":"uint256","nodeType":"ElementaryTypeName","src":"9324:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8602,"initialValue":{"baseExpression":{"id":8599,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"9349:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8601,"indexExpression":{"id":8600,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9359:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9349:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9324:43:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8604,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8598,"src":"9385:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8605,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9403:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9385:24:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":8607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9411:36:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":8603,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9377:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9377:71:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8609,"nodeType":"ExpressionStatement","src":"9377:71:49"},{"id":8618,"nodeType":"UncheckedBlock","src":"9458:79:49","statements":[{"expression":{"id":8616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8610,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"9482:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8612,"indexExpression":{"id":8611,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9492:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9482:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8613,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8598,"src":"9503:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8614,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9520:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9503:23:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9482:44:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8617,"nodeType":"ExpressionStatement","src":"9482:44:49"}]},{"expression":{"id":8621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8619,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8191,"src":"9546:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":8620,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9562:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9546:22:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8622,"nodeType":"ExpressionStatement","src":"9546:22:49"},{"eventCall":{"arguments":[{"id":8624,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9593:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9610:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9602:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8625,"name":"address","nodeType":"ElementaryTypeName","src":"9602:7:49","typeDescriptions":{}}},"id":8628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9602:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8629,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9614:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8623,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8765,"src":"9584:8:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9584:37:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8631,"nodeType":"EmitStatement","src":"9579:42:49"},{"expression":{"arguments":[{"id":8633,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9652:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9669:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9661:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8634,"name":"address","nodeType":"ElementaryTypeName","src":"9661:7:49","typeDescriptions":{}}},"id":8637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9661:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8638,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9673:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8632,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8752,"src":"9632:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9632:48:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8640,"nodeType":"ExpressionStatement","src":"9632:48:49"}]},"documentation":{"id":8571,"nodeType":"StructuredDocumentation","src":"8797:309:49","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":8642,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9120:5:49","nodeType":"FunctionDefinition","parameters":{"id":8576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8573,"mutability":"mutable","name":"account","nameLocation":"9134:7:49","nodeType":"VariableDeclaration","scope":8642,"src":"9126:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8572,"name":"address","nodeType":"ElementaryTypeName","src":"9126:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8575,"mutability":"mutable","name":"amount","nameLocation":"9151:6:49","nodeType":"VariableDeclaration","scope":8642,"src":"9143:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8574,"name":"uint256","nodeType":"ElementaryTypeName","src":"9143:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9125:33:49"},"returnParameters":{"id":8577,"nodeType":"ParameterList","parameters":[],"src":"9176:0:49"},"scope":8753,"src":"9111:576:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8686,"nodeType":"Block","src":"10223:257:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8653,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8645,"src":"10241:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10258:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10250:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8654,"name":"address","nodeType":"ElementaryTypeName","src":"10250:7:49","typeDescriptions":{}}},"id":8657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10250:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10241:19:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":8659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10262:38:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":8652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10233:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10233:68:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8661,"nodeType":"ExpressionStatement","src":"10233:68:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8663,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8647,"src":"10319:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10338:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10330:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8664,"name":"address","nodeType":"ElementaryTypeName","src":"10330:7:49","typeDescriptions":{}}},"id":8667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10330:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10319:21:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":8669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10342:36:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":8662,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10311:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10311:68:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8671,"nodeType":"ExpressionStatement","src":"10311:68:49"},{"expression":{"id":8678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":8672,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"10390:11:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":8675,"indexExpression":{"id":8673,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8645,"src":"10402:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10390:18:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8676,"indexExpression":{"id":8674,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8647,"src":"10409:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10390:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8677,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8649,"src":"10420:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10390:36:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8679,"nodeType":"ExpressionStatement","src":"10390:36:49"},{"eventCall":{"arguments":[{"id":8681,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8645,"src":"10450:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8682,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8647,"src":"10457:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8683,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8649,"src":"10466:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8680,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8774,"src":"10441:8:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10441:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8685,"nodeType":"EmitStatement","src":"10436:37:49"}]},"documentation":{"id":8643,"nodeType":"StructuredDocumentation","src":"9693:412:49","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":8687,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10119:8:49","nodeType":"FunctionDefinition","parameters":{"id":8650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8645,"mutability":"mutable","name":"owner","nameLocation":"10145:5:49","nodeType":"VariableDeclaration","scope":8687,"src":"10137:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8644,"name":"address","nodeType":"ElementaryTypeName","src":"10137:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8647,"mutability":"mutable","name":"spender","nameLocation":"10168:7:49","nodeType":"VariableDeclaration","scope":8687,"src":"10160:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8646,"name":"address","nodeType":"ElementaryTypeName","src":"10160:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8649,"mutability":"mutable","name":"amount","nameLocation":"10193:6:49","nodeType":"VariableDeclaration","scope":8687,"src":"10185:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8648,"name":"uint256","nodeType":"ElementaryTypeName","src":"10185:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10127:78:49"},"returnParameters":{"id":8651,"nodeType":"ParameterList","parameters":[],"src":"10223:0:49"},"scope":8753,"src":"10110:370:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8729,"nodeType":"Block","src":"10881:321:49","statements":[{"assignments":[8698],"declarations":[{"constant":false,"id":8698,"mutability":"mutable","name":"currentAllowance","nameLocation":"10899:16:49","nodeType":"VariableDeclaration","scope":8729,"src":"10891:24:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8697,"name":"uint256","nodeType":"ElementaryTypeName","src":"10891:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8703,"initialValue":{"arguments":[{"id":8700,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8690,"src":"10928:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8701,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8692,"src":"10935:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8699,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"10918:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":8702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10918:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10891:52:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8704,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"10957:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":8707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10982:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8706,"name":"uint256","nodeType":"ElementaryTypeName","src":"10982:7:49","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":8705,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"10977:4:49","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10977:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":8709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"10977:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10957:37:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8728,"nodeType":"IfStatement","src":"10953:243:49","trueBody":{"id":8727,"nodeType":"Block","src":"10996:200:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8712,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"11018:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8713,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"11038:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11018:26:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":8715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11046:31:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":8711,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11010:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11010:68:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8717,"nodeType":"ExpressionStatement","src":"11010:68:49"},{"id":8726,"nodeType":"UncheckedBlock","src":"11092:94:49","statements":[{"expression":{"arguments":[{"id":8719,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8690,"src":"11129:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8720,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8692,"src":"11136:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8721,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"11145:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8722,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"11164:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11145:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8718,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8687,"src":"11120:8:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11120:51:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8725,"nodeType":"ExpressionStatement","src":"11120:51:49"}]}]}}]},"documentation":{"id":8688,"nodeType":"StructuredDocumentation","src":"10486:270:49","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"id":8730,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"10770:15:49","nodeType":"FunctionDefinition","parameters":{"id":8695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8690,"mutability":"mutable","name":"owner","nameLocation":"10803:5:49","nodeType":"VariableDeclaration","scope":8730,"src":"10795:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8689,"name":"address","nodeType":"ElementaryTypeName","src":"10795:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8692,"mutability":"mutable","name":"spender","nameLocation":"10826:7:49","nodeType":"VariableDeclaration","scope":8730,"src":"10818:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8691,"name":"address","nodeType":"ElementaryTypeName","src":"10818:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8694,"mutability":"mutable","name":"amount","nameLocation":"10851:6:49","nodeType":"VariableDeclaration","scope":8730,"src":"10843:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8693,"name":"uint256","nodeType":"ElementaryTypeName","src":"10843:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10785:78:49"},"returnParameters":{"id":8696,"nodeType":"ParameterList","parameters":[],"src":"10881:0:49"},"scope":8753,"src":"10761:441:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8740,"nodeType":"Block","src":"11905:2:49","statements":[]},"documentation":{"id":8731,"nodeType":"StructuredDocumentation","src":"11208:573:49","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":8741,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"11795:20:49","nodeType":"FunctionDefinition","parameters":{"id":8738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8733,"mutability":"mutable","name":"from","nameLocation":"11833:4:49","nodeType":"VariableDeclaration","scope":8741,"src":"11825:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8732,"name":"address","nodeType":"ElementaryTypeName","src":"11825:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8735,"mutability":"mutable","name":"to","nameLocation":"11855:2:49","nodeType":"VariableDeclaration","scope":8741,"src":"11847:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8734,"name":"address","nodeType":"ElementaryTypeName","src":"11847:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8737,"mutability":"mutable","name":"amount","nameLocation":"11875:6:49","nodeType":"VariableDeclaration","scope":8741,"src":"11867:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8736,"name":"uint256","nodeType":"ElementaryTypeName","src":"11867:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11815:72:49"},"returnParameters":{"id":8739,"nodeType":"ParameterList","parameters":[],"src":"11905:0:49"},"scope":8753,"src":"11786:121:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8751,"nodeType":"Block","src":"12613:2:49","statements":[]},"documentation":{"id":8742,"nodeType":"StructuredDocumentation","src":"11913:577:49","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":8752,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12504:19:49","nodeType":"FunctionDefinition","parameters":{"id":8749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8744,"mutability":"mutable","name":"from","nameLocation":"12541:4:49","nodeType":"VariableDeclaration","scope":8752,"src":"12533:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8743,"name":"address","nodeType":"ElementaryTypeName","src":"12533:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8746,"mutability":"mutable","name":"to","nameLocation":"12563:2:49","nodeType":"VariableDeclaration","scope":8752,"src":"12555:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8745,"name":"address","nodeType":"ElementaryTypeName","src":"12555:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8748,"mutability":"mutable","name":"amount","nameLocation":"12583:6:49","nodeType":"VariableDeclaration","scope":8752,"src":"12575:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8747,"name":"uint256","nodeType":"ElementaryTypeName","src":"12575:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12523:72:49"},"returnParameters":{"id":8750,"nodeType":"ParameterList","parameters":[],"src":"12613:0:49"},"scope":8753,"src":"12495:120:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8754,"src":"1403:11214:49"}],"src":"105:12513:49"},"id":49},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[8831]},"id":8832,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8755,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:50"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":8756,"nodeType":"StructuredDocumentation","src":"131:70:50","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":8831,"linearizedBaseContracts":[8831],"name":"IERC20","nameLocation":"212:6:50","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":8757,"nodeType":"StructuredDocumentation","src":"225:158:50","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"id":8765,"name":"Transfer","nameLocation":"394:8:50","nodeType":"EventDefinition","parameters":{"id":8764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8759,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:50","nodeType":"VariableDeclaration","scope":8765,"src":"403:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8758,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8761,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:50","nodeType":"VariableDeclaration","scope":8765,"src":"425:18:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8760,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8763,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:50","nodeType":"VariableDeclaration","scope":8765,"src":"445:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8762,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:50"},"src":"388:72:50"},{"anonymous":false,"documentation":{"id":8766,"nodeType":"StructuredDocumentation","src":"466:148:50","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"id":8774,"name":"Approval","nameLocation":"625:8:50","nodeType":"EventDefinition","parameters":{"id":8773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8768,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:50","nodeType":"VariableDeclaration","scope":8774,"src":"634:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8767,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8770,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:50","nodeType":"VariableDeclaration","scope":8774,"src":"657:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8769,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8772,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:50","nodeType":"VariableDeclaration","scope":8774,"src":"682:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8771,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:50"},"src":"619:78:50"},{"documentation":{"id":8775,"nodeType":"StructuredDocumentation","src":"703:66:50","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":8780,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:50","nodeType":"FunctionDefinition","parameters":{"id":8776,"nodeType":"ParameterList","parameters":[],"src":"794:2:50"},"returnParameters":{"id":8779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8780,"src":"820:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8777,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:50"},"scope":8831,"src":"774:55:50","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8781,"nodeType":"StructuredDocumentation","src":"835:72:50","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":8788,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:50","nodeType":"FunctionDefinition","parameters":{"id":8784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8783,"mutability":"mutable","name":"account","nameLocation":"939:7:50","nodeType":"VariableDeclaration","scope":8788,"src":"931:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8782,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:50"},"returnParameters":{"id":8787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8788,"src":"971:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8785,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:50"},"scope":8831,"src":"912:68:50","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8789,"nodeType":"StructuredDocumentation","src":"986:202:50","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":8798,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:50","nodeType":"FunctionDefinition","parameters":{"id":8794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8791,"mutability":"mutable","name":"to","nameLocation":"1219:2:50","nodeType":"VariableDeclaration","scope":8798,"src":"1211:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8790,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8793,"mutability":"mutable","name":"amount","nameLocation":"1231:6:50","nodeType":"VariableDeclaration","scope":8798,"src":"1223:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8792,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:50"},"returnParameters":{"id":8797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8798,"src":"1257:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8795,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:50"},"scope":8831,"src":"1193:70:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":8799,"nodeType":"StructuredDocumentation","src":"1269:264:50","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":8808,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:50","nodeType":"FunctionDefinition","parameters":{"id":8804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8801,"mutability":"mutable","name":"owner","nameLocation":"1565:5:50","nodeType":"VariableDeclaration","scope":8808,"src":"1557:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8800,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8803,"mutability":"mutable","name":"spender","nameLocation":"1580:7:50","nodeType":"VariableDeclaration","scope":8808,"src":"1572:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8802,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:50"},"returnParameters":{"id":8807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8806,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8808,"src":"1612:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8805,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:50"},"scope":8831,"src":"1538:83:50","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8809,"nodeType":"StructuredDocumentation","src":"1627:642:50","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":8818,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:50","nodeType":"FunctionDefinition","parameters":{"id":8814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8811,"mutability":"mutable","name":"spender","nameLocation":"2299:7:50","nodeType":"VariableDeclaration","scope":8818,"src":"2291:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8810,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8813,"mutability":"mutable","name":"amount","nameLocation":"2316:6:50","nodeType":"VariableDeclaration","scope":8818,"src":"2308:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8812,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:50"},"returnParameters":{"id":8817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8816,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8818,"src":"2342:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8815,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:50"},"scope":8831,"src":"2274:74:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":8819,"nodeType":"StructuredDocumentation","src":"2354:287:50","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":8830,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:50","nodeType":"FunctionDefinition","parameters":{"id":8826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8821,"mutability":"mutable","name":"from","nameLocation":"2685:4:50","nodeType":"VariableDeclaration","scope":8830,"src":"2677:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8820,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8823,"mutability":"mutable","name":"to","nameLocation":"2707:2:50","nodeType":"VariableDeclaration","scope":8830,"src":"2699:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8822,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8825,"mutability":"mutable","name":"amount","nameLocation":"2727:6:50","nodeType":"VariableDeclaration","scope":8830,"src":"2719:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8824,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:50"},"returnParameters":{"id":8829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8828,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8830,"src":"2758:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8827,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:50"},"scope":8831,"src":"2646:118:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8832,"src":"202:2564:50"}],"src":"106:2661:50"},"id":50},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[8831],"IERC20Metadata":[8856]},"id":8857,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8833,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:51"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":8834,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8857,"sourceUnit":8832,"src":"135:23:51","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8836,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"305:6:51"},"id":8837,"nodeType":"InheritanceSpecifier","src":"305:6:51"}],"contractDependencies":[8831],"contractKind":"interface","documentation":{"id":8835,"nodeType":"StructuredDocumentation","src":"160:116:51","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":8856,"linearizedBaseContracts":[8856,8831],"name":"IERC20Metadata","nameLocation":"287:14:51","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8838,"nodeType":"StructuredDocumentation","src":"318:54:51","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":8843,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:51","nodeType":"FunctionDefinition","parameters":{"id":8839,"nodeType":"ParameterList","parameters":[],"src":"390:2:51"},"returnParameters":{"id":8842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8843,"src":"416:13:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8840,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:51"},"scope":8856,"src":"377:54:51","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8844,"nodeType":"StructuredDocumentation","src":"437:56:51","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":8849,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:51","nodeType":"FunctionDefinition","parameters":{"id":8845,"nodeType":"ParameterList","parameters":[],"src":"513:2:51"},"returnParameters":{"id":8848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8849,"src":"539:13:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8846,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:51"},"scope":8856,"src":"498:56:51","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8850,"nodeType":"StructuredDocumentation","src":"560:65:51","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":8855,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:51","nodeType":"FunctionDefinition","parameters":{"id":8851,"nodeType":"ParameterList","parameters":[],"src":"647:2:51"},"returnParameters":{"id":8854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8855,"src":"673:5:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8852,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:51"},"scope":8856,"src":"630:50:51","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8857,"src":"277:405:51"}],"src":"110:573:51"},"id":51},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[8892]},"id":8893,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8858,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"114:23:52"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":8859,"nodeType":"StructuredDocumentation","src":"139:480:52","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"id":8892,"linearizedBaseContracts":[8892],"name":"IERC20Permit","nameLocation":"630:12:52","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8860,"nodeType":"StructuredDocumentation","src":"649:792:52","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","id":8877,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1455:6:52","nodeType":"FunctionDefinition","parameters":{"id":8875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8862,"mutability":"mutable","name":"owner","nameLocation":"1479:5:52","nodeType":"VariableDeclaration","scope":8877,"src":"1471:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8861,"name":"address","nodeType":"ElementaryTypeName","src":"1471:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8864,"mutability":"mutable","name":"spender","nameLocation":"1502:7:52","nodeType":"VariableDeclaration","scope":8877,"src":"1494:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8863,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8866,"mutability":"mutable","name":"value","nameLocation":"1527:5:52","nodeType":"VariableDeclaration","scope":8877,"src":"1519:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8865,"name":"uint256","nodeType":"ElementaryTypeName","src":"1519:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8868,"mutability":"mutable","name":"deadline","nameLocation":"1550:8:52","nodeType":"VariableDeclaration","scope":8877,"src":"1542:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8867,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8870,"mutability":"mutable","name":"v","nameLocation":"1574:1:52","nodeType":"VariableDeclaration","scope":8877,"src":"1568:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8869,"name":"uint8","nodeType":"ElementaryTypeName","src":"1568:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8872,"mutability":"mutable","name":"r","nameLocation":"1593:1:52","nodeType":"VariableDeclaration","scope":8877,"src":"1585:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1585:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8874,"mutability":"mutable","name":"s","nameLocation":"1612:1:52","nodeType":"VariableDeclaration","scope":8877,"src":"1604:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1604:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1461:158:52"},"returnParameters":{"id":8876,"nodeType":"ParameterList","parameters":[],"src":"1628:0:52"},"scope":8892,"src":"1446:183:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":8878,"nodeType":"StructuredDocumentation","src":"1635:294:52","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":8885,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1943:6:52","nodeType":"FunctionDefinition","parameters":{"id":8881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8880,"mutability":"mutable","name":"owner","nameLocation":"1958:5:52","nodeType":"VariableDeclaration","scope":8885,"src":"1950:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8879,"name":"address","nodeType":"ElementaryTypeName","src":"1950:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1949:15:52"},"returnParameters":{"id":8884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8883,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8885,"src":"1988:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8882,"name":"uint256","nodeType":"ElementaryTypeName","src":"1988:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1987:9:52"},"scope":8892,"src":"1934:63:52","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8886,"nodeType":"StructuredDocumentation","src":"2003:128:52","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":8891,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2198:16:52","nodeType":"FunctionDefinition","parameters":{"id":8887,"nodeType":"ParameterList","parameters":[],"src":"2214:2:52"},"returnParameters":{"id":8890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8889,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8891,"src":"2240:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8888,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2240:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2239:9:52"},"scope":8892,"src":"2189:60:52","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8893,"src":"620:1631:52"}],"src":"114:2138:52"},"id":52},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[10496],"IERC20":[8831],"IERC20Permit":[8892],"SafeERC20":[9173]},"id":9174,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8894,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:53"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":8895,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9174,"sourceUnit":8832,"src":"140:23:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","file":"../extensions/draft-IERC20Permit.sol","id":8896,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9174,"sourceUnit":8893,"src":"164:46:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":8897,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9174,"sourceUnit":10497,"src":"211:36:53","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":8898,"nodeType":"StructuredDocumentation","src":"249:457:53","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":9173,"linearizedBaseContracts":[9173],"name":"SafeERC20","nameLocation":"715:9:53","nodeType":"ContractDefinition","nodes":[{"id":8901,"libraryName":{"id":8899,"name":"Address","nodeType":"IdentifierPath","referencedDeclaration":10496,"src":"737:7:53"},"nodeType":"UsingForDirective","src":"731:26:53","typeName":{"id":8900,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":8923,"nodeType":"Block","src":"865:103:53","statements":[{"expression":{"arguments":[{"id":8912,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8904,"src":"895:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":8915,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8904,"src":"925:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":8916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":8798,"src":"925:14:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":8917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"925:23:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":8918,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8906,"src":"950:2:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8919,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8908,"src":"954:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8913,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"902:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"902:22:53","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":8920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"902:58:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8911,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"875:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":8921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"875:86:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8922,"nodeType":"ExpressionStatement","src":"875:86:53"}]},"id":8924,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"772:12:53","nodeType":"FunctionDefinition","parameters":{"id":8909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8904,"mutability":"mutable","name":"token","nameLocation":"801:5:53","nodeType":"VariableDeclaration","scope":8924,"src":"794:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":8903,"nodeType":"UserDefinedTypeName","pathNode":{"id":8902,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"794:6:53"},"referencedDeclaration":8831,"src":"794:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":8906,"mutability":"mutable","name":"to","nameLocation":"824:2:53","nodeType":"VariableDeclaration","scope":8924,"src":"816:10:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8905,"name":"address","nodeType":"ElementaryTypeName","src":"816:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8908,"mutability":"mutable","name":"value","nameLocation":"844:5:53","nodeType":"VariableDeclaration","scope":8924,"src":"836:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8907,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"784:71:53"},"returnParameters":{"id":8910,"nodeType":"ParameterList","parameters":[],"src":"865:0:53"},"scope":9173,"src":"763:205:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8949,"nodeType":"Block","src":"1102:113:53","statements":[{"expression":{"arguments":[{"id":8937,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8927,"src":"1132:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":8940,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8927,"src":"1162:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":8941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":8830,"src":"1162:18:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":8942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1162:27:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":8943,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8929,"src":"1191:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8944,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8931,"src":"1197:2:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8945,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8933,"src":"1201:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"1139:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1139:22:53","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":8946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1139:68:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8936,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"1112:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":8947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1112:96:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8948,"nodeType":"ExpressionStatement","src":"1112:96:53"}]},"id":8950,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"983:16:53","nodeType":"FunctionDefinition","parameters":{"id":8934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8927,"mutability":"mutable","name":"token","nameLocation":"1016:5:53","nodeType":"VariableDeclaration","scope":8950,"src":"1009:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":8926,"nodeType":"UserDefinedTypeName","pathNode":{"id":8925,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"1009:6:53"},"referencedDeclaration":8831,"src":"1009:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":8929,"mutability":"mutable","name":"from","nameLocation":"1039:4:53","nodeType":"VariableDeclaration","scope":8950,"src":"1031:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8928,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8931,"mutability":"mutable","name":"to","nameLocation":"1061:2:53","nodeType":"VariableDeclaration","scope":8950,"src":"1053:10:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8930,"name":"address","nodeType":"ElementaryTypeName","src":"1053:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8933,"mutability":"mutable","name":"value","nameLocation":"1081:5:53","nodeType":"VariableDeclaration","scope":8950,"src":"1073:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8932,"name":"uint256","nodeType":"ElementaryTypeName","src":"1073:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"999:93:53"},"returnParameters":{"id":8935,"nodeType":"ParameterList","parameters":[],"src":"1102:0:53"},"scope":9173,"src":"974:241:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8993,"nodeType":"Block","src":"1581:497:53","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8962,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8958,"src":"1830:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1839:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1830:10:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":8965,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1829:12:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":8970,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1870:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}],"id":8969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1862:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8968,"name":"address","nodeType":"ElementaryTypeName","src":"1862:7:53","typeDescriptions":{}}},"id":8971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1862:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8972,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8956,"src":"1877:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8966,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8954,"src":"1846:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":8967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"1846:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":8973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1846:39:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1846:44:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":8976,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1845:46:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1829:62:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":8978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1905:56:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":8961,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1808:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1808:163:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8980,"nodeType":"ExpressionStatement","src":"1808:163:53"},{"expression":{"arguments":[{"id":8982,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8954,"src":"2001:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":8985,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8954,"src":"2031:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":8986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":8818,"src":"2031:13:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":8987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2031:22:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":8988,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8956,"src":"2055:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8989,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8958,"src":"2064:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8983,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2008:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2008:22:53","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":8990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2008:62:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8981,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"1981:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":8991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1981:90:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8992,"nodeType":"ExpressionStatement","src":"1981:90:53"}]},"documentation":{"id":8951,"nodeType":"StructuredDocumentation","src":"1221:249:53","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":8994,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1484:11:53","nodeType":"FunctionDefinition","parameters":{"id":8959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8954,"mutability":"mutable","name":"token","nameLocation":"1512:5:53","nodeType":"VariableDeclaration","scope":8994,"src":"1505:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":8953,"nodeType":"UserDefinedTypeName","pathNode":{"id":8952,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"1505:6:53"},"referencedDeclaration":8831,"src":"1505:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":8956,"mutability":"mutable","name":"spender","nameLocation":"1535:7:53","nodeType":"VariableDeclaration","scope":8994,"src":"1527:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8955,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8958,"mutability":"mutable","name":"value","nameLocation":"1560:5:53","nodeType":"VariableDeclaration","scope":8994,"src":"1552:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8957,"name":"uint256","nodeType":"ElementaryTypeName","src":"1552:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1495:76:53"},"returnParameters":{"id":8960,"nodeType":"ParameterList","parameters":[],"src":"1581:0:53"},"scope":9173,"src":"1475:603:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9029,"nodeType":"Block","src":"2200:194:53","statements":[{"assignments":[9005],"declarations":[{"constant":false,"id":9005,"mutability":"mutable","name":"newAllowance","nameLocation":"2218:12:53","nodeType":"VariableDeclaration","scope":9029,"src":"2210:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9004,"name":"uint256","nodeType":"ElementaryTypeName","src":"2210:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9016,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":9010,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"2257:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}],"id":9009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2249:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9008,"name":"address","nodeType":"ElementaryTypeName","src":"2249:7:53","typeDescriptions":{}}},"id":9011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2249:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9012,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"2264:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9006,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"2233:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":9007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"2233:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":9013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2233:39:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9014,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9001,"src":"2275:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2233:47:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2210:70:53"},{"expression":{"arguments":[{"id":9018,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"2310:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":9021,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"2340:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":9022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":8818,"src":"2340:13:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":9023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2340:22:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":9024,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"2364:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9025,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"2373:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9019,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2317:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2317:22:53","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":9026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2317:69:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9017,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"2290:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":9027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2290:97:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9028,"nodeType":"ExpressionStatement","src":"2290:97:53"}]},"id":9030,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2093:21:53","nodeType":"FunctionDefinition","parameters":{"id":9002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8997,"mutability":"mutable","name":"token","nameLocation":"2131:5:53","nodeType":"VariableDeclaration","scope":9030,"src":"2124:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":8996,"nodeType":"UserDefinedTypeName","pathNode":{"id":8995,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"2124:6:53"},"referencedDeclaration":8831,"src":"2124:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":8999,"mutability":"mutable","name":"spender","nameLocation":"2154:7:53","nodeType":"VariableDeclaration","scope":9030,"src":"2146:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8998,"name":"address","nodeType":"ElementaryTypeName","src":"2146:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9001,"mutability":"mutable","name":"value","nameLocation":"2179:5:53","nodeType":"VariableDeclaration","scope":9030,"src":"2171:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9000,"name":"uint256","nodeType":"ElementaryTypeName","src":"2171:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2114:76:53"},"returnParameters":{"id":9003,"nodeType":"ParameterList","parameters":[],"src":"2200:0:53"},"scope":9173,"src":"2084:310:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9077,"nodeType":"Block","src":"2516:370:53","statements":[{"id":9076,"nodeType":"UncheckedBlock","src":"2526:354:53","statements":[{"assignments":[9041],"declarations":[{"constant":false,"id":9041,"mutability":"mutable","name":"oldAllowance","nameLocation":"2558:12:53","nodeType":"VariableDeclaration","scope":9076,"src":"2550:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9040,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9050,"initialValue":{"arguments":[{"arguments":[{"id":9046,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"2597:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}],"id":9045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2589:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9044,"name":"address","nodeType":"ElementaryTypeName","src":"2589:7:53","typeDescriptions":{}}},"id":9047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2589:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9048,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9035,"src":"2604:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9042,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9033,"src":"2573:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":9043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"2573:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":9049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:39:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2550:62:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9052,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"2634:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9053,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9037,"src":"2650:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2634:21:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":9055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2657:43:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":9051,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2626:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2626:75:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9057,"nodeType":"ExpressionStatement","src":"2626:75:53"},{"assignments":[9059],"declarations":[{"constant":false,"id":9059,"mutability":"mutable","name":"newAllowance","nameLocation":"2723:12:53","nodeType":"VariableDeclaration","scope":9076,"src":"2715:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9058,"name":"uint256","nodeType":"ElementaryTypeName","src":"2715:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9063,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9060,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"2738:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9061,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9037,"src":"2753:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2738:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2715:43:53"},{"expression":{"arguments":[{"id":9065,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9033,"src":"2792:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":9068,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9033,"src":"2822:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":9069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":8818,"src":"2822:13:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":9070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2822:22:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":9071,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9035,"src":"2846:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9072,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9059,"src":"2855:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2799:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2799:22:53","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":9073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2799:69:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9064,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"2772:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":9074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2772:97:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9075,"nodeType":"ExpressionStatement","src":"2772:97:53"}]}]},"id":9078,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"2409:21:53","nodeType":"FunctionDefinition","parameters":{"id":9038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9033,"mutability":"mutable","name":"token","nameLocation":"2447:5:53","nodeType":"VariableDeclaration","scope":9078,"src":"2440:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":9032,"nodeType":"UserDefinedTypeName","pathNode":{"id":9031,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"2440:6:53"},"referencedDeclaration":8831,"src":"2440:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":9035,"mutability":"mutable","name":"spender","nameLocation":"2470:7:53","nodeType":"VariableDeclaration","scope":9078,"src":"2462:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9034,"name":"address","nodeType":"ElementaryTypeName","src":"2462:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9037,"mutability":"mutable","name":"value","nameLocation":"2495:5:53","nodeType":"VariableDeclaration","scope":9078,"src":"2487:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9036,"name":"uint256","nodeType":"ElementaryTypeName","src":"2487:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:76:53"},"returnParameters":{"id":9039,"nodeType":"ParameterList","parameters":[],"src":"2516:0:53"},"scope":9173,"src":"2400:486:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9133,"nodeType":"Block","src":"3107:257:53","statements":[{"assignments":[9099],"declarations":[{"constant":false,"id":9099,"mutability":"mutable","name":"nonceBefore","nameLocation":"3125:11:53","nodeType":"VariableDeclaration","scope":9133,"src":"3117:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9098,"name":"uint256","nodeType":"ElementaryTypeName","src":"3117:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9104,"initialValue":{"arguments":[{"id":9102,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9083,"src":"3152:5:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9100,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9081,"src":"3139:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$8892","typeString":"contract IERC20Permit"}},"id":9101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":8885,"src":"3139:12:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":9103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3139:19:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3117:41:53"},{"expression":{"arguments":[{"id":9108,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9083,"src":"3181:5:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9109,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9085,"src":"3188:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9110,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9087,"src":"3197:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9111,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9089,"src":"3204:8:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9112,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9091,"src":"3214:1:53","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9113,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9093,"src":"3217:1:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9114,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9095,"src":"3220:1:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9105,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9081,"src":"3168:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$8892","typeString":"contract IERC20Permit"}},"id":9107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":8877,"src":"3168:12:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":9115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3168:54:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9116,"nodeType":"ExpressionStatement","src":"3168:54:53"},{"assignments":[9118],"declarations":[{"constant":false,"id":9118,"mutability":"mutable","name":"nonceAfter","nameLocation":"3240:10:53","nodeType":"VariableDeclaration","scope":9133,"src":"3232:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9117,"name":"uint256","nodeType":"ElementaryTypeName","src":"3232:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9123,"initialValue":{"arguments":[{"id":9121,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9083,"src":"3266:5:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9119,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9081,"src":"3253:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$8892","typeString":"contract IERC20Permit"}},"id":9120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":8885,"src":"3253:12:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":9122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3253:19:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3232:40:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9125,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9118,"src":"3290:10:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9126,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9099,"src":"3304:11:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":9127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3318:1:53","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3304:15:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3290:29:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":9130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3321:35:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":9124,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3282:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3282:75:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9132,"nodeType":"ExpressionStatement","src":"3282:75:53"}]},"id":9134,"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"2901:10:53","nodeType":"FunctionDefinition","parameters":{"id":9096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9081,"mutability":"mutable","name":"token","nameLocation":"2934:5:53","nodeType":"VariableDeclaration","scope":9134,"src":"2921:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$8892","typeString":"contract IERC20Permit"},"typeName":{"id":9080,"nodeType":"UserDefinedTypeName","pathNode":{"id":9079,"name":"IERC20Permit","nodeType":"IdentifierPath","referencedDeclaration":8892,"src":"2921:12:53"},"referencedDeclaration":8892,"src":"2921:12:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$8892","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":9083,"mutability":"mutable","name":"owner","nameLocation":"2957:5:53","nodeType":"VariableDeclaration","scope":9134,"src":"2949:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9082,"name":"address","nodeType":"ElementaryTypeName","src":"2949:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9085,"mutability":"mutable","name":"spender","nameLocation":"2980:7:53","nodeType":"VariableDeclaration","scope":9134,"src":"2972:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9084,"name":"address","nodeType":"ElementaryTypeName","src":"2972:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9087,"mutability":"mutable","name":"value","nameLocation":"3005:5:53","nodeType":"VariableDeclaration","scope":9134,"src":"2997:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9086,"name":"uint256","nodeType":"ElementaryTypeName","src":"2997:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9089,"mutability":"mutable","name":"deadline","nameLocation":"3028:8:53","nodeType":"VariableDeclaration","scope":9134,"src":"3020:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9088,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9091,"mutability":"mutable","name":"v","nameLocation":"3052:1:53","nodeType":"VariableDeclaration","scope":9134,"src":"3046:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9090,"name":"uint8","nodeType":"ElementaryTypeName","src":"3046:5:53","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9093,"mutability":"mutable","name":"r","nameLocation":"3071:1:53","nodeType":"VariableDeclaration","scope":9134,"src":"3063:9:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9092,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3063:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9095,"mutability":"mutable","name":"s","nameLocation":"3090:1:53","nodeType":"VariableDeclaration","scope":9134,"src":"3082:9:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9094,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3082:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2911:186:53"},"returnParameters":{"id":9097,"nodeType":"ParameterList","parameters":[],"src":"3107:0:53"},"scope":9173,"src":"2892:472:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9171,"nodeType":"Block","src":"3817:636:53","statements":[{"assignments":[9144],"declarations":[{"constant":false,"id":9144,"mutability":"mutable","name":"returndata","nameLocation":"4179:10:53","nodeType":"VariableDeclaration","scope":9171,"src":"4166:23:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9143,"name":"bytes","nodeType":"ElementaryTypeName","src":"4166:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9153,"initialValue":{"arguments":[{"id":9150,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9140,"src":"4220:4:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":9151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4226:34:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":9147,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9138,"src":"4200:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":9146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4192:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9145,"name":"address","nodeType":"ElementaryTypeName","src":"4192:7:53","typeDescriptions":{}}},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4192:14:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":10290,"src":"4192:27:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":9152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4192:69:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4166:95:53"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9154,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9144,"src":"4275:10:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4275:17:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4295:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4275:21:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9170,"nodeType":"IfStatement","src":"4271:176:53","trueBody":{"id":9169,"nodeType":"Block","src":"4298:149:53","statements":[{"expression":{"arguments":[{"arguments":[{"id":9161,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9144,"src":"4370:10:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":9163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4383:4:53","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":9162,"name":"bool","nodeType":"ElementaryTypeName","src":"4383:4:53","typeDescriptions":{}}}],"id":9164,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4382:6:53","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":9159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"4359:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"4359:10:53","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":9165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4359:30:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":9166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4391:44:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":9158,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4351:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4351:85:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9168,"nodeType":"ExpressionStatement","src":"4351:85:53"}]}}]},"documentation":{"id":9135,"nodeType":"StructuredDocumentation","src":"3370:372:53","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":9172,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"3756:19:53","nodeType":"FunctionDefinition","parameters":{"id":9141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9138,"mutability":"mutable","name":"token","nameLocation":"3783:5:53","nodeType":"VariableDeclaration","scope":9172,"src":"3776:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":9137,"nodeType":"UserDefinedTypeName","pathNode":{"id":9136,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"3776:6:53"},"referencedDeclaration":8831,"src":"3776:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":9140,"mutability":"mutable","name":"data","nameLocation":"3803:4:53","nodeType":"VariableDeclaration","scope":9172,"src":"3790:17:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9139,"name":"bytes","nodeType":"ElementaryTypeName","src":"3790:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3775:33:53"},"returnParameters":{"id":9142,"nodeType":"ParameterList","parameters":[],"src":"3817:0:53"},"scope":9173,"src":"3747:706:53","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":9174,"src":"707:3748:53"}],"src":"115:4341:53"},"id":53},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Address":[10496],"Context":[10518],"ERC165":[10828],"ERC721":[10040],"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"Strings":[10804]},"id":10041,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9175,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:54"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":9176,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10157,"src":"132:23:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"./IERC721Receiver.sol","id":9177,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10175,"src":"156:31:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":9178,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10202,"src":"188:42:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":9179,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10497,"src":"231:33:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":9180,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10519,"src":"265:33:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":9181,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10805,"src":"299:33:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":9182,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10829,"src":"333:46:54","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9184,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"647:7:54"},"id":9185,"nodeType":"InheritanceSpecifier","src":"647:7:54"},{"baseName":{"id":9186,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":10828,"src":"656:6:54"},"id":9187,"nodeType":"InheritanceSpecifier","src":"656:6:54"},{"baseName":{"id":9188,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":10156,"src":"664:7:54"},"id":9189,"nodeType":"InheritanceSpecifier","src":"664:7:54"},{"baseName":{"id":9190,"name":"IERC721Metadata","nodeType":"IdentifierPath","referencedDeclaration":10201,"src":"673:15:54"},"id":9191,"nodeType":"InheritanceSpecifier","src":"673:15:54"}],"contractDependencies":[10156,10201,10518,10828,10840],"contractKind":"contract","documentation":{"id":9183,"nodeType":"StructuredDocumentation","src":"381:246:54","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":10040,"linearizedBaseContracts":[10040,10201,10156,10828,10840,10518],"name":"ERC721","nameLocation":"637:6:54","nodeType":"ContractDefinition","nodes":[{"id":9194,"libraryName":{"id":9192,"name":"Address","nodeType":"IdentifierPath","referencedDeclaration":10496,"src":"701:7:54"},"nodeType":"UsingForDirective","src":"695:26:54","typeName":{"id":9193,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":9197,"libraryName":{"id":9195,"name":"Strings","nodeType":"IdentifierPath","referencedDeclaration":10804,"src":"732:7:54"},"nodeType":"UsingForDirective","src":"726:26:54","typeName":{"id":9196,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":9199,"mutability":"mutable","name":"_name","nameLocation":"791:5:54","nodeType":"VariableDeclaration","scope":10040,"src":"776:20:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9198,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":9201,"mutability":"mutable","name":"_symbol","nameLocation":"838:7:54","nodeType":"VariableDeclaration","scope":10040,"src":"823:22:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9200,"name":"string","nodeType":"ElementaryTypeName","src":"823:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":9205,"mutability":"mutable","name":"_owners","nameLocation":"934:7:54","nodeType":"VariableDeclaration","scope":10040,"src":"898:43:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":9204,"keyType":{"id":9202,"name":"uint256","nodeType":"ElementaryTypeName","src":"906:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"898:27:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":9203,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":9209,"mutability":"mutable","name":"_balances","nameLocation":"1028:9:54","nodeType":"VariableDeclaration","scope":10040,"src":"992:45:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":9208,"keyType":{"id":9206,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"992:27:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":9207,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":9213,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1129:15:54","nodeType":"VariableDeclaration","scope":10040,"src":"1093:51:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":9212,"keyType":{"id":9210,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1093:27:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":9211,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":9219,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1252:18:54","nodeType":"VariableDeclaration","scope":10040,"src":"1199:71:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":9218,"keyType":{"id":9214,"name":"address","nodeType":"ElementaryTypeName","src":"1207:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1199:44:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":9217,"keyType":{"id":9215,"name":"address","nodeType":"ElementaryTypeName","src":"1226:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1218:24:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":9216,"name":"bool","nodeType":"ElementaryTypeName","src":"1237:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":9235,"nodeType":"Block","src":"1446:57:54","statements":[{"expression":{"id":9229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9227,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"1456:5:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9228,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9222,"src":"1464:5:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1456:13:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9230,"nodeType":"ExpressionStatement","src":"1456:13:54"},{"expression":{"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9231,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9201,"src":"1479:7:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9232,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9224,"src":"1489:7:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1479:17:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9234,"nodeType":"ExpressionStatement","src":"1479:17:54"}]},"documentation":{"id":9220,"nodeType":"StructuredDocumentation","src":"1277:108:54","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":9236,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9222,"mutability":"mutable","name":"name_","nameLocation":"1416:5:54","nodeType":"VariableDeclaration","scope":9236,"src":"1402:19:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9221,"name":"string","nodeType":"ElementaryTypeName","src":"1402:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9224,"mutability":"mutable","name":"symbol_","nameLocation":"1437:7:54","nodeType":"VariableDeclaration","scope":9236,"src":"1423:21:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9223,"name":"string","nodeType":"ElementaryTypeName","src":"1423:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1401:44:54"},"returnParameters":{"id":9226,"nodeType":"ParameterList","parameters":[],"src":"1446:0:54"},"scope":10040,"src":"1390:113:54","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[10827,10839],"body":{"id":9266,"nodeType":"Block","src":"1678:192:54","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9247,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9239,"src":"1707:11:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":9249,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10156,"src":"1727:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$10156_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$10156_$","typeString":"type(contract IERC721)"}],"id":9248,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"1722:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1722:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$10156","typeString":"type(contract IERC721)"}},"id":9251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1722:25:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1707:40:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9253,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9239,"src":"1763:11:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":9255,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10201,"src":"1783:15:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$10201_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$10201_$","typeString":"type(contract IERC721Metadata)"}],"id":9254,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"1778:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1778:21:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$10201","typeString":"type(contract IERC721Metadata)"}},"id":9257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1778:33:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1763:48:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:104:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":9262,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9239,"src":"1851:11:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":9260,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"1827:5:54","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$10040_$","typeString":"type(contract super ERC721)"}},"id":9261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":10827,"src":"1827:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":9263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1827:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:156:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9246,"id":9265,"nodeType":"Return","src":"1688:175:54"}]},"documentation":{"id":9237,"nodeType":"StructuredDocumentation","src":"1509:56:54","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":9267,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1579:17:54","nodeType":"FunctionDefinition","overrides":{"id":9243,"nodeType":"OverrideSpecifier","overrides":[{"id":9241,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":10828,"src":"1646:6:54"},{"id":9242,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":10840,"src":"1654:7:54"}],"src":"1637:25:54"},"parameters":{"id":9240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9239,"mutability":"mutable","name":"interfaceId","nameLocation":"1604:11:54","nodeType":"VariableDeclaration","scope":9267,"src":"1597:18:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9238,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1597:6:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1596:20:54"},"returnParameters":{"id":9246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9267,"src":"1672:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9244,"name":"bool","nodeType":"ElementaryTypeName","src":"1672:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1671:6:54"},"scope":10040,"src":"1570:300:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10081],"body":{"id":9290,"nodeType":"Block","src":"2010:123:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9277,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9270,"src":"2028:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2045:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2037:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9278,"name":"address","nodeType":"ElementaryTypeName","src":"2037:7:54","typeDescriptions":{}}},"id":9281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2037:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2028:19:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572","id":9283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2049:43:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""},"value":"ERC721: address zero is not a valid owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""}],"id":9276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2020:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2020:73:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9285,"nodeType":"ExpressionStatement","src":"2020:73:54"},{"expression":{"baseExpression":{"id":9286,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"2110:9:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9288,"indexExpression":{"id":9287,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9270,"src":"2120:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2110:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9275,"id":9289,"nodeType":"Return","src":"2103:23:54"}]},"documentation":{"id":9268,"nodeType":"StructuredDocumentation","src":"1876:48:54","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":9291,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1938:9:54","nodeType":"FunctionDefinition","overrides":{"id":9272,"nodeType":"OverrideSpecifier","overrides":[],"src":"1983:8:54"},"parameters":{"id":9271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9270,"mutability":"mutable","name":"owner","nameLocation":"1956:5:54","nodeType":"VariableDeclaration","scope":9291,"src":"1948:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9269,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1947:15:54"},"returnParameters":{"id":9275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9291,"src":"2001:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9273,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2000:9:54"},"scope":10040,"src":"1929:204:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10089],"body":{"id":9318,"nodeType":"Block","src":"2271:137:54","statements":[{"assignments":[9301],"declarations":[{"constant":false,"id":9301,"mutability":"mutable","name":"owner","nameLocation":"2289:5:54","nodeType":"VariableDeclaration","scope":9318,"src":"2281:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9300,"name":"address","nodeType":"ElementaryTypeName","src":"2281:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9305,"initialValue":{"baseExpression":{"id":9302,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"2297:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9304,"indexExpression":{"id":9303,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9294,"src":"2305:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2297:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2281:32:54"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9307,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9301,"src":"2331:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2348:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2340:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9308,"name":"address","nodeType":"ElementaryTypeName","src":"2340:7:54","typeDescriptions":{}}},"id":9311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2340:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2331:19:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":9313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2352:26:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":9306,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2323:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2323:56:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9315,"nodeType":"ExpressionStatement","src":"2323:56:54"},{"expression":{"id":9316,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9301,"src":"2396:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9299,"id":9317,"nodeType":"Return","src":"2389:12:54"}]},"documentation":{"id":9292,"nodeType":"StructuredDocumentation","src":"2139:46:54","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":9319,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2199:7:54","nodeType":"FunctionDefinition","overrides":{"id":9296,"nodeType":"OverrideSpecifier","overrides":[],"src":"2244:8:54"},"parameters":{"id":9295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9294,"mutability":"mutable","name":"tokenId","nameLocation":"2215:7:54","nodeType":"VariableDeclaration","scope":9319,"src":"2207:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9293,"name":"uint256","nodeType":"ElementaryTypeName","src":"2207:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2206:17:54"},"returnParameters":{"id":9299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9298,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9319,"src":"2262:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9297,"name":"address","nodeType":"ElementaryTypeName","src":"2262:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2261:9:54"},"scope":10040,"src":"2190:218:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10186],"body":{"id":9328,"nodeType":"Block","src":"2539:29:54","statements":[{"expression":{"id":9326,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"2556:5:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9325,"id":9327,"nodeType":"Return","src":"2549:12:54"}]},"documentation":{"id":9320,"nodeType":"StructuredDocumentation","src":"2414:51:54","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":9329,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2479:4:54","nodeType":"FunctionDefinition","overrides":{"id":9322,"nodeType":"OverrideSpecifier","overrides":[],"src":"2506:8:54"},"parameters":{"id":9321,"nodeType":"ParameterList","parameters":[],"src":"2483:2:54"},"returnParameters":{"id":9325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9329,"src":"2524:13:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9323,"name":"string","nodeType":"ElementaryTypeName","src":"2524:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2523:15:54"},"scope":10040,"src":"2470:98:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10192],"body":{"id":9338,"nodeType":"Block","src":"2703:31:54","statements":[{"expression":{"id":9336,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9201,"src":"2720:7:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9335,"id":9337,"nodeType":"Return","src":"2713:14:54"}]},"documentation":{"id":9330,"nodeType":"StructuredDocumentation","src":"2574:53:54","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":9339,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2641:6:54","nodeType":"FunctionDefinition","overrides":{"id":9332,"nodeType":"OverrideSpecifier","overrides":[],"src":"2670:8:54"},"parameters":{"id":9331,"nodeType":"ParameterList","parameters":[],"src":"2647:2:54"},"returnParameters":{"id":9335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9339,"src":"2688:13:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9333,"name":"string","nodeType":"ElementaryTypeName","src":"2688:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2687:15:54"},"scope":10040,"src":"2632:102:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10200],"body":{"id":9377,"nodeType":"Block","src":"2888:188:54","statements":[{"expression":{"arguments":[{"id":9349,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9342,"src":"2913:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9348,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9955,"src":"2898:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":9350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2898:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9351,"nodeType":"ExpressionStatement","src":"2898:23:54"},{"assignments":[9353],"declarations":[{"constant":false,"id":9353,"mutability":"mutable","name":"baseURI","nameLocation":"2946:7:54","nodeType":"VariableDeclaration","scope":9377,"src":"2932:21:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9352,"name":"string","nodeType":"ElementaryTypeName","src":"2932:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":9356,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9354,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9387,"src":"2956:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":9355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2956:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2932:34:54"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":9359,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9353,"src":"2989:7:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2983:5:54","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":9357,"name":"bytes","nodeType":"ElementaryTypeName","src":"2983:5:54","typeDescriptions":{}}},"id":9360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2983:14:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2983:21:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3007:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2983:25:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":9374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3067:2:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":9375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2983:86:54","trueExpression":{"arguments":[{"arguments":[{"id":9368,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9353,"src":"3035:7:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9369,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9342,"src":"3044:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":10666,"src":"3044:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":9371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3044:18:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3018:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3018:16:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3018:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3011:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":9364,"name":"string","nodeType":"ElementaryTypeName","src":"3011:6:54","typeDescriptions":{}}},"id":9373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3011:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9347,"id":9376,"nodeType":"Return","src":"2976:93:54"}]},"documentation":{"id":9340,"nodeType":"StructuredDocumentation","src":"2740:55:54","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":9378,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2809:8:54","nodeType":"FunctionDefinition","overrides":{"id":9344,"nodeType":"OverrideSpecifier","overrides":[],"src":"2855:8:54"},"parameters":{"id":9343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9342,"mutability":"mutable","name":"tokenId","nameLocation":"2826:7:54","nodeType":"VariableDeclaration","scope":9378,"src":"2818:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9341,"name":"uint256","nodeType":"ElementaryTypeName","src":"2818:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2817:17:54"},"returnParameters":{"id":9347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9346,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9378,"src":"2873:13:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9345,"name":"string","nodeType":"ElementaryTypeName","src":"2873:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2872:15:54"},"scope":10040,"src":"2800:276:54","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":9386,"nodeType":"Block","src":"3384:26:54","statements":[{"expression":{"hexValue":"","id":9384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3401:2:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":9383,"id":9385,"nodeType":"Return","src":"3394:9:54"}]},"documentation":{"id":9379,"nodeType":"StructuredDocumentation","src":"3082:231:54","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":9387,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3327:8:54","nodeType":"FunctionDefinition","parameters":{"id":9380,"nodeType":"ParameterList","parameters":[],"src":"3335:2:54"},"returnParameters":{"id":9383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9387,"src":"3369:13:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9381,"name":"string","nodeType":"ElementaryTypeName","src":"3369:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3368:15:54"},"scope":10040,"src":"3318:92:54","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[10129],"body":{"id":9429,"nodeType":"Block","src":"3537:337:54","statements":[{"assignments":[9397],"declarations":[{"constant":false,"id":9397,"mutability":"mutable","name":"owner","nameLocation":"3555:5:54","nodeType":"VariableDeclaration","scope":9429,"src":"3547:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9396,"name":"address","nodeType":"ElementaryTypeName","src":"3547:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9402,"initialValue":{"arguments":[{"id":9400,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9392,"src":"3578:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9398,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"3563:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$10040_$","typeString":"type(contract ERC721)"}},"id":9399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"3563:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3563:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3547:39:54"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9404,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"3604:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9405,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9397,"src":"3610:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3604:11:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572","id":9407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3617:35:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""},"value":"ERC721: approval to current owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""}],"id":9403,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3596:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3596:57:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9409,"nodeType":"ExpressionStatement","src":"3596:57:54"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9411,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3685:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3685:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9413,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9397,"src":"3701:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3685:21:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":9416,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9397,"src":"3727:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":9417,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3734:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3734:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9415,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"3710:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":9419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3710:37:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3685:62:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c","id":9421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3761:64:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304","typeString":"literal_string \"ERC721: approve caller is not token owner nor approved for all\""},"value":"ERC721: approve caller is not token owner nor approved for all"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304","typeString":"literal_string \"ERC721: approve caller is not token owner nor approved for all\""}],"id":9410,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3664:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3664:171:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9423,"nodeType":"ExpressionStatement","src":"3664:171:54"},{"expression":{"arguments":[{"id":9425,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"3855:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9426,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9392,"src":"3859:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9424,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"3846:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3846:21:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9428,"nodeType":"ExpressionStatement","src":"3846:21:54"}]},"documentation":{"id":9388,"nodeType":"StructuredDocumentation","src":"3416:46:54","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":9430,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3476:7:54","nodeType":"FunctionDefinition","overrides":{"id":9394,"nodeType":"OverrideSpecifier","overrides":[],"src":"3528:8:54"},"parameters":{"id":9393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9390,"mutability":"mutable","name":"to","nameLocation":"3492:2:54","nodeType":"VariableDeclaration","scope":9430,"src":"3484:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9389,"name":"address","nodeType":"ElementaryTypeName","src":"3484:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9392,"mutability":"mutable","name":"tokenId","nameLocation":"3504:7:54","nodeType":"VariableDeclaration","scope":9430,"src":"3496:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9391,"name":"uint256","nodeType":"ElementaryTypeName","src":"3496:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3483:29:54"},"returnParameters":{"id":9395,"nodeType":"ParameterList","parameters":[],"src":"3537:0:54"},"scope":10040,"src":"3467:407:54","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[10145],"body":{"id":9447,"nodeType":"Block","src":"4020:82:54","statements":[{"expression":{"arguments":[{"id":9440,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9433,"src":"4045:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9439,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9955,"src":"4030:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":9441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4030:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9442,"nodeType":"ExpressionStatement","src":"4030:23:54"},{"expression":{"baseExpression":{"id":9443,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9213,"src":"4071:15:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9445,"indexExpression":{"id":9444,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9433,"src":"4087:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4071:24:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9438,"id":9446,"nodeType":"Return","src":"4064:31:54"}]},"documentation":{"id":9431,"nodeType":"StructuredDocumentation","src":"3880:50:54","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":9448,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"3944:11:54","nodeType":"FunctionDefinition","overrides":{"id":9435,"nodeType":"OverrideSpecifier","overrides":[],"src":"3993:8:54"},"parameters":{"id":9434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9433,"mutability":"mutable","name":"tokenId","nameLocation":"3964:7:54","nodeType":"VariableDeclaration","scope":9448,"src":"3956:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9432,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3955:17:54"},"returnParameters":{"id":9438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9448,"src":"4011:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9436,"name":"address","nodeType":"ElementaryTypeName","src":"4011:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4010:9:54"},"scope":10040,"src":"3935:167:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10137],"body":{"id":9464,"nodeType":"Block","src":"4253:69:54","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9458,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4282:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4282:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9460,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9451,"src":"4296:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9461,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9453,"src":"4306:8:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9457,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9941,"src":"4263:18:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":9462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4263:52:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9463,"nodeType":"ExpressionStatement","src":"4263:52:54"}]},"documentation":{"id":9449,"nodeType":"StructuredDocumentation","src":"4108:56:54","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":9465,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4178:17:54","nodeType":"FunctionDefinition","overrides":{"id":9455,"nodeType":"OverrideSpecifier","overrides":[],"src":"4244:8:54"},"parameters":{"id":9454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9451,"mutability":"mutable","name":"operator","nameLocation":"4204:8:54","nodeType":"VariableDeclaration","scope":9465,"src":"4196:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9450,"name":"address","nodeType":"ElementaryTypeName","src":"4196:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9453,"mutability":"mutable","name":"approved","nameLocation":"4219:8:54","nodeType":"VariableDeclaration","scope":9465,"src":"4214:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9452,"name":"bool","nodeType":"ElementaryTypeName","src":"4214:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4195:33:54"},"returnParameters":{"id":9456,"nodeType":"ParameterList","parameters":[],"src":"4253:0:54"},"scope":10040,"src":"4169:153:54","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[10155],"body":{"id":9482,"nodeType":"Block","src":"4491:59:54","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":9476,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"4508:18:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":9478,"indexExpression":{"id":9477,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9468,"src":"4527:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:25:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":9480,"indexExpression":{"id":9479,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9470,"src":"4534:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:35:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9475,"id":9481,"nodeType":"Return","src":"4501:42:54"}]},"documentation":{"id":9466,"nodeType":"StructuredDocumentation","src":"4328:55:54","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":9483,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4397:16:54","nodeType":"FunctionDefinition","overrides":{"id":9472,"nodeType":"OverrideSpecifier","overrides":[],"src":"4467:8:54"},"parameters":{"id":9471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9468,"mutability":"mutable","name":"owner","nameLocation":"4422:5:54","nodeType":"VariableDeclaration","scope":9483,"src":"4414:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9467,"name":"address","nodeType":"ElementaryTypeName","src":"4414:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9470,"mutability":"mutable","name":"operator","nameLocation":"4437:8:54","nodeType":"VariableDeclaration","scope":9483,"src":"4429:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9469,"name":"address","nodeType":"ElementaryTypeName","src":"4429:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4413:33:54"},"returnParameters":{"id":9475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9483,"src":"4485:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9473,"name":"bool","nodeType":"ElementaryTypeName","src":"4485:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4484:6:54"},"scope":10040,"src":"4388:162:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10121],"body":{"id":9509,"nodeType":"Block","src":"4731:208:54","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9496,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4820:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4820:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9498,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"4834:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9495,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9640,"src":"4801:18:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":9499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4801:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564","id":9500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4844:48:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""},"value":"ERC721: caller is not token owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""}],"id":9494,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4793:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4793:100:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9502,"nodeType":"ExpressionStatement","src":"4793:100:54"},{"expression":{"arguments":[{"id":9504,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"4914:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9505,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"4920:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9506,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"4924:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9503,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9885,"src":"4904:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4904:28:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9508,"nodeType":"ExpressionStatement","src":"4904:28:54"}]},"documentation":{"id":9484,"nodeType":"StructuredDocumentation","src":"4556:51:54","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":9510,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4621:12:54","nodeType":"FunctionDefinition","overrides":{"id":9492,"nodeType":"OverrideSpecifier","overrides":[],"src":"4722:8:54"},"parameters":{"id":9491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9486,"mutability":"mutable","name":"from","nameLocation":"4651:4:54","nodeType":"VariableDeclaration","scope":9510,"src":"4643:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9485,"name":"address","nodeType":"ElementaryTypeName","src":"4643:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9488,"mutability":"mutable","name":"to","nameLocation":"4673:2:54","nodeType":"VariableDeclaration","scope":9510,"src":"4665:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9487,"name":"address","nodeType":"ElementaryTypeName","src":"4665:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9490,"mutability":"mutable","name":"tokenId","nameLocation":"4693:7:54","nodeType":"VariableDeclaration","scope":9510,"src":"4685:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9489,"name":"uint256","nodeType":"ElementaryTypeName","src":"4685:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4633:73:54"},"returnParameters":{"id":9493,"nodeType":"ParameterList","parameters":[],"src":"4731:0:54"},"scope":10040,"src":"4612:327:54","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[10111],"body":{"id":9528,"nodeType":"Block","src":"5128:56:54","statements":[{"expression":{"arguments":[{"id":9522,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9513,"src":"5155:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9523,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"5161:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9524,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9517,"src":"5165:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":9525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5174:2:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":9521,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[9529,9559],"referencedDeclaration":9559,"src":"5138:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":9526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5138:39:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9527,"nodeType":"ExpressionStatement","src":"5138:39:54"}]},"documentation":{"id":9511,"nodeType":"StructuredDocumentation","src":"4945:55:54","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":9529,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5014:16:54","nodeType":"FunctionDefinition","overrides":{"id":9519,"nodeType":"OverrideSpecifier","overrides":[],"src":"5119:8:54"},"parameters":{"id":9518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9513,"mutability":"mutable","name":"from","nameLocation":"5048:4:54","nodeType":"VariableDeclaration","scope":9529,"src":"5040:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9512,"name":"address","nodeType":"ElementaryTypeName","src":"5040:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9515,"mutability":"mutable","name":"to","nameLocation":"5070:2:54","nodeType":"VariableDeclaration","scope":9529,"src":"5062:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9514,"name":"address","nodeType":"ElementaryTypeName","src":"5062:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9517,"mutability":"mutable","name":"tokenId","nameLocation":"5090:7:54","nodeType":"VariableDeclaration","scope":9529,"src":"5082:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9516,"name":"uint256","nodeType":"ElementaryTypeName","src":"5082:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5030:73:54"},"returnParameters":{"id":9520,"nodeType":"ParameterList","parameters":[],"src":"5128:0:54"},"scope":10040,"src":"5005:179:54","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[10101],"body":{"id":9558,"nodeType":"Block","src":"5400:165:54","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9544,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5437:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5437:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9546,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"5451:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9543,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9640,"src":"5418:18:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":9547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5418:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564","id":9548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5461:48:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""},"value":"ERC721: caller is not token owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""}],"id":9542,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5410:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5410:100:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9550,"nodeType":"ExpressionStatement","src":"5410:100:54"},{"expression":{"arguments":[{"id":9552,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9532,"src":"5534:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9553,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9534,"src":"5540:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9554,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"5544:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9555,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9538,"src":"5553:4:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9551,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9588,"src":"5520:13:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":9556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5520:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9557,"nodeType":"ExpressionStatement","src":"5520:38:54"}]},"documentation":{"id":9530,"nodeType":"StructuredDocumentation","src":"5190:55:54","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":9559,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5259:16:54","nodeType":"FunctionDefinition","overrides":{"id":9540,"nodeType":"OverrideSpecifier","overrides":[],"src":"5391:8:54"},"parameters":{"id":9539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9532,"mutability":"mutable","name":"from","nameLocation":"5293:4:54","nodeType":"VariableDeclaration","scope":9559,"src":"5285:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9531,"name":"address","nodeType":"ElementaryTypeName","src":"5285:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9534,"mutability":"mutable","name":"to","nameLocation":"5315:2:54","nodeType":"VariableDeclaration","scope":9559,"src":"5307:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9533,"name":"address","nodeType":"ElementaryTypeName","src":"5307:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9536,"mutability":"mutable","name":"tokenId","nameLocation":"5335:7:54","nodeType":"VariableDeclaration","scope":9559,"src":"5327:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9535,"name":"uint256","nodeType":"ElementaryTypeName","src":"5327:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9538,"mutability":"mutable","name":"data","nameLocation":"5365:4:54","nodeType":"VariableDeclaration","scope":9559,"src":"5352:17:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9537,"name":"bytes","nodeType":"ElementaryTypeName","src":"5352:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5275:100:54"},"returnParameters":{"id":9541,"nodeType":"ParameterList","parameters":[],"src":"5400:0:54"},"scope":10040,"src":"5250:315:54","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9587,"nodeType":"Block","src":"6566:165:54","statements":[{"expression":{"arguments":[{"id":9572,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9562,"src":"6586:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9573,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9564,"src":"6592:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9574,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9566,"src":"6596:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9571,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9885,"src":"6576:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6576:28:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9576,"nodeType":"ExpressionStatement","src":"6576:28:54"},{"expression":{"arguments":[{"arguments":[{"id":9579,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9562,"src":"6645:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9580,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9564,"src":"6651:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9581,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9566,"src":"6655:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9582,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9568,"src":"6664:4:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9578,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10017,"src":"6622:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":9583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6622:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":9584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6671:52:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":9577,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6614:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6614:110:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9586,"nodeType":"ExpressionStatement","src":"6614:110:54"}]},"documentation":{"id":9560,"nodeType":"StructuredDocumentation","src":"5571:850:54","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":9588,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"6435:13:54","nodeType":"FunctionDefinition","parameters":{"id":9569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9562,"mutability":"mutable","name":"from","nameLocation":"6466:4:54","nodeType":"VariableDeclaration","scope":9588,"src":"6458:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9561,"name":"address","nodeType":"ElementaryTypeName","src":"6458:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9564,"mutability":"mutable","name":"to","nameLocation":"6488:2:54","nodeType":"VariableDeclaration","scope":9588,"src":"6480:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9563,"name":"address","nodeType":"ElementaryTypeName","src":"6480:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9566,"mutability":"mutable","name":"tokenId","nameLocation":"6508:7:54","nodeType":"VariableDeclaration","scope":9588,"src":"6500:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9565,"name":"uint256","nodeType":"ElementaryTypeName","src":"6500:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9568,"mutability":"mutable","name":"data","nameLocation":"6538:4:54","nodeType":"VariableDeclaration","scope":9588,"src":"6525:17:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9567,"name":"bytes","nodeType":"ElementaryTypeName","src":"6525:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6448:100:54"},"returnParameters":{"id":9570,"nodeType":"ParameterList","parameters":[],"src":"6566:0:54"},"scope":10040,"src":"6426:305:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9605,"nodeType":"Block","src":"7105:54:54","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":9596,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"7122:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9598,"indexExpression":{"id":9597,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9591,"src":"7130:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7122:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7150:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7142:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9599,"name":"address","nodeType":"ElementaryTypeName","src":"7142:7:54","typeDescriptions":{}}},"id":9602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7142:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7122:30:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9595,"id":9604,"nodeType":"Return","src":"7115:37:54"}]},"documentation":{"id":9589,"nodeType":"StructuredDocumentation","src":"6737:292:54","text":" @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."},"id":9606,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"7043:7:54","nodeType":"FunctionDefinition","parameters":{"id":9592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9591,"mutability":"mutable","name":"tokenId","nameLocation":"7059:7:54","nodeType":"VariableDeclaration","scope":9606,"src":"7051:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9590,"name":"uint256","nodeType":"ElementaryTypeName","src":"7051:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7050:17:54"},"returnParameters":{"id":9595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9606,"src":"7099:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9593,"name":"bool","nodeType":"ElementaryTypeName","src":"7099:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7098:6:54"},"scope":10040,"src":"7034:125:54","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9639,"nodeType":"Block","src":"7416:162:54","statements":[{"assignments":[9617],"declarations":[{"constant":false,"id":9617,"mutability":"mutable","name":"owner","nameLocation":"7434:5:54","nodeType":"VariableDeclaration","scope":9639,"src":"7426:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9616,"name":"address","nodeType":"ElementaryTypeName","src":"7426:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9622,"initialValue":{"arguments":[{"id":9620,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9611,"src":"7457:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9618,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"7442:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$10040_$","typeString":"type(contract ERC721)"}},"id":9619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"7442:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7442:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7426:39:54"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9623,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9609,"src":"7483:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9624,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9617,"src":"7494:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7483:16:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":9627,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9617,"src":"7520:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9628,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9609,"src":"7527:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9626,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"7503:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":9629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7503:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7483:52:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9632,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9611,"src":"7551:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9631,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9448,"src":"7539:11:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7539:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9634,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9609,"src":"7563:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7539:31:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7483:87:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9637,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7482:89:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9615,"id":9638,"nodeType":"Return","src":"7475:96:54"}]},"documentation":{"id":9607,"nodeType":"StructuredDocumentation","src":"7165:147:54","text":" @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":9640,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"7326:18:54","nodeType":"FunctionDefinition","parameters":{"id":9612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9609,"mutability":"mutable","name":"spender","nameLocation":"7353:7:54","nodeType":"VariableDeclaration","scope":9640,"src":"7345:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9608,"name":"address","nodeType":"ElementaryTypeName","src":"7345:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9611,"mutability":"mutable","name":"tokenId","nameLocation":"7370:7:54","nodeType":"VariableDeclaration","scope":9640,"src":"7362:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9610,"name":"uint256","nodeType":"ElementaryTypeName","src":"7362:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7344:34:54"},"returnParameters":{"id":9615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9640,"src":"7410:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9613,"name":"bool","nodeType":"ElementaryTypeName","src":"7410:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7409:6:54"},"scope":10040,"src":"7317:261:54","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9654,"nodeType":"Block","src":"7973:43:54","statements":[{"expression":{"arguments":[{"id":9649,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9643,"src":"7993:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9650,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9645,"src":"7997:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":9651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8006:2:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":9648,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[9655,9684],"referencedDeclaration":9684,"src":"7983:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":9652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7983:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9653,"nodeType":"ExpressionStatement","src":"7983:26:54"}]},"documentation":{"id":9641,"nodeType":"StructuredDocumentation","src":"7584:319:54","text":" @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":9655,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"7917:9:54","nodeType":"FunctionDefinition","parameters":{"id":9646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9643,"mutability":"mutable","name":"to","nameLocation":"7935:2:54","nodeType":"VariableDeclaration","scope":9655,"src":"7927:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9642,"name":"address","nodeType":"ElementaryTypeName","src":"7927:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9645,"mutability":"mutable","name":"tokenId","nameLocation":"7947:7:54","nodeType":"VariableDeclaration","scope":9655,"src":"7939:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9644,"name":"uint256","nodeType":"ElementaryTypeName","src":"7939:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7926:29:54"},"returnParameters":{"id":9647,"nodeType":"ParameterList","parameters":[],"src":"7973:0:54"},"scope":10040,"src":"7908:108:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9683,"nodeType":"Block","src":"8351:195:54","statements":[{"expression":{"arguments":[{"id":9666,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9658,"src":"8367:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9667,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9660,"src":"8371:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9665,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9750,"src":"8361:5:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8361:18:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9669,"nodeType":"ExpressionStatement","src":"8361:18:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":9674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8441:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8433:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9672,"name":"address","nodeType":"ElementaryTypeName","src":"8433:7:54","typeDescriptions":{}}},"id":9675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8433:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9676,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9658,"src":"8445:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9677,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9660,"src":"8449:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9678,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9662,"src":"8458:4:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9671,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10017,"src":"8410:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":9679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8410:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":9680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8477:52:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":9670,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8389:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8389:150:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9682,"nodeType":"ExpressionStatement","src":"8389:150:54"}]},"documentation":{"id":9656,"nodeType":"StructuredDocumentation","src":"8022:210:54","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":9684,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8246:9:54","nodeType":"FunctionDefinition","parameters":{"id":9663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9658,"mutability":"mutable","name":"to","nameLocation":"8273:2:54","nodeType":"VariableDeclaration","scope":9684,"src":"8265:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9657,"name":"address","nodeType":"ElementaryTypeName","src":"8265:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9660,"mutability":"mutable","name":"tokenId","nameLocation":"8293:7:54","nodeType":"VariableDeclaration","scope":9684,"src":"8285:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9659,"name":"uint256","nodeType":"ElementaryTypeName","src":"8285:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9662,"mutability":"mutable","name":"data","nameLocation":"8323:4:54","nodeType":"VariableDeclaration","scope":9684,"src":"8310:17:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9661,"name":"bytes","nodeType":"ElementaryTypeName","src":"8310:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8255:78:54"},"returnParameters":{"id":9664,"nodeType":"ParameterList","parameters":[],"src":"8351:0:54"},"scope":10040,"src":"8237:309:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9749,"nodeType":"Block","src":"8929:366:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9693,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"8947:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8961:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8953:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9694,"name":"address","nodeType":"ElementaryTypeName","src":"8953:7:54","typeDescriptions":{}}},"id":9697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8953:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8947:16:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","id":9699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8965:34:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""},"value":"ERC721: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""}],"id":9692,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8939:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8939:61:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9701,"nodeType":"ExpressionStatement","src":"8939:61:54"},{"expression":{"arguments":[{"id":9706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9018:17:54","subExpression":{"arguments":[{"id":9704,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"9027:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9703,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9606,"src":"9019:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":9705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9019:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":9707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9037:30:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":9702,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9010:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9010:58:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9709,"nodeType":"ExpressionStatement","src":"9010:58:54"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9108:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9100:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9711,"name":"address","nodeType":"ElementaryTypeName","src":"9100:7:54","typeDescriptions":{}}},"id":9714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9100:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9715,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"9112:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9716,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"9116:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9710,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"9079:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9079:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9718,"nodeType":"ExpressionStatement","src":"9079:45:54"},{"expression":{"id":9723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9719,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"9135:9:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9721,"indexExpression":{"id":9720,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"9145:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9135:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":9722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9152:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9135:18:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9724,"nodeType":"ExpressionStatement","src":"9135:18:54"},{"expression":{"id":9729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9725,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"9163:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9727,"indexExpression":{"id":9726,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"9171:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9163:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9728,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"9182:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9163:21:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9730,"nodeType":"ExpressionStatement","src":"9163:21:54"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":9734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9217:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9209:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9732,"name":"address","nodeType":"ElementaryTypeName","src":"9209:7:54","typeDescriptions":{}}},"id":9735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9209:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9736,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"9221:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9737,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"9225:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9731,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10055,"src":"9200:8:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9200:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9739,"nodeType":"EmitStatement","src":"9195:38:54"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9264:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9741,"name":"address","nodeType":"ElementaryTypeName","src":"9264:7:54","typeDescriptions":{}}},"id":9744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9264:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9745,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"9276:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9746,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"9280:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9740,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10039,"src":"9244:19:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9244:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9748,"nodeType":"ExpressionStatement","src":"9244:44:54"}]},"documentation":{"id":9685,"nodeType":"StructuredDocumentation","src":"8552:311:54","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":9750,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8877:5:54","nodeType":"FunctionDefinition","parameters":{"id":9690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9687,"mutability":"mutable","name":"to","nameLocation":"8891:2:54","nodeType":"VariableDeclaration","scope":9750,"src":"8883:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9686,"name":"address","nodeType":"ElementaryTypeName","src":"8883:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9689,"mutability":"mutable","name":"tokenId","nameLocation":"8903:7:54","nodeType":"VariableDeclaration","scope":9750,"src":"8895:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9688,"name":"uint256","nodeType":"ElementaryTypeName","src":"8895:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8882:29:54"},"returnParameters":{"id":9691,"nodeType":"ParameterList","parameters":[],"src":"8929:0:54"},"scope":10040,"src":"8868:427:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9809,"nodeType":"Block","src":"9561:357:54","statements":[{"assignments":[9757],"declarations":[{"constant":false,"id":9757,"mutability":"mutable","name":"owner","nameLocation":"9579:5:54","nodeType":"VariableDeclaration","scope":9809,"src":"9571:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9756,"name":"address","nodeType":"ElementaryTypeName","src":"9571:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9762,"initialValue":{"arguments":[{"id":9760,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9602:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9758,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"9587:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$10040_$","typeString":"type(contract ERC721)"}},"id":9759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"9587:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9587:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9571:39:54"},{"expression":{"arguments":[{"id":9764,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"9642:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9657:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9649:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9765,"name":"address","nodeType":"ElementaryTypeName","src":"9649:7:54","typeDescriptions":{}}},"id":9768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9649:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9769,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9661:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9763,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"9621:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9621:48:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9771,"nodeType":"ExpressionStatement","src":"9621:48:54"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9724:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9716:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9773,"name":"address","nodeType":"ElementaryTypeName","src":"9716:7:54","typeDescriptions":{}}},"id":9776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9716:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9777,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9728:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9772,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"9707:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9707:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9779,"nodeType":"ExpressionStatement","src":"9707:29:54"},{"expression":{"id":9784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9780,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"9747:9:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9782,"indexExpression":{"id":9781,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"9757:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9747:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":9783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9767:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9747:21:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9785,"nodeType":"ExpressionStatement","src":"9747:21:54"},{"expression":{"id":9789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9778:23:54","subExpression":{"baseExpression":{"id":9786,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"9785:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9788,"indexExpression":{"id":9787,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9793:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9785:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9790,"nodeType":"ExpressionStatement","src":"9778:23:54"},{"eventCall":{"arguments":[{"id":9792,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"9826:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9841:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9793,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:54","typeDescriptions":{}}},"id":9796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9833:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9797,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9845:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9791,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10055,"src":"9817:8:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9817:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9799,"nodeType":"EmitStatement","src":"9812:41:54"},{"expression":{"arguments":[{"id":9801,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"9884:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9899:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9891:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9802,"name":"address","nodeType":"ElementaryTypeName","src":"9891:7:54","typeDescriptions":{}}},"id":9805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9891:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9806,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9903:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9800,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10039,"src":"9864:19:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9864:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9808,"nodeType":"ExpressionStatement","src":"9864:47:54"}]},"documentation":{"id":9751,"nodeType":"StructuredDocumentation","src":"9301:206:54","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":9810,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9521:5:54","nodeType":"FunctionDefinition","parameters":{"id":9754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9753,"mutability":"mutable","name":"tokenId","nameLocation":"9535:7:54","nodeType":"VariableDeclaration","scope":9810,"src":"9527:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9752,"name":"uint256","nodeType":"ElementaryTypeName","src":"9527:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9526:17:54"},"returnParameters":{"id":9755,"nodeType":"ParameterList","parameters":[],"src":"9561:0:54"},"scope":10040,"src":"9512:406:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9884,"nodeType":"Block","src":"10351:496:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9823,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10384:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9821,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"10369:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$10040_$","typeString":"type(contract ERC721)"}},"id":9822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"10369:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10369:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9825,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9813,"src":"10396:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10369:31:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":9827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10402:39:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":9820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10361:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10361:81:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9829,"nodeType":"ExpressionStatement","src":"10361:81:54"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9831,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10460:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10474:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10466:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9832,"name":"address","nodeType":"ElementaryTypeName","src":"10466:7:54","typeDescriptions":{}}},"id":9835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10466:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10460:16:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373","id":9837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10478:38:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""},"value":"ERC721: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""}],"id":9830,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10452:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10452:65:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9839,"nodeType":"ExpressionStatement","src":"10452:65:54"},{"expression":{"arguments":[{"id":9841,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9813,"src":"10549:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9842,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10555:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9843,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10559:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9840,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"10528:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10528:39:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9845,"nodeType":"ExpressionStatement","src":"10528:39:54"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10646:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10638:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9847,"name":"address","nodeType":"ElementaryTypeName","src":"10638:7:54","typeDescriptions":{}}},"id":9850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10638:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9851,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10650:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9846,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"10629:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10629:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9853,"nodeType":"ExpressionStatement","src":"10629:29:54"},{"expression":{"id":9858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9854,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"10669:9:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9856,"indexExpression":{"id":9855,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9813,"src":"10679:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10669:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":9857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10688:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10669:20:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9859,"nodeType":"ExpressionStatement","src":"10669:20:54"},{"expression":{"id":9864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9860,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"10699:9:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9862,"indexExpression":{"id":9861,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10709:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10699:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":9863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10716:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10699:18:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9865,"nodeType":"ExpressionStatement","src":"10699:18:54"},{"expression":{"id":9870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9866,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"10727:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9868,"indexExpression":{"id":9867,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10735:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10727:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9869,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10746:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10727:21:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9871,"nodeType":"ExpressionStatement","src":"10727:21:54"},{"eventCall":{"arguments":[{"id":9873,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9813,"src":"10773:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9874,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10779:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9875,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10783:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9872,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10055,"src":"10764:8:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10764:27:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9877,"nodeType":"EmitStatement","src":"10759:32:54"},{"expression":{"arguments":[{"id":9879,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9813,"src":"10822:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9880,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10828:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9881,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10832:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9878,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10039,"src":"10802:19:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10802:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9883,"nodeType":"ExpressionStatement","src":"10802:38:54"}]},"documentation":{"id":9811,"nodeType":"StructuredDocumentation","src":"9924:313:54","text":" @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":9885,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"10251:9:54","nodeType":"FunctionDefinition","parameters":{"id":9818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9813,"mutability":"mutable","name":"from","nameLocation":"10278:4:54","nodeType":"VariableDeclaration","scope":9885,"src":"10270:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9812,"name":"address","nodeType":"ElementaryTypeName","src":"10270:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9815,"mutability":"mutable","name":"to","nameLocation":"10300:2:54","nodeType":"VariableDeclaration","scope":9885,"src":"10292:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9814,"name":"address","nodeType":"ElementaryTypeName","src":"10292:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9817,"mutability":"mutable","name":"tokenId","nameLocation":"10320:7:54","nodeType":"VariableDeclaration","scope":9885,"src":"10312:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9816,"name":"uint256","nodeType":"ElementaryTypeName","src":"10312:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10260:73:54"},"returnParameters":{"id":9819,"nodeType":"ParameterList","parameters":[],"src":"10351:0:54"},"scope":10040,"src":"10242:605:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9908,"nodeType":"Block","src":"11023:107:54","statements":[{"expression":{"id":9897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9893,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9213,"src":"11033:15:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9895,"indexExpression":{"id":9894,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9890,"src":"11049:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11033:24:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9896,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"11060:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11033:29:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9898,"nodeType":"ExpressionStatement","src":"11033:29:54"},{"eventCall":{"arguments":[{"arguments":[{"id":9902,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9890,"src":"11101:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9900,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"11086:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$10040_$","typeString":"type(contract ERC721)"}},"id":9901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"11086:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11086:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9904,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"11111:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9905,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9890,"src":"11115:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9899,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10064,"src":"11077:8:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11077:46:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9907,"nodeType":"EmitStatement","src":"11072:51:54"}]},"documentation":{"id":9886,"nodeType":"StructuredDocumentation","src":"10853:101:54","text":" @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event."},"id":9909,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10968:8:54","nodeType":"FunctionDefinition","parameters":{"id":9891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9888,"mutability":"mutable","name":"to","nameLocation":"10985:2:54","nodeType":"VariableDeclaration","scope":9909,"src":"10977:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9887,"name":"address","nodeType":"ElementaryTypeName","src":"10977:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9890,"mutability":"mutable","name":"tokenId","nameLocation":"10997:7:54","nodeType":"VariableDeclaration","scope":9909,"src":"10989:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9889,"name":"uint256","nodeType":"ElementaryTypeName","src":"10989:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10976:29:54"},"returnParameters":{"id":9892,"nodeType":"ParameterList","parameters":[],"src":"11023:0:54"},"scope":10040,"src":"10959:171:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9940,"nodeType":"Block","src":"11389:184:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9920,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9912,"src":"11407:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9921,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"11416:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11407:17:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","id":9923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11426:27:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""},"value":"ERC721: approve to caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""}],"id":9919,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11399:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11399:55:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9925,"nodeType":"ExpressionStatement","src":"11399:55:54"},{"expression":{"id":9932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":9926,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"11464:18:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":9929,"indexExpression":{"id":9927,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9912,"src":"11483:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11464:25:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":9930,"indexExpression":{"id":9928,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"11490:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11464:35:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9931,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9916,"src":"11502:8:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11464:46:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9933,"nodeType":"ExpressionStatement","src":"11464:46:54"},{"eventCall":{"arguments":[{"id":9935,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9912,"src":"11540:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9936,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"11547:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9937,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9916,"src":"11557:8:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9934,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10073,"src":"11525:14:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":9938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11525:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9939,"nodeType":"EmitStatement","src":"11520:46:54"}]},"documentation":{"id":9910,"nodeType":"StructuredDocumentation","src":"11136:125:54","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event."},"id":9941,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"11275:18:54","nodeType":"FunctionDefinition","parameters":{"id":9917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9912,"mutability":"mutable","name":"owner","nameLocation":"11311:5:54","nodeType":"VariableDeclaration","scope":9941,"src":"11303:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9911,"name":"address","nodeType":"ElementaryTypeName","src":"11303:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9914,"mutability":"mutable","name":"operator","nameLocation":"11334:8:54","nodeType":"VariableDeclaration","scope":9941,"src":"11326:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9913,"name":"address","nodeType":"ElementaryTypeName","src":"11326:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9916,"mutability":"mutable","name":"approved","nameLocation":"11357:8:54","nodeType":"VariableDeclaration","scope":9941,"src":"11352:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9915,"name":"bool","nodeType":"ElementaryTypeName","src":"11352:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11293:78:54"},"returnParameters":{"id":9918,"nodeType":"ParameterList","parameters":[],"src":"11389:0:54"},"scope":10040,"src":"11266:307:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9954,"nodeType":"Block","src":"11720:70:54","statements":[{"expression":{"arguments":[{"arguments":[{"id":9949,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9944,"src":"11746:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9948,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9606,"src":"11738:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":9950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11738:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":9951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11756:26:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":9947,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11730:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11730:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9953,"nodeType":"ExpressionStatement","src":"11730:53:54"}]},"documentation":{"id":9942,"nodeType":"StructuredDocumentation","src":"11579:73:54","text":" @dev Reverts if the `tokenId` has not been minted yet."},"id":9955,"implemented":true,"kind":"function","modifiers":[],"name":"_requireMinted","nameLocation":"11666:14:54","nodeType":"FunctionDefinition","parameters":{"id":9945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9944,"mutability":"mutable","name":"tokenId","nameLocation":"11689:7:54","nodeType":"VariableDeclaration","scope":9955,"src":"11681:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9943,"name":"uint256","nodeType":"ElementaryTypeName","src":"11681:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11680:17:54"},"returnParameters":{"id":9946,"nodeType":"ParameterList","parameters":[],"src":"11720:0:54"},"scope":10040,"src":"11657:133:54","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":10016,"nodeType":"Block","src":"12497:676:54","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9969,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9960,"src":"12511:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10219,"src":"12511:13:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":9971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12511:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10014,"nodeType":"Block","src":"13131:36:54","statements":[{"expression":{"hexValue":"74727565","id":10012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13152:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9968,"id":10013,"nodeType":"Return","src":"13145:11:54"}]},"id":10015,"nodeType":"IfStatement","src":"12507:660:54","trueBody":{"id":10011,"nodeType":"Block","src":"12528:597:54","statements":[{"clauses":[{"block":{"id":9991,"nodeType":"Block","src":"12642:91:54","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9985,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9983,"src":"12667:6:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":9986,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10174,"src":"12677:15:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$10174_$","typeString":"type(contract IERC721Receiver)"}},"id":9987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":10173,"src":"12677:32:54","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":9988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"12677:41:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"12667:51:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9968,"id":9990,"nodeType":"Return","src":"12660:58:54"}]},"errorName":"","id":9992,"nodeType":"TryCatchClause","parameters":{"id":9984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9983,"mutability":"mutable","name":"retval","nameLocation":"12634:6:54","nodeType":"VariableDeclaration","scope":9992,"src":"12627:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9982,"name":"bytes4","nodeType":"ElementaryTypeName","src":"12627:6:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"12626:15:54"},"src":"12618:115:54"},{"block":{"id":10008,"nodeType":"Block","src":"12762:353:54","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9996,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9994,"src":"12784:6:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12784:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12801:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12784:18:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10006,"nodeType":"Block","src":"12911:190:54","statements":[{"AST":{"nodeType":"YulBlock","src":"12997:86:54","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13034:2:54","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"13038:6:54"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13030:3:54"},"nodeType":"YulFunctionCall","src":"13030:15:54"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"13053:6:54"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13047:5:54"},"nodeType":"YulFunctionCall","src":"13047:13:54"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13023:6:54"},"nodeType":"YulFunctionCall","src":"13023:38:54"},"nodeType":"YulExpressionStatement","src":"13023:38:54"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":9994,"isOffset":false,"isSlot":false,"src":"13038:6:54","valueSize":1},{"declaration":9994,"isOffset":false,"isSlot":false,"src":"13053:6:54","valueSize":1}],"id":10005,"nodeType":"InlineAssembly","src":"12988:95:54"}]},"id":10007,"nodeType":"IfStatement","src":"12780:321:54","trueBody":{"id":10004,"nodeType":"Block","src":"12804:101:54","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":10001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12833:52:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":10000,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"12826:6:54","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":10002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12826:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10003,"nodeType":"ExpressionStatement","src":"12826:60:54"}]}}]},"errorName":"","id":10009,"nodeType":"TryCatchClause","parameters":{"id":9995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9994,"mutability":"mutable","name":"reason","nameLocation":"12754:6:54","nodeType":"VariableDeclaration","scope":10009,"src":"12741:19:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9993,"name":"bytes","nodeType":"ElementaryTypeName","src":"12741:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12740:21:54"},"src":"12734:381:54"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9976,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"12583:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12583:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9978,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9958,"src":"12597:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9979,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9962,"src":"12603:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9980,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9964,"src":"12612:4:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":9973,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9960,"src":"12562:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9972,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10174,"src":"12546:15:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$10174_$","typeString":"type(contract IERC721Receiver)"}},"id":9974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12546:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$10174","typeString":"contract IERC721Receiver"}},"id":9975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":10173,"src":"12546:36:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":9981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12546:71:54","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":10010,"nodeType":"TryStatement","src":"12542:573:54"}]}}]},"documentation":{"id":9956,"nodeType":"StructuredDocumentation","src":"11796:541:54","text":" @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"},"id":10017,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"12351:22:54","nodeType":"FunctionDefinition","parameters":{"id":9965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9958,"mutability":"mutable","name":"from","nameLocation":"12391:4:54","nodeType":"VariableDeclaration","scope":10017,"src":"12383:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9957,"name":"address","nodeType":"ElementaryTypeName","src":"12383:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9960,"mutability":"mutable","name":"to","nameLocation":"12413:2:54","nodeType":"VariableDeclaration","scope":10017,"src":"12405:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9959,"name":"address","nodeType":"ElementaryTypeName","src":"12405:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9962,"mutability":"mutable","name":"tokenId","nameLocation":"12433:7:54","nodeType":"VariableDeclaration","scope":10017,"src":"12425:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9961,"name":"uint256","nodeType":"ElementaryTypeName","src":"12425:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9964,"mutability":"mutable","name":"data","nameLocation":"12463:4:54","nodeType":"VariableDeclaration","scope":10017,"src":"12450:17:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9963,"name":"bytes","nodeType":"ElementaryTypeName","src":"12450:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12373:100:54"},"returnParameters":{"id":9968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9967,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10017,"src":"12491:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9966,"name":"bool","nodeType":"ElementaryTypeName","src":"12491:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12490:6:54"},"scope":10040,"src":"12342:831:54","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10027,"nodeType":"Block","src":"13849:2:54","statements":[]},"documentation":{"id":10018,"nodeType":"StructuredDocumentation","src":"13179:545:54","text":" @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":10028,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"13738:20:54","nodeType":"FunctionDefinition","parameters":{"id":10025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10020,"mutability":"mutable","name":"from","nameLocation":"13776:4:54","nodeType":"VariableDeclaration","scope":10028,"src":"13768:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10019,"name":"address","nodeType":"ElementaryTypeName","src":"13768:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10022,"mutability":"mutable","name":"to","nameLocation":"13798:2:54","nodeType":"VariableDeclaration","scope":10028,"src":"13790:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10021,"name":"address","nodeType":"ElementaryTypeName","src":"13790:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10024,"mutability":"mutable","name":"tokenId","nameLocation":"13818:7:54","nodeType":"VariableDeclaration","scope":10028,"src":"13810:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10023,"name":"uint256","nodeType":"ElementaryTypeName","src":"13810:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13758:73:54"},"returnParameters":{"id":10026,"nodeType":"ParameterList","parameters":[],"src":"13849:0:54"},"scope":10040,"src":"13729:122:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":10038,"nodeType":"Block","src":"14342:2:54","statements":[]},"documentation":{"id":10029,"nodeType":"StructuredDocumentation","src":"13857:361:54","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":10039,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"14232:19:54","nodeType":"FunctionDefinition","parameters":{"id":10036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10031,"mutability":"mutable","name":"from","nameLocation":"14269:4:54","nodeType":"VariableDeclaration","scope":10039,"src":"14261:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10030,"name":"address","nodeType":"ElementaryTypeName","src":"14261:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10033,"mutability":"mutable","name":"to","nameLocation":"14291:2:54","nodeType":"VariableDeclaration","scope":10039,"src":"14283:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10032,"name":"address","nodeType":"ElementaryTypeName","src":"14283:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10035,"mutability":"mutable","name":"tokenId","nameLocation":"14311:7:54","nodeType":"VariableDeclaration","scope":10039,"src":"14303:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10034,"name":"uint256","nodeType":"ElementaryTypeName","src":"14303:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14251:73:54"},"returnParameters":{"id":10037,"nodeType":"ParameterList","parameters":[],"src":"14342:0:54"},"scope":10040,"src":"14223:121:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":10041,"src":"628:13718:54"}],"src":"107:14240:54"},"id":54},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[10840],"IERC721":[10156]},"id":10157,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10042,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:55"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":10043,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10157,"sourceUnit":10841,"src":"133:47:55","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10045,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":10840,"src":"271:7:55"},"id":10046,"nodeType":"InheritanceSpecifier","src":"271:7:55"}],"contractDependencies":[10840],"contractKind":"interface","documentation":{"id":10044,"nodeType":"StructuredDocumentation","src":"182:67:55","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":10156,"linearizedBaseContracts":[10156,10840],"name":"IERC721","nameLocation":"260:7:55","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":10047,"nodeType":"StructuredDocumentation","src":"285:88:55","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"id":10055,"name":"Transfer","nameLocation":"384:8:55","nodeType":"EventDefinition","parameters":{"id":10054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10049,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"409:4:55","nodeType":"VariableDeclaration","scope":10055,"src":"393:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10048,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10051,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"431:2:55","nodeType":"VariableDeclaration","scope":10055,"src":"415:18:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10050,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10053,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"451:7:55","nodeType":"VariableDeclaration","scope":10055,"src":"435:23:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10052,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:67:55"},"src":"378:82:55"},{"anonymous":false,"documentation":{"id":10056,"nodeType":"StructuredDocumentation","src":"466:94:55","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"id":10064,"name":"Approval","nameLocation":"571:8:55","nodeType":"EventDefinition","parameters":{"id":10063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10058,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"596:5:55","nodeType":"VariableDeclaration","scope":10064,"src":"580:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10057,"name":"address","nodeType":"ElementaryTypeName","src":"580:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10060,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"619:8:55","nodeType":"VariableDeclaration","scope":10064,"src":"603:24:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10059,"name":"address","nodeType":"ElementaryTypeName","src":"603:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10062,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"645:7:55","nodeType":"VariableDeclaration","scope":10064,"src":"629:23:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10061,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"579:74:55"},"src":"565:89:55"},{"anonymous":false,"documentation":{"id":10065,"nodeType":"StructuredDocumentation","src":"660:117:55","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"id":10073,"name":"ApprovalForAll","nameLocation":"788:14:55","nodeType":"EventDefinition","parameters":{"id":10072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10067,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"819:5:55","nodeType":"VariableDeclaration","scope":10073,"src":"803:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10066,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10069,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"842:8:55","nodeType":"VariableDeclaration","scope":10073,"src":"826:24:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10068,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10071,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"857:8:55","nodeType":"VariableDeclaration","scope":10073,"src":"852:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10070,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"802:64:55"},"src":"782:85:55"},{"documentation":{"id":10074,"nodeType":"StructuredDocumentation","src":"873:76:55","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":10081,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"963:9:55","nodeType":"FunctionDefinition","parameters":{"id":10077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10076,"mutability":"mutable","name":"owner","nameLocation":"981:5:55","nodeType":"VariableDeclaration","scope":10081,"src":"973:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10075,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"972:15:55"},"returnParameters":{"id":10080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10079,"mutability":"mutable","name":"balance","nameLocation":"1019:7:55","nodeType":"VariableDeclaration","scope":10081,"src":"1011:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10078,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:17:55"},"scope":10156,"src":"954:74:55","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10082,"nodeType":"StructuredDocumentation","src":"1034:131:55","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":10089,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1179:7:55","nodeType":"FunctionDefinition","parameters":{"id":10085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10084,"mutability":"mutable","name":"tokenId","nameLocation":"1195:7:55","nodeType":"VariableDeclaration","scope":10089,"src":"1187:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10083,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:17:55"},"returnParameters":{"id":10088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10087,"mutability":"mutable","name":"owner","nameLocation":"1235:5:55","nodeType":"VariableDeclaration","scope":10089,"src":"1227:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10086,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1226:15:55"},"scope":10156,"src":"1170:72:55","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10090,"nodeType":"StructuredDocumentation","src":"1248:556:55","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":10101,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1818:16:55","nodeType":"FunctionDefinition","parameters":{"id":10099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10092,"mutability":"mutable","name":"from","nameLocation":"1852:4:55","nodeType":"VariableDeclaration","scope":10101,"src":"1844:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10091,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10094,"mutability":"mutable","name":"to","nameLocation":"1874:2:55","nodeType":"VariableDeclaration","scope":10101,"src":"1866:10:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10093,"name":"address","nodeType":"ElementaryTypeName","src":"1866:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10096,"mutability":"mutable","name":"tokenId","nameLocation":"1894:7:55","nodeType":"VariableDeclaration","scope":10101,"src":"1886:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10098,"mutability":"mutable","name":"data","nameLocation":"1926:4:55","nodeType":"VariableDeclaration","scope":10101,"src":"1911:19:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10097,"name":"bytes","nodeType":"ElementaryTypeName","src":"1911:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1834:102:55"},"returnParameters":{"id":10100,"nodeType":"ParameterList","parameters":[],"src":"1945:0:55"},"scope":10156,"src":"1809:137:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":10102,"nodeType":"StructuredDocumentation","src":"1952:687:55","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":10111,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2653:16:55","nodeType":"FunctionDefinition","parameters":{"id":10109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10104,"mutability":"mutable","name":"from","nameLocation":"2687:4:55","nodeType":"VariableDeclaration","scope":10111,"src":"2679:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10103,"name":"address","nodeType":"ElementaryTypeName","src":"2679:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10106,"mutability":"mutable","name":"to","nameLocation":"2709:2:55","nodeType":"VariableDeclaration","scope":10111,"src":"2701:10:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10105,"name":"address","nodeType":"ElementaryTypeName","src":"2701:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10108,"mutability":"mutable","name":"tokenId","nameLocation":"2729:7:55","nodeType":"VariableDeclaration","scope":10111,"src":"2721:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10107,"name":"uint256","nodeType":"ElementaryTypeName","src":"2721:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2669:73:55"},"returnParameters":{"id":10110,"nodeType":"ParameterList","parameters":[],"src":"2751:0:55"},"scope":10156,"src":"2644:108:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":10112,"nodeType":"StructuredDocumentation","src":"2758:504:55","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":10121,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3276:12:55","nodeType":"FunctionDefinition","parameters":{"id":10119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10114,"mutability":"mutable","name":"from","nameLocation":"3306:4:55","nodeType":"VariableDeclaration","scope":10121,"src":"3298:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10113,"name":"address","nodeType":"ElementaryTypeName","src":"3298:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10116,"mutability":"mutable","name":"to","nameLocation":"3328:2:55","nodeType":"VariableDeclaration","scope":10121,"src":"3320:10:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10115,"name":"address","nodeType":"ElementaryTypeName","src":"3320:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10118,"mutability":"mutable","name":"tokenId","nameLocation":"3348:7:55","nodeType":"VariableDeclaration","scope":10121,"src":"3340:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10117,"name":"uint256","nodeType":"ElementaryTypeName","src":"3340:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3288:73:55"},"returnParameters":{"id":10120,"nodeType":"ParameterList","parameters":[],"src":"3370:0:55"},"scope":10156,"src":"3267:104:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":10122,"nodeType":"StructuredDocumentation","src":"3377:452:55","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":10129,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3843:7:55","nodeType":"FunctionDefinition","parameters":{"id":10127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10124,"mutability":"mutable","name":"to","nameLocation":"3859:2:55","nodeType":"VariableDeclaration","scope":10129,"src":"3851:10:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10123,"name":"address","nodeType":"ElementaryTypeName","src":"3851:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10126,"mutability":"mutable","name":"tokenId","nameLocation":"3871:7:55","nodeType":"VariableDeclaration","scope":10129,"src":"3863:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10125,"name":"uint256","nodeType":"ElementaryTypeName","src":"3863:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3850:29:55"},"returnParameters":{"id":10128,"nodeType":"ParameterList","parameters":[],"src":"3888:0:55"},"scope":10156,"src":"3834:55:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":10130,"nodeType":"StructuredDocumentation","src":"3895:309:55","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":10137,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4218:17:55","nodeType":"FunctionDefinition","parameters":{"id":10135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10132,"mutability":"mutable","name":"operator","nameLocation":"4244:8:55","nodeType":"VariableDeclaration","scope":10137,"src":"4236:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10131,"name":"address","nodeType":"ElementaryTypeName","src":"4236:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10134,"mutability":"mutable","name":"_approved","nameLocation":"4259:9:55","nodeType":"VariableDeclaration","scope":10137,"src":"4254:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10133,"name":"bool","nodeType":"ElementaryTypeName","src":"4254:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4235:34:55"},"returnParameters":{"id":10136,"nodeType":"ParameterList","parameters":[],"src":"4278:0:55"},"scope":10156,"src":"4209:70:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":10138,"nodeType":"StructuredDocumentation","src":"4285:139:55","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":10145,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4438:11:55","nodeType":"FunctionDefinition","parameters":{"id":10141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10140,"mutability":"mutable","name":"tokenId","nameLocation":"4458:7:55","nodeType":"VariableDeclaration","scope":10145,"src":"4450:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10139,"name":"uint256","nodeType":"ElementaryTypeName","src":"4450:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4449:17:55"},"returnParameters":{"id":10144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10143,"mutability":"mutable","name":"operator","nameLocation":"4498:8:55","nodeType":"VariableDeclaration","scope":10145,"src":"4490:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10142,"name":"address","nodeType":"ElementaryTypeName","src":"4490:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4489:18:55"},"scope":10156,"src":"4429:79:55","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10146,"nodeType":"StructuredDocumentation","src":"4514:138:55","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":10155,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4666:16:55","nodeType":"FunctionDefinition","parameters":{"id":10151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10148,"mutability":"mutable","name":"owner","nameLocation":"4691:5:55","nodeType":"VariableDeclaration","scope":10155,"src":"4683:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10147,"name":"address","nodeType":"ElementaryTypeName","src":"4683:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10150,"mutability":"mutable","name":"operator","nameLocation":"4706:8:55","nodeType":"VariableDeclaration","scope":10155,"src":"4698:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10149,"name":"address","nodeType":"ElementaryTypeName","src":"4698:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4682:33:55"},"returnParameters":{"id":10154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10155,"src":"4739:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10152,"name":"bool","nodeType":"ElementaryTypeName","src":"4739:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4738:6:55"},"scope":10156,"src":"4657:88:55","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":10157,"src":"250:4497:55"}],"src":"108:4640:55"},"id":55},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[10174]},"id":10175,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10158,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"116:23:56"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":10159,"nodeType":"StructuredDocumentation","src":"141:152:56","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":10174,"linearizedBaseContracts":[10174],"name":"IERC721Receiver","nameLocation":"304:15:56","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10160,"nodeType":"StructuredDocumentation","src":"326:493:56","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":10173,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"833:16:56","nodeType":"FunctionDefinition","parameters":{"id":10169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10162,"mutability":"mutable","name":"operator","nameLocation":"867:8:56","nodeType":"VariableDeclaration","scope":10173,"src":"859:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10161,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10164,"mutability":"mutable","name":"from","nameLocation":"893:4:56","nodeType":"VariableDeclaration","scope":10173,"src":"885:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10163,"name":"address","nodeType":"ElementaryTypeName","src":"885:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10166,"mutability":"mutable","name":"tokenId","nameLocation":"915:7:56","nodeType":"VariableDeclaration","scope":10173,"src":"907:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10165,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10168,"mutability":"mutable","name":"data","nameLocation":"947:4:56","nodeType":"VariableDeclaration","scope":10173,"src":"932:19:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10167,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"849:108:56"},"returnParameters":{"id":10172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10173,"src":"976:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10170,"name":"bytes4","nodeType":"ElementaryTypeName","src":"976:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"975:8:56"},"scope":10174,"src":"824:160:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":10175,"src":"294:692:56"}],"src":"116:871:56"},"id":56},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201]},"id":10202,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10176,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:57"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":10177,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10202,"sourceUnit":10157,"src":"137:24:57","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10179,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":10156,"src":"326:7:57"},"id":10180,"nodeType":"InheritanceSpecifier","src":"326:7:57"}],"contractDependencies":[10156,10840],"contractKind":"interface","documentation":{"id":10178,"nodeType":"StructuredDocumentation","src":"163:133:57","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":10201,"linearizedBaseContracts":[10201,10156,10840],"name":"IERC721Metadata","nameLocation":"307:15:57","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10181,"nodeType":"StructuredDocumentation","src":"340:58:57","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":10186,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"412:4:57","nodeType":"FunctionDefinition","parameters":{"id":10182,"nodeType":"ParameterList","parameters":[],"src":"416:2:57"},"returnParameters":{"id":10185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10186,"src":"442:13:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10183,"name":"string","nodeType":"ElementaryTypeName","src":"442:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"441:15:57"},"scope":10201,"src":"403:54:57","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10187,"nodeType":"StructuredDocumentation","src":"463:60:57","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":10192,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"537:6:57","nodeType":"FunctionDefinition","parameters":{"id":10188,"nodeType":"ParameterList","parameters":[],"src":"543:2:57"},"returnParameters":{"id":10191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10190,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10192,"src":"569:13:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10189,"name":"string","nodeType":"ElementaryTypeName","src":"569:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"568:15:57"},"scope":10201,"src":"528:56:57","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10193,"nodeType":"StructuredDocumentation","src":"590:90:57","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":10200,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"694:8:57","nodeType":"FunctionDefinition","parameters":{"id":10196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10195,"mutability":"mutable","name":"tokenId","nameLocation":"711:7:57","nodeType":"VariableDeclaration","scope":10200,"src":"703:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10194,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:17:57"},"returnParameters":{"id":10199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10200,"src":"743:13:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10197,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"742:15:57"},"scope":10201,"src":"685:73:57","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":10202,"src":"297:463:57"}],"src":"112:649:57"},"id":57},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[10496]},"id":10497,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10203,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:58"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":10204,"nodeType":"StructuredDocumentation","src":"126:67:58","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":10496,"linearizedBaseContracts":[10496],"name":"Address","nameLocation":"202:7:58","nodeType":"ContractDefinition","nodes":[{"body":{"id":10218,"nodeType":"Block","src":"1241:254:58","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10212,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10207,"src":"1465:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1465:12:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1465:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1465:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10211,"id":10217,"nodeType":"Return","src":"1458:30:58"}]},"documentation":{"id":10205,"nodeType":"StructuredDocumentation","src":"216:954:58","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":10219,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1184:10:58","nodeType":"FunctionDefinition","parameters":{"id":10208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10207,"mutability":"mutable","name":"account","nameLocation":"1203:7:58","nodeType":"VariableDeclaration","scope":10219,"src":"1195:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10206,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:17:58"},"returnParameters":{"id":10211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10219,"src":"1235:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10209,"name":"bool","nodeType":"ElementaryTypeName","src":"1235:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:6:58"},"scope":10496,"src":"1175:320:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10252,"nodeType":"Block","src":"2483:241:58","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":10230,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"2509:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$10496","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$10496","typeString":"library Address"}],"id":10229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2501:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10228,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:58","typeDescriptions":{}}},"id":10231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2501:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2501:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":10233,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10224,"src":"2526:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2501:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":10235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2534:31:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":10227,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2493:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2493:73:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10237,"nodeType":"ExpressionStatement","src":"2493:73:58"},{"assignments":[10239,null],"declarations":[{"constant":false,"id":10239,"mutability":"mutable","name":"success","nameLocation":"2583:7:58","nodeType":"VariableDeclaration","scope":10252,"src":"2578:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10238,"name":"bool","nodeType":"ElementaryTypeName","src":"2578:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":10246,"initialValue":{"arguments":[{"hexValue":"","id":10244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2626:2:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":10240,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10222,"src":"2596:9:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":10241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2596:14:58","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":10243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":10242,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10224,"src":"2618:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2596:29:58","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":10245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2596:33:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2577:52:58"},{"expression":{"arguments":[{"id":10248,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10239,"src":"2647:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":10249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2656:60:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":10247,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2639:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2639:78:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10251,"nodeType":"ExpressionStatement","src":"2639:78:58"}]},"documentation":{"id":10220,"nodeType":"StructuredDocumentation","src":"1501:906:58","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":10253,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2421:9:58","nodeType":"FunctionDefinition","parameters":{"id":10225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10222,"mutability":"mutable","name":"recipient","nameLocation":"2447:9:58","nodeType":"VariableDeclaration","scope":10253,"src":"2431:25:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":10221,"name":"address","nodeType":"ElementaryTypeName","src":"2431:15:58","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":10224,"mutability":"mutable","name":"amount","nameLocation":"2466:6:58","nodeType":"VariableDeclaration","scope":10253,"src":"2458:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10223,"name":"uint256","nodeType":"ElementaryTypeName","src":"2458:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:43:58"},"returnParameters":{"id":10226,"nodeType":"ParameterList","parameters":[],"src":"2483:0:58"},"scope":10496,"src":"2412:312:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10269,"nodeType":"Block","src":"3555:84:58","statements":[{"expression":{"arguments":[{"id":10264,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10256,"src":"3585:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10265,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10258,"src":"3593:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":10266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3599:32:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":10263,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[10270,10290],"referencedDeclaration":10290,"src":"3572:12:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":10267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3572:60:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10262,"id":10268,"nodeType":"Return","src":"3565:67:58"}]},"documentation":{"id":10254,"nodeType":"StructuredDocumentation","src":"2730:731:58","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":10270,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3475:12:58","nodeType":"FunctionDefinition","parameters":{"id":10259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10256,"mutability":"mutable","name":"target","nameLocation":"3496:6:58","nodeType":"VariableDeclaration","scope":10270,"src":"3488:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10255,"name":"address","nodeType":"ElementaryTypeName","src":"3488:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10258,"mutability":"mutable","name":"data","nameLocation":"3517:4:58","nodeType":"VariableDeclaration","scope":10270,"src":"3504:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10257,"name":"bytes","nodeType":"ElementaryTypeName","src":"3504:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3487:35:58"},"returnParameters":{"id":10262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10270,"src":"3541:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10260,"name":"bytes","nodeType":"ElementaryTypeName","src":"3541:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:14:58"},"scope":10496,"src":"3466:173:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10289,"nodeType":"Block","src":"4008:76:58","statements":[{"expression":{"arguments":[{"id":10283,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10273,"src":"4047:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10284,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10275,"src":"4055:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":10285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4061:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":10286,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10277,"src":"4064:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10282,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[10310,10360],"referencedDeclaration":10360,"src":"4025:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":10287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4025:52:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10281,"id":10288,"nodeType":"Return","src":"4018:59:58"}]},"documentation":{"id":10271,"nodeType":"StructuredDocumentation","src":"3645:211:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":10290,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3870:12:58","nodeType":"FunctionDefinition","parameters":{"id":10278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10273,"mutability":"mutable","name":"target","nameLocation":"3900:6:58","nodeType":"VariableDeclaration","scope":10290,"src":"3892:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10272,"name":"address","nodeType":"ElementaryTypeName","src":"3892:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10275,"mutability":"mutable","name":"data","nameLocation":"3929:4:58","nodeType":"VariableDeclaration","scope":10290,"src":"3916:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10274,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10277,"mutability":"mutable","name":"errorMessage","nameLocation":"3957:12:58","nodeType":"VariableDeclaration","scope":10290,"src":"3943:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10276,"name":"string","nodeType":"ElementaryTypeName","src":"3943:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3882:93:58"},"returnParameters":{"id":10281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10290,"src":"3994:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10279,"name":"bytes","nodeType":"ElementaryTypeName","src":"3994:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3993:14:58"},"scope":10496,"src":"3861:223:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10309,"nodeType":"Block","src":"4589:111:58","statements":[{"expression":{"arguments":[{"id":10303,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10293,"src":"4628:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10304,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10295,"src":"4636:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10305,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10297,"src":"4642:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":10306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4649:43:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":10302,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[10310,10360],"referencedDeclaration":10360,"src":"4606:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":10307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4606:87:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10301,"id":10308,"nodeType":"Return","src":"4599:94:58"}]},"documentation":{"id":10291,"nodeType":"StructuredDocumentation","src":"4090:351:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":10310,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4455:21:58","nodeType":"FunctionDefinition","parameters":{"id":10298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10293,"mutability":"mutable","name":"target","nameLocation":"4494:6:58","nodeType":"VariableDeclaration","scope":10310,"src":"4486:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10292,"name":"address","nodeType":"ElementaryTypeName","src":"4486:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10295,"mutability":"mutable","name":"data","nameLocation":"4523:4:58","nodeType":"VariableDeclaration","scope":10310,"src":"4510:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10294,"name":"bytes","nodeType":"ElementaryTypeName","src":"4510:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10297,"mutability":"mutable","name":"value","nameLocation":"4545:5:58","nodeType":"VariableDeclaration","scope":10310,"src":"4537:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10296,"name":"uint256","nodeType":"ElementaryTypeName","src":"4537:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4476:80:58"},"returnParameters":{"id":10301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10310,"src":"4575:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10299,"name":"bytes","nodeType":"ElementaryTypeName","src":"4575:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4574:14:58"},"scope":10496,"src":"4446:254:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10359,"nodeType":"Block","src":"5127:320:58","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":10327,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"5153:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$10496","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$10496","typeString":"library Address"}],"id":10326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5145:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10325,"name":"address","nodeType":"ElementaryTypeName","src":"5145:7:58","typeDescriptions":{}}},"id":10328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5145:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"5145:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":10330,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10317,"src":"5170:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5145:30:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":10332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5177:40:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":10324,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5137:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5137:81:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10334,"nodeType":"ExpressionStatement","src":"5137:81:58"},{"expression":{"arguments":[{"arguments":[{"id":10337,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10313,"src":"5247:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10336,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10219,"src":"5236:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":10338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5236:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":10339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5256:31:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":10335,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5228:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5228:60:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10341,"nodeType":"ExpressionStatement","src":"5228:60:58"},{"assignments":[10343,10345],"declarations":[{"constant":false,"id":10343,"mutability":"mutable","name":"success","nameLocation":"5305:7:58","nodeType":"VariableDeclaration","scope":10359,"src":"5300:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10342,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10345,"mutability":"mutable","name":"returndata","nameLocation":"5327:10:58","nodeType":"VariableDeclaration","scope":10359,"src":"5314:23:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10344,"name":"bytes","nodeType":"ElementaryTypeName","src":"5314:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10352,"initialValue":{"arguments":[{"id":10350,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10315,"src":"5367:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10346,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10313,"src":"5341:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5341:11:58","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":10348,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10317,"src":"5360:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5341:25:58","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":10351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5341:31:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5299:73:58"},{"expression":{"arguments":[{"id":10354,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10343,"src":"5406:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10355,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10345,"src":"5415:10:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10356,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10319,"src":"5427:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10353,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10495,"src":"5389:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":10357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5389:51:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10323,"id":10358,"nodeType":"Return","src":"5382:58:58"}]},"documentation":{"id":10311,"nodeType":"StructuredDocumentation","src":"4706:237:58","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":10360,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4957:21:58","nodeType":"FunctionDefinition","parameters":{"id":10320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10313,"mutability":"mutable","name":"target","nameLocation":"4996:6:58","nodeType":"VariableDeclaration","scope":10360,"src":"4988:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10312,"name":"address","nodeType":"ElementaryTypeName","src":"4988:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10315,"mutability":"mutable","name":"data","nameLocation":"5025:4:58","nodeType":"VariableDeclaration","scope":10360,"src":"5012:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10314,"name":"bytes","nodeType":"ElementaryTypeName","src":"5012:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10317,"mutability":"mutable","name":"value","nameLocation":"5047:5:58","nodeType":"VariableDeclaration","scope":10360,"src":"5039:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10316,"name":"uint256","nodeType":"ElementaryTypeName","src":"5039:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10319,"mutability":"mutable","name":"errorMessage","nameLocation":"5076:12:58","nodeType":"VariableDeclaration","scope":10360,"src":"5062:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10318,"name":"string","nodeType":"ElementaryTypeName","src":"5062:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4978:116:58"},"returnParameters":{"id":10323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10360,"src":"5113:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10321,"name":"bytes","nodeType":"ElementaryTypeName","src":"5113:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5112:14:58"},"scope":10496,"src":"4948:499:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10376,"nodeType":"Block","src":"5724:97:58","statements":[{"expression":{"arguments":[{"id":10371,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10363,"src":"5760:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10372,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10365,"src":"5768:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":10373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5774:39:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":10370,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[10377,10412],"referencedDeclaration":10412,"src":"5741:18:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":10374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5741:73:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10369,"id":10375,"nodeType":"Return","src":"5734:80:58"}]},"documentation":{"id":10361,"nodeType":"StructuredDocumentation","src":"5453:166:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":10377,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5633:18:58","nodeType":"FunctionDefinition","parameters":{"id":10366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10363,"mutability":"mutable","name":"target","nameLocation":"5660:6:58","nodeType":"VariableDeclaration","scope":10377,"src":"5652:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10362,"name":"address","nodeType":"ElementaryTypeName","src":"5652:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10365,"mutability":"mutable","name":"data","nameLocation":"5681:4:58","nodeType":"VariableDeclaration","scope":10377,"src":"5668:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10364,"name":"bytes","nodeType":"ElementaryTypeName","src":"5668:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5651:35:58"},"returnParameters":{"id":10369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10377,"src":"5710:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10367,"name":"bytes","nodeType":"ElementaryTypeName","src":"5710:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5709:14:58"},"scope":10496,"src":"5624:197:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10411,"nodeType":"Block","src":"6163:228:58","statements":[{"expression":{"arguments":[{"arguments":[{"id":10391,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10380,"src":"6192:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10390,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10219,"src":"6181:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":10392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6181:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":10393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6201:38:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""},"value":"Address: static call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""}],"id":10389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6173:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6173:67:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10395,"nodeType":"ExpressionStatement","src":"6173:67:58"},{"assignments":[10397,10399],"declarations":[{"constant":false,"id":10397,"mutability":"mutable","name":"success","nameLocation":"6257:7:58","nodeType":"VariableDeclaration","scope":10411,"src":"6252:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10396,"name":"bool","nodeType":"ElementaryTypeName","src":"6252:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10399,"mutability":"mutable","name":"returndata","nameLocation":"6279:10:58","nodeType":"VariableDeclaration","scope":10411,"src":"6266:23:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10398,"name":"bytes","nodeType":"ElementaryTypeName","src":"6266:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10404,"initialValue":{"arguments":[{"id":10402,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10382,"src":"6311:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10400,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10380,"src":"6293:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staticcall","nodeType":"MemberAccess","src":"6293:17:58","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":10403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6293:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6251:65:58"},{"expression":{"arguments":[{"id":10406,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10397,"src":"6350:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10407,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10399,"src":"6359:10:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10408,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10384,"src":"6371:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10405,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10495,"src":"6333:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":10409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6333:51:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10388,"id":10410,"nodeType":"Return","src":"6326:58:58"}]},"documentation":{"id":10378,"nodeType":"StructuredDocumentation","src":"5827:173:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":10412,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6014:18:58","nodeType":"FunctionDefinition","parameters":{"id":10385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10380,"mutability":"mutable","name":"target","nameLocation":"6050:6:58","nodeType":"VariableDeclaration","scope":10412,"src":"6042:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10379,"name":"address","nodeType":"ElementaryTypeName","src":"6042:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10382,"mutability":"mutable","name":"data","nameLocation":"6079:4:58","nodeType":"VariableDeclaration","scope":10412,"src":"6066:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10381,"name":"bytes","nodeType":"ElementaryTypeName","src":"6066:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10384,"mutability":"mutable","name":"errorMessage","nameLocation":"6107:12:58","nodeType":"VariableDeclaration","scope":10412,"src":"6093:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10383,"name":"string","nodeType":"ElementaryTypeName","src":"6093:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6032:93:58"},"returnParameters":{"id":10388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10412,"src":"6149:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10386,"name":"bytes","nodeType":"ElementaryTypeName","src":"6149:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6148:14:58"},"scope":10496,"src":"6005:386:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10428,"nodeType":"Block","src":"6667:101:58","statements":[{"expression":{"arguments":[{"id":10423,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10415,"src":"6705:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10424,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10417,"src":"6713:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":10425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6719:41:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":10422,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[10429,10464],"referencedDeclaration":10464,"src":"6684:20:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":10426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6684:77:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10421,"id":10427,"nodeType":"Return","src":"6677:84:58"}]},"documentation":{"id":10413,"nodeType":"StructuredDocumentation","src":"6397:168:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":10429,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6579:20:58","nodeType":"FunctionDefinition","parameters":{"id":10418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10415,"mutability":"mutable","name":"target","nameLocation":"6608:6:58","nodeType":"VariableDeclaration","scope":10429,"src":"6600:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10414,"name":"address","nodeType":"ElementaryTypeName","src":"6600:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10417,"mutability":"mutable","name":"data","nameLocation":"6629:4:58","nodeType":"VariableDeclaration","scope":10429,"src":"6616:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10416,"name":"bytes","nodeType":"ElementaryTypeName","src":"6616:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6599:35:58"},"returnParameters":{"id":10421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10429,"src":"6653:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10419,"name":"bytes","nodeType":"ElementaryTypeName","src":"6653:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6652:14:58"},"scope":10496,"src":"6570:198:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10463,"nodeType":"Block","src":"7109:232:58","statements":[{"expression":{"arguments":[{"arguments":[{"id":10443,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10432,"src":"7138:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10442,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10219,"src":"7127:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":10444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7127:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":10445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7147:40:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""},"value":"Address: delegate call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""}],"id":10441,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7119:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7119:69:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10447,"nodeType":"ExpressionStatement","src":"7119:69:58"},{"assignments":[10449,10451],"declarations":[{"constant":false,"id":10449,"mutability":"mutable","name":"success","nameLocation":"7205:7:58","nodeType":"VariableDeclaration","scope":10463,"src":"7200:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10448,"name":"bool","nodeType":"ElementaryTypeName","src":"7200:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10451,"mutability":"mutable","name":"returndata","nameLocation":"7227:10:58","nodeType":"VariableDeclaration","scope":10463,"src":"7214:23:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10450,"name":"bytes","nodeType":"ElementaryTypeName","src":"7214:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10456,"initialValue":{"arguments":[{"id":10454,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10434,"src":"7261:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10452,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10432,"src":"7241:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"7241:19:58","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":10455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7241:25:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7199:67:58"},{"expression":{"arguments":[{"id":10458,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10449,"src":"7300:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10459,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10451,"src":"7309:10:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10460,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10436,"src":"7321:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10457,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10495,"src":"7283:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":10461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7283:51:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10440,"id":10462,"nodeType":"Return","src":"7276:58:58"}]},"documentation":{"id":10430,"nodeType":"StructuredDocumentation","src":"6774:175:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":10464,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6963:20:58","nodeType":"FunctionDefinition","parameters":{"id":10437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10432,"mutability":"mutable","name":"target","nameLocation":"7001:6:58","nodeType":"VariableDeclaration","scope":10464,"src":"6993:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10431,"name":"address","nodeType":"ElementaryTypeName","src":"6993:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10434,"mutability":"mutable","name":"data","nameLocation":"7030:4:58","nodeType":"VariableDeclaration","scope":10464,"src":"7017:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10433,"name":"bytes","nodeType":"ElementaryTypeName","src":"7017:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10436,"mutability":"mutable","name":"errorMessage","nameLocation":"7058:12:58","nodeType":"VariableDeclaration","scope":10464,"src":"7044:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10435,"name":"string","nodeType":"ElementaryTypeName","src":"7044:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6983:93:58"},"returnParameters":{"id":10440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10464,"src":"7095:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10438,"name":"bytes","nodeType":"ElementaryTypeName","src":"7095:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7094:14:58"},"scope":10496,"src":"6954:387:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10494,"nodeType":"Block","src":"7721:582:58","statements":[{"condition":{"id":10476,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10467,"src":"7735:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10492,"nodeType":"Block","src":"7792:505:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10480,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10469,"src":"7876:10:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7876:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7876:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10490,"nodeType":"Block","src":"8234:53:58","statements":[{"expression":{"arguments":[{"id":10487,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10471,"src":"8259:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10486,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"8252:6:58","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":10488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8252:20:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10489,"nodeType":"ExpressionStatement","src":"8252:20:58"}]},"id":10491,"nodeType":"IfStatement","src":"7872:415:58","trueBody":{"id":10485,"nodeType":"Block","src":"7899:329:58","statements":[{"AST":{"nodeType":"YulBlock","src":"8069:145:58","statements":[{"nodeType":"YulVariableDeclaration","src":"8091:40:58","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"8120:10:58"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8114:5:58"},"nodeType":"YulFunctionCall","src":"8114:17:58"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"8095:15:58","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8163:2:58","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"8167:10:58"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8159:3:58"},"nodeType":"YulFunctionCall","src":"8159:19:58"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"8180:15:58"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8152:6:58"},"nodeType":"YulFunctionCall","src":"8152:44:58"},"nodeType":"YulExpressionStatement","src":"8152:44:58"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":10469,"isOffset":false,"isSlot":false,"src":"8120:10:58","valueSize":1},{"declaration":10469,"isOffset":false,"isSlot":false,"src":"8167:10:58","valueSize":1}],"id":10484,"nodeType":"InlineAssembly","src":"8060:154:58"}]}}]},"id":10493,"nodeType":"IfStatement","src":"7731:566:58","trueBody":{"id":10479,"nodeType":"Block","src":"7744:42:58","statements":[{"expression":{"id":10477,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10469,"src":"7765:10:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10475,"id":10478,"nodeType":"Return","src":"7758:17:58"}]}}]},"documentation":{"id":10465,"nodeType":"StructuredDocumentation","src":"7347:209:58","text":" @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason using the provided one.\n _Available since v4.3._"},"id":10495,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7570:16:58","nodeType":"FunctionDefinition","parameters":{"id":10472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10467,"mutability":"mutable","name":"success","nameLocation":"7601:7:58","nodeType":"VariableDeclaration","scope":10495,"src":"7596:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10466,"name":"bool","nodeType":"ElementaryTypeName","src":"7596:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10469,"mutability":"mutable","name":"returndata","nameLocation":"7631:10:58","nodeType":"VariableDeclaration","scope":10495,"src":"7618:23:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10468,"name":"bytes","nodeType":"ElementaryTypeName","src":"7618:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10471,"mutability":"mutable","name":"errorMessage","nameLocation":"7665:12:58","nodeType":"VariableDeclaration","scope":10495,"src":"7651:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10470,"name":"string","nodeType":"ElementaryTypeName","src":"7651:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7586:97:58"},"returnParameters":{"id":10475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10495,"src":"7707:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10473,"name":"bytes","nodeType":"ElementaryTypeName","src":"7707:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7706:14:58"},"scope":10496,"src":"7561:742:58","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10497,"src":"194:8111:58"}],"src":"101:8205:58"},"id":58},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[10518]},"id":10519,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10498,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:59"},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":10499,"nodeType":"StructuredDocumentation","src":"111:496:59","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":10518,"linearizedBaseContracts":[10518],"name":"Context","nameLocation":"626:7:59","nodeType":"ContractDefinition","nodes":[{"body":{"id":10507,"nodeType":"Block","src":"702:34:59","statements":[{"expression":{"expression":{"id":10504,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"719:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"719:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10503,"id":10506,"nodeType":"Return","src":"712:17:59"}]},"id":10508,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:59","nodeType":"FunctionDefinition","parameters":{"id":10500,"nodeType":"ParameterList","parameters":[],"src":"659:2:59"},"returnParameters":{"id":10503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10508,"src":"693:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10501,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:59"},"scope":10518,"src":"640:96:59","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":10516,"nodeType":"Block","src":"809:32:59","statements":[{"expression":{"expression":{"id":10513,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"826:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"826:8:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":10512,"id":10515,"nodeType":"Return","src":"819:15:59"}]},"id":10517,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:59","nodeType":"FunctionDefinition","parameters":{"id":10509,"nodeType":"ParameterList","parameters":[],"src":"759:2:59"},"returnParameters":{"id":10512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10517,"src":"793:14:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10510,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:59"},"scope":10518,"src":"742:99:59","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":10519,"src":"608:235:59"}],"src":"86:758:59"},"id":59},"@openzeppelin/contracts/utils/StorageSlot.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[10578]},"id":10579,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10520,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:60"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":10521,"nodeType":"StructuredDocumentation","src":"130:1148:60","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```\n contract ERC1967 {\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```\n _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._"},"fullyImplemented":true,"id":10578,"linearizedBaseContracts":[10578],"name":"StorageSlot","nameLocation":"1287:11:60","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":10524,"members":[{"constant":false,"id":10523,"mutability":"mutable","name":"value","nameLocation":"1342:5:60","nodeType":"VariableDeclaration","scope":10524,"src":"1334:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10522,"name":"address","nodeType":"ElementaryTypeName","src":"1334:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1312:11:60","nodeType":"StructDefinition","scope":10578,"src":"1305:49:60","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":10527,"members":[{"constant":false,"id":10526,"mutability":"mutable","name":"value","nameLocation":"1394:5:60","nodeType":"VariableDeclaration","scope":10527,"src":"1389:10:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10525,"name":"bool","nodeType":"ElementaryTypeName","src":"1389:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1367:11:60","nodeType":"StructDefinition","scope":10578,"src":"1360:46:60","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":10530,"members":[{"constant":false,"id":10529,"mutability":"mutable","name":"value","nameLocation":"1449:5:60","nodeType":"VariableDeclaration","scope":10530,"src":"1441:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1441:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1419:11:60","nodeType":"StructDefinition","scope":10578,"src":"1412:49:60","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":10533,"members":[{"constant":false,"id":10532,"mutability":"mutable","name":"value","nameLocation":"1504:5:60","nodeType":"VariableDeclaration","scope":10533,"src":"1496:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10531,"name":"uint256","nodeType":"ElementaryTypeName","src":"1496:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1474:11:60","nodeType":"StructDefinition","scope":10578,"src":"1467:49:60","visibility":"public"},{"body":{"id":10543,"nodeType":"Block","src":"1698:106:60","statements":[{"AST":{"nodeType":"YulBlock","src":"1760:38:60","statements":[{"nodeType":"YulAssignment","src":"1774:14:60","value":{"name":"slot","nodeType":"YulIdentifier","src":"1784:4:60"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"1774:6:60"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":10540,"isOffset":false,"isSlot":true,"src":"1774:6:60","suffix":"slot","valueSize":1},{"declaration":10536,"isOffset":false,"isSlot":false,"src":"1784:4:60","valueSize":1}],"id":10542,"nodeType":"InlineAssembly","src":"1751:47:60"}]},"documentation":{"id":10534,"nodeType":"StructuredDocumentation","src":"1522:87:60","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":10544,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1623:14:60","nodeType":"FunctionDefinition","parameters":{"id":10537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10536,"mutability":"mutable","name":"slot","nameLocation":"1646:4:60","nodeType":"VariableDeclaration","scope":10544,"src":"1638:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10535,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1638:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1637:14:60"},"returnParameters":{"id":10541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10540,"mutability":"mutable","name":"r","nameLocation":"1695:1:60","nodeType":"VariableDeclaration","scope":10544,"src":"1675:21:60","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":10539,"nodeType":"UserDefinedTypeName","pathNode":{"id":10538,"name":"AddressSlot","nodeType":"IdentifierPath","referencedDeclaration":10524,"src":"1675:11:60"},"referencedDeclaration":10524,"src":"1675:11:60","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1674:23:60"},"scope":10578,"src":"1614:190:60","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10554,"nodeType":"Block","src":"1986:106:60","statements":[{"AST":{"nodeType":"YulBlock","src":"2048:38:60","statements":[{"nodeType":"YulAssignment","src":"2062:14:60","value":{"name":"slot","nodeType":"YulIdentifier","src":"2072:4:60"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2062:6:60"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":10551,"isOffset":false,"isSlot":true,"src":"2062:6:60","suffix":"slot","valueSize":1},{"declaration":10547,"isOffset":false,"isSlot":false,"src":"2072:4:60","valueSize":1}],"id":10553,"nodeType":"InlineAssembly","src":"2039:47:60"}]},"documentation":{"id":10545,"nodeType":"StructuredDocumentation","src":"1810:87:60","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":10555,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"1911:14:60","nodeType":"FunctionDefinition","parameters":{"id":10548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10547,"mutability":"mutable","name":"slot","nameLocation":"1934:4:60","nodeType":"VariableDeclaration","scope":10555,"src":"1926:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1926:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1925:14:60"},"returnParameters":{"id":10552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10551,"mutability":"mutable","name":"r","nameLocation":"1983:1:60","nodeType":"VariableDeclaration","scope":10555,"src":"1963:21:60","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10527_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":10550,"nodeType":"UserDefinedTypeName","pathNode":{"id":10549,"name":"BooleanSlot","nodeType":"IdentifierPath","referencedDeclaration":10527,"src":"1963:11:60"},"referencedDeclaration":10527,"src":"1963:11:60","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10527_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"1962:23:60"},"scope":10578,"src":"1902:190:60","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10565,"nodeType":"Block","src":"2274:106:60","statements":[{"AST":{"nodeType":"YulBlock","src":"2336:38:60","statements":[{"nodeType":"YulAssignment","src":"2350:14:60","value":{"name":"slot","nodeType":"YulIdentifier","src":"2360:4:60"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2350:6:60"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":10562,"isOffset":false,"isSlot":true,"src":"2350:6:60","suffix":"slot","valueSize":1},{"declaration":10558,"isOffset":false,"isSlot":false,"src":"2360:4:60","valueSize":1}],"id":10564,"nodeType":"InlineAssembly","src":"2327:47:60"}]},"documentation":{"id":10556,"nodeType":"StructuredDocumentation","src":"2098:87:60","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":10566,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2199:14:60","nodeType":"FunctionDefinition","parameters":{"id":10559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10558,"mutability":"mutable","name":"slot","nameLocation":"2222:4:60","nodeType":"VariableDeclaration","scope":10566,"src":"2214:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2214:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2213:14:60"},"returnParameters":{"id":10563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10562,"mutability":"mutable","name":"r","nameLocation":"2271:1:60","nodeType":"VariableDeclaration","scope":10566,"src":"2251:21:60","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$10530_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":10561,"nodeType":"UserDefinedTypeName","pathNode":{"id":10560,"name":"Bytes32Slot","nodeType":"IdentifierPath","referencedDeclaration":10530,"src":"2251:11:60"},"referencedDeclaration":10530,"src":"2251:11:60","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$10530_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2250:23:60"},"scope":10578,"src":"2190:190:60","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10576,"nodeType":"Block","src":"2562:106:60","statements":[{"AST":{"nodeType":"YulBlock","src":"2624:38:60","statements":[{"nodeType":"YulAssignment","src":"2638:14:60","value":{"name":"slot","nodeType":"YulIdentifier","src":"2648:4:60"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2638:6:60"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":10573,"isOffset":false,"isSlot":true,"src":"2638:6:60","suffix":"slot","valueSize":1},{"declaration":10569,"isOffset":false,"isSlot":false,"src":"2648:4:60","valueSize":1}],"id":10575,"nodeType":"InlineAssembly","src":"2615:47:60"}]},"documentation":{"id":10567,"nodeType":"StructuredDocumentation","src":"2386:87:60","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":10577,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2487:14:60","nodeType":"FunctionDefinition","parameters":{"id":10570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10569,"mutability":"mutable","name":"slot","nameLocation":"2510:4:60","nodeType":"VariableDeclaration","scope":10577,"src":"2502:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10568,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2502:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2501:14:60"},"returnParameters":{"id":10574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10573,"mutability":"mutable","name":"r","nameLocation":"2559:1:60","nodeType":"VariableDeclaration","scope":10577,"src":"2539:21:60","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$10533_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":10572,"nodeType":"UserDefinedTypeName","pathNode":{"id":10571,"name":"Uint256Slot","nodeType":"IdentifierPath","referencedDeclaration":10533,"src":"2539:11:60"},"referencedDeclaration":10533,"src":"2539:11:60","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$10533_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2538:23:60"},"scope":10578,"src":"2478:190:60","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10579,"src":"1279:1391:60"}],"src":"105:2566:60"},"id":60},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Strings":[10804]},"id":10805,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10580,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:61"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":10581,"nodeType":"StructuredDocumentation","src":"126:34:61","text":" @dev String operations."},"fullyImplemented":true,"id":10804,"linearizedBaseContracts":[10804],"name":"Strings","nameLocation":"169:7:61","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":10584,"mutability":"constant","name":"_HEX_SYMBOLS","nameLocation":"208:12:61","nodeType":"VariableDeclaration","scope":10804,"src":"183:58:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":10582,"name":"bytes16","nodeType":"ElementaryTypeName","src":"183:7:61","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":10583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"223:18:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":10587,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"270:15:61","nodeType":"VariableDeclaration","scope":10804,"src":"247:43:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10585,"name":"uint8","nodeType":"ElementaryTypeName","src":"247:5:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":10586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":10665,"nodeType":"Block","src":"463:632:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10595,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"665:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"674:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"665:10:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10601,"nodeType":"IfStatement","src":"661:51:61","trueBody":{"id":10600,"nodeType":"Block","src":"677:35:61","statements":[{"expression":{"hexValue":"30","id":10598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"698:3:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":10594,"id":10599,"nodeType":"Return","src":"691:10:61"}]}},{"assignments":[10603],"declarations":[{"constant":false,"id":10603,"mutability":"mutable","name":"temp","nameLocation":"729:4:61","nodeType":"VariableDeclaration","scope":10665,"src":"721:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10602,"name":"uint256","nodeType":"ElementaryTypeName","src":"721:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10605,"initialValue":{"id":10604,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"736:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"721:20:61"},{"assignments":[10607],"declarations":[{"constant":false,"id":10607,"mutability":"mutable","name":"digits","nameLocation":"759:6:61","nodeType":"VariableDeclaration","scope":10665,"src":"751:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10606,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10608,"nodeType":"VariableDeclarationStatement","src":"751:14:61"},{"body":{"id":10619,"nodeType":"Block","src":"793:57:61","statements":[{"expression":{"id":10613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"807:8:61","subExpression":{"id":10612,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"807:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10614,"nodeType":"ExpressionStatement","src":"807:8:61"},{"expression":{"id":10617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10615,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10603,"src":"829:4:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":10616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:2:61","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"829:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10618,"nodeType":"ExpressionStatement","src":"829:10:61"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10609,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10603,"src":"782:4:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"790:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"782:9:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10620,"nodeType":"WhileStatement","src":"775:75:61"},{"assignments":[10622],"declarations":[{"constant":false,"id":10622,"mutability":"mutable","name":"buffer","nameLocation":"872:6:61","nodeType":"VariableDeclaration","scope":10665,"src":"859:19:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10621,"name":"bytes","nodeType":"ElementaryTypeName","src":"859:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10627,"initialValue":{"arguments":[{"id":10625,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"891:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"881:9:61","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":10623,"name":"bytes","nodeType":"ElementaryTypeName","src":"885:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":10626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"881:17:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"859:39:61"},{"body":{"id":10658,"nodeType":"Block","src":"927:131:61","statements":[{"expression":{"id":10633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10631,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"941:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":10632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"941:11:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10634,"nodeType":"ExpressionStatement","src":"941:11:61"},{"expression":{"id":10652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10635,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10622,"src":"966:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10637,"indexExpression":{"id":10636,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"973:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"966:14:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":10642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"996:2:61","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10645,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"1009:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":10646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1017:2:61","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1009:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1001:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10643,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:61","typeDescriptions":{}}},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1001:19:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"996:24:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"990:5:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":10640,"name":"uint8","nodeType":"ElementaryTypeName","src":"990:5:61","typeDescriptions":{}}},"id":10650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"990:31:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":10639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"983:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":10638,"name":"bytes1","nodeType":"ElementaryTypeName","src":"983:6:61","typeDescriptions":{}}},"id":10651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"983:39:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"966:56:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":10653,"nodeType":"ExpressionStatement","src":"966:56:61"},{"expression":{"id":10656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10654,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"1036:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":10655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:2:61","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1036:11:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10657,"nodeType":"ExpressionStatement","src":"1036:11:61"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10628,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"915:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"924:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"915:10:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10659,"nodeType":"WhileStatement","src":"908:150:61"},{"expression":{"arguments":[{"id":10662,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10622,"src":"1081:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1074:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":10660,"name":"string","nodeType":"ElementaryTypeName","src":"1074:6:61","typeDescriptions":{}}},"id":10663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1074:14:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10594,"id":10664,"nodeType":"Return","src":"1067:21:61"}]},"documentation":{"id":10588,"nodeType":"StructuredDocumentation","src":"297:90:61","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":10666,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"401:8:61","nodeType":"FunctionDefinition","parameters":{"id":10591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10590,"mutability":"mutable","name":"value","nameLocation":"418:5:61","nodeType":"VariableDeclaration","scope":10666,"src":"410:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10589,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:15:61"},"returnParameters":{"id":10594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10666,"src":"448:13:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10592,"name":"string","nodeType":"ElementaryTypeName","src":"448:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"447:15:61"},"scope":10804,"src":"392:703:61","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10706,"nodeType":"Block","src":"1274:255:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10674,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10669,"src":"1288:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1288:10:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10680,"nodeType":"IfStatement","src":"1284:54:61","trueBody":{"id":10679,"nodeType":"Block","src":"1300:38:61","statements":[{"expression":{"hexValue":"30783030","id":10677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1321:6:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"},"functionReturnParameters":10673,"id":10678,"nodeType":"Return","src":"1314:13:61"}]}},{"assignments":[10682],"declarations":[{"constant":false,"id":10682,"mutability":"mutable","name":"temp","nameLocation":"1355:4:61","nodeType":"VariableDeclaration","scope":10706,"src":"1347:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10681,"name":"uint256","nodeType":"ElementaryTypeName","src":"1347:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10684,"initialValue":{"id":10683,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10669,"src":"1362:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1347:20:61"},{"assignments":[10686],"declarations":[{"constant":false,"id":10686,"mutability":"mutable","name":"length","nameLocation":"1385:6:61","nodeType":"VariableDeclaration","scope":10706,"src":"1377:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10685,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10688,"initialValue":{"hexValue":"30","id":10687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1394:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1377:18:61"},{"body":{"id":10699,"nodeType":"Block","src":"1423:57:61","statements":[{"expression":{"id":10693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1437:8:61","subExpression":{"id":10692,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10686,"src":"1437:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10694,"nodeType":"ExpressionStatement","src":"1437:8:61"},{"expression":{"id":10697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10695,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10682,"src":"1459:4:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":10696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1468:1:61","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1459:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10698,"nodeType":"ExpressionStatement","src":"1459:10:61"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10689,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10682,"src":"1412:4:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1420:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1412:9:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10700,"nodeType":"WhileStatement","src":"1405:75:61"},{"expression":{"arguments":[{"id":10702,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10669,"src":"1508:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10703,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10686,"src":"1515:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10701,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[10707,10783,10803],"referencedDeclaration":10783,"src":"1496:11:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":10704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1496:26:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10673,"id":10705,"nodeType":"Return","src":"1489:33:61"}]},"documentation":{"id":10667,"nodeType":"StructuredDocumentation","src":"1101:94:61","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":10707,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1209:11:61","nodeType":"FunctionDefinition","parameters":{"id":10670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10669,"mutability":"mutable","name":"value","nameLocation":"1229:5:61","nodeType":"VariableDeclaration","scope":10707,"src":"1221:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10668,"name":"uint256","nodeType":"ElementaryTypeName","src":"1221:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:15:61"},"returnParameters":{"id":10673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10707,"src":"1259:13:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10671,"name":"string","nodeType":"ElementaryTypeName","src":"1259:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1258:15:61"},"scope":10804,"src":"1200:329:61","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10782,"nodeType":"Block","src":"1742:351:61","statements":[{"assignments":[10718],"declarations":[{"constant":false,"id":10718,"mutability":"mutable","name":"buffer","nameLocation":"1765:6:61","nodeType":"VariableDeclaration","scope":10782,"src":"1752:19:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10717,"name":"bytes","nodeType":"ElementaryTypeName","src":"1752:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10727,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":10721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1784:1:61","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10722,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10712,"src":"1788:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":10724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1797:1:61","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1784:14:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1774:9:61","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":10719,"name":"bytes","nodeType":"ElementaryTypeName","src":"1778:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":10726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1774:25:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1752:47:61"},{"expression":{"id":10732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10728,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10718,"src":"1809:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10730,"indexExpression":{"hexValue":"30","id":10729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1816:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1809:9:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":10731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1821:3:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1809:15:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":10733,"nodeType":"ExpressionStatement","src":"1809:15:61"},{"expression":{"id":10738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10734,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10718,"src":"1834:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10736,"indexExpression":{"hexValue":"31","id":10735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1841:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1834:9:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":10737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1846:3:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1834:15:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":10739,"nodeType":"ExpressionStatement","src":"1834:15:61"},{"body":{"id":10768,"nodeType":"Block","src":"1904:87:61","statements":[{"expression":{"id":10762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10754,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10718,"src":"1918:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10756,"indexExpression":{"id":10755,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10741,"src":"1925:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1918:9:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":10757,"name":"_HEX_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"1930:12:61","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":10761,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10758,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10710,"src":"1943:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":10759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1951:3:61","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1943:11:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1930:25:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1918:37:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":10763,"nodeType":"ExpressionStatement","src":"1918:37:61"},{"expression":{"id":10766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10764,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10710,"src":"1969:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":10765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:1:61","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1969:11:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10767,"nodeType":"ExpressionStatement","src":"1969:11:61"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10748,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10741,"src":"1892:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":10749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1896:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1892:5:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10769,"initializationExpression":{"assignments":[10741],"declarations":[{"constant":false,"id":10741,"mutability":"mutable","name":"i","nameLocation":"1872:1:61","nodeType":"VariableDeclaration","scope":10769,"src":"1864:9:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10740,"name":"uint256","nodeType":"ElementaryTypeName","src":"1864:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10747,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":10742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1876:1:61","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10743,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10712,"src":"1880:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1876:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":10745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1876:14:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1864:26:61"},"loopExpression":{"expression":{"id":10752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1899:3:61","subExpression":{"id":10751,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10741,"src":"1901:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10753,"nodeType":"ExpressionStatement","src":"1899:3:61"},"nodeType":"ForStatement","src":"1859:132:61"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10771,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10710,"src":"2008:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2017:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2008:10:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":10774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2020:34:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":10770,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2000:7:61","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2000:55:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10776,"nodeType":"ExpressionStatement","src":"2000:55:61"},{"expression":{"arguments":[{"id":10779,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10718,"src":"2079:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2072:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":10777,"name":"string","nodeType":"ElementaryTypeName","src":"2072:6:61","typeDescriptions":{}}},"id":10780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:14:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10716,"id":10781,"nodeType":"Return","src":"2065:21:61"}]},"documentation":{"id":10708,"nodeType":"StructuredDocumentation","src":"1535:112:61","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":10783,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1661:11:61","nodeType":"FunctionDefinition","parameters":{"id":10713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10710,"mutability":"mutable","name":"value","nameLocation":"1681:5:61","nodeType":"VariableDeclaration","scope":10783,"src":"1673:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10709,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10712,"mutability":"mutable","name":"length","nameLocation":"1696:6:61","nodeType":"VariableDeclaration","scope":10783,"src":"1688:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10711,"name":"uint256","nodeType":"ElementaryTypeName","src":"1688:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1672:31:61"},"returnParameters":{"id":10716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10783,"src":"1727:13:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10714,"name":"string","nodeType":"ElementaryTypeName","src":"1727:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1726:15:61"},"scope":10804,"src":"1652:441:61","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10802,"nodeType":"Block","src":"2318:76:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":10796,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10786,"src":"2363:4:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2355:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10794,"name":"uint160","nodeType":"ElementaryTypeName","src":"2355:7:61","typeDescriptions":{}}},"id":10797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2355:13:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2347:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10792,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:61","typeDescriptions":{}}},"id":10798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2347:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10799,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10587,"src":"2371:15:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":10791,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[10707,10783,10803],"referencedDeclaration":10783,"src":"2335:11:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":10800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2335:52:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10790,"id":10801,"nodeType":"Return","src":"2328:59:61"}]},"documentation":{"id":10784,"nodeType":"StructuredDocumentation","src":"2099:141:61","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":10803,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2254:11:61","nodeType":"FunctionDefinition","parameters":{"id":10787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10786,"mutability":"mutable","name":"addr","nameLocation":"2274:4:61","nodeType":"VariableDeclaration","scope":10803,"src":"2266:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10785,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2265:14:61"},"returnParameters":{"id":10790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10803,"src":"2303:13:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10788,"name":"string","nodeType":"ElementaryTypeName","src":"2303:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2302:15:61"},"scope":10804,"src":"2245:149:61","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10805,"src":"161:2235:61"}],"src":"101:2296:61"},"id":61},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[10828],"IERC165":[10840]},"id":10829,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10806,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:62"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":10807,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10829,"sourceUnit":10841,"src":"124:23:62","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":10809,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":10840,"src":"754:7:62"},"id":10810,"nodeType":"InheritanceSpecifier","src":"754:7:62"}],"contractDependencies":[10840],"contractKind":"contract","documentation":{"id":10808,"nodeType":"StructuredDocumentation","src":"149:576:62","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"id":10828,"linearizedBaseContracts":[10828,10840],"name":"ERC165","nameLocation":"744:6:62","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[10839],"body":{"id":10826,"nodeType":"Block","src":"920:64:62","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":10824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10819,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10813,"src":"937:11:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":10821,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10840,"src":"957:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$10840_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$10840_$","typeString":"type(contract IERC165)"}],"id":10820,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"952:4:62","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"952:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$10840","typeString":"type(contract IERC165)"}},"id":10823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10818,"id":10825,"nodeType":"Return","src":"930:47:62"}]},"documentation":{"id":10811,"nodeType":"StructuredDocumentation","src":"768:56:62","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":10827,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:62","nodeType":"FunctionDefinition","overrides":{"id":10815,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:62"},"parameters":{"id":10814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10813,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:62","nodeType":"VariableDeclaration","scope":10827,"src":"856:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10812,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:62"},"returnParameters":{"id":10818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10827,"src":"914:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10816,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:62"},"scope":10828,"src":"829:155:62","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":10829,"src":"726:260:62"}],"src":"99:888:62"},"id":62},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[10840]},"id":10841,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10830,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:63"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":10831,"nodeType":"StructuredDocumentation","src":"125:279:63","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":10840,"linearizedBaseContracts":[10840],"name":"IERC165","nameLocation":"415:7:63","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10832,"nodeType":"StructuredDocumentation","src":"429:340:63","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":10839,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:63","nodeType":"FunctionDefinition","parameters":{"id":10835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10834,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:63","nodeType":"VariableDeclaration","scope":10839,"src":"801:18:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10833,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:63","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:63"},"returnParameters":{"id":10838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10837,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10839,"src":"844:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10836,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:63"},"scope":10840,"src":"774:76:63","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":10841,"src":"405:447:63"}],"src":"100:753:63"},"id":63},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","exportedSymbols":{"EnumerableSet":[11439]},"id":11440,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10842,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:64"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":10843,"nodeType":"StructuredDocumentation","src":"140:1087:64","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet.\n ===="},"fullyImplemented":true,"id":11439,"linearizedBaseContracts":[11439],"name":"EnumerableSet","nameLocation":"1236:13:64","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSet.Set","id":10851,"members":[{"constant":false,"id":10846,"mutability":"mutable","name":"_values","nameLocation":"1760:7:64","nodeType":"VariableDeclaration","scope":10851,"src":"1750:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":10844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1750:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10845,"nodeType":"ArrayTypeName","src":"1750:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":10850,"mutability":"mutable","name":"_indexes","nameLocation":"1928:8:64","nodeType":"VariableDeclaration","scope":10851,"src":"1900:36:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":10849,"keyType":{"id":10847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1908:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1900:27:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":10848,"name":"uint256","nodeType":"ElementaryTypeName","src":"1919:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1703:3:64","nodeType":"StructDefinition","scope":11439,"src":"1696:247:64","visibility":"public"},{"body":{"id":10892,"nodeType":"Block","src":"2182:335:64","statements":[{"condition":{"id":10866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2196:22:64","subExpression":{"arguments":[{"id":10863,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10855,"src":"2207:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":10864,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"2212:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10862,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10996,"src":"2197:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":10865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2197:21:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10890,"nodeType":"Block","src":"2474:37:64","statements":[{"expression":{"hexValue":"66616c7365","id":10888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2495:5:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":10861,"id":10889,"nodeType":"Return","src":"2488:12:64"}]},"id":10891,"nodeType":"IfStatement","src":"2192:319:64","trueBody":{"id":10887,"nodeType":"Block","src":"2220:248:64","statements":[{"expression":{"arguments":[{"id":10872,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"2251:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":10867,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10855,"src":"2234:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"2234:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2234:16:64","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":10873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2234:23:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10874,"nodeType":"ExpressionStatement","src":"2234:23:64"},{"expression":{"id":10883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10875,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10855,"src":"2392:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10850,"src":"2392:12:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10879,"indexExpression":{"id":10877,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"2405:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2392:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":10880,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10855,"src":"2414:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"2414:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2414:18:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2392:40:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10884,"nodeType":"ExpressionStatement","src":"2392:40:64"},{"expression":{"hexValue":"74727565","id":10885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2453:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":10861,"id":10886,"nodeType":"Return","src":"2446:11:64"}]}}]},"documentation":{"id":10852,"nodeType":"StructuredDocumentation","src":"1949:159:64","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":10893,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2122:4:64","nodeType":"FunctionDefinition","parameters":{"id":10858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10855,"mutability":"mutable","name":"set","nameLocation":"2139:3:64","nodeType":"VariableDeclaration","scope":10893,"src":"2127:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10854,"nodeType":"UserDefinedTypeName","pathNode":{"id":10853,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"2127:3:64"},"referencedDeclaration":10851,"src":"2127:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10857,"mutability":"mutable","name":"value","nameLocation":"2152:5:64","nodeType":"VariableDeclaration","scope":10893,"src":"2144:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2144:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2126:32:64"},"returnParameters":{"id":10861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10860,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10893,"src":"2176:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10859,"name":"bool","nodeType":"ElementaryTypeName","src":"2176:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2175:6:64"},"scope":11439,"src":"2113:404:64","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10976,"nodeType":"Block","src":"2757:1316:64","statements":[{"assignments":[10905],"declarations":[{"constant":false,"id":10905,"mutability":"mutable","name":"valueIndex","nameLocation":"2875:10:64","nodeType":"VariableDeclaration","scope":10976,"src":"2867:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10904,"name":"uint256","nodeType":"ElementaryTypeName","src":"2867:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10910,"initialValue":{"baseExpression":{"expression":{"id":10906,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"2888:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10850,"src":"2888:12:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10909,"indexExpression":{"id":10908,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10899,"src":"2901:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2888:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2867:40:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10911,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10905,"src":"2922:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2936:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2922:15:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10974,"nodeType":"Block","src":"4030:37:64","statements":[{"expression":{"hexValue":"66616c7365","id":10972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4051:5:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":10903,"id":10973,"nodeType":"Return","src":"4044:12:64"}]},"id":10975,"nodeType":"IfStatement","src":"2918:1149:64","trueBody":{"id":10971,"nodeType":"Block","src":"2939:1085:64","statements":[{"assignments":[10915],"declarations":[{"constant":false,"id":10915,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"3299:13:64","nodeType":"VariableDeclaration","scope":10971,"src":"3291:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10914,"name":"uint256","nodeType":"ElementaryTypeName","src":"3291:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10919,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10916,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10905,"src":"3315:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3328:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3315:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3291:38:64"},{"assignments":[10921],"declarations":[{"constant":false,"id":10921,"mutability":"mutable","name":"lastIndex","nameLocation":"3351:9:64","nodeType":"VariableDeclaration","scope":10971,"src":"3343:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10920,"name":"uint256","nodeType":"ElementaryTypeName","src":"3343:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10927,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10922,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3363:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"3363:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3363:18:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3384:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3363:22:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3343:42:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10928,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10921,"src":"3404:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10929,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10915,"src":"3417:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3404:26:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10955,"nodeType":"IfStatement","src":"3400:398:64","trueBody":{"id":10954,"nodeType":"Block","src":"3432:366:64","statements":[{"assignments":[10932],"declarations":[{"constant":false,"id":10932,"mutability":"mutable","name":"lastValue","nameLocation":"3458:9:64","nodeType":"VariableDeclaration","scope":10954,"src":"3450:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3450:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10937,"initialValue":{"baseExpression":{"expression":{"id":10933,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3470:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"3470:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10936,"indexExpression":{"id":10935,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10921,"src":"3482:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3470:22:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3450:42:64"},{"expression":{"id":10944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10938,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3592:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"3592:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10942,"indexExpression":{"id":10940,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10915,"src":"3604:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3592:26:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10943,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10932,"src":"3621:9:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3592:38:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10945,"nodeType":"ExpressionStatement","src":"3592:38:64"},{"expression":{"id":10952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10946,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3704:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10850,"src":"3704:12:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10950,"indexExpression":{"id":10948,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10932,"src":"3717:9:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3704:23:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10951,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10905,"src":"3730:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3704:36:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10953,"nodeType":"ExpressionStatement","src":"3704:36:64"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":10956,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3876:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"3876:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"3876:15:64","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":10961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3876:17:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10962,"nodeType":"ExpressionStatement","src":"3876:17:64"},{"expression":{"id":10967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3961:26:64","subExpression":{"baseExpression":{"expression":{"id":10963,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3968:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10850,"src":"3968:12:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10966,"indexExpression":{"id":10965,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10899,"src":"3981:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3968:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10968,"nodeType":"ExpressionStatement","src":"3961:26:64"},{"expression":{"hexValue":"74727565","id":10969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4009:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":10903,"id":10970,"nodeType":"Return","src":"4002:11:64"}]}}]},"documentation":{"id":10894,"nodeType":"StructuredDocumentation","src":"2523:157:64","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":10977,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2694:7:64","nodeType":"FunctionDefinition","parameters":{"id":10900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10897,"mutability":"mutable","name":"set","nameLocation":"2714:3:64","nodeType":"VariableDeclaration","scope":10977,"src":"2702:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10896,"nodeType":"UserDefinedTypeName","pathNode":{"id":10895,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"2702:3:64"},"referencedDeclaration":10851,"src":"2702:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10899,"mutability":"mutable","name":"value","nameLocation":"2727:5:64","nodeType":"VariableDeclaration","scope":10977,"src":"2719:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10898,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2719:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2701:32:64"},"returnParameters":{"id":10903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10902,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10977,"src":"2751:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10901,"name":"bool","nodeType":"ElementaryTypeName","src":"2751:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2750:6:64"},"scope":11439,"src":"2685:1388:64","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10995,"nodeType":"Block","src":"4233:48:64","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":10988,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"4250:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10850,"src":"4250:12:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10991,"indexExpression":{"id":10990,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10983,"src":"4263:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4250:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4273:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4250:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10987,"id":10994,"nodeType":"Return","src":"4243:31:64"}]},"documentation":{"id":10978,"nodeType":"StructuredDocumentation","src":"4079:70:64","text":" @dev Returns true if the value is in the set. O(1)."},"id":10996,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4163:9:64","nodeType":"FunctionDefinition","parameters":{"id":10984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10981,"mutability":"mutable","name":"set","nameLocation":"4185:3:64","nodeType":"VariableDeclaration","scope":10996,"src":"4173:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10980,"nodeType":"UserDefinedTypeName","pathNode":{"id":10979,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"4173:3:64"},"referencedDeclaration":10851,"src":"4173:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10983,"mutability":"mutable","name":"value","nameLocation":"4198:5:64","nodeType":"VariableDeclaration","scope":10996,"src":"4190:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10982,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4190:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4172:32:64"},"returnParameters":{"id":10987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10986,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10996,"src":"4227:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10985,"name":"bool","nodeType":"ElementaryTypeName","src":"4227:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4226:6:64"},"scope":11439,"src":"4154:127:64","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":11009,"nodeType":"Block","src":"4427:42:64","statements":[{"expression":{"expression":{"expression":{"id":11005,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11000,"src":"4444:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":11006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"4444:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":11007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4444:18:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11004,"id":11008,"nodeType":"Return","src":"4437:25:64"}]},"documentation":{"id":10997,"nodeType":"StructuredDocumentation","src":"4287:70:64","text":" @dev Returns the number of values on the set. O(1)."},"id":11010,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4371:7:64","nodeType":"FunctionDefinition","parameters":{"id":11001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11000,"mutability":"mutable","name":"set","nameLocation":"4391:3:64","nodeType":"VariableDeclaration","scope":11010,"src":"4379:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10999,"nodeType":"UserDefinedTypeName","pathNode":{"id":10998,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"4379:3:64"},"referencedDeclaration":10851,"src":"4379:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4378:17:64"},"returnParameters":{"id":11004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11010,"src":"4418:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11002,"name":"uint256","nodeType":"ElementaryTypeName","src":"4418:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4417:9:64"},"scope":11439,"src":"4362:107:64","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":11026,"nodeType":"Block","src":"4887:42:64","statements":[{"expression":{"baseExpression":{"expression":{"id":11021,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"4904:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":11022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"4904:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":11024,"indexExpression":{"id":11023,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11016,"src":"4916:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4904:18:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11020,"id":11025,"nodeType":"Return","src":"4897:25:64"}]},"documentation":{"id":11011,"nodeType":"StructuredDocumentation","src":"4475:331:64","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":11027,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4820:3:64","nodeType":"FunctionDefinition","parameters":{"id":11017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11014,"mutability":"mutable","name":"set","nameLocation":"4836:3:64","nodeType":"VariableDeclaration","scope":11027,"src":"4824:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":11013,"nodeType":"UserDefinedTypeName","pathNode":{"id":11012,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"4824:3:64"},"referencedDeclaration":10851,"src":"4824:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":11016,"mutability":"mutable","name":"index","nameLocation":"4849:5:64","nodeType":"VariableDeclaration","scope":11027,"src":"4841:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11015,"name":"uint256","nodeType":"ElementaryTypeName","src":"4841:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4823:32:64"},"returnParameters":{"id":11020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11027,"src":"4878:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4878:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4877:9:64"},"scope":11439,"src":"4811:118:64","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":11040,"nodeType":"Block","src":"5543:35:64","statements":[{"expression":{"expression":{"id":11037,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11031,"src":"5560:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":11038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"5560:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":11036,"id":11039,"nodeType":"Return","src":"5553:18:64"}]},"documentation":{"id":11028,"nodeType":"StructuredDocumentation","src":"4935:529:64","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":11041,"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5478:7:64","nodeType":"FunctionDefinition","parameters":{"id":11032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11031,"mutability":"mutable","name":"set","nameLocation":"5498:3:64","nodeType":"VariableDeclaration","scope":11041,"src":"5486:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":11030,"nodeType":"UserDefinedTypeName","pathNode":{"id":11029,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"5486:3:64"},"referencedDeclaration":10851,"src":"5486:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5485:17:64"},"returnParameters":{"id":11036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11041,"src":"5525:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5525:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11034,"nodeType":"ArrayTypeName","src":"5525:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5524:18:64"},"scope":11439,"src":"5469:109:64","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSet.Bytes32Set","id":11045,"members":[{"constant":false,"id":11044,"mutability":"mutable","name":"_inner","nameLocation":"5635:6:64","nodeType":"VariableDeclaration","scope":11045,"src":"5631:10:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":11043,"nodeType":"UserDefinedTypeName","pathNode":{"id":11042,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"5631:3:64"},"referencedDeclaration":10851,"src":"5631:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5610:10:64","nodeType":"StructDefinition","scope":11439,"src":"5603:45:64","visibility":"public"},{"body":{"id":11062,"nodeType":"Block","src":"5894:47:64","statements":[{"expression":{"arguments":[{"expression":{"id":11057,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11049,"src":"5916:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"5916:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11059,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11051,"src":"5928:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11056,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10893,"src":"5911:4:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5911:23:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11055,"id":11061,"nodeType":"Return","src":"5904:30:64"}]},"documentation":{"id":11046,"nodeType":"StructuredDocumentation","src":"5654:159:64","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":11063,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5827:3:64","nodeType":"FunctionDefinition","parameters":{"id":11052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11049,"mutability":"mutable","name":"set","nameLocation":"5850:3:64","nodeType":"VariableDeclaration","scope":11063,"src":"5831:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11048,"nodeType":"UserDefinedTypeName","pathNode":{"id":11047,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"5831:10:64"},"referencedDeclaration":11045,"src":"5831:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":11051,"mutability":"mutable","name":"value","nameLocation":"5863:5:64","nodeType":"VariableDeclaration","scope":11063,"src":"5855:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5855:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5830:39:64"},"returnParameters":{"id":11055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11054,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11063,"src":"5888:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11053,"name":"bool","nodeType":"ElementaryTypeName","src":"5888:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5887:6:64"},"scope":11439,"src":"5818:123:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11080,"nodeType":"Block","src":"6188:50:64","statements":[{"expression":{"arguments":[{"expression":{"id":11075,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11067,"src":"6213:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"6213:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11077,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11069,"src":"6225:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11074,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"6205:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6205:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11073,"id":11079,"nodeType":"Return","src":"6198:33:64"}]},"documentation":{"id":11064,"nodeType":"StructuredDocumentation","src":"5947:157:64","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":11081,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6118:6:64","nodeType":"FunctionDefinition","parameters":{"id":11070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11067,"mutability":"mutable","name":"set","nameLocation":"6144:3:64","nodeType":"VariableDeclaration","scope":11081,"src":"6125:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11066,"nodeType":"UserDefinedTypeName","pathNode":{"id":11065,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"6125:10:64"},"referencedDeclaration":11045,"src":"6125:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":11069,"mutability":"mutable","name":"value","nameLocation":"6157:5:64","nodeType":"VariableDeclaration","scope":11081,"src":"6149:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6149:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6124:39:64"},"returnParameters":{"id":11073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11081,"src":"6182:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11071,"name":"bool","nodeType":"ElementaryTypeName","src":"6182:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6181:6:64"},"scope":11439,"src":"6109:129:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11098,"nodeType":"Block","src":"6405:52:64","statements":[{"expression":{"arguments":[{"expression":{"id":11093,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11085,"src":"6432:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"6432:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11095,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11087,"src":"6444:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11092,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10996,"src":"6422:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":11096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6422:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11091,"id":11097,"nodeType":"Return","src":"6415:35:64"}]},"documentation":{"id":11082,"nodeType":"StructuredDocumentation","src":"6244:70:64","text":" @dev Returns true if the value is in the set. O(1)."},"id":11099,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6328:8:64","nodeType":"FunctionDefinition","parameters":{"id":11088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11085,"mutability":"mutable","name":"set","nameLocation":"6356:3:64","nodeType":"VariableDeclaration","scope":11099,"src":"6337:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11084,"nodeType":"UserDefinedTypeName","pathNode":{"id":11083,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"6337:10:64"},"referencedDeclaration":11045,"src":"6337:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":11087,"mutability":"mutable","name":"value","nameLocation":"6369:5:64","nodeType":"VariableDeclaration","scope":11099,"src":"6361:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6361:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6336:39:64"},"returnParameters":{"id":11091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11099,"src":"6399:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11089,"name":"bool","nodeType":"ElementaryTypeName","src":"6399:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6398:6:64"},"scope":11439,"src":"6319:138:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11113,"nodeType":"Block","src":"6610:43:64","statements":[{"expression":{"arguments":[{"expression":{"id":11109,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11103,"src":"6635:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"6635:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11108,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"6627:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":11111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6627:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11107,"id":11112,"nodeType":"Return","src":"6620:26:64"}]},"documentation":{"id":11100,"nodeType":"StructuredDocumentation","src":"6463:70:64","text":" @dev Returns the number of values in the set. O(1)."},"id":11114,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6547:6:64","nodeType":"FunctionDefinition","parameters":{"id":11104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11103,"mutability":"mutable","name":"set","nameLocation":"6573:3:64","nodeType":"VariableDeclaration","scope":11114,"src":"6554:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11102,"nodeType":"UserDefinedTypeName","pathNode":{"id":11101,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"6554:10:64"},"referencedDeclaration":11045,"src":"6554:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"6553:24:64"},"returnParameters":{"id":11107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11114,"src":"6601:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11105,"name":"uint256","nodeType":"ElementaryTypeName","src":"6601:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6600:9:64"},"scope":11439,"src":"6538:115:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11131,"nodeType":"Block","src":"7078:46:64","statements":[{"expression":{"arguments":[{"expression":{"id":11126,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11118,"src":"7099:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"7099:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11128,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11120,"src":"7111:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11125,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11027,"src":"7095:3:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":11129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7095:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11124,"id":11130,"nodeType":"Return","src":"7088:29:64"}]},"documentation":{"id":11115,"nodeType":"StructuredDocumentation","src":"6659:331:64","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":11132,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7004:2:64","nodeType":"FunctionDefinition","parameters":{"id":11121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11118,"mutability":"mutable","name":"set","nameLocation":"7026:3:64","nodeType":"VariableDeclaration","scope":11132,"src":"7007:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11117,"nodeType":"UserDefinedTypeName","pathNode":{"id":11116,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"7007:10:64"},"referencedDeclaration":11045,"src":"7007:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":11120,"mutability":"mutable","name":"index","nameLocation":"7039:5:64","nodeType":"VariableDeclaration","scope":11132,"src":"7031:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11119,"name":"uint256","nodeType":"ElementaryTypeName","src":"7031:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7006:39:64"},"returnParameters":{"id":11124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11132,"src":"7069:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11122,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7069:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7068:9:64"},"scope":11439,"src":"6995:129:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11147,"nodeType":"Block","src":"7745:43:64","statements":[{"expression":{"arguments":[{"expression":{"id":11143,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11136,"src":"7770:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"7770:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11142,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11041,"src":"7762:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":11145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7762:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":11141,"id":11146,"nodeType":"Return","src":"7755:26:64"}]},"documentation":{"id":11133,"nodeType":"StructuredDocumentation","src":"7130:529:64","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":11148,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7673:6:64","nodeType":"FunctionDefinition","parameters":{"id":11137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11136,"mutability":"mutable","name":"set","nameLocation":"7699:3:64","nodeType":"VariableDeclaration","scope":11148,"src":"7680:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11135,"nodeType":"UserDefinedTypeName","pathNode":{"id":11134,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"7680:10:64"},"referencedDeclaration":11045,"src":"7680:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"7679:24:64"},"returnParameters":{"id":11141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11148,"src":"7727:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11138,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7727:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11139,"nodeType":"ArrayTypeName","src":"7727:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7726:18:64"},"scope":11439,"src":"7664:124:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.AddressSet","id":11152,"members":[{"constant":false,"id":11151,"mutability":"mutable","name":"_inner","nameLocation":"7845:6:64","nodeType":"VariableDeclaration","scope":11152,"src":"7841:10:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":11150,"nodeType":"UserDefinedTypeName","pathNode":{"id":11149,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"7841:3:64"},"referencedDeclaration":10851,"src":"7841:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"7820:10:64","nodeType":"StructDefinition","scope":11439,"src":"7813:45:64","visibility":"public"},{"body":{"id":11178,"nodeType":"Block","src":"8104:74:64","statements":[{"expression":{"arguments":[{"expression":{"id":11164,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11156,"src":"8126:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"8126:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":11172,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"8162:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8154:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11170,"name":"uint160","nodeType":"ElementaryTypeName","src":"8154:7:64","typeDescriptions":{}}},"id":11173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8154:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8146:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11168,"name":"uint256","nodeType":"ElementaryTypeName","src":"8146:7:64","typeDescriptions":{}}},"id":11174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8146:23:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8138:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8138:7:64","typeDescriptions":{}}},"id":11175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8138:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11163,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10893,"src":"8121:4:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8121:50:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11162,"id":11177,"nodeType":"Return","src":"8114:57:64"}]},"documentation":{"id":11153,"nodeType":"StructuredDocumentation","src":"7864:159:64","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":11179,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8037:3:64","nodeType":"FunctionDefinition","parameters":{"id":11159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11156,"mutability":"mutable","name":"set","nameLocation":"8060:3:64","nodeType":"VariableDeclaration","scope":11179,"src":"8041:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11155,"nodeType":"UserDefinedTypeName","pathNode":{"id":11154,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"8041:10:64"},"referencedDeclaration":11152,"src":"8041:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":11158,"mutability":"mutable","name":"value","nameLocation":"8073:5:64","nodeType":"VariableDeclaration","scope":11179,"src":"8065:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11157,"name":"address","nodeType":"ElementaryTypeName","src":"8065:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8040:39:64"},"returnParameters":{"id":11162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11161,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11179,"src":"8098:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11160,"name":"bool","nodeType":"ElementaryTypeName","src":"8098:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8097:6:64"},"scope":11439,"src":"8028:150:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11205,"nodeType":"Block","src":"8425:77:64","statements":[{"expression":{"arguments":[{"expression":{"id":11191,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11183,"src":"8450:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"8450:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":11199,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11185,"src":"8486:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8478:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11197,"name":"uint160","nodeType":"ElementaryTypeName","src":"8478:7:64","typeDescriptions":{}}},"id":11200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8478:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8470:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11195,"name":"uint256","nodeType":"ElementaryTypeName","src":"8470:7:64","typeDescriptions":{}}},"id":11201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8470:23:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8462:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8462:7:64","typeDescriptions":{}}},"id":11202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8462:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11190,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"8442:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8442:53:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11189,"id":11204,"nodeType":"Return","src":"8435:60:64"}]},"documentation":{"id":11180,"nodeType":"StructuredDocumentation","src":"8184:157:64","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":11206,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8355:6:64","nodeType":"FunctionDefinition","parameters":{"id":11186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11183,"mutability":"mutable","name":"set","nameLocation":"8381:3:64","nodeType":"VariableDeclaration","scope":11206,"src":"8362:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11182,"nodeType":"UserDefinedTypeName","pathNode":{"id":11181,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"8362:10:64"},"referencedDeclaration":11152,"src":"8362:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":11185,"mutability":"mutable","name":"value","nameLocation":"8394:5:64","nodeType":"VariableDeclaration","scope":11206,"src":"8386:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11184,"name":"address","nodeType":"ElementaryTypeName","src":"8386:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8361:39:64"},"returnParameters":{"id":11189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11188,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11206,"src":"8419:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11187,"name":"bool","nodeType":"ElementaryTypeName","src":"8419:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8418:6:64"},"scope":11439,"src":"8346:156:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11232,"nodeType":"Block","src":"8669:79:64","statements":[{"expression":{"arguments":[{"expression":{"id":11218,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11210,"src":"8696:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"8696:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":11226,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11212,"src":"8732:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8724:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11224,"name":"uint160","nodeType":"ElementaryTypeName","src":"8724:7:64","typeDescriptions":{}}},"id":11227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8724:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8716:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11222,"name":"uint256","nodeType":"ElementaryTypeName","src":"8716:7:64","typeDescriptions":{}}},"id":11228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8716:23:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8708:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8708:7:64","typeDescriptions":{}}},"id":11229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8708:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11217,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10996,"src":"8686:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":11230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8686:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11216,"id":11231,"nodeType":"Return","src":"8679:62:64"}]},"documentation":{"id":11207,"nodeType":"StructuredDocumentation","src":"8508:70:64","text":" @dev Returns true if the value is in the set. O(1)."},"id":11233,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8592:8:64","nodeType":"FunctionDefinition","parameters":{"id":11213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11210,"mutability":"mutable","name":"set","nameLocation":"8620:3:64","nodeType":"VariableDeclaration","scope":11233,"src":"8601:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11209,"nodeType":"UserDefinedTypeName","pathNode":{"id":11208,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"8601:10:64"},"referencedDeclaration":11152,"src":"8601:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":11212,"mutability":"mutable","name":"value","nameLocation":"8633:5:64","nodeType":"VariableDeclaration","scope":11233,"src":"8625:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11211,"name":"address","nodeType":"ElementaryTypeName","src":"8625:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8600:39:64"},"returnParameters":{"id":11216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11215,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11233,"src":"8663:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11214,"name":"bool","nodeType":"ElementaryTypeName","src":"8663:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8662:6:64"},"scope":11439,"src":"8583:165:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11247,"nodeType":"Block","src":"8901:43:64","statements":[{"expression":{"arguments":[{"expression":{"id":11243,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11237,"src":"8926:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"8926:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11242,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"8918:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":11245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8918:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11241,"id":11246,"nodeType":"Return","src":"8911:26:64"}]},"documentation":{"id":11234,"nodeType":"StructuredDocumentation","src":"8754:70:64","text":" @dev Returns the number of values in the set. O(1)."},"id":11248,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"8838:6:64","nodeType":"FunctionDefinition","parameters":{"id":11238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11237,"mutability":"mutable","name":"set","nameLocation":"8864:3:64","nodeType":"VariableDeclaration","scope":11248,"src":"8845:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11236,"nodeType":"UserDefinedTypeName","pathNode":{"id":11235,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"8845:10:64"},"referencedDeclaration":11152,"src":"8845:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"8844:24:64"},"returnParameters":{"id":11241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11248,"src":"8892:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11239,"name":"uint256","nodeType":"ElementaryTypeName","src":"8892:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8891:9:64"},"scope":11439,"src":"8829:115:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11274,"nodeType":"Block","src":"9369:73:64","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":11266,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11252,"src":"9414:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11267,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"9414:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11268,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11254,"src":"9426:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11265,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11027,"src":"9410:3:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":11269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9410:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9402:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11263,"name":"uint256","nodeType":"ElementaryTypeName","src":"9402:7:64","typeDescriptions":{}}},"id":11270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9402:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9394:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11261,"name":"uint160","nodeType":"ElementaryTypeName","src":"9394:7:64","typeDescriptions":{}}},"id":11271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9394:40:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9386:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11259,"name":"address","nodeType":"ElementaryTypeName","src":"9386:7:64","typeDescriptions":{}}},"id":11272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9386:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11258,"id":11273,"nodeType":"Return","src":"9379:56:64"}]},"documentation":{"id":11249,"nodeType":"StructuredDocumentation","src":"8950:331:64","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":11275,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9295:2:64","nodeType":"FunctionDefinition","parameters":{"id":11255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11252,"mutability":"mutable","name":"set","nameLocation":"9317:3:64","nodeType":"VariableDeclaration","scope":11275,"src":"9298:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11251,"nodeType":"UserDefinedTypeName","pathNode":{"id":11250,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"9298:10:64"},"referencedDeclaration":11152,"src":"9298:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":11254,"mutability":"mutable","name":"index","nameLocation":"9330:5:64","nodeType":"VariableDeclaration","scope":11275,"src":"9322:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11253,"name":"uint256","nodeType":"ElementaryTypeName","src":"9322:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9297:39:64"},"returnParameters":{"id":11258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11275,"src":"9360:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11256,"name":"address","nodeType":"ElementaryTypeName","src":"9360:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9359:9:64"},"scope":11439,"src":"9286:156:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11304,"nodeType":"Block","src":"10063:219:64","statements":[{"assignments":[11289],"declarations":[{"constant":false,"id":11289,"mutability":"mutable","name":"store","nameLocation":"10090:5:64","nodeType":"VariableDeclaration","scope":11304,"src":"10073:22:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10073:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11288,"nodeType":"ArrayTypeName","src":"10073:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":11294,"initialValue":{"arguments":[{"expression":{"id":11291,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"10106:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"10106:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11290,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11041,"src":"10098:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":11293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10098:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10073:44:64"},{"assignments":[11299],"declarations":[{"constant":false,"id":11299,"mutability":"mutable","name":"result","nameLocation":"10144:6:64","nodeType":"VariableDeclaration","scope":11304,"src":"10127:23:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11297,"name":"address","nodeType":"ElementaryTypeName","src":"10127:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11298,"nodeType":"ArrayTypeName","src":"10127:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":11300,"nodeType":"VariableDeclarationStatement","src":"10127:23:64"},{"AST":{"nodeType":"YulBlock","src":"10213:39:64","statements":[{"nodeType":"YulAssignment","src":"10227:15:64","value":{"name":"store","nodeType":"YulIdentifier","src":"10237:5:64"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10227:6:64"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":11299,"isOffset":false,"isSlot":false,"src":"10227:6:64","valueSize":1},{"declaration":11289,"isOffset":false,"isSlot":false,"src":"10237:5:64","valueSize":1}],"id":11301,"nodeType":"InlineAssembly","src":"10204:48:64"},{"expression":{"id":11302,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11299,"src":"10269:6:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":11284,"id":11303,"nodeType":"Return","src":"10262:13:64"}]},"documentation":{"id":11276,"nodeType":"StructuredDocumentation","src":"9448:529:64","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":11305,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"9991:6:64","nodeType":"FunctionDefinition","parameters":{"id":11280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11279,"mutability":"mutable","name":"set","nameLocation":"10017:3:64","nodeType":"VariableDeclaration","scope":11305,"src":"9998:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11278,"nodeType":"UserDefinedTypeName","pathNode":{"id":11277,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"9998:10:64"},"referencedDeclaration":11152,"src":"9998:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"9997:24:64"},"returnParameters":{"id":11284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11283,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11305,"src":"10045:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11281,"name":"address","nodeType":"ElementaryTypeName","src":"10045:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11282,"nodeType":"ArrayTypeName","src":"10045:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10044:18:64"},"scope":11439,"src":"9982:300:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.UintSet","id":11309,"members":[{"constant":false,"id":11308,"mutability":"mutable","name":"_inner","nameLocation":"10333:6:64","nodeType":"VariableDeclaration","scope":11309,"src":"10329:10:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":11307,"nodeType":"UserDefinedTypeName","pathNode":{"id":11306,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"10329:3:64"},"referencedDeclaration":10851,"src":"10329:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10311:7:64","nodeType":"StructDefinition","scope":11439,"src":"10304:42:64","visibility":"public"},{"body":{"id":11329,"nodeType":"Block","src":"10589:56:64","statements":[{"expression":{"arguments":[{"expression":{"id":11321,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11313,"src":"10611:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"10611:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":11325,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11315,"src":"10631:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10623:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10623:7:64","typeDescriptions":{}}},"id":11326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10623:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11320,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10893,"src":"10606:4:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10606:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11319,"id":11328,"nodeType":"Return","src":"10599:39:64"}]},"documentation":{"id":11310,"nodeType":"StructuredDocumentation","src":"10352:159:64","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":11330,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10525:3:64","nodeType":"FunctionDefinition","parameters":{"id":11316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11313,"mutability":"mutable","name":"set","nameLocation":"10545:3:64","nodeType":"VariableDeclaration","scope":11330,"src":"10529:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11312,"nodeType":"UserDefinedTypeName","pathNode":{"id":11311,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"10529:7:64"},"referencedDeclaration":11309,"src":"10529:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":11315,"mutability":"mutable","name":"value","nameLocation":"10558:5:64","nodeType":"VariableDeclaration","scope":11330,"src":"10550:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11314,"name":"uint256","nodeType":"ElementaryTypeName","src":"10550:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10528:36:64"},"returnParameters":{"id":11319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11330,"src":"10583:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11317,"name":"bool","nodeType":"ElementaryTypeName","src":"10583:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10582:6:64"},"scope":11439,"src":"10516:129:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11350,"nodeType":"Block","src":"10889:59:64","statements":[{"expression":{"arguments":[{"expression":{"id":11342,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11334,"src":"10914:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"10914:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":11346,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11336,"src":"10934:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10926:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10926:7:64","typeDescriptions":{}}},"id":11347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10926:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11341,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"10906:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10906:35:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11340,"id":11349,"nodeType":"Return","src":"10899:42:64"}]},"documentation":{"id":11331,"nodeType":"StructuredDocumentation","src":"10651:157:64","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":11351,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"10822:6:64","nodeType":"FunctionDefinition","parameters":{"id":11337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11334,"mutability":"mutable","name":"set","nameLocation":"10845:3:64","nodeType":"VariableDeclaration","scope":11351,"src":"10829:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11333,"nodeType":"UserDefinedTypeName","pathNode":{"id":11332,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"10829:7:64"},"referencedDeclaration":11309,"src":"10829:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":11336,"mutability":"mutable","name":"value","nameLocation":"10858:5:64","nodeType":"VariableDeclaration","scope":11351,"src":"10850:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11335,"name":"uint256","nodeType":"ElementaryTypeName","src":"10850:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10828:36:64"},"returnParameters":{"id":11340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11339,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11351,"src":"10883:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11338,"name":"bool","nodeType":"ElementaryTypeName","src":"10883:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10882:6:64"},"scope":11439,"src":"10813:135:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11371,"nodeType":"Block","src":"11112:61:64","statements":[{"expression":{"arguments":[{"expression":{"id":11363,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11355,"src":"11139:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"11139:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":11367,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11357,"src":"11159:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11151:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11151:7:64","typeDescriptions":{}}},"id":11368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11151:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11362,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10996,"src":"11129:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":11369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11129:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11361,"id":11370,"nodeType":"Return","src":"11122:44:64"}]},"documentation":{"id":11352,"nodeType":"StructuredDocumentation","src":"10954:70:64","text":" @dev Returns true if the value is in the set. O(1)."},"id":11372,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11038:8:64","nodeType":"FunctionDefinition","parameters":{"id":11358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11355,"mutability":"mutable","name":"set","nameLocation":"11063:3:64","nodeType":"VariableDeclaration","scope":11372,"src":"11047:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11354,"nodeType":"UserDefinedTypeName","pathNode":{"id":11353,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"11047:7:64"},"referencedDeclaration":11309,"src":"11047:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":11357,"mutability":"mutable","name":"value","nameLocation":"11076:5:64","nodeType":"VariableDeclaration","scope":11372,"src":"11068:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11356,"name":"uint256","nodeType":"ElementaryTypeName","src":"11068:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11046:36:64"},"returnParameters":{"id":11361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11372,"src":"11106:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11359,"name":"bool","nodeType":"ElementaryTypeName","src":"11106:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11105:6:64"},"scope":11439,"src":"11029:144:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11386,"nodeType":"Block","src":"11323:43:64","statements":[{"expression":{"arguments":[{"expression":{"id":11382,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11376,"src":"11348:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"11348:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11381,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"11340:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":11384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11340:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11380,"id":11385,"nodeType":"Return","src":"11333:26:64"}]},"documentation":{"id":11373,"nodeType":"StructuredDocumentation","src":"11179:70:64","text":" @dev Returns the number of values on the set. O(1)."},"id":11387,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11263:6:64","nodeType":"FunctionDefinition","parameters":{"id":11377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11376,"mutability":"mutable","name":"set","nameLocation":"11286:3:64","nodeType":"VariableDeclaration","scope":11387,"src":"11270:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11375,"nodeType":"UserDefinedTypeName","pathNode":{"id":11374,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"11270:7:64"},"referencedDeclaration":11309,"src":"11270:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"11269:21:64"},"returnParameters":{"id":11380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11387,"src":"11314:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11378,"name":"uint256","nodeType":"ElementaryTypeName","src":"11314:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11313:9:64"},"scope":11439,"src":"11254:112:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11407,"nodeType":"Block","src":"11788:55:64","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":11401,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11391,"src":"11817:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"11817:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11403,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11393,"src":"11829:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11400,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11027,"src":"11813:3:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":11404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11813:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11805:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11398,"name":"uint256","nodeType":"ElementaryTypeName","src":"11805:7:64","typeDescriptions":{}}},"id":11405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11805:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11397,"id":11406,"nodeType":"Return","src":"11798:38:64"}]},"documentation":{"id":11388,"nodeType":"StructuredDocumentation","src":"11372:331:64","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":11408,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"11717:2:64","nodeType":"FunctionDefinition","parameters":{"id":11394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11391,"mutability":"mutable","name":"set","nameLocation":"11736:3:64","nodeType":"VariableDeclaration","scope":11408,"src":"11720:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11390,"nodeType":"UserDefinedTypeName","pathNode":{"id":11389,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"11720:7:64"},"referencedDeclaration":11309,"src":"11720:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":11393,"mutability":"mutable","name":"index","nameLocation":"11749:5:64","nodeType":"VariableDeclaration","scope":11408,"src":"11741:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11392,"name":"uint256","nodeType":"ElementaryTypeName","src":"11741:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11719:36:64"},"returnParameters":{"id":11397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11396,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11408,"src":"11779:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11395,"name":"uint256","nodeType":"ElementaryTypeName","src":"11779:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11778:9:64"},"scope":11439,"src":"11708:135:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11437,"nodeType":"Block","src":"12461:219:64","statements":[{"assignments":[11422],"declarations":[{"constant":false,"id":11422,"mutability":"mutable","name":"store","nameLocation":"12488:5:64","nodeType":"VariableDeclaration","scope":11437,"src":"12471:22:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12471:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11421,"nodeType":"ArrayTypeName","src":"12471:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":11427,"initialValue":{"arguments":[{"expression":{"id":11424,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11412,"src":"12504:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"12504:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11423,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11041,"src":"12496:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":11426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12496:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12471:44:64"},{"assignments":[11432],"declarations":[{"constant":false,"id":11432,"mutability":"mutable","name":"result","nameLocation":"12542:6:64","nodeType":"VariableDeclaration","scope":11437,"src":"12525:23:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11430,"name":"uint256","nodeType":"ElementaryTypeName","src":"12525:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11431,"nodeType":"ArrayTypeName","src":"12525:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":11433,"nodeType":"VariableDeclarationStatement","src":"12525:23:64"},{"AST":{"nodeType":"YulBlock","src":"12611:39:64","statements":[{"nodeType":"YulAssignment","src":"12625:15:64","value":{"name":"store","nodeType":"YulIdentifier","src":"12635:5:64"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12625:6:64"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":11432,"isOffset":false,"isSlot":false,"src":"12625:6:64","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"12635:5:64","valueSize":1}],"id":11434,"nodeType":"InlineAssembly","src":"12602:48:64"},{"expression":{"id":11435,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11432,"src":"12667:6:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":11417,"id":11436,"nodeType":"Return","src":"12660:13:64"}]},"documentation":{"id":11409,"nodeType":"StructuredDocumentation","src":"11849:529:64","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":11438,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12392:6:64","nodeType":"FunctionDefinition","parameters":{"id":11413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11412,"mutability":"mutable","name":"set","nameLocation":"12415:3:64","nodeType":"VariableDeclaration","scope":11438,"src":"12399:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11411,"nodeType":"UserDefinedTypeName","pathNode":{"id":11410,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"12399:7:64"},"referencedDeclaration":11309,"src":"12399:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"12398:21:64"},"returnParameters":{"id":11417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11438,"src":"12443:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11414,"name":"uint256","nodeType":"ElementaryTypeName","src":"12443:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11415,"nodeType":"ArrayTypeName","src":"12443:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12442:18:64"},"scope":11439,"src":"12383:297:64","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11440,"src":"1228:11454:64"}],"src":"115:12568:64"},"id":64},"contracts/Migrations.sol":{"ast":{"absolutePath":"contracts/Migrations.sol","exportedSymbols":{"Migrations":[11497]},"id":11498,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":11441,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:65"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11497,"linearizedBaseContracts":[11497],"name":"Migrations","nameLocation":"72:10:65","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"8da5cb5b","id":11443,"mutability":"mutable","name":"owner","nameLocation":"104:5:65","nodeType":"VariableDeclaration","scope":11497,"src":"89:20:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11442,"name":"address","nodeType":"ElementaryTypeName","src":"89:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"445df0ac","id":11445,"mutability":"mutable","name":"last_completed_migration","nameLocation":"130:24:65","nodeType":"VariableDeclaration","scope":11497,"src":"115:39:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11444,"name":"uint256","nodeType":"ElementaryTypeName","src":"115:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":11453,"nodeType":"Block","src":"199:35:65","statements":[{"expression":{"id":11451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11448,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11443,"src":"209:5:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11449,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"217:3:65","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"217:10:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"209:18:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11452,"nodeType":"ExpressionStatement","src":"209:18:65"}]},"id":11454,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11446,"nodeType":"ParameterList","parameters":[],"src":"196:2:65"},"returnParameters":{"id":11447,"nodeType":"ParameterList","parameters":[],"src":"199:0:65"},"scope":11497,"src":"185:49:65","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11462,"nodeType":"Block","src":"262:43:65","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11456,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"276:3:65","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"276:10:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11458,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11443,"src":"290:5:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"276:19:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11461,"nodeType":"IfStatement","src":"272:26:65","trueBody":{"id":11460,"nodeType":"PlaceholderStatement","src":"297:1:65"}}]},"id":11463,"name":"restricted","nameLocation":"249:10:65","nodeType":"ModifierDefinition","parameters":{"id":11455,"nodeType":"ParameterList","parameters":[],"src":"259:2:65"},"src":"240:65:65","virtual":false,"visibility":"internal"},{"body":{"id":11474,"nodeType":"Block","src":"371:54:65","statements":[{"expression":{"id":11472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11470,"name":"last_completed_migration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11445,"src":"381:24:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11471,"name":"_completed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11465,"src":"408:10:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"381:37:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11473,"nodeType":"ExpressionStatement","src":"381:37:65"}]},"functionSelector":"fdacd576","id":11475,"implemented":true,"kind":"function","modifiers":[{"id":11468,"modifierName":{"id":11467,"name":"restricted","nodeType":"IdentifierPath","referencedDeclaration":11463,"src":"360:10:65"},"nodeType":"ModifierInvocation","src":"360:10:65"}],"name":"setCompleted","nameLocation":"320:12:65","nodeType":"FunctionDefinition","parameters":{"id":11466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11465,"mutability":"mutable","name":"_completed","nameLocation":"341:10:65","nodeType":"VariableDeclaration","scope":11475,"src":"333:18:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11464,"name":"uint256","nodeType":"ElementaryTypeName","src":"333:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"332:20:65"},"returnParameters":{"id":11469,"nodeType":"ParameterList","parameters":[],"src":"371:0:65"},"scope":11497,"src":"311:114:65","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11495,"nodeType":"Block","src":"487:119:65","statements":[{"assignments":[11484],"declarations":[{"constant":false,"id":11484,"mutability":"mutable","name":"upgraded","nameLocation":"508:8:65","nodeType":"VariableDeclaration","scope":11495,"src":"497:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$11497","typeString":"contract Migrations"},"typeName":{"id":11483,"nodeType":"UserDefinedTypeName","pathNode":{"id":11482,"name":"Migrations","nodeType":"IdentifierPath","referencedDeclaration":11497,"src":"497:10:65"},"referencedDeclaration":11497,"src":"497:10:65","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$11497","typeString":"contract Migrations"}},"visibility":"internal"}],"id":11488,"initialValue":{"arguments":[{"id":11486,"name":"_newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"530:11:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11485,"name":"Migrations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11497,"src":"519:10:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Migrations_$11497_$","typeString":"type(contract Migrations)"}},"id":11487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"519:23:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$11497","typeString":"contract Migrations"}},"nodeType":"VariableDeclarationStatement","src":"497:45:65"},{"expression":{"arguments":[{"id":11492,"name":"last_completed_migration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11445,"src":"574:24:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11489,"name":"upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11484,"src":"552:8:65","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$11497","typeString":"contract Migrations"}},"id":11491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setCompleted","nodeType":"MemberAccess","referencedDeclaration":11475,"src":"552:21:65","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":11493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"552:47:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11494,"nodeType":"ExpressionStatement","src":"552:47:65"}]},"functionSelector":"0900f010","id":11496,"implemented":true,"kind":"function","modifiers":[{"id":11480,"modifierName":{"id":11479,"name":"restricted","nodeType":"IdentifierPath","referencedDeclaration":11463,"src":"476:10:65"},"nodeType":"ModifierInvocation","src":"476:10:65"}],"name":"upgrade","nameLocation":"440:7:65","nodeType":"FunctionDefinition","parameters":{"id":11478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11477,"mutability":"mutable","name":"_newAddress","nameLocation":"456:11:65","nodeType":"VariableDeclaration","scope":11496,"src":"448:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11476,"name":"address","nodeType":"ElementaryTypeName","src":"448:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"447:21:65"},"returnParameters":{"id":11481,"nodeType":"ParameterList","parameters":[],"src":"487:0:65"},"scope":11497,"src":"431:175:65","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":11498,"src":"63:545:65"}],"src":"39:570:65"},"id":65},"contracts/examples/AyiiOracle.sol":{"ast":{"absolutePath":"contracts/examples/AyiiOracle.sol","exportedSymbols":{"AyiiOracle":[11825],"BufferChainlink":[1718],"CBORChainlink":[2165],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[894],"Component":[2884],"Context":[10518],"ENSInterface":[974],"ENSResolver_Chainlink":[2175],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"LinkTokenInterface":[1069],"OperatorInterface":[1149],"Oracle":[3414],"OracleInterface":[1188],"Ownable":[7481],"PointerInterface":[1196],"strings":[14536]},"id":11826,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11499,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"32:22:66"},{"absolutePath":"contracts/examples/strings.sol","file":"./strings.sol","id":11500,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11826,"sourceUnit":14537,"src":"56:23:66","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","file":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","id":11501,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11826,"sourceUnit":862,"src":"81:59:66","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Oracle.sol","file":"@etherisc/gif-interface/contracts/components/Oracle.sol","id":11502,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11826,"sourceUnit":3415,"src":"141:65:66","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11503,"name":"Oracle","nodeType":"IdentifierPath","referencedDeclaration":3414,"src":"236:6:66"},"id":11504,"nodeType":"InheritanceSpecifier","src":"236:6:66"},{"baseName":{"id":11505,"name":"ChainlinkClient","nodeType":"IdentifierPath","referencedDeclaration":861,"src":"244:15:66"},"id":11506,"nodeType":"InheritanceSpecifier","src":"244:15:66"}],"contractDependencies":[861,2884,2988,3022,3414,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":11825,"linearizedBaseContracts":[11825,861,3414,2884,7481,10518,5073,3022,2988],"name":"AyiiOracle","nameLocation":"217:10:66","nodeType":"ContractDefinition","nodes":[{"id":11509,"libraryName":{"id":11507,"name":"strings","nodeType":"IdentifierPath","referencedDeclaration":14536,"src":"273:7:66"},"nodeType":"UsingForDirective","src":"267:26:66","typeName":{"id":11508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":11513,"libraryName":{"id":11510,"name":"Chainlink","nodeType":"IdentifierPath","referencedDeclaration":268,"src":"304:9:66"},"nodeType":"UsingForDirective","src":"298:38:66","typeName":{"id":11512,"nodeType":"UserDefinedTypeName","pathNode":{"id":11511,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"318:17:66"},"referencedDeclaration":25,"src":"318:17:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"constant":false,"functionSelector":"3fb80f51","id":11517,"mutability":"mutable","name":"gifRequests","nameLocation":"425:11:66","nodeType":"VariableDeclaration","scope":11825,"src":"342:94:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":11516,"keyType":{"id":11514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"350:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"342:75:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":11515,"name":"uint256","nodeType":"ElementaryTypeName","src":"388:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"c2939d97","id":11519,"mutability":"mutable","name":"jobId","nameLocation":"457:5:66","nodeType":"VariableDeclaration","scope":11825,"src":"442:20:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"442:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"42f6487a","id":11521,"mutability":"mutable","name":"payment","nameLocation":"483:7:66","nodeType":"VariableDeclaration","scope":11825,"src":"468:22:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11520,"name":"uint256","nodeType":"ElementaryTypeName","src":"468:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"id":11527,"name":"LogAyiiRequest","nameLocation":"503:14:66","nodeType":"EventDefinition","parameters":{"id":11526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11523,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"526:9:66","nodeType":"VariableDeclaration","scope":11527,"src":"518:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11522,"name":"uint256","nodeType":"ElementaryTypeName","src":"518:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11525,"indexed":false,"mutability":"mutable","name":"chainlinkRequestId","nameLocation":"545:18:66","nodeType":"VariableDeclaration","scope":11527,"src":"537:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"537:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"517:47:66"},"src":"497:68:66"},{"anonymous":false,"id":11541,"name":"LogAyiiFulfill","nameLocation":"581:14:66","nodeType":"EventDefinition","parameters":{"id":11540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11529,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"613:9:66","nodeType":"VariableDeclaration","scope":11541,"src":"605:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11528,"name":"uint256","nodeType":"ElementaryTypeName","src":"605:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11531,"indexed":false,"mutability":"mutable","name":"chainlinkRequestId","nameLocation":"641:18:66","nodeType":"VariableDeclaration","scope":11541,"src":"633:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"633:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11533,"indexed":false,"mutability":"mutable","name":"projectId","nameLocation":"678:9:66","nodeType":"VariableDeclaration","scope":11541,"src":"670:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11532,"name":"bytes32","nodeType":"ElementaryTypeName","src":"670:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11535,"indexed":false,"mutability":"mutable","name":"uaiId","nameLocation":"705:5:66","nodeType":"VariableDeclaration","scope":11541,"src":"697:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11534,"name":"bytes32","nodeType":"ElementaryTypeName","src":"697:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11537,"indexed":false,"mutability":"mutable","name":"cropId","nameLocation":"728:6:66","nodeType":"VariableDeclaration","scope":11541,"src":"720:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"720:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11539,"indexed":false,"mutability":"mutable","name":"aaay","nameLocation":"752:4:66","nodeType":"VariableDeclaration","scope":11541,"src":"744:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11538,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"595:167:66"},"src":"575:188:66"},{"body":{"id":11567,"nodeType":"Block","src":"993:144:66","statements":[{"expression":{"arguments":[{"id":11561,"name":"_chainLinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"1037:15:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11562,"name":"_chainLinkOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11549,"src":"1067:18:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11563,"name":"_jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"1100:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11564,"name":"_payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11553,"src":"1121:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11560,"name":"updateRequestDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11614,"src":"1003:20:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (address,address,bytes32,uint256)"}},"id":11565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1003:127:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11566,"nodeType":"ExpressionStatement","src":"1003:127:66"}]},"id":11568,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":11556,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11543,"src":"971:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11557,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11545,"src":"978:9:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":11558,"modifierName":{"id":11555,"name":"Oracle","nodeType":"IdentifierPath","referencedDeclaration":3414,"src":"964:6:66"},"nodeType":"ModifierInvocation","src":"964:24:66"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11543,"mutability":"mutable","name":"_name","nameLocation":"798:5:66","nodeType":"VariableDeclaration","scope":11568,"src":"790:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"790:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11545,"mutability":"mutable","name":"_registry","nameLocation":"821:9:66","nodeType":"VariableDeclaration","scope":11568,"src":"813:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11544,"name":"address","nodeType":"ElementaryTypeName","src":"813:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11547,"mutability":"mutable","name":"_chainLinkToken","nameLocation":"848:15:66","nodeType":"VariableDeclaration","scope":11568,"src":"840:23:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11546,"name":"address","nodeType":"ElementaryTypeName","src":"840:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11549,"mutability":"mutable","name":"_chainLinkOperator","nameLocation":"881:18:66","nodeType":"VariableDeclaration","scope":11568,"src":"873:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11548,"name":"address","nodeType":"ElementaryTypeName","src":"873:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11551,"mutability":"mutable","name":"_jobId","nameLocation":"917:6:66","nodeType":"VariableDeclaration","scope":11568,"src":"909:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"909:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11553,"mutability":"mutable","name":"_payment","nameLocation":"941:8:66","nodeType":"VariableDeclaration","scope":11568,"src":"933:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11552,"name":"uint256","nodeType":"ElementaryTypeName","src":"933:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"780:175:66"},"returnParameters":{"id":11559,"nodeType":"ParameterList","parameters":[],"src":"993:0:66"},"scope":11825,"src":"769:368:66","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11613,"nodeType":"Block","src":"1338:241:66","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11581,"name":"_chainLinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11570,"src":"1352:15:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1379:1:66","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1371:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11582,"name":"address","nodeType":"ElementaryTypeName","src":"1371:7:66","typeDescriptions":{}}},"id":11585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1371:10:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1352:29:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11592,"nodeType":"IfStatement","src":"1348:74:66","trueBody":{"id":11591,"nodeType":"Block","src":"1383:39:66","statements":[{"expression":{"arguments":[{"id":11588,"name":"_chainLinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11570,"src":"1403:15:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11587,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"1385:17:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1385:34:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11590,"nodeType":"ExpressionStatement","src":"1385:34:66"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11593,"name":"_chainLinkOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11572,"src":"1435:18:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1465:1:66","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1457:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11594,"name":"address","nodeType":"ElementaryTypeName","src":"1457:7:66","typeDescriptions":{}}},"id":11597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1457:10:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1435:32:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11604,"nodeType":"IfStatement","src":"1431:81:66","trueBody":{"id":11603,"nodeType":"Block","src":"1469:43:66","statements":[{"expression":{"arguments":[{"id":11600,"name":"_chainLinkOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11572,"src":"1490:18:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11599,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"1471:18:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1471:38:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11602,"nodeType":"ExpressionStatement","src":"1471:38:66"}]}},{"expression":{"id":11607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11605,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11519,"src":"1530:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11606,"name":"_jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11574,"src":"1538:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1530:14:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11608,"nodeType":"ExpressionStatement","src":"1530:14:66"},{"expression":{"id":11611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11609,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11521,"src":"1554:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11610,"name":"_payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11576,"src":"1564:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1554:18:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11612,"nodeType":"ExpressionStatement","src":"1554:18:66"}]},"functionSelector":"ca5ddcf3","id":11614,"implemented":true,"kind":"function","modifiers":[{"id":11579,"modifierName":{"id":11578,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"1323:9:66"},"nodeType":"ModifierInvocation","src":"1323:9:66"}],"name":"updateRequestDetails","nameLocation":"1152:20:66","nodeType":"FunctionDefinition","parameters":{"id":11577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11570,"mutability":"mutable","name":"_chainLinkToken","nameLocation":"1190:15:66","nodeType":"VariableDeclaration","scope":11614,"src":"1182:23:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11569,"name":"address","nodeType":"ElementaryTypeName","src":"1182:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11572,"mutability":"mutable","name":"_chainLinkOperator","nameLocation":"1223:18:66","nodeType":"VariableDeclaration","scope":11614,"src":"1215:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11571,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11574,"mutability":"mutable","name":"_jobId","nameLocation":"1259:6:66","nodeType":"VariableDeclaration","scope":11614,"src":"1251:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1251:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11576,"mutability":"mutable","name":"_payment","nameLocation":"1283:8:66","nodeType":"VariableDeclaration","scope":11614,"src":"1275:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11575,"name":"uint256","nodeType":"ElementaryTypeName","src":"1275:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1172:125:66"},"returnParameters":{"id":11580,"nodeType":"ParameterList","parameters":[],"src":"1338:0:66"},"scope":11825,"src":"1143:436:66","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3016],"body":{"id":11703,"nodeType":"Block","src":"1694:689:66","statements":[{"assignments":[11628],"declarations":[{"constant":false,"id":11628,"mutability":"mutable","name":"request_","nameLocation":"1729:8:66","nodeType":"VariableDeclaration","scope":11703,"src":"1704:33:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":11627,"nodeType":"UserDefinedTypeName","pathNode":{"id":11626,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1704:17:66"},"referencedDeclaration":25,"src":"1704:17:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":11639,"initialValue":{"arguments":[{"id":11630,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11519,"src":"1775:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":11633,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1802:4:66","typeDescriptions":{"typeIdentifier":"t_contract$_AyiiOracle_$11825","typeString":"contract AyiiOracle"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AyiiOracle_$11825","typeString":"contract AyiiOracle"}],"id":11632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1794:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11631,"name":"address","nodeType":"ElementaryTypeName","src":"1794:7:66","typeDescriptions":{}}},"id":11634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1794:13:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":11635,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1821:4:66","typeDescriptions":{"typeIdentifier":"t_contract$_AyiiOracle_$11825","typeString":"contract AyiiOracle"}},"id":11636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fulfill","nodeType":"MemberAccess","referencedDeclaration":11756,"src":"1821:12:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,bytes32,bytes32,bytes32,uint256) external"}},"id":11637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1821:21:66","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":11629,"name":"buildChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"1740:21:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":11638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1740:112:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"nodeType":"VariableDeclarationStatement","src":"1704:148:66"},{"assignments":[11641,11643,11645],"declarations":[{"constant":false,"id":11641,"mutability":"mutable","name":"projectId","nameLocation":"1885:9:66","nodeType":"VariableDeclaration","scope":11703,"src":"1877:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1877:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11643,"mutability":"mutable","name":"uaiId","nameLocation":"1917:5:66","nodeType":"VariableDeclaration","scope":11703,"src":"1909:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11642,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1909:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11645,"mutability":"mutable","name":"cropId","nameLocation":"1945:6:66","nodeType":"VariableDeclaration","scope":11703,"src":"1937:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1937:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":11657,"initialValue":{"arguments":[{"id":11648,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11618,"src":"1975:5:66","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":11650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1983:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1983:7:66","typeDescriptions":{}}},{"id":11652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1992:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1992:7:66","typeDescriptions":{}}},{"id":11654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2001:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2001:7:66","typeDescriptions":{}}}],"id":11655,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1982:27:66","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$","typeString":"tuple(type(bytes32),type(bytes32),type(bytes32))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$","typeString":"tuple(type(bytes32),type(bytes32),type(bytes32))"}],"expression":{"id":11646,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"1964:3:66","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1964:10:66","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1964:46:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"1863:147:66"},{"expression":{"arguments":[{"hexValue":"70726f6a6563744964","id":11661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2034:11:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3989a83e7d482cb46944f4c209ce200abaa1eb584ebc069499f3707b0fb4481","typeString":"literal_string \"projectId\""},"value":"projectId"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11662,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11641,"src":"2047:9:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toB32String","nodeType":"MemberAccess","referencedDeclaration":14535,"src":"2047:21:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (string memory)"}},"id":11664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2047:23:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3989a83e7d482cb46944f4c209ce200abaa1eb584ebc069499f3707b0fb4481","typeString":"literal_string \"projectId\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11658,"name":"request_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11628,"src":"2021:8:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":11660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2021:12:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":11665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2021:50:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11666,"nodeType":"ExpressionStatement","src":"2021:50:66"},{"expression":{"arguments":[{"hexValue":"7561694964","id":11670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2094:7:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4af39283dc3c3c13d6fb420f27a96bed4e967523e3951b8ecac1586b38448a9","typeString":"literal_string \"uaiId\""},"value":"uaiId"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11671,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11643,"src":"2103:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toB32String","nodeType":"MemberAccess","referencedDeclaration":14535,"src":"2103:17:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (string memory)"}},"id":11673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2103:19:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d4af39283dc3c3c13d6fb420f27a96bed4e967523e3951b8ecac1586b38448a9","typeString":"literal_string \"uaiId\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11667,"name":"request_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11628,"src":"2081:8:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":11669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2081:12:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":11674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2081:42:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11675,"nodeType":"ExpressionStatement","src":"2081:42:66"},{"expression":{"arguments":[{"hexValue":"63726f704964","id":11679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2146:8:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_050a9125cf739a9606a9786e5c369a46a13cc1cd0532f1c114f2245d13d3fd1d","typeString":"literal_string \"cropId\""},"value":"cropId"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11680,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11645,"src":"2156:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toB32String","nodeType":"MemberAccess","referencedDeclaration":14535,"src":"2156:18:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (string memory)"}},"id":11682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2156:20:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_050a9125cf739a9606a9786e5c369a46a13cc1cd0532f1c114f2245d13d3fd1d","typeString":"literal_string \"cropId\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11676,"name":"request_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11628,"src":"2133:8:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":11678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2133:12:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":11683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2133:44:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11684,"nodeType":"ExpressionStatement","src":"2133:44:66"},{"assignments":[11686],"declarations":[{"constant":false,"id":11686,"mutability":"mutable","name":"chainlinkRequestId","nameLocation":"2196:18:66","nodeType":"VariableDeclaration","scope":11703,"src":"2188:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11685,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2188:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":11691,"initialValue":{"arguments":[{"id":11688,"name":"request_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11628,"src":"2238:8:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":11689,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11521,"src":"2248:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11687,"name":"sendChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"2217:20:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":11690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2217:39:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2188:68:66"},{"expression":{"id":11696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11692,"name":"gifRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"2267:11:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":11694,"indexExpression":{"id":11693,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11686,"src":"2279:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2267:31:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11695,"name":"gifRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11616,"src":"2301:12:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2267:46:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11697,"nodeType":"ExpressionStatement","src":"2267:46:66"},{"eventCall":{"arguments":[{"id":11699,"name":"gifRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11616,"src":"2343:12:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11700,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11686,"src":"2357:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11698,"name":"LogAyiiRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11527,"src":"2328:14:66","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32)"}},"id":11701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2328:48:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11702,"nodeType":"EmitStatement","src":"2323:53:66"}]},"functionSelector":"ffc79065","id":11704,"implemented":true,"kind":"function","modifiers":[{"id":11622,"modifierName":{"id":11621,"name":"onlyQuery","nodeType":"IdentifierPath","referencedDeclaration":3339,"src":"1680:9:66"},"nodeType":"ModifierInvocation","src":"1680:9:66"}],"name":"request","nameLocation":"1594:7:66","nodeType":"FunctionDefinition","overrides":{"id":11620,"nodeType":"OverrideSpecifier","overrides":[],"src":"1663:8:66"},"parameters":{"id":11619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11616,"mutability":"mutable","name":"gifRequestId","nameLocation":"1610:12:66","nodeType":"VariableDeclaration","scope":11704,"src":"1602:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11615,"name":"uint256","nodeType":"ElementaryTypeName","src":"1602:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11618,"mutability":"mutable","name":"input","nameLocation":"1639:5:66","nodeType":"VariableDeclaration","scope":11704,"src":"1624:20:66","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11617,"name":"bytes","nodeType":"ElementaryTypeName","src":"1624:5:66","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1601:44:66"},"returnParameters":{"id":11623,"nodeType":"ParameterList","parameters":[],"src":"1694:0:66"},"scope":11825,"src":"1585:798:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11755,"nodeType":"Block","src":"2615:328:66","statements":[{"assignments":[11721],"declarations":[{"constant":false,"id":11721,"mutability":"mutable","name":"gifRequest","nameLocation":"2633:10:66","nodeType":"VariableDeclaration","scope":11755,"src":"2625:18:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11720,"name":"uint256","nodeType":"ElementaryTypeName","src":"2625:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11725,"initialValue":{"baseExpression":{"id":11722,"name":"gifRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"2646:11:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":11724,"indexExpression":{"id":11723,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"2658:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2646:31:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2625:52:66"},{"assignments":[11727],"declarations":[{"constant":false,"id":11727,"mutability":"mutable","name":"data","nameLocation":"2700:4:66","nodeType":"VariableDeclaration","scope":11755,"src":"2687:17:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11726,"name":"bytes","nodeType":"ElementaryTypeName","src":"2687:5:66","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":11735,"initialValue":{"arguments":[{"id":11730,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11708,"src":"2719:9:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11731,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11710,"src":"2730:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11732,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11712,"src":"2737:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11733,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"2745:4:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11728,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2708:3:66","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2708:10:66","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2708:42:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2687:63:66"},{"expression":{"arguments":[{"id":11737,"name":"gifRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11721,"src":"2777:10:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11738,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11727,"src":"2789:4:66","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11736,"name":"_respond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"2768:8:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory)"}},"id":11739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2768:26:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11740,"nodeType":"ExpressionStatement","src":"2768:26:66"},{"expression":{"id":11744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2805:38:66","subExpression":{"baseExpression":{"id":11741,"name":"gifRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"2812:11:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":11743,"indexExpression":{"id":11742,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"2824:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2812:31:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11745,"nodeType":"ExpressionStatement","src":"2805:38:66"},{"eventCall":{"arguments":[{"id":11747,"name":"gifRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11721,"src":"2873:10:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11748,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"2885:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11749,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11708,"src":"2905:9:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11750,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11710,"src":"2916:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11751,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11712,"src":"2923:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11752,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"2931:4:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11746,"name":"LogAyiiFulfill","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11541,"src":"2858:14:66","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,bytes32,bytes32,bytes32,uint256)"}},"id":11753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2858:78:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11754,"nodeType":"EmitStatement","src":"2853:83:66"}]},"functionSelector":"97e873e9","id":11756,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":11717,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"2590:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":11718,"modifierName":{"id":11716,"name":"recordChainlinkFulfillment","nodeType":"IdentifierPath","referencedDeclaration":841,"src":"2563:26:66"},"nodeType":"ModifierInvocation","src":"2563:46:66"}],"name":"fulfill","nameLocation":"2398:7:66","nodeType":"FunctionDefinition","parameters":{"id":11715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11706,"mutability":"mutable","name":"chainlinkRequestId","nameLocation":"2423:18:66","nodeType":"VariableDeclaration","scope":11756,"src":"2415:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2415:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11708,"mutability":"mutable","name":"projectId","nameLocation":"2460:9:66","nodeType":"VariableDeclaration","scope":11756,"src":"2452:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11707,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2452:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11710,"mutability":"mutable","name":"uaiId","nameLocation":"2488:5:66","nodeType":"VariableDeclaration","scope":11756,"src":"2480:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2480:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11712,"mutability":"mutable","name":"cropId","nameLocation":"2512:6:66","nodeType":"VariableDeclaration","scope":11756,"src":"2504:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11711,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2504:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11714,"mutability":"mutable","name":"aaay","nameLocation":"2537:4:66","nodeType":"VariableDeclaration","scope":11756,"src":"2529:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11713,"name":"uint256","nodeType":"ElementaryTypeName","src":"2529:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2405:142:66"},"returnParameters":{"id":11719,"nodeType":"ParameterList","parameters":[],"src":"2615:0:66"},"scope":11825,"src":"2389:554:66","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3021],"body":{"id":11764,"nodeType":"Block","src":"3032:131:66","statements":[]},"functionSelector":"40e58ee5","id":11765,"implemented":true,"kind":"function","modifiers":[{"id":11762,"modifierName":{"id":11761,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"3018:9:66"},"nodeType":"ModifierInvocation","src":"3018:9:66"}],"name":"cancel","nameLocation":"2958:6:66","nodeType":"FunctionDefinition","overrides":{"id":11760,"nodeType":"OverrideSpecifier","overrides":[],"src":"3001:8:66"},"parameters":{"id":11759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11758,"mutability":"mutable","name":"requestId","nameLocation":"2973:9:66","nodeType":"VariableDeclaration","scope":11765,"src":"2965:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11757,"name":"uint256","nodeType":"ElementaryTypeName","src":"2965:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2964:19:66"},"returnParameters":{"id":11763,"nodeType":"ParameterList","parameters":[],"src":"3032:0:66"},"scope":11825,"src":"2949:214:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11789,"nodeType":"Block","src":"3474:160:66","statements":[{"expression":{"arguments":[{"id":11782,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11767,"src":"3515:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11783,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11769,"src":"3548:9:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11784,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"3572:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11785,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11773,"src":"3592:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11786,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11775,"src":"3613:4:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3491:3:66","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3491:10:66","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3491:136:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":11779,"id":11788,"nodeType":"Return","src":"3484:143:66"}]},"functionSelector":"423b3b7a","id":11790,"implemented":true,"kind":"function","modifiers":[],"name":"encodeFulfillParameters","nameLocation":"3229:23:66","nodeType":"FunctionDefinition","parameters":{"id":11776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11767,"mutability":"mutable","name":"chainlinkRequestId","nameLocation":"3270:18:66","nodeType":"VariableDeclaration","scope":11790,"src":"3262:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3262:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11769,"mutability":"mutable","name":"projectId","nameLocation":"3307:9:66","nodeType":"VariableDeclaration","scope":11790,"src":"3299:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3299:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11771,"mutability":"mutable","name":"uaiId","nameLocation":"3335:5:66","nodeType":"VariableDeclaration","scope":11790,"src":"3327:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3327:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11773,"mutability":"mutable","name":"cropId","nameLocation":"3359:6:66","nodeType":"VariableDeclaration","scope":11790,"src":"3351:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3351:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11775,"mutability":"mutable","name":"aaay","nameLocation":"3384:4:66","nodeType":"VariableDeclaration","scope":11790,"src":"3376:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11774,"name":"uint256","nodeType":"ElementaryTypeName","src":"3376:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3252:142:66"},"returnParameters":{"id":11779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11778,"mutability":"mutable","name":"parameterData","nameLocation":"3455:13:66","nodeType":"VariableDeclaration","scope":11790,"src":"3442:26:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11777,"name":"bytes","nodeType":"ElementaryTypeName","src":"3442:5:66","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3441:28:66"},"scope":11825,"src":"3220:414:66","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":11797,"nodeType":"Block","src":"3715:29:66","statements":[{"expression":{"id":11795,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11519,"src":"3732:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11794,"id":11796,"nodeType":"Return","src":"3725:12:66"}]},"functionSelector":"b6e45ee0","id":11798,"implemented":true,"kind":"function","modifiers":[],"name":"getChainlinkJobId","nameLocation":"3649:17:66","nodeType":"FunctionDefinition","parameters":{"id":11791,"nodeType":"ParameterList","parameters":[],"src":"3666:2:66"},"returnParameters":{"id":11794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11793,"mutability":"mutable","name":"chainlinkJobId","nameLocation":"3699:14:66","nodeType":"VariableDeclaration","scope":11798,"src":"3691:22:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11792,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3691:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3690:24:66"},"scope":11825,"src":"3640:104:66","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11805,"nodeType":"Block","src":"3826:31:66","statements":[{"expression":{"id":11803,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11521,"src":"3843:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11802,"id":11804,"nodeType":"Return","src":"3836:14:66"}]},"functionSelector":"5b16d9b2","id":11806,"implemented":true,"kind":"function","modifiers":[],"name":"getChainlinkPayment","nameLocation":"3759:19:66","nodeType":"FunctionDefinition","parameters":{"id":11799,"nodeType":"ParameterList","parameters":[],"src":"3778:2:66"},"returnParameters":{"id":11802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11801,"mutability":"mutable","name":"paymentAmount","nameLocation":"3811:13:66","nodeType":"VariableDeclaration","scope":11806,"src":"3803:21:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11800,"name":"uint256","nodeType":"ElementaryTypeName","src":"3803:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3802:23:66"},"scope":11825,"src":"3750:107:66","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11814,"nodeType":"Block","src":"3940:47:66","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11811,"name":"chainlinkTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"3957:21:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3957:23:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11810,"id":11813,"nodeType":"Return","src":"3950:30:66"}]},"functionSelector":"165d35e1","id":11815,"implemented":true,"kind":"function","modifiers":[],"name":"getChainlinkToken","nameLocation":"3872:17:66","nodeType":"FunctionDefinition","parameters":{"id":11807,"nodeType":"ParameterList","parameters":[],"src":"3889:2:66"},"returnParameters":{"id":11810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11809,"mutability":"mutable","name":"linkTokenAddress","nameLocation":"3922:16:66","nodeType":"VariableDeclaration","scope":11815,"src":"3914:24:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11808,"name":"address","nodeType":"ElementaryTypeName","src":"3914:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3913:26:66"},"scope":11825,"src":"3863:124:66","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11823,"nodeType":"Block","src":"4065:48:66","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11820,"name":"chainlinkOracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":706,"src":"4082:22:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4082:24:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11819,"id":11822,"nodeType":"Return","src":"4075:31:66"}]},"functionSelector":"e8f8e1c1","id":11824,"implemented":true,"kind":"function","modifiers":[],"name":"getChainlinkOperator","nameLocation":"4002:20:66","nodeType":"FunctionDefinition","parameters":{"id":11816,"nodeType":"ParameterList","parameters":[],"src":"4022:2:66"},"returnParameters":{"id":11819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11818,"mutability":"mutable","name":"operator","nameLocation":"4055:8:66","nodeType":"VariableDeclaration","scope":11824,"src":"4047:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11817,"name":"address","nodeType":"ElementaryTypeName","src":"4047:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4046:18:66"},"scope":11825,"src":"3993:120:66","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":11826,"src":"208:3907:66"}],"src":"32:4085:66"},"id":66},"contracts/examples/AyiiProduct.sol":{"ast":{"absolutePath":"contracts/examples/AyiiProduct.sol","exportedSymbols":{"AccessControl":[7145],"AccessControlEnumerable":[7270],"AccessController":[15687],"Address":[10496],"AyiiProduct":[13585],"Component":[2884],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"EnumerableSet":[11439],"IAccess":[4836],"IAccessControl":[7343],"IAccessControlEnumerable":[7368],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC20Permit":[8892],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"Ownable":[7481],"PolicyController":[19974],"Product":[4042],"SafeERC20":[9173],"Strings":[10804],"TransferHelper":[26659]},"id":13586,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11827,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"32:22:67"},{"absolutePath":"contracts/shared/TransferHelper.sol","file":"../shared/TransferHelper.sol","id":11828,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":26660,"src":"56:38:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":11829,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":7146,"src":"96:58:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":11830,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":8060,"src":"155:63:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":11831,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":8832,"src":"219:56:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":11832,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":9174,"src":"276:65:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":11833,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":11440,"src":"342:65:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Product.sol","file":"@etherisc/gif-interface/contracts/components/Product.sol","id":11834,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":4043,"src":"409:66:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PolicyController.sol","file":"../modules/PolicyController.sol","id":11835,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":19975,"src":"476:41:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/AccessController.sol","file":"../modules/AccessController.sol","id":11836,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":15688,"src":"519:41:67","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11837,"name":"Product","nodeType":"IdentifierPath","referencedDeclaration":4042,"src":"591:7:67"},"id":11838,"nodeType":"InheritanceSpecifier","src":"591:7:67"},{"baseName":{"id":11839,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":7145,"src":"605:13:67"},"id":11840,"nodeType":"InheritanceSpecifier","src":"605:13:67"},{"baseName":{"id":11841,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":8059,"src":"624:13:67"},"id":11842,"nodeType":"InheritanceSpecifier","src":"624:13:67"}],"contractDependencies":[2884,2988,3079,4042,5073,7145,7343,7481,8059,10518,10828,10840],"contractKind":"contract","fullyImplemented":true,"id":13585,"linearizedBaseContracts":[13585,8059,7145,10828,10840,7343,4042,2884,7481,10518,5073,3079,2988],"name":"AyiiProduct","nameLocation":"571:11:67","nodeType":"ContractDefinition","nodes":[{"id":11846,"libraryName":{"id":11843,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":11439,"src":"650:13:67"},"nodeType":"UsingForDirective","src":"644:49:67","typeName":{"id":11845,"nodeType":"UserDefinedTypeName","pathNode":{"id":11844,"name":"EnumerableSet.Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"668:24:67"},"referencedDeclaration":11045,"src":"668:24:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}}},{"constant":true,"functionSelector":"a3f4df7e","id":11849,"mutability":"constant","name":"NAME","nameLocation":"723:4:67","nodeType":"VariableDeclaration","scope":13585,"src":"699:54:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"699:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"417265615969656c64496e64657850726f64756374","id":11848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"730:23:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1414827468bdb7b8062360f5946dc483957c4d919d7d4e20c17058c424be6ef","typeString":"literal_string \"AreaYieldIndexProduct\""},"value":"AreaYieldIndexProduct"},"visibility":"public"},{"constant":true,"functionSelector":"ffa1ad74","id":11852,"mutability":"constant","name":"VERSION","nameLocation":"783:7:67","nodeType":"VariableDeclaration","scope":13585,"src":"759:39:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"759:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"302e31","id":11851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"793:5:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cd160c72d102a6747abd189ac21d4a1f802e3fcc1bb8fc78cc4d558df0c7c21","typeString":"literal_string \"0.1\""},"value":"0.1"},"visibility":"public"},{"constant":true,"functionSelector":"09128d83","id":11855,"mutability":"constant","name":"POLICY_FLOW","nameLocation":"828:11:67","nodeType":"VariableDeclaration","scope":13585,"src":"804:57:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11853,"name":"bytes32","nodeType":"ElementaryTypeName","src":"804:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6c69637944656661756c74466c6f77","id":11854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"842:19:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c6194c52a3447410e4616772f780a88c4ac5f0b731d2fc7e7979c603182714e","typeString":"literal_string \"PolicyDefaultFlow\""},"value":"PolicyDefaultFlow"},"visibility":"public"},{"constant":true,"functionSelector":"056c9989","id":11860,"mutability":"constant","name":"INSURER_ROLE","nameLocation":"892:12:67","nodeType":"VariableDeclaration","scope":13585,"src":"868:59:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"868:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"494e5355524552","id":11858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"917:9:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_f098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955b","typeString":"literal_string \"INSURER\""},"value":"INSURER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955b","typeString":"literal_string \"INSURER\""}],"id":11857,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"907:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"907:20:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"54111315","id":11865,"mutability":"constant","name":"PERCENTAGE_MULTIPLIER","nameLocation":"958:21:67","nodeType":"VariableDeclaration","scope":13585,"src":"934:53:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11861,"name":"uint256","nodeType":"ElementaryTypeName","src":"934:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"},"id":11864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":11862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"982:1:67","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":11863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"985:2:67","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"982:5:67","typeDescriptions":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"}},"visibility":"public"},{"constant":true,"functionSelector":"4ce9d0a7","id":11868,"mutability":"constant","name":"AAAY_MIN","nameLocation":"1018:8:67","nodeType":"VariableDeclaration","scope":13585,"src":"994:36:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11866,"name":"uint256","nodeType":"ElementaryTypeName","src":"994:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":11867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1029:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"constant":true,"functionSelector":"aec8de39","id":11871,"mutability":"constant","name":"AAAY_MAX","nameLocation":"1060:8:67","nodeType":"VariableDeclaration","scope":13585,"src":"1036:37:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11869,"name":"uint256","nodeType":"ElementaryTypeName","src":"1036:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3135","id":11870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1071:2:67","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"visibility":"public"},{"constant":true,"functionSelector":"1c3456dd","id":11876,"mutability":"constant","name":"RISK_APH_MAX","nameLocation":"1104:12:67","nodeType":"VariableDeclaration","scope":13585,"src":"1080:65:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11872,"name":"uint256","nodeType":"ElementaryTypeName","src":"1080:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3135","id":11873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1119:2:67","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":11874,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"1124:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1119:26:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":true,"functionSelector":"f406460c","id":11881,"mutability":"constant","name":"RISK_EXIT_MAX","nameLocation":"1175:13:67","nodeType":"VariableDeclaration","scope":13585,"src":"1151:65:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11877,"name":"uint256","nodeType":"ElementaryTypeName","src":"1151:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11878,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"1191:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"35","id":11879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1215:1:67","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1191:25:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":true,"functionSelector":"90e1a2ac","id":11886,"mutability":"constant","name":"RISK_TSI_AT_EXIT_MIN","nameLocation":"1246:20:67","nodeType":"VariableDeclaration","scope":13585,"src":"1222:72:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11882,"name":"uint256","nodeType":"ElementaryTypeName","src":"1222:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11883,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"1269:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":11884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1293:1:67","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1269:25:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"canonicalName":"AyiiProduct.Risk","id":11917,"members":[{"constant":false,"id":11888,"mutability":"mutable","name":"id","nameLocation":"1366:2:67","nodeType":"VariableDeclaration","scope":11917,"src":"1358:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11887,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1358:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11890,"mutability":"mutable","name":"projectId","nameLocation":"1424:9:67","nodeType":"VariableDeclaration","scope":11917,"src":"1416:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1416:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11892,"mutability":"mutable","name":"uaiId","nameLocation":"1524:5:67","nodeType":"VariableDeclaration","scope":11917,"src":"1516:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11891,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1516:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11894,"mutability":"mutable","name":"cropId","nameLocation":"1560:6:67","nodeType":"VariableDeclaration","scope":11917,"src":"1552:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1552:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11896,"mutability":"mutable","name":"trigger","nameLocation":"1595:7:67","nodeType":"VariableDeclaration","scope":11917,"src":"1587:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11895,"name":"uint256","nodeType":"ElementaryTypeName","src":"1587:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11898,"mutability":"mutable","name":"exit","nameLocation":"1674:4:67","nodeType":"VariableDeclaration","scope":11917,"src":"1666:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11897,"name":"uint256","nodeType":"ElementaryTypeName","src":"1666:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11900,"mutability":"mutable","name":"tsi","nameLocation":"1755:3:67","nodeType":"VariableDeclaration","scope":11917,"src":"1747:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11899,"name":"uint256","nodeType":"ElementaryTypeName","src":"1747:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11902,"mutability":"mutable","name":"aph","nameLocation":"1838:3:67","nodeType":"VariableDeclaration","scope":11917,"src":"1830:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11901,"name":"uint256","nodeType":"ElementaryTypeName","src":"1830:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11904,"mutability":"mutable","name":"requestId","nameLocation":"1917:9:67","nodeType":"VariableDeclaration","scope":11917,"src":"1909:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11903,"name":"uint256","nodeType":"ElementaryTypeName","src":"1909:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11906,"mutability":"mutable","name":"requestTriggered","nameLocation":"1942:16:67","nodeType":"VariableDeclaration","scope":11917,"src":"1937:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11905,"name":"bool","nodeType":"ElementaryTypeName","src":"1937:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11908,"mutability":"mutable","name":"responseAt","nameLocation":"1976:10:67","nodeType":"VariableDeclaration","scope":11917,"src":"1968:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11907,"name":"uint256","nodeType":"ElementaryTypeName","src":"1968:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11910,"mutability":"mutable","name":"aaay","nameLocation":"2004:4:67","nodeType":"VariableDeclaration","scope":11917,"src":"1996:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11909,"name":"uint256","nodeType":"ElementaryTypeName","src":"1996:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11912,"mutability":"mutable","name":"payoutPercentage","nameLocation":"2092:16:67","nodeType":"VariableDeclaration","scope":11917,"src":"2084:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11911,"name":"uint256","nodeType":"ElementaryTypeName","src":"2084:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11914,"mutability":"mutable","name":"createdAt","nameLocation":"2186:9:67","nodeType":"VariableDeclaration","scope":11917,"src":"2178:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11913,"name":"uint256","nodeType":"ElementaryTypeName","src":"2178:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11916,"mutability":"mutable","name":"updatedAt","nameLocation":"2213:9:67","nodeType":"VariableDeclaration","scope":11917,"src":"2205:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11915,"name":"uint256","nodeType":"ElementaryTypeName","src":"2205:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Risk","nameLocation":"1343:4:67","nodeType":"StructDefinition","scope":13585,"src":"1336:893:67","visibility":"public"},{"constant":false,"id":11919,"mutability":"mutable","name":"_oracleId","nameLocation":"2251:9:67","nodeType":"VariableDeclaration","scope":13585,"src":"2235:25:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11918,"name":"uint256","nodeType":"ElementaryTypeName","src":"2235:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":11922,"mutability":"mutable","name":"_token","nameLocation":"2281:6:67","nodeType":"VariableDeclaration","scope":13585,"src":"2266:21:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":11921,"nodeType":"UserDefinedTypeName","pathNode":{"id":11920,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"2266:6:67"},"referencedDeclaration":8831,"src":"2266:6:67","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"private"},{"constant":false,"id":11925,"mutability":"mutable","name":"_riskIds","nameLocation":"2313:8:67","nodeType":"VariableDeclaration","scope":13585,"src":"2294:27:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2294:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11924,"nodeType":"ArrayTypeName","src":"2294:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"constant":false,"id":11930,"mutability":"mutable","name":"_risks","nameLocation":"2373:6:67","nodeType":"VariableDeclaration","scope":13585,"src":"2327:52:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk)"},"typeName":{"id":11929,"keyType":{"id":11926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2335:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2327:37:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk)"},"valueType":{"id":11928,"nodeType":"UserDefinedTypeName","pathNode":{"id":11927,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"2359:4:67"},"referencedDeclaration":11917,"src":"2359:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}}},"visibility":"private"},{"constant":false,"id":11935,"mutability":"mutable","name":"_policies","nameLocation":"2468:9:67","nodeType":"VariableDeclaration","scope":13585,"src":"2385:92:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set)"},"typeName":{"id":11934,"keyType":{"id":11931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2393:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2385:74:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set)"},"valueType":{"id":11933,"nodeType":"UserDefinedTypeName","pathNode":{"id":11932,"name":"EnumerableSet.Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"2417:24:67"},"referencedDeclaration":11045,"src":"2417:24:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}}},"visibility":"private"},{"constant":false,"id":11938,"mutability":"mutable","name":"_applications","nameLocation":"2502:13:67","nodeType":"VariableDeclaration","scope":13585,"src":"2483:32:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11936,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2483:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11937,"nodeType":"ArrayTypeName","src":"2483:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"anonymous":false,"id":11948,"name":"LogAyiiPolicyApplicationCreated","nameLocation":"2583:31:67","nodeType":"EventDefinition","parameters":{"id":11947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11940,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"2623:8:67","nodeType":"VariableDeclaration","scope":11948,"src":"2615:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11939,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2615:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11942,"indexed":false,"mutability":"mutable","name":"policyHolder","nameLocation":"2641:12:67","nodeType":"VariableDeclaration","scope":11948,"src":"2633:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11941,"name":"address","nodeType":"ElementaryTypeName","src":"2633:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11944,"indexed":false,"mutability":"mutable","name":"premiumAmount","nameLocation":"2663:13:67","nodeType":"VariableDeclaration","scope":11948,"src":"2655:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11943,"name":"uint256","nodeType":"ElementaryTypeName","src":"2655:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11946,"indexed":false,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"2686:16:67","nodeType":"VariableDeclaration","scope":11948,"src":"2678:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11945,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2614:89:67"},"src":"2577:127:67"},{"anonymous":false,"id":11958,"name":"LogAyiiPolicyCreated","nameLocation":"2715:20:67","nodeType":"EventDefinition","parameters":{"id":11957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11950,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"2744:8:67","nodeType":"VariableDeclaration","scope":11958,"src":"2736:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11949,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2736:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11952,"indexed":false,"mutability":"mutable","name":"policyHolder","nameLocation":"2762:12:67","nodeType":"VariableDeclaration","scope":11958,"src":"2754:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11951,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11954,"indexed":false,"mutability":"mutable","name":"premiumAmount","nameLocation":"2784:13:67","nodeType":"VariableDeclaration","scope":11958,"src":"2776:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11953,"name":"uint256","nodeType":"ElementaryTypeName","src":"2776:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11956,"indexed":false,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"2807:16:67","nodeType":"VariableDeclaration","scope":11958,"src":"2799:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11955,"name":"uint256","nodeType":"ElementaryTypeName","src":"2799:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2735:89:67"},"src":"2709:116:67"},{"anonymous":false,"id":11968,"name":"LogAyiiRiskDataCreated","nameLocation":"2836:22:67","nodeType":"EventDefinition","parameters":{"id":11967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11960,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"2867:6:67","nodeType":"VariableDeclaration","scope":11968,"src":"2859:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11959,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2859:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11962,"indexed":false,"mutability":"mutable","name":"productId","nameLocation":"2883:9:67","nodeType":"VariableDeclaration","scope":11968,"src":"2875:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11961,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2875:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11964,"indexed":false,"mutability":"mutable","name":"uaiId","nameLocation":"2902:5:67","nodeType":"VariableDeclaration","scope":11968,"src":"2894:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11963,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2894:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11966,"indexed":false,"mutability":"mutable","name":"cropId","nameLocation":"2917:6:67","nodeType":"VariableDeclaration","scope":11968,"src":"2909:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11965,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2909:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2858:66:67"},"src":"2830:95:67"},{"anonymous":false,"id":11980,"name":"LogAyiiRiskDataBeforeAdjustment","nameLocation":"2936:31:67","nodeType":"EventDefinition","parameters":{"id":11979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11970,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"2976:6:67","nodeType":"VariableDeclaration","scope":11980,"src":"2968:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2968:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11972,"indexed":false,"mutability":"mutable","name":"trigger","nameLocation":"2992:7:67","nodeType":"VariableDeclaration","scope":11980,"src":"2984:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11971,"name":"uint256","nodeType":"ElementaryTypeName","src":"2984:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11974,"indexed":false,"mutability":"mutable","name":"exit","nameLocation":"3009:4:67","nodeType":"VariableDeclaration","scope":11980,"src":"3001:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11973,"name":"uint256","nodeType":"ElementaryTypeName","src":"3001:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11976,"indexed":false,"mutability":"mutable","name":"tsi","nameLocation":"3023:3:67","nodeType":"VariableDeclaration","scope":11980,"src":"3015:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11975,"name":"uint256","nodeType":"ElementaryTypeName","src":"3015:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11978,"indexed":false,"mutability":"mutable","name":"aph","nameLocation":"3033:3:67","nodeType":"VariableDeclaration","scope":11980,"src":"3028:8:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11977,"name":"uint","nodeType":"ElementaryTypeName","src":"3028:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2967:70:67"},"src":"2930:108:67"},{"anonymous":false,"id":11992,"name":"LogAyiiRiskDataAfterAdjustment","nameLocation":"3049:30:67","nodeType":"EventDefinition","parameters":{"id":11991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11982,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"3088:6:67","nodeType":"VariableDeclaration","scope":11992,"src":"3080:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3080:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11984,"indexed":false,"mutability":"mutable","name":"trigger","nameLocation":"3104:7:67","nodeType":"VariableDeclaration","scope":11992,"src":"3096:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11983,"name":"uint256","nodeType":"ElementaryTypeName","src":"3096:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11986,"indexed":false,"mutability":"mutable","name":"exit","nameLocation":"3121:4:67","nodeType":"VariableDeclaration","scope":11992,"src":"3113:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11985,"name":"uint256","nodeType":"ElementaryTypeName","src":"3113:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11988,"indexed":false,"mutability":"mutable","name":"tsi","nameLocation":"3135:3:67","nodeType":"VariableDeclaration","scope":11992,"src":"3127:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11987,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11990,"indexed":false,"mutability":"mutable","name":"aph","nameLocation":"3145:3:67","nodeType":"VariableDeclaration","scope":11992,"src":"3140:8:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11989,"name":"uint","nodeType":"ElementaryTypeName","src":"3140:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3079:70:67"},"src":"3043:107:67"},{"anonymous":false,"id":12004,"name":"LogAyiiRiskDataRequested","nameLocation":"3161:24:67","nodeType":"EventDefinition","parameters":{"id":12003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11994,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"3194:9:67","nodeType":"VariableDeclaration","scope":12004,"src":"3186:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11993,"name":"uint256","nodeType":"ElementaryTypeName","src":"3186:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11996,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"3213:6:67","nodeType":"VariableDeclaration","scope":12004,"src":"3205:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3205:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11998,"indexed":false,"mutability":"mutable","name":"projectId","nameLocation":"3229:9:67","nodeType":"VariableDeclaration","scope":12004,"src":"3221:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11997,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3221:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12000,"indexed":false,"mutability":"mutable","name":"uaiId","nameLocation":"3248:5:67","nodeType":"VariableDeclaration","scope":12004,"src":"3240:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3240:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12002,"indexed":false,"mutability":"mutable","name":"cropId","nameLocation":"3263:6:67","nodeType":"VariableDeclaration","scope":12004,"src":"3255:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3255:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3185:85:67"},"src":"3155:116:67"},{"anonymous":false,"id":12012,"name":"LogAyiiRiskDataReceived","nameLocation":"3282:23:67","nodeType":"EventDefinition","parameters":{"id":12011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12006,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"3314:9:67","nodeType":"VariableDeclaration","scope":12012,"src":"3306:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12005,"name":"uint256","nodeType":"ElementaryTypeName","src":"3306:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12008,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"3333:6:67","nodeType":"VariableDeclaration","scope":12012,"src":"3325:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3325:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12010,"indexed":false,"mutability":"mutable","name":"aaay","nameLocation":"3349:4:67","nodeType":"VariableDeclaration","scope":12012,"src":"3341:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12009,"name":"uint256","nodeType":"ElementaryTypeName","src":"3341:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3305:49:67"},"src":"3276:79:67"},{"anonymous":false,"id":12018,"name":"LogAyiiRiskDataRequestCancelled","nameLocation":"3366:31:67","nodeType":"EventDefinition","parameters":{"id":12017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12014,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"3406:9:67","nodeType":"VariableDeclaration","scope":12018,"src":"3398:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3398:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12016,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"3425:9:67","nodeType":"VariableDeclaration","scope":12018,"src":"3417:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12015,"name":"uint256","nodeType":"ElementaryTypeName","src":"3417:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3397:38:67"},"src":"3360:76:67"},{"anonymous":false,"id":12024,"name":"LogAyiiRiskProcessed","nameLocation":"3447:20:67","nodeType":"EventDefinition","parameters":{"id":12023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12020,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"3476:6:67","nodeType":"VariableDeclaration","scope":12024,"src":"3468:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3468:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12022,"indexed":false,"mutability":"mutable","name":"policies","nameLocation":"3492:8:67","nodeType":"VariableDeclaration","scope":12024,"src":"3484:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12021,"name":"uint256","nodeType":"ElementaryTypeName","src":"3484:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3467:34:67"},"src":"3441:61:67"},{"anonymous":false,"id":12028,"name":"LogAyiiPolicyProcessed","nameLocation":"3513:22:67","nodeType":"EventDefinition","parameters":{"id":12027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12026,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"3544:8:67","nodeType":"VariableDeclaration","scope":12028,"src":"3536:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3536:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3535:18:67"},"src":"3507:47:67"},{"anonymous":false,"id":12036,"name":"LogAyiiClaimCreated","nameLocation":"3565:19:67","nodeType":"EventDefinition","parameters":{"id":12035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12030,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"3593:8:67","nodeType":"VariableDeclaration","scope":12036,"src":"3585:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3585:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12032,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"3611:7:67","nodeType":"VariableDeclaration","scope":12036,"src":"3603:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12031,"name":"uint256","nodeType":"ElementaryTypeName","src":"3603:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12034,"indexed":false,"mutability":"mutable","name":"payoutAmount","nameLocation":"3628:12:67","nodeType":"VariableDeclaration","scope":12036,"src":"3620:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12033,"name":"uint256","nodeType":"ElementaryTypeName","src":"3620:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3584:57:67"},"src":"3559:83:67"},{"anonymous":false,"id":12042,"name":"LogAyiiPayoutCreated","nameLocation":"3653:20:67","nodeType":"EventDefinition","parameters":{"id":12041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12038,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"3682:8:67","nodeType":"VariableDeclaration","scope":12042,"src":"3674:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3674:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12040,"indexed":false,"mutability":"mutable","name":"payoutAmount","nameLocation":"3700:12:67","nodeType":"VariableDeclaration","scope":12042,"src":"3692:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12039,"name":"uint256","nodeType":"ElementaryTypeName","src":"3692:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3673:40:67"},"src":"3647:67:67"},{"anonymous":false,"id":12050,"name":"LogTransferHelperInputValidation1Failed","nameLocation":"3726:39:67","nodeType":"EventDefinition","parameters":{"id":12049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12044,"indexed":false,"mutability":"mutable","name":"tokenIsContract","nameLocation":"3771:15:67","nodeType":"VariableDeclaration","scope":12050,"src":"3766:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12043,"name":"bool","nodeType":"ElementaryTypeName","src":"3766:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12046,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"3796:4:67","nodeType":"VariableDeclaration","scope":12050,"src":"3788:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12045,"name":"address","nodeType":"ElementaryTypeName","src":"3788:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12048,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"3810:2:67","nodeType":"VariableDeclaration","scope":12050,"src":"3802:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12047,"name":"address","nodeType":"ElementaryTypeName","src":"3802:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3765:48:67"},"src":"3720:94:67"},{"anonymous":false,"id":12056,"name":"LogTransferHelperInputValidation2Failed","nameLocation":"3825:39:67","nodeType":"EventDefinition","parameters":{"id":12055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12052,"indexed":false,"mutability":"mutable","name":"balance","nameLocation":"3873:7:67","nodeType":"VariableDeclaration","scope":12056,"src":"3865:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12051,"name":"uint256","nodeType":"ElementaryTypeName","src":"3865:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12054,"indexed":false,"mutability":"mutable","name":"allowance","nameLocation":"3890:9:67","nodeType":"VariableDeclaration","scope":12056,"src":"3882:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12053,"name":"uint256","nodeType":"ElementaryTypeName","src":"3882:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3864:36:67"},"src":"3819:82:67"},{"anonymous":false,"id":12064,"name":"LogTransferHelperCallFailed","nameLocation":"3912:27:67","nodeType":"EventDefinition","parameters":{"id":12063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12058,"indexed":false,"mutability":"mutable","name":"callSuccess","nameLocation":"3945:11:67","nodeType":"VariableDeclaration","scope":12064,"src":"3940:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12057,"name":"bool","nodeType":"ElementaryTypeName","src":"3940:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12060,"indexed":false,"mutability":"mutable","name":"returnDataLength","nameLocation":"3966:16:67","nodeType":"VariableDeclaration","scope":12064,"src":"3958:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12059,"name":"uint256","nodeType":"ElementaryTypeName","src":"3958:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12062,"indexed":false,"mutability":"mutable","name":"returnData","nameLocation":"3990:10:67","nodeType":"VariableDeclaration","scope":12064,"src":"3984:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12061,"name":"bytes","nodeType":"ElementaryTypeName","src":"3984:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3939:62:67"},"src":"3906:96:67"},{"body":{"id":12107,"nodeType":"Block","src":"4258:167:67","statements":[{"expression":{"id":12090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12086,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11922,"src":"4268:6:67","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12088,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12070,"src":"4284:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12087,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8831,"src":"4277:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$8831_$","typeString":"type(contract IERC20)"}},"id":12089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4277:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"src":"4268:22:67","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":12091,"nodeType":"ExpressionStatement","src":"4268:22:67"},{"expression":{"id":12094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12092,"name":"_oracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11919,"src":"4300:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12093,"name":"oracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12072,"src":"4312:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4300:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12095,"nodeType":"ExpressionStatement","src":"4300:20:67"},{"expression":{"arguments":[{"id":12097,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"4342:18:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":12098,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4362:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4362:12:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12096,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7053,"src":"4331:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":12100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4331:44:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12101,"nodeType":"ExpressionStatement","src":"4331:44:67"},{"expression":{"arguments":[{"id":12103,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"4396:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12104,"name":"insurer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12076,"src":"4410:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12102,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7053,"src":"4385:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":12105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4385:33:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12106,"nodeType":"ExpressionStatement","src":"4385:33:67"}]},"id":12108,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":12079,"name":"productName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12066,"src":"4199:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12080,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12070,"src":"4212:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12081,"name":"POLICY_FLOW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11855,"src":"4219:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12082,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12074,"src":"4232:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12083,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12068,"src":"4244:8:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":12084,"modifierName":{"id":12078,"name":"Product","nodeType":"IdentifierPath","referencedDeclaration":4042,"src":"4191:7:67"},"nodeType":"ModifierInvocation","src":"4191:62:67"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12066,"mutability":"mutable","name":"productName","nameLocation":"4037:11:67","nodeType":"VariableDeclaration","scope":12108,"src":"4029:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4029:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12068,"mutability":"mutable","name":"registry","nameLocation":"4066:8:67","nodeType":"VariableDeclaration","scope":12108,"src":"4058:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12067,"name":"address","nodeType":"ElementaryTypeName","src":"4058:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12070,"mutability":"mutable","name":"token","nameLocation":"4092:5:67","nodeType":"VariableDeclaration","scope":12108,"src":"4084:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12069,"name":"address","nodeType":"ElementaryTypeName","src":"4084:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12072,"mutability":"mutable","name":"oracleId","nameLocation":"4115:8:67","nodeType":"VariableDeclaration","scope":12108,"src":"4107:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12071,"name":"uint256","nodeType":"ElementaryTypeName","src":"4107:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12074,"mutability":"mutable","name":"riskpoolId","nameLocation":"4141:10:67","nodeType":"VariableDeclaration","scope":12108,"src":"4133:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12073,"name":"uint256","nodeType":"ElementaryTypeName","src":"4133:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12076,"mutability":"mutable","name":"insurer","nameLocation":"4169:7:67","nodeType":"VariableDeclaration","scope":12108,"src":"4161:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12075,"name":"address","nodeType":"ElementaryTypeName","src":"4161:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4019:163:67"},"returnParameters":{"id":12085,"nodeType":"ParameterList","parameters":[],"src":"4258:0:67"},"scope":13585,"src":"4008:417:67","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":12239,"nodeType":"Block","src":"4704:769:67","statements":[{"expression":{"arguments":[{"id":12131,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12116,"src":"4738:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12132,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12118,"src":"4747:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12133,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12120,"src":"4753:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12134,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12122,"src":"4758:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12130,"name":"_validateRiskParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13465,"src":"4714:23:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":12135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4714:48:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12136,"nodeType":"ExpressionStatement","src":"4714:48:67"},{"expression":{"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12137,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12128,"src":"4773:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12139,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12110,"src":"4792:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12140,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12112,"src":"4803:5:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12141,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12114,"src":"4810:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12138,"name":"getRiskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12364,"src":"4782:9:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":12142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4782:35:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4773:44:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12144,"nodeType":"ExpressionStatement","src":"4773:44:67"},{"expression":{"arguments":[{"id":12148,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12128,"src":"4841:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12145,"name":"_riskIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11925,"src":"4827:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"4827:13:67","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":12149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4827:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12150,"nodeType":"ExpressionStatement","src":"4827:21:67"},{"assignments":[12153],"declarations":[{"constant":false,"id":12153,"mutability":"mutable","name":"risk","nameLocation":"4872:4:67","nodeType":"VariableDeclaration","scope":12239,"src":"4859:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12152,"nodeType":"UserDefinedTypeName","pathNode":{"id":12151,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"4859:4:67"},"referencedDeclaration":11917,"src":"4859:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12157,"initialValue":{"baseExpression":{"id":12154,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"4879:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12156,"indexExpression":{"id":12155,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12128,"src":"4886:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4879:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4859:34:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12159,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"4911:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"4911:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4929:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4911:19:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3030313a5249534b5f414c52454144595f455849535453","id":12163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4932:35:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1a84a551284060b76b600a286108f6c04d1bc2ac8241df44449fd27fa94a00a","typeString":"literal_string \"ERROR:AYI-001:RISK_ALREADY_EXISTS\""},"value":"ERROR:AYI-001:RISK_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e1a84a551284060b76b600a286108f6c04d1bc2ac8241df44449fd27fa94a00a","typeString":"literal_string \"ERROR:AYI-001:RISK_ALREADY_EXISTS\""}],"id":12158,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4903:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4903:65:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12165,"nodeType":"ExpressionStatement","src":"4903:65:67"},{"expression":{"id":12170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12166,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"4979:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"4979:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12169,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12128,"src":"4989:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4979:16:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12171,"nodeType":"ExpressionStatement","src":"4979:16:67"},{"expression":{"id":12176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12172,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5005:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"projectId","nodeType":"MemberAccess","referencedDeclaration":11890,"src":"5005:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12175,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12110,"src":"5022:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5005:26:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12177,"nodeType":"ExpressionStatement","src":"5005:26:67"},{"expression":{"id":12182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12178,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5041:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"uaiId","nodeType":"MemberAccess","referencedDeclaration":11892,"src":"5041:10:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12181,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12112,"src":"5054:5:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5041:18:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12183,"nodeType":"ExpressionStatement","src":"5041:18:67"},{"expression":{"id":12188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12184,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5069:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"cropId","nodeType":"MemberAccess","referencedDeclaration":11894,"src":"5069:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12187,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12114,"src":"5083:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5069:20:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12189,"nodeType":"ExpressionStatement","src":"5069:20:67"},{"expression":{"id":12194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12190,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5099:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"trigger","nodeType":"MemberAccess","referencedDeclaration":11896,"src":"5099:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12193,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12116,"src":"5114:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12195,"nodeType":"ExpressionStatement","src":"5099:22:67"},{"expression":{"id":12200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12196,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5131:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"exit","nodeType":"MemberAccess","referencedDeclaration":11898,"src":"5131:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12199,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12118,"src":"5143:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5131:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12201,"nodeType":"ExpressionStatement","src":"5131:16:67"},{"expression":{"id":12206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12202,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5157:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tsi","nodeType":"MemberAccess","referencedDeclaration":11900,"src":"5157:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12205,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12120,"src":"5168:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5157:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12207,"nodeType":"ExpressionStatement","src":"5157:14:67"},{"expression":{"id":12212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12208,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5181:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"aph","nodeType":"MemberAccess","referencedDeclaration":11902,"src":"5181:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12211,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12122,"src":"5192:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5181:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12213,"nodeType":"ExpressionStatement","src":"5181:14:67"},{"expression":{"id":12219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12214,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5205:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"5205:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12217,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"5222:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5222:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5205:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12220,"nodeType":"ExpressionStatement","src":"5205:32:67"},{"expression":{"id":12226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12221,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5271:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":11916,"src":"5271:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12224,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"5288:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5288:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5271:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12227,"nodeType":"ExpressionStatement","src":"5271:32:67"},{"eventCall":{"arguments":[{"expression":{"id":12229,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5379:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"5379:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12231,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5401:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"projectId","nodeType":"MemberAccess","referencedDeclaration":11890,"src":"5401:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12233,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5429:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"uaiId","nodeType":"MemberAccess","referencedDeclaration":11892,"src":"5429:10:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12235,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5454:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"cropId","nodeType":"MemberAccess","referencedDeclaration":11894,"src":"5454:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12228,"name":"LogAyiiRiskDataCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11968,"src":"5343:22:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32,bytes32)"}},"id":12237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5343:123:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12238,"nodeType":"EmitStatement","src":"5338:128:67"}]},"functionSelector":"3dc5f58e","id":12240,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12125,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"4654:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12126,"modifierName":{"id":12124,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"4645:8:67"},"nodeType":"ModifierInvocation","src":"4645:22:67"}],"name":"createRisk","nameLocation":"4440:10:67","nodeType":"FunctionDefinition","parameters":{"id":12123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12110,"mutability":"mutable","name":"projectId","nameLocation":"4468:9:67","nodeType":"VariableDeclaration","scope":12240,"src":"4460:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4460:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12112,"mutability":"mutable","name":"uaiId","nameLocation":"4495:5:67","nodeType":"VariableDeclaration","scope":12240,"src":"4487:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4487:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12114,"mutability":"mutable","name":"cropId","nameLocation":"4518:6:67","nodeType":"VariableDeclaration","scope":12240,"src":"4510:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4510:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12116,"mutability":"mutable","name":"trigger","nameLocation":"4542:7:67","nodeType":"VariableDeclaration","scope":12240,"src":"4534:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12115,"name":"uint256","nodeType":"ElementaryTypeName","src":"4534:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12118,"mutability":"mutable","name":"exit","nameLocation":"4567:4:67","nodeType":"VariableDeclaration","scope":12240,"src":"4559:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12117,"name":"uint256","nodeType":"ElementaryTypeName","src":"4559:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12120,"mutability":"mutable","name":"tsi","nameLocation":"4589:3:67","nodeType":"VariableDeclaration","scope":12240,"src":"4581:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4581:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12122,"mutability":"mutable","name":"aph","nameLocation":"4610:3:67","nodeType":"VariableDeclaration","scope":12240,"src":"4602:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12121,"name":"uint256","nodeType":"ElementaryTypeName","src":"4602:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4450:169:67"},"returnParameters":{"id":12129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12128,"mutability":"mutable","name":"riskId","nameLocation":"4692:6:67","nodeType":"VariableDeclaration","scope":12240,"src":"4684:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12127,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4684:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4683:16:67"},"scope":13585,"src":"4431:1042:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12340,"nodeType":"Block","src":"5670:733:67","statements":[{"expression":{"arguments":[{"id":12257,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12244,"src":"5704:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12258,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"5713:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12259,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12248,"src":"5719:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12260,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12250,"src":"5724:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12256,"name":"_validateRiskParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13465,"src":"5680:23:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":12261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5680:48:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12262,"nodeType":"ExpressionStatement","src":"5680:48:67"},{"assignments":[12265],"declarations":[{"constant":false,"id":12265,"mutability":"mutable","name":"risk","nameLocation":"5752:4:67","nodeType":"VariableDeclaration","scope":12340,"src":"5739:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12264,"nodeType":"UserDefinedTypeName","pathNode":{"id":12263,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"5739:4:67"},"referencedDeclaration":11917,"src":"5739:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12269,"initialValue":{"baseExpression":{"id":12266,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"5759:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12268,"indexExpression":{"id":12267,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12242,"src":"5766:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5759:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5739:34:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12271,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"5791:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"5791:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5808:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5791:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3030323a5249534b5f554e4b4e4f574e","id":12275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5811:28:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_e50d6e107b97b06a6b4ebbb835c4ac409d87bd844c914bf49d6502833d8ba34e","typeString":"literal_string \"ERROR:AYI-002:RISK_UNKNOWN\""},"value":"ERROR:AYI-002:RISK_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e50d6e107b97b06a6b4ebbb835c4ac409d87bd844c914bf49d6502833d8ba34e","typeString":"literal_string \"ERROR:AYI-002:RISK_UNKNOWN\""}],"id":12270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5783:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5783:57:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12277,"nodeType":"ExpressionStatement","src":"5783:57:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":12281,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"5879:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":12283,"indexExpression":{"id":12282,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12242,"src":"5889:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5879:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":12279,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"5858:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":12280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"5858:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":12284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5858:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5901:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5858:44:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3030333a5249534b5f574954485f504f4c49434945535f4e4f545f41444a55535441424c45","id":12287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5904:49:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_f422cac3b534a9ed752cfd161d8b473b386119366ac0d8f2b3a828e1526d99f3","typeString":"literal_string \"ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE\""},"value":"ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f422cac3b534a9ed752cfd161d8b473b386119366ac0d8f2b3a828e1526d99f3","typeString":"literal_string \"ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE\""}],"id":12278,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5850:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5850:104:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12289,"nodeType":"ExpressionStatement","src":"5850:104:67"},{"eventCall":{"arguments":[{"expression":{"id":12291,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6015:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"6015:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12293,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6037:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"trigger","nodeType":"MemberAccess","referencedDeclaration":11896,"src":"6037:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12295,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6063:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exit","nodeType":"MemberAccess","referencedDeclaration":11898,"src":"6063:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12297,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6087:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tsi","nodeType":"MemberAccess","referencedDeclaration":11900,"src":"6087:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12299,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6109:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"aph","nodeType":"MemberAccess","referencedDeclaration":11902,"src":"6109:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12290,"name":"LogAyiiRiskDataBeforeAdjustment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11980,"src":"5970:31:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256,uint256,uint256)"}},"id":12301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5970:148:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12302,"nodeType":"EmitStatement","src":"5965:153:67"},{"expression":{"id":12307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12303,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6137:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"trigger","nodeType":"MemberAccess","referencedDeclaration":11896,"src":"6137:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12306,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12244,"src":"6152:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6137:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12308,"nodeType":"ExpressionStatement","src":"6137:22:67"},{"expression":{"id":12313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12309,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6169:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"exit","nodeType":"MemberAccess","referencedDeclaration":11898,"src":"6169:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12312,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"6181:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6169:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12314,"nodeType":"ExpressionStatement","src":"6169:16:67"},{"expression":{"id":12319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12315,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6195:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tsi","nodeType":"MemberAccess","referencedDeclaration":11900,"src":"6195:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12318,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12248,"src":"6206:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6195:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12320,"nodeType":"ExpressionStatement","src":"6195:14:67"},{"expression":{"id":12325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12321,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6219:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"aph","nodeType":"MemberAccess","referencedDeclaration":11902,"src":"6219:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12324,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12250,"src":"6230:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6219:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12326,"nodeType":"ExpressionStatement","src":"6219:14:67"},{"eventCall":{"arguments":[{"expression":{"id":12328,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6293:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"6293:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12330,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6315:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"trigger","nodeType":"MemberAccess","referencedDeclaration":11896,"src":"6315:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12332,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6341:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exit","nodeType":"MemberAccess","referencedDeclaration":11898,"src":"6341:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12334,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6365:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tsi","nodeType":"MemberAccess","referencedDeclaration":11900,"src":"6365:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12336,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6387:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"aph","nodeType":"MemberAccess","referencedDeclaration":11902,"src":"6387:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12327,"name":"LogAyiiRiskDataAfterAdjustment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11992,"src":"6249:30:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256,uint256,uint256)"}},"id":12338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6249:147:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12339,"nodeType":"EmitStatement","src":"6244:152:67"}]},"functionSelector":"78a433a5","id":12341,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12253,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"5652:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12254,"modifierName":{"id":12252,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"5643:8:67"},"nodeType":"ModifierInvocation","src":"5643:22:67"}],"name":"adjustRisk","nameLocation":"5488:10:67","nodeType":"FunctionDefinition","parameters":{"id":12251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12242,"mutability":"mutable","name":"riskId","nameLocation":"5516:6:67","nodeType":"VariableDeclaration","scope":12341,"src":"5508:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5508:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12244,"mutability":"mutable","name":"trigger","nameLocation":"5540:7:67","nodeType":"VariableDeclaration","scope":12341,"src":"5532:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12243,"name":"uint256","nodeType":"ElementaryTypeName","src":"5532:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12246,"mutability":"mutable","name":"exit","nameLocation":"5565:4:67","nodeType":"VariableDeclaration","scope":12341,"src":"5557:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12245,"name":"uint256","nodeType":"ElementaryTypeName","src":"5557:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12248,"mutability":"mutable","name":"tsi","nameLocation":"5587:3:67","nodeType":"VariableDeclaration","scope":12341,"src":"5579:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12247,"name":"uint256","nodeType":"ElementaryTypeName","src":"5579:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12250,"mutability":"mutable","name":"aph","nameLocation":"5608:3:67","nodeType":"VariableDeclaration","scope":12341,"src":"5600:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12249,"name":"uint256","nodeType":"ElementaryTypeName","src":"5600:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5498:119:67"},"returnParameters":{"id":12255,"nodeType":"ParameterList","parameters":[],"src":"5670:0:67"},"scope":13585,"src":"5479:924:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12363,"nodeType":"Block","src":"6572:73:67","statements":[{"expression":{"id":12361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12352,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12350,"src":"6582:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":12356,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"6612:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12357,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12345,"src":"6623:5:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12358,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12347,"src":"6630:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6601:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"6601:10:67","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6601:36:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12353,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"6591:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6591:47:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6582:56:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12362,"nodeType":"ExpressionStatement","src":"6582:56:67"}]},"functionSelector":"e9960d8a","id":12364,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskId","nameLocation":"6418:9:67","nodeType":"FunctionDefinition","parameters":{"id":12348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12343,"mutability":"mutable","name":"projectId","nameLocation":"6445:9:67","nodeType":"VariableDeclaration","scope":12364,"src":"6437:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6437:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12345,"mutability":"mutable","name":"uaiId","nameLocation":"6472:5:67","nodeType":"VariableDeclaration","scope":12364,"src":"6464:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6464:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12347,"mutability":"mutable","name":"cropId","nameLocation":"6495:6:67","nodeType":"VariableDeclaration","scope":12364,"src":"6487:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12346,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6487:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6427:80:67"},"returnParameters":{"id":12351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12350,"mutability":"mutable","name":"riskId","nameLocation":"6560:6:67","nodeType":"VariableDeclaration","scope":12364,"src":"6552:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6552:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6551:16:67"},"scope":13585,"src":"6409:236:67","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":12464,"nodeType":"Block","src":"6880:945:67","statements":[{"assignments":[12382],"declarations":[{"constant":false,"id":12382,"mutability":"mutable","name":"risk","nameLocation":"6903:4:67","nodeType":"VariableDeclaration","scope":12464,"src":"6890:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12381,"nodeType":"UserDefinedTypeName","pathNode":{"id":12380,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"6890:4:67"},"referencedDeclaration":11917,"src":"6890:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12386,"initialValue":{"baseExpression":{"id":12383,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"6910:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12385,"indexExpression":{"id":12384,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12372,"src":"6917:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6910:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6890:34:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12388,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"6942:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"6942:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6959:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6942:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3030343a5249534b5f554e444546494e4544","id":12392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6962:30:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd75e4d2b94b2d8ff6b0403850d1167c5b6fa118aa13973f47a4b7f7d7ee5f5f","typeString":"literal_string \"ERROR:AYI-004:RISK_UNDEFINED\""},"value":"ERROR:AYI-004:RISK_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd75e4d2b94b2d8ff6b0403850d1167c5b6fa118aa13973f47a4b7f7d7ee5f5f","typeString":"literal_string \"ERROR:AYI-004:RISK_UNDEFINED\""}],"id":12387,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6934:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6934:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12394,"nodeType":"ExpressionStatement","src":"6934:59:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12396,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12366,"src":"7011:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7035:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7027:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12397,"name":"address","nodeType":"ElementaryTypeName","src":"7027:7:67","typeDescriptions":{}}},"id":12400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7027:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7011:26:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3030353a504f4c4943595f484f4c4445525f5a45524f","id":12402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7039:34:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_74007f953b79ec853cb87103ec9504ec665b2c9164be7516bbc8c84925b56cec","typeString":"literal_string \"ERROR:AYI-005:POLICY_HOLDER_ZERO\""},"value":"ERROR:AYI-005:POLICY_HOLDER_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74007f953b79ec853cb87103ec9504ec665b2c9164be7516bbc8c84925b56cec","typeString":"literal_string \"ERROR:AYI-005:POLICY_HOLDER_ZERO\""}],"id":12395,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7003:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7003:71:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12404,"nodeType":"ExpressionStatement","src":"7003:71:67"},{"assignments":[12406],"declarations":[{"constant":false,"id":12406,"mutability":"mutable","name":"metaData","nameLocation":"7098:8:67","nodeType":"VariableDeclaration","scope":12464,"src":"7085:21:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12405,"name":"bytes","nodeType":"ElementaryTypeName","src":"7085:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12408,"initialValue":{"hexValue":"","id":12407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7109:2:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"nodeType":"VariableDeclarationStatement","src":"7085:26:67"},{"assignments":[12410],"declarations":[{"constant":false,"id":12410,"mutability":"mutable","name":"applicationData","nameLocation":"7134:15:67","nodeType":"VariableDeclaration","scope":12464,"src":"7121:28:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12409,"name":"bytes","nodeType":"ElementaryTypeName","src":"7121:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12415,"initialValue":{"arguments":[{"id":12413,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12372,"src":"7163:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"7152:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"7152:10:67","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7152:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7121:49:67"},{"expression":{"id":12424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12416,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7181:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12418,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12366,"src":"7222:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12419,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12368,"src":"7249:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12420,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12370,"src":"7271:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12421,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12406,"src":"7295:8:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12422,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"7317:15:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12417,"name":"_newApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"7193:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) returns (bytes32)"}},"id":12423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7193:140:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7181:152:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12425,"nodeType":"ExpressionStatement","src":"7181:152:67"},{"expression":{"arguments":[{"id":12429,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7363:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12426,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11938,"src":"7344:13:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"7344:18:67","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":12430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7344:29:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12431,"nodeType":"ExpressionStatement","src":"7344:29:67"},{"eventCall":{"arguments":[{"id":12433,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7434:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12434,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12366,"src":"7458:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12435,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12368,"src":"7485:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12436,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12370,"src":"7507:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12432,"name":"LogAyiiPolicyApplicationCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11948,"src":"7389:31:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":12437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7389:129:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12438,"nodeType":"EmitStatement","src":"7384:134:67"},{"assignments":[12440],"declarations":[{"constant":false,"id":12440,"mutability":"mutable","name":"success","nameLocation":"7534:7:67","nodeType":"VariableDeclaration","scope":12464,"src":"7529:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12439,"name":"bool","nodeType":"ElementaryTypeName","src":"7529:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":12444,"initialValue":{"arguments":[{"id":12442,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7556:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12441,"name":"_underwrite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"7544:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":12443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7544:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"7529:37:67"},{"condition":{"id":12445,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12440,"src":"7581:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12463,"nodeType":"IfStatement","src":"7577:242:67","trueBody":{"id":12462,"nodeType":"Block","src":"7590:229:67","statements":[{"expression":{"arguments":[{"baseExpression":{"id":12449,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"7622:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":12451,"indexExpression":{"id":12450,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12372,"src":"7632:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7622:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":12452,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7641:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12446,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"7604:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":12448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11063,"src":"7604:17:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":12453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7604:47:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12454,"nodeType":"ExpressionStatement","src":"7604:47:67"},{"eventCall":{"arguments":[{"id":12456,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7712:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12457,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12366,"src":"7740:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12458,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12368,"src":"7771:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12459,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12370,"src":"7797:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12455,"name":"LogAyiiPolicyCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11958,"src":"7674:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":12460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7674:134:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12461,"nodeType":"EmitStatement","src":"7669:139:67"}]}}]},"functionSelector":"4b6eb669","id":12465,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12375,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"6827:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12376,"modifierName":{"id":12374,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"6818:8:67"},"nodeType":"ModifierInvocation","src":"6818:22:67"}],"name":"applyForPolicy","nameLocation":"6661:14:67","nodeType":"FunctionDefinition","parameters":{"id":12373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12366,"mutability":"mutable","name":"policyHolder","nameLocation":"6693:12:67","nodeType":"VariableDeclaration","scope":12465,"src":"6685:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12365,"name":"address","nodeType":"ElementaryTypeName","src":"6685:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12368,"mutability":"mutable","name":"premium","nameLocation":"6724:7:67","nodeType":"VariableDeclaration","scope":12465,"src":"6716:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12367,"name":"uint256","nodeType":"ElementaryTypeName","src":"6716:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12370,"mutability":"mutable","name":"sumInsured","nameLocation":"6750:10:67","nodeType":"VariableDeclaration","scope":12465,"src":"6742:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12369,"name":"uint256","nodeType":"ElementaryTypeName","src":"6742:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12372,"mutability":"mutable","name":"riskId","nameLocation":"6778:6:67","nodeType":"VariableDeclaration","scope":12465,"src":"6770:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6770:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6675:115:67"},"returnParameters":{"id":12379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12378,"mutability":"mutable","name":"processId","nameLocation":"6865:9:67","nodeType":"VariableDeclaration","scope":12465,"src":"6857:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6857:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6856:19:67"},"scope":13585,"src":"6652:1173:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12516,"nodeType":"Block","src":"7968:518:67","statements":[{"expression":{"arguments":[{"id":12476,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12467,"src":"8049:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12475,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"8033:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":12477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8033:26:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":12478,"nodeType":"ExpressionStatement","src":"8033:26:67"},{"expression":{"id":12483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12479,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12473,"src":"8069:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12481,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12467,"src":"8091:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12480,"name":"_underwrite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"8079:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":12482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8079:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8069:32:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12484,"nodeType":"ExpressionStatement","src":"8069:32:67"},{"condition":{"id":12485,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12473,"src":"8116:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12515,"nodeType":"IfStatement","src":"8112:368:67","trueBody":{"id":12514,"nodeType":"Block","src":"8125:355:67","statements":[{"assignments":[12490],"declarations":[{"constant":false,"id":12490,"mutability":"mutable","name":"application","nameLocation":"8166:11:67","nodeType":"VariableDeclaration","scope":12514,"src":"8139:38:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":12489,"nodeType":"UserDefinedTypeName","pathNode":{"id":12488,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"8139:19:67"},"referencedDeclaration":5262,"src":"8139:19:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":12494,"initialValue":{"arguments":[{"id":12492,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12467,"src":"8196:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12491,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"8180:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":12493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8180:26:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"8139:67:67"},{"assignments":[12499],"declarations":[{"constant":false,"id":12499,"mutability":"mutable","name":"metadata","nameLocation":"8244:8:67","nodeType":"VariableDeclaration","scope":12514,"src":"8220:32:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":12498,"nodeType":"UserDefinedTypeName","pathNode":{"id":12497,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"8220:16:67"},"referencedDeclaration":5248,"src":"8220:16:67","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":12503,"initialValue":{"arguments":[{"id":12501,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12467,"src":"8268:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12500,"name":"_getMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"8255:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Metadata memory)"}},"id":12502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8255:23:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"8220:58:67"},{"eventCall":{"arguments":[{"id":12505,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12467,"src":"8335:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12506,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12499,"src":"8363:8:67","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":12507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"8363:14:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":12508,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12490,"src":"8396:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":12509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"8396:25:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12510,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12490,"src":"8440:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":12511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"8440:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12504,"name":"LogAyiiPolicyCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11958,"src":"8297:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":12512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8297:172:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12513,"nodeType":"EmitStatement","src":"8292:177:67"}]}}]},"functionSelector":"1b07b17f","id":12517,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12470,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"7920:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12471,"modifierName":{"id":12469,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"7911:8:67"},"nodeType":"ModifierInvocation","src":"7911:22:67"}],"name":"underwrite","nameLocation":"7840:10:67","nodeType":"FunctionDefinition","parameters":{"id":12468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12467,"mutability":"mutable","name":"processId","nameLocation":"7868:9:67","nodeType":"VariableDeclaration","scope":12517,"src":"7860:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12466,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7860:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7850:33:67"},"returnParameters":{"id":12474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12473,"mutability":"mutable","name":"success","nameLocation":"7955:7:67","nodeType":"VariableDeclaration","scope":12517,"src":"7950:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12472,"name":"bool","nodeType":"ElementaryTypeName","src":"7950:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7949:14:67"},"scope":13585,"src":"7831:655:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12540,"nodeType":"Block","src":"8650:71:67","statements":[{"expression":{"id":12538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":12531,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12525,"src":"8661:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12532,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12527,"src":"8670:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12533,"name":"netPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12529,"src":"8675:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12534,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"8660:26:67","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12536,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12519,"src":"8705:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12535,"name":"_collectPremium","nodeType":"Identifier","overloadedDeclarations":[3670,3695],"referencedDeclaration":3670,"src":"8689:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32) returns (bool,uint256,uint256)"}},"id":12537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8689:25:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"8660:54:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12539,"nodeType":"ExpressionStatement","src":"8660:54:67"}]},"functionSelector":"b9ea8d66","id":12541,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12522,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"8569:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12523,"modifierName":{"id":12521,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"8560:8:67"},"nodeType":"ModifierInvocation","src":"8560:22:67"}],"name":"collectPremium","nameLocation":"8501:14:67","nodeType":"FunctionDefinition","parameters":{"id":12520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12519,"mutability":"mutable","name":"policyId","nameLocation":"8524:8:67","nodeType":"VariableDeclaration","scope":12541,"src":"8516:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8516:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8515:18:67"},"returnParameters":{"id":12530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12525,"mutability":"mutable","name":"success","nameLocation":"8604:7:67","nodeType":"VariableDeclaration","scope":12541,"src":"8599:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12524,"name":"bool","nodeType":"ElementaryTypeName","src":"8599:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12527,"mutability":"mutable","name":"fee","nameLocation":"8621:3:67","nodeType":"VariableDeclaration","scope":12541,"src":"8613:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12526,"name":"uint256","nodeType":"ElementaryTypeName","src":"8613:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12529,"mutability":"mutable","name":"netPremium","nameLocation":"8634:10:67","nodeType":"VariableDeclaration","scope":12541,"src":"8626:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12528,"name":"uint256","nodeType":"ElementaryTypeName","src":"8626:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8598:47:67"},"scope":13585,"src":"8492:229:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12604,"nodeType":"Block","src":"9334:418:67","statements":[{"assignments":[12563],"declarations":[{"constant":false,"id":12563,"mutability":"mutable","name":"metadata","nameLocation":"9368:8:67","nodeType":"VariableDeclaration","scope":12604,"src":"9344:32:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":12562,"nodeType":"UserDefinedTypeName","pathNode":{"id":12561,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"9344:16:67"},"referencedDeclaration":5248,"src":"9344:16:67","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":12567,"initialValue":{"arguments":[{"id":12565,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12543,"src":"9392:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12564,"name":"_getMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"9379:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Metadata memory)"}},"id":12566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9379:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"9344:57:67"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12568,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12545,"src":"9416:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":12569,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12563,"src":"9424:8:67","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":12570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"9424:14:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9416:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12593,"nodeType":"IfStatement","src":"9412:261:67","trueBody":{"id":12592,"nodeType":"Block","src":"9440:233:67","statements":[{"assignments":[12573],"declarations":[{"constant":false,"id":12573,"mutability":"mutable","name":"transferSuccessful","nameLocation":"9459:18:67","nodeType":"VariableDeclaration","scope":12592,"src":"9454:23:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12572,"name":"bool","nodeType":"ElementaryTypeName","src":"9454:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":12582,"initialValue":{"arguments":[{"id":12576,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11922,"src":"9515:6:67","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":12577,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12545,"src":"9523:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":12578,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12563,"src":"9529:8:67","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":12579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"9529:14:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12547,"src":"9545:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12574,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"9480:14:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":12575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"9480:34:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":12581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9480:72:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9454:98:67"},{"condition":{"id":12584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9571:19:67","subExpression":{"id":12583,"name":"transferSuccessful","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12573,"src":"9572:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12591,"nodeType":"IfStatement","src":"9567:96:67","trueBody":{"id":12590,"nodeType":"Block","src":"9592:71:67","statements":[{"expression":{"components":[{"id":12585,"name":"transferSuccessful","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12573,"src":"9618:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"30","id":12586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9638:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":12587,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12547,"src":"9641:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12588,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9617:31:67","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$_t_uint256_$","typeString":"tuple(bool,int_const 0,uint256)"}},"functionReturnParameters":12558,"id":12589,"nodeType":"Return","src":"9610:38:67"}]}}]}},{"expression":{"id":12602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":12594,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12553,"src":"9684:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12595,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12555,"src":"9693:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12596,"name":"netPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12557,"src":"9698:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12597,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"9683:26:67","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12599,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12543,"src":"9728:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12600,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12547,"src":"9738:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12598,"name":"_collectPremium","nodeType":"Identifier","overloadedDeclarations":[3670,3695],"referencedDeclaration":3695,"src":"9712:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (bool,uint256,uint256)"}},"id":12601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9712:33:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"9683:62:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12603,"nodeType":"ExpressionStatement","src":"9683:62:67"}]},"functionSelector":"e5d58cd8","id":12605,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12550,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"9253:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12551,"modifierName":{"id":12549,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"9244:8:67"},"nodeType":"ModifierInvocation","src":"9244:22:67"}],"name":"collectPremium","nameLocation":"9155:14:67","nodeType":"FunctionDefinition","parameters":{"id":12548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12543,"mutability":"mutable","name":"policyId","nameLocation":"9178:8:67","nodeType":"VariableDeclaration","scope":12605,"src":"9170:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9170:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12545,"mutability":"mutable","name":"from","nameLocation":"9196:4:67","nodeType":"VariableDeclaration","scope":12605,"src":"9188:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12544,"name":"address","nodeType":"ElementaryTypeName","src":"9188:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12547,"mutability":"mutable","name":"amount","nameLocation":"9210:6:67","nodeType":"VariableDeclaration","scope":12605,"src":"9202:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12546,"name":"uint256","nodeType":"ElementaryTypeName","src":"9202:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9169:48:67"},"returnParameters":{"id":12558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12553,"mutability":"mutable","name":"success","nameLocation":"9288:7:67","nodeType":"VariableDeclaration","scope":12605,"src":"9283:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12552,"name":"bool","nodeType":"ElementaryTypeName","src":"9283:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12555,"mutability":"mutable","name":"fee","nameLocation":"9305:3:67","nodeType":"VariableDeclaration","scope":12605,"src":"9297:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12554,"name":"uint256","nodeType":"ElementaryTypeName","src":"9297:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12557,"mutability":"mutable","name":"netPremium","nameLocation":"9318:10:67","nodeType":"VariableDeclaration","scope":12605,"src":"9310:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12556,"name":"uint256","nodeType":"ElementaryTypeName","src":"9310:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9282:47:67"},"scope":13585,"src":"9146:606:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12623,"nodeType":"Block","src":"9949:93:67","statements":[{"expression":{"arguments":[{"id":12618,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12607,"src":"9984:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12619,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12609,"src":"9995:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12620,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12611,"src":"10018:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12617,"name":"_adjustPremiumSumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3713,"src":"9959:24:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":12621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9959:76:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12622,"nodeType":"ExpressionStatement","src":"9959:76:67"}]},"functionSelector":"30a73da5","id":12624,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12614,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"9931:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12615,"modifierName":{"id":12613,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"9922:8:67"},"nodeType":"ModifierInvocation","src":"9922:22:67"}],"name":"adjustPremiumSumInsured","nameLocation":"9767:23:67","nodeType":"FunctionDefinition","parameters":{"id":12612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12607,"mutability":"mutable","name":"processId","nameLocation":"9808:9:67","nodeType":"VariableDeclaration","scope":12624,"src":"9800:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9800:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12609,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"9835:21:67","nodeType":"VariableDeclaration","scope":12624,"src":"9827:29:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12608,"name":"uint256","nodeType":"ElementaryTypeName","src":"9827:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12611,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"9874:16:67","nodeType":"VariableDeclaration","scope":12624,"src":"9866:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12610,"name":"uint256","nodeType":"ElementaryTypeName","src":"9866:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9790:106:67"},"returnParameters":{"id":12616,"nodeType":"ParameterList","parameters":[],"src":"9949:0:67"},"scope":13585,"src":"9758:284:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12712,"nodeType":"Block","src":"10178:822:67","statements":[{"assignments":[12636],"declarations":[{"constant":false,"id":12636,"mutability":"mutable","name":"risk","nameLocation":"10201:4:67","nodeType":"VariableDeclaration","scope":12712,"src":"10188:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12635,"nodeType":"UserDefinedTypeName","pathNode":{"id":12634,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"10188:4:67"},"referencedDeclaration":11917,"src":"10188:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12642,"initialValue":{"baseExpression":{"id":12637,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"10208:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12641,"indexExpression":{"arguments":[{"id":12639,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12626,"src":"10226:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12638,"name":"_getRiskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13584,"src":"10215:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":12640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10215:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10208:29:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10188:49:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12644,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10255:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"10255:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10272:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10255:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3031303a5249534b5f554e444546494e4544","id":12648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10275:30:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_28015aff36bbf8cb89a7d6ca21c217883599d0a9d34ab709c871c948f0fded56","typeString":"literal_string \"ERROR:AYI-010:RISK_UNDEFINED\""},"value":"ERROR:AYI-010:RISK_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28015aff36bbf8cb89a7d6ca21c217883599d0a9d34ab709c871c948f0fded56","typeString":"literal_string \"ERROR:AYI-010:RISK_UNDEFINED\""}],"id":12643,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10247:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10247:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12650,"nodeType":"ExpressionStatement","src":"10247:59:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12652,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10324:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"10324:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10343:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10324:20:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3031313a4f5241434c455f414c52454144595f524553504f4e444544","id":12656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10346:40:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_6fc284dd3ef5c0a4e0102afbb048ee6a2068822573dadf296d595b1f0508f960","typeString":"literal_string \"ERROR:AYI-011:ORACLE_ALREADY_RESPONDED\""},"value":"ERROR:AYI-011:ORACLE_ALREADY_RESPONDED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6fc284dd3ef5c0a4e0102afbb048ee6a2068822573dadf296d595b1f0508f960","typeString":"literal_string \"ERROR:AYI-011:ORACLE_ALREADY_RESPONDED\""}],"id":12651,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10316:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10316:71:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12658,"nodeType":"ExpressionStatement","src":"10316:71:67"},{"assignments":[12660],"declarations":[{"constant":false,"id":12660,"mutability":"mutable","name":"queryData","nameLocation":"10411:9:67","nodeType":"VariableDeclaration","scope":12712,"src":"10398:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12659,"name":"bytes","nodeType":"ElementaryTypeName","src":"10398:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12670,"initialValue":{"arguments":[{"expression":{"id":12663,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10447:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"projectId","nodeType":"MemberAccess","referencedDeclaration":11890,"src":"10447:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12665,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10475:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"uaiId","nodeType":"MemberAccess","referencedDeclaration":11892,"src":"10475:10:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12667,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10499:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"cropId","nodeType":"MemberAccess","referencedDeclaration":11894,"src":"10499:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12661,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"10423:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"10423:10:67","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10423:97:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10398:122:67"},{"expression":{"id":12678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12671,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12632,"src":"10531:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12673,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12626,"src":"10569:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12674,"name":"queryData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12660,"src":"10597:9:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"6f7261636c6543616c6c6261636b","id":12675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10624:16:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_2aafc7d392265772ce577bc392adfed2dc64b60acfcc2d5e2ce66fbfe088b79b","typeString":"literal_string \"oracleCallback\""},"value":"oracleCallback"},{"id":12676,"name":"_oracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11919,"src":"10658:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_2aafc7d392265772ce577bc392adfed2dc64b60acfcc2d5e2ce66fbfe088b79b","typeString":"literal_string \"oracleCallback\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12672,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3919,"src":"10543:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,bytes memory,string memory,uint256) returns (uint256)"}},"id":12677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10543:138:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10531:150:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12679,"nodeType":"ExpressionStatement","src":"10531:150:67"},{"expression":{"id":12684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12680,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10692:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"requestId","nodeType":"MemberAccess","referencedDeclaration":11904,"src":"10692:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12683,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12632,"src":"10709:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10692:26:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12685,"nodeType":"ExpressionStatement","src":"10692:26:67"},{"expression":{"id":12690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12686,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10728:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"requestTriggered","nodeType":"MemberAccess","referencedDeclaration":11906,"src":"10728:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":12689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10752:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10728:28:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12691,"nodeType":"ExpressionStatement","src":"10728:28:67"},{"expression":{"id":12697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12692,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10766:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":11916,"src":"10766:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12695,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"10783:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10783:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10766:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12698,"nodeType":"ExpressionStatement","src":"10766:32:67"},{"eventCall":{"arguments":[{"expression":{"id":12700,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10876:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"requestId","nodeType":"MemberAccess","referencedDeclaration":11904,"src":"10876:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12702,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10905:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"10905:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12704,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10927:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"projectId","nodeType":"MemberAccess","referencedDeclaration":11890,"src":"10927:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12706,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10956:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"uaiId","nodeType":"MemberAccess","referencedDeclaration":11892,"src":"10956:10:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12708,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10981:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"cropId","nodeType":"MemberAccess","referencedDeclaration":11894,"src":"10981:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12699,"name":"LogAyiiRiskDataRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12004,"src":"10838:24:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32,bytes32,bytes32,bytes32)"}},"id":12710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10838:155:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12711,"nodeType":"EmitStatement","src":"10833:160:67"}]},"functionSelector":"06136f28","id":12713,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12629,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"10125:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12630,"modifierName":{"id":12628,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"10116:8:67"},"nodeType":"ModifierInvocation","src":"10116:22:67"}],"name":"triggerOracle","nameLocation":"10057:13:67","nodeType":"FunctionDefinition","parameters":{"id":12627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12626,"mutability":"mutable","name":"processId","nameLocation":"10079:9:67","nodeType":"VariableDeclaration","scope":12713,"src":"10071:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10071:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10070:19:67"},"returnParameters":{"id":12633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12632,"mutability":"mutable","name":"requestId","nameLocation":"10163:9:67","nodeType":"VariableDeclaration","scope":12713,"src":"10155:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12631,"name":"uint256","nodeType":"ElementaryTypeName","src":"10155:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10154:19:67"},"scope":13585,"src":"10048:952:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12776,"nodeType":"Block","src":"11111:566:67","statements":[{"assignments":[12723],"declarations":[{"constant":false,"id":12723,"mutability":"mutable","name":"risk","nameLocation":"11134:4:67","nodeType":"VariableDeclaration","scope":12776,"src":"11121:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12722,"nodeType":"UserDefinedTypeName","pathNode":{"id":12721,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"11121:4:67"},"referencedDeclaration":11917,"src":"11121:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12729,"initialValue":{"baseExpression":{"id":12724,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"11141:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12728,"indexExpression":{"arguments":[{"id":12726,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12715,"src":"11159:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12725,"name":"_getRiskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13584,"src":"11148:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":12727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11148:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11141:29:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11121:49:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12731,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11188:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"11188:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11205:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11188:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3031323a5249534b5f554e444546494e4544","id":12735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11208:30:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcbc40a3d8c26349e10dd7f08a6b7b007d7052eecfaccb2cc208ecaf8fccefd5","typeString":"literal_string \"ERROR:AYI-012:RISK_UNDEFINED\""},"value":"ERROR:AYI-012:RISK_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcbc40a3d8c26349e10dd7f08a6b7b007d7052eecfaccb2cc208ecaf8fccefd5","typeString":"literal_string \"ERROR:AYI-012:RISK_UNDEFINED\""}],"id":12730,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11180:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11180:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12737,"nodeType":"ExpressionStatement","src":"11180:59:67"},{"expression":{"arguments":[{"expression":{"id":12739,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11257:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"requestTriggered","nodeType":"MemberAccess","referencedDeclaration":11906,"src":"11257:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3031333a4f5241434c455f524551554553545f4e4f545f464f554e44","id":12741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11280:40:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e5824abd539e2def691cf0401224fac97337998f0fa26de7535423fdaff387e","typeString":"literal_string \"ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND\""},"value":"ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e5824abd539e2def691cf0401224fac97337998f0fa26de7535423fdaff387e","typeString":"literal_string \"ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND\""}],"id":12738,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11249:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11249:72:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12743,"nodeType":"ExpressionStatement","src":"11249:72:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12745,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11339:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"11339:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11358:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11339:20:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3031343a4558495354494e475f43414c4c4241434b","id":12749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11361:33:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_aaf8ccfcadbad9421342ffd1299722ec5af1e410a95732101efa8995983950fc","typeString":"literal_string \"ERROR:AYI-014:EXISTING_CALLBACK\""},"value":"ERROR:AYI-014:EXISTING_CALLBACK"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aaf8ccfcadbad9421342ffd1299722ec5af1e410a95732101efa8995983950fc","typeString":"literal_string \"ERROR:AYI-014:EXISTING_CALLBACK\""}],"id":12744,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11331:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11331:64:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12751,"nodeType":"ExpressionStatement","src":"11331:64:67"},{"expression":{"arguments":[{"expression":{"id":12753,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11421:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"requestId","nodeType":"MemberAccess","referencedDeclaration":11904,"src":"11421:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12752,"name":"_cancelRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3931,"src":"11406:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":12755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11406:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12756,"nodeType":"ExpressionStatement","src":"11406:30:67"},{"expression":{"id":12761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12757,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11501:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"requestTriggered","nodeType":"MemberAccess","referencedDeclaration":11906,"src":"11501:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":12760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11525:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"11501:29:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12762,"nodeType":"ExpressionStatement","src":"11501:29:67"},{"expression":{"id":12768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12763,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11540:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":11916,"src":"11540:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12766,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"11557:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11557:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11540:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12769,"nodeType":"ExpressionStatement","src":"11540:32:67"},{"eventCall":{"arguments":[{"id":12771,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12715,"src":"11644:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12772,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11655:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"requestId","nodeType":"MemberAccess","referencedDeclaration":11904,"src":"11655:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12770,"name":"LogAyiiRiskDataRequestCancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12018,"src":"11612:31:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":12774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11612:58:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12775,"nodeType":"EmitStatement","src":"11607:63:67"}]},"functionSelector":"597ee798","id":12777,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12718,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"11093:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12719,"modifierName":{"id":12717,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"11084:8:67"},"nodeType":"ModifierInvocation","src":"11084:22:67"}],"name":"cancelOracleRequest","nameLocation":"11019:19:67","nodeType":"FunctionDefinition","parameters":{"id":12716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12715,"mutability":"mutable","name":"processId","nameLocation":"11047:9:67","nodeType":"VariableDeclaration","scope":12777,"src":"11039:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11039:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11038:19:67"},"returnParameters":{"id":12720,"nodeType":"ParameterList","parameters":[],"src":"11111:0:67"},"scope":13585,"src":"11010:667:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12918,"nodeType":"Block","src":"11852:1283:67","statements":[{"assignments":[12789,12791,12793,12795],"declarations":[{"constant":false,"id":12789,"mutability":"mutable","name":"projectId","nameLocation":"11884:9:67","nodeType":"VariableDeclaration","scope":12918,"src":"11876:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11876:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12791,"mutability":"mutable","name":"uaiId","nameLocation":"11916:5:67","nodeType":"VariableDeclaration","scope":12918,"src":"11908:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11908:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12793,"mutability":"mutable","name":"cropId","nameLocation":"11944:6:67","nodeType":"VariableDeclaration","scope":12918,"src":"11936:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12792,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11936:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12795,"mutability":"mutable","name":"aaay","nameLocation":"11973:4:67","nodeType":"VariableDeclaration","scope":12918,"src":"11965:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12794,"name":"uint256","nodeType":"ElementaryTypeName","src":"11965:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12809,"initialValue":{"arguments":[{"id":12798,"name":"responseData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12783,"src":"12001:12:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":12800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12016:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12016:7:67","typeDescriptions":{}}},{"id":12802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12025:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12025:7:67","typeDescriptions":{}}},{"id":12804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12034:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12034:7:67","typeDescriptions":{}}},{"id":12806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12043:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12805,"name":"uint256","nodeType":"ElementaryTypeName","src":"12043:7:67","typeDescriptions":{}}}],"id":12807,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12015:36:67","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes32),type(bytes32),type(bytes32),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes32),type(bytes32),type(bytes32),type(uint256))"}],"expression":{"id":12796,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"11990:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"11990:10:67","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11990:62:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$","typeString":"tuple(bytes32,bytes32,bytes32,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"11862:190:67"},{"assignments":[12811],"declarations":[{"constant":false,"id":12811,"mutability":"mutable","name":"riskId","nameLocation":"12071:6:67","nodeType":"VariableDeclaration","scope":12918,"src":"12063:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12810,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12063:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":12815,"initialValue":{"arguments":[{"id":12813,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12781,"src":"12091:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12812,"name":"_getRiskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13584,"src":"12080:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":12814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12080:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12063:38:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12817,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"12119:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":12819,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12789,"src":"12139:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12820,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12791,"src":"12150:5:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12821,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12793,"src":"12157:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12818,"name":"getRiskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12364,"src":"12129:9:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":12822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12129:35:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12119:45:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3032303a5249534b5f49445f4d49534d41544348","id":12824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12166:32:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbaf1d726096478fb0eb96544569fd8fa4d575484c98caef0bd74861bf86ac57","typeString":"literal_string \"ERROR:AYI-020:RISK_ID_MISMATCH\""},"value":"ERROR:AYI-020:RISK_ID_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbaf1d726096478fb0eb96544569fd8fa4d575484c98caef0bd74861bf86ac57","typeString":"literal_string \"ERROR:AYI-020:RISK_ID_MISMATCH\""}],"id":12816,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12111:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12111:88:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12826,"nodeType":"ExpressionStatement","src":"12111:88:67"},{"assignments":[12829],"declarations":[{"constant":false,"id":12829,"mutability":"mutable","name":"risk","nameLocation":"12223:4:67","nodeType":"VariableDeclaration","scope":12918,"src":"12210:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12828,"nodeType":"UserDefinedTypeName","pathNode":{"id":12827,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"12210:4:67"},"referencedDeclaration":11917,"src":"12210:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12833,"initialValue":{"baseExpression":{"id":12830,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"12230:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12832,"indexExpression":{"id":12831,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"12237:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12230:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12210:34:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12835,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12262:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"12262:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12279:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12262:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3032313a5249534b5f554e444546494e4544","id":12839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12282:30:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ee02cfa0248fa86db9a11f735c32c1ff1a44fc0b1601b5b7ff4563f745477c9","typeString":"literal_string \"ERROR:AYI-021:RISK_UNDEFINED\""},"value":"ERROR:AYI-021:RISK_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ee02cfa0248fa86db9a11f735c32c1ff1a44fc0b1601b5b7ff4563f745477c9","typeString":"literal_string \"ERROR:AYI-021:RISK_UNDEFINED\""}],"id":12834,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12254:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12254:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12841,"nodeType":"ExpressionStatement","src":"12254:59:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12843,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12331:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"requestId","nodeType":"MemberAccess","referencedDeclaration":11904,"src":"12331:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12845,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12779,"src":"12349:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12331:27:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3032323a524551554553545f49445f4d49534d41544348","id":12847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12360:35:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6dbb8dbd57bcf301752f2cf8b3847b57c719884a8d0c8570c19052a9efb7ef6","typeString":"literal_string \"ERROR:AYI-022:REQUEST_ID_MISMATCH\""},"value":"ERROR:AYI-022:REQUEST_ID_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6dbb8dbd57bcf301752f2cf8b3847b57c719884a8d0c8570c19052a9efb7ef6","typeString":"literal_string \"ERROR:AYI-022:REQUEST_ID_MISMATCH\""}],"id":12842,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12323:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12323:73:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12849,"nodeType":"ExpressionStatement","src":"12323:73:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12851,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12414:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"12414:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12433:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12414:20:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3032333a4558495354494e475f43414c4c4241434b","id":12855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12436:33:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_aaec2461ff204fc73d428d95c0f4cb5267531886babbeecda241ecff60dc08cf","typeString":"literal_string \"ERROR:AYI-023:EXISTING_CALLBACK\""},"value":"ERROR:AYI-023:EXISTING_CALLBACK"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aaec2461ff204fc73d428d95c0f4cb5267531886babbeecda241ecff60dc08cf","typeString":"literal_string \"ERROR:AYI-023:EXISTING_CALLBACK\""}],"id":12850,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12406:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12406:64:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12857,"nodeType":"ExpressionStatement","src":"12406:64:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12859,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"12489:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":12860,"name":"AAAY_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11868,"src":"12498:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12861,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"12509:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12498:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12863,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12497:34:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12489:42:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12865,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"12552:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":12866,"name":"AAAY_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11871,"src":"12560:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12867,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"12571:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12560:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12869,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12559:34:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12552:41:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12489:104:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3032343a414141595f494e56414c4944","id":12872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12612:28:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_1933cf92e854516d33fae263dace7298dd28dda3cb0e72fbef894e917a93a275","typeString":"literal_string \"ERROR:AYI-024:AAAY_INVALID\""},"value":"ERROR:AYI-024:AAAY_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1933cf92e854516d33fae263dace7298dd28dda3cb0e72fbef894e917a93a275","typeString":"literal_string \"ERROR:AYI-024:AAAY_INVALID\""}],"id":12858,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12481:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12481:160:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12874,"nodeType":"ExpressionStatement","src":"12481:160:67"},{"expression":{"id":12879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12875,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12691:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"aaay","nodeType":"MemberAccess","referencedDeclaration":11910,"src":"12691:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12878,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"12703:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12691:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12880,"nodeType":"ExpressionStatement","src":"12691:16:67"},{"expression":{"id":12896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12881,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12717:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payoutPercentage","nodeType":"MemberAccess","referencedDeclaration":11912,"src":"12717:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":12885,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12780:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tsi","nodeType":"MemberAccess","referencedDeclaration":11900,"src":"12780:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12887,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12802:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"trigger","nodeType":"MemberAccess","referencedDeclaration":11896,"src":"12802:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12889,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12828:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exit","nodeType":"MemberAccess","referencedDeclaration":11898,"src":"12828:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12891,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12851:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"aph","nodeType":"MemberAccess","referencedDeclaration":11902,"src":"12851:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12893,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12873:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"aaay","nodeType":"MemberAccess","referencedDeclaration":11910,"src":"12873:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12884,"name":"calculatePayoutPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13273,"src":"12741:25:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":12895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12741:151:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12717:175:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12897,"nodeType":"ExpressionStatement","src":"12717:175:67"},{"expression":{"id":12903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12898,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12903:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"12903:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12901,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12921:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12921:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12903:33:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12904,"nodeType":"ExpressionStatement","src":"12903:33:67"},{"expression":{"id":12910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12905,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12970:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":11916,"src":"12970:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12908,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12987:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12987:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12970:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12911,"nodeType":"ExpressionStatement","src":"12970:32:67"},{"eventCall":{"arguments":[{"id":12913,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12779,"src":"13079:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12914,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"13103:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12915,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"13123:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12912,"name":"LogAyiiRiskDataReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12012,"src":"13042:23:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256)"}},"id":12916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13042:86:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12917,"nodeType":"EmitStatement","src":"13037:91:67"}]},"functionSelector":"5e61aa63","id":12919,"implemented":true,"kind":"function","modifiers":[{"id":12786,"modifierName":{"id":12785,"name":"onlyOracle","nodeType":"IdentifierPath","referencedDeclaration":3487,"src":"11837:10:67"},"nodeType":"ModifierInvocation","src":"11837:10:67"}],"name":"oracleCallback","nameLocation":"11696:14:67","nodeType":"FunctionDefinition","parameters":{"id":12784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12779,"mutability":"mutable","name":"requestId","nameLocation":"11728:9:67","nodeType":"VariableDeclaration","scope":12919,"src":"11720:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12778,"name":"uint256","nodeType":"ElementaryTypeName","src":"11720:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12781,"mutability":"mutable","name":"processId","nameLocation":"11756:9:67","nodeType":"VariableDeclaration","scope":12919,"src":"11748:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11748:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12783,"mutability":"mutable","name":"responseData","nameLocation":"11791:12:67","nodeType":"VariableDeclaration","scope":12919,"src":"11776:27:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12782,"name":"bytes","nodeType":"ElementaryTypeName","src":"11776:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11710:99:67"},"returnParameters":{"id":12787,"nodeType":"ParameterList","parameters":[],"src":"11852:0:67"},"scope":13585,"src":"11687:1448:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13042,"nodeType":"Block","src":"13313:879:67","statements":[{"assignments":[12934],"declarations":[{"constant":false,"id":12934,"mutability":"mutable","name":"risk","nameLocation":"13335:4:67","nodeType":"VariableDeclaration","scope":13042,"src":"13323:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12933,"nodeType":"UserDefinedTypeName","pathNode":{"id":12932,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"13323:4:67"},"referencedDeclaration":11917,"src":"13323:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12938,"initialValue":{"baseExpression":{"id":12935,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"13342:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12937,"indexExpression":{"id":12936,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12921,"src":"13349:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13342:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13323:33:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12940,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12934,"src":"13374:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk memory"}},"id":12941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"13374:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13392:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13374:19:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3033303a4f5241434c455f524553504f4e53455f4d495353494e47","id":12944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13395:39:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_58676a06b2a15eeef19d847ad905241c221bcfc99304360d668ec70c06b294c9","typeString":"literal_string \"ERROR:AYI-030:ORACLE_RESPONSE_MISSING\""},"value":"ERROR:AYI-030:ORACLE_RESPONSE_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_58676a06b2a15eeef19d847ad905241c221bcfc99304360d668ec70c06b294c9","typeString":"literal_string \"ERROR:AYI-030:ORACLE_RESPONSE_MISSING\""}],"id":12939,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13366:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13366:69:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12946,"nodeType":"ExpressionStatement","src":"13366:69:67"},{"assignments":[12948],"declarations":[{"constant":false,"id":12948,"mutability":"mutable","name":"elements","nameLocation":"13454:8:67","nodeType":"VariableDeclaration","scope":13042,"src":"13446:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12947,"name":"uint256","nodeType":"ElementaryTypeName","src":"13446:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12955,"initialValue":{"arguments":[{"baseExpression":{"id":12951,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"13486:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":12953,"indexExpression":{"id":12952,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12921,"src":"13496:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13486:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":12949,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"13465:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":12950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"13465:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":12954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13465:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13446:58:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12956,"name":"elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12948,"src":"13518:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13530:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13518:13:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12971,"nodeType":"IfStatement","src":"13514:117:67","trueBody":{"id":12970,"nodeType":"Block","src":"13533:98:67","statements":[{"eventCall":{"arguments":[{"id":12960,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12921,"src":"13573:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":12961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13581:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12959,"name":"LogAyiiRiskProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"13552:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":12962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13552:31:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12963,"nodeType":"EmitStatement","src":"13547:36:67"},{"expression":{"arguments":[{"hexValue":"30","id":12967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13618:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13604:13:67","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":12964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13608:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12965,"nodeType":"ArrayTypeName","src":"13608:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":12968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13604:16:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":12931,"id":12969,"nodeType":"Return","src":"13597:23:67"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12972,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13645:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13658:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13645:14:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12987,"nodeType":"Block","src":"13717:41:67","statements":[{"expression":{"id":12985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12980,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13719:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12982,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13735:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12983,"name":"elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12948,"src":"13746:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12981,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13298,"src":"13731:3:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13731:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13719:36:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12986,"nodeType":"ExpressionStatement","src":"13719:36:67"}]},"id":12988,"nodeType":"IfStatement","src":"13641:117:67","trueBody":{"id":12979,"nodeType":"Block","src":"13661:25:67","statements":[{"expression":{"id":12977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12975,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13663:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12976,"name":"elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12948,"src":"13675:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13663:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12978,"nodeType":"ExpressionStatement","src":"13663:20:67"}]}},{"expression":{"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12989,"name":"processedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12930,"src":"13768:17:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12993,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13802:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13788:13:67","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":12990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13792:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12991,"nodeType":"ArrayTypeName","src":"13792:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":12994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13788:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"13768:44:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":12996,"nodeType":"ExpressionStatement","src":"13768:44:67"},{"assignments":[12998],"declarations":[{"constant":false,"id":12998,"mutability":"mutable","name":"elementIdx","nameLocation":"13830:10:67","nodeType":"VariableDeclaration","scope":13042,"src":"13822:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12997,"name":"uint256","nodeType":"ElementaryTypeName","src":"13822:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13002,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12999,"name":"elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12948,"src":"13843:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13854:1:67","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13843:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13822:33:67"},{"body":{"id":13035,"nodeType":"Block","src":"13906:225:67","statements":[{"assignments":[13014],"declarations":[{"constant":false,"id":13014,"mutability":"mutable","name":"policyId","nameLocation":"13976:8:67","nodeType":"VariableDeclaration","scope":13035,"src":"13968:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13968:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13024,"initialValue":{"arguments":[{"baseExpression":{"id":13017,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"14004:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":13019,"indexExpression":{"id":13018,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12921,"src":"14014:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14004:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13020,"name":"elementIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12998,"src":"14023:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13004,"src":"14036:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14023:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13015,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"13987:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":13016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11132,"src":"13987:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":13023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13987:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13968:70:67"},{"expression":{"arguments":[{"id":13026,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13014,"src":"14066:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13025,"name":"processPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13195,"src":"14052:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14052:23:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13028,"nodeType":"ExpressionStatement","src":"14052:23:67"},{"expression":{"id":13033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13029,"name":"processedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12930,"src":"14089:17:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":13031,"indexExpression":{"id":13030,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13004,"src":"14107:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14089:20:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13032,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13014,"src":"14112:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14089:31:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13034,"nodeType":"ExpressionStatement","src":"14089:31:67"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13007,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13004,"src":"13886:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13008,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13890:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13886:13:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13036,"initializationExpression":{"assignments":[13004],"declarations":[{"constant":false,"id":13004,"mutability":"mutable","name":"i","nameLocation":"13879:1:67","nodeType":"VariableDeclaration","scope":13036,"src":"13871:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13003,"name":"uint256","nodeType":"ElementaryTypeName","src":"13871:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13006,"initialValue":{"hexValue":"30","id":13005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13883:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13871:13:67"},"loopExpression":{"expression":{"id":13011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13901:3:67","subExpression":{"id":13010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13004,"src":"13901:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13012,"nodeType":"ExpressionStatement","src":"13901:3:67"},"nodeType":"ForStatement","src":"13866:265:67"},{"eventCall":{"arguments":[{"id":13038,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12921,"src":"14167:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13039,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"14175:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13037,"name":"LogAyiiRiskProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"14146:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14146:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13041,"nodeType":"EmitStatement","src":"14141:44:67"}]},"functionSelector":"1fd358aa","id":13043,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12926,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"13242:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12927,"modifierName":{"id":12925,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"13233:8:67"},"nodeType":"ModifierInvocation","src":"13233:22:67"}],"name":"processPoliciesForRisk","nameLocation":"13150:22:67","nodeType":"FunctionDefinition","parameters":{"id":12924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12921,"mutability":"mutable","name":"riskId","nameLocation":"13181:6:67","nodeType":"VariableDeclaration","scope":13043,"src":"13173:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13173:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12923,"mutability":"mutable","name":"batchSize","nameLocation":"13197:9:67","nodeType":"VariableDeclaration","scope":13043,"src":"13189:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12922,"name":"uint256","nodeType":"ElementaryTypeName","src":"13189:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13172:35:67"},"returnParameters":{"id":12931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12930,"mutability":"mutable","name":"processedPolicies","nameLocation":"13290:17:67","nodeType":"VariableDeclaration","scope":13043,"src":"13272:35:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13272:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12929,"nodeType":"ArrayTypeName","src":"13272:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"13271:37:67"},"scope":13585,"src":"13141:1051:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13194,"nodeType":"Block","src":"14289:1339:67","statements":[{"assignments":[13055],"declarations":[{"constant":false,"id":13055,"mutability":"mutable","name":"application","nameLocation":"14326:11:67","nodeType":"VariableDeclaration","scope":13194,"src":"14299:38:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":13054,"nodeType":"UserDefinedTypeName","pathNode":{"id":13053,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"14299:19:67"},"referencedDeclaration":5262,"src":"14299:19:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":13059,"initialValue":{"arguments":[{"id":13057,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"14356:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13056,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"14340:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":13058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14340:25:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"14299:66:67"},{"assignments":[13061],"declarations":[{"constant":false,"id":13061,"mutability":"mutable","name":"riskId","nameLocation":"14383:6:67","nodeType":"VariableDeclaration","scope":13194,"src":"14375:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14375:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13070,"initialValue":{"arguments":[{"expression":{"id":13064,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13055,"src":"14403:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":13065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"14403:16:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14422:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13066,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14422:7:67","typeDescriptions":{}}}],"id":13068,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14421:9:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":13062,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"14392:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"14392:10:67","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14392:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14375:56:67"},{"assignments":[13073],"declarations":[{"constant":false,"id":13073,"mutability":"mutable","name":"risk","nameLocation":"14453:4:67","nodeType":"VariableDeclaration","scope":13194,"src":"14441:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":13072,"nodeType":"UserDefinedTypeName","pathNode":{"id":13071,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"14441:4:67"},"referencedDeclaration":11917,"src":"14441:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":13077,"initialValue":{"baseExpression":{"id":13074,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"14460:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":13076,"indexExpression":{"id":13075,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13061,"src":"14467:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14460:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14441:33:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":13082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13079,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13073,"src":"14493:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk memory"}},"id":13080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"14493:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13081,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13061,"src":"14504:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14493:17:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3033313a5249534b5f49445f494e56414c4944","id":13083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14512:31:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8bfdecb7e2ed493ac22e973378473f67d79eabfa3ec87a5ca0db9597fe32dc2","typeString":"literal_string \"ERROR:AYI-031:RISK_ID_INVALID\""},"value":"ERROR:AYI-031:RISK_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8bfdecb7e2ed493ac22e973378473f67d79eabfa3ec87a5ca0db9597fe32dc2","typeString":"literal_string \"ERROR:AYI-031:RISK_ID_INVALID\""}],"id":13078,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14485:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14485:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13085,"nodeType":"ExpressionStatement","src":"14485:59:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13087,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13073,"src":"14562:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk memory"}},"id":13088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"14562:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14580:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14562:19:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3033323a4f5241434c455f524553504f4e53455f4d495353494e47","id":13091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14583:39:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f27b73d87657a4223eeda0e62929018b09601be0c30975a8a78bf41dfdbaaa2","typeString":"literal_string \"ERROR:AYI-032:ORACLE_RESPONSE_MISSING\""},"value":"ERROR:AYI-032:ORACLE_RESPONSE_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f27b73d87657a4223eeda0e62929018b09601be0c30975a8a78bf41dfdbaaa2","typeString":"literal_string \"ERROR:AYI-032:ORACLE_RESPONSE_MISSING\""}],"id":13086,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14554:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14554:69:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13093,"nodeType":"ExpressionStatement","src":"14554:69:67"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":13097,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"14664:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":13099,"indexExpression":{"id":13098,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13061,"src":"14674:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14664:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":13100,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"14683:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13095,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"14641:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":13096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11099,"src":"14641:22:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) view returns (bool)"}},"id":13101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14641:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3033333a504f4c4943595f464f525f5249534b5f554e4b4e4f574e","id":13102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14694:39:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_fafa31ad4244029644c90b6f5cee740910ee69364e793eab36c7c37db6e32ff4","typeString":"literal_string \"ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN\""},"value":"ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fafa31ad4244029644c90b6f5cee740910ee69364e793eab36c7c37db6e32ff4","typeString":"literal_string \"ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN\""}],"id":13094,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14633:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14633:101:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13104,"nodeType":"ExpressionStatement","src":"14633:101:67"},{"expression":{"arguments":[{"baseExpression":{"id":13108,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"14766:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":13110,"indexExpression":{"id":13109,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13061,"src":"14776:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14766:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":13111,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"14785:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13105,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"14745:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":13107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"14745:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":13112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14745:49:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13113,"nodeType":"ExpressionStatement","src":"14745:49:67"},{"assignments":[13115],"declarations":[{"constant":false,"id":13115,"mutability":"mutable","name":"claimAmount","nameLocation":"14814:11:67","nodeType":"VariableDeclaration","scope":13194,"src":"14806:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13114,"name":"uint256","nodeType":"ElementaryTypeName","src":"14806:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13122,"initialValue":{"arguments":[{"expression":{"id":13117,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13073,"src":"14857:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk memory"}},"id":13118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutPercentage","nodeType":"MemberAccess","referencedDeclaration":11912,"src":"14857:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13119,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13055,"src":"14893:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":13120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"14893:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13116,"name":"calculatePayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13213,"src":"14828:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14828:94:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14806:116:67"},{"assignments":[13124],"declarations":[{"constant":false,"id":13124,"mutability":"mutable","name":"claimId","nameLocation":"14949:7:67","nodeType":"VariableDeclaration","scope":13194,"src":"14941:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13123,"name":"uint256","nodeType":"ElementaryTypeName","src":"14941:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13130,"initialValue":{"arguments":[{"id":13126,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"14969:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13127,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13115,"src":"14979:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":13128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14992:2:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":13125,"name":"_newClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"14959:9:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) returns (uint256)"}},"id":13129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14959:36:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14941:54:67"},{"eventCall":{"arguments":[{"id":13132,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15030:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13133,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"15040:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13134,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13115,"src":"15049:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13131,"name":"LogAyiiClaimCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12036,"src":"15010:19:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":13135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15010:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13136,"nodeType":"EmitStatement","src":"15005:56:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13137,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13115,"src":"15076:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15090:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15076:15:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13180,"nodeType":"Block","src":"15419:101:67","statements":[{"expression":{"arguments":[{"id":13171,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15447:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13172,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"15457:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13170,"name":"_declineClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"15433:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15433:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13174,"nodeType":"ExpressionStatement","src":"15433:32:67"},{"expression":{"arguments":[{"id":13176,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15491:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13177,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"15501:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13175,"name":"_closeClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3845,"src":"15479:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15479:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13179,"nodeType":"ExpressionStatement","src":"15479:30:67"}]},"id":13181,"nodeType":"IfStatement","src":"15072:448:67","trueBody":{"id":13169,"nodeType":"Block","src":"15093:312:67","statements":[{"assignments":[13141],"declarations":[{"constant":false,"id":13141,"mutability":"mutable","name":"payoutAmount","nameLocation":"15115:12:67","nodeType":"VariableDeclaration","scope":13169,"src":"15107:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13140,"name":"uint256","nodeType":"ElementaryTypeName","src":"15107:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13143,"initialValue":{"id":13142,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13115,"src":"15130:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15107:34:67"},{"expression":{"arguments":[{"id":13145,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15169:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13146,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"15179:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13147,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13141,"src":"15188:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13144,"name":"_confirmClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"15155:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":13148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15155:46:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13149,"nodeType":"ExpressionStatement","src":"15155:46:67"},{"assignments":[13151],"declarations":[{"constant":false,"id":13151,"mutability":"mutable","name":"payoutId","nameLocation":"15224:8:67","nodeType":"VariableDeclaration","scope":13169,"src":"15216:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13150,"name":"uint256","nodeType":"ElementaryTypeName","src":"15216:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13158,"initialValue":{"arguments":[{"id":13153,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15246:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13154,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"15256:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13155,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13141,"src":"15265:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":13156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15279:2:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":13152,"name":"_newPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"15235:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) returns (uint256)"}},"id":13157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15235:47:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15216:66:67"},{"expression":{"arguments":[{"id":13160,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15311:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13161,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13151,"src":"15321:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13159,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"15296:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (uint256,uint256)"}},"id":13162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15296:34:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":13163,"nodeType":"ExpressionStatement","src":"15296:34:67"},{"eventCall":{"arguments":[{"id":13165,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15371:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13166,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13141,"src":"15381:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13164,"name":"LogAyiiPayoutCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12042,"src":"15350:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15350:44:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13168,"nodeType":"EmitStatement","src":"15345:49:67"}]}},{"expression":{"arguments":[{"id":13183,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15538:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13182,"name":"_expire","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3764,"src":"15530:7:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15530:17:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13185,"nodeType":"ExpressionStatement","src":"15530:17:67"},{"expression":{"arguments":[{"id":13187,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15564:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13186,"name":"_close","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"15557:6:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15557:16:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13189,"nodeType":"ExpressionStatement","src":"15557:16:67"},{"eventCall":{"arguments":[{"id":13191,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15612:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13190,"name":"LogAyiiPolicyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"15589:22:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15589:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13193,"nodeType":"EmitStatement","src":"15584:37:67"}]},"functionSelector":"0b228d95","id":13195,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13048,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"14271:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13049,"modifierName":{"id":13047,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"14262:8:67"},"nodeType":"ModifierInvocation","src":"14262:22:67"}],"name":"processPolicy","nameLocation":"14207:13:67","nodeType":"FunctionDefinition","parameters":{"id":13046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13045,"mutability":"mutable","name":"policyId","nameLocation":"14229:8:67","nodeType":"VariableDeclaration","scope":13195,"src":"14221:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13044,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14221:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14220:18:67"},"returnParameters":{"id":13050,"nodeType":"ParameterList","parameters":[],"src":"14289:0:67"},"scope":13585,"src":"14198:1430:67","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":13212,"nodeType":"Block","src":"15781:91:67","statements":[{"expression":{"id":13210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13204,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13202,"src":"15791:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13205,"name":"payoutPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13197,"src":"15806:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13206,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13199,"src":"15825:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15806:35:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13208,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"15844:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15806:59:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15791:74:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13211,"nodeType":"ExpressionStatement","src":"15791:74:67"}]},"functionSelector":"9dce5ff0","id":13213,"implemented":true,"kind":"function","modifiers":[],"name":"calculatePayout","nameLocation":"15643:15:67","nodeType":"FunctionDefinition","parameters":{"id":13200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13197,"mutability":"mutable","name":"payoutPercentage","nameLocation":"15667:16:67","nodeType":"VariableDeclaration","scope":13213,"src":"15659:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13196,"name":"uint256","nodeType":"ElementaryTypeName","src":"15659:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13199,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"15693:16:67","nodeType":"VariableDeclaration","scope":13213,"src":"15685:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13198,"name":"uint256","nodeType":"ElementaryTypeName","src":"15685:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15658:52:67"},"returnParameters":{"id":13203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13202,"mutability":"mutable","name":"payoutAmount","nameLocation":"15763:12:67","nodeType":"VariableDeclaration","scope":13213,"src":"15755:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13201,"name":"uint256","nodeType":"ElementaryTypeName","src":"15755:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15754:22:67"},"scope":13585,"src":"15634:238:67","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":13272,"nodeType":"Block","src":"16292:534:67","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13228,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13223,"src":"16375:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13229,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"16382:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16375:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13231,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"16407:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13232,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13217,"src":"16413:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16407:13:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16375:45:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13238,"nodeType":"IfStatement","src":"16371:84:67","trueBody":{"id":13237,"nodeType":"Block","src":"16422:33:67","statements":[{"expression":{"hexValue":"30","id":13235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16443:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":13227,"id":13236,"nodeType":"Return","src":"16436:8:67"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13239,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13223,"src":"16541:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13240,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"16548:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16541:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13242,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"16573:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13243,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13219,"src":"16579:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16573:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16541:42:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13249,"nodeType":"IfStatement","src":"16537:83:67","trueBody":{"id":13248,"nodeType":"Block","src":"16585:35:67","statements":[{"expression":{"id":13246,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"16606:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13227,"id":13247,"nodeType":"Return","src":"16599:10:67"}]}},{"assignments":[13251],"declarations":[{"constant":false,"id":13251,"mutability":"mutable","name":"harvestRatio","nameLocation":"16692:12:67","nodeType":"VariableDeclaration","scope":13272,"src":"16684:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13250,"name":"uint256","nodeType":"ElementaryTypeName","src":"16684:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13257,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13252,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"16707:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13253,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13223,"src":"16731:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16707:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13255,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"16738:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16707:34:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16684:57:67"},{"expression":{"id":13270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13258,"name":"payoutPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13226,"src":"16751:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13259,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"16770:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13260,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13217,"src":"16777:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13261,"name":"harvestRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13251,"src":"16787:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16777:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13263,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16776:24:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16770:30:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13265,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13217,"src":"16804:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13266,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13219,"src":"16814:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16804:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13268,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16803:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16770:49:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16751:68:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13271,"nodeType":"ExpressionStatement","src":"16751:68:67"}]},"functionSelector":"46b937f6","id":13273,"implemented":true,"kind":"function","modifiers":[],"name":"calculatePayoutPercentage","nameLocation":"15887:25:67","nodeType":"FunctionDefinition","parameters":{"id":13224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13215,"mutability":"mutable","name":"tsi","nameLocation":"15930:3:67","nodeType":"VariableDeclaration","scope":13273,"src":"15922:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13214,"name":"uint256","nodeType":"ElementaryTypeName","src":"15922:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13217,"mutability":"mutable","name":"trigger","nameLocation":"15976:7:67","nodeType":"VariableDeclaration","scope":13273,"src":"15968:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13216,"name":"uint256","nodeType":"ElementaryTypeName","src":"15968:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13219,"mutability":"mutable","name":"exit","nameLocation":"16054:4:67","nodeType":"VariableDeclaration","scope":13273,"src":"16046:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13218,"name":"uint256","nodeType":"ElementaryTypeName","src":"16046:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13221,"mutability":"mutable","name":"aph","nameLocation":"16135:3:67","nodeType":"VariableDeclaration","scope":13273,"src":"16127:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13220,"name":"uint256","nodeType":"ElementaryTypeName","src":"16127:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13223,"mutability":"mutable","name":"aaay","nameLocation":"16184:4:67","nodeType":"VariableDeclaration","scope":13273,"src":"16176:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13222,"name":"uint256","nodeType":"ElementaryTypeName","src":"16176:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15912:305:67"},"returnParameters":{"id":13227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13226,"mutability":"mutable","name":"payoutPercentage","nameLocation":"16270:16:67","nodeType":"VariableDeclaration","scope":13273,"src":"16262:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13225,"name":"uint256","nodeType":"ElementaryTypeName","src":"16262:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16261:26:67"},"scope":13585,"src":"15878:948:67","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":13280,"nodeType":"Block","src":"16909:45:67","statements":[{"expression":{"id":13278,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"16926:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13277,"id":13279,"nodeType":"Return","src":"16919:28:67"}]},"functionSelector":"66528c3b","id":13281,"implemented":true,"kind":"function","modifiers":[],"name":"getPercentageMultiplier","nameLocation":"16841:23:67","nodeType":"FunctionDefinition","parameters":{"id":13274,"nodeType":"ParameterList","parameters":[],"src":"16864:2:67"},"returnParameters":{"id":13277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13276,"mutability":"mutable","name":"multiplier","nameLocation":"16897:10:67","nodeType":"VariableDeclaration","scope":13281,"src":"16889:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13275,"name":"uint256","nodeType":"ElementaryTypeName","src":"16889:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16888:20:67"},"scope":13585,"src":"16832:122:67","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":13297,"nodeType":"Block","src":"17026:38:67","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13290,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"17043:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13291,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13285,"src":"17048:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17043:6:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":13294,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13285,"src":"17056:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"17043:14:67","trueExpression":{"id":13293,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"17052:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13289,"id":13296,"nodeType":"Return","src":"17036:21:67"}]},"id":13298,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"16969:3:67","nodeType":"FunctionDefinition","parameters":{"id":13286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13283,"mutability":"mutable","name":"a","nameLocation":"16981:1:67","nodeType":"VariableDeclaration","scope":13298,"src":"16973:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13282,"name":"uint256","nodeType":"ElementaryTypeName","src":"16973:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13285,"mutability":"mutable","name":"b","nameLocation":"16992:1:67","nodeType":"VariableDeclaration","scope":13298,"src":"16984:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13284,"name":"uint256","nodeType":"ElementaryTypeName","src":"16984:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16972:22:67"},"returnParameters":{"id":13289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13288,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13298,"src":"17017:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13287,"name":"uint256","nodeType":"ElementaryTypeName","src":"17017:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17016:9:67"},"scope":13585,"src":"16960:104:67","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":13306,"nodeType":"Block","src":"17119:27:67","statements":[{"expression":{"expression":{"id":13303,"name":"_riskIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11925,"src":"17128:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"17128:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13302,"id":13305,"nodeType":"Return","src":"17121:22:67"}]},"functionSelector":"f9d7ff89","id":13307,"implemented":true,"kind":"function","modifiers":[],"name":"risks","nameLocation":"17080:5:67","nodeType":"FunctionDefinition","parameters":{"id":13299,"nodeType":"ParameterList","parameters":[],"src":"17085:2:67"},"returnParameters":{"id":13302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13307,"src":"17110:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13300,"name":"uint256","nodeType":"ElementaryTypeName","src":"17110:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17109:9:67"},"scope":13585,"src":"17071:75:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13318,"nodeType":"Block","src":"17221:25:67","statements":[{"expression":{"baseExpression":{"id":13314,"name":"_riskIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11925,"src":"17230:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13316,"indexExpression":{"id":13315,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13309,"src":"17239:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17230:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13313,"id":13317,"nodeType":"Return","src":"17223:20:67"}]},"functionSelector":"eb807339","id":13319,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskId","nameLocation":"17160:9:67","nodeType":"FunctionDefinition","parameters":{"id":13310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13309,"mutability":"mutable","name":"idx","nameLocation":"17178:3:67","nodeType":"VariableDeclaration","scope":13319,"src":"17170:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13308,"name":"uint256","nodeType":"ElementaryTypeName","src":"17170:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17169:13:67"},"returnParameters":{"id":13313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13312,"mutability":"mutable","name":"riskId","nameLocation":"17213:6:67","nodeType":"VariableDeclaration","scope":13319,"src":"17205:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17205:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17204:16:67"},"scope":13585,"src":"17151:95:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13331,"nodeType":"Block","src":"17324:26:67","statements":[{"expression":{"baseExpression":{"id":13327,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"17333:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":13329,"indexExpression":{"id":13328,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"17340:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17333:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"functionReturnParameters":13326,"id":13330,"nodeType":"Return","src":"17326:21:67"}]},"functionSelector":"5a602109","id":13332,"implemented":true,"kind":"function","modifiers":[],"name":"getRisk","nameLocation":"17260:7:67","nodeType":"FunctionDefinition","parameters":{"id":13322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13321,"mutability":"mutable","name":"riskId","nameLocation":"17276:6:67","nodeType":"VariableDeclaration","scope":13332,"src":"17268:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17268:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17267:16:67"},"returnParameters":{"id":13326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13325,"mutability":"mutable","name":"risk","nameLocation":"17318:4:67","nodeType":"VariableDeclaration","scope":13332,"src":"17306:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":13324,"nodeType":"UserDefinedTypeName","pathNode":{"id":13323,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"17306:4:67"},"referencedDeclaration":11917,"src":"17306:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"src":"17305:18:67"},"scope":13585,"src":"17251:99:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13340,"nodeType":"Block","src":"17428:44:67","statements":[{"expression":{"expression":{"id":13337,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11938,"src":"17445:13:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"17445:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13336,"id":13339,"nodeType":"Return","src":"17438:27:67"}]},"functionSelector":"7ce5e82f","id":13341,"implemented":true,"kind":"function","modifiers":[],"name":"applications","nameLocation":"17365:12:67","nodeType":"FunctionDefinition","parameters":{"id":13333,"nodeType":"ParameterList","parameters":[],"src":"17377:2:67"},"returnParameters":{"id":13336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13335,"mutability":"mutable","name":"applicationCount","nameLocation":"17410:16:67","nodeType":"VariableDeclaration","scope":13341,"src":"17402:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13334,"name":"uint256","nodeType":"ElementaryTypeName","src":"17402:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17401:26:67"},"scope":13585,"src":"17356:116:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13352,"nodeType":"Block","src":"17569:53:67","statements":[{"expression":{"baseExpression":{"id":13348,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11938,"src":"17586:13:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13350,"indexExpression":{"id":13349,"name":"applicationIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13343,"src":"17600:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17586:29:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13347,"id":13351,"nodeType":"Return","src":"17579:36:67"}]},"functionSelector":"d52d2d06","id":13353,"implemented":true,"kind":"function","modifiers":[],"name":"getApplicationId","nameLocation":"17487:16:67","nodeType":"FunctionDefinition","parameters":{"id":13344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13343,"mutability":"mutable","name":"applicationIdx","nameLocation":"17512:14:67","nodeType":"VariableDeclaration","scope":13353,"src":"17504:22:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13342,"name":"uint256","nodeType":"ElementaryTypeName","src":"17504:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17503:24:67"},"returnParameters":{"id":13347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13346,"mutability":"mutable","name":"processId","nameLocation":"17558:9:67","nodeType":"VariableDeclaration","scope":13353,"src":"17550:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17550:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17549:19:67"},"scope":13585,"src":"17478:144:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13367,"nodeType":"Block","src":"17705:63:67","statements":[{"expression":{"arguments":[{"baseExpression":{"id":13362,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"17743:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":13364,"indexExpression":{"id":13363,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13355,"src":"17753:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17743:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":13360,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"17722:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":13361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"17722:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":13365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17722:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13359,"id":13366,"nodeType":"Return","src":"17715:46:67"}]},"functionSelector":"ddbfd8ef","id":13368,"implemented":true,"kind":"function","modifiers":[],"name":"policies","nameLocation":"17637:8:67","nodeType":"FunctionDefinition","parameters":{"id":13356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13355,"mutability":"mutable","name":"riskId","nameLocation":"17654:6:67","nodeType":"VariableDeclaration","scope":13368,"src":"17646:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13354,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17646:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17645:16:67"},"returnParameters":{"id":13359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13358,"mutability":"mutable","name":"policyCount","nameLocation":"17692:11:67","nodeType":"VariableDeclaration","scope":13368,"src":"17684:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13357,"name":"uint256","nodeType":"ElementaryTypeName","src":"17684:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17683:21:67"},"scope":13585,"src":"17628:140:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13385,"nodeType":"Block","src":"17871:70:67","statements":[{"expression":{"arguments":[{"baseExpression":{"id":13379,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"17905:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":13381,"indexExpression":{"id":13380,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13370,"src":"17915:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17905:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":13382,"name":"policyIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13372,"src":"17924:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13377,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"17888:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":13378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11132,"src":"17888:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":13383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17888:46:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13376,"id":13384,"nodeType":"Return","src":"17881:53:67"}]},"functionSelector":"412f91d9","id":13386,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyId","nameLocation":"17783:11:67","nodeType":"FunctionDefinition","parameters":{"id":13373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13370,"mutability":"mutable","name":"riskId","nameLocation":"17803:6:67","nodeType":"VariableDeclaration","scope":13386,"src":"17795:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17795:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13372,"mutability":"mutable","name":"policyIdx","nameLocation":"17819:9:67","nodeType":"VariableDeclaration","scope":13386,"src":"17811:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13371,"name":"uint256","nodeType":"ElementaryTypeName","src":"17811:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17794:35:67"},"returnParameters":{"id":13376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13375,"mutability":"mutable","name":"processId","nameLocation":"17860:9:67","nodeType":"VariableDeclaration","scope":13386,"src":"17852:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17852:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17851:19:67"},"scope":13585,"src":"17774:167:67","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4016],"body":{"id":13394,"nodeType":"Block","src":"18046:42:67","statements":[{"expression":{"hexValue":"2862797465733332207269736b496429","id":13392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18063:18:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_613854e3af38a6d6c072065806f5de3534172b4dc44e1a9acd5e25f6a8ee3fa9","typeString":"literal_string \"(bytes32 riskId)\""},"value":"(bytes32 riskId)"},"functionReturnParameters":13391,"id":13393,"nodeType":"Return","src":"18056:25:67"}]},"functionSelector":"94f64ff4","id":13395,"implemented":true,"kind":"function","modifiers":[],"name":"getApplicationDataStructure","nameLocation":"17956:27:67","nodeType":"FunctionDefinition","overrides":{"id":13388,"nodeType":"OverrideSpecifier","overrides":[],"src":"17995:8:67"},"parameters":{"id":13387,"nodeType":"ParameterList","parameters":[],"src":"17983:2:67"},"returnParameters":{"id":13391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13390,"mutability":"mutable","name":"dataStructure","nameLocation":"18031:13:67","nodeType":"VariableDeclaration","scope":13395,"src":"18017:27:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13389,"name":"string","nodeType":"ElementaryTypeName","src":"18017:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18016:29:67"},"scope":13585,"src":"17947:141:67","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":13464,"nodeType":"Block","src":"18245:664:67","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13407,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13397,"src":"18263:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13408,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"18274:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18263:32:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034303a5249534b5f545249474745525f544f4f5f4c41524745","id":13410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18297:38:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_d25b01973080c85f3d4c19010fc1d88672bc6d17cea35996204c37425ae4f136","typeString":"literal_string \"ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE\""},"value":"ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d25b01973080c85f3d4c19010fc1d88672bc6d17cea35996204c37425ae4f136","typeString":"literal_string \"ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE\""}],"id":13406,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18255:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18255:81:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13412,"nodeType":"ExpressionStatement","src":"18255:81:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13414,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13397,"src":"18354:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":13415,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13399,"src":"18364:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18354:14:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034313a5249534b5f545249474745525f4e4f545f4c41524745525f5448414e5f45584954","id":13417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18370:49:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_412e0dd059ff5ee1474516ff048f71840a3a2965c87e0ba7efd8312e11193f6b","typeString":"literal_string \"ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT\""},"value":"ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_412e0dd059ff5ee1474516ff048f71840a3a2965c87e0ba7efd8312e11193f6b","typeString":"literal_string \"ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT\""}],"id":13413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18346:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18346:74:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13419,"nodeType":"ExpressionStatement","src":"18346:74:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13421,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13399,"src":"18438:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13422,"name":"RISK_EXIT_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11881,"src":"18446:13:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18438:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034323a5249534b5f455849545f544f4f5f4c41524745","id":13424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18461:35:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_2498ce872169b7763abec28f7059d4a97ac70a016e3a78c66a9f5c7740b38ef8","typeString":"literal_string \"ERROR:AYI-042:RISK_EXIT_TOO_LARGE\""},"value":"ERROR:AYI-042:RISK_EXIT_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2498ce872169b7763abec28f7059d4a97ac70a016e3a78c66a9f5c7740b38ef8","typeString":"literal_string \"ERROR:AYI-042:RISK_EXIT_TOO_LARGE\""}],"id":13420,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18430:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18430:67:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13426,"nodeType":"ExpressionStatement","src":"18430:67:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13428,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"18515:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":13429,"name":"RISK_TSI_AT_EXIT_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11886,"src":"18522:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18515:27:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034333a5249534b5f5453495f544f4f5f534d414c4c","id":13431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18545:34:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_ac82fb86fd21de21f78be2f637e9fab58b40e12b4a4583436526b5f1f92f6037","typeString":"literal_string \"ERROR:AYI-043:RISK_TSI_TOO_SMALL\""},"value":"ERROR:AYI-043:RISK_TSI_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ac82fb86fd21de21f78be2f637e9fab58b40e12b4a4583436526b5f1f92f6037","typeString":"literal_string \"ERROR:AYI-043:RISK_TSI_TOO_SMALL\""}],"id":13427,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18507:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18507:73:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13433,"nodeType":"ExpressionStatement","src":"18507:73:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13435,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"18598:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13436,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"18605:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18598:28:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034343a5249534b5f5453495f544f4f5f4c41524745","id":13438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18629:34:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c593a3453eafb148b39dbe11ea4cd77edd7d3bf9c49913b3d86cf2b2ad158ac6","typeString":"literal_string \"ERROR:AYI-044:RISK_TSI_TOO_LARGE\""},"value":"ERROR:AYI-044:RISK_TSI_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c593a3453eafb148b39dbe11ea4cd77edd7d3bf9c49913b3d86cf2b2ad158ac6","typeString":"literal_string \"ERROR:AYI-044:RISK_TSI_TOO_LARGE\""}],"id":13434,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18590:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18590:74:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13440,"nodeType":"ExpressionStatement","src":"18590:74:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13442,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"18682:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":13443,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13399,"src":"18688:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18682:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13445,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"18696:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18682:35:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034353a5249534b5f5453495f455849545f53554d5f544f4f5f4c41524745","id":13447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18719:43:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_722b7f7e542cc90fba74057b4a362428bdd9a3b53029c438d846a79f1ac5a7d3","typeString":"literal_string \"ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE\""},"value":"ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_722b7f7e542cc90fba74057b4a362428bdd9a3b53029c438d846a79f1ac5a7d3","typeString":"literal_string \"ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE\""}],"id":13441,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18674:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18674:89:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13449,"nodeType":"ExpressionStatement","src":"18674:89:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13451,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13403,"src":"18781:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18787:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18781:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034363a5249534b5f4150485f5a45524f5f494e56414c4944","id":13454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18790:37:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_0a4d1e7ee13d3e1c186b0c5039ac828c21427604ef12eb5f13ec178f7b5ae702","typeString":"literal_string \"ERROR:AYI-046:RISK_APH_ZERO_INVALID\""},"value":"ERROR:AYI-046:RISK_APH_ZERO_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0a4d1e7ee13d3e1c186b0c5039ac828c21427604ef12eb5f13ec178f7b5ae702","typeString":"literal_string \"ERROR:AYI-046:RISK_APH_ZERO_INVALID\""}],"id":13450,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18773:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18773:55:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13456,"nodeType":"ExpressionStatement","src":"18773:55:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13458,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13403,"src":"18846:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13459,"name":"RISK_APH_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11876,"src":"18853:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18846:19:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034373a5249534b5f4150485f544f4f5f4c41524745","id":13461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18867:34:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_41a8e910e497c53c0ffe6a8d374e9ceae17e46879b937ab53f2189842ece12cd","typeString":"literal_string \"ERROR:AYI-047:RISK_APH_TOO_LARGE\""},"value":"ERROR:AYI-047:RISK_APH_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_41a8e910e497c53c0ffe6a8d374e9ceae17e46879b937ab53f2189842ece12cd","typeString":"literal_string \"ERROR:AYI-047:RISK_APH_TOO_LARGE\""}],"id":13457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18838:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18838:64:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13463,"nodeType":"ExpressionStatement","src":"18838:64:67"}]},"id":13465,"implemented":true,"kind":"function","modifiers":[],"name":"_validateRiskParameters","nameLocation":"18104:23:67","nodeType":"FunctionDefinition","parameters":{"id":13404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13397,"mutability":"mutable","name":"trigger","nameLocation":"18145:7:67","nodeType":"VariableDeclaration","scope":13465,"src":"18137:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13396,"name":"uint256","nodeType":"ElementaryTypeName","src":"18137:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13399,"mutability":"mutable","name":"exit","nameLocation":"18171:4:67","nodeType":"VariableDeclaration","scope":13465,"src":"18163:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13398,"name":"uint256","nodeType":"ElementaryTypeName","src":"18163:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13401,"mutability":"mutable","name":"tsi","nameLocation":"18193:3:67","nodeType":"VariableDeclaration","scope":13465,"src":"18185:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13400,"name":"uint256","nodeType":"ElementaryTypeName","src":"18185:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13403,"mutability":"mutable","name":"aph","nameLocation":"18214:3:67","nodeType":"VariableDeclaration","scope":13465,"src":"18206:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13402,"name":"uint256","nodeType":"ElementaryTypeName","src":"18206:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18127:96:67"},"returnParameters":{"id":13405,"nodeType":"ParameterList","parameters":[],"src":"18245:0:67"},"scope":13585,"src":"18095:814:67","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13554,"nodeType":"Block","src":"18996:868:67","statements":[{"assignments":[13477],"declarations":[{"constant":false,"id":13477,"mutability":"mutable","name":"application","nameLocation":"19033:11:67","nodeType":"VariableDeclaration","scope":13554,"src":"19006:38:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":13476,"nodeType":"UserDefinedTypeName","pathNode":{"id":13475,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"19006:19:67"},"referencedDeclaration":5262,"src":"19006:19:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":13481,"initialValue":{"arguments":[{"id":13479,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19076:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13478,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"19060:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":13480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19060:25:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"19006:79:67"},{"assignments":[13483],"declarations":[{"constant":false,"id":13483,"mutability":"mutable","name":"claimAmount","nameLocation":"19104:11:67","nodeType":"VariableDeclaration","scope":13554,"src":"19096:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13482,"name":"uint256","nodeType":"ElementaryTypeName","src":"19096:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13490,"initialValue":{"arguments":[{"expression":{"id":13485,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13470,"src":"19147:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk memory"}},"id":13486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutPercentage","nodeType":"MemberAccess","referencedDeclaration":11912,"src":"19147:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13487,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13477,"src":"19183:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":13488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"19183:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13484,"name":"calculatePayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13213,"src":"19118:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19118:94:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19096:116:67"},{"assignments":[13492],"declarations":[{"constant":false,"id":13492,"mutability":"mutable","name":"claimId","nameLocation":"19239:7:67","nodeType":"VariableDeclaration","scope":13554,"src":"19231:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13491,"name":"uint256","nodeType":"ElementaryTypeName","src":"19231:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13498,"initialValue":{"arguments":[{"id":13494,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19259:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13495,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"19269:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":13496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19282:2:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":13493,"name":"_newClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"19249:9:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) returns (uint256)"}},"id":13497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19249:36:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19231:54:67"},{"eventCall":{"arguments":[{"id":13500,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19320:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13501,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"19330:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13502,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"19339:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13499,"name":"LogAyiiClaimCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12036,"src":"19300:19:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":13503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19300:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13504,"nodeType":"EmitStatement","src":"19295:56:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13505,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"19366:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19380:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19366:15:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13548,"nodeType":"Block","src":"19709:101:67","statements":[{"expression":{"arguments":[{"id":13539,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19737:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13540,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"19747:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13538,"name":"_declineClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"19723:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19723:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13542,"nodeType":"ExpressionStatement","src":"19723:32:67"},{"expression":{"arguments":[{"id":13544,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19781:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13545,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"19791:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13543,"name":"_closeClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3845,"src":"19769:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19769:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13547,"nodeType":"ExpressionStatement","src":"19769:30:67"}]},"id":13549,"nodeType":"IfStatement","src":"19362:448:67","trueBody":{"id":13537,"nodeType":"Block","src":"19383:312:67","statements":[{"assignments":[13509],"declarations":[{"constant":false,"id":13509,"mutability":"mutable","name":"payoutAmount","nameLocation":"19405:12:67","nodeType":"VariableDeclaration","scope":13537,"src":"19397:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13508,"name":"uint256","nodeType":"ElementaryTypeName","src":"19397:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13511,"initialValue":{"id":13510,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"19420:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19397:34:67"},{"expression":{"arguments":[{"id":13513,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19459:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13514,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"19469:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13515,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13509,"src":"19478:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13512,"name":"_confirmClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"19445:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":13516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19445:46:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13517,"nodeType":"ExpressionStatement","src":"19445:46:67"},{"assignments":[13519],"declarations":[{"constant":false,"id":13519,"mutability":"mutable","name":"payoutId","nameLocation":"19514:8:67","nodeType":"VariableDeclaration","scope":13537,"src":"19506:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13518,"name":"uint256","nodeType":"ElementaryTypeName","src":"19506:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13526,"initialValue":{"arguments":[{"id":13521,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19536:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13522,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"19546:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13523,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13509,"src":"19555:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":13524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19569:2:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":13520,"name":"_newPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"19525:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) returns (uint256)"}},"id":13525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19525:47:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19506:66:67"},{"expression":{"arguments":[{"id":13528,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19601:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13529,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13519,"src":"19611:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13527,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"19586:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (uint256,uint256)"}},"id":13530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19586:34:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":13531,"nodeType":"ExpressionStatement","src":"19586:34:67"},{"eventCall":{"arguments":[{"id":13533,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19661:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13534,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13509,"src":"19671:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13532,"name":"LogAyiiPayoutCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12042,"src":"19640:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19640:44:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13536,"nodeType":"EmitStatement","src":"19635:49:67"}]}},{"eventCall":{"arguments":[{"id":13551,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19848:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13550,"name":"LogAyiiPolicyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"19825:22:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19825:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13553,"nodeType":"EmitStatement","src":"19820:37:67"}]},"id":13555,"implemented":true,"kind":"function","modifiers":[],"name":"_processPolicy","nameLocation":"18924:14:67","nodeType":"FunctionDefinition","parameters":{"id":13471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13467,"mutability":"mutable","name":"policyId","nameLocation":"18947:8:67","nodeType":"VariableDeclaration","scope":13555,"src":"18939:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13466,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18939:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13470,"mutability":"mutable","name":"risk","nameLocation":"18969:4:67","nodeType":"VariableDeclaration","scope":13555,"src":"18957:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":13469,"nodeType":"UserDefinedTypeName","pathNode":{"id":13468,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"18957:4:67"},"referencedDeclaration":11917,"src":"18957:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"src":"18938:36:67"},"returnParameters":{"id":13472,"nodeType":"ParameterList","parameters":[],"src":"18996:0:67"},"scope":13585,"src":"18915:949:67","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13583,"nodeType":"Block","src":"19946:144:67","statements":[{"assignments":[13566],"declarations":[{"constant":false,"id":13566,"mutability":"mutable","name":"application","nameLocation":"19983:11:67","nodeType":"VariableDeclaration","scope":13583,"src":"19956:38:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":13565,"nodeType":"UserDefinedTypeName","pathNode":{"id":13564,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"19956:19:67"},"referencedDeclaration":5262,"src":"19956:19:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":13570,"initialValue":{"arguments":[{"id":13568,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13557,"src":"20013:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13567,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"19997:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":13569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19997:26:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"19956:67:67"},{"expression":{"id":13581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":13571,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13560,"src":"20034:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13572,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"20033:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":13575,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13566,"src":"20055:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":13576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"20055:16:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20074:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20074:7:67","typeDescriptions":{}}}],"id":13579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20073:9:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":13573,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"20044:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"20044:10:67","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20044:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"20033:50:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13582,"nodeType":"ExpressionStatement","src":"20033:50:67"}]},"id":13584,"implemented":true,"kind":"function","modifiers":[],"name":"_getRiskId","nameLocation":"19879:10:67","nodeType":"FunctionDefinition","parameters":{"id":13558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13557,"mutability":"mutable","name":"processId","nameLocation":"19898:9:67","nodeType":"VariableDeclaration","scope":13584,"src":"19890:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19890:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19889:19:67"},"returnParameters":{"id":13561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13560,"mutability":"mutable","name":"riskId","nameLocation":"19938:6:67","nodeType":"VariableDeclaration","scope":13584,"src":"19930:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19930:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19929:16:67"},"scope":13585,"src":"19870:220:67","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":13586,"src":"562:19530:67"}],"src":"32:20060:67"},"id":67},"contracts/examples/AyiiRiskpool.sol":{"ast":{"absolutePath":"contracts/examples/AyiiRiskpool.sol","exportedSymbols":{"AccessControl":[7145],"AyiiRiskpool":[13686],"BasicRiskpool":[2464],"Component":[2884],"Context":[10518],"ERC165":[10828],"IAccess":[4836],"IAccessControl":[7343],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Riskpool":[4773],"Strings":[10804]},"id":13687,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":13587,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:68"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":13588,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13687,"sourceUnit":7146,"src":"66:58:68","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol","file":"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol","id":13589,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13687,"sourceUnit":2465,"src":"128:72:68","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"@etherisc/gif-interface/contracts/modules/IBundle.sol","id":13590,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13687,"sourceUnit":5021,"src":"202:63:68","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":13591,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13687,"sourceUnit":5434,"src":"267:63:68","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13592,"name":"BasicRiskpool","nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"365:13:68"},"id":13593,"nodeType":"InheritanceSpecifier","src":"365:13:68"},{"baseName":{"id":13594,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":7145,"src":"385:13:68"},"id":13595,"nodeType":"InheritanceSpecifier","src":"385:13:68"}],"contractDependencies":[2464,2884,2988,3312,4773,5073,7145,7343,7481,10518,10828,10840],"contractKind":"contract","fullyImplemented":true,"id":13686,"linearizedBaseContracts":[13686,7145,10828,10840,7343,2464,4773,2884,7481,10518,5073,3312,2988],"name":"AyiiRiskpool","nameLocation":"343:12:68","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"76082a5e","id":13600,"mutability":"constant","name":"INVESTOR_ROLE","nameLocation":"506:13:68","nodeType":"VariableDeclaration","scope":13686,"src":"482:61:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"482:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"494e564553544f52","id":13598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"532:10:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d935","typeString":"literal_string \"INVESTOR\""},"value":"INVESTOR"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d935","typeString":"literal_string \"INVESTOR\""}],"id":13597,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"522:9:68","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"522:21:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"be61e91e","id":13605,"mutability":"constant","name":"SUM_OF_SUM_INSURED_CAP","nameLocation":"659:22:68","nodeType":"VariableDeclaration","scope":13686,"src":"635:55:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13601,"name":"uint256","nodeType":"ElementaryTypeName","src":"635:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"},"id":13604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"684:2:68","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":13603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"688:2:68","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"684:6:68","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"}},"visibility":"public"},{"body":{"id":13632,"nodeType":"Block","src":"965:65:68","statements":[{"expression":{"arguments":[{"id":13627,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"989:18:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":13628,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1009:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1009:12:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13626,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7053,"src":"978:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":13630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"978:44:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13631,"nodeType":"ExpressionStatement","src":"978:44:68"}]},"id":13633,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":13618,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13607,"src":"881:4:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13619,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13609,"src":"887:17:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13620,"name":"SUM_OF_SUM_INSURED_CAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13605,"src":"906:22:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13621,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13611,"src":"930:10:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13622,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13613,"src":"942:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13623,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13615,"src":"950:8:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":13624,"modifierName":{"id":13617,"name":"BasicRiskpool","nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"867:13:68"},"nodeType":"ModifierInvocation","src":"867:92:68"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13607,"mutability":"mutable","name":"name","nameLocation":"729:4:68","nodeType":"VariableDeclaration","scope":13633,"src":"721:12:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"721:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13609,"mutability":"mutable","name":"collateralization","nameLocation":"752:17:68","nodeType":"VariableDeclaration","scope":13633,"src":"744:25:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13608,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13611,"mutability":"mutable","name":"erc20Token","nameLocation":"788:10:68","nodeType":"VariableDeclaration","scope":13633,"src":"780:18:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13610,"name":"address","nodeType":"ElementaryTypeName","src":"780:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13613,"mutability":"mutable","name":"wallet","nameLocation":"817:6:68","nodeType":"VariableDeclaration","scope":13633,"src":"809:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13612,"name":"address","nodeType":"ElementaryTypeName","src":"809:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13615,"mutability":"mutable","name":"registry","nameLocation":"842:8:68","nodeType":"VariableDeclaration","scope":13633,"src":"834:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13614,"name":"address","nodeType":"ElementaryTypeName","src":"834:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"710:147:68"},"returnParameters":{"id":13625,"nodeType":"ParameterList","parameters":[],"src":"965:0:68"},"scope":13686,"src":"699:331:68","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":13645,"nodeType":"Block","src":"1127:54:68","statements":[{"expression":{"arguments":[{"id":13641,"name":"INVESTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13600,"src":"1149:13:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13642,"name":"investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13635,"src":"1164:8:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13640,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7053,"src":"1138:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":13643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1138:35:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13644,"nodeType":"ExpressionStatement","src":"1138:35:68"}]},"functionSelector":"9088c119","id":13646,"implemented":true,"kind":"function","modifiers":[{"id":13638,"modifierName":{"id":13637,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"1112:9:68"},"nodeType":"ModifierInvocation","src":"1112:9:68"}],"name":"grantInvestorRole","nameLocation":"1049:17:68","nodeType":"FunctionDefinition","parameters":{"id":13636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13635,"mutability":"mutable","name":"investor","nameLocation":"1075:8:68","nodeType":"VariableDeclaration","scope":13646,"src":"1067:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13634,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1066:18:68"},"returnParameters":{"id":13639,"nodeType":"ParameterList","parameters":[],"src":"1127:0:68"},"scope":13686,"src":"1040:141:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4268],"body":{"id":13667,"nodeType":"Block","src":"1356:71:68","statements":[{"expression":{"id":13665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13659,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13657,"src":"1367:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13662,"name":"filter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13648,"src":"1397:6:68","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13663,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13650,"src":"1405:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13660,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"1378:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AyiiRiskpool_$13686_$","typeString":"type(contract super AyiiRiskpool)"}},"id":13661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createBundle","nodeType":"MemberAccess","referencedDeclaration":4268,"src":"1378:18:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes memory,uint256) returns (uint256)"}},"id":13664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1378:41:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1367:52:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13666,"nodeType":"ExpressionStatement","src":"1367:52:68"}]},"functionSelector":"7888a2ff","id":13668,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13654,"name":"INVESTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13600,"src":"1301:13:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13655,"modifierName":{"id":13653,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"1292:8:68"},"nodeType":"ModifierInvocation","src":"1292:23:68"}],"name":"createBundle","nameLocation":"1200:12:68","nodeType":"FunctionDefinition","overrides":{"id":13652,"nodeType":"OverrideSpecifier","overrides":[],"src":"1274:8:68"},"parameters":{"id":13651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13648,"mutability":"mutable","name":"filter","nameLocation":"1226:6:68","nodeType":"VariableDeclaration","scope":13668,"src":"1213:19:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13647,"name":"bytes","nodeType":"ElementaryTypeName","src":"1213:5:68","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13650,"mutability":"mutable","name":"initialAmount","nameLocation":"1242:13:68","nodeType":"VariableDeclaration","scope":13668,"src":"1234:21:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13649,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1212:44:68"},"returnParameters":{"id":13658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13657,"mutability":"mutable","name":"bundleId","nameLocation":"1341:8:68","nodeType":"VariableDeclaration","scope":13668,"src":"1333:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13656,"name":"uint256","nodeType":"ElementaryTypeName","src":"1333:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1332:18:68"},"scope":13686,"src":"1191:236:68","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4722],"body":{"id":13684,"nodeType":"Block","src":"1709:36:68","statements":[{"expression":{"id":13682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13680,"name":"isMatching","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13678,"src":"1720:10:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1733:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1720:17:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13683,"nodeType":"ExpressionStatement","src":"1720:17:68"}]},"functionSelector":"86c71288","id":13685,"implemented":true,"kind":"function","modifiers":[],"name":"bundleMatchesApplication","nameLocation":"1508:24:68","nodeType":"FunctionDefinition","overrides":{"id":13676,"nodeType":"OverrideSpecifier","overrides":[],"src":"1646:8:68"},"parameters":{"id":13675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13671,"mutability":"mutable","name":"bundle","nameLocation":"1565:6:68","nodeType":"VariableDeclaration","scope":13685,"src":"1543:28:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":13670,"nodeType":"UserDefinedTypeName","pathNode":{"id":13669,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"1543:14:68"},"referencedDeclaration":4936,"src":"1543:14:68","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"},{"constant":false,"id":13674,"mutability":"mutable","name":"application","nameLocation":"1610:11:68","nodeType":"VariableDeclaration","scope":13685,"src":"1583:38:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":13673,"nodeType":"UserDefinedTypeName","pathNode":{"id":13672,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"1583:19:68"},"referencedDeclaration":5262,"src":"1583:19:68","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"1532:96:68"},"returnParameters":{"id":13679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13678,"mutability":"mutable","name":"isMatching","nameLocation":"1691:10:68","nodeType":"VariableDeclaration","scope":13685,"src":"1686:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13677,"name":"bool","nodeType":"ElementaryTypeName","src":"1686:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1685:17:68"},"scope":13686,"src":"1499:246:68","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":13687,"src":"334:1416:68"}],"src":"40:1710:68"},"id":68},"contracts/examples/mock/ChainlinkOperator.sol":{"ast":{"absolutePath":"contracts/examples/mock/ChainlinkOperator.sol","exportedSymbols":{"ChainlinkOperator":[14166],"Context":[10518],"Ownable":[7481]},"id":14167,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":13688,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"32:22:69"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":13689,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14167,"sourceUnit":7482,"src":"56:52:69","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13690,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"145:7:69"},"id":13691,"nodeType":"InheritanceSpecifier","src":"145:7:69"}],"contractDependencies":[7481,10518],"contractKind":"contract","fullyImplemented":true,"id":14166,"linearizedBaseContracts":[14166,7481,10518],"name":"ChainlinkOperator","nameLocation":"119:17:69","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ChainlinkOperator.Commitment","id":13696,"members":[{"constant":false,"id":13693,"mutability":"mutable","name":"paramsHash","nameLocation":"196:10:69","nodeType":"VariableDeclaration","scope":13696,"src":"188:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":13692,"name":"bytes31","nodeType":"ElementaryTypeName","src":"188:7:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"},{"constant":false,"id":13695,"mutability":"mutable","name":"dataVersion","nameLocation":"222:11:69","nodeType":"VariableDeclaration","scope":13696,"src":"216:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13694,"name":"uint8","nodeType":"ElementaryTypeName","src":"216:5:69","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"name":"Commitment","nameLocation":"167:10:69","nodeType":"StructDefinition","scope":14166,"src":"160:80:69","visibility":"public"},{"constant":true,"functionSelector":"25cb5bc0","id":13699,"mutability":"constant","name":"getExpiryTime","nameLocation":"270:13:69","nodeType":"VariableDeclaration","scope":14166,"src":"246:49:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13697,"name":"uint256","nodeType":"ElementaryTypeName","src":"246:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35","id":13698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"286:9:69","subdenomination":"minutes","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"5"},"visibility":"public"},{"constant":true,"id":13702,"mutability":"constant","name":"MAXIMUM_DATA_VERSION","nameLocation":"326:20:69","nodeType":"VariableDeclaration","scope":14166,"src":"301:51:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13700,"name":"uint256","nodeType":"ElementaryTypeName","src":"301:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"323536","id":13701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"349:3:69","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"private"},{"constant":true,"id":13705,"mutability":"constant","name":"MINIMUM_CONSUMER_GAS_LIMIT","nameLocation":"383:26:69","nodeType":"VariableDeclaration","scope":14166,"src":"358:60:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13703,"name":"uint256","nodeType":"ElementaryTypeName","src":"358:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"343030303030","id":13704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"412:6:69","typeDescriptions":{"typeIdentifier":"t_rational_400000_by_1","typeString":"int_const 400000"},"value":"400000"},"visibility":"private"},{"anonymous":false,"id":13712,"name":"AuthorizedSendersChanged","nameLocation":"431:24:69","nodeType":"EventDefinition","parameters":{"id":13711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13708,"indexed":false,"mutability":"mutable","name":"senders","nameLocation":"466:7:69","nodeType":"VariableDeclaration","scope":13712,"src":"456:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13706,"name":"address","nodeType":"ElementaryTypeName","src":"456:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13707,"nodeType":"ArrayTypeName","src":"456:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13710,"indexed":false,"mutability":"mutable","name":"changedBy","nameLocation":"483:9:69","nodeType":"VariableDeclaration","scope":13712,"src":"475:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13709,"name":"address","nodeType":"ElementaryTypeName","src":"475:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"455:38:69"},"src":"425:69:69"},{"anonymous":false,"id":13732,"name":"OracleRequest","nameLocation":"506:13:69","nodeType":"EventDefinition","parameters":{"id":13731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13714,"indexed":true,"mutability":"mutable","name":"specId","nameLocation":"545:6:69","nodeType":"VariableDeclaration","scope":13732,"src":"529:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"529:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13716,"indexed":false,"mutability":"mutable","name":"requester","nameLocation":"569:9:69","nodeType":"VariableDeclaration","scope":13732,"src":"561:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13715,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13718,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"596:9:69","nodeType":"VariableDeclaration","scope":13732,"src":"588:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"588:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13720,"indexed":false,"mutability":"mutable","name":"payment","nameLocation":"623:7:69","nodeType":"VariableDeclaration","scope":13732,"src":"615:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13719,"name":"uint256","nodeType":"ElementaryTypeName","src":"615:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13722,"indexed":false,"mutability":"mutable","name":"callbackAddr","nameLocation":"648:12:69","nodeType":"VariableDeclaration","scope":13732,"src":"640:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13721,"name":"address","nodeType":"ElementaryTypeName","src":"640:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13724,"indexed":false,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"677:18:69","nodeType":"VariableDeclaration","scope":13732,"src":"670:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13723,"name":"bytes4","nodeType":"ElementaryTypeName","src":"670:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":13726,"indexed":false,"mutability":"mutable","name":"cancelExpiration","nameLocation":"713:16:69","nodeType":"VariableDeclaration","scope":13732,"src":"705:24:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13725,"name":"uint256","nodeType":"ElementaryTypeName","src":"705:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13728,"indexed":false,"mutability":"mutable","name":"dataVersion","nameLocation":"747:11:69","nodeType":"VariableDeclaration","scope":13732,"src":"739:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13727,"name":"uint256","nodeType":"ElementaryTypeName","src":"739:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13730,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"774:4:69","nodeType":"VariableDeclaration","scope":13732,"src":"768:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13729,"name":"bytes","nodeType":"ElementaryTypeName","src":"768:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"519:265:69"},"src":"500:285:69"},{"anonymous":false,"id":13736,"name":"CancelOracleRequest","nameLocation":"797:19:69","nodeType":"EventDefinition","parameters":{"id":13735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13734,"indexed":true,"mutability":"mutable","name":"requestId","nameLocation":"833:9:69","nodeType":"VariableDeclaration","scope":13736,"src":"817:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13733,"name":"bytes32","nodeType":"ElementaryTypeName","src":"817:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"816:27:69"},"src":"791:53:69"},{"anonymous":false,"id":13740,"name":"OracleResponse","nameLocation":"856:14:69","nodeType":"EventDefinition","parameters":{"id":13739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13738,"indexed":true,"mutability":"mutable","name":"requestId","nameLocation":"887:9:69","nodeType":"VariableDeclaration","scope":13740,"src":"871:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"871:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"870:27:69"},"src":"850:48:69"},{"constant":false,"id":13744,"mutability":"mutable","name":"s_authorizedSenders","nameLocation":"963:19:69","nodeType":"VariableDeclaration","scope":14166,"src":"930:52:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13743,"keyType":{"id":13741,"name":"address","nodeType":"ElementaryTypeName","src":"938:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"930:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":13742,"name":"bool","nodeType":"ElementaryTypeName","src":"949:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"constant":false,"id":13747,"mutability":"mutable","name":"s_authorizedSenderList","nameLocation":"1006:22:69","nodeType":"VariableDeclaration","scope":14166,"src":"988:40:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":13745,"name":"address","nodeType":"ElementaryTypeName","src":"988:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13746,"nodeType":"ArrayTypeName","src":"988:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"private"},{"constant":false,"id":13752,"mutability":"mutable","name":"s_commitments","nameLocation":"1074:13:69","nodeType":"VariableDeclaration","scope":14166,"src":"1035:52:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment)"},"typeName":{"id":13751,"keyType":{"id":13748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1043:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1035:30:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment)"},"valueType":{"id":13750,"nodeType":"UserDefinedTypeName","pathNode":{"id":13749,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":13696,"src":"1054:10:69"},"referencedDeclaration":13696,"src":"1054:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage_ptr","typeString":"struct ChainlinkOperator.Commitment"}}},"visibility":"private"},{"body":{"id":13762,"nodeType":"Block","src":"1224:96:69","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":13756,"name":"_canSetAuthorizedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14165,"src":"1242:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":13757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1242:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f742073657420617574686f72697a65642073656e64657273","id":13758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1270:31:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_337562cc5e507e68e993a2940bfc6a29858c6f26ee0c10db449328584e3eb567","typeString":"literal_string \"Cannot set authorized senders\""},"value":"Cannot set authorized senders"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_337562cc5e507e68e993a2940bfc6a29858c6f26ee0c10db449328584e3eb567","typeString":"literal_string \"Cannot set authorized senders\""}],"id":13755,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1234:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1234:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13760,"nodeType":"ExpressionStatement","src":"1234:68:69"},{"id":13761,"nodeType":"PlaceholderStatement","src":"1312:1:69"}]},"documentation":{"id":13753,"nodeType":"StructuredDocumentation","src":"1094:83:69","text":" @notice prevents non-authorized addresses from calling this method"},"id":13763,"name":"validateAuthorizedSenderSetter","nameLocation":"1191:30:69","nodeType":"ModifierDefinition","parameters":{"id":13754,"nodeType":"ParameterList","parameters":[],"src":"1221:2:69"},"src":"1182:138:69","virtual":false,"visibility":"internal"},{"body":{"id":13768,"nodeType":"Block","src":"1350:3:69","statements":[]},"id":13769,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":13766,"modifierName":{"id":13765,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"1340:7:69"},"nodeType":"ModifierInvocation","src":"1340:9:69"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13764,"nodeType":"ParameterList","parameters":[],"src":"1337:2:69"},"returnParameters":{"id":13767,"nodeType":"ParameterList","parameters":[],"src":"1350:0:69"},"scope":14166,"src":"1326:27:69","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":13842,"nodeType":"Block","src":"1668:623:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13779,"name":"senders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13773,"src":"1686:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1686:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1703:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1686:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742068617665206174206c65617374203120617574686f72697a65642073656e646572","id":13783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1706:40:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_14acbd13c311ce77adbf2abb2c29118807e2efa37eb8080b0a33366f8bd4c4af","typeString":"literal_string \"Must have at least 1 authorized sender\""},"value":"Must have at least 1 authorized sender"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_14acbd13c311ce77adbf2abb2c29118807e2efa37eb8080b0a33366f8bd4c4af","typeString":"literal_string \"Must have at least 1 authorized sender\""}],"id":13778,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1678:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1678:69:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13785,"nodeType":"ExpressionStatement","src":"1678:69:69"},{"assignments":[13787],"declarations":[{"constant":false,"id":13787,"mutability":"mutable","name":"authorizedSendersLength","nameLocation":"1817:23:69","nodeType":"VariableDeclaration","scope":13842,"src":"1809:31:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13786,"name":"uint256","nodeType":"ElementaryTypeName","src":"1809:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13790,"initialValue":{"expression":{"id":13788,"name":"s_authorizedSenderList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13747,"src":"1843:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1843:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1809:63:69"},{"body":{"id":13809,"nodeType":"Block","src":"1936:79:69","statements":[{"expression":{"id":13807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13801,"name":"s_authorizedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13744,"src":"1950:19:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13805,"indexExpression":{"baseExpression":{"id":13802,"name":"s_authorizedSenderList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13747,"src":"1970:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13804,"indexExpression":{"id":13803,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13792,"src":"1993:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1970:25:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1950:46:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":13806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1999:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1950:54:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13808,"nodeType":"ExpressionStatement","src":"1950:54:69"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13792,"src":"1902:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13796,"name":"authorizedSendersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13787,"src":"1906:23:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1902:27:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13810,"initializationExpression":{"assignments":[13792],"declarations":[{"constant":false,"id":13792,"mutability":"mutable","name":"i","nameLocation":"1895:1:69","nodeType":"VariableDeclaration","scope":13810,"src":"1887:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13791,"name":"uint256","nodeType":"ElementaryTypeName","src":"1887:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13794,"initialValue":{"hexValue":"30","id":13793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1899:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1887:13:69"},"loopExpression":{"expression":{"id":13799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1931:3:69","subExpression":{"id":13798,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13792,"src":"1931:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13800,"nodeType":"ExpressionStatement","src":"1931:3:69"},"nodeType":"ForStatement","src":"1882:133:69"},{"body":{"id":13830,"nodeType":"Block","src":"2096:63:69","statements":[{"expression":{"id":13828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13822,"name":"s_authorizedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13744,"src":"2110:19:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13826,"indexExpression":{"baseExpression":{"id":13823,"name":"senders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13773,"src":"2130:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13825,"indexExpression":{"id":13824,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13812,"src":"2138:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2130:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2110:31:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2144:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2110:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13829,"nodeType":"ExpressionStatement","src":"2110:38:69"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13815,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13812,"src":"2071:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13816,"name":"senders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13773,"src":"2075:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2075:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2071:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13831,"initializationExpression":{"assignments":[13812],"declarations":[{"constant":false,"id":13812,"mutability":"mutable","name":"i","nameLocation":"2064:1:69","nodeType":"VariableDeclaration","scope":13831,"src":"2056:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13811,"name":"uint256","nodeType":"ElementaryTypeName","src":"2056:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13814,"initialValue":{"hexValue":"30","id":13813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2068:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2056:13:69"},"loopExpression":{"expression":{"id":13820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2091:3:69","subExpression":{"id":13819,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13812,"src":"2091:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13821,"nodeType":"ExpressionStatement","src":"2091:3:69"},"nodeType":"ForStatement","src":"2051:108:69"},{"expression":{"id":13834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13832,"name":"s_authorizedSenderList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13747,"src":"2192:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13833,"name":"senders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13773,"src":"2217:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"src":"2192:32:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13835,"nodeType":"ExpressionStatement","src":"2192:32:69"},{"eventCall":{"arguments":[{"id":13837,"name":"senders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13773,"src":"2264:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":13838,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"2273:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2273:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13836,"name":"AuthorizedSendersChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13712,"src":"2239:24:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (address[] memory,address)"}},"id":13840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2239:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13841,"nodeType":"EmitStatement","src":"2234:50:69"}]},"documentation":{"id":13770,"nodeType":"StructuredDocumentation","src":"1359:184:69","text":" @notice Sets the fulfillment permission for a given node. Use `true` to allow, `false` to disallow.\n @param senders The addresses of the authorized Chainlink node"},"functionSelector":"ee56997b","id":13843,"implemented":true,"kind":"function","modifiers":[{"id":13776,"modifierName":{"id":13775,"name":"validateAuthorizedSenderSetter","nodeType":"IdentifierPath","referencedDeclaration":13763,"src":"1632:30:69"},"nodeType":"ModifierInvocation","src":"1632:30:69"}],"name":"setAuthorizedSenders","nameLocation":"1557:20:69","nodeType":"FunctionDefinition","parameters":{"id":13774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13773,"mutability":"mutable","name":"senders","nameLocation":"1597:7:69","nodeType":"VariableDeclaration","scope":13843,"src":"1578:26:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13771,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13772,"nodeType":"ArrayTypeName","src":"1578:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1577:28:69"},"returnParameters":{"id":13777,"nodeType":"ParameterList","parameters":[],"src":"1668:0:69"},"scope":14166,"src":"1548:743:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13851,"nodeType":"Block","src":"2400:46:69","statements":[{"expression":{"id":13849,"name":"s_authorizedSenderList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13747,"src":"2417:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":13848,"id":13850,"nodeType":"Return","src":"2410:29:69"}]},"functionSelector":"2408afaa","id":13852,"implemented":true,"kind":"function","modifiers":[],"name":"getAuthorizedSenders","nameLocation":"2307:20:69","nodeType":"FunctionDefinition","parameters":{"id":13844,"nodeType":"ParameterList","parameters":[],"src":"2327:2:69"},"returnParameters":{"id":13848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13852,"src":"2377:17:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13845,"name":"address","nodeType":"ElementaryTypeName","src":"2377:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13846,"nodeType":"ArrayTypeName","src":"2377:10:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2376:19:69"},"scope":14166,"src":"2298:148:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13878,"nodeType":"Block","src":"3039:513:69","statements":[{"AST":{"nodeType":"YulBlock","src":"3058:291:69","statements":[{"expression":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3146:4:69"},{"kind":"number","nodeType":"YulLiteral","src":"3152:2:69","type":"","value":"36"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3142:3:69"},"nodeType":"YulFunctionCall","src":"3142:13:69"},{"name":"sender","nodeType":"YulIdentifier","src":"3157:6:69"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3135:6:69"},"nodeType":"YulFunctionCall","src":"3135:29:69"},"nodeType":"YulExpressionStatement","src":"3135:29:69"},{"expression":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3286:4:69"},{"kind":"number","nodeType":"YulLiteral","src":"3292:2:69","type":"","value":"68"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3282:3:69"},"nodeType":"YulFunctionCall","src":"3282:13:69"},{"name":"amount","nodeType":"YulIdentifier","src":"3297:6:69"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3275:6:69"},"nodeType":"YulFunctionCall","src":"3275:29:69"},"nodeType":"YulExpressionStatement","src":"3275:29:69"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":13857,"isOffset":false,"isSlot":false,"src":"3297:6:69","valueSize":1},{"declaration":13859,"isOffset":false,"isSlot":false,"src":"3146:4:69","valueSize":1},{"declaration":13859,"isOffset":false,"isSlot":false,"src":"3286:4:69","valueSize":1},{"declaration":13855,"isOffset":false,"isSlot":false,"src":"3157:6:69","valueSize":1}],"id":13862,"nodeType":"InlineAssembly","src":"3049:300:69"},{"assignments":[13864,null],"declarations":[{"constant":false,"id":13864,"mutability":"mutable","name":"success","nameLocation":"3423:7:69","nodeType":"VariableDeclaration","scope":13878,"src":"3418:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13863,"name":"bool","nodeType":"ElementaryTypeName","src":"3418:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":13872,"initialValue":{"arguments":[{"id":13870,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13859,"src":"3463:4:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":13867,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"3444:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkOperator_$14166","typeString":"contract ChainlinkOperator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkOperator_$14166","typeString":"contract ChainlinkOperator"}],"id":13866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3436:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13865,"name":"address","nodeType":"ElementaryTypeName","src":"3436:7:69","typeDescriptions":{}}},"id":13868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3436:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"3436:26:69","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":13871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3436:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3417:51:69"},{"expression":{"arguments":[{"id":13874,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13864,"src":"3509:7:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e61626c6520746f206372656174652072657175657374","id":13875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3518:26:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c77c8323757c7c6dd2b21d1591cb61b26bb567563048742ae07b24e5b659c50","typeString":"literal_string \"Unable to create request\""},"value":"Unable to create request"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7c77c8323757c7c6dd2b21d1591cb61b26bb567563048742ae07b24e5b659c50","typeString":"literal_string \"Unable to create request\""}],"id":13873,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3501:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3501:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13877,"nodeType":"ExpressionStatement","src":"3501:44:69"}]},"documentation":{"id":13853,"nodeType":"StructuredDocumentation","src":"2452:383:69","text":" @notice Called when LINK is sent to the contract via `transferAndCall`\n @dev The data payload's first 2 words will be overwritten by the `sender` and `amount`\n values to ensure correctness. Calls oracleRequest.\n @param sender Address of the sender\n @param amount Amount of LINK sent (specified in wei)\n @param data Payload of the transaction"},"functionSelector":"a4c0ed36","id":13879,"implemented":true,"kind":"function","modifiers":[],"name":"onTokenTransfer","nameLocation":"2849:15:69","nodeType":"FunctionDefinition","parameters":{"id":13860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13855,"mutability":"mutable","name":"sender","nameLocation":"2882:6:69","nodeType":"VariableDeclaration","scope":13879,"src":"2874:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13854,"name":"address","nodeType":"ElementaryTypeName","src":"2874:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13857,"mutability":"mutable","name":"amount","nameLocation":"2906:6:69","nodeType":"VariableDeclaration","scope":13879,"src":"2898:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13856,"name":"uint256","nodeType":"ElementaryTypeName","src":"2898:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13859,"mutability":"mutable","name":"data","nameLocation":"2935:4:69","nodeType":"VariableDeclaration","scope":13879,"src":"2922:17:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13858,"name":"bytes","nodeType":"ElementaryTypeName","src":"2922:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2864:81:69"},"returnParameters":{"id":13861,"nodeType":"ParameterList","parameters":[],"src":"3039:0:69"},"scope":14166,"src":"2840:712:69","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":13924,"nodeType":"Block","src":"4584:368:69","statements":[{"assignments":[13900,13902],"declarations":[{"constant":false,"id":13900,"mutability":"mutable","name":"requestId","nameLocation":"4603:9:69","nodeType":"VariableDeclaration","scope":13924,"src":"4595:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4595:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13902,"mutability":"mutable","name":"expiration","nameLocation":"4622:10:69","nodeType":"VariableDeclaration","scope":13924,"src":"4614:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13901,"name":"uint256","nodeType":"ElementaryTypeName","src":"4614:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13911,"initialValue":{"arguments":[{"id":13904,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13882,"src":"4680:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13905,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13884,"src":"4700:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13906,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13888,"src":"4721:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13907,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13890,"src":"4750:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":13908,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13892,"src":"4782:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13909,"name":"dataVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13894,"src":"4801:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13903,"name":"_verifyAndProcessOracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14050,"src":"4636:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$_t_uint256_$","typeString":"function (address,uint256,address,bytes4,uint256,uint256) returns (bytes32,uint256)"}},"id":13910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4636:186:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint256_$","typeString":"tuple(bytes32,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4594:228:69"},{"eventCall":{"arguments":[{"id":13913,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13886,"src":"4851:6:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13914,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13882,"src":"4859:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13915,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13900,"src":"4867:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13916,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13884,"src":"4878:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13917,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13882,"src":"4887:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13918,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13890,"src":"4895:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":13919,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13902,"src":"4915:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13920,"name":"dataVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13894,"src":"4927:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13921,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13896,"src":"4940:4:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":13912,"name":"OracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13732,"src":"4837:13:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,address,bytes32,uint256,address,bytes4,uint256,uint256,bytes memory)"}},"id":13922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4837:108:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13923,"nodeType":"EmitStatement","src":"4832:113:69"}]},"documentation":{"id":13880,"nodeType":"StructuredDocumentation","src":"3559:697:69","text":" @notice Creates the Chainlink request. This is a backwards compatible API\n with the Oracle.sol contract, but the behavior changes because\n callbackAddress is assumed to be the same as the request sender.\n @param callbackAddress The consumer of the request\n @param payment The amount of payment given (specified in wei)\n @param specId The Job Specification ID\n @param callbackAddress The address the oracle data will be sent to\n @param callbackFunctionId The callback function ID for the response\n @param nonce The nonce sent by the requester\n @param dataVersion The specified data version\n @param data The extra request parameters"},"functionSelector":"40429946","id":13925,"implemented":true,"kind":"function","modifiers":[],"name":"oracleRequest","nameLocation":"4270:13:69","nodeType":"FunctionDefinition","parameters":{"id":13897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13882,"mutability":"mutable","name":"sender","nameLocation":"4301:6:69","nodeType":"VariableDeclaration","scope":13925,"src":"4293:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13881,"name":"address","nodeType":"ElementaryTypeName","src":"4293:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13884,"mutability":"mutable","name":"payment","nameLocation":"4325:7:69","nodeType":"VariableDeclaration","scope":13925,"src":"4317:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13883,"name":"uint256","nodeType":"ElementaryTypeName","src":"4317:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13886,"mutability":"mutable","name":"specId","nameLocation":"4350:6:69","nodeType":"VariableDeclaration","scope":13925,"src":"4342:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13885,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4342:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13888,"mutability":"mutable","name":"callbackAddress","nameLocation":"4374:15:69","nodeType":"VariableDeclaration","scope":13925,"src":"4366:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13887,"name":"address","nodeType":"ElementaryTypeName","src":"4366:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13890,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"4406:18:69","nodeType":"VariableDeclaration","scope":13925,"src":"4399:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13889,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4399:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":13892,"mutability":"mutable","name":"nonce","nameLocation":"4442:5:69","nodeType":"VariableDeclaration","scope":13925,"src":"4434:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13891,"name":"uint256","nodeType":"ElementaryTypeName","src":"4434:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13894,"mutability":"mutable","name":"dataVersion","nameLocation":"4465:11:69","nodeType":"VariableDeclaration","scope":13925,"src":"4457:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13893,"name":"uint256","nodeType":"ElementaryTypeName","src":"4457:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13896,"mutability":"mutable","name":"data","nameLocation":"4501:4:69","nodeType":"VariableDeclaration","scope":13925,"src":"4486:19:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13895,"name":"bytes","nodeType":"ElementaryTypeName","src":"4486:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4283:228:69"},"returnParameters":{"id":13898,"nodeType":"ParameterList","parameters":[],"src":"4584:0:69"},"scope":14166,"src":"4261:691:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13977,"nodeType":"Block","src":"6307:696:69","statements":[{"expression":{"arguments":[{"id":13944,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13928,"src":"6355:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13945,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13930,"src":"6366:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13946,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13932,"src":"6375:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13947,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13934,"src":"6392:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":13948,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13936,"src":"6412:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":13949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6424:1:69","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":13943,"name":"_verifyOracleRequestAndProcessPayment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"6317:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,address,bytes4,uint256,uint256)"}},"id":13950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6317:109:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13951,"nodeType":"ExpressionStatement","src":"6317:109:69"},{"eventCall":{"arguments":[{"id":13953,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13928,"src":"6457:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13952,"name":"OracleResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13740,"src":"6442:14:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6442:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13955,"nodeType":"EmitStatement","src":"6437:30:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13957,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967289,"src":"6485:7:69","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6485:9:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":13959,"name":"MINIMUM_CONSUMER_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13705,"src":"6498:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6485:39:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742070726f7669646520636f6e73756d657220656e6f75676820676173","id":13961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6526:34:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_e41e236f8c707f430128aec8d4f13fd0193750a557f2c094e8feda34850363f4","typeString":"literal_string \"Must provide consumer enough gas\""},"value":"Must provide consumer enough gas"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e41e236f8c707f430128aec8d4f13fd0193750a557f2c094e8feda34850363f4","typeString":"literal_string \"Must provide consumer enough gas\""}],"id":13956,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6477:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6477:84:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13963,"nodeType":"ExpressionStatement","src":"6477:84:69"},{"assignments":[13965,null],"declarations":[{"constant":false,"id":13965,"mutability":"mutable","name":"success","nameLocation":"6849:7:69","nodeType":"VariableDeclaration","scope":13977,"src":"6844:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13964,"name":"bool","nodeType":"ElementaryTypeName","src":"6844:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":13974,"initialValue":{"arguments":[{"arguments":[{"id":13970,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13934,"src":"6900:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":13971,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13938,"src":"6920:4:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":13968,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6883:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"6883:16:69","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6883:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":13966,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13932,"src":"6862:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"6862:20:69","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":13973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6862:64:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6843:83:69"},{"expression":{"id":13975,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13965,"src":"6989:7:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13942,"id":13976,"nodeType":"Return","src":"6982:14:69"}]},"documentation":{"id":13926,"nodeType":"StructuredDocumentation","src":"4959:881:69","text":" @notice Called by the Chainlink node to fulfill requests with multi-word support\n @dev Given params must hash back to the commitment stored from `oracleRequest`.\n Will call the callback address' callback function without bubbling up error\n checking in a `require` so that the node can get paid.\n @param requestId The fulfillment request ID that must match the requester's\n @param payment The payment amount that will be released for the oracle (specified in wei)\n @param callbackAddress The callback address to call for fulfillment\n @param callbackFunctionId The callback function ID to use for fulfillment\n @param expiration The expiration that the node should respond by before the requester can cancel\n @param data The data to return to the consuming contract\n @return Status if the external call was successful"},"functionSelector":"6ae0bc76","id":13978,"implemented":true,"kind":"function","modifiers":[],"name":"fulfillOracleRequest2","nameLocation":"5854:21:69","nodeType":"FunctionDefinition","parameters":{"id":13939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13928,"mutability":"mutable","name":"requestId","nameLocation":"5893:9:69","nodeType":"VariableDeclaration","scope":13978,"src":"5885:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13927,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5885:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13930,"mutability":"mutable","name":"payment","nameLocation":"5920:7:69","nodeType":"VariableDeclaration","scope":13978,"src":"5912:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13929,"name":"uint256","nodeType":"ElementaryTypeName","src":"5912:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13932,"mutability":"mutable","name":"callbackAddress","nameLocation":"5945:15:69","nodeType":"VariableDeclaration","scope":13978,"src":"5937:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13931,"name":"address","nodeType":"ElementaryTypeName","src":"5937:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13934,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"5977:18:69","nodeType":"VariableDeclaration","scope":13978,"src":"5970:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13933,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5970:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":13936,"mutability":"mutable","name":"expiration","nameLocation":"6013:10:69","nodeType":"VariableDeclaration","scope":13978,"src":"6005:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13935,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13938,"mutability":"mutable","name":"data","nameLocation":"6048:4:69","nodeType":"VariableDeclaration","scope":13978,"src":"6033:19:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13937,"name":"bytes","nodeType":"ElementaryTypeName","src":"6033:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5875:183:69"},"returnParameters":{"id":13942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13941,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13978,"src":"6297:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13940,"name":"bool","nodeType":"ElementaryTypeName","src":"6297:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6296:6:69"},"scope":14166,"src":"5845:1158:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14049,"nodeType":"Block","src":"7745:618:69","statements":[{"expression":{"id":14006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13998,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"7755:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":14002,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13981,"src":"7794:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14003,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13989,"src":"7802:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"7777:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"7777:16:69","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7777:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13999,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"7767:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7767:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7755:54:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14007,"nodeType":"ExpressionStatement","src":"7755:54:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"id":14014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":14009,"name":"s_commitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"7827:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment storage ref)"}},"id":14011,"indexExpression":{"id":14010,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"7841:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7827:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"id":14012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":13693,"src":"7827:35:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7866:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7827:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d75737420757365206120756e69717565204944","id":14015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7869:22:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_da89408418f1aa3860811d2e64085e2b94d33f2815f2070010f4d0def719e723","typeString":"literal_string \"Must use a unique ID\""},"value":"Must use a unique ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da89408418f1aa3860811d2e64085e2b94d33f2815f2070010f4d0def719e723","typeString":"literal_string \"Must use a unique ID\""}],"id":14008,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7819:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7819:73:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14017,"nodeType":"ExpressionStatement","src":"7819:73:69"},{"expression":{"id":14023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14018,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13996,"src":"8016:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14019,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"8029:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8029:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":14021,"name":"getExpiryTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13699,"src":"8047:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8029:31:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8016:44:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14024,"nodeType":"ExpressionStatement","src":"8016:44:69"},{"assignments":[14026],"declarations":[{"constant":false,"id":14026,"mutability":"mutable","name":"paramsHash","nameLocation":"8078:10:69","nodeType":"VariableDeclaration","scope":14049,"src":"8070:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":14025,"name":"bytes31","nodeType":"ElementaryTypeName","src":"8070:7:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"id":14033,"initialValue":{"arguments":[{"id":14028,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13983,"src":"8108:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14029,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13985,"src":"8117:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14030,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13987,"src":"8134:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":14031,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13996,"src":"8154:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14027,"name":"_buildParamsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14131,"src":"8091:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$_t_bytes4_$_t_uint256_$returns$_t_bytes31_$","typeString":"function (uint256,address,bytes4,uint256) pure returns (bytes31)"}},"id":14032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8091:74:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"nodeType":"VariableDeclarationStatement","src":"8070:95:69"},{"expression":{"id":14043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14034,"name":"s_commitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"8175:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment storage ref)"}},"id":14036,"indexExpression":{"id":14035,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"8189:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8175:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14038,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14026,"src":"8213:10:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},{"arguments":[{"id":14040,"name":"dataVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13991,"src":"8242:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14039,"name":"_safeCastToUint8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14152,"src":"8225:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":14041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8225:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes31","typeString":"bytes31"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":14037,"name":"Commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13696,"src":"8202:10:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Commitment_$13696_storage_ptr_$","typeString":"type(struct ChainlinkOperator.Commitment storage pointer)"}},"id":14042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8202:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_memory_ptr","typeString":"struct ChainlinkOperator.Commitment memory"}},"src":"8175:80:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"id":14044,"nodeType":"ExpressionStatement","src":"8175:80:69"},{"expression":{"components":[{"id":14045,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"8334:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14046,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13996,"src":"8345:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14047,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8333:23:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint256_$","typeString":"tuple(bytes32,uint256)"}},"functionReturnParameters":13997,"id":14048,"nodeType":"Return","src":"8326:30:69"}]},"documentation":{"id":13979,"nodeType":"StructuredDocumentation","src":"7010:389:69","text":" @notice Verify the Oracle Request and record necessary information\n @param sender The sender of the request\n @param payment The amount of payment given (specified in wei)\n @param callbackAddress The callback address for the response\n @param callbackFunctionId The callback function ID for the response\n @param nonce The nonce sent by the requester"},"id":14050,"implemented":true,"kind":"function","modifiers":[],"name":"_verifyAndProcessOracleRequest","nameLocation":"7413:30:69","nodeType":"FunctionDefinition","parameters":{"id":13992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13981,"mutability":"mutable","name":"sender","nameLocation":"7461:6:69","nodeType":"VariableDeclaration","scope":14050,"src":"7453:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13980,"name":"address","nodeType":"ElementaryTypeName","src":"7453:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13983,"mutability":"mutable","name":"payment","nameLocation":"7485:7:69","nodeType":"VariableDeclaration","scope":14050,"src":"7477:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13982,"name":"uint256","nodeType":"ElementaryTypeName","src":"7477:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13985,"mutability":"mutable","name":"callbackAddress","nameLocation":"7510:15:69","nodeType":"VariableDeclaration","scope":14050,"src":"7502:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13984,"name":"address","nodeType":"ElementaryTypeName","src":"7502:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13987,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"7542:18:69","nodeType":"VariableDeclaration","scope":14050,"src":"7535:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13986,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7535:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":13989,"mutability":"mutable","name":"nonce","nameLocation":"7578:5:69","nodeType":"VariableDeclaration","scope":14050,"src":"7570:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13988,"name":"uint256","nodeType":"ElementaryTypeName","src":"7570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13991,"mutability":"mutable","name":"dataVersion","nameLocation":"7601:11:69","nodeType":"VariableDeclaration","scope":14050,"src":"7593:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13990,"name":"uint256","nodeType":"ElementaryTypeName","src":"7593:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7443:175:69"},"returnParameters":{"id":13997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13994,"mutability":"mutable","name":"requestId","nameLocation":"7709:9:69","nodeType":"VariableDeclaration","scope":14050,"src":"7701:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7701:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13996,"mutability":"mutable","name":"expiration","nameLocation":"7728:10:69","nodeType":"VariableDeclaration","scope":14050,"src":"7720:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13995,"name":"uint256","nodeType":"ElementaryTypeName","src":"7720:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7700:39:69"},"scope":14166,"src":"7404:959:69","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":14102,"nodeType":"Block","src":"9139:432:69","statements":[{"assignments":[14067],"declarations":[{"constant":false,"id":14067,"mutability":"mutable","name":"paramsHash","nameLocation":"9157:10:69","nodeType":"VariableDeclaration","scope":14102,"src":"9149:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":14066,"name":"bytes31","nodeType":"ElementaryTypeName","src":"9149:7:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"id":14074,"initialValue":{"arguments":[{"id":14069,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14055,"src":"9187:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14070,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14057,"src":"9196:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14071,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14059,"src":"9213:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":14072,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14061,"src":"9233:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14068,"name":"_buildParamsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14131,"src":"9170:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$_t_bytes4_$_t_uint256_$returns$_t_bytes31_$","typeString":"function (uint256,address,bytes4,uint256) pure returns (bytes31)"}},"id":14073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9170:74:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"nodeType":"VariableDeclarationStatement","src":"9149:95:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"id":14081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":14076,"name":"s_commitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"9262:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment storage ref)"}},"id":14078,"indexExpression":{"id":14077,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14053,"src":"9276:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9262:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"id":14079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":13693,"src":"9262:35:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14080,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14067,"src":"9301:10:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"src":"9262:49:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506172616d7320646f206e6f74206d617463682072657175657374204944","id":14082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9313:32:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_e12b50eea9311b443c52ff0775ecb76e354715072acf3c2225436432557396ee","typeString":"literal_string \"Params do not match request ID\""},"value":"Params do not match request ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e12b50eea9311b443c52ff0775ecb76e354715072acf3c2225436432557396ee","typeString":"literal_string \"Params do not match request ID\""}],"id":14075,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9254:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9254:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14084,"nodeType":"ExpressionStatement","src":"9254:92:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":14093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":14086,"name":"s_commitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"9364:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment storage ref)"}},"id":14088,"indexExpression":{"id":14087,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14053,"src":"9378:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9364:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"id":14089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dataVersion","nodeType":"MemberAccess","referencedDeclaration":13695,"src":"9364:36:69","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":14091,"name":"dataVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14063,"src":"9421:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14090,"name":"_safeCastToUint8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14152,"src":"9404:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":14092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9404:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9364:69:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"446174612076657273696f6e73206d757374206d61746368","id":14094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9435:26:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_53dd8c2d44f916f031150a73e1eba6048d8d6f765952814af0ca50ecb04aba23","typeString":"literal_string \"Data versions must match\""},"value":"Data versions must match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_53dd8c2d44f916f031150a73e1eba6048d8d6f765952814af0ca50ecb04aba23","typeString":"literal_string \"Data versions must match\""}],"id":14085,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9356:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9356:106:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14096,"nodeType":"ExpressionStatement","src":"9356:106:69"},{"expression":{"id":14100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9533:31:69","subExpression":{"baseExpression":{"id":14097,"name":"s_commitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"9540:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment storage ref)"}},"id":14099,"indexExpression":{"id":14098,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14053,"src":"9554:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9540:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14101,"nodeType":"ExpressionStatement","src":"9533:31:69"}]},"documentation":{"id":14051,"nodeType":"StructuredDocumentation","src":"8370:513:69","text":" @notice Verify the Oracle request and unlock escrowed payment\n @param requestId The fulfillment request ID that must match the requester's\n @param payment The payment amount that will be released for the oracle (specified in wei)\n @param callbackAddress The callback address to call for fulfillment\n @param callbackFunctionId The callback function ID to use for fulfillment\n @param expiration The expiration that the node should respond by before the requester can cancel"},"id":14103,"implemented":true,"kind":"function","modifiers":[],"name":"_verifyOracleRequestAndProcessPayment","nameLocation":"8897:37:69","nodeType":"FunctionDefinition","parameters":{"id":14064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14053,"mutability":"mutable","name":"requestId","nameLocation":"8952:9:69","nodeType":"VariableDeclaration","scope":14103,"src":"8944:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8944:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14055,"mutability":"mutable","name":"payment","nameLocation":"8979:7:69","nodeType":"VariableDeclaration","scope":14103,"src":"8971:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14054,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14057,"mutability":"mutable","name":"callbackAddress","nameLocation":"9004:15:69","nodeType":"VariableDeclaration","scope":14103,"src":"8996:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14056,"name":"address","nodeType":"ElementaryTypeName","src":"8996:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14059,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"9036:18:69","nodeType":"VariableDeclaration","scope":14103,"src":"9029:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14058,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9029:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":14061,"mutability":"mutable","name":"expiration","nameLocation":"9072:10:69","nodeType":"VariableDeclaration","scope":14103,"src":"9064:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14060,"name":"uint256","nodeType":"ElementaryTypeName","src":"9064:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14063,"mutability":"mutable","name":"dataVersion","nameLocation":"9100:11:69","nodeType":"VariableDeclaration","scope":14103,"src":"9092:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14062,"name":"uint256","nodeType":"ElementaryTypeName","src":"9092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8934:183:69"},"returnParameters":{"id":14065,"nodeType":"ParameterList","parameters":[],"src":"9139:0:69"},"scope":14166,"src":"8888:683:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14130,"nodeType":"Block","src":"10238:118:69","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":14122,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"10290:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14123,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"10299:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14124,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14110,"src":"10316:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":14125,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14112,"src":"10336:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14120,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"10273:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"10273:16:69","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10273:74:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14119,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"10263:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10263:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10255:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes31_$","typeString":"type(bytes31)"},"typeName":{"id":14117,"name":"bytes31","nodeType":"ElementaryTypeName","src":"10255:7:69","typeDescriptions":{}}},"id":14128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10255:94:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"functionReturnParameters":14116,"id":14129,"nodeType":"Return","src":"10248:101:69"}]},"documentation":{"id":14104,"nodeType":"StructuredDocumentation","src":"9578:470:69","text":" @notice Build the bytes31 hash from the payment, callback and expiration.\n @param payment The payment amount that will be released for the oracle (specified in wei)\n @param callbackAddress The callback address to call for fulfillment\n @param callbackFunctionId The callback function ID to use for fulfillment\n @param expiration The expiration that the node should respond by before the requester can cancel\n @return hash bytes31"},"id":14131,"implemented":true,"kind":"function","modifiers":[],"name":"_buildParamsHash","nameLocation":"10062:16:69","nodeType":"FunctionDefinition","parameters":{"id":14113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14106,"mutability":"mutable","name":"payment","nameLocation":"10096:7:69","nodeType":"VariableDeclaration","scope":14131,"src":"10088:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14105,"name":"uint256","nodeType":"ElementaryTypeName","src":"10088:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14108,"mutability":"mutable","name":"callbackAddress","nameLocation":"10121:15:69","nodeType":"VariableDeclaration","scope":14131,"src":"10113:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14107,"name":"address","nodeType":"ElementaryTypeName","src":"10113:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14110,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"10153:18:69","nodeType":"VariableDeclaration","scope":14131,"src":"10146:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14109,"name":"bytes4","nodeType":"ElementaryTypeName","src":"10146:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":14112,"mutability":"mutable","name":"expiration","nameLocation":"10189:10:69","nodeType":"VariableDeclaration","scope":14131,"src":"10181:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14111,"name":"uint256","nodeType":"ElementaryTypeName","src":"10181:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10078:127:69"},"returnParameters":{"id":14116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14131,"src":"10229:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":14114,"name":"bytes31","nodeType":"ElementaryTypeName","src":"10229:7:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"10228:9:69"},"scope":14166,"src":"10053:303:69","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14151,"nodeType":"Block","src":"10548:111:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14140,"name":"number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14134,"src":"10566:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14141,"name":"MAXIMUM_DATA_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13702,"src":"10575:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10566:29:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e756d62657220746f6f2062696720746f2063617374","id":14143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10597:24:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef169b566e22a9ea10ec54af0f17be495060a51a062291400ead41912ab09c45","typeString":"literal_string \"number too big to cast\""},"value":"number too big to cast"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef169b566e22a9ea10ec54af0f17be495060a51a062291400ead41912ab09c45","typeString":"literal_string \"number too big to cast\""}],"id":14139,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10558:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10558:64:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14145,"nodeType":"ExpressionStatement","src":"10558:64:69"},{"expression":{"arguments":[{"id":14148,"name":"number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14134,"src":"10645:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10639:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":14146,"name":"uint8","nodeType":"ElementaryTypeName","src":"10639:5:69","typeDescriptions":{}}},"id":14149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10639:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":14138,"id":14150,"nodeType":"Return","src":"10632:20:69"}]},"documentation":{"id":14132,"nodeType":"StructuredDocumentation","src":"10363:108:69","text":" @notice Safely cast uint256 to uint8\n @param number uint256\n @return uint8 number"},"id":14152,"implemented":true,"kind":"function","modifiers":[],"name":"_safeCastToUint8","nameLocation":"10485:16:69","nodeType":"FunctionDefinition","parameters":{"id":14135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14134,"mutability":"mutable","name":"number","nameLocation":"10510:6:69","nodeType":"VariableDeclaration","scope":14152,"src":"10502:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14133,"name":"uint256","nodeType":"ElementaryTypeName","src":"10502:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10501:16:69"},"returnParameters":{"id":14138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14152,"src":"10541:5:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14136,"name":"uint8","nodeType":"ElementaryTypeName","src":"10541:5:69","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"10540:7:69"},"scope":14166,"src":"10476:183:69","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14164,"nodeType":"Block","src":"10856:45:69","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14158,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"10873:5:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10873:7:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14160,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"10884:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10884:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10873:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14157,"id":14163,"nodeType":"Return","src":"10866:28:69"}]},"documentation":{"id":14153,"nodeType":"StructuredDocumentation","src":"10665:121:69","text":" @notice concrete implementation of AuthorizedReceiver\n @return bool of whether sender is authorized"},"id":14165,"implemented":true,"kind":"function","modifiers":[],"name":"_canSetAuthorizedSenders","nameLocation":"10800:24:69","nodeType":"FunctionDefinition","parameters":{"id":14154,"nodeType":"ParameterList","parameters":[],"src":"10824:2:69"},"returnParameters":{"id":14157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14156,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14165,"src":"10850:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14155,"name":"bool","nodeType":"ElementaryTypeName","src":"10850:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10849:6:69"},"scope":14166,"src":"10791:110:69","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":14167,"src":"110:10794:69"}],"src":"32:10873:69"},"id":69},"contracts/examples/mock/ChainlinkToken.sol":{"ast":{"absolutePath":"contracts/examples/mock/ChainlinkToken.sol","exportedSymbols":{"ChainlinkToken":[14273],"Context":[10518],"ERC20":[8753],"ERC677Receiver":[14179],"IERC20":[8831],"IERC20Metadata":[8856]},"id":14274,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14168,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"32:22:70"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":14169,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14274,"sourceUnit":8754,"src":"56:55:70","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":14179,"linearizedBaseContracts":[14179],"name":"ERC677Receiver","nameLocation":"131:14:70","nodeType":"ContractDefinition","nodes":[{"functionSelector":"a4c0ed36","id":14178,"implemented":false,"kind":"function","modifiers":[],"name":"onTokenTransfer","nameLocation":"161:15:70","nodeType":"FunctionDefinition","parameters":{"id":14176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14171,"mutability":"mutable","name":"_sender","nameLocation":"186:7:70","nodeType":"VariableDeclaration","scope":14178,"src":"178:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14170,"name":"address","nodeType":"ElementaryTypeName","src":"178:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14173,"mutability":"mutable","name":"_value","nameLocation":"200:6:70","nodeType":"VariableDeclaration","scope":14178,"src":"195:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14172,"name":"uint","nodeType":"ElementaryTypeName","src":"195:4:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14175,"mutability":"mutable","name":"_data","nameLocation":"223:5:70","nodeType":"VariableDeclaration","scope":14178,"src":"208:20:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14174,"name":"bytes","nodeType":"ElementaryTypeName","src":"208:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"177:52:70"},"returnParameters":{"id":14177,"nodeType":"ParameterList","parameters":[],"src":"244:0:70"},"scope":14179,"src":"152:93:70","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":14274,"src":"113:134:70"},{"abstract":false,"baseContracts":[{"baseName":{"id":14180,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"276:5:70"},"id":14181,"nodeType":"InheritanceSpecifier","src":"276:5:70"}],"contractDependencies":[8753,8831,8856,10518],"contractKind":"contract","fullyImplemented":true,"id":14273,"linearizedBaseContracts":[14273,8753,8856,8831,10518],"name":"ChainlinkToken","nameLocation":"258:14:70","nodeType":"ContractDefinition","nodes":[{"body":{"id":14197,"nodeType":"Block","src":"368:37:70","statements":[{"expression":{"arguments":[{"id":14193,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14183,"src":"384:5:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14194,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14185,"src":"391:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14192,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"378:5:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"378:20:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14196,"nodeType":"ExpressionStatement","src":"378:20:70"}]},"id":14198,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"436861696e6c696e6b2044756d6d7920546f6b656e","id":14188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"337:23:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5764680349dd2c79b01e0cc34a69b8d81e7e56e2e2af1d9f48762f21bfc38ec","typeString":"literal_string \"Chainlink Dummy Token\""},"value":"Chainlink Dummy Token"},{"hexValue":"434454","id":14189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"362:5:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_434eb163d5d83d0f1ffd9839d5b9c74759647f334d007a0d4510797d38b7e519","typeString":"literal_string \"CDT\""},"value":"CDT"}],"id":14190,"modifierName":{"id":14187,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"331:5:70"},"nodeType":"ModifierInvocation","src":"331:37:70"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14183,"mutability":"mutable","name":"owner","nameLocation":"308:5:70","nodeType":"VariableDeclaration","scope":14198,"src":"300:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14182,"name":"address","nodeType":"ElementaryTypeName","src":"300:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14185,"mutability":"mutable","name":"supply","nameLocation":"323:6:70","nodeType":"VariableDeclaration","scope":14198,"src":"315:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14184,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"299:31:70"},"returnParameters":{"id":14191,"nodeType":"ParameterList","parameters":[],"src":"368:0:70"},"scope":14273,"src":"288:117:70","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14229,"nodeType":"Block","src":"513:210:70","statements":[{"expression":{"arguments":[{"id":14212,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14200,"src":"538:3:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14213,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14202,"src":"543:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14209,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"523:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ChainlinkToken_$14273_$","typeString":"type(contract super ChainlinkToken)"}},"id":14211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":8291,"src":"523:14:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":14214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"523:27:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14215,"nodeType":"ExpressionStatement","src":"523:27:70"},{"condition":{"arguments":[{"id":14217,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14200,"src":"629:3:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14216,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14272,"src":"618:10:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":14218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"618:15:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14226,"nodeType":"IfStatement","src":"614:82:70","trueBody":{"id":14225,"nodeType":"Block","src":"635:61:70","statements":[{"expression":{"arguments":[{"id":14220,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14200,"src":"666:3:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14221,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14202,"src":"671:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14222,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14204,"src":"679:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":14219,"name":"contractFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14256,"src":"649:16:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,bytes calldata)"}},"id":14223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"649:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14224,"nodeType":"ExpressionStatement","src":"649:36:70"}]}},{"expression":{"hexValue":"74727565","id":14227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"712:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14208,"id":14228,"nodeType":"Return","src":"705:11:70"}]},"functionSelector":"4000aea0","id":14230,"implemented":true,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"420:15:70","nodeType":"FunctionDefinition","parameters":{"id":14205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14200,"mutability":"mutable","name":"_to","nameLocation":"444:3:70","nodeType":"VariableDeclaration","scope":14230,"src":"436:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14199,"name":"address","nodeType":"ElementaryTypeName","src":"436:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14202,"mutability":"mutable","name":"_value","nameLocation":"454:6:70","nodeType":"VariableDeclaration","scope":14230,"src":"449:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14201,"name":"uint","nodeType":"ElementaryTypeName","src":"449:4:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14204,"mutability":"mutable","name":"_data","nameLocation":"477:5:70","nodeType":"VariableDeclaration","scope":14230,"src":"462:20:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14203,"name":"bytes","nodeType":"ElementaryTypeName","src":"462:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"435:48:70"},"returnParameters":{"id":14208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14207,"mutability":"mutable","name":"success","nameLocation":"505:7:70","nodeType":"VariableDeclaration","scope":14230,"src":"500:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14206,"name":"bool","nodeType":"ElementaryTypeName","src":"500:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"499:14:70"},"scope":14273,"src":"411:312:70","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14255,"nodeType":"Block","src":"811:123:70","statements":[{"assignments":[14241],"declarations":[{"constant":false,"id":14241,"mutability":"mutable","name":"receiver","nameLocation":"836:8:70","nodeType":"VariableDeclaration","scope":14255,"src":"821:23:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC677Receiver_$14179","typeString":"contract ERC677Receiver"},"typeName":{"id":14240,"nodeType":"UserDefinedTypeName","pathNode":{"id":14239,"name":"ERC677Receiver","nodeType":"IdentifierPath","referencedDeclaration":14179,"src":"821:14:70"},"referencedDeclaration":14179,"src":"821:14:70","typeDescriptions":{"typeIdentifier":"t_contract$_ERC677Receiver_$14179","typeString":"contract ERC677Receiver"}},"visibility":"internal"}],"id":14245,"initialValue":{"arguments":[{"id":14243,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14232,"src":"862:3:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14242,"name":"ERC677Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14179,"src":"847:14:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC677Receiver_$14179_$","typeString":"type(contract ERC677Receiver)"}},"id":14244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"847:19:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC677Receiver_$14179","typeString":"contract ERC677Receiver"}},"nodeType":"VariableDeclarationStatement","src":"821:45:70"},{"expression":{"arguments":[{"expression":{"id":14249,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"901:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"901:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14251,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14234,"src":"913:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14252,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14236,"src":"921:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":14246,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14241,"src":"876:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_ERC677Receiver_$14179","typeString":"contract ERC677Receiver"}},"id":14248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":14178,"src":"876:24:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory) external"}},"id":14253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"876:51:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14254,"nodeType":"ExpressionStatement","src":"876:51:70"}]},"id":14256,"implemented":true,"kind":"function","modifiers":[],"name":"contractFallback","nameLocation":"738:16:70","nodeType":"FunctionDefinition","parameters":{"id":14237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14232,"mutability":"mutable","name":"_to","nameLocation":"763:3:70","nodeType":"VariableDeclaration","scope":14256,"src":"755:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14231,"name":"address","nodeType":"ElementaryTypeName","src":"755:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14234,"mutability":"mutable","name":"_value","nameLocation":"773:6:70","nodeType":"VariableDeclaration","scope":14256,"src":"768:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14233,"name":"uint","nodeType":"ElementaryTypeName","src":"768:4:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14236,"mutability":"mutable","name":"_data","nameLocation":"796:5:70","nodeType":"VariableDeclaration","scope":14256,"src":"781:20:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14235,"name":"bytes","nodeType":"ElementaryTypeName","src":"781:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"754:48:70"},"returnParameters":{"id":14238,"nodeType":"ParameterList","parameters":[],"src":"811:0:70"},"scope":14273,"src":"729:205:70","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":14271,"nodeType":"Block","src":"1011:105:70","statements":[{"assignments":[14264],"declarations":[{"constant":false,"id":14264,"mutability":"mutable","name":"length","nameLocation":"1026:6:70","nodeType":"VariableDeclaration","scope":14271,"src":"1021:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14263,"name":"uint","nodeType":"ElementaryTypeName","src":"1021:4:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14265,"nodeType":"VariableDeclarationStatement","src":"1021:11:70"},{"AST":{"nodeType":"YulBlock","src":"1051:32:70","statements":[{"nodeType":"YulAssignment","src":"1053:28:70","value":{"arguments":[{"name":"_addr","nodeType":"YulIdentifier","src":"1075:5:70"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"1063:11:70"},"nodeType":"YulFunctionCall","src":"1063:18:70"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1053:6:70"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":14258,"isOffset":false,"isSlot":false,"src":"1075:5:70","valueSize":1},{"declaration":14264,"isOffset":false,"isSlot":false,"src":"1053:6:70","valueSize":1}],"id":14266,"nodeType":"InlineAssembly","src":"1042:41:70"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14267,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14264,"src":"1099:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1108:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1099:10:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14262,"id":14270,"nodeType":"Return","src":"1092:17:70"}]},"id":14272,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"949:10:70","nodeType":"FunctionDefinition","parameters":{"id":14259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14258,"mutability":"mutable","name":"_addr","nameLocation":"968:5:70","nodeType":"VariableDeclaration","scope":14272,"src":"960:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14257,"name":"address","nodeType":"ElementaryTypeName","src":"960:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"959:15:70"},"returnParameters":{"id":14262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14261,"mutability":"mutable","name":"hasCode","nameLocation":"1002:7:70","nodeType":"VariableDeclaration","scope":14272,"src":"997:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14260,"name":"bool","nodeType":"ElementaryTypeName","src":"997:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"996:14:70"},"scope":14273,"src":"940:176:70","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":14274,"src":"249:869:70"}],"src":"32:1087:70"},"id":70},"contracts/examples/strings.sol":{"ast":{"absolutePath":"contracts/examples/strings.sol","exportedSymbols":{"strings":[14536]},"id":14537,"license":"Apache2","nodeType":"SourceUnit","nodes":[{"id":14275,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"2111:22:71"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":14536,"linearizedBaseContracts":[14536],"name":"strings","nameLocation":"2145:7:71","nodeType":"ContractDefinition","nodes":[{"canonicalName":"strings.slice","id":14280,"members":[{"constant":false,"id":14277,"mutability":"mutable","name":"_len","nameLocation":"2191:4:71","nodeType":"VariableDeclaration","scope":14280,"src":"2186:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14276,"name":"uint","nodeType":"ElementaryTypeName","src":"2186:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14279,"mutability":"mutable","name":"_ptr","nameLocation":"2211:4:71","nodeType":"VariableDeclaration","scope":14280,"src":"2206:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14278,"name":"uint","nodeType":"ElementaryTypeName","src":"2206:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"slice","nameLocation":"2169:5:71","nodeType":"StructDefinition","scope":14536,"src":"2162:61:71","visibility":"public"},{"body":{"id":14332,"nodeType":"Block","src":"2292:580:71","statements":[{"body":{"id":14305,"nodeType":"Block","src":"2384:142:71","statements":[{"AST":{"nodeType":"YulBlock","src":"2408:58:71","statements":[{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"2434:4:71"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2446:3:71"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2440:5:71"},"nodeType":"YulFunctionCall","src":"2440:10:71"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2427:6:71"},"nodeType":"YulFunctionCall","src":"2427:24:71"},"nodeType":"YulExpressionStatement","src":"2427:24:71"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":14282,"isOffset":false,"isSlot":false,"src":"2434:4:71","valueSize":1},{"declaration":14284,"isOffset":false,"isSlot":false,"src":"2446:3:71","valueSize":1}],"id":14296,"nodeType":"InlineAssembly","src":"2399:67:71"},{"expression":{"id":14299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14297,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14282,"src":"2480:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":14298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2488:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2480:10:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14300,"nodeType":"ExpressionStatement","src":"2480:10:71"},{"expression":{"id":14303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14301,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14284,"src":"2505:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":14302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2512:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2505:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14304,"nodeType":"ExpressionStatement","src":"2505:9:71"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14289,"name":"len_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"2360:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":14290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2368:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2360:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14306,"loopExpression":{"expression":{"id":14294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14292,"name":"len_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"2372:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":14293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2380:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2372:10:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14295,"nodeType":"ExpressionStatement","src":"2372:10:71"},"nodeType":"ForStatement","src":"2354:172:71"},{"assignments":[14308],"declarations":[{"constant":false,"id":14308,"mutability":"mutable","name":"mask","nameLocation":"2576:4:71","nodeType":"VariableDeclaration","scope":14332,"src":"2571:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14307,"name":"uint","nodeType":"ElementaryTypeName","src":"2571:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14314,"initialValue":{"expression":{"arguments":[{"id":14311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2588:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14310,"name":"uint","nodeType":"ElementaryTypeName","src":"2588:4:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":14309,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"2583:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2583:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":14313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2583:14:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2571:26:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14315,"name":"len_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"2612:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2619:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2612:8:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14330,"nodeType":"IfStatement","src":"2608:70:71","trueBody":{"id":14329,"nodeType":"Block","src":"2622:56:71","statements":[{"expression":{"id":14327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14318,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14308,"src":"2637:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":14319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2644:3:71","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":14320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2652:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":14321,"name":"len_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"2657:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2652:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14323,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2651:11:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2644:18:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2665:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2644:22:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2637:29:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14328,"nodeType":"ExpressionStatement","src":"2637:29:71"}]}},{"AST":{"nodeType":"YulBlock","src":"2697:168:71","statements":[{"nodeType":"YulVariableDeclaration","src":"2712:41:71","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2737:3:71"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2731:5:71"},"nodeType":"YulFunctionCall","src":"2731:10:71"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"2747:4:71"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2743:3:71"},"nodeType":"YulFunctionCall","src":"2743:9:71"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2727:3:71"},"nodeType":"YulFunctionCall","src":"2727:26:71"},"variables":[{"name":"srcpart","nodeType":"YulTypedName","src":"2716:7:71","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2767:38:71","value":{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"2793:4:71"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2787:5:71"},"nodeType":"YulFunctionCall","src":"2787:11:71"},{"name":"mask","nodeType":"YulIdentifier","src":"2800:4:71"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2783:3:71"},"nodeType":"YulFunctionCall","src":"2783:22:71"},"variables":[{"name":"destpart","nodeType":"YulTypedName","src":"2771:8:71","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"2826:4:71"},{"arguments":[{"name":"destpart","nodeType":"YulIdentifier","src":"2835:8:71"},{"name":"srcpart","nodeType":"YulIdentifier","src":"2845:7:71"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2832:2:71"},"nodeType":"YulFunctionCall","src":"2832:21:71"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2819:6:71"},"nodeType":"YulFunctionCall","src":"2819:35:71"},"nodeType":"YulExpressionStatement","src":"2819:35:71"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":14282,"isOffset":false,"isSlot":false,"src":"2793:4:71","valueSize":1},{"declaration":14282,"isOffset":false,"isSlot":false,"src":"2826:4:71","valueSize":1},{"declaration":14308,"isOffset":false,"isSlot":false,"src":"2747:4:71","valueSize":1},{"declaration":14308,"isOffset":false,"isSlot":false,"src":"2800:4:71","valueSize":1},{"declaration":14284,"isOffset":false,"isSlot":false,"src":"2737:3:71","valueSize":1}],"id":14331,"nodeType":"InlineAssembly","src":"2688:177:71"}]},"id":14333,"implemented":true,"kind":"function","modifiers":[],"name":"memcpy","nameLocation":"2240:6:71","nodeType":"FunctionDefinition","parameters":{"id":14287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14282,"mutability":"mutable","name":"dest","nameLocation":"2252:4:71","nodeType":"VariableDeclaration","scope":14333,"src":"2247:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14281,"name":"uint","nodeType":"ElementaryTypeName","src":"2247:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14284,"mutability":"mutable","name":"src","nameLocation":"2263:3:71","nodeType":"VariableDeclaration","scope":14333,"src":"2258:8:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14283,"name":"uint","nodeType":"ElementaryTypeName","src":"2258:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14286,"mutability":"mutable","name":"len_","nameLocation":"2273:4:71","nodeType":"VariableDeclaration","scope":14333,"src":"2268:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14285,"name":"uint","nodeType":"ElementaryTypeName","src":"2268:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2246:32:71"},"returnParameters":{"id":14288,"nodeType":"ParameterList","parameters":[],"src":"2292:0:71"},"scope":14536,"src":"2231:641:71","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":14491,"nodeType":"Block","src":"3131:774:71","statements":[{"assignments":[14341],"declarations":[{"constant":false,"id":14341,"mutability":"mutable","name":"ret","nameLocation":"3147:3:71","nodeType":"VariableDeclaration","scope":14491,"src":"3142:8:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14340,"name":"uint","nodeType":"ElementaryTypeName","src":"3142:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14342,"nodeType":"VariableDeclarationStatement","src":"3142:8:71"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":14345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14343,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3165:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3173:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3165:9:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14348,"nodeType":"IfStatement","src":"3161:36:71","trueBody":{"expression":{"hexValue":"30","id":14346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3196:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14339,"id":14347,"nodeType":"Return","src":"3189:8:71"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14351,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3217:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3212:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14349,"name":"uint","nodeType":"ElementaryTypeName","src":"3212:4:71","typeDescriptions":{}}},"id":14352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3212:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3230:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":14354,"name":"uint128","nodeType":"ElementaryTypeName","src":"3230:7:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":14353,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"3225:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3225:13:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":14357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3225:17:71","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3212:30:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3246:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3212:35:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14378,"nodeType":"IfStatement","src":"3208:156:71","trueBody":{"id":14377,"nodeType":"Block","src":"3249:115:71","statements":[{"expression":{"id":14363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14361,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3264:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":14362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3271:2:71","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"3264:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14364,"nodeType":"ExpressionStatement","src":"3264:9:71"},{"expression":{"id":14375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14365,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3288:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14370,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3308:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3303:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14368,"name":"uint","nodeType":"ElementaryTypeName","src":"3303:4:71","typeDescriptions":{}}},"id":14371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3303:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":14372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3316:35:71","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"src":"3303:48:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3295:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3295:7:71","typeDescriptions":{}}},"id":14374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3295:57:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3288:64:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14376,"nodeType":"ExpressionStatement","src":"3288:64:71"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3383:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3378:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14379,"name":"uint","nodeType":"ElementaryTypeName","src":"3378:4:71","typeDescriptions":{}}},"id":14382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3378:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3396:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":14384,"name":"uint64","nodeType":"ElementaryTypeName","src":"3396:6:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":14383,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"3391:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3391:12:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":14387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3391:16:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3378:29:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3411:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3378:34:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14408,"nodeType":"IfStatement","src":"3374:138:71","trueBody":{"id":14407,"nodeType":"Block","src":"3414:98:71","statements":[{"expression":{"id":14393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14391,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3429:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":14392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3436:1:71","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"3429:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14394,"nodeType":"ExpressionStatement","src":"3429:8:71"},{"expression":{"id":14405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14395,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3452:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3472:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3467:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14398,"name":"uint","nodeType":"ElementaryTypeName","src":"3467:4:71","typeDescriptions":{}}},"id":14401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3467:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"30783130303030303030303030303030303030","id":14402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3480:19:71","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"src":"3467:32:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3459:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3459:7:71","typeDescriptions":{}}},"id":14404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3459:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3452:48:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14406,"nodeType":"ExpressionStatement","src":"3452:48:71"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14411,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3531:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3526:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14409,"name":"uint","nodeType":"ElementaryTypeName","src":"3526:4:71","typeDescriptions":{}}},"id":14412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3526:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3544:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":14414,"name":"uint32","nodeType":"ElementaryTypeName","src":"3544:6:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":14413,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"3539:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3539:12:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":14417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3539:16:71","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"3526:29:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3559:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3526:34:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14438,"nodeType":"IfStatement","src":"3522:130:71","trueBody":{"id":14437,"nodeType":"Block","src":"3562:90:71","statements":[{"expression":{"id":14423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14421,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3577:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":14422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3584:1:71","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3577:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14424,"nodeType":"ExpressionStatement","src":"3577:8:71"},{"expression":{"id":14435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14425,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3600:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14430,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3620:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3615:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14428,"name":"uint","nodeType":"ElementaryTypeName","src":"3615:4:71","typeDescriptions":{}}},"id":14431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3615:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3078313030303030303030","id":14432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3628:11:71","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"value":"0x100000000"},"src":"3615:24:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3607:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3607:7:71","typeDescriptions":{}}},"id":14434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3607:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3600:40:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14436,"nodeType":"ExpressionStatement","src":"3600:40:71"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14441,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3671:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3666:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14439,"name":"uint","nodeType":"ElementaryTypeName","src":"3666:4:71","typeDescriptions":{}}},"id":14442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3666:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3684:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":14444,"name":"uint16","nodeType":"ElementaryTypeName","src":"3684:6:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":14443,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"3679:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3679:12:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":14447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3679:16:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3666:29:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3699:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3666:34:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14468,"nodeType":"IfStatement","src":"3662:126:71","trueBody":{"id":14467,"nodeType":"Block","src":"3702:86:71","statements":[{"expression":{"id":14453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14451,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3717:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":14452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3724:1:71","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3717:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14454,"nodeType":"ExpressionStatement","src":"3717:8:71"},{"expression":{"id":14465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14455,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3740:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14460,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3760:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3755:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14458,"name":"uint","nodeType":"ElementaryTypeName","src":"3755:4:71","typeDescriptions":{}}},"id":14461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3755:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"30783130303030","id":14462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3768:7:71","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"value":"0x10000"},"src":"3755:20:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3747:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3747:7:71","typeDescriptions":{}}},"id":14464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3747:29:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3740:36:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14466,"nodeType":"ExpressionStatement","src":"3740:36:71"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14471,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3807:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3802:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14469,"name":"uint","nodeType":"ElementaryTypeName","src":"3802:4:71","typeDescriptions":{}}},"id":14472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3802:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3820:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":14474,"name":"uint8","nodeType":"ElementaryTypeName","src":"3820:5:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":14473,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"3815:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3815:11:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":14477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3815:15:71","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3802:28:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3834:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3802:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14486,"nodeType":"IfStatement","src":"3798:74:71","trueBody":{"id":14485,"nodeType":"Block","src":"3837:35:71","statements":[{"expression":{"id":14483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14481,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3852:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":14482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3859:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3852:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14484,"nodeType":"ExpressionStatement","src":"3852:8:71"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":14487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3889:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":14488,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3894:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3889:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14339,"id":14490,"nodeType":"Return","src":"3882:15:71"}]},"id":14492,"implemented":true,"kind":"function","modifiers":[],"name":"len","nameLocation":"3084:3:71","nodeType":"FunctionDefinition","parameters":{"id":14336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14335,"mutability":"mutable","name":"self","nameLocation":"3096:4:71","nodeType":"VariableDeclaration","scope":14492,"src":"3088:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3088:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3087:14:71"},"returnParameters":{"id":14339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14492,"src":"3125:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14337,"name":"uint","nodeType":"ElementaryTypeName","src":"3125:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3124:6:71"},"scope":14536,"src":"3075:830:71","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14534,"nodeType":"Block","src":"4046:433:71","statements":[{"assignments":[14501],"declarations":[{"constant":false,"id":14501,"mutability":"mutable","name":"slc","nameLocation":"4070:3:71","nodeType":"VariableDeclaration","scope":14534,"src":"4057:16:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":14500,"nodeType":"UserDefinedTypeName","pathNode":{"id":14499,"name":"slice","nodeType":"IdentifierPath","referencedDeclaration":14280,"src":"4057:5:71"},"referencedDeclaration":14280,"src":"4057:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"id":14502,"nodeType":"VariableDeclarationStatement","src":"4057:16:71"},{"AST":{"nodeType":"YulBlock","src":"4093:162:71","statements":[{"nodeType":"YulVariableDeclaration","src":"4108:22:71","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4125:4:71","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4119:5:71"},"nodeType":"YulFunctionCall","src":"4119:11:71"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"4112:3:71","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4151:4:71","type":"","value":"0x40"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4161:3:71"},{"kind":"number","nodeType":"YulLiteral","src":"4166:4:71","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4157:3:71"},"nodeType":"YulFunctionCall","src":"4157:14:71"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4144:6:71"},"nodeType":"YulFunctionCall","src":"4144:28:71"},"nodeType":"YulExpressionStatement","src":"4144:28:71"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4193:3:71"},{"name":"self","nodeType":"YulIdentifier","src":"4198:4:71"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4186:6:71"},"nodeType":"YulFunctionCall","src":"4186:17:71"},"nodeType":"YulExpressionStatement","src":"4186:17:71"},{"expression":{"arguments":[{"arguments":[{"name":"slc","nodeType":"YulIdentifier","src":"4228:3:71"},{"kind":"number","nodeType":"YulLiteral","src":"4233:4:71","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4224:3:71"},"nodeType":"YulFunctionCall","src":"4224:14:71"},{"name":"ptr","nodeType":"YulIdentifier","src":"4240:3:71"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4217:6:71"},"nodeType":"YulFunctionCall","src":"4217:27:71"},"nodeType":"YulExpressionStatement","src":"4217:27:71"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":14494,"isOffset":false,"isSlot":false,"src":"4198:4:71","valueSize":1},{"declaration":14501,"isOffset":false,"isSlot":false,"src":"4228:3:71","valueSize":1}],"id":14503,"nodeType":"InlineAssembly","src":"4084:171:71"},{"expression":{"id":14510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14504,"name":"slc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"4265:3:71","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_memory_ptr","typeString":"struct strings.slice memory"}},"id":14506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14277,"src":"4265:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14494,"src":"4280:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14507,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14492,"src":"4276:3:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) pure returns (uint256)"}},"id":14509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4276:9:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4265:20:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14511,"nodeType":"ExpressionStatement","src":"4265:20:71"},{"assignments":[14513],"declarations":[{"constant":false,"id":14513,"mutability":"mutable","name":"ret","nameLocation":"4312:3:71","nodeType":"VariableDeclaration","scope":14534,"src":"4298:17:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14512,"name":"string","nodeType":"ElementaryTypeName","src":"4298:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":14519,"initialValue":{"arguments":[{"expression":{"id":14516,"name":"slc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"4329:3:71","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_memory_ptr","typeString":"struct strings.slice memory"}},"id":14517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14277,"src":"4329:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4318:10:71","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":14514,"name":"string","nodeType":"ElementaryTypeName","src":"4322:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":14518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4318:20:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"4298:40:71"},{"assignments":[14521],"declarations":[{"constant":false,"id":14521,"mutability":"mutable","name":"retptr","nameLocation":"4354:6:71","nodeType":"VariableDeclaration","scope":14534,"src":"4349:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14520,"name":"uint","nodeType":"ElementaryTypeName","src":"4349:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14522,"nodeType":"VariableDeclarationStatement","src":"4349:11:71"},{"AST":{"nodeType":"YulBlock","src":"4380:26:71","statements":[{"nodeType":"YulAssignment","src":"4382:22:71","value":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"4396:3:71"},{"kind":"number","nodeType":"YulLiteral","src":"4401:2:71","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4392:3:71"},"nodeType":"YulFunctionCall","src":"4392:12:71"},"variableNames":[{"name":"retptr","nodeType":"YulIdentifier","src":"4382:6:71"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":14513,"isOffset":false,"isSlot":false,"src":"4396:3:71","valueSize":1},{"declaration":14521,"isOffset":false,"isSlot":false,"src":"4382:6:71","valueSize":1}],"id":14523,"nodeType":"InlineAssembly","src":"4371:35:71"},{"expression":{"arguments":[{"id":14525,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14521,"src":"4423:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14526,"name":"slc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"4431:3:71","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_memory_ptr","typeString":"struct strings.slice memory"}},"id":14527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14279,"src":"4431:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14528,"name":"slc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"4441:3:71","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_memory_ptr","typeString":"struct strings.slice memory"}},"id":14529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14277,"src":"4441:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14524,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14333,"src":"4416:6:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":14530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4416:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14531,"nodeType":"ExpressionStatement","src":"4416:34:71"},{"expression":{"id":14532,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14513,"src":"4468:3:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":14498,"id":14533,"nodeType":"Return","src":"4461:10:71"}]},"id":14535,"implemented":true,"kind":"function","modifiers":[],"name":"toB32String","nameLocation":"3982:11:71","nodeType":"FunctionDefinition","parameters":{"id":14495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14494,"mutability":"mutable","name":"self","nameLocation":"4002:4:71","nodeType":"VariableDeclaration","scope":14535,"src":"3994:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3994:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3993:14:71"},"returnParameters":{"id":14498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14497,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14535,"src":"4031:13:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14496,"name":"string","nodeType":"ElementaryTypeName","src":"4031:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4030:15:71"},"scope":14536,"src":"3973:506:71","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":14537,"src":"2137:2345:71"}],"src":"2111:2371:71"},"id":71},"contracts/flows/PolicyDefaultFlow.sol":{"ast":{"absolutePath":"contracts/flows/PolicyDefaultFlow.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IQuery":[5616],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"Ownable":[7481],"Pausable":[8167],"PolicyController":[19974],"PolicyDefaultFlow":[15427],"PoolController":[21207],"QueryModule":[21595],"Strings":[10804],"TransferHelper":[26659],"TreasuryModule":[23615],"WithRegistry":[26779]},"id":15428,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":14538,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:72"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"../modules/ComponentController.sol","id":14539,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":17948,"src":"63:44:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"../modules/PoolController.sol","id":14540,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":21208,"src":"108:39:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PolicyController.sol","file":"../modules/PolicyController.sol","id":14541,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":19975,"src":"148:41:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/QueryModule.sol","file":"../modules/QueryModule.sol","id":14542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":21596,"src":"190:36:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/TreasuryModule.sol","file":"../modules/TreasuryModule.sol","id":14543,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":23616,"src":"227:39:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/WithRegistry.sol","file":"../shared/WithRegistry.sol","id":14544,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":26780,"src":"267:36:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":14545,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":5434,"src":"305:63:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":14546,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":5715,"src":"435:65:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPool.sol","file":"@etherisc/gif-interface/contracts/modules/IPool.sol","id":14547,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":5550,"src":"501:61:72","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14548,"name":"WithRegistry","nodeType":"IdentifierPath","referencedDeclaration":26779,"src":"600:12:72"},"id":14549,"nodeType":"InheritanceSpecifier","src":"600:12:72"}],"contractDependencies":[26779],"contractKind":"contract","fullyImplemented":true,"id":15427,"linearizedBaseContracts":[15427,26779],"name":"PolicyDefaultFlow","nameLocation":"574:17:72","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":14552,"mutability":"constant","name":"NAME","nameLocation":"644:4:72","nodeType":"VariableDeclaration","scope":15427,"src":"620:50:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"620:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6c69637944656661756c74466c6f77","id":14551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"651:19:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c6194c52a3447410e4616772f780a88c4ac5f0b731d2fc7e7979c603182714e","typeString":"literal_string \"PolicyDefaultFlow\""},"value":"PolicyDefaultFlow"},"visibility":"public"},{"body":{"id":14576,"nodeType":"Block","src":"722:224:72","statements":[{"assignments":[14558],"declarations":[{"constant":false,"id":14558,"mutability":"mutable","name":"policy","nameLocation":"749:6:72","nodeType":"VariableDeclaration","scope":14576,"src":"732:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14557,"nodeType":"UserDefinedTypeName","pathNode":{"id":14556,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"732:16:72"},"referencedDeclaration":19974,"src":"732:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14561,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14559,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"758:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"758:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"732:45:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":14571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":14565,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14554,"src":"825:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14563,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"808:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"808:16:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":14566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"808:27:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":14567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"808:33:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":14568,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"845:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":14569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"845:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":14570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5223,"src":"845:26:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"808:63:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645","id":14572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"885:33:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b1cef90b481c0b75b84bee986adfe33e860c5dd41a12fda22045023a52d80d2","typeString":"literal_string \"ERROR:PFD-001:POLICY_NOT_ACTIVE\""},"value":"ERROR:PFD-001:POLICY_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b1cef90b481c0b75b84bee986adfe33e860c5dd41a12fda22045023a52d80d2","typeString":"literal_string \"ERROR:PFD-001:POLICY_NOT_ACTIVE\""}],"id":14562,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"787:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"787:141:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14574,"nodeType":"ExpressionStatement","src":"787:141:72"},{"id":14575,"nodeType":"PlaceholderStatement","src":"938:1:72"}]},"id":14577,"name":"onlyActivePolicy","nameLocation":"686:16:72","nodeType":"ModifierDefinition","parameters":{"id":14555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14554,"mutability":"mutable","name":"processId","nameLocation":"711:9:72","nodeType":"VariableDeclaration","scope":14577,"src":"703:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"703:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"702:19:72"},"src":"677:269:72","virtual":false,"visibility":"internal"},{"body":{"id":14601,"nodeType":"Block","src":"998:226:72","statements":[{"assignments":[14583],"declarations":[{"constant":false,"id":14583,"mutability":"mutable","name":"policy","nameLocation":"1025:6:72","nodeType":"VariableDeclaration","scope":14601,"src":"1008:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14582,"nodeType":"UserDefinedTypeName","pathNode":{"id":14581,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"1008:16:72"},"referencedDeclaration":19974,"src":"1008:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14586,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14584,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"1034:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1034:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"1008:45:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":14596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":14590,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14579,"src":"1101:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14588,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14583,"src":"1084:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"1084:16:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":14591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1084:27:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":14592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"1084:33:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":14593,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"1121:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":14594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"1121:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":14595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":5224,"src":"1121:27:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"1084:64:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5046442d3030323a504f4c4943595f4e4f545f45585049524544","id":14597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1162:34:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_18e20048df1336701316840c9034a9ef82a2e25efaf59ab47262e1bc60a26085","typeString":"literal_string \"ERROR:PFD-002:POLICY_NOT_EXPIRED\""},"value":"ERROR:PFD-002:POLICY_NOT_EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18e20048df1336701316840c9034a9ef82a2e25efaf59ab47262e1bc60a26085","typeString":"literal_string \"ERROR:PFD-002:POLICY_NOT_EXPIRED\""}],"id":14587,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1063:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1063:143:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14599,"nodeType":"ExpressionStatement","src":"1063:143:72"},{"id":14600,"nodeType":"PlaceholderStatement","src":"1216:1:72"}]},"id":14602,"name":"onlyExpiredPolicy","nameLocation":"961:17:72","nodeType":"ModifierDefinition","parameters":{"id":14580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14579,"mutability":"mutable","name":"processId","nameLocation":"987:9:72","nodeType":"VariableDeclaration","scope":14602,"src":"979:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"979:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"978:19:72"},"src":"952:272:72","virtual":false,"visibility":"internal"},{"body":{"id":14626,"nodeType":"Block","src":"1274:220:72","statements":[{"assignments":[14608],"declarations":[{"constant":false,"id":14608,"mutability":"mutable","name":"policy","nameLocation":"1301:6:72","nodeType":"VariableDeclaration","scope":14626,"src":"1284:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14607,"nodeType":"UserDefinedTypeName","pathNode":{"id":14606,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"1284:16:72"},"referencedDeclaration":19974,"src":"1284:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14611,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14609,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"1310:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1310:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"1284:45:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":14621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":14615,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14604,"src":"1377:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14613,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14608,"src":"1360:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"1360:16:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":14616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1360:27:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":14617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"1360:33:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":14618,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"1397:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":14619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"1397:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":14620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"1397:26:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"1360:63:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5046442d3030333a504f4c4943595f434c4f534544","id":14622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1437:29:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_fe1653e6a7be49437891bef0c146fde88ff09a38abe7e0ab716b9121e8b59650","typeString":"literal_string \"ERROR:PFD-003:POLICY_CLOSED\""},"value":"ERROR:PFD-003:POLICY_CLOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fe1653e6a7be49437891bef0c146fde88ff09a38abe7e0ab716b9121e8b59650","typeString":"literal_string \"ERROR:PFD-003:POLICY_CLOSED\""}],"id":14612,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1339:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1339:137:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14624,"nodeType":"ExpressionStatement","src":"1339:137:72"},{"id":14625,"nodeType":"PlaceholderStatement","src":"1486:1:72"}]},"id":14627,"name":"notClosedPolicy","nameLocation":"1239:15:72","nodeType":"ModifierDefinition","parameters":{"id":14605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14604,"mutability":"mutable","name":"processId","nameLocation":"1263:9:72","nodeType":"VariableDeclaration","scope":14627,"src":"1255:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1255:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1254:19:72"},"src":"1230:264:72","virtual":false,"visibility":"internal"},{"body":{"id":14672,"nodeType":"Block","src":"1551:376:72","statements":[{"assignments":[14633],"declarations":[{"constant":false,"id":14633,"mutability":"mutable","name":"policy","nameLocation":"1578:6:72","nodeType":"VariableDeclaration","scope":14672,"src":"1561:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14632,"nodeType":"UserDefinedTypeName","pathNode":{"id":14631,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"1561:16:72"},"referencedDeclaration":19974,"src":"1561:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14636,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14634,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"1587:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1587:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"1561:45:72"},{"assignments":[14641],"declarations":[{"constant":false,"id":14641,"mutability":"mutable","name":"metadata","nameLocation":"1640:8:72","nodeType":"VariableDeclaration","scope":14672,"src":"1616:32:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":14640,"nodeType":"UserDefinedTypeName","pathNode":{"id":14639,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"1616:16:72"},"referencedDeclaration":5248,"src":"1616:16:72","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":14646,"initialValue":{"arguments":[{"id":14644,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14629,"src":"1670:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14642,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14633,"src":"1651:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"1651:18:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":14645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1651:29:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"1616:64:72"},{"assignments":[14649],"declarations":[{"constant":false,"id":14649,"mutability":"mutable","name":"component","nameLocation":"1710:9:72","nodeType":"VariableDeclaration","scope":14672,"src":"1690:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":14648,"nodeType":"UserDefinedTypeName","pathNode":{"id":14647,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"1690:19:72"},"referencedDeclaration":17947,"src":"1690:19:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"internal"}],"id":14655,"initialValue":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":14652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1766:11:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":14651,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"1742:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":14653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1742:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14650,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"1722:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":14654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1722:57:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"VariableDeclarationStatement","src":"1690:89:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14657,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14641,"src":"1797:8:72","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":14658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"1797:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":14663,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"1852:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1852:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1844:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14661,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:72","typeDescriptions":{}}},"id":14665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1844:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14659,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14649,"src":"1819:9:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":14660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"1819:24:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1819:45:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1797:67:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5046442d3030343a50524f4345535349445f50524f445543545f4d49534d41544348","id":14668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1866:42:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_136fc3ad7c83d07b4d40caf713cd67bed82ca2b892762c2adbae1fe6fe0dcfb3","typeString":"literal_string \"ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH\""},"value":"ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_136fc3ad7c83d07b4d40caf713cd67bed82ca2b892762c2adbae1fe6fe0dcfb3","typeString":"literal_string \"ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH\""}],"id":14656,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1789:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1789:120:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14670,"nodeType":"ExpressionStatement","src":"1789:120:72"},{"id":14671,"nodeType":"PlaceholderStatement","src":"1919:1:72"}]},"id":14673,"name":"onlyResponsibleProduct","nameLocation":"1509:22:72","nodeType":"ModifierDefinition","parameters":{"id":14630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14629,"mutability":"mutable","name":"processId","nameLocation":"1540:9:72","nodeType":"VariableDeclaration","scope":14673,"src":"1532:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1532:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1531:19:72"},"src":"1500:427:72","virtual":false,"visibility":"internal"},{"body":{"id":14732,"nodeType":"Block","src":"1981:496:72","statements":[{"assignments":[14679],"declarations":[{"constant":false,"id":14679,"mutability":"mutable","name":"query","nameLocation":"2003:5:72","nodeType":"VariableDeclaration","scope":14732,"src":"1991:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"},"typeName":{"id":14678,"nodeType":"UserDefinedTypeName","pathNode":{"id":14677,"name":"QueryModule","nodeType":"IdentifierPath","referencedDeclaration":21595,"src":"1991:11:72"},"referencedDeclaration":21595,"src":"1991:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"visibility":"internal"}],"id":14682,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14680,"name":"getQueryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"2011:16:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_QueryModule_$21595_$","typeString":"function () view returns (contract QueryModule)"}},"id":14681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2011:18:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"nodeType":"VariableDeclarationStatement","src":"1991:38:72"},{"assignments":[14684],"declarations":[{"constant":false,"id":14684,"mutability":"mutable","name":"processId","nameLocation":"2047:9:72","nodeType":"VariableDeclaration","scope":14732,"src":"2039:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2039:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":14690,"initialValue":{"arguments":[{"id":14688,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14675,"src":"2091:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14685,"name":"getQueryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"2059:16:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_QueryModule_$21595_$","typeString":"function () view returns (contract QueryModule)"}},"id":14686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2059:18:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"id":14687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProcessId","nodeType":"MemberAccess","referencedDeclaration":21535,"src":"2059:31:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view external returns (bytes32)"}},"id":14689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2059:42:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2039:62:72"},{"assignments":[14693],"declarations":[{"constant":false,"id":14693,"mutability":"mutable","name":"policy","nameLocation":"2128:6:72","nodeType":"VariableDeclaration","scope":14732,"src":"2111:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14692,"nodeType":"UserDefinedTypeName","pathNode":{"id":14691,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"2111:16:72"},"referencedDeclaration":19974,"src":"2111:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14696,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14694,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"2137:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2137:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"2111:45:72"},{"assignments":[14701],"declarations":[{"constant":false,"id":14701,"mutability":"mutable","name":"metadata","nameLocation":"2190:8:72","nodeType":"VariableDeclaration","scope":14732,"src":"2166:32:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":14700,"nodeType":"UserDefinedTypeName","pathNode":{"id":14699,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"2166:16:72"},"referencedDeclaration":5248,"src":"2166:16:72","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":14706,"initialValue":{"arguments":[{"id":14704,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14684,"src":"2220:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14702,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14693,"src":"2201:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"2201:18:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":14705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2201:29:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"2166:64:72"},{"assignments":[14709],"declarations":[{"constant":false,"id":14709,"mutability":"mutable","name":"component","nameLocation":"2260:9:72","nodeType":"VariableDeclaration","scope":14732,"src":"2240:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":14708,"nodeType":"UserDefinedTypeName","pathNode":{"id":14707,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"2240:19:72"},"referencedDeclaration":17947,"src":"2240:19:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"internal"}],"id":14715,"initialValue":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":14712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2316:11:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":14711,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"2292:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":14713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2292:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14710,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"2272:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":14714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2272:57:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"VariableDeclarationStatement","src":"2240:89:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14717,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14701,"src":"2347:8:72","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":14718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"2347:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":14723,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"2402:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2402:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2394:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14721,"name":"address","nodeType":"ElementaryTypeName","src":"2394:7:72","typeDescriptions":{}}},"id":14725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2394:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14719,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14709,"src":"2369:9:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":14720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"2369:24:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2369:45:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2347:67:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5046442d3030353a5245515545535449445f50524f445543545f4d49534d41544348","id":14728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2416:42:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0e68ed3ce2670c36485c8c12aea21dfa09249d8122b89624db20258a17e2536","typeString":"literal_string \"ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH\""},"value":"ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d0e68ed3ce2670c36485c8c12aea21dfa09249d8122b89624db20258a17e2536","typeString":"literal_string \"ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH\""}],"id":14716,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2339:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2339:120:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14730,"nodeType":"ExpressionStatement","src":"2339:120:72"},{"id":14731,"nodeType":"PlaceholderStatement","src":"2469:1:72"}]},"id":14733,"name":"onlyMatchingProduct","nameLocation":"1942:19:72","nodeType":"ModifierDefinition","parameters":{"id":14676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14675,"mutability":"mutable","name":"requestId","nameLocation":"1970:9:72","nodeType":"VariableDeclaration","scope":14733,"src":"1962:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14674,"name":"uint256","nodeType":"ElementaryTypeName","src":"1962:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1961:19:72"},"src":"1933:544:72","virtual":false,"visibility":"internal"},{"body":{"id":14741,"nodeType":"Block","src":"2649:8:72","statements":[]},"id":14742,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":14738,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14735,"src":"2633:9:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":14739,"modifierName":{"id":14737,"name":"WithRegistry","nodeType":"IdentifierPath","referencedDeclaration":26779,"src":"2620:12:72"},"nodeType":"ModifierInvocation","src":"2620:23:72"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14735,"mutability":"mutable","name":"_registry","nameLocation":"2600:9:72","nodeType":"VariableDeclaration","scope":14742,"src":"2592:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14734,"name":"address","nodeType":"ElementaryTypeName","src":"2592:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2591:19:72"},"returnParameters":{"id":14740,"nodeType":"ParameterList","parameters":[],"src":"2649:0:72"},"scope":15427,"src":"2580:77:72","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14795,"nodeType":"Block","src":"2913:404:72","statements":[{"assignments":[14759],"declarations":[{"constant":false,"id":14759,"mutability":"mutable","name":"component","nameLocation":"2943:9:72","nodeType":"VariableDeclaration","scope":14795,"src":"2923:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":14758,"nodeType":"UserDefinedTypeName","pathNode":{"id":14757,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"2923:19:72"},"referencedDeclaration":17947,"src":"2923:19:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"internal"}],"id":14762,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14760,"name":"getComponentContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15374,"src":"2955:20:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_ComponentController_$17947_$","typeString":"function () view returns (contract ComponentController)"}},"id":14761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2955:22:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"VariableDeclarationStatement","src":"2923:54:72"},{"assignments":[14764],"declarations":[{"constant":false,"id":14764,"mutability":"mutable","name":"productId","nameLocation":"2995:9:72","nodeType":"VariableDeclaration","scope":14795,"src":"2987:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14763,"name":"uint256","nodeType":"ElementaryTypeName","src":"2987:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14770,"initialValue":{"arguments":[{"expression":{"id":14767,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"3032:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3032:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14765,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14759,"src":"3007:9:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":14766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"3007:24:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3007:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2987:56:72"},{"assignments":[14773],"declarations":[{"constant":false,"id":14773,"mutability":"mutable","name":"policy","nameLocation":"3062:6:72","nodeType":"VariableDeclaration","scope":14795,"src":"3054:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":14772,"nodeType":"UserDefinedTypeName","pathNode":{"id":14771,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"3054:7:72"},"referencedDeclaration":5433,"src":"3054:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":14776,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14774,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"3071:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3071:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"3054:36:72"},{"expression":{"id":14784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14777,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14755,"src":"3100:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14780,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14744,"src":"3136:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14781,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14764,"src":"3143:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14782,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14750,"src":"3154:8:72","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":14778,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14773,"src":"3112:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":14779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createPolicyFlow","nodeType":"MemberAccess","referencedDeclaration":5321,"src":"3112:23:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes memory) external returns (bytes32)"}},"id":14783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3112:51:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3100:63:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14785,"nodeType":"ExpressionStatement","src":"3100:63:72"},{"expression":{"arguments":[{"id":14789,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14755,"src":"3211:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14790,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14746,"src":"3235:13:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14791,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14748,"src":"3263:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14792,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14752,"src":"3294:15:72","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":14786,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14773,"src":"3173:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":14788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createApplication","nodeType":"MemberAccess","referencedDeclaration":5332,"src":"3173:24:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint256,uint256,bytes memory) external"}},"id":14793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3173:137:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14794,"nodeType":"ExpressionStatement","src":"3173:137:72"}]},"functionSelector":"93b8414a","id":14796,"implemented":true,"kind":"function","modifiers":[],"name":"newApplication","nameLocation":"2672:14:72","nodeType":"FunctionDefinition","parameters":{"id":14753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14744,"mutability":"mutable","name":"owner","nameLocation":"2704:5:72","nodeType":"VariableDeclaration","scope":14796,"src":"2696:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14743,"name":"address","nodeType":"ElementaryTypeName","src":"2696:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14746,"mutability":"mutable","name":"premiumAmount","nameLocation":"2727:13:72","nodeType":"VariableDeclaration","scope":14796,"src":"2719:21:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14745,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14748,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"2758:16:72","nodeType":"VariableDeclaration","scope":14796,"src":"2750:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14747,"name":"uint256","nodeType":"ElementaryTypeName","src":"2750:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14750,"mutability":"mutable","name":"metaData","nameLocation":"2799:8:72","nodeType":"VariableDeclaration","scope":14796,"src":"2784:23:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14749,"name":"bytes","nodeType":"ElementaryTypeName","src":"2784:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14752,"mutability":"mutable","name":"applicationData","nameLocation":"2833:15:72","nodeType":"VariableDeclaration","scope":14796,"src":"2818:30:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14751,"name":"bytes","nodeType":"ElementaryTypeName","src":"2818:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2686:169:72"},"returnParameters":{"id":14756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14755,"mutability":"mutable","name":"processId","nameLocation":"2898:9:72","nodeType":"VariableDeclaration","scope":14796,"src":"2890:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2890:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2889:19:72"},"scope":15427,"src":"2663:654:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14816,"nodeType":"Block","src":"3422:98:72","statements":[{"assignments":[14806],"declarations":[{"constant":false,"id":14806,"mutability":"mutable","name":"policy","nameLocation":"3440:6:72","nodeType":"VariableDeclaration","scope":14816,"src":"3432:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":14805,"nodeType":"UserDefinedTypeName","pathNode":{"id":14804,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"3432:7:72"},"referencedDeclaration":5433,"src":"3432:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":14809,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14807,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"3449:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3449:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"3432:36:72"},{"expression":{"arguments":[{"id":14813,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14798,"src":"3503:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14810,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14806,"src":"3478:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":14812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"revokeApplication","nodeType":"MemberAccess","referencedDeclaration":5337,"src":"3478:24:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":14814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3478:35:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14815,"nodeType":"ExpressionStatement","src":"3478:35:72"}]},"functionSelector":"b75c7dc6","id":14817,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14801,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14798,"src":"3407:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14802,"modifierName":{"id":14800,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"3384:22:72"},"nodeType":"ModifierInvocation","src":"3384:33:72"}],"name":"revoke","nameLocation":"3332:6:72","nodeType":"FunctionDefinition","parameters":{"id":14799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14798,"mutability":"mutable","name":"processId","nameLocation":"3347:9:72","nodeType":"VariableDeclaration","scope":14817,"src":"3339:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14797,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3339:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3338:19:72"},"returnParameters":{"id":14803,"nodeType":"ParameterList","parameters":[],"src":"3422:0:72"},"scope":15427,"src":"3323:197:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14877,"nodeType":"Block","src":"3723:887:72","statements":[{"assignments":[14829],"declarations":[{"constant":false,"id":14829,"mutability":"mutable","name":"pool","nameLocation":"3810:4:72","nodeType":"VariableDeclaration","scope":14877,"src":"3795:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":14828,"nodeType":"UserDefinedTypeName","pathNode":{"id":14827,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"3795:14:72"},"referencedDeclaration":21207,"src":"3795:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"}],"id":14832,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14830,"name":"getPoolContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15387,"src":"3817:15:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PoolController_$21207_$","typeString":"function () view returns (contract PoolController)"}},"id":14831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3817:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"VariableDeclarationStatement","src":"3795:39:72"},{"expression":{"id":14838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14833,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14825,"src":"3844:7:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14836,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"3870:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14834,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14829,"src":"3854:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":14835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"underwrite","nodeType":"MemberAccess","referencedDeclaration":20591,"src":"3854:15:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) external returns (bool)"}},"id":14837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3854:26:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3844:36:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14839,"nodeType":"ExpressionStatement","src":"3844:36:72"},{"condition":{"id":14840,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14825,"src":"4207:7:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14876,"nodeType":"IfStatement","src":"4203:401:72","trueBody":{"id":14875,"nodeType":"Block","src":"4216:388:72","statements":[{"assignments":[14843],"declarations":[{"constant":false,"id":14843,"mutability":"mutable","name":"policyController","nameLocation":"4247:16:72","nodeType":"VariableDeclaration","scope":14875,"src":"4230:33:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14842,"nodeType":"UserDefinedTypeName","pathNode":{"id":14841,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"4230:16:72"},"referencedDeclaration":19974,"src":"4230:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14846,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14844,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"4266:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4266:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"4230:55:72"},{"expression":{"arguments":[{"id":14850,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"4338:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14847,"name":"policyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14843,"src":"4299:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"underwriteApplication","nodeType":"MemberAccess","referencedDeclaration":18555,"src":"4299:38:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":14851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4299:49:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14852,"nodeType":"ExpressionStatement","src":"4299:49:72"},{"expression":{"arguments":[{"id":14856,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"4392:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14853,"name":"policyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14843,"src":"4362:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createPolicy","nodeType":"MemberAccess","referencedDeclaration":18727,"src":"4362:29:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":14857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4362:40:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14858,"nodeType":"ExpressionStatement","src":"4362:40:72"},{"assignments":[14863],"declarations":[{"constant":false,"id":14863,"mutability":"mutable","name":"policy","nameLocation":"4478:6:72","nodeType":"VariableDeclaration","scope":14875,"src":"4456:28:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":14862,"nodeType":"UserDefinedTypeName","pathNode":{"id":14861,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"4456:14:72"},"referencedDeclaration":5282,"src":"4456:14:72","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":14868,"initialValue":{"arguments":[{"id":14866,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"4514:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14864,"name":"policyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14843,"src":"4487:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"4487:26:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":14867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4487:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"4456:68:72"},{"expression":{"arguments":[{"id":14870,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"4553:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":14871,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14863,"src":"4564:6:72","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":14872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"4564:28:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14869,"name":"collectPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14946,"src":"4538:14:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (bool,uint256,uint256)"}},"id":14873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4538:55:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"id":14874,"nodeType":"ExpressionStatement","src":"4538:55:72"}]}}]},"functionSelector":"1b07b17f","id":14878,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14822,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"3677:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14823,"modifierName":{"id":14821,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"3654:22:72"},"nodeType":"ModifierInvocation","src":"3654:33:72"}],"name":"underwrite","nameLocation":"3597:10:72","nodeType":"FunctionDefinition","parameters":{"id":14820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14819,"mutability":"mutable","name":"processId","nameLocation":"3616:9:72","nodeType":"VariableDeclaration","scope":14878,"src":"3608:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14818,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3608:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3607:19:72"},"returnParameters":{"id":14826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14825,"mutability":"mutable","name":"success","nameLocation":"3709:7:72","nodeType":"VariableDeclaration","scope":14878,"src":"3704:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14824,"name":"bool","nodeType":"ElementaryTypeName","src":"3704:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3703:14:72"},"scope":15427,"src":"3588:1022:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14945,"nodeType":"Block","src":"5128:515:72","statements":[{"assignments":[14899],"declarations":[{"constant":false,"id":14899,"mutability":"mutable","name":"treasury","nameLocation":"5153:8:72","nodeType":"VariableDeclaration","scope":14945,"src":"5138:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":14898,"nodeType":"UserDefinedTypeName","pathNode":{"id":14897,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"5138:14:72"},"referencedDeclaration":23615,"src":"5138:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"internal"}],"id":14902,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14900,"name":"getTreasuryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15426,"src":"5164:19:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_TreasuryModule_$23615_$","typeString":"function () view returns (contract TreasuryModule)"}},"id":14901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5164:21:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"nodeType":"VariableDeclarationStatement","src":"5138:47:72"},{"assignments":[14905],"declarations":[{"constant":false,"id":14905,"mutability":"mutable","name":"policy","nameLocation":"5212:6:72","nodeType":"VariableDeclaration","scope":14945,"src":"5195:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14904,"nodeType":"UserDefinedTypeName","pathNode":{"id":14903,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"5195:16:72"},"referencedDeclaration":19974,"src":"5195:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14908,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14906,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"5221:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5221:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"5195:45:72"},{"expression":{"id":14918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":14909,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14891,"src":"5252:7:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14910,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14893,"src":"5261:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14911,"name":"netPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14895,"src":"5272:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14912,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5251:38:72","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14915,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14880,"src":"5316:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14916,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14882,"src":"5327:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14913,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14899,"src":"5292:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":14914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPremium","nodeType":"MemberAccess","referencedDeclaration":23002,"src":"5292:23:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (bool,uint256,uint256)"}},"id":14917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5292:42:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"5251:83:72","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14919,"nodeType":"ExpressionStatement","src":"5251:83:72"},{"condition":{"id":14920,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14891,"src":"5425:7:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14944,"nodeType":"IfStatement","src":"5421:216:72","trueBody":{"id":14943,"nodeType":"Block","src":"5434:203:72","statements":[{"expression":{"arguments":[{"id":14924,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14880,"src":"5470:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14925,"name":"netPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14895,"src":"5481:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":14926,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14893,"src":"5500:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5481:28:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14921,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14905,"src":"5448:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collectPremium","nodeType":"MemberAccess","referencedDeclaration":18416,"src":"5448:21:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":14928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5448:62:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14929,"nodeType":"ExpressionStatement","src":"5448:62:72"},{"assignments":[14932],"declarations":[{"constant":false,"id":14932,"mutability":"mutable","name":"pool","nameLocation":"5540:4:72","nodeType":"VariableDeclaration","scope":14943,"src":"5525:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":14931,"nodeType":"UserDefinedTypeName","pathNode":{"id":14930,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"5525:14:72"},"referencedDeclaration":21207,"src":"5525:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"}],"id":14935,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14933,"name":"getPoolContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15387,"src":"5547:15:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PoolController_$21207_$","typeString":"function () view returns (contract PoolController)"}},"id":14934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5547:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"VariableDeclarationStatement","src":"5525:39:72"},{"expression":{"arguments":[{"id":14939,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14880,"src":"5598:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14940,"name":"netPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14895,"src":"5609:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14936,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14932,"src":"5578:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":14938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPremium","nodeType":"MemberAccess","referencedDeclaration":20704,"src":"5578:19:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":14941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5578:48:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14942,"nodeType":"ExpressionStatement","src":"5578:48:72"}]}}]},"functionSelector":"e3ebdea5","id":14946,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14885,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14880,"src":"4947:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14886,"modifierName":{"id":14884,"name":"notClosedPolicy","nodeType":"IdentifierPath","referencedDeclaration":14627,"src":"4931:15:72"},"nodeType":"ModifierInvocation","src":"4931:26:72"},{"arguments":[{"id":14888,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14880,"src":"4989:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14889,"modifierName":{"id":14887,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"4966:22:72"},"nodeType":"ModifierInvocation","src":"4966:33:72"}],"name":"collectPremium","nameLocation":"4856:14:72","nodeType":"FunctionDefinition","parameters":{"id":14883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14880,"mutability":"mutable","name":"processId","nameLocation":"4879:9:72","nodeType":"VariableDeclaration","scope":14946,"src":"4871:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4871:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14882,"mutability":"mutable","name":"amount","nameLocation":"4898:6:72","nodeType":"VariableDeclaration","scope":14946,"src":"4890:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14881,"name":"uint256","nodeType":"ElementaryTypeName","src":"4890:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4870:35:72"},"returnParameters":{"id":14896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14891,"mutability":"mutable","name":"success","nameLocation":"5034:7:72","nodeType":"VariableDeclaration","scope":14946,"src":"5029:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14890,"name":"bool","nodeType":"ElementaryTypeName","src":"5029:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14893,"mutability":"mutable","name":"feeAmount","nameLocation":"5064:9:72","nodeType":"VariableDeclaration","scope":14946,"src":"5056:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14892,"name":"uint256","nodeType":"ElementaryTypeName","src":"5056:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14895,"mutability":"mutable","name":"netPremiumAmount","nameLocation":"5096:16:72","nodeType":"VariableDeclaration","scope":14946,"src":"5088:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14894,"name":"uint256","nodeType":"ElementaryTypeName","src":"5088:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5015:107:72"},"scope":15427,"src":"4847:796:72","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14975,"nodeType":"Block","src":"5891:154:72","statements":[{"assignments":[14963],"declarations":[{"constant":false,"id":14963,"mutability":"mutable","name":"policy","nameLocation":"5918:6:72","nodeType":"VariableDeclaration","scope":14975,"src":"5901:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14962,"nodeType":"UserDefinedTypeName","pathNode":{"id":14961,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"5901:16:72"},"referencedDeclaration":19974,"src":"5901:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14964,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"5927:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5927:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"5901:45:72"},{"expression":{"arguments":[{"id":14970,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14948,"src":"5987:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14971,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14950,"src":"5998:21:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14972,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14952,"src":"6021:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14967,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14963,"src":"5956:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"adjustPremiumSumInsured","nodeType":"MemberAccess","referencedDeclaration":18893,"src":"5956:30:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256) external"}},"id":14973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5956:82:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14974,"nodeType":"ExpressionStatement","src":"5956:82:72"}]},"functionSelector":"30a73da5","id":14976,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14955,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14948,"src":"5834:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14956,"modifierName":{"id":14954,"name":"notClosedPolicy","nodeType":"IdentifierPath","referencedDeclaration":14627,"src":"5818:15:72"},"nodeType":"ModifierInvocation","src":"5818:26:72"},{"arguments":[{"id":14958,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14948,"src":"5876:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14959,"modifierName":{"id":14957,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"5853:22:72"},"nodeType":"ModifierInvocation","src":"5853:33:72"}],"name":"adjustPremiumSumInsured","nameLocation":"5662:23:72","nodeType":"FunctionDefinition","parameters":{"id":14953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14948,"mutability":"mutable","name":"processId","nameLocation":"5703:9:72","nodeType":"VariableDeclaration","scope":14976,"src":"5695:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14947,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5695:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14950,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"5731:21:72","nodeType":"VariableDeclaration","scope":14976,"src":"5723:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14949,"name":"uint256","nodeType":"ElementaryTypeName","src":"5723:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14952,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"5770:16:72","nodeType":"VariableDeclaration","scope":14976,"src":"5762:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14951,"name":"uint256","nodeType":"ElementaryTypeName","src":"5762:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5685:107:72"},"returnParameters":{"id":14960,"nodeType":"ParameterList","parameters":[],"src":"5891:0:72"},"scope":15427,"src":"5653:392:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14996,"nodeType":"Block","src":"6153:99:72","statements":[{"assignments":[14986],"declarations":[{"constant":false,"id":14986,"mutability":"mutable","name":"policy","nameLocation":"6171:6:72","nodeType":"VariableDeclaration","scope":14996,"src":"6163:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":14985,"nodeType":"UserDefinedTypeName","pathNode":{"id":14984,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"6163:7:72"},"referencedDeclaration":5433,"src":"6163:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":14989,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14987,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"6180:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6180:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"6163:36:72"},{"expression":{"arguments":[{"id":14993,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14978,"src":"6235:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14990,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14986,"src":"6209:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":14992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"declineApplication","nodeType":"MemberAccess","referencedDeclaration":5347,"src":"6209:25:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":14994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6209:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14995,"nodeType":"ExpressionStatement","src":"6209:36:72"}]},"functionSelector":"8cc7d3d1","id":14997,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14981,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14978,"src":"6120:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14982,"modifierName":{"id":14980,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"6097:22:72"},"nodeType":"ModifierInvocation","src":"6097:33:72"}],"name":"decline","nameLocation":"6061:7:72","nodeType":"FunctionDefinition","parameters":{"id":14979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14978,"mutability":"mutable","name":"processId","nameLocation":"6077:9:72","nodeType":"VariableDeclaration","scope":14997,"src":"6069:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6069:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6068:19:72"},"returnParameters":{"id":14983,"nodeType":"ParameterList","parameters":[],"src":"6153:0:72"},"scope":15427,"src":"6052:200:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15020,"nodeType":"Block","src":"6393:93:72","statements":[{"assignments":[15010],"declarations":[{"constant":false,"id":15010,"mutability":"mutable","name":"policy","nameLocation":"6411:6:72","nodeType":"VariableDeclaration","scope":15020,"src":"6403:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":15009,"nodeType":"UserDefinedTypeName","pathNode":{"id":15008,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"6403:7:72"},"referencedDeclaration":5433,"src":"6403:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":15013,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15011,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"6420:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6420:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"6403:36:72"},{"expression":{"arguments":[{"id":15017,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14999,"src":"6469:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15014,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15010,"src":"6449:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":15016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"expirePolicy","nodeType":"MemberAccess","referencedDeclaration":5373,"src":"6449:19:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":15018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6449:30:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15019,"nodeType":"ExpressionStatement","src":"6449:30:72"}]},"functionSelector":"c6441798","id":15021,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15002,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14999,"src":"6336:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15003,"modifierName":{"id":15001,"name":"onlyActivePolicy","nodeType":"IdentifierPath","referencedDeclaration":14577,"src":"6319:16:72"},"nodeType":"ModifierInvocation","src":"6319:27:72"},{"arguments":[{"id":15005,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14999,"src":"6378:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15006,"modifierName":{"id":15004,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"6355:22:72"},"nodeType":"ModifierInvocation","src":"6355:33:72"}],"name":"expire","nameLocation":"6267:6:72","nodeType":"FunctionDefinition","parameters":{"id":15000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14999,"mutability":"mutable","name":"processId","nameLocation":"6282:9:72","nodeType":"VariableDeclaration","scope":15021,"src":"6274:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6274:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6273:19:72"},"returnParameters":{"id":15007,"nodeType":"ParameterList","parameters":[],"src":"6393:0:72"},"scope":15427,"src":"6258:228:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15056,"nodeType":"Block","src":"6627:166:72","statements":[{"assignments":[15034],"declarations":[{"constant":false,"id":15034,"mutability":"mutable","name":"policy","nameLocation":"6645:6:72","nodeType":"VariableDeclaration","scope":15056,"src":"6637:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":15033,"nodeType":"UserDefinedTypeName","pathNode":{"id":15032,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"6637:7:72"},"referencedDeclaration":5433,"src":"6637:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":15037,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15035,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"6654:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6654:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"6637:36:72"},{"expression":{"arguments":[{"id":15041,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15023,"src":"6702:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15038,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15034,"src":"6683:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":15040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"closePolicy","nodeType":"MemberAccess","referencedDeclaration":5378,"src":"6683:18:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":15042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6683:29:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15043,"nodeType":"ExpressionStatement","src":"6683:29:72"},{"assignments":[15046],"declarations":[{"constant":false,"id":15046,"mutability":"mutable","name":"pool","nameLocation":"6729:4:72","nodeType":"VariableDeclaration","scope":15056,"src":"6723:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPool_$5549","typeString":"contract IPool"},"typeName":{"id":15045,"nodeType":"UserDefinedTypeName","pathNode":{"id":15044,"name":"IPool","nodeType":"IdentifierPath","referencedDeclaration":5549,"src":"6723:5:72"},"referencedDeclaration":5549,"src":"6723:5:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPool_$5549","typeString":"contract IPool"}},"visibility":"internal"}],"id":15049,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15047,"name":"getPoolContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15387,"src":"6736:15:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PoolController_$21207_$","typeString":"function () view returns (contract PoolController)"}},"id":15048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6736:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"VariableDeclarationStatement","src":"6723:30:72"},{"expression":{"arguments":[{"id":15053,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15023,"src":"6776:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15050,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15046,"src":"6763:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPool_$5549","typeString":"contract IPool"}},"id":15052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"release","nodeType":"MemberAccess","referencedDeclaration":5548,"src":"6763:12:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":15054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6763:23:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15055,"nodeType":"ExpressionStatement","src":"6763:23:72"}]},"functionSelector":"39c79e0c","id":15057,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15026,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15023,"src":"6570:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15027,"modifierName":{"id":15025,"name":"onlyExpiredPolicy","nodeType":"IdentifierPath","referencedDeclaration":14602,"src":"6552:17:72"},"nodeType":"ModifierInvocation","src":"6552:28:72"},{"arguments":[{"id":15029,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15023,"src":"6612:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15030,"modifierName":{"id":15028,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"6589:22:72"},"nodeType":"ModifierInvocation","src":"6589:33:72"}],"name":"close","nameLocation":"6501:5:72","nodeType":"FunctionDefinition","parameters":{"id":15024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15023,"mutability":"mutable","name":"processId","nameLocation":"6515:9:72","nodeType":"VariableDeclaration","scope":15057,"src":"6507:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6507:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6506:19:72"},"returnParameters":{"id":15031,"nodeType":"ParameterList","parameters":[],"src":"6627:0:72"},"scope":15427,"src":"6492:301:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15084,"nodeType":"Block","src":"7042:126:72","statements":[{"expression":{"id":15082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15074,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"7052:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15078,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"7107:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15079,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15061,"src":"7131:11:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15080,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15063,"src":"7156:4:72","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15075,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"7062:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7062:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createClaim","nodeType":"MemberAccess","referencedDeclaration":19170,"src":"7062:31:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) external returns (uint256)"}},"id":15081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7062:99:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7052:109:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15083,"nodeType":"ExpressionStatement","src":"7052:109:72"}]},"functionSelector":"fae43d15","id":15085,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15066,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"6951:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15067,"modifierName":{"id":15065,"name":"onlyActivePolicy","nodeType":"IdentifierPath","referencedDeclaration":14577,"src":"6934:16:72"},"nodeType":"ModifierInvocation","src":"6934:27:72"},{"arguments":[{"id":15069,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"6993:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15070,"modifierName":{"id":15068,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"6970:22:72"},"nodeType":"ModifierInvocation","src":"6970:33:72"}],"name":"newClaim","nameLocation":"6808:8:72","nodeType":"FunctionDefinition","parameters":{"id":15064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15059,"mutability":"mutable","name":"processId","nameLocation":"6834:9:72","nodeType":"VariableDeclaration","scope":15085,"src":"6826:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6826:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15061,"mutability":"mutable","name":"claimAmount","nameLocation":"6862:11:72","nodeType":"VariableDeclaration","scope":15085,"src":"6854:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15060,"name":"uint256","nodeType":"ElementaryTypeName","src":"6854:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15063,"mutability":"mutable","name":"data","nameLocation":"6898:4:72","nodeType":"VariableDeclaration","scope":15085,"src":"6883:19:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15062,"name":"bytes","nodeType":"ElementaryTypeName","src":"6883:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6816:92:72"},"returnParameters":{"id":15073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15072,"mutability":"mutable","name":"claimId","nameLocation":"7029:7:72","nodeType":"VariableDeclaration","scope":15085,"src":"7021:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15071,"name":"uint256","nodeType":"ElementaryTypeName","src":"7021:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7020:17:72"},"scope":15427,"src":"6799:369:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15111,"nodeType":"Block","src":"7352:128:72","statements":[{"assignments":[15099],"declarations":[{"constant":false,"id":15099,"mutability":"mutable","name":"policy","nameLocation":"7379:6:72","nodeType":"VariableDeclaration","scope":15111,"src":"7362:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15098,"nodeType":"UserDefinedTypeName","pathNode":{"id":15097,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"7362:16:72"},"referencedDeclaration":19974,"src":"7362:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15100,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"7388:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7388:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"7362:45:72"},{"expression":{"arguments":[{"id":15106,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15087,"src":"7437:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15107,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15089,"src":"7448:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15108,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15091,"src":"7457:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15103,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15099,"src":"7417:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"confirmClaim","nodeType":"MemberAccess","referencedDeclaration":19283,"src":"7417:19:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256) external"}},"id":15109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7417:56:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15110,"nodeType":"ExpressionStatement","src":"7417:56:72"}]},"functionSelector":"4e02c63f","id":15112,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15094,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15087,"src":"7336:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15095,"modifierName":{"id":15093,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"7313:22:72"},"nodeType":"ModifierInvocation","src":"7313:33:72"}],"name":"confirmClaim","nameLocation":"7183:12:72","nodeType":"FunctionDefinition","parameters":{"id":15092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15087,"mutability":"mutable","name":"processId","nameLocation":"7213:9:72","nodeType":"VariableDeclaration","scope":15112,"src":"7205:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7205:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15089,"mutability":"mutable","name":"claimId","nameLocation":"7240:7:72","nodeType":"VariableDeclaration","scope":15112,"src":"7232:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15088,"name":"uint256","nodeType":"ElementaryTypeName","src":"7232:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15091,"mutability":"mutable","name":"confirmedAmount","nameLocation":"7265:15:72","nodeType":"VariableDeclaration","scope":15112,"src":"7257:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15090,"name":"uint256","nodeType":"ElementaryTypeName","src":"7257:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7195:91:72"},"returnParameters":{"id":15096,"nodeType":"ParameterList","parameters":[],"src":"7352:0:72"},"scope":15427,"src":"7174:306:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15135,"nodeType":"Block","src":"7609:111:72","statements":[{"assignments":[15124],"declarations":[{"constant":false,"id":15124,"mutability":"mutable","name":"policy","nameLocation":"7636:6:72","nodeType":"VariableDeclaration","scope":15135,"src":"7619:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15123,"nodeType":"UserDefinedTypeName","pathNode":{"id":15122,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"7619:16:72"},"referencedDeclaration":19974,"src":"7619:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15127,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15125,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"7645:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7645:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"7619:45:72"},{"expression":{"arguments":[{"id":15131,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15114,"src":"7694:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15132,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15116,"src":"7705:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15128,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15124,"src":"7674:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"declineClaim","nodeType":"MemberAccess","referencedDeclaration":19370,"src":"7674:19:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":15133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7674:39:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15134,"nodeType":"ExpressionStatement","src":"7674:39:72"}]},"functionSelector":"4cda0de9","id":15136,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15119,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15114,"src":"7594:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15120,"modifierName":{"id":15118,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"7571:22:72"},"nodeType":"ModifierInvocation","src":"7571:33:72"}],"name":"declineClaim","nameLocation":"7495:12:72","nodeType":"FunctionDefinition","parameters":{"id":15117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15114,"mutability":"mutable","name":"processId","nameLocation":"7516:9:72","nodeType":"VariableDeclaration","scope":15136,"src":"7508:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7508:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15116,"mutability":"mutable","name":"claimId","nameLocation":"7535:7:72","nodeType":"VariableDeclaration","scope":15136,"src":"7527:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15115,"name":"uint256","nodeType":"ElementaryTypeName","src":"7527:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7507:36:72"},"returnParameters":{"id":15121,"nodeType":"ParameterList","parameters":[],"src":"7609:0:72"},"scope":15427,"src":"7486:234:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15159,"nodeType":"Block","src":"7847:109:72","statements":[{"assignments":[15148],"declarations":[{"constant":false,"id":15148,"mutability":"mutable","name":"policy","nameLocation":"7874:6:72","nodeType":"VariableDeclaration","scope":15159,"src":"7857:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15147,"nodeType":"UserDefinedTypeName","pathNode":{"id":15146,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"7857:16:72"},"referencedDeclaration":19974,"src":"7857:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15151,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15149,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"7883:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7883:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"7857:45:72"},{"expression":{"arguments":[{"id":15155,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15138,"src":"7930:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15156,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15140,"src":"7941:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15152,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15148,"src":"7912:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"closeClaim","nodeType":"MemberAccess","referencedDeclaration":19491,"src":"7912:17:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":15157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7912:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15158,"nodeType":"ExpressionStatement","src":"7912:37:72"}]},"functionSelector":"7f29dba2","id":15160,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15143,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15138,"src":"7832:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15144,"modifierName":{"id":15142,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"7809:22:72"},"nodeType":"ModifierInvocation","src":"7809:33:72"}],"name":"closeClaim","nameLocation":"7735:10:72","nodeType":"FunctionDefinition","parameters":{"id":15141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15138,"mutability":"mutable","name":"processId","nameLocation":"7754:9:72","nodeType":"VariableDeclaration","scope":15160,"src":"7746:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7746:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15140,"mutability":"mutable","name":"claimId","nameLocation":"7773:7:72","nodeType":"VariableDeclaration","scope":15160,"src":"7765:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15139,"name":"uint256","nodeType":"ElementaryTypeName","src":"7765:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7745:36:72"},"returnParameters":{"id":15145,"nodeType":"ParameterList","parameters":[],"src":"7847:0:72"},"scope":15427,"src":"7726:230:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15187,"nodeType":"Block","src":"8191:107:72","statements":[{"expression":{"id":15185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15176,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15174,"src":"8201:8:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15180,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15162,"src":"8258:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15181,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15164,"src":"8269:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15182,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15166,"src":"8278:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15183,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"8286:4:72","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15177,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"8212:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8212:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createPayout","nodeType":"MemberAccess","referencedDeclaration":19650,"src":"8212:45:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) external returns (uint256)"}},"id":15184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8212:79:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8201:90:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15186,"nodeType":"ExpressionStatement","src":"8201:90:72"}]},"functionSelector":"781d7846","id":15188,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15171,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15162,"src":"8142:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15172,"modifierName":{"id":15170,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"8119:22:72"},"nodeType":"ModifierInvocation","src":"8119:33:72"}],"name":"newPayout","nameLocation":"7971:9:72","nodeType":"FunctionDefinition","parameters":{"id":15169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15162,"mutability":"mutable","name":"processId","nameLocation":"7998:9:72","nodeType":"VariableDeclaration","scope":15188,"src":"7990:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7990:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15164,"mutability":"mutable","name":"claimId","nameLocation":"8025:7:72","nodeType":"VariableDeclaration","scope":15188,"src":"8017:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15163,"name":"uint256","nodeType":"ElementaryTypeName","src":"8017:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15166,"mutability":"mutable","name":"amount","nameLocation":"8050:6:72","nodeType":"VariableDeclaration","scope":15188,"src":"8042:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15165,"name":"uint256","nodeType":"ElementaryTypeName","src":"8042:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15168,"mutability":"mutable","name":"data","nameLocation":"8081:4:72","nodeType":"VariableDeclaration","scope":15188,"src":"8066:19:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15167,"name":"bytes","nodeType":"ElementaryTypeName","src":"8066:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7980:111:72"},"returnParameters":{"id":15175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15174,"mutability":"mutable","name":"payoutId","nameLocation":"8177:8:72","nodeType":"VariableDeclaration","scope":15188,"src":"8169:16:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15173,"name":"uint256","nodeType":"ElementaryTypeName","src":"8169:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8168:18:72"},"scope":15427,"src":"7962:336:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15248,"nodeType":"Block","src":"8570:440:72","statements":[{"assignments":[15206],"declarations":[{"constant":false,"id":15206,"mutability":"mutable","name":"treasury","nameLocation":"8595:8:72","nodeType":"VariableDeclaration","scope":15248,"src":"8580:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":15205,"nodeType":"UserDefinedTypeName","pathNode":{"id":15204,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"8580:14:72"},"referencedDeclaration":23615,"src":"8580:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"internal"}],"id":15209,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15207,"name":"getTreasuryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15426,"src":"8606:19:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_TreasuryModule_$23615_$","typeString":"function () view returns (contract TreasuryModule)"}},"id":15208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8606:21:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"nodeType":"VariableDeclarationStatement","src":"8580:47:72"},{"expression":{"id":15218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":15210,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15200,"src":"8638:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15211,"name":"netPayoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15202,"src":"8649:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15212,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"8637:28:72","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15215,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15190,"src":"8691:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15216,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15192,"src":"8702:8:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15213,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15206,"src":"8668:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":15214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":23130,"src":"8668:22:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (uint256,uint256)"}},"id":15217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8668:43:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"8637:74:72","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15219,"nodeType":"ExpressionStatement","src":"8637:74:72"},{"assignments":[15222],"declarations":[{"constant":false,"id":15222,"mutability":"mutable","name":"policy","nameLocation":"8806:6:72","nodeType":"VariableDeclaration","scope":15248,"src":"8798:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":15221,"nodeType":"UserDefinedTypeName","pathNode":{"id":15220,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"8798:7:72"},"referencedDeclaration":5433,"src":"8798:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":15225,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15223,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"8815:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8815:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"8798:36:72"},{"expression":{"arguments":[{"id":15229,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15190,"src":"8865:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15230,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15192,"src":"8876:8:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15226,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15222,"src":"8844:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":15228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":5432,"src":"8844:20:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":15231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8844:41:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15232,"nodeType":"ExpressionStatement","src":"8844:41:72"},{"assignments":[15235],"declarations":[{"constant":false,"id":15235,"mutability":"mutable","name":"pool","nameLocation":"8911:4:72","nodeType":"VariableDeclaration","scope":15248,"src":"8896:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":15234,"nodeType":"UserDefinedTypeName","pathNode":{"id":15233,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"8896:14:72"},"referencedDeclaration":21207,"src":"8896:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"}],"id":15238,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15236,"name":"getPoolContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15387,"src":"8918:15:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PoolController_$21207_$","typeString":"function () view returns (contract PoolController)"}},"id":15237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8918:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"VariableDeclarationStatement","src":"8896:39:72"},{"expression":{"arguments":[{"id":15242,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15190,"src":"8964:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15243,"name":"netPayoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15202,"src":"8975:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15244,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15200,"src":"8993:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8975:27:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15239,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15235,"src":"8945:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":15241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":20816,"src":"8945:18:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":15246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8945:58:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15247,"nodeType":"ExpressionStatement","src":"8945:58:72"}]},"functionSelector":"fe64372b","id":15249,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15195,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15190,"src":"8435:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15196,"modifierName":{"id":15194,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"8412:22:72"},"nodeType":"ModifierInvocation","src":"8412:33:72"}],"name":"processPayout","nameLocation":"8313:13:72","nodeType":"FunctionDefinition","parameters":{"id":15193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15190,"mutability":"mutable","name":"processId","nameLocation":"8344:9:72","nodeType":"VariableDeclaration","scope":15249,"src":"8336:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8336:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15192,"mutability":"mutable","name":"payoutId","nameLocation":"8371:8:72","nodeType":"VariableDeclaration","scope":15249,"src":"8363:16:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15191,"name":"uint256","nodeType":"ElementaryTypeName","src":"8363:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8326:59:72"},"returnParameters":{"id":15203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15198,"mutability":"mutable","name":"success","nameLocation":"8480:7:72","nodeType":"VariableDeclaration","scope":15249,"src":"8475:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15197,"name":"bool","nodeType":"ElementaryTypeName","src":"8475:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15200,"mutability":"mutable","name":"feeAmount","nameLocation":"8509:9:72","nodeType":"VariableDeclaration","scope":15249,"src":"8501:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15199,"name":"uint256","nodeType":"ElementaryTypeName","src":"8501:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15202,"mutability":"mutable","name":"netPayoutAmount","nameLocation":"8540:15:72","nodeType":"VariableDeclaration","scope":15249,"src":"8532:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15201,"name":"uint256","nodeType":"ElementaryTypeName","src":"8532:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8461:104:72"},"scope":15427,"src":"8304:706:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15279,"nodeType":"Block","src":"9325:214:72","statements":[{"expression":{"id":15277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15267,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15265,"src":"9335:10:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15271,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15251,"src":"9388:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15272,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15253,"src":"9411:6:72","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":15273,"name":"_callbackMethodName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"9431:19:72","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":15274,"name":"_callbackContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"9464:24:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15275,"name":"_responsibleOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"9502:20:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15268,"name":"getQueryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"9348:16:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_QueryModule_$21595_$","typeString":"function () view returns (contract QueryModule)"}},"id":15269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9348:18:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"id":15270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"request","nodeType":"MemberAccess","referencedDeclaration":21403,"src":"9348:26:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,bytes memory,string memory,address,uint256) external returns (uint256)"}},"id":15276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9348:184:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9335:197:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15278,"nodeType":"ExpressionStatement","src":"9335:197:72"}]},"functionSelector":"2c933f22","id":15280,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15262,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15251,"src":"9272:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15263,"modifierName":{"id":15261,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"9249:22:72"},"nodeType":"ModifierInvocation","src":"9249:33:72"}],"name":"request","nameLocation":"9025:7:72","nodeType":"FunctionDefinition","parameters":{"id":15260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15251,"mutability":"mutable","name":"processId","nameLocation":"9050:9:72","nodeType":"VariableDeclaration","scope":15280,"src":"9042:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9042:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15253,"mutability":"mutable","name":"_input","nameLocation":"9084:6:72","nodeType":"VariableDeclaration","scope":15280,"src":"9069:21:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15252,"name":"bytes","nodeType":"ElementaryTypeName","src":"9069:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15255,"mutability":"mutable","name":"_callbackMethodName","nameLocation":"9116:19:72","nodeType":"VariableDeclaration","scope":15280,"src":"9100:35:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15254,"name":"string","nodeType":"ElementaryTypeName","src":"9100:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15257,"mutability":"mutable","name":"_callbackContractAddress","nameLocation":"9153:24:72","nodeType":"VariableDeclaration","scope":15280,"src":"9145:32:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15256,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15259,"mutability":"mutable","name":"_responsibleOracleId","nameLocation":"9195:20:72","nodeType":"VariableDeclaration","scope":15280,"src":"9187:28:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15258,"name":"uint256","nodeType":"ElementaryTypeName","src":"9187:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9032:189:72"},"returnParameters":{"id":15266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15265,"mutability":"mutable","name":"_requestId","nameLocation":"9308:10:72","nodeType":"VariableDeclaration","scope":15280,"src":"9300:18:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15264,"name":"uint256","nodeType":"ElementaryTypeName","src":"9300:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9299:20:72"},"scope":15427,"src":"9016:523:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15294,"nodeType":"Block","src":"9663:53:72","statements":[{"expression":{"arguments":[{"id":15291,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15282,"src":"9699:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15288,"name":"getQueryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"9673:16:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_QueryModule_$21595_$","typeString":"function () view returns (contract QueryModule)"}},"id":15289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9673:18:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"id":15290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"cancel","nodeType":"MemberAccess","referencedDeclaration":21509,"src":"9673:25:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":15292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9673:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15293,"nodeType":"ExpressionStatement","src":"9673:36:72"}]},"functionSelector":"3015394c","id":15295,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15285,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15282,"src":"9648:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15286,"modifierName":{"id":15284,"name":"onlyMatchingProduct","nodeType":"IdentifierPath","referencedDeclaration":14733,"src":"9628:19:72"},"nodeType":"ModifierInvocation","src":"9628:30:72"}],"name":"cancelRequest","nameLocation":"9554:13:72","nodeType":"FunctionDefinition","parameters":{"id":15283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15282,"mutability":"mutable","name":"requestId","nameLocation":"9585:9:72","nodeType":"VariableDeclaration","scope":15295,"src":"9577:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15281,"name":"uint256","nodeType":"ElementaryTypeName","src":"9577:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9567:33:72"},"returnParameters":{"id":15287,"nodeType":"ParameterList","parameters":[],"src":"9663:0:72"},"scope":15427,"src":"9545:171:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15314,"nodeType":"Block","src":"9834:116:72","statements":[{"assignments":[15304],"declarations":[{"constant":false,"id":15304,"mutability":"mutable","name":"policy","nameLocation":"9861:6:72","nodeType":"VariableDeclaration","scope":15314,"src":"9844:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15303,"nodeType":"UserDefinedTypeName","pathNode":{"id":15302,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"9844:16:72"},"referencedDeclaration":19974,"src":"9844:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15307,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15305,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"9870:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9870:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"9844:45:72"},{"expression":{"expression":{"arguments":[{"id":15310,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15297,"src":"9928:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15308,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15304,"src":"9906:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":19835,"src":"9906:21:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":15311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9906:32:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":15312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"9906:37:72","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":15301,"id":15313,"nodeType":"Return","src":"9899:44:72"}]},"functionSelector":"c46df94e","id":15315,"implemented":true,"kind":"function","modifiers":[],"name":"getApplicationData","nameLocation":"9731:18:72","nodeType":"FunctionDefinition","parameters":{"id":15298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15297,"mutability":"mutable","name":"processId","nameLocation":"9758:9:72","nodeType":"VariableDeclaration","scope":15315,"src":"9750:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9750:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9749:19:72"},"returnParameters":{"id":15301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15315,"src":"9816:12:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15299,"name":"bytes","nodeType":"ElementaryTypeName","src":"9816:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9815:14:72"},"scope":15427,"src":"9722:228:72","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":15337,"nodeType":"Block","src":"10079:119:72","statements":[{"assignments":[15326],"declarations":[{"constant":false,"id":15326,"mutability":"mutable","name":"policy","nameLocation":"10106:6:72","nodeType":"VariableDeclaration","scope":15337,"src":"10089:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15325,"nodeType":"UserDefinedTypeName","pathNode":{"id":15324,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"10089:16:72"},"referencedDeclaration":19974,"src":"10089:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15329,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15327,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"10115:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10115:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"10089:45:72"},{"expression":{"expression":{"arguments":[{"id":15332,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15317,"src":"10167:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15333,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15319,"src":"10178:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15330,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15326,"src":"10151:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getClaim","nodeType":"MemberAccess","referencedDeclaration":19914,"src":"10151:15:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Claim_$5296_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Claim memory)"}},"id":15334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10151:35:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"id":15335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5291,"src":"10151:40:72","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":15323,"id":15336,"nodeType":"Return","src":"10144:47:72"}]},"functionSelector":"22f86e7f","id":15338,"implemented":true,"kind":"function","modifiers":[],"name":"getClaimData","nameLocation":"9965:12:72","nodeType":"FunctionDefinition","parameters":{"id":15320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15317,"mutability":"mutable","name":"processId","nameLocation":"9986:9:72","nodeType":"VariableDeclaration","scope":15338,"src":"9978:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9978:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15319,"mutability":"mutable","name":"claimId","nameLocation":"10005:7:72","nodeType":"VariableDeclaration","scope":15338,"src":"9997:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15318,"name":"uint256","nodeType":"ElementaryTypeName","src":"9997:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9977:36:72"},"returnParameters":{"id":15323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15338,"src":"10061:12:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15321,"name":"bytes","nodeType":"ElementaryTypeName","src":"10061:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10060:14:72"},"scope":15427,"src":"9956:242:72","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":15360,"nodeType":"Block","src":"10329:121:72","statements":[{"assignments":[15349],"declarations":[{"constant":false,"id":15349,"mutability":"mutable","name":"policy","nameLocation":"10356:6:72","nodeType":"VariableDeclaration","scope":15360,"src":"10339:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15348,"nodeType":"UserDefinedTypeName","pathNode":{"id":15347,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"10339:16:72"},"referencedDeclaration":19974,"src":"10339:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15352,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15350,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"10365:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10365:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"10339:45:72"},{"expression":{"expression":{"arguments":[{"id":15355,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15340,"src":"10418:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15356,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15342,"src":"10429:8:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15353,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15349,"src":"10401:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPayout","nodeType":"MemberAccess","referencedDeclaration":19941,"src":"10401:16:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Payout_$5310_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Payout memory)"}},"id":15357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10401:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":15358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5305,"src":"10401:42:72","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":15346,"id":15359,"nodeType":"Return","src":"10394:49:72"}]},"functionSelector":"10b96080","id":15361,"implemented":true,"kind":"function","modifiers":[],"name":"getPayoutData","nameLocation":"10213:13:72","nodeType":"FunctionDefinition","parameters":{"id":15343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15340,"mutability":"mutable","name":"processId","nameLocation":"10235:9:72","nodeType":"VariableDeclaration","scope":15361,"src":"10227:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10227:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15342,"mutability":"mutable","name":"payoutId","nameLocation":"10254:8:72","nodeType":"VariableDeclaration","scope":15361,"src":"10246:16:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15341,"name":"uint256","nodeType":"ElementaryTypeName","src":"10246:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10226:37:72"},"returnParameters":{"id":15346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15361,"src":"10311:12:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15344,"name":"bytes","nodeType":"ElementaryTypeName","src":"10311:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10310:14:72"},"scope":15427,"src":"10204:246:72","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":15373,"nodeType":"Block","src":"10532:81:72","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":15369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10593:11:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":15368,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"10569:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10569:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15367,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"10549:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":15371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10549:57:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"functionReturnParameters":15366,"id":15372,"nodeType":"Return","src":"10542:64:72"}]},"id":15374,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentContract","nameLocation":"10465:20:72","nodeType":"FunctionDefinition","parameters":{"id":15362,"nodeType":"ParameterList","parameters":[],"src":"10485:2:72"},"returnParameters":{"id":15366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15374,"src":"10511:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":15364,"nodeType":"UserDefinedTypeName","pathNode":{"id":15363,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"10511:19:72"},"referencedDeclaration":17947,"src":"10511:19:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"internal"}],"src":"10510:21:72"},"scope":15427,"src":"10456:157:72","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15386,"nodeType":"Block","src":"10685:71:72","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"506f6f6c","id":15382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10741:6:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":15381,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"10717:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10717:31:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15380,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"10702:14:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":15384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10702:47:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"functionReturnParameters":15379,"id":15385,"nodeType":"Return","src":"10695:54:72"}]},"id":15387,"implemented":true,"kind":"function","modifiers":[],"name":"getPoolContract","nameLocation":"10628:15:72","nodeType":"FunctionDefinition","parameters":{"id":15375,"nodeType":"ParameterList","parameters":[],"src":"10643:2:72"},"returnParameters":{"id":15379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15387,"src":"10669:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":15377,"nodeType":"UserDefinedTypeName","pathNode":{"id":15376,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"10669:14:72"},"referencedDeclaration":21207,"src":"10669:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"}],"src":"10668:16:72"},"scope":15427,"src":"10619:137:72","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15399,"nodeType":"Block","src":"10832:75:72","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"506f6c696379","id":15395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10890:8:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""}],"id":15394,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"10866:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10866:33:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15393,"name":"PolicyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"10849:16:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PolicyController_$19974_$","typeString":"type(contract PolicyController)"}},"id":15397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10849:51:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"functionReturnParameters":15392,"id":15398,"nodeType":"Return","src":"10842:58:72"}]},"id":15400,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyContract","nameLocation":"10771:17:72","nodeType":"FunctionDefinition","parameters":{"id":15388,"nodeType":"ParameterList","parameters":[],"src":"10788:2:72"},"returnParameters":{"id":15392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15400,"src":"10814:16:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15390,"nodeType":"UserDefinedTypeName","pathNode":{"id":15389,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"10814:16:72"},"referencedDeclaration":19974,"src":"10814:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"src":"10813:18:72"},"scope":15427,"src":"10762:145:72","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15412,"nodeType":"Block","src":"10977:69:72","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"5175657279","id":15408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11030:7:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""}],"id":15407,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"11006:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11006:32:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15406,"name":"QueryModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21595,"src":"10994:11:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_QueryModule_$21595_$","typeString":"type(contract QueryModule)"}},"id":15410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10994:45:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"functionReturnParameters":15405,"id":15411,"nodeType":"Return","src":"10987:52:72"}]},"id":15413,"implemented":true,"kind":"function","modifiers":[],"name":"getQueryContract","nameLocation":"10922:16:72","nodeType":"FunctionDefinition","parameters":{"id":15401,"nodeType":"ParameterList","parameters":[],"src":"10938:2:72"},"returnParameters":{"id":15405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15413,"src":"10964:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"},"typeName":{"id":15403,"nodeType":"UserDefinedTypeName","pathNode":{"id":15402,"name":"QueryModule","nodeType":"IdentifierPath","referencedDeclaration":21595,"src":"10964:11:72"},"referencedDeclaration":21595,"src":"10964:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"visibility":"internal"}],"src":"10963:13:72"},"scope":15427,"src":"10913:133:72","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15425,"nodeType":"Block","src":"11122:75:72","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"5472656173757279","id":15421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11178:10:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""}],"id":15420,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"11154:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11154:35:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15419,"name":"TreasuryModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23615,"src":"11139:14:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TreasuryModule_$23615_$","typeString":"type(contract TreasuryModule)"}},"id":15423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11139:51:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"functionReturnParameters":15418,"id":15424,"nodeType":"Return","src":"11132:58:72"}]},"id":15426,"implemented":true,"kind":"function","modifiers":[],"name":"getTreasuryContract","nameLocation":"11061:19:72","nodeType":"FunctionDefinition","parameters":{"id":15414,"nodeType":"ParameterList","parameters":[],"src":"11080:2:72"},"returnParameters":{"id":15418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15417,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15426,"src":"11106:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":15416,"nodeType":"UserDefinedTypeName","pathNode":{"id":15415,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"11106:14:72"},"referencedDeclaration":23615,"src":"11106:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"internal"}],"src":"11105:16:72"},"scope":15427,"src":"11052:145:72","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":15428,"src":"565:10634:72"}],"src":"39:11161:72"},"id":72},"contracts/modules/AccessController.sol":{"ast":{"absolutePath":"contracts/modules/AccessController.sol","exportedSymbols":{"AccessControl":[7145],"AccessControlEnumerable":[7270],"AccessController":[15687],"Address":[10496],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"EnumerableSet":[11439],"IAccess":[4836],"IAccessControl":[7343],"IAccessControlEnumerable":[7368],"IERC165":[10840],"IRegistry":[5714],"Initializable":[8059],"Strings":[10804]},"id":15688,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":15429,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:73"},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":15430,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15688,"sourceUnit":26414,"src":"66:38:73","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IAccess.sol","file":"@etherisc/gif-interface/contracts/modules/IAccess.sol","id":15431,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15688,"sourceUnit":4837,"src":"108:63:73","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","file":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","id":15432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15688,"sourceUnit":7271,"src":"175:68:73","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":15433,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15688,"sourceUnit":8060,"src":"245:63:73","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15435,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"3896:7:73"},"id":15436,"nodeType":"InheritanceSpecifier","src":"3896:7:73"},{"baseName":{"id":15437,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"3911:14:73"},"id":15438,"nodeType":"InheritanceSpecifier","src":"3911:14:73"},{"baseName":{"id":15439,"name":"AccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":7270,"src":"3932:23:73"},"id":15440,"nodeType":"InheritanceSpecifier","src":"3932:23:73"}],"contractDependencies":[4836,7145,7270,7343,7368,8059,10518,10828,10840,26413],"contractKind":"contract","documentation":{"id":15434,"nodeType":"StructuredDocumentation","src":"312:3543:73","text":"The provided smart contract is called \"AccessController\" and is written in Solidity. It implements the \"IAccess\" interface and inherits from the \"CoreController\" contract and the \"AccessControlEnumerable\" contract. The contract provides functionalities for access control and role management.\nRoles:\nThe contract defines three role identifiers as bytes32 constants:\n1. PRODUCT_OWNER_ROLE: Represents the role of a product owner.\n2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider.\n3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper.\nState Variables:\n- `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid.\n- `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set.\nFunctions:\n- `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function.\n- `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value.\n- `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event.\n- `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract.\n- `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract.\n- `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract.\n- `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping.\n- `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping.\n- `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role.\n- `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE.\n- `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE.\n- `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE.\n- `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE.\n- `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true.\nModifiers:\n- `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators.\nOverall, the contract provides a flexible access control mechanism by defining roles and allowing the assignment, revocation, and validation of roles by instance operators. It also sets a default admin role and manages the validity of roles through the `validRole` mapping."},"fullyImplemented":true,"id":15687,"linearizedBaseContracts":[15687,7270,7145,10828,10840,7368,7343,26413,8059,10518,4836],"name":"AccessController","nameLocation":"3870:16:73","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"6c137ea9","id":15445,"mutability":"constant","name":"PRODUCT_OWNER_ROLE","nameLocation":"4066:18:73","nodeType":"VariableDeclaration","scope":15687,"src":"4042:76:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4042:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50524f445543545f4f574e45525f524f4c45","id":15443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4097:20:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_e984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd","typeString":"literal_string \"PRODUCT_OWNER_ROLE\""},"value":"PRODUCT_OWNER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd","typeString":"literal_string \"PRODUCT_OWNER_ROLE\""}],"id":15442,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"4087:9:73","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4087:31:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"79a863f5","id":15450,"mutability":"constant","name":"ORACLE_PROVIDER_ROLE","nameLocation":"4226:20:73","nodeType":"VariableDeclaration","scope":15687,"src":"4202:80:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4202:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4f5241434c455f50524f56494445525f524f4c45","id":15448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4259:22:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_d26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa2","typeString":"literal_string \"ORACLE_PROVIDER_ROLE\""},"value":"ORACLE_PROVIDER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa2","typeString":"literal_string \"ORACLE_PROVIDER_ROLE\""}],"id":15447,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"4249:9:73","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4249:33:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"68232c69","id":15455,"mutability":"constant","name":"RISKPOOL_KEEPER_ROLE","nameLocation":"4390:20:73","nodeType":"VariableDeclaration","scope":15687,"src":"4366:80:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15451,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4366:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5249534b504f4f4c5f4b45455045525f524f4c45","id":15453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4423:22:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd","typeString":"literal_string \"RISKPOOL_KEEPER_ROLE\""},"value":"RISKPOOL_KEEPER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd","typeString":"literal_string \"RISKPOOL_KEEPER_ROLE\""}],"id":15452,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"4413:9:73","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4413:33:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"12f9a85e","id":15459,"mutability":"mutable","name":"validRole","nameLocation":"4487:9:73","nodeType":"VariableDeclaration","scope":15687,"src":"4455:41:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":15458,"keyType":{"id":15456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4463:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4455:24:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":15457,"name":"bool","nodeType":"ElementaryTypeName","src":"4474:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"id":15461,"mutability":"mutable","name":"_defaultAdminSet","nameLocation":"4518:16:73","nodeType":"VariableDeclaration","scope":15687,"src":"4505:29:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15460,"name":"bool","nodeType":"ElementaryTypeName","src":"4505:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"baseFunctions":[26387],"body":{"id":15468,"nodeType":"Block","src":"4589:113:73","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15465,"name":"_populateValidRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15686,"src":"4673:19:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4673:21:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15467,"nodeType":"ExpressionStatement","src":"4673:21:73"}]},"id":15469,"implemented":true,"kind":"function","modifiers":[],"name":"_afterInitialize","nameLocation":"4552:16:73","nodeType":"FunctionDefinition","overrides":{"id":15463,"nodeType":"OverrideSpecifier","overrides":[],"src":"4580:8:73"},"parameters":{"id":15462,"nodeType":"ParameterList","parameters":[],"src":"4568:2:73"},"returnParameters":{"id":15464,"nodeType":"ParameterList","parameters":[],"src":"4589:0:73"},"scope":15687,"src":"4543:159:73","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[26381],"body":{"id":15477,"nodeType":"Block","src":"4770:20:73","statements":[{"expression":{"hexValue":"416363657373","id":15475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4779:8:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"},"functionReturnParameters":15474,"id":15476,"nodeType":"Return","src":"4772:15:73"}]},"id":15478,"implemented":true,"kind":"function","modifiers":[],"name":"_getName","nameLocation":"4719:8:73","nodeType":"FunctionDefinition","overrides":{"id":15471,"nodeType":"OverrideSpecifier","overrides":[],"src":"4739:8:73"},"parameters":{"id":15470,"nodeType":"ParameterList","parameters":[],"src":"4727:2:73"},"returnParameters":{"id":15474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15478,"src":"4761:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4761:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4760:9:73"},"scope":15687,"src":"4710:80:73","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15498,"nodeType":"Block","src":"5083:176:73","statements":[{"expression":{"arguments":[{"id":15485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5102:17:73","subExpression":{"id":15484,"name":"_defaultAdminSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"5103:16:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434c2d3030313a41444d494e5f524f4c455f414c52454144595f534554","id":15486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5121:38:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f9877d18dbbe1b61e60abbc0b78cf763130d8a58767ec78a5fe18c4bab672fb","typeString":"literal_string \"ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET\""},"value":"ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f9877d18dbbe1b61e60abbc0b78cf763130d8a58767ec78a5fe18c4bab672fb","typeString":"literal_string \"ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET\""}],"id":15483,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5094:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5094:66:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15488,"nodeType":"ExpressionStatement","src":"5094:66:73"},{"expression":{"id":15491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15489,"name":"_defaultAdminSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"5171:16:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5190:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5171:23:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15492,"nodeType":"ExpressionStatement","src":"5171:23:73"},{"expression":{"arguments":[{"id":15494,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"5218:18:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15495,"name":"defaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15480,"src":"5238:12:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":15493,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[7245],"referencedDeclaration":7245,"src":"5207:10:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":15496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5207:44:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15497,"nodeType":"ExpressionStatement","src":"5207:44:73"}]},"functionSelector":"c19010a7","id":15499,"implemented":true,"kind":"function","modifiers":[],"name":"setDefaultAdminRole","nameLocation":"5016:19:73","nodeType":"FunctionDefinition","parameters":{"id":15481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15480,"mutability":"mutable","name":"defaultAdmin","nameLocation":"5044:12:73","nodeType":"VariableDeclaration","scope":15499,"src":"5036:20:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15479,"name":"address","nodeType":"ElementaryTypeName","src":"5036:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5035:22:73"},"returnParameters":{"id":15482,"nodeType":"ParameterList","parameters":[],"src":"5083:0:73"},"scope":15687,"src":"5007:252:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4811,7326],"body":{"id":15525,"nodeType":"Block","src":"5498:135:73","statements":[{"expression":{"arguments":[{"baseExpression":{"id":15512,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"5517:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15514,"indexExpression":{"id":15513,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15501,"src":"5527:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5517:15:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434c2d3030323a524f4c455f554e4b4e4f574e5f4f525f494e56414c4944","id":15515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5534:39:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_b44ca75bdc42e96be4c16ee432e64fdbf40464ed8da793481d44f5ac59f98005","typeString":"literal_string \"ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID\""},"value":"ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b44ca75bdc42e96be4c16ee432e64fdbf40464ed8da793481d44f5ac59f98005","typeString":"literal_string \"ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID\""}],"id":15511,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5509:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5509:65:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15517,"nodeType":"ExpressionStatement","src":"5509:65:73"},{"expression":{"arguments":[{"id":15521,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15501,"src":"5609:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15522,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15503,"src":"5615:9:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15518,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7145,"src":"5585:13:73","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AccessControl_$7145_$","typeString":"type(contract AccessControl)"}},"id":15520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"grantRole","nodeType":"MemberAccess","referencedDeclaration":6996,"src":"5585:23:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":15523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5585:40:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15524,"nodeType":"ExpressionStatement","src":"5585:40:73"}]},"functionSelector":"2f2ff15d","id":15526,"implemented":true,"kind":"function","modifiers":[{"id":15509,"modifierName":{"id":15508,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"5471:20:73"},"nodeType":"ModifierInvocation","src":"5471:20:73"}],"name":"grantRole","nameLocation":"5357:9:73","nodeType":"FunctionDefinition","overrides":{"id":15507,"nodeType":"OverrideSpecifier","overrides":[{"id":15505,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"5436:14:73"},{"id":15506,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"5452:7:73"}],"src":"5427:33:73"},"parameters":{"id":15504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15501,"mutability":"mutable","name":"role","nameLocation":"5375:4:73","nodeType":"VariableDeclaration","scope":15526,"src":"5367:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5367:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15503,"mutability":"mutable","name":"principal","nameLocation":"5389:9:73","nodeType":"VariableDeclaration","scope":15526,"src":"5381:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15502,"name":"address","nodeType":"ElementaryTypeName","src":"5381:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5366:33:73"},"returnParameters":{"id":15510,"nodeType":"ParameterList","parameters":[],"src":"5498:0:73"},"scope":15687,"src":"5348:285:73","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4818,7334],"body":{"id":15545,"nodeType":"Block","src":"5792:60:73","statements":[{"expression":{"arguments":[{"id":15541,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15528,"src":"5828:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15542,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"5834:9:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15538,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7145,"src":"5803:13:73","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AccessControl_$7145_$","typeString":"type(contract AccessControl)"}},"id":15540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"revokeRole","nodeType":"MemberAccess","referencedDeclaration":7016,"src":"5803:24:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":15543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5803:41:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15544,"nodeType":"ExpressionStatement","src":"5803:41:73"}]},"functionSelector":"d547741f","id":15546,"implemented":true,"kind":"function","modifiers":[{"id":15536,"modifierName":{"id":15535,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"5765:20:73"},"nodeType":"ModifierInvocation","src":"5765:20:73"}],"name":"revokeRole","nameLocation":"5650:10:73","nodeType":"FunctionDefinition","overrides":{"id":15534,"nodeType":"OverrideSpecifier","overrides":[{"id":15532,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"5730:14:73"},{"id":15533,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"5746:7:73"}],"src":"5721:33:73"},"parameters":{"id":15531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15528,"mutability":"mutable","name":"role","nameLocation":"5669:4:73","nodeType":"VariableDeclaration","scope":15546,"src":"5661:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5661:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15530,"mutability":"mutable","name":"principal","nameLocation":"5683:9:73","nodeType":"VariableDeclaration","scope":15546,"src":"5675:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15529,"name":"address","nodeType":"ElementaryTypeName","src":"5675:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5660:33:73"},"returnParameters":{"id":15537,"nodeType":"ParameterList","parameters":[],"src":"5792:0:73"},"scope":15687,"src":"5641:211:73","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4825,7342],"body":{"id":15563,"nodeType":"Block","src":"5982:62:73","statements":[{"expression":{"arguments":[{"id":15559,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"6020:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15560,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15550,"src":"6026:9:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15556,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7145,"src":"5993:13:73","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AccessControl_$7145_$","typeString":"type(contract AccessControl)"}},"id":15558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"renounceRole","nodeType":"MemberAccess","referencedDeclaration":7039,"src":"5993:26:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":15561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5993:43:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15562,"nodeType":"ExpressionStatement","src":"5993:43:73"}]},"functionSelector":"36568abe","id":15564,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5869:12:73","nodeType":"FunctionDefinition","overrides":{"id":15554,"nodeType":"OverrideSpecifier","overrides":[{"id":15552,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"5951:14:73"},{"id":15553,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"5967:7:73"}],"src":"5942:33:73"},"parameters":{"id":15551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15548,"mutability":"mutable","name":"role","nameLocation":"5890:4:73","nodeType":"VariableDeclaration","scope":15564,"src":"5882:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5882:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15550,"mutability":"mutable","name":"principal","nameLocation":"5904:9:73","nodeType":"VariableDeclaration","scope":15564,"src":"5896:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15549,"name":"address","nodeType":"ElementaryTypeName","src":"5896:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5881:33:73"},"returnParameters":{"id":15555,"nodeType":"ParameterList","parameters":[],"src":"5982:0:73"},"scope":15687,"src":"5860:184:73","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4830],"body":{"id":15586,"nodeType":"Block","src":"6230:118:73","statements":[{"expression":{"arguments":[{"id":15576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6249:16:73","subExpression":{"baseExpression":{"id":15573,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"6250:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15575,"indexExpression":{"id":15574,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15566,"src":"6260:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6250:15:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434c2d3030333a524f4c455f4558495354494e475f414e445f56414c4944","id":15577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6267:39:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee0f5f51d1b211cfb0cb0e99e7ae5223d02dd767fa6a6f61a7de5feac9760754","typeString":"literal_string \"ERROR:ACL-003:ROLE_EXISTING_AND_VALID\""},"value":"ERROR:ACL-003:ROLE_EXISTING_AND_VALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ee0f5f51d1b211cfb0cb0e99e7ae5223d02dd767fa6a6f61a7de5feac9760754","typeString":"literal_string \"ERROR:ACL-003:ROLE_EXISTING_AND_VALID\""}],"id":15572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6241:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6241:66:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15579,"nodeType":"ExpressionStatement","src":"6241:66:73"},{"expression":{"id":15584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15580,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"6318:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15582,"indexExpression":{"id":15581,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15566,"src":"6328:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6318:15:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6336:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6318:22:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15585,"nodeType":"ExpressionStatement","src":"6318:22:73"}]},"functionSelector":"274b02a7","id":15587,"implemented":true,"kind":"function","modifiers":[{"id":15570,"modifierName":{"id":15569,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6203:20:73"},"nodeType":"ModifierInvocation","src":"6203:20:73"}],"name":"addRole","nameLocation":"6146:7:73","nodeType":"FunctionDefinition","overrides":{"id":15568,"nodeType":"OverrideSpecifier","overrides":[],"src":"6185:8:73"},"parameters":{"id":15567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15566,"mutability":"mutable","name":"role","nameLocation":"6162:4:73","nodeType":"VariableDeclaration","scope":15587,"src":"6154:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6154:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6153:14:73"},"returnParameters":{"id":15571,"nodeType":"ParameterList","parameters":[],"src":"6230:0:73"},"scope":15687,"src":"6137:211:73","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4835],"body":{"id":15608,"nodeType":"Block","src":"6455:118:73","statements":[{"expression":{"arguments":[{"baseExpression":{"id":15596,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"6474:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15598,"indexExpression":{"id":15597,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"6484:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6474:15:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434c2d3030343a524f4c455f554e4b4e4f574e5f4f525f494e56414c4944","id":15599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6491:39:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_a62f7cd2c33f4a0b1b1970f9fec462b3e3054faeb7b054bebcfcfab7f5ebf5bb","typeString":"literal_string \"ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID\""},"value":"ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a62f7cd2c33f4a0b1b1970f9fec462b3e3054faeb7b054bebcfcfab7f5ebf5bb","typeString":"literal_string \"ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID\""}],"id":15595,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6466:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6466:65:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15601,"nodeType":"ExpressionStatement","src":"6466:65:73"},{"expression":{"id":15606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15602,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"6542:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15604,"indexExpression":{"id":15603,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"6552:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6542:15:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":15605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6560:5:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6542:23:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15607,"nodeType":"ExpressionStatement","src":"6542:23:73"}]},"functionSelector":"d17d0233","id":15609,"implemented":true,"kind":"function","modifiers":[{"id":15593,"modifierName":{"id":15592,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6428:20:73"},"nodeType":"ModifierInvocation","src":"6428:20:73"}],"name":"invalidateRole","nameLocation":"6365:14:73","nodeType":"FunctionDefinition","overrides":{"id":15591,"nodeType":"OverrideSpecifier","overrides":[],"src":"6410:8:73"},"parameters":{"id":15590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15589,"mutability":"mutable","name":"role","nameLocation":"6388:4:73","nodeType":"VariableDeclaration","scope":15609,"src":"6380:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15588,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6380:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6379:14:73"},"returnParameters":{"id":15594,"nodeType":"ParameterList","parameters":[],"src":"6455:0:73"},"scope":15687,"src":"6356:217:73","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4804,7310],"body":{"id":15627,"nodeType":"Block","src":"6726:56:73","statements":[{"expression":{"arguments":[{"id":15623,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"6758:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15624,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15613,"src":"6764:9:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15621,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"6744:5:73","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessController_$15687_$","typeString":"type(contract super AccessController)"}},"id":15622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":6905,"src":"6744:13:73","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":15625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6744:30:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15620,"id":15626,"nodeType":"Return","src":"6737:37:73"}]},"functionSelector":"91d14854","id":15628,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"6590:7:73","nodeType":"FunctionDefinition","overrides":{"id":15617,"nodeType":"OverrideSpecifier","overrides":[{"id":15615,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"6672:14:73"},{"id":15616,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"6688:7:73"}],"src":"6663:33:73"},"parameters":{"id":15614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15611,"mutability":"mutable","name":"role","nameLocation":"6606:4:73","nodeType":"VariableDeclaration","scope":15628,"src":"6598:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6598:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15613,"mutability":"mutable","name":"principal","nameLocation":"6620:9:73","nodeType":"VariableDeclaration","scope":15628,"src":"6612:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15612,"name":"address","nodeType":"ElementaryTypeName","src":"6612:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6597:33:73"},"returnParameters":{"id":15620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15628,"src":"6715:4:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15618,"name":"bool","nodeType":"ElementaryTypeName","src":"6715:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6714:6:73"},"scope":15687,"src":"6581:201:73","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[4780],"body":{"id":15636,"nodeType":"Block","src":"6859:44:73","statements":[{"expression":{"id":15634,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"6877:18:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15633,"id":15635,"nodeType":"Return","src":"6870:25:73"}]},"functionSelector":"52a9c8d7","id":15637,"implemented":true,"kind":"function","modifiers":[],"name":"getDefaultAdminRole","nameLocation":"6799:19:73","nodeType":"FunctionDefinition","overrides":{"id":15630,"nodeType":"OverrideSpecifier","overrides":[],"src":"6833:8:73"},"parameters":{"id":15629,"nodeType":"ParameterList","parameters":[],"src":"6818:2:73"},"returnParameters":{"id":15633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15637,"src":"6850:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6850:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6849:9:73"},"scope":15687,"src":"6790:113:73","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[4785],"body":{"id":15645,"nodeType":"Block","src":"6980:44:73","statements":[{"expression":{"id":15643,"name":"PRODUCT_OWNER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15445,"src":"6998:18:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15642,"id":15644,"nodeType":"Return","src":"6991:25:73"}]},"functionSelector":"775a4048","id":15646,"implemented":true,"kind":"function","modifiers":[],"name":"getProductOwnerRole","nameLocation":"6920:19:73","nodeType":"FunctionDefinition","overrides":{"id":15639,"nodeType":"OverrideSpecifier","overrides":[],"src":"6954:8:73"},"parameters":{"id":15638,"nodeType":"ParameterList","parameters":[],"src":"6939:2:73"},"returnParameters":{"id":15642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15641,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15646,"src":"6971:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6971:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6970:9:73"},"scope":15687,"src":"6911:113:73","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[4790],"body":{"id":15654,"nodeType":"Block","src":"7103:46:73","statements":[{"expression":{"id":15652,"name":"ORACLE_PROVIDER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"7121:20:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15651,"id":15653,"nodeType":"Return","src":"7114:27:73"}]},"functionSelector":"d49d21c0","id":15655,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleProviderRole","nameLocation":"7041:21:73","nodeType":"FunctionDefinition","overrides":{"id":15648,"nodeType":"OverrideSpecifier","overrides":[],"src":"7077:8:73"},"parameters":{"id":15647,"nodeType":"ParameterList","parameters":[],"src":"7062:2:73"},"returnParameters":{"id":15651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15655,"src":"7094:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7094:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7093:9:73"},"scope":15687,"src":"7032:117:73","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[4795],"body":{"id":15663,"nodeType":"Block","src":"7228:46:73","statements":[{"expression":{"id":15661,"name":"RISKPOOL_KEEPER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15455,"src":"7246:20:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15660,"id":15662,"nodeType":"Return","src":"7239:27:73"}]},"functionSelector":"3ffdd2f3","id":15664,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolKeeperRole","nameLocation":"7166:21:73","nodeType":"FunctionDefinition","overrides":{"id":15657,"nodeType":"OverrideSpecifier","overrides":[],"src":"7202:8:73"},"parameters":{"id":15656,"nodeType":"ParameterList","parameters":[],"src":"7187:2:73"},"returnParameters":{"id":15660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15664,"src":"7219:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15658,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7219:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7218:9:73"},"scope":15687,"src":"7157:117:73","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":15685,"nodeType":"Block","src":"7321:153:73","statements":[{"expression":{"id":15671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15667,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"7332:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15669,"indexExpression":{"id":15668,"name":"PRODUCT_OWNER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15445,"src":"7342:18:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7332:29:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7364:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7332:36:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15672,"nodeType":"ExpressionStatement","src":"7332:36:73"},{"expression":{"id":15677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15673,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"7379:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15675,"indexExpression":{"id":15674,"name":"ORACLE_PROVIDER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"7389:20:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7379:31:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7413:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7379:38:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15678,"nodeType":"ExpressionStatement","src":"7379:38:73"},{"expression":{"id":15683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15679,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"7428:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15681,"indexExpression":{"id":15680,"name":"RISKPOOL_KEEPER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15455,"src":"7438:20:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7428:31:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7462:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7428:38:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15684,"nodeType":"ExpressionStatement","src":"7428:38:73"}]},"id":15686,"implemented":true,"kind":"function","modifiers":[],"name":"_populateValidRoles","nameLocation":"7291:19:73","nodeType":"FunctionDefinition","parameters":{"id":15665,"nodeType":"ParameterList","parameters":[],"src":"7310:2:73"},"returnParameters":{"id":15666,"nodeType":"ParameterList","parameters":[],"src":"7321:0:73"},"scope":15687,"src":"7282:192:73","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":15688,"src":"3861:3616:73"}],"src":"40:7439:73"},"id":73},"contracts/modules/BundleController.sol":{"ast":{"absolutePath":"contracts/modules/BundleController.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IOracle":[3022],"IPolicy":[5433],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059],"Ownable":[7481],"PolicyController":[19974],"PoolController":[21207],"Strings":[10804]},"id":16947,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":15689,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:74"},{"absolutePath":"contracts/modules/PolicyController.sol","file":"./PolicyController.sol","id":15690,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":19975,"src":"63:32:74","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":15691,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":26414,"src":"96:38:74","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/tokens/BundleToken.sol","file":"../tokens/BundleToken.sol","id":15692,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":28752,"src":"135:35:74","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":15693,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":3080,"src":"172:67:74","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"@etherisc/gif-interface/contracts/modules/IBundle.sol","id":15694,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":5021,"src":"240:63:74","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"./PoolController.sol","id":15695,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":21208,"src":"304:30:74","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15697,"name":"IBundle","nodeType":"IdentifierPath","referencedDeclaration":5020,"src":"2434:7:74"},"id":15698,"nodeType":"InheritanceSpecifier","src":"2434:7:74"},{"baseName":{"id":15699,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"2447:14:74"},"id":15700,"nodeType":"InheritanceSpecifier","src":"2447:14:74"}],"contractDependencies":[5020,8059,10518,26413],"contractKind":"contract","documentation":{"id":15696,"nodeType":"StructuredDocumentation","src":"336:2061:74","text":"The smart contract is used to manage bundles, which are collections of policies.\n- The contract imports other Solidity contracts such as `PolicyController.sol`, `CoreController.sol`, and `BundleToken.sol`.\n- The contract implements the `IBundle` interface and extends the `CoreController` contract.\n- It defines several mappings to store information about bundles, active policies, locked capital per policy, and the number of unburt bundles for each risk pool.\n- There is a private variable `_bundleCount` to keep track of the number of bundles created.\n- The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`.\nFunctions: \n- `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment.\n- `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token.\n- `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance.\n- `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle.\n- `lock()`: Locks a bundle of assets by changing its state to \"Locked.\"\n- `unlock()`: Unlocks a bundle, changing its state back to \"Active.\"\n- `close()`: Closes a bundle of policies.\n- `burn()`: Burns a bundle, changing its state to \"Burned.\"\n- `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle.\n- `processPremium()`: Processes the premium payment for a given bundle and updates its balance.\n- `processPayout()`: Processes a payout for a policy from a bundle.\n- `releasePolicy()`: Releases a policy and updates the bundle's capital.\nThe contract includes various modifiers and event emitters to enforce access control and emit relevant events.\nOverall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle."},"fullyImplemented":true,"id":16946,"linearizedBaseContracts":[16946,26413,8059,10518,5020],"name":"BundleController","nameLocation":"2409:16:74","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":15703,"mutability":"mutable","name":"_policy","nameLocation":"2494:7:74","nodeType":"VariableDeclaration","scope":16946,"src":"2469:32:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15702,"nodeType":"UserDefinedTypeName","pathNode":{"id":15701,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"2469:16:74"},"referencedDeclaration":19974,"src":"2469:16:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"private"},{"constant":false,"id":15706,"mutability":"mutable","name":"_token","nameLocation":"2527:6:74","nodeType":"VariableDeclaration","scope":16946,"src":"2507:26:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"},"typeName":{"id":15705,"nodeType":"UserDefinedTypeName","pathNode":{"id":15704,"name":"BundleToken","nodeType":"IdentifierPath","referencedDeclaration":28751,"src":"2507:11:74"},"referencedDeclaration":28751,"src":"2507:11:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"visibility":"private"},{"constant":false,"id":15711,"mutability":"mutable","name":"_bundles","nameLocation":"2604:8:74","nodeType":"VariableDeclaration","scope":16946,"src":"2541:71:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle)"},"typeName":{"id":15710,"keyType":{"id":15707,"name":"uint256","nodeType":"ElementaryTypeName","src":"2549:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2541:54:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle)"},"valueType":{"id":15709,"nodeType":"UserDefinedTypeName","pathNode":{"id":15708,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"2575:6:74"},"referencedDeclaration":4936,"src":"2575:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}}},"visibility":"private"},{"constant":false,"id":15715,"mutability":"mutable","name":"_activePolicies","nameLocation":"2693:15:74","nodeType":"VariableDeclaration","scope":16946,"src":"2618:90:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":15714,"keyType":{"id":15712,"name":"uint256","nodeType":"ElementaryTypeName","src":"2626:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2618:66:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":15713,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":15721,"mutability":"mutable","name":"_valueLockedPerPolicy","nameLocation":"2827:21:74","nodeType":"VariableDeclaration","scope":16946,"src":"2714:134:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"},"typeName":{"id":15720,"keyType":{"id":15716,"name":"uint256","nodeType":"ElementaryTypeName","src":"2722:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2714:104:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"},"valueType":{"id":15719,"keyType":{"id":15717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2756:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2748:69:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":15718,"name":"uint256","nodeType":"ElementaryTypeName","src":"2783:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":15725,"mutability":"mutable","name":"_unburntBundlesForRiskpoolId","nameLocation":"2936:28:74","nodeType":"VariableDeclaration","scope":16946,"src":"2854:110:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":15724,"keyType":{"id":15722,"name":"uint256","nodeType":"ElementaryTypeName","src":"2862:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2854:73:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":15723,"name":"uint256","nodeType":"ElementaryTypeName","src":"2890:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":15727,"mutability":"mutable","name":"_bundleCount","nameLocation":"2992:12:74","nodeType":"VariableDeclaration","scope":16946,"src":"2976:28:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15726,"name":"uint256","nodeType":"ElementaryTypeName","src":"2976:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":15740,"nodeType":"Block","src":"3042:163:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":15730,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3073:10:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":15731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3073:12:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"5269736b706f6f6c53657276696365","id":15733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3109:17:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""},"value":"RiskpoolService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""}],"id":15732,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3089:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3089:38:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3073:54:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3030313a4e4f545f5249534b504f4f4c5f53455256494345","id":15736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3141:36:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_476d7bdb29f083f2ebfc1b7face76d9f76a751b84204921dae4a5245b351756d","typeString":"literal_string \"ERROR:BUC-001:NOT_RISKPOOL_SERVICE\""},"value":"ERROR:BUC-001:NOT_RISKPOOL_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_476d7bdb29f083f2ebfc1b7face76d9f76a751b84204921dae4a5245b351756d","typeString":"literal_string \"ERROR:BUC-001:NOT_RISKPOOL_SERVICE\""}],"id":15729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3052:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3052:135:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15738,"nodeType":"ExpressionStatement","src":"3052:135:74"},{"id":15739,"nodeType":"PlaceholderStatement","src":"3197:1:74"}]},"id":15741,"name":"onlyRiskpoolService","nameLocation":"3020:19:74","nodeType":"ModifierDefinition","parameters":{"id":15728,"nodeType":"ParameterList","parameters":[],"src":"3039:2:74"},"src":"3011:194:74","virtual":false,"visibility":"internal"},{"body":{"id":15778,"nodeType":"Block","src":"3257:331:74","statements":[{"assignments":[15747],"declarations":[{"constant":false,"id":15747,"mutability":"mutable","name":"bundle","nameLocation":"3282:6:74","nodeType":"VariableDeclaration","scope":15778,"src":"3267:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":15746,"nodeType":"UserDefinedTypeName","pathNode":{"id":15745,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"3267:6:74"},"referencedDeclaration":4936,"src":"3267:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":15751,"initialValue":{"baseExpression":{"id":15748,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"3291:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":15750,"indexExpression":{"id":15749,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15743,"src":"3300:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3291:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3267:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15753,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15747,"src":"3327:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"3327:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3346:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3327:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3030323a42554e444c455f444f45535f4e4f545f4558495354","id":15757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3349:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_4194f84ab3a903bd197fb67924a3a7daa9e6613ff1e3b7fc1fb4fffc1258eed5","typeString":"literal_string \"ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4194f84ab3a903bd197fb67924a3a7daa9e6613ff1e3b7fc1fb4fffc1258eed5","typeString":"literal_string \"ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST\""}],"id":15752,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3319:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3319:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15759,"nodeType":"ExpressionStatement","src":"3319:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":15766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15761,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15747,"src":"3418:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"3418:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":15763,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"3434:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":15764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"3434:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":15765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"3434:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"3418:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":15772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15767,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15747,"src":"3477:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"3477:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":15769,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"3493:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":15770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"3493:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":15771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"3493:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"3477:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3418:101:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3030333a42554e444c455f4255524e45445f4f525f434c4f534544","id":15774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3521:39:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc49a30c0f34e650ca8a70d3c57306b681ae1a5988f74df68b029f46527aaa14","typeString":"literal_string \"ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED\""},"value":"ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dc49a30c0f34e650ca8a70d3c57306b681ae1a5988f74df68b029f46527aaa14","typeString":"literal_string \"ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED\""}],"id":15760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3397:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3397:173:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15776,"nodeType":"ExpressionStatement","src":"3397:173:74"},{"id":15777,"nodeType":"PlaceholderStatement","src":"3580:1:74"}]},"id":15779,"name":"onlyFundableBundle","nameLocation":"3220:18:74","nodeType":"ModifierDefinition","parameters":{"id":15744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15743,"mutability":"mutable","name":"bundleId","nameLocation":"3247:8:74","nodeType":"VariableDeclaration","scope":15779,"src":"3239:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15742,"name":"uint256","nodeType":"ElementaryTypeName","src":"3239:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3238:18:74"},"src":"3211:377:74","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":15801,"nodeType":"Block","src":"3657:140:74","statements":[{"expression":{"id":15791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15785,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"3667:7:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6c696379","id":15788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3714:8:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""}],"id":15787,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3694:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3694:29:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15786,"name":"PolicyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"3677:16:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PolicyController_$19974_$","typeString":"type(contract PolicyController)"}},"id":15790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3677:47:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"src":"3667:57:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15792,"nodeType":"ExpressionStatement","src":"3667:57:74"},{"expression":{"id":15799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15793,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3734:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"42756e646c65546f6b656e","id":15796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3775:13:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_49971d9abb6528cf70ffd04b9f4808a4d05dcff6326ec72b1165dc2f6e11a039","typeString":"literal_string \"BundleToken\""},"value":"BundleToken"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_49971d9abb6528cf70ffd04b9f4808a4d05dcff6326ec72b1165dc2f6e11a039","typeString":"literal_string \"BundleToken\""}],"id":15795,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3755:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3755:34:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15794,"name":"BundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28751,"src":"3743:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleToken_$28751_$","typeString":"type(contract BundleToken)"}},"id":15798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3743:47:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"src":"3734:56:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"id":15800,"nodeType":"ExpressionStatement","src":"3734:56:74"}]},"id":15802,"implemented":true,"kind":"function","modifiers":[{"id":15783,"modifierName":{"id":15782,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"3640:16:74"},"nodeType":"ModifierInvocation","src":"3640:16:74"}],"name":"_afterInitialize","nameLocation":"3603:16:74","nodeType":"FunctionDefinition","overrides":{"id":15781,"nodeType":"OverrideSpecifier","overrides":[],"src":"3631:8:74"},"parameters":{"id":15780,"nodeType":"ParameterList","parameters":[],"src":"3619:2:74"},"returnParameters":{"id":15784,"nodeType":"ParameterList","parameters":[],"src":"3657:0:74"},"scope":16946,"src":"3594:203:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4949],"body":{"id":15923,"nodeType":"Block","src":"3987:946:74","statements":[{"expression":{"id":15822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15818,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15816,"src":"4114:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15819,"name":"_bundleCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"4125:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":15820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4140:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4125:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4114:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15823,"nodeType":"ExpressionStatement","src":"4114:27:74"},{"assignments":[15826],"declarations":[{"constant":false,"id":15826,"mutability":"mutable","name":"bundle","nameLocation":"4166:6:74","nodeType":"VariableDeclaration","scope":15923,"src":"4151:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":15825,"nodeType":"UserDefinedTypeName","pathNode":{"id":15824,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"4151:6:74"},"referencedDeclaration":4936,"src":"4151:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":15830,"initialValue":{"baseExpression":{"id":15827,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"4175:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":15829,"indexExpression":{"id":15828,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15816,"src":"4184:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4175:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4151:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15832,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4211:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"4211:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4231:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4211:21:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031303a42554e444c455f414c52454144595f455849535453","id":15836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4234:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6af89170a905e726a8cbfa86235e1ceb54481c43b365eb980d838bfae76a56c","typeString":"literal_string \"ERROR:BUC-010:BUNDLE_ALREADY_EXISTS\""},"value":"ERROR:BUC-010:BUNDLE_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a6af89170a905e726a8cbfa86235e1ceb54481c43b365eb980d838bfae76a56c","typeString":"literal_string \"ERROR:BUC-010:BUNDLE_ALREADY_EXISTS\""}],"id":15831,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4203:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4203:69:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15838,"nodeType":"ExpressionStatement","src":"4203:69:74"},{"assignments":[15840],"declarations":[{"constant":false,"id":15840,"mutability":"mutable","name":"tokenId","nameLocation":"4346:7:74","nodeType":"VariableDeclaration","scope":15923,"src":"4338:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15839,"name":"uint256","nodeType":"ElementaryTypeName","src":"4338:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15846,"initialValue":{"arguments":[{"id":15843,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15816,"src":"4368:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15844,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15804,"src":"4378:6:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15841,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"4356:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"id":15842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":28661,"src":"4356:11:74","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) external returns (uint256)"}},"id":15845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4356:29:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4338:47:74"},{"expression":{"id":15851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15847,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4396:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":4916,"src":"4396:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15850,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15816,"src":"4408:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4396:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15852,"nodeType":"ExpressionStatement","src":"4396:20:74"},{"expression":{"id":15857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15853,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4426:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4920,"src":"4426:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15856,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15840,"src":"4443:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4426:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15858,"nodeType":"ExpressionStatement","src":"4426:24:74"},{"expression":{"id":15863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15859,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4460:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"4460:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15862,"name":"riskpoolId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15806,"src":"4480:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4460:31:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15864,"nodeType":"ExpressionStatement","src":"4460:31:74"},{"expression":{"id":15870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15865,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4501:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"4501:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15868,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"4516:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":15869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"4516:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"4501:33:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"id":15871,"nodeType":"ExpressionStatement","src":"4501:33:74"},{"expression":{"id":15876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15872,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4544:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"filter","nodeType":"MemberAccess","referencedDeclaration":4925,"src":"4544:13:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15875,"name":"filter_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15808,"src":"4560:7:74","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"4544:23:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":15877,"nodeType":"ExpressionStatement","src":"4544:23:74"},{"expression":{"id":15882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15878,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4577:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"4577:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15881,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15810,"src":"4594:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4577:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15883,"nodeType":"ExpressionStatement","src":"4577:24:74"},{"expression":{"id":15888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15884,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4611:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"4611:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15887,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15810,"src":"4628:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4611:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15889,"nodeType":"ExpressionStatement","src":"4611:24:74"},{"expression":{"id":15895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15890,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4645:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"4645:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15893,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"4664:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4664:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4645:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15896,"nodeType":"ExpressionStatement","src":"4645:34:74"},{"expression":{"id":15902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15897,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4689:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"4689:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15900,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"4708:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4708:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4689:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15903,"nodeType":"ExpressionStatement","src":"4689:34:74"},{"expression":{"id":15905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4765:14:74","subExpression":{"id":15904,"name":"_bundleCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"4765:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15906,"nodeType":"ExpressionStatement","src":"4765:14:74"},{"expression":{"id":15910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4789:43:74","subExpression":{"baseExpression":{"id":15907,"name":"_unburntBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"4789:28:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":15909,"indexExpression":{"id":15908,"name":"riskpoolId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15806,"src":"4818:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4789:41:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15911,"nodeType":"ExpressionStatement","src":"4789:43:74"},{"eventCall":{"arguments":[{"expression":{"id":15913,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4865:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":4916,"src":"4865:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15915,"name":"riskpoolId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15806,"src":"4876:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15916,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15804,"src":"4889:6:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15917,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4897:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"4897:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},{"expression":{"id":15919,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4911:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"4911:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15912,"name":"LogBundleCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4851,"src":"4848:16:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_enum$_BundleState_$4914_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,address,enum IBundle.BundleState,uint256)"}},"id":15921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4848:78:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15922,"nodeType":"EmitStatement","src":"4843:83:74"}]},"functionSelector":"c0e71404","id":15924,"implemented":true,"kind":"function","modifiers":[{"id":15814,"modifierName":{"id":15813,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"3929:19:74"},"nodeType":"ModifierInvocation","src":"3929:19:74"}],"name":"create","nameLocation":"3812:6:74","nodeType":"FunctionDefinition","overrides":{"id":15812,"nodeType":"OverrideSpecifier","overrides":[],"src":"3912:8:74"},"parameters":{"id":15811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15804,"mutability":"mutable","name":"owner_","nameLocation":"3827:6:74","nodeType":"VariableDeclaration","scope":15924,"src":"3819:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15803,"name":"address","nodeType":"ElementaryTypeName","src":"3819:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15806,"mutability":"mutable","name":"riskpoolId_","nameLocation":"3840:11:74","nodeType":"VariableDeclaration","scope":15924,"src":"3835:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15805,"name":"uint","nodeType":"ElementaryTypeName","src":"3835:4:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15808,"mutability":"mutable","name":"filter_","nameLocation":"3868:7:74","nodeType":"VariableDeclaration","scope":15924,"src":"3853:22:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15807,"name":"bytes","nodeType":"ElementaryTypeName","src":"3853:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15810,"mutability":"mutable","name":"amount_","nameLocation":"3885:7:74","nodeType":"VariableDeclaration","scope":15924,"src":"3877:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15809,"name":"uint256","nodeType":"ElementaryTypeName","src":"3877:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3818:75:74"},"returnParameters":{"id":15817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15816,"mutability":"mutable","name":"bundleId","nameLocation":"3973:8:74","nodeType":"VariableDeclaration","scope":15924,"src":"3965:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15815,"name":"uint256","nodeType":"ElementaryTypeName","src":"3965:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3964:18:74"},"scope":16946,"src":"3803:1130:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4956],"body":{"id":15994,"nodeType":"Block","src":"5047:502:74","statements":[{"assignments":[15936],"declarations":[{"constant":false,"id":15936,"mutability":"mutable","name":"bundle","nameLocation":"5072:6:74","nodeType":"VariableDeclaration","scope":15994,"src":"5057:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":15935,"nodeType":"UserDefinedTypeName","pathNode":{"id":15934,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"5057:6:74"},"referencedDeclaration":4936,"src":"5057:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":15940,"initialValue":{"baseExpression":{"id":15937,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"5081:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":15939,"indexExpression":{"id":15938,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15926,"src":"5090:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5081:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5057:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15942,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5117:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"5117:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5136:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5117:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031313a42554e444c455f444f45535f4e4f545f4558495354","id":15946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5139:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf35f3e2266f9a8bf680e348616bdf722a2b950e229c31f4953b03b62eef75ef","typeString":"literal_string \"ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cf35f3e2266f9a8bf680e348616bdf722a2b950e229c31f4953b03b62eef75ef","typeString":"literal_string \"ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST\""}],"id":15941,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5109:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5109:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15948,"nodeType":"ExpressionStatement","src":"5109:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":15955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15950,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5195:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"5195:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":15952,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"5211:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":15953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"5211:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":15954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"5211:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"5195:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031323a42554e444c455f434c4f534544","id":15956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5239:29:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_51098105866c55020f052d2f0c7132465beb1923abe3fed4a93163d00ae443f5","typeString":"literal_string \"ERROR:BUC-012:BUNDLE_CLOSED\""},"value":"ERROR:BUC-012:BUNDLE_CLOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51098105866c55020f052d2f0c7132465beb1923abe3fed4a93163d00ae443f5","typeString":"literal_string \"ERROR:BUC-012:BUNDLE_CLOSED\""}],"id":15949,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5187:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5187:82:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15958,"nodeType":"ExpressionStatement","src":"5187:82:74"},{"expression":{"id":15963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15959,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5280:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"5280:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":15962,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15928,"src":"5298:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5280:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15964,"nodeType":"ExpressionStatement","src":"5280:24:74"},{"expression":{"id":15969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15965,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5314:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"5314:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":15968,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15928,"src":"5332:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5314:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15970,"nodeType":"ExpressionStatement","src":"5314:24:74"},{"expression":{"id":15976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15971,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5348:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"5348:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15974,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"5367:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5367:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5348:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15977,"nodeType":"ExpressionStatement","src":"5348:34:74"},{"assignments":[15979],"declarations":[{"constant":false,"id":15979,"mutability":"mutable","name":"capacityAmount","nameLocation":"5401:14:74","nodeType":"VariableDeclaration","scope":15994,"src":"5393:22:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15978,"name":"uint256","nodeType":"ElementaryTypeName","src":"5393:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15985,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15980,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5418:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"5418:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15982,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5435:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"5435:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5418:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5393:62:74"},{"eventCall":{"arguments":[{"id":15987,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15926,"src":"5495:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":15988,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5505:10:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":15989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5505:12:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15990,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15928,"src":"5519:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15991,"name":"capacityAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15979,"src":"5527:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15986,"name":"LogBundleCapitalProvided","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"5470:24:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":15992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5470:72:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15993,"nodeType":"EmitStatement","src":"5465:77:74"}]},"functionSelector":"a65e2cfd","id":15995,"implemented":true,"kind":"function","modifiers":[{"id":15932,"modifierName":{"id":15931,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"5023:19:74"},"nodeType":"ModifierInvocation","src":"5023:19:74"}],"name":"fund","nameLocation":"4949:4:74","nodeType":"FunctionDefinition","overrides":{"id":15930,"nodeType":"OverrideSpecifier","overrides":[],"src":"5005:8:74"},"parameters":{"id":15929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15926,"mutability":"mutable","name":"bundleId","nameLocation":"4962:8:74","nodeType":"VariableDeclaration","scope":15995,"src":"4954:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15925,"name":"uint256","nodeType":"ElementaryTypeName","src":"4954:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15928,"mutability":"mutable","name":"amount","nameLocation":"4980:6:74","nodeType":"VariableDeclaration","scope":15995,"src":"4972:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15927,"name":"uint256","nodeType":"ElementaryTypeName","src":"4972:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4953:34:74"},"returnParameters":{"id":15933,"nodeType":"ParameterList","parameters":[],"src":"5047:0:74"},"scope":16946,"src":"4940:609:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4963],"body":{"id":16090,"nodeType":"Block","src":"5666:725:74","statements":[{"assignments":[16007],"declarations":[{"constant":false,"id":16007,"mutability":"mutable","name":"bundle","nameLocation":"5691:6:74","nodeType":"VariableDeclaration","scope":16090,"src":"5676:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16006,"nodeType":"UserDefinedTypeName","pathNode":{"id":16005,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"5676:6:74"},"referencedDeclaration":4936,"src":"5676:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16011,"initialValue":{"baseExpression":{"id":16008,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"5700:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16010,"indexExpression":{"id":16009,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15997,"src":"5709:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5700:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5676:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16013,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"5736:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"5736:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5755:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5736:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031333a42554e444c455f444f45535f4e4f545f4558495354","id":16017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5758:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_750d48e8d1549f6e00eaa45d8b819215fd3f4c5e8b847763cb675c2a72ed0664","typeString":"literal_string \"ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_750d48e8d1549f6e00eaa45d8b819215fd3f4c5e8b847763cb675c2a72ed0664","typeString":"literal_string \"ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST\""}],"id":16012,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5728:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5728:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16019,"nodeType":"ExpressionStatement","src":"5728:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16021,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"5827:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"5827:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16023,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"5845:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"5845:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":16025,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"5868:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5845:29:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5827:47:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16028,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"5891:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"5891:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5915:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5891:25:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16032,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"5920:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"5920:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16034,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"5938:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5920:24:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5891:53:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":16037,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5890:55:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5827:118:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031343a43415041434954595f4f525f42414c414e43455f544f4f5f4c4f57","id":16039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5959:43:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_21c208e0ee80cc3a94bf9c14b14ba802f5415c77d896f3678d2b2e4e18a9fdeb","typeString":"literal_string \"ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW\""},"value":"ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_21c208e0ee80cc3a94bf9c14b14ba802f5415c77d896f3678d2b2e4e18a9fdeb","typeString":"literal_string \"ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW\""}],"id":16020,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5806:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5806:206:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16041,"nodeType":"ExpressionStatement","src":"5806:206:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16042,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6027:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"6027:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16044,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"6045:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6027:24:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16059,"nodeType":"Block","src":"6122:23:74","statements":[{"expression":{"id":16057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16053,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6124:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"6124:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":16056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6141:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6124:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16058,"nodeType":"ExpressionStatement","src":"6124:18:74"}]},"id":16060,"nodeType":"IfStatement","src":"6023:122:74","trueBody":{"id":16052,"nodeType":"Block","src":"6053:29:74","statements":[{"expression":{"id":16050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16046,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6055:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"6055:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16049,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"6073:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6055:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16051,"nodeType":"ExpressionStatement","src":"6055:24:74"}]}},{"expression":{"id":16065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16061,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6155:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"6155:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16064,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"6173:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6155:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16066,"nodeType":"ExpressionStatement","src":"6155:24:74"},{"expression":{"id":16072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16067,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6189:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"6189:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16070,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"6208:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6208:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6189:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16073,"nodeType":"ExpressionStatement","src":"6189:34:74"},{"assignments":[16075],"declarations":[{"constant":false,"id":16075,"mutability":"mutable","name":"capacityAmount","nameLocation":"6242:14:74","nodeType":"VariableDeclaration","scope":16090,"src":"6234:22:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16074,"name":"uint256","nodeType":"ElementaryTypeName","src":"6234:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16081,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16076,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6259:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"6259:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16078,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6276:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"6276:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6259:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6234:62:74"},{"eventCall":{"arguments":[{"id":16083,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15997,"src":"6337:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":16084,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"6347:10:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":16085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6347:12:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16086,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"6361:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16087,"name":"capacityAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16075,"src":"6369:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16082,"name":"LogBundleCapitalWithdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"6311:25:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":16088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6311:73:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16089,"nodeType":"EmitStatement","src":"6306:78:74"}]},"functionSelector":"c397ae39","id":16091,"implemented":true,"kind":"function","modifiers":[{"id":16003,"modifierName":{"id":16002,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"5642:19:74"},"nodeType":"ModifierInvocation","src":"5642:19:74"}],"name":"defund","nameLocation":"5565:6:74","nodeType":"FunctionDefinition","overrides":{"id":16001,"nodeType":"OverrideSpecifier","overrides":[],"src":"5624:8:74"},"parameters":{"id":16000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15997,"mutability":"mutable","name":"bundleId","nameLocation":"5580:8:74","nodeType":"VariableDeclaration","scope":16091,"src":"5572:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15996,"name":"uint256","nodeType":"ElementaryTypeName","src":"5572:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15999,"mutability":"mutable","name":"amount","nameLocation":"5598:6:74","nodeType":"VariableDeclaration","scope":16091,"src":"5590:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15998,"name":"uint256","nodeType":"ElementaryTypeName","src":"5590:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5571:34:74"},"returnParameters":{"id":16004,"nodeType":"ParameterList","parameters":[],"src":"5666:0:74"},"scope":16946,"src":"5556:835:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4968],"body":{"id":16105,"nodeType":"Block","src":"6487:59:74","statements":[{"expression":{"arguments":[{"id":16100,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16093,"src":"6510:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16101,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"6520:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Locked","nodeType":"MemberAccess","referencedDeclaration":4911,"src":"6520:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16099,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16844,"src":"6497:12:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState)"}},"id":16103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6497:42:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16104,"nodeType":"ExpressionStatement","src":"6497:42:74"}]},"functionSelector":"dd467064","id":16106,"implemented":true,"kind":"function","modifiers":[{"id":16097,"modifierName":{"id":16096,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"6463:19:74"},"nodeType":"ModifierInvocation","src":"6463:19:74"}],"name":"lock","nameLocation":"6406:4:74","nodeType":"FunctionDefinition","overrides":{"id":16095,"nodeType":"OverrideSpecifier","overrides":[],"src":"6446:8:74"},"parameters":{"id":16094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16093,"mutability":"mutable","name":"bundleId","nameLocation":"6419:8:74","nodeType":"VariableDeclaration","scope":16106,"src":"6411:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16092,"name":"uint256","nodeType":"ElementaryTypeName","src":"6411:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6410:18:74"},"returnParameters":{"id":16098,"nodeType":"ParameterList","parameters":[],"src":"6487:0:74"},"scope":16946,"src":"6397:149:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4973],"body":{"id":16120,"nodeType":"Block","src":"6644:59:74","statements":[{"expression":{"arguments":[{"id":16115,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16108,"src":"6667:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16116,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"6677:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"6677:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16114,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16844,"src":"6654:12:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState)"}},"id":16118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6654:42:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16119,"nodeType":"ExpressionStatement","src":"6654:42:74"}]},"functionSelector":"6198e339","id":16121,"implemented":true,"kind":"function","modifiers":[{"id":16112,"modifierName":{"id":16111,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"6620:19:74"},"nodeType":"ModifierInvocation","src":"6620:19:74"}],"name":"unlock","nameLocation":"6561:6:74","nodeType":"FunctionDefinition","overrides":{"id":16110,"nodeType":"OverrideSpecifier","overrides":[],"src":"6603:8:74"},"parameters":{"id":16109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16108,"mutability":"mutable","name":"bundleId","nameLocation":"6576:8:74","nodeType":"VariableDeclaration","scope":16121,"src":"6568:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16107,"name":"uint256","nodeType":"ElementaryTypeName","src":"6568:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6567:18:74"},"returnParameters":{"id":16113,"nodeType":"ParameterList","parameters":[],"src":"6644:0:74"},"scope":16946,"src":"6552:151:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4978],"body":{"id":16144,"nodeType":"Block","src":"6800:153:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16130,"name":"_activePolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15715,"src":"6818:15:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16132,"indexExpression":{"id":16131,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"6834:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6818:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6847:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6818:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031353a42554e444c455f574954485f4143544956455f504f4c4943494553","id":16135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6850:43:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfee2d08a237128ef26128bb3ed2c011ce3e51b3f04253c27af0b6459a36cf46","typeString":"literal_string \"ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES\""},"value":"ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dfee2d08a237128ef26128bb3ed2c011ce3e51b3f04253c27af0b6459a36cf46","typeString":"literal_string \"ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES\""}],"id":16129,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6810:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6810:84:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16137,"nodeType":"ExpressionStatement","src":"6810:84:74"},{"expression":{"arguments":[{"id":16139,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"6917:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16140,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"6927:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"6927:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16138,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16844,"src":"6904:12:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState)"}},"id":16142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6904:42:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16143,"nodeType":"ExpressionStatement","src":"6904:42:74"}]},"functionSelector":"0aebeb4e","id":16145,"implemented":true,"kind":"function","modifiers":[{"id":16127,"modifierName":{"id":16126,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"6776:19:74"},"nodeType":"ModifierInvocation","src":"6776:19:74"}],"name":"close","nameLocation":"6718:5:74","nodeType":"FunctionDefinition","overrides":{"id":16125,"nodeType":"OverrideSpecifier","overrides":[],"src":"6759:8:74"},"parameters":{"id":16124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16123,"mutability":"mutable","name":"bundleId","nameLocation":"6732:8:74","nodeType":"VariableDeclaration","scope":16145,"src":"6724:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16122,"name":"uint256","nodeType":"ElementaryTypeName","src":"6724:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6723:18:74"},"returnParameters":{"id":16128,"nodeType":"ParameterList","parameters":[],"src":"6800:0:74"},"scope":16946,"src":"6709:244:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4983],"body":{"id":16196,"nodeType":"Block","src":"7053:441:74","statements":[{"assignments":[16155],"declarations":[{"constant":false,"id":16155,"mutability":"mutable","name":"bundle","nameLocation":"7078:6:74","nodeType":"VariableDeclaration","scope":16196,"src":"7063:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16154,"nodeType":"UserDefinedTypeName","pathNode":{"id":16153,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"7063:6:74"},"referencedDeclaration":4936,"src":"7063:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16159,"initialValue":{"baseExpression":{"id":16156,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"7087:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16158,"indexExpression":{"id":16157,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16147,"src":"7096:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7087:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7063:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16161,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"7123:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"7123:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16163,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7139:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"7139:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"7123:34:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031363a42554e444c455f4e4f545f434c4f534544","id":16166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7159:33:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_e68c04cdb41f689d8d2e6a5d0c4084a8393fecccce8f7b586a8a6e10213866a8","typeString":"literal_string \"ERROR:BUC-016:BUNDLE_NOT_CLOSED\""},"value":"ERROR:BUC-016:BUNDLE_NOT_CLOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e68c04cdb41f689d8d2e6a5d0c4084a8393fecccce8f7b586a8a6e10213866a8","typeString":"literal_string \"ERROR:BUC-016:BUNDLE_NOT_CLOSED\""}],"id":16160,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7115:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7115:78:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16168,"nodeType":"ExpressionStatement","src":"7115:78:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16170,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"7211:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"7211:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7229:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7211:19:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031373a42554e444c455f4841535f42414c414e4345","id":16174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7232:34:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e3999515467d51db7d3efc320b4632f965fd637f4434d0cd56865c0258932e1","typeString":"literal_string \"ERROR:BUC-017:BUNDLE_HAS_BALANCE\""},"value":"ERROR:BUC-017:BUNDLE_HAS_BALANCE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4e3999515467d51db7d3efc320b4632f965fd637f4434d0cd56865c0258932e1","typeString":"literal_string \"ERROR:BUC-017:BUNDLE_HAS_BALANCE\""}],"id":16169,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7203:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7203:64:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16176,"nodeType":"ExpressionStatement","src":"7203:64:74"},{"expression":{"arguments":[{"id":16180,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16147,"src":"7363:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16177,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"7351:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"id":16179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":28687,"src":"7351:11:74","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":16181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7351:21:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16182,"nodeType":"ExpressionStatement","src":"7351:21:74"},{"expression":{"id":16188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16183,"name":"_unburntBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"7382:28:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16186,"indexExpression":{"expression":{"id":16184,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"7411:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"7411:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7382:47:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":16187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7433:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7382:52:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16189,"nodeType":"ExpressionStatement","src":"7382:52:74"},{"expression":{"arguments":[{"id":16191,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16147,"src":"7458:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16192,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7468:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"7468:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16190,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16844,"src":"7445:12:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState)"}},"id":16194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7445:42:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16195,"nodeType":"ExpressionStatement","src":"7445:42:74"}]},"functionSelector":"42966c68","id":16197,"implemented":true,"kind":"function","modifiers":[{"id":16151,"modifierName":{"id":16150,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"7029:19:74"},"nodeType":"ModifierInvocation","src":"7029:19:74"}],"name":"burn","nameLocation":"6968:4:74","nodeType":"FunctionDefinition","overrides":{"id":16149,"nodeType":"OverrideSpecifier","overrides":[],"src":"7012:8:74"},"parameters":{"id":16148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16147,"mutability":"mutable","name":"bundleId","nameLocation":"6981:8:74","nodeType":"VariableDeclaration","scope":16197,"src":"6973:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16146,"name":"uint256","nodeType":"ElementaryTypeName","src":"6973:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6972:18:74"},"returnParameters":{"id":16152,"nodeType":"ParameterList","parameters":[],"src":"7053:0:74"},"scope":16946,"src":"6959:535:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4992],"body":{"id":16321,"nodeType":"Block","src":"7641:1090:74","statements":[{"assignments":[16213],"declarations":[{"constant":false,"id":16213,"mutability":"mutable","name":"metadata","nameLocation":"7675:8:74","nodeType":"VariableDeclaration","scope":16321,"src":"7651:32:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":16212,"nodeType":"UserDefinedTypeName","pathNode":{"id":16211,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"7651:16:74"},"referencedDeclaration":5248,"src":"7651:16:74","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":16218,"initialValue":{"arguments":[{"id":16216,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16201,"src":"7706:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16214,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"7686:7:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":16215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"7686:19:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":16217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7686:30:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"7651:65:74"},{"assignments":[16221],"declarations":[{"constant":false,"id":16221,"mutability":"mutable","name":"bundle","nameLocation":"7741:6:74","nodeType":"VariableDeclaration","scope":16321,"src":"7726:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16220,"nodeType":"UserDefinedTypeName","pathNode":{"id":16219,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"7726:6:74"},"referencedDeclaration":4936,"src":"7726:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16225,"initialValue":{"baseExpression":{"id":16222,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"7750:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16224,"indexExpression":{"id":16223,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"7759:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7750:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7726:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16227,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"7786:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"7786:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":16232,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16213,"src":"7850:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":16233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"7850:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16229,"name":"_getPoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16812,"src":"7807:18:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PoolController_$21207_$","typeString":"function () view returns (contract PoolController)"}},"id":16230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7807:20:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":16231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskPoolForProduct","nodeType":"MemberAccess","referencedDeclaration":21014,"src":"7807:42:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":16234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7807:62:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:83:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031393a42554e444c455f4e4f545f494e5f5249534b504f4f4c","id":16236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7871:38:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_7856d8fb31306adef57d12943b55496b08db0cef49b61216ad67a8afc716e628","typeString":"literal_string \"ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL\""},"value":"ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7856d8fb31306adef57d12943b55496b08db0cef49b61216ad67a8afc716e628","typeString":"literal_string \"ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL\""}],"id":16226,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7778:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7778:132:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16238,"nodeType":"ExpressionStatement","src":"7778:132:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16240,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"7928:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16241,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"7928:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7947:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7928:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3032303a42554e444c455f444f45535f4e4f545f4558495354","id":16244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7950:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_23c15b355ac659e6efa849a6211bec479f57808999aa963c7b0feaa5cc832745","typeString":"literal_string \"ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_23c15b355ac659e6efa849a6211bec479f57808999aa963c7b0feaa5cc832745","typeString":"literal_string \"ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST\""}],"id":16239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7920:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7920:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16246,"nodeType":"ExpressionStatement","src":"7920:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16248,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8006:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"8006:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":16250,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"8022:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":16251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"8022:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"8022:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"8006:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3032313a42554e444c455f4e4f545f414354495645","id":16254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8050:33:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_ea3e85c9558b3cb99a10a739823ff71f730cd0abf0b8a1db4cbcca809539be50","typeString":"literal_string \"ERROR:BUC-021:BUNDLE_NOT_ACTIVE\""},"value":"ERROR:BUC-021:BUNDLE_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea3e85c9558b3cb99a10a739823ff71f730cd0abf0b8a1db4cbcca809539be50","typeString":"literal_string \"ERROR:BUC-021:BUNDLE_NOT_ACTIVE\""}],"id":16247,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7998:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7998:86:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16256,"nodeType":"ExpressionStatement","src":"7998:86:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16258,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8110:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"8110:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16260,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8128:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"8128:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":16262,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"8151:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8128:29:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8110:47:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3032323a43415041434954595f544f4f5f4c4f57","id":16265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8159:32:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f0e986b57b056403cfa995705a568caff60bf8952514def6e4e10f0b8be0363","typeString":"literal_string \"ERROR:BUC-022:CAPACITY_TOO_LOW\""},"value":"ERROR:BUC-022:CAPACITY_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1f0e986b57b056403cfa995705a568caff60bf8952514def6e4e10f0b8be0363","typeString":"literal_string \"ERROR:BUC-022:CAPACITY_TOO_LOW\""}],"id":16257,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8102:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8102:90:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16267,"nodeType":"ExpressionStatement","src":"8102:90:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":16269,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"8264:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16271,"indexExpression":{"id":16270,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"8286:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8264:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16273,"indexExpression":{"id":16272,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16201,"src":"8296:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8264:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8310:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8264:47:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3032333a494e4352454d454e54414c5f434f4c4c41544552414c495a4154494f4e5f4e4f545f494d504c454d454e544544","id":16276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8313:61:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f7e878f103e4e81471a67c70bb5acfc513b47b809c34428480adee650fd472b","typeString":"literal_string \"ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED\""},"value":"ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f7e878f103e4e81471a67c70bb5acfc513b47b809c34428480adee650fd472b","typeString":"literal_string \"ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED\""}],"id":16268,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8256:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8256:119:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16278,"nodeType":"ExpressionStatement","src":"8256:119:74"},{"expression":{"id":16283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16279,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8386:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"8386:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":16282,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"8410:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8386:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16284,"nodeType":"ExpressionStatement","src":"8386:30:74"},{"expression":{"id":16290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16285,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8426:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"8426:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16288,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"8445:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8445:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8426:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16291,"nodeType":"ExpressionStatement","src":"8426:34:74"},{"expression":{"id":16296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16292,"name":"_activePolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15715,"src":"8471:15:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16294,"indexExpression":{"id":16293,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"8487:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8471:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":16295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8500:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8471:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16297,"nodeType":"ExpressionStatement","src":"8471:30:74"},{"expression":{"id":16304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":16298,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"8511:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16301,"indexExpression":{"id":16299,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"8533:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8511:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16302,"indexExpression":{"id":16300,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16201,"src":"8543:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8511:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16303,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"8556:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8511:51:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16305,"nodeType":"ExpressionStatement","src":"8511:51:74"},{"assignments":[16307],"declarations":[{"constant":false,"id":16307,"mutability":"mutable","name":"capacityAmount","nameLocation":"8581:14:74","nodeType":"VariableDeclaration","scope":16321,"src":"8573:22:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16306,"name":"uint256","nodeType":"ElementaryTypeName","src":"8573:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16313,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16308,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8598:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"8598:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16310,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8615:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"8615:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8598:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8573:62:74"},{"eventCall":{"arguments":[{"id":16315,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"8680:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16316,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16201,"src":"8690:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16317,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"8701:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16318,"name":"capacityAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16307,"src":"8709:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16314,"name":"LogBundlePolicyCollateralized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"8650:29:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256,uint256)"}},"id":16319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8650:74:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16320,"nodeType":"EmitStatement","src":"8645:79:74"}]},"functionSelector":"4d03f9b7","id":16322,"implemented":true,"kind":"function","modifiers":[{"id":16207,"modifierName":{"id":16206,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"7617:19:74"},"nodeType":"ModifierInvocation","src":"7617:19:74"}],"name":"collateralizePolicy","nameLocation":"7509:19:74","nodeType":"FunctionDefinition","overrides":{"id":16205,"nodeType":"OverrideSpecifier","overrides":[],"src":"7599:8:74"},"parameters":{"id":16204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16199,"mutability":"mutable","name":"bundleId","nameLocation":"7537:8:74","nodeType":"VariableDeclaration","scope":16322,"src":"7529:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16198,"name":"uint256","nodeType":"ElementaryTypeName","src":"7529:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16201,"mutability":"mutable","name":"processId","nameLocation":"7555:9:74","nodeType":"VariableDeclaration","scope":16322,"src":"7547:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7547:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16203,"mutability":"mutable","name":"amount","nameLocation":"7574:6:74","nodeType":"VariableDeclaration","scope":16322,"src":"7566:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16202,"name":"uint256","nodeType":"ElementaryTypeName","src":"7566:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7528:53:74"},"returnParameters":{"id":16208,"nodeType":"ParameterList","parameters":[],"src":"7641:0:74"},"scope":16946,"src":"7500:1231:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5001],"body":{"id":16385,"nodeType":"Block","src":"8910:451:74","statements":[{"assignments":[16341],"declarations":[{"constant":false,"id":16341,"mutability":"mutable","name":"policy","nameLocation":"8942:6:74","nodeType":"VariableDeclaration","scope":16385,"src":"8920:28:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":16340,"nodeType":"UserDefinedTypeName","pathNode":{"id":16339,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"8920:14:74"},"referencedDeclaration":5282,"src":"8920:14:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":16346,"initialValue":{"arguments":[{"id":16344,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16326,"src":"8969:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16342,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"8951:7:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":16343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"8951:17:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":16345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8951:28:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"8920:59:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":16353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16348,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16341,"src":"9010:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":16349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"9010:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":16350,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"9026:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":16351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"9026:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":16352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"9026:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"9010:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3033303a504f4c4943595f53544154455f494e56414c4944","id":16354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9066:36:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_ac05a7c756dadc02ca183d94e2630362537ab1a69f8694bcb1ec098e9c430dea","typeString":"literal_string \"ERROR:POL-030:POLICY_STATE_INVALID\""},"value":"ERROR:POL-030:POLICY_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ac05a7c756dadc02ca183d94e2630362537ab1a69f8694bcb1ec098e9c430dea","typeString":"literal_string \"ERROR:POL-030:POLICY_STATE_INVALID\""}],"id":16347,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8989:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8989:123:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16356,"nodeType":"ExpressionStatement","src":"8989:123:74"},{"assignments":[16359],"declarations":[{"constant":false,"id":16359,"mutability":"mutable","name":"bundle","nameLocation":"9138:6:74","nodeType":"VariableDeclaration","scope":16385,"src":"9123:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16358,"nodeType":"UserDefinedTypeName","pathNode":{"id":16357,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"9123:6:74"},"referencedDeclaration":4936,"src":"9123:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16363,"initialValue":{"baseExpression":{"id":16360,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"9147:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16362,"indexExpression":{"id":16361,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16324,"src":"9156:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9147:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9123:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16365,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16359,"src":"9183:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"9183:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9202:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9183:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3033313a42554e444c455f444f45535f4e4f545f4558495354","id":16369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9205:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d1cfb4ee24f94379bee7fbfee2e22d90b6f0f63a5a71e7d9fe32723d1e19a2b","typeString":"literal_string \"ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d1cfb4ee24f94379bee7fbfee2e22d90b6f0f63a5a71e7d9fe32723d1e19a2b","typeString":"literal_string \"ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST\""}],"id":16364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9175:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9175:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16371,"nodeType":"ExpressionStatement","src":"9175:68:74"},{"expression":{"id":16376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16372,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16359,"src":"9262:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"9262:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":16375,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16328,"src":"9280:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9262:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16377,"nodeType":"ExpressionStatement","src":"9262:24:74"},{"expression":{"id":16383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16378,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16359,"src":"9296:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"9296:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16381,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9315:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9315:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9296:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16384,"nodeType":"ExpressionStatement","src":"9296:34:74"}]},"functionSelector":"b7267420","id":16386,"implemented":true,"kind":"function","modifiers":[{"id":16332,"modifierName":{"id":16331,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"8849:19:74"},"nodeType":"ModifierInvocation","src":"8849:19:74"},{"arguments":[{"id":16334,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16324,"src":"8896:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16335,"modifierName":{"id":16333,"name":"onlyFundableBundle","nodeType":"IdentifierPath","referencedDeclaration":15779,"src":"8877:18:74"},"nodeType":"ModifierInvocation","src":"8877:28:74"}],"name":"processPremium","nameLocation":"8747:14:74","nodeType":"FunctionDefinition","overrides":{"id":16330,"nodeType":"OverrideSpecifier","overrides":[],"src":"8832:8:74"},"parameters":{"id":16329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16324,"mutability":"mutable","name":"bundleId","nameLocation":"8770:8:74","nodeType":"VariableDeclaration","scope":16386,"src":"8762:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16323,"name":"uint256","nodeType":"ElementaryTypeName","src":"8762:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16326,"mutability":"mutable","name":"processId","nameLocation":"8788:9:74","nodeType":"VariableDeclaration","scope":16386,"src":"8780:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8780:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16328,"mutability":"mutable","name":"amount","nameLocation":"8807:6:74","nodeType":"VariableDeclaration","scope":16386,"src":"8799:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16327,"name":"uint256","nodeType":"ElementaryTypeName","src":"8799:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8761:53:74"},"returnParameters":{"id":16336,"nodeType":"ParameterList","parameters":[],"src":"8910:0:74"},"scope":16946,"src":"8738:623:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5010],"body":{"id":16533,"nodeType":"Block","src":"9504:1434:74","statements":[{"assignments":[16402],"declarations":[{"constant":false,"id":16402,"mutability":"mutable","name":"policy","nameLocation":"9536:6:74","nodeType":"VariableDeclaration","scope":16533,"src":"9514:28:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":16401,"nodeType":"UserDefinedTypeName","pathNode":{"id":16400,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"9514:14:74"},"referencedDeclaration":5282,"src":"9514:14:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":16407,"initialValue":{"arguments":[{"id":16405,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9563:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16403,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"9545:7:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":16404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"9545:17:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":16406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9545:28:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"9514:59:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":16414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16409,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16402,"src":"9604:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":16410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"9604:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":16411,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"9620:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":16412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"9620:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":16413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"9620:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"9604:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034303a504f4c4943595f53544154455f494e56414c4944","id":16415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9660:36:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c08561cf5ac792dc91430b2a3972e02263132349f58eb870b4f81b5de7584fa","typeString":"literal_string \"ERROR:POL-040:POLICY_STATE_INVALID\""},"value":"ERROR:POL-040:POLICY_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7c08561cf5ac792dc91430b2a3972e02263132349f58eb870b4f81b5de7584fa","typeString":"literal_string \"ERROR:POL-040:POLICY_STATE_INVALID\""}],"id":16408,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9583:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9583:123:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16417,"nodeType":"ExpressionStatement","src":"9583:123:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16419,"name":"_activePolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15715,"src":"9811:15:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16421,"indexExpression":{"id":16420,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"9827:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9811:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9839:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9811:29:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034313a4e4f5f4143544956455f504f4c49434945535f464f525f42554e444c45","id":16424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9842:45:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_b68fc49ffba85900fde950c14ac8951edad3f3436a673f461dc8a21fb7f4b182","typeString":"literal_string \"ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE\""},"value":"ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b68fc49ffba85900fde950c14ac8951edad3f3436a673f461dc8a21fb7f4b182","typeString":"literal_string \"ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE\""}],"id":16418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9803:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9803:85:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16426,"nodeType":"ExpressionStatement","src":"9803:85:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":16428,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"9906:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16430,"indexExpression":{"id":16429,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"9928:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9906:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16432,"indexExpression":{"id":16431,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9938:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9906:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16433,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"9952:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9906:52:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034323a434f4c4c41544552414c5f494e53554646494349454e545f464f525f504f4c494359","id":16435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9960:50:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_34c2d809984edcd3108df93e41438c107c75d7c168211713e77a185c157022f0","typeString":"literal_string \"ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY\""},"value":"ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_34c2d809984edcd3108df93e41438c107c75d7c168211713e77a185c157022f0","typeString":"literal_string \"ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY\""}],"id":16427,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9898:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9898:113:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16437,"nodeType":"ExpressionStatement","src":"9898:113:74"},{"assignments":[16440],"declarations":[{"constant":false,"id":16440,"mutability":"mutable","name":"bundle","nameLocation":"10094:6:74","nodeType":"VariableDeclaration","scope":16533,"src":"10079:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16439,"nodeType":"UserDefinedTypeName","pathNode":{"id":16438,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"10079:6:74"},"referencedDeclaration":4936,"src":"10079:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16444,"initialValue":{"baseExpression":{"id":16441,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"10103:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16443,"indexExpression":{"id":16442,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"10112:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10103:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10079:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16446,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10139:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"10139:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10158:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10139:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034333a42554e444c455f444f45535f4e4f545f4558495354","id":16450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10161:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_677000cd6030ee367c696ca46253760a7b00f48b537add2d4517030ec068929f","typeString":"literal_string \"ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_677000cd6030ee367c696ca46253760a7b00f48b537add2d4517030ec068929f","typeString":"literal_string \"ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST\""}],"id":16445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10131:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10131:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16452,"nodeType":"ExpressionStatement","src":"10131:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16454,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10230:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"10230:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":16456,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"10246:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":16457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"10246:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"10246:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"10230:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16460,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10288:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"10288:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":16462,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"10304:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":16463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"10304:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Locked","nodeType":"MemberAccess","referencedDeclaration":4911,"src":"10304:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"10288:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10230:100:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034343a42554e444c455f53544154455f494e56414c4944","id":16467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10345:36:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dddbb0de5d7844609928e43cf681e6d3461371d25dd2fe6e10bde5404e8a51c","typeString":"literal_string \"ERROR:BUC-044:BUNDLE_STATE_INVALID\""},"value":"ERROR:BUC-044:BUNDLE_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dddbb0de5d7844609928e43cf681e6d3461371d25dd2fe6e10bde5404e8a51c","typeString":"literal_string \"ERROR:BUC-044:BUNDLE_STATE_INVALID\""}],"id":16453,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10209:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10209:173:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16469,"nodeType":"ExpressionStatement","src":"10209:173:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16471,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10400:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"10400:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16473,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10418:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10400:24:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034353a4341504954414c5f544f4f5f4c4f57","id":16475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10426:31:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_03e06f22613c7e93a2c0293d2431263b515ac3c8de79433e162399c9d978c6da","typeString":"literal_string \"ERROR:BUC-045:CAPITAL_TOO_LOW\""},"value":"ERROR:BUC-045:CAPITAL_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_03e06f22613c7e93a2c0293d2431263b515ac3c8de79433e162399c9d978c6da","typeString":"literal_string \"ERROR:BUC-045:CAPITAL_TOO_LOW\""}],"id":16470,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10392:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10392:66:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16477,"nodeType":"ExpressionStatement","src":"10392:66:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16479,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10476:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"10476:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16481,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10500:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10476:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034363a4c4f434b45445f4341504954414c5f544f4f5f4c4f57","id":16483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10508:38:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_476d68cd1c40602068b3ee7843f94973d1216d46b2eed8d0cd41db8cb728d4b0","typeString":"literal_string \"ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW\""},"value":"ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_476d68cd1c40602068b3ee7843f94973d1216d46b2eed8d0cd41db8cb728d4b0","typeString":"literal_string \"ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW\""}],"id":16478,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10468:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10468:79:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16485,"nodeType":"ExpressionStatement","src":"10468:79:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16487,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10565:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"10565:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16489,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10583:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10565:24:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034373a42414c414e43455f544f4f5f4c4f57","id":16491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10591:31:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_2e1494ff589237f5b43eee9b5f76fa574bdf53755720949c3bbf80d7f7047647","typeString":"literal_string \"ERROR:BUC-047:BALANCE_TOO_LOW\""},"value":"ERROR:BUC-047:BALANCE_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2e1494ff589237f5b43eee9b5f76fa574bdf53755720949c3bbf80d7f7047647","typeString":"literal_string \"ERROR:BUC-047:BALANCE_TOO_LOW\""}],"id":16486,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10557:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10557:66:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16493,"nodeType":"ExpressionStatement","src":"10557:66:74"},{"expression":{"id":16500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":16494,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"10634:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16497,"indexExpression":{"id":16495,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"10656:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10634:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16498,"indexExpression":{"id":16496,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"10666:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10634:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16499,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10680:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10634:52:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16501,"nodeType":"ExpressionStatement","src":"10634:52:74"},{"expression":{"id":16506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16502,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10696:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"10696:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16505,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10714:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10696:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16507,"nodeType":"ExpressionStatement","src":"10696:24:74"},{"expression":{"id":16512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16508,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10730:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"10730:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16511,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10754:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10730:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16513,"nodeType":"ExpressionStatement","src":"10730:30:74"},{"expression":{"id":16518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16514,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10770:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"10770:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16517,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10788:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10770:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16519,"nodeType":"ExpressionStatement","src":"10770:24:74"},{"expression":{"id":16525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16520,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10804:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"10804:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16523,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"10823:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10823:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10804:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16526,"nodeType":"ExpressionStatement","src":"10804:34:74"},{"eventCall":{"arguments":[{"id":16528,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"10903:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16529,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"10913:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16530,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10924:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16527,"name":"LogBundlePayoutProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4899,"src":"10878:24:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256)"}},"id":16531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10878:53:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16532,"nodeType":"EmitStatement","src":"10873:58:74"}]},"functionSelector":"b299cc26","id":16534,"implemented":true,"kind":"function","modifiers":[{"id":16396,"modifierName":{"id":16395,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"9480:19:74"},"nodeType":"ModifierInvocation","src":"9480:19:74"}],"name":"processPayout","nameLocation":"9377:13:74","nodeType":"FunctionDefinition","overrides":{"id":16394,"nodeType":"OverrideSpecifier","overrides":[],"src":"9462:8:74"},"parameters":{"id":16393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16388,"mutability":"mutable","name":"bundleId","nameLocation":"9399:8:74","nodeType":"VariableDeclaration","scope":16534,"src":"9391:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16387,"name":"uint256","nodeType":"ElementaryTypeName","src":"9391:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16390,"mutability":"mutable","name":"processId","nameLocation":"9417:9:74","nodeType":"VariableDeclaration","scope":16534,"src":"9409:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9409:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16392,"mutability":"mutable","name":"amount","nameLocation":"9436:6:74","nodeType":"VariableDeclaration","scope":16534,"src":"9428:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16391,"name":"uint256","nodeType":"ElementaryTypeName","src":"9428:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9390:53:74"},"returnParameters":{"id":16397,"nodeType":"ParameterList","parameters":[],"src":"9504:0:74"},"scope":16946,"src":"9368:1570:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5019],"body":{"id":16647,"nodeType":"Block","src":"11116:1234:74","statements":[{"assignments":[16550],"declarations":[{"constant":false,"id":16550,"mutability":"mutable","name":"policy","nameLocation":"11148:6:74","nodeType":"VariableDeclaration","scope":16647,"src":"11126:28:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":16549,"nodeType":"UserDefinedTypeName","pathNode":{"id":16548,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"11126:14:74"},"referencedDeclaration":5282,"src":"11126:14:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":16555,"initialValue":{"arguments":[{"id":16553,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16538,"src":"11175:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16551,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"11157:7:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":16552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"11157:17:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":16554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11157:28:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"11126:59:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":16562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16557,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16550,"src":"11216:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":16558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"11216:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":16559,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"11232:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":16560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"11232:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":16561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"11232:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"11216:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3035303a504f4c4943595f53544154455f494e56414c4944","id":16563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11272:36:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_d17247b62deb77899a03f5965413c2eceeaf10a19dd096fa96404e4c4e56e423","typeString":"literal_string \"ERROR:POL-050:POLICY_STATE_INVALID\""},"value":"ERROR:POL-050:POLICY_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d17247b62deb77899a03f5965413c2eceeaf10a19dd096fa96404e4c4e56e423","typeString":"literal_string \"ERROR:POL-050:POLICY_STATE_INVALID\""}],"id":16556,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11195:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11195:123:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16565,"nodeType":"ExpressionStatement","src":"11195:123:74"},{"assignments":[16568],"declarations":[{"constant":false,"id":16568,"mutability":"mutable","name":"bundle","nameLocation":"11401:6:74","nodeType":"VariableDeclaration","scope":16647,"src":"11386:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16567,"nodeType":"UserDefinedTypeName","pathNode":{"id":16566,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"11386:6:74"},"referencedDeclaration":4936,"src":"11386:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16572,"initialValue":{"baseExpression":{"id":16569,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"11410:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16571,"indexExpression":{"id":16570,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"11419:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11410:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11386:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16574,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"11446:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"11446:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11465:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11446:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3035313a42554e444c455f444f45535f4e4f545f4558495354","id":16578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11468:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c8d28aba0b55c77dc14995621b19dd76d0dd4fc213e18d9e4f16eec0d3302e7","typeString":"literal_string \"ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4c8d28aba0b55c77dc14995621b19dd76d0dd4fc213e18d9e4f16eec0d3302e7","typeString":"literal_string \"ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST\""}],"id":16573,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11438:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11438:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16580,"nodeType":"ExpressionStatement","src":"11438:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16582,"name":"_activePolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15715,"src":"11524:15:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16584,"indexExpression":{"id":16583,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"11540:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11524:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11552:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11524:29:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3035323a4e4f5f4143544956455f504f4c49434945535f464f525f42554e444c45","id":16587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11555:45:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d874023565b14265edd0c1a472831bbc0639816bd2e3c506af5ca79b37f4994","typeString":"literal_string \"ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE\""},"value":"ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8d874023565b14265edd0c1a472831bbc0639816bd2e3c506af5ca79b37f4994","typeString":"literal_string \"ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE\""}],"id":16581,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11516:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11516:85:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16589,"nodeType":"ExpressionStatement","src":"11516:85:74"},{"assignments":[16591],"declarations":[{"constant":false,"id":16591,"mutability":"mutable","name":"lockedForPolicyAmount","nameLocation":"11620:21:74","nodeType":"VariableDeclaration","scope":16647,"src":"11612:29:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16590,"name":"uint256","nodeType":"ElementaryTypeName","src":"11612:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16597,"initialValue":{"baseExpression":{"baseExpression":{"id":16592,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"11644:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16594,"indexExpression":{"id":16593,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"11666:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11644:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16596,"indexExpression":{"id":16595,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16538,"src":"11676:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11644:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11612:74:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16599,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"11760:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"11760:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16601,"name":"lockedForPolicyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16591,"src":"11784:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11760:45:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50414e49433a4255432d3035333a554e4c4f434b5f4341504954414c5f544f4f5f424947","id":16603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11819:38:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_77814e7a28acd311f6561f4571dfa56fd4af89762a0ef5863e6c33e0835c7391","typeString":"literal_string \"PANIC:BUC-053:UNLOCK_CAPITAL_TOO_BIG\""},"value":"PANIC:BUC-053:UNLOCK_CAPITAL_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_77814e7a28acd311f6561f4571dfa56fd4af89762a0ef5863e6c33e0835c7391","typeString":"literal_string \"PANIC:BUC-053:UNLOCK_CAPITAL_TOO_BIG\""}],"id":16598,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11739:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11739:128:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16605,"nodeType":"ExpressionStatement","src":"11739:128:74"},{"expression":{"id":16610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16606,"name":"_activePolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15715,"src":"11926:15:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16608,"indexExpression":{"id":16607,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"11942:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11926:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":16609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11955:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11926:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16611,"nodeType":"ExpressionStatement","src":"11926:30:74"},{"expression":{"id":16617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11966:49:74","subExpression":{"baseExpression":{"baseExpression":{"id":16612,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"11973:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16614,"indexExpression":{"id":16613,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"11995:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11973:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16616,"indexExpression":{"id":16615,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16538,"src":"12005:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11973:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16618,"nodeType":"ExpressionStatement","src":"11966:49:74"},{"expression":{"id":16623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16619,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"12059:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"12059:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16622,"name":"lockedForPolicyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16591,"src":"12083:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12059:45:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16624,"nodeType":"ExpressionStatement","src":"12059:45:74"},{"expression":{"id":16630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16625,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"12114:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"12114:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16628,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12133:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12133:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12114:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16631,"nodeType":"ExpressionStatement","src":"12114:34:74"},{"assignments":[16633],"declarations":[{"constant":false,"id":16633,"mutability":"mutable","name":"capacityAmount","nameLocation":"12191:14:74","nodeType":"VariableDeclaration","scope":16647,"src":"12183:22:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16632,"name":"uint256","nodeType":"ElementaryTypeName","src":"12183:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16639,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16634,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"12208:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"12208:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16636,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"12225:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"12225:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12208:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12183:62:74"},{"eventCall":{"arguments":[{"id":16641,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"12284:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16642,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16538,"src":"12294:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16643,"name":"lockedForPolicyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16591,"src":"12305:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16644,"name":"capacityAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"12328:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16640,"name":"LogBundlePolicyReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4909,"src":"12260:23:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256,uint256)"}},"id":16645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12260:83:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16646,"nodeType":"EmitStatement","src":"12255:88:74"}]},"functionSelector":"bb540df6","id":16648,"implemented":true,"kind":"function","modifiers":[{"id":16542,"modifierName":{"id":16541,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"11041:19:74"},"nodeType":"ModifierInvocation","src":"11041:19:74"}],"name":"releasePolicy","nameLocation":"10954:13:74","nodeType":"FunctionDefinition","overrides":{"id":16540,"nodeType":"OverrideSpecifier","overrides":[],"src":"11023:8:74"},"parameters":{"id":16539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16536,"mutability":"mutable","name":"bundleId","nameLocation":"10976:8:74","nodeType":"VariableDeclaration","scope":16648,"src":"10968:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16535,"name":"uint256","nodeType":"ElementaryTypeName","src":"10968:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16538,"mutability":"mutable","name":"processId","nameLocation":"10994:9:74","nodeType":"VariableDeclaration","scope":16648,"src":"10986:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10986:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10967:37:74"},"returnParameters":{"id":16545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16544,"mutability":"mutable","name":"remainingCollateralAmount","nameLocation":"11085:25:74","nodeType":"VariableDeclaration","scope":16648,"src":"11077:33:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16543,"name":"uint256","nodeType":"ElementaryTypeName","src":"11077:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11076:35:74"},"scope":16946,"src":"10945:1405:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16667,"nodeType":"Block","src":"12421:104:74","statements":[{"assignments":[16656],"declarations":[{"constant":false,"id":16656,"mutability":"mutable","name":"tokenId","nameLocation":"12440:7:74","nodeType":"VariableDeclaration","scope":16667,"src":"12432:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16655,"name":"uint256","nodeType":"ElementaryTypeName","src":"12432:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16661,"initialValue":{"expression":{"arguments":[{"id":16658,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16650,"src":"12460:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16657,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"12450:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12450:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4920,"src":"12450:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12432:45:74"},{"expression":{"arguments":[{"id":16664,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16656,"src":"12509:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16662,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"12494:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"id":16663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"12494:14:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":16665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12494:23:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16654,"id":16666,"nodeType":"Return","src":"12487:30:74"}]},"functionSelector":"c41a360a","id":16668,"implemented":true,"kind":"function","modifiers":[],"name":"getOwner","nameLocation":"12365:8:74","nodeType":"FunctionDefinition","parameters":{"id":16651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16650,"mutability":"mutable","name":"bundleId","nameLocation":"12382:8:74","nodeType":"VariableDeclaration","scope":16668,"src":"12374:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16649,"name":"uint256","nodeType":"ElementaryTypeName","src":"12374:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12373:18:74"},"returnParameters":{"id":16654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16668,"src":"12412:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16652,"name":"address","nodeType":"ElementaryTypeName","src":"12412:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12411:9:74"},"scope":16946,"src":"12356:169:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16681,"nodeType":"Block","src":"12600:52:74","statements":[{"expression":{"expression":{"arguments":[{"id":16677,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16670,"src":"12627:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16676,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"12617:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12617:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"12617:25:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"functionReturnParameters":16675,"id":16680,"nodeType":"Return","src":"12610:32:74"}]},"functionSelector":"44c9af28","id":16682,"implemented":true,"kind":"function","modifiers":[],"name":"getState","nameLocation":"12540:8:74","nodeType":"FunctionDefinition","parameters":{"id":16671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16670,"mutability":"mutable","name":"bundleId","nameLocation":"12557:8:74","nodeType":"VariableDeclaration","scope":16682,"src":"12549:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16669,"name":"uint256","nodeType":"ElementaryTypeName","src":"12549:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12548:18:74"},"returnParameters":{"id":16675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16682,"src":"12587:11:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16673,"nodeType":"UserDefinedTypeName","pathNode":{"id":16672,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"12587:11:74"},"referencedDeclaration":4914,"src":"12587:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"src":"12586:13:74"},"scope":16946,"src":"12531:121:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16694,"nodeType":"Block","src":"12729:50:74","statements":[{"expression":{"expression":{"arguments":[{"id":16690,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16684,"src":"12756:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16689,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"12746:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12746:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"filter","nodeType":"MemberAccess","referencedDeclaration":4925,"src":"12746:26:74","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":16688,"id":16693,"nodeType":"Return","src":"12739:33:74"}]},"functionSelector":"2c92fb99","id":16695,"implemented":true,"kind":"function","modifiers":[],"name":"getFilter","nameLocation":"12667:9:74","nodeType":"FunctionDefinition","parameters":{"id":16685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16684,"mutability":"mutable","name":"bundleId","nameLocation":"12685:8:74","nodeType":"VariableDeclaration","scope":16695,"src":"12677:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16683,"name":"uint256","nodeType":"ElementaryTypeName","src":"12677:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12676:18:74"},"returnParameters":{"id":16688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16695,"src":"12715:12:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16686,"name":"bytes","nodeType":"ElementaryTypeName","src":"12715:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12714:14:74"},"scope":16946,"src":"12658:121:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16715,"nodeType":"Block","src":"12856:113:74","statements":[{"assignments":[16704],"declarations":[{"constant":false,"id":16704,"mutability":"mutable","name":"bundle","nameLocation":"12880:6:74","nodeType":"VariableDeclaration","scope":16715,"src":"12866:20:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16703,"nodeType":"UserDefinedTypeName","pathNode":{"id":16702,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"12866:6:74"},"referencedDeclaration":4936,"src":"12866:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16708,"initialValue":{"arguments":[{"id":16706,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16697,"src":"12899:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16705,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"12889:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12889:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"12866:42:74"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16709,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16704,"src":"12925:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"12925:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16711,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16704,"src":"12942:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"12942:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12925:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16701,"id":16714,"nodeType":"Return","src":"12918:44:74"}]},"functionSelector":"bcd5349f","id":16716,"implemented":true,"kind":"function","modifiers":[],"name":"getCapacity","nameLocation":"12797:11:74","nodeType":"FunctionDefinition","parameters":{"id":16698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16697,"mutability":"mutable","name":"bundleId","nameLocation":"12817:8:74","nodeType":"VariableDeclaration","scope":16716,"src":"12809:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16696,"name":"uint256","nodeType":"ElementaryTypeName","src":"12809:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12808:18:74"},"returnParameters":{"id":16701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16716,"src":"12847:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16699,"name":"uint256","nodeType":"ElementaryTypeName","src":"12847:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12846:9:74"},"scope":16946,"src":"12788:181:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16728,"nodeType":"Block","src":"13051:60:74","statements":[{"expression":{"expression":{"arguments":[{"id":16724,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16718,"src":"13078:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16723,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"13068:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13068:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"13068:33:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16722,"id":16727,"nodeType":"Return","src":"13061:40:74"}]},"functionSelector":"3f5d9235","id":16729,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalValueLocked","nameLocation":"12984:19:74","nodeType":"FunctionDefinition","parameters":{"id":16719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16718,"mutability":"mutable","name":"bundleId","nameLocation":"13012:8:74","nodeType":"VariableDeclaration","scope":16729,"src":"13004:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16717,"name":"uint256","nodeType":"ElementaryTypeName","src":"13004:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13003:18:74"},"returnParameters":{"id":16722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16721,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16729,"src":"13042:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16720,"name":"uint256","nodeType":"ElementaryTypeName","src":"13042:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13041:9:74"},"scope":16946,"src":"12975:136:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16741,"nodeType":"Block","src":"13184:54:74","statements":[{"expression":{"expression":{"arguments":[{"id":16737,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16731,"src":"13211:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16736,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"13201:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13201:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"13201:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16735,"id":16740,"nodeType":"Return","src":"13194:34:74"}]},"functionSelector":"1e010439","id":16742,"implemented":true,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"13126:10:74","nodeType":"FunctionDefinition","parameters":{"id":16732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16731,"mutability":"mutable","name":"bundleId","nameLocation":"13145:8:74","nodeType":"VariableDeclaration","scope":16742,"src":"13137:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16730,"name":"uint256","nodeType":"ElementaryTypeName","src":"13137:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13136:18:74"},"returnParameters":{"id":16735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16734,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16742,"src":"13175:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16733,"name":"uint256","nodeType":"ElementaryTypeName","src":"13175:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13174:9:74"},"scope":16946,"src":"13117:121:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16750,"nodeType":"Block","src":"13299:30:74","statements":[{"expression":{"id":16748,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"13316:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"functionReturnParameters":16747,"id":16749,"nodeType":"Return","src":"13309:13:74"}]},"functionSelector":"21df0da7","id":16751,"implemented":true,"kind":"function","modifiers":[],"name":"getToken","nameLocation":"13253:8:74","nodeType":"FunctionDefinition","parameters":{"id":16743,"nodeType":"ParameterList","parameters":[],"src":"13261:2:74"},"returnParameters":{"id":16747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16746,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16751,"src":"13286:11:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"},"typeName":{"id":16745,"nodeType":"UserDefinedTypeName","pathNode":{"id":16744,"name":"BundleToken","nodeType":"IdentifierPath","referencedDeclaration":28751,"src":"13286:11:74"},"referencedDeclaration":28751,"src":"13286:11:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"visibility":"internal"}],"src":"13285:13:74"},"scope":16946,"src":"13244:85:74","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16776,"nodeType":"Block","src":"13407:159:74","statements":[{"assignments":[16761],"declarations":[{"constant":false,"id":16761,"mutability":"mutable","name":"bundle","nameLocation":"13431:6:74","nodeType":"VariableDeclaration","scope":16776,"src":"13417:20:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16760,"nodeType":"UserDefinedTypeName","pathNode":{"id":16759,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"13417:6:74"},"referencedDeclaration":4936,"src":"13417:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16765,"initialValue":{"baseExpression":{"id":16762,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"13440:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16764,"indexExpression":{"id":16763,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16753,"src":"13449:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13440:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13417:41:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16767,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16761,"src":"13476:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"13476:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13495:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13476:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3036303a42554e444c455f444f45535f4e4f545f4558495354","id":16771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13498:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_18e88bfd32eca027f106fb862d7e55871ea316361090327a612bfb4dfe3f0755","typeString":"literal_string \"ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18e88bfd32eca027f106fb862d7e55871ea316361090327a612bfb4dfe3f0755","typeString":"literal_string \"ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST\""}],"id":16766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13468:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13468:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16773,"nodeType":"ExpressionStatement","src":"13468:68:74"},{"expression":{"id":16774,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16761,"src":"13553:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"functionReturnParameters":16758,"id":16775,"nodeType":"Return","src":"13546:13:74"}]},"functionSelector":"2d0821b7","id":16777,"implemented":true,"kind":"function","modifiers":[],"name":"getBundle","nameLocation":"13344:9:74","nodeType":"FunctionDefinition","parameters":{"id":16754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16753,"mutability":"mutable","name":"bundleId","nameLocation":"13362:8:74","nodeType":"VariableDeclaration","scope":16777,"src":"13354:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16752,"name":"uint256","nodeType":"ElementaryTypeName","src":"13354:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13353:18:74"},"returnParameters":{"id":16758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16777,"src":"13392:13:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16756,"nodeType":"UserDefinedTypeName","pathNode":{"id":16755,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"13392:6:74"},"referencedDeclaration":4936,"src":"13392:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"src":"13391:15:74"},"scope":16946,"src":"13335:231:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16784,"nodeType":"Block","src":"13620:36:74","statements":[{"expression":{"id":16782,"name":"_bundleCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"13637:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16781,"id":16783,"nodeType":"Return","src":"13630:19:74"}]},"functionSelector":"18442e63","id":16785,"implemented":true,"kind":"function","modifiers":[],"name":"bundles","nameLocation":"13581:7:74","nodeType":"FunctionDefinition","parameters":{"id":16778,"nodeType":"ParameterList","parameters":[],"src":"13588:2:74"},"returnParameters":{"id":16781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16780,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16785,"src":"13611:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16779,"name":"uint256","nodeType":"ElementaryTypeName","src":"13611:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13610:9:74"},"scope":16946,"src":"13572:84:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16796,"nodeType":"Block","src":"13737:64:74","statements":[{"expression":{"baseExpression":{"id":16792,"name":"_unburntBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"13754:28:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16794,"indexExpression":{"id":16793,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16787,"src":"13783:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13754:40:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16791,"id":16795,"nodeType":"Return","src":"13747:47:74"}]},"functionSelector":"c559783e","id":16797,"implemented":true,"kind":"function","modifiers":[],"name":"unburntBundles","nameLocation":"13671:14:74","nodeType":"FunctionDefinition","parameters":{"id":16788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16787,"mutability":"mutable","name":"riskpoolId","nameLocation":"13694:10:74","nodeType":"VariableDeclaration","scope":16797,"src":"13686:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16786,"name":"uint256","nodeType":"ElementaryTypeName","src":"13686:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13685:20:74"},"returnParameters":{"id":16791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16797,"src":"13728:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16789,"name":"uint256","nodeType":"ElementaryTypeName","src":"13728:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13727:9:74"},"scope":16946,"src":"13662:139:74","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16811,"nodeType":"Block","src":"13892:78:74","statements":[{"expression":{"id":16809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16803,"name":"_poolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16801,"src":"13902:15:74","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6f6c","id":16806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13955:6:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":16805,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"13935:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":16807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13935:27:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16804,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"13920:14:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":16808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13920:43:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"src":"13902:61:74","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":16810,"nodeType":"ExpressionStatement","src":"13902:61:74"}]},"id":16812,"implemented":true,"kind":"function","modifiers":[],"name":"_getPoolController","nameLocation":"13816:18:74","nodeType":"FunctionDefinition","parameters":{"id":16798,"nodeType":"ParameterList","parameters":[],"src":"13834:2:74"},"returnParameters":{"id":16802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16801,"mutability":"mutable","name":"_poolController","nameLocation":"13875:15:74","nodeType":"VariableDeclaration","scope":16812,"src":"13860:30:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":16800,"nodeType":"UserDefinedTypeName","pathNode":{"id":16799,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"13860:14:74"},"referencedDeclaration":21207,"src":"13860:14:74","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"}],"src":"13859:32:74"},"scope":16946,"src":"13807:163:74","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":16843,"nodeType":"Block","src":"14047:265:74","statements":[{"assignments":[16822],"declarations":[{"constant":false,"id":16822,"mutability":"mutable","name":"oldState","nameLocation":"14069:8:74","nodeType":"VariableDeclaration","scope":16843,"src":"14057:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16821,"nodeType":"UserDefinedTypeName","pathNode":{"id":16820,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"14057:11:74"},"referencedDeclaration":4914,"src":"14057:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"id":16826,"initialValue":{"arguments":[{"id":16824,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16814,"src":"14089:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16823,"name":"getState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16682,"src":"14080:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_BundleState_$4914_$","typeString":"function (uint256) view returns (enum IBundle.BundleState)"}},"id":16825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14080:18:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"VariableDeclarationStatement","src":"14057:41:74"},{"expression":{"arguments":[{"id":16828,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16822,"src":"14131:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},{"id":16829,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16817,"src":"14141:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16827,"name":"_checkStateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16945,"src":"14109:21:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_BundleState_$4914_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (enum IBundle.BundleState,enum IBundle.BundleState) pure"}},"id":16830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14109:41:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16831,"nodeType":"ExpressionStatement","src":"14109:41:74"},{"expression":{"arguments":[{"id":16833,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16814,"src":"14170:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16834,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16817,"src":"14180:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16832,"name":"_setState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16868,"src":"14160:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState)"}},"id":16835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14160:29:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16836,"nodeType":"ExpressionStatement","src":"14160:29:74"},{"eventCall":{"arguments":[{"id":16838,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16814,"src":"14276:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16839,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16822,"src":"14286:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},{"id":16840,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16817,"src":"14296:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16837,"name":"LogBundleStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4861,"src":"14254:21:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState,enum IBundle.BundleState)"}},"id":16841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14254:51:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16842,"nodeType":"EmitStatement","src":"14249:56:74"}]},"id":16844,"implemented":true,"kind":"function","modifiers":[],"name":"_changeState","nameLocation":"13985:12:74","nodeType":"FunctionDefinition","parameters":{"id":16818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16814,"mutability":"mutable","name":"bundleId","nameLocation":"14006:8:74","nodeType":"VariableDeclaration","scope":16844,"src":"13998:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16813,"name":"uint256","nodeType":"ElementaryTypeName","src":"13998:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16817,"mutability":"mutable","name":"newState","nameLocation":"14028:8:74","nodeType":"VariableDeclaration","scope":16844,"src":"14016:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16816,"nodeType":"UserDefinedTypeName","pathNode":{"id":16815,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"14016:11:74"},"referencedDeclaration":4914,"src":"14016:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"src":"13997:40:74"},"returnParameters":{"id":16819,"nodeType":"ParameterList","parameters":[],"src":"14047:0:74"},"scope":16946,"src":"13976:336:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16867,"nodeType":"Block","src":"14386:108:74","statements":[{"expression":{"id":16857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":16852,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"14396:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16854,"indexExpression":{"id":16853,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16846,"src":"14405:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14396:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"id":16855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"14396:24:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16856,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"14423:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14396:35:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"id":16858,"nodeType":"ExpressionStatement","src":"14396:35:74"},{"expression":{"id":16865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":16859,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"14441:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16861,"indexExpression":{"id":16860,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16846,"src":"14450:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14441:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"id":16862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"14441:28:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16863,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"14472:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"14472:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14441:46:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16866,"nodeType":"ExpressionStatement","src":"14441:46:74"}]},"id":16868,"implemented":true,"kind":"function","modifiers":[],"name":"_setState","nameLocation":"14327:9:74","nodeType":"FunctionDefinition","parameters":{"id":16850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16846,"mutability":"mutable","name":"bundleId","nameLocation":"14345:8:74","nodeType":"VariableDeclaration","scope":16868,"src":"14337:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16845,"name":"uint256","nodeType":"ElementaryTypeName","src":"14337:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16849,"mutability":"mutable","name":"newState","nameLocation":"14367:8:74","nodeType":"VariableDeclaration","scope":16868,"src":"14355:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16848,"nodeType":"UserDefinedTypeName","pathNode":{"id":16847,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"14355:11:74"},"referencedDeclaration":4914,"src":"14355:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"src":"14336:40:74"},"returnParameters":{"id":16851,"nodeType":"ParameterList","parameters":[],"src":"14386:0:74"},"scope":16946,"src":"14318:176:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16944,"nodeType":"Block","src":"14612:858:74","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16877,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16871,"src":"14626:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16878,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14638:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"14638:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14626:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16895,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16871,"src":"14856:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16896,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14868:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Locked","nodeType":"MemberAccess","referencedDeclaration":4911,"src":"14868:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14856:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16913,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16871,"src":"15086:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16914,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"15098:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"15098:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"15086:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16926,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16871,"src":"15282:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16927,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"15294:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"15294:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"15282:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16939,"nodeType":"Block","src":"15390:74:74","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a424f432d3037343a494e495449414c5f53544154455f4e4f545f48414e444c4544","id":16936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15411:41:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_90b0055e92488337515434f01755801bd01b043fd63366b1e22203e0ea972548","typeString":"literal_string \"ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED\""},"value":"ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90b0055e92488337515434f01755801bd01b043fd63366b1e22203e0ea972548","typeString":"literal_string \"ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED\""}],"id":16935,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"15404:6:74","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":16937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15404:49:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16938,"nodeType":"ExpressionStatement","src":"15404:49:74"}]},"id":16940,"nodeType":"IfStatement","src":"15278:186:74","trueBody":{"id":16934,"nodeType":"Block","src":"15314:70:74","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a4255432d3037333a4255524e45445f49535f46494e414c5f5354415445","id":16931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15335:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_b2dda52bf0283d27e4ffc8f6319b7fb1aa100314af58bb09bcaaf538af49aecd","typeString":"literal_string \"ERROR:BUC-073:BURNED_IS_FINAL_STATE\""},"value":"ERROR:BUC-073:BURNED_IS_FINAL_STATE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b2dda52bf0283d27e4ffc8f6319b7fb1aa100314af58bb09bcaaf538af49aecd","typeString":"literal_string \"ERROR:BUC-073:BURNED_IS_FINAL_STATE\""}],"id":16930,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"15328:6:74","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":16932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15328:45:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16933,"nodeType":"ExpressionStatement","src":"15328:45:74"}]}},"id":16941,"nodeType":"IfStatement","src":"15082:382:74","trueBody":{"id":16925,"nodeType":"Block","src":"15118:154:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16918,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"15157:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16919,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"15169:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"15169:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"15157:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3037323a434c4f5345445f494e56414c49445f5452414e534954494f4e","id":16922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15206:41:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6f938bbd1284ec77e45bef46484f59fa0bcba98ae32543cf1059a51f233eec0","typeString":"literal_string \"ERROR:BUC-072:CLOSED_INVALID_TRANSITION\""},"value":"ERROR:BUC-072:CLOSED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6f938bbd1284ec77e45bef46484f59fa0bcba98ae32543cf1059a51f233eec0","typeString":"literal_string \"ERROR:BUC-072:CLOSED_INVALID_TRANSITION\""}],"id":16917,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15132:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15132:129:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16924,"nodeType":"ExpressionStatement","src":"15132:129:74"}]}},"id":16942,"nodeType":"IfStatement","src":"14852:612:74","trueBody":{"id":16912,"nodeType":"Block","src":"14888:188:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16900,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"14927:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16901,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14939:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"14939:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14927:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16904,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"14961:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16905,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14973:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"14973:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14961:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14927:64:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3037313a4c4f434b45445f494e56414c49445f5452414e534954494f4e","id":16909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15010:41:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5c1965b929932d1ff278545ca669b4260ba119d29824ba96b9562d9415628fa","typeString":"literal_string \"ERROR:BUC-071:LOCKED_INVALID_TRANSITION\""},"value":"ERROR:BUC-071:LOCKED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5c1965b929932d1ff278545ca669b4260ba119d29824ba96b9562d9415628fa","typeString":"literal_string \"ERROR:BUC-071:LOCKED_INVALID_TRANSITION\""}],"id":16899,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14902:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14902:163:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16911,"nodeType":"ExpressionStatement","src":"14902:163:74"}]}},"id":16943,"nodeType":"IfStatement","src":"14622:842:74","trueBody":{"id":16894,"nodeType":"Block","src":"14658:188:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16882,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"14697:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16883,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14709:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Locked","nodeType":"MemberAccess","referencedDeclaration":4911,"src":"14709:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14697:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16886,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"14731:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16887,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14743:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"14743:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14731:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14697:64:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3037303a4143544956455f494e56414c49445f5452414e534954494f4e","id":16891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14780:41:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_57e2fa2e1f46bf1826c5847f0b8b0e2dfce8ed4b21dd5b3ef33697380369b0d0","typeString":"literal_string \"ERROR:BUC-070:ACTIVE_INVALID_TRANSITION\""},"value":"ERROR:BUC-070:ACTIVE_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_57e2fa2e1f46bf1826c5847f0b8b0e2dfce8ed4b21dd5b3ef33697380369b0d0","typeString":"literal_string \"ERROR:BUC-070:ACTIVE_INVALID_TRANSITION\""}],"id":16881,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14672:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14672:163:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16893,"nodeType":"ExpressionStatement","src":"14672:163:74"}]}}]},"id":16945,"implemented":true,"kind":"function","modifiers":[],"name":"_checkStateTransition","nameLocation":"14509:21:74","nodeType":"FunctionDefinition","parameters":{"id":16875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16871,"mutability":"mutable","name":"oldState","nameLocation":"14543:8:74","nodeType":"VariableDeclaration","scope":16945,"src":"14531:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16870,"nodeType":"UserDefinedTypeName","pathNode":{"id":16869,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"14531:11:74"},"referencedDeclaration":4914,"src":"14531:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"},{"constant":false,"id":16874,"mutability":"mutable","name":"newState","nameLocation":"14565:8:74","nodeType":"VariableDeclaration","scope":16945,"src":"14553:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16873,"nodeType":"UserDefinedTypeName","pathNode":{"id":16872,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"14553:11:74"},"referencedDeclaration":4914,"src":"14553:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"src":"14530:44:74"},"returnParameters":{"id":16876,"nodeType":"ParameterList","parameters":[],"src":"14612:0:74"},"scope":16946,"src":"14500:970:74","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":16947,"src":"2400:13072:74"}],"src":"39:15434:74"},"id":74},"contracts/modules/ComponentController.sol":{"ast":{"absolutePath":"contracts/modules/ComponentController.sol","exportedSymbols":{"Address":[10496],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IComponent":[2988],"IComponentEvents":[5073],"IOracle":[3022],"IPolicy":[5433],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059]},"id":17948,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":16948,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:75"},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":16949,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":26414,"src":"66:38:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":16950,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":2989,"src":"106:69:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IOracle.sol","file":"@etherisc/gif-interface/contracts/components/IOracle.sol","id":16951,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":3023,"src":"177:66:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":16952,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":3080,"src":"245:67:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","file":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","id":16953,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":3313,"src":"314:68:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol","file":"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol","id":16954,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":5074,"src":"384:72:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":16955,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":11440,"src":"458:65:75","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16957,"name":"IComponentEvents","nodeType":"IdentifierPath","referencedDeclaration":5073,"src":"4050:16:75"},"id":16958,"nodeType":"InheritanceSpecifier","src":"4050:16:75"},{"baseName":{"id":16959,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"4073:14:75"},"id":16960,"nodeType":"InheritanceSpecifier","src":"4073:14:75"}],"contractDependencies":[5073,8059,10518,26413],"contractKind":"contract","documentation":{"id":16956,"nodeType":"StructuredDocumentation","src":"527:3482:75","text":"The smart contract provides functionality to manage and control components in a system.\nThe contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types.\nIt also includes modifiers to restrict access to certain functions based on the caller's role.\nFunctions:\n- `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal.\n- `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets.\n- `exists()`: Checks if a component with the given ID exists in the system.\n- `approve()`: Approves a component with the given ID, changing its state to \"Active\" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping.\n- `decline()`: Changes the state of a component with the given ID to \"Declined\" and emits an event. It also calls the `declineCallback` function of the component.\n- `suspend()`: Suspends a component with the given ID by changing its state to \"Suspended\" and emitting an event. It also calls the `suspendCallback` function of the component.\n- `resume()`: Resumes a component with the given ID by changing its state to \"Active\" and emitting an event. It also calls the `resumeCallback` function of the component.\n- `pause()`: Pauses a component with the given ID by changing its state to \"Paused\" and emitting an event. It also calls the `pauseCallback` function of the component.\n- `unpause()`: Unpauses a component with the given ID by changing its state to \"Active\" and emitting an event. It also calls the `unpauseCallback` function of the component.\n- `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to \"Archived\" and emitting an event. It also calls the `archiveCallback` function of the component.\n- `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to \"Archived\" and emitting an event. It also calls the `archiveCallback` function of the component.\n- `getComponent()`: Retrieves the component with the given ID.\n- `getComponentId()`: Retrieves the ID of a registered component given its address.\n- `getComponentType()`: Retrieves the component type of a given component ID.\n- `getComponentState()`: Retrieves the state of the component with the given ID.\n- `getOracleId()`: Retrieves the oracle ID at the specified index.\n- `getRiskpoolId()`: Retrieves the risk pool ID at the specified index.\n- `getProductId()`: Retrieves the product ID at the specified index.\n- `getRequiredRole()`: Retrieves the required role for a given component type.\n- `components()`: Returns the number of components currently stored in the contract.\n- `products()`: Returns the number of products in the `_products` set.\n- `oracles()`: Returns the number of oracles registered in the `_oracles` set.\n- `riskpools()`: Returns the number of risk pools in the set.\nThe contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions.\nThe contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations."},"fullyImplemented":true,"id":17947,"linearizedBaseContracts":[17947,26413,8059,10518,5073],"name":"ComponentController","nameLocation":"4022:19:75","nodeType":"ContractDefinition","nodes":[{"id":16964,"libraryName":{"id":16961,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":11439,"src":"4104:13:75"},"nodeType":"UsingForDirective","src":"4098:46:75","typeName":{"id":16963,"nodeType":"UserDefinedTypeName","pathNode":{"id":16962,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"4122:21:75"},"referencedDeclaration":11309,"src":"4122:21:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"constant":false,"id":16969,"mutability":"mutable","name":"_componentById","nameLocation":"4191:14:75","nodeType":"VariableDeclaration","scope":17947,"src":"4152:53:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IComponent_$2988_$","typeString":"mapping(uint256 => contract IComponent)"},"typeName":{"id":16968,"keyType":{"id":16965,"name":"uint256","nodeType":"ElementaryTypeName","src":"4160:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4152:30:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IComponent_$2988_$","typeString":"mapping(uint256 => contract IComponent)"},"valueType":{"id":16967,"nodeType":"UserDefinedTypeName","pathNode":{"id":16966,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"4171:10:75"},"referencedDeclaration":2988,"src":"4171:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}},"visibility":"private"},{"constant":false,"id":16973,"mutability":"mutable","name":"_componentIdByName","nameLocation":"4248:18:75","nodeType":"VariableDeclaration","scope":17947,"src":"4212:54:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":16972,"keyType":{"id":16970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4220:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4212:27:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":16971,"name":"uint256","nodeType":"ElementaryTypeName","src":"4231:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":16977,"mutability":"mutable","name":"_componentIdByAddress","nameLocation":"4309:21:75","nodeType":"VariableDeclaration","scope":17947,"src":"4273:57:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":16976,"keyType":{"id":16974,"name":"address","nodeType":"ElementaryTypeName","src":"4281:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4273:27:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":16975,"name":"uint256","nodeType":"ElementaryTypeName","src":"4292:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":16982,"mutability":"mutable","name":"_componentState","nameLocation":"4393:15:75","nodeType":"VariableDeclaration","scope":17947,"src":"4339:69:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_enum$_ComponentState_$2899_$","typeString":"mapping(uint256 => enum IComponent.ComponentState)"},"typeName":{"id":16981,"keyType":{"id":16978,"name":"uint256","nodeType":"ElementaryTypeName","src":"4347:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4339:45:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_enum$_ComponentState_$2899_$","typeString":"mapping(uint256 => enum IComponent.ComponentState)"},"valueType":{"id":16980,"nodeType":"UserDefinedTypeName","pathNode":{"id":16979,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"4358:25:75"},"referencedDeclaration":2899,"src":"4358:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}},"visibility":"private"},{"constant":false,"id":16985,"mutability":"mutable","name":"_products","nameLocation":"4447:9:75","nodeType":"VariableDeclaration","scope":17947,"src":"4417:39:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":16984,"nodeType":"UserDefinedTypeName","pathNode":{"id":16983,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"4417:21:75"},"referencedDeclaration":11309,"src":"4417:21:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"private"},{"constant":false,"id":16988,"mutability":"mutable","name":"_oracles","nameLocation":"4493:8:75","nodeType":"VariableDeclaration","scope":17947,"src":"4463:38:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":16987,"nodeType":"UserDefinedTypeName","pathNode":{"id":16986,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"4463:21:75"},"referencedDeclaration":11309,"src":"4463:21:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"private"},{"constant":false,"id":16991,"mutability":"mutable","name":"_riskpools","nameLocation":"4538:10:75","nodeType":"VariableDeclaration","scope":17947,"src":"4508:40:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":16990,"nodeType":"UserDefinedTypeName","pathNode":{"id":16989,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"4508:21:75"},"referencedDeclaration":11309,"src":"4508:21:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"private"},{"constant":false,"id":16993,"mutability":"mutable","name":"_componentCount","nameLocation":"4571:15:75","nodeType":"VariableDeclaration","scope":17947,"src":"4555:31:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16992,"name":"uint256","nodeType":"ElementaryTypeName","src":"4555:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":16997,"mutability":"mutable","name":"_policyFlowByProductId","nameLocation":"4674:22:75","nodeType":"VariableDeclaration","scope":17947,"src":"4595:101:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":16996,"keyType":{"id":16994,"name":"uint256","nodeType":"ElementaryTypeName","src":"4603:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4595:70:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":16995,"name":"address","nodeType":"ElementaryTypeName","src":"4631:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"body":{"id":17010,"nodeType":"Block","src":"4742:172:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":17000,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4775:10:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4775:12:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"436f6d706f6e656e744f776e657253657276696365","id":17003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4811:23:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""},"value":"ComponentOwnerService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""}],"id":17002,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4791:19:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":17004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4791:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4775:60:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030313a4e4f545f434f4d504f4e454e545f4f574e45525f53455256494345","id":17006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4850:43:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b163f71e59f0a392de25481a553757716afafc14f2c0ddf4ef8779c20751707","typeString":"literal_string \"ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE\""},"value":"ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2b163f71e59f0a392de25481a553757716afafc14f2c0ddf4ef8779c20751707","typeString":"literal_string \"ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE\""}],"id":16999,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4753:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4753:141:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17008,"nodeType":"ExpressionStatement","src":"4753:141:75"},{"id":17009,"nodeType":"PlaceholderStatement","src":"4905:1:75"}]},"id":17011,"name":"onlyComponentOwnerService","nameLocation":"4714:25:75","nodeType":"ModifierDefinition","parameters":{"id":16998,"nodeType":"ParameterList","parameters":[],"src":"4739:2:75"},"src":"4705:209:75","virtual":false,"visibility":"internal"},{"body":{"id":17024,"nodeType":"Block","src":"4961:176:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":17014,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4994:10:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4994:12:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":17017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5030:25:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"id":17016,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5010:19:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":17018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5010:46:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4994:62:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030323a4e4f545f494e5354414e43455f4f50455241544f525f53455256494345","id":17020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5071:45:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_130007efea4d49cc157bd5faf2f1c80f98e50627fe669a9a215b28142c1ee23f","typeString":"literal_string \"ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE\""},"value":"ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_130007efea4d49cc157bd5faf2f1c80f98e50627fe669a9a215b28142c1ee23f","typeString":"literal_string \"ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE\""}],"id":17013,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4972:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4972:145:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17022,"nodeType":"ExpressionStatement","src":"4972:145:75"},{"id":17023,"nodeType":"PlaceholderStatement","src":"5128:1:75"}]},"id":17025,"name":"onlyInstanceOperatorService","nameLocation":"4931:27:75","nodeType":"ModifierDefinition","parameters":{"id":17012,"nodeType":"ParameterList","parameters":[],"src":"4958:2:75"},"src":"4922:215:75","virtual":false,"visibility":"internal"},{"body":{"id":17081,"nodeType":"Block","src":"5244:667:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":17034,"name":"_componentIdByAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16977,"src":"5292:21:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17039,"indexExpression":{"arguments":[{"id":17037,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5322:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5314:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17035,"name":"address","nodeType":"ElementaryTypeName","src":"5314:7:75","typeDescriptions":{}}},"id":17038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5314:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5292:41:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5337:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5292:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030333a434f4d504f4e454e545f414c52454144595f455849535453","id":17042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5340:40:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ae3a1e2de2af7e4b795f54ca41064c73c9d3d29ac084b6bc16d97b27e04e8c5","typeString":"literal_string \"ERROR:CCR-003:COMPONENT_ALREADY_EXISTS\""},"value":"ERROR:CCR-003:COMPONENT_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5ae3a1e2de2af7e4b795f54ca41064c73c9d3d29ac084b6bc16d97b27e04e8c5","typeString":"literal_string \"ERROR:CCR-003:COMPONENT_ALREADY_EXISTS\""}],"id":17033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5284:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5284:97:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17044,"nodeType":"ExpressionStatement","src":"5284:97:75"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":17046,"name":"_componentIdByName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16973,"src":"5400:18:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":17050,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17047,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5419:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getName","nodeType":"MemberAccess","referencedDeclaration":2920,"src":"5419:17:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5419:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5400:39:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5443:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5400:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030343a434f4d504f4e454e545f4e414d455f414c52454144595f455849535453","id":17053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5446:45:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_db0e727d540281d778747629fde13ba11de87883dd7bb058b220298f1d595860","typeString":"literal_string \"ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS\""},"value":"ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_db0e727d540281d778747629fde13ba11de87883dd7bb058b220298f1d595860","typeString":"literal_string \"ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS\""}],"id":17045,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5392:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5392:100:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17055,"nodeType":"ExpressionStatement","src":"5392:100:75"},{"assignments":[17057],"declarations":[{"constant":false,"id":17057,"mutability":"mutable","name":"id","nameLocation":"5563:2:75","nodeType":"VariableDeclaration","scope":17081,"src":"5555:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17056,"name":"uint256","nodeType":"ElementaryTypeName","src":"5555:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17061,"initialValue":{"arguments":[{"id":17059,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5586:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17058,"name":"_persistComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17170,"src":"5568:17:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IComponent_$2988_$returns$_t_uint256_$","typeString":"function (contract IComponent) returns (uint256)"}},"id":17060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5568:28:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5555:41:75"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17063,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5695:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getName","nodeType":"MemberAccess","referencedDeclaration":2920,"src":"5695:17:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5695:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17066,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5729:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getType","nodeType":"MemberAccess","referencedDeclaration":2931,"src":"5729:17:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_enum$_ComponentType_$2891_$","typeString":"function () view external returns (enum IComponent.ComponentType)"}},"id":17068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5729:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},{"arguments":[{"id":17071,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5771:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5763:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17069,"name":"address","nodeType":"ElementaryTypeName","src":"5763:7:75","typeDescriptions":{}}},"id":17072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5763:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17073,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17057,"src":"5796:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17062,"name":"LogComponentProposed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5034,"src":"5660:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_ComponentType_$2891_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,enum IComponent.ComponentType,address,uint256)"}},"id":17074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5660:139:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17075,"nodeType":"EmitStatement","src":"5655:144:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17076,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5875:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proposalCallback","nodeType":"MemberAccess","referencedDeclaration":2966,"src":"5875:26:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5875:28:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17080,"nodeType":"ExpressionStatement","src":"5875:28:75"}]},"functionSelector":"01267951","id":17082,"implemented":true,"kind":"function","modifiers":[{"id":17031,"modifierName":{"id":17030,"name":"onlyComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":17011,"src":"5212:25:75"},"nodeType":"ModifierInvocation","src":"5212:25:75"}],"name":"propose","nameLocation":"5154:7:75","nodeType":"FunctionDefinition","parameters":{"id":17029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17028,"mutability":"mutable","name":"component","nameLocation":"5173:9:75","nodeType":"VariableDeclaration","scope":17082,"src":"5162:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17027,"nodeType":"UserDefinedTypeName","pathNode":{"id":17026,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"5162:10:75"},"referencedDeclaration":2988,"src":"5162:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"5161:22:75"},"returnParameters":{"id":17032,"nodeType":"ParameterList","parameters":[],"src":"5244:0:75"},"scope":17947,"src":"5145:766:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17169,"nodeType":"Block","src":"6021:704:75","statements":[{"expression":{"id":17091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6068:17:75","subExpression":{"id":17090,"name":"_componentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16993,"src":"6068:15:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17092,"nodeType":"ExpressionStatement","src":"6068:17:75"},{"expression":{"id":17095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17093,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6096:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17094,"name":"_componentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16993,"src":"6101:15:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6096:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17096,"nodeType":"ExpressionStatement","src":"6096:20:75"},{"expression":{"arguments":[{"id":17098,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6177:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17099,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"6181:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"6181:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Proposed","nodeType":"MemberAccess","referencedDeclaration":2893,"src":"6181:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17097,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"6164:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6164:52:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17103,"nodeType":"ExpressionStatement","src":"6164:52:75"},{"expression":{"arguments":[{"id":17107,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6243:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17104,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6227:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setId","nodeType":"MemberAccess","referencedDeclaration":2915,"src":"6227:15:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":17108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6227:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17109,"nodeType":"ExpressionStatement","src":"6227:19:75"},{"expression":{"id":17114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17110,"name":"_componentById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16969,"src":"6302:14:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IComponent_$2988_$","typeString":"mapping(uint256 => contract IComponent)"}},"id":17112,"indexExpression":{"id":17111,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6317:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6302:18:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17113,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6323:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"src":"6302:30:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17115,"nodeType":"ExpressionStatement","src":"6302:30:75"},{"expression":{"id":17122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17116,"name":"_componentIdByName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16973,"src":"6343:18:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":17120,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17117,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6362:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getName","nodeType":"MemberAccess","referencedDeclaration":2920,"src":"6362:17:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6362:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6343:39:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17121,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6385:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6343:44:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17123,"nodeType":"ExpressionStatement","src":"6343:44:75"},{"expression":{"id":17131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17124,"name":"_componentIdByAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16977,"src":"6398:21:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17129,"indexExpression":{"arguments":[{"id":17127,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6428:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6420:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17125,"name":"address","nodeType":"ElementaryTypeName","src":"6420:7:75","typeDescriptions":{}}},"id":17128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6420:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6398:41:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17130,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6442:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6398:46:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17132,"nodeType":"ExpressionStatement","src":"6398:46:75"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17133,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6500:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":2947,"src":"6500:19:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":17135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6500:21:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17144,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6579:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isOracle","nodeType":"MemberAccess","referencedDeclaration":2952,"src":"6579:18:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":17146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6579:20:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17155,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6656:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":2957,"src":"6656:20:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":17157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6656:22:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17166,"nodeType":"IfStatement","src":"6652:66:75","trueBody":{"id":17165,"nodeType":"Block","src":"6680:38:75","statements":[{"expression":{"arguments":[{"id":17161,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16991,"src":"6700:10:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17162,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6712:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17158,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"6682:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11330,"src":"6682:17:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":17163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6682:33:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17164,"nodeType":"ExpressionStatement","src":"6682:33:75"}]}},"id":17167,"nodeType":"IfStatement","src":"6575:143:75","trueBody":{"id":17154,"nodeType":"Block","src":"6601:36:75","statements":[{"expression":{"arguments":[{"id":17150,"name":"_oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"6621:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17151,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6631:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17147,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"6603:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11330,"src":"6603:17:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":17152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6603:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17153,"nodeType":"ExpressionStatement","src":"6603:31:75"}]}},"id":17168,"nodeType":"IfStatement","src":"6496:222:75","trueBody":{"id":17143,"nodeType":"Block","src":"6523:37:75","statements":[{"expression":{"arguments":[{"id":17139,"name":"_products","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"6543:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17140,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6554:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17136,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"6525:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11330,"src":"6525:17:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":17141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6525:32:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17142,"nodeType":"ExpressionStatement","src":"6525:32:75"}]}}]},"id":17170,"implemented":true,"kind":"function","modifiers":[],"name":"_persistComponent","nameLocation":"5928:17:75","nodeType":"FunctionDefinition","parameters":{"id":17086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17085,"mutability":"mutable","name":"component","nameLocation":"5957:9:75","nodeType":"VariableDeclaration","scope":17170,"src":"5946:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17084,"nodeType":"UserDefinedTypeName","pathNode":{"id":17083,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"5946:10:75"},"referencedDeclaration":2988,"src":"5946:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"5945:22:75"},"returnParameters":{"id":17089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17088,"mutability":"mutable","name":"id","nameLocation":"6012:2:75","nodeType":"VariableDeclaration","scope":17170,"src":"6004:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17087,"name":"uint256","nodeType":"ElementaryTypeName","src":"6004:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6003:12:75"},"scope":17947,"src":"5919:806:75","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17195,"nodeType":"Block","src":"6787:112:75","statements":[{"assignments":[17179],"declarations":[{"constant":false,"id":17179,"mutability":"mutable","name":"component","nameLocation":"6809:9:75","nodeType":"VariableDeclaration","scope":17195,"src":"6798:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17178,"nodeType":"UserDefinedTypeName","pathNode":{"id":17177,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"6798:10:75"},"referencedDeclaration":2988,"src":"6798:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17183,"initialValue":{"baseExpression":{"id":17180,"name":"_componentById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16969,"src":"6821:14:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IComponent_$2988_$","typeString":"mapping(uint256 => contract IComponent)"}},"id":17182,"indexExpression":{"id":17181,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17172,"src":"6836:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6821:18:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"6798:41:75"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":17186,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17179,"src":"6866:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6858:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17184,"name":"address","nodeType":"ElementaryTypeName","src":"6858:7:75","typeDescriptions":{}}},"id":17187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6858:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":17190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6888:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6880:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17188,"name":"address","nodeType":"ElementaryTypeName","src":"6880:7:75","typeDescriptions":{}}},"id":17191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6880:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6858:32:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17193,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6857:34:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17176,"id":17194,"nodeType":"Return","src":"6850:41:75"}]},"functionSelector":"4f558e79","id":17196,"implemented":true,"kind":"function","modifiers":[],"name":"exists","nameLocation":"6742:6:75","nodeType":"FunctionDefinition","parameters":{"id":17173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17172,"mutability":"mutable","name":"id","nameLocation":"6757:2:75","nodeType":"VariableDeclaration","scope":17196,"src":"6749:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17171,"name":"uint256","nodeType":"ElementaryTypeName","src":"6749:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6748:12:75"},"returnParameters":{"id":17176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17196,"src":"6781:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17174,"name":"bool","nodeType":"ElementaryTypeName","src":"6781:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6780:6:75"},"scope":17947,"src":"6733:166:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17244,"nodeType":"Block","src":"6998:396:75","statements":[{"expression":{"arguments":[{"id":17204,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17198,"src":"7022:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17205,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"7026:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"7026:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"7026:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17203,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"7009:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7009:50:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17209,"nodeType":"ExpressionStatement","src":"7009:50:75"},{"assignments":[17212],"declarations":[{"constant":false,"id":17212,"mutability":"mutable","name":"component","nameLocation":"7081:9:75","nodeType":"VariableDeclaration","scope":17244,"src":"7070:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17211,"nodeType":"UserDefinedTypeName","pathNode":{"id":17210,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"7070:10:75"},"referencedDeclaration":2988,"src":"7070:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17216,"initialValue":{"arguments":[{"id":17214,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17198,"src":"7106:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17213,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"7093:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7093:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"7070:39:75"},{"condition":{"arguments":[{"id":17218,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17198,"src":"7136:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17217,"name":"isProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17725,"src":"7126:9:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":17219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7126:13:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17234,"nodeType":"IfStatement","src":"7122:119:75","trueBody":{"id":17233,"nodeType":"Block","src":"7141:100:75","statements":[{"expression":{"id":17231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17220,"name":"_policyFlowByProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16997,"src":"7156:22:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":17222,"indexExpression":{"id":17221,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17198,"src":"7179:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7156:26:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":17226,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17212,"src":"7202:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7194:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17224,"name":"address","nodeType":"ElementaryTypeName","src":"7194:7:75","typeDescriptions":{}}},"id":17227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7194:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17223,"name":"IProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"7185:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProduct_$3079_$","typeString":"type(contract IProduct)"}},"id":17228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7185:28:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"id":17229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicyFlow","nodeType":"MemberAccess","referencedDeclaration":3053,"src":"7185:42:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":17230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7185:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7156:73:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17232,"nodeType":"ExpressionStatement","src":"7156:73:75"}]}},{"eventCall":{"arguments":[{"id":17236,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17198,"src":"7279:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17235,"name":"LogComponentApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5038,"src":"7258:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7258:24:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17238,"nodeType":"EmitStatement","src":"7253:29:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17239,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17212,"src":"7358:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approvalCallback","nodeType":"MemberAccess","referencedDeclaration":2969,"src":"7358:26:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7358:28:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17243,"nodeType":"ExpressionStatement","src":"7358:28:75"}]},"functionSelector":"b759f954","id":17245,"implemented":true,"kind":"function","modifiers":[{"id":17201,"modifierName":{"id":17200,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":17025,"src":"6964:27:75"},"nodeType":"ModifierInvocation","src":"6964:27:75"}],"name":"approve","nameLocation":"6916:7:75","nodeType":"FunctionDefinition","parameters":{"id":17199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17198,"mutability":"mutable","name":"id","nameLocation":"6932:2:75","nodeType":"VariableDeclaration","scope":17245,"src":"6924:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17197,"name":"uint256","nodeType":"ElementaryTypeName","src":"6924:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6923:12:75"},"returnParameters":{"id":17202,"nodeType":"ParameterList","parameters":[],"src":"6998:0:75"},"scope":17947,"src":"6907:487:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17275,"nodeType":"Block","src":"7493:252:75","statements":[{"expression":{"arguments":[{"id":17253,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17247,"src":"7517:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17254,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"7521:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"7521:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":2894,"src":"7521:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17252,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"7504:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7504:52:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17258,"nodeType":"ExpressionStatement","src":"7504:52:75"},{"eventCall":{"arguments":[{"id":17260,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17247,"src":"7593:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17259,"name":"LogComponentDeclined","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5042,"src":"7572:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7572:24:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17262,"nodeType":"EmitStatement","src":"7567:29:75"},{"assignments":[17265],"declarations":[{"constant":false,"id":17265,"mutability":"mutable","name":"component","nameLocation":"7671:9:75","nodeType":"VariableDeclaration","scope":17275,"src":"7660:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17264,"nodeType":"UserDefinedTypeName","pathNode":{"id":17263,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"7660:10:75"},"referencedDeclaration":2988,"src":"7660:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17269,"initialValue":{"arguments":[{"id":17267,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17247,"src":"7696:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17266,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"7683:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7683:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"7660:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17270,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17265,"src":"7710:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"declineCallback","nodeType":"MemberAccess","referencedDeclaration":2972,"src":"7710:25:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7710:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17274,"nodeType":"ExpressionStatement","src":"7710:27:75"}]},"functionSelector":"a0355f4e","id":17276,"implemented":true,"kind":"function","modifiers":[{"id":17250,"modifierName":{"id":17249,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":17025,"src":"7459:27:75"},"nodeType":"ModifierInvocation","src":"7459:27:75"}],"name":"decline","nameLocation":"7411:7:75","nodeType":"FunctionDefinition","parameters":{"id":17248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17247,"mutability":"mutable","name":"id","nameLocation":"7427:2:75","nodeType":"VariableDeclaration","scope":17276,"src":"7419:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17246,"name":"uint256","nodeType":"ElementaryTypeName","src":"7419:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7418:12:75"},"returnParameters":{"id":17251,"nodeType":"ParameterList","parameters":[],"src":"7493:0:75"},"scope":17947,"src":"7402:343:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17306,"nodeType":"Block","src":"7845:257:75","statements":[{"expression":{"arguments":[{"id":17284,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17278,"src":"7869:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17285,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"7873:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"7873:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Suspended","nodeType":"MemberAccess","referencedDeclaration":2897,"src":"7873:35:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17283,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"7856:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7856:53:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17289,"nodeType":"ExpressionStatement","src":"7856:53:75"},{"eventCall":{"arguments":[{"id":17291,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17278,"src":"7947:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17290,"name":"LogComponentSuspended","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"7925:21:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7925:25:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17293,"nodeType":"EmitStatement","src":"7920:30:75"},{"assignments":[17296],"declarations":[{"constant":false,"id":17296,"mutability":"mutable","name":"component","nameLocation":"8028:9:75","nodeType":"VariableDeclaration","scope":17306,"src":"8017:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17295,"nodeType":"UserDefinedTypeName","pathNode":{"id":17294,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"8017:10:75"},"referencedDeclaration":2988,"src":"8017:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17300,"initialValue":{"arguments":[{"id":17298,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17278,"src":"8053:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17297,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"8040:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8040:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"8017:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17301,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17296,"src":"8067:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"suspendCallback","nodeType":"MemberAccess","referencedDeclaration":2975,"src":"8067:25:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8067:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17305,"nodeType":"ExpressionStatement","src":"8067:27:75"}]},"functionSelector":"4b865846","id":17307,"implemented":true,"kind":"function","modifiers":[{"id":17281,"modifierName":{"id":17280,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":17025,"src":"7811:27:75"},"nodeType":"ModifierInvocation","src":"7811:27:75"}],"name":"suspend","nameLocation":"7762:7:75","nodeType":"FunctionDefinition","parameters":{"id":17279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17278,"mutability":"mutable","name":"id","nameLocation":"7778:2:75","nodeType":"VariableDeclaration","scope":17307,"src":"7770:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17277,"name":"uint256","nodeType":"ElementaryTypeName","src":"7770:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7769:12:75"},"returnParameters":{"id":17282,"nodeType":"ParameterList","parameters":[],"src":"7845:0:75"},"scope":17947,"src":"7753:349:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17337,"nodeType":"Block","src":"8201:249:75","statements":[{"expression":{"arguments":[{"id":17315,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17309,"src":"8225:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17316,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"8229:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"8229:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"8229:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17314,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"8212:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8212:50:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17320,"nodeType":"ExpressionStatement","src":"8212:50:75"},{"eventCall":{"arguments":[{"id":17322,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17309,"src":"8298:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17321,"name":"LogComponentResumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5050,"src":"8278:19:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8278:23:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17324,"nodeType":"EmitStatement","src":"8273:28:75"},{"assignments":[17327],"declarations":[{"constant":false,"id":17327,"mutability":"mutable","name":"component","nameLocation":"8377:9:75","nodeType":"VariableDeclaration","scope":17337,"src":"8366:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17326,"nodeType":"UserDefinedTypeName","pathNode":{"id":17325,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"8366:10:75"},"referencedDeclaration":2988,"src":"8366:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17331,"initialValue":{"arguments":[{"id":17329,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17309,"src":"8402:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17328,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"8389:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8389:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"8366:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17332,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17327,"src":"8416:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resumeCallback","nodeType":"MemberAccess","referencedDeclaration":2978,"src":"8416:24:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8416:26:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17336,"nodeType":"ExpressionStatement","src":"8416:26:75"}]},"functionSelector":"414000b5","id":17338,"implemented":true,"kind":"function","modifiers":[{"id":17312,"modifierName":{"id":17311,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":17025,"src":"8167:27:75"},"nodeType":"ModifierInvocation","src":"8167:27:75"}],"name":"resume","nameLocation":"8119:6:75","nodeType":"FunctionDefinition","parameters":{"id":17310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17309,"mutability":"mutable","name":"id","nameLocation":"8134:2:75","nodeType":"VariableDeclaration","scope":17338,"src":"8126:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17308,"name":"uint256","nodeType":"ElementaryTypeName","src":"8126:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8125:12:75"},"returnParameters":{"id":17313,"nodeType":"ParameterList","parameters":[],"src":"8201:0:75"},"scope":17947,"src":"8110:340:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17368,"nodeType":"Block","src":"8546:246:75","statements":[{"expression":{"arguments":[{"id":17346,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"8570:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17347,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"8574:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"8574:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Paused","nodeType":"MemberAccess","referencedDeclaration":2896,"src":"8574:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17345,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"8557:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8557:50:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17351,"nodeType":"ExpressionStatement","src":"8557:50:75"},{"eventCall":{"arguments":[{"id":17353,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"8642:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17352,"name":"LogComponentPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5054,"src":"8623:18:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8623:22:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17355,"nodeType":"EmitStatement","src":"8618:27:75"},{"assignments":[17358],"declarations":[{"constant":false,"id":17358,"mutability":"mutable","name":"component","nameLocation":"8720:9:75","nodeType":"VariableDeclaration","scope":17368,"src":"8709:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17357,"nodeType":"UserDefinedTypeName","pathNode":{"id":17356,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"8709:10:75"},"referencedDeclaration":2988,"src":"8709:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17362,"initialValue":{"arguments":[{"id":17360,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"8745:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17359,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"8732:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8732:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"8709:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17363,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17358,"src":"8759:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pauseCallback","nodeType":"MemberAccess","referencedDeclaration":2981,"src":"8759:23:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8759:25:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17367,"nodeType":"ExpressionStatement","src":"8759:25:75"}]},"functionSelector":"136439dd","id":17369,"implemented":true,"kind":"function","modifiers":[{"id":17343,"modifierName":{"id":17342,"name":"onlyComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":17011,"src":"8514:25:75"},"nodeType":"ModifierInvocation","src":"8514:25:75"}],"name":"pause","nameLocation":"8467:5:75","nodeType":"FunctionDefinition","parameters":{"id":17341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17340,"mutability":"mutable","name":"id","nameLocation":"8481:2:75","nodeType":"VariableDeclaration","scope":17369,"src":"8473:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17339,"name":"uint256","nodeType":"ElementaryTypeName","src":"8473:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8472:12:75"},"returnParameters":{"id":17344,"nodeType":"ParameterList","parameters":[],"src":"8546:0:75"},"scope":17947,"src":"8458:334:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17399,"nodeType":"Block","src":"8890:252:75","statements":[{"expression":{"arguments":[{"id":17377,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17371,"src":"8914:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17378,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"8918:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"8918:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"8918:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17376,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"8901:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8901:50:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17382,"nodeType":"ExpressionStatement","src":"8901:50:75"},{"eventCall":{"arguments":[{"id":17384,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17371,"src":"8988:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17383,"name":"LogComponentUnpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5058,"src":"8967:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8967:24:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17386,"nodeType":"EmitStatement","src":"8962:29:75"},{"assignments":[17389],"declarations":[{"constant":false,"id":17389,"mutability":"mutable","name":"component","nameLocation":"9068:9:75","nodeType":"VariableDeclaration","scope":17399,"src":"9057:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17388,"nodeType":"UserDefinedTypeName","pathNode":{"id":17387,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"9057:10:75"},"referencedDeclaration":2988,"src":"9057:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17393,"initialValue":{"arguments":[{"id":17391,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17371,"src":"9093:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17390,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"9080:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9080:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"9057:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17394,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17389,"src":"9107:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unpauseCallback","nodeType":"MemberAccess","referencedDeclaration":2984,"src":"9107:25:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9107:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17398,"nodeType":"ExpressionStatement","src":"9107:27:75"}]},"functionSelector":"fabc1cbc","id":17400,"implemented":true,"kind":"function","modifiers":[{"id":17374,"modifierName":{"id":17373,"name":"onlyComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":17011,"src":"8858:25:75"},"nodeType":"ModifierInvocation","src":"8858:25:75"}],"name":"unpause","nameLocation":"8809:7:75","nodeType":"FunctionDefinition","parameters":{"id":17372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17371,"mutability":"mutable","name":"id","nameLocation":"8825:2:75","nodeType":"VariableDeclaration","scope":17400,"src":"8817:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17370,"name":"uint256","nodeType":"ElementaryTypeName","src":"8817:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8816:12:75"},"returnParameters":{"id":17375,"nodeType":"ParameterList","parameters":[],"src":"8890:0:75"},"scope":17947,"src":"8800:342:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17430,"nodeType":"Block","src":"9258:254:75","statements":[{"expression":{"arguments":[{"id":17408,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17402,"src":"9282:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17409,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"9286:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"9286:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Archived","nodeType":"MemberAccess","referencedDeclaration":2898,"src":"9286:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17407,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"9269:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9269:52:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17413,"nodeType":"ExpressionStatement","src":"9269:52:75"},{"eventCall":{"arguments":[{"id":17415,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17402,"src":"9358:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17414,"name":"LogComponentArchived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5062,"src":"9337:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9337:24:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17417,"nodeType":"EmitStatement","src":"9332:29:75"},{"assignments":[17420],"declarations":[{"constant":false,"id":17420,"mutability":"mutable","name":"component","nameLocation":"9438:9:75","nodeType":"VariableDeclaration","scope":17430,"src":"9427:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17419,"nodeType":"UserDefinedTypeName","pathNode":{"id":17418,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"9427:10:75"},"referencedDeclaration":2988,"src":"9427:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17424,"initialValue":{"arguments":[{"id":17422,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17402,"src":"9463:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17421,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"9450:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9450:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"9427:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17425,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17420,"src":"9477:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"archiveCallback","nodeType":"MemberAccess","referencedDeclaration":2987,"src":"9477:25:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9477:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17429,"nodeType":"ExpressionStatement","src":"9477:27:75"}]},"functionSelector":"6bc607b3","id":17431,"implemented":true,"kind":"function","modifiers":[{"id":17405,"modifierName":{"id":17404,"name":"onlyComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":17011,"src":"9226:25:75"},"nodeType":"ModifierInvocation","src":"9226:25:75"}],"name":"archiveFromComponentOwner","nameLocation":"9159:25:75","nodeType":"FunctionDefinition","parameters":{"id":17403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17402,"mutability":"mutable","name":"id","nameLocation":"9193:2:75","nodeType":"VariableDeclaration","scope":17431,"src":"9185:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17401,"name":"uint256","nodeType":"ElementaryTypeName","src":"9185:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9184:12:75"},"returnParameters":{"id":17406,"nodeType":"ParameterList","parameters":[],"src":"9258:0:75"},"scope":17947,"src":"9150:362:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17461,"nodeType":"Block","src":"9632:254:75","statements":[{"expression":{"arguments":[{"id":17439,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17433,"src":"9656:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17440,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"9660:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"9660:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Archived","nodeType":"MemberAccess","referencedDeclaration":2898,"src":"9660:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17438,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"9643:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9643:52:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17444,"nodeType":"ExpressionStatement","src":"9643:52:75"},{"eventCall":{"arguments":[{"id":17446,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17433,"src":"9732:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17445,"name":"LogComponentArchived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5062,"src":"9711:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9711:24:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17448,"nodeType":"EmitStatement","src":"9706:29:75"},{"assignments":[17451],"declarations":[{"constant":false,"id":17451,"mutability":"mutable","name":"component","nameLocation":"9812:9:75","nodeType":"VariableDeclaration","scope":17461,"src":"9801:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17450,"nodeType":"UserDefinedTypeName","pathNode":{"id":17449,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"9801:10:75"},"referencedDeclaration":2988,"src":"9801:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17455,"initialValue":{"arguments":[{"id":17453,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17433,"src":"9837:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17452,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"9824:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9824:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"9801:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17456,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17451,"src":"9851:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"archiveCallback","nodeType":"MemberAccess","referencedDeclaration":2987,"src":"9851:25:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9851:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17460,"nodeType":"ExpressionStatement","src":"9851:27:75"}]},"functionSelector":"0f5da3a6","id":17462,"implemented":true,"kind":"function","modifiers":[{"id":17436,"modifierName":{"id":17435,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":17025,"src":"9598:27:75"},"nodeType":"ModifierInvocation","src":"9598:27:75"}],"name":"archiveFromInstanceOperator","nameLocation":"9529:27:75","nodeType":"FunctionDefinition","parameters":{"id":17434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17433,"mutability":"mutable","name":"id","nameLocation":"9565:2:75","nodeType":"VariableDeclaration","scope":17462,"src":"9557:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17432,"name":"uint256","nodeType":"ElementaryTypeName","src":"9557:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9556:12:75"},"returnParameters":{"id":17437,"nodeType":"ParameterList","parameters":[],"src":"9632:0:75"},"scope":17947,"src":"9520:366:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17489,"nodeType":"Block","src":"9971:139:75","statements":[{"expression":{"id":17474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17470,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17468,"src":"9982:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":17471,"name":"_componentById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16969,"src":"9994:14:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IComponent_$2988_$","typeString":"mapping(uint256 => contract IComponent)"}},"id":17473,"indexExpression":{"id":17472,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17464,"src":"10009:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9994:18:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"src":"9982:30:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17475,"nodeType":"ExpressionStatement","src":"9982:30:75"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":17479,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17468,"src":"10039:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10031:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17477,"name":"address","nodeType":"ElementaryTypeName","src":"10031:7:75","typeDescriptions":{}}},"id":17480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10031:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":17483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10061:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10053:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17481,"name":"address","nodeType":"ElementaryTypeName","src":"10053:7:75","typeDescriptions":{}}},"id":17484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10053:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10031:32:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030353a494e56414c49445f434f4d504f4e454e545f4944","id":17486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10065:36:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca1c305a0e9af3ea3550a0a1227e5f520650593127153fff20641c9f0d853894","typeString":"literal_string \"ERROR:CCR-005:INVALID_COMPONENT_ID\""},"value":"ERROR:CCR-005:INVALID_COMPONENT_ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ca1c305a0e9af3ea3550a0a1227e5f520650593127153fff20641c9f0d853894","typeString":"literal_string \"ERROR:CCR-005:INVALID_COMPONENT_ID\""}],"id":17476,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10023:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10023:79:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17488,"nodeType":"ExpressionStatement","src":"10023:79:75"}]},"functionSelector":"4f27da18","id":17490,"implemented":true,"kind":"function","modifiers":[],"name":"getComponent","nameLocation":"9903:12:75","nodeType":"FunctionDefinition","parameters":{"id":17465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17464,"mutability":"mutable","name":"id","nameLocation":"9924:2:75","nodeType":"VariableDeclaration","scope":17490,"src":"9916:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17463,"name":"uint256","nodeType":"ElementaryTypeName","src":"9916:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9915:12:75"},"returnParameters":{"id":17469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17468,"mutability":"mutable","name":"component","nameLocation":"9960:9:75","nodeType":"VariableDeclaration","scope":17490,"src":"9949:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17467,"nodeType":"UserDefinedTypeName","pathNode":{"id":17466,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"9949:10:75"},"referencedDeclaration":2988,"src":"9949:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"9948:22:75"},"scope":17947,"src":"9894:216:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17520,"nodeType":"Block","src":"10201:216:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17498,"name":"componentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17492,"src":"10220:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":17501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10248:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10240:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17499,"name":"address","nodeType":"ElementaryTypeName","src":"10240:7:75","typeDescriptions":{}}},"id":17502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10240:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10220:30:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030363a434f4d504f4e454e545f414444524553535f5a45524f","id":17504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10252:38:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_349494011e9b14ad7882b684a4d52f7565404f3853de6409d514462bbbb08f64","typeString":"literal_string \"ERROR:CCR-006:COMPONENT_ADDRESS_ZERO\""},"value":"ERROR:CCR-006:COMPONENT_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_349494011e9b14ad7882b684a4d52f7565404f3853de6409d514462bbbb08f64","typeString":"literal_string \"ERROR:CCR-006:COMPONENT_ADDRESS_ZERO\""}],"id":17497,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10212:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10212:79:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17506,"nodeType":"ExpressionStatement","src":"10212:79:75"},{"expression":{"id":17511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17507,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17495,"src":"10302:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":17508,"name":"_componentIdByAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16977,"src":"10307:21:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17510,"indexExpression":{"id":17509,"name":"componentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17492,"src":"10329:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10307:39:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10302:44:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17512,"nodeType":"ExpressionStatement","src":"10302:44:75"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17514,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17495,"src":"10367:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10372:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10367:6:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030373a434f4d504f4e454e545f554e4b4e4f574e","id":17517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10375:33:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_5aa9184ead1177203c54428ab95078928f4521a9c578f8772ed90c5ea1b644ac","typeString":"literal_string \"ERROR:CCR-007:COMPONENT_UNKNOWN\""},"value":"ERROR:CCR-007:COMPONENT_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5aa9184ead1177203c54428ab95078928f4521a9c578f8772ed90c5ea1b644ac","typeString":"literal_string \"ERROR:CCR-007:COMPONENT_UNKNOWN\""}],"id":17513,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10359:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10359:50:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17519,"nodeType":"ExpressionStatement","src":"10359:50:75"}]},"functionSelector":"2b1c7f73","id":17521,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentId","nameLocation":"10127:14:75","nodeType":"FunctionDefinition","parameters":{"id":17493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17492,"mutability":"mutable","name":"componentAddress","nameLocation":"10150:16:75","nodeType":"VariableDeclaration","scope":17521,"src":"10142:24:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17491,"name":"address","nodeType":"ElementaryTypeName","src":"10142:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10141:26:75"},"returnParameters":{"id":17496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17495,"mutability":"mutable","name":"id","nameLocation":"10197:2:75","nodeType":"VariableDeclaration","scope":17521,"src":"10189:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17494,"name":"uint256","nodeType":"ElementaryTypeName","src":"10189:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10188:12:75"},"scope":17947,"src":"10118:299:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17567,"nodeType":"Block","src":"10524:434:75","statements":[{"condition":{"arguments":[{"id":17531,"name":"_products","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"10562:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17532,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17523,"src":"10573:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17529,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10539:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"10539:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10539:37:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"id":17541,"name":"_oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"10677:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17542,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17523,"src":"10687:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17539,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10654:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"10654:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10654:36:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"id":17551,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16991,"src":"10790:10:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17552,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17523,"src":"10802:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17549,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10767:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"10767:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10767:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17563,"nodeType":"Block","src":"10880:71:75","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a4343522d3030383a494e56414c49445f434f4d504f4e454e545f4944","id":17560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10902:36:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_67050a9f7590899f726ff1d1acfe3fa473b09c82fe38e2fb1e74ce440fa5d62b","typeString":"literal_string \"ERROR:CCR-008:INVALID_COMPONENT_ID\""},"value":"ERROR:CCR-008:INVALID_COMPONENT_ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67050a9f7590899f726ff1d1acfe3fa473b09c82fe38e2fb1e74ce440fa5d62b","typeString":"literal_string \"ERROR:CCR-008:INVALID_COMPONENT_ID\""}],"id":17559,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"10895:6:75","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":17561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10895:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17562,"nodeType":"ExpressionStatement","src":"10895:44:75"}]},"id":17564,"nodeType":"IfStatement","src":"10763:188:75","trueBody":{"id":17558,"nodeType":"Block","src":"10807:67:75","statements":[{"expression":{"expression":{"expression":{"id":17554,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"10829:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"10829:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"10829:33:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":17528,"id":17557,"nodeType":"Return","src":"10822:40:75"}]}},"id":17565,"nodeType":"IfStatement","src":"10650:301:75","trueBody":{"id":17548,"nodeType":"Block","src":"10692:65:75","statements":[{"expression":{"expression":{"expression":{"id":17544,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"10714:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"10714:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Oracle","nodeType":"MemberAccess","referencedDeclaration":2888,"src":"10714:31:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":17528,"id":17547,"nodeType":"Return","src":"10707:38:75"}]}},"id":17566,"nodeType":"IfStatement","src":"10535:416:75","trueBody":{"id":17538,"nodeType":"Block","src":"10578:66:75","statements":[{"expression":{"expression":{"expression":{"id":17534,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"10600:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"10600:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Product","nodeType":"MemberAccess","referencedDeclaration":2889,"src":"10600:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":17528,"id":17537,"nodeType":"Return","src":"10593:39:75"}]}}]},"functionSelector":"dd51c86a","id":17568,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentType","nameLocation":"10434:16:75","nodeType":"FunctionDefinition","parameters":{"id":17524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17523,"mutability":"mutable","name":"id","nameLocation":"10459:2:75","nodeType":"VariableDeclaration","scope":17568,"src":"10451:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17522,"name":"uint256","nodeType":"ElementaryTypeName","src":"10451:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10450:12:75"},"returnParameters":{"id":17528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17527,"mutability":"mutable","name":"componentType","nameLocation":"10509:13:75","nodeType":"VariableDeclaration","scope":17568,"src":"10484:38:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":17526,"nodeType":"UserDefinedTypeName","pathNode":{"id":17525,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"10484:24:75"},"referencedDeclaration":2891,"src":"10484:24:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"10483:40:75"},"scope":17947,"src":"10425:533:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17580,"nodeType":"Block","src":"11068:45:75","statements":[{"expression":{"baseExpression":{"id":17576,"name":"_componentState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16982,"src":"11086:15:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_enum$_ComponentState_$2899_$","typeString":"mapping(uint256 => enum IComponent.ComponentState)"}},"id":17578,"indexExpression":{"id":17577,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17570,"src":"11102:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11086:19:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"functionReturnParameters":17575,"id":17579,"nodeType":"Return","src":"11079:26:75"}]},"functionSelector":"5e966e45","id":17581,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentState","nameLocation":"10975:17:75","nodeType":"FunctionDefinition","parameters":{"id":17571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17570,"mutability":"mutable","name":"id","nameLocation":"11001:2:75","nodeType":"VariableDeclaration","scope":17581,"src":"10993:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17569,"name":"uint256","nodeType":"ElementaryTypeName","src":"10993:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10992:12:75"},"returnParameters":{"id":17575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17574,"mutability":"mutable","name":"componentState","nameLocation":"11052:14:75","nodeType":"VariableDeclaration","scope":17581,"src":"11026:40:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":17573,"nodeType":"UserDefinedTypeName","pathNode":{"id":17572,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"11026:25:75"},"referencedDeclaration":2899,"src":"11026:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"11025:42:75"},"scope":17947,"src":"10966:147:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17594,"nodeType":"Block","src":"11194:57:75","statements":[{"expression":{"arguments":[{"id":17590,"name":"_oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"11229:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17591,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17583,"src":"11239:3:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17588,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"11212:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11408,"src":"11212:16:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":17592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11212:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17587,"id":17593,"nodeType":"Return","src":"11205:38:75"}]},"functionSelector":"a5c0f5a1","id":17595,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleId","nameLocation":"11130:11:75","nodeType":"FunctionDefinition","parameters":{"id":17584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17583,"mutability":"mutable","name":"idx","nameLocation":"11150:3:75","nodeType":"VariableDeclaration","scope":17595,"src":"11142:11:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17582,"name":"uint256","nodeType":"ElementaryTypeName","src":"11142:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11141:13:75"},"returnParameters":{"id":17587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17586,"mutability":"mutable","name":"oracleId","nameLocation":"11184:8:75","nodeType":"VariableDeclaration","scope":17595,"src":"11176:16:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17585,"name":"uint256","nodeType":"ElementaryTypeName","src":"11176:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11175:18:75"},"scope":17947,"src":"11121:130:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17608,"nodeType":"Block","src":"11336:59:75","statements":[{"expression":{"arguments":[{"id":17604,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16991,"src":"11371:10:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17605,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17597,"src":"11383:3:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17602,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"11354:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11408,"src":"11354:16:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":17606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11354:33:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17601,"id":17607,"nodeType":"Return","src":"11347:40:75"}]},"functionSelector":"ff3f3883","id":17609,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolId","nameLocation":"11268:13:75","nodeType":"FunctionDefinition","parameters":{"id":17598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17597,"mutability":"mutable","name":"idx","nameLocation":"11290:3:75","nodeType":"VariableDeclaration","scope":17609,"src":"11282:11:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17596,"name":"uint256","nodeType":"ElementaryTypeName","src":"11282:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11281:13:75"},"returnParameters":{"id":17601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17600,"mutability":"mutable","name":"riskpoolId","nameLocation":"11324:10:75","nodeType":"VariableDeclaration","scope":17609,"src":"11316:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17599,"name":"uint256","nodeType":"ElementaryTypeName","src":"11316:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11315:20:75"},"scope":17947,"src":"11259:136:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17622,"nodeType":"Block","src":"11478:58:75","statements":[{"expression":{"arguments":[{"id":17618,"name":"_products","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"11513:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17619,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17611,"src":"11524:3:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17616,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"11496:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11408,"src":"11496:16:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":17620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11496:32:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17615,"id":17621,"nodeType":"Return","src":"11489:39:75"}]},"functionSelector":"9f77a605","id":17623,"implemented":true,"kind":"function","modifiers":[],"name":"getProductId","nameLocation":"11412:12:75","nodeType":"FunctionDefinition","parameters":{"id":17612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17611,"mutability":"mutable","name":"idx","nameLocation":"11433:3:75","nodeType":"VariableDeclaration","scope":17623,"src":"11425:11:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17610,"name":"uint256","nodeType":"ElementaryTypeName","src":"11425:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11424:13:75"},"returnParameters":{"id":17615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17614,"mutability":"mutable","name":"productId","nameLocation":"11467:9:75","nodeType":"VariableDeclaration","scope":17623,"src":"11459:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17613,"name":"uint256","nodeType":"ElementaryTypeName","src":"11459:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11458:19:75"},"scope":17947,"src":"11403:133:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17669,"nodeType":"Block","src":"11641:406:75","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":17635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17631,"name":"componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17626,"src":"11656:13:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17632,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"11673:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"11673:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Product","nodeType":"MemberAccess","referencedDeclaration":2889,"src":"11673:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"11656:49:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":17645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17641,"name":"componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17626,"src":"11767:13:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17642,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"11784:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"11784:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Oracle","nodeType":"MemberAccess","referencedDeclaration":2888,"src":"11784:31:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"11767:48:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":17655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17651,"name":"componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17626,"src":"11879:13:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17652,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"11896:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"11896:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"11896:33:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"11879:50:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17665,"nodeType":"Block","src":"11989:51:75","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a4343522d3031303a434f4d504f4e454e545f545950455f554e4b4e4f574e","id":17662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11998:38:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1c08fa2a8ffb36bf794006b5c478bd24ca48d907fc7830cb558a4b14cd289c6","typeString":"literal_string \"ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN\""},"value":"ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1c08fa2a8ffb36bf794006b5c478bd24ca48d907fc7830cb558a4b14cd289c6","typeString":"literal_string \"ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN\""}],"id":17661,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"11991:6:75","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":17663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11991:46:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17664,"nodeType":"ExpressionStatement","src":"11991:46:75"}]},"id":17666,"nodeType":"IfStatement","src":"11875:165:75","trueBody":{"id":17660,"nodeType":"Block","src":"11931:43:75","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17656,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"11940:7:75","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":17657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpoolKeeperRole","nodeType":"MemberAccess","referencedDeclaration":4795,"src":"11940:29:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11940:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17630,"id":17659,"nodeType":"Return","src":"11933:38:75"}]}},"id":17667,"nodeType":"IfStatement","src":"11763:277:75","trueBody":{"id":17650,"nodeType":"Block","src":"11817:43:75","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17646,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"11826:7:75","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":17647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOracleProviderRole","nodeType":"MemberAccess","referencedDeclaration":4790,"src":"11826:29:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11826:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17630,"id":17649,"nodeType":"Return","src":"11819:38:75"}]}},"id":17668,"nodeType":"IfStatement","src":"11652:388:75","trueBody":{"id":17640,"nodeType":"Block","src":"11707:41:75","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17636,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"11716:7:75","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":17637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProductOwnerRole","nodeType":"MemberAccess","referencedDeclaration":4785,"src":"11716:27:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11716:29:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17630,"id":17639,"nodeType":"Return","src":"11709:36:75"}]}}]},"functionSelector":"5af89a47","id":17670,"implemented":true,"kind":"function","modifiers":[],"name":"getRequiredRole","nameLocation":"11553:15:75","nodeType":"FunctionDefinition","parameters":{"id":17627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17626,"mutability":"mutable","name":"componentType","nameLocation":"11594:13:75","nodeType":"VariableDeclaration","scope":17670,"src":"11569:38:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":17625,"nodeType":"UserDefinedTypeName","pathNode":{"id":17624,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"11569:24:75"},"referencedDeclaration":2891,"src":"11569:24:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"11568:40:75"},"returnParameters":{"id":17630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17670,"src":"11632:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11632:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11631:9:75"},"scope":17947,"src":"11544:503:75","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":17677,"nodeType":"Block","src":"12113:27:75","statements":[{"expression":{"id":17675,"name":"_componentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16993,"src":"12122:15:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17674,"id":17676,"nodeType":"Return","src":"12115:22:75"}]},"functionSelector":"ba62fbe4","id":17678,"implemented":true,"kind":"function","modifiers":[],"name":"components","nameLocation":"12064:10:75","nodeType":"FunctionDefinition","parameters":{"id":17671,"nodeType":"ParameterList","parameters":[],"src":"12074:2:75"},"returnParameters":{"id":17674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17673,"mutability":"mutable","name":"count","nameLocation":"12106:5:75","nodeType":"VariableDeclaration","scope":17678,"src":"12098:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17672,"name":"uint256","nodeType":"ElementaryTypeName","src":"12098:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12097:15:75"},"scope":17947,"src":"12055:85:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17688,"nodeType":"Block","src":"12202:43:75","statements":[{"expression":{"arguments":[{"id":17685,"name":"_products","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"12232:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":17683,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12211:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"12211:20:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":17686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12211:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17682,"id":17687,"nodeType":"Return","src":"12204:38:75"}]},"functionSelector":"c71e261f","id":17689,"implemented":true,"kind":"function","modifiers":[],"name":"products","nameLocation":"12155:8:75","nodeType":"FunctionDefinition","parameters":{"id":17679,"nodeType":"ParameterList","parameters":[],"src":"12163:2:75"},"returnParameters":{"id":17682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17681,"mutability":"mutable","name":"count","nameLocation":"12195:5:75","nodeType":"VariableDeclaration","scope":17689,"src":"12187:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17680,"name":"uint256","nodeType":"ElementaryTypeName","src":"12187:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12186:15:75"},"scope":17947,"src":"12146:99:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17699,"nodeType":"Block","src":"12306:42:75","statements":[{"expression":{"arguments":[{"id":17696,"name":"_oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"12336:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":17694,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12315:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"12315:20:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":17697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12315:30:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17693,"id":17698,"nodeType":"Return","src":"12308:37:75"}]},"functionSelector":"2857373a","id":17700,"implemented":true,"kind":"function","modifiers":[],"name":"oracles","nameLocation":"12260:7:75","nodeType":"FunctionDefinition","parameters":{"id":17690,"nodeType":"ParameterList","parameters":[],"src":"12267:2:75"},"returnParameters":{"id":17693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17692,"mutability":"mutable","name":"count","nameLocation":"12299:5:75","nodeType":"VariableDeclaration","scope":17700,"src":"12291:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17691,"name":"uint256","nodeType":"ElementaryTypeName","src":"12291:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12290:15:75"},"scope":17947,"src":"12251:97:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17710,"nodeType":"Block","src":"12411:44:75","statements":[{"expression":{"arguments":[{"id":17707,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16991,"src":"12441:10:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":17705,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12420:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"12420:20:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":17708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12420:32:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17704,"id":17709,"nodeType":"Return","src":"12413:39:75"}]},"functionSelector":"a054381f","id":17711,"implemented":true,"kind":"function","modifiers":[],"name":"riskpools","nameLocation":"12363:9:75","nodeType":"FunctionDefinition","parameters":{"id":17701,"nodeType":"ParameterList","parameters":[],"src":"12372:2:75"},"returnParameters":{"id":17704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17703,"mutability":"mutable","name":"count","nameLocation":"12404:5:75","nodeType":"VariableDeclaration","scope":17711,"src":"12396:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17702,"name":"uint256","nodeType":"ElementaryTypeName","src":"12396:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12395:15:75"},"scope":17947,"src":"12354:101:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17724,"nodeType":"Block","src":"12521:49:75","statements":[{"expression":{"arguments":[{"id":17720,"name":"_products","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"12553:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17721,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17713,"src":"12564:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17718,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12530:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"12530:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12530:37:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17717,"id":17723,"nodeType":"Return","src":"12523:44:75"}]},"functionSelector":"3920200c","id":17725,"implemented":true,"kind":"function","modifiers":[],"name":"isProduct","nameLocation":"12472:9:75","nodeType":"FunctionDefinition","parameters":{"id":17714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17713,"mutability":"mutable","name":"id","nameLocation":"12490:2:75","nodeType":"VariableDeclaration","scope":17725,"src":"12482:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17712,"name":"uint256","nodeType":"ElementaryTypeName","src":"12482:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12481:12:75"},"returnParameters":{"id":17717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17716,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17725,"src":"12515:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17715,"name":"bool","nodeType":"ElementaryTypeName","src":"12515:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12514:6:75"},"scope":17947,"src":"12463:107:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17738,"nodeType":"Block","src":"12635:48:75","statements":[{"expression":{"arguments":[{"id":17734,"name":"_oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"12667:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17735,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17727,"src":"12677:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17732,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12644:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"12644:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12644:36:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17731,"id":17737,"nodeType":"Return","src":"12637:43:75"}]},"functionSelector":"09f63ed9","id":17739,"implemented":true,"kind":"function","modifiers":[],"name":"isOracle","nameLocation":"12587:8:75","nodeType":"FunctionDefinition","parameters":{"id":17728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17727,"mutability":"mutable","name":"id","nameLocation":"12604:2:75","nodeType":"VariableDeclaration","scope":17739,"src":"12596:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17726,"name":"uint256","nodeType":"ElementaryTypeName","src":"12596:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12595:12:75"},"returnParameters":{"id":17731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17730,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17739,"src":"12629:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17729,"name":"bool","nodeType":"ElementaryTypeName","src":"12629:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12628:6:75"},"scope":17947,"src":"12578:105:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17752,"nodeType":"Block","src":"12750:50:75","statements":[{"expression":{"arguments":[{"id":17748,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16991,"src":"12782:10:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17749,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17741,"src":"12794:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17746,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12759:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"12759:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12759:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17745,"id":17751,"nodeType":"Return","src":"12752:45:75"}]},"functionSelector":"ba80b8ed","id":17753,"implemented":true,"kind":"function","modifiers":[],"name":"isRiskpool","nameLocation":"12700:10:75","nodeType":"FunctionDefinition","parameters":{"id":17742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17741,"mutability":"mutable","name":"id","nameLocation":"12719:2:75","nodeType":"VariableDeclaration","scope":17753,"src":"12711:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17740,"name":"uint256","nodeType":"ElementaryTypeName","src":"12711:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12710:12:75"},"returnParameters":{"id":17745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17753,"src":"12744:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17743,"name":"bool","nodeType":"ElementaryTypeName","src":"12744:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12743:6:75"},"scope":17947,"src":"12691:109:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17773,"nodeType":"Block","src":"12892:142:75","statements":[{"expression":{"arguments":[{"arguments":[{"id":17762,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17755,"src":"12921:9:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17761,"name":"isProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17725,"src":"12911:9:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":17763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12911:20:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3031313a554e4b4e4f574e5f50524f445543545f4944","id":17764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12933:34:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_709b753f017c54bf3895eff7607622481d3ca03b6f3de6ef863313f4912d5c91","typeString":"literal_string \"ERROR:CCR-011:UNKNOWN_PRODUCT_ID\""},"value":"ERROR:CCR-011:UNKNOWN_PRODUCT_ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_709b753f017c54bf3895eff7607622481d3ca03b6f3de6ef863313f4912d5c91","typeString":"literal_string \"ERROR:CCR-011:UNKNOWN_PRODUCT_ID\""}],"id":17760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12903:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12903:65:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17766,"nodeType":"ExpressionStatement","src":"12903:65:75"},{"expression":{"id":17771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17767,"name":"_policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17758,"src":"12979:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":17768,"name":"_policyFlowByProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16997,"src":"12993:22:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":17770,"indexExpression":{"id":17769,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17755,"src":"13016:9:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12993:33:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12979:47:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17772,"nodeType":"ExpressionStatement","src":"12979:47:75"}]},"functionSelector":"e61ae297","id":17774,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyFlow","nameLocation":"12817:13:75","nodeType":"FunctionDefinition","parameters":{"id":17756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17755,"mutability":"mutable","name":"productId","nameLocation":"12839:9:75","nodeType":"VariableDeclaration","scope":17774,"src":"12831:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17754,"name":"uint256","nodeType":"ElementaryTypeName","src":"12831:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12830:19:75"},"returnParameters":{"id":17759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17758,"mutability":"mutable","name":"_policyFlow","nameLocation":"12879:11:75","nodeType":"VariableDeclaration","scope":17774,"src":"12871:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17757,"name":"address","nodeType":"ElementaryTypeName","src":"12871:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12870:21:75"},"scope":17947,"src":"12808:226:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17808,"nodeType":"Block","src":"13130:323:75","statements":[{"assignments":[17786],"declarations":[{"constant":false,"id":17786,"mutability":"mutable","name":"oldState","nameLocation":"13167:8:75","nodeType":"VariableDeclaration","scope":17808,"src":"13141:34:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":17785,"nodeType":"UserDefinedTypeName","pathNode":{"id":17784,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"13141:25:75"},"referencedDeclaration":2899,"src":"13141:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"id":17790,"initialValue":{"baseExpression":{"id":17787,"name":"_componentState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16982,"src":"13178:15:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_enum$_ComponentState_$2899_$","typeString":"mapping(uint256 => enum IComponent.ComponentState)"}},"id":17789,"indexExpression":{"id":17788,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17776,"src":"13194:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13178:28:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"VariableDeclarationStatement","src":"13141:65:75"},{"expression":{"arguments":[{"id":17792,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17786,"src":"13241:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},{"id":17793,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17779,"src":"13251:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17791,"name":"_checkStateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17946,"src":"13219:21:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_ComponentState_$2899_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (enum IComponent.ComponentState,enum IComponent.ComponentState) pure"}},"id":17794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13219:41:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17795,"nodeType":"ExpressionStatement","src":"13219:41:75"},{"expression":{"id":17800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17796,"name":"_componentState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16982,"src":"13271:15:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_enum$_ComponentState_$2899_$","typeString":"mapping(uint256 => enum IComponent.ComponentState)"}},"id":17798,"indexExpression":{"id":17797,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17776,"src":"13287:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13271:28:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17799,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17779,"src":"13302:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"13271:39:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"id":17801,"nodeType":"ExpressionStatement","src":"13271:39:75"},{"eventCall":{"arguments":[{"id":17803,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17776,"src":"13413:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17804,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17786,"src":"13426:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},{"id":17805,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17779,"src":"13436:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17802,"name":"LogComponentStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5072,"src":"13388:24:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState,enum IComponent.ComponentState)"}},"id":17806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13388:57:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17807,"nodeType":"EmitStatement","src":"13383:62:75"}]},"id":17809,"implemented":true,"kind":"function","modifiers":[],"name":"_changeState","nameLocation":"13051:12:75","nodeType":"FunctionDefinition","parameters":{"id":17780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17776,"mutability":"mutable","name":"componentId","nameLocation":"13072:11:75","nodeType":"VariableDeclaration","scope":17809,"src":"13064:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17775,"name":"uint256","nodeType":"ElementaryTypeName","src":"13064:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17779,"mutability":"mutable","name":"newState","nameLocation":"13111:8:75","nodeType":"VariableDeclaration","scope":17809,"src":"13085:34:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":17778,"nodeType":"UserDefinedTypeName","pathNode":{"id":17777,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"13085:25:75"},"referencedDeclaration":2899,"src":"13085:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"13063:57:75"},"returnParameters":{"id":17781,"nodeType":"ParameterList","parameters":[],"src":"13130:0:75"},"scope":17947,"src":"13042:411:75","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17945,"nodeType":"Block","src":"13630:1610:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17819,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"13649:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":17820,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"13661:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"13649:20:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3032303a534f555243455f414e445f5441524745545f53544154455f4944454e544943414c","id":17822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13685:49:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b075609608efafdf82ca4cfa74bf357d9aad12ac8bb658b7fb7cfcfb10656bd","typeString":"literal_string \"ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL\""},"value":"ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b075609608efafdf82ca4cfa74bf357d9aad12ac8bb658b7fb7cfcfb10656bd","typeString":"literal_string \"ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL\""}],"id":17818,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13641:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13641:94:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17824,"nodeType":"ExpressionStatement","src":"13641:94:75"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17825,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"13760:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17826,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"13772:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"13772:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Created","nodeType":"MemberAccess","referencedDeclaration":2892,"src":"13772:33:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"13760:45:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17840,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"13961:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17841,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"13973:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"13973:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Proposed","nodeType":"MemberAccess","referencedDeclaration":2893,"src":"13973:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"13961:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17861,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"14229:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17862,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14241:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14241:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":2894,"src":"14241:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14229:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17871,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"14361:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17872,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14373:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14373:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"14373:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14361:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17892,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"14627:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17893,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14639:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14639:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Paused","nodeType":"MemberAccess","referencedDeclaration":2896,"src":"14639:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14627:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17913,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"14891:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17914,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14903:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14903:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Suspended","nodeType":"MemberAccess","referencedDeclaration":2897,"src":"14903:35:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14891:47:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17938,"nodeType":"Block","src":"15157:76:75","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a4343522d3032373a494e495449414c5f53544154455f4e4f545f48414e444c4544","id":17935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15179:41:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_512ac6c7424b7e416123df2c876fbcb260e557a5e44ae55dbe69355255653f93","typeString":"literal_string \"ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED\""},"value":"ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_512ac6c7424b7e416123df2c876fbcb260e557a5e44ae55dbe69355255653f93","typeString":"literal_string \"ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED\""}],"id":17934,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"15172:6:75","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":17936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15172:49:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17937,"nodeType":"ExpressionStatement","src":"15172:49:75"}]},"id":17939,"nodeType":"IfStatement","src":"14887:346:75","trueBody":{"id":17933,"nodeType":"Block","src":"14940:211:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17919,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14963:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17920,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14975:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14975:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"14975:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14963:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17924,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"15028:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17925,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"15040:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"15040:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Archived","nodeType":"MemberAccess","referencedDeclaration":2898,"src":"15040:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"15028:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14963:111:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3032363a53555350454e4445445f494e56414c49445f5452414e534954494f4e","id":17930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15094:44:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_58a6319ab23087cefcdbcbd3c8e4c0242721e866c13cbc743fb203df63de1716","typeString":"literal_string \"ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION\""},"value":"ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_58a6319ab23087cefcdbcbd3c8e4c0242721e866c13cbc743fb203df63de1716","typeString":"literal_string \"ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION\""}],"id":17918,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14955:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14955:184:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17932,"nodeType":"ExpressionStatement","src":"14955:184:75"}]}},"id":17940,"nodeType":"IfStatement","src":"14623:610:75","trueBody":{"id":17912,"nodeType":"Block","src":"14673:208:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17898,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14696:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17899,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14708:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14708:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"14708:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14696:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17903,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14761:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17904,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14773:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14773:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Archived","nodeType":"MemberAccess","referencedDeclaration":2898,"src":"14773:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14761:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14696:111:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3032353a5041555345445f494e56414c49445f5452414e534954494f4e","id":17909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14827:41:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_0482b94049f0958858785a7e41524773ca88442982af776b7db627215a0937ca","typeString":"literal_string \"ERROR:CCR-025:PAUSED_INVALID_TRANSITION\""},"value":"ERROR:CCR-025:PAUSED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0482b94049f0958858785a7e41524773ca88442982af776b7db627215a0937ca","typeString":"literal_string \"ERROR:CCR-025:PAUSED_INVALID_TRANSITION\""}],"id":17897,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14688:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14688:181:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17911,"nodeType":"ExpressionStatement","src":"14688:181:75"}]}},"id":17941,"nodeType":"IfStatement","src":"14357:876:75","trueBody":{"id":17891,"nodeType":"Block","src":"14407:210:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17877,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14430:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17878,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14442:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14442:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Paused","nodeType":"MemberAccess","referencedDeclaration":2896,"src":"14442:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14430:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17882,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14496:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17883,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14508:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14508:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Suspended","nodeType":"MemberAccess","referencedDeclaration":2897,"src":"14508:35:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14496:47:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14430:113:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3032343a4143544956455f494e56414c49445f5452414e534954494f4e","id":17888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14563:41:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_aedba318da9c17b182ebb85736c0568cffa933b22def476bb1db2682f6fecda2","typeString":"literal_string \"ERROR:CCR-024:ACTIVE_INVALID_TRANSITION\""},"value":"ERROR:CCR-024:ACTIVE_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aedba318da9c17b182ebb85736c0568cffa933b22def476bb1db2682f6fecda2","typeString":"literal_string \"ERROR:CCR-024:ACTIVE_INVALID_TRANSITION\""}],"id":17876,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14422:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14422:183:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17890,"nodeType":"ExpressionStatement","src":"14422:183:75"}]}},"id":17942,"nodeType":"IfStatement","src":"14225:1008:75","trueBody":{"id":17870,"nodeType":"Block","src":"14277:74:75","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a4343522d3032333a4445434c494e45445f49535f46494e414c5f5354415445","id":17867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14299:39:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_42aa29d463e00aadde35312cfb43fe30bee16376ea01580e27b2dacd6cef5592","typeString":"literal_string \"ERROR:CCR-023:DECLINED_IS_FINAL_STATE\""},"value":"ERROR:CCR-023:DECLINED_IS_FINAL_STATE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42aa29d463e00aadde35312cfb43fe30bee16376ea01580e27b2dacd6cef5592","typeString":"literal_string \"ERROR:CCR-023:DECLINED_IS_FINAL_STATE\""}],"id":17866,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"14292:6:75","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":17868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14292:47:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17869,"nodeType":"ExpressionStatement","src":"14292:47:75"}]}},"id":17943,"nodeType":"IfStatement","src":"13957:1276:75","trueBody":{"id":17860,"nodeType":"Block","src":"14009:210:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17846,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14032:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17847,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14044:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14044:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"14044:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14032:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17851,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14098:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17852,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14110:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14110:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":2894,"src":"14110:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14098:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14032:112:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d32323a50524f504f5345445f494e56414c49445f5452414e534954494f4e","id":17857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14164:42:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b9aa6c2dd4c618aff287fe40145b03866d1f0f394ef1bd7eabcf15523e1a082","typeString":"literal_string \"ERROR:CCR-22:PROPOSED_INVALID_TRANSITION\""},"value":"ERROR:CCR-22:PROPOSED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b9aa6c2dd4c618aff287fe40145b03866d1f0f394ef1bd7eabcf15523e1a082","typeString":"literal_string \"ERROR:CCR-22:PROPOSED_INVALID_TRANSITION\""}],"id":17845,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14024:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14024:183:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17859,"nodeType":"ExpressionStatement","src":"14024:183:75"}]}},"id":17944,"nodeType":"IfStatement","src":"13756:1477:75","trueBody":{"id":17839,"nodeType":"Block","src":"13807:144:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17831,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"13830:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17832,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"13842:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"13842:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Proposed","nodeType":"MemberAccess","referencedDeclaration":2893,"src":"13842:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"13830:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3032313a435245415445445f494e56414c49445f5452414e534954494f4e","id":17836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13896:42:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f46e308fac0cff196aecf5e84c50b4060e83c7555cae1916f001746068e894c","typeString":"literal_string \"ERROR:CCR-021:CREATED_INVALID_TRANSITION\""},"value":"ERROR:CCR-021:CREATED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1f46e308fac0cff196aecf5e84c50b4060e83c7555cae1916f001746068e894c","typeString":"literal_string \"ERROR:CCR-021:CREATED_INVALID_TRANSITION\""}],"id":17830,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13822:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13822:117:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17838,"nodeType":"ExpressionStatement","src":"13822:117:75"}]}}]},"id":17946,"implemented":true,"kind":"function","modifiers":[],"name":"_checkStateTransition","nameLocation":"13470:21:75","nodeType":"FunctionDefinition","parameters":{"id":17816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17812,"mutability":"mutable","name":"oldState","nameLocation":"13528:8:75","nodeType":"VariableDeclaration","scope":17946,"src":"13502:34:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":17811,"nodeType":"UserDefinedTypeName","pathNode":{"id":17810,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"13502:25:75"},"referencedDeclaration":2899,"src":"13502:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"},{"constant":false,"id":17815,"mutability":"mutable","name":"newState","nameLocation":"13574:8:75","nodeType":"VariableDeclaration","scope":17946,"src":"13548:34:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":17814,"nodeType":"UserDefinedTypeName","pathNode":{"id":17813,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"13548:25:75"},"referencedDeclaration":2899,"src":"13548:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"13491:98:75"},"returnParameters":{"id":17817,"nodeType":"ParameterList","parameters":[],"src":"13630:0:75"},"scope":17947,"src":"13461:1779:75","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":17948,"src":"4013:11230:75"}],"src":"40:15205:75"},"id":75},"contracts/modules/LicenseController.sol":{"ast":{"absolutePath":"contracts/modules/LicenseController.sol","exportedSymbols":{"Address":[10496],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IComponent":[2988],"IComponentEvents":[5073],"ILicense":[5087],"IOracle":[3022],"IPolicy":[5433],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059],"LicenseController":[18062]},"id":18063,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":17949,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:76"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"./ComponentController.sol","id":17950,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":17948,"src":"63:35:76","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":17951,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":26414,"src":"99:38:76","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":17952,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":2989,"src":"139:69:76","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":17953,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":3080,"src":"209:67:76","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/ILicense.sol","file":"@etherisc/gif-interface/contracts/modules/ILicense.sol","id":17954,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":5088,"src":"277:64:76","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17956,"name":"ILicense","nodeType":"IdentifierPath","referencedDeclaration":5087,"src":"2325:8:76"},"id":17957,"nodeType":"InheritanceSpecifier","src":"2325:8:76"},{"baseName":{"id":17958,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"2340:14:76"},"id":17959,"nodeType":"InheritanceSpecifier","src":"2340:14:76"}],"contractDependencies":[5087,8059,10518,26413],"contractKind":"contract","documentation":{"id":17955,"nodeType":"StructuredDocumentation","src":"343:1945:76","text":"The smart contract serves as a controller contract for managing licenses related to products in an insurance ecosystem.\nThe contract implements the `ILicense` interface and extends the `CoreController` contract.\nThe contract imports two other contracts: `ComponentController.sol` and `CoreController.sol`, which are expected to be located in specific file paths.\nIt also imports several interfaces from the \"etherisc/gif-interface\" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`.\nThe contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract.\nFunctions:\n- `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract.\n- `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function.\n- `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`.\n- `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`.\nOverall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem."},"fullyImplemented":true,"id":18062,"linearizedBaseContracts":[18062,26413,8059,10518,5087],"name":"LicenseController","nameLocation":"2300:17:76","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":17962,"mutability":"mutable","name":"_component","nameLocation":"2390:10:76","nodeType":"VariableDeclaration","scope":18062,"src":"2362:38:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":17961,"nodeType":"UserDefinedTypeName","pathNode":{"id":17960,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"2362:19:76"},"referencedDeclaration":17947,"src":"2362:19:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"baseFunctions":[26387],"body":{"id":17976,"nodeType":"Block","src":"2470:83:76","statements":[{"expression":{"id":17974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17968,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"2480:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":17971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2533:11:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":17970,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2513:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":17972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2513:32:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17969,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"2493:19:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":17973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2493:53:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"2480:66:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":17975,"nodeType":"ExpressionStatement","src":"2480:66:76"}]},"id":17977,"implemented":true,"kind":"function","modifiers":[{"id":17966,"modifierName":{"id":17965,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"2453:16:76"},"nodeType":"ModifierInvocation","src":"2453:16:76"}],"name":"_afterInitialize","nameLocation":"2416:16:76","nodeType":"FunctionDefinition","overrides":{"id":17964,"nodeType":"OverrideSpecifier","overrides":[],"src":"2444:8:76"},"parameters":{"id":17963,"nodeType":"ParameterList","parameters":[],"src":"2432:2:76"},"returnParameters":{"id":17967,"nodeType":"ParameterList","parameters":[],"src":"2470:0:76"},"scope":18062,"src":"2407:146:76","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5086],"body":{"id":18009,"nodeType":"Block","src":"2799:176:76","statements":[{"expression":{"id":17994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17989,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17983,"src":"2809:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17992,"name":"productAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17979,"src":"2847:14:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17990,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"2821:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":17991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"2821:25:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":17993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2821:41:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2809:53:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17995,"nodeType":"ExpressionStatement","src":"2809:53:76"},{"expression":{"id":18000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17996,"name":"isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17985,"src":"2872:12:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17998,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17983,"src":"2900:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17997,"name":"_isValidCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18027,"src":"2887:12:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":17999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2887:23:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2872:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18001,"nodeType":"ExpressionStatement","src":"2872:38:76"},{"expression":{"id":18007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18002,"name":"policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17987,"src":"2920:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18005,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17983,"src":"2958:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18003,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"2933:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicyFlow","nodeType":"MemberAccess","referencedDeclaration":17774,"src":"2933:24:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":18006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2933:35:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2920:48:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18008,"nodeType":"ExpressionStatement","src":"2920:48:76"}]},"functionSelector":"d3e9c314","id":18010,"implemented":true,"kind":"function","modifiers":[],"name":"getAuthorizationStatus","nameLocation":"2636:22:76","nodeType":"FunctionDefinition","overrides":{"id":17981,"nodeType":"OverrideSpecifier","overrides":[],"src":"2698:8:76"},"parameters":{"id":17980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17979,"mutability":"mutable","name":"productAddress","nameLocation":"2667:14:76","nodeType":"VariableDeclaration","scope":18010,"src":"2659:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17978,"name":"address","nodeType":"ElementaryTypeName","src":"2659:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2658:24:76"},"returnParameters":{"id":17988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17983,"mutability":"mutable","name":"productId","nameLocation":"2745:9:76","nodeType":"VariableDeclaration","scope":18010,"src":"2737:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17982,"name":"uint256","nodeType":"ElementaryTypeName","src":"2737:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17985,"mutability":"mutable","name":"isAuthorized","nameLocation":"2761:12:76","nodeType":"VariableDeclaration","scope":18010,"src":"2756:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17984,"name":"bool","nodeType":"ElementaryTypeName","src":"2756:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17987,"mutability":"mutable","name":"policyFlow","nameLocation":"2783:10:76","nodeType":"VariableDeclaration","scope":18010,"src":"2775:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17986,"name":"address","nodeType":"ElementaryTypeName","src":"2775:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2736:58:76"},"scope":18062,"src":"2627:348:76","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":18026,"nodeType":"Block","src":"3051:99:76","statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":18024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18019,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18012,"src":"3097:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18017,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"3068:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"3068:28:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":18020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3068:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":18021,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"3111:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":18022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"3111:25:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":18023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"3111:32:76","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"3068:75:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18016,"id":18025,"nodeType":"Return","src":"3061:82:76"}]},"id":18027,"implemented":true,"kind":"function","modifiers":[],"name":"_isValidCall","nameLocation":"2990:12:76","nodeType":"FunctionDefinition","parameters":{"id":18013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18012,"mutability":"mutable","name":"productId","nameLocation":"3011:9:76","nodeType":"VariableDeclaration","scope":18027,"src":"3003:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18011,"name":"uint256","nodeType":"ElementaryTypeName","src":"3003:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3002:19:76"},"returnParameters":{"id":18016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18015,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18027,"src":"3045:4:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18014,"name":"bool","nodeType":"ElementaryTypeName","src":"3045:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3044:6:76"},"scope":18062,"src":"2981:169:76","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18060,"nodeType":"Block","src":"3230:185:76","statements":[{"expression":{"arguments":[{"arguments":[{"id":18038,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18029,"src":"3269:2:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18036,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"3248:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"3248:20:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":18039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3248:24:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4c49432d3030313a434f4d504f4e454e545f4e4f545f50524f44554354","id":18040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3274:37:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2cc379ca4dad5e4640f7ad3a46170e466c44d14c7ce6c2707834b40eaceccca","typeString":"literal_string \"ERROR:LIC-001:COMPONENT_NOT_PRODUCT\""},"value":"ERROR:LIC-001:COMPONENT_NOT_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d2cc379ca4dad5e4640f7ad3a46170e466c44d14c7ce6c2707834b40eaceccca","typeString":"literal_string \"ERROR:LIC-001:COMPONENT_NOT_PRODUCT\""}],"id":18035,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3240:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3240:72:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18042,"nodeType":"ExpressionStatement","src":"3240:72:76"},{"assignments":[18045],"declarations":[{"constant":false,"id":18045,"mutability":"mutable","name":"cmp","nameLocation":"3333:3:76","nodeType":"VariableDeclaration","scope":18060,"src":"3322:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":18044,"nodeType":"UserDefinedTypeName","pathNode":{"id":18043,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"3322:10:76"},"referencedDeclaration":2988,"src":"3322:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":18050,"initialValue":{"arguments":[{"id":18048,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18029,"src":"3363:2:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18046,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"3339:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"3339:23:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":18049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3339:27:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"3322:44:76"},{"expression":{"id":18058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18051,"name":"product","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18033,"src":"3376:7:76","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":18055,"name":"cmp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18045,"src":"3403:3:76","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":18054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3395:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18053,"name":"address","nodeType":"ElementaryTypeName","src":"3395:7:76","typeDescriptions":{}}},"id":18056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3395:12:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18052,"name":"IProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"3386:8:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProduct_$3079_$","typeString":"type(contract IProduct)"}},"id":18057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3386:22:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"src":"3376:32:76","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"id":18059,"nodeType":"ExpressionStatement","src":"3376:32:76"}]},"id":18061,"implemented":true,"kind":"function","modifiers":[],"name":"_getProduct","nameLocation":"3165:11:76","nodeType":"FunctionDefinition","parameters":{"id":18030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18029,"mutability":"mutable","name":"id","nameLocation":"3185:2:76","nodeType":"VariableDeclaration","scope":18061,"src":"3177:10:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18028,"name":"uint256","nodeType":"ElementaryTypeName","src":"3177:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3176:12:76"},"returnParameters":{"id":18034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18033,"mutability":"mutable","name":"product","nameLocation":"3221:7:76","nodeType":"VariableDeclaration","scope":18061,"src":"3212:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"},"typeName":{"id":18032,"nodeType":"UserDefinedTypeName","pathNode":{"id":18031,"name":"IProduct","nodeType":"IdentifierPath","referencedDeclaration":3079,"src":"3212:8:76"},"referencedDeclaration":3079,"src":"3212:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"visibility":"internal"}],"src":"3211:18:76"},"scope":18062,"src":"3156:259:76","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":18063,"src":"2291:1126:76"}],"src":"39:3379:76"},"id":76},"contracts/modules/PolicyController.sol":{"ast":{"absolutePath":"contracts/modules/PolicyController.sol","exportedSymbols":{"Address":[10496],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IComponent":[2988],"IComponentEvents":[5073],"IOracle":[3022],"IPolicy":[5433],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059],"PolicyController":[19974]},"id":19975,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":18064,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:77"},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":18065,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19975,"sourceUnit":26414,"src":"63:38:77","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/ComponentController.sol","file":"./ComponentController.sol","id":18066,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19975,"sourceUnit":17948,"src":"102:35:77","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":18067,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19975,"sourceUnit":5434,"src":"138:63:77","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":18069,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"4438:7:77"},"id":18070,"nodeType":"InheritanceSpecifier","src":"4438:7:77"},{"baseName":{"id":18071,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"4452:14:77"},"id":18072,"nodeType":"InheritanceSpecifier","src":"4452:14:77"}],"contractDependencies":[5433,8059,10518,26413],"contractKind":"contract","documentation":{"id":18068,"nodeType":"StructuredDocumentation","src":"203:4199:77","text":"The smart contract implements functions for policy operations, including creation, update, cancellation, and retrieval.\nIt also provides functions for claim creation, confirmation, decline, closure, and payout creation.\nAdditionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy.\nThe contract inherits from the `IPolicy` interface and the `CoreController` contract.\n1. State Variables:\n- `metadata`: A mapping that stores metadata associated with policy flows.\n- `applications`: A mapping that stores insurance applications associated with policy flows.\n- `policies`: A mapping that stores policies associated with policy flows.\n- `claims`: A nested mapping that stores claims associated with policies.\n- `payouts`: A nested mapping that stores payouts associated with policies.\n- `payoutCount`: A mapping that stores the count of payouts for each policy flow.\n- `_assigendProcessIds`: A counter variable for assigning unique process IDs.\n- `_component`: A reference to the `ComponentController` contract.\n2. Functions:\n- `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization.\n- `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data.\n- `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data.\n- `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount.\n- `revokeApplication()`: Revokes an application for a policy flow.\n- `underwriteApplication()`: Changes the state of an application to \"Underwritten\".\n- `declineApplication()`: Declines an application for a policy flow.\n- `createPolicy()`: Creates a new policy for a given application process ID.\n- `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application.\n- `expirePolicy()`: Expires a policy with the given process ID.\n- `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims.\n- `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event.\n- `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event.\n- `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event.\n- `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event.\n- `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event.\n- `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event.\n- `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists.\n- `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists.\n- `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function.\n- `getNumberOfPayouts()`: Returns the number of payouts for a given process ID.\nOverall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract."},"fullyImplemented":true,"id":19974,"linearizedBaseContracts":[19974,26413,8059,10518,5433],"name":"PolicyController","nameLocation":"4413:16:77","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7122ba06","id":18077,"mutability":"mutable","name":"metadata","nameLocation":"4600:8:77","nodeType":"VariableDeclaration","scope":19974,"src":"4548:60:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata)"},"typeName":{"id":18076,"keyType":{"id":18073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4556:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4548:44:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata)"},"valueType":{"id":18075,"nodeType":"UserDefinedTypeName","pathNode":{"id":18074,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"4583:8:77"},"referencedDeclaration":5248,"src":"4583:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}}},"visibility":"public"},{"constant":false,"functionSelector":"4cafa121","id":18082,"mutability":"mutable","name":"applications","nameLocation":"4690:12:77","nodeType":"VariableDeclaration","scope":19974,"src":"4635:67:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application)"},"typeName":{"id":18081,"keyType":{"id":18078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4643:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4635:47:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application)"},"valueType":{"id":18080,"nodeType":"UserDefinedTypeName","pathNode":{"id":18079,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"4670:11:77"},"referencedDeclaration":5262,"src":"4670:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}}},"visibility":"public"},{"constant":false,"functionSelector":"ddbfd8ef","id":18087,"mutability":"mutable","name":"policies","nameLocation":"4775:8:77","nodeType":"VariableDeclaration","scope":19974,"src":"4725:58:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy)"},"typeName":{"id":18086,"keyType":{"id":18083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4733:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4725:42:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy)"},"valueType":{"id":18085,"nodeType":"UserDefinedTypeName","pathNode":{"id":18084,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"4760:6:77"},"referencedDeclaration":5282,"src":"4760:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}}},"visibility":"public"},{"constant":false,"functionSelector":"9e81f96a","id":18094,"mutability":"mutable","name":"claims","nameLocation":"4887:6:77","nodeType":"VariableDeclaration","scope":19974,"src":"4804:89:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim))"},"typeName":{"id":18093,"keyType":{"id":18088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4812:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4804:75:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim))"},"valueType":{"id":18092,"keyType":{"id":18089,"name":"uint256","nodeType":"ElementaryTypeName","src":"4847:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4839:39:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim)"},"valueType":{"id":18091,"nodeType":"UserDefinedTypeName","pathNode":{"id":18090,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"4872:5:77"},"referencedDeclaration":5296,"src":"4872:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}}}},"visibility":"public"},{"constant":false,"functionSelector":"80f2122c","id":18101,"mutability":"mutable","name":"payouts","nameLocation":"5000:7:77","nodeType":"VariableDeclaration","scope":19974,"src":"4915:92:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout))"},"typeName":{"id":18100,"keyType":{"id":18095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4923:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4915:77:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout))"},"valueType":{"id":18099,"keyType":{"id":18096,"name":"uint256","nodeType":"ElementaryTypeName","src":"4958:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4950:41:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$","typeString":"mapping(uint256 => struct IPolicy.Payout)"},"valueType":{"id":18098,"nodeType":"UserDefinedTypeName","pathNode":{"id":18097,"name":"Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"4984:6:77"},"referencedDeclaration":5310,"src":"4984:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}}}},"visibility":"public"},{"constant":false,"functionSelector":"357f030a","id":18105,"mutability":"mutable","name":"payoutCount","nameLocation":"5064:11:77","nodeType":"VariableDeclaration","scope":19974,"src":"5013:62:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":18104,"keyType":{"id":18102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5021:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5013:43:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":18103,"name":"uint256","nodeType":"ElementaryTypeName","src":"5048:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"id":18107,"mutability":"mutable","name":"_assigendProcessIds","nameLocation":"5171:19:77","nodeType":"VariableDeclaration","scope":19974,"src":"5155:35:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18106,"name":"uint256","nodeType":"ElementaryTypeName","src":"5155:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":18110,"mutability":"mutable","name":"_component","nameLocation":"5225:10:77","nodeType":"VariableDeclaration","scope":19974,"src":"5197:38:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":18109,"nodeType":"UserDefinedTypeName","pathNode":{"id":18108,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"5197:19:77"},"referencedDeclaration":17947,"src":"5197:19:77","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"baseFunctions":[26387],"body":{"id":18124,"nodeType":"Block","src":"5305:83:77","statements":[{"expression":{"id":18122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18116,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18110,"src":"5315:10:77","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":18119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5368:11:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":18118,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5348:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":18120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5348:32:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18117,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"5328:19:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":18121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5328:53:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"5315:66:77","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18123,"nodeType":"ExpressionStatement","src":"5315:66:77"}]},"id":18125,"implemented":true,"kind":"function","modifiers":[{"id":18114,"modifierName":{"id":18113,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"5288:16:77"},"nodeType":"ModifierInvocation","src":"5288:16:77"}],"name":"_afterInitialize","nameLocation":"5251:16:77","nodeType":"FunctionDefinition","overrides":{"id":18112,"nodeType":"OverrideSpecifier","overrides":[],"src":"5279:8:77"},"parameters":{"id":18111,"nodeType":"ParameterList","parameters":[],"src":"5267:2:77"},"returnParameters":{"id":18115,"nodeType":"ParameterList","parameters":[],"src":"5305:0:77"},"scope":19974,"src":"5242:146:77","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5321],"body":{"id":18237,"nodeType":"Block","src":"5622:834:77","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18141,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18127,"src":"5640:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5657:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5649:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18142,"name":"address","nodeType":"ElementaryTypeName","src":"5649:7:77","typeDescriptions":{}}},"id":18145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5649:10:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5640:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030313a494e56414c49445f4f574e4552","id":18147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5661:29:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_b56e7a919624c31e06a250efb3d4a1c8dc2262f50cf44fe416ac86523a45cda1","typeString":"literal_string \"ERROR:POL-001:INVALID_OWNER\""},"value":"ERROR:POL-001:INVALID_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b56e7a919624c31e06a250efb3d4a1c8dc2262f50cf44fe416ac86523a45cda1","typeString":"literal_string \"ERROR:POL-001:INVALID_OWNER\""}],"id":18140,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5632:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5632:59:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18149,"nodeType":"ExpressionStatement","src":"5632:59:77"},{"expression":{"arguments":[{"arguments":[{"id":18153,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18129,"src":"5731:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18151,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18110,"src":"5710:10:77","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"5710:20:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":18154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5710:31:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030323a494e56414c49445f50524f44554354","id":18155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5743:31:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_be65d387a5e288bbda6f7f29353c4a4177557e85600e7b58dfff26aa731432f1","typeString":"literal_string \"ERROR:POL-002:INVALID_PRODUCT\""},"value":"ERROR:POL-002:INVALID_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be65d387a5e288bbda6f7f29353c4a4177557e85600e7b58dfff26aa731432f1","typeString":"literal_string \"ERROR:POL-002:INVALID_PRODUCT\""}],"id":18150,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5702:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5702:73:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18157,"nodeType":"ExpressionStatement","src":"5702:73:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":18166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18161,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18129,"src":"5822:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18159,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18110,"src":"5793:10:77","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"5793:28:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":18162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5793:39:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":18163,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"5836:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":18164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"5836:25:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":18165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"5836:32:77","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"5793:75:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030333a50524f445543545f4e4f545f414354495645","id":18167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5870:34:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf94c9406086159fab987519e07ae464f5659ba577264ceb8dcfb2519b4068e5","typeString":"literal_string \"ERROR:POL-003:PRODUCT_NOT_ACTIVE\""},"value":"ERROR:POL-003:PRODUCT_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bf94c9406086159fab987519e07ae464f5659ba577264ceb8dcfb2519b4068e5","typeString":"literal_string \"ERROR:POL-003:PRODUCT_NOT_ACTIVE\""}],"id":18158,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5785:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5785:120:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18169,"nodeType":"ExpressionStatement","src":"5785:120:77"},{"expression":{"id":18173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18170,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18138,"src":"5924:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":18171,"name":"_generateNextProcessId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19973,"src":"5936:22:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_bytes32_$","typeString":"function () returns (bytes32)"}},"id":18172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5936:24:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5924:36:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":18174,"nodeType":"ExpressionStatement","src":"5924:36:77"},{"assignments":[18177],"declarations":[{"constant":false,"id":18177,"mutability":"mutable","name":"meta","nameLocation":"5987:4:77","nodeType":"VariableDeclaration","scope":18237,"src":"5970:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":18176,"nodeType":"UserDefinedTypeName","pathNode":{"id":18175,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"5970:8:77"},"referencedDeclaration":5248,"src":"5970:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":18181,"initialValue":{"baseExpression":{"id":18178,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"5994:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":18180,"indexExpression":{"id":18179,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18138,"src":"6003:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5994:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5970:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18183,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6031:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"6031:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6049:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6031:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3030343a4d455441444154415f414c52454144595f455849535453","id":18187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6052:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_72d2655fbab03b37603c9b8823922a50adfc2cb818fbcde0bff3db8e97120ce2","typeString":"literal_string \"ERROR:POC-004:METADATA_ALREADY_EXISTS\""},"value":"ERROR:POC-004:METADATA_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_72d2655fbab03b37603c9b8823922a50adfc2cb818fbcde0bff3db8e97120ce2","typeString":"literal_string \"ERROR:POC-004:METADATA_ALREADY_EXISTS\""}],"id":18182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6023:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6023:69:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18189,"nodeType":"ExpressionStatement","src":"6023:69:77"},{"expression":{"id":18194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18190,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6103:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"6103:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18193,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18127,"src":"6116:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6103:18:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18195,"nodeType":"ExpressionStatement","src":"6103:18:77"},{"expression":{"id":18200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18196,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6131:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"6131:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18199,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18129,"src":"6148:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6131:26:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18201,"nodeType":"ExpressionStatement","src":"6131:26:77"},{"expression":{"id":18207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18202,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6167:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"6167:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18205,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"6180:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":18206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Started","nodeType":"MemberAccess","referencedDeclaration":5214,"src":"6180:23:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"src":"6167:36:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"id":18208,"nodeType":"ExpressionStatement","src":"6167:36:77"},{"expression":{"id":18213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18209,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6213:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5243,"src":"6213:9:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18212,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18131,"src":"6225:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"6213:16:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":18214,"nodeType":"ExpressionStatement","src":"6213:16:77"},{"expression":{"id":18220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18215,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6239:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"6239:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18218,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"6256:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6256:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6239:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18221,"nodeType":"ExpressionStatement","src":"6239:32:77"},{"expression":{"id":18227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18222,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6305:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5247,"src":"6305:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18225,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"6322:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6322:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6305:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18228,"nodeType":"ExpressionStatement","src":"6305:32:77"},{"eventCall":{"arguments":[{"id":18230,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18127,"src":"6396:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18231,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18138,"src":"6403:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18232,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18129,"src":"6414:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18233,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"6425:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":18234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Started","nodeType":"MemberAccess","referencedDeclaration":5214,"src":"6425:23:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}],"id":18229,"name":"LogMetadataCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"6377:18:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_enum$_PolicyFlowState_$5217_$returns$__$","typeString":"function (address,bytes32,uint256,enum IPolicy.PolicyFlowState)"}},"id":18235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6377:72:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18236,"nodeType":"EmitStatement","src":"6372:77:77"}]},"functionSelector":"a1814a1a","id":18238,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5573:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18136,"modifierName":{"id":18134,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"5558:14:77"},"nodeType":"ModifierInvocation","src":"5558:24:77"}],"name":"createPolicyFlow","nameLocation":"5422:16:77","nodeType":"FunctionDefinition","overrides":{"id":18133,"nodeType":"OverrideSpecifier","overrides":[],"src":"5541:8:77"},"parameters":{"id":18132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18127,"mutability":"mutable","name":"owner","nameLocation":"5456:5:77","nodeType":"VariableDeclaration","scope":18238,"src":"5448:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18126,"name":"address","nodeType":"ElementaryTypeName","src":"5448:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18129,"mutability":"mutable","name":"productId","nameLocation":"5479:9:77","nodeType":"VariableDeclaration","scope":18238,"src":"5471:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18128,"name":"uint256","nodeType":"ElementaryTypeName","src":"5471:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18131,"mutability":"mutable","name":"data","nameLocation":"5513:4:77","nodeType":"VariableDeclaration","scope":18238,"src":"5498:19:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18130,"name":"bytes","nodeType":"ElementaryTypeName","src":"5498:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5438:85:77"},"returnParameters":{"id":18139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18138,"mutability":"mutable","name":"processId","nameLocation":"5607:9:77","nodeType":"VariableDeclaration","scope":18238,"src":"5599:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5599:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5598:19:77"},"scope":19974,"src":"5413:1043:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5332],"body":{"id":18362,"nodeType":"Block","src":"6702:1062:77","statements":[{"assignments":[18255],"declarations":[{"constant":false,"id":18255,"mutability":"mutable","name":"meta","nameLocation":"6729:4:77","nodeType":"VariableDeclaration","scope":18362,"src":"6712:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":18254,"nodeType":"UserDefinedTypeName","pathNode":{"id":18253,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"6712:8:77"},"referencedDeclaration":5248,"src":"6712:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":18259,"initialValue":{"baseExpression":{"id":18256,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"6736:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":18258,"indexExpression":{"id":18257,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18240,"src":"6745:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6736:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6712:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18261,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18255,"src":"6773:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"6773:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6790:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6773:18:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031303a4d455441444154415f444f45535f4e4f545f4558495354","id":18265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6793:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd52a7803fdc21b6951089460e3af3aafa2d9d5b5456b70275b97403a595056","typeString":"literal_string \"ERROR:POC-010:METADATA_DOES_NOT_EXIST\""},"value":"ERROR:POC-010:METADATA_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6dd52a7803fdc21b6951089460e3af3aafa2d9d5b5456b70275b97403a595056","typeString":"literal_string \"ERROR:POC-010:METADATA_DOES_NOT_EXIST\""}],"id":18260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6765:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6765:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18267,"nodeType":"ExpressionStatement","src":"6765:68:77"},{"assignments":[18270],"declarations":[{"constant":false,"id":18270,"mutability":"mutable","name":"application","nameLocation":"6864:11:77","nodeType":"VariableDeclaration","scope":18362,"src":"6844:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18269,"nodeType":"UserDefinedTypeName","pathNode":{"id":18268,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"6844:11:77"},"referencedDeclaration":5262,"src":"6844:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18274,"initialValue":{"baseExpression":{"id":18271,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"6878:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18273,"indexExpression":{"id":18272,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18240,"src":"6891:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6878:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6844:57:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18276,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"6919:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"6919:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6944:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6919:26:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031313a4150504c49434154494f4e5f414c52454144595f455849535453","id":18280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6947:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_1db96ed0ae0923362061f94230382ef4f079d53202d86c4160c88d024476fc3b","typeString":"literal_string \"ERROR:POC-011:APPLICATION_ALREADY_EXISTS\""},"value":"ERROR:POC-011:APPLICATION_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1db96ed0ae0923362061f94230382ef4f079d53202d86c4160c88d024476fc3b","typeString":"literal_string \"ERROR:POC-011:APPLICATION_ALREADY_EXISTS\""}],"id":18275,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6911:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6911:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18282,"nodeType":"ExpressionStatement","src":"6911:79:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18284,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18242,"src":"7009:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7025:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7009:17:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031323a5052454d49554d5f414d4f554e545f5a45524f","id":18287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7028:35:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_78097f0a73eb9c8a0cc0df22ac96ffe69f6d4347e55bf144298e75d504f52626","typeString":"literal_string \"ERROR:POC-012:PREMIUM_AMOUNT_ZERO\""},"value":"ERROR:POC-012:PREMIUM_AMOUNT_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_78097f0a73eb9c8a0cc0df22ac96ffe69f6d4347e55bf144298e75d504f52626","typeString":"literal_string \"ERROR:POC-012:PREMIUM_AMOUNT_ZERO\""}],"id":18283,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7001:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7001:63:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18289,"nodeType":"ExpressionStatement","src":"7001:63:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18291,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18244,"src":"7082:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":18292,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18242,"src":"7101:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7082:32:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031333a53554d5f494e53555245445f414d4f554e545f544f4f5f534d414c4c","id":18294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7116:44:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_a96e2ba49a294fb57653f2edea6788990e95e8ccf3f4008e1f67857f31ab7af5","typeString":"literal_string \"ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL\""},"value":"ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a96e2ba49a294fb57653f2edea6788990e95e8ccf3f4008e1f67857f31ab7af5","typeString":"literal_string \"ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL\""}],"id":18290,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7074:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7074:87:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18296,"nodeType":"ExpressionStatement","src":"7074:87:77"},{"expression":{"id":18302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18297,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7172:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"7172:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18300,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"7192:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5218,"src":"7192:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"7172:44:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"id":18303,"nodeType":"ExpressionStatement","src":"7172:44:77"},{"expression":{"id":18308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18304,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7226:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"7226:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18307,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18242,"src":"7254:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7226:41:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18309,"nodeType":"ExpressionStatement","src":"7226:41:77"},{"expression":{"id":18314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18310,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7277:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"7277:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18313,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18244,"src":"7308:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7277:47:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18315,"nodeType":"ExpressionStatement","src":"7277:47:77"},{"expression":{"id":18320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18316,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7334:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"7334:16:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18319,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18246,"src":"7353:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"7334:23:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":18321,"nodeType":"ExpressionStatement","src":"7334:23:77"},{"expression":{"id":18327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18322,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7367:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"7367:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18325,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"7391:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7391:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7367:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18328,"nodeType":"ExpressionStatement","src":"7367:39:77"},{"expression":{"id":18334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18329,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7440:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"7440:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18332,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"7464:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7464:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7440:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18335,"nodeType":"ExpressionStatement","src":"7440:39:77"},{"expression":{"id":18341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18336,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18255,"src":"7514:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"7514:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18339,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"7527:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":18340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5215,"src":"7527:22:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"src":"7514:35:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"id":18342,"nodeType":"ExpressionStatement","src":"7514:35:77"},{"expression":{"id":18348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18343,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18255,"src":"7559:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5247,"src":"7559:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18346,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"7576:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7576:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7559:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18349,"nodeType":"ExpressionStatement","src":"7559:32:77"},{"eventCall":{"arguments":[{"id":18351,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18240,"src":"7654:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18352,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18255,"src":"7665:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"7665:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}],"id":18350,"name":"LogMetadataStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5107,"src":"7630:23:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_PolicyFlowState_$5217_$returns$__$","typeString":"function (bytes32,enum IPolicy.PolicyFlowState)"}},"id":18354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7630:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18355,"nodeType":"EmitStatement","src":"7625:51:77"},{"eventCall":{"arguments":[{"id":18357,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18240,"src":"7714:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18358,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18242,"src":"7725:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18359,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18244,"src":"7740:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18356,"name":"LogApplicationCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5115,"src":"7692:21:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":18360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7692:65:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18361,"nodeType":"EmitStatement","src":"7687:70:77"}]},"functionSelector":"6780336e","id":18363,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6688:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18251,"modifierName":{"id":18249,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"6673:14:77"},"nodeType":"ModifierInvocation","src":"6673:24:77"}],"name":"createApplication","nameLocation":"6493:17:77","nodeType":"FunctionDefinition","overrides":{"id":18248,"nodeType":"OverrideSpecifier","overrides":[],"src":"6656:8:77"},"parameters":{"id":18247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18240,"mutability":"mutable","name":"processId","nameLocation":"6528:9:77","nodeType":"VariableDeclaration","scope":18363,"src":"6520:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6520:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18242,"mutability":"mutable","name":"premiumAmount","nameLocation":"6556:13:77","nodeType":"VariableDeclaration","scope":18363,"src":"6548:21:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18241,"name":"uint256","nodeType":"ElementaryTypeName","src":"6548:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18244,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"6587:16:77","nodeType":"VariableDeclaration","scope":18363,"src":"6579:24:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18243,"name":"uint256","nodeType":"ElementaryTypeName","src":"6579:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18246,"mutability":"mutable","name":"data","nameLocation":"6628:4:77","nodeType":"VariableDeclaration","scope":18363,"src":"6613:19:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18245,"name":"bytes","nodeType":"ElementaryTypeName","src":"6613:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6510:128:77"},"returnParameters":{"id":18252,"nodeType":"ParameterList","parameters":[],"src":"6702:0:77"},"scope":19974,"src":"6484:1280:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5354],"body":{"id":18415,"nodeType":"Block","src":"7860:425:77","statements":[{"assignments":[18373],"declarations":[{"constant":false,"id":18373,"mutability":"mutable","name":"policy","nameLocation":"7885:6:77","nodeType":"VariableDeclaration","scope":18415,"src":"7870:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":18372,"nodeType":"UserDefinedTypeName","pathNode":{"id":18371,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"7870:6:77"},"referencedDeclaration":5282,"src":"7870:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":18377,"initialValue":{"baseExpression":{"id":18374,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"7894:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":18376,"indexExpression":{"id":18375,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18365,"src":"7903:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7894:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7870:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18379,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18373,"src":"7931:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"7931:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7950:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7931:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3131303a504f4c4943595f444f45535f4e4f545f4558495354","id":18383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7953:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8b70c4aba1c2cd717e92fc9379cd96b59815516b78271810475c67b9507a6b5","typeString":"literal_string \"ERROR:POC-110:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-110:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8b70c4aba1c2cd717e92fc9379cd96b59815516b78271810475c67b9507a6b5","typeString":"literal_string \"ERROR:POC-110:POLICY_DOES_NOT_EXIST\""}],"id":18378,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7923:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7923:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18385,"nodeType":"ExpressionStatement","src":"7923:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18387,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18373,"src":"8009:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"8009:24:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18389,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18367,"src":"8036:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8009:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":18391,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18373,"src":"8046:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"8046:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8009:65:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3131313a414d4f554e545f544f4f5f424947","id":18394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8076:30:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca128060720b4fcc87482c839fb4ff931d94c5e1cf662666b918d32e6fcfb90c","typeString":"literal_string \"ERROR:POC-111:AMOUNT_TOO_BIG\""},"value":"ERROR:POC-111:AMOUNT_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ca128060720b4fcc87482c839fb4ff931d94c5e1cf662666b918d32e6fcfb90c","typeString":"literal_string \"ERROR:POC-111:AMOUNT_TOO_BIG\""}],"id":18386,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8001:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8001:106:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18396,"nodeType":"ExpressionStatement","src":"8001:106:77"},{"expression":{"id":18401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18397,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18373,"src":"8118:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"8118:24:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":18400,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18367,"src":"8146:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8118:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18402,"nodeType":"ExpressionStatement","src":"8118:34:77"},{"expression":{"id":18408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18403,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18373,"src":"8162:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"8162:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18406,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"8181:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8181:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8162:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18409,"nodeType":"ExpressionStatement","src":"8162:34:77"},{"eventCall":{"arguments":[{"id":18411,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18365,"src":"8260:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18412,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18367,"src":"8271:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18410,"name":"LogPremiumCollected","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"8240:19:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":18413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8240:38:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18414,"nodeType":"EmitStatement","src":"8235:43:77"}]},"functionSelector":"e3ebdea5","id":18416,"implemented":true,"kind":"function","modifiers":[],"name":"collectPremium","nameLocation":"7779:14:77","nodeType":"FunctionDefinition","overrides":{"id":18369,"nodeType":"OverrideSpecifier","overrides":[],"src":"7847:8:77"},"parameters":{"id":18368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18365,"mutability":"mutable","name":"processId","nameLocation":"7802:9:77","nodeType":"VariableDeclaration","scope":18416,"src":"7794:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18364,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7794:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18367,"mutability":"mutable","name":"amount","nameLocation":"7821:6:77","nodeType":"VariableDeclaration","scope":18416,"src":"7813:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18366,"name":"uint256","nodeType":"ElementaryTypeName","src":"7813:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7793:35:77"},"returnParameters":{"id":18370,"nodeType":"ParameterList","parameters":[],"src":"7860:0:77"},"scope":19974,"src":"7770:515:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5337],"body":{"id":18502,"nodeType":"Block","src":"8404:752:77","statements":[{"assignments":[18427],"declarations":[{"constant":false,"id":18427,"mutability":"mutable","name":"meta","nameLocation":"8431:4:77","nodeType":"VariableDeclaration","scope":18502,"src":"8414:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":18426,"nodeType":"UserDefinedTypeName","pathNode":{"id":18425,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"8414:8:77"},"referencedDeclaration":5248,"src":"8414:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":18431,"initialValue":{"baseExpression":{"id":18428,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"8438:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":18430,"indexExpression":{"id":18429,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18418,"src":"8447:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8438:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8414:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18433,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18427,"src":"8475:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"8475:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8492:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8475:18:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031343a4d455441444154415f444f45535f4e4f545f4558495354","id":18437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8495:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_c7b69042e7f6515d560658ee6d1de6d418e69114e700e0b6a50b7b0e552dda1c","typeString":"literal_string \"ERROR:POC-014:METADATA_DOES_NOT_EXIST\""},"value":"ERROR:POC-014:METADATA_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c7b69042e7f6515d560658ee6d1de6d418e69114e700e0b6a50b7b0e552dda1c","typeString":"literal_string \"ERROR:POC-014:METADATA_DOES_NOT_EXIST\""}],"id":18432,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8467:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8467:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18439,"nodeType":"ExpressionStatement","src":"8467:68:77"},{"assignments":[18442],"declarations":[{"constant":false,"id":18442,"mutability":"mutable","name":"application","nameLocation":"8566:11:77","nodeType":"VariableDeclaration","scope":18502,"src":"8546:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18441,"nodeType":"UserDefinedTypeName","pathNode":{"id":18440,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"8546:11:77"},"referencedDeclaration":5262,"src":"8546:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18446,"initialValue":{"baseExpression":{"id":18443,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"8580:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18445,"indexExpression":{"id":18444,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18418,"src":"8593:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8580:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8546:57:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18448,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18442,"src":"8621:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"8621:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8645:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8621:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031353a4150504c49434154494f4e5f444f45535f4e4f545f4558495354","id":18452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8648:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_84d582f54bcbf9ecef49660743d83c5d351adfda381e7de998dfd7253752ca0d","typeString":"literal_string \"ERROR:POC-015:APPLICATION_DOES_NOT_EXIST\""},"value":"ERROR:POC-015:APPLICATION_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_84d582f54bcbf9ecef49660743d83c5d351adfda381e7de998dfd7253752ca0d","typeString":"literal_string \"ERROR:POC-015:APPLICATION_DOES_NOT_EXIST\""}],"id":18447,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8613:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8613:78:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18454,"nodeType":"ExpressionStatement","src":"8613:78:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":18460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18456,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18442,"src":"8709:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"8709:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18458,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"8730:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5218,"src":"8730:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"8709:45:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031363a4150504c49434154494f4e5f53544154455f494e56414c4944","id":18461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8756:41:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_a28f16b2c92dc01202801f97442d7b5b72a32eaf29ba8288670aca403d1d91c2","typeString":"literal_string \"ERROR:POC-016:APPLICATION_STATE_INVALID\""},"value":"ERROR:POC-016:APPLICATION_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a28f16b2c92dc01202801f97442d7b5b72a32eaf29ba8288670aca403d1d91c2","typeString":"literal_string \"ERROR:POC-016:APPLICATION_STATE_INVALID\""}],"id":18455,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8701:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8701:97:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18463,"nodeType":"ExpressionStatement","src":"8701:97:77"},{"expression":{"id":18469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18464,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18442,"src":"8809:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"8809:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18467,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"8829:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Revoked","nodeType":"MemberAccess","referencedDeclaration":5219,"src":"8829:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"8809:44:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"id":18470,"nodeType":"ExpressionStatement","src":"8809:44:77"},{"expression":{"id":18476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18471,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18442,"src":"8863:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"8863:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18474,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"8887:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8887:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8863:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18477,"nodeType":"ExpressionStatement","src":"8863:39:77"},{"expression":{"id":18483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18478,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18427,"src":"8937:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"8937:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18481,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"8950:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":18482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Finished","nodeType":"MemberAccess","referencedDeclaration":5216,"src":"8950:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"src":"8937:37:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"id":18484,"nodeType":"ExpressionStatement","src":"8937:37:77"},{"expression":{"id":18490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18485,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18427,"src":"8984:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5247,"src":"8984:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18488,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9001:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9001:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8984:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18491,"nodeType":"ExpressionStatement","src":"8984:32:77"},{"eventCall":{"arguments":[{"id":18493,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18418,"src":"9079:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18494,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18427,"src":"9090:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"9090:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}],"id":18492,"name":"LogMetadataStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5107,"src":"9055:23:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_PolicyFlowState_$5217_$returns$__$","typeString":"function (bytes32,enum IPolicy.PolicyFlowState)"}},"id":18496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9055:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18497,"nodeType":"EmitStatement","src":"9050:51:77"},{"eventCall":{"arguments":[{"id":18499,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18418,"src":"9139:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18498,"name":"LogApplicationRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5119,"src":"9117:21:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":18500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9117:32:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18501,"nodeType":"EmitStatement","src":"9112:37:77"}]},"functionSelector":"eb96cbed","id":18503,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8390:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18423,"modifierName":{"id":18421,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"8375:14:77"},"nodeType":"ModifierInvocation","src":"8375:24:77"}],"name":"revokeApplication","nameLocation":"8304:17:77","nodeType":"FunctionDefinition","overrides":{"id":18420,"nodeType":"OverrideSpecifier","overrides":[],"src":"8358:8:77"},"parameters":{"id":18419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18418,"mutability":"mutable","name":"processId","nameLocation":"8330:9:77","nodeType":"VariableDeclaration","scope":18503,"src":"8322:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8322:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8321:19:77"},"returnParameters":{"id":18424,"nodeType":"ParameterList","parameters":[],"src":"8404:0:77"},"scope":19974,"src":"8295:861:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5342],"body":{"id":18554,"nodeType":"Block","src":"9275:455:77","statements":[{"assignments":[18514],"declarations":[{"constant":false,"id":18514,"mutability":"mutable","name":"application","nameLocation":"9305:11:77","nodeType":"VariableDeclaration","scope":18554,"src":"9285:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18513,"nodeType":"UserDefinedTypeName","pathNode":{"id":18512,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"9285:11:77"},"referencedDeclaration":5262,"src":"9285:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18518,"initialValue":{"baseExpression":{"id":18515,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"9319:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18517,"indexExpression":{"id":18516,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18505,"src":"9332:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9319:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9285:57:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18520,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18514,"src":"9360:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"9360:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9384:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9360:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031373a4150504c49434154494f4e5f444f45535f4e4f545f4558495354","id":18524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9387:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_d48c4714dc35abe5eee68196d3e0333f2895edd4c645d06d442d03e129bca5e5","typeString":"literal_string \"ERROR:POC-017:APPLICATION_DOES_NOT_EXIST\""},"value":"ERROR:POC-017:APPLICATION_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d48c4714dc35abe5eee68196d3e0333f2895edd4c645d06d442d03e129bca5e5","typeString":"literal_string \"ERROR:POC-017:APPLICATION_DOES_NOT_EXIST\""}],"id":18519,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9352:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9352:78:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18526,"nodeType":"ExpressionStatement","src":"9352:78:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":18532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18528,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18514,"src":"9448:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"9448:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18530,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"9469:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5218,"src":"9469:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"9448:45:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031383a4150504c49434154494f4e5f53544154455f494e56414c4944","id":18533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9495:41:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc44a0f37543fb9791a7c26480d070adcda3855758541b01e4ac627d1640aa56","typeString":"literal_string \"ERROR:POC-018:APPLICATION_STATE_INVALID\""},"value":"ERROR:POC-018:APPLICATION_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dc44a0f37543fb9791a7c26480d070adcda3855758541b01e4ac627d1640aa56","typeString":"literal_string \"ERROR:POC-018:APPLICATION_STATE_INVALID\""}],"id":18527,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9440:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9440:97:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18535,"nodeType":"ExpressionStatement","src":"9440:97:77"},{"expression":{"id":18541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18536,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18514,"src":"9548:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"9548:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18539,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"9568:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Underwritten","nodeType":"MemberAccess","referencedDeclaration":5220,"src":"9568:29:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"9548:49:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"id":18542,"nodeType":"ExpressionStatement","src":"9548:49:77"},{"expression":{"id":18548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18543,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18514,"src":"9607:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"9607:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18546,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9631:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9631:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9607:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18549,"nodeType":"ExpressionStatement","src":"9607:39:77"},{"eventCall":{"arguments":[{"id":18551,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18505,"src":"9713:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18550,"name":"LogApplicationUnderwritten","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5123,"src":"9686:26:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":18552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9686:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18553,"nodeType":"EmitStatement","src":"9681:42:77"}]},"functionSelector":"5c955288","id":18555,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9261:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18510,"modifierName":{"id":18508,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"9246:14:77"},"nodeType":"ModifierInvocation","src":"9246:24:77"}],"name":"underwriteApplication","nameLocation":"9171:21:77","nodeType":"FunctionDefinition","overrides":{"id":18507,"nodeType":"OverrideSpecifier","overrides":[],"src":"9229:8:77"},"parameters":{"id":18506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18505,"mutability":"mutable","name":"processId","nameLocation":"9201:9:77","nodeType":"VariableDeclaration","scope":18555,"src":"9193:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9193:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9192:19:77"},"returnParameters":{"id":18511,"nodeType":"ParameterList","parameters":[],"src":"9275:0:77"},"scope":19974,"src":"9162:568:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5347],"body":{"id":18641,"nodeType":"Block","src":"9846:754:77","statements":[{"assignments":[18566],"declarations":[{"constant":false,"id":18566,"mutability":"mutable","name":"meta","nameLocation":"9873:4:77","nodeType":"VariableDeclaration","scope":18641,"src":"9856:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":18565,"nodeType":"UserDefinedTypeName","pathNode":{"id":18564,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"9856:8:77"},"referencedDeclaration":5248,"src":"9856:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":18570,"initialValue":{"baseExpression":{"id":18567,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"9880:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":18569,"indexExpression":{"id":18568,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"9889:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9880:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9856:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18572,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18566,"src":"9917:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"9917:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9934:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9917:18:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031393a4d455441444154415f444f45535f4e4f545f4558495354","id":18576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9937:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3704f3da0c4404bcf7333b4ad925aa1079f426470842ae45a22540b0335abfe9","typeString":"literal_string \"ERROR:POC-019:METADATA_DOES_NOT_EXIST\""},"value":"ERROR:POC-019:METADATA_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3704f3da0c4404bcf7333b4ad925aa1079f426470842ae45a22540b0335abfe9","typeString":"literal_string \"ERROR:POC-019:METADATA_DOES_NOT_EXIST\""}],"id":18571,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9909:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9909:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18578,"nodeType":"ExpressionStatement","src":"9909:68:77"},{"assignments":[18581],"declarations":[{"constant":false,"id":18581,"mutability":"mutable","name":"application","nameLocation":"10008:11:77","nodeType":"VariableDeclaration","scope":18641,"src":"9988:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18580,"nodeType":"UserDefinedTypeName","pathNode":{"id":18579,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"9988:11:77"},"referencedDeclaration":5262,"src":"9988:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18585,"initialValue":{"baseExpression":{"id":18582,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"10022:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18584,"indexExpression":{"id":18583,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"10035:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10022:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9988:57:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18587,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18581,"src":"10063:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"10063:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10087:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10063:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032303a4150504c49434154494f4e5f444f45535f4e4f545f4558495354","id":18591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10090:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb328158e0ed34e58154822f43e033245d25dd37ef2fd43004b775c706f4fcad","typeString":"literal_string \"ERROR:POC-020:APPLICATION_DOES_NOT_EXIST\""},"value":"ERROR:POC-020:APPLICATION_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb328158e0ed34e58154822f43e033245d25dd37ef2fd43004b775c706f4fcad","typeString":"literal_string \"ERROR:POC-020:APPLICATION_DOES_NOT_EXIST\""}],"id":18586,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10055:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10055:78:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18593,"nodeType":"ExpressionStatement","src":"10055:78:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":18599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18595,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18581,"src":"10151:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"10151:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18597,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"10172:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5218,"src":"10172:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"10151:45:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032313a4150504c49434154494f4e5f53544154455f494e56414c4944","id":18600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10198:41:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f9b1806d4697b0956752b1032b95647f09da6dcb802b7b2ad16478e69e208e5","typeString":"literal_string \"ERROR:POC-021:APPLICATION_STATE_INVALID\""},"value":"ERROR:POC-021:APPLICATION_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1f9b1806d4697b0956752b1032b95647f09da6dcb802b7b2ad16478e69e208e5","typeString":"literal_string \"ERROR:POC-021:APPLICATION_STATE_INVALID\""}],"id":18594,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10143:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10143:97:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18602,"nodeType":"ExpressionStatement","src":"10143:97:77"},{"expression":{"id":18608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18603,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18581,"src":"10251:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"10251:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18606,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"10271:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":5221,"src":"10271:25:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"10251:45:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"id":18609,"nodeType":"ExpressionStatement","src":"10251:45:77"},{"expression":{"id":18615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18610,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18581,"src":"10306:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"10306:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18613,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"10330:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10330:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10306:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18616,"nodeType":"ExpressionStatement","src":"10306:39:77"},{"expression":{"id":18622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18617,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18566,"src":"10380:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"10380:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18620,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"10393:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":18621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Finished","nodeType":"MemberAccess","referencedDeclaration":5216,"src":"10393:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"src":"10380:37:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"id":18623,"nodeType":"ExpressionStatement","src":"10380:37:77"},{"expression":{"id":18629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18624,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18566,"src":"10427:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5247,"src":"10427:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18627,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"10444:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10444:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10427:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18630,"nodeType":"ExpressionStatement","src":"10427:32:77"},{"eventCall":{"arguments":[{"id":18632,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"10522:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18633,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18566,"src":"10533:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"10533:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}],"id":18631,"name":"LogMetadataStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5107,"src":"10498:23:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_PolicyFlowState_$5217_$returns$__$","typeString":"function (bytes32,enum IPolicy.PolicyFlowState)"}},"id":18635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10498:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18636,"nodeType":"EmitStatement","src":"10493:51:77"},{"eventCall":{"arguments":[{"id":18638,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"10583:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18637,"name":"LogApplicationDeclined","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5127,"src":"10560:22:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":18639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10560:33:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18640,"nodeType":"EmitStatement","src":"10555:38:77"}]},"functionSelector":"296d6c7d","id":18642,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9832:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18562,"modifierName":{"id":18560,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"9817:14:77"},"nodeType":"ModifierInvocation","src":"9817:24:77"}],"name":"declineApplication","nameLocation":"9745:18:77","nodeType":"FunctionDefinition","overrides":{"id":18559,"nodeType":"OverrideSpecifier","overrides":[],"src":"9800:8:77"},"parameters":{"id":18558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18557,"mutability":"mutable","name":"processId","nameLocation":"9772:9:77","nodeType":"VariableDeclaration","scope":18642,"src":"9764:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9764:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9763:19:77"},"returnParameters":{"id":18563,"nodeType":"ParameterList","parameters":[],"src":"9846:0:77"},"scope":19974,"src":"9736:864:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5368],"body":{"id":18726,"nodeType":"Block","src":"10729:700:77","statements":[{"assignments":[18653],"declarations":[{"constant":false,"id":18653,"mutability":"mutable","name":"application","nameLocation":"10758:11:77","nodeType":"VariableDeclaration","scope":18726,"src":"10739:30:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18652,"nodeType":"UserDefinedTypeName","pathNode":{"id":18651,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"10739:11:77"},"referencedDeclaration":5262,"src":"10739:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18657,"initialValue":{"baseExpression":{"id":18654,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"10772:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18656,"indexExpression":{"id":18655,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18644,"src":"10785:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10772:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10739:56:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18659,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18653,"src":"10813:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":18660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"10813:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10837:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10813:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":18667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18663,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18653,"src":"10842:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":18664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"10842:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18665,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"10863:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Underwritten","nodeType":"MemberAccess","referencedDeclaration":5220,"src":"10863:29:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"10842:50:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10813:79:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032323a4150504c49434154494f4e5f4143434553535f494e56414c4944","id":18669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10894:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8784db9a0fb006cb4ae64ab1d8cc2ad3884140ec5a660b5e68045261d428b52","typeString":"literal_string \"ERROR:POC-022:APPLICATION_ACCESS_INVALID\""},"value":"ERROR:POC-022:APPLICATION_ACCESS_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e8784db9a0fb006cb4ae64ab1d8cc2ad3884140ec5a660b5e68045261d428b52","typeString":"literal_string \"ERROR:POC-022:APPLICATION_ACCESS_INVALID\""}],"id":18658,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10805:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10805:132:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18671,"nodeType":"ExpressionStatement","src":"10805:132:77"},{"assignments":[18674],"declarations":[{"constant":false,"id":18674,"mutability":"mutable","name":"policy","nameLocation":"10963:6:77","nodeType":"VariableDeclaration","scope":18726,"src":"10948:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":18673,"nodeType":"UserDefinedTypeName","pathNode":{"id":18672,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"10948:6:77"},"referencedDeclaration":5282,"src":"10948:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":18678,"initialValue":{"baseExpression":{"id":18675,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"10972:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":18677,"indexExpression":{"id":18676,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18644,"src":"10981:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10972:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10948:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18680,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11009:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"11009:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11029:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11009:21:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032333a504f4c4943595f414c52454144595f455849535453","id":18684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11032:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ac75784ff08502543cdff54428e36c01ae4d8ea69e36a455017dee99fa29dc8","typeString":"literal_string \"ERROR:POC-023:POLICY_ALREADY_EXISTS\""},"value":"ERROR:POC-023:POLICY_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ac75784ff08502543cdff54428e36c01ae4d8ea69e36a455017dee99fa29dc8","typeString":"literal_string \"ERROR:POC-023:POLICY_ALREADY_EXISTS\""}],"id":18679,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11001:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11001:69:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18686,"nodeType":"ExpressionStatement","src":"11001:69:77"},{"expression":{"id":18692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18687,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11081:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"11081:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18690,"name":"PolicyState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"11096:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":18691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5223,"src":"11096:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"11081:33:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"id":18693,"nodeType":"ExpressionStatement","src":"11081:33:77"},{"expression":{"id":18699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18694,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11124:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"11124:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18697,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18653,"src":"11155:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":18698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"11155:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11124:56:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18700,"nodeType":"ExpressionStatement","src":"11124:56:77"},{"expression":{"id":18706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18701,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11190:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payoutMaxAmount","nodeType":"MemberAccess","referencedDeclaration":5275,"src":"11190:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18704,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18653,"src":"11215:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":18705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"11215:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11190:53:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18707,"nodeType":"ExpressionStatement","src":"11190:53:77"},{"expression":{"id":18713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18708,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11253:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"11253:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18711,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"11272:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11272:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11253:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18714,"nodeType":"ExpressionStatement","src":"11253:34:77"},{"expression":{"id":18720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18715,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11321:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"11321:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18718,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"11340:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11340:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11321:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18721,"nodeType":"ExpressionStatement","src":"11321:34:77"},{"eventCall":{"arguments":[{"id":18723,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18644,"src":"11412:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18722,"name":"LogPolicyCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5131,"src":"11395:16:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":18724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11395:27:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18725,"nodeType":"EmitStatement","src":"11390:32:77"}]},"functionSelector":"4c14ccc2","id":18727,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10715:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18649,"modifierName":{"id":18647,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"10700:14:77"},"nodeType":"ModifierInvocation","src":"10700:24:77"}],"name":"createPolicy","nameLocation":"10632:12:77","nodeType":"FunctionDefinition","overrides":{"id":18646,"nodeType":"OverrideSpecifier","overrides":[],"src":"10682:8:77"},"parameters":{"id":18645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18644,"mutability":"mutable","name":"processId","nameLocation":"10653:9:77","nodeType":"VariableDeclaration","scope":18727,"src":"10645:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10645:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10644:19:77"},"returnParameters":{"id":18650,"nodeType":"ParameterList","parameters":[],"src":"10729:0:77"},"scope":19974,"src":"10623:806:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5363],"body":{"id":18892,"nodeType":"Block","src":"11638:1893:77","statements":[{"assignments":[18742],"declarations":[{"constant":false,"id":18742,"mutability":"mutable","name":"application","nameLocation":"11668:11:77","nodeType":"VariableDeclaration","scope":18892,"src":"11648:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18741,"nodeType":"UserDefinedTypeName","pathNode":{"id":18740,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"11648:11:77"},"referencedDeclaration":5262,"src":"11648:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18746,"initialValue":{"baseExpression":{"id":18743,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"11682:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18745,"indexExpression":{"id":18744,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18729,"src":"11695:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11682:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11648:57:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18748,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"11736:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"11736:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11760:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11736:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":18756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18752,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"11778:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"11778:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18754,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"11799:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Underwritten","nodeType":"MemberAccess","referencedDeclaration":5220,"src":"11799:29:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"11778:50:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11736:92:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032343a4150504c49434154494f4e5f4143434553535f494e56414c4944","id":18758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11843:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a0446370afa916c99bdf68c1cd2d63970e57fe3533a05a487ffe2d3441b7439","typeString":"literal_string \"ERROR:POC-024:APPLICATION_ACCESS_INVALID\""},"value":"ERROR:POC-024:APPLICATION_ACCESS_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a0446370afa916c99bdf68c1cd2d63970e57fe3533a05a487ffe2d3441b7439","typeString":"literal_string \"ERROR:POC-024:APPLICATION_ACCESS_INVALID\""}],"id":18747,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11715:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11715:171:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18760,"nodeType":"ExpressionStatement","src":"11715:171:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18762,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"11918:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":18763,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"11938:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"11938:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11918:48:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032363a4150504c49434154494f4e5f53554d5f494e53555245445f494e4352454153455f494e56414c4944","id":18766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11981:56:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_9608b61059ad8bfc78f4d88fdfb884791e53ff59328c8a500c5f1565bd0419e3","typeString":"literal_string \"ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID\""},"value":"ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9608b61059ad8bfc78f4d88fdfb884791e53ff59328c8a500c5f1565bd0419e3","typeString":"literal_string \"ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID\""}],"id":18761,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11897:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11897:141:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18768,"nodeType":"ExpressionStatement","src":"11897:141:77"},{"assignments":[18771],"declarations":[{"constant":false,"id":18771,"mutability":"mutable","name":"policy","nameLocation":"12064:6:77","nodeType":"VariableDeclaration","scope":18892,"src":"12049:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":18770,"nodeType":"UserDefinedTypeName","pathNode":{"id":18769,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"12049:6:77"},"referencedDeclaration":5282,"src":"12049:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":18775,"initialValue":{"baseExpression":{"id":18772,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"12073:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":18774,"indexExpression":{"id":18773,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18729,"src":"12082:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12073:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12049:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18777,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"12123:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"12123:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12142:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12123:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":18786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18781,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"12160:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"12160:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":18783,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"12176:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":18784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"12176:19:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":18785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5223,"src":"12176:26:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"12160:42:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12123:79:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032373a504f4c4943595f4143434553535f494e56414c4944","id":18788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12217:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_e6b085463e76c5d0bed11f77af4ff972e49e0aeb9e13803410e9593fb3d5272b","typeString":"literal_string \"ERROR:POC-027:POLICY_ACCESS_INVALID\""},"value":"ERROR:POC-027:POLICY_ACCESS_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e6b085463e76c5d0bed11f77af4ff972e49e0aeb9e13803410e9593fb3d5272b","typeString":"literal_string \"ERROR:POC-027:POLICY_ACCESS_INVALID\""}],"id":18776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12102:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12102:153:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18790,"nodeType":"ExpressionStatement","src":"12102:153:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18792,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"12295:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12319:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12295:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18795,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"12337:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":18796,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"12362:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"12362:24:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12337:49:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12295:91:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18800,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"12402:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":18801,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"12426:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12402:40:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12295:147:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032353a4150504c49434154494f4e5f5052454d49554d5f494e56414c4944","id":18804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12457:43:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_0accb0c8465e13760989bc709fa6ab7cf10b68fe03957bd6fe9eb47233a41aba","typeString":"literal_string \"ERROR:POC-025:APPLICATION_PREMIUM_INVALID\""},"value":"ERROR:POC-025:APPLICATION_PREMIUM_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0accb0c8465e13760989bc709fa6ab7cf10b68fe03957bd6fe9eb47233a41aba","typeString":"literal_string \"ERROR:POC-025:APPLICATION_PREMIUM_INVALID\""}],"id":18791,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12274:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12274:227:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18806,"nodeType":"ExpressionStatement","src":"12274:227:77"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18807,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"12516:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":18808,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"12536:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"12536:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12516:48:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18845,"nodeType":"IfStatement","src":"12512:441:77","trueBody":{"id":18844,"nodeType":"Block","src":"12566:387:77","statements":[{"eventCall":{"arguments":[{"id":18812,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18729,"src":"12618:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18813,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"12629:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"12629:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18815,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"12659:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18811,"name":"LogApplicationSumInsuredAdjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"12585:32:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":18816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12585:91:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18817,"nodeType":"EmitStatement","src":"12580:96:77"},{"expression":{"id":18822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18818,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"12690:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"12690:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18821,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"12721:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12690:47:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18823,"nodeType":"ExpressionStatement","src":"12690:47:77"},{"expression":{"id":18829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18824,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"12751:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"12751:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18827,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12775:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12775:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12751:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18830,"nodeType":"ExpressionStatement","src":"12751:39:77"},{"expression":{"id":18835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18831,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"12829:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payoutMaxAmount","nodeType":"MemberAccess","referencedDeclaration":5275,"src":"12829:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18834,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"12854:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12829:41:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18836,"nodeType":"ExpressionStatement","src":"12829:41:77"},{"expression":{"id":18842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18837,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"12884:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"12884:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18840,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12903:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12903:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12884:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18843,"nodeType":"ExpressionStatement","src":"12884:34:77"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18846,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"12967:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":18847,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"12992:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"12992:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12967:50:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18891,"nodeType":"IfStatement","src":"12963:562:77","trueBody":{"id":18890,"nodeType":"Block","src":"13019:506:77","statements":[{"eventCall":{"arguments":[{"id":18851,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18729,"src":"13068:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18852,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"13079:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"13079:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18854,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"13106:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18850,"name":"LogApplicationPremiumAdjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"13038:29:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":18855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13038:90:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18856,"nodeType":"EmitStatement","src":"13033:95:77"},{"expression":{"id":18861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18857,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"13142:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"13142:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18860,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"13170:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13142:49:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18862,"nodeType":"ExpressionStatement","src":"13142:49:77"},{"expression":{"id":18868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18863,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"13205:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"13205:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18866,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"13229:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13229:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13205:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18869,"nodeType":"ExpressionStatement","src":"13205:39:77"},{"eventCall":{"arguments":[{"id":18871,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18729,"src":"13313:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18872,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"13324:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"13324:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18874,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"13354:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18870,"name":"LogPolicyPremiumAdjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5169,"src":"13288:24:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":18875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13288:88:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18876,"nodeType":"EmitStatement","src":"13283:93:77"},{"expression":{"id":18881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18877,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"13390:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"13390:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18880,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"13421:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13390:52:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18882,"nodeType":"ExpressionStatement","src":"13390:52:77"},{"expression":{"id":18888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18883,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"13456:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"13456:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18886,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"13475:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13475:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13456:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18889,"nodeType":"ExpressionStatement","src":"13456:34:77"}]}}]},"functionSelector":"30a73da5","id":18893,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11624:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18738,"modifierName":{"id":18736,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"11609:14:77"},"nodeType":"ModifierInvocation","src":"11609:24:77"}],"name":"adjustPremiumSumInsured","nameLocation":"11444:23:77","nodeType":"FunctionDefinition","overrides":{"id":18735,"nodeType":"OverrideSpecifier","overrides":[],"src":"11592:8:77"},"parameters":{"id":18734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18729,"mutability":"mutable","name":"processId","nameLocation":"11485:9:77","nodeType":"VariableDeclaration","scope":18893,"src":"11477:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11477:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18731,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"11513:21:77","nodeType":"VariableDeclaration","scope":18893,"src":"11505:29:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18730,"name":"uint256","nodeType":"ElementaryTypeName","src":"11505:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18733,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"11552:16:77","nodeType":"VariableDeclaration","scope":18893,"src":"11544:24:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18732,"name":"uint256","nodeType":"ElementaryTypeName","src":"11544:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11467:107:77"},"returnParameters":{"id":18739,"nodeType":"ParameterList","parameters":[],"src":"11638:0:77"},"scope":19974,"src":"11435:2096:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5373],"body":{"id":18944,"nodeType":"Block","src":"13641:390:77","statements":[{"assignments":[18904],"declarations":[{"constant":false,"id":18904,"mutability":"mutable","name":"policy","nameLocation":"13666:6:77","nodeType":"VariableDeclaration","scope":18944,"src":"13651:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":18903,"nodeType":"UserDefinedTypeName","pathNode":{"id":18902,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"13651:6:77"},"referencedDeclaration":5282,"src":"13651:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":18908,"initialValue":{"baseExpression":{"id":18905,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"13675:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":18907,"indexExpression":{"id":18906,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18895,"src":"13684:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13675:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13651:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18910,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18904,"src":"13712:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"13712:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13731:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13712:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032383a504f4c4943595f444f45535f4e4f545f4558495354","id":18914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13734:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_53d931fec3ed7a0ddc013521fad1f76a8f8e8de81d5c8c7f76a59d6fa698eba1","typeString":"literal_string \"ERROR:POC-028:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-028:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_53d931fec3ed7a0ddc013521fad1f76a8f8e8de81d5c8c7f76a59d6fa698eba1","typeString":"literal_string \"ERROR:POC-028:POLICY_DOES_NOT_EXIST\""}],"id":18909,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13704:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13704:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18916,"nodeType":"ExpressionStatement","src":"13704:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":18922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18918,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18904,"src":"13790:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"13790:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18920,"name":"PolicyState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"13806:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":18921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5223,"src":"13806:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"13790:34:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032393a4150504c49434154494f4e5f53544154455f494e56414c4944","id":18923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13826:41:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_812d7a3c3591ae4c026af18cdf37eaa885599baf13a298242cc5ed294cb86aa7","typeString":"literal_string \"ERROR:POC-029:APPLICATION_STATE_INVALID\""},"value":"ERROR:POC-029:APPLICATION_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_812d7a3c3591ae4c026af18cdf37eaa885599baf13a298242cc5ed294cb86aa7","typeString":"literal_string \"ERROR:POC-029:APPLICATION_STATE_INVALID\""}],"id":18917,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13782:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13782:86:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18925,"nodeType":"ExpressionStatement","src":"13782:86:77"},{"expression":{"id":18931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18926,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18904,"src":"13879:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"13879:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18929,"name":"PolicyState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"13894:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":18930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":5224,"src":"13894:19:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"13879:34:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"id":18932,"nodeType":"ExpressionStatement","src":"13879:34:77"},{"expression":{"id":18938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18933,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18904,"src":"13923:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"13923:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18936,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"13942:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13942:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13923:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18939,"nodeType":"ExpressionStatement","src":"13923:34:77"},{"eventCall":{"arguments":[{"id":18941,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18895,"src":"14014:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18940,"name":"LogPolicyExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5135,"src":"13997:16:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":18942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13997:27:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18943,"nodeType":"EmitStatement","src":"13992:32:77"}]},"functionSelector":"47e3b138","id":18945,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13627:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18900,"modifierName":{"id":18898,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"13612:14:77"},"nodeType":"ModifierInvocation","src":"13612:24:77"}],"name":"expirePolicy","nameLocation":"13546:12:77","nodeType":"FunctionDefinition","overrides":{"id":18897,"nodeType":"OverrideSpecifier","overrides":[],"src":"13595:8:77"},"parameters":{"id":18896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18895,"mutability":"mutable","name":"processId","nameLocation":"13567:9:77","nodeType":"VariableDeclaration","scope":18945,"src":"13559:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13559:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13558:19:77"},"returnParameters":{"id":18901,"nodeType":"ParameterList","parameters":[],"src":"13641:0:77"},"scope":19974,"src":"13537:494:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5378],"body":{"id":19039,"nodeType":"Block","src":"14140:777:77","statements":[{"assignments":[18956],"declarations":[{"constant":false,"id":18956,"mutability":"mutable","name":"meta","nameLocation":"14167:4:77","nodeType":"VariableDeclaration","scope":19039,"src":"14150:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":18955,"nodeType":"UserDefinedTypeName","pathNode":{"id":18954,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"14150:8:77"},"referencedDeclaration":5248,"src":"14150:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":18960,"initialValue":{"baseExpression":{"id":18957,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"14174:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":18959,"indexExpression":{"id":18958,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18947,"src":"14183:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14174:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14150:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18962,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18956,"src":"14211:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"14211:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14228:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14211:18:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3033303a4d455441444154415f444f45535f4e4f545f4558495354","id":18966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14231:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b49b43b480ffcd2d682b90a53947b738e166fa0f45183e37b9a15878efb6017","typeString":"literal_string \"ERROR:POC-030:METADATA_DOES_NOT_EXIST\""},"value":"ERROR:POC-030:METADATA_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b49b43b480ffcd2d682b90a53947b738e166fa0f45183e37b9a15878efb6017","typeString":"literal_string \"ERROR:POC-030:METADATA_DOES_NOT_EXIST\""}],"id":18961,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14203:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14203:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18968,"nodeType":"ExpressionStatement","src":"14203:68:77"},{"assignments":[18971],"declarations":[{"constant":false,"id":18971,"mutability":"mutable","name":"policy","nameLocation":"14297:6:77","nodeType":"VariableDeclaration","scope":19039,"src":"14282:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":18970,"nodeType":"UserDefinedTypeName","pathNode":{"id":18969,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"14282:6:77"},"referencedDeclaration":5282,"src":"14282:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":18975,"initialValue":{"baseExpression":{"id":18972,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"14306:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":18974,"indexExpression":{"id":18973,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18947,"src":"14315:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14306:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14282:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18977,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18971,"src":"14343:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"14343:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14362:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14343:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3033313a504f4c4943595f444f45535f4e4f545f4558495354","id":18981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14365:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_4478b2e77c23e8ea61028b27bf7e3d9b60113df479aab9238db0e9c1abb71c24","typeString":"literal_string \"ERROR:POC-031:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-031:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4478b2e77c23e8ea61028b27bf7e3d9b60113df479aab9238db0e9c1abb71c24","typeString":"literal_string \"ERROR:POC-031:POLICY_DOES_NOT_EXIST\""}],"id":18976,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14335:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14335:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18983,"nodeType":"ExpressionStatement","src":"14335:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":18989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18985,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18971,"src":"14421:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"14421:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18987,"name":"PolicyState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"14437:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":18988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":5224,"src":"14437:19:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"14421:35:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3033323a504f4c4943595f53544154455f494e56414c4944","id":18990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14458:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_e68601d261f3b44a01e4c4b719124fdfa4604ec137e1a47c16da8de53440a7a7","typeString":"literal_string \"ERROR:POC-032:POLICY_STATE_INVALID\""},"value":"ERROR:POC-032:POLICY_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e68601d261f3b44a01e4c4b719124fdfa4604ec137e1a47c16da8de53440a7a7","typeString":"literal_string \"ERROR:POC-032:POLICY_STATE_INVALID\""}],"id":18984,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14413:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14413:82:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18992,"nodeType":"ExpressionStatement","src":"14413:82:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18994,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18971,"src":"14513:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"14513:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14539:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14513:27:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3033333a504f4c4943595f4841535f4f50454e5f434c41494d53","id":18998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14542:38:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_abcae8090ad71bdef33e1fc1dca9cb7acc84966fbfb6b6101f386f861bfed9d3","typeString":"literal_string \"ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS\""},"value":"ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_abcae8090ad71bdef33e1fc1dca9cb7acc84966fbfb6b6101f386f861bfed9d3","typeString":"literal_string \"ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS\""}],"id":18993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14505:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14505:76:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19000,"nodeType":"ExpressionStatement","src":"14505:76:77"},{"expression":{"id":19006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19001,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18971,"src":"14592:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"14592:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19004,"name":"PolicyState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"14607:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":19005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"14607:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"14592:33:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"id":19007,"nodeType":"ExpressionStatement","src":"14592:33:77"},{"expression":{"id":19013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19008,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18971,"src":"14635:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"14635:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19011,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"14654:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"14654:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14635:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19014,"nodeType":"ExpressionStatement","src":"14635:34:77"},{"expression":{"id":19020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19015,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18956,"src":"14704:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":19017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"14704:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19018,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"14717:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":19019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Finished","nodeType":"MemberAccess","referencedDeclaration":5216,"src":"14717:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"src":"14704:37:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"id":19021,"nodeType":"ExpressionStatement","src":"14704:37:77"},{"expression":{"id":19027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19022,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18956,"src":"14751:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":19024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5247,"src":"14751:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19025,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"14768:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"14768:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14751:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19028,"nodeType":"ExpressionStatement","src":"14751:32:77"},{"eventCall":{"arguments":[{"id":19030,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18947,"src":"14846:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":19031,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18956,"src":"14857:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":19032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"14857:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}],"id":19029,"name":"LogMetadataStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5107,"src":"14822:23:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_PolicyFlowState_$5217_$returns$__$","typeString":"function (bytes32,enum IPolicy.PolicyFlowState)"}},"id":19033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14822:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19034,"nodeType":"EmitStatement","src":"14817:51:77"},{"eventCall":{"arguments":[{"id":19036,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18947,"src":"14900:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19035,"name":"LogPolicyClosed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"14884:15:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":19037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14884:26:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19038,"nodeType":"EmitStatement","src":"14879:31:77"}]},"functionSelector":"adcadb28","id":19040,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14126:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18952,"modifierName":{"id":18950,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"14111:14:77"},"nodeType":"ModifierInvocation","src":"14111:24:77"}],"name":"closePolicy","nameLocation":"14046:11:77","nodeType":"FunctionDefinition","overrides":{"id":18949,"nodeType":"OverrideSpecifier","overrides":[],"src":"14094:8:77"},"parameters":{"id":18948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18947,"mutability":"mutable","name":"processId","nameLocation":"14066:9:77","nodeType":"VariableDeclaration","scope":19040,"src":"14058:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14058:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14057:19:77"},"returnParameters":{"id":18953,"nodeType":"ParameterList","parameters":[],"src":"14140:0:77"},"scope":19974,"src":"14037:880:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5389],"body":{"id":19169,"nodeType":"Block","src":"15149:1210:77","statements":[{"assignments":[19057],"declarations":[{"constant":false,"id":19057,"mutability":"mutable","name":"policy","nameLocation":"15174:6:77","nodeType":"VariableDeclaration","scope":19169,"src":"15159:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19056,"nodeType":"UserDefinedTypeName","pathNode":{"id":19055,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"15159:6:77"},"referencedDeclaration":5282,"src":"15159:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19061,"initialValue":{"baseExpression":{"id":19058,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"15183:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19060,"indexExpression":{"id":19059,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19042,"src":"15192:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15183:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15159:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19063,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"15220:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"15220:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15239:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15220:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3034303a504f4c4943595f444f45535f4e4f545f4558495354","id":19067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15242:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_292e8e8b2f73338c9d7e6ea8fa7931b8d5344a982f7803b5e8efb3cc6e51eca2","typeString":"literal_string \"ERROR:POC-040:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-040:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_292e8e8b2f73338c9d7e6ea8fa7931b8d5344a982f7803b5e8efb3cc6e51eca2","typeString":"literal_string \"ERROR:POC-040:POLICY_DOES_NOT_EXIST\""}],"id":19062,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15212:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15212:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19069,"nodeType":"ExpressionStatement","src":"15212:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":19076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19071,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"15298:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"15298:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":19073,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"15314:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":19074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"15314:19:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":19075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5223,"src":"15314:26:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"15298:42:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3034313a504f4c4943595f4e4f545f414354495645","id":19077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15342:33:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_fd5ce4739c74f225637bb83c85f080775b013e16f83c8f86ac7d7272df93a150","typeString":"literal_string \"ERROR:POC-041:POLICY_NOT_ACTIVE\""},"value":"ERROR:POC-041:POLICY_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fd5ce4739c74f225637bb83c85f080775b013e16f83c8f86ac7d7272df93a150","typeString":"literal_string \"ERROR:POC-041:POLICY_NOT_ACTIVE\""}],"id":19070,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15290:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15290:86:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19079,"nodeType":"ExpressionStatement","src":"15290:86:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19081,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"15627:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutAmount","nodeType":"MemberAccess","referencedDeclaration":5277,"src":"15627:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19083,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19044,"src":"15649:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15627:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":19085,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"15664:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutMaxAmount","nodeType":"MemberAccess","referencedDeclaration":5275,"src":"15664:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15627:59:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3034323a434c41494d5f414d4f554e545f455843454544535f4d41585f5041594f5554","id":19088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15688:47:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fee7969b096be44aa0b06a7d6dca973bac0addbe10f33bf7ae1c3268e370252","typeString":"literal_string \"ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT\""},"value":"ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fee7969b096be44aa0b06a7d6dca973bac0addbe10f33bf7ae1c3268e370252","typeString":"literal_string \"ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT\""}],"id":19080,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15619:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15619:117:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19090,"nodeType":"ExpressionStatement","src":"15619:117:77"},{"expression":{"id":19094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19091,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19053,"src":"15747:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19092,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"15757:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimsCount","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"15757:18:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15747:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19095,"nodeType":"ExpressionStatement","src":"15747:28:77"},{"assignments":[19098],"declarations":[{"constant":false,"id":19098,"mutability":"mutable","name":"claim","nameLocation":"15799:5:77","nodeType":"VariableDeclaration","scope":19169,"src":"15785:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19097,"nodeType":"UserDefinedTypeName","pathNode":{"id":19096,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"15785:5:77"},"referencedDeclaration":5296,"src":"15785:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19104,"initialValue":{"baseExpression":{"baseExpression":{"id":19099,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"15807:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19101,"indexExpression":{"id":19100,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19042,"src":"15814:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15807:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19103,"indexExpression":{"id":19102,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19053,"src":"15825:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15807:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15785:48:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19106,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"15851:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"15851:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":19108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15870:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15851:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3034333a434c41494d5f414c52454144595f455849535453","id":19110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15873:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_91872c40feaf252e2b1bb5310507c26c5310a79208576166f8430e887a141a99","typeString":"literal_string \"ERROR:POC-043:CLAIM_ALREADY_EXISTS\""},"value":"ERROR:POC-043:CLAIM_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91872c40feaf252e2b1bb5310507c26c5310a79208576166f8430e887a141a99","typeString":"literal_string \"ERROR:POC-043:CLAIM_ALREADY_EXISTS\""}],"id":19105,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15843:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15843:67:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19112,"nodeType":"ExpressionStatement","src":"15843:67:77"},{"expression":{"id":19118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19113,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"15921:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"15921:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19116,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"15935:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5227,"src":"15935:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"15921:32:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"id":19119,"nodeType":"ExpressionStatement","src":"15921:32:77"},{"expression":{"id":19124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19120,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"15963:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"15963:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19123,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19044,"src":"15983:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15963:31:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19125,"nodeType":"ExpressionStatement","src":"15963:31:77"},{"expression":{"id":19130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19126,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"16004:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5291,"src":"16004:10:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19129,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19046,"src":"16017:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"16004:17:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":19131,"nodeType":"ExpressionStatement","src":"16004:17:77"},{"expression":{"id":19137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19132,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"16031:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"16031:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19135,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"16049:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"16049:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16031:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19138,"nodeType":"ExpressionStatement","src":"16031:33:77"},{"expression":{"id":19144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19139,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"16098:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5295,"src":"16098:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19142,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"16116:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"16116:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16098:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19145,"nodeType":"ExpressionStatement","src":"16098:33:77"},{"expression":{"id":19149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16166:20:77","subExpression":{"expression":{"id":19146,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"16166:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"claimsCount","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"16166:18:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19150,"nodeType":"ExpressionStatement","src":"16166:20:77"},{"expression":{"id":19154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16196:24:77","subExpression":{"expression":{"id":19151,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"16196:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"16196:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19155,"nodeType":"ExpressionStatement","src":"16196:24:77"},{"expression":{"id":19161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19156,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"16230:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"16230:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19159,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"16249:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"16249:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16230:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19162,"nodeType":"ExpressionStatement","src":"16230:34:77"},{"eventCall":{"arguments":[{"id":19164,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19042,"src":"16320:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19165,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19053,"src":"16331:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19166,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19044,"src":"16340:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19163,"name":"LogClaimCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5177,"src":"16304:15:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":19167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16304:48:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19168,"nodeType":"EmitStatement","src":"16299:53:77"}]},"functionSelector":"ec935668","id":19170,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15101:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19051,"modifierName":{"id":19049,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"15086:14:77"},"nodeType":"ModifierInvocation","src":"15086:24:77"}],"name":"createClaim","nameLocation":"14948:11:77","nodeType":"FunctionDefinition","overrides":{"id":19048,"nodeType":"OverrideSpecifier","overrides":[],"src":"15069:8:77"},"parameters":{"id":19047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19042,"mutability":"mutable","name":"processId","nameLocation":"14977:9:77","nodeType":"VariableDeclaration","scope":19170,"src":"14969:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14969:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19044,"mutability":"mutable","name":"claimAmount","nameLocation":"15005:11:77","nodeType":"VariableDeclaration","scope":19170,"src":"14997:19:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19043,"name":"uint256","nodeType":"ElementaryTypeName","src":"14997:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19046,"mutability":"mutable","name":"data","nameLocation":"15041:4:77","nodeType":"VariableDeclaration","scope":19170,"src":"15026:19:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19045,"name":"bytes","nodeType":"ElementaryTypeName","src":"15026:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14959:92:77"},"returnParameters":{"id":19054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19053,"mutability":"mutable","name":"claimId","nameLocation":"15136:7:77","nodeType":"VariableDeclaration","scope":19170,"src":"15128:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19052,"name":"uint256","nodeType":"ElementaryTypeName","src":"15128:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15127:17:77"},"scope":19974,"src":"14939:1420:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5398],"body":{"id":19282,"nodeType":"Block","src":"16543:1039:77","statements":[{"assignments":[19185],"declarations":[{"constant":false,"id":19185,"mutability":"mutable","name":"policy","nameLocation":"16568:6:77","nodeType":"VariableDeclaration","scope":19282,"src":"16553:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19184,"nodeType":"UserDefinedTypeName","pathNode":{"id":19183,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"16553:6:77"},"referencedDeclaration":5282,"src":"16553:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19189,"initialValue":{"baseExpression":{"id":19186,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"16577:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19188,"indexExpression":{"id":19187,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"16586:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16577:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16553:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19191,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"16614:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"16614:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16633:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16614:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3035303a504f4c4943595f444f45535f4e4f545f4558495354","id":19195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16636:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c741f933dcdc4a0cc8ca27d6761d563fde507b39184c4ba433c9546d61881f7","typeString":"literal_string \"ERROR:POC-050:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-050:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c741f933dcdc4a0cc8ca27d6761d563fde507b39184c4ba433c9546d61881f7","typeString":"literal_string \"ERROR:POC-050:POLICY_DOES_NOT_EXIST\""}],"id":19190,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16606:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16606:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19197,"nodeType":"ExpressionStatement","src":"16606:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19199,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"16692:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"16692:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16717:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16692:26:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3035313a504f4c4943595f574954484f55545f4f50454e5f434c41494d53","id":19203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16720:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_755bab7e4197528963528c11bb57a6268486e588c4c58aa1fdc3941f0ca82461","typeString":"literal_string \"ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS\""},"value":"ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_755bab7e4197528963528c11bb57a6268486e588c4c58aa1fdc3941f0ca82461","typeString":"literal_string \"ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS\""}],"id":19198,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16684:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16684:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19205,"nodeType":"ExpressionStatement","src":"16684:79:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19207,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"16899:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutAmount","nodeType":"MemberAccess","referencedDeclaration":5277,"src":"16899:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19209,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19176,"src":"16921:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16899:37:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":19211,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"16940:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutMaxAmount","nodeType":"MemberAccess","referencedDeclaration":5275,"src":"16940:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16899:63:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3035323a5041594f55545f4d41585f414d4f554e545f4558434545444544","id":19214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16964:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c526d7df7c2530ac59be5bb2670f7e7233e5bcb0ebd99bccf1d2574f9088ff9","typeString":"literal_string \"ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED\""},"value":"ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5c526d7df7c2530ac59be5bb2670f7e7233e5bcb0ebd99bccf1d2574f9088ff9","typeString":"literal_string \"ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED\""}],"id":19206,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16891:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16891:116:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19216,"nodeType":"ExpressionStatement","src":"16891:116:77"},{"assignments":[19219],"declarations":[{"constant":false,"id":19219,"mutability":"mutable","name":"claim","nameLocation":"17032:5:77","nodeType":"VariableDeclaration","scope":19282,"src":"17018:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19218,"nodeType":"UserDefinedTypeName","pathNode":{"id":19217,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"17018:5:77"},"referencedDeclaration":5296,"src":"17018:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19225,"initialValue":{"baseExpression":{"baseExpression":{"id":19220,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"17040:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19222,"indexExpression":{"id":19221,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"17047:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17040:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19224,"indexExpression":{"id":19223,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19174,"src":"17058:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17040:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17018:48:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19227,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"17084:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"17084:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17102:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17084:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3035333a434c41494d5f444f45535f4e4f545f4558495354","id":19231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17105:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e811d9572370e9a750a1f2b7c3f07287bed0a618295148d5ac82c856a0f8383","typeString":"literal_string \"ERROR:POC-053:CLAIM_DOES_NOT_EXIST\""},"value":"ERROR:POC-053:CLAIM_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e811d9572370e9a750a1f2b7c3f07287bed0a618295148d5ac82c856a0f8383","typeString":"literal_string \"ERROR:POC-053:CLAIM_DOES_NOT_EXIST\""}],"id":19226,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17076:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17076:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19233,"nodeType":"ExpressionStatement","src":"17076:66:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19235,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"17160:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"17160:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19237,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"17175:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5227,"src":"17175:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"17160:33:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3035343a434c41494d5f53544154455f494e56414c4944","id":19240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17195:35:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b4bf107bd938845d3000d9894f4f7c3f232df3de3b36946e82f23aad29c8984","typeString":"literal_string \"ERROR:POC-054:CLAIM_STATE_INVALID\""},"value":"ERROR:POC-054:CLAIM_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b4bf107bd938845d3000d9894f4f7c3f232df3de3b36946e82f23aad29c8984","typeString":"literal_string \"ERROR:POC-054:CLAIM_STATE_INVALID\""}],"id":19234,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17152:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17152:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19242,"nodeType":"ExpressionStatement","src":"17152:79:77"},{"expression":{"id":19248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19243,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"17242:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"17242:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19246,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"17256:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Confirmed","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"17256:20:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"17242:34:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"id":19249,"nodeType":"ExpressionStatement","src":"17242:34:77"},{"expression":{"id":19254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19250,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"17286:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"17286:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19253,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19176,"src":"17306:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17286:35:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19255,"nodeType":"ExpressionStatement","src":"17286:35:77"},{"expression":{"id":19261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19256,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"17331:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5295,"src":"17331:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19259,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"17349:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"17349:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17331:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19262,"nodeType":"ExpressionStatement","src":"17331:33:77"},{"expression":{"id":19267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19263,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"17399:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payoutAmount","nodeType":"MemberAccess","referencedDeclaration":5277,"src":"17399:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":19266,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19176,"src":"17422:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17399:38:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19268,"nodeType":"ExpressionStatement","src":"17399:38:77"},{"expression":{"id":19274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19269,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"17447:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"17447:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19272,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"17466:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"17466:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17447:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19275,"nodeType":"ExpressionStatement","src":"17447:34:77"},{"eventCall":{"arguments":[{"id":19277,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"17539:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19278,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19174,"src":"17550:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19279,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19176,"src":"17559:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19276,"name":"LogClaimConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5185,"src":"17521:17:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":19280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17521:54:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19281,"nodeType":"EmitStatement","src":"17516:59:77"}]},"functionSelector":"4e02c63f","id":19283,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16528:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19181,"modifierName":{"id":19179,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"16513:14:77"},"nodeType":"ModifierInvocation","src":"16513:24:77"}],"name":"confirmClaim","nameLocation":"16374:12:77","nodeType":"FunctionDefinition","overrides":{"id":19178,"nodeType":"OverrideSpecifier","overrides":[],"src":"16496:8:77"},"parameters":{"id":19177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19172,"mutability":"mutable","name":"processId","nameLocation":"16404:9:77","nodeType":"VariableDeclaration","scope":19283,"src":"16396:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16396:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19174,"mutability":"mutable","name":"claimId","nameLocation":"16431:7:77","nodeType":"VariableDeclaration","scope":19283,"src":"16423:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19173,"name":"uint256","nodeType":"ElementaryTypeName","src":"16423:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19176,"mutability":"mutable","name":"confirmedAmount","nameLocation":"16456:15:77","nodeType":"VariableDeclaration","scope":19283,"src":"16448:23:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19175,"name":"uint256","nodeType":"ElementaryTypeName","src":"16448:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16386:91:77"},"returnParameters":{"id":19182,"nodeType":"ParameterList","parameters":[],"src":"16543:0:77"},"scope":19974,"src":"16365:1217:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5405],"body":{"id":19369,"nodeType":"Block","src":"17710:683:77","statements":[{"assignments":[19296],"declarations":[{"constant":false,"id":19296,"mutability":"mutable","name":"policy","nameLocation":"17735:6:77","nodeType":"VariableDeclaration","scope":19369,"src":"17720:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19295,"nodeType":"UserDefinedTypeName","pathNode":{"id":19294,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"17720:6:77"},"referencedDeclaration":5282,"src":"17720:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19300,"initialValue":{"baseExpression":{"id":19297,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"17744:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19299,"indexExpression":{"id":19298,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19285,"src":"17753:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17744:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17720:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19302,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19296,"src":"17781:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"17781:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17800:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17781:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3036303a504f4c4943595f444f45535f4e4f545f4558495354","id":19306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17803:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_b41ecb3c73d1bd22f6c59fa2a27979a7be92c595245d732c42c675aea1a608cc","typeString":"literal_string \"ERROR:POC-060:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-060:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b41ecb3c73d1bd22f6c59fa2a27979a7be92c595245d732c42c675aea1a608cc","typeString":"literal_string \"ERROR:POC-060:POLICY_DOES_NOT_EXIST\""}],"id":19301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17773:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17773:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19308,"nodeType":"ExpressionStatement","src":"17773:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19310,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19296,"src":"17859:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"17859:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17884:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17859:26:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3036313a504f4c4943595f574954484f55545f4f50454e5f434c41494d53","id":19314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17887:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3053d4e6cfaf833f897a113c773083b437a8e9c0edb9dab9a33e145eda637486","typeString":"literal_string \"ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS\""},"value":"ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3053d4e6cfaf833f897a113c773083b437a8e9c0edb9dab9a33e145eda637486","typeString":"literal_string \"ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS\""}],"id":19309,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17851:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17851:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19316,"nodeType":"ExpressionStatement","src":"17851:79:77"},{"assignments":[19319],"declarations":[{"constant":false,"id":19319,"mutability":"mutable","name":"claim","nameLocation":"17955:5:77","nodeType":"VariableDeclaration","scope":19369,"src":"17941:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19318,"nodeType":"UserDefinedTypeName","pathNode":{"id":19317,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"17941:5:77"},"referencedDeclaration":5296,"src":"17941:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19325,"initialValue":{"baseExpression":{"baseExpression":{"id":19320,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"17963:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19322,"indexExpression":{"id":19321,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19285,"src":"17970:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17963:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19324,"indexExpression":{"id":19323,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19287,"src":"17981:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17963:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17941:48:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19327,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19319,"src":"18007:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"18007:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18025:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18007:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3036323a434c41494d5f444f45535f4e4f545f4558495354","id":19331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18028:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc0c0ad5317a8bd39d7f7249cfb02b10c5d042b35addbb0f642b415e4905d7e9","typeString":"literal_string \"ERROR:POC-062:CLAIM_DOES_NOT_EXIST\""},"value":"ERROR:POC-062:CLAIM_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc0c0ad5317a8bd39d7f7249cfb02b10c5d042b35addbb0f642b415e4905d7e9","typeString":"literal_string \"ERROR:POC-062:CLAIM_DOES_NOT_EXIST\""}],"id":19326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17999:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17999:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19333,"nodeType":"ExpressionStatement","src":"17999:66:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19335,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19319,"src":"18083:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"18083:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19337,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"18098:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5227,"src":"18098:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"18083:33:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3036333a434c41494d5f53544154455f494e56414c4944","id":19340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18118:35:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_398a0b35799106343616f5ee2dafb07b4f8a17d7f3221c043c8d1b874d608409","typeString":"literal_string \"ERROR:POC-063:CLAIM_STATE_INVALID\""},"value":"ERROR:POC-063:CLAIM_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_398a0b35799106343616f5ee2dafb07b4f8a17d7f3221c043c8d1b874d608409","typeString":"literal_string \"ERROR:POC-063:CLAIM_STATE_INVALID\""}],"id":19334,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18075:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18075:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19342,"nodeType":"ExpressionStatement","src":"18075:79:77"},{"expression":{"id":19348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19343,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19319,"src":"18165:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"18165:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19346,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"18179:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":5229,"src":"18179:19:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"18165:33:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"id":19349,"nodeType":"ExpressionStatement","src":"18165:33:77"},{"expression":{"id":19355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19350,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19319,"src":"18208:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5295,"src":"18208:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19353,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"18226:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18226:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18208:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19356,"nodeType":"ExpressionStatement","src":"18208:33:77"},{"expression":{"id":19362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19357,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19296,"src":"18276:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"18276:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"18295:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18295:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18276:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19363,"nodeType":"ExpressionStatement","src":"18276:34:77"},{"eventCall":{"arguments":[{"id":19365,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19285,"src":"18367:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19366,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19287,"src":"18378:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19364,"name":"LogClaimDeclined","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5191,"src":"18350:16:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":19367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18350:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19368,"nodeType":"EmitStatement","src":"18345:41:77"}]},"functionSelector":"4cda0de9","id":19370,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17695:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19292,"modifierName":{"id":19290,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"17680:14:77"},"nodeType":"ModifierInvocation","src":"17680:24:77"}],"name":"declineClaim","nameLocation":"17597:12:77","nodeType":"FunctionDefinition","overrides":{"id":19289,"nodeType":"OverrideSpecifier","overrides":[],"src":"17663:8:77"},"parameters":{"id":19288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19285,"mutability":"mutable","name":"processId","nameLocation":"17618:9:77","nodeType":"VariableDeclaration","scope":19370,"src":"17610:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17610:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19287,"mutability":"mutable","name":"claimId","nameLocation":"17637:7:77","nodeType":"VariableDeclaration","scope":19370,"src":"17629:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19286,"name":"uint256","nodeType":"ElementaryTypeName","src":"17629:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17609:36:77"},"returnParameters":{"id":19293,"nodeType":"ParameterList","parameters":[],"src":"17710:0:77"},"scope":19974,"src":"17588:805:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5412],"body":{"id":19490,"nodeType":"Block","src":"18519:1021:77","statements":[{"assignments":[19383],"declarations":[{"constant":false,"id":19383,"mutability":"mutable","name":"policy","nameLocation":"18544:6:77","nodeType":"VariableDeclaration","scope":19490,"src":"18529:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19382,"nodeType":"UserDefinedTypeName","pathNode":{"id":19381,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"18529:6:77"},"referencedDeclaration":5282,"src":"18529:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19387,"initialValue":{"baseExpression":{"id":19384,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"18553:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19386,"indexExpression":{"id":19385,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19372,"src":"18562:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18553:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18529:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19389,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19383,"src":"18590:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"18590:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18609:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18590:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3037303a504f4c4943595f444f45535f4e4f545f4558495354","id":19393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18612:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ba313180bbdd84742438fe48f9070ad471c0e8441fc547ddd9d43836c05647d","typeString":"literal_string \"ERROR:POC-070:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-070:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7ba313180bbdd84742438fe48f9070ad471c0e8441fc547ddd9d43836c05647d","typeString":"literal_string \"ERROR:POC-070:POLICY_DOES_NOT_EXIST\""}],"id":19388,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18582:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18582:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19395,"nodeType":"ExpressionStatement","src":"18582:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19397,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19383,"src":"18668:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"18668:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18693:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18668:26:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3037313a504f4c4943595f574954484f55545f4f50454e5f434c41494d53","id":19401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18696:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fcafde1bf77d4ec8dcb626e9696c36e8e5c1a0660b1230d420f1e68bf4ba036","typeString":"literal_string \"ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS\""},"value":"ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3fcafde1bf77d4ec8dcb626e9696c36e8e5c1a0660b1230d420f1e68bf4ba036","typeString":"literal_string \"ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS\""}],"id":19396,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18660:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18660:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19403,"nodeType":"ExpressionStatement","src":"18660:79:77"},{"assignments":[19406],"declarations":[{"constant":false,"id":19406,"mutability":"mutable","name":"claim","nameLocation":"18764:5:77","nodeType":"VariableDeclaration","scope":19490,"src":"18750:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19405,"nodeType":"UserDefinedTypeName","pathNode":{"id":19404,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"18750:5:77"},"referencedDeclaration":5296,"src":"18750:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19412,"initialValue":{"baseExpression":{"baseExpression":{"id":19407,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"18772:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19409,"indexExpression":{"id":19408,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19372,"src":"18779:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18772:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19411,"indexExpression":{"id":19410,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19374,"src":"18790:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18772:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18750:48:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19414,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"18816:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"18816:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18834:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18816:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3037323a434c41494d5f444f45535f4e4f545f4558495354","id":19418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18837:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_66228a7360d9b0fffc4485892145b1c3b51e61093cd4b29b7cfcba5c26002332","typeString":"literal_string \"ERROR:POC-072:CLAIM_DOES_NOT_EXIST\""},"value":"ERROR:POC-072:CLAIM_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_66228a7360d9b0fffc4485892145b1c3b51e61093cd4b29b7cfcba5c26002332","typeString":"literal_string \"ERROR:POC-072:CLAIM_DOES_NOT_EXIST\""}],"id":19413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18808:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18808:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19420,"nodeType":"ExpressionStatement","src":"18808:66:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19422,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"18905:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"18905:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19424,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"18920:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Confirmed","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"18920:20:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"18905:35:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19427,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"18957:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"18957:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19429,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"18972:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":5229,"src":"18972:19:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"18957:34:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18905:86:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3037333a434c41494d5f53544154455f494e56414c4944","id":19433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19006:35:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_0905fdf985363891ad748beb4d4a032395a3ba007421a6945b74e963f9f015fa","typeString":"literal_string \"ERROR:POC-073:CLAIM_STATE_INVALID\""},"value":"ERROR:POC-073:CLAIM_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0905fdf985363891ad748beb4d4a032395a3ba007421a6945b74e963f9f015fa","typeString":"literal_string \"ERROR:POC-073:CLAIM_STATE_INVALID\""}],"id":19421,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18884:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18884:158:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19435,"nodeType":"ExpressionStatement","src":"18884:158:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19437,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19075:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"19075:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19439,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"19090:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Confirmed","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"19090:20:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"19075:35:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19442,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19114:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"19114:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19444,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19135:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paidAmount","nodeType":"MemberAccess","referencedDeclaration":5289,"src":"19135:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19114:37:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19075:76:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19448,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19074:78:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19449,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19170:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"19170:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19451,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"19185:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":5229,"src":"19185:19:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"19170:34:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19454,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19169:36:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19074:131:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3037343a434c41494d5f574954485f554e504149445f5041594f555453","id":19456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19220:41:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_994fcfb46b233054b612c28f28fd225d060ea12c5701f5c87abfbfceffddc86b","typeString":"literal_string \"ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS\""},"value":"ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_994fcfb46b233054b612c28f28fd225d060ea12c5701f5c87abfbfceffddc86b","typeString":"literal_string \"ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS\""}],"id":19436,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19053:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19053:218:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19458,"nodeType":"ExpressionStatement","src":"19053:218:77"},{"expression":{"id":19464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19459,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19282:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"19282:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19462,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"19296:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"19296:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"19282:31:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"id":19465,"nodeType":"ExpressionStatement","src":"19282:31:77"},{"expression":{"id":19471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19466,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19323:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5295,"src":"19323:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19469,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"19341:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"19341:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19323:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19472,"nodeType":"ExpressionStatement","src":"19323:33:77"},{"expression":{"id":19476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"19391:24:77","subExpression":{"expression":{"id":19473,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19383,"src":"19391:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"19391:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19477,"nodeType":"ExpressionStatement","src":"19391:24:77"},{"expression":{"id":19483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19478,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19383,"src":"19425:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"19425:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19481,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"19444:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"19444:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19425:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19484,"nodeType":"ExpressionStatement","src":"19425:34:77"},{"eventCall":{"arguments":[{"id":19486,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19372,"src":"19514:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19487,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19374,"src":"19525:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19485,"name":"LogClaimClosed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"19499:14:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":19488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19499:34:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19489,"nodeType":"EmitStatement","src":"19494:39:77"}]},"functionSelector":"7f29dba2","id":19491,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18504:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19379,"modifierName":{"id":19377,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"18489:14:77"},"nodeType":"ModifierInvocation","src":"18489:24:77"}],"name":"closeClaim","nameLocation":"18408:10:77","nodeType":"FunctionDefinition","overrides":{"id":19376,"nodeType":"OverrideSpecifier","overrides":[],"src":"18472:8:77"},"parameters":{"id":19375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19372,"mutability":"mutable","name":"processId","nameLocation":"18427:9:77","nodeType":"VariableDeclaration","scope":19491,"src":"18419:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18419:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19374,"mutability":"mutable","name":"claimId","nameLocation":"18446:7:77","nodeType":"VariableDeclaration","scope":19491,"src":"18438:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19373,"name":"uint256","nodeType":"ElementaryTypeName","src":"18438:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18418:36:77"},"returnParameters":{"id":19380,"nodeType":"ParameterList","parameters":[],"src":"18519:0:77"},"scope":19974,"src":"18399:1141:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5425],"body":{"id":19649,"nodeType":"Block","src":"19802:1241:77","statements":[{"assignments":[19510],"declarations":[{"constant":false,"id":19510,"mutability":"mutable","name":"policy","nameLocation":"19827:6:77","nodeType":"VariableDeclaration","scope":19649,"src":"19812:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19509,"nodeType":"UserDefinedTypeName","pathNode":{"id":19508,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"19812:6:77"},"referencedDeclaration":5282,"src":"19812:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19514,"initialValue":{"baseExpression":{"id":19511,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"19836:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19513,"indexExpression":{"id":19512,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"19845:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19836:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19812:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19516,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19510,"src":"19873:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"19873:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19892:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19873:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038303a504f4c4943595f444f45535f4e4f545f4558495354","id":19520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19895:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a5a889abcf6c19c8dc84442c08bf7a95a45a161f8d31bee9415eee17c6af67a","typeString":"literal_string \"ERROR:POC-080:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-080:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a5a889abcf6c19c8dc84442c08bf7a95a45a161f8d31bee9415eee17c6af67a","typeString":"literal_string \"ERROR:POC-080:POLICY_DOES_NOT_EXIST\""}],"id":19515,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19865:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19865:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19522,"nodeType":"ExpressionStatement","src":"19865:68:77"},{"assignments":[19525],"declarations":[{"constant":false,"id":19525,"mutability":"mutable","name":"claim","nameLocation":"19958:5:77","nodeType":"VariableDeclaration","scope":19649,"src":"19944:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19524,"nodeType":"UserDefinedTypeName","pathNode":{"id":19523,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"19944:5:77"},"referencedDeclaration":5296,"src":"19944:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19531,"initialValue":{"baseExpression":{"baseExpression":{"id":19526,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"19966:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19528,"indexExpression":{"id":19527,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"19973:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19966:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19530,"indexExpression":{"id":19529,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19495,"src":"19984:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19966:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19944:48:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19533,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19525,"src":"20010:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"20010:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20028:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20010:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038313a434c41494d5f444f45535f4e4f545f4558495354","id":19537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20031:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_bad351fc3f92fb02e37fe12e8bfff9d2e9a73dc2520d63761873fd147db6724b","typeString":"literal_string \"ERROR:POC-081:CLAIM_DOES_NOT_EXIST\""},"value":"ERROR:POC-081:CLAIM_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bad351fc3f92fb02e37fe12e8bfff9d2e9a73dc2520d63761873fd147db6724b","typeString":"literal_string \"ERROR:POC-081:CLAIM_DOES_NOT_EXIST\""}],"id":19532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"20002:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20002:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19539,"nodeType":"ExpressionStatement","src":"20002:66:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19541,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19525,"src":"20086:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"20086:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":19543,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"20101:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":19544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ClaimState","nodeType":"MemberAccess","referencedDeclaration":5231,"src":"20101:18:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Confirmed","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"20101:28:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"20086:43:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038323a434c41494d5f4e4f545f434f4e4649524d4544","id":19547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20131:35:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_bfc0ba001c33e3f6ca8d92ccec220dc5c2f1e52ae20defc45ca76c02259da5c3","typeString":"literal_string \"ERROR:POC-082:CLAIM_NOT_CONFIRMED\""},"value":"ERROR:POC-082:CLAIM_NOT_CONFIRMED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bfc0ba001c33e3f6ca8d92ccec220dc5c2f1e52ae20defc45ca76c02259da5c3","typeString":"literal_string \"ERROR:POC-082:CLAIM_NOT_CONFIRMED\""}],"id":19540,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"20078:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20078:89:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19549,"nodeType":"ExpressionStatement","src":"20078:89:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19551,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"20185:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20200:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20185:16:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038333a5041594f55545f414d4f554e545f5a45524f5f494e56414c4944","id":19554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20203:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_12a836dd02d461888166ce18ce5bc78481bf477d1f9ebbf4ce8444ca0e7f0dc1","typeString":"literal_string \"ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID\""},"value":"ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_12a836dd02d461888166ce18ce5bc78481bf477d1f9ebbf4ce8444ca0e7f0dc1","typeString":"literal_string \"ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID\""}],"id":19550,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"20177:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20177:69:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19556,"nodeType":"ExpressionStatement","src":"20177:69:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19558,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19525,"src":"20277:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paidAmount","nodeType":"MemberAccess","referencedDeclaration":5289,"src":"20277:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19560,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"20296:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20277:31:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":19562,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19525,"src":"20312:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"20312:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20277:52:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038343a5041594f55545f414d4f554e545f544f4f5f424947","id":19565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20343:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_cdac7f3ad598042a4a49afc2907268af0bd86276c34f48886ad7a8f93edf5782","typeString":"literal_string \"ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG\""},"value":"ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cdac7f3ad598042a4a49afc2907268af0bd86276c34f48886ad7a8f93edf5782","typeString":"literal_string \"ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG\""}],"id":19557,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"20256:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20256:134:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19567,"nodeType":"ExpressionStatement","src":"20256:134:77"},{"expression":{"id":19572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19568,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19506,"src":"20401:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19569,"name":"payoutCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18105,"src":"20412:11:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19571,"indexExpression":{"id":19570,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"20424:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20412:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20401:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19573,"nodeType":"ExpressionStatement","src":"20401:33:77"},{"assignments":[19576],"declarations":[{"constant":false,"id":19576,"mutability":"mutable","name":"payout","nameLocation":"20459:6:77","nodeType":"VariableDeclaration","scope":19649,"src":"20444:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":19575,"nodeType":"UserDefinedTypeName","pathNode":{"id":19574,"name":"Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"20444:6:77"},"referencedDeclaration":5310,"src":"20444:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"id":19582,"initialValue":{"baseExpression":{"baseExpression":{"id":19577,"name":"payouts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18101,"src":"20468:7:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout storage ref))"}},"id":19579,"indexExpression":{"id":19578,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"20476:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20468:18:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$","typeString":"mapping(uint256 => struct IPolicy.Payout storage ref)"}},"id":19581,"indexExpression":{"id":19580,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19506,"src":"20487:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20468:28:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage","typeString":"struct IPolicy.Payout storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20444:52:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19584,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20514:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5307,"src":"20514:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":19586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20534:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20514:21:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038353a5041594f55545f414c52454144595f455849535453","id":19588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20537:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_d99e4ac56574361524102dce714b9a80317be2e650f34ab1f2fc06080904a047","typeString":"literal_string \"ERROR:POC-085:PAYOUT_ALREADY_EXISTS\""},"value":"ERROR:POC-085:PAYOUT_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d99e4ac56574361524102dce714b9a80317be2e650f34ab1f2fc06080904a047","typeString":"literal_string \"ERROR:POC-085:PAYOUT_ALREADY_EXISTS\""}],"id":19583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"20506:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20506:69:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19590,"nodeType":"ExpressionStatement","src":"20506:69:77"},{"expression":{"id":19595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19591,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20586:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"claimId","nodeType":"MemberAccess","referencedDeclaration":5298,"src":"20586:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19594,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19495,"src":"20603:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20586:24:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19596,"nodeType":"ExpressionStatement","src":"20586:24:77"},{"expression":{"id":19601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19597,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20620:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"20620:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19600,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"20636:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20620:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19602,"nodeType":"ExpressionStatement","src":"20620:28:77"},{"expression":{"id":19607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19603,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20658:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5305,"src":"20658:11:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19606,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19499,"src":"20672:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"20658:18:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":19608,"nodeType":"ExpressionStatement","src":"20658:18:77"},{"expression":{"id":19614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19609,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20686:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5301,"src":"20686:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19612,"name":"PayoutState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5234,"src":"20701:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PayoutState_$5234_$","typeString":"type(enum IPolicy.PayoutState)"}},"id":19613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expected","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"20701:20:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"src":"20686:35:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"id":19615,"nodeType":"ExpressionStatement","src":"20686:35:77"},{"expression":{"id":19621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19616,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20731:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5307,"src":"20731:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19619,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"20750:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20750:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20731:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19622,"nodeType":"ExpressionStatement","src":"20731:34:77"},{"expression":{"id":19628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19623,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20799:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5309,"src":"20799:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19626,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"20818:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20818:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20799:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19629,"nodeType":"ExpressionStatement","src":"20799:34:77"},{"expression":{"id":19633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"20868:24:77","subExpression":{"baseExpression":{"id":19630,"name":"payoutCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18105,"src":"20868:11:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19632,"indexExpression":{"id":19631,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"20880:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20868:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19634,"nodeType":"ExpressionStatement","src":"20868:24:77"},{"expression":{"id":19640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19635,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19510,"src":"20902:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"20902:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19638,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"20921:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20921:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20902:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19641,"nodeType":"ExpressionStatement","src":"20902:34:77"},{"eventCall":{"arguments":[{"id":19643,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"20993:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19644,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19495,"src":"21004:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19645,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19506,"src":"21013:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19646,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"21023:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19642,"name":"LogPayoutCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5207,"src":"20976:16:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256,uint256)"}},"id":19647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20976:60:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19648,"nodeType":"EmitStatement","src":"20971:65:77"}]},"functionSelector":"db42b77b","id":19650,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19752:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19504,"modifierName":{"id":19502,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"19737:14:77"},"nodeType":"ModifierInvocation","src":"19737:24:77"}],"name":"createPayout","nameLocation":"19572:12:77","nodeType":"FunctionDefinition","overrides":{"id":19501,"nodeType":"OverrideSpecifier","overrides":[],"src":"19719:8:77"},"parameters":{"id":19500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19493,"mutability":"mutable","name":"processId","nameLocation":"19602:9:77","nodeType":"VariableDeclaration","scope":19650,"src":"19594:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19594:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19495,"mutability":"mutable","name":"claimId","nameLocation":"19629:7:77","nodeType":"VariableDeclaration","scope":19650,"src":"19621:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19494,"name":"uint256","nodeType":"ElementaryTypeName","src":"19621:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19497,"mutability":"mutable","name":"payoutAmount","nameLocation":"19654:12:77","nodeType":"VariableDeclaration","scope":19650,"src":"19646:20:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19496,"name":"uint256","nodeType":"ElementaryTypeName","src":"19646:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19499,"mutability":"mutable","name":"data","nameLocation":"19691:4:77","nodeType":"VariableDeclaration","scope":19650,"src":"19676:19:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19498,"name":"bytes","nodeType":"ElementaryTypeName","src":"19676:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19584:117:77"},"returnParameters":{"id":19507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19506,"mutability":"mutable","name":"payoutId","nameLocation":"19788:8:77","nodeType":"VariableDeclaration","scope":19650,"src":"19780:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19505,"name":"uint256","nodeType":"ElementaryTypeName","src":"19780:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19779:18:77"},"scope":19974,"src":"19563:1480:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5432],"body":{"id":19788,"nodeType":"Block","src":"21195:1147:77","statements":[{"assignments":[19663],"declarations":[{"constant":false,"id":19663,"mutability":"mutable","name":"policy","nameLocation":"21220:6:77","nodeType":"VariableDeclaration","scope":19788,"src":"21205:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19662,"nodeType":"UserDefinedTypeName","pathNode":{"id":19661,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"21205:6:77"},"referencedDeclaration":5282,"src":"21205:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19667,"initialValue":{"baseExpression":{"id":19664,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"21229:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19666,"indexExpression":{"id":19665,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"21238:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21229:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21205:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19669,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19663,"src":"21266:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"21266:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21285:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21266:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3039303a504f4c4943595f444f45535f4e4f545f4558495354","id":19673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21288:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c588baea0842d5c025c2163acf2806d62a81ff4e95e6f6cd3cf1ce8023895b8","typeString":"literal_string \"ERROR:POC-090:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-090:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c588baea0842d5c025c2163acf2806d62a81ff4e95e6f6cd3cf1ce8023895b8","typeString":"literal_string \"ERROR:POC-090:POLICY_DOES_NOT_EXIST\""}],"id":19668,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21258:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21258:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19675,"nodeType":"ExpressionStatement","src":"21258:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19677,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19663,"src":"21344:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"21344:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21369:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21344:26:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3039313a504f4c4943595f574954484f55545f4f50454e5f434c41494d53","id":19681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21372:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_56e2f09f25415e91cf31d4547c2e56eb6e29b71cb0dd85b313fae192ba276a63","typeString":"literal_string \"ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS\""},"value":"ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_56e2f09f25415e91cf31d4547c2e56eb6e29b71cb0dd85b313fae192ba276a63","typeString":"literal_string \"ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS\""}],"id":19676,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21336:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21336:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19683,"nodeType":"ExpressionStatement","src":"21336:79:77"},{"assignments":[19686],"declarations":[{"constant":false,"id":19686,"mutability":"mutable","name":"payout","nameLocation":"21441:6:77","nodeType":"VariableDeclaration","scope":19788,"src":"21426:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":19685,"nodeType":"UserDefinedTypeName","pathNode":{"id":19684,"name":"Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"21426:6:77"},"referencedDeclaration":5310,"src":"21426:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"id":19692,"initialValue":{"baseExpression":{"baseExpression":{"id":19687,"name":"payouts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18101,"src":"21450:7:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout storage ref))"}},"id":19689,"indexExpression":{"id":19688,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"21458:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21450:18:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$","typeString":"mapping(uint256 => struct IPolicy.Payout storage ref)"}},"id":19691,"indexExpression":{"id":19690,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19654,"src":"21469:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21450:28:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage","typeString":"struct IPolicy.Payout storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21426:52:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19694,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21496:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5307,"src":"21496:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21515:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21496:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3039323a5041594f55545f444f45535f4e4f545f4558495354","id":19698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21518:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_93b837b53622deccc674a4295ad216375b944d6d9e4fcced40e36e2aab9aae9d","typeString":"literal_string \"ERROR:POC-092:PAYOUT_DOES_NOT_EXIST\""},"value":"ERROR:POC-092:PAYOUT_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93b837b53622deccc674a4295ad216375b944d6d9e4fcced40e36e2aab9aae9d","typeString":"literal_string \"ERROR:POC-092:PAYOUT_DOES_NOT_EXIST\""}],"id":19693,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21488:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21488:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19700,"nodeType":"ExpressionStatement","src":"21488:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"},"id":19706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19702,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21574:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5301,"src":"21574:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19704,"name":"PayoutState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5234,"src":"21590:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PayoutState_$5234_$","typeString":"type(enum IPolicy.PayoutState)"}},"id":19705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expected","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"21590:20:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"src":"21574:36:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3039333a5041594f55545f414c52454144595f504149444f5554","id":19707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21612:38:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_01bd7262c070b3850d799edbf9ebd39157a9b16f9c9855ee1ca0ecc7e289d2d2","typeString":"literal_string \"ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT\""},"value":"ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01bd7262c070b3850d799edbf9ebd39157a9b16f9c9855ee1ca0ecc7e289d2d2","typeString":"literal_string \"ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT\""}],"id":19701,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21566:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21566:85:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19709,"nodeType":"ExpressionStatement","src":"21566:85:77"},{"expression":{"id":19716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19710,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21662:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5301,"src":"21662:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":19713,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"21677:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":19714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PayoutState","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"21677:19:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PayoutState_$5234_$","typeString":"type(enum IPolicy.PayoutState)"}},"id":19715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PaidOut","nodeType":"MemberAccess","referencedDeclaration":5233,"src":"21677:27:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"src":"21662:42:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"id":19717,"nodeType":"ExpressionStatement","src":"21662:42:77"},{"expression":{"id":19723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19718,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21714:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5309,"src":"21714:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19721,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"21733:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"21733:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21714:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19724,"nodeType":"ExpressionStatement","src":"21714:34:77"},{"eventCall":{"arguments":[{"id":19726,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"21807:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19727,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19654,"src":"21818:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19725,"name":"LogPayoutProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5213,"src":"21788:18:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":19728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21788:39:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19729,"nodeType":"EmitStatement","src":"21783:44:77"},{"assignments":[19732],"declarations":[{"constant":false,"id":19732,"mutability":"mutable","name":"claim","nameLocation":"21852:5:77","nodeType":"VariableDeclaration","scope":19788,"src":"21838:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19731,"nodeType":"UserDefinedTypeName","pathNode":{"id":19730,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"21838:5:77"},"referencedDeclaration":5296,"src":"21838:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19739,"initialValue":{"baseExpression":{"baseExpression":{"id":19733,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"21860:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19735,"indexExpression":{"id":19734,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"21867:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21860:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19738,"indexExpression":{"expression":{"id":19736,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21878:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimId","nodeType":"MemberAccess","referencedDeclaration":5298,"src":"21878:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21860:33:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21838:55:77"},{"expression":{"id":19745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19740,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19732,"src":"21903:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"paidAmount","nodeType":"MemberAccess","referencedDeclaration":5289,"src":"21903:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":19743,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21923:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"21923:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21903:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19746,"nodeType":"ExpressionStatement","src":"21903:33:77"},{"expression":{"id":19752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19747,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19732,"src":"21946:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5295,"src":"21946:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19750,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"21964:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"21964:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21946:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19753,"nodeType":"ExpressionStatement","src":"21946:33:77"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19754,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19732,"src":"22058:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"22058:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19756,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19732,"src":"22079:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paidAmount","nodeType":"MemberAccess","referencedDeclaration":5289,"src":"22079:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22058:37:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19787,"nodeType":"IfStatement","src":"22054:282:77","trueBody":{"id":19786,"nodeType":"Block","src":"22097:239:77","statements":[{"expression":{"id":19765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19759,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19732,"src":"22111:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"22111:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":19762,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"22125:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":19763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ClaimState","nodeType":"MemberAccess","referencedDeclaration":5231,"src":"22125:18:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"22125:25:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"22111:39:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"id":19766,"nodeType":"ExpressionStatement","src":"22111:39:77"},{"expression":{"id":19771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19767,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19663,"src":"22165:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"22165:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":19770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22191:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22165:27:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19772,"nodeType":"ExpressionStatement","src":"22165:27:77"},{"expression":{"id":19778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19773,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19663,"src":"22206:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"22206:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19776,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"22225:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"22225:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22206:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19779,"nodeType":"ExpressionStatement","src":"22206:34:77"},{"eventCall":{"arguments":[{"id":19781,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"22299:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":19782,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"22310:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimId","nodeType":"MemberAccess","referencedDeclaration":5298,"src":"22310:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19780,"name":"LogClaimClosed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"22284:14:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":19784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22284:41:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19785,"nodeType":"EmitStatement","src":"22279:46:77"}]}}]},"functionSelector":"fe64372b","id":19789,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21181:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19659,"modifierName":{"id":19657,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"21166:14:77"},"nodeType":"ModifierInvocation","src":"21166:24:77"}],"name":"processPayout","nameLocation":"21058:13:77","nodeType":"FunctionDefinition","overrides":{"id":19656,"nodeType":"OverrideSpecifier","overrides":[],"src":"21148:8:77"},"parameters":{"id":19655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19652,"mutability":"mutable","name":"processId","nameLocation":"21089:9:77","nodeType":"VariableDeclaration","scope":19789,"src":"21081:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21081:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19654,"mutability":"mutable","name":"payoutId","nameLocation":"21116:8:77","nodeType":"VariableDeclaration","scope":19789,"src":"21108:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19653,"name":"uint256","nodeType":"ElementaryTypeName","src":"21108:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21071:59:77"},"returnParameters":{"id":19660,"nodeType":"ParameterList","parameters":[],"src":"21195:0:77"},"scope":19974,"src":"21049:1293:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19811,"nodeType":"Block","src":"22472:132:77","statements":[{"expression":{"id":19801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19797,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19795,"src":"22482:9:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19798,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"22494:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":19800,"indexExpression":{"id":19799,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19791,"src":"22503:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22494:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"src":"22482:31:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":19802,"nodeType":"ExpressionStatement","src":"22482:31:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19804,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19795,"src":"22531:9:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":19805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"22531:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22553:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22531:23:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3130303a4d455441444154415f444f45535f4e4f545f4558495354","id":19808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22557:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_690f72e367997aa82f823a8f8aab3f2b4ad3e7d36411ad6e690ba049cd7f8970","typeString":"literal_string \"ERROR:POC-100:METADATA_DOES_NOT_EXIST\""},"value":"ERROR:POC-100:METADATA_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_690f72e367997aa82f823a8f8aab3f2b4ad3e7d36411ad6e690ba049cd7f8970","typeString":"literal_string \"ERROR:POC-100:METADATA_DOES_NOT_EXIST\""}],"id":19803,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"22523:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22523:74:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19810,"nodeType":"ExpressionStatement","src":"22523:74:77"}]},"functionSelector":"a5961b4c","id":19812,"implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"22357:11:77","nodeType":"FunctionDefinition","parameters":{"id":19792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19791,"mutability":"mutable","name":"processId","nameLocation":"22377:9:77","nodeType":"VariableDeclaration","scope":19812,"src":"22369:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22369:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22368:19:77"},"returnParameters":{"id":19796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19795,"mutability":"mutable","name":"_metadata","nameLocation":"22457:9:77","nodeType":"VariableDeclaration","scope":19812,"src":"22433:33:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":19794,"nodeType":"UserDefinedTypeName","pathNode":{"id":19793,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"22433:16:77"},"referencedDeclaration":5248,"src":"22433:16:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"src":"22432:35:77"},"scope":19974,"src":"22348:256:77","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19834,"nodeType":"Block","src":"22742:150:77","statements":[{"expression":{"id":19824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19820,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19818,"src":"22752:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19821,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"22766:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":19823,"indexExpression":{"id":19822,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19814,"src":"22779:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22766:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"src":"22752:37:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":19825,"nodeType":"ExpressionStatement","src":"22752:37:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19827,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19818,"src":"22807:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":19828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"22807:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22831:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22807:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3130313a4150504c49434154494f4e5f444f45535f4e4f545f4558495354","id":19831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22834:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3da05b0c6fea2f8ac4206180524be50a65b9f5363895b5e6c8aa31db28fb502a","typeString":"literal_string \"ERROR:POC-101:APPLICATION_DOES_NOT_EXIST\""},"value":"ERROR:POC-101:APPLICATION_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3da05b0c6fea2f8ac4206180524be50a65b9f5363895b5e6c8aa31db28fb502a","typeString":"literal_string \"ERROR:POC-101:APPLICATION_DOES_NOT_EXIST\""}],"id":19826,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"22799:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22799:78:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19833,"nodeType":"ExpressionStatement","src":"22799:78:77"}]},"functionSelector":"bc506f64","id":19835,"implemented":true,"kind":"function","modifiers":[],"name":"getApplication","nameLocation":"22619:14:77","nodeType":"FunctionDefinition","parameters":{"id":19815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19814,"mutability":"mutable","name":"processId","nameLocation":"22642:9:77","nodeType":"VariableDeclaration","scope":19835,"src":"22634:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19813,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22634:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22633:19:77"},"returnParameters":{"id":19819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19818,"mutability":"mutable","name":"application","nameLocation":"22725:11:77","nodeType":"VariableDeclaration","scope":19835,"src":"22698:38:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":19817,"nodeType":"UserDefinedTypeName","pathNode":{"id":19816,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"22698:19:77"},"referencedDeclaration":5262,"src":"22698:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"22697:40:77"},"scope":19974,"src":"22610:282:77","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19849,"nodeType":"Block","src":"22990:66:77","statements":[{"expression":{"id":19847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19842,"name":"numberOfClaims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19840,"src":"23000:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":19844,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19837,"src":"23027:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19843,"name":"getPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19887,"src":"23017:9:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Policy memory)"}},"id":19845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23017:20:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":19846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimsCount","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"23017:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23000:49:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19848,"nodeType":"ExpressionStatement","src":"23000:49:77"}]},"functionSelector":"b1e25988","id":19850,"implemented":true,"kind":"function","modifiers":[],"name":"getNumberOfClaims","nameLocation":"22907:17:77","nodeType":"FunctionDefinition","parameters":{"id":19838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19837,"mutability":"mutable","name":"processId","nameLocation":"22933:9:77","nodeType":"VariableDeclaration","scope":19850,"src":"22925:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19836,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22925:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22924:19:77"},"returnParameters":{"id":19841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19840,"mutability":"mutable","name":"numberOfClaims","nameLocation":"22974:14:77","nodeType":"VariableDeclaration","scope":19850,"src":"22966:22:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19839,"name":"uint256","nodeType":"ElementaryTypeName","src":"22966:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22965:24:77"},"scope":19974,"src":"22898:158:77","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":19863,"nodeType":"Block","src":"23160:57:77","statements":[{"expression":{"id":19861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19857,"name":"numberOfPayouts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19855,"src":"23170:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19858,"name":"payoutCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18105,"src":"23188:11:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19860,"indexExpression":{"id":19859,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19852,"src":"23200:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23188:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23170:40:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19862,"nodeType":"ExpressionStatement","src":"23170:40:77"}]},"functionSelector":"be183b11","id":19864,"implemented":true,"kind":"function","modifiers":[],"name":"getNumberOfPayouts","nameLocation":"23075:18:77","nodeType":"FunctionDefinition","parameters":{"id":19853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19852,"mutability":"mutable","name":"processId","nameLocation":"23102:9:77","nodeType":"VariableDeclaration","scope":19864,"src":"23094:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23094:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23093:19:77"},"returnParameters":{"id":19856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19855,"mutability":"mutable","name":"numberOfPayouts","nameLocation":"23143:15:77","nodeType":"VariableDeclaration","scope":19864,"src":"23135:23:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19854,"name":"uint256","nodeType":"ElementaryTypeName","src":"23135:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23134:25:77"},"scope":19974,"src":"23066:151:77","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":19886,"nodeType":"Block","src":"23340:131:77","statements":[{"expression":{"id":19876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19872,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"23350:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19873,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"23359:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19875,"indexExpression":{"id":19874,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19866,"src":"23368:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23359:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"src":"23350:28:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":19877,"nodeType":"ExpressionStatement","src":"23350:28:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19879,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"23396:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":19880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"23396:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23415:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23396:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3130323a504f4c4943595f444f45535f4e4f545f4558495354","id":19883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23418:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ac03beb57c99a65c7942aa68c11e6b91d3cade8654ba7436c76c86f22bcf529","typeString":"literal_string \"ERROR:POC-102:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-102:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ac03beb57c99a65c7942aa68c11e6b91d3cade8654ba7436c76c86f22bcf529","typeString":"literal_string \"ERROR:POC-102:POLICY_DOES_NOT_EXIST\""}],"id":19878,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"23388:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23388:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19885,"nodeType":"ExpressionStatement","src":"23388:68:77"}]},"functionSelector":"a3f685f9","id":19887,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicy","nameLocation":"23232:9:77","nodeType":"FunctionDefinition","parameters":{"id":19867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19866,"mutability":"mutable","name":"processId","nameLocation":"23250:9:77","nodeType":"VariableDeclaration","scope":19887,"src":"23242:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23242:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23241:19:77"},"returnParameters":{"id":19871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19870,"mutability":"mutable","name":"policy","nameLocation":"23328:6:77","nodeType":"VariableDeclaration","scope":19887,"src":"23306:28:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19869,"nodeType":"UserDefinedTypeName","pathNode":{"id":19868,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"23306:14:77"},"referencedDeclaration":5282,"src":"23306:14:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"src":"23305:30:77"},"scope":19974,"src":"23223:248:77","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19913,"nodeType":"Block","src":"23608:135:77","statements":[{"expression":{"id":19903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19897,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19895,"src":"23618:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":19898,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"23626:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19900,"indexExpression":{"id":19899,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19889,"src":"23633:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23626:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19902,"indexExpression":{"id":19901,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19891,"src":"23644:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23626:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"src":"23618:34:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"id":19904,"nodeType":"ExpressionStatement","src":"23618:34:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19906,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19895,"src":"23670:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"id":19907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"23670:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23688:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23670:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3130333a434c41494d5f444f45535f4e4f545f4558495354","id":19910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23691:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_5153c23cb9f198d7c66f5cc94bb88552d8f24d48aafcfe0e6f3776d7f1f59836","typeString":"literal_string \"ERROR:POC-103:CLAIM_DOES_NOT_EXIST\""},"value":"ERROR:POC-103:CLAIM_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5153c23cb9f198d7c66f5cc94bb88552d8f24d48aafcfe0e6f3776d7f1f59836","typeString":"literal_string \"ERROR:POC-103:CLAIM_DOES_NOT_EXIST\""}],"id":19905,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"23662:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23662:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19912,"nodeType":"ExpressionStatement","src":"23662:66:77"}]},"functionSelector":"7f22c2d9","id":19914,"implemented":true,"kind":"function","modifiers":[],"name":"getClaim","nameLocation":"23486:8:77","nodeType":"FunctionDefinition","parameters":{"id":19892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19889,"mutability":"mutable","name":"processId","nameLocation":"23503:9:77","nodeType":"VariableDeclaration","scope":19914,"src":"23495:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19888,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23495:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19891,"mutability":"mutable","name":"claimId","nameLocation":"23522:7:77","nodeType":"VariableDeclaration","scope":19914,"src":"23514:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19890,"name":"uint256","nodeType":"ElementaryTypeName","src":"23514:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23494:36:77"},"returnParameters":{"id":19896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19895,"mutability":"mutable","name":"claim","nameLocation":"23597:5:77","nodeType":"VariableDeclaration","scope":19914,"src":"23576:26:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19894,"nodeType":"UserDefinedTypeName","pathNode":{"id":19893,"name":"IPolicy.Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"23576:13:77"},"referencedDeclaration":5296,"src":"23576:13:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"src":"23575:28:77"},"scope":19974,"src":"23477:266:77","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19940,"nodeType":"Block","src":"23884:140:77","statements":[{"expression":{"id":19930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19924,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19922,"src":"23894:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":19925,"name":"payouts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18101,"src":"23903:7:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout storage ref))"}},"id":19927,"indexExpression":{"id":19926,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19916,"src":"23911:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23903:18:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$","typeString":"mapping(uint256 => struct IPolicy.Payout storage ref)"}},"id":19929,"indexExpression":{"id":19928,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"23922:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23903:28:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage","typeString":"struct IPolicy.Payout storage ref"}},"src":"23894:37:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":19931,"nodeType":"ExpressionStatement","src":"23894:37:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19933,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19922,"src":"23949:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":19934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5307,"src":"23949:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23968:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23949:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3130343a5041594f55545f444f45535f4e4f545f4558495354","id":19937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23971:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fe79e67d34a91a0798917f8e39194a7499cac6ed14bea4875fa47d7458df812","typeString":"literal_string \"ERROR:POC-104:PAYOUT_DOES_NOT_EXIST\""},"value":"ERROR:POC-104:PAYOUT_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3fe79e67d34a91a0798917f8e39194a7499cac6ed14bea4875fa47d7458df812","typeString":"literal_string \"ERROR:POC-104:PAYOUT_DOES_NOT_EXIST\""}],"id":19932,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"23941:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23941:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19939,"nodeType":"ExpressionStatement","src":"23941:68:77"}]},"functionSelector":"cef58f13","id":19941,"implemented":true,"kind":"function","modifiers":[],"name":"getPayout","nameLocation":"23758:9:77","nodeType":"FunctionDefinition","parameters":{"id":19919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19916,"mutability":"mutable","name":"processId","nameLocation":"23776:9:77","nodeType":"VariableDeclaration","scope":19941,"src":"23768:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23768:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19918,"mutability":"mutable","name":"payoutId","nameLocation":"23795:8:77","nodeType":"VariableDeclaration","scope":19941,"src":"23787:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19917,"name":"uint256","nodeType":"ElementaryTypeName","src":"23787:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23767:37:77"},"returnParameters":{"id":19923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19922,"mutability":"mutable","name":"payout","nameLocation":"23872:6:77","nodeType":"VariableDeclaration","scope":19941,"src":"23850:28:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":19921,"nodeType":"UserDefinedTypeName","pathNode":{"id":19920,"name":"IPolicy.Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"23850:14:77"},"referencedDeclaration":5310,"src":"23850:14:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"src":"23849:30:77"},"scope":19974,"src":"23749:275:77","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19948,"nodeType":"Block","src":"24084:43:77","statements":[{"expression":{"id":19946,"name":"_assigendProcessIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"24101:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19945,"id":19947,"nodeType":"Return","src":"24094:26:77"}]},"functionSelector":"a427056e","id":19949,"implemented":true,"kind":"function","modifiers":[],"name":"processIds","nameLocation":"24039:10:77","nodeType":"FunctionDefinition","parameters":{"id":19942,"nodeType":"ParameterList","parameters":[],"src":"24049:2:77"},"returnParameters":{"id":19945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19949,"src":"24075:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19943,"name":"uint256","nodeType":"ElementaryTypeName","src":"24075:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24074:9:77"},"scope":19974,"src":"24030:97:77","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":19972,"nodeType":"Block","src":"24202:229:77","statements":[{"expression":{"id":19955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"24212:21:77","subExpression":{"id":19954,"name":"_assigendProcessIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"24212:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19956,"nodeType":"ExpressionStatement","src":"24212:21:77"},{"expression":{"id":19970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19957,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19952,"src":"24244:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":19961,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"24313:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"24313:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":19965,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"24353:9:77","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}],"id":19964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24345:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19963,"name":"address","nodeType":"ElementaryTypeName","src":"24345:7:77","typeDescriptions":{}}},"id":19966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24345:18:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19967,"name":"_assigendProcessIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"24381:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19959,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"24279:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"24279:16:77","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24279:135:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19958,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"24256:9:77","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":19969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24256:168:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"24244:180:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":19971,"nodeType":"ExpressionStatement","src":"24244:180:77"}]},"id":19973,"implemented":true,"kind":"function","modifiers":[],"name":"_generateNextProcessId","nameLocation":"24142:22:77","nodeType":"FunctionDefinition","parameters":{"id":19950,"nodeType":"ParameterList","parameters":[],"src":"24164:2:77"},"returnParameters":{"id":19953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19952,"mutability":"mutable","name":"processId","nameLocation":"24191:9:77","nodeType":"VariableDeclaration","scope":19973,"src":"24183:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24183:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24182:19:77"},"scope":19974,"src":"24133:298:77","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":19975,"src":"4404:20030:77"}],"src":"39:24396:77"},"id":77},"contracts/modules/PoolController.sol":{"ast":{"absolutePath":"contracts/modules/PoolController.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IOracle":[3022],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059],"Ownable":[7481],"PolicyController":[19974],"PoolController":[21207],"Strings":[10804]},"id":21208,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":19976,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:78"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"./ComponentController.sol","id":19977,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":17948,"src":"63:35:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PolicyController.sol","file":"./PolicyController.sol","id":19978,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":19975,"src":"99:32:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/BundleController.sol","file":"./BundleController.sol","id":19979,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":16947,"src":"132:32:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":19980,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":26414,"src":"165:38:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPool.sol","file":"@etherisc/gif-interface/contracts/modules/IPool.sol","id":19981,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":5550,"src":"205:61:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":19982,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":2989,"src":"267:69:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","file":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","id":19983,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":3313,"src":"337:68:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":19984,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":11440,"src":"408:65:78","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":19986,"name":"IPool","nodeType":"IdentifierPath","referencedDeclaration":5549,"src":"3007:5:78"},"id":19987,"nodeType":"InheritanceSpecifier","src":"3007:5:78"},{"baseName":{"id":19988,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"3018:14:78"},"id":19989,"nodeType":"InheritanceSpecifier","src":"3018:14:78"}],"contractDependencies":[5549,8059,10518,26413],"contractKind":"contract","documentation":{"id":19985,"nodeType":"StructuredDocumentation","src":"475:2499:78","text":"The smart contract manages riskpools, their registration, funding, defunding, collateralization, and other related operations.\n- The contract implements the IPool interface and extends the CoreController contract.\n- It imports other contracts such as ComponentController, PolicyController, BundleController, and CoreController.\n- It uses the EnumerableSet library from OpenZeppelin for managing sets of bundle IDs.\n- The contract defines constants for full collateralization level, collateralization level cap, and default maximum number of active bundles.\n- It maintains mappings to store riskpool information, riskpool IDs for products, maximum number of active bundles for riskpools, and active bundle IDs for riskpools.\n- The contract has a private array to store riskpool IDs.\n- It has references to other contracts: ComponentController, PolicyController, and BundleController.\n- The contract defines modifiers for access control to specific functions.\nFunctions:\n- `_afterInitialize()`: Called after contract initialization to set addresses of other contracts.\n- `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration.\n- `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID.\n- `fund()`: Adds funds to a specific riskpool.\n- `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount.\n- `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure.\n- `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount.\n- `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract.\n- `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout.\n- `release()`: Releases a policy's collateral from the riskpool.\nOverall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations."},"fullyImplemented":true,"id":21207,"linearizedBaseContracts":[21207,26413,8059,10518,5549],"name":"PoolController","nameLocation":"2985:14:78","nodeType":"ContractDefinition","nodes":[{"id":19993,"libraryName":{"id":19990,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":11439,"src":"3046:13:78"},"nodeType":"UsingForDirective","src":"3040:46:78","typeName":{"id":19992,"nodeType":"UserDefinedTypeName","pathNode":{"id":19991,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"3064:21:78"},"referencedDeclaration":11309,"src":"3064:21:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"constant":true,"functionSelector":"45fe1c6d","id":19998,"mutability":"constant","name":"FULL_COLLATERALIZATION_LEVEL","nameLocation":"3275:28:78","nodeType":"VariableDeclaration","scope":21207,"src":"3251:61:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19994,"name":"uint256","nodeType":"ElementaryTypeName","src":"3251:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":19997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":19995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3306:2:78","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":19996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3310:2:78","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"3306:6:78","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"public"},{"constant":true,"functionSelector":"da68771a","id":20003,"mutability":"constant","name":"COLLATERALIZATION_LEVEL_CAP","nameLocation":"3397:27:78","nodeType":"VariableDeclaration","scope":21207,"src":"3373:86:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19999,"name":"uint256","nodeType":"ElementaryTypeName","src":"3373:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":20000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3427:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":20001,"name":"FULL_COLLATERALIZATION_LEVEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19998,"src":"3431:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3427:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":true,"functionSelector":"edb5be30","id":20006,"mutability":"constant","name":"DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES","nameLocation":"3490:36:78","nodeType":"VariableDeclaration","scope":21207,"src":"3466:64:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20004,"name":"uint256","nodeType":"ElementaryTypeName","src":"3466:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":20005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3529:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"constant":false,"id":20010,"mutability":"mutable","name":"_collateralAmount","nameLocation":"3612:17:78","nodeType":"VariableDeclaration","scope":21207,"src":"3537:92:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":20009,"keyType":{"id":20007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3545:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3537:66:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":20008,"name":"uint256","nodeType":"ElementaryTypeName","src":"3572:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":20014,"mutability":"mutable","name":"_riskpoolIdForProductId","nameLocation":"3705:23:78","nodeType":"VariableDeclaration","scope":21207,"src":"3636:92:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":20013,"keyType":{"id":20011,"name":"uint256","nodeType":"ElementaryTypeName","src":"3644:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3636:60:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":20012,"name":"uint256","nodeType":"ElementaryTypeName","src":"3671:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":20019,"mutability":"mutable","name":"_riskpools","nameLocation":"3792:10:78","nodeType":"VariableDeclaration","scope":21207,"src":"3735:67:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool)"},"typeName":{"id":20018,"keyType":{"id":20015,"name":"uint256","nodeType":"ElementaryTypeName","src":"3743:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3735:47:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool)"},"valueType":{"id":20017,"nodeType":"UserDefinedTypeName","pathNode":{"id":20016,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"3771:10:78"},"referencedDeclaration":5502,"src":"3771:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}}},"visibility":"private"},{"constant":false,"id":20023,"mutability":"mutable","name":"_maxmimumNumberOfActiveBundlesForRiskpoolId","nameLocation":"3898:43:78","nodeType":"VariableDeclaration","scope":21207,"src":"3809:132:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":20022,"keyType":{"id":20020,"name":"uint256","nodeType":"ElementaryTypeName","src":"3817:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3809:80:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":20021,"name":"uint256","nodeType":"ElementaryTypeName","src":"3845:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":20028,"mutability":"mutable","name":"_activeBundleIdsForRiskpoolId","nameLocation":"4042:29:78","nodeType":"VariableDeclaration","scope":21207,"src":"3948:123:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet)"},"typeName":{"id":20027,"keyType":{"id":20024,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3948:85:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet)"},"valueType":{"id":20026,"nodeType":"UserDefinedTypeName","pathNode":{"id":20025,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"3984:21:78"},"referencedDeclaration":11309,"src":"3984:21:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},"visibility":"private"},{"constant":false,"id":20031,"mutability":"mutable","name":"_riskpoolIds","nameLocation":"4101:12:78","nodeType":"VariableDeclaration","scope":21207,"src":"4082:31:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":20029,"name":"uint256","nodeType":"ElementaryTypeName","src":"4082:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20030,"nodeType":"ArrayTypeName","src":"4082:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"private"},{"constant":false,"id":20034,"mutability":"mutable","name":"_component","nameLocation":"4148:10:78","nodeType":"VariableDeclaration","scope":21207,"src":"4120:38:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":20033,"nodeType":"UserDefinedTypeName","pathNode":{"id":20032,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"4120:19:78"},"referencedDeclaration":17947,"src":"4120:19:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"constant":false,"id":20037,"mutability":"mutable","name":"_policy","nameLocation":"4189:7:78","nodeType":"VariableDeclaration","scope":21207,"src":"4164:32:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":20036,"nodeType":"UserDefinedTypeName","pathNode":{"id":20035,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"4164:16:78"},"referencedDeclaration":19974,"src":"4164:16:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"private"},{"constant":false,"id":20040,"mutability":"mutable","name":"_bundle","nameLocation":"4227:7:78","nodeType":"VariableDeclaration","scope":21207,"src":"4202:32:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"},"typeName":{"id":20039,"nodeType":"UserDefinedTypeName","pathNode":{"id":20038,"name":"BundleController","nodeType":"IdentifierPath","referencedDeclaration":16946,"src":"4202:16:78"},"referencedDeclaration":16946,"src":"4202:16:78","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"visibility":"private"},{"body":{"id":20053,"nodeType":"Block","src":"4280:172:78","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":20043,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4311:10:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":20044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4311:12:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":20046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4347:25:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"id":20045,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4327:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":20047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4327:46:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4311:62:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030313a4e4f545f494e5354414e43455f4f50455241544f52","id":20049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4387:37:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_01ba533ede5bc9857bd888044082beab7540e9985694ecf1b8f2420761091360","typeString":"literal_string \"ERROR:POL-001:NOT_INSTANCE_OPERATOR\""},"value":"ERROR:POL-001:NOT_INSTANCE_OPERATOR"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01ba533ede5bc9857bd888044082beab7540e9985694ecf1b8f2420761091360","typeString":"literal_string \"ERROR:POL-001:NOT_INSTANCE_OPERATOR\""}],"id":20042,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4290:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4290:144:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20051,"nodeType":"ExpressionStatement","src":"4290:144:78"},{"id":20052,"nodeType":"PlaceholderStatement","src":"4444:1:78"}]},"id":20054,"name":"onlyInstanceOperatorService","nameLocation":"4250:27:78","nodeType":"ModifierDefinition","parameters":{"id":20041,"nodeType":"ParameterList","parameters":[],"src":"4277:2:78"},"src":"4241:211:78","virtual":false,"visibility":"internal"},{"body":{"id":20067,"nodeType":"Block","src":"4489:163:78","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":20057,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4520:10:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":20058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4520:12:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"5269736b706f6f6c53657276696365","id":20060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4556:17:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""},"value":"RiskpoolService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""}],"id":20059,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4536:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":20061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4536:38:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4520:54:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030323a4e4f545f5249534b504f4f4c5f53455256494345","id":20063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4588:36:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_966f1f86304de2b3465165e344fb9e74c7781a68f6ea7df637fdc3729caa28d7","typeString":"literal_string \"ERROR:POL-002:NOT_RISKPOOL_SERVICE\""},"value":"ERROR:POL-002:NOT_RISKPOOL_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_966f1f86304de2b3465165e344fb9e74c7781a68f6ea7df637fdc3729caa28d7","typeString":"literal_string \"ERROR:POL-002:NOT_RISKPOOL_SERVICE\""}],"id":20056,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4499:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4499:135:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20065,"nodeType":"ExpressionStatement","src":"4499:135:78"},{"id":20066,"nodeType":"PlaceholderStatement","src":"4644:1:78"}]},"id":20068,"name":"onlyRiskpoolService","nameLocation":"4467:19:78","nodeType":"ModifierDefinition","parameters":{"id":20055,"nodeType":"ParameterList","parameters":[],"src":"4486:2:78"},"src":"4458:194:78","virtual":false,"visibility":"internal"},{"body":{"id":20085,"nodeType":"Block","src":"4702:185:78","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":20080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":20075,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20070,"src":"4762:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20073,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"4733:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":20074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"4733:28:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":20076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4733:40:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":20077,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"4777:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":20078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"4777:25:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":20079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"4777:32:78","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"4733:76:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030333a5249534b504f4f4c5f4e4f545f414354495645","id":20081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4824:35:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_2676f82624b5790964b977de4e2922d89874c40d9966c58f2ee005dc0bbd3479","typeString":"literal_string \"ERROR:POL-003:RISKPOOL_NOT_ACTIVE\""},"value":"ERROR:POL-003:RISKPOOL_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2676f82624b5790964b977de4e2922d89874c40d9966c58f2ee005dc0bbd3479","typeString":"literal_string \"ERROR:POL-003:RISKPOOL_NOT_ACTIVE\""}],"id":20072,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4712:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4712:157:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20083,"nodeType":"ExpressionStatement","src":"4712:157:78"},{"id":20084,"nodeType":"PlaceholderStatement","src":"4879:1:78"}]},"id":20086,"name":"onlyActivePool","nameLocation":"4667:14:78","nodeType":"ModifierDefinition","parameters":{"id":20071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20070,"mutability":"mutable","name":"riskpoolId","nameLocation":"4690:10:78","nodeType":"VariableDeclaration","scope":20086,"src":"4682:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20069,"name":"uint256","nodeType":"ElementaryTypeName","src":"4682:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4681:20:78"},"src":"4658:229:78","virtual":false,"visibility":"internal"},{"body":{"id":20120,"nodeType":"Block","src":"4946:334:78","statements":[{"assignments":[20094],"declarations":[{"constant":false,"id":20094,"mutability":"mutable","name":"metadata","nameLocation":"4980:8:78","nodeType":"VariableDeclaration","scope":20120,"src":"4956:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":20093,"nodeType":"UserDefinedTypeName","pathNode":{"id":20092,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"4956:16:78"},"referencedDeclaration":5248,"src":"4956:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":20099,"initialValue":{"arguments":[{"id":20097,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20088,"src":"5011:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20095,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"4991:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"4991:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":20098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4991:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"4956:65:78"},{"assignments":[20101],"declarations":[{"constant":false,"id":20101,"mutability":"mutable","name":"riskpoolId","nameLocation":"5039:10:78","nodeType":"VariableDeclaration","scope":20120,"src":"5031:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20100,"name":"uint256","nodeType":"ElementaryTypeName","src":"5031:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20106,"initialValue":{"baseExpression":{"id":20102,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"5052:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20105,"indexExpression":{"expression":{"id":20103,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20094,"src":"5076:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":20104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"5076:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5052:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5031:64:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":20115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":20110,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20101,"src":"5155:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20108,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"5126:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":20109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"5126:28:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":20111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5126:40:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":20112,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"5170:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":20113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"5170:25:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":20114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"5170:32:78","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"5126:76:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030343a5249534b504f4f4c5f4e4f545f414354495645","id":20116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5217:35:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b7f0a4d9ff2dc985060892cfa5d21ef1861aee5377df8478f07451d1c71c9a4","typeString":"literal_string \"ERROR:POL-004:RISKPOOL_NOT_ACTIVE\""},"value":"ERROR:POL-004:RISKPOOL_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1b7f0a4d9ff2dc985060892cfa5d21ef1861aee5377df8478f07451d1c71c9a4","typeString":"literal_string \"ERROR:POL-004:RISKPOOL_NOT_ACTIVE\""}],"id":20107,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5105:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5105:157:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20118,"nodeType":"ExpressionStatement","src":"5105:157:78"},{"id":20119,"nodeType":"PlaceholderStatement","src":"5272:1:78"}]},"id":20121,"name":"onlyActivePoolForProcess","nameLocation":"4902:24:78","nodeType":"ModifierDefinition","parameters":{"id":20089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20088,"mutability":"mutable","name":"processId","nameLocation":"4935:9:78","nodeType":"VariableDeclaration","scope":20121,"src":"4927:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4927:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4926:19:78"},"src":"4893:387:78","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":20151,"nodeType":"Block","src":"5349:217:78","statements":[{"expression":{"id":20133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20127,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"5359:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":20130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5412:11:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":20129,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5392:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":20131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5392:32:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20128,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"5372:19:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":20132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5372:53:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"5359:66:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":20134,"nodeType":"ExpressionStatement","src":"5359:66:78"},{"expression":{"id":20141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20135,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"5435:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6c696379","id":20138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5482:8:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""}],"id":20137,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5462:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":20139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5462:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20136,"name":"PolicyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"5445:16:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PolicyController_$19974_$","typeString":"type(contract PolicyController)"}},"id":20140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5445:47:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"src":"5435:57:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20142,"nodeType":"ExpressionStatement","src":"5435:57:78"},{"expression":{"id":20149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20143,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20040,"src":"5502:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"42756e646c65","id":20146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5549:8:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""},"value":"Bundle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""}],"id":20145,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5529:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":20147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5529:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20144,"name":"BundleController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"5512:16:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleController_$16946_$","typeString":"type(contract BundleController)"}},"id":20148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5512:47:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"src":"5502:57:78","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":20150,"nodeType":"ExpressionStatement","src":"5502:57:78"}]},"id":20152,"implemented":true,"kind":"function","modifiers":[{"id":20125,"modifierName":{"id":20124,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"5332:16:78"},"nodeType":"ModifierInvocation","src":"5332:16:78"}],"name":"_afterInitialize","nameLocation":"5295:16:78","nodeType":"FunctionDefinition","overrides":{"id":20123,"nodeType":"OverrideSpecifier","overrides":[],"src":"5323:8:78"},"parameters":{"id":20122,"nodeType":"ParameterList","parameters":[],"src":"5311:2:78"},"returnParameters":{"id":20126,"nodeType":"ParameterList","parameters":[],"src":"5349:0:78"},"scope":21207,"src":"5286:280:78","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5515],"body":{"id":20307,"nodeType":"Block","src":"5821:1205:78","statements":[{"assignments":[20172],"declarations":[{"constant":false,"id":20172,"mutability":"mutable","name":"pool","nameLocation":"5850:4:78","nodeType":"VariableDeclaration","scope":20307,"src":"5831:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20171,"nodeType":"UserDefinedTypeName","pathNode":{"id":20170,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"5831:10:78"},"referencedDeclaration":5502,"src":"5831:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20176,"initialValue":{"baseExpression":{"id":20173,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"5857:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20175,"indexExpression":{"id":20174,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"5868:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5857:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5831:48:78"},{"expression":{"arguments":[{"id":20180,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"5907:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20177,"name":"_riskpoolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"5889:12:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":20179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"5889:17:78","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":20181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5889:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20182,"nodeType":"ExpressionStatement","src":"5889:29:78"},{"expression":{"id":20187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20183,"name":"_maxmimumNumberOfActiveBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20023,"src":"5928:43:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20185,"indexExpression":{"id":20184,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"5972:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5928:55:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20186,"name":"DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20006,"src":"5986:36:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5928:94:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20188,"nodeType":"ExpressionStatement","src":"5928:94:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20190,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6049:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5499,"src":"6049:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":20192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6067:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6049:19:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030353a5249534b504f4f4c5f414c52454144595f52454749535445524544","id":20194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6070:43:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_f58ee845cc4844222cd7fa0a8e8d561077a6aa1109b2c08627d10c4eab87b0d9","typeString":"literal_string \"ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED\""},"value":"ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f58ee845cc4844222cd7fa0a8e8d561077a6aa1109b2c08627d10c4eab87b0d9","typeString":"literal_string \"ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED\""}],"id":20189,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6041:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6041:73:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20196,"nodeType":"ExpressionStatement","src":"6041:73:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20198,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20156,"src":"6133:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":20201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6151:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6143:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20199,"name":"address","nodeType":"ElementaryTypeName","src":"6143:7:78","typeDescriptions":{}}},"id":20202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6143:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6133:20:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030363a57414c4c45545f414444524553535f5a45524f","id":20204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6155:35:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a58e30d80b67c427d73fc6164f99768fb9b50c18604efb17c57bf2e875de904","typeString":"literal_string \"ERROR:POL-006:WALLET_ADDRESS_ZERO\""},"value":"ERROR:POL-006:WALLET_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a58e30d80b67c427d73fc6164f99768fb9b50c18604efb17c57bf2e875de904","typeString":"literal_string \"ERROR:POL-006:WALLET_ADDRESS_ZERO\""}],"id":20197,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6125:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6125:66:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20206,"nodeType":"ExpressionStatement","src":"6125:66:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20208,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20158,"src":"6209:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":20211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6231:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6223:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20209,"name":"address","nodeType":"ElementaryTypeName","src":"6223:7:78","typeDescriptions":{}}},"id":20212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6223:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6209:24:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030373a45524332305f414444524553535f5a45524f","id":20214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6235:34:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c1c4902271d3c52f6adb4d23ba17ac60cf40fb4880aa2a0a9d8c9072958ecfa","typeString":"literal_string \"ERROR:POL-007:ERC20_ADDRESS_ZERO\""},"value":"ERROR:POL-007:ERC20_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c1c4902271d3c52f6adb4d23ba17ac60cf40fb4880aa2a0a9d8c9072958ecfa","typeString":"literal_string \"ERROR:POL-007:ERC20_ADDRESS_ZERO\""}],"id":20207,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6201:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6201:69:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20216,"nodeType":"ExpressionStatement","src":"6201:69:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20218,"name":"collateralizationLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"6288:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":20219,"name":"COLLATERALIZATION_LEVEL_CAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20003,"src":"6314:27:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6288:53:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030383a434f4c4c41544552414c495a4154494f4e5f6c4556456c5f544f4f5f48494748","id":20221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6343:48:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_acad2caacd6ddfafd876b6f7b9565d102fbab77b96c69233dfb71c5f810056a1","typeString":"literal_string \"ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH\""},"value":"ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_acad2caacd6ddfafd876b6f7b9565d102fbab77b96c69233dfb71c5f810056a1","typeString":"literal_string \"ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH\""}],"id":20217,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6280:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6280:112:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20223,"nodeType":"ExpressionStatement","src":"6280:112:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20225,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20162,"src":"6410:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6431:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6410:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030393a53554d5f4f465f53554d5f494e53555245445f4341505f5a45524f","id":20228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6434:43:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_153cdd57b6a54a67c3edead82db53ff9ca80c0d53800cc6e08d94bcd48709063","typeString":"literal_string \"ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO\""},"value":"ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_153cdd57b6a54a67c3edead82db53ff9ca80c0d53800cc6e08d94bcd48709063","typeString":"literal_string \"ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO\""}],"id":20224,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6402:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6402:76:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20230,"nodeType":"ExpressionStatement","src":"6402:76:78"},{"expression":{"id":20235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20231,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6489:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":5481,"src":"6489:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20234,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"6499:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6489:20:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20236,"nodeType":"ExpressionStatement","src":"6489:20:78"},{"expression":{"id":20241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20237,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6520:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":5483,"src":"6520:11:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20240,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20156,"src":"6534:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6520:20:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20242,"nodeType":"ExpressionStatement","src":"6520:20:78"},{"expression":{"id":20247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20243,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6551:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"erc20Token","nodeType":"MemberAccess","referencedDeclaration":5485,"src":"6551:15:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20246,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20158,"src":"6569:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6551:28:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20248,"nodeType":"ExpressionStatement","src":"6551:28:78"},{"expression":{"id":20253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20249,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6590:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"collateralizationLevel","nodeType":"MemberAccess","referencedDeclaration":5487,"src":"6590:27:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20252,"name":"collateralizationLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"6620:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6590:52:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20254,"nodeType":"ExpressionStatement","src":"6590:52:78"},{"expression":{"id":20259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20255,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6652:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfSumInsuredCap","nodeType":"MemberAccess","referencedDeclaration":5489,"src":"6652:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20258,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20162,"src":"6678:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6652:44:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20260,"nodeType":"ExpressionStatement","src":"6652:44:78"},{"expression":{"id":20265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20261,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6707:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfSumInsuredAtRisk","nodeType":"MemberAccess","referencedDeclaration":5491,"src":"6707:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6736:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6707:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20266,"nodeType":"ExpressionStatement","src":"6707:30:78"},{"expression":{"id":20271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20267,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6747:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"6747:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6762:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6747:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20272,"nodeType":"ExpressionStatement","src":"6747:16:78"},{"expression":{"id":20277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20273,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6773:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"6773:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6794:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6773:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20278,"nodeType":"ExpressionStatement","src":"6773:22:78"},{"expression":{"id":20283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20279,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6805:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"6805:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6820:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6805:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20284,"nodeType":"ExpressionStatement","src":"6805:16:78"},{"expression":{"id":20290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20285,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6832:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5499,"src":"6832:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20288,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"6849:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6849:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6832:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20291,"nodeType":"ExpressionStatement","src":"6832:32:78"},{"expression":{"id":20297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20292,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6874:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"6874:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20295,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"6891:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6891:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6874:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20298,"nodeType":"ExpressionStatement","src":"6874:32:78"},{"eventCall":{"arguments":[{"id":20300,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"6944:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20301,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20156,"src":"6956:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20302,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20158,"src":"6964:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20303,"name":"collateralizationLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"6976:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20304,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20162,"src":"7000:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20299,"name":"LogRiskpoolRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5447,"src":"6922:21:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,uint256,uint256)"}},"id":20305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6922:97:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20306,"nodeType":"EmitStatement","src":"6917:102:78"}]},"functionSelector":"57419e8f","id":20308,"implemented":true,"kind":"function","modifiers":[{"id":20166,"modifierName":{"id":20165,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"5797:19:78"},"nodeType":"ModifierInvocation","src":"5797:19:78"}],"name":"registerRiskpool","nameLocation":"5582:16:78","nodeType":"FunctionDefinition","overrides":{"id":20164,"nodeType":"OverrideSpecifier","overrides":[],"src":"5780:8:78"},"parameters":{"id":20163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20154,"mutability":"mutable","name":"riskpoolId","nameLocation":"5616:10:78","nodeType":"VariableDeclaration","scope":20308,"src":"5608:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20153,"name":"uint256","nodeType":"ElementaryTypeName","src":"5608:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20156,"mutability":"mutable","name":"wallet","nameLocation":"5645:6:78","nodeType":"VariableDeclaration","scope":20308,"src":"5637:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20155,"name":"address","nodeType":"ElementaryTypeName","src":"5637:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20158,"mutability":"mutable","name":"erc20Token","nameLocation":"5669:10:78","nodeType":"VariableDeclaration","scope":20308,"src":"5661:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20157,"name":"address","nodeType":"ElementaryTypeName","src":"5661:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20160,"mutability":"mutable","name":"collateralizationLevel","nameLocation":"5697:22:78","nodeType":"VariableDeclaration","scope":20308,"src":"5689:30:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20159,"name":"uint256","nodeType":"ElementaryTypeName","src":"5689:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20162,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"5738:18:78","nodeType":"VariableDeclaration","scope":20308,"src":"5730:26:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20161,"name":"uint256","nodeType":"ElementaryTypeName","src":"5730:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5598:164:78"},"returnParameters":{"id":20167,"nodeType":"ParameterList","parameters":[],"src":"5821:0:78"},"scope":21207,"src":"5573:1453:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5522],"body":{"id":20349,"nodeType":"Block","src":"7169:330:78","statements":[{"expression":{"arguments":[{"arguments":[{"id":20321,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20310,"src":"7208:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20319,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"7187:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":20320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"7187:20:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":20322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7187:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3031303a4e4f545f50524f44554354","id":20323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7220:27:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_21abf94b5548761de95d02f2a3d6e1d83d6d35330a6e30e85c122e0961c94723","typeString":"literal_string \"ERROR:POL-010:NOT_PRODUCT\""},"value":"ERROR:POL-010:NOT_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_21abf94b5548761de95d02f2a3d6e1d83d6d35330a6e30e85c122e0961c94723","typeString":"literal_string \"ERROR:POL-010:NOT_PRODUCT\""}],"id":20318,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7179:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7179:69:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20325,"nodeType":"ExpressionStatement","src":"7179:69:78"},{"expression":{"arguments":[{"arguments":[{"id":20329,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20312,"src":"7288:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20327,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"7266:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":20328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"7266:21:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":20330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7266:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3031313a4e4f545f5249534b504f4f4c","id":20331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7301:28:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_53bb344f755768ff8b29ba330a2701e3df8da028fa755fbfd239aa46f33046db","typeString":"literal_string \"ERROR:POL-011:NOT_RISKPOOL\""},"value":"ERROR:POL-011:NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_53bb344f755768ff8b29ba330a2701e3df8da028fa755fbfd239aa46f33046db","typeString":"literal_string \"ERROR:POL-011:NOT_RISKPOOL\""}],"id":20326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7258:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7258:72:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20333,"nodeType":"ExpressionStatement","src":"7258:72:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":20335,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"7348:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20337,"indexExpression":{"id":20336,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20310,"src":"7372:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7348:34:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":20338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7386:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7348:39:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3031323a5249534b504f4f4c5f414c52454144595f534554","id":20340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7389:36:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_f319dea6556041246bb86b4f2b8ac2451da0edcfdd502e0f920d7f44141a5322","typeString":"literal_string \"ERROR:POL-012:RISKPOOL_ALREADY_SET\""},"value":"ERROR:POL-012:RISKPOOL_ALREADY_SET"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f319dea6556041246bb86b4f2b8ac2451da0edcfdd502e0f920d7f44141a5322","typeString":"literal_string \"ERROR:POL-012:RISKPOOL_ALREADY_SET\""}],"id":20334,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7340:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7340:86:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20342,"nodeType":"ExpressionStatement","src":"7340:86:78"},{"expression":{"id":20347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20343,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"7445:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20345,"indexExpression":{"id":20344,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20310,"src":"7469:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7445:34:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20346,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20312,"src":"7482:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7445:47:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20348,"nodeType":"ExpressionStatement","src":"7445:47:78"}]},"functionSelector":"f93b3673","id":20350,"implemented":true,"kind":"function","modifiers":[{"id":20316,"modifierName":{"id":20315,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":20054,"src":"7137:27:78"},"nodeType":"ModifierInvocation","src":"7137:27:78"}],"name":"setRiskpoolForProduct","nameLocation":"7041:21:78","nodeType":"FunctionDefinition","overrides":{"id":20314,"nodeType":"OverrideSpecifier","overrides":[],"src":"7120:8:78"},"parameters":{"id":20313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20310,"mutability":"mutable","name":"productId","nameLocation":"7071:9:78","nodeType":"VariableDeclaration","scope":20350,"src":"7063:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20309,"name":"uint256","nodeType":"ElementaryTypeName","src":"7063:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20312,"mutability":"mutable","name":"riskpoolId","nameLocation":"7090:10:78","nodeType":"VariableDeclaration","scope":20350,"src":"7082:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20311,"name":"uint256","nodeType":"ElementaryTypeName","src":"7082:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7062:39:78"},"returnParameters":{"id":20317,"nodeType":"ParameterList","parameters":[],"src":"7169:0:78"},"scope":21207,"src":"7032:467:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20390,"nodeType":"Block","src":"7640:171:78","statements":[{"assignments":[20366],"declarations":[{"constant":false,"id":20366,"mutability":"mutable","name":"pool","nameLocation":"7669:4:78","nodeType":"VariableDeclaration","scope":20390,"src":"7650:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20365,"nodeType":"UserDefinedTypeName","pathNode":{"id":20364,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"7650:10:78"},"referencedDeclaration":5502,"src":"7650:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20370,"initialValue":{"baseExpression":{"id":20367,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"7676:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20369,"indexExpression":{"id":20368,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20352,"src":"7687:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7676:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7650:48:78"},{"expression":{"id":20375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20371,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20366,"src":"7708:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"7708:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":20374,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20354,"src":"7724:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7708:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20376,"nodeType":"ExpressionStatement","src":"7708:22:78"},{"expression":{"id":20381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20377,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20366,"src":"7740:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"7740:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":20380,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20354,"src":"7756:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7740:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20382,"nodeType":"ExpressionStatement","src":"7740:22:78"},{"expression":{"id":20388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20383,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20366,"src":"7772:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"7772:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20386,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"7789:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7789:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7772:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20389,"nodeType":"ExpressionStatement","src":"7772:32:78"}]},"functionSelector":"a65e2cfd","id":20391,"implemented":true,"kind":"function","modifiers":[{"id":20357,"modifierName":{"id":20356,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"7581:19:78"},"nodeType":"ModifierInvocation","src":"7581:19:78"},{"arguments":[{"id":20359,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20352,"src":"7624:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20360,"modifierName":{"id":20358,"name":"onlyActivePool","nodeType":"IdentifierPath","referencedDeclaration":20086,"src":"7609:14:78"},"nodeType":"ModifierInvocation","src":"7609:26:78"}],"name":"fund","nameLocation":"7514:4:78","nodeType":"FunctionDefinition","parameters":{"id":20355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20352,"mutability":"mutable","name":"riskpoolId","nameLocation":"7527:10:78","nodeType":"VariableDeclaration","scope":20391,"src":"7519:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20351,"name":"uint256","nodeType":"ElementaryTypeName","src":"7519:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20354,"mutability":"mutable","name":"amount","nameLocation":"7547:6:78","nodeType":"VariableDeclaration","scope":20391,"src":"7539:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20353,"name":"uint256","nodeType":"ElementaryTypeName","src":"7539:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7518:36:78"},"returnParameters":{"id":20361,"nodeType":"ParameterList","parameters":[],"src":"7640:0:78"},"scope":21207,"src":"7505:306:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20444,"nodeType":"Block","src":"7954:263:78","statements":[{"assignments":[20407],"declarations":[{"constant":false,"id":20407,"mutability":"mutable","name":"pool","nameLocation":"7983:4:78","nodeType":"VariableDeclaration","scope":20444,"src":"7964:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20406,"nodeType":"UserDefinedTypeName","pathNode":{"id":20405,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"7964:10:78"},"referencedDeclaration":5502,"src":"7964:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20411,"initialValue":{"baseExpression":{"id":20408,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"7990:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20410,"indexExpression":{"id":20409,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20393,"src":"8001:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7990:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7964:48:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20412,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"8027:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"8027:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":20414,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20395,"src":"8043:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8027:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":20429,"nodeType":"Block","src":"8115:21:78","statements":[{"expression":{"id":20427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20423,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"8117:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"8117:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8132:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8117:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20428,"nodeType":"ExpressionStatement","src":"8117:16:78"}]},"id":20430,"nodeType":"IfStatement","src":"8023:113:78","trueBody":{"id":20422,"nodeType":"Block","src":"8051:27:78","statements":[{"expression":{"id":20420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20416,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"8053:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"8053:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20419,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20395,"src":"8069:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8053:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20421,"nodeType":"ExpressionStatement","src":"8053:22:78"}]}},{"expression":{"id":20435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20431,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"8146:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"8146:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20434,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20395,"src":"8162:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8146:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20436,"nodeType":"ExpressionStatement","src":"8146:22:78"},{"expression":{"id":20442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20437,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"8178:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"8178:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20440,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"8195:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8195:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8178:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20443,"nodeType":"ExpressionStatement","src":"8178:32:78"}]},"functionSelector":"c397ae39","id":20445,"implemented":true,"kind":"function","modifiers":[{"id":20398,"modifierName":{"id":20397,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"7895:19:78"},"nodeType":"ModifierInvocation","src":"7895:19:78"},{"arguments":[{"id":20400,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20393,"src":"7938:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20401,"modifierName":{"id":20399,"name":"onlyActivePool","nodeType":"IdentifierPath","referencedDeclaration":20086,"src":"7923:14:78"},"nodeType":"ModifierInvocation","src":"7923:26:78"}],"name":"defund","nameLocation":"7826:6:78","nodeType":"FunctionDefinition","parameters":{"id":20396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20393,"mutability":"mutable","name":"riskpoolId","nameLocation":"7841:10:78","nodeType":"VariableDeclaration","scope":20445,"src":"7833:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20392,"name":"uint256","nodeType":"ElementaryTypeName","src":"7833:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20395,"mutability":"mutable","name":"amount","nameLocation":"7861:6:78","nodeType":"VariableDeclaration","scope":20445,"src":"7853:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20394,"name":"uint256","nodeType":"ElementaryTypeName","src":"7853:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7832:36:78"},"returnParameters":{"id":20402,"nodeType":"ParameterList","parameters":[],"src":"7954:0:78"},"scope":21207,"src":"7817:400:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5529],"body":{"id":20590,"nodeType":"Block","src":"8399:1769:78","statements":[{"assignments":[20463],"declarations":[{"constant":false,"id":20463,"mutability":"mutable","name":"application","nameLocation":"8490:11:78","nodeType":"VariableDeclaration","scope":20590,"src":"8463:38:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":20462,"nodeType":"UserDefinedTypeName","pathNode":{"id":20461,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"8463:19:78"},"referencedDeclaration":5262,"src":"8463:19:78","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":20468,"initialValue":{"arguments":[{"id":20466,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"8527:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20464,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"8504:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":19835,"src":"8504:22:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":20467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8504:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"8463:74:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":20475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20470,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20463,"src":"8568:11:78","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":20471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"8568:17:78","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":20472,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"8589:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":20473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ApplicationState","nodeType":"MemberAccess","referencedDeclaration":5222,"src":"8589:24:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":20474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5218,"src":"8589:32:78","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"8568:53:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032303a4150504c49434154494f4e5f53544154455f494e56414c4944","id":20476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8635:41:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b7737fa76e23ee54befdf8804430da02fe2a7f8d2077faa42f91454d58fec1e","typeString":"literal_string \"ERROR:POL-020:APPLICATION_STATE_INVALID\""},"value":"ERROR:POL-020:APPLICATION_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7b7737fa76e23ee54befdf8804430da02fe2a7f8d2077faa42f91454d58fec1e","typeString":"literal_string \"ERROR:POL-020:APPLICATION_STATE_INVALID\""}],"id":20469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8547:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8547:139:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20478,"nodeType":"ExpressionStatement","src":"8547:139:78"},{"assignments":[20483],"declarations":[{"constant":false,"id":20483,"mutability":"mutable","name":"metadata","nameLocation":"8779:8:78","nodeType":"VariableDeclaration","scope":20590,"src":"8755:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":20482,"nodeType":"UserDefinedTypeName","pathNode":{"id":20481,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"8755:16:78"},"referencedDeclaration":5248,"src":"8755:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":20488,"initialValue":{"arguments":[{"id":20486,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"8810:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20484,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"8790:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"8790:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":20487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8790:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"8755:65:78"},{"assignments":[20490],"declarations":[{"constant":false,"id":20490,"mutability":"mutable","name":"riskpoolId","nameLocation":"8838:10:78","nodeType":"VariableDeclaration","scope":20590,"src":"8830:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20489,"name":"uint256","nodeType":"ElementaryTypeName","src":"8830:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20495,"initialValue":{"baseExpression":{"id":20491,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"8851:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20494,"indexExpression":{"expression":{"id":20492,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20483,"src":"8875:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":20493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"8875:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8851:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8830:64:78"},{"assignments":[20497],"declarations":[{"constant":false,"id":20497,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"8961:16:78","nodeType":"VariableDeclaration","scope":20590,"src":"8953:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20496,"name":"uint256","nodeType":"ElementaryTypeName","src":"8953:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20500,"initialValue":{"expression":{"id":20498,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20463,"src":"8980:11:78","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":20499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"8980:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8953:55:78"},{"assignments":[20502],"declarations":[{"constant":false,"id":20502,"mutability":"mutable","name":"collateralAmount","nameLocation":"9026:16:78","nodeType":"VariableDeclaration","scope":20590,"src":"9018:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20501,"name":"uint256","nodeType":"ElementaryTypeName","src":"9018:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20507,"initialValue":{"arguments":[{"id":20504,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20490,"src":"9065:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20505,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"9077:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20503,"name":"calculateCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20636,"src":"9045:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":20506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9045:49:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9018:76:78"},{"expression":{"id":20512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20508,"name":"_collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20010,"src":"9104:17:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":20510,"indexExpression":{"id":20509,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"9122:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9104:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20511,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20502,"src":"9135:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9104:47:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20513,"nodeType":"ExpressionStatement","src":"9104:47:78"},{"eventCall":{"arguments":[{"id":20515,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"9197:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20516,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"9208:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20517,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20502,"src":"9226:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20514,"name":"LogRiskpoolRequiredCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5455,"src":"9167:29:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":20518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9167:76:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20519,"nodeType":"EmitStatement","src":"9162:81:78"},{"assignments":[20524],"declarations":[{"constant":false,"id":20524,"mutability":"mutable","name":"pool","nameLocation":"9369:4:78","nodeType":"VariableDeclaration","scope":20590,"src":"9350:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20523,"nodeType":"UserDefinedTypeName","pathNode":{"id":20522,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"9350:10:78"},"referencedDeclaration":5502,"src":"9350:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20528,"initialValue":{"baseExpression":{"id":20525,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"9376:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20527,"indexExpression":{"id":20526,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20490,"src":"9387:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9376:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9350:48:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20530,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"9429:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfSumInsuredCap","nodeType":"MemberAccess","referencedDeclaration":5489,"src":"9429:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20532,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"9456:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfSumInsuredAtRisk","nodeType":"MemberAccess","referencedDeclaration":5491,"src":"9456:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":20534,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"9485:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9456:45:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9429:72:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032323a5249534b504f4f4c5f53554d5f494e53555245445f4341505f4558434545444544","id":20537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9515:49:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bc20430b5420212dd3a6e8be5f546e3de707484a8680f89c18cb18c351384cb","typeString":"literal_string \"ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED\""},"value":"ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1bc20430b5420212dd3a6e8be5f546e3de707484a8680f89c18cb18c351384cb","typeString":"literal_string \"ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED\""}],"id":20529,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9408:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9408:166:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20539,"nodeType":"ExpressionStatement","src":"9408:166:78"},{"assignments":[20542],"declarations":[{"constant":false,"id":20542,"mutability":"mutable","name":"riskpool","nameLocation":"9641:8:78","nodeType":"VariableDeclaration","scope":20590,"src":"9631:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":20541,"nodeType":"UserDefinedTypeName","pathNode":{"id":20540,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"9631:9:78"},"referencedDeclaration":3312,"src":"9631:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"id":20546,"initialValue":{"arguments":[{"id":20544,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20483,"src":"9674:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}],"id":20543,"name":"_getRiskpoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21172,"src":"9652:21:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Metadata_$5248_memory_ptr_$returns$_t_contract$_IRiskpool_$3312_$","typeString":"function (struct IPolicy.Metadata memory) view returns (contract IRiskpool)"}},"id":20545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9652:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"VariableDeclarationStatement","src":"9631:52:78"},{"expression":{"id":20553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20547,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20457,"src":"9693:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20550,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"9732:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20551,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20502,"src":"9743:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20548,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20542,"src":"9703:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":20549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collateralizePolicy","nodeType":"MemberAccess","referencedDeclaration":3196,"src":"9703:28:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$","typeString":"function (bytes32,uint256) external returns (bool)"}},"id":20552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9703:57:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9693:67:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20554,"nodeType":"ExpressionStatement","src":"9693:67:78"},{"condition":{"id":20555,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20457,"src":"9775:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":20588,"nodeType":"Block","src":"10057:105:78","statements":[{"eventCall":{"arguments":[{"id":20583,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20490,"src":"10111:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20584,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"10123:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20585,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"10134:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20582,"name":"LogRiskpoolCollateralizationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5463,"src":"10076:34:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256)"}},"id":20586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10076:75:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20587,"nodeType":"EmitStatement","src":"10071:80:78"}]},"id":20589,"nodeType":"IfStatement","src":"9771:391:78","trueBody":{"id":20581,"nodeType":"Block","src":"9784:267:78","statements":[{"expression":{"id":20560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20556,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"9798:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfSumInsuredAtRisk","nodeType":"MemberAccess","referencedDeclaration":5491,"src":"9798:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":20559,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"9828:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9798:46:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20561,"nodeType":"ExpressionStatement","src":"9798:46:78"},{"expression":{"id":20566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20562,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"9858:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"9858:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":20565,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20502,"src":"9880:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9858:38:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20567,"nodeType":"ExpressionStatement","src":"9858:38:78"},{"expression":{"id":20573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20568,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"9910:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"9910:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20571,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9927:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9927:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9910:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20574,"nodeType":"ExpressionStatement","src":"9910:32:78"},{"eventCall":{"arguments":[{"id":20576,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20490,"src":"10000:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20577,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"10012:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20578,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"10023:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20575,"name":"LogRiskpoolCollateralizationSucceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5471,"src":"9962:37:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256)"}},"id":20579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9962:78:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20580,"nodeType":"EmitStatement","src":"9957:83:78"}]}}]},"functionSelector":"1b07b17f","id":20591,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6f6c","id":20451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8313:6:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"id":20452,"modifierName":{"id":20450,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"8298:14:78"},"nodeType":"ModifierInvocation","src":"8298:22:78"},{"arguments":[{"id":20454,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"8354:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":20455,"modifierName":{"id":20453,"name":"onlyActivePoolForProcess","nodeType":"IdentifierPath","referencedDeclaration":20121,"src":"8329:24:78"},"nodeType":"ModifierInvocation","src":"8329:35:78"}],"name":"underwrite","nameLocation":"8232:10:78","nodeType":"FunctionDefinition","overrides":{"id":20449,"nodeType":"OverrideSpecifier","overrides":[],"src":"8280:8:78"},"parameters":{"id":20448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20447,"mutability":"mutable","name":"processId","nameLocation":"8251:9:78","nodeType":"VariableDeclaration","scope":20591,"src":"8243:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8243:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8242:19:78"},"returnParameters":{"id":20458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20457,"mutability":"mutable","name":"success","nameLocation":"8386:7:78","nodeType":"VariableDeclaration","scope":20591,"src":"8381:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20456,"name":"bool","nodeType":"ElementaryTypeName","src":"8381:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8380:14:78"},"scope":21207,"src":"8223:1945:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20635,"nodeType":"Block","src":"10328:590:78","statements":[{"assignments":[20601],"declarations":[{"constant":false,"id":20601,"mutability":"mutable","name":"collateralization","nameLocation":"10346:17:78","nodeType":"VariableDeclaration","scope":20635,"src":"10338:25:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20600,"name":"uint256","nodeType":"ElementaryTypeName","src":"10338:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20606,"initialValue":{"expression":{"arguments":[{"id":20603,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20593,"src":"10378:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20602,"name":"getRiskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21002,"src":"10366:11:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view returns (struct IPool.Pool memory)"}},"id":20604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10366:23:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":20605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"collateralizationLevel","nodeType":"MemberAccess","referencedDeclaration":5487,"src":"10366:46:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10338:74:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20607,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20601,"src":"10464:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":20608,"name":"FULL_COLLATERALIZATION_LEVEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19998,"src":"10485:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10464:49:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20615,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20601,"src":"10630:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10650:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10630:21:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":20632,"nodeType":"Block","src":"10867:45:78","statements":[{"expression":{"id":20630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20628,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20598,"src":"10881:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10900:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10881:20:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20631,"nodeType":"ExpressionStatement","src":"10881:20:78"}]},"id":20633,"nodeType":"IfStatement","src":"10626:286:78","trueBody":{"id":20627,"nodeType":"Block","src":"10653:113:78","statements":[{"expression":{"id":20625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20618,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20598,"src":"10667:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20619,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20601,"src":"10687:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":20620,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20595,"src":"10707:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10687:36:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20622,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10686:38:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":20623,"name":"FULL_COLLATERALIZATION_LEVEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19998,"src":"10727:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:69:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10667:88:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20626,"nodeType":"ExpressionStatement","src":"10667:88:78"}]}},"id":20634,"nodeType":"IfStatement","src":"10460:452:78","trueBody":{"id":20614,"nodeType":"Block","src":"10515:105:78","statements":[{"expression":{"id":20612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20610,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20598,"src":"10529:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20611,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20595,"src":"10548:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10529:35:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20613,"nodeType":"ExpressionStatement","src":"10529:35:78"}]}}]},"functionSelector":"7cdb808d","id":20636,"implemented":true,"kind":"function","modifiers":[],"name":"calculateCollateral","nameLocation":"10184:19:78","nodeType":"FunctionDefinition","parameters":{"id":20596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20593,"mutability":"mutable","name":"riskpoolId","nameLocation":"10212:10:78","nodeType":"VariableDeclaration","scope":20636,"src":"10204:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20592,"name":"uint256","nodeType":"ElementaryTypeName","src":"10204:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20595,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"10232:16:78","nodeType":"VariableDeclaration","scope":20636,"src":"10224:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20594,"name":"uint256","nodeType":"ElementaryTypeName","src":"10224:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10203:46:78"},"returnParameters":{"id":20599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20598,"mutability":"mutable","name":"collateralAmount","nameLocation":"10305:16:78","nodeType":"VariableDeclaration","scope":20636,"src":"10297:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20597,"name":"uint256","nodeType":"ElementaryTypeName","src":"10297:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10296:26:78"},"scope":21207,"src":"10175:743:78","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5536],"body":{"id":20703,"nodeType":"Block","src":"11090:409:78","statements":[{"assignments":[20654],"declarations":[{"constant":false,"id":20654,"mutability":"mutable","name":"metadata","nameLocation":"11124:8:78","nodeType":"VariableDeclaration","scope":20703,"src":"11100:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":20653,"nodeType":"UserDefinedTypeName","pathNode":{"id":20652,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"11100:16:78"},"referencedDeclaration":5248,"src":"11100:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":20659,"initialValue":{"arguments":[{"id":20657,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20638,"src":"11155:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20655,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"11135:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"11135:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":20658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11135:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"11100:65:78"},{"assignments":[20662],"declarations":[{"constant":false,"id":20662,"mutability":"mutable","name":"riskpool","nameLocation":"11185:8:78","nodeType":"VariableDeclaration","scope":20703,"src":"11175:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":20661,"nodeType":"UserDefinedTypeName","pathNode":{"id":20660,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"11175:9:78"},"referencedDeclaration":3312,"src":"11175:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"id":20666,"initialValue":{"arguments":[{"id":20664,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20654,"src":"11218:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}],"id":20663,"name":"_getRiskpoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21172,"src":"11196:21:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Metadata_$5248_memory_ptr_$returns$_t_contract$_IRiskpool_$3312_$","typeString":"function (struct IPolicy.Metadata memory) view returns (contract IRiskpool)"}},"id":20665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11196:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"VariableDeclarationStatement","src":"11175:52:78"},{"expression":{"arguments":[{"id":20670,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20638,"src":"11267:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20671,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20640,"src":"11278:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20667,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20662,"src":"11237:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":20669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPolicyPremium","nodeType":"MemberAccess","referencedDeclaration":3203,"src":"11237:29:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":20672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11237:48:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20673,"nodeType":"ExpressionStatement","src":"11237:48:78"},{"assignments":[20675],"declarations":[{"constant":false,"id":20675,"mutability":"mutable","name":"riskpoolId","nameLocation":"11304:10:78","nodeType":"VariableDeclaration","scope":20703,"src":"11296:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20674,"name":"uint256","nodeType":"ElementaryTypeName","src":"11296:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20680,"initialValue":{"baseExpression":{"id":20676,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"11317:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20679,"indexExpression":{"expression":{"id":20677,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20654,"src":"11341:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":20678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"11341:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11317:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11296:64:78"},{"assignments":[20685],"declarations":[{"constant":false,"id":20685,"mutability":"mutable","name":"pool","nameLocation":"11389:4:78","nodeType":"VariableDeclaration","scope":20703,"src":"11370:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20684,"nodeType":"UserDefinedTypeName","pathNode":{"id":20683,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"11370:10:78"},"referencedDeclaration":5502,"src":"11370:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20689,"initialValue":{"baseExpression":{"id":20686,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"11396:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20688,"indexExpression":{"id":20687,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20675,"src":"11407:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11396:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11370:48:78"},{"expression":{"id":20694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20690,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20685,"src":"11428:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"11428:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":20693,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20640,"src":"11444:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11428:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20695,"nodeType":"ExpressionStatement","src":"11428:22:78"},{"expression":{"id":20701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20696,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20685,"src":"11460:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"11460:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20699,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"11477:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11477:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11460:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20702,"nodeType":"ExpressionStatement","src":"11460:32:78"}]},"functionSelector":"02108268","id":20704,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6f6c","id":20644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11034:6:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"id":20645,"modifierName":{"id":20643,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"11019:14:78"},"nodeType":"ModifierInvocation","src":"11019:22:78"},{"arguments":[{"id":20647,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20638,"src":"11075:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":20648,"modifierName":{"id":20646,"name":"onlyActivePoolForProcess","nodeType":"IdentifierPath","referencedDeclaration":20121,"src":"11050:24:78"},"nodeType":"ModifierInvocation","src":"11050:35:78"}],"name":"processPremium","nameLocation":"10934:14:78","nodeType":"FunctionDefinition","overrides":{"id":20642,"nodeType":"OverrideSpecifier","overrides":[],"src":"11002:8:78"},"parameters":{"id":20641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20638,"mutability":"mutable","name":"processId","nameLocation":"10957:9:78","nodeType":"VariableDeclaration","scope":20704,"src":"10949:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10949:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":20640,"mutability":"mutable","name":"amount","nameLocation":"10976:6:78","nodeType":"VariableDeclaration","scope":20704,"src":"10968:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20639,"name":"uint256","nodeType":"ElementaryTypeName","src":"10968:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10948:35:78"},"returnParameters":{"id":20649,"nodeType":"ParameterList","parameters":[],"src":"11090:0:78"},"scope":21207,"src":"10925:574:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5543],"body":{"id":20815,"nodeType":"Block","src":"11670:812:78","statements":[{"assignments":[20722],"declarations":[{"constant":false,"id":20722,"mutability":"mutable","name":"metadata","nameLocation":"11704:8:78","nodeType":"VariableDeclaration","scope":20815,"src":"11680:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":20721,"nodeType":"UserDefinedTypeName","pathNode":{"id":20720,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"11680:16:78"},"referencedDeclaration":5248,"src":"11680:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":20727,"initialValue":{"arguments":[{"id":20725,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20706,"src":"11735:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20723,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"11715:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"11715:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":20726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11715:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"11680:65:78"},{"assignments":[20729],"declarations":[{"constant":false,"id":20729,"mutability":"mutable","name":"riskpoolId","nameLocation":"11763:10:78","nodeType":"VariableDeclaration","scope":20815,"src":"11755:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20728,"name":"uint256","nodeType":"ElementaryTypeName","src":"11755:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20734,"initialValue":{"baseExpression":{"id":20730,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"11776:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20733,"indexExpression":{"expression":{"id":20731,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20722,"src":"11800:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":20732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"11800:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11776:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11755:64:78"},{"assignments":[20739],"declarations":[{"constant":false,"id":20739,"mutability":"mutable","name":"pool","nameLocation":"11848:4:78","nodeType":"VariableDeclaration","scope":20815,"src":"11829:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20738,"nodeType":"UserDefinedTypeName","pathNode":{"id":20737,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"11829:10:78"},"referencedDeclaration":5502,"src":"11829:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20743,"initialValue":{"baseExpression":{"id":20740,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"11855:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20742,"indexExpression":{"id":20741,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20729,"src":"11866:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11855:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11829:48:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20745,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"11895:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5499,"src":"11895:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11912:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11895:18:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032363a5249534b504f4f4c5f49445f494e56414c4944","id":20749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11915:35:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f1d6c58669160bcbfc12f912411cc7135fdc211388790e920c997812d46fbf3","typeString":"literal_string \"ERROR:POL-026:RISKPOOL_ID_INVALID\""},"value":"ERROR:POL-026:RISKPOOL_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f1d6c58669160bcbfc12f912411cc7135fdc211388790e920c997812d46fbf3","typeString":"literal_string \"ERROR:POL-026:RISKPOOL_ID_INVALID\""}],"id":20744,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11887:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11887:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20751,"nodeType":"ExpressionStatement","src":"11887:64:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20753,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"11969:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"11969:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":20755,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"11985:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11969:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032373a4341504954414c5f544f4f5f4c4f57","id":20757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11993:31:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_67cc7eb014a79a7e650ab0cfe6e52cae46518112ef7a651a4b1634ad03248e0e","typeString":"literal_string \"ERROR:POL-027:CAPITAL_TOO_LOW\""},"value":"ERROR:POL-027:CAPITAL_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67cc7eb014a79a7e650ab0cfe6e52cae46518112ef7a651a4b1634ad03248e0e","typeString":"literal_string \"ERROR:POL-027:CAPITAL_TOO_LOW\""}],"id":20752,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11961:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11961:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20759,"nodeType":"ExpressionStatement","src":"11961:64:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20761,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12043:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"12043:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":20763,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12065:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12043:28:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032383a4c4f434b45445f4341504954414c5f544f4f5f4c4f57","id":20765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12073:38:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_44afcf949d770ee053a9529659b3ec99089a2997bdea1c544310c06d7692b840","typeString":"literal_string \"ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW\""},"value":"ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44afcf949d770ee053a9529659b3ec99089a2997bdea1c544310c06d7692b840","typeString":"literal_string \"ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW\""}],"id":20760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12035:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12035:77:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20767,"nodeType":"ExpressionStatement","src":"12035:77:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20769,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12130:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"12130:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":20771,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12146:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12130:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032393a42414c414e43455f544f4f5f4c4f57","id":20773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12154:31:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba78ed8f777c20a07a168d501d7b3d7b92a7f1a27a40caead8609d6c05873a42","typeString":"literal_string \"ERROR:POL-029:BALANCE_TOO_LOW\""},"value":"ERROR:POL-029:BALANCE_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba78ed8f777c20a07a168d501d7b3d7b92a7f1a27a40caead8609d6c05873a42","typeString":"literal_string \"ERROR:POL-029:BALANCE_TOO_LOW\""}],"id":20768,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12122:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12122:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20775,"nodeType":"ExpressionStatement","src":"12122:64:78"},{"expression":{"id":20780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20776,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12197:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"12197:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20779,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12213:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12197:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20781,"nodeType":"ExpressionStatement","src":"12197:22:78"},{"expression":{"id":20786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20782,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12229:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"12229:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20785,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12251:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12229:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20787,"nodeType":"ExpressionStatement","src":"12229:28:78"},{"expression":{"id":20792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20788,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12267:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"12267:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20791,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12283:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12267:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20793,"nodeType":"ExpressionStatement","src":"12267:22:78"},{"expression":{"id":20799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20794,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12299:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"12299:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20797,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12316:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12316:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12299:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20800,"nodeType":"ExpressionStatement","src":"12299:32:78"},{"assignments":[20803],"declarations":[{"constant":false,"id":20803,"mutability":"mutable","name":"riskpool","nameLocation":"12376:8:78","nodeType":"VariableDeclaration","scope":20815,"src":"12366:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":20802,"nodeType":"UserDefinedTypeName","pathNode":{"id":20801,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"12366:9:78"},"referencedDeclaration":3312,"src":"12366:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"id":20807,"initialValue":{"arguments":[{"id":20805,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20722,"src":"12409:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}],"id":20804,"name":"_getRiskpoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21172,"src":"12387:21:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Metadata_$5248_memory_ptr_$returns$_t_contract$_IRiskpool_$3312_$","typeString":"function (struct IPolicy.Metadata memory) view returns (contract IRiskpool)"}},"id":20806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12387:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"VariableDeclarationStatement","src":"12366:52:78"},{"expression":{"arguments":[{"id":20811,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20706,"src":"12457:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12468:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20808,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20803,"src":"12428:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":20810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPolicyPayout","nodeType":"MemberAccess","referencedDeclaration":3210,"src":"12428:28:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":20813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12428:47:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20814,"nodeType":"ExpressionStatement","src":"12428:47:78"}]},"functionSelector":"fe64372b","id":20816,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6f6c","id":20712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11614:6:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"id":20713,"modifierName":{"id":20711,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"11599:14:78"},"nodeType":"ModifierInvocation","src":"11599:22:78"},{"arguments":[{"id":20715,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20706,"src":"11655:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":20716,"modifierName":{"id":20714,"name":"onlyActivePoolForProcess","nodeType":"IdentifierPath","referencedDeclaration":20121,"src":"11630:24:78"},"nodeType":"ModifierInvocation","src":"11630:35:78"}],"name":"processPayout","nameLocation":"11515:13:78","nodeType":"FunctionDefinition","overrides":{"id":20710,"nodeType":"OverrideSpecifier","overrides":[],"src":"11582:8:78"},"parameters":{"id":20709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20706,"mutability":"mutable","name":"processId","nameLocation":"11537:9:78","nodeType":"VariableDeclaration","scope":20816,"src":"11529:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11529:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":20708,"mutability":"mutable","name":"amount","nameLocation":"11556:6:78","nodeType":"VariableDeclaration","scope":20816,"src":"11548:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20707,"name":"uint256","nodeType":"ElementaryTypeName","src":"11548:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11528:35:78"},"returnParameters":{"id":20717,"nodeType":"ParameterList","parameters":[],"src":"11670:0:78"},"scope":21207,"src":"11506:976:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5548],"body":{"id":20934,"nodeType":"Block","src":"12587:1059:78","statements":[{"assignments":[20829],"declarations":[{"constant":false,"id":20829,"mutability":"mutable","name":"policy","nameLocation":"12619:6:78","nodeType":"VariableDeclaration","scope":20934,"src":"12597:28:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":20828,"nodeType":"UserDefinedTypeName","pathNode":{"id":20827,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"12597:14:78"},"referencedDeclaration":5282,"src":"12597:14:78","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":20834,"initialValue":{"arguments":[{"id":20832,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"12646:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20830,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"12628:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"12628:17:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":20833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12628:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"12597:59:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":20841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20836,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20829,"src":"12687:6:78","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":20837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"12687:12:78","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":20838,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"12703:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":20839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"12703:19:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":20840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"12703:26:78","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"12687:42:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032353a504f4c4943595f53544154455f494e56414c4944","id":20842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12743:36:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_8112df5365773a5d212dc325b4bcf75d58165a23e61b1a17302f9ca56a1ed0fb","typeString":"literal_string \"ERROR:POL-025:POLICY_STATE_INVALID\""},"value":"ERROR:POL-025:POLICY_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8112df5365773a5d212dc325b4bcf75d58165a23e61b1a17302f9ca56a1ed0fb","typeString":"literal_string \"ERROR:POL-025:POLICY_STATE_INVALID\""}],"id":20835,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12666:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12666:123:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20844,"nodeType":"ExpressionStatement","src":"12666:123:78"},{"assignments":[20849],"declarations":[{"constant":false,"id":20849,"mutability":"mutable","name":"metadata","nameLocation":"12824:8:78","nodeType":"VariableDeclaration","scope":20934,"src":"12800:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":20848,"nodeType":"UserDefinedTypeName","pathNode":{"id":20847,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"12800:16:78"},"referencedDeclaration":5248,"src":"12800:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":20854,"initialValue":{"arguments":[{"id":20852,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"12855:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20850,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"12835:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"12835:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":20853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12835:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"12800:65:78"},{"assignments":[20857],"declarations":[{"constant":false,"id":20857,"mutability":"mutable","name":"riskpool","nameLocation":"12885:8:78","nodeType":"VariableDeclaration","scope":20934,"src":"12875:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":20856,"nodeType":"UserDefinedTypeName","pathNode":{"id":20855,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"12875:9:78"},"referencedDeclaration":3312,"src":"12875:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"id":20861,"initialValue":{"arguments":[{"id":20859,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20849,"src":"12918:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}],"id":20858,"name":"_getRiskpoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21172,"src":"12896:21:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Metadata_$5248_memory_ptr_$returns$_t_contract$_IRiskpool_$3312_$","typeString":"function (struct IPolicy.Metadata memory) view returns (contract IRiskpool)"}},"id":20860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12896:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"VariableDeclarationStatement","src":"12875:52:78"},{"expression":{"arguments":[{"id":20865,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"12960:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20862,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20857,"src":"12937:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":20864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"releasePolicy","nodeType":"MemberAccess","referencedDeclaration":3215,"src":"12937:22:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":20866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12937:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20867,"nodeType":"ExpressionStatement","src":"12937:33:78"},{"assignments":[20872],"declarations":[{"constant":false,"id":20872,"mutability":"mutable","name":"application","nameLocation":"13008:11:78","nodeType":"VariableDeclaration","scope":20934,"src":"12981:38:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":20871,"nodeType":"UserDefinedTypeName","pathNode":{"id":20870,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"12981:19:78"},"referencedDeclaration":5262,"src":"12981:19:78","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":20877,"initialValue":{"arguments":[{"id":20875,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"13045:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20873,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"13022:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":19835,"src":"13022:22:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":20876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13022:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"12981:74:78"},{"assignments":[20879],"declarations":[{"constant":false,"id":20879,"mutability":"mutable","name":"riskpoolId","nameLocation":"13074:10:78","nodeType":"VariableDeclaration","scope":20934,"src":"13066:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20878,"name":"uint256","nodeType":"ElementaryTypeName","src":"13066:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20884,"initialValue":{"baseExpression":{"id":20880,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"13087:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20883,"indexExpression":{"expression":{"id":20881,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20849,"src":"13111:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":20882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"13111:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13087:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13066:64:78"},{"assignments":[20889],"declarations":[{"constant":false,"id":20889,"mutability":"mutable","name":"pool","nameLocation":"13159:4:78","nodeType":"VariableDeclaration","scope":20934,"src":"13140:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20888,"nodeType":"UserDefinedTypeName","pathNode":{"id":20887,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"13140:10:78"},"referencedDeclaration":5502,"src":"13140:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20893,"initialValue":{"baseExpression":{"id":20890,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"13166:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20892,"indexExpression":{"id":20891,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20879,"src":"13177:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13166:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13140:48:78"},{"assignments":[20895],"declarations":[{"constant":false,"id":20895,"mutability":"mutable","name":"remainingCollateralAmount","nameLocation":"13206:25:78","nodeType":"VariableDeclaration","scope":20934,"src":"13198:33:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20894,"name":"uint256","nodeType":"ElementaryTypeName","src":"13198:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20902,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":20896,"name":"_collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20010,"src":"13234:17:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":20898,"indexExpression":{"id":20897,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"13252:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13234:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":20899,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20829,"src":"13265:6:78","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":20900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutAmount","nodeType":"MemberAccess","referencedDeclaration":5277,"src":"13265:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13234:50:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13198:86:78"},{"expression":{"id":20908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20903,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20889,"src":"13295:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfSumInsuredAtRisk","nodeType":"MemberAccess","referencedDeclaration":5491,"src":"13295:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":20906,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20872,"src":"13325:11:78","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":20907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"13325:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13295:58:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20909,"nodeType":"ExpressionStatement","src":"13295:58:78"},{"expression":{"id":20914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20910,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20889,"src":"13363:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"13363:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20913,"name":"remainingCollateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20895,"src":"13385:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13363:47:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20915,"nodeType":"ExpressionStatement","src":"13363:47:78"},{"expression":{"id":20921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20916,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20889,"src":"13420:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"13420:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20919,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"13437:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13437:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13420:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20922,"nodeType":"ExpressionStatement","src":"13420:32:78"},{"expression":{"id":20926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"13510:35:78","subExpression":{"baseExpression":{"id":20923,"name":"_collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20010,"src":"13517:17:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":20925,"indexExpression":{"id":20924,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"13535:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13517:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20927,"nodeType":"ExpressionStatement","src":"13510:35:78"},{"eventCall":{"arguments":[{"id":20929,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20879,"src":"13590:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20930,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"13602:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20931,"name":"remainingCollateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20895,"src":"13613:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20928,"name":"LogRiskpoolCollateralReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5479,"src":"13560:29:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256)"}},"id":20932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13560:79:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20933,"nodeType":"EmitStatement","src":"13555:84:78"}]},"functionSelector":"67d42a8b","id":20935,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6f6c","id":20822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12575:6:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"id":20823,"modifierName":{"id":20821,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"12560:14:78"},"nodeType":"ModifierInvocation","src":"12560:22:78"}],"name":"release","nameLocation":"12498:7:78","nodeType":"FunctionDefinition","overrides":{"id":20820,"nodeType":"OverrideSpecifier","overrides":[],"src":"12543:8:78"},"parameters":{"id":20819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20818,"mutability":"mutable","name":"processId","nameLocation":"12514:9:78","nodeType":"VariableDeclaration","scope":20935,"src":"12506:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12506:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12505:19:78"},"returnParameters":{"id":20824,"nodeType":"ParameterList","parameters":[],"src":"12587:0:78"},"scope":21207,"src":"12489:1157:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20957,"nodeType":"Block","src":"13797:200:78","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20945,"name":"maxNumberOfActiveBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20939,"src":"13815:24:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13842:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13815:28:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3033323a4d41585f4e554d4245525f4f465f4143544956455f42554e444c45535f494e56414c4944","id":20948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13845:52:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_7116746545d46f1c191ba7298d418be30d7db11a3c9e7fc22ef2d27b419a7e55","typeString":"literal_string \"ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID\""},"value":"ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7116746545d46f1c191ba7298d418be30d7db11a3c9e7fc22ef2d27b419a7e55","typeString":"literal_string \"ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID\""}],"id":20944,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13807:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13807:91:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20950,"nodeType":"ExpressionStatement","src":"13807:91:78"},{"expression":{"id":20955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20951,"name":"_maxmimumNumberOfActiveBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20023,"src":"13908:43:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20953,"indexExpression":{"id":20952,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20937,"src":"13952:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13908:55:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20954,"name":"maxNumberOfActiveBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20939,"src":"13966:24:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13908:82:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20956,"nodeType":"ExpressionStatement","src":"13908:82:78"}]},"functionSelector":"2127fd48","id":20958,"implemented":true,"kind":"function","modifiers":[{"id":20942,"modifierName":{"id":20941,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"13773:19:78"},"nodeType":"ModifierInvocation","src":"13773:19:78"}],"name":"setMaximumNumberOfActiveBundles","nameLocation":"13661:31:78","nodeType":"FunctionDefinition","parameters":{"id":20940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20937,"mutability":"mutable","name":"riskpoolId","nameLocation":"13701:10:78","nodeType":"VariableDeclaration","scope":20958,"src":"13693:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20936,"name":"uint256","nodeType":"ElementaryTypeName","src":"13693:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20939,"mutability":"mutable","name":"maxNumberOfActiveBundles","nameLocation":"13721:24:78","nodeType":"VariableDeclaration","scope":20958,"src":"13713:32:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20938,"name":"uint256","nodeType":"ElementaryTypeName","src":"13713:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13692:54:78"},"returnParameters":{"id":20943,"nodeType":"ParameterList","parameters":[],"src":"13797:0:78"},"scope":21207,"src":"13652:345:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20969,"nodeType":"Block","src":"14122:79:78","statements":[{"expression":{"baseExpression":{"id":20965,"name":"_maxmimumNumberOfActiveBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20023,"src":"14139:43:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20967,"indexExpression":{"id":20966,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20960,"src":"14183:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14139:55:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20964,"id":20968,"nodeType":"Return","src":"14132:62:78"}]},"functionSelector":"7db32844","id":20970,"implemented":true,"kind":"function","modifiers":[],"name":"getMaximumNumberOfActiveBundles","nameLocation":"14012:31:78","nodeType":"FunctionDefinition","parameters":{"id":20961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20960,"mutability":"mutable","name":"riskpoolId","nameLocation":"14052:10:78","nodeType":"VariableDeclaration","scope":20970,"src":"14044:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20959,"name":"uint256","nodeType":"ElementaryTypeName","src":"14044:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14043:20:78"},"returnParameters":{"id":20964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20963,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"14092:28:78","nodeType":"VariableDeclaration","scope":20970,"src":"14084:36:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20962,"name":"uint256","nodeType":"ElementaryTypeName","src":"14084:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14083:38:78"},"scope":21207,"src":"14003:198:78","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":20978,"nodeType":"Block","src":"14267:31:78","statements":[{"expression":{"expression":{"id":20975,"name":"_riskpoolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"14276:12:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":20976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14276:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20974,"id":20977,"nodeType":"Return","src":"14269:26:78"}]},"functionSelector":"a054381f","id":20979,"implemented":true,"kind":"function","modifiers":[],"name":"riskpools","nameLocation":"14220:9:78","nodeType":"FunctionDefinition","parameters":{"id":20971,"nodeType":"ParameterList","parameters":[],"src":"14229:2:78"},"returnParameters":{"id":20974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20973,"mutability":"mutable","name":"idx","nameLocation":"14262:3:78","nodeType":"VariableDeclaration","scope":20979,"src":"14254:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20972,"name":"uint256","nodeType":"ElementaryTypeName","src":"14254:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14253:13:78"},"scope":21207,"src":"14211:87:78","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21001,"nodeType":"Block","src":"14394:132:78","statements":[{"expression":{"id":20991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20987,"name":"riskPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20985,"src":"14404:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":20988,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"14415:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20990,"indexExpression":{"id":20989,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20981,"src":"14426:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14415:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"src":"14404:33:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":20992,"nodeType":"ExpressionStatement","src":"14404:33:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20994,"name":"riskPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20985,"src":"14455:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":20995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5499,"src":"14455:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14476:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14455:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034303a5249534b504f4f4c5f4e4f545f52454749535445524544","id":20998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14479:39:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3836296e71c1859c2c71fd95043696a6e738e6a1a0c4395bee681aed798558c","typeString":"literal_string \"ERROR:POL-040:RISKPOOL_NOT_REGISTERED\""},"value":"ERROR:POL-040:RISKPOOL_NOT_REGISTERED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3836296e71c1859c2c71fd95043696a6e738e6a1a0c4395bee681aed798558c","typeString":"literal_string \"ERROR:POL-040:RISKPOOL_NOT_REGISTERED\""}],"id":20993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14447:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14447:72:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21000,"nodeType":"ExpressionStatement","src":"14447:72:78"}]},"functionSelector":"eb802114","id":21002,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpool","nameLocation":"14314:11:78","nodeType":"FunctionDefinition","parameters":{"id":20982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20981,"mutability":"mutable","name":"riskpoolId","nameLocation":"14334:10:78","nodeType":"VariableDeclaration","scope":21002,"src":"14326:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20980,"name":"uint256","nodeType":"ElementaryTypeName","src":"14326:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14325:20:78"},"returnParameters":{"id":20986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20985,"mutability":"mutable","name":"riskPool","nameLocation":"14384:8:78","nodeType":"VariableDeclaration","scope":21002,"src":"14366:26:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20984,"nodeType":"UserDefinedTypeName","pathNode":{"id":20983,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"14366:10:78"},"referencedDeclaration":5502,"src":"14366:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"src":"14365:28:78"},"scope":21207,"src":"14305:221:78","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":21013,"nodeType":"Block","src":"14625:58:78","statements":[{"expression":{"baseExpression":{"id":21009,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"14642:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21011,"indexExpression":{"id":21010,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21004,"src":"14666:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14642:34:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21008,"id":21012,"nodeType":"Return","src":"14635:41:78"}]},"functionSelector":"d229f3b0","id":21014,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskPoolForProduct","nameLocation":"14541:21:78","nodeType":"FunctionDefinition","parameters":{"id":21005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21004,"mutability":"mutable","name":"productId","nameLocation":"14571:9:78","nodeType":"VariableDeclaration","scope":21014,"src":"14563:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21003,"name":"uint256","nodeType":"ElementaryTypeName","src":"14563:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14562:19:78"},"returnParameters":{"id":21008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21007,"mutability":"mutable","name":"riskpoolId","nameLocation":"14613:10:78","nodeType":"VariableDeclaration","scope":21014,"src":"14605:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21006,"name":"uint256","nodeType":"ElementaryTypeName","src":"14605:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14604:20:78"},"scope":21207,"src":"14532:151:78","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21028,"nodeType":"Block","src":"14785:87:78","statements":[{"expression":{"arguments":[{"baseExpression":{"id":21023,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"14823:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21025,"indexExpression":{"id":21024,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21016,"src":"14853:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14823:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":21021,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"14802:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"14802:20:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":21026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14802:63:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21020,"id":21027,"nodeType":"Return","src":"14795:70:78"}]},"functionSelector":"a4266a66","id":21029,"implemented":true,"kind":"function","modifiers":[],"name":"activeBundles","nameLocation":"14698:13:78","nodeType":"FunctionDefinition","parameters":{"id":21017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21016,"mutability":"mutable","name":"riskpoolId","nameLocation":"14720:10:78","nodeType":"VariableDeclaration","scope":21029,"src":"14712:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21015,"name":"uint256","nodeType":"ElementaryTypeName","src":"14712:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14711:20:78"},"returnParameters":{"id":21020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21019,"mutability":"mutable","name":"numberOfActiveBundles","nameLocation":"14762:21:78","nodeType":"VariableDeclaration","scope":21029,"src":"14754:29:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21018,"name":"uint256","nodeType":"ElementaryTypeName","src":"14754:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14753:31:78"},"scope":21207,"src":"14689:183:78","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21058,"nodeType":"Block","src":"14984:261:78","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21039,"name":"bundleIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21033,"src":"15015:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"baseExpression":{"id":21042,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"15048:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21044,"indexExpression":{"id":21043,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21031,"src":"15078:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15048:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":21040,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"15027:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"15027:20:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":21045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15027:63:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15015:75:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034313a42554e444c455f4944585f544f4f5f4c41524745","id":21047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15104:36:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_fac70cef27ea13d3b488fdaf23702ddb45d929dc3704ba843e20ef6d9116ebab","typeString":"literal_string \"ERROR:POL-041:BUNDLE_IDX_TOO_LARGE\""},"value":"ERROR:POL-041:BUNDLE_IDX_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fac70cef27ea13d3b488fdaf23702ddb45d929dc3704ba843e20ef6d9116ebab","typeString":"literal_string \"ERROR:POL-041:BUNDLE_IDX_TOO_LARGE\""}],"id":21038,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14994:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14994:156:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21049,"nodeType":"ExpressionStatement","src":"14994:156:78"},{"expression":{"arguments":[{"baseExpression":{"id":21052,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"15185:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21054,"indexExpression":{"id":21053,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21031,"src":"15215:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15185:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":21055,"name":"bundleIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21033,"src":"15228:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21050,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"15168:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11408,"src":"15168:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":21056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15168:70:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21037,"id":21057,"nodeType":"Return","src":"15161:77:78"}]},"functionSelector":"ec833b0c","id":21059,"implemented":true,"kind":"function","modifiers":[],"name":"getActiveBundleId","nameLocation":"14887:17:78","nodeType":"FunctionDefinition","parameters":{"id":21034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21031,"mutability":"mutable","name":"riskpoolId","nameLocation":"14913:10:78","nodeType":"VariableDeclaration","scope":21059,"src":"14905:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21030,"name":"uint256","nodeType":"ElementaryTypeName","src":"14905:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21033,"mutability":"mutable","name":"bundleIdx","nameLocation":"14933:9:78","nodeType":"VariableDeclaration","scope":21059,"src":"14925:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21032,"name":"uint256","nodeType":"ElementaryTypeName","src":"14925:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14904:39:78"},"returnParameters":{"id":21037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21036,"mutability":"mutable","name":"bundleId","nameLocation":"14974:8:78","nodeType":"VariableDeclaration","scope":21059,"src":"14966:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21035,"name":"uint256","nodeType":"ElementaryTypeName","src":"14966:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14965:18:78"},"scope":21207,"src":"14878:367:78","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21103,"nodeType":"Block","src":"15371:493:78","statements":[{"expression":{"arguments":[{"id":21076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15402:76:78","subExpression":{"arguments":[{"baseExpression":{"id":21071,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"15426:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21073,"indexExpression":{"id":21072,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"15456:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15426:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":21074,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21063,"src":"15469:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21069,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"15403:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"15403:22:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":21075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15403:75:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034323a42554e444c455f49445f414c52454144595f494e5f534554","id":21077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15493:40:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_b086ae5e8f106ca526b0d03899a345f10ddaccb93416929015e592b95b2ec331","typeString":"literal_string \"ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET\""},"value":"ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b086ae5e8f106ca526b0d03899a345f10ddaccb93416929015e592b95b2ec331","typeString":"literal_string \"ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET\""}],"id":21068,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15381:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15381:162:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21079,"nodeType":"ExpressionStatement","src":"15381:162:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":21083,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"15595:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21085,"indexExpression":{"id":21084,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"15625:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15595:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":21081,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"15574:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"15574:20:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":21086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15574:63:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":21087,"name":"_maxmimumNumberOfActiveBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20023,"src":"15640:43:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21089,"indexExpression":{"id":21088,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"15684:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15640:55:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15574:121:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034333a4d4158494d554d5f4e554d4245525f4f465f4143544956455f42554e444c45535f52454143484544","id":21091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15710:56:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d45b651261a0d41dda08727c81a537b3167117b852006bf8549d74e1a978bf","typeString":"literal_string \"ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED\""},"value":"ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_32d45b651261a0d41dda08727c81a537b3167117b852006bf8549d74e1a978bf","typeString":"literal_string \"ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED\""}],"id":21080,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15553:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15553:223:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21093,"nodeType":"ExpressionStatement","src":"15553:223:78"},{"expression":{"arguments":[{"baseExpression":{"id":21097,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"15805:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21099,"indexExpression":{"id":21098,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"15835:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15805:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":21100,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21063,"src":"15848:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21094,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"15787:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11330,"src":"15787:17:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":21101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15787:70:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21102,"nodeType":"ExpressionStatement","src":"15787:70:78"}]},"functionSelector":"d407ba00","id":21104,"implemented":true,"kind":"function","modifiers":[{"id":21066,"modifierName":{"id":21065,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"15347:19:78"},"nodeType":"ModifierInvocation","src":"15347:19:78"}],"name":"addBundleIdToActiveSet","nameLocation":"15260:22:78","nodeType":"FunctionDefinition","parameters":{"id":21064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21061,"mutability":"mutable","name":"riskpoolId","nameLocation":"15291:10:78","nodeType":"VariableDeclaration","scope":21104,"src":"15283:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21060,"name":"uint256","nodeType":"ElementaryTypeName","src":"15283:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21063,"mutability":"mutable","name":"bundleId","nameLocation":"15311:8:78","nodeType":"VariableDeclaration","scope":21104,"src":"15303:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21062,"name":"uint256","nodeType":"ElementaryTypeName","src":"15303:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15282:38:78"},"returnParameters":{"id":21067,"nodeType":"ParameterList","parameters":[],"src":"15371:0:78"},"scope":21207,"src":"15251:613:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21133,"nodeType":"Block","src":"15995:258:78","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":21116,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"16049:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21118,"indexExpression":{"id":21117,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21106,"src":"16079:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16049:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":21119,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21108,"src":"16092:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21114,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"16026:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"16026:22:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":21120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16026:75:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034343a42554e444c455f49445f4e4f545f494e5f534554","id":21121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16116:36:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_25c96dd3fff47393c9641d7e3b8d6afd2344a8424f3becb7b10f61348f063fb8","typeString":"literal_string \"ERROR:POL-044:BUNDLE_ID_NOT_IN_SET\""},"value":"ERROR:POL-044:BUNDLE_ID_NOT_IN_SET"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25c96dd3fff47393c9641d7e3b8d6afd2344a8424f3becb7b10f61348f063fb8","typeString":"literal_string \"ERROR:POL-044:BUNDLE_ID_NOT_IN_SET\""}],"id":21113,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16005:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16005:157:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21123,"nodeType":"ExpressionStatement","src":"16005:157:78"},{"expression":{"arguments":[{"baseExpression":{"id":21127,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"16194:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21129,"indexExpression":{"id":21128,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21106,"src":"16224:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16194:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":21130,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21108,"src":"16237:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21124,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"16173:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":11351,"src":"16173:20:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":21131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16173:73:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21132,"nodeType":"ExpressionStatement","src":"16173:73:78"}]},"functionSelector":"950be803","id":21134,"implemented":true,"kind":"function","modifiers":[{"id":21111,"modifierName":{"id":21110,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"15971:19:78"},"nodeType":"ModifierInvocation","src":"15971:19:78"}],"name":"removeBundleIdFromActiveSet","nameLocation":"15879:27:78","nodeType":"FunctionDefinition","parameters":{"id":21109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21106,"mutability":"mutable","name":"riskpoolId","nameLocation":"15915:10:78","nodeType":"VariableDeclaration","scope":21134,"src":"15907:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21105,"name":"uint256","nodeType":"ElementaryTypeName","src":"15907:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21108,"mutability":"mutable","name":"bundleId","nameLocation":"15935:8:78","nodeType":"VariableDeclaration","scope":21134,"src":"15927:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21107,"name":"uint256","nodeType":"ElementaryTypeName","src":"15927:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15906:38:78"},"returnParameters":{"id":21112,"nodeType":"ParameterList","parameters":[],"src":"15995:0:78"},"scope":21207,"src":"15870:383:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21141,"nodeType":"Block","src":"16332:52:78","statements":[{"expression":{"id":21139,"name":"FULL_COLLATERALIZATION_LEVEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19998,"src":"16349:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21138,"id":21140,"nodeType":"Return","src":"16342:35:78"}]},"functionSelector":"f1d354d0","id":21142,"implemented":true,"kind":"function","modifiers":[],"name":"getFullCollateralizationLevel","nameLocation":"16268:29:78","nodeType":"FunctionDefinition","parameters":{"id":21135,"nodeType":"ParameterList","parameters":[],"src":"16297:2:78"},"returnParameters":{"id":21138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21142,"src":"16323:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21136,"name":"uint256","nodeType":"ElementaryTypeName","src":"16323:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16322:9:78"},"scope":21207,"src":"16259:125:78","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":21171,"nodeType":"Block","src":"16498:206:78","statements":[{"assignments":[21152],"declarations":[{"constant":false,"id":21152,"mutability":"mutable","name":"riskpoolId","nameLocation":"16516:10:78","nodeType":"VariableDeclaration","scope":21171,"src":"16508:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21151,"name":"uint256","nodeType":"ElementaryTypeName","src":"16508:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21157,"initialValue":{"baseExpression":{"id":21153,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"16529:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21156,"indexExpression":{"expression":{"id":21154,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21145,"src":"16553:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":21155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"16553:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16529:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16508:64:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21159,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21152,"src":"16590:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16603:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16590:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034353a5249534b504f4f4c5f444f45535f4e4f545f4558495354","id":21162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16606:39:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4b296530db676cdfea5704a67861f031427c9d329dfdeaaa17866263df6c024","typeString":"literal_string \"ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST\""},"value":"ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4b296530db676cdfea5704a67861f031427c9d329dfdeaaa17866263df6c024","typeString":"literal_string \"ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST\""}],"id":21158,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16582:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16582:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21164,"nodeType":"ExpressionStatement","src":"16582:64:78"},{"expression":{"id":21169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21165,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21149,"src":"16657:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21167,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21152,"src":"16686:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21166,"name":"_getRiskpoolForId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21206,"src":"16668:17:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IRiskpool_$3312_$","typeString":"function (uint256) view returns (contract IRiskpool)"}},"id":21168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16668:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"src":"16657:40:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":21170,"nodeType":"ExpressionStatement","src":"16657:40:78"}]},"id":21172,"implemented":true,"kind":"function","modifiers":[],"name":"_getRiskpoolComponent","nameLocation":"16399:21:78","nodeType":"FunctionDefinition","parameters":{"id":21146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21145,"mutability":"mutable","name":"metadata","nameLocation":"16445:8:78","nodeType":"VariableDeclaration","scope":21172,"src":"16421:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":21144,"nodeType":"UserDefinedTypeName","pathNode":{"id":21143,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"16421:16:78"},"referencedDeclaration":5248,"src":"16421:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"src":"16420:34:78"},"returnParameters":{"id":21150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21149,"mutability":"mutable","name":"riskpool","nameLocation":"16488:8:78","nodeType":"VariableDeclaration","scope":21172,"src":"16478:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":21148,"nodeType":"UserDefinedTypeName","pathNode":{"id":21147,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"16478:9:78"},"referencedDeclaration":3312,"src":"16478:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"src":"16477:20:78"},"scope":21207,"src":"16390:314:78","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":21205,"nodeType":"Block","src":"16800:214:78","statements":[{"expression":{"arguments":[{"arguments":[{"id":21183,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21174,"src":"16840:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21181,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"16818:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"16818:21:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":21184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16818:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034363a434f4d504f4e454e545f4e4f545f5249534b504f4f4c","id":21185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16853:38:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_60fd20f0722035656a7179233af7d61a35ed3b471c51ffeacda2e26bd0b3e1fc","typeString":"literal_string \"ERROR:POL-046:COMPONENT_NOT_RISKPOOL\""},"value":"ERROR:POL-046:COMPONENT_NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_60fd20f0722035656a7179233af7d61a35ed3b471c51ffeacda2e26bd0b3e1fc","typeString":"literal_string \"ERROR:POL-046:COMPONENT_NOT_RISKPOOL\""}],"id":21180,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16810:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16810:82:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21187,"nodeType":"ExpressionStatement","src":"16810:82:78"},{"assignments":[21190],"declarations":[{"constant":false,"id":21190,"mutability":"mutable","name":"cmp","nameLocation":"16922:3:78","nodeType":"VariableDeclaration","scope":21205,"src":"16911:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":21189,"nodeType":"UserDefinedTypeName","pathNode":{"id":21188,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"16911:10:78"},"referencedDeclaration":2988,"src":"16911:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":21195,"initialValue":{"arguments":[{"id":21193,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21174,"src":"16952:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21191,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"16928:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"16928:23:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":21194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16928:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"16911:52:78"},{"expression":{"id":21203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21196,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21178,"src":"16973:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":21200,"name":"cmp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21190,"src":"17002:3:78","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":21199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16994:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21198,"name":"address","nodeType":"ElementaryTypeName","src":"16994:7:78","typeDescriptions":{}}},"id":21201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16994:12:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21197,"name":"IRiskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3312,"src":"16984:9:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskpool_$3312_$","typeString":"type(contract IRiskpool)"}},"id":21202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16984:23:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"src":"16973:34:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":21204,"nodeType":"ExpressionStatement","src":"16973:34:78"}]},"id":21206,"implemented":true,"kind":"function","modifiers":[],"name":"_getRiskpoolForId","nameLocation":"16719:17:78","nodeType":"FunctionDefinition","parameters":{"id":21175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21174,"mutability":"mutable","name":"riskpoolId","nameLocation":"16745:10:78","nodeType":"VariableDeclaration","scope":21206,"src":"16737:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21173,"name":"uint256","nodeType":"ElementaryTypeName","src":"16737:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16736:20:78"},"returnParameters":{"id":21179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21178,"mutability":"mutable","name":"riskpool","nameLocation":"16790:8:78","nodeType":"VariableDeclaration","scope":21206,"src":"16780:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":21177,"nodeType":"UserDefinedTypeName","pathNode":{"id":21176,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"16780:9:78"},"referencedDeclaration":3312,"src":"16780:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"src":"16779:20:78"},"scope":21207,"src":"16710:304:78","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":21208,"src":"2976:14040:78"}],"src":"39:16978:78"},"id":78},"contracts/modules/QueryModule.sol":{"ast":{"absolutePath":"contracts/modules/QueryModule.sol","exportedSymbols":{"Address":[10496],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IQuery":[5616],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"QueryModule":[21595]},"id":21596,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":21209,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:79"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"./ComponentController.sol","id":21210,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":17948,"src":"63:35:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":21211,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":26414,"src":"99:38:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":21212,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":2989,"src":"139:69:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IOracle.sol","file":"@etherisc/gif-interface/contracts/components/IOracle.sol","id":21213,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":3023,"src":"209:66:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IQuery.sol","file":"@etherisc/gif-interface/contracts/modules/IQuery.sol","id":21214,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":5617,"src":"276:62:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","id":21215,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":6510,"src":"339:73:79","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21217,"name":"IQuery","nodeType":"IdentifierPath","referencedDeclaration":5616,"src":"3303:6:79"},"id":21218,"nodeType":"InheritanceSpecifier","src":"3303:6:79"},{"baseName":{"id":21219,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"3316:14:79"},"id":21220,"nodeType":"InheritanceSpecifier","src":"3316:14:79"}],"contractDependencies":[5616,8059,10518,26413],"contractKind":"contract","documentation":{"id":21216,"nodeType":"StructuredDocumentation","src":"414:2857:79","text":"The smart contract implements the \"IQuery\" interface and extends the \"CoreController\" contract.\nThe contract imports several external contracts from the \"etherisc/gif-interface\" repository, including \"IComponent.sol\", \"IOracle.sol\", \"IQuery.sol\", and \"IInstanceService.sol\".\nIt also imports two local contracts, \"ComponentController.sol\" and \"CoreController.sol\".\nThe contract defines a private variable `_component` of type \"ComponentController\" and an array `_oracleRequests` of type \"OracleRequest[]\".\nThe contract includes two modifiers:\n1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the \"OracleService\" contract address stored in the CoreController.\n2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`.\nThe contract provides the following functions:\n- `_afterInitialize()`: Sets the `_component` variable to the address of the \"ComponentController\" contract. It is called after contract initialization and only during the initialization phase.\n- `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the \"Query\" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event.\n- `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the \"OracleService\" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event.\n- `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the \"Query\" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event.\n- `getProcessId()`: Returns the process ID associated with a given `requestId`.\n- `getOracleRequestCount()`: Returns the number of oracle requests made.\n- `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component.\nThe contract emits the following events:\n1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID.\n2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status.\n3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID."},"fullyImplemented":true,"id":21595,"linearizedBaseContracts":[21595,26413,8059,10518,5616],"name":"QueryModule","nameLocation":"3283:11:79","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":21223,"mutability":"mutable","name":"_component","nameLocation":"3365:10:79","nodeType":"VariableDeclaration","scope":21595,"src":"3337:38:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":21222,"nodeType":"UserDefinedTypeName","pathNode":{"id":21221,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"3337:19:79"},"referencedDeclaration":17947,"src":"3337:19:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"constant":false,"id":21227,"mutability":"mutable","name":"_oracleRequests","nameLocation":"3405:15:79","nodeType":"VariableDeclaration","scope":21595,"src":"3381:39:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest[]"},"typeName":{"baseType":{"id":21225,"nodeType":"UserDefinedTypeName","pathNode":{"id":21224,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"3381:13:79"},"referencedDeclaration":5564,"src":"3381:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"id":21226,"nodeType":"ArrayTypeName","src":"3381:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage_ptr","typeString":"struct IQuery.OracleRequest[]"}},"visibility":"private"},{"body":{"id":21240,"nodeType":"Block","src":"3456:159:79","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":21230,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3487:10:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3487:12:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"4f7261636c6553657276696365","id":21233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3523:15:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""},"value":"OracleService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""}],"id":21232,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3503:19:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":21234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3503:36:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3487:52:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352432d3030313a4e4f545f4f5241434c455f53455256494345","id":21236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3553:34:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_b09558737285c53e42f0cbb18d7098ce341b428cc4a700a20d5110ababfaf7a6","typeString":"literal_string \"ERROR:CRC-001:NOT_ORACLE_SERVICE\""},"value":"ERROR:CRC-001:NOT_ORACLE_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b09558737285c53e42f0cbb18d7098ce341b428cc4a700a20d5110ababfaf7a6","typeString":"literal_string \"ERROR:CRC-001:NOT_ORACLE_SERVICE\""}],"id":21229,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3466:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3466:131:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21238,"nodeType":"ExpressionStatement","src":"3466:131:79"},{"id":21239,"nodeType":"PlaceholderStatement","src":"3607:1:79"}]},"id":21241,"name":"onlyOracleService","nameLocation":"3436:17:79","nodeType":"ModifierDefinition","parameters":{"id":21228,"nodeType":"ParameterList","parameters":[],"src":"3453:2:79"},"src":"3427:188:79","virtual":false,"visibility":"internal"},{"body":{"id":21284,"nodeType":"Block","src":"3690:453:79","statements":[{"assignments":[21249],"declarations":[{"constant":false,"id":21249,"mutability":"mutable","name":"oracleRequest","nameLocation":"3721:13:79","nodeType":"VariableDeclaration","scope":21284,"src":"3700:34:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest"},"typeName":{"id":21248,"nodeType":"UserDefinedTypeName","pathNode":{"id":21247,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"3700:13:79"},"referencedDeclaration":5564,"src":"3700:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"visibility":"internal"}],"id":21253,"initialValue":{"baseExpression":{"id":21250,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"3737:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21252,"indexExpression":{"id":21251,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21243,"src":"3753:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3737:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3700:63:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21255,"name":"oracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21249,"src":"3795:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest memory"}},"id":21256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5563,"src":"3795:23:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3821:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3795:27:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3030323a524551554553545f49445f494e56414c4944","id":21259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3836:34:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9911dbe79685a0b4bf01426459429095d797386123a16b8f4eb178ae8660c1c","typeString":"literal_string \"ERROR:QUC-002:REQUEST_ID_INVALID\""},"value":"ERROR:QUC-002:REQUEST_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f9911dbe79685a0b4bf01426459429095d797386123a16b8f4eb178ae8660c1c","typeString":"literal_string \"ERROR:QUC-002:REQUEST_ID_INVALID\""}],"id":21254,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3774:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3774:106:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21261,"nodeType":"ExpressionStatement","src":"3774:106:79"},{"assignments":[21263],"declarations":[{"constant":false,"id":21263,"mutability":"mutable","name":"oracleId","nameLocation":"3899:8:79","nodeType":"VariableDeclaration","scope":21284,"src":"3891:16:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21262,"name":"uint256","nodeType":"ElementaryTypeName","src":"3891:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21266,"initialValue":{"expression":{"id":21264,"name":"oracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21249,"src":"3910:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest memory"}},"id":21265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responsibleOracleId","nodeType":"MemberAccess","referencedDeclaration":5555,"src":"3910:33:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3891:52:79"},{"assignments":[21268],"declarations":[{"constant":false,"id":21268,"mutability":"mutable","name":"oracleAddress","nameLocation":"3961:13:79","nodeType":"VariableDeclaration","scope":21284,"src":"3953:21:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21267,"name":"address","nodeType":"ElementaryTypeName","src":"3953:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":21275,"initialValue":{"arguments":[{"arguments":[{"id":21272,"name":"oracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21263,"src":"3996:8:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21271,"name":"_getOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21594,"src":"3985:10:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IOracle_$3022_$","typeString":"function (uint256) view returns (contract IOracle)"}},"id":21273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3985:20:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}],"id":21270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3977:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21269,"name":"address","nodeType":"ElementaryTypeName","src":"3977:7:79","typeDescriptions":{}}},"id":21274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3977:29:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3953:53:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21277,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21268,"src":"4037:13:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":21278,"name":"responder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21245,"src":"4054:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4037:26:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3030333a4f5241434c455f4e4f545f524553504f4e5349424c45","id":21280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4077:38:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_79c2419dd3836252a491e5fd1368db9c3868a0e1853d9bbe27ed6a8000a2b07d","typeString":"literal_string \"ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE\""},"value":"ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_79c2419dd3836252a491e5fd1368db9c3868a0e1853d9bbe27ed6a8000a2b07d","typeString":"literal_string \"ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE\""}],"id":21276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4016:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4016:109:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21282,"nodeType":"ExpressionStatement","src":"4016:109:79"},{"id":21283,"nodeType":"PlaceholderStatement","src":"4135:1:79"}]},"id":21285,"name":"onlyResponsibleOracle","nameLocation":"3630:21:79","nodeType":"ModifierDefinition","parameters":{"id":21246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21243,"mutability":"mutable","name":"requestId","nameLocation":"3660:9:79","nodeType":"VariableDeclaration","scope":21285,"src":"3652:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21242,"name":"uint256","nodeType":"ElementaryTypeName","src":"3652:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21245,"mutability":"mutable","name":"responder","nameLocation":"3679:9:79","nodeType":"VariableDeclaration","scope":21285,"src":"3671:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21244,"name":"address","nodeType":"ElementaryTypeName","src":"3671:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3651:38:79"},"src":"3621:522:79","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":21299,"nodeType":"Block","src":"4212:83:79","statements":[{"expression":{"id":21297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21291,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"4222:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":21294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4275:11:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":21293,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4255:19:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":21295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4255:32:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21292,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"4235:19:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":21296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4235:53:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"4222:66:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21298,"nodeType":"ExpressionStatement","src":"4222:66:79"}]},"id":21300,"implemented":true,"kind":"function","modifiers":[{"id":21289,"modifierName":{"id":21288,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"4195:16:79"},"nodeType":"ModifierInvocation","src":"4195:16:79"}],"name":"_afterInitialize","nameLocation":"4158:16:79","nodeType":"FunctionDefinition","overrides":{"id":21287,"nodeType":"OverrideSpecifier","overrides":[],"src":"4186:8:79"},"parameters":{"id":21286,"nodeType":"ParameterList","parameters":[],"src":"4174:2:79"},"returnParameters":{"id":21290,"nodeType":"ParameterList","parameters":[],"src":"4212:0:79"},"scope":21595,"src":"4149:146:79","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5601],"body":{"id":21402,"nodeType":"Block","src":"4826:891:79","statements":[{"assignments":[21320],"declarations":[{"constant":false,"id":21320,"mutability":"mutable","name":"componentId","nameLocation":"4844:11:79","nodeType":"VariableDeclaration","scope":21402,"src":"4836:19:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21319,"name":"uint256","nodeType":"ElementaryTypeName","src":"4836:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21325,"initialValue":{"arguments":[{"id":21323,"name":"callbackContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21308,"src":"4884:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21321,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"4858:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"4858:25:79","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":21324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4858:50:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4836:72:79"},{"expression":{"arguments":[{"arguments":[{"id":21329,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21320,"src":"4960:11:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21327,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"4939:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"4939:20:79","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":21330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4939:33:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3031303a43414c4c4241434b5f414444524553535f49535f4e4f545f50524f44554354","id":21331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4986:47:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_37bddfa86d88e5af8c7eccd224ca962e184394ace054b6f62464e40201ad9c08","typeString":"literal_string \"ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT\""},"value":"ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_37bddfa86d88e5af8c7eccd224ca962e184394ace054b6f62464e40201ad9c08","typeString":"literal_string \"ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT\""}],"id":21326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4918:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4918:125:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21333,"nodeType":"ExpressionStatement","src":"4918:125:79"},{"expression":{"id":21337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21334,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21317,"src":"5062:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":21335,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"5074:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5074:22:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5062:34:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21338,"nodeType":"ExpressionStatement","src":"5062:34:79"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21339,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"5106:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"5106:20:79","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage_ptr_$returns$_t_struct$_OracleRequest_$5564_storage_$bound_to$_t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage_ptr_$","typeString":"function (struct IQuery.OracleRequest storage ref[] storage pointer) returns (struct IQuery.OracleRequest storage ref)"}},"id":21342,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5106:22:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"id":21343,"nodeType":"ExpressionStatement","src":"5106:22:79"},{"assignments":[21346],"declarations":[{"constant":false,"id":21346,"mutability":"mutable","name":"req","nameLocation":"5202:3:79","nodeType":"VariableDeclaration","scope":21402,"src":"5180:25:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"},"typeName":{"id":21345,"nodeType":"UserDefinedTypeName","pathNode":{"id":21344,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"5180:13:79"},"referencedDeclaration":5564,"src":"5180:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"visibility":"internal"}],"id":21350,"initialValue":{"baseExpression":{"id":21347,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"5208:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21349,"indexExpression":{"id":21348,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21317,"src":"5224:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5208:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5180:54:79"},{"expression":{"id":21355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21351,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5244:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"processId","nodeType":"MemberAccess","referencedDeclaration":5553,"src":"5244:13:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21354,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21302,"src":"5260:9:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5244:25:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":21356,"nodeType":"ExpressionStatement","src":"5244:25:79"},{"expression":{"id":21361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21357,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5279:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5561,"src":"5279:8:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21360,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21304,"src":"5290:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"5279:16:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":21362,"nodeType":"ExpressionStatement","src":"5279:16:79"},{"expression":{"id":21367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21363,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5305:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbackMethodName","nodeType":"MemberAccess","referencedDeclaration":5559,"src":"5305:22:79","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21366,"name":"callbackMethodName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21306,"src":"5330:18:79","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"5305:43:79","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":21368,"nodeType":"ExpressionStatement","src":"5305:43:79"},{"expression":{"id":21373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21369,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5358:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbackContractAddress","nodeType":"MemberAccess","referencedDeclaration":5557,"src":"5358:27:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21372,"name":"callbackContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21308,"src":"5388:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5358:53:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21374,"nodeType":"ExpressionStatement","src":"5358:53:79"},{"expression":{"id":21379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21375,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5421:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"responsibleOracleId","nodeType":"MemberAccess","referencedDeclaration":5555,"src":"5421:23:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21378,"name":"responsibleOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21310,"src":"5447:19:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5421:45:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21380,"nodeType":"ExpressionStatement","src":"5421:45:79"},{"expression":{"id":21386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21381,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5476:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5563,"src":"5476:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":21384,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"5492:5:79","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5492:15:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5476:31:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21387,"nodeType":"ExpressionStatement","src":"5476:31:79"},{"expression":{"arguments":[{"id":21392,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21317,"src":"5595:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21393,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21304,"src":"5618:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":21389,"name":"responsibleOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21310,"src":"5553:19:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21388,"name":"_getOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21594,"src":"5542:10:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IOracle_$3022_$","typeString":"function (uint256) view returns (contract IOracle)"}},"id":21390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5542:31:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}},"id":21391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"request","nodeType":"MemberAccess","referencedDeclaration":3016,"src":"5542:39:79","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":21394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5542:91:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21395,"nodeType":"ExpressionStatement","src":"5542:91:79"},{"eventCall":{"arguments":[{"id":21397,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21302,"src":"5668:9:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21398,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21317,"src":"5679:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21399,"name":"responsibleOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21310,"src":"5690:19:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21396,"name":"LogOracleRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5572,"src":"5649:18:79","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":21400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5649:61:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21401,"nodeType":"EmitStatement","src":"5644:66:79"}]},"functionSelector":"2c933f22","id":21403,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"5175657279","id":21314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4775:7:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"id":21315,"modifierName":{"id":21313,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"4760:14:79"},"nodeType":"ModifierInvocation","src":"4760:23:79"}],"name":"request","nameLocation":"4523:7:79","nodeType":"FunctionDefinition","overrides":{"id":21312,"nodeType":"OverrideSpecifier","overrides":[],"src":"4742:8:79"},"parameters":{"id":21311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21302,"mutability":"mutable","name":"processId","nameLocation":"4548:9:79","nodeType":"VariableDeclaration","scope":21403,"src":"4540:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4540:7:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21304,"mutability":"mutable","name":"input","nameLocation":"4582:5:79","nodeType":"VariableDeclaration","scope":21403,"src":"4567:20:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":21303,"name":"bytes","nodeType":"ElementaryTypeName","src":"4567:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":21306,"mutability":"mutable","name":"callbackMethodName","nameLocation":"4613:18:79","nodeType":"VariableDeclaration","scope":21403,"src":"4597:34:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":21305,"name":"string","nodeType":"ElementaryTypeName","src":"4597:6:79","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21308,"mutability":"mutable","name":"callbackContractAddress","nameLocation":"4649:23:79","nodeType":"VariableDeclaration","scope":21403,"src":"4641:31:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21307,"name":"address","nodeType":"ElementaryTypeName","src":"4641:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21310,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"4690:19:79","nodeType":"VariableDeclaration","scope":21403,"src":"4682:27:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21309,"name":"uint256","nodeType":"ElementaryTypeName","src":"4682:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4530:185:79"},"returnParameters":{"id":21318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21317,"mutability":"mutable","name":"requestId","nameLocation":"4810:9:79","nodeType":"VariableDeclaration","scope":21403,"src":"4802:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21316,"name":"uint256","nodeType":"ElementaryTypeName","src":"4802:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4801:19:79"},"scope":21595,"src":"4514:1203:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5610],"body":{"id":21474,"nodeType":"Block","src":"6217:801:79","statements":[{"assignments":[21421],"declarations":[{"constant":false,"id":21421,"mutability":"mutable","name":"req","nameLocation":"6249:3:79","nodeType":"VariableDeclaration","scope":21474,"src":"6227:25:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"},"typeName":{"id":21420,"nodeType":"UserDefinedTypeName","pathNode":{"id":21419,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"6227:13:79"},"referencedDeclaration":5564,"src":"6227:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"visibility":"internal"}],"id":21425,"initialValue":{"baseExpression":{"id":21422,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"6255:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21424,"indexExpression":{"id":21423,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21405,"src":"6271:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6255:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6227:54:79"},{"assignments":[21427],"declarations":[{"constant":false,"id":21427,"mutability":"mutable","name":"functionSignature","nameLocation":"6305:17:79","nodeType":"VariableDeclaration","scope":21474,"src":"6291:31:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21426,"name":"string","nodeType":"ElementaryTypeName","src":"6291:6:79","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":21437,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":21432,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21421,"src":"6379:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbackMethodName","nodeType":"MemberAccess","referencedDeclaration":5559,"src":"6379:22:79","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"2875696e743235362c627974657333322c627974657329","id":21434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6419:25:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_69789469aba347ea3006333936a8384eb77a6c0f6b3710119647786d588df94c","typeString":"literal_string \"(uint256,bytes32,bytes)\""},"value":"(uint256,bytes32,bytes)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_stringliteral_69789469aba347ea3006333936a8384eb77a6c0f6b3710119647786d588df94c","typeString":"literal_string \"(uint256,bytes32,bytes)\""}],"expression":{"id":21430,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6345:3:79","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"6345:16:79","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":21435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6345:113:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6325:6:79","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":21428,"name":"string","nodeType":"ElementaryTypeName","src":"6325:6:79","typeDescriptions":{}}},"id":21436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6325:134:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"6291:168:79"},{"assignments":[21439],"declarations":[{"constant":false,"id":21439,"mutability":"mutable","name":"processId","nameLocation":"6477:9:79","nodeType":"VariableDeclaration","scope":21474,"src":"6469:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6469:7:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":21442,"initialValue":{"expression":{"id":21440,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21421,"src":"6489:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"processId","nodeType":"MemberAccess","referencedDeclaration":5553,"src":"6489:13:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6469:33:79"},{"assignments":[21444,null],"declarations":[{"constant":false,"id":21444,"mutability":"mutable","name":"success","nameLocation":"6519:7:79","nodeType":"VariableDeclaration","scope":21474,"src":"6514:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21443,"name":"bool","nodeType":"ElementaryTypeName","src":"6514:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":21456,"initialValue":{"arguments":[{"arguments":[{"id":21450,"name":"functionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21427,"src":"6639:17:79","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21451,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21405,"src":"6678:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21452,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21439,"src":"6709:9:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21453,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21409,"src":"6740:4:79","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":21448,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6594:3:79","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6594:23:79","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6594:168:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":21445,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21421,"src":"6544:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbackContractAddress","nodeType":"MemberAccess","referencedDeclaration":5557,"src":"6544:27:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"6544:32:79","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":21455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6544:232:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6513:263:79"},{"expression":{"arguments":[{"id":21458,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21444,"src":"6795:7:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3032303a50524f445543545f43414c4c4241434b5f554e5355434345535346554c","id":21459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6804:45:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2f7aff00631a903459db5e8faa0ab3073999f8b7c86b53a3df8a9ddbd8d8350","typeString":"literal_string \"ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL\""},"value":"ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d2f7aff00631a903459db5e8faa0ab3073999f8b7c86b53a3df8a9ddbd8d8350","typeString":"literal_string \"ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL\""}],"id":21457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6787:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6787:63:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21461,"nodeType":"ExpressionStatement","src":"6787:63:79"},{"expression":{"id":21465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6860:33:79","subExpression":{"baseExpression":{"id":21462,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"6867:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21464,"indexExpression":{"id":21463,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21405,"src":"6883:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6867:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21466,"nodeType":"ExpressionStatement","src":"6860:33:79"},{"eventCall":{"arguments":[{"id":21468,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21439,"src":"6970:9:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21469,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21405,"src":"6981:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21470,"name":"responder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21407,"src":"6992:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21471,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21444,"src":"7003:7:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":21467,"name":"LogOracleResponded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5582,"src":"6951:18:79","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (bytes32,uint256,address,bool)"}},"id":21472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6951:60:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21473,"nodeType":"EmitStatement","src":"6946:65:79"}]},"functionSelector":"9af8c4ba","id":21475,"implemented":true,"kind":"function","modifiers":[{"id":21413,"modifierName":{"id":21412,"name":"onlyOracleService","nodeType":"IdentifierPath","referencedDeclaration":21241,"src":"6141:17:79"},"nodeType":"ModifierInvocation","src":"6141:17:79"},{"arguments":[{"id":21415,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21405,"src":"6190:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21416,"name":"responder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21407,"src":"6201:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":21417,"modifierName":{"id":21414,"name":"onlyResponsibleOracle","nodeType":"IdentifierPath","referencedDeclaration":21285,"src":"6168:21:79"},"nodeType":"ModifierInvocation","src":"6168:43:79"}],"name":"respond","nameLocation":"6008:7:79","nodeType":"FunctionDefinition","overrides":{"id":21411,"nodeType":"OverrideSpecifier","overrides":[],"src":"6123:8:79"},"parameters":{"id":21410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21405,"mutability":"mutable","name":"requestId","nameLocation":"6033:9:79","nodeType":"VariableDeclaration","scope":21475,"src":"6025:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21404,"name":"uint256","nodeType":"ElementaryTypeName","src":"6025:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21407,"mutability":"mutable","name":"responder","nameLocation":"6060:9:79","nodeType":"VariableDeclaration","scope":21475,"src":"6052:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21406,"name":"address","nodeType":"ElementaryTypeName","src":"6052:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21409,"mutability":"mutable","name":"data","nameLocation":"6094:4:79","nodeType":"VariableDeclaration","scope":21475,"src":"6079:19:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":21408,"name":"bytes","nodeType":"ElementaryTypeName","src":"6079:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6015:89:79"},"returnParameters":{"id":21418,"nodeType":"ParameterList","parameters":[],"src":"6217:0:79"},"scope":21595,"src":"5999:1019:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5615],"body":{"id":21508,"nodeType":"Block","src":"7124:249:79","statements":[{"assignments":[21486],"declarations":[{"constant":false,"id":21486,"mutability":"mutable","name":"oracleRequest","nameLocation":"7156:13:79","nodeType":"VariableDeclaration","scope":21508,"src":"7134:35:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"},"typeName":{"id":21485,"nodeType":"UserDefinedTypeName","pathNode":{"id":21484,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"7134:13:79"},"referencedDeclaration":5564,"src":"7134:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"visibility":"internal"}],"id":21490,"initialValue":{"baseExpression":{"id":21487,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"7172:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21489,"indexExpression":{"id":21488,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21477,"src":"7188:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7172:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7134:64:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21492,"name":"oracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21486,"src":"7216:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5563,"src":"7216:23:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7242:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7216:27:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3033303a524551554553545f49445f494e56414c4944","id":21496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7245:34:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_774daad1cbf28a623c1273bcf077e47a159a045263db1d1d1a81c1c69daed74c","typeString":"literal_string \"ERROR:QUC-030:REQUEST_ID_INVALID\""},"value":"ERROR:QUC-030:REQUEST_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_774daad1cbf28a623c1273bcf077e47a159a045263db1d1d1a81c1c69daed74c","typeString":"literal_string \"ERROR:QUC-030:REQUEST_ID_INVALID\""}],"id":21491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7208:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7208:72:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21498,"nodeType":"ExpressionStatement","src":"7208:72:79"},{"expression":{"id":21502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7290:33:79","subExpression":{"baseExpression":{"id":21499,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"7297:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21501,"indexExpression":{"id":21500,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21477,"src":"7313:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7297:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21503,"nodeType":"ExpressionStatement","src":"7290:33:79"},{"eventCall":{"arguments":[{"id":21505,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21477,"src":"7356:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21504,"name":"LogOracleCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5586,"src":"7338:17:79","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":21506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7338:28:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21507,"nodeType":"EmitStatement","src":"7333:33:79"}]},"functionSelector":"40e58ee5","id":21509,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"5175657279","id":21481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7110:7:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"id":21482,"modifierName":{"id":21480,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"7095:14:79"},"nodeType":"ModifierInvocation","src":"7095:23:79"}],"name":"cancel","nameLocation":"7033:6:79","nodeType":"FunctionDefinition","overrides":{"id":21479,"nodeType":"OverrideSpecifier","overrides":[],"src":"7077:8:79"},"parameters":{"id":21478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21477,"mutability":"mutable","name":"requestId","nameLocation":"7048:9:79","nodeType":"VariableDeclaration","scope":21509,"src":"7040:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21476,"name":"uint256","nodeType":"ElementaryTypeName","src":"7040:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7039:19:79"},"returnParameters":{"id":21483,"nodeType":"ParameterList","parameters":[],"src":"7124:0:79"},"scope":21595,"src":"7024:349:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21534,"nodeType":"Block","src":"7490:202:79","statements":[{"assignments":[21518],"declarations":[{"constant":false,"id":21518,"mutability":"mutable","name":"oracleRequest","nameLocation":"7521:13:79","nodeType":"VariableDeclaration","scope":21534,"src":"7500:34:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest"},"typeName":{"id":21517,"nodeType":"UserDefinedTypeName","pathNode":{"id":21516,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"7500:13:79"},"referencedDeclaration":5564,"src":"7500:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"visibility":"internal"}],"id":21522,"initialValue":{"baseExpression":{"id":21519,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"7537:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21521,"indexExpression":{"id":21520,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21511,"src":"7553:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7537:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7500:63:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21524,"name":"oracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21518,"src":"7581:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest memory"}},"id":21525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5563,"src":"7581:23:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7607:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7581:27:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3034303a524551554553545f49445f494e56414c4944","id":21528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7610:34:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_988f80e03fa488be4da0a6e0b159af5f52d5707b3995562df14a79cc9e3d2889","typeString":"literal_string \"ERROR:QUC-040:REQUEST_ID_INVALID\""},"value":"ERROR:QUC-040:REQUEST_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_988f80e03fa488be4da0a6e0b159af5f52d5707b3995562df14a79cc9e3d2889","typeString":"literal_string \"ERROR:QUC-040:REQUEST_ID_INVALID\""}],"id":21523,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7573:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7573:72:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21530,"nodeType":"ExpressionStatement","src":"7573:72:79"},{"expression":{"expression":{"id":21531,"name":"oracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21518,"src":"7662:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest memory"}},"id":21532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"processId","nodeType":"MemberAccess","referencedDeclaration":5553,"src":"7662:23:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":21515,"id":21533,"nodeType":"Return","src":"7655:30:79"}]},"functionSelector":"9b04ed30","id":21535,"implemented":true,"kind":"function","modifiers":[],"name":"getProcessId","nameLocation":"7389:12:79","nodeType":"FunctionDefinition","parameters":{"id":21512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21511,"mutability":"mutable","name":"requestId","nameLocation":"7410:9:79","nodeType":"VariableDeclaration","scope":21535,"src":"7402:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21510,"name":"uint256","nodeType":"ElementaryTypeName","src":"7402:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7401:19:79"},"returnParameters":{"id":21515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21514,"mutability":"mutable","name":"processId","nameLocation":"7475:9:79","nodeType":"VariableDeclaration","scope":21535,"src":"7467:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7467:7:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7466:19:79"},"scope":21595,"src":"7380:312:79","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21543,"nodeType":"Block","src":"7769:46:79","statements":[{"expression":{"expression":{"id":21540,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"7786:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7786:22:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21539,"id":21542,"nodeType":"Return","src":"7779:29:79"}]},"functionSelector":"38aec7cc","id":21544,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleRequestCount","nameLocation":"7708:21:79","nodeType":"FunctionDefinition","parameters":{"id":21536,"nodeType":"ParameterList","parameters":[],"src":"7729:2:79"},"returnParameters":{"id":21539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21538,"mutability":"mutable","name":"_count","nameLocation":"7761:6:79","nodeType":"VariableDeclaration","scope":21544,"src":"7753:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21537,"name":"uint256","nodeType":"ElementaryTypeName","src":"7753:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7752:16:79"},"scope":21595,"src":"7699:116:79","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":21593,"nodeType":"Block","src":"7892:418:79","statements":[{"assignments":[21554],"declarations":[{"constant":false,"id":21554,"mutability":"mutable","name":"cmp","nameLocation":"7913:3:79","nodeType":"VariableDeclaration","scope":21593,"src":"7902:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":21553,"nodeType":"UserDefinedTypeName","pathNode":{"id":21552,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"7902:10:79"},"referencedDeclaration":2988,"src":"7902:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":21559,"initialValue":{"arguments":[{"id":21557,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21546,"src":"7943:2:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21555,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"7919:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"7919:23:79","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":21558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7919:27:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"7902:44:79"},{"expression":{"id":21567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21560,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21550,"src":"7956:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":21564,"name":"cmp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21554,"src":"7981:3:79","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":21563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7973:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21562,"name":"address","nodeType":"ElementaryTypeName","src":"7973:7:79","typeDescriptions":{}}},"id":21565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7973:12:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21561,"name":"IOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"7965:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOracle_$3022_$","typeString":"type(contract IOracle)"}},"id":21566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7965:21:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}},"src":"7956:30:79","typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}},"id":21568,"nodeType":"ExpressionStatement","src":"7956:30:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":21577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":21572,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21546,"src":"8046:2:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21570,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"8018:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"8018:27:79","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":21573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8018:31:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":21574,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"8053:10:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":21575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"8053:24:79","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":21576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Oracle","nodeType":"MemberAccess","referencedDeclaration":2888,"src":"8053:31:79","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"8018:66:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3034313a434f4d504f4e454e545f4e4f545f4f5241434c45","id":21578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8099:36:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_4390b2a7de90bd955cc7d20e4d8918121e4301d01ba56c2d0318a2494be55fcb","typeString":"literal_string \"ERROR:QUC-041:COMPONENT_NOT_ORACLE\""},"value":"ERROR:QUC-041:COMPONENT_NOT_ORACLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4390b2a7de90bd955cc7d20e4d8918121e4301d01ba56c2d0318a2494be55fcb","typeString":"literal_string \"ERROR:QUC-041:COMPONENT_NOT_ORACLE\""}],"id":21569,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7997:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7997:148:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21580,"nodeType":"ExpressionStatement","src":"7997:148:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":21589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":21584,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21546,"src":"8206:2:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21582,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"8177:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"8177:28:79","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":21585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8177:32:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":21586,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"8213:10:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":21587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"8213:25:79","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":21588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"8213:32:79","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"8177:68:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3034323a4f5241434c455f4e4f545f414354495645","id":21590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8260:33:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_1effa1aafe7739318f52d8e7636d12568aefa8c489aaee728a51f66427ce3363","typeString":"literal_string \"ERROR:QUC-042:ORACLE_NOT_ACTIVE\""},"value":"ERROR:QUC-042:ORACLE_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1effa1aafe7739318f52d8e7636d12568aefa8c489aaee728a51f66427ce3363","typeString":"literal_string \"ERROR:QUC-042:ORACLE_NOT_ACTIVE\""}],"id":21581,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8156:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8156:147:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21592,"nodeType":"ExpressionStatement","src":"8156:147:79"}]},"id":21594,"implemented":true,"kind":"function","modifiers":[],"name":"_getOracle","nameLocation":"7830:10:79","nodeType":"FunctionDefinition","parameters":{"id":21547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21546,"mutability":"mutable","name":"id","nameLocation":"7849:2:79","nodeType":"VariableDeclaration","scope":21594,"src":"7841:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21545,"name":"uint256","nodeType":"ElementaryTypeName","src":"7841:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7840:12:79"},"returnParameters":{"id":21551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21550,"mutability":"mutable","name":"oracle","nameLocation":"7884:6:79","nodeType":"VariableDeclaration","scope":21594,"src":"7876:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"},"typeName":{"id":21549,"nodeType":"UserDefinedTypeName","pathNode":{"id":21548,"name":"IOracle","nodeType":"IdentifierPath","referencedDeclaration":3022,"src":"7876:7:79"},"referencedDeclaration":3022,"src":"7876:7:79","typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}},"visibility":"internal"}],"src":"7875:16:79"},"scope":21595,"src":"7821:489:79","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":21596,"src":"3274:5038:79"}],"src":"39:8274:79"},"id":79},"contracts/modules/RegistryController.sol":{"ast":{"absolutePath":"contracts/modules/RegistryController.sol","exportedSymbols":{"Address":[10496],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IRegistry":[5714],"Initializable":[8059],"RegistryController":[22155],"Strings":[10804]},"id":22156,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":21597,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:80"},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":21598,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22156,"sourceUnit":26414,"src":"63:38:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":21599,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22156,"sourceUnit":5715,"src":"103:65:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":21600,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22156,"sourceUnit":8060,"src":"170:63:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","id":21601,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22156,"sourceUnit":10805,"src":"234:51:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":21602,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22156,"sourceUnit":11440,"src":"286:65:80","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21604,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"3016:9:80"},"id":21605,"nodeType":"InheritanceSpecifier","src":"3016:9:80"},{"baseName":{"id":21606,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"3031:14:80"},"id":21607,"nodeType":"InheritanceSpecifier","src":"3031:14:80"}],"contractDependencies":[5714,8059,10518,26413],"contractKind":"contract","documentation":{"id":21603,"nodeType":"StructuredDocumentation","src":"353:2625:80","text":"The smart contract implements the `IRegistry` interface and inherits from the `CoreController` contract.\nThe contract provides functionality for registering, deregistering, and accessing contracts within different releases. It maintains mappings and sets to store contract names and addresses in different releases.\n- `MAX_CONTRACTS`: A constant variable set to 100, representing the maximum number of contracts allowed in a release.\n- `release`: A bytes32 variable representing the current release identifier.\n- `startBlock`: An unsigned integer storing the block number at which the contract was deployed.\n- `_contracts`: A nested mapping that stores contract addresses based on the release and contract name.\n- `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release.\n- `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release.\nFunctions:\n- `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs.\n- `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release.\n- `getRelease()`: Returns the current release identifier.\n- `getContract()`: Returns the address of a contract by its name in the current release.\n- `register()`: Registers a contract with a given name and address in the current release.\n- `deregister()`: Deregisters a contract from the current release.\n- `getContractInRelease()`: Returns the address of a specific contract within a given release.\n- `registerInRelease()`: Registers a contract in a specific release.\n- `deregisterInRelease()`: Deregisters a contract name from a specific release.\n- `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one.\n- `contracts()`: Returns the number of contracts in the current release.\n- `contractName()`: Returns the name of the contract at the specified index in the contractNames set.\nInternal functions:\n- `_getContractInRelease()`: Returns the address of a contract in a specific release.\n- `_registerInRelease()`: Registers a contract in a release.\n- `_deregisterInRelease()`: Deregisters a contract in a specific release.\nThe contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered.\nOverall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts."},"fullyImplemented":true,"id":22155,"linearizedBaseContracts":[22155,26413,8059,10518,5714],"name":"RegistryController","nameLocation":"2990:18:80","nodeType":"ContractDefinition","nodes":[{"id":21611,"libraryName":{"id":21608,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":11439,"src":"3058:13:80"},"nodeType":"UsingForDirective","src":"3052:49:80","typeName":{"id":21610,"nodeType":"UserDefinedTypeName","pathNode":{"id":21609,"name":"EnumerableSet.Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"3076:24:80"},"referencedDeclaration":11045,"src":"3076:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}}},{"constant":true,"documentation":{"id":21612,"nodeType":"StructuredDocumentation","src":"3107:105:80","text":" @dev Save number of items to iterate through\n Currently we have < 20 contracts."},"functionSelector":"24042a0a","id":21615,"mutability":"constant","name":"MAX_CONTRACTS","nameLocation":"3241:13:80","nodeType":"VariableDeclaration","scope":22155,"src":"3217:43:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21613,"name":"uint256","nodeType":"ElementaryTypeName","src":"3217:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030","id":21614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3257:3:80","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"public"},{"constant":false,"documentation":{"id":21616,"nodeType":"StructuredDocumentation","src":"3267:74:80","text":" @dev Current release\n We use semantic versioning."},"functionSelector":"86d1a69f","id":21618,"mutability":"mutable","name":"release","nameLocation":"3361:7:80","nodeType":"VariableDeclaration","scope":22155,"src":"3346:22:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3346:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"48cd4cb1","id":21620,"mutability":"mutable","name":"startBlock","nameLocation":"3394:10:80","nodeType":"VariableDeclaration","scope":22155,"src":"3379:25:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21619,"name":"uint256","nodeType":"ElementaryTypeName","src":"3379:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"4a941e5e","id":21626,"mutability":"mutable","name":"_contracts","nameLocation":"3523:10:80","nodeType":"VariableDeclaration","scope":22155,"src":"3411:122:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"},"typeName":{"id":21625,"keyType":{"id":21621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3419:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3411:104:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"},"valueType":{"id":21624,"keyType":{"id":21622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3452:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3444:70:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":21623,"name":"address","nodeType":"ElementaryTypeName","src":"3483:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"public"},{"constant":false,"functionSelector":"69923515","id":21630,"mutability":"mutable","name":"_contractsInRelease","nameLocation":"3625:19:80","nodeType":"VariableDeclaration","scope":22155,"src":"3539:105:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":21629,"keyType":{"id":21627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3547:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3539:78:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":21628,"name":"uint256","nodeType":"ElementaryTypeName","src":"3572:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"id":21635,"mutability":"mutable","name":"_contractNames","nameLocation":"3738:14:80","nodeType":"VariableDeclaration","scope":22155,"src":"3650:102:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set)"},"typeName":{"id":21634,"keyType":{"id":21631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3658:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3650:79:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set)"},"valueType":{"id":21633,"nodeType":"UserDefinedTypeName","pathNode":{"id":21632,"name":"EnumerableSet.Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"3683:24:80"},"referencedDeclaration":11045,"src":"3683:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}}},"visibility":"private"},{"body":{"id":21679,"nodeType":"Block","src":"3831:605:80","statements":[{"expression":{"id":21644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21642,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"3883:9:80","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21643,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"3895:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryController_$22155","typeString":"contract RegistryController"}},"src":"3883:16:80","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":21645,"nodeType":"ExpressionStatement","src":"3883:16:80"},{"expression":{"id":21648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21646,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4117:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21647,"name":"_initialRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21637,"src":"4127:15:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4117:25:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":21649,"nodeType":"ExpressionStatement","src":"4117:25:80"},{"expression":{"id":21657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":21650,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"4152:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":21653,"indexExpression":{"id":21651,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4163:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4152:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":21654,"indexExpression":{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":21652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4172:25:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4152:46:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":21655,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4201:10:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4201:12:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4152:61:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21658,"nodeType":"ExpressionStatement","src":"4152:61:80"},{"expression":{"arguments":[{"baseExpression":{"id":21662,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"4241:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21664,"indexExpression":{"id":21663,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4256:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4241:23:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":21665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4266:25:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"expression":{"id":21659,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"4223:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11063,"src":"4223:17:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":21666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4223:69:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21667,"nodeType":"ExpressionStatement","src":"4223:69:80"},{"expression":{"id":21672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":21668,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"4302:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":21670,"indexExpression":{"id":21669,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4322:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4302:28:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":21671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4333:1:80","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4302:32:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21673,"nodeType":"ExpressionStatement","src":"4302:32:80"},{"expression":{"id":21677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21674,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21620,"src":"4404:10:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":21675,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"4417:5:80","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"4417:12:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4404:25:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21678,"nodeType":"ExpressionStatement","src":"4404:25:80"}]},"functionSelector":"56bbc19d","id":21680,"implemented":true,"kind":"function","modifiers":[{"id":21640,"modifierName":{"id":21639,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":7979,"src":"3819:11:80"},"nodeType":"ModifierInvocation","src":"3819:11:80"}],"name":"initializeRegistry","nameLocation":"3768:18:80","nodeType":"FunctionDefinition","parameters":{"id":21638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21637,"mutability":"mutable","name":"_initialRelease","nameLocation":"3795:15:80","nodeType":"VariableDeclaration","scope":21680,"src":"3787:23:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21636,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3787:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3786:25:80"},"returnParameters":{"id":21641,"nodeType":"ParameterList","parameters":[],"src":"3831:0:80"},"scope":22155,"src":"3759:677:80","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5701],"body":{"id":21700,"nodeType":"Block","src":"4578:91:80","statements":[{"expression":{"id":21698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21690,"name":"_senderMatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21688,"src":"4588:14:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21691,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21682,"src":"4606:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":21693,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4638:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21694,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21684,"src":"4647:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21692,"name":"_getContractInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21948,"src":"4616:21:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) view returns (address)"}},"id":21695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4616:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4606:55:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":21697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4605:57:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4588:74:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21699,"nodeType":"ExpressionStatement","src":"4588:74:80"}]},"functionSelector":"2ca65a79","id":21701,"implemented":true,"kind":"function","modifiers":[],"name":"ensureSender","nameLocation":"4451:12:80","nodeType":"FunctionDefinition","overrides":{"id":21686,"nodeType":"OverrideSpecifier","overrides":[],"src":"4526:8:80"},"parameters":{"id":21685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21682,"mutability":"mutable","name":"sender","nameLocation":"4472:6:80","nodeType":"VariableDeclaration","scope":21701,"src":"4464:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21681,"name":"address","nodeType":"ElementaryTypeName","src":"4464:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21684,"mutability":"mutable","name":"_contractName","nameLocation":"4488:13:80","nodeType":"VariableDeclaration","scope":21701,"src":"4480:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4480:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4463:39:80"},"returnParameters":{"id":21689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21688,"mutability":"mutable","name":"_senderMatches","nameLocation":"4557:14:80","nodeType":"VariableDeclaration","scope":21701,"src":"4552:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21687,"name":"bool","nodeType":"ElementaryTypeName","src":"4552:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4551:21:80"},"scope":22155,"src":"4442:227:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5692],"body":{"id":21712,"nodeType":"Block","src":"4818:35:80","statements":[{"expression":{"id":21710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21708,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21706,"src":"4828:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21709,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4839:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4828:18:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":21711,"nodeType":"ExpressionStatement","src":"4828:18:80"}]},"documentation":{"id":21702,"nodeType":"StructuredDocumentation","src":"4675:43:80","text":" @dev get current release"},"functionSelector":"76b707b7","id":21713,"implemented":true,"kind":"function","modifiers":[],"name":"getRelease","nameLocation":"4732:10:80","nodeType":"FunctionDefinition","overrides":{"id":21704,"nodeType":"OverrideSpecifier","overrides":[],"src":"4763:8:80"},"parameters":{"id":21703,"nodeType":"ParameterList","parameters":[],"src":"4742:2:80"},"returnParameters":{"id":21707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21706,"mutability":"mutable","name":"_release","nameLocation":"4803:8:80","nodeType":"VariableDeclaration","scope":21713,"src":"4795:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4795:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4794:18:80"},"scope":22155,"src":"4723:130:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5687],"body":{"id":21729,"nodeType":"Block","src":"5042:70:80","statements":[{"expression":{"id":21727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21722,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21720,"src":"5052:5:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21724,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"5082:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21725,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21716,"src":"5091:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21723,"name":"_getContractInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21948,"src":"5060:21:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) view returns (address)"}},"id":21726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5060:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5052:53:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21728,"nodeType":"ExpressionStatement","src":"5052:53:80"}]},"documentation":{"id":21714,"nodeType":"StructuredDocumentation","src":"4859:69:80","text":" @dev Get contract's address in the current release"},"functionSelector":"e16c7d98","id":21730,"implemented":true,"kind":"function","modifiers":[],"name":"getContract","nameLocation":"4942:11:80","nodeType":"FunctionDefinition","overrides":{"id":21718,"nodeType":"OverrideSpecifier","overrides":[],"src":"4992:8:80"},"parameters":{"id":21717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21716,"mutability":"mutable","name":"_contractName","nameLocation":"4962:13:80","nodeType":"VariableDeclaration","scope":21730,"src":"4954:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4954:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4953:23:80"},"returnParameters":{"id":21721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21720,"mutability":"mutable","name":"_addr","nameLocation":"5031:5:80","nodeType":"VariableDeclaration","scope":21730,"src":"5023:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21719,"name":"address","nodeType":"ElementaryTypeName","src":"5023:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5022:15:80"},"scope":22155,"src":"4933:179:80","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5654],"body":{"id":21748,"nodeType":"Block","src":"5313:84:80","statements":[{"expression":{"arguments":[{"id":21742,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"5342:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":21743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5351:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":21744,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21733,"src":"5358:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21745,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21735,"src":"5373:16:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":21741,"name":"_registerInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22091,"src":"5323:18:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bool_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,bool,bytes32,address)"}},"id":21746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5323:67:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21747,"nodeType":"ExpressionStatement","src":"5323:67:80"}]},"documentation":{"id":21731,"nodeType":"StructuredDocumentation","src":"5118:64:80","text":" @dev Register contract in the current release"},"functionSelector":"d22057a9","id":21749,"implemented":true,"kind":"function","modifiers":[{"id":21739,"modifierName":{"id":21738,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"5288:20:80"},"nodeType":"ModifierInvocation","src":"5288:20:80"}],"name":"register","nameLocation":"5196:8:80","nodeType":"FunctionDefinition","overrides":{"id":21737,"nodeType":"OverrideSpecifier","overrides":[],"src":"5271:8:80"},"parameters":{"id":21736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21733,"mutability":"mutable","name":"_contractName","nameLocation":"5213:13:80","nodeType":"VariableDeclaration","scope":21749,"src":"5205:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5205:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21735,"mutability":"mutable","name":"_contractAddress","nameLocation":"5236:16:80","nodeType":"VariableDeclaration","scope":21749,"src":"5228:24:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21734,"name":"address","nodeType":"ElementaryTypeName","src":"5228:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5204:49:80"},"returnParameters":{"id":21740,"nodeType":"ParameterList","parameters":[],"src":"5313:0:80"},"scope":22155,"src":"5187:210:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5666],"body":{"id":21763,"nodeType":"Block","src":"5579:61:80","statements":[{"expression":{"arguments":[{"id":21759,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"5610:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21760,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21752,"src":"5619:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21758,"name":"_deregisterInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22154,"src":"5589:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":21761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5589:44:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21762,"nodeType":"ExpressionStatement","src":"5589:44:80"}]},"documentation":{"id":21750,"nodeType":"StructuredDocumentation","src":"5403:66:80","text":" @dev Deregister contract in the current release"},"functionSelector":"20813154","id":21764,"implemented":true,"kind":"function","modifiers":[{"id":21756,"modifierName":{"id":21755,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"5553:20:80"},"nodeType":"ModifierInvocation","src":"5553:20:80"}],"name":"deregister","nameLocation":"5483:10:80","nodeType":"FunctionDefinition","overrides":{"id":21754,"nodeType":"OverrideSpecifier","overrides":[],"src":"5535:8:80"},"parameters":{"id":21753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21752,"mutability":"mutable","name":"_contractName","nameLocation":"5502:13:80","nodeType":"VariableDeclaration","scope":21764,"src":"5494:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5494:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5493:23:80"},"returnParameters":{"id":21757,"nodeType":"ParameterList","parameters":[],"src":"5579:0:80"},"scope":22155,"src":"5474:166:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5680],"body":{"id":21782,"nodeType":"Block","src":"5854:71:80","statements":[{"expression":{"id":21780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21775,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21773,"src":"5864:5:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21777,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21767,"src":"5894:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21778,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21769,"src":"5904:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21776,"name":"_getContractInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21948,"src":"5872:21:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) view returns (address)"}},"id":21779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5872:46:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5864:54:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21781,"nodeType":"ExpressionStatement","src":"5864:54:80"}]},"documentation":{"id":21765,"nodeType":"StructuredDocumentation","src":"5646:65:80","text":" @dev Get contract's address in certain release"},"functionSelector":"b0ef18a0","id":21783,"implemented":true,"kind":"function","modifiers":[],"name":"getContractInRelease","nameLocation":"5725:20:80","nodeType":"FunctionDefinition","overrides":{"id":21771,"nodeType":"OverrideSpecifier","overrides":[],"src":"5804:8:80"},"parameters":{"id":21770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21767,"mutability":"mutable","name":"_release","nameLocation":"5754:8:80","nodeType":"VariableDeclaration","scope":21783,"src":"5746:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5746:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21769,"mutability":"mutable","name":"_contractName","nameLocation":"5772:13:80","nodeType":"VariableDeclaration","scope":21783,"src":"5764:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5764:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5745:41:80"},"returnParameters":{"id":21774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21773,"mutability":"mutable","name":"_addr","nameLocation":"5843:5:80","nodeType":"VariableDeclaration","scope":21783,"src":"5835:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21772,"name":"address","nodeType":"ElementaryTypeName","src":"5835:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5834:15:80"},"scope":22155,"src":"5716:209:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5647],"body":{"id":21803,"nodeType":"Block","src":"6152:85:80","statements":[{"expression":{"arguments":[{"id":21797,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21786,"src":"6181:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":21798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6191:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":21799,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21788,"src":"6198:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21800,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21790,"src":"6213:16:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":21796,"name":"_registerInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22091,"src":"6162:18:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bool_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,bool,bytes32,address)"}},"id":21801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6162:68:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21802,"nodeType":"ExpressionStatement","src":"6162:68:80"}]},"documentation":{"id":21784,"nodeType":"StructuredDocumentation","src":"5931:60:80","text":" @dev Register contract in certain release"},"functionSelector":"1d5e7314","id":21804,"implemented":true,"kind":"function","modifiers":[{"id":21794,"modifierName":{"id":21793,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6127:20:80"},"nodeType":"ModifierInvocation","src":"6127:20:80"}],"name":"registerInRelease","nameLocation":"6005:17:80","nodeType":"FunctionDefinition","overrides":{"id":21792,"nodeType":"OverrideSpecifier","overrides":[],"src":"6109:8:80"},"parameters":{"id":21791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21786,"mutability":"mutable","name":"_release","nameLocation":"6031:8:80","nodeType":"VariableDeclaration","scope":21804,"src":"6023:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6023:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21788,"mutability":"mutable","name":"_contractName","nameLocation":"6049:13:80","nodeType":"VariableDeclaration","scope":21804,"src":"6041:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6041:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21790,"mutability":"mutable","name":"_contractAddress","nameLocation":"6072:16:80","nodeType":"VariableDeclaration","scope":21804,"src":"6064:24:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21789,"name":"address","nodeType":"ElementaryTypeName","src":"6064:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6022:67:80"},"returnParameters":{"id":21795,"nodeType":"ParameterList","parameters":[],"src":"6152:0:80"},"scope":22155,"src":"5996:241:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5661],"body":{"id":21819,"nodeType":"Block","src":"6372:62:80","statements":[{"expression":{"arguments":[{"id":21815,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21806,"src":"6403:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21816,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21808,"src":"6413:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21814,"name":"_deregisterInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22154,"src":"6382:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":21817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6382:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21818,"nodeType":"ExpressionStatement","src":"6382:45:80"}]},"functionSelector":"dc527b08","id":21820,"implemented":true,"kind":"function","modifiers":[{"id":21812,"modifierName":{"id":21811,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6347:20:80"},"nodeType":"ModifierInvocation","src":"6347:20:80"}],"name":"deregisterInRelease","nameLocation":"6252:19:80","nodeType":"FunctionDefinition","overrides":{"id":21810,"nodeType":"OverrideSpecifier","overrides":[],"src":"6330:8:80"},"parameters":{"id":21809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21806,"mutability":"mutable","name":"_release","nameLocation":"6280:8:80","nodeType":"VariableDeclaration","scope":21820,"src":"6272:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6272:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21808,"mutability":"mutable","name":"_contractName","nameLocation":"6298:13:80","nodeType":"VariableDeclaration","scope":21820,"src":"6290:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6290:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6271:41:80"},"returnParameters":{"id":21813,"nodeType":"ParameterList","parameters":[],"src":"6372:0:80"},"scope":22155,"src":"6243:191:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5671],"body":{"id":21893,"nodeType":"Block","src":"6632:698:80","statements":[{"assignments":[21830],"declarations":[{"constant":false,"id":21830,"mutability":"mutable","name":"countContracts","nameLocation":"6650:14:80","nodeType":"VariableDeclaration","scope":21893,"src":"6642:22:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21829,"name":"uint256","nodeType":"ElementaryTypeName","src":"6642:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21834,"initialValue":{"baseExpression":{"id":21831,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"6667:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":21833,"indexExpression":{"id":21832,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"6687:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6667:28:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6642:53:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21836,"name":"countContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21830,"src":"6714:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6731:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6714:18:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3030313a454d5054595f52454c45415345","id":21839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6734:29:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd","typeString":"literal_string \"ERROR:REC-001:EMPTY_RELEASE\""},"value":"ERROR:REC-001:EMPTY_RELEASE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd","typeString":"literal_string \"ERROR:REC-001:EMPTY_RELEASE\""}],"id":21835,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6706:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6706:58:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21841,"nodeType":"ExpressionStatement","src":"6706:58:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":21843,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"6795:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":21845,"indexExpression":{"id":21844,"name":"_newRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21823,"src":"6815:11:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6795:32:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6831:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6795:37:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d505459","id":21848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6846:37:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59","typeString":"literal_string \"ERROR:REC-002:NEW_RELEASE_NOT_EMPTY\""},"value":"ERROR:REC-002:NEW_RELEASE_NOT_EMPTY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59","typeString":"literal_string \"ERROR:REC-002:NEW_RELEASE_NOT_EMPTY\""}],"id":21842,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6774:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6774:119:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21850,"nodeType":"ExpressionStatement","src":"6774:119:80"},{"body":{"id":21883,"nodeType":"Block","src":"7003:246:80","statements":[{"assignments":[21863],"declarations":[{"constant":false,"id":21863,"mutability":"mutable","name":"name","nameLocation":"7025:4:80","nodeType":"VariableDeclaration","scope":21883,"src":"7017:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21862,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7017:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":21871,"initialValue":{"arguments":[{"baseExpression":{"id":21866,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"7049:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21868,"indexExpression":{"id":21867,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7064:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7049:23:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":21869,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21852,"src":"7074:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21864,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"7032:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11132,"src":"7032:16:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":21870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7032:44:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7017:59:80"},{"expression":{"arguments":[{"id":21873,"name":"_newRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21823,"src":"7126:11:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":21874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7155:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":21875,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21863,"src":"7177:4:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"baseExpression":{"id":21876,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"7199:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":21878,"indexExpression":{"id":21877,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7210:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7199:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":21880,"indexExpression":{"id":21879,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21863,"src":"7219:4:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7199:25:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":21872,"name":"_registerInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22091,"src":"7090:18:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bool_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,bool,bytes32,address)"}},"id":21881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7090:148:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21882,"nodeType":"ExpressionStatement","src":"7090:148:80"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21852,"src":"6975:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":21856,"name":"countContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21830,"src":"6979:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6975:18:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21884,"initializationExpression":{"assignments":[21852],"declarations":[{"constant":false,"id":21852,"mutability":"mutable","name":"i","nameLocation":"6968:1:80","nodeType":"VariableDeclaration","scope":21884,"src":"6960:9:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21851,"name":"uint256","nodeType":"ElementaryTypeName","src":"6960:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21854,"initialValue":{"hexValue":"30","id":21853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6972:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6960:13:80"},"loopExpression":{"expression":{"id":21860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21858,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21852,"src":"6995:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":21859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7000:1:80","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6995:6:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21861,"nodeType":"ExpressionStatement","src":"6995:6:80"},"nodeType":"ForStatement","src":"6955:294:80"},{"expression":{"id":21887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21885,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7259:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21886,"name":"_newRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21823,"src":"7269:11:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7259:21:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":21888,"nodeType":"ExpressionStatement","src":"7259:21:80"},{"eventCall":{"arguments":[{"id":21890,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7315:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21889,"name":"LogReleasePrepared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5638,"src":"7296:18:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":21891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7296:27:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21892,"nodeType":"EmitStatement","src":"7291:32:80"}]},"documentation":{"id":21821,"nodeType":"StructuredDocumentation","src":"6440:80:80","text":" @dev Create new release, copy contracts from previous release"},"functionSelector":"893917ea","id":21894,"implemented":true,"kind":"function","modifiers":[{"id":21827,"modifierName":{"id":21826,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6606:20:80"},"nodeType":"ModifierInvocation","src":"6606:20:80"}],"name":"prepareRelease","nameLocation":"6534:14:80","nodeType":"FunctionDefinition","overrides":{"id":21825,"nodeType":"OverrideSpecifier","overrides":[],"src":"6588:8:80"},"parameters":{"id":21824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21823,"mutability":"mutable","name":"_newRelease","nameLocation":"6557:11:80","nodeType":"VariableDeclaration","scope":21894,"src":"6549:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21822,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6549:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6548:21:80"},"returnParameters":{"id":21828,"nodeType":"ParameterList","parameters":[],"src":"6632:0:80"},"scope":22155,"src":"6525:805:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5706],"body":{"id":21909,"nodeType":"Block","src":"7417:83:80","statements":[{"expression":{"id":21907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21900,"name":"_numberOfContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21898,"src":"7427:18:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":21903,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"7469:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21905,"indexExpression":{"id":21904,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7484:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7469:23:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":21901,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"7448:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"7448:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":21906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7448:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7427:66:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21908,"nodeType":"ExpressionStatement","src":"7427:66:80"}]},"functionSelector":"6c0f79b6","id":21910,"implemented":true,"kind":"function","modifiers":[],"name":"contracts","nameLocation":"7345:9:80","nodeType":"FunctionDefinition","overrides":{"id":21896,"nodeType":"OverrideSpecifier","overrides":[],"src":"7366:8:80"},"parameters":{"id":21895,"nodeType":"ParameterList","parameters":[],"src":"7354:2:80"},"returnParameters":{"id":21899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21898,"mutability":"mutable","name":"_numberOfContracts","nameLocation":"7397:18:80","nodeType":"VariableDeclaration","scope":21910,"src":"7389:26:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21897,"name":"uint256","nodeType":"ElementaryTypeName","src":"7389:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7388:28:80"},"scope":22155,"src":"7336:164:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5713],"body":{"id":21928,"nodeType":"Block","src":"7596:79:80","statements":[{"expression":{"id":21926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21918,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21916,"src":"7606:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":21921,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"7639:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21923,"indexExpression":{"id":21922,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7654:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7639:23:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":21924,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21912,"src":"7664:3:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21919,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"7622:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11132,"src":"7622:16:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":21925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7622:46:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7606:62:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":21927,"nodeType":"ExpressionStatement","src":"7606:62:80"}]},"functionSelector":"f6b3e7d0","id":21929,"implemented":true,"kind":"function","modifiers":[],"name":"contractName","nameLocation":"7515:12:80","nodeType":"FunctionDefinition","overrides":{"id":21914,"nodeType":"OverrideSpecifier","overrides":[],"src":"7550:8:80"},"parameters":{"id":21913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21912,"mutability":"mutable","name":"idx","nameLocation":"7536:3:80","nodeType":"VariableDeclaration","scope":21929,"src":"7528:11:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21911,"name":"uint256","nodeType":"ElementaryTypeName","src":"7528:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7527:13:80"},"returnParameters":{"id":21917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21916,"mutability":"mutable","name":"_contractName","nameLocation":"7581:13:80","nodeType":"VariableDeclaration","scope":21929,"src":"7573:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7573:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7572:23:80"},"scope":22155,"src":"7506:169:80","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21947,"nodeType":"Block","src":"7881:60:80","statements":[{"expression":{"id":21945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21939,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21937,"src":"7891:5:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":21940,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"7899:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":21942,"indexExpression":{"id":21941,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21932,"src":"7910:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7899:20:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":21944,"indexExpression":{"id":21943,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21934,"src":"7920:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7899:35:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7891:43:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21946,"nodeType":"ExpressionStatement","src":"7891:43:80"}]},"documentation":{"id":21930,"nodeType":"StructuredDocumentation","src":"7681:65:80","text":" @dev Get contract's address in certain release"},"id":21948,"implemented":true,"kind":"function","modifiers":[],"name":"_getContractInRelease","nameLocation":"7760:21:80","nodeType":"FunctionDefinition","parameters":{"id":21935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21932,"mutability":"mutable","name":"_release","nameLocation":"7790:8:80","nodeType":"VariableDeclaration","scope":21948,"src":"7782:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7782:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21934,"mutability":"mutable","name":"_contractName","nameLocation":"7808:13:80","nodeType":"VariableDeclaration","scope":21948,"src":"7800:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7800:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7781:41:80"},"returnParameters":{"id":21938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21937,"mutability":"mutable","name":"_addr","nameLocation":"7870:5:80","nodeType":"VariableDeclaration","scope":21948,"src":"7862:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21936,"name":"address","nodeType":"ElementaryTypeName","src":"7862:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7861:15:80"},"scope":22155,"src":"7751:190:80","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":22090,"nodeType":"Block","src":"8186:1624:80","statements":[{"assignments":[21961],"declarations":[{"constant":false,"id":21961,"mutability":"mutable","name":"isNew","nameLocation":"8201:5:80","nodeType":"VariableDeclaration","scope":22090,"src":"8196:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21960,"name":"bool","nodeType":"ElementaryTypeName","src":"8196:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":21963,"initialValue":{"hexValue":"66616c7365","id":21962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8209:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"8196:18:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":21967,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"8267:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21969,"indexExpression":{"id":21968,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"8282:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8267:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":21965,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"8246:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"8246:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":21970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8246:46:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":21971,"name":"MAX_CONTRACTS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21615,"src":"8295:13:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8246:62:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d4954","id":21973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8322:35:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef","typeString":"literal_string \"ERROR:REC-010:MAX_CONTRACTS_LIMIT\""},"value":"ERROR:REC-010:MAX_CONTRACTS_LIMIT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef","typeString":"literal_string \"ERROR:REC-010:MAX_CONTRACTS_LIMIT\""}],"id":21964,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8225:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8225:142:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21975,"nodeType":"ExpressionStatement","src":"8225:142:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":21977,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"8491:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":21979,"indexExpression":{"id":21978,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"8511:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8491:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8523:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8491:33:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":21982,"name":"isNewRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21953,"src":"8528:12:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8491:49:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e","id":21984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8542:31:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693","typeString":"literal_string \"ERROR:REC-011:RELEASE_UNKNOWN\""},"value":"ERROR:REC-011:RELEASE_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693","typeString":"literal_string \"ERROR:REC-011:RELEASE_UNKNOWN\""}],"id":21976,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8483:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8483:91:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21986,"nodeType":"ExpressionStatement","src":"8483:91:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":21990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21988,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"8592:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30783030","id":21989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8609:4:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"src":"8592:21:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d505459","id":21991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8615:35:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2","typeString":"literal_string \"ERROR:REC-012:CONTRACT_NAME_EMPTY\""},"value":"ERROR:REC-012:CONTRACT_NAME_EMPTY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2","typeString":"literal_string \"ERROR:REC-012:CONTRACT_NAME_EMPTY\""}],"id":21987,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8584:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8584:67:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21993,"nodeType":"ExpressionStatement","src":"8584:67:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"id":22002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8683:65:80","subExpression":{"arguments":[{"baseExpression":{"id":21997,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"8708:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21999,"indexExpression":{"id":21998,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"8723:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8708:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":22000,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"8734:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":21995,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"8685:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11099,"src":"8685:22:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) view returns (bool)"}},"id":22001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8685:63:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":22003,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8682:68:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":22006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22004,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"8962:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":22005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8979:25:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"},"src":"8962:42:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":22007,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"9008:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":22009,"indexExpression":{"id":22008,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9019:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9008:20:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":22011,"indexExpression":{"id":22010,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"9029:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9008:35:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22012,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"9047:10:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9047:12:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9008:51:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8962:97:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":22016,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8961:99:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8682:378:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031333a434f4e54524143545f4e414d455f455849535453","id":22018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9075:36:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0","typeString":"literal_string \"ERROR:REC-013:CONTRACT_NAME_EXISTS\""},"value":"ERROR:REC-013:CONTRACT_NAME_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0","typeString":"literal_string \"ERROR:REC-013:CONTRACT_NAME_EXISTS\""}],"id":21994,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8661:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8661:451:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22020,"nodeType":"ExpressionStatement","src":"8661:451:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22022,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21957,"src":"9130:16:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9158:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9150:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22023,"name":"address","nodeType":"ElementaryTypeName","src":"9150:7:80","typeDescriptions":{}}},"id":22026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9150:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9130:30:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a45524f","id":22028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9162:37:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b","typeString":"literal_string \"ERROR:REC-014:CONTRACT_ADDRESS_ZERO\""},"value":"ERROR:REC-014:CONTRACT_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b","typeString":"literal_string \"ERROR:REC-014:CONTRACT_ADDRESS_ZERO\""}],"id":22021,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9122:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9122:78:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22030,"nodeType":"ExpressionStatement","src":"9122:78:80"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":22031,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"9215:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":22033,"indexExpression":{"id":22032,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9226:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9215:20:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":22035,"indexExpression":{"id":22034,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"9236:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9215:35:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":22038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9262:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9254:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22036,"name":"address","nodeType":"ElementaryTypeName","src":"9254:7:80","typeDescriptions":{}}},"id":22039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9254:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9215:49:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22060,"nodeType":"IfStatement","src":"9211:209:80","trueBody":{"id":22059,"nodeType":"Block","src":"9266:154:80","statements":[{"expression":{"arguments":[{"baseExpression":{"id":22044,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"9298:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":22046,"indexExpression":{"id":22045,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9313:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9298:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":22047,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"9324:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22041,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"9280:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":22043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11063,"src":"9280:17:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":22048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9280:58:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22049,"nodeType":"ExpressionStatement","src":"9280:58:80"},{"expression":{"id":22053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9352:31:80","subExpression":{"baseExpression":{"id":22050,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"9352:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":22052,"indexExpression":{"id":22051,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9372:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9352:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22054,"nodeType":"ExpressionStatement","src":"9352:31:80"},{"expression":{"id":22057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22055,"name":"isNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21961,"src":"9397:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":22056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9405:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9397:12:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22058,"nodeType":"ExpressionStatement","src":"9397:12:80"}]}},{"expression":{"id":22067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":22061,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"9430:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":22064,"indexExpression":{"id":22062,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9441:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9430:20:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":22065,"indexExpression":{"id":22063,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"9451:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9430:35:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22066,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21957,"src":"9468:16:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9430:54:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22068,"nodeType":"ExpressionStatement","src":"9430:54:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22070,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"9515:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":22072,"indexExpression":{"id":22071,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9535:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9515:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"baseExpression":{"id":22075,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"9569:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":22077,"indexExpression":{"id":22076,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9584:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9569:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":22073,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"9548:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":22074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"9548:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":22078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9548:46:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9515:79:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d49534d41544348","id":22080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9608:40:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42","typeString":"literal_string \"ERROR:REC-015:CONTRACT_NUMBER_MISMATCH\""},"value":"ERROR:REC-015:CONTRACT_NUMBER_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42","typeString":"literal_string \"ERROR:REC-015:CONTRACT_NUMBER_MISMATCH\""}],"id":22069,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9494:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9494:164:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22082,"nodeType":"ExpressionStatement","src":"9494:164:80"},{"eventCall":{"arguments":[{"id":22084,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9709:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22085,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"9731:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22086,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21957,"src":"9758:16:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22087,"name":"isNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21961,"src":"9788:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":22083,"name":"LogContractRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5628,"src":"9674:21:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_bool_$returns$__$","typeString":"function (bytes32,bytes32,address,bool)"}},"id":22088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9674:129:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22089,"nodeType":"EmitStatement","src":"9669:134:80"}]},"documentation":{"id":21949,"nodeType":"StructuredDocumentation","src":"7947:60:80","text":" @dev Register contract in certain release"},"id":22091,"implemented":true,"kind":"function","modifiers":[],"name":"_registerInRelease","nameLocation":"8021:18:80","nodeType":"FunctionDefinition","parameters":{"id":21958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21951,"mutability":"mutable","name":"_release","nameLocation":"8057:8:80","nodeType":"VariableDeclaration","scope":22091,"src":"8049:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8049:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21953,"mutability":"mutable","name":"isNewRelease","nameLocation":"8080:12:80","nodeType":"VariableDeclaration","scope":22091,"src":"8075:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21952,"name":"bool","nodeType":"ElementaryTypeName","src":"8075:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21955,"mutability":"mutable","name":"_contractName","nameLocation":"8110:13:80","nodeType":"VariableDeclaration","scope":22091,"src":"8102:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8102:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21957,"mutability":"mutable","name":"_contractAddress","nameLocation":"8141:16:80","nodeType":"VariableDeclaration","scope":22091,"src":"8133:24:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21956,"name":"address","nodeType":"ElementaryTypeName","src":"8133:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8039:124:80"},"returnParameters":{"id":21959,"nodeType":"ParameterList","parameters":[],"src":"8186:0:80"},"scope":22155,"src":"8012:1798:80","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22153,"nodeType":"Block","src":"10005:541:80","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":22104,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"10046:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":22106,"indexExpression":{"id":22105,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10061:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10046:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":22107,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22096,"src":"10072:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22102,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10023:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":22103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11099,"src":"10023:22:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) view returns (bool)"}},"id":22108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10023:63:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e","id":22109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10088:32:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77","typeString":"literal_string \"ERROR:REC-020:CONTRACT_UNKNOWN\""},"value":"ERROR:REC-020:CONTRACT_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77","typeString":"literal_string \"ERROR:REC-020:CONTRACT_UNKNOWN\""}],"id":22101,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10015:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10015:106:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22111,"nodeType":"ExpressionStatement","src":"10015:106:80"},{"expression":{"arguments":[{"baseExpression":{"id":22115,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"10153:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":22117,"indexExpression":{"id":22116,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10168:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10153:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":22118,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22096,"src":"10179:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22112,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10132:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":22114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"10132:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":22119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10132:61:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22120,"nodeType":"ExpressionStatement","src":"10132:61:80"},{"expression":{"id":22125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22121,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"10204:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":22123,"indexExpression":{"id":22122,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10224:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10204:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":22124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10237:1:80","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10204:34:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22126,"nodeType":"ExpressionStatement","src":"10204:34:80"},{"expression":{"id":22132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10248:42:80","subExpression":{"baseExpression":{"baseExpression":{"id":22127,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"10255:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":22129,"indexExpression":{"id":22128,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10266:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10255:20:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":22131,"indexExpression":{"id":22130,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22096,"src":"10276:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10255:35:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22133,"nodeType":"ExpressionStatement","src":"10248:42:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22135,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"10330:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":22137,"indexExpression":{"id":22136,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10350:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10330:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"baseExpression":{"id":22140,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"10384:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":22142,"indexExpression":{"id":22141,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10399:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10384:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":22138,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10363:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":22139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"10363:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":22143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10363:46:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10330:79:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d49534d41544348","id":22145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10423:40:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f","typeString":"literal_string \"ERROR:REC-021:CONTRACT_NUMBER_MISMATCH\""},"value":"ERROR:REC-021:CONTRACT_NUMBER_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f","typeString":"literal_string \"ERROR:REC-021:CONTRACT_NUMBER_MISMATCH\""}],"id":22134,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10309:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10309:155:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22147,"nodeType":"ExpressionStatement","src":"10309:155:80"},{"eventCall":{"arguments":[{"id":22149,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10503:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22150,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22096,"src":"10513:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":22148,"name":"LogContractDeregistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5634,"src":"10479:23:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":22151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10479:48:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22152,"nodeType":"EmitStatement","src":"10474:53:80"}]},"documentation":{"id":22092,"nodeType":"StructuredDocumentation","src":"9817:62:80","text":" @dev Deregister contract in certain release"},"id":22154,"implemented":true,"kind":"function","modifiers":[{"id":22099,"modifierName":{"id":22098,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"9980:20:80"},"nodeType":"ModifierInvocation","src":"9980:20:80"}],"name":"_deregisterInRelease","nameLocation":"9893:20:80","nodeType":"FunctionDefinition","parameters":{"id":22097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22094,"mutability":"mutable","name":"_release","nameLocation":"9922:8:80","nodeType":"VariableDeclaration","scope":22154,"src":"9914:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9914:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22096,"mutability":"mutable","name":"_contractName","nameLocation":"9940:13:80","nodeType":"VariableDeclaration","scope":22154,"src":"9932:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9932:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9913:41:80"},"returnParameters":{"id":22100,"nodeType":"ParameterList","parameters":[],"src":"10005:0:80"},"scope":22155,"src":"9884:662:80","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":22156,"src":"2981:7567:80"}],"src":"39:10510:80"},"id":80},"contracts/modules/TreasuryModule.sol":{"ast":{"absolutePath":"contracts/modules/TreasuryModule.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IOracle":[3022],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"ITreasury":[5974],"Initializable":[8059],"Ownable":[7481],"Pausable":[8167],"PolicyController":[19974],"PoolController":[21207],"Strings":[10804],"TransferHelper":[26659],"TreasuryModule":[23615]},"id":23616,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":22157,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:81"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"./ComponentController.sol","id":22158,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":17948,"src":"63:35:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PolicyController.sol","file":"./PolicyController.sol","id":22159,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":19975,"src":"99:32:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/BundleController.sol","file":"./BundleController.sol","id":22160,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":16947,"src":"132:32:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"./PoolController.sol","id":22161,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":21208,"src":"165:30:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":22162,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":26414,"src":"196:38:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/TransferHelper.sol","file":"../shared/TransferHelper.sol","id":22163,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":26660,"src":"235:38:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":22164,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":2989,"src":"275:69:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":22165,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":3080,"src":"345:67:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":22166,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":5434,"src":"413:63:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","file":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","id":22167,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":5975,"src":"477:65:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":22168,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":8168,"src":"544:55:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":22169,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":8832,"src":"600:56:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","id":22170,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":10805,"src":"657:51:81","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22172,"name":"ITreasury","nodeType":"IdentifierPath","referencedDeclaration":5974,"src":"3580:9:81"},"id":22173,"nodeType":"InheritanceSpecifier","src":"3580:9:81"},{"baseName":{"id":22174,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"3595:14:81"},"id":22175,"nodeType":"InheritanceSpecifier","src":"3595:14:81"},{"baseName":{"id":22176,"name":"Pausable","nodeType":"IdentifierPath","referencedDeclaration":8167,"src":"3615:8:81"},"id":22177,"nodeType":"InheritanceSpecifier","src":"3615:8:81"}],"contractDependencies":[5974,8059,8167,10518,26413],"contractKind":"contract","documentation":{"id":22171,"nodeType":"StructuredDocumentation","src":"710:2836:81","text":"The smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts.\nThe contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the \"etherisc/gif-interface\" and \"openzeppelin/contracts\" libraries.\nThe contract defines several state variables, including:\n- FRACTION_FULL_UNIT: a constant representing the full unit value (10^18).\n- FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%).\n- event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation.\n- event LogTransferHelperInputValidation2Failed: an event that logs a failed input validation.\n- event LogTransferHelperCallFailed: an event that logs a failed external call.\n- _instanceWalletAddress: a private variable representing the address of the instance wallet.\n- _riskpoolWallet: a mapping of riskpool IDs to wallet addresses.\n- _fees: a mapping of component IDs to FeeSpecification structs.\n- _componentToken: a mapping of product IDs/riskpool IDs to ERC20 token addresses.\n- _bundle: an instance of the BundleController contract.\n- _component: an instance of the ComponentController contract.\n- _policy: an instance of the PolicyController contract.\n- _pool: an instance of the PoolController contract.\nThe contract includes several modifiers that enforce certain conditions on function execution, such as the instanceWalletDefined modifier, which requires the instance wallet address to be defined;\nthe riskpoolWalletDefinedForProcess modifier, which requires the riskpool wallet address to be defined for a given process ID;\nthe riskpoolWalletDefinedForBundle modifier, which requires the riskpool wallet address to be defined for a given bundle ID;\nthe whenNotSuspended modifier, which requires the contract to not be paused; and the onlyRiskpoolService modifier, which restricts access to the RiskpoolService contract.\nThe contract contains various functions for managing the treasury, such as setting the product token address, setting the instance wallet address, setting the riskpool wallet address, creating fee specifications, and setting premium and capital fees for components.\nThere are also functions for suspending and resuming the treasury contract.\nThe contract includes a function to calculate the fee amount and net amount for a given component ID and amount.\nIt also includes functions to process premium payments for policies, either for the remaining premium amount or for a specific amount.\nOverall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system."},"fullyImplemented":true,"id":23615,"linearizedBaseContracts":[23615,8167,26413,8059,10518,5974],"name":"TreasuryModule","nameLocation":"3557:14:81","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"b79f5eab","id":22182,"mutability":"constant","name":"FRACTION_FULL_UNIT","nameLocation":"3654:18:81","nodeType":"VariableDeclaration","scope":23615,"src":"3630:51:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22178,"name":"uint256","nodeType":"ElementaryTypeName","src":"3630:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":22181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":22179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3675:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":22180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3679:2:81","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"3675:6:81","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"public"},{"constant":true,"functionSelector":"f964690d","id":22187,"mutability":"constant","name":"FRACTIONAL_FEE_MAX","nameLocation":"3711:18:81","nodeType":"VariableDeclaration","scope":23615,"src":"3687:67:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22183,"name":"uint256","nodeType":"ElementaryTypeName","src":"3687:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":22184,"name":"FRACTION_FULL_UNIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22182,"src":"3732:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"34","id":22185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3753:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3732:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"id":22195,"name":"LogTransferHelperInputValidation1Failed","nameLocation":"3795:39:81","nodeType":"EventDefinition","parameters":{"id":22194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22189,"indexed":false,"mutability":"mutable","name":"tokenIsContract","nameLocation":"3840:15:81","nodeType":"VariableDeclaration","scope":22195,"src":"3835:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22188,"name":"bool","nodeType":"ElementaryTypeName","src":"3835:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22191,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"3865:4:81","nodeType":"VariableDeclaration","scope":22195,"src":"3857:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22190,"name":"address","nodeType":"ElementaryTypeName","src":"3857:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22193,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"3879:2:81","nodeType":"VariableDeclaration","scope":22195,"src":"3871:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22192,"name":"address","nodeType":"ElementaryTypeName","src":"3871:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3834:48:81"},"src":"3789:94:81"},{"anonymous":false,"id":22201,"name":"LogTransferHelperInputValidation2Failed","nameLocation":"3894:39:81","nodeType":"EventDefinition","parameters":{"id":22200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22197,"indexed":false,"mutability":"mutable","name":"balance","nameLocation":"3942:7:81","nodeType":"VariableDeclaration","scope":22201,"src":"3934:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22196,"name":"uint256","nodeType":"ElementaryTypeName","src":"3934:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22199,"indexed":false,"mutability":"mutable","name":"allowance","nameLocation":"3959:9:81","nodeType":"VariableDeclaration","scope":22201,"src":"3951:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22198,"name":"uint256","nodeType":"ElementaryTypeName","src":"3951:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3933:36:81"},"src":"3888:82:81"},{"anonymous":false,"id":22209,"name":"LogTransferHelperCallFailed","nameLocation":"3981:27:81","nodeType":"EventDefinition","parameters":{"id":22208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22203,"indexed":false,"mutability":"mutable","name":"callSuccess","nameLocation":"4014:11:81","nodeType":"VariableDeclaration","scope":22209,"src":"4009:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22202,"name":"bool","nodeType":"ElementaryTypeName","src":"4009:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22205,"indexed":false,"mutability":"mutable","name":"returnDataLength","nameLocation":"4035:16:81","nodeType":"VariableDeclaration","scope":22209,"src":"4027:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22204,"name":"uint256","nodeType":"ElementaryTypeName","src":"4027:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22207,"indexed":false,"mutability":"mutable","name":"returnData","nameLocation":"4059:10:81","nodeType":"VariableDeclaration","scope":22209,"src":"4053:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22206,"name":"bytes","nodeType":"ElementaryTypeName","src":"4053:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4008:62:81"},"src":"3975:96:81"},{"constant":false,"id":22211,"mutability":"mutable","name":"_instanceWalletAddress","nameLocation":"4093:22:81","nodeType":"VariableDeclaration","scope":23615,"src":"4077:38:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22210,"name":"address","nodeType":"ElementaryTypeName","src":"4077:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":22215,"mutability":"mutable","name":"_riskpoolWallet","nameLocation":"4157:15:81","nodeType":"VariableDeclaration","scope":23615,"src":"4121:51:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":22214,"keyType":{"id":22212,"name":"uint256","nodeType":"ElementaryTypeName","src":"4129:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4121:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":22213,"name":"address","nodeType":"ElementaryTypeName","src":"4140:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":22220,"mutability":"mutable","name":"_fees","nameLocation":"4254:5:81","nodeType":"VariableDeclaration","scope":23615,"src":"4209:50:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification)"},"typeName":{"id":22219,"keyType":{"id":22216,"name":"uint256","nodeType":"ElementaryTypeName","src":"4217:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4209:36:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification)"},"valueType":{"id":22218,"nodeType":"UserDefinedTypeName","pathNode":{"id":22217,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"4228:16:81"},"referencedDeclaration":5838,"src":"4228:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}}},"visibility":"private"},{"constant":false,"id":22225,"mutability":"mutable","name":"_componentToken","nameLocation":"4336:15:81","nodeType":"VariableDeclaration","scope":23615,"src":"4301:50:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"},"typeName":{"id":22224,"keyType":{"id":22221,"name":"uint256","nodeType":"ElementaryTypeName","src":"4309:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4301:26:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"},"valueType":{"id":22223,"nodeType":"UserDefinedTypeName","pathNode":{"id":22222,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"4320:6:81"},"referencedDeclaration":8831,"src":"4320:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}},"visibility":"private"},{"constant":false,"id":22228,"mutability":"mutable","name":"_bundle","nameLocation":"4423:7:81","nodeType":"VariableDeclaration","scope":23615,"src":"4398:32:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"},"typeName":{"id":22227,"nodeType":"UserDefinedTypeName","pathNode":{"id":22226,"name":"BundleController","nodeType":"IdentifierPath","referencedDeclaration":16946,"src":"4398:16:81"},"referencedDeclaration":16946,"src":"4398:16:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"visibility":"private"},{"constant":false,"id":22231,"mutability":"mutable","name":"_component","nameLocation":"4464:10:81","nodeType":"VariableDeclaration","scope":23615,"src":"4436:38:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":22230,"nodeType":"UserDefinedTypeName","pathNode":{"id":22229,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"4436:19:81"},"referencedDeclaration":17947,"src":"4436:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"constant":false,"id":22234,"mutability":"mutable","name":"_policy","nameLocation":"4505:7:81","nodeType":"VariableDeclaration","scope":23615,"src":"4480:32:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":22233,"nodeType":"UserDefinedTypeName","pathNode":{"id":22232,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"4480:16:81"},"referencedDeclaration":19974,"src":"4480:16:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"private"},{"constant":false,"id":22237,"mutability":"mutable","name":"_pool","nameLocation":"4541:5:81","nodeType":"VariableDeclaration","scope":23615,"src":"4518:28:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":22236,"nodeType":"UserDefinedTypeName","pathNode":{"id":22235,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"4518:14:81"},"referencedDeclaration":21207,"src":"4518:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"private"},{"body":{"id":22250,"nodeType":"Block","src":"4586:141:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22240,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"4617:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4651:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4643:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22241,"name":"address","nodeType":"ElementaryTypeName","src":"4643:7:81","typeDescriptions":{}}},"id":22244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4643:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4617:36:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3030313a494e5354414e43455f57414c4c45545f554e444546494e4544","id":22246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4667:41:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b46fae8951b5666cf5036a2bfff9803d02b9a299525a4505cc74a99e0633220","typeString":"literal_string \"ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED\""},"value":"ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2b46fae8951b5666cf5036a2bfff9803d02b9a299525a4505cc74a99e0633220","typeString":"literal_string \"ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED\""}],"id":22239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4596:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4596:113:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22248,"nodeType":"ExpressionStatement","src":"4596:113:81"},{"id":22249,"nodeType":"PlaceholderStatement","src":"4719:1:81"}]},"id":22251,"name":"instanceWalletDefined","nameLocation":"4562:21:81","nodeType":"ModifierDefinition","parameters":{"id":22238,"nodeType":"ParameterList","parameters":[],"src":"4583:2:81"},"src":"4553:174:81","virtual":false,"visibility":"internal"},{"body":{"id":22274,"nodeType":"Block","src":"4793:217:81","statements":[{"assignments":[22256,22258],"declarations":[{"constant":false,"id":22256,"mutability":"mutable","name":"riskpoolId","nameLocation":"4812:10:81","nodeType":"VariableDeclaration","scope":22274,"src":"4804:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22255,"name":"uint256","nodeType":"ElementaryTypeName","src":"4804:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22258,"mutability":"mutable","name":"walletAddress","nameLocation":"4832:13:81","nodeType":"VariableDeclaration","scope":22274,"src":"4824:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22257,"name":"address","nodeType":"ElementaryTypeName","src":"4824:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":22262,"initialValue":{"arguments":[{"id":22260,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22253,"src":"4868:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":22259,"name":"_getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23614,"src":"4849:18:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$_t_address_$","typeString":"function (bytes32) view returns (uint256,address)"}},"id":22261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4849:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"nodeType":"VariableDeclarationStatement","src":"4803:75:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22264,"name":"walletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22258,"src":"4909:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4934:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4926:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22265,"name":"address","nodeType":"ElementaryTypeName","src":"4926:7:81","typeDescriptions":{}}},"id":22268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4926:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4909:27:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3030323a5249534b504f4f4c5f57414c4c45545f554e444546494e4544","id":22270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4950:41:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_0426c9e38488694ef5fcd21b7d01546e3f09d04e0204867e9068633df2d21047","typeString":"literal_string \"ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED\""},"value":"ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0426c9e38488694ef5fcd21b7d01546e3f09d04e0204867e9068633df2d21047","typeString":"literal_string \"ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED\""}],"id":22263,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4888:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4888:104:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22272,"nodeType":"ExpressionStatement","src":"4888:104:81"},{"id":22273,"nodeType":"PlaceholderStatement","src":"5002:1:81"}]},"id":22275,"name":"riskpoolWalletDefinedForProcess","nameLocation":"4742:31:81","nodeType":"ModifierDefinition","parameters":{"id":22254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22253,"mutability":"mutable","name":"processId","nameLocation":"4782:9:81","nodeType":"VariableDeclaration","scope":22275,"src":"4774:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22252,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4774:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4773:19:81"},"src":"4733:277:81","virtual":false,"visibility":"internal"},{"body":{"id":22303,"nodeType":"Block","src":"5074:223:81","statements":[{"assignments":[22283],"declarations":[{"constant":false,"id":22283,"mutability":"mutable","name":"bundle","nameLocation":"5106:6:81","nodeType":"VariableDeclaration","scope":22303,"src":"5084:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":22282,"nodeType":"UserDefinedTypeName","pathNode":{"id":22281,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"5084:14:81"},"referencedDeclaration":4936,"src":"5084:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":22288,"initialValue":{"arguments":[{"id":22286,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22277,"src":"5133:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22284,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"5115:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":22285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"5115:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":22287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5115:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"5084:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":22291,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22283,"src":"5191:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":22292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"5191:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22290,"name":"getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23494,"src":"5173:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":22293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5173:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5221:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5213:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22294,"name":"address","nodeType":"ElementaryTypeName","src":"5213:7:81","typeDescriptions":{}}},"id":22297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5213:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5173:50:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3030333a5249534b504f4f4c5f57414c4c45545f554e444546494e4544","id":22299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5237:41:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc89108457ff0693a34e0e46b7b733b4220c89a4cb97d3006bf3a51034cca2c9","typeString":"literal_string \"ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED\""},"value":"ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bc89108457ff0693a34e0e46b7b733b4220c89a4cb97d3006bf3a51034cca2c9","typeString":"literal_string \"ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED\""}],"id":22289,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5152:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5152:127:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22301,"nodeType":"ExpressionStatement","src":"5152:127:81"},{"id":22302,"nodeType":"PlaceholderStatement","src":"5289:1:81"}]},"id":22304,"name":"riskpoolWalletDefinedForBundle","nameLocation":"5025:30:81","nodeType":"ModifierDefinition","parameters":{"id":22278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22277,"mutability":"mutable","name":"bundleId","nameLocation":"5064:8:81","nodeType":"VariableDeclaration","scope":22304,"src":"5056:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22276,"name":"uint256","nodeType":"ElementaryTypeName","src":"5056:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5055:18:81"},"src":"5016:281:81","virtual":false,"visibility":"internal"},{"body":{"id":22314,"nodeType":"Block","src":"5417:82:81","statements":[{"expression":{"arguments":[{"id":22309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5435:9:81","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22307,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8111,"src":"5436:6:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":22308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5436:8:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3030343a54524541535552595f53555350454e444544","id":22310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5446:34:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_3716cf2f5864d6ed7dbe013f132263c98f75980b1bc9e53587b62e45d53b8001","typeString":"literal_string \"ERROR:TRS-004:TREASURY_SUSPENDED\""},"value":"ERROR:TRS-004:TREASURY_SUSPENDED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3716cf2f5864d6ed7dbe013f132263c98f75980b1bc9e53587b62e45d53b8001","typeString":"literal_string \"ERROR:TRS-004:TREASURY_SUSPENDED\""}],"id":22306,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5427:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5427:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22312,"nodeType":"ExpressionStatement","src":"5427:54:81"},{"id":22313,"nodeType":"PlaceholderStatement","src":"5491:1:81"}]},"id":22315,"name":"whenNotSuspended","nameLocation":"5398:16:81","nodeType":"ModifierDefinition","parameters":{"id":22305,"nodeType":"ParameterList","parameters":[],"src":"5414:2:81"},"src":"5389:110:81","virtual":false,"visibility":"internal"},{"body":{"id":22328,"nodeType":"Block","src":"5536:163:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22318,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5567:10:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5567:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"5269736b706f6f6c53657276696365","id":22321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5603:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""},"value":"RiskpoolService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""}],"id":22320,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5583:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":22322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5583:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5567:54:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3030353a4e4f545f5249534b504f4f4c5f53455256494345","id":22324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5635:36:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c57f116b2d23b472e497701710f194d47bb249cf3bdd21579f4ccec35ce6514","typeString":"literal_string \"ERROR:TRS-005:NOT_RISKPOOL_SERVICE\""},"value":"ERROR:TRS-005:NOT_RISKPOOL_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c57f116b2d23b472e497701710f194d47bb249cf3bdd21579f4ccec35ce6514","typeString":"literal_string \"ERROR:TRS-005:NOT_RISKPOOL_SERVICE\""}],"id":22317,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5546:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5546:135:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22326,"nodeType":"ExpressionStatement","src":"5546:135:81"},{"id":22327,"nodeType":"PlaceholderStatement","src":"5691:1:81"}]},"id":22329,"name":"onlyRiskpoolService","nameLocation":"5514:19:81","nodeType":"ModifierDefinition","parameters":{"id":22316,"nodeType":"ParameterList","parameters":[],"src":"5533:2:81"},"src":"5505:194:81","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":22367,"nodeType":"Block","src":"5768:278:81","statements":[{"expression":{"id":22341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22335,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"5778:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"42756e646c65","id":22338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5825:8:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""},"value":"Bundle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""}],"id":22337,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5805:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":22339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5805:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22336,"name":"BundleController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"5788:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleController_$16946_$","typeString":"type(contract BundleController)"}},"id":22340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5788:47:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"src":"5778:57:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":22342,"nodeType":"ExpressionStatement","src":"5778:57:81"},{"expression":{"id":22349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22343,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"5845:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":22346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5898:11:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":22345,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5878:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":22347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5878:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22344,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"5858:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":22348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5858:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"5845:66:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22350,"nodeType":"ExpressionStatement","src":"5845:66:81"},{"expression":{"id":22357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22351,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"5921:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6c696379","id":22354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5968:8:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""}],"id":22353,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5948:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":22355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5948:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22352,"name":"PolicyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"5931:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PolicyController_$19974_$","typeString":"type(contract PolicyController)"}},"id":22356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5931:47:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"src":"5921:57:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":22358,"nodeType":"ExpressionStatement","src":"5921:57:81"},{"expression":{"id":22365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22359,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22237,"src":"5988:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6f6c","id":22362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6031:6:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":22361,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"6011:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":22363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6011:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22360,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"5996:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":22364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5996:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"src":"5988:51:81","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":22366,"nodeType":"ExpressionStatement","src":"5988:51:81"}]},"id":22368,"implemented":true,"kind":"function","modifiers":[{"id":22333,"modifierName":{"id":22332,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"5751:16:81"},"nodeType":"ModifierInvocation","src":"5751:16:81"}],"name":"_afterInitialize","nameLocation":"5714:16:81","nodeType":"FunctionDefinition","overrides":{"id":22331,"nodeType":"OverrideSpecifier","overrides":[],"src":"5742:8:81"},"parameters":{"id":22330,"nodeType":"ParameterList","parameters":[],"src":"5730:2:81"},"returnParameters":{"id":22334,"nodeType":"ParameterList","parameters":[],"src":"5768:0:81"},"scope":23615,"src":"5705:341:81","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22379,"nodeType":"Block","src":"6123:62:81","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22373,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8150,"src":"6133:6:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6133:8:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22375,"nodeType":"ExpressionStatement","src":"6133:8:81"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":22376,"name":"LogTreasurySuspended","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5719,"src":"6156:20:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6156:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22378,"nodeType":"EmitStatement","src":"6151:27:81"}]},"functionSelector":"e6400bbe","id":22380,"implemented":true,"kind":"function","modifiers":[{"id":22371,"modifierName":{"id":22370,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6098:20:81"},"nodeType":"ModifierInvocation","src":"6098:20:81"}],"name":"suspend","nameLocation":"6061:7:81","nodeType":"FunctionDefinition","parameters":{"id":22369,"nodeType":"ParameterList","parameters":[],"src":"6068:2:81"},"returnParameters":{"id":22372,"nodeType":"ParameterList","parameters":[],"src":"6123:0:81"},"scope":23615,"src":"6052:133:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22391,"nodeType":"Block","src":"6261:62:81","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22385,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8166,"src":"6271:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6271:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22387,"nodeType":"ExpressionStatement","src":"6271:10:81"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":22388,"name":"LogTreasuryResumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5721,"src":"6296:18:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6296:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22390,"nodeType":"EmitStatement","src":"6291:25:81"}]},"functionSelector":"046f7da2","id":22392,"implemented":true,"kind":"function","modifiers":[{"id":22383,"modifierName":{"id":22382,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6236:20:81"},"nodeType":"ModifierInvocation","src":"6236:20:81"}],"name":"resume","nameLocation":"6200:6:81","nodeType":"FunctionDefinition","parameters":{"id":22381,"nodeType":"ParameterList","parameters":[],"src":"6206:2:81"},"returnParameters":{"id":22384,"nodeType":"ParameterList","parameters":[],"src":"6261:0:81"},"scope":23615,"src":"6191:132:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5845],"body":{"id":22515,"nodeType":"Block","src":"6479:1078:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22405,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"6497:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6521:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6513:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22406,"name":"address","nodeType":"ElementaryTypeName","src":"6513:7:81","typeDescriptions":{}}},"id":22409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6513:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6497:26:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031303a544f4b454e5f414444524553535f5a45524f","id":22411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6525:34:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceb0bf7951c332a40d75b8b4b45101b45a65b113825ab60387d5b818680891fa","typeString":"literal_string \"ERROR:TRS-010:TOKEN_ADDRESS_ZERO\""},"value":"ERROR:TRS-010:TOKEN_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ceb0bf7951c332a40d75b8b4b45101b45a65b113825ab60387d5b818680891fa","typeString":"literal_string \"ERROR:TRS-010:TOKEN_ADDRESS_ZERO\""}],"id":22404,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6489:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6489:71:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22413,"nodeType":"ExpressionStatement","src":"6489:71:81"},{"expression":{"arguments":[{"arguments":[{"id":22417,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"6600:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22415,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"6579:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"6579:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6579:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031313a4e4f545f50524f44554354","id":22419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6612:27:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_7da3c4275d49aeca81de3efd989371cdf344763b44123371517a3e6b02efcce4","typeString":"literal_string \"ERROR:TRS-011:NOT_PRODUCT\""},"value":"ERROR:TRS-011:NOT_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7da3c4275d49aeca81de3efd989371cdf344763b44123371517a3e6b02efcce4","typeString":"literal_string \"ERROR:TRS-011:NOT_PRODUCT\""}],"id":22414,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6571:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6571:69:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22421,"nodeType":"ExpressionStatement","src":"6571:69:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":22425,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"6666:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":22427,"indexExpression":{"id":22426,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"6682:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6666:26:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":22424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6658:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22423,"name":"address","nodeType":"ElementaryTypeName","src":"6658:7:81","typeDescriptions":{}}},"id":22428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6658:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":22431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6705:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6697:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22429,"name":"address","nodeType":"ElementaryTypeName","src":"6697:7:81","typeDescriptions":{}}},"id":22432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6697:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6658:49:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031323a50524f445543545f544f4b454e5f414c52454144595f534554","id":22434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6709:41:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_91cd09a8272bca29602366afa78499ab462a45026fab37c8b88437074a1814d2","typeString":"literal_string \"ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET\""},"value":"ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91cd09a8272bca29602366afa78499ab462a45026fab37c8b88437074a1814d2","typeString":"literal_string \"ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET\""}],"id":22422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6650:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6650:101:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22436,"nodeType":"ExpressionStatement","src":"6650:101:81"},{"assignments":[22439],"declarations":[{"constant":false,"id":22439,"mutability":"mutable","name":"component","nameLocation":"6785:9:81","nodeType":"VariableDeclaration","scope":22515,"src":"6774:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":22438,"nodeType":"UserDefinedTypeName","pathNode":{"id":22437,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"6774:10:81"},"referencedDeclaration":2988,"src":"6774:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":22444,"initialValue":{"arguments":[{"id":22442,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"6821:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22440,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"6797:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"6797:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":22443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6797:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"6774:57:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":22451,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22439,"src":"6874:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":22450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6866:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22449,"name":"address","nodeType":"ElementaryTypeName","src":"6866:7:81","typeDescriptions":{}}},"id":22452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6866:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22448,"name":"IProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"6857:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProduct_$3079_$","typeString":"type(contract IProduct)"}},"id":22453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6857:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"id":22454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getToken","nodeType":"MemberAccess","referencedDeclaration":3048,"src":"6857:37:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":22455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6857:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6849:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22446,"name":"address","nodeType":"ElementaryTypeName","src":"6849:7:81","typeDescriptions":{}}},"id":22456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6849:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":22457,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"6901:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6849:64:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031333a50524f445543545f544f4b454e5f414444524553535f4e4f545f4d41544348494e47","id":22459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6915:50:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_9defa563bbba994121b588e9e6ffee73848f6557b51cbbd6b857b473a53fa73e","typeString":"literal_string \"ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING\""},"value":"ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9defa563bbba994121b588e9e6ffee73848f6557b51cbbd6b857b473a53fa73e","typeString":"literal_string \"ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING\""}],"id":22445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6841:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6841:125:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22461,"nodeType":"ExpressionStatement","src":"6841:125:81"},{"assignments":[22463],"declarations":[{"constant":false,"id":22463,"mutability":"mutable","name":"riskpoolId","nameLocation":"6985:10:81","nodeType":"VariableDeclaration","scope":22515,"src":"6977:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22462,"name":"uint256","nodeType":"ElementaryTypeName","src":"6977:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22468,"initialValue":{"arguments":[{"id":22466,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"7026:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22464,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22237,"src":"6998:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":22465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskPoolForProduct","nodeType":"MemberAccess","referencedDeclaration":21014,"src":"6998:27:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":22467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6998:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6977:59:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":22472,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"7159:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":22474,"indexExpression":{"id":22473,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22463,"src":"7175:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7159:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":22471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7151:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22470,"name":"address","nodeType":"ElementaryTypeName","src":"7151:7:81","typeDescriptions":{}}},"id":22475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7151:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":22478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7199:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7191:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22476,"name":"address","nodeType":"ElementaryTypeName","src":"7191:7:81","typeDescriptions":{}}},"id":22479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7191:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7151:50:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":22483,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"7229:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":22485,"indexExpression":{"id":22484,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22463,"src":"7245:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7229:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":22482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7221:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22481,"name":"address","nodeType":"ElementaryTypeName","src":"7221:7:81","typeDescriptions":{}}},"id":22486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7221:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":22487,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"7261:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7221:52:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7151:122:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031343a5249534b504f4f4c5f544f4b454e5f414444524553535f4e4f545f4d414348494e47","id":22490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7292:50:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbf92c04d1a98b7ef606e69dd4b1bdfb97cdaa3f5e71e07471d88f1ddf906147","typeString":"literal_string \"ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING\""},"value":"ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbf92c04d1a98b7ef606e69dd4b1bdfb97cdaa3f5e71e07471d88f1ddf906147","typeString":"literal_string \"ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING\""}],"id":22469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7143:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7143:200:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22492,"nodeType":"ExpressionStatement","src":"7143:200:81"},{"expression":{"id":22499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22493,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"7362:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":22495,"indexExpression":{"id":22494,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"7378:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7362:26:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22497,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"7398:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22496,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8831,"src":"7391:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$8831_$","typeString":"type(contract IERC20)"}},"id":22498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7391:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"src":"7362:49:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":22500,"nodeType":"ExpressionStatement","src":"7362:49:81"},{"expression":{"id":22507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22501,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"7421:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":22503,"indexExpression":{"id":22502,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22463,"src":"7437:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7421:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22505,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"7458:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22504,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8831,"src":"7451:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$8831_$","typeString":"type(contract IERC20)"}},"id":22506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7451:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"src":"7421:50:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":22508,"nodeType":"ExpressionStatement","src":"7421:50:81"},{"eventCall":{"arguments":[{"id":22510,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"7514:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22511,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22463,"src":"7525:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22512,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"7537:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":22509,"name":"LogTreasuryProductTokenSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5729,"src":"7487:26:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,uint256,address)"}},"id":22513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7487:63:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22514,"nodeType":"EmitStatement","src":"7482:68:81"}]},"functionSelector":"cc9cf8cd","id":22516,"implemented":true,"kind":"function","modifiers":[{"id":22400,"modifierName":{"id":22399,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"6429:16:81"},"nodeType":"ModifierInvocation","src":"6429:16:81"},{"id":22402,"modifierName":{"id":22401,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6454:20:81"},"nodeType":"ModifierInvocation","src":"6454:20:81"}],"name":"setProductToken","nameLocation":"6338:15:81","nodeType":"FunctionDefinition","overrides":{"id":22398,"nodeType":"OverrideSpecifier","overrides":[],"src":"6412:8:81"},"parameters":{"id":22397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22394,"mutability":"mutable","name":"productId","nameLocation":"6362:9:81","nodeType":"VariableDeclaration","scope":22516,"src":"6354:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22393,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22396,"mutability":"mutable","name":"erc20Address","nameLocation":"6381:12:81","nodeType":"VariableDeclaration","scope":22516,"src":"6373:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22395,"name":"address","nodeType":"ElementaryTypeName","src":"6373:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6353:41:81"},"returnParameters":{"id":22403,"nodeType":"ParameterList","parameters":[],"src":"6479:0:81"},"scope":23615,"src":"6329:1228:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5850],"body":{"id":22544,"nodeType":"Block","src":"7706:222:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22527,"name":"instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22518,"src":"7724:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7757:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7749:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22528,"name":"address","nodeType":"ElementaryTypeName","src":"7749:7:81","typeDescriptions":{}}},"id":22531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7749:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7724:35:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031353a57414c4c45545f414444524553535f5a45524f","id":22533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7761:35:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_023e61203cb0be5307b17a41d4b69495f70210073b02aa48d79a82beee2c037a","typeString":"literal_string \"ERROR:TRS-015:WALLET_ADDRESS_ZERO\""},"value":"ERROR:TRS-015:WALLET_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_023e61203cb0be5307b17a41d4b69495f70210073b02aa48d79a82beee2c037a","typeString":"literal_string \"ERROR:TRS-015:WALLET_ADDRESS_ZERO\""}],"id":22526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7716:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7716:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22535,"nodeType":"ExpressionStatement","src":"7716:81:81"},{"expression":{"id":22538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22536,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"7807:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22537,"name":"instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22518,"src":"7832:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7807:46:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22539,"nodeType":"ExpressionStatement","src":"7807:46:81"},{"eventCall":{"arguments":[{"id":22541,"name":"instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22518,"src":"7899:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22540,"name":"LogTreasuryInstanceWalletSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5733,"src":"7869:28:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":22542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7869:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22543,"nodeType":"EmitStatement","src":"7864:57:81"}]},"functionSelector":"cab2504d","id":22545,"implemented":true,"kind":"function","modifiers":[{"id":22522,"modifierName":{"id":22521,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"7656:16:81"},"nodeType":"ModifierInvocation","src":"7656:16:81"},{"id":22524,"modifierName":{"id":22523,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"7681:20:81"},"nodeType":"ModifierInvocation","src":"7681:20:81"}],"name":"setInstanceWallet","nameLocation":"7572:17:81","nodeType":"FunctionDefinition","overrides":{"id":22520,"nodeType":"OverrideSpecifier","overrides":[],"src":"7639:8:81"},"parameters":{"id":22519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22518,"mutability":"mutable","name":"instanceWalletAddress","nameLocation":"7598:21:81","nodeType":"VariableDeclaration","scope":22545,"src":"7590:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22517,"name":"address","nodeType":"ElementaryTypeName","src":"7590:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7589:31:81"},"returnParameters":{"id":22525,"nodeType":"ParameterList","parameters":[],"src":"7706:0:81"},"scope":23615,"src":"7563:365:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5857],"body":{"id":22594,"nodeType":"Block","src":"8097:389:81","statements":[{"assignments":[22559],"declarations":[{"constant":false,"id":22559,"mutability":"mutable","name":"component","nameLocation":"8118:9:81","nodeType":"VariableDeclaration","scope":22594,"src":"8107:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":22558,"nodeType":"UserDefinedTypeName","pathNode":{"id":22557,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"8107:10:81"},"referencedDeclaration":2988,"src":"8107:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":22564,"initialValue":{"arguments":[{"id":22562,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22547,"src":"8154:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22560,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"8130:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"8130:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":22563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8130:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"8107:58:81"},{"expression":{"arguments":[{"arguments":[{"id":22568,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22547,"src":"8205:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22566,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"8183:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"8183:21:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8183:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031363a4e4f545f5249534b504f4f4c","id":22570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8218:28:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2929b40534bc3751b2a6ec3225ca6171f4a79ecde38ee6c1fce17106a98b0991","typeString":"literal_string \"ERROR:TRS-016:NOT_RISKPOOL\""},"value":"ERROR:TRS-016:NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2929b40534bc3751b2a6ec3225ca6171f4a79ecde38ee6c1fce17106a98b0991","typeString":"literal_string \"ERROR:TRS-016:NOT_RISKPOOL\""}],"id":22565,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8175:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8175:72:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22572,"nodeType":"ExpressionStatement","src":"8175:72:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22574,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22549,"src":"8265:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8298:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8290:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22575,"name":"address","nodeType":"ElementaryTypeName","src":"8290:7:81","typeDescriptions":{}}},"id":22578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8290:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8265:35:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031373a57414c4c45545f414444524553535f5a45524f","id":22580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8302:35:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_3acbd6322e617e55df208025743cb9bdef35beedf84134e8e69828378743af76","typeString":"literal_string \"ERROR:TRS-017:WALLET_ADDRESS_ZERO\""},"value":"ERROR:TRS-017:WALLET_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3acbd6322e617e55df208025743cb9bdef35beedf84134e8e69828378743af76","typeString":"literal_string \"ERROR:TRS-017:WALLET_ADDRESS_ZERO\""}],"id":22573,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8257:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8257:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22582,"nodeType":"ExpressionStatement","src":"8257:81:81"},{"expression":{"id":22587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22583,"name":"_riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22215,"src":"8348:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":22585,"indexExpression":{"id":22584,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22547,"src":"8364:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8348:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22586,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22549,"src":"8378:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8348:51:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22588,"nodeType":"ExpressionStatement","src":"8348:51:81"},{"eventCall":{"arguments":[{"id":22590,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22547,"src":"8445:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22591,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22549,"src":"8457:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":22589,"name":"LogTreasuryRiskpoolWalletSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5739,"src":"8415:28:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":22592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8415:64:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22593,"nodeType":"EmitStatement","src":"8410:69:81"}]},"functionSelector":"86039aed","id":22595,"implemented":true,"kind":"function","modifiers":[{"id":22553,"modifierName":{"id":22552,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"8047:16:81"},"nodeType":"ModifierInvocation","src":"8047:16:81"},{"id":22555,"modifierName":{"id":22554,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"8072:20:81"},"nodeType":"ModifierInvocation","src":"8072:20:81"}],"name":"setRiskpoolWallet","nameLocation":"7943:17:81","nodeType":"FunctionDefinition","overrides":{"id":22551,"nodeType":"OverrideSpecifier","overrides":[],"src":"8030:8:81"},"parameters":{"id":22550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22547,"mutability":"mutable","name":"riskpoolId","nameLocation":"7969:10:81","nodeType":"VariableDeclaration","scope":22595,"src":"7961:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22546,"name":"uint256","nodeType":"ElementaryTypeName","src":"7961:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22549,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"7989:21:81","nodeType":"VariableDeclaration","scope":22595,"src":"7981:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22548,"name":"address","nodeType":"ElementaryTypeName","src":"7981:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7960:51:81"},"returnParameters":{"id":22556,"nodeType":"ParameterList","parameters":[],"src":"8097:0:81"},"scope":23615,"src":"7934:552:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5871],"body":{"id":22641,"nodeType":"Block","src":"8744:494:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":22613,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"8783:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22611,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"8762:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"8762:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8762:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":22617,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"8821:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22615,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"8799:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"8799:21:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8799:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8762:71:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3032303a49445f4e4f545f50524f445543545f4f525f5249534b504f4f4c","id":22620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8835:42:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bade88963632687c264d794f9df0a7fbb1e4e45c72ac6b0eea83aa8d3c453de","typeString":"literal_string \"ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL\""},"value":"ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bade88963632687c264d794f9df0a7fbb1e4e45c72ac6b0eea83aa8d3c453de","typeString":"literal_string \"ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL\""}],"id":22610,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8754:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8754:124:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22622,"nodeType":"ExpressionStatement","src":"8754:124:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22624,"name":"fractionalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22601,"src":"8896:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":22625,"name":"FRACTIONAL_FEE_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22187,"src":"8913:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8896:35:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3032313a46524143494f4e414c5f4645455f544f4f5f424947","id":22627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8933:37:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_a583f75e567de5febc61daea2db74bc5d44cccb6bb5cd7ea41b386478b7592a0","typeString":"literal_string \"ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG\""},"value":"ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a583f75e567de5febc61daea2db74bc5d44cccb6bb5cd7ea41b386478b7592a0","typeString":"literal_string \"ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG\""}],"id":22623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8888:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8888:83:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22629,"nodeType":"ExpressionStatement","src":"8888:83:81"},{"expression":{"arguments":[{"id":22631,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"9019:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22632,"name":"fixedFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22599,"src":"9044:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22633,"name":"fractionalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22601,"src":"9066:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22634,"name":"feeCalculationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22603,"src":"9093:18:81","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":22635,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9125:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9125:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22637,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9179:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9179:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22630,"name":"FeeSpecification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"8989:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FeeSpecification_$5838_storage_ptr_$","typeString":"type(struct ITreasury.FeeSpecification storage pointer)"}},"id":22639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8989:241:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"functionReturnParameters":22609,"id":22640,"nodeType":"Return","src":"8982:248:81"}]},"functionSelector":"62f0ab55","id":22642,"implemented":true,"kind":"function","modifiers":[],"name":"createFeeSpecification","nameLocation":"8501:22:81","nodeType":"FunctionDefinition","overrides":{"id":22605,"nodeType":"OverrideSpecifier","overrides":[],"src":"8676:8:81"},"parameters":{"id":22604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22597,"mutability":"mutable","name":"componentId","nameLocation":"8541:11:81","nodeType":"VariableDeclaration","scope":22642,"src":"8533:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22596,"name":"uint256","nodeType":"ElementaryTypeName","src":"8533:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22599,"mutability":"mutable","name":"fixedFee","nameLocation":"8570:8:81","nodeType":"VariableDeclaration","scope":22642,"src":"8562:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22598,"name":"uint256","nodeType":"ElementaryTypeName","src":"8562:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22601,"mutability":"mutable","name":"fractionalFee","nameLocation":"8596:13:81","nodeType":"VariableDeclaration","scope":22642,"src":"8588:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22600,"name":"uint256","nodeType":"ElementaryTypeName","src":"8588:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22603,"mutability":"mutable","name":"feeCalculationData","nameLocation":"8634:18:81","nodeType":"VariableDeclaration","scope":22642,"src":"8619:33:81","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":22602,"name":"bytes","nodeType":"ElementaryTypeName","src":"8619:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8523:135:81"},"returnParameters":{"id":22609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22642,"src":"8715:23:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":22607,"nodeType":"UserDefinedTypeName","pathNode":{"id":22606,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"8715:16:81"},"referencedDeclaration":5838,"src":"8715:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"8714:25:81"},"scope":23615,"src":"8492:746:81","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5877],"body":{"id":22699,"nodeType":"Block","src":"9388:604:81","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":22656,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9427:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"9427:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22654,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"9406:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"9406:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9406:41:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3032323a4e4f545f50524f44554354","id":22659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9449:27:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_002d2121ea321e9dc7af161d487859644848c89f417a8b4f6cd3c64e88216019","typeString":"literal_string \"ERROR:TRS-022:NOT_PRODUCT\""},"value":"ERROR:TRS-022:NOT_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_002d2121ea321e9dc7af161d487859644848c89f417a8b4f6cd3c64e88216019","typeString":"literal_string \"ERROR:TRS-022:NOT_PRODUCT\""}],"id":22653,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9398:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9398:79:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22661,"nodeType":"ExpressionStatement","src":"9398:79:81"},{"assignments":[22663],"declarations":[{"constant":false,"id":22663,"mutability":"mutable","name":"originalCreatedAt","nameLocation":"9552:17:81","nodeType":"VariableDeclaration","scope":22699,"src":"9544:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22662,"name":"uint256","nodeType":"ElementaryTypeName","src":"9544:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22669,"initialValue":{"expression":{"baseExpression":{"id":22664,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"9572:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22667,"indexExpression":{"expression":{"id":22665,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9578:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"9578:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9572:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"9572:36:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9544:64:81"},{"expression":{"id":22675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22670,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"9618:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22673,"indexExpression":{"expression":{"id":22671,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9624:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"9624:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9618:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22674,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9647:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"src":"9618:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22676,"nodeType":"ExpressionStatement","src":"9618:36:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22677,"name":"originalCreatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22663,"src":"9740:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9760:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9740:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22689,"nodeType":"IfStatement","src":"9736:108:81","trueBody":{"id":22688,"nodeType":"Block","src":"9763:81:81","statements":[{"expression":{"id":22686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":22680,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"9777:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22683,"indexExpression":{"expression":{"id":22681,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9783:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"9783:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9777:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"9777:36:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22685,"name":"originalCreatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22663,"src":"9816:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9777:56:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22687,"nodeType":"ExpressionStatement","src":"9777:56:81"}]}},{"eventCall":{"arguments":[{"expression":{"id":22691,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9899:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"9899:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22693,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9932:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fixedFee","nodeType":"MemberAccess","referencedDeclaration":5829,"src":"9932:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22695,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9963:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fractionalFee","nodeType":"MemberAccess","referencedDeclaration":5831,"src":"9963:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22690,"name":"LogTreasuryPremiumFeesSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5747,"src":"9859:25:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":22697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9859:126:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22698,"nodeType":"EmitStatement","src":"9854:131:81"}]},"functionSelector":"01132a7f","id":22700,"implemented":true,"kind":"function","modifiers":[{"id":22649,"modifierName":{"id":22648,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"9338:16:81"},"nodeType":"ModifierInvocation","src":"9338:16:81"},{"id":22651,"modifierName":{"id":22650,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"9363:20:81"},"nodeType":"ModifierInvocation","src":"9363:20:81"}],"name":"setPremiumFees","nameLocation":"9253:14:81","nodeType":"FunctionDefinition","overrides":{"id":22647,"nodeType":"OverrideSpecifier","overrides":[],"src":"9321:8:81"},"parameters":{"id":22646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22645,"mutability":"mutable","name":"feeSpec","nameLocation":"9294:7:81","nodeType":"VariableDeclaration","scope":22700,"src":"9268:33:81","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":22644,"nodeType":"UserDefinedTypeName","pathNode":{"id":22643,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"9268:16:81"},"referencedDeclaration":5838,"src":"9268:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"9267:35:81"},"returnParameters":{"id":22652,"nodeType":"ParameterList","parameters":[],"src":"9388:0:81"},"scope":23615,"src":"9244:748:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5883],"body":{"id":22757,"nodeType":"Block","src":"10143:598:81","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":22714,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10183:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"10183:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22712,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"10161:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"10161:21:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10161:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3032333a4e4f545f5249534b504f4f4c","id":22717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10205:28:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_51470dc3834195a38b6a47115f9352e7c4e977a95b9739b912cca2a00008681e","typeString":"literal_string \"ERROR:TRS-023:NOT_RISKPOOL\""},"value":"ERROR:TRS-023:NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51470dc3834195a38b6a47115f9352e7c4e977a95b9739b912cca2a00008681e","typeString":"literal_string \"ERROR:TRS-023:NOT_RISKPOOL\""}],"id":22711,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10153:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10153:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22719,"nodeType":"ExpressionStatement","src":"10153:81:81"},{"assignments":[22721],"declarations":[{"constant":false,"id":22721,"mutability":"mutable","name":"originalCreatedAt","nameLocation":"10301:17:81","nodeType":"VariableDeclaration","scope":22757,"src":"10293:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22720,"name":"uint256","nodeType":"ElementaryTypeName","src":"10293:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22727,"initialValue":{"expression":{"baseExpression":{"id":22722,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"10321:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22725,"indexExpression":{"expression":{"id":22723,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10327:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"10327:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10321:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"10321:36:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10293:64:81"},{"expression":{"id":22733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22728,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"10367:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22731,"indexExpression":{"expression":{"id":22729,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10373:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"10373:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10367:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22732,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10396:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"src":"10367:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22734,"nodeType":"ExpressionStatement","src":"10367:36:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22735,"name":"originalCreatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22721,"src":"10489:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10509:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10489:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22747,"nodeType":"IfStatement","src":"10485:108:81","trueBody":{"id":22746,"nodeType":"Block","src":"10512:81:81","statements":[{"expression":{"id":22744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":22738,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"10526:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22741,"indexExpression":{"expression":{"id":22739,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10532:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"10532:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10526:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"10526:36:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22743,"name":"originalCreatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22721,"src":"10565:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10526:56:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22745,"nodeType":"ExpressionStatement","src":"10526:56:81"}]}},{"eventCall":{"arguments":[{"expression":{"id":22749,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10648:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"10648:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22751,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10681:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fixedFee","nodeType":"MemberAccess","referencedDeclaration":5829,"src":"10681:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22753,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10712:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fractionalFee","nodeType":"MemberAccess","referencedDeclaration":5831,"src":"10712:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22748,"name":"LogTreasuryCapitalFeesSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5755,"src":"10608:25:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":22755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10608:126:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22756,"nodeType":"EmitStatement","src":"10603:131:81"}]},"functionSelector":"8ca946aa","id":22758,"implemented":true,"kind":"function","modifiers":[{"id":22707,"modifierName":{"id":22706,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"10093:16:81"},"nodeType":"ModifierInvocation","src":"10093:16:81"},{"id":22709,"modifierName":{"id":22708,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"10118:20:81"},"nodeType":"ModifierInvocation","src":"10118:20:81"}],"name":"setCapitalFees","nameLocation":"10008:14:81","nodeType":"FunctionDefinition","overrides":{"id":22705,"nodeType":"OverrideSpecifier","overrides":[],"src":"10076:8:81"},"parameters":{"id":22704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22703,"mutability":"mutable","name":"feeSpec","nameLocation":"10049:7:81","nodeType":"VariableDeclaration","scope":22758,"src":"10023:33:81","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":22702,"nodeType":"UserDefinedTypeName","pathNode":{"id":22701,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"10023:16:81"},"referencedDeclaration":5838,"src":"10023:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"10022:35:81"},"returnParameters":{"id":22710,"nodeType":"ParameterList","parameters":[],"src":"10143:0:81"},"scope":23615,"src":"9999:742:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22797,"nodeType":"Block","src":"10894:251:81","statements":[{"assignments":[22771],"declarations":[{"constant":false,"id":22771,"mutability":"mutable","name":"feeSpec","nameLocation":"10928:7:81","nodeType":"VariableDeclaration","scope":22797,"src":"10904:31:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":22770,"nodeType":"UserDefinedTypeName","pathNode":{"id":22769,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"10904:16:81"},"referencedDeclaration":5838,"src":"10904:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"id":22775,"initialValue":{"arguments":[{"id":22773,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22760,"src":"10958:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22772,"name":"getFeeSpecification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23463,"src":"10938:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_FeeSpecification_$5838_memory_ptr_$","typeString":"function (uint256) view returns (struct ITreasury.FeeSpecification memory)"}},"id":22774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10938:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"nodeType":"VariableDeclarationStatement","src":"10904:66:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22777,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22771,"src":"10988:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":22778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"10988:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11008:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10988:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3032343a4645455f535045435f554e444546494e4544","id":22781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11011:34:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_f3bfd224a81d9a321038f24de2588f8f485d74dd9e38c360b2708398c4728895","typeString":"literal_string \"ERROR:TRS-024:FEE_SPEC_UNDEFINED\""},"value":"ERROR:TRS-024:FEE_SPEC_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f3bfd224a81d9a321038f24de2588f8f485d74dd9e38c360b2708398c4728895","typeString":"literal_string \"ERROR:TRS-024:FEE_SPEC_UNDEFINED\""}],"id":22776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10980:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10980:66:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22783,"nodeType":"ExpressionStatement","src":"10980:66:81"},{"expression":{"id":22789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22784,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22765,"src":"11056:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22786,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22771,"src":"11082:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},{"id":22787,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22762,"src":"11091:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22785,"name":"_calculateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23573,"src":"11068:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_FeeSpecification_$5838_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ITreasury.FeeSpecification memory,uint256) pure returns (uint256)"}},"id":22788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11068:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11056:42:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22790,"nodeType":"ExpressionStatement","src":"11056:42:81"},{"expression":{"id":22795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22791,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22767,"src":"11108:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22792,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22762,"src":"11120:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":22793,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22765,"src":"11129:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11120:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11108:30:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22796,"nodeType":"ExpressionStatement","src":"11108:30:81"}]},"functionSelector":"34e73122","id":22798,"implemented":true,"kind":"function","modifiers":[],"name":"calculateFee","nameLocation":"10757:12:81","nodeType":"FunctionDefinition","parameters":{"id":22763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22760,"mutability":"mutable","name":"componentId","nameLocation":"10778:11:81","nodeType":"VariableDeclaration","scope":22798,"src":"10770:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22759,"name":"uint256","nodeType":"ElementaryTypeName","src":"10770:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22762,"mutability":"mutable","name":"amount","nameLocation":"10799:6:81","nodeType":"VariableDeclaration","scope":22798,"src":"10791:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22761,"name":"uint256","nodeType":"ElementaryTypeName","src":"10791:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10769:37:81"},"returnParameters":{"id":22768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22765,"mutability":"mutable","name":"feeAmount","nameLocation":"10860:9:81","nodeType":"VariableDeclaration","scope":22798,"src":"10852:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22764,"name":"uint256","nodeType":"ElementaryTypeName","src":"10852:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22767,"mutability":"mutable","name":"netAmount","nameLocation":"10879:9:81","nodeType":"VariableDeclaration","scope":22798,"src":"10871:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22766,"name":"uint256","nodeType":"ElementaryTypeName","src":"10871:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10851:38:81"},"scope":23615,"src":"10748:397:81","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5894],"body":{"id":22846,"nodeType":"Block","src":"11695:313:81","statements":[{"assignments":[22819],"declarations":[{"constant":false,"id":22819,"mutability":"mutable","name":"policy","nameLocation":"11727:6:81","nodeType":"VariableDeclaration","scope":22846,"src":"11705:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":22818,"nodeType":"UserDefinedTypeName","pathNode":{"id":22817,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"11705:14:81"},"referencedDeclaration":5282,"src":"11705:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":22824,"initialValue":{"arguments":[{"id":22822,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22800,"src":"11755:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22820,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"11737:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":22821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"11737:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":22823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11737:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"11705:60:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22825,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22819,"src":"11780:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"11780:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":22827,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22819,"src":"11807:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"11807:28:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11780:55:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22845,"nodeType":"IfStatement","src":"11776:226:81","trueBody":{"id":22844,"nodeType":"Block","src":"11837:165:81","statements":[{"expression":{"id":22842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":22830,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22809,"src":"11852:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22831,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22811,"src":"11861:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22832,"name":"netPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22813,"src":"11872:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22833,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11851:38:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22835,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22800,"src":"11924:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22836,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22819,"src":"11935:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"11935:28:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":22838,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22819,"src":"11966:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"11966:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11935:55:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22834,"name":"processPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23002,"src":"11909:14:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (bool,uint256,uint256)"}},"id":22841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11909:82:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"11851:140:81","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22843,"nodeType":"ExpressionStatement","src":"11851:140:81"}]}}]},"functionSelector":"5ecc078e","id":22847,"implemented":true,"kind":"function","modifiers":[{"id":22804,"modifierName":{"id":22803,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"11515:16:81"},"nodeType":"ModifierInvocation","src":"11515:16:81"},{"arguments":[{"hexValue":"5472656173757279","id":22806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11555:10:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"id":22807,"modifierName":{"id":22805,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"11540:14:81"},"nodeType":"ModifierInvocation","src":"11540:26:81"}],"name":"processPremium","nameLocation":"11445:14:81","nodeType":"FunctionDefinition","overrides":{"id":22802,"nodeType":"OverrideSpecifier","overrides":[],"src":"11497:8:81"},"parameters":{"id":22801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22800,"mutability":"mutable","name":"processId","nameLocation":"11468:9:81","nodeType":"VariableDeclaration","scope":22847,"src":"11460:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11460:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11459:19:81"},"returnParameters":{"id":22814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22809,"mutability":"mutable","name":"success","nameLocation":"11601:7:81","nodeType":"VariableDeclaration","scope":22847,"src":"11596:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22808,"name":"bool","nodeType":"ElementaryTypeName","src":"11596:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22811,"mutability":"mutable","name":"feeAmount","nameLocation":"11631:9:81","nodeType":"VariableDeclaration","scope":22847,"src":"11623:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22810,"name":"uint256","nodeType":"ElementaryTypeName","src":"11623:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22813,"mutability":"mutable","name":"netPremiumAmount","nameLocation":"11663:16:81","nodeType":"VariableDeclaration","scope":22847,"src":"11655:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22812,"name":"uint256","nodeType":"ElementaryTypeName","src":"11655:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11582:107:81"},"scope":23615,"src":"11436:572:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5907],"body":{"id":23001,"nodeType":"Block","src":"12598:1517:81","statements":[{"assignments":[22875],"declarations":[{"constant":false,"id":22875,"mutability":"mutable","name":"policy","nameLocation":"12630:6:81","nodeType":"VariableDeclaration","scope":23001,"src":"12608:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":22874,"nodeType":"UserDefinedTypeName","pathNode":{"id":22873,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"12608:14:81"},"referencedDeclaration":5282,"src":"12608:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":22880,"initialValue":{"arguments":[{"id":22878,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22849,"src":"12658:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22876,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"12640:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":22877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"12640:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":22879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12640:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"12608:60:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22882,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22875,"src":"12699:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"12699:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":22884,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22851,"src":"12726:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12699:33:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":22886,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22875,"src":"12736:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"12736:28:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12699:65:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3033303a414d4f554e545f544f4f5f424947","id":22889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12779:30:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_61e1f4ff42e3123af58f70ed814e76c339065814b9eabd9415d5cb832ae5bb26","typeString":"literal_string \"ERROR:TRS-030:AMOUNT_TOO_BIG\""},"value":"ERROR:TRS-030:AMOUNT_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61e1f4ff42e3123af58f70ed814e76c339065814b9eabd9415d5cb832ae5bb26","typeString":"literal_string \"ERROR:TRS-030:AMOUNT_TOO_BIG\""}],"id":22881,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12678:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12678:141:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22891,"nodeType":"ExpressionStatement","src":"12678:141:81"},{"assignments":[22896],"declarations":[{"constant":false,"id":22896,"mutability":"mutable","name":"metadata","nameLocation":"12854:8:81","nodeType":"VariableDeclaration","scope":23001,"src":"12830:32:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":22895,"nodeType":"UserDefinedTypeName","pathNode":{"id":22894,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"12830:16:81"},"referencedDeclaration":5248,"src":"12830:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":22901,"initialValue":{"arguments":[{"id":22899,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22849,"src":"12885:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22897,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"12865:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":22898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"12865:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":22900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12865:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"12830:65:81"},{"expression":{"id":22910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":22902,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22867,"src":"12906:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22903,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22869,"src":"12917:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22904,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12905:22:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":22906,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"12956:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"12956:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22908,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22851,"src":"12976:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22905,"name":"calculateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22798,"src":"12943:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256,uint256)"}},"id":22909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12943:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12905:78:81","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22911,"nodeType":"ExpressionStatement","src":"12905:78:81"},{"assignments":[22914],"declarations":[{"constant":false,"id":22914,"mutability":"mutable","name":"token","nameLocation":"13055:5:81","nodeType":"VariableDeclaration","scope":23001,"src":"13048:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":22913,"nodeType":"UserDefinedTypeName","pathNode":{"id":22912,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"13048:6:81"},"referencedDeclaration":8831,"src":"13048:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"id":22919,"initialValue":{"arguments":[{"expression":{"id":22916,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13081:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"13081:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22915,"name":"getComponentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23449,"src":"13063:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IERC20_$8831_$","typeString":"function (uint256) view returns (contract IERC20)"}},"id":22918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13063:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"13048:52:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":22922,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13130:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"13130:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":22926,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"13154:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}],"id":22925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13146:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22924,"name":"address","nodeType":"ElementaryTypeName","src":"13146:7:81","typeDescriptions":{}}},"id":22927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13146:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22920,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22914,"src":"13114:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":22921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"13114:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":22928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13114:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":22929,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22851,"src":"13163:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13114:55:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22941,"nodeType":"IfStatement","src":"13110:153:81","trueBody":{"id":22940,"nodeType":"Block","src":"13171:92:81","statements":[{"expression":{"id":22933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22931,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13185:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":22932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13195:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"13185:15:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22934,"nodeType":"ExpressionStatement","src":"13185:15:81"},{"expression":{"components":[{"id":22935,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13222:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22936,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22867,"src":"13231:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22937,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22869,"src":"13242:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13221:31:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"functionReturnParameters":22870,"id":22939,"nodeType":"Return","src":"13214:38:81"}]}},{"expression":{"id":22951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22942,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13305:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22945,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22914,"src":"13350:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"expression":{"id":22946,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13357:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"13357:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22948,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"13373:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22949,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22867,"src":"13397:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22943,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"13315:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":22944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"13315:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":22950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13315:92:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13305:102:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22952,"nodeType":"ExpressionStatement","src":"13305:102:81"},{"eventCall":{"arguments":[{"expression":{"id":22954,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13449:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"13449:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22956,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"13465:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22957,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22867,"src":"13489:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22953,"name":"LogTreasuryFeesTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5787,"src":"13422:26:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":22958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13422:77:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22959,"nodeType":"EmitStatement","src":"13417:82:81"},{"expression":{"arguments":[{"id":22961,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13517:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3033313a4645455f5452414e534645525f4641494c4544","id":22962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13526:35:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c64a6a11b68791be2b7fc40e3fe3e71aed151a6ed457ee8c919ac899d8679ba6","typeString":"literal_string \"ERROR:TRS-031:FEE_TRANSFER_FAILED\""},"value":"ERROR:TRS-031:FEE_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c64a6a11b68791be2b7fc40e3fe3e71aed151a6ed457ee8c919ac899d8679ba6","typeString":"literal_string \"ERROR:TRS-031:FEE_TRANSFER_FAILED\""}],"id":22960,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13509:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13509:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22964,"nodeType":"ExpressionStatement","src":"13509:53:81"},{"assignments":[22966,22968],"declarations":[{"constant":false,"id":22966,"mutability":"mutable","name":"riskpoolId","nameLocation":"13699:10:81","nodeType":"VariableDeclaration","scope":23001,"src":"13691:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22965,"name":"uint256","nodeType":"ElementaryTypeName","src":"13691:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22968,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"13719:21:81","nodeType":"VariableDeclaration","scope":23001,"src":"13711:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22967,"name":"address","nodeType":"ElementaryTypeName","src":"13711:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":22972,"initialValue":{"arguments":[{"id":22970,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22849,"src":"13763:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":22969,"name":"_getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23614,"src":"13744:18:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$_t_address_$","typeString":"function (bytes32) view returns (uint256,address)"}},"id":22971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13744:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"nodeType":"VariableDeclarationStatement","src":"13690:83:81"},{"expression":{"id":22982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22973,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13783:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22976,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22914,"src":"13828:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"expression":{"id":22977,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13835:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"13835:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22979,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22968,"src":"13851:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22980,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22869,"src":"13874:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22974,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"13793:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":22975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"13793:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":22981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13793:91:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13783:101:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22983,"nodeType":"ExpressionStatement","src":"13783:101:81"},{"eventCall":{"arguments":[{"expression":{"id":22985,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13930:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"13930:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22987,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22968,"src":"13946:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22988,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22869,"src":"13969:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22984,"name":"LogTreasuryPremiumTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5763,"src":"13900:29:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":22989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13900:79:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22990,"nodeType":"EmitStatement","src":"13895:84:81"},{"expression":{"arguments":[{"id":22992,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13997:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3033323a5052454d49554d5f5452414e534645525f4641494c4544","id":22993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14006:39:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_5cf18c155db3e0e44074585a9cca469fe44a6111772a61c46ab85216052cb52e","typeString":"literal_string \"ERROR:TRS-032:PREMIUM_TRANSFER_FAILED\""},"value":"ERROR:TRS-032:PREMIUM_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5cf18c155db3e0e44074585a9cca469fe44a6111772a61c46ab85216052cb52e","typeString":"literal_string \"ERROR:TRS-032:PREMIUM_TRANSFER_FAILED\""}],"id":22991,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13989:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13989:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22995,"nodeType":"ExpressionStatement","src":"13989:57:81"},{"eventCall":{"arguments":[{"id":22997,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22849,"src":"14090:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22998,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22851,"src":"14101:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22996,"name":"LogTreasuryPremiumProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5801,"src":"14062:27:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":22999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14062:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23000,"nodeType":"EmitStatement","src":"14057:51:81"}]},"functionSelector":"02108268","id":23002,"implemented":true,"kind":"function","modifiers":[{"id":22855,"modifierName":{"id":22854,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"12344:16:81"},"nodeType":"ModifierInvocation","src":"12344:16:81"},{"id":22857,"modifierName":{"id":22856,"name":"instanceWalletDefined","nodeType":"IdentifierPath","referencedDeclaration":22251,"src":"12369:21:81"},"nodeType":"ModifierInvocation","src":"12369:21:81"},{"arguments":[{"id":22859,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22849,"src":"12431:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":22860,"modifierName":{"id":22858,"name":"riskpoolWalletDefinedForProcess","nodeType":"IdentifierPath","referencedDeclaration":22275,"src":"12399:31:81"},"nodeType":"ModifierInvocation","src":"12399:42:81"},{"arguments":[{"hexValue":"5472656173757279","id":22862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12465:10:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"id":22863,"modifierName":{"id":22861,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"12450:14:81"},"nodeType":"ModifierInvocation","src":"12450:26:81"}],"name":"processPremium","nameLocation":"12260:14:81","nodeType":"FunctionDefinition","overrides":{"id":22853,"nodeType":"OverrideSpecifier","overrides":[],"src":"12326:8:81"},"parameters":{"id":22852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22849,"mutability":"mutable","name":"processId","nameLocation":"12283:9:81","nodeType":"VariableDeclaration","scope":23002,"src":"12275:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12275:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22851,"mutability":"mutable","name":"amount","nameLocation":"12302:6:81","nodeType":"VariableDeclaration","scope":23002,"src":"12294:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22850,"name":"uint256","nodeType":"ElementaryTypeName","src":"12294:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12274:35:81"},"returnParameters":{"id":22870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22865,"mutability":"mutable","name":"success","nameLocation":"12511:7:81","nodeType":"VariableDeclaration","scope":23002,"src":"12506:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22864,"name":"bool","nodeType":"ElementaryTypeName","src":"12506:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22867,"mutability":"mutable","name":"feeAmount","nameLocation":"12541:9:81","nodeType":"VariableDeclaration","scope":23002,"src":"12533:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22866,"name":"uint256","nodeType":"ElementaryTypeName","src":"12533:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22869,"mutability":"mutable","name":"netAmount","nameLocation":"12573:9:81","nodeType":"VariableDeclaration","scope":23002,"src":"12565:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22868,"name":"uint256","nodeType":"ElementaryTypeName","src":"12565:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12492:100:81"},"scope":23615,"src":"12251:1864:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5918],"body":{"id":23129,"nodeType":"Block","src":"14448:1123:81","statements":[{"assignments":[23028],"declarations":[{"constant":false,"id":23028,"mutability":"mutable","name":"metadata","nameLocation":"14482:8:81","nodeType":"VariableDeclaration","scope":23129,"src":"14458:32:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":23027,"nodeType":"UserDefinedTypeName","pathNode":{"id":23026,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"14458:16:81"},"referencedDeclaration":5248,"src":"14458:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":23033,"initialValue":{"arguments":[{"id":23031,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23004,"src":"14513:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":23029,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"14493:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":23030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"14493:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":23032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14493:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"14458:65:81"},{"assignments":[23036],"declarations":[{"constant":false,"id":23036,"mutability":"mutable","name":"token","nameLocation":"14540:5:81","nodeType":"VariableDeclaration","scope":23129,"src":"14533:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":23035,"nodeType":"UserDefinedTypeName","pathNode":{"id":23034,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"14533:6:81"},"referencedDeclaration":8831,"src":"14533:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"id":23041,"initialValue":{"arguments":[{"expression":{"id":23038,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23028,"src":"14566:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":23039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"14566:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23037,"name":"getComponentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23449,"src":"14548:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IERC20_$8831_$","typeString":"function (uint256) view returns (contract IERC20)"}},"id":23040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14548:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"14533:52:81"},{"assignments":[23043,23045],"declarations":[{"constant":false,"id":23043,"mutability":"mutable","name":"riskpoolId","nameLocation":"14604:10:81","nodeType":"VariableDeclaration","scope":23129,"src":"14596:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23042,"name":"uint256","nodeType":"ElementaryTypeName","src":"14596:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23045,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"14624:21:81","nodeType":"VariableDeclaration","scope":23129,"src":"14616:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23044,"name":"address","nodeType":"ElementaryTypeName","src":"14616:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23049,"initialValue":{"arguments":[{"id":23047,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23004,"src":"14668:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":23046,"name":"_getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23614,"src":"14649:18:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$_t_address_$","typeString":"function (bytes32) view returns (uint256,address)"}},"id":23048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14649:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"nodeType":"VariableDeclarationStatement","src":"14595:83:81"},{"assignments":[23054],"declarations":[{"constant":false,"id":23054,"mutability":"mutable","name":"payout","nameLocation":"14711:6:81","nodeType":"VariableDeclaration","scope":23129,"src":"14689:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":23053,"nodeType":"UserDefinedTypeName","pathNode":{"id":23052,"name":"IPolicy.Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"14689:14:81"},"referencedDeclaration":5310,"src":"14689:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"id":23060,"initialValue":{"arguments":[{"id":23057,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23004,"src":"14739:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":23058,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23006,"src":"14750:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23055,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"14721:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":23056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPayout","nodeType":"MemberAccess","referencedDeclaration":19941,"src":"14721:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Payout_$5310_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Payout memory)"}},"id":23059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14721:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"nodeType":"VariableDeclarationStatement","src":"14689:70:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23064,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23045,"src":"14806:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23062,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23036,"src":"14790:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":8788,"src":"14790:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":23065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14790:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":23066,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"14832:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"14832:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14790:55:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3034323a5249534b504f4f4c5f57414c4c45545f42414c414e43455f544f4f5f534d414c4c","id":23069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14860:49:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_bbbd206bf526f712f36d054d860aea94d102517fedd4615662eb1c115a60beea","typeString":"literal_string \"ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL\""},"value":"ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bbbd206bf526f712f36d054d860aea94d102517fedd4615662eb1c115a60beea","typeString":"literal_string \"ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL\""}],"id":23061,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14769:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14769:150:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23071,"nodeType":"ExpressionStatement","src":"14769:150:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23075,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23045,"src":"14966:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":23078,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"14997:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}],"id":23077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14989:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23076,"name":"address","nodeType":"ElementaryTypeName","src":"14989:7:81","typeDescriptions":{}}},"id":23079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14989:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23073,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23036,"src":"14950:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"14950:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":23080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14950:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":23081,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"15007:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"15007:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14950:70:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3034333a5041594f55545f414c4c4f57414e43455f544f4f5f534d414c4c","id":23084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15035:42:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e9183e17ad533b95e8b637459b508b75172f9edd7e8c99c80d386496a06de75","typeString":"literal_string \"ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL\""},"value":"ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e9183e17ad533b95e8b637459b508b75172f9edd7e8c99c80d386496a06de75","typeString":"literal_string \"ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL\""}],"id":23072,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14929:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14929:158:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23086,"nodeType":"ExpressionStatement","src":"14929:158:81"},{"assignments":[23088],"declarations":[{"constant":false,"id":23088,"mutability":"mutable","name":"success","nameLocation":"15145:7:81","nodeType":"VariableDeclaration","scope":23129,"src":"15140:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23087,"name":"bool","nodeType":"ElementaryTypeName","src":"15140:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":23098,"initialValue":{"arguments":[{"id":23091,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23036,"src":"15190:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":23092,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23045,"src":"15197:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23093,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23028,"src":"15220:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":23094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"15220:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23095,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"15236:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"15236:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23089,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"15155:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":23090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"15155:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":23097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15155:95:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"15140:110:81"},{"expression":{"id":23101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23099,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23020,"src":"15260:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":23100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15272:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15260:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23102,"nodeType":"ExpressionStatement","src":"15260:13:81"},{"expression":{"id":23106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23103,"name":"netPayoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23022,"src":"15283:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23104,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"15301:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"15301:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15283:31:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23107,"nodeType":"ExpressionStatement","src":"15283:31:81"},{"eventCall":{"arguments":[{"id":23109,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23045,"src":"15359:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23110,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23028,"src":"15382:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":23111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"15382:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23112,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"15398:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"15398:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23108,"name":"LogTreasuryPayoutTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5771,"src":"15330:28:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15330:82:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23115,"nodeType":"EmitStatement","src":"15325:87:81"},{"expression":{"arguments":[{"id":23117,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23088,"src":"15430:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3034343a5041594f55545f5452414e534645525f4641494c4544","id":23118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15439:38:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_b8f0baf95c395dce72ff03341babefe990689bb1ce08b121a2a99bc20faec980","typeString":"literal_string \"ERROR:TRS-044:PAYOUT_TRANSFER_FAILED\""},"value":"ERROR:TRS-044:PAYOUT_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b8f0baf95c395dce72ff03341babefe990689bb1ce08b121a2a99bc20faec980","typeString":"literal_string \"ERROR:TRS-044:PAYOUT_TRANSFER_FAILED\""}],"id":23116,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15422:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15422:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23120,"nodeType":"ExpressionStatement","src":"15422:56:81"},{"eventCall":{"arguments":[{"id":23122,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"15521:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":23123,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23028,"src":"15534:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":23124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"15534:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23125,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"15550:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"15550:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23121,"name":"LogTreasuryPayoutProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5809,"src":"15494:26:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":23127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15494:70:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23128,"nodeType":"EmitStatement","src":"15489:75:81"}]},"functionSelector":"fe64372b","id":23130,"implemented":true,"kind":"function","modifiers":[{"id":23010,"modifierName":{"id":23009,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"14217:16:81"},"nodeType":"ModifierInvocation","src":"14217:16:81"},{"id":23012,"modifierName":{"id":23011,"name":"instanceWalletDefined","nodeType":"IdentifierPath","referencedDeclaration":22251,"src":"14242:21:81"},"nodeType":"ModifierInvocation","src":"14242:21:81"},{"arguments":[{"id":23014,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23004,"src":"14304:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":23015,"modifierName":{"id":23013,"name":"riskpoolWalletDefinedForProcess","nodeType":"IdentifierPath","referencedDeclaration":22275,"src":"14272:31:81"},"nodeType":"ModifierInvocation","src":"14272:42:81"},{"arguments":[{"hexValue":"5472656173757279","id":23017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14338:10:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"id":23018,"modifierName":{"id":23016,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"14323:14:81"},"nodeType":"ModifierInvocation","src":"14323:26:81"}],"name":"processPayout","nameLocation":"14131:13:81","nodeType":"FunctionDefinition","overrides":{"id":23008,"nodeType":"OverrideSpecifier","overrides":[],"src":"14200:8:81"},"parameters":{"id":23007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23004,"mutability":"mutable","name":"processId","nameLocation":"14153:9:81","nodeType":"VariableDeclaration","scope":23130,"src":"14145:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23003,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14145:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":23006,"mutability":"mutable","name":"payoutId","nameLocation":"14172:8:81","nodeType":"VariableDeclaration","scope":23130,"src":"14164:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23005,"name":"uint256","nodeType":"ElementaryTypeName","src":"14164:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14144:37:81"},"returnParameters":{"id":23023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23020,"mutability":"mutable","name":"feeAmount","nameLocation":"14387:9:81","nodeType":"VariableDeclaration","scope":23130,"src":"14379:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23019,"name":"uint256","nodeType":"ElementaryTypeName","src":"14379:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23022,"mutability":"mutable","name":"netPayoutAmount","nameLocation":"14418:15:81","nodeType":"VariableDeclaration","scope":23130,"src":"14410:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23021,"name":"uint256","nodeType":"ElementaryTypeName","src":"14410:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14365:78:81"},"scope":23615,"src":"14122:1449:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5929],"body":{"id":23285,"nodeType":"Block","src":"15901:1640:81","statements":[{"assignments":[23155],"declarations":[{"constant":false,"id":23155,"mutability":"mutable","name":"bundle","nameLocation":"15978:6:81","nodeType":"VariableDeclaration","scope":23285,"src":"15956:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":23154,"nodeType":"UserDefinedTypeName","pathNode":{"id":23153,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"15956:14:81"},"referencedDeclaration":4936,"src":"15956:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":23160,"initialValue":{"arguments":[{"id":23158,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23132,"src":"16005:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23156,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"15987:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":23157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"15987:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":23159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15987:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"15956:58:81"},{"assignments":[23162],"declarations":[{"constant":false,"id":23162,"mutability":"mutable","name":"bundleOwner","nameLocation":"16032:11:81","nodeType":"VariableDeclaration","scope":23285,"src":"16024:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23161,"name":"address","nodeType":"ElementaryTypeName","src":"16024:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23167,"initialValue":{"arguments":[{"id":23165,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23132,"src":"16063:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23163,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"16046:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":23164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOwner","nodeType":"MemberAccess","referencedDeclaration":16668,"src":"16046:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":23166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16046:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16024:48:81"},{"assignments":[23170],"declarations":[{"constant":false,"id":23170,"mutability":"mutable","name":"feeSpec","nameLocation":"16107:7:81","nodeType":"VariableDeclaration","scope":23285,"src":"16083:31:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":23169,"nodeType":"UserDefinedTypeName","pathNode":{"id":23168,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"16083:16:81"},"referencedDeclaration":5838,"src":"16083:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"id":23175,"initialValue":{"arguments":[{"expression":{"id":23172,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23155,"src":"16137:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"16137:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23171,"name":"getFeeSpecification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23463,"src":"16117:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_FeeSpecification_$5838_memory_ptr_$","typeString":"function (uint256) view returns (struct ITreasury.FeeSpecification memory)"}},"id":23174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16117:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"nodeType":"VariableDeclarationStatement","src":"16083:72:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23177,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23170,"src":"16173:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":23178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"16173:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16193:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16173:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3035303a4645455f535045435f554e444546494e4544","id":23181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16196:34:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5e24e1787cfb8007a3eb3c3796c431645b0dfa466828874ea644c38e8537028","typeString":"literal_string \"ERROR:TRS-050:FEE_SPEC_UNDEFINED\""},"value":"ERROR:TRS-050:FEE_SPEC_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5e24e1787cfb8007a3eb3c3796c431645b0dfa466828874ea644c38e8537028","typeString":"literal_string \"ERROR:TRS-050:FEE_SPEC_UNDEFINED\""}],"id":23176,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16165:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16165:66:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23183,"nodeType":"ExpressionStatement","src":"16165:66:81"},{"assignments":[23186],"declarations":[{"constant":false,"id":23186,"mutability":"mutable","name":"token","nameLocation":"16308:5:81","nodeType":"VariableDeclaration","scope":23285,"src":"16301:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":23185,"nodeType":"UserDefinedTypeName","pathNode":{"id":23184,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"16301:6:81"},"referencedDeclaration":8831,"src":"16301:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"id":23191,"initialValue":{"baseExpression":{"id":23187,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"16316:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":23190,"indexExpression":{"expression":{"id":23188,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23155,"src":"16332:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"16332:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16316:34:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"16301:49:81"},{"expression":{"id":23197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23192,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23147,"src":"16403:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23194,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23170,"src":"16429:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},{"id":23195,"name":"capitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"16438:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23193,"name":"_calculateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23573,"src":"16415:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_FeeSpecification_$5838_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ITreasury.FeeSpecification memory,uint256) pure returns (uint256)"}},"id":23196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16415:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16403:49:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23198,"nodeType":"ExpressionStatement","src":"16403:49:81"},{"expression":{"id":23203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23199,"name":"netCapitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23149,"src":"16462:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23200,"name":"capitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"16481:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":23201,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23147,"src":"16497:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16481:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16462:44:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23204,"nodeType":"ExpressionStatement","src":"16462:44:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23208,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"16610:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23206,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23186,"src":"16594:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":8788,"src":"16594:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":23209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16594:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":23210,"name":"capitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"16626:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16594:45:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3035323a42414c414e43455f544f4f5f534d414c4c","id":23212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16641:33:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_7de95b395fb2e1b69ae5bfa415c7293d3911661a8a5a83a9008160da9346bd51","typeString":"literal_string \"ERROR:TRS-052:BALANCE_TOO_SMALL\""},"value":"ERROR:TRS-052:BALANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7de95b395fb2e1b69ae5bfa415c7293d3911661a8a5a83a9008160da9346bd51","typeString":"literal_string \"ERROR:TRS-052:BALANCE_TOO_SMALL\""}],"id":23205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16586:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16586:89:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23214,"nodeType":"ExpressionStatement","src":"16586:89:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23218,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"16709:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":23221,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"16730:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}],"id":23220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16722:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23219,"name":"address","nodeType":"ElementaryTypeName","src":"16722:7:81","typeDescriptions":{}}},"id":23222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16722:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23216,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23186,"src":"16693:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"16693:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":23223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16693:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":23224,"name":"capitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"16740:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16693:60:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3035333a4341504954414c5f5452414e534645525f414c4c4f57414e43455f544f4f5f534d414c4c","id":23226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16755:52:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_211791b6640da73c43884462143c95a88a879b6ed92d3aff6ce166c1d61a88f2","typeString":"literal_string \"ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL\""},"value":"ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_211791b6640da73c43884462143c95a88a879b6ed92d3aff6ce166c1d61a88f2","typeString":"literal_string \"ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL\""}],"id":23215,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16685:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16685:123:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23228,"nodeType":"ExpressionStatement","src":"16685:123:81"},{"assignments":[23230],"declarations":[{"constant":false,"id":23230,"mutability":"mutable","name":"success","nameLocation":"16824:7:81","nodeType":"VariableDeclaration","scope":23285,"src":"16819:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23229,"name":"bool","nodeType":"ElementaryTypeName","src":"16819:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":23238,"initialValue":{"arguments":[{"id":23233,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23186,"src":"16869:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":23234,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"16876:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23235,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"16889:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23236,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23147,"src":"16913:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23231,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"16834:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":23232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"16834:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":23237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16834:89:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"16819:104:81"},{"eventCall":{"arguments":[{"id":23240,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"16966:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23241,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"16979:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23242,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23147,"src":"17003:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23239,"name":"LogTreasuryFeesTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5787,"src":"16939:26:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16939:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23244,"nodeType":"EmitStatement","src":"16934:79:81"},{"expression":{"arguments":[{"id":23246,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23230,"src":"17031:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3035343a4645455f5452414e534645525f4641494c4544","id":23247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17040:35:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_77500f959cf782554c0ce0c1dde202048b680670f0cce75f17feb23a8e0308ef","typeString":"literal_string \"ERROR:TRS-054:FEE_TRANSFER_FAILED\""},"value":"ERROR:TRS-054:FEE_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_77500f959cf782554c0ce0c1dde202048b680670f0cce75f17feb23a8e0308ef","typeString":"literal_string \"ERROR:TRS-054:FEE_TRANSFER_FAILED\""}],"id":23245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17023:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17023:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23249,"nodeType":"ExpressionStatement","src":"17023:53:81"},{"assignments":[23251],"declarations":[{"constant":false,"id":23251,"mutability":"mutable","name":"riskpoolWallet","nameLocation":"17127:14:81","nodeType":"VariableDeclaration","scope":23285,"src":"17119:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23250,"name":"address","nodeType":"ElementaryTypeName","src":"17119:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23256,"initialValue":{"arguments":[{"expression":{"id":23253,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23155,"src":"17162:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"17162:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23252,"name":"getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23494,"src":"17144:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":23255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17144:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17119:61:81"},{"expression":{"id":23265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23257,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23230,"src":"17190:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23260,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23186,"src":"17235:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":23261,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"17242:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23262,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23251,"src":"17255:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23263,"name":"netCapitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23149,"src":"17271:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23258,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"17200:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":23259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"17200:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":23264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17200:88:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17190:98:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23266,"nodeType":"ExpressionStatement","src":"17190:98:81"},{"eventCall":{"arguments":[{"id":23268,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"17334:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23269,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23251,"src":"17347:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23270,"name":"netCapitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23149,"src":"17363:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23267,"name":"LogTreasuryCapitalTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"17304:29:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17304:76:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23272,"nodeType":"EmitStatement","src":"17299:81:81"},{"expression":{"arguments":[{"id":23274,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23230,"src":"17398:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3035353a4341504954414c5f5452414e534645525f4641494c4544","id":23275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17407:39:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee072957df3bcc0b6a380c5eb268686cec614b16dbbda8cabbd506c7cad3be44","typeString":"literal_string \"ERROR:TRS-055:CAPITAL_TRANSFER_FAILED\""},"value":"ERROR:TRS-055:CAPITAL_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ee072957df3bcc0b6a380c5eb268686cec614b16dbbda8cabbd506c7cad3be44","typeString":"literal_string \"ERROR:TRS-055:CAPITAL_TRANSFER_FAILED\""}],"id":23273,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17390:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17390:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23277,"nodeType":"ExpressionStatement","src":"17390:57:81"},{"eventCall":{"arguments":[{"expression":{"id":23279,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23155,"src":"17491:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"17491:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23281,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23132,"src":"17510:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23282,"name":"capitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"17520:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23278,"name":"LogTreasuryCapitalProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5817,"src":"17463:27:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":23283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17463:71:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23284,"nodeType":"EmitStatement","src":"17458:76:81"}]},"functionSelector":"26debdaa","id":23286,"implemented":true,"kind":"function","modifiers":[{"id":23138,"modifierName":{"id":23137,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"15678:16:81"},"nodeType":"ModifierInvocation","src":"15678:16:81"},{"id":23140,"modifierName":{"id":23139,"name":"instanceWalletDefined","nodeType":"IdentifierPath","referencedDeclaration":22251,"src":"15703:21:81"},"nodeType":"ModifierInvocation","src":"15703:21:81"},{"arguments":[{"id":23142,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23132,"src":"15764:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23143,"modifierName":{"id":23141,"name":"riskpoolWalletDefinedForBundle","nodeType":"IdentifierPath","referencedDeclaration":22304,"src":"15733:30:81"},"nodeType":"ModifierInvocation","src":"15733:40:81"},{"id":23145,"modifierName":{"id":23144,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":22329,"src":"15782:19:81"},"nodeType":"ModifierInvocation","src":"15782:19:81"}],"name":"processCapital","nameLocation":"15586:14:81","nodeType":"FunctionDefinition","overrides":{"id":23136,"nodeType":"OverrideSpecifier","overrides":[],"src":"15660:8:81"},"parameters":{"id":23135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23132,"mutability":"mutable","name":"bundleId","nameLocation":"15609:8:81","nodeType":"VariableDeclaration","scope":23286,"src":"15601:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23131,"name":"uint256","nodeType":"ElementaryTypeName","src":"15601:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23134,"mutability":"mutable","name":"capitalAmount","nameLocation":"15627:13:81","nodeType":"VariableDeclaration","scope":23286,"src":"15619:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23133,"name":"uint256","nodeType":"ElementaryTypeName","src":"15619:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15600:41:81"},"returnParameters":{"id":23150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23147,"mutability":"mutable","name":"feeAmount","nameLocation":"15839:9:81","nodeType":"VariableDeclaration","scope":23286,"src":"15831:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23146,"name":"uint256","nodeType":"ElementaryTypeName","src":"15831:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23149,"mutability":"mutable","name":"netCapitalAmount","nameLocation":"15870:16:81","nodeType":"VariableDeclaration","scope":23286,"src":"15862:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23148,"name":"uint256","nodeType":"ElementaryTypeName","src":"15862:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15817:79:81"},"scope":23615,"src":"15577:1964:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5940],"body":{"id":23421,"nodeType":"Block","src":"17859:1424:81","statements":[{"assignments":[23311],"declarations":[{"constant":false,"id":23311,"mutability":"mutable","name":"bundle","nameLocation":"17930:6:81","nodeType":"VariableDeclaration","scope":23421,"src":"17908:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":23310,"nodeType":"UserDefinedTypeName","pathNode":{"id":23309,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"17908:14:81"},"referencedDeclaration":4936,"src":"17908:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":23316,"initialValue":{"arguments":[{"id":23314,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23288,"src":"17957:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23312,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"17939:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":23313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"17939:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":23315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17939:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"17908:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":23335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23318,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"17997:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"17997:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23320,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"18015:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"18015:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":23322,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23290,"src":"18038:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18015:29:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17997:47:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":23333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23325,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"18061:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"18061:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":23327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18085:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18061:25:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23329,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"18090:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"18090:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":23331,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23290,"src":"18108:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18090:24:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18061:53:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":23334,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18060:55:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17997:118:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3036303a43415041434954595f4f525f42414c414e43455f534d414c4c45525f5448414e5f5749544844524157414c","id":23336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18129:59:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_abefc76b4190bc32094fc332397abd635b177c21ff1892fa5ed5fd71e1968656","typeString":"literal_string \"ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL\""},"value":"ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_abefc76b4190bc32094fc332397abd635b177c21ff1892fa5ed5fd71e1968656","typeString":"literal_string \"ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL\""}],"id":23317,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17976:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17976:222:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23338,"nodeType":"ExpressionStatement","src":"17976:222:81"},{"assignments":[23340],"declarations":[{"constant":false,"id":23340,"mutability":"mutable","name":"riskpoolWallet","nameLocation":"18276:14:81","nodeType":"VariableDeclaration","scope":23421,"src":"18268:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23339,"name":"address","nodeType":"ElementaryTypeName","src":"18268:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23345,"initialValue":{"arguments":[{"expression":{"id":23342,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"18311:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"18311:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23341,"name":"getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23494,"src":"18293:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":23344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18293:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18268:61:81"},{"assignments":[23347],"declarations":[{"constant":false,"id":23347,"mutability":"mutable","name":"bundleOwner","nameLocation":"18347:11:81","nodeType":"VariableDeclaration","scope":23421,"src":"18339:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23346,"name":"address","nodeType":"ElementaryTypeName","src":"18339:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23352,"initialValue":{"arguments":[{"id":23350,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23288,"src":"18378:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23348,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"18361:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":23349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOwner","nodeType":"MemberAccess","referencedDeclaration":16668,"src":"18361:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":23351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18361:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18339:48:81"},{"assignments":[23355],"declarations":[{"constant":false,"id":23355,"mutability":"mutable","name":"token","nameLocation":"18404:5:81","nodeType":"VariableDeclaration","scope":23421,"src":"18397:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":23354,"nodeType":"UserDefinedTypeName","pathNode":{"id":23353,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"18397:6:81"},"referencedDeclaration":8831,"src":"18397:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"id":23360,"initialValue":{"baseExpression":{"id":23356,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"18412:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":23359,"indexExpression":{"expression":{"id":23357,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"18428:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"18428:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18412:34:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"18397:49:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23364,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23340,"src":"18494:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23362,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23355,"src":"18478:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":8788,"src":"18478:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":23365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18478:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":23366,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23290,"src":"18513:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18478:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3036313a5249534b504f4f4c5f57414c4c45545f42414c414e43455f544f4f5f534d414c4c","id":23368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18534:49:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ff8d3b4e484daf7626b33b4e51d57bdf16ceea6f454579b2b8cc97aa218b830","typeString":"literal_string \"ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL\""},"value":"ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4ff8d3b4e484daf7626b33b4e51d57bdf16ceea6f454579b2b8cc97aa218b830","typeString":"literal_string \"ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL\""}],"id":23361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18457:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18457:136:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23370,"nodeType":"ExpressionStatement","src":"18457:136:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23374,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23340,"src":"18640:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":23377,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"18664:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}],"id":23376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18656:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23375,"name":"address","nodeType":"ElementaryTypeName","src":"18656:7:81","typeDescriptions":{}}},"id":23378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18656:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23372,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23355,"src":"18624:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"18624:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":23379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18624:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":23380,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23290,"src":"18674:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18624:56:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3036323a5749544844524157414c5f414c4c4f57414e43455f544f4f5f534d414c4c","id":23382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18695:46:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_fe68ccbc21a2bc35481ec1ba83353491017fc775b9abae87cf31e492c23093ec","typeString":"literal_string \"ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL\""},"value":"ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fe68ccbc21a2bc35481ec1ba83353491017fc775b9abae87cf31e492c23093ec","typeString":"literal_string \"ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL\""}],"id":23371,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18603:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18603:148:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23384,"nodeType":"ExpressionStatement","src":"18603:148:81"},{"expression":{"id":23387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23385,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23303,"src":"18885:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":23386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18897:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18885:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23388,"nodeType":"ExpressionStatement","src":"18885:13:81"},{"expression":{"id":23391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23389,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23305,"src":"18908:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23390,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23290,"src":"18920:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18908:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23392,"nodeType":"ExpressionStatement","src":"18908:18:81"},{"assignments":[23394],"declarations":[{"constant":false,"id":23394,"mutability":"mutable","name":"success","nameLocation":"18941:7:81","nodeType":"VariableDeclaration","scope":23421,"src":"18936:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23393,"name":"bool","nodeType":"ElementaryTypeName","src":"18936:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":23402,"initialValue":{"arguments":[{"id":23397,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23355,"src":"18986:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":23398,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23340,"src":"18993:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23399,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23347,"src":"19009:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23400,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23305,"src":"19022:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23395,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"18951:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":23396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"18951:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":23401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18951:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18936:96:81"},{"eventCall":{"arguments":[{"id":23404,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23340,"src":"19081:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23405,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23347,"src":"19097:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23406,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23305,"src":"19110:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23403,"name":"LogTreasuryWithdrawalTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5795,"src":"19048:32:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19048:72:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23408,"nodeType":"EmitStatement","src":"19043:77:81"},{"expression":{"arguments":[{"id":23410,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23394,"src":"19138:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3036333a5749544844524157414c5f5452414e534645525f4641494c4544","id":23411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19147:42:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3c791ba0a21dcb3428b822dcce6828d8b36ff48be0d7f71d7205920e54c15b3","typeString":"literal_string \"ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED\""},"value":"ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c3c791ba0a21dcb3428b822dcce6828d8b36ff48be0d7f71d7205920e54c15b3","typeString":"literal_string \"ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED\""}],"id":23409,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19130:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19130:60:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23413,"nodeType":"ExpressionStatement","src":"19130:60:81"},{"eventCall":{"arguments":[{"expression":{"id":23415,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"19237:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"19237:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23417,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23288,"src":"19256:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23418,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23305,"src":"19266:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23414,"name":"LogTreasuryWithdrawalProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5825,"src":"19206:30:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":23419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19206:70:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23420,"nodeType":"EmitStatement","src":"19201:75:81"}]},"functionSelector":"d9358075","id":23422,"implemented":true,"kind":"function","modifiers":[{"id":23294,"modifierName":{"id":23293,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"17643:16:81"},"nodeType":"ModifierInvocation","src":"17643:16:81"},{"id":23296,"modifierName":{"id":23295,"name":"instanceWalletDefined","nodeType":"IdentifierPath","referencedDeclaration":22251,"src":"17668:21:81"},"nodeType":"ModifierInvocation","src":"17668:21:81"},{"arguments":[{"id":23298,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23288,"src":"17729:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23299,"modifierName":{"id":23297,"name":"riskpoolWalletDefinedForBundle","nodeType":"IdentifierPath","referencedDeclaration":22304,"src":"17698:30:81"},"nodeType":"ModifierInvocation","src":"17698:40:81"},{"id":23301,"modifierName":{"id":23300,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":22329,"src":"17747:19:81"},"nodeType":"ModifierInvocation","src":"17747:19:81"}],"name":"processWithdrawal","nameLocation":"17556:17:81","nodeType":"FunctionDefinition","overrides":{"id":23292,"nodeType":"OverrideSpecifier","overrides":[],"src":"17626:8:81"},"parameters":{"id":23291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23288,"mutability":"mutable","name":"bundleId","nameLocation":"17582:8:81","nodeType":"VariableDeclaration","scope":23422,"src":"17574:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23287,"name":"uint256","nodeType":"ElementaryTypeName","src":"17574:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23290,"mutability":"mutable","name":"amount","nameLocation":"17600:6:81","nodeType":"VariableDeclaration","scope":23422,"src":"17592:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23289,"name":"uint256","nodeType":"ElementaryTypeName","src":"17592:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17573:34:81"},"returnParameters":{"id":23306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23303,"mutability":"mutable","name":"feeAmount","nameLocation":"17804:9:81","nodeType":"VariableDeclaration","scope":23422,"src":"17796:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23302,"name":"uint256","nodeType":"ElementaryTypeName","src":"17796:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23305,"mutability":"mutable","name":"netAmount","nameLocation":"17835:9:81","nodeType":"VariableDeclaration","scope":23422,"src":"17827:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23304,"name":"uint256","nodeType":"ElementaryTypeName","src":"17827:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17782:72:81"},"scope":23615,"src":"17547:1736:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5948],"body":{"id":23448,"nodeType":"Block","src":"19411:183:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":23440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23434,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23424,"src":"19450:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23432,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"19429:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"19429:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":23435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19429:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":23438,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23424,"src":"19488:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23436,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"19466:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"19466:21:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":23439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19466:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19429:71:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3037303a4e4f545f50524f445543545f4f525f5249534b504f4f4c","id":23441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19502:39:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df3c78e93cd9b7c9045f326b01178dc9332f2f6498582ce9cff7c8821aa1d20","typeString":"literal_string \"ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL\""},"value":"ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0df3c78e93cd9b7c9045f326b01178dc9332f2f6498582ce9cff7c8821aa1d20","typeString":"literal_string \"ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL\""}],"id":23431,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19421:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19421:121:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23443,"nodeType":"ExpressionStatement","src":"19421:121:81"},{"expression":{"baseExpression":{"id":23444,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"19559:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":23446,"indexExpression":{"id":23445,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23424,"src":"19575:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19559:28:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"functionReturnParameters":23430,"id":23447,"nodeType":"Return","src":"19552:35:81"}]},"functionSelector":"038696bb","id":23449,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentToken","nameLocation":"19299:17:81","nodeType":"FunctionDefinition","overrides":{"id":23426,"nodeType":"OverrideSpecifier","overrides":[],"src":"19354:8:81"},"parameters":{"id":23425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23424,"mutability":"mutable","name":"componentId","nameLocation":"19325:11:81","nodeType":"VariableDeclaration","scope":23449,"src":"19317:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23423,"name":"uint256","nodeType":"ElementaryTypeName","src":"19317:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19316:21:81"},"returnParameters":{"id":23430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23429,"mutability":"mutable","name":"token","nameLocation":"19399:5:81","nodeType":"VariableDeclaration","scope":23449,"src":"19392:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":23428,"nodeType":"UserDefinedTypeName","pathNode":{"id":23427,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"19392:6:81"},"referencedDeclaration":8831,"src":"19392:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"19391:14:81"},"scope":23615,"src":"19290:304:81","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5956],"body":{"id":23462,"nodeType":"Block","src":"19704:42:81","statements":[{"expression":{"baseExpression":{"id":23458,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"19721:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":23460,"indexExpression":{"id":23459,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23451,"src":"19727:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19721:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"functionReturnParameters":23457,"id":23461,"nodeType":"Return","src":"19714:25:81"}]},"functionSelector":"a434f0ad","id":23463,"implemented":true,"kind":"function","modifiers":[],"name":"getFeeSpecification","nameLocation":"19609:19:81","nodeType":"FunctionDefinition","overrides":{"id":23453,"nodeType":"OverrideSpecifier","overrides":[],"src":"19657:8:81"},"parameters":{"id":23452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23451,"mutability":"mutable","name":"componentId","nameLocation":"19637:11:81","nodeType":"VariableDeclaration","scope":23463,"src":"19629:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23450,"name":"uint256","nodeType":"ElementaryTypeName","src":"19629:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19628:21:81"},"returnParameters":{"id":23457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23463,"src":"19679:23:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":23455,"nodeType":"UserDefinedTypeName","pathNode":{"id":23454,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"19679:16:81"},"referencedDeclaration":5838,"src":"19679:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"19678:25:81"},"scope":23615,"src":"19600:146:81","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5961],"body":{"id":23471,"nodeType":"Block","src":"19821:44:81","statements":[{"expression":{"id":23469,"name":"FRACTION_FULL_UNIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22182,"src":"19839:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23468,"id":23470,"nodeType":"Return","src":"19832:25:81"}]},"functionSelector":"8ccf5ca2","id":23472,"implemented":true,"kind":"function","modifiers":[],"name":"getFractionFullUnit","nameLocation":"19761:19:81","nodeType":"FunctionDefinition","overrides":{"id":23465,"nodeType":"OverrideSpecifier","overrides":[],"src":"19790:8:81"},"parameters":{"id":23464,"nodeType":"ParameterList","parameters":[],"src":"19780:2:81"},"returnParameters":{"id":23468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23472,"src":"19812:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23466,"name":"uint256","nodeType":"ElementaryTypeName","src":"19812:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19811:9:81"},"scope":23615,"src":"19752:113:81","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[5966],"body":{"id":23480,"nodeType":"Block","src":"19938:48:81","statements":[{"expression":{"id":23478,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"19956:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":23477,"id":23479,"nodeType":"Return","src":"19949:29:81"}]},"functionSelector":"a44330c4","id":23481,"implemented":true,"kind":"function","modifiers":[],"name":"getInstanceWallet","nameLocation":"19880:17:81","nodeType":"FunctionDefinition","overrides":{"id":23474,"nodeType":"OverrideSpecifier","overrides":[],"src":"19907:8:81"},"parameters":{"id":23473,"nodeType":"ParameterList","parameters":[],"src":"19897:2:81"},"returnParameters":{"id":23477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23481,"src":"19929:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23475,"name":"address","nodeType":"ElementaryTypeName","src":"19929:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19928:9:81"},"scope":23615,"src":"19871:115:81","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5973],"body":{"id":23493,"nodeType":"Block","src":"20077:51:81","statements":[{"expression":{"baseExpression":{"id":23489,"name":"_riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22215,"src":"20094:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":23491,"indexExpression":{"id":23490,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23483,"src":"20110:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20094:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":23488,"id":23492,"nodeType":"Return","src":"20087:34:81"}]},"functionSelector":"49081637","id":23494,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolWallet","nameLocation":"20001:17:81","nodeType":"FunctionDefinition","overrides":{"id":23485,"nodeType":"OverrideSpecifier","overrides":[],"src":"20046:8:81"},"parameters":{"id":23484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23483,"mutability":"mutable","name":"riskpoolId","nameLocation":"20027:10:81","nodeType":"VariableDeclaration","scope":23494,"src":"20019:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23482,"name":"uint256","nodeType":"ElementaryTypeName","src":"20019:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20018:20:81"},"returnParameters":{"id":23488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23494,"src":"20068:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23486,"name":"address","nodeType":"ElementaryTypeName","src":"20068:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20067:9:81"},"scope":23615,"src":"19992:136:81","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":23522,"nodeType":"Block","src":"20385:136:81","statements":[{"expression":{"id":23512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23507,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23503,"src":"20395:11:81","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23510,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23499,"src":"20433:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":23508,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"20410:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":23509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":19835,"src":"20410:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":23511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20410:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"src":"20395:48:81","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":23513,"nodeType":"ExpressionStatement","src":"20395:48:81"},{"expression":{"id":23520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23514,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23505,"src":"20453:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23516,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23497,"src":"20479:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},{"expression":{"id":23517,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23503,"src":"20488:11:81","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":23518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"20488:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23515,"name":"_calculateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23573,"src":"20465:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_FeeSpecification_$5838_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ITreasury.FeeSpecification memory,uint256) pure returns (uint256)"}},"id":23519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20465:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20453:61:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23521,"nodeType":"ExpressionStatement","src":"20453:61:81"}]},"id":23523,"implemented":true,"kind":"function","modifiers":[],"name":"_calculatePremiumFee","nameLocation":"20144:20:81","nodeType":"FunctionDefinition","parameters":{"id":23500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23497,"mutability":"mutable","name":"feeSpec","nameLocation":"20198:7:81","nodeType":"VariableDeclaration","scope":23523,"src":"20174:31:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":23496,"nodeType":"UserDefinedTypeName","pathNode":{"id":23495,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"20174:16:81"},"referencedDeclaration":5838,"src":"20174:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"},{"constant":false,"id":23499,"mutability":"mutable","name":"processId","nameLocation":"20224:9:81","nodeType":"VariableDeclaration","scope":23523,"src":"20216:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20216:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20164:75:81"},"returnParameters":{"id":23506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23503,"mutability":"mutable","name":"application","nameLocation":"20327:11:81","nodeType":"VariableDeclaration","scope":23523,"src":"20300:38:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":23502,"nodeType":"UserDefinedTypeName","pathNode":{"id":23501,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"20300:19:81"},"referencedDeclaration":5262,"src":"20300:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"},{"constant":false,"id":23505,"mutability":"mutable","name":"feeAmount","nameLocation":"20361:9:81","nodeType":"VariableDeclaration","scope":23523,"src":"20353:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23504,"name":"uint256","nodeType":"ElementaryTypeName","src":"20353:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20286:94:81"},"scope":23615,"src":"20135:386:81","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":23572,"nodeType":"Block","src":"20694:500:81","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":23533,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23526,"src":"20708:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":23534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCalculationData","nodeType":"MemberAccess","referencedDeclaration":5833,"src":"20708:26:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":23535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"20708:33:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20744:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20708:37:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23543,"nodeType":"IfStatement","src":"20704:126:81","trueBody":{"id":23542,"nodeType":"Block","src":"20747:83:81","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a5452532d3039303a4645455f43414c43554c4154494f4e5f444154415f4e4f545f535550504f52544544","id":23539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20768:50:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a7920c070ee7c8d85c964148119b679dffd62a937b57794605d2b978251dbac","typeString":"literal_string \"ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED\""},"value":"ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a7920c070ee7c8d85c964148119b679dffd62a937b57794605d2b978251dbac","typeString":"literal_string \"ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED\""}],"id":23538,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"20761:6:81","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":23540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20761:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23541,"nodeType":"ExpressionStatement","src":"20761:58:81"}]}},{"expression":{"id":23547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23544,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23531,"src":"20872:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23545,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23526,"src":"20884:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":23546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fixedFee","nodeType":"MemberAccess","referencedDeclaration":5829,"src":"20884:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20872:28:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23548,"nodeType":"ExpressionStatement","src":"20872:28:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23549,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23526,"src":"20952:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":23550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fractionalFee","nodeType":"MemberAccess","referencedDeclaration":5831,"src":"20952:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20976:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20952:25:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23564,"nodeType":"IfStatement","src":"20948:122:81","trueBody":{"id":23563,"nodeType":"Block","src":"20979:91:81","statements":[{"expression":{"id":23561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23553,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23531,"src":"20993:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23554,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23526,"src":"21007:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":23555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fractionalFee","nodeType":"MemberAccess","referencedDeclaration":5831,"src":"21007:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":23556,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23528,"src":"21031:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21007:30:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23558,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21006:32:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":23559,"name":"FRACTION_FULL_UNIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22182,"src":"21041:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21006:53:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20993:66:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23562,"nodeType":"ExpressionStatement","src":"20993:66:81"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23566,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23531,"src":"21139:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":23567,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23528,"src":"21151:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21139:18:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3039313a4645455f544f4f5f424947","id":23569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21159:27:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_e106755395283005e5aee6caae70ff5d864aa76c26b2d96a6a077ed12733afd7","typeString":"literal_string \"ERROR:TRS-091:FEE_TOO_BIG\""},"value":"ERROR:TRS-091:FEE_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e106755395283005e5aee6caae70ff5d864aa76c26b2d96a6a077ed12733afd7","typeString":"literal_string \"ERROR:TRS-091:FEE_TOO_BIG\""}],"id":23565,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21131:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21131:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23571,"nodeType":"ExpressionStatement","src":"21131:56:81"}]},"id":23573,"implemented":true,"kind":"function","modifiers":[],"name":"_calculateFee","nameLocation":"20538:13:81","nodeType":"FunctionDefinition","parameters":{"id":23529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23526,"mutability":"mutable","name":"feeSpec","nameLocation":"20585:7:81","nodeType":"VariableDeclaration","scope":23573,"src":"20561:31:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":23525,"nodeType":"UserDefinedTypeName","pathNode":{"id":23524,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"20561:16:81"},"referencedDeclaration":5838,"src":"20561:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"},{"constant":false,"id":23528,"mutability":"mutable","name":"amount","nameLocation":"20611:6:81","nodeType":"VariableDeclaration","scope":23573,"src":"20603:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23527,"name":"uint256","nodeType":"ElementaryTypeName","src":"20603:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20551:72:81"},"returnParameters":{"id":23532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23531,"mutability":"mutable","name":"feeAmount","nameLocation":"20679:9:81","nodeType":"VariableDeclaration","scope":23573,"src":"20671:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23530,"name":"uint256","nodeType":"ElementaryTypeName","src":"20671:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20670:19:81"},"scope":23615,"src":"20529:665:81","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":23613,"nodeType":"Block","src":"21349:288:81","statements":[{"assignments":[23586],"declarations":[{"constant":false,"id":23586,"mutability":"mutable","name":"metadata","nameLocation":"21383:8:81","nodeType":"VariableDeclaration","scope":23613,"src":"21359:32:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":23585,"nodeType":"UserDefinedTypeName","pathNode":{"id":23584,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"21359:16:81"},"referencedDeclaration":5248,"src":"21359:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":23591,"initialValue":{"arguments":[{"id":23589,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23575,"src":"21414:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":23587,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"21394:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":23588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"21394:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":23590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21394:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"21359:65:81"},{"expression":{"id":23598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23592,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23578,"src":"21434:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":23595,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23586,"src":"21475:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":23596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"21475:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23593,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22237,"src":"21447:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":23594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskPoolForProduct","nodeType":"MemberAccess","referencedDeclaration":21014,"src":"21447:27:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":23597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21447:47:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21434:60:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23599,"nodeType":"ExpressionStatement","src":"21434:60:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23601,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23578,"src":"21512:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21525:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21512:14:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3039323a50524f445543545f574954484f55545f5249534b504f4f4c","id":23604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21528:40:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_a12cb855de85ca500fa62d405caf8e8c48f5df6ba8af9f453603b23bd9e4d04d","typeString":"literal_string \"ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL\""},"value":"ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a12cb855de85ca500fa62d405caf8e8c48f5df6ba8af9f453603b23bd9e4d04d","typeString":"literal_string \"ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL\""}],"id":23600,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21504:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21504:65:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23606,"nodeType":"ExpressionStatement","src":"21504:65:81"},{"expression":{"id":23611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23607,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23580,"src":"21579:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":23608,"name":"_riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22215,"src":"21603:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":23610,"indexExpression":{"id":23609,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23578,"src":"21619:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21603:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21579:51:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":23612,"nodeType":"ExpressionStatement","src":"21579:51:81"}]},"id":23614,"implemented":true,"kind":"function","modifiers":[],"name":"_getRiskpoolWallet","nameLocation":"21210:18:81","nodeType":"FunctionDefinition","parameters":{"id":23576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23575,"mutability":"mutable","name":"processId","nameLocation":"21237:9:81","nodeType":"VariableDeclaration","scope":23614,"src":"21229:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21229:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21228:19:81"},"returnParameters":{"id":23581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23578,"mutability":"mutable","name":"riskpoolId","nameLocation":"21302:10:81","nodeType":"VariableDeclaration","scope":23614,"src":"21294:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23577,"name":"uint256","nodeType":"ElementaryTypeName","src":"21294:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23580,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"21322:21:81","nodeType":"VariableDeclaration","scope":23614,"src":"21314:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23579,"name":"address","nodeType":"ElementaryTypeName","src":"21314:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21293:51:81"},"scope":23615,"src":"21201:436:81","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":23616,"src":"3548:18091:81"}],"src":"39:21601:81"},"id":81},"contracts/services/ComponentOwnerService.sol":{"ast":{"absolutePath":"contracts/services/ComponentOwnerService.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"ComponentOwnerService":[23837],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IOracle":[3022],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059],"Ownable":[7481],"PolicyController":[19974],"PoolController":[21207],"Strings":[10804]},"id":23838,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23617,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:82"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"../modules/ComponentController.sol","id":23618,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23838,"sourceUnit":17948,"src":"66:44:82","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"../modules/PoolController.sol","id":23619,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23838,"sourceUnit":21208,"src":"251:39:82","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":23620,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23838,"sourceUnit":26414,"src":"292:38:82","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":23621,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23838,"sourceUnit":2989,"src":"334:69:82","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","file":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","id":23622,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23838,"sourceUnit":6010,"src":"405:79:82","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":23623,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"528:22:82"},"id":23624,"nodeType":"InheritanceSpecifier","src":"528:22:82"},{"baseName":{"id":23625,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"557:14:82"},"id":23626,"nodeType":"InheritanceSpecifier","src":"557:14:82"}],"contractDependencies":[6009,8059,10518,26413],"contractKind":"contract","fullyImplemented":true,"id":23837,"linearizedBaseContracts":[23837,26413,8059,10518,6009],"name":"ComponentOwnerService","nameLocation":"497:21:82","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":23629,"mutability":"mutable","name":"_component","nameLocation":"608:10:82","nodeType":"VariableDeclaration","scope":23837,"src":"580:38:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":23628,"nodeType":"UserDefinedTypeName","pathNode":{"id":23627,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"580:19:82"},"referencedDeclaration":17947,"src":"580:19:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"body":{"id":23667,"nodeType":"Block","src":"689:311:82","statements":[{"assignments":[23635],"declarations":[{"constant":false,"id":23635,"mutability":"mutable","name":"owner","nameLocation":"708:5:82","nodeType":"VariableDeclaration","scope":23667,"src":"700:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23634,"name":"address","nodeType":"ElementaryTypeName","src":"700:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23639,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23636,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23632,"src":"716:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":23637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOwner","nodeType":"MemberAccess","referencedDeclaration":2942,"src":"716:18:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":23638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"716:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"700:36:82"},{"assignments":[23641],"declarations":[{"constant":false,"id":23641,"mutability":"mutable","name":"requiredRole","nameLocation":"755:12:82","nodeType":"VariableDeclaration","scope":23667,"src":"747:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"747:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":23648,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23644,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23632,"src":"797:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":23645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getType","nodeType":"MemberAccess","referencedDeclaration":2931,"src":"797:17:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_enum$_ComponentType_$2891_$","typeString":"function () view external returns (enum IComponent.ComponentType)"}},"id":23646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"797:19:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}],"expression":{"id":23642,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"770:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRequiredRole","nodeType":"MemberAccess","referencedDeclaration":17670,"src":"770:26:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_enum$_ComponentType_$2891_$returns$_t_bytes32_$","typeString":"function (enum IComponent.ComponentType) view external returns (bytes32)"}},"id":23647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"770:47:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"747:70:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":23653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":23650,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"836:10:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"836:12:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":23652,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23635,"src":"852:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"836:21:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434f532d3030313a4e4f545f4f574e4552","id":23654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"859:25:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_465d2c87dcb0f9e507f01f9bd011e20013cefede3ead0fe8442c34503dee279a","typeString":"literal_string \"ERROR:COS-001:NOT_OWNER\""},"value":"ERROR:COS-001:NOT_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_465d2c87dcb0f9e507f01f9bd011e20013cefede3ead0fe8442c34503dee279a","typeString":"literal_string \"ERROR:COS-001:NOT_OWNER\""}],"id":23649,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"828:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"828:57:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23656,"nodeType":"ExpressionStatement","src":"828:57:82"},{"expression":{"arguments":[{"arguments":[{"id":23660,"name":"requiredRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23641,"src":"920:12:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":23661,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23635,"src":"934:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23658,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"904:7:82","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":23659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":4804,"src":"904:15:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":23662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"904:36:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434f532d3030323a52455155495245445f524f4c455f4d495353494e47","id":23663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"942:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba7f3dd1050d0760c96ec2016b668c5029825c4f0129279369d1f9706925f324","typeString":"literal_string \"ERROR:COS-002:REQUIRED_ROLE_MISSING\""},"value":"ERROR:COS-002:REQUIRED_ROLE_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba7f3dd1050d0760c96ec2016b668c5029825c4f0129279369d1f9706925f324","typeString":"literal_string \"ERROR:COS-002:REQUIRED_ROLE_MISSING\""}],"id":23657,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"896:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"896:84:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23665,"nodeType":"ExpressionStatement","src":"896:84:82"},{"id":23666,"nodeType":"PlaceholderStatement","src":"991:1:82"}]},"id":23668,"name":"onlyOwnerWithRoleFromComponent","nameLocation":"636:30:82","nodeType":"ModifierDefinition","parameters":{"id":23633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23632,"mutability":"mutable","name":"component","nameLocation":"678:9:82","nodeType":"VariableDeclaration","scope":23668,"src":"667:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":23631,"nodeType":"UserDefinedTypeName","pathNode":{"id":23630,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"667:10:82"},"referencedDeclaration":2988,"src":"667:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"666:22:82"},"src":"627:373:82","virtual":false,"visibility":"internal"},{"body":{"id":23727,"nodeType":"Block","src":"1047:478:82","statements":[{"assignments":[23674],"declarations":[{"constant":false,"id":23674,"mutability":"mutable","name":"component","nameLocation":"1069:9:82","nodeType":"VariableDeclaration","scope":23727,"src":"1058:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":23673,"nodeType":"UserDefinedTypeName","pathNode":{"id":23672,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"1058:10:82"},"referencedDeclaration":2988,"src":"1058:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":23679,"initialValue":{"arguments":[{"id":23677,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23670,"src":"1105:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23675,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"1081:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"1081:23:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":23678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1081:27:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"1058:50:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":23689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23683,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23674,"src":"1135:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":23682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1127:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23681,"name":"address","nodeType":"ElementaryTypeName","src":"1127:7:82","typeDescriptions":{}}},"id":23684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1127:18:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":23687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1157:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":23686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1149:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23685,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:82","typeDescriptions":{}}},"id":23688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1149:10:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1127:32:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434f532d3030333a434f4d504f4e454e545f49445f494e56414c4944","id":23690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1161:36:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd56e2e72358a9edc326877a1e38d84909493861f3901cf215f515edfe95f5df","typeString":"literal_string \"ERROR:COS-003:COMPONENT_ID_INVALID\""},"value":"ERROR:COS-003:COMPONENT_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd56e2e72358a9edc326877a1e38d84909493861f3901cf215f515edfe95f5df","typeString":"literal_string \"ERROR:COS-003:COMPONENT_ID_INVALID\""}],"id":23680,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1119:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1119:79:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23692,"nodeType":"ExpressionStatement","src":"1119:79:82"},{"assignments":[23694],"declarations":[{"constant":false,"id":23694,"mutability":"mutable","name":"owner","nameLocation":"1219:5:82","nodeType":"VariableDeclaration","scope":23727,"src":"1211:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23693,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23698,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23695,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23674,"src":"1227:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":23696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOwner","nodeType":"MemberAccess","referencedDeclaration":2942,"src":"1227:18:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":23697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1227:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1211:36:82"},{"assignments":[23700],"declarations":[{"constant":false,"id":23700,"mutability":"mutable","name":"requiredRole","nameLocation":"1266:12:82","nodeType":"VariableDeclaration","scope":23727,"src":"1258:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23699,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1258:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":23708,"initialValue":{"arguments":[{"arguments":[{"id":23705,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23670,"src":"1336:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23703,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"1308:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"1308:27:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":23706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1308:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}],"expression":{"id":23701,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"1281:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRequiredRole","nodeType":"MemberAccess","referencedDeclaration":17670,"src":"1281:26:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_enum$_ComponentType_$2891_$returns$_t_bytes32_$","typeString":"function (enum IComponent.ComponentType) view external returns (bytes32)"}},"id":23707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1281:59:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1258:82:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":23713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":23710,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1361:10:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1361:12:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":23712,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23694,"src":"1377:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1361:21:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434f532d3030343a4e4f545f4f574e4552","id":23714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1384:25:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_3dfee339654c8563649f4df81de163cc439c725d11fcbc6e2de5d26baaee8ff7","typeString":"literal_string \"ERROR:COS-004:NOT_OWNER\""},"value":"ERROR:COS-004:NOT_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3dfee339654c8563649f4df81de163cc439c725d11fcbc6e2de5d26baaee8ff7","typeString":"literal_string \"ERROR:COS-004:NOT_OWNER\""}],"id":23709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1353:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1353:57:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23716,"nodeType":"ExpressionStatement","src":"1353:57:82"},{"expression":{"arguments":[{"arguments":[{"id":23720,"name":"requiredRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23700,"src":"1445:12:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":23721,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23694,"src":"1459:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23718,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"1429:7:82","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":23719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":4804,"src":"1429:15:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":23722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1429:36:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434f532d3030353a52455155495245445f524f4c455f4d495353494e47","id":23723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1467:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_88c17061477e2a1abea4e769d8a1e347027489fb75476594ddd18ce8ec84d271","typeString":"literal_string \"ERROR:COS-005:REQUIRED_ROLE_MISSING\""},"value":"ERROR:COS-005:REQUIRED_ROLE_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_88c17061477e2a1abea4e769d8a1e347027489fb75476594ddd18ce8ec84d271","typeString":"literal_string \"ERROR:COS-005:REQUIRED_ROLE_MISSING\""}],"id":23717,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1421:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1421:84:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23725,"nodeType":"ExpressionStatement","src":"1421:84:82"},{"id":23726,"nodeType":"PlaceholderStatement","src":"1516:1:82"}]},"id":23728,"name":"onlyOwnerWithRole","nameLocation":"1017:17:82","nodeType":"ModifierDefinition","parameters":{"id":23671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23670,"mutability":"mutable","name":"id","nameLocation":"1043:2:82","nodeType":"VariableDeclaration","scope":23728,"src":"1035:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23669,"name":"uint256","nodeType":"ElementaryTypeName","src":"1035:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1034:12:82"},"src":"1008:517:82","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":23742,"nodeType":"Block","src":"1596:85:82","statements":[{"expression":{"id":23740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23734,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"1607:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":23737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1660:11:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":23736,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1640:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1640:32:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23735,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"1620:19:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":23739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1620:53:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"1607:66:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23741,"nodeType":"ExpressionStatement","src":"1607:66:82"}]},"id":23743,"implemented":true,"kind":"function","modifiers":[{"id":23732,"modifierName":{"id":23731,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"1579:16:82"},"nodeType":"ModifierInvocation","src":"1579:16:82"}],"name":"_afterInitialize","nameLocation":"1542:16:82","nodeType":"FunctionDefinition","overrides":{"id":23730,"nodeType":"OverrideSpecifier","overrides":[],"src":"1570:8:82"},"parameters":{"id":23729,"nodeType":"ParameterList","parameters":[],"src":"1558:2:82"},"returnParameters":{"id":23733,"nodeType":"ParameterList","parameters":[],"src":"1596:0:82"},"scope":23837,"src":"1533:148:82","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5983],"body":{"id":23759,"nodeType":"Block","src":"1813:48:82","statements":[{"expression":{"arguments":[{"id":23756,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23746,"src":"1843:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"expression":{"id":23753,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"1824:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":17082,"src":"1824:18:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IComponent_$2988_$returns$__$","typeString":"function (contract IComponent) external"}},"id":23757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1824:29:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23758,"nodeType":"ExpressionStatement","src":"1824:29:82"}]},"functionSelector":"01267951","id":23760,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23750,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23746,"src":"1796:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"id":23751,"modifierName":{"id":23749,"name":"onlyOwnerWithRoleFromComponent","nodeType":"IdentifierPath","referencedDeclaration":23668,"src":"1765:30:82"},"nodeType":"ModifierInvocation","src":"1765:41:82"}],"name":"propose","nameLocation":"1698:7:82","nodeType":"FunctionDefinition","overrides":{"id":23748,"nodeType":"OverrideSpecifier","overrides":[],"src":"1747:8:82"},"parameters":{"id":23747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23746,"mutability":"mutable","name":"component","nameLocation":"1717:9:82","nodeType":"VariableDeclaration","scope":23760,"src":"1706:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":23745,"nodeType":"UserDefinedTypeName","pathNode":{"id":23744,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"1706:10:82"},"referencedDeclaration":2988,"src":"1706:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"1705:22:82"},"returnParameters":{"id":23752,"nodeType":"ParameterList","parameters":[],"src":"1813:0:82"},"scope":23837,"src":"1689:172:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5988],"body":{"id":23773,"nodeType":"Block","src":"1962:64:82","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a434f532d3030363a494d504c454d454e4154494f4e5f4d495353494e47","id":23770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1980:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c33643b536d9b9641d49decf8b2e52fa547e9e6beac65134376f36156613b58","typeString":"literal_string \"ERROR:COS-006:IMPLEMENATION_MISSING\""},"value":"ERROR:COS-006:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c33643b536d9b9641d49decf8b2e52fa547e9e6beac65134376f36156613b58","typeString":"literal_string \"ERROR:COS-006:IMPLEMENATION_MISSING\""}],"id":23769,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"1973:6:82","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":23771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1973:45:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23772,"nodeType":"ExpressionStatement","src":"1973:45:82"}]},"functionSelector":"a694fc3a","id":23774,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23766,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23762,"src":"1952:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23767,"modifierName":{"id":23765,"name":"onlyOwnerWithRole","nodeType":"IdentifierPath","referencedDeclaration":23728,"src":"1934:17:82"},"nodeType":"ModifierInvocation","src":"1934:21:82"}],"name":"stake","nameLocation":"1878:5:82","nodeType":"FunctionDefinition","overrides":{"id":23764,"nodeType":"OverrideSpecifier","overrides":[],"src":"1915:8:82"},"parameters":{"id":23763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23762,"mutability":"mutable","name":"id","nameLocation":"1892:2:82","nodeType":"VariableDeclaration","scope":23774,"src":"1884:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23761,"name":"uint256","nodeType":"ElementaryTypeName","src":"1884:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1883:12:82"},"returnParameters":{"id":23768,"nodeType":"ParameterList","parameters":[],"src":"1962:0:82"},"scope":23837,"src":"1869:157:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5993],"body":{"id":23787,"nodeType":"Block","src":"2129:64:82","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a434f532d3030373a494d504c454d454e4154494f4e5f4d495353494e47","id":23784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2147:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb6da26fba0466dffcc83682913bbbb22b0d48dbbc0bda69e09fccb7c56e2455","typeString":"literal_string \"ERROR:COS-007:IMPLEMENATION_MISSING\""},"value":"ERROR:COS-007:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb6da26fba0466dffcc83682913bbbb22b0d48dbbc0bda69e09fccb7c56e2455","typeString":"literal_string \"ERROR:COS-007:IMPLEMENATION_MISSING\""}],"id":23783,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"2140:6:82","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":23785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2140:45:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23786,"nodeType":"ExpressionStatement","src":"2140:45:82"}]},"functionSelector":"2e1a7d4d","id":23788,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23780,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23776,"src":"2119:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23781,"modifierName":{"id":23779,"name":"onlyOwnerWithRole","nodeType":"IdentifierPath","referencedDeclaration":23728,"src":"2101:17:82"},"nodeType":"ModifierInvocation","src":"2101:21:82"}],"name":"withdraw","nameLocation":"2043:8:82","nodeType":"FunctionDefinition","overrides":{"id":23778,"nodeType":"OverrideSpecifier","overrides":[],"src":"2083:8:82"},"parameters":{"id":23777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23776,"mutability":"mutable","name":"id","nameLocation":"2060:2:82","nodeType":"VariableDeclaration","scope":23788,"src":"2052:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23775,"name":"uint256","nodeType":"ElementaryTypeName","src":"2052:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2051:12:82"},"returnParameters":{"id":23782,"nodeType":"ParameterList","parameters":[],"src":"2129:0:82"},"scope":23837,"src":"2034:159:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5998],"body":{"id":23803,"nodeType":"Block","src":"2303:39:82","statements":[{"expression":{"arguments":[{"id":23800,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23790,"src":"2331:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23797,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"2314:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pause","nodeType":"MemberAccess","referencedDeclaration":17369,"src":"2314:16:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":23801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2314:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23802,"nodeType":"ExpressionStatement","src":"2314:20:82"}]},"functionSelector":"136439dd","id":23804,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23794,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23790,"src":"2293:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23795,"modifierName":{"id":23793,"name":"onlyOwnerWithRole","nodeType":"IdentifierPath","referencedDeclaration":23728,"src":"2275:17:82"},"nodeType":"ModifierInvocation","src":"2275:21:82"}],"name":"pause","nameLocation":"2220:5:82","nodeType":"FunctionDefinition","overrides":{"id":23792,"nodeType":"OverrideSpecifier","overrides":[],"src":"2257:8:82"},"parameters":{"id":23791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23790,"mutability":"mutable","name":"id","nameLocation":"2234:2:82","nodeType":"VariableDeclaration","scope":23804,"src":"2226:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23789,"name":"uint256","nodeType":"ElementaryTypeName","src":"2226:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2225:12:82"},"returnParameters":{"id":23796,"nodeType":"ParameterList","parameters":[],"src":"2303:0:82"},"scope":23837,"src":"2211:131:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6003],"body":{"id":23819,"nodeType":"Block","src":"2445:41:82","statements":[{"expression":{"arguments":[{"id":23816,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"2475:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23813,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"2456:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unpause","nodeType":"MemberAccess","referencedDeclaration":17400,"src":"2456:18:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":23817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2456:22:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23818,"nodeType":"ExpressionStatement","src":"2456:22:82"}]},"functionSelector":"fabc1cbc","id":23820,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23810,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"2435:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23811,"modifierName":{"id":23809,"name":"onlyOwnerWithRole","nodeType":"IdentifierPath","referencedDeclaration":23728,"src":"2417:17:82"},"nodeType":"ModifierInvocation","src":"2417:21:82"}],"name":"unpause","nameLocation":"2359:7:82","nodeType":"FunctionDefinition","overrides":{"id":23808,"nodeType":"OverrideSpecifier","overrides":[],"src":"2398:8:82"},"parameters":{"id":23807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23806,"mutability":"mutable","name":"id","nameLocation":"2375:2:82","nodeType":"VariableDeclaration","scope":23820,"src":"2367:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23805,"name":"uint256","nodeType":"ElementaryTypeName","src":"2367:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2366:12:82"},"returnParameters":{"id":23812,"nodeType":"ParameterList","parameters":[],"src":"2445:0:82"},"scope":23837,"src":"2350:136:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6008],"body":{"id":23835,"nodeType":"Block","src":"2589:59:82","statements":[{"expression":{"arguments":[{"id":23832,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23822,"src":"2637:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23829,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"2600:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"archiveFromComponentOwner","nodeType":"MemberAccess","referencedDeclaration":17431,"src":"2600:36:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":23833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2600:40:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23834,"nodeType":"ExpressionStatement","src":"2600:40:82"}]},"functionSelector":"93c829fc","id":23836,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23826,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23822,"src":"2579:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23827,"modifierName":{"id":23825,"name":"onlyOwnerWithRole","nodeType":"IdentifierPath","referencedDeclaration":23728,"src":"2561:17:82"},"nodeType":"ModifierInvocation","src":"2561:21:82"}],"name":"archive","nameLocation":"2503:7:82","nodeType":"FunctionDefinition","overrides":{"id":23824,"nodeType":"OverrideSpecifier","overrides":[],"src":"2542:8:82"},"parameters":{"id":23823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23822,"mutability":"mutable","name":"id","nameLocation":"2519:2:82","nodeType":"VariableDeclaration","scope":23836,"src":"2511:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23821,"name":"uint256","nodeType":"ElementaryTypeName","src":"2511:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2510:12:82"},"returnParameters":{"id":23828,"nodeType":"ParameterList","parameters":[],"src":"2589:0:82"},"scope":23837,"src":"2494:154:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":23838,"src":"488:2163:82"}],"src":"40:2611:82"},"id":82},"contracts/services/InstanceOperatorService.sol":{"ast":{"absolutePath":"contracts/services/InstanceOperatorService.sol","exportedSymbols":{"AccessControl":[7145],"AccessControlEnumerable":[7270],"AccessController":[15687],"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"Component":[2884],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC20":[8753],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IAccessControl":[7343],"IAccessControlEnumerable":[7368],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC20Metadata":[8856],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IQuery":[5616],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"InstanceOperatorService":[24393],"Ownable":[7481],"Pausable":[8167],"PolicyController":[19974],"PoolController":[21207],"Product":[4042],"Strings":[10804],"TestProduct":[28333],"TransferHelper":[26659],"TreasuryModule":[23615]},"id":24394,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23839,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:83"},{"absolutePath":"contracts/modules/AccessController.sol","file":"../modules/AccessController.sol","id":23840,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":15688,"src":"63:41:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/BundleController.sol","file":"../modules/BundleController.sol","id":23841,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":16947,"src":"105:41:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/ComponentController.sol","file":"../modules/ComponentController.sol","id":23842,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":17948,"src":"147:44:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"../modules/PoolController.sol","id":23843,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":21208,"src":"192:39:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/TreasuryModule.sol","file":"../modules/TreasuryModule.sol","id":23844,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":23616,"src":"232:39:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":23845,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":26414,"src":"272:38:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/test/TestProduct.sol","file":"../test/TestProduct.sol","id":23846,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":28334,"src":"311:33:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/tokens/BundleToken.sol","file":"../tokens/BundleToken.sol","id":23847,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":28752,"src":"345:35:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":23848,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":2989,"src":"382:69:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":23849,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":3080,"src":"452:67:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IQuery.sol","file":"@etherisc/gif-interface/contracts/modules/IQuery.sol","id":23850,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":5617,"src":"520:62:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","file":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","id":23851,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":5975,"src":"583:65:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","id":23852,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":6161,"src":"649:81:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":23853,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":7482,"src":"732:52:83","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":23854,"name":"IInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":6160,"src":"827:24:83"},"id":23855,"nodeType":"InheritanceSpecifier","src":"827:24:83"},{"baseName":{"id":23856,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"858:14:83"},"id":23857,"nodeType":"InheritanceSpecifier","src":"858:14:83"},{"baseName":{"id":23858,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"879:7:83"},"id":23859,"nodeType":"InheritanceSpecifier","src":"879:7:83"}],"contractDependencies":[6160,7481,8059,10518,26413],"contractKind":"contract","fullyImplemented":true,"id":24393,"linearizedBaseContracts":[24393,7481,26413,8059,10518,6160],"name":"InstanceOperatorService","nameLocation":"795:23:83","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":23862,"mutability":"mutable","name":"_component","nameLocation":"922:10:83","nodeType":"VariableDeclaration","scope":24393,"src":"894:38:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":23861,"nodeType":"UserDefinedTypeName","pathNode":{"id":23860,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"894:19:83"},"referencedDeclaration":17947,"src":"894:19:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"constant":false,"id":23865,"mutability":"mutable","name":"_pool","nameLocation":"961:5:83","nodeType":"VariableDeclaration","scope":24393,"src":"938:28:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":23864,"nodeType":"UserDefinedTypeName","pathNode":{"id":23863,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"938:14:83"},"referencedDeclaration":21207,"src":"938:14:83","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"private"},{"constant":false,"id":23868,"mutability":"mutable","name":"_treasury","nameLocation":"995:9:83","nodeType":"VariableDeclaration","scope":24393,"src":"972:32:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":23867,"nodeType":"UserDefinedTypeName","pathNode":{"id":23866,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"972:14:83"},"referencedDeclaration":23615,"src":"972:14:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"private"},{"body":{"id":23880,"nodeType":"Block","src":"1050:99:83","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":23875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":23871,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"1068:5:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1068:7:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":23873,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1079:10:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1079:12:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1068:23:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a494f532d3030313a4e4f545f494e5354414e43455f4f50455241544f52","id":23876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1093:37:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f9a629a891ef96edc5744c3431f880a108556562b68950708236c732d2e7e88","typeString":"literal_string \"ERROR:IOS-001:NOT_INSTANCE_OPERATOR\""},"value":"ERROR:IOS-001:NOT_INSTANCE_OPERATOR"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4f9a629a891ef96edc5744c3431f880a108556562b68950708236c732d2e7e88","typeString":"literal_string \"ERROR:IOS-001:NOT_INSTANCE_OPERATOR\""}],"id":23870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1060:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1060:71:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23878,"nodeType":"ExpressionStatement","src":"1060:71:83"},{"id":23879,"nodeType":"PlaceholderStatement","src":"1141:1:83"}]},"id":23881,"name":"onlyInstanceOperatorAddress","nameLocation":"1020:27:83","nodeType":"ModifierDefinition","parameters":{"id":23869,"nodeType":"ParameterList","parameters":[],"src":"1047:2:83"},"src":"1011:138:83","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":23922,"nodeType":"Block","src":"1218:330:83","statements":[{"expression":{"id":23893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23887,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"1228:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":23890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1281:11:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":23889,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1261:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1261:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23888,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"1241:19:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":23892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1241:53:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"1228:66:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23894,"nodeType":"ExpressionStatement","src":"1228:66:83"},{"expression":{"id":23901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23895,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23865,"src":"1304:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6f6c","id":23898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1347:6:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":23897,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1327:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1327:27:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23896,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"1312:14:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":23900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1312:43:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"src":"1304:51:83","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":23902,"nodeType":"ExpressionStatement","src":"1304:51:83"},{"expression":{"id":23909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23903,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"1365:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"5472656173757279","id":23906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1412:10:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""}],"id":23905,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1392:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1392:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23904,"name":"TreasuryModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23615,"src":"1377:14:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TreasuryModule_$23615_$","typeString":"type(contract TreasuryModule)"}},"id":23908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1377:47:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"src":"1365:59:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":23910,"nodeType":"ExpressionStatement","src":"1365:59:83"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":23912,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1454:10:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1454:12:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23911,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"1435:18:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":23914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1435:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23915,"nodeType":"ExpressionStatement","src":"1435:32:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":23916,"name":"_linkBundleModuleToBundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23970,"src":"1477:30:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":23917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1477:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23918,"nodeType":"ExpressionStatement","src":"1477:32:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":23919,"name":"_setDefaultAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23945,"src":"1519:20:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":23920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1519:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23921,"nodeType":"ExpressionStatement","src":"1519:22:83"}]},"id":23923,"implemented":true,"kind":"function","modifiers":[{"id":23885,"modifierName":{"id":23884,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"1201:16:83"},"nodeType":"ModifierInvocation","src":"1201:16:83"}],"name":"_afterInitialize","nameLocation":"1164:16:83","nodeType":"FunctionDefinition","overrides":{"id":23883,"nodeType":"OverrideSpecifier","overrides":[],"src":"1192:8:83"},"parameters":{"id":23882,"nodeType":"ParameterList","parameters":[],"src":"1180:2:83"},"returnParameters":{"id":23886,"nodeType":"ParameterList","parameters":[],"src":"1218:0:83"},"scope":24393,"src":"1155:393:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":23944,"nodeType":"Block","src":"1594:141:83","statements":[{"assignments":[23928],"declarations":[{"constant":false,"id":23928,"mutability":"mutable","name":"access","nameLocation":"1621:6:83","nodeType":"VariableDeclaration","scope":23944,"src":"1604:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AccessController_$15687","typeString":"contract AccessController"},"typeName":{"id":23927,"nodeType":"UserDefinedTypeName","pathNode":{"id":23926,"name":"AccessController","nodeType":"IdentifierPath","referencedDeclaration":15687,"src":"1604:16:83"},"referencedDeclaration":15687,"src":"1604:16:83","typeDescriptions":{"typeIdentifier":"t_contract$_AccessController_$15687","typeString":"contract AccessController"}},"visibility":"internal"}],"id":23934,"initialValue":{"arguments":[{"arguments":[{"hexValue":"416363657373","id":23931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1667:8:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""}],"id":23930,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1647:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1647:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23929,"name":"AccessController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15687,"src":"1630:16:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AccessController_$15687_$","typeString":"type(contract AccessController)"}},"id":23933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1630:47:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AccessController_$15687","typeString":"contract AccessController"}},"nodeType":"VariableDeclarationStatement","src":"1604:73:83"},{"expression":{"arguments":[{"arguments":[{"id":23940,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1722:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"}],"id":23939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1714:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23938,"name":"address","nodeType":"ElementaryTypeName","src":"1714:7:83","typeDescriptions":{}}},"id":23941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1714:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23935,"name":"access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23928,"src":"1687:6:83","typeDescriptions":{"typeIdentifier":"t_contract$_AccessController_$15687","typeString":"contract AccessController"}},"id":23937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setDefaultAdminRole","nodeType":"MemberAccess","referencedDeclaration":15499,"src":"1687:26:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":23942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1687:41:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23943,"nodeType":"ExpressionStatement","src":"1687:41:83"}]},"id":23945,"implemented":true,"kind":"function","modifiers":[],"name":"_setDefaultAdminRole","nameLocation":"1563:20:83","nodeType":"FunctionDefinition","parameters":{"id":23924,"nodeType":"ParameterList","parameters":[],"src":"1583:2:83"},"returnParameters":{"id":23925,"nodeType":"ParameterList","parameters":[],"src":"1594:0:83"},"scope":24393,"src":"1554:181:83","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":23969,"nodeType":"Block","src":"1791:193:83","statements":[{"assignments":[23950],"declarations":[{"constant":false,"id":23950,"mutability":"mutable","name":"token","nameLocation":"1813:5:83","nodeType":"VariableDeclaration","scope":23969,"src":"1801:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"},"typeName":{"id":23949,"nodeType":"UserDefinedTypeName","pathNode":{"id":23948,"name":"BundleToken","nodeType":"IdentifierPath","referencedDeclaration":28751,"src":"1801:11:83"},"referencedDeclaration":28751,"src":"1801:11:83","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"visibility":"internal"}],"id":23956,"initialValue":{"arguments":[{"arguments":[{"hexValue":"42756e646c65546f6b656e","id":23953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1853:13:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_49971d9abb6528cf70ffd04b9f4808a4d05dcff6326ec72b1165dc2f6e11a039","typeString":"literal_string \"BundleToken\""},"value":"BundleToken"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_49971d9abb6528cf70ffd04b9f4808a4d05dcff6326ec72b1165dc2f6e11a039","typeString":"literal_string \"BundleToken\""}],"id":23952,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1833:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1833:34:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23951,"name":"BundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28751,"src":"1821:11:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleToken_$28751_$","typeString":"type(contract BundleToken)"}},"id":23955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1821:47:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"nodeType":"VariableDeclarationStatement","src":"1801:67:83"},{"assignments":[23958],"declarations":[{"constant":false,"id":23958,"mutability":"mutable","name":"bundleAddress","nameLocation":"1886:13:83","nodeType":"VariableDeclaration","scope":23969,"src":"1878:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23957,"name":"address","nodeType":"ElementaryTypeName","src":"1878:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23962,"initialValue":{"arguments":[{"hexValue":"42756e646c65","id":23960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1922:8:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""},"value":"Bundle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""}],"id":23959,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1902:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1902:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1878:53:83"},{"expression":{"arguments":[{"id":23966,"name":"bundleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23958,"src":"1963:13:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23963,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23950,"src":"1941:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"id":23965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setBundleModule","nodeType":"MemberAccess","referencedDeclaration":28625,"src":"1941:21:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":23967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1941:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23968,"nodeType":"ExpressionStatement","src":"1941:36:83"}]},"id":23970,"implemented":true,"kind":"function","modifiers":[],"name":"_linkBundleModuleToBundleToken","nameLocation":"1750:30:83","nodeType":"FunctionDefinition","parameters":{"id":23946,"nodeType":"ParameterList","parameters":[],"src":"1780:2:83"},"returnParameters":{"id":23947,"nodeType":"ParameterList","parameters":[],"src":"1791:0:83"},"scope":24393,"src":"1741:243:83","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"baseFunctions":[6017],"body":{"id":23984,"nodeType":"Block","src":"2123:54:83","statements":[{"expression":{"arguments":[{"id":23981,"name":"_newRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23972,"src":"2158:11:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":23978,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"2133:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":23980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"prepareRelease","nodeType":"MemberAccess","referencedDeclaration":5671,"src":"2133:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":23982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2133:37:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23983,"nodeType":"ExpressionStatement","src":"2133:37:83"}]},"functionSelector":"893917ea","id":23985,"implemented":true,"kind":"function","modifiers":[{"id":23976,"modifierName":{"id":23975,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"2090:27:83"},"nodeType":"ModifierInvocation","src":"2090:27:83"}],"name":"prepareRelease","nameLocation":"2018:14:83","nodeType":"FunctionDefinition","overrides":{"id":23974,"nodeType":"OverrideSpecifier","overrides":[],"src":"2072:8:83"},"parameters":{"id":23973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23972,"mutability":"mutable","name":"_newRelease","nameLocation":"2041:11:83","nodeType":"VariableDeclaration","scope":23985,"src":"2033:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23971,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2033:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2032:21:83"},"returnParameters":{"id":23977,"nodeType":"ParameterList","parameters":[],"src":"2123:0:83"},"scope":24393,"src":"2009:168:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6024],"body":{"id":24002,"nodeType":"Block","src":"2316:68:83","statements":[{"expression":{"arguments":[{"id":23998,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23987,"src":"2345:13:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":23999,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23989,"src":"2360:16:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23995,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"2326:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":23997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"register","nodeType":"MemberAccess","referencedDeclaration":5654,"src":"2326:18:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) external"}},"id":24000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2326:51:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24001,"nodeType":"ExpressionStatement","src":"2326:51:83"}]},"functionSelector":"d22057a9","id":24003,"implemented":true,"kind":"function","modifiers":[{"id":23993,"modifierName":{"id":23992,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"2284:27:83"},"nodeType":"ModifierInvocation","src":"2284:27:83"}],"name":"register","nameLocation":"2192:8:83","nodeType":"FunctionDefinition","overrides":{"id":23991,"nodeType":"OverrideSpecifier","overrides":[],"src":"2267:8:83"},"parameters":{"id":23990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23987,"mutability":"mutable","name":"_contractName","nameLocation":"2209:13:83","nodeType":"VariableDeclaration","scope":24003,"src":"2201:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2201:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":23989,"mutability":"mutable","name":"_contractAddress","nameLocation":"2232:16:83","nodeType":"VariableDeclaration","scope":24003,"src":"2224:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23988,"name":"address","nodeType":"ElementaryTypeName","src":"2224:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2200:49:83"},"returnParameters":{"id":23994,"nodeType":"ParameterList","parameters":[],"src":"2316:0:83"},"scope":24393,"src":"2183:201:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6029],"body":{"id":24017,"nodeType":"Block","src":"2502:52:83","statements":[{"expression":{"arguments":[{"id":24014,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24005,"src":"2533:13:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24011,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"2512:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":24013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deregister","nodeType":"MemberAccess","referencedDeclaration":5666,"src":"2512:20:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":24015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2512:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24016,"nodeType":"ExpressionStatement","src":"2512:35:83"}]},"functionSelector":"20813154","id":24018,"implemented":true,"kind":"function","modifiers":[{"id":24009,"modifierName":{"id":24008,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"2469:27:83"},"nodeType":"ModifierInvocation","src":"2469:27:83"}],"name":"deregister","nameLocation":"2399:10:83","nodeType":"FunctionDefinition","overrides":{"id":24007,"nodeType":"OverrideSpecifier","overrides":[],"src":"2451:8:83"},"parameters":{"id":24006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24005,"mutability":"mutable","name":"_contractName","nameLocation":"2418:13:83","nodeType":"VariableDeclaration","scope":24018,"src":"2410:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2410:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2409:23:83"},"returnParameters":{"id":24010,"nodeType":"ParameterList","parameters":[],"src":"2502:0:83"},"scope":24393,"src":"2390:164:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6038],"body":{"id":24038,"nodeType":"Block","src":"2753:87:83","statements":[{"expression":{"arguments":[{"id":24033,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24020,"src":"2791:8:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24034,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24022,"src":"2801:13:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24035,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24024,"src":"2816:16:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24030,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"2763:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":24032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerInRelease","nodeType":"MemberAccess","referencedDeclaration":5647,"src":"2763:27:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,bytes32,address) external"}},"id":24036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2763:70:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24037,"nodeType":"ExpressionStatement","src":"2763:70:83"}]},"functionSelector":"1d5e7314","id":24039,"implemented":true,"kind":"function","modifiers":[{"id":24028,"modifierName":{"id":24027,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"2720:27:83"},"nodeType":"ModifierInvocation","src":"2720:27:83"}],"name":"registerInRelease","nameLocation":"2569:17:83","nodeType":"FunctionDefinition","overrides":{"id":24026,"nodeType":"OverrideSpecifier","overrides":[],"src":"2702:8:83"},"parameters":{"id":24025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24020,"mutability":"mutable","name":"_release","nameLocation":"2604:8:83","nodeType":"VariableDeclaration","scope":24039,"src":"2596:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2596:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24022,"mutability":"mutable","name":"_contractName","nameLocation":"2630:13:83","nodeType":"VariableDeclaration","scope":24039,"src":"2622:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2622:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24024,"mutability":"mutable","name":"_contractAddress","nameLocation":"2661:16:83","nodeType":"VariableDeclaration","scope":24039,"src":"2653:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24023,"name":"address","nodeType":"ElementaryTypeName","src":"2653:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2586:97:83"},"returnParameters":{"id":24029,"nodeType":"ParameterList","parameters":[],"src":"2753:0:83"},"scope":24393,"src":"2560:280:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6045],"body":{"id":24056,"nodeType":"Block","src":"2982:71:83","statements":[{"expression":{"arguments":[{"id":24052,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24041,"src":"3022:8:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24053,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24043,"src":"3032:13:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24049,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"2992:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":24051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deregisterInRelease","nodeType":"MemberAccess","referencedDeclaration":5661,"src":"2992:29:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) external"}},"id":24054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2992:54:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24055,"nodeType":"ExpressionStatement","src":"2992:54:83"}]},"functionSelector":"dc527b08","id":24057,"implemented":true,"kind":"function","modifiers":[{"id":24047,"modifierName":{"id":24046,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"2950:27:83"},"nodeType":"ModifierInvocation","src":"2950:27:83"}],"name":"deregisterInRelease","nameLocation":"2855:19:83","nodeType":"FunctionDefinition","overrides":{"id":24045,"nodeType":"OverrideSpecifier","overrides":[],"src":"2933:8:83"},"parameters":{"id":24044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24041,"mutability":"mutable","name":"_release","nameLocation":"2883:8:83","nodeType":"VariableDeclaration","scope":24057,"src":"2875:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24040,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2875:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24043,"mutability":"mutable","name":"_contractName","nameLocation":"2901:13:83","nodeType":"VariableDeclaration","scope":24057,"src":"2893:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24042,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2893:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2874:41:83"},"returnParameters":{"id":24048,"nodeType":"ParameterList","parameters":[],"src":"2982:0:83"},"scope":24393,"src":"2846:207:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6050],"body":{"id":24071,"nodeType":"Block","src":"3183:39:83","statements":[{"expression":{"arguments":[{"id":24068,"name":"_role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24059,"src":"3209:5:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24065,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"3193:7:83","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addRole","nodeType":"MemberAccess","referencedDeclaration":4830,"src":"3193:15:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":24069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3193:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24070,"nodeType":"ExpressionStatement","src":"3193:22:83"}]},"functionSelector":"c42994a2","id":24072,"implemented":true,"kind":"function","modifiers":[{"id":24063,"modifierName":{"id":24062,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"3150:27:83"},"nodeType":"ModifierInvocation","src":"3150:27:83"}],"name":"createRole","nameLocation":"3089:10:83","nodeType":"FunctionDefinition","overrides":{"id":24061,"nodeType":"OverrideSpecifier","overrides":[],"src":"3133:8:83"},"parameters":{"id":24060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24059,"mutability":"mutable","name":"_role","nameLocation":"3108:5:83","nodeType":"VariableDeclaration","scope":24072,"src":"3100:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3100:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3099:15:83"},"returnParameters":{"id":24064,"nodeType":"ParameterList","parameters":[],"src":"3183:0:83"},"scope":24393,"src":"3080:142:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6055],"body":{"id":24086,"nodeType":"Block","src":"3335:46:83","statements":[{"expression":{"arguments":[{"id":24083,"name":"_role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24074,"src":"3368:5:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24080,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"3345:7:83","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"invalidateRole","nodeType":"MemberAccess","referencedDeclaration":4835,"src":"3345:22:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":24084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3345:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24085,"nodeType":"ExpressionStatement","src":"3345:29:83"}]},"functionSelector":"d17d0233","id":24087,"implemented":true,"kind":"function","modifiers":[{"id":24078,"modifierName":{"id":24077,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"3302:27:83"},"nodeType":"ModifierInvocation","src":"3302:27:83"}],"name":"invalidateRole","nameLocation":"3237:14:83","nodeType":"FunctionDefinition","overrides":{"id":24076,"nodeType":"OverrideSpecifier","overrides":[],"src":"3285:8:83"},"parameters":{"id":24075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24074,"mutability":"mutable","name":"_role","nameLocation":"3260:5:83","nodeType":"VariableDeclaration","scope":24087,"src":"3252:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3252:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3251:15:83"},"returnParameters":{"id":24079,"nodeType":"ParameterList","parameters":[],"src":"3335:0:83"},"scope":24393,"src":"3228:153:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6062],"body":{"id":24104,"nodeType":"Block","src":"3505:51:83","statements":[{"expression":{"arguments":[{"id":24100,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24089,"src":"3533:4:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24101,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24091,"src":"3539:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24097,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"3515:7:83","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"grantRole","nodeType":"MemberAccess","referencedDeclaration":4811,"src":"3515:17:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) external"}},"id":24102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3515:34:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24103,"nodeType":"ExpressionStatement","src":"3515:34:83"}]},"functionSelector":"2f2ff15d","id":24105,"implemented":true,"kind":"function","modifiers":[{"id":24095,"modifierName":{"id":24094,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"3473:27:83"},"nodeType":"ModifierInvocation","src":"3473:27:83"}],"name":"grantRole","nameLocation":"3396:9:83","nodeType":"FunctionDefinition","overrides":{"id":24093,"nodeType":"OverrideSpecifier","overrides":[],"src":"3456:8:83"},"parameters":{"id":24092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24089,"mutability":"mutable","name":"role","nameLocation":"3414:4:83","nodeType":"VariableDeclaration","scope":24105,"src":"3406:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3406:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24091,"mutability":"mutable","name":"principal","nameLocation":"3428:9:83","nodeType":"VariableDeclaration","scope":24105,"src":"3420:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24090,"name":"address","nodeType":"ElementaryTypeName","src":"3420:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3405:33:83"},"returnParameters":{"id":24096,"nodeType":"ParameterList","parameters":[],"src":"3505:0:83"},"scope":24393,"src":"3387:169:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6069],"body":{"id":24122,"nodeType":"Block","src":"3684:52:83","statements":[{"expression":{"arguments":[{"id":24118,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24107,"src":"3713:4:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24119,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24109,"src":"3719:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24115,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"3694:7:83","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"revokeRole","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"3694:18:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) external"}},"id":24120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3694:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24121,"nodeType":"ExpressionStatement","src":"3694:35:83"}]},"functionSelector":"d547741f","id":24123,"implemented":true,"kind":"function","modifiers":[{"id":24113,"modifierName":{"id":24112,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"3651:27:83"},"nodeType":"ModifierInvocation","src":"3651:27:83"}],"name":"revokeRole","nameLocation":"3571:10:83","nodeType":"FunctionDefinition","overrides":{"id":24111,"nodeType":"OverrideSpecifier","overrides":[],"src":"3633:8:83"},"parameters":{"id":24110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24107,"mutability":"mutable","name":"role","nameLocation":"3590:4:83","nodeType":"VariableDeclaration","scope":24123,"src":"3582:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24106,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3582:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24109,"mutability":"mutable","name":"principal","nameLocation":"3604:9:83","nodeType":"VariableDeclaration","scope":24123,"src":"3596:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24108,"name":"address","nodeType":"ElementaryTypeName","src":"3596:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3581:33:83"},"returnParameters":{"id":24114,"nodeType":"ParameterList","parameters":[],"src":"3684:0:83"},"scope":24393,"src":"3562:174:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6074],"body":{"id":24170,"nodeType":"Block","src":"3859:319:83","statements":[{"expression":{"arguments":[{"id":24134,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24125,"src":"3888:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24131,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"3869:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"3869:18:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":24135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3869:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24136,"nodeType":"ExpressionStatement","src":"3869:22:83"},{"condition":{"arguments":[{"id":24139,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24125,"src":"3927:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24137,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"3906:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"3906:20:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":24140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3906:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24169,"nodeType":"IfStatement","src":"3902:270:83","trueBody":{"id":24168,"nodeType":"Block","src":"3932:240:83","statements":[{"assignments":[24143],"declarations":[{"constant":false,"id":24143,"mutability":"mutable","name":"component","nameLocation":"3957:9:83","nodeType":"VariableDeclaration","scope":24168,"src":"3946:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":24142,"nodeType":"UserDefinedTypeName","pathNode":{"id":24141,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"3946:10:83"},"referencedDeclaration":2988,"src":"3946:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":24148,"initialValue":{"arguments":[{"id":24146,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24125,"src":"3993:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24144,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"3969:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"3969:23:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":24147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3969:27:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"3946:50:83"},{"assignments":[24151],"declarations":[{"constant":false,"id":24151,"mutability":"mutable","name":"product","nameLocation":"4019:7:83","nodeType":"VariableDeclaration","scope":24168,"src":"4010:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"},"typeName":{"id":24150,"nodeType":"UserDefinedTypeName","pathNode":{"id":24149,"name":"IProduct","nodeType":"IdentifierPath","referencedDeclaration":3079,"src":"4010:8:83"},"referencedDeclaration":3079,"src":"4010:8:83","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"visibility":"internal"}],"id":24158,"initialValue":{"arguments":[{"arguments":[{"id":24155,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24143,"src":"4046:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":24154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4038:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24153,"name":"address","nodeType":"ElementaryTypeName","src":"4038:7:83","typeDescriptions":{}}},"id":24156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4038:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24152,"name":"IProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"4029:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProduct_$3079_$","typeString":"type(contract IProduct)"}},"id":24157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4029:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"nodeType":"VariableDeclarationStatement","src":"4010:47:83"},{"expression":{"arguments":[{"id":24162,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24125,"src":"4117:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24163,"name":"product","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24151,"src":"4137:7:83","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"id":24164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpoolId","nodeType":"MemberAccess","referencedDeclaration":3058,"src":"4137:21:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4137:23:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24159,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23865,"src":"4072:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":24161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setRiskpoolForProduct","nodeType":"MemberAccess","referencedDeclaration":20350,"src":"4072:27:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":24166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4072:89:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24167,"nodeType":"ExpressionStatement","src":"4072:89:83"}]}}]},"functionSelector":"b759f954","id":24171,"implemented":true,"kind":"function","modifiers":[{"id":24129,"modifierName":{"id":24128,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"3826:27:83"},"nodeType":"ModifierInvocation","src":"3826:27:83"}],"name":"approve","nameLocation":"3771:7:83","nodeType":"FunctionDefinition","overrides":{"id":24127,"nodeType":"OverrideSpecifier","overrides":[],"src":"3808:8:83"},"parameters":{"id":24126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24125,"mutability":"mutable","name":"id","nameLocation":"3787:2:83","nodeType":"VariableDeclaration","scope":24171,"src":"3779:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24124,"name":"uint256","nodeType":"ElementaryTypeName","src":"3779:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3778:12:83"},"returnParameters":{"id":24130,"nodeType":"ParameterList","parameters":[],"src":"3859:0:83"},"scope":24393,"src":"3762:416:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6079],"body":{"id":24185,"nodeType":"Block","src":"4282:39:83","statements":[{"expression":{"arguments":[{"id":24182,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24173,"src":"4311:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24179,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"4292:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decline","nodeType":"MemberAccess","referencedDeclaration":17276,"src":"4292:18:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":24183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4292:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24184,"nodeType":"ExpressionStatement","src":"4292:22:83"}]},"functionSelector":"a0355f4e","id":24186,"implemented":true,"kind":"function","modifiers":[{"id":24177,"modifierName":{"id":24176,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"4249:27:83"},"nodeType":"ModifierInvocation","src":"4249:27:83"}],"name":"decline","nameLocation":"4193:7:83","nodeType":"FunctionDefinition","overrides":{"id":24175,"nodeType":"OverrideSpecifier","overrides":[],"src":"4231:8:83"},"parameters":{"id":24174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24173,"mutability":"mutable","name":"id","nameLocation":"4209:2:83","nodeType":"VariableDeclaration","scope":24186,"src":"4201:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24172,"name":"uint256","nodeType":"ElementaryTypeName","src":"4201:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4200:12:83"},"returnParameters":{"id":24178,"nodeType":"ParameterList","parameters":[],"src":"4282:0:83"},"scope":24393,"src":"4184:137:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6084],"body":{"id":24200,"nodeType":"Block","src":"4425:39:83","statements":[{"expression":{"arguments":[{"id":24197,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24188,"src":"4454:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24194,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"4435:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"suspend","nodeType":"MemberAccess","referencedDeclaration":17307,"src":"4435:18:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":24198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4435:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24199,"nodeType":"ExpressionStatement","src":"4435:22:83"}]},"functionSelector":"4b865846","id":24201,"implemented":true,"kind":"function","modifiers":[{"id":24192,"modifierName":{"id":24191,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"4392:27:83"},"nodeType":"ModifierInvocation","src":"4392:27:83"}],"name":"suspend","nameLocation":"4336:7:83","nodeType":"FunctionDefinition","overrides":{"id":24190,"nodeType":"OverrideSpecifier","overrides":[],"src":"4374:8:83"},"parameters":{"id":24189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24188,"mutability":"mutable","name":"id","nameLocation":"4352:2:83","nodeType":"VariableDeclaration","scope":24201,"src":"4344:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24187,"name":"uint256","nodeType":"ElementaryTypeName","src":"4344:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4343:12:83"},"returnParameters":{"id":24193,"nodeType":"ParameterList","parameters":[],"src":"4425:0:83"},"scope":24393,"src":"4327:137:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6089],"body":{"id":24215,"nodeType":"Block","src":"4567:38:83","statements":[{"expression":{"arguments":[{"id":24212,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24203,"src":"4595:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24209,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"4577:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resume","nodeType":"MemberAccess","referencedDeclaration":17338,"src":"4577:17:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":24213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4577:21:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24214,"nodeType":"ExpressionStatement","src":"4577:21:83"}]},"functionSelector":"414000b5","id":24216,"implemented":true,"kind":"function","modifiers":[{"id":24207,"modifierName":{"id":24206,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"4534:27:83"},"nodeType":"ModifierInvocation","src":"4534:27:83"}],"name":"resume","nameLocation":"4479:6:83","nodeType":"FunctionDefinition","overrides":{"id":24205,"nodeType":"OverrideSpecifier","overrides":[],"src":"4516:8:83"},"parameters":{"id":24204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24203,"mutability":"mutable","name":"id","nameLocation":"4494:2:83","nodeType":"VariableDeclaration","scope":24216,"src":"4486:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24202,"name":"uint256","nodeType":"ElementaryTypeName","src":"4486:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4485:12:83"},"returnParameters":{"id":24208,"nodeType":"ParameterList","parameters":[],"src":"4567:0:83"},"scope":24393,"src":"4470:135:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6094],"body":{"id":24230,"nodeType":"Block","src":"4709:59:83","statements":[{"expression":{"arguments":[{"id":24227,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24218,"src":"4758:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24224,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"4719:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"archiveFromInstanceOperator","nodeType":"MemberAccess","referencedDeclaration":17462,"src":"4719:38:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":24228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4719:42:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24229,"nodeType":"ExpressionStatement","src":"4719:42:83"}]},"functionSelector":"93c829fc","id":24231,"implemented":true,"kind":"function","modifiers":[{"id":24222,"modifierName":{"id":24221,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"4676:27:83"},"nodeType":"ModifierInvocation","src":"4676:27:83"}],"name":"archive","nameLocation":"4620:7:83","nodeType":"FunctionDefinition","overrides":{"id":24220,"nodeType":"OverrideSpecifier","overrides":[],"src":"4658:8:83"},"parameters":{"id":24219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24218,"mutability":"mutable","name":"id","nameLocation":"4636:2:83","nodeType":"VariableDeclaration","scope":24231,"src":"4628:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24217,"name":"uint256","nodeType":"ElementaryTypeName","src":"4628:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4627:12:83"},"returnParameters":{"id":24223,"nodeType":"ParameterList","parameters":[],"src":"4709:0:83"},"scope":24393,"src":"4611:157:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6101],"body":{"id":24245,"nodeType":"Block","src":"5004:62:83","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a494f532d3031303a494d504c454d454e4154494f4e5f4d495353494e47","id":24242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5021:37:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_eced10d50b8ba1711cfe37b4eb88407a5eaeb66e7a413a20b76444cdfd898ea4","typeString":"literal_string \"ERROR:IOS-010:IMPLEMENATION_MISSING\""},"value":"ERROR:IOS-010:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eced10d50b8ba1711cfe37b4eb88407a5eaeb66e7a413a20b76444cdfd898ea4","typeString":"literal_string \"ERROR:IOS-010:IMPLEMENATION_MISSING\""}],"id":24241,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"5014:6:83","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":24243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5014:45:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24244,"nodeType":"ExpressionStatement","src":"5014:45:83"}]},"functionSelector":"394c78ba","id":24246,"implemented":true,"kind":"function","modifiers":[{"id":24239,"modifierName":{"id":24238,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"4972:27:83"},"nodeType":"ModifierInvocation","src":"4972:27:83"}],"name":"setDefaultStaking","nameLocation":"4854:17:83","nodeType":"FunctionDefinition","overrides":{"id":24237,"nodeType":"OverrideSpecifier","overrides":[],"src":"4955:8:83"},"parameters":{"id":24236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24233,"mutability":"mutable","name":"componentType","nameLocation":"4888:13:83","nodeType":"VariableDeclaration","scope":24246,"src":"4881:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":24232,"name":"uint16","nodeType":"ElementaryTypeName","src":"4881:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":24235,"mutability":"mutable","name":"data","nameLocation":"4927:4:83","nodeType":"VariableDeclaration","scope":24246,"src":"4912:19:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":24234,"name":"bytes","nodeType":"ElementaryTypeName","src":"4912:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4871:66:83"},"returnParameters":{"id":24240,"nodeType":"ParameterList","parameters":[],"src":"5004:0:83"},"scope":24393,"src":"4845:221:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6108],"body":{"id":24260,"nodeType":"Block","src":"5285:62:83","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a494f532d3031313a494d504c454d454e4154494f4e5f4d495353494e47","id":24257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5302:37:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_82cd723e08c6881587ec30a3dfe2f83ddd1d3003fc073eb1e0f321714bc7396c","typeString":"literal_string \"ERROR:IOS-011:IMPLEMENATION_MISSING\""},"value":"ERROR:IOS-011:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82cd723e08c6881587ec30a3dfe2f83ddd1d3003fc073eb1e0f321714bc7396c","typeString":"literal_string \"ERROR:IOS-011:IMPLEMENATION_MISSING\""}],"id":24256,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"5295:6:83","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":24258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5295:45:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24259,"nodeType":"ExpressionStatement","src":"5295:45:83"}]},"functionSelector":"72beb6fb","id":24261,"implemented":true,"kind":"function","modifiers":[{"id":24254,"modifierName":{"id":24253,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"5253:27:83"},"nodeType":"ModifierInvocation","src":"5253:27:83"}],"name":"adjustStakingRequirements","nameLocation":"5137:25:83","nodeType":"FunctionDefinition","overrides":{"id":24252,"nodeType":"OverrideSpecifier","overrides":[],"src":"5236:8:83"},"parameters":{"id":24251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24248,"mutability":"mutable","name":"id","nameLocation":"5180:2:83","nodeType":"VariableDeclaration","scope":24261,"src":"5172:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24247,"name":"uint256","nodeType":"ElementaryTypeName","src":"5172:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24250,"mutability":"mutable","name":"data","nameLocation":"5208:4:83","nodeType":"VariableDeclaration","scope":24261,"src":"5193:19:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":24249,"name":"bytes","nodeType":"ElementaryTypeName","src":"5193:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5162:56:83"},"returnParameters":{"id":24255,"nodeType":"ParameterList","parameters":[],"src":"5285:0:83"},"scope":24393,"src":"5128:219:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6111],"body":{"id":24272,"nodeType":"Block","src":"5466:37:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24267,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"5477:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"suspend","nodeType":"MemberAccess","referencedDeclaration":22380,"src":"5477:17:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":24270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5477:19:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24271,"nodeType":"ExpressionStatement","src":"5477:19:83"}]},"functionSelector":"d5fe1f10","id":24273,"implemented":true,"kind":"function","modifiers":[{"id":24265,"modifierName":{"id":24264,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"5434:27:83"},"nodeType":"ModifierInvocation","src":"5434:27:83"}],"name":"suspendTreasury","nameLocation":"5381:15:83","nodeType":"FunctionDefinition","overrides":{"id":24263,"nodeType":"OverrideSpecifier","overrides":[],"src":"5417:8:83"},"parameters":{"id":24262,"nodeType":"ParameterList","parameters":[],"src":"5396:2:83"},"returnParameters":{"id":24266,"nodeType":"ParameterList","parameters":[],"src":"5466:0:83"},"scope":24393,"src":"5372:131:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6114],"body":{"id":24284,"nodeType":"Block","src":"5602:36:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24279,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"5613:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resume","nodeType":"MemberAccess","referencedDeclaration":22392,"src":"5613:16:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":24282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5613:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24283,"nodeType":"ExpressionStatement","src":"5613:18:83"}]},"functionSelector":"10a81c4a","id":24285,"implemented":true,"kind":"function","modifiers":[{"id":24277,"modifierName":{"id":24276,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"5570:27:83"},"nodeType":"ModifierInvocation","src":"5570:27:83"}],"name":"resumeTreasury","nameLocation":"5518:14:83","nodeType":"FunctionDefinition","overrides":{"id":24275,"nodeType":"OverrideSpecifier","overrides":[],"src":"5553:8:83"},"parameters":{"id":24274,"nodeType":"ParameterList","parameters":[],"src":"5532:2:83"},"returnParameters":{"id":24278,"nodeType":"ParameterList","parameters":[],"src":"5602:0:83"},"scope":24393,"src":"5509:129:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6119],"body":{"id":24299,"nodeType":"Block","src":"5761:59:83","statements":[{"expression":{"arguments":[{"id":24296,"name":"walletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24287,"src":"5799:13:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24293,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"5771:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setInstanceWallet","nodeType":"MemberAccess","referencedDeclaration":22545,"src":"5771:27:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":24297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5771:42:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24298,"nodeType":"ExpressionStatement","src":"5771:42:83"}]},"functionSelector":"cab2504d","id":24300,"implemented":true,"kind":"function","modifiers":[{"id":24291,"modifierName":{"id":24290,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"5729:27:83"},"nodeType":"ModifierInvocation","src":"5729:27:83"}],"name":"setInstanceWallet","nameLocation":"5653:17:83","nodeType":"FunctionDefinition","overrides":{"id":24289,"nodeType":"OverrideSpecifier","overrides":[],"src":"5712:8:83"},"parameters":{"id":24288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24287,"mutability":"mutable","name":"walletAddress","nameLocation":"5679:13:83","nodeType":"VariableDeclaration","scope":24300,"src":"5671:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24286,"name":"address","nodeType":"ElementaryTypeName","src":"5671:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5670:23:83"},"returnParameters":{"id":24292,"nodeType":"ParameterList","parameters":[],"src":"5761:0:83"},"scope":24393,"src":"5644:176:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6126],"body":{"id":24317,"nodeType":"Block","src":"5971:79:83","statements":[{"expression":{"arguments":[{"id":24313,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24302,"src":"6009:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24314,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24304,"src":"6021:21:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24310,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"5981:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setRiskpoolWallet","nodeType":"MemberAccess","referencedDeclaration":22595,"src":"5981:27:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":24315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5981:62:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24316,"nodeType":"ExpressionStatement","src":"5981:62:83"}]},"functionSelector":"86039aed","id":24318,"implemented":true,"kind":"function","modifiers":[{"id":24308,"modifierName":{"id":24307,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"5939:27:83"},"nodeType":"ModifierInvocation","src":"5939:27:83"}],"name":"setRiskpoolWallet","nameLocation":"5835:17:83","nodeType":"FunctionDefinition","overrides":{"id":24306,"nodeType":"OverrideSpecifier","overrides":[],"src":"5922:8:83"},"parameters":{"id":24305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24302,"mutability":"mutable","name":"riskpoolId","nameLocation":"5861:10:83","nodeType":"VariableDeclaration","scope":24318,"src":"5853:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24301,"name":"uint256","nodeType":"ElementaryTypeName","src":"5853:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24304,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"5881:21:83","nodeType":"VariableDeclaration","scope":24318,"src":"5873:29:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24303,"name":"address","nodeType":"ElementaryTypeName","src":"5873:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5852:51:83"},"returnParameters":{"id":24309,"nodeType":"ParameterList","parameters":[],"src":"5971:0:83"},"scope":24393,"src":"5826:224:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6133],"body":{"id":24335,"nodeType":"Block","src":"6189:67:83","statements":[{"expression":{"arguments":[{"id":24331,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24320,"src":"6225:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24332,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24322,"src":"6236:12:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24328,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"6199:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setProductToken","nodeType":"MemberAccess","referencedDeclaration":22516,"src":"6199:25:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":24333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6199:50:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24334,"nodeType":"ExpressionStatement","src":"6199:50:83"}]},"functionSelector":"cc9cf8cd","id":24336,"implemented":true,"kind":"function","modifiers":[{"id":24326,"modifierName":{"id":24325,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"6157:27:83"},"nodeType":"ModifierInvocation","src":"6157:27:83"}],"name":"setProductToken","nameLocation":"6065:15:83","nodeType":"FunctionDefinition","overrides":{"id":24324,"nodeType":"OverrideSpecifier","overrides":[],"src":"6140:8:83"},"parameters":{"id":24323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24320,"mutability":"mutable","name":"productId","nameLocation":"6089:9:83","nodeType":"VariableDeclaration","scope":24336,"src":"6081:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24319,"name":"uint256","nodeType":"ElementaryTypeName","src":"6081:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24322,"mutability":"mutable","name":"erc20Address","nameLocation":"6108:12:83","nodeType":"VariableDeclaration","scope":24336,"src":"6100:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24321,"name":"address","nodeType":"ElementaryTypeName","src":"6100:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6080:41:83"},"returnParameters":{"id":24327,"nodeType":"ParameterList","parameters":[],"src":"6189:0:83"},"scope":24393,"src":"6056:200:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6159],"body":{"id":24359,"nodeType":"Block","src":"6524:172:83","statements":[{"expression":{"arguments":[{"id":24353,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24338,"src":"6587:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24354,"name":"fixedFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24340,"src":"6612:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24355,"name":"fractionalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24342,"src":"6634:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24356,"name":"feeCalculationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24344,"src":"6661:18:83","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":24351,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"6541:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createFeeSpecification","nodeType":"MemberAccess","referencedDeclaration":22642,"src":"6541:32:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_struct$_FeeSpecification_$5838_memory_ptr_$","typeString":"function (uint256,uint256,uint256,bytes memory) view external returns (struct ITreasury.FeeSpecification memory)"}},"id":24357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6541:148:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"functionReturnParameters":24350,"id":24358,"nodeType":"Return","src":"6534:155:83"}]},"functionSelector":"62f0ab55","id":24360,"implemented":true,"kind":"function","modifiers":[],"name":"createFeeSpecification","nameLocation":"6271:22:83","nodeType":"FunctionDefinition","overrides":{"id":24346,"nodeType":"OverrideSpecifier","overrides":[],"src":"6446:8:83"},"parameters":{"id":24345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24338,"mutability":"mutable","name":"componentId","nameLocation":"6311:11:83","nodeType":"VariableDeclaration","scope":24360,"src":"6303:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24337,"name":"uint256","nodeType":"ElementaryTypeName","src":"6303:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24340,"mutability":"mutable","name":"fixedFee","nameLocation":"6340:8:83","nodeType":"VariableDeclaration","scope":24360,"src":"6332:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24339,"name":"uint256","nodeType":"ElementaryTypeName","src":"6332:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24342,"mutability":"mutable","name":"fractionalFee","nameLocation":"6366:13:83","nodeType":"VariableDeclaration","scope":24360,"src":"6358:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24341,"name":"uint256","nodeType":"ElementaryTypeName","src":"6358:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24344,"mutability":"mutable","name":"feeCalculationData","nameLocation":"6404:18:83","nodeType":"VariableDeclaration","scope":24360,"src":"6389:33:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":24343,"name":"bytes","nodeType":"ElementaryTypeName","src":"6389:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6293:135:83"},"returnParameters":{"id":24350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24360,"src":"6485:33:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":24348,"nodeType":"UserDefinedTypeName","pathNode":{"id":24347,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"6485:26:83"},"referencedDeclaration":5838,"src":"6485:26:83","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"6484:35:83"},"scope":24393,"src":"6262:434:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6139],"body":{"id":24375,"nodeType":"Block","src":"6842:50:83","statements":[{"expression":{"arguments":[{"id":24372,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24363,"src":"6877:7:83","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}],"expression":{"id":24369,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"6852:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setPremiumFees","nodeType":"MemberAccess","referencedDeclaration":22700,"src":"6852:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_FeeSpecification_$5838_memory_ptr_$returns$__$","typeString":"function (struct ITreasury.FeeSpecification memory) external"}},"id":24373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6852:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24374,"nodeType":"ExpressionStatement","src":"6852:33:83"}]},"functionSelector":"01132a7f","id":24376,"implemented":true,"kind":"function","modifiers":[{"id":24367,"modifierName":{"id":24366,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"6810:27:83"},"nodeType":"ModifierInvocation","src":"6810:27:83"}],"name":"setPremiumFees","nameLocation":"6715:14:83","nodeType":"FunctionDefinition","overrides":{"id":24365,"nodeType":"OverrideSpecifier","overrides":[],"src":"6793:8:83"},"parameters":{"id":24364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24363,"mutability":"mutable","name":"feeSpec","nameLocation":"6766:7:83","nodeType":"VariableDeclaration","scope":24376,"src":"6730:43:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":24362,"nodeType":"UserDefinedTypeName","pathNode":{"id":24361,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"6730:26:83"},"referencedDeclaration":5838,"src":"6730:26:83","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"6729:45:83"},"returnParameters":{"id":24368,"nodeType":"ParameterList","parameters":[],"src":"6842:0:83"},"scope":24393,"src":"6706:186:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6145],"body":{"id":24391,"nodeType":"Block","src":"7034:50:83","statements":[{"expression":{"arguments":[{"id":24388,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24379,"src":"7069:7:83","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}],"expression":{"id":24385,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"7044:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setCapitalFees","nodeType":"MemberAccess","referencedDeclaration":22758,"src":"7044:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_FeeSpecification_$5838_memory_ptr_$returns$__$","typeString":"function (struct ITreasury.FeeSpecification memory) external"}},"id":24389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7044:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24390,"nodeType":"ExpressionStatement","src":"7044:33:83"}]},"functionSelector":"8ca946aa","id":24392,"implemented":true,"kind":"function","modifiers":[{"id":24383,"modifierName":{"id":24382,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"7002:27:83"},"nodeType":"ModifierInvocation","src":"7002:27:83"}],"name":"setCapitalFees","nameLocation":"6907:14:83","nodeType":"FunctionDefinition","overrides":{"id":24381,"nodeType":"OverrideSpecifier","overrides":[],"src":"6985:8:83"},"parameters":{"id":24380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24379,"mutability":"mutable","name":"feeSpec","nameLocation":"6958:7:83","nodeType":"VariableDeclaration","scope":24392,"src":"6922:43:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":24378,"nodeType":"UserDefinedTypeName","pathNode":{"id":24377,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"6922:26:83"},"referencedDeclaration":5838,"src":"6922:26:83","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"6921:45:83"},"returnParameters":{"id":24384,"nodeType":"ParameterList","parameters":[],"src":"7034:0:83"},"scope":24393,"src":"6898:186:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":24394,"src":"786:6300:83"}],"src":"39:7048:83"},"id":83},"contracts/services/InstanceService.sol":{"ast":{"absolutePath":"contracts/services/InstanceService.sol","exportedSymbols":{"AccessControl":[7145],"AccessControlEnumerable":[7270],"AccessController":[15687],"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"Component":[2884],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC20":[8753],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IAccessControl":[7343],"IAccessControlEnumerable":[7368],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC20Metadata":[8856],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IQuery":[5616],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"InstanceOperatorService":[24393],"InstanceService":[25379],"Ownable":[7481],"Pausable":[8167],"PolicyController":[19974],"PoolController":[21207],"Product":[4042],"Strings":[10804],"TestProduct":[28333],"TransferHelper":[26659],"TreasuryModule":[23615]},"id":25380,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":24395,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:84"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"../modules/ComponentController.sol","id":24396,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":17948,"src":"63:44:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/BundleController.sol","file":"../modules/BundleController.sol","id":24397,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":16947,"src":"108:41:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PolicyController.sol","file":"../modules/PolicyController.sol","id":24398,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":19975,"src":"150:41:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"../modules/PoolController.sol","id":24399,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":21208,"src":"192:39:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/TreasuryModule.sol","file":"../modules/TreasuryModule.sol","id":24400,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":23616,"src":"232:39:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":24401,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":26414,"src":"272:38:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/services/InstanceOperatorService.sol","file":"../services/InstanceOperatorService.sol","id":24402,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":24394,"src":"311:49:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":24403,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":2989,"src":"362:69:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IOracle.sol","file":"@etherisc/gif-interface/contracts/components/IOracle.sol","id":24404,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":3023,"src":"432:66:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":24405,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":3080,"src":"499:67:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","file":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","id":24406,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":3313,"src":"567:68:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":24407,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":5434,"src":"636:63:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":24408,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":5715,"src":"700:65:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","file":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","id":24409,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6010,"src":"766:79:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","id":24410,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6510,"src":"846:73:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","id":24411,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6161,"src":"920:81:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IOracleService.sol","file":"@etherisc/gif-interface/contracts/services/IOracleService.sol","id":24412,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6520,"src":"1002:71:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","file":"@etherisc/gif-interface/contracts/services/IProductService.sol","id":24413,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6665,"src":"1074:72:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","file":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","id":24414,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6771,"src":"1147:73:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","file":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","id":24415,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6826,"src":"1221:67:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":24416,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":8832,"src":"1290:56:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":24417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":10157,"src":"1347:58:84","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":24418,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"1440:16:84"},"id":24419,"nodeType":"InheritanceSpecifier","src":"1440:16:84"},{"baseName":{"id":24420,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"1463:14:84"},"id":24421,"nodeType":"InheritanceSpecifier","src":"1463:14:84"}],"contractDependencies":[6509,8059,10518,26413],"contractKind":"contract","fullyImplemented":true,"id":25379,"linearizedBaseContracts":[25379,26413,8059,10518,6509],"name":"InstanceService","nameLocation":"1416:15:84","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"5e6877be","id":24424,"mutability":"constant","name":"BUNDLE_NAME","nameLocation":"1508:11:84","nodeType":"VariableDeclaration","scope":25379,"src":"1484:46:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24422,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1484:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"42756e646c65","id":24423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1522:8:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""},"value":"Bundle"},"visibility":"public"},{"constant":true,"functionSelector":"51b2fb90","id":24427,"mutability":"constant","name":"COMPONENT_NAME","nameLocation":"1560:14:84","nodeType":"VariableDeclaration","scope":25379,"src":"1536:52:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1536:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"436f6d706f6e656e74","id":24426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1577:11:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"},"visibility":"public"},{"constant":true,"functionSelector":"18ff21c3","id":24430,"mutability":"constant","name":"POLICY_NAME","nameLocation":"1618:11:84","nodeType":"VariableDeclaration","scope":25379,"src":"1594:46:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24428,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1594:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6c696379","id":24429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1632:8:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"},"visibility":"public"},{"constant":true,"functionSelector":"0c131757","id":24433,"mutability":"constant","name":"POOL_NAME","nameLocation":"1670:9:84","nodeType":"VariableDeclaration","scope":25379,"src":"1646:42:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1646:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6f6c","id":24432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1682:6:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"},"visibility":"public"},{"constant":true,"functionSelector":"50e1a19b","id":24436,"mutability":"constant","name":"TREASURY_NAME","nameLocation":"1718:13:84","nodeType":"VariableDeclaration","scope":25379,"src":"1694:50:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1694:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"5472656173757279","id":24435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1734:10:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"},"visibility":"public"},{"constant":true,"functionSelector":"52b5b0ef","id":24439,"mutability":"constant","name":"COMPONENT_OWNER_SERVICE_NAME","nameLocation":"1775:28:84","nodeType":"VariableDeclaration","scope":25379,"src":"1751:78:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1751:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"436f6d706f6e656e744f776e657253657276696365","id":24438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1806:23:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""},"value":"ComponentOwnerService"},"visibility":"public"},{"constant":true,"functionSelector":"a3f66bd2","id":24442,"mutability":"constant","name":"INSTANCE_OPERATOR_SERVICE_NAME","nameLocation":"1859:30:84","nodeType":"VariableDeclaration","scope":25379,"src":"1835:82:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1835:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":24441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1892:25:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"},"visibility":"public"},{"constant":true,"functionSelector":"2898312f","id":24445,"mutability":"constant","name":"ORACLE_SERVICE_NAME","nameLocation":"1947:19:84","nodeType":"VariableDeclaration","scope":25379,"src":"1923:61:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1923:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"4f7261636c6553657276696365","id":24444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1969:15:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""},"value":"OracleService"},"visibility":"public"},{"constant":true,"functionSelector":"e8828922","id":24448,"mutability":"constant","name":"PRODUCT_SERVICE_NAME","nameLocation":"2014:20:84","nodeType":"VariableDeclaration","scope":25379,"src":"1990:63:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1990:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"50726f6475637453657276696365","id":24447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2037:16:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""},"value":"ProductService"},"visibility":"public"},{"constant":true,"functionSelector":"e543ecb9","id":24451,"mutability":"constant","name":"RISKPOOL_SERVICE_NAME","nameLocation":"2083:21:84","nodeType":"VariableDeclaration","scope":25379,"src":"2059:65:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2059:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"5269736b706f6f6c53657276696365","id":24450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2107:17:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""},"value":"RiskpoolService"},"visibility":"public"},{"constant":false,"id":24454,"mutability":"mutable","name":"_bundle","nameLocation":"2148:7:84","nodeType":"VariableDeclaration","scope":25379,"src":"2131:24:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"},"typeName":{"id":24453,"nodeType":"UserDefinedTypeName","pathNode":{"id":24452,"name":"BundleController","nodeType":"IdentifierPath","referencedDeclaration":16946,"src":"2131:16:84"},"referencedDeclaration":16946,"src":"2131:16:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"visibility":"internal"},{"constant":false,"id":24457,"mutability":"mutable","name":"_component","nameLocation":"2181:10:84","nodeType":"VariableDeclaration","scope":25379,"src":"2161:30:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":24456,"nodeType":"UserDefinedTypeName","pathNode":{"id":24455,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"2161:19:84"},"referencedDeclaration":17947,"src":"2161:19:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"internal"},{"constant":false,"id":24460,"mutability":"mutable","name":"_policy","nameLocation":"2214:7:84","nodeType":"VariableDeclaration","scope":25379,"src":"2197:24:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":24459,"nodeType":"UserDefinedTypeName","pathNode":{"id":24458,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"2197:16:84"},"referencedDeclaration":19974,"src":"2197:16:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"},{"constant":false,"id":24463,"mutability":"mutable","name":"_pool","nameLocation":"2242:5:84","nodeType":"VariableDeclaration","scope":25379,"src":"2227:20:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":24462,"nodeType":"UserDefinedTypeName","pathNode":{"id":24461,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"2227:14:84"},"referencedDeclaration":21207,"src":"2227:14:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"},{"constant":false,"id":24466,"mutability":"mutable","name":"_treasury","nameLocation":"2276:9:84","nodeType":"VariableDeclaration","scope":25379,"src":"2253:32:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":24465,"nodeType":"UserDefinedTypeName","pathNode":{"id":24464,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"2253:14:84"},"referencedDeclaration":23615,"src":"2253:14:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"private"},{"constant":false,"id":24470,"mutability":"mutable","name":"_chainName","nameLocation":"2359:10:84","nodeType":"VariableDeclaration","scope":25379,"src":"2292:77:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"typeName":{"id":24469,"keyType":{"id":24467,"name":"uint256","nodeType":"ElementaryTypeName","src":"2300:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2292:58:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"valueType":{"id":24468,"name":"string","nodeType":"ElementaryTypeName","src":"2326:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"baseFunctions":[26387],"body":{"id":24519,"nodeType":"Block","src":"2439:389:84","statements":[{"expression":{"id":24482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24476,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"2449:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":24479,"name":"BUNDLE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24424,"src":"2496:11:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24478,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2476:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2476:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24477,"name":"BundleController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"2459:16:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleController_$16946_$","typeString":"type(contract BundleController)"}},"id":24481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2459:50:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"src":"2449:60:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":24483,"nodeType":"ExpressionStatement","src":"2449:60:84"},{"expression":{"id":24490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24484,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"2519:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":24487,"name":"COMPONENT_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24427,"src":"2572:14:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24486,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2552:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2552:35:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24485,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"2532:19:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":24489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2532:56:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"2519:69:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24491,"nodeType":"ExpressionStatement","src":"2519:69:84"},{"expression":{"id":24498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24492,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"2598:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":24495,"name":"POLICY_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24430,"src":"2645:11:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24494,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2625:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2625:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24493,"name":"PolicyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"2608:16:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PolicyController_$19974_$","typeString":"type(contract PolicyController)"}},"id":24497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2608:50:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"src":"2598:60:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":24499,"nodeType":"ExpressionStatement","src":"2598:60:84"},{"expression":{"id":24506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24500,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"2668:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":24503,"name":"POOL_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24433,"src":"2711:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24502,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2691:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2691:30:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24501,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"2676:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":24505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2676:46:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"src":"2668:54:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":24507,"nodeType":"ExpressionStatement","src":"2668:54:84"},{"expression":{"id":24514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24508,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"2732:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":24511,"name":"TREASURY_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24436,"src":"2779:13:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24510,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2759:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2759:34:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24509,"name":"TreasuryModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23615,"src":"2744:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TreasuryModule_$23615_$","typeString":"type(contract TreasuryModule)"}},"id":24513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2744:50:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"src":"2732:62:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24515,"nodeType":"ExpressionStatement","src":"2732:62:84"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":24516,"name":"_setChainNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24578,"src":"2805:14:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":24517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2805:16:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24518,"nodeType":"ExpressionStatement","src":"2805:16:84"}]},"id":24520,"implemented":true,"kind":"function","modifiers":[{"id":24474,"modifierName":{"id":24473,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"2422:16:84"},"nodeType":"ModifierInvocation","src":"2422:16:84"}],"name":"_afterInitialize","nameLocation":"2385:16:84","nodeType":"FunctionDefinition","overrides":{"id":24472,"nodeType":"OverrideSpecifier","overrides":[],"src":"2413:8:84"},"parameters":{"id":24471,"nodeType":"ParameterList","parameters":[],"src":"2401:2:84"},"returnParameters":{"id":24475,"nodeType":"ParameterList","parameters":[],"src":"2439:0:84"},"scope":25379,"src":"2376:452:84","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":24577,"nodeType":"Block","src":"2869:427:84","statements":[{"expression":{"id":24527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24523,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"2879:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24525,"indexExpression":{"hexValue":"31","id":24524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2890:1:84","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2879:13:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"457468657265756d204d61696e6e65742f455448","id":24526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2895:22:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_21d2f99878ae48836ef60c9b7077fe5e86a86485c8489425e7b8e624c344701d","typeString":"literal_string \"Ethereum Mainnet/ETH\""},"value":"Ethereum Mainnet/ETH"},"src":"2879:38:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24528,"nodeType":"ExpressionStatement","src":"2879:38:84"},{"expression":{"id":24533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24529,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"2928:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24531,"indexExpression":{"hexValue":"35","id":24530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2939:1:84","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2928:13:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"476f65726c692f455448","id":24532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2944:12:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_da4d70b465e1d14b540f5232eb8d0b7d5324964761ffb91d51b068f5307d04d3","typeString":"literal_string \"Goerli/ETH\""},"value":"Goerli/ETH"},"src":"2928:28:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24534,"nodeType":"ExpressionStatement","src":"2928:28:84"},{"expression":{"id":24539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24535,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"2967:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24537,"indexExpression":{"hexValue":"31333337","id":24536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2978:4:84","typeDescriptions":{"typeIdentifier":"t_rational_1337_by_1","typeString":"int_const 1337"},"value":"1337"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2967:16:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"47616e61636865","id":24538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2986:9:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_c74b63363546ae61aa8cc8f82a7eab8702ab705a3b23371b23d872924c472615","typeString":"literal_string \"Ganache\""},"value":"Ganache"},"src":"2967:28:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24540,"nodeType":"ExpressionStatement","src":"2967:28:84"},{"expression":{"id":24545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24541,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3006:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24543,"indexExpression":{"hexValue":"313030","id":24542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3017:3:84","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3006:15:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"476e6f7369732f78446169","id":24544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3024:13:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_45def632ec521e29f55bcfc340d63637514b18f3c4bd8373587e34276892250e","typeString":"literal_string \"Gnosis/xDai\""},"value":"Gnosis/xDai"},"src":"3006:31:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24546,"nodeType":"ExpressionStatement","src":"3006:31:84"},{"expression":{"id":24551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24547,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3048:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24549,"indexExpression":{"hexValue":"3737","id":24548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3059:2:84","typeDescriptions":{"typeIdentifier":"t_rational_77_by_1","typeString":"int_const 77"},"value":"77"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3048:14:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"536f6b6f6c2f53504f41","id":24550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3065:12:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_26e64b77953ee519ed204051f2b253f7acfbbcbfb08a525b233b1f3e99e800b7","typeString":"literal_string \"Sokol/SPOA\""},"value":"Sokol/SPOA"},"src":"3048:29:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24552,"nodeType":"ExpressionStatement","src":"3048:29:84"},{"expression":{"id":24557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24553,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3088:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24555,"indexExpression":{"hexValue":"313337","id":24554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3099:3:84","typeDescriptions":{"typeIdentifier":"t_rational_137_by_1","typeString":"int_const 137"},"value":"137"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3088:15:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"506f6c79676f6e204d61696e6e65742f4d41544943","id":24556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3106:23:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_621c670cd8cfed3aa3bae6dca5153b33e8c5961b7514827497e80ddb9d042fad","typeString":"literal_string \"Polygon Mainnet/MATIC\""},"value":"Polygon Mainnet/MATIC"},"src":"3088:41:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24558,"nodeType":"ExpressionStatement","src":"3088:41:84"},{"expression":{"id":24563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24559,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3140:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24561,"indexExpression":{"hexValue":"38303031","id":24560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3151:4:84","typeDescriptions":{"typeIdentifier":"t_rational_8001_by_1","typeString":"int_const 8001"},"value":"8001"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3140:16:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"4d756d6261692f4d41544943","id":24562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3159:14:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_279ef0c6d2df1dbced4bbd82446107a5d878eaceb340327fb85b74902cb61d92","typeString":"literal_string \"Mumbai/MATIC\""},"value":"Mumbai/MATIC"},"src":"3140:33:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24564,"nodeType":"ExpressionStatement","src":"3140:33:84"},{"expression":{"id":24569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24565,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3184:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24567,"indexExpression":{"hexValue":"3433313134","id":24566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3195:5:84","typeDescriptions":{"typeIdentifier":"t_rational_43114_by_1","typeString":"int_const 43114"},"value":"43114"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3184:17:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"4176616c616e63686520432d436861696e2f41564158","id":24568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3204:24:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0d2442d64137ae125245b9c55c765eff38b1d7bfaa0ab852460dcffbef3ae57","typeString":"literal_string \"Avalanche C-Chain/AVAX\""},"value":"Avalanche C-Chain/AVAX"},"src":"3184:44:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24570,"nodeType":"ExpressionStatement","src":"3184:44:84"},{"expression":{"id":24575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24571,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3239:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24573,"indexExpression":{"hexValue":"3433313133","id":24572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3250:5:84","typeDescriptions":{"typeIdentifier":"t_rational_43113_by_1","typeString":"int_const 43113"},"value":"43113"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3239:17:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"4176616c616e6368652046756a6920546573746e65742f41564158","id":24574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3259:29:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb50912c6cfda760007d4523379fe44367b9fd417caf26951218293aedfbbb63","typeString":"literal_string \"Avalanche Fuji Testnet/AVAX\""},"value":"Avalanche Fuji Testnet/AVAX"},"src":"3239:49:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24576,"nodeType":"ExpressionStatement","src":"3239:49:84"}]},"id":24578,"implemented":true,"kind":"function","modifiers":[],"name":"_setChainNames","nameLocation":"2843:14:84","nodeType":"FunctionDefinition","parameters":{"id":24521,"nodeType":"ParameterList","parameters":[],"src":"2857:2:84"},"returnParameters":{"id":24522,"nodeType":"ParameterList","parameters":[],"src":"2869:0:84"},"scope":25379,"src":"2834:462:84","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[6179],"body":{"id":24589,"nodeType":"Block","src":"3397:40:84","statements":[{"expression":{"id":24587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24584,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24582,"src":"3407:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":24585,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"3417:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3417:13:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3407:23:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24588,"nodeType":"ExpressionStatement","src":"3407:23:84"}]},"functionSelector":"3408e470","id":24590,"implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"3338:10:84","nodeType":"FunctionDefinition","overrides":{"id":24580,"nodeType":"OverrideSpecifier","overrides":[],"src":"3358:8:84"},"parameters":{"id":24579,"nodeType":"ParameterList","parameters":[],"src":"3348:2:84"},"returnParameters":{"id":24583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24582,"mutability":"mutable","name":"chainId","nameLocation":"3388:7:84","nodeType":"VariableDeclaration","scope":24590,"src":"3380:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24581,"name":"uint256","nodeType":"ElementaryTypeName","src":"3380:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3379:17:84"},"scope":25379,"src":"3329:108:84","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[6184],"body":{"id":24603,"nodeType":"Block","src":"3521:54:84","statements":[{"expression":{"id":24601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24596,"name":"chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24594,"src":"3531:9:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":24597,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3543:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24600,"indexExpression":{"expression":{"id":24598,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"3554:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3554:13:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3543:25:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"src":"3531:37:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":24602,"nodeType":"ExpressionStatement","src":"3531:37:84"}]},"functionSelector":"d722b0bc","id":24604,"implemented":true,"kind":"function","modifiers":[],"name":"getChainName","nameLocation":"3452:12:84","nodeType":"FunctionDefinition","overrides":{"id":24592,"nodeType":"OverrideSpecifier","overrides":[],"src":"3474:8:84"},"parameters":{"id":24591,"nodeType":"ParameterList","parameters":[],"src":"3464:2:84"},"returnParameters":{"id":24595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24594,"mutability":"mutable","name":"chainName","nameLocation":"3510:9:84","nodeType":"VariableDeclaration","scope":24604,"src":"3496:23:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24593,"name":"string","nodeType":"ElementaryTypeName","src":"3496:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3495:25:84"},"scope":25379,"src":"3443:132:84","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[6189],"body":{"id":24624,"nodeType":"Block","src":"3655:139:84","statements":[{"expression":{"id":24622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24610,"name":"instanceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24608,"src":"3665:10:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":24614,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"3735:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3735:13:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":24618,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"3775:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}],"id":24617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3767:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24616,"name":"address","nodeType":"ElementaryTypeName","src":"3767:7:84","typeDescriptions":{}}},"id":24619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3767:18:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24612,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3701:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3701:16:84","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":24620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3701:85:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24611,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"3678:9:84","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":24621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3678:109:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3665:122:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":24623,"nodeType":"ExpressionStatement","src":"3665:122:84"}]},"functionSelector":"1551100f","id":24625,"implemented":true,"kind":"function","modifiers":[],"name":"getInstanceId","nameLocation":"3590:13:84","nodeType":"FunctionDefinition","overrides":{"id":24606,"nodeType":"OverrideSpecifier","overrides":[],"src":"3613:8:84"},"parameters":{"id":24605,"nodeType":"ParameterList","parameters":[],"src":"3603:2:84"},"returnParameters":{"id":24609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24608,"mutability":"mutable","name":"instanceId","nameLocation":"3643:10:84","nodeType":"VariableDeclaration","scope":24625,"src":"3635:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24607,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3635:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3634:20:84"},"scope":25379,"src":"3581:213:84","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[6194],"body":{"id":24644,"nodeType":"Block","src":"3871:151:84","statements":[{"assignments":[24633],"declarations":[{"constant":false,"id":24633,"mutability":"mutable","name":"ios","nameLocation":"3905:3:84","nodeType":"VariableDeclaration","scope":24644,"src":"3881:27:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"},"typeName":{"id":24632,"nodeType":"UserDefinedTypeName","pathNode":{"id":24631,"name":"InstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":24393,"src":"3881:23:84"},"referencedDeclaration":24393,"src":"3881:23:84","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"}},"visibility":"internal"}],"id":24639,"initialValue":{"arguments":[{"arguments":[{"id":24636,"name":"INSTANCE_OPERATOR_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24442,"src":"3955:30:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24635,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3935:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3935:51:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24634,"name":"InstanceOperatorService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24393,"src":"3911:23:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InstanceOperatorService_$24393_$","typeString":"type(contract InstanceOperatorService)"}},"id":24638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3911:76:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"}},"nodeType":"VariableDeclarationStatement","src":"3881:106:84"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24640,"name":"ios","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24633,"src":"4004:3:84","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"}},"id":24641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":7409,"src":"4004:9:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":24642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4004:11:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":24630,"id":24643,"nodeType":"Return","src":"3997:18:84"}]},"functionSelector":"39c6fa90","id":24645,"implemented":true,"kind":"function","modifiers":[],"name":"getInstanceOperator","nameLocation":"3809:19:84","nodeType":"FunctionDefinition","overrides":{"id":24627,"nodeType":"OverrideSpecifier","overrides":[],"src":"3840:8:84"},"parameters":{"id":24626,"nodeType":"ParameterList","parameters":[],"src":"3828:2:84"},"returnParameters":{"id":24630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24645,"src":"3862:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24628,"name":"address","nodeType":"ElementaryTypeName","src":"3862:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3861:9:84"},"scope":25379,"src":"3800:222:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6200],"body":{"id":24658,"nodeType":"Block","src":"4150:97:84","statements":[{"expression":{"arguments":[{"arguments":[{"id":24654,"name":"COMPONENT_OWNER_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24439,"src":"4210:28:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24653,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4190:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4190:49:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24652,"name":"IComponentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6009,"src":"4167:22:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponentOwnerService_$6009_$","typeString":"type(contract IComponentOwnerService)"}},"id":24656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4167:73:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"functionReturnParameters":24651,"id":24657,"nodeType":"Return","src":"4160:80:84"}]},"functionSelector":"6fa29853","id":24659,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentOwnerService","nameLocation":"4060:24:84","nodeType":"FunctionDefinition","overrides":{"id":24647,"nodeType":"OverrideSpecifier","overrides":[],"src":"4096:8:84"},"parameters":{"id":24646,"nodeType":"ParameterList","parameters":[],"src":"4084:2:84"},"returnParameters":{"id":24651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24650,"mutability":"mutable","name":"service","nameLocation":"4141:7:84","nodeType":"VariableDeclaration","scope":24659,"src":"4118:30:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":24649,"nodeType":"UserDefinedTypeName","pathNode":{"id":24648,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"4118:22:84"},"referencedDeclaration":6009,"src":"4118:22:84","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"internal"}],"src":"4117:32:84"},"scope":25379,"src":"4051:196:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6206],"body":{"id":24672,"nodeType":"Block","src":"4356:101:84","statements":[{"expression":{"arguments":[{"arguments":[{"id":24668,"name":"INSTANCE_OPERATOR_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24442,"src":"4418:30:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24667,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4398:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4398:51:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24666,"name":"IInstanceOperatorService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6160,"src":"4373:24:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IInstanceOperatorService_$6160_$","typeString":"type(contract IInstanceOperatorService)"}},"id":24670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4373:77:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceOperatorService_$6160","typeString":"contract IInstanceOperatorService"}},"functionReturnParameters":24665,"id":24671,"nodeType":"Return","src":"4366:84:84"}]},"functionSelector":"091924dc","id":24673,"implemented":true,"kind":"function","modifiers":[],"name":"getInstanceOperatorService","nameLocation":"4262:26:84","nodeType":"FunctionDefinition","overrides":{"id":24661,"nodeType":"OverrideSpecifier","overrides":[],"src":"4300:8:84"},"parameters":{"id":24660,"nodeType":"ParameterList","parameters":[],"src":"4288:2:84"},"returnParameters":{"id":24665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24664,"mutability":"mutable","name":"service","nameLocation":"4347:7:84","nodeType":"VariableDeclaration","scope":24673,"src":"4322:32:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceOperatorService_$6160","typeString":"contract IInstanceOperatorService"},"typeName":{"id":24663,"nodeType":"UserDefinedTypeName","pathNode":{"id":24662,"name":"IInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":6160,"src":"4322:24:84"},"referencedDeclaration":6160,"src":"4322:24:84","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceOperatorService_$6160","typeString":"contract IInstanceOperatorService"}},"visibility":"internal"}],"src":"4321:34:84"},"scope":25379,"src":"4253:204:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6212],"body":{"id":24686,"nodeType":"Block","src":"4546:80:84","statements":[{"expression":{"arguments":[{"arguments":[{"id":24682,"name":"ORACLE_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24445,"src":"4598:19:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24681,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4578:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4578:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24680,"name":"IOracleService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"4563:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOracleService_$6519_$","typeString":"type(contract IOracleService)"}},"id":24684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4563:56:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"functionReturnParameters":24679,"id":24685,"nodeType":"Return","src":"4556:63:84"}]},"functionSelector":"a7ecda36","id":24687,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleService","nameLocation":"4472:16:84","nodeType":"FunctionDefinition","overrides":{"id":24675,"nodeType":"OverrideSpecifier","overrides":[],"src":"4500:8:84"},"parameters":{"id":24674,"nodeType":"ParameterList","parameters":[],"src":"4488:2:84"},"returnParameters":{"id":24679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24678,"mutability":"mutable","name":"service","nameLocation":"4537:7:84","nodeType":"VariableDeclaration","scope":24687,"src":"4522:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"},"typeName":{"id":24677,"nodeType":"UserDefinedTypeName","pathNode":{"id":24676,"name":"IOracleService","nodeType":"IdentifierPath","referencedDeclaration":6519,"src":"4522:14:84"},"referencedDeclaration":6519,"src":"4522:14:84","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"visibility":"internal"}],"src":"4521:24:84"},"scope":25379,"src":"4463:163:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6218],"body":{"id":24700,"nodeType":"Block","src":"4717:82:84","statements":[{"expression":{"arguments":[{"arguments":[{"id":24696,"name":"PRODUCT_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24448,"src":"4770:20:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24695,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4750:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4750:41:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24694,"name":"IProductService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6664,"src":"4734:15:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProductService_$6664_$","typeString":"type(contract IProductService)"}},"id":24698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4734:58:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"functionReturnParameters":24693,"id":24699,"nodeType":"Return","src":"4727:65:84"}]},"functionSelector":"4288121d","id":24701,"implemented":true,"kind":"function","modifiers":[],"name":"getProductService","nameLocation":"4641:17:84","nodeType":"FunctionDefinition","overrides":{"id":24689,"nodeType":"OverrideSpecifier","overrides":[],"src":"4670:8:84"},"parameters":{"id":24688,"nodeType":"ParameterList","parameters":[],"src":"4658:2:84"},"returnParameters":{"id":24693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24692,"mutability":"mutable","name":"service","nameLocation":"4708:7:84","nodeType":"VariableDeclaration","scope":24701,"src":"4692:23:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"},"typeName":{"id":24691,"nodeType":"UserDefinedTypeName","pathNode":{"id":24690,"name":"IProductService","nodeType":"IdentifierPath","referencedDeclaration":6664,"src":"4692:15:84"},"referencedDeclaration":6664,"src":"4692:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"visibility":"internal"}],"src":"4691:25:84"},"scope":25379,"src":"4632:167:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6224],"body":{"id":24714,"nodeType":"Block","src":"4892:84:84","statements":[{"expression":{"arguments":[{"arguments":[{"id":24710,"name":"RISKPOOL_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24451,"src":"4946:21:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24709,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4926:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4926:42:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24708,"name":"IRiskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6770,"src":"4909:16:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskpoolService_$6770_$","typeString":"type(contract IRiskpoolService)"}},"id":24712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4909:60:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"functionReturnParameters":24707,"id":24713,"nodeType":"Return","src":"4902:67:84"}]},"functionSelector":"442ed817","id":24715,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolService","nameLocation":"4814:18:84","nodeType":"FunctionDefinition","overrides":{"id":24703,"nodeType":"OverrideSpecifier","overrides":[],"src":"4844:8:84"},"parameters":{"id":24702,"nodeType":"ParameterList","parameters":[],"src":"4832:2:84"},"returnParameters":{"id":24707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24706,"mutability":"mutable","name":"service","nameLocation":"4883:7:84","nodeType":"VariableDeclaration","scope":24715,"src":"4866:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"},"typeName":{"id":24705,"nodeType":"UserDefinedTypeName","pathNode":{"id":24704,"name":"IRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":6770,"src":"4866:16:84"},"referencedDeclaration":6770,"src":"4866:16:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"visibility":"internal"}],"src":"4865:26:84"},"scope":25379,"src":"4805:171:84","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":24723,"nodeType":"Block","src":"5065:33:84","statements":[{"expression":{"id":24721,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"5082:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"functionReturnParameters":24720,"id":24722,"nodeType":"Return","src":"5075:16:84"}]},"functionSelector":"5ab1bd53","id":24724,"implemented":true,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"5010:11:84","nodeType":"FunctionDefinition","parameters":{"id":24716,"nodeType":"ParameterList","parameters":[],"src":"5021:2:84"},"returnParameters":{"id":24720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24719,"mutability":"mutable","name":"service","nameLocation":"5056:7:84","nodeType":"VariableDeclaration","scope":24724,"src":"5046:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":24718,"nodeType":"UserDefinedTypeName","pathNode":{"id":24717,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"5046:9:84"},"referencedDeclaration":5714,"src":"5046:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"5045:19:84"},"scope":25379,"src":"5001:97:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6229],"body":{"id":24736,"nodeType":"Block","src":"5184:58:84","statements":[{"expression":{"id":24734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24730,"name":"numberOfContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24728,"src":"5194:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24731,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"5214:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":24732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contracts","nodeType":"MemberAccess","referencedDeclaration":5706,"src":"5214:19:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5214:21:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5194:41:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24735,"nodeType":"ExpressionStatement","src":"5194:41:84"}]},"functionSelector":"6c0f79b6","id":24737,"implemented":true,"kind":"function","modifiers":[],"name":"contracts","nameLocation":"5113:9:84","nodeType":"FunctionDefinition","overrides":{"id":24726,"nodeType":"OverrideSpecifier","overrides":[],"src":"5139:8:84"},"parameters":{"id":24725,"nodeType":"ParameterList","parameters":[],"src":"5122:2:84"},"returnParameters":{"id":24729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24728,"mutability":"mutable","name":"numberOfContracts","nameLocation":"5165:17:84","nodeType":"VariableDeclaration","scope":24737,"src":"5157:25:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24727,"name":"uint256","nodeType":"ElementaryTypeName","src":"5157:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5156:27:84"},"scope":25379,"src":"5104:138:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6236],"body":{"id":24752,"nodeType":"Block","src":"5337:51:84","statements":[{"expression":{"id":24750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24745,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24743,"src":"5347:4:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":24748,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24739,"src":"5377:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24746,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"5354:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":24747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contractName","nodeType":"MemberAccess","referencedDeclaration":5713,"src":"5354:22:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view external returns (bytes32)"}},"id":24749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5354:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5347:34:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":24751,"nodeType":"ExpressionStatement","src":"5347:34:84"}]},"functionSelector":"f6b3e7d0","id":24753,"implemented":true,"kind":"function","modifiers":[],"name":"contractName","nameLocation":"5265:12:84","nodeType":"FunctionDefinition","overrides":{"id":24741,"nodeType":"OverrideSpecifier","overrides":[],"src":"5305:8:84"},"parameters":{"id":24740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24739,"mutability":"mutable","name":"idx","nameLocation":"5286:3:84","nodeType":"VariableDeclaration","scope":24753,"src":"5278:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24738,"name":"uint256","nodeType":"ElementaryTypeName","src":"5278:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5277:13:84"},"returnParameters":{"id":24744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24743,"mutability":"mutable","name":"name","nameLocation":"5331:4:84","nodeType":"VariableDeclaration","scope":24753,"src":"5323:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5323:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5322:14:84"},"scope":25379,"src":"5256:132:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6241],"body":{"id":24763,"nodeType":"Block","src":"5482:53:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24759,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"5499:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getDefaultAdminRole","nodeType":"MemberAccess","referencedDeclaration":4780,"src":"5499:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":24761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5499:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":24758,"id":24762,"nodeType":"Return","src":"5492:36:84"}]},"functionSelector":"52a9c8d7","id":24764,"implemented":true,"kind":"function","modifiers":[],"name":"getDefaultAdminRole","nameLocation":"5420:19:84","nodeType":"FunctionDefinition","overrides":{"id":24755,"nodeType":"OverrideSpecifier","overrides":[],"src":"5451:8:84"},"parameters":{"id":24754,"nodeType":"ParameterList","parameters":[],"src":"5439:2:84"},"returnParameters":{"id":24758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24764,"src":"5473:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5473:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5472:9:84"},"scope":25379,"src":"5411:124:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6246],"body":{"id":24774,"nodeType":"Block","src":"5612:53:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24770,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"5629:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProductOwnerRole","nodeType":"MemberAccess","referencedDeclaration":4785,"src":"5629:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":24772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5629:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":24769,"id":24773,"nodeType":"Return","src":"5622:36:84"}]},"functionSelector":"775a4048","id":24775,"implemented":true,"kind":"function","modifiers":[],"name":"getProductOwnerRole","nameLocation":"5550:19:84","nodeType":"FunctionDefinition","overrides":{"id":24766,"nodeType":"OverrideSpecifier","overrides":[],"src":"5581:8:84"},"parameters":{"id":24765,"nodeType":"ParameterList","parameters":[],"src":"5569:2:84"},"returnParameters":{"id":24769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24775,"src":"5603:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24767,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5603:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5602:9:84"},"scope":25379,"src":"5541:124:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6251],"body":{"id":24785,"nodeType":"Block","src":"5744:55:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24781,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"5761:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOracleProviderRole","nodeType":"MemberAccess","referencedDeclaration":4790,"src":"5761:29:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":24783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5761:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":24780,"id":24784,"nodeType":"Return","src":"5754:38:84"}]},"functionSelector":"d49d21c0","id":24786,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleProviderRole","nameLocation":"5680:21:84","nodeType":"FunctionDefinition","overrides":{"id":24777,"nodeType":"OverrideSpecifier","overrides":[],"src":"5713:8:84"},"parameters":{"id":24776,"nodeType":"ParameterList","parameters":[],"src":"5701:2:84"},"returnParameters":{"id":24780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24786,"src":"5735:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24778,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5735:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5734:9:84"},"scope":25379,"src":"5671:128:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6256],"body":{"id":24796,"nodeType":"Block","src":"5878:55:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24792,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"5895:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpoolKeeperRole","nodeType":"MemberAccess","referencedDeclaration":4795,"src":"5895:29:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":24794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5895:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":24791,"id":24795,"nodeType":"Return","src":"5888:38:84"}]},"functionSelector":"3ffdd2f3","id":24797,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolKeeperRole","nameLocation":"5814:21:84","nodeType":"FunctionDefinition","overrides":{"id":24788,"nodeType":"OverrideSpecifier","overrides":[],"src":"5847:8:84"},"parameters":{"id":24787,"nodeType":"ParameterList","parameters":[],"src":"5835:2:84"},"returnParameters":{"id":24791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24797,"src":"5869:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5869:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5868:9:84"},"scope":25379,"src":"5805:128:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6265],"body":{"id":24813,"nodeType":"Block","src":"6047:56:84","statements":[{"expression":{"arguments":[{"id":24809,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24799,"src":"6080:4:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24810,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24801,"src":"6086:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24807,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"6064:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":4804,"src":"6064:15:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":24811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6064:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":24806,"id":24812,"nodeType":"Return","src":"6057:39:84"}]},"functionSelector":"91d14854","id":24814,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"5948:7:84","nodeType":"FunctionDefinition","overrides":{"id":24803,"nodeType":"OverrideSpecifier","overrides":[],"src":"6006:8:84"},"parameters":{"id":24802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24799,"mutability":"mutable","name":"role","nameLocation":"5964:4:84","nodeType":"VariableDeclaration","scope":24814,"src":"5956:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5956:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24801,"mutability":"mutable","name":"principal","nameLocation":"5978:9:84","nodeType":"VariableDeclaration","scope":24814,"src":"5970:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24800,"name":"address","nodeType":"ElementaryTypeName","src":"5970:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5955:33:84"},"returnParameters":{"id":24806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24814,"src":"6037:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24804,"name":"bool","nodeType":"ElementaryTypeName","src":"6037:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6036:6:84"},"scope":25379,"src":"5939:164:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6270],"body":{"id":24824,"nodeType":"Block","src":"6189:45:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24820,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"6206:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"products","nodeType":"MemberAccess","referencedDeclaration":17689,"src":"6206:19:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6206:21:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24819,"id":24823,"nodeType":"Return","src":"6199:28:84"}]},"functionSelector":"c71e261f","id":24825,"implemented":true,"kind":"function","modifiers":[],"name":"products","nameLocation":"6138:8:84","nodeType":"FunctionDefinition","overrides":{"id":24816,"nodeType":"OverrideSpecifier","overrides":[],"src":"6158:8:84"},"parameters":{"id":24815,"nodeType":"ParameterList","parameters":[],"src":"6146:2:84"},"returnParameters":{"id":24819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24818,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24825,"src":"6180:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24817,"name":"uint256","nodeType":"ElementaryTypeName","src":"6180:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6179:9:84"},"scope":25379,"src":"6129:105:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6275],"body":{"id":24835,"nodeType":"Block","src":"6299:44:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24831,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"6316:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"oracles","nodeType":"MemberAccess","referencedDeclaration":17700,"src":"6316:18:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6316:20:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24830,"id":24834,"nodeType":"Return","src":"6309:27:84"}]},"functionSelector":"2857373a","id":24836,"implemented":true,"kind":"function","modifiers":[],"name":"oracles","nameLocation":"6249:7:84","nodeType":"FunctionDefinition","overrides":{"id":24827,"nodeType":"OverrideSpecifier","overrides":[],"src":"6268:8:84"},"parameters":{"id":24826,"nodeType":"ParameterList","parameters":[],"src":"6256:2:84"},"returnParameters":{"id":24830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24836,"src":"6290:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24828,"name":"uint256","nodeType":"ElementaryTypeName","src":"6290:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6289:9:84"},"scope":25379,"src":"6240:103:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6280],"body":{"id":24846,"nodeType":"Block","src":"6410:46:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24842,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"6427:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"riskpools","nodeType":"MemberAccess","referencedDeclaration":17711,"src":"6427:20:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6427:22:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24841,"id":24845,"nodeType":"Return","src":"6420:29:84"}]},"functionSelector":"a054381f","id":24847,"implemented":true,"kind":"function","modifiers":[],"name":"riskpools","nameLocation":"6358:9:84","nodeType":"FunctionDefinition","overrides":{"id":24838,"nodeType":"OverrideSpecifier","overrides":[],"src":"6379:8:84"},"parameters":{"id":24837,"nodeType":"ParameterList","parameters":[],"src":"6367:2:84"},"returnParameters":{"id":24841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24847,"src":"6401:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24839,"name":"uint256","nodeType":"ElementaryTypeName","src":"6401:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6400:9:84"},"scope":25379,"src":"6349:107:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6287],"body":{"id":24860,"nodeType":"Block","src":"6564:67:84","statements":[{"expression":{"arguments":[{"id":24857,"name":"componentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24849,"src":"6607:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24855,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"6581:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"6581:25:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":24858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6581:43:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24854,"id":24859,"nodeType":"Return","src":"6574:50:84"}]},"functionSelector":"2b1c7f73","id":24861,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentId","nameLocation":"6471:14:84","nodeType":"FunctionDefinition","overrides":{"id":24851,"nodeType":"OverrideSpecifier","overrides":[],"src":"6521:8:84"},"parameters":{"id":24850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24849,"mutability":"mutable","name":"componentAddress","nameLocation":"6494:16:84","nodeType":"VariableDeclaration","scope":24861,"src":"6486:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24848,"name":"address","nodeType":"ElementaryTypeName","src":"6486:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6485:26:84"},"returnParameters":{"id":24854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24853,"mutability":"mutable","name":"componentId","nameLocation":"6551:11:84","nodeType":"VariableDeclaration","scope":24861,"src":"6543:19:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24852,"name":"uint256","nodeType":"ElementaryTypeName","src":"6543:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6542:21:84"},"scope":25379,"src":"6462:169:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6303],"body":{"id":24875,"nodeType":"Block","src":"6785:64:84","statements":[{"expression":{"arguments":[{"id":24872,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24863,"src":"6830:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24870,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"6802:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"6802:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":24873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6802:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":24869,"id":24874,"nodeType":"Return","src":"6795:47:84"}]},"functionSelector":"dd51c86a","id":24876,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentType","nameLocation":"6646:16:84","nodeType":"FunctionDefinition","overrides":{"id":24865,"nodeType":"OverrideSpecifier","overrides":[],"src":"6701:8:84"},"parameters":{"id":24864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24863,"mutability":"mutable","name":"componentId","nameLocation":"6671:11:84","nodeType":"VariableDeclaration","scope":24876,"src":"6663:19:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24862,"name":"uint256","nodeType":"ElementaryTypeName","src":"6663:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6662:21:84"},"returnParameters":{"id":24869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24868,"mutability":"mutable","name":"componentType","nameLocation":"6766:13:84","nodeType":"VariableDeclaration","scope":24876,"src":"6741:38:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":24867,"nodeType":"UserDefinedTypeName","pathNode":{"id":24866,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"6741:24:84"},"referencedDeclaration":2891,"src":"6741:24:84","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"6740:40:84"},"scope":25379,"src":"6637:212:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6311],"body":{"id":24892,"nodeType":"Block","src":"7006:75:84","statements":[{"expression":{"id":24890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24885,"name":"componentState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24883,"src":"7016:14:84","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":24888,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24878,"src":"7062:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24886,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"7033:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"7033:28:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":24889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7033:41:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"7016:58:84","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"id":24891,"nodeType":"ExpressionStatement","src":"7016:58:84"}]},"functionSelector":"5e966e45","id":24893,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentState","nameLocation":"6864:17:84","nodeType":"FunctionDefinition","overrides":{"id":24880,"nodeType":"OverrideSpecifier","overrides":[],"src":"6921:8:84"},"parameters":{"id":24879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24878,"mutability":"mutable","name":"componentId","nameLocation":"6890:11:84","nodeType":"VariableDeclaration","scope":24893,"src":"6882:19:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24877,"name":"uint256","nodeType":"ElementaryTypeName","src":"6882:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6881:21:84"},"returnParameters":{"id":24884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24883,"mutability":"mutable","name":"componentState","nameLocation":"6986:14:84","nodeType":"VariableDeclaration","scope":24893,"src":"6960:40:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":24882,"nodeType":"UserDefinedTypeName","pathNode":{"id":24881,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"6960:25:84"},"referencedDeclaration":2899,"src":"6960:25:84","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"6959:42:84"},"scope":25379,"src":"6855:226:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6295],"body":{"id":24907,"nodeType":"Block","src":"7164:51:84","statements":[{"expression":{"arguments":[{"id":24904,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24895,"src":"7205:2:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24902,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"7181:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"7181:23:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":24905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7181:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"functionReturnParameters":24901,"id":24906,"nodeType":"Return","src":"7174:34:84"}]},"functionSelector":"4f27da18","id":24908,"implemented":true,"kind":"function","modifiers":[],"name":"getComponent","nameLocation":"7096:12:84","nodeType":"FunctionDefinition","overrides":{"id":24897,"nodeType":"OverrideSpecifier","overrides":[],"src":"7130:8:84"},"parameters":{"id":24896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24895,"mutability":"mutable","name":"id","nameLocation":"7117:2:84","nodeType":"VariableDeclaration","scope":24908,"src":"7109:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24894,"name":"uint256","nodeType":"ElementaryTypeName","src":"7109:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7108:12:84"},"returnParameters":{"id":24901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24908,"src":"7152:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":24899,"nodeType":"UserDefinedTypeName","pathNode":{"id":24898,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"7152:10:84"},"referencedDeclaration":2988,"src":"7152:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"7151:12:84"},"scope":25379,"src":"7087:128:84","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":24920,"nodeType":"Block","src":"7294:51:84","statements":[{"expression":{"arguments":[{"id":24917,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24910,"src":"7334:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24915,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"7311:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOracleId","nodeType":"MemberAccess","referencedDeclaration":17595,"src":"7311:22:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":24918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7311:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24914,"id":24919,"nodeType":"Return","src":"7304:34:84"}]},"functionSelector":"a5c0f5a1","id":24921,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleId","nameLocation":"7230:11:84","nodeType":"FunctionDefinition","parameters":{"id":24911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24910,"mutability":"mutable","name":"idx","nameLocation":"7250:3:84","nodeType":"VariableDeclaration","scope":24921,"src":"7242:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24909,"name":"uint256","nodeType":"ElementaryTypeName","src":"7242:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7241:13:84"},"returnParameters":{"id":24914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24913,"mutability":"mutable","name":"oracleId","nameLocation":"7284:8:84","nodeType":"VariableDeclaration","scope":24921,"src":"7276:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24912,"name":"uint256","nodeType":"ElementaryTypeName","src":"7276:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7275:18:84"},"scope":25379,"src":"7221:124:84","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":24933,"nodeType":"Block","src":"7428:53:84","statements":[{"expression":{"arguments":[{"id":24930,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24923,"src":"7470:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24928,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"7445:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpoolId","nodeType":"MemberAccess","referencedDeclaration":17609,"src":"7445:24:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":24931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7445:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24927,"id":24932,"nodeType":"Return","src":"7438:36:84"}]},"functionSelector":"ff3f3883","id":24934,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolId","nameLocation":"7360:13:84","nodeType":"FunctionDefinition","parameters":{"id":24924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24923,"mutability":"mutable","name":"idx","nameLocation":"7382:3:84","nodeType":"VariableDeclaration","scope":24934,"src":"7374:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24922,"name":"uint256","nodeType":"ElementaryTypeName","src":"7374:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7373:13:84"},"returnParameters":{"id":24927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24926,"mutability":"mutable","name":"riskpoolId","nameLocation":"7416:10:84","nodeType":"VariableDeclaration","scope":24934,"src":"7408:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24925,"name":"uint256","nodeType":"ElementaryTypeName","src":"7408:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7407:20:84"},"scope":25379,"src":"7351:130:84","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":24946,"nodeType":"Block","src":"7562:52:84","statements":[{"expression":{"arguments":[{"id":24943,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24936,"src":"7603:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24941,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"7579:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProductId","nodeType":"MemberAccess","referencedDeclaration":17623,"src":"7579:23:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":24944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7579:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24940,"id":24945,"nodeType":"Return","src":"7572:35:84"}]},"functionSelector":"9f77a605","id":24947,"implemented":true,"kind":"function","modifiers":[],"name":"getProductId","nameLocation":"7496:12:84","nodeType":"FunctionDefinition","parameters":{"id":24937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24936,"mutability":"mutable","name":"idx","nameLocation":"7517:3:84","nodeType":"VariableDeclaration","scope":24947,"src":"7509:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24935,"name":"uint256","nodeType":"ElementaryTypeName","src":"7509:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7508:13:84"},"returnParameters":{"id":24940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24939,"mutability":"mutable","name":"productId","nameLocation":"7551:9:84","nodeType":"VariableDeclaration","scope":24947,"src":"7543:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24938,"name":"uint256","nodeType":"ElementaryTypeName","src":"7543:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7542:19:84"},"scope":25379,"src":"7487:127:84","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[6318],"body":{"id":24959,"nodeType":"Block","src":"7772:61:84","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a49532d3030313a494d504c454d454e4154494f4e5f4d495353494e47","id":24956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7789:36:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f10dbd7637aa20fb8b54a4dbdfe5499f4b0287e8df0e24d98f28636def7ca3d","typeString":"literal_string \"ERROR:IS-001:IMPLEMENATION_MISSING\""},"value":"ERROR:IS-001:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f10dbd7637aa20fb8b54a4dbdfe5499f4b0287e8df0e24d98f28636def7ca3d","typeString":"literal_string \"ERROR:IS-001:IMPLEMENATION_MISSING\""}],"id":24955,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"7782:6:84","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":24957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7782:44:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24958,"nodeType":"ExpressionStatement","src":"7782:44:84"}]},"functionSelector":"ab9c6ee4","id":24960,"implemented":true,"kind":"function","modifiers":[],"name":"getStakingRequirements","nameLocation":"7655:22:84","nodeType":"FunctionDefinition","overrides":{"id":24951,"nodeType":"OverrideSpecifier","overrides":[],"src":"7708:8:84"},"parameters":{"id":24950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24949,"mutability":"mutable","name":"id","nameLocation":"7686:2:84","nodeType":"VariableDeclaration","scope":24960,"src":"7678:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24948,"name":"uint256","nodeType":"ElementaryTypeName","src":"7678:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7677:12:84"},"returnParameters":{"id":24954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24953,"mutability":"mutable","name":"data","nameLocation":"7761:4:84","nodeType":"VariableDeclaration","scope":24960,"src":"7748:17:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":24952,"name":"bytes","nodeType":"ElementaryTypeName","src":"7748:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7747:19:84"},"scope":25379,"src":"7646:187:84","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[6325],"body":{"id":24972,"nodeType":"Block","src":"7957:61:84","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a49532d3030323a494d504c454d454e4154494f4e5f4d495353494e47","id":24969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7974:36:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_3538b2b40dc1579a3c1803dfe60abab88e636a7c9369729bbd4ce7b793360801","typeString":"literal_string \"ERROR:IS-002:IMPLEMENATION_MISSING\""},"value":"ERROR:IS-002:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3538b2b40dc1579a3c1803dfe60abab88e636a7c9369729bbd4ce7b793360801","typeString":"literal_string \"ERROR:IS-002:IMPLEMENATION_MISSING\""}],"id":24968,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"7967:6:84","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":24970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7967:44:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24971,"nodeType":"ExpressionStatement","src":"7967:44:84"}]},"functionSelector":"3a42b053","id":24973,"implemented":true,"kind":"function","modifiers":[],"name":"getStakedAssets","nameLocation":"7848:15:84","nodeType":"FunctionDefinition","overrides":{"id":24964,"nodeType":"OverrideSpecifier","overrides":[],"src":"7893:8:84"},"parameters":{"id":24963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24962,"mutability":"mutable","name":"id","nameLocation":"7872:2:84","nodeType":"VariableDeclaration","scope":24973,"src":"7864:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24961,"name":"uint256","nodeType":"ElementaryTypeName","src":"7864:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7863:12:84"},"returnParameters":{"id":24967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24966,"mutability":"mutable","name":"data","nameLocation":"7946:4:84","nodeType":"VariableDeclaration","scope":24973,"src":"7933:17:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":24965,"name":"bytes","nodeType":"ElementaryTypeName","src":"7933:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7932:19:84"},"scope":25379,"src":"7839:179:84","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[6420],"body":{"id":24985,"nodeType":"Block","src":"8122:58:84","statements":[{"expression":{"id":24983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24979,"name":"numberOfProcessIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24977,"src":"8132:18:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24980,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8153:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":24981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processIds","nodeType":"MemberAccess","referencedDeclaration":19949,"src":"8153:18:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8153:20:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8132:41:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24984,"nodeType":"ExpressionStatement","src":"8132:41:84"}]},"functionSelector":"a427056e","id":24986,"implemented":true,"kind":"function","modifiers":[],"name":"processIds","nameLocation":"8050:10:84","nodeType":"FunctionDefinition","overrides":{"id":24975,"nodeType":"OverrideSpecifier","overrides":[],"src":"8072:8:84"},"parameters":{"id":24974,"nodeType":"ParameterList","parameters":[],"src":"8060:2:84"},"returnParameters":{"id":24978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24977,"mutability":"mutable","name":"numberOfProcessIds","nameLocation":"8102:18:84","nodeType":"VariableDeclaration","scope":24986,"src":"8094:26:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24976,"name":"uint256","nodeType":"ElementaryTypeName","src":"8094:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8093:28:84"},"scope":25379,"src":"8041:139:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6428],"body":{"id":25002,"nodeType":"Block","src":"8287:54:84","statements":[{"expression":{"id":25000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24995,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24993,"src":"8297:8:84","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":24998,"name":"bpKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24988,"src":"8328:5:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24996,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8308:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":24997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"8308:19:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":24999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8308:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"src":"8297:37:84","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":25001,"nodeType":"ExpressionStatement","src":"8297:37:84"}]},"functionSelector":"a5961b4c","id":25003,"implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"8195:11:84","nodeType":"FunctionDefinition","overrides":{"id":24990,"nodeType":"OverrideSpecifier","overrides":[],"src":"8231:8:84"},"parameters":{"id":24989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24988,"mutability":"mutable","name":"bpKey","nameLocation":"8215:5:84","nodeType":"VariableDeclaration","scope":25003,"src":"8207:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24987,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8207:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8206:15:84"},"returnParameters":{"id":24994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24993,"mutability":"mutable","name":"metadata","nameLocation":"8277:8:84","nodeType":"VariableDeclaration","scope":25003,"src":"8253:32:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":24992,"nodeType":"UserDefinedTypeName","pathNode":{"id":24991,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"8253:16:84"},"referencedDeclaration":5248,"src":"8253:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"src":"8252:34:84"},"scope":25379,"src":"8186:155:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6436],"body":{"id":25019,"nodeType":"Block","src":"8461:64:84","statements":[{"expression":{"id":25017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25012,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25010,"src":"8471:11:84","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25015,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25005,"src":"8508:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":25013,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8485:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":19835,"src":"8485:22:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":25016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8485:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"src":"8471:47:84","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":25018,"nodeType":"ExpressionStatement","src":"8471:47:84"}]},"functionSelector":"bc506f64","id":25020,"implemented":true,"kind":"function","modifiers":[],"name":"getApplication","nameLocation":"8356:14:84","nodeType":"FunctionDefinition","overrides":{"id":25007,"nodeType":"OverrideSpecifier","overrides":[],"src":"8399:8:84"},"parameters":{"id":25006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25005,"mutability":"mutable","name":"processId","nameLocation":"8379:9:84","nodeType":"VariableDeclaration","scope":25020,"src":"8371:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8371:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8370:19:84"},"returnParameters":{"id":25011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25010,"mutability":"mutable","name":"application","nameLocation":"8448:11:84","nodeType":"VariableDeclaration","scope":25020,"src":"8421:38:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":25009,"nodeType":"UserDefinedTypeName","pathNode":{"id":25008,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"8421:19:84"},"referencedDeclaration":5262,"src":"8421:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"8420:40:84"},"scope":25379,"src":"8347:178:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6444],"body":{"id":25036,"nodeType":"Block","src":"8630:54:84","statements":[{"expression":{"id":25034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25029,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25027,"src":"8640:6:84","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25032,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25022,"src":"8667:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":25030,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8649:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"8649:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":25033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8649:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"src":"8640:37:84","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":25035,"nodeType":"ExpressionStatement","src":"8640:37:84"}]},"functionSelector":"a3f685f9","id":25037,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicy","nameLocation":"8540:9:84","nodeType":"FunctionDefinition","overrides":{"id":25024,"nodeType":"OverrideSpecifier","overrides":[],"src":"8578:8:84"},"parameters":{"id":25023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25022,"mutability":"mutable","name":"processId","nameLocation":"8558:9:84","nodeType":"VariableDeclaration","scope":25037,"src":"8550:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8550:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8549:19:84"},"returnParameters":{"id":25028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25027,"mutability":"mutable","name":"policy","nameLocation":"8622:6:84","nodeType":"VariableDeclaration","scope":25037,"src":"8600:28:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":25026,"nodeType":"UserDefinedTypeName","pathNode":{"id":25025,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"8600:14:84"},"referencedDeclaration":5282,"src":"8600:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"src":"8599:30:84"},"scope":25379,"src":"8531:153:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6451],"body":{"id":25052,"nodeType":"Block","src":"8784:70:84","statements":[{"expression":{"id":25050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25045,"name":"numberOfClaims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25043,"src":"8794:14:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25048,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25039,"src":"8837:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":25046,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8811:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getNumberOfClaims","nodeType":"MemberAccess","referencedDeclaration":19850,"src":"8811:25:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":25049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8811:36:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8794:53:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25051,"nodeType":"ExpressionStatement","src":"8794:53:84"}]},"functionSelector":"eff0f592","id":25053,"implemented":true,"kind":"function","modifiers":[],"name":"claims","nameLocation":"8703:6:84","nodeType":"FunctionDefinition","overrides":{"id":25041,"nodeType":"OverrideSpecifier","overrides":[],"src":"8738:8:84"},"parameters":{"id":25040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25039,"mutability":"mutable","name":"processId","nameLocation":"8718:9:84","nodeType":"VariableDeclaration","scope":25053,"src":"8710:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25038,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8710:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8709:19:84"},"returnParameters":{"id":25044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25043,"mutability":"mutable","name":"numberOfClaims","nameLocation":"8768:14:84","nodeType":"VariableDeclaration","scope":25053,"src":"8760:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25042,"name":"uint256","nodeType":"ElementaryTypeName","src":"8760:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8759:24:84"},"scope":25379,"src":"8694:160:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6458],"body":{"id":25068,"nodeType":"Block","src":"8956:72:84","statements":[{"expression":{"id":25066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25061,"name":"numberOfPayouts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25059,"src":"8966:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25064,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25055,"src":"9011:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":25062,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8984:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getNumberOfPayouts","nodeType":"MemberAccess","referencedDeclaration":19864,"src":"8984:26:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":25065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8984:37:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8966:55:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25067,"nodeType":"ExpressionStatement","src":"8966:55:84"}]},"functionSelector":"aeddb905","id":25069,"implemented":true,"kind":"function","modifiers":[],"name":"payouts","nameLocation":"8873:7:84","nodeType":"FunctionDefinition","overrides":{"id":25057,"nodeType":"OverrideSpecifier","overrides":[],"src":"8909:8:84"},"parameters":{"id":25056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25055,"mutability":"mutable","name":"processId","nameLocation":"8889:9:84","nodeType":"VariableDeclaration","scope":25069,"src":"8881:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25054,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8881:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8880:19:84"},"returnParameters":{"id":25060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25059,"mutability":"mutable","name":"numberOfPayouts","nameLocation":"8939:15:84","nodeType":"VariableDeclaration","scope":25069,"src":"8931:23:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25058,"name":"uint256","nodeType":"ElementaryTypeName","src":"8931:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8930:25:84"},"scope":25379,"src":"8864:164:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6468],"body":{"id":25088,"nodeType":"Block","src":"9152:61:84","statements":[{"expression":{"id":25086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25080,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25078,"src":"9162:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25083,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25071,"src":"9187:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":25084,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25073,"src":"9198:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25081,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"9170:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getClaim","nodeType":"MemberAccess","referencedDeclaration":19914,"src":"9170:16:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Claim_$5296_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Claim memory)"}},"id":25085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9170:36:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"src":"9162:44:84","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"id":25087,"nodeType":"ExpressionStatement","src":"9162:44:84"}]},"functionSelector":"7f22c2d9","id":25089,"implemented":true,"kind":"function","modifiers":[],"name":"getClaim","nameLocation":"9047:8:84","nodeType":"FunctionDefinition","overrides":{"id":25075,"nodeType":"OverrideSpecifier","overrides":[],"src":"9101:8:84"},"parameters":{"id":25074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25071,"mutability":"mutable","name":"processId","nameLocation":"9064:9:84","nodeType":"VariableDeclaration","scope":25089,"src":"9056:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9056:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":25073,"mutability":"mutable","name":"claimId","nameLocation":"9083:7:84","nodeType":"VariableDeclaration","scope":25089,"src":"9075:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25072,"name":"uint256","nodeType":"ElementaryTypeName","src":"9075:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9055:36:84"},"returnParameters":{"id":25079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25078,"mutability":"mutable","name":"claim","nameLocation":"9145:5:84","nodeType":"VariableDeclaration","scope":25089,"src":"9124:26:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":25077,"nodeType":"UserDefinedTypeName","pathNode":{"id":25076,"name":"IPolicy.Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"9124:13:84"},"referencedDeclaration":5296,"src":"9124:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"src":"9123:28:84"},"scope":25379,"src":"9038:175:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6478],"body":{"id":25108,"nodeType":"Block","src":"9341:64:84","statements":[{"expression":{"id":25106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25100,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25098,"src":"9351:6:84","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25103,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25091,"src":"9378:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":25104,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25093,"src":"9389:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25101,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"9360:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPayout","nodeType":"MemberAccess","referencedDeclaration":19941,"src":"9360:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Payout_$5310_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Payout memory)"}},"id":25105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9360:38:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"src":"9351:47:84","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":25107,"nodeType":"ExpressionStatement","src":"9351:47:84"}]},"functionSelector":"cef58f13","id":25109,"implemented":true,"kind":"function","modifiers":[],"name":"getPayout","nameLocation":"9232:9:84","nodeType":"FunctionDefinition","overrides":{"id":25095,"nodeType":"OverrideSpecifier","overrides":[],"src":"9288:8:84"},"parameters":{"id":25094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25091,"mutability":"mutable","name":"processId","nameLocation":"9250:9:84","nodeType":"VariableDeclaration","scope":25109,"src":"9242:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9242:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":25093,"mutability":"mutable","name":"payoutId","nameLocation":"9269:8:84","nodeType":"VariableDeclaration","scope":25109,"src":"9261:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25092,"name":"uint256","nodeType":"ElementaryTypeName","src":"9261:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9241:37:84"},"returnParameters":{"id":25099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25098,"mutability":"mutable","name":"payout","nameLocation":"9333:6:84","nodeType":"VariableDeclaration","scope":25109,"src":"9311:28:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":25097,"nodeType":"UserDefinedTypeName","pathNode":{"id":25096,"name":"IPolicy.Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"9311:14:84"},"referencedDeclaration":5310,"src":"9311:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"src":"9310:30:84"},"scope":25379,"src":"9223:182:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6333],"body":{"id":25123,"nodeType":"Block","src":"9530:53:84","statements":[{"expression":{"arguments":[{"id":25120,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25111,"src":"9565:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25118,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"9547:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpool","nodeType":"MemberAccess","referencedDeclaration":21002,"src":"9547:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPool.Pool memory)"}},"id":25121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9547:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"functionReturnParameters":25117,"id":25122,"nodeType":"Return","src":"9540:36:84"}]},"functionSelector":"eb802114","id":25124,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpool","nameLocation":"9439:11:84","nodeType":"FunctionDefinition","overrides":{"id":25113,"nodeType":"OverrideSpecifier","overrides":[],"src":"9480:8:84"},"parameters":{"id":25112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25111,"mutability":"mutable","name":"riskpoolId","nameLocation":"9459:10:84","nodeType":"VariableDeclaration","scope":25124,"src":"9451:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25110,"name":"uint256","nodeType":"ElementaryTypeName","src":"9451:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9450:20:84"},"returnParameters":{"id":25117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25116,"mutability":"mutable","name":"riskPool","nameLocation":"9520:8:84","nodeType":"VariableDeclaration","scope":25124,"src":"9502:26:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":25115,"nodeType":"UserDefinedTypeName","pathNode":{"id":25114,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"9502:10:84"},"referencedDeclaration":5502,"src":"9502:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"src":"9501:28:84"},"scope":25379,"src":"9430:153:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6338],"body":{"id":25134,"nodeType":"Block","src":"9671:61:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25130,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"9688:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getFullCollateralizationLevel","nodeType":"MemberAccess","referencedDeclaration":21142,"src":"9688:35:84","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_uint256_$","typeString":"function () pure external returns (uint256)"}},"id":25132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9688:37:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25129,"id":25133,"nodeType":"Return","src":"9681:44:84"}]},"functionSelector":"f1d354d0","id":25135,"implemented":true,"kind":"function","modifiers":[],"name":"getFullCollateralizationLevel","nameLocation":"9598:29:84","nodeType":"FunctionDefinition","overrides":{"id":25126,"nodeType":"OverrideSpecifier","overrides":[],"src":"9639:8:84"},"parameters":{"id":25125,"nodeType":"ParameterList","parameters":[],"src":"9627:2:84"},"returnParameters":{"id":25129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25135,"src":"9662:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25127,"name":"uint256","nodeType":"ElementaryTypeName","src":"9662:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9661:9:84"},"scope":25379,"src":"9589:143:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6345],"body":{"id":25149,"nodeType":"Block","src":"9832:61:84","statements":[{"expression":{"expression":{"arguments":[{"id":25145,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25137,"src":"9867:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25143,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"9849:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpool","nodeType":"MemberAccess","referencedDeclaration":21002,"src":"9849:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPool.Pool memory)"}},"id":25146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9849:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":25147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"9849:37:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25142,"id":25148,"nodeType":"Return","src":"9842:44:84"}]},"functionSelector":"29560980","id":25150,"implemented":true,"kind":"function","modifiers":[],"name":"getCapital","nameLocation":"9747:10:84","nodeType":"FunctionDefinition","overrides":{"id":25139,"nodeType":"OverrideSpecifier","overrides":[],"src":"9787:8:84"},"parameters":{"id":25138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25137,"mutability":"mutable","name":"riskpoolId","nameLocation":"9766:10:84","nodeType":"VariableDeclaration","scope":25150,"src":"9758:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25136,"name":"uint256","nodeType":"ElementaryTypeName","src":"9758:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9757:20:84"},"returnParameters":{"id":25142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25141,"mutability":"mutable","name":"capitalAmount","nameLocation":"9817:13:84","nodeType":"VariableDeclaration","scope":25150,"src":"9809:21:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25140,"name":"uint256","nodeType":"ElementaryTypeName","src":"9809:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9808:23:84"},"scope":25379,"src":"9738:155:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6352],"body":{"id":25164,"nodeType":"Block","src":"10011:67:84","statements":[{"expression":{"expression":{"arguments":[{"id":25160,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25152,"src":"10046:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25158,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10028:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpool","nodeType":"MemberAccess","referencedDeclaration":21002,"src":"10028:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPool.Pool memory)"}},"id":25161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10028:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":25162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"10028:43:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25157,"id":25163,"nodeType":"Return","src":"10021:50:84"}]},"functionSelector":"3f5d9235","id":25165,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalValueLocked","nameLocation":"9908:19:84","nodeType":"FunctionDefinition","overrides":{"id":25154,"nodeType":"OverrideSpecifier","overrides":[],"src":"9957:8:84"},"parameters":{"id":25153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25152,"mutability":"mutable","name":"riskpoolId","nameLocation":"9936:10:84","nodeType":"VariableDeclaration","scope":25165,"src":"9928:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25151,"name":"uint256","nodeType":"ElementaryTypeName","src":"9928:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9927:20:84"},"returnParameters":{"id":25157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25156,"mutability":"mutable","name":"totalValueLockedAmount","nameLocation":"9987:22:84","nodeType":"VariableDeclaration","scope":25165,"src":"9979:30:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25155,"name":"uint256","nodeType":"ElementaryTypeName","src":"9979:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9978:32:84"},"scope":25379,"src":"9899:179:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6359],"body":{"id":25189,"nodeType":"Block","src":"10180:121:84","statements":[{"assignments":[25177],"declarations":[{"constant":false,"id":25177,"mutability":"mutable","name":"pool","nameLocation":"10208:4:84","nodeType":"VariableDeclaration","scope":25189,"src":"10190:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":25176,"nodeType":"UserDefinedTypeName","pathNode":{"id":25175,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"10190:10:84"},"referencedDeclaration":5502,"src":"10190:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":25182,"initialValue":{"arguments":[{"id":25180,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25167,"src":"10233:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25178,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10215:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpool","nodeType":"MemberAccess","referencedDeclaration":21002,"src":"10215:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPool.Pool memory)"}},"id":25181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10215:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"10190:54:84"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25183,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25177,"src":"10261:4:84","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":25184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"10261:12:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":25185,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25177,"src":"10276:4:84","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":25186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"10276:18:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10261:33:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25172,"id":25188,"nodeType":"Return","src":"10254:40:84"}]},"functionSelector":"bcd5349f","id":25190,"implemented":true,"kind":"function","modifiers":[],"name":"getCapacity","nameLocation":"10093:11:84","nodeType":"FunctionDefinition","overrides":{"id":25169,"nodeType":"OverrideSpecifier","overrides":[],"src":"10134:8:84"},"parameters":{"id":25168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25167,"mutability":"mutable","name":"riskpoolId","nameLocation":"10113:10:84","nodeType":"VariableDeclaration","scope":25190,"src":"10105:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25166,"name":"uint256","nodeType":"ElementaryTypeName","src":"10105:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10104:20:84"},"returnParameters":{"id":25172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25171,"mutability":"mutable","name":"capacityAmount","nameLocation":"10164:14:84","nodeType":"VariableDeclaration","scope":25190,"src":"10156:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25170,"name":"uint256","nodeType":"ElementaryTypeName","src":"10156:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10155:24:84"},"scope":25379,"src":"10084:217:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6366],"body":{"id":25204,"nodeType":"Block","src":"10401:61:84","statements":[{"expression":{"expression":{"arguments":[{"id":25200,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25192,"src":"10436:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25198,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10418:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpool","nodeType":"MemberAccess","referencedDeclaration":21002,"src":"10418:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPool.Pool memory)"}},"id":25201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10418:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":25202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"10418:37:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25197,"id":25203,"nodeType":"Return","src":"10411:44:84"}]},"functionSelector":"1e010439","id":25205,"implemented":true,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"10316:10:84","nodeType":"FunctionDefinition","overrides":{"id":25194,"nodeType":"OverrideSpecifier","overrides":[],"src":"10356:8:84"},"parameters":{"id":25193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25192,"mutability":"mutable","name":"riskpoolId","nameLocation":"10335:10:84","nodeType":"VariableDeclaration","scope":25205,"src":"10327:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25191,"name":"uint256","nodeType":"ElementaryTypeName","src":"10327:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10326:20:84"},"returnParameters":{"id":25197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25196,"mutability":"mutable","name":"balanceAmount","nameLocation":"10386:13:84","nodeType":"VariableDeclaration","scope":25205,"src":"10378:21:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25195,"name":"uint256","nodeType":"ElementaryTypeName","src":"10378:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10377:23:84"},"scope":25379,"src":"10307:155:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6373],"body":{"id":25218,"nodeType":"Block","src":"10573:55:84","statements":[{"expression":{"arguments":[{"id":25215,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25207,"src":"10610:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25213,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10590:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"activeBundles","nodeType":"MemberAccess","referencedDeclaration":21029,"src":"10590:19:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":25216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10590:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25212,"id":25217,"nodeType":"Return","src":"10583:38:84"}]},"functionSelector":"a4266a66","id":25219,"implemented":true,"kind":"function","modifiers":[],"name":"activeBundles","nameLocation":"10477:13:84","nodeType":"FunctionDefinition","overrides":{"id":25209,"nodeType":"OverrideSpecifier","overrides":[],"src":"10520:8:84"},"parameters":{"id":25208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25207,"mutability":"mutable","name":"riskpoolId","nameLocation":"10499:10:84","nodeType":"VariableDeclaration","scope":25219,"src":"10491:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25206,"name":"uint256","nodeType":"ElementaryTypeName","src":"10491:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10490:20:84"},"returnParameters":{"id":25212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25211,"mutability":"mutable","name":"numberOfActiveBundles","nameLocation":"10550:21:84","nodeType":"VariableDeclaration","scope":25219,"src":"10542:29:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25210,"name":"uint256","nodeType":"ElementaryTypeName","src":"10542:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10541:31:84"},"scope":25379,"src":"10468:160:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6382],"body":{"id":25235,"nodeType":"Block","src":"10749:70:84","statements":[{"expression":{"arguments":[{"id":25231,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25221,"src":"10790:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25232,"name":"bundleIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25223,"src":"10802:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25229,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10766:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getActiveBundleId","nodeType":"MemberAccess","referencedDeclaration":21059,"src":"10766:23:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256)"}},"id":25233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10766:46:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25228,"id":25234,"nodeType":"Return","src":"10759:53:84"}]},"functionSelector":"ec833b0c","id":25236,"implemented":true,"kind":"function","modifiers":[],"name":"getActiveBundleId","nameLocation":"10643:17:84","nodeType":"FunctionDefinition","overrides":{"id":25225,"nodeType":"OverrideSpecifier","overrides":[],"src":"10709:8:84"},"parameters":{"id":25224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25221,"mutability":"mutable","name":"riskpoolId","nameLocation":"10669:10:84","nodeType":"VariableDeclaration","scope":25236,"src":"10661:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25220,"name":"uint256","nodeType":"ElementaryTypeName","src":"10661:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25223,"mutability":"mutable","name":"bundleIdx","nameLocation":"10689:9:84","nodeType":"VariableDeclaration","scope":25236,"src":"10681:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25222,"name":"uint256","nodeType":"ElementaryTypeName","src":"10681:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10660:39:84"},"returnParameters":{"id":25228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25227,"mutability":"mutable","name":"bundleId","nameLocation":"10739:8:84","nodeType":"VariableDeclaration","scope":25236,"src":"10731:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25226,"name":"uint256","nodeType":"ElementaryTypeName","src":"10731:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10730:18:84"},"scope":25379,"src":"10634:185:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6389],"body":{"id":25249,"nodeType":"Block","src":"10954:73:84","statements":[{"expression":{"arguments":[{"id":25246,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25238,"src":"11009:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25244,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10971:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMaximumNumberOfActiveBundles","nodeType":"MemberAccess","referencedDeclaration":20970,"src":"10971:37:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":25247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10971:49:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25243,"id":25248,"nodeType":"Return","src":"10964:56:84"}]},"functionSelector":"7db32844","id":25250,"implemented":true,"kind":"function","modifiers":[],"name":"getMaximumNumberOfActiveBundles","nameLocation":"10833:31:84","nodeType":"FunctionDefinition","overrides":{"id":25240,"nodeType":"OverrideSpecifier","overrides":[],"src":"10894:8:84"},"parameters":{"id":25239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25238,"mutability":"mutable","name":"riskpoolId","nameLocation":"10873:10:84","nodeType":"VariableDeclaration","scope":25250,"src":"10865:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25237,"name":"uint256","nodeType":"ElementaryTypeName","src":"10865:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10864:20:84"},"returnParameters":{"id":25243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25242,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"10924:28:84","nodeType":"VariableDeclaration","scope":25250,"src":"10916:36:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25241,"name":"uint256","nodeType":"ElementaryTypeName","src":"10916:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10915:38:84"},"scope":25379,"src":"10824:203:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6395],"body":{"id":25270,"nodeType":"Block","src":"11127:104:84","statements":[{"assignments":[25259],"declarations":[{"constant":false,"id":25259,"mutability":"mutable","name":"bundleToken","nameLocation":"11149:11:84","nodeType":"VariableDeclaration","scope":25270,"src":"11137:23:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"},"typeName":{"id":25258,"nodeType":"UserDefinedTypeName","pathNode":{"id":25257,"name":"BundleToken","nodeType":"IdentifierPath","referencedDeclaration":28751,"src":"11137:11:84"},"referencedDeclaration":28751,"src":"11137:11:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"visibility":"internal"}],"id":25263,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25260,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"11163:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getToken","nodeType":"MemberAccess","referencedDeclaration":16751,"src":"11163:16:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_BundleToken_$28751_$","typeString":"function () view external returns (contract BundleToken)"}},"id":25262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11163:18:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"nodeType":"VariableDeclarationStatement","src":"11137:44:84"},{"expression":{"id":25268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25264,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25255,"src":"11191:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25266,"name":"bundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25259,"src":"11212:11:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}],"id":25265,"name":"IBundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6825,"src":"11199:12:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundleToken_$6825_$","typeString":"type(contract IBundleToken)"}},"id":25267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11199:25:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"src":"11191:33:84","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"id":25269,"nodeType":"ExpressionStatement","src":"11191:33:84"}]},"functionSelector":"eb35783c","id":25271,"implemented":true,"kind":"function","modifiers":[],"name":"getBundleToken","nameLocation":"11059:14:84","nodeType":"FunctionDefinition","overrides":{"id":25252,"nodeType":"OverrideSpecifier","overrides":[],"src":"11085:8:84"},"parameters":{"id":25251,"nodeType":"ParameterList","parameters":[],"src":"11073:2:84"},"returnParameters":{"id":25256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25255,"mutability":"mutable","name":"token","nameLocation":"11120:5:84","nodeType":"VariableDeclaration","scope":25271,"src":"11107:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"},"typeName":{"id":25254,"nodeType":"UserDefinedTypeName","pathNode":{"id":25253,"name":"IBundleToken","nodeType":"IdentifierPath","referencedDeclaration":6825,"src":"11107:12:84"},"referencedDeclaration":6825,"src":"11107:12:84","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"visibility":"internal"}],"src":"11106:20:84"},"scope":25379,"src":"11050:181:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6408],"body":{"id":25287,"nodeType":"Block","src":"11340:53:84","statements":[{"expression":{"id":25285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25280,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25278,"src":"11350:6:84","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25283,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25273,"src":"11377:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25281,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"11359:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"11359:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":25284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11359:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"src":"11350:36:84","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25286,"nodeType":"ExpressionStatement","src":"11350:36:84"}]},"functionSelector":"2d0821b7","id":25288,"implemented":true,"kind":"function","modifiers":[],"name":"getBundle","nameLocation":"11250:9:84","nodeType":"FunctionDefinition","overrides":{"id":25275,"nodeType":"OverrideSpecifier","overrides":[],"src":"11287:8:84"},"parameters":{"id":25274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25273,"mutability":"mutable","name":"bundleId","nameLocation":"11268:8:84","nodeType":"VariableDeclaration","scope":25288,"src":"11260:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25272,"name":"uint256","nodeType":"ElementaryTypeName","src":"11260:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11259:18:84"},"returnParameters":{"id":25279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25278,"mutability":"mutable","name":"bundle","nameLocation":"11332:6:84","nodeType":"VariableDeclaration","scope":25288,"src":"11310:28:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":25277,"nodeType":"UserDefinedTypeName","pathNode":{"id":25276,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"11310:14:84"},"referencedDeclaration":4936,"src":"11310:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"src":"11309:30:84"},"scope":25379,"src":"11241:152:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6400],"body":{"id":25298,"nodeType":"Block","src":"11459:41:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25294,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"11476:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"bundles","nodeType":"MemberAccess","referencedDeclaration":16785,"src":"11476:15:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":25296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11476:17:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25293,"id":25297,"nodeType":"Return","src":"11469:24:84"}]},"functionSelector":"18442e63","id":25299,"implemented":true,"kind":"function","modifiers":[],"name":"bundles","nameLocation":"11408:7:84","nodeType":"FunctionDefinition","overrides":{"id":25290,"nodeType":"OverrideSpecifier","overrides":[],"src":"11427:8:84"},"parameters":{"id":25289,"nodeType":"ParameterList","parameters":[],"src":"11415:2:84"},"returnParameters":{"id":25293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25299,"src":"11450:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25291,"name":"uint256","nodeType":"ElementaryTypeName","src":"11450:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11449:9:84"},"scope":25379,"src":"11399:101:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6415],"body":{"id":25314,"nodeType":"Block","src":"11613:76:84","statements":[{"expression":{"id":25312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25307,"name":"numberOfUnburntBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25305,"src":"11623:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25310,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25301,"src":"11671:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25308,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"11648:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unburntBundles","nodeType":"MemberAccess","referencedDeclaration":16797,"src":"11648:22:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":25311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11648:34:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11623:59:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25313,"nodeType":"ExpressionStatement","src":"11623:59:84"}]},"functionSelector":"c559783e","id":25315,"implemented":true,"kind":"function","modifiers":[],"name":"unburntBundles","nameLocation":"11515:14:84","nodeType":"FunctionDefinition","overrides":{"id":25303,"nodeType":"OverrideSpecifier","overrides":[],"src":"11559:8:84"},"parameters":{"id":25302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25301,"mutability":"mutable","name":"riskpoolId","nameLocation":"11538:10:84","nodeType":"VariableDeclaration","scope":25315,"src":"11530:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25300,"name":"uint256","nodeType":"ElementaryTypeName","src":"11530:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11529:20:84"},"returnParameters":{"id":25306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25305,"mutability":"mutable","name":"numberOfUnburntBundles","nameLocation":"11589:22:84","nodeType":"VariableDeclaration","scope":25315,"src":"11581:30:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25304,"name":"uint256","nodeType":"ElementaryTypeName","src":"11581:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11580:32:84"},"scope":25379,"src":"11506:183:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6483],"body":{"id":25326,"nodeType":"Block","src":"11784:43:84","statements":[{"expression":{"arguments":[{"id":25323,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"11810:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}],"id":25322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11802:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25321,"name":"address","nodeType":"ElementaryTypeName","src":"11802:7:84","typeDescriptions":{}}},"id":25324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11802:18:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":25320,"id":25325,"nodeType":"Return","src":"11795:25:84"}]},"functionSelector":"e0024604","id":25327,"implemented":true,"kind":"function","modifiers":[],"name":"getTreasuryAddress","nameLocation":"11723:18:84","nodeType":"FunctionDefinition","overrides":{"id":25317,"nodeType":"OverrideSpecifier","overrides":[],"src":"11753:8:84"},"parameters":{"id":25316,"nodeType":"ParameterList","parameters":[],"src":"11741:2:84"},"returnParameters":{"id":25320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25327,"src":"11775:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25318,"name":"address","nodeType":"ElementaryTypeName","src":"11775:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11774:9:84"},"scope":25379,"src":"11714:113:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6488],"body":{"id":25337,"nodeType":"Block","src":"11902:54:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25333,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"11920:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getInstanceWallet","nodeType":"MemberAccess","referencedDeclaration":23481,"src":"11920:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":25335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11920:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":25332,"id":25336,"nodeType":"Return","src":"11913:36:84"}]},"functionSelector":"a44330c4","id":25338,"implemented":true,"kind":"function","modifiers":[],"name":"getInstanceWallet","nameLocation":"11842:17:84","nodeType":"FunctionDefinition","overrides":{"id":25329,"nodeType":"OverrideSpecifier","overrides":[],"src":"11871:8:84"},"parameters":{"id":25328,"nodeType":"ParameterList","parameters":[],"src":"11859:2:84"},"returnParameters":{"id":25332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25338,"src":"11893:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25330,"name":"address","nodeType":"ElementaryTypeName","src":"11893:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11892:9:84"},"scope":25379,"src":"11833:123:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6495],"body":{"id":25351,"nodeType":"Block","src":"12049:64:84","statements":[{"expression":{"arguments":[{"id":25348,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25340,"src":"12095:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25346,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"12067:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpoolWallet","nodeType":"MemberAccess","referencedDeclaration":23494,"src":"12067:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":25349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12067:39:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":25345,"id":25350,"nodeType":"Return","src":"12060:46:84"}]},"functionSelector":"49081637","id":25352,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolWallet","nameLocation":"11971:17:84","nodeType":"FunctionDefinition","overrides":{"id":25342,"nodeType":"OverrideSpecifier","overrides":[],"src":"12018:8:84"},"parameters":{"id":25341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25340,"mutability":"mutable","name":"riskpoolId","nameLocation":"11997:10:84","nodeType":"VariableDeclaration","scope":25352,"src":"11989:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25339,"name":"uint256","nodeType":"ElementaryTypeName","src":"11989:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11988:20:84"},"returnParameters":{"id":25345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25352,"src":"12040:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25343,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12039:9:84"},"scope":25379,"src":"11962:151:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6503],"body":{"id":25366,"nodeType":"Block","src":"12206:65:84","statements":[{"expression":{"arguments":[{"id":25363,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25354,"src":"12252:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25361,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"12224:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentToken","nodeType":"MemberAccess","referencedDeclaration":23449,"src":"12224:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20_$8831_$","typeString":"function (uint256) view external returns (contract IERC20)"}},"id":25364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12224:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"functionReturnParameters":25360,"id":25365,"nodeType":"Return","src":"12217:47:84"}]},"functionSelector":"038696bb","id":25367,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentToken","nameLocation":"12128:17:84","nodeType":"FunctionDefinition","overrides":{"id":25356,"nodeType":"OverrideSpecifier","overrides":[],"src":"12176:8:84"},"parameters":{"id":25355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25354,"mutability":"mutable","name":"componentId","nameLocation":"12154:11:84","nodeType":"VariableDeclaration","scope":25367,"src":"12146:19:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25353,"name":"uint256","nodeType":"ElementaryTypeName","src":"12146:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12145:21:84"},"returnParameters":{"id":25360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25367,"src":"12198:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":25358,"nodeType":"UserDefinedTypeName","pathNode":{"id":25357,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"12198:6:84"},"referencedDeclaration":8831,"src":"12198:6:84","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"12197:8:84"},"scope":25379,"src":"12119:152:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6508],"body":{"id":25377,"nodeType":"Block","src":"12351:55:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25373,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"12368:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getFractionFullUnit","nodeType":"MemberAccess","referencedDeclaration":23472,"src":"12368:29:84","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_uint256_$","typeString":"function () pure external returns (uint256)"}},"id":25375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12368:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25372,"id":25376,"nodeType":"Return","src":"12361:38:84"}]},"functionSelector":"6319112b","id":25378,"implemented":true,"kind":"function","modifiers":[],"name":"getFeeFractionFullUnit","nameLocation":"12286:22:84","nodeType":"FunctionDefinition","overrides":{"id":25369,"nodeType":"OverrideSpecifier","overrides":[],"src":"12320:8:84"},"parameters":{"id":25368,"nodeType":"ParameterList","parameters":[],"src":"12308:2:84"},"returnParameters":{"id":25372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25371,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25378,"src":"12342:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25370,"name":"uint256","nodeType":"ElementaryTypeName","src":"12342:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12341:9:84"},"scope":25379,"src":"12277:129:84","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":25380,"src":"1407:11001:84"}],"src":"39:12370:84"},"id":84},"contracts/services/OracleService.sol":{"ast":{"absolutePath":"contracts/services/OracleService.sol","exportedSymbols":{"Address":[10496],"Context":[10518],"CoreController":[26413],"IAccess":[4836],"IOracleService":[6519],"IQuery":[5616],"IRegistry":[5714],"Initializable":[8059],"OracleService":[25425]},"id":25426,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":25381,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:85"},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":25382,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25426,"sourceUnit":26414,"src":"63:38:85","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IQuery.sol","file":"@etherisc/gif-interface/contracts/modules/IQuery.sol","id":25383,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25426,"sourceUnit":5617,"src":"103:62:85","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IOracleService.sol","file":"@etherisc/gif-interface/contracts/services/IOracleService.sol","id":25384,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25426,"sourceUnit":6520,"src":"166:71:85","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":25385,"name":"IOracleService","nodeType":"IdentifierPath","referencedDeclaration":6519,"src":"271:14:85"},"id":25386,"nodeType":"InheritanceSpecifier","src":"271:14:85"},{"baseName":{"id":25387,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"292:14:85"},"id":25388,"nodeType":"InheritanceSpecifier","src":"292:14:85"}],"contractDependencies":[6519,8059,10518,26413],"contractKind":"contract","fullyImplemented":true,"id":25425,"linearizedBaseContracts":[25425,26413,8059,10518,6519],"name":"OracleService","nameLocation":"249:13:85","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":25391,"mutability":"mutable","name":"_query","nameLocation":"328:6:85","nodeType":"VariableDeclaration","scope":25425,"src":"313:21:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"},"typeName":{"id":25390,"nodeType":"UserDefinedTypeName","pathNode":{"id":25389,"name":"IQuery","nodeType":"IdentifierPath","referencedDeclaration":5616,"src":"313:6:85"},"referencedDeclaration":5616,"src":"313:6:85","typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"}},"visibility":"private"},{"baseFunctions":[26387],"body":{"id":25405,"nodeType":"Block","src":"404:62:85","statements":[{"expression":{"id":25403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25397,"name":"_query","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25391,"src":"414:6:85","typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"5175657279","id":25400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"450:7:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""}],"id":25399,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"430:19:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":25401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"430:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25398,"name":"IQuery","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5616,"src":"423:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IQuery_$5616_$","typeString":"type(contract IQuery)"}},"id":25402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"423:36:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"}},"src":"414:45:85","typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"}},"id":25404,"nodeType":"ExpressionStatement","src":"414:45:85"}]},"id":25406,"implemented":true,"kind":"function","modifiers":[{"id":25395,"modifierName":{"id":25394,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"387:16:85"},"nodeType":"ModifierInvocation","src":"387:16:85"}],"name":"_afterInitialize","nameLocation":"350:16:85","nodeType":"FunctionDefinition","overrides":{"id":25393,"nodeType":"OverrideSpecifier","overrides":[],"src":"378:8:85"},"parameters":{"id":25392,"nodeType":"ParameterList","parameters":[],"src":"366:2:85"},"returnParameters":{"id":25396,"nodeType":"ParameterList","parameters":[],"src":"404:0:85"},"scope":25425,"src":"341:125:85","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[6518],"body":{"id":25423,"nodeType":"Block","src":"549:136:85","statements":[{"expression":{"arguments":[{"id":25417,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25408,"src":"646:10:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":25418,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"658:10:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"658:12:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25420,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25410,"src":"672:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":25414,"name":"_query","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25391,"src":"631:6:85","typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"}},"id":25416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"respond","nodeType":"MemberAccess","referencedDeclaration":5610,"src":"631:14:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,address,bytes memory) external"}},"id":25421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"631:47:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25422,"nodeType":"ExpressionStatement","src":"631:47:85"}]},"functionSelector":"e409534a","id":25424,"implemented":true,"kind":"function","modifiers":[],"name":"respond","nameLocation":"481:7:85","nodeType":"FunctionDefinition","overrides":{"id":25412,"nodeType":"OverrideSpecifier","overrides":[],"src":"540:8:85"},"parameters":{"id":25411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25408,"mutability":"mutable","name":"_requestId","nameLocation":"497:10:85","nodeType":"VariableDeclaration","scope":25424,"src":"489:18:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25407,"name":"uint256","nodeType":"ElementaryTypeName","src":"489:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25410,"mutability":"mutable","name":"_data","nameLocation":"524:5:85","nodeType":"VariableDeclaration","scope":25424,"src":"509:20:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":25409,"name":"bytes","nodeType":"ElementaryTypeName","src":"509:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"488:42:85"},"returnParameters":{"id":25413,"nodeType":"ParameterList","parameters":[],"src":"549:0:85"},"scope":25425,"src":"472:213:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":25426,"src":"240:447:85"}],"src":"39:649:85"},"id":85},"contracts/services/ProductService.sol":{"ast":{"absolutePath":"contracts/services/ProductService.sol","exportedSymbols":{"Context":[10518],"ILicense":[5087],"IRegistry":[5714],"ProductService":[25503],"WithRegistry":[26779]},"id":25504,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":25427,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:86"},{"absolutePath":"contracts/shared/WithRegistry.sol","file":"../shared/WithRegistry.sol","id":25428,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25504,"sourceUnit":26780,"src":"63:36:86","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/ILicense.sol","file":"@etherisc/gif-interface/contracts/modules/ILicense.sol","id":25429,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25504,"sourceUnit":5088,"src":"142:64:86","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"@openzeppelin/contracts/utils/Context.sol","id":25430,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25504,"sourceUnit":10519,"src":"208:51:86","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":25431,"name":"WithRegistry","nodeType":"IdentifierPath","referencedDeclaration":26779,"src":"292:12:86"},"id":25432,"nodeType":"InheritanceSpecifier","src":"292:12:86"},{"baseName":{"id":25433,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"332:7:86"},"id":25434,"nodeType":"InheritanceSpecifier","src":"332:7:86"}],"contractDependencies":[10518,26779],"contractKind":"contract","fullyImplemented":true,"id":25503,"linearizedBaseContracts":[25503,10518,26779],"name":"ProductService","nameLocation":"270:14:86","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":25437,"mutability":"constant","name":"NAME","nameLocation":"371:4:86","nodeType":"VariableDeclaration","scope":25503,"src":"347:47:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"347:7:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"50726f6475637453657276696365","id":25436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"378:16:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""},"value":"ProductService"},"visibility":"public"},{"body":{"id":25445,"nodeType":"Block","src":"505:2:86","statements":[]},"id":25446,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":25442,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25439,"src":"494:9:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":25443,"modifierName":{"id":25441,"name":"WithRegistry","nodeType":"IdentifierPath","referencedDeclaration":26779,"src":"481:12:86"},"nodeType":"ModifierInvocation","src":"481:23:86"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":25440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25439,"mutability":"mutable","name":"_registry","nameLocation":"470:9:86","nodeType":"VariableDeclaration","scope":25446,"src":"462:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25438,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"461:19:86"},"returnParameters":{"id":25444,"nodeType":"ParameterList","parameters":[],"src":"505:0:86"},"scope":25503,"src":"450:57:86","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":25479,"nodeType":"Block","src":"533:368:86","statements":[{"assignments":[null,25450,25452],"declarations":[null,{"constant":false,"id":25450,"mutability":"mutable","name":"isAuthorized","nameLocation":"631:12:86","nodeType":"VariableDeclaration","scope":25479,"src":"626:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25449,"name":"bool","nodeType":"ElementaryTypeName","src":"626:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25452,"mutability":"mutable","name":"policyFlow","nameLocation":"653:10:86","nodeType":"VariableDeclaration","scope":25479,"src":"645:18:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25451,"name":"address","nodeType":"ElementaryTypeName","src":"645:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":25459,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25456,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"701:10:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"701:12:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":25453,"name":"_license","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25502,"src":"667:8:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_ILicense_$5087_$","typeString":"function () view returns (contract ILicense)"}},"id":25454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"667:10:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILicense_$5087","typeString":"contract ILicense"}},"id":25455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAuthorizationStatus","nodeType":"MemberAccess","referencedDeclaration":5086,"src":"667:33:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$_t_bool_$_t_address_$","typeString":"function (address) view external returns (uint256,bool,address)"}},"id":25458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"667:47:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$_t_address_$","typeString":"tuple(uint256,bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"624:90:86"},{"expression":{"arguments":[{"id":25461,"name":"isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25450,"src":"733:12:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5052532d3030313a4e4f545f415554484f52495a4544","id":25462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"747:30:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ea29d619e783380245e9479bc50992b7e9e66d498084c15d9aeb14649a09dc3","typeString":"literal_string \"ERROR:PRS-001:NOT_AUTHORIZED\""},"value":"ERROR:PRS-001:NOT_AUTHORIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2ea29d619e783380245e9479bc50992b7e9e66d498084c15d9aeb14649a09dc3","typeString":"literal_string \"ERROR:PRS-001:NOT_AUTHORIZED\""}],"id":25460,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"725:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"725:53:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25464,"nodeType":"ExpressionStatement","src":"725:53:86"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":25471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25466,"name":"policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25452,"src":"796:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":25469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"818:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":25468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"810:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25467,"name":"address","nodeType":"ElementaryTypeName","src":"810:7:86","typeDescriptions":{}}},"id":25470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"810:10:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"796:24:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5052532d3030323a504f4c4943595f464c4f575f4e4f545f5245534f4c564544","id":25472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"821:40:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_3481a442355178eff70c53b479d1406dd857fddda3e91ffea746909cf740d5cd","typeString":"literal_string \"ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED\""},"value":"ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3481a442355178eff70c53b479d1406dd857fddda3e91ffea746909cf740d5cd","typeString":"literal_string \"ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED\""}],"id":25465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"788:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"788:74:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25474,"nodeType":"ExpressionStatement","src":"788:74:86"},{"expression":{"arguments":[{"id":25476,"name":"policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25452,"src":"883:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25475,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25488,"src":"873:9:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":25477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"873:21:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25478,"nodeType":"ExpressionStatement","src":"873:21:86"}]},"id":25480,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":25447,"nodeType":"ParameterList","parameters":[],"src":"521:2:86"},"returnParameters":{"id":25448,"nodeType":"ParameterList","parameters":[],"src":"533:0:86"},"scope":25503,"src":"513:388:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":25487,"nodeType":"Block","src":"1314:835:86","statements":[{"AST":{"nodeType":"YulBlock","src":"1333:810:86","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1586:1:86","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1589:1:86","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1592:12:86"},"nodeType":"YulFunctionCall","src":"1592:14:86"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1573:12:86"},"nodeType":"YulFunctionCall","src":"1573:34:86"},"nodeType":"YulExpressionStatement","src":"1573:34:86"},{"nodeType":"YulVariableDeclaration","src":"1734:74:86","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"1761:3:86"},"nodeType":"YulFunctionCall","src":"1761:5:86"},{"name":"implementation","nodeType":"YulIdentifier","src":"1768:14:86"},{"kind":"number","nodeType":"YulLiteral","src":"1784:1:86","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1787:12:86"},"nodeType":"YulFunctionCall","src":"1787:14:86"},{"kind":"number","nodeType":"YulLiteral","src":"1803:1:86","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1806:1:86","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"1748:12:86"},"nodeType":"YulFunctionCall","src":"1748:60:86"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"1738:6:86","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1876:1:86","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1879:1:86","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1882:14:86"},"nodeType":"YulFunctionCall","src":"1882:16:86"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"1861:14:86"},"nodeType":"YulFunctionCall","src":"1861:38:86"},"nodeType":"YulExpressionStatement","src":"1861:38:86"},{"cases":[{"body":{"nodeType":"YulBlock","src":"1994:59:86","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2019:1:86","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2022:14:86"},"nodeType":"YulFunctionCall","src":"2022:16:86"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2012:6:86"},"nodeType":"YulFunctionCall","src":"2012:27:86"},"nodeType":"YulExpressionStatement","src":"2012:27:86"}]},"nodeType":"YulCase","src":"1987:66:86","value":{"kind":"number","nodeType":"YulLiteral","src":"1992:1:86","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"2074:59:86","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2099:1:86","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2102:14:86"},"nodeType":"YulFunctionCall","src":"2102:16:86"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"2092:6:86"},"nodeType":"YulFunctionCall","src":"2092:27:86"},"nodeType":"YulExpressionStatement","src":"2092:27:86"}]},"nodeType":"YulCase","src":"2066:67:86","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"1920:6:86"},"nodeType":"YulSwitch","src":"1913:220:86"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":25483,"isOffset":false,"isSlot":false,"src":"1768:14:86","valueSize":1}],"id":25486,"nodeType":"InlineAssembly","src":"1324:819:86"}]},"documentation":{"id":25481,"nodeType":"StructuredDocumentation","src":"908:349:86","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller.\n This function is a 1:1 copy of _delegate from\n https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.6/contracts/proxy/Proxy.sol"},"id":25488,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"1271:9:86","nodeType":"FunctionDefinition","parameters":{"id":25484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25483,"mutability":"mutable","name":"implementation","nameLocation":"1289:14:86","nodeType":"VariableDeclaration","scope":25488,"src":"1281:22:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25482,"name":"address","nodeType":"ElementaryTypeName","src":"1281:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1280:24:86"},"returnParameters":{"id":25485,"nodeType":"ParameterList","parameters":[],"src":"1314:0:86"},"scope":25503,"src":"1262:887:86","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":25501,"nodeType":"Block","src":"2208:65:86","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"4c6963656e7365","id":25497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2255:9:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b9d03c09d4e108ca3b630bc72507e91ae7da8eb1de63663acbce1d12cfbfb3a","typeString":"literal_string \"License\""},"value":"License"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b9d03c09d4e108ca3b630bc72507e91ae7da8eb1de63663acbce1d12cfbfb3a","typeString":"literal_string \"License\""}],"expression":{"id":25495,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26665,"src":"2234:8:86","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":25496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContract","nodeType":"MemberAccess","referencedDeclaration":5687,"src":"2234:20:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":25498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2234:31:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25494,"name":"ILicense","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5087,"src":"2225:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILicense_$5087_$","typeString":"type(contract ILicense)"}},"id":25499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2225:41:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILicense_$5087","typeString":"contract ILicense"}},"functionReturnParameters":25493,"id":25500,"nodeType":"Return","src":"2218:48:86"}]},"id":25502,"implemented":true,"kind":"function","modifiers":[],"name":"_license","nameLocation":"2164:8:86","nodeType":"FunctionDefinition","parameters":{"id":25489,"nodeType":"ParameterList","parameters":[],"src":"2172:2:86"},"returnParameters":{"id":25493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25492,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25502,"src":"2198:8:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILicense_$5087","typeString":"contract ILicense"},"typeName":{"id":25491,"nodeType":"UserDefinedTypeName","pathNode":{"id":25490,"name":"ILicense","nodeType":"IdentifierPath","referencedDeclaration":5087,"src":"2198:8:86"},"referencedDeclaration":5087,"src":"2198:8:86","typeDescriptions":{"typeIdentifier":"t_contract$_ILicense_$5087","typeString":"contract ILicense"}},"visibility":"internal"}],"src":"2197:10:86"},"scope":25503,"src":"2155:118:86","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":25504,"src":"261:2015:86"}],"src":"39:2238:86"},"id":86},"contracts/services/RiskpoolService.sol":{"ast":{"absolutePath":"contracts/services/RiskpoolService.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IOracle":[3022],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"Ownable":[7481],"Pausable":[8167],"PolicyController":[19974],"PoolController":[21207],"RiskpoolService":[26277],"Strings":[10804],"TransferHelper":[26659],"TreasuryModule":[23615]},"id":26278,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":25505,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:87"},{"absolutePath":"contracts/modules/BundleController.sol","file":"../modules/BundleController.sol","id":25506,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":16947,"src":"63:41:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/ComponentController.sol","file":"../modules/ComponentController.sol","id":25507,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":17948,"src":"105:44:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/TreasuryModule.sol","file":"../modules/TreasuryModule.sol","id":25508,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":23616,"src":"150:39:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":25509,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":26414,"src":"190:38:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":25510,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":2989,"src":"230:69:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"@etherisc/gif-interface/contracts/modules/IBundle.sol","id":25511,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":5021,"src":"300:63:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","file":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","id":25512,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":6771,"src":"364:73:87","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":25513,"name":"IRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":6770,"src":"471:16:87"},"id":25514,"nodeType":"InheritanceSpecifier","src":"471:16:87"},{"baseName":{"id":25515,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"494:14:87"},"id":25516,"nodeType":"InheritanceSpecifier","src":"494:14:87"}],"contractDependencies":[6770,8059,10518,26413],"contractKind":"contract","fullyImplemented":true,"id":26277,"linearizedBaseContracts":[26277,26413,8059,10518,6770],"name":"RiskpoolService","nameLocation":"448:15:87","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"04f5f96e","id":25519,"mutability":"constant","name":"RISKPOOL_NAME","nameLocation":"539:13:87","nodeType":"VariableDeclaration","scope":26277,"src":"515:50:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"515:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"5269736b706f6f6c","id":25518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"555:10:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_379f7b8ce4ca8a02cca13e3a2339578b352fc7be5bfc0cbb47a1b3d0e1633665","typeString":"literal_string \"Riskpool\""},"value":"Riskpool"},"visibility":"public"},{"constant":false,"id":25522,"mutability":"mutable","name":"_component","nameLocation":"600:10:87","nodeType":"VariableDeclaration","scope":26277,"src":"572:38:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":25521,"nodeType":"UserDefinedTypeName","pathNode":{"id":25520,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"572:19:87"},"referencedDeclaration":17947,"src":"572:19:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"constant":false,"id":25525,"mutability":"mutable","name":"_bundle","nameLocation":"641:7:87","nodeType":"VariableDeclaration","scope":26277,"src":"616:32:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"},"typeName":{"id":25524,"nodeType":"UserDefinedTypeName","pathNode":{"id":25523,"name":"BundleController","nodeType":"IdentifierPath","referencedDeclaration":16946,"src":"616:16:87"},"referencedDeclaration":16946,"src":"616:16:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"visibility":"private"},{"constant":false,"id":25528,"mutability":"mutable","name":"_pool","nameLocation":"677:5:87","nodeType":"VariableDeclaration","scope":26277,"src":"654:28:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":25527,"nodeType":"UserDefinedTypeName","pathNode":{"id":25526,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"654:14:87"},"referencedDeclaration":21207,"src":"654:14:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"private"},{"constant":false,"id":25531,"mutability":"mutable","name":"_treasury","nameLocation":"711:9:87","nodeType":"VariableDeclaration","scope":26277,"src":"688:32:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":25530,"nodeType":"UserDefinedTypeName","pathNode":{"id":25529,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"688:14:87"},"referencedDeclaration":23615,"src":"688:14:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"private"},{"body":{"id":25566,"nodeType":"Block","src":"759:427:87","statements":[{"assignments":[25534],"declarations":[{"constant":false,"id":25534,"mutability":"mutable","name":"componentId","nameLocation":"777:11:87","nodeType":"VariableDeclaration","scope":25566,"src":"769:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25533,"name":"uint256","nodeType":"ElementaryTypeName","src":"769:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25540,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25537,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"817:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"817:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25535,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"791:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"791:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"791:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"769:61:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":25549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25544,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25534,"src":"889:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25542,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"861:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"861:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":25545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"861:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25546,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"905:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"905:24:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":25548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"905:33:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"861:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030313a53454e4445525f4e4f545f5249534b504f4f4c","id":25550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"952:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae48b1a9c680c35d2a9f667f2fed37c9f73ddafd56231c776d44d9e8be57b7c6","typeString":"literal_string \"ERROR:RPS-001:SENDER_NOT_RISKPOOL\""},"value":"ERROR:RPS-001:SENDER_NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae48b1a9c680c35d2a9f667f2fed37c9f73ddafd56231c776d44d9e8be57b7c6","typeString":"literal_string \"ERROR:RPS-001:SENDER_NOT_RISKPOOL\""}],"id":25541,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"840:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"840:157:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25552,"nodeType":"ExpressionStatement","src":"840:157:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":25561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25556,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25534,"src":"1057:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25554,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1028:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"1028:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":25557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1028:41:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25558,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"1073:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"1073:25:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":25560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Proposed","nodeType":"MemberAccess","referencedDeclaration":2893,"src":"1073:34:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"1028:79:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030323a5249534b504f4f4c5f4e4f545f50524f504f534544","id":25562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1121:37:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c96a51f00cf9612773d15d17720eae05a0f2c52cc3d14d5ed17e37cdf11d67e","typeString":"literal_string \"ERROR:RPS-002:RISKPOOL_NOT_PROPOSED\""},"value":"ERROR:RPS-002:RISKPOOL_NOT_PROPOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c96a51f00cf9612773d15d17720eae05a0f2c52cc3d14d5ed17e37cdf11d67e","typeString":"literal_string \"ERROR:RPS-002:RISKPOOL_NOT_PROPOSED\""}],"id":25553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1007:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1007:161:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25564,"nodeType":"ExpressionStatement","src":"1007:161:87"},{"id":25565,"nodeType":"PlaceholderStatement","src":"1178:1:87"}]},"id":25567,"name":"onlyProposedRiskpool","nameLocation":"736:20:87","nodeType":"ModifierDefinition","parameters":{"id":25532,"nodeType":"ParameterList","parameters":[],"src":"756:2:87"},"src":"727:459:87","virtual":false,"visibility":"internal"},{"body":{"id":25602,"nodeType":"Block","src":"1222:423:87","statements":[{"assignments":[25570],"declarations":[{"constant":false,"id":25570,"mutability":"mutable","name":"componentId","nameLocation":"1240:11:87","nodeType":"VariableDeclaration","scope":25602,"src":"1232:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25569,"name":"uint256","nodeType":"ElementaryTypeName","src":"1232:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25576,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25573,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1280:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1280:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25571,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1254:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"1254:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1254:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1232:61:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":25585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25580,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25570,"src":"1352:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25578,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1324:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"1324:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":25581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1324:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25582,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"1368:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"1368:24:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":25584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"1368:33:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"1324:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030333a53454e4445525f4e4f545f5249534b504f4f4c","id":25586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1415:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0cf53bcac0823b95001502ace6e4a3ba31149781e27fb2df5d3fca0a348d9e0","typeString":"literal_string \"ERROR:RPS-003:SENDER_NOT_RISKPOOL\""},"value":"ERROR:RPS-003:SENDER_NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d0cf53bcac0823b95001502ace6e4a3ba31149781e27fb2df5d3fca0a348d9e0","typeString":"literal_string \"ERROR:RPS-003:SENDER_NOT_RISKPOOL\""}],"id":25577,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1303:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1303:157:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25588,"nodeType":"ExpressionStatement","src":"1303:157:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":25597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25592,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25570,"src":"1520:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25590,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1491:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"1491:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":25593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1491:41:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25594,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"1536:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"1536:25:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":25596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"1536:32:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"1491:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030343a5249534b504f4f4c5f4e4f545f414354495645","id":25598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1582:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_6aeeb671cb04d5a48d011c2b888ef50bedbd1cccc4d6e15aa35591a7f0d67c8d","typeString":"literal_string \"ERROR:RPS-004:RISKPOOL_NOT_ACTIVE\""},"value":"ERROR:RPS-004:RISKPOOL_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6aeeb671cb04d5a48d011c2b888ef50bedbd1cccc4d6e15aa35591a7f0d67c8d","typeString":"literal_string \"ERROR:RPS-004:RISKPOOL_NOT_ACTIVE\""}],"id":25589,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1470:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1470:157:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25600,"nodeType":"ExpressionStatement","src":"1470:157:87"},{"id":25601,"nodeType":"PlaceholderStatement","src":"1637:1:87"}]},"id":25603,"name":"onlyActiveRiskpool","nameLocation":"1201:18:87","nodeType":"ModifierDefinition","parameters":{"id":25568,"nodeType":"ParameterList","parameters":[],"src":"1219:2:87"},"src":"1192:453:87","virtual":false,"visibility":"internal"},{"body":{"id":25667,"nodeType":"Block","src":"1716:710:87","statements":[{"assignments":[25610],"declarations":[{"constant":false,"id":25610,"mutability":"mutable","name":"componentId","nameLocation":"1734:11:87","nodeType":"VariableDeclaration","scope":25667,"src":"1726:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25609,"name":"uint256","nodeType":"ElementaryTypeName","src":"1726:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25616,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25613,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1774:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1774:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25611,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1748:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"1748:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1748:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1726:61:87"},{"assignments":[25618],"declarations":[{"constant":false,"id":25618,"mutability":"mutable","name":"isRiskpool","nameLocation":"1802:10:87","nodeType":"VariableDeclaration","scope":25667,"src":"1797:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25617,"name":"bool","nodeType":"ElementaryTypeName","src":"1797:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":25627,"initialValue":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":25626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25621,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25610,"src":"1843:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25619,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1815:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"1815:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":25622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1815:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25623,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"1859:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"1859:24:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":25625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"1859:33:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"1815:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1797:95:87"},{"assignments":[25632],"declarations":[{"constant":false,"id":25632,"mutability":"mutable","name":"bundle","nameLocation":"1924:6:87","nodeType":"VariableDeclaration","scope":25667,"src":"1902:28:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":25631,"nodeType":"UserDefinedTypeName","pathNode":{"id":25630,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"1902:14:87"},"referencedDeclaration":4936,"src":"1902:14:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":25637,"initialValue":{"arguments":[{"id":25635,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25605,"src":"1951:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25633,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"1933:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"1933:17:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":25636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1933:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"1902:58:87"},{"expression":{"arguments":[{"id":25639,"name":"isRiskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25618,"src":"1991:10:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030353a53454e4445525f4e4f545f5249534b504f4f4c","id":25640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2015:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_309fb80389ae2cf275d3bd06f653b63b4bb0fb9d9ee3e0d9b947706f44385d1f","typeString":"literal_string \"ERROR:RPS-005:SENDER_NOT_RISKPOOL\""},"value":"ERROR:RPS-005:SENDER_NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_309fb80389ae2cf275d3bd06f653b63b4bb0fb9d9ee3e0d9b947706f44385d1f","typeString":"literal_string \"ERROR:RPS-005:SENDER_NOT_RISKPOOL\""}],"id":25638,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1970:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1970:90:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25642,"nodeType":"ExpressionStatement","src":"1970:90:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25644,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25610,"src":"2091:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":25645,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25632,"src":"2106:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"2106:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2091:32:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030363a42554e444c455f5249534b504f4f4c5f4d49534d41544348","id":25648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2137:40:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_855b2be9e098fb1f219f436687f12dd85abab2ace616e4294e271e6704a1c399","typeString":"literal_string \"ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH\""},"value":"ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_855b2be9e098fb1f219f436687f12dd85abab2ace616e4294e271e6704a1c399","typeString":"literal_string \"ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH\""}],"id":25643,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2070:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2070:117:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25650,"nodeType":"ExpressionStatement","src":"2070:117:87"},{"condition":{"id":25651,"name":"mustBeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25607,"src":"2201:12:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25665,"nodeType":"IfStatement","src":"2197:212:87","trueBody":{"id":25664,"nodeType":"Block","src":"2215:194:87","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":25660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25655,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25610,"src":"2283:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25653,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"2254:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"2254:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":25656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2254:41:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25657,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"2299:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"2299:25:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":25659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"2299:32:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"2254:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030373a5249534b504f4f4c5f4e4f545f414354495645","id":25661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2349:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_82c4beee20530787664c8ead0427e62fb92780c18734e94848452ff578617680","typeString":"literal_string \"ERROR:RPS-007:RISKPOOL_NOT_ACTIVE\""},"value":"ERROR:RPS-007:RISKPOOL_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_82c4beee20530787664c8ead0427e62fb92780c18734e94848452ff578617680","typeString":"literal_string \"ERROR:RPS-007:RISKPOOL_NOT_ACTIVE\""}],"id":25652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2229:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2229:169:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25663,"nodeType":"ExpressionStatement","src":"2229:169:87"}]}},{"id":25666,"nodeType":"PlaceholderStatement","src":"2418:1:87"}]},"id":25668,"name":"onlyOwningRiskpool","nameLocation":"1660:18:87","nodeType":"ModifierDefinition","parameters":{"id":25608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25605,"mutability":"mutable","name":"bundleId","nameLocation":"1687:8:87","nodeType":"VariableDeclaration","scope":25668,"src":"1679:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25604,"name":"uint256","nodeType":"ElementaryTypeName","src":"1679:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25607,"mutability":"mutable","name":"mustBeActive","nameLocation":"1702:12:87","nodeType":"VariableDeclaration","scope":25668,"src":"1697:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25606,"name":"bool","nodeType":"ElementaryTypeName","src":"1697:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1678:37:87"},"src":"1651:775:87","virtual":false,"visibility":"internal"},{"body":{"id":25718,"nodeType":"Block","src":"2501:551:87","statements":[{"assignments":[25675],"declarations":[{"constant":false,"id":25675,"mutability":"mutable","name":"componentId","nameLocation":"2519:11:87","nodeType":"VariableDeclaration","scope":25718,"src":"2511:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25674,"name":"uint256","nodeType":"ElementaryTypeName","src":"2511:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25681,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25678,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"2559:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2559:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25676,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"2533:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"2533:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2533:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2511:61:87"},{"assignments":[25683],"declarations":[{"constant":false,"id":25683,"mutability":"mutable","name":"isRiskpool","nameLocation":"2587:10:87","nodeType":"VariableDeclaration","scope":25718,"src":"2582:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25682,"name":"bool","nodeType":"ElementaryTypeName","src":"2582:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":25692,"initialValue":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":25691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25686,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25675,"src":"2628:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25684,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"2600:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"2600:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":25687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2600:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25688,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"2644:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"2644:24:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":25690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"2644:33:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"2600:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2582:95:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25694,"name":"isRiskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25683,"src":"2708:10:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25695,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25675,"src":"2722:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":25696,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25670,"src":"2737:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2722:25:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2708:39:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030383a53454e4445525f4e4f545f4f574e494e475f5249534b504f4f4c","id":25699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2761:42:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c31b8742a47ea96bb8a5dda4954f2d206e7ddf3e59e186c3dda9736791081f4","typeString":"literal_string \"ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL\""},"value":"ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c31b8742a47ea96bb8a5dda4954f2d206e7ddf3e59e186c3dda9736791081f4","typeString":"literal_string \"ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL\""}],"id":25693,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2687:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2687:126:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25701,"nodeType":"ExpressionStatement","src":"2687:126:87"},{"condition":{"id":25702,"name":"mustBeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25672,"src":"2827:12:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25716,"nodeType":"IfStatement","src":"2823:212:87","trueBody":{"id":25715,"nodeType":"Block","src":"2841:194:87","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":25711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25706,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25675,"src":"2909:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25704,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"2880:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"2880:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":25707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2880:41:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25708,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"2925:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"2925:25:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":25710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"2925:32:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"2880:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030393a5249534b504f4f4c5f4e4f545f414354495645","id":25712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2975:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_5997ac91a2b36c0c5a522febf3408a4cfa08d11c8d231513f8127518fd86198f","typeString":"literal_string \"ERROR:RPS-009:RISKPOOL_NOT_ACTIVE\""},"value":"ERROR:RPS-009:RISKPOOL_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5997ac91a2b36c0c5a522febf3408a4cfa08d11c8d231513f8127518fd86198f","typeString":"literal_string \"ERROR:RPS-009:RISKPOOL_NOT_ACTIVE\""}],"id":25703,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2855:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2855:169:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25714,"nodeType":"ExpressionStatement","src":"2855:169:87"}]}},{"id":25717,"nodeType":"PlaceholderStatement","src":"3044:1:87"}]},"id":25719,"name":"onlyOwningRiskpoolId","nameLocation":"2441:20:87","nodeType":"ModifierDefinition","parameters":{"id":25673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25670,"mutability":"mutable","name":"riskpoolId","nameLocation":"2470:10:87","nodeType":"VariableDeclaration","scope":25719,"src":"2462:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25669,"name":"uint256","nodeType":"ElementaryTypeName","src":"2462:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25672,"mutability":"mutable","name":"mustBeActive","nameLocation":"2487:12:87","nodeType":"VariableDeclaration","scope":25719,"src":"2482:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25671,"name":"bool","nodeType":"ElementaryTypeName","src":"2482:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2461:39:87"},"src":"2432:620:87","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":25757,"nodeType":"Block","src":"3145:280:87","statements":[{"expression":{"id":25731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25725,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"3155:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"42756e646c65","id":25728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3202:8:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""},"value":"Bundle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""}],"id":25727,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3182:19:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":25729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3182:29:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25726,"name":"BundleController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"3165:16:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleController_$16946_$","typeString":"type(contract BundleController)"}},"id":25730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3165:47:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"src":"3155:57:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25732,"nodeType":"ExpressionStatement","src":"3155:57:87"},{"expression":{"id":25739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25733,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"3222:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":25736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3275:11:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":25735,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3255:19:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":25737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3255:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25734,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"3235:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":25738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3235:53:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"3222:66:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25740,"nodeType":"ExpressionStatement","src":"3222:66:87"},{"expression":{"id":25747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25741,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"3298:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6f6c","id":25744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3341:6:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":25743,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3321:19:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":25745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3321:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25742,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"3306:14:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":25746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3306:43:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"src":"3298:51:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25748,"nodeType":"ExpressionStatement","src":"3298:51:87"},{"expression":{"id":25755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25749,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25531,"src":"3359:9:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"5472656173757279","id":25752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3406:10:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""}],"id":25751,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3386:19:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":25753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3386:31:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25750,"name":"TreasuryModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23615,"src":"3371:14:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TreasuryModule_$23615_$","typeString":"type(contract TreasuryModule)"}},"id":25754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3371:47:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"src":"3359:59:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25756,"nodeType":"ExpressionStatement","src":"3359:59:87"}]},"id":25758,"implemented":true,"kind":"function","modifiers":[{"id":25723,"modifierName":{"id":25722,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"3123:16:87"},"nodeType":"ModifierInvocation","src":"3123:16:87"}],"name":"_afterInitialize","nameLocation":"3068:16:87","nodeType":"FunctionDefinition","overrides":{"id":25721,"nodeType":"OverrideSpecifier","overrides":[],"src":"3105:8:87"},"parameters":{"id":25720,"nodeType":"ParameterList","parameters":[],"src":"3084:2:87"},"returnParameters":{"id":25724,"nodeType":"ParameterList","parameters":[],"src":"3145:0:87"},"scope":26277,"src":"3059:366:87","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[6677],"body":{"id":25790,"nodeType":"Block","src":"3652:257:87","statements":[{"assignments":[25773],"declarations":[{"constant":false,"id":25773,"mutability":"mutable","name":"riskpoolId","nameLocation":"3670:10:87","nodeType":"VariableDeclaration","scope":25790,"src":"3662:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25772,"name":"uint256","nodeType":"ElementaryTypeName","src":"3662:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25779,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25776,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3709:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3709:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25774,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"3683:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"3683:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3683:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3662:60:87"},{"expression":{"arguments":[{"id":25783,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25773,"src":"3768:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25784,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25760,"src":"3793:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25785,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25762,"src":"3813:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25786,"name":"collateralizationLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25764,"src":"3837:22:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25787,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25766,"src":"3874:18:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25780,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"3732:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerRiskpool","nodeType":"MemberAccess","referencedDeclaration":20308,"src":"3732:22:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,uint256,uint256) external"}},"id":25788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3732:170:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25789,"nodeType":"ExpressionStatement","src":"3732:170:87"}]},"functionSelector":"bf2e3546","id":25791,"implemented":true,"kind":"function","modifiers":[{"id":25770,"modifierName":{"id":25769,"name":"onlyProposedRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25567,"src":"3627:20:87"},"nodeType":"ModifierInvocation","src":"3627:20:87"}],"name":"registerRiskpool","nameLocation":"3441:16:87","nodeType":"FunctionDefinition","overrides":{"id":25768,"nodeType":"OverrideSpecifier","overrides":[],"src":"3610:8:87"},"parameters":{"id":25767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25760,"mutability":"mutable","name":"wallet","nameLocation":"3475:6:87","nodeType":"VariableDeclaration","scope":25791,"src":"3467:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25759,"name":"address","nodeType":"ElementaryTypeName","src":"3467:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25762,"mutability":"mutable","name":"erc20Token","nameLocation":"3499:10:87","nodeType":"VariableDeclaration","scope":25791,"src":"3491:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25761,"name":"address","nodeType":"ElementaryTypeName","src":"3491:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25764,"mutability":"mutable","name":"collateralizationLevel","nameLocation":"3527:22:87","nodeType":"VariableDeclaration","scope":25791,"src":"3519:30:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25763,"name":"uint256","nodeType":"ElementaryTypeName","src":"3519:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25766,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"3568:18:87","nodeType":"VariableDeclaration","scope":25791,"src":"3560:26:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25765,"name":"uint256","nodeType":"ElementaryTypeName","src":"3560:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3457:135:87"},"returnParameters":{"id":25771,"nodeType":"ParameterList","parameters":[],"src":"3652:0:87"},"scope":26277,"src":"3432:477:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6688],"body":{"id":25854,"nodeType":"Block","src":"4123:397:87","statements":[{"assignments":[25806],"declarations":[{"constant":false,"id":25806,"mutability":"mutable","name":"riskpoolId","nameLocation":"4141:10:87","nodeType":"VariableDeclaration","scope":25854,"src":"4133:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25805,"name":"uint256","nodeType":"ElementaryTypeName","src":"4133:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25812,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25809,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4180:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4180:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25807,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"4154:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"4154:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4154:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4133:60:87"},{"expression":{"id":25821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25813,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25803,"src":"4203:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25816,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25793,"src":"4229:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25817,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25806,"src":"4236:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25818,"name":"filter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25795,"src":"4248:6:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"30","id":25819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4256:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":25814,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"4214:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"create","nodeType":"MemberAccess","referencedDeclaration":15924,"src":"4214:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,bytes memory,uint256) external returns (uint256)"}},"id":25820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4214:44:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4203:55:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25822,"nodeType":"ExpressionStatement","src":"4203:55:87"},{"expression":{"arguments":[{"id":25826,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25806,"src":"4306:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25827,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25803,"src":"4318:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25823,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"4277:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addBundleIdToActiveSet","nodeType":"MemberAccess","referencedDeclaration":21104,"src":"4277:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4277:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25829,"nodeType":"ExpressionStatement","src":"4277:50:87"},{"assignments":[25831,25833],"declarations":[{"constant":false,"id":25831,"mutability":"mutable","name":"fee","nameLocation":"4347:3:87","nodeType":"VariableDeclaration","scope":25854,"src":"4339:11:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25830,"name":"uint256","nodeType":"ElementaryTypeName","src":"4339:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25833,"mutability":"mutable","name":"netCapital","nameLocation":"4360:10:87","nodeType":"VariableDeclaration","scope":25854,"src":"4352:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25832,"name":"uint256","nodeType":"ElementaryTypeName","src":"4352:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25839,"initialValue":{"arguments":[{"id":25836,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25803,"src":"4399:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25837,"name":"initialCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25797,"src":"4409:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25834,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25531,"src":"4374:9:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processCapital","nodeType":"MemberAccess","referencedDeclaration":23286,"src":"4374:24:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256,uint256)"}},"id":25838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4374:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4338:86:87"},{"expression":{"arguments":[{"id":25843,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25803,"src":"4448:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25844,"name":"netCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25833,"src":"4458:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25840,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"4435:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":15995,"src":"4435:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4435:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25846,"nodeType":"ExpressionStatement","src":"4435:34:87"},{"expression":{"arguments":[{"id":25850,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25806,"src":"4490:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25851,"name":"netCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25833,"src":"4502:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25847,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"4479:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":20391,"src":"4479:10:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4479:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25853,"nodeType":"ExpressionStatement","src":"4479:34:87"}]},"functionSelector":"15fc1e74","id":25855,"implemented":true,"kind":"function","modifiers":[{"id":25801,"modifierName":{"id":25800,"name":"onlyActiveRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25603,"src":"4066:18:87"},"nodeType":"ModifierInvocation","src":"4066:18:87"}],"name":"createBundle","nameLocation":"3924:12:87","nodeType":"FunctionDefinition","overrides":{"id":25799,"nodeType":"OverrideSpecifier","overrides":[],"src":"4049:8:87"},"parameters":{"id":25798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25793,"mutability":"mutable","name":"owner","nameLocation":"3954:5:87","nodeType":"VariableDeclaration","scope":25855,"src":"3946:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25792,"name":"address","nodeType":"ElementaryTypeName","src":"3946:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25795,"mutability":"mutable","name":"filter","nameLocation":"3985:6:87","nodeType":"VariableDeclaration","scope":25855,"src":"3970:21:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":25794,"name":"bytes","nodeType":"ElementaryTypeName","src":"3970:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":25797,"mutability":"mutable","name":"initialCapital","nameLocation":"4010:14:87","nodeType":"VariableDeclaration","scope":25855,"src":"4002:22:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25796,"name":"uint256","nodeType":"ElementaryTypeName","src":"4002:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3936:94:87"},"returnParameters":{"id":25804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25803,"mutability":"mutable","name":"bundleId","nameLocation":"4109:8:87","nodeType":"VariableDeclaration","scope":25855,"src":"4101:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25802,"name":"uint256","nodeType":"ElementaryTypeName","src":"4101:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4100:18:87"},"scope":26277,"src":"3915:605:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6697],"body":{"id":25924,"nodeType":"Block","src":"4690:469:87","statements":[{"assignments":[25873],"declarations":[{"constant":false,"id":25873,"mutability":"mutable","name":"bundle","nameLocation":"4722:6:87","nodeType":"VariableDeclaration","scope":25924,"src":"4700:28:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":25872,"nodeType":"UserDefinedTypeName","pathNode":{"id":25871,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"4700:14:87"},"referencedDeclaration":4936,"src":"4700:14:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":25878,"initialValue":{"arguments":[{"id":25876,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25857,"src":"4749:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25874,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"4731:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"4731:17:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":25877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4731:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"4700:58:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":25885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25880,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25873,"src":"4789:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"4789:12:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":25882,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"4805:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":25883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"4805:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":25884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"4805:26:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"4789:42:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":25891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25886,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25873,"src":"4847:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"4847:12:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":25888,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"4863:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":25889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"4863:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":25890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"4863:26:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"4847:42:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4789:100:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3031303a42554e444c455f434c4f5345445f4f525f4255524e4544","id":25893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4904:39:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_578b4367808291b575492ac361c0e3d01cfd1dc40e85f0622444de502d7a0138","typeString":"literal_string \"ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED\""},"value":"ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_578b4367808291b575492ac361c0e3d01cfd1dc40e85f0622444de502d7a0138","typeString":"literal_string \"ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED\""}],"id":25879,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4768:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4768:185:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25895,"nodeType":"ExpressionStatement","src":"4768:185:87"},{"assignments":[25897],"declarations":[{"constant":false,"id":25897,"mutability":"mutable","name":"feeAmount","nameLocation":"4972:9:87","nodeType":"VariableDeclaration","scope":25924,"src":"4964:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25896,"name":"uint256","nodeType":"ElementaryTypeName","src":"4964:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25898,"nodeType":"VariableDeclarationStatement","src":"4964:17:87"},{"expression":{"id":25907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":25899,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25897,"src":"4992:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25900,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25867,"src":"5003:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25901,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4991:22:87","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25904,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25857,"src":"5041:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25905,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25859,"src":"5051:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25902,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25531,"src":"5016:9:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processCapital","nodeType":"MemberAccess","referencedDeclaration":23286,"src":"5016:24:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256,uint256)"}},"id":25906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5016:42:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"4991:67:87","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25908,"nodeType":"ExpressionStatement","src":"4991:67:87"},{"expression":{"arguments":[{"id":25912,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25857,"src":"5082:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25913,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25867,"src":"5092:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25909,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"5069:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":15995,"src":"5069:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5069:33:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25915,"nodeType":"ExpressionStatement","src":"5069:33:87"},{"expression":{"arguments":[{"expression":{"id":25919,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25873,"src":"5123:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"5123:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25921,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25867,"src":"5142:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25916,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"5112:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":20391,"src":"5112:10:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5112:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25923,"nodeType":"ExpressionStatement","src":"5112:40:87"}]},"functionSelector":"89002da5","id":25925,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":25863,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25857,"src":"4634:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":25864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4644:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":25865,"modifierName":{"id":25862,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"4615:18:87"},"nodeType":"ModifierInvocation","src":"4615:34:87"}],"name":"fundBundle","nameLocation":"4536:10:87","nodeType":"FunctionDefinition","overrides":{"id":25861,"nodeType":"OverrideSpecifier","overrides":[],"src":"4598:8:87"},"parameters":{"id":25860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25857,"mutability":"mutable","name":"bundleId","nameLocation":"4555:8:87","nodeType":"VariableDeclaration","scope":25925,"src":"4547:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25856,"name":"uint256","nodeType":"ElementaryTypeName","src":"4547:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25859,"mutability":"mutable","name":"amount","nameLocation":"4573:6:87","nodeType":"VariableDeclaration","scope":25925,"src":"4565:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25858,"name":"uint256","nodeType":"ElementaryTypeName","src":"4565:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4546:34:87"},"returnParameters":{"id":25868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25867,"mutability":"mutable","name":"netAmount","nameLocation":"4675:9:87","nodeType":"VariableDeclaration","scope":25925,"src":"4667:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25866,"name":"uint256","nodeType":"ElementaryTypeName","src":"4667:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4665:20:87"},"scope":26277,"src":"4527:632:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6706],"body":{"id":25994,"nodeType":"Block","src":"5330:487:87","statements":[{"assignments":[25943],"declarations":[{"constant":false,"id":25943,"mutability":"mutable","name":"bundle","nameLocation":"5362:6:87","nodeType":"VariableDeclaration","scope":25994,"src":"5340:28:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":25942,"nodeType":"UserDefinedTypeName","pathNode":{"id":25941,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"5340:14:87"},"referencedDeclaration":4936,"src":"5340:14:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":25948,"initialValue":{"arguments":[{"id":25946,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25927,"src":"5389:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25944,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"5371:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"5371:17:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":25947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5371:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"5340:58:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":25955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25950,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25943,"src":"5429:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"5429:12:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":25952,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"5445:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":25953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"5445:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":25954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"5445:26:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"5429:42:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3031313a42554e444c455f4255524e4544","id":25956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5486:29:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1f2a051d0acedf2156c1900d0e6d10c218e8acd8875eeacadd2cd00fdd5a714","typeString":"literal_string \"ERROR:RPS-011:BUNDLE_BURNED\""},"value":"ERROR:RPS-011:BUNDLE_BURNED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e1f2a051d0acedf2156c1900d0e6d10c218e8acd8875eeacadd2cd00fdd5a714","typeString":"literal_string \"ERROR:RPS-011:BUNDLE_BURNED\""}],"id":25949,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5408:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5408:117:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25958,"nodeType":"ExpressionStatement","src":"5408:117:87"},{"assignments":[25960],"declarations":[{"constant":false,"id":25960,"mutability":"mutable","name":"feeAmount","nameLocation":"5544:9:87","nodeType":"VariableDeclaration","scope":25994,"src":"5536:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25959,"name":"uint256","nodeType":"ElementaryTypeName","src":"5536:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25961,"nodeType":"VariableDeclarationStatement","src":"5536:17:87"},{"expression":{"id":25970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":25962,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25960,"src":"5564:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25963,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25937,"src":"5575:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25964,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5563:22:87","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25967,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25927,"src":"5616:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25968,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25929,"src":"5626:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25965,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25531,"src":"5588:9:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processWithdrawal","nodeType":"MemberAccess","referencedDeclaration":23422,"src":"5588:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256,uint256)"}},"id":25969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5588:45:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"5563:70:87","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25971,"nodeType":"ExpressionStatement","src":"5563:70:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25973,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25937,"src":"5651:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":25974,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25929,"src":"5664:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5651:19:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3031333a554e45585045435445445f4645455f5355425452414354494f4e","id":25976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5672:42:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_258a3c9af06bd81d9eb902a8f510faf45f4bdbbc4357a4c707327ecc2c7180b8","typeString":"literal_string \"ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION\""},"value":"ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_258a3c9af06bd81d9eb902a8f510faf45f4bdbbc4357a4c707327ecc2c7180b8","typeString":"literal_string \"ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION\""}],"id":25972,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5643:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5643:72:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25978,"nodeType":"ExpressionStatement","src":"5643:72:87"},{"expression":{"arguments":[{"id":25982,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25927,"src":"5741:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25983,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25929,"src":"5751:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25979,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"5726:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"defund","nodeType":"MemberAccess","referencedDeclaration":16091,"src":"5726:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5726:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25985,"nodeType":"ExpressionStatement","src":"5726:32:87"},{"expression":{"arguments":[{"expression":{"id":25989,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25943,"src":"5781:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"5781:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25991,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25937,"src":"5800:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25986,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"5768:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"defund","nodeType":"MemberAccess","referencedDeclaration":20445,"src":"5768:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5768:42:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25993,"nodeType":"ExpressionStatement","src":"5768:42:87"}]},"functionSelector":"36153f3a","id":25995,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":25933,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25927,"src":"5275:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":25934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5285:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":25935,"modifierName":{"id":25932,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"5256:18:87"},"nodeType":"ModifierInvocation","src":"5256:34:87"}],"name":"defundBundle","nameLocation":"5175:12:87","nodeType":"FunctionDefinition","overrides":{"id":25931,"nodeType":"OverrideSpecifier","overrides":[],"src":"5239:8:87"},"parameters":{"id":25930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25927,"mutability":"mutable","name":"bundleId","nameLocation":"5196:8:87","nodeType":"VariableDeclaration","scope":25995,"src":"5188:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25926,"name":"uint256","nodeType":"ElementaryTypeName","src":"5188:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25929,"mutability":"mutable","name":"amount","nameLocation":"5214:6:87","nodeType":"VariableDeclaration","scope":25995,"src":"5206:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25928,"name":"uint256","nodeType":"ElementaryTypeName","src":"5206:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5187:34:87"},"returnParameters":{"id":25938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25937,"mutability":"mutable","name":"netAmount","nameLocation":"5315:9:87","nodeType":"VariableDeclaration","scope":25995,"src":"5307:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25936,"name":"uint256","nodeType":"ElementaryTypeName","src":"5307:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5306:19:87"},"scope":26277,"src":"5166:651:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6711],"body":{"id":26026,"nodeType":"Block","src":"5935:178:87","statements":[{"assignments":[26006],"declarations":[{"constant":false,"id":26006,"mutability":"mutable","name":"riskpoolId","nameLocation":"5957:10:87","nodeType":"VariableDeclaration","scope":26026,"src":"5949:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26005,"name":"uint256","nodeType":"ElementaryTypeName","src":"5949:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26012,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26009,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5996:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5996:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26007,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"5970:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":26008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"5970:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":26011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5970:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5949:60:87"},{"expression":{"arguments":[{"id":26016,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26006,"src":"6053:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26017,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25997,"src":"6065:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26013,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"6019:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":26015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"removeBundleIdFromActiveSet","nodeType":"MemberAccess","referencedDeclaration":21134,"src":"6019:33:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6019:55:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26019,"nodeType":"ExpressionStatement","src":"6019:55:87"},{"expression":{"arguments":[{"id":26023,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25997,"src":"6097:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26020,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"6084:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lock","nodeType":"MemberAccess","referencedDeclaration":16106,"src":"6084:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":26024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6084:22:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26025,"nodeType":"ExpressionStatement","src":"6084:22:87"}]},"functionSelector":"a17030d5","id":26027,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26001,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25997,"src":"5915:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5925:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26003,"modifierName":{"id":26000,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"5896:18:87"},"nodeType":"ModifierInvocation","src":"5896:34:87"}],"name":"lockBundle","nameLocation":"5833:10:87","nodeType":"FunctionDefinition","overrides":{"id":25999,"nodeType":"OverrideSpecifier","overrides":[],"src":"5879:8:87"},"parameters":{"id":25998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25997,"mutability":"mutable","name":"bundleId","nameLocation":"5852:8:87","nodeType":"VariableDeclaration","scope":26027,"src":"5844:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25996,"name":"uint256","nodeType":"ElementaryTypeName","src":"5844:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5843:18:87"},"returnParameters":{"id":26004,"nodeType":"ParameterList","parameters":[],"src":"5935:0:87"},"scope":26277,"src":"5824:289:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6716],"body":{"id":26058,"nodeType":"Block","src":"6235:171:87","statements":[{"assignments":[26038],"declarations":[{"constant":false,"id":26038,"mutability":"mutable","name":"riskpoolId","nameLocation":"6253:10:87","nodeType":"VariableDeclaration","scope":26058,"src":"6245:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26037,"name":"uint256","nodeType":"ElementaryTypeName","src":"6245:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26044,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26041,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"6292:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6292:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26039,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"6266:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":26040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"6266:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":26043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6266:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6245:60:87"},{"expression":{"arguments":[{"id":26048,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26038,"src":"6344:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26049,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26029,"src":"6356:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26045,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"6315:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":26047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addBundleIdToActiveSet","nodeType":"MemberAccess","referencedDeclaration":21104,"src":"6315:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6315:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26051,"nodeType":"ExpressionStatement","src":"6315:50:87"},{"expression":{"arguments":[{"id":26055,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26029,"src":"6390:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26052,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"6375:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unlock","nodeType":"MemberAccess","referencedDeclaration":16121,"src":"6375:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":26056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6375:24:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26057,"nodeType":"ExpressionStatement","src":"6375:24:87"}]},"functionSelector":"316c5348","id":26059,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26033,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26029,"src":"6213:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6223:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26035,"modifierName":{"id":26032,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"6194:18:87"},"nodeType":"ModifierInvocation","src":"6194:34:87"}],"name":"unlockBundle","nameLocation":"6129:12:87","nodeType":"FunctionDefinition","overrides":{"id":26031,"nodeType":"OverrideSpecifier","overrides":[],"src":"6177:8:87"},"parameters":{"id":26030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26029,"mutability":"mutable","name":"bundleId","nameLocation":"6150:8:87","nodeType":"VariableDeclaration","scope":26059,"src":"6142:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26028,"name":"uint256","nodeType":"ElementaryTypeName","src":"6142:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6141:18:87"},"returnParameters":{"id":26036,"nodeType":"ParameterList","parameters":[],"src":"6235:0:87"},"scope":26277,"src":"6120:286:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6721],"body":{"id":26100,"nodeType":"Block","src":"6527:263:87","statements":[{"assignments":[26070],"declarations":[{"constant":false,"id":26070,"mutability":"mutable","name":"riskpoolId","nameLocation":"6545:10:87","nodeType":"VariableDeclaration","scope":26100,"src":"6537:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26069,"name":"uint256","nodeType":"ElementaryTypeName","src":"6537:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26076,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26073,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"6584:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6584:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26071,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"6558:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":26072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"6558:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":26075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6558:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6537:60:87"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":26084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26079,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26061,"src":"6629:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26077,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"6612:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getState","nodeType":"MemberAccess","referencedDeclaration":16682,"src":"6612:16:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_BundleState_$4914_$","typeString":"function (uint256) view external returns (enum IBundle.BundleState)"}},"id":26080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6612:26:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":26081,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"6642:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":26082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"6642:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":26083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"6642:26:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"6612:56:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26093,"nodeType":"IfStatement","src":"6608:142:87","trueBody":{"id":26092,"nodeType":"Block","src":"6670:80:87","statements":[{"expression":{"arguments":[{"id":26088,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26070,"src":"6718:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26089,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26061,"src":"6730:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26085,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"6684:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":26087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"removeBundleIdFromActiveSet","nodeType":"MemberAccess","referencedDeclaration":21134,"src":"6684:33:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6684:55:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26091,"nodeType":"ExpressionStatement","src":"6684:55:87"}]}},{"expression":{"arguments":[{"id":26097,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26061,"src":"6774:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26094,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"6760:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"close","nodeType":"MemberAccess","referencedDeclaration":16145,"src":"6760:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":26098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6760:23:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26099,"nodeType":"ExpressionStatement","src":"6760:23:87"}]},"functionSelector":"8c483e5a","id":26101,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26065,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26061,"src":"6505:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6515:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26067,"modifierName":{"id":26064,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"6486:18:87"},"nodeType":"ModifierInvocation","src":"6486:34:87"}],"name":"closeBundle","nameLocation":"6422:11:87","nodeType":"FunctionDefinition","overrides":{"id":26063,"nodeType":"OverrideSpecifier","overrides":[],"src":"6469:8:87"},"parameters":{"id":26062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26061,"mutability":"mutable","name":"bundleId","nameLocation":"6442:8:87","nodeType":"VariableDeclaration","scope":26101,"src":"6434:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26060,"name":"uint256","nodeType":"ElementaryTypeName","src":"6434:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6433:18:87"},"returnParameters":{"id":26068,"nodeType":"ParameterList","parameters":[],"src":"6527:0:87"},"scope":26277,"src":"6413:377:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6726],"body":{"id":26163,"nodeType":"Block","src":"6909:484:87","statements":[{"assignments":[26115],"declarations":[{"constant":false,"id":26115,"mutability":"mutable","name":"bundle","nameLocation":"6976:6:87","nodeType":"VariableDeclaration","scope":26163,"src":"6954:28:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":26114,"nodeType":"UserDefinedTypeName","pathNode":{"id":26113,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"6954:14:87"},"referencedDeclaration":4936,"src":"6954:14:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":26120,"initialValue":{"arguments":[{"id":26118,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26103,"src":"7003:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26116,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"6985:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"6985:17:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":26119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6985:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"6954:58:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":26127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26122,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26115,"src":"7030:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":26123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"7030:12:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":26124,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"7046:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":26125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"7046:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":26126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"7046:26:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"7030:42:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3032303a42554e444c455f4e4f545f434c4f534544","id":26128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7074:33:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_386d499e9b35cf070593adbf1e04c00337097d278207b271aae54ef291324f75","typeString":"literal_string \"ERROR:RPS-020:BUNDLE_NOT_CLOSED\""},"value":"ERROR:RPS-020:BUNDLE_NOT_CLOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_386d499e9b35cf070593adbf1e04c00337097d278207b271aae54ef291324f75","typeString":"literal_string \"ERROR:RPS-020:BUNDLE_NOT_CLOSED\""}],"id":26121,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7022:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7022:86:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26130,"nodeType":"ExpressionStatement","src":"7022:86:87"},{"assignments":[26132,26134],"declarations":[{"constant":false,"id":26132,"mutability":"mutable","name":"feeAmount","nameLocation":"7166:9:87","nodeType":"VariableDeclaration","scope":26163,"src":"7158:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26131,"name":"uint256","nodeType":"ElementaryTypeName","src":"7158:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26134,"mutability":"mutable","name":"netAmount","nameLocation":"7185:9:87","nodeType":"VariableDeclaration","scope":26163,"src":"7177:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26133,"name":"uint256","nodeType":"ElementaryTypeName","src":"7177:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26141,"initialValue":{"arguments":[{"id":26137,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26103,"src":"7226:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":26138,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26115,"src":"7236:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":26139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"7236:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26135,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25531,"src":"7198:9:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":26136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processWithdrawal","nodeType":"MemberAccess","referencedDeclaration":23422,"src":"7198:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256,uint256)"}},"id":26140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7198:53:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"7157:94:87"},{"expression":{"arguments":[{"id":26145,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26103,"src":"7281:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26146,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26134,"src":"7291:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26142,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"7266:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"defund","nodeType":"MemberAccess","referencedDeclaration":16091,"src":"7266:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7266:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26148,"nodeType":"ExpressionStatement","src":"7266:35:87"},{"expression":{"arguments":[{"expression":{"id":26152,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26115,"src":"7324:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":26153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"7324:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26154,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26134,"src":"7343:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26149,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"7311:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":26151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"defund","nodeType":"MemberAccess","referencedDeclaration":20445,"src":"7311:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7311:42:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26156,"nodeType":"ExpressionStatement","src":"7311:42:87"},{"expression":{"arguments":[{"id":26160,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26103,"src":"7377:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26157,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"7364:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":16197,"src":"7364:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":26161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7364:22:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26162,"nodeType":"ExpressionStatement","src":"7364:22:87"}]},"functionSelector":"587e59d0","id":26164,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26107,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26103,"src":"6887:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6897:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26109,"modifierName":{"id":26106,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"6868:18:87"},"nodeType":"ModifierInvocation","src":"6868:34:87"}],"name":"burnBundle","nameLocation":"6805:10:87","nodeType":"FunctionDefinition","overrides":{"id":26105,"nodeType":"OverrideSpecifier","overrides":[],"src":"6851:8:87"},"parameters":{"id":26104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26103,"mutability":"mutable","name":"bundleId","nameLocation":"6824:8:87","nodeType":"VariableDeclaration","scope":26164,"src":"6816:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26102,"name":"uint256","nodeType":"ElementaryTypeName","src":"6816:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6815:18:87"},"returnParameters":{"id":26110,"nodeType":"ParameterList","parameters":[],"src":"6909:0:87"},"scope":26277,"src":"6796:597:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6735],"body":{"id":26186,"nodeType":"Block","src":"7571:83:87","statements":[{"expression":{"arguments":[{"id":26181,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26166,"src":"7609:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26182,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26168,"src":"7619:9:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":26183,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26170,"src":"7630:16:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26178,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"7581:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collateralizePolicy","nodeType":"MemberAccess","referencedDeclaration":16322,"src":"7581:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":26184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7581:66:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26185,"nodeType":"ExpressionStatement","src":"7581:66:87"}]},"functionSelector":"4d03f9b7","id":26187,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26174,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26166,"src":"7549:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7559:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26176,"modifierName":{"id":26173,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"7530:18:87"},"nodeType":"ModifierInvocation","src":"7530:34:87"}],"name":"collateralizePolicy","nameLocation":"7412:19:87","nodeType":"FunctionDefinition","overrides":{"id":26172,"nodeType":"OverrideSpecifier","overrides":[],"src":"7513:8:87"},"parameters":{"id":26171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26166,"mutability":"mutable","name":"bundleId","nameLocation":"7440:8:87","nodeType":"VariableDeclaration","scope":26187,"src":"7432:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26165,"name":"uint256","nodeType":"ElementaryTypeName","src":"7432:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26168,"mutability":"mutable","name":"processId","nameLocation":"7458:9:87","nodeType":"VariableDeclaration","scope":26187,"src":"7450:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7450:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":26170,"mutability":"mutable","name":"collateralAmount","nameLocation":"7477:16:87","nodeType":"VariableDeclaration","scope":26187,"src":"7469:24:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26169,"name":"uint256","nodeType":"ElementaryTypeName","src":"7469:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7431:63:87"},"returnParameters":{"id":26177,"nodeType":"ParameterList","parameters":[],"src":"7571:0:87"},"scope":26277,"src":"7403:251:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6744],"body":{"id":26209,"nodeType":"Block","src":"7810:76:87","statements":[{"expression":{"arguments":[{"id":26204,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26189,"src":"7851:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26205,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26191,"src":"7861:9:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":26206,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26193,"src":"7872:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26201,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"7828:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPremium","nodeType":"MemberAccess","referencedDeclaration":16386,"src":"7828:22:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":26207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7828:51:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26208,"nodeType":"ExpressionStatement","src":"7828:51:87"}]},"functionSelector":"b7267420","id":26210,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26197,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26189,"src":"7790:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7800:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26199,"modifierName":{"id":26196,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"7771:18:87"},"nodeType":"ModifierInvocation","src":"7771:34:87"}],"name":"processPremium","nameLocation":"7669:14:87","nodeType":"FunctionDefinition","overrides":{"id":26195,"nodeType":"OverrideSpecifier","overrides":[],"src":"7754:8:87"},"parameters":{"id":26194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26189,"mutability":"mutable","name":"bundleId","nameLocation":"7692:8:87","nodeType":"VariableDeclaration","scope":26210,"src":"7684:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26188,"name":"uint256","nodeType":"ElementaryTypeName","src":"7684:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26191,"mutability":"mutable","name":"processId","nameLocation":"7710:9:87","nodeType":"VariableDeclaration","scope":26210,"src":"7702:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7702:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":26193,"mutability":"mutable","name":"amount","nameLocation":"7729:6:87","nodeType":"VariableDeclaration","scope":26210,"src":"7721:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26192,"name":"uint256","nodeType":"ElementaryTypeName","src":"7721:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7683:53:87"},"returnParameters":{"id":26200,"nodeType":"ParameterList","parameters":[],"src":"7810:0:87"},"scope":26277,"src":"7660:226:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6753],"body":{"id":26232,"nodeType":"Block","src":"8043:67:87","statements":[{"expression":{"arguments":[{"id":26227,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26212,"src":"8075:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26228,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26214,"src":"8085:9:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":26229,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26216,"src":"8096:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26224,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"8053:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":16534,"src":"8053:21:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":26230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8053:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26231,"nodeType":"ExpressionStatement","src":"8053:50:87"}]},"functionSelector":"b299cc26","id":26233,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26220,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26212,"src":"8021:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8031:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26222,"modifierName":{"id":26219,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"8002:18:87"},"nodeType":"ModifierInvocation","src":"8002:34:87"}],"name":"processPayout","nameLocation":"7901:13:87","nodeType":"FunctionDefinition","overrides":{"id":26218,"nodeType":"OverrideSpecifier","overrides":[],"src":"7985:8:87"},"parameters":{"id":26217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26212,"mutability":"mutable","name":"bundleId","nameLocation":"7923:8:87","nodeType":"VariableDeclaration","scope":26233,"src":"7915:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26211,"name":"uint256","nodeType":"ElementaryTypeName","src":"7915:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26214,"mutability":"mutable","name":"processId","nameLocation":"7941:9:87","nodeType":"VariableDeclaration","scope":26233,"src":"7933:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7933:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":26216,"mutability":"mutable","name":"amount","nameLocation":"7960:6:87","nodeType":"VariableDeclaration","scope":26233,"src":"7952:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26215,"name":"uint256","nodeType":"ElementaryTypeName","src":"7952:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7914:53:87"},"returnParameters":{"id":26223,"nodeType":"ParameterList","parameters":[],"src":"8043:0:87"},"scope":26277,"src":"7892:218:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6762],"body":{"id":26255,"nodeType":"Block","src":"8294:78:87","statements":[{"expression":{"id":26253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26247,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26245,"src":"8304:16:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26250,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26235,"src":"8345:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26251,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26237,"src":"8355:9:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":26248,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"8323:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"releasePolicy","nodeType":"MemberAccess","referencedDeclaration":16648,"src":"8323:21:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (uint256,bytes32) external returns (uint256)"}},"id":26252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8323:42:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8304:61:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26254,"nodeType":"ExpressionStatement","src":"8304:61:87"}]},"functionSelector":"bb540df6","id":26256,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26241,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26235,"src":"8229:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":26242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8239:5:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"id":26243,"modifierName":{"id":26240,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"8210:18:87"},"nodeType":"ModifierInvocation","src":"8210:35:87"}],"name":"releasePolicy","nameLocation":"8125:13:87","nodeType":"FunctionDefinition","overrides":{"id":26239,"nodeType":"OverrideSpecifier","overrides":[],"src":"8193:8:87"},"parameters":{"id":26238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26235,"mutability":"mutable","name":"bundleId","nameLocation":"8147:8:87","nodeType":"VariableDeclaration","scope":26256,"src":"8139:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26234,"name":"uint256","nodeType":"ElementaryTypeName","src":"8139:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26237,"mutability":"mutable","name":"processId","nameLocation":"8165:9:87","nodeType":"VariableDeclaration","scope":26256,"src":"8157:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8157:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8138:37:87"},"returnParameters":{"id":26246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26245,"mutability":"mutable","name":"collateralAmount","nameLocation":"8272:16:87","nodeType":"VariableDeclaration","scope":26256,"src":"8264:24:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26244,"name":"uint256","nodeType":"ElementaryTypeName","src":"8264:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8263:26:87"},"scope":26277,"src":"8116:256:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6769],"body":{"id":26275,"nodeType":"Block","src":"8550:92:87","statements":[{"expression":{"arguments":[{"id":26271,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26258,"src":"8598:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26272,"name":"maxNumberOfActiveBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26260,"src":"8610:24:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26268,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"8560:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":26270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setMaximumNumberOfActiveBundles","nodeType":"MemberAccess","referencedDeclaration":20958,"src":"8560:37:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8560:75:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26274,"nodeType":"ExpressionStatement","src":"8560:75:87"}]},"functionSelector":"2127fd48","id":26276,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26264,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26258,"src":"8528:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8540:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26266,"modifierName":{"id":26263,"name":"onlyOwningRiskpoolId","nodeType":"IdentifierPath","referencedDeclaration":25719,"src":"8507:20:87"},"nodeType":"ModifierInvocation","src":"8507:38:87"}],"name":"setMaximumNumberOfActiveBundles","nameLocation":"8387:31:87","nodeType":"FunctionDefinition","overrides":{"id":26262,"nodeType":"OverrideSpecifier","overrides":[],"src":"8490:8:87"},"parameters":{"id":26261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26258,"mutability":"mutable","name":"riskpoolId","nameLocation":"8427:10:87","nodeType":"VariableDeclaration","scope":26276,"src":"8419:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26257,"name":"uint256","nodeType":"ElementaryTypeName","src":"8419:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26260,"mutability":"mutable","name":"maxNumberOfActiveBundles","nameLocation":"8447:24:87","nodeType":"VariableDeclaration","scope":26276,"src":"8439:32:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26259,"name":"uint256","nodeType":"ElementaryTypeName","src":"8439:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8418:54:87"},"returnParameters":{"id":26267,"nodeType":"ParameterList","parameters":[],"src":"8550:0:87"},"scope":26277,"src":"8378:264:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":26278,"src":"439:8208:87"}],"src":"39:8609:87"},"id":87},"contracts/shared/CoreController.sol":{"ast":{"absolutePath":"contracts/shared/CoreController.sol","exportedSymbols":{"Address":[10496],"Context":[10518],"CoreController":[26413],"IAccess":[4836],"IRegistry":[5714],"Initializable":[8059]},"id":26414,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26279,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:88"},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IAccess.sol","file":"@etherisc/gif-interface/contracts/modules/IAccess.sol","id":26280,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26414,"sourceUnit":4837,"src":"63:63:88","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":26281,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26414,"sourceUnit":5715,"src":"127:65:88","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":26282,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26414,"sourceUnit":8060,"src":"194:63:88","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"@openzeppelin/contracts/utils/Context.sol","id":26283,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26414,"sourceUnit":10519,"src":"258:51:88","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26284,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"342:7:88"},"id":26285,"nodeType":"InheritanceSpecifier","src":"342:7:88"},{"baseName":{"id":26286,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":8059,"src":"355:13:88"},"id":26287,"nodeType":"InheritanceSpecifier","src":"355:13:88"}],"contractDependencies":[8059,10518],"contractKind":"contract","fullyImplemented":true,"id":26413,"linearizedBaseContracts":[26413,8059,10518],"name":"CoreController","nameLocation":"320:14:88","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":26290,"mutability":"mutable","name":"_registry","nameLocation":"395:9:88","nodeType":"VariableDeclaration","scope":26413,"src":"376:28:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":26289,"nodeType":"UserDefinedTypeName","pathNode":{"id":26288,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"376:9:88"},"referencedDeclaration":5714,"src":"376:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":26293,"mutability":"mutable","name":"_access","nameLocation":"427:7:88","nodeType":"VariableDeclaration","scope":26413,"src":"410:24:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"},"typeName":{"id":26292,"nodeType":"UserDefinedTypeName","pathNode":{"id":26291,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"410:7:88"},"referencedDeclaration":4836,"src":"410:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"visibility":"internal"},{"body":{"id":26299,"nodeType":"Block","src":"456:39:88","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":26296,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8058,"src":"466:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":26297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"466:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26298,"nodeType":"ExpressionStatement","src":"466:22:88"}]},"id":26300,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26294,"nodeType":"ParameterList","parameters":[],"src":"453:2:88"},"returnParameters":{"id":26295,"nodeType":"ParameterList","parameters":[],"src":"456:0:88"},"scope":26413,"src":"441:54:88","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":26313,"nodeType":"Block","src":"533:164:88","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26305,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"587:10:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"587:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":26307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"601:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"expression":{"id":26303,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"564:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureSender","nodeType":"MemberAccess","referencedDeclaration":5701,"src":"564:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bool_$","typeString":"function (address,bytes32) view external returns (bool)"}},"id":26308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"564:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f50455241544f52","id":26309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"641:37:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1","typeString":"literal_string \"ERROR:CRC-001:NOT_INSTANCE_OPERATOR\""},"value":"ERROR:CRC-001:NOT_INSTANCE_OPERATOR"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1","typeString":"literal_string \"ERROR:CRC-001:NOT_INSTANCE_OPERATOR\""}],"id":26302,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"543:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"543:136:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26311,"nodeType":"ExpressionStatement","src":"543:136:88"},{"id":26312,"nodeType":"PlaceholderStatement","src":"689:1:88"}]},"id":26314,"name":"onlyInstanceOperator","nameLocation":"510:20:88","nodeType":"ModifierDefinition","parameters":{"id":26301,"nodeType":"ParameterList","parameters":[],"src":"530:2:88"},"src":"501:196:88","virtual":false,"visibility":"internal"},{"body":{"id":26341,"nodeType":"Block","src":"743:394:88","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26321,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"819:4:88","typeDescriptions":{"typeIdentifier":"t_contract$_CoreController_$26413","typeString":"contract CoreController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CoreController_$26413","typeString":"contract CoreController"}],"id":26320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"811:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26319,"name":"address","nodeType":"ElementaryTypeName","src":"811:7:88","typeDescriptions":{}}},"id":26322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"811:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":26324,"name":"module","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26316,"src":"848:6:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":26323,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"828:19:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"828:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"811:44:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352432d3030323a4e4f545f4f4e5f53544f52414745","id":26327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"869:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4","typeString":"literal_string \"ERROR:CRC-002:NOT_ON_STORAGE\""},"value":"ERROR:CRC-002:NOT_ON_STORAGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4","typeString":"literal_string \"ERROR:CRC-002:NOT_ON_STORAGE\""}],"id":26318,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"790:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"790:119:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26329,"nodeType":"ExpressionStatement","src":"790:119:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":26331,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1007:10:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1007:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"50726f6475637453657276696365","id":26334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1043:16:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""},"value":"ProductService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""}],"id":26333,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1023:19:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1023:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1007:53:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352432d3030333a4e4f545f50524f445543545f53455256494345","id":26337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1074:35:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0","typeString":"literal_string \"ERROR:CRC-003:NOT_PRODUCT_SERVICE\""},"value":"ERROR:CRC-003:NOT_PRODUCT_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0","typeString":"literal_string \"ERROR:CRC-003:NOT_PRODUCT_SERVICE\""}],"id":26330,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"986:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"986:133:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26339,"nodeType":"ExpressionStatement","src":"986:133:88"},{"id":26340,"nodeType":"PlaceholderStatement","src":"1129:1:88"}]},"id":26342,"name":"onlyPolicyFlow","nameLocation":"712:14:88","nodeType":"ModifierDefinition","parameters":{"id":26317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26316,"mutability":"mutable","name":"module","nameLocation":"735:6:88","nodeType":"VariableDeclaration","scope":26342,"src":"727:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"727:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"726:16:88"},"src":"703:434:88","virtual":false,"visibility":"internal"},{"body":{"id":26372,"nodeType":"Block","src":"1200:175:88","statements":[{"expression":{"id":26353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26349,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"1210:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26351,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26344,"src":"1232:8:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26350,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"1222:9:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$5714_$","typeString":"type(contract IRegistry)"}},"id":26352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1222:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"src":"1210:31:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26354,"nodeType":"ExpressionStatement","src":"1210:31:88"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":26358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":26355,"name":"_getName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26381,"src":"1255:8:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":26356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1255:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"416363657373","id":26357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1269:8:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"},"src":"1255:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26368,"nodeType":"IfStatement","src":"1251:81:88","trueBody":{"id":26367,"nodeType":"Block","src":"1279:53:88","statements":[{"expression":{"id":26365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26359,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"1281:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"416363657373","id":26362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1319:8:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""}],"id":26361,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1299:19:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1299:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26360,"name":"IAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"1291:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccess_$4836_$","typeString":"type(contract IAccess)"}},"id":26364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1291:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"src":"1281:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":26366,"nodeType":"ExpressionStatement","src":"1281:48:88"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":26369,"name":"_afterInitialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26387,"src":"1350:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":26370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1350:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26371,"nodeType":"ExpressionStatement","src":"1350:18:88"}]},"functionSelector":"c4d66de8","id":26373,"implemented":true,"kind":"function","modifiers":[{"id":26347,"modifierName":{"id":26346,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":7979,"src":"1188:11:88"},"nodeType":"ModifierInvocation","src":"1188:11:88"}],"name":"initialize","nameLocation":"1152:10:88","nodeType":"FunctionDefinition","parameters":{"id":26345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26344,"mutability":"mutable","name":"registry","nameLocation":"1171:8:88","nodeType":"VariableDeclaration","scope":26373,"src":"1163:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26343,"name":"address","nodeType":"ElementaryTypeName","src":"1163:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1162:18:88"},"returnParameters":{"id":26348,"nodeType":"ParameterList","parameters":[],"src":"1200:0:88"},"scope":26413,"src":"1143:232:88","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":26380,"nodeType":"Block","src":"1440:14:88","statements":[{"expression":{"hexValue":"","id":26378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1449:2:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":26377,"id":26379,"nodeType":"Return","src":"1442:9:88"}]},"id":26381,"implemented":true,"kind":"function","modifiers":[],"name":"_getName","nameLocation":"1390:8:88","nodeType":"FunctionDefinition","parameters":{"id":26374,"nodeType":"ParameterList","parameters":[],"src":"1398:2:88"},"returnParameters":{"id":26377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26381,"src":"1431:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1431:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1430:9:88"},"scope":26413,"src":"1381:73:88","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":26386,"nodeType":"Block","src":"1522:2:88","statements":[]},"id":26387,"implemented":true,"kind":"function","modifiers":[{"id":26384,"modifierName":{"id":26383,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"1505:16:88"},"nodeType":"ModifierInvocation","src":"1505:16:88"}],"name":"_afterInitialize","nameLocation":"1469:16:88","nodeType":"FunctionDefinition","parameters":{"id":26382,"nodeType":"ParameterList","parameters":[],"src":"1485:2:88"},"returnParameters":{"id":26385,"nodeType":"ParameterList","parameters":[],"src":"1522:0:88"},"scope":26413,"src":"1460:64:88","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":26411,"nodeType":"Block","src":"1629:194:88","statements":[{"expression":{"id":26399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26394,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26392,"src":"1640:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26397,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26389,"src":"1680:12:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":26395,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"1658:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContract","nodeType":"MemberAccess","referencedDeclaration":5687,"src":"1658:21:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":26398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1658:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1640:53:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26400,"nodeType":"ExpressionStatement","src":"1640:53:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26402,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26392,"src":"1724:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":26405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":26404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1743:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26403,"name":"address","nodeType":"ElementaryTypeName","src":"1743:7:88","typeDescriptions":{}}},"id":26406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1743:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1724:29:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352432d3030343a434f4e54524143545f4e4f545f52454749535445524544","id":26408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1767:39:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271","typeString":"literal_string \"ERROR:CRC-004:CONTRACT_NOT_REGISTERED\""},"value":"ERROR:CRC-004:CONTRACT_NOT_REGISTERED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271","typeString":"literal_string \"ERROR:CRC-004:CONTRACT_NOT_REGISTERED\""}],"id":26401,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1703:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1703:113:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26410,"nodeType":"ExpressionStatement","src":"1703:113:88"}]},"id":26412,"implemented":true,"kind":"function","modifiers":[],"name":"_getContractAddress","nameLocation":"1539:19:88","nodeType":"FunctionDefinition","parameters":{"id":26390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26389,"mutability":"mutable","name":"contractName","nameLocation":"1567:12:88","nodeType":"VariableDeclaration","scope":26412,"src":"1559:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1559:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1558:22:88"},"returnParameters":{"id":26393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26392,"mutability":"mutable","name":"contractAddress","nameLocation":"1612:15:88","nodeType":"VariableDeclaration","scope":26412,"src":"1604:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26391,"name":"address","nodeType":"ElementaryTypeName","src":"1604:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1603:25:88"},"scope":26413,"src":"1530:293:88","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":26414,"src":"311:1514:88"}],"src":"39:1787:88"},"id":88},"contracts/shared/CoreProxy.sol":{"ast":{"absolutePath":"contracts/shared/CoreProxy.sol","exportedSymbols":{"Address":[10496],"CoreProxy":[26487],"ERC1967Proxy":[7528],"ERC1967Upgrade":[7846],"IBeacon":[7908],"ICoreProxy":[6779],"IERC1822Proxiable":[7491],"Proxy":[7898],"StorageSlot":[10578]},"id":26488,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26415,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:89"},{"absolutePath":"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol","file":"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol","id":26416,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26488,"sourceUnit":6780,"src":"68:65:89","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","id":26417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26488,"sourceUnit":7529,"src":"135:64:89","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26418,"name":"ICoreProxy","nodeType":"IdentifierPath","referencedDeclaration":6779,"src":"231:10:89"},"id":26419,"nodeType":"InheritanceSpecifier","src":"231:10:89"},{"baseName":{"id":26420,"name":"ERC1967Proxy","nodeType":"IdentifierPath","referencedDeclaration":7528,"src":"249:12:89"},"id":26421,"nodeType":"InheritanceSpecifier","src":"249:12:89"}],"contractDependencies":[6779,7528,7846,7898],"contractKind":"contract","fullyImplemented":true,"id":26487,"linearizedBaseContracts":[26487,7528,7846,7898,6779],"name":"CoreProxy","nameLocation":"212:9:89","nodeType":"ContractDefinition","nodes":[{"body":{"id":26433,"nodeType":"Block","src":"293:119:89","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26424,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"326:3:89","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"326:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":26426,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7706,"src":"340:9:89","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"340:11:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"326:25:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352502d3030313a4e4f545f41444d494e","id":26429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"366:25:89","typeDescriptions":{"typeIdentifier":"t_stringliteral_0040c7b535fe8d83323ecc73a5169249b6133b5d656b3adacba7405479c95dea","typeString":"literal_string \"ERROR:CRP-001:NOT_ADMIN\""},"value":"ERROR:CRP-001:NOT_ADMIN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0040c7b535fe8d83323ecc73a5169249b6133b5d656b3adacba7405479c95dea","typeString":"literal_string \"ERROR:CRP-001:NOT_ADMIN\""}],"id":26423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"304:7:89","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"304:88:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26431,"nodeType":"ExpressionStatement","src":"304:88:89"},{"id":26432,"nodeType":"PlaceholderStatement","src":"403:1:89"}]},"id":26434,"name":"onlyAdmin","nameLocation":"281:9:89","nodeType":"ModifierDefinition","parameters":{"id":26422,"nodeType":"ParameterList","parameters":[],"src":"290:2:89"},"src":"272:140:89","virtual":false,"visibility":"internal"},{"body":{"id":26450,"nodeType":"Block","src":"550:43:89","statements":[{"expression":{"arguments":[{"expression":{"id":26446,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"574:3:89","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"574:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26445,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7749,"src":"561:12:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":26448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"561:24:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26449,"nodeType":"ExpressionStatement","src":"561:24:89"}]},"id":26451,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":26441,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26436,"src":"510:11:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26442,"name":"encoded_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26438,"src":"523:19:89","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":26443,"modifierName":{"id":26440,"name":"ERC1967Proxy","nodeType":"IdentifierPath","referencedDeclaration":7528,"src":"497:12:89"},"nodeType":"ModifierInvocation","src":"497:46:89"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26436,"mutability":"mutable","name":"_controller","nameLocation":"440:11:89","nodeType":"VariableDeclaration","scope":26451,"src":"432:19:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26435,"name":"address","nodeType":"ElementaryTypeName","src":"432:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26438,"mutability":"mutable","name":"encoded_initializer","nameLocation":"466:19:89","nodeType":"VariableDeclaration","scope":26451,"src":"453:32:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":26437,"name":"bytes","nodeType":"ElementaryTypeName","src":"453:5:89","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"431:55:89"},"returnParameters":{"id":26444,"nodeType":"ParameterList","parameters":[],"src":"550:0:89"},"scope":26487,"src":"420:173:89","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":26459,"nodeType":"Block","src":"659:43:89","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":26456,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[7527],"referencedDeclaration":7527,"src":"677:15:89","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"677:17:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":26455,"id":26458,"nodeType":"Return","src":"670:24:89"}]},"functionSelector":"5c60da1b","id":26460,"implemented":true,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"610:14:89","nodeType":"FunctionDefinition","parameters":{"id":26452,"nodeType":"ParameterList","parameters":[],"src":"624:2:89"},"returnParameters":{"id":26455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26460,"src":"650:7:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26453,"name":"address","nodeType":"ElementaryTypeName","src":"650:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"649:9:89"},"scope":26487,"src":"601:101:89","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":26485,"nodeType":"Block","src":"844:233:89","statements":[{"assignments":[26470],"declarations":[{"constant":false,"id":26470,"mutability":"mutable","name":"oldImplementation","nameLocation":"863:17:89","nodeType":"VariableDeclaration","scope":26485,"src":"855:25:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26469,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":26473,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":26471,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[7527],"referencedDeclaration":7527,"src":"884:15:89","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"884:17:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"855:46:89"},{"expression":{"arguments":[{"id":26475,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26462,"src":"932:17:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26476,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26464,"src":"951:4:89","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":26477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"957:4:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":26474,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7629,"src":"914:17:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":26478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"914:48:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26479,"nodeType":"ExpressionStatement","src":"914:48:89"},{"eventCall":{"arguments":[{"id":26481,"name":"oldImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26470,"src":"1018:17:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26482,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26462,"src":"1051:17:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":26480,"name":"LogCoreContractUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6778,"src":"980:23:89","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":26483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"980:89:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26484,"nodeType":"EmitStatement","src":"975:94:89"}]},"functionSelector":"4f1ef286","id":26486,"implemented":true,"kind":"function","modifiers":[{"id":26467,"modifierName":{"id":26466,"name":"onlyAdmin","nodeType":"IdentifierPath","referencedDeclaration":26434,"src":"829:9:89"},"nodeType":"ModifierInvocation","src":"829:9:89"}],"name":"upgradeToAndCall","nameLocation":"719:16:89","nodeType":"FunctionDefinition","parameters":{"id":26465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26462,"mutability":"mutable","name":"newImplementation","nameLocation":"744:17:89","nodeType":"VariableDeclaration","scope":26486,"src":"736:25:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26461,"name":"address","nodeType":"ElementaryTypeName","src":"736:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26464,"mutability":"mutable","name":"data","nameLocation":"778:4:89","nodeType":"VariableDeclaration","scope":26486,"src":"763:19:89","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":26463,"name":"bytes","nodeType":"ElementaryTypeName","src":"763:5:89","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"735:48:89"},"returnParameters":{"id":26468,"nodeType":"ParameterList","parameters":[],"src":"844:0:89"},"scope":26487,"src":"710:367:89","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":26488,"src":"203:881:89"}],"src":"40:1046:89"},"id":89},"contracts/shared/TransferHelper.sol":{"ast":{"absolutePath":"contracts/shared/TransferHelper.sol","exportedSymbols":{"IERC20":[8831],"TransferHelper":[26659]},"id":26660,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26489,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:90"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":26490,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26660,"sourceUnit":8832,"src":"63:56:90","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":26659,"linearizedBaseContracts":[26659],"name":"TransferHelper","nameLocation":"603:14:90","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":26498,"name":"LogTransferHelperInputValidation1Failed","nameLocation":"631:39:90","nodeType":"EventDefinition","parameters":{"id":26497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26492,"indexed":false,"mutability":"mutable","name":"tokenIsContract","nameLocation":"676:15:90","nodeType":"VariableDeclaration","scope":26498,"src":"671:20:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26491,"name":"bool","nodeType":"ElementaryTypeName","src":"671:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26494,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"701:4:90","nodeType":"VariableDeclaration","scope":26498,"src":"693:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26493,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26496,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"715:2:90","nodeType":"VariableDeclaration","scope":26498,"src":"707:10:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26495,"name":"address","nodeType":"ElementaryTypeName","src":"707:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"670:48:90"},"src":"625:94:90"},{"anonymous":false,"id":26504,"name":"LogTransferHelperInputValidation2Failed","nameLocation":"730:39:90","nodeType":"EventDefinition","parameters":{"id":26503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26500,"indexed":false,"mutability":"mutable","name":"balance","nameLocation":"778:7:90","nodeType":"VariableDeclaration","scope":26504,"src":"770:15:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26499,"name":"uint256","nodeType":"ElementaryTypeName","src":"770:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26502,"indexed":false,"mutability":"mutable","name":"allowance","nameLocation":"795:9:90","nodeType":"VariableDeclaration","scope":26504,"src":"787:17:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26501,"name":"uint256","nodeType":"ElementaryTypeName","src":"787:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"769:36:90"},"src":"724:82:90"},{"anonymous":false,"id":26512,"name":"LogTransferHelperCallFailed","nameLocation":"817:27:90","nodeType":"EventDefinition","parameters":{"id":26511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26506,"indexed":false,"mutability":"mutable","name":"callSuccess","nameLocation":"850:11:90","nodeType":"VariableDeclaration","scope":26512,"src":"845:16:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26505,"name":"bool","nodeType":"ElementaryTypeName","src":"845:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26508,"indexed":false,"mutability":"mutable","name":"returnDataLength","nameLocation":"871:16:90","nodeType":"VariableDeclaration","scope":26512,"src":"863:24:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26507,"name":"uint256","nodeType":"ElementaryTypeName","src":"863:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26510,"indexed":false,"mutability":"mutable","name":"returnData","nameLocation":"895:10:90","nodeType":"VariableDeclaration","scope":26512,"src":"889:16:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":26509,"name":"bytes","nodeType":"ElementaryTypeName","src":"889:5:90","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"844:62:90"},"src":"811:96:90"},{"body":{"id":26657,"nodeType":"Block","src":"1086:1249:90","statements":[{"assignments":[26527],"declarations":[{"constant":false,"id":26527,"mutability":"mutable","name":"tokenAddress","nameLocation":"1139:12:90","nodeType":"VariableDeclaration","scope":26657,"src":"1131:20:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26526,"name":"address","nodeType":"ElementaryTypeName","src":"1131:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":26532,"initialValue":{"arguments":[{"id":26530,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26515,"src":"1162:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":26529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1154:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26528,"name":"address","nodeType":"ElementaryTypeName","src":"1154:7:90","typeDescriptions":{}}},"id":26531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1154:14:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1131:37:90"},{"assignments":[26534],"declarations":[{"constant":false,"id":26534,"mutability":"mutable","name":"tokenIsContract","nameLocation":"1183:15:90","nodeType":"VariableDeclaration","scope":26657,"src":"1178:20:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26533,"name":"bool","nodeType":"ElementaryTypeName","src":"1178:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":26541,"initialValue":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":26535,"name":"tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26527,"src":"1202:12:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1202:17:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":26537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1202:24:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":26538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1229:1:90","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1202:28:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":26540,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1201:30:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1178:53:90"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26542,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26517,"src":"1245:4:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":26545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:1:90","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":26544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1253:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26543,"name":"address","nodeType":"ElementaryTypeName","src":"1253:7:90","typeDescriptions":{}}},"id":26546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1253:10:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1245:18:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26548,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"1267:2:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":26551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1282:1:90","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":26550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1273:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26549,"name":"address","nodeType":"ElementaryTypeName","src":"1273:7:90","typeDescriptions":{}}},"id":26552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1273:11:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1267:17:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1245:39:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":26556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1288:16:90","subExpression":{"id":26555,"name":"tokenIsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26534,"src":"1289:15:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1245:59:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26567,"nodeType":"IfStatement","src":"1241:187:90","trueBody":{"id":26566,"nodeType":"Block","src":"1306:122:90","statements":[{"eventCall":{"arguments":[{"id":26559,"name":"tokenIsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26534,"src":"1365:15:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26560,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26517,"src":"1382:4:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26561,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"1388:2:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":26558,"name":"LogTransferHelperInputValidation1Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26498,"src":"1325:39:90","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_address_$_t_address_$returns$__$","typeString":"function (bool,address,address)"}},"id":26562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1325:66:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26563,"nodeType":"EmitStatement","src":"1320:71:90"},{"expression":{"hexValue":"66616c7365","id":26564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1412:5:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":26525,"id":26565,"nodeType":"Return","src":"1405:12:90"}]}},{"assignments":[26569],"declarations":[{"constant":false,"id":26569,"mutability":"mutable","name":"balance","nameLocation":"1489:7:90","nodeType":"VariableDeclaration","scope":26657,"src":"1481:15:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26568,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26574,"initialValue":{"arguments":[{"id":26572,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26517,"src":"1515:4:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26570,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26515,"src":"1499:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":26571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":8788,"src":"1499:15:90","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":26573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1499:21:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1481:39:90"},{"assignments":[26576],"declarations":[{"constant":false,"id":26576,"mutability":"mutable","name":"allowance","nameLocation":"1538:9:90","nodeType":"VariableDeclaration","scope":26657,"src":"1530:17:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26575,"name":"uint256","nodeType":"ElementaryTypeName","src":"1530:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26585,"initialValue":{"arguments":[{"id":26579,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26517,"src":"1566:4:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":26582,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1580:4:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransferHelper_$26659","typeString":"library TransferHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransferHelper_$26659","typeString":"library TransferHelper"}],"id":26581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1572:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26580,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:90","typeDescriptions":{}}},"id":26583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1572:13:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26577,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26515,"src":"1550:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":26578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"1550:15:90","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":26584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1550:36:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1530:56:90"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26586,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26569,"src":"1600:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":26587,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26521,"src":"1610:5:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1600:15:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26589,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26576,"src":"1619:9:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":26590,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26521,"src":"1631:5:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1619:17:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1600:36:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26601,"nodeType":"IfStatement","src":"1596:157:90","trueBody":{"id":26600,"nodeType":"Block","src":"1638:115:90","statements":[{"eventCall":{"arguments":[{"id":26594,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26569,"src":"1697:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26595,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26576,"src":"1706:9:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26593,"name":"LogTransferHelperInputValidation2Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26504,"src":"1657:39:90","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":26596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1657:59:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26597,"nodeType":"EmitStatement","src":"1652:64:90"},{"expression":{"hexValue":"66616c7365","id":26598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1737:5:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":26525,"id":26599,"nodeType":"Return","src":"1730:12:90"}]}},{"assignments":[26603,26605],"declarations":[{"constant":false,"id":26603,"mutability":"mutable","name":"callSuccess","nameLocation":"1889:11:90","nodeType":"VariableDeclaration","scope":26657,"src":"1884:16:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26602,"name":"bool","nodeType":"ElementaryTypeName","src":"1884:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26605,"mutability":"mutable","name":"data","nameLocation":"1915:4:90","nodeType":"VariableDeclaration","scope":26657,"src":"1902:17:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":26604,"name":"bytes","nodeType":"ElementaryTypeName","src":"1902:5:90","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":26619,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783233623837326464","id":26613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1996:10:90","typeDescriptions":{"typeIdentifier":"t_rational_599290589_by_1","typeString":"int_const 599290589"},"value":"0x23b872dd"},{"id":26614,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26517,"src":"2025:4:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26615,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"2048:2:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26616,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26521,"src":"2069:5:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_599290589_by_1","typeString":"int_const 599290589"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26611,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"1956:3:90","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1956:22:90","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":26617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1956:119:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":26608,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26515,"src":"1931:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":26607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1923:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26606,"name":"address","nodeType":"ElementaryTypeName","src":"1923:7:90","typeDescriptions":{}}},"id":26609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1923:14:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1923:19:90","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":26618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1923:153:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1883:193:90"},{"expression":{"id":26644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26620,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26524,"src":"2087:7:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26621,"name":"callSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26603,"src":"2097:11:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"66616c7365","id":26622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2113:5:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26623,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26605,"src":"2134:4:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":26624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2134:11:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":26625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2149:1:90","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2134:16:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2113:37:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26628,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26605,"src":"2168:4:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":26629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2168:11:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":26630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2183:2:90","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2168:17:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":26634,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26605,"src":"2200:4:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":26636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2207:4:90","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":26635,"name":"bool","nodeType":"ElementaryTypeName","src":"2207:4:90","typeDescriptions":{}}}],"id":26637,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2206:6:90","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":26632,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2189:3:90","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"2189:10:90","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":26638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2189:24:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2168:45:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":26640,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2167:47:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2113:101:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":26642,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2112:103:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2097:118:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2087:128:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26645,"nodeType":"ExpressionStatement","src":"2087:128:90"},{"condition":{"id":26647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2230:8:90","subExpression":{"id":26646,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26524,"src":"2231:7:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26656,"nodeType":"IfStatement","src":"2226:103:90","trueBody":{"id":26655,"nodeType":"Block","src":"2240:89:90","statements":[{"eventCall":{"arguments":[{"id":26649,"name":"callSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26603,"src":"2287:11:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":26650,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26605,"src":"2300:4:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":26651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2300:11:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26652,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26605,"src":"2313:4:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26648,"name":"LogTransferHelperCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26512,"src":"2259:27:90","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,uint256,bytes memory)"}},"id":26653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2259:59:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26654,"nodeType":"EmitStatement","src":"2254:64:90"}]}}]},"id":26658,"implemented":true,"kind":"function","modifiers":[],"name":"unifiedTransferFrom","nameLocation":"922:19:90","nodeType":"FunctionDefinition","parameters":{"id":26522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26515,"mutability":"mutable","name":"token","nameLocation":"958:5:90","nodeType":"VariableDeclaration","scope":26658,"src":"951:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":26514,"nodeType":"UserDefinedTypeName","pathNode":{"id":26513,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"951:6:90"},"referencedDeclaration":8831,"src":"951:6:90","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":26517,"mutability":"mutable","name":"from","nameLocation":"981:4:90","nodeType":"VariableDeclaration","scope":26658,"src":"973:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26516,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26519,"mutability":"mutable","name":"to","nameLocation":"1003:2:90","nodeType":"VariableDeclaration","scope":26658,"src":"995:10:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26518,"name":"address","nodeType":"ElementaryTypeName","src":"995:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26521,"mutability":"mutable","name":"value","nameLocation":"1023:5:90","nodeType":"VariableDeclaration","scope":26658,"src":"1015:13:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26520,"name":"uint256","nodeType":"ElementaryTypeName","src":"1015:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"941:93:90"},"returnParameters":{"id":26525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26524,"mutability":"mutable","name":"success","nameLocation":"1073:7:90","nodeType":"VariableDeclaration","scope":26658,"src":"1068:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26523,"name":"bool","nodeType":"ElementaryTypeName","src":"1068:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1067:14:90"},"scope":26659,"src":"913:1422:90","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":26660,"src":"595:1742:90"}],"src":"39:2298:90"},"id":90},"contracts/shared/WithRegistry.sol":{"ast":{"absolutePath":"contracts/shared/WithRegistry.sol","exportedSymbols":{"IRegistry":[5714],"WithRegistry":[26779]},"id":26780,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26661,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:91"},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":26662,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26780,"sourceUnit":5715,"src":"63:65:91","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":26779,"linearizedBaseContracts":[26779],"name":"WithRegistry","nameLocation":"139:12:91","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7b103999","id":26665,"mutability":"immutable","name":"registry","nameLocation":"439:8:91","nodeType":"VariableDeclaration","scope":26779,"src":"412:35:91","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":26664,"nodeType":"UserDefinedTypeName","pathNode":{"id":26663,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"412:9:91"},"referencedDeclaration":5714,"src":"412:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"public"},{"body":{"id":26678,"nodeType":"Block","src":"486:174:91","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26668,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"517:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"517:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":26671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"555:25:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"id":26670,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"531:23:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"531:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"517:64:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434d2d3030313a4e4f545f494e5354414e43455f4f50455241544f52","id":26674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"595:37:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_f3a7f4e2a80289cf210a753ae4c4fe18a01cd7346929f84e6c01ed7adb2558b5","typeString":"literal_string \"ERROR:ACM-001:NOT_INSTANCE_OPERATOR\""},"value":"ERROR:ACM-001:NOT_INSTANCE_OPERATOR"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f3a7f4e2a80289cf210a753ae4c4fe18a01cd7346929f84e6c01ed7adb2558b5","typeString":"literal_string \"ERROR:ACM-001:NOT_INSTANCE_OPERATOR\""}],"id":26667,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"496:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"496:146:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26676,"nodeType":"ExpressionStatement","src":"496:146:91"},{"id":26677,"nodeType":"PlaceholderStatement","src":"652:1:91"}]},"id":26679,"name":"onlyInstanceOperator","nameLocation":"463:20:91","nodeType":"ModifierDefinition","parameters":{"id":26666,"nodeType":"ParameterList","parameters":[],"src":"483:2:91"},"src":"454:206:91","virtual":false,"visibility":"internal"},{"body":{"id":26692,"nodeType":"Block","src":"695:161:91","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26682,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"726:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"726:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"4f7261636c6553657276696365","id":26685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"764:15:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""},"value":"OracleService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""}],"id":26684,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"740:23:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"740:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"726:54:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434d2d3030343a4e4f545f4f5241434c455f53455256494345","id":26688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"794:34:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_d677f66d7bfec5af2a8d25ec9362c317211e274b91d9b076b38b11583dfd9b36","typeString":"literal_string \"ERROR:ACM-004:NOT_ORACLE_SERVICE\""},"value":"ERROR:ACM-004:NOT_ORACLE_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d677f66d7bfec5af2a8d25ec9362c317211e274b91d9b076b38b11583dfd9b36","typeString":"literal_string \"ERROR:ACM-004:NOT_ORACLE_SERVICE\""}],"id":26681,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"705:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"705:133:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26690,"nodeType":"ExpressionStatement","src":"705:133:91"},{"id":26691,"nodeType":"PlaceholderStatement","src":"848:1:91"}]},"id":26693,"name":"onlyOracleService","nameLocation":"675:17:91","nodeType":"ModifierDefinition","parameters":{"id":26680,"nodeType":"ParameterList","parameters":[],"src":"692:2:91"},"src":"666:190:91","virtual":false,"visibility":"internal"},{"body":{"id":26706,"nodeType":"Block","src":"889:164:91","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26696,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"920:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"920:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"4f7261636c654f776e657253657276696365","id":26699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"958:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5370b1b73ce26fa37372cd254d27657dca183642e751f8b80db759067e223649","typeString":"literal_string \"OracleOwnerService\""},"value":"OracleOwnerService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5370b1b73ce26fa37372cd254d27657dca183642e751f8b80db759067e223649","typeString":"literal_string \"OracleOwnerService\""}],"id":26698,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"934:23:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"934:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"920:59:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434d2d3030353a4e4f545f4f5241434c455f4f574e4552","id":26702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"993:32:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f95eab606c31d24b7f40608196d82db71c763d923fa962ad1318b437fa4c528","typeString":"literal_string \"ERROR:ACM-005:NOT_ORACLE_OWNER\""},"value":"ERROR:ACM-005:NOT_ORACLE_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1f95eab606c31d24b7f40608196d82db71c763d923fa962ad1318b437fa4c528","typeString":"literal_string \"ERROR:ACM-005:NOT_ORACLE_OWNER\""}],"id":26695,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"899:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"899:136:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26704,"nodeType":"ExpressionStatement","src":"899:136:91"},{"id":26705,"nodeType":"PlaceholderStatement","src":"1045:1:91"}]},"id":26707,"name":"onlyOracleOwner","nameLocation":"871:15:91","nodeType":"ModifierDefinition","parameters":{"id":26694,"nodeType":"ParameterList","parameters":[],"src":"886:2:91"},"src":"862:191:91","virtual":false,"visibility":"internal"},{"body":{"id":26720,"nodeType":"Block","src":"1087:166:91","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26710,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"1118:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1118:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"50726f647563744f776e657253657276696365","id":26713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1156:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_04eb0524cc50da1dbdab34d277395549b73a25ea653ed26ebf24218d5fe70e69","typeString":"literal_string \"ProductOwnerService\""},"value":"ProductOwnerService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04eb0524cc50da1dbdab34d277395549b73a25ea653ed26ebf24218d5fe70e69","typeString":"literal_string \"ProductOwnerService\""}],"id":26712,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"1132:23:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1132:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1118:60:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434d2d3030363a4e4f545f50524f445543545f4f574e4552","id":26716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1192:33:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_87c721089aea7fe34f59e6b44cacf11899e62ae1ac955bcd5783ec78cfda9689","typeString":"literal_string \"ERROR:ACM-006:NOT_PRODUCT_OWNER\""},"value":"ERROR:ACM-006:NOT_PRODUCT_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_87c721089aea7fe34f59e6b44cacf11899e62ae1ac955bcd5783ec78cfda9689","typeString":"literal_string \"ERROR:ACM-006:NOT_PRODUCT_OWNER\""}],"id":26709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1097:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1097:138:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26718,"nodeType":"ExpressionStatement","src":"1097:138:91"},{"id":26719,"nodeType":"PlaceholderStatement","src":"1245:1:91"}]},"id":26721,"name":"onlyProductOwner","nameLocation":"1068:16:91","nodeType":"ModifierDefinition","parameters":{"id":26708,"nodeType":"ParameterList","parameters":[],"src":"1084:2:91"},"src":"1059:194:91","virtual":false,"visibility":"internal"},{"body":{"id":26732,"nodeType":"Block","src":"1290:48:91","statements":[{"expression":{"id":26730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26726,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26665,"src":"1300:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26728,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26723,"src":"1321:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26727,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"1311:9:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$5714_$","typeString":"type(contract IRegistry)"}},"id":26729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1311:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"src":"1300:31:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26731,"nodeType":"ExpressionStatement","src":"1300:31:91"}]},"id":26733,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26723,"mutability":"mutable","name":"_registry","nameLocation":"1279:9:91","nodeType":"VariableDeclaration","scope":26733,"src":"1271:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26722,"name":"address","nodeType":"ElementaryTypeName","src":"1271:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1270:19:91"},"returnParameters":{"id":26725,"nodeType":"ParameterList","parameters":[],"src":"1290:0:91"},"scope":26779,"src":"1259:79:91","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":26747,"nodeType":"Block","src":"1484:60:91","statements":[{"expression":{"id":26745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26740,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26738,"src":"1494:5:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26743,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26735,"src":"1523:13:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":26741,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26665,"src":"1502:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContract","nodeType":"MemberAccess","referencedDeclaration":5687,"src":"1502:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":26744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1502:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1494:43:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26746,"nodeType":"ExpressionStatement","src":"1494:43:91"}]},"functionSelector":"a5b25e71","id":26748,"implemented":true,"kind":"function","modifiers":[],"name":"getContractFromRegistry","nameLocation":"1353:23:91","nodeType":"FunctionDefinition","parameters":{"id":26736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26735,"mutability":"mutable","name":"_contractName","nameLocation":"1385:13:91","nodeType":"VariableDeclaration","scope":26748,"src":"1377:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1377:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1376:23:91"},"returnParameters":{"id":26739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26738,"mutability":"mutable","name":"_addr","nameLocation":"1473:5:91","nodeType":"VariableDeclaration","scope":26748,"src":"1465:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26737,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1464:15:91"},"scope":26779,"src":"1344:200:91","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":26765,"nodeType":"Block","src":"1699:79:91","statements":[{"expression":{"id":26763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26757,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26755,"src":"1709:5:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26760,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26750,"src":"1747:8:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":26761,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26752,"src":"1757:13:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":26758,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26665,"src":"1717:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContractInRelease","nodeType":"MemberAccess","referencedDeclaration":5680,"src":"1717:29:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) view external returns (address)"}},"id":26762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1717:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1709:62:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26764,"nodeType":"ExpressionStatement","src":"1709:62:91"}]},"id":26766,"implemented":true,"kind":"function","modifiers":[],"name":"getContractInReleaseFromRegistry","nameLocation":"1559:32:91","nodeType":"FunctionDefinition","parameters":{"id":26753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26750,"mutability":"mutable","name":"_release","nameLocation":"1600:8:91","nodeType":"VariableDeclaration","scope":26766,"src":"1592:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1592:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":26752,"mutability":"mutable","name":"_contractName","nameLocation":"1618:13:91","nodeType":"VariableDeclaration","scope":26766,"src":"1610:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1610:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1591:41:91"},"returnParameters":{"id":26756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26755,"mutability":"mutable","name":"_addr","nameLocation":"1688:5:91","nodeType":"VariableDeclaration","scope":26766,"src":"1680:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26754,"name":"address","nodeType":"ElementaryTypeName","src":"1680:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1679:15:91"},"scope":26779,"src":"1550:228:91","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":26777,"nodeType":"Block","src":"1859:49:91","statements":[{"expression":{"id":26775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26771,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26769,"src":"1869:8:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":26772,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26665,"src":"1880:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRelease","nodeType":"MemberAccess","referencedDeclaration":5692,"src":"1880:19:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":26774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1880:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1869:32:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":26776,"nodeType":"ExpressionStatement","src":"1869:32:91"}]},"id":26778,"implemented":true,"kind":"function","modifiers":[],"name":"getReleaseFromRegistry","nameLocation":"1793:22:91","nodeType":"FunctionDefinition","parameters":{"id":26767,"nodeType":"ParameterList","parameters":[],"src":"1815:2:91"},"returnParameters":{"id":26770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26769,"mutability":"mutable","name":"_release","nameLocation":"1849:8:91","nodeType":"VariableDeclaration","scope":26778,"src":"1841:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1841:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1840:18:91"},"scope":26779,"src":"1784:124:91","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":26780,"src":"130:1780:91"}],"src":"39:1872:91"},"id":91},"contracts/test/TestCoin.sol":{"ast":{"absolutePath":"contracts/test/TestCoin.sol","exportedSymbols":{"Context":[10518],"ERC20":[8753],"IERC20":[8831],"IERC20Metadata":[8856],"TestCoin":[26810],"TestCoinX":[26838]},"id":26839,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26781,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:92"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":26782,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26839,"sourceUnit":8754,"src":"66:55:92","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26783,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"146:5:92"},"id":26784,"nodeType":"InheritanceSpecifier","src":"146:5:92"}],"contractDependencies":[8753,8831,8856,10518],"contractKind":"contract","fullyImplemented":true,"id":26810,"linearizedBaseContracts":[26810,8753,8856,8831,10518],"name":"TestCoin","nameLocation":"134:8:92","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":26787,"mutability":"constant","name":"NAME","nameLocation":"184:4:92","nodeType":"VariableDeclaration","scope":26810,"src":"161:42:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26785,"name":"string","nodeType":"ElementaryTypeName","src":"161:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"546573742044756d6d79","id":26786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"191:12:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_d92c7e80c7e0511acb00e5cc9dfd1dfa061ae58fd11b1e7b920c4ff279ba2149","typeString":"literal_string \"Test Dummy\""},"value":"Test Dummy"},"visibility":"public"},{"constant":true,"functionSelector":"f76f8d78","id":26790,"mutability":"constant","name":"SYMBOL","nameLocation":"233:6:92","nodeType":"VariableDeclaration","scope":26810,"src":"210:37:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26788,"name":"string","nodeType":"ElementaryTypeName","src":"210:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"544459","id":26789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"242:5:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_004af10049653c704ac6f1b2bc023dd9f0dfb627aec0912ea505bfdd2845eef3","typeString":"literal_string \"TDY\""},"value":"TDY"},"visibility":"public"},{"constant":true,"functionSelector":"2ff2e9dc","id":26795,"mutability":"constant","name":"INITIAL_SUPPLY","nameLocation":"280:14:92","nodeType":"VariableDeclaration","scope":26810,"src":"256:47:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26791,"name":"uint256","nodeType":"ElementaryTypeName","src":"256:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"},"id":26794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":26792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"297:2:92","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":26793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"301:2:92","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"297:6:92","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"}},"visibility":"public"},{"body":{"id":26808,"nodeType":"Block","src":"360:91:92","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26803,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"391:10:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"391:12:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26805,"name":"INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26795,"src":"418:14:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26802,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"371:5:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":26806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"371:72:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26807,"nodeType":"ExpressionStatement","src":"371:72:92"}]},"id":26809,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":26798,"name":"NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26787,"src":"341:4:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26799,"name":"SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26790,"src":"347:6:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":26800,"modifierName":{"id":26797,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"335:5:92"},"nodeType":"ModifierInvocation","src":"335:19:92"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26796,"nodeType":"ParameterList","parameters":[],"src":"323:2:92"},"returnParameters":{"id":26801,"nodeType":"ParameterList","parameters":[],"src":"360:0:92"},"scope":26810,"src":"312:139:92","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":26839,"src":"125:329:92"},{"abstract":false,"baseContracts":[{"baseName":{"id":26811,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"480:5:92"},"id":26812,"nodeType":"InheritanceSpecifier","src":"480:5:92"}],"contractDependencies":[8753,8831,8856,10518],"contractKind":"contract","fullyImplemented":true,"id":26838,"linearizedBaseContracts":[26838,8753,8856,8831,10518],"name":"TestCoinX","nameLocation":"467:9:92","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":26815,"mutability":"constant","name":"NAME","nameLocation":"518:4:92","nodeType":"VariableDeclaration","scope":26838,"src":"495:44:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26813,"name":"string","nodeType":"ElementaryTypeName","src":"495:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"546573742044756d6d792058","id":26814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"525:14:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_a30ac64b7d6e6ff167c2e60e6a29fb2c9ee94154569a03703430822e25699e9b","typeString":"literal_string \"Test Dummy X\""},"value":"Test Dummy X"},"visibility":"public"},{"constant":true,"functionSelector":"f76f8d78","id":26818,"mutability":"constant","name":"SYMBOL","nameLocation":"569:6:92","nodeType":"VariableDeclaration","scope":26838,"src":"546:37:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26816,"name":"string","nodeType":"ElementaryTypeName","src":"546:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"544458","id":26817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"578:5:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_511eea2d30970d4c48faad7052d30e893c13eff5d8ac0180bdf8d28babd3c979","typeString":"literal_string \"TDX\""},"value":"TDX"},"visibility":"public"},{"constant":true,"functionSelector":"2ff2e9dc","id":26823,"mutability":"constant","name":"INITIAL_SUPPLY","nameLocation":"616:14:92","nodeType":"VariableDeclaration","scope":26838,"src":"592:47:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26819,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"},"id":26822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":26820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"633:2:92","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":26821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"637:2:92","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"633:6:92","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"}},"visibility":"public"},{"body":{"id":26836,"nodeType":"Block","src":"696:91:92","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26831,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"727:10:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"727:12:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26833,"name":"INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26823,"src":"754:14:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26830,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"707:5:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":26834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"707:72:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26835,"nodeType":"ExpressionStatement","src":"707:72:92"}]},"id":26837,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":26826,"name":"NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26815,"src":"677:4:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26827,"name":"SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26818,"src":"683:6:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":26828,"modifierName":{"id":26825,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"671:5:92"},"nodeType":"ModifierInvocation","src":"671:19:92"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26824,"nodeType":"ParameterList","parameters":[],"src":"659:2:92"},"returnParameters":{"id":26829,"nodeType":"ParameterList","parameters":[],"src":"696:0:92"},"scope":26838,"src":"648:139:92","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":26839,"src":"458:332:92"}],"src":"40:752:92"},"id":92},"contracts/test/TestCoinAlternativeImplementation.sol":{"ast":{"absolutePath":"contracts/test/TestCoinAlternativeImplementation.sol","exportedSymbols":{"Context":[10518],"ERC20":[8753],"IERC20":[8831],"IERC20Metadata":[8856],"TestCoinAlternativeImplementation":[26931]},"id":26932,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26840,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:93"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":26841,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26932,"sourceUnit":8754,"src":"66:55:93","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26842,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"171:5:93"},"id":26843,"nodeType":"InheritanceSpecifier","src":"171:5:93"}],"contractDependencies":[8753,8831,8856,10518],"contractKind":"contract","fullyImplemented":true,"id":26931,"linearizedBaseContracts":[26931,8753,8856,8831,10518],"name":"TestCoinAlternativeImplementation","nameLocation":"134:33:93","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":26846,"mutability":"constant","name":"NAME","nameLocation":"209:4:93","nodeType":"VariableDeclaration","scope":26931,"src":"186:53:93","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26844,"name":"string","nodeType":"ElementaryTypeName","src":"186:6:93","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5465737420416c7465726e617469766520436f696e","id":26845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"216:23:93","typeDescriptions":{"typeIdentifier":"t_stringliteral_9334db555e7dc96d7bf2d7b340796de636a17721664d194dfe372ce0bd20ac70","typeString":"literal_string \"Test Alternative Coin\""},"value":"Test Alternative Coin"},"visibility":"public"},{"constant":true,"functionSelector":"f76f8d78","id":26849,"mutability":"constant","name":"SYMBOL","nameLocation":"269:6:93","nodeType":"VariableDeclaration","scope":26931,"src":"246:37:93","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26847,"name":"string","nodeType":"ElementaryTypeName","src":"246:6:93","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"544143","id":26848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"278:5:93","typeDescriptions":{"typeIdentifier":"t_stringliteral_cffd0ea64537799d5f8d9783f7a9d3b5b31fcb1bad21cb12aaabea52c6f7a507","typeString":"literal_string \"TAC\""},"value":"TAC"},"visibility":"public"},{"constant":true,"functionSelector":"2ff2e9dc","id":26854,"mutability":"constant","name":"INITIAL_SUPPLY","nameLocation":"316:14:93","nodeType":"VariableDeclaration","scope":26931,"src":"292:47:93","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26850,"name":"uint256","nodeType":"ElementaryTypeName","src":"292:7:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"},"id":26853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":26851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"333:2:93","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":26852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"337:2:93","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"333:6:93","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"}},"visibility":"public"},{"body":{"id":26867,"nodeType":"Block","src":"396:91:93","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26862,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"427:10:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"427:12:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26864,"name":"INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26854,"src":"454:14:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26861,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"407:5:93","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":26865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"407:72:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26866,"nodeType":"ExpressionStatement","src":"407:72:93"}]},"id":26868,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":26857,"name":"NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26846,"src":"377:4:93","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26858,"name":"SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26849,"src":"383:6:93","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":26859,"modifierName":{"id":26856,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"371:5:93"},"nodeType":"ModifierInvocation","src":"371:19:93"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26855,"nodeType":"ParameterList","parameters":[],"src":"359:2:93"},"returnParameters":{"id":26860,"nodeType":"ParameterList","parameters":[],"src":"396:0:93"},"scope":26931,"src":"348:139:93","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8367],"body":{"id":26929,"nodeType":"Block","src":"713:601:93","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26881,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26870,"src":"738:5:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26880,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8266,"src":"728:9:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":26882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"728:16:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":26883,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"748:6:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"728:26:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26886,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26870,"src":"830:5:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":26887,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"837:3:93","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"837:10:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":26885,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"820:9:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":26889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"820:28:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":26890,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"852:6:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"820:38:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"728:130:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26894,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26872,"src":"921:3:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26893,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8266,"src":"911:9:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":26895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"911:14:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":26896,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"928:6:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"911:23:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[{"id":26899,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26872,"src":"948:3:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26898,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8266,"src":"938:9:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":26900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"938:14:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"911:41:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"728:224:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26903,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26870,"src":"989:5:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":26906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1006:1:93","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":26905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"998:7:93","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26904,"name":"address","nodeType":"ElementaryTypeName","src":"998:7:93","typeDescriptions":{}}},"id":26907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"998:10:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"989:19:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"728:280:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26910,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26872,"src":"1078:3:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":26913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1093:1:93","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":26912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1085:7:93","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26911,"name":"address","nodeType":"ElementaryTypeName","src":"1085:7:93","typeDescriptions":{}}},"id":26914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1085:10:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1078:17:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"728:367:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":26927,"nodeType":"Block","src":"1266:41:93","statements":[{"expression":{"hexValue":"66616c7365","id":26925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1289:5:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":26879,"id":26926,"nodeType":"Return","src":"1282:12:93"}]},"id":26928,"nodeType":"IfStatement","src":"724:583:93","trueBody":{"id":26924,"nodeType":"Block","src":"1163:97:93","statements":[{"expression":{"arguments":[{"id":26919,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26870,"src":"1204:5:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26920,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26872,"src":"1211:3:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26921,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"1216:6:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26917,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"1185:5:93","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TestCoinAlternativeImplementation_$26931_$","typeString":"type(contract super TestCoinAlternativeImplementation)"}},"id":26918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":8367,"src":"1185:18:93","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":26922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1185:38:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":26879,"id":26923,"nodeType":"Return","src":"1178:45:93"}]}}]},"functionSelector":"23b872dd","id":26930,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"605:12:93","nodeType":"FunctionDefinition","overrides":{"id":26876,"nodeType":"OverrideSpecifier","overrides":[],"src":"683:8:93"},"parameters":{"id":26875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26870,"mutability":"mutable","name":"_from","nameLocation":"626:5:93","nodeType":"VariableDeclaration","scope":26930,"src":"618:13:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26869,"name":"address","nodeType":"ElementaryTypeName","src":"618:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26872,"mutability":"mutable","name":"_to","nameLocation":"641:3:93","nodeType":"VariableDeclaration","scope":26930,"src":"633:11:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26871,"name":"address","nodeType":"ElementaryTypeName","src":"633:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26874,"mutability":"mutable","name":"_value","nameLocation":"651:6:93","nodeType":"VariableDeclaration","scope":26930,"src":"646:11:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26873,"name":"uint","nodeType":"ElementaryTypeName","src":"646:4:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"617:41:93"},"returnParameters":{"id":26879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26930,"src":"701:4:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26877,"name":"bool","nodeType":"ElementaryTypeName","src":"701:4:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"700:6:93"},"scope":26931,"src":"596:718:93","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":26932,"src":"125:1192:93"}],"src":"40:1279:93"},"id":93},"contracts/test/TestCompromisedProduct.sol":{"ast":{"absolutePath":"contracts/test/TestCompromisedProduct.sol","exportedSymbols":{"Context":[10518],"ERC20":[8753],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC20Metadata":[8856],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"TestCompromisedProduct":[27454]},"id":27455,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26933,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:94"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":26934,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":2989,"src":"66:69:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":26935,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":3080,"src":"137:67:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IAccess.sol","file":"@etherisc/gif-interface/contracts/modules/IAccess.sol","id":26936,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":4837,"src":"208:63:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":26937,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":5434,"src":"273:63:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":26938,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":5715,"src":"338:65:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","file":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","id":26939,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":6010,"src":"407:79:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","file":"@etherisc/gif-interface/contracts/services/IProductService.sol","id":26940,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":6665,"src":"488:72:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","id":26941,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":6510,"src":"562:73:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":26942,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":7482,"src":"639:52:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":26943,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":8754,"src":"693:55:94","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26944,"name":"IProduct","nodeType":"IdentifierPath","referencedDeclaration":3079,"src":"1157:8:94"},"id":26945,"nodeType":"InheritanceSpecifier","src":"1157:8:94"},{"baseName":{"id":26946,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"1172:7:94"},"id":26947,"nodeType":"InheritanceSpecifier","src":"1172:7:94"}],"contractDependencies":[2988,3079,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":27454,"linearizedBaseContracts":[27454,7481,10518,3079,2988],"name":"TestCompromisedProduct","nameLocation":"1125:22:94","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"3b5284b6","id":26953,"mutability":"constant","name":"FAKE_STATE","nameLocation":"1231:10:94","nodeType":"VariableDeclaration","scope":27454,"src":"1189:87:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":26949,"nodeType":"UserDefinedTypeName","pathNode":{"id":26948,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"1189:25:94"},"referencedDeclaration":2899,"src":"1189:25:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"value":{"expression":{"expression":{"id":26950,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"1244:10:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":26951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"1244:25:94","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":26952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"1244:32:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"public"},{"constant":true,"functionSelector":"09128d83","id":26956,"mutability":"constant","name":"POLICY_FLOW","nameLocation":"1313:11:94","nodeType":"VariableDeclaration","scope":27454,"src":"1289:57:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6c69637944656661756c74466c6f77","id":26955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1327:19:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c6194c52a3447410e4616772f780a88c4ac5f0b731d2fc7e7979c603182714e","typeString":"literal_string \"PolicyDefaultFlow\""},"value":"PolicyDefaultFlow"},"visibility":"public"},{"constant":false,"id":26958,"mutability":"mutable","name":"_componentName","nameLocation":"1371:14:94","nodeType":"VariableDeclaration","scope":27454,"src":"1355:30:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1355:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":26960,"mutability":"mutable","name":"_tokenAddress","nameLocation":"1408:13:94","nodeType":"VariableDeclaration","scope":27454,"src":"1392:29:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26959,"name":"address","nodeType":"ElementaryTypeName","src":"1392:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":26962,"mutability":"mutable","name":"_componentId","nameLocation":"1444:12:94","nodeType":"VariableDeclaration","scope":27454,"src":"1428:28:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26961,"name":"uint256","nodeType":"ElementaryTypeName","src":"1428:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":26964,"mutability":"mutable","name":"_riskpoolId","nameLocation":"1479:11:94","nodeType":"VariableDeclaration","scope":27454,"src":"1463:27:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26963,"name":"uint256","nodeType":"ElementaryTypeName","src":"1463:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":26967,"mutability":"mutable","name":"_registry","nameLocation":"1521:9:94","nodeType":"VariableDeclaration","scope":27454,"src":"1503:27:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":26966,"nodeType":"UserDefinedTypeName","pathNode":{"id":26965,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"1503:9:94"},"referencedDeclaration":5714,"src":"1503:9:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"private"},{"constant":false,"id":26970,"mutability":"mutable","name":"_access","nameLocation":"1553:7:94","nodeType":"VariableDeclaration","scope":27454,"src":"1537:23:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"},"typeName":{"id":26969,"nodeType":"UserDefinedTypeName","pathNode":{"id":26968,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"1537:7:94"},"referencedDeclaration":4836,"src":"1537:7:94","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"visibility":"private"},{"constant":false,"id":26973,"mutability":"mutable","name":"_componentOwnerService","nameLocation":"1598:22:94","nodeType":"VariableDeclaration","scope":27454,"src":"1567:53:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":26972,"nodeType":"UserDefinedTypeName","pathNode":{"id":26971,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"1567:22:94"},"referencedDeclaration":6009,"src":"1567:22:94","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"private"},{"constant":false,"id":26976,"mutability":"mutable","name":"_instanceService","nameLocation":"1652:16:94","nodeType":"VariableDeclaration","scope":27454,"src":"1627:41:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":26975,"nodeType":"UserDefinedTypeName","pathNode":{"id":26974,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"1627:16:94"},"referencedDeclaration":6509,"src":"1627:16:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"private"},{"constant":false,"id":26978,"mutability":"mutable","name":"_policyFlow","nameLocation":"1691:11:94","nodeType":"VariableDeclaration","scope":27454,"src":"1675:27:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26977,"name":"address","nodeType":"ElementaryTypeName","src":"1675:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":26981,"mutability":"mutable","name":"_productService","nameLocation":"1733:15:94","nodeType":"VariableDeclaration","scope":27454,"src":"1709:39:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"},"typeName":{"id":26980,"nodeType":"UserDefinedTypeName","pathNode":{"id":26979,"name":"IProductService","nodeType":"IdentifierPath","referencedDeclaration":6664,"src":"1709:15:94"},"referencedDeclaration":6664,"src":"1709:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"visibility":"private"},{"constant":false,"id":26983,"mutability":"mutable","name":"_policies","nameLocation":"1773:9:94","nodeType":"VariableDeclaration","scope":27454,"src":"1757:25:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26982,"name":"uint256","nodeType":"ElementaryTypeName","src":"1757:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":26985,"mutability":"mutable","name":"_claims","nameLocation":"1805:7:94","nodeType":"VariableDeclaration","scope":27454,"src":"1789:23:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26984,"name":"uint256","nodeType":"ElementaryTypeName","src":"1789:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":27006,"nodeType":"Block","src":"1865:224:94","statements":[{"assignments":[26990],"declarations":[{"constant":false,"id":26990,"mutability":"mutable","name":"policyHolder","nameLocation":"1884:12:94","nodeType":"VariableDeclaration","scope":27006,"src":"1876:20:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26989,"name":"address","nodeType":"ElementaryTypeName","src":"1876:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":26996,"initialValue":{"expression":{"arguments":[{"id":26993,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26987,"src":"1928:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":26991,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26976,"src":"1899:16:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":26992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":6428,"src":"1899:28:94","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":26994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1899:38:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":26995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"1899:44:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1876:67:94"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":27001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":26998,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1976:10:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1976:12:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":27000,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26990,"src":"1992:12:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1976:28:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5443502d313a494e56414c49445f504f4c4943595f4f525f484f4c444552","id":27002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2020:38:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_45b7c023a985c9e867fb92bc16a50e3a4287536d298108f611ee335f5fdad6ba","typeString":"literal_string \"ERROR:TCP-1:INVALID_POLICY_OR_HOLDER\""},"value":"ERROR:TCP-1:INVALID_POLICY_OR_HOLDER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45b7c023a985c9e867fb92bc16a50e3a4287536d298108f611ee335f5fdad6ba","typeString":"literal_string \"ERROR:TCP-1:INVALID_POLICY_OR_HOLDER\""}],"id":26997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1954:7:94","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":27003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1954:115:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27004,"nodeType":"ExpressionStatement","src":"1954:115:94"},{"id":27005,"nodeType":"PlaceholderStatement","src":"2080:1:94"}]},"id":27007,"name":"onlyPolicyHolder","nameLocation":"1830:16:94","nodeType":"ModifierDefinition","parameters":{"id":26988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26987,"mutability":"mutable","name":"policyId","nameLocation":"1855:8:94","nodeType":"VariableDeclaration","scope":27007,"src":"1847:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1847:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1846:18:94"},"src":"1821:268:94","virtual":false,"visibility":"internal"},{"body":{"id":27070,"nodeType":"Block","src":"2306:475:94","statements":[{"expression":{"id":27024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27022,"name":"_componentName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26958,"src":"2318:14:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27023,"name":"fakeProductName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27009,"src":"2335:15:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2318:32:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27025,"nodeType":"ExpressionStatement","src":"2318:32:94"},{"expression":{"id":27028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27026,"name":"_tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26960,"src":"2361:13:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27027,"name":"tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27011,"src":"2377:12:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2361:28:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":27029,"nodeType":"ExpressionStatement","src":"2361:28:94"},{"expression":{"id":27032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27030,"name":"_componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26962,"src":"2400:12:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27031,"name":"fakeComponentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27013,"src":"2415:15:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2400:30:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27033,"nodeType":"ExpressionStatement","src":"2400:30:94"},{"expression":{"id":27036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27034,"name":"_riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26964,"src":"2441:11:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27035,"name":"fakeRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27015,"src":"2455:14:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2441:28:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27037,"nodeType":"ExpressionStatement","src":"2441:28:94"},{"expression":{"id":27042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27038,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26967,"src":"2482:9:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27040,"name":"registryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27017,"src":"2504:15:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27039,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"2494:9:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$5714_$","typeString":"type(contract IRegistry)"}},"id":27041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2494:26:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"src":"2482:38:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":27043,"nodeType":"ExpressionStatement","src":"2482:38:94"},{"expression":{"id":27047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27044,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26970,"src":"2531:7:94","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":27045,"name":"_getAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27401,"src":"2541:10:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IAccess_$4836_$","typeString":"function () view returns (contract IAccess)"}},"id":27046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2541:12:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"src":"2531:22:94","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":27048,"nodeType":"ExpressionStatement","src":"2531:22:94"},{"expression":{"id":27052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27049,"name":"_componentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26973,"src":"2564:22:94","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":27050,"name":"_getComponentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27427,"src":"2589:25:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IComponentOwnerService_$6009_$","typeString":"function () view returns (contract IComponentOwnerService)"}},"id":27051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2589:27:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"src":"2564:52:94","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"id":27053,"nodeType":"ExpressionStatement","src":"2564:52:94"},{"expression":{"id":27057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27054,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26976,"src":"2627:16:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":27055,"name":"_getInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27414,"src":"2646:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IInstanceService_$6509_$","typeString":"function () view returns (contract IInstanceService)"}},"id":27056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2646:21:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"src":"2627:40:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":27058,"nodeType":"ExpressionStatement","src":"2627:40:94"},{"expression":{"id":27063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27059,"name":"_policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26978,"src":"2678:11:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27061,"name":"POLICY_FLOW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26956,"src":"2712:11:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27060,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"2692:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2692:32:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2678:46:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":27064,"nodeType":"ExpressionStatement","src":"2678:46:94"},{"expression":{"id":27068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27065,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"2735:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":27066,"name":"_getProductService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27440,"src":"2753:18:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IProductService_$6664_$","typeString":"function () view returns (contract IProductService)"}},"id":27067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2753:20:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"src":"2735:38:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27069,"nodeType":"ExpressionStatement","src":"2735:38:94"}]},"id":27071,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":27020,"modifierName":{"id":27019,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"2291:7:94"},"nodeType":"ModifierInvocation","src":"2291:9:94"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":27018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27009,"mutability":"mutable","name":"fakeProductName","nameLocation":"2127:15:94","nodeType":"VariableDeclaration","scope":27071,"src":"2119:23:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2119:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27011,"mutability":"mutable","name":"tokenAddress","nameLocation":"2161:12:94","nodeType":"VariableDeclaration","scope":27071,"src":"2153:20:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27010,"name":"address","nodeType":"ElementaryTypeName","src":"2153:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27013,"mutability":"mutable","name":"fakeComponentId","nameLocation":"2192:15:94","nodeType":"VariableDeclaration","scope":27071,"src":"2184:23:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27012,"name":"uint256","nodeType":"ElementaryTypeName","src":"2184:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27015,"mutability":"mutable","name":"fakeRiskpoolId","nameLocation":"2226:14:94","nodeType":"VariableDeclaration","scope":27071,"src":"2218:22:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27014,"name":"uint256","nodeType":"ElementaryTypeName","src":"2218:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27017,"mutability":"mutable","name":"registryAddress","nameLocation":"2259:15:94","nodeType":"VariableDeclaration","scope":27071,"src":"2251:23:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27016,"name":"address","nodeType":"ElementaryTypeName","src":"2251:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2108:173:94"},"returnParameters":{"id":27021,"nodeType":"ParameterList","parameters":[],"src":"2306:0:94"},"scope":27454,"src":"2097:684:94","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":27109,"nodeType":"Block","src":"3032:358:94","statements":[{"assignments":[27085],"declarations":[{"constant":false,"id":27085,"mutability":"mutable","name":"policyHolder","nameLocation":"3059:12:94","nodeType":"VariableDeclaration","scope":27109,"src":"3043:28:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":27084,"name":"address","nodeType":"ElementaryTypeName","src":"3043:15:94","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":27091,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":27088,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3082:10:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":27089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3082:12:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3074:8:94","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":27086,"name":"address","nodeType":"ElementaryTypeName","src":"3074:8:94","stateMutability":"payable","typeDescriptions":{}}},"id":27090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3074:21:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"3043:52:94"},{"expression":{"id":27101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27092,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27082,"src":"3158:9:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27095,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27085,"src":"3215:12:94","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":27096,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27073,"src":"3243:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27097,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27075,"src":"3266:10:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27098,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27077,"src":"3292:8:94","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":27099,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27079,"src":"3316:15:94","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":27093,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"3170:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newApplication","nodeType":"MemberAccess","referencedDeclaration":6536,"src":"3170:30:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) external returns (bytes32)"}},"id":27100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3170:162:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3158:174:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27102,"nodeType":"ExpressionStatement","src":"3158:174:94"},{"expression":{"arguments":[{"id":27106,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27082,"src":"3372:9:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27103,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"3345:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"underwrite","nodeType":"MemberAccess","referencedDeclaration":6570,"src":"3345:26:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) external returns (bool)"}},"id":27107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3345:37:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27108,"nodeType":"ExpressionStatement","src":"3345:37:94"}]},"functionSelector":"e6f95edd","id":27110,"implemented":true,"kind":"function","modifiers":[],"name":"applyForPolicy","nameLocation":"2798:14:94","nodeType":"FunctionDefinition","parameters":{"id":27080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27073,"mutability":"mutable","name":"premium","nameLocation":"2831:7:94","nodeType":"VariableDeclaration","scope":27110,"src":"2823:15:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27072,"name":"uint256","nodeType":"ElementaryTypeName","src":"2823:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27075,"mutability":"mutable","name":"sumInsured","nameLocation":"2858:10:94","nodeType":"VariableDeclaration","scope":27110,"src":"2850:18:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27074,"name":"uint256","nodeType":"ElementaryTypeName","src":"2850:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27077,"mutability":"mutable","name":"metaData","nameLocation":"2894:8:94","nodeType":"VariableDeclaration","scope":27110,"src":"2879:23:94","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27076,"name":"bytes","nodeType":"ElementaryTypeName","src":"2879:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":27079,"mutability":"mutable","name":"applicationData","nameLocation":"2928:15:94","nodeType":"VariableDeclaration","scope":27110,"src":"2913:30:94","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27078,"name":"bytes","nodeType":"ElementaryTypeName","src":"2913:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2812:138:94"},"returnParameters":{"id":27083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27082,"mutability":"mutable","name":"processId","nameLocation":"3015:9:94","nodeType":"VariableDeclaration","scope":27110,"src":"3007:17:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3007:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3006:19:94"},"scope":27454,"src":"2789:601:94","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":27133,"nodeType":"Block","src":"3465:167:94","statements":[{"assignments":[27119],"declarations":[{"constant":false,"id":27119,"mutability":"mutable","name":"policy","nameLocation":"3498:6:94","nodeType":"VariableDeclaration","scope":27133,"src":"3476:28:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":27118,"nodeType":"UserDefinedTypeName","pathNode":{"id":27117,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"3476:14:94"},"referencedDeclaration":5282,"src":"3476:14:94","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":27124,"initialValue":{"arguments":[{"id":27122,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27112,"src":"3534:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27120,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26976,"src":"3507:16:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":27121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":6444,"src":"3507:26:94","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":27123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3507:36:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"3476:67:94"},{"expression":{"arguments":[{"id":27128,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27112,"src":"3585:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":27129,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27119,"src":"3595:6:94","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":27130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"3595:28:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27125,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"3554:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collectPremium","nodeType":"MemberAccess","referencedDeclaration":6549,"src":"3554:30:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (bool,uint256,uint256)"}},"id":27131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3554:70:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"id":27132,"nodeType":"ExpressionStatement","src":"3554:70:94"}]},"functionSelector":"b9ea8d66","id":27134,"implemented":true,"kind":"function","modifiers":[],"name":"collectPremium","nameLocation":"3407:14:94","nodeType":"FunctionDefinition","parameters":{"id":27113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27112,"mutability":"mutable","name":"policyId","nameLocation":"3430:8:94","nodeType":"VariableDeclaration","scope":27134,"src":"3422:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3422:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3421:18:94"},"returnParameters":{"id":27114,"nodeType":"ParameterList","parameters":[],"src":"3465:0:94"},"scope":27454,"src":"3398:234:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27188,"nodeType":"Block","src":"3760:476:94","statements":[{"expression":{"id":27146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27144,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26985,"src":"3807:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":27145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3818:1:94","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3807:12:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27147,"nodeType":"ExpressionStatement","src":"3807:12:94"},{"assignments":[27149],"declarations":[{"constant":false,"id":27149,"mutability":"mutable","name":"claimId","nameLocation":"3888:7:94","nodeType":"VariableDeclaration","scope":27188,"src":"3880:15:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27148,"name":"uint256","nodeType":"ElementaryTypeName","src":"3880:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27159,"initialValue":{"arguments":[{"id":27152,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27136,"src":"3923:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27153,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27138,"src":"3933:11:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":27156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3957:1:94","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":27154,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3946:3:94","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3946:10:94","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":27157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3946:13:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":27150,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"3898:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newClaim","nodeType":"MemberAccess","referencedDeclaration":6596,"src":"3898:24:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) external returns (uint256)"}},"id":27158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:62:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3880:80:94"},{"expression":{"arguments":[{"id":27163,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27136,"src":"4000:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27164,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27149,"src":"4010:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27165,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27138,"src":"4019:11:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27160,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"3971:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"confirmClaim","nodeType":"MemberAccess","referencedDeclaration":6605,"src":"3971:28:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256) external"}},"id":27166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3971:60:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27167,"nodeType":"ExpressionStatement","src":"3971:60:94"},{"assignments":[27169],"declarations":[{"constant":false,"id":27169,"mutability":"mutable","name":"payoutId","nameLocation":"4085:8:94","nodeType":"VariableDeclaration","scope":27188,"src":"4077:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27168,"name":"uint256","nodeType":"ElementaryTypeName","src":"4077:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27180,"initialValue":{"arguments":[{"id":27172,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27136,"src":"4122:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27173,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27149,"src":"4132:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27174,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27138,"src":"4141:11:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":27177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4165:1:94","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":27175,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"4154:3:94","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"4154:10:94","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":27178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4154:13:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":27170,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"4096:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newPayout","nodeType":"MemberAccess","referencedDeclaration":6632,"src":"4096:25:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) external returns (uint256)"}},"id":27179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4096:72:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4077:91:94"},{"expression":{"arguments":[{"id":27184,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27136,"src":"4209:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27185,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27169,"src":"4219:8:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27181,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"4179:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":6643,"src":"4179:29:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (uint256,uint256)"}},"id":27186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4179:49:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":27187,"nodeType":"ExpressionStatement","src":"4179:49:94"}]},"functionSelector":"2b677841","id":27189,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":27141,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27136,"src":"3745:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":27142,"modifierName":{"id":27140,"name":"onlyPolicyHolder","nodeType":"IdentifierPath","referencedDeclaration":27007,"src":"3728:16:94"},"nodeType":"ModifierInvocation","src":"3728:26:94"}],"name":"submitClaim","nameLocation":"3649:11:94","nodeType":"FunctionDefinition","parameters":{"id":27139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27136,"mutability":"mutable","name":"policyId","nameLocation":"3669:8:94","nodeType":"VariableDeclaration","scope":27189,"src":"3661:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3661:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27138,"mutability":"mutable","name":"claimAmount","nameLocation":"3687:11:94","nodeType":"VariableDeclaration","scope":27189,"src":"3679:19:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27137,"name":"uint256","nodeType":"ElementaryTypeName","src":"3679:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3660:39:94"},"returnParameters":{"id":27143,"nodeType":"ParameterList","parameters":[],"src":"3760:0:94"},"scope":27454,"src":"3640:596:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3048],"body":{"id":27197,"nodeType":"Block","src":"4474:25:94","statements":[{"expression":{"id":27195,"name":"_tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26960,"src":"4483:13:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":27194,"id":27196,"nodeType":"Return","src":"4476:20:94"}]},"functionSelector":"21df0da7","id":27198,"implemented":true,"kind":"function","modifiers":[],"name":"getToken","nameLocation":"4417:8:94","nodeType":"FunctionDefinition","overrides":{"id":27191,"nodeType":"OverrideSpecifier","overrides":[],"src":"4437:8:94"},"parameters":{"id":27190,"nodeType":"ParameterList","parameters":[],"src":"4425:2:94"},"returnParameters":{"id":27194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27193,"mutability":"mutable","name":"token","nameLocation":"4467:5:94","nodeType":"VariableDeclaration","scope":27198,"src":"4459:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27192,"name":"address","nodeType":"ElementaryTypeName","src":"4459:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4458:15:94"},"scope":27454,"src":"4408:91:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3053],"body":{"id":27208,"nodeType":"Block","src":"4581:44:94","statements":[{"expression":{"arguments":[{"id":27205,"name":"POLICY_FLOW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26956,"src":"4610:11:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27204,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"4590:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4590:32:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":27203,"id":27207,"nodeType":"Return","src":"4583:39:94"}]},"functionSelector":"637d08f4","id":27209,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyFlow","nameLocation":"4514:13:94","nodeType":"FunctionDefinition","overrides":{"id":27200,"nodeType":"OverrideSpecifier","overrides":[],"src":"4539:8:94"},"parameters":{"id":27199,"nodeType":"ParameterList","parameters":[],"src":"4527:2:94"},"returnParameters":{"id":27203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27202,"mutability":"mutable","name":"policyFlow","nameLocation":"4569:10:94","nodeType":"VariableDeclaration","scope":27209,"src":"4561:18:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27201,"name":"address","nodeType":"ElementaryTypeName","src":"4561:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4560:20:94"},"scope":27454,"src":"4505:120:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3058],"body":{"id":27217,"nodeType":"Block","src":"4707:23:94","statements":[{"expression":{"id":27215,"name":"_riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26964,"src":"4716:11:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27214,"id":27216,"nodeType":"Return","src":"4709:18:94"}]},"functionSelector":"70d2fe53","id":27218,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolId","nameLocation":"4640:13:94","nodeType":"FunctionDefinition","overrides":{"id":27211,"nodeType":"OverrideSpecifier","overrides":[],"src":"4665:8:94"},"parameters":{"id":27210,"nodeType":"ParameterList","parameters":[],"src":"4653:2:94"},"returnParameters":{"id":27214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27213,"mutability":"mutable","name":"riskpoolId","nameLocation":"4695:10:94","nodeType":"VariableDeclaration","scope":27218,"src":"4687:18:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27212,"name":"uint256","nodeType":"ElementaryTypeName","src":"4687:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4686:20:94"},"scope":27454,"src":"4631:99:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3063],"body":{"id":27226,"nodeType":"Block","src":"4837:14:94","statements":[{"expression":{"hexValue":"","id":27224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4846:2:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":27223,"id":27225,"nodeType":"Return","src":"4839:9:94"}]},"functionSelector":"94f64ff4","id":27227,"implemented":true,"kind":"function","modifiers":[],"name":"getApplicationDataStructure","nameLocation":"4747:27:94","nodeType":"FunctionDefinition","overrides":{"id":27220,"nodeType":"OverrideSpecifier","overrides":[],"src":"4786:8:94"},"parameters":{"id":27219,"nodeType":"ParameterList","parameters":[],"src":"4774:2:94"},"returnParameters":{"id":27223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27222,"mutability":"mutable","name":"dataStructure","nameLocation":"4822:13:94","nodeType":"VariableDeclaration","scope":27227,"src":"4808:27:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27221,"name":"string","nodeType":"ElementaryTypeName","src":"4808:6:94","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4807:29:94"},"scope":27454,"src":"4738:113:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3068],"body":{"id":27235,"nodeType":"Block","src":"4950:14:94","statements":[{"expression":{"hexValue":"","id":27233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4959:2:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":27232,"id":27234,"nodeType":"Return","src":"4952:9:94"}]},"functionSelector":"3ec92bda","id":27236,"implemented":true,"kind":"function","modifiers":[],"name":"getClaimDataStructure","nameLocation":"4866:21:94","nodeType":"FunctionDefinition","overrides":{"id":27229,"nodeType":"OverrideSpecifier","overrides":[],"src":"4899:8:94"},"parameters":{"id":27228,"nodeType":"ParameterList","parameters":[],"src":"4887:2:94"},"returnParameters":{"id":27232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27231,"mutability":"mutable","name":"dataStructure","nameLocation":"4935:13:94","nodeType":"VariableDeclaration","scope":27236,"src":"4921:27:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27230,"name":"string","nodeType":"ElementaryTypeName","src":"4921:6:94","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4920:29:94"},"scope":27454,"src":"4857:107:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3073],"body":{"id":27244,"nodeType":"Block","src":"5064:14:94","statements":[{"expression":{"hexValue":"","id":27242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5073:2:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":27241,"id":27243,"nodeType":"Return","src":"5066:9:94"}]},"functionSelector":"39cf5e16","id":27245,"implemented":true,"kind":"function","modifiers":[],"name":"getPayoutDataStructure","nameLocation":"4979:22:94","nodeType":"FunctionDefinition","overrides":{"id":27238,"nodeType":"OverrideSpecifier","overrides":[],"src":"5013:8:94"},"parameters":{"id":27237,"nodeType":"ParameterList","parameters":[],"src":"5001:2:94"},"returnParameters":{"id":27241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27240,"mutability":"mutable","name":"dataStructure","nameLocation":"5049:13:94","nodeType":"VariableDeclaration","scope":27245,"src":"5035:27:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27239,"name":"string","nodeType":"ElementaryTypeName","src":"5035:6:94","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5034:29:94"},"scope":27454,"src":"4970:108:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3078],"body":{"id":27251,"nodeType":"Block","src":"5156:2:94","statements":[]},"functionSelector":"f4fdc1fa","id":27252,"implemented":true,"kind":"function","modifiers":[],"name":"riskPoolCapacityCallback","nameLocation":"5095:24:94","nodeType":"FunctionDefinition","overrides":{"id":27249,"nodeType":"OverrideSpecifier","overrides":[],"src":"5147:8:94"},"parameters":{"id":27248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27247,"mutability":"mutable","name":"capacity","nameLocation":"5128:8:94","nodeType":"VariableDeclaration","scope":27252,"src":"5120:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27246,"name":"uint256","nodeType":"ElementaryTypeName","src":"5120:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5119:18:94"},"returnParameters":{"id":27250,"nodeType":"ParameterList","parameters":[],"src":"5156:0:94"},"scope":27454,"src":"5086:72:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2915],"body":{"id":27258,"nodeType":"Block","src":"5292:2:94","statements":[]},"functionSelector":"d0e0ba95","id":27259,"implemented":true,"kind":"function","modifiers":[],"name":"setId","nameLocation":"5256:5:94","nodeType":"FunctionDefinition","overrides":{"id":27256,"nodeType":"OverrideSpecifier","overrides":[],"src":"5283:8:94"},"parameters":{"id":27255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27254,"mutability":"mutable","name":"id","nameLocation":"5270:2:94","nodeType":"VariableDeclaration","scope":27259,"src":"5262:10:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27253,"name":"uint256","nodeType":"ElementaryTypeName","src":"5262:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5261:12:94"},"returnParameters":{"id":27257,"nodeType":"ParameterList","parameters":[],"src":"5292:0:94"},"scope":27454,"src":"5247:47:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2920],"body":{"id":27267,"nodeType":"Block","src":"5387:26:94","statements":[{"expression":{"id":27265,"name":"_componentName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26958,"src":"5396:14:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":27264,"id":27266,"nodeType":"Return","src":"5389:21:94"}]},"functionSelector":"17d7de7c","id":27268,"implemented":true,"kind":"function","modifiers":[],"name":"getName","nameLocation":"5337:7:94","nodeType":"FunctionDefinition","overrides":{"id":27261,"nodeType":"OverrideSpecifier","overrides":[],"src":"5356:8:94"},"parameters":{"id":27260,"nodeType":"ParameterList","parameters":[],"src":"5344:2:94"},"returnParameters":{"id":27264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27268,"src":"5378:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5378:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5377:9:94"},"scope":27454,"src":"5328:85:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2925],"body":{"id":27276,"nodeType":"Block","src":"5476:24:94","statements":[{"expression":{"id":27274,"name":"_componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26962,"src":"5485:12:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27273,"id":27275,"nodeType":"Return","src":"5478:19:94"}]},"functionSelector":"5d1ca631","id":27277,"implemented":true,"kind":"function","modifiers":[],"name":"getId","nameLocation":"5428:5:94","nodeType":"FunctionDefinition","overrides":{"id":27270,"nodeType":"OverrideSpecifier","overrides":[],"src":"5445:8:94"},"parameters":{"id":27269,"nodeType":"ParameterList","parameters":[],"src":"5433:2:94"},"returnParameters":{"id":27273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27277,"src":"5467:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27271,"name":"uint256","nodeType":"ElementaryTypeName","src":"5467:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5466:9:94"},"scope":27454,"src":"5419:81:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2931],"body":{"id":27288,"nodeType":"Block","src":"5571:44:94","statements":[{"expression":{"expression":{"expression":{"id":27284,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"5580:10:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":27285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"5580:24:94","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":27286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Product","nodeType":"MemberAccess","referencedDeclaration":2889,"src":"5580:32:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":27283,"id":27287,"nodeType":"Return","src":"5573:39:94"}]},"functionSelector":"15dae03e","id":27289,"implemented":true,"kind":"function","modifiers":[],"name":"getType","nameLocation":"5515:7:94","nodeType":"FunctionDefinition","overrides":{"id":27279,"nodeType":"OverrideSpecifier","overrides":[],"src":"5534:8:94"},"parameters":{"id":27278,"nodeType":"ParameterList","parameters":[],"src":"5522:2:94"},"returnParameters":{"id":27283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27289,"src":"5556:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":27281,"nodeType":"UserDefinedTypeName","pathNode":{"id":27280,"name":"ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"5556:13:94"},"referencedDeclaration":2891,"src":"5556:13:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"5555:15:94"},"scope":27454,"src":"5506:109:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2937],"body":{"id":27300,"nodeType":"Block","src":"5688:44:94","statements":[{"expression":{"expression":{"expression":{"id":27296,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"5697:10:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":27297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"5697:25:94","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":27298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"5697:32:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"functionReturnParameters":27295,"id":27299,"nodeType":"Return","src":"5690:39:94"}]},"functionSelector":"1865c57d","id":27301,"implemented":true,"kind":"function","modifiers":[],"name":"getState","nameLocation":"5630:8:94","nodeType":"FunctionDefinition","overrides":{"id":27291,"nodeType":"OverrideSpecifier","overrides":[],"src":"5650:8:94"},"parameters":{"id":27290,"nodeType":"ParameterList","parameters":[],"src":"5638:2:94"},"returnParameters":{"id":27295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27301,"src":"5672:14:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":27293,"nodeType":"UserDefinedTypeName","pathNode":{"id":27292,"name":"ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"5672:14:94"},"referencedDeclaration":2899,"src":"5672:14:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"5671:16:94"},"scope":27454,"src":"5621:111:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2942],"body":{"id":27310,"nodeType":"Block","src":"5798:19:94","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":27307,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"5807:5:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":27308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5807:7:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":27306,"id":27309,"nodeType":"Return","src":"5800:14:94"}]},"functionSelector":"893d20e8","id":27311,"implemented":true,"kind":"function","modifiers":[],"name":"getOwner","nameLocation":"5747:8:94","nodeType":"FunctionDefinition","overrides":{"id":27303,"nodeType":"OverrideSpecifier","overrides":[],"src":"5767:8:94"},"parameters":{"id":27302,"nodeType":"ParameterList","parameters":[],"src":"5755:2:94"},"returnParameters":{"id":27306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27311,"src":"5789:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27304,"name":"address","nodeType":"ElementaryTypeName","src":"5789:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5788:9:94"},"scope":27454,"src":"5738:79:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2963],"body":{"id":27320,"nodeType":"Block","src":"5888:21:94","statements":[{"expression":{"id":27318,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26967,"src":"5897:9:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"functionReturnParameters":27317,"id":27319,"nodeType":"Return","src":"5890:16:94"}]},"functionSelector":"5ab1bd53","id":27321,"implemented":true,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"5832:11:94","nodeType":"FunctionDefinition","overrides":{"id":27313,"nodeType":"OverrideSpecifier","overrides":[],"src":"5855:8:94"},"parameters":{"id":27312,"nodeType":"ParameterList","parameters":[],"src":"5843:2:94"},"returnParameters":{"id":27317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27321,"src":"5877:9:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":27315,"nodeType":"UserDefinedTypeName","pathNode":{"id":27314,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"5877:9:94"},"referencedDeclaration":5714,"src":"5877:9:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"5876:11:94"},"scope":27454,"src":"5823:86:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2947],"body":{"id":27329,"nodeType":"Block","src":"5973:16:94","statements":[{"expression":{"hexValue":"74727565","id":27327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5982:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":27326,"id":27328,"nodeType":"Return","src":"5975:11:94"}]},"functionSelector":"e0815f0d","id":27330,"implemented":true,"kind":"function","modifiers":[],"name":"isProduct","nameLocation":"5926:9:94","nodeType":"FunctionDefinition","overrides":{"id":27323,"nodeType":"OverrideSpecifier","overrides":[],"src":"5945:8:94"},"parameters":{"id":27322,"nodeType":"ParameterList","parameters":[],"src":"5935:2:94"},"returnParameters":{"id":27326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27330,"src":"5967:4:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27324,"name":"bool","nodeType":"ElementaryTypeName","src":"5967:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5966:6:94"},"scope":27454,"src":"5917:72:94","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2952],"body":{"id":27338,"nodeType":"Block","src":"6050:17:94","statements":[{"expression":{"hexValue":"66616c7365","id":27336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6059:5:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":27335,"id":27337,"nodeType":"Return","src":"6052:12:94"}]},"functionSelector":"9a82f890","id":27339,"implemented":true,"kind":"function","modifiers":[],"name":"isOracle","nameLocation":"6004:8:94","nodeType":"FunctionDefinition","overrides":{"id":27332,"nodeType":"OverrideSpecifier","overrides":[],"src":"6022:8:94"},"parameters":{"id":27331,"nodeType":"ParameterList","parameters":[],"src":"6012:2:94"},"returnParameters":{"id":27335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27339,"src":"6044:4:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27333,"name":"bool","nodeType":"ElementaryTypeName","src":"6044:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6043:6:94"},"scope":27454,"src":"5995:72:94","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2957],"body":{"id":27347,"nodeType":"Block","src":"6130:17:94","statements":[{"expression":{"hexValue":"66616c7365","id":27345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6139:5:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":27344,"id":27346,"nodeType":"Return","src":"6132:12:94"}]},"functionSelector":"258d560c","id":27348,"implemented":true,"kind":"function","modifiers":[],"name":"isRiskpool","nameLocation":"6082:10:94","nodeType":"FunctionDefinition","overrides":{"id":27341,"nodeType":"OverrideSpecifier","overrides":[],"src":"6102:8:94"},"parameters":{"id":27340,"nodeType":"ParameterList","parameters":[],"src":"6092:2:94"},"returnParameters":{"id":27344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27348,"src":"6124:4:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27342,"name":"bool","nodeType":"ElementaryTypeName","src":"6124:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6123:6:94"},"scope":27454,"src":"6073:74:94","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2966],"body":{"id":27352,"nodeType":"Block","src":"6201:2:94","statements":[]},"functionSelector":"638ce0ba","id":27353,"implemented":true,"kind":"function","modifiers":[],"name":"proposalCallback","nameLocation":"6164:16:94","nodeType":"FunctionDefinition","overrides":{"id":27350,"nodeType":"OverrideSpecifier","overrides":[],"src":"6192:8:94"},"parameters":{"id":27349,"nodeType":"ParameterList","parameters":[],"src":"6180:2:94"},"returnParameters":{"id":27351,"nodeType":"ParameterList","parameters":[],"src":"6201:0:94"},"scope":27454,"src":"6155:48:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2969],"body":{"id":27357,"nodeType":"Block","src":"6255:2:94","statements":[]},"functionSelector":"1b867c63","id":27358,"implemented":true,"kind":"function","modifiers":[],"name":"approvalCallback","nameLocation":"6218:16:94","nodeType":"FunctionDefinition","overrides":{"id":27355,"nodeType":"OverrideSpecifier","overrides":[],"src":"6246:8:94"},"parameters":{"id":27354,"nodeType":"ParameterList","parameters":[],"src":"6234:2:94"},"returnParameters":{"id":27356,"nodeType":"ParameterList","parameters":[],"src":"6255:0:94"},"scope":27454,"src":"6209:48:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2972],"body":{"id":27362,"nodeType":"Block","src":"6309:2:94","statements":[]},"functionSelector":"bd1fe5d0","id":27363,"implemented":true,"kind":"function","modifiers":[],"name":"declineCallback","nameLocation":"6273:15:94","nodeType":"FunctionDefinition","overrides":{"id":27360,"nodeType":"OverrideSpecifier","overrides":[],"src":"6300:8:94"},"parameters":{"id":27359,"nodeType":"ParameterList","parameters":[],"src":"6288:2:94"},"returnParameters":{"id":27361,"nodeType":"ParameterList","parameters":[],"src":"6309:0:94"},"scope":27454,"src":"6264:47:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2975],"body":{"id":27367,"nodeType":"Block","src":"6362:2:94","statements":[]},"functionSelector":"b3fca9bd","id":27368,"implemented":true,"kind":"function","modifiers":[],"name":"suspendCallback","nameLocation":"6326:15:94","nodeType":"FunctionDefinition","overrides":{"id":27365,"nodeType":"OverrideSpecifier","overrides":[],"src":"6353:8:94"},"parameters":{"id":27364,"nodeType":"ParameterList","parameters":[],"src":"6341:2:94"},"returnParameters":{"id":27366,"nodeType":"ParameterList","parameters":[],"src":"6362:0:94"},"scope":27454,"src":"6317:47:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2978],"body":{"id":27372,"nodeType":"Block","src":"6414:2:94","statements":[]},"functionSelector":"a18f5ae2","id":27373,"implemented":true,"kind":"function","modifiers":[],"name":"resumeCallback","nameLocation":"6379:14:94","nodeType":"FunctionDefinition","overrides":{"id":27370,"nodeType":"OverrideSpecifier","overrides":[],"src":"6405:8:94"},"parameters":{"id":27369,"nodeType":"ParameterList","parameters":[],"src":"6393:2:94"},"returnParameters":{"id":27371,"nodeType":"ParameterList","parameters":[],"src":"6414:0:94"},"scope":27454,"src":"6370:46:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2981],"body":{"id":27377,"nodeType":"Block","src":"6465:2:94","statements":[]},"functionSelector":"d73cd992","id":27378,"implemented":true,"kind":"function","modifiers":[],"name":"pauseCallback","nameLocation":"6431:13:94","nodeType":"FunctionDefinition","overrides":{"id":27375,"nodeType":"OverrideSpecifier","overrides":[],"src":"6456:8:94"},"parameters":{"id":27374,"nodeType":"ParameterList","parameters":[],"src":"6444:2:94"},"returnParameters":{"id":27376,"nodeType":"ParameterList","parameters":[],"src":"6465:0:94"},"scope":27454,"src":"6422:45:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2984],"body":{"id":27382,"nodeType":"Block","src":"6518:2:94","statements":[]},"functionSelector":"59dacc6a","id":27383,"implemented":true,"kind":"function","modifiers":[],"name":"unpauseCallback","nameLocation":"6482:15:94","nodeType":"FunctionDefinition","overrides":{"id":27380,"nodeType":"OverrideSpecifier","overrides":[],"src":"6509:8:94"},"parameters":{"id":27379,"nodeType":"ParameterList","parameters":[],"src":"6497:2:94"},"returnParameters":{"id":27381,"nodeType":"ParameterList","parameters":[],"src":"6518:0:94"},"scope":27454,"src":"6473:47:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2987],"body":{"id":27387,"nodeType":"Block","src":"6571:2:94","statements":[]},"functionSelector":"be169e7e","id":27388,"implemented":true,"kind":"function","modifiers":[],"name":"archiveCallback","nameLocation":"6535:15:94","nodeType":"FunctionDefinition","overrides":{"id":27385,"nodeType":"OverrideSpecifier","overrides":[],"src":"6562:8:94"},"parameters":{"id":27384,"nodeType":"ParameterList","parameters":[],"src":"6550:2:94"},"returnParameters":{"id":27386,"nodeType":"ParameterList","parameters":[],"src":"6571:0:94"},"scope":27454,"src":"6526:47:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27400,"nodeType":"Block","src":"6634:72:94","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"416363657373","id":27396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6680:8:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""}],"id":27395,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"6660:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6660:29:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27394,"name":"IAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"6652:7:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccess_$4836_$","typeString":"type(contract IAccess)"}},"id":27398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6652:38:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"functionReturnParameters":27393,"id":27399,"nodeType":"Return","src":"6645:45:94"}]},"id":27401,"implemented":true,"kind":"function","modifiers":[],"name":"_getAccess","nameLocation":"6590:10:94","nodeType":"FunctionDefinition","parameters":{"id":27389,"nodeType":"ParameterList","parameters":[],"src":"6600:2:94"},"returnParameters":{"id":27393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27392,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27401,"src":"6625:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"},"typeName":{"id":27391,"nodeType":"UserDefinedTypeName","pathNode":{"id":27390,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"6625:7:94"},"referencedDeclaration":4836,"src":"6625:7:94","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"visibility":"internal"}],"src":"6624:9:94"},"scope":27454,"src":"6581:125:94","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":27413,"nodeType":"Block","src":"6785:90:94","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"496e7374616e636553657276696365","id":27409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6840:17:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""},"value":"InstanceService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""}],"id":27408,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"6820:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6820:38:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27407,"name":"IInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"6803:16:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IInstanceService_$6509_$","typeString":"type(contract IInstanceService)"}},"id":27411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6803:56:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"functionReturnParameters":27406,"id":27412,"nodeType":"Return","src":"6796:63:94"}]},"id":27414,"implemented":true,"kind":"function","modifiers":[],"name":"_getInstanceService","nameLocation":"6723:19:94","nodeType":"FunctionDefinition","parameters":{"id":27402,"nodeType":"ParameterList","parameters":[],"src":"6742:2:94"},"returnParameters":{"id":27406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27414,"src":"6767:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":27404,"nodeType":"UserDefinedTypeName","pathNode":{"id":27403,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"6767:16:94"},"referencedDeclaration":6509,"src":"6767:16:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"internal"}],"src":"6766:18:94"},"scope":27454,"src":"6714:161:94","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":27426,"nodeType":"Block","src":"6966:102:94","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e744f776e657253657276696365","id":27422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7027:23:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""},"value":"ComponentOwnerService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""}],"id":27421,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"7007:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7007:44:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27420,"name":"IComponentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6009,"src":"6984:22:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponentOwnerService_$6009_$","typeString":"type(contract IComponentOwnerService)"}},"id":27424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6984:68:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"functionReturnParameters":27419,"id":27425,"nodeType":"Return","src":"6977:75:94"}]},"id":27427,"implemented":true,"kind":"function","modifiers":[],"name":"_getComponentOwnerService","nameLocation":"6892:25:94","nodeType":"FunctionDefinition","parameters":{"id":27415,"nodeType":"ParameterList","parameters":[],"src":"6917:2:94"},"returnParameters":{"id":27419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27427,"src":"6942:22:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":27417,"nodeType":"UserDefinedTypeName","pathNode":{"id":27416,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"6942:22:94"},"referencedDeclaration":6009,"src":"6942:22:94","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"internal"}],"src":"6941:24:94"},"scope":27454,"src":"6883:185:94","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":27439,"nodeType":"Block","src":"7145:88:94","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"50726f6475637453657276696365","id":27435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7199:16:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""},"value":"ProductService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""}],"id":27434,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"7179:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7179:37:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27433,"name":"IProductService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6664,"src":"7163:15:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProductService_$6664_$","typeString":"type(contract IProductService)"}},"id":27437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7163:54:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"functionReturnParameters":27432,"id":27438,"nodeType":"Return","src":"7156:61:94"}]},"id":27440,"implemented":true,"kind":"function","modifiers":[],"name":"_getProductService","nameLocation":"7085:18:94","nodeType":"FunctionDefinition","parameters":{"id":27428,"nodeType":"ParameterList","parameters":[],"src":"7103:2:94"},"returnParameters":{"id":27432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27431,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27440,"src":"7128:15:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"},"typeName":{"id":27430,"nodeType":"UserDefinedTypeName","pathNode":{"id":27429,"name":"IProductService","nodeType":"IdentifierPath","referencedDeclaration":6664,"src":"7128:15:94"},"referencedDeclaration":6664,"src":"7128:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"visibility":"internal"}],"src":"7127:17:94"},"scope":27454,"src":"7076:157:94","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":27452,"nodeType":"Block","src":"7323:62:94","statements":[{"expression":{"arguments":[{"id":27449,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27442,"src":"7364:12:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27447,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26967,"src":"7342:9:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":27448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContract","nodeType":"MemberAccess","referencedDeclaration":5687,"src":"7342:21:94","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":27450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7342:35:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":27446,"id":27451,"nodeType":"Return","src":"7335:42:94"}]},"id":27453,"implemented":true,"kind":"function","modifiers":[],"name":"_getContractAddress","nameLocation":"7250:19:94","nodeType":"FunctionDefinition","parameters":{"id":27443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27442,"mutability":"mutable","name":"contractName","nameLocation":"7278:12:94","nodeType":"VariableDeclaration","scope":27453,"src":"7270:20:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7270:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7269:22:94"},"returnParameters":{"id":27446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27453,"src":"7314:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27444,"name":"address","nodeType":"ElementaryTypeName","src":"7314:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7313:9:94"},"scope":27454,"src":"7241:144:94","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":27455,"src":"1116:6274:94"}],"src":"40:7350:94"},"id":94},"contracts/test/TestOracle.sol":{"ast":{"absolutePath":"contracts/test/TestOracle.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Oracle":[3414],"Ownable":[7481],"TestOracle":[27560]},"id":27561,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":27456,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:95"},{"absolutePath":"@etherisc/gif-interface/contracts/components/Oracle.sol","file":"@etherisc/gif-interface/contracts/components/Oracle.sol","id":27457,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27561,"sourceUnit":3415,"src":"66:65:95","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":27458,"name":"Oracle","nodeType":"IdentifierPath","referencedDeclaration":3414,"src":"158:6:95"},"id":27459,"nodeType":"InheritanceSpecifier","src":"158:6:95"}],"contractDependencies":[2884,2988,3022,3414,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":27560,"linearizedBaseContracts":[27560,3414,2884,7481,10518,5073,3022,2988],"name":"TestOracle","nameLocation":"144:10:95","nodeType":"ContractDefinition","nodes":[{"body":{"id":27470,"nodeType":"Block","src":"292:3:95","statements":[]},"id":27471,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":27466,"name":"oracleName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27461,"src":"265:10:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27467,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27463,"src":"277:8:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":27468,"modifierName":{"id":27465,"name":"Oracle","nodeType":"IdentifierPath","referencedDeclaration":3414,"src":"258:6:95"},"nodeType":"ModifierInvocation","src":"258:28:95"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":27464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27461,"mutability":"mutable","name":"oracleName","nameLocation":"204:10:95","nodeType":"VariableDeclaration","scope":27471,"src":"196:18:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"196:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27463,"mutability":"mutable","name":"registry","nameLocation":"233:8:95","nodeType":"VariableDeclaration","scope":27471,"src":"225:16:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27462,"name":"address","nodeType":"ElementaryTypeName","src":"225:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"185:63:95"},"returnParameters":{"id":27469,"nodeType":"ParameterList","parameters":[],"src":"292:0:95"},"scope":27560,"src":"174:121:95","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3016],"body":{"id":27509,"nodeType":"Block","src":"389:492:95","statements":[{"assignments":[27482,27484],"declarations":[{"constant":false,"id":27482,"mutability":"mutable","name":"counter","nameLocation":"446:7:95","nodeType":"VariableDeclaration","scope":27509,"src":"438:15:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27481,"name":"uint256","nodeType":"ElementaryTypeName","src":"438:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27484,"mutability":"mutable","name":"immediateResponse","nameLocation":"460:17:95","nodeType":"VariableDeclaration","scope":27509,"src":"455:22:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27483,"name":"bool","nodeType":"ElementaryTypeName","src":"455:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27494,"initialValue":{"arguments":[{"id":27487,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27475,"src":"492:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":27489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"500:7:95","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27488,"name":"uint256","nodeType":"ElementaryTypeName","src":"500:7:95","typeDescriptions":{}}},{"id":27491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"509:4:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":27490,"name":"bool","nodeType":"ElementaryTypeName","src":"509:4:95","typeDescriptions":{}}}],"id":27492,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"499:15:95","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_bool_$_$","typeString":"tuple(type(uint256),type(bool))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_bool_$_$","typeString":"tuple(type(uint256),type(bool))"}],"expression":{"id":27485,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"481:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"481:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":27493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"481:34:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"nodeType":"VariableDeclarationStatement","src":"437:78:95"},{"condition":{"id":27495,"name":"immediateResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27484,"src":"532:17:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27508,"nodeType":"IfStatement","src":"528:346:95","trueBody":{"id":27507,"nodeType":"Block","src":"551:323:95","statements":[{"assignments":[27497],"declarations":[{"constant":false,"id":27497,"mutability":"mutable","name":"isLossEvent","nameLocation":"775:11:95","nodeType":"VariableDeclaration","scope":27507,"src":"770:16:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27496,"name":"bool","nodeType":"ElementaryTypeName","src":"770:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27501,"initialValue":{"arguments":[{"id":27499,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27482,"src":"808:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27498,"name":"_oracleCalculation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27559,"src":"789:18:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) returns (bool)"}},"id":27500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"789:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"770:46:95"},{"expression":{"arguments":[{"id":27503,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27473,"src":"839:9:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27504,"name":"isLossEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27497,"src":"850:11:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":27502,"name":"respond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27542,"src":"831:7:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":27505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"831:31:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27506,"nodeType":"ExpressionStatement","src":"831:31:95"}]}}]},"functionSelector":"ffc79065","id":27510,"implemented":true,"kind":"function","modifiers":[{"id":27479,"modifierName":{"id":27478,"name":"onlyQuery","nodeType":"IdentifierPath","referencedDeclaration":3339,"src":"379:9:95"},"nodeType":"ModifierInvocation","src":"379:9:95"}],"name":"request","nameLocation":"312:7:95","nodeType":"FunctionDefinition","overrides":{"id":27477,"nodeType":"OverrideSpecifier","overrides":[],"src":"370:8:95"},"parameters":{"id":27476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27473,"mutability":"mutable","name":"requestId","nameLocation":"328:9:95","nodeType":"VariableDeclaration","scope":27510,"src":"320:17:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27472,"name":"uint256","nodeType":"ElementaryTypeName","src":"320:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27475,"mutability":"mutable","name":"input","nameLocation":"354:5:95","nodeType":"VariableDeclaration","scope":27510,"src":"339:20:95","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27474,"name":"bytes","nodeType":"ElementaryTypeName","src":"339:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"319:41:95"},"returnParameters":{"id":27480,"nodeType":"ParameterList","parameters":[],"src":"389:0:95"},"scope":27560,"src":"303:578:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3021],"body":{"id":27518,"nodeType":"Block","src":"975:134:95","statements":[]},"functionSelector":"40e58ee5","id":27519,"implemented":true,"kind":"function","modifiers":[{"id":27516,"modifierName":{"id":27515,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"960:9:95"},"nodeType":"ModifierInvocation","src":"960:9:95"}],"name":"cancel","nameLocation":"898:6:95","nodeType":"FunctionDefinition","overrides":{"id":27514,"nodeType":"OverrideSpecifier","overrides":[],"src":"942:8:95"},"parameters":{"id":27513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27512,"mutability":"mutable","name":"requestId","nameLocation":"913:9:95","nodeType":"VariableDeclaration","scope":27519,"src":"905:17:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27511,"name":"uint256","nodeType":"ElementaryTypeName","src":"905:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"904:19:95"},"returnParameters":{"id":27517,"nodeType":"ParameterList","parameters":[],"src":"975:0:95"},"scope":27560,"src":"889:220:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27541,"nodeType":"Block","src":"1341:203:95","statements":[{"assignments":[27527],"declarations":[{"constant":false,"id":27527,"mutability":"mutable","name":"output","nameLocation":"1410:6:95","nodeType":"VariableDeclaration","scope":27541,"src":"1397:19:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":27526,"name":"bytes","nodeType":"ElementaryTypeName","src":"1397:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":27535,"initialValue":{"arguments":[{"arguments":[{"id":27532,"name":"isLossEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27523,"src":"1435:11:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":27531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1430:4:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":27530,"name":"bool","nodeType":"ElementaryTypeName","src":"1430:4:95","typeDescriptions":{}}},"id":27533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1430:17:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27528,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"1419:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1419:10:95","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":27534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1419:29:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1397:51:95"},{"expression":{"arguments":[{"id":27537,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27521,"src":"1518:9:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27538,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27527,"src":"1529:6:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27536,"name":"_respond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"1509:8:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory)"}},"id":27539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1509:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27540,"nodeType":"ExpressionStatement","src":"1509:27:95"}]},"functionSelector":"a9c577c5","id":27542,"implemented":true,"kind":"function","modifiers":[],"name":"respond","nameLocation":"1274:7:95","nodeType":"FunctionDefinition","parameters":{"id":27524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27521,"mutability":"mutable","name":"requestId","nameLocation":"1290:9:95","nodeType":"VariableDeclaration","scope":27542,"src":"1282:17:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27520,"name":"uint256","nodeType":"ElementaryTypeName","src":"1282:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27523,"mutability":"mutable","name":"isLossEvent","nameLocation":"1306:11:95","nodeType":"VariableDeclaration","scope":27542,"src":"1301:16:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27522,"name":"bool","nodeType":"ElementaryTypeName","src":"1301:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1281:37:95"},"returnParameters":{"id":27525,"nodeType":"ParameterList","parameters":[],"src":"1341:0:95"},"scope":27560,"src":"1265:279:95","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":27558,"nodeType":"Block","src":"1787:51:95","statements":[{"expression":{"id":27556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27549,"name":"isLossEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27547,"src":"1798:11:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27550,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27544,"src":"1813:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":27551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1823:1:95","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1813:11:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":27553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1828:1:95","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1813:16:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":27555,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1812:18:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1798:32:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27557,"nodeType":"ExpressionStatement","src":"1798:32:95"}]},"id":27559,"implemented":true,"kind":"function","modifiers":[],"name":"_oracleCalculation","nameLocation":"1715:18:95","nodeType":"FunctionDefinition","parameters":{"id":27545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27544,"mutability":"mutable","name":"counter","nameLocation":"1742:7:95","nodeType":"VariableDeclaration","scope":27559,"src":"1734:15:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27543,"name":"uint256","nodeType":"ElementaryTypeName","src":"1734:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1733:17:95"},"returnParameters":{"id":27548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27547,"mutability":"mutable","name":"isLossEvent","nameLocation":"1774:11:95","nodeType":"VariableDeclaration","scope":27559,"src":"1769:16:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27546,"name":"bool","nodeType":"ElementaryTypeName","src":"1769:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1768:18:95"},"scope":27560,"src":"1706:132:95","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":27561,"src":"135:1710:95"}],"src":"40:1805:95"},"id":95},"contracts/test/TestProduct.sol":{"ast":{"absolutePath":"contracts/test/TestProduct.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"ERC20":[8753],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC20Metadata":[8856],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Product":[4042],"TestProduct":[28333]},"id":28334,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":27562,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:96"},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":27563,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28334,"sourceUnit":5434,"src":"66:63:96","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","file":"@etherisc/gif-interface/contracts/services/IProductService.sol","id":27564,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28334,"sourceUnit":6665,"src":"131:72:96","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","id":27565,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28334,"sourceUnit":6510,"src":"205:73:96","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Product.sol","file":"@etherisc/gif-interface/contracts/components/Product.sol","id":27566,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28334,"sourceUnit":4043,"src":"280:66:96","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":27567,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28334,"sourceUnit":8754,"src":"350:55:96","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":27568,"name":"Product","nodeType":"IdentifierPath","referencedDeclaration":4042,"src":"439:7:96"},"id":27569,"nodeType":"InheritanceSpecifier","src":"439:7:96"}],"contractDependencies":[2884,2988,3079,4042,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":28333,"linearizedBaseContracts":[28333,4042,2884,7481,10518,5073,3079,2988],"name":"TestProduct","nameLocation":"418:11:96","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"09128d83","id":27572,"mutability":"constant","name":"POLICY_FLOW","nameLocation":"480:11:96","nodeType":"VariableDeclaration","scope":28333,"src":"456:57:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27570,"name":"bytes32","nodeType":"ElementaryTypeName","src":"456:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6c69637944656661756c74466c6f77","id":27571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"494:19:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c6194c52a3447410e4616772f780a88c4ac5f0b731d2fc7e7979c603182714e","typeString":"literal_string \"PolicyDefaultFlow\""},"value":"PolicyDefaultFlow"},"visibility":"public"},{"constant":true,"functionSelector":"232d346a","id":27575,"mutability":"constant","name":"ORACLE_CALLBACK_METHOD_NAME","nameLocation":"543:27:96","nodeType":"VariableDeclaration","scope":28333,"src":"520:69:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27573,"name":"string","nodeType":"ElementaryTypeName","src":"520:6:96","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6f7261636c6543616c6c6261636b","id":27574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"573:16:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_2aafc7d392265772ce577bc392adfed2dc64b60acfcc2d5e2ce66fbfe088b79b","typeString":"literal_string \"oracleCallback\""},"value":"oracleCallback"},"visibility":"public"},{"constant":false,"id":27577,"mutability":"mutable","name":"_capitalOwner","nameLocation":"614:13:96","nodeType":"VariableDeclaration","scope":28333,"src":"598:29:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27576,"name":"address","nodeType":"ElementaryTypeName","src":"598:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":27579,"mutability":"mutable","name":"_testOracleId","nameLocation":"650:13:96","nodeType":"VariableDeclaration","scope":28333,"src":"634:29:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27578,"name":"uint256","nodeType":"ElementaryTypeName","src":"634:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":27581,"mutability":"mutable","name":"_testRiskpoolId","nameLocation":"686:15:96","nodeType":"VariableDeclaration","scope":28333,"src":"670:31:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27580,"name":"uint256","nodeType":"ElementaryTypeName","src":"670:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":27584,"mutability":"mutable","name":"_applications","nameLocation":"729:13:96","nodeType":"VariableDeclaration","scope":28333,"src":"710:32:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":27582,"name":"bytes32","nodeType":"ElementaryTypeName","src":"710:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27583,"nodeType":"ArrayTypeName","src":"710:10:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"constant":false,"id":27587,"mutability":"mutable","name":"_policies","nameLocation":"768:9:96","nodeType":"VariableDeclaration","scope":28333,"src":"749:28:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":27585,"name":"bytes32","nodeType":"ElementaryTypeName","src":"749:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27586,"nodeType":"ArrayTypeName","src":"749:10:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"constant":false,"id":27589,"mutability":"mutable","name":"_claims","nameLocation":"800:7:96","nodeType":"VariableDeclaration","scope":28333,"src":"784:23:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27588,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":27593,"mutability":"mutable","name":"_policyIdToClaimId","nameLocation":"852:18:96","nodeType":"VariableDeclaration","scope":28333,"src":"816:54:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":27592,"keyType":{"id":27590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"824:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"816:27:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":27591,"name":"uint256","nodeType":"ElementaryTypeName","src":"835:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":27597,"mutability":"mutable","name":"_policyIdToPayoutId","nameLocation":"913:19:96","nodeType":"VariableDeclaration","scope":28333,"src":"877:55:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":27596,"keyType":{"id":27594,"name":"bytes32","nodeType":"ElementaryTypeName","src":"885:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"877:27:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":27595,"name":"uint256","nodeType":"ElementaryTypeName","src":"896:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"anonymous":false,"id":27603,"name":"LogTestProductFundingReceived","nameLocation":"947:29:96","nodeType":"EventDefinition","parameters":{"id":27602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27599,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"985:6:96","nodeType":"VariableDeclaration","scope":27603,"src":"977:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27598,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27601,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1001:6:96","nodeType":"VariableDeclaration","scope":27603,"src":"993:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27600,"name":"uint256","nodeType":"ElementaryTypeName","src":"993:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"976:32:96"},"src":"941:68:96"},{"anonymous":false,"id":27611,"name":"LogTestOracleCallbackReceived","nameLocation":"1021:29:96","nodeType":"EventDefinition","parameters":{"id":27610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27605,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"1059:9:96","nodeType":"VariableDeclaration","scope":27611,"src":"1051:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27604,"name":"uint256","nodeType":"ElementaryTypeName","src":"1051:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27607,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"1078:8:96","nodeType":"VariableDeclaration","scope":27611,"src":"1070:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1070:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27609,"indexed":false,"mutability":"mutable","name":"response","nameLocation":"1094:8:96","nodeType":"VariableDeclaration","scope":27611,"src":"1088:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":27608,"name":"bytes","nodeType":"ElementaryTypeName","src":"1088:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1050:53:96"},"src":"1015:89:96"},{"body":{"id":27655,"nodeType":"Block","src":"1404:200:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":27639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27634,"name":"tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27615,"src":"1423:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":27637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1447:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":27636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1439:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":27635,"name":"address","nodeType":"ElementaryTypeName","src":"1439:7:96","typeDescriptions":{}}},"id":27638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1439:10:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1423:26:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a54492d323a544f4b454e5f414444524553535f5a45524f","id":27640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1451:31:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_6003834a90355bc6c34bf2f1e5e7831d67694839f4cff894321a4e1852368d7b","typeString":"literal_string \"ERROR:TI-2:TOKEN_ADDRESS_ZERO\""},"value":"ERROR:TI-2:TOKEN_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6003834a90355bc6c34bf2f1e5e7831d67694839f4cff894321a4e1852368d7b","typeString":"literal_string \"ERROR:TI-2:TOKEN_ADDRESS_ZERO\""}],"id":27633,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1415:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":27641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1415:68:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27642,"nodeType":"ExpressionStatement","src":"1415:68:96"},{"expression":{"id":27645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27643,"name":"_capitalOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27577,"src":"1494:13:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27644,"name":"capitalOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27617,"src":"1510:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1494:28:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":27646,"nodeType":"ExpressionStatement","src":"1494:28:96"},{"expression":{"id":27649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27647,"name":"_testOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27579,"src":"1533:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27648,"name":"oracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27619,"src":"1549:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1533:24:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27650,"nodeType":"ExpressionStatement","src":"1533:24:96"},{"expression":{"id":27653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27651,"name":"_testRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27581,"src":"1568:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27652,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27621,"src":"1586:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1568:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27654,"nodeType":"ExpressionStatement","src":"1568:28:96"}]},"id":27656,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":27626,"name":"productName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27613,"src":"1330:11:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27627,"name":"tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27615,"src":"1343:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27628,"name":"POLICY_FLOW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27572,"src":"1357:11:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27629,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27621,"src":"1370:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27630,"name":"registryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27623,"src":"1382:15:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":27631,"modifierName":{"id":27625,"name":"Product","nodeType":"IdentifierPath","referencedDeclaration":4042,"src":"1322:7:96"},"nodeType":"ModifierInvocation","src":"1322:76:96"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":27624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27613,"mutability":"mutable","name":"productName","nameLocation":"1142:11:96","nodeType":"VariableDeclaration","scope":27656,"src":"1134:19:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1134:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27615,"mutability":"mutable","name":"tokenAddress","nameLocation":"1172:12:96","nodeType":"VariableDeclaration","scope":27656,"src":"1164:20:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27614,"name":"address","nodeType":"ElementaryTypeName","src":"1164:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27617,"mutability":"mutable","name":"capitalOwner","nameLocation":"1203:12:96","nodeType":"VariableDeclaration","scope":27656,"src":"1195:20:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27616,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27619,"mutability":"mutable","name":"oracleId","nameLocation":"1234:8:96","nodeType":"VariableDeclaration","scope":27656,"src":"1226:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27618,"name":"uint256","nodeType":"ElementaryTypeName","src":"1226:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27621,"mutability":"mutable","name":"riskpoolId","nameLocation":"1261:10:96","nodeType":"VariableDeclaration","scope":27656,"src":"1253:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27620,"name":"uint256","nodeType":"ElementaryTypeName","src":"1253:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27623,"mutability":"mutable","name":"registryAddress","nameLocation":"1290:15:96","nodeType":"VariableDeclaration","scope":27656,"src":"1282:23:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27622,"name":"address","nodeType":"ElementaryTypeName","src":"1282:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1123:189:96"},"returnParameters":{"id":27632,"nodeType":"ParameterList","parameters":[],"src":"1404:0:96"},"scope":28333,"src":"1112:492:96","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":27708,"nodeType":"Block","src":"1855:407:96","statements":[{"assignments":[27670],"declarations":[{"constant":false,"id":27670,"mutability":"mutable","name":"policyHolder","nameLocation":"1882:12:96","nodeType":"VariableDeclaration","scope":27708,"src":"1866:28:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":27669,"name":"address","nodeType":"ElementaryTypeName","src":"1866:15:96","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":27676,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":27673,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1905:10:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":27674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1905:12:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1897:8:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":27671,"name":"address","nodeType":"ElementaryTypeName","src":"1897:8:96","stateMutability":"payable","typeDescriptions":{}}},"id":27675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1897:21:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"1866:52:96"},{"expression":{"id":27685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27677,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27667,"src":"1931:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27679,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27670,"src":"1973:12:96","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":27680,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27658,"src":"2000:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27681,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27660,"src":"2023:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27682,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27662,"src":"2048:8:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":27683,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27664,"src":"2071:15:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":27678,"name":"_newApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"1943:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) returns (bytes32)"}},"id":27684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1943:144:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1931:156:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27686,"nodeType":"ExpressionStatement","src":"1931:156:96"},{"expression":{"arguments":[{"id":27690,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27667,"src":"2119:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27687,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27584,"src":"2100:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2100:18:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2100:29:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27692,"nodeType":"ExpressionStatement","src":"2100:29:96"},{"assignments":[27694],"declarations":[{"constant":false,"id":27694,"mutability":"mutable","name":"success","nameLocation":"2147:7:96","nodeType":"VariableDeclaration","scope":27708,"src":"2142:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27693,"name":"bool","nodeType":"ElementaryTypeName","src":"2142:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27698,"initialValue":{"arguments":[{"id":27696,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27667,"src":"2169:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27695,"name":"_underwrite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"2157:11:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":27697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2157:22:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2142:37:96"},{"condition":{"id":27699,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27694,"src":"2194:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27707,"nodeType":"IfStatement","src":"2190:65:96","trueBody":{"id":27706,"nodeType":"Block","src":"2203:52:96","statements":[{"expression":{"arguments":[{"id":27703,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27667,"src":"2233:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27700,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27587,"src":"2218:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2218:14:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2218:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27705,"nodeType":"ExpressionStatement","src":"2218:25:96"}]}}]},"functionSelector":"e6f95edd","id":27709,"implemented":true,"kind":"function","modifiers":[],"name":"applyForPolicy","nameLocation":"1621:14:96","nodeType":"FunctionDefinition","parameters":{"id":27665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27658,"mutability":"mutable","name":"premium","nameLocation":"1654:7:96","nodeType":"VariableDeclaration","scope":27709,"src":"1646:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27657,"name":"uint256","nodeType":"ElementaryTypeName","src":"1646:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27660,"mutability":"mutable","name":"sumInsured","nameLocation":"1681:10:96","nodeType":"VariableDeclaration","scope":27709,"src":"1673:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27659,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27662,"mutability":"mutable","name":"metaData","nameLocation":"1717:8:96","nodeType":"VariableDeclaration","scope":27709,"src":"1702:23:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27661,"name":"bytes","nodeType":"ElementaryTypeName","src":"1702:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":27664,"mutability":"mutable","name":"applicationData","nameLocation":"1751:15:96","nodeType":"VariableDeclaration","scope":27709,"src":"1736:30:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27663,"name":"bytes","nodeType":"ElementaryTypeName","src":"1736:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1635:138:96"},"returnParameters":{"id":27668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27667,"mutability":"mutable","name":"processId","nameLocation":"1838:9:96","nodeType":"VariableDeclaration","scope":27709,"src":"1830:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27666,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1830:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1829:19:96"},"scope":28333,"src":"1612:650:96","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":27755,"nodeType":"Block","src":"2552:342:96","statements":[{"expression":{"id":27732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27724,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27722,"src":"2563:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27726,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27711,"src":"2605:12:96","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":27727,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27713,"src":"2632:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27728,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27715,"src":"2655:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27729,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27717,"src":"2680:8:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":27730,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27719,"src":"2703:15:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":27725,"name":"_newApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"2575:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) returns (bytes32)"}},"id":27731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2575:144:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2563:156:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27733,"nodeType":"ExpressionStatement","src":"2563:156:96"},{"expression":{"arguments":[{"id":27737,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27722,"src":"2751:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27734,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27584,"src":"2732:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2732:18:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2732:29:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27739,"nodeType":"ExpressionStatement","src":"2732:29:96"},{"assignments":[27741],"declarations":[{"constant":false,"id":27741,"mutability":"mutable","name":"success","nameLocation":"2779:7:96","nodeType":"VariableDeclaration","scope":27755,"src":"2774:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27740,"name":"bool","nodeType":"ElementaryTypeName","src":"2774:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27745,"initialValue":{"arguments":[{"id":27743,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27722,"src":"2801:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27742,"name":"_underwrite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"2789:11:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":27744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2789:22:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2774:37:96"},{"condition":{"id":27746,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27741,"src":"2826:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27754,"nodeType":"IfStatement","src":"2822:65:96","trueBody":{"id":27753,"nodeType":"Block","src":"2835:52:96","statements":[{"expression":{"arguments":[{"id":27750,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27722,"src":"2865:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27747,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27587,"src":"2850:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2850:14:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2850:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27752,"nodeType":"ExpressionStatement","src":"2850:25:96"}]}}]},"functionSelector":"3dcabeab","id":27756,"implemented":true,"kind":"function","modifiers":[],"name":"applyForPolicy","nameLocation":"2279:14:96","nodeType":"FunctionDefinition","parameters":{"id":27720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27711,"mutability":"mutable","name":"policyHolder","nameLocation":"2320:12:96","nodeType":"VariableDeclaration","scope":27756,"src":"2304:28:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":27710,"name":"address","nodeType":"ElementaryTypeName","src":"2304:15:96","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":27713,"mutability":"mutable","name":"premium","nameLocation":"2351:7:96","nodeType":"VariableDeclaration","scope":27756,"src":"2343:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27712,"name":"uint256","nodeType":"ElementaryTypeName","src":"2343:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27715,"mutability":"mutable","name":"sumInsured","nameLocation":"2378:10:96","nodeType":"VariableDeclaration","scope":27756,"src":"2370:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27714,"name":"uint256","nodeType":"ElementaryTypeName","src":"2370:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27717,"mutability":"mutable","name":"metaData","nameLocation":"2414:8:96","nodeType":"VariableDeclaration","scope":27756,"src":"2399:23:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27716,"name":"bytes","nodeType":"ElementaryTypeName","src":"2399:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":27719,"mutability":"mutable","name":"applicationData","nameLocation":"2448:15:96","nodeType":"VariableDeclaration","scope":27756,"src":"2433:30:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27718,"name":"bytes","nodeType":"ElementaryTypeName","src":"2433:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2293:177:96"},"returnParameters":{"id":27723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27722,"mutability":"mutable","name":"processId","nameLocation":"2535:9:96","nodeType":"VariableDeclaration","scope":27756,"src":"2527:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2527:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2526:19:96"},"scope":28333,"src":"2270:624:96","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":27793,"nodeType":"Block","src":"3146:282:96","statements":[{"assignments":[27770],"declarations":[{"constant":false,"id":27770,"mutability":"mutable","name":"policyHolder","nameLocation":"3173:12:96","nodeType":"VariableDeclaration","scope":27793,"src":"3157:28:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":27769,"name":"address","nodeType":"ElementaryTypeName","src":"3157:15:96","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":27776,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":27773,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3196:10:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":27774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3196:12:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3188:8:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":27771,"name":"address","nodeType":"ElementaryTypeName","src":"3188:8:96","stateMutability":"payable","typeDescriptions":{}}},"id":27775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3188:21:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"3157:52:96"},{"expression":{"id":27785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27777,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27767,"src":"3222:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27779,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27770,"src":"3264:12:96","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":27780,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27758,"src":"3291:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27781,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27760,"src":"3314:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27782,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27762,"src":"3339:8:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":27783,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27764,"src":"3362:15:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":27778,"name":"_newApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"3234:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) returns (bytes32)"}},"id":27784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3234:144:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3222:156:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27786,"nodeType":"ExpressionStatement","src":"3222:156:96"},{"expression":{"arguments":[{"id":27790,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27767,"src":"3410:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27787,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27584,"src":"3391:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"3391:18:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3391:29:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27792,"nodeType":"ExpressionStatement","src":"3391:29:96"}]},"functionSelector":"03f0ac1a","id":27794,"implemented":true,"kind":"function","modifiers":[],"name":"newAppliation","nameLocation":"2913:13:96","nodeType":"FunctionDefinition","parameters":{"id":27765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27758,"mutability":"mutable","name":"premium","nameLocation":"2945:7:96","nodeType":"VariableDeclaration","scope":27794,"src":"2937:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27757,"name":"uint256","nodeType":"ElementaryTypeName","src":"2937:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27760,"mutability":"mutable","name":"sumInsured","nameLocation":"2972:10:96","nodeType":"VariableDeclaration","scope":27794,"src":"2964:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27759,"name":"uint256","nodeType":"ElementaryTypeName","src":"2964:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27762,"mutability":"mutable","name":"metaData","nameLocation":"3008:8:96","nodeType":"VariableDeclaration","scope":27794,"src":"2993:23:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27761,"name":"bytes","nodeType":"ElementaryTypeName","src":"2993:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":27764,"mutability":"mutable","name":"applicationData","nameLocation":"3042:15:96","nodeType":"VariableDeclaration","scope":27794,"src":"3027:30:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27763,"name":"bytes","nodeType":"ElementaryTypeName","src":"3027:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2926:138:96"},"returnParameters":{"id":27768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27767,"mutability":"mutable","name":"processId","nameLocation":"3129:9:96","nodeType":"VariableDeclaration","scope":27794,"src":"3121:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3121:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3120:19:96"},"scope":28333,"src":"2904:524:96","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":27806,"nodeType":"Block","src":"3510:38:96","statements":[{"expression":{"arguments":[{"id":27803,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27796,"src":"3530:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27802,"name":"_revoke","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"3522:7:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":27804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3522:18:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27805,"nodeType":"ExpressionStatement","src":"3522:18:96"}]},"functionSelector":"b75c7dc6","id":27807,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":27799,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27796,"src":"3499:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":27800,"modifierName":{"id":27798,"name":"onlyPolicyHolder","nodeType":"IdentifierPath","referencedDeclaration":3459,"src":"3482:16:96"},"nodeType":"ModifierInvocation","src":"3482:27:96"}],"name":"revoke","nameLocation":"3447:6:96","nodeType":"FunctionDefinition","parameters":{"id":27797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27796,"mutability":"mutable","name":"processId","nameLocation":"3462:9:96","nodeType":"VariableDeclaration","scope":27807,"src":"3454:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3454:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3453:19:96"},"returnParameters":{"id":27801,"nodeType":"ParameterList","parameters":[],"src":"3510:0:96"},"scope":28333,"src":"3438:110:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27818,"nodeType":"Block","src":"3611:39:96","statements":[{"expression":{"arguments":[{"id":27815,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27809,"src":"3632:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27814,"name":"_decline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3752,"src":"3623:8:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":27816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3623:19:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27817,"nodeType":"ExpressionStatement","src":"3623:19:96"}]},"functionSelector":"8cc7d3d1","id":27819,"implemented":true,"kind":"function","modifiers":[{"id":27812,"modifierName":{"id":27811,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"3601:9:96"},"nodeType":"ModifierInvocation","src":"3601:9:96"}],"name":"decline","nameLocation":"3565:7:96","nodeType":"FunctionDefinition","parameters":{"id":27810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27809,"mutability":"mutable","name":"processId","nameLocation":"3581:9:96","nodeType":"VariableDeclaration","scope":27819,"src":"3573:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27808,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3573:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3572:19:96"},"returnParameters":{"id":27813,"nodeType":"ParameterList","parameters":[],"src":"3611:0:96"},"scope":28333,"src":"3556:94:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27841,"nodeType":"Block","src":"3716:132:96","statements":[{"assignments":[27827],"declarations":[{"constant":false,"id":27827,"mutability":"mutable","name":"success","nameLocation":"3733:7:96","nodeType":"VariableDeclaration","scope":27841,"src":"3728:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27826,"name":"bool","nodeType":"ElementaryTypeName","src":"3728:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27831,"initialValue":{"arguments":[{"id":27829,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27821,"src":"3755:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27828,"name":"_underwrite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"3743:11:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":27830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3743:22:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3728:37:96"},{"condition":{"id":27832,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27827,"src":"3780:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27840,"nodeType":"IfStatement","src":"3776:65:96","trueBody":{"id":27839,"nodeType":"Block","src":"3789:52:96","statements":[{"expression":{"arguments":[{"id":27836,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27821,"src":"3819:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27833,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27587,"src":"3804:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"3804:14:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3804:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27838,"nodeType":"ExpressionStatement","src":"3804:25:96"}]}}]},"functionSelector":"1b07b17f","id":27842,"implemented":true,"kind":"function","modifiers":[{"id":27824,"modifierName":{"id":27823,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"3706:9:96"},"nodeType":"ModifierInvocation","src":"3706:9:96"}],"name":"underwrite","nameLocation":"3667:10:96","nodeType":"FunctionDefinition","parameters":{"id":27822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27821,"mutability":"mutable","name":"processId","nameLocation":"3686:9:96","nodeType":"VariableDeclaration","scope":27842,"src":"3678:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27820,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3678:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3677:19:96"},"returnParameters":{"id":27825,"nodeType":"ParameterList","parameters":[],"src":"3716:0:96"},"scope":28333,"src":"3658:190:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27864,"nodeType":"Block","src":"3996:73:96","statements":[{"expression":{"id":27862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":27855,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27849,"src":"4008:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27856,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27851,"src":"4017:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27857,"name":"netPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27853,"src":"4022:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27858,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4007:26:96","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27860,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27844,"src":"4052:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27859,"name":"_collectPremium","nodeType":"Identifier","overloadedDeclarations":[3670,3695],"referencedDeclaration":3670,"src":"4036:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32) returns (bool,uint256,uint256)"}},"id":27861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4036:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"4007:54:96","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27863,"nodeType":"ExpressionStatement","src":"4007:54:96"}]},"functionSelector":"b9ea8d66","id":27865,"implemented":true,"kind":"function","modifiers":[{"id":27847,"modifierName":{"id":27846,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"3917:9:96"},"nodeType":"ModifierInvocation","src":"3917:9:96"}],"name":"collectPremium","nameLocation":"3865:14:96","nodeType":"FunctionDefinition","parameters":{"id":27845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27844,"mutability":"mutable","name":"policyId","nameLocation":"3888:8:96","nodeType":"VariableDeclaration","scope":27865,"src":"3880:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3880:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3879:18:96"},"returnParameters":{"id":27854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27849,"mutability":"mutable","name":"success","nameLocation":"3949:7:96","nodeType":"VariableDeclaration","scope":27865,"src":"3944:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27848,"name":"bool","nodeType":"ElementaryTypeName","src":"3944:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27851,"mutability":"mutable","name":"fee","nameLocation":"3966:3:96","nodeType":"VariableDeclaration","scope":27865,"src":"3958:11:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27850,"name":"uint256","nodeType":"ElementaryTypeName","src":"3958:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27853,"mutability":"mutable","name":"netPremium","nameLocation":"3979:10:96","nodeType":"VariableDeclaration","scope":27865,"src":"3971:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27852,"name":"uint256","nodeType":"ElementaryTypeName","src":"3971:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3943:47:96"},"scope":28333,"src":"3856:213:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27890,"nodeType":"Block","src":"4233:81:96","statements":[{"expression":{"id":27888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":27880,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27874,"src":"4245:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27881,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27876,"src":"4254:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27882,"name":"netPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27878,"src":"4259:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27883,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4244:26:96","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27885,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27867,"src":"4289:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27886,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27869,"src":"4299:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27884,"name":"_collectPremium","nodeType":"Identifier","overloadedDeclarations":[3670,3695],"referencedDeclaration":3695,"src":"4273:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (bool,uint256,uint256)"}},"id":27887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4273:33:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"4244:62:96","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27889,"nodeType":"ExpressionStatement","src":"4244:62:96"}]},"functionSelector":"e3ebdea5","id":27891,"implemented":true,"kind":"function","modifiers":[{"id":27872,"modifierName":{"id":27871,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"4154:9:96"},"nodeType":"ModifierInvocation","src":"4154:9:96"}],"name":"collectPremium","nameLocation":"4086:14:96","nodeType":"FunctionDefinition","parameters":{"id":27870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27867,"mutability":"mutable","name":"policyId","nameLocation":"4109:8:96","nodeType":"VariableDeclaration","scope":27891,"src":"4101:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27866,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4101:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27869,"mutability":"mutable","name":"amount","nameLocation":"4127:6:96","nodeType":"VariableDeclaration","scope":27891,"src":"4119:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27868,"name":"uint256","nodeType":"ElementaryTypeName","src":"4119:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4100:34:96"},"returnParameters":{"id":27879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27874,"mutability":"mutable","name":"success","nameLocation":"4186:7:96","nodeType":"VariableDeclaration","scope":27891,"src":"4181:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27873,"name":"bool","nodeType":"ElementaryTypeName","src":"4181:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27876,"mutability":"mutable","name":"fee","nameLocation":"4203:3:96","nodeType":"VariableDeclaration","scope":27891,"src":"4195:11:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27875,"name":"uint256","nodeType":"ElementaryTypeName","src":"4195:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27878,"mutability":"mutable","name":"netPremium","nameLocation":"4216:10:96","nodeType":"VariableDeclaration","scope":27891,"src":"4208:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27877,"name":"uint256","nodeType":"ElementaryTypeName","src":"4208:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4180:47:96"},"scope":28333,"src":"4077:237:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27906,"nodeType":"Block","src":"4488:95:96","statements":[{"expression":{"arguments":[{"id":27901,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27893,"src":"4524:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27902,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27895,"src":"4535:21:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27903,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27897,"src":"4558:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27900,"name":"_adjustPremiumSumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3713,"src":"4499:24:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":27904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4499:76:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27905,"nodeType":"ExpressionStatement","src":"4499:76:96"}]},"functionSelector":"30a73da5","id":27907,"implemented":true,"kind":"function","modifiers":[],"name":"adjustPremiumSumInsured","nameLocation":"4331:23:96","nodeType":"FunctionDefinition","parameters":{"id":27898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27893,"mutability":"mutable","name":"processId","nameLocation":"4373:9:96","nodeType":"VariableDeclaration","scope":27907,"src":"4365:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4365:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27895,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"4401:21:96","nodeType":"VariableDeclaration","scope":27907,"src":"4393:29:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27894,"name":"uint256","nodeType":"ElementaryTypeName","src":"4393:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27897,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"4441:16:96","nodeType":"VariableDeclaration","scope":27907,"src":"4433:24:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27896,"name":"uint256","nodeType":"ElementaryTypeName","src":"4433:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4354:110:96"},"returnParameters":{"id":27899,"nodeType":"ParameterList","parameters":[],"src":"4488:0:96"},"scope":28333,"src":"4322:261:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27918,"nodeType":"Block","src":"4644:36:96","statements":[{"expression":{"arguments":[{"id":27915,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27909,"src":"4663:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27914,"name":"_expire","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3764,"src":"4655:7:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":27916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4655:17:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27917,"nodeType":"ExpressionStatement","src":"4655:17:96"}]},"functionSelector":"c6441798","id":27919,"implemented":true,"kind":"function","modifiers":[{"id":27912,"modifierName":{"id":27911,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"4634:9:96"},"nodeType":"ModifierInvocation","src":"4634:9:96"}],"name":"expire","nameLocation":"4600:6:96","nodeType":"FunctionDefinition","parameters":{"id":27910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27909,"mutability":"mutable","name":"policyId","nameLocation":"4615:8:96","nodeType":"VariableDeclaration","scope":27919,"src":"4607:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4607:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4606:18:96"},"returnParameters":{"id":27913,"nodeType":"ParameterList","parameters":[],"src":"4644:0:96"},"scope":28333,"src":"4591:89:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27930,"nodeType":"Block","src":"4740:35:96","statements":[{"expression":{"arguments":[{"id":27927,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27921,"src":"4758:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27926,"name":"_close","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"4751:6:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":27928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4751:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27929,"nodeType":"ExpressionStatement","src":"4751:16:96"}]},"functionSelector":"39c79e0c","id":27931,"implemented":true,"kind":"function","modifiers":[{"id":27924,"modifierName":{"id":27923,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"4730:9:96"},"nodeType":"ModifierInvocation","src":"4730:9:96"}],"name":"close","nameLocation":"4697:5:96","nodeType":"FunctionDefinition","parameters":{"id":27922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27921,"mutability":"mutable","name":"policyId","nameLocation":"4711:8:96","nodeType":"VariableDeclaration","scope":27931,"src":"4703:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4703:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4702:18:96"},"returnParameters":{"id":27925,"nodeType":"ParameterList","parameters":[],"src":"4740:0:96"},"scope":28333,"src":"4688:87:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27979,"nodeType":"Block","src":"4937:670:96","statements":[{"expression":{"id":27944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5124:9:96","subExpression":{"id":27943,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"5124:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27945,"nodeType":"ExpressionStatement","src":"5124:9:96"},{"expression":{"id":27952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27946,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27941,"src":"5184:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27948,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27933,"src":"5204:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27949,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27935,"src":"5214:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":27950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5227:2:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":27947,"name":"_newClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"5194:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) returns (uint256)"}},"id":27951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5194:36:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5184:46:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27953,"nodeType":"ExpressionStatement","src":"5184:46:96"},{"expression":{"id":27958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":27954,"name":"_policyIdToClaimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27593,"src":"5241:18:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":27956,"indexExpression":{"id":27955,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27933,"src":"5260:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5241:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27957,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27941,"src":"5272:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5241:38:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27959,"nodeType":"ExpressionStatement","src":"5241:38:96"},{"assignments":[27961],"declarations":[{"constant":false,"id":27961,"mutability":"mutable","name":"immediateResponse","nameLocation":"5354:17:96","nodeType":"VariableDeclaration","scope":27979,"src":"5349:22:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27960,"name":"bool","nodeType":"ElementaryTypeName","src":"5349:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27963,"initialValue":{"hexValue":"74727565","id":27962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5374:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"5349:29:96"},{"assignments":[27965],"declarations":[{"constant":false,"id":27965,"mutability":"mutable","name":"queryData","nameLocation":"5402:9:96","nodeType":"VariableDeclaration","scope":27979,"src":"5389:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":27964,"name":"bytes","nodeType":"ElementaryTypeName","src":"5389:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":27971,"initialValue":{"arguments":[{"id":27968,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"5425:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27969,"name":"immediateResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27961,"src":"5434:17:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27966,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"5414:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"5414:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":27970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5414:38:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5389:63:96"},{"expression":{"arguments":[{"id":27973,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27933,"src":"5486:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27974,"name":"queryData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27965,"src":"5509:9:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":27975,"name":"ORACLE_CALLBACK_METHOD_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27575,"src":"5533:27:96","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27976,"name":"_testOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27579,"src":"5575:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27972,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3919,"src":"5463:8:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,bytes memory,string memory,uint256) returns (uint256)"}},"id":27977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5463:136:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27978,"nodeType":"ExpressionStatement","src":"5463:136:96"}]},"functionSelector":"2b677841","id":27980,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":27938,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27933,"src":"4888:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":27939,"modifierName":{"id":27937,"name":"onlyPolicyHolder","nodeType":"IdentifierPath","referencedDeclaration":3459,"src":"4871:16:96"},"nodeType":"ModifierInvocation","src":"4871:26:96"}],"name":"submitClaim","nameLocation":"4792:11:96","nodeType":"FunctionDefinition","parameters":{"id":27936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27933,"mutability":"mutable","name":"policyId","nameLocation":"4812:8:96","nodeType":"VariableDeclaration","scope":27980,"src":"4804:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4804:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27935,"mutability":"mutable","name":"claimAmount","nameLocation":"4830:11:96","nodeType":"VariableDeclaration","scope":27980,"src":"4822:19:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27934,"name":"uint256","nodeType":"ElementaryTypeName","src":"4822:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4803:39:96"},"returnParameters":{"id":27942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27941,"mutability":"mutable","name":"claimId","nameLocation":"4923:7:96","nodeType":"VariableDeclaration","scope":27980,"src":"4915:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27940,"name":"uint256","nodeType":"ElementaryTypeName","src":"4915:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4914:17:96"},"scope":28333,"src":"4783:824:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28009,"nodeType":"Block","src":"5777:350:96","statements":[{"expression":{"id":27993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5964:9:96","subExpression":{"id":27992,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"5964:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27994,"nodeType":"ExpressionStatement","src":"5964:9:96"},{"expression":{"id":28001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27995,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27990,"src":"6024:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27997,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27982,"src":"6044:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27998,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27984,"src":"6054:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":27999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6067:2:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":27996,"name":"_newClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"6034:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) returns (uint256)"}},"id":28000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6034:36:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6024:46:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28002,"nodeType":"ExpressionStatement","src":"6024:46:96"},{"expression":{"id":28007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28003,"name":"_policyIdToClaimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27593,"src":"6081:18:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28005,"indexExpression":{"id":28004,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27982,"src":"6100:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6081:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28006,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27990,"src":"6112:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6081:38:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28008,"nodeType":"ExpressionStatement","src":"6081:38:96"}]},"functionSelector":"79ed5209","id":28010,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":27987,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27982,"src":"5728:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":27988,"modifierName":{"id":27986,"name":"onlyPolicyHolder","nodeType":"IdentifierPath","referencedDeclaration":3459,"src":"5711:16:96"},"nodeType":"ModifierInvocation","src":"5711:26:96"}],"name":"submitClaimNoOracle","nameLocation":"5624:19:96","nodeType":"FunctionDefinition","parameters":{"id":27985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27982,"mutability":"mutable","name":"policyId","nameLocation":"5652:8:96","nodeType":"VariableDeclaration","scope":28010,"src":"5644:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5644:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27984,"mutability":"mutable","name":"claimAmount","nameLocation":"5670:11:96","nodeType":"VariableDeclaration","scope":28010,"src":"5662:19:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27983,"name":"uint256","nodeType":"ElementaryTypeName","src":"5662:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5643:39:96"},"returnParameters":{"id":27991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27990,"mutability":"mutable","name":"claimId","nameLocation":"5763:7:96","nodeType":"VariableDeclaration","scope":28010,"src":"5755:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27989,"name":"uint256","nodeType":"ElementaryTypeName","src":"5755:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5754:17:96"},"scope":28333,"src":"5615:512:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28062,"nodeType":"Block","src":"6332:683:96","statements":[{"expression":{"id":28025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6519:9:96","subExpression":{"id":28024,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"6519:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28026,"nodeType":"ExpressionStatement","src":"6519:9:96"},{"expression":{"id":28033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28027,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28020,"src":"6579:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":28029,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28012,"src":"6599:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28030,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28014,"src":"6609:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":28031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6622:2:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":28028,"name":"_newClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"6589:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) returns (uint256)"}},"id":28032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6589:36:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6579:46:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28034,"nodeType":"ExpressionStatement","src":"6579:46:96"},{"expression":{"id":28039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28035,"name":"_policyIdToClaimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27593,"src":"6636:18:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28037,"indexExpression":{"id":28036,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28012,"src":"6655:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6636:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28038,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28020,"src":"6667:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6636:38:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28040,"nodeType":"ExpressionStatement","src":"6636:38:96"},{"assignments":[28042],"declarations":[{"constant":false,"id":28042,"mutability":"mutable","name":"immediateResponse","nameLocation":"6749:17:96","nodeType":"VariableDeclaration","scope":28062,"src":"6744:22:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28041,"name":"bool","nodeType":"ElementaryTypeName","src":"6744:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":28044,"initialValue":{"hexValue":"66616c7365","id":28043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6769:5:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"6744:30:96"},{"assignments":[28046],"declarations":[{"constant":false,"id":28046,"mutability":"mutable","name":"queryData","nameLocation":"6798:9:96","nodeType":"VariableDeclaration","scope":28062,"src":"6785:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":28045,"name":"bytes","nodeType":"ElementaryTypeName","src":"6785:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":28052,"initialValue":{"arguments":[{"id":28049,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"6821:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28050,"name":"immediateResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28042,"src":"6830:17:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28047,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6810:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"6810:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":28051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6810:38:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6785:63:96"},{"expression":{"id":28060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28053,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28022,"src":"6859:9:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":28055,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28012,"src":"6894:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28056,"name":"queryData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28046,"src":"6917:9:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":28057,"name":"ORACLE_CALLBACK_METHOD_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27575,"src":"6941:27:96","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28058,"name":"_testOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27579,"src":"6983:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28054,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3919,"src":"6871:8:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,bytes memory,string memory,uint256) returns (uint256)"}},"id":28059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6871:136:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6859:148:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28061,"nodeType":"ExpressionStatement","src":"6859:148:96"}]},"functionSelector":"ec8b4a9a","id":28063,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":28017,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28012,"src":"6264:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":28018,"modifierName":{"id":28016,"name":"onlyPolicyHolder","nodeType":"IdentifierPath","referencedDeclaration":3459,"src":"6247:16:96"},"nodeType":"ModifierInvocation","src":"6247:26:96"}],"name":"submitClaimWithDeferredResponse","nameLocation":"6148:31:96","nodeType":"FunctionDefinition","parameters":{"id":28015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28012,"mutability":"mutable","name":"policyId","nameLocation":"6188:8:96","nodeType":"VariableDeclaration","scope":28063,"src":"6180:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28011,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6180:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28014,"mutability":"mutable","name":"claimAmount","nameLocation":"6206:11:96","nodeType":"VariableDeclaration","scope":28063,"src":"6198:19:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28013,"name":"uint256","nodeType":"ElementaryTypeName","src":"6198:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6179:39:96"},"returnParameters":{"id":28023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28020,"mutability":"mutable","name":"claimId","nameLocation":"6299:7:96","nodeType":"VariableDeclaration","scope":28063,"src":"6291:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28019,"name":"uint256","nodeType":"ElementaryTypeName","src":"6291:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28022,"mutability":"mutable","name":"requestId","nameLocation":"6316:9:96","nodeType":"VariableDeclaration","scope":28063,"src":"6308:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28021,"name":"uint256","nodeType":"ElementaryTypeName","src":"6308:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6290:36:96"},"scope":28333,"src":"6139:876:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28080,"nodeType":"Block","src":"7184:68:96","statements":[{"expression":{"arguments":[{"id":28075,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28065,"src":"7209:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28076,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28067,"src":"7219:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28077,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28069,"src":"7228:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28074,"name":"_confirmClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"7195:13:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":28078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7195:49:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28079,"nodeType":"ExpressionStatement","src":"7195:49:96"}]},"functionSelector":"4e02c63f","id":28081,"implemented":true,"kind":"function","modifiers":[{"id":28072,"modifierName":{"id":28071,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"7169:9:96"},"nodeType":"ModifierInvocation","src":"7169:9:96"}],"name":"confirmClaim","nameLocation":"7032:12:96","nodeType":"FunctionDefinition","parameters":{"id":28070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28065,"mutability":"mutable","name":"policyId","nameLocation":"7063:8:96","nodeType":"VariableDeclaration","scope":28081,"src":"7055:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28064,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7055:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28067,"mutability":"mutable","name":"claimId","nameLocation":"7091:7:96","nodeType":"VariableDeclaration","scope":28081,"src":"7083:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28066,"name":"uint256","nodeType":"ElementaryTypeName","src":"7083:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28069,"mutability":"mutable","name":"confirmedAmount","nameLocation":"7118:15:96","nodeType":"VariableDeclaration","scope":28081,"src":"7110:23:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28068,"name":"uint256","nodeType":"ElementaryTypeName","src":"7110:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7044:96:96"},"returnParameters":{"id":28073,"nodeType":"ParameterList","parameters":[],"src":"7184:0:96"},"scope":28333,"src":"7023:229:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28095,"nodeType":"Block","src":"7386:51:96","statements":[{"expression":{"arguments":[{"id":28091,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28083,"src":"7411:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28092,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28085,"src":"7421:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28090,"name":"_declineClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"7397:13:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":28093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7397:32:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28094,"nodeType":"ExpressionStatement","src":"7397:32:96"}]},"functionSelector":"4cda0de9","id":28096,"implemented":true,"kind":"function","modifiers":[{"id":28088,"modifierName":{"id":28087,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"7371:9:96"},"nodeType":"ModifierInvocation","src":"7371:9:96"}],"name":"declineClaim","nameLocation":"7269:12:96","nodeType":"FunctionDefinition","parameters":{"id":28086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28083,"mutability":"mutable","name":"policyId","nameLocation":"7300:8:96","nodeType":"VariableDeclaration","scope":28096,"src":"7292:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7292:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28085,"mutability":"mutable","name":"claimId","nameLocation":"7328:7:96","nodeType":"VariableDeclaration","scope":28096,"src":"7320:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28084,"name":"uint256","nodeType":"ElementaryTypeName","src":"7320:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7281:61:96"},"returnParameters":{"id":28089,"nodeType":"ParameterList","parameters":[],"src":"7386:0:96"},"scope":28333,"src":"7260:177:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28110,"nodeType":"Block","src":"7569:49:96","statements":[{"expression":{"arguments":[{"id":28106,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28098,"src":"7592:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28107,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28100,"src":"7602:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28105,"name":"_closeClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3845,"src":"7580:11:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":28108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7580:30:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28109,"nodeType":"ExpressionStatement","src":"7580:30:96"}]},"functionSelector":"7f29dba2","id":28111,"implemented":true,"kind":"function","modifiers":[{"id":28103,"modifierName":{"id":28102,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"7554:9:96"},"nodeType":"ModifierInvocation","src":"7554:9:96"}],"name":"closeClaim","nameLocation":"7454:10:96","nodeType":"FunctionDefinition","parameters":{"id":28101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28098,"mutability":"mutable","name":"policyId","nameLocation":"7483:8:96","nodeType":"VariableDeclaration","scope":28111,"src":"7475:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7475:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28100,"mutability":"mutable","name":"claimId","nameLocation":"7511:7:96","nodeType":"VariableDeclaration","scope":28111,"src":"7503:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28099,"name":"uint256","nodeType":"ElementaryTypeName","src":"7503:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7464:61:96"},"returnParameters":{"id":28104,"nodeType":"ParameterList","parameters":[],"src":"7569:0:96"},"scope":28333,"src":"7445:173:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28141,"nodeType":"Block","src":"7819:203:96","statements":[{"expression":{"id":28134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28124,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28122,"src":"7830:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":28126,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28113,"src":"7866:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28127,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28115,"src":"7890:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28128,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28117,"src":"7913:12:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":28131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7952:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":28129,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"7941:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"7941:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":28132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7941:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28125,"name":"_newPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"7841:10:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) returns (uint256)"}},"id":28133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7841:114:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7830:125:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28135,"nodeType":"ExpressionStatement","src":"7830:125:96"},{"expression":{"arguments":[{"id":28137,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28113,"src":"7995:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28138,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28122,"src":"8005:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28136,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"7980:14:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (uint256,uint256)"}},"id":28139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7980:34:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":28140,"nodeType":"ExpressionStatement","src":"7980:34:96"}]},"functionSelector":"4703dc8d","id":28142,"implemented":true,"kind":"function","modifiers":[{"id":28120,"modifierName":{"id":28119,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"7769:9:96"},"nodeType":"ModifierInvocation","src":"7769:9:96"}],"name":"createPayout","nameLocation":"7635:12:96","nodeType":"FunctionDefinition","parameters":{"id":28118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28113,"mutability":"mutable","name":"policyId","nameLocation":"7666:8:96","nodeType":"VariableDeclaration","scope":28142,"src":"7658:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7658:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28115,"mutability":"mutable","name":"claimId","nameLocation":"7694:7:96","nodeType":"VariableDeclaration","scope":28142,"src":"7686:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28114,"name":"uint256","nodeType":"ElementaryTypeName","src":"7686:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28117,"mutability":"mutable","name":"payoutAmount","nameLocation":"7721:12:96","nodeType":"VariableDeclaration","scope":28142,"src":"7713:20:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28116,"name":"uint256","nodeType":"ElementaryTypeName","src":"7713:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7647:93:96"},"returnParameters":{"id":28123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28122,"mutability":"mutable","name":"payoutId","nameLocation":"7804:8:96","nodeType":"VariableDeclaration","scope":28142,"src":"7796:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28121,"name":"uint256","nodeType":"ElementaryTypeName","src":"7796:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7795:18:96"},"scope":28333,"src":"7626:396:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28167,"nodeType":"Block","src":"8220:144:96","statements":[{"expression":{"id":28165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28155,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28153,"src":"8231:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":28157,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28144,"src":"8267:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28158,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28146,"src":"8291:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28159,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28148,"src":"8314:12:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":28162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8353:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":28160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"8342:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"8342:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":28163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8342:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28156,"name":"_newPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"8242:10:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) returns (uint256)"}},"id":28164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8242:114:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8231:125:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28166,"nodeType":"ExpressionStatement","src":"8231:125:96"}]},"functionSelector":"2b1994ba","id":28168,"implemented":true,"kind":"function","modifiers":[{"id":28151,"modifierName":{"id":28150,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"8170:9:96"},"nodeType":"ModifierInvocation","src":"8170:9:96"}],"name":"newPayout","nameLocation":"8039:9:96","nodeType":"FunctionDefinition","parameters":{"id":28149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28144,"mutability":"mutable","name":"policyId","nameLocation":"8067:8:96","nodeType":"VariableDeclaration","scope":28168,"src":"8059:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8059:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28146,"mutability":"mutable","name":"claimId","nameLocation":"8095:7:96","nodeType":"VariableDeclaration","scope":28168,"src":"8087:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28145,"name":"uint256","nodeType":"ElementaryTypeName","src":"8087:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28148,"mutability":"mutable","name":"payoutAmount","nameLocation":"8122:12:96","nodeType":"VariableDeclaration","scope":28168,"src":"8114:20:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28147,"name":"uint256","nodeType":"ElementaryTypeName","src":"8114:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8048:93:96"},"returnParameters":{"id":28154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28153,"mutability":"mutable","name":"payoutId","nameLocation":"8205:8:96","nodeType":"VariableDeclaration","scope":28168,"src":"8197:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28152,"name":"uint256","nodeType":"ElementaryTypeName","src":"8197:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8196:18:96"},"scope":28333,"src":"8030:334:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28182,"nodeType":"Block","src":"8500:53:96","statements":[{"expression":{"arguments":[{"id":28178,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28170,"src":"8526:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28179,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28172,"src":"8536:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28177,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"8511:14:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (uint256,uint256)"}},"id":28180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8511:34:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":28181,"nodeType":"ExpressionStatement","src":"8511:34:96"}]},"functionSelector":"fe64372b","id":28183,"implemented":true,"kind":"function","modifiers":[{"id":28175,"modifierName":{"id":28174,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"8485:9:96"},"nodeType":"ModifierInvocation","src":"8485:9:96"}],"name":"processPayout","nameLocation":"8381:13:96","nodeType":"FunctionDefinition","parameters":{"id":28173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28170,"mutability":"mutable","name":"policyId","nameLocation":"8413:8:96","nodeType":"VariableDeclaration","scope":28183,"src":"8405:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28169,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8405:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28172,"mutability":"mutable","name":"payoutId","nameLocation":"8441:8:96","nodeType":"VariableDeclaration","scope":28183,"src":"8433:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28171,"name":"uint256","nodeType":"ElementaryTypeName","src":"8433:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8394:62:96"},"returnParameters":{"id":28176,"nodeType":"ParameterList","parameters":[],"src":"8500:0:96"},"scope":28333,"src":"8372:181:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28281,"nodeType":"Block","src":"8730:1357:96","statements":[{"eventCall":{"arguments":[{"id":28195,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28185,"src":"8776:9:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28196,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"8787:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28197,"name":"responseData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28189,"src":"8797:12:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":28194,"name":"LogTestOracleCallbackReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27611,"src":"8746:29:96","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes32,bytes memory)"}},"id":28198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8746:64:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28199,"nodeType":"EmitStatement","src":"8741:69:96"},{"assignments":[28201],"declarations":[{"constant":false,"id":28201,"mutability":"mutable","name":"isLossEvent","nameLocation":"8866:11:96","nodeType":"VariableDeclaration","scope":28281,"src":"8861:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28200,"name":"bool","nodeType":"ElementaryTypeName","src":"8861:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":28209,"initialValue":{"arguments":[{"id":28204,"name":"responseData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28189,"src":"8892:12:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":28206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8907:4:96","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":28205,"name":"bool","nodeType":"ElementaryTypeName","src":"8907:4:96","typeDescriptions":{}}}],"id":28207,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8906:6:96","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":28202,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"8881:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"8881:10:96","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":28208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8881:32:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"8860:53:96"},{"assignments":[28211],"declarations":[{"constant":false,"id":28211,"mutability":"mutable","name":"claimId","nameLocation":"8932:7:96","nodeType":"VariableDeclaration","scope":28281,"src":"8924:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28210,"name":"uint256","nodeType":"ElementaryTypeName","src":"8924:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28215,"initialValue":{"baseExpression":{"id":28212,"name":"_policyIdToClaimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27593,"src":"8942:18:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28214,"indexExpression":{"id":28213,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"8961:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8942:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8924:46:96"},{"condition":{"id":28216,"name":"isLossEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28201,"src":"9033:11:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":28279,"nodeType":"Block","src":"10021:59:96","statements":[{"expression":{"arguments":[{"id":28275,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"10050:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28276,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28211,"src":"10060:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28274,"name":"_declineClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"10036:13:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":28277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10036:32:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28278,"nodeType":"ExpressionStatement","src":"10036:32:96"}]},"id":28280,"nodeType":"IfStatement","src":"9029:1051:96","trueBody":{"id":28273,"nodeType":"Block","src":"9046:969:96","statements":[{"expression":{"arguments":[{"id":28218,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9140:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":28217,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"9124:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":28219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9124:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":28220,"nodeType":"ExpressionStatement","src":"9124:25:96"},{"assignments":[28225],"declarations":[{"constant":false,"id":28225,"mutability":"mutable","name":"claim","nameLocation":"9187:5:96","nodeType":"VariableDeclaration","scope":28273,"src":"9166:26:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":28224,"nodeType":"UserDefinedTypeName","pathNode":{"id":28223,"name":"IPolicy.Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"9166:13:96"},"referencedDeclaration":5296,"src":"9166:13:96","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":28230,"initialValue":{"arguments":[{"id":28227,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9223:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28228,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28211,"src":"9233:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28226,"name":"_getClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3990,"src":"9213:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Claim_$5296_memory_ptr_$","typeString":"function (bytes32,uint256) view returns (struct IPolicy.Claim memory)"}},"id":28229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9213:28:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"nodeType":"VariableDeclarationStatement","src":"9166:75:96"},{"assignments":[28232],"declarations":[{"constant":false,"id":28232,"mutability":"mutable","name":"confirmedAmount","nameLocation":"9302:15:96","nodeType":"VariableDeclaration","scope":28273,"src":"9294:23:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28231,"name":"uint256","nodeType":"ElementaryTypeName","src":"9294:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28235,"initialValue":{"expression":{"id":28233,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28225,"src":"9320:5:96","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"id":28234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"9320:17:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9294:43:96"},{"expression":{"arguments":[{"id":28237,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9366:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28238,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28211,"src":"9376:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28239,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28232,"src":"9385:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28236,"name":"_confirmClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"9352:13:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":28240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9352:49:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28241,"nodeType":"ExpressionStatement","src":"9352:49:96"},{"assignments":[28243],"declarations":[{"constant":false,"id":28243,"mutability":"mutable","name":"payoutAmount","nameLocation":"9463:12:96","nodeType":"VariableDeclaration","scope":28273,"src":"9455:20:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28242,"name":"uint256","nodeType":"ElementaryTypeName","src":"9455:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28245,"initialValue":{"id":28244,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28232,"src":"9478:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9455:38:96"},{"assignments":[28247],"declarations":[{"constant":false,"id":28247,"mutability":"mutable","name":"payoutData","nameLocation":"9521:10:96","nodeType":"VariableDeclaration","scope":28273,"src":"9508:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":28246,"name":"bytes","nodeType":"ElementaryTypeName","src":"9508:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":28252,"initialValue":{"arguments":[{"hexValue":"30","id":28250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9545:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":28248,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"9534:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"9534:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":28251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9534:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9508:39:96"},{"assignments":[28254],"declarations":[{"constant":false,"id":28254,"mutability":"mutable","name":"payoutId","nameLocation":"9570:8:96","nodeType":"VariableDeclaration","scope":28273,"src":"9562:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28253,"name":"uint256","nodeType":"ElementaryTypeName","src":"9562:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28261,"initialValue":{"arguments":[{"id":28256,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9592:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28257,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28211,"src":"9602:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28258,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28243,"src":"9611:12:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28259,"name":"payoutData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28247,"src":"9625:10:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28255,"name":"_newPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"9581:10:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) returns (uint256)"}},"id":28260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9581:55:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9562:74:96"},{"expression":{"id":28266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28262,"name":"_policyIdToPayoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27597,"src":"9651:19:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28264,"indexExpression":{"id":28263,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9671:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9651:29:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28265,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28254,"src":"9683:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9651:40:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28267,"nodeType":"ExpressionStatement","src":"9651:40:96"},{"expression":{"arguments":[{"id":28269,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9723:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28270,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28254,"src":"9733:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28268,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"9708:14:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (uint256,uint256)"}},"id":28271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9708:34:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":28272,"nodeType":"ExpressionStatement","src":"9708:34:96"}]}}]},"functionSelector":"5e61aa63","id":28282,"implemented":true,"kind":"function","modifiers":[{"id":28192,"modifierName":{"id":28191,"name":"onlyOracle","nodeType":"IdentifierPath","referencedDeclaration":3487,"src":"8714:10:96"},"nodeType":"ModifierInvocation","src":"8714:10:96"}],"name":"oracleCallback","nameLocation":"8570:14:96","nodeType":"FunctionDefinition","parameters":{"id":28190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28185,"mutability":"mutable","name":"requestId","nameLocation":"8603:9:96","nodeType":"VariableDeclaration","scope":28282,"src":"8595:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28184,"name":"uint256","nodeType":"ElementaryTypeName","src":"8595:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28187,"mutability":"mutable","name":"policyId","nameLocation":"8632:8:96","nodeType":"VariableDeclaration","scope":28282,"src":"8624:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8624:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28189,"mutability":"mutable","name":"responseData","nameLocation":"8667:12:96","nodeType":"VariableDeclaration","scope":28282,"src":"8652:27:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":28188,"name":"bytes","nodeType":"ElementaryTypeName","src":"8652:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8584:102:96"},"returnParameters":{"id":28193,"nodeType":"ParameterList","parameters":[],"src":"8730:0:96"},"scope":28333,"src":"8561:1526:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28293,"nodeType":"Block","src":"10165:40:96","statements":[{"expression":{"baseExpression":{"id":28289,"name":"_policyIdToClaimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27593,"src":"10174:18:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28291,"indexExpression":{"id":28290,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28284,"src":"10193:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10174:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28288,"id":28292,"nodeType":"Return","src":"10167:35:96"}]},"functionSelector":"ab72c4e1","id":28294,"implemented":true,"kind":"function","modifiers":[],"name":"getClaimId","nameLocation":"10104:10:96","nodeType":"FunctionDefinition","parameters":{"id":28285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28284,"mutability":"mutable","name":"policyId","nameLocation":"10123:8:96","nodeType":"VariableDeclaration","scope":28294,"src":"10115:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10115:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10114:18:96"},"returnParameters":{"id":28288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28294,"src":"10156:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28286,"name":"uint256","nodeType":"ElementaryTypeName","src":"10156:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10155:9:96"},"scope":28333,"src":"10095:110:96","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28305,"nodeType":"Block","src":"10282:41:96","statements":[{"expression":{"baseExpression":{"id":28301,"name":"_policyIdToPayoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27597,"src":"10291:19:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28303,"indexExpression":{"id":28302,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28296,"src":"10311:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10291:29:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28300,"id":28304,"nodeType":"Return","src":"10284:36:96"}]},"functionSelector":"29abdbd7","id":28306,"implemented":true,"kind":"function","modifiers":[],"name":"getPayoutId","nameLocation":"10220:11:96","nodeType":"FunctionDefinition","parameters":{"id":28297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28296,"mutability":"mutable","name":"policyId","nameLocation":"10240:8:96","nodeType":"VariableDeclaration","scope":28306,"src":"10232:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10232:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10231:18:96"},"returnParameters":{"id":28300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28306,"src":"10273:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28298,"name":"uint256","nodeType":"ElementaryTypeName","src":"10273:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10272:9:96"},"scope":28333,"src":"10211:112:96","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28314,"nodeType":"Block","src":"10385:32:96","statements":[{"expression":{"expression":{"id":28311,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27584,"src":"10394:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":28312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10394:20:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28310,"id":28313,"nodeType":"Return","src":"10387:27:96"}]},"functionSelector":"7ce5e82f","id":28315,"implemented":true,"kind":"function","modifiers":[],"name":"applications","nameLocation":"10338:12:96","nodeType":"FunctionDefinition","parameters":{"id":28307,"nodeType":"ParameterList","parameters":[],"src":"10350:2:96"},"returnParameters":{"id":28310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28315,"src":"10376:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28308,"name":"uint256","nodeType":"ElementaryTypeName","src":"10376:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10375:9:96"},"scope":28333,"src":"10329:88:96","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28323,"nodeType":"Block","src":"10475:28:96","statements":[{"expression":{"expression":{"id":28320,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27587,"src":"10484:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":28321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10484:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28319,"id":28322,"nodeType":"Return","src":"10477:23:96"}]},"functionSelector":"702e7e1f","id":28324,"implemented":true,"kind":"function","modifiers":[],"name":"policies","nameLocation":"10432:8:96","nodeType":"FunctionDefinition","parameters":{"id":28316,"nodeType":"ParameterList","parameters":[],"src":"10440:2:96"},"returnParameters":{"id":28319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28324,"src":"10466:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28317,"name":"uint256","nodeType":"ElementaryTypeName","src":"10466:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10465:9:96"},"scope":28333,"src":"10423:80:96","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28331,"nodeType":"Block","src":"10559:19:96","statements":[{"expression":{"id":28329,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"10568:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28328,"id":28330,"nodeType":"Return","src":"10561:14:96"}]},"functionSelector":"dcc59b6f","id":28332,"implemented":true,"kind":"function","modifiers":[],"name":"claims","nameLocation":"10518:6:96","nodeType":"FunctionDefinition","parameters":{"id":28325,"nodeType":"ParameterList","parameters":[],"src":"10524:2:96"},"returnParameters":{"id":28328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28332,"src":"10550:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28326,"name":"uint256","nodeType":"ElementaryTypeName","src":"10550:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10549:9:96"},"scope":28333,"src":"10509:69:96","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":28334,"src":"409:10172:96"}],"src":"40:10541:96"},"id":96},"contracts/test/TestRegistryCompromisedController.sol":{"ast":{"absolutePath":"contracts/test/TestRegistryCompromisedController.sol","exportedSymbols":{"TestRegistryCompromisedController":[28386]},"id":28387,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28335,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:97"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":28386,"linearizedBaseContracts":[28386],"name":"TestRegistryCompromisedController","nameLocation":"75:33:97","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"dadbccee","id":28341,"mutability":"constant","name":"POLICY","nameLocation":"142:6:97","nodeType":"VariableDeclaration","scope":28386,"src":"118:50:97","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"118:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"506f6c696379","id":28339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159:8:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""}],"id":28338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"151:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":28337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151:7:97","typeDescriptions":{}}},"id":28340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"151:17:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"4f6fc0b1","id":28347,"mutability":"constant","name":"QUERY","nameLocation":"199:5:97","nodeType":"VariableDeclaration","scope":28386,"src":"175:48:97","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"175:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5175657279","id":28345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"215:7:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""}],"id":28344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"207:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":28343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"207:7:97","typeDescriptions":{}}},"id":28346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"207:16:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"ec56a373","id":28351,"mutability":"mutable","name":"contracts","nameLocation":"267:9:97","nodeType":"VariableDeclaration","scope":28386,"src":"232:44:97","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":28350,"keyType":{"id":28348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"240:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"232:27:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":28349,"name":"address","nodeType":"ElementaryTypeName","src":"251:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"body":{"id":28364,"nodeType":"Block","src":"406:58:97","statements":[{"expression":{"id":28362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28358,"name":"moduleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28356,"src":"417:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":28359,"name":"contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28351,"src":"433:9:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":28361,"indexExpression":{"id":28360,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28353,"src":"443:12:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"433:23:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"417:39:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28363,"nodeType":"ExpressionStatement","src":"417:39:97"}]},"functionSelector":"e16c7d98","id":28365,"implemented":true,"kind":"function","modifiers":[],"name":"getContract","nameLocation":"294:11:97","nodeType":"FunctionDefinition","parameters":{"id":28354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28353,"mutability":"mutable","name":"contractName","nameLocation":"314:12:97","nodeType":"VariableDeclaration","scope":28365,"src":"306:20:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"305:22:97"},"returnParameters":{"id":28357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28356,"mutability":"mutable","name":"moduleAddress","nameLocation":"386:13:97","nodeType":"VariableDeclaration","scope":28365,"src":"378:21:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28355,"name":"address","nodeType":"ElementaryTypeName","src":"378:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"377:23:97"},"scope":28386,"src":"285:179:97","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28384,"nodeType":"Block","src":"618:126:97","statements":[{"expression":{"id":28376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28372,"name":"contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28351,"src":"630:9:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":28374,"indexExpression":{"id":28373,"name":"POLICY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28341,"src":"640:6:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"630:17:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28375,"name":"compromisedPolicyModuleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28367,"src":"650:30:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"630:50:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28377,"nodeType":"ExpressionStatement","src":"630:50:97"},{"expression":{"id":28382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28378,"name":"contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28351,"src":"691:9:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":28380,"indexExpression":{"id":28379,"name":"QUERY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28347,"src":"701:5:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"691:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28381,"name":"originalQueryModuleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28369,"src":"710:26:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"691:45:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28383,"nodeType":"ExpressionStatement","src":"691:45:97"}]},"functionSelector":"2bc0d7fb","id":28385,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeToV2","nameLocation":"481:11:97","nodeType":"FunctionDefinition","parameters":{"id":28370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28367,"mutability":"mutable","name":"compromisedPolicyModuleAddress","nameLocation":"511:30:97","nodeType":"VariableDeclaration","scope":28385,"src":"503:38:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28366,"name":"address","nodeType":"ElementaryTypeName","src":"503:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28369,"mutability":"mutable","name":"originalQueryModuleAddress","nameLocation":"561:26:97","nodeType":"VariableDeclaration","scope":28385,"src":"553:34:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28368,"name":"address","nodeType":"ElementaryTypeName","src":"553:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"492:102:97"},"returnParameters":{"id":28371,"nodeType":"ParameterList","parameters":[],"src":"618:0:97"},"scope":28386,"src":"472:272:97","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":28387,"src":"66:681:97"}],"src":"40:709:97"},"id":97},"contracts/test/TestRegistryControllerUpdated.sol":{"ast":{"absolutePath":"contracts/test/TestRegistryControllerUpdated.sol","exportedSymbols":{"Address":[10496],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IRegistry":[5714],"Initializable":[8059],"RegistryController":[22155],"Strings":[10804],"TestRegistryControllerUpdated":[28436]},"id":28437,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28388,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:98"},{"absolutePath":"contracts/modules/RegistryController.sol","file":"../modules/RegistryController.sol","id":28389,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28437,"sourceUnit":22156,"src":"66:43:98","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":28390,"name":"RegistryController","nodeType":"IdentifierPath","referencedDeclaration":22155,"src":"157:18:98"},"id":28391,"nodeType":"InheritanceSpecifier","src":"157:18:98"}],"contractDependencies":[5714,8059,10518,22155,26413],"contractKind":"contract","fullyImplemented":true,"id":28436,"linearizedBaseContracts":[28436,22155,26413,8059,10518,5714],"name":"TestRegistryControllerUpdated","nameLocation":"124:29:98","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":28393,"mutability":"mutable","name":"message","nameLocation":"192:7:98","nodeType":"VariableDeclaration","scope":28436,"src":"185:14:98","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":28392,"name":"string","nodeType":"ElementaryTypeName","src":"185:6:98","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28395,"mutability":"mutable","name":"upgradeV2","nameLocation":"211:9:98","nodeType":"VariableDeclaration","scope":28436,"src":"206:14:98","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28394,"name":"bool","nodeType":"ElementaryTypeName","src":"206:4:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"body":{"id":28406,"nodeType":"Block","src":"301:23:98","statements":[{"expression":{"id":28404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28402,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"303:7:98","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28403,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28397,"src":"313:8:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"303:18:98","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":28405,"nodeType":"ExpressionStatement","src":"303:18:98"}]},"functionSelector":"368b8772","id":28407,"implemented":true,"kind":"function","modifiers":[{"id":28400,"modifierName":{"id":28399,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"280:20:98"},"nodeType":"ModifierInvocation","src":"280:20:98"}],"name":"setMessage","nameLocation":"238:10:98","nodeType":"FunctionDefinition","parameters":{"id":28398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28397,"mutability":"mutable","name":"_message","nameLocation":"263:8:98","nodeType":"VariableDeclaration","scope":28407,"src":"249:22:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28396,"name":"string","nodeType":"ElementaryTypeName","src":"249:6:98","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"248:24:98"},"returnParameters":{"id":28401,"nodeType":"ParameterList","parameters":[],"src":"301:0:98"},"scope":28436,"src":"229:95:98","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":28414,"nodeType":"Block","src":"388:19:98","statements":[{"expression":{"id":28412,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"397:7:98","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":28411,"id":28413,"nodeType":"Return","src":"390:14:98"}]},"functionSelector":"ce6d41de","id":28415,"implemented":true,"kind":"function","modifiers":[],"name":"getMessage","nameLocation":"339:10:98","nodeType":"FunctionDefinition","parameters":{"id":28408,"nodeType":"ParameterList","parameters":[],"src":"349:2:98"},"returnParameters":{"id":28411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28415,"src":"373:13:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28409,"name":"string","nodeType":"ElementaryTypeName","src":"373:6:98","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"372:15:98"},"scope":28436,"src":"330:77:98","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":28434,"nodeType":"Block","src":"467:135:98","statements":[{"expression":{"arguments":[{"id":28422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"487:10:98","subExpression":{"id":28421,"name":"upgradeV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28395,"src":"488:9:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3130323a555047524144455f4f4e43455f4f4d4c59","id":28423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"499:33:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_584862d2e254607edab8323f691596b09145970a7a655d210eb1f81c78c94e40","typeString":"literal_string \"ERROR:REC-102:UPGRADE_ONCE_OMLY\""},"value":"ERROR:REC-102:UPGRADE_ONCE_OMLY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_584862d2e254607edab8323f691596b09145970a7a655d210eb1f81c78c94e40","typeString":"literal_string \"ERROR:REC-102:UPGRADE_ONCE_OMLY\""}],"id":28420,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"479:7:98","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"479:54:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28425,"nodeType":"ExpressionStatement","src":"479:54:98"},{"expression":{"id":28428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28426,"name":"upgradeV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28395,"src":"544:9:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":28427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"556:4:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"544:16:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28429,"nodeType":"ExpressionStatement","src":"544:16:98"},{"expression":{"arguments":[{"id":28431,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28417,"src":"584:8:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":28430,"name":"setMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28407,"src":"573:10:98","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":28432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"573:20:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28433,"nodeType":"ExpressionStatement","src":"573:20:98"}]},"functionSelector":"2b34378a","id":28435,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeToV2","nameLocation":"424:11:98","nodeType":"FunctionDefinition","parameters":{"id":28418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28417,"mutability":"mutable","name":"_message","nameLocation":"450:8:98","nodeType":"VariableDeclaration","scope":28435,"src":"436:22:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28416,"name":"string","nodeType":"ElementaryTypeName","src":"436:6:98","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"435:24:98"},"returnParameters":{"id":28419,"nodeType":"ParameterList","parameters":[],"src":"467:0:98"},"scope":28436,"src":"415:187:98","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":28437,"src":"115:490:98"}],"src":"40:567:98"},"id":98},"contracts/test/TestRiskpool.sol":{"ast":{"absolutePath":"contracts/test/TestRiskpool.sol","exportedSymbols":{"BasicRiskpool":[2464],"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Riskpool":[4773],"TestRiskpool":[28488]},"id":28489,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28438,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:99"},{"absolutePath":"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol","file":"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol","id":28439,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28489,"sourceUnit":2465,"src":"66:72:99","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"@etherisc/gif-interface/contracts/modules/IBundle.sol","id":28440,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28489,"sourceUnit":5021,"src":"140:63:99","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":28441,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28489,"sourceUnit":5434,"src":"205:63:99","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":28442,"name":"BasicRiskpool","nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"297:13:99"},"id":28443,"nodeType":"InheritanceSpecifier","src":"297:13:99"}],"contractDependencies":[2464,2884,2988,3312,4773,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":28488,"linearizedBaseContracts":[28488,2464,4773,2884,7481,10518,5073,3312,2988],"name":"TestRiskpool","nameLocation":"281:12:99","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"be61e91e","id":28448,"mutability":"constant","name":"SUM_OF_SUM_INSURED_CAP","nameLocation":"344:22:99","nodeType":"VariableDeclaration","scope":28488,"src":"320:55:99","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28444,"name":"uint256","nodeType":"ElementaryTypeName","src":"320:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"},"id":28447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":28445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"369:2:99","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":28446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"373:2:99","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"369:6:99","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"}},"visibility":"public"},{"body":{"id":28469,"nodeType":"Block","src":"650:3:99","statements":[]},"id":28470,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":28461,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28450,"src":"566:4:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28462,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28452,"src":"572:17:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28463,"name":"SUM_OF_SUM_INSURED_CAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28448,"src":"591:22:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28464,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28454,"src":"615:10:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28465,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28456,"src":"627:6:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28466,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28458,"src":"635:8:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":28467,"modifierName":{"id":28460,"name":"BasicRiskpool","nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"552:13:99"},"nodeType":"ModifierInvocation","src":"552:92:99"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":28459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28450,"mutability":"mutable","name":"name","nameLocation":"414:4:99","nodeType":"VariableDeclaration","scope":28470,"src":"406:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"406:7:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28452,"mutability":"mutable","name":"collateralization","nameLocation":"437:17:99","nodeType":"VariableDeclaration","scope":28470,"src":"429:25:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28451,"name":"uint256","nodeType":"ElementaryTypeName","src":"429:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28454,"mutability":"mutable","name":"erc20Token","nameLocation":"473:10:99","nodeType":"VariableDeclaration","scope":28470,"src":"465:18:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28453,"name":"address","nodeType":"ElementaryTypeName","src":"465:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28456,"mutability":"mutable","name":"wallet","nameLocation":"502:6:99","nodeType":"VariableDeclaration","scope":28470,"src":"494:14:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28455,"name":"address","nodeType":"ElementaryTypeName","src":"494:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28458,"mutability":"mutable","name":"registry","nameLocation":"527:8:99","nodeType":"VariableDeclaration","scope":28470,"src":"519:16:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28457,"name":"address","nodeType":"ElementaryTypeName","src":"519:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"395:147:99"},"returnParameters":{"id":28468,"nodeType":"ParameterList","parameters":[],"src":"650:0:99"},"scope":28488,"src":"384:269:99","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4722],"body":{"id":28486,"nodeType":"Block","src":"933:36:99","statements":[{"expression":{"id":28484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28482,"name":"isMatching","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28480,"src":"944:10:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":28483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"957:4:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"944:17:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28485,"nodeType":"ExpressionStatement","src":"944:17:99"}]},"functionSelector":"86c71288","id":28487,"implemented":true,"kind":"function","modifiers":[],"name":"bundleMatchesApplication","nameLocation":"732:24:99","nodeType":"FunctionDefinition","overrides":{"id":28478,"nodeType":"OverrideSpecifier","overrides":[],"src":"870:8:99"},"parameters":{"id":28477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28473,"mutability":"mutable","name":"bundle","nameLocation":"789:6:99","nodeType":"VariableDeclaration","scope":28487,"src":"767:28:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":28472,"nodeType":"UserDefinedTypeName","pathNode":{"id":28471,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"767:14:99"},"referencedDeclaration":4936,"src":"767:14:99","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"},{"constant":false,"id":28476,"mutability":"mutable","name":"application","nameLocation":"834:11:99","nodeType":"VariableDeclaration","scope":28487,"src":"807:38:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":28475,"nodeType":"UserDefinedTypeName","pathNode":{"id":28474,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"807:19:99"},"referencedDeclaration":5262,"src":"807:19:99","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"756:96:99"},"returnParameters":{"id":28481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28480,"mutability":"mutable","name":"isMatching","nameLocation":"915:10:99","nodeType":"VariableDeclaration","scope":28487,"src":"910:15:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28479,"name":"bool","nodeType":"ElementaryTypeName","src":"910:4:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"909:17:99"},"scope":28488,"src":"723:246:99","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":28489,"src":"272:702:99"}],"src":"40:934:99"},"id":99},"contracts/test/TestTransferFrom.sol":{"ast":{"absolutePath":"contracts/test/TestTransferFrom.sol","exportedSymbols":{"IERC20":[8831],"TestTransferFrom":[28538],"TransferHelper":[26659]},"id":28539,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28490,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:100"},{"absolutePath":"contracts/shared/TransferHelper.sol","file":"../shared/TransferHelper.sol","id":28491,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28539,"sourceUnit":26660,"src":"66:38:100","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":28492,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28539,"sourceUnit":8832,"src":"108:56:100","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":28538,"linearizedBaseContracts":[28538],"name":"TestTransferFrom","nameLocation":"177:16:100","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":28500,"name":"LogTransferHelperInputValidation1Failed","nameLocation":"209:39:100","nodeType":"EventDefinition","parameters":{"id":28499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28494,"indexed":false,"mutability":"mutable","name":"tokenIsContract","nameLocation":"254:15:100","nodeType":"VariableDeclaration","scope":28500,"src":"249:20:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28493,"name":"bool","nodeType":"ElementaryTypeName","src":"249:4:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28496,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"279:4:100","nodeType":"VariableDeclaration","scope":28500,"src":"271:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28495,"name":"address","nodeType":"ElementaryTypeName","src":"271:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28498,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"293:2:100","nodeType":"VariableDeclaration","scope":28500,"src":"285:10:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28497,"name":"address","nodeType":"ElementaryTypeName","src":"285:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"248:48:100"},"src":"203:94:100"},{"anonymous":false,"id":28506,"name":"LogTransferHelperInputValidation2Failed","nameLocation":"309:39:100","nodeType":"EventDefinition","parameters":{"id":28505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28502,"indexed":false,"mutability":"mutable","name":"balance","nameLocation":"357:7:100","nodeType":"VariableDeclaration","scope":28506,"src":"349:15:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28501,"name":"uint256","nodeType":"ElementaryTypeName","src":"349:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28504,"indexed":false,"mutability":"mutable","name":"allowance","nameLocation":"374:9:100","nodeType":"VariableDeclaration","scope":28506,"src":"366:17:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28503,"name":"uint256","nodeType":"ElementaryTypeName","src":"366:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"348:36:100"},"src":"303:82:100"},{"anonymous":false,"id":28514,"name":"LogTransferHelperCallFailed","nameLocation":"397:27:100","nodeType":"EventDefinition","parameters":{"id":28513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28508,"indexed":false,"mutability":"mutable","name":"callSuccess","nameLocation":"430:11:100","nodeType":"VariableDeclaration","scope":28514,"src":"425:16:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28507,"name":"bool","nodeType":"ElementaryTypeName","src":"425:4:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28510,"indexed":false,"mutability":"mutable","name":"returnDataLength","nameLocation":"451:16:100","nodeType":"VariableDeclaration","scope":28514,"src":"443:24:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28509,"name":"uint256","nodeType":"ElementaryTypeName","src":"443:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28512,"indexed":false,"mutability":"mutable","name":"returnData","nameLocation":"475:10:100","nodeType":"VariableDeclaration","scope":28514,"src":"469:16:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":28511,"name":"bytes","nodeType":"ElementaryTypeName","src":"469:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"424:62:100"},"src":"391:96:100"},{"body":{"id":28536,"nodeType":"Block","src":"674:85:100","statements":[{"expression":{"arguments":[{"id":28530,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28517,"src":"727:5:100","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":28531,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28519,"src":"734:4:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28532,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28521,"src":"740:2:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28533,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28523,"src":"744:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28528,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"692:14:100","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":28529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"692:34:100","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":28534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"692:59:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":28527,"id":28535,"nodeType":"Return","src":"685:66:100"}]},"functionSelector":"86aa75d7","id":28537,"implemented":true,"kind":"function","modifiers":[],"name":"unifiedTransferFrom","nameLocation":"504:19:100","nodeType":"FunctionDefinition","parameters":{"id":28524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28517,"mutability":"mutable","name":"token","nameLocation":"541:5:100","nodeType":"VariableDeclaration","scope":28537,"src":"534:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":28516,"nodeType":"UserDefinedTypeName","pathNode":{"id":28515,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"534:6:100"},"referencedDeclaration":8831,"src":"534:6:100","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":28519,"mutability":"mutable","name":"from","nameLocation":"566:4:100","nodeType":"VariableDeclaration","scope":28537,"src":"558:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28518,"name":"address","nodeType":"ElementaryTypeName","src":"558:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28521,"mutability":"mutable","name":"to","nameLocation":"590:2:100","nodeType":"VariableDeclaration","scope":28537,"src":"582:10:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28520,"name":"address","nodeType":"ElementaryTypeName","src":"582:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28523,"mutability":"mutable","name":"amount","nameLocation":"612:6:100","nodeType":"VariableDeclaration","scope":28537,"src":"604:14:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28522,"name":"uint256","nodeType":"ElementaryTypeName","src":"604:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"523:102:100"},"returnParameters":{"id":28527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28537,"src":"663:4:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28525,"name":"bool","nodeType":"ElementaryTypeName","src":"663:4:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"662:6:100"},"scope":28538,"src":"495:264:100","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":28539,"src":"168:596:100"}],"src":"40:726:100"},"id":100},"contracts/tokens/BundleToken.sol":{"ast":{"absolutePath":"contracts/tokens/BundleToken.sol","exportedSymbols":{"Address":[10496],"BundleToken":[28751],"Context":[10518],"ERC165":[10828],"ERC721":[10040],"IBundleToken":[6825],"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"Ownable":[7481],"Strings":[10804]},"id":28752,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28540,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:101"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":28541,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28752,"sourceUnit":7482,"src":"63:52:101","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"@openzeppelin/contracts/token/ERC721/ERC721.sol","id":28542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28752,"sourceUnit":10041,"src":"116:57:101","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","file":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","id":28543,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28752,"sourceUnit":6826,"src":"175:67:101","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":28544,"name":"IBundleToken","nodeType":"IdentifierPath","referencedDeclaration":6825,"src":"273:12:101"},"id":28545,"nodeType":"InheritanceSpecifier","src":"273:12:101"},{"baseName":{"id":28546,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":10040,"src":"291:6:101"},"id":28547,"nodeType":"InheritanceSpecifier","src":"291:6:101"},{"baseName":{"id":28548,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"303:7:101"},"id":28549,"nodeType":"InheritanceSpecifier","src":"303:7:101"}],"contractDependencies":[6825,7481,10040,10156,10201,10518,10828,10840],"contractKind":"contract","fullyImplemented":true,"id":28751,"linearizedBaseContracts":[28751,7481,10040,10201,6825,10156,10828,10840,10518],"name":"BundleToken","nameLocation":"253:11:101","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":28552,"mutability":"constant","name":"NAME","nameLocation":"340:4:101","nodeType":"VariableDeclaration","scope":28751,"src":"317:48:101","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28550,"name":"string","nodeType":"ElementaryTypeName","src":"317:6:101","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4749462042756e646c6520546f6b656e","id":28551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"347:18:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_bbfc3e9b464864803acc054897a72761e0805ad16a65cd3c6e7237d5e77e32a8","typeString":"literal_string \"GIF Bundle Token\""},"value":"GIF Bundle Token"},"visibility":"public"},{"constant":true,"functionSelector":"f76f8d78","id":28555,"mutability":"constant","name":"SYMBOL","nameLocation":"394:6:101","nodeType":"VariableDeclaration","scope":28751,"src":"371:37:101","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28553,"name":"string","nodeType":"ElementaryTypeName","src":"371:6:101","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"42544b","id":28554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"403:5:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbd09d845af28ee5b0642a9230e90a4426144cbbda10cea126e4301fa7e1a7f0","typeString":"literal_string \"BTK\""},"value":"BTK"},"visibility":"public"},{"constant":false,"functionSelector":"6ae9d6e8","id":28559,"mutability":"mutable","name":"bundleIdForTokenId","nameLocation":"481:18:101","nodeType":"VariableDeclaration","scope":28751,"src":"415:84:101","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":28558,"keyType":{"id":28556,"name":"uint256","nodeType":"ElementaryTypeName","src":"423:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"415:58:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":28557,"name":"uint256","nodeType":"ElementaryTypeName","src":"449:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"id":28561,"mutability":"mutable","name":"_bundleModule","nameLocation":"521:13:101","nodeType":"VariableDeclaration","scope":28751,"src":"505:29:101","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28560,"name":"address","nodeType":"ElementaryTypeName","src":"505:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":28563,"mutability":"mutable","name":"_totalSupply","nameLocation":"556:12:101","nodeType":"VariableDeclaration","scope":28751,"src":"540:28:101","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28562,"name":"uint256","nodeType":"ElementaryTypeName","src":"540:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":28584,"nodeType":"Block","src":"603:180:101","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28566,"name":"_bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28561,"src":"621:13:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":28569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"646:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":28568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"638:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28567,"name":"address","nodeType":"ElementaryTypeName","src":"638:7:101","typeDescriptions":{}}},"id":28570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"638:10:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"621:27:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a42544b2d3030313a4e4f545f494e495449414c495a4544","id":28572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"650:31:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_71c345712a418cc2c46cd273ab8511c6cbb55feb2ba9f1d283511627144b0e51","typeString":"literal_string \"ERROR:BTK-001:NOT_INITIALIZED\""},"value":"ERROR:BTK-001:NOT_INITIALIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71c345712a418cc2c46cd273ab8511c6cbb55feb2ba9f1d283511627144b0e51","typeString":"literal_string \"ERROR:BTK-001:NOT_INITIALIZED\""}],"id":28565,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"613:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"613:69:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28574,"nodeType":"ExpressionStatement","src":"613:69:101"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":28576,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"700:10:101","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":28577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"700:12:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":28578,"name":"_bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28561,"src":"716:13:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"700:29:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c45","id":28580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"731:33:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4463d809287d808796cb4a3a161ee1bce186c0b33e3e1818bc6844ffcc5748f","typeString":"literal_string \"ERROR:BTK-002:NOT_BUNDLE_MODULE\""},"value":"ERROR:BTK-002:NOT_BUNDLE_MODULE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e4463d809287d808796cb4a3a161ee1bce186c0b33e3e1818bc6844ffcc5748f","typeString":"literal_string \"ERROR:BTK-002:NOT_BUNDLE_MODULE\""}],"id":28575,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"692:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"692:73:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28582,"nodeType":"ExpressionStatement","src":"692:73:101"},{"id":28583,"nodeType":"PlaceholderStatement","src":"775:1:101"}]},"id":28585,"name":"onlyBundleModule","nameLocation":"584:16:101","nodeType":"ModifierDefinition","parameters":{"id":28564,"nodeType":"ParameterList","parameters":[],"src":"600:2:101"},"src":"575:208:101","virtual":false,"visibility":"internal"},{"body":{"id":28594,"nodeType":"Block","src":"834:3:101","statements":[]},"id":28595,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":28588,"name":"NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28552,"src":"810:4:101","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28589,"name":"SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28555,"src":"816:6:101","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":28590,"modifierName":{"id":28587,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":10040,"src":"803:6:101"},"nodeType":"ModifierInvocation","src":"803:20:101"},{"arguments":[],"id":28592,"modifierName":{"id":28591,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"824:7:101"},"nodeType":"ModifierInvocation","src":"824:9:101"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":28586,"nodeType":"ParameterList","parameters":[],"src":"800:2:101"},"returnParameters":{"id":28593,"nodeType":"ParameterList","parameters":[],"src":"834:0:101"},"scope":28751,"src":"789:48:101","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":28624,"nodeType":"Block","src":"911:230:101","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28601,"name":"_bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28561,"src":"929:13:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":28604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"954:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":28603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"946:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28602,"name":"address","nodeType":"ElementaryTypeName","src":"946:7:101","typeDescriptions":{}}},"id":28605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"946:10:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"929:27:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a42544b2d3030333a42554e444c455f4d4f44554c455f414c52454144595f444546494e4544","id":28607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"958:45:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_abc636ae2799ac58b80df921189c05433792fe090199f11c917db3daf328f355","typeString":"literal_string \"ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED\""},"value":"ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_abc636ae2799ac58b80df921189c05433792fe090199f11c917db3daf328f355","typeString":"literal_string \"ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED\""}],"id":28600,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"921:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"921:83:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28609,"nodeType":"ExpressionStatement","src":"921:83:101"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28611,"name":"bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28597,"src":"1022:12:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":28614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1046:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":28613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1038:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28612,"name":"address","nodeType":"ElementaryTypeName","src":"1038:7:101","typeDescriptions":{}}},"id":28615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1038:10:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1022:26:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a42544b2d3030343a494e56414c49445f42554e444c455f4d4f44554c455f41444452455353","id":28617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1050:45:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_b8c7de1baab44a0acb8a288a8111919b2fbe55231df4bb3c2c01062efb0d0040","typeString":"literal_string \"ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS\""},"value":"ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b8c7de1baab44a0acb8a288a8111919b2fbe55231df4bb3c2c01062efb0d0040","typeString":"literal_string \"ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS\""}],"id":28610,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1014:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1014:82:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28619,"nodeType":"ExpressionStatement","src":"1014:82:101"},{"expression":{"id":28622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28620,"name":"_bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28561,"src":"1106:13:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28621,"name":"bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28597,"src":"1122:12:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1106:28:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28623,"nodeType":"ExpressionStatement","src":"1106:28:101"}]},"functionSelector":"a38b714c","id":28625,"implemented":true,"kind":"function","modifiers":[],"name":"setBundleModule","nameLocation":"852:15:101","nodeType":"FunctionDefinition","parameters":{"id":28598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28597,"mutability":"mutable","name":"bundleModule","nameLocation":"876:12:101","nodeType":"VariableDeclaration","scope":28625,"src":"868:20:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28596,"name":"address","nodeType":"ElementaryTypeName","src":"868:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"867:22:101"},"returnParameters":{"id":28599,"nodeType":"ParameterList","parameters":[],"src":"911:0:101"},"scope":28751,"src":"843:298:101","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28660,"nodeType":"Block","src":"1272:238:101","statements":[{"expression":{"id":28637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1282:14:101","subExpression":{"id":28636,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28563,"src":"1282:12:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28638,"nodeType":"ExpressionStatement","src":"1282:14:101"},{"expression":{"id":28641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28639,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28634,"src":"1306:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28640,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28563,"src":"1316:12:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1306:22:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28642,"nodeType":"ExpressionStatement","src":"1306:22:101"},{"expression":{"id":28647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28643,"name":"bundleIdForTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28559,"src":"1338:18:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":28645,"indexExpression":{"id":28644,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28634,"src":"1357:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1338:27:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28646,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28627,"src":"1368:8:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1338:38:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28648,"nodeType":"ExpressionStatement","src":"1338:38:101"},{"expression":{"arguments":[{"id":28650,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28629,"src":"1413:2:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28651,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28634,"src":"1417:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28649,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[9655,9684],"referencedDeclaration":9655,"src":"1403:9:101","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":28652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:22:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28653,"nodeType":"ExpressionStatement","src":"1403:22:101"},{"eventCall":{"arguments":[{"id":28655,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28627,"src":"1470:8:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28656,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28634,"src":"1480:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28657,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28629,"src":"1489:2:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":28654,"name":"LogBundleTokenMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6792,"src":"1449:20:101","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,uint256,address)"}},"id":28658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1449:43:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28659,"nodeType":"EmitStatement","src":"1444:48:101"}]},"functionSelector":"94bf804d","id":28661,"implemented":true,"kind":"function","modifiers":[{"id":28632,"modifierName":{"id":28631,"name":"onlyBundleModule","nodeType":"IdentifierPath","referencedDeclaration":28585,"src":"1218:16:101"},"nodeType":"ModifierInvocation","src":"1218:16:101"}],"name":"mint","nameLocation":"1157:4:101","nodeType":"FunctionDefinition","parameters":{"id":28630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28627,"mutability":"mutable","name":"bundleId","nameLocation":"1170:8:101","nodeType":"VariableDeclaration","scope":28661,"src":"1162:16:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28626,"name":"uint256","nodeType":"ElementaryTypeName","src":"1162:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28629,"mutability":"mutable","name":"to","nameLocation":"1188:2:101","nodeType":"VariableDeclaration","scope":28661,"src":"1180:10:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28628,"name":"address","nodeType":"ElementaryTypeName","src":"1180:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1161:30:101"},"returnParameters":{"id":28635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28634,"mutability":"mutable","name":"tokenId","nameLocation":"1259:7:101","nodeType":"VariableDeclaration","scope":28661,"src":"1251:15:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28633,"name":"uint256","nodeType":"ElementaryTypeName","src":"1251:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1250:17:101"},"scope":28751,"src":"1148:362:101","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28686,"nodeType":"Block","src":"1595:193:101","statements":[{"expression":{"arguments":[{"arguments":[{"id":28670,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28663,"src":"1621:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28669,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9606,"src":"1613:7:101","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":28671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1613:16:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a42544b2d3030353a544f4b454e5f49445f494e56414c4944","id":28672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1631:32:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b135c0fcb89fd6fb27d63d9c9b41b2ffa3e6cec6119734a095764dd4d45f96","typeString":"literal_string \"ERROR:BTK-005:TOKEN_ID_INVALID\""},"value":"ERROR:BTK-005:TOKEN_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e9b135c0fcb89fd6fb27d63d9c9b41b2ffa3e6cec6119734a095764dd4d45f96","typeString":"literal_string \"ERROR:BTK-005:TOKEN_ID_INVALID\""}],"id":28668,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1605:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1605:59:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28674,"nodeType":"ExpressionStatement","src":"1605:59:101"},{"expression":{"arguments":[{"id":28676,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28663,"src":"1688:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28675,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9810,"src":"1682:5:101","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":28677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1682:14:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28678,"nodeType":"ExpressionStatement","src":"1682:14:101"},{"eventCall":{"arguments":[{"baseExpression":{"id":28680,"name":"bundleIdForTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28559,"src":"1741:18:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":28682,"indexExpression":{"id":28681,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28663,"src":"1760:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1741:27:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28683,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28663,"src":"1770:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28679,"name":"LogBundleTokenBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6798,"src":"1720:20:101","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":28684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1720:58:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28685,"nodeType":"EmitStatement","src":"1715:63:101"}]},"functionSelector":"42966c68","id":28687,"implemented":true,"kind":"function","modifiers":[{"id":28666,"modifierName":{"id":28665,"name":"onlyBundleModule","nodeType":"IdentifierPath","referencedDeclaration":28585,"src":"1574:16:101"},"nodeType":"ModifierInvocation","src":"1574:16:101"}],"name":"burn","nameLocation":"1526:4:101","nodeType":"FunctionDefinition","parameters":{"id":28664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28663,"mutability":"mutable","name":"tokenId","nameLocation":"1539:7:101","nodeType":"VariableDeclaration","scope":28687,"src":"1531:15:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28662,"name":"uint256","nodeType":"ElementaryTypeName","src":"1531:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1530:17:101"},"returnParameters":{"id":28667,"nodeType":"ParameterList","parameters":[],"src":"1595:0:101"},"scope":28751,"src":"1517:271:101","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6805],"body":{"id":28706,"nodeType":"Block","src":"1900:72:101","statements":[{"expression":{"id":28704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28695,"name":"isBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28693,"src":"1910:8:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":28703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28696,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28689,"src":"1921:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":28697,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28563,"src":"1932:12:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1921:23:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":28702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1948:17:101","subExpression":{"arguments":[{"id":28700,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28689,"src":"1957:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28699,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9606,"src":"1949:7:101","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":28701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1949:16:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1921:44:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1910:55:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28705,"nodeType":"ExpressionStatement","src":"1910:55:101"}]},"functionSelector":"23250cae","id":28707,"implemented":true,"kind":"function","modifiers":[],"name":"burned","nameLocation":"1803:6:101","nodeType":"FunctionDefinition","overrides":{"id":28691,"nodeType":"OverrideSpecifier","overrides":[],"src":"1842:8:101"},"parameters":{"id":28690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28689,"mutability":"mutable","name":"tokenId","nameLocation":"1815:7:101","nodeType":"VariableDeclaration","scope":28707,"src":"1810:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28688,"name":"uint","nodeType":"ElementaryTypeName","src":"1810:4:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1809:14:101"},"returnParameters":{"id":28694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28693,"mutability":"mutable","name":"isBurned","nameLocation":"1886:8:101","nodeType":"VariableDeclaration","scope":28707,"src":"1881:13:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28692,"name":"bool","nodeType":"ElementaryTypeName","src":"1881:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1880:15:101"},"scope":28751,"src":"1794:178:101","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6819],"body":{"id":28719,"nodeType":"Block","src":"2056:39:101","statements":[{"expression":{"baseExpression":{"id":28715,"name":"bundleIdForTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28559,"src":"2065:18:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":28717,"indexExpression":{"id":28716,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28709,"src":"2084:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2065:27:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28714,"id":28718,"nodeType":"Return","src":"2058:34:101"}]},"functionSelector":"29a63083","id":28720,"implemented":true,"kind":"function","modifiers":[],"name":"getBundleId","nameLocation":"1987:11:101","nodeType":"FunctionDefinition","overrides":{"id":28711,"nodeType":"OverrideSpecifier","overrides":[],"src":"2025:8:101"},"parameters":{"id":28710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28709,"mutability":"mutable","name":"tokenId","nameLocation":"2007:7:101","nodeType":"VariableDeclaration","scope":28720,"src":"1999:15:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28708,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1998:17:101"},"returnParameters":{"id":28714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28713,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28720,"src":"2047:7:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28712,"name":"uint256","nodeType":"ElementaryTypeName","src":"2047:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2046:9:101"},"scope":28751,"src":"1978:117:101","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28727,"nodeType":"Block","src":"2165:25:101","statements":[{"expression":{"id":28725,"name":"_bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28561,"src":"2174:13:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":28724,"id":28726,"nodeType":"Return","src":"2167:20:101"}]},"functionSelector":"6ae73384","id":28728,"implemented":true,"kind":"function","modifiers":[],"name":"getBundleModuleAddress","nameLocation":"2109:22:101","nodeType":"FunctionDefinition","parameters":{"id":28721,"nodeType":"ParameterList","parameters":[],"src":"2131:2:101"},"returnParameters":{"id":28724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28728,"src":"2156:7:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28722,"name":"address","nodeType":"ElementaryTypeName","src":"2156:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2155:9:101"},"scope":28751,"src":"2100:90:101","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6812],"body":{"id":28740,"nodeType":"Block","src":"2266:35:101","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28736,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28730,"src":"2275:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":28737,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28563,"src":"2286:12:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2275:23:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":28735,"id":28739,"nodeType":"Return","src":"2268:30:101"}]},"functionSelector":"4f558e79","id":28741,"implemented":true,"kind":"function","modifiers":[],"name":"exists","nameLocation":"2205:6:101","nodeType":"FunctionDefinition","overrides":{"id":28732,"nodeType":"OverrideSpecifier","overrides":[],"src":"2238:8:101"},"parameters":{"id":28731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28730,"mutability":"mutable","name":"tokenId","nameLocation":"2220:7:101","nodeType":"VariableDeclaration","scope":28741,"src":"2212:15:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28729,"name":"uint256","nodeType":"ElementaryTypeName","src":"2212:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2211:17:101"},"returnParameters":{"id":28735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28734,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28741,"src":"2260:4:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28733,"name":"bool","nodeType":"ElementaryTypeName","src":"2260:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2259:6:101"},"scope":28751,"src":"2196:105:101","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6824],"body":{"id":28749,"nodeType":"Block","src":"2380:24:101","statements":[{"expression":{"id":28747,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28563,"src":"2389:12:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28746,"id":28748,"nodeType":"Return","src":"2382:19:101"}]},"functionSelector":"18160ddd","id":28750,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"2315:11:101","nodeType":"FunctionDefinition","overrides":{"id":28743,"nodeType":"OverrideSpecifier","overrides":[],"src":"2338:8:101"},"parameters":{"id":28742,"nodeType":"ParameterList","parameters":[],"src":"2326:2:101"},"returnParameters":{"id":28746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28745,"mutability":"mutable","name":"tokenCount","nameLocation":"2368:10:101","nodeType":"VariableDeclaration","scope":28750,"src":"2360:18:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28744,"name":"uint256","nodeType":"ElementaryTypeName","src":"2360:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2359:20:101"},"scope":28751,"src":"2306:98:101","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":28752,"src":"244:2162:101"}],"src":"39:2368:101"},"id":101},"contracts/tokens/RiskpoolToken.sol":{"ast":{"absolutePath":"contracts/tokens/RiskpoolToken.sol","exportedSymbols":{"Context":[10518],"ERC20":[8753],"IERC20":[8831],"IERC20Metadata":[8856],"RiskpoolToken":[28771]},"id":28772,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28753,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:102"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":28754,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28772,"sourceUnit":8754,"src":"63:55:102","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":28755,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"150:5:102"},"id":28756,"nodeType":"InheritanceSpecifier","src":"150:5:102"}],"contractDependencies":[8753,8831,8856,10518],"contractKind":"contract","fullyImplemented":true,"id":28771,"linearizedBaseContracts":[28771,8753,8856,8831,10518],"name":"RiskpoolToken","nameLocation":"129:13:102","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":28759,"mutability":"constant","name":"NAME","nameLocation":"185:4:102","nodeType":"VariableDeclaration","scope":28771,"src":"162:50:102","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28757,"name":"string","nodeType":"ElementaryTypeName","src":"162:6:102","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"474946205269736b706f6f6c20546f6b656e","id":28758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"192:20:102","typeDescriptions":{"typeIdentifier":"t_stringliteral_c04ccc87e78cfe956236553ca7b60ff0e91646fd43eb163e8f00edfa2d550d1a","typeString":"literal_string \"GIF Riskpool Token\""},"value":"GIF Riskpool Token"},"visibility":"public"},{"constant":true,"functionSelector":"f76f8d78","id":28762,"mutability":"constant","name":"SYMBOL","nameLocation":"241:6:102","nodeType":"VariableDeclaration","scope":28771,"src":"218:37:102","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28760,"name":"string","nodeType":"ElementaryTypeName","src":"218:6:102","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"525054","id":28761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"250:5:102","typeDescriptions":{"typeIdentifier":"t_stringliteral_193fb9814d53cc9cda8187d0d39a8722345ce84f54c3c6acd15c420cb1471f43","typeString":"literal_string \"RPT\""},"value":"RPT"},"visibility":"public"},{"body":{"id":28769,"nodeType":"Block","src":"309:8:102","statements":[]},"id":28770,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":28765,"name":"NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28759,"src":"291:4:102","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28766,"name":"SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28762,"src":"297:6:102","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":28767,"modifierName":{"id":28764,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"285:5:102"},"nodeType":"ModifierInvocation","src":"285:19:102"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":28763,"nodeType":"ParameterList","parameters":[],"src":"273:2:102"},"returnParameters":{"id":28768,"nodeType":"ParameterList","parameters":[],"src":"309:0:102"},"scope":28771,"src":"262:55:102","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":28772,"src":"120:199:102"}],"src":"39:281:102"},"id":102}},"contracts":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"Chainlink":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f21ad28c31b9d80a1984a2000941e273e3b3b71fe3fcff419a8ea3c0893efa8164736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE BYTE 0xD2 DUP13 BALANCE 0xB9 0xD8 EXP NOT DUP5 LOG2 STOP MULMOD COINBASE 0xE2 PUSH20 0xE3B3B71FE3FCFF419A8EA3C0893EFA8164736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;293:3494:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f21ad28c31b9d80a1984a2000941e273e3b3b71fe3fcff419a8ea3c0893efa8164736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE BYTE 0xD2 DUP13 BALANCE 0xB9 0xD8 EXP NOT DUP5 LOG2 STOP MULMOD COINBASE 0xE2 PUSH20 0xE3B3B71FE3FCFF419A8EA3C0893EFA8164736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Uses imported CBOR library for encoding to buffer\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Library for common Chainlink functions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":\"Chainlink\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ChainlinkClient":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ChainlinkClient contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contract writers can inherit this contract in order to create requests for the Chainlink network\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":\"ChainlinkClient\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ChainlinkRequestInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":\"ChainlinkRequestInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ENSInterface":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"label","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner(bytes32)":"02571be3","resolver(bytes32)":"0178b8bf","setOwner(bytes32,address)":"5b0fc9c3","setResolver(bytes32,address)":"1896f70a","setSubnodeOwner(bytes32,bytes32,address)":"06ab5923","setTTL(bytes32,uint64)":"14ab9038","ttl(bytes32)":"16a25cbd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":\"ENSInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"LinkTokenInterface":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"decimalPlaces","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"increaseApproval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"tokenName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"tokenSymbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"totalTokensIssued","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseApproval(address,uint256)":"66188463","increaseApproval(address,uint256)":"d73dd623","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferAndCall(address,uint256,bytes)":"4000aea0","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"decimalPlaces\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalTokensIssued\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":\"LinkTokenInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"OperatorInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"distributeFunds","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"fulfillOracleRequest2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAuthorizedSenders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getForwarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes32","name":"specId","type":"bytes32"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"operatorRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ownerTransferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"senders","type":"address[]"}],"name":"setAuthorizedSenders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","distributeFunds(address[],uint256[])":"6bd59ec0","fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)":"6ae0bc76","getAuthorizedSenders()":"2408afaa","getForwarder()":"a0042526","isAuthorizedSender(address)":"fa00763a","operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes)":"3c6d41b9","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946","ownerTransferAndCall(address,uint256,bytes)":"902fc370","setAuthorizedSenders(address[])":"ee56997b","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"distributeFunds\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"fulfillOracleRequest2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuthorizedSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"specId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"operatorRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ownerTransferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"senders\",\"type\":\"address[]\"}],\"name\":\"setAuthorizedSenders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":\"OperatorInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"OracleInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","isAuthorizedSender(address)":"fa00763a","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":\"OracleInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"PointerInterface":{"abi":[{"inputs":[],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getAddress()":"38cc4831"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":\"PointerInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"BufferChainlink":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b90e44a5e48e43208418560358cef9c2b18e25770097989023282478f541b8d64736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST SWAP1 0xE4 0x4A 0x5E 0x48 0xE4 ORIGIN ADDMOD COINBASE DUP6 PUSH1 0x35 DUP13 0xEF SWAP13 0x2B XOR 0xE2 JUMPI PUSH17 0x97989023282478F541B8D64736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"441:9632:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;441:9632:8;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b90e44a5e48e43208418560358cef9c2b18e25770097989023282478f541b8d64736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST SWAP1 0xE4 0x4A 0x5E 0x48 0xE4 ORIGIN ADDMOD COINBASE DUP6 PUSH1 0x35 DUP13 0xEF SWAP13 0x2B XOR 0xE2 JUMPI PUSH17 0x97989023282478F541B8D64736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"441:9632:8:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"A library for working with mutable byte buffers in Solidity. Byte buffers are mutable and expandable, and provide a variety of primitives for writing to them. At any time you can fetch a bytes object containing the current contents of the buffer. The bytes object should not be stored between operations, as it may change due to resizing of the buffer.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":\"BufferChainlink\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"CBORChainlink":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0cc11b5be072f7d7cbc8fdc042eb6f7ea573a98370f597573bece0637c51ec564736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 0xCC GT 0xB5 0xBE SMOD 0x2F PUSH30 0x7CBC8FDC042EB6F7EA573A98370F597573BECE0637C51EC564736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"115:3271:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;115:3271:9;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0cc11b5be072f7d7cbc8fdc042eb6f7ea573a98370f597573bece0637c51ec564736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 0xCC GT 0xB5 0xBE SMOD 0x2F PUSH30 0x7CBC8FDC042EB6F7EA573A98370F597573BECE0637C51EC564736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"115:3271:9:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":\"CBORChainlink\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ENSResolver":{"abi":[{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"addr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addr(bytes32)":"3b3b57de"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":\"ENSResolver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol":{"BasicRiskpool":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"activeBundles","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"LogBasicRiskpoolBundlesAndPolicies","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogBasicRiskpoolCandidateBundleAmountCheck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isMatching","type":"bool"}],"name":"LogRiskpoolBundleMatchesPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isSecured","type":"bool"}],"name":"LogRiskpoolCollateralLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolAddress","type":"address"}],"name":"LogRiskpoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"DEFAULT_FILTER_DATA_STRUCTURE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FULL_COLLATERALIZATION_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"},{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"name":"bundleMatchesApplication","outputs":[{"internalType":"bool","name":"isMatching","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialAmount","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapital","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getErc20Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFilterDataStructure","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSumOfSumInsuredCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_FILTER_DATA_STRUCTURE()":"7893c7bc","FULL_COLLATERALIZATION_LEVEL()":"45fe1c6d","activeBundles()":"4101b90c","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","bundleMatchesApplication((uint256,uint256,uint256,uint8,bytes,uint256,uint256,uint256,uint256,uint256),(uint8,uint256,uint256,bytes,uint256,uint256))":"86c71288","bundles()":"18442e63","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(bytes32,uint256)":"890fbf78","createBundle(bytes,uint256)":"7888a2ff","declineCallback()":"bd1fe5d0","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","getActiveBundleId(uint256)":"0676cb0e","getBalance()":"12065fe0","getBundle(uint256)":"2d0821b7","getCapacity()":"c40000d4","getCapital()":"e0032383","getCollateralizationLevel()":"54afef63","getErc20Token()":"feb1824b","getFilterDataStructure()":"3dcdde17","getFullCollateralizationLevel()":"f1d354d0","getId()":"5d1ca631","getMaximumNumberOfActiveBundles()":"7f3b6980","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getSumOfSumInsuredCap()":"a18aa128","getTotalValueLocked()":"b26025aa","getType()":"15dae03e","getWallet()":"13299604","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","lockBundle(uint256)":"a17030d5","owner()":"8da5cb5b","pauseCallback()":"d73cd992","processPolicyPayout(bytes32,uint256)":"82558906","processPolicyPremium(bytes32,uint256)":"3629c3c4","proposalCallback()":"638ce0ba","releasePolicy(bytes32)":"c3004c86","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","setMaximumNumberOfActiveBundles(uint256)":"652028e5","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unlockBundle(uint256)":"316c5348","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"activeBundles\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolBundlesAndPolicies\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolCandidateBundleAmountCheck\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolBundleMatchesPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolCollateralLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolAddress\",\"type\":\"address\"}],\"name\":\"LogRiskpoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_FILTER_DATA_STRUCTURE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_COLLATERALIZATION_LEVEL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"name\":\"bundleMatchesApplication\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialAmount\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getErc20Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFilterDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSumOfSumInsuredCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\":\"BasicRiskpool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\":{\"keccak256\":\"0xb86d781f945942220e37e1903420537fa3ad5539c0f341c4cccdfb1b11d196ee\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bb61f5c4724bcf6ece000fa46359dfabd60a91e82b8e637bf27e3028119047c\",\"dweb:/ipfs/QmWJ5zhmwCSKemq6PKhddWbbiEMsVVS9abCz5tU6s7b8f3\"]},\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Riskpool.sol\":{\"keccak256\":\"0x627c05cef03e42f2b798004db6d000d574c0edc383d185952592425895ada20e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d20ecfaf1ed6c983cd81482d982373b8d4d00f6cbe6ed0e67e78255e71c7ac86\",\"dweb:/ipfs/QmdwKC99b54yMa3rKJdwD4RjcbLgX6hkLV6SYjfgFbLi5T\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/Component.sol":{"Component":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","declineCallback()":"bd1fe5d0","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","owner()":"8da5cb5b","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":\"Component\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/IComponent.sol":{"IComponent":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","declineCallback()":"bd1fe5d0","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":\"IComponent\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/IOracle.sol":{"IOracle":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oracleAddress","type":"address"}],"name":"LogOracleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleProposed","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes","name":"input","type":"bytes"}],"name":"request","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","cancel(uint256)":"40e58ee5","declineCallback()":"bd1fe5d0","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","request(uint256,bytes)":"ffc79065","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"}],\"name\":\"LogOracleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleProposed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"request\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/IOracle.sol\":\"IOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/IProduct.sol":{"IProduct":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"productAddress","type":"address"}],"name":"LogProductCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductProposed","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getApplicationDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPayoutDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"policyFlow","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"riskPoolCapacityCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","declineCallback()":"bd1fe5d0","getApplicationDataStructure()":"94f64ff4","getClaimDataStructure()":"3ec92bda","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getPayoutDataStructure()":"39cf5e16","getPolicyFlow()":"637d08f4","getRegistry()":"5ab1bd53","getRiskpoolId()":"70d2fe53","getState()":"1865c57d","getToken()":"21df0da7","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","resumeCallback()":"a18f5ae2","riskPoolCapacityCallback(uint256)":"f4fdc1fa","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"LogProductCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductProposed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApplicationDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayoutDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"policyFlow\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"riskPoolCapacityCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/IProduct.sol\":\"IProduct\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/IRiskpool.sol":{"IRiskpool":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isMatching","type":"bool"}],"name":"LogRiskpoolBundleMatchesPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isSecured","type":"bool"}],"name":"LogRiskpoolCollateralLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolAddress","type":"address"}],"name":"LogRiskpoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolProposed","type":"event"},{"inputs":[],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"},{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"name":"bundleMatchesApplication","outputs":[{"internalType":"bool","name":"isMatching","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[{"internalType":"bool","name":"isSecured","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialAmount","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapital","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getErc20Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFilterDataStructure","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSumOfSumInsuredCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"activeBundles()":"4101b90c","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","bundleMatchesApplication((uint256,uint256,uint256,uint8,bytes,uint256,uint256,uint256,uint256,uint256),(uint8,uint256,uint256,bytes,uint256,uint256))":"86c71288","bundles()":"18442e63","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(bytes32,uint256)":"890fbf78","createBundle(bytes,uint256)":"7888a2ff","declineCallback()":"bd1fe5d0","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","getActiveBundleId(uint256)":"0676cb0e","getBalance()":"12065fe0","getBundle(uint256)":"2d0821b7","getCapacity()":"c40000d4","getCapital()":"e0032383","getCollateralizationLevel()":"54afef63","getErc20Token()":"feb1824b","getFilterDataStructure()":"3dcdde17","getFullCollateralizationLevel()":"f1d354d0","getId()":"5d1ca631","getMaximumNumberOfActiveBundles()":"7f3b6980","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getSumOfSumInsuredCap()":"a18aa128","getTotalValueLocked()":"b26025aa","getType()":"15dae03e","getWallet()":"13299604","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","lockBundle(uint256)":"a17030d5","pauseCallback()":"d73cd992","processPolicyPayout(bytes32,uint256)":"82558906","processPolicyPremium(bytes32,uint256)":"3629c3c4","proposalCallback()":"638ce0ba","releasePolicy(bytes32)":"c3004c86","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","setMaximumNumberOfActiveBundles(uint256)":"652028e5","suspendCallback()":"b3fca9bd","unlockBundle(uint256)":"316c5348","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolBundleMatchesPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolCollateralLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolAddress\",\"type\":\"address\"}],\"name\":\"LogRiskpoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolProposed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"name\":\"bundleMatchesApplication\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialAmount\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getErc20Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFilterDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSumOfSumInsuredCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":\"IRiskpool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/Oracle.sol":{"Oracle":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oracleAddress","type":"address"}],"name":"LogOracleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes","name":"input","type":"bytes"}],"name":"request","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","cancel(uint256)":"40e58ee5","declineCallback()":"bd1fe5d0","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","owner()":"8da5cb5b","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","request(uint256,bytes)":"ffc79065","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"}],\"name\":\"LogOracleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"request\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/Oracle.sol\":\"Oracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/Oracle.sol\":{\"keccak256\":\"0xc0de2df5ab9dbde82f5bba5e0bd311b4b0e708a90a7541c453581cd369795d66\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cbfa0790664076b9a1f2c983a27f60ce5b66d9357df9dd17c29f1909a0cdfef6\",\"dweb:/ipfs/Qmco66eWdxHYNJZbaMC6oi1Pqq3WptZgtDs469kF2RkUXB\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/Product.sol":{"Product":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"productAddress","type":"address"}],"name":"LogProductCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getApplicationDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPayoutDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"riskPoolCapacityCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","declineCallback()":"bd1fe5d0","getApplicationDataStructure()":"94f64ff4","getClaimDataStructure()":"3ec92bda","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getPayoutDataStructure()":"39cf5e16","getPolicyFlow()":"637d08f4","getRegistry()":"5ab1bd53","getRiskpoolId()":"70d2fe53","getState()":"1865c57d","getToken()":"21df0da7","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","owner()":"8da5cb5b","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","riskPoolCapacityCallback(uint256)":"f4fdc1fa","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"LogProductCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApplicationDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayoutDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"riskPoolCapacityCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/Product.sol\":\"Product\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/Product.sol\":{\"keccak256\":\"0xdf55ff9638da4db1501362fc2ffcd26858b7c09b7cc5e0701f1bb31081142815\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fdbfbd830dafe0d721150778469cbbdf01058f8713c3636d2ba48234761e8590\",\"dweb:/ipfs/QmZ9K5X2ant5TtUhA9kgXUAMe7y9MUHpnv3PQUKAmxwVYj\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/Riskpool.sol":{"Riskpool":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isMatching","type":"bool"}],"name":"LogRiskpoolBundleMatchesPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isSecured","type":"bool"}],"name":"LogRiskpoolCollateralLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolAddress","type":"address"}],"name":"LogRiskpoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"DEFAULT_FILTER_DATA_STRUCTURE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FULL_COLLATERALIZATION_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"},{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"name":"bundleMatchesApplication","outputs":[{"internalType":"bool","name":"isMatching","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialAmount","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapital","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getErc20Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFilterDataStructure","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSumOfSumInsuredCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_FILTER_DATA_STRUCTURE()":"7893c7bc","FULL_COLLATERALIZATION_LEVEL()":"45fe1c6d","activeBundles()":"4101b90c","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","bundleMatchesApplication((uint256,uint256,uint256,uint8,bytes,uint256,uint256,uint256,uint256,uint256),(uint8,uint256,uint256,bytes,uint256,uint256))":"86c71288","bundles()":"18442e63","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(bytes32,uint256)":"890fbf78","createBundle(bytes,uint256)":"7888a2ff","declineCallback()":"bd1fe5d0","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","getActiveBundleId(uint256)":"0676cb0e","getBalance()":"12065fe0","getBundle(uint256)":"2d0821b7","getCapacity()":"c40000d4","getCapital()":"e0032383","getCollateralizationLevel()":"54afef63","getErc20Token()":"feb1824b","getFilterDataStructure()":"3dcdde17","getFullCollateralizationLevel()":"f1d354d0","getId()":"5d1ca631","getMaximumNumberOfActiveBundles()":"7f3b6980","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getSumOfSumInsuredCap()":"a18aa128","getTotalValueLocked()":"b26025aa","getType()":"15dae03e","getWallet()":"13299604","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","lockBundle(uint256)":"a17030d5","owner()":"8da5cb5b","pauseCallback()":"d73cd992","processPolicyPayout(bytes32,uint256)":"82558906","processPolicyPremium(bytes32,uint256)":"3629c3c4","proposalCallback()":"638ce0ba","releasePolicy(bytes32)":"c3004c86","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","setMaximumNumberOfActiveBundles(uint256)":"652028e5","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unlockBundle(uint256)":"316c5348","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolBundleMatchesPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolCollateralLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolAddress\",\"type\":\"address\"}],\"name\":\"LogRiskpoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_FILTER_DATA_STRUCTURE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_COLLATERALIZATION_LEVEL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"name\":\"bundleMatchesApplication\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialAmount\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getErc20Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFilterDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSumOfSumInsuredCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/Riskpool.sol\":\"Riskpool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Riskpool.sol\":{\"keccak256\":\"0x627c05cef03e42f2b798004db6d000d574c0edc383d185952592425895ada20e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d20ecfaf1ed6c983cd81482d982373b8d4d00f6cbe6ed0e67e78255e71c7ac86\",\"dweb:/ipfs/QmdwKC99b54yMa3rKJdwD4RjcbLgX6hkLV6SYjfgFbLi5T\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IAccess.sol":{"IAccess":{"abi":[{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"addRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDefaultAdminRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleProviderRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProductOwnerRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolKeeperRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"invalidateRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addRole(bytes32)":"274b02a7","getDefaultAdminRole()":"52a9c8d7","getOracleProviderRole()":"d49d21c0","getProductOwnerRole()":"775a4048","getRiskpoolKeeperRole()":"3ffdd2f3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","invalidateRole(bytes32)":"d17d0233","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"addRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDefaultAdminRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleProviderRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductOwnerRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolKeeperRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"invalidateRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":\"IAccess\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IBundle.sol":{"IBundle":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundleCapitalProvided","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundleCapitalWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogBundlePayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundlePolicyCollateralized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundlePolicyReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"oldState","type":"uint8"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"newState","type":"uint8"}],"name":"LogBundleStateChanged","type":"event"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"uint256","name":"riskpoolId_","type":"uint256"},{"internalType":"bytes","name":"filter_","type":"bytes"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"create","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"burn(uint256)":"42966c68","close(uint256)":"0aebeb4e","collateralizePolicy(uint256,bytes32,uint256)":"4d03f9b7","create(address,uint256,bytes,uint256)":"c0e71404","defund(uint256,uint256)":"c397ae39","fund(uint256,uint256)":"a65e2cfd","lock(uint256)":"dd467064","processPayout(uint256,bytes32,uint256)":"b299cc26","processPremium(uint256,bytes32,uint256)":"b7267420","releasePolicy(uint256,bytes32)":"bb540df6","unlock(uint256)":"6198e339"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundleCapitalProvided\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundleCapitalWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogBundlePayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundlePolicyCollateralized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundlePolicyReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"oldState\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"LogBundleStateChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"filter_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":\"IBundle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol":{"IComponentEvents":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":\"IComponentEvents\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/ILicense.sol":{"ILicense":{"abi":[{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getAuthorizationStatus","outputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"bool","name":"isAuthorized","type":"bool"},{"internalType":"address","name":"policyFlow","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getAuthorizationStatus(address)":"d3e9c314"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"getAuthorizationStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"policyFlow\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/ILicense.sol\":\"ILicense\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/ILicense.sol\":{\"keccak256\":\"0x2fcefcbe60dfa44e7a1d947ae2059ccfdc3d1a151a8604fb7e96c734e0ffb9be\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6af56dc46b2adeb0c0d88ccd0ca4e9857195c4d647ccf7e3df61a91da24f45ab\",\"dweb:/ipfs/QmX1eYC9nFwFE4PJchjApCDYgErdrtfS9qYEtzbbfc4Ssz\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IPolicy.sol":{"IPolicy":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogApplicationCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"}],"name":"LogApplicationPremiumAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogApplicationSumInsuredAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationUnderwritten","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"LogClaimClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"LogClaimConfirmed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"LogClaimCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"LogClaimDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"}],"name":"LogMetadataCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"}],"name":"LogMetadataStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payoutId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogPayoutCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"LogPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyExpired","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumExpectedAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"}],"name":"LogPolicyPremiumAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogPremiumCollected","type":"event"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"closeClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"closePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"confirmClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createClaim","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"createPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createPolicyFlow","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"declineApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"declineClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"expirePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"revokeApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwriteApplication","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","closeClaim(bytes32,uint256)":"7f29dba2","closePolicy(bytes32)":"adcadb28","collectPremium(bytes32,uint256)":"e3ebdea5","confirmClaim(bytes32,uint256,uint256)":"4e02c63f","createApplication(bytes32,uint256,uint256,bytes)":"6780336e","createClaim(bytes32,uint256,bytes)":"ec935668","createPayout(bytes32,uint256,uint256,bytes)":"db42b77b","createPolicy(bytes32)":"4c14ccc2","createPolicyFlow(address,uint256,bytes)":"a1814a1a","declineApplication(bytes32)":"296d6c7d","declineClaim(bytes32,uint256)":"4cda0de9","expirePolicy(bytes32)":"47e3b138","processPayout(bytes32,uint256)":"fe64372b","revokeApplication(bytes32)":"eb96cbed","underwriteApplication(bytes32)":"5c955288"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationPremiumAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationSumInsuredAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationUnderwritten\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"LogClaimClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"LogClaimConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"LogClaimCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"LogClaimDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"}],\"name\":\"LogMetadataCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"}],\"name\":\"LogMetadataStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogPayoutCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"LogPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyExpired\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"}],\"name\":\"LogPolicyPremiumAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogPremiumCollected\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"closeClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"closePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"confirmClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"createPolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createPolicyFlow\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"declineApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"declineClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"expirePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"revokeApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwriteApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":\"IPolicy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IPool.sol":{"IPool":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralizationFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralizationSucceeded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"address","name":"erc20Token","type":"address"},{"indexed":false,"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"LogRiskpoolRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"sumInsured","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateral","type":"uint256"}],"name":"LogRiskpoolRequiredCollateral","type":"event"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"registerRiskpool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"setRiskpoolForProduct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"processPayout(bytes32,uint256)":"fe64372b","processPremium(bytes32,uint256)":"02108268","registerRiskpool(uint256,address,address,uint256,uint256)":"57419e8f","release(bytes32)":"67d42a8b","setRiskpoolForProduct(uint256,uint256)":"f93b3673","underwrite(bytes32)":"1b07b17f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralizationFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralizationSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolRequiredCollateral\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"registerRiskpool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"setRiskpoolForProduct\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IPool.sol\":\"IPool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IQuery.sol":{"IQuery":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"LogOracleCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"responsibleOracleId","type":"uint256"}],"name":"LogOracleRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"address","name":"responder","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"}],"name":"LogOracleResponded","type":"event"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"bytes","name":"input","type":"bytes"},{"internalType":"string","name":"callbackMethodName","type":"string"},{"internalType":"address","name":"callbackContractAddress","type":"address"},{"internalType":"uint256","name":"responsibleOracleId","type":"uint256"}],"name":"request","outputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"address","name":"responder","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"respond","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancel(uint256)":"40e58ee5","request(bytes32,bytes,string,address,uint256)":"2c933f22","respond(uint256,address,bytes)":"9af8c4ba"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"LogOracleCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"LogOracleRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"responder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"LogOracleResponded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"callbackMethodName\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"callbackContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"request\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"responder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"respond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":\"IQuery\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IRegistry.sol":{"IRegistry":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"LogContractDeregistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isNew","type":"bool"}],"name":"LogContractRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"}],"name":"LogReleasePrepared","type":"event"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"contractName","outputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contracts","outputs":[{"internalType":"uint256","name":"_numberOfContracts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregisterInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"ensureSender","outputs":[{"internalType":"bool","name":"_senderMatches","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContract","outputs":[{"internalType":"address","name":"_contractAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractInRelease","outputs":[{"internalType":"address","name":"_contractAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRelease","outputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newRelease","type":"bytes32"}],"name":"prepareRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"registerInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"contractName(uint256)":"f6b3e7d0","contracts()":"6c0f79b6","deregister(bytes32)":"20813154","deregisterInRelease(bytes32,bytes32)":"dc527b08","ensureSender(address,bytes32)":"2ca65a79","getContract(bytes32)":"e16c7d98","getContractInRelease(bytes32,bytes32)":"b0ef18a0","getRelease()":"76b707b7","prepareRelease(bytes32)":"893917ea","register(bytes32,address)":"d22057a9","registerInRelease(bytes32,bytes32,address)":"1d5e7314"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"LogContractDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isNew\",\"type\":\"bool\"}],\"name\":\"LogContractRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"}],\"name\":\"LogReleasePrepared\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"contractName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_numberOfContracts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregisterInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"ensureSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_senderMatches\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractInRelease\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRelease\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newRelease\",\"type\":\"bytes32\"}],\"name\":\"prepareRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"registerInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":\"IRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/ITreasury.sol":{"ITreasury":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fixedFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fractionalFee","type":"uint256"}],"name":"LogTreasuryCapitalFeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryCapitalProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryCapitalTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"instanceWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryFeesTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"walletAddress","type":"address"}],"name":"LogTreasuryInstanceWalletSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPayoutTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fixedFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fractionalFee","type":"uint256"}],"name":"LogTreasuryPremiumFeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPremiumTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"erc20Address","type":"address"}],"name":"LogTreasuryProductTokenSet","type":"event"},{"anonymous":false,"inputs":[],"name":"LogTreasuryResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"walletAddress","type":"address"}],"name":"LogTreasuryRiskpoolWalletSet","type":"event"},{"anonymous":false,"inputs":[],"name":"LogTreasurySuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryWithdrawalProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryWithdrawalTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"}],"name":"createFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentToken","outputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpecification","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFractionFullUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceWallet","outputs":[{"internalType":"address","name":"instanceWalletAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpoolWallet","outputs":[{"internalType":"address","name":"riskpoolWalletAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"capitalAmount","type":"uint256"}],"name":"processCapital","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netCapitalAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPayoutAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPremiumAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"processPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPremiumAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processWithdrawal","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setCapitalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"instanceWalletAddress","type":"address"}],"name":"setInstanceWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setPremiumFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"}],"name":"setProductToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"riskpoolWalletAddress","type":"address"}],"name":"setRiskpoolWallet","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"createFeeSpecification(uint256,uint256,uint256,bytes)":"62f0ab55","getComponentToken(uint256)":"038696bb","getFeeSpecification(uint256)":"a434f0ad","getFractionFullUnit()":"8ccf5ca2","getInstanceWallet()":"a44330c4","getRiskpoolWallet(uint256)":"49081637","processCapital(uint256,uint256)":"26debdaa","processPayout(bytes32,uint256)":"fe64372b","processPremium(bytes32)":"5ecc078e","processPremium(bytes32,uint256)":"02108268","processWithdrawal(uint256,uint256)":"d9358075","setCapitalFees((uint256,uint256,uint256,bytes,uint256,uint256))":"8ca946aa","setInstanceWallet(address)":"cab2504d","setPremiumFees((uint256,uint256,uint256,bytes,uint256,uint256))":"01132a7f","setProductToken(uint256,address)":"cc9cf8cd","setRiskpoolWallet(uint256,address)":"86039aed"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalFeesSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"instanceWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryFeesTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"LogTreasuryInstanceWalletSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPayoutTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumFeesSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"LogTreasuryProductTokenSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LogTreasuryResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"LogTreasuryRiskpoolWalletSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LogTreasurySuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryWithdrawalProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryWithdrawalTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"}],\"name\":\"createFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpecification\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFractionFullUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instanceWalletAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"capitalAmount\",\"type\":\"uint256\"}],\"name\":\"processCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netCapitalAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPayoutAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremiumAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"processPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremiumAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processWithdrawal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setCapitalFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instanceWalletAddress\",\"type\":\"address\"}],\"name\":\"setInstanceWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setPremiumFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"setProductToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"}],\"name\":\"setRiskpoolWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":\"ITreasury\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol":{"IComponentOwnerService":{"abi":[{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IComponent","name":"component","type":"address"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"archive(uint256)":"93c829fc","pause(uint256)":"136439dd","propose(address)":"01267951","stake(uint256)":"a694fc3a","unpause(uint256)":"fabc1cbc","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"component\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":\"IComponentOwnerService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol":{"IInstanceOperatorService":{"abi":[{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"adjustStakingRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"}],"name":"createFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"createRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"deregister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"release","type":"bytes32"},{"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"deregisterInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"invalidateRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newRelease","type":"bytes32"}],"name":"prepareRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"address","name":"contractAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"release","type":"bytes32"},{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"address","name":"contractAddress","type":"address"}],"name":"registerInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"resume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setCapitalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"componentType","type":"uint16"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"setDefaultStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletAddress","type":"address"}],"name":"setInstanceWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setPremiumFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"}],"name":"setProductToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"walletAddress","type":"address"}],"name":"setRiskpoolWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"suspend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"adjustStakingRequirements(uint256,bytes)":"72beb6fb","approve(uint256)":"b759f954","archive(uint256)":"93c829fc","createFeeSpecification(uint256,uint256,uint256,bytes)":"62f0ab55","createRole(bytes32)":"c42994a2","decline(uint256)":"a0355f4e","deregister(bytes32)":"20813154","deregisterInRelease(bytes32,bytes32)":"dc527b08","grantRole(bytes32,address)":"2f2ff15d","invalidateRole(bytes32)":"d17d0233","prepareRelease(bytes32)":"893917ea","register(bytes32,address)":"d22057a9","registerInRelease(bytes32,bytes32,address)":"1d5e7314","resume(uint256)":"414000b5","resumeTreasury()":"10a81c4a","revokeRole(bytes32,address)":"d547741f","setCapitalFees((uint256,uint256,uint256,bytes,uint256,uint256))":"8ca946aa","setDefaultStaking(uint16,bytes)":"394c78ba","setInstanceWallet(address)":"cab2504d","setPremiumFees((uint256,uint256,uint256,bytes,uint256,uint256))":"01132a7f","setProductToken(uint256,address)":"cc9cf8cd","setRiskpoolWallet(uint256,address)":"86039aed","suspend(uint256)":"4b865846","suspendTreasury()":"d5fe1f10"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"adjustStakingRequirements\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"}],\"name\":\"createFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"createRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"deregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"deregisterInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"invalidateRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newRelease\",\"type\":\"bytes32\"}],\"name\":\"prepareRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"registerInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setCapitalFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"componentType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDefaultStaking\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"setInstanceWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setPremiumFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"setProductToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"setRiskpoolWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"suspend\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":\"IInstanceOperatorService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IInstanceService.sol":{"IInstanceService":{"abi":[{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"numberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"numberOfBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"claims","outputs":[{"internalType":"uint256","name":"numberOfClaims","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"contractName","outputs":[{"internalType":"bytes32","name":"name","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contracts","outputs":[{"internalType":"uint256","name":"numberOfContracts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"bundleIdx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getApplication","outputs":[{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"balanceAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBundleToken","outputs":[{"internalType":"contract IBundleToken","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"capacityAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getCapital","outputs":[{"internalType":"uint256","name":"capitalAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainName","outputs":[{"internalType":"string","name":"chainName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"getClaim","outputs":[{"components":[{"internalType":"enum IPolicy.ClaimState","name":"state","type":"uint8"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"uint256","name":"paidAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Claim","name":"claim","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponent","outputs":[{"internalType":"contract IComponent","name":"component","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"componentAddress","type":"address"}],"name":"getComponentId","outputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentOwnerService","outputs":[{"internalType":"contract IComponentOwnerService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"componentState","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentToken","outputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDefaultAdminRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeFractionFullUnit","outputs":[{"internalType":"uint256","name":"fullUnit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceId","outputs":[{"internalType":"bytes32","name":"instanceId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceOperator","outputs":[{"internalType":"address","name":"instanceOperator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceOperatorService","outputs":[{"internalType":"contract IInstanceOperatorService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceWallet","outputs":[{"internalType":"address","name":"walletAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getMetadata","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Metadata","name":"metadata","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleProviderRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleService","outputs":[{"internalType":"contract IOracleService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"getPayout","outputs":[{"components":[{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"enum IPolicy.PayoutState","name":"state","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Payout","name":"payout","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getPolicy","outputs":[{"components":[{"internalType":"enum IPolicy.PolicyState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"},{"internalType":"uint256","name":"premiumPaidAmount","type":"uint256"},{"internalType":"uint256","name":"claimsCount","type":"uint256"},{"internalType":"uint256","name":"openClaimsCount","type":"uint256"},{"internalType":"uint256","name":"payoutMaxAmount","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Policy","name":"policy","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProductOwnerRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProductService","outputs":[{"internalType":"contract IProductService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpool","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredAtRisk","type":"uint256"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPool.Pool","name":"riskPool","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolKeeperRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolService","outputs":[{"internalType":"contract IRiskpoolService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpoolWallet","outputs":[{"internalType":"address","name":"walletAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getStakedAssets","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getStakingRequirements","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"totalValueLockedAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTreasuryAddress","outputs":[{"internalType":"address","name":"treasuryAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"roleIsAssigned","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracles","outputs":[{"internalType":"uint256","name":"numberOfOracles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"payouts","outputs":[{"internalType":"uint256","name":"numberOfPayouts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processIds","outputs":[{"internalType":"uint256","name":"numberOfProcessIds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"products","outputs":[{"internalType":"uint256","name":"numberOfProducts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"riskpools","outputs":[{"internalType":"uint256","name":"numberOfRiskpools","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"unburntBundles","outputs":[{"internalType":"uint256","name":"numberOfUnburntBundles","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"activeBundles(uint256)":"a4266a66","bundles()":"18442e63","claims(bytes32)":"eff0f592","contractName(uint256)":"f6b3e7d0","contracts()":"6c0f79b6","getActiveBundleId(uint256,uint256)":"ec833b0c","getApplication(bytes32)":"bc506f64","getBalance(uint256)":"1e010439","getBundle(uint256)":"2d0821b7","getBundleToken()":"eb35783c","getCapacity(uint256)":"bcd5349f","getCapital(uint256)":"29560980","getChainId()":"3408e470","getChainName()":"d722b0bc","getClaim(bytes32,uint256)":"7f22c2d9","getComponent(uint256)":"4f27da18","getComponentId(address)":"2b1c7f73","getComponentOwnerService()":"6fa29853","getComponentState(uint256)":"5e966e45","getComponentToken(uint256)":"038696bb","getComponentType(uint256)":"dd51c86a","getDefaultAdminRole()":"52a9c8d7","getFeeFractionFullUnit()":"6319112b","getFullCollateralizationLevel()":"f1d354d0","getInstanceId()":"1551100f","getInstanceOperator()":"39c6fa90","getInstanceOperatorService()":"091924dc","getInstanceWallet()":"a44330c4","getMaximumNumberOfActiveBundles(uint256)":"7db32844","getMetadata(bytes32)":"a5961b4c","getOracleProviderRole()":"d49d21c0","getOracleService()":"a7ecda36","getPayout(bytes32,uint256)":"cef58f13","getPolicy(bytes32)":"a3f685f9","getProductOwnerRole()":"775a4048","getProductService()":"4288121d","getRiskpool(uint256)":"eb802114","getRiskpoolKeeperRole()":"3ffdd2f3","getRiskpoolService()":"442ed817","getRiskpoolWallet(uint256)":"49081637","getStakedAssets(uint256)":"3a42b053","getStakingRequirements(uint256)":"ab9c6ee4","getTotalValueLocked(uint256)":"3f5d9235","getTreasuryAddress()":"e0024604","hasRole(bytes32,address)":"91d14854","oracles()":"2857373a","payouts(bytes32)":"aeddb905","processIds()":"a427056e","products()":"c71e261f","riskpools()":"a054381f","unburntBundles(uint256)":"c559783e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfClaims\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"contractName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfContracts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bundleIdx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getApplication\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balanceAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBundleToken\",\"outputs\":[{\"internalType\":\"contract IBundleToken\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"capacityAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"capitalAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"chainName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"getClaim\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ClaimState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paidAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Claim\",\"name\":\"claim\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponent\",\"outputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"component\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"}],\"name\":\"getComponentId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentOwnerService\",\"outputs\":[{\"internalType\":\"contract IComponentOwnerService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"componentState\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDefaultAdminRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeFractionFullUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fullUnit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"instanceId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instanceOperator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceOperatorService\",\"outputs\":[{\"internalType\":\"contract IInstanceOperatorService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleProviderRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleService\",\"outputs\":[{\"internalType\":\"contract IOracleService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"getPayout\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PayoutState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Payout\",\"name\":\"payout\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getPolicy\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.PolicyState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premiumPaidAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openClaimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutMaxAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Policy\",\"name\":\"policy\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductOwnerRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductService\",\"outputs\":[{\"internalType\":\"contract IProductService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredAtRisk\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPool.Pool\",\"name\":\"riskPool\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolKeeperRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolService\",\"outputs\":[{\"internalType\":\"contract IRiskpoolService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getStakedAssets\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getStakingRequirements\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalValueLockedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasuryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"treasuryAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"roleIsAssigned\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfOracles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"payouts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPayouts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"processIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfProcessIds\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"products\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfProducts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"riskpools\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfRiskpools\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"unburntBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfUnburntBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":\"IInstanceService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IOracleService.sol":{"IOracleService":{"abi":[{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"respond","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"respond(uint256,bytes)":"e409534a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"respond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":\"IOracleService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IProductService.sol":{"IProductService":{"abi":[{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancelRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"closeClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPremiumAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"confirmClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"declineClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"expire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"newApplication","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"newClaim","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"newPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPayoutAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string","name":"callbackMethodName","type":"string"},{"internalType":"address","name":"callbackContractAddress","type":"address"},{"internalType":"uint256","name":"responsibleOracleId","type":"uint256"}],"name":"request","outputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"revoke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","cancelRequest(uint256)":"3015394c","close(bytes32)":"39c79e0c","closeClaim(bytes32,uint256)":"7f29dba2","collectPremium(bytes32,uint256)":"e3ebdea5","confirmClaim(bytes32,uint256,uint256)":"4e02c63f","decline(bytes32)":"8cc7d3d1","declineClaim(bytes32,uint256)":"4cda0de9","expire(bytes32)":"c6441798","newApplication(address,uint256,uint256,bytes,bytes)":"93b8414a","newClaim(bytes32,uint256,bytes)":"fae43d15","newPayout(bytes32,uint256,uint256,bytes)":"781d7846","processPayout(bytes32,uint256)":"fe64372b","request(bytes32,bytes,string,address,uint256)":"2c933f22","revoke(bytes32)":"b75c7dc6","underwrite(bytes32)":"1b07b17f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancelRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"closeClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremiumAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"confirmClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"declineClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"expire\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"newApplication\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"newClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"newPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPayoutAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"callbackMethodName\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"callbackContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"request\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IProductService.sol\":\"IProductService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol":{"IRiskpoolService":{"abi":[{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"filter_","type":"bytes"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralization","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"registerRiskpool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"maxNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(uint256,bytes32,uint256)":"4d03f9b7","createBundle(address,bytes,uint256)":"15fc1e74","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","lockBundle(uint256)":"a17030d5","processPayout(uint256,bytes32,uint256)":"b299cc26","processPremium(uint256,bytes32,uint256)":"b7267420","registerRiskpool(address,address,uint256,uint256)":"bf2e3546","releasePolicy(uint256,bytes32)":"bb540df6","setMaximumNumberOfActiveBundles(uint256,uint256)":"2127fd48","unlockBundle(uint256)":"316c5348"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"filter_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralization\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"registerRiskpool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":\"IRiskpoolService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol":{"ICoreProxy":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplemntation","type":"address"}],"name":"LogCoreContractUpgraded","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplemntation\",\"type\":\"address\"}],\"name\":\"LogCoreContractUpgraded\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol\":\"ICoreProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol\":{\"keccak256\":\"0xf223e92c2b295866c5826c62b63874f6822bd218d58fcc78b5792c0c6c682317\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6c3958aa0390c9e535c2892522729795fe5ed956f7e31409b339b19ab7bf1d5b\",\"dweb:/ipfs/QmW6ie3Gp1wKnAyAC1eciNfbHZJa9NtC2bd6fRv75PFHPh\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol":{"IBundleToken":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"LogBundleTokenBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"address","name":"tokenOwner","type":"address"}],"name":"LogBundleTokenMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burned","outputs":[{"internalType":"bool","name":"isBurned","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"doesExist","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"tokenCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burned(uint256)":"23250cae","exists(uint256)":"4f558e79","getApproved(uint256)":"081812fc","getBundleId(uint256)":"29a63083","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"LogBundleTokenBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenOwner\",\"type\":\"address\"}],\"name\":\"LogBundleTokenMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burned\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isBurned\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"doesExist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":\"IBundleToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/AccessControl.sol":{"AccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"AccessControlEnumerable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {AccessControl} that allows enumerating the members of each role.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":\"AccessControlEnumerable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"IAccessControlEnumerable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControlEnumerable declared to support ERC165 detection.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":\"IAccessControlEnumerable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"IERC1822Proxiable":{"abi":[{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"proxiableUUID()":"52d1902d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.\",\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":\"IERC1822Proxiable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"ERC1967Proxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2999:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"121:993:103","statements":[{"body":{"nodeType":"YulBlock","src":"167:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"176:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"184:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"169:6:103"},"nodeType":"YulFunctionCall","src":"169:22:103"},"nodeType":"YulExpressionStatement","src":"169:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"142:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"151:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"138:3:103"},"nodeType":"YulFunctionCall","src":"138:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"134:3:103"},"nodeType":"YulFunctionCall","src":"134:32:103"},"nodeType":"YulIf","src":"131:2:103"},{"nodeType":"YulVariableDeclaration","src":"202:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"221:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"215:5:103"},"nodeType":"YulFunctionCall","src":"215:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"206:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"294:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"311:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"296:6:103"},"nodeType":"YulFunctionCall","src":"296:22:103"},"nodeType":"YulExpressionStatement","src":"296:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"253:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"264:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"279:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"284:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"288:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"271:3:103"},"nodeType":"YulFunctionCall","src":"271:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"260:3:103"},"nodeType":"YulFunctionCall","src":"260:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"250:2:103"},"nodeType":"YulFunctionCall","src":"250:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"243:6:103"},"nodeType":"YulFunctionCall","src":"243:50:103"},"nodeType":"YulIf","src":"240:2:103"},{"nodeType":"YulAssignment","src":"329:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"339:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"329:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"353:39:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"373:3:103"},"nodeType":"YulFunctionCall","src":"373:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"367:5:103"},"nodeType":"YulFunctionCall","src":"367:25:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"357:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"401:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"419:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"423:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"415:3:103"},"nodeType":"YulFunctionCall","src":"415:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"427:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"411:3:103"},"nodeType":"YulFunctionCall","src":"411:18:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"405:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"456:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"465:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"473:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"458:6:103"},"nodeType":"YulFunctionCall","src":"458:22:103"},"nodeType":"YulExpressionStatement","src":"458:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"444:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"452:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"441:2:103"},"nodeType":"YulFunctionCall","src":"441:14:103"},"nodeType":"YulIf","src":"438:2:103"},{"nodeType":"YulVariableDeclaration","src":"491:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"505:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"516:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"501:3:103"},"nodeType":"YulFunctionCall","src":"501:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"495:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"571:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"580:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"588:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"573:6:103"},"nodeType":"YulFunctionCall","src":"573:22:103"},"nodeType":"YulExpressionStatement","src":"573:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"550:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"554:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"546:3:103"},"nodeType":"YulFunctionCall","src":"546:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"561:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"542:3:103"},"nodeType":"YulFunctionCall","src":"542:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"535:6:103"},"nodeType":"YulFunctionCall","src":"535:35:103"},"nodeType":"YulIf","src":"532:2:103"},{"nodeType":"YulVariableDeclaration","src":"606:19:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"622:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"616:5:103"},"nodeType":"YulFunctionCall","src":"616:9:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"610:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"648:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"650:16:103"},"nodeType":"YulFunctionCall","src":"650:18:103"},"nodeType":"YulExpressionStatement","src":"650:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"640:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"644:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"637:2:103"},"nodeType":"YulFunctionCall","src":"637:10:103"},"nodeType":"YulIf","src":"634:2:103"},{"nodeType":"YulVariableDeclaration","src":"679:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"693:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"689:3:103"},"nodeType":"YulFunctionCall","src":"689:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"683:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"705:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"725:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"719:5:103"},"nodeType":"YulFunctionCall","src":"719:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"709:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"737:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"759:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"783:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"787:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"779:3:103"},"nodeType":"YulFunctionCall","src":"779:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"794:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"775:3:103"},"nodeType":"YulFunctionCall","src":"775:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"799:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"771:3:103"},"nodeType":"YulFunctionCall","src":"771:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"804:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"767:3:103"},"nodeType":"YulFunctionCall","src":"767:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"755:3:103"},"nodeType":"YulFunctionCall","src":"755:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"741:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"867:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"869:16:103"},"nodeType":"YulFunctionCall","src":"869:18:103"},"nodeType":"YulExpressionStatement","src":"869:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"826:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"838:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"823:2:103"},"nodeType":"YulFunctionCall","src":"823:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"846:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"858:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"843:2:103"},"nodeType":"YulFunctionCall","src":"843:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"820:2:103"},"nodeType":"YulFunctionCall","src":"820:46:103"},"nodeType":"YulIf","src":"817:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"905:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"909:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"898:6:103"},"nodeType":"YulFunctionCall","src":"898:22:103"},"nodeType":"YulExpressionStatement","src":"898:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"936:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"944:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"929:6:103"},"nodeType":"YulFunctionCall","src":"929:18:103"},"nodeType":"YulExpressionStatement","src":"929:18:103"},{"body":{"nodeType":"YulBlock","src":"993:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1002:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1010:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"995:6:103"},"nodeType":"YulFunctionCall","src":"995:22:103"},"nodeType":"YulExpressionStatement","src":"995:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"970:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"974:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"966:3:103"},"nodeType":"YulFunctionCall","src":"966:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"979:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"962:3:103"},"nodeType":"YulFunctionCall","src":"962:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"984:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"959:2:103"},"nodeType":"YulFunctionCall","src":"959:33:103"},"nodeType":"YulIf","src":"956:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1054:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1058:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1050:3:103"},"nodeType":"YulFunctionCall","src":"1050:11:103"},{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1067:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1075:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1063:3:103"},"nodeType":"YulFunctionCall","src":"1063:15:103"},{"name":"_3","nodeType":"YulIdentifier","src":"1080:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1028:21:103"},"nodeType":"YulFunctionCall","src":"1028:55:103"},"nodeType":"YulExpressionStatement","src":"1028:55:103"},{"nodeType":"YulAssignment","src":"1092:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1102:6:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1092:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"79:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"90:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"102:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"110:6:103","type":""}],"src":"14:1100:103"},{"body":{"nodeType":"YulBlock","src":"1256:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1266:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1286:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1280:5:103"},"nodeType":"YulFunctionCall","src":"1280:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1270:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1328:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1336:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1324:3:103"},"nodeType":"YulFunctionCall","src":"1324:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"1343:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1348:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1302:21:103"},"nodeType":"YulFunctionCall","src":"1302:53:103"},"nodeType":"YulExpressionStatement","src":"1302:53:103"},{"nodeType":"YulAssignment","src":"1364:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1375:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1380:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1371:3:103"},"nodeType":"YulFunctionCall","src":"1371:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1364:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"1232:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1237:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1248:3:103","type":""}],"src":"1119:274:103"},{"body":{"nodeType":"YulBlock","src":"1519:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1536:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1547:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1529:6:103"},"nodeType":"YulFunctionCall","src":"1529:21:103"},"nodeType":"YulExpressionStatement","src":"1529:21:103"},{"nodeType":"YulVariableDeclaration","src":"1559:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1579:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1573:5:103"},"nodeType":"YulFunctionCall","src":"1573:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1563:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1606:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1617:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1602:3:103"},"nodeType":"YulFunctionCall","src":"1602:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1622:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1595:6:103"},"nodeType":"YulFunctionCall","src":"1595:34:103"},"nodeType":"YulExpressionStatement","src":"1595:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1664:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1672:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1660:3:103"},"nodeType":"YulFunctionCall","src":"1660:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1681:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1692:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1677:3:103"},"nodeType":"YulFunctionCall","src":"1677:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1697:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1638:21:103"},"nodeType":"YulFunctionCall","src":"1638:66:103"},"nodeType":"YulExpressionStatement","src":"1638:66:103"},{"nodeType":"YulAssignment","src":"1713:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1729:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1748:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1756:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1744:3:103"},"nodeType":"YulFunctionCall","src":"1744:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1765:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1761:3:103"},"nodeType":"YulFunctionCall","src":"1761:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1740:3:103"},"nodeType":"YulFunctionCall","src":"1740:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1725:3:103"},"nodeType":"YulFunctionCall","src":"1725:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"1772:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1721:3:103"},"nodeType":"YulFunctionCall","src":"1721:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1713:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1510:4:103","type":""}],"src":"1398:383:103"},{"body":{"nodeType":"YulBlock","src":"1960:235:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1977:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1988:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1970:6:103"},"nodeType":"YulFunctionCall","src":"1970:21:103"},"nodeType":"YulExpressionStatement","src":"1970:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2011:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2022:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2007:3:103"},"nodeType":"YulFunctionCall","src":"2007:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2027:2:103","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2000:6:103"},"nodeType":"YulFunctionCall","src":"2000:30:103"},"nodeType":"YulExpressionStatement","src":"2000:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2050:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2061:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2046:3:103"},"nodeType":"YulFunctionCall","src":"2046:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2066:34:103","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2039:6:103"},"nodeType":"YulFunctionCall","src":"2039:62:103"},"nodeType":"YulExpressionStatement","src":"2039:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2121:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2132:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2117:3:103"},"nodeType":"YulFunctionCall","src":"2117:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2137:15:103","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2110:6:103"},"nodeType":"YulFunctionCall","src":"2110:43:103"},"nodeType":"YulExpressionStatement","src":"2110:43:103"},{"nodeType":"YulAssignment","src":"2162:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2185:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2170:3:103"},"nodeType":"YulFunctionCall","src":"2170:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2162:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1937:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1951:4:103","type":""}],"src":"1786:409:103"},{"body":{"nodeType":"YulBlock","src":"2374:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2391:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2402:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2384:6:103"},"nodeType":"YulFunctionCall","src":"2384:21:103"},"nodeType":"YulExpressionStatement","src":"2384:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2425:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2436:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2421:3:103"},"nodeType":"YulFunctionCall","src":"2421:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2441:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2414:6:103"},"nodeType":"YulFunctionCall","src":"2414:30:103"},"nodeType":"YulExpressionStatement","src":"2414:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2464:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2475:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2460:3:103"},"nodeType":"YulFunctionCall","src":"2460:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2480:34:103","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2453:6:103"},"nodeType":"YulFunctionCall","src":"2453:62:103"},"nodeType":"YulExpressionStatement","src":"2453:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2535:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2546:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2531:3:103"},"nodeType":"YulFunctionCall","src":"2531:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2551:8:103","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2524:6:103"},"nodeType":"YulFunctionCall","src":"2524:36:103"},"nodeType":"YulExpressionStatement","src":"2524:36:103"},{"nodeType":"YulAssignment","src":"2569:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2592:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2577:3:103"},"nodeType":"YulFunctionCall","src":"2577:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2569:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2351:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2365:4:103","type":""}],"src":"2200:402:103"},{"body":{"nodeType":"YulBlock","src":"2660:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"2670:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2679:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2674:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2739:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2764:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"2769:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2760:3:103"},"nodeType":"YulFunctionCall","src":"2760:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2783:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"2788:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2779:3:103"},"nodeType":"YulFunctionCall","src":"2779:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2773:5:103"},"nodeType":"YulFunctionCall","src":"2773:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2753:6:103"},"nodeType":"YulFunctionCall","src":"2753:39:103"},"nodeType":"YulExpressionStatement","src":"2753:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2700:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"2703:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2697:2:103"},"nodeType":"YulFunctionCall","src":"2697:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2711:19:103","statements":[{"nodeType":"YulAssignment","src":"2713:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2722:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2718:3:103"},"nodeType":"YulFunctionCall","src":"2718:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2713:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"2693:3:103","statements":[]},"src":"2689:113:103"},{"body":{"nodeType":"YulBlock","src":"2828:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2841:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"2846:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2837:3:103"},"nodeType":"YulFunctionCall","src":"2837:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"2855:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2830:6:103"},"nodeType":"YulFunctionCall","src":"2830:27:103"},"nodeType":"YulExpressionStatement","src":"2830:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2817:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"2820:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2814:2:103"},"nodeType":"YulFunctionCall","src":"2814:13:103"},"nodeType":"YulIf","src":"2811:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"2638:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"2643:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"2648:6:103","type":""}],"src":"2607:258:103"},{"body":{"nodeType":"YulBlock","src":"2902:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2919:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2926:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2931:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2922:3:103"},"nodeType":"YulFunctionCall","src":"2922:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2912:6:103"},"nodeType":"YulFunctionCall","src":"2912:31:103"},"nodeType":"YulExpressionStatement","src":"2912:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2959:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2962:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2952:6:103"},"nodeType":"YulFunctionCall","src":"2952:15:103"},"nodeType":"YulExpressionStatement","src":"2952:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2983:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2986:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2976:6:103"},"nodeType":"YulFunctionCall","src":"2976:15:103"},"nodeType":"YulExpressionStatement","src":"2976:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2870:127:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n let offset := mload(add(headStart, 32))\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let _3 := mload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value1, value1) }\n copy_memory_to_memory(add(_2, 32), add(memPtr, 32), _3)\n value1 := memPtr\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 45)\n mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n mstore(add(headStart, 96), \"ot a contract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405260405161071c38038061071c833981016040819052610022916102d2565b61002e82826000610035565b505061042c565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d083836040518060600160405280602781526020016106f5602791396101a9565b9392505050565b6100ea8161028760201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61029660201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606001600160a01b0384163b6102115760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610148565b600080856001600160a01b03168560405161022c919061039b565b600060405180830381855af49150503d8060008114610267576040519150601f19603f3d011682016040523d82523d6000602084013e61026c565b606091505b50909250905061027d828286610299565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a85750816100d0565b8251156102b85782518084602001fd5b8160405162461bcd60e51b815260040161014891906103b7565b600080604083850312156102e4578182fd5b82516001600160a01b03811681146102fa578283fd5b60208401519092506001600160401b0380821115610316578283fd5b818501915085601f830112610329578283fd5b81518181111561033b5761033b610416565b604051601f8201601f19908116603f0116810190838211818310171561036357610363610416565b8160405282815288602084870101111561037b578586fd5b61038c8360208301602088016103ea565b80955050505050509250929050565b600082516103ad8184602087016103ea565b9190910192915050565b60006020825282518060208401526103d68160408501602087016103ea565b601f01601f19169190910160400192915050565b60005b838110156104055781810151838201526020016103ed565b838111156100645750506000910152565b634e487b7160e01b600052604160045260246000fd5b6102ba8061043b6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b600060208252825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122055fbdb05f8012342ff5abfb4313f870083fb64d5b287fdd8f992499369cccd7764736f6c63430008020033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x71C CODESIZE SUB DUP1 PUSH2 0x71C DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x2D2 JUMP JUMPDEST PUSH2 0x2E DUP3 DUP3 PUSH1 0x0 PUSH2 0x35 JUMP JUMPDEST POP POP PUSH2 0x42C JUMP JUMPDEST PUSH2 0x3E DUP4 PUSH2 0x6B JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x4B JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x66 JUMPI PUSH2 0x64 DUP4 DUP4 PUSH2 0xAB PUSH1 0x20 SHL PUSH2 0x29 OR PUSH1 0x20 SHR JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x74 DUP2 PUSH2 0xD7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xD0 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x6F5 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x1A9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEA DUP2 PUSH2 0x287 PUSH1 0x20 SHL PUSH2 0x55 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x151 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x188 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x296 PUSH1 0x20 SHL PUSH2 0x64 OR PUSH1 0x20 SHR JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x211 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x148 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x22C SWAP2 SWAP1 PUSH2 0x39B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x267 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x27D DUP3 DUP3 DUP7 PUSH2 0x299 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x2A8 JUMPI POP DUP2 PUSH2 0xD0 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x2B8 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x148 SWAP2 SWAP1 PUSH2 0x3B7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E4 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2FA JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x316 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x329 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x33B JUMPI PUSH2 0x33B PUSH2 0x416 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x363 JUMPI PUSH2 0x363 PUSH2 0x416 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x37B JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x38C DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3EA JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3AD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3EA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3D6 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x405 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3ED JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x64 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BA DUP1 PUSH2 0x43B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH2 0x13 JUMPI PUSH2 0x11 PUSH2 0x17 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11 JUMPDEST PUSH2 0x27 PUSH2 0x22 PUSH2 0x67 JUMP JUMPDEST PUSH2 0x9F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25E PUSH1 0x27 SWAP2 CODECOPY PUSH2 0xC3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9A PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x130 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x14B SWAP2 SWAP1 PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x186 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x18B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x19B DUP3 DUP3 DUP7 PUSH2 0x1A5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1B4 JUMPI POP DUP2 PUSH2 0x4E JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x1C4 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x1FA JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1F0 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x22D JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x219 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x22D JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x248 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x230 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x257 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122055FBDB SDIV 0xF8 ADD 0x23 TIMESTAMP SELFDESTRUCT GAS 0xBF 0xB4 BALANCE EXTCODEHASH DUP8 STOP DUP4 0xFB PUSH5 0xD5B287FDD8 0xF9 SWAP3 0x49 SWAP4 PUSH10 0xCCCD7764736F6C634300 ADDMOD MUL STOP CALLER COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C65640000 ","sourceMap":"567:723:43:-:0;;;958:112;;;;;;;;;;;;;;;;;;:::i;:::-;1024:39;1042:6;1050:5;1057;1024:17;:39::i;:::-;958:112;;567:723;;2183:295:44;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;;;;;:53;;:::i;:::-;;2360:112;2183:295;;;:::o;1897:152::-;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:44;;;;;;;;1897:152;:::o;6570:198:58:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:58:o;1532:259:44:-;1613:37;1632:17;1613:18;;;;;:37;;:::i;:::-;1605:95;;;;-1:-1:-1;;;1605:95:44;;1988:2:103;1605:95:44;;;1970:21:103;2027:2;2007:18;;;2000:30;2066:34;2046:18;;;2039:62;-1:-1:-1;;;2117:18:103;;;2110:43;2170:19;;1605:95:44;;;;;;;;;1767:17;1710:48;1030:66;1737:20;;1710:26;;;;;:48;;:::i;:::-;:74;;-1:-1:-1;;;;;;1710:74:44;-1:-1:-1;;;;;1710:74:44;;;;;;;;;;-1:-1:-1;1532:259:44:o;6954:387:58:-;7095:12;-1:-1:-1;;;;;1465:19:58;;;7119:69;;;;-1:-1:-1;;;7119:69:58;;2402:2:103;7119:69:58;;;2384:21:103;2441:2;2421:18;;;2414:30;2480:34;2460:18;;;2453:62;-1:-1:-1;;;2531:18:103;;;2524:36;2577:19;;7119:69:58;2374:228:103;7119:69:58;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:58;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7199:67:58;;-1:-1:-1;7199:67:58;-1:-1:-1;7283:51:58;7199:67;;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:58:o;1175:320::-;-1:-1:-1;;;;;1465:19:58;;:23;;;1175:320::o;1614:190:60:-;1784:4;1760:38::o;7561:742:58:-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:58;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:58;;;;;;;;:::i;14:1100:103:-;;;163:2;151:9;142:7;138:23;134:32;131:2;;;184:6;176;169:22;131:2;215:16;;-1:-1:-1;;;;;260:31:103;;250:42;;240:2;;311:6;303;296:22;240:2;388;373:18;;367:25;339:5;;-1:-1:-1;;;;;;441:14:103;;;438:2;;;473:6;465;458:22;438:2;516:6;505:9;501:22;491:32;;561:7;554:4;550:2;546:13;542:27;532:2;;588:6;580;573:22;532:2;622;616:9;644:2;640;637:10;634:2;;;650:18;;:::i;:::-;725:2;719:9;693:2;779:13;;-1:-1:-1;;775:22:103;;;799:2;771:31;767:40;755:53;;;823:18;;;843:22;;;820:46;817:2;;;869:18;;:::i;:::-;909:10;905:2;898:22;944:2;936:6;929:18;984:7;979:2;974;970;966:11;962:20;959:33;956:2;;;1010:6;1002;995:22;956:2;1028:55;1080:2;1075;1067:6;1063:15;1058:2;1054;1050:11;1028:55;:::i;:::-;1102:6;1092:16;;;;;;;121:993;;;;;:::o;1119:274::-;;1286:6;1280:13;1302:53;1348:6;1343:3;1336:4;1328:6;1324:17;1302:53;:::i;:::-;1371:16;;;;;1256:137;-1:-1:-1;;1256:137:103:o;1398:383::-;;1547:2;1536:9;1529:21;1579:6;1573:13;1622:6;1617:2;1606:9;1602:18;1595:34;1638:66;1697:6;1692:2;1681:9;1677:18;1672:2;1664:6;1660:15;1638:66;:::i;:::-;1765:2;1744:15;-1:-1:-1;;1740:29:103;1725:45;;;;1772:2;1721:54;;1519:262;-1:-1:-1;;1519:262:103:o;2607:258::-;2679:1;2689:113;2703:6;2700:1;2697:13;2689:113;;;2779:11;;;2773:18;2760:11;;;2753:39;2725:2;2718:10;2689:113;;;2820:6;2817:1;2814:13;2811:2;;;-1:-1:-1;;2855:1:103;2837:16;;2830:27;2660:205::o;2870:127::-;2931:10;2926:3;2922:20;2919:1;2912:31;2962:4;2959:1;2952:15;2986:4;2983:1;2976:15;2902:95;567:723:43;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1348:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"151:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"161:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"181:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"175:5:103"},"nodeType":"YulFunctionCall","src":"175:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"165:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"223:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"231:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"219:3:103"},"nodeType":"YulFunctionCall","src":"219:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"238:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"243:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"197:21:103"},"nodeType":"YulFunctionCall","src":"197:53:103"},"nodeType":"YulExpressionStatement","src":"197:53:103"},{"nodeType":"YulAssignment","src":"259:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"270:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"275:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"266:3:103"},"nodeType":"YulFunctionCall","src":"266:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"259:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"127:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"132:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"143:3:103","type":""}],"src":"14:274:103"},{"body":{"nodeType":"YulBlock","src":"414:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"431:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"442:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"424:6:103"},"nodeType":"YulFunctionCall","src":"424:21:103"},"nodeType":"YulExpressionStatement","src":"424:21:103"},{"nodeType":"YulVariableDeclaration","src":"454:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"474:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"468:5:103"},"nodeType":"YulFunctionCall","src":"468:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"458:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"501:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"512:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"517:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"490:6:103"},"nodeType":"YulFunctionCall","src":"490:34:103"},"nodeType":"YulExpressionStatement","src":"490:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"559:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"567:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:103"},"nodeType":"YulFunctionCall","src":"555:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"576:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"587:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"572:3:103"},"nodeType":"YulFunctionCall","src":"572:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"592:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"533:21:103"},"nodeType":"YulFunctionCall","src":"533:66:103"},"nodeType":"YulExpressionStatement","src":"533:66:103"},{"nodeType":"YulAssignment","src":"608:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"624:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"643:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"651:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"639:3:103"},"nodeType":"YulFunctionCall","src":"639:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"660:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"656:3:103"},"nodeType":"YulFunctionCall","src":"656:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"635:3:103"},"nodeType":"YulFunctionCall","src":"635:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"620:3:103"},"nodeType":"YulFunctionCall","src":"620:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"667:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"616:3:103"},"nodeType":"YulFunctionCall","src":"616:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"608:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"383:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"394:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"405:4:103","type":""}],"src":"293:383:103"},{"body":{"nodeType":"YulBlock","src":"855:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"872:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"883:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"865:6:103"},"nodeType":"YulFunctionCall","src":"865:21:103"},"nodeType":"YulExpressionStatement","src":"865:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"906:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"917:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:103"},"nodeType":"YulFunctionCall","src":"902:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"922:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"895:6:103"},"nodeType":"YulFunctionCall","src":"895:30:103"},"nodeType":"YulExpressionStatement","src":"895:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"945:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"956:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"941:3:103"},"nodeType":"YulFunctionCall","src":"941:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"961:34:103","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"934:6:103"},"nodeType":"YulFunctionCall","src":"934:62:103"},"nodeType":"YulExpressionStatement","src":"934:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1016:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1027:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1012:3:103"},"nodeType":"YulFunctionCall","src":"1012:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1032:8:103","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1005:6:103"},"nodeType":"YulFunctionCall","src":"1005:36:103"},"nodeType":"YulExpressionStatement","src":"1005:36:103"},{"nodeType":"YulAssignment","src":"1050:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1062:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1073:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1058:3:103"},"nodeType":"YulFunctionCall","src":"1058:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1050:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"832:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"846:4:103","type":""}],"src":"681:402:103"},{"body":{"nodeType":"YulBlock","src":"1141:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1151:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1160:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1155:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1220:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1245:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"1250:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1241:3:103"},"nodeType":"YulFunctionCall","src":"1241:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1264:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"1269:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1260:3:103"},"nodeType":"YulFunctionCall","src":"1260:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1254:5:103"},"nodeType":"YulFunctionCall","src":"1254:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1234:6:103"},"nodeType":"YulFunctionCall","src":"1234:39:103"},"nodeType":"YulExpressionStatement","src":"1234:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1181:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1184:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1178:2:103"},"nodeType":"YulFunctionCall","src":"1178:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1192:19:103","statements":[{"nodeType":"YulAssignment","src":"1194:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1203:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"1206:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1199:3:103"},"nodeType":"YulFunctionCall","src":"1199:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1194:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1174:3:103","statements":[]},"src":"1170:113:103"},{"body":{"nodeType":"YulBlock","src":"1309:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1322:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1327:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1318:3:103"},"nodeType":"YulFunctionCall","src":"1318:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"1336:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1311:6:103"},"nodeType":"YulFunctionCall","src":"1311:27:103"},"nodeType":"YulExpressionStatement","src":"1311:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1298:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1301:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1295:2:103"},"nodeType":"YulFunctionCall","src":"1295:13:103"},"nodeType":"YulIf","src":"1292:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1119:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1124:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"1129:6:103","type":""}],"src":"1088:258:103"}]},"contents":"{\n { }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b600060208252825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122055fbdb05f8012342ff5abfb4313f870083fb64d5b287fdd8f992499369cccd7764736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH2 0x13 JUMPI PUSH2 0x11 PUSH2 0x17 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11 JUMPDEST PUSH2 0x27 PUSH2 0x22 PUSH2 0x67 JUMP JUMPDEST PUSH2 0x9F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25E PUSH1 0x27 SWAP2 CODECOPY PUSH2 0xC3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9A PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x130 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x14B SWAP2 SWAP1 PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x186 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x18B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x19B DUP3 DUP3 DUP7 PUSH2 0x1A5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1B4 JUMPI POP DUP2 PUSH2 0x4E JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x1C4 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x1FA JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1F0 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x22D JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x219 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x22D JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x248 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x230 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x257 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122055FBDB SDIV 0xF8 ADD 0x23 TIMESTAMP SELFDESTRUCT GAS 0xBF 0xB4 BALANCE EXTCODEHASH DUP8 STOP DUP4 0xFB PUSH5 0xD5B287FDD8 0xF9 SWAP3 0x49 SWAP4 PUSH10 0xCCCD7764736F6C634300 ADDMOD MUL STOP CALLER ","sourceMap":"567:723:43:-:0;;;;;;2898:11:45;:9;:11::i;:::-;567:723:43;;2675:11:45;2322:110;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;6570:198:58:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:58:o;1175:320::-;-1:-1:-1;;;;;1465:19:58;;:23;;;1175:320::o;1614:190:60:-;1784:4;1760:38::o;1148:140:43:-;1215:12;1246:35;1030:66:44;1380:54;-1:-1:-1;;;;;1380:54:44;;1301:140;1246:35:43;1239:42;;1148:140;:::o;948:895:45:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27;6954:387:58;7095:12;-1:-1:-1;;;;;1465:19:58;;;7119:69;;;;-1:-1:-1;;;7119:69:58;;883:2:103;7119:69:58;;;865:21:103;922:2;902:18;;;895:30;961:34;941:18;;;934:62;-1:-1:-1;;;1012:18:103;;;1005:36;1058:19;;7119:69:58;;;;;;;;;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:58;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:67;;;;7283:51;7300:7;7309:10;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:58:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:58;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:58;;;;;;;;:::i;14:274:103:-;;181:6;175:13;197:53;243:6;238:3;231:4;223:6;219:17;197:53;:::i;:::-;266:16;;;;;151:137;-1:-1:-1;;151:137:103:o;293:383::-;;442:2;431:9;424:21;474:6;468:13;517:6;512:2;501:9;497:18;490:34;533:66;592:6;587:2;576:9;572:18;567:2;559:6;555:15;533:66;:::i;:::-;660:2;639:15;-1:-1:-1;;635:29:103;620:45;;;;667:2;616:54;;414:262;-1:-1:-1;;414:262:103:o;1088:258::-;1160:1;1170:113;1184:6;1181:1;1178:13;1170:113;;;1260:11;;;1254:18;1241:11;;;1234:39;1206:2;1199:10;1170:113;;;1301:6;1298:1;1295:13;1292:2;;;1336:1;1327:6;1322:3;1318:16;1311:27;1292:2;;1141:205;;;:::o"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"ERC1967Upgrade":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"delegatecall\",\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is validated in the constructor.\"},\"_BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\"},\"_IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is validated in the constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":\"ERC1967Upgrade\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/Proxy.sol":{"Proxy":{"abi":[{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"IBeacon":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}"}},"@openzeppelin/contracts/security/Pausable.sol":{"Pausable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2039:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"78:845:103","statements":[{"body":{"nodeType":"YulBlock","src":"127:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"136:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"143:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"129:6:103"},"nodeType":"YulFunctionCall","src":"129:20:103"},"nodeType":"YulExpressionStatement","src":"129:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"106:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"114:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"102:3:103"},"nodeType":"YulFunctionCall","src":"102:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"121:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"98:3:103"},"nodeType":"YulFunctionCall","src":"98:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"91:6:103"},"nodeType":"YulFunctionCall","src":"91:35:103"},"nodeType":"YulIf","src":"88:2:103"},{"nodeType":"YulVariableDeclaration","src":"160:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"176:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"170:5:103"},"nodeType":"YulFunctionCall","src":"170:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"164:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"192:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"210:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"214:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"206:3:103"},"nodeType":"YulFunctionCall","src":"206:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"218:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"202:3:103"},"nodeType":"YulFunctionCall","src":"202:18:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"196:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"243:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"245:16:103"},"nodeType":"YulFunctionCall","src":"245:18:103"},"nodeType":"YulExpressionStatement","src":"245:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"235:2:103"},{"name":"_2","nodeType":"YulIdentifier","src":"239:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"232:2:103"},"nodeType":"YulFunctionCall","src":"232:10:103"},"nodeType":"YulIf","src":"229:2:103"},{"nodeType":"YulVariableDeclaration","src":"274:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"288:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"284:3:103"},"nodeType":"YulFunctionCall","src":"284:7:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"278:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"300:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"320:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"314:5:103"},"nodeType":"YulFunctionCall","src":"314:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"304:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"332:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"354:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"378:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"382:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:13:103"},{"name":"_3","nodeType":"YulIdentifier","src":"389:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"394:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"366:3:103"},"nodeType":"YulFunctionCall","src":"366:31:103"},{"name":"_3","nodeType":"YulIdentifier","src":"399:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"362:3:103"},"nodeType":"YulFunctionCall","src":"362:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"350:3:103"},"nodeType":"YulFunctionCall","src":"350:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"336:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"464:16:103"},"nodeType":"YulFunctionCall","src":"464:18:103"},"nodeType":"YulExpressionStatement","src":"464:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"421:10:103"},{"name":"_2","nodeType":"YulIdentifier","src":"433:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"418:2:103"},"nodeType":"YulFunctionCall","src":"418:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"441:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"453:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"438:2:103"},"nodeType":"YulFunctionCall","src":"438:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"415:2:103"},"nodeType":"YulFunctionCall","src":"415:46:103"},"nodeType":"YulIf","src":"412:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"500:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"504:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:103"},"nodeType":"YulFunctionCall","src":"493:22:103"},"nodeType":"YulExpressionStatement","src":"493:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"531:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"539:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"524:6:103"},"nodeType":"YulFunctionCall","src":"524:18:103"},"nodeType":"YulExpressionStatement","src":"524:18:103"},{"nodeType":"YulVariableDeclaration","src":"551:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"561:4:103","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"555:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"611:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"620:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"627:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"613:6:103"},"nodeType":"YulFunctionCall","src":"613:20:103"},"nodeType":"YulExpressionStatement","src":"613:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"588:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"596:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"584:3:103"},"nodeType":"YulFunctionCall","src":"584:15:103"},{"name":"_4","nodeType":"YulIdentifier","src":"601:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"580:3:103"},"nodeType":"YulFunctionCall","src":"580:24:103"},{"name":"end","nodeType":"YulIdentifier","src":"606:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"577:2:103"},"nodeType":"YulFunctionCall","src":"577:33:103"},"nodeType":"YulIf","src":"574:2:103"},{"nodeType":"YulVariableDeclaration","src":"644:14:103","value":{"name":"array","nodeType":"YulIdentifier","src":"653:5:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"648:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"713:87:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"742:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"750:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"738:3:103"},"nodeType":"YulFunctionCall","src":"738:14:103"},{"name":"_4","nodeType":"YulIdentifier","src":"754:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:103"},"nodeType":"YulFunctionCall","src":"734:23:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"773:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"781:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:103"},"nodeType":"YulFunctionCall","src":"769:14:103"},{"name":"_4","nodeType":"YulIdentifier","src":"785:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:103"},"nodeType":"YulFunctionCall","src":"765:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"759:5:103"},"nodeType":"YulFunctionCall","src":"759:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:103"},"nodeType":"YulFunctionCall","src":"727:63:103"},"nodeType":"YulExpressionStatement","src":"727:63:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"678:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"681:2:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"675:2:103"},"nodeType":"YulFunctionCall","src":"675:9:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"685:19:103","statements":[{"nodeType":"YulAssignment","src":"687:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"696:1:103"},{"name":"_4","nodeType":"YulIdentifier","src":"699:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"692:3:103"},"nodeType":"YulFunctionCall","src":"692:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"687:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"671:3:103","statements":[]},"src":"667:133:103"},{"body":{"nodeType":"YulBlock","src":"830:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"859:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"867:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"855:3:103"},"nodeType":"YulFunctionCall","src":"855:15:103"},{"name":"_4","nodeType":"YulIdentifier","src":"872:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"851:3:103"},"nodeType":"YulFunctionCall","src":"851:24:103"},{"name":"array","nodeType":"YulIdentifier","src":"877:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"844:6:103"},"nodeType":"YulFunctionCall","src":"844:39:103"},"nodeType":"YulExpressionStatement","src":"844:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"815:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"818:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"812:2:103"},"nodeType":"YulFunctionCall","src":"812:9:103"},"nodeType":"YulIf","src":"809:2:103"},{"nodeType":"YulAssignment","src":"902:15:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"911:6:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"902:5:103"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"52:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"60:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"68:5:103","type":""}],"src":"14:909:103"},{"body":{"nodeType":"YulBlock","src":"1046:474:103","statements":[{"body":{"nodeType":"YulBlock","src":"1092:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1101:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1109:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1094:6:103"},"nodeType":"YulFunctionCall","src":"1094:22:103"},"nodeType":"YulExpressionStatement","src":"1094:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1067:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1076:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1063:3:103"},"nodeType":"YulFunctionCall","src":"1063:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1088:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1059:3:103"},"nodeType":"YulFunctionCall","src":"1059:32:103"},"nodeType":"YulIf","src":"1056:2:103"},{"nodeType":"YulVariableDeclaration","src":"1127:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1147:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1141:5:103"},"nodeType":"YulFunctionCall","src":"1141:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1131:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1166:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1184:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1188:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1180:3:103"},"nodeType":"YulFunctionCall","src":"1180:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"1192:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1176:3:103"},"nodeType":"YulFunctionCall","src":"1176:18:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1170:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1221:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1230:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1238:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1223:6:103"},"nodeType":"YulFunctionCall","src":"1223:22:103"},"nodeType":"YulExpressionStatement","src":"1223:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1209:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1217:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1206:2:103"},"nodeType":"YulFunctionCall","src":"1206:14:103"},"nodeType":"YulIf","src":"1203:2:103"},{"nodeType":"YulAssignment","src":"1256:71:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1299:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1310:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1295:3:103"},"nodeType":"YulFunctionCall","src":"1295:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1319:7:103"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1266:28:103"},"nodeType":"YulFunctionCall","src":"1266:61:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1256:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1336:41:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1362:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1373:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1358:3:103"},"nodeType":"YulFunctionCall","src":"1358:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1352:5:103"},"nodeType":"YulFunctionCall","src":"1352:25:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1340:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1406:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1415:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1423:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1408:6:103"},"nodeType":"YulFunctionCall","src":"1408:22:103"},"nodeType":"YulExpressionStatement","src":"1408:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1392:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1402:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:103"},"nodeType":"YulFunctionCall","src":"1389:16:103"},"nodeType":"YulIf","src":"1386:2:103"},{"nodeType":"YulAssignment","src":"1441:73:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1484:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1495:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1480:3:103"},"nodeType":"YulFunctionCall","src":"1480:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1506:7:103"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1451:28:103"},"nodeType":"YulFunctionCall","src":"1451:63:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1441:6:103"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1004:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1015:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1027:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1035:6:103","type":""}],"src":"928:592:103"},{"body":{"nodeType":"YulBlock","src":"1580:325:103","statements":[{"nodeType":"YulAssignment","src":"1590:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1604:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1610:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1600:3:103"},"nodeType":"YulFunctionCall","src":"1600:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1590:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1621:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1651:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1657:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1647:3:103"},"nodeType":"YulFunctionCall","src":"1647:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1625:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1698:31:103","statements":[{"nodeType":"YulAssignment","src":"1700:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1714:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1722:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1710:3:103"},"nodeType":"YulFunctionCall","src":"1710:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1700:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1678:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1671:6:103"},"nodeType":"YulFunctionCall","src":"1671:26:103"},"nodeType":"YulIf","src":"1668:2:103"},{"body":{"nodeType":"YulBlock","src":"1788:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1809:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1816:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1821:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1812:3:103"},"nodeType":"YulFunctionCall","src":"1812:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1802:6:103"},"nodeType":"YulFunctionCall","src":"1802:31:103"},"nodeType":"YulExpressionStatement","src":"1802:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1853:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1856:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1846:6:103"},"nodeType":"YulFunctionCall","src":"1846:15:103"},"nodeType":"YulExpressionStatement","src":"1846:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1881:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1884:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1874:6:103"},"nodeType":"YulFunctionCall","src":"1874:15:103"},"nodeType":"YulExpressionStatement","src":"1874:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1744:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1767:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1775:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1764:2:103"},"nodeType":"YulFunctionCall","src":"1764:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1741:2:103"},"nodeType":"YulFunctionCall","src":"1741:38:103"},"nodeType":"YulIf","src":"1738:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1560:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1569:6:103","type":""}],"src":"1525:380:103"},{"body":{"nodeType":"YulBlock","src":"1942:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1966:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1971:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1962:3:103"},"nodeType":"YulFunctionCall","src":"1962:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1952:6:103"},"nodeType":"YulFunctionCall","src":"1952:31:103"},"nodeType":"YulExpressionStatement","src":"1952:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1999:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2002:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1992:6:103"},"nodeType":"YulFunctionCall","src":"1992:15:103"},"nodeType":"YulExpressionStatement","src":"1992:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2023:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2026:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2016:6:103"},"nodeType":"YulFunctionCall","src":"2016:15:103"},"nodeType":"YulExpressionStatement","src":"2016:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1910:127:103"}]},"contents":"{\n { }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(array, array) }\n let i := array\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), array)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(value0, value0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(value1, value1) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000b0e38038062000b0e8339810160408190526200003491620001c1565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b6002810460018216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610883806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b4114610149578063a457c2d714610151578063a9059cbb14610164578063dd62ed3e14610177576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b661018a565b6040516100c3919061079b565b60405180910390f35b6100df6100da366004610772565b61021c565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610737565b610234565b604051601281526020016100c3565b6100df610131366004610772565b610258565b6100f36101443660046106e4565b61027a565b6100b6610299565b6100df61015f366004610772565b6102a8565b6100df610172366004610772565b610328565b6100f3610185366004610705565b610336565b60606003805461019990610812565b80601f01602080910402602001604051908101604052809291908181526020018280546101c590610812565b80156102125780601f106101e757610100808354040283529160200191610212565b820191906000526020600020905b8154815290600101906020018083116101f557829003601f168201915b5050505050905090565b60003361022a818585610361565b5060019392505050565b600033610242858285610485565b61024d8585856104ff565b506001949350505050565b60003361022a81858561026b8383610336565b61027591906107ee565b610361565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461019990610812565b600033816102b68286610336565b90508381101561031b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61024d8286868403610361565b60003361022a8185856104ff565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103c35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610312565b6001600160a01b0382166104245760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610312565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104918484610336565b905060001981146104f957818110156104ec5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610312565b6104f98484848403610361565b50505050565b6001600160a01b0383166105635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610312565b6001600160a01b0382166105c55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610312565b6001600160a01b0383166000908152602081905260409020548181101561063d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610312565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106749084906107ee565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c091815260200190565b60405180910390a36104f9565b80356001600160a01b038116811461029457600080fd5b6000602082840312156106f5578081fd5b6106fe826106cd565b9392505050565b60008060408385031215610717578081fd5b610720836106cd565b915061072e602084016106cd565b90509250929050565b60008060006060848603121561074b578081fd5b610754846106cd565b9250610762602085016106cd565b9150604084013590509250925092565b60008060408385031215610784578182fd5b61078d836106cd565b946020939093013593505050565b6000602080835283518082850152825b818110156107c7578581018301518582016040015282016107ab565b818111156107d85783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561080d57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061082657607f821691505b6020821081141561084757634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122002edc58f2c0158e1ceaba74717f5f4f309ad6aaf007f846f016f8485f4f0fc4b64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xB0E CODESIZE SUB DUP1 PUSH3 0xB0E DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1C1 JUMP JUMPDEST DUP2 MLOAD PUSH3 0x49 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x5F SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP POP POP PUSH3 0x27B JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x76 SWAP1 PUSH3 0x228 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x9A JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xB5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xE5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xE5 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xC8 JUMP JUMPDEST POP PUSH3 0xF3 SWAP3 SWAP2 POP PUSH3 0xF7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xF8 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x11F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x13C JUMPI PUSH3 0x13C PUSH3 0x265 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x167 JUMPI PUSH3 0x167 PUSH3 0x265 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x183 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP5 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1A6 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x187 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1B7 JUMPI DUP5 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1D4 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x1EB JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH3 0x1F9 DUP7 DUP4 DUP8 ADD PUSH3 0x10E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x20F JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH3 0x21E DUP6 DUP3 DUP7 ADD PUSH3 0x10E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x23D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x883 DUP1 PUSH3 0x28B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x177 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x18A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x79B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x21C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x737 JUMP JUMPDEST PUSH2 0x234 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x258 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x27A JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x299 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x2A8 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x328 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0x705 JUMP JUMPDEST PUSH2 0x336 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x199 SWAP1 PUSH2 0x812 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C5 SWAP1 PUSH2 0x812 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x212 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x212 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x361 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x242 DUP6 DUP3 DUP6 PUSH2 0x485 JUMP JUMPDEST PUSH2 0x24D DUP6 DUP6 DUP6 PUSH2 0x4FF JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x26B DUP4 DUP4 PUSH2 0x336 JUMP JUMPDEST PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x361 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x199 SWAP1 PUSH2 0x812 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2B6 DUP3 DUP7 PUSH2 0x336 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x31B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x24D DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x361 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x4FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x491 DUP5 DUP5 PUSH2 0x336 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F9 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x312 JUMP JUMPDEST PUSH2 0x4F9 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x361 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x563 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x63D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x674 SWAP1 DUP5 SWAP1 PUSH2 0x7EE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6C0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6F5 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x6FE DUP3 PUSH2 0x6CD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x717 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x720 DUP4 PUSH2 0x6CD JUMP JUMPDEST SWAP2 POP PUSH2 0x72E PUSH1 0x20 DUP5 ADD PUSH2 0x6CD JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x74B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x754 DUP5 PUSH2 0x6CD JUMP JUMPDEST SWAP3 POP PUSH2 0x762 PUSH1 0x20 DUP6 ADD PUSH2 0x6CD JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x784 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x78D DUP4 PUSH2 0x6CD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7C7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7D8 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x80D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x826 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x847 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL 0xED 0xC5 DUP16 0x2C ADD PC 0xE1 0xCE 0xAB 0xA7 SELFBALANCE OR CREATE2 DELEGATECALL RETURN MULMOD 0xAD PUSH11 0xAF007F846F016F8485F4F0 0xFC 0x4B PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1403:11214:49:-:0;;;1978:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2044:13;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;1403:11214;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:11214:49;;;-1:-1:-1;1403:11214:49;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:909:103;;121:3;114:4;106:6;102:17;98:27;88:2;;143:5;136;129:20;88:2;170:13;;-1:-1:-1;;;;;232:10:103;;;229:2;;;245:18;;:::i;:::-;320:2;314:9;288:2;374:13;;-1:-1:-1;;370:22:103;;;394:2;366:31;362:40;350:53;;;418:18;;;438:22;;;415:46;412:2;;;464:18;;:::i;:::-;504:10;500:2;493:22;539:2;531:6;524:18;561:4;551:14;;606:3;601:2;596;588:6;584:15;580:24;577:33;574:2;;;627:5;620;613:20;574:2;653:5;644:14;;667:133;681:2;678:1;675:9;667:133;;;769:14;;;765:23;;759:30;738:14;;;734:23;;727:63;692:10;;;;667:133;;;818:2;815:1;812:9;809:2;;;877:5;872:2;867;859:6;855:15;851:24;844:39;809:2;911:6;78:845;-1:-1:-1;;;;;;78:845:103:o;928:592::-;;;1088:2;1076:9;1067:7;1063:23;1059:32;1056:2;;;1109:6;1101;1094:22;1056:2;1141:16;;-1:-1:-1;;;;;1206:14:103;;;1203:2;;;1238:6;1230;1223:22;1203:2;1266:61;1319:7;1310:6;1299:9;1295:22;1266:61;:::i;:::-;1256:71;;1373:2;1362:9;1358:18;1352:25;1336:41;;1402:2;1392:8;1389:16;1386:2;;;1423:6;1415;1408:22;1386:2;;1451:63;1506:7;1495:8;1484:9;1480:24;1451:63;:::i;:::-;1441:73;;;1046:474;;;;;:::o;1525:380::-;1610:1;1600:12;;1657:1;1647:12;;;1668:2;;1722:4;1714:6;1710:17;1700:27;;1668:2;1775;1767:6;1764:14;1744:18;1741:38;1738:2;;;1821:10;1816:3;1812:20;1809:1;1802:31;1856:4;1853:1;1846:15;1884:4;1881:1;1874:15;1738:2;;1580:325;;;:::o;1910:127::-;1971:10;1966:3;1962:20;1959:1;1952:31;2002:4;1999:1;1992:15;2026:4;2023:1;2016:15;1942:95;1403:11214:49;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5856:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1375:92:103","statements":[{"nodeType":"YulAssignment","src":"1385:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:103"},"nodeType":"YulFunctionCall","src":"1393:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:103"},"nodeType":"YulFunctionCall","src":"1445:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:103"},"nodeType":"YulFunctionCall","src":"1438:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:103"},"nodeType":"YulFunctionCall","src":"1420:41:103"},"nodeType":"YulExpressionStatement","src":"1420:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:103","type":""}],"src":"1280:187:103"},{"body":{"nodeType":"YulBlock","src":"1593:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:103"},"nodeType":"YulFunctionCall","src":"1624:21:103"},"nodeType":"YulExpressionStatement","src":"1624:21:103"},{"nodeType":"YulVariableDeclaration","src":"1654:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:103"},"nodeType":"YulFunctionCall","src":"1668:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:103"},"nodeType":"YulFunctionCall","src":"1697:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:103"},"nodeType":"YulFunctionCall","src":"1690:34:103"},"nodeType":"YulExpressionStatement","src":"1690:34:103"},{"nodeType":"YulVariableDeclaration","src":"1733:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:103"},"nodeType":"YulFunctionCall","src":"1826:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:103"},"nodeType":"YulFunctionCall","src":"1854:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:103"},"nodeType":"YulFunctionCall","src":"1819:66:103"},"nodeType":"YulExpressionStatement","src":"1819:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:103"},"nodeType":"YulFunctionCall","src":"1763:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:103","statements":[{"nodeType":"YulAssignment","src":"1779:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:103"},"nodeType":"YulFunctionCall","src":"1784:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:103","statements":[]},"src":"1755:140:103"},{"body":{"nodeType":"YulBlock","src":"1929:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:103"},"nodeType":"YulFunctionCall","src":"1954:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:103"},"nodeType":"YulFunctionCall","src":"1950:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:103"},"nodeType":"YulFunctionCall","src":"1943:45:103"},"nodeType":"YulExpressionStatement","src":"1943:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:103"},"nodeType":"YulFunctionCall","src":"1907:13:103"},"nodeType":"YulIf","src":"1904:2:103"},{"nodeType":"YulAssignment","src":"2007:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:103"},"nodeType":"YulFunctionCall","src":"2038:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:103"},"nodeType":"YulFunctionCall","src":"2055:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:103"},"nodeType":"YulFunctionCall","src":"2019:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:103"},"nodeType":"YulFunctionCall","src":"2015:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:103","type":""}],"src":"1472:603:103"},{"body":{"nodeType":"YulBlock","src":"2254:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:103"},"nodeType":"YulFunctionCall","src":"2264:21:103"},"nodeType":"YulExpressionStatement","src":"2264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:103"},"nodeType":"YulFunctionCall","src":"2294:30:103"},"nodeType":"YulExpressionStatement","src":"2294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:62:103"},"nodeType":"YulExpressionStatement","src":"2333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:103"},"nodeType":"YulFunctionCall","src":"2411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:103"},"nodeType":"YulFunctionCall","src":"2404:33:103"},"nodeType":"YulExpressionStatement","src":"2404:33:103"},{"nodeType":"YulAssignment","src":"2446:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:103"},"nodeType":"YulFunctionCall","src":"2454:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:103","type":""}],"src":"2080:399:103"},{"body":{"nodeType":"YulBlock","src":"2658:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:103"},"nodeType":"YulFunctionCall","src":"2668:21:103"},"nodeType":"YulExpressionStatement","src":"2668:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:103"},"nodeType":"YulFunctionCall","src":"2698:30:103"},"nodeType":"YulExpressionStatement","src":"2698:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:103"},"nodeType":"YulFunctionCall","src":"2737:62:103"},"nodeType":"YulExpressionStatement","src":"2737:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:103"},"nodeType":"YulFunctionCall","src":"2815:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:103"},"nodeType":"YulFunctionCall","src":"2808:32:103"},"nodeType":"YulExpressionStatement","src":"2808:32:103"},{"nodeType":"YulAssignment","src":"2849:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:103"},"nodeType":"YulFunctionCall","src":"2857:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:103","type":""}],"src":"2484:398:103"},{"body":{"nodeType":"YulBlock","src":"3061:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:21:103"},"nodeType":"YulExpressionStatement","src":"3071:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:103"},"nodeType":"YulFunctionCall","src":"3108:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:103"},"nodeType":"YulFunctionCall","src":"3101:30:103"},"nodeType":"YulExpressionStatement","src":"3101:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:103"},"nodeType":"YulFunctionCall","src":"3140:59:103"},"nodeType":"YulExpressionStatement","src":"3140:59:103"},{"nodeType":"YulAssignment","src":"3208:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:103"},"nodeType":"YulFunctionCall","src":"3216:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:103","type":""}],"src":"2887:353:103"},{"body":{"nodeType":"YulBlock","src":"3419:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:21:103"},"nodeType":"YulExpressionStatement","src":"3429:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:103"},"nodeType":"YulFunctionCall","src":"3459:30:103"},"nodeType":"YulExpressionStatement","src":"3459:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:62:103"},"nodeType":"YulExpressionStatement","src":"3498:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:103"},"nodeType":"YulFunctionCall","src":"3569:36:103"},"nodeType":"YulExpressionStatement","src":"3569:36:103"},{"nodeType":"YulAssignment","src":"3614:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:103","type":""}],"src":"3245:402:103"},{"body":{"nodeType":"YulBlock","src":"3826:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:103"},"nodeType":"YulFunctionCall","src":"3836:21:103"},"nodeType":"YulExpressionStatement","src":"3836:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:103"},"nodeType":"YulFunctionCall","src":"3873:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:103"},"nodeType":"YulFunctionCall","src":"3866:30:103"},"nodeType":"YulExpressionStatement","src":"3866:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:103"},"nodeType":"YulFunctionCall","src":"3912:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:103"},"nodeType":"YulFunctionCall","src":"3905:62:103"},"nodeType":"YulExpressionStatement","src":"3905:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:103"},"nodeType":"YulFunctionCall","src":"3983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:35:103"},"nodeType":"YulExpressionStatement","src":"3976:35:103"},{"nodeType":"YulAssignment","src":"4020:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:103","type":""}],"src":"3652:401:103"},{"body":{"nodeType":"YulBlock","src":"4232:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:103"},"nodeType":"YulFunctionCall","src":"4242:21:103"},"nodeType":"YulExpressionStatement","src":"4242:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:103"},"nodeType":"YulFunctionCall","src":"4279:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:103"},"nodeType":"YulFunctionCall","src":"4272:30:103"},"nodeType":"YulExpressionStatement","src":"4272:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:103"},"nodeType":"YulFunctionCall","src":"4318:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:103"},"nodeType":"YulFunctionCall","src":"4311:62:103"},"nodeType":"YulExpressionStatement","src":"4311:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:103"},"nodeType":"YulFunctionCall","src":"4382:34:103"},"nodeType":"YulExpressionStatement","src":"4382:34:103"},{"nodeType":"YulAssignment","src":"4425:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:103"},"nodeType":"YulFunctionCall","src":"4433:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:103","type":""}],"src":"4058:400:103"},{"body":{"nodeType":"YulBlock","src":"4637:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:21:103"},"nodeType":"YulExpressionStatement","src":"4647:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:103"},"nodeType":"YulFunctionCall","src":"4677:30:103"},"nodeType":"YulExpressionStatement","src":"4677:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:103"},"nodeType":"YulFunctionCall","src":"4723:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:103"},"nodeType":"YulFunctionCall","src":"4716:62:103"},"nodeType":"YulExpressionStatement","src":"4716:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:103"},"nodeType":"YulFunctionCall","src":"4794:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:103"},"nodeType":"YulFunctionCall","src":"4787:35:103"},"nodeType":"YulExpressionStatement","src":"4787:35:103"},{"nodeType":"YulAssignment","src":"4831:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:103"},"nodeType":"YulFunctionCall","src":"4839:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:103","type":""}],"src":"4463:401:103"},{"body":{"nodeType":"YulBlock","src":"4970:76:103","statements":[{"nodeType":"YulAssignment","src":"4980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4988:3:103"},"nodeType":"YulFunctionCall","src":"4988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5015:6:103"},"nodeType":"YulFunctionCall","src":"5015:25:103"},"nodeType":"YulExpressionStatement","src":"5015:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4961:4:103","type":""}],"src":"4869:177:103"},{"body":{"nodeType":"YulBlock","src":"5148:87:103","statements":[{"nodeType":"YulAssignment","src":"5158:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:103"},"nodeType":"YulFunctionCall","src":"5166:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5223:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5211:3:103"},"nodeType":"YulFunctionCall","src":"5211:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:103"},"nodeType":"YulFunctionCall","src":"5193:36:103"},"nodeType":"YulExpressionStatement","src":"5193:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5117:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5128:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5139:4:103","type":""}],"src":"5051:184:103"},{"body":{"nodeType":"YulBlock","src":"5288:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"5323:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5344:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:103"},"nodeType":"YulFunctionCall","src":"5349:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:103"},"nodeType":"YulFunctionCall","src":"5337:33:103"},"nodeType":"YulExpressionStatement","src":"5337:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5390:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5393:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:103"},"nodeType":"YulFunctionCall","src":"5383:15:103"},"nodeType":"YulExpressionStatement","src":"5383:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5418:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5423:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5411:6:103"},"nodeType":"YulFunctionCall","src":"5411:17:103"},"nodeType":"YulExpressionStatement","src":"5411:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5304:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5311:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5307:3:103"},"nodeType":"YulFunctionCall","src":"5307:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5301:2:103"},"nodeType":"YulFunctionCall","src":"5301:13:103"},"nodeType":"YulIf","src":"5298:2:103"},{"nodeType":"YulAssignment","src":"5447:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5458:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5461:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:103"},"nodeType":"YulFunctionCall","src":"5454:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5447:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5271:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5274:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5280:3:103","type":""}],"src":"5240:229:103"},{"body":{"nodeType":"YulBlock","src":"5529:325:103","statements":[{"nodeType":"YulAssignment","src":"5539:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5553:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5559:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5549:3:103"},"nodeType":"YulFunctionCall","src":"5549:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5539:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5570:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5606:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5596:3:103"},"nodeType":"YulFunctionCall","src":"5596:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5574:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5647:31:103","statements":[{"nodeType":"YulAssignment","src":"5649:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5663:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5671:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5659:3:103"},"nodeType":"YulFunctionCall","src":"5659:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5649:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5627:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5620:6:103"},"nodeType":"YulFunctionCall","src":"5620:26:103"},"nodeType":"YulIf","src":"5617:2:103"},{"body":{"nodeType":"YulBlock","src":"5737:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5765:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5770:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5761:3:103"},"nodeType":"YulFunctionCall","src":"5761:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5751:6:103"},"nodeType":"YulFunctionCall","src":"5751:31:103"},"nodeType":"YulExpressionStatement","src":"5751:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5802:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5805:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5795:6:103"},"nodeType":"YulFunctionCall","src":"5795:15:103"},"nodeType":"YulExpressionStatement","src":"5795:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5833:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5823:6:103"},"nodeType":"YulFunctionCall","src":"5823:15:103"},"nodeType":"YulExpressionStatement","src":"5823:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5693:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5716:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5724:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5713:2:103"},"nodeType":"YulFunctionCall","src":"5713:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5690:2:103"},"nodeType":"YulFunctionCall","src":"5690:38:103"},"nodeType":"YulIf","src":"5687:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5509:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5518:6:103","type":""}],"src":"5474:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b4114610149578063a457c2d714610151578063a9059cbb14610164578063dd62ed3e14610177576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b661018a565b6040516100c3919061079b565b60405180910390f35b6100df6100da366004610772565b61021c565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610737565b610234565b604051601281526020016100c3565b6100df610131366004610772565b610258565b6100f36101443660046106e4565b61027a565b6100b6610299565b6100df61015f366004610772565b6102a8565b6100df610172366004610772565b610328565b6100f3610185366004610705565b610336565b60606003805461019990610812565b80601f01602080910402602001604051908101604052809291908181526020018280546101c590610812565b80156102125780601f106101e757610100808354040283529160200191610212565b820191906000526020600020905b8154815290600101906020018083116101f557829003601f168201915b5050505050905090565b60003361022a818585610361565b5060019392505050565b600033610242858285610485565b61024d8585856104ff565b506001949350505050565b60003361022a81858561026b8383610336565b61027591906107ee565b610361565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461019990610812565b600033816102b68286610336565b90508381101561031b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61024d8286868403610361565b60003361022a8185856104ff565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103c35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610312565b6001600160a01b0382166104245760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610312565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104918484610336565b905060001981146104f957818110156104ec5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610312565b6104f98484848403610361565b50505050565b6001600160a01b0383166105635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610312565b6001600160a01b0382166105c55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610312565b6001600160a01b0383166000908152602081905260409020548181101561063d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610312565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106749084906107ee565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c091815260200190565b60405180910390a36104f9565b80356001600160a01b038116811461029457600080fd5b6000602082840312156106f5578081fd5b6106fe826106cd565b9392505050565b60008060408385031215610717578081fd5b610720836106cd565b915061072e602084016106cd565b90509250929050565b60008060006060848603121561074b578081fd5b610754846106cd565b9250610762602085016106cd565b9150604084013590509250925092565b60008060408385031215610784578182fd5b61078d836106cd565b946020939093013593505050565b6000602080835283518082850152825b818110156107c7578581018301518582016040015282016107ab565b818111156107d85783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561080d57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061082657607f821691505b6020821081141561084757634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122002edc58f2c0158e1ceaba74717f5f4f309ad6aaf007f846f016f8485f4f0fc4b64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x177 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x18A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x79B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x21C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x737 JUMP JUMPDEST PUSH2 0x234 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x258 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x27A JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x299 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x2A8 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x328 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0x705 JUMP JUMPDEST PUSH2 0x336 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x199 SWAP1 PUSH2 0x812 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C5 SWAP1 PUSH2 0x812 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x212 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x212 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x361 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x242 DUP6 DUP3 DUP6 PUSH2 0x485 JUMP JUMPDEST PUSH2 0x24D DUP6 DUP6 DUP6 PUSH2 0x4FF JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x26B DUP4 DUP4 PUSH2 0x336 JUMP JUMPDEST PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x361 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x199 SWAP1 PUSH2 0x812 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2B6 DUP3 DUP7 PUSH2 0x336 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x31B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x24D DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x361 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x4FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x491 DUP5 DUP5 PUSH2 0x336 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F9 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x312 JUMP JUMPDEST PUSH2 0x4F9 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x361 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x563 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x63D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x674 SWAP1 DUP5 SWAP1 PUSH2 0x7EE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6C0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6F5 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x6FE DUP3 PUSH2 0x6CD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x717 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x720 DUP4 PUSH2 0x6CD JUMP JUMPDEST SWAP2 POP PUSH2 0x72E PUSH1 0x20 DUP5 ADD PUSH2 0x6CD JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x74B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x754 DUP5 PUSH2 0x6CD JUMP JUMPDEST SWAP3 POP PUSH2 0x762 PUSH1 0x20 DUP6 ADD PUSH2 0x6CD JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x784 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x78D DUP4 PUSH2 0x6CD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7C7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7D8 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x80D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x826 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x847 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL 0xED 0xC5 DUP16 0x2C ADD PC 0xE1 0xCE 0xAB 0xA7 SELFBALANCE OR CREATE2 DELEGATECALL RETURN MULMOD 0xAD PUSH11 0xAF007F846F016F8485F4F0 0xFC 0x4B PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1403:11214:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:49;1375:92:103;3244:106:49;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:49;4970:76:103;5192:286:49;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:49;5148:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;2156:98::-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:49;;5192:286;-1:-1:-1;;;;5192:286:49:o;5873:234::-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;4665:2:103;6803:85:49;;;4647:21:103;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:103;;;4787:35;4839:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;4260:2:103;10233:68:49;;;4242:21:103;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:103;;;4382:34;4433:19;;10233:68:49;4232:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;2686:2:103;10311:68:49;;;2668:21:103;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:103;;;2808:32;2857:19;;10311:68:49;2658:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:103;;;10441:32:49;;4988:18:103;10441:32:49;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;3089:2:103;11010:68:49;;;3071:21:103;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:49;3061:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;3854:2:103;7593:68:49;;;3836:21:103;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:103;;;3976:35;4028:19;;7593:68:49;3826:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;2282:2:103;7671:64:49;;;2264:21:103;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:103;;;2404:33;2454:19;;7671:64:49;2254:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;3447:2:103;7842:72:49;;;3429:21:103;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:103;;;3569:36;3622:19;;7842:72:49;3419:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;5015:25:103;;5003:2;4988:18;;4970:76;8045:26:49;;;;;;;;8082:37;11786:121;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:103:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:103;2038:15;-1:-1:-1;;2034:29:103;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:103:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:103;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:103;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f2265fee8809f20a3a7d891c578673c85c3f0b5665433b90b90fcc918d4e46b764736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE 0x26 0x5F 0xEE DUP9 MULMOD CALLCODE EXP GASPRICE PUSH30 0x891C578673C85C3F0B5665433B90B90FCC918D4E46B764736F6C63430008 MUL STOP CALLER ","sourceMap":"707:3748:53:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;707:3748:53;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f2265fee8809f20a3a7d891c578673c85c3f0b5665433b90b90fcc918d4e46b764736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE 0x26 0x5F 0xEE DUP9 MULMOD CALLCODE EXP GASPRICE PUSH30 0x891C578673C85C3F0B5665433B90B90FCC918D4E46B764736F6C63430008 MUL STOP CALLER ","sourceMap":"707:3748:53:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ERC721":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2039:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"78:845:103","statements":[{"body":{"nodeType":"YulBlock","src":"127:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"136:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"143:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"129:6:103"},"nodeType":"YulFunctionCall","src":"129:20:103"},"nodeType":"YulExpressionStatement","src":"129:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"106:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"114:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"102:3:103"},"nodeType":"YulFunctionCall","src":"102:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"121:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"98:3:103"},"nodeType":"YulFunctionCall","src":"98:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"91:6:103"},"nodeType":"YulFunctionCall","src":"91:35:103"},"nodeType":"YulIf","src":"88:2:103"},{"nodeType":"YulVariableDeclaration","src":"160:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"176:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"170:5:103"},"nodeType":"YulFunctionCall","src":"170:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"164:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"192:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"210:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"214:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"206:3:103"},"nodeType":"YulFunctionCall","src":"206:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"218:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"202:3:103"},"nodeType":"YulFunctionCall","src":"202:18:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"196:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"243:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"245:16:103"},"nodeType":"YulFunctionCall","src":"245:18:103"},"nodeType":"YulExpressionStatement","src":"245:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"235:2:103"},{"name":"_2","nodeType":"YulIdentifier","src":"239:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"232:2:103"},"nodeType":"YulFunctionCall","src":"232:10:103"},"nodeType":"YulIf","src":"229:2:103"},{"nodeType":"YulVariableDeclaration","src":"274:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"288:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"284:3:103"},"nodeType":"YulFunctionCall","src":"284:7:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"278:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"300:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"320:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"314:5:103"},"nodeType":"YulFunctionCall","src":"314:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"304:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"332:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"354:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"378:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"382:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:13:103"},{"name":"_3","nodeType":"YulIdentifier","src":"389:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"394:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"366:3:103"},"nodeType":"YulFunctionCall","src":"366:31:103"},{"name":"_3","nodeType":"YulIdentifier","src":"399:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"362:3:103"},"nodeType":"YulFunctionCall","src":"362:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"350:3:103"},"nodeType":"YulFunctionCall","src":"350:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"336:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"464:16:103"},"nodeType":"YulFunctionCall","src":"464:18:103"},"nodeType":"YulExpressionStatement","src":"464:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"421:10:103"},{"name":"_2","nodeType":"YulIdentifier","src":"433:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"418:2:103"},"nodeType":"YulFunctionCall","src":"418:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"441:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"453:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"438:2:103"},"nodeType":"YulFunctionCall","src":"438:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"415:2:103"},"nodeType":"YulFunctionCall","src":"415:46:103"},"nodeType":"YulIf","src":"412:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"500:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"504:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:103"},"nodeType":"YulFunctionCall","src":"493:22:103"},"nodeType":"YulExpressionStatement","src":"493:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"531:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"539:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"524:6:103"},"nodeType":"YulFunctionCall","src":"524:18:103"},"nodeType":"YulExpressionStatement","src":"524:18:103"},{"nodeType":"YulVariableDeclaration","src":"551:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"561:4:103","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"555:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"611:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"620:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"627:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"613:6:103"},"nodeType":"YulFunctionCall","src":"613:20:103"},"nodeType":"YulExpressionStatement","src":"613:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"588:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"596:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"584:3:103"},"nodeType":"YulFunctionCall","src":"584:15:103"},{"name":"_4","nodeType":"YulIdentifier","src":"601:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"580:3:103"},"nodeType":"YulFunctionCall","src":"580:24:103"},{"name":"end","nodeType":"YulIdentifier","src":"606:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"577:2:103"},"nodeType":"YulFunctionCall","src":"577:33:103"},"nodeType":"YulIf","src":"574:2:103"},{"nodeType":"YulVariableDeclaration","src":"644:14:103","value":{"name":"array","nodeType":"YulIdentifier","src":"653:5:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"648:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"713:87:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"742:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"750:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"738:3:103"},"nodeType":"YulFunctionCall","src":"738:14:103"},{"name":"_4","nodeType":"YulIdentifier","src":"754:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:103"},"nodeType":"YulFunctionCall","src":"734:23:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"773:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"781:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:103"},"nodeType":"YulFunctionCall","src":"769:14:103"},{"name":"_4","nodeType":"YulIdentifier","src":"785:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:103"},"nodeType":"YulFunctionCall","src":"765:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"759:5:103"},"nodeType":"YulFunctionCall","src":"759:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:103"},"nodeType":"YulFunctionCall","src":"727:63:103"},"nodeType":"YulExpressionStatement","src":"727:63:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"678:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"681:2:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"675:2:103"},"nodeType":"YulFunctionCall","src":"675:9:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"685:19:103","statements":[{"nodeType":"YulAssignment","src":"687:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"696:1:103"},{"name":"_4","nodeType":"YulIdentifier","src":"699:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"692:3:103"},"nodeType":"YulFunctionCall","src":"692:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"687:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"671:3:103","statements":[]},"src":"667:133:103"},{"body":{"nodeType":"YulBlock","src":"830:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"859:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"867:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"855:3:103"},"nodeType":"YulFunctionCall","src":"855:15:103"},{"name":"_4","nodeType":"YulIdentifier","src":"872:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"851:3:103"},"nodeType":"YulFunctionCall","src":"851:24:103"},{"name":"array","nodeType":"YulIdentifier","src":"877:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"844:6:103"},"nodeType":"YulFunctionCall","src":"844:39:103"},"nodeType":"YulExpressionStatement","src":"844:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"815:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"818:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"812:2:103"},"nodeType":"YulFunctionCall","src":"812:9:103"},"nodeType":"YulIf","src":"809:2:103"},{"nodeType":"YulAssignment","src":"902:15:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"911:6:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"902:5:103"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"52:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"60:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"68:5:103","type":""}],"src":"14:909:103"},{"body":{"nodeType":"YulBlock","src":"1046:474:103","statements":[{"body":{"nodeType":"YulBlock","src":"1092:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1101:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1109:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1094:6:103"},"nodeType":"YulFunctionCall","src":"1094:22:103"},"nodeType":"YulExpressionStatement","src":"1094:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1067:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1076:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1063:3:103"},"nodeType":"YulFunctionCall","src":"1063:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1088:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1059:3:103"},"nodeType":"YulFunctionCall","src":"1059:32:103"},"nodeType":"YulIf","src":"1056:2:103"},{"nodeType":"YulVariableDeclaration","src":"1127:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1147:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1141:5:103"},"nodeType":"YulFunctionCall","src":"1141:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1131:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1166:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1184:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1188:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1180:3:103"},"nodeType":"YulFunctionCall","src":"1180:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"1192:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1176:3:103"},"nodeType":"YulFunctionCall","src":"1176:18:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1170:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1221:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1230:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1238:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1223:6:103"},"nodeType":"YulFunctionCall","src":"1223:22:103"},"nodeType":"YulExpressionStatement","src":"1223:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1209:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1217:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1206:2:103"},"nodeType":"YulFunctionCall","src":"1206:14:103"},"nodeType":"YulIf","src":"1203:2:103"},{"nodeType":"YulAssignment","src":"1256:71:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1299:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1310:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1295:3:103"},"nodeType":"YulFunctionCall","src":"1295:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1319:7:103"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1266:28:103"},"nodeType":"YulFunctionCall","src":"1266:61:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1256:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1336:41:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1362:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1373:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1358:3:103"},"nodeType":"YulFunctionCall","src":"1358:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1352:5:103"},"nodeType":"YulFunctionCall","src":"1352:25:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1340:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1406:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1415:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1423:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1408:6:103"},"nodeType":"YulFunctionCall","src":"1408:22:103"},"nodeType":"YulExpressionStatement","src":"1408:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1392:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1402:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:103"},"nodeType":"YulFunctionCall","src":"1389:16:103"},"nodeType":"YulIf","src":"1386:2:103"},{"nodeType":"YulAssignment","src":"1441:73:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1484:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1495:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1480:3:103"},"nodeType":"YulFunctionCall","src":"1480:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1506:7:103"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1451:28:103"},"nodeType":"YulFunctionCall","src":"1451:63:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1441:6:103"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1004:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1015:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1027:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1035:6:103","type":""}],"src":"928:592:103"},{"body":{"nodeType":"YulBlock","src":"1580:325:103","statements":[{"nodeType":"YulAssignment","src":"1590:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1604:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1610:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1600:3:103"},"nodeType":"YulFunctionCall","src":"1600:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1590:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1621:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1651:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1657:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1647:3:103"},"nodeType":"YulFunctionCall","src":"1647:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1625:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1698:31:103","statements":[{"nodeType":"YulAssignment","src":"1700:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1714:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1722:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1710:3:103"},"nodeType":"YulFunctionCall","src":"1710:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1700:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1678:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1671:6:103"},"nodeType":"YulFunctionCall","src":"1671:26:103"},"nodeType":"YulIf","src":"1668:2:103"},{"body":{"nodeType":"YulBlock","src":"1788:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1809:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1816:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1821:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1812:3:103"},"nodeType":"YulFunctionCall","src":"1812:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1802:6:103"},"nodeType":"YulFunctionCall","src":"1802:31:103"},"nodeType":"YulExpressionStatement","src":"1802:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1853:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1856:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1846:6:103"},"nodeType":"YulFunctionCall","src":"1846:15:103"},"nodeType":"YulExpressionStatement","src":"1846:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1881:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1884:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1874:6:103"},"nodeType":"YulFunctionCall","src":"1874:15:103"},"nodeType":"YulExpressionStatement","src":"1874:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1744:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1767:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1775:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1764:2:103"},"nodeType":"YulFunctionCall","src":"1764:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1741:2:103"},"nodeType":"YulFunctionCall","src":"1741:38:103"},"nodeType":"YulIf","src":"1738:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1560:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1569:6:103","type":""}],"src":"1525:380:103"},{"body":{"nodeType":"YulBlock","src":"1942:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1966:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1971:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1962:3:103"},"nodeType":"YulFunctionCall","src":"1962:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1952:6:103"},"nodeType":"YulFunctionCall","src":"1952:31:103"},"nodeType":"YulExpressionStatement","src":"1952:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1999:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2002:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1992:6:103"},"nodeType":"YulFunctionCall","src":"1992:15:103"},"nodeType":"YulExpressionStatement","src":"1992:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2023:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2026:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2016:6:103"},"nodeType":"YulFunctionCall","src":"2016:15:103"},"nodeType":"YulExpressionStatement","src":"2016:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1910:127:103"}]},"contents":"{\n { }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(array, array) }\n let i := array\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), array)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(value0, value0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(value1, value1) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620013c4380380620013c48339810160408190526200003491620001c1565b81516200004990600090602085019062000068565b5080516200005f90600190602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b6002810460018216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b611139806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610e37565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190610f1f565b61012461011f366004610e6f565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610e0e565b610335565b005b61014f61015f366004610cc4565b610450565b61014f610172366004610cc4565b610481565b610124610185366004610e6f565b61049c565b61019d610198366004610c78565b6104fc565b6040519081526020016100f3565b610104610582565b61014f6101c1366004610dd4565b610591565b61014f6101d4366004610cff565b6105a0565b6101046101e7366004610e6f565b6105d8565b6100e76101fa366004610c92565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606000805461028b90611041565b80601f01602080910402602001604051908101604052809291908181526020018280546102b790611041565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b60006103198261064c565b506000908152600460205260409020546001600160a01b031690565b60006103408261049c565b9050806001600160a01b0316836001600160a01b031614156103b35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103cf57506103cf81336101fa565b6104415760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016103aa565b61044b83836106ae565b505050565b61045a338261071c565b6104765760405162461bcd60e51b81526004016103aa90610f84565b61044b83838361079b565b61044b838383604051806020016040528060008152506105a0565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b60006001600160a01b0382166105665760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103aa565b506001600160a01b031660009081526003602052604090205490565b60606001805461028b90611041565b61059c338383610937565b5050565b6105aa338361071c565b6105c65760405162461bcd60e51b81526004016103aa90610f84565b6105d284848484610a06565b50505050565b60606105e38261064c565b60006105fa60408051602081019091526000815290565b9050600081511161061a5760405180602001604052806000815250610645565b8061062484610a39565b604051602001610635929190610eb3565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166106ab5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e38261049c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806107288361049c565b9050806001600160a01b0316846001600160a01b0316148061076f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107935750836001600160a01b03166107888461030e565b6001600160a01b0316145b949350505050565b826001600160a01b03166107ae8261049c565b6001600160a01b0316146108125760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103aa565b6001600160a01b0382166108745760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103aa565b61087f6000826106ae565b6001600160a01b03831660009081526003602052604081208054600192906108a8908490610ffe565b90915550506001600160a01b03821660009081526003602052604081208054600192906108d6908490610fd2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a461044b565b816001600160a01b0316836001600160a01b031614156109995760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103aa565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a1184848461079b565b610a1d84848484610b54565b6105d25760405162461bcd60e51b81526004016103aa90610f32565b606081610a5e57506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610a885780610a728161107c565b9150610a819050600a83610fea565b9150610a62565b60008167ffffffffffffffff811115610ab157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610adb576020820181803683370190505b5090505b841561079357610af0600183610ffe565b9150610afd600a86611097565b610b08906030610fd2565b60f81b818381518110610b2b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610b4d600a86610fea565b9450610adf565b60006001600160a01b0384163b15610c5657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b98903390899088908890600401610ee2565b602060405180830381600087803b158015610bb257600080fd5b505af1925050508015610be2575060408051601f3d908101601f19168201909252610bdf91810190610e53565b60015b610c3c573d808015610c10576040519150601f19603f3d011682016040523d82523d6000602084013e610c15565b606091505b508051610c345760405162461bcd60e51b81526004016103aa90610f32565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610793565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610c89578081fd5b61064582610c61565b60008060408385031215610ca4578081fd5b610cad83610c61565b9150610cbb60208401610c61565b90509250929050565b600080600060608486031215610cd8578081fd5b610ce184610c61565b9250610cef60208501610c61565b9150604084013590509250925092565b60008060008060808587031215610d14578081fd5b610d1d85610c61565b9350610d2b60208601610c61565b925060408501359150606085013567ffffffffffffffff80821115610d4e578283fd5b818701915087601f830112610d61578283fd5b813581811115610d7357610d736110d7565b604051601f8201601f19908116603f01168101908382118183101715610d9b57610d9b6110d7565b816040528281528a6020848701011115610db3578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610de6578182fd5b610def83610c61565b915060208301358015158114610e03578182fd5b809150509250929050565b60008060408385031215610e20578182fd5b610e2983610c61565b946020939093013593505050565b600060208284031215610e48578081fd5b8135610645816110ed565b600060208284031215610e64578081fd5b8151610645816110ed565b600060208284031215610e80578081fd5b5035919050565b60008151808452610e9f816020860160208601611015565b601f01601f19169290920160200192915050565b60008351610ec5818460208801611015565b835190830190610ed9818360208801611015565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1590830184610e87565b9695505050505050565b6000602082526106456020830184610e87565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008219821115610fe557610fe56110ab565b500190565b600082610ff957610ff96110c1565b500490565b600082821015611010576110106110ab565b500390565b60005b83811015611030578181015183820152602001611018565b838111156105d25750506000910152565b60028104600182168061105557607f821691505b6020821081141561107657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611090576110906110ab565b5060010190565b6000826110a6576110a66110c1565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146106ab57600080fdfea2646970667358221220c015f1e648d0c91113d9455457bb32b225c6c39cb166f630dc2dbc2e5f163c5564736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x13C4 CODESIZE SUB DUP1 PUSH3 0x13C4 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1C1 JUMP JUMPDEST DUP2 MLOAD PUSH3 0x49 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x5F SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP POP POP PUSH3 0x27B JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x76 SWAP1 PUSH3 0x228 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x9A JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xB5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xE5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xE5 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xC8 JUMP JUMPDEST POP PUSH3 0xF3 SWAP3 SWAP2 POP PUSH3 0xF7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xF8 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x11F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x13C JUMPI PUSH3 0x13C PUSH3 0x265 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x167 JUMPI PUSH3 0x167 PUSH3 0x265 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x183 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP5 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1A6 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x187 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1B7 JUMPI DUP5 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1D4 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x1EB JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH3 0x1F9 DUP7 DUP4 DUP8 ADD PUSH3 0x10E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x20F JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH3 0x21E DUP6 DUP3 DUP7 ADD PUSH3 0x10E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x23D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1139 DUP1 PUSH3 0x28B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1EC JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AB JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x164 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x228 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x27C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xF1F JUMP JUMPDEST PUSH2 0x124 PUSH2 0x11F CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x30E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xCC4 JUMP JUMPDEST PUSH2 0x450 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xCC4 JUMP JUMPDEST PUSH2 0x481 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x49C JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0xC78 JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x582 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0xDD4 JUMP JUMPDEST PUSH2 0x591 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0xCFF JUMP JUMPDEST PUSH2 0x5A0 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x5D8 JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1FA CALLDATASIZE PUSH1 0x4 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x259 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x274 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x28B SWAP1 PUSH2 0x1041 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B7 SWAP1 PUSH2 0x1041 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x304 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x304 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x319 DUP3 PUSH2 0x64C JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x340 DUP3 PUSH2 0x49C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x3CF JUMPI POP PUSH2 0x3CF DUP2 CALLER PUSH2 0x1FA JUMP JUMPDEST PUSH2 0x441 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206E6F7220617070726F76656420666F7220616C6C0000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 PUSH2 0x6AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x45A CALLER DUP3 PUSH2 0x71C JUMP JUMPDEST PUSH2 0x476 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF84 JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 DUP4 PUSH2 0x79B JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x5A0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x274 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x566 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x28B SWAP1 PUSH2 0x1041 JUMP JUMPDEST PUSH2 0x59C CALLER DUP4 DUP4 PUSH2 0x937 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5AA CALLER DUP4 PUSH2 0x71C JUMP JUMPDEST PUSH2 0x5C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF84 JUMP JUMPDEST PUSH2 0x5D2 DUP5 DUP5 DUP5 DUP5 PUSH2 0xA06 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5E3 DUP3 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FA PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x61A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x645 JUMP JUMPDEST DUP1 PUSH2 0x624 DUP5 PUSH2 0xA39 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x635 SWAP3 SWAP2 SWAP1 PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x6AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x6E3 DUP3 PUSH2 0x49C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x728 DUP4 PUSH2 0x49C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x76F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x793 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x788 DUP5 PUSH2 0x30E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7AE DUP3 PUSH2 0x49C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x812 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x874 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x87F PUSH1 0x0 DUP3 PUSH2 0x6AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x8A8 SWAP1 DUP5 SWAP1 PUSH2 0xFFE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x8D6 SWAP1 DUP5 SWAP1 PUSH2 0xFD2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP5 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 PUSH2 0x44B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x999 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xA11 DUP5 DUP5 DUP5 PUSH2 0x79B JUMP JUMPDEST PUSH2 0xA1D DUP5 DUP5 DUP5 DUP5 PUSH2 0xB54 JUMP JUMPDEST PUSH2 0x5D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0xA5E JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x277 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xA88 JUMPI DUP1 PUSH2 0xA72 DUP2 PUSH2 0x107C JUMP JUMPDEST SWAP2 POP PUSH2 0xA81 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0xFEA JUMP JUMPDEST SWAP2 POP PUSH2 0xA62 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAB1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xADB JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x793 JUMPI PUSH2 0xAF0 PUSH1 0x1 DUP4 PUSH2 0xFFE JUMP JUMPDEST SWAP2 POP PUSH2 0xAFD PUSH1 0xA DUP7 PUSH2 0x1097 JUMP JUMPDEST PUSH2 0xB08 SWAP1 PUSH1 0x30 PUSH2 0xFD2 JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xB2B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0xB4D PUSH1 0xA DUP7 PUSH2 0xFEA JUMP JUMPDEST SWAP5 POP PUSH2 0xADF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xC56 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xB98 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xBE2 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xBDF SWAP2 DUP2 ADD SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xC3C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xC15 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0xC34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF32 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x793 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC89 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x645 DUP3 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCA4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCAD DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH2 0xCBB PUSH1 0x20 DUP5 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD8 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCE1 DUP5 PUSH2 0xC61 JUMP JUMPDEST SWAP3 POP PUSH2 0xCEF PUSH1 0x20 DUP6 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD14 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD1D DUP6 PUSH2 0xC61 JUMP JUMPDEST SWAP4 POP PUSH2 0xD2B PUSH1 0x20 DUP7 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD4E JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD61 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xD73 JUMPI PUSH2 0xD73 PUSH2 0x10D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xD9B JUMPI PUSH2 0xD9B PUSH2 0x10D7 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xDB3 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDE6 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xDEF DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE03 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE20 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xE29 DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE48 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x645 DUP2 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE64 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x645 DUP2 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE80 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE9F DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1015 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0xEC5 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1015 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0xED9 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1015 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF15 SWAP1 DUP4 ADD DUP5 PUSH2 0xE87 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x645 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xE87 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x1C881B9BDC88185C1C1C9BDD9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xFE5 JUMPI PUSH2 0xFE5 PUSH2 0x10AB JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xFF9 JUMPI PUSH2 0xFF9 PUSH2 0x10C1 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1010 JUMPI PUSH2 0x1010 PUSH2 0x10AB JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1030 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1018 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x5D2 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1055 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1076 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1090 JUMPI PUSH2 0x1090 PUSH2 0x10AB JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x10A6 JUMPI PUSH2 0x10A6 PUSH2 0x10C1 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x6AB JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 ISZERO CALL 0xE6 0x48 0xD0 0xC9 GT SGT 0xD9 GASLIMIT SLOAD JUMPI 0xBB ORIGIN 0xB2 0x25 0xC6 0xC3 SWAP13 0xB1 PUSH7 0xF630DC2DBC2E5F AND EXTCODECOPY SSTORE PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"628:13718:54:-:0;;;1390:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1456:13;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;1479:17:54;;;;:7;;:17;;;;;:::i;:::-;;1390:113;;628:13718;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:13718:54;;;-1:-1:-1;628:13718:54;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:909:103;;121:3;114:4;106:6;102:17;98:27;88:2;;143:5;136;129:20;88:2;170:13;;-1:-1:-1;;;;;232:10:103;;;229:2;;;245:18;;:::i;:::-;320:2;314:9;288:2;374:13;;-1:-1:-1;;370:22:103;;;394:2;366:31;362:40;350:53;;;418:18;;;438:22;;;415:46;412:2;;;464:18;;:::i;:::-;504:10;500:2;493:22;539:2;531:6;524:18;561:4;551:14;;606:3;601:2;596;588:6;584:15;580:24;577:33;574:2;;;627:5;620;613:20;574:2;653:5;644:14;;667:133;681:2;678:1;675:9;667:133;;;769:14;;;765:23;;759:30;738:14;;;734:23;;727:63;692:10;;;;667:133;;;818:2;815:1;812:9;809:2;;;877:5;872:2;867;859:6;855:15;851:24;844:39;809:2;911:6;78:845;-1:-1:-1;;;;;;78:845:103:o;928:592::-;;;1088:2;1076:9;1067:7;1063:23;1059:32;1056:2;;;1109:6;1101;1094:22;1056:2;1141:16;;-1:-1:-1;;;;;1206:14:103;;;1203:2;;;1238:6;1230;1223:22;1203:2;1266:61;1319:7;1310:6;1299:9;1295:22;1266:61;:::i;:::-;1256:71;;1373:2;1362:9;1358:18;1352:25;1336:41;;1402:2;1392:8;1389:16;1386:2;;;1423:6;1415;1408:22;1386:2;;1451:63;1506:7;1495:8;1484:9;1480:24;1451:63;:::i;:::-;1441:73;;;1046:474;;;;;:::o;1525:380::-;1610:1;1600:12;;1657:1;1647:12;;;1668:2;;1722:4;1714:6;1710:17;1700:27;;1668:2;1775;1767:6;1764:14;1744:18;1741:38;1738:2;;;1821:10;1816:3;1812:20;1809:1;1802:31;1856:4;1853:1;1846:15;1884:4;1881:1;1874:15;1738:2;;1580:325;;;:::o;1910:127::-;1971:10;1966:3;1962:20;1959:1;1952:31;2002:4;1999:1;1992:15;2026:4;2023:1;2016:15;1942:95;628:13718:54;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:11012:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1141:1053:103","statements":[{"body":{"nodeType":"YulBlock","src":"1188:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1197:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1205:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1190:6:103"},"nodeType":"YulFunctionCall","src":"1190:22:103"},"nodeType":"YulExpressionStatement","src":"1190:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1162:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1171:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1158:3:103"},"nodeType":"YulFunctionCall","src":"1158:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1183:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1154:3:103"},"nodeType":"YulFunctionCall","src":"1154:33:103"},"nodeType":"YulIf","src":"1151:2:103"},{"nodeType":"YulAssignment","src":"1223:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1252:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1233:18:103"},"nodeType":"YulFunctionCall","src":"1233:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1223:6:103"}]},{"nodeType":"YulAssignment","src":"1271:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1315:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:103"},"nodeType":"YulFunctionCall","src":"1300:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1281:18:103"},"nodeType":"YulFunctionCall","src":"1281:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1271:6:103"}]},{"nodeType":"YulAssignment","src":"1328:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1355:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1366:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1351:3:103"},"nodeType":"YulFunctionCall","src":"1351:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1338:12:103"},"nodeType":"YulFunctionCall","src":"1338:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1328:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1379:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1410:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1421:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1406:3:103"},"nodeType":"YulFunctionCall","src":"1406:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1393:12:103"},"nodeType":"YulFunctionCall","src":"1393:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1383:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1434:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1444:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1438:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1489:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1498:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1506:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1491:6:103"},"nodeType":"YulFunctionCall","src":"1491:22:103"},"nodeType":"YulExpressionStatement","src":"1491:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1477:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1485:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1474:2:103"},"nodeType":"YulFunctionCall","src":"1474:14:103"},"nodeType":"YulIf","src":"1471:2:103"},{"nodeType":"YulVariableDeclaration","src":"1524:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1538:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1549:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1534:3:103"},"nodeType":"YulFunctionCall","src":"1534:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1528:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1604:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1613:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1621:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1606:6:103"},"nodeType":"YulFunctionCall","src":"1606:22:103"},"nodeType":"YulExpressionStatement","src":"1606:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1583:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1587:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1579:3:103"},"nodeType":"YulFunctionCall","src":"1579:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1594:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1575:3:103"},"nodeType":"YulFunctionCall","src":"1575:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1568:6:103"},"nodeType":"YulFunctionCall","src":"1568:35:103"},"nodeType":"YulIf","src":"1565:2:103"},{"nodeType":"YulVariableDeclaration","src":"1639:26:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1662:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1649:12:103"},"nodeType":"YulFunctionCall","src":"1649:16:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1643:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1688:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1690:16:103"},"nodeType":"YulFunctionCall","src":"1690:18:103"},"nodeType":"YulExpressionStatement","src":"1690:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1680:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1684:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1677:2:103"},"nodeType":"YulFunctionCall","src":"1677:10:103"},"nodeType":"YulIf","src":"1674:2:103"},{"nodeType":"YulVariableDeclaration","src":"1719:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1733:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1729:3:103"},"nodeType":"YulFunctionCall","src":"1729:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1723:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1745:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1765:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1759:5:103"},"nodeType":"YulFunctionCall","src":"1759:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1749:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1777:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1799:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1823:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1827:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1819:3:103"},"nodeType":"YulFunctionCall","src":"1819:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"1834:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1815:3:103"},"nodeType":"YulFunctionCall","src":"1815:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1839:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1811:3:103"},"nodeType":"YulFunctionCall","src":"1811:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"1844:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1807:3:103"},"nodeType":"YulFunctionCall","src":"1807:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1795:3:103"},"nodeType":"YulFunctionCall","src":"1795:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1781:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1907:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1909:16:103"},"nodeType":"YulFunctionCall","src":"1909:18:103"},"nodeType":"YulExpressionStatement","src":"1909:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1866:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1878:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1863:2:103"},"nodeType":"YulFunctionCall","src":"1863:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1886:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1898:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1883:2:103"},"nodeType":"YulFunctionCall","src":"1883:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1860:2:103"},"nodeType":"YulFunctionCall","src":"1860:46:103"},"nodeType":"YulIf","src":"1857:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1945:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1949:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1938:6:103"},"nodeType":"YulFunctionCall","src":"1938:22:103"},"nodeType":"YulExpressionStatement","src":"1938:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1976:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"1984:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1969:6:103"},"nodeType":"YulFunctionCall","src":"1969:18:103"},"nodeType":"YulExpressionStatement","src":"1969:18:103"},{"body":{"nodeType":"YulBlock","src":"2033:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2042:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2050:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2035:6:103"},"nodeType":"YulFunctionCall","src":"2035:22:103"},"nodeType":"YulExpressionStatement","src":"2035:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2010:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2014:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2006:3:103"},"nodeType":"YulFunctionCall","src":"2006:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2019:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:103"},"nodeType":"YulFunctionCall","src":"2002:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2024:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1999:2:103"},"nodeType":"YulFunctionCall","src":"1999:33:103"},"nodeType":"YulIf","src":"1996:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2085:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2093:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2081:3:103"},"nodeType":"YulFunctionCall","src":"2081:15:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2102:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2106:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2098:3:103"},"nodeType":"YulFunctionCall","src":"2098:11:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2111:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2068:12:103"},"nodeType":"YulFunctionCall","src":"2068:46:103"},"nodeType":"YulExpressionStatement","src":"2068:46:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2138:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2146:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2134:3:103"},"nodeType":"YulFunctionCall","src":"2134:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"2151:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2130:3:103"},"nodeType":"YulFunctionCall","src":"2130:24:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2156:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2123:6:103"},"nodeType":"YulFunctionCall","src":"2123:40:103"},"nodeType":"YulExpressionStatement","src":"2123:40:103"},{"nodeType":"YulAssignment","src":"2172:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2182:6:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2172:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1083:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1094:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1106:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1114:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1122:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1130:6:103","type":""}],"src":"1011:1183:103"},{"body":{"nodeType":"YulBlock","src":"2283:283:103","statements":[{"body":{"nodeType":"YulBlock","src":"2329:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2338:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2346:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2331:6:103"},"nodeType":"YulFunctionCall","src":"2331:22:103"},"nodeType":"YulExpressionStatement","src":"2331:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2304:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2313:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2300:3:103"},"nodeType":"YulFunctionCall","src":"2300:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2325:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2296:3:103"},"nodeType":"YulFunctionCall","src":"2296:32:103"},"nodeType":"YulIf","src":"2293:2:103"},{"nodeType":"YulAssignment","src":"2364:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2393:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2374:18:103"},"nodeType":"YulFunctionCall","src":"2374:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2364:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2412:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2442:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2453:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2438:3:103"},"nodeType":"YulFunctionCall","src":"2438:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2425:12:103"},"nodeType":"YulFunctionCall","src":"2425:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2416:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2510:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2519:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2527:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2512:6:103"},"nodeType":"YulFunctionCall","src":"2512:22:103"},"nodeType":"YulExpressionStatement","src":"2512:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2479:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2500:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2493:6:103"},"nodeType":"YulFunctionCall","src":"2493:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2486:6:103"},"nodeType":"YulFunctionCall","src":"2486:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2476:2:103"},"nodeType":"YulFunctionCall","src":"2476:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2469:6:103"},"nodeType":"YulFunctionCall","src":"2469:40:103"},"nodeType":"YulIf","src":"2466:2:103"},{"nodeType":"YulAssignment","src":"2545:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2555:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2545:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2241:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2252:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2264:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2272:6:103","type":""}],"src":"2199:367:103"},{"body":{"nodeType":"YulBlock","src":"2658:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"2704:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2713:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2721:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2706:6:103"},"nodeType":"YulFunctionCall","src":"2706:22:103"},"nodeType":"YulExpressionStatement","src":"2706:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2679:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2688:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2675:3:103"},"nodeType":"YulFunctionCall","src":"2675:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2700:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2671:3:103"},"nodeType":"YulFunctionCall","src":"2671:32:103"},"nodeType":"YulIf","src":"2668:2:103"},{"nodeType":"YulAssignment","src":"2739:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2768:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2749:18:103"},"nodeType":"YulFunctionCall","src":"2749:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2739:6:103"}]},{"nodeType":"YulAssignment","src":"2787:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2825:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2810:3:103"},"nodeType":"YulFunctionCall","src":"2810:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2797:12:103"},"nodeType":"YulFunctionCall","src":"2797:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2787:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2616:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2627:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2639:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2647:6:103","type":""}],"src":"2571:264:103"},{"body":{"nodeType":"YulBlock","src":"2909:186:103","statements":[{"body":{"nodeType":"YulBlock","src":"2955:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2964:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2972:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2957:6:103"},"nodeType":"YulFunctionCall","src":"2957:22:103"},"nodeType":"YulExpressionStatement","src":"2957:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2930:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2939:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2926:3:103"},"nodeType":"YulFunctionCall","src":"2926:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2951:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2922:3:103"},"nodeType":"YulFunctionCall","src":"2922:32:103"},"nodeType":"YulIf","src":"2919:2:103"},{"nodeType":"YulVariableDeclaration","src":"2990:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3016:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3003:12:103"},"nodeType":"YulFunctionCall","src":"3003:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2994:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3059:5:103"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"3035:23:103"},"nodeType":"YulFunctionCall","src":"3035:30:103"},"nodeType":"YulExpressionStatement","src":"3035:30:103"},{"nodeType":"YulAssignment","src":"3074:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3084:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3074:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2875:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2886:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2898:6:103","type":""}],"src":"2840:255:103"},{"body":{"nodeType":"YulBlock","src":"3180:179:103","statements":[{"body":{"nodeType":"YulBlock","src":"3226:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3235:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3243:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3228:6:103"},"nodeType":"YulFunctionCall","src":"3228:22:103"},"nodeType":"YulExpressionStatement","src":"3228:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3201:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3210:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3197:3:103"},"nodeType":"YulFunctionCall","src":"3197:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3193:3:103"},"nodeType":"YulFunctionCall","src":"3193:32:103"},"nodeType":"YulIf","src":"3190:2:103"},{"nodeType":"YulVariableDeclaration","src":"3261:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3280:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3274:5:103"},"nodeType":"YulFunctionCall","src":"3274:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3265:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3323:5:103"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"3299:23:103"},"nodeType":"YulFunctionCall","src":"3299:30:103"},"nodeType":"YulExpressionStatement","src":"3299:30:103"},{"nodeType":"YulAssignment","src":"3338:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3348:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3338:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3146:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3157:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3169:6:103","type":""}],"src":"3100:259:103"},{"body":{"nodeType":"YulBlock","src":"3434:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3480:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3489:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3497:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3482:6:103"},"nodeType":"YulFunctionCall","src":"3482:22:103"},"nodeType":"YulExpressionStatement","src":"3482:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3455:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3464:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3451:3:103"},"nodeType":"YulFunctionCall","src":"3451:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3476:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3447:3:103"},"nodeType":"YulFunctionCall","src":"3447:32:103"},"nodeType":"YulIf","src":"3444:2:103"},{"nodeType":"YulAssignment","src":"3515:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3538:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3525:12:103"},"nodeType":"YulFunctionCall","src":"3525:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3515:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3400:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3411:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3423:6:103","type":""}],"src":"3364:190:103"},{"body":{"nodeType":"YulBlock","src":"3608:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3618:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3638:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3632:5:103"},"nodeType":"YulFunctionCall","src":"3632:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3622:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3660:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3665:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3653:6:103"},"nodeType":"YulFunctionCall","src":"3653:19:103"},"nodeType":"YulExpressionStatement","src":"3653:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3707:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3714:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3703:3:103"},"nodeType":"YulFunctionCall","src":"3703:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3725:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"3730:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3721:3:103"},"nodeType":"YulFunctionCall","src":"3721:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"3737:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3681:21:103"},"nodeType":"YulFunctionCall","src":"3681:63:103"},"nodeType":"YulExpressionStatement","src":"3681:63:103"},{"nodeType":"YulAssignment","src":"3753:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3768:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3781:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3789:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3777:3:103"},"nodeType":"YulFunctionCall","src":"3777:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3798:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3794:3:103"},"nodeType":"YulFunctionCall","src":"3794:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3773:3:103"},"nodeType":"YulFunctionCall","src":"3773:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3764:3:103"},"nodeType":"YulFunctionCall","src":"3764:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"3805:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3760:3:103"},"nodeType":"YulFunctionCall","src":"3760:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3753:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3585:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3592:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3600:3:103","type":""}],"src":"3559:257:103"},{"body":{"nodeType":"YulBlock","src":"4008:283:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4018:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4038:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4032:5:103"},"nodeType":"YulFunctionCall","src":"4032:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4022:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4080:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4088:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4076:3:103"},"nodeType":"YulFunctionCall","src":"4076:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"4095:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4100:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4054:21:103"},"nodeType":"YulFunctionCall","src":"4054:53:103"},"nodeType":"YulExpressionStatement","src":"4054:53:103"},{"nodeType":"YulVariableDeclaration","src":"4116:29:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4133:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4138:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4129:3:103"},"nodeType":"YulFunctionCall","src":"4129:16:103"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"4120:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4154:29:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4176:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4170:5:103"},"nodeType":"YulFunctionCall","src":"4170:13:103"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"4158:8:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4218:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4226:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4214:3:103"},"nodeType":"YulFunctionCall","src":"4214:17:103"},{"name":"end_1","nodeType":"YulIdentifier","src":"4233:5:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"4240:8:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4192:21:103"},"nodeType":"YulFunctionCall","src":"4192:57:103"},"nodeType":"YulExpressionStatement","src":"4192:57:103"},{"nodeType":"YulAssignment","src":"4258:27:103","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"4269:5:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"4276:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4265:3:103"},"nodeType":"YulFunctionCall","src":"4265:20:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4258:3:103"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3976:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3981:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3989:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4000:3:103","type":""}],"src":"3821:470:103"},{"body":{"nodeType":"YulBlock","src":"4397:102:103","statements":[{"nodeType":"YulAssignment","src":"4407:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4419:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4430:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4415:3:103"},"nodeType":"YulFunctionCall","src":"4415:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4407:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4449:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4464:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4480:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4485:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4476:3:103"},"nodeType":"YulFunctionCall","src":"4476:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4489:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4472:3:103"},"nodeType":"YulFunctionCall","src":"4472:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4460:3:103"},"nodeType":"YulFunctionCall","src":"4460:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4442:6:103"},"nodeType":"YulFunctionCall","src":"4442:51:103"},"nodeType":"YulExpressionStatement","src":"4442:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4366:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4377:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4388:4:103","type":""}],"src":"4296:203:103"},{"body":{"nodeType":"YulBlock","src":"4707:285:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4717:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4735:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4740:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4731:3:103"},"nodeType":"YulFunctionCall","src":"4731:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4744:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4727:3:103"},"nodeType":"YulFunctionCall","src":"4727:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4721:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4762:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4777:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4785:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4773:3:103"},"nodeType":"YulFunctionCall","src":"4773:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4755:6:103"},"nodeType":"YulFunctionCall","src":"4755:34:103"},"nodeType":"YulExpressionStatement","src":"4755:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4809:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4820:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4805:3:103"},"nodeType":"YulFunctionCall","src":"4805:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4829:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4837:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4825:3:103"},"nodeType":"YulFunctionCall","src":"4825:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4798:6:103"},"nodeType":"YulFunctionCall","src":"4798:43:103"},"nodeType":"YulExpressionStatement","src":"4798:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4872:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4857:3:103"},"nodeType":"YulFunctionCall","src":"4857:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4877:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4850:6:103"},"nodeType":"YulFunctionCall","src":"4850:34:103"},"nodeType":"YulExpressionStatement","src":"4850:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4904:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4915:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4900:3:103"},"nodeType":"YulFunctionCall","src":"4900:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4920:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4893:6:103"},"nodeType":"YulFunctionCall","src":"4893:31:103"},"nodeType":"YulExpressionStatement","src":"4893:31:103"},{"nodeType":"YulAssignment","src":"4933:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4958:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4970:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4981:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4966:3:103"},"nodeType":"YulFunctionCall","src":"4966:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4941:16:103"},"nodeType":"YulFunctionCall","src":"4941:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4933:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4652:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4663:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4671:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4679:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4687:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4698:4:103","type":""}],"src":"4504:488:103"},{"body":{"nodeType":"YulBlock","src":"5092:92:103","statements":[{"nodeType":"YulAssignment","src":"5102:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5114:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5125:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5110:3:103"},"nodeType":"YulFunctionCall","src":"5110:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5102:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5144:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5169:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5162:6:103"},"nodeType":"YulFunctionCall","src":"5162:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5155:6:103"},"nodeType":"YulFunctionCall","src":"5155:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5137:6:103"},"nodeType":"YulFunctionCall","src":"5137:41:103"},"nodeType":"YulExpressionStatement","src":"5137:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5061:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5072:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5083:4:103","type":""}],"src":"4997:187:103"},{"body":{"nodeType":"YulBlock","src":"5310:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5327:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5338:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5320:6:103"},"nodeType":"YulFunctionCall","src":"5320:21:103"},"nodeType":"YulExpressionStatement","src":"5320:21:103"},{"nodeType":"YulAssignment","src":"5350:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5375:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5398:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5383:3:103"},"nodeType":"YulFunctionCall","src":"5383:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5358:16:103"},"nodeType":"YulFunctionCall","src":"5358:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5350:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5279:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5290:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5301:4:103","type":""}],"src":"5189:219:103"},{"body":{"nodeType":"YulBlock","src":"5587:240:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5615:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5597:6:103"},"nodeType":"YulFunctionCall","src":"5597:21:103"},"nodeType":"YulExpressionStatement","src":"5597:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5649:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5634:3:103"},"nodeType":"YulFunctionCall","src":"5634:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5654:2:103","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5627:6:103"},"nodeType":"YulFunctionCall","src":"5627:30:103"},"nodeType":"YulExpressionStatement","src":"5627:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5688:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5673:3:103"},"nodeType":"YulFunctionCall","src":"5673:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5693:34:103","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5666:6:103"},"nodeType":"YulFunctionCall","src":"5666:62:103"},"nodeType":"YulExpressionStatement","src":"5666:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5759:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5744:3:103"},"nodeType":"YulFunctionCall","src":"5744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5764:20:103","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5737:6:103"},"nodeType":"YulFunctionCall","src":"5737:48:103"},"nodeType":"YulExpressionStatement","src":"5737:48:103"},{"nodeType":"YulAssignment","src":"5794:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5806:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5817:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5802:3:103"},"nodeType":"YulFunctionCall","src":"5802:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5794:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5564:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5578:4:103","type":""}],"src":"5413:414:103"},{"body":{"nodeType":"YulBlock","src":"6006:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6023:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6034:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6016:6:103"},"nodeType":"YulFunctionCall","src":"6016:21:103"},"nodeType":"YulExpressionStatement","src":"6016:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6068:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6053:3:103"},"nodeType":"YulFunctionCall","src":"6053:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6073:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6046:6:103"},"nodeType":"YulFunctionCall","src":"6046:30:103"},"nodeType":"YulExpressionStatement","src":"6046:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6096:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6107:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6092:3:103"},"nodeType":"YulFunctionCall","src":"6092:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6112:34:103","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6085:6:103"},"nodeType":"YulFunctionCall","src":"6085:62:103"},"nodeType":"YulExpressionStatement","src":"6085:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6167:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6178:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6163:3:103"},"nodeType":"YulFunctionCall","src":"6163:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6183:7:103","type":"","value":"owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6156:6:103"},"nodeType":"YulFunctionCall","src":"6156:35:103"},"nodeType":"YulExpressionStatement","src":"6156:35:103"},{"nodeType":"YulAssignment","src":"6200:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6212:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6223:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6208:3:103"},"nodeType":"YulFunctionCall","src":"6208:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6200:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5983:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5997:4:103","type":""}],"src":"5832:401:103"},{"body":{"nodeType":"YulBlock","src":"6412:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6440:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6422:6:103"},"nodeType":"YulFunctionCall","src":"6422:21:103"},"nodeType":"YulExpressionStatement","src":"6422:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6474:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6459:3:103"},"nodeType":"YulFunctionCall","src":"6459:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6479:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6452:6:103"},"nodeType":"YulFunctionCall","src":"6452:30:103"},"nodeType":"YulExpressionStatement","src":"6452:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6502:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6513:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6498:3:103"},"nodeType":"YulFunctionCall","src":"6498:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6518:34:103","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6491:6:103"},"nodeType":"YulFunctionCall","src":"6491:62:103"},"nodeType":"YulExpressionStatement","src":"6491:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6584:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6569:3:103"},"nodeType":"YulFunctionCall","src":"6569:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6589:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6562:6:103"},"nodeType":"YulFunctionCall","src":"6562:34:103"},"nodeType":"YulExpressionStatement","src":"6562:34:103"},{"nodeType":"YulAssignment","src":"6605:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6617:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6628:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6613:3:103"},"nodeType":"YulFunctionCall","src":"6613:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6605:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6389:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6403:4:103","type":""}],"src":"6238:400:103"},{"body":{"nodeType":"YulBlock","src":"6817:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6834:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6845:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6827:6:103"},"nodeType":"YulFunctionCall","src":"6827:21:103"},"nodeType":"YulExpressionStatement","src":"6827:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6868:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6879:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6864:3:103"},"nodeType":"YulFunctionCall","src":"6864:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6884:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6857:6:103"},"nodeType":"YulFunctionCall","src":"6857:30:103"},"nodeType":"YulExpressionStatement","src":"6857:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6918:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6903:3:103"},"nodeType":"YulFunctionCall","src":"6903:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6923:27:103","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6896:6:103"},"nodeType":"YulFunctionCall","src":"6896:55:103"},"nodeType":"YulExpressionStatement","src":"6896:55:103"},{"nodeType":"YulAssignment","src":"6960:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6972:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6983:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6968:3:103"},"nodeType":"YulFunctionCall","src":"6968:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6960:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6794:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6808:4:103","type":""}],"src":"6643:349:103"},{"body":{"nodeType":"YulBlock","src":"7171:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7188:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7199:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7181:6:103"},"nodeType":"YulFunctionCall","src":"7181:21:103"},"nodeType":"YulExpressionStatement","src":"7181:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7233:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7218:3:103"},"nodeType":"YulFunctionCall","src":"7218:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7238:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7211:6:103"},"nodeType":"YulFunctionCall","src":"7211:30:103"},"nodeType":"YulExpressionStatement","src":"7211:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7261:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7272:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7257:3:103"},"nodeType":"YulFunctionCall","src":"7257:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7277:34:103","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7250:6:103"},"nodeType":"YulFunctionCall","src":"7250:62:103"},"nodeType":"YulExpressionStatement","src":"7250:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7332:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7343:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7328:3:103"},"nodeType":"YulFunctionCall","src":"7328:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7348:11:103","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7321:6:103"},"nodeType":"YulFunctionCall","src":"7321:39:103"},"nodeType":"YulExpressionStatement","src":"7321:39:103"},{"nodeType":"YulAssignment","src":"7369:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7392:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7377:3:103"},"nodeType":"YulFunctionCall","src":"7377:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7369:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7148:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7162:4:103","type":""}],"src":"6997:405:103"},{"body":{"nodeType":"YulBlock","src":"7581:252:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7598:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7609:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7591:6:103"},"nodeType":"YulFunctionCall","src":"7591:21:103"},"nodeType":"YulExpressionStatement","src":"7591:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7632:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7643:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7628:3:103"},"nodeType":"YulFunctionCall","src":"7628:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7648:2:103","type":"","value":"62"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7621:6:103"},"nodeType":"YulFunctionCall","src":"7621:30:103"},"nodeType":"YulExpressionStatement","src":"7621:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7682:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7667:3:103"},"nodeType":"YulFunctionCall","src":"7667:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7687:34:103","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7660:6:103"},"nodeType":"YulFunctionCall","src":"7660:62:103"},"nodeType":"YulExpressionStatement","src":"7660:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7742:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7753:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7738:3:103"},"nodeType":"YulFunctionCall","src":"7738:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7758:32:103","type":"","value":"ken owner nor approved for all"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7731:6:103"},"nodeType":"YulFunctionCall","src":"7731:60:103"},"nodeType":"YulExpressionStatement","src":"7731:60:103"},{"nodeType":"YulAssignment","src":"7800:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7812:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7823:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7808:3:103"},"nodeType":"YulFunctionCall","src":"7808:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7800:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7558:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7572:4:103","type":""}],"src":"7407:426:103"},{"body":{"nodeType":"YulBlock","src":"8012:174:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8029:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8040:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8022:6:103"},"nodeType":"YulFunctionCall","src":"8022:21:103"},"nodeType":"YulExpressionStatement","src":"8022:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8063:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8074:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8059:3:103"},"nodeType":"YulFunctionCall","src":"8059:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8079:2:103","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8052:6:103"},"nodeType":"YulFunctionCall","src":"8052:30:103"},"nodeType":"YulExpressionStatement","src":"8052:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8102:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8113:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8098:3:103"},"nodeType":"YulFunctionCall","src":"8098:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8118:26:103","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8091:6:103"},"nodeType":"YulFunctionCall","src":"8091:54:103"},"nodeType":"YulExpressionStatement","src":"8091:54:103"},{"nodeType":"YulAssignment","src":"8154:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8166:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8177:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8162:3:103"},"nodeType":"YulFunctionCall","src":"8162:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8154:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7989:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8003:4:103","type":""}],"src":"7838:348:103"},{"body":{"nodeType":"YulBlock","src":"8365:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8382:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8393:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8375:6:103"},"nodeType":"YulFunctionCall","src":"8375:21:103"},"nodeType":"YulExpressionStatement","src":"8375:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8427:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8412:3:103"},"nodeType":"YulFunctionCall","src":"8412:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8432:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8405:6:103"},"nodeType":"YulFunctionCall","src":"8405:30:103"},"nodeType":"YulExpressionStatement","src":"8405:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8455:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8466:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8451:3:103"},"nodeType":"YulFunctionCall","src":"8451:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8471:34:103","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8444:6:103"},"nodeType":"YulFunctionCall","src":"8444:62:103"},"nodeType":"YulExpressionStatement","src":"8444:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8526:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8537:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8522:3:103"},"nodeType":"YulFunctionCall","src":"8522:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8542:3:103","type":"","value":"r"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8515:6:103"},"nodeType":"YulFunctionCall","src":"8515:31:103"},"nodeType":"YulExpressionStatement","src":"8515:31:103"},{"nodeType":"YulAssignment","src":"8555:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8578:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8563:3:103"},"nodeType":"YulFunctionCall","src":"8563:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8555:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8342:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8356:4:103","type":""}],"src":"8191:397:103"},{"body":{"nodeType":"YulBlock","src":"8767:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8784:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8795:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8777:6:103"},"nodeType":"YulFunctionCall","src":"8777:21:103"},"nodeType":"YulExpressionStatement","src":"8777:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8829:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8814:3:103"},"nodeType":"YulFunctionCall","src":"8814:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8834:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8807:6:103"},"nodeType":"YulFunctionCall","src":"8807:30:103"},"nodeType":"YulExpressionStatement","src":"8807:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8868:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8853:3:103"},"nodeType":"YulFunctionCall","src":"8853:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8873:34:103","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8846:6:103"},"nodeType":"YulFunctionCall","src":"8846:62:103"},"nodeType":"YulExpressionStatement","src":"8846:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8928:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8939:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8924:3:103"},"nodeType":"YulFunctionCall","src":"8924:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8944:16:103","type":"","value":"r nor approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8917:6:103"},"nodeType":"YulFunctionCall","src":"8917:44:103"},"nodeType":"YulExpressionStatement","src":"8917:44:103"},{"nodeType":"YulAssignment","src":"8970:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8993:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8978:3:103"},"nodeType":"YulFunctionCall","src":"8978:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8970:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8744:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8758:4:103","type":""}],"src":"8593:410:103"},{"body":{"nodeType":"YulBlock","src":"9109:76:103","statements":[{"nodeType":"YulAssignment","src":"9119:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9131:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9142:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9127:3:103"},"nodeType":"YulFunctionCall","src":"9127:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9119:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9161:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9172:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9154:6:103"},"nodeType":"YulFunctionCall","src":"9154:25:103"},"nodeType":"YulExpressionStatement","src":"9154:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9078:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9089:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9100:4:103","type":""}],"src":"9008:177:103"},{"body":{"nodeType":"YulBlock","src":"9238:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"9265:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9267:16:103"},"nodeType":"YulFunctionCall","src":"9267:18:103"},"nodeType":"YulExpressionStatement","src":"9267:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9254:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9261:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9257:3:103"},"nodeType":"YulFunctionCall","src":"9257:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9251:2:103"},"nodeType":"YulFunctionCall","src":"9251:13:103"},"nodeType":"YulIf","src":"9248:2:103"},{"nodeType":"YulAssignment","src":"9296:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9307:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"9310:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9303:3:103"},"nodeType":"YulFunctionCall","src":"9303:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"9296:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9221:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"9224:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"9230:3:103","type":""}],"src":"9190:128:103"},{"body":{"nodeType":"YulBlock","src":"9369:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"9392:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"9394:16:103"},"nodeType":"YulFunctionCall","src":"9394:18:103"},"nodeType":"YulExpressionStatement","src":"9394:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9389:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9382:6:103"},"nodeType":"YulFunctionCall","src":"9382:9:103"},"nodeType":"YulIf","src":"9379:2:103"},{"nodeType":"YulAssignment","src":"9423:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9432:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"9435:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9428:3:103"},"nodeType":"YulFunctionCall","src":"9428:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"9423:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9354:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"9357:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"9363:1:103","type":""}],"src":"9323:120:103"},{"body":{"nodeType":"YulBlock","src":"9497:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"9519:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9521:16:103"},"nodeType":"YulFunctionCall","src":"9521:18:103"},"nodeType":"YulExpressionStatement","src":"9521:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9513:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"9516:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9510:2:103"},"nodeType":"YulFunctionCall","src":"9510:8:103"},"nodeType":"YulIf","src":"9507:2:103"},{"nodeType":"YulAssignment","src":"9550:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9562:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"9565:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9558:3:103"},"nodeType":"YulFunctionCall","src":"9558:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"9550:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9479:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"9482:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"9488:4:103","type":""}],"src":"9448:125:103"},{"body":{"nodeType":"YulBlock","src":"9631:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"9641:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"9650:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"9645:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9710:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9735:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"9740:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9731:3:103"},"nodeType":"YulFunctionCall","src":"9731:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9754:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"9759:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9750:3:103"},"nodeType":"YulFunctionCall","src":"9750:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9744:5:103"},"nodeType":"YulFunctionCall","src":"9744:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9724:6:103"},"nodeType":"YulFunctionCall","src":"9724:39:103"},"nodeType":"YulExpressionStatement","src":"9724:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9671:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"9674:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9668:2:103"},"nodeType":"YulFunctionCall","src":"9668:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9682:19:103","statements":[{"nodeType":"YulAssignment","src":"9684:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9693:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"9696:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9689:3:103"},"nodeType":"YulFunctionCall","src":"9689:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"9684:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"9664:3:103","statements":[]},"src":"9660:113:103"},{"body":{"nodeType":"YulBlock","src":"9799:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9812:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"9817:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9808:3:103"},"nodeType":"YulFunctionCall","src":"9808:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"9826:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9801:6:103"},"nodeType":"YulFunctionCall","src":"9801:27:103"},"nodeType":"YulExpressionStatement","src":"9801:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9788:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"9791:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9785:2:103"},"nodeType":"YulFunctionCall","src":"9785:13:103"},"nodeType":"YulIf","src":"9782:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"9609:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"9614:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"9619:6:103","type":""}],"src":"9578:258:103"},{"body":{"nodeType":"YulBlock","src":"9896:325:103","statements":[{"nodeType":"YulAssignment","src":"9906:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9920:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"9926:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9916:3:103"},"nodeType":"YulFunctionCall","src":"9916:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"9906:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"9937:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9967:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"9973:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9963:3:103"},"nodeType":"YulFunctionCall","src":"9963:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"9941:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10014:31:103","statements":[{"nodeType":"YulAssignment","src":"10016:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10030:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"10038:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10026:3:103"},"nodeType":"YulFunctionCall","src":"10026:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10016:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"9994:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9987:6:103"},"nodeType":"YulFunctionCall","src":"9987:26:103"},"nodeType":"YulIf","src":"9984:2:103"},{"body":{"nodeType":"YulBlock","src":"10104:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10125:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10132:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10137:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10128:3:103"},"nodeType":"YulFunctionCall","src":"10128:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10118:6:103"},"nodeType":"YulFunctionCall","src":"10118:31:103"},"nodeType":"YulExpressionStatement","src":"10118:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10169:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10172:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10162:6:103"},"nodeType":"YulFunctionCall","src":"10162:15:103"},"nodeType":"YulExpressionStatement","src":"10162:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10197:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10200:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10190:6:103"},"nodeType":"YulFunctionCall","src":"10190:15:103"},"nodeType":"YulExpressionStatement","src":"10190:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10060:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10083:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"10091:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10080:2:103"},"nodeType":"YulFunctionCall","src":"10080:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10057:2:103"},"nodeType":"YulFunctionCall","src":"10057:38:103"},"nodeType":"YulIf","src":"10054:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"9876:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"9885:6:103","type":""}],"src":"9841:380:103"},{"body":{"nodeType":"YulBlock","src":"10273:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"10304:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10306:16:103"},"nodeType":"YulFunctionCall","src":"10306:18:103"},"nodeType":"YulExpressionStatement","src":"10306:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10289:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10300:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10296:3:103"},"nodeType":"YulFunctionCall","src":"10296:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10286:2:103"},"nodeType":"YulFunctionCall","src":"10286:17:103"},"nodeType":"YulIf","src":"10283:2:103"},{"nodeType":"YulAssignment","src":"10335:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10346:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10353:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10342:3:103"},"nodeType":"YulFunctionCall","src":"10342:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"10335:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10255:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"10265:3:103","type":""}],"src":"10226:135:103"},{"body":{"nodeType":"YulBlock","src":"10404:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"10427:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"10429:16:103"},"nodeType":"YulFunctionCall","src":"10429:18:103"},"nodeType":"YulExpressionStatement","src":"10429:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10424:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10417:6:103"},"nodeType":"YulFunctionCall","src":"10417:9:103"},"nodeType":"YulIf","src":"10414:2:103"},{"nodeType":"YulAssignment","src":"10458:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10467:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"10470:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"10463:3:103"},"nodeType":"YulFunctionCall","src":"10463:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"10458:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10389:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"10392:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"10398:1:103","type":""}],"src":"10366:112:103"},{"body":{"nodeType":"YulBlock","src":"10515:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10532:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10539:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10544:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10535:3:103"},"nodeType":"YulFunctionCall","src":"10535:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10525:6:103"},"nodeType":"YulFunctionCall","src":"10525:31:103"},"nodeType":"YulExpressionStatement","src":"10525:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10572:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10575:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10565:6:103"},"nodeType":"YulFunctionCall","src":"10565:15:103"},"nodeType":"YulExpressionStatement","src":"10565:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10596:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10599:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10589:6:103"},"nodeType":"YulFunctionCall","src":"10589:15:103"},"nodeType":"YulExpressionStatement","src":"10589:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"10483:127:103"},{"body":{"nodeType":"YulBlock","src":"10647:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10664:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10671:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10676:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10667:3:103"},"nodeType":"YulFunctionCall","src":"10667:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10657:6:103"},"nodeType":"YulFunctionCall","src":"10657:31:103"},"nodeType":"YulExpressionStatement","src":"10657:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10704:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10707:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10697:6:103"},"nodeType":"YulFunctionCall","src":"10697:15:103"},"nodeType":"YulExpressionStatement","src":"10697:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10728:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10731:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10721:6:103"},"nodeType":"YulFunctionCall","src":"10721:15:103"},"nodeType":"YulExpressionStatement","src":"10721:15:103"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"10615:127:103"},{"body":{"nodeType":"YulBlock","src":"10779:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10796:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10803:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10808:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10799:3:103"},"nodeType":"YulFunctionCall","src":"10799:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10789:6:103"},"nodeType":"YulFunctionCall","src":"10789:31:103"},"nodeType":"YulExpressionStatement","src":"10789:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10836:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10839:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10829:6:103"},"nodeType":"YulFunctionCall","src":"10829:15:103"},"nodeType":"YulExpressionStatement","src":"10829:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10860:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10863:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10853:6:103"},"nodeType":"YulFunctionCall","src":"10853:15:103"},"nodeType":"YulExpressionStatement","src":"10853:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"10747:127:103"},{"body":{"nodeType":"YulBlock","src":"10923:87:103","statements":[{"body":{"nodeType":"YulBlock","src":"10988:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10997:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11000:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10990:6:103"},"nodeType":"YulFunctionCall","src":"10990:12:103"},"nodeType":"YulExpressionStatement","src":"10990:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10946:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10957:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10968:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10973:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10964:3:103"},"nodeType":"YulFunctionCall","src":"10964:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10953:3:103"},"nodeType":"YulFunctionCall","src":"10953:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10943:2:103"},"nodeType":"YulFunctionCall","src":"10943:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10936:6:103"},"nodeType":"YulFunctionCall","src":"10936:51:103"},"nodeType":"YulIf","src":"10933:2:103"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10912:5:103","type":""}],"src":"10879:131:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value3, value3) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value3, value3) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value3, value3) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value3, value3) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), value3)\n value3 := memPtr\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(value1, value1) }\n value1 := value\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 50)\n mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n mstore(add(headStart, 96), \"ceiver implementer\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n mstore(add(headStart, 96), \"owner\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERC721: approve to caller\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n mstore(add(headStart, 96), \"lid owner\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 62)\n mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n mstore(add(headStart, 96), \"ken owner nor approved for all\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n mstore(add(headStart, 96), \"r\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n mstore(add(headStart, 96), \"r nor approved\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610e37565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190610f1f565b61012461011f366004610e6f565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610e0e565b610335565b005b61014f61015f366004610cc4565b610450565b61014f610172366004610cc4565b610481565b610124610185366004610e6f565b61049c565b61019d610198366004610c78565b6104fc565b6040519081526020016100f3565b610104610582565b61014f6101c1366004610dd4565b610591565b61014f6101d4366004610cff565b6105a0565b6101046101e7366004610e6f565b6105d8565b6100e76101fa366004610c92565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606000805461028b90611041565b80601f01602080910402602001604051908101604052809291908181526020018280546102b790611041565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b60006103198261064c565b506000908152600460205260409020546001600160a01b031690565b60006103408261049c565b9050806001600160a01b0316836001600160a01b031614156103b35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103cf57506103cf81336101fa565b6104415760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016103aa565b61044b83836106ae565b505050565b61045a338261071c565b6104765760405162461bcd60e51b81526004016103aa90610f84565b61044b83838361079b565b61044b838383604051806020016040528060008152506105a0565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b60006001600160a01b0382166105665760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103aa565b506001600160a01b031660009081526003602052604090205490565b60606001805461028b90611041565b61059c338383610937565b5050565b6105aa338361071c565b6105c65760405162461bcd60e51b81526004016103aa90610f84565b6105d284848484610a06565b50505050565b60606105e38261064c565b60006105fa60408051602081019091526000815290565b9050600081511161061a5760405180602001604052806000815250610645565b8061062484610a39565b604051602001610635929190610eb3565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166106ab5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e38261049c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806107288361049c565b9050806001600160a01b0316846001600160a01b0316148061076f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107935750836001600160a01b03166107888461030e565b6001600160a01b0316145b949350505050565b826001600160a01b03166107ae8261049c565b6001600160a01b0316146108125760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103aa565b6001600160a01b0382166108745760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103aa565b61087f6000826106ae565b6001600160a01b03831660009081526003602052604081208054600192906108a8908490610ffe565b90915550506001600160a01b03821660009081526003602052604081208054600192906108d6908490610fd2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a461044b565b816001600160a01b0316836001600160a01b031614156109995760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103aa565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a1184848461079b565b610a1d84848484610b54565b6105d25760405162461bcd60e51b81526004016103aa90610f32565b606081610a5e57506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610a885780610a728161107c565b9150610a819050600a83610fea565b9150610a62565b60008167ffffffffffffffff811115610ab157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610adb576020820181803683370190505b5090505b841561079357610af0600183610ffe565b9150610afd600a86611097565b610b08906030610fd2565b60f81b818381518110610b2b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610b4d600a86610fea565b9450610adf565b60006001600160a01b0384163b15610c5657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b98903390899088908890600401610ee2565b602060405180830381600087803b158015610bb257600080fd5b505af1925050508015610be2575060408051601f3d908101601f19168201909252610bdf91810190610e53565b60015b610c3c573d808015610c10576040519150601f19603f3d011682016040523d82523d6000602084013e610c15565b606091505b508051610c345760405162461bcd60e51b81526004016103aa90610f32565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610793565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610c89578081fd5b61064582610c61565b60008060408385031215610ca4578081fd5b610cad83610c61565b9150610cbb60208401610c61565b90509250929050565b600080600060608486031215610cd8578081fd5b610ce184610c61565b9250610cef60208501610c61565b9150604084013590509250925092565b60008060008060808587031215610d14578081fd5b610d1d85610c61565b9350610d2b60208601610c61565b925060408501359150606085013567ffffffffffffffff80821115610d4e578283fd5b818701915087601f830112610d61578283fd5b813581811115610d7357610d736110d7565b604051601f8201601f19908116603f01168101908382118183101715610d9b57610d9b6110d7565b816040528281528a6020848701011115610db3578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610de6578182fd5b610def83610c61565b915060208301358015158114610e03578182fd5b809150509250929050565b60008060408385031215610e20578182fd5b610e2983610c61565b946020939093013593505050565b600060208284031215610e48578081fd5b8135610645816110ed565b600060208284031215610e64578081fd5b8151610645816110ed565b600060208284031215610e80578081fd5b5035919050565b60008151808452610e9f816020860160208601611015565b601f01601f19169290920160200192915050565b60008351610ec5818460208801611015565b835190830190610ed9818360208801611015565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1590830184610e87565b9695505050505050565b6000602082526106456020830184610e87565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008219821115610fe557610fe56110ab565b500190565b600082610ff957610ff96110c1565b500490565b600082821015611010576110106110ab565b500390565b60005b83811015611030578181015183820152602001611018565b838111156105d25750506000910152565b60028104600182168061105557607f821691505b6020821081141561107657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611090576110906110ab565b5060010190565b6000826110a6576110a66110c1565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146106ab57600080fdfea2646970667358221220c015f1e648d0c91113d9455457bb32b225c6c39cb166f630dc2dbc2e5f163c5564736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1EC JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AB JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x164 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x228 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x27C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xF1F JUMP JUMPDEST PUSH2 0x124 PUSH2 0x11F CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x30E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xCC4 JUMP JUMPDEST PUSH2 0x450 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xCC4 JUMP JUMPDEST PUSH2 0x481 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x49C JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0xC78 JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x582 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0xDD4 JUMP JUMPDEST PUSH2 0x591 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0xCFF JUMP JUMPDEST PUSH2 0x5A0 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x5D8 JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1FA CALLDATASIZE PUSH1 0x4 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x259 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x274 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x28B SWAP1 PUSH2 0x1041 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B7 SWAP1 PUSH2 0x1041 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x304 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x304 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x319 DUP3 PUSH2 0x64C JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x340 DUP3 PUSH2 0x49C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x3CF JUMPI POP PUSH2 0x3CF DUP2 CALLER PUSH2 0x1FA JUMP JUMPDEST PUSH2 0x441 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206E6F7220617070726F76656420666F7220616C6C0000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 PUSH2 0x6AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x45A CALLER DUP3 PUSH2 0x71C JUMP JUMPDEST PUSH2 0x476 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF84 JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 DUP4 PUSH2 0x79B JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x5A0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x274 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x566 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x28B SWAP1 PUSH2 0x1041 JUMP JUMPDEST PUSH2 0x59C CALLER DUP4 DUP4 PUSH2 0x937 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5AA CALLER DUP4 PUSH2 0x71C JUMP JUMPDEST PUSH2 0x5C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF84 JUMP JUMPDEST PUSH2 0x5D2 DUP5 DUP5 DUP5 DUP5 PUSH2 0xA06 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5E3 DUP3 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FA PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x61A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x645 JUMP JUMPDEST DUP1 PUSH2 0x624 DUP5 PUSH2 0xA39 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x635 SWAP3 SWAP2 SWAP1 PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x6AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x6E3 DUP3 PUSH2 0x49C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x728 DUP4 PUSH2 0x49C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x76F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x793 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x788 DUP5 PUSH2 0x30E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7AE DUP3 PUSH2 0x49C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x812 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x874 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x87F PUSH1 0x0 DUP3 PUSH2 0x6AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x8A8 SWAP1 DUP5 SWAP1 PUSH2 0xFFE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x8D6 SWAP1 DUP5 SWAP1 PUSH2 0xFD2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP5 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 PUSH2 0x44B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x999 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xA11 DUP5 DUP5 DUP5 PUSH2 0x79B JUMP JUMPDEST PUSH2 0xA1D DUP5 DUP5 DUP5 DUP5 PUSH2 0xB54 JUMP JUMPDEST PUSH2 0x5D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0xA5E JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x277 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xA88 JUMPI DUP1 PUSH2 0xA72 DUP2 PUSH2 0x107C JUMP JUMPDEST SWAP2 POP PUSH2 0xA81 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0xFEA JUMP JUMPDEST SWAP2 POP PUSH2 0xA62 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAB1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xADB JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x793 JUMPI PUSH2 0xAF0 PUSH1 0x1 DUP4 PUSH2 0xFFE JUMP JUMPDEST SWAP2 POP PUSH2 0xAFD PUSH1 0xA DUP7 PUSH2 0x1097 JUMP JUMPDEST PUSH2 0xB08 SWAP1 PUSH1 0x30 PUSH2 0xFD2 JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xB2B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0xB4D PUSH1 0xA DUP7 PUSH2 0xFEA JUMP JUMPDEST SWAP5 POP PUSH2 0xADF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xC56 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xB98 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xBE2 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xBDF SWAP2 DUP2 ADD SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xC3C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xC15 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0xC34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF32 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x793 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC89 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x645 DUP3 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCA4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCAD DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH2 0xCBB PUSH1 0x20 DUP5 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD8 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCE1 DUP5 PUSH2 0xC61 JUMP JUMPDEST SWAP3 POP PUSH2 0xCEF PUSH1 0x20 DUP6 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD14 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD1D DUP6 PUSH2 0xC61 JUMP JUMPDEST SWAP4 POP PUSH2 0xD2B PUSH1 0x20 DUP7 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD4E JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD61 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xD73 JUMPI PUSH2 0xD73 PUSH2 0x10D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xD9B JUMPI PUSH2 0xD9B PUSH2 0x10D7 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xDB3 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDE6 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xDEF DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE03 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE20 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xE29 DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE48 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x645 DUP2 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE64 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x645 DUP2 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE80 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE9F DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1015 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0xEC5 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1015 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0xED9 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1015 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF15 SWAP1 DUP4 ADD DUP5 PUSH2 0xE87 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x645 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xE87 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x1C881B9BDC88185C1C1C9BDD9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xFE5 JUMPI PUSH2 0xFE5 PUSH2 0x10AB JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xFF9 JUMPI PUSH2 0xFF9 PUSH2 0x10C1 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1010 JUMPI PUSH2 0x1010 PUSH2 0x10AB JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1030 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1018 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x5D2 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1055 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1076 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1090 JUMPI PUSH2 0x1090 PUSH2 0x10AB JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x10A6 JUMPI PUSH2 0x10A6 PUSH2 0x10C1 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x6AB JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 ISZERO CALL 0xE6 0x48 0xD0 0xC9 GT SGT 0xD9 GASLIMIT SLOAD JUMPI 0xBB ORIGIN 0xB2 0x25 0xC6 0xC3 SWAP13 0xB1 PUSH7 0xF630DC2DBC2E5F AND EXTCODECOPY SSTORE PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"628:13718:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300;;;;;;:::i;:::-;;:::i;:::-;;;5162:14:103;;5155:22;5137:41;;5125:2;5110:18;1570:300:54;;;;;;;;2470:98;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4460:32:103;;;4442:51;;4430:2;4415:18;3935:167:54;4397:102:103;3467:407:54;;;;;;:::i;:::-;;:::i;:::-;;4612:327;;;;;;:::i;:::-;;:::i;5005:179::-;;;;;;:::i;:::-;;:::i;2190:218::-;;;;;;:::i;:::-;;:::i;1929:204::-;;;;;;:::i;:::-;;:::i;:::-;;;9154:25:103;;;9142:2;9127:18;1929:204:54;9109:76:103;2632:102:54;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;5250:315::-;;;;;;:::i;:::-;;:::i;2800:276::-;;;;;;:::i;:::-;;:::i;4388:162::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4508:25:54;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;1570:300;1672:4;-1:-1:-1;;;;;;1707:40:54;;-1:-1:-1;;;1707:40:54;;:104;;-1:-1:-1;;;;;;;1763:48:54;;-1:-1:-1;;;1763:48:54;1707:104;:156;;;-1:-1:-1;;;;;;;;;;937:40:62;;;1827:36:54;1688:175;;1570:300;;;;:::o;2470:98::-;2524:13;2556:5;2549:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2470:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:54;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:54;;3935:167::o;3467:407::-;3547:13;3563:23;3578:7;3563:14;:23::i;:::-;3547:39;;3610:5;-1:-1:-1;;;;;3604:11:54;:2;-1:-1:-1;;;;;3604:11:54;;;3596:57;;;;-1:-1:-1;;;3596:57:54;;8393:2:103;3596:57:54;;;8375:21:103;8432:2;8412:18;;;8405:30;8471:34;8451:18;;;8444:62;-1:-1:-1;;;8522:18:103;;;8515:31;8563:19;;3596:57:54;;;;;;;;;719:10:59;-1:-1:-1;;;;;3685:21:54;;;;:62;;-1:-1:-1;3710:37:54;3727:5;719:10:59;3734:12:54;640:96:59;3710:37:54;3664:171;;;;-1:-1:-1;;;3664:171:54;;7609:2:103;3664:171:54;;;7591:21:103;7648:2;7628:18;;;7621:30;7687:34;7667:18;;;7660:62;7758:32;7738:18;;;7731:60;7808:19;;3664:171:54;7581:252:103;3664:171:54;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3467:407;;;:::o;4612:327::-;4801:41;719:10:59;4834:7:54;4801:18;:41::i;:::-;4793:100;;;;-1:-1:-1;;;4793:100:54;;;;;;;:::i;:::-;4904:28;4914:4;4920:2;4924:7;4904:9;:28::i;5005:179::-;5138:39;5155:4;5161:2;5165:7;5138:39;;;;;;;;;;;;:16;:39::i;2190:218::-;2262:7;2297:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2297:16:54;2331:19;2323:56;;;;-1:-1:-1;;;2323:56:54;;8040:2:103;2323:56:54;;;8022:21:103;8079:2;8059:18;;;8052:30;-1:-1:-1;;;8098:18:103;;;8091:54;8162:18;;2323:56:54;8012:174:103;1929:204:54;2001:7;-1:-1:-1;;;;;2028:19:54;;2020:73;;;;-1:-1:-1;;;2020:73:54;;7199:2:103;2020:73:54;;;7181:21:103;7238:2;7218:18;;;7211:30;7277:34;7257:18;;;7250:62;-1:-1:-1;;;7328:18:103;;;7321:39;7377:19;;2020:73:54;7171:231:103;2020:73:54;-1:-1:-1;;;;;;2110:16:54;;;;;:9;:16;;;;;;;1929:204::o;2632:102::-;2688:13;2720:7;2713:14;;;;;:::i;4169:153::-;4263:52;719:10:59;4296:8:54;4306;4263:18;:52::i;:::-;4169:153;;:::o;5250:315::-;5418:41;719:10:59;5451:7:54;5418:18;:41::i;:::-;5410:100;;;;-1:-1:-1;;;5410:100:54;;;;;;;:::i;:::-;5520:38;5534:4;5540:2;5544:7;5553:4;5520:13;:38::i;:::-;5250:315;;;;:::o;2800:276::-;2873:13;2898:23;2913:7;2898:14;:23::i;:::-;2932:21;2956:10;3394:9;;;;;;;;;-1:-1:-1;3394:9:54;;3318:92;;2956:10;2932:34;;3007:1;2989:7;2983:21;:25;:86;;;;;;;;;;;;;;;;;3035:7;3044:18;:7;:16;:18::i;:::-;3018:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2983:86;2976:93;2800:276;-1:-1:-1;;;2800:276:54:o;11657:133::-;7099:4;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:54;11730:53;;;;-1:-1:-1;;;11730:53:54;;8040:2:103;11730:53:54;;;8022:21:103;8079:2;8059:18;;;8052:30;-1:-1:-1;;;8098:18:103;;;8091:54;8162:18;;11730:53:54;8012:174:103;11730:53:54;11657:133;:::o;10959:171::-;11033:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11033:29:54;-1:-1:-1;;;;;11033:29:54;;;;;;;;:24;;11086:23;11033:24;11086:14;:23::i;:::-;-1:-1:-1;;;;;11077:46:54;;;;;;;;;;;10959:171;;:::o;7317:261::-;7410:4;7426:13;7442:23;7457:7;7442:14;:23::i;:::-;7426:39;;7494:5;-1:-1:-1;;;;;7483:16:54;:7;-1:-1:-1;;;;;7483:16:54;;:52;;;-1:-1:-1;;;;;;4508:25:54;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7503:32;7483:87;;;;7563:7;-1:-1:-1;;;;;7539:31:54;:20;7551:7;7539:11;:20::i;:::-;-1:-1:-1;;;;;7539:31:54;;7483:87;7475:96;7317:261;-1:-1:-1;;;;7317:261:54:o;10242:605::-;10396:4;-1:-1:-1;;;;;10369:31:54;:23;10384:7;10369:14;:23::i;:::-;-1:-1:-1;;;;;10369:31:54;;10361:81;;;;-1:-1:-1;;;10361:81:54;;6034:2:103;10361:81:54;;;6016:21:103;6073:2;6053:18;;;6046:30;6112:34;6092:18;;;6085:62;-1:-1:-1;;;6163:18:103;;;6156:35;6208:19;;10361:81:54;6006:227:103;10361:81:54;-1:-1:-1;;;;;10460:16:54;;10452:65;;;;-1:-1:-1;;;10452:65:54;;6440:2:103;10452:65:54;;;6422:21:103;6479:2;6459:18;;;6452:30;6518:34;6498:18;;;6491:62;-1:-1:-1;;;6569:18:103;;;6562:34;6613:19;;10452:65:54;6412:226:103;10452:65:54;10629:29;10646:1;10650:7;10629:8;:29::i;:::-;-1:-1:-1;;;;;10669:15:54;;;;;;:9;:15;;;;;:20;;10688:1;;10669:15;:20;;10688:1;;10669:20;:::i;:::-;;;;-1:-1:-1;;;;;;;10699:13:54;;;;;;:9;:13;;;;;:18;;10716:1;;10699:13;:18;;10716:1;;10699:18;:::i;:::-;;;;-1:-1:-1;;10727:16:54;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10727:21:54;-1:-1:-1;;;;;10727:21:54;;;;;;;;;10764:27;;10727:16;;10764:27;;;;;;;10802:38;3467:407;11266:307;11416:8;-1:-1:-1;;;;;11407:17:54;:5;-1:-1:-1;;;;;11407:17:54;;;11399:55;;;;-1:-1:-1;;;11399:55:54;;6845:2:103;11399:55:54;;;6827:21:103;6884:2;6864:18;;;6857:30;6923:27;6903:18;;;6896:55;6968:18;;11399:55:54;6817:175:103;11399:55:54;-1:-1:-1;;;;;11464:25:54;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11464:46:54;;;;;;;;;;11525:41;;5137::103;;;11525::54;;5110:18:103;11525:41:54;;;;;;;11266:307;;;:::o;6426:305::-;6576:28;6586:4;6592:2;6596:7;6576:9;:28::i;:::-;6622:47;6645:4;6651:2;6655:7;6664:4;6622:22;:47::i;:::-;6614:110;;;;-1:-1:-1;;;6614:110:54;;;;;;;:::i;392:703:61:-;448:13;665:10;661:51;;-1:-1:-1;691:10:61;;;;;;;;;;;;-1:-1:-1;;;691:10:61;;;;;;661:51;736:5;721:12;775:75;782:9;;775:75;;807:8;;;;:::i;:::-;;-1:-1:-1;829:10:61;;-1:-1:-1;837:2:61;829:10;;:::i;:::-;;;775:75;;;859:19;891:6;881:17;;;;;;-1:-1:-1;;;881:17:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;881:17:61;;859:39;;908:150;915:10;;908:150;;941:11;951:1;941:11;;:::i;:::-;;-1:-1:-1;1009:10:61;1017:2;1009:5;:10;:::i;:::-;996:24;;:2;:24;:::i;:::-;983:39;;966:6;973;966:14;;;;;;-1:-1:-1;;;966:14:61;;;;;;;;;;;;:56;-1:-1:-1;;;;;966:56:61;;;;;;;;-1:-1:-1;1036:11:61;1045:2;1036:11;;:::i;:::-;;;908:150;;12342:831:54;12491:4;-1:-1:-1;;;;;12511:13:54;;1465:19:58;:23;12507:660:54;;12546:71;;-1:-1:-1;;;12546:71:54;;-1:-1:-1;;;;;12546:36:54;;;;;:71;;719:10:59;;12597:4:54;;12603:7;;12612:4;;12546:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12546:71:54;;;;;;;;-1:-1:-1;;12546:71:54;;;;;;;;;;;;:::i;:::-;;;12542:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12784:13:54;;12780:321;;12826:60;;-1:-1:-1;;;12826:60:54;;;;;;;:::i;12780:321::-;13053:6;13047:13;13038:6;13034:2;13030:15;13023:38;12542:573;-1:-1:-1;;;;;;12667:51:54;-1:-1:-1;;;12667:51:54;;-1:-1:-1;12660:58:54;;12507:660;-1:-1:-1;13152:4:54;12342:831;;;;;;:::o;14:173:103:-;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:1183::-;;;;;1183:3;1171:9;1162:7;1158:23;1154:33;1151:2;;;1205:6;1197;1190:22;1151:2;1233:29;1252:9;1233:29;:::i;:::-;1223:39;;1281:38;1315:2;1304:9;1300:18;1281:38;:::i;:::-;1271:48;;1366:2;1355:9;1351:18;1338:32;1328:42;;1421:2;1410:9;1406:18;1393:32;1444:18;1485:2;1477:6;1474:14;1471:2;;;1506:6;1498;1491:22;1471:2;1549:6;1538:9;1534:22;1524:32;;1594:7;1587:4;1583:2;1579:13;1575:27;1565:2;;1621:6;1613;1606:22;1565:2;1662;1649:16;1684:2;1680;1677:10;1674:2;;;1690:18;;:::i;:::-;1765:2;1759:9;1733:2;1819:13;;-1:-1:-1;;1815:22:103;;;1839:2;1811:31;1807:40;1795:53;;;1863:18;;;1883:22;;;1860:46;1857:2;;;1909:18;;:::i;:::-;1949:10;1945:2;1938:22;1984:2;1976:6;1969:18;2024:7;2019:2;2014;2010;2006:11;2002:20;1999:33;1996:2;;;2050:6;2042;2035:22;1996:2;2111;2106;2102;2098:11;2093:2;2085:6;2081:15;2068:46;2134:15;;;2151:2;2130:24;2123:40;;;;1141:1053;;;;-1:-1:-1;1141:1053:103;;-1:-1:-1;;;;1141:1053:103:o;2199:367::-;;;2325:2;2313:9;2304:7;2300:23;2296:32;2293:2;;;2346:6;2338;2331:22;2293:2;2374:29;2393:9;2374:29;:::i;:::-;2364:39;;2453:2;2442:9;2438:18;2425:32;2500:5;2493:13;2486:21;2479:5;2476:32;2466:2;;2527:6;2519;2512:22;2466:2;2555:5;2545:15;;;2283:283;;;;;:::o;2571:264::-;;;2700:2;2688:9;2679:7;2675:23;2671:32;2668:2;;;2721:6;2713;2706:22;2668:2;2749:29;2768:9;2749:29;:::i;:::-;2739:39;2825:2;2810:18;;;;2797:32;;-1:-1:-1;;;2658:177:103:o;2840:255::-;;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2972:6;2964;2957:22;2919:2;3016:9;3003:23;3035:30;3059:5;3035:30;:::i;3100:259::-;;3222:2;3210:9;3201:7;3197:23;3193:32;3190:2;;;3243:6;3235;3228:22;3190:2;3280:9;3274:16;3299:30;3323:5;3299:30;:::i;3364:190::-;;3476:2;3464:9;3455:7;3451:23;3447:32;3444:2;;;3497:6;3489;3482:22;3444:2;-1:-1:-1;3525:23:103;;3434:120;-1:-1:-1;3434:120:103:o;3559:257::-;;3638:5;3632:12;3665:6;3660:3;3653:19;3681:63;3737:6;3730:4;3725:3;3721:14;3714:4;3707:5;3703:16;3681:63;:::i;:::-;3798:2;3777:15;-1:-1:-1;;3773:29:103;3764:39;;;;3805:4;3760:50;;3608:208;-1:-1:-1;;3608:208:103:o;3821:470::-;;4038:6;4032:13;4054:53;4100:6;4095:3;4088:4;4080:6;4076:17;4054:53;:::i;:::-;4170:13;;4129:16;;;;4192:57;4170:13;4129:16;4226:4;4214:17;;4192:57;:::i;:::-;4265:20;;4008:283;-1:-1:-1;;;;4008:283:103:o;4504:488::-;-1:-1:-1;;;;;4773:15:103;;;4755:34;;4825:15;;4820:2;4805:18;;4798:43;4872:2;4857:18;;4850:34;;;4920:3;4915:2;4900:18;;4893:31;;;4504:488;;4941:45;;4966:19;;4958:6;4941:45;:::i;:::-;4933:53;4707:285;-1:-1:-1;;;;;;4707:285:103:o;5189:219::-;;5338:2;5327:9;5320:21;5358:44;5398:2;5387:9;5383:18;5375:6;5358:44;:::i;5413:414::-;5615:2;5597:21;;;5654:2;5634:18;;;5627:30;5693:34;5688:2;5673:18;;5666:62;-1:-1:-1;;;5759:2:103;5744:18;;5737:48;5817:3;5802:19;;5587:240::o;8593:410::-;8795:2;8777:21;;;8834:2;8814:18;;;8807:30;8873:34;8868:2;8853:18;;8846:62;-1:-1:-1;;;8939:2:103;8924:18;;8917:44;8993:3;8978:19;;8767:236::o;9190:128::-;;9261:1;9257:6;9254:1;9251:13;9248:2;;;9267:18;;:::i;:::-;-1:-1:-1;9303:9:103;;9238:80::o;9323:120::-;;9389:1;9379:2;;9394:18;;:::i;:::-;-1:-1:-1;9428:9:103;;9369:74::o;9448:125::-;;9516:1;9513;9510:8;9507:2;;;9521:18;;:::i;:::-;-1:-1:-1;9558:9:103;;9497:76::o;9578:258::-;9650:1;9660:113;9674:6;9671:1;9668:13;9660:113;;;9750:11;;;9744:18;9731:11;;;9724:39;9696:2;9689:10;9660:113;;;9791:6;9788:1;9785:13;9782:2;;;-1:-1:-1;;9826:1:103;9808:16;;9801:27;9631:205::o;9841:380::-;9926:1;9916:12;;9973:1;9963:12;;;9984:2;;10038:4;10030:6;10026:17;10016:27;;9984:2;10091;10083:6;10080:14;10060:18;10057:38;10054:2;;;10137:10;10132:3;10128:20;10125:1;10118:31;10172:4;10169:1;10162:15;10200:4;10197:1;10190:15;10054:2;;9896:325;;;:::o;10226:135::-;;-1:-1:-1;;10286:17:103;;10283:2;;;10306:18;;:::i;:::-;-1:-1:-1;10353:1:103;10342:13;;10273:88::o;10366:112::-;;10424:1;10414:2;;10429:18;;:::i;:::-;-1:-1:-1;10463:9:103;;10404:74::o;10483:127::-;10544:10;10539:3;10535:20;10532:1;10525:31;10575:4;10572:1;10565:15;10599:4;10596:1;10589:15;10615:127;10676:10;10671:3;10667:20;10664:1;10657:31;10707:4;10704:1;10697:15;10731:4;10728:1;10721:15;10747:127;10808:10;10803:3;10799:20;10796:1;10789:31;10839:4;10836:1;10829:15;10863:4;10860:1;10853:15;10879:131;-1:-1:-1;;;;;;10953:32:103;;10943:43;;10933:2;;11000:1;10997;10990:12"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"IERC721Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200fa1e693094ebf84cad290be5d43cf4715f087d620c601634c4648a02e72ace864736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF LOG1 0xE6 SWAP4 MULMOD 0x4E 0xBF DUP5 0xCA 0xD2 SWAP1 0xBE 0x5D NUMBER 0xCF SELFBALANCE ISZERO CREATE DUP8 0xD6 KECCAK256 0xC6 ADD PUSH4 0x4C4648A0 0x2E PUSH19 0xACE864736F6C63430008020033000000000000 ","sourceMap":"194:8111:58:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:8111:58;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200fa1e693094ebf84cad290be5d43cf4715f087d620c601634c4648a02e72ace864736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF LOG1 0xE6 SWAP4 MULMOD 0x4E 0xBF DUP5 0xCA 0xD2 SWAP1 0xBE 0x5D NUMBER 0xCF SELFBALANCE ISZERO CREATE DUP8 0xD6 KECCAK256 0xC6 ADD PUSH4 0x4C4648A0 0x2E PUSH19 0xACE864736F6C63430008020033000000000000 ","sourceMap":"194:8111:58:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220548b09ac82e45b33b1735c483f99cdd694f65e585c1b1c385f7804aee5ecef8064736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD DUP12 MULMOD 0xAC DUP3 0xE4 JUMPDEST CALLER 0xB1 PUSH20 0x5C483F99CDD694F65E585C1B1C385F7804AEE5EC 0xEF DUP1 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1279:1391:60:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1279:1391:60;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220548b09ac82e45b33b1735c483f99cdd694f65e585c1b1c385f7804aee5ecef8064736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD DUP12 MULMOD 0xAC DUP3 0xE4 JUMPDEST CALLER 0xB1 PUSH20 0x5C483F99CDD694F65E585C1B1C385F7804AEE5EC 0xEF DUP1 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1279:1391:60:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ``` contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\"); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202855554d9d2f6e99da4b2b0abb5e45eda5c155eb156924975fd14aa04152e65964736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x28 SSTORE SSTORE 0x4D SWAP14 0x2F PUSH15 0x99DA4B2B0ABB5E45EDA5C155EB1569 0x24 SWAP8 0x5F 0xD1 0x4A LOG0 COINBASE MSTORE 0xE6 MSIZE PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"161:2235:61:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:61;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202855554d9d2f6e99da4b2b0abb5e45eda5c155eb156924975fd14aa04152e65964736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x28 SSTORE SSTORE 0x4D SWAP14 0x2F PUSH15 0x99DA4B2B0ABB5E45EDA5C155EB1569 0x24 SWAP8 0x5F 0xD1 0x4A LOG0 COINBASE MSTORE 0xE6 MSIZE PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"161:2235:61:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"EnumerableSet":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f5d74db21ef8a5bf17d7feea4a3de1c4cbcd77c6f2ba54e1031ce853bf59487f64736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 0xD7 0x4D 0xB2 0x1E 0xF8 0xA5 0xBF OR 0xD7 INVALID 0xEA 0x4A RETURNDATASIZE 0xE1 0xC4 0xCB 0xCD PUSH24 0xC6F2BA54E1031CE853BF59487F64736F6C63430008020033 ","sourceMap":"1228:11454:64:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1228:11454:64;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f5d74db21ef8a5bf17d7feea4a3de1c4cbcd77c6f2ba54e1031ce853bf59487f64736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 0xD7 0x4D 0xB2 0x1E 0xF8 0xA5 0xBF OR 0xD7 INVALID 0xEA 0x4A RETURNDATASIZE 0xE1 0xC4 0xCB 0xCD PUSH24 0xC6F2BA54E1031CE853BF59487F64736F6C63430008020033 ","sourceMap":"1228:11454:64:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]}},\"version\":1}"}},"contracts/Migrations.sol":{"Migrations":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"last_completed_migration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_completed","type":"uint256"}],"name":"setCompleted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101d1806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610082578063fdacd576146100ad575b600080fd5b61006461005f366004610155565b6100c0565b005b61006f60015481565b6040519081526020015b60405180910390f35b600054610095906001600160a01b031681565b6040516001600160a01b039091168152602001610079565b6100646100bb366004610183565b61013d565b6000546001600160a01b031633141561013a57600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916101069160040190815260200190565b600060405180830381600087803b15801561012057600080fd5b505af1158015610134573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031633141561013a57600155565b600060208284031215610166578081fd5b81356001600160a01b038116811461017c578182fd5b9392505050565b600060208284031215610194578081fd5b503591905056fea2646970667358221220a7ffc413689af522848c08543fae43e42c89e0f98d7b3bbedcc1c037759491e064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x1D1 DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x900F010 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0xAD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x5F CALLDATASIZE PUSH1 0x4 PUSH2 0x155 JUMP JUMPDEST PUSH2 0xC0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6F PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x95 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79 JUMP JUMPDEST PUSH2 0x64 PUSH2 0xBB CALLDATASIZE PUSH1 0x4 PUSH2 0x183 JUMP JUMPDEST PUSH2 0x13D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x13A JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7ED66ABB PUSH1 0xE1 SHL DUP2 MSTORE DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP2 PUSH4 0xFDACD576 SWAP2 PUSH2 0x106 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x134 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x13A JUMPI PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x166 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x17C JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x194 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 SELFDESTRUCT 0xC4 SGT PUSH9 0x9AF522848C08543FAE NUMBER 0xE4 0x2C DUP10 0xE0 0xF9 DUP14 PUSH28 0x3BBEDCC1C037759491E064736F6C6343000802003300000000000000 ","sourceMap":"63:545:65:-:0;;;185:49;;;;;;;;;-1:-1:-1;209:5:65;:18;;-1:-1:-1;;;;;;209:18:65;217:10;209:18;;;63:545;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:907:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:236:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"264:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"273:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"281:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"266:6:103"},"nodeType":"YulFunctionCall","src":"266:22:103"},"nodeType":"YulExpressionStatement","src":"266:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"223:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"234:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"249:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"254:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"245:3:103"},"nodeType":"YulFunctionCall","src":"245:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"241:3:103"},"nodeType":"YulFunctionCall","src":"241:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"230:3:103"},"nodeType":"YulFunctionCall","src":"230:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"220:2:103"},"nodeType":"YulFunctionCall","src":"220:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"213:6:103"},"nodeType":"YulFunctionCall","src":"213:50:103"},"nodeType":"YulIf","src":"210:2:103"},{"nodeType":"YulAssignment","src":"299:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"309:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"299:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:306:103"},{"body":{"nodeType":"YulBlock","src":"395:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"441:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"450:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"458:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"443:6:103"},"nodeType":"YulFunctionCall","src":"443:22:103"},"nodeType":"YulExpressionStatement","src":"443:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"416:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"425:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"412:3:103"},"nodeType":"YulFunctionCall","src":"412:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"437:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"408:3:103"},"nodeType":"YulFunctionCall","src":"408:32:103"},"nodeType":"YulIf","src":"405:2:103"},{"nodeType":"YulAssignment","src":"476:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"499:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"486:12:103"},"nodeType":"YulFunctionCall","src":"486:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"476:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"361:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"372:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"384:6:103","type":""}],"src":"325:190:103"},{"body":{"nodeType":"YulBlock","src":"621:102:103","statements":[{"nodeType":"YulAssignment","src":"631:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"654:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"639:3:103"},"nodeType":"YulFunctionCall","src":"639:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"631:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"673:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"688:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"704:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"709:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"700:3:103"},"nodeType":"YulFunctionCall","src":"700:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"713:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"696:3:103"},"nodeType":"YulFunctionCall","src":"696:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:103"},"nodeType":"YulFunctionCall","src":"684:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"666:6:103"},"nodeType":"YulFunctionCall","src":"666:51:103"},"nodeType":"YulExpressionStatement","src":"666:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"590:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"601:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"612:4:103","type":""}],"src":"520:203:103"},{"body":{"nodeType":"YulBlock","src":"829:76:103","statements":[{"nodeType":"YulAssignment","src":"839:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"851:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"862:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"847:3:103"},"nodeType":"YulFunctionCall","src":"847:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"839:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"881:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"892:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"874:6:103"},"nodeType":"YulFunctionCall","src":"874:25:103"},"nodeType":"YulExpressionStatement","src":"874:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"798:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"809:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"820:4:103","type":""}],"src":"728:177:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610082578063fdacd576146100ad575b600080fd5b61006461005f366004610155565b6100c0565b005b61006f60015481565b6040519081526020015b60405180910390f35b600054610095906001600160a01b031681565b6040516001600160a01b039091168152602001610079565b6100646100bb366004610183565b61013d565b6000546001600160a01b031633141561013a57600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916101069160040190815260200190565b600060405180830381600087803b15801561012057600080fd5b505af1158015610134573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031633141561013a57600155565b600060208284031215610166578081fd5b81356001600160a01b038116811461017c578182fd5b9392505050565b600060208284031215610194578081fd5b503591905056fea2646970667358221220a7ffc413689af522848c08543fae43e42c89e0f98d7b3bbedcc1c037759491e064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x900F010 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0xAD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x5F CALLDATASIZE PUSH1 0x4 PUSH2 0x155 JUMP JUMPDEST PUSH2 0xC0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6F PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x95 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79 JUMP JUMPDEST PUSH2 0x64 PUSH2 0xBB CALLDATASIZE PUSH1 0x4 PUSH2 0x183 JUMP JUMPDEST PUSH2 0x13D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x13A JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7ED66ABB PUSH1 0xE1 SHL DUP2 MSTORE DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP2 PUSH4 0xFDACD576 SWAP2 PUSH2 0x106 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x134 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x13A JUMPI PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x166 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x17C JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x194 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 SELFDESTRUCT 0xC4 SGT PUSH9 0x9AF522848C08543FAE NUMBER 0xE4 0x2C DUP10 0xE0 0xF9 DUP14 PUSH28 0x3BBEDCC1C037759491E064736F6C6343000802003300000000000000 ","sourceMap":"63:545:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;431:175;;;;;;:::i;:::-;;:::i;:::-;;115:39;;;;;;;;;874:25:103;;;862:2;847:18;115:39:65;;;;;;;;89:20;;;;;-1:-1:-1;;;;;89:20:65;;;;;;-1:-1:-1;;;;;684:32:103;;;666:51;;654:2;639:18;89:20:65;621:102:103;311:114:65;;;;;;:::i;:::-;;:::i;431:175::-;290:5;;-1:-1:-1;;;;;290:5:65;276:10;:19;272:26;;;574:24:::1;::::0;552:47:::1;::::0;-1:-1:-1;;;552:47:65;;530:11;;-1:-1:-1;;;;;552:21:65;::::1;::::0;::::1;::::0;:47:::1;::::0;::::1;;874:25:103::0;;;862:2;847:18;;829:76;552:47:65::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;297:1;272:26:::0;431:175;:::o;311:114::-;290:5;;-1:-1:-1;;;;;290:5:65;276:10;:19;272:26;;;381:24:::1;:37:::0;311:114::o;14:306:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;178:23;;-1:-1:-1;;;;;230:31:103;;220:42;;210:2;;281:6;273;266:22;210:2;309:5;84:236;-1:-1:-1;;;84:236:103:o;325:190::-;;437:2;425:9;416:7;412:23;408:32;405:2;;;458:6;450;443:22;405:2;-1:-1:-1;486:23:103;;395:120;-1:-1:-1;395:120:103:o"},"methodIdentifiers":{"last_completed_migration()":"445df0ac","owner()":"8da5cb5b","setCompleted(uint256)":"fdacd576","upgrade(address)":"0900f010"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newAddress\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Migrations.sol\":{\"keccak256\":\"0x7caffa1aef8472dae4bb3ccf5a71d710a9d6cbdf9ec022d741892e4c6bafc3b8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3a5b234146cee0371b30e1d987b538e967373721143a6004d5659dbc69e5f680\",\"dweb:/ipfs/QmSfS1D4PHyVZSmG5ZneCwwLAukBqzbMYLmWvjQULuVTZW\"]}},\"version\":1}"}},"contracts/examples/AyiiOracle.sol":{"AyiiOracle":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"},{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_chainLinkToken","type":"address"},{"internalType":"address","name":"_chainLinkOperator","type":"address"},{"internalType":"bytes32","name":"_jobId","type":"bytes32"},{"internalType":"uint256","name":"_payment","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"chainlinkRequestId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"projectId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"cropId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"aaay","type":"uint256"}],"name":"LogAyiiFulfill","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"chainlinkRequestId","type":"bytes32"}],"name":"LogAyiiRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oracleAddress","type":"address"}],"name":"LogOracleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"chainlinkRequestId","type":"bytes32"},{"internalType":"bytes32","name":"projectId","type":"bytes32"},{"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"internalType":"bytes32","name":"cropId","type":"bytes32"},{"internalType":"uint256","name":"aaay","type":"uint256"}],"name":"encodeFulfillParameters","outputs":[{"internalType":"bytes","name":"parameterData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"chainlinkRequestId","type":"bytes32"},{"internalType":"bytes32","name":"projectId","type":"bytes32"},{"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"internalType":"bytes32","name":"cropId","type":"bytes32"},{"internalType":"uint256","name":"aaay","type":"uint256"}],"name":"fulfill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainlinkJobId","outputs":[{"internalType":"bytes32","name":"chainlinkJobId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainlinkOperator","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainlinkPayment","outputs":[{"internalType":"uint256","name":"paymentAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainlinkToken","outputs":[{"internalType":"address","name":"linkTokenAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"gifRequests","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jobId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"payment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gifRequestId","type":"uint256"},{"internalType":"bytes","name":"input","type":"bytes"}],"name":"request","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_chainLinkToken","type":"address"},{"internalType":"address","name":"_chainLinkOperator","type":"address"},{"internalType":"bytes32","name":"_jobId","type":"bytes32"},{"internalType":"uint256","name":"_payment","type":"uint256"}],"name":"updateRequestDetails","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2771:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"585:408:103","statements":[{"body":{"nodeType":"YulBlock","src":"632:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"641:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"649:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"634:6:103"},"nodeType":"YulFunctionCall","src":"634:22:103"},"nodeType":"YulExpressionStatement","src":"634:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"606:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"615:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"602:3:103"},"nodeType":"YulFunctionCall","src":"602:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"627:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"598:3:103"},"nodeType":"YulFunctionCall","src":"598:33:103"},"nodeType":"YulIf","src":"595:2:103"},{"nodeType":"YulAssignment","src":"667:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"683:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"677:5:103"},"nodeType":"YulFunctionCall","src":"677:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"667:6:103"}]},{"nodeType":"YulAssignment","src":"702:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"757:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"742:3:103"},"nodeType":"YulFunctionCall","src":"742:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"712:29:103"},"nodeType":"YulFunctionCall","src":"712:49:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"702:6:103"}]},{"nodeType":"YulAssignment","src":"770:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"825:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"810:3:103"},"nodeType":"YulFunctionCall","src":"810:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"780:29:103"},"nodeType":"YulFunctionCall","src":"780:49:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"770:6:103"}]},{"nodeType":"YulAssignment","src":"838:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"893:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"878:3:103"},"nodeType":"YulFunctionCall","src":"878:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"848:29:103"},"nodeType":"YulFunctionCall","src":"848:49:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"838:6:103"}]},{"nodeType":"YulAssignment","src":"906:36:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"937:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"922:3:103"},"nodeType":"YulFunctionCall","src":"922:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"916:5:103"},"nodeType":"YulFunctionCall","src":"916:26:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"906:6:103"}]},{"nodeType":"YulAssignment","src":"951:36:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"971:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"982:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"961:5:103"},"nodeType":"YulFunctionCall","src":"961:26:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"951:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_addresst_addresst_bytes32t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"511:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"522:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"534:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"542:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"550:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"558:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"566:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"574:6:103","type":""}],"src":"419:574:103"},{"body":{"nodeType":"YulBlock","src":"1099:102:103","statements":[{"nodeType":"YulAssignment","src":"1109:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:103"},"nodeType":"YulFunctionCall","src":"1117:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1166:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1182:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1187:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1178:3:103"},"nodeType":"YulFunctionCall","src":"1178:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1191:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1174:3:103"},"nodeType":"YulFunctionCall","src":"1174:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1162:3:103"},"nodeType":"YulFunctionCall","src":"1162:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:103"},"nodeType":"YulFunctionCall","src":"1144:51:103"},"nodeType":"YulExpressionStatement","src":"1144:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:103","type":""}],"src":"998:203:103"},{"body":{"nodeType":"YulBlock","src":"1307:76:103","statements":[{"nodeType":"YulAssignment","src":"1317:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1329:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1340:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1325:3:103"},"nodeType":"YulFunctionCall","src":"1325:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1317:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1359:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1370:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1352:6:103"},"nodeType":"YulFunctionCall","src":"1352:25:103"},"nodeType":"YulExpressionStatement","src":"1352:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1276:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1287:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1298:4:103","type":""}],"src":"1206:177:103"},{"body":{"nodeType":"YulBlock","src":"1589:415:103","statements":[{"nodeType":"YulAssignment","src":"1599:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1611:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1622:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1607:3:103"},"nodeType":"YulFunctionCall","src":"1607:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1599:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1642:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1653:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1635:6:103"},"nodeType":"YulFunctionCall","src":"1635:25:103"},"nodeType":"YulExpressionStatement","src":"1635:25:103"},{"body":{"nodeType":"YulBlock","src":"1702:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1723:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1730:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1735:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1726:3:103"},"nodeType":"YulFunctionCall","src":"1726:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1716:6:103"},"nodeType":"YulFunctionCall","src":"1716:31:103"},"nodeType":"YulExpressionStatement","src":"1716:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1767:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1770:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1760:6:103"},"nodeType":"YulFunctionCall","src":"1760:15:103"},"nodeType":"YulExpressionStatement","src":"1760:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1795:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1798:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1788:6:103"},"nodeType":"YulFunctionCall","src":"1788:15:103"},"nodeType":"YulExpressionStatement","src":"1788:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1682:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1690:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1679:2:103"},"nodeType":"YulFunctionCall","src":"1679:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1672:6:103"},"nodeType":"YulFunctionCall","src":"1672:21:103"},"nodeType":"YulIf","src":"1669:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1829:3:103"},"nodeType":"YulFunctionCall","src":"1829:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1849:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1822:6:103"},"nodeType":"YulFunctionCall","src":"1822:34:103"},"nodeType":"YulExpressionStatement","src":"1822:34:103"},{"nodeType":"YulVariableDeclaration","src":"1865:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1883:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1888:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1879:3:103"},"nodeType":"YulFunctionCall","src":"1879:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1892:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1875:3:103"},"nodeType":"YulFunctionCall","src":"1875:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1869:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1925:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1910:3:103"},"nodeType":"YulFunctionCall","src":"1910:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1934:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1942:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1930:3:103"},"nodeType":"YulFunctionCall","src":"1930:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1903:6:103"},"nodeType":"YulFunctionCall","src":"1903:43:103"},"nodeType":"YulExpressionStatement","src":"1903:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1977:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1962:3:103"},"nodeType":"YulFunctionCall","src":"1962:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1986:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1994:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1982:3:103"},"nodeType":"YulFunctionCall","src":"1982:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1955:6:103"},"nodeType":"YulFunctionCall","src":"1955:43:103"},"nodeType":"YulExpressionStatement","src":"1955:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1534:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1545:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1553:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1561:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1569:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1580:4:103","type":""}],"src":"1388:616:103"},{"body":{"nodeType":"YulBlock","src":"2183:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2200:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2211:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2193:6:103"},"nodeType":"YulFunctionCall","src":"2193:21:103"},"nodeType":"YulExpressionStatement","src":"2193:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2234:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2245:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2230:3:103"},"nodeType":"YulFunctionCall","src":"2230:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2250:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2223:6:103"},"nodeType":"YulFunctionCall","src":"2223:30:103"},"nodeType":"YulExpressionStatement","src":"2223:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2273:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2284:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2269:3:103"},"nodeType":"YulFunctionCall","src":"2269:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2289:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2262:6:103"},"nodeType":"YulFunctionCall","src":"2262:62:103"},"nodeType":"YulExpressionStatement","src":"2262:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:33:103"},"nodeType":"YulExpressionStatement","src":"2333:33:103"},{"nodeType":"YulAssignment","src":"2375:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2398:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2383:3:103"},"nodeType":"YulFunctionCall","src":"2383:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2375:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2160:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2174:4:103","type":""}],"src":"2009:399:103"},{"body":{"nodeType":"YulBlock","src":"2587:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2615:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2597:6:103"},"nodeType":"YulFunctionCall","src":"2597:21:103"},"nodeType":"YulExpressionStatement","src":"2597:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2649:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2634:3:103"},"nodeType":"YulFunctionCall","src":"2634:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2654:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2627:6:103"},"nodeType":"YulFunctionCall","src":"2627:30:103"},"nodeType":"YulExpressionStatement","src":"2627:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2688:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2673:3:103"},"nodeType":"YulFunctionCall","src":"2673:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2693:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2666:6:103"},"nodeType":"YulFunctionCall","src":"2666:62:103"},"nodeType":"YulExpressionStatement","src":"2666:62:103"},{"nodeType":"YulAssignment","src":"2737:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2749:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2760:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2745:3:103"},"nodeType":"YulFunctionCall","src":"2745:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2737:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2564:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2578:4:103","type":""}],"src":"2413:356:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32t_addresst_addresst_addresst_bytes32t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := abi_decode_address_fromMemory(add(headStart, 96))\n value4 := mload(add(headStart, 128))\n value5 := mload(add(headStart, 160))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526001600c553480156200001657600080fd5b506040516200206d3803806200206d8339810160408190526200003991620004bc565b8585816000826200004a3362000273565b6001600160a01b038116620000b25760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000dc620002c3565b600480546001600160a01b0319166001600160a01b039290921691909117905562000106620002de565b600580546001600160a01b0319166001600160a01b0392909216919091179055620001306200030b565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200018357634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001d792909160ff82169130916101009091046001600160a01b03169062000521565b60405180910390a1505050620002036c4f7261636c655365727669636560981b6200032560201b60201c565b600780546001600160a01b0319166001600160a01b03929092169190911790556040513081527f77dee27cd265ac28cb5ba0d4f1a792ad0425ca4ae8bd0c6253b99ec26ac454109060200160405180910390a15062000267905084848484620003b3565b5050505050506200056c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620002d96541636365737360d01b62000325565b905090565b6000620002d97f436f6d706f6e656e744f776e657253657276696365000000000000000000000062000325565b6000620002d96e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200037057600080fd5b505afa15801562000385573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ab919062000498565b90505b919050565b620003bd62000422565b6001600160a01b03841615620003e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b038316156200041557600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6000546001600160a01b031633146200047e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620000a9565b565b80516001600160a01b0381168114620003ae57600080fd5b600060208284031215620004aa578081fd5b620004b58262000480565b9392505050565b60008060008060008060c08789031215620004d5578182fd5b86519550620004e76020880162000480565b9450620004f76040880162000480565b9350620005076060880162000480565b92506080870151915060a087015190509295509295509295565b84815260808101600385106200054757634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b611af1806200057c6000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063893d20e81161011a578063be169e7e116100ad578063d73cd9921161007c578063d73cd99214610319578063e0815f0d146103d8578063e8f8e1c1146103e0578063f2fde38b146103e8578063ffc79065146103fb576101fb565b8063be169e7e14610319578063c2939d97146103a9578063ca5ddcf3146103b2578063d0e0ba95146103c5576101fb565b8063a18f5ae2116100e9578063a18f5ae214610319578063b3fca9bd14610319578063b6e45ee014610399578063bd1fe5d0146103a1576101fb565b8063893d20e8146103585780638da5cb5b1461036d57806397e873e91461037e5780639a82f89014610391576101fb565b8063423b3b7a116101925780635b16d9b2116101615780635b16d9b2146103385780635d1ca63114610340578063638ce0ba14610348578063715018a614610350576101fb565b8063423b3b7a146102b857806342f6487a1461031057806359dacc6a146103195780635ab1bd5314610321576101fb565b80631b867c63116101ce5780631b867c6314610263578063258d560c1461026d5780633fb80f511461028557806340e58ee5146102a5576101fb565b806315dae03e14610200578063165d35e11461021c57806317d7de7c1461023c5780631865c57d1461024e575b600080fd5b60035460ff166040516102139190611876565b60405180910390f35b61022461040e565b6040516001600160a01b039091168152602001610213565b6001545b604051908152602001610213565b610256610427565b604051610213919061185c565b61026b6104a8565b005b610275610500565b6040519015158152602001610213565b610240610293366004611653565b600e6020526000908152604090205481565b61026b6102b3366004611653565b610530565b6103036102c6366004611696565b604080516020810196909652858101949094526060850192909252608084015260a0808401919091528151808403909101815260c0909201905290565b6040516102139190611849565b61024060105481565b61026b61053b565b61022460035461010090046001600160a01b031690565b601054610240565b600254610240565b61026b610585565b61026b6105d2565b610224600080546001600160a01b0316610422565b6000546001600160a01b0316610224565b61026b61038c366004611696565b6105e4565b610275610761565b600f54610240565b61026b610769565b610240600f5481565b61026b6103c03660046115ee565b6107b6565b61026b6103d3366004611653565b610821565b61027561086b565b610224610874565b61026b6103f63660046115b6565b610888565b61026b6104093660046116ef565b6108fe565b6000610422600a546001600160a01b031690565b905090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561047057600080fd5b505afa158015610484573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906116d0565b6104bd6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146104f65760405162461bcd60e51b81526004016104ed9061188a565b60405180910390fd5b6104fe610b0b565b565b600060025b60035460ff16600281111561052a57634e487b7160e01b600052602160045260246000fd5b14905090565b610538610b48565b50565b6105506810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105805760405162461bcd60e51b81526004016104ed9061188a565b6104fe565b61059a6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105ca5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610ba2565b6105da610b48565b6104fe6000610bcc565b6000858152600d602052604090205485906001600160a01b0316331461065d5760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084016104ed565b6000818152600d602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a26000868152600e602090815260408083205481519283018990529082018790526060820186905260808201859052919060a00160405160208183030381529060405290506106ee8282610c1c565b6000888152600e602090815260408083209290925581518481529081018a9052908101889052606081018790526080810186905260a081018590527fd3d5b0141a5d81ac8c98139f284f1b25fb3061bc81857f74de9a702e382916349060c0015b60405180910390a15050505050505050565b600080610505565b61077e6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146107ae5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610c84565b6107be610b48565b6001600160a01b038416156107e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383161561081457600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6108366810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146108665760405162461bcd60e51b81526004016104ed9061188a565b600255565b60006001610505565b6000610422600b546001600160a01b031690565b610890610b48565b6001600160a01b0381166108f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61053881610bcc565b61090f64517565727960d81b610a81565b6001600160a01b0316336001600160a01b03161461096f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e494544000000000060448201526064016104ed565b6000610985600f54306397e873e960e01b610cae565b9050600080806109978587018761166b565b9250925092506109d3604051806040016040528060098152602001681c1c9bda9958dd125960ba1b8152506109cb85610cd5565b869190610d8d565b6109fd604051806040016040528060058152602001641d585a525960da1b8152506109cb84610cd5565b610a286040518060400160405280600681526020016518dc9bdc125960d21b8152506109cb83610cd5565b6000610a3685601054610db0565b6000818152600e60209081526040918290208b905581518b81529081018390529192507f09ee0ce04d9140f363cd342b605f7aaae55e9c0d84a975c417e55ce074b49332910161074f565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0391906115d2565b90505b919050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b23610b3560025490565b60405190815260200160405180910390a1565b6000546001600160a01b031633146104fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e6610b3560025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a90610c4e90859085906004016118c1565b600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505050565b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d610b3560025490565b610cb661157b565b610cbe61157b565b610cca81868686610dd3565b9150505b9392505050565b6060610cf4604051806040016040528060008152602001600081525090565b6040516020810160405283815280602083015250610d1183610e19565b80825260009067ffffffffffffffff811115610d3d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610d67576020820181803683370190505b5090506000602082019050610d858184602001518560000151610f03565b509392505050565b6080830151610d9c9083610f7d565b6080830151610dab9082610f7d565b505050565b600b54600090610dca906001600160a01b03168484610f94565b90505b92915050565b610ddb61157b565b610deb8560800151610100611027565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b60008082610e2b576000915050610b06565b6fffffffffffffffffffffffffffffffff8316610e6057610e4d6010826118da565b9050610e5d600160801b846118f2565b92505b67ffffffffffffffff8316610e9257610e7a6008826118da565b9050610e8f68010000000000000000846118f2565b92505b63ffffffff8316610ebc57610ea86004826118da565b9050610eb9640100000000846118f2565b92505b61ffff8316610ee257610ed06002826118da565b9050610edf62010000846118f2565b92505b60ff8316610ef857610ef56001826118da565b90505b610cce816020611a39565b60208110610f3b5781518352610f1a6020846118da565b9250610f276020836118da565b9150610f34602082611a39565b9050610f03565b6000198115610f6a576001610f51836020611a39565b610f5d9061010061194c565b610f679190611a39565b90505b9151835183169219169190911790915250565b610f8a826003835161108c565b610dab82826111a7565b600c54600090610fa58160016118da565b600c55835160408086015160808701515191516000936320214ca360e11b93610fdd9386938493923092918a916001916024016117b1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061101d868386846111ce565b9695505050505050565b604080518082019091526060815260006020820152611047602083611a50565b1561106f57611057602083611a50565b611062906020611a39565b61106c90836118da565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116110b7576110b18360e0600585901b16831761133b565b50610dab565b60ff8167ffffffffffffffff16116110f5576110de836018611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166001611360565b61ffff8167ffffffffffffffff16116111345761111d836019611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166002611360565b63ffffffff8167ffffffffffffffff16116111755761115e83601a611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166004611360565b61118a83601b611fe0600586901b161761133b565b506111a18367ffffffffffffffff83166008611360565b50505050565b604080518082019091526060815260006020820152610dca83846000015151848551611386565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600d90925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600a54604051630200057560e51b81526001600160a01b0390911690634000aea09061129190889087908790600401611819565b602060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e39190611633565b610e115760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b60648201526084016104ed565b604080518082019091526060815260006020820152610dca8384600001515184611470565b604080518082019091526060815260006020820152610e118485600001515185856114cc565b60408051808201909152606081526000602082015282518211156113a957600080fd5b60208501516113b883866118da565b11156113eb576113eb856113db876020015187866113d691906118da565b61154d565b6113e6906002611a1a565b611564565b60008086518051876020830101935080888701111561140a5787860182525b505050602084015b6020841061144a57805182526114296020836118da565b91506114366020826118da565b9050611443602085611a39565b9350611412565b51815160001960208690036101000a019081169019919091161790525083949350505050565b604080518082019091526060815260006020820152836020015183106114a5576114a584856020015160026113e69190611a1a565b8351805160208583010184815350808514156114c2576001810182525b5093949350505050565b60408051808201909152606081526000602082015260208501516114f085846118da565b111561150457611504856113db86856118da565b600060016115148461010061194c565b61151e9190611a39565b90508551838682010185831982511617815250805184870111156115425783860181525b509495945050505050565b60008183111561155e575081610dcd565b50919050565b81516115708383611027565b506111a183826111a7565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000602082840312156115c7578081fd5b8135610cce81611aa6565b6000602082840312156115e3578081fd5b8151610cce81611aa6565b60008060008060808587031215611603578283fd5b843561160e81611aa6565b9350602085013561161e81611aa6565b93969395505050506040820135916060013590565b600060208284031215611644578081fd5b81518015158114610cce578182fd5b600060208284031215611664578081fd5b5035919050565b60008060006060848603121561167f578283fd5b505081359360208301359350604090920135919050565b600080600080600060a086880312156116ad578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000602082840312156116e1578081fd5b815160078110610cce578182fd5b600080600060408486031215611703578283fd5b83359250602084013567ffffffffffffffff80821115611721578384fd5b818601915086601f830112611734578384fd5b813581811115611742578485fd5b876020828501011115611753578485fd5b6020830194508093505050509250925092565b60008151808452815b8181101561178b5760208185018101518683018201520161176f565b8181111561179c5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061180a83820185611766565b9b9a5050505050505050505050565b600060018060a01b0385168252836020830152606060408301526118406060830184611766565b95945050505050565b600060208252610dca6020830184611766565b602081016007831061187057611870611a90565b91905290565b602081016003831061187057611870611a90565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260406020830152610e116040830184611766565b600082198211156118ed576118ed611a64565b500190565b60008261190157611901611a7a565b500490565b80825b60018086116119185750611943565b81870482111561192a5761192a611a64565b8086161561193757918102915b9490941c938002611909565b94509492505050565b6000610dca600019848460008261196557506001610cce565b8161197257506000610cce565b81600181146119885760028114611992576119bf565b6001915050610cce565b60ff8411156119a3576119a3611a64565b6001841b9150848211156119b9576119b9611a64565b50610cce565b5060208310610133831016604e8410600b84101617156119f2575081810a838111156119ed576119ed611a64565b610cce565b6119ff8484846001611906565b808604821115611a1157611a11611a64565b02949350505050565b6000816000190483118215151615611a3457611a34611a64565b500290565b600082821015611a4b57611a4b611a64565b500390565b600082611a5f57611a5f611a7a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038116811461053857600080fdfea264697066735822122032e1343ae3cf45cc987315ea3df5115358453bec437a4d8d956c9c7ac8dc31c064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0xC SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x206D CODESIZE SUB DUP1 PUSH3 0x206D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x39 SWAP2 PUSH3 0x4BC JUMP JUMPDEST DUP6 DUP6 DUP2 PUSH1 0x0 DUP3 PUSH3 0x4A CALLER PUSH3 0x273 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xDC PUSH3 0x2C3 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x106 PUSH3 0x2DE JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x130 PUSH3 0x30B JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x183 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1D7 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP PUSH3 0x203 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH3 0x325 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 MLOAD ADDRESS DUP2 MSTORE PUSH32 0x77DEE27CD265AC28CB5BA0D4F1A792AD0425CA4AE8BD0C6253B99EC26AC45410 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH3 0x267 SWAP1 POP DUP5 DUP5 DUP5 DUP5 PUSH3 0x3B3 JUMP JUMPDEST POP POP POP POP POP POP PUSH3 0x56C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D9 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x325 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D9 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x325 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D9 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x370 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x385 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x3AB SWAP2 SWAP1 PUSH3 0x498 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3BD PUSH3 0x422 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH3 0x3E9 JUMPI PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH3 0x415 JUMPI PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0xF SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x10 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH3 0x47E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xA9 JUMP JUMPDEST JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x4AA JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH3 0x4B5 DUP3 PUSH3 0x480 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH3 0x4D5 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP7 MLOAD SWAP6 POP PUSH3 0x4E7 PUSH1 0x20 DUP9 ADD PUSH3 0x480 JUMP JUMPDEST SWAP5 POP PUSH3 0x4F7 PUSH1 0x40 DUP9 ADD PUSH3 0x480 JUMP JUMPDEST SWAP4 POP PUSH3 0x507 PUSH1 0x60 DUP9 ADD PUSH3 0x480 JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP8 ADD MLOAD SWAP2 POP PUSH1 0xA0 DUP8 ADD MLOAD SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x547 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AF1 DUP1 PUSH3 0x57C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1FB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xBE169E7E GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD73CD992 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x3D8 JUMPI DUP1 PUSH4 0xE8F8E1C1 EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0xFFC79065 EQ PUSH2 0x3FB JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xC2939D97 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xCA5DDCF3 EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x3C5 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xB6E45EE0 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x3A1 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0x97E873E9 EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x391 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x423B3B7A GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x5B16D9B2 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x5B16D9B2 EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x350 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x423B3B7A EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x42F6487A EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x321 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x1B867C63 GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3FB80F51 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x2A5 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x165D35E1 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x24E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x1876 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x224 PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH2 0x256 PUSH2 0x427 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4A8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x275 PUSH2 0x500 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH2 0x240 PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x2B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH2 0x530 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x2C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x1849 JUMP JUMPDEST PUSH2 0x240 PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x53B JUMP JUMPDEST PUSH2 0x224 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x585 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x5D2 JUMP JUMPDEST PUSH2 0x224 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x422 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x224 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x38C CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x5E4 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x761 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x769 JUMP JUMPDEST PUSH2 0x240 PUSH1 0xF SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x15EE JUMP JUMPDEST PUSH2 0x7B6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH2 0x821 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x86B JUMP JUMPDEST PUSH2 0x224 PUSH2 0x874 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x888 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x409 CALLDATASIZE PUSH1 0x4 PUSH2 0x16EF JUMP JUMPDEST PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x422 PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x484 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x422 SWAP2 SWAP1 PUSH2 0x16D0 JUMP JUMPDEST PUSH2 0x4BD PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4FE PUSH2 0xB0B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x52A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x538 PUSH2 0xB48 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x550 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x580 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE JUMP JUMPDEST PUSH2 0x59A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE PUSH2 0xBA2 JUMP JUMPDEST PUSH2 0x5DA PUSH2 0xB48 JUMP JUMPDEST PUSH2 0x4FE PUSH1 0x0 PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP6 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x65D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD DUP10 SWAP1 MSTORE SWAP1 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x6EE DUP3 DUP3 PUSH2 0xC1C JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP2 MLOAD DUP5 DUP2 MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xD3D5B0141A5D81AC8C98139F284F1B25FB3061BC81857F74DE9A702E38291634 SWAP1 PUSH1 0xC0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x505 JUMP JUMPDEST PUSH2 0x77E PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE PUSH2 0xC84 JUMP JUMPDEST PUSH2 0x7BE PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x7E9 JUMPI PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x814 JUMPI PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0xF SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x10 SSTORE POP POP JUMP JUMPDEST PUSH2 0x836 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x866 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x505 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x422 PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x890 PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x8F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH2 0x538 DUP2 PUSH2 0xBCC JUMP JUMPDEST PUSH2 0x90F PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x96F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4F52412D3030313A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x0 PUSH2 0x985 PUSH1 0xF SLOAD ADDRESS PUSH4 0x97E873E9 PUSH1 0xE0 SHL PUSH2 0xCAE JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP1 PUSH2 0x997 DUP6 DUP8 ADD DUP8 PUSH2 0x166B JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x9D3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x1C1C9BDA9958DD1259 PUSH1 0xBA SHL DUP2 MSTORE POP PUSH2 0x9CB DUP6 PUSH2 0xCD5 JUMP JUMPDEST DUP7 SWAP2 SWAP1 PUSH2 0xD8D JUMP JUMPDEST PUSH2 0x9FD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x1D585A5259 PUSH1 0xDA SHL DUP2 MSTORE POP PUSH2 0x9CB DUP5 PUSH2 0xCD5 JUMP JUMPDEST PUSH2 0xA28 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x18DC9BDC1259 PUSH1 0xD2 SHL DUP2 MSTORE POP PUSH2 0x9CB DUP4 PUSH2 0xCD5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA36 DUP6 PUSH1 0x10 SLOAD PUSH2 0xDB0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP12 SWAP1 SSTORE DUP2 MLOAD DUP12 DUP2 MSTORE SWAP1 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x9EE0CE04D9140F363CD342B605F7AAAE55E9C0D84A975C417E55CE074B49332 SWAP2 ADD PUSH2 0x74F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xACB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xADF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB03 SWAP2 SWAP1 PUSH2 0x15D2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x33A6EC8D94D03F2C0A2DA3411552B0777613E4220ABD6CE5679DECB30AF09B23 PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x4FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH32 0xDB7E2F5405EA10CAD5583CE31A1BDE125FF32946EDB3CE5972D70EA3F2C214E6 PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7204A9A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE409534A SWAP1 PUSH2 0xC4E SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x18C1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC7C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x1855FCCE92CB172C06FD991F1B19774237130B37CF6806BC01AA4E3A0C359E2D PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCB6 PUSH2 0x157B JUMP JUMPDEST PUSH2 0xCBE PUSH2 0x157B JUMP JUMPDEST PUSH2 0xCCA DUP2 DUP7 DUP7 DUP7 PUSH2 0xDD3 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCF4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH2 0xD11 DUP4 PUSH2 0xE19 JUMP JUMPDEST DUP1 DUP3 MSTORE PUSH1 0x0 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD3D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD67 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD85 DUP2 DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x0 ADD MLOAD PUSH2 0xF03 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xD9C SWAP1 DUP4 PUSH2 0xF7D JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xDAB SWAP1 DUP3 PUSH2 0xF7D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 PUSH2 0xDCA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0xF94 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDDB PUSH2 0x157B JUMP JUMPDEST PUSH2 0xDEB DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x1027 JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xE2B JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0xB06 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH2 0xE60 JUMPI PUSH2 0xE4D PUSH1 0x10 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xE5D PUSH1 0x1 PUSH1 0x80 SHL DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH2 0xE92 JUMPI PUSH2 0xE7A PUSH1 0x8 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xE8F PUSH9 0x10000000000000000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH4 0xFFFFFFFF DUP4 AND PUSH2 0xEBC JUMPI PUSH2 0xEA8 PUSH1 0x4 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xEB9 PUSH5 0x100000000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH2 0xEE2 JUMPI PUSH2 0xED0 PUSH1 0x2 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xEDF PUSH3 0x10000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH1 0xFF DUP4 AND PUSH2 0xEF8 JUMPI PUSH2 0xEF5 PUSH1 0x1 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0xCCE DUP2 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH1 0x20 DUP2 LT PUSH2 0xF3B JUMPI DUP2 MLOAD DUP4 MSTORE PUSH2 0xF1A PUSH1 0x20 DUP5 PUSH2 0x18DA JUMP JUMPDEST SWAP3 POP PUSH2 0xF27 PUSH1 0x20 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP PUSH2 0xF34 PUSH1 0x20 DUP3 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP PUSH2 0xF03 JUMP JUMPDEST PUSH1 0x0 NOT DUP2 ISZERO PUSH2 0xF6A JUMPI PUSH1 0x1 PUSH2 0xF51 DUP4 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH2 0xF5D SWAP1 PUSH2 0x100 PUSH2 0x194C JUMP JUMPDEST PUSH2 0xF67 SWAP2 SWAP1 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 MLOAD DUP4 MLOAD DUP4 AND SWAP3 NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 MSTORE POP JUMP JUMPDEST PUSH2 0xF8A DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x108C JUMP JUMPDEST PUSH2 0xDAB DUP3 DUP3 PUSH2 0x11A7 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x0 SWAP1 PUSH2 0xFA5 DUP2 PUSH1 0x1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0xC SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0xFDD SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x17B1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0x101D DUP7 DUP4 DUP7 DUP5 PUSH2 0x11CE JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x1047 PUSH1 0x20 DUP4 PUSH2 0x1A50 JUMP JUMPDEST ISZERO PUSH2 0x106F JUMPI PUSH2 0x1057 PUSH1 0x20 DUP4 PUSH2 0x1A50 JUMP JUMPDEST PUSH2 0x1062 SWAP1 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH2 0x106C SWAP1 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x10B7 JUMPI PUSH2 0x10B1 DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0xDAB JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x10F5 JUMPI PUSH2 0x10DE DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x1134 JUMPI PUSH2 0x111D DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0x1360 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x1175 JUMPI PUSH2 0x115E DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x118A DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x11A1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0x1360 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xDCA DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0x1386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0x1291 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1819 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12E3 SWAP2 SWAP1 PUSH2 0x1633 JUMP JUMPDEST PUSH2 0xE11 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xDCA DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x1470 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xE11 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x14CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0x13A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x13B8 DUP4 DUP7 PUSH2 0x18DA JUMP JUMPDEST GT ISZERO PUSH2 0x13EB JUMPI PUSH2 0x13EB DUP6 PUSH2 0x13DB DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0x13D6 SWAP2 SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH2 0x154D JUMP JUMPDEST PUSH2 0x13E6 SWAP1 PUSH1 0x2 PUSH2 0x1A1A JUMP JUMPDEST PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0x140A JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0x144A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0x1429 PUSH1 0x20 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1436 PUSH1 0x20 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0x1443 PUSH1 0x20 DUP6 PUSH2 0x1A39 JUMP JUMPDEST SWAP4 POP PUSH2 0x1412 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x14A5 JUMPI PUSH2 0x14A5 DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0x13E6 SWAP2 SWAP1 PUSH2 0x1A1A JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 EQ ISZERO PUSH2 0x14C2 JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x14F0 DUP6 DUP5 PUSH2 0x18DA JUMP JUMPDEST GT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1504 DUP6 PUSH2 0x13DB DUP7 DUP6 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1514 DUP5 PUSH2 0x100 PUSH2 0x194C JUMP JUMPDEST PUSH2 0x151E SWAP2 SWAP1 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0x1542 JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x155E JUMPI POP DUP2 PUSH2 0xDCD JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x1570 DUP4 DUP4 PUSH2 0x1027 JUMP JUMPDEST POP PUSH2 0x11A1 DUP4 DUP3 PUSH2 0x11A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15C7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCCE DUP2 PUSH2 0x1AA6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15E3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCCE DUP2 PUSH2 0x1AA6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1603 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x160E DUP2 PUSH2 0x1AA6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x161E DUP2 PUSH2 0x1AA6 JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1644 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xCCE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1664 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x167F JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x16AD JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP4 CALLDATALOAD SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16E1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0xCCE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1703 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1721 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1734 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1742 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1753 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x178B JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x176F JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x179C JUMPI DUP3 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x180A DUP4 DUP3 ADD DUP6 PUSH2 0x1766 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1840 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xDCA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x1870 JUMPI PUSH2 0x1870 PUSH2 0x1A90 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x1870 JUMPI PUSH2 0x1870 PUSH2 0x1A90 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP3 MSTORE PUSH1 0x40 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xE11 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x18ED JUMPI PUSH2 0x18ED PUSH2 0x1A64 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1901 JUMPI PUSH2 0x1901 PUSH2 0x1A7A JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP1 DUP7 GT PUSH2 0x1918 JUMPI POP PUSH2 0x1943 JUMP JUMPDEST DUP2 DUP8 DIV DUP3 GT ISZERO PUSH2 0x192A JUMPI PUSH2 0x192A PUSH2 0x1A64 JUMP JUMPDEST DUP1 DUP7 AND ISZERO PUSH2 0x1937 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP5 SWAP1 SWAP5 SHR SWAP4 DUP1 MUL PUSH2 0x1909 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDCA PUSH1 0x0 NOT DUP5 DUP5 PUSH1 0x0 DUP3 PUSH2 0x1965 JUMPI POP PUSH1 0x1 PUSH2 0xCCE JUMP JUMPDEST DUP2 PUSH2 0x1972 JUMPI POP PUSH1 0x0 PUSH2 0xCCE JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1988 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1992 JUMPI PUSH2 0x19BF JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0xCCE JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x19A3 JUMPI PUSH2 0x19A3 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x1 DUP5 SHL SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x19B9 JUMPI PUSH2 0x19B9 PUSH2 0x1A64 JUMP JUMPDEST POP PUSH2 0xCCE JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x19F2 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x19ED JUMPI PUSH2 0x19ED PUSH2 0x1A64 JUMP JUMPDEST PUSH2 0xCCE JUMP JUMPDEST PUSH2 0x19FF DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x1906 JUMP JUMPDEST DUP1 DUP7 DIV DUP3 GT ISZERO PUSH2 0x1A11 JUMPI PUSH2 0x1A11 PUSH2 0x1A64 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1A34 JUMPI PUSH2 0x1A34 PUSH2 0x1A64 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1A4B JUMPI PUSH2 0x1A4B PUSH2 0x1A64 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A5F JUMPI PUSH2 0x1A5F PUSH2 0x1A7A JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x538 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0xE1 CALLVALUE GASPRICE 0xE3 0xCF GASLIMIT 0xCC SWAP9 PUSH20 0x15EA3DF5115358453BEC437A4D8D956C9C7AC8DC BALANCE 0xC0 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"208:3907:66:-:0;;;1291:1:1;1258:34;;769:368:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;971:5;978:9;971:5;580:20:17;978:9:66;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;2211:2:103;1619:70:12::1;::::0;::::1;2193:21:103::0;2250:2;2230:18;;;2223:30;2289:34;2269:18;;;2262:62;-1:-1:-1;;;2340:18:103;;;2333:33;2383:19;;1619:70:12::1;;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;1466:657:::0;;;660:36:17::1;-1:-1:-1::0;;;660:19:17::1;;;:36;;:::i;:::-;628:14;:69:::0;;-1:-1:-1;;;;;;628:69:17::1;-1:-1:-1::0;;;;;628:69:17;;;::::1;::::0;;;::::1;::::0;;713:31:::1;::::0;738:4:::1;1144:51:103::0;;713:31:17::1;::::0;1132:2:103;1117:18;713:31:17::1;;;;;;;-1:-1:-1::0;1003:127:66::1;::::0;-1:-1:-1;1037:15:66;1067:18;1100:6;1121:8;1003:20:::1;:127::i;:::-;769:368:::0;;;;;;208:3907;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1352:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1325:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;;4875:145;;;;:::o;1143:436:66:-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;;;1352:29:66;::::1;::::0;1348:74:::1;;8688:6:1::0;:40;;-1:-1:-1;;;;;;8688:40:1;-1:-1:-1;;;;;8688:40:1;;;;;1385:34:66::1;-1:-1:-1::0;;;;;1435:32:66;::::1;::::0;1431:81:::1;;8457:8:1::0;:43;;-1:-1:-1;;;;;;8457:43:1;-1:-1:-1;;;;;8457:43:1;;;;;1471:38:66::1;1530:5;:14:::0;;;;1554:7:::1;:18:::0;-1:-1:-1;;1143:436:66:o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;2615:2:103;1414:68:41;;;2597:21:103;;;2634:18;;;2627:30;2693:34;2673:18;;;2666:62;2745:18;;1414:68:41;2587:182:103;1414:68:41;1359:130::o;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;196:218;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:574::-;;;;;;;627:3;615:9;606:7;602:23;598:33;595:2;;;649:6;641;634:22;595:2;683:9;677:16;667:26;;712:49;757:2;746:9;742:18;712:49;:::i;:::-;702:59;;780:49;825:2;814:9;810:18;780:49;:::i;:::-;770:59;;848:49;893:2;882:9;878:18;848:49;:::i;:::-;838:59;;937:3;926:9;922:19;916:26;906:36;;982:3;971:9;967:19;961:26;951:36;;585:408;;;;;;;;:::o;1388:616::-;1635:25;;;1622:3;1607:19;;1690:1;1679:13;;1669:2;;1735:10;1730:3;1726:20;1723:1;1716:31;1770:4;1767:1;1760:15;1798:4;1795:1;1788:15;1669:2;1844;1829:18;;1822:34;;;;-1:-1:-1;;;;;1930:15:103;;;1925:2;1910:18;;1903:43;1982:15;;1977:2;1962:18;;;1955:43;1589:415;;-1:-1:-1;1589:415:103:o;2587:182::-;208:3907:66;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:14310:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"663:414:103","statements":[{"body":{"nodeType":"YulBlock","src":"710:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"719:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"727:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"712:6:103"},"nodeType":"YulFunctionCall","src":"712:22:103"},"nodeType":"YulExpressionStatement","src":"712:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"684:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"693:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"680:3:103"},"nodeType":"YulFunctionCall","src":"680:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"705:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"676:3:103"},"nodeType":"YulFunctionCall","src":"676:33:103"},"nodeType":"YulIf","src":"673:2:103"},{"nodeType":"YulVariableDeclaration","src":"745:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"771:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"758:12:103"},"nodeType":"YulFunctionCall","src":"758:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"749:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"815:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"790:24:103"},"nodeType":"YulFunctionCall","src":"790:31:103"},"nodeType":"YulExpressionStatement","src":"790:31:103"},{"nodeType":"YulAssignment","src":"830:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"840:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"830:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"854:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"886:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"897:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"882:3:103"},"nodeType":"YulFunctionCall","src":"882:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"869:12:103"},"nodeType":"YulFunctionCall","src":"869:32:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"858:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"935:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"910:24:103"},"nodeType":"YulFunctionCall","src":"910:33:103"},"nodeType":"YulExpressionStatement","src":"910:33:103"},{"nodeType":"YulAssignment","src":"952:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"962:7:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"952:6:103"}]},{"nodeType":"YulAssignment","src":"978:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1005:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1016:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1001:3:103"},"nodeType":"YulFunctionCall","src":"1001:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"988:12:103"},"nodeType":"YulFunctionCall","src":"988:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"978:6:103"}]},{"nodeType":"YulAssignment","src":"1029:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1056:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1067:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1052:3:103"},"nodeType":"YulFunctionCall","src":"1052:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1039:12:103"},"nodeType":"YulFunctionCall","src":"1039:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1029:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"605:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"616:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"628:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"636:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"644:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"652:6:103","type":""}],"src":"542:535:103"},{"body":{"nodeType":"YulBlock","src":"1160:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1206:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1215:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1223:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1208:6:103"},"nodeType":"YulFunctionCall","src":"1208:22:103"},"nodeType":"YulExpressionStatement","src":"1208:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1181:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1190:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1177:3:103"},"nodeType":"YulFunctionCall","src":"1177:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1202:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1173:3:103"},"nodeType":"YulFunctionCall","src":"1173:32:103"},"nodeType":"YulIf","src":"1170:2:103"},{"nodeType":"YulVariableDeclaration","src":"1241:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1260:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1254:5:103"},"nodeType":"YulFunctionCall","src":"1254:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1245:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1325:6:103"},"nodeType":"YulFunctionCall","src":"1325:22:103"},"nodeType":"YulExpressionStatement","src":"1325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1292:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1313:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1306:6:103"},"nodeType":"YulFunctionCall","src":"1306:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1299:6:103"},"nodeType":"YulFunctionCall","src":"1299:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1289:2:103"},"nodeType":"YulFunctionCall","src":"1289:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1282:6:103"},"nodeType":"YulFunctionCall","src":"1282:40:103"},"nodeType":"YulIf","src":"1279:2:103"},{"nodeType":"YulAssignment","src":"1358:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1368:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1358:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1126:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1137:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1149:6:103","type":""}],"src":"1082:297:103"},{"body":{"nodeType":"YulBlock","src":"1454:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1500:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1509:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1517:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1502:6:103"},"nodeType":"YulFunctionCall","src":"1502:22:103"},"nodeType":"YulExpressionStatement","src":"1502:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1475:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1484:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1471:3:103"},"nodeType":"YulFunctionCall","src":"1471:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1496:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1467:3:103"},"nodeType":"YulFunctionCall","src":"1467:32:103"},"nodeType":"YulIf","src":"1464:2:103"},{"nodeType":"YulAssignment","src":"1535:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1558:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1545:12:103"},"nodeType":"YulFunctionCall","src":"1545:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1535:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1420:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1431:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1443:6:103","type":""}],"src":"1384:190:103"},{"body":{"nodeType":"YulBlock","src":"1683:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"1729:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1738:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1746:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1731:6:103"},"nodeType":"YulFunctionCall","src":"1731:22:103"},"nodeType":"YulExpressionStatement","src":"1731:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1704:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1713:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1700:3:103"},"nodeType":"YulFunctionCall","src":"1700:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1725:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1696:3:103"},"nodeType":"YulFunctionCall","src":"1696:32:103"},"nodeType":"YulIf","src":"1693:2:103"},{"nodeType":"YulAssignment","src":"1764:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1787:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1774:12:103"},"nodeType":"YulFunctionCall","src":"1774:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1764:6:103"}]},{"nodeType":"YulAssignment","src":"1806:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1829:3:103"},"nodeType":"YulFunctionCall","src":"1829:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1816:12:103"},"nodeType":"YulFunctionCall","src":"1816:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1806:6:103"}]},{"nodeType":"YulAssignment","src":"1857:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1884:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1895:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1880:3:103"},"nodeType":"YulFunctionCall","src":"1880:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1867:12:103"},"nodeType":"YulFunctionCall","src":"1867:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1857:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1633:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1644:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1656:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1664:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1672:6:103","type":""}],"src":"1579:326:103"},{"body":{"nodeType":"YulBlock","src":"2048:326:103","statements":[{"body":{"nodeType":"YulBlock","src":"2095:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2104:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"2112:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2097:6:103"},"nodeType":"YulFunctionCall","src":"2097:22:103"},"nodeType":"YulExpressionStatement","src":"2097:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2069:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2078:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2065:3:103"},"nodeType":"YulFunctionCall","src":"2065:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2090:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2061:3:103"},"nodeType":"YulFunctionCall","src":"2061:33:103"},"nodeType":"YulIf","src":"2058:2:103"},{"nodeType":"YulAssignment","src":"2130:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2153:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2140:12:103"},"nodeType":"YulFunctionCall","src":"2140:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2130:6:103"}]},{"nodeType":"YulAssignment","src":"2172:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2199:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2210:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2195:3:103"},"nodeType":"YulFunctionCall","src":"2195:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2182:12:103"},"nodeType":"YulFunctionCall","src":"2182:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2172:6:103"}]},{"nodeType":"YulAssignment","src":"2223:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2261:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2246:3:103"},"nodeType":"YulFunctionCall","src":"2246:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2233:12:103"},"nodeType":"YulFunctionCall","src":"2233:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2223:6:103"}]},{"nodeType":"YulAssignment","src":"2274:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2301:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2312:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2297:3:103"},"nodeType":"YulFunctionCall","src":"2297:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2284:12:103"},"nodeType":"YulFunctionCall","src":"2284:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2274:6:103"}]},{"nodeType":"YulAssignment","src":"2325:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2363:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2348:3:103"},"nodeType":"YulFunctionCall","src":"2348:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2335:12:103"},"nodeType":"YulFunctionCall","src":"2335:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2325:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1982:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1993:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2005:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2013:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2021:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2029:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2037:6:103","type":""}],"src":"1910:464:103"},{"body":{"nodeType":"YulBlock","src":"2479:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"2525:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2534:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2542:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2527:6:103"},"nodeType":"YulFunctionCall","src":"2527:22:103"},"nodeType":"YulExpressionStatement","src":"2527:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2500:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2509:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2496:3:103"},"nodeType":"YulFunctionCall","src":"2496:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2521:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2492:3:103"},"nodeType":"YulFunctionCall","src":"2492:32:103"},"nodeType":"YulIf","src":"2489:2:103"},{"nodeType":"YulVariableDeclaration","src":"2560:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2579:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2573:5:103"},"nodeType":"YulFunctionCall","src":"2573:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2564:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2622:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2631:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2639:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2624:6:103"},"nodeType":"YulFunctionCall","src":"2624:22:103"},"nodeType":"YulExpressionStatement","src":"2624:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2611:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2618:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2608:2:103"},"nodeType":"YulFunctionCall","src":"2608:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2601:6:103"},"nodeType":"YulFunctionCall","src":"2601:20:103"},"nodeType":"YulIf","src":"2598:2:103"},{"nodeType":"YulAssignment","src":"2657:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2667:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2657:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2445:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2456:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2468:6:103","type":""}],"src":"2379:299:103"},{"body":{"nodeType":"YulBlock","src":"2753:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2799:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2808:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2816:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2801:6:103"},"nodeType":"YulFunctionCall","src":"2801:22:103"},"nodeType":"YulExpressionStatement","src":"2801:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2774:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2783:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2770:3:103"},"nodeType":"YulFunctionCall","src":"2770:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2795:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2766:3:103"},"nodeType":"YulFunctionCall","src":"2766:32:103"},"nodeType":"YulIf","src":"2763:2:103"},{"nodeType":"YulAssignment","src":"2834:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2857:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2844:12:103"},"nodeType":"YulFunctionCall","src":"2844:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2834:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2719:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2730:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2742:6:103","type":""}],"src":"2683:190:103"},{"body":{"nodeType":"YulBlock","src":"2984:603:103","statements":[{"body":{"nodeType":"YulBlock","src":"3030:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3039:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3047:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3032:6:103"},"nodeType":"YulFunctionCall","src":"3032:22:103"},"nodeType":"YulExpressionStatement","src":"3032:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3005:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3014:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3001:3:103"},"nodeType":"YulFunctionCall","src":"3001:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3026:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2997:3:103"},"nodeType":"YulFunctionCall","src":"2997:32:103"},"nodeType":"YulIf","src":"2994:2:103"},{"nodeType":"YulAssignment","src":"3065:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3088:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3075:12:103"},"nodeType":"YulFunctionCall","src":"3075:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3065:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3107:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3138:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3149:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3134:3:103"},"nodeType":"YulFunctionCall","src":"3134:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3121:12:103"},"nodeType":"YulFunctionCall","src":"3121:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3111:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3162:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3172:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3166:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3217:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3226:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3234:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3219:6:103"},"nodeType":"YulFunctionCall","src":"3219:22:103"},"nodeType":"YulExpressionStatement","src":"3219:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3205:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3213:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3202:2:103"},"nodeType":"YulFunctionCall","src":"3202:14:103"},"nodeType":"YulIf","src":"3199:2:103"},{"nodeType":"YulVariableDeclaration","src":"3252:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3266:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3277:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3262:3:103"},"nodeType":"YulFunctionCall","src":"3262:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3256:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3332:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3341:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3349:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3334:6:103"},"nodeType":"YulFunctionCall","src":"3334:22:103"},"nodeType":"YulExpressionStatement","src":"3334:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3311:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3315:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3307:3:103"},"nodeType":"YulFunctionCall","src":"3307:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3322:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3303:3:103"},"nodeType":"YulFunctionCall","src":"3303:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3296:6:103"},"nodeType":"YulFunctionCall","src":"3296:35:103"},"nodeType":"YulIf","src":"3293:2:103"},{"nodeType":"YulVariableDeclaration","src":"3367:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3394:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3381:12:103"},"nodeType":"YulFunctionCall","src":"3381:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3371:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3424:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3433:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3441:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3426:6:103"},"nodeType":"YulFunctionCall","src":"3426:22:103"},"nodeType":"YulExpressionStatement","src":"3426:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3412:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3420:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3409:2:103"},"nodeType":"YulFunctionCall","src":"3409:14:103"},"nodeType":"YulIf","src":"3406:2:103"},{"body":{"nodeType":"YulBlock","src":"3500:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3509:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3517:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3502:6:103"},"nodeType":"YulFunctionCall","src":"3502:22:103"},"nodeType":"YulExpressionStatement","src":"3502:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3473:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"3477:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3469:3:103"},"nodeType":"YulFunctionCall","src":"3469:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3465:3:103"},"nodeType":"YulFunctionCall","src":"3465:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3491:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3462:2:103"},"nodeType":"YulFunctionCall","src":"3462:37:103"},"nodeType":"YulIf","src":"3459:2:103"},{"nodeType":"YulAssignment","src":"3535:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3549:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3553:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3545:3:103"},"nodeType":"YulFunctionCall","src":"3545:11:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3535:6:103"}]},{"nodeType":"YulAssignment","src":"3565:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"3575:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3565:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2934:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2945:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2957:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2965:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2973:6:103","type":""}],"src":"2878:709:103"},{"body":{"nodeType":"YulBlock","src":"3641:426:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3651:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3671:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3665:5:103"},"nodeType":"YulFunctionCall","src":"3665:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3655:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3693:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3698:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3686:6:103"},"nodeType":"YulFunctionCall","src":"3686:19:103"},"nodeType":"YulExpressionStatement","src":"3686:19:103"},{"nodeType":"YulVariableDeclaration","src":"3714:12:103","value":{"name":"end","nodeType":"YulIdentifier","src":"3723:3:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3718:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3787:110:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3801:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3811:4:103","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3805:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3843:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3848:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3839:3:103"},"nodeType":"YulFunctionCall","src":"3839:11:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3852:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3835:3:103"},"nodeType":"YulFunctionCall","src":"3835:20:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3871:5:103"},{"name":"i","nodeType":"YulIdentifier","src":"3878:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3867:3:103"},"nodeType":"YulFunctionCall","src":"3867:13:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3882:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3863:3:103"},"nodeType":"YulFunctionCall","src":"3863:22:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3857:5:103"},"nodeType":"YulFunctionCall","src":"3857:29:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3828:6:103"},"nodeType":"YulFunctionCall","src":"3828:59:103"},"nodeType":"YulExpressionStatement","src":"3828:59:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3746:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3749:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3743:2:103"},"nodeType":"YulFunctionCall","src":"3743:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3757:21:103","statements":[{"nodeType":"YulAssignment","src":"3759:17:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3768:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"3771:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3764:3:103"},"nodeType":"YulFunctionCall","src":"3764:12:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3759:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"3739:3:103","statements":[]},"src":"3735:162:103"},{"body":{"nodeType":"YulBlock","src":"3931:64:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3960:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3965:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3956:3:103"},"nodeType":"YulFunctionCall","src":"3956:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3974:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3952:3:103"},"nodeType":"YulFunctionCall","src":"3952:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"3981:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3945:6:103"},"nodeType":"YulFunctionCall","src":"3945:40:103"},"nodeType":"YulExpressionStatement","src":"3945:40:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3912:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3915:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3909:2:103"},"nodeType":"YulFunctionCall","src":"3909:13:103"},"nodeType":"YulIf","src":"3906:2:103"},{"nodeType":"YulAssignment","src":"4004:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4019:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4032:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4040:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4049:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4045:3:103"},"nodeType":"YulFunctionCall","src":"4045:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4024:3:103"},"nodeType":"YulFunctionCall","src":"4024:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4015:3:103"},"nodeType":"YulFunctionCall","src":"4015:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"4056:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4011:3:103"},"nodeType":"YulFunctionCall","src":"4011:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4004:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3618:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3625:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3633:3:103","type":""}],"src":"3592:475:103"},{"body":{"nodeType":"YulBlock","src":"4242:147:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4259:3:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4272:2:103","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"4276:6:103"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4268:3:103"},"nodeType":"YulFunctionCall","src":"4268:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4289:26:103","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4285:3:103"},"nodeType":"YulFunctionCall","src":"4285:31:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4264:3:103"},"nodeType":"YulFunctionCall","src":"4264:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4252:6:103"},"nodeType":"YulFunctionCall","src":"4252:66:103"},"nodeType":"YulExpressionStatement","src":"4252:66:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4338:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4343:2:103","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4334:3:103"},"nodeType":"YulFunctionCall","src":"4334:12:103"},{"name":"value1","nodeType":"YulIdentifier","src":"4348:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4327:6:103"},"nodeType":"YulFunctionCall","src":"4327:28:103"},"nodeType":"YulExpressionStatement","src":"4327:28:103"},{"nodeType":"YulAssignment","src":"4364:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4375:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4380:2:103","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4371:3:103"},"nodeType":"YulFunctionCall","src":"4371:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4364:3:103"}]}]},"name":"abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4210:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4215:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4223:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4234:3:103","type":""}],"src":"4072:317:103"},{"body":{"nodeType":"YulBlock","src":"4495:102:103","statements":[{"nodeType":"YulAssignment","src":"4505:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4528:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4513:3:103"},"nodeType":"YulFunctionCall","src":"4513:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4505:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4547:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4562:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4578:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4583:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4574:3:103"},"nodeType":"YulFunctionCall","src":"4574:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4587:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4570:3:103"},"nodeType":"YulFunctionCall","src":"4570:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4558:3:103"},"nodeType":"YulFunctionCall","src":"4558:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4540:6:103"},"nodeType":"YulFunctionCall","src":"4540:51:103"},"nodeType":"YulExpressionStatement","src":"4540:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4464:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4475:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4486:4:103","type":""}],"src":"4394:203:103"},{"body":{"nodeType":"YulBlock","src":"4915:508:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4925:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4935:3:103","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4929:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4947:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4965:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4970:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4961:3:103"},"nodeType":"YulFunctionCall","src":"4961:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4974:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4957:3:103"},"nodeType":"YulFunctionCall","src":"4957:19:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4951:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5007:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5015:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5003:3:103"},"nodeType":"YulFunctionCall","src":"5003:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4985:6:103"},"nodeType":"YulFunctionCall","src":"4985:34:103"},"nodeType":"YulExpressionStatement","src":"4985:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5039:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5050:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5035:3:103"},"nodeType":"YulFunctionCall","src":"5035:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5055:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5028:6:103"},"nodeType":"YulFunctionCall","src":"5028:34:103"},"nodeType":"YulExpressionStatement","src":"5028:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5082:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5093:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5078:3:103"},"nodeType":"YulFunctionCall","src":"5078:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5098:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5071:6:103"},"nodeType":"YulFunctionCall","src":"5071:34:103"},"nodeType":"YulExpressionStatement","src":"5071:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5125:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5136:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5121:3:103"},"nodeType":"YulFunctionCall","src":"5121:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5145:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5153:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5141:3:103"},"nodeType":"YulFunctionCall","src":"5141:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5114:6:103"},"nodeType":"YulFunctionCall","src":"5114:43:103"},"nodeType":"YulExpressionStatement","src":"5114:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5177:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5188:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5173:3:103"},"nodeType":"YulFunctionCall","src":"5173:19:103"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"5198:6:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5210:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5215:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5206:3:103"},"nodeType":"YulFunctionCall","src":"5206:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5194:3:103"},"nodeType":"YulFunctionCall","src":"5194:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5166:6:103"},"nodeType":"YulFunctionCall","src":"5166:62:103"},"nodeType":"YulExpressionStatement","src":"5166:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5259:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5244:3:103"},"nodeType":"YulFunctionCall","src":"5244:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"5265:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5237:6:103"},"nodeType":"YulFunctionCall","src":"5237:35:103"},"nodeType":"YulExpressionStatement","src":"5237:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5303:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5288:3:103"},"nodeType":"YulFunctionCall","src":"5288:19:103"},{"name":"value6","nodeType":"YulIdentifier","src":"5309:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5281:6:103"},"nodeType":"YulFunctionCall","src":"5281:35:103"},"nodeType":"YulExpressionStatement","src":"5281:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5336:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5347:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5332:3:103"},"nodeType":"YulFunctionCall","src":"5332:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5353:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5325:6:103"},"nodeType":"YulFunctionCall","src":"5325:31:103"},"nodeType":"YulExpressionStatement","src":"5325:31:103"},{"nodeType":"YulAssignment","src":"5365:52:103","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"5390:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5402:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5413:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5398:3:103"},"nodeType":"YulFunctionCall","src":"5398:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5373:16:103"},"nodeType":"YulFunctionCall","src":"5373:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5365:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4828:9:103","type":""},{"name":"value7","nodeType":"YulTypedName","src":"4839:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"4847:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"4855:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4863:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4871:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4879:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4887:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4895:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4906:4:103","type":""}],"src":"4602:821:103"},{"body":{"nodeType":"YulBlock","src":"5603:210:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5620:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5635:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5651:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5656:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5647:3:103"},"nodeType":"YulFunctionCall","src":"5647:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5660:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5643:3:103"},"nodeType":"YulFunctionCall","src":"5643:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5631:3:103"},"nodeType":"YulFunctionCall","src":"5631:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5613:6:103"},"nodeType":"YulFunctionCall","src":"5613:51:103"},"nodeType":"YulExpressionStatement","src":"5613:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5684:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5695:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5680:3:103"},"nodeType":"YulFunctionCall","src":"5680:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5700:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5673:6:103"},"nodeType":"YulFunctionCall","src":"5673:34:103"},"nodeType":"YulExpressionStatement","src":"5673:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5723:3:103"},"nodeType":"YulFunctionCall","src":"5723:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5743:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5716:6:103"},"nodeType":"YulFunctionCall","src":"5716:30:103"},"nodeType":"YulExpressionStatement","src":"5716:30:103"},{"nodeType":"YulAssignment","src":"5755:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5780:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5803:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5788:3:103"},"nodeType":"YulFunctionCall","src":"5788:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5763:16:103"},"nodeType":"YulFunctionCall","src":"5763:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5755:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5556:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5567:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5575:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5583:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5594:4:103","type":""}],"src":"5428:385:103"},{"body":{"nodeType":"YulBlock","src":"5913:92:103","statements":[{"nodeType":"YulAssignment","src":"5923:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5935:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5946:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5931:3:103"},"nodeType":"YulFunctionCall","src":"5931:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5923:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5965:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5990:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5983:6:103"},"nodeType":"YulFunctionCall","src":"5983:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5976:6:103"},"nodeType":"YulFunctionCall","src":"5976:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5958:6:103"},"nodeType":"YulFunctionCall","src":"5958:41:103"},"nodeType":"YulExpressionStatement","src":"5958:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5882:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5893:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5904:4:103","type":""}],"src":"5818:187:103"},{"body":{"nodeType":"YulBlock","src":"6111:76:103","statements":[{"nodeType":"YulAssignment","src":"6121:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6144:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6129:3:103"},"nodeType":"YulFunctionCall","src":"6129:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6121:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6163:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6174:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6156:6:103"},"nodeType":"YulFunctionCall","src":"6156:25:103"},"nodeType":"YulExpressionStatement","src":"6156:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6080:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6091:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6102:4:103","type":""}],"src":"6010:177:103"},{"body":{"nodeType":"YulBlock","src":"6405:250:103","statements":[{"nodeType":"YulAssignment","src":"6415:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6427:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6438:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6423:3:103"},"nodeType":"YulFunctionCall","src":"6423:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6415:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6458:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6469:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6451:6:103"},"nodeType":"YulFunctionCall","src":"6451:25:103"},"nodeType":"YulExpressionStatement","src":"6451:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6507:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6492:3:103"},"nodeType":"YulFunctionCall","src":"6492:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6512:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6485:6:103"},"nodeType":"YulFunctionCall","src":"6485:34:103"},"nodeType":"YulExpressionStatement","src":"6485:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6539:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6550:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6535:3:103"},"nodeType":"YulFunctionCall","src":"6535:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6555:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6528:6:103"},"nodeType":"YulFunctionCall","src":"6528:34:103"},"nodeType":"YulExpressionStatement","src":"6528:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6582:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6593:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6578:3:103"},"nodeType":"YulFunctionCall","src":"6578:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"6598:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6571:6:103"},"nodeType":"YulFunctionCall","src":"6571:34:103"},"nodeType":"YulExpressionStatement","src":"6571:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6625:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6636:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6621:3:103"},"nodeType":"YulFunctionCall","src":"6621:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6642:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6614:6:103"},"nodeType":"YulFunctionCall","src":"6614:35:103"},"nodeType":"YulExpressionStatement","src":"6614:35:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6342:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6353:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6361:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6369:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6377:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6385:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6396:4:103","type":""}],"src":"6192:463:103"},{"body":{"nodeType":"YulBlock","src":"6845:206:103","statements":[{"nodeType":"YulAssignment","src":"6855:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6867:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6878:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6863:3:103"},"nodeType":"YulFunctionCall","src":"6863:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6855:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6898:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6909:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6891:6:103"},"nodeType":"YulFunctionCall","src":"6891:25:103"},"nodeType":"YulExpressionStatement","src":"6891:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6936:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6947:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6932:3:103"},"nodeType":"YulFunctionCall","src":"6932:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6952:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6925:6:103"},"nodeType":"YulFunctionCall","src":"6925:34:103"},"nodeType":"YulExpressionStatement","src":"6925:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6979:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6990:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6975:3:103"},"nodeType":"YulFunctionCall","src":"6975:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6995:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6968:6:103"},"nodeType":"YulFunctionCall","src":"6968:34:103"},"nodeType":"YulExpressionStatement","src":"6968:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7022:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7033:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7018:3:103"},"nodeType":"YulFunctionCall","src":"7018:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"7038:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7011:6:103"},"nodeType":"YulFunctionCall","src":"7011:34:103"},"nodeType":"YulExpressionStatement","src":"7011:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6790:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6801:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6809:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6817:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6825:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6836:4:103","type":""}],"src":"6660:391:103"},{"body":{"nodeType":"YulBlock","src":"7175:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7203:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7185:6:103"},"nodeType":"YulFunctionCall","src":"7185:21:103"},"nodeType":"YulExpressionStatement","src":"7185:21:103"},{"nodeType":"YulAssignment","src":"7215:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7240:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7252:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7263:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7248:3:103"},"nodeType":"YulFunctionCall","src":"7248:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7223:16:103"},"nodeType":"YulFunctionCall","src":"7223:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7215:4:103"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7144:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7155:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7166:4:103","type":""}],"src":"7056:217:103"},{"body":{"nodeType":"YulBlock","src":"7397:102:103","statements":[{"nodeType":"YulAssignment","src":"7407:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7419:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7430:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7415:3:103"},"nodeType":"YulFunctionCall","src":"7415:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7407:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7449:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7464:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7480:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7485:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7476:3:103"},"nodeType":"YulFunctionCall","src":"7476:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7489:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7472:3:103"},"nodeType":"YulFunctionCall","src":"7472:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7460:3:103"},"nodeType":"YulFunctionCall","src":"7460:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7442:6:103"},"nodeType":"YulFunctionCall","src":"7442:51:103"},"nodeType":"YulExpressionStatement","src":"7442:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7366:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7377:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7388:4:103","type":""}],"src":"7278:221:103"},{"body":{"nodeType":"YulBlock","src":"7622:132:103","statements":[{"nodeType":"YulAssignment","src":"7632:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7655:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7640:3:103"},"nodeType":"YulFunctionCall","src":"7640:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7632:4:103"}]},{"body":{"nodeType":"YulBlock","src":"7692:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"7694:16:103"},"nodeType":"YulFunctionCall","src":"7694:18:103"},"nodeType":"YulExpressionStatement","src":"7694:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7680:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7688:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7677:2:103"},"nodeType":"YulFunctionCall","src":"7677:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7670:6:103"},"nodeType":"YulFunctionCall","src":"7670:21:103"},"nodeType":"YulIf","src":"7667:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7730:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7741:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7723:6:103"},"nodeType":"YulFunctionCall","src":"7723:25:103"},"nodeType":"YulExpressionStatement","src":"7723:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7591:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7602:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7613:4:103","type":""}],"src":"7504:250:103"},{"body":{"nodeType":"YulBlock","src":"7876:132:103","statements":[{"nodeType":"YulAssignment","src":"7886:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7898:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7909:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7894:3:103"},"nodeType":"YulFunctionCall","src":"7894:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7886:4:103"}]},{"body":{"nodeType":"YulBlock","src":"7946:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"7948:16:103"},"nodeType":"YulFunctionCall","src":"7948:18:103"},"nodeType":"YulExpressionStatement","src":"7948:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7934:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7942:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7931:2:103"},"nodeType":"YulFunctionCall","src":"7931:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7924:6:103"},"nodeType":"YulFunctionCall","src":"7924:21:103"},"nodeType":"YulIf","src":"7921:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7984:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7995:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7977:6:103"},"nodeType":"YulFunctionCall","src":"7977:25:103"},"nodeType":"YulExpressionStatement","src":"7977:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7845:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7856:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7867:4:103","type":""}],"src":"7759:249:103"},{"body":{"nodeType":"YulBlock","src":"8187:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8204:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8215:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8197:6:103"},"nodeType":"YulFunctionCall","src":"8197:21:103"},"nodeType":"YulExpressionStatement","src":"8197:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8238:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8249:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8234:3:103"},"nodeType":"YulFunctionCall","src":"8234:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8254:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8227:6:103"},"nodeType":"YulFunctionCall","src":"8227:30:103"},"nodeType":"YulExpressionStatement","src":"8227:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8277:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8288:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8273:3:103"},"nodeType":"YulFunctionCall","src":"8273:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8293:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8266:6:103"},"nodeType":"YulFunctionCall","src":"8266:57:103"},"nodeType":"YulExpressionStatement","src":"8266:57:103"},{"nodeType":"YulAssignment","src":"8332:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8355:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8340:3:103"},"nodeType":"YulFunctionCall","src":"8340:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8332:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8164:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8178:4:103","type":""}],"src":"8013:351:103"},{"body":{"nodeType":"YulBlock","src":"8543:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8560:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8571:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8553:6:103"},"nodeType":"YulFunctionCall","src":"8553:21:103"},"nodeType":"YulExpressionStatement","src":"8553:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8594:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8605:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8590:3:103"},"nodeType":"YulFunctionCall","src":"8590:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8610:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8583:6:103"},"nodeType":"YulFunctionCall","src":"8583:30:103"},"nodeType":"YulExpressionStatement","src":"8583:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8633:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8644:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8629:3:103"},"nodeType":"YulFunctionCall","src":"8629:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8649:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8622:6:103"},"nodeType":"YulFunctionCall","src":"8622:62:103"},"nodeType":"YulExpressionStatement","src":"8622:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8704:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8715:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8700:3:103"},"nodeType":"YulFunctionCall","src":"8700:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8720:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8693:6:103"},"nodeType":"YulFunctionCall","src":"8693:36:103"},"nodeType":"YulExpressionStatement","src":"8693:36:103"},{"nodeType":"YulAssignment","src":"8738:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8750:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8761:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8746:3:103"},"nodeType":"YulFunctionCall","src":"8746:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8738:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8520:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8534:4:103","type":""}],"src":"8369:402:103"},{"body":{"nodeType":"YulBlock","src":"8950:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8967:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8978:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8960:6:103"},"nodeType":"YulFunctionCall","src":"8960:21:103"},"nodeType":"YulExpressionStatement","src":"8960:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9001:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9012:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8997:3:103"},"nodeType":"YulFunctionCall","src":"8997:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9017:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8990:6:103"},"nodeType":"YulFunctionCall","src":"8990:30:103"},"nodeType":"YulExpressionStatement","src":"8990:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9040:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9051:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9036:3:103"},"nodeType":"YulFunctionCall","src":"9036:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9056:34:103","type":"","value":"unable to transferAndCall to ora"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9029:6:103"},"nodeType":"YulFunctionCall","src":"9029:62:103"},"nodeType":"YulExpressionStatement","src":"9029:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9111:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9122:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9107:3:103"},"nodeType":"YulFunctionCall","src":"9107:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9127:5:103","type":"","value":"cle"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9100:6:103"},"nodeType":"YulFunctionCall","src":"9100:33:103"},"nodeType":"YulExpressionStatement","src":"9100:33:103"},{"nodeType":"YulAssignment","src":"9142:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9154:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9165:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9150:3:103"},"nodeType":"YulFunctionCall","src":"9150:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9142:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8927:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8941:4:103","type":""}],"src":"8776:399:103"},{"body":{"nodeType":"YulBlock","src":"9354:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9371:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9382:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9364:6:103"},"nodeType":"YulFunctionCall","src":"9364:21:103"},"nodeType":"YulExpressionStatement","src":"9364:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9405:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9416:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9401:3:103"},"nodeType":"YulFunctionCall","src":"9401:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9421:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9394:6:103"},"nodeType":"YulFunctionCall","src":"9394:30:103"},"nodeType":"YulExpressionStatement","src":"9394:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9444:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9455:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9440:3:103"},"nodeType":"YulFunctionCall","src":"9440:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9460:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9433:6:103"},"nodeType":"YulFunctionCall","src":"9433:62:103"},"nodeType":"YulExpressionStatement","src":"9433:62:103"},{"nodeType":"YulAssignment","src":"9504:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9516:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9527:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9512:3:103"},"nodeType":"YulFunctionCall","src":"9512:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9504:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9331:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9345:4:103","type":""}],"src":"9180:356:103"},{"body":{"nodeType":"YulBlock","src":"9715:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9732:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9743:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9725:6:103"},"nodeType":"YulFunctionCall","src":"9725:21:103"},"nodeType":"YulExpressionStatement","src":"9725:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9766:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9777:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9762:3:103"},"nodeType":"YulFunctionCall","src":"9762:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9782:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9755:6:103"},"nodeType":"YulFunctionCall","src":"9755:30:103"},"nodeType":"YulExpressionStatement","src":"9755:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9805:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9816:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9801:3:103"},"nodeType":"YulFunctionCall","src":"9801:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9821:29:103","type":"","value":"ERROR:ORA-001:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9794:6:103"},"nodeType":"YulFunctionCall","src":"9794:57:103"},"nodeType":"YulExpressionStatement","src":"9794:57:103"},{"nodeType":"YulAssignment","src":"9860:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9872:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9883:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9868:3:103"},"nodeType":"YulFunctionCall","src":"9868:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9860:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9692:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9706:4:103","type":""}],"src":"9541:351:103"},{"body":{"nodeType":"YulBlock","src":"10071:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10099:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10081:6:103"},"nodeType":"YulFunctionCall","src":"10081:21:103"},"nodeType":"YulExpressionStatement","src":"10081:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10133:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10118:3:103"},"nodeType":"YulFunctionCall","src":"10118:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10138:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10111:6:103"},"nodeType":"YulFunctionCall","src":"10111:30:103"},"nodeType":"YulExpressionStatement","src":"10111:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10172:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10157:3:103"},"nodeType":"YulFunctionCall","src":"10157:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10177:34:103","type":"","value":"Source must be the oracle of the"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10150:6:103"},"nodeType":"YulFunctionCall","src":"10150:62:103"},"nodeType":"YulExpressionStatement","src":"10150:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10232:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10243:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10228:3:103"},"nodeType":"YulFunctionCall","src":"10228:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10248:10:103","type":"","value":" request"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10221:6:103"},"nodeType":"YulFunctionCall","src":"10221:38:103"},"nodeType":"YulExpressionStatement","src":"10221:38:103"},{"nodeType":"YulAssignment","src":"10268:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10280:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10291:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10276:3:103"},"nodeType":"YulFunctionCall","src":"10276:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10268:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10048:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10062:4:103","type":""}],"src":"9897:404:103"},{"body":{"nodeType":"YulBlock","src":"10407:76:103","statements":[{"nodeType":"YulAssignment","src":"10417:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10440:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10425:3:103"},"nodeType":"YulFunctionCall","src":"10425:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10417:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10459:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10470:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10452:6:103"},"nodeType":"YulFunctionCall","src":"10452:25:103"},"nodeType":"YulExpressionStatement","src":"10452:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10376:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10387:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10398:4:103","type":""}],"src":"10306:177:103"},{"body":{"nodeType":"YulBlock","src":"10617:119:103","statements":[{"nodeType":"YulAssignment","src":"10627:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10639:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10650:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10635:3:103"},"nodeType":"YulFunctionCall","src":"10635:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10627:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10669:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10680:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10662:6:103"},"nodeType":"YulFunctionCall","src":"10662:25:103"},"nodeType":"YulExpressionStatement","src":"10662:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10707:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10718:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10703:3:103"},"nodeType":"YulFunctionCall","src":"10703:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"10723:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10696:6:103"},"nodeType":"YulFunctionCall","src":"10696:34:103"},"nodeType":"YulExpressionStatement","src":"10696:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10578:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10589:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10597:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10608:4:103","type":""}],"src":"10488:248:103"},{"body":{"nodeType":"YulBlock","src":"10982:294:103","statements":[{"nodeType":"YulAssignment","src":"10992:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11004:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11015:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11000:3:103"},"nodeType":"YulFunctionCall","src":"11000:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10992:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11035:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11046:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11028:6:103"},"nodeType":"YulFunctionCall","src":"11028:25:103"},"nodeType":"YulExpressionStatement","src":"11028:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11073:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11084:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11069:3:103"},"nodeType":"YulFunctionCall","src":"11069:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11089:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11062:6:103"},"nodeType":"YulFunctionCall","src":"11062:34:103"},"nodeType":"YulExpressionStatement","src":"11062:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11116:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11127:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11112:3:103"},"nodeType":"YulFunctionCall","src":"11112:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"11132:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11105:6:103"},"nodeType":"YulFunctionCall","src":"11105:34:103"},"nodeType":"YulExpressionStatement","src":"11105:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11159:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11170:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11155:3:103"},"nodeType":"YulFunctionCall","src":"11155:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"11175:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11148:6:103"},"nodeType":"YulFunctionCall","src":"11148:34:103"},"nodeType":"YulExpressionStatement","src":"11148:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11202:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11213:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11198:3:103"},"nodeType":"YulFunctionCall","src":"11198:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"11219:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11191:6:103"},"nodeType":"YulFunctionCall","src":"11191:35:103"},"nodeType":"YulExpressionStatement","src":"11191:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11246:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11257:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11242:3:103"},"nodeType":"YulFunctionCall","src":"11242:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"11263:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11235:6:103"},"nodeType":"YulFunctionCall","src":"11235:35:103"},"nodeType":"YulExpressionStatement","src":"11235:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10911:9:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10922:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10930:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10938:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10946:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10954:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10962:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10973:4:103","type":""}],"src":"10741:535:103"},{"body":{"nodeType":"YulBlock","src":"11428:141:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11445:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11456:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11438:6:103"},"nodeType":"YulFunctionCall","src":"11438:25:103"},"nodeType":"YulExpressionStatement","src":"11438:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11483:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11494:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11479:3:103"},"nodeType":"YulFunctionCall","src":"11479:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11499:2:103","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11472:6:103"},"nodeType":"YulFunctionCall","src":"11472:30:103"},"nodeType":"YulExpressionStatement","src":"11472:30:103"},{"nodeType":"YulAssignment","src":"11511:52:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11536:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11548:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11559:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11544:3:103"},"nodeType":"YulFunctionCall","src":"11544:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11519:16:103"},"nodeType":"YulFunctionCall","src":"11519:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11511:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11389:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11400:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11408:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11419:4:103","type":""}],"src":"11281:288:103"},{"body":{"nodeType":"YulBlock","src":"11622:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"11649:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11651:16:103"},"nodeType":"YulFunctionCall","src":"11651:18:103"},"nodeType":"YulExpressionStatement","src":"11651:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11638:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11645:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11641:3:103"},"nodeType":"YulFunctionCall","src":"11641:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11635:2:103"},"nodeType":"YulFunctionCall","src":"11635:13:103"},"nodeType":"YulIf","src":"11632:2:103"},{"nodeType":"YulAssignment","src":"11680:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11691:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"11694:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11687:3:103"},"nodeType":"YulFunctionCall","src":"11687:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"11680:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11605:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"11608:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"11614:3:103","type":""}],"src":"11574:128:103"},{"body":{"nodeType":"YulBlock","src":"11753:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"11776:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"11778:16:103"},"nodeType":"YulFunctionCall","src":"11778:18:103"},"nodeType":"YulExpressionStatement","src":"11778:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11773:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11766:6:103"},"nodeType":"YulFunctionCall","src":"11766:9:103"},"nodeType":"YulIf","src":"11763:2:103"},{"nodeType":"YulAssignment","src":"11807:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11816:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"11819:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11812:3:103"},"nodeType":"YulFunctionCall","src":"11812:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"11807:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11738:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"11741:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"11747:1:103","type":""}],"src":"11707:120:103"},{"body":{"nodeType":"YulBlock","src":"11909:376:103","statements":[{"nodeType":"YulAssignment","src":"11919:15:103","value":{"name":"_power","nodeType":"YulIdentifier","src":"11928:6:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"11919:5:103"}]},{"nodeType":"YulAssignment","src":"11943:13:103","value":{"name":"_base","nodeType":"YulIdentifier","src":"11951:5:103"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"11943:4:103"}]},{"body":{"nodeType":"YulBlock","src":"11990:289:103","statements":[{"nodeType":"YulVariableDeclaration","src":"12004:11:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12014:1:103","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12008:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12056:9:103","statements":[{"nodeType":"YulBreak","src":"12058:5:103"}]},"condition":{"arguments":[{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12041:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"12051:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12038:2:103"},"nodeType":"YulFunctionCall","src":"12038:16:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12031:6:103"},"nodeType":"YulFunctionCall","src":"12031:24:103"},"nodeType":"YulIf","src":"12028:2:103"},{"body":{"nodeType":"YulBlock","src":"12106:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12108:16:103"},"nodeType":"YulFunctionCall","src":"12108:18:103"},"nodeType":"YulExpressionStatement","src":"12108:18:103"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"12084:4:103"},{"arguments":[{"name":"max","nodeType":"YulIdentifier","src":"12094:3:103"},{"name":"base","nodeType":"YulIdentifier","src":"12099:4:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"12090:3:103"},"nodeType":"YulFunctionCall","src":"12090:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12081:2:103"},"nodeType":"YulFunctionCall","src":"12081:24:103"},"nodeType":"YulIf","src":"12078:2:103"},{"body":{"nodeType":"YulBlock","src":"12162:29:103","statements":[{"nodeType":"YulAssignment","src":"12164:25:103","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"12177:5:103"},{"name":"base","nodeType":"YulIdentifier","src":"12184:4:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"12173:3:103"},"nodeType":"YulFunctionCall","src":"12173:16:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12164:5:103"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12148:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"12158:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12144:3:103"},"nodeType":"YulFunctionCall","src":"12144:17:103"},"nodeType":"YulIf","src":"12141:2:103"},{"nodeType":"YulAssignment","src":"12204:23:103","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"12216:4:103"},{"name":"base","nodeType":"YulIdentifier","src":"12222:4:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"12212:3:103"},"nodeType":"YulFunctionCall","src":"12212:15:103"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"12204:4:103"}]},{"nodeType":"YulAssignment","src":"12240:29:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12256:2:103"},{"name":"exponent","nodeType":"YulIdentifier","src":"12260:8:103"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"12252:3:103"},"nodeType":"YulFunctionCall","src":"12252:17:103"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"12240:8:103"}]}]},"condition":{"kind":"bool","nodeType":"YulLiteral","src":"11973:4:103","type":"","value":"true"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"11978:3:103","statements":[]},"pre":{"nodeType":"YulBlock","src":"11969:3:103","statements":[]},"src":"11965:314:103"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nodeType":"YulTypedName","src":"11860:6:103","type":""},{"name":"_base","nodeType":"YulTypedName","src":"11868:5:103","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"11875:8:103","type":""},{"name":"max","nodeType":"YulTypedName","src":"11885:3:103","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"11893:5:103","type":""},{"name":"base","nodeType":"YulTypedName","src":"11900:4:103","type":""}],"src":"11832:453:103"},{"body":{"nodeType":"YulBlock","src":"12360:69:103","statements":[{"nodeType":"YulAssignment","src":"12370:53:103","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"12400:4:103"},{"name":"exponent","nodeType":"YulIdentifier","src":"12406:8:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12420:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12416:3:103"},"nodeType":"YulFunctionCall","src":"12416:6:103"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"12379:20:103"},"nodeType":"YulFunctionCall","src":"12379:44:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12370:5:103"}]}]},"name":"checked_exp_t_uint256_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"12331:4:103","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"12337:8:103","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"12350:5:103","type":""}],"src":"12290:139:103"},{"body":{"nodeType":"YulBlock","src":"12498:858:103","statements":[{"body":{"nodeType":"YulBlock","src":"12536:52:103","statements":[{"nodeType":"YulAssignment","src":"12550:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12559:1:103","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12550:5:103"}]},{"nodeType":"YulLeave","src":"12573:5:103"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12518:8:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12511:6:103"},"nodeType":"YulFunctionCall","src":"12511:16:103"},"nodeType":"YulIf","src":"12508:2:103"},{"body":{"nodeType":"YulBlock","src":"12621:52:103","statements":[{"nodeType":"YulAssignment","src":"12635:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12644:1:103","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12635:5:103"}]},{"nodeType":"YulLeave","src":"12658:5:103"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"12607:4:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12600:6:103"},"nodeType":"YulFunctionCall","src":"12600:12:103"},"nodeType":"YulIf","src":"12597:2:103"},{"cases":[{"body":{"nodeType":"YulBlock","src":"12709:52:103","statements":[{"nodeType":"YulAssignment","src":"12723:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12732:1:103","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12723:5:103"}]},{"nodeType":"YulLeave","src":"12746:5:103"}]},"nodeType":"YulCase","src":"12702:59:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12707:1:103","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"12777:176:103","statements":[{"body":{"nodeType":"YulBlock","src":"12812:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12814:16:103"},"nodeType":"YulFunctionCall","src":"12814:18:103"},"nodeType":"YulExpressionStatement","src":"12814:18:103"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12797:8:103"},{"kind":"number","nodeType":"YulLiteral","src":"12807:3:103","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12794:2:103"},"nodeType":"YulFunctionCall","src":"12794:17:103"},"nodeType":"YulIf","src":"12791:2:103"},{"nodeType":"YulAssignment","src":"12847:25:103","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12860:8:103"},{"kind":"number","nodeType":"YulLiteral","src":"12870:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12856:3:103"},"nodeType":"YulFunctionCall","src":"12856:16:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12847:5:103"}]},{"body":{"nodeType":"YulBlock","src":"12903:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12905:16:103"},"nodeType":"YulFunctionCall","src":"12905:18:103"},"nodeType":"YulExpressionStatement","src":"12905:18:103"}]},"condition":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"12891:5:103"},{"name":"max","nodeType":"YulIdentifier","src":"12898:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12888:2:103"},"nodeType":"YulFunctionCall","src":"12888:14:103"},"nodeType":"YulIf","src":"12885:2:103"},{"nodeType":"YulLeave","src":"12938:5:103"}]},"nodeType":"YulCase","src":"12770:183:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12775:1:103","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"12689:4:103"},"nodeType":"YulSwitch","src":"12682:271:103"},{"body":{"nodeType":"YulBlock","src":"13051:123:103","statements":[{"nodeType":"YulAssignment","src":"13065:28:103","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"13078:4:103"},{"name":"exponent","nodeType":"YulIdentifier","src":"13084:8:103"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"13074:3:103"},"nodeType":"YulFunctionCall","src":"13074:19:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"13065:5:103"}]},{"body":{"nodeType":"YulBlock","src":"13124:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13126:16:103"},"nodeType":"YulFunctionCall","src":"13126:18:103"},"nodeType":"YulExpressionStatement","src":"13126:18:103"}]},"condition":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"13112:5:103"},{"name":"max","nodeType":"YulIdentifier","src":"13119:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13109:2:103"},"nodeType":"YulFunctionCall","src":"13109:14:103"},"nodeType":"YulIf","src":"13106:2:103"},{"nodeType":"YulLeave","src":"13159:5:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"12975:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"12981:2:103","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12972:2:103"},"nodeType":"YulFunctionCall","src":"12972:12:103"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12989:8:103"},{"kind":"number","nodeType":"YulLiteral","src":"12999:2:103","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12986:2:103"},"nodeType":"YulFunctionCall","src":"12986:16:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12968:3:103"},"nodeType":"YulFunctionCall","src":"12968:35:103"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"13012:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"13018:3:103","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13009:2:103"},"nodeType":"YulFunctionCall","src":"13009:13:103"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"13027:8:103"},{"kind":"number","nodeType":"YulLiteral","src":"13037:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13024:2:103"},"nodeType":"YulFunctionCall","src":"13024:16:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13005:3:103"},"nodeType":"YulFunctionCall","src":"13005:36:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"12965:2:103"},"nodeType":"YulFunctionCall","src":"12965:77:103"},"nodeType":"YulIf","src":"12962:2:103"},{"nodeType":"YulVariableDeclaration","src":"13183:65:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13225:1:103","type":"","value":"1"},{"name":"base","nodeType":"YulIdentifier","src":"13228:4:103"},{"name":"exponent","nodeType":"YulIdentifier","src":"13234:8:103"},{"name":"max","nodeType":"YulIdentifier","src":"13244:3:103"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"13206:18:103"},"nodeType":"YulFunctionCall","src":"13206:42:103"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"13187:7:103","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"13196:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"13290:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13292:16:103"},"nodeType":"YulFunctionCall","src":"13292:18:103"},"nodeType":"YulExpressionStatement","src":"13292:18:103"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"13263:7:103"},{"arguments":[{"name":"max","nodeType":"YulIdentifier","src":"13276:3:103"},{"name":"base_1","nodeType":"YulIdentifier","src":"13281:6:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"13272:3:103"},"nodeType":"YulFunctionCall","src":"13272:16:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13260:2:103"},"nodeType":"YulFunctionCall","src":"13260:29:103"},"nodeType":"YulIf","src":"13257:2:103"},{"nodeType":"YulAssignment","src":"13321:29:103","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"13334:7:103"},{"name":"base_1","nodeType":"YulIdentifier","src":"13343:6:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"13330:3:103"},"nodeType":"YulFunctionCall","src":"13330:20:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"13321:5:103"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"12464:4:103","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"12470:8:103","type":""},{"name":"max","nodeType":"YulTypedName","src":"12480:3:103","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"12488:5:103","type":""}],"src":"12434:922:103"},{"body":{"nodeType":"YulBlock","src":"13413:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"13472:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13474:16:103"},"nodeType":"YulFunctionCall","src":"13474:18:103"},"nodeType":"YulExpressionStatement","src":"13474:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13444:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13437:6:103"},"nodeType":"YulFunctionCall","src":"13437:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13430:6:103"},"nodeType":"YulFunctionCall","src":"13430:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13452:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13463:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13459:3:103"},"nodeType":"YulFunctionCall","src":"13459:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"13467:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"13455:3:103"},"nodeType":"YulFunctionCall","src":"13455:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13449:2:103"},"nodeType":"YulFunctionCall","src":"13449:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13426:3:103"},"nodeType":"YulFunctionCall","src":"13426:45:103"},"nodeType":"YulIf","src":"13423:2:103"},{"nodeType":"YulAssignment","src":"13503:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13518:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13521:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"13514:3:103"},"nodeType":"YulFunctionCall","src":"13514:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"13503:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13392:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13395:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"13401:7:103","type":""}],"src":"13361:168:103"},{"body":{"nodeType":"YulBlock","src":"13583:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"13605:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13607:16:103"},"nodeType":"YulFunctionCall","src":"13607:18:103"},"nodeType":"YulExpressionStatement","src":"13607:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13599:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13602:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13596:2:103"},"nodeType":"YulFunctionCall","src":"13596:8:103"},"nodeType":"YulIf","src":"13593:2:103"},{"nodeType":"YulAssignment","src":"13636:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13648:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13651:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13644:3:103"},"nodeType":"YulFunctionCall","src":"13644:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"13636:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13565:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13568:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"13574:4:103","type":""}],"src":"13534:125:103"},{"body":{"nodeType":"YulBlock","src":"13702:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"13725:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"13727:16:103"},"nodeType":"YulFunctionCall","src":"13727:18:103"},"nodeType":"YulExpressionStatement","src":"13727:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13722:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13715:6:103"},"nodeType":"YulFunctionCall","src":"13715:9:103"},"nodeType":"YulIf","src":"13712:2:103"},{"nodeType":"YulAssignment","src":"13756:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13765:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13768:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"13761:3:103"},"nodeType":"YulFunctionCall","src":"13761:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"13756:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13687:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13690:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"13696:1:103","type":""}],"src":"13664:112:103"},{"body":{"nodeType":"YulBlock","src":"13813:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13830:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13837:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13842:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13833:3:103"},"nodeType":"YulFunctionCall","src":"13833:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13823:6:103"},"nodeType":"YulFunctionCall","src":"13823:31:103"},"nodeType":"YulExpressionStatement","src":"13823:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13870:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13873:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13863:6:103"},"nodeType":"YulFunctionCall","src":"13863:15:103"},"nodeType":"YulExpressionStatement","src":"13863:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13894:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13897:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13887:6:103"},"nodeType":"YulFunctionCall","src":"13887:15:103"},"nodeType":"YulExpressionStatement","src":"13887:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"13781:127:103"},{"body":{"nodeType":"YulBlock","src":"13945:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13962:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13969:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13974:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13965:3:103"},"nodeType":"YulFunctionCall","src":"13965:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13955:6:103"},"nodeType":"YulFunctionCall","src":"13955:31:103"},"nodeType":"YulExpressionStatement","src":"13955:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14002:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14005:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13995:6:103"},"nodeType":"YulFunctionCall","src":"13995:15:103"},"nodeType":"YulExpressionStatement","src":"13995:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14026:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14029:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14019:6:103"},"nodeType":"YulFunctionCall","src":"14019:15:103"},"nodeType":"YulExpressionStatement","src":"14019:15:103"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"13913:127:103"},{"body":{"nodeType":"YulBlock","src":"14077:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14094:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14101:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14106:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14097:3:103"},"nodeType":"YulFunctionCall","src":"14097:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14087:6:103"},"nodeType":"YulFunctionCall","src":"14087:31:103"},"nodeType":"YulExpressionStatement","src":"14087:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14134:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14137:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14127:6:103"},"nodeType":"YulFunctionCall","src":"14127:15:103"},"nodeType":"YulExpressionStatement","src":"14127:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14158:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14161:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14151:6:103"},"nodeType":"YulFunctionCall","src":"14151:15:103"},"nodeType":"YulExpressionStatement","src":"14151:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"14045:127:103"},{"body":{"nodeType":"YulBlock","src":"14222:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"14286:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14295:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14298:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14288:6:103"},"nodeType":"YulFunctionCall","src":"14288:12:103"},"nodeType":"YulExpressionStatement","src":"14288:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14245:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14256:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14271:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14276:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14267:3:103"},"nodeType":"YulFunctionCall","src":"14267:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14280:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14263:3:103"},"nodeType":"YulFunctionCall","src":"14263:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14252:3:103"},"nodeType":"YulFunctionCall","src":"14252:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14242:2:103"},"nodeType":"YulFunctionCall","src":"14242:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14235:6:103"},"nodeType":"YulFunctionCall","src":"14235:50:103"},"nodeType":"YulIf","src":"14232:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14211:5:103","type":""}],"src":"14177:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_addresst_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value1, value1) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value1, value1) }\n value1 := add(_2, 32)\n value2 := length\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := end\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(pos, length), 0x20), end)\n }\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), value1)\n end := add(pos, 52)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 256\n let _2 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _2))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, shl(224, 0xffffffff)))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), _1)\n tail := abi_encode_bytes(value7, add(headStart, _1))\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"unable to transferAndCall to ora\")\n mstore(add(headStart, 96), \"cle\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:ORA-001:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"Source must be the oracle of the\")\n mstore(add(headStart, 96), \" request\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 192)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_exp_helper(_power, _base, exponent, max) -> power, base\n {\n power := _power\n base := _base\n for { } true { }\n {\n let _1 := 1\n if iszero(gt(exponent, _1)) { break }\n if gt(base, div(max, base)) { panic_error_0x11() }\n if and(exponent, _1) { power := mul(power, base) }\n base := mul(base, base)\n exponent := shr(_1, exponent)\n }\n }\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power\n {\n power := checked_exp_unsigned(base, exponent, not(0))\n }\n function checked_exp_unsigned(base, exponent, max) -> power\n {\n if iszero(exponent)\n {\n power := 1\n leave\n }\n if iszero(base)\n {\n power := 0\n leave\n }\n switch base\n case 1 {\n power := 1\n leave\n }\n case 2 {\n if gt(exponent, 255) { panic_error_0x11() }\n power := shl(exponent, 1)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n {\n power := exp(base, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n let power_1, base_1 := checked_exp_helper(1, base, exponent, max)\n if gt(power_1, div(max, base_1)) { panic_error_0x11() }\n power := mul(power_1, base_1)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063893d20e81161011a578063be169e7e116100ad578063d73cd9921161007c578063d73cd99214610319578063e0815f0d146103d8578063e8f8e1c1146103e0578063f2fde38b146103e8578063ffc79065146103fb576101fb565b8063be169e7e14610319578063c2939d97146103a9578063ca5ddcf3146103b2578063d0e0ba95146103c5576101fb565b8063a18f5ae2116100e9578063a18f5ae214610319578063b3fca9bd14610319578063b6e45ee014610399578063bd1fe5d0146103a1576101fb565b8063893d20e8146103585780638da5cb5b1461036d57806397e873e91461037e5780639a82f89014610391576101fb565b8063423b3b7a116101925780635b16d9b2116101615780635b16d9b2146103385780635d1ca63114610340578063638ce0ba14610348578063715018a614610350576101fb565b8063423b3b7a146102b857806342f6487a1461031057806359dacc6a146103195780635ab1bd5314610321576101fb565b80631b867c63116101ce5780631b867c6314610263578063258d560c1461026d5780633fb80f511461028557806340e58ee5146102a5576101fb565b806315dae03e14610200578063165d35e11461021c57806317d7de7c1461023c5780631865c57d1461024e575b600080fd5b60035460ff166040516102139190611876565b60405180910390f35b61022461040e565b6040516001600160a01b039091168152602001610213565b6001545b604051908152602001610213565b610256610427565b604051610213919061185c565b61026b6104a8565b005b610275610500565b6040519015158152602001610213565b610240610293366004611653565b600e6020526000908152604090205481565b61026b6102b3366004611653565b610530565b6103036102c6366004611696565b604080516020810196909652858101949094526060850192909252608084015260a0808401919091528151808403909101815260c0909201905290565b6040516102139190611849565b61024060105481565b61026b61053b565b61022460035461010090046001600160a01b031690565b601054610240565b600254610240565b61026b610585565b61026b6105d2565b610224600080546001600160a01b0316610422565b6000546001600160a01b0316610224565b61026b61038c366004611696565b6105e4565b610275610761565b600f54610240565b61026b610769565b610240600f5481565b61026b6103c03660046115ee565b6107b6565b61026b6103d3366004611653565b610821565b61027561086b565b610224610874565b61026b6103f63660046115b6565b610888565b61026b6104093660046116ef565b6108fe565b6000610422600a546001600160a01b031690565b905090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561047057600080fd5b505afa158015610484573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906116d0565b6104bd6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146104f65760405162461bcd60e51b81526004016104ed9061188a565b60405180910390fd5b6104fe610b0b565b565b600060025b60035460ff16600281111561052a57634e487b7160e01b600052602160045260246000fd5b14905090565b610538610b48565b50565b6105506810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105805760405162461bcd60e51b81526004016104ed9061188a565b6104fe565b61059a6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105ca5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610ba2565b6105da610b48565b6104fe6000610bcc565b6000858152600d602052604090205485906001600160a01b0316331461065d5760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084016104ed565b6000818152600d602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a26000868152600e602090815260408083205481519283018990529082018790526060820186905260808201859052919060a00160405160208183030381529060405290506106ee8282610c1c565b6000888152600e602090815260408083209290925581518481529081018a9052908101889052606081018790526080810186905260a081018590527fd3d5b0141a5d81ac8c98139f284f1b25fb3061bc81857f74de9a702e382916349060c0015b60405180910390a15050505050505050565b600080610505565b61077e6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146107ae5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610c84565b6107be610b48565b6001600160a01b038416156107e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383161561081457600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6108366810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146108665760405162461bcd60e51b81526004016104ed9061188a565b600255565b60006001610505565b6000610422600b546001600160a01b031690565b610890610b48565b6001600160a01b0381166108f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61053881610bcc565b61090f64517565727960d81b610a81565b6001600160a01b0316336001600160a01b03161461096f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e494544000000000060448201526064016104ed565b6000610985600f54306397e873e960e01b610cae565b9050600080806109978587018761166b565b9250925092506109d3604051806040016040528060098152602001681c1c9bda9958dd125960ba1b8152506109cb85610cd5565b869190610d8d565b6109fd604051806040016040528060058152602001641d585a525960da1b8152506109cb84610cd5565b610a286040518060400160405280600681526020016518dc9bdc125960d21b8152506109cb83610cd5565b6000610a3685601054610db0565b6000818152600e60209081526040918290208b905581518b81529081018390529192507f09ee0ce04d9140f363cd342b605f7aaae55e9c0d84a975c417e55ce074b49332910161074f565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0391906115d2565b90505b919050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b23610b3560025490565b60405190815260200160405180910390a1565b6000546001600160a01b031633146104fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e6610b3560025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a90610c4e90859085906004016118c1565b600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505050565b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d610b3560025490565b610cb661157b565b610cbe61157b565b610cca81868686610dd3565b9150505b9392505050565b6060610cf4604051806040016040528060008152602001600081525090565b6040516020810160405283815280602083015250610d1183610e19565b80825260009067ffffffffffffffff811115610d3d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610d67576020820181803683370190505b5090506000602082019050610d858184602001518560000151610f03565b509392505050565b6080830151610d9c9083610f7d565b6080830151610dab9082610f7d565b505050565b600b54600090610dca906001600160a01b03168484610f94565b90505b92915050565b610ddb61157b565b610deb8560800151610100611027565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b60008082610e2b576000915050610b06565b6fffffffffffffffffffffffffffffffff8316610e6057610e4d6010826118da565b9050610e5d600160801b846118f2565b92505b67ffffffffffffffff8316610e9257610e7a6008826118da565b9050610e8f68010000000000000000846118f2565b92505b63ffffffff8316610ebc57610ea86004826118da565b9050610eb9640100000000846118f2565b92505b61ffff8316610ee257610ed06002826118da565b9050610edf62010000846118f2565b92505b60ff8316610ef857610ef56001826118da565b90505b610cce816020611a39565b60208110610f3b5781518352610f1a6020846118da565b9250610f276020836118da565b9150610f34602082611a39565b9050610f03565b6000198115610f6a576001610f51836020611a39565b610f5d9061010061194c565b610f679190611a39565b90505b9151835183169219169190911790915250565b610f8a826003835161108c565b610dab82826111a7565b600c54600090610fa58160016118da565b600c55835160408086015160808701515191516000936320214ca360e11b93610fdd9386938493923092918a916001916024016117b1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061101d868386846111ce565b9695505050505050565b604080518082019091526060815260006020820152611047602083611a50565b1561106f57611057602083611a50565b611062906020611a39565b61106c90836118da565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116110b7576110b18360e0600585901b16831761133b565b50610dab565b60ff8167ffffffffffffffff16116110f5576110de836018611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166001611360565b61ffff8167ffffffffffffffff16116111345761111d836019611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166002611360565b63ffffffff8167ffffffffffffffff16116111755761115e83601a611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166004611360565b61118a83601b611fe0600586901b161761133b565b506111a18367ffffffffffffffff83166008611360565b50505050565b604080518082019091526060815260006020820152610dca83846000015151848551611386565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600d90925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600a54604051630200057560e51b81526001600160a01b0390911690634000aea09061129190889087908790600401611819565b602060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e39190611633565b610e115760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b60648201526084016104ed565b604080518082019091526060815260006020820152610dca8384600001515184611470565b604080518082019091526060815260006020820152610e118485600001515185856114cc565b60408051808201909152606081526000602082015282518211156113a957600080fd5b60208501516113b883866118da565b11156113eb576113eb856113db876020015187866113d691906118da565b61154d565b6113e6906002611a1a565b611564565b60008086518051876020830101935080888701111561140a5787860182525b505050602084015b6020841061144a57805182526114296020836118da565b91506114366020826118da565b9050611443602085611a39565b9350611412565b51815160001960208690036101000a019081169019919091161790525083949350505050565b604080518082019091526060815260006020820152836020015183106114a5576114a584856020015160026113e69190611a1a565b8351805160208583010184815350808514156114c2576001810182525b5093949350505050565b60408051808201909152606081526000602082015260208501516114f085846118da565b111561150457611504856113db86856118da565b600060016115148461010061194c565b61151e9190611a39565b90508551838682010185831982511617815250805184870111156115425783860181525b509495945050505050565b60008183111561155e575081610dcd565b50919050565b81516115708383611027565b506111a183826111a7565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000602082840312156115c7578081fd5b8135610cce81611aa6565b6000602082840312156115e3578081fd5b8151610cce81611aa6565b60008060008060808587031215611603578283fd5b843561160e81611aa6565b9350602085013561161e81611aa6565b93969395505050506040820135916060013590565b600060208284031215611644578081fd5b81518015158114610cce578182fd5b600060208284031215611664578081fd5b5035919050565b60008060006060848603121561167f578283fd5b505081359360208301359350604090920135919050565b600080600080600060a086880312156116ad578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000602082840312156116e1578081fd5b815160078110610cce578182fd5b600080600060408486031215611703578283fd5b83359250602084013567ffffffffffffffff80821115611721578384fd5b818601915086601f830112611734578384fd5b813581811115611742578485fd5b876020828501011115611753578485fd5b6020830194508093505050509250925092565b60008151808452815b8181101561178b5760208185018101518683018201520161176f565b8181111561179c5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061180a83820185611766565b9b9a5050505050505050505050565b600060018060a01b0385168252836020830152606060408301526118406060830184611766565b95945050505050565b600060208252610dca6020830184611766565b602081016007831061187057611870611a90565b91905290565b602081016003831061187057611870611a90565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260406020830152610e116040830184611766565b600082198211156118ed576118ed611a64565b500190565b60008261190157611901611a7a565b500490565b80825b60018086116119185750611943565b81870482111561192a5761192a611a64565b8086161561193757918102915b9490941c938002611909565b94509492505050565b6000610dca600019848460008261196557506001610cce565b8161197257506000610cce565b81600181146119885760028114611992576119bf565b6001915050610cce565b60ff8411156119a3576119a3611a64565b6001841b9150848211156119b9576119b9611a64565b50610cce565b5060208310610133831016604e8410600b84101617156119f2575081810a838111156119ed576119ed611a64565b610cce565b6119ff8484846001611906565b808604821115611a1157611a11611a64565b02949350505050565b6000816000190483118215151615611a3457611a34611a64565b500290565b600082821015611a4b57611a4b611a64565b500390565b600082611a5f57611a5f611a7a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038116811461053857600080fdfea264697066735822122032e1343ae3cf45cc987315ea3df5115358453bec437a4d8d956c9c7ac8dc31c064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1FB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xBE169E7E GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD73CD992 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x3D8 JUMPI DUP1 PUSH4 0xE8F8E1C1 EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0xFFC79065 EQ PUSH2 0x3FB JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xC2939D97 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xCA5DDCF3 EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x3C5 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xB6E45EE0 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x3A1 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0x97E873E9 EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x391 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x423B3B7A GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x5B16D9B2 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x5B16D9B2 EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x350 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x423B3B7A EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x42F6487A EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x321 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x1B867C63 GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3FB80F51 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x2A5 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x165D35E1 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x24E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x1876 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x224 PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH2 0x256 PUSH2 0x427 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4A8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x275 PUSH2 0x500 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH2 0x240 PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x2B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH2 0x530 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x2C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x1849 JUMP JUMPDEST PUSH2 0x240 PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x53B JUMP JUMPDEST PUSH2 0x224 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x585 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x5D2 JUMP JUMPDEST PUSH2 0x224 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x422 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x224 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x38C CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x5E4 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x761 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x769 JUMP JUMPDEST PUSH2 0x240 PUSH1 0xF SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x15EE JUMP JUMPDEST PUSH2 0x7B6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH2 0x821 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x86B JUMP JUMPDEST PUSH2 0x224 PUSH2 0x874 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x888 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x409 CALLDATASIZE PUSH1 0x4 PUSH2 0x16EF JUMP JUMPDEST PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x422 PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x484 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x422 SWAP2 SWAP1 PUSH2 0x16D0 JUMP JUMPDEST PUSH2 0x4BD PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4FE PUSH2 0xB0B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x52A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x538 PUSH2 0xB48 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x550 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x580 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE JUMP JUMPDEST PUSH2 0x59A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE PUSH2 0xBA2 JUMP JUMPDEST PUSH2 0x5DA PUSH2 0xB48 JUMP JUMPDEST PUSH2 0x4FE PUSH1 0x0 PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP6 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x65D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD DUP10 SWAP1 MSTORE SWAP1 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x6EE DUP3 DUP3 PUSH2 0xC1C JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP2 MLOAD DUP5 DUP2 MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xD3D5B0141A5D81AC8C98139F284F1B25FB3061BC81857F74DE9A702E38291634 SWAP1 PUSH1 0xC0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x505 JUMP JUMPDEST PUSH2 0x77E PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE PUSH2 0xC84 JUMP JUMPDEST PUSH2 0x7BE PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x7E9 JUMPI PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x814 JUMPI PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0xF SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x10 SSTORE POP POP JUMP JUMPDEST PUSH2 0x836 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x866 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x505 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x422 PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x890 PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x8F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH2 0x538 DUP2 PUSH2 0xBCC JUMP JUMPDEST PUSH2 0x90F PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x96F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4F52412D3030313A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x0 PUSH2 0x985 PUSH1 0xF SLOAD ADDRESS PUSH4 0x97E873E9 PUSH1 0xE0 SHL PUSH2 0xCAE JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP1 PUSH2 0x997 DUP6 DUP8 ADD DUP8 PUSH2 0x166B JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x9D3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x1C1C9BDA9958DD1259 PUSH1 0xBA SHL DUP2 MSTORE POP PUSH2 0x9CB DUP6 PUSH2 0xCD5 JUMP JUMPDEST DUP7 SWAP2 SWAP1 PUSH2 0xD8D JUMP JUMPDEST PUSH2 0x9FD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x1D585A5259 PUSH1 0xDA SHL DUP2 MSTORE POP PUSH2 0x9CB DUP5 PUSH2 0xCD5 JUMP JUMPDEST PUSH2 0xA28 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x18DC9BDC1259 PUSH1 0xD2 SHL DUP2 MSTORE POP PUSH2 0x9CB DUP4 PUSH2 0xCD5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA36 DUP6 PUSH1 0x10 SLOAD PUSH2 0xDB0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP12 SWAP1 SSTORE DUP2 MLOAD DUP12 DUP2 MSTORE SWAP1 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x9EE0CE04D9140F363CD342B605F7AAAE55E9C0D84A975C417E55CE074B49332 SWAP2 ADD PUSH2 0x74F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xACB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xADF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB03 SWAP2 SWAP1 PUSH2 0x15D2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x33A6EC8D94D03F2C0A2DA3411552B0777613E4220ABD6CE5679DECB30AF09B23 PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x4FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH32 0xDB7E2F5405EA10CAD5583CE31A1BDE125FF32946EDB3CE5972D70EA3F2C214E6 PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7204A9A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE409534A SWAP1 PUSH2 0xC4E SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x18C1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC7C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x1855FCCE92CB172C06FD991F1B19774237130B37CF6806BC01AA4E3A0C359E2D PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCB6 PUSH2 0x157B JUMP JUMPDEST PUSH2 0xCBE PUSH2 0x157B JUMP JUMPDEST PUSH2 0xCCA DUP2 DUP7 DUP7 DUP7 PUSH2 0xDD3 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCF4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH2 0xD11 DUP4 PUSH2 0xE19 JUMP JUMPDEST DUP1 DUP3 MSTORE PUSH1 0x0 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD3D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD67 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD85 DUP2 DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x0 ADD MLOAD PUSH2 0xF03 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xD9C SWAP1 DUP4 PUSH2 0xF7D JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xDAB SWAP1 DUP3 PUSH2 0xF7D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 PUSH2 0xDCA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0xF94 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDDB PUSH2 0x157B JUMP JUMPDEST PUSH2 0xDEB DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x1027 JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xE2B JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0xB06 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH2 0xE60 JUMPI PUSH2 0xE4D PUSH1 0x10 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xE5D PUSH1 0x1 PUSH1 0x80 SHL DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH2 0xE92 JUMPI PUSH2 0xE7A PUSH1 0x8 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xE8F PUSH9 0x10000000000000000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH4 0xFFFFFFFF DUP4 AND PUSH2 0xEBC JUMPI PUSH2 0xEA8 PUSH1 0x4 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xEB9 PUSH5 0x100000000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH2 0xEE2 JUMPI PUSH2 0xED0 PUSH1 0x2 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xEDF PUSH3 0x10000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH1 0xFF DUP4 AND PUSH2 0xEF8 JUMPI PUSH2 0xEF5 PUSH1 0x1 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0xCCE DUP2 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH1 0x20 DUP2 LT PUSH2 0xF3B JUMPI DUP2 MLOAD DUP4 MSTORE PUSH2 0xF1A PUSH1 0x20 DUP5 PUSH2 0x18DA JUMP JUMPDEST SWAP3 POP PUSH2 0xF27 PUSH1 0x20 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP PUSH2 0xF34 PUSH1 0x20 DUP3 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP PUSH2 0xF03 JUMP JUMPDEST PUSH1 0x0 NOT DUP2 ISZERO PUSH2 0xF6A JUMPI PUSH1 0x1 PUSH2 0xF51 DUP4 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH2 0xF5D SWAP1 PUSH2 0x100 PUSH2 0x194C JUMP JUMPDEST PUSH2 0xF67 SWAP2 SWAP1 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 MLOAD DUP4 MLOAD DUP4 AND SWAP3 NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 MSTORE POP JUMP JUMPDEST PUSH2 0xF8A DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x108C JUMP JUMPDEST PUSH2 0xDAB DUP3 DUP3 PUSH2 0x11A7 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x0 SWAP1 PUSH2 0xFA5 DUP2 PUSH1 0x1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0xC SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0xFDD SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x17B1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0x101D DUP7 DUP4 DUP7 DUP5 PUSH2 0x11CE JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x1047 PUSH1 0x20 DUP4 PUSH2 0x1A50 JUMP JUMPDEST ISZERO PUSH2 0x106F JUMPI PUSH2 0x1057 PUSH1 0x20 DUP4 PUSH2 0x1A50 JUMP JUMPDEST PUSH2 0x1062 SWAP1 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH2 0x106C SWAP1 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x10B7 JUMPI PUSH2 0x10B1 DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0xDAB JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x10F5 JUMPI PUSH2 0x10DE DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x1134 JUMPI PUSH2 0x111D DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0x1360 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x1175 JUMPI PUSH2 0x115E DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x118A DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x11A1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0x1360 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xDCA DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0x1386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0x1291 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1819 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12E3 SWAP2 SWAP1 PUSH2 0x1633 JUMP JUMPDEST PUSH2 0xE11 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xDCA DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x1470 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xE11 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x14CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0x13A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x13B8 DUP4 DUP7 PUSH2 0x18DA JUMP JUMPDEST GT ISZERO PUSH2 0x13EB JUMPI PUSH2 0x13EB DUP6 PUSH2 0x13DB DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0x13D6 SWAP2 SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH2 0x154D JUMP JUMPDEST PUSH2 0x13E6 SWAP1 PUSH1 0x2 PUSH2 0x1A1A JUMP JUMPDEST PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0x140A JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0x144A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0x1429 PUSH1 0x20 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1436 PUSH1 0x20 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0x1443 PUSH1 0x20 DUP6 PUSH2 0x1A39 JUMP JUMPDEST SWAP4 POP PUSH2 0x1412 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x14A5 JUMPI PUSH2 0x14A5 DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0x13E6 SWAP2 SWAP1 PUSH2 0x1A1A JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 EQ ISZERO PUSH2 0x14C2 JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x14F0 DUP6 DUP5 PUSH2 0x18DA JUMP JUMPDEST GT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1504 DUP6 PUSH2 0x13DB DUP7 DUP6 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1514 DUP5 PUSH2 0x100 PUSH2 0x194C JUMP JUMPDEST PUSH2 0x151E SWAP2 SWAP1 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0x1542 JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x155E JUMPI POP DUP2 PUSH2 0xDCD JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x1570 DUP4 DUP4 PUSH2 0x1027 JUMP JUMPDEST POP PUSH2 0x11A1 DUP4 DUP3 PUSH2 0x11A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15C7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCCE DUP2 PUSH2 0x1AA6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15E3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCCE DUP2 PUSH2 0x1AA6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1603 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x160E DUP2 PUSH2 0x1AA6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x161E DUP2 PUSH2 0x1AA6 JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1644 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xCCE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1664 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x167F JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x16AD JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP4 CALLDATALOAD SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16E1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0xCCE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1703 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1721 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1734 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1742 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1753 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x178B JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x176F JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x179C JUMPI DUP3 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x180A DUP4 DUP3 ADD DUP6 PUSH2 0x1766 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1840 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xDCA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x1870 JUMPI PUSH2 0x1870 PUSH2 0x1A90 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x1870 JUMPI PUSH2 0x1870 PUSH2 0x1A90 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP3 MSTORE PUSH1 0x40 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xE11 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x18ED JUMPI PUSH2 0x18ED PUSH2 0x1A64 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1901 JUMPI PUSH2 0x1901 PUSH2 0x1A7A JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP1 DUP7 GT PUSH2 0x1918 JUMPI POP PUSH2 0x1943 JUMP JUMPDEST DUP2 DUP8 DIV DUP3 GT ISZERO PUSH2 0x192A JUMPI PUSH2 0x192A PUSH2 0x1A64 JUMP JUMPDEST DUP1 DUP7 AND ISZERO PUSH2 0x1937 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP5 SWAP1 SWAP5 SHR SWAP4 DUP1 MUL PUSH2 0x1909 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDCA PUSH1 0x0 NOT DUP5 DUP5 PUSH1 0x0 DUP3 PUSH2 0x1965 JUMPI POP PUSH1 0x1 PUSH2 0xCCE JUMP JUMPDEST DUP2 PUSH2 0x1972 JUMPI POP PUSH1 0x0 PUSH2 0xCCE JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1988 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1992 JUMPI PUSH2 0x19BF JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0xCCE JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x19A3 JUMPI PUSH2 0x19A3 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x1 DUP5 SHL SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x19B9 JUMPI PUSH2 0x19B9 PUSH2 0x1A64 JUMP JUMPDEST POP PUSH2 0xCCE JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x19F2 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x19ED JUMPI PUSH2 0x19ED PUSH2 0x1A64 JUMP JUMPDEST PUSH2 0xCCE JUMP JUMPDEST PUSH2 0x19FF DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x1906 JUMP JUMPDEST DUP1 DUP7 DIV DUP3 GT ISZERO PUSH2 0x1A11 JUMPI PUSH2 0x1A11 PUSH2 0x1A64 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1A34 JUMPI PUSH2 0x1A34 PUSH2 0x1A64 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1A4B JUMPI PUSH2 0x1A4B PUSH2 0x1A64 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A5F JUMPI PUSH2 0x1A5F PUSH2 0x1A7A JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x538 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0xE1 CALLVALUE GASPRICE 0xE3 0xCF GASLIMIT 0xCC SWAP9 PUSH20 0x15EA3DF5115358453BEC437A4D8D956C9C7AC8DC BALANCE 0xC0 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"208:3907:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:100:12;2477:14;;;;2394:100;;;;;;:::i;:::-;;;;;;;;3863:124:66;;;:::i;:::-;;;-1:-1:-1;;;;;4558:32:103;;;4540:51;;4528:2;4513:18;3863:124:66;4495:102:103;2220:83:12;2286:14;;2220:83;;;6156:25:103;;;6144:2;6129:18;2220:83:12;6111:76:103;2500:136:12;;;:::i;:::-;;;;;;;:::i;3279:78::-;;;:::i;:::-;;2973:120;;;:::i;:::-;;;5983:14:103;;5976:22;5958:41;;5946:2;5931:18;2973:120:12;5913:92:103;342:94:66;;;;;;:::i;:::-;;;;;;;;;;;;;;2949:214;;;;;;:::i;:::-;;:::i;3220:414::-;;;;;;:::i;:::-;3491:136;;;;;;6451:25:103;;;;6492:18;;;6485:34;;;;3442:26:66;6535:18:103;;6528:34;;;;6578:18;;;6571:34;6621:19;;;;6614:35;;;;3491:136:66;;;;;;;;;;6423:19:103;;;;3491:136:66;;;3220:414;;;;;;;;:::i;468:22::-;;;;;;3689:77:12;;;:::i;3101:86::-;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;3750:107:66;3843:7;;3750:107;;2309:79:12;2373:12;;2309:79;;3195:78;;;:::i;1831:101:41:-;;;:::i;2642:77:12:-;;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;2389:554:66;;;;;;:::i;:::-;;:::i;2851:116:12:-;;;:::i;3640:104:66:-;3732:5;;3640:104;;3363:77:12;;;:::i;442:20:66:-;;;;;;1143:436;;;;;;:::i;:::-;;:::i;2131:81:12:-;;;;;;:::i;:::-;;:::i;2727:118::-;;;:::i;3993:120:66:-;;;:::i;2081:198:41:-;;;;;;:::i;:::-;;:::i;1585:798:66:-;;;;;;:::i;:::-;;:::i;3863:124::-;3914:24;3957:23;9184:6:1;;-1:-1:-1;;;;;9184:6:1;9098:98;;3957:23:66;3950:30;;3863:124;:::o;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;6156:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;6129:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3279:78::-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;;;;;;;;;3339:15:::1;:13;:15::i;:::-;3279:78::o:0;2973:120::-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;2949:214:66:-;1094:13:41;:11;:13::i;:::-;2949:214:66;:::o;3689:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3748:15:::1;3279:78:::0;3195;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;1831:101:41:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;2389:554:66:-:0;11663:28:1;;;;:17;:28;;;;;;;;-1:-1:-1;;;;;11663:28:1;11649:10;:42;11641:95;;;;-1:-1:-1;;;11641:95:1;;10099:2:103;11641:95:1;;;10081:21:103;10138:2;10118:18;;;10111:30;10177:34;10157:18;;;10150:62;-1:-1:-1;;;10228:18:103;;;10221:38;10276:19;;11641:95:1;10071:230:103;11641:95:1;11749:28;;;;:17;:28;;;;;;11742:35;;-1:-1:-1;;;;;;11742:35:1;;;11788:29;11767:9;;11788:29;;;2625:18:66::1;2646:31:::0;;;:11:::1;:31;::::0;;;;;;;;2708:42;;;;::::1;6891:25:103::0;;;6932:18;;;6925:34;;;6975:18;;;6968:34;;;7018:18;;;7011:34;;;2646:31:66;2625:18;6863:19:103;;2708:42:66::1;;;;;;;;;;;;2687:63;;2768:26;2777:10;2789:4;2768:8;:26::i;:::-;2812:31;::::0;;;:11:::1;:31;::::0;;;;;;;2805:38;;;;2858:78;;11028:25:103;;;11069:18;;;11062:34;;;11112:18;;;11105:34;;;11170:2;11155:18;;11148:34;;;11213:3;11198:19;;11191:35;;;11257:3;11242:19;;11235:35;;;2858:78:66::1;::::0;11015:3:103;11000:19;2858:78:66::1;;;;;;;;11823:1:1;;2389:554:66::0;;;;;;:::o;2851:116:12:-;2900:4;;2915:49;;3363:77;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3422:15:::1;:13;:15::i;1143:436:66:-:0;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;;;1352:29:66;::::1;::::0;1348:74:::1;;8688:6:1::0;:40;;-1:-1:-1;;;;;;8688:40:1;-1:-1:-1;;;;;8688:40:1;;;;;1385:34:66::1;-1:-1:-1::0;;;;;1435:32:66;::::1;::::0;1431:81:::1;;8457:8:1::0;:43;;-1:-1:-1;;;;;;8457:43:1;-1:-1:-1;;;;;8457:43:1;;;;;1471:38:66::1;1530:5;:14:::0;;;;1554:7:::1;:18:::0;-1:-1:-1;;1143:436:66:o;2131:81:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;2727:118::-;2777:4;2810:32;2792:50;;3993:120:66;4047:16;4082:24;9412:8:1;;-1:-1:-1;;;;;9412:8:1;9325:101;;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;8571:2:103;2161:73:41::1;::::0;::::1;8553:21:103::0;8610:2;8590:18;;;8583:30;8649:34;8629:18;;;8622:62;-1:-1:-1;;;8700:18:103;;;8693:36;8746:19;;2161:73:41::1;8543:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;1585:798:66:-:0;375:28:17;-1:-1:-1;;;375:19:17;:28::i;:::-;-1:-1:-1;;;;;359:44:17;719:10:59;-1:-1:-1;;;;;359:44:17;;336:122;;;;-1:-1:-1;;;336:122:17;;9743:2:103;336:122:17;;;9725:21:103;9782:2;9762:18;;;9755:30;9821:29;9801:18;;;9794:57;9868:18;;336:122:17;9715:177:103;336:122:17;1704:33:66::1;1740:112;1775:5;;1802:4;1821:21;;;1740;:112::i;:::-;1704:148:::0;-1:-1:-1;1877:17:66::1;::::0;;1964:46:::1;::::0;;::::1;1975:5:::0;1964:46:::1;:::i;:::-;1863:147;;;;;;2021:50;;;;;;;;;;;;;;-1:-1:-1::0;;;2021:50:66::1;;::::0;2047:23:::1;:9;:21;:23::i;:::-;2021:8:::0;;:50;:12:::1;:50::i;:::-;2081:42;;;;;;;;;;;;;;-1:-1:-1::0;;;2081:42:66::1;;::::0;2103:19:::1;:5;:17;:19::i;2081:42::-;2133:44;;;;;;;;;;;;;;-1:-1:-1::0;;;2133:44:66::1;;::::0;2156:20:::1;:6;:18;:20::i;2133:44::-;2188:26;2217:39;2238:8;2248:7;;2217:20;:39::i;:::-;2267:31;::::0;;;:11:::1;:31;::::0;;;;;;;;:46;;;2328:48;;10662:25:103;;;10703:18;;;10696:34;;;2267:31:66;;-1:-1:-1;2328:48:66::1;::::0;10635:18:103;2328:48:66::1;10617:119:103::0;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;6156:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;6129:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;;4875:145;;;;:::o;810:95:17:-;870:26;888:7;2373:12:12;;2309:79;;888:7:17;870:26;;6156:25:103;;;6144:2;6129:18;870:26:17;;;;;;;810:95::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;9382:2:103;1414:68:41;;;9364:21:103;;;9401:18;;;9394:30;9460:34;9440:18;;;9433:62;9512:18;;1414:68:41;9354:182:103;913:79:17;963:26;981:7;2373:12:12;;2309:79;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;1085:123:17:-;1161:14;;:39;;-1:-1:-1;;;1161:39:17;;-1:-1:-1;;;;;1161:14:17;;;;:22;;:39;;1184:9;;1195:4;;1161:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:123;;:::o;998:79::-;1048:26;1066:7;2373:12:12;;2309:79;;1850:283:1;1992:24;;:::i;:::-;2024:28;;:::i;:::-;2065:63;:3;2080:6;2088:12;2102:25;2065:14;:63::i;:::-;2058:70;;;1850:283;;;;;;:::o;3973:506:71:-;4031:13;4057:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;4057:16:71;4125:4;4119:11;4166:4;4161:3;4157:14;4151:4;4144:28;4198:4;4193:3;4186:17;4240:3;4233:4;4228:3;4224:14;4217:27;;4276:9;4280:4;4276:3;:9::i;:::-;4265:20;;;:8;;4318:20;;;;;;-1:-1:-1;;;4318:20:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4318:20:71;;4298:40;;4349:11;4401:2;4396:3;4392:12;4382:22;;4416:34;4423:6;4431:3;:8;;;4441:3;:8;;;4416:6;:34::i;:::-;-1:-1:-1;4468:3:71;3973:506;-1:-1:-1;;;3973:506:71:o;1951:175:0:-;2061:8;;;;:26;;2083:3;2061:21;:26::i;:::-;2093:8;;;;:28;;2115:5;2093:21;:28::i;:::-;1951:175;;;:::o;2992:177:1:-;3140:8;;3087:7;;3109:55;;-1:-1:-1;;;;;3140:8:1;3151:3;3156:7;3109:22;:55::i;:::-;3102:62;;2992:177;;;;;:::o;987:351:0:-;1129:24;;:::i;:::-;1161:49;1182:4;:8;;;361:3;1161:20;:49::i;:::-;-1:-1:-1;;1216:15:0;;;-1:-1:-1;;;;;1237:35:0;;:20;;;:35;-1:-1:-1;;;;;;1278:38:0;;:23;;;:38;1216:4;987:351;;;;;;;:::o;3075:830:71:-;3125:4;;3165:9;3161:36;;3196:1;3189:8;;;;;3161:36;3225:17;3212:30;;3208:156;;3264:9;3271:2;3264:9;;:::i;:::-;;-1:-1:-1;3303:48:71;-1:-1:-1;;;3308:4:71;3303:48;:::i;:::-;3295:57;-1:-1:-1;3208:156:71;3391:16;3378:29;;3374:138;;3429:8;3436:1;3429:8;;:::i;:::-;;-1:-1:-1;3467:32:71;3480:19;3472:4;3467:32;:::i;:::-;3459:41;-1:-1:-1;3374:138:71;3539:16;3526:29;;3522:130;;3577:8;3584:1;3577:8;;:::i;:::-;;-1:-1:-1;3615:24:71;3628:11;3620:4;3615:24;:::i;:::-;3607:33;-1:-1:-1;3522:130:71;3679:16;3666:29;;3662:126;;3717:8;3724:1;3717:8;;:::i;:::-;;-1:-1:-1;3755:20:71;3768:7;3760:4;3755:20;:::i;:::-;3747:29;-1:-1:-1;3662:126:71;3815:15;3802:28;;3798:74;;3852:8;3859:1;3852:8;;:::i;:::-;;;3798:74;3889:8;3894:3;3889:2;:8;:::i;2231:641::-;2368:2;2360:4;:10;2354:172;;2440:10;;2427:24;;2480:10;2488:2;2434:4;2480:10;:::i;:::-;;-1:-1:-1;2505:9:71;2512:2;2505:9;;:::i;:::-;;-1:-1:-1;2372:10:71;2380:2;2372:10;;:::i;:::-;;;2354:172;;;-1:-1:-1;;2612:8:71;;2608:70;;2665:1;2652:9;2657:4;2652:2;:9;:::i;:::-;2644:18;;:3;:18;:::i;:::-;:22;;;;:::i;:::-;2637:29;;2608:70;2731:10;;2787:11;;2783:22;;2743:9;;2727:26;2832:21;;;;2819:35;;;-1:-1:-1;2697:168:71:o;2777:204:9:-;2875:71;2894:3;383:1;2931:5;2925:19;2875:18;:71::i;:::-;2952:24;:3;2969:5;2952:10;:24::i;3687:756:1:-;3864:14;;3823:17;;3901:9;3864:14;3909:1;3901:9;:::i;:::-;3884:14;:26;4245:6;;4280:22;;;;;4350:7;;;;:11;3946:421;;3916:27;;-1:-1:-1;;;3976:48:1;3946:421;;3916:27;;;;4245:6;4267:4;;4280:22;4310:5;;837:1;;3946:421;;;:::i;:::-;;;;-1:-1:-1;;3946:421:1;;;;;;;;;;;;;;-1:-1:-1;;;;;3946:421:1;-1:-1:-1;;;;;;3946:421:1;;;;;;;;;;;-1:-1:-1;4380:58:1;4392:13;4407:5;4414:7;3946:421;4380:11;:58::i;:::-;4373:65;3687:756;-1:-1:-1;;;;;;3687:756:1:o;1001:399:8:-;-1:-1:-1;;;;;;;;;;;;;;;;;1100:13:8;1111:2;1100:8;:13;:::i;:::-;:18;1096:71;;1146:13;1157:2;1146:8;:13;:::i;:::-;1140:20;;:2;:20;:::i;:::-;1128:32;;;;:::i;:::-;;;1096:71;-1:-1:-1;1214:12:8;;;;:23;;;1277:4;1271:11;;1289:16;;;-1:-1:-1;1312:14:8;;1354:18;;;1346:27;1333:41;;1214:12;1001:399::o;682:625:9:-;803:2;794:5;:11;;;791:512;;815:44;:3;837:20;847:1;838:10;;;837:20;;;815:15;:44::i;:::-;;791:512;;;885:4;876:5;:13;;;872:431;;899:41;:3;936:2;922:10;931:1;922:10;;;;921:17;899:15;:41::i;:::-;-1:-1:-1;948:23:9;:3;:23;;;969:1;948:13;:23::i;872:431::-;997:6;988:5;:15;;;984:319;;1013:41;:3;1050:2;1036:10;1045:1;1036:10;;;;1035:17;1013:15;:41::i;:::-;-1:-1:-1;1062:23:9;:3;:23;;;1083:1;1062:13;:23::i;984:319::-;1111:10;1102:5;:19;;;1098:205;;1131:41;:3;1168:2;1154:10;1163:1;1154:10;;;;1153:17;1131:15;:41::i;:::-;-1:-1:-1;1180:23:9;:3;:23;;;1201:1;1180:13;:23::i;1098:205::-;1224:41;:3;1261:2;1247:10;1256:1;1247:10;;;;1246:17;1224:15;:41::i;:::-;-1:-1:-1;1273:23:9;:3;:23;;;1294:1;1273:13;:23::i;:::-;;682:625;;;:::o;4692:155:8:-;-1:-1:-1;;;;;;;;;;;;;;;;;4797:45:8;4803:3;4808;:7;;;:14;4824:4;4830;:11;4797:5;:45::i;6629:430:1:-;6818:29;;-1:-1:-1;;6835:4:1;4272:2:103;4268:15;4264:53;6818:29:1;;;4252:66:103;4334:12;;;4327:28;;;6771:17:1;;4371:12:103;;6818:29:1;;;;;;-1:-1:-1;;6818:29:1;;;;;;6808:40;;6818:29;6808:40;;;;6854:28;;;;:17;:28;;;;;;:44;;-1:-1:-1;;;;;;6854:44:1;-1:-1:-1;;;;;6854:44:1;;;;;6808:40;;-1:-1:-1;6808:40:1;;6909:29;;6854:28;6909:29;6952:6;;:62;;-1:-1:-1;;;6952:62:1;;-1:-1:-1;;;;;6952:6:1;;;;:22;;:62;;6975:13;;6990:7;;6999:14;;6952:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6944:110;;;;-1:-1:-1;;;6944:110:1;;8978:2:103;6944:110:1;;;8960:21:103;9017:2;8997:18;;;8990:30;9056:34;9036:18;;;9029:62;-1:-1:-1;;;9107:18:103;;;9100:33;9150:19;;6944:110:1;8950:225:103;6040:145:8;-1:-1:-1;;;;;;;;;;;;;;;;;6143:37:8;6154:3;6159;:7;;;:14;6175:4;6143:10;:37::i;9894:177::-;-1:-1:-1;;;;;;;;;;;;;;;;;10026:40:8;10035:3;10040;:7;;;:14;10056:4;10062:3;10026:8;:40::i;2745:1210::-;-1:-1:-1;;;;;;;;;;;;;;;;;2903:4:8;:11;2896:3;:18;;2888:27;;;;;;2938:12;;;;2926:9;2932:3;2926;:9;:::i;:::-;:24;2922:90;;;2960:45;2967:3;2972:28;2976:3;:12;;;2996:3;2990;:9;;;;:::i;:::-;2972:3;:28::i;:::-;:32;;3003:1;2972:32;:::i;:::-;2960:6;:45::i;:::-;3018:12;3036:11;3133:3;3127:10;3204:6;3198:13;3320:3;3315:2;3307:6;3303:15;3299:25;3291:33;;3404:6;3398:3;3393;3389:13;3386:25;3383:2;;;3446:3;3441;3437:13;3429:6;3422:29;3383:2;-1:-1:-1;;;3483:2:8;3473:13;;3544:129;3558:2;3551:3;:9;3544:129;;3613:10;;3600:24;;3639:10;3647:2;3607:4;3639:10;:::i;:::-;;-1:-1:-1;3657:9:8;3664:2;3657:9;;:::i;:::-;;-1:-1:-1;3562:9:8;3569:2;3562:9;;:::i;:::-;;;3544:129;;;3807:10;3858:11;;-1:-1:-1;;3747:2:8;:8;;;3741:3;:15;3740:21;3854:22;;;3819:9;;3803:26;;;;3898:21;3885:35;;-1:-1:-1;3947:3:8;2745:1210;;;;;;:::o;5148:639::-;-1:-1:-1;;;;;;;;;;;;;;;;;5283:3:8;:12;;;5276:3;:19;5272:69;;5305:29;5312:3;5317;:12;;;5332:1;5317:16;;;;:::i;5305:29::-;5427:3;5421:10;5498:6;5492:13;5610:2;5604:3;5596:6;5592:16;5588:25;5634:4;5628;5620:19;;5705:6;5700:3;5697:15;5694:2;;;5750:1;5742:6;5738:14;5730:6;5723:30;5694:2;-1:-1:-1;5779:3:8;;5148:639;-1:-1:-1;;;;5148:639:8:o;8974:675::-;-1:-1:-1;;;;;;;;;;;;;;;;;9130:12:8;;;;9118:9;9124:3;9118;:9;:::i;:::-;:24;9114:73;;;9152:28;9159:3;9165:9;9171:3;9165;:9;:::i;9152:28::-;9193:12;9221:1;9209:8;9214:3;9209;:8;:::i;:::-;9208:14;;;;:::i;:::-;9193:29;;9308:3;9302:10;9423:3;9417;9409:6;9405:16;9401:26;9479:4;9471;9467:9;9460:4;9454:11;9450:27;9447:37;9441:4;9434:51;;9567:6;9561:13;9555:3;9550;9546:13;9543:32;9540:2;;;9610:3;9605;9601:13;9593:6;9586:29;9540:2;-1:-1:-1;9641:3:8;;8974:675;-1:-1:-1;;;;;8974:675:8:o;1961:124::-;2018:7;2041:1;2037;:5;2033:34;;;-1:-1:-1;2059:1:8;2052:8;;2033:34;-1:-1:-1;2079:1:8;1961:124;-1:-1:-1;1961:124:8:o;1801:156::-;1895:7;;1908:19;1895:3;1918:8;1908:4;:19::i;:::-;;1933;1940:3;1945:6;1933;:19::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:535::-;;;;;705:3;693:9;684:7;680:23;676:33;673:2;;;727:6;719;712:22;673:2;771:9;758:23;790:31;815:5;790:31;:::i;:::-;840:5;-1:-1:-1;897:2:103;882:18;;869:32;910:33;869:32;910:33;:::i;:::-;663:414;;962:7;;-1:-1:-1;;;;1016:2:103;1001:18;;988:32;;1067:2;1052:18;1039:32;;663:414::o;1082:297::-;;1202:2;1190:9;1181:7;1177:23;1173:32;1170:2;;;1223:6;1215;1208:22;1170:2;1260:9;1254:16;1313:5;1306:13;1299:21;1292:5;1289:32;1279:2;;1340:6;1332;1325:22;1384:190;;1496:2;1484:9;1475:7;1471:23;1467:32;1464:2;;;1517:6;1509;1502:22;1464:2;-1:-1:-1;1545:23:103;;1454:120;-1:-1:-1;1454:120:103:o;1579:326::-;;;;1725:2;1713:9;1704:7;1700:23;1696:32;1693:2;;;1746:6;1738;1731:22;1693:2;-1:-1:-1;;1774:23:103;;;1844:2;1829:18;;1816:32;;-1:-1:-1;1895:2:103;1880:18;;;1867:32;;1683:222;-1:-1:-1;1683:222:103:o;1910:464::-;;;;;;2090:3;2078:9;2069:7;2065:23;2061:33;2058:2;;;2112:6;2104;2097:22;2058:2;-1:-1:-1;;2140:23:103;;;2210:2;2195:18;;2182:32;;-1:-1:-1;2261:2:103;2246:18;;2233:32;;2312:2;2297:18;;2284:32;;-1:-1:-1;2363:3:103;2348:19;2335:33;;-1:-1:-1;2048:326:103;-1:-1:-1;2048:326:103:o;2379:299::-;;2521:2;2509:9;2500:7;2496:23;2492:32;2489:2;;;2542:6;2534;2527:22;2489:2;2579:9;2573:16;2618:1;2611:5;2608:12;2598:2;;2639:6;2631;2624:22;2878:709;;;;3026:2;3014:9;3005:7;3001:23;2997:32;2994:2;;;3047:6;3039;3032:22;2994:2;3088:9;3075:23;3065:33;;3149:2;3138:9;3134:18;3121:32;3172:18;3213:2;3205:6;3202:14;3199:2;;;3234:6;3226;3219:22;3199:2;3277:6;3266:9;3262:22;3252:32;;3322:7;3315:4;3311:2;3307:13;3303:27;3293:2;;3349:6;3341;3334:22;3293:2;3394;3381:16;3420:2;3412:6;3409:14;3406:2;;;3441:6;3433;3426:22;3406:2;3491:7;3486:2;3477:6;3473:2;3469:15;3465:24;3462:37;3459:2;;;3517:6;3509;3502:22;3459:2;3553;3549;3545:11;3535:21;;3575:6;3565:16;;;;;2984:603;;;;;:::o;3592:475::-;;3671:5;3665:12;3698:6;3693:3;3686:19;3723:3;3735:162;3749:6;3746:1;3743:13;3735:162;;;3811:4;3867:13;;;3863:22;;3857:29;3839:11;;;3835:20;;3828:59;3764:12;3735:162;;;3915:6;3912:1;3909:13;3906:2;;;3981:3;3974:4;3965:6;3960:3;3956:16;3952:27;3945:40;3906:2;-1:-1:-1;4049:2:103;4028:15;-1:-1:-1;;4024:29:103;4015:39;;;;4056:4;4011:50;;3641:426;-1:-1:-1;;3641:426:103:o;4602:821::-;-1:-1:-1;;;;;5003:15:103;;;4985:34;;5050:2;5035:18;;5028:34;;;5093:2;5078:18;;5071:34;;;5141:15;;5136:2;5121:18;;5114:43;-1:-1:-1;;;;;;5194:33:103;;5188:3;5173:19;;5166:62;4965:3;5244:19;;5237:35;;;5303:3;5288:19;;5281:35;;;4935:3;5210;5332:19;;5325:31;;;4602:821;;5373:44;5398:18;;;5390:6;5373:44;:::i;:::-;5365:52;4915:508;-1:-1:-1;;;;;;;;;;;4915:508:103:o;5428:385::-;;5660:1;5656;5651:3;5647:11;5643:19;5635:6;5631:32;5620:9;5613:51;5700:6;5695:2;5684:9;5680:18;5673:34;5743:2;5738;5727:9;5723:18;5716:30;5763:44;5803:2;5792:9;5788:18;5780:6;5763:44;:::i;:::-;5755:52;5603:210;-1:-1:-1;;;;;5603:210:103:o;7056:217::-;;7203:2;7192:9;7185:21;7223:44;7263:2;7252:9;7248:18;7240:6;7223:44;:::i;7504:250::-;7655:2;7640:18;;7688:1;7677:13;;7667:2;;7694:18;;:::i;:::-;7723:25;;;7622:132;:::o;7759:249::-;7909:2;7894:18;;7942:1;7931:13;;7921:2;;7948:18;;:::i;8013:351::-;8215:2;8197:21;;;8254:2;8234:18;;;8227:30;8293:29;8288:2;8273:18;;8266:57;8355:2;8340:18;;8187:177::o;11281:288::-;;11456:6;11445:9;11438:25;11499:2;11494;11483:9;11479:18;11472:30;11519:44;11559:2;11548:9;11544:18;11536:6;11519:44;:::i;11574:128::-;;11645:1;11641:6;11638:1;11635:13;11632:2;;;11651:18;;:::i;:::-;-1:-1:-1;11687:9:103;;11622:80::o;11707:120::-;;11773:1;11763:2;;11778:18;;:::i;:::-;-1:-1:-1;11812:9:103;;11753:74::o;11832:453::-;11928:6;11951:5;11965:314;12014:1;12051:2;12041:8;12038:16;12028:2;;12058:5;;;12028:2;12099:4;12094:3;12090:14;12084:4;12081:24;12078:2;;;12108:18;;:::i;:::-;12158:2;12148:8;12144:17;12141:2;;;12173:16;;;;12141:2;12252:17;;;;;12212:15;;11965:314;;;11909:376;;;;;;;:::o;12290:139::-;;12379:44;-1:-1:-1;;12406:8:103;12400:4;12434:922;12518:8;12508:2;;-1:-1:-1;12559:1:103;12573:5;;12508:2;12607:4;12597:2;;-1:-1:-1;12644:1:103;12658:5;;12597:2;12689:4;12707:1;12702:59;;;;12775:1;12770:183;;;;12682:271;;12702:59;12732:1;12723:10;;12746:5;;;12770:183;12807:3;12797:8;12794:17;12791:2;;;12814:18;;:::i;:::-;12870:1;12860:8;12856:16;12847:25;;12898:3;12891:5;12888:14;12885:2;;;12905:18;;:::i;:::-;12938:5;;;12682:271;;13037:2;13027:8;13024:16;13018:3;13012:4;13009:13;13005:36;12999:2;12989:8;12986:16;12981:2;12975:4;12972:12;12968:35;12965:77;12962:2;;;-1:-1:-1;13074:19:103;;;13109:14;;;13106:2;;;13126:18;;:::i;:::-;13159:5;;12962:2;13206:42;13244:3;13234:8;13228:4;13225:1;13206:42;:::i;:::-;13281:6;13276:3;13272:16;13263:7;13260:29;13257:2;;;13292:18;;:::i;:::-;13330:20;;12498:858;-1:-1:-1;;;;12498:858:103:o;13361:168::-;;13467:1;13463;13459:6;13455:14;13452:1;13449:21;13444:1;13437:9;13430:17;13426:45;13423:2;;;13474:18;;:::i;:::-;-1:-1:-1;13514:9:103;;13413:116::o;13534:125::-;;13602:1;13599;13596:8;13593:2;;;13607:18;;:::i;:::-;-1:-1:-1;13644:9:103;;13583:76::o;13664:112::-;;13722:1;13712:2;;13727:18;;:::i;:::-;-1:-1:-1;13761:9:103;;13702:74::o;13781:127::-;13842:10;13837:3;13833:20;13830:1;13823:31;13873:4;13870:1;13863:15;13897:4;13894:1;13887:15;13913:127;13974:10;13969:3;13965:20;13962:1;13955:31;14005:4;14002:1;13995:15;14029:4;14026:1;14019:15;14045:127;14106:10;14101:3;14097:20;14094:1;14087:31;14137:4;14134:1;14127:15;14161:4;14158:1;14151:15;14177:131;-1:-1:-1;;;;;14252:31:103;;14242:42;;14232:2;;14298:1;14295;14288:12"},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","cancel(uint256)":"40e58ee5","declineCallback()":"bd1fe5d0","encodeFulfillParameters(bytes32,bytes32,bytes32,bytes32,uint256)":"423b3b7a","fulfill(bytes32,bytes32,bytes32,bytes32,uint256)":"97e873e9","getChainlinkJobId()":"b6e45ee0","getChainlinkOperator()":"e8f8e1c1","getChainlinkPayment()":"5b16d9b2","getChainlinkToken()":"165d35e1","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","gifRequests(bytes32)":"3fb80f51","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","jobId()":"c2939d97","owner()":"8da5cb5b","pauseCallback()":"d73cd992","payment()":"42f6487a","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","request(uint256,bytes)":"ffc79065","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a","updateRequestDetails(address,address,bytes32,uint256)":"ca5ddcf3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_chainLinkToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_chainLinkOperator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_jobId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_payment\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"chainlinkRequestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"}],\"name\":\"LogAyiiFulfill\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"chainlinkRequestId\",\"type\":\"bytes32\"}],\"name\":\"LogAyiiRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"}],\"name\":\"LogOracleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"chainlinkRequestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"}],\"name\":\"encodeFulfillParameters\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parameterData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"chainlinkRequestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"}],\"name\":\"fulfill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainlinkJobId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"chainlinkJobId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainlinkOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainlinkPayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainlinkToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"linkTokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"gifRequests\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"jobId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"payment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gifRequestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"request\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_chainLinkToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_chainLinkOperator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_jobId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_payment\",\"type\":\"uint256\"}],\"name\":\"updateRequestDetails\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/AyiiOracle.sol\":\"AyiiOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]},\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/Oracle.sol\":{\"keccak256\":\"0xc0de2df5ab9dbde82f5bba5e0bd311b4b0e708a90a7541c453581cd369795d66\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cbfa0790664076b9a1f2c983a27f60ce5b66d9357df9dd17c29f1909a0cdfef6\",\"dweb:/ipfs/Qmco66eWdxHYNJZbaMC6oi1Pqq3WptZgtDs469kF2RkUXB\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/examples/AyiiOracle.sol\":{\"keccak256\":\"0x5d60761feedd779110e83ed9f0b5eee2e23b81ce299a2f7ff2ff4fc00df8b919\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d04483b92a4deab997fadd910d8e08f14646a64ea41a647b002b1497fe62da5\",\"dweb:/ipfs/QmZLETTmZTpRnqFs78MrBAsioL2KpkRdSaT3yoTcBsYcKC\"]},\"contracts/examples/strings.sol\":{\"keccak256\":\"0xfd738537e99c62a46a327a80f52679483a45b4fde2f30c7b68c7d975486b7ba5\",\"license\":\"Apache2\",\"urls\":[\"bzz-raw://695820bb46ee3dfaa66b81dd589494bb336aea479ec8accb62cff77b2f4c351c\",\"dweb:/ipfs/Qma9vkriFdLmcpwm8kPYQqLPnemKd2MeVsSCggvp2nzWUf\"]}},\"version\":1}"}},"contracts/examples/AyiiProduct.sol":{"AyiiProduct":{"abi":[{"inputs":[{"internalType":"bytes32","name":"productName","type":"bytes32"},{"internalType":"address","name":"registry","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"oracleId","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"insurer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payoutAmount","type":"uint256"}],"name":"LogAyiiClaimCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"payoutAmount","type":"uint256"}],"name":"LogAyiiPayoutCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"policyHolder","type":"address"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogAyiiPolicyApplicationCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"policyHolder","type":"address"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogAyiiPolicyCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"LogAyiiPolicyProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"trigger","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"exit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tsi","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"aph","type":"uint256"}],"name":"LogAyiiRiskDataAfterAdjustment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"trigger","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"exit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tsi","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"aph","type":"uint256"}],"name":"LogAyiiRiskDataBeforeAdjustment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"productId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"cropId","type":"bytes32"}],"name":"LogAyiiRiskDataCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"aaay","type":"uint256"}],"name":"LogAyiiRiskDataReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"LogAyiiRiskDataRequestCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"projectId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"cropId","type":"bytes32"}],"name":"LogAyiiRiskDataRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"policies","type":"uint256"}],"name":"LogAyiiRiskProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"productAddress","type":"address"}],"name":"LogProductCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"callSuccess","type":"bool"},{"indexed":false,"internalType":"uint256","name":"returnDataLength","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"LogTransferHelperCallFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tokenIsContract","type":"bool"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"LogTransferHelperInputValidation1Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allowance","type":"uint256"}],"name":"LogTransferHelperInputValidation2Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"AAAY_MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AAAY_MIN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INSURER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERCENTAGE_MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POLICY_FLOW","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISK_APH_MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISK_EXIT_MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISK_TSI_AT_EXIT_MIN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERSION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"},{"internalType":"uint256","name":"trigger","type":"uint256"},{"internalType":"uint256","name":"exit","type":"uint256"},{"internalType":"uint256","name":"tsi","type":"uint256"},{"internalType":"uint256","name":"aph","type":"uint256"}],"name":"adjustRisk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applications","outputs":[{"internalType":"uint256","name":"applicationCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"policyHolder","type":"address"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"sumInsured","type":"uint256"},{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"name":"applyForPolicy","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"payoutPercentage","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"calculatePayout","outputs":[{"internalType":"uint256","name":"payoutAmount","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tsi","type":"uint256"},{"internalType":"uint256","name":"trigger","type":"uint256"},{"internalType":"uint256","name":"exit","type":"uint256"},{"internalType":"uint256","name":"aph","type":"uint256"},{"internalType":"uint256","name":"aaay","type":"uint256"}],"name":"calculatePayoutPercentage","outputs":[{"internalType":"uint256","name":"payoutPercentage","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"netPremium","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"netPremium","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"projectId","type":"bytes32"},{"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"internalType":"bytes32","name":"cropId","type":"bytes32"},{"internalType":"uint256","name":"trigger","type":"uint256"},{"internalType":"uint256","name":"exit","type":"uint256"},{"internalType":"uint256","name":"tsi","type":"uint256"},{"internalType":"uint256","name":"aph","type":"uint256"}],"name":"createRisk","outputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getApplicationDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"applicationIdx","type":"uint256"}],"name":"getApplicationId","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPayoutDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPercentageMultiplier","outputs":[{"internalType":"uint256","name":"multiplier","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"},{"internalType":"uint256","name":"policyIdx","type":"uint256"}],"name":"getPolicyId","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"name":"getRisk","outputs":[{"components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bytes32","name":"projectId","type":"bytes32"},{"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"internalType":"bytes32","name":"cropId","type":"bytes32"},{"internalType":"uint256","name":"trigger","type":"uint256"},{"internalType":"uint256","name":"exit","type":"uint256"},{"internalType":"uint256","name":"tsi","type":"uint256"},{"internalType":"uint256","name":"aph","type":"uint256"},{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bool","name":"requestTriggered","type":"bool"},{"internalType":"uint256","name":"responseAt","type":"uint256"},{"internalType":"uint256","name":"aaay","type":"uint256"},{"internalType":"uint256","name":"payoutPercentage","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct AyiiProduct.Risk","name":"risk","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"projectId","type":"bytes32"},{"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"internalType":"bytes32","name":"cropId","type":"bytes32"}],"name":"getRiskId","outputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getRiskId","outputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"bytes","name":"responseData","type":"bytes"}],"name":"oracleCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"name":"policies","outputs":[{"internalType":"uint256","name":"policyCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"},{"internalType":"uint256","name":"batchSize","type":"uint256"}],"name":"processPoliciesForRisk","outputs":[{"internalType":"bytes32[]","name":"processedPolicies","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"processPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"riskPoolCapacityCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"risks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"triggerOracle","outputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2410:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"585:408:103","statements":[{"body":{"nodeType":"YulBlock","src":"632:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"641:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"649:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"634:6:103"},"nodeType":"YulFunctionCall","src":"634:22:103"},"nodeType":"YulExpressionStatement","src":"634:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"606:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"615:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"602:3:103"},"nodeType":"YulFunctionCall","src":"602:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"627:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"598:3:103"},"nodeType":"YulFunctionCall","src":"598:33:103"},"nodeType":"YulIf","src":"595:2:103"},{"nodeType":"YulAssignment","src":"667:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"683:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"677:5:103"},"nodeType":"YulFunctionCall","src":"677:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"667:6:103"}]},{"nodeType":"YulAssignment","src":"702:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"757:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"742:3:103"},"nodeType":"YulFunctionCall","src":"742:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"712:29:103"},"nodeType":"YulFunctionCall","src":"712:49:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"702:6:103"}]},{"nodeType":"YulAssignment","src":"770:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"825:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"810:3:103"},"nodeType":"YulFunctionCall","src":"810:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"780:29:103"},"nodeType":"YulFunctionCall","src":"780:49:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"770:6:103"}]},{"nodeType":"YulAssignment","src":"838:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"858:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"869:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"854:3:103"},"nodeType":"YulFunctionCall","src":"854:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"848:5:103"},"nodeType":"YulFunctionCall","src":"848:25:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"838:6:103"}]},{"nodeType":"YulAssignment","src":"882:36:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"902:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"913:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"898:3:103"},"nodeType":"YulFunctionCall","src":"898:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"892:5:103"},"nodeType":"YulFunctionCall","src":"892:26:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"882:6:103"}]},{"nodeType":"YulAssignment","src":"927:60:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"971:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"982:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:19:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"937:29:103"},"nodeType":"YulFunctionCall","src":"937:50:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"927:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_addresst_uint256t_uint256t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"511:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"522:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"534:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"542:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"550:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"558:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"566:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"574:6:103","type":""}],"src":"419:574:103"},{"body":{"nodeType":"YulBlock","src":"1099:102:103","statements":[{"nodeType":"YulAssignment","src":"1109:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:103"},"nodeType":"YulFunctionCall","src":"1117:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1166:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1182:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1187:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1178:3:103"},"nodeType":"YulFunctionCall","src":"1178:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1191:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1174:3:103"},"nodeType":"YulFunctionCall","src":"1174:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1162:3:103"},"nodeType":"YulFunctionCall","src":"1162:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:103"},"nodeType":"YulFunctionCall","src":"1144:51:103"},"nodeType":"YulExpressionStatement","src":"1144:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:103","type":""}],"src":"998:203:103"},{"body":{"nodeType":"YulBlock","src":"1307:76:103","statements":[{"nodeType":"YulAssignment","src":"1317:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1329:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1340:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1325:3:103"},"nodeType":"YulFunctionCall","src":"1325:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1317:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1359:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1370:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1352:6:103"},"nodeType":"YulFunctionCall","src":"1352:25:103"},"nodeType":"YulExpressionStatement","src":"1352:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1276:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1287:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1298:4:103","type":""}],"src":"1206:177:103"},{"body":{"nodeType":"YulBlock","src":"1589:415:103","statements":[{"nodeType":"YulAssignment","src":"1599:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1611:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1622:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1607:3:103"},"nodeType":"YulFunctionCall","src":"1607:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1599:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1642:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1653:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1635:6:103"},"nodeType":"YulFunctionCall","src":"1635:25:103"},"nodeType":"YulExpressionStatement","src":"1635:25:103"},{"body":{"nodeType":"YulBlock","src":"1702:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1723:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1730:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1735:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1726:3:103"},"nodeType":"YulFunctionCall","src":"1726:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1716:6:103"},"nodeType":"YulFunctionCall","src":"1716:31:103"},"nodeType":"YulExpressionStatement","src":"1716:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1767:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1770:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1760:6:103"},"nodeType":"YulFunctionCall","src":"1760:15:103"},"nodeType":"YulExpressionStatement","src":"1760:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1795:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1798:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1788:6:103"},"nodeType":"YulFunctionCall","src":"1788:15:103"},"nodeType":"YulExpressionStatement","src":"1788:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1682:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1690:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1679:2:103"},"nodeType":"YulFunctionCall","src":"1679:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1672:6:103"},"nodeType":"YulFunctionCall","src":"1672:21:103"},"nodeType":"YulIf","src":"1669:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1829:3:103"},"nodeType":"YulFunctionCall","src":"1829:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1849:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1822:6:103"},"nodeType":"YulFunctionCall","src":"1822:34:103"},"nodeType":"YulExpressionStatement","src":"1822:34:103"},{"nodeType":"YulVariableDeclaration","src":"1865:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1883:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1888:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1879:3:103"},"nodeType":"YulFunctionCall","src":"1879:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1892:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1875:3:103"},"nodeType":"YulFunctionCall","src":"1875:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1869:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1925:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1910:3:103"},"nodeType":"YulFunctionCall","src":"1910:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1934:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1942:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1930:3:103"},"nodeType":"YulFunctionCall","src":"1930:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1903:6:103"},"nodeType":"YulFunctionCall","src":"1903:43:103"},"nodeType":"YulExpressionStatement","src":"1903:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1977:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1962:3:103"},"nodeType":"YulFunctionCall","src":"1962:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1986:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1994:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1982:3:103"},"nodeType":"YulFunctionCall","src":"1982:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1955:6:103"},"nodeType":"YulFunctionCall","src":"1955:43:103"},"nodeType":"YulExpressionStatement","src":"1955:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1534:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1545:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1553:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1561:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1569:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1580:4:103","type":""}],"src":"1388:616:103"},{"body":{"nodeType":"YulBlock","src":"2183:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2200:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2211:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2193:6:103"},"nodeType":"YulFunctionCall","src":"2193:21:103"},"nodeType":"YulExpressionStatement","src":"2193:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2234:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2245:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2230:3:103"},"nodeType":"YulFunctionCall","src":"2230:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2250:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2223:6:103"},"nodeType":"YulFunctionCall","src":"2223:30:103"},"nodeType":"YulExpressionStatement","src":"2223:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2273:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2284:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2269:3:103"},"nodeType":"YulFunctionCall","src":"2269:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2289:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2262:6:103"},"nodeType":"YulFunctionCall","src":"2262:62:103"},"nodeType":"YulExpressionStatement","src":"2262:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:33:103"},"nodeType":"YulExpressionStatement","src":"2333:33:103"},{"nodeType":"YulAssignment","src":"2375:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2398:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2383:3:103"},"nodeType":"YulFunctionCall","src":"2383:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2375:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2160:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2174:4:103","type":""}],"src":"2009:399:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32t_addresst_addresst_uint256t_uint256t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := mload(add(headStart, 96))\n value4 := mload(add(headStart, 128))\n value5 := abi_decode_address_fromMemory(add(headStart, 160))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620049383803806200493883398101604081905262000034916200058b565b858470506f6c69637944656661756c74466c6f7760781b8488846001826200005c336200035b565b6001600160a01b038116620000c35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b606482015260840160405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000ed620003ab565b600480546001600160a01b0319166001600160a01b039290921691909117905562000117620003c6565b600580546001600160a01b0319166001600160a01b039290921691909117905562000141620003f3565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019457634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001e892909160ff82169130916101009091046001600160a01b031690620005f0565b60405180910390a15050600880546001600160a01b0319166001600160a01b0387161790555060098290556200021e836200040d565b600780546001600160a01b0319166001600160a01b03929092169190911790556200025a6d50726f647563745365727669636560901b6200040d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055620002976e496e7374616e63655365727669636560881b6200040d565b600b80546001600160a01b0319166001600160a01b03929092169190911790556040513081527fced180b842b890d77dab95dcbf4654065589a164226ef9faa91a7601fb67c4679060200160405180910390a15050600f80546001600160a01b0319166001600160a01b038916179055505050600e8390556200032360006200031d3390565b6200049b565b6200034f7ff098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955b826200049b565b5050505050506200063b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620003c16541636365737360d01b6200040d565b905090565b6000620003c17f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200040d565b6000620003c16e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200045857600080fd5b505afa1580156200046d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000493919062000567565b90505b919050565b620004a78282620004ab565b5050565b6000828152600c602090815260408083206001600160a01b038516845290915290205460ff16620004a7576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200050b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b80516001600160a01b03811681146200049657600080fd5b60006020828403121562000579578081fd5b62000584826200054f565b9392505050565b60008060008060008060c08789031215620005a4578182fd5b86519550620005b6602088016200054f565b9450620005c6604088016200054f565b93506060870151925060808701519150620005e460a088016200054f565b90509295509295509295565b84815260808101600385106200061657634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6142ed806200064b6000396000f3fe608060405234801561001057600080fd5b50600436106103fc5760003560e01c806366528c3b11610215578063b9ea8d6611610125578063e0815f0d116100b8578063f2fde38b11610087578063f2fde38b14610836578063f406460c14610849578063f4fdc1fa14610851578063f9d7ff8914610862578063ffa1ad741461086a576103fc565b8063e0815f0d146107f5578063e5d58cd8146107fd578063e9960d8a14610810578063eb80733914610823576103fc565b8063d52d2d06116100f4578063d52d2d06146107bc578063d547741f146107cf578063d73cd9921461061a578063ddbfd8ef146107e2576103fc565b8063b9ea8d6614610771578063bd1fe5d0146107a1578063be169e7e1461061a578063d0e0ba95146107a9576103fc565b806391d14854116101a8578063a18f5ae211610177578063a18f5ae21461061a578063a217fddf146105f4578063a3f4df7e1461074a578063aec8de3914610769578063b3fca9bd1461061a576103fc565b806391d14854146106f057806394f64ff4146107035780639a82f8901461072f5780639dce5ff014610737576103fc565b80637ce5e82f116101e45780637ce5e82f146106ba578063893d20e8146106c25780638da5cb5b146106d757806390e1a2ac146106e8576103fc565b806366528c3b1461068d57806370d2fe5314610697578063715018a61461069f57806378a433a5146106a7576103fc565b806336568abe1161031057806354111315116102a35780635ab1bd53116102725780635ab1bd53146106425780635d1ca631146106595780635e61aa6314610661578063637d08f414610674578063638ce0ba14610685576103fc565b806354111315146105fc578063597ee7981461060757806359dacc6a1461061a5780635a60210914610622576103fc565b8063412f91d9116102df578063412f91d9146105bb57806346b937f6146105ce5780634b6eb669146105e15780634ce9d0a7146105f4576103fc565b806336568abe1461057857806339cf5e161461058b5780633dc5f58e146105a85780633ec92bda1461058b576103fc565b80631b07b17f1161039357806321df0da71161036257806321df0da714610502578063248a9ca314610527578063258d560c1461054a5780632f2ff15d1461055257806330a73da514610565576103fc565b80631b07b17f146104bf5780631b867c63146104d25780631c3456dd146104da5780631fd358aa146104e2576103fc565b80630b228d95116103cf5780630b228d951461047a57806315dae03e1461048f57806317d7de7c146104a25780631865c57d146104aa576103fc565b806301ffc9a714610401578063056c99891461042957806306136f281461044c57806309128d831461045f575b600080fd5b61041461040f366004613b88565b610877565b60405190151581526020015b60405180910390f35b61043e60008051602061429883398151915281565b604051908152602001610420565b61043e61045a3660046139f0565b6108b0565b61043e70506f6c69637944656661756c74466c6f7760781b81565b61048d6104883660046139f0565b610a9b565b005b60035460ff166040516104209190614032565b60015461043e565b6104b2610e2c565b6040516104209190614018565b6104146104cd3660046139f0565b610eb2565b61048d610f5f565b61043e610fae565b6104f56104f0366004613b2d565b610fc0565b6040516104209190613f26565b6008546001600160a01b03165b6040516001600160a01b039091168152602001610420565b61043e6105353660046139f0565b6000908152600c602052604090206001015490565b610414611299565b61048d610560366004613a20565b6112c9565b61048d610573366004613a86565b6112f3565b61048d610586366004613a20565b61131c565b6040805160208101909152600081525b6040516104209190614046565b61043e6105b6366004613ae2565b61139a565b61043e6105c9366004613b2d565b6114ff565b61043e6105dc366004613b4e565b611520565b61043e6105ef366004613968565b6115bd565b61043e600081565b61043e630100000081565b61048d6106153660046139f0565b6117d2565b61048d611975565b6106356106303660046139f0565b6119bf565b6040516104209190614090565b61050f60035461010090046001600160a01b031690565b60025461043e565b61048d61066f366004613d80565b611b06565b6007546001600160a01b031661050f565b61048d611e02565b630100000061043e565b60095461043e565b61048d611e4f565b61048d6106b5366004613b4e565b611e61565b60135461043e565b61050f600080546001600160a01b0316610ead565b6000546001600160a01b031661050f565b61043e61202a565b6104146106fe366004613a20565b612039565b60408051808201909152601081526f2862797465733332207269736b49642960801b602082015261059b565b610414612064565b61043e610745366004613b2d565b61206c565b61043e74105c9958565a595b19125b99195e141c9bd91d58dd605a1b81565b61043e600f81565b61078461077f3660046139f0565b612087565b604080519315158452602084019290925290820152606001610420565b61048d6120bb565b61048d6107b73660046139f0565b612108565b61043e6107ca3660046139f0565b612152565b61048d6107dd366004613a20565b612187565b61043e6107f03660046139f0565b6121ac565b6104146121c3565b61078461080b366004613a4f565b6121cc565b61043e61081e366004613a86565b612269565b61043e6108313660046139f0565b6122a0565b61048d610844366004613930565b6122c3565b61043e612339565b61048d61085f3660046139f0565b50565b60105461043e565b61043e62302e3160e81b81565b60006001600160e01b03198216637965db0b60e01b14806108a857506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60006000805160206142988339815191526108ca81612348565b6000601160006108d986612352565b81526020019081526020016000209050600081600d0154116109425760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031303a5249534b5f554e444546494e45440000000060448201526064015b60405180910390fd5b600a810154156109a35760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031313a4f5241434c455f414c52454144595f5245536044820152651413d391115160d21b6064820152608401610939565b60018101546002820154600383015460408051602081019490945283019190915260608201526000906080016040516020818303038152906040529050610a1485826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600e5461237f565b6008830181905560098301805460ff1916600190811790915542600e85015583549084015460028501546003860154604080518681526020810195909552840192909252606083015260808201529094507f983570285d5bc639119bffe47fdb9708eb765c6cac55a784fd1651fbf1360c0f9060a0015b60405180910390a1505050919050565b600080516020614298833981519152610ab381612348565b6000610abe8361240a565b905060008160600151806020019051810190610ada9190613a08565b60008181526011602090815260409182902082516101e08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401526008810154610100840152600981015460ff161515610120840152600a810154610140840152600b810154610160840152600c810154610180840152600d8101546101a0840152600e01546101c0830152919250908214610be75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4159492d3033313a5249534b5f49445f494e56414c49440000006044820152606401610939565b600081610140015111610c4a5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033323a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b6000828152601260205260409020610c6290866124c4565b610cbc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033333a504f4c4943595f464f525f5249534b5f554e60448201526425a727aba760d91b6064820152608401610939565b6000828152601260205260409020610cd490866124dc565b506000610cea826101800151856040015161206c565b90506000610d088783604051806020016040528060008152506124e8565b60408051898152602081018390529081018490529091507ff3b6fa541c2fb440a7135df726575da0735a6968fa3804a462c63690d4330dbd9060600160405180910390a18115610dc95781610d5e888383612577565b6000610d7b898484604051806020016040528060008152506125e9565b9050610d878982612620565b5050604080518a8152602081018490527fe85c538af9d154780befa06f96e8c8d5ff531c715d3735732ca365e541b15ec8910160405180910390a15050610ddd565b610dd387826126b4565b610ddd878261271e565b610de687612756565b610def876127b8565b6040518781527f88873a4c738a1c855a15847c7daf779056bd64e3e5dce2a378085a56b1e65698906020015b60405180910390a150505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190613bb0565b905090565b6000600080516020614298833981519152610ecc81612348565b610ed58361240a565b50610edf836127e9565b91508115610f59576000610ef28461240a565b90506000610eff85612868565b805160208085015160408087015181518b81526001600160a01b039095169385019390935283015260608201529091507f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d190608001610a8b565b50919050565b610f746810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614610fa45760405162461bcd60e51b815260040161093990614059565b610fac6129a3565b565b610fbd6301000000600f6141ac565b81565b6060600080516020614298833981519152610fda81612348565b60008481526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a8201546101408201819052600b830154610160830152600c830154610180830152600d8301546101a0830152600e909201546101c0820152906110f35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033303a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b600085815260126020526040812061110a906129e0565b9050806111625760408051878152600060208201527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a150506040805160008152602081019091529150611292565b8461116f5780945061117c565b61117985826129ea565b94505b8467ffffffffffffffff8111156111a357634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156111cc578160200160208202803683370190505b50935060006111dc6001836141cb565b905060005b8681101561125457600088815260126020526040812061120a9061120584866141cb565b612a01565b905061121581610a9b565b8087838151811061123657634e487b7160e01b600052603260045260246000fd5b6020908102919091010152508061124c81614225565b9150506111e1565b5060408051888152602081018890527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a15050505b5092915050565b600060025b60035460ff1660028111156112c357634e487b7160e01b600052602160045260246000fd5b14905090565b6000828152600c60205260409020600101546112e481612348565b6112ee8383612a0d565b505050565b60008051602061429883398151915261130b81612348565b611316848484612a93565b50505050565b6001600160a01b038116331461138c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610939565b6113968282612ad2565b5050565b60006000805160206142988339815191526113b481612348565b6113c086868686612b39565b6113cb898989612269565b60108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018190556000818152601160205260409020600d81015491935090156114695760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3030313a5249534b5f414c52454144595f45584953546044820152605360f81b6064820152608401610939565b828155600181018a905560028101899055600381018890556004810187905560058101869055600681018590556007810184905542600d8201819055600e82015560408051848152602081018c90529081018a9052606081018990527f817b0e272a7b333532cb6439a34e3ec00922e22926032442220a69868f02d8dc9060800160405180910390a15050979650505050505050565b60008281526012602052604081206115179083612a01565b90505b92915050565b600061152c85846141ac565b61153a6301000000846141ac565b10611547575060006115b4565b61155184846141ac565b61155f6301000000846141ac565b1161156b5750846115b4565b60008361157c8463010000006141ac565b611586919061418c565b905061159285876141cb565b61159c82886141cb565b6115a690896141ac565b6115b0919061418c565b9150505b95945050505050565b60006000805160206142988339815191526115d781612348565b6000838152601160205260409020600d8101546116365760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3030343a5249534b5f554e444546494e4544000000006044820152606401610939565b6001600160a01b03871661168c5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3030353a504f4c4943595f484f4c4445525f5a45524f6044820152606401610939565b6040805160208082018352600082528251808201889052835180820390920182528301909252906116c08989898585612e43565b601380546001810182556000919091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09001819055604080518281526001600160a01b038c1660208201529081018a9052606081018990529095507fb6b5fb82ad406a44dc88433d286d201520c295308f087a476b845f907d3bd6039060800160405180910390a16000611753866127e9565b905080156117c55760008781526012602052604090206117739087612ed8565b50604080518781526001600160a01b038c1660208201529081018a9052606081018990527f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d19060800160405180910390a15b5050505050949350505050565b6000805160206142988339815191526117ea81612348565b6000601160006117f985612352565b81526020019081526020016000209050600081600d01541161185d5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031323a5249534b5f554e444546494e4544000000006044820152606401610939565b600981015460ff166118c05760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031333a4f5241434c455f524551554553545f4e4f5460448201526517d193d5539160d21b6064820152608401610939565b600a810154156119125760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3031343a4558495354494e475f43414c4c4241434b006044820152606401610939565b61191f8160080154612ee4565b60098101805460ff1916905542600e82015560088101546040805185815260208101929092527fdeeac61c3ad18e6efca12eac38425c944b5bbca5b482e39b549671e05544c3dc910160405180910390a1505050565b61198a6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146119ba5760405162461bcd60e51b815260040161093990614059565b610fac565b611a46604051806101e0016040528060008019168152602001600080191681526020016000801916815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060009081526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a820154610140820152600b820154610160820152600c820154610180820152600d8201546101a0820152600e909101546101c082015290565b611b1764517565727960d81b612921565b6001600160a01b0316336001600160a01b031614611b775760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610939565b6000808080611b8885870187613ab1565b93509350935093506000611b9b88612352565b9050611ba8858585612269565b8114611bf65760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4159492d3032303a5249534b5f49445f4d49534d4154434800006044820152606401610939565b6000818152601160205260409020600d810154611c555760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3032313a5249534b5f554e444546494e4544000000006044820152606401610939565b89816008015414611cb25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3032323a524551554553545f49445f4d49534d4154436044820152600960fb1b6064820152608401610939565b600a81015415611d045760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3032333a4558495354494e475f43414c4c4241434b006044820152606401610939565b611d13630100000060006141ac565b8310158015611d2f5750611d2c6301000000600f6141ac565b83105b611d7b5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3032343a414141595f494e56414c49440000000000006044820152606401610939565b600b81018390556006810154600482015460058301546007840154611da39392919087611520565b600c82015542600a8201819055600e820155604080518b8152602081018490529081018490527f357e32cffc9b470fe746dfc76a9dabc81e0441109f95820ff3daeabc21ca3e319060600160405180910390a150505050505050505050565b611e176810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614611e475760405162461bcd60e51b815260040161093990614059565b610fac612f15565b611e57612f3f565b610fac6000612f99565b600080516020614298833981519152611e7981612348565b611e8585858585612b39565b6000868152601160205260409020600d810154611ee45760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3030323a5249534b5f554e4b4e4f574e0000000000006044820152606401610939565b6000878152601260205260409020611efb906129e0565b15611f605760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3030333a5249534b5f574954485f504f4c494349455360448201526e5f4e4f545f41444a55535441424c4560881b6064820152608401610939565b805460048201546005830154600684015460078501546040805195865260208601949094528484019290925260608401526080830152517f5ea522f91ea45156f00d5390cfaf51dc82f9b163ae492c8d6033fcb3af773f589181900360a00190a16004810186905560058101859055600681018490556007810183905580546040805191825260208201889052810186905260608101859052608081018490527f2ef22fcf430acdb3b80e5d30364fcd07242c6081010c6cc9aa2fe4f4105f81279060a001610e1b565b610fbd6002630100000061418c565b6000918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008061129e565b6000630100000061207d83856141ac565b611517919061418c565b60008060006000805160206142988339815191526120a481612348565b6120ad85612fe9565b919790965090945092505050565b6120d06810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146121005760405162461bcd60e51b815260040161093990614059565b610fac61302f565b61211d6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b03161461214d5760405162461bcd60e51b815260040161093990614059565b600255565b60006013828154811061217557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6000828152600c60205260409020600101546121a281612348565b6112ee8383612ad2565b60008181526012602052604081206108a8906129e0565b6000600161129e565b60008060006000805160206142988339815191526121e981612348565b60006121f488612868565b905080600001516001600160a01b0316876001600160a01b03161461224c57600f548151600091612233916001600160a01b03909116908a908a613059565b90508061224a5794506000935085925061225f9050565b505b612256888761336e565b91965094509250505b5093509350939050565b6040805160208082019590955280820193909352606080840192909252805180840390920182526080909201909152805191012090565b60006010828154811061217557634e487b7160e01b600052603260045260246000fd5b6122cb612f3f565b6001600160a01b0381166123305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610939565b61085f81612f99565b610fbd6005630100000061418c565b61085f81336133f8565b60008061235e8361240a565b905080606001518060200190518101906123789190613a08565b9392505050565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f22906123b89088908890889030908990600401613f8b565b602060405180830381600087803b1580156123d257600080fd5b505af11580156123e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b49190613a08565b6124446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b15801561248857600080fd5b505afa15801561249c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613bcf565b60008181526001830160205260408120541515611517565b6000611517838361345c565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d159061251d90879087908790600401613fd4565b602060405180830381600087803b15801561253757600080fd5b505af115801561254b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256f9190613a08565b949350505050565b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f906064015b600060405180830381600087803b1580156125cc57600080fd5b505af11580156125e0573d6000803e3d6000fd5b50505050505050565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d7846906123b8908890889088908890600401613ff3565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b15801561267157600080fd5b505af1158015612685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a99190613dfb565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b15801561270257600080fd5b505af1158015612716573d6000803e3d6000fd5b505050505050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba2906044016126e8565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c6441798906024015b600060405180830381600087803b15801561279d57600080fd5b505af11580156127b1573d6000803e3d6000fd5b5050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c90602401612783565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b15801561283057600080fd5b505af1158015612844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906139a2565b6128a16040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600b5460405163296586d360e21b8152600481018490526001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156128e557600080fd5b505afa1580156128f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613c7d565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561296b57600080fd5b505afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a8919061394c565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616129cd60025490565b60405190815260200160405180910390a1565b60006108a8825490565b6000818311156129fa5781611517565b5090919050565b60006115178383613579565b612a178282612039565b611396576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a4f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064016125b2565b612adc8282612039565b15611396576000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6301000000841115612b995760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4159492d3034303a5249534b5f545249474745525f544f4f5f4c6044820152634152474560e01b6064820152608401610939565b828411612c005760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3034313a5249534b5f545249474745525f4e4f545f4c60448201526e105491d15497d512105397d1561255608a1b6064820152608401610939565b612c0f6005630100000061418c565b831115612c685760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3034323a5249534b5f455849545f544f4f5f4c4152476044820152604560f81b6064820152608401610939565b612c776002630100000061418c565b821015612cc65760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034333a5249534b5f5453495f544f4f5f534d414c4c6044820152606401610939565b6301000000821115612d1a5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034343a5249534b5f5453495f544f4f5f4c415247456044820152606401610939565b6301000000612d298484614174565b1115612d895760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4159492d3034353a5249534b5f5453495f455849545f53554d5f604482015268544f4f5f4c4152474560b81b6064820152608401610939565b60008111612de55760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4159492d3034363a5249534b5f4150485f5a45524f5f494e564160448201526213125160ea1b6064820152608401610939565b612df46301000000600f6141ac565b8111156113165760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034373a5249534b5f4150485f544f4f5f4c415247456044820152606401610939565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a90612e7c9089908990899089908990600401613edb565b602060405180830381600087803b158015612e9657600080fd5b505af1158015612eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ece9190613a08565b9695505050505050565b600061151783836135b1565b600a54604051630c054e5360e21b8152600481018390526001600160a01b0390911690633015394c90602401612783565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96129cd60025490565b6000546001600160a01b03163314610fac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610939565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080612ff885613600565b9050806020015181604001511015613027576120ad858260400151836020015161302291906141cb565b61336e565b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556129cd60025490565b6000846001600160a01b038082163b1515908616158061308057506001600160a01b038516155b80613089575080155b156130e4576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a160009250505061256f565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561312957600080fd5b505afa15801561313d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131619190613a08565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156131ae57600080fd5b505afa1580156131c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e69190613a08565b9050858210806131f557508581105b156132405760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a1600094505050505061256f565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916132a49190613e4a565b6000604051808303816000865af19150503d80600081146132e1576040519150601f19603f3d011682016040523d82523d6000602084013e6132e6565b606091505b509150915081801561331c57508051158061331c57508051602014801561331c57508080602001905181019061331c91906139a2565b965086613360577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161335793929190613f6a565b60405180910390a15b505050505050949350505050565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156133c057600080fd5b505af11580156133d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ad91906139bc565b6134028282612039565b6113965761341a816001600160a01b031660146136cd565b6134258360206136cd565b604051602001613436929190613e66565b60408051601f198184030181529082905262461bcd60e51b825261093991600401614046565b6000818152600183016020526040812054801561356f5760006134806001836141cb565b8554909150600090613494906001906141cb565b90508181146135155760008660000182815481106134c257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106134f357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061353457634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061151a565b600091505061151a565b600082600001828154811061359e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120546135f85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561151a565b50600061151a565b613650604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b15801561369557600080fd5b505afa1580156136a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190613cfb565b606060006136dc8360026141ac565b6136e7906002614174565b67ffffffffffffffff81111561370d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015613737576020820181803683370190505b509050600360fc1b8160008151811061376057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061379d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006137c18460026141ac565b6137cc906001614174565b90505b6001811115613860576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061380e57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061383257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936138598161420e565b90506137cf565b5083156115175760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610939565b805180151581146108ab57600080fd5b600082601f8301126138cf578081fd5b815167ffffffffffffffff8111156138e9576138e961426c565b6138fc601f8201601f1916602001614143565b818152846020838601011115613910578283fd5b61256f8260208301602087016141e2565b8051600381106108ab57600080fd5b600060208284031215613941578081fd5b813561151781614282565b60006020828403121561395d578081fd5b815161151781614282565b6000806000806080858703121561397d578283fd5b843561398881614282565b966020860135965060408601359560600135945092505050565b6000602082840312156139b3578081fd5b611517826138af565b6000806000606084860312156139d0578283fd5b6139d9846138af565b925060208401519150604084015190509250925092565b600060208284031215613a01578081fd5b5035919050565b600060208284031215613a19578081fd5b5051919050565b60008060408385031215613a32578182fd5b823591506020830135613a4481614282565b809150509250929050565b600080600060608486031215613a63578081fd5b833592506020840135613a7581614282565b929592945050506040919091013590565b600080600060608486031215613a9a578081fd5b505081359360208301359350604090920135919050565b60008060008060808587031215613ac6578182fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600060e0888a031215613afc578485fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215613b3f578182fd5b50508035926020909101359150565b600080600080600060a08688031215613b65578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215613b99578081fd5b81356001600160e01b031981168114611517578182fd5b600060208284031215613bc1578081fd5b815160078110611517578182fd5b600060208284031215613be0578081fd5b815167ffffffffffffffff80821115613bf7578283fd5b9083019060c08286031215613c0a578283fd5b613c1460c0614143565b825160048110613c22578485fd5b808252506020830151602082015260408301516040820152606083015182811115613c4b578485fd5b613c57878286016138bf565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613c8e578081fd5b815167ffffffffffffffff80821115613ca5578283fd5b9083019060c08286031215613cb8578283fd5b613cc260c0614143565b8251613ccd81614282565b815260208381015190820152613ce560408401613921565b6040820152606083015182811115613c4b578485fd5b6000610120808385031215613d0e578182fd5b613d1781614143565b9050613d2283613921565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215613d95578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115613dba578384fd5b818701915087601f830112613dcd578384fd5b813581811115613ddb578485fd5b886020828501011115613dec578485fd5b95989497505060200194505050565b60008060408385031215613e0d578182fd5b505080516020909101519092909150565b60008151808452613e368160208601602086016141e2565b601f01601f19169290920160200192915050565b60008251613e5c8184602087016141e2565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351613e9e8160178501602088016141e2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ecf8160288401602088016141e2565b01602801949350505050565b600060018060a01b038716825285602083015284604083015260a06060830152613f0860a0830185613e1e565b8281036080840152613f1a8185613e1e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613f5e57835183529284019291840191600101613f42565b50909695505050505050565b60008415158252836020830152606060408301526115b46060830184613e1e565b600086825260a06020830152613fa460a0830187613e1e565b8281036040840152613fb68187613e1e565b6001600160a01b039590951660608401525050608001529392505050565b6000848252836020830152606060408301526115b46060830184613e1e565b600085825284602083015283604083015260806060830152612ece6080830184613e1e565b602081016007831061402c5761402c614256565b91905290565b602081016003831061402c5761402c614256565b6000602082526115176020830184613e1e565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60006101e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516141038285018215159052565b50506101408381015190830152610160808401519083015261018080840151908301526101a080840151908301526101c092830151929091019190915290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561416c5761416c61426c565b604052919050565b6000821982111561418757614187614240565b500190565b6000826141a757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156141c6576141c6614240565b500290565b6000828210156141dd576141dd614240565b500390565b60005b838110156141fd5781810151838201526020016141e5565b838111156113165750506000910152565b60008161421d5761421d614240565b506000190190565b600060001982141561423957614239614240565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461085f57600080fdfef098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955ba26469706673582212206fbe90c5e63801ca92badc10bc72a58619457eca24171fa149899255b2d6ddb164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x4938 CODESIZE SUB DUP1 PUSH3 0x4938 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x58B JUMP JUMPDEST DUP6 DUP5 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP5 DUP9 DUP5 PUSH1 0x1 DUP3 PUSH3 0x5C CALLER PUSH3 0x35B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xC3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xED PUSH3 0x3AB JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x117 PUSH3 0x3C6 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x141 PUSH3 0x3F3 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x194 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1E8 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x5F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE POP PUSH1 0x9 DUP3 SWAP1 SSTORE PUSH3 0x21E DUP4 PUSH3 0x40D JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x25A PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH3 0x40D JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x297 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL PUSH3 0x40D JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 MLOAD ADDRESS DUP2 MSTORE PUSH32 0xCED180B842B890D77DAB95DCBF4654065589A164226EF9FAA91A7601FB67C467 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0xF DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND OR SWAP1 SSTORE POP POP POP PUSH1 0xE DUP4 SWAP1 SSTORE PUSH3 0x323 PUSH1 0x0 PUSH3 0x31D CALLER SWAP1 JUMP JUMPDEST PUSH3 0x49B JUMP JUMPDEST PUSH3 0x34F PUSH32 0xF098B7742E998F92A3C749F35E64EF555EDCECEC4B78A00C532A4F385915955B DUP3 PUSH3 0x49B JUMP JUMPDEST POP POP POP POP POP POP PUSH3 0x63B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3C1 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x40D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3C1 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x40D JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3C1 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x46D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x493 SWAP2 SWAP1 PUSH3 0x567 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x4A7 DUP3 DUP3 PUSH3 0x4AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x4A7 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x50B CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x496 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x579 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH3 0x584 DUP3 PUSH3 0x54F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH3 0x5A4 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP7 MLOAD SWAP6 POP PUSH3 0x5B6 PUSH1 0x20 DUP9 ADD PUSH3 0x54F JUMP JUMPDEST SWAP5 POP PUSH3 0x5C6 PUSH1 0x40 DUP9 ADD PUSH3 0x54F JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD MLOAD SWAP3 POP PUSH1 0x80 DUP8 ADD MLOAD SWAP2 POP PUSH3 0x5E4 PUSH1 0xA0 DUP9 ADD PUSH3 0x54F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x616 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x42ED DUP1 PUSH3 0x64B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3FC JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x66528C3B GT PUSH2 0x215 JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x836 JUMPI DUP1 PUSH4 0xF406460C EQ PUSH2 0x849 JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x851 JUMPI DUP1 PUSH4 0xF9D7FF89 EQ PUSH2 0x862 JUMPI DUP1 PUSH4 0xFFA1AD74 EQ PUSH2 0x86A JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x7F5 JUMPI DUP1 PUSH4 0xE5D58CD8 EQ PUSH2 0x7FD JUMPI DUP1 PUSH4 0xE9960D8A EQ PUSH2 0x810 JUMPI DUP1 PUSH4 0xEB807339 EQ PUSH2 0x823 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xD52D2D06 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xD52D2D06 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x7CF JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xDDBFD8EF EQ PUSH2 0x7E2 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x771 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x7A1 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x7A9 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0x177 JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x5F4 JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x74A JUMPI DUP1 PUSH4 0xAEC8DE39 EQ PUSH2 0x769 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x61A JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x91D14854 EQ PUSH2 0x6F0 JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x703 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x72F JUMPI DUP1 PUSH4 0x9DCE5FF0 EQ PUSH2 0x737 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x7CE5E82F GT PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x7CE5E82F EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6D7 JUMPI DUP1 PUSH4 0x90E1A2AC EQ PUSH2 0x6E8 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x66528C3B EQ PUSH2 0x68D JUMPI DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x697 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x69F JUMPI DUP1 PUSH4 0x78A433A5 EQ PUSH2 0x6A7 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0x310 JUMPI DUP1 PUSH4 0x54111315 GT PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x272 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x642 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0x5E61AA63 EQ PUSH2 0x661 JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x685 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x54111315 EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0x597EE798 EQ PUSH2 0x607 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0x5A602109 EQ PUSH2 0x622 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x412F91D9 GT PUSH2 0x2DF JUMPI DUP1 PUSH4 0x412F91D9 EQ PUSH2 0x5BB JUMPI DUP1 PUSH4 0x46B937F6 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x4B6EB669 EQ PUSH2 0x5E1 JUMPI DUP1 PUSH4 0x4CE9D0A7 EQ PUSH2 0x5F4 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x36568ABE EQ PUSH2 0x578 JUMPI DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0x3DC5F58E EQ PUSH2 0x5A8 JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x58B JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1B07B17F GT PUSH2 0x393 JUMPI DUP1 PUSH4 0x21DF0DA7 GT PUSH2 0x362 JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x527 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x552 JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x565 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x4BF JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x1C3456DD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x1FD358AA EQ PUSH2 0x4E2 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xB228D95 GT PUSH2 0x3CF JUMPI DUP1 PUSH4 0xB228D95 EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x4AA JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0x56C9989 EQ PUSH2 0x429 JUMPI DUP1 PUSH4 0x6136F28 EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x9128D83 EQ PUSH2 0x45F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x414 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x3B88 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x43E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x45A CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x8B0 JUMP JUMPDEST PUSH2 0x43E PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x488 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0xA9B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4032 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x4B2 PUSH2 0xE2C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST PUSH2 0x414 PUSH2 0x4CD CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0xEB2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0xF5F JUMP JUMPDEST PUSH2 0x43E PUSH2 0xFAE JUMP JUMPDEST PUSH2 0x4F5 PUSH2 0x4F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0xFC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x3F26 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x535 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x414 PUSH2 0x1299 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x560 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x12C9 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x573 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A86 JUMP JUMPDEST PUSH2 0x12F3 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x586 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x131C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4046 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3AE2 JUMP JUMPDEST PUSH2 0x139A JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0x14FF JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5DC CALLDATASIZE PUSH1 0x4 PUSH2 0x3B4E JUMP JUMPDEST PUSH2 0x1520 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5EF CALLDATASIZE PUSH1 0x4 PUSH2 0x3968 JUMP JUMPDEST PUSH2 0x15BD JUMP JUMPDEST PUSH2 0x43E PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x43E PUSH4 0x1000000 DUP2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x615 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x17D2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1975 JUMP JUMPDEST PUSH2 0x635 PUSH2 0x630 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x19BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4090 JUMP JUMPDEST PUSH2 0x50F PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x48D PUSH2 0x66F CALLDATASIZE PUSH1 0x4 PUSH2 0x3D80 JUMP JUMPDEST PUSH2 0x1B06 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x50F JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1E02 JUMP JUMPDEST PUSH4 0x1000000 PUSH2 0x43E JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1E4F JUMP JUMPDEST PUSH2 0x48D PUSH2 0x6B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B4E JUMP JUMPDEST PUSH2 0x1E61 JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x50F PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xEAD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x50F JUMP JUMPDEST PUSH2 0x43E PUSH2 0x202A JUMP JUMPDEST PUSH2 0x414 PUSH2 0x6FE CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH16 0x2862797465733332207269736B496429 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x59B JUMP JUMPDEST PUSH2 0x414 PUSH2 0x2064 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x745 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0x206C JUMP JUMPDEST PUSH2 0x43E PUSH21 0x105C9958565A595B19125B99195E141C9BD91D58DD PUSH1 0x5A SHL DUP2 JUMP JUMPDEST PUSH2 0x43E PUSH1 0xF DUP2 JUMP JUMPDEST PUSH2 0x784 PUSH2 0x77F CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2087 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x20BB JUMP JUMPDEST PUSH2 0x48D PUSH2 0x7B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2108 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x7CA CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2152 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x7DD CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x2187 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x7F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x21AC JUMP JUMPDEST PUSH2 0x414 PUSH2 0x21C3 JUMP JUMPDEST PUSH2 0x784 PUSH2 0x80B CALLDATASIZE PUSH1 0x4 PUSH2 0x3A4F JUMP JUMPDEST PUSH2 0x21CC JUMP JUMPDEST PUSH2 0x43E PUSH2 0x81E CALLDATASIZE PUSH1 0x4 PUSH2 0x3A86 JUMP JUMPDEST PUSH2 0x2269 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x831 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x22A0 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x844 CALLDATASIZE PUSH1 0x4 PUSH2 0x3930 JUMP JUMPDEST PUSH2 0x22C3 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x2339 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x85F CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x43E PUSH3 0x302E31 PUSH1 0xE8 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8A8 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x8CA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 PUSH2 0x8D9 DUP7 PUSH2 0x2352 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xD ADD SLOAD GT PUSH2 0x942 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031303A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x9A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031313A4F5241434C455F414C52454144595F524553 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1413D3911151 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xA14 DUP6 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xE SLOAD PUSH2 0x237F JUMP JUMPDEST PUSH1 0x8 DUP4 ADD DUP2 SWAP1 SSTORE PUSH1 0x9 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE TIMESTAMP PUSH1 0xE DUP6 ADD SSTORE DUP4 SLOAD SWAP1 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD PUSH1 0x3 DUP7 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE SWAP1 SWAP5 POP PUSH32 0x983570285D5BC639119BFFE47FDB9708EB765C6CAC55A784FD1651FBF1360C0F SWAP1 PUSH1 0xA0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xAB3 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xABE DUP4 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xADA SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 DUP4 ADD SLOAD SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x7 DUP2 ADD SLOAD PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x100 DUP5 ADD MSTORE PUSH1 0x9 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP5 ADD MSTORE PUSH1 0xA DUP2 ADD SLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xB DUP2 ADD SLOAD PUSH2 0x160 DUP5 ADD MSTORE PUSH1 0xC DUP2 ADD SLOAD PUSH2 0x180 DUP5 ADD MSTORE PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1A0 DUP5 ADD MSTORE PUSH1 0xE ADD SLOAD PUSH2 0x1C0 DUP4 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP3 EQ PUSH2 0xBE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033313A5249534B5F49445F494E56414C4944000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x140 ADD MLOAD GT PUSH2 0xC4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033323A4F5241434C455F524553504F4E53455F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5353494E47 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC62 SWAP1 DUP7 PUSH2 0x24C4 JUMP JUMPDEST PUSH2 0xCBC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033333A504F4C4943595F464F525F5249534B5F554E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x25A727ABA7 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xCD4 SWAP1 DUP7 PUSH2 0x24DC JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xCEA DUP3 PUSH2 0x180 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x206C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xD08 DUP8 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x24E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xF3B6FA541C2FB440A7135DF726575DA0735A6968FA3804A462C63690D4330DBD SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 ISZERO PUSH2 0xDC9 JUMPI DUP2 PUSH2 0xD5E DUP9 DUP4 DUP4 PUSH2 0x2577 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD7B DUP10 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x25E9 JUMP JUMPDEST SWAP1 POP PUSH2 0xD87 DUP10 DUP3 PUSH2 0x2620 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP11 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0xE85C538AF9D154780BEFA06F96E8C8D5FF531C715D3735732CA365E541B15EC8 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH2 0xDDD JUMP JUMPDEST PUSH2 0xDD3 DUP8 DUP3 PUSH2 0x26B4 JUMP JUMPDEST PUSH2 0xDDD DUP8 DUP3 PUSH2 0x271E JUMP JUMPDEST PUSH2 0xDE6 DUP8 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0xDEF DUP8 PUSH2 0x27B8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP8 DUP2 MSTORE PUSH32 0x88873A4C738A1C855A15847C7DAF779056BD64E3E5DCE2A378085A56B1E65698 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEAD SWAP2 SWAP1 PUSH2 0x3BB0 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xECC DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0xED5 DUP4 PUSH2 0x240A JUMP JUMPDEST POP PUSH2 0xEDF DUP4 PUSH2 0x27E9 JUMP JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0xF59 JUMPI PUSH1 0x0 PUSH2 0xEF2 DUP5 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEFF DUP6 PUSH2 0x2868 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP2 MLOAD DUP12 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP4 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH32 0x740860D47F9571AC7C5D7D56A42D09A9D575A3D5A025F85A409366D172D4B3D1 SWAP1 PUSH1 0x80 ADD PUSH2 0xA8B JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF74 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFA4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x29A3 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xFBD PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xFDA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD SLOAD PUSH2 0x140 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xB DUP4 ADD SLOAD PUSH2 0x160 DUP4 ADD MSTORE PUSH1 0xC DUP4 ADD SLOAD PUSH2 0x180 DUP4 ADD MSTORE PUSH1 0xD DUP4 ADD SLOAD PUSH2 0x1A0 DUP4 ADD MSTORE PUSH1 0xE SWAP1 SWAP3 ADD SLOAD PUSH2 0x1C0 DUP3 ADD MSTORE SWAP1 PUSH2 0x10F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033303A4F5241434C455F524553504F4E53455F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5353494E47 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x110A SWAP1 PUSH2 0x29E0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1162 JUMPI PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2F322F1B61D2FF4C9E3D88448830423A8A4A968A916BB6C838F5EB10CED570E3 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP2 POP PUSH2 0x1292 JUMP JUMPDEST DUP5 PUSH2 0x116F JUMPI DUP1 SWAP5 POP PUSH2 0x117C JUMP JUMPDEST PUSH2 0x1179 DUP6 DUP3 PUSH2 0x29EA JUMP JUMPDEST SWAP5 POP JUMPDEST DUP5 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11A3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11CC JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP PUSH1 0x0 PUSH2 0x11DC PUSH1 0x1 DUP4 PUSH2 0x41CB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x1254 JUMPI PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x120A SWAP1 PUSH2 0x1205 DUP5 DUP7 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x2A01 JUMP JUMPDEST SWAP1 POP PUSH2 0x1215 DUP2 PUSH2 0xA9B JUMP JUMPDEST DUP1 DUP8 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1236 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP DUP1 PUSH2 0x124C DUP2 PUSH2 0x4225 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x2F322F1B61D2FF4C9E3D88448830423A8A4A968A916BB6C838F5EB10CED570E3 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12C3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x12E4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x12EE DUP4 DUP4 PUSH2 0x2A0D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x130B DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x1316 DUP5 DUP5 DUP5 PUSH2 0x2A93 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x1396 DUP3 DUP3 PUSH2 0x2AD2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x13B4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x13C0 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x13CB DUP10 DUP10 DUP10 PUSH2 0x2269 JUMP JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP2 SWAP1 SSTORE PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD SWAP2 SWAP4 POP SWAP1 ISZERO PUSH2 0x1469 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030313A5249534B5F414C52454144595F4558495354 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x53 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP3 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP11 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP10 SWAP1 SSTORE PUSH1 0x3 DUP2 ADD DUP9 SWAP1 SSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 SSTORE PUSH1 0x5 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD DUP6 SWAP1 SSTORE PUSH1 0x7 DUP2 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0xD DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x817B0E272A7B333532CB6439A34E3EC00922E22926032442220A69868F02D8DC SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1517 SWAP1 DUP4 PUSH2 0x2A01 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152C DUP6 DUP5 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x153A PUSH4 0x1000000 DUP5 PUSH2 0x41AC JUMP JUMPDEST LT PUSH2 0x1547 JUMPI POP PUSH1 0x0 PUSH2 0x15B4 JUMP JUMPDEST PUSH2 0x1551 DUP5 DUP5 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x155F PUSH4 0x1000000 DUP5 PUSH2 0x41AC JUMP JUMPDEST GT PUSH2 0x156B JUMPI POP DUP5 PUSH2 0x15B4 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x157C DUP5 PUSH4 0x1000000 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x1586 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST SWAP1 POP PUSH2 0x1592 DUP6 DUP8 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x159C DUP3 DUP9 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x15A6 SWAP1 DUP10 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x15B0 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x15D7 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030343A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH2 0x168C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030353A504F4C4943595F484F4C4445525F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP3 MSTORE DUP3 MLOAD DUP1 DUP3 ADD DUP9 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP3 SUB SWAP1 SWAP3 ADD DUP3 MSTORE DUP4 ADD SWAP1 SWAP3 MSTORE SWAP1 PUSH2 0x16C0 DUP10 DUP10 DUP10 DUP6 DUP6 PUSH2 0x2E43 JUMP JUMPDEST PUSH1 0x13 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x66DE8FFDA797E3DE9C05E8FC57B3BF0EC28A930D40B0D285D93C06501CF6A090 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP6 POP PUSH32 0xB6B5FB82AD406A44DC88433D286D201520C295308F087A476B845F907D3BD603 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x1753 DUP7 PUSH2 0x27E9 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x17C5 JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1773 SWAP1 DUP8 PUSH2 0x2ED8 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x740860D47F9571AC7C5D7D56A42D09A9D575A3D5A025F85A409366D172D4B3D1 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x17EA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 PUSH2 0x17F9 DUP6 PUSH2 0x2352 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xD ADD SLOAD GT PUSH2 0x185D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031323A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x9 DUP2 ADD SLOAD PUSH1 0xFF AND PUSH2 0x18C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031333A4F5241434C455F524551554553545F4E4F54 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x17D193D55391 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031343A4558495354494E475F43414C4C4241434B00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x191F DUP2 PUSH1 0x8 ADD SLOAD PUSH2 0x2EE4 JUMP JUMPDEST PUSH1 0x9 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE TIMESTAMP PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x8 DUP2 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0xDEEAC61C3AD18E6EFCA12EAC38425C944B5BBCA5B482E39B549671E05544C3DC SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x198A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC JUMP JUMPDEST PUSH2 0x1A46 PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD SLOAD PUSH2 0x140 DUP3 ADD MSTORE PUSH1 0xB DUP3 ADD SLOAD PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0xC DUP3 ADD SLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0xD DUP3 ADD SLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH1 0xE SWAP1 SWAP2 ADD SLOAD PUSH2 0x1C0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1B17 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1B77 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030333A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1B88 DUP6 DUP8 ADD DUP8 PUSH2 0x3AB1 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x0 PUSH2 0x1B9B DUP9 PUSH2 0x2352 JUMP JUMPDEST SWAP1 POP PUSH2 0x1BA8 DUP6 DUP6 DUP6 PUSH2 0x2269 JUMP JUMPDEST DUP2 EQ PUSH2 0x1BF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032303A5249534B5F49445F4D49534D415443480000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1C55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032313A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST DUP10 DUP2 PUSH1 0x8 ADD SLOAD EQ PUSH2 0x1CB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032323A524551554553545F49445F4D49534D415443 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x1D04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032333A4558495354494E475F43414C4C4241434B00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x1D13 PUSH4 0x1000000 PUSH1 0x0 PUSH2 0x41AC JUMP JUMPDEST DUP4 LT ISZERO DUP1 ISZERO PUSH2 0x1D2F JUMPI POP PUSH2 0x1D2C PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP4 LT JUMPDEST PUSH2 0x1D7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032343A414141595F494E56414C4944000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xB DUP2 ADD DUP4 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x7 DUP5 ADD SLOAD PUSH2 0x1DA3 SWAP4 SWAP3 SWAP2 SWAP1 DUP8 PUSH2 0x1520 JUMP JUMPDEST PUSH1 0xC DUP3 ADD SSTORE TIMESTAMP PUSH1 0xA DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP12 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x357E32CFFC9B470FE746DFC76A9DABC81E0441109F95820FF3DAEABC21CA3E31 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E17 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E47 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x2F15 JUMP JUMPDEST PUSH2 0x1E57 PUSH2 0x2F3F JUMP JUMPDEST PUSH2 0xFAC PUSH1 0x0 PUSH2 0x2F99 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1E79 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x1E85 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2B39 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1EE4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030323A5249534B5F554E4B4E4F574E000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1EFB SWAP1 PUSH2 0x29E0 JUMP JUMPDEST ISZERO PUSH2 0x1F60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030333A5249534B5F574954485F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x5F4E4F545F41444A55535441424C45 PUSH1 0x88 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x6 DUP5 ADD SLOAD PUSH1 0x7 DUP6 ADD SLOAD PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP5 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD MSTORE MLOAD PUSH32 0x5EA522F91EA45156F00D5390CFAF51DC82F9B163AE492C8D6033FCB3AF773F58 SWAP2 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG1 PUSH1 0x4 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x5 DUP2 ADD DUP6 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD DUP5 SWAP1 SSTORE PUSH1 0x7 DUP2 ADD DUP4 SWAP1 SSTORE DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP9 SWAP1 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x2EF22FCF430ACDB3B80E5D30364FCD07242C6081010C6CC9AA2FE4F4105F8127 SWAP1 PUSH1 0xA0 ADD PUSH2 0xE1B JUMP JUMPDEST PUSH2 0xFBD PUSH1 0x2 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x129E JUMP JUMPDEST PUSH1 0x0 PUSH4 0x1000000 PUSH2 0x207D DUP4 DUP6 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x1517 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x20A4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x20AD DUP6 PUSH2 0x2FE9 JUMP JUMPDEST SWAP2 SWAP8 SWAP1 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x20D0 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2100 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x302F JUMP JUMPDEST PUSH2 0x211D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x214D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x13 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2175 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x21A2 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x12EE DUP4 DUP4 PUSH2 0x2AD2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x8A8 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x129E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21E9 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21F4 DUP9 PUSH2 0x2868 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x224C JUMPI PUSH1 0xF SLOAD DUP2 MLOAD PUSH1 0x0 SWAP2 PUSH2 0x2233 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP11 SWAP1 DUP11 PUSH2 0x3059 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x224A JUMPI SWAP5 POP PUSH1 0x0 SWAP4 POP DUP6 SWAP3 POP PUSH2 0x225F SWAP1 POP JUMP JUMPDEST POP JUMPDEST PUSH2 0x2256 DUP9 DUP8 PUSH2 0x336E JUMP JUMPDEST SWAP2 SWAP7 POP SWAP5 POP SWAP3 POP POP JUMPDEST POP SWAP4 POP SWAP4 POP SWAP4 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD SWAP6 SWAP1 SWAP6 MSTORE DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP1 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP1 MLOAD DUP1 DUP5 SUB SWAP1 SWAP3 ADD DUP3 MSTORE PUSH1 0x80 SWAP1 SWAP3 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x10 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2175 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x22CB PUSH2 0x2F3F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2330 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x85F DUP2 PUSH2 0x2F99 JUMP JUMPDEST PUSH2 0xFBD PUSH1 0x5 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST PUSH2 0x85F DUP2 CALLER PUSH2 0x33F8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x235E DUP4 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2378 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x16499F91 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2C933F22 SWAP1 PUSH2 0x23B8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x3F8B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15B4 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH2 0x2444 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x249C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3BCF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1517 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x345C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFAE43D15 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFAE43D15 SWAP1 PUSH2 0x251D SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x3FD4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x254B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x256F SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x781D7846 SWAP1 PUSH2 0x23B8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x3FF3 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2685 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26A9 SWAP2 SWAP1 PUSH2 0x3DFB JUMP JUMPDEST SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2716 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C882F3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC6441798 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x279D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE71E783 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x39C79E0C SWAP1 PUSH1 0x24 ADD PUSH2 0x2783 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2844 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x39A2 JUMP JUMPDEST PUSH2 0x28A1 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7D JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x296B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x297F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x394C JUMP JUMPDEST PUSH32 0xB79D34516B55D664B61192AA41FBC0625B132FB7129BD3B3A31F46D1BEFA7061 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A8 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x29FA JUMPI DUP2 PUSH2 0x1517 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x3579 JUMP JUMPDEST PUSH2 0x2A17 DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST PUSH2 0x1396 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x2A4F CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD PUSH2 0x25B2 JUMP JUMPDEST PUSH2 0x2ADC DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST ISZERO PUSH2 0x1396 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH4 0x1000000 DUP5 GT ISZERO PUSH2 0x2B99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034303A5249534B5F545249474745525F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP3 DUP5 GT PUSH2 0x2C00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034313A5249534B5F545249474745525F4E4F545F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x105491D15497D512105397D1561255 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2C0F PUSH1 0x5 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0x2C68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034323A5249534B5F455849545F544F4F5F4C415247 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2C77 PUSH1 0x2 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x2CC6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034333A5249534B5F5453495F544F4F5F534D414C4C PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH4 0x1000000 DUP3 GT ISZERO PUSH2 0x2D1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034343A5249534B5F5453495F544F4F5F4C41524745 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH4 0x1000000 PUSH2 0x2D29 DUP5 DUP5 PUSH2 0x4174 JUMP JUMPDEST GT ISZERO PUSH2 0x2D89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034353A5249534B5F5453495F455849545F53554D5F PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x544F4F5F4C41524745 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x2DE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034363A5249534B5F4150485F5A45524F5F494E5641 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x131251 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2DF4 PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034373A5249534B5F4150485F544F4F5F4C41524745 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x2E7C SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x3EDB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ECE SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xC054E53 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3015394C SWAP1 PUSH1 0x24 ADD PUSH2 0x2783 JUMP JUMPDEST PUSH32 0xCFF3B7B8B07D4D8F74BF41F05737717140D5916781B9DFF86EA0B996F2FDB9F9 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xFAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2FF8 DUP6 PUSH2 0x3600 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x3027 JUMPI PUSH2 0x20AD DUP6 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x3022 SWAP2 SWAP1 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x336E JUMP JUMPDEST POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH32 0x38954B1D025D5A8FFCF9B42D431BE2745CDCD05D32B0E5AD33EE2DB025EF5B55 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x3080 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0x3089 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x30E4 JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x256F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3129 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x313D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3161 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31E6 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x31F5 JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x3240 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x256F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP11 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP14 AND SWAP2 PUSH2 0x32A4 SWAP2 SWAP1 PUSH2 0x3E4A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x32E1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x32E6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x331C JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x331C JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x331C JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x331C SWAP2 SWAP1 PUSH2 0x39A2 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x3360 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x3357 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x33C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20AD SWAP2 SWAP1 PUSH2 0x39BC JUMP JUMPDEST PUSH2 0x3402 DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST PUSH2 0x1396 JUMPI PUSH2 0x341A DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x36CD JUMP JUMPDEST PUSH2 0x3425 DUP4 PUSH1 0x20 PUSH2 0x36CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3436 SWAP3 SWAP2 SWAP1 PUSH2 0x3E66 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x939 SWAP2 PUSH1 0x4 ADD PUSH2 0x4046 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x356F JUMPI PUSH1 0x0 PUSH2 0x3480 PUSH1 0x1 DUP4 PUSH2 0x41CB JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x3494 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x41CB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x3515 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x34C2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x34F3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x3534 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x151A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x151A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x359E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x35F8 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x151A JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x151A JUMP JUMPDEST PUSH2 0x3650 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x36A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x3CFB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x36DC DUP4 PUSH1 0x2 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x36E7 SWAP1 PUSH1 0x2 PUSH2 0x4174 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x370D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3737 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3760 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x379D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x37C1 DUP5 PUSH1 0x2 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x37CC SWAP1 PUSH1 0x1 PUSH2 0x4174 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x3860 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x380E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x3832 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x3859 DUP2 PUSH2 0x420E JUMP JUMPDEST SWAP1 POP PUSH2 0x37CF JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x1517 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x8AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x38CF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38E9 JUMPI PUSH2 0x38E9 PUSH2 0x426C JUMP JUMPDEST PUSH2 0x38FC PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x4143 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3910 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x256F DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x41E2 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x8AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3941 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1517 DUP2 PUSH2 0x4282 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x395D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1517 DUP2 PUSH2 0x4282 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x397D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3988 DUP2 PUSH2 0x4282 JUMP JUMPDEST SWAP7 PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP7 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x60 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39B3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1517 DUP3 PUSH2 0x38AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x39D0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x39D9 DUP5 PUSH2 0x38AF JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A01 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A19 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A32 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3A44 DUP2 PUSH2 0x4282 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A63 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3A75 DUP2 PUSH2 0x4282 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A9A JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3AC6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP3 CALLDATALOAD SWAP5 PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x3AFC JUMPI DUP5 DUP6 REVERT JUMPDEST POP POP DUP6 CALLDATALOAD SWAP8 PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B3F JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3B65 JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP4 CALLDATALOAD SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B99 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1517 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BC1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1517 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BE0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BF7 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3C0A JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3C14 PUSH1 0xC0 PUSH2 0x4143 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x3C22 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C4B JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3C57 DUP8 DUP3 DUP7 ADD PUSH2 0x38BF JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C8E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3CA5 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3CB8 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3CC2 PUSH1 0xC0 PUSH2 0x4143 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x3CCD DUP2 PUSH2 0x4282 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x3CE5 PUSH1 0x40 DUP5 ADD PUSH2 0x3921 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C4B JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D0E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x3D17 DUP2 PUSH2 0x4143 JUMP JUMPDEST SWAP1 POP PUSH2 0x3D22 DUP4 PUSH2 0x3921 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3D95 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3DBA JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3DCD JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3DDB JUMPI DUP5 DUP6 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3DEC JUMPI DUP5 DUP6 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3E0D JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3E36 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x41E2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3E5C DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x41E2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x3E9E DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x41E2 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x3ECF DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x41E2 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3F08 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x3E1E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x3F1A DUP2 DUP6 PUSH2 0x3E1E JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3F5E JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3F42 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x15B4 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3FA4 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x3E1E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3FB6 DUP2 DUP8 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x15B4 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2ECE PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x402C JUMPI PUSH2 0x402C PUSH2 0x4256 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x402C JUMPI PUSH2 0x402C PUSH2 0x4256 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1517 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD PUSH2 0x4103 DUP3 DUP6 ADD DUP3 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST POP POP PUSH2 0x140 DUP4 DUP2 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x180 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x1A0 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x1C0 SWAP3 DUP4 ADD MLOAD SWAP3 SWAP1 SWAP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x416C JUMPI PUSH2 0x416C PUSH2 0x426C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4187 JUMPI PUSH2 0x4187 PUSH2 0x4240 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x41A7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x41C6 JUMPI PUSH2 0x41C6 PUSH2 0x4240 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x41DD JUMPI PUSH2 0x41DD PUSH2 0x4240 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x41FD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x41E5 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1316 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x421D JUMPI PUSH2 0x421D PUSH2 0x4240 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4239 JUMPI PUSH2 0x4239 PUSH2 0x4240 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x85F JUMPI PUSH1 0x0 DUP1 REVERT INVALID CREATE SWAP9 0xB7 PUSH21 0x2E998F92A3C749F35E64EF555EDCECEC4B78A00C53 0x2A 0x4F CODESIZE MSIZE ISZERO SWAP6 JUMPDEST LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH16 0xBE90C5E63801CA92BADC10BC72A58619 GASLIMIT PUSH31 0xCA24171FA149899255B2D6DDB164736F6C6343000802003300000000000000 ","sourceMap":"562:19530:67:-:0;;;4008:417;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4199:11;4212:5;-1:-1:-1;;;4232:10:67;4244:8;4199:11;1412:21:18;4244:8:67;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;2211:2:103;1619:70:12::1;::::0;::::1;2193:21:103::0;2250:2;2230:18;;;2223:30;2289:34;2269:18;;;2262:62;-1:-1:-1;;;2340:18:103;;;2333:33;2383:19;;1619:70:12::1;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;;1459:6:18::1;:14:::0;;-1:-1:-1;;;;;;1459:14:18::1;-1:-1:-1::0;;;;;1459:14:18;::::1;;::::0;;-1:-1:-1;1483:11:18::1;:24:::0;;;1579:31:::1;1599:10:::0;1579:19:::1;:31::i;:::-;1565:11;:45:::0;;-1:-1:-1;;;;;;1565:45:18::1;-1:-1:-1::0;;;;;1565:45:18;;;::::1;::::0;;;::::1;::::0;;1654:37:::1;-1:-1:-1::0;;;1654:19:18::1;:37::i;:::-;1620:15;:72:::0;;-1:-1:-1;;;;;;1620:72:18::1;-1:-1:-1::0;;;;;1620:72:18;;;::::1;::::0;;;::::1;::::0;;1738:38:::1;-1:-1:-1::0;;;1738:19:18::1;:38::i;:::-;1702:16;:75:::0;;-1:-1:-1;;;;;;1702:75:18::1;-1:-1:-1::0;;;;;1702:75:18;;;::::1;::::0;;;::::1;::::0;;1793:32:::1;::::0;1819:4:::1;1144:51:103::0;;1793:32:18::1;::::0;1132:2:103;1117:18;1793:32:18::1;;;;;;;-1:-1:-1::0;;4268:6:67::1;:22:::0;;-1:-1:-1;;;;;;4268:22:67::1;-1:-1:-1::0;;;;;4268:22:67;::::1;;::::0;;-1:-1:-1;;;4300:9:67::1;:20:::0;;;4331:44:::1;-1:-1:-1::0;4362:12:67::1;719:10:59::0;640:96;;4362:12:67::1;4331:10;:44::i;:::-;4385:33;907:20;4410:7:::0;4385:10:::1;:33::i;:::-;4008:417:::0;;;;;;562:19530;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1352:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1325:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;;4875:145;;;;:::o;6824:110:37:-;6902:25;6913:4;6919:7;6902:10;:25::i;:::-;6824:110;;:::o;7474:233::-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:37;;;;;;;;;;;;7552:149;;7595:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7595:29:37;;;;;;;;;:36;;-1:-1:-1;;7595:36:37;7627:4;7595:36;;;7677:12;719:10:59;640:96;;7677:12:37;-1:-1:-1;;;;;7650:40:37;7668:7;-1:-1:-1;;;;;7650:40:37;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;196:218;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:574::-;;;;;;;627:3;615:9;606:7;602:23;598:33;595:2;;;649:6;641;634:22;595:2;683:9;677:16;667:26;;712:49;757:2;746:9;742:18;712:49;:::i;:::-;702:59;;780:49;825:2;814:9;810:18;780:49;:::i;:::-;770:59;;869:2;858:9;854:18;848:25;838:35;;913:3;902:9;898:19;892:26;882:36;;937:50;982:3;971:9;967:19;937:50;:::i;:::-;927:60;;585:408;;;;;;;;:::o;1388:616::-;1635:25;;;1622:3;1607:19;;1690:1;1679:13;;1669:2;;1735:10;1730:3;1726:20;1723:1;1716:31;1770:4;1767:1;1760:15;1798:4;1795:1;1788:15;1669:2;1844;1829:18;;1822:34;;;;-1:-1:-1;;;;;1930:15:103;;;1925:2;1910:18;;1903:43;1982:15;;1977:2;1962:18;;;1955:43;1589:415;;-1:-1:-1;1589:415:103:o;2183:225::-;562:19530:67;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:38626:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"71:107:103","statements":[{"nodeType":"YulAssignment","src":"81:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"96:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"90:5:103"},"nodeType":"YulFunctionCall","src":"90:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:103"}]},{"body":{"nodeType":"YulBlock","src":"156:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"165:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"168:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"158:6:103"},"nodeType":"YulFunctionCall","src":"158:12:103"},"nodeType":"YulExpressionStatement","src":"158:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"125:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"146:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"139:6:103"},"nodeType":"YulFunctionCall","src":"139:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"122:2:103"},"nodeType":"YulFunctionCall","src":"122:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"115:6:103"},"nodeType":"YulFunctionCall","src":"115:40:103"},"nodeType":"YulIf","src":"112:2:103"}]},"name":"abi_decode_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"50:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"61:5:103","type":""}],"src":"14:164:103"},{"body":{"nodeType":"YulBlock","src":"246:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"295:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"304:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"311:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"297:6:103"},"nodeType":"YulFunctionCall","src":"297:20:103"},"nodeType":"YulExpressionStatement","src":"297:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"274:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"282:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"270:3:103"},"nodeType":"YulFunctionCall","src":"270:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"289:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"266:3:103"},"nodeType":"YulFunctionCall","src":"266:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"259:6:103"},"nodeType":"YulFunctionCall","src":"259:35:103"},"nodeType":"YulIf","src":"256:2:103"},{"nodeType":"YulVariableDeclaration","src":"328:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"344:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"338:5:103"},"nodeType":"YulFunctionCall","src":"338:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"332:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"390:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"392:16:103"},"nodeType":"YulFunctionCall","src":"392:18:103"},"nodeType":"YulExpressionStatement","src":"392:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"366:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"370:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"363:2:103"},"nodeType":"YulFunctionCall","src":"363:26:103"},"nodeType":"YulIf","src":"360:2:103"},{"nodeType":"YulVariableDeclaration","src":"421:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"464:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"468:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"460:3:103"},"nodeType":"YulFunctionCall","src":"460:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"479:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"475:3:103"},"nodeType":"YulFunctionCall","src":"475:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"456:3:103"},"nodeType":"YulFunctionCall","src":"456:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"485:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"452:3:103"},"nodeType":"YulFunctionCall","src":"452:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"436:15:103"},"nodeType":"YulFunctionCall","src":"436:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"425:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"507:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"516:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"500:6:103"},"nodeType":"YulFunctionCall","src":"500:19:103"},"nodeType":"YulExpressionStatement","src":"500:19:103"},{"body":{"nodeType":"YulBlock","src":"567:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"576:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"583:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"569:6:103"},"nodeType":"YulFunctionCall","src":"569:20:103"},"nodeType":"YulExpressionStatement","src":"569:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"542:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"550:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"538:3:103"},"nodeType":"YulFunctionCall","src":"538:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"555:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"534:3:103"},"nodeType":"YulFunctionCall","src":"534:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"562:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"531:2:103"},"nodeType":"YulFunctionCall","src":"531:35:103"},"nodeType":"YulIf","src":"528:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"626:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"634:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"622:3:103"},"nodeType":"YulFunctionCall","src":"622:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"645:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"654:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"641:3:103"},"nodeType":"YulFunctionCall","src":"641:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"661:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"600:21:103"},"nodeType":"YulFunctionCall","src":"600:64:103"},"nodeType":"YulExpressionStatement","src":"600:64:103"},{"nodeType":"YulAssignment","src":"673:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"682:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"673:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"220:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"228:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"236:5:103","type":""}],"src":"183:512:103"},{"body":{"nodeType":"YulBlock","src":"773:87:103","statements":[{"nodeType":"YulAssignment","src":"783:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"798:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"792:5:103"},"nodeType":"YulFunctionCall","src":"792:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"783:5:103"}]},{"body":{"nodeType":"YulBlock","src":"838:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"847:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"850:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"840:6:103"},"nodeType":"YulFunctionCall","src":"840:12:103"},"nodeType":"YulExpressionStatement","src":"840:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"827:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"834:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"824:2:103"},"nodeType":"YulFunctionCall","src":"824:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"817:6:103"},"nodeType":"YulFunctionCall","src":"817:20:103"},"nodeType":"YulIf","src":"814:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"752:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"763:5:103","type":""}],"src":"700:160:103"},{"body":{"nodeType":"YulBlock","src":"935:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"981:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"990:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"998:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"983:6:103"},"nodeType":"YulFunctionCall","src":"983:22:103"},"nodeType":"YulExpressionStatement","src":"983:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"956:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"965:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"952:3:103"},"nodeType":"YulFunctionCall","src":"952:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"977:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"948:3:103"},"nodeType":"YulFunctionCall","src":"948:32:103"},"nodeType":"YulIf","src":"945:2:103"},{"nodeType":"YulVariableDeclaration","src":"1016:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1042:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1029:12:103"},"nodeType":"YulFunctionCall","src":"1029:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1020:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1086:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1061:24:103"},"nodeType":"YulFunctionCall","src":"1061:31:103"},"nodeType":"YulExpressionStatement","src":"1061:31:103"},{"nodeType":"YulAssignment","src":"1101:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1111:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1101:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"901:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"912:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"924:6:103","type":""}],"src":"865:257:103"},{"body":{"nodeType":"YulBlock","src":"1208:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1254:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1263:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1271:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1256:6:103"},"nodeType":"YulFunctionCall","src":"1256:22:103"},"nodeType":"YulExpressionStatement","src":"1256:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1229:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1238:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1225:3:103"},"nodeType":"YulFunctionCall","src":"1225:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1250:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1221:3:103"},"nodeType":"YulFunctionCall","src":"1221:32:103"},"nodeType":"YulIf","src":"1218:2:103"},{"nodeType":"YulVariableDeclaration","src":"1289:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1308:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1302:5:103"},"nodeType":"YulFunctionCall","src":"1302:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1293:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1352:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1327:24:103"},"nodeType":"YulFunctionCall","src":"1327:31:103"},"nodeType":"YulExpressionStatement","src":"1327:31:103"},{"nodeType":"YulAssignment","src":"1367:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1377:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1367:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1174:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1185:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1197:6:103","type":""}],"src":"1127:261:103"},{"body":{"nodeType":"YulBlock","src":"1514:341:103","statements":[{"body":{"nodeType":"YulBlock","src":"1561:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1570:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1578:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1563:6:103"},"nodeType":"YulFunctionCall","src":"1563:22:103"},"nodeType":"YulExpressionStatement","src":"1563:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1535:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1544:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:103"},"nodeType":"YulFunctionCall","src":"1531:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1556:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1527:3:103"},"nodeType":"YulFunctionCall","src":"1527:33:103"},"nodeType":"YulIf","src":"1524:2:103"},{"nodeType":"YulVariableDeclaration","src":"1596:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1622:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1609:12:103"},"nodeType":"YulFunctionCall","src":"1609:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1600:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1666:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1641:24:103"},"nodeType":"YulFunctionCall","src":"1641:31:103"},"nodeType":"YulExpressionStatement","src":"1641:31:103"},{"nodeType":"YulAssignment","src":"1681:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1691:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1681:6:103"}]},{"nodeType":"YulAssignment","src":"1705:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1732:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1743:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1728:3:103"},"nodeType":"YulFunctionCall","src":"1728:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1715:12:103"},"nodeType":"YulFunctionCall","src":"1715:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1705:6:103"}]},{"nodeType":"YulAssignment","src":"1756:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1783:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1794:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1779:3:103"},"nodeType":"YulFunctionCall","src":"1779:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1766:12:103"},"nodeType":"YulFunctionCall","src":"1766:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1756:6:103"}]},{"nodeType":"YulAssignment","src":"1807:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1845:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1817:12:103"},"nodeType":"YulFunctionCall","src":"1817:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1807:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1456:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1467:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1479:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1487:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1495:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1503:6:103","type":""}],"src":"1393:462:103"},{"body":{"nodeType":"YulBlock","src":"1938:134:103","statements":[{"body":{"nodeType":"YulBlock","src":"1984:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1993:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2001:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1986:6:103"},"nodeType":"YulFunctionCall","src":"1986:22:103"},"nodeType":"YulExpressionStatement","src":"1986:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1959:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1968:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1955:3:103"},"nodeType":"YulFunctionCall","src":"1955:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1980:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1951:3:103"},"nodeType":"YulFunctionCall","src":"1951:32:103"},"nodeType":"YulIf","src":"1948:2:103"},{"nodeType":"YulAssignment","src":"2019:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2056:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"2029:26:103"},"nodeType":"YulFunctionCall","src":"2029:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2019:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1904:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1915:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1927:6:103","type":""}],"src":"1860:212:103"},{"body":{"nodeType":"YulBlock","src":"2189:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"2235:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2244:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2252:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2237:6:103"},"nodeType":"YulFunctionCall","src":"2237:22:103"},"nodeType":"YulExpressionStatement","src":"2237:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2210:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2219:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2206:3:103"},"nodeType":"YulFunctionCall","src":"2206:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2231:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2202:3:103"},"nodeType":"YulFunctionCall","src":"2202:32:103"},"nodeType":"YulIf","src":"2199:2:103"},{"nodeType":"YulAssignment","src":"2270:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2307:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"2280:26:103"},"nodeType":"YulFunctionCall","src":"2280:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2270:6:103"}]},{"nodeType":"YulAssignment","src":"2326:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2346:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2357:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2342:3:103"},"nodeType":"YulFunctionCall","src":"2342:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2336:5:103"},"nodeType":"YulFunctionCall","src":"2336:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2326:6:103"}]},{"nodeType":"YulAssignment","src":"2370:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2401:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2386:3:103"},"nodeType":"YulFunctionCall","src":"2386:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2380:5:103"},"nodeType":"YulFunctionCall","src":"2380:25:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2370:6:103"}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2139:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2150:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2162:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2170:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2178:6:103","type":""}],"src":"2077:334:103"},{"body":{"nodeType":"YulBlock","src":"2486:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2532:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2541:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2549:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2534:6:103"},"nodeType":"YulFunctionCall","src":"2534:22:103"},"nodeType":"YulExpressionStatement","src":"2534:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2507:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2516:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2503:3:103"},"nodeType":"YulFunctionCall","src":"2503:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2528:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2499:3:103"},"nodeType":"YulFunctionCall","src":"2499:32:103"},"nodeType":"YulIf","src":"2496:2:103"},{"nodeType":"YulAssignment","src":"2567:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2590:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2577:12:103"},"nodeType":"YulFunctionCall","src":"2577:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2567:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2452:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2463:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2475:6:103","type":""}],"src":"2416:190:103"},{"body":{"nodeType":"YulBlock","src":"2692:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"2738:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2747:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2755:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2740:6:103"},"nodeType":"YulFunctionCall","src":"2740:22:103"},"nodeType":"YulExpressionStatement","src":"2740:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2713:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2722:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2709:3:103"},"nodeType":"YulFunctionCall","src":"2709:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2734:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:32:103"},"nodeType":"YulIf","src":"2702:2:103"},{"nodeType":"YulAssignment","src":"2773:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2789:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2783:5:103"},"nodeType":"YulFunctionCall","src":"2783:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2773:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2658:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2669:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2681:6:103","type":""}],"src":"2611:194:103"},{"body":{"nodeType":"YulBlock","src":"2897:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"2943:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2952:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2960:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2945:6:103"},"nodeType":"YulFunctionCall","src":"2945:22:103"},"nodeType":"YulExpressionStatement","src":"2945:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2918:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2927:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2914:3:103"},"nodeType":"YulFunctionCall","src":"2914:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2939:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2910:3:103"},"nodeType":"YulFunctionCall","src":"2910:32:103"},"nodeType":"YulIf","src":"2907:2:103"},{"nodeType":"YulAssignment","src":"2978:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3001:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2988:12:103"},"nodeType":"YulFunctionCall","src":"2988:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2978:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3020:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3050:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3061:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3046:3:103"},"nodeType":"YulFunctionCall","src":"3046:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3033:12:103"},"nodeType":"YulFunctionCall","src":"3033:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3024:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3099:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3074:24:103"},"nodeType":"YulFunctionCall","src":"3074:31:103"},"nodeType":"YulExpressionStatement","src":"3074:31:103"},{"nodeType":"YulAssignment","src":"3114:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3124:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3114:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2855:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2866:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2878:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2886:6:103","type":""}],"src":"2810:325:103"},{"body":{"nodeType":"YulBlock","src":"3244:289:103","statements":[{"body":{"nodeType":"YulBlock","src":"3290:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3299:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"3307:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3292:6:103"},"nodeType":"YulFunctionCall","src":"3292:22:103"},"nodeType":"YulExpressionStatement","src":"3292:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3265:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3274:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3261:3:103"},"nodeType":"YulFunctionCall","src":"3261:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3286:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3257:3:103"},"nodeType":"YulFunctionCall","src":"3257:32:103"},"nodeType":"YulIf","src":"3254:2:103"},{"nodeType":"YulAssignment","src":"3325:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3348:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3335:12:103"},"nodeType":"YulFunctionCall","src":"3335:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3325:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3367:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3393:3:103"},"nodeType":"YulFunctionCall","src":"3393:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3380:12:103"},"nodeType":"YulFunctionCall","src":"3380:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3371:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3446:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3421:24:103"},"nodeType":"YulFunctionCall","src":"3421:31:103"},"nodeType":"YulExpressionStatement","src":"3421:31:103"},{"nodeType":"YulAssignment","src":"3461:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3471:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3461:6:103"}]},{"nodeType":"YulAssignment","src":"3485:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3512:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3523:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3508:3:103"},"nodeType":"YulFunctionCall","src":"3508:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3495:12:103"},"nodeType":"YulFunctionCall","src":"3495:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3485:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3194:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3205:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3217:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3225:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3233:6:103","type":""}],"src":"3140:393:103"},{"body":{"nodeType":"YulBlock","src":"3642:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"3688:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3697:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"3705:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3690:6:103"},"nodeType":"YulFunctionCall","src":"3690:22:103"},"nodeType":"YulExpressionStatement","src":"3690:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3663:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3672:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3659:3:103"},"nodeType":"YulFunctionCall","src":"3659:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3684:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3655:3:103"},"nodeType":"YulFunctionCall","src":"3655:32:103"},"nodeType":"YulIf","src":"3652:2:103"},{"nodeType":"YulAssignment","src":"3723:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3746:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3733:12:103"},"nodeType":"YulFunctionCall","src":"3733:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3723:6:103"}]},{"nodeType":"YulAssignment","src":"3765:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3803:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3788:3:103"},"nodeType":"YulFunctionCall","src":"3788:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3775:12:103"},"nodeType":"YulFunctionCall","src":"3775:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3765:6:103"}]},{"nodeType":"YulAssignment","src":"3816:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3839:3:103"},"nodeType":"YulFunctionCall","src":"3839:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3826:12:103"},"nodeType":"YulFunctionCall","src":"3826:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3816:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3592:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3603:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3615:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3623:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3631:6:103","type":""}],"src":"3538:326:103"},{"body":{"nodeType":"YulBlock","src":"3990:274:103","statements":[{"body":{"nodeType":"YulBlock","src":"4037:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4046:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4054:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4039:6:103"},"nodeType":"YulFunctionCall","src":"4039:22:103"},"nodeType":"YulExpressionStatement","src":"4039:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4011:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4020:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4007:3:103"},"nodeType":"YulFunctionCall","src":"4007:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4032:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4003:3:103"},"nodeType":"YulFunctionCall","src":"4003:33:103"},"nodeType":"YulIf","src":"4000:2:103"},{"nodeType":"YulAssignment","src":"4072:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4095:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4082:12:103"},"nodeType":"YulFunctionCall","src":"4082:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4072:6:103"}]},{"nodeType":"YulAssignment","src":"4114:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4152:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4137:3:103"},"nodeType":"YulFunctionCall","src":"4137:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4124:12:103"},"nodeType":"YulFunctionCall","src":"4124:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4114:6:103"}]},{"nodeType":"YulAssignment","src":"4165:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4203:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4188:3:103"},"nodeType":"YulFunctionCall","src":"4188:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4175:12:103"},"nodeType":"YulFunctionCall","src":"4175:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4165:6:103"}]},{"nodeType":"YulAssignment","src":"4216:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4243:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4254:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4239:3:103"},"nodeType":"YulFunctionCall","src":"4239:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4226:12:103"},"nodeType":"YulFunctionCall","src":"4226:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4216:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3932:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3943:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3955:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3963:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3971:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3979:6:103","type":""}],"src":"3869:395:103"},{"body":{"nodeType":"YulBlock","src":"4441:430:103","statements":[{"body":{"nodeType":"YulBlock","src":"4488:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4497:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4505:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4490:6:103"},"nodeType":"YulFunctionCall","src":"4490:22:103"},"nodeType":"YulExpressionStatement","src":"4490:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4462:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4471:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4458:3:103"},"nodeType":"YulFunctionCall","src":"4458:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4483:3:103","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4454:3:103"},"nodeType":"YulFunctionCall","src":"4454:33:103"},"nodeType":"YulIf","src":"4451:2:103"},{"nodeType":"YulAssignment","src":"4523:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4546:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4533:12:103"},"nodeType":"YulFunctionCall","src":"4533:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4523:6:103"}]},{"nodeType":"YulAssignment","src":"4565:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4603:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4588:3:103"},"nodeType":"YulFunctionCall","src":"4588:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4575:12:103"},"nodeType":"YulFunctionCall","src":"4575:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4565:6:103"}]},{"nodeType":"YulAssignment","src":"4616:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4654:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4639:3:103"},"nodeType":"YulFunctionCall","src":"4639:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4626:12:103"},"nodeType":"YulFunctionCall","src":"4626:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4616:6:103"}]},{"nodeType":"YulAssignment","src":"4667:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4694:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4705:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4690:3:103"},"nodeType":"YulFunctionCall","src":"4690:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4677:12:103"},"nodeType":"YulFunctionCall","src":"4677:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4667:6:103"}]},{"nodeType":"YulAssignment","src":"4718:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4745:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4756:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4741:3:103"},"nodeType":"YulFunctionCall","src":"4741:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4728:12:103"},"nodeType":"YulFunctionCall","src":"4728:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4718:6:103"}]},{"nodeType":"YulAssignment","src":"4770:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4797:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4808:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4793:3:103"},"nodeType":"YulFunctionCall","src":"4793:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4780:12:103"},"nodeType":"YulFunctionCall","src":"4780:33:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"4770:6:103"}]},{"nodeType":"YulAssignment","src":"4822:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4849:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4860:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4845:3:103"},"nodeType":"YulFunctionCall","src":"4845:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4832:12:103"},"nodeType":"YulFunctionCall","src":"4832:33:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"4822:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_uint256t_uint256t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4359:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4370:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4382:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4390:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4398:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4406:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4414:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"4422:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"4430:6:103","type":""}],"src":"4269:602:103"},{"body":{"nodeType":"YulBlock","src":"4963:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"5009:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5018:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5026:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5011:6:103"},"nodeType":"YulFunctionCall","src":"5011:22:103"},"nodeType":"YulExpressionStatement","src":"5011:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4984:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4993:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4980:3:103"},"nodeType":"YulFunctionCall","src":"4980:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5005:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4976:3:103"},"nodeType":"YulFunctionCall","src":"4976:32:103"},"nodeType":"YulIf","src":"4973:2:103"},{"nodeType":"YulAssignment","src":"5044:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5067:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5054:12:103"},"nodeType":"YulFunctionCall","src":"5054:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5044:6:103"}]},{"nodeType":"YulAssignment","src":"5086:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5113:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5124:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5109:3:103"},"nodeType":"YulFunctionCall","src":"5109:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5096:12:103"},"nodeType":"YulFunctionCall","src":"5096:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5086:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4921:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4932:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4944:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4952:6:103","type":""}],"src":"4876:258:103"},{"body":{"nodeType":"YulBlock","src":"5243:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"5289:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5298:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5306:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5291:6:103"},"nodeType":"YulFunctionCall","src":"5291:22:103"},"nodeType":"YulExpressionStatement","src":"5291:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5264:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5273:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5260:3:103"},"nodeType":"YulFunctionCall","src":"5260:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5285:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5256:3:103"},"nodeType":"YulFunctionCall","src":"5256:32:103"},"nodeType":"YulIf","src":"5253:2:103"},{"nodeType":"YulAssignment","src":"5324:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5347:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5334:12:103"},"nodeType":"YulFunctionCall","src":"5334:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5324:6:103"}]},{"nodeType":"YulAssignment","src":"5366:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5404:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5389:3:103"},"nodeType":"YulFunctionCall","src":"5389:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5376:12:103"},"nodeType":"YulFunctionCall","src":"5376:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5366:6:103"}]},{"nodeType":"YulAssignment","src":"5417:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5444:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5455:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5440:3:103"},"nodeType":"YulFunctionCall","src":"5440:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5427:12:103"},"nodeType":"YulFunctionCall","src":"5427:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5417:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5193:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5204:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5216:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5224:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5232:6:103","type":""}],"src":"5139:326:103"},{"body":{"nodeType":"YulBlock","src":"5608:326:103","statements":[{"body":{"nodeType":"YulBlock","src":"5655:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5664:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5672:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5657:6:103"},"nodeType":"YulFunctionCall","src":"5657:22:103"},"nodeType":"YulExpressionStatement","src":"5657:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5629:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5638:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5625:3:103"},"nodeType":"YulFunctionCall","src":"5625:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5650:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5621:3:103"},"nodeType":"YulFunctionCall","src":"5621:33:103"},"nodeType":"YulIf","src":"5618:2:103"},{"nodeType":"YulAssignment","src":"5690:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5713:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5700:12:103"},"nodeType":"YulFunctionCall","src":"5700:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5690:6:103"}]},{"nodeType":"YulAssignment","src":"5732:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5759:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5770:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5755:3:103"},"nodeType":"YulFunctionCall","src":"5755:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5742:12:103"},"nodeType":"YulFunctionCall","src":"5742:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5732:6:103"}]},{"nodeType":"YulAssignment","src":"5783:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5810:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5821:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5806:3:103"},"nodeType":"YulFunctionCall","src":"5806:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5793:12:103"},"nodeType":"YulFunctionCall","src":"5793:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5783:6:103"}]},{"nodeType":"YulAssignment","src":"5834:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5872:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5857:3:103"},"nodeType":"YulFunctionCall","src":"5857:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5844:12:103"},"nodeType":"YulFunctionCall","src":"5844:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5834:6:103"}]},{"nodeType":"YulAssignment","src":"5885:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5912:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5923:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5908:3:103"},"nodeType":"YulFunctionCall","src":"5908:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5895:12:103"},"nodeType":"YulFunctionCall","src":"5895:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5885:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5542:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5553:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5565:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5573:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5581:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5589:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5597:6:103","type":""}],"src":"5470:464:103"},{"body":{"nodeType":"YulBlock","src":"6008:237:103","statements":[{"body":{"nodeType":"YulBlock","src":"6054:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6063:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6071:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6056:6:103"},"nodeType":"YulFunctionCall","src":"6056:22:103"},"nodeType":"YulExpressionStatement","src":"6056:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6029:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6038:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6025:3:103"},"nodeType":"YulFunctionCall","src":"6025:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6050:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6021:3:103"},"nodeType":"YulFunctionCall","src":"6021:32:103"},"nodeType":"YulIf","src":"6018:2:103"},{"nodeType":"YulVariableDeclaration","src":"6089:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6115:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6102:12:103"},"nodeType":"YulFunctionCall","src":"6102:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6093:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6189:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6198:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6206:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6191:6:103"},"nodeType":"YulFunctionCall","src":"6191:22:103"},"nodeType":"YulExpressionStatement","src":"6191:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6147:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6158:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6169:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6174:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6165:3:103"},"nodeType":"YulFunctionCall","src":"6165:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6154:3:103"},"nodeType":"YulFunctionCall","src":"6154:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6144:2:103"},"nodeType":"YulFunctionCall","src":"6144:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6137:6:103"},"nodeType":"YulFunctionCall","src":"6137:51:103"},"nodeType":"YulIf","src":"6134:2:103"},{"nodeType":"YulAssignment","src":"6224:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6234:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6224:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5974:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5985:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5997:6:103","type":""}],"src":"5939:306:103"},{"body":{"nodeType":"YulBlock","src":"6350:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"6396:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6405:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6413:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6398:6:103"},"nodeType":"YulFunctionCall","src":"6398:22:103"},"nodeType":"YulExpressionStatement","src":"6398:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6371:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6380:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6367:3:103"},"nodeType":"YulFunctionCall","src":"6367:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6392:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6363:3:103"},"nodeType":"YulFunctionCall","src":"6363:32:103"},"nodeType":"YulIf","src":"6360:2:103"},{"nodeType":"YulVariableDeclaration","src":"6431:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6450:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6444:5:103"},"nodeType":"YulFunctionCall","src":"6444:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6435:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6493:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6502:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6510:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6495:6:103"},"nodeType":"YulFunctionCall","src":"6495:22:103"},"nodeType":"YulExpressionStatement","src":"6495:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6482:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6489:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6479:2:103"},"nodeType":"YulFunctionCall","src":"6479:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6472:6:103"},"nodeType":"YulFunctionCall","src":"6472:20:103"},"nodeType":"YulIf","src":"6469:2:103"},{"nodeType":"YulAssignment","src":"6528:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6538:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6528:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6316:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6327:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6339:6:103","type":""}],"src":"6250:299:103"},{"body":{"nodeType":"YulBlock","src":"6664:900:103","statements":[{"body":{"nodeType":"YulBlock","src":"6710:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6719:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6727:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6712:6:103"},"nodeType":"YulFunctionCall","src":"6712:22:103"},"nodeType":"YulExpressionStatement","src":"6712:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6685:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6694:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6681:3:103"},"nodeType":"YulFunctionCall","src":"6681:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6706:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6677:3:103"},"nodeType":"YulFunctionCall","src":"6677:32:103"},"nodeType":"YulIf","src":"6674:2:103"},{"nodeType":"YulVariableDeclaration","src":"6745:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6765:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6759:5:103"},"nodeType":"YulFunctionCall","src":"6759:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6749:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6784:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6794:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6788:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6839:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6848:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6856:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6841:6:103"},"nodeType":"YulFunctionCall","src":"6841:22:103"},"nodeType":"YulExpressionStatement","src":"6841:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6827:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6835:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6824:2:103"},"nodeType":"YulFunctionCall","src":"6824:14:103"},"nodeType":"YulIf","src":"6821:2:103"},{"nodeType":"YulVariableDeclaration","src":"6874:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6888:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6899:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6884:3:103"},"nodeType":"YulFunctionCall","src":"6884:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6878:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6946:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6955:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6963:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6948:6:103"},"nodeType":"YulFunctionCall","src":"6948:22:103"},"nodeType":"YulExpressionStatement","src":"6948:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6926:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6935:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6922:3:103"},"nodeType":"YulFunctionCall","src":"6922:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"6940:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6918:3:103"},"nodeType":"YulFunctionCall","src":"6918:27:103"},"nodeType":"YulIf","src":"6915:2:103"},{"nodeType":"YulVariableDeclaration","src":"6981:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7010:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6994:15:103"},"nodeType":"YulFunctionCall","src":"6994:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6985:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7024:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7045:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7039:5:103"},"nodeType":"YulFunctionCall","src":"7039:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7028:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7083:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7092:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7100:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7085:6:103"},"nodeType":"YulFunctionCall","src":"7085:22:103"},"nodeType":"YulExpressionStatement","src":"7085:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7070:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"7079:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7067:2:103"},"nodeType":"YulFunctionCall","src":"7067:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7060:6:103"},"nodeType":"YulFunctionCall","src":"7060:22:103"},"nodeType":"YulIf","src":"7057:2:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7125:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"7132:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7118:6:103"},"nodeType":"YulFunctionCall","src":"7118:22:103"},"nodeType":"YulExpressionStatement","src":"7118:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7160:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7167:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7156:3:103"},"nodeType":"YulFunctionCall","src":"7156:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7182:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7186:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7178:3:103"},"nodeType":"YulFunctionCall","src":"7178:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7172:5:103"},"nodeType":"YulFunctionCall","src":"7172:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7149:6:103"},"nodeType":"YulFunctionCall","src":"7149:42:103"},"nodeType":"YulExpressionStatement","src":"7149:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7211:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7218:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7207:3:103"},"nodeType":"YulFunctionCall","src":"7207:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7233:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7237:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7229:3:103"},"nodeType":"YulFunctionCall","src":"7229:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7223:5:103"},"nodeType":"YulFunctionCall","src":"7223:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7200:6:103"},"nodeType":"YulFunctionCall","src":"7200:42:103"},"nodeType":"YulExpressionStatement","src":"7200:42:103"},{"nodeType":"YulVariableDeclaration","src":"7251:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7277:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7281:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7273:3:103"},"nodeType":"YulFunctionCall","src":"7273:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7267:5:103"},"nodeType":"YulFunctionCall","src":"7267:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7255:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7314:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7323:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7331:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7316:6:103"},"nodeType":"YulFunctionCall","src":"7316:22:103"},"nodeType":"YulExpressionStatement","src":"7316:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7300:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7310:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7297:2:103"},"nodeType":"YulFunctionCall","src":"7297:16:103"},"nodeType":"YulIf","src":"7294:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7360:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7367:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7356:3:103"},"nodeType":"YulFunctionCall","src":"7356:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7404:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7408:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7400:3:103"},"nodeType":"YulFunctionCall","src":"7400:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7419:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"7372:27:103"},"nodeType":"YulFunctionCall","src":"7372:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7349:6:103"},"nodeType":"YulFunctionCall","src":"7349:79:103"},"nodeType":"YulExpressionStatement","src":"7349:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7448:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7455:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7444:3:103"},"nodeType":"YulFunctionCall","src":"7444:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7471:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7475:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7467:3:103"},"nodeType":"YulFunctionCall","src":"7467:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7461:5:103"},"nodeType":"YulFunctionCall","src":"7461:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7437:6:103"},"nodeType":"YulFunctionCall","src":"7437:44:103"},"nodeType":"YulExpressionStatement","src":"7437:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7501:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7508:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7497:3:103"},"nodeType":"YulFunctionCall","src":"7497:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7524:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7528:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7520:3:103"},"nodeType":"YulFunctionCall","src":"7520:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7514:5:103"},"nodeType":"YulFunctionCall","src":"7514:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7490:6:103"},"nodeType":"YulFunctionCall","src":"7490:44:103"},"nodeType":"YulExpressionStatement","src":"7490:44:103"},{"nodeType":"YulAssignment","src":"7543:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7553:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7543:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6630:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6641:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6653:6:103","type":""}],"src":"6554:1010:103"},{"body":{"nodeType":"YulBlock","src":"7676:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"7722:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7731:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7739:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7724:6:103"},"nodeType":"YulFunctionCall","src":"7724:22:103"},"nodeType":"YulExpressionStatement","src":"7724:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7697:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7706:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7693:3:103"},"nodeType":"YulFunctionCall","src":"7693:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7718:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7689:3:103"},"nodeType":"YulFunctionCall","src":"7689:32:103"},"nodeType":"YulIf","src":"7686:2:103"},{"nodeType":"YulVariableDeclaration","src":"7757:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7777:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7771:5:103"},"nodeType":"YulFunctionCall","src":"7771:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7761:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7796:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7806:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7800:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7851:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7860:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7868:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7853:6:103"},"nodeType":"YulFunctionCall","src":"7853:22:103"},"nodeType":"YulExpressionStatement","src":"7853:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7839:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7847:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7836:2:103"},"nodeType":"YulFunctionCall","src":"7836:14:103"},"nodeType":"YulIf","src":"7833:2:103"},{"nodeType":"YulVariableDeclaration","src":"7886:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7900:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"7911:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7896:3:103"},"nodeType":"YulFunctionCall","src":"7896:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7890:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7958:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7967:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7975:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7960:6:103"},"nodeType":"YulFunctionCall","src":"7960:22:103"},"nodeType":"YulExpressionStatement","src":"7960:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7938:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"7947:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7934:3:103"},"nodeType":"YulFunctionCall","src":"7934:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"7952:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7930:3:103"},"nodeType":"YulFunctionCall","src":"7930:27:103"},"nodeType":"YulIf","src":"7927:2:103"},{"nodeType":"YulVariableDeclaration","src":"7993:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8022:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8006:15:103"},"nodeType":"YulFunctionCall","src":"8006:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7997:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8036:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8057:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8051:5:103"},"nodeType":"YulFunctionCall","src":"8051:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"8040:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8094:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8069:24:103"},"nodeType":"YulFunctionCall","src":"8069:33:103"},"nodeType":"YulExpressionStatement","src":"8069:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8118:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"8125:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8111:6:103"},"nodeType":"YulFunctionCall","src":"8111:22:103"},"nodeType":"YulExpressionStatement","src":"8111:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8153:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8160:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8149:3:103"},"nodeType":"YulFunctionCall","src":"8149:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8175:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8179:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8171:3:103"},"nodeType":"YulFunctionCall","src":"8171:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8165:5:103"},"nodeType":"YulFunctionCall","src":"8165:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8142:6:103"},"nodeType":"YulFunctionCall","src":"8142:42:103"},"nodeType":"YulExpressionStatement","src":"8142:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8204:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8211:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8200:3:103"},"nodeType":"YulFunctionCall","src":"8200:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8263:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8267:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8259:3:103"},"nodeType":"YulFunctionCall","src":"8259:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"8216:42:103"},"nodeType":"YulFunctionCall","src":"8216:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8193:6:103"},"nodeType":"YulFunctionCall","src":"8193:79:103"},"nodeType":"YulExpressionStatement","src":"8193:79:103"},{"nodeType":"YulVariableDeclaration","src":"8281:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8307:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8311:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8303:3:103"},"nodeType":"YulFunctionCall","src":"8303:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8297:5:103"},"nodeType":"YulFunctionCall","src":"8297:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8285:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8344:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8353:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8361:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8346:6:103"},"nodeType":"YulFunctionCall","src":"8346:22:103"},"nodeType":"YulExpressionStatement","src":"8346:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8330:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8340:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8327:2:103"},"nodeType":"YulFunctionCall","src":"8327:16:103"},"nodeType":"YulIf","src":"8324:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8390:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8397:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8386:3:103"},"nodeType":"YulFunctionCall","src":"8386:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8434:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8438:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8430:3:103"},"nodeType":"YulFunctionCall","src":"8430:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8449:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"8402:27:103"},"nodeType":"YulFunctionCall","src":"8402:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8379:6:103"},"nodeType":"YulFunctionCall","src":"8379:79:103"},"nodeType":"YulExpressionStatement","src":"8379:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8478:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8485:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8474:3:103"},"nodeType":"YulFunctionCall","src":"8474:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8501:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8505:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8497:3:103"},"nodeType":"YulFunctionCall","src":"8497:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8491:5:103"},"nodeType":"YulFunctionCall","src":"8491:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8467:6:103"},"nodeType":"YulFunctionCall","src":"8467:44:103"},"nodeType":"YulExpressionStatement","src":"8467:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8531:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8538:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8527:3:103"},"nodeType":"YulFunctionCall","src":"8527:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8554:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8558:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8550:3:103"},"nodeType":"YulFunctionCall","src":"8550:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8544:5:103"},"nodeType":"YulFunctionCall","src":"8544:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8520:6:103"},"nodeType":"YulFunctionCall","src":"8520:44:103"},"nodeType":"YulExpressionStatement","src":"8520:44:103"},{"nodeType":"YulAssignment","src":"8573:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"8583:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8573:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7642:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7653:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7665:6:103","type":""}],"src":"7569:1025:103"},{"body":{"nodeType":"YulBlock","src":"8704:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8714:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8724:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8718:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8772:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8781:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8789:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8774:6:103"},"nodeType":"YulFunctionCall","src":"8774:22:103"},"nodeType":"YulExpressionStatement","src":"8774:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8747:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8756:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8743:3:103"},"nodeType":"YulFunctionCall","src":"8743:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8768:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8739:3:103"},"nodeType":"YulFunctionCall","src":"8739:32:103"},"nodeType":"YulIf","src":"8736:2:103"},{"nodeType":"YulVariableDeclaration","src":"8807:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8836:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8820:15:103"},"nodeType":"YulFunctionCall","src":"8820:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8811:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8855:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8905:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"8862:42:103"},"nodeType":"YulFunctionCall","src":"8862:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8848:6:103"},"nodeType":"YulFunctionCall","src":"8848:68:103"},"nodeType":"YulExpressionStatement","src":"8848:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8936:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8943:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8932:3:103"},"nodeType":"YulFunctionCall","src":"8932:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8958:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8969:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8954:3:103"},"nodeType":"YulFunctionCall","src":"8954:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8948:5:103"},"nodeType":"YulFunctionCall","src":"8948:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8925:6:103"},"nodeType":"YulFunctionCall","src":"8925:49:103"},"nodeType":"YulExpressionStatement","src":"8925:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8994:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9001:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8990:3:103"},"nodeType":"YulFunctionCall","src":"8990:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9016:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9027:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9012:3:103"},"nodeType":"YulFunctionCall","src":"9012:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9006:5:103"},"nodeType":"YulFunctionCall","src":"9006:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8983:6:103"},"nodeType":"YulFunctionCall","src":"8983:49:103"},"nodeType":"YulExpressionStatement","src":"8983:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9052:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9059:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9048:3:103"},"nodeType":"YulFunctionCall","src":"9048:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9074:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9085:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9070:3:103"},"nodeType":"YulFunctionCall","src":"9070:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9064:5:103"},"nodeType":"YulFunctionCall","src":"9064:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9041:6:103"},"nodeType":"YulFunctionCall","src":"9041:49:103"},"nodeType":"YulExpressionStatement","src":"9041:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9110:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9117:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9106:3:103"},"nodeType":"YulFunctionCall","src":"9106:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9144:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9129:3:103"},"nodeType":"YulFunctionCall","src":"9129:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9123:5:103"},"nodeType":"YulFunctionCall","src":"9123:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9099:6:103"},"nodeType":"YulFunctionCall","src":"9099:51:103"},"nodeType":"YulExpressionStatement","src":"9099:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9170:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9177:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9166:3:103"},"nodeType":"YulFunctionCall","src":"9166:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9193:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9204:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9189:3:103"},"nodeType":"YulFunctionCall","src":"9189:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9183:5:103"},"nodeType":"YulFunctionCall","src":"9183:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9159:6:103"},"nodeType":"YulFunctionCall","src":"9159:51:103"},"nodeType":"YulExpressionStatement","src":"9159:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9230:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9237:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9226:3:103"},"nodeType":"YulFunctionCall","src":"9226:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9253:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9264:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9249:3:103"},"nodeType":"YulFunctionCall","src":"9249:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9243:5:103"},"nodeType":"YulFunctionCall","src":"9243:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9219:6:103"},"nodeType":"YulFunctionCall","src":"9219:51:103"},"nodeType":"YulExpressionStatement","src":"9219:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9290:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9297:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9286:3:103"},"nodeType":"YulFunctionCall","src":"9286:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9313:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9324:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9309:3:103"},"nodeType":"YulFunctionCall","src":"9309:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9303:5:103"},"nodeType":"YulFunctionCall","src":"9303:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9279:6:103"},"nodeType":"YulFunctionCall","src":"9279:51:103"},"nodeType":"YulExpressionStatement","src":"9279:51:103"},{"nodeType":"YulVariableDeclaration","src":"9339:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"9349:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9343:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9372:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"9379:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9368:3:103"},"nodeType":"YulFunctionCall","src":"9368:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9394:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"9405:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9390:3:103"},"nodeType":"YulFunctionCall","src":"9390:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9384:5:103"},"nodeType":"YulFunctionCall","src":"9384:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9361:6:103"},"nodeType":"YulFunctionCall","src":"9361:49:103"},"nodeType":"YulExpressionStatement","src":"9361:49:103"},{"nodeType":"YulAssignment","src":"9419:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"9429:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9419:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8670:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8681:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8693:6:103","type":""}],"src":"8599:841:103"},{"body":{"nodeType":"YulBlock","src":"9515:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"9561:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9570:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9578:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9563:6:103"},"nodeType":"YulFunctionCall","src":"9563:22:103"},"nodeType":"YulExpressionStatement","src":"9563:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9536:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9545:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9532:3:103"},"nodeType":"YulFunctionCall","src":"9532:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9557:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9528:3:103"},"nodeType":"YulFunctionCall","src":"9528:32:103"},"nodeType":"YulIf","src":"9525:2:103"},{"nodeType":"YulAssignment","src":"9596:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9619:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9606:12:103"},"nodeType":"YulFunctionCall","src":"9606:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9596:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9481:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9492:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9504:6:103","type":""}],"src":"9445:190:103"},{"body":{"nodeType":"YulBlock","src":"9721:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"9767:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9776:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9784:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9769:6:103"},"nodeType":"YulFunctionCall","src":"9769:22:103"},"nodeType":"YulExpressionStatement","src":"9769:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9742:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9751:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9738:3:103"},"nodeType":"YulFunctionCall","src":"9738:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9763:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9734:3:103"},"nodeType":"YulFunctionCall","src":"9734:32:103"},"nodeType":"YulIf","src":"9731:2:103"},{"nodeType":"YulAssignment","src":"9802:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9818:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9812:5:103"},"nodeType":"YulFunctionCall","src":"9812:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9802:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9687:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9698:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9710:6:103","type":""}],"src":"9640:194:103"},{"body":{"nodeType":"YulBlock","src":"9962:654:103","statements":[{"body":{"nodeType":"YulBlock","src":"10008:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10017:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10025:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10010:6:103"},"nodeType":"YulFunctionCall","src":"10010:22:103"},"nodeType":"YulExpressionStatement","src":"10010:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9983:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9992:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9979:3:103"},"nodeType":"YulFunctionCall","src":"9979:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"10004:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9975:3:103"},"nodeType":"YulFunctionCall","src":"9975:32:103"},"nodeType":"YulIf","src":"9972:2:103"},{"nodeType":"YulAssignment","src":"10043:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10066:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10053:12:103"},"nodeType":"YulFunctionCall","src":"10053:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10043:6:103"}]},{"nodeType":"YulAssignment","src":"10085:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10108:3:103"},"nodeType":"YulFunctionCall","src":"10108:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10095:12:103"},"nodeType":"YulFunctionCall","src":"10095:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10085:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"10136:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10167:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10178:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10163:3:103"},"nodeType":"YulFunctionCall","src":"10163:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10150:12:103"},"nodeType":"YulFunctionCall","src":"10150:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10140:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10191:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"10201:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10195:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10246:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10255:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10263:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10248:6:103"},"nodeType":"YulFunctionCall","src":"10248:22:103"},"nodeType":"YulExpressionStatement","src":"10248:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10234:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10242:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10231:2:103"},"nodeType":"YulFunctionCall","src":"10231:14:103"},"nodeType":"YulIf","src":"10228:2:103"},{"nodeType":"YulVariableDeclaration","src":"10281:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10295:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"10306:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10291:3:103"},"nodeType":"YulFunctionCall","src":"10291:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"10285:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10361:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10370:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10378:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10363:6:103"},"nodeType":"YulFunctionCall","src":"10363:22:103"},"nodeType":"YulExpressionStatement","src":"10363:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10340:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10344:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10336:3:103"},"nodeType":"YulFunctionCall","src":"10336:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10351:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10332:3:103"},"nodeType":"YulFunctionCall","src":"10332:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10325:6:103"},"nodeType":"YulFunctionCall","src":"10325:35:103"},"nodeType":"YulIf","src":"10322:2:103"},{"nodeType":"YulVariableDeclaration","src":"10396:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10423:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10410:12:103"},"nodeType":"YulFunctionCall","src":"10410:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10400:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10453:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10462:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10470:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10455:6:103"},"nodeType":"YulFunctionCall","src":"10455:22:103"},"nodeType":"YulExpressionStatement","src":"10455:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10441:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10449:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10438:2:103"},"nodeType":"YulFunctionCall","src":"10438:14:103"},"nodeType":"YulIf","src":"10435:2:103"},{"body":{"nodeType":"YulBlock","src":"10529:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10538:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10546:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10531:6:103"},"nodeType":"YulFunctionCall","src":"10531:22:103"},"nodeType":"YulExpressionStatement","src":"10531:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10502:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"10506:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10498:3:103"},"nodeType":"YulFunctionCall","src":"10498:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"10515:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10494:3:103"},"nodeType":"YulFunctionCall","src":"10494:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10520:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10491:2:103"},"nodeType":"YulFunctionCall","src":"10491:37:103"},"nodeType":"YulIf","src":"10488:2:103"},{"nodeType":"YulAssignment","src":"10564:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10578:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10582:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10574:3:103"},"nodeType":"YulFunctionCall","src":"10574:11:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10564:6:103"}]},{"nodeType":"YulAssignment","src":"10594:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"10604:6:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"10594:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9904:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9915:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9927:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9935:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9943:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9951:6:103","type":""}],"src":"9839:777:103"},{"body":{"nodeType":"YulBlock","src":"10708:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"10754:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10763:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10771:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10756:6:103"},"nodeType":"YulFunctionCall","src":"10756:22:103"},"nodeType":"YulExpressionStatement","src":"10756:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10729:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"10738:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10725:3:103"},"nodeType":"YulFunctionCall","src":"10725:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"10750:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10721:3:103"},"nodeType":"YulFunctionCall","src":"10721:32:103"},"nodeType":"YulIf","src":"10718:2:103"},{"nodeType":"YulAssignment","src":"10789:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10812:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10799:12:103"},"nodeType":"YulFunctionCall","src":"10799:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10789:6:103"}]},{"nodeType":"YulAssignment","src":"10831:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10858:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10869:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10854:3:103"},"nodeType":"YulFunctionCall","src":"10854:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10841:12:103"},"nodeType":"YulFunctionCall","src":"10841:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10831:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10666:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10677:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10689:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10697:6:103","type":""}],"src":"10621:258:103"},{"body":{"nodeType":"YulBlock","src":"10982:157:103","statements":[{"body":{"nodeType":"YulBlock","src":"11028:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11037:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11045:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11030:6:103"},"nodeType":"YulFunctionCall","src":"11030:22:103"},"nodeType":"YulExpressionStatement","src":"11030:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11003:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11012:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10999:3:103"},"nodeType":"YulFunctionCall","src":"10999:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11024:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10995:3:103"},"nodeType":"YulFunctionCall","src":"10995:32:103"},"nodeType":"YulIf","src":"10992:2:103"},{"nodeType":"YulAssignment","src":"11063:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11079:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11073:5:103"},"nodeType":"YulFunctionCall","src":"11073:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11063:6:103"}]},{"nodeType":"YulAssignment","src":"11098:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11118:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11129:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11114:3:103"},"nodeType":"YulFunctionCall","src":"11114:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11108:5:103"},"nodeType":"YulFunctionCall","src":"11108:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11098:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10940:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10951:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10963:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10971:6:103","type":""}],"src":"10884:255:103"},{"body":{"nodeType":"YulBlock","src":"11282:326:103","statements":[{"body":{"nodeType":"YulBlock","src":"11329:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11338:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"11346:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11331:6:103"},"nodeType":"YulFunctionCall","src":"11331:22:103"},"nodeType":"YulExpressionStatement","src":"11331:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11303:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11312:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11299:3:103"},"nodeType":"YulFunctionCall","src":"11299:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11324:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11295:3:103"},"nodeType":"YulFunctionCall","src":"11295:33:103"},"nodeType":"YulIf","src":"11292:2:103"},{"nodeType":"YulAssignment","src":"11364:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11387:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11374:12:103"},"nodeType":"YulFunctionCall","src":"11374:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11364:6:103"}]},{"nodeType":"YulAssignment","src":"11406:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11444:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11429:3:103"},"nodeType":"YulFunctionCall","src":"11429:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11416:12:103"},"nodeType":"YulFunctionCall","src":"11416:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11406:6:103"}]},{"nodeType":"YulAssignment","src":"11457:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11484:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11495:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11480:3:103"},"nodeType":"YulFunctionCall","src":"11480:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11467:12:103"},"nodeType":"YulFunctionCall","src":"11467:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"11457:6:103"}]},{"nodeType":"YulAssignment","src":"11508:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11535:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11546:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11531:3:103"},"nodeType":"YulFunctionCall","src":"11531:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11518:12:103"},"nodeType":"YulFunctionCall","src":"11518:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"11508:6:103"}]},{"nodeType":"YulAssignment","src":"11559:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11586:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11597:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11582:3:103"},"nodeType":"YulFunctionCall","src":"11582:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11569:12:103"},"nodeType":"YulFunctionCall","src":"11569:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"11559:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11216:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11227:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11239:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11247:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11255:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11263:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"11271:6:103","type":""}],"src":"11144:464:103"},{"body":{"nodeType":"YulBlock","src":"11654:50:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11671:3:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11690:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11683:6:103"},"nodeType":"YulFunctionCall","src":"11683:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11676:6:103"},"nodeType":"YulFunctionCall","src":"11676:21:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11664:6:103"},"nodeType":"YulFunctionCall","src":"11664:34:103"},"nodeType":"YulExpressionStatement","src":"11664:34:103"}]},"name":"abi_encode_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11638:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11645:3:103","type":""}],"src":"11613:91:103"},{"body":{"nodeType":"YulBlock","src":"11758:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"11768:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11788:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11782:5:103"},"nodeType":"YulFunctionCall","src":"11782:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11772:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11810:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"11815:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11803:6:103"},"nodeType":"YulFunctionCall","src":"11803:19:103"},"nodeType":"YulExpressionStatement","src":"11803:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11857:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"11864:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11853:3:103"},"nodeType":"YulFunctionCall","src":"11853:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11875:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"11880:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11871:3:103"},"nodeType":"YulFunctionCall","src":"11871:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"11887:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11831:21:103"},"nodeType":"YulFunctionCall","src":"11831:63:103"},"nodeType":"YulExpressionStatement","src":"11831:63:103"},{"nodeType":"YulAssignment","src":"11903:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11918:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11931:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"11939:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11927:3:103"},"nodeType":"YulFunctionCall","src":"11927:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11948:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11944:3:103"},"nodeType":"YulFunctionCall","src":"11944:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11923:3:103"},"nodeType":"YulFunctionCall","src":"11923:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11914:3:103"},"nodeType":"YulFunctionCall","src":"11914:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"11955:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11910:3:103"},"nodeType":"YulFunctionCall","src":"11910:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11903:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11735:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11742:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11750:3:103","type":""}],"src":"11709:257:103"},{"body":{"nodeType":"YulBlock","src":"12108:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"12118:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12138:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12132:5:103"},"nodeType":"YulFunctionCall","src":"12132:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12122:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12180:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12188:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12176:3:103"},"nodeType":"YulFunctionCall","src":"12176:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"12195:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12200:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12154:21:103"},"nodeType":"YulFunctionCall","src":"12154:53:103"},"nodeType":"YulExpressionStatement","src":"12154:53:103"},{"nodeType":"YulAssignment","src":"12216:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12227:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12232:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12223:3:103"},"nodeType":"YulFunctionCall","src":"12223:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12216:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12084:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12089:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12100:3:103","type":""}],"src":"11971:274:103"},{"body":{"nodeType":"YulBlock","src":"12639:397:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12656:3:103"},{"kind":"string","nodeType":"YulLiteral","src":"12661:25:103","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12649:6:103"},"nodeType":"YulFunctionCall","src":"12649:38:103"},"nodeType":"YulExpressionStatement","src":"12649:38:103"},{"nodeType":"YulVariableDeclaration","src":"12696:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12716:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12710:5:103"},"nodeType":"YulFunctionCall","src":"12710:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12700:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12758:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12766:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12754:3:103"},"nodeType":"YulFunctionCall","src":"12754:17:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12777:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"12782:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12773:3:103"},"nodeType":"YulFunctionCall","src":"12773:12:103"},{"name":"length","nodeType":"YulIdentifier","src":"12787:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12732:21:103"},"nodeType":"YulFunctionCall","src":"12732:62:103"},"nodeType":"YulExpressionStatement","src":"12732:62:103"},{"nodeType":"YulVariableDeclaration","src":"12803:26:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12817:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12822:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12813:3:103"},"nodeType":"YulFunctionCall","src":"12813:16:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12807:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12849:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"12853:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12845:3:103"},"nodeType":"YulFunctionCall","src":"12845:11:103"},{"kind":"string","nodeType":"YulLiteral","src":"12858:19:103","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12838:6:103"},"nodeType":"YulFunctionCall","src":"12838:40:103"},"nodeType":"YulExpressionStatement","src":"12838:40:103"},{"nodeType":"YulVariableDeclaration","src":"12887:29:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12909:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12903:5:103"},"nodeType":"YulFunctionCall","src":"12903:13:103"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"12891:8:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12951:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12959:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12947:3:103"},"nodeType":"YulFunctionCall","src":"12947:17:103"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12970:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"12974:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12966:3:103"},"nodeType":"YulFunctionCall","src":"12966:11:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"12979:8:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12925:21:103"},"nodeType":"YulFunctionCall","src":"12925:63:103"},"nodeType":"YulExpressionStatement","src":"12925:63:103"},{"nodeType":"YulAssignment","src":"12997:33:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13012:2:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"13016:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13008:3:103"},"nodeType":"YulFunctionCall","src":"13008:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"13027:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13004:3:103"},"nodeType":"YulFunctionCall","src":"13004:26:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12997:3:103"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12607:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12612:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12620:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12631:3:103","type":""}],"src":"12250:786:103"},{"body":{"nodeType":"YulBlock","src":"13142:102:103","statements":[{"nodeType":"YulAssignment","src":"13152:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13164:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13175:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13160:3:103"},"nodeType":"YulFunctionCall","src":"13160:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13152:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13194:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13209:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13225:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13230:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13221:3:103"},"nodeType":"YulFunctionCall","src":"13221:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13234:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13217:3:103"},"nodeType":"YulFunctionCall","src":"13217:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13205:3:103"},"nodeType":"YulFunctionCall","src":"13205:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13187:6:103"},"nodeType":"YulFunctionCall","src":"13187:51:103"},"nodeType":"YulExpressionStatement","src":"13187:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13111:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13122:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13133:4:103","type":""}],"src":"13041:203:103"},{"body":{"nodeType":"YulBlock","src":"13378:175:103","statements":[{"nodeType":"YulAssignment","src":"13388:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13400:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13411:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13396:3:103"},"nodeType":"YulFunctionCall","src":"13396:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13388:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"13423:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13441:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13446:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13437:3:103"},"nodeType":"YulFunctionCall","src":"13437:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13450:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13433:3:103"},"nodeType":"YulFunctionCall","src":"13433:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13427:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13468:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13483:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13491:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13479:3:103"},"nodeType":"YulFunctionCall","src":"13479:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13461:6:103"},"nodeType":"YulFunctionCall","src":"13461:34:103"},"nodeType":"YulExpressionStatement","src":"13461:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13515:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13526:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13511:3:103"},"nodeType":"YulFunctionCall","src":"13511:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13535:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13543:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13531:3:103"},"nodeType":"YulFunctionCall","src":"13531:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13504:6:103"},"nodeType":"YulFunctionCall","src":"13504:43:103"},"nodeType":"YulExpressionStatement","src":"13504:43:103"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13339:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13350:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13358:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13369:4:103","type":""}],"src":"13249:304:103"},{"body":{"nodeType":"YulBlock","src":"13715:218:103","statements":[{"nodeType":"YulAssignment","src":"13725:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13737:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13748:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13733:3:103"},"nodeType":"YulFunctionCall","src":"13733:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13725:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"13760:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13778:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13783:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13774:3:103"},"nodeType":"YulFunctionCall","src":"13774:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13787:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13770:3:103"},"nodeType":"YulFunctionCall","src":"13770:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13764:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13805:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13820:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13828:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13816:3:103"},"nodeType":"YulFunctionCall","src":"13816:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13798:6:103"},"nodeType":"YulFunctionCall","src":"13798:34:103"},"nodeType":"YulExpressionStatement","src":"13798:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13852:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13863:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13848:3:103"},"nodeType":"YulFunctionCall","src":"13848:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13872:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13880:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13868:3:103"},"nodeType":"YulFunctionCall","src":"13868:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13841:6:103"},"nodeType":"YulFunctionCall","src":"13841:43:103"},"nodeType":"YulExpressionStatement","src":"13841:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13904:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13915:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13900:3:103"},"nodeType":"YulFunctionCall","src":"13900:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"13920:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13893:6:103"},"nodeType":"YulFunctionCall","src":"13893:34:103"},"nodeType":"YulExpressionStatement","src":"13893:34:103"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13668:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13679:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13687:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13695:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13706:4:103","type":""}],"src":"13558:375:103"},{"body":{"nodeType":"YulBlock","src":"14187:370:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14204:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14219:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14235:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14240:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14231:3:103"},"nodeType":"YulFunctionCall","src":"14231:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14244:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14227:3:103"},"nodeType":"YulFunctionCall","src":"14227:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14215:3:103"},"nodeType":"YulFunctionCall","src":"14215:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14197:6:103"},"nodeType":"YulFunctionCall","src":"14197:51:103"},"nodeType":"YulExpressionStatement","src":"14197:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14268:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14279:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14264:3:103"},"nodeType":"YulFunctionCall","src":"14264:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14284:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14257:6:103"},"nodeType":"YulFunctionCall","src":"14257:34:103"},"nodeType":"YulExpressionStatement","src":"14257:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14311:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14322:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14307:3:103"},"nodeType":"YulFunctionCall","src":"14307:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"14327:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14300:6:103"},"nodeType":"YulFunctionCall","src":"14300:34:103"},"nodeType":"YulExpressionStatement","src":"14300:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14354:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14365:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14350:3:103"},"nodeType":"YulFunctionCall","src":"14350:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14370:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14343:6:103"},"nodeType":"YulFunctionCall","src":"14343:31:103"},"nodeType":"YulExpressionStatement","src":"14343:31:103"},{"nodeType":"YulVariableDeclaration","src":"14383:59:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"14414:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14437:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14422:3:103"},"nodeType":"YulFunctionCall","src":"14422:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"14397:16:103"},"nodeType":"YulFunctionCall","src":"14397:45:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"14387:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14473:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14458:3:103"},"nodeType":"YulFunctionCall","src":"14458:19:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"14483:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"14491:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14479:3:103"},"nodeType":"YulFunctionCall","src":"14479:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14451:6:103"},"nodeType":"YulFunctionCall","src":"14451:51:103"},"nodeType":"YulExpressionStatement","src":"14451:51:103"},{"nodeType":"YulAssignment","src":"14511:40:103","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"14536:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"14544:6:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"14519:16:103"},"nodeType":"YulFunctionCall","src":"14519:32:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14511:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14124:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14135:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14143:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14151:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14159:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14167:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14178:4:103","type":""}],"src":"13938:619:103"},{"body":{"nodeType":"YulBlock","src":"14713:484:103","statements":[{"nodeType":"YulVariableDeclaration","src":"14723:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"14733:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14727:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14744:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14762:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"14773:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14758:3:103"},"nodeType":"YulFunctionCall","src":"14758:18:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"14748:6:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14792:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"14803:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14785:6:103"},"nodeType":"YulFunctionCall","src":"14785:21:103"},"nodeType":"YulExpressionStatement","src":"14785:21:103"},{"nodeType":"YulVariableDeclaration","src":"14815:17:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"14826:6:103"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"14819:3:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14841:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14861:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14855:5:103"},"nodeType":"YulFunctionCall","src":"14855:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14845:6:103","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"14884:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"14892:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14877:6:103"},"nodeType":"YulFunctionCall","src":"14877:22:103"},"nodeType":"YulExpressionStatement","src":"14877:22:103"},{"nodeType":"YulAssignment","src":"14908:25:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14919:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14930:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14915:3:103"},"nodeType":"YulFunctionCall","src":"14915:18:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14908:3:103"}]},{"nodeType":"YulVariableDeclaration","src":"14942:29:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14960:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"14968:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14956:3:103"},"nodeType":"YulFunctionCall","src":"14956:15:103"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"14946:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14980:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"14989:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14984:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"15051:120:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15072:3:103"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15083:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15077:5:103"},"nodeType":"YulFunctionCall","src":"15077:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15065:6:103"},"nodeType":"YulFunctionCall","src":"15065:26:103"},"nodeType":"YulExpressionStatement","src":"15065:26:103"},{"nodeType":"YulAssignment","src":"15104:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15115:3:103"},{"name":"_1","nodeType":"YulIdentifier","src":"15120:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15111:3:103"},"nodeType":"YulFunctionCall","src":"15111:12:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15104:3:103"}]},{"nodeType":"YulAssignment","src":"15136:25:103","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15150:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"15158:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15146:3:103"},"nodeType":"YulFunctionCall","src":"15146:15:103"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15136:6:103"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15013:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"15016:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15010:2:103"},"nodeType":"YulFunctionCall","src":"15010:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15024:18:103","statements":[{"nodeType":"YulAssignment","src":"15026:14:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15035:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"15038:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15031:3:103"},"nodeType":"YulFunctionCall","src":"15031:9:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15026:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"15006:3:103","statements":[]},"src":"15002:169:103"},{"nodeType":"YulAssignment","src":"15180:11:103","value":{"name":"pos","nodeType":"YulIdentifier","src":"15188:3:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15180:4:103"}]}]},"name":"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14682:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14693:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14704:4:103","type":""}],"src":"14562:635:103"},{"body":{"nodeType":"YulBlock","src":"15297:92:103","statements":[{"nodeType":"YulAssignment","src":"15307:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15319:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15330:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15315:3:103"},"nodeType":"YulFunctionCall","src":"15315:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15307:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15349:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15374:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15367:6:103"},"nodeType":"YulFunctionCall","src":"15367:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15360:6:103"},"nodeType":"YulFunctionCall","src":"15360:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15342:6:103"},"nodeType":"YulFunctionCall","src":"15342:41:103"},"nodeType":"YulExpressionStatement","src":"15342:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15266:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15277:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15288:4:103","type":""}],"src":"15202:187:103"},{"body":{"nodeType":"YulBlock","src":"15545:234:103","statements":[{"nodeType":"YulAssignment","src":"15555:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15578:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15563:3:103"},"nodeType":"YulFunctionCall","src":"15563:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15555:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15597:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15622:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15615:6:103"},"nodeType":"YulFunctionCall","src":"15615:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15608:6:103"},"nodeType":"YulFunctionCall","src":"15608:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15590:6:103"},"nodeType":"YulFunctionCall","src":"15590:41:103"},"nodeType":"YulExpressionStatement","src":"15590:41:103"},{"nodeType":"YulVariableDeclaration","src":"15640:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15658:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15663:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15654:3:103"},"nodeType":"YulFunctionCall","src":"15654:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15667:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15650:3:103"},"nodeType":"YulFunctionCall","src":"15650:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15644:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15689:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15700:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15685:3:103"},"nodeType":"YulFunctionCall","src":"15685:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15709:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"15717:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15705:3:103"},"nodeType":"YulFunctionCall","src":"15705:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15678:6:103"},"nodeType":"YulFunctionCall","src":"15678:43:103"},"nodeType":"YulExpressionStatement","src":"15678:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15741:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15752:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15737:3:103"},"nodeType":"YulFunctionCall","src":"15737:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"15761:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"15769:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15757:3:103"},"nodeType":"YulFunctionCall","src":"15757:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15730:6:103"},"nodeType":"YulFunctionCall","src":"15730:43:103"},"nodeType":"YulExpressionStatement","src":"15730:43:103"}]},"name":"abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15498:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15509:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15517:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15525:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15536:4:103","type":""}],"src":"15394:385:103"},{"body":{"nodeType":"YulBlock","src":"15953:200:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15970:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15995:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15988:6:103"},"nodeType":"YulFunctionCall","src":"15988:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15981:6:103"},"nodeType":"YulFunctionCall","src":"15981:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15963:6:103"},"nodeType":"YulFunctionCall","src":"15963:41:103"},"nodeType":"YulExpressionStatement","src":"15963:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16024:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16035:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16020:3:103"},"nodeType":"YulFunctionCall","src":"16020:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"16040:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16013:6:103"},"nodeType":"YulFunctionCall","src":"16013:34:103"},"nodeType":"YulExpressionStatement","src":"16013:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16067:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16078:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16063:3:103"},"nodeType":"YulFunctionCall","src":"16063:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16083:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16056:6:103"},"nodeType":"YulFunctionCall","src":"16056:30:103"},"nodeType":"YulExpressionStatement","src":"16056:30:103"},{"nodeType":"YulAssignment","src":"16095:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"16120:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16132:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16143:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16128:3:103"},"nodeType":"YulFunctionCall","src":"16128:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"16103:16:103"},"nodeType":"YulFunctionCall","src":"16103:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16095:4:103"}]}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15906:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15917:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15925:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15933:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15944:4:103","type":""}],"src":"15784:369:103"},{"body":{"nodeType":"YulBlock","src":"16309:178:103","statements":[{"nodeType":"YulAssignment","src":"16319:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16331:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16342:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16327:3:103"},"nodeType":"YulFunctionCall","src":"16327:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16319:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16361:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16386:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16379:6:103"},"nodeType":"YulFunctionCall","src":"16379:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16372:6:103"},"nodeType":"YulFunctionCall","src":"16372:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16354:6:103"},"nodeType":"YulFunctionCall","src":"16354:41:103"},"nodeType":"YulExpressionStatement","src":"16354:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16426:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16411:3:103"},"nodeType":"YulFunctionCall","src":"16411:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"16431:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16404:6:103"},"nodeType":"YulFunctionCall","src":"16404:34:103"},"nodeType":"YulExpressionStatement","src":"16404:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16469:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16454:3:103"},"nodeType":"YulFunctionCall","src":"16454:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"16474:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16447:6:103"},"nodeType":"YulFunctionCall","src":"16447:34:103"},"nodeType":"YulExpressionStatement","src":"16447:34:103"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16262:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16273:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16281:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16289:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16300:4:103","type":""}],"src":"16158:329:103"},{"body":{"nodeType":"YulBlock","src":"16593:76:103","statements":[{"nodeType":"YulAssignment","src":"16603:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16626:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16611:3:103"},"nodeType":"YulFunctionCall","src":"16611:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16603:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16645:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16656:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16638:6:103"},"nodeType":"YulFunctionCall","src":"16638:25:103"},"nodeType":"YulExpressionStatement","src":"16638:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16584:4:103","type":""}],"src":"16492:177:103"},{"body":{"nodeType":"YulBlock","src":"16859:232:103","statements":[{"nodeType":"YulAssignment","src":"16869:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16881:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16892:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16877:3:103"},"nodeType":"YulFunctionCall","src":"16877:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16869:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16912:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16923:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16905:6:103"},"nodeType":"YulFunctionCall","src":"16905:25:103"},"nodeType":"YulExpressionStatement","src":"16905:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16950:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16961:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16946:3:103"},"nodeType":"YulFunctionCall","src":"16946:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16970:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16986:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16991:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16982:3:103"},"nodeType":"YulFunctionCall","src":"16982:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"16995:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16978:3:103"},"nodeType":"YulFunctionCall","src":"16978:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16966:3:103"},"nodeType":"YulFunctionCall","src":"16966:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16939:6:103"},"nodeType":"YulFunctionCall","src":"16939:60:103"},"nodeType":"YulExpressionStatement","src":"16939:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17030:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17015:3:103"},"nodeType":"YulFunctionCall","src":"17015:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"17035:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17008:6:103"},"nodeType":"YulFunctionCall","src":"17008:34:103"},"nodeType":"YulExpressionStatement","src":"17008:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17062:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17073:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17058:3:103"},"nodeType":"YulFunctionCall","src":"17058:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"17078:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17051:6:103"},"nodeType":"YulFunctionCall","src":"17051:34:103"},"nodeType":"YulExpressionStatement","src":"17051:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16804:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16815:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16823:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16831:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16839:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16850:4:103","type":""}],"src":"16674:417:103"},{"body":{"nodeType":"YulBlock","src":"17253:162:103","statements":[{"nodeType":"YulAssignment","src":"17263:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17275:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17286:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17271:3:103"},"nodeType":"YulFunctionCall","src":"17271:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17263:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17305:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17316:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17298:6:103"},"nodeType":"YulFunctionCall","src":"17298:25:103"},"nodeType":"YulExpressionStatement","src":"17298:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17343:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17354:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17339:3:103"},"nodeType":"YulFunctionCall","src":"17339:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17359:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17332:6:103"},"nodeType":"YulFunctionCall","src":"17332:34:103"},"nodeType":"YulExpressionStatement","src":"17332:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17397:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17382:3:103"},"nodeType":"YulFunctionCall","src":"17382:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"17402:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17375:6:103"},"nodeType":"YulFunctionCall","src":"17375:34:103"},"nodeType":"YulExpressionStatement","src":"17375:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17206:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17217:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17225:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17233:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17244:4:103","type":""}],"src":"17096:319:103"},{"body":{"nodeType":"YulBlock","src":"17605:206:103","statements":[{"nodeType":"YulAssignment","src":"17615:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17627:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17638:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17623:3:103"},"nodeType":"YulFunctionCall","src":"17623:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17615:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17658:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17669:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17651:6:103"},"nodeType":"YulFunctionCall","src":"17651:25:103"},"nodeType":"YulExpressionStatement","src":"17651:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17696:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17707:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17692:3:103"},"nodeType":"YulFunctionCall","src":"17692:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17712:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17685:6:103"},"nodeType":"YulFunctionCall","src":"17685:34:103"},"nodeType":"YulExpressionStatement","src":"17685:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17739:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17750:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17735:3:103"},"nodeType":"YulFunctionCall","src":"17735:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"17755:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17728:6:103"},"nodeType":"YulFunctionCall","src":"17728:34:103"},"nodeType":"YulExpressionStatement","src":"17728:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17782:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17793:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17778:3:103"},"nodeType":"YulFunctionCall","src":"17778:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"17798:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17771:6:103"},"nodeType":"YulFunctionCall","src":"17771:34:103"},"nodeType":"YulExpressionStatement","src":"17771:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17550:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17561:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17569:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17577:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17585:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17596:4:103","type":""}],"src":"17420:391:103"},{"body":{"nodeType":"YulBlock","src":"18067:370:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18084:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18095:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18077:6:103"},"nodeType":"YulFunctionCall","src":"18077:25:103"},"nodeType":"YulExpressionStatement","src":"18077:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18133:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18118:3:103"},"nodeType":"YulFunctionCall","src":"18118:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18138:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18111:6:103"},"nodeType":"YulFunctionCall","src":"18111:31:103"},"nodeType":"YulExpressionStatement","src":"18111:31:103"},{"nodeType":"YulVariableDeclaration","src":"18151:59:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18182:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18194:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18205:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18190:3:103"},"nodeType":"YulFunctionCall","src":"18190:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18165:16:103"},"nodeType":"YulFunctionCall","src":"18165:45:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"18155:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18230:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18241:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18226:3:103"},"nodeType":"YulFunctionCall","src":"18226:18:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"18250:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"18258:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18246:3:103"},"nodeType":"YulFunctionCall","src":"18246:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18219:6:103"},"nodeType":"YulFunctionCall","src":"18219:50:103"},"nodeType":"YulExpressionStatement","src":"18219:50:103"},{"nodeType":"YulAssignment","src":"18278:40:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"18303:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"18311:6:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18286:16:103"},"nodeType":"YulFunctionCall","src":"18286:32:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18278:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18338:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18349:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18334:3:103"},"nodeType":"YulFunctionCall","src":"18334:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18358:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18374:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"18379:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18370:3:103"},"nodeType":"YulFunctionCall","src":"18370:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"18383:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18366:3:103"},"nodeType":"YulFunctionCall","src":"18366:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18354:3:103"},"nodeType":"YulFunctionCall","src":"18354:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18327:6:103"},"nodeType":"YulFunctionCall","src":"18327:60:103"},"nodeType":"YulExpressionStatement","src":"18327:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18407:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18418:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18403:3:103"},"nodeType":"YulFunctionCall","src":"18403:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"18424:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18396:6:103"},"nodeType":"YulFunctionCall","src":"18396:35:103"},"nodeType":"YulExpressionStatement","src":"18396:35:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18004:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"18015:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"18023:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"18031:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18039:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18047:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18058:4:103","type":""}],"src":"17816:621:103"},{"body":{"nodeType":"YulBlock","src":"18579:119:103","statements":[{"nodeType":"YulAssignment","src":"18589:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18601:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18612:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18597:3:103"},"nodeType":"YulFunctionCall","src":"18597:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18589:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18631:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18642:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18624:6:103"},"nodeType":"YulFunctionCall","src":"18624:25:103"},"nodeType":"YulExpressionStatement","src":"18624:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18669:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18680:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18665:3:103"},"nodeType":"YulFunctionCall","src":"18665:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"18685:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18658:6:103"},"nodeType":"YulFunctionCall","src":"18658:34:103"},"nodeType":"YulExpressionStatement","src":"18658:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_rational_0_by_1__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18540:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18551:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18559:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18570:4:103","type":""}],"src":"18442:256:103"},{"body":{"nodeType":"YulBlock","src":"18832:119:103","statements":[{"nodeType":"YulAssignment","src":"18842:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18865:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18850:3:103"},"nodeType":"YulFunctionCall","src":"18850:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18842:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18884:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18895:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18877:6:103"},"nodeType":"YulFunctionCall","src":"18877:25:103"},"nodeType":"YulExpressionStatement","src":"18877:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18922:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18933:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18918:3:103"},"nodeType":"YulFunctionCall","src":"18918:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"18938:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18911:6:103"},"nodeType":"YulFunctionCall","src":"18911:34:103"},"nodeType":"YulExpressionStatement","src":"18911:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18793:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18804:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18812:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18823:4:103","type":""}],"src":"18703:248:103"},{"body":{"nodeType":"YulBlock","src":"19131:184:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19148:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19159:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19141:6:103"},"nodeType":"YulFunctionCall","src":"19141:25:103"},"nodeType":"YulExpressionStatement","src":"19141:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19186:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19197:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19182:3:103"},"nodeType":"YulFunctionCall","src":"19182:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19202:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19175:6:103"},"nodeType":"YulFunctionCall","src":"19175:34:103"},"nodeType":"YulExpressionStatement","src":"19175:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19229:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19240:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19225:3:103"},"nodeType":"YulFunctionCall","src":"19225:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19245:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19218:6:103"},"nodeType":"YulFunctionCall","src":"19218:30:103"},"nodeType":"YulExpressionStatement","src":"19218:30:103"},{"nodeType":"YulAssignment","src":"19257:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"19282:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19294:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19305:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19290:3:103"},"nodeType":"YulFunctionCall","src":"19290:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"19265:16:103"},"nodeType":"YulFunctionCall","src":"19265:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19257:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19084:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19095:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19103:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19111:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19122:4:103","type":""}],"src":"18956:359:103"},{"body":{"nodeType":"YulBlock","src":"19477:162:103","statements":[{"nodeType":"YulAssignment","src":"19487:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19499:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19510:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19495:3:103"},"nodeType":"YulFunctionCall","src":"19495:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19487:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19529:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19540:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19522:6:103"},"nodeType":"YulFunctionCall","src":"19522:25:103"},"nodeType":"YulExpressionStatement","src":"19522:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19578:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19563:3:103"},"nodeType":"YulFunctionCall","src":"19563:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19583:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19556:6:103"},"nodeType":"YulFunctionCall","src":"19556:34:103"},"nodeType":"YulExpressionStatement","src":"19556:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19610:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19621:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19606:3:103"},"nodeType":"YulFunctionCall","src":"19606:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"19626:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19599:6:103"},"nodeType":"YulFunctionCall","src":"19599:34:103"},"nodeType":"YulExpressionStatement","src":"19599:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19430:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19441:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19449:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19457:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19468:4:103","type":""}],"src":"19320:319:103"},{"body":{"nodeType":"YulBlock","src":"19847:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19864:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19875:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19857:6:103"},"nodeType":"YulFunctionCall","src":"19857:25:103"},"nodeType":"YulExpressionStatement","src":"19857:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19902:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19913:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19898:3:103"},"nodeType":"YulFunctionCall","src":"19898:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19918:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19891:6:103"},"nodeType":"YulFunctionCall","src":"19891:34:103"},"nodeType":"YulExpressionStatement","src":"19891:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19945:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19956:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19941:3:103"},"nodeType":"YulFunctionCall","src":"19941:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"19961:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19934:6:103"},"nodeType":"YulFunctionCall","src":"19934:34:103"},"nodeType":"YulExpressionStatement","src":"19934:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19988:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19999:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19984:3:103"},"nodeType":"YulFunctionCall","src":"19984:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20004:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19977:6:103"},"nodeType":"YulFunctionCall","src":"19977:31:103"},"nodeType":"YulExpressionStatement","src":"19977:31:103"},{"nodeType":"YulAssignment","src":"20017:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"20042:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20054:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20065:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20050:3:103"},"nodeType":"YulFunctionCall","src":"20050:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"20025:16:103"},"nodeType":"YulFunctionCall","src":"20025:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20017:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19792:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19803:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19811:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19819:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19827:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19838:4:103","type":""}],"src":"19644:432:103"},{"body":{"nodeType":"YulBlock","src":"20294:250:103","statements":[{"nodeType":"YulAssignment","src":"20304:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20316:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20327:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20312:3:103"},"nodeType":"YulFunctionCall","src":"20312:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20304:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20347:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"20358:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20340:6:103"},"nodeType":"YulFunctionCall","src":"20340:25:103"},"nodeType":"YulExpressionStatement","src":"20340:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20385:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20396:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20381:3:103"},"nodeType":"YulFunctionCall","src":"20381:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"20401:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20374:6:103"},"nodeType":"YulFunctionCall","src":"20374:34:103"},"nodeType":"YulExpressionStatement","src":"20374:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20428:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20439:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20424:3:103"},"nodeType":"YulFunctionCall","src":"20424:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"20444:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20417:6:103"},"nodeType":"YulFunctionCall","src":"20417:34:103"},"nodeType":"YulExpressionStatement","src":"20417:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20471:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20482:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20467:3:103"},"nodeType":"YulFunctionCall","src":"20467:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"20487:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20460:6:103"},"nodeType":"YulFunctionCall","src":"20460:34:103"},"nodeType":"YulExpressionStatement","src":"20460:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20514:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20525:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20510:3:103"},"nodeType":"YulFunctionCall","src":"20510:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"20531:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20503:6:103"},"nodeType":"YulFunctionCall","src":"20503:35:103"},"nodeType":"YulExpressionStatement","src":"20503:35:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20231:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"20242:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20250:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20258:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20266:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20274:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20285:4:103","type":""}],"src":"20081:463:103"},{"body":{"nodeType":"YulBlock","src":"20668:102:103","statements":[{"nodeType":"YulAssignment","src":"20678:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20690:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20701:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20686:3:103"},"nodeType":"YulFunctionCall","src":"20686:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20678:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20720:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20735:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20751:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"20756:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20747:3:103"},"nodeType":"YulFunctionCall","src":"20747:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"20760:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20743:3:103"},"nodeType":"YulFunctionCall","src":"20743:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20731:3:103"},"nodeType":"YulFunctionCall","src":"20731:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20713:6:103"},"nodeType":"YulFunctionCall","src":"20713:51:103"},"nodeType":"YulExpressionStatement","src":"20713:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20637:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20648:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20659:4:103","type":""}],"src":"20549:221:103"},{"body":{"nodeType":"YulBlock","src":"20893:132:103","statements":[{"nodeType":"YulAssignment","src":"20903:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20926:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20911:3:103"},"nodeType":"YulFunctionCall","src":"20911:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20903:4:103"}]},{"body":{"nodeType":"YulBlock","src":"20963:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"20965:16:103"},"nodeType":"YulFunctionCall","src":"20965:18:103"},"nodeType":"YulExpressionStatement","src":"20965:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20951:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20959:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20948:2:103"},"nodeType":"YulFunctionCall","src":"20948:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20941:6:103"},"nodeType":"YulFunctionCall","src":"20941:21:103"},"nodeType":"YulIf","src":"20938:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21001:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"21012:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20994:6:103"},"nodeType":"YulFunctionCall","src":"20994:25:103"},"nodeType":"YulExpressionStatement","src":"20994:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20862:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20873:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20884:4:103","type":""}],"src":"20775:250:103"},{"body":{"nodeType":"YulBlock","src":"21147:132:103","statements":[{"nodeType":"YulAssignment","src":"21157:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21180:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21165:3:103"},"nodeType":"YulFunctionCall","src":"21165:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21157:4:103"}]},{"body":{"nodeType":"YulBlock","src":"21217:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"21219:16:103"},"nodeType":"YulFunctionCall","src":"21219:18:103"},"nodeType":"YulExpressionStatement","src":"21219:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21205:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21213:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21202:2:103"},"nodeType":"YulFunctionCall","src":"21202:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21195:6:103"},"nodeType":"YulFunctionCall","src":"21195:21:103"},"nodeType":"YulIf","src":"21192:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21255:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"21266:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21248:6:103"},"nodeType":"YulFunctionCall","src":"21248:25:103"},"nodeType":"YulExpressionStatement","src":"21248:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21116:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21127:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21138:4:103","type":""}],"src":"21030:249:103"},{"body":{"nodeType":"YulBlock","src":"21405:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21422:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21433:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21415:6:103"},"nodeType":"YulFunctionCall","src":"21415:21:103"},"nodeType":"YulExpressionStatement","src":"21415:21:103"},{"nodeType":"YulAssignment","src":"21445:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21470:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21493:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21478:3:103"},"nodeType":"YulFunctionCall","src":"21478:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"21453:16:103"},"nodeType":"YulFunctionCall","src":"21453:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21445:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21374:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21385:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21396:4:103","type":""}],"src":"21284:219:103"},{"body":{"nodeType":"YulBlock","src":"21682:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21699:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21710:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21692:6:103"},"nodeType":"YulFunctionCall","src":"21692:21:103"},"nodeType":"YulExpressionStatement","src":"21692:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21733:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21744:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21729:3:103"},"nodeType":"YulFunctionCall","src":"21729:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21749:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21722:6:103"},"nodeType":"YulFunctionCall","src":"21722:30:103"},"nodeType":"YulExpressionStatement","src":"21722:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21772:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21783:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21768:3:103"},"nodeType":"YulFunctionCall","src":"21768:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21788:34:103","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21761:6:103"},"nodeType":"YulFunctionCall","src":"21761:62:103"},"nodeType":"YulExpressionStatement","src":"21761:62:103"},{"nodeType":"YulAssignment","src":"21832:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21855:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21840:3:103"},"nodeType":"YulFunctionCall","src":"21840:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21832:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21659:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21673:4:103","type":""}],"src":"21508:356:103"},{"body":{"nodeType":"YulBlock","src":"22043:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22060:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22071:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22053:6:103"},"nodeType":"YulFunctionCall","src":"22053:21:103"},"nodeType":"YulExpressionStatement","src":"22053:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22094:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22105:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22090:3:103"},"nodeType":"YulFunctionCall","src":"22090:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22110:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22083:6:103"},"nodeType":"YulFunctionCall","src":"22083:30:103"},"nodeType":"YulExpressionStatement","src":"22083:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22144:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22129:3:103"},"nodeType":"YulFunctionCall","src":"22129:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22149:34:103","type":"","value":"ERROR:AYI-046:RISK_APH_ZERO_INVA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22122:6:103"},"nodeType":"YulFunctionCall","src":"22122:62:103"},"nodeType":"YulExpressionStatement","src":"22122:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22204:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22215:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22200:3:103"},"nodeType":"YulFunctionCall","src":"22200:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22220:5:103","type":"","value":"LID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22193:6:103"},"nodeType":"YulFunctionCall","src":"22193:33:103"},"nodeType":"YulExpressionStatement","src":"22193:33:103"},{"nodeType":"YulAssignment","src":"22235:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22247:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22258:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22243:3:103"},"nodeType":"YulFunctionCall","src":"22243:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22235:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0a4d1e7ee13d3e1c186b0c5039ac828c21427604ef12eb5f13ec178f7b5ae702__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22020:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22034:4:103","type":""}],"src":"21869:399:103"},{"body":{"nodeType":"YulBlock","src":"22447:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22464:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22475:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22457:6:103"},"nodeType":"YulFunctionCall","src":"22457:21:103"},"nodeType":"YulExpressionStatement","src":"22457:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22498:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22509:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22494:3:103"},"nodeType":"YulFunctionCall","src":"22494:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22514:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22487:6:103"},"nodeType":"YulFunctionCall","src":"22487:30:103"},"nodeType":"YulExpressionStatement","src":"22487:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22548:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22533:3:103"},"nodeType":"YulFunctionCall","src":"22533:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22553:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22526:6:103"},"nodeType":"YulFunctionCall","src":"22526:57:103"},"nodeType":"YulExpressionStatement","src":"22526:57:103"},{"nodeType":"YulAssignment","src":"22592:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22615:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22600:3:103"},"nodeType":"YulFunctionCall","src":"22600:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22592:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22424:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22438:4:103","type":""}],"src":"22273:351:103"},{"body":{"nodeType":"YulBlock","src":"22803:176:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22831:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22813:6:103"},"nodeType":"YulFunctionCall","src":"22813:21:103"},"nodeType":"YulExpressionStatement","src":"22813:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22865:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22850:3:103"},"nodeType":"YulFunctionCall","src":"22850:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22870:2:103","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22843:6:103"},"nodeType":"YulFunctionCall","src":"22843:30:103"},"nodeType":"YulExpressionStatement","src":"22843:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22893:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22904:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22889:3:103"},"nodeType":"YulFunctionCall","src":"22889:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22909:28:103","type":"","value":"ERROR:AYI-024:AAAY_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22882:6:103"},"nodeType":"YulFunctionCall","src":"22882:56:103"},"nodeType":"YulExpressionStatement","src":"22882:56:103"},{"nodeType":"YulAssignment","src":"22947:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22959:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22970:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22955:3:103"},"nodeType":"YulFunctionCall","src":"22955:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22947:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1933cf92e854516d33fae263dace7298dd28dda3cb0e72fbef894e917a93a275__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22780:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22794:4:103","type":""}],"src":"22629:350:103"},{"body":{"nodeType":"YulBlock","src":"23158:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23186:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23168:6:103"},"nodeType":"YulFunctionCall","src":"23168:21:103"},"nodeType":"YulExpressionStatement","src":"23168:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23209:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23220:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23205:3:103"},"nodeType":"YulFunctionCall","src":"23205:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23225:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23198:6:103"},"nodeType":"YulFunctionCall","src":"23198:30:103"},"nodeType":"YulExpressionStatement","src":"23198:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23259:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23244:3:103"},"nodeType":"YulFunctionCall","src":"23244:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23264:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23237:6:103"},"nodeType":"YulFunctionCall","src":"23237:62:103"},"nodeType":"YulExpressionStatement","src":"23237:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23319:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23330:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23315:3:103"},"nodeType":"YulFunctionCall","src":"23315:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23335:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23308:6:103"},"nodeType":"YulFunctionCall","src":"23308:36:103"},"nodeType":"YulExpressionStatement","src":"23308:36:103"},{"nodeType":"YulAssignment","src":"23353:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23376:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23361:3:103"},"nodeType":"YulFunctionCall","src":"23361:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23353:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23135:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23149:4:103","type":""}],"src":"22984:402:103"},{"body":{"nodeType":"YulBlock","src":"23565:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23582:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23593:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23575:6:103"},"nodeType":"YulFunctionCall","src":"23575:21:103"},"nodeType":"YulExpressionStatement","src":"23575:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23616:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23627:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23612:3:103"},"nodeType":"YulFunctionCall","src":"23612:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23632:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23605:6:103"},"nodeType":"YulFunctionCall","src":"23605:30:103"},"nodeType":"YulExpressionStatement","src":"23605:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23655:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23666:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23651:3:103"},"nodeType":"YulFunctionCall","src":"23651:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23671:34:103","type":"","value":"ERROR:AYI-042:RISK_EXIT_TOO_LARG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23644:6:103"},"nodeType":"YulFunctionCall","src":"23644:62:103"},"nodeType":"YulExpressionStatement","src":"23644:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23726:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23737:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23722:3:103"},"nodeType":"YulFunctionCall","src":"23722:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23742:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23715:6:103"},"nodeType":"YulFunctionCall","src":"23715:31:103"},"nodeType":"YulExpressionStatement","src":"23715:31:103"},{"nodeType":"YulAssignment","src":"23755:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23778:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23763:3:103"},"nodeType":"YulFunctionCall","src":"23763:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23755:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2498ce872169b7763abec28f7059d4a97ac70a016e3a78c66a9f5c7740b38ef8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23542:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23556:4:103","type":""}],"src":"23391:397:103"},{"body":{"nodeType":"YulBlock","src":"23967:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23984:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23995:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23977:6:103"},"nodeType":"YulFunctionCall","src":"23977:21:103"},"nodeType":"YulExpressionStatement","src":"23977:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24018:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24029:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24014:3:103"},"nodeType":"YulFunctionCall","src":"24014:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24034:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24007:6:103"},"nodeType":"YulFunctionCall","src":"24007:30:103"},"nodeType":"YulExpressionStatement","src":"24007:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24068:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24053:3:103"},"nodeType":"YulFunctionCall","src":"24053:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24073:30:103","type":"","value":"ERROR:AYI-010:RISK_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24046:6:103"},"nodeType":"YulFunctionCall","src":"24046:58:103"},"nodeType":"YulExpressionStatement","src":"24046:58:103"},{"nodeType":"YulAssignment","src":"24113:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24125:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24136:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24121:3:103"},"nodeType":"YulFunctionCall","src":"24121:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24113:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_28015aff36bbf8cb89a7d6ca21c217883599d0a9d34ab709c871c948f0fded56__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23944:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23958:4:103","type":""}],"src":"23793:352:103"},{"body":{"nodeType":"YulBlock","src":"24324:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24341:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24352:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24334:6:103"},"nodeType":"YulFunctionCall","src":"24334:21:103"},"nodeType":"YulExpressionStatement","src":"24334:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24375:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24386:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24371:3:103"},"nodeType":"YulFunctionCall","src":"24371:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24391:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24364:6:103"},"nodeType":"YulFunctionCall","src":"24364:30:103"},"nodeType":"YulExpressionStatement","src":"24364:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24414:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24425:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24410:3:103"},"nodeType":"YulFunctionCall","src":"24410:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24430:29:103","type":"","value":"ERROR:PRD-003:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24403:6:103"},"nodeType":"YulFunctionCall","src":"24403:57:103"},"nodeType":"YulExpressionStatement","src":"24403:57:103"},{"nodeType":"YulAssignment","src":"24469:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24481:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24492:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24477:3:103"},"nodeType":"YulFunctionCall","src":"24477:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24469:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24301:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24315:4:103","type":""}],"src":"24150:351:103"},{"body":{"nodeType":"YulBlock","src":"24680:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24697:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24708:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24690:6:103"},"nodeType":"YulFunctionCall","src":"24690:21:103"},"nodeType":"YulExpressionStatement","src":"24690:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24731:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24742:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24727:3:103"},"nodeType":"YulFunctionCall","src":"24727:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24747:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24720:6:103"},"nodeType":"YulFunctionCall","src":"24720:30:103"},"nodeType":"YulExpressionStatement","src":"24720:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24770:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24781:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24766:3:103"},"nodeType":"YulFunctionCall","src":"24766:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24786:34:103","type":"","value":"ERROR:AYI-041:RISK_TRIGGER_NOT_L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24759:6:103"},"nodeType":"YulFunctionCall","src":"24759:62:103"},"nodeType":"YulExpressionStatement","src":"24759:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24841:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24852:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24837:3:103"},"nodeType":"YulFunctionCall","src":"24837:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24857:17:103","type":"","value":"ARGER_THAN_EXIT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24830:6:103"},"nodeType":"YulFunctionCall","src":"24830:45:103"},"nodeType":"YulExpressionStatement","src":"24830:45:103"},{"nodeType":"YulAssignment","src":"24884:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24896:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24907:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24892:3:103"},"nodeType":"YulFunctionCall","src":"24892:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24884:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_412e0dd059ff5ee1474516ff048f71840a3a2965c87e0ba7efd8312e11193f6b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24657:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24671:4:103","type":""}],"src":"24506:411:103"},{"body":{"nodeType":"YulBlock","src":"25096:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25113:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25124:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25106:6:103"},"nodeType":"YulFunctionCall","src":"25106:21:103"},"nodeType":"YulExpressionStatement","src":"25106:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25147:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25158:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25143:3:103"},"nodeType":"YulFunctionCall","src":"25143:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25163:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25136:6:103"},"nodeType":"YulFunctionCall","src":"25136:30:103"},"nodeType":"YulExpressionStatement","src":"25136:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25186:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25197:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25182:3:103"},"nodeType":"YulFunctionCall","src":"25182:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25202:34:103","type":"","value":"ERROR:AYI-047:RISK_APH_TOO_LARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25175:6:103"},"nodeType":"YulFunctionCall","src":"25175:62:103"},"nodeType":"YulExpressionStatement","src":"25175:62:103"},{"nodeType":"YulAssignment","src":"25246:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25258:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25269:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25254:3:103"},"nodeType":"YulFunctionCall","src":"25254:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25246:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_41a8e910e497c53c0ffe6a8d374e9ceae17e46879b937ab53f2189842ece12cd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25073:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25087:4:103","type":""}],"src":"24922:356:103"},{"body":{"nodeType":"YulBlock","src":"25457:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25474:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25485:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25467:6:103"},"nodeType":"YulFunctionCall","src":"25467:21:103"},"nodeType":"YulExpressionStatement","src":"25467:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25508:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25519:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25504:3:103"},"nodeType":"YulFunctionCall","src":"25504:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25524:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25497:6:103"},"nodeType":"YulFunctionCall","src":"25497:30:103"},"nodeType":"YulExpressionStatement","src":"25497:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25547:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25558:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25543:3:103"},"nodeType":"YulFunctionCall","src":"25543:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25563:34:103","type":"","value":"ERROR:AYI-030:ORACLE_RESPONSE_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25536:6:103"},"nodeType":"YulFunctionCall","src":"25536:62:103"},"nodeType":"YulExpressionStatement","src":"25536:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25618:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25629:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25614:3:103"},"nodeType":"YulFunctionCall","src":"25614:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25634:7:103","type":"","value":"SSING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25607:6:103"},"nodeType":"YulFunctionCall","src":"25607:35:103"},"nodeType":"YulExpressionStatement","src":"25607:35:103"},{"nodeType":"YulAssignment","src":"25651:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25663:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25674:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25659:3:103"},"nodeType":"YulFunctionCall","src":"25659:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25651:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_58676a06b2a15eeef19d847ad905241c221bcfc99304360d668ec70c06b294c9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25434:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25448:4:103","type":""}],"src":"25283:401:103"},{"body":{"nodeType":"YulBlock","src":"25863:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25880:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25891:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25873:6:103"},"nodeType":"YulFunctionCall","src":"25873:21:103"},"nodeType":"YulExpressionStatement","src":"25873:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25925:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25910:3:103"},"nodeType":"YulFunctionCall","src":"25910:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25930:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25903:6:103"},"nodeType":"YulFunctionCall","src":"25903:30:103"},"nodeType":"YulExpressionStatement","src":"25903:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25953:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25964:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25949:3:103"},"nodeType":"YulFunctionCall","src":"25949:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25969:30:103","type":"","value":"ERROR:AYI-021:RISK_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25942:6:103"},"nodeType":"YulFunctionCall","src":"25942:58:103"},"nodeType":"YulExpressionStatement","src":"25942:58:103"},{"nodeType":"YulAssignment","src":"26009:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26021:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26032:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26017:3:103"},"nodeType":"YulFunctionCall","src":"26017:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26009:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6ee02cfa0248fa86db9a11f735c32c1ff1a44fc0b1601b5b7ff4563f745477c9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25840:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25854:4:103","type":""}],"src":"25689:352:103"},{"body":{"nodeType":"YulBlock","src":"26220:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26237:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26248:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26230:6:103"},"nodeType":"YulFunctionCall","src":"26230:21:103"},"nodeType":"YulExpressionStatement","src":"26230:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26282:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26267:3:103"},"nodeType":"YulFunctionCall","src":"26267:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26287:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26260:6:103"},"nodeType":"YulFunctionCall","src":"26260:30:103"},"nodeType":"YulExpressionStatement","src":"26260:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26310:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26321:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26306:3:103"},"nodeType":"YulFunctionCall","src":"26306:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26326:34:103","type":"","value":"ERROR:AYI-032:ORACLE_RESPONSE_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26299:6:103"},"nodeType":"YulFunctionCall","src":"26299:62:103"},"nodeType":"YulExpressionStatement","src":"26299:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26392:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26377:3:103"},"nodeType":"YulFunctionCall","src":"26377:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26397:7:103","type":"","value":"SSING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26370:6:103"},"nodeType":"YulFunctionCall","src":"26370:35:103"},"nodeType":"YulExpressionStatement","src":"26370:35:103"},{"nodeType":"YulAssignment","src":"26414:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26437:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26422:3:103"},"nodeType":"YulFunctionCall","src":"26422:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26414:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f27b73d87657a4223eeda0e62929018b09601be0c30975a8a78bf41dfdbaaa2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26197:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26211:4:103","type":""}],"src":"26046:401:103"},{"body":{"nodeType":"YulBlock","src":"26626:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26654:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26636:6:103"},"nodeType":"YulFunctionCall","src":"26636:21:103"},"nodeType":"YulExpressionStatement","src":"26636:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26688:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26673:3:103"},"nodeType":"YulFunctionCall","src":"26673:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26693:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26666:6:103"},"nodeType":"YulFunctionCall","src":"26666:30:103"},"nodeType":"YulExpressionStatement","src":"26666:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26716:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26727:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26712:3:103"},"nodeType":"YulFunctionCall","src":"26712:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26732:34:103","type":"","value":"ERROR:AYI-011:ORACLE_ALREADY_RES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26705:6:103"},"nodeType":"YulFunctionCall","src":"26705:62:103"},"nodeType":"YulExpressionStatement","src":"26705:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26787:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26798:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26783:3:103"},"nodeType":"YulFunctionCall","src":"26783:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26803:8:103","type":"","value":"PONDED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26776:6:103"},"nodeType":"YulFunctionCall","src":"26776:36:103"},"nodeType":"YulExpressionStatement","src":"26776:36:103"},{"nodeType":"YulAssignment","src":"26821:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26844:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26829:3:103"},"nodeType":"YulFunctionCall","src":"26829:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26821:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6fc284dd3ef5c0a4e0102afbb048ee6a2068822573dadf296d595b1f0508f960__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26603:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26617:4:103","type":""}],"src":"26452:402:103"},{"body":{"nodeType":"YulBlock","src":"27033:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27050:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27061:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27043:6:103"},"nodeType":"YulFunctionCall","src":"27043:21:103"},"nodeType":"YulExpressionStatement","src":"27043:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27095:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27080:3:103"},"nodeType":"YulFunctionCall","src":"27080:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27100:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27073:6:103"},"nodeType":"YulFunctionCall","src":"27073:30:103"},"nodeType":"YulExpressionStatement","src":"27073:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27123:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27134:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27119:3:103"},"nodeType":"YulFunctionCall","src":"27119:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27139:34:103","type":"","value":"ERROR:AYI-045:RISK_TSI_EXIT_SUM_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27112:6:103"},"nodeType":"YulFunctionCall","src":"27112:62:103"},"nodeType":"YulExpressionStatement","src":"27112:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27194:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27205:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27190:3:103"},"nodeType":"YulFunctionCall","src":"27190:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27210:11:103","type":"","value":"TOO_LARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27183:6:103"},"nodeType":"YulFunctionCall","src":"27183:39:103"},"nodeType":"YulExpressionStatement","src":"27183:39:103"},{"nodeType":"YulAssignment","src":"27231:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27243:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27254:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27239:3:103"},"nodeType":"YulFunctionCall","src":"27239:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27231:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_722b7f7e542cc90fba74057b4a362428bdd9a3b53029c438d846a79f1ac5a7d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27010:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27024:4:103","type":""}],"src":"26859:405:103"},{"body":{"nodeType":"YulBlock","src":"27443:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27460:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27471:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27453:6:103"},"nodeType":"YulFunctionCall","src":"27453:21:103"},"nodeType":"YulExpressionStatement","src":"27453:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27494:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27505:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27490:3:103"},"nodeType":"YulFunctionCall","src":"27490:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27510:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27483:6:103"},"nodeType":"YulFunctionCall","src":"27483:30:103"},"nodeType":"YulExpressionStatement","src":"27483:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27533:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27544:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27529:3:103"},"nodeType":"YulFunctionCall","src":"27529:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27549:34:103","type":"","value":"ERROR:AYI-005:POLICY_HOLDER_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27522:6:103"},"nodeType":"YulFunctionCall","src":"27522:62:103"},"nodeType":"YulExpressionStatement","src":"27522:62:103"},{"nodeType":"YulAssignment","src":"27593:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27616:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27601:3:103"},"nodeType":"YulFunctionCall","src":"27601:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27593:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_74007f953b79ec853cb87103ec9504ec665b2c9164be7516bbc8c84925b56cec__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27420:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27434:4:103","type":""}],"src":"27269:356:103"},{"body":{"nodeType":"YulBlock","src":"27804:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27821:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27832:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27814:6:103"},"nodeType":"YulFunctionCall","src":"27814:21:103"},"nodeType":"YulExpressionStatement","src":"27814:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27855:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27866:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27851:3:103"},"nodeType":"YulFunctionCall","src":"27851:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27871:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27844:6:103"},"nodeType":"YulFunctionCall","src":"27844:30:103"},"nodeType":"YulExpressionStatement","src":"27844:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27894:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27905:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27890:3:103"},"nodeType":"YulFunctionCall","src":"27890:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27910:34:103","type":"","value":"ERROR:AYI-013:ORACLE_REQUEST_NOT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27883:6:103"},"nodeType":"YulFunctionCall","src":"27883:62:103"},"nodeType":"YulExpressionStatement","src":"27883:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27965:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27976:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27961:3:103"},"nodeType":"YulFunctionCall","src":"27961:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27981:8:103","type":"","value":"_FOUND"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27954:6:103"},"nodeType":"YulFunctionCall","src":"27954:36:103"},"nodeType":"YulExpressionStatement","src":"27954:36:103"},{"nodeType":"YulAssignment","src":"27999:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28011:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28022:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28007:3:103"},"nodeType":"YulFunctionCall","src":"28007:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27999:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e5824abd539e2def691cf0401224fac97337998f0fa26de7535423fdaff387e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27781:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27795:4:103","type":""}],"src":"27630:402:103"},{"body":{"nodeType":"YulBlock","src":"28211:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28228:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28239:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28221:6:103"},"nodeType":"YulFunctionCall","src":"28221:21:103"},"nodeType":"YulExpressionStatement","src":"28221:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28262:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28273:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28258:3:103"},"nodeType":"YulFunctionCall","src":"28258:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28278:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28251:6:103"},"nodeType":"YulFunctionCall","src":"28251:30:103"},"nodeType":"YulExpressionStatement","src":"28251:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28301:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28312:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28297:3:103"},"nodeType":"YulFunctionCall","src":"28297:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28317:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28290:6:103"},"nodeType":"YulFunctionCall","src":"28290:62:103"},"nodeType":"YulExpressionStatement","src":"28290:62:103"},{"nodeType":"YulAssignment","src":"28361:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28373:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28384:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28369:3:103"},"nodeType":"YulFunctionCall","src":"28369:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28361:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28188:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28202:4:103","type":""}],"src":"28037:356:103"},{"body":{"nodeType":"YulBlock","src":"28572:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28589:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28600:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28582:6:103"},"nodeType":"YulFunctionCall","src":"28582:21:103"},"nodeType":"YulExpressionStatement","src":"28582:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28623:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28634:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28619:3:103"},"nodeType":"YulFunctionCall","src":"28619:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28639:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28612:6:103"},"nodeType":"YulFunctionCall","src":"28612:30:103"},"nodeType":"YulExpressionStatement","src":"28612:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28662:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28673:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28658:3:103"},"nodeType":"YulFunctionCall","src":"28658:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28678:33:103","type":"","value":"ERROR:AYI-023:EXISTING_CALLBACK"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28651:6:103"},"nodeType":"YulFunctionCall","src":"28651:61:103"},"nodeType":"YulExpressionStatement","src":"28651:61:103"},{"nodeType":"YulAssignment","src":"28721:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28733:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28744:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28729:3:103"},"nodeType":"YulFunctionCall","src":"28729:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28721:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_aaec2461ff204fc73d428d95c0f4cb5267531886babbeecda241ecff60dc08cf__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28549:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28563:4:103","type":""}],"src":"28398:355:103"},{"body":{"nodeType":"YulBlock","src":"28932:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28949:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28960:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28942:6:103"},"nodeType":"YulFunctionCall","src":"28942:21:103"},"nodeType":"YulExpressionStatement","src":"28942:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28983:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28994:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28979:3:103"},"nodeType":"YulFunctionCall","src":"28979:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28999:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28972:6:103"},"nodeType":"YulFunctionCall","src":"28972:30:103"},"nodeType":"YulExpressionStatement","src":"28972:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29022:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29033:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29018:3:103"},"nodeType":"YulFunctionCall","src":"29018:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29038:33:103","type":"","value":"ERROR:AYI-014:EXISTING_CALLBACK"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29011:6:103"},"nodeType":"YulFunctionCall","src":"29011:61:103"},"nodeType":"YulExpressionStatement","src":"29011:61:103"},{"nodeType":"YulAssignment","src":"29081:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29093:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29104:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29089:3:103"},"nodeType":"YulFunctionCall","src":"29089:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29081:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_aaf8ccfcadbad9421342ffd1299722ec5af1e410a95732101efa8995983950fc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28909:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28923:4:103","type":""}],"src":"28758:355:103"},{"body":{"nodeType":"YulBlock","src":"29292:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29309:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29320:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29302:6:103"},"nodeType":"YulFunctionCall","src":"29302:21:103"},"nodeType":"YulExpressionStatement","src":"29302:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29343:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29354:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29339:3:103"},"nodeType":"YulFunctionCall","src":"29339:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29359:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29332:6:103"},"nodeType":"YulFunctionCall","src":"29332:30:103"},"nodeType":"YulExpressionStatement","src":"29332:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29382:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29393:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29378:3:103"},"nodeType":"YulFunctionCall","src":"29378:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29398:34:103","type":"","value":"ERROR:AYI-043:RISK_TSI_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29371:6:103"},"nodeType":"YulFunctionCall","src":"29371:62:103"},"nodeType":"YulExpressionStatement","src":"29371:62:103"},{"nodeType":"YulAssignment","src":"29442:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29465:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29450:3:103"},"nodeType":"YulFunctionCall","src":"29450:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29442:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac82fb86fd21de21f78be2f637e9fab58b40e12b4a4583436526b5f1f92f6037__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29269:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29283:4:103","type":""}],"src":"29118:356:103"},{"body":{"nodeType":"YulBlock","src":"29653:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29670:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29681:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29663:6:103"},"nodeType":"YulFunctionCall","src":"29663:21:103"},"nodeType":"YulExpressionStatement","src":"29663:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29704:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29715:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29700:3:103"},"nodeType":"YulFunctionCall","src":"29700:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29720:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29693:6:103"},"nodeType":"YulFunctionCall","src":"29693:30:103"},"nodeType":"YulExpressionStatement","src":"29693:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29743:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29754:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29739:3:103"},"nodeType":"YulFunctionCall","src":"29739:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29759:34:103","type":"","value":"ERROR:AYI-044:RISK_TSI_TOO_LARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29732:6:103"},"nodeType":"YulFunctionCall","src":"29732:62:103"},"nodeType":"YulExpressionStatement","src":"29732:62:103"},{"nodeType":"YulAssignment","src":"29803:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29815:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29826:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29811:3:103"},"nodeType":"YulFunctionCall","src":"29811:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29803:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c593a3453eafb148b39dbe11ea4cd77edd7d3bf9c49913b3d86cf2b2ad158ac6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29630:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29644:4:103","type":""}],"src":"29479:356:103"},{"body":{"nodeType":"YulBlock","src":"30014:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30031:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30042:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30024:6:103"},"nodeType":"YulFunctionCall","src":"30024:21:103"},"nodeType":"YulExpressionStatement","src":"30024:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30065:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30076:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30061:3:103"},"nodeType":"YulFunctionCall","src":"30061:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30081:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30054:6:103"},"nodeType":"YulFunctionCall","src":"30054:30:103"},"nodeType":"YulExpressionStatement","src":"30054:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30104:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30115:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30100:3:103"},"nodeType":"YulFunctionCall","src":"30100:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30120:31:103","type":"","value":"ERROR:AYI-031:RISK_ID_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30093:6:103"},"nodeType":"YulFunctionCall","src":"30093:59:103"},"nodeType":"YulExpressionStatement","src":"30093:59:103"},{"nodeType":"YulAssignment","src":"30161:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30173:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30184:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30169:3:103"},"nodeType":"YulFunctionCall","src":"30169:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30161:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c8bfdecb7e2ed493ac22e973378473f67d79eabfa3ec87a5ca0db9597fe32dc2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29991:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30005:4:103","type":""}],"src":"29840:353:103"},{"body":{"nodeType":"YulBlock","src":"30372:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30389:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30400:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30382:6:103"},"nodeType":"YulFunctionCall","src":"30382:21:103"},"nodeType":"YulExpressionStatement","src":"30382:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30423:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30434:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30419:3:103"},"nodeType":"YulFunctionCall","src":"30419:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30439:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30412:6:103"},"nodeType":"YulFunctionCall","src":"30412:30:103"},"nodeType":"YulExpressionStatement","src":"30412:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30473:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30458:3:103"},"nodeType":"YulFunctionCall","src":"30458:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30478:32:103","type":"","value":"ERROR:AYI-020:RISK_ID_MISMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30451:6:103"},"nodeType":"YulFunctionCall","src":"30451:60:103"},"nodeType":"YulExpressionStatement","src":"30451:60:103"},{"nodeType":"YulAssignment","src":"30520:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30532:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30543:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30528:3:103"},"nodeType":"YulFunctionCall","src":"30528:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30520:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_cbaf1d726096478fb0eb96544569fd8fa4d575484c98caef0bd74861bf86ac57__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30349:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30363:4:103","type":""}],"src":"30198:354:103"},{"body":{"nodeType":"YulBlock","src":"30731:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30759:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30741:6:103"},"nodeType":"YulFunctionCall","src":"30741:21:103"},"nodeType":"YulExpressionStatement","src":"30741:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30782:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30793:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30778:3:103"},"nodeType":"YulFunctionCall","src":"30778:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30798:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30771:6:103"},"nodeType":"YulFunctionCall","src":"30771:30:103"},"nodeType":"YulExpressionStatement","src":"30771:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30821:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30832:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30817:3:103"},"nodeType":"YulFunctionCall","src":"30817:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30837:34:103","type":"","value":"ERROR:AYI-040:RISK_TRIGGER_TOO_L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30810:6:103"},"nodeType":"YulFunctionCall","src":"30810:62:103"},"nodeType":"YulExpressionStatement","src":"30810:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30903:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30888:3:103"},"nodeType":"YulFunctionCall","src":"30888:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30908:6:103","type":"","value":"ARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30881:6:103"},"nodeType":"YulFunctionCall","src":"30881:34:103"},"nodeType":"YulExpressionStatement","src":"30881:34:103"},{"nodeType":"YulAssignment","src":"30924:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30936:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30947:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30932:3:103"},"nodeType":"YulFunctionCall","src":"30932:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30924:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d25b01973080c85f3d4c19010fc1d88672bc6d17cea35996204c37425ae4f136__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30708:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30722:4:103","type":""}],"src":"30557:400:103"},{"body":{"nodeType":"YulBlock","src":"31136:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31164:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31146:6:103"},"nodeType":"YulFunctionCall","src":"31146:21:103"},"nodeType":"YulExpressionStatement","src":"31146:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31187:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31198:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31183:3:103"},"nodeType":"YulFunctionCall","src":"31183:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"31203:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31176:6:103"},"nodeType":"YulFunctionCall","src":"31176:30:103"},"nodeType":"YulExpressionStatement","src":"31176:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31237:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31222:3:103"},"nodeType":"YulFunctionCall","src":"31222:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31242:30:103","type":"","value":"ERROR:AYI-012:RISK_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31215:6:103"},"nodeType":"YulFunctionCall","src":"31215:58:103"},"nodeType":"YulExpressionStatement","src":"31215:58:103"},{"nodeType":"YulAssignment","src":"31282:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31294:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31305:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31290:3:103"},"nodeType":"YulFunctionCall","src":"31290:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31282:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcbc40a3d8c26349e10dd7f08a6b7b007d7052eecfaccb2cc208ecaf8fccefd5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31113:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31127:4:103","type":""}],"src":"30962:352:103"},{"body":{"nodeType":"YulBlock","src":"31493:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31510:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31521:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31503:6:103"},"nodeType":"YulFunctionCall","src":"31503:21:103"},"nodeType":"YulExpressionStatement","src":"31503:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31544:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31555:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31540:3:103"},"nodeType":"YulFunctionCall","src":"31540:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"31560:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31533:6:103"},"nodeType":"YulFunctionCall","src":"31533:30:103"},"nodeType":"YulExpressionStatement","src":"31533:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31583:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31594:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31579:3:103"},"nodeType":"YulFunctionCall","src":"31579:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31599:30:103","type":"","value":"ERROR:AYI-004:RISK_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31572:6:103"},"nodeType":"YulFunctionCall","src":"31572:58:103"},"nodeType":"YulExpressionStatement","src":"31572:58:103"},{"nodeType":"YulAssignment","src":"31639:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31651:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31662:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31647:3:103"},"nodeType":"YulFunctionCall","src":"31647:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31639:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dd75e4d2b94b2d8ff6b0403850d1167c5b6fa118aa13973f47a4b7f7d7ee5f5f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31470:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31484:4:103","type":""}],"src":"31319:352:103"},{"body":{"nodeType":"YulBlock","src":"31850:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31867:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31878:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31860:6:103"},"nodeType":"YulFunctionCall","src":"31860:21:103"},"nodeType":"YulExpressionStatement","src":"31860:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31901:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31912:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31897:3:103"},"nodeType":"YulFunctionCall","src":"31897:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"31917:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31890:6:103"},"nodeType":"YulFunctionCall","src":"31890:30:103"},"nodeType":"YulExpressionStatement","src":"31890:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31940:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31951:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31936:3:103"},"nodeType":"YulFunctionCall","src":"31936:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31956:34:103","type":"","value":"ERROR:AYI-001:RISK_ALREADY_EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31929:6:103"},"nodeType":"YulFunctionCall","src":"31929:62:103"},"nodeType":"YulExpressionStatement","src":"31929:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32011:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32022:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32007:3:103"},"nodeType":"YulFunctionCall","src":"32007:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32027:3:103","type":"","value":"S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32000:6:103"},"nodeType":"YulFunctionCall","src":"32000:31:103"},"nodeType":"YulExpressionStatement","src":"32000:31:103"},{"nodeType":"YulAssignment","src":"32040:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32052:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32063:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32048:3:103"},"nodeType":"YulFunctionCall","src":"32048:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32040:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e1a84a551284060b76b600a286108f6c04d1bc2ac8241df44449fd27fa94a00a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31827:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31841:4:103","type":""}],"src":"31676:397:103"},{"body":{"nodeType":"YulBlock","src":"32252:176:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32269:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32280:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32262:6:103"},"nodeType":"YulFunctionCall","src":"32262:21:103"},"nodeType":"YulExpressionStatement","src":"32262:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32303:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32314:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32299:3:103"},"nodeType":"YulFunctionCall","src":"32299:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"32319:2:103","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32292:6:103"},"nodeType":"YulFunctionCall","src":"32292:30:103"},"nodeType":"YulExpressionStatement","src":"32292:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32353:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32338:3:103"},"nodeType":"YulFunctionCall","src":"32338:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32358:28:103","type":"","value":"ERROR:AYI-002:RISK_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32331:6:103"},"nodeType":"YulFunctionCall","src":"32331:56:103"},"nodeType":"YulExpressionStatement","src":"32331:56:103"},{"nodeType":"YulAssignment","src":"32396:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32408:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32419:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32404:3:103"},"nodeType":"YulFunctionCall","src":"32404:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32396:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e50d6e107b97b06a6b4ebbb835c4ac409d87bd844c914bf49d6502833d8ba34e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32229:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32243:4:103","type":""}],"src":"32078:350:103"},{"body":{"nodeType":"YulBlock","src":"32607:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32624:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32635:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32617:6:103"},"nodeType":"YulFunctionCall","src":"32617:21:103"},"nodeType":"YulExpressionStatement","src":"32617:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32658:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32669:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32654:3:103"},"nodeType":"YulFunctionCall","src":"32654:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"32674:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32647:6:103"},"nodeType":"YulFunctionCall","src":"32647:30:103"},"nodeType":"YulExpressionStatement","src":"32647:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32697:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32708:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32693:3:103"},"nodeType":"YulFunctionCall","src":"32693:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32713:34:103","type":"","value":"ERROR:AYI-003:RISK_WITH_POLICIES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32686:6:103"},"nodeType":"YulFunctionCall","src":"32686:62:103"},"nodeType":"YulExpressionStatement","src":"32686:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32779:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32764:3:103"},"nodeType":"YulFunctionCall","src":"32764:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32784:17:103","type":"","value":"_NOT_ADJUSTABLE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32757:6:103"},"nodeType":"YulFunctionCall","src":"32757:45:103"},"nodeType":"YulExpressionStatement","src":"32757:45:103"},{"nodeType":"YulAssignment","src":"32811:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32823:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32834:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32819:3:103"},"nodeType":"YulFunctionCall","src":"32819:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32811:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f422cac3b534a9ed752cfd161d8b473b386119366ac0d8f2b3a828e1526d99f3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32584:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32598:4:103","type":""}],"src":"32433:411:103"},{"body":{"nodeType":"YulBlock","src":"33023:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33040:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33051:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33033:6:103"},"nodeType":"YulFunctionCall","src":"33033:21:103"},"nodeType":"YulExpressionStatement","src":"33033:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33074:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33085:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33070:3:103"},"nodeType":"YulFunctionCall","src":"33070:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"33090:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33063:6:103"},"nodeType":"YulFunctionCall","src":"33063:30:103"},"nodeType":"YulExpressionStatement","src":"33063:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33113:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33124:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33109:3:103"},"nodeType":"YulFunctionCall","src":"33109:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33129:34:103","type":"","value":"ERROR:AYI-022:REQUEST_ID_MISMATC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33102:6:103"},"nodeType":"YulFunctionCall","src":"33102:62:103"},"nodeType":"YulExpressionStatement","src":"33102:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33184:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33195:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33180:3:103"},"nodeType":"YulFunctionCall","src":"33180:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33200:3:103","type":"","value":"H"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33173:6:103"},"nodeType":"YulFunctionCall","src":"33173:31:103"},"nodeType":"YulExpressionStatement","src":"33173:31:103"},{"nodeType":"YulAssignment","src":"33213:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33225:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33236:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33221:3:103"},"nodeType":"YulFunctionCall","src":"33221:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33213:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f6dbb8dbd57bcf301752f2cf8b3847b57c719884a8d0c8570c19052a9efb7ef6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33000:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33014:4:103","type":""}],"src":"32849:397:103"},{"body":{"nodeType":"YulBlock","src":"33425:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33442:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33453:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33435:6:103"},"nodeType":"YulFunctionCall","src":"33435:21:103"},"nodeType":"YulExpressionStatement","src":"33435:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33476:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33487:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33472:3:103"},"nodeType":"YulFunctionCall","src":"33472:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"33492:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33465:6:103"},"nodeType":"YulFunctionCall","src":"33465:30:103"},"nodeType":"YulExpressionStatement","src":"33465:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33515:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33526:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33511:3:103"},"nodeType":"YulFunctionCall","src":"33511:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33531:34:103","type":"","value":"ERROR:AYI-033:POLICY_FOR_RISK_UN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33504:6:103"},"nodeType":"YulFunctionCall","src":"33504:62:103"},"nodeType":"YulExpressionStatement","src":"33504:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33586:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33597:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33582:3:103"},"nodeType":"YulFunctionCall","src":"33582:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33602:7:103","type":"","value":"KNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33575:6:103"},"nodeType":"YulFunctionCall","src":"33575:35:103"},"nodeType":"YulExpressionStatement","src":"33575:35:103"},{"nodeType":"YulAssignment","src":"33619:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33642:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33627:3:103"},"nodeType":"YulFunctionCall","src":"33627:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33619:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fafa31ad4244029644c90b6f5cee740910ee69364e793eab36c7c37db6e32ff4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33402:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33416:4:103","type":""}],"src":"33251:401:103"},{"body":{"nodeType":"YulBlock","src":"33831:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33848:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33859:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33841:6:103"},"nodeType":"YulFunctionCall","src":"33841:21:103"},"nodeType":"YulExpressionStatement","src":"33841:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33882:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33893:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33878:3:103"},"nodeType":"YulFunctionCall","src":"33878:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"33898:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33871:6:103"},"nodeType":"YulFunctionCall","src":"33871:30:103"},"nodeType":"YulExpressionStatement","src":"33871:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33921:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33932:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33917:3:103"},"nodeType":"YulFunctionCall","src":"33917:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33937:34:103","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33910:6:103"},"nodeType":"YulFunctionCall","src":"33910:62:103"},"nodeType":"YulExpressionStatement","src":"33910:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34003:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33988:3:103"},"nodeType":"YulFunctionCall","src":"33988:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34008:17:103","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33981:6:103"},"nodeType":"YulFunctionCall","src":"33981:45:103"},"nodeType":"YulExpressionStatement","src":"33981:45:103"},{"nodeType":"YulAssignment","src":"34035:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34047:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34058:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34043:3:103"},"nodeType":"YulFunctionCall","src":"34043:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34035:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33808:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33822:4:103","type":""}],"src":"33657:411:103"},{"body":{"nodeType":"YulBlock","src":"34220:1163:103","statements":[{"nodeType":"YulAssignment","src":"34230:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34242:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34253:3:103","type":"","value":"480"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34238:3:103"},"nodeType":"YulFunctionCall","src":"34238:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34230:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34273:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34290:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34284:5:103"},"nodeType":"YulFunctionCall","src":"34284:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34266:6:103"},"nodeType":"YulFunctionCall","src":"34266:32:103"},"nodeType":"YulExpressionStatement","src":"34266:32:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34318:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34329:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34314:3:103"},"nodeType":"YulFunctionCall","src":"34314:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34346:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34354:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34342:3:103"},"nodeType":"YulFunctionCall","src":"34342:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34336:5:103"},"nodeType":"YulFunctionCall","src":"34336:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34307:6:103"},"nodeType":"YulFunctionCall","src":"34307:54:103"},"nodeType":"YulExpressionStatement","src":"34307:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34392:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34377:3:103"},"nodeType":"YulFunctionCall","src":"34377:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34409:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34417:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34405:3:103"},"nodeType":"YulFunctionCall","src":"34405:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34399:5:103"},"nodeType":"YulFunctionCall","src":"34399:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34370:6:103"},"nodeType":"YulFunctionCall","src":"34370:54:103"},"nodeType":"YulExpressionStatement","src":"34370:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34444:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34455:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34440:3:103"},"nodeType":"YulFunctionCall","src":"34440:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34472:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34480:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34468:3:103"},"nodeType":"YulFunctionCall","src":"34468:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34462:5:103"},"nodeType":"YulFunctionCall","src":"34462:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34433:6:103"},"nodeType":"YulFunctionCall","src":"34433:54:103"},"nodeType":"YulExpressionStatement","src":"34433:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34507:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34518:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34503:3:103"},"nodeType":"YulFunctionCall","src":"34503:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34535:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34543:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34531:3:103"},"nodeType":"YulFunctionCall","src":"34531:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34525:5:103"},"nodeType":"YulFunctionCall","src":"34525:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34496:6:103"},"nodeType":"YulFunctionCall","src":"34496:54:103"},"nodeType":"YulExpressionStatement","src":"34496:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34570:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34581:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34566:3:103"},"nodeType":"YulFunctionCall","src":"34566:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34598:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34606:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34594:3:103"},"nodeType":"YulFunctionCall","src":"34594:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34588:5:103"},"nodeType":"YulFunctionCall","src":"34588:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34559:6:103"},"nodeType":"YulFunctionCall","src":"34559:54:103"},"nodeType":"YulExpressionStatement","src":"34559:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34633:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34644:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34629:3:103"},"nodeType":"YulFunctionCall","src":"34629:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34661:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34669:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34657:3:103"},"nodeType":"YulFunctionCall","src":"34657:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34651:5:103"},"nodeType":"YulFunctionCall","src":"34651:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34622:6:103"},"nodeType":"YulFunctionCall","src":"34622:54:103"},"nodeType":"YulExpressionStatement","src":"34622:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34696:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34707:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34692:3:103"},"nodeType":"YulFunctionCall","src":"34692:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34724:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34732:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34720:3:103"},"nodeType":"YulFunctionCall","src":"34720:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34714:5:103"},"nodeType":"YulFunctionCall","src":"34714:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34685:6:103"},"nodeType":"YulFunctionCall","src":"34685:54:103"},"nodeType":"YulExpressionStatement","src":"34685:54:103"},{"nodeType":"YulVariableDeclaration","src":"34748:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"34758:6:103","type":"","value":"0x0100"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"34752:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34784:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"34795:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34780:3:103"},"nodeType":"YulFunctionCall","src":"34780:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34810:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"34818:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34806:3:103"},"nodeType":"YulFunctionCall","src":"34806:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34800:5:103"},"nodeType":"YulFunctionCall","src":"34800:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34773:6:103"},"nodeType":"YulFunctionCall","src":"34773:50:103"},"nodeType":"YulExpressionStatement","src":"34773:50:103"},{"nodeType":"YulVariableDeclaration","src":"34832:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"34842:6:103","type":"","value":"0x0120"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"34836:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34857:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34887:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"34895:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34883:3:103"},"nodeType":"YulFunctionCall","src":"34883:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34877:5:103"},"nodeType":"YulFunctionCall","src":"34877:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"34861:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"34924:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34942:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"34953:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34938:3:103"},"nodeType":"YulFunctionCall","src":"34938:18:103"}],"functionName":{"name":"abi_encode_bool","nodeType":"YulIdentifier","src":"34908:15:103"},"nodeType":"YulFunctionCall","src":"34908:49:103"},"nodeType":"YulExpressionStatement","src":"34908:49:103"},{"nodeType":"YulVariableDeclaration","src":"34966:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"34976:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"34970:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35002:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"35013:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34998:3:103"},"nodeType":"YulFunctionCall","src":"34998:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35028:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"35036:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35024:3:103"},"nodeType":"YulFunctionCall","src":"35024:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35018:5:103"},"nodeType":"YulFunctionCall","src":"35018:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34991:6:103"},"nodeType":"YulFunctionCall","src":"34991:50:103"},"nodeType":"YulExpressionStatement","src":"34991:50:103"},{"nodeType":"YulVariableDeclaration","src":"35050:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35060:6:103","type":"","value":"0x0160"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"35054:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35086:9:103"},{"name":"_4","nodeType":"YulIdentifier","src":"35097:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35082:3:103"},"nodeType":"YulFunctionCall","src":"35082:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35112:6:103"},{"name":"_4","nodeType":"YulIdentifier","src":"35120:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35108:3:103"},"nodeType":"YulFunctionCall","src":"35108:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35102:5:103"},"nodeType":"YulFunctionCall","src":"35102:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35075:6:103"},"nodeType":"YulFunctionCall","src":"35075:50:103"},"nodeType":"YulExpressionStatement","src":"35075:50:103"},{"nodeType":"YulVariableDeclaration","src":"35134:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35144:6:103","type":"","value":"0x0180"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"35138:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35170:9:103"},{"name":"_5","nodeType":"YulIdentifier","src":"35181:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35166:3:103"},"nodeType":"YulFunctionCall","src":"35166:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35196:6:103"},{"name":"_5","nodeType":"YulIdentifier","src":"35204:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35192:3:103"},"nodeType":"YulFunctionCall","src":"35192:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35186:5:103"},"nodeType":"YulFunctionCall","src":"35186:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35159:6:103"},"nodeType":"YulFunctionCall","src":"35159:50:103"},"nodeType":"YulExpressionStatement","src":"35159:50:103"},{"nodeType":"YulVariableDeclaration","src":"35218:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35228:6:103","type":"","value":"0x01a0"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"35222:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35254:9:103"},{"name":"_6","nodeType":"YulIdentifier","src":"35265:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35250:3:103"},"nodeType":"YulFunctionCall","src":"35250:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35280:6:103"},{"name":"_6","nodeType":"YulIdentifier","src":"35288:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35276:3:103"},"nodeType":"YulFunctionCall","src":"35276:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35270:5:103"},"nodeType":"YulFunctionCall","src":"35270:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35243:6:103"},"nodeType":"YulFunctionCall","src":"35243:50:103"},"nodeType":"YulExpressionStatement","src":"35243:50:103"},{"nodeType":"YulVariableDeclaration","src":"35302:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35312:6:103","type":"","value":"0x01c0"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"35306:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35338:9:103"},{"name":"_7","nodeType":"YulIdentifier","src":"35349:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35334:3:103"},"nodeType":"YulFunctionCall","src":"35334:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35364:6:103"},{"name":"_7","nodeType":"YulIdentifier","src":"35372:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35360:3:103"},"nodeType":"YulFunctionCall","src":"35360:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35354:5:103"},"nodeType":"YulFunctionCall","src":"35354:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35327:6:103"},"nodeType":"YulFunctionCall","src":"35327:50:103"},"nodeType":"YulExpressionStatement","src":"35327:50:103"}]},"name":"abi_encode_tuple_t_struct$_Risk_$11917_memory_ptr__to_t_struct$_Risk_$11917_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34189:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"34200:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34211:4:103","type":""}],"src":"34073:1310:103"},{"body":{"nodeType":"YulBlock","src":"35489:76:103","statements":[{"nodeType":"YulAssignment","src":"35499:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35511:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35522:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35507:3:103"},"nodeType":"YulFunctionCall","src":"35507:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35499:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35541:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"35552:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35534:6:103"},"nodeType":"YulFunctionCall","src":"35534:25:103"},"nodeType":"YulExpressionStatement","src":"35534:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35458:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"35469:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35480:4:103","type":""}],"src":"35388:177:103"},{"body":{"nodeType":"YulBlock","src":"35783:250:103","statements":[{"nodeType":"YulAssignment","src":"35793:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35805:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35816:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35801:3:103"},"nodeType":"YulFunctionCall","src":"35801:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35793:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35836:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"35847:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35829:6:103"},"nodeType":"YulFunctionCall","src":"35829:25:103"},"nodeType":"YulExpressionStatement","src":"35829:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35874:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35885:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35870:3:103"},"nodeType":"YulFunctionCall","src":"35870:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"35890:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35863:6:103"},"nodeType":"YulFunctionCall","src":"35863:34:103"},"nodeType":"YulExpressionStatement","src":"35863:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35917:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35928:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35913:3:103"},"nodeType":"YulFunctionCall","src":"35913:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"35933:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35906:6:103"},"nodeType":"YulFunctionCall","src":"35906:34:103"},"nodeType":"YulExpressionStatement","src":"35906:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35960:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35971:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35956:3:103"},"nodeType":"YulFunctionCall","src":"35956:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"35976:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35949:6:103"},"nodeType":"YulFunctionCall","src":"35949:34:103"},"nodeType":"YulExpressionStatement","src":"35949:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36003:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36014:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35999:3:103"},"nodeType":"YulFunctionCall","src":"35999:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"36020:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35992:6:103"},"nodeType":"YulFunctionCall","src":"35992:35:103"},"nodeType":"YulExpressionStatement","src":"35992:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35720:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"35731:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"35739:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"35747:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"35755:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"35763:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35774:4:103","type":""}],"src":"35570:463:103"},{"body":{"nodeType":"YulBlock","src":"36195:162:103","statements":[{"nodeType":"YulAssignment","src":"36205:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36228:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36213:3:103"},"nodeType":"YulFunctionCall","src":"36213:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36205:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36247:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"36258:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36240:6:103"},"nodeType":"YulFunctionCall","src":"36240:25:103"},"nodeType":"YulExpressionStatement","src":"36240:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36285:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36296:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36281:3:103"},"nodeType":"YulFunctionCall","src":"36281:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"36301:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36274:6:103"},"nodeType":"YulFunctionCall","src":"36274:34:103"},"nodeType":"YulExpressionStatement","src":"36274:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36328:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36339:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36324:3:103"},"nodeType":"YulFunctionCall","src":"36324:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"36344:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36317:6:103"},"nodeType":"YulFunctionCall","src":"36317:34:103"},"nodeType":"YulExpressionStatement","src":"36317:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36148:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"36159:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"36167:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"36175:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36186:4:103","type":""}],"src":"36038:319:103"},{"body":{"nodeType":"YulBlock","src":"36491:119:103","statements":[{"nodeType":"YulAssignment","src":"36501:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36513:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36524:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36509:3:103"},"nodeType":"YulFunctionCall","src":"36509:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36501:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36543:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"36554:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36536:6:103"},"nodeType":"YulFunctionCall","src":"36536:25:103"},"nodeType":"YulExpressionStatement","src":"36536:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36592:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36577:3:103"},"nodeType":"YulFunctionCall","src":"36577:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"36597:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36570:6:103"},"nodeType":"YulFunctionCall","src":"36570:34:103"},"nodeType":"YulExpressionStatement","src":"36570:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36452:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"36463:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"36471:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36482:4:103","type":""}],"src":"36362:248:103"},{"body":{"nodeType":"YulBlock","src":"36660:230:103","statements":[{"nodeType":"YulAssignment","src":"36670:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36686:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"36680:5:103"},"nodeType":"YulFunctionCall","src":"36680:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"36670:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"36698:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"36720:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"36736:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"36742:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36732:3:103"},"nodeType":"YulFunctionCall","src":"36732:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36751:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"36747:3:103"},"nodeType":"YulFunctionCall","src":"36747:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36728:3:103"},"nodeType":"YulFunctionCall","src":"36728:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36716:3:103"},"nodeType":"YulFunctionCall","src":"36716:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"36702:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"36831:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"36833:16:103"},"nodeType":"YulFunctionCall","src":"36833:18:103"},"nodeType":"YulExpressionStatement","src":"36833:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"36774:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"36786:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"36771:2:103"},"nodeType":"YulFunctionCall","src":"36771:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"36810:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"36822:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"36807:2:103"},"nodeType":"YulFunctionCall","src":"36807:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"36768:2:103"},"nodeType":"YulFunctionCall","src":"36768:62:103"},"nodeType":"YulIf","src":"36765:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36869:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"36873:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36862:6:103"},"nodeType":"YulFunctionCall","src":"36862:22:103"},"nodeType":"YulExpressionStatement","src":"36862:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"36640:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"36649:6:103","type":""}],"src":"36615:275:103"},{"body":{"nodeType":"YulBlock","src":"36943:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"36970:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"36972:16:103"},"nodeType":"YulFunctionCall","src":"36972:18:103"},"nodeType":"YulExpressionStatement","src":"36972:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"36959:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"36966:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"36962:3:103"},"nodeType":"YulFunctionCall","src":"36962:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"36956:2:103"},"nodeType":"YulFunctionCall","src":"36956:13:103"},"nodeType":"YulIf","src":"36953:2:103"},{"nodeType":"YulAssignment","src":"37001:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37012:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"37015:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37008:3:103"},"nodeType":"YulFunctionCall","src":"37008:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"37001:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"36926:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"36929:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"36935:3:103","type":""}],"src":"36895:128:103"},{"body":{"nodeType":"YulBlock","src":"37074:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"37105:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"37126:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37133:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"37138:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"37129:3:103"},"nodeType":"YulFunctionCall","src":"37129:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37119:6:103"},"nodeType":"YulFunctionCall","src":"37119:31:103"},"nodeType":"YulExpressionStatement","src":"37119:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37170:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"37173:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37163:6:103"},"nodeType":"YulFunctionCall","src":"37163:15:103"},"nodeType":"YulExpressionStatement","src":"37163:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"37198:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"37201:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37191:6:103"},"nodeType":"YulFunctionCall","src":"37191:15:103"},"nodeType":"YulExpressionStatement","src":"37191:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"37094:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37087:6:103"},"nodeType":"YulFunctionCall","src":"37087:9:103"},"nodeType":"YulIf","src":"37084:2:103"},{"nodeType":"YulAssignment","src":"37225:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37234:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"37237:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"37230:3:103"},"nodeType":"YulFunctionCall","src":"37230:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"37225:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"37059:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"37062:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"37068:1:103","type":""}],"src":"37028:217:103"},{"body":{"nodeType":"YulBlock","src":"37302:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"37361:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"37363:16:103"},"nodeType":"YulFunctionCall","src":"37363:18:103"},"nodeType":"YulExpressionStatement","src":"37363:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37333:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37326:6:103"},"nodeType":"YulFunctionCall","src":"37326:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37319:6:103"},"nodeType":"YulFunctionCall","src":"37319:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"37341:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37352:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"37348:3:103"},"nodeType":"YulFunctionCall","src":"37348:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"37356:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"37344:3:103"},"nodeType":"YulFunctionCall","src":"37344:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"37338:2:103"},"nodeType":"YulFunctionCall","src":"37338:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"37315:3:103"},"nodeType":"YulFunctionCall","src":"37315:45:103"},"nodeType":"YulIf","src":"37312:2:103"},{"nodeType":"YulAssignment","src":"37392:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37407:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"37410:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"37403:3:103"},"nodeType":"YulFunctionCall","src":"37403:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"37392:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"37281:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"37284:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"37290:7:103","type":""}],"src":"37250:168:103"},{"body":{"nodeType":"YulBlock","src":"37472:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"37494:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"37496:16:103"},"nodeType":"YulFunctionCall","src":"37496:18:103"},"nodeType":"YulExpressionStatement","src":"37496:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37488:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"37491:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"37485:2:103"},"nodeType":"YulFunctionCall","src":"37485:8:103"},"nodeType":"YulIf","src":"37482:2:103"},{"nodeType":"YulAssignment","src":"37525:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37537:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"37540:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37533:3:103"},"nodeType":"YulFunctionCall","src":"37533:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"37525:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"37454:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"37457:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"37463:4:103","type":""}],"src":"37423:125:103"},{"body":{"nodeType":"YulBlock","src":"37606:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"37616:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"37625:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"37620:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"37685:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"37710:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"37715:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37706:3:103"},"nodeType":"YulFunctionCall","src":"37706:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"37729:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"37734:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37725:3:103"},"nodeType":"YulFunctionCall","src":"37725:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37719:5:103"},"nodeType":"YulFunctionCall","src":"37719:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37699:6:103"},"nodeType":"YulFunctionCall","src":"37699:39:103"},"nodeType":"YulExpressionStatement","src":"37699:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"37646:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"37649:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"37643:2:103"},"nodeType":"YulFunctionCall","src":"37643:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"37657:19:103","statements":[{"nodeType":"YulAssignment","src":"37659:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"37668:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"37671:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37664:3:103"},"nodeType":"YulFunctionCall","src":"37664:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"37659:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"37639:3:103","statements":[]},"src":"37635:113:103"},{"body":{"nodeType":"YulBlock","src":"37774:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"37787:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"37792:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37783:3:103"},"nodeType":"YulFunctionCall","src":"37783:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"37801:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37776:6:103"},"nodeType":"YulFunctionCall","src":"37776:27:103"},"nodeType":"YulExpressionStatement","src":"37776:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"37763:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"37766:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"37760:2:103"},"nodeType":"YulFunctionCall","src":"37760:13:103"},"nodeType":"YulIf","src":"37757:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"37584:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"37589:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"37594:6:103","type":""}],"src":"37553:258:103"},{"body":{"nodeType":"YulBlock","src":"37863:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"37890:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"37892:16:103"},"nodeType":"YulFunctionCall","src":"37892:18:103"},"nodeType":"YulExpressionStatement","src":"37892:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37883:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37876:6:103"},"nodeType":"YulFunctionCall","src":"37876:13:103"},"nodeType":"YulIf","src":"37873:2:103"},{"nodeType":"YulAssignment","src":"37921:25:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37932:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37943:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"37939:3:103"},"nodeType":"YulFunctionCall","src":"37939:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37928:3:103"},"nodeType":"YulFunctionCall","src":"37928:18:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"37921:3:103"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"37845:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"37855:3:103","type":""}],"src":"37816:136:103"},{"body":{"nodeType":"YulBlock","src":"38004:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"38035:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"38037:16:103"},"nodeType":"YulFunctionCall","src":"38037:18:103"},"nodeType":"YulExpressionStatement","src":"38037:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"38020:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38031:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"38027:3:103"},"nodeType":"YulFunctionCall","src":"38027:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"38017:2:103"},"nodeType":"YulFunctionCall","src":"38017:17:103"},"nodeType":"YulIf","src":"38014:2:103"},{"nodeType":"YulAssignment","src":"38066:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"38077:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"38084:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38073:3:103"},"nodeType":"YulFunctionCall","src":"38073:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"38066:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"37986:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"37996:3:103","type":""}],"src":"37957:135:103"},{"body":{"nodeType":"YulBlock","src":"38129:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38146:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38153:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"38158:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"38149:3:103"},"nodeType":"YulFunctionCall","src":"38149:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38139:6:103"},"nodeType":"YulFunctionCall","src":"38139:31:103"},"nodeType":"YulExpressionStatement","src":"38139:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38186:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"38189:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38179:6:103"},"nodeType":"YulFunctionCall","src":"38179:15:103"},"nodeType":"YulExpressionStatement","src":"38179:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38210:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"38213:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"38203:6:103"},"nodeType":"YulFunctionCall","src":"38203:15:103"},"nodeType":"YulExpressionStatement","src":"38203:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"38097:127:103"},{"body":{"nodeType":"YulBlock","src":"38261:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38278:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38285:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"38290:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"38281:3:103"},"nodeType":"YulFunctionCall","src":"38281:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38271:6:103"},"nodeType":"YulFunctionCall","src":"38271:31:103"},"nodeType":"YulExpressionStatement","src":"38271:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38318:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"38321:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38311:6:103"},"nodeType":"YulFunctionCall","src":"38311:15:103"},"nodeType":"YulExpressionStatement","src":"38311:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38342:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"38345:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"38335:6:103"},"nodeType":"YulFunctionCall","src":"38335:15:103"},"nodeType":"YulExpressionStatement","src":"38335:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"38229:127:103"},{"body":{"nodeType":"YulBlock","src":"38393:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38410:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38417:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"38422:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"38413:3:103"},"nodeType":"YulFunctionCall","src":"38413:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38403:6:103"},"nodeType":"YulFunctionCall","src":"38403:31:103"},"nodeType":"YulExpressionStatement","src":"38403:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38450:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"38453:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38443:6:103"},"nodeType":"YulFunctionCall","src":"38443:15:103"},"nodeType":"YulExpressionStatement","src":"38443:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38474:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"38477:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"38467:6:103"},"nodeType":"YulFunctionCall","src":"38467:15:103"},"nodeType":"YulExpressionStatement","src":"38467:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"38361:127:103"},{"body":{"nodeType":"YulBlock","src":"38538:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"38602:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38611:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"38614:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"38604:6:103"},"nodeType":"YulFunctionCall","src":"38604:12:103"},"nodeType":"YulExpressionStatement","src":"38604:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"38561:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"38572:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38587:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"38592:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"38583:3:103"},"nodeType":"YulFunctionCall","src":"38583:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"38596:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"38579:3:103"},"nodeType":"YulFunctionCall","src":"38579:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"38568:3:103"},"nodeType":"YulFunctionCall","src":"38568:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"38558:2:103"},"nodeType":"YulFunctionCall","src":"38558:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"38551:6:103"},"nodeType":"YulFunctionCall","src":"38551:50:103"},"nodeType":"YulIf","src":"38548:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"38527:5:103","type":""}],"src":"38493:131:103"}]},"contents":"{\n { }\n function abi_decode_bool_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_uint256t_uint256t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_bool_fromMemory(headStart)\n }\n function abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := abi_decode_bool_fromMemory(headStart)\n value1 := mload(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 224) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n value5 := calldataload(add(headStart, 160))\n value6 := calldataload(add(headStart, 192))\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n if iszero(lt(value_1, 4)) { revert(value0, value0) }\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bytes32t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value2, value2) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value2, value2) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value2, value2) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value2, value2) }\n value2 := add(_2, 32)\n value3 := length\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_encode_bool(value, pos)\n {\n mstore(pos, iszero(iszero(value)))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, \"AccessControl: account \")\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n let _1 := add(pos, length)\n mstore(add(_1, 23), \" is missing role \")\n let length_1 := mload(value1)\n copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n end := add(add(_1, length_1), 40)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 160)\n let tail_1 := abi_encode_bytes(value3, add(headStart, 160))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n tail := abi_encode_bytes(value4, tail_1)\n }\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 160))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_bytes(value2, tail_1)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_bytes32_t_rational_0_by_1__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0a4d1e7ee13d3e1c186b0c5039ac828c21427604ef12eb5f13ec178f7b5ae702__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:AYI-046:RISK_APH_ZERO_INVA\")\n mstore(add(headStart, 96), \"LID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1933cf92e854516d33fae263dace7298dd28dda3cb0e72fbef894e917a93a275__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"ERROR:AYI-024:AAAY_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2498ce872169b7763abec28f7059d4a97ac70a016e3a78c66a9f5c7740b38ef8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:AYI-042:RISK_EXIT_TOO_LARG\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_28015aff36bbf8cb89a7d6ca21c217883599d0a9d34ab709c871c948f0fded56__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:AYI-010:RISK_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:PRD-003:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_412e0dd059ff5ee1474516ff048f71840a3a2965c87e0ba7efd8312e11193f6b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:AYI-041:RISK_TRIGGER_NOT_L\")\n mstore(add(headStart, 96), \"ARGER_THAN_EXIT\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_41a8e910e497c53c0ffe6a8d374e9ceae17e46879b937ab53f2189842ece12cd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:AYI-047:RISK_APH_TOO_LARGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_58676a06b2a15eeef19d847ad905241c221bcfc99304360d668ec70c06b294c9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:AYI-030:ORACLE_RESPONSE_MI\")\n mstore(add(headStart, 96), \"SSING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6ee02cfa0248fa86db9a11f735c32c1ff1a44fc0b1601b5b7ff4563f745477c9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:AYI-021:RISK_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6f27b73d87657a4223eeda0e62929018b09601be0c30975a8a78bf41dfdbaaa2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:AYI-032:ORACLE_RESPONSE_MI\")\n mstore(add(headStart, 96), \"SSING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6fc284dd3ef5c0a4e0102afbb048ee6a2068822573dadf296d595b1f0508f960__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:AYI-011:ORACLE_ALREADY_RES\")\n mstore(add(headStart, 96), \"PONDED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_722b7f7e542cc90fba74057b4a362428bdd9a3b53029c438d846a79f1ac5a7d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:AYI-045:RISK_TSI_EXIT_SUM_\")\n mstore(add(headStart, 96), \"TOO_LARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_74007f953b79ec853cb87103ec9504ec665b2c9164be7516bbc8c84925b56cec__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:AYI-005:POLICY_HOLDER_ZERO\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8e5824abd539e2def691cf0401224fac97337998f0fa26de7535423fdaff387e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:AYI-013:ORACLE_REQUEST_NOT\")\n mstore(add(headStart, 96), \"_FOUND\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_aaec2461ff204fc73d428d95c0f4cb5267531886babbeecda241ecff60dc08cf__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:AYI-023:EXISTING_CALLBACK\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_aaf8ccfcadbad9421342ffd1299722ec5af1e410a95732101efa8995983950fc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:AYI-014:EXISTING_CALLBACK\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ac82fb86fd21de21f78be2f637e9fab58b40e12b4a4583436526b5f1f92f6037__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:AYI-043:RISK_TSI_TOO_SMALL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_c593a3453eafb148b39dbe11ea4cd77edd7d3bf9c49913b3d86cf2b2ad158ac6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:AYI-044:RISK_TSI_TOO_LARGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_c8bfdecb7e2ed493ac22e973378473f67d79eabfa3ec87a5ca0db9597fe32dc2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:AYI-031:RISK_ID_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cbaf1d726096478fb0eb96544569fd8fa4d575484c98caef0bd74861bf86ac57__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:AYI-020:RISK_ID_MISMATCH\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d25b01973080c85f3d4c19010fc1d88672bc6d17cea35996204c37425ae4f136__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:AYI-040:RISK_TRIGGER_TOO_L\")\n mstore(add(headStart, 96), \"ARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_dcbc40a3d8c26349e10dd7f08a6b7b007d7052eecfaccb2cc208ecaf8fccefd5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:AYI-012:RISK_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_dd75e4d2b94b2d8ff6b0403850d1167c5b6fa118aa13973f47a4b7f7d7ee5f5f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:AYI-004:RISK_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_e1a84a551284060b76b600a286108f6c04d1bc2ac8241df44449fd27fa94a00a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:AYI-001:RISK_ALREADY_EXIST\")\n mstore(add(headStart, 96), \"S\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e50d6e107b97b06a6b4ebbb835c4ac409d87bd844c914bf49d6502833d8ba34e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"ERROR:AYI-002:RISK_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f422cac3b534a9ed752cfd161d8b473b386119366ac0d8f2b3a828e1526d99f3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:AYI-003:RISK_WITH_POLICIES\")\n mstore(add(headStart, 96), \"_NOT_ADJUSTABLE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f6dbb8dbd57bcf301752f2cf8b3847b57c719884a8d0c8570c19052a9efb7ef6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:AYI-022:REQUEST_ID_MISMATC\")\n mstore(add(headStart, 96), \"H\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fafa31ad4244029644c90b6f5cee740910ee69364e793eab36c7c37db6e32ff4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:AYI-033:POLICY_FOR_RISK_UN\")\n mstore(add(headStart, 96), \"KNOWN\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_Risk_$11917_memory_ptr__to_t_struct$_Risk_$11917_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 480)\n mstore(headStart, mload(value0))\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n let _1 := 0x0100\n mstore(add(headStart, _1), mload(add(value0, _1)))\n let _2 := 0x0120\n let memberValue0 := mload(add(value0, _2))\n abi_encode_bool(memberValue0, add(headStart, _2))\n let _3 := 0x0140\n mstore(add(headStart, _3), mload(add(value0, _3)))\n let _4 := 0x0160\n mstore(add(headStart, _4), mload(add(value0, _4)))\n let _5 := 0x0180\n mstore(add(headStart, _5), mload(add(value0, _5)))\n let _6 := 0x01a0\n mstore(add(headStart, _6), mload(add(value0, _6)))\n let _7 := 0x01c0\n mstore(add(headStart, _7), mload(add(value0, _7)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function decrement_t_uint256(value) -> ret\n {\n if iszero(value) { panic_error_0x11() }\n ret := add(value, not(0))\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106103fc5760003560e01c806366528c3b11610215578063b9ea8d6611610125578063e0815f0d116100b8578063f2fde38b11610087578063f2fde38b14610836578063f406460c14610849578063f4fdc1fa14610851578063f9d7ff8914610862578063ffa1ad741461086a576103fc565b8063e0815f0d146107f5578063e5d58cd8146107fd578063e9960d8a14610810578063eb80733914610823576103fc565b8063d52d2d06116100f4578063d52d2d06146107bc578063d547741f146107cf578063d73cd9921461061a578063ddbfd8ef146107e2576103fc565b8063b9ea8d6614610771578063bd1fe5d0146107a1578063be169e7e1461061a578063d0e0ba95146107a9576103fc565b806391d14854116101a8578063a18f5ae211610177578063a18f5ae21461061a578063a217fddf146105f4578063a3f4df7e1461074a578063aec8de3914610769578063b3fca9bd1461061a576103fc565b806391d14854146106f057806394f64ff4146107035780639a82f8901461072f5780639dce5ff014610737576103fc565b80637ce5e82f116101e45780637ce5e82f146106ba578063893d20e8146106c25780638da5cb5b146106d757806390e1a2ac146106e8576103fc565b806366528c3b1461068d57806370d2fe5314610697578063715018a61461069f57806378a433a5146106a7576103fc565b806336568abe1161031057806354111315116102a35780635ab1bd53116102725780635ab1bd53146106425780635d1ca631146106595780635e61aa6314610661578063637d08f414610674578063638ce0ba14610685576103fc565b806354111315146105fc578063597ee7981461060757806359dacc6a1461061a5780635a60210914610622576103fc565b8063412f91d9116102df578063412f91d9146105bb57806346b937f6146105ce5780634b6eb669146105e15780634ce9d0a7146105f4576103fc565b806336568abe1461057857806339cf5e161461058b5780633dc5f58e146105a85780633ec92bda1461058b576103fc565b80631b07b17f1161039357806321df0da71161036257806321df0da714610502578063248a9ca314610527578063258d560c1461054a5780632f2ff15d1461055257806330a73da514610565576103fc565b80631b07b17f146104bf5780631b867c63146104d25780631c3456dd146104da5780631fd358aa146104e2576103fc565b80630b228d95116103cf5780630b228d951461047a57806315dae03e1461048f57806317d7de7c146104a25780631865c57d146104aa576103fc565b806301ffc9a714610401578063056c99891461042957806306136f281461044c57806309128d831461045f575b600080fd5b61041461040f366004613b88565b610877565b60405190151581526020015b60405180910390f35b61043e60008051602061429883398151915281565b604051908152602001610420565b61043e61045a3660046139f0565b6108b0565b61043e70506f6c69637944656661756c74466c6f7760781b81565b61048d6104883660046139f0565b610a9b565b005b60035460ff166040516104209190614032565b60015461043e565b6104b2610e2c565b6040516104209190614018565b6104146104cd3660046139f0565b610eb2565b61048d610f5f565b61043e610fae565b6104f56104f0366004613b2d565b610fc0565b6040516104209190613f26565b6008546001600160a01b03165b6040516001600160a01b039091168152602001610420565b61043e6105353660046139f0565b6000908152600c602052604090206001015490565b610414611299565b61048d610560366004613a20565b6112c9565b61048d610573366004613a86565b6112f3565b61048d610586366004613a20565b61131c565b6040805160208101909152600081525b6040516104209190614046565b61043e6105b6366004613ae2565b61139a565b61043e6105c9366004613b2d565b6114ff565b61043e6105dc366004613b4e565b611520565b61043e6105ef366004613968565b6115bd565b61043e600081565b61043e630100000081565b61048d6106153660046139f0565b6117d2565b61048d611975565b6106356106303660046139f0565b6119bf565b6040516104209190614090565b61050f60035461010090046001600160a01b031690565b60025461043e565b61048d61066f366004613d80565b611b06565b6007546001600160a01b031661050f565b61048d611e02565b630100000061043e565b60095461043e565b61048d611e4f565b61048d6106b5366004613b4e565b611e61565b60135461043e565b61050f600080546001600160a01b0316610ead565b6000546001600160a01b031661050f565b61043e61202a565b6104146106fe366004613a20565b612039565b60408051808201909152601081526f2862797465733332207269736b49642960801b602082015261059b565b610414612064565b61043e610745366004613b2d565b61206c565b61043e74105c9958565a595b19125b99195e141c9bd91d58dd605a1b81565b61043e600f81565b61078461077f3660046139f0565b612087565b604080519315158452602084019290925290820152606001610420565b61048d6120bb565b61048d6107b73660046139f0565b612108565b61043e6107ca3660046139f0565b612152565b61048d6107dd366004613a20565b612187565b61043e6107f03660046139f0565b6121ac565b6104146121c3565b61078461080b366004613a4f565b6121cc565b61043e61081e366004613a86565b612269565b61043e6108313660046139f0565b6122a0565b61048d610844366004613930565b6122c3565b61043e612339565b61048d61085f3660046139f0565b50565b60105461043e565b61043e62302e3160e81b81565b60006001600160e01b03198216637965db0b60e01b14806108a857506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60006000805160206142988339815191526108ca81612348565b6000601160006108d986612352565b81526020019081526020016000209050600081600d0154116109425760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031303a5249534b5f554e444546494e45440000000060448201526064015b60405180910390fd5b600a810154156109a35760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031313a4f5241434c455f414c52454144595f5245536044820152651413d391115160d21b6064820152608401610939565b60018101546002820154600383015460408051602081019490945283019190915260608201526000906080016040516020818303038152906040529050610a1485826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600e5461237f565b6008830181905560098301805460ff1916600190811790915542600e85015583549084015460028501546003860154604080518681526020810195909552840192909252606083015260808201529094507f983570285d5bc639119bffe47fdb9708eb765c6cac55a784fd1651fbf1360c0f9060a0015b60405180910390a1505050919050565b600080516020614298833981519152610ab381612348565b6000610abe8361240a565b905060008160600151806020019051810190610ada9190613a08565b60008181526011602090815260409182902082516101e08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401526008810154610100840152600981015460ff161515610120840152600a810154610140840152600b810154610160840152600c810154610180840152600d8101546101a0840152600e01546101c0830152919250908214610be75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4159492d3033313a5249534b5f49445f494e56414c49440000006044820152606401610939565b600081610140015111610c4a5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033323a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b6000828152601260205260409020610c6290866124c4565b610cbc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033333a504f4c4943595f464f525f5249534b5f554e60448201526425a727aba760d91b6064820152608401610939565b6000828152601260205260409020610cd490866124dc565b506000610cea826101800151856040015161206c565b90506000610d088783604051806020016040528060008152506124e8565b60408051898152602081018390529081018490529091507ff3b6fa541c2fb440a7135df726575da0735a6968fa3804a462c63690d4330dbd9060600160405180910390a18115610dc95781610d5e888383612577565b6000610d7b898484604051806020016040528060008152506125e9565b9050610d878982612620565b5050604080518a8152602081018490527fe85c538af9d154780befa06f96e8c8d5ff531c715d3735732ca365e541b15ec8910160405180910390a15050610ddd565b610dd387826126b4565b610ddd878261271e565b610de687612756565b610def876127b8565b6040518781527f88873a4c738a1c855a15847c7daf779056bd64e3e5dce2a378085a56b1e65698906020015b60405180910390a150505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190613bb0565b905090565b6000600080516020614298833981519152610ecc81612348565b610ed58361240a565b50610edf836127e9565b91508115610f59576000610ef28461240a565b90506000610eff85612868565b805160208085015160408087015181518b81526001600160a01b039095169385019390935283015260608201529091507f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d190608001610a8b565b50919050565b610f746810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614610fa45760405162461bcd60e51b815260040161093990614059565b610fac6129a3565b565b610fbd6301000000600f6141ac565b81565b6060600080516020614298833981519152610fda81612348565b60008481526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a8201546101408201819052600b830154610160830152600c830154610180830152600d8301546101a0830152600e909201546101c0820152906110f35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033303a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b600085815260126020526040812061110a906129e0565b9050806111625760408051878152600060208201527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a150506040805160008152602081019091529150611292565b8461116f5780945061117c565b61117985826129ea565b94505b8467ffffffffffffffff8111156111a357634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156111cc578160200160208202803683370190505b50935060006111dc6001836141cb565b905060005b8681101561125457600088815260126020526040812061120a9061120584866141cb565b612a01565b905061121581610a9b565b8087838151811061123657634e487b7160e01b600052603260045260246000fd5b6020908102919091010152508061124c81614225565b9150506111e1565b5060408051888152602081018890527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a15050505b5092915050565b600060025b60035460ff1660028111156112c357634e487b7160e01b600052602160045260246000fd5b14905090565b6000828152600c60205260409020600101546112e481612348565b6112ee8383612a0d565b505050565b60008051602061429883398151915261130b81612348565b611316848484612a93565b50505050565b6001600160a01b038116331461138c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610939565b6113968282612ad2565b5050565b60006000805160206142988339815191526113b481612348565b6113c086868686612b39565b6113cb898989612269565b60108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018190556000818152601160205260409020600d81015491935090156114695760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3030313a5249534b5f414c52454144595f45584953546044820152605360f81b6064820152608401610939565b828155600181018a905560028101899055600381018890556004810187905560058101869055600681018590556007810184905542600d8201819055600e82015560408051848152602081018c90529081018a9052606081018990527f817b0e272a7b333532cb6439a34e3ec00922e22926032442220a69868f02d8dc9060800160405180910390a15050979650505050505050565b60008281526012602052604081206115179083612a01565b90505b92915050565b600061152c85846141ac565b61153a6301000000846141ac565b10611547575060006115b4565b61155184846141ac565b61155f6301000000846141ac565b1161156b5750846115b4565b60008361157c8463010000006141ac565b611586919061418c565b905061159285876141cb565b61159c82886141cb565b6115a690896141ac565b6115b0919061418c565b9150505b95945050505050565b60006000805160206142988339815191526115d781612348565b6000838152601160205260409020600d8101546116365760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3030343a5249534b5f554e444546494e4544000000006044820152606401610939565b6001600160a01b03871661168c5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3030353a504f4c4943595f484f4c4445525f5a45524f6044820152606401610939565b6040805160208082018352600082528251808201889052835180820390920182528301909252906116c08989898585612e43565b601380546001810182556000919091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09001819055604080518281526001600160a01b038c1660208201529081018a9052606081018990529095507fb6b5fb82ad406a44dc88433d286d201520c295308f087a476b845f907d3bd6039060800160405180910390a16000611753866127e9565b905080156117c55760008781526012602052604090206117739087612ed8565b50604080518781526001600160a01b038c1660208201529081018a9052606081018990527f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d19060800160405180910390a15b5050505050949350505050565b6000805160206142988339815191526117ea81612348565b6000601160006117f985612352565b81526020019081526020016000209050600081600d01541161185d5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031323a5249534b5f554e444546494e4544000000006044820152606401610939565b600981015460ff166118c05760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031333a4f5241434c455f524551554553545f4e4f5460448201526517d193d5539160d21b6064820152608401610939565b600a810154156119125760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3031343a4558495354494e475f43414c4c4241434b006044820152606401610939565b61191f8160080154612ee4565b60098101805460ff1916905542600e82015560088101546040805185815260208101929092527fdeeac61c3ad18e6efca12eac38425c944b5bbca5b482e39b549671e05544c3dc910160405180910390a1505050565b61198a6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146119ba5760405162461bcd60e51b815260040161093990614059565b610fac565b611a46604051806101e0016040528060008019168152602001600080191681526020016000801916815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060009081526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a820154610140820152600b820154610160820152600c820154610180820152600d8201546101a0820152600e909101546101c082015290565b611b1764517565727960d81b612921565b6001600160a01b0316336001600160a01b031614611b775760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610939565b6000808080611b8885870187613ab1565b93509350935093506000611b9b88612352565b9050611ba8858585612269565b8114611bf65760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4159492d3032303a5249534b5f49445f4d49534d4154434800006044820152606401610939565b6000818152601160205260409020600d810154611c555760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3032313a5249534b5f554e444546494e4544000000006044820152606401610939565b89816008015414611cb25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3032323a524551554553545f49445f4d49534d4154436044820152600960fb1b6064820152608401610939565b600a81015415611d045760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3032333a4558495354494e475f43414c4c4241434b006044820152606401610939565b611d13630100000060006141ac565b8310158015611d2f5750611d2c6301000000600f6141ac565b83105b611d7b5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3032343a414141595f494e56414c49440000000000006044820152606401610939565b600b81018390556006810154600482015460058301546007840154611da39392919087611520565b600c82015542600a8201819055600e820155604080518b8152602081018490529081018490527f357e32cffc9b470fe746dfc76a9dabc81e0441109f95820ff3daeabc21ca3e319060600160405180910390a150505050505050505050565b611e176810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614611e475760405162461bcd60e51b815260040161093990614059565b610fac612f15565b611e57612f3f565b610fac6000612f99565b600080516020614298833981519152611e7981612348565b611e8585858585612b39565b6000868152601160205260409020600d810154611ee45760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3030323a5249534b5f554e4b4e4f574e0000000000006044820152606401610939565b6000878152601260205260409020611efb906129e0565b15611f605760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3030333a5249534b5f574954485f504f4c494349455360448201526e5f4e4f545f41444a55535441424c4560881b6064820152608401610939565b805460048201546005830154600684015460078501546040805195865260208601949094528484019290925260608401526080830152517f5ea522f91ea45156f00d5390cfaf51dc82f9b163ae492c8d6033fcb3af773f589181900360a00190a16004810186905560058101859055600681018490556007810183905580546040805191825260208201889052810186905260608101859052608081018490527f2ef22fcf430acdb3b80e5d30364fcd07242c6081010c6cc9aa2fe4f4105f81279060a001610e1b565b610fbd6002630100000061418c565b6000918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008061129e565b6000630100000061207d83856141ac565b611517919061418c565b60008060006000805160206142988339815191526120a481612348565b6120ad85612fe9565b919790965090945092505050565b6120d06810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146121005760405162461bcd60e51b815260040161093990614059565b610fac61302f565b61211d6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b03161461214d5760405162461bcd60e51b815260040161093990614059565b600255565b60006013828154811061217557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6000828152600c60205260409020600101546121a281612348565b6112ee8383612ad2565b60008181526012602052604081206108a8906129e0565b6000600161129e565b60008060006000805160206142988339815191526121e981612348565b60006121f488612868565b905080600001516001600160a01b0316876001600160a01b03161461224c57600f548151600091612233916001600160a01b03909116908a908a613059565b90508061224a5794506000935085925061225f9050565b505b612256888761336e565b91965094509250505b5093509350939050565b6040805160208082019590955280820193909352606080840192909252805180840390920182526080909201909152805191012090565b60006010828154811061217557634e487b7160e01b600052603260045260246000fd5b6122cb612f3f565b6001600160a01b0381166123305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610939565b61085f81612f99565b610fbd6005630100000061418c565b61085f81336133f8565b60008061235e8361240a565b905080606001518060200190518101906123789190613a08565b9392505050565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f22906123b89088908890889030908990600401613f8b565b602060405180830381600087803b1580156123d257600080fd5b505af11580156123e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b49190613a08565b6124446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b15801561248857600080fd5b505afa15801561249c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613bcf565b60008181526001830160205260408120541515611517565b6000611517838361345c565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d159061251d90879087908790600401613fd4565b602060405180830381600087803b15801561253757600080fd5b505af115801561254b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256f9190613a08565b949350505050565b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f906064015b600060405180830381600087803b1580156125cc57600080fd5b505af11580156125e0573d6000803e3d6000fd5b50505050505050565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d7846906123b8908890889088908890600401613ff3565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b15801561267157600080fd5b505af1158015612685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a99190613dfb565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b15801561270257600080fd5b505af1158015612716573d6000803e3d6000fd5b505050505050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba2906044016126e8565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c6441798906024015b600060405180830381600087803b15801561279d57600080fd5b505af11580156127b1573d6000803e3d6000fd5b5050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c90602401612783565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b15801561283057600080fd5b505af1158015612844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906139a2565b6128a16040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600b5460405163296586d360e21b8152600481018490526001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156128e557600080fd5b505afa1580156128f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613c7d565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561296b57600080fd5b505afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a8919061394c565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616129cd60025490565b60405190815260200160405180910390a1565b60006108a8825490565b6000818311156129fa5781611517565b5090919050565b60006115178383613579565b612a178282612039565b611396576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a4f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064016125b2565b612adc8282612039565b15611396576000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6301000000841115612b995760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4159492d3034303a5249534b5f545249474745525f544f4f5f4c6044820152634152474560e01b6064820152608401610939565b828411612c005760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3034313a5249534b5f545249474745525f4e4f545f4c60448201526e105491d15497d512105397d1561255608a1b6064820152608401610939565b612c0f6005630100000061418c565b831115612c685760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3034323a5249534b5f455849545f544f4f5f4c4152476044820152604560f81b6064820152608401610939565b612c776002630100000061418c565b821015612cc65760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034333a5249534b5f5453495f544f4f5f534d414c4c6044820152606401610939565b6301000000821115612d1a5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034343a5249534b5f5453495f544f4f5f4c415247456044820152606401610939565b6301000000612d298484614174565b1115612d895760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4159492d3034353a5249534b5f5453495f455849545f53554d5f604482015268544f4f5f4c4152474560b81b6064820152608401610939565b60008111612de55760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4159492d3034363a5249534b5f4150485f5a45524f5f494e564160448201526213125160ea1b6064820152608401610939565b612df46301000000600f6141ac565b8111156113165760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034373a5249534b5f4150485f544f4f5f4c415247456044820152606401610939565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a90612e7c9089908990899089908990600401613edb565b602060405180830381600087803b158015612e9657600080fd5b505af1158015612eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ece9190613a08565b9695505050505050565b600061151783836135b1565b600a54604051630c054e5360e21b8152600481018390526001600160a01b0390911690633015394c90602401612783565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96129cd60025490565b6000546001600160a01b03163314610fac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610939565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080612ff885613600565b9050806020015181604001511015613027576120ad858260400151836020015161302291906141cb565b61336e565b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556129cd60025490565b6000846001600160a01b038082163b1515908616158061308057506001600160a01b038516155b80613089575080155b156130e4576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a160009250505061256f565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561312957600080fd5b505afa15801561313d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131619190613a08565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156131ae57600080fd5b505afa1580156131c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e69190613a08565b9050858210806131f557508581105b156132405760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a1600094505050505061256f565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916132a49190613e4a565b6000604051808303816000865af19150503d80600081146132e1576040519150601f19603f3d011682016040523d82523d6000602084013e6132e6565b606091505b509150915081801561331c57508051158061331c57508051602014801561331c57508080602001905181019061331c91906139a2565b965086613360577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161335793929190613f6a565b60405180910390a15b505050505050949350505050565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156133c057600080fd5b505af11580156133d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ad91906139bc565b6134028282612039565b6113965761341a816001600160a01b031660146136cd565b6134258360206136cd565b604051602001613436929190613e66565b60408051601f198184030181529082905262461bcd60e51b825261093991600401614046565b6000818152600183016020526040812054801561356f5760006134806001836141cb565b8554909150600090613494906001906141cb565b90508181146135155760008660000182815481106134c257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106134f357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061353457634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061151a565b600091505061151a565b600082600001828154811061359e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120546135f85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561151a565b50600061151a565b613650604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b15801561369557600080fd5b505afa1580156136a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190613cfb565b606060006136dc8360026141ac565b6136e7906002614174565b67ffffffffffffffff81111561370d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015613737576020820181803683370190505b509050600360fc1b8160008151811061376057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061379d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006137c18460026141ac565b6137cc906001614174565b90505b6001811115613860576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061380e57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061383257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936138598161420e565b90506137cf565b5083156115175760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610939565b805180151581146108ab57600080fd5b600082601f8301126138cf578081fd5b815167ffffffffffffffff8111156138e9576138e961426c565b6138fc601f8201601f1916602001614143565b818152846020838601011115613910578283fd5b61256f8260208301602087016141e2565b8051600381106108ab57600080fd5b600060208284031215613941578081fd5b813561151781614282565b60006020828403121561395d578081fd5b815161151781614282565b6000806000806080858703121561397d578283fd5b843561398881614282565b966020860135965060408601359560600135945092505050565b6000602082840312156139b3578081fd5b611517826138af565b6000806000606084860312156139d0578283fd5b6139d9846138af565b925060208401519150604084015190509250925092565b600060208284031215613a01578081fd5b5035919050565b600060208284031215613a19578081fd5b5051919050565b60008060408385031215613a32578182fd5b823591506020830135613a4481614282565b809150509250929050565b600080600060608486031215613a63578081fd5b833592506020840135613a7581614282565b929592945050506040919091013590565b600080600060608486031215613a9a578081fd5b505081359360208301359350604090920135919050565b60008060008060808587031215613ac6578182fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600060e0888a031215613afc578485fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215613b3f578182fd5b50508035926020909101359150565b600080600080600060a08688031215613b65578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215613b99578081fd5b81356001600160e01b031981168114611517578182fd5b600060208284031215613bc1578081fd5b815160078110611517578182fd5b600060208284031215613be0578081fd5b815167ffffffffffffffff80821115613bf7578283fd5b9083019060c08286031215613c0a578283fd5b613c1460c0614143565b825160048110613c22578485fd5b808252506020830151602082015260408301516040820152606083015182811115613c4b578485fd5b613c57878286016138bf565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613c8e578081fd5b815167ffffffffffffffff80821115613ca5578283fd5b9083019060c08286031215613cb8578283fd5b613cc260c0614143565b8251613ccd81614282565b815260208381015190820152613ce560408401613921565b6040820152606083015182811115613c4b578485fd5b6000610120808385031215613d0e578182fd5b613d1781614143565b9050613d2283613921565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215613d95578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115613dba578384fd5b818701915087601f830112613dcd578384fd5b813581811115613ddb578485fd5b886020828501011115613dec578485fd5b95989497505060200194505050565b60008060408385031215613e0d578182fd5b505080516020909101519092909150565b60008151808452613e368160208601602086016141e2565b601f01601f19169290920160200192915050565b60008251613e5c8184602087016141e2565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351613e9e8160178501602088016141e2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ecf8160288401602088016141e2565b01602801949350505050565b600060018060a01b038716825285602083015284604083015260a06060830152613f0860a0830185613e1e565b8281036080840152613f1a8185613e1e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613f5e57835183529284019291840191600101613f42565b50909695505050505050565b60008415158252836020830152606060408301526115b46060830184613e1e565b600086825260a06020830152613fa460a0830187613e1e565b8281036040840152613fb68187613e1e565b6001600160a01b039590951660608401525050608001529392505050565b6000848252836020830152606060408301526115b46060830184613e1e565b600085825284602083015283604083015260806060830152612ece6080830184613e1e565b602081016007831061402c5761402c614256565b91905290565b602081016003831061402c5761402c614256565b6000602082526115176020830184613e1e565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60006101e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516141038285018215159052565b50506101408381015190830152610160808401519083015261018080840151908301526101a080840151908301526101c092830151929091019190915290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561416c5761416c61426c565b604052919050565b6000821982111561418757614187614240565b500190565b6000826141a757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156141c6576141c6614240565b500290565b6000828210156141dd576141dd614240565b500390565b60005b838110156141fd5781810151838201526020016141e5565b838111156113165750506000910152565b60008161421d5761421d614240565b506000190190565b600060001982141561423957614239614240565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461085f57600080fdfef098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955ba26469706673582212206fbe90c5e63801ca92badc10bc72a58619457eca24171fa149899255b2d6ddb164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3FC JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x66528C3B GT PUSH2 0x215 JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x836 JUMPI DUP1 PUSH4 0xF406460C EQ PUSH2 0x849 JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x851 JUMPI DUP1 PUSH4 0xF9D7FF89 EQ PUSH2 0x862 JUMPI DUP1 PUSH4 0xFFA1AD74 EQ PUSH2 0x86A JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x7F5 JUMPI DUP1 PUSH4 0xE5D58CD8 EQ PUSH2 0x7FD JUMPI DUP1 PUSH4 0xE9960D8A EQ PUSH2 0x810 JUMPI DUP1 PUSH4 0xEB807339 EQ PUSH2 0x823 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xD52D2D06 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xD52D2D06 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x7CF JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xDDBFD8EF EQ PUSH2 0x7E2 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x771 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x7A1 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x7A9 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0x177 JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x5F4 JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x74A JUMPI DUP1 PUSH4 0xAEC8DE39 EQ PUSH2 0x769 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x61A JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x91D14854 EQ PUSH2 0x6F0 JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x703 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x72F JUMPI DUP1 PUSH4 0x9DCE5FF0 EQ PUSH2 0x737 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x7CE5E82F GT PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x7CE5E82F EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6D7 JUMPI DUP1 PUSH4 0x90E1A2AC EQ PUSH2 0x6E8 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x66528C3B EQ PUSH2 0x68D JUMPI DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x697 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x69F JUMPI DUP1 PUSH4 0x78A433A5 EQ PUSH2 0x6A7 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0x310 JUMPI DUP1 PUSH4 0x54111315 GT PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x272 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x642 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0x5E61AA63 EQ PUSH2 0x661 JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x685 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x54111315 EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0x597EE798 EQ PUSH2 0x607 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0x5A602109 EQ PUSH2 0x622 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x412F91D9 GT PUSH2 0x2DF JUMPI DUP1 PUSH4 0x412F91D9 EQ PUSH2 0x5BB JUMPI DUP1 PUSH4 0x46B937F6 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x4B6EB669 EQ PUSH2 0x5E1 JUMPI DUP1 PUSH4 0x4CE9D0A7 EQ PUSH2 0x5F4 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x36568ABE EQ PUSH2 0x578 JUMPI DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0x3DC5F58E EQ PUSH2 0x5A8 JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x58B JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1B07B17F GT PUSH2 0x393 JUMPI DUP1 PUSH4 0x21DF0DA7 GT PUSH2 0x362 JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x527 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x552 JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x565 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x4BF JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x1C3456DD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x1FD358AA EQ PUSH2 0x4E2 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xB228D95 GT PUSH2 0x3CF JUMPI DUP1 PUSH4 0xB228D95 EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x4AA JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0x56C9989 EQ PUSH2 0x429 JUMPI DUP1 PUSH4 0x6136F28 EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x9128D83 EQ PUSH2 0x45F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x414 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x3B88 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x43E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x45A CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x8B0 JUMP JUMPDEST PUSH2 0x43E PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x488 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0xA9B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4032 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x4B2 PUSH2 0xE2C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST PUSH2 0x414 PUSH2 0x4CD CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0xEB2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0xF5F JUMP JUMPDEST PUSH2 0x43E PUSH2 0xFAE JUMP JUMPDEST PUSH2 0x4F5 PUSH2 0x4F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0xFC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x3F26 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x535 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x414 PUSH2 0x1299 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x560 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x12C9 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x573 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A86 JUMP JUMPDEST PUSH2 0x12F3 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x586 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x131C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4046 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3AE2 JUMP JUMPDEST PUSH2 0x139A JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0x14FF JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5DC CALLDATASIZE PUSH1 0x4 PUSH2 0x3B4E JUMP JUMPDEST PUSH2 0x1520 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5EF CALLDATASIZE PUSH1 0x4 PUSH2 0x3968 JUMP JUMPDEST PUSH2 0x15BD JUMP JUMPDEST PUSH2 0x43E PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x43E PUSH4 0x1000000 DUP2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x615 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x17D2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1975 JUMP JUMPDEST PUSH2 0x635 PUSH2 0x630 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x19BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4090 JUMP JUMPDEST PUSH2 0x50F PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x48D PUSH2 0x66F CALLDATASIZE PUSH1 0x4 PUSH2 0x3D80 JUMP JUMPDEST PUSH2 0x1B06 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x50F JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1E02 JUMP JUMPDEST PUSH4 0x1000000 PUSH2 0x43E JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1E4F JUMP JUMPDEST PUSH2 0x48D PUSH2 0x6B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B4E JUMP JUMPDEST PUSH2 0x1E61 JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x50F PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xEAD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x50F JUMP JUMPDEST PUSH2 0x43E PUSH2 0x202A JUMP JUMPDEST PUSH2 0x414 PUSH2 0x6FE CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH16 0x2862797465733332207269736B496429 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x59B JUMP JUMPDEST PUSH2 0x414 PUSH2 0x2064 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x745 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0x206C JUMP JUMPDEST PUSH2 0x43E PUSH21 0x105C9958565A595B19125B99195E141C9BD91D58DD PUSH1 0x5A SHL DUP2 JUMP JUMPDEST PUSH2 0x43E PUSH1 0xF DUP2 JUMP JUMPDEST PUSH2 0x784 PUSH2 0x77F CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2087 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x20BB JUMP JUMPDEST PUSH2 0x48D PUSH2 0x7B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2108 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x7CA CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2152 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x7DD CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x2187 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x7F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x21AC JUMP JUMPDEST PUSH2 0x414 PUSH2 0x21C3 JUMP JUMPDEST PUSH2 0x784 PUSH2 0x80B CALLDATASIZE PUSH1 0x4 PUSH2 0x3A4F JUMP JUMPDEST PUSH2 0x21CC JUMP JUMPDEST PUSH2 0x43E PUSH2 0x81E CALLDATASIZE PUSH1 0x4 PUSH2 0x3A86 JUMP JUMPDEST PUSH2 0x2269 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x831 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x22A0 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x844 CALLDATASIZE PUSH1 0x4 PUSH2 0x3930 JUMP JUMPDEST PUSH2 0x22C3 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x2339 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x85F CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x43E PUSH3 0x302E31 PUSH1 0xE8 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8A8 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x8CA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 PUSH2 0x8D9 DUP7 PUSH2 0x2352 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xD ADD SLOAD GT PUSH2 0x942 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031303A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x9A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031313A4F5241434C455F414C52454144595F524553 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1413D3911151 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xA14 DUP6 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xE SLOAD PUSH2 0x237F JUMP JUMPDEST PUSH1 0x8 DUP4 ADD DUP2 SWAP1 SSTORE PUSH1 0x9 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE TIMESTAMP PUSH1 0xE DUP6 ADD SSTORE DUP4 SLOAD SWAP1 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD PUSH1 0x3 DUP7 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE SWAP1 SWAP5 POP PUSH32 0x983570285D5BC639119BFFE47FDB9708EB765C6CAC55A784FD1651FBF1360C0F SWAP1 PUSH1 0xA0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xAB3 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xABE DUP4 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xADA SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 DUP4 ADD SLOAD SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x7 DUP2 ADD SLOAD PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x100 DUP5 ADD MSTORE PUSH1 0x9 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP5 ADD MSTORE PUSH1 0xA DUP2 ADD SLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xB DUP2 ADD SLOAD PUSH2 0x160 DUP5 ADD MSTORE PUSH1 0xC DUP2 ADD SLOAD PUSH2 0x180 DUP5 ADD MSTORE PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1A0 DUP5 ADD MSTORE PUSH1 0xE ADD SLOAD PUSH2 0x1C0 DUP4 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP3 EQ PUSH2 0xBE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033313A5249534B5F49445F494E56414C4944000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x140 ADD MLOAD GT PUSH2 0xC4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033323A4F5241434C455F524553504F4E53455F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5353494E47 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC62 SWAP1 DUP7 PUSH2 0x24C4 JUMP JUMPDEST PUSH2 0xCBC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033333A504F4C4943595F464F525F5249534B5F554E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x25A727ABA7 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xCD4 SWAP1 DUP7 PUSH2 0x24DC JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xCEA DUP3 PUSH2 0x180 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x206C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xD08 DUP8 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x24E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xF3B6FA541C2FB440A7135DF726575DA0735A6968FA3804A462C63690D4330DBD SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 ISZERO PUSH2 0xDC9 JUMPI DUP2 PUSH2 0xD5E DUP9 DUP4 DUP4 PUSH2 0x2577 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD7B DUP10 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x25E9 JUMP JUMPDEST SWAP1 POP PUSH2 0xD87 DUP10 DUP3 PUSH2 0x2620 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP11 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0xE85C538AF9D154780BEFA06F96E8C8D5FF531C715D3735732CA365E541B15EC8 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH2 0xDDD JUMP JUMPDEST PUSH2 0xDD3 DUP8 DUP3 PUSH2 0x26B4 JUMP JUMPDEST PUSH2 0xDDD DUP8 DUP3 PUSH2 0x271E JUMP JUMPDEST PUSH2 0xDE6 DUP8 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0xDEF DUP8 PUSH2 0x27B8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP8 DUP2 MSTORE PUSH32 0x88873A4C738A1C855A15847C7DAF779056BD64E3E5DCE2A378085A56B1E65698 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEAD SWAP2 SWAP1 PUSH2 0x3BB0 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xECC DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0xED5 DUP4 PUSH2 0x240A JUMP JUMPDEST POP PUSH2 0xEDF DUP4 PUSH2 0x27E9 JUMP JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0xF59 JUMPI PUSH1 0x0 PUSH2 0xEF2 DUP5 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEFF DUP6 PUSH2 0x2868 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP2 MLOAD DUP12 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP4 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH32 0x740860D47F9571AC7C5D7D56A42D09A9D575A3D5A025F85A409366D172D4B3D1 SWAP1 PUSH1 0x80 ADD PUSH2 0xA8B JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF74 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFA4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x29A3 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xFBD PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xFDA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD SLOAD PUSH2 0x140 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xB DUP4 ADD SLOAD PUSH2 0x160 DUP4 ADD MSTORE PUSH1 0xC DUP4 ADD SLOAD PUSH2 0x180 DUP4 ADD MSTORE PUSH1 0xD DUP4 ADD SLOAD PUSH2 0x1A0 DUP4 ADD MSTORE PUSH1 0xE SWAP1 SWAP3 ADD SLOAD PUSH2 0x1C0 DUP3 ADD MSTORE SWAP1 PUSH2 0x10F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033303A4F5241434C455F524553504F4E53455F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5353494E47 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x110A SWAP1 PUSH2 0x29E0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1162 JUMPI PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2F322F1B61D2FF4C9E3D88448830423A8A4A968A916BB6C838F5EB10CED570E3 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP2 POP PUSH2 0x1292 JUMP JUMPDEST DUP5 PUSH2 0x116F JUMPI DUP1 SWAP5 POP PUSH2 0x117C JUMP JUMPDEST PUSH2 0x1179 DUP6 DUP3 PUSH2 0x29EA JUMP JUMPDEST SWAP5 POP JUMPDEST DUP5 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11A3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11CC JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP PUSH1 0x0 PUSH2 0x11DC PUSH1 0x1 DUP4 PUSH2 0x41CB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x1254 JUMPI PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x120A SWAP1 PUSH2 0x1205 DUP5 DUP7 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x2A01 JUMP JUMPDEST SWAP1 POP PUSH2 0x1215 DUP2 PUSH2 0xA9B JUMP JUMPDEST DUP1 DUP8 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1236 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP DUP1 PUSH2 0x124C DUP2 PUSH2 0x4225 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x2F322F1B61D2FF4C9E3D88448830423A8A4A968A916BB6C838F5EB10CED570E3 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12C3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x12E4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x12EE DUP4 DUP4 PUSH2 0x2A0D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x130B DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x1316 DUP5 DUP5 DUP5 PUSH2 0x2A93 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x1396 DUP3 DUP3 PUSH2 0x2AD2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x13B4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x13C0 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x13CB DUP10 DUP10 DUP10 PUSH2 0x2269 JUMP JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP2 SWAP1 SSTORE PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD SWAP2 SWAP4 POP SWAP1 ISZERO PUSH2 0x1469 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030313A5249534B5F414C52454144595F4558495354 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x53 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP3 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP11 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP10 SWAP1 SSTORE PUSH1 0x3 DUP2 ADD DUP9 SWAP1 SSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 SSTORE PUSH1 0x5 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD DUP6 SWAP1 SSTORE PUSH1 0x7 DUP2 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0xD DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x817B0E272A7B333532CB6439A34E3EC00922E22926032442220A69868F02D8DC SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1517 SWAP1 DUP4 PUSH2 0x2A01 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152C DUP6 DUP5 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x153A PUSH4 0x1000000 DUP5 PUSH2 0x41AC JUMP JUMPDEST LT PUSH2 0x1547 JUMPI POP PUSH1 0x0 PUSH2 0x15B4 JUMP JUMPDEST PUSH2 0x1551 DUP5 DUP5 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x155F PUSH4 0x1000000 DUP5 PUSH2 0x41AC JUMP JUMPDEST GT PUSH2 0x156B JUMPI POP DUP5 PUSH2 0x15B4 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x157C DUP5 PUSH4 0x1000000 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x1586 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST SWAP1 POP PUSH2 0x1592 DUP6 DUP8 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x159C DUP3 DUP9 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x15A6 SWAP1 DUP10 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x15B0 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x15D7 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030343A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH2 0x168C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030353A504F4C4943595F484F4C4445525F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP3 MSTORE DUP3 MLOAD DUP1 DUP3 ADD DUP9 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP3 SUB SWAP1 SWAP3 ADD DUP3 MSTORE DUP4 ADD SWAP1 SWAP3 MSTORE SWAP1 PUSH2 0x16C0 DUP10 DUP10 DUP10 DUP6 DUP6 PUSH2 0x2E43 JUMP JUMPDEST PUSH1 0x13 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x66DE8FFDA797E3DE9C05E8FC57B3BF0EC28A930D40B0D285D93C06501CF6A090 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP6 POP PUSH32 0xB6B5FB82AD406A44DC88433D286D201520C295308F087A476B845F907D3BD603 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x1753 DUP7 PUSH2 0x27E9 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x17C5 JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1773 SWAP1 DUP8 PUSH2 0x2ED8 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x740860D47F9571AC7C5D7D56A42D09A9D575A3D5A025F85A409366D172D4B3D1 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x17EA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 PUSH2 0x17F9 DUP6 PUSH2 0x2352 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xD ADD SLOAD GT PUSH2 0x185D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031323A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x9 DUP2 ADD SLOAD PUSH1 0xFF AND PUSH2 0x18C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031333A4F5241434C455F524551554553545F4E4F54 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x17D193D55391 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031343A4558495354494E475F43414C4C4241434B00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x191F DUP2 PUSH1 0x8 ADD SLOAD PUSH2 0x2EE4 JUMP JUMPDEST PUSH1 0x9 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE TIMESTAMP PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x8 DUP2 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0xDEEAC61C3AD18E6EFCA12EAC38425C944B5BBCA5B482E39B549671E05544C3DC SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x198A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC JUMP JUMPDEST PUSH2 0x1A46 PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD SLOAD PUSH2 0x140 DUP3 ADD MSTORE PUSH1 0xB DUP3 ADD SLOAD PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0xC DUP3 ADD SLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0xD DUP3 ADD SLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH1 0xE SWAP1 SWAP2 ADD SLOAD PUSH2 0x1C0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1B17 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1B77 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030333A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1B88 DUP6 DUP8 ADD DUP8 PUSH2 0x3AB1 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x0 PUSH2 0x1B9B DUP9 PUSH2 0x2352 JUMP JUMPDEST SWAP1 POP PUSH2 0x1BA8 DUP6 DUP6 DUP6 PUSH2 0x2269 JUMP JUMPDEST DUP2 EQ PUSH2 0x1BF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032303A5249534B5F49445F4D49534D415443480000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1C55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032313A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST DUP10 DUP2 PUSH1 0x8 ADD SLOAD EQ PUSH2 0x1CB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032323A524551554553545F49445F4D49534D415443 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x1D04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032333A4558495354494E475F43414C4C4241434B00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x1D13 PUSH4 0x1000000 PUSH1 0x0 PUSH2 0x41AC JUMP JUMPDEST DUP4 LT ISZERO DUP1 ISZERO PUSH2 0x1D2F JUMPI POP PUSH2 0x1D2C PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP4 LT JUMPDEST PUSH2 0x1D7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032343A414141595F494E56414C4944000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xB DUP2 ADD DUP4 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x7 DUP5 ADD SLOAD PUSH2 0x1DA3 SWAP4 SWAP3 SWAP2 SWAP1 DUP8 PUSH2 0x1520 JUMP JUMPDEST PUSH1 0xC DUP3 ADD SSTORE TIMESTAMP PUSH1 0xA DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP12 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x357E32CFFC9B470FE746DFC76A9DABC81E0441109F95820FF3DAEABC21CA3E31 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E17 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E47 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x2F15 JUMP JUMPDEST PUSH2 0x1E57 PUSH2 0x2F3F JUMP JUMPDEST PUSH2 0xFAC PUSH1 0x0 PUSH2 0x2F99 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1E79 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x1E85 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2B39 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1EE4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030323A5249534B5F554E4B4E4F574E000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1EFB SWAP1 PUSH2 0x29E0 JUMP JUMPDEST ISZERO PUSH2 0x1F60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030333A5249534B5F574954485F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x5F4E4F545F41444A55535441424C45 PUSH1 0x88 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x6 DUP5 ADD SLOAD PUSH1 0x7 DUP6 ADD SLOAD PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP5 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD MSTORE MLOAD PUSH32 0x5EA522F91EA45156F00D5390CFAF51DC82F9B163AE492C8D6033FCB3AF773F58 SWAP2 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG1 PUSH1 0x4 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x5 DUP2 ADD DUP6 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD DUP5 SWAP1 SSTORE PUSH1 0x7 DUP2 ADD DUP4 SWAP1 SSTORE DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP9 SWAP1 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x2EF22FCF430ACDB3B80E5D30364FCD07242C6081010C6CC9AA2FE4F4105F8127 SWAP1 PUSH1 0xA0 ADD PUSH2 0xE1B JUMP JUMPDEST PUSH2 0xFBD PUSH1 0x2 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x129E JUMP JUMPDEST PUSH1 0x0 PUSH4 0x1000000 PUSH2 0x207D DUP4 DUP6 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x1517 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x20A4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x20AD DUP6 PUSH2 0x2FE9 JUMP JUMPDEST SWAP2 SWAP8 SWAP1 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x20D0 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2100 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x302F JUMP JUMPDEST PUSH2 0x211D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x214D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x13 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2175 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x21A2 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x12EE DUP4 DUP4 PUSH2 0x2AD2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x8A8 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x129E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21E9 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21F4 DUP9 PUSH2 0x2868 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x224C JUMPI PUSH1 0xF SLOAD DUP2 MLOAD PUSH1 0x0 SWAP2 PUSH2 0x2233 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP11 SWAP1 DUP11 PUSH2 0x3059 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x224A JUMPI SWAP5 POP PUSH1 0x0 SWAP4 POP DUP6 SWAP3 POP PUSH2 0x225F SWAP1 POP JUMP JUMPDEST POP JUMPDEST PUSH2 0x2256 DUP9 DUP8 PUSH2 0x336E JUMP JUMPDEST SWAP2 SWAP7 POP SWAP5 POP SWAP3 POP POP JUMPDEST POP SWAP4 POP SWAP4 POP SWAP4 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD SWAP6 SWAP1 SWAP6 MSTORE DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP1 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP1 MLOAD DUP1 DUP5 SUB SWAP1 SWAP3 ADD DUP3 MSTORE PUSH1 0x80 SWAP1 SWAP3 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x10 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2175 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x22CB PUSH2 0x2F3F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2330 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x85F DUP2 PUSH2 0x2F99 JUMP JUMPDEST PUSH2 0xFBD PUSH1 0x5 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST PUSH2 0x85F DUP2 CALLER PUSH2 0x33F8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x235E DUP4 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2378 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x16499F91 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2C933F22 SWAP1 PUSH2 0x23B8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x3F8B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15B4 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH2 0x2444 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x249C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3BCF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1517 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x345C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFAE43D15 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFAE43D15 SWAP1 PUSH2 0x251D SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x3FD4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x254B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x256F SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x781D7846 SWAP1 PUSH2 0x23B8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x3FF3 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2685 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26A9 SWAP2 SWAP1 PUSH2 0x3DFB JUMP JUMPDEST SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2716 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C882F3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC6441798 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x279D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE71E783 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x39C79E0C SWAP1 PUSH1 0x24 ADD PUSH2 0x2783 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2844 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x39A2 JUMP JUMPDEST PUSH2 0x28A1 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7D JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x296B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x297F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x394C JUMP JUMPDEST PUSH32 0xB79D34516B55D664B61192AA41FBC0625B132FB7129BD3B3A31F46D1BEFA7061 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A8 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x29FA JUMPI DUP2 PUSH2 0x1517 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x3579 JUMP JUMPDEST PUSH2 0x2A17 DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST PUSH2 0x1396 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x2A4F CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD PUSH2 0x25B2 JUMP JUMPDEST PUSH2 0x2ADC DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST ISZERO PUSH2 0x1396 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH4 0x1000000 DUP5 GT ISZERO PUSH2 0x2B99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034303A5249534B5F545249474745525F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP3 DUP5 GT PUSH2 0x2C00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034313A5249534B5F545249474745525F4E4F545F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x105491D15497D512105397D1561255 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2C0F PUSH1 0x5 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0x2C68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034323A5249534B5F455849545F544F4F5F4C415247 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2C77 PUSH1 0x2 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x2CC6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034333A5249534B5F5453495F544F4F5F534D414C4C PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH4 0x1000000 DUP3 GT ISZERO PUSH2 0x2D1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034343A5249534B5F5453495F544F4F5F4C41524745 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH4 0x1000000 PUSH2 0x2D29 DUP5 DUP5 PUSH2 0x4174 JUMP JUMPDEST GT ISZERO PUSH2 0x2D89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034353A5249534B5F5453495F455849545F53554D5F PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x544F4F5F4C41524745 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x2DE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034363A5249534B5F4150485F5A45524F5F494E5641 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x131251 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2DF4 PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034373A5249534B5F4150485F544F4F5F4C41524745 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x2E7C SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x3EDB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ECE SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xC054E53 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3015394C SWAP1 PUSH1 0x24 ADD PUSH2 0x2783 JUMP JUMPDEST PUSH32 0xCFF3B7B8B07D4D8F74BF41F05737717140D5916781B9DFF86EA0B996F2FDB9F9 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xFAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2FF8 DUP6 PUSH2 0x3600 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x3027 JUMPI PUSH2 0x20AD DUP6 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x3022 SWAP2 SWAP1 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x336E JUMP JUMPDEST POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH32 0x38954B1D025D5A8FFCF9B42D431BE2745CDCD05D32B0E5AD33EE2DB025EF5B55 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x3080 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0x3089 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x30E4 JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x256F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3129 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x313D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3161 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31E6 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x31F5 JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x3240 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x256F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP11 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP14 AND SWAP2 PUSH2 0x32A4 SWAP2 SWAP1 PUSH2 0x3E4A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x32E1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x32E6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x331C JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x331C JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x331C JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x331C SWAP2 SWAP1 PUSH2 0x39A2 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x3360 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x3357 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x33C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20AD SWAP2 SWAP1 PUSH2 0x39BC JUMP JUMPDEST PUSH2 0x3402 DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST PUSH2 0x1396 JUMPI PUSH2 0x341A DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x36CD JUMP JUMPDEST PUSH2 0x3425 DUP4 PUSH1 0x20 PUSH2 0x36CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3436 SWAP3 SWAP2 SWAP1 PUSH2 0x3E66 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x939 SWAP2 PUSH1 0x4 ADD PUSH2 0x4046 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x356F JUMPI PUSH1 0x0 PUSH2 0x3480 PUSH1 0x1 DUP4 PUSH2 0x41CB JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x3494 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x41CB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x3515 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x34C2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x34F3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x3534 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x151A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x151A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x359E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x35F8 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x151A JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x151A JUMP JUMPDEST PUSH2 0x3650 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x36A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x3CFB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x36DC DUP4 PUSH1 0x2 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x36E7 SWAP1 PUSH1 0x2 PUSH2 0x4174 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x370D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3737 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3760 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x379D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x37C1 DUP5 PUSH1 0x2 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x37CC SWAP1 PUSH1 0x1 PUSH2 0x4174 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x3860 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x380E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x3832 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x3859 DUP2 PUSH2 0x420E JUMP JUMPDEST SWAP1 POP PUSH2 0x37CF JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x1517 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x8AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x38CF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38E9 JUMPI PUSH2 0x38E9 PUSH2 0x426C JUMP JUMPDEST PUSH2 0x38FC PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x4143 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3910 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x256F DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x41E2 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x8AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3941 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1517 DUP2 PUSH2 0x4282 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x395D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1517 DUP2 PUSH2 0x4282 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x397D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3988 DUP2 PUSH2 0x4282 JUMP JUMPDEST SWAP7 PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP7 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x60 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39B3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1517 DUP3 PUSH2 0x38AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x39D0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x39D9 DUP5 PUSH2 0x38AF JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A01 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A19 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A32 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3A44 DUP2 PUSH2 0x4282 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A63 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3A75 DUP2 PUSH2 0x4282 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A9A JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3AC6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP3 CALLDATALOAD SWAP5 PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x3AFC JUMPI DUP5 DUP6 REVERT JUMPDEST POP POP DUP6 CALLDATALOAD SWAP8 PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B3F JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3B65 JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP4 CALLDATALOAD SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B99 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1517 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BC1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1517 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BE0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BF7 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3C0A JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3C14 PUSH1 0xC0 PUSH2 0x4143 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x3C22 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C4B JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3C57 DUP8 DUP3 DUP7 ADD PUSH2 0x38BF JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C8E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3CA5 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3CB8 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3CC2 PUSH1 0xC0 PUSH2 0x4143 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x3CCD DUP2 PUSH2 0x4282 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x3CE5 PUSH1 0x40 DUP5 ADD PUSH2 0x3921 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C4B JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D0E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x3D17 DUP2 PUSH2 0x4143 JUMP JUMPDEST SWAP1 POP PUSH2 0x3D22 DUP4 PUSH2 0x3921 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3D95 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3DBA JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3DCD JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3DDB JUMPI DUP5 DUP6 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3DEC JUMPI DUP5 DUP6 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3E0D JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3E36 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x41E2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3E5C DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x41E2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x3E9E DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x41E2 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x3ECF DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x41E2 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3F08 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x3E1E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x3F1A DUP2 DUP6 PUSH2 0x3E1E JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3F5E JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3F42 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x15B4 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3FA4 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x3E1E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3FB6 DUP2 DUP8 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x15B4 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2ECE PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x402C JUMPI PUSH2 0x402C PUSH2 0x4256 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x402C JUMPI PUSH2 0x402C PUSH2 0x4256 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1517 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD PUSH2 0x4103 DUP3 DUP6 ADD DUP3 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST POP POP PUSH2 0x140 DUP4 DUP2 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x180 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x1A0 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x1C0 SWAP3 DUP4 ADD MLOAD SWAP3 SWAP1 SWAP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x416C JUMPI PUSH2 0x416C PUSH2 0x426C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4187 JUMPI PUSH2 0x4187 PUSH2 0x4240 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x41A7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x41C6 JUMPI PUSH2 0x41C6 PUSH2 0x4240 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x41DD JUMPI PUSH2 0x41DD PUSH2 0x4240 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x41FD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x41E5 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1316 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x421D JUMPI PUSH2 0x421D PUSH2 0x4240 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4239 JUMPI PUSH2 0x4239 PUSH2 0x4240 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x85F JUMPI PUSH1 0x0 DUP1 REVERT INVALID CREATE SWAP9 0xB7 PUSH21 0x2E998F92A3C749F35E64EF555EDCECEC4B78A00C53 0x2A 0x4F CODESIZE MSIZE ISZERO SWAP6 JUMPDEST LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH16 0xBE90C5E63801CA92BADC10BC72A58619 GASLIMIT PUSH31 0xCA24171FA149899255B2D6DDB164736F6C6343000802003300000000000000 ","sourceMap":"562:19530:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2606:202:37;;;;;;:::i;:::-;;:::i;:::-;;;15367:14:103;;15360:22;15342:41;;15330:2;15315:18;2606:202:37;;;;;;;;868:59:67;;-1:-1:-1;;;;;;;;;;;868:59:67;;;;;16638:25:103;;;16626:2;16611:18;868:59:67;16593:76:103;10048:952:67;;;;;;:::i;:::-;;:::i;804:57::-;;-1:-1:-1;;;804:57:67;;14198:1430;;;;;;:::i;:::-;;:::i;:::-;;2394:100:12;2477:14;;;;2394:100;;;;;;:::i;2220:83::-;2286:14;;2220:83;;2500:136;;;:::i;:::-;;;;;;;:::i;7831:655:67:-;;;;;;:::i;:::-;;:::i;3279:78:12:-;;;:::i;1080:65:67:-;;;:::i;13141:1051::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1838:88:18:-;1913:6;;-1:-1:-1;;;;;1913:6:18;1838:88;;;-1:-1:-1;;;;;13205:32:103;;;13187:51;;13175:2;13160:18;1838:88:18;13142:102:103;4391:129:37;;;;;;:::i;:::-;4465:7;4491:12;;;:6;:12;;;;;:22;;;;4391:129;2973:120:12;;;:::i;4816:145:37:-;;;;;;:::i;:::-;;:::i;9758:284:67:-;;;;;;:::i;:::-;;:::i;5925:214:37:-;;;;;;:::i;:::-;;:::i;7872:128:18:-;7984:9;;;;;;;;;-1:-1:-1;7984:9:18;;7872:128;;;;;;;:::i;4431:1042:67:-;;;;;;:::i;:::-;;:::i;17774:167::-;;;;;;:::i;:::-;;:::i;15878:948::-;;;;;;:::i;:::-;;:::i;6652:1173::-;;;;;;:::i;:::-;;:::i;994:36::-;;1029:1;994:36;;934:53;;982:5;934:53;;11010:667;;;;;;:::i;:::-;;:::i;3689:77:12:-;;;:::i;17251:99:67:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3101:86:12:-;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;2309:79;2373:12;;2309:79;;11687:1448:67;;;;;;:::i;:::-;;:::i;1932:98:18:-;2012:11;;-1:-1:-1;;;;;2012:11:18;1932:98;;3195:78:12;;;:::i;16832:122:67:-;982:5;16832:122;;2036:98:18;2116:11;;2036:98;;1831:101:41;;;:::i;5479:924:67:-;;;;;;:::i;:::-;;:::i;17356:116::-;17445:13;:20;17356:116;;2642:77:12;;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;1222:72:67;;;:::i;2895:145:37:-;;;;;;:::i;:::-;;:::i;17947:141:67:-;18056:25;;;;;;;;;;;;-1:-1:-1;;;18056:25:67;;;;17947:141;;2851:116:12;;;:::i;15634:238:67:-;;;;;;:::i;:::-;;:::i;699:54::-;;-1:-1:-1;;;699:54:67;;1036:37;;1071:2;1036:37;;8492:229;;;;;;:::i;:::-;;:::i;:::-;;;;16379:14:103;;16372:22;16354:41;;16426:2;16411:18;;16404:34;;;;16454:18;;;16447:34;16342:2;16327:18;8492:229:67;16309:178:103;3363:77:12;;;:::i;2131:81::-;;;;;;:::i;:::-;;:::i;17478:144:67:-;;;;;;:::i;:::-;;:::i;5241:147:37:-;;;;;;:::i;:::-;;:::i;17628:140:67:-;;;;;;:::i;:::-;;:::i;2727:118:12:-;;;:::i;9146:606:67:-;;;;;;:::i;:::-;;:::i;6409:236::-;;;;;;:::i;:::-;;:::i;17151:95::-;;;;;;:::i;:::-;;:::i;2081:198:41:-;;;;;;:::i;:::-;;:::i;1151:65:67:-;;;:::i;8006:81:18:-;;;;;;:::i;:::-;2081:198:41;;17071:75:67;17128:8;:15;17071:75;;759:39;;-1:-1:-1;;;759:39:67;;2606:202:37;2691:4;-1:-1:-1;;;;;;2714:47:37;;-1:-1:-1;;;2714:47:37;;:87;;-1:-1:-1;;;;;;;;;;937:40:62;;;2765:36:37;2707:94;;2606:202;;;;:::o;10048:952:67:-;10155:17;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;10188:17:67::1;10208:6;:29;10215:21;10226:9;10215:10;:21::i;:::-;10208:29;;;;;;;;;;;10188:49;;10272:1;10255:4;:14;;;:18;10247:59;;;::::0;-1:-1:-1;;;10247:59:67;;23995:2:103;10247:59:67::1;::::0;::::1;23977:21:103::0;24034:2;24014:18;;;24007:30;24073;24053:18;;;24046:58;24121:18;;10247:59:67::1;;;;;;;;;10324:15;::::0;::::1;::::0;:20;10316:71:::1;;;::::0;-1:-1:-1;;;10316:71:67;;26654:2:103;10316:71:67::1;::::0;::::1;26636:21:103::0;26693:2;26673:18;;;26666:30;26732:34;26712:18;;;26705:62;-1:-1:-1;;;26783:18:103;;;26776:36;26829:19;;10316:71:67::1;26626:228:103::0;10316:71:67::1;10447:14;::::0;::::1;::::0;10475:10:::1;::::0;::::1;::::0;10499:11:::1;::::0;::::1;::::0;10423:97:::1;::::0;;::::1;::::0;::::1;17298:25:103::0;;;;17339:18;;17332:34;;;;17382:18;;;17375:34;10398:22:67::1;::::0;17271:18:103;;10423:97:67::1;;;;;;;;;;;;10398:122;;10543:138;10569:9;10597;10543:138;;;;;;;;;;;;;-1:-1:-1::0;;;10543:138:67::1;;::::0;10658:9:::1;;10543:8;:138::i;:::-;10692:14;::::0;::::1;:26:::0;;;10728:21:::1;::::0;::::1;:28:::0;;-1:-1:-1;;10728:28:67::1;10752:4;10728:28:::0;;::::1;::::0;;;10783:15:::1;10766:14;::::0;::::1;:32:::0;10905:7;;10927:14;;::::1;::::0;10956:10:::1;::::0;::::1;::::0;10981:11:::1;::::0;::::1;::::0;10838:155:::1;::::0;;20340:25:103;;;20396:2;20381:18;;20374:34;;;;20424:18;;20417:34;;;;20482:2;20467:18;;20460:34;20525:3;20510:19;;20503:35;10692:26:67;;-1:-1:-1;10838:155:67::1;::::0;20327:3:103;20312:19;10838:155:67::1;;;;;;;;2531:1:37;;10048:952:67::0;;;;:::o;14198:1430::-;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;14299:38:67::1;14340:25;14356:8;14340:15;:25::i;:::-;14299:66;;14375:14;14403:11;:16;;;14392:39;;;;;;;;;;;;:::i;:::-;14441:16;14460:14:::0;;;:6:::1;:14;::::0;;;;;;;;14441:33;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;::::1;;;;::::0;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;;::::0;;;;;14375:56;;-1:-1:-1;14441:33:67;14493:17;::::1;14485:59;;;::::0;-1:-1:-1;;;14485:59:67;;30042:2:103;14485:59:67::1;::::0;::::1;30024:21:103::0;30081:2;30061:18;;;30054:30;30120:31;30100:18;;;30093:59;30169:18;;14485:59:67::1;30014:179:103::0;14485:59:67::1;14580:1;14562:4;:15;;;:19;14554:69;;;::::0;-1:-1:-1;;;14554:69:67;;26248:2:103;14554:69:67::1;::::0;::::1;26230:21:103::0;26287:2;26267:18;;;26260:30;26326:34;26306:18;;;26299:62;-1:-1:-1;;;26377:18:103;;;26370:35;26422:19;;14554:69:67::1;26220:227:103::0;14554:69:67::1;14664:17;::::0;;;:9:::1;:17;::::0;;;;14641:51:::1;::::0;14683:8;14641:22:::1;:51::i;:::-;14633:101;;;::::0;-1:-1:-1;;;14633:101:67;;33453:2:103;14633:101:67::1;::::0;::::1;33435:21:103::0;33492:2;33472:18;;;33465:30;33531:34;33511:18;;;33504:62;-1:-1:-1;;;33582:18:103;;;33575:35;33627:19;;14633:101:67::1;33425:227:103::0;14633:101:67::1;14766:17;::::0;;;:9:::1;:17;::::0;;;;14745:49:::1;::::0;14785:8;14745:20:::1;:49::i;:::-;;14806:19;14828:94;14857:4;:21;;;14893:11;:28;;;14828:15;:94::i;:::-;14806:116;;14941:15;14959:36;14969:8;14979:11;14959:36;;;;;;;;;;;::::0;:9:::1;:36::i;:::-;15010:51;::::0;;17298:25:103;;;17354:2;17339:18;;17332:34;;;17382:18;;;17375:34;;;14941:54:67;;-1:-1:-1;15010:51:67::1;::::0;17286:2:103;17271:18;15010:51:67::1;;;;;;;15076:15:::0;;15072:448:::1;;15130:11:::0;15155:46:::1;15169:8:::0;15179:7;15130:11;15155:13:::1;:46::i;:::-;15216:16;15235:47;15246:8;15256:7;15265:12;15235:47;;;;;;;;;;;::::0;:10:::1;:47::i;:::-;15216:66;;15296:34;15311:8;15321;15296:14;:34::i;:::-;-1:-1:-1::0;;15350:44:67::1;::::0;;18624:25:103;;;18680:2;18665:18;;18658:34;;;15350:44:67::1;::::0;18597:18:103;15350:44:67::1;;;;;;;15072:448;;;;;15433:32;15447:8;15457:7;15433:13;:32::i;:::-;15479:30;15491:8;15501:7;15479:11;:30::i;:::-;15530:17;15538:8;15530:7;:17::i;:::-;15557:16;15564:8;15557:6;:16::i;:::-;15589:32;::::0;16638:25:103;;;15589:32:67::1;::::0;16626:2:103;16611:18;15589:32:67::1;;;;;;;;2531:1:37;;;;;14198:1430:67::0;;:::o;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;16638:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;16611:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2578:55;;2500:136;:::o;7831:655:67:-;7950:12;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;8033:26:67::1;8049:9;8033:15;:26::i;:::-;;8079:22;8091:9;8079:11;:22::i;:::-;8069:32;;8116:7;8112:368;;;8139:38;8180:26;8196:9;8180:15;:26::i;:::-;8139:67;;8220:32;8255:23;8268:9;8255:12;:23::i;:::-;8363:14:::0;;8396:25:::1;::::0;;::::1;::::0;8440:28:::1;::::0;;::::1;::::0;8297:172;;16905:25:103;;;-1:-1:-1;;;;;16966:32:103;;;16946:18;;;16939:60;;;;17015:18;;17008:34;17073:2;17058:18;;17051:34;8220:58:67;;-1:-1:-1;8297:172:67::1;::::0;16892:3:103;16877:19;8297:172:67::1;16859:232:103::0;8112:368:67::1;7831:655:::0;;;;:::o;3279:78:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3339:15:::1;:13;:15::i;:::-;3279:78::o:0;1080:65:67:-;1119:26;982:5;1119:2;:26;:::i;:::-;1080:65;:::o;13141:1051::-;13272:35;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;13323::67::1;13342:14:::0;;;:6:::1;:14;::::0;;;;;;;;13323:33;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;::::1;;;;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;;;;13366:69:::1;;;::::0;-1:-1:-1;;;13366:69:67;;25485:2:103;13366:69:67::1;::::0;::::1;25467:21:103::0;25524:2;25504:18;;;25497:30;25563:34;25543:18;;;25536:62;-1:-1:-1;;;25614:18:103;;;25607:35;25659:19;;13366:69:67::1;25457:227:103::0;13366:69:67::1;13446:16;13486:17:::0;;;:9:::1;:17;::::0;;;;13465:39:::1;::::0;:20:::1;:39::i;:::-;13446:58:::0;-1:-1:-1;13518:13:67;13514:117:::1;;13552:31;::::0;;18624:25:103;;;13581:1:67::1;18680:2:103::0;18665:18;;18658:34;13552:31:67::1;::::0;18597:18:103;13552:31:67::1;;;;;;;-1:-1:-1::0;;13604:16:67::1;::::0;;13618:1:::1;13604:16:::0;;::::1;::::0;::::1;::::0;;;;-1:-1:-1;13597:23:67::1;;13514:117;13645:14:::0;13641:117:::1;;13675:8;13663:20;;13641:117;;;13731:24;13735:9;13746:8;13731:3;:24::i;:::-;13719:36;;13641:117;13802:9;13788:24;;;;;;-1:-1:-1::0;;;13788:24:67::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;13788:24:67::1;-1:-1:-1::0;13768:44:67;-1:-1:-1;13822:18:67::1;13843:12;13854:1;13843:8:::0;:12:::1;:::i;:::-;13822:33;;13871:9;13866:265;13890:9;13886:1;:13;13866:265;;;13968:16;14004:17:::0;;;:9:::1;:17;::::0;;;;13987:51:::1;::::0;14023:14:::1;14036:1:::0;14023:10;:14:::1;:::i;:::-;13987:16;:51::i;:::-;13968:70;;14052:23;14066:8;14052:13;:23::i;:::-;14112:8;14089:17;14107:1;14089:20;;;;;;-1:-1:-1::0;;;14089:20:67::1;;;;;;;;;;::::0;;::::1;::::0;;;;;:31;-1:-1:-1;13901:3:67;::::1;::::0;::::1;:::i;:::-;;;;13866:265;;;-1:-1:-1::0;14146:39:67::1;::::0;;18624:25:103;;;18680:2;18665:18;;18658:34;;;14146:39:67::1;::::0;18597:18:103;14146:39:67::1;;;;;;;2531:1:37;;;;13141:1051:67::0;;;;;:::o;2973:120:12:-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;4816:145:37:-;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4929:25:::1;4940:4;4946:7;4929:10;:25::i;:::-;4816:145:::0;;;:::o;9758:284:67:-;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;9959:76:67::1;9984:9;9995:21;10018:16;9959:24;:76::i;:::-;9758:284:::0;;;;:::o;5925:214:37:-;-1:-1:-1;;;;;6020:23:37;;719:10:59;6020:23:37;6012:83;;;;-1:-1:-1;;;6012:83:37;;33859:2:103;6012:83:37;;;33841:21:103;33898:2;33878:18;;;33871:30;33937:34;33917:18;;;33910:62;-1:-1:-1;;;33988:18:103;;;33981:45;34043:19;;6012:83:37;33831:237:103;6012:83:37;6106:26;6118:4;6124:7;6106:11;:26::i;:::-;5925:214;;:::o;4431:1042:67:-;4684:14;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;4714:48:67::1;4738:7;4747:4;4753:3;4758;4714:23;:48::i;:::-;4782:35;4792:9;4803:5;4810:6;4782:9;:35::i;:::-;4827:8;:21:::0;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;-1:-1:-1;4879:14:67;;;:6:::1;4827:21;4879:14:::0;;;;4911::::1;::::0;::::1;::::0;4773:44;;-1:-1:-1;4879:14:67;4911:19;4903:65:::1;;;::::0;-1:-1:-1;;;4903:65:67;;31878:2:103;4903:65:67::1;::::0;::::1;31860:21:103::0;31917:2;31897:18;;;31890:30;31956:34;31936:18;;;31929:62;-1:-1:-1;;;32007:18:103;;;32000:31;32048:19;;4903:65:67::1;31850:223:103::0;4903:65:67::1;4979:16:::0;;;5005:14:::1;::::0;::::1;:26:::0;;;5041:10:::1;::::0;::::1;:18:::0;;;5069:11:::1;::::0;::::1;:20:::0;;;5099:12:::1;::::0;::::1;:22:::0;;;5131:9:::1;::::0;::::1;:16:::0;;;5157:8:::1;::::0;::::1;:14:::0;;;5181:8:::1;::::0;::::1;:14:::0;;;5222:15:::1;5205:14;::::0;::::1;:32:::0;;;5271:14:::1;::::0;::::1;:32:::0;5343:123:::1;::::0;;17651:25:103;;;17707:2;17692:18;;17685:34;;;17735:18;;;17728:34;;;17793:2;17778:18;;17771:34;;;5343:123:67::1;::::0;17638:3:103;17623:19;5343:123:67::1;;;;;;;2531:1:37;4431:1042:67::0;;;;;;;;;;:::o;17774:167::-;17852:17;17905;;;:9;:17;;;;;17888:46;;17924:9;17888:16;:46::i;:::-;17881:53;;17774:167;;;;;:::o;15878:948::-;16262:24;16407:13;16413:7;16407:3;:13;:::i;:::-;16375:28;982:5;16375:4;:28;:::i;:::-;:45;16371:84;;-1:-1:-1;16443:1:67;16436:8;;16371:84;16573:10;16579:4;16573:3;:10;:::i;:::-;16541:28;982:5;16541:4;:28;:::i;:::-;:42;16537:83;;-1:-1:-1;16606:3:67;16599:10;;16537:83;16684:20;16738:3;16707:28;16731:4;982:5;16707:28;:::i;:::-;:34;;;;:::i;:::-;16684:57;-1:-1:-1;16804:14:67;16814:4;16804:7;:14;:::i;:::-;16777:22;16787:12;16777:7;:22;:::i;:::-;16770:30;;:3;:30;:::i;:::-;:49;;;;:::i;:::-;16751:68;;15878:948;;;;;;;;;:::o;6652:1173::-;6857:17;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;6890:17:67::1;6910:14:::0;;;:6:::1;:14;::::0;;;;6942::::1;::::0;::::1;::::0;6934:59:::1;;;::::0;-1:-1:-1;;;6934:59:67;;31521:2:103;6934:59:67::1;::::0;::::1;31503:21:103::0;31560:2;31540:18;;;31533:30;31599;31579:18;;;31572:58;31647:18;;6934:59:67::1;31493:178:103::0;6934:59:67::1;-1:-1:-1::0;;;;;7011:26:67;::::1;7003:71;;;::::0;-1:-1:-1;;;7003:71:67;;27471:2:103;7003:71:67::1;::::0;::::1;27453:21:103::0;;;27490:18;;;27483:30;27549:34;27529:18;;;27522:62;27601:18;;7003:71:67::1;27443:182:103::0;7003:71:67::1;7085:26;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7085:26:67;;7152:18;;;;::::1;16638:25:103::0;;;7152:18:67;;;;;;;;;;16611::103;;7152::67;;;7085:26;7193:140:::1;7222:12:::0;7249:7;7271:10;7085:26;7152:18;7193:15:::1;:140::i;:::-;7344:13;:29:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;7344:29:67;;;;;::::1;::::0;;;7389:129:::1;::::0;;16905:25:103;;;-1:-1:-1;;;;;16966:32:103;;16961:2;16946:18;;16939:60;17015:18;;;17008:34;;;17073:2;17058:18;;17051:34;;;7344:29:67;;-1:-1:-1;7389:129:67::1;::::0;16892:3:103;16877:19;7389:129:67::1;;;;;;;7529:12;7544:22;7556:9;7544:11;:22::i;:::-;7529:37;;7581:7;7577:242;;;7622:17;::::0;;;:9:::1;:17;::::0;;;;7604:47:::1;::::0;7641:9;7604:17:::1;:47::i;:::-;-1:-1:-1::0;7674:134:67::1;::::0;;16905:25:103;;;-1:-1:-1;;;;;16966:32:103;;16961:2;16946:18;;16939:60;17015:18;;;17008:34;;;17073:2;17058:18;;17051:34;;;7674:134:67::1;::::0;16892:3:103;16877:19;7674:134:67::1;;;;;;;7577:242;2531:1:37;;;;6652:1173:67::0;;;;;;;:::o;11010:667::-;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;11121:17:67::1;11141:6;:29;11148:21;11159:9;11148:10;:21::i;:::-;11141:29;;;;;;;;;;;11121:49;;11205:1;11188:4;:14;;;:18;11180:59;;;::::0;-1:-1:-1;;;11180:59:67;;31164:2:103;11180:59:67::1;::::0;::::1;31146:21:103::0;31203:2;31183:18;;;31176:30;31242;31222:18;;;31215:58;31290:18;;11180:59:67::1;31136:178:103::0;11180:59:67::1;11257:21;::::0;::::1;::::0;::::1;;11249:72;;;::::0;-1:-1:-1;;;11249:72:67;;27832:2:103;11249:72:67::1;::::0;::::1;27814:21:103::0;27871:2;27851:18;;;27844:30;27910:34;27890:18;;;27883:62;-1:-1:-1;;;27961:18:103;;;27954:36;28007:19;;11249:72:67::1;27804:228:103::0;11249:72:67::1;11339:15;::::0;::::1;::::0;:20;11331:64:::1;;;::::0;-1:-1:-1;;;11331:64:67;;28960:2:103;11331:64:67::1;::::0;::::1;28942:21:103::0;28999:2;28979:18;;;28972:30;29038:33;29018:18;;;29011:61;29089:18;;11331:64:67::1;28932:181:103::0;11331:64:67::1;11406:30;11421:4;:14;;;11406;:30::i;:::-;11501:21;::::0;::::1;:29:::0;;-1:-1:-1;;11501:29:67::1;::::0;;11557:15:::1;11540:14;::::0;::::1;:32:::0;11655:14:::1;::::0;::::1;::::0;11612:58:::1;::::0;;18624:25:103;;;18680:2;18665:18;;18658:34;;;;11612:58:67::1;::::0;18597:18:103;11612:58:67::1;;;;;;;2531:1:37;11010:667:67::0;;:::o;3689:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3748:15:::1;3279:78:::0;17251:99:67;17306:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17306:16:67;-1:-1:-1;17333:14:67;;;;:6;:14;;;;;;;;;17326:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17251:99::o;11687:1448::-;1138:28:18;-1:-1:-1;;;1138:19:18;:28::i;:::-;-1:-1:-1;;;;;1122:44:18;719:10:59;-1:-1:-1;;;;;1122:44:18;;1100:119;;;;-1:-1:-1;;;1100:119:18;;24352:2:103;1100:119:18;;;24334:21:103;24391:2;24371:18;;;24364:30;24430:29;24410:18;;;24403:57;24477:18;;1100:119:18;24324:177:103;1100:119:18;11876:17:67::1;::::0;;;11990:62:::1;::::0;;::::1;12001:12:::0;11990:62:::1;:::i;:::-;11862:190;;;;;;;;12063:14;12080:21;12091:9;12080:10;:21::i;:::-;12063:38;;12129:35;12139:9;12150:5;12157:6;12129:9;:35::i;:::-;12119:6;:45;12111:88;;;::::0;-1:-1:-1;;;12111:88:67;;30400:2:103;12111:88:67::1;::::0;::::1;30382:21:103::0;30439:2;30419:18;;;30412:30;30478:32;30458:18;;;30451:60;30528:18;;12111:88:67::1;30372:180:103::0;12111:88:67::1;12210:17;12230:14:::0;;;:6:::1;:14;::::0;;;;12262::::1;::::0;::::1;::::0;12254:59:::1;;;::::0;-1:-1:-1;;;12254:59:67;;25891:2:103;12254:59:67::1;::::0;::::1;25873:21:103::0;25930:2;25910:18;;;25903:30;25969;25949:18;;;25942:58;26017:18;;12254:59:67::1;25863:178:103::0;12254:59:67::1;12349:9;12331:4;:14;;;:27;12323:73;;;::::0;-1:-1:-1;;;12323:73:67;;33051:2:103;12323:73:67::1;::::0;::::1;33033:21:103::0;33090:2;33070:18;;;33063:30;33129:34;33109:18;;;33102:62;-1:-1:-1;;;33180:18:103;;;33173:31;33221:19;;12323:73:67::1;33023:223:103::0;12323:73:67::1;12414:15;::::0;::::1;::::0;:20;12406:64:::1;;;::::0;-1:-1:-1;;;12406:64:67;;28600:2:103;12406:64:67::1;::::0;::::1;28582:21:103::0;28639:2;28619:18;;;28612:30;28678:33;28658:18;;;28651:61;28729:18;;12406:64:67::1;28572:181:103::0;12406:64:67::1;12498:32;982:5;1029:1;12498:32;:::i;:::-;12489:4;:42;;:104;;;;-1:-1:-1::0;12560:32:67::1;982:5;1071:2;12560:32;:::i;:::-;12552:4;:41;12489:104;12481:160;;;::::0;-1:-1:-1;;;12481:160:67;;22831:2:103;12481:160:67::1;::::0;::::1;22813:21:103::0;22870:2;22850:18;;;22843:30;22909:28;22889:18;;;22882:56;22955:18;;12481:160:67::1;22803:176:103::0;12481:160:67::1;12691:9;::::0;::::1;:16:::0;;;12780:8:::1;::::0;::::1;::::0;12802:12:::1;::::0;::::1;::::0;12828:9:::1;::::0;::::1;::::0;12851:8:::1;::::0;::::1;::::0;12741:151:::1;::::0;12780:8;12802:12;12828:9;12703:4;12741:25:::1;:151::i;:::-;12717:21;::::0;::::1;:175:::0;12921:15:::1;12903;::::0;::::1;:33:::0;;;12970:14:::1;::::0;::::1;:32:::0;13042:86:::1;::::0;;17298:25:103;;;17354:2;17339:18;;17332:34;;;17382:18;;;17375:34;;;13042:86:67::1;::::0;17286:2:103;17271:18;13042:86:67::1;;;;;;;1229:1:18;;;;;;11687:1448:67::0;;;;:::o;3195:78:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;1831:101:41:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;5479:924:67:-:0;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;5680:48:67::1;5704:7;5713:4;5719:3;5724;5680:23;:48::i;:::-;5739:17;5759:14:::0;;;:6:::1;:14;::::0;;;;5791::::1;::::0;::::1;::::0;5783:57:::1;;;::::0;-1:-1:-1;;;5783:57:67;;32280:2:103;5783:57:67::1;::::0;::::1;32262:21:103::0;32319:2;32299:18;;;32292:30;32358:28;32338:18;;;32331:56;32404:18;;5783:57:67::1;32252:176:103::0;5783:57:67::1;5879:17;::::0;;;:9:::1;:17;::::0;;;;5858:39:::1;::::0;:20:::1;:39::i;:::-;:44:::0;5850:104:::1;;;::::0;-1:-1:-1;;;5850:104:67;;32635:2:103;5850:104:67::1;::::0;::::1;32617:21:103::0;32674:2;32654:18;;;32647:30;32713:34;32693:18;;;32686:62;-1:-1:-1;;;32764:18:103;;;32757:45;32819:19;;5850:104:67::1;32607:237:103::0;5850:104:67::1;6015:7:::0;;6037:12:::1;::::0;::::1;::::0;6063:9:::1;::::0;::::1;::::0;6087:8:::1;::::0;::::1;::::0;6109::::1;::::0;::::1;::::0;5970:148:::1;::::0;;20340:25:103;;;20396:2;20381:18;;20374:34;;;;20424:18;;;20417:34;;;;20482:2;20467:18;;20460:34;20525:3;20510:19;;20503:35;5970:148:67;::::1;::::0;;;;20327:3:103;5970:148:67;;::::1;6137:12;::::0;::::1;:22:::0;;;6169:9:::1;::::0;::::1;:16:::0;;;6195:8:::1;::::0;::::1;:14:::0;;;6219:8:::1;::::0;::::1;:14:::0;;;6293:7;;6249:147:::1;::::0;;20340:25:103;;;20396:2;20381:18;;20374:34;;;20424:18;;20417:34;;;20482:2;20467:18;;20460:34;;;20525:3;20510:19;;20503:35;;;6249:147:67::1;::::0;20327:3:103;20312:19;6249:147:67::1;20294:250:103::0;1222:72:67;1269:25;1293:1;982:5;1269:25;:::i;2895:145:37:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:37;;;;;;;;;;;;;;;2895:145::o;2851:116:12:-;2900:4;;2915:49;;15634:238:67;15755:20;982:5;15806:35;15825:16;15806;:35;:::i;:::-;:59;;;;:::i;8492:229::-;8599:12;8613:11;8626:18;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;8689:25:67::1;8705:8;8689:15;:25::i;:::-;8660:54:::0;;;;-1:-1:-1;8660:54:67;;-1:-1:-1;8492:229:67;-1:-1:-1;;;8492:229:67:o;3363:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3422:15:::1;:13;:15::i;2131:81::-:0;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;17478:144:67:-;17550:17;17586:13;17600:14;17586:29;;;;;;-1:-1:-1;;;17586:29:67;;;;;;;;;;;;;;;;;17579:36;;17478:144;;;:::o;5241:147:37:-;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5355:26:::1;5367:4;5373:7;5355:11;:26::i;17628:140:67:-:0;17684:19;17743:17;;;:9;:17;;;;;17722:39;;:20;:39::i;2727:118:12:-;2777:4;2810:32;2792:50;;9146:606:67;9283:12;9297:11;9310:18;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;9344:32:67::1;9379:22;9392:8;9379:12;:22::i;:::-;9344:57;;9424:8;:14;;;-1:-1:-1::0;;;;;9416:22:67::1;:4;-1:-1:-1::0;;;;;9416:22:67::1;;9412:261;;9515:6;::::0;9529:14;;9454:23:::1;::::0;9480:72:::1;::::0;-1:-1:-1;;;;;9515:6:67;;::::1;::::0;9523:4;;9545:6;9480:34:::1;:72::i;:::-;9454:98;;9572:18;9567:96;;9618:18:::0;-1:-1:-1;9638:1:67::1;::::0;-1:-1:-1;9641:6:67;;-1:-1:-1;9610:38:67::1;::::0;-1:-1:-1;9610:38:67::1;9567:96;9412:261;;9712:33;9728:8;9738:6;9712:15;:33::i;:::-;9683:62:::0;;-1:-1:-1;9683:62:67;-1:-1:-1;9683:62:67;-1:-1:-1;;2531:1:37::1;9146:606:67::0;;;;;;;;:::o;6409:236::-;6601:36;;;;;;;17298:25:103;;;;17339:18;;;17332:34;;;;17382:18;;;;17375:34;;;;6601:36:67;;;;;;;;;;17271:18:103;;;;6601:36:67;;;6591:47;;;;;;6409:236::o;17151:95::-;17205:14;17230:8;17239:3;17230:13;;;;;;-1:-1:-1;;;17230:13:67;;;;;;;;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;23186:2:103;2161:73:41::1;::::0;::::1;23168:21:103::0;23225:2;23205:18;;;23198:30;23264:34;23244:18;;;23237:62;-1:-1:-1;;;23315:18:103;;;23308:36;23361:19;;2161:73:41::1;23158:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;1151:65:67:-:0;1191:25;1215:1;982:5;1191:25;:::i;3334:103:37:-;3400:30;3411:4;719:10:59;3400::37;:30::i;19870:220:67:-;19930:14;19956:38;19997:26;20013:9;19997:15;:26::i;:::-;19956:67;;20055:11;:16;;;20044:39;;;;;;;;;;;;:::i;:::-;20033:50;19870:220;-1:-1:-1;;;19870:220:67:o;6020:411:18:-;6257:15;;:167;;-1:-1:-1;;;6257:167:18;;6212:17;;-1:-1:-1;;;;;6257:15:18;;:23;;:167;;6294:9;;6317:5;;6336:18;;6376:4;;6395:19;;6257:167;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6763:205::-;6857:38;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6857:38:18;6919:16;;:42;;-1:-1:-1;;;6919:42:18;;;;;16638:25:103;;;-1:-1:-1;;;;;6919:16:18;;;;:31;;16611:18:103;;6919:42:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6919:42:18;;;;;;;;;;;;:::i;6319:138:64:-;6399:4;4250:19;;;:12;;;:19;;;;;;:24;;6422:28;4154:127;6109:129;6182:4;6205:26;6213:3;6225:5;6205:7;:26::i;4586:285:18:-;4771:15;;:93;;-1:-1:-1;;;4771:93:18;;4730:15;;-1:-1:-1;;;;;4771:15:18;;:24;;:93;;4809:9;;4833:11;;4859:4;;4771:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4761:103;4586:285;-1:-1:-1;;;;4586:285:18:o;4877:250::-;5019:15;;:101;;-1:-1:-1;;;5019:101:18;;;;;17298:25:103;;;17339:18;;;17332:34;;;17382:18;;;17375:34;;;-1:-1:-1;;;;;5019:15:18;;;;:28;;17271:18:103;;5019:101:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4877:250;;;:::o;5407:271::-;5612:15;;:59;;-1:-1:-1;;;5612:59:18;;5569:16;;-1:-1:-1;;;;;5612:15:18;;:25;;:59;;5638:9;;5649:7;;5658:6;;5666:4;;5612:59;;;:::i;5684:330::-;5957:15;;:50;;-1:-1:-1;;;5957:50:18;;;;;18624:25:103;;;18665:18;;;18658:34;;;5813:17:18;;;;-1:-1:-1;;;;;5957:15:18;;;;:29;;18597:18:103;;5957:50:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5892:115;;;;-1:-1:-1;5684:330:18;-1:-1:-1;;;5684:330:18:o;5133:133::-;5211:15;;:48;;-1:-1:-1;;;5211:48:18;;;;;18624:25:103;;;18665:18;;;18658:34;;;-1:-1:-1;;;;;5211:15:18;;;;:28;;18597:18:103;;5211:48:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5133:133;;:::o;5272:129::-;5348:15;;:46;;-1:-1:-1;;;5348:46:18;;;;;18624:25:103;;;18665:18;;;18658:34;;;-1:-1:-1;;;;;5348:15:18;;;;:26;;18597:18:103;;5348:46:18;18579:119:103;4386:95:18;4441:15;;:33;;-1:-1:-1;;;4441:33:18;;;;;16638:25:103;;;-1:-1:-1;;;;;4441:15:18;;;;:22;;16611:18:103;;4441:33:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4386:95;:::o;4487:93::-;4541:15;;:32;;-1:-1:-1;;;4541:32:18;;;;;16638:25:103;;;-1:-1:-1;;;;;4541:15:18;;;;:21;;16611:18:103;;4541:32:18;16593:76:103;4142:135:18;4233:15;;:37;;-1:-1:-1;;;4233:37:18;;;;;16638:25:103;;;4199:12:18;;-1:-1:-1;;;;;4233:15:18;;:26;;16611:18:103;;4233:37:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6564:193::-;6655:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6655:32:18;6711:16;;:39;;-1:-1:-1;;;6711:39:18;;;;;16638:25:103;;;-1:-1:-1;;;;;6711:16:18;;;;:28;;16611:18:103;;6711:39:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6711:39:18;;;;;;;;;;;;:::i;4875:145:12:-;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;16638:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;16611:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2189:80:18:-;2239:27;2258:7;2373:12:12;;2309:79;;2258:7:18;2239:27;;16638:25:103;;;16626:2;16611:18;2239:27:18;;;;;;;2189:80::o;6538:115:64:-;6601:7;6627:19;6635:3;4444:18;;4362:107;16960:104:67;17017:7;17048:1;17043;:6;;:14;;17056:1;17043:14;;;-1:-1:-1;17052:1:67;;16960:104;-1:-1:-1;16960:104:67:o;6995:129:64:-;7069:7;7095:22;7099:3;7111:5;7095:3;:22::i;7474:233:37:-;7557:22;7565:4;7571:7;7557;:22::i;:::-;7552:149;;7595:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7595:29:37;;;;;;;;;:36;;-1:-1:-1;;7595:36:37;7627:4;7595:36;;;7677:12;719:10:59;640:96;;7677:12:37;-1:-1:-1;;;;;7650:40:37;7668:7;-1:-1:-1;;;;;7650:40:37;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;3778:257:18:-;3937:15;;:91;;-1:-1:-1;;;3937:91:18;;;;;17298:25:103;;;17339:18;;;17332:34;;;17382:18;;;17375:34;;;-1:-1:-1;;;;;3937:15:18;;;;:39;;17271:18:103;;3937:91:18;17253:162:103;7878:234:37;7961:22;7969:4;7975:7;7961;:22::i;:::-;7957:149;;;8031:5;7999:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7999:29:37;;;;;;;;;;:37;;-1:-1:-1;;7999:37:37;;;8055:40;719:10:59;;7999:12:37;;8055:40;;8031:5;8055:40;7878:234;;:::o;18095:814:67:-;982:5;18263:7;:32;;18255:81;;;;-1:-1:-1;;;18255:81:67;;30759:2:103;18255:81:67;;;30741:21:103;30798:2;30778:18;;;30771:30;30837:34;30817:18;;;30810:62;-1:-1:-1;;;30888:18:103;;;30881:34;30932:19;;18255:81:67;30731:226:103;18255:81:67;18364:4;18354:7;:14;18346:74;;;;-1:-1:-1;;;18346:74:67;;24708:2:103;18346:74:67;;;24690:21:103;24747:2;24727:18;;;24720:30;24786:34;24766:18;;;24759:62;-1:-1:-1;;;24837:18:103;;;24830:45;24892:19;;18346:74:67;24680:237:103;18346:74:67;1191:25;1215:1;982:5;1191:25;:::i;:::-;18438:4;:21;;18430:67;;;;-1:-1:-1;;;18430:67:67;;23593:2:103;18430:67:67;;;23575:21:103;23632:2;23612:18;;;23605:30;23671:34;23651:18;;;23644:62;-1:-1:-1;;;23722:18:103;;;23715:31;23763:19;;18430:67:67;23565:223:103;18430:67:67;1269:25;1293:1;982:5;1269:25;:::i;:::-;18515:3;:27;;18507:73;;;;-1:-1:-1;;;18507:73:67;;29320:2:103;18507:73:67;;;29302:21:103;;;29339:18;;;29332:30;29398:34;29378:18;;;29371:62;29450:18;;18507:73:67;29292:182:103;18507:73:67;982:5;18598:3;:28;;18590:74;;;;-1:-1:-1;;;18590:74:67;;29681:2:103;18590:74:67;;;29663:21:103;;;29700:18;;;29693:30;29759:34;29739:18;;;29732:62;29811:18;;18590:74:67;29653:182:103;18590:74:67;982:5;18682:10;18688:4;18682:3;:10;:::i;:::-;:35;;18674:89;;;;-1:-1:-1;;;18674:89:67;;27061:2:103;18674:89:67;;;27043:21:103;27100:2;27080:18;;;27073:30;27139:34;27119:18;;;27112:62;-1:-1:-1;;;27190:18:103;;;27183:39;27239:19;;18674:89:67;27033:231:103;18674:89:67;18787:1;18781:3;:7;18773:55;;;;-1:-1:-1;;;18773:55:67;;22071:2:103;18773:55:67;;;22053:21:103;22110:2;22090:18;;;22083:30;22149:34;22129:18;;;22122:62;-1:-1:-1;;;22200:18:103;;;22193:33;22243:19;;18773:55:67;22043:225:103;18773:55:67;1119:26;982:5;1119:2;:26;:::i;:::-;18846:3;:19;;18838:64;;;;-1:-1:-1;;;18838:64:67;;25124:2:103;18838:64:67;;;25106:21:103;;;25143:18;;;25136:30;25202:34;25182:18;;;25175:62;25254:18;;18838:64:67;25096:182:103;2446:459:18;2725:15;;:173;;-1:-1:-1;;;2725:173:18;;2680:17;;-1:-1:-1;;;;;2725:15:18;;:30;;:173;;2769:16;;2800:13;;2828:16;;2859:8;;2882:15;;2725:173;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2713:185;2446:459;-1:-1:-1;;;;;;2446:459:18:o;5818:123:64:-;5888:4;5911:23;5916:3;5928:5;5911:4;:23::i;6437:121:18:-;6511:15;;:40;;-1:-1:-1;;;6511:40:18;;;;;16638:25:103;;;-1:-1:-1;;;;;6511:15:18;;;;:29;;16611:18:103;;6511:40:18;16593:76:103;2275:80:18;2325:27;2344:7;2373:12:12;;2309:79;;1359:130:41;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;28239:2:103;1414:68:41;;;28221:21:103;;;28258:18;;;28251:30;28317:34;28297:18;;;28290:62;28369:18;;1414:68:41;28211:182:103;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;2911:538:18:-;3002:12;3028:17;3059;3101:28;3132:21;3143:9;3132:10;:21::i;:::-;3101:52;;3195:6;:28;;;3168:6;:24;;;:55;3164:279;;;3290:142;3327:9;3390:6;:24;;;3359:6;:28;;;:55;;;;:::i;:::-;3290:15;:142::i;3164:279::-;2911:538;;;;;;:::o;2360:80::-;2410:27;2429:7;2373:12:12;;2309:79;;913:1422:90;1068:12;1162:5;-1:-1:-1;;;;;1202:24:90;;;;:28;;;1245:18;;;;:39;;-1:-1:-1;;;;;;1267:17:90;;;1245:39;:59;;;;1289:15;1288:16;1245:59;1241:187;;;1325:66;;;15615:14:103;;15608:22;15590:41;;-1:-1:-1;;;;;15705:15:103;;;15700:2;15685:18;;15678:43;15757:15;;15737:18;;;15730:43;1325:66:90;;;;;;;15578:2:103;1325:66:90;;;1412:5;1405:12;;;;;;1241:187;1499:21;;-1:-1:-1;;;1499:21:90;;-1:-1:-1;;;;;13205:32:103;;;1499:21:90;;;13187:51:103;1481:15:90;;1499;;;;;;13160:18:103;;1499:21:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1550:36;;-1:-1:-1;;;1550:36:90;;-1:-1:-1;;;;;13479:15:103;;;1550:36:90;;;13461:34:103;1580:4:90;13511:18:103;;;13504:43;1481:39:90;;-1:-1:-1;1530:17:90;;1550:15;;;;;13396:18:103;;1550:36:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1530:56;;1610:5;1600:7;:15;:36;;;;1631:5;1619:9;:17;1600:36;1596:157;;;1657:59;;;18624:25:103;;;18680:2;18665:18;;18658:34;;;1657:59:90;;18597:18:103;1657:59:90;;;;;;;1737:5;1730:12;;;;;;;;1596:157;1956:119;;;-1:-1:-1;;;;;13816:15:103;;;1956:119:90;;;13798:34:103;13868:15;;;13848:18;;;13841:43;13900:18;;;;13893:34;;;1956:119:90;;;;;;;;;;13733:18:103;;;;1956:119:90;;;;;;;-1:-1:-1;;;;;1956:119:90;-1:-1:-1;;;1956:119:90;;;1923:153;;-1:-1:-1;;;;1923:19:90;;;;:153;;1956:119;1923:153;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1883:193;;;;2097:11;:118;;;;-1:-1:-1;2134:11:90;;:16;2113:101;;;;2168:4;:11;2183:2;2168:17;:45;;;;;2200:4;2189:24;;;;;;;;;;;;:::i;:::-;2087:128;;2231:7;2226:103;;2259:59;2287:11;2300:4;:11;2313:4;2259:59;;;;;;;;:::i;:::-;;;;;;;;2226:103;913:1422;;;;;;;;;;;;:::o;3455:317:18:-;3716:15;;:49;;-1:-1:-1;;;3716:49:18;;;;;18624:25:103;;;18665:18;;;18658:34;;;3583:12:18;;;;;;-1:-1:-1;;;;;3716:15:18;;:30;;18597:18:103;;3716:49:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3718:492:37:-;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:403;;3989:41;4017:7;-1:-1:-1;;;;;3989:41:37;4027:2;3989:19;:41::i;:::-;4101:38;4129:4;4136:2;4101:19;:38::i;:::-;3896:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:265:37;;;;;;;;;;-1:-1:-1;;;3844:349:37;;;;;;;:::i;2685:1388:64:-;2751:4;2888:19;;;:12;;;:19;;;;;;2922:15;;2918:1149;;3291:21;3315:14;3328:1;3315:10;:14;:::i;:::-;3363:18;;3291:38;;-1:-1:-1;3343:17:64;;3363:22;;3384:1;;3363:22;:::i;:::-;3343:42;;3417:13;3404:9;:26;3400:398;;3450:17;3470:3;:11;;3482:9;3470:22;;;;;;-1:-1:-1;;;3470:22:64;;;;;;;;;;;;;;;;;3450:42;;3621:9;3592:3;:11;;3604:13;3592:26;;;;;;-1:-1:-1;;;3592:26:64;;;;;;;;;;;;;;;;;;;;:38;;;;3704:23;;;:12;;;:23;;;;;:36;;;3400:398;3876:17;;:3;;:17;;;-1:-1:-1;;;3876:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;3968:3;:12;;:19;3981:5;3968:19;;;;;;;;;;;3961:26;;;4009:4;4002:11;;;;;;;2918:1149;4051:5;4044:12;;;;;4811:118;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;2113:404::-;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;6974:185:18;7063:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7063:28:18;7115:16;;:37;;-1:-1:-1;;;7115:37:18;;;;;16638:25:103;;;-1:-1:-1;;;;;7115:16:18;;;;:26;;16611:18:103;;7115:37:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1652:441:61:-;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;1774:25;;;;;;-1:-1:-1;;;1774:25:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:61;;1752:47;;-1:-1:-1;;;1809:6:61;1816:1;1809:9;;;;;;-1:-1:-1;;;1809:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1809:15:61;;;;;;;;;-1:-1:-1;;;1834:6:61;1841:1;1834:9;;;;;;-1:-1:-1;;;1834:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1834:15:61;;;;;;;;-1:-1:-1;1864:9:61;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:61;1951:3;1943:11;1930:25;;;;;-1:-1:-1;;;1930:25:61;;;;;;;;;;;;1918:6;1925:1;1918:9;;;;;;-1:-1:-1;;;1918:9:61;;;;;;;;;;;;:37;-1:-1:-1;;;;;1918:37:61;;;;;;;;-1:-1:-1;1979:1:61;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:61;;2000:55;;;;-1:-1:-1;;;2000:55:61;;21710:2:103;2000:55:61;;;21692:21:103;;;21729:18;;;21722:30;21788:34;21768:18;;;21761:62;21840:18;;2000:55:61;21682:182:103;14:164;90:13;;139;;132:21;122:32;;112:2;;168:1;165;158:12;183:512;;289:3;282:4;274:6;270:17;266:27;256:2;;311:5;304;297:20;256:2;344:6;338:13;370:18;366:2;363:26;360:2;;;392:18;;:::i;:::-;436:55;479:2;460:13;;-1:-1:-1;;456:27:103;485:4;452:38;436:55;:::i;:::-;516:2;507:7;500:19;562:3;555:4;550:2;542:6;538:15;534:26;531:35;528:2;;;583:5;576;569:20;528:2;600:64;661:2;654:4;645:7;641:18;634:4;626:6;622:17;600:64;:::i;700:160::-;792:13;;834:1;824:12;;814:2;;850:1;847;840:12;865:257;;977:2;965:9;956:7;952:23;948:32;945:2;;;998:6;990;983:22;945:2;1042:9;1029:23;1061:31;1086:5;1061:31;:::i;1127:261::-;;1250:2;1238:9;1229:7;1225:23;1221:32;1218:2;;;1271:6;1263;1256:22;1218:2;1308:9;1302:16;1327:31;1352:5;1327:31;:::i;1393:462::-;;;;;1556:3;1544:9;1535:7;1531:23;1527:33;1524:2;;;1578:6;1570;1563:22;1524:2;1622:9;1609:23;1641:31;1666:5;1641:31;:::i;:::-;1691:5;1743:2;1728:18;;1715:32;;-1:-1:-1;1794:2:103;1779:18;;1766:32;;1845:2;1830:18;1817:32;;-1:-1:-1;1514:341:103;-1:-1:-1;;;1514:341:103:o;1860:212::-;;1980:2;1968:9;1959:7;1955:23;1951:32;1948:2;;;2001:6;1993;1986:22;1948:2;2029:37;2056:9;2029:37;:::i;2077:334::-;;;;2231:2;2219:9;2210:7;2206:23;2202:32;2199:2;;;2252:6;2244;2237:22;2199:2;2280:37;2307:9;2280:37;:::i;:::-;2270:47;;2357:2;2346:9;2342:18;2336:25;2326:35;;2401:2;2390:9;2386:18;2380:25;2370:35;;2189:222;;;;;:::o;2416:190::-;;2528:2;2516:9;2507:7;2503:23;2499:32;2496:2;;;2549:6;2541;2534:22;2496:2;-1:-1:-1;2577:23:103;;2486:120;-1:-1:-1;2486:120:103:o;2611:194::-;;2734:2;2722:9;2713:7;2709:23;2705:32;2702:2;;;2755:6;2747;2740:22;2702:2;-1:-1:-1;2783:16:103;;2692:113;-1:-1:-1;2692:113:103:o;2810:325::-;;;2939:2;2927:9;2918:7;2914:23;2910:32;2907:2;;;2960:6;2952;2945:22;2907:2;3001:9;2988:23;2978:33;;3061:2;3050:9;3046:18;3033:32;3074:31;3099:5;3074:31;:::i;:::-;3124:5;3114:15;;;2897:238;;;;;:::o;3140:393::-;;;;3286:2;3274:9;3265:7;3261:23;3257:32;3254:2;;;3307:6;3299;3292:22;3254:2;3348:9;3335:23;3325:33;;3408:2;3397:9;3393:18;3380:32;3421:31;3446:5;3421:31;:::i;:::-;3244:289;;3471:5;;-1:-1:-1;;;3523:2:103;3508:18;;;;3495:32;;3244:289::o;3538:326::-;;;;3684:2;3672:9;3663:7;3659:23;3655:32;3652:2;;;3705:6;3697;3690:22;3652:2;-1:-1:-1;;3733:23:103;;;3803:2;3788:18;;3775:32;;-1:-1:-1;3854:2:103;3839:18;;;3826:32;;3642:222;-1:-1:-1;3642:222:103:o;3869:395::-;;;;;4032:3;4020:9;4011:7;4007:23;4003:33;4000:2;;;4054:6;4046;4039:22;4000:2;-1:-1:-1;;4082:23:103;;;4152:2;4137:18;;4124:32;;-1:-1:-1;4203:2:103;4188:18;;4175:32;;4254:2;4239:18;4226:32;;-1:-1:-1;3990:274:103;-1:-1:-1;3990:274:103:o;4269:602::-;;;;;;;;4483:3;4471:9;4462:7;4458:23;4454:33;4451:2;;;4505:6;4497;4490:22;4451:2;-1:-1:-1;;4533:23:103;;;4603:2;4588:18;;4575:32;;-1:-1:-1;4654:2:103;4639:18;;4626:32;;4705:2;4690:18;;4677:32;;-1:-1:-1;4756:3:103;4741:19;;4728:33;;-1:-1:-1;4808:3:103;4793:19;;4780:33;;-1:-1:-1;4860:3:103;4845:19;4832:33;;-1:-1:-1;4441:430:103;-1:-1:-1;4441:430:103:o;4876:258::-;;;5005:2;4993:9;4984:7;4980:23;4976:32;4973:2;;;5026:6;5018;5011:22;4973:2;-1:-1:-1;;5054:23:103;;;5124:2;5109:18;;;5096:32;;-1:-1:-1;4963:171:103:o;5470:464::-;;;;;;5650:3;5638:9;5629:7;5625:23;5621:33;5618:2;;;5672:6;5664;5657:22;5618:2;-1:-1:-1;;5700:23:103;;;5770:2;5755:18;;5742:32;;-1:-1:-1;5821:2:103;5806:18;;5793:32;;5872:2;5857:18;;5844:32;;-1:-1:-1;5923:3:103;5908:19;5895:33;;-1:-1:-1;5608:326:103;-1:-1:-1;5608:326:103:o;5939:306::-;;6050:2;6038:9;6029:7;6025:23;6021:32;6018:2;;;6071:6;6063;6056:22;6018:2;6102:23;;-1:-1:-1;;;;;;6154:32:103;;6144:43;;6134:2;;6206:6;6198;6191:22;6250:299;;6392:2;6380:9;6371:7;6367:23;6363:32;6360:2;;;6413:6;6405;6398:22;6360:2;6450:9;6444:16;6489:1;6482:5;6479:12;6469:2;;6510:6;6502;6495:22;6554:1010;;6706:2;6694:9;6685:7;6681:23;6677:32;6674:2;;;6727:6;6719;6712:22;6674:2;6765:9;6759:16;6794:18;6835:2;6827:6;6824:14;6821:2;;;6856:6;6848;6841:22;6821:2;6884:22;;;;6940:4;6922:16;;;6918:27;6915:2;;;6963:6;6955;6948:22;6915:2;6994:21;7010:4;6994:21;:::i;:::-;7045:2;7039:9;7079:1;7070:7;7067:14;7057:2;;7100:6;7092;7085:22;7057:2;7132:7;7125:5;7118:22;;7186:2;7182;7178:11;7172:18;7167:2;7160:5;7156:14;7149:42;7237:2;7233;7229:11;7223:18;7218:2;7211:5;7207:14;7200:42;7281:2;7277;7273:11;7267:18;7310:2;7300:8;7297:16;7294:2;;;7331:6;7323;7316:22;7294:2;7372:55;7419:7;7408:8;7404:2;7400:17;7372:55;:::i;:::-;7367:2;7360:5;7356:14;7349:79;;7475:3;7471:2;7467:12;7461:19;7455:3;7448:5;7444:15;7437:44;7528:3;7524:2;7520:12;7514:19;7508:3;7501:5;7497:15;7490:44;7553:5;7543:15;;;;;6664:900;;;;:::o;7569:1025::-;;7718:2;7706:9;7697:7;7693:23;7689:32;7686:2;;;7739:6;7731;7724:22;7686:2;7777:9;7771:16;7806:18;7847:2;7839:6;7836:14;7833:2;;;7868:6;7860;7853:22;7833:2;7896:22;;;;7952:4;7934:16;;;7930:27;7927:2;;;7975:6;7967;7960:22;7927:2;8006:21;8022:4;8006:21;:::i;:::-;8057:2;8051:9;8069:33;8094:7;8069:33;:::i;:::-;8111:22;;8179:2;8171:11;;;8165:18;8149:14;;;8142:42;8216:55;8267:2;8259:11;;8216:55;:::i;:::-;8211:2;8204:5;8200:14;8193:79;8311:2;8307;8303:11;8297:18;8340:2;8330:8;8327:16;8324:2;;;8361:6;8353;8346:22;8599:841;;8724:3;8768:2;8756:9;8747:7;8743:23;8739:32;8736:2;;;8789:6;8781;8774:22;8736:2;8820:19;8836:2;8820:19;:::i;:::-;8807:32;;8862:53;8905:9;8862:53;:::i;:::-;8855:5;8848:68;8969:2;8958:9;8954:18;8948:25;8943:2;8936:5;8932:14;8925:49;9027:2;9016:9;9012:18;9006:25;9001:2;8994:5;8990:14;8983:49;9085:2;9074:9;9070:18;9064:25;9059:2;9052:5;9048:14;9041:49;9144:3;9133:9;9129:19;9123:26;9117:3;9110:5;9106:15;9099:51;9204:3;9193:9;9189:19;9183:26;9177:3;9170:5;9166:15;9159:51;9264:3;9253:9;9249:19;9243:26;9237:3;9230:5;9226:15;9219:51;9324:3;9313:9;9309:19;9303:26;9297:3;9290:5;9286:15;9279:51;9349:3;9405:2;9394:9;9390:18;9384:25;9379:2;9372:5;9368:14;9361:49;;9429:5;9419:15;;;8704:736;;;;:::o;9839:777::-;;;;;10004:2;9992:9;9983:7;9979:23;9975:32;9972:2;;;10025:6;10017;10010:22;9972:2;10066:9;10053:23;10043:33;;10123:2;10112:9;10108:18;10095:32;10085:42;;10178:2;10167:9;10163:18;10150:32;10201:18;10242:2;10234:6;10231:14;10228:2;;;10263:6;10255;10248:22;10228:2;10306:6;10295:9;10291:22;10281:32;;10351:7;10344:4;10340:2;10336:13;10332:27;10322:2;;10378:6;10370;10363:22;10322:2;10423;10410:16;10449:2;10441:6;10438:14;10435:2;;;10470:6;10462;10455:22;10435:2;10520:7;10515:2;10506:6;10502:2;10498:15;10494:24;10491:37;10488:2;;;10546:6;10538;10531:22;10488:2;9962:654;;;;-1:-1:-1;;10582:2:103;10574:11;;-1:-1:-1;;;9962:654:103:o;10884:255::-;;;11024:2;11012:9;11003:7;10999:23;10995:32;10992:2;;;11045:6;11037;11030:22;10992:2;-1:-1:-1;;11073:16:103;;11129:2;11114:18;;;11108:25;11073:16;;11108:25;;-1:-1:-1;10982:157:103:o;11709:257::-;;11788:5;11782:12;11815:6;11810:3;11803:19;11831:63;11887:6;11880:4;11875:3;11871:14;11864:4;11857:5;11853:16;11831:63;:::i;:::-;11948:2;11927:15;-1:-1:-1;;11923:29:103;11914:39;;;;11955:4;11910:50;;11758:208;-1:-1:-1;;11758:208:103:o;11971:274::-;;12138:6;12132:13;12154:53;12200:6;12195:3;12188:4;12180:6;12176:17;12154:53;:::i;:::-;12223:16;;;;;12108:137;-1:-1:-1;;12108:137:103:o;12250:786::-;;12661:25;12656:3;12649:38;12716:6;12710:13;12732:62;12787:6;12782:2;12777:3;12773:12;12766:4;12758:6;12754:17;12732:62;:::i;:::-;-1:-1:-1;;;12853:2:103;12813:16;;;12845:11;;;12838:40;12903:13;;12925:63;12903:13;12974:2;12966:11;;12959:4;12947:17;;12925:63;:::i;:::-;13008:17;13027:2;13004:26;;12639:397;-1:-1:-1;;;;12639:397:103:o;13938:619::-;;14244:1;14240;14235:3;14231:11;14227:19;14219:6;14215:32;14204:9;14197:51;14284:6;14279:2;14268:9;14264:18;14257:34;14327:6;14322:2;14311:9;14307:18;14300:34;14370:3;14365:2;14354:9;14350:18;14343:31;14397:45;14437:3;14426:9;14422:19;14414:6;14397:45;:::i;:::-;14491:9;14483:6;14479:22;14473:3;14462:9;14458:19;14451:51;14519:32;14544:6;14536;14519:32;:::i;:::-;14511:40;14187:370;-1:-1:-1;;;;;;;;14187:370:103:o;14562:635::-;14733:2;14785:21;;;14855:13;;14758:18;;;14877:22;;;14562:635;;14733:2;14956:15;;;;14930:2;14915:18;;;14562:635;15002:169;15016:6;15013:1;15010:13;15002:169;;;15077:13;;15065:26;;15146:15;;;;15111:12;;;;15038:1;15031:9;15002:169;;;-1:-1:-1;15188:3:103;;14713:484;-1:-1:-1;;;;;;14713:484:103:o;15784:369::-;;15995:6;15988:14;15981:22;15970:9;15963:41;16040:6;16035:2;16024:9;16020:18;16013:34;16083:2;16078;16067:9;16063:18;16056:30;16103:44;16143:2;16132:9;16128:18;16120:6;16103:44;:::i;17816:621::-;;18095:6;18084:9;18077:25;18138:3;18133:2;18122:9;18118:18;18111:31;18165:45;18205:3;18194:9;18190:19;18182:6;18165:45;:::i;:::-;18258:9;18250:6;18246:22;18241:2;18230:9;18226:18;18219:50;18286:32;18311:6;18303;18286:32;:::i;:::-;-1:-1:-1;;;;;18354:32:103;;;;18349:2;18334:18;;18327:60;-1:-1:-1;;18418:3:103;18403:19;18396:35;18278:40;18067:370;-1:-1:-1;;;18067:370:103:o;18956:359::-;;19159:6;19148:9;19141:25;19202:6;19197:2;19186:9;19182:18;19175:34;19245:2;19240;19229:9;19225:18;19218:30;19265:44;19305:2;19294:9;19290:18;19282:6;19265:44;:::i;19644:432::-;;19875:6;19864:9;19857:25;19918:6;19913:2;19902:9;19898:18;19891:34;19961:6;19956:2;19945:9;19941:18;19934:34;20004:3;19999:2;19988:9;19984:18;19977:31;20025:45;20065:3;20054:9;20050:19;20042:6;20025:45;:::i;20775:250::-;20926:2;20911:18;;20959:1;20948:13;;20938:2;;20965:18;;:::i;:::-;20994:25;;;20893:132;:::o;21030:249::-;21180:2;21165:18;;21213:1;21202:13;;21192:2;;21219:18;;:::i;21284:219::-;;21433:2;21422:9;21415:21;21453:44;21493:2;21482:9;21478:18;21470:6;21453:44;:::i;22273:351::-;22475:2;22457:21;;;22514:2;22494:18;;;22487:30;22553:29;22548:2;22533:18;;22526:57;22615:2;22600:18;;22447:177::o;34073:1310::-;;34253:3;34242:9;34238:19;34230:27;;34290:6;34284:13;34273:9;34266:32;34354:4;34346:6;34342:17;34336:24;34329:4;34318:9;34314:20;34307:54;34417:4;34409:6;34405:17;34399:24;34392:4;34381:9;34377:20;34370:54;34480:4;34472:6;34468:17;34462:24;34455:4;34444:9;34440:20;34433:54;34543:4;34535:6;34531:17;34525:24;34518:4;34507:9;34503:20;34496:54;34606:4;34598:6;34594:17;34588:24;34581:4;34570:9;34566:20;34559:54;34669:4;34661:6;34657:17;34651:24;34644:4;34633:9;34629:20;34622:54;34732:4;34724:6;34720:17;34714:24;34707:4;34696:9;34692:20;34685:54;34758:6;34818:2;34810:6;34806:15;34800:22;34795:2;34784:9;34780:18;34773:50;;34842:6;34895:2;34887:6;34883:15;34877:22;34908:49;34953:2;34942:9;34938:18;34924:12;11683:13;11676:21;11664:34;;11654:50;34908:49;-1:-1:-1;;34976:6:103;35024:15;;;35018:22;34998:18;;;34991:50;35060:6;35108:15;;;35102:22;35082:18;;;35075:50;35144:6;35192:15;;;35186:22;35166:18;;;35159:50;35228:6;35276:15;;;35270:22;35250:18;;;35243:50;35312:6;35360:15;;;35354:22;35334:18;;;;35327:50;;;;34220:1163;:::o;36615:275::-;36686:2;36680:9;36751:2;36732:13;;-1:-1:-1;;36728:27:103;36716:40;;36786:18;36771:34;;36807:22;;;36768:62;36765:2;;;36833:18;;:::i;:::-;36869:2;36862:22;36660:230;;-1:-1:-1;36660:230:103:o;36895:128::-;;36966:1;36962:6;36959:1;36956:13;36953:2;;;36972:18;;:::i;:::-;-1:-1:-1;37008:9:103;;36943:80::o;37028:217::-;;37094:1;37084:2;;-1:-1:-1;;;37119:31:103;;37173:4;37170:1;37163:15;37201:4;37126:1;37191:15;37084:2;-1:-1:-1;37230:9:103;;37074:171::o;37250:168::-;;37356:1;37352;37348:6;37344:14;37341:1;37338:21;37333:1;37326:9;37319:17;37315:45;37312:2;;;37363:18;;:::i;:::-;-1:-1:-1;37403:9:103;;37302:116::o;37423:125::-;;37491:1;37488;37485:8;37482:2;;;37496:18;;:::i;:::-;-1:-1:-1;37533:9:103;;37472:76::o;37553:258::-;37625:1;37635:113;37649:6;37646:1;37643:13;37635:113;;;37725:11;;;37719:18;37706:11;;;37699:39;37671:2;37664:10;37635:113;;;37766:6;37763:1;37760:13;37757:2;;;-1:-1:-1;;37801:1:103;37783:16;;37776:27;37606:205::o;37816:136::-;;37883:5;37873:2;;37892:18;;:::i;:::-;-1:-1:-1;;;37928:18:103;;37863:89::o;37957:135::-;;-1:-1:-1;;38017:17:103;;38014:2;;;38037:18;;:::i;:::-;-1:-1:-1;38084:1:103;38073:13;;38004:88::o;38097:127::-;38158:10;38153:3;38149:20;38146:1;38139:31;38189:4;38186:1;38179:15;38213:4;38210:1;38203:15;38229:127;38290:10;38285:3;38281:20;38278:1;38271:31;38321:4;38318:1;38311:15;38345:4;38342:1;38335:15;38361:127;38422:10;38417:3;38413:20;38410:1;38403:31;38453:4;38450:1;38443:15;38477:4;38474:1;38467:15;38493:131;-1:-1:-1;;;;;38568:31:103;;38558:42;;38548:2;;38614:1;38611;38604:12"},"methodIdentifiers":{"AAAY_MAX()":"aec8de39","AAAY_MIN()":"4ce9d0a7","DEFAULT_ADMIN_ROLE()":"a217fddf","INSURER_ROLE()":"056c9989","NAME()":"a3f4df7e","PERCENTAGE_MULTIPLIER()":"54111315","POLICY_FLOW()":"09128d83","RISK_APH_MAX()":"1c3456dd","RISK_EXIT_MAX()":"f406460c","RISK_TSI_AT_EXIT_MIN()":"90e1a2ac","VERSION()":"ffa1ad74","adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","adjustRisk(bytes32,uint256,uint256,uint256,uint256)":"78a433a5","applications()":"7ce5e82f","applyForPolicy(address,uint256,uint256,bytes32)":"4b6eb669","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","calculatePayout(uint256,uint256)":"9dce5ff0","calculatePayoutPercentage(uint256,uint256,uint256,uint256,uint256)":"46b937f6","cancelOracleRequest(bytes32)":"597ee798","collectPremium(bytes32)":"b9ea8d66","collectPremium(bytes32,address,uint256)":"e5d58cd8","createRisk(bytes32,bytes32,bytes32,uint256,uint256,uint256,uint256)":"3dc5f58e","declineCallback()":"bd1fe5d0","getApplicationDataStructure()":"94f64ff4","getApplicationId(uint256)":"d52d2d06","getClaimDataStructure()":"3ec92bda","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getPayoutDataStructure()":"39cf5e16","getPercentageMultiplier()":"66528c3b","getPolicyFlow()":"637d08f4","getPolicyId(bytes32,uint256)":"412f91d9","getRegistry()":"5ab1bd53","getRisk(bytes32)":"5a602109","getRiskId(bytes32,bytes32,bytes32)":"e9960d8a","getRiskId(uint256)":"eb807339","getRiskpoolId()":"70d2fe53","getRoleAdmin(bytes32)":"248a9ca3","getState()":"1865c57d","getToken()":"21df0da7","getType()":"15dae03e","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","oracleCallback(uint256,bytes32,bytes)":"5e61aa63","owner()":"8da5cb5b","pauseCallback()":"d73cd992","policies(bytes32)":"ddbfd8ef","processPoliciesForRisk(bytes32,uint256)":"1fd358aa","processPolicy(bytes32)":"0b228d95","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","resumeCallback()":"a18f5ae2","revokeRole(bytes32,address)":"d547741f","riskPoolCapacityCallback(uint256)":"f4fdc1fa","risks()":"f9d7ff89","setId(uint256)":"d0e0ba95","supportsInterface(bytes4)":"01ffc9a7","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","triggerOracle(bytes32)":"06136f28","underwrite(bytes32)":"1b07b17f","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"productName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"oracleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"insurer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"}],\"name\":\"LogAyiiClaimCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"}],\"name\":\"LogAyiiPayoutCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogAyiiPolicyApplicationCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogAyiiPolicyCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"LogAyiiPolicyProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"}],\"name\":\"LogAyiiRiskDataAfterAdjustment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"}],\"name\":\"LogAyiiRiskDataBeforeAdjustment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"productId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"}],\"name\":\"LogAyiiRiskDataCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"}],\"name\":\"LogAyiiRiskDataReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"LogAyiiRiskDataRequestCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"}],\"name\":\"LogAyiiRiskDataRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"policies\",\"type\":\"uint256\"}],\"name\":\"LogAyiiRiskProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"LogProductCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callSuccess\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"returnDataLength\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"LogTransferHelperCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"tokenIsContract\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"LogTransferHelperInputValidation1Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"}],\"name\":\"LogTransferHelperInputValidation2Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AAAY_MAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AAAY_MIN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INSURER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERCENTAGE_MULTIPLIER\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POLICY_FLOW\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISK_APH_MAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISK_EXIT_MAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISK_TSI_AT_EXIT_MIN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"}],\"name\":\"adjustRisk\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"applications\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"applicationCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"name\":\"applyForPolicy\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"calculatePayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"}],\"name\":\"calculatePayoutPercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutPercentage\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremium\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremium\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"}],\"name\":\"createRisk\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApplicationDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"applicationIdx\",\"type\":\"uint256\"}],\"name\":\"getApplicationId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayoutDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPercentageMultiplier\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"multiplier\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"policyIdx\",\"type\":\"uint256\"}],\"name\":\"getPolicyId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"name\":\"getRisk\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"requestTriggered\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"responseAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct AyiiProduct.Risk\",\"name\":\"risk\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"}],\"name\":\"getRiskId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getRiskId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"responseData\",\"type\":\"bytes\"}],\"name\":\"oracleCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"name\":\"policies\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"policyCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"batchSize\",\"type\":\"uint256\"}],\"name\":\"processPoliciesForRisk\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"processedPolicies\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"processPolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"riskPoolCapacityCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"risks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"triggerOracle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/AyiiProduct.sol\":\"AyiiProduct\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Product.sol\":{\"keccak256\":\"0xdf55ff9638da4db1501362fc2ffcd26858b7c09b7cc5e0701f1bb31081142815\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fdbfbd830dafe0d721150778469cbbdf01058f8713c3636d2ba48234761e8590\",\"dweb:/ipfs/QmZ9K5X2ant5TtUhA9kgXUAMe7y9MUHpnv3PQUKAmxwVYj\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/examples/AyiiProduct.sol\":{\"keccak256\":\"0x0f7184b5daa0932ec44d53e83e961027504a6b40c3731074c3cafcc1f6f26fdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5ce8cd2c38ce88e721aa1d80646612f29263945dfd5c54c8e2ebfd01d68b4a1\",\"dweb:/ipfs/QmcRWz1dusXD1Jh8qhbQchbpSCmV1N1EZxyJuM3mmBUAhc\"]},\"contracts/modules/AccessController.sol\":{\"keccak256\":\"0xc8293dfdc5c092e2fcea16d8a68117c9367dd09b3d951b5e730a588652212928\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://91e551839506ea79fadff0e2ea72c033c5d68d61a8414301307a172dc770f885\",\"dweb:/ipfs/QmWibGimWPLxXgNcpKUPidyTTBqvyjdV2dnQfNGfWMDgJ8\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]}},\"version\":1}"}},"contracts/examples/AyiiRiskpool.sol":{"AyiiRiskpool":{"abi":[{"inputs":[{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"uint256","name":"collateralization","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"activeBundles","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"LogBasicRiskpoolBundlesAndPolicies","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogBasicRiskpoolCandidateBundleAmountCheck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isMatching","type":"bool"}],"name":"LogRiskpoolBundleMatchesPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isSecured","type":"bool"}],"name":"LogRiskpoolCollateralLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolAddress","type":"address"}],"name":"LogRiskpoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_FILTER_DATA_STRUCTURE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FULL_COLLATERALIZATION_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INVESTOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUM_OF_SUM_INSURED_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"},{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"name":"bundleMatchesApplication","outputs":[{"internalType":"bool","name":"isMatching","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialAmount","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapital","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getErc20Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFilterDataStructure","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSumOfSumInsuredCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"grantInvestorRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3738:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"239:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"214:24:103"},"nodeType":"YulFunctionCall","src":"214:31:103"},"nodeType":"YulExpressionStatement","src":"214:31:103"},{"nodeType":"YulAssignment","src":"254:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"264:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"254:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:261:103"},{"body":{"nodeType":"YulBlock","src":"429:504:103","statements":[{"body":{"nodeType":"YulBlock","src":"476:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"485:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"493:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"478:6:103"},"nodeType":"YulFunctionCall","src":"478:22:103"},"nodeType":"YulExpressionStatement","src":"478:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"450:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"459:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"446:3:103"},"nodeType":"YulFunctionCall","src":"446:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"471:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"442:3:103"},"nodeType":"YulFunctionCall","src":"442:33:103"},"nodeType":"YulIf","src":"439:2:103"},{"nodeType":"YulAssignment","src":"511:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"527:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"521:5:103"},"nodeType":"YulFunctionCall","src":"521:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"511:6:103"}]},{"nodeType":"YulAssignment","src":"546:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"566:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"577:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"562:3:103"},"nodeType":"YulFunctionCall","src":"562:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"556:5:103"},"nodeType":"YulFunctionCall","src":"556:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"546:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"590:38:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"613:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"624:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"609:3:103"},"nodeType":"YulFunctionCall","src":"609:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"603:5:103"},"nodeType":"YulFunctionCall","src":"603:25:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"594:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"662:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"637:24:103"},"nodeType":"YulFunctionCall","src":"637:31:103"},"nodeType":"YulExpressionStatement","src":"637:31:103"},{"nodeType":"YulAssignment","src":"677:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"687:5:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"677:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"701:40:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"726:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"737:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"722:3:103"},"nodeType":"YulFunctionCall","src":"722:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"716:5:103"},"nodeType":"YulFunctionCall","src":"716:25:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"705:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"775:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"750:24:103"},"nodeType":"YulFunctionCall","src":"750:33:103"},"nodeType":"YulExpressionStatement","src":"750:33:103"},{"nodeType":"YulAssignment","src":"792:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"802:7:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"792:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"818:41:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"839:3:103"},"nodeType":"YulFunctionCall","src":"839:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"833:5:103"},"nodeType":"YulFunctionCall","src":"833:26:103"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"822:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"893:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"868:24:103"},"nodeType":"YulFunctionCall","src":"868:33:103"},"nodeType":"YulExpressionStatement","src":"868:33:103"},{"nodeType":"YulAssignment","src":"910:17:103","value":{"name":"value_2","nodeType":"YulIdentifier","src":"920:7:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"910:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"363:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"374:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"386:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"394:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"402:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"410:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"418:6:103","type":""}],"src":"280:653:103"},{"body":{"nodeType":"YulBlock","src":"1040:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1086:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1095:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1103:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1088:6:103"},"nodeType":"YulFunctionCall","src":"1088:22:103"},"nodeType":"YulExpressionStatement","src":"1088:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1061:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1070:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1057:3:103"},"nodeType":"YulFunctionCall","src":"1057:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1082:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1053:3:103"},"nodeType":"YulFunctionCall","src":"1053:32:103"},"nodeType":"YulIf","src":"1050:2:103"},{"nodeType":"YulVariableDeclaration","src":"1121:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1140:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1134:5:103"},"nodeType":"YulFunctionCall","src":"1134:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1125:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1184:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1159:24:103"},"nodeType":"YulFunctionCall","src":"1159:31:103"},"nodeType":"YulExpressionStatement","src":"1159:31:103"},{"nodeType":"YulAssignment","src":"1199:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1209:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1199:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IBundleToken_$6825_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1006:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1017:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1029:6:103","type":""}],"src":"938:282:103"},{"body":{"nodeType":"YulBlock","src":"1326:76:103","statements":[{"nodeType":"YulAssignment","src":"1336:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1348:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1359:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1344:3:103"},"nodeType":"YulFunctionCall","src":"1344:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1336:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1378:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1389:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1371:6:103"},"nodeType":"YulFunctionCall","src":"1371:25:103"},"nodeType":"YulExpressionStatement","src":"1371:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1295:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1306:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1317:4:103","type":""}],"src":"1225:177:103"},{"body":{"nodeType":"YulBlock","src":"1608:415:103","statements":[{"nodeType":"YulAssignment","src":"1618:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1630:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1641:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1626:3:103"},"nodeType":"YulFunctionCall","src":"1626:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1618:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1661:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1672:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1654:6:103"},"nodeType":"YulFunctionCall","src":"1654:25:103"},"nodeType":"YulExpressionStatement","src":"1654:25:103"},{"body":{"nodeType":"YulBlock","src":"1721:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1742:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1749:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1754:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1745:3:103"},"nodeType":"YulFunctionCall","src":"1745:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1735:6:103"},"nodeType":"YulFunctionCall","src":"1735:31:103"},"nodeType":"YulExpressionStatement","src":"1735:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1786:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1789:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1779:6:103"},"nodeType":"YulFunctionCall","src":"1779:15:103"},"nodeType":"YulExpressionStatement","src":"1779:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1814:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1817:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1807:6:103"},"nodeType":"YulFunctionCall","src":"1807:15:103"},"nodeType":"YulExpressionStatement","src":"1807:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1701:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1709:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1698:2:103"},"nodeType":"YulFunctionCall","src":"1698:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1691:6:103"},"nodeType":"YulFunctionCall","src":"1691:21:103"},"nodeType":"YulIf","src":"1688:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1852:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1863:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1848:3:103"},"nodeType":"YulFunctionCall","src":"1848:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1868:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1841:6:103"},"nodeType":"YulFunctionCall","src":"1841:34:103"},"nodeType":"YulExpressionStatement","src":"1841:34:103"},{"nodeType":"YulVariableDeclaration","src":"1884:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1902:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1907:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1898:3:103"},"nodeType":"YulFunctionCall","src":"1898:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1911:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1894:3:103"},"nodeType":"YulFunctionCall","src":"1894:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1888:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1933:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1944:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1929:3:103"},"nodeType":"YulFunctionCall","src":"1929:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1953:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1961:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1949:3:103"},"nodeType":"YulFunctionCall","src":"1949:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1922:6:103"},"nodeType":"YulFunctionCall","src":"1922:43:103"},"nodeType":"YulExpressionStatement","src":"1922:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1996:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1981:3:103"},"nodeType":"YulFunctionCall","src":"1981:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2005:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2013:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2001:3:103"},"nodeType":"YulFunctionCall","src":"2001:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1974:6:103"},"nodeType":"YulFunctionCall","src":"1974:43:103"},"nodeType":"YulExpressionStatement","src":"1974:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1553:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1564:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1572:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1580:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1588:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1599:4:103","type":""}],"src":"1407:616:103"},{"body":{"nodeType":"YulBlock","src":"2202:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2219:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2230:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2212:6:103"},"nodeType":"YulFunctionCall","src":"2212:21:103"},"nodeType":"YulExpressionStatement","src":"2212:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2253:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2264:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2249:3:103"},"nodeType":"YulFunctionCall","src":"2249:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2242:6:103"},"nodeType":"YulFunctionCall","src":"2242:30:103"},"nodeType":"YulExpressionStatement","src":"2242:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2303:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2288:3:103"},"nodeType":"YulFunctionCall","src":"2288:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2308:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2281:6:103"},"nodeType":"YulFunctionCall","src":"2281:62:103"},"nodeType":"YulExpressionStatement","src":"2281:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2363:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2374:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2359:3:103"},"nodeType":"YulFunctionCall","src":"2359:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2379:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2352:6:103"},"nodeType":"YulFunctionCall","src":"2352:33:103"},"nodeType":"YulExpressionStatement","src":"2352:33:103"},{"nodeType":"YulAssignment","src":"2394:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2406:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2417:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:103"},"nodeType":"YulFunctionCall","src":"2402:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2394:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2179:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2193:4:103","type":""}],"src":"2028:399:103"},{"body":{"nodeType":"YulBlock","src":"2606:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2623:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2634:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2616:6:103"},"nodeType":"YulFunctionCall","src":"2616:21:103"},"nodeType":"YulExpressionStatement","src":"2616:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2657:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2668:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2653:3:103"},"nodeType":"YulFunctionCall","src":"2653:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2673:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2646:6:103"},"nodeType":"YulFunctionCall","src":"2646:30:103"},"nodeType":"YulExpressionStatement","src":"2646:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2696:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2707:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2692:3:103"},"nodeType":"YulFunctionCall","src":"2692:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2712:34:103","type":"","value":"ERROR:RPL-003:ERC20_ADDRESS_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2685:6:103"},"nodeType":"YulFunctionCall","src":"2685:62:103"},"nodeType":"YulExpressionStatement","src":"2685:62:103"},{"nodeType":"YulAssignment","src":"2756:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2779:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2764:3:103"},"nodeType":"YulFunctionCall","src":"2764:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2756:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2583:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2597:4:103","type":""}],"src":"2432:356:103"},{"body":{"nodeType":"YulBlock","src":"2967:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2984:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2995:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2977:6:103"},"nodeType":"YulFunctionCall","src":"2977:21:103"},"nodeType":"YulExpressionStatement","src":"2977:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3018:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3029:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3014:3:103"},"nodeType":"YulFunctionCall","src":"3014:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3034:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3007:6:103"},"nodeType":"YulFunctionCall","src":"3007:30:103"},"nodeType":"YulExpressionStatement","src":"3007:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3068:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3053:3:103"},"nodeType":"YulFunctionCall","src":"3053:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3073:34:103","type":"","value":"ERROR:RPL-004:WALLET_ADDRESS_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3046:6:103"},"nodeType":"YulFunctionCall","src":"3046:62:103"},"nodeType":"YulExpressionStatement","src":"3046:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3128:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3139:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3124:3:103"},"nodeType":"YulFunctionCall","src":"3124:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3144:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3117:6:103"},"nodeType":"YulFunctionCall","src":"3117:31:103"},"nodeType":"YulExpressionStatement","src":"3117:31:103"},{"nodeType":"YulAssignment","src":"3157:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3180:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3165:3:103"},"nodeType":"YulFunctionCall","src":"3165:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3157:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2944:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2958:4:103","type":""}],"src":"2793:397:103"},{"body":{"nodeType":"YulBlock","src":"3369:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3397:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3379:6:103"},"nodeType":"YulFunctionCall","src":"3379:21:103"},"nodeType":"YulExpressionStatement","src":"3379:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3431:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3416:3:103"},"nodeType":"YulFunctionCall","src":"3416:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3436:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3409:6:103"},"nodeType":"YulFunctionCall","src":"3409:30:103"},"nodeType":"YulExpressionStatement","src":"3409:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3470:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3455:3:103"},"nodeType":"YulFunctionCall","src":"3455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3475:34:103","type":"","value":"ERROR:RPL-002:SUM_OF_SUM_INSURED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3448:6:103"},"nodeType":"YulFunctionCall","src":"3448:62:103"},"nodeType":"YulExpressionStatement","src":"3448:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3541:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3526:3:103"},"nodeType":"YulFunctionCall","src":"3526:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3546:11:103","type":"","value":"_CAP_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3519:6:103"},"nodeType":"YulFunctionCall","src":"3519:39:103"},"nodeType":"YulExpressionStatement","src":"3519:39:103"},{"nodeType":"YulAssignment","src":"3567:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3579:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3590:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3575:3:103"},"nodeType":"YulFunctionCall","src":"3575:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3567:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3346:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3360:4:103","type":""}],"src":"3195:405:103"},{"body":{"nodeType":"YulBlock","src":"3650:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"3714:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3723:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3726:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3716:6:103"},"nodeType":"YulFunctionCall","src":"3716:12:103"},"nodeType":"YulExpressionStatement","src":"3716:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3673:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3684:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3699:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3704:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3695:3:103"},"nodeType":"YulFunctionCall","src":"3695:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3708:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3691:3:103"},"nodeType":"YulFunctionCall","src":"3691:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3680:3:103"},"nodeType":"YulFunctionCall","src":"3680:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3670:2:103"},"nodeType":"YulFunctionCall","src":"3670:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3663:6:103"},"nodeType":"YulFunctionCall","src":"3663:50:103"},"nodeType":"YulIf","src":"3660:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3639:5:103","type":""}],"src":"3605:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256t_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n let value := mload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n let value_1 := mload(add(headStart, 96))\n validator_revert_address(value_1)\n value3 := value_1\n let value_2 := mload(add(headStart, 128))\n validator_revert_address(value_2)\n value4 := value_2\n }\n function abi_decode_tuple_t_contract$_IBundleToken_$6825_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPL-004:WALLET_ADDRESS_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:RPL-002:SUM_OF_SUM_INSURED\")\n mstore(add(headStart, 96), \"_CAP_ZERO\")\n tail := add(headStart, 128)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526011805463ffffffff191690553480156200001e57600080fd5b5060405162003911380380620039118339810160408190526200004191620006b2565b848469d3c21bcecceda10000008585858585858585858560028262000066336200049a565b6001600160a01b038116620000ce5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000f8620004ea565b600480546001600160a01b0319166001600160a01b03929092169190911790556200012262000505565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014c62000532565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019f57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001f392909160ff82169130916101009091046001600160a01b03169062000719565b60405180910390a1505050600d85905583620002645760405162461bcd60e51b815260206004820152602960248201527f4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b6064820152608401620000c5565b600e8490556001600160a01b038316620002c15760405162461bcd60e51b815260206004820181905260248201527f4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f6044820152606401620000c5565b600c80546001600160a01b0319166001600160a01b038581169190911790915582166200033b5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401620000c5565b600b80546001600160a01b0319166001600160a01b038416179055620003736e496e7374616e63655365727669636560881b6200054c565b600780546001600160a01b0319166001600160a01b0392909216919091179055620003b06e5269736b706f6f6c5365727669636560881b6200054c565b600880546001600160a01b0319166001600160a01b0392831617905560075460408051633acd5e0f60e21b81529051919092169163eb35783c916004808301926020929190829003018186803b1580156200040a57600080fd5b505afa1580156200041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044591906200068c565b600980546001600160a01b0319166001600160a01b0392909216919091179055506200048b9a506000995062000485985062000496975050505050505050565b620005d8565b50505050506200077d565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620005006541636365737360d01b6200054c565b905090565b6000620005007f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200054c565b6000620005006e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200059757600080fd5b505afa158015620005ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d291906200068c565b92915050565b620005e48282620005e8565b5050565b60008281526012602090815260408083206001600160a01b038516845290915290205460ff16620005e45760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620006483390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000602082840312156200069e578081fd5b8151620006ab8162000764565b9392505050565b600080600080600060a08688031215620006ca578081fd5b85519450602086015193506040860151620006e58162000764565b6060870151909350620006f88162000764565b60808701519092506200070b8162000764565b809150509295509295909350565b84815260808101600385106200073f57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6001600160a01b03811681146200077a57600080fd5b50565b613184806200078d6000396000f3fe608060405234801561001057600080fd5b50600436106103af5760003560e01c80637893c7bc116101f4578063a217fddf1161011a578063d0e0ba95116100ad578063e0815f0d1161007c578063e0815f0d14610735578063f1d354d01461073d578063f2fde38b1461074b578063feb1824b1461075e576103af565b8063d0e0ba9514610707578063d547741f1461071a578063d73cd99214610462578063e00323831461072d576103af565b8063be169e7e116100e9578063be169e7e146106d3578063be61e91e146106db578063c3004c86146106ec578063c40000d4146106ff576103af565b8063a217fddf146106c3578063b26025aa146106cb578063b3fca9bd14610462578063bd1fe5d014610462576103af565b80638c483e5a116101925780639a82f890116101615780639a82f890146106a0578063a17030d5146106a8578063a18aa128146106bb578063a18f5ae214610462576103af565b80638c483e5a146106565780638da5cb5b146106695780639088c1191461067a57806391d148541461068d576103af565b806386c71288116101ce57806386c712881461061257806389002da514610628578063890fbf781461063b578063893d20e81461064e576103af565b80637893c7bc146105e15780637f3b6980146105f757806382558906146105ff576103af565b80633629c3c4116102d957806359dacc6a11610277578063652028e511610246578063652028e51461058c578063715018a61461059f57806376082a5e146105a75780637888a2ff146105ce576103af565b806359dacc6a146104625780635ab1bd53146105655780635d1ca6311461057c578063638ce0ba14610584576103af565b80634101b90c116102b35780634101b90c1461053357806345fe1c6d1461053b57806354afef631461054a578063587e59d014610552576103af565b80633629c3c4146104f057806336568abe146105035780633dcdde1714610516576103af565b80631865c57d116103515780632d0821b7116103205780632d0821b7146104975780632f2ff15d146104b7578063316c5348146104ca57806336153f3a146104dd576103af565b80631865c57d1461044d5780631b867c6314610462578063248a9ca31461046c578063258d560c1461048f576103af565b8063132996041161038d578063132996041461040557806315dae03e1461042a57806317d7de7c1461043d57806318442e6314610445576103af565b806301ffc9a7146103b45780630676cb0e146103dc57806312065fe0146103fd575b600080fd5b6103c76103c2366004612a20565b61076f565b60405190151581526020015b60405180910390f35b6103ef6103ea3660046129b8565b6107a8565b6040519081526020016103d3565b6103ef610922565b600b546001600160a01b03165b6040516001600160a01b0390911681526020016103d3565b60035460ff166040516103d39190612e3e565b6001546103ef565b600a546103ef565b6104556109b2565b6040516103d39190612e24565b61046a610a38565b005b6103ef61047a3660046129b8565b60009081526012602052604090206001015490565b6103c7610a7f565b6104aa6104a53660046129b8565b610aaf565b6040516103d39190612f0a565b61046a6104c53660046129d0565b610bc4565b61046a6104d83660046129b8565b610bee565b6103ef6104eb3660046129ff565b610d8f565b61046a6104fe3660046129ff565b610f5b565b61046a6105113660046129d0565b610fe3565b6040805160208101909152600081525b6040516103d39190612e52565b6103ef611061565b6103ef670de0b6b3a764000081565b600d546103ef565b61046a6105603660046129b8565b61109f565b61041260035461010090046001600160a01b031690565b6002546103ef565b61046a61120c565b61046a61059a3660046129b8565b611259565b61046a6112d6565b6103ef7f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93581565b6103ef6105dc366004612a48565b6112e8565b6105266040518060200160405280600081525081565b6103ef611326565b61046a61060d3660046129ff565b611364565b6103c7610620366004612c29565b506001919050565b6103ef6106363660046129ff565b6113e4565b6103c76106493660046129ff565b611558565b6104126115ef565b61046a6106643660046129b8565b611601565b6000546001600160a01b0316610412565b61046a610688366004612980565b61176e565b6103c761069b3660046129d0565b6117a3565b6103c76117ce565b61046a6106b63660046129b8565b6117d6565b600e546103ef565b6103ef600081565b6103ef611943565b61046a611981565b6103ef69d3c21bcecceda100000081565b61046a6106fa3660046129b8565b6119ce565b6103ef611a52565b61046a6107153660046129b8565b611a90565b61046a6107283660046129d0565b611ada565b6103ef611aff565b6103c7611b3c565b670de0b6b3a76400006103ef565b61046a610759366004612980565b611b45565b600c546001600160a01b0316610412565b60006001600160e01b03198216637965db0b60e01b14806107a057506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b6000806107b460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190612d23565b83106108985760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190612d23565b9392505050565b60008061092e60025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190612d23565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156109fb57600080fd5b505afa158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190612a8b565b905090565b610a4d6810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614610a7d5760405162461bcd60e51b815260040161088f90612e65565b565b600060025b60035460ff166002811115610aa957634e487b7160e01b600052602160045260246000fd5b14905090565b610ab76127de565b600a548210610b145760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b606482015260840161088f565b6000600a8381548110610b3757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b158015610b8857600080fd5b505afa158015610b9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091b9190810190612b55565b600082815260126020526040902060010154610bdf81611c3d565b610be98383611c47565b505050565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3757600080fd5b505afa158015610c4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c739190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610cb09160040190815260200190565b60206040518083038186803b158015610cc857600080fd5b505afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d00919061299c565b9050336001600160a01b03821614610d2a5760405162461bcd60e51b815260040161088f90612e9c565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e149190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610e519160040190815260200190565b60206040518083038186803b158015610e6957600080fd5b505afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061299c565b9050336001600160a01b03821614610ecb5760405162461bcd60e51b815260040161088f90612e9c565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610f1957600080fd5b505af1158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f519190612d23565b9695505050505050565b610f6b63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614610f9b5760405162461bcd60e51b815260040161088f90612ed3565b610fa58282611ccd565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b6001600160a01b03811633146110535760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161088f565b61105d8282611d4f565b5050565b60008061106d60025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240161095c565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156110e857600080fd5b505afa1580156110fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111249190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916111619160040190815260200190565b60206040518083038186803b15801561117957600080fd5b505afa15801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b1919061299c565b9050336001600160a01b038216146111db5760405162461bcd60e51b815260040161088f90612e9c565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610d57565b6112216810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146112515760405162461bcd60e51b815260040161088f90612e65565b610a7d611db6565b611261611e37565b600061126c60025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050505050565b6112de611e37565b610a7d6000611e91565b60007f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93561131481611c3d565b61131e8484611ee1565b949350505050565b60008061133260025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db328449060240161095c565b61137463141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b0316146113a45760405162461bcd60e51b815260040161088f90612ed3565b6113ae8282611fe4565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610fd7565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b15801561142d57600080fd5b505afa158015611441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114699190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916114a69160040190815260200190565b60206040518083038186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f6919061299c565b9050336001600160a01b038216146115205760405162461bcd60e51b815260040161088f90612e9c565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610eff565b600061156a63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b03161461159a5760405162461bcd60e51b815260040161088f90612ed3565b6115a48383612033565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610a33565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561164a57600080fd5b505afa15801561165e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116869190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116c39160040190815260200190565b60206040518083038186803b1580156116db57600080fd5b505afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061299c565b9050336001600160a01b0382161461173d5760405162461bcd60e51b815260040161088f90612e9c565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610d57565b611776611e37565b6117a07f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93582612436565b50565b60009182526012602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080610a84565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261185b9190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916118989160040190815260200190565b60206040518083038186803b1580156118b057600080fd5b505afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e8919061299c565b9050336001600160a01b038216146119125760405162461bcd60e51b815260040161088f90612e9c565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610d57565b60008061194f60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d92359060240161095c565b6119966810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146119c65760405162461bcd60e51b815260040161088f90612e65565b610a7d612440565b6119de63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614611a0e5760405162461bcd60e51b815260040161088f90612ed3565b6000611a1982612528565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610fd7565b600080611a5e60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f9060240161095c565b611aa56810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614611ad55760405162461bcd60e51b815260040161088f90612e65565b600255565b600082815260126020526040902060010154611af581611c3d565b610be98383611d4f565b600080611b0b60025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b03169063295609809060240161095c565b60006001610a84565b611b4d611e37565b6001600160a01b038116611bb25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088f565b6117a081611e91565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c0557600080fd5b505afa158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a0919061299c565b6117a08133612598565b611c5182826117a3565b61105d5760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611c893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611d3257600080fd5b505af1158015611d46573d6000803e3d6000fd5b50505050505050565b611d5982826117a3565b1561105d5760008281526012602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e7490611f1a90849088908890600401612df0565b602060405180830381600087803b158015611f3457600080fd5b505af1158015611f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6c9190612d23565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611d18565b60008061203e611061565b9050600061204a611aff565b90506000612056611943565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a1600083116120eb5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c455300604482015260640161088f565b80821161213a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c000000604482015260640161088f565b6121448582612ffa565b821061242d57600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561218f57600080fd5b505afa1580156121a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121cb9190810190612aaa565b6011549091506000906121e590869063ffffffff166130ca565b905060005b85811080156121f7575086155b15612429576000612207836107a8565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561225157600080fd5b505afa158015612265573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261228d9190810190612b55565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a180156124135760008260c001518360a001516122ec9190613031565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b81106123f857600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b15801561239257600080fd5b505af11580156123a6573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff169250906123d4836130a6565b91906101000a81548163ffffffff021916908363ffffffff16021790555050612411565b89612404876001612ffa565b61240e91906130ca565b95505b505b50505080806124219061308b565b9150506121ea565b5050505b50505092915050565b61105d8282611c47565b600061244b60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561249057600080fd5b505afa1580156124a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c89190612d23565b156117a05760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b606482015260840161088f565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561258457600080fd5b505af11580156108f7573d6000803e3d6000fd5b6125a282826117a3565b61105d576125ba816001600160a01b031660146125fc565b6125c58360206125fc565b6040516020016125d6929190612d7b565b60408051601f198184030181529082905262461bcd60e51b825261088f91600401612e52565b6060600061260b836002613012565b612616906002612ffa565b67ffffffffffffffff81111561263c57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612666576020820181803683370190505b509050600360fc1b8160008151811061268f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126cc57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006126f0846002613012565b6126fb906001612ffa565b90505b600181111561278f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061273d57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061276157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361278881613074565b90506126fe565b50831561091b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161088f565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561282057634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612860578081fd5b813561287361286e82612fd2565b612fa1565b818152846020838601011115612887578283fd5b816020850160208301379081016020019190915292915050565b600082601f8301126128b1578081fd5b81516128bf61286e82612fd2565b8181528460208386010111156128d3578283fd5b61131e826020830160208701613048565b80356107a381613141565b80516107a381613141565b600060c0828403121561290b578081fd5b61291560c0612fa1565b9050813561292281613141565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561295457600080fd5b61296084828501612850565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612991578081fd5b813561091b8161312c565b6000602082840312156129ad578081fd5b815161091b8161312c565b6000602082840312156129c9578081fd5b5035919050565b600080604083850312156129e2578081fd5b8235915060208301356129f48161312c565b809150509250929050565b60008060408385031215612a11578182fd5b50508035926020909101359150565b600060208284031215612a31578081fd5b81356001600160e01b03198116811461091b578182fd5b60008060408385031215612a5a578182fd5b823567ffffffffffffffff811115612a70578283fd5b612a7c85828601612850565b95602094909401359450505050565b600060208284031215612a9c578081fd5b81516007811061091b578182fd5b600060208284031215612abb578081fd5b815167ffffffffffffffff80821115612ad2578283fd5b9083019060c08286031215612ae5578283fd5b612aef60c0612fa1565b8251612afa81613141565b808252506020830151602082015260408301516040820152606083015182811115612b23578485fd5b612b2f878286016128a1565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612b66578081fd5b815167ffffffffffffffff80821115612b7d578283fd5b8184019150610140808387031215612b93578384fd5b612b9c81612fa1565b9050825181526020830151602082015260408301516040820152612bc2606084016128ef565b6060820152608083015182811115612bd8578485fd5b612be4878286016128a1565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60008060408385031215612c3b578182fd5b823567ffffffffffffffff80821115612c52578384fd5b8185019150610140808388031215612c68578485fd5b612c7181612fa1565b9050823581526020830135602082015260408301356040820152612c97606084016128e4565b6060820152608083013582811115612cad578586fd5b612cb988828601612850565b60808301525060a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250809450506020850135915080821115612d0c578283fd5b50612d19858286016128fa565b9150509250929050565b600060208284031215612d34578081fd5b5051919050565b60008151808452612d53816020860160208601613048565b601f01601f19169290920160200192915050565b60048110612d7757612d77613100565b9052565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612db3816017850160208801613048565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612de4816028840160208801613048565b01602801949350505050565b6001600160a01b0384168152606060208201819052600090612e1490830185612d3b565b9050826040830152949350505050565b6020810160078310612e3857612e38613100565b91905290565b6020810160038310612e3857612e38613100565b60006020825261091b6020830184612d3b565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612f3d6080840182612d67565b5060808301516101408060a0850152612f5a610160850183612d3b565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612fca57612fca613116565b604052919050565b600067ffffffffffffffff821115612fec57612fec613116565b50601f01601f191660200190565b6000821982111561300d5761300d6130ea565b500190565b600081600019048311821515161561302c5761302c6130ea565b500290565b600082821015613043576130436130ea565b500390565b60005b8381101561306357818101518382015260200161304b565b83811115611e315750506000910152565b600081613083576130836130ea565b506000190190565b600060001982141561309f5761309f6130ea565b5060010190565b600063ffffffff808316818114156130c0576130c06130ea565b6001019392505050565b6000826130e557634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146117a057600080fd5b600481106117a057600080fdfea26469706673582212209e8ff8b71639b58bff88d3c17bb55e56c77f9b7258fc689f49deade934a4a8be64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x11 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3911 CODESIZE SUB DUP1 PUSH3 0x3911 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x41 SWAP2 PUSH3 0x6B2 JUMP JUMPDEST DUP5 DUP5 PUSH10 0xD3C21BCECCEDA1000000 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH1 0x2 DUP3 PUSH3 0x66 CALLER PUSH3 0x49A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xF8 PUSH3 0x4EA JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x122 PUSH3 0x505 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x14C PUSH3 0x532 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x19F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1F3 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x719 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP PUSH1 0xD DUP6 SWAP1 SSTORE DUP4 PUSH3 0x264 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030323A53554D5F4F465F53554D5F494E5355524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F4341505F5A45524F PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xE DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH3 0x2C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030333A45524332305F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP3 AND PUSH3 0x33B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030343A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE PUSH3 0x373 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL PUSH3 0x54C JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x3B0 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH3 0x54C JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3ACD5E0F PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xEB35783C SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x41F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x445 SWAP2 SWAP1 PUSH3 0x68C JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x48B SWAP11 POP PUSH1 0x0 SWAP10 POP PUSH3 0x485 SWAP9 POP PUSH3 0x496 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH3 0x5D8 JUMP JUMPDEST POP POP POP POP POP PUSH3 0x77D JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x500 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x54C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x500 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x54C JUMP JUMPDEST PUSH1 0x0 PUSH3 0x500 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x5AC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x5D2 SWAP2 SWAP1 PUSH3 0x68C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x5E4 DUP3 DUP3 PUSH3 0x5E8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x5E4 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x648 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x69E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x6AB DUP2 PUSH3 0x764 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x6CA JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 MLOAD SWAP5 POP PUSH1 0x20 DUP7 ADD MLOAD SWAP4 POP PUSH1 0x40 DUP7 ADD MLOAD PUSH3 0x6E5 DUP2 PUSH3 0x764 JUMP JUMPDEST PUSH1 0x60 DUP8 ADD MLOAD SWAP1 SWAP4 POP PUSH3 0x6F8 DUP2 PUSH3 0x764 JUMP JUMPDEST PUSH1 0x80 DUP8 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x70B DUP2 PUSH3 0x764 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x73F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x77A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3184 DUP1 PUSH3 0x78D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3AF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7893C7BC GT PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xD0E0BA95 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x735 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x73D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x74B JUMPI DUP1 PUSH4 0xFEB1824B EQ PUSH2 0x75E JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x71A JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xE0032383 EQ PUSH2 0x72D JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xBE169E7E GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x6D3 JUMPI DUP1 PUSH4 0xBE61E91E EQ PUSH2 0x6DB JUMPI DUP1 PUSH4 0xC3004C86 EQ PUSH2 0x6EC JUMPI DUP1 PUSH4 0xC40000D4 EQ PUSH2 0x6FF JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x6C3 JUMPI DUP1 PUSH4 0xB26025AA EQ PUSH2 0x6CB JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x462 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x9A82F890 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x6A8 JUMPI DUP1 PUSH4 0xA18AA128 EQ PUSH2 0x6BB JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x462 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x656 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x669 JUMPI DUP1 PUSH4 0x9088C119 EQ PUSH2 0x67A JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x68D JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x86C71288 GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x86C71288 EQ PUSH2 0x612 JUMPI DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x628 JUMPI DUP1 PUSH4 0x890FBF78 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x64E JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x7893C7BC EQ PUSH2 0x5E1 JUMPI DUP1 PUSH4 0x7F3B6980 EQ PUSH2 0x5F7 JUMPI DUP1 PUSH4 0x82558906 EQ PUSH2 0x5FF JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x3629C3C4 GT PUSH2 0x2D9 JUMPI DUP1 PUSH4 0x59DACC6A GT PUSH2 0x277 JUMPI DUP1 PUSH4 0x652028E5 GT PUSH2 0x246 JUMPI DUP1 PUSH4 0x652028E5 EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0x76082A5E EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0x7888A2FF EQ PUSH2 0x5CE JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x565 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x584 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x4101B90C GT PUSH2 0x2B3 JUMPI DUP1 PUSH4 0x4101B90C EQ PUSH2 0x533 JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0x54AFEF63 EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x552 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x3629C3C4 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x503 JUMPI DUP1 PUSH4 0x3DCDDE17 EQ PUSH2 0x516 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1865C57D GT PUSH2 0x351 JUMPI DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x320 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x4B7 JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x4DD JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1865C57D EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x46C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x48F JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x13299604 GT PUSH2 0x38D JUMPI DUP1 PUSH4 0x13299604 EQ PUSH2 0x405 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x42A JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x43D JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x445 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0x676CB0E EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x3FD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C7 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A20 JUMP JUMPDEST PUSH2 0x76F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EF PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x922 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E3E JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x455 PUSH2 0x9B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E24 JUMP JUMPDEST PUSH2 0x46A PUSH2 0xA38 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3EF PUSH2 0x47A CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0xA7F JUMP JUMPDEST PUSH2 0x4AA PUSH2 0x4A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0xAAF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2F0A JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0xBC4 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0xBEE JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x4EB CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0xD8F JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0xF5B JUMP JUMPDEST PUSH2 0x46A PUSH2 0x511 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E52 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1061 JUMP JUMPDEST PUSH2 0x3EF PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x560 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x109F JUMP JUMPDEST PUSH2 0x412 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x120C JUMP JUMPDEST PUSH2 0x46A PUSH2 0x59A CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1259 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x12D6 JUMP JUMPDEST PUSH2 0x3EF PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x5DC CALLDATASIZE PUSH1 0x4 PUSH2 0x2A48 JUMP JUMPDEST PUSH2 0x12E8 JUMP JUMPDEST PUSH2 0x526 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1326 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x60D CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x1364 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x620 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C29 JUMP JUMPDEST POP PUSH1 0x1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x636 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x13E4 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x649 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x1558 JUMP JUMPDEST PUSH2 0x412 PUSH2 0x15EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x664 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1601 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x412 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x688 CALLDATASIZE PUSH1 0x4 PUSH2 0x2980 JUMP JUMPDEST PUSH2 0x176E JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x69B CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x17CE JUMP JUMPDEST PUSH2 0x46A PUSH2 0x6B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x3EF PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1943 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x3EF PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x6FA CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x19CE JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1A52 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x715 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1A90 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x728 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0x1ADA JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1AFF JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x1B3C JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x759 CALLDATASIZE PUSH1 0x4 PUSH2 0x2980 JUMP JUMPDEST PUSH2 0x1B45 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x412 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x7A0 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x7B4 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x80D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x831 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST DUP4 LT PUSH2 0x898 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030373A4143544956455F42554E444C455F494E4445 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x585F544F4F5F4C41524745 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x91B SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x92E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1E010439 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1E010439 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x974 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x988 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AC SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA33 SWAP2 SWAP1 PUSH2 0x2A8B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xA4D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x27DE JUMP JUMPDEST PUSH1 0xA SLOAD DUP3 LT PUSH2 0xB14 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030363A42554E444C455F494E4445585F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xB37 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x91B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xBDF DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0xBE9 DUP4 DUP4 PUSH2 0x1C47 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC73 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xCB0 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD00 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xD2A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62D8A69 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x316C5348 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD85 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xE14 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xE51 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE7D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEA1 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xECB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B0A9F9D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x36153F3A SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF51 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF6B PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0xFA5 DUP3 DUP3 PUSH2 0x1CCD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xD910A5091EEA39C3EFEED9891A9E2B4694BD064808F5B0A4DE415D70B313EC52 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x1053 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x105D DUP3 DUP3 PUSH2 0x1D4F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x106D PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1124 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1161 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x118D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11B1 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x11DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x587E59D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x587E59D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH2 0x1221 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1251 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0xA7D PUSH2 0x1DB6 JUMP JUMPDEST PUSH2 0x1261 PUSH2 0x1E37 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126C PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x12DE PUSH2 0x1E37 JUMP JUMPDEST PUSH2 0xA7D PUSH1 0x0 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 PUSH2 0x1314 DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0x131E DUP5 DUP5 PUSH2 0x1EE1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1332 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1374 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0x13AE DUP3 DUP3 PUSH2 0x1FE4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xEE37957C2D37326FA4E3897FC3947BBDBD8E1082639A302C1C206B4D1C5E695 SWAP2 ADD PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x142D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1441 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1469 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x14A6 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14F6 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1520 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89002DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x89002DA5 SWAP1 PUSH1 0x44 ADD PUSH2 0xEFF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x156A PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x159A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0x15A4 DUP4 DUP4 PUSH2 0x2033 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP3 ISZERO ISZERO DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9D0F25E972AD53428B0A94CD615FA731919562FA34769DF0F9C3EED71B0BD81E SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA33 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x164A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x165E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1686 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x16C3 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1713 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x173D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x46241F2D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8C483E5A SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH2 0x1776 PUSH2 0x1E37 JUMP JUMPDEST PUSH2 0x17A0 PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 DUP3 PUSH2 0x2436 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA84 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x181F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1833 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x185B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1898 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18E8 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA17030D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA17030D5 SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x194F PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F5D9235 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3F5D9235 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1996 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0xA7D PUSH2 0x2440 JUMP JUMPDEST PUSH2 0x19DE PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A0E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A19 DUP3 PUSH2 0x2528 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x22BF66455B4BF54C9548E2BB650543CFA753A53CAB13AF4020DDBFA76C231B0F SWAP2 ADD PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1A5E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBCD5349F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBCD5349F SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1AA5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1AD5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x1AF5 DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0xBE9 DUP4 DUP4 PUSH2 0x1D4F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1B0B PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH3 0x52AC13 PUSH1 0xE7 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x29560980 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0xA84 JUMP JUMPDEST PUSH2 0x1B4D PUSH2 0x1E37 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1BB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x17A0 DUP2 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C19 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7A0 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST PUSH2 0x17A0 DUP2 CALLER PUSH2 0x2598 JUMP JUMPDEST PUSH2 0x1C51 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x105D JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1C89 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D46 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D59 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST ISZERO PUSH2 0x105D JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH1 0xD SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x5F971AA3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x64 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0xBF2E3546 SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E31 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57F079D PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x15FC1E74 SWAP1 PUSH2 0x1F1A SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2DF0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F48 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F6C SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC65A7BB8D6351C1CF70C95A316CC6A92839C986682D98BC35F958F4883F9D2A8 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH32 0xD17D9DC3726BA31D9AF5D3A3425289766158A8EA95520E1C299CCBE4A2978B34 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x1D18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x203E PUSH2 0x1061 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x204A PUSH2 0x1AFF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2056 PUSH2 0x1943 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7296D1A54B2D02C3A2F8F0B83B688D6B8415618F2AB8C3D5F761DD678DCC4B29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 GT PUSH2 0x20EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030313A4E4F5F4143544956455F42554E444C455300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST DUP1 DUP3 GT PUSH2 0x213A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030323A4E4F5F465245455F4341504954414C000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x2144 DUP6 DUP3 PUSH2 0x2FFA JUMP JUMPDEST DUP3 LT PUSH2 0x242D JUMPI PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x21CB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AAA JUMP JUMPDEST PUSH1 0x11 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x21E5 SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x30CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT DUP1 ISZERO PUSH2 0x21F7 JUMPI POP DUP7 ISZERO JUMPDEST ISZERO PUSH2 0x2429 JUMPI PUSH1 0x0 PUSH2 0x2207 DUP4 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2265 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x228D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x4FB0F8B19E3CE187A133519BFF1FCBDF3DFBC1B55F8BC334A3DA5BCADBEEA2A7 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 ISZERO PUSH2 0x2413 JUMPI PUSH1 0x0 DUP3 PUSH1 0xC0 ADD MLOAD DUP4 PUSH1 0xA0 ADD MLOAD PUSH2 0x22EC SWAP2 SWAP1 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xE54EF564BEE7E49A6E78296E638947532DE075D47CD66E331104B4812756F119 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 DUP2 LT PUSH2 0x23F8 JUMPI PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP15 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP7 SWAP1 SSTORE PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 SWAP15 POP PUSH4 0xFFFFFFFF AND SWAP3 POP SWAP1 PUSH2 0x23D4 DUP4 PUSH2 0x30A6 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x2411 JUMP JUMPDEST DUP10 PUSH2 0x2404 DUP8 PUSH1 0x1 PUSH2 0x2FFA JUMP JUMPDEST PUSH2 0x240E SWAP2 SWAP1 PUSH2 0x30CA JUMP JUMPDEST SWAP6 POP JUMPDEST POP JUMPDEST POP POP POP DUP1 DUP1 PUSH2 0x2421 SWAP1 PUSH2 0x308B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x21EA JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x105D DUP3 DUP3 PUSH2 0x1C47 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x244B PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24C8 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST ISZERO PUSH2 0x17A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3031303A5249534B504F4F4C5F4841535F554E425552 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x4E545F42554E444C4553 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x25A2 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x105D JUMPI PUSH2 0x25BA DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x25FC JUMP JUMPDEST PUSH2 0x25C5 DUP4 PUSH1 0x20 PUSH2 0x25FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25D6 SWAP3 SWAP2 SWAP1 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x88F SWAP2 PUSH1 0x4 ADD PUSH2 0x2E52 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x260B DUP4 PUSH1 0x2 PUSH2 0x3012 JUMP JUMPDEST PUSH2 0x2616 SWAP1 PUSH1 0x2 PUSH2 0x2FFA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x263C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2666 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x268F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x26CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x26F0 DUP5 PUSH1 0x2 PUSH2 0x3012 JUMP JUMPDEST PUSH2 0x26FB SWAP1 PUSH1 0x1 PUSH2 0x2FFA JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x278F JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x273D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2761 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x2788 DUP2 PUSH2 0x3074 JUMP JUMPDEST SWAP1 POP PUSH2 0x26FE JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x91B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2820 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2860 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2873 PUSH2 0x286E DUP3 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x2FA1 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2887 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28B1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x28BF PUSH2 0x286E DUP3 PUSH2 0x2FD2 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x28D3 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x131E DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3048 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x7A3 DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x7A3 DUP2 PUSH2 0x3141 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x290B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2915 PUSH1 0xC0 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x2922 DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2954 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2960 DUP5 DUP3 DUP6 ADD PUSH2 0x2850 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2991 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91B DUP2 PUSH2 0x312C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x91B DUP2 PUSH2 0x312C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29C9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29E2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x29F4 DUP2 PUSH2 0x312C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A11 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A31 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x91B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A5A JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A70 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2A7C DUP6 DUP3 DUP7 ADD PUSH2 0x2850 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A9C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x91B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ABB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2AD2 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2AE5 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2AEF PUSH1 0xC0 PUSH2 0x2FA1 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2AFA DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2B23 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2B2F DUP8 DUP3 DUP7 ADD PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B66 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2B7D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2B93 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2B9C DUP2 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2BC2 PUSH1 0x60 DUP5 ADD PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BD8 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2BE4 DUP8 DUP3 DUP7 ADD PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C3B JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C52 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP9 SUB SLT ISZERO PUSH2 0x2C68 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2C71 DUP2 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2C97 PUSH1 0x60 DUP5 ADD PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x2CAD JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x2CB9 DUP9 DUP3 DUP7 ADD PUSH2 0x2850 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD CALLDATALOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D0C JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2D19 DUP6 DUP3 DUP7 ADD PUSH2 0x28FA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D34 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2D53 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3048 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x2D77 JUMPI PUSH2 0x2D77 PUSH2 0x3100 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x2DB3 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3048 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x2DE4 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3048 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2E14 SWAP1 DUP4 ADD DUP6 PUSH2 0x2D3B JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2E38 JUMPI PUSH2 0x2E38 PUSH2 0x3100 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x2E38 JUMPI PUSH2 0x2E38 PUSH2 0x3100 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x91B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F42554E444C455F4F574E45520000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030313A4143434553535F44454E4945440000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2F3D PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2D67 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2F5A PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2D3B JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2FCA JUMPI PUSH2 0x2FCA PUSH2 0x3116 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2FEC JUMPI PUSH2 0x2FEC PUSH2 0x3116 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x300D JUMPI PUSH2 0x300D PUSH2 0x30EA JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x302C JUMPI PUSH2 0x302C PUSH2 0x30EA JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3043 JUMPI PUSH2 0x3043 PUSH2 0x30EA JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3063 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x304B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1E31 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x3083 JUMPI PUSH2 0x3083 PUSH2 0x30EA JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x309F JUMPI PUSH2 0x309F PUSH2 0x30EA JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x30C0 JUMPI PUSH2 0x30C0 PUSH2 0x30EA JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x30E5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x17A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x17A0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 DUP16 0xF8 0xB7 AND CODECOPY 0xB5 DUP12 SELFDESTRUCT DUP9 0xD3 0xC1 PUSH28 0xB55E56C77F9B7258FC689F49DEADE934A4A8BE64736F6C6343000802 STOP CALLER ","sourceMap":"334:1416:68:-:0;;;769:35:11;;;-1:-1:-1;;769:35:11;;;699:331:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;881:4;887:17;684:6;930:10;942:6;950:8;881:4;887:17;684:6;930:10;942:6;950:8;881:4;1887:22:19;950:8:68;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;2230:2:103;1619:70:12::1;::::0;::::1;2212:21:103::0;2269:2;2249:18;;;2242:30;2308:34;2288:18;;;2281:62;-1:-1:-1;;;2359:18:103;;;2352:33;2402:19;;1619:70:12::1;;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;;;1938:18:19::1;:38:::0;;;1997:23;1989:77:::1;;;::::0;-1:-1:-1;;;1989:77:19;;3397:2:103;1989:77:19::1;::::0;::::1;3379:21:103::0;3436:2;3416:18;;;3409:30;3475:34;3455:18;;;3448:62;-1:-1:-1;;;3526:18:103;;;3519:39;3575:19;;1989:77:19::1;3369:231:103::0;1989:77:19::1;2077:19;:40:::0;;;-1:-1:-1;;;;;2138:24:19;::::1;2130:69;;;::::0;-1:-1:-1;;;2130:69:19;;2634:2:103;2130:69:19::1;::::0;::::1;2616:21:103::0;;;2653:18;;;2646:30;2712:34;2692:18;;;2685:62;2764:18;;2130:69:19::1;2606:182:103::0;2130:69:19::1;2210:11;:24:::0;;-1:-1:-1;;;;;;2210:24:19::1;-1:-1:-1::0;;;;;2210:24:19;;::::1;::::0;;;::::1;::::0;;;2255:20;::::1;2247:66;;;::::0;-1:-1:-1;;;2247:66:19;;2995:2:103;2247:66:19::1;::::0;::::1;2977:21:103::0;3034:2;3014:18;;;3007:30;3073:34;3053:18;;;3046:62;-1:-1:-1;;;3124:18:103;;;3117:31;3165:19;;2247:66:19::1;2967:223:103::0;2247:66:19::1;2324:7;:16:::0;;-1:-1:-1;;;;;;2324:16:19::1;-1:-1:-1::0;;;;;2324:16:19;::::1;;::::0;;2389:38:::1;-1:-1:-1::0;;;2389:19:19::1;:38::i;:::-;2353:16;:75:::0;;-1:-1:-1;;;;;;2353:75:19::1;-1:-1:-1::0;;;;;2353:75:19;;;::::1;::::0;;;::::1;::::0;;2476:38:::1;-1:-1:-1::0;;;2476:19:19::1;:38::i;:::-;2440:16;:75:::0;;-1:-1:-1;;;;;;2440:75:19::1;-1:-1:-1::0;;;;;2440:75:19;;::::1;;::::0;;2541:16:::1;::::0;:33:::1;::::0;;-1:-1:-1;;;2541:33:19;;;;:16;;;::::1;::::0;:31:::1;::::0;:33:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:16;:33;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2526:12;:48:::0;;-1:-1:-1;;;;;;2526:48:19::1;-1:-1:-1::0;;;;;2526:48:19;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;978:44:68::1;::::0;-1:-1:-1;;;;1009:12:68::1;::::0;-1:-1:-1;1009:10:68::1;::::0;-1:-1:-1;;;;;;;;1009:12:68:i:1;:::-;978:10;:44::i;:::-;699:331:::0;;;;;334:1416;;640:96:59;719:10;640:96;:::o;2433:187:41:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1371:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1344:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;4875:145;-1:-1:-1;;4875:145:12:o;6824:110:37:-;6902:25;6913:4;6919:7;6902:10;:25::i;:::-;6824:110;;:::o;7474:233::-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:37;;;;;;;;;;;;7552:149;;7595:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7595:29:37;;;;;;;;;:36;;-1:-1:-1;;7595:36:37;7627:4;7595:36;;;7677:12;719:10:59;640:96;;7677:12:37;-1:-1:-1;;;;;7650:40:37;7668:7;-1:-1:-1;;;;;7650:40:37;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;14:261:103:-;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;195:9;189:16;214:31;239:5;214:31;:::i;:::-;264:5;95:180;-1:-1:-1;;;95:180:103:o;280:653::-;;;;;;471:3;459:9;450:7;446:23;442:33;439:2;;;493:6;485;478:22;439:2;527:9;521:16;511:26;;577:2;566:9;562:18;556:25;546:35;;624:2;613:9;609:18;603:25;637:31;662:5;637:31;:::i;:::-;737:2;722:18;;716:25;687:5;;-1:-1:-1;750:33:103;716:25;750:33;:::i;:::-;854:3;839:19;;833:26;802:7;;-1:-1:-1;868:33:103;833:26;868:33;:::i;:::-;920:7;910:17;;;429:504;;;;;;;;:::o;1407:616::-;1654:25;;;1641:3;1626:19;;1709:1;1698:13;;1688:2;;1754:10;1749:3;1745:20;1742:1;1735:31;1789:4;1786:1;1779:15;1817:4;1814:1;1807:15;1688:2;1863;1848:18;;1841:34;;;;-1:-1:-1;;;;;1949:15:103;;;1944:2;1929:18;;1922:43;2001:15;;1996:2;1981:18;;;1974:43;1608:415;;-1:-1:-1;1608:415:103:o;3605:131::-;-1:-1:-1;;;;;3680:31:103;;3670:42;;3660:2;;3726:1;3723;3716:12;3660:2;3650:86;:::o;:::-;334:1416:68;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:23088:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"66:430:103","statements":[{"body":{"nodeType":"YulBlock","src":"115:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"124:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"131:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"117:6:103"},"nodeType":"YulFunctionCall","src":"117:20:103"},"nodeType":"YulExpressionStatement","src":"117:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"94:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"102:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"90:3:103"},"nodeType":"YulFunctionCall","src":"90:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"109:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"86:3:103"},"nodeType":"YulFunctionCall","src":"86:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"79:6:103"},"nodeType":"YulFunctionCall","src":"79:35:103"},"nodeType":"YulIf","src":"76:2:103"},{"nodeType":"YulVariableDeclaration","src":"148:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"171:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"158:12:103"},"nodeType":"YulFunctionCall","src":"158:20:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"152:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"187:63:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"246:2:103"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"218:27:103"},"nodeType":"YulFunctionCall","src":"218:31:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"202:15:103"},"nodeType":"YulFunctionCall","src":"202:48:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"191:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"266:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"275:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"259:6:103"},"nodeType":"YulFunctionCall","src":"259:19:103"},"nodeType":"YulExpressionStatement","src":"259:19:103"},{"body":{"nodeType":"YulBlock","src":"326:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"335:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"342:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"328:6:103"},"nodeType":"YulFunctionCall","src":"328:20:103"},"nodeType":"YulExpressionStatement","src":"328:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"301:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"309:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"297:3:103"},"nodeType":"YulFunctionCall","src":"297:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"314:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"293:3:103"},"nodeType":"YulFunctionCall","src":"293:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"321:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"290:2:103"},"nodeType":"YulFunctionCall","src":"290:35:103"},"nodeType":"YulIf","src":"287:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"376:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"385:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"372:3:103"},"nodeType":"YulFunctionCall","src":"372:18:103"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"396:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"404:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:17:103"},{"name":"_1","nodeType":"YulIdentifier","src":"411:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"359:12:103"},"nodeType":"YulFunctionCall","src":"359:55:103"},"nodeType":"YulExpressionStatement","src":"359:55:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"438:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"447:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"434:3:103"},"nodeType":"YulFunctionCall","src":"434:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"452:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"430:3:103"},"nodeType":"YulFunctionCall","src":"430:27:103"},{"name":"array","nodeType":"YulIdentifier","src":"459:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:103"},"nodeType":"YulFunctionCall","src":"423:42:103"},"nodeType":"YulExpressionStatement","src":"423:42:103"},{"nodeType":"YulAssignment","src":"474:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"483:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"474:5:103"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"40:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"48:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"56:5:103","type":""}],"src":"14:482:103"},{"body":{"nodeType":"YulBlock","src":"564:381:103","statements":[{"body":{"nodeType":"YulBlock","src":"613:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"622:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"629:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"615:6:103"},"nodeType":"YulFunctionCall","src":"615:20:103"},"nodeType":"YulExpressionStatement","src":"615:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"592:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"600:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"588:3:103"},"nodeType":"YulFunctionCall","src":"588:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"607:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"584:3:103"},"nodeType":"YulFunctionCall","src":"584:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"577:6:103"},"nodeType":"YulFunctionCall","src":"577:35:103"},"nodeType":"YulIf","src":"574:2:103"},{"nodeType":"YulVariableDeclaration","src":"646:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"662:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"656:5:103"},"nodeType":"YulFunctionCall","src":"656:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"650:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"678:63:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"737:2:103"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"709:27:103"},"nodeType":"YulFunctionCall","src":"709:31:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"693:15:103"},"nodeType":"YulFunctionCall","src":"693:48:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"682:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"757:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"766:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"750:6:103"},"nodeType":"YulFunctionCall","src":"750:19:103"},"nodeType":"YulExpressionStatement","src":"750:19:103"},{"body":{"nodeType":"YulBlock","src":"817:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"826:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"833:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"819:6:103"},"nodeType":"YulFunctionCall","src":"819:20:103"},"nodeType":"YulExpressionStatement","src":"819:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"800:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"788:3:103"},"nodeType":"YulFunctionCall","src":"788:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"805:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"784:3:103"},"nodeType":"YulFunctionCall","src":"784:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"812:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"781:2:103"},"nodeType":"YulFunctionCall","src":"781:35:103"},"nodeType":"YulIf","src":"778:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"876:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"884:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"872:3:103"},"nodeType":"YulFunctionCall","src":"872:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"895:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"904:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"891:3:103"},"nodeType":"YulFunctionCall","src":"891:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"911:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"850:21:103"},"nodeType":"YulFunctionCall","src":"850:64:103"},"nodeType":"YulExpressionStatement","src":"850:64:103"},{"nodeType":"YulAssignment","src":"923:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"932:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"923:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"538:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"546:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"554:5:103","type":""}],"src":"501:444:103"},{"body":{"nodeType":"YulBlock","src":"1013:99:103","statements":[{"nodeType":"YulAssignment","src":"1023:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1045:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1032:12:103"},"nodeType":"YulFunctionCall","src":"1032:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1023:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1100:5:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1061:38:103"},"nodeType":"YulFunctionCall","src":"1061:45:103"},"nodeType":"YulExpressionStatement","src":"1061:45:103"}]},"name":"abi_decode_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"992:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1003:5:103","type":""}],"src":"950:162:103"},{"body":{"nodeType":"YulBlock","src":"1191:92:103","statements":[{"nodeType":"YulAssignment","src":"1201:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1216:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1210:5:103"},"nodeType":"YulFunctionCall","src":"1210:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1201:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1271:5:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1232:38:103"},"nodeType":"YulFunctionCall","src":"1232:45:103"},"nodeType":"YulExpressionStatement","src":"1232:45:103"}]},"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1170:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1181:5:103","type":""}],"src":"1117:166:103"},{"body":{"nodeType":"YulBlock","src":"1356:703:103","statements":[{"body":{"nodeType":"YulBlock","src":"1400:24:103","statements":[{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1409:5:103"},{"name":"value","nodeType":"YulIdentifier","src":"1416:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1402:6:103"},"nodeType":"YulFunctionCall","src":"1402:20:103"},"nodeType":"YulExpressionStatement","src":"1402:20:103"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"1377:3:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1382:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1373:3:103"},"nodeType":"YulFunctionCall","src":"1373:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"1394:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1369:3:103"},"nodeType":"YulFunctionCall","src":"1369:30:103"},"nodeType":"YulIf","src":"1366:2:103"},{"nodeType":"YulAssignment","src":"1433:30:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1458:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1442:15:103"},"nodeType":"YulFunctionCall","src":"1442:21:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1433:5:103"}]},{"nodeType":"YulVariableDeclaration","src":"1472:38:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1500:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1487:12:103"},"nodeType":"YulFunctionCall","src":"1487:23:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1476:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1558:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1519:38:103"},"nodeType":"YulFunctionCall","src":"1519:47:103"},"nodeType":"YulExpressionStatement","src":"1519:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1582:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"1589:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1575:6:103"},"nodeType":"YulFunctionCall","src":"1575:22:103"},"nodeType":"YulExpressionStatement","src":"1575:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1617:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1624:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1613:3:103"},"nodeType":"YulFunctionCall","src":"1613:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1646:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1657:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1642:3:103"},"nodeType":"YulFunctionCall","src":"1642:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1629:12:103"},"nodeType":"YulFunctionCall","src":"1629:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1606:6:103"},"nodeType":"YulFunctionCall","src":"1606:56:103"},"nodeType":"YulExpressionStatement","src":"1606:56:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1682:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1689:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1678:3:103"},"nodeType":"YulFunctionCall","src":"1678:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1711:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1722:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1707:3:103"},"nodeType":"YulFunctionCall","src":"1707:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1694:12:103"},"nodeType":"YulFunctionCall","src":"1694:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1671:6:103"},"nodeType":"YulFunctionCall","src":"1671:56:103"},"nodeType":"YulExpressionStatement","src":"1671:56:103"},{"nodeType":"YulVariableDeclaration","src":"1736:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1778:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1763:3:103"},"nodeType":"YulFunctionCall","src":"1763:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1750:12:103"},"nodeType":"YulFunctionCall","src":"1750:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1740:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1825:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1834:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1837:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1827:6:103"},"nodeType":"YulFunctionCall","src":"1827:12:103"},"nodeType":"YulExpressionStatement","src":"1827:12:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1797:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1805:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1794:2:103"},"nodeType":"YulFunctionCall","src":"1794:30:103"},"nodeType":"YulIf","src":"1791:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1861:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1868:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1857:3:103"},"nodeType":"YulFunctionCall","src":"1857:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1894:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1905:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1890:3:103"},"nodeType":"YulFunctionCall","src":"1890:22:103"},{"name":"end","nodeType":"YulIdentifier","src":"1914:3:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"1873:16:103"},"nodeType":"YulFunctionCall","src":"1873:45:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1850:6:103"},"nodeType":"YulFunctionCall","src":"1850:69:103"},"nodeType":"YulExpressionStatement","src":"1850:69:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1939:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1946:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1935:3:103"},"nodeType":"YulFunctionCall","src":"1935:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1980:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1965:3:103"},"nodeType":"YulFunctionCall","src":"1965:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1952:12:103"},"nodeType":"YulFunctionCall","src":"1952:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1928:6:103"},"nodeType":"YulFunctionCall","src":"1928:58:103"},"nodeType":"YulExpressionStatement","src":"1928:58:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2006:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2013:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:103"},"nodeType":"YulFunctionCall","src":"2002:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2047:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2032:3:103"},"nodeType":"YulFunctionCall","src":"2032:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2019:12:103"},"nodeType":"YulFunctionCall","src":"2019:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1995:6:103"},"nodeType":"YulFunctionCall","src":"1995:58:103"},"nodeType":"YulExpressionStatement","src":"1995:58:103"}]},"name":"abi_decode_struct_Application","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1327:9:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"1338:3:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1346:5:103","type":""}],"src":"1288:771:103"},{"body":{"nodeType":"YulBlock","src":"2134:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"2180:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2189:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2197:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2182:6:103"},"nodeType":"YulFunctionCall","src":"2182:22:103"},"nodeType":"YulExpressionStatement","src":"2182:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2155:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2164:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2151:3:103"},"nodeType":"YulFunctionCall","src":"2151:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2176:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2147:3:103"},"nodeType":"YulFunctionCall","src":"2147:32:103"},"nodeType":"YulIf","src":"2144:2:103"},{"nodeType":"YulVariableDeclaration","src":"2215:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2241:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2228:12:103"},"nodeType":"YulFunctionCall","src":"2228:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2219:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2285:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2260:24:103"},"nodeType":"YulFunctionCall","src":"2260:31:103"},"nodeType":"YulExpressionStatement","src":"2260:31:103"},{"nodeType":"YulAssignment","src":"2300:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2310:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2300:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2100:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2111:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2123:6:103","type":""}],"src":"2064:257:103"},{"body":{"nodeType":"YulBlock","src":"2407:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2453:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2462:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2470:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2455:6:103"},"nodeType":"YulFunctionCall","src":"2455:22:103"},"nodeType":"YulExpressionStatement","src":"2455:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2428:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2437:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2424:3:103"},"nodeType":"YulFunctionCall","src":"2424:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2449:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2420:3:103"},"nodeType":"YulFunctionCall","src":"2420:32:103"},"nodeType":"YulIf","src":"2417:2:103"},{"nodeType":"YulVariableDeclaration","src":"2488:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2507:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2501:5:103"},"nodeType":"YulFunctionCall","src":"2501:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2492:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2551:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2526:24:103"},"nodeType":"YulFunctionCall","src":"2526:31:103"},"nodeType":"YulExpressionStatement","src":"2526:31:103"},{"nodeType":"YulAssignment","src":"2566:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2576:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2566:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2373:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2384:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2396:6:103","type":""}],"src":"2326:261:103"},{"body":{"nodeType":"YulBlock","src":"2662:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2708:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2717:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2725:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2710:6:103"},"nodeType":"YulFunctionCall","src":"2710:22:103"},"nodeType":"YulExpressionStatement","src":"2710:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2683:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2692:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2679:3:103"},"nodeType":"YulFunctionCall","src":"2679:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2704:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2675:3:103"},"nodeType":"YulFunctionCall","src":"2675:32:103"},"nodeType":"YulIf","src":"2672:2:103"},{"nodeType":"YulAssignment","src":"2743:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2766:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2753:12:103"},"nodeType":"YulFunctionCall","src":"2753:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2743:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2628:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2639:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2651:6:103","type":""}],"src":"2592:190:103"},{"body":{"nodeType":"YulBlock","src":"2874:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"2920:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2929:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2937:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2922:6:103"},"nodeType":"YulFunctionCall","src":"2922:22:103"},"nodeType":"YulExpressionStatement","src":"2922:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2895:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2904:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2891:3:103"},"nodeType":"YulFunctionCall","src":"2891:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2916:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2887:3:103"},"nodeType":"YulFunctionCall","src":"2887:32:103"},"nodeType":"YulIf","src":"2884:2:103"},{"nodeType":"YulAssignment","src":"2955:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2978:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2965:12:103"},"nodeType":"YulFunctionCall","src":"2965:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2955:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2997:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3027:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3038:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3023:3:103"},"nodeType":"YulFunctionCall","src":"3023:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3010:12:103"},"nodeType":"YulFunctionCall","src":"3010:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3001:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3076:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3051:24:103"},"nodeType":"YulFunctionCall","src":"3051:31:103"},"nodeType":"YulExpressionStatement","src":"3051:31:103"},{"nodeType":"YulAssignment","src":"3091:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3101:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3091:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2832:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2843:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2855:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2863:6:103","type":""}],"src":"2787:325:103"},{"body":{"nodeType":"YulBlock","src":"3204:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"3250:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3259:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3267:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3252:6:103"},"nodeType":"YulFunctionCall","src":"3252:22:103"},"nodeType":"YulExpressionStatement","src":"3252:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3225:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3234:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3221:3:103"},"nodeType":"YulFunctionCall","src":"3221:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3246:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3217:3:103"},"nodeType":"YulFunctionCall","src":"3217:32:103"},"nodeType":"YulIf","src":"3214:2:103"},{"nodeType":"YulAssignment","src":"3285:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3308:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3295:12:103"},"nodeType":"YulFunctionCall","src":"3295:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3285:6:103"}]},{"nodeType":"YulAssignment","src":"3327:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3354:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3365:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3350:3:103"},"nodeType":"YulFunctionCall","src":"3350:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3337:12:103"},"nodeType":"YulFunctionCall","src":"3337:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3327:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3162:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3173:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3185:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3193:6:103","type":""}],"src":"3117:258:103"},{"body":{"nodeType":"YulBlock","src":"3449:237:103","statements":[{"body":{"nodeType":"YulBlock","src":"3495:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3504:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3512:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3497:6:103"},"nodeType":"YulFunctionCall","src":"3497:22:103"},"nodeType":"YulExpressionStatement","src":"3497:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3470:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3479:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3491:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3462:3:103"},"nodeType":"YulFunctionCall","src":"3462:32:103"},"nodeType":"YulIf","src":"3459:2:103"},{"nodeType":"YulVariableDeclaration","src":"3530:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3556:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3543:12:103"},"nodeType":"YulFunctionCall","src":"3543:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3534:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3630:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3639:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3647:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3632:6:103"},"nodeType":"YulFunctionCall","src":"3632:22:103"},"nodeType":"YulExpressionStatement","src":"3632:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3588:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3599:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3610:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3615:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3606:3:103"},"nodeType":"YulFunctionCall","src":"3606:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3595:3:103"},"nodeType":"YulFunctionCall","src":"3595:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3585:2:103"},"nodeType":"YulFunctionCall","src":"3585:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3578:6:103"},"nodeType":"YulFunctionCall","src":"3578:51:103"},"nodeType":"YulIf","src":"3575:2:103"},{"nodeType":"YulAssignment","src":"3665:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3675:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3665:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3415:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3426:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3438:6:103","type":""}],"src":"3380:306:103"},{"body":{"nodeType":"YulBlock","src":"3787:312:103","statements":[{"body":{"nodeType":"YulBlock","src":"3833:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3842:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3850:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3835:6:103"},"nodeType":"YulFunctionCall","src":"3835:22:103"},"nodeType":"YulExpressionStatement","src":"3835:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3808:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3817:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3804:3:103"},"nodeType":"YulFunctionCall","src":"3804:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3829:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3800:3:103"},"nodeType":"YulFunctionCall","src":"3800:32:103"},"nodeType":"YulIf","src":"3797:2:103"},{"nodeType":"YulVariableDeclaration","src":"3868:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3895:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3882:12:103"},"nodeType":"YulFunctionCall","src":"3882:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3872:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3948:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3957:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3965:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3950:6:103"},"nodeType":"YulFunctionCall","src":"3950:22:103"},"nodeType":"YulExpressionStatement","src":"3950:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3920:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3928:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3917:2:103"},"nodeType":"YulFunctionCall","src":"3917:30:103"},"nodeType":"YulIf","src":"3914:2:103"},{"nodeType":"YulAssignment","src":"3983:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4014:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4025:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4010:3:103"},"nodeType":"YulFunctionCall","src":"4010:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4034:7:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3993:16:103"},"nodeType":"YulFunctionCall","src":"3993:49:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3983:6:103"}]},{"nodeType":"YulAssignment","src":"4051:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4089:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4074:3:103"},"nodeType":"YulFunctionCall","src":"4074:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4061:12:103"},"nodeType":"YulFunctionCall","src":"4061:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4051:6:103"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3745:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3756:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3768:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3776:6:103","type":""}],"src":"3691:408:103"},{"body":{"nodeType":"YulBlock","src":"4204:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"4250:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4259:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4267:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4252:6:103"},"nodeType":"YulFunctionCall","src":"4252:22:103"},"nodeType":"YulExpressionStatement","src":"4252:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4225:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4234:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4221:3:103"},"nodeType":"YulFunctionCall","src":"4221:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4246:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4217:3:103"},"nodeType":"YulFunctionCall","src":"4217:32:103"},"nodeType":"YulIf","src":"4214:2:103"},{"nodeType":"YulVariableDeclaration","src":"4285:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4304:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4298:5:103"},"nodeType":"YulFunctionCall","src":"4298:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4289:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4347:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4356:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4364:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4349:6:103"},"nodeType":"YulFunctionCall","src":"4349:22:103"},"nodeType":"YulExpressionStatement","src":"4349:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4336:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4343:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4333:2:103"},"nodeType":"YulFunctionCall","src":"4333:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4326:6:103"},"nodeType":"YulFunctionCall","src":"4326:20:103"},"nodeType":"YulIf","src":"4323:2:103"},{"nodeType":"YulAssignment","src":"4382:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4392:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4382:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4170:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4181:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4193:6:103","type":""}],"src":"4104:299:103"},{"body":{"nodeType":"YulBlock","src":"4518:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"4564:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4573:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4581:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4566:6:103"},"nodeType":"YulFunctionCall","src":"4566:22:103"},"nodeType":"YulExpressionStatement","src":"4566:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4539:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4548:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4535:3:103"},"nodeType":"YulFunctionCall","src":"4535:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4560:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4531:3:103"},"nodeType":"YulFunctionCall","src":"4531:32:103"},"nodeType":"YulIf","src":"4528:2:103"},{"nodeType":"YulVariableDeclaration","src":"4599:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4619:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4613:5:103"},"nodeType":"YulFunctionCall","src":"4613:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4603:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4638:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4648:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4642:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4693:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4702:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4710:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4695:6:103"},"nodeType":"YulFunctionCall","src":"4695:22:103"},"nodeType":"YulExpressionStatement","src":"4695:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4681:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4689:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4678:2:103"},"nodeType":"YulFunctionCall","src":"4678:14:103"},"nodeType":"YulIf","src":"4675:2:103"},{"nodeType":"YulVariableDeclaration","src":"4728:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4742:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4753:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4738:3:103"},"nodeType":"YulFunctionCall","src":"4738:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4732:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4800:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4809:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4817:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4802:6:103"},"nodeType":"YulFunctionCall","src":"4802:22:103"},"nodeType":"YulExpressionStatement","src":"4802:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4780:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4789:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4776:3:103"},"nodeType":"YulFunctionCall","src":"4776:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4794:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4772:3:103"},"nodeType":"YulFunctionCall","src":"4772:27:103"},"nodeType":"YulIf","src":"4769:2:103"},{"nodeType":"YulVariableDeclaration","src":"4835:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4864:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4848:15:103"},"nodeType":"YulFunctionCall","src":"4848:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4839:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4878:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4899:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4893:5:103"},"nodeType":"YulFunctionCall","src":"4893:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4882:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4950:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"4911:38:103"},"nodeType":"YulFunctionCall","src":"4911:47:103"},"nodeType":"YulExpressionStatement","src":"4911:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4974:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"4981:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4967:6:103"},"nodeType":"YulFunctionCall","src":"4967:22:103"},"nodeType":"YulExpressionStatement","src":"4967:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5009:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5016:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5005:3:103"},"nodeType":"YulFunctionCall","src":"5005:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5031:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5035:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5027:3:103"},"nodeType":"YulFunctionCall","src":"5027:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5021:5:103"},"nodeType":"YulFunctionCall","src":"5021:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4998:6:103"},"nodeType":"YulFunctionCall","src":"4998:42:103"},"nodeType":"YulExpressionStatement","src":"4998:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5060:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5067:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5056:3:103"},"nodeType":"YulFunctionCall","src":"5056:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5082:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5086:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5078:3:103"},"nodeType":"YulFunctionCall","src":"5078:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5072:5:103"},"nodeType":"YulFunctionCall","src":"5072:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5049:6:103"},"nodeType":"YulFunctionCall","src":"5049:42:103"},"nodeType":"YulExpressionStatement","src":"5049:42:103"},{"nodeType":"YulVariableDeclaration","src":"5100:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5126:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5130:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5122:3:103"},"nodeType":"YulFunctionCall","src":"5122:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5116:5:103"},"nodeType":"YulFunctionCall","src":"5116:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5104:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5163:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5172:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5180:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5165:6:103"},"nodeType":"YulFunctionCall","src":"5165:22:103"},"nodeType":"YulExpressionStatement","src":"5165:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5149:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5159:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5146:2:103"},"nodeType":"YulFunctionCall","src":"5146:16:103"},"nodeType":"YulIf","src":"5143:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5209:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5216:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5205:3:103"},"nodeType":"YulFunctionCall","src":"5205:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5253:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5257:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5249:3:103"},"nodeType":"YulFunctionCall","src":"5249:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5268:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"5221:27:103"},"nodeType":"YulFunctionCall","src":"5221:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5198:6:103"},"nodeType":"YulFunctionCall","src":"5198:79:103"},"nodeType":"YulExpressionStatement","src":"5198:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5297:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5304:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5293:3:103"},"nodeType":"YulFunctionCall","src":"5293:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5320:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5324:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5316:3:103"},"nodeType":"YulFunctionCall","src":"5316:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5310:5:103"},"nodeType":"YulFunctionCall","src":"5310:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5286:6:103"},"nodeType":"YulFunctionCall","src":"5286:44:103"},"nodeType":"YulExpressionStatement","src":"5286:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5350:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5357:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5346:3:103"},"nodeType":"YulFunctionCall","src":"5346:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5373:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5377:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5369:3:103"},"nodeType":"YulFunctionCall","src":"5369:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5363:5:103"},"nodeType":"YulFunctionCall","src":"5363:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5339:6:103"},"nodeType":"YulFunctionCall","src":"5339:44:103"},"nodeType":"YulExpressionStatement","src":"5339:44:103"},{"nodeType":"YulAssignment","src":"5392:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5402:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5392:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4484:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4495:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4507:6:103","type":""}],"src":"4408:1005:103"},{"body":{"nodeType":"YulBlock","src":"5523:1119:103","statements":[{"body":{"nodeType":"YulBlock","src":"5569:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5578:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5586:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5571:6:103"},"nodeType":"YulFunctionCall","src":"5571:22:103"},"nodeType":"YulExpressionStatement","src":"5571:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5544:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5553:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5540:3:103"},"nodeType":"YulFunctionCall","src":"5540:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5565:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5536:3:103"},"nodeType":"YulFunctionCall","src":"5536:32:103"},"nodeType":"YulIf","src":"5533:2:103"},{"nodeType":"YulVariableDeclaration","src":"5604:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5624:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5618:5:103"},"nodeType":"YulFunctionCall","src":"5618:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5608:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5643:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5653:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5647:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5698:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5707:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5715:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5700:6:103"},"nodeType":"YulFunctionCall","src":"5700:22:103"},"nodeType":"YulExpressionStatement","src":"5700:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5686:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5694:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5683:2:103"},"nodeType":"YulFunctionCall","src":"5683:14:103"},"nodeType":"YulIf","src":"5680:2:103"},{"nodeType":"YulVariableDeclaration","src":"5733:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5747:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5758:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5743:3:103"},"nodeType":"YulFunctionCall","src":"5743:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5737:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5774:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5784:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5778:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5828:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5837:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5845:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5830:6:103"},"nodeType":"YulFunctionCall","src":"5830:22:103"},"nodeType":"YulExpressionStatement","src":"5830:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5810:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5819:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5806:3:103"},"nodeType":"YulFunctionCall","src":"5806:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"5824:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5802:3:103"},"nodeType":"YulFunctionCall","src":"5802:25:103"},"nodeType":"YulIf","src":"5799:2:103"},{"nodeType":"YulVariableDeclaration","src":"5863:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5892:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5876:15:103"},"nodeType":"YulFunctionCall","src":"5876:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5867:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5911:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5924:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5918:5:103"},"nodeType":"YulFunctionCall","src":"5918:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5904:6:103"},"nodeType":"YulFunctionCall","src":"5904:24:103"},"nodeType":"YulExpressionStatement","src":"5904:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5948:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5955:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5944:3:103"},"nodeType":"YulFunctionCall","src":"5944:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5970:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5974:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5966:3:103"},"nodeType":"YulFunctionCall","src":"5966:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5960:5:103"},"nodeType":"YulFunctionCall","src":"5960:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5937:6:103"},"nodeType":"YulFunctionCall","src":"5937:42:103"},"nodeType":"YulExpressionStatement","src":"5937:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5999:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6006:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5995:3:103"},"nodeType":"YulFunctionCall","src":"5995:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6021:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6025:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6017:3:103"},"nodeType":"YulFunctionCall","src":"6017:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6011:5:103"},"nodeType":"YulFunctionCall","src":"6011:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5988:6:103"},"nodeType":"YulFunctionCall","src":"5988:42:103"},"nodeType":"YulExpressionStatement","src":"5988:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6050:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6057:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6046:3:103"},"nodeType":"YulFunctionCall","src":"6046:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6110:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6114:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6106:3:103"},"nodeType":"YulFunctionCall","src":"6106:11:103"}],"functionName":{"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulIdentifier","src":"6062:43:103"},"nodeType":"YulFunctionCall","src":"6062:56:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6039:6:103"},"nodeType":"YulFunctionCall","src":"6039:80:103"},"nodeType":"YulExpressionStatement","src":"6039:80:103"},{"nodeType":"YulVariableDeclaration","src":"6128:35:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6154:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6158:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6150:3:103"},"nodeType":"YulFunctionCall","src":"6150:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6144:5:103"},"nodeType":"YulFunctionCall","src":"6144:19:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6132:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6192:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6201:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6209:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6194:6:103"},"nodeType":"YulFunctionCall","src":"6194:22:103"},"nodeType":"YulExpressionStatement","src":"6194:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6178:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6188:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6175:2:103"},"nodeType":"YulFunctionCall","src":"6175:16:103"},"nodeType":"YulIf","src":"6172:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6238:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6245:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6234:3:103"},"nodeType":"YulFunctionCall","src":"6234:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6283:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6287:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6279:3:103"},"nodeType":"YulFunctionCall","src":"6279:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6298:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"6251:27:103"},"nodeType":"YulFunctionCall","src":"6251:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6227:6:103"},"nodeType":"YulFunctionCall","src":"6227:80:103"},"nodeType":"YulExpressionStatement","src":"6227:80:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6327:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6334:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6323:3:103"},"nodeType":"YulFunctionCall","src":"6323:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6350:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6354:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6346:3:103"},"nodeType":"YulFunctionCall","src":"6346:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6340:5:103"},"nodeType":"YulFunctionCall","src":"6340:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6316:6:103"},"nodeType":"YulFunctionCall","src":"6316:44:103"},"nodeType":"YulExpressionStatement","src":"6316:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6380:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6387:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6376:3:103"},"nodeType":"YulFunctionCall","src":"6376:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6403:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6407:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6399:3:103"},"nodeType":"YulFunctionCall","src":"6399:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6393:5:103"},"nodeType":"YulFunctionCall","src":"6393:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6369:6:103"},"nodeType":"YulFunctionCall","src":"6369:44:103"},"nodeType":"YulExpressionStatement","src":"6369:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6433:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6440:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6429:3:103"},"nodeType":"YulFunctionCall","src":"6429:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6456:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6460:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6452:3:103"},"nodeType":"YulFunctionCall","src":"6452:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6446:5:103"},"nodeType":"YulFunctionCall","src":"6446:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6422:6:103"},"nodeType":"YulFunctionCall","src":"6422:44:103"},"nodeType":"YulExpressionStatement","src":"6422:44:103"},{"nodeType":"YulVariableDeclaration","src":"6475:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6485:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"6479:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6508:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"6515:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6504:3:103"},"nodeType":"YulFunctionCall","src":"6504:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6530:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"6534:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6526:3:103"},"nodeType":"YulFunctionCall","src":"6526:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6520:5:103"},"nodeType":"YulFunctionCall","src":"6520:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6497:6:103"},"nodeType":"YulFunctionCall","src":"6497:42:103"},"nodeType":"YulExpressionStatement","src":"6497:42:103"},{"nodeType":"YulVariableDeclaration","src":"6548:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6558:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"6552:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6581:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"6588:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6577:3:103"},"nodeType":"YulFunctionCall","src":"6577:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6603:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"6607:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6599:3:103"},"nodeType":"YulFunctionCall","src":"6599:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6593:5:103"},"nodeType":"YulFunctionCall","src":"6593:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6570:6:103"},"nodeType":"YulFunctionCall","src":"6570:42:103"},"nodeType":"YulExpressionStatement","src":"6570:42:103"},{"nodeType":"YulAssignment","src":"6621:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6631:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6621:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5489:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5500:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5512:6:103","type":""}],"src":"5418:1224:103"},{"body":{"nodeType":"YulBlock","src":"6787:1362:103","statements":[{"body":{"nodeType":"YulBlock","src":"6833:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6842:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6850:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6835:6:103"},"nodeType":"YulFunctionCall","src":"6835:22:103"},"nodeType":"YulExpressionStatement","src":"6835:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6808:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6817:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6804:3:103"},"nodeType":"YulFunctionCall","src":"6804:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6829:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6800:3:103"},"nodeType":"YulFunctionCall","src":"6800:32:103"},"nodeType":"YulIf","src":"6797:2:103"},{"nodeType":"YulVariableDeclaration","src":"6868:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6895:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6882:12:103"},"nodeType":"YulFunctionCall","src":"6882:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6872:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6914:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6924:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6918:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6969:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6978:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6986:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6971:6:103"},"nodeType":"YulFunctionCall","src":"6971:22:103"},"nodeType":"YulExpressionStatement","src":"6971:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6957:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6965:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6954:2:103"},"nodeType":"YulFunctionCall","src":"6954:14:103"},"nodeType":"YulIf","src":"6951:2:103"},{"nodeType":"YulVariableDeclaration","src":"7004:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7018:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"7029:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7014:3:103"},"nodeType":"YulFunctionCall","src":"7014:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7008:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7045:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7055:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"7049:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7099:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7108:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7116:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7101:6:103"},"nodeType":"YulFunctionCall","src":"7101:22:103"},"nodeType":"YulExpressionStatement","src":"7101:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7081:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"7090:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7077:3:103"},"nodeType":"YulFunctionCall","src":"7077:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"7095:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7073:3:103"},"nodeType":"YulFunctionCall","src":"7073:25:103"},"nodeType":"YulIf","src":"7070:2:103"},{"nodeType":"YulVariableDeclaration","src":"7134:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"7163:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"7147:15:103"},"nodeType":"YulFunctionCall","src":"7147:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7138:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7182:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7202:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7189:12:103"},"nodeType":"YulFunctionCall","src":"7189:16:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7175:6:103"},"nodeType":"YulFunctionCall","src":"7175:31:103"},"nodeType":"YulExpressionStatement","src":"7175:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7226:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7233:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7222:3:103"},"nodeType":"YulFunctionCall","src":"7222:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7255:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7259:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7251:3:103"},"nodeType":"YulFunctionCall","src":"7251:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7238:12:103"},"nodeType":"YulFunctionCall","src":"7238:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7215:6:103"},"nodeType":"YulFunctionCall","src":"7215:49:103"},"nodeType":"YulExpressionStatement","src":"7215:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7284:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7291:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7280:3:103"},"nodeType":"YulFunctionCall","src":"7280:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7313:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7317:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7309:3:103"},"nodeType":"YulFunctionCall","src":"7309:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7296:12:103"},"nodeType":"YulFunctionCall","src":"7296:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7273:6:103"},"nodeType":"YulFunctionCall","src":"7273:49:103"},"nodeType":"YulExpressionStatement","src":"7273:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7342:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7349:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7338:3:103"},"nodeType":"YulFunctionCall","src":"7338:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7391:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7395:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7387:3:103"},"nodeType":"YulFunctionCall","src":"7387:11:103"}],"functionName":{"name":"abi_decode_enum_ApplicationState","nodeType":"YulIdentifier","src":"7354:32:103"},"nodeType":"YulFunctionCall","src":"7354:45:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7331:6:103"},"nodeType":"YulFunctionCall","src":"7331:69:103"},"nodeType":"YulExpressionStatement","src":"7331:69:103"},{"nodeType":"YulVariableDeclaration","src":"7409:42:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7442:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7446:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7438:3:103"},"nodeType":"YulFunctionCall","src":"7438:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7425:12:103"},"nodeType":"YulFunctionCall","src":"7425:26:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7413:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7480:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7489:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7497:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7482:6:103"},"nodeType":"YulFunctionCall","src":"7482:22:103"},"nodeType":"YulExpressionStatement","src":"7482:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7466:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7476:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7463:2:103"},"nodeType":"YulFunctionCall","src":"7463:16:103"},"nodeType":"YulIf","src":"7460:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7526:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7533:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7522:3:103"},"nodeType":"YulFunctionCall","src":"7522:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7560:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7564:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7556:3:103"},"nodeType":"YulFunctionCall","src":"7556:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7575:7:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"7539:16:103"},"nodeType":"YulFunctionCall","src":"7539:44:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7515:6:103"},"nodeType":"YulFunctionCall","src":"7515:69:103"},"nodeType":"YulExpressionStatement","src":"7515:69:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7604:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7611:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7600:3:103"},"nodeType":"YulFunctionCall","src":"7600:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7634:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7638:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7630:3:103"},"nodeType":"YulFunctionCall","src":"7630:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7617:12:103"},"nodeType":"YulFunctionCall","src":"7617:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7593:6:103"},"nodeType":"YulFunctionCall","src":"7593:51:103"},"nodeType":"YulExpressionStatement","src":"7593:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7664:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7671:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7660:3:103"},"nodeType":"YulFunctionCall","src":"7660:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7694:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7698:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7690:3:103"},"nodeType":"YulFunctionCall","src":"7690:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7677:12:103"},"nodeType":"YulFunctionCall","src":"7677:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7653:6:103"},"nodeType":"YulFunctionCall","src":"7653:51:103"},"nodeType":"YulExpressionStatement","src":"7653:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7724:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7731:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7720:3:103"},"nodeType":"YulFunctionCall","src":"7720:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7754:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7758:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7750:3:103"},"nodeType":"YulFunctionCall","src":"7750:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7737:12:103"},"nodeType":"YulFunctionCall","src":"7737:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7713:6:103"},"nodeType":"YulFunctionCall","src":"7713:51:103"},"nodeType":"YulExpressionStatement","src":"7713:51:103"},{"nodeType":"YulVariableDeclaration","src":"7773:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7783:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"7777:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7806:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"7813:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7802:3:103"},"nodeType":"YulFunctionCall","src":"7802:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7835:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"7839:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7831:3:103"},"nodeType":"YulFunctionCall","src":"7831:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7818:12:103"},"nodeType":"YulFunctionCall","src":"7818:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7795:6:103"},"nodeType":"YulFunctionCall","src":"7795:49:103"},"nodeType":"YulExpressionStatement","src":"7795:49:103"},{"nodeType":"YulVariableDeclaration","src":"7853:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7863:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"7857:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7886:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"7893:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7882:3:103"},"nodeType":"YulFunctionCall","src":"7882:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7915:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"7919:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7911:3:103"},"nodeType":"YulFunctionCall","src":"7911:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7898:12:103"},"nodeType":"YulFunctionCall","src":"7898:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7875:6:103"},"nodeType":"YulFunctionCall","src":"7875:49:103"},"nodeType":"YulExpressionStatement","src":"7875:49:103"},{"nodeType":"YulAssignment","src":"7933:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7943:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7933:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"7957:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7990:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8001:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7986:3:103"},"nodeType":"YulFunctionCall","src":"7986:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7973:12:103"},"nodeType":"YulFunctionCall","src":"7973:32:103"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"7961:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8034:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8043:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8051:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8036:6:103"},"nodeType":"YulFunctionCall","src":"8036:22:103"},"nodeType":"YulExpressionStatement","src":"8036:22:103"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"8020:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8030:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8017:2:103"},"nodeType":"YulFunctionCall","src":"8017:16:103"},"nodeType":"YulIf","src":"8014:2:103"},{"nodeType":"YulAssignment","src":"8069:74:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8113:9:103"},{"name":"offset_2","nodeType":"YulIdentifier","src":"8124:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8109:3:103"},"nodeType":"YulFunctionCall","src":"8109:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8135:7:103"}],"functionName":{"name":"abi_decode_struct_Application","nodeType":"YulIdentifier","src":"8079:29:103"},"nodeType":"YulFunctionCall","src":"8079:64:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8069:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptrt_struct$_Application_$5262_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6745:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6756:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6768:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6776:6:103","type":""}],"src":"6647:1502:103"},{"body":{"nodeType":"YulBlock","src":"8224:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"8270:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8279:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8287:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8272:6:103"},"nodeType":"YulFunctionCall","src":"8272:22:103"},"nodeType":"YulExpressionStatement","src":"8272:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8245:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8254:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8241:3:103"},"nodeType":"YulFunctionCall","src":"8241:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8266:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8237:3:103"},"nodeType":"YulFunctionCall","src":"8237:32:103"},"nodeType":"YulIf","src":"8234:2:103"},{"nodeType":"YulAssignment","src":"8305:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8328:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8315:12:103"},"nodeType":"YulFunctionCall","src":"8315:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8305:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8190:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8201:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8213:6:103","type":""}],"src":"8154:190:103"},{"body":{"nodeType":"YulBlock","src":"8430:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"8476:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8485:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8493:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8478:6:103"},"nodeType":"YulFunctionCall","src":"8478:22:103"},"nodeType":"YulExpressionStatement","src":"8478:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8451:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8460:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8447:3:103"},"nodeType":"YulFunctionCall","src":"8447:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8472:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8443:3:103"},"nodeType":"YulFunctionCall","src":"8443:32:103"},"nodeType":"YulIf","src":"8440:2:103"},{"nodeType":"YulAssignment","src":"8511:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8527:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8521:5:103"},"nodeType":"YulFunctionCall","src":"8521:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8511:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8396:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8407:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8419:6:103","type":""}],"src":"8349:194:103"},{"body":{"nodeType":"YulBlock","src":"8635:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"8681:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8690:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8698:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8683:6:103"},"nodeType":"YulFunctionCall","src":"8683:22:103"},"nodeType":"YulExpressionStatement","src":"8683:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8656:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8665:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8652:3:103"},"nodeType":"YulFunctionCall","src":"8652:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8677:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8648:3:103"},"nodeType":"YulFunctionCall","src":"8648:32:103"},"nodeType":"YulIf","src":"8645:2:103"},{"nodeType":"YulAssignment","src":"8716:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8739:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8726:12:103"},"nodeType":"YulFunctionCall","src":"8726:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8716:6:103"}]},{"nodeType":"YulAssignment","src":"8758:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8785:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8796:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8781:3:103"},"nodeType":"YulFunctionCall","src":"8781:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8768:12:103"},"nodeType":"YulFunctionCall","src":"8768:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8758:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8593:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8604:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8616:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8624:6:103","type":""}],"src":"8548:258:103"},{"body":{"nodeType":"YulBlock","src":"8860:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8870:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8890:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8884:5:103"},"nodeType":"YulFunctionCall","src":"8884:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8874:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8912:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"8917:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8905:6:103"},"nodeType":"YulFunctionCall","src":"8905:19:103"},"nodeType":"YulExpressionStatement","src":"8905:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8959:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8966:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8955:3:103"},"nodeType":"YulFunctionCall","src":"8955:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8977:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"8982:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8973:3:103"},"nodeType":"YulFunctionCall","src":"8973:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"8989:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"8933:21:103"},"nodeType":"YulFunctionCall","src":"8933:63:103"},"nodeType":"YulExpressionStatement","src":"8933:63:103"},{"nodeType":"YulAssignment","src":"9005:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9020:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"9033:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9041:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9029:3:103"},"nodeType":"YulFunctionCall","src":"9029:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9050:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9046:3:103"},"nodeType":"YulFunctionCall","src":"9046:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9025:3:103"},"nodeType":"YulFunctionCall","src":"9025:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9016:3:103"},"nodeType":"YulFunctionCall","src":"9016:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"9057:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9012:3:103"},"nodeType":"YulFunctionCall","src":"9012:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9005:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8837:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8844:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8852:3:103","type":""}],"src":"8811:257:103"},{"body":{"nodeType":"YulBlock","src":"9126:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"9160:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"9162:16:103"},"nodeType":"YulFunctionCall","src":"9162:18:103"},"nodeType":"YulExpressionStatement","src":"9162:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9149:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9156:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9146:2:103"},"nodeType":"YulFunctionCall","src":"9146:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9139:6:103"},"nodeType":"YulFunctionCall","src":"9139:20:103"},"nodeType":"YulIf","src":"9136:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9198:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"9203:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9191:6:103"},"nodeType":"YulFunctionCall","src":"9191:18:103"},"nodeType":"YulExpressionStatement","src":"9191:18:103"}]},"name":"abi_encode_enum_BundleState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9110:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9117:3:103","type":""}],"src":"9073:142:103"},{"body":{"nodeType":"YulBlock","src":"9609:397:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9626:3:103"},{"kind":"string","nodeType":"YulLiteral","src":"9631:25:103","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9619:6:103"},"nodeType":"YulFunctionCall","src":"9619:38:103"},"nodeType":"YulExpressionStatement","src":"9619:38:103"},{"nodeType":"YulVariableDeclaration","src":"9666:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9686:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9680:5:103"},"nodeType":"YulFunctionCall","src":"9680:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9670:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9728:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9736:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9724:3:103"},"nodeType":"YulFunctionCall","src":"9724:17:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9747:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"9752:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9743:3:103"},"nodeType":"YulFunctionCall","src":"9743:12:103"},{"name":"length","nodeType":"YulIdentifier","src":"9757:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9702:21:103"},"nodeType":"YulFunctionCall","src":"9702:62:103"},"nodeType":"YulExpressionStatement","src":"9702:62:103"},{"nodeType":"YulVariableDeclaration","src":"9773:26:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9787:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"9792:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9783:3:103"},"nodeType":"YulFunctionCall","src":"9783:16:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9777:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9819:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9823:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9815:3:103"},"nodeType":"YulFunctionCall","src":"9815:11:103"},{"kind":"string","nodeType":"YulLiteral","src":"9828:19:103","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9808:6:103"},"nodeType":"YulFunctionCall","src":"9808:40:103"},"nodeType":"YulExpressionStatement","src":"9808:40:103"},{"nodeType":"YulVariableDeclaration","src":"9857:29:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9879:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9873:5:103"},"nodeType":"YulFunctionCall","src":"9873:13:103"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"9861:8:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9921:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9929:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9917:3:103"},"nodeType":"YulFunctionCall","src":"9917:17:103"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9940:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9944:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9936:3:103"},"nodeType":"YulFunctionCall","src":"9936:11:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"9949:8:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9895:21:103"},"nodeType":"YulFunctionCall","src":"9895:63:103"},"nodeType":"YulExpressionStatement","src":"9895:63:103"},{"nodeType":"YulAssignment","src":"9967:33:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9982:2:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"9986:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9978:3:103"},"nodeType":"YulFunctionCall","src":"9978:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"9997:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9974:3:103"},"nodeType":"YulFunctionCall","src":"9974:26:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9967:3:103"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9577:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9582:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9590:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9601:3:103","type":""}],"src":"9220:786:103"},{"body":{"nodeType":"YulBlock","src":"10112:102:103","statements":[{"nodeType":"YulAssignment","src":"10122:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10134:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10145:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10130:3:103"},"nodeType":"YulFunctionCall","src":"10130:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10122:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10164:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10179:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10195:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10200:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10191:3:103"},"nodeType":"YulFunctionCall","src":"10191:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10204:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10187:3:103"},"nodeType":"YulFunctionCall","src":"10187:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10175:3:103"},"nodeType":"YulFunctionCall","src":"10175:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10157:6:103"},"nodeType":"YulFunctionCall","src":"10157:51:103"},"nodeType":"YulExpressionStatement","src":"10157:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10081:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10092:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10103:4:103","type":""}],"src":"10011:203:103"},{"body":{"nodeType":"YulBlock","src":"10404:262:103","statements":[{"nodeType":"YulAssignment","src":"10414:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10437:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10422:3:103"},"nodeType":"YulFunctionCall","src":"10422:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10414:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"10450:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10468:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10473:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10464:3:103"},"nodeType":"YulFunctionCall","src":"10464:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10477:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10460:3:103"},"nodeType":"YulFunctionCall","src":"10460:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10454:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10495:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10510:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10518:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10506:3:103"},"nodeType":"YulFunctionCall","src":"10506:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10488:6:103"},"nodeType":"YulFunctionCall","src":"10488:34:103"},"nodeType":"YulExpressionStatement","src":"10488:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10553:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10538:3:103"},"nodeType":"YulFunctionCall","src":"10538:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10562:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10570:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10558:3:103"},"nodeType":"YulFunctionCall","src":"10558:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10531:6:103"},"nodeType":"YulFunctionCall","src":"10531:43:103"},"nodeType":"YulExpressionStatement","src":"10531:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10594:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10605:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10590:3:103"},"nodeType":"YulFunctionCall","src":"10590:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10610:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10583:6:103"},"nodeType":"YulFunctionCall","src":"10583:34:103"},"nodeType":"YulExpressionStatement","src":"10583:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10648:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10633:3:103"},"nodeType":"YulFunctionCall","src":"10633:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"10653:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10626:6:103"},"nodeType":"YulFunctionCall","src":"10626:34:103"},"nodeType":"YulExpressionStatement","src":"10626:34:103"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10349:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10360:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10368:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10376:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10384:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10395:4:103","type":""}],"src":"10219:447:103"},{"body":{"nodeType":"YulBlock","src":"10846:210:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10863:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10878:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10894:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10899:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10890:3:103"},"nodeType":"YulFunctionCall","src":"10890:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10903:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10886:3:103"},"nodeType":"YulFunctionCall","src":"10886:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10874:3:103"},"nodeType":"YulFunctionCall","src":"10874:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10856:6:103"},"nodeType":"YulFunctionCall","src":"10856:51:103"},"nodeType":"YulExpressionStatement","src":"10856:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10927:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10938:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10923:3:103"},"nodeType":"YulFunctionCall","src":"10923:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10943:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10916:6:103"},"nodeType":"YulFunctionCall","src":"10916:30:103"},"nodeType":"YulExpressionStatement","src":"10916:30:103"},{"nodeType":"YulAssignment","src":"10955:52:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10980:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11003:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10988:3:103"},"nodeType":"YulFunctionCall","src":"10988:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"10963:16:103"},"nodeType":"YulFunctionCall","src":"10963:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10955:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11027:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11038:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11023:3:103"},"nodeType":"YulFunctionCall","src":"11023:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"11043:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11016:6:103"},"nodeType":"YulFunctionCall","src":"11016:34:103"},"nodeType":"YulExpressionStatement","src":"11016:34:103"}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10799:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10810:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10818:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10826:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10837:4:103","type":""}],"src":"10671:385:103"},{"body":{"nodeType":"YulBlock","src":"11156:92:103","statements":[{"nodeType":"YulAssignment","src":"11166:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11178:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11189:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11174:3:103"},"nodeType":"YulFunctionCall","src":"11174:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11166:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11208:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11233:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11226:6:103"},"nodeType":"YulFunctionCall","src":"11226:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11219:6:103"},"nodeType":"YulFunctionCall","src":"11219:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11201:6:103"},"nodeType":"YulFunctionCall","src":"11201:41:103"},"nodeType":"YulExpressionStatement","src":"11201:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11125:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11136:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11147:4:103","type":""}],"src":"11061:187:103"},{"body":{"nodeType":"YulBlock","src":"11354:76:103","statements":[{"nodeType":"YulAssignment","src":"11364:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11376:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11387:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11372:3:103"},"nodeType":"YulFunctionCall","src":"11372:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11364:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11406:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11417:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11399:6:103"},"nodeType":"YulFunctionCall","src":"11399:25:103"},"nodeType":"YulExpressionStatement","src":"11399:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11323:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11334:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11345:4:103","type":""}],"src":"11253:177:103"},{"body":{"nodeType":"YulBlock","src":"11564:119:103","statements":[{"nodeType":"YulAssignment","src":"11574:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11586:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11597:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11582:3:103"},"nodeType":"YulFunctionCall","src":"11582:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11574:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11616:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11627:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11609:6:103"},"nodeType":"YulFunctionCall","src":"11609:25:103"},"nodeType":"YulExpressionStatement","src":"11609:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11665:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11650:3:103"},"nodeType":"YulFunctionCall","src":"11650:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11670:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11643:6:103"},"nodeType":"YulFunctionCall","src":"11643:34:103"},"nodeType":"YulExpressionStatement","src":"11643:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11525:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11536:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11544:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11555:4:103","type":""}],"src":"11435:248:103"},{"body":{"nodeType":"YulBlock","src":"11839:178:103","statements":[{"nodeType":"YulAssignment","src":"11849:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11872:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11857:3:103"},"nodeType":"YulFunctionCall","src":"11857:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11849:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11891:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11902:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11884:6:103"},"nodeType":"YulFunctionCall","src":"11884:25:103"},"nodeType":"YulExpressionStatement","src":"11884:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11929:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11940:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11925:3:103"},"nodeType":"YulFunctionCall","src":"11925:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11945:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11918:6:103"},"nodeType":"YulFunctionCall","src":"11918:34:103"},"nodeType":"YulExpressionStatement","src":"11918:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11972:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11983:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11968:3:103"},"nodeType":"YulFunctionCall","src":"11968:18:103"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12002:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11995:6:103"},"nodeType":"YulFunctionCall","src":"11995:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11988:6:103"},"nodeType":"YulFunctionCall","src":"11988:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11961:6:103"},"nodeType":"YulFunctionCall","src":"11961:50:103"},"nodeType":"YulExpressionStatement","src":"11961:50:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bool__to_t_bytes32_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11792:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11803:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11811:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11819:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11830:4:103","type":""}],"src":"11688:329:103"},{"body":{"nodeType":"YulBlock","src":"12141:102:103","statements":[{"nodeType":"YulAssignment","src":"12151:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12163:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12174:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12159:3:103"},"nodeType":"YulFunctionCall","src":"12159:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12151:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12193:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12208:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12224:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12229:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12220:3:103"},"nodeType":"YulFunctionCall","src":"12220:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"12233:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12216:3:103"},"nodeType":"YulFunctionCall","src":"12216:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12204:3:103"},"nodeType":"YulFunctionCall","src":"12204:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12186:6:103"},"nodeType":"YulFunctionCall","src":"12186:51:103"},"nodeType":"YulExpressionStatement","src":"12186:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12110:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12121:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12132:4:103","type":""}],"src":"12022:221:103"},{"body":{"nodeType":"YulBlock","src":"12366:132:103","statements":[{"nodeType":"YulAssignment","src":"12376:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12388:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12399:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12384:3:103"},"nodeType":"YulFunctionCall","src":"12384:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12376:4:103"}]},{"body":{"nodeType":"YulBlock","src":"12436:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"12438:16:103"},"nodeType":"YulFunctionCall","src":"12438:18:103"},"nodeType":"YulExpressionStatement","src":"12438:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12424:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12432:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12421:2:103"},"nodeType":"YulFunctionCall","src":"12421:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12414:6:103"},"nodeType":"YulFunctionCall","src":"12414:21:103"},"nodeType":"YulIf","src":"12411:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12474:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12485:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12467:6:103"},"nodeType":"YulFunctionCall","src":"12467:25:103"},"nodeType":"YulExpressionStatement","src":"12467:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12335:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12346:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12357:4:103","type":""}],"src":"12248:250:103"},{"body":{"nodeType":"YulBlock","src":"12620:132:103","statements":[{"nodeType":"YulAssignment","src":"12630:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12638:3:103"},"nodeType":"YulFunctionCall","src":"12638:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12630:4:103"}]},{"body":{"nodeType":"YulBlock","src":"12690:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"12692:16:103"},"nodeType":"YulFunctionCall","src":"12692:18:103"},"nodeType":"YulExpressionStatement","src":"12692:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12678:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12686:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12675:2:103"},"nodeType":"YulFunctionCall","src":"12675:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12668:6:103"},"nodeType":"YulFunctionCall","src":"12668:21:103"},"nodeType":"YulIf","src":"12665:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12728:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12739:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12721:6:103"},"nodeType":"YulFunctionCall","src":"12721:25:103"},"nodeType":"YulExpressionStatement","src":"12721:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12589:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12600:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12611:4:103","type":""}],"src":"12503:249:103"},{"body":{"nodeType":"YulBlock","src":"12878:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12895:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12906:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12888:6:103"},"nodeType":"YulFunctionCall","src":"12888:21:103"},"nodeType":"YulExpressionStatement","src":"12888:21:103"},{"nodeType":"YulAssignment","src":"12918:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12943:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12955:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12966:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12951:3:103"},"nodeType":"YulFunctionCall","src":"12951:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"12926:16:103"},"nodeType":"YulFunctionCall","src":"12926:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12918:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12847:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12858:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12869:4:103","type":""}],"src":"12757:219:103"},{"body":{"nodeType":"YulBlock","src":"13155:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13172:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13183:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13165:6:103"},"nodeType":"YulFunctionCall","src":"13165:21:103"},"nodeType":"YulExpressionStatement","src":"13165:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13206:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13217:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13202:3:103"},"nodeType":"YulFunctionCall","src":"13202:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13222:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13195:6:103"},"nodeType":"YulFunctionCall","src":"13195:30:103"},"nodeType":"YulExpressionStatement","src":"13195:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13245:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13256:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13241:3:103"},"nodeType":"YulFunctionCall","src":"13241:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13261:34:103","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13234:6:103"},"nodeType":"YulFunctionCall","src":"13234:62:103"},"nodeType":"YulExpressionStatement","src":"13234:62:103"},{"nodeType":"YulAssignment","src":"13305:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13317:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13328:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13313:3:103"},"nodeType":"YulFunctionCall","src":"13313:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13305:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13132:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13146:4:103","type":""}],"src":"12981:356:103"},{"body":{"nodeType":"YulBlock","src":"13516:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13533:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13544:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13526:6:103"},"nodeType":"YulFunctionCall","src":"13526:21:103"},"nodeType":"YulExpressionStatement","src":"13526:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13578:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13563:3:103"},"nodeType":"YulFunctionCall","src":"13563:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13583:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13556:6:103"},"nodeType":"YulFunctionCall","src":"13556:30:103"},"nodeType":"YulExpressionStatement","src":"13556:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13606:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13617:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13602:3:103"},"nodeType":"YulFunctionCall","src":"13602:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13622:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13595:6:103"},"nodeType":"YulFunctionCall","src":"13595:57:103"},"nodeType":"YulExpressionStatement","src":"13595:57:103"},{"nodeType":"YulAssignment","src":"13661:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13673:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13684:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13669:3:103"},"nodeType":"YulFunctionCall","src":"13669:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13661:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13493:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13507:4:103","type":""}],"src":"13342:351:103"},{"body":{"nodeType":"YulBlock","src":"13872:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13889:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13900:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13882:6:103"},"nodeType":"YulFunctionCall","src":"13882:21:103"},"nodeType":"YulExpressionStatement","src":"13882:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13923:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13934:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13919:3:103"},"nodeType":"YulFunctionCall","src":"13919:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13939:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13912:6:103"},"nodeType":"YulFunctionCall","src":"13912:30:103"},"nodeType":"YulExpressionStatement","src":"13912:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13962:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13973:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13958:3:103"},"nodeType":"YulFunctionCall","src":"13958:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13978:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13951:6:103"},"nodeType":"YulFunctionCall","src":"13951:62:103"},"nodeType":"YulExpressionStatement","src":"13951:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14033:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14044:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14029:3:103"},"nodeType":"YulFunctionCall","src":"14029:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14049:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14022:6:103"},"nodeType":"YulFunctionCall","src":"14022:36:103"},"nodeType":"YulExpressionStatement","src":"14022:36:103"},{"nodeType":"YulAssignment","src":"14067:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14079:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14090:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14075:3:103"},"nodeType":"YulFunctionCall","src":"14075:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14067:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13849:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13863:4:103","type":""}],"src":"13698:402:103"},{"body":{"nodeType":"YulBlock","src":"14279:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14296:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14307:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14289:6:103"},"nodeType":"YulFunctionCall","src":"14289:21:103"},"nodeType":"YulExpressionStatement","src":"14289:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14330:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14341:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14326:3:103"},"nodeType":"YulFunctionCall","src":"14326:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14346:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14319:6:103"},"nodeType":"YulFunctionCall","src":"14319:30:103"},"nodeType":"YulExpressionStatement","src":"14319:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14369:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14380:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14365:3:103"},"nodeType":"YulFunctionCall","src":"14365:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14385:34:103","type":"","value":"ERROR:RPL-006:BUNDLE_INDEX_TOO_L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14358:6:103"},"nodeType":"YulFunctionCall","src":"14358:62:103"},"nodeType":"YulExpressionStatement","src":"14358:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14451:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14436:3:103"},"nodeType":"YulFunctionCall","src":"14436:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14456:6:103","type":"","value":"ARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14429:6:103"},"nodeType":"YulFunctionCall","src":"14429:34:103"},"nodeType":"YulExpressionStatement","src":"14429:34:103"},{"nodeType":"YulAssignment","src":"14472:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14484:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14495:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14480:3:103"},"nodeType":"YulFunctionCall","src":"14480:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14472:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14256:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14270:4:103","type":""}],"src":"14105:400:103"},{"body":{"nodeType":"YulBlock","src":"14684:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14701:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14712:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14694:6:103"},"nodeType":"YulFunctionCall","src":"14694:21:103"},"nodeType":"YulExpressionStatement","src":"14694:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14735:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14746:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14731:3:103"},"nodeType":"YulFunctionCall","src":"14731:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14751:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14724:6:103"},"nodeType":"YulFunctionCall","src":"14724:30:103"},"nodeType":"YulExpressionStatement","src":"14724:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14774:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14785:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14770:3:103"},"nodeType":"YulFunctionCall","src":"14770:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14790:33:103","type":"","value":"ERROR:BRP-001:NO_ACTIVE_BUNDLES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14763:6:103"},"nodeType":"YulFunctionCall","src":"14763:61:103"},"nodeType":"YulExpressionStatement","src":"14763:61:103"},{"nodeType":"YulAssignment","src":"14833:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14845:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14856:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14841:3:103"},"nodeType":"YulFunctionCall","src":"14841:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14833:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14661:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14675:4:103","type":""}],"src":"14510:355:103"},{"body":{"nodeType":"YulBlock","src":"15044:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15061:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15072:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15054:6:103"},"nodeType":"YulFunctionCall","src":"15054:21:103"},"nodeType":"YulExpressionStatement","src":"15054:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15095:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15106:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15091:3:103"},"nodeType":"YulFunctionCall","src":"15091:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15111:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15084:6:103"},"nodeType":"YulFunctionCall","src":"15084:30:103"},"nodeType":"YulExpressionStatement","src":"15084:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15134:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15145:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15130:3:103"},"nodeType":"YulFunctionCall","src":"15130:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15150:34:103","type":"","value":"ERROR:RPL-007:ACTIVE_BUNDLE_INDE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15123:6:103"},"nodeType":"YulFunctionCall","src":"15123:62:103"},"nodeType":"YulExpressionStatement","src":"15123:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15216:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15201:3:103"},"nodeType":"YulFunctionCall","src":"15201:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15221:13:103","type":"","value":"X_TOO_LARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15194:6:103"},"nodeType":"YulFunctionCall","src":"15194:41:103"},"nodeType":"YulExpressionStatement","src":"15194:41:103"},{"nodeType":"YulAssignment","src":"15244:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15256:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15267:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15252:3:103"},"nodeType":"YulFunctionCall","src":"15252:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15244:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15021:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15035:4:103","type":""}],"src":"14870:407:103"},{"body":{"nodeType":"YulBlock","src":"15456:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15473:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15484:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15466:6:103"},"nodeType":"YulFunctionCall","src":"15466:21:103"},"nodeType":"YulExpressionStatement","src":"15466:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15507:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15518:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15503:3:103"},"nodeType":"YulFunctionCall","src":"15503:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15523:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15496:6:103"},"nodeType":"YulFunctionCall","src":"15496:30:103"},"nodeType":"YulExpressionStatement","src":"15496:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15546:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15557:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15542:3:103"},"nodeType":"YulFunctionCall","src":"15542:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15562:31:103","type":"","value":"ERROR:BRP-002:NO_FREE_CAPITAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15535:6:103"},"nodeType":"YulFunctionCall","src":"15535:59:103"},"nodeType":"YulExpressionStatement","src":"15535:59:103"},{"nodeType":"YulAssignment","src":"15603:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15626:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15611:3:103"},"nodeType":"YulFunctionCall","src":"15611:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15603:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15433:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15447:4:103","type":""}],"src":"15282:353:103"},{"body":{"nodeType":"YulBlock","src":"15814:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15831:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15842:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15824:6:103"},"nodeType":"YulFunctionCall","src":"15824:21:103"},"nodeType":"YulExpressionStatement","src":"15824:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15876:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15861:3:103"},"nodeType":"YulFunctionCall","src":"15861:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15881:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15854:6:103"},"nodeType":"YulFunctionCall","src":"15854:30:103"},"nodeType":"YulExpressionStatement","src":"15854:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15904:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15915:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15900:3:103"},"nodeType":"YulFunctionCall","src":"15900:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15920:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15893:6:103"},"nodeType":"YulFunctionCall","src":"15893:62:103"},"nodeType":"YulExpressionStatement","src":"15893:62:103"},{"nodeType":"YulAssignment","src":"15964:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15976:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15987:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15972:3:103"},"nodeType":"YulFunctionCall","src":"15972:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15964:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15791:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15805:4:103","type":""}],"src":"15640:356:103"},{"body":{"nodeType":"YulBlock","src":"16175:232:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16203:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16185:6:103"},"nodeType":"YulFunctionCall","src":"16185:21:103"},"nodeType":"YulExpressionStatement","src":"16185:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16237:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16222:3:103"},"nodeType":"YulFunctionCall","src":"16222:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16242:2:103","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16215:6:103"},"nodeType":"YulFunctionCall","src":"16215:30:103"},"nodeType":"YulExpressionStatement","src":"16215:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16265:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16276:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16261:3:103"},"nodeType":"YulFunctionCall","src":"16261:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16281:34:103","type":"","value":"ERROR:RPL-010:RISKPOOL_HAS_UNBUR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16254:6:103"},"nodeType":"YulFunctionCall","src":"16254:62:103"},"nodeType":"YulExpressionStatement","src":"16254:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16336:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16347:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16332:3:103"},"nodeType":"YulFunctionCall","src":"16332:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16352:12:103","type":"","value":"NT_BUNDLES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16325:6:103"},"nodeType":"YulFunctionCall","src":"16325:40:103"},"nodeType":"YulExpressionStatement","src":"16325:40:103"},{"nodeType":"YulAssignment","src":"16374:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16397:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16382:3:103"},"nodeType":"YulFunctionCall","src":"16382:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16374:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16152:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16166:4:103","type":""}],"src":"16001:406:103"},{"body":{"nodeType":"YulBlock","src":"16586:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16614:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16596:6:103"},"nodeType":"YulFunctionCall","src":"16596:21:103"},"nodeType":"YulExpressionStatement","src":"16596:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16648:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16633:3:103"},"nodeType":"YulFunctionCall","src":"16633:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16653:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16626:6:103"},"nodeType":"YulFunctionCall","src":"16626:30:103"},"nodeType":"YulExpressionStatement","src":"16626:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16676:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16687:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16672:3:103"},"nodeType":"YulFunctionCall","src":"16672:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16692:32:103","type":"","value":"ERROR:BUC-001:NOT_BUNDLE_OWNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16665:6:103"},"nodeType":"YulFunctionCall","src":"16665:60:103"},"nodeType":"YulExpressionStatement","src":"16665:60:103"},{"nodeType":"YulAssignment","src":"16734:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16757:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16742:3:103"},"nodeType":"YulFunctionCall","src":"16742:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16734:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16563:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16577:4:103","type":""}],"src":"16412:354:103"},{"body":{"nodeType":"YulBlock","src":"16945:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16962:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16973:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16955:6:103"},"nodeType":"YulFunctionCall","src":"16955:21:103"},"nodeType":"YulExpressionStatement","src":"16955:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16996:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17007:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16992:3:103"},"nodeType":"YulFunctionCall","src":"16992:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17012:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16985:6:103"},"nodeType":"YulFunctionCall","src":"16985:30:103"},"nodeType":"YulExpressionStatement","src":"16985:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17035:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17046:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17031:3:103"},"nodeType":"YulFunctionCall","src":"17031:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17051:29:103","type":"","value":"ERROR:RPL-001:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17024:6:103"},"nodeType":"YulFunctionCall","src":"17024:57:103"},"nodeType":"YulExpressionStatement","src":"17024:57:103"},{"nodeType":"YulAssignment","src":"17090:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17102:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17113:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17098:3:103"},"nodeType":"YulFunctionCall","src":"17098:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17090:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16922:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16936:4:103","type":""}],"src":"16771:351:103"},{"body":{"nodeType":"YulBlock","src":"17301:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17318:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17329:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17311:6:103"},"nodeType":"YulFunctionCall","src":"17311:21:103"},"nodeType":"YulExpressionStatement","src":"17311:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17363:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17348:3:103"},"nodeType":"YulFunctionCall","src":"17348:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17368:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17341:6:103"},"nodeType":"YulFunctionCall","src":"17341:30:103"},"nodeType":"YulExpressionStatement","src":"17341:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17391:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17402:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17387:3:103"},"nodeType":"YulFunctionCall","src":"17387:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17407:34:103","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17380:6:103"},"nodeType":"YulFunctionCall","src":"17380:62:103"},"nodeType":"YulExpressionStatement","src":"17380:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17473:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17458:3:103"},"nodeType":"YulFunctionCall","src":"17458:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17478:17:103","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17451:6:103"},"nodeType":"YulFunctionCall","src":"17451:45:103"},"nodeType":"YulExpressionStatement","src":"17451:45:103"},{"nodeType":"YulAssignment","src":"17505:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17528:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17513:3:103"},"nodeType":"YulFunctionCall","src":"17513:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17505:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17278:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17292:4:103","type":""}],"src":"17127:411:103"},{"body":{"nodeType":"YulBlock","src":"17692:931:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17720:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17702:6:103"},"nodeType":"YulFunctionCall","src":"17702:21:103"},"nodeType":"YulExpressionStatement","src":"17702:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17743:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17754:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17739:3:103"},"nodeType":"YulFunctionCall","src":"17739:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17765:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17759:5:103"},"nodeType":"YulFunctionCall","src":"17759:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17732:6:103"},"nodeType":"YulFunctionCall","src":"17732:41:103"},"nodeType":"YulExpressionStatement","src":"17732:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17793:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17804:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17789:3:103"},"nodeType":"YulFunctionCall","src":"17789:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17819:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"17827:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17815:3:103"},"nodeType":"YulFunctionCall","src":"17815:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17809:5:103"},"nodeType":"YulFunctionCall","src":"17809:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17782:6:103"},"nodeType":"YulFunctionCall","src":"17782:50:103"},"nodeType":"YulExpressionStatement","src":"17782:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17852:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17863:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17848:3:103"},"nodeType":"YulFunctionCall","src":"17848:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17878:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"17886:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17874:3:103"},"nodeType":"YulFunctionCall","src":"17874:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17868:5:103"},"nodeType":"YulFunctionCall","src":"17868:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17841:6:103"},"nodeType":"YulFunctionCall","src":"17841:50:103"},"nodeType":"YulExpressionStatement","src":"17841:50:103"},{"nodeType":"YulVariableDeclaration","src":"17900:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17930:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"17938:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17926:3:103"},"nodeType":"YulFunctionCall","src":"17926:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17920:5:103"},"nodeType":"YulFunctionCall","src":"17920:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"17904:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"17979:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17997:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18008:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17993:3:103"},"nodeType":"YulFunctionCall","src":"17993:19:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"17951:27:103"},"nodeType":"YulFunctionCall","src":"17951:62:103"},"nodeType":"YulExpressionStatement","src":"17951:62:103"},{"nodeType":"YulVariableDeclaration","src":"18022:45:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18054:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18062:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18050:3:103"},"nodeType":"YulFunctionCall","src":"18050:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18044:5:103"},"nodeType":"YulFunctionCall","src":"18044:23:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"18026:14:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18076:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"18086:6:103","type":"","value":"0x0140"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18080:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18123:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18108:3:103"},"nodeType":"YulFunctionCall","src":"18108:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"18129:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18101:6:103"},"nodeType":"YulFunctionCall","src":"18101:31:103"},"nodeType":"YulExpressionStatement","src":"18101:31:103"},{"nodeType":"YulVariableDeclaration","src":"18141:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"18172:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18203:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18188:3:103"},"nodeType":"YulFunctionCall","src":"18188:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18155:16:103"},"nodeType":"YulFunctionCall","src":"18155:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"18145:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18228:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18239:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18224:3:103"},"nodeType":"YulFunctionCall","src":"18224:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18255:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18263:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18251:3:103"},"nodeType":"YulFunctionCall","src":"18251:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18245:5:103"},"nodeType":"YulFunctionCall","src":"18245:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18217:6:103"},"nodeType":"YulFunctionCall","src":"18217:52:103"},"nodeType":"YulExpressionStatement","src":"18217:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18289:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18300:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18285:3:103"},"nodeType":"YulFunctionCall","src":"18285:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18316:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18324:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18312:3:103"},"nodeType":"YulFunctionCall","src":"18312:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18306:5:103"},"nodeType":"YulFunctionCall","src":"18306:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18278:6:103"},"nodeType":"YulFunctionCall","src":"18278:52:103"},"nodeType":"YulExpressionStatement","src":"18278:52:103"},{"nodeType":"YulVariableDeclaration","src":"18339:33:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18359:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18367:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18355:3:103"},"nodeType":"YulFunctionCall","src":"18355:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18349:5:103"},"nodeType":"YulFunctionCall","src":"18349:23:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"18343:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18381:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"18391:3:103","type":"","value":"256"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"18385:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18414:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"18425:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18410:3:103"},"nodeType":"YulFunctionCall","src":"18410:18:103"},{"name":"_2","nodeType":"YulIdentifier","src":"18430:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18403:6:103"},"nodeType":"YulFunctionCall","src":"18403:30:103"},"nodeType":"YulExpressionStatement","src":"18403:30:103"},{"nodeType":"YulVariableDeclaration","src":"18442:32:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18462:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"18470:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18458:3:103"},"nodeType":"YulFunctionCall","src":"18458:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18452:5:103"},"nodeType":"YulFunctionCall","src":"18452:22:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"18446:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18483:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"18493:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"18487:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18516:9:103"},{"name":"_5","nodeType":"YulIdentifier","src":"18527:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18512:3:103"},"nodeType":"YulFunctionCall","src":"18512:18:103"},{"name":"_4","nodeType":"YulIdentifier","src":"18532:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18505:6:103"},"nodeType":"YulFunctionCall","src":"18505:30:103"},"nodeType":"YulExpressionStatement","src":"18505:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18555:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"18566:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18551:3:103"},"nodeType":"YulFunctionCall","src":"18551:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18581:6:103"},{"name":"_5","nodeType":"YulIdentifier","src":"18589:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18577:3:103"},"nodeType":"YulFunctionCall","src":"18577:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18571:5:103"},"nodeType":"YulFunctionCall","src":"18571:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18544:6:103"},"nodeType":"YulFunctionCall","src":"18544:50:103"},"nodeType":"YulExpressionStatement","src":"18544:50:103"},{"nodeType":"YulAssignment","src":"18603:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"18611:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18603:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17661:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17672:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17683:4:103","type":""}],"src":"17543:1080:103"},{"body":{"nodeType":"YulBlock","src":"18729:76:103","statements":[{"nodeType":"YulAssignment","src":"18739:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18751:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18762:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18747:3:103"},"nodeType":"YulFunctionCall","src":"18747:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18739:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18781:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18792:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18774:6:103"},"nodeType":"YulFunctionCall","src":"18774:25:103"},"nodeType":"YulExpressionStatement","src":"18774:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18698:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18709:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18720:4:103","type":""}],"src":"18628:177:103"},{"body":{"nodeType":"YulBlock","src":"18933:135:103","statements":[{"nodeType":"YulAssignment","src":"18943:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18955:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18966:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18951:3:103"},"nodeType":"YulFunctionCall","src":"18951:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18943:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18985:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18996:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18978:6:103"},"nodeType":"YulFunctionCall","src":"18978:25:103"},"nodeType":"YulExpressionStatement","src":"18978:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19023:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19034:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19019:3:103"},"nodeType":"YulFunctionCall","src":"19019:18:103"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19053:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19046:6:103"},"nodeType":"YulFunctionCall","src":"19046:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19039:6:103"},"nodeType":"YulFunctionCall","src":"19039:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19012:6:103"},"nodeType":"YulFunctionCall","src":"19012:50:103"},"nodeType":"YulExpressionStatement","src":"19012:50:103"}]},"name":"abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18894:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18905:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18913:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18924:4:103","type":""}],"src":"18810:258:103"},{"body":{"nodeType":"YulBlock","src":"19202:119:103","statements":[{"nodeType":"YulAssignment","src":"19212:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19224:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19235:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19220:3:103"},"nodeType":"YulFunctionCall","src":"19220:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19212:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19254:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19265:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19247:6:103"},"nodeType":"YulFunctionCall","src":"19247:25:103"},"nodeType":"YulExpressionStatement","src":"19247:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19303:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19288:3:103"},"nodeType":"YulFunctionCall","src":"19288:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19308:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19281:6:103"},"nodeType":"YulFunctionCall","src":"19281:34:103"},"nodeType":"YulExpressionStatement","src":"19281:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19163:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19174:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19182:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19193:4:103","type":""}],"src":"19073:248:103"},{"body":{"nodeType":"YulBlock","src":"19483:162:103","statements":[{"nodeType":"YulAssignment","src":"19493:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19505:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19516:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19501:3:103"},"nodeType":"YulFunctionCall","src":"19501:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19493:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19535:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19546:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19528:6:103"},"nodeType":"YulFunctionCall","src":"19528:25:103"},"nodeType":"YulExpressionStatement","src":"19528:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19584:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19569:3:103"},"nodeType":"YulFunctionCall","src":"19569:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19589:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19562:6:103"},"nodeType":"YulFunctionCall","src":"19562:34:103"},"nodeType":"YulExpressionStatement","src":"19562:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19616:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19627:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19612:3:103"},"nodeType":"YulFunctionCall","src":"19612:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"19632:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19605:6:103"},"nodeType":"YulFunctionCall","src":"19605:34:103"},"nodeType":"YulExpressionStatement","src":"19605:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19436:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19447:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19455:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19463:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19474:4:103","type":""}],"src":"19326:319:103"},{"body":{"nodeType":"YulBlock","src":"19779:119:103","statements":[{"nodeType":"YulAssignment","src":"19789:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19801:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19812:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19797:3:103"},"nodeType":"YulFunctionCall","src":"19797:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19789:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19831:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19842:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19824:6:103"},"nodeType":"YulFunctionCall","src":"19824:25:103"},"nodeType":"YulExpressionStatement","src":"19824:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19869:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19880:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19865:3:103"},"nodeType":"YulFunctionCall","src":"19865:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19885:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19858:6:103"},"nodeType":"YulFunctionCall","src":"19858:34:103"},"nodeType":"YulExpressionStatement","src":"19858:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19740:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19751:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19759:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19770:4:103","type":""}],"src":"19650:248:103"},{"body":{"nodeType":"YulBlock","src":"20088:206:103","statements":[{"nodeType":"YulAssignment","src":"20098:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20121:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20106:3:103"},"nodeType":"YulFunctionCall","src":"20106:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20098:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20141:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"20152:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20134:6:103"},"nodeType":"YulFunctionCall","src":"20134:25:103"},"nodeType":"YulExpressionStatement","src":"20134:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20179:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20190:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20175:3:103"},"nodeType":"YulFunctionCall","src":"20175:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"20195:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20168:6:103"},"nodeType":"YulFunctionCall","src":"20168:34:103"},"nodeType":"YulExpressionStatement","src":"20168:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20233:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20218:3:103"},"nodeType":"YulFunctionCall","src":"20218:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"20238:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20211:6:103"},"nodeType":"YulFunctionCall","src":"20211:34:103"},"nodeType":"YulExpressionStatement","src":"20211:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20265:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20276:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20261:3:103"},"nodeType":"YulFunctionCall","src":"20261:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"20281:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20254:6:103"},"nodeType":"YulFunctionCall","src":"20254:34:103"},"nodeType":"YulExpressionStatement","src":"20254:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20033:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20044:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20052:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20060:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20068:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20079:4:103","type":""}],"src":"19903:391:103"},{"body":{"nodeType":"YulBlock","src":"20427:136:103","statements":[{"nodeType":"YulAssignment","src":"20437:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20449:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20460:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20445:3:103"},"nodeType":"YulFunctionCall","src":"20445:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20437:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20479:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"20490:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20472:6:103"},"nodeType":"YulFunctionCall","src":"20472:25:103"},"nodeType":"YulExpressionStatement","src":"20472:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20528:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20513:3:103"},"nodeType":"YulFunctionCall","src":"20513:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"20537:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20545:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20533:3:103"},"nodeType":"YulFunctionCall","src":"20533:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20506:6:103"},"nodeType":"YulFunctionCall","src":"20506:51:103"},"nodeType":"YulExpressionStatement","src":"20506:51:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint32__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20388:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20399:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20407:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20418:4:103","type":""}],"src":"20299:264:103"},{"body":{"nodeType":"YulBlock","src":"20613:230:103","statements":[{"nodeType":"YulAssignment","src":"20623:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20639:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20633:5:103"},"nodeType":"YulFunctionCall","src":"20633:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"20623:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"20651:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"20673:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"20689:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"20695:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20685:3:103"},"nodeType":"YulFunctionCall","src":"20685:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20704:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20700:3:103"},"nodeType":"YulFunctionCall","src":"20700:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20681:3:103"},"nodeType":"YulFunctionCall","src":"20681:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20669:3:103"},"nodeType":"YulFunctionCall","src":"20669:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"20655:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"20784:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"20786:16:103"},"nodeType":"YulFunctionCall","src":"20786:18:103"},"nodeType":"YulExpressionStatement","src":"20786:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"20727:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"20739:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20724:2:103"},"nodeType":"YulFunctionCall","src":"20724:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"20763:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"20775:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20760:2:103"},"nodeType":"YulFunctionCall","src":"20760:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"20721:2:103"},"nodeType":"YulFunctionCall","src":"20721:62:103"},"nodeType":"YulIf","src":"20718:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20822:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"20826:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20815:6:103"},"nodeType":"YulFunctionCall","src":"20815:22:103"},"nodeType":"YulExpressionStatement","src":"20815:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"20593:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"20602:6:103","type":""}],"src":"20568:275:103"},{"body":{"nodeType":"YulBlock","src":"20905:129:103","statements":[{"body":{"nodeType":"YulBlock","src":"20949:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"20951:16:103"},"nodeType":"YulFunctionCall","src":"20951:18:103"},"nodeType":"YulExpressionStatement","src":"20951:18:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20921:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20929:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20918:2:103"},"nodeType":"YulFunctionCall","src":"20918:30:103"},"nodeType":"YulIf","src":"20915:2:103"},{"nodeType":"YulAssignment","src":"20980:48:103","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"21000:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21008:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20996:3:103"},"nodeType":"YulFunctionCall","src":"20996:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21017:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21013:3:103"},"nodeType":"YulFunctionCall","src":"21013:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20992:3:103"},"nodeType":"YulFunctionCall","src":"20992:29:103"},{"kind":"number","nodeType":"YulLiteral","src":"21023:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20988:3:103"},"nodeType":"YulFunctionCall","src":"20988:40:103"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"20980:4:103"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"20885:6:103","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"20896:4:103","type":""}],"src":"20848:186:103"},{"body":{"nodeType":"YulBlock","src":"21087:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"21114:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21116:16:103"},"nodeType":"YulFunctionCall","src":"21116:18:103"},"nodeType":"YulExpressionStatement","src":"21116:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21103:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21110:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21106:3:103"},"nodeType":"YulFunctionCall","src":"21106:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21100:2:103"},"nodeType":"YulFunctionCall","src":"21100:13:103"},"nodeType":"YulIf","src":"21097:2:103"},{"nodeType":"YulAssignment","src":"21145:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21156:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"21159:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21152:3:103"},"nodeType":"YulFunctionCall","src":"21152:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"21145:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21070:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"21073:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"21079:3:103","type":""}],"src":"21039:128:103"},{"body":{"nodeType":"YulBlock","src":"21224:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"21283:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21285:16:103"},"nodeType":"YulFunctionCall","src":"21285:18:103"},"nodeType":"YulExpressionStatement","src":"21285:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21255:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21248:6:103"},"nodeType":"YulFunctionCall","src":"21248:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21241:6:103"},"nodeType":"YulFunctionCall","src":"21241:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21263:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21274:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21270:3:103"},"nodeType":"YulFunctionCall","src":"21270:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"21278:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"21266:3:103"},"nodeType":"YulFunctionCall","src":"21266:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21260:2:103"},"nodeType":"YulFunctionCall","src":"21260:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21237:3:103"},"nodeType":"YulFunctionCall","src":"21237:45:103"},"nodeType":"YulIf","src":"21234:2:103"},{"nodeType":"YulAssignment","src":"21314:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21329:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"21332:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"21325:3:103"},"nodeType":"YulFunctionCall","src":"21325:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"21314:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21203:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"21206:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"21212:7:103","type":""}],"src":"21172:168:103"},{"body":{"nodeType":"YulBlock","src":"21394:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"21416:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21418:16:103"},"nodeType":"YulFunctionCall","src":"21418:18:103"},"nodeType":"YulExpressionStatement","src":"21418:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21410:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"21413:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21407:2:103"},"nodeType":"YulFunctionCall","src":"21407:8:103"},"nodeType":"YulIf","src":"21404:2:103"},{"nodeType":"YulAssignment","src":"21447:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21459:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"21462:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21455:3:103"},"nodeType":"YulFunctionCall","src":"21455:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"21447:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21376:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"21379:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"21385:4:103","type":""}],"src":"21345:125:103"},{"body":{"nodeType":"YulBlock","src":"21528:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"21538:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"21547:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"21542:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"21607:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"21632:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"21637:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21628:3:103"},"nodeType":"YulFunctionCall","src":"21628:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"21651:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"21656:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21647:3:103"},"nodeType":"YulFunctionCall","src":"21647:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21641:5:103"},"nodeType":"YulFunctionCall","src":"21641:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21621:6:103"},"nodeType":"YulFunctionCall","src":"21621:39:103"},"nodeType":"YulExpressionStatement","src":"21621:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21568:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"21571:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21565:2:103"},"nodeType":"YulFunctionCall","src":"21565:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"21579:19:103","statements":[{"nodeType":"YulAssignment","src":"21581:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21590:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"21593:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21586:3:103"},"nodeType":"YulFunctionCall","src":"21586:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"21581:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"21561:3:103","statements":[]},"src":"21557:113:103"},{"body":{"nodeType":"YulBlock","src":"21696:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"21709:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"21714:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21705:3:103"},"nodeType":"YulFunctionCall","src":"21705:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"21723:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21698:6:103"},"nodeType":"YulFunctionCall","src":"21698:27:103"},"nodeType":"YulExpressionStatement","src":"21698:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21685:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"21688:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21682:2:103"},"nodeType":"YulFunctionCall","src":"21682:13:103"},"nodeType":"YulIf","src":"21679:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"21506:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"21511:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"21516:6:103","type":""}],"src":"21475:258:103"},{"body":{"nodeType":"YulBlock","src":"21785:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"21812:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21814:16:103"},"nodeType":"YulFunctionCall","src":"21814:18:103"},"nodeType":"YulExpressionStatement","src":"21814:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21805:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21798:6:103"},"nodeType":"YulFunctionCall","src":"21798:13:103"},"nodeType":"YulIf","src":"21795:2:103"},{"nodeType":"YulAssignment","src":"21843:25:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21854:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21865:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21861:3:103"},"nodeType":"YulFunctionCall","src":"21861:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21850:3:103"},"nodeType":"YulFunctionCall","src":"21850:18:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21843:3:103"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21767:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21777:3:103","type":""}],"src":"21738:136:103"},{"body":{"nodeType":"YulBlock","src":"21926:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"21957:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21959:16:103"},"nodeType":"YulFunctionCall","src":"21959:18:103"},"nodeType":"YulExpressionStatement","src":"21959:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21942:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21953:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21949:3:103"},"nodeType":"YulFunctionCall","src":"21949:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"21939:2:103"},"nodeType":"YulFunctionCall","src":"21939:17:103"},"nodeType":"YulIf","src":"21936:2:103"},{"nodeType":"YulAssignment","src":"21988:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21999:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"22006:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21995:3:103"},"nodeType":"YulFunctionCall","src":"21995:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21988:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21908:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21918:3:103","type":""}],"src":"21879:135:103"},{"body":{"nodeType":"YulBlock","src":"22065:155:103","statements":[{"nodeType":"YulVariableDeclaration","src":"22075:20:103","value":{"kind":"number","nodeType":"YulLiteral","src":"22085:10:103","type":"","value":"0xffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22079:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"22104:29:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22123:5:103"},{"name":"_1","nodeType":"YulIdentifier","src":"22130:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22119:3:103"},"nodeType":"YulFunctionCall","src":"22119:14:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"22108:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"22161:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22163:16:103"},"nodeType":"YulFunctionCall","src":"22163:18:103"},"nodeType":"YulExpressionStatement","src":"22163:18:103"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"22148:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"22157:2:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22145:2:103"},"nodeType":"YulFunctionCall","src":"22145:15:103"},"nodeType":"YulIf","src":"22142:2:103"},{"nodeType":"YulAssignment","src":"22192:22:103","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"22203:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"22212:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22199:3:103"},"nodeType":"YulFunctionCall","src":"22199:15:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"22192:3:103"}]}]},"name":"increment_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22047:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"22057:3:103","type":""}],"src":"22019:201:103"},{"body":{"nodeType":"YulBlock","src":"22263:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"22294:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"22315:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22322:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22327:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22318:3:103"},"nodeType":"YulFunctionCall","src":"22318:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22308:6:103"},"nodeType":"YulFunctionCall","src":"22308:31:103"},"nodeType":"YulExpressionStatement","src":"22308:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22359:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22362:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22352:6:103"},"nodeType":"YulFunctionCall","src":"22352:15:103"},"nodeType":"YulExpressionStatement","src":"22352:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"22387:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"22390:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22380:6:103"},"nodeType":"YulFunctionCall","src":"22380:15:103"},"nodeType":"YulExpressionStatement","src":"22380:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"22283:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22276:6:103"},"nodeType":"YulFunctionCall","src":"22276:9:103"},"nodeType":"YulIf","src":"22273:2:103"},{"nodeType":"YulAssignment","src":"22414:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22423:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"22426:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"22419:3:103"},"nodeType":"YulFunctionCall","src":"22419:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"22414:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"22248:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"22251:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"22257:1:103","type":""}],"src":"22225:209:103"},{"body":{"nodeType":"YulBlock","src":"22471:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22488:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22495:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22500:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22491:3:103"},"nodeType":"YulFunctionCall","src":"22491:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22481:6:103"},"nodeType":"YulFunctionCall","src":"22481:31:103"},"nodeType":"YulExpressionStatement","src":"22481:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22528:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22531:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22521:6:103"},"nodeType":"YulFunctionCall","src":"22521:15:103"},"nodeType":"YulExpressionStatement","src":"22521:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22552:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22555:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22545:6:103"},"nodeType":"YulFunctionCall","src":"22545:15:103"},"nodeType":"YulExpressionStatement","src":"22545:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"22439:127:103"},{"body":{"nodeType":"YulBlock","src":"22603:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22620:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22627:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22632:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22623:3:103"},"nodeType":"YulFunctionCall","src":"22623:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22613:6:103"},"nodeType":"YulFunctionCall","src":"22613:31:103"},"nodeType":"YulExpressionStatement","src":"22613:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22660:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22663:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22653:6:103"},"nodeType":"YulFunctionCall","src":"22653:15:103"},"nodeType":"YulExpressionStatement","src":"22653:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22684:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22687:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22677:6:103"},"nodeType":"YulFunctionCall","src":"22677:15:103"},"nodeType":"YulExpressionStatement","src":"22677:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"22571:127:103"},{"body":{"nodeType":"YulBlock","src":"22735:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22752:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22759:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22764:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22755:3:103"},"nodeType":"YulFunctionCall","src":"22755:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22745:6:103"},"nodeType":"YulFunctionCall","src":"22745:31:103"},"nodeType":"YulExpressionStatement","src":"22745:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22792:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22795:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22785:6:103"},"nodeType":"YulFunctionCall","src":"22785:15:103"},"nodeType":"YulExpressionStatement","src":"22785:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22816:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22819:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22809:6:103"},"nodeType":"YulFunctionCall","src":"22809:15:103"},"nodeType":"YulExpressionStatement","src":"22809:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"22703:127:103"},{"body":{"nodeType":"YulBlock","src":"22880:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"22944:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22953:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22956:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22946:6:103"},"nodeType":"YulFunctionCall","src":"22946:12:103"},"nodeType":"YulExpressionStatement","src":"22946:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22903:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22914:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22929:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22934:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22925:3:103"},"nodeType":"YulFunctionCall","src":"22925:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"22938:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22921:3:103"},"nodeType":"YulFunctionCall","src":"22921:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22910:3:103"},"nodeType":"YulFunctionCall","src":"22910:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22900:2:103"},"nodeType":"YulFunctionCall","src":"22900:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22893:6:103"},"nodeType":"YulFunctionCall","src":"22893:50:103"},"nodeType":"YulIf","src":"22890:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22869:5:103","type":""}],"src":"22835:131:103"},{"body":{"nodeType":"YulBlock","src":"23030:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"23064:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23073:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23076:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23066:6:103"},"nodeType":"YulFunctionCall","src":"23066:12:103"},"nodeType":"YulExpressionStatement","src":"23066:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23053:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"23060:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"23050:2:103"},"nodeType":"YulFunctionCall","src":"23050:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23043:6:103"},"nodeType":"YulFunctionCall","src":"23043:20:103"},"nodeType":"YulIf","src":"23040:2:103"}]},"name":"validator_revert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"23019:5:103","type":""}],"src":"22971:115:103"}]},"contents":"{\n { }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), array)\n array := array_1\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_ApplicationState(offset) -> value\n {\n value := calldataload(offset)\n validator_revert_enum_ApplicationState(value)\n }\n function abi_decode_enum_ApplicationState_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_enum_ApplicationState(value)\n }\n function abi_decode_struct_Application(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0xc0) { revert(value, value) }\n value := allocate_memory(0xc0)\n let value_1 := calldataload(headStart)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), calldataload(add(headStart, 32)))\n mstore(add(value, 64), calldataload(add(headStart, 64)))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value, 96), abi_decode_bytes(add(headStart, offset), end))\n mstore(add(value, 128), calldataload(add(headStart, 128)))\n mstore(add(value, 160), calldataload(add(headStart, 160)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_ApplicationState_fromMemory(add(_2, 96)))\n let offset_1 := mload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), mload(add(_2, 160)))\n mstore(add(value, 192), mload(add(_2, 192)))\n mstore(add(value, 224), mload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), mload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), mload(add(_2, _5)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptrt_struct$_Application_$5262_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, calldataload(_2))\n mstore(add(value, 32), calldataload(add(_2, 32)))\n mstore(add(value, 64), calldataload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_ApplicationState(add(_2, 96)))\n let offset_1 := calldataload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), calldataload(add(_2, 160)))\n mstore(add(value, 192), calldataload(add(_2, 192)))\n mstore(add(value, 224), calldataload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), calldataload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), calldataload(add(_2, _5)))\n value0 := value\n let offset_2 := calldataload(add(headStart, 32))\n if gt(offset_2, _1) { revert(value1, value1) }\n value1 := abi_decode_struct_Application(add(headStart, offset_2), dataEnd)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_BundleState(value, pos)\n {\n if iszero(lt(value, 4)) { panic_error_0x21() }\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, \"AccessControl: account \")\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n let _1 := add(pos, length)\n mstore(add(_1, 23), \" is missing role \")\n let length_1 := mload(value1)\n copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n end := add(add(_1, length_1), 40)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_address_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 96)\n tail := abi_encode_bytes(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bool__to_t_bytes32_t_uint256_t_bool__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), iszero(iszero(value2)))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:RPL-006:BUNDLE_INDEX_TOO_L\")\n mstore(add(headStart, 96), \"ARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:BRP-001:NO_ACTIVE_BUNDLES\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:RPL-007:ACTIVE_BUNDLE_INDE\")\n mstore(add(headStart, 96), \"X_TOO_LARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:BRP-002:NO_FREE_CAPITAL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"ERROR:RPL-010:RISKPOOL_HAS_UNBUR\")\n mstore(add(headStart, 96), \"NT_BUNDLES\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:BUC-001:NOT_BUNDLE_OWNER\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:RPL-001:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n abi_encode_enum_BundleState(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 128))\n let _1 := 0x0140\n mstore(add(headStart, 160), _1)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 352))\n mstore(add(headStart, 192), mload(add(value0, 160)))\n mstore(add(headStart, 224), mload(add(value0, 192)))\n let _2 := mload(add(value0, 224))\n let _3 := 256\n mstore(add(headStart, _3), _2)\n let _4 := mload(add(value0, _3))\n let _5 := 288\n mstore(add(headStart, _5), _4)\n mstore(add(headStart, _1), mload(add(value0, _5)))\n tail := tail_1\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), iszero(iszero(value1)))\n }\n function abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint256_t_uint32__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffff))\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function decrement_t_uint256(value) -> ret\n {\n if iszero(value) { panic_error_0x11() }\n ret := add(value, not(0))\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function increment_t_uint32(value) -> ret\n {\n let _1 := 0xffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := mod(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106103af5760003560e01c80637893c7bc116101f4578063a217fddf1161011a578063d0e0ba95116100ad578063e0815f0d1161007c578063e0815f0d14610735578063f1d354d01461073d578063f2fde38b1461074b578063feb1824b1461075e576103af565b8063d0e0ba9514610707578063d547741f1461071a578063d73cd99214610462578063e00323831461072d576103af565b8063be169e7e116100e9578063be169e7e146106d3578063be61e91e146106db578063c3004c86146106ec578063c40000d4146106ff576103af565b8063a217fddf146106c3578063b26025aa146106cb578063b3fca9bd14610462578063bd1fe5d014610462576103af565b80638c483e5a116101925780639a82f890116101615780639a82f890146106a0578063a17030d5146106a8578063a18aa128146106bb578063a18f5ae214610462576103af565b80638c483e5a146106565780638da5cb5b146106695780639088c1191461067a57806391d148541461068d576103af565b806386c71288116101ce57806386c712881461061257806389002da514610628578063890fbf781461063b578063893d20e81461064e576103af565b80637893c7bc146105e15780637f3b6980146105f757806382558906146105ff576103af565b80633629c3c4116102d957806359dacc6a11610277578063652028e511610246578063652028e51461058c578063715018a61461059f57806376082a5e146105a75780637888a2ff146105ce576103af565b806359dacc6a146104625780635ab1bd53146105655780635d1ca6311461057c578063638ce0ba14610584576103af565b80634101b90c116102b35780634101b90c1461053357806345fe1c6d1461053b57806354afef631461054a578063587e59d014610552576103af565b80633629c3c4146104f057806336568abe146105035780633dcdde1714610516576103af565b80631865c57d116103515780632d0821b7116103205780632d0821b7146104975780632f2ff15d146104b7578063316c5348146104ca57806336153f3a146104dd576103af565b80631865c57d1461044d5780631b867c6314610462578063248a9ca31461046c578063258d560c1461048f576103af565b8063132996041161038d578063132996041461040557806315dae03e1461042a57806317d7de7c1461043d57806318442e6314610445576103af565b806301ffc9a7146103b45780630676cb0e146103dc57806312065fe0146103fd575b600080fd5b6103c76103c2366004612a20565b61076f565b60405190151581526020015b60405180910390f35b6103ef6103ea3660046129b8565b6107a8565b6040519081526020016103d3565b6103ef610922565b600b546001600160a01b03165b6040516001600160a01b0390911681526020016103d3565b60035460ff166040516103d39190612e3e565b6001546103ef565b600a546103ef565b6104556109b2565b6040516103d39190612e24565b61046a610a38565b005b6103ef61047a3660046129b8565b60009081526012602052604090206001015490565b6103c7610a7f565b6104aa6104a53660046129b8565b610aaf565b6040516103d39190612f0a565b61046a6104c53660046129d0565b610bc4565b61046a6104d83660046129b8565b610bee565b6103ef6104eb3660046129ff565b610d8f565b61046a6104fe3660046129ff565b610f5b565b61046a6105113660046129d0565b610fe3565b6040805160208101909152600081525b6040516103d39190612e52565b6103ef611061565b6103ef670de0b6b3a764000081565b600d546103ef565b61046a6105603660046129b8565b61109f565b61041260035461010090046001600160a01b031690565b6002546103ef565b61046a61120c565b61046a61059a3660046129b8565b611259565b61046a6112d6565b6103ef7f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93581565b6103ef6105dc366004612a48565b6112e8565b6105266040518060200160405280600081525081565b6103ef611326565b61046a61060d3660046129ff565b611364565b6103c7610620366004612c29565b506001919050565b6103ef6106363660046129ff565b6113e4565b6103c76106493660046129ff565b611558565b6104126115ef565b61046a6106643660046129b8565b611601565b6000546001600160a01b0316610412565b61046a610688366004612980565b61176e565b6103c761069b3660046129d0565b6117a3565b6103c76117ce565b61046a6106b63660046129b8565b6117d6565b600e546103ef565b6103ef600081565b6103ef611943565b61046a611981565b6103ef69d3c21bcecceda100000081565b61046a6106fa3660046129b8565b6119ce565b6103ef611a52565b61046a6107153660046129b8565b611a90565b61046a6107283660046129d0565b611ada565b6103ef611aff565b6103c7611b3c565b670de0b6b3a76400006103ef565b61046a610759366004612980565b611b45565b600c546001600160a01b0316610412565b60006001600160e01b03198216637965db0b60e01b14806107a057506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b6000806107b460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190612d23565b83106108985760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190612d23565b9392505050565b60008061092e60025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190612d23565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156109fb57600080fd5b505afa158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190612a8b565b905090565b610a4d6810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614610a7d5760405162461bcd60e51b815260040161088f90612e65565b565b600060025b60035460ff166002811115610aa957634e487b7160e01b600052602160045260246000fd5b14905090565b610ab76127de565b600a548210610b145760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b606482015260840161088f565b6000600a8381548110610b3757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b158015610b8857600080fd5b505afa158015610b9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091b9190810190612b55565b600082815260126020526040902060010154610bdf81611c3d565b610be98383611c47565b505050565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3757600080fd5b505afa158015610c4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c739190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610cb09160040190815260200190565b60206040518083038186803b158015610cc857600080fd5b505afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d00919061299c565b9050336001600160a01b03821614610d2a5760405162461bcd60e51b815260040161088f90612e9c565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e149190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610e519160040190815260200190565b60206040518083038186803b158015610e6957600080fd5b505afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061299c565b9050336001600160a01b03821614610ecb5760405162461bcd60e51b815260040161088f90612e9c565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610f1957600080fd5b505af1158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f519190612d23565b9695505050505050565b610f6b63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614610f9b5760405162461bcd60e51b815260040161088f90612ed3565b610fa58282611ccd565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b6001600160a01b03811633146110535760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161088f565b61105d8282611d4f565b5050565b60008061106d60025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240161095c565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156110e857600080fd5b505afa1580156110fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111249190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916111619160040190815260200190565b60206040518083038186803b15801561117957600080fd5b505afa15801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b1919061299c565b9050336001600160a01b038216146111db5760405162461bcd60e51b815260040161088f90612e9c565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610d57565b6112216810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146112515760405162461bcd60e51b815260040161088f90612e65565b610a7d611db6565b611261611e37565b600061126c60025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050505050565b6112de611e37565b610a7d6000611e91565b60007f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93561131481611c3d565b61131e8484611ee1565b949350505050565b60008061133260025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db328449060240161095c565b61137463141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b0316146113a45760405162461bcd60e51b815260040161088f90612ed3565b6113ae8282611fe4565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610fd7565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b15801561142d57600080fd5b505afa158015611441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114699190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916114a69160040190815260200190565b60206040518083038186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f6919061299c565b9050336001600160a01b038216146115205760405162461bcd60e51b815260040161088f90612e9c565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610eff565b600061156a63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b03161461159a5760405162461bcd60e51b815260040161088f90612ed3565b6115a48383612033565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610a33565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561164a57600080fd5b505afa15801561165e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116869190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116c39160040190815260200190565b60206040518083038186803b1580156116db57600080fd5b505afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061299c565b9050336001600160a01b0382161461173d5760405162461bcd60e51b815260040161088f90612e9c565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610d57565b611776611e37565b6117a07f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93582612436565b50565b60009182526012602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080610a84565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261185b9190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916118989160040190815260200190565b60206040518083038186803b1580156118b057600080fd5b505afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e8919061299c565b9050336001600160a01b038216146119125760405162461bcd60e51b815260040161088f90612e9c565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610d57565b60008061194f60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d92359060240161095c565b6119966810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146119c65760405162461bcd60e51b815260040161088f90612e65565b610a7d612440565b6119de63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614611a0e5760405162461bcd60e51b815260040161088f90612ed3565b6000611a1982612528565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610fd7565b600080611a5e60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f9060240161095c565b611aa56810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614611ad55760405162461bcd60e51b815260040161088f90612e65565b600255565b600082815260126020526040902060010154611af581611c3d565b610be98383611d4f565b600080611b0b60025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b03169063295609809060240161095c565b60006001610a84565b611b4d611e37565b6001600160a01b038116611bb25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088f565b6117a081611e91565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c0557600080fd5b505afa158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a0919061299c565b6117a08133612598565b611c5182826117a3565b61105d5760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611c893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611d3257600080fd5b505af1158015611d46573d6000803e3d6000fd5b50505050505050565b611d5982826117a3565b1561105d5760008281526012602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e7490611f1a90849088908890600401612df0565b602060405180830381600087803b158015611f3457600080fd5b505af1158015611f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6c9190612d23565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611d18565b60008061203e611061565b9050600061204a611aff565b90506000612056611943565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a1600083116120eb5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c455300604482015260640161088f565b80821161213a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c000000604482015260640161088f565b6121448582612ffa565b821061242d57600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561218f57600080fd5b505afa1580156121a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121cb9190810190612aaa565b6011549091506000906121e590869063ffffffff166130ca565b905060005b85811080156121f7575086155b15612429576000612207836107a8565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561225157600080fd5b505afa158015612265573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261228d9190810190612b55565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a180156124135760008260c001518360a001516122ec9190613031565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b81106123f857600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b15801561239257600080fd5b505af11580156123a6573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff169250906123d4836130a6565b91906101000a81548163ffffffff021916908363ffffffff16021790555050612411565b89612404876001612ffa565b61240e91906130ca565b95505b505b50505080806124219061308b565b9150506121ea565b5050505b50505092915050565b61105d8282611c47565b600061244b60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561249057600080fd5b505afa1580156124a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c89190612d23565b156117a05760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b606482015260840161088f565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561258457600080fd5b505af11580156108f7573d6000803e3d6000fd5b6125a282826117a3565b61105d576125ba816001600160a01b031660146125fc565b6125c58360206125fc565b6040516020016125d6929190612d7b565b60408051601f198184030181529082905262461bcd60e51b825261088f91600401612e52565b6060600061260b836002613012565b612616906002612ffa565b67ffffffffffffffff81111561263c57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612666576020820181803683370190505b509050600360fc1b8160008151811061268f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126cc57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006126f0846002613012565b6126fb906001612ffa565b90505b600181111561278f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061273d57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061276157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361278881613074565b90506126fe565b50831561091b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161088f565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561282057634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612860578081fd5b813561287361286e82612fd2565b612fa1565b818152846020838601011115612887578283fd5b816020850160208301379081016020019190915292915050565b600082601f8301126128b1578081fd5b81516128bf61286e82612fd2565b8181528460208386010111156128d3578283fd5b61131e826020830160208701613048565b80356107a381613141565b80516107a381613141565b600060c0828403121561290b578081fd5b61291560c0612fa1565b9050813561292281613141565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561295457600080fd5b61296084828501612850565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612991578081fd5b813561091b8161312c565b6000602082840312156129ad578081fd5b815161091b8161312c565b6000602082840312156129c9578081fd5b5035919050565b600080604083850312156129e2578081fd5b8235915060208301356129f48161312c565b809150509250929050565b60008060408385031215612a11578182fd5b50508035926020909101359150565b600060208284031215612a31578081fd5b81356001600160e01b03198116811461091b578182fd5b60008060408385031215612a5a578182fd5b823567ffffffffffffffff811115612a70578283fd5b612a7c85828601612850565b95602094909401359450505050565b600060208284031215612a9c578081fd5b81516007811061091b578182fd5b600060208284031215612abb578081fd5b815167ffffffffffffffff80821115612ad2578283fd5b9083019060c08286031215612ae5578283fd5b612aef60c0612fa1565b8251612afa81613141565b808252506020830151602082015260408301516040820152606083015182811115612b23578485fd5b612b2f878286016128a1565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612b66578081fd5b815167ffffffffffffffff80821115612b7d578283fd5b8184019150610140808387031215612b93578384fd5b612b9c81612fa1565b9050825181526020830151602082015260408301516040820152612bc2606084016128ef565b6060820152608083015182811115612bd8578485fd5b612be4878286016128a1565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60008060408385031215612c3b578182fd5b823567ffffffffffffffff80821115612c52578384fd5b8185019150610140808388031215612c68578485fd5b612c7181612fa1565b9050823581526020830135602082015260408301356040820152612c97606084016128e4565b6060820152608083013582811115612cad578586fd5b612cb988828601612850565b60808301525060a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250809450506020850135915080821115612d0c578283fd5b50612d19858286016128fa565b9150509250929050565b600060208284031215612d34578081fd5b5051919050565b60008151808452612d53816020860160208601613048565b601f01601f19169290920160200192915050565b60048110612d7757612d77613100565b9052565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612db3816017850160208801613048565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612de4816028840160208801613048565b01602801949350505050565b6001600160a01b0384168152606060208201819052600090612e1490830185612d3b565b9050826040830152949350505050565b6020810160078310612e3857612e38613100565b91905290565b6020810160038310612e3857612e38613100565b60006020825261091b6020830184612d3b565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612f3d6080840182612d67565b5060808301516101408060a0850152612f5a610160850183612d3b565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612fca57612fca613116565b604052919050565b600067ffffffffffffffff821115612fec57612fec613116565b50601f01601f191660200190565b6000821982111561300d5761300d6130ea565b500190565b600081600019048311821515161561302c5761302c6130ea565b500290565b600082821015613043576130436130ea565b500390565b60005b8381101561306357818101518382015260200161304b565b83811115611e315750506000910152565b600081613083576130836130ea565b506000190190565b600060001982141561309f5761309f6130ea565b5060010190565b600063ffffffff808316818114156130c0576130c06130ea565b6001019392505050565b6000826130e557634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146117a057600080fd5b600481106117a057600080fdfea26469706673582212209e8ff8b71639b58bff88d3c17bb55e56c77f9b7258fc689f49deade934a4a8be64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3AF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7893C7BC GT PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xD0E0BA95 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x735 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x73D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x74B JUMPI DUP1 PUSH4 0xFEB1824B EQ PUSH2 0x75E JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x71A JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xE0032383 EQ PUSH2 0x72D JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xBE169E7E GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x6D3 JUMPI DUP1 PUSH4 0xBE61E91E EQ PUSH2 0x6DB JUMPI DUP1 PUSH4 0xC3004C86 EQ PUSH2 0x6EC JUMPI DUP1 PUSH4 0xC40000D4 EQ PUSH2 0x6FF JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x6C3 JUMPI DUP1 PUSH4 0xB26025AA EQ PUSH2 0x6CB JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x462 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x9A82F890 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x6A8 JUMPI DUP1 PUSH4 0xA18AA128 EQ PUSH2 0x6BB JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x462 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x656 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x669 JUMPI DUP1 PUSH4 0x9088C119 EQ PUSH2 0x67A JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x68D JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x86C71288 GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x86C71288 EQ PUSH2 0x612 JUMPI DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x628 JUMPI DUP1 PUSH4 0x890FBF78 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x64E JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x7893C7BC EQ PUSH2 0x5E1 JUMPI DUP1 PUSH4 0x7F3B6980 EQ PUSH2 0x5F7 JUMPI DUP1 PUSH4 0x82558906 EQ PUSH2 0x5FF JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x3629C3C4 GT PUSH2 0x2D9 JUMPI DUP1 PUSH4 0x59DACC6A GT PUSH2 0x277 JUMPI DUP1 PUSH4 0x652028E5 GT PUSH2 0x246 JUMPI DUP1 PUSH4 0x652028E5 EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0x76082A5E EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0x7888A2FF EQ PUSH2 0x5CE JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x565 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x584 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x4101B90C GT PUSH2 0x2B3 JUMPI DUP1 PUSH4 0x4101B90C EQ PUSH2 0x533 JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0x54AFEF63 EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x552 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x3629C3C4 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x503 JUMPI DUP1 PUSH4 0x3DCDDE17 EQ PUSH2 0x516 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1865C57D GT PUSH2 0x351 JUMPI DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x320 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x4B7 JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x4DD JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1865C57D EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x46C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x48F JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x13299604 GT PUSH2 0x38D JUMPI DUP1 PUSH4 0x13299604 EQ PUSH2 0x405 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x42A JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x43D JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x445 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0x676CB0E EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x3FD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C7 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A20 JUMP JUMPDEST PUSH2 0x76F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EF PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x922 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E3E JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x455 PUSH2 0x9B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E24 JUMP JUMPDEST PUSH2 0x46A PUSH2 0xA38 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3EF PUSH2 0x47A CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0xA7F JUMP JUMPDEST PUSH2 0x4AA PUSH2 0x4A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0xAAF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2F0A JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0xBC4 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0xBEE JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x4EB CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0xD8F JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0xF5B JUMP JUMPDEST PUSH2 0x46A PUSH2 0x511 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E52 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1061 JUMP JUMPDEST PUSH2 0x3EF PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x560 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x109F JUMP JUMPDEST PUSH2 0x412 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x120C JUMP JUMPDEST PUSH2 0x46A PUSH2 0x59A CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1259 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x12D6 JUMP JUMPDEST PUSH2 0x3EF PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x5DC CALLDATASIZE PUSH1 0x4 PUSH2 0x2A48 JUMP JUMPDEST PUSH2 0x12E8 JUMP JUMPDEST PUSH2 0x526 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1326 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x60D CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x1364 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x620 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C29 JUMP JUMPDEST POP PUSH1 0x1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x636 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x13E4 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x649 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x1558 JUMP JUMPDEST PUSH2 0x412 PUSH2 0x15EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x664 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1601 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x412 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x688 CALLDATASIZE PUSH1 0x4 PUSH2 0x2980 JUMP JUMPDEST PUSH2 0x176E JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x69B CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x17CE JUMP JUMPDEST PUSH2 0x46A PUSH2 0x6B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x3EF PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1943 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x3EF PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x6FA CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x19CE JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1A52 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x715 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1A90 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x728 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0x1ADA JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1AFF JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x1B3C JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x759 CALLDATASIZE PUSH1 0x4 PUSH2 0x2980 JUMP JUMPDEST PUSH2 0x1B45 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x412 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x7A0 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x7B4 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x80D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x831 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST DUP4 LT PUSH2 0x898 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030373A4143544956455F42554E444C455F494E4445 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x585F544F4F5F4C41524745 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x91B SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x92E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1E010439 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1E010439 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x974 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x988 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AC SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA33 SWAP2 SWAP1 PUSH2 0x2A8B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xA4D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x27DE JUMP JUMPDEST PUSH1 0xA SLOAD DUP3 LT PUSH2 0xB14 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030363A42554E444C455F494E4445585F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xB37 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x91B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xBDF DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0xBE9 DUP4 DUP4 PUSH2 0x1C47 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC73 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xCB0 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD00 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xD2A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62D8A69 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x316C5348 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD85 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xE14 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xE51 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE7D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEA1 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xECB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B0A9F9D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x36153F3A SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF51 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF6B PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0xFA5 DUP3 DUP3 PUSH2 0x1CCD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xD910A5091EEA39C3EFEED9891A9E2B4694BD064808F5B0A4DE415D70B313EC52 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x1053 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x105D DUP3 DUP3 PUSH2 0x1D4F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x106D PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1124 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1161 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x118D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11B1 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x11DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x587E59D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x587E59D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH2 0x1221 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1251 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0xA7D PUSH2 0x1DB6 JUMP JUMPDEST PUSH2 0x1261 PUSH2 0x1E37 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126C PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x12DE PUSH2 0x1E37 JUMP JUMPDEST PUSH2 0xA7D PUSH1 0x0 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 PUSH2 0x1314 DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0x131E DUP5 DUP5 PUSH2 0x1EE1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1332 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1374 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0x13AE DUP3 DUP3 PUSH2 0x1FE4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xEE37957C2D37326FA4E3897FC3947BBDBD8E1082639A302C1C206B4D1C5E695 SWAP2 ADD PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x142D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1441 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1469 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x14A6 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14F6 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1520 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89002DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x89002DA5 SWAP1 PUSH1 0x44 ADD PUSH2 0xEFF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x156A PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x159A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0x15A4 DUP4 DUP4 PUSH2 0x2033 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP3 ISZERO ISZERO DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9D0F25E972AD53428B0A94CD615FA731919562FA34769DF0F9C3EED71B0BD81E SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA33 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x164A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x165E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1686 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x16C3 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1713 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x173D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x46241F2D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8C483E5A SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH2 0x1776 PUSH2 0x1E37 JUMP JUMPDEST PUSH2 0x17A0 PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 DUP3 PUSH2 0x2436 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA84 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x181F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1833 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x185B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1898 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18E8 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA17030D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA17030D5 SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x194F PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F5D9235 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3F5D9235 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1996 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0xA7D PUSH2 0x2440 JUMP JUMPDEST PUSH2 0x19DE PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A0E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A19 DUP3 PUSH2 0x2528 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x22BF66455B4BF54C9548E2BB650543CFA753A53CAB13AF4020DDBFA76C231B0F SWAP2 ADD PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1A5E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBCD5349F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBCD5349F SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1AA5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1AD5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x1AF5 DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0xBE9 DUP4 DUP4 PUSH2 0x1D4F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1B0B PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH3 0x52AC13 PUSH1 0xE7 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x29560980 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0xA84 JUMP JUMPDEST PUSH2 0x1B4D PUSH2 0x1E37 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1BB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x17A0 DUP2 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C19 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7A0 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST PUSH2 0x17A0 DUP2 CALLER PUSH2 0x2598 JUMP JUMPDEST PUSH2 0x1C51 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x105D JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1C89 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D46 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D59 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST ISZERO PUSH2 0x105D JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH1 0xD SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x5F971AA3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x64 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0xBF2E3546 SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E31 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57F079D PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x15FC1E74 SWAP1 PUSH2 0x1F1A SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2DF0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F48 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F6C SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC65A7BB8D6351C1CF70C95A316CC6A92839C986682D98BC35F958F4883F9D2A8 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH32 0xD17D9DC3726BA31D9AF5D3A3425289766158A8EA95520E1C299CCBE4A2978B34 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x1D18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x203E PUSH2 0x1061 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x204A PUSH2 0x1AFF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2056 PUSH2 0x1943 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7296D1A54B2D02C3A2F8F0B83B688D6B8415618F2AB8C3D5F761DD678DCC4B29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 GT PUSH2 0x20EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030313A4E4F5F4143544956455F42554E444C455300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST DUP1 DUP3 GT PUSH2 0x213A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030323A4E4F5F465245455F4341504954414C000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x2144 DUP6 DUP3 PUSH2 0x2FFA JUMP JUMPDEST DUP3 LT PUSH2 0x242D JUMPI PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x21CB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AAA JUMP JUMPDEST PUSH1 0x11 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x21E5 SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x30CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT DUP1 ISZERO PUSH2 0x21F7 JUMPI POP DUP7 ISZERO JUMPDEST ISZERO PUSH2 0x2429 JUMPI PUSH1 0x0 PUSH2 0x2207 DUP4 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2265 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x228D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x4FB0F8B19E3CE187A133519BFF1FCBDF3DFBC1B55F8BC334A3DA5BCADBEEA2A7 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 ISZERO PUSH2 0x2413 JUMPI PUSH1 0x0 DUP3 PUSH1 0xC0 ADD MLOAD DUP4 PUSH1 0xA0 ADD MLOAD PUSH2 0x22EC SWAP2 SWAP1 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xE54EF564BEE7E49A6E78296E638947532DE075D47CD66E331104B4812756F119 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 DUP2 LT PUSH2 0x23F8 JUMPI PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP15 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP7 SWAP1 SSTORE PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 SWAP15 POP PUSH4 0xFFFFFFFF AND SWAP3 POP SWAP1 PUSH2 0x23D4 DUP4 PUSH2 0x30A6 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x2411 JUMP JUMPDEST DUP10 PUSH2 0x2404 DUP8 PUSH1 0x1 PUSH2 0x2FFA JUMP JUMPDEST PUSH2 0x240E SWAP2 SWAP1 PUSH2 0x30CA JUMP JUMPDEST SWAP6 POP JUMPDEST POP JUMPDEST POP POP POP DUP1 DUP1 PUSH2 0x2421 SWAP1 PUSH2 0x308B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x21EA JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x105D DUP3 DUP3 PUSH2 0x1C47 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x244B PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24C8 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST ISZERO PUSH2 0x17A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3031303A5249534B504F4F4C5F4841535F554E425552 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x4E545F42554E444C4553 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x25A2 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x105D JUMPI PUSH2 0x25BA DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x25FC JUMP JUMPDEST PUSH2 0x25C5 DUP4 PUSH1 0x20 PUSH2 0x25FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25D6 SWAP3 SWAP2 SWAP1 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x88F SWAP2 PUSH1 0x4 ADD PUSH2 0x2E52 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x260B DUP4 PUSH1 0x2 PUSH2 0x3012 JUMP JUMPDEST PUSH2 0x2616 SWAP1 PUSH1 0x2 PUSH2 0x2FFA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x263C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2666 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x268F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x26CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x26F0 DUP5 PUSH1 0x2 PUSH2 0x3012 JUMP JUMPDEST PUSH2 0x26FB SWAP1 PUSH1 0x1 PUSH2 0x2FFA JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x278F JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x273D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2761 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x2788 DUP2 PUSH2 0x3074 JUMP JUMPDEST SWAP1 POP PUSH2 0x26FE JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x91B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2820 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2860 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2873 PUSH2 0x286E DUP3 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x2FA1 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2887 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28B1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x28BF PUSH2 0x286E DUP3 PUSH2 0x2FD2 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x28D3 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x131E DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3048 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x7A3 DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x7A3 DUP2 PUSH2 0x3141 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x290B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2915 PUSH1 0xC0 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x2922 DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2954 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2960 DUP5 DUP3 DUP6 ADD PUSH2 0x2850 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2991 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91B DUP2 PUSH2 0x312C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x91B DUP2 PUSH2 0x312C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29C9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29E2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x29F4 DUP2 PUSH2 0x312C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A11 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A31 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x91B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A5A JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A70 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2A7C DUP6 DUP3 DUP7 ADD PUSH2 0x2850 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A9C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x91B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ABB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2AD2 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2AE5 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2AEF PUSH1 0xC0 PUSH2 0x2FA1 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2AFA DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2B23 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2B2F DUP8 DUP3 DUP7 ADD PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B66 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2B7D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2B93 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2B9C DUP2 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2BC2 PUSH1 0x60 DUP5 ADD PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BD8 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2BE4 DUP8 DUP3 DUP7 ADD PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C3B JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C52 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP9 SUB SLT ISZERO PUSH2 0x2C68 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2C71 DUP2 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2C97 PUSH1 0x60 DUP5 ADD PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x2CAD JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x2CB9 DUP9 DUP3 DUP7 ADD PUSH2 0x2850 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD CALLDATALOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D0C JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2D19 DUP6 DUP3 DUP7 ADD PUSH2 0x28FA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D34 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2D53 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3048 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x2D77 JUMPI PUSH2 0x2D77 PUSH2 0x3100 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x2DB3 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3048 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x2DE4 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3048 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2E14 SWAP1 DUP4 ADD DUP6 PUSH2 0x2D3B JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2E38 JUMPI PUSH2 0x2E38 PUSH2 0x3100 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x2E38 JUMPI PUSH2 0x2E38 PUSH2 0x3100 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x91B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F42554E444C455F4F574E45520000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030313A4143434553535F44454E4945440000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2F3D PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2D67 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2F5A PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2D3B JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2FCA JUMPI PUSH2 0x2FCA PUSH2 0x3116 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2FEC JUMPI PUSH2 0x2FEC PUSH2 0x3116 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x300D JUMPI PUSH2 0x300D PUSH2 0x30EA JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x302C JUMPI PUSH2 0x302C PUSH2 0x30EA JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3043 JUMPI PUSH2 0x3043 PUSH2 0x30EA JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3063 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x304B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1E31 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x3083 JUMPI PUSH2 0x3083 PUSH2 0x30EA JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x309F JUMPI PUSH2 0x309F PUSH2 0x30EA JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x30C0 JUMPI PUSH2 0x30C0 PUSH2 0x30EA JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x30E5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x17A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x17A0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 DUP16 0xF8 0xB7 AND CODECOPY 0xB5 DUP12 SELFDESTRUCT DUP9 0xD3 0xC1 PUSH28 0xB55E56C77F9B7258FC689F49DEADE934A4A8BE64736F6C6343000802 STOP CALLER ","sourceMap":"334:1416:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2606:202:37;;;;;;:::i;:::-;;:::i;:::-;;;11226:14:103;;11219:22;11201:41;;11189:2;11174:18;2606:202:37;;;;;;;;7157:320:19;;;;;;:::i;:::-;;:::i;:::-;;;11399:25:103;;;11387:2;11372:18;7157:320:19;11354:76:103;8164:164:19;;;:::i;5982:92::-;6059:7;;-1:-1:-1;;;;;6059:7:19;5982:92;;;-1:-1:-1;;;;;10175:32:103;;;10157:51;;10145:2;10130:18;5982:92:19;10112:102:103;2394:100:12;2477:14;;;;2394:100;;;;;;:::i;2220:83::-;2286:14;;2220:83;;6585:100:19;6660:10;:17;6585:100;;2500:136:12;;;:::i;:::-;;;;;;;:::i;3279:78::-;;;:::i;:::-;;4391:129:37;;;;;;:::i;:::-;4465:7;4491:12;;;:6;:12;;;;;:22;;;;4391:129;2973:120:12;;;:::i;6693:278:19:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4816:145:37:-;;;;;;:::i;:::-;;:::i;3875:165:19:-;;;;;;:::i;:::-;;:::i;3461:237::-;;;;;;:::i;:::-;;:::i;4942:230::-;;;;;;:::i;:::-;;:::i;5925:214:37:-;;;;;;:::i;:::-;;:::i;7485:135:19:-;7583:29;;;;;;;;;-1:-1:-1;7583:29:19;;7485:135;;;;;;;:::i;6979:170::-;;;:::i;580:61::-;;635:6;580:61;;6457:120;6551:18;;6457:120;;4219:161;;;;;;:::i;:::-;;:::i;3101:86:12:-;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;2309:79;2373:12;;2309:79;;3195:78;;;:::i;5430:278:19:-;;;;;;:::i;:::-;;:::i;1831:101:41:-;;;:::i;482:61:68:-;;522:21;482:61;;1191:236;;;;;;:::i;:::-;;:::i;648:57:19:-;;;;;;;;;;;;;;;;5716:258;;;:::i;4707:227::-;;;;;;:::i;:::-;;:::i;1499:246:68:-;;;;;;:::i;:::-;-1:-1:-1;1733:4:68;;1499:246;-1:-1:-1;1499:246:68;3219:234:19;;;;;;:::i;:::-;;:::i;4388:311::-;;;;;;:::i;:::-;;:::i;2642:77:12:-;;;:::i;4048:163:19:-;;;;;;:::i;:::-;;:::i;1201:85:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;1040:141:68;;;;;;:::i;:::-;;:::i;2895:145:37:-;;;;;;:::i;:::-;;:::i;2851:116:12:-;;;:::i;3706:161:19:-;;;;;;:::i;:::-;;:::i;6190:117::-;6280:19;;6190:117;;2027:49:37;;2072:4;2027:49;;7800:182:19;;;:::i;3772:77:12:-;;;:::i;635:55:68:-;;684:6;635:55;;5180:242:19;;;;;;:::i;:::-;;:::i;7990:166::-;;;:::i;2131:81:12:-;;;;;;:::i;:::-;;:::i;5241:147:37:-;;;;;;:::i;:::-;;:::i;7628:164:19:-;;;:::i;2727:118:12:-;;;:::i;6315:134:19:-;635:6;6315:134;;2081:198:41;;;;;;:::i;:::-;;:::i;6082:100:19:-;6163:11;;-1:-1:-1;;;;;6163:11:19;6082:100;;2606:202:37;2691:4;-1:-1:-1;;;;;;2714:47:37;;-1:-1:-1;;;2714:47:37;;:87;;-1:-1:-1;;;;;;;;;;937:40:62;;;2765:36:37;2707:94;;2606:202;;;;:::o;7157:320:19:-;7226:16;7255:18;7276:7;2373:12:12;;2309:79;;7276:7:19;7308:16;;:42;;-1:-1:-1;;;7308:42:19;;;;;11399:25:103;;;7255:28:19;;-1:-1:-1;;;;;;7308:16:19;;:30;;11372:18:103;;7308:42:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7302:3;:48;7294:104;;;;-1:-1:-1;;;7294:104:19;;15072:2:103;7294:104:19;;;15054:21:103;15111:2;15091:18;;;15084:30;15150:34;15130:18;;;15123:62;-1:-1:-1;;;15201:18:103;;;15194:41;15252:19;;7294:104:19;;;;;;;;;7418:16;;:51;;-1:-1:-1;;;7418:51:19;;;;;11609:25:103;;;11650:18;;;11643:34;;;-1:-1:-1;;;;;7418:16:19;;;;:34;;11582:18:103;;7418:51:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7411:58;7157:320;-1:-1:-1;;;7157:320:19:o;8164:164::-;8215:7;8235:18;8256:7;2373:12:12;;2309:79;;8256:7:19;8281:16;;:39;;-1:-1:-1;;;8281:39:19;;;;;11399:25:103;;;8235:28:19;;-1:-1:-1;;;;;;8281:16:19;;:27;;11372:18:103;;8281:39:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8274:46;;;8164:164;:::o;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;11399:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;11372:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2578:55;;2500:136;:::o;3279:78::-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3279:78::o;2973:120::-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;6693:278:19:-;6754:21;;:::i;:::-;6802:10;:17;6796:23;;6788:72;;;;-1:-1:-1;;;6788:72:19;;14307:2:103;6788:72:19;;;14289:21:103;14346:2;14326:18;;;14319:30;14385:34;14365:18;;;14358:62;-1:-1:-1;;;14436:18:103;;;14429:34;14480:19;;6788:72:19;14279:226:103;6788:72:19;6873:17;6893:10;6904:3;6893:15;;;;;;-1:-1:-1;;;6893:15:19;;;;;;;;;;;;;;;;;;;6926:16;;:37;;-1:-1:-1;;;6926:37:19;;;;;11399:25:103;;;6893:15:19;;-1:-1:-1;;;;;;6926:16:19;;:26;;11372:18:103;;6926:37:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6926:37:19;;;;;;;;;;;;:::i;4816:145:37:-;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4929:25:::1;4940:4;4946:7;4929:10;:25::i;:::-;4816:145:::0;;;:::o;3875:165:19:-;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;3967:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3993:16:::1;::::0;:39:::1;::::0;-1:-1:-1;;;3993:39:19;;::::1;::::0;::::1;11399:25:103::0;;;-1:-1:-1;;;;;3993:16:19;;::::1;::::0;:29:::1;::::0;11372:18:103;;3993:39:19::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3875:165:::0;;;;:::o;3461:237::-;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;3596:17:19;;3569:8;;3596:17;;-1:-1:-1;;;;;1413:16:19;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3643:16:::1;::::0;:47:::1;::::0;-1:-1:-1;;;3643:47:19;;::::1;::::0;::::1;11609:25:103::0;;;11650:18;;;11643:34;;;-1:-1:-1;;;;;3643:16:19;;::::1;::::0;:29:::1;::::0;11582:18:103;;3643:47:19::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3631:59:::0;3461:237;-1:-1:-1;;;;;;3461:237:19:o;4942:230::-;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;5068:34:::1;5084:9;5095:6;5068:15;:34::i;:::-;5118:46;::::0;;11609:25:103;;;11665:2;11650:18;;11643:34;;;5118:46:19::1;::::0;11582:18:103;5118:46:19::1;;;;;;;;4942:230:::0;;:::o;5925:214:37:-;-1:-1:-1;;;;;6020:23:37;;719:10:59;6020:23:37;6012:83;;;;-1:-1:-1;;;6012:83:37;;17329:2:103;6012:83:37;;;17311:21:103;17368:2;17348:18;;;17341:30;17407:34;17387:18;;;17380:62;-1:-1:-1;;;17458:18:103;;;17451:45;17513:19;;6012:83:37;17301:237:103;6012:83:37;6106:26;6118:4;6124:7;6106:11;:26::i;:::-;5925:214;;:::o;6979:170:19:-;7033:7;7053:18;7074:7;2373:12:12;;2309:79;;7074:7:19;7099:16;;:42;;-1:-1:-1;;;7099:42:19;;;;;11399:25:103;;;7053:28:19;;-1:-1:-1;;;;;;7099:16:19;;:30;;11372:18:103;;7099:42:19;11354:76:103;4219:161:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;4309:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;4335:16:::1;::::0;:37:::1;::::0;-1:-1:-1;;;4335:37:19;;::::1;::::0;::::1;11399:25:103::0;;;-1:-1:-1;;;;;4335:16:19;;::::1;::::0;:27:::1;::::0;11372:18:103;;4335:37:19::1;11354:76:103::0;3195:78:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;5430:278:19:-:0;1094:13:41;:11;:13::i;:::-;5571:18:19::1;5592:7;2373:12:12::0;;2309:79;;5592:7:19::1;5610:16;::::0;:90:::1;::::0;-1:-1:-1;;;5610:90:19;;::::1;::::0;::::1;11609:25:103::0;;;11650:18;;;11643:34;;;5571:28:19;;-1:-1:-1;;;;;;5610:16:19::1;::::0;:48:::1;::::0;11582:18:103;;5610:90:19::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1117:1:41;5430:278:19::0;:::o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;1191:236:68:-:0;1333:16;522:21;2505:16:37;2516:4;2505:10;:16::i;:::-;1378:41:68::1;1397:6;1405:13;1378:18;:41::i;:::-;1367:52:::0;1191:236;-1:-1:-1;;;;1191:236:68:o;5716:258:19:-;5806:36;5860:18;5881:7;2373:12:12;;2309:79;;5881:7:19;5906:16;;:60;;-1:-1:-1;;;5906:60:19;;;;;11399:25:103;;;5860:28:19;;-1:-1:-1;;;;;;5906:16:19;;:48;;11372:18:103;;5906:60:19;11354:76:103;4707:227:19;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;4832:33:::1;4847:9;4858:6;4832:14;:33::i;:::-;4881:45;::::0;;11609:25:103;;;11665:2;11650:18;;11643:34;;;4881:45:19::1;::::0;11582:18:103;4881:45:19::1;11564:119:103::0;3219:234:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;3353:17:19;;3326:8;;3353:17;;-1:-1:-1;;;;;1413:16:19;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3400:16:::1;::::0;:45:::1;::::0;-1:-1:-1;;;3400:45:19;;::::1;::::0;::::1;11609:25:103::0;;;11650:18;;;11643:34;;;-1:-1:-1;;;;;3400:16:19;;::::1;::::0;:27:::1;::::0;11582:18:103;;3400:45:19::1;11564:119:103::0;4388:311:19;4525:12;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;4566:44:::1;4582:9;4593:16;4566:15;:44::i;:::-;4626:65;::::0;;11884:25:103;;;11940:2;11925:18;;11918:34;;;11995:14;;11988:22;11968:18;;;11961:50;4626:65:19;;11995:14:103;;-1:-1:-1;4626:65:19::1;::::0;;;;;11872:2:103;4626:65:19;;::::1;4388:311:::0;;;;:::o;2642:77:12:-;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;4048:163:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;4139:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;4165:16:::1;::::0;:38:::1;::::0;-1:-1:-1;;;4165:38:19;;::::1;::::0;::::1;11399:25:103::0;;;-1:-1:-1;;;;;4165:16:19;;::::1;::::0;:28:::1;::::0;11372:18:103;;4165:38:19::1;11354:76:103::0;1040:141:68;1094:13:41;:11;:13::i;:::-;1138:35:68::1;522:21;1164:8;1138:10;:35::i;:::-;1040:141:::0;:::o;2895:145:37:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:37;;;;;;;;;;;;;;;2895:145::o;2851:116:12:-;2900:4;;2915:49;;3706:161:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;3796:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3822:16:::1;::::0;:37:::1;::::0;-1:-1:-1;;;3822:37:19;;::::1;::::0;::::1;11399:25:103::0;;;-1:-1:-1;;;;;3822:16:19;;::::1;::::0;:27:::1;::::0;11372:18:103;;3822:37:19::1;11354:76:103::0;7800:182:19;7860:7;7880:18;7901:7;2373:12:12;;2309:79;;7901:7:19;7926:16;;:48;;-1:-1:-1;;;7926:48:19;;;;;11399:25:103;;;7880:28:19;;-1:-1:-1;;;;;;7926:16:19;;:36;;11372:18:103;;7926:48:19;11354:76:103;3772:77:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3831:15:::1;:13;:15::i;5180:242:19:-:0;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;5284:24:::1;5311:29;5330:9;5311:18;:29::i;:::-;5356:58;::::0;;11609:25:103;;;11665:2;11650:18;;11643:34;;;5284:56:19;;-1:-1:-1;5356:58:19::1;::::0;11582:18:103;5356:58:19::1;11564:119:103::0;7990:166:19;8042:7;8062:18;8083:7;2373:12:12;;2309:79;;8083:7:19;8108:16;;:40;;-1:-1:-1;;;8108:40:19;;;;;11399:25:103;;;8062:28:19;;-1:-1:-1;;;;;;8108:16:19;;:28;;11372:18:103;;8108:40:19;11354:76:103;2131:81:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;5241:147:37:-;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5355:26:::1;5367:4;5373:7;5355:11;:26::i;7628:164:19:-:0;7679:7;7699:18;7720:7;2373:12:12;;2309:79;;7720:7:19;7745:16;;:39;;-1:-1:-1;;;7745:39:19;;;;;11399:25:103;;;7699:28:19;;-1:-1:-1;;;;;;7745:16:19;;:27;;11372:18:103;;7745:39:19;11354:76:103;2727:118:12;2777:4;2810:32;2792:50;;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;13900:2:103;2161:73:41::1;::::0;::::1;13882:21:103::0;13939:2;13919:18;;;13912:30;13978:34;13958:18;;;13951:62;-1:-1:-1;;;14029:18:103;;;14022:36;14075:19;;2161:73:41::1;13872:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;4875:145:12:-:0;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;11399:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;11372:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3334:103:37:-;3400:30;3411:4;719:10:59;3400::37;:30::i;7474:233::-;7557:22;7565:4;7571:7;7557;:22::i;:::-;7552:149;;7595:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7595:29:37;;;;;;;;;:36;;-1:-1:-1;;7595:36:37;7627:4;7595:36;;;7677:12;719:10:59;640:96;;7677:12:37;-1:-1:-1;;;;;7650:40:37;7668:7;-1:-1:-1;;;;;7650:40:37;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;4177:229:11:-;4280:16;4299:28;;;:17;:28;;;;;;;;4338:16;;:60;;-1:-1:-1;;;4338:60:11;;;;;19528:25:103;;;19569:18;;;19562:34;;;19612:18;;;19605:34;;;4299:28:11;;-1:-1:-1;;;;;4338:16:11;;:31;;19501:18:103;;4338:60:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4177:229;;;:::o;7878:234:37:-;7961:22;7969:4;7975:7;7961;:22::i;:::-;7957:149;;;8031:5;7999:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7999:29:37;;;;;;;;;;:37;;-1:-1:-1;;7999:37:37;;;8055:40;719:10:59;;7999:12:37;;8055:40;;8031:5;8055:40;7878:234;;:::o;2590:230:19:-;2652:16;;2700:7;;2722:11;;2749:18;;2782:19;;2652:160;;-1:-1:-1;;;2652:160:19;;-1:-1:-1;;;;;2700:7:19;;;2652:160;;;10488:34:103;2722:11:19;;;10538:18:103;;;10531:43;10590:18;;;10583:34;;;;10633:18;;;10626:34;2652:16:19;;;:33;;10422:19:103;;2652:160:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2590:230::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;15842:2:103;1414:68:41;;;15824:21:103;;;15861:18;;;15854:30;15920:34;15900:18;;;15893:62;15972:18;;1414:68:41;15814:182:103;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;2828:383:19:-;2945:16;;719:10:59;3035:16:19;;:65;;-1:-1:-1;;;3035:65:19;;2979:34;;-1:-1:-1;;;;;;3035:16:19;;:29;;:65;;2979:34;;3078:6;;3086:13;;3035:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3111:10;:25;;;;;;;-1:-1:-1;3111:25:19;;;;;;;;;3154:49;;;11609:25:103;;;11665:2;11650:18;;11643:34;;;3111:25:19;;-1:-1:-1;3154:49:19;;11582:18:103;3154:49:19;;;;;;;2828:383;;;;;:::o;3942:227:11:-;4044:16;4063:28;;;:17;:28;;;;;;;;4102:16;;:59;;-1:-1:-1;;;4102:59:11;;;;;19528:25:103;;;19569:18;;;19562:34;;;19612:18;;;19605:34;;;4063:28:11;;-1:-1:-1;;;;;4102:16:11;;:30;;19501:18:103;;4102:59:11;19483:162:103;1533:2401:11;1648:12;1679:21;1703:15;:13;:15::i;:::-;1679:39;;1729:15;1747:12;:10;:12::i;:::-;1729:30;;1770:21;1794;:19;:21::i;:::-;1883:16;;1833:67;;;20472:25:103;;;1883:16:11;;;;20528:2:103;20513:18;;20506:51;1770:45:11;;-1:-1:-1;1833:67:11;;20445:18:103;1833:67:11;;;;;;;1935:1;1919:13;:17;1911:61;;;;-1:-1:-1;;;1911:61:11;;14712:2:103;1911:61:11;;;14694:21:103;14751:2;14731:18;;;14724:30;14790:33;14770:18;;;14763:61;14841:18;;1911:61:11;14684:181:103;1911:61:11;2001:13;1991:7;:23;1983:65;;;;-1:-1:-1;;;1983:65:11;;15484:2:103;1983:65:11;;;15466:21:103;15523:2;15503:18;;;15496:30;15562:31;15542:18;;;15535:59;15611:18;;1983:65:11;15456:179:103;1983:65:11;2135:32;2151:16;2135:13;:32;:::i;:::-;2124:7;:43;2121:1806;;2225:16;;:42;;-1:-1:-1;;;2225:42:11;;;;;11399:25:103;;;2184:38:11;;-1:-1:-1;;;;;2225:16:11;;:31;;11372:18:103;;2225:42:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2225:42:11;;;;;;;;;;;;:::i;:::-;2374:16;;2184:83;;-1:-1:-1;2363:8:11;;2374:32;;2393:13;;2374:16;;:32;:::i;:::-;2363:43;;2870:9;2865:1051;2889:13;2885:1;:17;:29;;;;;2907:7;2906:8;2885:29;2865:1051;;;2940:16;2959:22;2977:3;2959:17;:22::i;:::-;3031:16;;:36;;-1:-1:-1;;;3031:36:11;;;;;11399:25:103;;;2940:41:11;;-1:-1:-1;3000:28:11;;-1:-1:-1;;;;;3031:16:11;;;;:26;;11372:18:103;;3031:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3031:36:11;;;;;;;;;;;;:::i;:::-;3000:67;-1:-1:-1;3086:15:11;1733:4:68;3173:52:11;;;18978:25:103;;;19046:14;;19039:22;19034:2;19019:18;;19012:50;3086:63:11;;-1:-1:-1;3173:52:11;;18951:18:103;3173:52:11;;;;;;;3250:10;3246:655;;;3285:17;3322:6;:20;;;3305:6;:14;;;:37;;;;:::i;:::-;3370:86;;;20134:25:103;;;20190:2;20175:18;;20168:34;;;20218:18;;;20211:34;;;20276:2;20261:18;;20254:34;;;3285:57:11;;-1:-1:-1;3370:86:11;;20121:3:103;20106:19;3370:86:11;;;;;;;3498:16;3485:9;:29;3481:401;;3543:16;;:75;;-1:-1:-1;;;3543:75:11;;;;;19528:25:103;;;19569:18;;;19562:34;;;19612:18;;;19605:34;;;-1:-1:-1;;;;;3543:16:11;;;;:36;;19501:18:103;;3543:75:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3645:28:11;;;;:17;:28;;;;;:39;;;3752:16;:18;;3721:4;;-1:-1:-1;3752:18:11;;;-1:-1:-1;3752:16:11;:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3481:401;;;3845:13;3834:7;:3;3840:1;3834:7;:::i;:::-;3833:25;;;;:::i;:::-;3827:31;;3481:401;3246:655;;2865:1051;;;2916:3;;;;;:::i;:::-;;;;2865:1051;;;;2121:1806;;;1533:2401;;;;;;;:::o;6824:110:37:-;6902:25;6913:4;6919:7;6902:10;:25::i;8528:252:19:-;8588:18;8609:7;2373:12:12;;2309:79;;8609:7:19;8649:16;;:43;;-1:-1:-1;;;8649:43:19;;;;;11399:25:103;;;8588:28:19;;-1:-1:-1;;;;;;8649:16:19;;:31;;11372:18:103;;8649:43:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;8627:145;;;;-1:-1:-1;;;8627:145:19;;16203:2:103;8627:145:19;;;16185:21:103;16242:2;16222:18;;;16215:30;16281:34;16261:18;;;16254:62;-1:-1:-1;;;16332:18:103;;;16325:40;16382:19;;8627:145:19;16175:232:103;4414:279:11;4506:24;4576:28;;;:17;:28;;;;;;;4634:16;;:51;;-1:-1:-1;;;4634:51:11;;;;;11609:25:103;;;11650:18;;;11643:34;;;4576:28:11;;-1:-1:-1;;;;;4634:16:11;;:30;;11582:18:103;;4634:51:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3718:492:37;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:403;;3989:41;4017:7;-1:-1:-1;;;;;3989:41:37;4027:2;3989:19;:41::i;:::-;4101:38;4129:4;4136:2;4101:19;:38::i;:::-;3896:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:265:37;;;;;;;;;;-1:-1:-1;;;3844:349:37;;;;;;;:::i;1652:441:61:-;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;1774:25;;;;;;-1:-1:-1;;;1774:25:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:61;;1752:47;;-1:-1:-1;;;1809:6:61;1816:1;1809:9;;;;;;-1:-1:-1;;;1809:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1809:15:61;;;;;;;;;-1:-1:-1;;;1834:6:61;1841:1;1834:9;;;;;;-1:-1:-1;;;1834:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1834:15:61;;;;;;;;-1:-1:-1;1864:9:61;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:61;1951:3;1943:11;1930:25;;;;;-1:-1:-1;;;1930:25:61;;;;;;;;;;;;1918:6;1925:1;1918:9;;;;;;-1:-1:-1;;;1918:9:61;;;;;;;;;;;;:37;-1:-1:-1;;;;;1918:37:61;;;;;;;;-1:-1:-1;1979:1:61;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:61;;2000:55;;;;-1:-1:-1;;;2000:55:61;;13183:2:103;2000:55:61;;;13165:21:103;;;13202:18;;;13195:30;13261:34;13241:18;;;13234:62;13313:18;;2000:55:61;13155:182:103;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:482:103:-;;109:3;102:4;94:6;90:17;86:27;76:2;;131:5;124;117:20;76:2;171:6;158:20;202:48;218:31;246:2;218:31;:::i;:::-;202:48;:::i;:::-;275:2;266:7;259:19;321:3;314:4;309:2;301:6;297:15;293:26;290:35;287:2;;;342:5;335;328:20;287:2;411;404:4;396:6;392:17;385:4;376:7;372:18;359:55;434:16;;;452:4;430:27;423:42;;;;438:7;66:430;-1:-1:-1;;66:430:103:o;501:444::-;;607:3;600:4;592:6;588:17;584:27;574:2;;629:5;622;615:20;574:2;662:6;656:13;693:48;709:31;737:2;709:31;:::i;693:48::-;766:2;757:7;750:19;812:3;805:4;800:2;792:6;788:15;784:26;781:35;778:2;;;833:5;826;819:20;778:2;850:64;911:2;904:4;895:7;891:18;884:4;876:6;872:17;850:64;:::i;950:162::-;1032:20;;1061:45;1032:20;1061:45;:::i;1117:166::-;1210:13;;1232:45;1210:13;1232:45;:::i;1288:771::-;;1394:4;1382:9;1377:3;1373:19;1369:30;1366:2;;;1416:5;1409;1402:20;1366:2;1442:21;1458:4;1442:21;:::i;:::-;1433:30;;1500:9;1487:23;1519:47;1558:7;1519:47;:::i;:::-;1589:7;1582:5;1575:22;;1657:2;1646:9;1642:18;1629:32;1624:2;1617:5;1613:14;1606:56;1722:2;1711:9;1707:18;1694:32;1689:2;1682:5;1678:14;1671:56;1778:2;1767:9;1763:18;1750:32;1805:18;1797:6;1794:30;1791:2;;;1837:1;1834;1827:12;1791:2;1873:45;1914:3;1905:6;1894:9;1890:22;1873:45;:::i;:::-;1868:2;1861:5;1857:14;1850:69;;1980:3;1969:9;1965:19;1952:33;1946:3;1939:5;1935:15;1928:58;2047:3;2036:9;2032:19;2019:33;2013:3;2006:5;2002:15;1995:58;1356:703;;;;:::o;2064:257::-;;2176:2;2164:9;2155:7;2151:23;2147:32;2144:2;;;2197:6;2189;2182:22;2144:2;2241:9;2228:23;2260:31;2285:5;2260:31;:::i;2326:261::-;;2449:2;2437:9;2428:7;2424:23;2420:32;2417:2;;;2470:6;2462;2455:22;2417:2;2507:9;2501:16;2526:31;2551:5;2526:31;:::i;2592:190::-;;2704:2;2692:9;2683:7;2679:23;2675:32;2672:2;;;2725:6;2717;2710:22;2672:2;-1:-1:-1;2753:23:103;;2662:120;-1:-1:-1;2662:120:103:o;2787:325::-;;;2916:2;2904:9;2895:7;2891:23;2887:32;2884:2;;;2937:6;2929;2922:22;2884:2;2978:9;2965:23;2955:33;;3038:2;3027:9;3023:18;3010:32;3051:31;3076:5;3051:31;:::i;:::-;3101:5;3091:15;;;2874:238;;;;;:::o;3117:258::-;;;3246:2;3234:9;3225:7;3221:23;3217:32;3214:2;;;3267:6;3259;3252:22;3214:2;-1:-1:-1;;3295:23:103;;;3365:2;3350:18;;;3337:32;;-1:-1:-1;3204:171:103:o;3380:306::-;;3491:2;3479:9;3470:7;3466:23;3462:32;3459:2;;;3512:6;3504;3497:22;3459:2;3543:23;;-1:-1:-1;;;;;;3595:32:103;;3585:43;;3575:2;;3647:6;3639;3632:22;3691:408;;;3829:2;3817:9;3808:7;3804:23;3800:32;3797:2;;;3850:6;3842;3835:22;3797:2;3895:9;3882:23;3928:18;3920:6;3917:30;3914:2;;;3965:6;3957;3950:22;3914:2;3993:49;4034:7;4025:6;4014:9;4010:22;3993:49;:::i;:::-;3983:59;4089:2;4074:18;;;;4061:32;;-1:-1:-1;;;;3787:312:103:o;4104:299::-;;4246:2;4234:9;4225:7;4221:23;4217:32;4214:2;;;4267:6;4259;4252:22;4214:2;4304:9;4298:16;4343:1;4336:5;4333:12;4323:2;;4364:6;4356;4349:22;4408:1005;;4560:2;4548:9;4539:7;4535:23;4531:32;4528:2;;;4581:6;4573;4566:22;4528:2;4619:9;4613:16;4648:18;4689:2;4681:6;4678:14;4675:2;;;4710:6;4702;4695:22;4675:2;4738:22;;;;4794:4;4776:16;;;4772:27;4769:2;;;4817:6;4809;4802:22;4769:2;4848:21;4864:4;4848:21;:::i;:::-;4899:2;4893:9;4911:47;4950:7;4911:47;:::i;:::-;4981:7;4974:5;4967:22;;5035:2;5031;5027:11;5021:18;5016:2;5009:5;5005:14;4998:42;5086:2;5082;5078:11;5072:18;5067:2;5060:5;5056:14;5049:42;5130:2;5126;5122:11;5116:18;5159:2;5149:8;5146:16;5143:2;;;5180:6;5172;5165:22;5143:2;5221:55;5268:7;5257:8;5253:2;5249:17;5221:55;:::i;:::-;5216:2;5209:5;5205:14;5198:79;;5324:3;5320:2;5316:12;5310:19;5304:3;5297:5;5293:15;5286:44;5377:3;5373:2;5369:12;5363:19;5357:3;5350:5;5346:15;5339:44;5402:5;5392:15;;;;;4518:895;;;;:::o;5418:1224::-;;5565:2;5553:9;5544:7;5540:23;5536:32;5533:2;;;5586:6;5578;5571:22;5533:2;5624:9;5618:16;5653:18;5694:2;5686:6;5683:14;5680:2;;;5715:6;5707;5700:22;5680:2;5758:6;5747:9;5743:22;5733:32;;5784:6;5824:2;5819;5810:7;5806:16;5802:25;5799:2;;;5845:6;5837;5830:22;5799:2;5876:19;5892:2;5876:19;:::i;:::-;5863:32;;5924:2;5918:9;5911:5;5904:24;5974:2;5970;5966:11;5960:18;5955:2;5948:5;5944:14;5937:42;6025:2;6021;6017:11;6011:18;6006:2;5999:5;5995:14;5988:42;6062:56;6114:2;6110;6106:11;6062:56;:::i;:::-;6057:2;6050:5;6046:14;6039:80;6158:3;6154:2;6150:12;6144:19;6188:2;6178:8;6175:16;6172:2;;;6209:6;6201;6194:22;6172:2;6251:55;6298:7;6287:8;6283:2;6279:17;6251:55;:::i;:::-;6245:3;6234:15;;6227:80;-1:-1:-1;6354:3:103;6346:12;;;6340:19;6323:15;;;6316:44;6407:3;6399:12;;;6393:19;6376:15;;;6369:44;6460:3;6452:12;;;6446:19;6429:15;;;6422:44;6485:3;6526:11;;;6520:18;6504:14;;;6497:42;6558:3;6599:11;;;6593:18;6577:14;;;6570:42;;;;-1:-1:-1;6238:5:103;5523:1119;-1:-1:-1;;;5523:1119:103:o;6647:1502::-;;;6829:2;6817:9;6808:7;6804:23;6800:32;6797:2;;;6850:6;6842;6835:22;6797:2;6895:9;6882:23;6924:18;6965:2;6957:6;6954:14;6951:2;;;6986:6;6978;6971:22;6951:2;7029:6;7018:9;7014:22;7004:32;;7055:6;7095:2;7090;7081:7;7077:16;7073:25;7070:2;;;7116:6;7108;7101:22;7070:2;7147:19;7163:2;7147:19;:::i;:::-;7134:32;;7202:2;7189:16;7182:5;7175:31;7259:2;7255;7251:11;7238:25;7233:2;7226:5;7222:14;7215:49;7317:2;7313;7309:11;7296:25;7291:2;7284:5;7280:14;7273:49;7354:45;7395:2;7391;7387:11;7354:45;:::i;:::-;7349:2;7342:5;7338:14;7331:69;7446:3;7442:2;7438:12;7425:26;7476:2;7466:8;7463:16;7460:2;;;7497:6;7489;7482:22;7460:2;7539:44;7575:7;7564:8;7560:2;7556:17;7539:44;:::i;:::-;7533:3;7526:5;7522:15;7515:69;;7638:3;7634:2;7630:12;7617:26;7611:3;7604:5;7600:15;7593:51;7698:3;7694:2;7690:12;7677:26;7671:3;7664:5;7660:15;7653:51;7758:3;7754:2;7750:12;7737:26;7731:3;7724:5;7720:15;7713:51;7783:3;7839:2;7835;7831:11;7818:25;7813:2;7806:5;7802:14;7795:49;;7863:3;7919:2;7915;7911:11;7898:25;7893:2;7886:5;7882:14;7875:49;;7943:5;7933:15;;;8001:2;7990:9;7986:18;7973:32;7957:48;;8030:2;8020:8;8017:16;8014:2;;;8051:6;8043;8036:22;8014:2;;8079:64;8135:7;8124:8;8113:9;8109:24;8079:64;:::i;:::-;8069:74;;;6787:1362;;;;;:::o;8349:194::-;;8472:2;8460:9;8451:7;8447:23;8443:32;8440:2;;;8493:6;8485;8478:22;8440:2;-1:-1:-1;8521:16:103;;8430:113;-1:-1:-1;8430:113:103:o;8811:257::-;;8890:5;8884:12;8917:6;8912:3;8905:19;8933:63;8989:6;8982:4;8977:3;8973:14;8966:4;8959:5;8955:16;8933:63;:::i;:::-;9050:2;9029:15;-1:-1:-1;;9025:29:103;9016:39;;;;9057:4;9012:50;;8860:208;-1:-1:-1;;8860:208:103:o;9073:142::-;9156:1;9149:5;9146:12;9136:2;;9162:18;;:::i;:::-;9191;;9126:89::o;9220:786::-;;9631:25;9626:3;9619:38;9686:6;9680:13;9702:62;9757:6;9752:2;9747:3;9743:12;9736:4;9728:6;9724:17;9702:62;:::i;:::-;-1:-1:-1;;;9823:2:103;9783:16;;;9815:11;;;9808:40;9873:13;;9895:63;9873:13;9944:2;9936:11;;9929:4;9917:17;;9895:63;:::i;:::-;9978:17;9997:2;9974:26;;9609:397;-1:-1:-1;;;;9609:397:103:o;10671:385::-;-1:-1:-1;;;;;10874:32:103;;10856:51;;10943:2;10938;10923:18;;10916:30;;;10671:385;;10963:44;;10988:18;;10980:6;10963:44;:::i;:::-;10955:52;;11043:6;11038:2;11027:9;11023:18;11016:34;10846:210;;;;;;:::o;12248:250::-;12399:2;12384:18;;12432:1;12421:13;;12411:2;;12438:18;;:::i;:::-;12467:25;;;12366:132;:::o;12503:249::-;12653:2;12638:18;;12686:1;12675:13;;12665:2;;12692:18;;:::i;12757:219::-;;12906:2;12895:9;12888:21;12926:44;12966:2;12955:9;12951:18;12943:6;12926:44;:::i;13342:351::-;13544:2;13526:21;;;13583:2;13563:18;;;13556:30;13622:29;13617:2;13602:18;;13595:57;13684:2;13669:18;;13516:177::o;16412:354::-;16614:2;16596:21;;;16653:2;16633:18;;;16626:30;16692:32;16687:2;16672:18;;16665:60;16757:2;16742:18;;16586:180::o;16771:351::-;16973:2;16955:21;;;17012:2;16992:18;;;16985:30;17051:29;17046:2;17031:18;;17024:57;17113:2;17098:18;;16945:177::o;17543:1080::-;;17720:2;17709:9;17702:21;17765:6;17759:13;17754:2;17743:9;17739:18;17732:41;17827:2;17819:6;17815:15;17809:22;17804:2;17793:9;17789:18;17782:50;17886:2;17878:6;17874:15;17868:22;17863:2;17852:9;17848:18;17841:50;17938:2;17930:6;17926:15;17920:22;17951:62;18008:3;17997:9;17993:19;17979:12;17951:62;:::i;:::-;;18062:3;18054:6;18050:16;18044:23;18086:6;18129:2;18123:3;18112:9;18108:19;18101:31;18155:53;18203:3;18192:9;18188:19;18172:14;18155:53;:::i;:::-;18141:67;;18263:3;18255:6;18251:16;18245:23;18239:3;18228:9;18224:19;18217:52;18324:3;18316:6;18312:16;18306:23;18300:3;18289:9;18285:19;18278:52;18367:3;18359:6;18355:16;18349:23;18391:3;18430:2;18425;18414:9;18410:18;18403:30;18470:2;18462:6;18458:15;18452:22;18442:32;;;18493:3;18532:2;18527;18516:9;18512:18;18505:30;18589:2;18581:6;18577:15;18571:22;18566:2;18555:9;18551:18;18544:50;;;;18611:6;18603:14;;;17692:931;;;;:::o;20568:275::-;20639:2;20633:9;20704:2;20685:13;;-1:-1:-1;;20681:27:103;20669:40;;20739:18;20724:34;;20760:22;;;20721:62;20718:2;;;20786:18;;:::i;:::-;20822:2;20815:22;20613:230;;-1:-1:-1;20613:230:103:o;20848:186::-;;20929:18;20921:6;20918:30;20915:2;;;20951:18;;:::i;:::-;-1:-1:-1;21017:2:103;20996:15;-1:-1:-1;;20992:29:103;21023:4;20988:40;;20905:129::o;21039:128::-;;21110:1;21106:6;21103:1;21100:13;21097:2;;;21116:18;;:::i;:::-;-1:-1:-1;21152:9:103;;21087:80::o;21172:168::-;;21278:1;21274;21270:6;21266:14;21263:1;21260:21;21255:1;21248:9;21241:17;21237:45;21234:2;;;21285:18;;:::i;:::-;-1:-1:-1;21325:9:103;;21224:116::o;21345:125::-;;21413:1;21410;21407:8;21404:2;;;21418:18;;:::i;:::-;-1:-1:-1;21455:9:103;;21394:76::o;21475:258::-;21547:1;21557:113;21571:6;21568:1;21565:13;21557:113;;;21647:11;;;21641:18;21628:11;;;21621:39;21593:2;21586:10;21557:113;;;21688:6;21685:1;21682:13;21679:2;;;-1:-1:-1;;21723:1:103;21705:16;;21698:27;21528:205::o;21738:136::-;;21805:5;21795:2;;21814:18;;:::i;:::-;-1:-1:-1;;;21850:18:103;;21785:89::o;21879:135::-;;-1:-1:-1;;21939:17:103;;21936:2;;;21959:18;;:::i;:::-;-1:-1:-1;22006:1:103;21995:13;;21926:88::o;22019:201::-;;22085:10;22130:2;22123:5;22119:14;22157:2;22148:7;22145:15;22142:2;;;22163:18;;:::i;:::-;22212:1;22199:15;;22065:155;-1:-1:-1;;;22065:155:103:o;22225:209::-;;22283:1;22273:2;;-1:-1:-1;;;22308:31:103;;22362:4;22359:1;22352:15;22390:4;22315:1;22380:15;22273:2;-1:-1:-1;22419:9:103;;22263:171::o;22439:127::-;22500:10;22495:3;22491:20;22488:1;22481:31;22531:4;22528:1;22521:15;22555:4;22552:1;22545:15;22571:127;22632:10;22627:3;22623:20;22620:1;22613:31;22663:4;22660:1;22653:15;22687:4;22684:1;22677:15;22703:127;22764:10;22759:3;22755:20;22752:1;22745:31;22795:4;22792:1;22785:15;22819:4;22816:1;22809:15;22835:131;-1:-1:-1;;;;;22910:31:103;;22900:42;;22890:2;;22956:1;22953;22946:12;22971:115;23060:1;23053:5;23050:12;23040:2;;23076:1;23073;23066:12"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DEFAULT_FILTER_DATA_STRUCTURE()":"7893c7bc","FULL_COLLATERALIZATION_LEVEL()":"45fe1c6d","INVESTOR_ROLE()":"76082a5e","SUM_OF_SUM_INSURED_CAP()":"be61e91e","activeBundles()":"4101b90c","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","bundleMatchesApplication((uint256,uint256,uint256,uint8,bytes,uint256,uint256,uint256,uint256,uint256),(uint8,uint256,uint256,bytes,uint256,uint256))":"86c71288","bundles()":"18442e63","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(bytes32,uint256)":"890fbf78","createBundle(bytes,uint256)":"7888a2ff","declineCallback()":"bd1fe5d0","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","getActiveBundleId(uint256)":"0676cb0e","getBalance()":"12065fe0","getBundle(uint256)":"2d0821b7","getCapacity()":"c40000d4","getCapital()":"e0032383","getCollateralizationLevel()":"54afef63","getErc20Token()":"feb1824b","getFilterDataStructure()":"3dcdde17","getFullCollateralizationLevel()":"f1d354d0","getId()":"5d1ca631","getMaximumNumberOfActiveBundles()":"7f3b6980","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getRoleAdmin(bytes32)":"248a9ca3","getState()":"1865c57d","getSumOfSumInsuredCap()":"a18aa128","getTotalValueLocked()":"b26025aa","getType()":"15dae03e","getWallet()":"13299604","grantInvestorRole(address)":"9088c119","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","lockBundle(uint256)":"a17030d5","owner()":"8da5cb5b","pauseCallback()":"d73cd992","processPolicyPayout(bytes32,uint256)":"82558906","processPolicyPremium(bytes32,uint256)":"3629c3c4","proposalCallback()":"638ce0ba","releasePolicy(bytes32)":"c3004c86","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","resumeCallback()":"a18f5ae2","revokeRole(bytes32,address)":"d547741f","setId(uint256)":"d0e0ba95","setMaximumNumberOfActiveBundles(uint256)":"652028e5","supportsInterface(bytes4)":"01ffc9a7","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unlockBundle(uint256)":"316c5348","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralization\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"activeBundles\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolBundlesAndPolicies\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolCandidateBundleAmountCheck\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolBundleMatchesPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolCollateralLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolAddress\",\"type\":\"address\"}],\"name\":\"LogRiskpoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_FILTER_DATA_STRUCTURE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_COLLATERALIZATION_LEVEL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INVESTOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUM_OF_SUM_INSURED_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"name\":\"bundleMatchesApplication\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialAmount\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getErc20Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFilterDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSumOfSumInsuredCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"}],\"name\":\"grantInvestorRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/AyiiRiskpool.sol\":\"AyiiRiskpool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\":{\"keccak256\":\"0xb86d781f945942220e37e1903420537fa3ad5539c0f341c4cccdfb1b11d196ee\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bb61f5c4724bcf6ece000fa46359dfabd60a91e82b8e637bf27e3028119047c\",\"dweb:/ipfs/QmWJ5zhmwCSKemq6PKhddWbbiEMsVVS9abCz5tU6s7b8f3\"]},\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Riskpool.sol\":{\"keccak256\":\"0x627c05cef03e42f2b798004db6d000d574c0edc383d185952592425895ada20e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d20ecfaf1ed6c983cd81482d982373b8d4d00f6cbe6ed0e67e78255e71c7ac86\",\"dweb:/ipfs/QmdwKC99b54yMa3rKJdwD4RjcbLgX6hkLV6SYjfgFbLi5T\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/examples/AyiiRiskpool.sol\":{\"keccak256\":\"0x09250d1fcff0f8d4c3fd1473a5846ede0bc996a817bb5d769fcb8b9f87b65717\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f8250a816d1f4a22e81c5d4473ea6e1637a5a2d2600ad168f4a6c9497ec45900\",\"dweb:/ipfs/QmV33B8Tdvkt4rrA7imx6R8SCF3HKXwN4KeVAG7jACKSh7\"]}},\"version\":1}"}},"contracts/examples/mock/ChainlinkOperator.sol":{"ChainlinkOperator":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"senders","type":"address[]"},{"indexed":false,"internalType":"address","name":"changedBy","type":"address"}],"name":"AuthorizedSendersChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"}],"name":"CancelOracleRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"specId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"requester","type":"address"},{"indexed":false,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"payment","type":"uint256"},{"indexed":false,"internalType":"address","name":"callbackAddr","type":"address"},{"indexed":false,"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"cancelExpiration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dataVersion","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"OracleRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"}],"name":"OracleResponse","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"fulfillOracleRequest2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAuthorizedSenders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExpiryTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onTokenTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes32","name":"specId","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"senders","type":"address[]"}],"name":"setAuthorizedSenders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fc48061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146101055780638da5cb5b1461010d578063a4c0ed3614610128578063ee56997b1461013b578063f2fde38b1461014e57610093565b80632408afaa1461009857806325cb5bc0146100b657806340429946146100cd5780636ae0bc76146100e2575b600080fd5b6100a0610161565b6040516100ad9190610ee2565b60405180910390f35b6100bf61012c81565b6040519081526020016100ad565b6100e06100db366004610b58565b6101c3565b005b6100f56100f0366004610d2a565b61022d565b60405190151581526020016100ad565b6100e061034e565b6000546040516001600160a01b0390911681526020016100ad565b6100e0610136366004610bf5565b610362565b6100e0610149366004610cbb565b61041f565b6100e061015c366004610b37565b610618565b606060028054806020026020016040519081016040528092919081815260200182805480156101b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161019b575b5050505050905090565b6000806101d48b8b8a8a8a8a610691565b91509150887fd8d7ecc4800d25fa53ce0372f13a416d98907a7ef3d8d3bdd79cf4fe75529c658c848d8f8c878c8c8c60405161021899989796959493929190610e07565b60405180910390a25050505050505050505050565b600061023e888888888860026107c7565b60405188907f9e9bc7616d42c2835d05ae617e508454e63b30b934be8aa932ebc125e0e58a6490600090a262061a805a10156102c15760405162461bcd60e51b815260206004820181905260248201527f4d7573742070726f7669646520636f6e73756d657220656e6f7567682067617360448201526064015b60405180910390fd5b6000866001600160a01b03168685856040516020016102e293929190610daa565b60408051601f19818403018152908290526102fc91610dce565b6000604051808303816000865af19150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b50909a9950505050505050505050565b6103566108cd565b6103606000610927565b565b8260248201528160448201526000306001600160a01b0316826040516103889190610dce565b600060405180830381855af49150503d80600081146103c3576040519150601f19603f3d011682016040523d82523d6000602084013e6103c8565b606091505b50509050806104195760405162461bcd60e51b815260206004820152601860248201527f556e61626c6520746f206372656174652072657175657374000000000000000060448201526064016102b8565b50505050565b610427610977565b6104735760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742073657420617574686f72697a65642073656e6465727300000060448201526064016102b8565b806104cf5760405162461bcd60e51b815260206004820152602660248201527f4d7573742068617665206174206c65617374203120617574686f72697a65642060448201526539b2b73232b960d11b60648201526084016102b8565b60025460005b8181101561054a576000600160006002848154811061050457634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061054281610f47565b9150506104d5565b5060005b828110156105ca57600180600086868581811061057b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906105909190610b37565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806105c281610f47565b91505061054e565b506105d760028484610a49565b507ff263cfb3e4298332e776194610cf9fdc09ccb3ada8b9aa39764d882e11fbf0a083833360405161060b93929190610e81565b60405180910390a1505050565b6106206108cd565b6001600160a01b0381166106855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b8565b61068e81610927565b50565b6040516bffffffffffffffffffffffff19606088901b16602082015260348101839052600090819060540160408051808303601f1901815291815281516020928301206000818152600390935291205490925060081b60ff19161561072f5760405162461bcd60e51b8152602060048201526014602482015273135d5cdd081d5cd94818481d5b9a5c5d5948125160621b60448201526064016102b8565b61073b61012c42610f2f565b9050600061074b8888888561099b565b905060405180604001604052808260ff1916815260200161076b866109f5565b60ff9081169091526000858152600360209081526040909120835181549490920151909216600160f81b0260089190911c6001600160f81b0319909316929092176001600160f81b031691909117905550965096945050505050565b60006107d58686868661099b565b60008881526003602052604090205490915060081b60ff19908116908216146108405760405162461bcd60e51b815260206004820152601e60248201527f506172616d7320646f206e6f74206d617463682072657175657374204944000060448201526064016102b8565b610849826109f5565b60008881526003602052604090205460ff918216600160f81b90910490911611156108b65760405162461bcd60e51b815260206004820152601860248201527f446174612076657273696f6e73206d757374206d61746368000000000000000060448201526064016102b8565b505050600093845250506003602052506040812055565b6000546001600160a01b031633146103605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60003361098c6000546001600160a01b031690565b6001600160a01b031614905090565b6040805160208082019690965260609490941b6bffffffffffffffffffffffff1916848201526001600160e01b03199290921660548401526058808401919091528151808403909101815260789092019052805191012090565b60006101008210610a415760405162461bcd60e51b81526020600482015260166024820152751b9d5b58995c881d1bdbc8189a59c81d1bc818d85cdd60521b60448201526064016102b8565b50805b919050565b828054828255906000526020600020908101928215610a9c579160200282015b82811115610a9c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190610a69565b50610aa8929150610aac565b5090565b5b80821115610aa85760008155600101610aad565b80356001600160a01b0381168114610a4457600080fd5b80356001600160e01b031981168114610a4457600080fd5b60008083601f840112610b01578182fd5b50813567ffffffffffffffff811115610b18578182fd5b602083019150836020828501011115610b3057600080fd5b9250929050565b600060208284031215610b48578081fd5b610b5182610ac1565b9392505050565b60008060008060008060008060006101008a8c031215610b76578485fd5b610b7f8a610ac1565b985060208a0135975060408a01359650610b9b60608b01610ac1565b9550610ba960808b01610ad8565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff811115610bd2578283fd5b610bde8c828d01610af0565b915080935050809150509295985092959850929598565b600080600060608486031215610c09578283fd5b610c1284610ac1565b925060208401359150604084013567ffffffffffffffff80821115610c35578283fd5b818601915086601f830112610c48578283fd5b813581811115610c5a57610c5a610f78565b604051601f8201601f19908116603f01168101908382118183101715610c8257610c82610f78565b81604052828152896020848701011115610c9a578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60008060208385031215610ccd578182fd5b823567ffffffffffffffff80821115610ce4578384fd5b818501915085601f830112610cf7578384fd5b813581811115610d05578485fd5b8660208083028501011115610d18578485fd5b60209290920196919550909350505050565b600080600080600080600060c0888a031215610d44578283fd5b8735965060208801359550610d5b60408901610ac1565b9450610d6960608901610ad8565b93506080880135925060a088013567ffffffffffffffff811115610d8b578283fd5b610d978a828b01610af0565b989b979a50959850939692959293505050565b6001600160e01b031984168152600082846004840137910160040190815292915050565b60008251815b81811015610dee5760208186018101518583015201610dd4565b81811115610dfc5782828501525b509190910192915050565b6001600160a01b038a81168252602082018a905260408201899052871660608201526001600160e01b03198616608082015260a0810185905260c0810184905261010060e0820181905281018290526000610120838582850137828401810191909152601f909201601f1916010198975050505050505050565b6040808252810183905260008460608301825b86811015610ec2576001600160a01b03610ead84610ac1565b16825260209283019290910190600101610e94565b506001600160a01b03949094166020939093019290925250909392505050565b6020808252825182820181905260009190848201906040850190845b81811015610f235783516001600160a01b031683529284019291840191600101610efe565b50909695505050505050565b60008219821115610f4257610f42610f62565b500190565b6000600019821415610f5b57610f5b610f62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220262e5ad4ad92d2986c722791cedda45946b31c84f2cd71f00eb573c7c470f5a364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A CALLER PUSH2 0x1F JUMP JUMPDEST PUSH2 0x6F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xFC4 DUP1 PUSH2 0x7E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xA4C0ED36 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0xEE56997B EQ PUSH2 0x13B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x14E JUMPI PUSH2 0x93 JUMP JUMPDEST DUP1 PUSH4 0x2408AFAA EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x25CB5BC0 EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x40429946 EQ PUSH2 0xCD JUMPI DUP1 PUSH4 0x6AE0BC76 EQ PUSH2 0xE2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x161 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBF PUSH2 0x12C DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0xDB CALLDATASIZE PUSH1 0x4 PUSH2 0xB58 JUMP JUMPDEST PUSH2 0x1C3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF5 PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0xD2A JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x34E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x136 CALLDATASIZE PUSH1 0x4 PUSH2 0xBF5 JUMP JUMPDEST PUSH2 0x362 JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x149 CALLDATASIZE PUSH1 0x4 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x41F JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x15C CALLDATASIZE PUSH1 0x4 PUSH2 0xB37 JUMP JUMPDEST PUSH2 0x618 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1D4 DUP12 DUP12 DUP11 DUP11 DUP11 DUP11 PUSH2 0x691 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH32 0xD8D7ECC4800D25FA53CE0372F13A416D98907A7EF3D8D3BDD79CF4FE75529C65 DUP13 DUP5 DUP14 DUP16 DUP13 DUP8 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD PUSH2 0x218 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x2 PUSH2 0x7C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP9 SWAP1 PUSH32 0x9E9BC7616D42C2835D05AE617E508454E63B30B934BE8AA932EBC125E0E58A64 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH3 0x61A80 GAS LT ISZERO PUSH2 0x2C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D7573742070726F7669646520636F6E73756D657220656E6F75676820676173 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2E2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x2FC SWAP2 PUSH2 0xDCE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x339 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x33E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x356 PUSH2 0x8CD JUMP JUMPDEST PUSH2 0x360 PUSH1 0x0 PUSH2 0x927 JUMP JUMPDEST JUMP JUMPDEST DUP3 PUSH1 0x24 DUP3 ADD MSTORE DUP2 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x388 SWAP2 SWAP1 PUSH2 0xDCE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3C8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x419 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E61626C6520746F2063726561746520726571756573740000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x427 PUSH2 0x977 JUMP JUMPDEST PUSH2 0x473 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F742073657420617574686F72697A65642073656E64657273000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST DUP1 PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D7573742068617665206174206C65617374203120617574686F72697A656420 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x39B2B73232B9 PUSH1 0xD1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 PUSH1 0x2 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x504 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP1 PUSH2 0x542 DUP2 PUSH2 0xF47 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x4D5 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5CA JUMPI PUSH1 0x1 DUP1 PUSH1 0x0 DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x57B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x590 SWAP2 SWAP1 PUSH2 0xB37 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP1 PUSH2 0x5C2 DUP2 PUSH2 0xF47 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x54E JUMP JUMPDEST POP PUSH2 0x5D7 PUSH1 0x2 DUP5 DUP5 PUSH2 0xA49 JUMP JUMPDEST POP PUSH32 0xF263CFB3E4298332E776194610CF9FDC09CCB3ADA8B9AA39764D882E11FBF0A0 DUP4 DUP4 CALLER PUSH1 0x40 MLOAD PUSH2 0x60B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE81 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x620 PUSH2 0x8CD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x68E DUP2 PUSH2 0x927 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP9 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP3 POP PUSH1 0x8 SHL PUSH1 0xFF NOT AND ISZERO PUSH2 0x72F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x135D5CDD081D5CD94818481D5B9A5C5D59481251 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x73B PUSH2 0x12C TIMESTAMP PUSH2 0xF2F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x74B DUP9 DUP9 DUP9 DUP6 PUSH2 0x99B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0xFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x76B DUP7 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP4 MLOAD DUP2 SLOAD SWAP5 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xF8 SHL MUL PUSH1 0x8 SWAP2 SWAP1 SWAP2 SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D5 DUP7 DUP7 DUP7 DUP7 PUSH2 0x99B JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x8 SHL PUSH1 0xFF NOT SWAP1 DUP2 AND SWAP1 DUP3 AND EQ PUSH2 0x840 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506172616D7320646F206E6F74206D6174636820726571756573742049440000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x849 DUP3 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0xF8 SHL SWAP1 SWAP2 DIV SWAP1 SWAP2 AND GT ISZERO PUSH2 0x8B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446174612076657273696F6E73206D757374206D617463680000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP POP POP PUSH1 0x0 SWAP4 DUP5 MSTORE POP POP PUSH1 0x3 PUSH1 0x20 MSTORE POP PUSH1 0x40 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x360 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x98C PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x60 SWAP5 SWAP1 SWAP5 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP5 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP3 SWAP1 SWAP3 AND PUSH1 0x54 DUP5 ADD MSTORE PUSH1 0x58 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x78 SWAP1 SWAP3 ADD SWAP1 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 LT PUSH2 0xA41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1B9D5B58995C881D1BDBC8189A59C81D1BC818D85CDD PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0xA9C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xA9C JUMPI DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 CALLDATALOAD AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0xA69 JUMP JUMPDEST POP PUSH2 0xAA8 SWAP3 SWAP2 POP PUSH2 0xAAC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xAA8 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xAAD JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xA44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB01 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB18 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xB30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB48 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xB51 DUP3 PUSH2 0xAC1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 DUP11 DUP13 SUB SLT ISZERO PUSH2 0xB76 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0xB7F DUP11 PUSH2 0xAC1 JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP7 POP PUSH2 0xB9B PUSH1 0x60 DUP12 ADD PUSH2 0xAC1 JUMP JUMPDEST SWAP6 POP PUSH2 0xBA9 PUSH1 0x80 DUP12 ADD PUSH2 0xAD8 JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP3 POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBD2 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xBDE DUP13 DUP3 DUP14 ADD PUSH2 0xAF0 JUMP JUMPDEST SWAP2 POP DUP1 SWAP4 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC09 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xC12 DUP5 PUSH2 0xAC1 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xC35 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC48 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xC5A JUMPI PUSH2 0xC5A PUSH2 0xF78 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xC82 JUMPI PUSH2 0xC82 PUSH2 0xF78 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xC9A JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY DUP6 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCCD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCE4 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCF7 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xD05 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP1 DUP4 MUL DUP6 ADD ADD GT ISZERO PUSH2 0xD18 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xD44 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH2 0xD5B PUSH1 0x40 DUP10 ADD PUSH2 0xAC1 JUMP JUMPDEST SWAP5 POP PUSH2 0xD69 PUSH1 0x60 DUP10 ADD PUSH2 0xAD8 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD8B JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xD97 DUP11 DUP3 DUP12 ADD PUSH2 0xAF0 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP5 AND DUP2 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x4 DUP5 ADD CALLDATACOPY SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xDEE JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0xDD4 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xDFC JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP11 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP10 SWAP1 MSTORE DUP8 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP7 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 PUSH2 0x120 DUP4 DUP6 DUP3 DUP6 ADD CALLDATACOPY DUP3 DUP5 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 DUP5 PUSH1 0x60 DUP4 ADD DUP3 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0xEC2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0xEAD DUP5 PUSH2 0xAC1 JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xE94 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF23 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xEFE JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xF42 JUMPI PUSH2 0xF42 PUSH2 0xF62 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0xF5B JUMPI PUSH2 0xF5B PUSH2 0xF62 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x26 0x2E GAS 0xD4 0xAD SWAP3 0xD2 SWAP9 PUSH13 0x722791CEDDA45946B31C84F2CD PUSH18 0xF00EB573C7C470F5A364736F6C6343000802 STOP CALLER ","sourceMap":"110:10794:69:-:0;;;1326:27;;;;;;;;;-1:-1:-1;936:32:41;719:10:59;936:18:41;:32::i;:::-;110:10794:69;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;110:10794:69:-;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:13228:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"240:125:103","statements":[{"nodeType":"YulAssignment","src":"250:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"272:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"259:12:103"},"nodeType":"YulFunctionCall","src":"259:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"250:5:103"}]},{"body":{"nodeType":"YulBlock","src":"343:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"352:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"355:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"345:6:103"},"nodeType":"YulFunctionCall","src":"345:12:103"},"nodeType":"YulExpressionStatement","src":"345:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"301:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"312:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"323:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"328:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"319:3:103"},"nodeType":"YulFunctionCall","src":"319:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"308:3:103"},"nodeType":"YulFunctionCall","src":"308:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"298:2:103"},"nodeType":"YulFunctionCall","src":"298:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"291:6:103"},"nodeType":"YulFunctionCall","src":"291:51:103"},"nodeType":"YulIf","src":"288:2:103"}]},"name":"abi_decode_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"219:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"230:5:103","type":""}],"src":"192:173:103"},{"body":{"nodeType":"YulBlock","src":"442:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"491:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"500:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"510:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"493:6:103"},"nodeType":"YulFunctionCall","src":"493:26:103"},"nodeType":"YulExpressionStatement","src":"493:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"470:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"478:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"466:3:103"},"nodeType":"YulFunctionCall","src":"466:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"485:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"462:3:103"},"nodeType":"YulFunctionCall","src":"462:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"455:6:103"},"nodeType":"YulFunctionCall","src":"455:35:103"},"nodeType":"YulIf","src":"452:2:103"},{"nodeType":"YulAssignment","src":"530:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"553:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"540:12:103"},"nodeType":"YulFunctionCall","src":"540:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"530:6:103"}]},{"body":{"nodeType":"YulBlock","src":"603:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"612:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"622:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"605:6:103"},"nodeType":"YulFunctionCall","src":"605:26:103"},"nodeType":"YulExpressionStatement","src":"605:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"575:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"583:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"572:2:103"},"nodeType":"YulFunctionCall","src":"572:30:103"},"nodeType":"YulIf","src":"569:2:103"},{"nodeType":"YulAssignment","src":"642:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"658:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"666:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"654:3:103"},"nodeType":"YulFunctionCall","src":"654:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"642:8:103"}]},{"body":{"nodeType":"YulBlock","src":"723:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"732:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"735:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"725:6:103"},"nodeType":"YulFunctionCall","src":"725:12:103"},"nodeType":"YulExpressionStatement","src":"725:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"694:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"702:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"690:3:103"},"nodeType":"YulFunctionCall","src":"690:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"711:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"686:3:103"},"nodeType":"YulFunctionCall","src":"686:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"718:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"683:2:103"},"nodeType":"YulFunctionCall","src":"683:39:103"},"nodeType":"YulIf","src":"680:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"405:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"413:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"421:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"431:6:103","type":""}],"src":"370:375:103"},{"body":{"nodeType":"YulBlock","src":"820:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"866:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"875:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"883:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"868:6:103"},"nodeType":"YulFunctionCall","src":"868:22:103"},"nodeType":"YulExpressionStatement","src":"868:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"841:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"850:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"837:3:103"},"nodeType":"YulFunctionCall","src":"837:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"862:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"833:3:103"},"nodeType":"YulFunctionCall","src":"833:32:103"},"nodeType":"YulIf","src":"830:2:103"},{"nodeType":"YulAssignment","src":"901:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"930:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"901:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"786:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"797:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"809:6:103","type":""}],"src":"750:196:103"},{"body":{"nodeType":"YulBlock","src":"1158:719:103","statements":[{"body":{"nodeType":"YulBlock","src":"1205:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1214:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1222:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1207:6:103"},"nodeType":"YulFunctionCall","src":"1207:22:103"},"nodeType":"YulExpressionStatement","src":"1207:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1179:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1188:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1175:3:103"},"nodeType":"YulFunctionCall","src":"1175:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1200:3:103","type":"","value":"256"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1171:3:103"},"nodeType":"YulFunctionCall","src":"1171:33:103"},"nodeType":"YulIf","src":"1168:2:103"},{"nodeType":"YulAssignment","src":"1240:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1269:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1250:18:103"},"nodeType":"YulFunctionCall","src":"1250:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1240:6:103"}]},{"nodeType":"YulAssignment","src":"1288:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1315:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1326:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1311:3:103"},"nodeType":"YulFunctionCall","src":"1311:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1298:12:103"},"nodeType":"YulFunctionCall","src":"1298:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1288:6:103"}]},{"nodeType":"YulAssignment","src":"1339:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1366:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1377:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1362:3:103"},"nodeType":"YulFunctionCall","src":"1362:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1349:12:103"},"nodeType":"YulFunctionCall","src":"1349:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1339:6:103"}]},{"nodeType":"YulAssignment","src":"1390:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1423:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1434:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1419:3:103"},"nodeType":"YulFunctionCall","src":"1419:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1400:18:103"},"nodeType":"YulFunctionCall","src":"1400:38:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1390:6:103"}]},{"nodeType":"YulAssignment","src":"1447:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1479:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1490:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:103"},"nodeType":"YulFunctionCall","src":"1475:19:103"}],"functionName":{"name":"abi_decode_bytes4","nodeType":"YulIdentifier","src":"1457:17:103"},"nodeType":"YulFunctionCall","src":"1457:38:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1447:6:103"}]},{"nodeType":"YulAssignment","src":"1504:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1531:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1542:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1527:3:103"},"nodeType":"YulFunctionCall","src":"1527:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1514:12:103"},"nodeType":"YulFunctionCall","src":"1514:33:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1504:6:103"}]},{"nodeType":"YulAssignment","src":"1556:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1583:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1594:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1579:3:103"},"nodeType":"YulFunctionCall","src":"1579:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1566:12:103"},"nodeType":"YulFunctionCall","src":"1566:33:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"1556:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1608:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1639:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1650:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1635:3:103"},"nodeType":"YulFunctionCall","src":"1635:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1622:12:103"},"nodeType":"YulFunctionCall","src":"1622:33:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1612:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1698:26:103","statements":[{"expression":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"1707:6:103"},{"name":"value7","nodeType":"YulIdentifier","src":"1715:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1700:6:103"},"nodeType":"YulFunctionCall","src":"1700:22:103"},"nodeType":"YulExpressionStatement","src":"1700:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1670:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1678:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1667:2:103"},"nodeType":"YulFunctionCall","src":"1667:30:103"},"nodeType":"YulIf","src":"1664:2:103"},{"nodeType":"YulVariableDeclaration","src":"1733:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1789:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1800:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1785:3:103"},"nodeType":"YulFunctionCall","src":"1785:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1809:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1759:25:103"},"nodeType":"YulFunctionCall","src":"1759:58:103"},"variables":[{"name":"value7_1","nodeType":"YulTypedName","src":"1737:8:103","type":""},{"name":"value8_1","nodeType":"YulTypedName","src":"1747:8:103","type":""}]},{"nodeType":"YulAssignment","src":"1826:18:103","value":{"name":"value7_1","nodeType":"YulIdentifier","src":"1836:8:103"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"1826:6:103"}]},{"nodeType":"YulAssignment","src":"1853:18:103","value":{"name":"value8_1","nodeType":"YulIdentifier","src":"1863:8:103"},"variableNames":[{"name":"value8","nodeType":"YulIdentifier","src":"1853:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes32t_addresst_bytes4t_uint256t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1060:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1071:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1083:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1091:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1099:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1107:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1115:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1123:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"1131:6:103","type":""},{"name":"value7","nodeType":"YulTypedName","src":"1139:6:103","type":""},{"name":"value8","nodeType":"YulTypedName","src":"1147:6:103","type":""}],"src":"951:926:103"},{"body":{"nodeType":"YulBlock","src":"1995:995:103","statements":[{"body":{"nodeType":"YulBlock","src":"2041:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2050:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2058:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2043:6:103"},"nodeType":"YulFunctionCall","src":"2043:22:103"},"nodeType":"YulExpressionStatement","src":"2043:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2016:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2025:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2012:3:103"},"nodeType":"YulFunctionCall","src":"2012:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2037:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2008:3:103"},"nodeType":"YulFunctionCall","src":"2008:32:103"},"nodeType":"YulIf","src":"2005:2:103"},{"nodeType":"YulAssignment","src":"2076:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2105:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2086:18:103"},"nodeType":"YulFunctionCall","src":"2086:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2076:6:103"}]},{"nodeType":"YulAssignment","src":"2124:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2162:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2147:3:103"},"nodeType":"YulFunctionCall","src":"2147:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2134:12:103"},"nodeType":"YulFunctionCall","src":"2134:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2124:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2175:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2206:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2217:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2202:3:103"},"nodeType":"YulFunctionCall","src":"2202:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2189:12:103"},"nodeType":"YulFunctionCall","src":"2189:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2179:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2230:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2240:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2234:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2285:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2294:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2302:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2287:6:103"},"nodeType":"YulFunctionCall","src":"2287:22:103"},"nodeType":"YulExpressionStatement","src":"2287:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2273:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2281:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2270:2:103"},"nodeType":"YulFunctionCall","src":"2270:14:103"},"nodeType":"YulIf","src":"2267:2:103"},{"nodeType":"YulVariableDeclaration","src":"2320:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2334:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2345:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2330:3:103"},"nodeType":"YulFunctionCall","src":"2330:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2324:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2400:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2409:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2417:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2402:6:103"},"nodeType":"YulFunctionCall","src":"2402:22:103"},"nodeType":"YulExpressionStatement","src":"2402:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2379:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2383:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2375:3:103"},"nodeType":"YulFunctionCall","src":"2375:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2390:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2371:3:103"},"nodeType":"YulFunctionCall","src":"2371:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2364:6:103"},"nodeType":"YulFunctionCall","src":"2364:35:103"},"nodeType":"YulIf","src":"2361:2:103"},{"nodeType":"YulVariableDeclaration","src":"2435:26:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2458:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2445:12:103"},"nodeType":"YulFunctionCall","src":"2445:16:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2439:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2484:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2486:16:103"},"nodeType":"YulFunctionCall","src":"2486:18:103"},"nodeType":"YulExpressionStatement","src":"2486:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2476:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2480:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2473:2:103"},"nodeType":"YulFunctionCall","src":"2473:10:103"},"nodeType":"YulIf","src":"2470:2:103"},{"nodeType":"YulVariableDeclaration","src":"2515:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2529:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2525:3:103"},"nodeType":"YulFunctionCall","src":"2525:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2519:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2541:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2561:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2555:5:103"},"nodeType":"YulFunctionCall","src":"2555:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2545:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2573:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2595:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2619:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2623:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2615:3:103"},"nodeType":"YulFunctionCall","src":"2615:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"2630:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2611:3:103"},"nodeType":"YulFunctionCall","src":"2611:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"2635:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2607:3:103"},"nodeType":"YulFunctionCall","src":"2607:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"2640:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2603:3:103"},"nodeType":"YulFunctionCall","src":"2603:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2591:3:103"},"nodeType":"YulFunctionCall","src":"2591:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2577:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2703:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2705:16:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},"nodeType":"YulExpressionStatement","src":"2705:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2662:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2674:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2659:2:103"},"nodeType":"YulFunctionCall","src":"2659:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2682:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2694:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2679:2:103"},"nodeType":"YulFunctionCall","src":"2679:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2656:2:103"},"nodeType":"YulFunctionCall","src":"2656:46:103"},"nodeType":"YulIf","src":"2653:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2741:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2745:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2734:6:103"},"nodeType":"YulFunctionCall","src":"2734:22:103"},"nodeType":"YulExpressionStatement","src":"2734:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2772:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2780:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2765:6:103"},"nodeType":"YulFunctionCall","src":"2765:18:103"},"nodeType":"YulExpressionStatement","src":"2765:18:103"},{"body":{"nodeType":"YulBlock","src":"2829:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2838:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2846:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2831:6:103"},"nodeType":"YulFunctionCall","src":"2831:22:103"},"nodeType":"YulExpressionStatement","src":"2831:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2806:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2810:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2802:3:103"},"nodeType":"YulFunctionCall","src":"2802:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2815:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2798:3:103"},"nodeType":"YulFunctionCall","src":"2798:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2820:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2795:2:103"},"nodeType":"YulFunctionCall","src":"2795:33:103"},"nodeType":"YulIf","src":"2792:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2881:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2889:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2877:3:103"},"nodeType":"YulFunctionCall","src":"2877:15:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2898:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2902:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2894:3:103"},"nodeType":"YulFunctionCall","src":"2894:11:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2907:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2864:12:103"},"nodeType":"YulFunctionCall","src":"2864:46:103"},"nodeType":"YulExpressionStatement","src":"2864:46:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2934:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2942:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2930:3:103"},"nodeType":"YulFunctionCall","src":"2930:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"2947:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2926:3:103"},"nodeType":"YulFunctionCall","src":"2926:24:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2952:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2919:6:103"},"nodeType":"YulFunctionCall","src":"2919:40:103"},"nodeType":"YulExpressionStatement","src":"2919:40:103"},{"nodeType":"YulAssignment","src":"2968:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2978:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2968:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1945:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1956:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1968:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1976:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1984:6:103","type":""}],"src":"1882:1108:103"},{"body":{"nodeType":"YulBlock","src":"3100:561:103","statements":[{"body":{"nodeType":"YulBlock","src":"3146:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3155:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3163:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3148:6:103"},"nodeType":"YulFunctionCall","src":"3148:22:103"},"nodeType":"YulExpressionStatement","src":"3148:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3121:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3130:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3117:3:103"},"nodeType":"YulFunctionCall","src":"3117:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3142:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3113:3:103"},"nodeType":"YulFunctionCall","src":"3113:32:103"},"nodeType":"YulIf","src":"3110:2:103"},{"nodeType":"YulVariableDeclaration","src":"3181:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3208:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3195:12:103"},"nodeType":"YulFunctionCall","src":"3195:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3185:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3227:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3237:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3231:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3282:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3291:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3299:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3284:6:103"},"nodeType":"YulFunctionCall","src":"3284:22:103"},"nodeType":"YulExpressionStatement","src":"3284:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3270:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3278:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3267:2:103"},"nodeType":"YulFunctionCall","src":"3267:14:103"},"nodeType":"YulIf","src":"3264:2:103"},{"nodeType":"YulVariableDeclaration","src":"3317:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3331:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3342:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3327:3:103"},"nodeType":"YulFunctionCall","src":"3327:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3321:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3397:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3406:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3414:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3399:6:103"},"nodeType":"YulFunctionCall","src":"3399:22:103"},"nodeType":"YulExpressionStatement","src":"3399:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3376:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3380:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3372:3:103"},"nodeType":"YulFunctionCall","src":"3372:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3387:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3368:3:103"},"nodeType":"YulFunctionCall","src":"3368:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3361:6:103"},"nodeType":"YulFunctionCall","src":"3361:35:103"},"nodeType":"YulIf","src":"3358:2:103"},{"nodeType":"YulVariableDeclaration","src":"3432:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3459:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3446:12:103"},"nodeType":"YulFunctionCall","src":"3446:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3436:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3489:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3498:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3506:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3491:6:103"},"nodeType":"YulFunctionCall","src":"3491:22:103"},"nodeType":"YulExpressionStatement","src":"3491:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3477:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3485:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3474:2:103"},"nodeType":"YulFunctionCall","src":"3474:14:103"},"nodeType":"YulIf","src":"3471:2:103"},{"body":{"nodeType":"YulBlock","src":"3574:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3583:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3591:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3576:6:103"},"nodeType":"YulFunctionCall","src":"3576:22:103"},"nodeType":"YulExpressionStatement","src":"3576:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3538:2:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3546:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3554:2:103","type":"","value":"32"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3542:3:103"},"nodeType":"YulFunctionCall","src":"3542:15:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3534:3:103"},"nodeType":"YulFunctionCall","src":"3534:24:103"},{"kind":"number","nodeType":"YulLiteral","src":"3560:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3530:3:103"},"nodeType":"YulFunctionCall","src":"3530:33:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3565:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3527:2:103"},"nodeType":"YulFunctionCall","src":"3527:46:103"},"nodeType":"YulIf","src":"3524:2:103"},{"nodeType":"YulAssignment","src":"3609:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3623:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3627:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3619:3:103"},"nodeType":"YulFunctionCall","src":"3619:11:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3609:6:103"}]},{"nodeType":"YulAssignment","src":"3639:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"3649:6:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3639:6:103"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3058:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3069:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3081:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3089:6:103","type":""}],"src":"2995:666:103"},{"body":{"nodeType":"YulBlock","src":"3839:609:103","statements":[{"body":{"nodeType":"YulBlock","src":"3886:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3895:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"3903:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3888:6:103"},"nodeType":"YulFunctionCall","src":"3888:22:103"},"nodeType":"YulExpressionStatement","src":"3888:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3860:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3869:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3856:3:103"},"nodeType":"YulFunctionCall","src":"3856:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3881:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3852:3:103"},"nodeType":"YulFunctionCall","src":"3852:33:103"},"nodeType":"YulIf","src":"3849:2:103"},{"nodeType":"YulAssignment","src":"3921:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3944:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3931:12:103"},"nodeType":"YulFunctionCall","src":"3931:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3921:6:103"}]},{"nodeType":"YulAssignment","src":"3963:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3990:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4001:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3986:3:103"},"nodeType":"YulFunctionCall","src":"3986:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3973:12:103"},"nodeType":"YulFunctionCall","src":"3973:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3963:6:103"}]},{"nodeType":"YulAssignment","src":"4014:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4047:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4058:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4043:3:103"},"nodeType":"YulFunctionCall","src":"4043:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4024:18:103"},"nodeType":"YulFunctionCall","src":"4024:38:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4014:6:103"}]},{"nodeType":"YulAssignment","src":"4071:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4103:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4114:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4099:3:103"},"nodeType":"YulFunctionCall","src":"4099:18:103"}],"functionName":{"name":"abi_decode_bytes4","nodeType":"YulIdentifier","src":"4081:17:103"},"nodeType":"YulFunctionCall","src":"4081:37:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4071:6:103"}]},{"nodeType":"YulAssignment","src":"4127:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4154:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4165:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4150:3:103"},"nodeType":"YulFunctionCall","src":"4150:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4137:12:103"},"nodeType":"YulFunctionCall","src":"4137:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4127:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"4179:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4210:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4221:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4206:3:103"},"nodeType":"YulFunctionCall","src":"4206:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4193:12:103"},"nodeType":"YulFunctionCall","src":"4193:33:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4183:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4269:26:103","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"4278:6:103"},{"name":"value5","nodeType":"YulIdentifier","src":"4286:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4271:6:103"},"nodeType":"YulFunctionCall","src":"4271:22:103"},"nodeType":"YulExpressionStatement","src":"4271:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4241:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4249:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4238:2:103"},"nodeType":"YulFunctionCall","src":"4238:30:103"},"nodeType":"YulIf","src":"4235:2:103"},{"nodeType":"YulVariableDeclaration","src":"4304:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4360:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4371:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4356:3:103"},"nodeType":"YulFunctionCall","src":"4356:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4380:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"4330:25:103"},"nodeType":"YulFunctionCall","src":"4330:58:103"},"variables":[{"name":"value5_1","nodeType":"YulTypedName","src":"4308:8:103","type":""},{"name":"value6_1","nodeType":"YulTypedName","src":"4318:8:103","type":""}]},{"nodeType":"YulAssignment","src":"4397:18:103","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"4407:8:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"4397:6:103"}]},{"nodeType":"YulAssignment","src":"4424:18:103","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"4434:8:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"4424:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_addresst_bytes4t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3757:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3768:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3780:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3788:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3796:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3804:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3812:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"3820:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"3828:6:103","type":""}],"src":"3666:782:103"},{"body":{"nodeType":"YulBlock","src":"4600:147:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4617:3:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4630:2:103","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"4634:6:103"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4626:3:103"},"nodeType":"YulFunctionCall","src":"4626:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4647:26:103","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4643:3:103"},"nodeType":"YulFunctionCall","src":"4643:31:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4622:3:103"},"nodeType":"YulFunctionCall","src":"4622:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4610:6:103"},"nodeType":"YulFunctionCall","src":"4610:66:103"},"nodeType":"YulExpressionStatement","src":"4610:66:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4696:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4701:2:103","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4692:3:103"},"nodeType":"YulFunctionCall","src":"4692:12:103"},{"name":"value1","nodeType":"YulIdentifier","src":"4706:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4685:6:103"},"nodeType":"YulFunctionCall","src":"4685:28:103"},"nodeType":"YulExpressionStatement","src":"4685:28:103"},{"nodeType":"YulAssignment","src":"4722:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4733:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4729:3:103"},"nodeType":"YulFunctionCall","src":"4729:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4722:3:103"}]}]},"name":"abi_encode_tuple_packed_t_address_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4568:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4573:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4581:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4592:3:103","type":""}],"src":"4453:294:103"},{"body":{"nodeType":"YulBlock","src":"4925:197:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4942:3:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4951:6:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4963:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4968:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4959:3:103"},"nodeType":"YulFunctionCall","src":"4959:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4947:3:103"},"nodeType":"YulFunctionCall","src":"4947:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4935:6:103"},"nodeType":"YulFunctionCall","src":"4935:46:103"},"nodeType":"YulExpressionStatement","src":"4935:46:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5007:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5012:1:103","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5003:3:103"},"nodeType":"YulFunctionCall","src":"5003:11:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5016:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5024:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4990:12:103"},"nodeType":"YulFunctionCall","src":"4990:41:103"},"nodeType":"YulExpressionStatement","src":"4990:41:103"},{"nodeType":"YulVariableDeclaration","src":"5040:34:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5058:3:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5063:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5054:3:103"},"nodeType":"YulFunctionCall","src":"5054:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"5072:1:103","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5050:3:103"},"nodeType":"YulFunctionCall","src":"5050:24:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5044:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5090:2:103"},{"name":"end","nodeType":"YulIdentifier","src":"5094:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5083:6:103"},"nodeType":"YulFunctionCall","src":"5083:15:103"},"nodeType":"YulExpressionStatement","src":"5083:15:103"},{"nodeType":"YulAssignment","src":"5107:9:103","value":{"name":"_1","nodeType":"YulIdentifier","src":"5114:2:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5107:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4885:3:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4890:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4898:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4906:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4917:3:103","type":""}],"src":"4752:370:103"},{"body":{"nodeType":"YulBlock","src":"5264:293:103","statements":[{"nodeType":"YulVariableDeclaration","src":"5274:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5294:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5288:5:103"},"nodeType":"YulFunctionCall","src":"5288:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5278:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5310:12:103","value":{"name":"end","nodeType":"YulIdentifier","src":"5319:3:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5314:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5383:77:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5408:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"5413:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5404:3:103"},"nodeType":"YulFunctionCall","src":"5404:11:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5431:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"5439:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5427:3:103"},"nodeType":"YulFunctionCall","src":"5427:14:103"},{"kind":"number","nodeType":"YulLiteral","src":"5443:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5423:3:103"},"nodeType":"YulFunctionCall","src":"5423:25:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5417:5:103"},"nodeType":"YulFunctionCall","src":"5417:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5397:6:103"},"nodeType":"YulFunctionCall","src":"5397:53:103"},"nodeType":"YulExpressionStatement","src":"5397:53:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5342:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5345:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5339:2:103"},"nodeType":"YulFunctionCall","src":"5339:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5353:21:103","statements":[{"nodeType":"YulAssignment","src":"5355:17:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5364:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"5367:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5360:3:103"},"nodeType":"YulFunctionCall","src":"5360:12:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5355:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"5335:3:103","statements":[]},"src":"5331:129:103"},{"body":{"nodeType":"YulBlock","src":"5486:33:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5499:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5504:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5495:3:103"},"nodeType":"YulFunctionCall","src":"5495:16:103"},{"name":"end","nodeType":"YulIdentifier","src":"5513:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5488:6:103"},"nodeType":"YulFunctionCall","src":"5488:29:103"},"nodeType":"YulExpressionStatement","src":"5488:29:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5475:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5478:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5472:2:103"},"nodeType":"YulFunctionCall","src":"5472:13:103"},"nodeType":"YulIf","src":"5469:2:103"},{"nodeType":"YulAssignment","src":"5528:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5539:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5544:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5535:3:103"},"nodeType":"YulFunctionCall","src":"5535:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5528:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5240:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5245:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5256:3:103","type":""}],"src":"5127:430:103"},{"body":{"nodeType":"YulBlock","src":"5763:248:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5780:3:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5785:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5773:6:103"},"nodeType":"YulFunctionCall","src":"5773:19:103"},"nodeType":"YulExpressionStatement","src":"5773:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5812:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5817:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5808:3:103"},"nodeType":"YulFunctionCall","src":"5808:12:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:2:103","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"5834:6:103"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5826:3:103"},"nodeType":"YulFunctionCall","src":"5826:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5847:26:103","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5843:3:103"},"nodeType":"YulFunctionCall","src":"5843:31:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5822:3:103"},"nodeType":"YulFunctionCall","src":"5822:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5801:6:103"},"nodeType":"YulFunctionCall","src":"5801:75:103"},"nodeType":"YulExpressionStatement","src":"5801:75:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5896:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5901:2:103","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5892:3:103"},"nodeType":"YulFunctionCall","src":"5892:12:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5910:6:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5922:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5927:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5918:3:103"},"nodeType":"YulFunctionCall","src":"5918:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5906:3:103"},"nodeType":"YulFunctionCall","src":"5906:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5885:6:103"},"nodeType":"YulFunctionCall","src":"5885:55:103"},"nodeType":"YulExpressionStatement","src":"5885:55:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5960:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5965:2:103","type":"","value":"56"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5956:3:103"},"nodeType":"YulFunctionCall","src":"5956:12:103"},{"name":"value3","nodeType":"YulIdentifier","src":"5970:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5949:6:103"},"nodeType":"YulFunctionCall","src":"5949:28:103"},"nodeType":"YulExpressionStatement","src":"5949:28:103"},{"nodeType":"YulAssignment","src":"5986:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5997:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"6002:2:103","type":"","value":"88"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5993:3:103"},"nodeType":"YulFunctionCall","src":"5993:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5986:3:103"}]}]},"name":"abi_encode_tuple_packed_t_uint256_t_address_t_bytes4_t_uint256__to_t_uint256_t_address_t_bytes4_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5715:3:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5720:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5728:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5736:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5744:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5755:3:103","type":""}],"src":"5562:449:103"},{"body":{"nodeType":"YulBlock","src":"6117:102:103","statements":[{"nodeType":"YulAssignment","src":"6127:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6139:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6150:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6135:3:103"},"nodeType":"YulFunctionCall","src":"6135:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6127:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6169:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6184:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6200:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6205:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6196:3:103"},"nodeType":"YulFunctionCall","src":"6196:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6209:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6192:3:103"},"nodeType":"YulFunctionCall","src":"6192:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6180:3:103"},"nodeType":"YulFunctionCall","src":"6180:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6162:6:103"},"nodeType":"YulFunctionCall","src":"6162:51:103"},"nodeType":"YulExpressionStatement","src":"6162:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6086:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6097:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6108:4:103","type":""}],"src":"6016:203:103"},{"body":{"nodeType":"YulBlock","src":"6547:694:103","statements":[{"nodeType":"YulVariableDeclaration","src":"6557:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6567:3:103","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6561:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6579:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6597:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6602:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6593:3:103"},"nodeType":"YulFunctionCall","src":"6593:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6606:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6589:3:103"},"nodeType":"YulFunctionCall","src":"6589:19:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6583:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6624:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6639:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6647:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6635:3:103"},"nodeType":"YulFunctionCall","src":"6635:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6617:6:103"},"nodeType":"YulFunctionCall","src":"6617:34:103"},"nodeType":"YulExpressionStatement","src":"6617:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6682:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6667:3:103"},"nodeType":"YulFunctionCall","src":"6667:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6687:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6660:6:103"},"nodeType":"YulFunctionCall","src":"6660:34:103"},"nodeType":"YulExpressionStatement","src":"6660:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6714:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6725:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6710:3:103"},"nodeType":"YulFunctionCall","src":"6710:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6730:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6703:6:103"},"nodeType":"YulFunctionCall","src":"6703:34:103"},"nodeType":"YulExpressionStatement","src":"6703:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6757:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6768:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6753:3:103"},"nodeType":"YulFunctionCall","src":"6753:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6777:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6785:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6773:3:103"},"nodeType":"YulFunctionCall","src":"6773:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6746:6:103"},"nodeType":"YulFunctionCall","src":"6746:43:103"},"nodeType":"YulExpressionStatement","src":"6746:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6809:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6820:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6805:3:103"},"nodeType":"YulFunctionCall","src":"6805:19:103"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6830:6:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6842:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6847:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6838:3:103"},"nodeType":"YulFunctionCall","src":"6838:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6826:3:103"},"nodeType":"YulFunctionCall","src":"6826:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6798:6:103"},"nodeType":"YulFunctionCall","src":"6798:62:103"},"nodeType":"YulExpressionStatement","src":"6798:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6880:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6891:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6876:3:103"},"nodeType":"YulFunctionCall","src":"6876:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"6897:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6869:6:103"},"nodeType":"YulFunctionCall","src":"6869:35:103"},"nodeType":"YulExpressionStatement","src":"6869:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6924:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6935:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6920:3:103"},"nodeType":"YulFunctionCall","src":"6920:19:103"},{"name":"value6","nodeType":"YulIdentifier","src":"6941:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6913:6:103"},"nodeType":"YulFunctionCall","src":"6913:35:103"},"nodeType":"YulExpressionStatement","src":"6913:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6968:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6979:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6964:3:103"},"nodeType":"YulFunctionCall","src":"6964:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6985:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6957:6:103"},"nodeType":"YulFunctionCall","src":"6957:31:103"},"nodeType":"YulExpressionStatement","src":"6957:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7008:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7019:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7004:3:103"},"nodeType":"YulFunctionCall","src":"7004:18:103"},{"name":"value8","nodeType":"YulIdentifier","src":"7024:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6997:6:103"},"nodeType":"YulFunctionCall","src":"6997:34:103"},"nodeType":"YulExpressionStatement","src":"6997:34:103"},{"nodeType":"YulVariableDeclaration","src":"7040:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7050:3:103","type":"","value":"288"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"7044:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7079:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"7090:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7075:3:103"},"nodeType":"YulFunctionCall","src":"7075:18:103"},{"name":"value7","nodeType":"YulIdentifier","src":"7095:6:103"},{"name":"value8","nodeType":"YulIdentifier","src":"7103:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"7062:12:103"},"nodeType":"YulFunctionCall","src":"7062:48:103"},"nodeType":"YulExpressionStatement","src":"7062:48:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7134:9:103"},{"name":"value8","nodeType":"YulIdentifier","src":"7145:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7130:3:103"},"nodeType":"YulFunctionCall","src":"7130:22:103"},{"name":"_3","nodeType":"YulIdentifier","src":"7154:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7126:3:103"},"nodeType":"YulFunctionCall","src":"7126:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"7159:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7119:6:103"},"nodeType":"YulFunctionCall","src":"7119:45:103"},"nodeType":"YulExpressionStatement","src":"7119:45:103"},{"nodeType":"YulAssignment","src":"7173:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7189:9:103"},{"arguments":[{"arguments":[{"name":"value8","nodeType":"YulIdentifier","src":"7208:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7216:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7204:3:103"},"nodeType":"YulFunctionCall","src":"7204:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7225:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7221:3:103"},"nodeType":"YulFunctionCall","src":"7221:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7200:3:103"},"nodeType":"YulFunctionCall","src":"7200:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7185:3:103"},"nodeType":"YulFunctionCall","src":"7185:45:103"},{"name":"_3","nodeType":"YulIdentifier","src":"7232:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7181:3:103"},"nodeType":"YulFunctionCall","src":"7181:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7173:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_uint256_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_address_t_bytes32_t_uint256_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6452:9:103","type":""},{"name":"value8","nodeType":"YulTypedName","src":"6463:6:103","type":""},{"name":"value7","nodeType":"YulTypedName","src":"6471:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6479:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6487:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6495:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6503:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6511:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6519:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6527:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6538:4:103","type":""}],"src":"6224:1017:103"},{"body":{"nodeType":"YulBlock","src":"7435:555:103","statements":[{"nodeType":"YulVariableDeclaration","src":"7445:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7474:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7459:3:103"},"nodeType":"YulFunctionCall","src":"7459:18:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"7449:6:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7493:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7504:2:103","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7486:6:103"},"nodeType":"YulFunctionCall","src":"7486:21:103"},"nodeType":"YulExpressionStatement","src":"7486:21:103"},{"nodeType":"YulVariableDeclaration","src":"7516:17:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"7527:6:103"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"7520:3:103","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"7549:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7557:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7542:6:103"},"nodeType":"YulFunctionCall","src":"7542:22:103"},"nodeType":"YulExpressionStatement","src":"7542:22:103"},{"nodeType":"YulAssignment","src":"7573:25:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7584:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7595:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7580:3:103"},"nodeType":"YulFunctionCall","src":"7580:18:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7573:3:103"}]},{"nodeType":"YulVariableDeclaration","src":"7607:20:103","value":{"name":"value0","nodeType":"YulIdentifier","src":"7621:6:103"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"7611:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7636:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"7645:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"7640:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7707:186:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7728:3:103"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7756:6:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7737:18:103"},"nodeType":"YulFunctionCall","src":"7737:26:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7773:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7778:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7769:3:103"},"nodeType":"YulFunctionCall","src":"7769:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7782:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7765:3:103"},"nodeType":"YulFunctionCall","src":"7765:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7733:3:103"},"nodeType":"YulFunctionCall","src":"7733:52:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7721:6:103"},"nodeType":"YulFunctionCall","src":"7721:65:103"},"nodeType":"YulExpressionStatement","src":"7721:65:103"},{"nodeType":"YulVariableDeclaration","src":"7799:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7809:4:103","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7803:2:103","type":""}]},{"nodeType":"YulAssignment","src":"7826:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7837:3:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7842:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7833:3:103"},"nodeType":"YulFunctionCall","src":"7833:12:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7826:3:103"}]},{"nodeType":"YulAssignment","src":"7858:25:103","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7872:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7868:3:103"},"nodeType":"YulFunctionCall","src":"7868:15:103"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7858:6:103"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7669:1:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7672:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7666:2:103"},"nodeType":"YulFunctionCall","src":"7666:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7680:18:103","statements":[{"nodeType":"YulAssignment","src":"7682:14:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7691:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"7694:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7687:3:103"},"nodeType":"YulFunctionCall","src":"7687:9:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7682:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"7662:3:103","statements":[]},"src":"7658:235:103"},{"nodeType":"YulAssignment","src":"7902:11:103","value":{"name":"pos","nodeType":"YulIdentifier","src":"7910:3:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7902:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7933:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7944:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7929:3:103"},"nodeType":"YulFunctionCall","src":"7929:20:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7955:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7971:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7976:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7967:3:103"},"nodeType":"YulFunctionCall","src":"7967:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7980:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7963:3:103"},"nodeType":"YulFunctionCall","src":"7963:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7951:3:103"},"nodeType":"YulFunctionCall","src":"7951:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7922:6:103"},"nodeType":"YulFunctionCall","src":"7922:62:103"},"nodeType":"YulExpressionStatement","src":"7922:62:103"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_address__to_t_array$_t_address_$dyn_memory_ptr_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7388:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7399:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7407:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7415:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7426:4:103","type":""}],"src":"7246:744:103"},{"body":{"nodeType":"YulBlock","src":"8146:510:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8156:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8166:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8160:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8177:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8195:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8206:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8191:3:103"},"nodeType":"YulFunctionCall","src":"8191:18:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"8181:6:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8225:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8236:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8218:6:103"},"nodeType":"YulFunctionCall","src":"8218:21:103"},"nodeType":"YulExpressionStatement","src":"8218:21:103"},{"nodeType":"YulVariableDeclaration","src":"8248:17:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"8259:6:103"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"8252:3:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8274:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8294:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8288:5:103"},"nodeType":"YulFunctionCall","src":"8288:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8278:6:103","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"8317:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"8325:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8310:6:103"},"nodeType":"YulFunctionCall","src":"8310:22:103"},"nodeType":"YulExpressionStatement","src":"8310:22:103"},{"nodeType":"YulAssignment","src":"8341:25:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8363:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8348:3:103"},"nodeType":"YulFunctionCall","src":"8348:18:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"8341:3:103"}]},{"nodeType":"YulVariableDeclaration","src":"8375:29:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8393:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8401:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8389:3:103"},"nodeType":"YulFunctionCall","src":"8389:15:103"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"8379:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8413:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"8422:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"8417:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8484:146:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8505:3:103"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"8520:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8514:5:103"},"nodeType":"YulFunctionCall","src":"8514:13:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8537:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8542:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8533:3:103"},"nodeType":"YulFunctionCall","src":"8533:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"8546:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8529:3:103"},"nodeType":"YulFunctionCall","src":"8529:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8510:3:103"},"nodeType":"YulFunctionCall","src":"8510:39:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8498:6:103"},"nodeType":"YulFunctionCall","src":"8498:52:103"},"nodeType":"YulExpressionStatement","src":"8498:52:103"},{"nodeType":"YulAssignment","src":"8563:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8574:3:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8579:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8570:3:103"},"nodeType":"YulFunctionCall","src":"8570:12:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"8563:3:103"}]},{"nodeType":"YulAssignment","src":"8595:25:103","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"8609:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8617:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8605:3:103"},"nodeType":"YulFunctionCall","src":"8605:15:103"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"8595:6:103"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8446:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"8449:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8443:2:103"},"nodeType":"YulFunctionCall","src":"8443:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8457:18:103","statements":[{"nodeType":"YulAssignment","src":"8459:14:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8468:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"8471:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8464:3:103"},"nodeType":"YulFunctionCall","src":"8464:9:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"8459:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"8439:3:103","statements":[]},"src":"8435:195:103"},{"nodeType":"YulAssignment","src":"8639:11:103","value":{"name":"pos","nodeType":"YulIdentifier","src":"8647:3:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8639:4:103"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8115:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8126:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8137:4:103","type":""}],"src":"7995:661:103"},{"body":{"nodeType":"YulBlock","src":"8756:92:103","statements":[{"nodeType":"YulAssignment","src":"8766:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8778:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8789:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8774:3:103"},"nodeType":"YulFunctionCall","src":"8774:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8766:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8808:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8833:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8826:6:103"},"nodeType":"YulFunctionCall","src":"8826:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8819:6:103"},"nodeType":"YulFunctionCall","src":"8819:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8801:6:103"},"nodeType":"YulFunctionCall","src":"8801:41:103"},"nodeType":"YulExpressionStatement","src":"8801:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8725:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8736:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8747:4:103","type":""}],"src":"8661:187:103"},{"body":{"nodeType":"YulBlock","src":"9027:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9044:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9055:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9037:6:103"},"nodeType":"YulFunctionCall","src":"9037:21:103"},"nodeType":"YulExpressionStatement","src":"9037:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9089:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9074:3:103"},"nodeType":"YulFunctionCall","src":"9074:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9094:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9067:6:103"},"nodeType":"YulFunctionCall","src":"9067:30:103"},"nodeType":"YulExpressionStatement","src":"9067:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9117:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9128:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9113:3:103"},"nodeType":"YulFunctionCall","src":"9113:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9133:34:103","type":"","value":"Must have at least 1 authorized "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9106:6:103"},"nodeType":"YulFunctionCall","src":"9106:62:103"},"nodeType":"YulExpressionStatement","src":"9106:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9188:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9199:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9184:3:103"},"nodeType":"YulFunctionCall","src":"9184:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9204:8:103","type":"","value":"sender"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9177:6:103"},"nodeType":"YulFunctionCall","src":"9177:36:103"},"nodeType":"YulExpressionStatement","src":"9177:36:103"},{"nodeType":"YulAssignment","src":"9222:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9234:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9245:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9230:3:103"},"nodeType":"YulFunctionCall","src":"9230:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9222:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_14acbd13c311ce77adbf2abb2c29118807e2efa37eb8080b0a33366f8bd4c4af__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9004:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9018:4:103","type":""}],"src":"8853:402:103"},{"body":{"nodeType":"YulBlock","src":"9434:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9451:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9462:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9444:6:103"},"nodeType":"YulFunctionCall","src":"9444:21:103"},"nodeType":"YulExpressionStatement","src":"9444:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9485:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9496:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9481:3:103"},"nodeType":"YulFunctionCall","src":"9481:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9501:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9474:6:103"},"nodeType":"YulFunctionCall","src":"9474:30:103"},"nodeType":"YulExpressionStatement","src":"9474:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9524:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9535:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9520:3:103"},"nodeType":"YulFunctionCall","src":"9520:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9540:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9513:6:103"},"nodeType":"YulFunctionCall","src":"9513:62:103"},"nodeType":"YulExpressionStatement","src":"9513:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9595:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9606:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9591:3:103"},"nodeType":"YulFunctionCall","src":"9591:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9611:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9584:6:103"},"nodeType":"YulFunctionCall","src":"9584:36:103"},"nodeType":"YulExpressionStatement","src":"9584:36:103"},{"nodeType":"YulAssignment","src":"9629:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9641:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9652:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9637:3:103"},"nodeType":"YulFunctionCall","src":"9637:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9629:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9411:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9425:4:103","type":""}],"src":"9260:402:103"},{"body":{"nodeType":"YulBlock","src":"9841:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9858:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9869:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9851:6:103"},"nodeType":"YulFunctionCall","src":"9851:21:103"},"nodeType":"YulExpressionStatement","src":"9851:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9903:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9888:3:103"},"nodeType":"YulFunctionCall","src":"9888:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9908:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9881:6:103"},"nodeType":"YulFunctionCall","src":"9881:30:103"},"nodeType":"YulExpressionStatement","src":"9881:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9931:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9942:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9927:3:103"},"nodeType":"YulFunctionCall","src":"9927:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9947:31:103","type":"","value":"Cannot set authorized senders"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9920:6:103"},"nodeType":"YulFunctionCall","src":"9920:59:103"},"nodeType":"YulExpressionStatement","src":"9920:59:103"},{"nodeType":"YulAssignment","src":"9988:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10000:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10011:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9996:3:103"},"nodeType":"YulFunctionCall","src":"9996:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9988:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_337562cc5e507e68e993a2940bfc6a29858c6f26ee0c10db449328584e3eb567__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9818:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9832:4:103","type":""}],"src":"9667:353:103"},{"body":{"nodeType":"YulBlock","src":"10199:174:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10227:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10209:6:103"},"nodeType":"YulFunctionCall","src":"10209:21:103"},"nodeType":"YulExpressionStatement","src":"10209:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10261:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10246:3:103"},"nodeType":"YulFunctionCall","src":"10246:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10266:2:103","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10239:6:103"},"nodeType":"YulFunctionCall","src":"10239:30:103"},"nodeType":"YulExpressionStatement","src":"10239:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10289:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10300:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10285:3:103"},"nodeType":"YulFunctionCall","src":"10285:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10305:26:103","type":"","value":"Data versions must match"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10278:6:103"},"nodeType":"YulFunctionCall","src":"10278:54:103"},"nodeType":"YulExpressionStatement","src":"10278:54:103"},{"nodeType":"YulAssignment","src":"10341:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10353:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10364:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10349:3:103"},"nodeType":"YulFunctionCall","src":"10349:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10341:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_53dd8c2d44f916f031150a73e1eba6048d8d6f765952814af0ca50ecb04aba23__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10176:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10190:4:103","type":""}],"src":"10025:348:103"},{"body":{"nodeType":"YulBlock","src":"10552:174:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10580:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10562:6:103"},"nodeType":"YulFunctionCall","src":"10562:21:103"},"nodeType":"YulExpressionStatement","src":"10562:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10614:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10599:3:103"},"nodeType":"YulFunctionCall","src":"10599:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10619:2:103","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10592:6:103"},"nodeType":"YulFunctionCall","src":"10592:30:103"},"nodeType":"YulExpressionStatement","src":"10592:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10653:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10638:3:103"},"nodeType":"YulFunctionCall","src":"10638:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10658:26:103","type":"","value":"Unable to create request"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10631:6:103"},"nodeType":"YulFunctionCall","src":"10631:54:103"},"nodeType":"YulExpressionStatement","src":"10631:54:103"},{"nodeType":"YulAssignment","src":"10694:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10706:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10717:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10702:3:103"},"nodeType":"YulFunctionCall","src":"10702:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10694:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7c77c8323757c7c6dd2b21d1591cb61b26bb567563048742ae07b24e5b659c50__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10529:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10543:4:103","type":""}],"src":"10378:348:103"},{"body":{"nodeType":"YulBlock","src":"10905:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10922:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10933:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10915:6:103"},"nodeType":"YulFunctionCall","src":"10915:21:103"},"nodeType":"YulExpressionStatement","src":"10915:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10956:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10967:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10952:3:103"},"nodeType":"YulFunctionCall","src":"10952:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10972:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10945:6:103"},"nodeType":"YulFunctionCall","src":"10945:30:103"},"nodeType":"YulExpressionStatement","src":"10945:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10995:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11006:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10991:3:103"},"nodeType":"YulFunctionCall","src":"10991:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11011:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10984:6:103"},"nodeType":"YulFunctionCall","src":"10984:62:103"},"nodeType":"YulExpressionStatement","src":"10984:62:103"},{"nodeType":"YulAssignment","src":"11055:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11067:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11078:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11063:3:103"},"nodeType":"YulFunctionCall","src":"11063:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11055:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10882:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10896:4:103","type":""}],"src":"10731:356:103"},{"body":{"nodeType":"YulBlock","src":"11266:170:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11294:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11276:6:103"},"nodeType":"YulFunctionCall","src":"11276:21:103"},"nodeType":"YulExpressionStatement","src":"11276:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11317:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11328:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11313:3:103"},"nodeType":"YulFunctionCall","src":"11313:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11333:2:103","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11306:6:103"},"nodeType":"YulFunctionCall","src":"11306:30:103"},"nodeType":"YulExpressionStatement","src":"11306:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11356:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11367:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11352:3:103"},"nodeType":"YulFunctionCall","src":"11352:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11372:22:103","type":"","value":"Must use a unique ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11345:6:103"},"nodeType":"YulFunctionCall","src":"11345:50:103"},"nodeType":"YulExpressionStatement","src":"11345:50:103"},{"nodeType":"YulAssignment","src":"11404:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11427:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11412:3:103"},"nodeType":"YulFunctionCall","src":"11412:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11404:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_da89408418f1aa3860811d2e64085e2b94d33f2815f2070010f4d0def719e723__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11243:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11257:4:103","type":""}],"src":"11092:344:103"},{"body":{"nodeType":"YulBlock","src":"11615:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11632:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11643:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11625:6:103"},"nodeType":"YulFunctionCall","src":"11625:21:103"},"nodeType":"YulExpressionStatement","src":"11625:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11666:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11677:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11662:3:103"},"nodeType":"YulFunctionCall","src":"11662:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11682:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11655:6:103"},"nodeType":"YulFunctionCall","src":"11655:30:103"},"nodeType":"YulExpressionStatement","src":"11655:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11705:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11716:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11701:3:103"},"nodeType":"YulFunctionCall","src":"11701:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11721:32:103","type":"","value":"Params do not match request ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11694:6:103"},"nodeType":"YulFunctionCall","src":"11694:60:103"},"nodeType":"YulExpressionStatement","src":"11694:60:103"},{"nodeType":"YulAssignment","src":"11763:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11775:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11786:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11771:3:103"},"nodeType":"YulFunctionCall","src":"11771:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11763:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e12b50eea9311b443c52ff0775ecb76e354715072acf3c2225436432557396ee__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11592:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11606:4:103","type":""}],"src":"11441:354:103"},{"body":{"nodeType":"YulBlock","src":"11974:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11991:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12002:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11984:6:103"},"nodeType":"YulFunctionCall","src":"11984:21:103"},"nodeType":"YulExpressionStatement","src":"11984:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12025:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12036:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12021:3:103"},"nodeType":"YulFunctionCall","src":"12021:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12041:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12014:6:103"},"nodeType":"YulFunctionCall","src":"12014:30:103"},"nodeType":"YulExpressionStatement","src":"12014:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12075:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12060:3:103"},"nodeType":"YulFunctionCall","src":"12060:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12080:34:103","type":"","value":"Must provide consumer enough gas"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12053:6:103"},"nodeType":"YulFunctionCall","src":"12053:62:103"},"nodeType":"YulExpressionStatement","src":"12053:62:103"},{"nodeType":"YulAssignment","src":"12124:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12136:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12147:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12132:3:103"},"nodeType":"YulFunctionCall","src":"12132:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12124:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e41e236f8c707f430128aec8d4f13fd0193750a557f2c094e8feda34850363f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11951:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11965:4:103","type":""}],"src":"11800:356:103"},{"body":{"nodeType":"YulBlock","src":"12335:172:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12363:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12345:6:103"},"nodeType":"YulFunctionCall","src":"12345:21:103"},"nodeType":"YulExpressionStatement","src":"12345:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12397:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12382:3:103"},"nodeType":"YulFunctionCall","src":"12382:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12402:2:103","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12375:6:103"},"nodeType":"YulFunctionCall","src":"12375:30:103"},"nodeType":"YulExpressionStatement","src":"12375:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12425:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12436:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12421:3:103"},"nodeType":"YulFunctionCall","src":"12421:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12441:24:103","type":"","value":"number too big to cast"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12414:6:103"},"nodeType":"YulFunctionCall","src":"12414:52:103"},"nodeType":"YulExpressionStatement","src":"12414:52:103"},{"nodeType":"YulAssignment","src":"12475:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12487:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12498:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12483:3:103"},"nodeType":"YulFunctionCall","src":"12483:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12475:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ef169b566e22a9ea10ec54af0f17be495060a51a062291400ead41912ab09c45__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12312:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12326:4:103","type":""}],"src":"12161:346:103"},{"body":{"nodeType":"YulBlock","src":"12613:76:103","statements":[{"nodeType":"YulAssignment","src":"12623:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12635:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12646:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12631:3:103"},"nodeType":"YulFunctionCall","src":"12631:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12623:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12665:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12676:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12658:6:103"},"nodeType":"YulFunctionCall","src":"12658:25:103"},"nodeType":"YulExpressionStatement","src":"12658:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12582:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12593:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12604:4:103","type":""}],"src":"12512:177:103"},{"body":{"nodeType":"YulBlock","src":"12742:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"12769:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12771:16:103"},"nodeType":"YulFunctionCall","src":"12771:18:103"},"nodeType":"YulExpressionStatement","src":"12771:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12758:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12765:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12761:3:103"},"nodeType":"YulFunctionCall","src":"12761:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12755:2:103"},"nodeType":"YulFunctionCall","src":"12755:13:103"},"nodeType":"YulIf","src":"12752:2:103"},{"nodeType":"YulAssignment","src":"12800:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12811:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"12814:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12807:3:103"},"nodeType":"YulFunctionCall","src":"12807:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"12800:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12725:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"12728:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12734:3:103","type":""}],"src":"12694:128:103"},{"body":{"nodeType":"YulBlock","src":"12874:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"12905:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12907:16:103"},"nodeType":"YulFunctionCall","src":"12907:18:103"},"nodeType":"YulExpressionStatement","src":"12907:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12890:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12901:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12897:3:103"},"nodeType":"YulFunctionCall","src":"12897:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12887:2:103"},"nodeType":"YulFunctionCall","src":"12887:17:103"},"nodeType":"YulIf","src":"12884:2:103"},{"nodeType":"YulAssignment","src":"12936:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12947:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"12954:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12943:3:103"},"nodeType":"YulFunctionCall","src":"12943:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12936:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12856:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"12866:3:103","type":""}],"src":"12827:135:103"},{"body":{"nodeType":"YulBlock","src":"12999:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13016:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13023:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13028:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13019:3:103"},"nodeType":"YulFunctionCall","src":"13019:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13009:6:103"},"nodeType":"YulFunctionCall","src":"13009:31:103"},"nodeType":"YulExpressionStatement","src":"13009:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13056:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13059:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13049:6:103"},"nodeType":"YulFunctionCall","src":"13049:15:103"},"nodeType":"YulExpressionStatement","src":"13049:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13080:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13083:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13073:6:103"},"nodeType":"YulFunctionCall","src":"13073:15:103"},"nodeType":"YulExpressionStatement","src":"13073:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"12967:127:103"},{"body":{"nodeType":"YulBlock","src":"13131:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13148:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13155:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13160:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13151:3:103"},"nodeType":"YulFunctionCall","src":"13151:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13141:6:103"},"nodeType":"YulFunctionCall","src":"13141:31:103"},"nodeType":"YulExpressionStatement","src":"13141:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13188:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13191:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13181:6:103"},"nodeType":"YulFunctionCall","src":"13181:15:103"},"nodeType":"YulExpressionStatement","src":"13181:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13212:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13215:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13205:6:103"},"nodeType":"YulFunctionCall","src":"13205:15:103"},"nodeType":"YulExpressionStatement","src":"13205:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"13099:127:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_bytes4(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_uint256t_bytes32t_addresst_bytes4t_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8\n {\n if slt(sub(dataEnd, headStart), 256) { revert(value4, value4) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := abi_decode_address(add(headStart, 96))\n value4 := abi_decode_bytes4(add(headStart, 128))\n value5 := calldataload(add(headStart, 160))\n value6 := calldataload(add(headStart, 192))\n let offset := calldataload(add(headStart, 224))\n if gt(offset, 0xffffffffffffffff) { revert(value7, value7) }\n let value7_1, value8_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value7 := value7_1\n value8 := value8_1\n }\n function abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value2, value2) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value2, value2) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value2, value2) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), value2)\n value2 := memPtr\n }\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value0, value0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value0, value0) }\n if gt(add(add(_2, mul(length, 32)), 32), dataEnd) { revert(value0, value0) }\n value0 := add(_2, 32)\n value1 := length\n }\n function abi_decode_tuple_t_bytes32t_uint256t_addresst_bytes4t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 192) { revert(value4, value4) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := abi_decode_address(add(headStart, 64))\n value3 := abi_decode_bytes4(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n let offset := calldataload(add(headStart, 160))\n if gt(offset, 0xffffffffffffffff) { revert(value5, value5) }\n let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value5 := value5_1\n value6 := value6_1\n }\n function abi_encode_tuple_packed_t_address_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), value1)\n end := add(pos, 52)\n }\n function abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, and(value0, shl(224, 0xffffffff)))\n calldatacopy(add(pos, 4), value1, value2)\n let _1 := add(add(pos, value2), 4)\n mstore(_1, end)\n end := _1\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n let i := end\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n mstore(add(pos, i), mload(add(add(value0, i), 0x20)))\n }\n if gt(i, length) { mstore(add(pos, length), end) }\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_uint256_t_address_t_bytes4_t_uint256__to_t_uint256_t_address_t_bytes4_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 52), and(value2, shl(224, 0xffffffff)))\n mstore(add(pos, 56), value3)\n end := add(pos, 88)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_bytes32_t_uint256_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_address_t_bytes32_t_uint256_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 256\n let _2 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _2))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, shl(224, 0xffffffff)))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), _1)\n mstore(add(headStart, _1), value8)\n let _3 := 288\n calldatacopy(add(headStart, _3), value7, value8)\n mstore(add(add(headStart, value8), _3), tail)\n tail := add(add(headStart, and(add(value8, 31), not(31))), _3)\n }\n function abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_address__to_t_array$_t_address_$dyn_memory_ptr_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 64)\n mstore(headStart, 64)\n let pos := tail_1\n mstore(tail_1, value1)\n pos := add(headStart, 96)\n let srcPtr := value0\n let i := tail\n for { } lt(i, value1) { i := add(i, 1) }\n {\n mstore(pos, and(abi_decode_address(srcPtr), sub(shl(160, 1), 1)))\n let _1 := 0x20\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n mstore(add(headStart, 0x20), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_stringliteral_14acbd13c311ce77adbf2abb2c29118807e2efa37eb8080b0a33366f8bd4c4af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Must have at least 1 authorized \")\n mstore(add(headStart, 96), \"sender\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_337562cc5e507e68e993a2940bfc6a29858c6f26ee0c10db449328584e3eb567__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Cannot set authorized senders\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_53dd8c2d44f916f031150a73e1eba6048d8d6f765952814af0ca50ecb04aba23__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Data versions must match\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7c77c8323757c7c6dd2b21d1591cb61b26bb567563048742ae07b24e5b659c50__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Unable to create request\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_da89408418f1aa3860811d2e64085e2b94d33f2815f2070010f4d0def719e723__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Must use a unique ID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_e12b50eea9311b443c52ff0775ecb76e354715072acf3c2225436432557396ee__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"Params do not match request ID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_e41e236f8c707f430128aec8d4f13fd0193750a557f2c094e8feda34850363f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Must provide consumer enough gas\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ef169b566e22a9ea10ec54af0f17be495060a51a062291400ead41912ab09c45__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"number too big to cast\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146101055780638da5cb5b1461010d578063a4c0ed3614610128578063ee56997b1461013b578063f2fde38b1461014e57610093565b80632408afaa1461009857806325cb5bc0146100b657806340429946146100cd5780636ae0bc76146100e2575b600080fd5b6100a0610161565b6040516100ad9190610ee2565b60405180910390f35b6100bf61012c81565b6040519081526020016100ad565b6100e06100db366004610b58565b6101c3565b005b6100f56100f0366004610d2a565b61022d565b60405190151581526020016100ad565b6100e061034e565b6000546040516001600160a01b0390911681526020016100ad565b6100e0610136366004610bf5565b610362565b6100e0610149366004610cbb565b61041f565b6100e061015c366004610b37565b610618565b606060028054806020026020016040519081016040528092919081815260200182805480156101b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161019b575b5050505050905090565b6000806101d48b8b8a8a8a8a610691565b91509150887fd8d7ecc4800d25fa53ce0372f13a416d98907a7ef3d8d3bdd79cf4fe75529c658c848d8f8c878c8c8c60405161021899989796959493929190610e07565b60405180910390a25050505050505050505050565b600061023e888888888860026107c7565b60405188907f9e9bc7616d42c2835d05ae617e508454e63b30b934be8aa932ebc125e0e58a6490600090a262061a805a10156102c15760405162461bcd60e51b815260206004820181905260248201527f4d7573742070726f7669646520636f6e73756d657220656e6f7567682067617360448201526064015b60405180910390fd5b6000866001600160a01b03168685856040516020016102e293929190610daa565b60408051601f19818403018152908290526102fc91610dce565b6000604051808303816000865af19150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b50909a9950505050505050505050565b6103566108cd565b6103606000610927565b565b8260248201528160448201526000306001600160a01b0316826040516103889190610dce565b600060405180830381855af49150503d80600081146103c3576040519150601f19603f3d011682016040523d82523d6000602084013e6103c8565b606091505b50509050806104195760405162461bcd60e51b815260206004820152601860248201527f556e61626c6520746f206372656174652072657175657374000000000000000060448201526064016102b8565b50505050565b610427610977565b6104735760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742073657420617574686f72697a65642073656e6465727300000060448201526064016102b8565b806104cf5760405162461bcd60e51b815260206004820152602660248201527f4d7573742068617665206174206c65617374203120617574686f72697a65642060448201526539b2b73232b960d11b60648201526084016102b8565b60025460005b8181101561054a576000600160006002848154811061050457634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061054281610f47565b9150506104d5565b5060005b828110156105ca57600180600086868581811061057b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906105909190610b37565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806105c281610f47565b91505061054e565b506105d760028484610a49565b507ff263cfb3e4298332e776194610cf9fdc09ccb3ada8b9aa39764d882e11fbf0a083833360405161060b93929190610e81565b60405180910390a1505050565b6106206108cd565b6001600160a01b0381166106855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b8565b61068e81610927565b50565b6040516bffffffffffffffffffffffff19606088901b16602082015260348101839052600090819060540160408051808303601f1901815291815281516020928301206000818152600390935291205490925060081b60ff19161561072f5760405162461bcd60e51b8152602060048201526014602482015273135d5cdd081d5cd94818481d5b9a5c5d5948125160621b60448201526064016102b8565b61073b61012c42610f2f565b9050600061074b8888888561099b565b905060405180604001604052808260ff1916815260200161076b866109f5565b60ff9081169091526000858152600360209081526040909120835181549490920151909216600160f81b0260089190911c6001600160f81b0319909316929092176001600160f81b031691909117905550965096945050505050565b60006107d58686868661099b565b60008881526003602052604090205490915060081b60ff19908116908216146108405760405162461bcd60e51b815260206004820152601e60248201527f506172616d7320646f206e6f74206d617463682072657175657374204944000060448201526064016102b8565b610849826109f5565b60008881526003602052604090205460ff918216600160f81b90910490911611156108b65760405162461bcd60e51b815260206004820152601860248201527f446174612076657273696f6e73206d757374206d61746368000000000000000060448201526064016102b8565b505050600093845250506003602052506040812055565b6000546001600160a01b031633146103605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60003361098c6000546001600160a01b031690565b6001600160a01b031614905090565b6040805160208082019690965260609490941b6bffffffffffffffffffffffff1916848201526001600160e01b03199290921660548401526058808401919091528151808403909101815260789092019052805191012090565b60006101008210610a415760405162461bcd60e51b81526020600482015260166024820152751b9d5b58995c881d1bdbc8189a59c81d1bc818d85cdd60521b60448201526064016102b8565b50805b919050565b828054828255906000526020600020908101928215610a9c579160200282015b82811115610a9c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190610a69565b50610aa8929150610aac565b5090565b5b80821115610aa85760008155600101610aad565b80356001600160a01b0381168114610a4457600080fd5b80356001600160e01b031981168114610a4457600080fd5b60008083601f840112610b01578182fd5b50813567ffffffffffffffff811115610b18578182fd5b602083019150836020828501011115610b3057600080fd5b9250929050565b600060208284031215610b48578081fd5b610b5182610ac1565b9392505050565b60008060008060008060008060006101008a8c031215610b76578485fd5b610b7f8a610ac1565b985060208a0135975060408a01359650610b9b60608b01610ac1565b9550610ba960808b01610ad8565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff811115610bd2578283fd5b610bde8c828d01610af0565b915080935050809150509295985092959850929598565b600080600060608486031215610c09578283fd5b610c1284610ac1565b925060208401359150604084013567ffffffffffffffff80821115610c35578283fd5b818601915086601f830112610c48578283fd5b813581811115610c5a57610c5a610f78565b604051601f8201601f19908116603f01168101908382118183101715610c8257610c82610f78565b81604052828152896020848701011115610c9a578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60008060208385031215610ccd578182fd5b823567ffffffffffffffff80821115610ce4578384fd5b818501915085601f830112610cf7578384fd5b813581811115610d05578485fd5b8660208083028501011115610d18578485fd5b60209290920196919550909350505050565b600080600080600080600060c0888a031215610d44578283fd5b8735965060208801359550610d5b60408901610ac1565b9450610d6960608901610ad8565b93506080880135925060a088013567ffffffffffffffff811115610d8b578283fd5b610d978a828b01610af0565b989b979a50959850939692959293505050565b6001600160e01b031984168152600082846004840137910160040190815292915050565b60008251815b81811015610dee5760208186018101518583015201610dd4565b81811115610dfc5782828501525b509190910192915050565b6001600160a01b038a81168252602082018a905260408201899052871660608201526001600160e01b03198616608082015260a0810185905260c0810184905261010060e0820181905281018290526000610120838582850137828401810191909152601f909201601f1916010198975050505050505050565b6040808252810183905260008460608301825b86811015610ec2576001600160a01b03610ead84610ac1565b16825260209283019290910190600101610e94565b506001600160a01b03949094166020939093019290925250909392505050565b6020808252825182820181905260009190848201906040850190845b81811015610f235783516001600160a01b031683529284019291840191600101610efe565b50909695505050505050565b60008219821115610f4257610f42610f62565b500190565b6000600019821415610f5b57610f5b610f62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220262e5ad4ad92d2986c722791cedda45946b31c84f2cd71f00eb573c7c470f5a364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xA4C0ED36 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0xEE56997B EQ PUSH2 0x13B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x14E JUMPI PUSH2 0x93 JUMP JUMPDEST DUP1 PUSH4 0x2408AFAA EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x25CB5BC0 EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x40429946 EQ PUSH2 0xCD JUMPI DUP1 PUSH4 0x6AE0BC76 EQ PUSH2 0xE2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x161 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBF PUSH2 0x12C DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0xDB CALLDATASIZE PUSH1 0x4 PUSH2 0xB58 JUMP JUMPDEST PUSH2 0x1C3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF5 PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0xD2A JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x34E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x136 CALLDATASIZE PUSH1 0x4 PUSH2 0xBF5 JUMP JUMPDEST PUSH2 0x362 JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x149 CALLDATASIZE PUSH1 0x4 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x41F JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x15C CALLDATASIZE PUSH1 0x4 PUSH2 0xB37 JUMP JUMPDEST PUSH2 0x618 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1D4 DUP12 DUP12 DUP11 DUP11 DUP11 DUP11 PUSH2 0x691 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH32 0xD8D7ECC4800D25FA53CE0372F13A416D98907A7EF3D8D3BDD79CF4FE75529C65 DUP13 DUP5 DUP14 DUP16 DUP13 DUP8 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD PUSH2 0x218 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x2 PUSH2 0x7C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP9 SWAP1 PUSH32 0x9E9BC7616D42C2835D05AE617E508454E63B30B934BE8AA932EBC125E0E58A64 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH3 0x61A80 GAS LT ISZERO PUSH2 0x2C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D7573742070726F7669646520636F6E73756D657220656E6F75676820676173 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2E2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x2FC SWAP2 PUSH2 0xDCE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x339 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x33E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x356 PUSH2 0x8CD JUMP JUMPDEST PUSH2 0x360 PUSH1 0x0 PUSH2 0x927 JUMP JUMPDEST JUMP JUMPDEST DUP3 PUSH1 0x24 DUP3 ADD MSTORE DUP2 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x388 SWAP2 SWAP1 PUSH2 0xDCE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3C8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x419 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E61626C6520746F2063726561746520726571756573740000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x427 PUSH2 0x977 JUMP JUMPDEST PUSH2 0x473 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F742073657420617574686F72697A65642073656E64657273000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST DUP1 PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D7573742068617665206174206C65617374203120617574686F72697A656420 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x39B2B73232B9 PUSH1 0xD1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 PUSH1 0x2 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x504 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP1 PUSH2 0x542 DUP2 PUSH2 0xF47 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x4D5 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5CA JUMPI PUSH1 0x1 DUP1 PUSH1 0x0 DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x57B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x590 SWAP2 SWAP1 PUSH2 0xB37 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP1 PUSH2 0x5C2 DUP2 PUSH2 0xF47 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x54E JUMP JUMPDEST POP PUSH2 0x5D7 PUSH1 0x2 DUP5 DUP5 PUSH2 0xA49 JUMP JUMPDEST POP PUSH32 0xF263CFB3E4298332E776194610CF9FDC09CCB3ADA8B9AA39764D882E11FBF0A0 DUP4 DUP4 CALLER PUSH1 0x40 MLOAD PUSH2 0x60B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE81 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x620 PUSH2 0x8CD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x68E DUP2 PUSH2 0x927 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP9 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP3 POP PUSH1 0x8 SHL PUSH1 0xFF NOT AND ISZERO PUSH2 0x72F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x135D5CDD081D5CD94818481D5B9A5C5D59481251 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x73B PUSH2 0x12C TIMESTAMP PUSH2 0xF2F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x74B DUP9 DUP9 DUP9 DUP6 PUSH2 0x99B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0xFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x76B DUP7 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP4 MLOAD DUP2 SLOAD SWAP5 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xF8 SHL MUL PUSH1 0x8 SWAP2 SWAP1 SWAP2 SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D5 DUP7 DUP7 DUP7 DUP7 PUSH2 0x99B JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x8 SHL PUSH1 0xFF NOT SWAP1 DUP2 AND SWAP1 DUP3 AND EQ PUSH2 0x840 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506172616D7320646F206E6F74206D6174636820726571756573742049440000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x849 DUP3 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0xF8 SHL SWAP1 SWAP2 DIV SWAP1 SWAP2 AND GT ISZERO PUSH2 0x8B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446174612076657273696F6E73206D757374206D617463680000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP POP POP PUSH1 0x0 SWAP4 DUP5 MSTORE POP POP PUSH1 0x3 PUSH1 0x20 MSTORE POP PUSH1 0x40 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x360 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x98C PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x60 SWAP5 SWAP1 SWAP5 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP5 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP3 SWAP1 SWAP3 AND PUSH1 0x54 DUP5 ADD MSTORE PUSH1 0x58 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x78 SWAP1 SWAP3 ADD SWAP1 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 LT PUSH2 0xA41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1B9D5B58995C881D1BDBC8189A59C81D1BC818D85CDD PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0xA9C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xA9C JUMPI DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 CALLDATALOAD AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0xA69 JUMP JUMPDEST POP PUSH2 0xAA8 SWAP3 SWAP2 POP PUSH2 0xAAC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xAA8 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xAAD JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xA44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB01 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB18 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xB30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB48 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xB51 DUP3 PUSH2 0xAC1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 DUP11 DUP13 SUB SLT ISZERO PUSH2 0xB76 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0xB7F DUP11 PUSH2 0xAC1 JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP7 POP PUSH2 0xB9B PUSH1 0x60 DUP12 ADD PUSH2 0xAC1 JUMP JUMPDEST SWAP6 POP PUSH2 0xBA9 PUSH1 0x80 DUP12 ADD PUSH2 0xAD8 JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP3 POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBD2 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xBDE DUP13 DUP3 DUP14 ADD PUSH2 0xAF0 JUMP JUMPDEST SWAP2 POP DUP1 SWAP4 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC09 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xC12 DUP5 PUSH2 0xAC1 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xC35 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC48 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xC5A JUMPI PUSH2 0xC5A PUSH2 0xF78 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xC82 JUMPI PUSH2 0xC82 PUSH2 0xF78 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xC9A JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY DUP6 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCCD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCE4 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCF7 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xD05 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP1 DUP4 MUL DUP6 ADD ADD GT ISZERO PUSH2 0xD18 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xD44 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH2 0xD5B PUSH1 0x40 DUP10 ADD PUSH2 0xAC1 JUMP JUMPDEST SWAP5 POP PUSH2 0xD69 PUSH1 0x60 DUP10 ADD PUSH2 0xAD8 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD8B JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xD97 DUP11 DUP3 DUP12 ADD PUSH2 0xAF0 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP5 AND DUP2 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x4 DUP5 ADD CALLDATACOPY SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xDEE JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0xDD4 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xDFC JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP11 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP10 SWAP1 MSTORE DUP8 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP7 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 PUSH2 0x120 DUP4 DUP6 DUP3 DUP6 ADD CALLDATACOPY DUP3 DUP5 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 DUP5 PUSH1 0x60 DUP4 ADD DUP3 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0xEC2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0xEAD DUP5 PUSH2 0xAC1 JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xE94 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF23 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xEFE JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xF42 JUMPI PUSH2 0xF42 PUSH2 0xF62 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0xF5B JUMPI PUSH2 0xF5B PUSH2 0xF62 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x26 0x2E GAS 0xD4 0xAD SWAP3 0xD2 SWAP9 PUSH13 0x722791CEDDA45946B31C84F2CD PUSH18 0xF00EB573C7C470F5A364736F6C6343000802 STOP CALLER ","sourceMap":"110:10794:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2298:148;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;246:49;;286:9;246:49;;;;;12658:25:103;;;12646:2;12631:18;246:49:69;12613:76:103;4261:691:69;;;;;;:::i;:::-;;:::i;:::-;;5845:1158;;;;;;:::i;:::-;;:::i;:::-;;;8826:14:103;;8819:22;8801:41;;8789:2;8774:18;5845:1158:69;8756:92:103;1831:101:41;;;:::i;1201:85::-;1247:7;1273:6;1201:85;;-1:-1:-1;;;;;1273:6:41;;;6162:51:103;;6150:2;6135:18;1201:85:41;6117:102:103;2840:712:69;;;;;;:::i;:::-;;:::i;1548:743::-;;;;;;:::i;:::-;;:::i;2081:198:41:-;;;;;;:::i;:::-;;:::i;2298:148:69:-;2377:17;2417:22;2410:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2410:29:69;;;;;;;;;;;;;;;;;;;;;;;2298:148;:::o;4261:691::-;4595:17;4614:18;4636:186;4680:6;4700:7;4721:15;4750:18;4782:5;4801:11;4636:30;:186::i;:::-;4594:228;;;;4851:6;4837:108;4859:6;4867:9;4878:7;4887:6;4895:18;4915:10;4927:11;4940:4;;4837:108;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4261:691;;;;;;;;;;;:::o;5845:1158::-;6297:4;6317:109;6355:9;6366:7;6375:15;6392:18;6412:10;6424:1;6317:37;:109::i;:::-;6442:25;;6457:9;;6442:25;;;;;412:6;6485:9;:39;;6477:84;;;;-1:-1:-1;;;6477:84:69;;12002:2:103;6477:84:69;;;11984:21:103;;;12021:18;;;12014:30;12080:34;12060:18;;;12053:62;12132:18;;6477:84:69;;;;;;;;;6844:12;6862:15;-1:-1:-1;;;;;6862:20:69;6900:18;6920:4;;6883:42;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6883:42:69;;;;;;;;;;6862:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6843:83:69;;5845:1158;-1:-1:-1;;;;;;;;;;5845:1158:69:o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2840:712:69:-;3157:6;3152:2;3146:4;3142:13;3135:29;3297:6;3292:2;3286:4;3282:13;3275:29;3418:12;3444:4;-1:-1:-1;;;;;3436:26:69;3463:4;3436:32;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3417:51;;;3509:7;3501:44;;;;-1:-1:-1;;;3501:44:69;;10580:2:103;3501:44:69;;;10562:21:103;10619:2;10599:18;;;10592:30;10658:26;10638:18;;;10631:54;10702:18;;3501:44:69;10552:174:103;3501:44:69;2840:712;;;;:::o;1548:743::-;1242:26;:24;:26::i;:::-;1234:68;;;;-1:-1:-1;;;1234:68:69;;9869:2:103;1234:68:69;;;9851:21:103;9908:2;9888:18;;;9881:30;9947:31;9927:18;;;9920:59;9996:18;;1234:68:69;9841:179:103;1234:68:69;1686:18;1678:69:::1;;;::::0;-1:-1:-1;;;1678:69:69;;9055:2:103;1678:69:69::1;::::0;::::1;9037:21:103::0;9094:2;9074:18;;;9067:30;9133:34;9113:18;;;9106:62;-1:-1:-1;;;9184:18:103;;;9177:36;9230:19;;1678:69:69::1;9027:228:103::0;1678:69:69::1;1843:22;:29:::0;1809:31:::1;1882:133;1906:23;1902:1;:27;1882:133;;;1999:5;1950:19;:46;1970:22;1993:1;1970:25;;;;;;-1:-1:-1::0;;;1970:25:69::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;::::0;-1:-1:-1;;;;;1970:25:69::1;1950:46:::0;;;::::1;::::0;;;;;;;;:54;;-1:-1:-1;;1950:54:69::1;::::0;::::1;;::::0;;;::::1;::::0;;1931:3;::::1;::::0;::::1;:::i;:::-;;;;1882:133;;;;2056:9;2051:108;2071:18:::0;;::::1;2051:108;;;2144:4;2110:19:::0;:31:::1;2130:7;;2138:1;2130:10;;;;;-1:-1:-1::0;;;2130:10:69::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2110:31:69::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;2110:31:69;:38;;-1:-1:-1;;2110:38:69::1;::::0;::::1;;::::0;;;::::1;::::0;;2091:3;::::1;::::0;::::1;:::i;:::-;;;;2051:108;;;-1:-1:-1::0;2192:32:69::1;:22;2217:7:::0;;2192:32:::1;:::i;:::-;;2239:45;2264:7;;2273:10;2239:45;;;;;;;;:::i;:::-;;;;;;;;1312:1;1548:743:::0;;:::o;2081:198:41:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;9462:2:103;2161:73:41::1;::::0;::::1;9444:21:103::0;9501:2;9481:18;;;9474:30;9540:34;9520:18;;;9513:62;-1:-1:-1;;;9591:18:103;;;9584:36;9637:19;;2161:73:41::1;9434:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;7404:959:69:-;7777:31;;-1:-1:-1;;4630:2:103;4626:15;;;4622:53;7777:31:69;;;4610:66:103;4692:12;;;4685:28;;;7701:17:69;;;;4729:12:103;;7777:31:69;;;;;;-1:-1:-1;;7777:31:69;;;;;;7767:42;;7777:31;7767:42;;;;7827:24;;;;:13;:24;;;;;:35;7767:42;;-1:-1:-1;7827:35:69;;-1:-1:-1;;7827:40:69;;7819:73;;;;-1:-1:-1;;;7819:73:69;;11294:2:103;7819:73:69;;;11276:21:103;11333:2;11313:18;;;11306:30;-1:-1:-1;;;11352:18:103;;;11345:50;11412:18;;7819:73:69;11266:170:103;7819:73:69;8029:31;286:9;8029:15;:31;:::i;:::-;8016:44;;8070:18;8091:74;8108:7;8117:15;8134:18;8154:10;8091:16;:74::i;:::-;8070:95;;8202:53;;;;;;;;8213:10;8202:53;;;;;;;8225:29;8242:11;8225:16;:29::i;:::-;8202:53;;;;;;;8175:24;;;;:13;:24;;;;;;;;:80;;;;;;;;;;;;-1:-1:-1;;;8175:80:69;;;;;;-1:-1:-1;;;;;;8175:80:69;;;;;;;-1:-1:-1;;;;;8175:80:69;;;;;;;-1:-1:-1;7404:959:69;;;;;;;;;:::o;8888:683::-;9149:18;9170:74;9187:7;9196:15;9213:18;9233:10;9170:16;:74::i;:::-;9262:24;;;;:13;:24;;;;;:35;9149:95;;-1:-1:-1;9262:35:69;;-1:-1:-1;;9262:49:69;;;;;;;9254:92;;;;-1:-1:-1;;;9254:92:69;;11643:2:103;9254:92:69;;;11625:21:103;11682:2;11662:18;;;11655:30;11721:32;11701:18;;;11694:60;11771:18;;9254:92:69;11615:180:103;9254:92:69;9404:29;9421:11;9404:16;:29::i;:::-;9364:24;;;;:13;:24;;;;;:36;:69;;;;-1:-1:-1;;;9364:36:69;;;;;;:69;;9356:106;;;;-1:-1:-1;;;9356:106:69;;10227:2:103;9356:106:69;;;10209:21:103;10266:2;10246:18;;;10239:30;10305:26;10285:18;;;10278:54;10349:18;;9356:106:69;10199:174:103;9356:106:69;-1:-1:-1;;;9540:24:69;;;;-1:-1:-1;;9540:13:69;:24;;-1:-1:-1;9540:24:69;;;9533:31;8888:683::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;10933:2:103;1414:68:41;;;10915:21:103;;;10952:18;;;10945:30;11011:34;10991:18;;;10984:62;11063:18;;1414:68:41;10905:182:103;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;10791:110:69:-;10850:4;10884:10;10873:7;1247::41;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;10873:7:69;-1:-1:-1;;;;;10873:21:69;;10866:28;;10791:110;:::o;10053:303::-;10273:74;;;;;;;5773:19:103;;;;5830:2;5826:15;;;;-1:-1:-1;;5822:53:103;5808:12;;;5801:75;-1:-1:-1;;;;;;5906:33:103;;;;5892:12;;;5885:55;5956:12;;;;5949:28;;;;10273:74:69;;;;;;;;;;5993:12:103;;;;10273:74:69;;10263:85;;;;;;10053:303::o;10476:183::-;10541:5;349:3;10566:6;:29;10558:64;;;;-1:-1:-1;;;10558:64:69;;12363:2:103;10558:64:69;;;12345:21:103;12402:2;12382:18;;;12375:30;-1:-1:-1;;;12421:18:103;;;12414:52;12483:18;;10558:64:69;12335:172:103;10558:64:69;-1:-1:-1;10645:6:69;10476:183;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:173;259:20;;-1:-1:-1;;;;;;308:32:103;;298:43;;288:2;;355:1;352;345:12;370:375;;;485:3;478:4;470:6;466:17;462:27;452:2;;510:8;500;493:26;452:2;-1:-1:-1;540:20:103;;583:18;572:30;;569:2;;;622:8;612;605:26;569:2;666:4;658:6;654:17;642:29;;718:3;711:4;702:6;694;690:19;686:30;683:39;680:2;;;735:1;732;725:12;680:2;442:303;;;;;:::o;750:196::-;;862:2;850:9;841:7;837:23;833:32;830:2;;;883:6;875;868:22;830:2;911:29;930:9;911:29;:::i;:::-;901:39;820:126;-1:-1:-1;;;820:126:103:o;951:926::-;;;;;;;;;;1200:3;1188:9;1179:7;1175:23;1171:33;1168:2;;;1222:6;1214;1207:22;1168:2;1250:29;1269:9;1250:29;:::i;:::-;1240:39;;1326:2;1315:9;1311:18;1298:32;1288:42;;1377:2;1366:9;1362:18;1349:32;1339:42;;1400:38;1434:2;1423:9;1419:18;1400:38;:::i;:::-;1390:48;;1457:38;1490:3;1479:9;1475:19;1457:38;:::i;:::-;1447:48;;1542:3;1531:9;1527:19;1514:33;1504:43;;1594:3;1583:9;1579:19;1566:33;1556:43;;1650:3;1639:9;1635:19;1622:33;1678:18;1670:6;1667:30;1664:2;;;1715:6;1707;1700:22;1664:2;1759:58;1809:7;1800:6;1789:9;1785:22;1759:58;:::i;:::-;1733:84;;1836:8;1826:18;;;1863:8;1853:18;;;1158:719;;;;;;;;;;;:::o;1882:1108::-;;;;2037:2;2025:9;2016:7;2012:23;2008:32;2005:2;;;2058:6;2050;2043:22;2005:2;2086:29;2105:9;2086:29;:::i;:::-;2076:39;;2162:2;2151:9;2147:18;2134:32;2124:42;;2217:2;2206:9;2202:18;2189:32;2240:18;2281:2;2273:6;2270:14;2267:2;;;2302:6;2294;2287:22;2267:2;2345:6;2334:9;2330:22;2320:32;;2390:7;2383:4;2379:2;2375:13;2371:27;2361:2;;2417:6;2409;2402:22;2361:2;2458;2445:16;2480:2;2476;2473:10;2470:2;;;2486:18;;:::i;:::-;2561:2;2555:9;2529:2;2615:13;;-1:-1:-1;;2611:22:103;;;2635:2;2607:31;2603:40;2591:53;;;2659:18;;;2679:22;;;2656:46;2653:2;;;2705:18;;:::i;:::-;2745:10;2741:2;2734:22;2780:2;2772:6;2765:18;2820:7;2815:2;2810;2806;2802:11;2798:20;2795:33;2792:2;;;2846:6;2838;2831:22;2792:2;2907;2902;2898;2894:11;2889:2;2881:6;2877:15;2864:46;2952:6;2947:2;2942;2934:6;2930:15;2926:24;2919:40;2978:6;2968:16;;;;;;;1995:995;;;;;:::o;2995:666::-;;;3142:2;3130:9;3121:7;3117:23;3113:32;3110:2;;;3163:6;3155;3148:22;3110:2;3208:9;3195:23;3237:18;3278:2;3270:6;3267:14;3264:2;;;3299:6;3291;3284:22;3264:2;3342:6;3331:9;3327:22;3317:32;;3387:7;3380:4;3376:2;3372:13;3368:27;3358:2;;3414:6;3406;3399:22;3358:2;3459;3446:16;3485:2;3477:6;3474:14;3471:2;;;3506:6;3498;3491:22;3471:2;3565:7;3560:2;3554;3546:6;3542:15;3538:2;3534:24;3530:33;3527:46;3524:2;;;3591:6;3583;3576:22;3524:2;3627;3619:11;;;;;3649:6;;-1:-1:-1;3100:561:103;;-1:-1:-1;;;;3100:561:103:o;3666:782::-;;;;;;;;3881:3;3869:9;3860:7;3856:23;3852:33;3849:2;;;3903:6;3895;3888:22;3849:2;3944:9;3931:23;3921:33;;4001:2;3990:9;3986:18;3973:32;3963:42;;4024:38;4058:2;4047:9;4043:18;4024:38;:::i;:::-;4014:48;;4081:37;4114:2;4103:9;4099:18;4081:37;:::i;:::-;4071:47;;4165:3;4154:9;4150:19;4137:33;4127:43;;4221:3;4210:9;4206:19;4193:33;4249:18;4241:6;4238:30;4235:2;;;4286:6;4278;4271:22;4235:2;4330:58;4380:7;4371:6;4360:9;4356:22;4330:58;:::i;:::-;3839:609;;;;-1:-1:-1;3839:609:103;;-1:-1:-1;3839:609:103;;;;4304:84;;-1:-1:-1;;;3839:609:103:o;4752:370::-;-1:-1:-1;;;;;;4947:33:103;;4935:46;;4752:370;5024:6;5016;5012:1;5003:11;;4990:41;5054:16;;5072:1;5050:24;5083:15;;;5050:24;4925:197;-1:-1:-1;;4925:197:103:o;5127:430::-;;5294:6;5288:13;5319:3;5331:129;5345:6;5342:1;5339:13;5331:129;;;5443:4;5427:14;;;5423:25;;5417:32;5404:11;;;5397:53;5360:12;5331:129;;;5478:6;5475:1;5472:13;5469:2;;;5513:3;5504:6;5499:3;5495:16;5488:29;5469:2;-1:-1:-1;5535:16:103;;;;;5264:293;-1:-1:-1;;5264:293:103:o;6224:1017::-;-1:-1:-1;;;;;6635:15:103;;;6617:34;;6682:2;6667:18;;6660:34;;;6725:2;6710:18;;6703:34;;;6773:15;;6768:2;6753:18;;6746:43;-1:-1:-1;;;;;;6826:33:103;;6820:3;6805:19;;6798:62;6597:3;6876:19;;6869:35;;;6935:3;6920:19;;6913:35;;;6567:3;6842;6964:19;;6957:31;;;7004:18;;6997:34;;;6224:1017;7050:3;7024:6;7095;7075:18;;;7062:48;7130:22;;;7126:31;;7119:45;;;;7225:2;7204:15;;;-1:-1:-1;;7200:29:103;7185:45;7181:54;;6547:694;-1:-1:-1;;;;;;;;6547:694:103:o;7246:744::-;7474:2;7486:21;;;7459:18;;7542:22;;;7246:744;7621:6;7595:2;7580:18;;7246:744;7658:235;7672:6;7669:1;7666:13;7658:235;;;-1:-1:-1;;;;;7737:26:103;7756:6;7737:26;:::i;:::-;7733:52;7721:65;;7809:4;7868:15;;;;7833:12;;;;7694:1;7687:9;7658:235;;;-1:-1:-1;;;;;;7951:32:103;;;;7944:4;7929:20;;;;7922:62;;;;-1:-1:-1;7910:3:103;;7435:555;-1:-1:-1;;;7435:555:103:o;7995:661::-;8166:2;8218:21;;;8288:13;;8191:18;;;8310:22;;;7995:661;;8166:2;8389:15;;;;8363:2;8348:18;;;7995:661;8435:195;8449:6;8446:1;8443:13;8435:195;;;8514:13;;-1:-1:-1;;;;;8510:39:103;8498:52;;8605:15;;;;8570:12;;;;8546:1;8464:9;8435:195;;;-1:-1:-1;8647:3:103;;8146:510;-1:-1:-1;;;;;;8146:510:103:o;12694:128::-;;12765:1;12761:6;12758:1;12755:13;12752:2;;;12771:18;;:::i;:::-;-1:-1:-1;12807:9:103;;12742:80::o;12827:135::-;;-1:-1:-1;;12887:17:103;;12884:2;;;12907:18;;:::i;:::-;-1:-1:-1;12954:1:103;12943:13;;12874:88::o;12967:127::-;13028:10;13023:3;13019:20;13016:1;13009:31;13059:4;13056:1;13049:15;13083:4;13080:1;13073:15;13099:127;13160:10;13155:3;13151:20;13148:1;13141:31;13191:4;13188:1;13181:15;13215:4;13212:1;13205:15"},"methodIdentifiers":{"fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)":"6ae0bc76","getAuthorizedSenders()":"2408afaa","getExpiryTime()":"25cb5bc0","onTokenTransfer(address,uint256,bytes)":"a4c0ed36","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setAuthorizedSenders(address[])":"ee56997b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"senders\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"changedBy\",\"type\":\"address\"}],\"name\":\"AuthorizedSendersChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"name\":\"CancelOracleRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"specId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callbackAddr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cancelExpiration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"OracleRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"name\":\"OracleResponse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"fulfillOracleRequest2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuthorizedSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExpiryTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onTokenTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"specId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"senders\",\"type\":\"address[]\"}],\"name\":\"setAuthorizedSenders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)\":{\"details\":\"Given params must hash back to the commitment stored from `oracleRequest`. Will call the callback address' callback function without bubbling up error checking in a `require` so that the node can get paid.\",\"params\":{\"callbackAddress\":\"The callback address to call for fulfillment\",\"callbackFunctionId\":\"The callback function ID to use for fulfillment\",\"data\":\"The data to return to the consuming contract\",\"expiration\":\"The expiration that the node should respond by before the requester can cancel\",\"payment\":\"The payment amount that will be released for the oracle (specified in wei)\",\"requestId\":\"The fulfillment request ID that must match the requester's\"},\"returns\":{\"_0\":\"Status if the external call was successful\"}},\"onTokenTransfer(address,uint256,bytes)\":{\"details\":\"The data payload's first 2 words will be overwritten by the `sender` and `amount` values to ensure correctness. Calls oracleRequest.\",\"params\":{\"amount\":\"Amount of LINK sent (specified in wei)\",\"data\":\"Payload of the transaction\",\"sender\":\"Address of the sender\"}},\"oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)\":{\"params\":{\"callbackAddress\":\"The address the oracle data will be sent to\",\"callbackFunctionId\":\"The callback function ID for the response\",\"data\":\"The extra request parameters\",\"dataVersion\":\"The specified data version\",\"nonce\":\"The nonce sent by the requester\",\"payment\":\"The amount of payment given (specified in wei)\",\"specId\":\"The Job Specification ID\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAuthorizedSenders(address[])\":{\"params\":{\"senders\":\"The addresses of the authorized Chainlink node\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)\":{\"notice\":\"Called by the Chainlink node to fulfill requests with multi-word support\"},\"onTokenTransfer(address,uint256,bytes)\":{\"notice\":\"Called when LINK is sent to the contract via `transferAndCall`\"},\"oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)\":{\"notice\":\"Creates the Chainlink request. This is a backwards compatible API with the Oracle.sol contract, but the behavior changes because callbackAddress is assumed to be the same as the request sender.\"},\"setAuthorizedSenders(address[])\":{\"notice\":\"Sets the fulfillment permission for a given node. Use `true` to allow, `false` to disallow.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/mock/ChainlinkOperator.sol\":\"ChainlinkOperator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/examples/mock/ChainlinkOperator.sol\":{\"keccak256\":\"0x0a5d6057a172429ad8fe92c2dbeee36ee00cabf3276715599bedf727438efee4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a25fa642ccb40f61ae95cd6524d3c925117874e21e39ec2928a76ed883d4189e\",\"dweb:/ipfs/QmWHLHGsXWkJzhc39k5SGuf97NczvwBKQZpi3FTJVUDW68\"]}},\"version\":1}"}},"contracts/examples/mock/ChainlinkToken.sol":{"ChainlinkToken":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1548:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"112:273:103","statements":[{"body":{"nodeType":"YulBlock","src":"158:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"167:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"175:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"160:6:103"},"nodeType":"YulFunctionCall","src":"160:22:103"},"nodeType":"YulExpressionStatement","src":"160:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"133:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"142:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"129:3:103"},"nodeType":"YulFunctionCall","src":"129:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"154:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"125:3:103"},"nodeType":"YulFunctionCall","src":"125:32:103"},"nodeType":"YulIf","src":"122:2:103"},{"nodeType":"YulVariableDeclaration","src":"193:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"212:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"206:5:103"},"nodeType":"YulFunctionCall","src":"206:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"197:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"285:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"294:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"302:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"287:6:103"},"nodeType":"YulFunctionCall","src":"287:22:103"},"nodeType":"YulExpressionStatement","src":"287:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"244:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"255:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"270:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"275:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"266:3:103"},"nodeType":"YulFunctionCall","src":"266:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"279:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"262:3:103"},"nodeType":"YulFunctionCall","src":"262:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"251:3:103"},"nodeType":"YulFunctionCall","src":"251:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"241:2:103"},"nodeType":"YulFunctionCall","src":"241:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"234:6:103"},"nodeType":"YulFunctionCall","src":"234:50:103"},"nodeType":"YulIf","src":"231:2:103"},{"nodeType":"YulAssignment","src":"320:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"330:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"320:6:103"}]},{"nodeType":"YulAssignment","src":"344:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"364:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"375:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"360:3:103"},"nodeType":"YulFunctionCall","src":"360:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"354:5:103"},"nodeType":"YulFunctionCall","src":"354:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"344:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"70:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"81:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"93:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"101:6:103","type":""}],"src":"14:371:103"},{"body":{"nodeType":"YulBlock","src":"564:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"592:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"574:6:103"},"nodeType":"YulFunctionCall","src":"574:21:103"},"nodeType":"YulExpressionStatement","src":"574:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"626:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"611:3:103"},"nodeType":"YulFunctionCall","src":"611:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"631:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"604:6:103"},"nodeType":"YulFunctionCall","src":"604:30:103"},"nodeType":"YulExpressionStatement","src":"604:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"665:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"650:3:103"},"nodeType":"YulFunctionCall","src":"650:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"670:33:103","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"643:6:103"},"nodeType":"YulFunctionCall","src":"643:61:103"},"nodeType":"YulExpressionStatement","src":"643:61:103"},{"nodeType":"YulAssignment","src":"713:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"736:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"721:3:103"},"nodeType":"YulFunctionCall","src":"721:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"713:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"541:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"555:4:103","type":""}],"src":"390:355:103"},{"body":{"nodeType":"YulBlock","src":"851:76:103","statements":[{"nodeType":"YulAssignment","src":"861:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"873:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"884:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"869:3:103"},"nodeType":"YulFunctionCall","src":"869:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"861:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"903:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"914:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"896:6:103"},"nodeType":"YulFunctionCall","src":"896:25:103"},"nodeType":"YulExpressionStatement","src":"896:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"820:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"831:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"842:4:103","type":""}],"src":"750:177:103"},{"body":{"nodeType":"YulBlock","src":"980:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"1015:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"1036:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1045:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1050:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1041:3:103"},"nodeType":"YulFunctionCall","src":"1041:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1029:6:103"},"nodeType":"YulFunctionCall","src":"1029:33:103"},"nodeType":"YulExpressionStatement","src":"1029:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1082:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1085:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1075:6:103"},"nodeType":"YulFunctionCall","src":"1075:15:103"},"nodeType":"YulExpressionStatement","src":"1075:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"1110:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"1115:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1103:6:103"},"nodeType":"YulFunctionCall","src":"1103:17:103"},"nodeType":"YulExpressionStatement","src":"1103:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"996:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1003:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"999:3:103"},"nodeType":"YulFunctionCall","src":"999:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"993:2:103"},"nodeType":"YulFunctionCall","src":"993:13:103"},"nodeType":"YulIf","src":"990:2:103"},{"nodeType":"YulAssignment","src":"1139:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1150:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"1153:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1146:3:103"},"nodeType":"YulFunctionCall","src":"1146:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"1139:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"963:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"966:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"972:3:103","type":""}],"src":"932:229:103"},{"body":{"nodeType":"YulBlock","src":"1221:325:103","statements":[{"nodeType":"YulAssignment","src":"1231:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1245:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1251:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1241:3:103"},"nodeType":"YulFunctionCall","src":"1241:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1231:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1262:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1292:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1298:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1288:3:103"},"nodeType":"YulFunctionCall","src":"1288:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1266:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1339:31:103","statements":[{"nodeType":"YulAssignment","src":"1341:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1355:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1363:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1351:3:103"},"nodeType":"YulFunctionCall","src":"1351:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1341:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1319:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1312:6:103"},"nodeType":"YulFunctionCall","src":"1312:26:103"},"nodeType":"YulIf","src":"1309:2:103"},{"body":{"nodeType":"YulBlock","src":"1429:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1450:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1457:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1462:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1453:3:103"},"nodeType":"YulFunctionCall","src":"1453:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1443:6:103"},"nodeType":"YulFunctionCall","src":"1443:31:103"},"nodeType":"YulExpressionStatement","src":"1443:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1494:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1497:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1487:6:103"},"nodeType":"YulFunctionCall","src":"1487:15:103"},"nodeType":"YulExpressionStatement","src":"1487:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1522:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1525:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1515:6:103"},"nodeType":"YulFunctionCall","src":"1515:15:103"},"nodeType":"YulExpressionStatement","src":"1515:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1385:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1408:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1416:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1405:2:103"},"nodeType":"YulFunctionCall","src":"1405:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1382:2:103"},"nodeType":"YulFunctionCall","src":"1382:38:103"},"nodeType":"YulIf","src":"1379:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1201:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1210:6:103","type":""}],"src":"1166:380:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n value1 := mload(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000d0338038062000d0383398101604081905262000034916200025f565b6040518060400160405280601581526020017f436861696e6c696e6b2044756d6d7920546f6b656e00000000000000000000008152506040518060400160405280600381526020016210d11560ea1b81525081600390805190602001906200009e929190620001b9565b508051620000b4906004906020840190620001b9565b505050620000c98282620000d160201b60201c565b5050620002fb565b6001600160a01b0382166200012c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000140919062000299565b90915550506001600160a01b038216600090815260208190526040812080548392906200016f90849062000299565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001c790620002be565b90600052602060002090601f016020900481019282620001eb576000855562000236565b82601f106200020657805160ff191683800117855562000236565b8280016001018555821562000236579182015b828111156200023657825182559160200191906001019062000219565b506200024492915062000248565b5090565b5b8082111562000244576000815560010162000249565b6000806040838503121562000272578182fd5b82516001600160a01b038116811462000289578283fd5b6020939093015192949293505050565b60008219821115620002b957634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680620002d357607f821691505b60208210811415620002f557634e487b7160e01b600052602260045260246000fd5b50919050565b6109f8806200030b6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80634000aea0116100715780634000aea01461014157806370a082311461015457806395d89b4114610167578063a457c2d71461016f578063a9059cbb14610182578063dd62ed3e14610195576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101a8565b6040516100ce9190610910565b60405180910390f35b6100ea6100e536600461081d565b61023a565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046107e2565b610252565b604051601281526020016100ce565b6100ea61013c36600461081d565b610276565b6100ea61014f366004610846565b610298565b6100fe61016236600461078f565b6102b8565b6100c16102d7565b6100ea61017d36600461081d565b6102e6565b6100ea61019036600461081d565b610366565b6100fe6101a33660046107b0565b610374565b6060600380546101b790610987565b80601f01602080910402602001604051908101604052809291908181526020018280546101e390610987565b80156102305780601f1061020557610100808354040283529160200191610230565b820191906000526020600020905b81548152906001019060200180831161021357829003601f168201915b5050505050905090565b60003361024881858561039f565b5060019392505050565b6000336102608582856104c3565b61026b85858561053d565b506001949350505050565b6000336102488185856102898383610374565b6102939190610963565b61039f565b60006102a48585610366565b50843b1561026b5761026b8585858561070b565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546101b790610987565b600033816102f48286610374565b9050838110156103595760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61026b828686840361039f565b60003361024881858561053d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610350565b6001600160a01b0382166104625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610350565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104cf8484610374565b90506000198114610537578181101561052a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610350565b610537848484840361039f565b50505050565b6001600160a01b0383166105a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610350565b6001600160a01b0382166106035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610350565b6001600160a01b0383166000908152602081905260409020548181101561067b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610350565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106b2908490610963565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106fe91815260200190565b60405180910390a3610537565b604051635260769b60e11b815284906001600160a01b0382169063a4c0ed369061073f9033908890889088906004016108c8565b600060405180830381600087803b15801561075957600080fd5b505af115801561076d573d6000803e3d6000fd5b505050505050505050565b80356001600160a01b03811681146102d257600080fd5b6000602082840312156107a0578081fd5b6107a982610778565b9392505050565b600080604083850312156107c2578081fd5b6107cb83610778565b91506107d960208401610778565b90509250929050565b6000806000606084860312156107f6578081fd5b6107ff84610778565b925061080d60208501610778565b9150604084013590509250925092565b6000806040838503121561082f578182fd5b61083883610778565b946020939093013593505050565b6000806000806060858703121561085b578081fd5b61086485610778565b935060208501359250604085013567ffffffffffffffff80821115610887578283fd5b818701915087601f83011261089a578283fd5b8135818111156108a8578384fd5b8860208285010111156108b9578384fd5b95989497505060200194505050565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6000602080835283518082850152825b8181101561093c57858101830151858201604001528201610920565b8181111561094d5783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561098257634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061099b57607f821691505b602082108114156109bc57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220f3d8363e9fb1f29b8d17cfb6891464862284d9a7fc6aa7fae16e70cee2835a4064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xD03 CODESIZE SUB DUP1 PUSH3 0xD03 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x25F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436861696E6C696E6B2044756D6D7920546F6B656E0000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x10D115 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x9E SWAP3 SWAP2 SWAP1 PUSH3 0x1B9 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0xB4 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x1B9 JUMP JUMPDEST POP POP POP PUSH3 0xC9 DUP3 DUP3 PUSH3 0xD1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH3 0x2FB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x12C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x140 SWAP2 SWAP1 PUSH3 0x299 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH3 0x16F SWAP1 DUP5 SWAP1 PUSH3 0x299 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x1C7 SWAP1 PUSH3 0x2BE JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x1EB JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x236 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x206 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x236 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x236 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x236 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x219 JUMP JUMPDEST POP PUSH3 0x244 SWAP3 SWAP2 POP PUSH3 0x248 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x244 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x249 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x272 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x289 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD MLOAD SWAP3 SWAP5 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x2B9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x2D3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x2F5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9F8 DUP1 PUSH3 0x30B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4000AEA0 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x4000AEA0 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x195 JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x23A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x276 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x846 JUMP JUMPDEST PUSH2 0x298 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0x78F JUMP JUMPDEST PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2D7 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x17D CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x190 CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x366 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B0 JUMP JUMPDEST PUSH2 0x374 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1B7 SWAP1 PUSH2 0x987 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E3 SWAP1 PUSH2 0x987 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x230 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x205 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x230 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x213 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x39F JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP6 DUP3 DUP6 PUSH2 0x4C3 JUMP JUMPDEST PUSH2 0x26B DUP6 DUP6 DUP6 PUSH2 0x53D JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x289 DUP4 DUP4 PUSH2 0x374 JUMP JUMPDEST PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x963 JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A4 DUP6 DUP6 PUSH2 0x366 JUMP JUMPDEST POP DUP5 EXTCODESIZE ISZERO PUSH2 0x26B JUMPI PUSH2 0x26B DUP6 DUP6 DUP6 DUP6 PUSH2 0x70B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1B7 SWAP1 PUSH2 0x987 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2F4 DUP3 DUP7 PUSH2 0x374 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x359 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x26B DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x39F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x401 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4CF DUP5 DUP5 PUSH2 0x374 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x537 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x52A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x350 JUMP JUMPDEST PUSH2 0x537 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x39F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x603 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x67B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x6B2 SWAP1 DUP5 SWAP1 PUSH2 0x963 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6FE SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x537 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5260769B PUSH1 0xE1 SHL DUP2 MSTORE DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA4C0ED36 SWAP1 PUSH2 0x73F SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x8C8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x76D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7A0 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7A9 DUP3 PUSH2 0x778 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7C2 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7CB DUP4 PUSH2 0x778 JUMP JUMPDEST SWAP2 POP PUSH2 0x7D9 PUSH1 0x20 DUP5 ADD PUSH2 0x778 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7F6 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7FF DUP5 PUSH2 0x778 JUMP JUMPDEST SWAP3 POP PUSH2 0x80D PUSH1 0x20 DUP6 ADD PUSH2 0x778 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x82F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x838 DUP4 PUSH2 0x778 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x85B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x864 DUP6 PUSH2 0x778 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x887 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x89A JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8A8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x8B9 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x93C JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x920 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x94D JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x982 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x99B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x9BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURN 0xD8 CALLDATASIZE RETURNDATACOPY SWAP16 0xB1 CALLCODE SWAP12 DUP14 OR 0xCF 0xB6 DUP10 EQ PUSH5 0x862284D9A7 0xFC PUSH11 0xA7FAE16E70CEE2835A4064 PUSH20 0x6F6C634300080200330000000000000000000000 ","sourceMap":"249:869:70:-:0;;;288:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1978:113:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1978:113:49;;;2052:5;2044;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;378:20:70::1;384:5;391:6;378:5;;;:20;;:::i;:::-;288:117:::0;;249:869;;8402:389:49;-1:-1:-1;;;;;8485:21:49;;8477:65;;;;-1:-1:-1;;;8477:65:49;;592:2:103;8477:65:49;;;574:21:103;631:2;611:18;;;604:30;670:33;650:18;;;643:61;721:18;;8477:65:49;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:49;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:49;;896:25:103;;;-1:-1:-1;;;;;8688:37:49;;;8705:1;;8688:37;;884:2:103;869:18;8688:37:49;;;;;;;8402:389;;:::o;249:869:70:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;249:869:70;;;-1:-1:-1;249:869:70;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:371:103;;;154:2;142:9;133:7;129:23;125:32;122:2;;;175:6;167;160:22;122:2;206:16;;-1:-1:-1;;;;;251:31:103;;241:42;;231:2;;302:6;294;287:22;231:2;375;360:18;;;;354:25;330:5;;354:25;;-1:-1:-1;;;112:273:103:o;932:229::-;;1003:1;999:6;996:1;993:13;990:2;;;-1:-1:-1;;;1029:33:103;;1085:4;1082:1;1075:15;1115:4;1036:3;1103:17;990:2;-1:-1:-1;1146:9:103;;980:181::o;1166:380::-;1251:1;1241:12;;1298:1;1288:12;;;1309:2;;1363:4;1355:6;1351:17;1341:27;;1309:2;1416;1408:6;1405:14;1385:18;1382:38;1379:2;;;1462:10;1457:3;1453:20;1450:1;1443:31;1497:4;1494:1;1487:15;1525:4;1522:1;1515:15;1379:2;;1221:325;;;:::o;:::-;249:869:70;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7211:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1403:660:103","statements":[{"body":{"nodeType":"YulBlock","src":"1449:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1458:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1466:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1451:6:103"},"nodeType":"YulFunctionCall","src":"1451:22:103"},"nodeType":"YulExpressionStatement","src":"1451:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1424:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1433:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1420:3:103"},"nodeType":"YulFunctionCall","src":"1420:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1445:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1416:3:103"},"nodeType":"YulFunctionCall","src":"1416:32:103"},"nodeType":"YulIf","src":"1413:2:103"},{"nodeType":"YulAssignment","src":"1484:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1513:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1494:18:103"},"nodeType":"YulFunctionCall","src":"1494:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1484:6:103"}]},{"nodeType":"YulAssignment","src":"1532:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1559:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1570:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1555:3:103"},"nodeType":"YulFunctionCall","src":"1555:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1542:12:103"},"nodeType":"YulFunctionCall","src":"1542:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1532:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1583:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1614:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1625:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1610:3:103"},"nodeType":"YulFunctionCall","src":"1610:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1597:12:103"},"nodeType":"YulFunctionCall","src":"1597:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1587:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1638:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1648:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1642:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1693:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1702:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1710:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1695:6:103"},"nodeType":"YulFunctionCall","src":"1695:22:103"},"nodeType":"YulExpressionStatement","src":"1695:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1681:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1689:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1678:2:103"},"nodeType":"YulFunctionCall","src":"1678:14:103"},"nodeType":"YulIf","src":"1675:2:103"},{"nodeType":"YulVariableDeclaration","src":"1728:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1742:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1753:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1738:3:103"},"nodeType":"YulFunctionCall","src":"1738:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1732:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1808:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1817:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1825:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1810:6:103"},"nodeType":"YulFunctionCall","src":"1810:22:103"},"nodeType":"YulExpressionStatement","src":"1810:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1787:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1791:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1783:3:103"},"nodeType":"YulFunctionCall","src":"1783:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1798:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1779:3:103"},"nodeType":"YulFunctionCall","src":"1779:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1772:6:103"},"nodeType":"YulFunctionCall","src":"1772:35:103"},"nodeType":"YulIf","src":"1769:2:103"},{"nodeType":"YulVariableDeclaration","src":"1843:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1870:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1857:12:103"},"nodeType":"YulFunctionCall","src":"1857:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1847:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1900:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1909:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1917:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1902:6:103"},"nodeType":"YulFunctionCall","src":"1902:22:103"},"nodeType":"YulExpressionStatement","src":"1902:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1888:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1896:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1885:2:103"},"nodeType":"YulFunctionCall","src":"1885:14:103"},"nodeType":"YulIf","src":"1882:2:103"},{"body":{"nodeType":"YulBlock","src":"1976:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1985:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1993:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1978:6:103"},"nodeType":"YulFunctionCall","src":"1978:22:103"},"nodeType":"YulExpressionStatement","src":"1978:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1949:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"1953:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1945:3:103"},"nodeType":"YulFunctionCall","src":"1945:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"1962:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1941:3:103"},"nodeType":"YulFunctionCall","src":"1941:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1967:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1938:2:103"},"nodeType":"YulFunctionCall","src":"1938:37:103"},"nodeType":"YulIf","src":"1935:2:103"},{"nodeType":"YulAssignment","src":"2011:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2025:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2029:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2021:3:103"},"nodeType":"YulFunctionCall","src":"2021:11:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2011:6:103"}]},{"nodeType":"YulAssignment","src":"2041:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"2051:6:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2041:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1345:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1356:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1368:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1376:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1384:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1392:6:103","type":""}],"src":"1280:783:103"},{"body":{"nodeType":"YulBlock","src":"2253:377:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2270:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2285:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2301:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2306:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2297:3:103"},"nodeType":"YulFunctionCall","src":"2297:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2310:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2293:3:103"},"nodeType":"YulFunctionCall","src":"2293:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2281:3:103"},"nodeType":"YulFunctionCall","src":"2281:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2263:6:103"},"nodeType":"YulFunctionCall","src":"2263:51:103"},"nodeType":"YulExpressionStatement","src":"2263:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2334:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2345:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2330:3:103"},"nodeType":"YulFunctionCall","src":"2330:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2350:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2323:6:103"},"nodeType":"YulFunctionCall","src":"2323:34:103"},"nodeType":"YulExpressionStatement","src":"2323:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2388:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2373:3:103"},"nodeType":"YulFunctionCall","src":"2373:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2393:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2366:6:103"},"nodeType":"YulFunctionCall","src":"2366:30:103"},"nodeType":"YulExpressionStatement","src":"2366:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2427:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2412:3:103"},"nodeType":"YulFunctionCall","src":"2412:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2432:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2405:6:103"},"nodeType":"YulFunctionCall","src":"2405:34:103"},"nodeType":"YulExpressionStatement","src":"2405:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2476:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2461:3:103"},"nodeType":"YulFunctionCall","src":"2461:19:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2482:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2490:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2448:12:103"},"nodeType":"YulFunctionCall","src":"2448:49:103"},"nodeType":"YulExpressionStatement","src":"2448:49:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2521:9:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2532:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2517:3:103"},"nodeType":"YulFunctionCall","src":"2517:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"2541:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2513:3:103"},"nodeType":"YulFunctionCall","src":"2513:32:103"},{"name":"tail","nodeType":"YulIdentifier","src":"2547:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2506:6:103"},"nodeType":"YulFunctionCall","src":"2506:46:103"},"nodeType":"YulExpressionStatement","src":"2506:46:103"},{"nodeType":"YulAssignment","src":"2561:63:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2577:9:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2596:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2604:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2592:3:103"},"nodeType":"YulFunctionCall","src":"2592:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2613:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2609:3:103"},"nodeType":"YulFunctionCall","src":"2609:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2588:3:103"},"nodeType":"YulFunctionCall","src":"2588:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2573:3:103"},"nodeType":"YulFunctionCall","src":"2573:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2620:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2569:3:103"},"nodeType":"YulFunctionCall","src":"2569:55:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2561:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2198:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2209:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2217:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2225:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2233:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2244:4:103","type":""}],"src":"2068:562:103"},{"body":{"nodeType":"YulBlock","src":"2730:92:103","statements":[{"nodeType":"YulAssignment","src":"2740:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2752:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2763:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2748:3:103"},"nodeType":"YulFunctionCall","src":"2748:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2740:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2782:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2807:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2800:6:103"},"nodeType":"YulFunctionCall","src":"2800:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2793:6:103"},"nodeType":"YulFunctionCall","src":"2793:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2775:6:103"},"nodeType":"YulFunctionCall","src":"2775:41:103"},"nodeType":"YulExpressionStatement","src":"2775:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2699:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2710:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2721:4:103","type":""}],"src":"2635:187:103"},{"body":{"nodeType":"YulBlock","src":"2948:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"2958:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2968:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2962:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2986:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2997:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2979:6:103"},"nodeType":"YulFunctionCall","src":"2979:21:103"},"nodeType":"YulExpressionStatement","src":"2979:21:103"},{"nodeType":"YulVariableDeclaration","src":"3009:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3029:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3023:5:103"},"nodeType":"YulFunctionCall","src":"3023:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3013:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3056:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3067:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3052:3:103"},"nodeType":"YulFunctionCall","src":"3052:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"3072:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3045:6:103"},"nodeType":"YulFunctionCall","src":"3045:34:103"},"nodeType":"YulExpressionStatement","src":"3045:34:103"},{"nodeType":"YulVariableDeclaration","src":"3088:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"3097:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3092:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3160:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3189:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"3200:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3185:3:103"},"nodeType":"YulFunctionCall","src":"3185:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"3204:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3181:3:103"},"nodeType":"YulFunctionCall","src":"3181:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3223:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"3231:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3219:3:103"},"nodeType":"YulFunctionCall","src":"3219:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3235:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3215:3:103"},"nodeType":"YulFunctionCall","src":"3215:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3209:5:103"},"nodeType":"YulFunctionCall","src":"3209:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3174:6:103"},"nodeType":"YulFunctionCall","src":"3174:66:103"},"nodeType":"YulExpressionStatement","src":"3174:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3121:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3124:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3118:2:103"},"nodeType":"YulFunctionCall","src":"3118:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3132:19:103","statements":[{"nodeType":"YulAssignment","src":"3134:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3143:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3146:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3139:3:103"},"nodeType":"YulFunctionCall","src":"3139:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3134:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"3114:3:103","statements":[]},"src":"3110:140:103"},{"body":{"nodeType":"YulBlock","src":"3284:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3313:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"3324:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3309:3:103"},"nodeType":"YulFunctionCall","src":"3309:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"3333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3305:3:103"},"nodeType":"YulFunctionCall","src":"3305:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"3338:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3298:6:103"},"nodeType":"YulFunctionCall","src":"3298:45:103"},"nodeType":"YulExpressionStatement","src":"3298:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3265:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3268:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3262:2:103"},"nodeType":"YulFunctionCall","src":"3262:13:103"},"nodeType":"YulIf","src":"3259:2:103"},{"nodeType":"YulAssignment","src":"3362:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3378:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3397:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3405:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3393:3:103"},"nodeType":"YulFunctionCall","src":"3393:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3414:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3410:3:103"},"nodeType":"YulFunctionCall","src":"3410:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3389:3:103"},"nodeType":"YulFunctionCall","src":"3389:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3374:3:103"},"nodeType":"YulFunctionCall","src":"3374:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"3421:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3370:3:103"},"nodeType":"YulFunctionCall","src":"3370:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3362:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2917:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2928:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2939:4:103","type":""}],"src":"2827:603:103"},{"body":{"nodeType":"YulBlock","src":"3609:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3619:6:103"},"nodeType":"YulFunctionCall","src":"3619:21:103"},"nodeType":"YulExpressionStatement","src":"3619:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3660:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3671:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3656:3:103"},"nodeType":"YulFunctionCall","src":"3656:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3676:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3649:6:103"},"nodeType":"YulFunctionCall","src":"3649:30:103"},"nodeType":"YulExpressionStatement","src":"3649:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3699:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3710:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3695:3:103"},"nodeType":"YulFunctionCall","src":"3695:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3715:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3688:6:103"},"nodeType":"YulFunctionCall","src":"3688:62:103"},"nodeType":"YulExpressionStatement","src":"3688:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3770:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3781:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3766:3:103"},"nodeType":"YulFunctionCall","src":"3766:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3786:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3759:6:103"},"nodeType":"YulFunctionCall","src":"3759:33:103"},"nodeType":"YulExpressionStatement","src":"3759:33:103"},{"nodeType":"YulAssignment","src":"3801:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3813:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3824:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3809:3:103"},"nodeType":"YulFunctionCall","src":"3809:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3801:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3586:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3600:4:103","type":""}],"src":"3435:399:103"},{"body":{"nodeType":"YulBlock","src":"4013:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4030:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4041:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4023:6:103"},"nodeType":"YulFunctionCall","src":"4023:21:103"},"nodeType":"YulExpressionStatement","src":"4023:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4075:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4060:3:103"},"nodeType":"YulFunctionCall","src":"4060:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4080:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4053:6:103"},"nodeType":"YulFunctionCall","src":"4053:30:103"},"nodeType":"YulExpressionStatement","src":"4053:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4103:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4114:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4099:3:103"},"nodeType":"YulFunctionCall","src":"4099:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4119:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4092:6:103"},"nodeType":"YulFunctionCall","src":"4092:62:103"},"nodeType":"YulExpressionStatement","src":"4092:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4185:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4170:3:103"},"nodeType":"YulFunctionCall","src":"4170:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4190:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4163:6:103"},"nodeType":"YulFunctionCall","src":"4163:32:103"},"nodeType":"YulExpressionStatement","src":"4163:32:103"},{"nodeType":"YulAssignment","src":"4204:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4227:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4212:3:103"},"nodeType":"YulFunctionCall","src":"4212:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4204:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3990:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4004:4:103","type":""}],"src":"3839:398:103"},{"body":{"nodeType":"YulBlock","src":"4416:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4444:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4426:6:103"},"nodeType":"YulFunctionCall","src":"4426:21:103"},"nodeType":"YulExpressionStatement","src":"4426:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4467:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4478:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4463:3:103"},"nodeType":"YulFunctionCall","src":"4463:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4483:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4456:6:103"},"nodeType":"YulFunctionCall","src":"4456:30:103"},"nodeType":"YulExpressionStatement","src":"4456:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4506:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4517:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4502:3:103"},"nodeType":"YulFunctionCall","src":"4502:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4522:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4495:6:103"},"nodeType":"YulFunctionCall","src":"4495:59:103"},"nodeType":"YulExpressionStatement","src":"4495:59:103"},{"nodeType":"YulAssignment","src":"4563:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4575:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4586:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4571:3:103"},"nodeType":"YulFunctionCall","src":"4571:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4563:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4393:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4407:4:103","type":""}],"src":"4242:353:103"},{"body":{"nodeType":"YulBlock","src":"4774:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4791:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4802:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4784:6:103"},"nodeType":"YulFunctionCall","src":"4784:21:103"},"nodeType":"YulExpressionStatement","src":"4784:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4825:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4836:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4821:3:103"},"nodeType":"YulFunctionCall","src":"4821:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4841:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4814:6:103"},"nodeType":"YulFunctionCall","src":"4814:30:103"},"nodeType":"YulExpressionStatement","src":"4814:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4864:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4875:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4860:3:103"},"nodeType":"YulFunctionCall","src":"4860:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4880:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4853:6:103"},"nodeType":"YulFunctionCall","src":"4853:62:103"},"nodeType":"YulExpressionStatement","src":"4853:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4935:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4946:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4931:3:103"},"nodeType":"YulFunctionCall","src":"4931:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4951:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4924:6:103"},"nodeType":"YulFunctionCall","src":"4924:36:103"},"nodeType":"YulExpressionStatement","src":"4924:36:103"},{"nodeType":"YulAssignment","src":"4969:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4981:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4992:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4977:3:103"},"nodeType":"YulFunctionCall","src":"4977:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4969:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4751:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4765:4:103","type":""}],"src":"4600:402:103"},{"body":{"nodeType":"YulBlock","src":"5181:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5198:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5209:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5191:6:103"},"nodeType":"YulFunctionCall","src":"5191:21:103"},"nodeType":"YulExpressionStatement","src":"5191:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5232:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5243:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5228:3:103"},"nodeType":"YulFunctionCall","src":"5228:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5248:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5221:6:103"},"nodeType":"YulFunctionCall","src":"5221:30:103"},"nodeType":"YulExpressionStatement","src":"5221:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5282:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5267:3:103"},"nodeType":"YulFunctionCall","src":"5267:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5287:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5260:6:103"},"nodeType":"YulFunctionCall","src":"5260:62:103"},"nodeType":"YulExpressionStatement","src":"5260:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5353:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5338:3:103"},"nodeType":"YulFunctionCall","src":"5338:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5358:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5331:6:103"},"nodeType":"YulFunctionCall","src":"5331:35:103"},"nodeType":"YulExpressionStatement","src":"5331:35:103"},{"nodeType":"YulAssignment","src":"5375:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5398:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5383:3:103"},"nodeType":"YulFunctionCall","src":"5383:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5375:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5158:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5172:4:103","type":""}],"src":"5007:401:103"},{"body":{"nodeType":"YulBlock","src":"5587:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5615:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5597:6:103"},"nodeType":"YulFunctionCall","src":"5597:21:103"},"nodeType":"YulExpressionStatement","src":"5597:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5649:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5634:3:103"},"nodeType":"YulFunctionCall","src":"5634:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5654:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5627:6:103"},"nodeType":"YulFunctionCall","src":"5627:30:103"},"nodeType":"YulExpressionStatement","src":"5627:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5688:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5673:3:103"},"nodeType":"YulFunctionCall","src":"5673:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5693:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5666:6:103"},"nodeType":"YulFunctionCall","src":"5666:62:103"},"nodeType":"YulExpressionStatement","src":"5666:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5759:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5744:3:103"},"nodeType":"YulFunctionCall","src":"5744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5764:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5737:6:103"},"nodeType":"YulFunctionCall","src":"5737:34:103"},"nodeType":"YulExpressionStatement","src":"5737:34:103"},{"nodeType":"YulAssignment","src":"5780:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5803:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5788:3:103"},"nodeType":"YulFunctionCall","src":"5788:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5780:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5564:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5578:4:103","type":""}],"src":"5413:400:103"},{"body":{"nodeType":"YulBlock","src":"5992:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6020:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6002:6:103"},"nodeType":"YulFunctionCall","src":"6002:21:103"},"nodeType":"YulExpressionStatement","src":"6002:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6043:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6054:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6039:3:103"},"nodeType":"YulFunctionCall","src":"6039:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6059:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6032:6:103"},"nodeType":"YulFunctionCall","src":"6032:30:103"},"nodeType":"YulExpressionStatement","src":"6032:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6082:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6093:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6078:3:103"},"nodeType":"YulFunctionCall","src":"6078:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6098:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6071:6:103"},"nodeType":"YulFunctionCall","src":"6071:62:103"},"nodeType":"YulExpressionStatement","src":"6071:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6164:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6149:3:103"},"nodeType":"YulFunctionCall","src":"6149:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6169:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6142:6:103"},"nodeType":"YulFunctionCall","src":"6142:35:103"},"nodeType":"YulExpressionStatement","src":"6142:35:103"},{"nodeType":"YulAssignment","src":"6186:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6198:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6209:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6194:3:103"},"nodeType":"YulFunctionCall","src":"6194:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6186:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5969:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5983:4:103","type":""}],"src":"5818:401:103"},{"body":{"nodeType":"YulBlock","src":"6325:76:103","statements":[{"nodeType":"YulAssignment","src":"6335:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6347:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6358:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6343:3:103"},"nodeType":"YulFunctionCall","src":"6343:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6335:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6377:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6388:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6370:6:103"},"nodeType":"YulFunctionCall","src":"6370:25:103"},"nodeType":"YulExpressionStatement","src":"6370:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6294:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6305:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6316:4:103","type":""}],"src":"6224:177:103"},{"body":{"nodeType":"YulBlock","src":"6503:87:103","statements":[{"nodeType":"YulAssignment","src":"6513:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6536:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6521:3:103"},"nodeType":"YulFunctionCall","src":"6521:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6513:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6555:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6570:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6578:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6566:3:103"},"nodeType":"YulFunctionCall","src":"6566:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6548:6:103"},"nodeType":"YulFunctionCall","src":"6548:36:103"},"nodeType":"YulExpressionStatement","src":"6548:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6472:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6483:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6494:4:103","type":""}],"src":"6406:184:103"},{"body":{"nodeType":"YulBlock","src":"6643:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"6678:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"6699:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6708:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6713:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6704:3:103"},"nodeType":"YulFunctionCall","src":"6704:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6692:6:103"},"nodeType":"YulFunctionCall","src":"6692:33:103"},"nodeType":"YulExpressionStatement","src":"6692:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6745:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6748:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6738:6:103"},"nodeType":"YulFunctionCall","src":"6738:15:103"},"nodeType":"YulExpressionStatement","src":"6738:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"6773:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"6778:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6766:6:103"},"nodeType":"YulFunctionCall","src":"6766:17:103"},"nodeType":"YulExpressionStatement","src":"6766:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6659:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6666:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6662:3:103"},"nodeType":"YulFunctionCall","src":"6662:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6656:2:103"},"nodeType":"YulFunctionCall","src":"6656:13:103"},"nodeType":"YulIf","src":"6653:2:103"},{"nodeType":"YulAssignment","src":"6802:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6813:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"6816:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6809:3:103"},"nodeType":"YulFunctionCall","src":"6809:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"6802:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6626:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"6629:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"6635:3:103","type":""}],"src":"6595:229:103"},{"body":{"nodeType":"YulBlock","src":"6884:325:103","statements":[{"nodeType":"YulAssignment","src":"6894:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"6908:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"6914:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6904:3:103"},"nodeType":"YulFunctionCall","src":"6904:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6894:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6925:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"6955:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"6961:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6951:3:103"},"nodeType":"YulFunctionCall","src":"6951:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"6929:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7002:31:103","statements":[{"nodeType":"YulAssignment","src":"7004:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7018:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7026:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7014:3:103"},"nodeType":"YulFunctionCall","src":"7014:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"7004:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6982:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6975:6:103"},"nodeType":"YulFunctionCall","src":"6975:26:103"},"nodeType":"YulIf","src":"6972:2:103"},{"body":{"nodeType":"YulBlock","src":"7092:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7113:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7120:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7125:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7116:3:103"},"nodeType":"YulFunctionCall","src":"7116:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7106:6:103"},"nodeType":"YulFunctionCall","src":"7106:31:103"},"nodeType":"YulExpressionStatement","src":"7106:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7157:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7160:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7150:6:103"},"nodeType":"YulFunctionCall","src":"7150:15:103"},"nodeType":"YulExpressionStatement","src":"7150:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7185:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7188:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7178:6:103"},"nodeType":"YulFunctionCall","src":"7178:15:103"},"nodeType":"YulExpressionStatement","src":"7178:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"7048:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7071:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7079:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7068:2:103"},"nodeType":"YulFunctionCall","src":"7068:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7045:2:103"},"nodeType":"YulFunctionCall","src":"7045:38:103"},"nodeType":"YulIf","src":"7042:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"6864:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"6873:6:103","type":""}],"src":"6829:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value3, value3) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value3, value3) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value3, value3) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value3, value3) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value3, value3) }\n value2 := add(_2, 32)\n value3 := length\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n mstore(add(headStart, 96), value3)\n calldatacopy(add(headStart, 128), value2, value3)\n mstore(add(add(headStart, value3), 128), tail)\n tail := add(add(headStart, and(add(value3, 31), not(31))), 128)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c80634000aea0116100715780634000aea01461014157806370a082311461015457806395d89b4114610167578063a457c2d71461016f578063a9059cbb14610182578063dd62ed3e14610195576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101a8565b6040516100ce9190610910565b60405180910390f35b6100ea6100e536600461081d565b61023a565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046107e2565b610252565b604051601281526020016100ce565b6100ea61013c36600461081d565b610276565b6100ea61014f366004610846565b610298565b6100fe61016236600461078f565b6102b8565b6100c16102d7565b6100ea61017d36600461081d565b6102e6565b6100ea61019036600461081d565b610366565b6100fe6101a33660046107b0565b610374565b6060600380546101b790610987565b80601f01602080910402602001604051908101604052809291908181526020018280546101e390610987565b80156102305780601f1061020557610100808354040283529160200191610230565b820191906000526020600020905b81548152906001019060200180831161021357829003601f168201915b5050505050905090565b60003361024881858561039f565b5060019392505050565b6000336102608582856104c3565b61026b85858561053d565b506001949350505050565b6000336102488185856102898383610374565b6102939190610963565b61039f565b60006102a48585610366565b50843b1561026b5761026b8585858561070b565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546101b790610987565b600033816102f48286610374565b9050838110156103595760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61026b828686840361039f565b60003361024881858561053d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610350565b6001600160a01b0382166104625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610350565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104cf8484610374565b90506000198114610537578181101561052a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610350565b610537848484840361039f565b50505050565b6001600160a01b0383166105a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610350565b6001600160a01b0382166106035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610350565b6001600160a01b0383166000908152602081905260409020548181101561067b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610350565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106b2908490610963565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106fe91815260200190565b60405180910390a3610537565b604051635260769b60e11b815284906001600160a01b0382169063a4c0ed369061073f9033908890889088906004016108c8565b600060405180830381600087803b15801561075957600080fd5b505af115801561076d573d6000803e3d6000fd5b505050505050505050565b80356001600160a01b03811681146102d257600080fd5b6000602082840312156107a0578081fd5b6107a982610778565b9392505050565b600080604083850312156107c2578081fd5b6107cb83610778565b91506107d960208401610778565b90509250929050565b6000806000606084860312156107f6578081fd5b6107ff84610778565b925061080d60208501610778565b9150604084013590509250925092565b6000806040838503121561082f578182fd5b61083883610778565b946020939093013593505050565b6000806000806060858703121561085b578081fd5b61086485610778565b935060208501359250604085013567ffffffffffffffff80821115610887578283fd5b818701915087601f83011261089a578283fd5b8135818111156108a8578384fd5b8860208285010111156108b9578384fd5b95989497505060200194505050565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6000602080835283518082850152825b8181101561093c57858101830151858201604001528201610920565b8181111561094d5783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561098257634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061099b57607f821691505b602082108114156109bc57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220f3d8363e9fb1f29b8d17cfb6891464862284d9a7fc6aa7fae16e70cee2835a4064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4000AEA0 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x4000AEA0 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x195 JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x23A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x276 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x846 JUMP JUMPDEST PUSH2 0x298 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0x78F JUMP JUMPDEST PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2D7 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x17D CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x190 CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x366 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B0 JUMP JUMPDEST PUSH2 0x374 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1B7 SWAP1 PUSH2 0x987 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E3 SWAP1 PUSH2 0x987 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x230 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x205 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x230 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x213 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x39F JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP6 DUP3 DUP6 PUSH2 0x4C3 JUMP JUMPDEST PUSH2 0x26B DUP6 DUP6 DUP6 PUSH2 0x53D JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x289 DUP4 DUP4 PUSH2 0x374 JUMP JUMPDEST PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x963 JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A4 DUP6 DUP6 PUSH2 0x366 JUMP JUMPDEST POP DUP5 EXTCODESIZE ISZERO PUSH2 0x26B JUMPI PUSH2 0x26B DUP6 DUP6 DUP6 DUP6 PUSH2 0x70B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1B7 SWAP1 PUSH2 0x987 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2F4 DUP3 DUP7 PUSH2 0x374 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x359 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x26B DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x39F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x401 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4CF DUP5 DUP5 PUSH2 0x374 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x537 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x52A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x350 JUMP JUMPDEST PUSH2 0x537 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x39F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x603 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x67B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x6B2 SWAP1 DUP5 SWAP1 PUSH2 0x963 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6FE SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x537 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5260769B PUSH1 0xE1 SHL DUP2 MSTORE DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA4C0ED36 SWAP1 PUSH2 0x73F SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x8C8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x76D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7A0 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7A9 DUP3 PUSH2 0x778 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7C2 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7CB DUP4 PUSH2 0x778 JUMP JUMPDEST SWAP2 POP PUSH2 0x7D9 PUSH1 0x20 DUP5 ADD PUSH2 0x778 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7F6 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7FF DUP5 PUSH2 0x778 JUMP JUMPDEST SWAP3 POP PUSH2 0x80D PUSH1 0x20 DUP6 ADD PUSH2 0x778 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x82F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x838 DUP4 PUSH2 0x778 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x85B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x864 DUP6 PUSH2 0x778 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x887 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x89A JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8A8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x8B9 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x93C JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x920 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x94D JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x982 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x99B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x9BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURN 0xD8 CALLDATASIZE RETURNDATACOPY SWAP16 0xB1 CALLCODE SWAP12 DUP14 OR 0xCF 0xB6 DUP10 EQ PUSH5 0x862284D9A7 0xFC PUSH11 0xA7FAE16E70CEE2835A4064 PUSH20 0x6F6C634300080200330000000000000000000000 ","sourceMap":"249:869:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;2800:14:103;;2793:22;2775:41;;2763:2;2748:18;4433:197:49;2730:92:103;3244:106:49;3331:12;;3244:106;;;6370:25:103;;;6358:2;6343:18;3244:106:49;6325:76:103;5192:286:49;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;6548:36:103;;6536:2;6521:18;3093:91:49;6503:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;411:312:70:-;;;;;;:::i;:::-;;:::i;3408:125:49:-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;2156:98::-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:49;;5192:286;-1:-1:-1;;;;5192:286:49:o;5873:234::-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;411:312:70:-;500:12;523:27;538:3;543:6;523:14;:27::i;:::-;-1:-1:-1;1063:18:70;;1099:10;614:82;;649:36;666:3;671:6;679:5;;649:16;:36::i;3408:125:49:-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;6020:2:103;6803:85:49;;;6002:21:103;6059:2;6039:18;;;6032:30;6098:34;6078:18;;;6071:62;-1:-1:-1;;;6149:18:103;;;6142:35;6194:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;5615:2:103;10233:68:49;;;5597:21:103;5654:2;5634:18;;;5627:30;5693:34;5673:18;;;5666:62;-1:-1:-1;;;5744:18:103;;;5737:34;5788:19;;10233:68:49;5587:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;4041:2:103;10311:68:49;;;4023:21:103;4080:2;4060:18;;;4053:30;4119:34;4099:18;;;4092:62;-1:-1:-1;;;4170:18:103;;;4163:32;4212:19;;10311:68:49;4013:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;6370:25:103;;;10441:32:49;;6343:18:103;10441:32:49;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;4444:2:103;11010:68:49;;;4426:21:103;4483:2;4463:18;;;4456:30;4522:31;4502:18;;;4495:59;4571:18;;11010:68:49;4416:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;5209:2:103;7593:68:49;;;5191:21:103;5248:2;5228:18;;;5221:30;5287:34;5267:18;;;5260:62;-1:-1:-1;;;5338:18:103;;;5331:35;5383:19;;7593:68:49;5181:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;3637:2:103;7671:64:49;;;3619:21:103;3676:2;3656:18;;;3649:30;3715:34;3695:18;;;3688:62;-1:-1:-1;;;3766:18:103;;;3759:33;3809:19;;7671:64:49;3609:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;4802:2:103;7842:72:49;;;4784:21:103;4841:2;4821:18;;;4814:30;4880:34;4860:18;;;4853:62;-1:-1:-1;;;4931:18:103;;;4924:36;4977:19;;7842:72:49;4774:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;6370:25:103;;6358:2;6343:18;;6325:76;8045:26:49;;;;;;;;8082:37;11786:121;729:205:70;876:51;;-1:-1:-1;;;876:51:70;;862:3;;-1:-1:-1;;;;;876:24:70;;;;;:51;;901:10;;913:6;;921:5;;;;876:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;729:205;;;;;:::o;14:173:103:-;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:103:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1280:783::-;;;;;1445:2;1433:9;1424:7;1420:23;1416:32;1413:2;;;1466:6;1458;1451:22;1413:2;1494:29;1513:9;1494:29;:::i;:::-;1484:39;;1570:2;1559:9;1555:18;1542:32;1532:42;;1625:2;1614:9;1610:18;1597:32;1648:18;1689:2;1681:6;1678:14;1675:2;;;1710:6;1702;1695:22;1675:2;1753:6;1742:9;1738:22;1728:32;;1798:7;1791:4;1787:2;1783:13;1779:27;1769:2;;1825:6;1817;1810:22;1769:2;1870;1857:16;1896:2;1888:6;1885:14;1882:2;;;1917:6;1909;1902:22;1882:2;1967:7;1962:2;1953:6;1949:2;1945:15;1941:24;1938:37;1935:2;;;1993:6;1985;1978:22;1935:2;1403:660;;;;-1:-1:-1;;2029:2:103;2021:11;;-1:-1:-1;;;1403:660:103:o;2068:562::-;-1:-1:-1;;;;;2281:32:103;;2263:51;;2345:2;2330:18;;2323:34;;;2393:2;2388;2373:18;;2366:30;;;2412:18;;2405:34;;;2068:562;2432:6;2482;2476:3;2461:19;;2448:49;2517:22;;;2541:3;2513:32;;;2506:46;;;;2613:2;2592:15;;;-1:-1:-1;;2588:29:103;2573:45;2569:55;;2253:377;-1:-1:-1;;;2253:377:103:o;2827:603::-;;2968:2;2997;2986:9;2979:21;3029:6;3023:13;3072:6;3067:2;3056:9;3052:18;3045:34;3097:4;3110:140;3124:6;3121:1;3118:13;3110:140;;;3219:14;;;3215:23;;3209:30;3185:17;;;3204:2;3181:26;3174:66;3139:10;;3110:140;;;3268:6;3265:1;3262:13;3259:2;;;3338:4;3333:2;3324:6;3313:9;3309:22;3305:31;3298:45;3259:2;-1:-1:-1;3414:2:103;3393:15;-1:-1:-1;;3389:29:103;3374:45;;;;3421:2;3370:54;;2948:482;-1:-1:-1;;;2948:482:103:o;6595:229::-;;6666:1;6662:6;6659:1;6656:13;6653:2;;;-1:-1:-1;;;6692:33:103;;6748:4;6745:1;6738:15;6778:4;6699:3;6766:17;6653:2;-1:-1:-1;6809:9:103;;6643:181::o;6829:380::-;6914:1;6904:12;;6961:1;6951:12;;;6972:2;;7026:4;7018:6;7014:17;7004:27;;6972:2;7079;7071:6;7068:14;7048:18;7045:38;7042:2;;;7125:10;7120:3;7116:20;7113:1;7106:31;7160:4;7157:1;7150:15;7188:4;7185:1;7178:15;7042:2;;6884:325;;;:::o"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferAndCall(address,uint256,bytes)":"4000aea0","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/mock/ChainlinkToken.sol\":\"ChainlinkToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/examples/mock/ChainlinkToken.sol\":{\"keccak256\":\"0x48b6b5b600825dfe7a3377b61304d2550adc7617816f1f8ccb6c857da6238853\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f5b65369b7a3a6cb361712cbb8058c7a509bf7eb0e3389f2c416fcf526aea9c\",\"dweb:/ipfs/QmPYrVHNoXjX9BMhqJrcupLFgaXSfswxnK9N92wmWcXFrE\"]}},\"version\":1}"},"ERC677Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"onTokenTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onTokenTransfer(address,uint256,bytes)":"a4c0ed36"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onTokenTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/mock/ChainlinkToken.sol\":\"ERC677Receiver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/examples/mock/ChainlinkToken.sol\":{\"keccak256\":\"0x48b6b5b600825dfe7a3377b61304d2550adc7617816f1f8ccb6c857da6238853\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f5b65369b7a3a6cb361712cbb8058c7a509bf7eb0e3389f2c416fcf526aea9c\",\"dweb:/ipfs/QmPYrVHNoXjX9BMhqJrcupLFgaXSfswxnK9N92wmWcXFrE\"]}},\"version\":1}"}},"contracts/examples/strings.sol":{"strings":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a39611688c0ac4789558bf2ee98f59e4dcce4418533237488fd2a2f3474b59c064736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 SWAP7 GT PUSH9 0x8C0AC4789558BF2EE9 DUP16 MSIZE 0xE4 0xDC 0xCE DIFFICULTY XOR MSTORE8 ORIGIN CALLDATACOPY 0x48 DUP16 0xD2 LOG2 RETURN SELFBALANCE 0x4B MSIZE 0xC0 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2137:2345:71:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;2137:2345:71;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a39611688c0ac4789558bf2ee98f59e4dcce4418533237488fd2a2f3474b59c064736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 SWAP7 GT PUSH9 0x8C0AC4789558BF2EE9 DUP16 MSIZE 0xE4 0xDC 0xCE DIFFICULTY XOR MSTORE8 ORIGIN CALLDATACOPY 0x48 DUP16 0xD2 LOG2 RETURN SELFBALANCE 0x4B MSIZE 0xC0 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2137:2345:71:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/strings.sol\":\"strings\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/examples/strings.sol\":{\"keccak256\":\"0xfd738537e99c62a46a327a80f52679483a45b4fde2f30c7b68c7d975486b7ba5\",\"license\":\"Apache2\",\"urls\":[\"bzz-raw://695820bb46ee3dfaa66b81dd589494bb336aea479ec8accb62cff77b2f4c351c\",\"dweb:/ipfs/Qma9vkriFdLmcpwm8kPYQqLPnemKd2MeVsSCggvp2nzWUf\"]}},\"version\":1}"}},"contracts/flows/PolicyDefaultFlow.sol":{"PolicyDefaultFlow":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancelRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"closeClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPremiumAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"confirmClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"declineClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"expire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getApplicationData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"getClaimData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractFromRegistry","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"getPayoutData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"newApplication","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"newClaim","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"newPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPayoutAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"},{"internalType":"string","name":"_callbackMethodName","type":"string"},{"internalType":"address","name":"_callbackContractAddress","type":"address"},{"internalType":"uint256","name":"_responsibleOracleId","type":"uint256"}],"name":"request","outputs":[{"internalType":"uint256","name":"_requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"revoke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:326:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:229:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"268:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"277:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"285:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"270:6:103"},"nodeType":"YulFunctionCall","src":"270:22:103"},"nodeType":"YulExpressionStatement","src":"270:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"238:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"249:3:103"},"nodeType":"YulFunctionCall","src":"249:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"245:3:103"},"nodeType":"YulFunctionCall","src":"245:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"234:3:103"},"nodeType":"YulFunctionCall","src":"234:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"224:2:103"},"nodeType":"YulFunctionCall","src":"224:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"217:6:103"},"nodeType":"YulFunctionCall","src":"217:50:103"},"nodeType":"YulIf","src":"214:2:103"},{"nodeType":"YulAssignment","src":"303:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"313:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:310:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b50604051620033f2380380620033f283398101604081905262000034916200004a565b60601b6001600160601b0319166080526200007a565b6000602082840312156200005c578081fd5b81516001600160a01b038116811462000073578182fd5b9392505050565b60805160601c613352620000a0600039600081816102400152611c1301526133526000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80637f29dba2116100b8578063b75c7dc61161007c578063b75c7dc6146102e1578063c46df94e146102f4578063c644179814610307578063e3ebdea51461031a578063fae43d151461034a578063fe64372b1461035d57610142565b80637f29dba21461027a5780638cc7d3d11461028d57806393b8414a146102a0578063a3f4df7e146102b3578063a5b25e71146102ce57610142565b806330a73da51161010a57806330a73da5146101dc57806339c79e0c146101ef5780634cda0de9146102025780634e02c63f14610215578063781d7846146102285780637b1039991461023b57610142565b806310b96080146101475780631b07b17f1461017057806322f86e7f146101935780632c933f22146101a65780633015394c146101c7575b600080fd5b61015a610155366004612da0565b610370565b60405161016791906131e1565b60405180910390f35b61018361017e366004612cdc565b61040e565b6040519015158152602001610167565b61015a6101a1366004612da0565b610747565b6101b96101b4366004612d0c565b6107d9565b604051908152602001610167565b6101da6101d5366004612cdc565b6109be565b005b6101da6101ea366004612e12565b610c46565b6101da6101fd366004612cdc565b610eff565b6101da610210366004612da0565b61120f565b6101da610223366004612e12565b611392565b6101b9610236366004612e3d565b611554565b6102627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610167565b6101da610288366004612da0565b611733565b6101da61029b366004612cdc565b6118b6565b6101b96102ae366004612bfb565b611a68565b6101b970506f6c69637944656661756c74466c6f7760781b81565b6102626102dc366004612cdc565b611bfa565b6101da6102ef366004612cdc565b611c9b565b61015a610302366004612cdc565b611e17565b6101da610315366004612cdc565b611eaf565b61032d610328366004612da0565b612120565b604080519315158452602084019290925290820152606001610167565b6101b9610358366004612dc1565b6124f9565b61032d61036b366004612da0565b6127cc565b6060600061037c612a9d565b60405163cef58f1360e01b815260048101869052602481018590529091506001600160a01b0382169063cef58f139060440160006040518083038186803b1580156103c657600080fd5b505afa1580156103da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612fc5565b60600151949350505050565b600081600061041b612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561046157600080fd5b505afa158015610475573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261049d9190810190612f47565b905060006104b66810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156104f857600080fd5b505afa15801561050c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105309190612cf4565b82602001511461055b5760405162461bcd60e51b815260040161055290613214565b60405180910390fd5b6000610565612ab6565b604051631b07b17f60e01b8152600481018990529091506001600160a01b03821690631b07b17f90602401602060405180830381600087803b1580156105aa57600080fd5b505af11580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e29190612c8e565b9550851561073d5760006105f4612a9d565b604051630b92aa5160e31b8152600481018a90529091506001600160a01b03821690635c95528890602401600060405180830381600087803b15801561063957600080fd5b505af115801561064d573d6000803e3d6000fd5b505060405163260a666160e11b8152600481018b90526001600160a01b0384169250634c14ccc29150602401600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505060405163a3f685f960e01b8152600481018b9052600092506001600160a01b038416915063a3f685f9906024016101206040518083038186803b1580156106ef57600080fd5b505afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610727919061303f565b9050610737898260200151612120565b50505050505b5050505050919050565b60606000610753612a9d565b604051637f22c2d960e01b815260048101869052602481018590529091506001600160a01b03821690637f22c2d99060440160006040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612e9c565b60008760006107e6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108689190810190612f47565b905060006108816810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156108c357600080fd5b505afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190612cf4565b82602001511461091d5760405162461bcd60e51b815260040161055290613214565b610925612ac8565b6001600160a01b0316632c933f228d8d8d8d8d8d8d6040518863ffffffff1660e01b815260040161095c9796959493929190613143565b602060405180830381600087803b15801561097657600080fd5b505af115801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae9190612cf4565b9c9b505050505050505050505050565b8060006109c9612ac8565b905060006109d5612ac8565b6001600160a01b0316639b04ed30846040518263ffffffff1660e01b8152600401610a0291815260200190565b60206040518083038186803b158015610a1a57600080fd5b505afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190612cf4565b90506000610a5e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae09190810190612f47565b90506000610af96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610b3b57600080fd5b505afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190612cf4565b826020015114610bd65760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5046442d3030353a5245515545535449445f50524f445543545f60448201526709a92a69a82a886960c31b6064820152608401610552565b610bde612ac8565b6001600160a01b03166340e58ee5886040518263ffffffff1660e01b8152600401610c0b91815260200190565b600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b5050505050505050505050565b826000610c51612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610c9657600080fd5b505afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce919061303f565b516002811115610cee57634e487b7160e01b600052602160045260246000fd5b1415610d3c5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b846000610d47612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dc99190810190612f47565b90506000610de26810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c9190612cf4565b826020015114610e7e5760405162461bcd60e51b815260040161055290613214565b6000610e88612a9d565b6040516330a73da560e01b8152600481018c9052602481018b9052604481018a90529091506001600160a01b038216906330a73da590606401600060405180830381600087803b158015610edb57600080fd5b505af1158015610eef573d6000803e3d6000fd5b5050505050505050505050505050565b806000610f0a612a9d565b9050600160405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610f4f57600080fd5b505afa158015610f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f87919061303f565b516002811115610fa757634e487b7160e01b600052602160045260246000fd5b14610ff45760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5046442d3030323a504f4c4943595f4e4f545f455850495245446044820152606401610552565b826000610fff612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110819190810190612f47565b9050600061109a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156110dc57600080fd5b505afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190612cf4565b8260200151146111365760405162461bcd60e51b815260040161055290613214565b6000611140612a9d565b6040516315b95b6560e31b8152600481018a90529091506001600160a01b0382169063adcadb2890602401600060405180830381600087803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b5050505060006111a7612ab6565b6040516367d42a8b60e01b8152600481018b90529091506001600160a01b038216906367d42a8b90602401600060405180830381600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b50505050505050505050505050565b81600061121a612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561126057600080fd5b505afa158015611274573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261129c9190810190612f47565b905060006112b56810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156112f757600080fd5b505afa15801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190612cf4565b8260200151146113515760405162461bcd60e51b815260040161055290613214565b600061135b612a9d565b604051634cda0de960e01b815260048101899052602481018890529091506001600160a01b03821690634cda0de990604401610c0b565b82600061139d612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156113e357600080fd5b505afa1580156113f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141f9190810190612f47565b905060006114386810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b29190612cf4565b8260200151146114d45760405162461bcd60e51b815260040161055290613214565b60006114de612a9d565b604051634e02c63f60e01b8152600481018a905260248101899052604481018890529091506001600160a01b03821690634e02c63f906064015b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050505050505050505050565b6000856000611561612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115e39190810190612f47565b905060006115fc6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116769190612cf4565b8260200151146116985760405162461bcd60e51b815260040161055290613214565b6116a0612a9d565b6001600160a01b031663db42b77b8b8b8b8b8b6040518663ffffffff1660e01b81526004016116d39594939291906131b0565b602060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117259190612cf4565b9a9950505050505050505050565b81600061173e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561178457600080fd5b505afa158015611798573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117c09190810190612f47565b905060006117d96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561181b57600080fd5b505afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118539190612cf4565b8260200151146118755760405162461bcd60e51b815260040161055290613214565b600061187f612a9d565b604051633f94edd160e11b815260048101899052602481018890529091506001600160a01b03821690637f29dba290604401610c0b565b8060006118c1612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561190757600080fd5b505afa15801561191b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119439190810190612f47565b9050600061195c6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561199e57600080fd5b505afa1580156119b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d69190612cf4565b8260200151146119f85760405162461bcd60e51b815260040161055290613214565b6000611a02612a9d565b60405163296d6c7d60e01b8152600481018890529091506001600160a01b0382169063296d6c7d906024015b600060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b50505050505050505050565b600080611a73612adb565b604051632b1c7f7360e01b81523360048201529091506000906001600160a01b03831690632b1c7f739060240160206040518083038186803b158015611ab857600080fd5b505afa158015611acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af09190612cf4565b90506000611afc612a9d565b6040516350c0a50d60e11b81529091506001600160a01b0382169063a1814a1a90611b31908e9086908d908d90600401613111565b602060405180830381600087803b158015611b4b57600080fd5b505af1158015611b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b839190612cf4565b6040516333c019b760e11b81529094506001600160a01b03821690636780336e90611bba9087908e908e908c908c906004016131b0565b600060405180830381600087803b158015611bd457600080fd5b505af1158015611be8573d6000803e3d6000fd5b50505050505050979650505050505050565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c5d57600080fd5b505afa158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190612bd8565b92915050565b806000611ca6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611cec57600080fd5b505afa158015611d00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d289190810190612f47565b90506000611d416810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015611d8357600080fd5b505afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190612cf4565b826020015114611ddd5760405162461bcd60e51b815260040161055290613214565b6000611de7612a9d565b60405163eb96cbed60e01b8152600481018890529091506001600160a01b0382169063eb96cbed90602401611a2e565b60606000611e23612a9d565b604051632f141bd960e21b8152600481018590529091506001600160a01b0382169063bc506f649060240160006040518083038186803b158015611e6657600080fd5b505afa158015611e7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ea29190810190612e9c565b606001519150505b919050565b806000611eba612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015611eff57600080fd5b505afa158015611f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f37919061303f565b516002811115611f5757634e487b7160e01b600052602160045260246000fd5b14611fa45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b826000611faf612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611ff557600080fd5b505afa158015612009573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120319190810190612f47565b9050600061204a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561208c57600080fd5b505afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190612cf4565b8260200151146120e65760405162461bcd60e51b815260040161055290613214565b60006120f0612a9d565b6040516308fc762760e31b8152600481018a90529091506001600160a01b038216906347e3b13890602401611518565b6000806000846000612130612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561217557600080fd5b505afa158015612189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ad919061303f565b5160028111156121cd57634e487b7160e01b600052602160045260246000fd5b141561221b5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b866000612226612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561226c57600080fd5b505afa158015612280573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122a89190810190612f47565b905060006122c16810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561230357600080fd5b505afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612cf4565b82602001511461235d5760405162461bcd60e51b815260040161055290613214565b6000612367612af2565b90506000612373612a9d565b6040516242104d60e31b8152600481018f9052602481018e90529091506001600160a01b03831690630210826890604401606060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f69190612ca8565b919c509a5098508a156124ea576001600160a01b03811663e3ebdea58e61241d8d8d61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801561245b57600080fd5b505af115801561246f573d6000803e3d6000fd5b50505050600061247d612ab6565b9050806001600160a01b031663021082688f8c6040518363ffffffff1660e01b81526004016124b6929190918252602082015260400190565b600060405180830381600087803b1580156124d057600080fd5b505af11580156124e4573d6000803e3d6000fd5b50505050505b50505050505050509250925092565b6000846000612506612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561254b57600080fd5b505afa15801561255f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612583919061303f565b5160028111156125a357634e487b7160e01b600052602160045260246000fd5b146125f05760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b8660006125fb612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561264157600080fd5b505afa158015612655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261267d9190810190612f47565b905060006126966810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156126d857600080fd5b505afa1580156126ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127109190612cf4565b8260200151146127325760405162461bcd60e51b815260040161055290613214565b61273a612a9d565b6001600160a01b031663ec9356688c8c8c8c6040518563ffffffff1660e01b815260040161276b9493929190613190565b602060405180830381600087803b15801561278557600080fd5b505af1158015612799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bd9190612cf4565b9b9a5050505050505050505050565b60008060008460006127dc612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561282257600080fd5b505afa158015612836573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261285e9190810190612f47565b905060006128776810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156128b957600080fd5b505afa1580156128cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f19190612cf4565b8260200151146129135760405162461bcd60e51b815260040161055290613214565b600061291d612af2565b60405163fe64372b60e01b8152600481018c9052602481018b90529091506001600160a01b0382169063fe64372b906044016040805180830381600087803b15801561296857600080fd5b505af115801561297c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a091906130c4565b909750955060006129af612a9d565b60405163fe64372b60e01b8152600481018d9052602481018c90529091506001600160a01b0382169063fe64372b90604401600060405180830381600087803b1580156129fb57600080fd5b505af1158015612a0f573d6000803e3d6000fd5b505050506000612a1d612ab6565b90506001600160a01b03811663fe64372b8d612a398c8c61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b158015612a7757600080fd5b505af1158015612a8b573d6000803e3d6000fd5b50505050505050505050509250925092565b6000612ab165506f6c69637960d01b611bfa565b905090565b6000612ab163141bdbdb60e21b611bfa565b6000612ab164517565727960d81b611bfa565b6000612ab16810dbdb5c1bdb995b9d60ba1b611bfa565b6000612ab167547265617375727960c01b611bfa565b80518015158114611eaa57600080fd5b60008083601f840112612b29578182fd5b50813567ffffffffffffffff811115612b40578182fd5b602083019150836020828501011115612b5857600080fd5b9250929050565b600082601f830112612b6f578081fd5b815167ffffffffffffffff811115612b8957612b896132e1565b612b9c601f8201601f191660200161325c565b818152846020838601011115612bb0578283fd5b612bc18260208301602087016132b1565b949350505050565b805160038110611eaa57600080fd5b600060208284031215612be9578081fd5b8151612bf4816132f7565b9392505050565b600080600080600080600060a0888a031215612c15578283fd5b8735612c20816132f7565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612c4a578485fd5b612c568b838c01612b18565b909650945060808a0135915080821115612c6e578384fd5b50612c7b8a828b01612b18565b989b979a50959850939692959293505050565b600060208284031215612c9f578081fd5b612bf482612b08565b600080600060608486031215612cbc578081fd5b612cc584612b08565b925060208401519150604084015190509250925092565b600060208284031215612ced578081fd5b5035919050565b600060208284031215612d05578081fd5b5051919050565b600080600080600080600060a0888a031215612d26578081fd5b87359650602088013567ffffffffffffffff80821115612d44578283fd5b612d508b838c01612b18565b909850965060408a0135915080821115612d68578283fd5b50612d758a828b01612b18565b9095509350506060880135612d89816132f7565b809250506080880135905092959891949750929550565b60008060408385031215612db2578182fd5b50508035926020909101359150565b60008060008060608587031215612dd6578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612dfa578283fd5b612e0687828801612b18565b95989497509550505050565b600080600060608486031215612e26578081fd5b505081359360208301359350604090920135919050565b600080600080600060808688031215612e54578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115612e7f578182fd5b612e8b88828901612b18565b969995985093965092949392505050565b600060208284031215612ead578081fd5b815167ffffffffffffffff80821115612ec4578283fd5b9083019060c08286031215612ed7578283fd5b612ee160c061325c565b8251612eec8161330f565b808252506020830151602082015260408301516040820152606083015182811115612f15578485fd5b612f2187828601612b5f565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612f58578081fd5b815167ffffffffffffffff80821115612f6f578283fd5b9083019060c08286031215612f82578283fd5b612f8c60c061325c565b8251612f97816132f7565b815260208381015190820152612faf60408401612bc9565b6040820152606083015182811115612f15578485fd5b600060208284031215612fd6578081fd5b815167ffffffffffffffff80821115612fed578283fd5b9083019060c08286031215613000578283fd5b61300a60c061325c565b8251815260208301516002811061301f578485fd5b602082015260408381015190820152606083015182811115612f15578485fd5b6000610120808385031215613052578182fd5b61305b8161325c565b905061306683612bc9565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080604083850312156130d6578182fd5b505080516020909101519092909150565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600060018060a01b0386168252846020830152606060408301526131396060830184866130e7565b9695505050505050565b600088825260a0602083015261315d60a08301888a6130e7565b82810360408401526131708187896130e7565b6001600160a01b0395909516606084015250506080015295945050505050565b6000858252846020830152606060408301526131396060830184866130e7565b6000868252856020830152846040830152608060608301526131d66080830184866130e7565b979650505050505050565b60006020825282518060208401526132008160408501602087016132b1565b601f01601f19169190910160400192915050565b60208082526028908201527f4552524f523a5046442d3030343a50524f4345535349445f50524f445543545f60408201526709a92a69a82a886960c31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613285576132856132e1565b604052919050565b600082198211156132ac57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156132cc5781810151838201526020016132b4565b838111156132db576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461330c57600080fd5b50565b6004811061330c57600080fdfea264697066735822122092c051776eb1683c4470104ec76b5b4902125ab9cd0e8ba206bb1da8cad8d51c64736f6c63430008020033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x33F2 CODESIZE SUB DUP1 PUSH3 0x33F2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x4A JUMP JUMPDEST PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH3 0x7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x5C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x73 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x3352 PUSH3 0xA0 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x240 ADD MSTORE PUSH2 0x1C13 ADD MSTORE PUSH2 0x3352 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F29DBA2 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xB75C7DC6 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xB75C7DC6 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0xC46DF94E EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0xC6441798 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0xFAE43D15 EQ PUSH2 0x34A JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x35D JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x27A JUMPI DUP1 PUSH4 0x8CC7D3D1 EQ PUSH2 0x28D JUMPI DUP1 PUSH4 0x93B8414A EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x2B3 JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x2CE JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x30A73DA5 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x39C79E0C EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x781D7846 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x23B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x10B96080 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x22F86E7F EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x2C933F22 EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x3015394C EQ PUSH2 0x1C7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x370 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x31E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x183 PUSH2 0x17E CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x1A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x747 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x1B4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D0C JUMP JUMPDEST PUSH2 0x7D9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x1D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x9BE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DA PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2E12 JUMP JUMPDEST PUSH2 0xC46 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x1FD CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0xEFF JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x120F JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E12 JUMP JUMPDEST PUSH2 0x1392 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E3D JUMP JUMPDEST PUSH2 0x1554 JUMP JUMPDEST PUSH2 0x262 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x288 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x1733 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x29B CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x18B6 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x2AE CALLDATASIZE PUSH1 0x4 PUSH2 0x2BFB JUMP JUMPDEST PUSH2 0x1A68 JUMP JUMPDEST PUSH2 0x1B9 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH2 0x262 PUSH2 0x2DC CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1BFA JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x2EF CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1C9B JUMP JUMPDEST PUSH2 0x15A PUSH2 0x302 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1E17 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1EAF JUMP JUMPDEST PUSH2 0x32D PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x2120 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x358 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DC1 JUMP JUMPDEST PUSH2 0x24F9 JUMP JUMPDEST PUSH2 0x32D PUSH2 0x36B CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x27CC JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x37C PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCEF58F13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xCEF58F13 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x402 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2FC5 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 PUSH2 0x41B PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x475 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x49D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4B6 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x50C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x530 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x565 PUSH2 0x2AB6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5E2 SWAP2 SWAP1 PUSH2 0x2C8E JUMP JUMPDEST SWAP6 POP DUP6 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 PUSH2 0x5F4 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB92AA51 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x5C955288 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x639 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x64D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x260A6661 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH4 0x4C14CCC2 SWAP2 POP PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x0 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 POP PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x703 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x727 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST SWAP1 POP PUSH2 0x737 DUP10 DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x2120 JUMP JUMPDEST POP POP POP POP POP JUMPDEST POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x753 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x79D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x402 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x0 PUSH2 0x7E6 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x82C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x840 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x868 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x881 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8FB SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x91D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x925 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2C933F22 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x95C SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3143 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x98A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AE SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x9C9 PUSH2 0x2AC8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9D5 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9B04ED30 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA02 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA52 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA5E PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xAE0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xAF9 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB4F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB73 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0xBD6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030353A5245515545535449445F50524F445543545F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x9A92A69A82A8869 PUSH1 0xC3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x552 JUMP JUMPDEST PUSH2 0xBDE PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x40E58EE5 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0B SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0xC51 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCCE SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCEE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xD3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030333A504F4C4943595F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH2 0xD47 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xDC9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xDE2 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE5C SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0xE7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE88 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0xF0A PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF87 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFA7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030323A504F4C4943595F4E4F545F45585049524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0xFFF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1045 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1059 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1081 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x109A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1114 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1136 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1140 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x15B95B65 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xADCADB28 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1199 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x11A7 PUSH2 0x2AB6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x67D42A8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x67D42A8B SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1200 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 PUSH2 0x121A PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1274 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x129C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x12B5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x130B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x132F SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1351 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x135B PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD PUSH2 0xC0B JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0x139D PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x141F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1438 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x148E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14B2 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x14D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14DE PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1532 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1546 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH1 0x0 PUSH2 0x1561 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x15E3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x15FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1652 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1676 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1698 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x16A0 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDB42B77B DUP12 DUP12 DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16D3 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x31B0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1701 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1725 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 PUSH2 0x173E PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1798 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x17C0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17D9 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x181B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x182F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1853 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1875 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x187F PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0xC0B JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x18C1 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x191B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1943 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x195C PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x199E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19D6 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x19F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A02 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296D6C7D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x296D6C7D SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1A73 PUSH2 0x2ADB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ACC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1AF0 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AFC PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x50C0A50D PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA1814A1A SWAP1 PUSH2 0x1B31 SWAP1 DUP15 SWAP1 DUP7 SWAP1 DUP14 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0x3111 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B83 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33C019B7 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6780336E SWAP1 PUSH2 0x1BBA SWAP1 DUP8 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x31B0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C71 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C95 SWAP2 SWAP1 PUSH2 0x2BD8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x1CA6 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D00 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1D28 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D41 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D97 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DBB SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1DDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DE7 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEB96CBED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xEB96CBED SWAP1 PUSH1 0x24 ADD PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1E23 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1EA2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x1EBA PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F13 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F37 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1F57 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1FA4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0x1FAF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2009 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2031 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x204A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20C4 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x20E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20F0 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8FC7627 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x47E3B138 SWAP1 PUSH1 0x24 ADD PUSH2 0x1518 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x2130 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2189 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21AD SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x21CD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x221B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030333A504F4C4943595F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP7 PUSH1 0x0 PUSH2 0x2226 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x226C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2280 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x22A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x22C1 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2317 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x233B SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x235D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2367 PUSH2 0x2AF2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2373 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x42104D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x2108268 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23F6 SWAP2 SWAP1 PUSH2 0x2CA8 JUMP JUMPDEST SWAP2 SWAP13 POP SWAP11 POP SWAP9 POP DUP11 ISZERO PUSH2 0x24EA JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH4 0xE3EBDEA5 DUP15 PUSH2 0x241D DUP14 DUP14 PUSH2 0x328D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x245B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x246F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x247D PUSH2 0x2AB6 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2108268 DUP16 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24B6 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x2506 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x254B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x255F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2583 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x25A3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x25F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP7 PUSH1 0x0 PUSH2 0x25FB PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x267D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2696 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2710 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x2732 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x273A PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEC935668 DUP13 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x276B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3190 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2785 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2799 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27BD SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x27DC PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x285E SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2877 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28F1 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x2913 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x291D PUSH2 0x2AF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2968 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x297C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x29A0 SWAP2 SWAP1 PUSH2 0x30C4 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x0 PUSH2 0x29AF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x2A1D PUSH2 0x2AB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH4 0xFE64372B DUP14 PUSH2 0x2A39 DUP13 DUP13 PUSH2 0x328D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1BFA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1BFA JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1EAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2B29 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B40 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2B58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2B6F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B89 JUMPI PUSH2 0x2B89 PUSH2 0x32E1 JUMP JUMPDEST PUSH2 0x2B9C PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x325C JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2BB0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2BC1 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x32B1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1EAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BE9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2BF4 DUP2 PUSH2 0x32F7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2C15 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH2 0x2C20 DUP2 PUSH2 0x32F7 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C4A JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2C56 DUP12 DUP4 DUP13 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2C6E JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2C7B DUP11 DUP3 DUP12 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C9F JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2BF4 DUP3 PUSH2 0x2B08 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2CBC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2CC5 DUP5 PUSH2 0x2B08 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CED JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D05 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2D26 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2D44 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2D50 DUP12 DUP4 DUP13 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D68 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2D75 DUP11 DUP3 DUP12 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH2 0x2D89 DUP2 PUSH2 0x32F7 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2DB2 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2DD6 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DFA JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2E06 DUP8 DUP3 DUP9 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2E26 JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2E54 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2E7F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2E8B DUP9 DUP3 DUP10 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EAD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2EC4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2ED7 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2EE1 PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2EEC DUP2 PUSH2 0x330F JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2F21 DUP8 DUP3 DUP7 ADD PUSH2 0x2B5F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F58 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F6F JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2F82 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2F8C PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2F97 DUP2 PUSH2 0x32F7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2FAF PUSH1 0x40 DUP5 ADD PUSH2 0x2BC9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FD6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2FED JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3000 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x300A PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x301F JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3052 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x305B DUP2 PUSH2 0x325C JUMP JUMPDEST SWAP1 POP PUSH2 0x3066 DUP4 PUSH2 0x2BC9 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x30D6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3139 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP9 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x315D PUSH1 0xA0 DUP4 ADD DUP9 DUP11 PUSH2 0x30E7 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3170 DUP2 DUP8 DUP10 PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3139 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31D6 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3200 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x32B1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030343A50524F4345535349445F50524F445543545F PUSH1 0x40 DUP3 ADD MSTORE PUSH8 0x9A92A69A82A8869 PUSH1 0xC3 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3285 JUMPI PUSH2 0x3285 PUSH2 0x32E1 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x32AC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x32CC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x32B4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x32DB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x330C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x330C JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 0xC0 MLOAD PUSH24 0x6EB1683C4470104EC76B5B4902125AB9CD0E8BA206BB1DA8 0xCA 0xD8 0xD5 SHR PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"565:10634:72:-:0;;;2580:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1300:31:91;;-1:-1:-1;;;;;;1300:31:91;;;565:10634:72;;14:310:103;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:103;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:103:o;:::-;565:10634:72;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:19438:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"71:107:103","statements":[{"nodeType":"YulAssignment","src":"81:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"96:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"90:5:103"},"nodeType":"YulFunctionCall","src":"90:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:103"}]},{"body":{"nodeType":"YulBlock","src":"156:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"165:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"168:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"158:6:103"},"nodeType":"YulFunctionCall","src":"158:12:103"},"nodeType":"YulExpressionStatement","src":"158:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"125:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"146:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"139:6:103"},"nodeType":"YulFunctionCall","src":"139:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"122:2:103"},"nodeType":"YulFunctionCall","src":"122:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"115:6:103"},"nodeType":"YulFunctionCall","src":"115:40:103"},"nodeType":"YulIf","src":"112:2:103"}]},"name":"abi_decode_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"50:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"61:5:103","type":""}],"src":"14:164:103"},{"body":{"nodeType":"YulBlock","src":"255:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"304:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"313:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"323:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"306:6:103"},"nodeType":"YulFunctionCall","src":"306:26:103"},"nodeType":"YulExpressionStatement","src":"306:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"283:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"291:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"298:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"268:6:103"},"nodeType":"YulFunctionCall","src":"268:35:103"},"nodeType":"YulIf","src":"265:2:103"},{"nodeType":"YulAssignment","src":"343:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"366:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"353:12:103"},"nodeType":"YulFunctionCall","src":"353:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"343:6:103"}]},{"body":{"nodeType":"YulBlock","src":"416:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"425:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"435:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"418:6:103"},"nodeType":"YulFunctionCall","src":"418:26:103"},"nodeType":"YulExpressionStatement","src":"418:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"396:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"385:2:103"},"nodeType":"YulFunctionCall","src":"385:30:103"},"nodeType":"YulIf","src":"382:2:103"},{"nodeType":"YulAssignment","src":"455:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"471:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"479:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"467:3:103"},"nodeType":"YulFunctionCall","src":"467:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"455:8:103"}]},{"body":{"nodeType":"YulBlock","src":"536:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"545:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"548:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"538:6:103"},"nodeType":"YulFunctionCall","src":"538:12:103"},"nodeType":"YulExpressionStatement","src":"538:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"507:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"515:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"503:3:103"},"nodeType":"YulFunctionCall","src":"503:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"524:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"499:3:103"},"nodeType":"YulFunctionCall","src":"499:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"531:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"496:2:103"},"nodeType":"YulFunctionCall","src":"496:39:103"},"nodeType":"YulIf","src":"493:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"218:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"226:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"234:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"244:6:103","type":""}],"src":"183:375:103"},{"body":{"nodeType":"YulBlock","src":"626:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"675:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"684:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"691:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"677:6:103"},"nodeType":"YulFunctionCall","src":"677:20:103"},"nodeType":"YulExpressionStatement","src":"677:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"654:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"662:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"650:3:103"},"nodeType":"YulFunctionCall","src":"650:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"669:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"646:3:103"},"nodeType":"YulFunctionCall","src":"646:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"639:6:103"},"nodeType":"YulFunctionCall","src":"639:35:103"},"nodeType":"YulIf","src":"636:2:103"},{"nodeType":"YulVariableDeclaration","src":"708:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"724:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"718:5:103"},"nodeType":"YulFunctionCall","src":"718:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"712:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"770:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"772:16:103"},"nodeType":"YulFunctionCall","src":"772:18:103"},"nodeType":"YulExpressionStatement","src":"772:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"746:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"750:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"743:2:103"},"nodeType":"YulFunctionCall","src":"743:26:103"},"nodeType":"YulIf","src":"740:2:103"},{"nodeType":"YulVariableDeclaration","src":"801:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"844:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"848:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"840:3:103"},"nodeType":"YulFunctionCall","src":"840:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"859:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"855:3:103"},"nodeType":"YulFunctionCall","src":"855:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"836:3:103"},"nodeType":"YulFunctionCall","src":"836:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"832:3:103"},"nodeType":"YulFunctionCall","src":"832:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"816:15:103"},"nodeType":"YulFunctionCall","src":"816:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"805:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"887:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"896:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"880:6:103"},"nodeType":"YulFunctionCall","src":"880:19:103"},"nodeType":"YulExpressionStatement","src":"880:19:103"},{"body":{"nodeType":"YulBlock","src":"947:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"956:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"963:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"949:6:103"},"nodeType":"YulFunctionCall","src":"949:20:103"},"nodeType":"YulExpressionStatement","src":"949:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"922:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"918:3:103"},"nodeType":"YulFunctionCall","src":"918:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"935:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"914:3:103"},"nodeType":"YulFunctionCall","src":"914:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"942:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"911:2:103"},"nodeType":"YulFunctionCall","src":"911:35:103"},"nodeType":"YulIf","src":"908:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1006:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1014:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1002:3:103"},"nodeType":"YulFunctionCall","src":"1002:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1025:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"1034:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1021:3:103"},"nodeType":"YulFunctionCall","src":"1021:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1041:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"980:21:103"},"nodeType":"YulFunctionCall","src":"980:64:103"},"nodeType":"YulExpressionStatement","src":"980:64:103"},{"nodeType":"YulAssignment","src":"1053:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"1062:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1053:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"600:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"608:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"616:5:103","type":""}],"src":"563:512:103"},{"body":{"nodeType":"YulBlock","src":"1153:87:103","statements":[{"nodeType":"YulAssignment","src":"1163:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1178:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1172:5:103"},"nodeType":"YulFunctionCall","src":"1172:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1163:5:103"}]},{"body":{"nodeType":"YulBlock","src":"1218:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1227:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1230:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1220:6:103"},"nodeType":"YulFunctionCall","src":"1220:12:103"},"nodeType":"YulExpressionStatement","src":"1220:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1207:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1214:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1204:2:103"},"nodeType":"YulFunctionCall","src":"1204:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1197:6:103"},"nodeType":"YulFunctionCall","src":"1197:20:103"},"nodeType":"YulIf","src":"1194:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1132:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1143:5:103","type":""}],"src":"1080:160:103"},{"body":{"nodeType":"YulBlock","src":"1326:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1372:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1381:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1389:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1374:6:103"},"nodeType":"YulFunctionCall","src":"1374:22:103"},"nodeType":"YulExpressionStatement","src":"1374:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1347:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1356:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1343:3:103"},"nodeType":"YulFunctionCall","src":"1343:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1368:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1339:3:103"},"nodeType":"YulFunctionCall","src":"1339:32:103"},"nodeType":"YulIf","src":"1336:2:103"},{"nodeType":"YulVariableDeclaration","src":"1407:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1426:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1420:5:103"},"nodeType":"YulFunctionCall","src":"1420:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1411:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1470:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1445:24:103"},"nodeType":"YulFunctionCall","src":"1445:31:103"},"nodeType":"YulExpressionStatement","src":"1445:31:103"},{"nodeType":"YulAssignment","src":"1485:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1495:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1485:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1292:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1303:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1315:6:103","type":""}],"src":"1245:261:103"},{"body":{"nodeType":"YulBlock","src":"1687:844:103","statements":[{"body":{"nodeType":"YulBlock","src":"1734:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1743:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1751:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1736:6:103"},"nodeType":"YulFunctionCall","src":"1736:22:103"},"nodeType":"YulExpressionStatement","src":"1736:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1708:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1717:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1704:3:103"},"nodeType":"YulFunctionCall","src":"1704:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1729:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1700:3:103"},"nodeType":"YulFunctionCall","src":"1700:33:103"},"nodeType":"YulIf","src":"1697:2:103"},{"nodeType":"YulVariableDeclaration","src":"1769:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1795:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1782:12:103"},"nodeType":"YulFunctionCall","src":"1782:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1773:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1839:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1814:24:103"},"nodeType":"YulFunctionCall","src":"1814:31:103"},"nodeType":"YulExpressionStatement","src":"1814:31:103"},{"nodeType":"YulAssignment","src":"1854:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1864:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1854:6:103"}]},{"nodeType":"YulAssignment","src":"1878:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1905:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1916:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1901:3:103"},"nodeType":"YulFunctionCall","src":"1901:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1888:12:103"},"nodeType":"YulFunctionCall","src":"1888:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1878:6:103"}]},{"nodeType":"YulAssignment","src":"1929:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1956:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1967:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1952:3:103"},"nodeType":"YulFunctionCall","src":"1952:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1939:12:103"},"nodeType":"YulFunctionCall","src":"1939:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1929:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1980:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2011:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2022:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2007:3:103"},"nodeType":"YulFunctionCall","src":"2007:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1994:12:103"},"nodeType":"YulFunctionCall","src":"1994:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1984:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2035:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2045:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2039:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2090:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2099:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"2107:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2092:6:103"},"nodeType":"YulFunctionCall","src":"2092:22:103"},"nodeType":"YulExpressionStatement","src":"2092:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2078:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2086:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2075:2:103"},"nodeType":"YulFunctionCall","src":"2075:14:103"},"nodeType":"YulIf","src":"2072:2:103"},{"nodeType":"YulVariableDeclaration","src":"2125:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2181:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2192:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2177:3:103"},"nodeType":"YulFunctionCall","src":"2177:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2201:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2151:25:103"},"nodeType":"YulFunctionCall","src":"2151:58:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"2129:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"2139:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2218:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2228:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2218:6:103"}]},{"nodeType":"YulAssignment","src":"2245:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"2255:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2245:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2272:49:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2288:12:103"},"nodeType":"YulFunctionCall","src":"2288:33:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2276:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2350:26:103","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"2359:6:103"},{"name":"value5","nodeType":"YulIdentifier","src":"2367:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2352:6:103"},"nodeType":"YulFunctionCall","src":"2352:22:103"},"nodeType":"YulExpressionStatement","src":"2352:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2336:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2346:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2333:2:103"},"nodeType":"YulFunctionCall","src":"2333:16:103"},"nodeType":"YulIf","src":"2330:2:103"},{"nodeType":"YulVariableDeclaration","src":"2385:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2441:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2452:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2437:3:103"},"nodeType":"YulFunctionCall","src":"2437:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2463:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2411:25:103"},"nodeType":"YulFunctionCall","src":"2411:60:103"},"variables":[{"name":"value5_1","nodeType":"YulTypedName","src":"2389:8:103","type":""},{"name":"value6_1","nodeType":"YulTypedName","src":"2399:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2480:18:103","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"2490:8:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2480:6:103"}]},{"nodeType":"YulAssignment","src":"2507:18:103","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"2517:8:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"2507:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1605:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1616:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1628:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1636:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1644:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1652:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1660:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1668:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"1676:6:103","type":""}],"src":"1511:1020:103"},{"body":{"nodeType":"YulBlock","src":"2614:134:103","statements":[{"body":{"nodeType":"YulBlock","src":"2660:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2669:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2677:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2662:6:103"},"nodeType":"YulFunctionCall","src":"2662:22:103"},"nodeType":"YulExpressionStatement","src":"2662:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2635:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2644:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2631:3:103"},"nodeType":"YulFunctionCall","src":"2631:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2656:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2627:3:103"},"nodeType":"YulFunctionCall","src":"2627:32:103"},"nodeType":"YulIf","src":"2624:2:103"},{"nodeType":"YulAssignment","src":"2695:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2732:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"2705:26:103"},"nodeType":"YulFunctionCall","src":"2705:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2695:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2580:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2591:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2603:6:103","type":""}],"src":"2536:212:103"},{"body":{"nodeType":"YulBlock","src":"2865:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"2911:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2920:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2928:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2913:6:103"},"nodeType":"YulFunctionCall","src":"2913:22:103"},"nodeType":"YulExpressionStatement","src":"2913:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2886:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2895:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2882:3:103"},"nodeType":"YulFunctionCall","src":"2882:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2907:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2878:3:103"},"nodeType":"YulFunctionCall","src":"2878:32:103"},"nodeType":"YulIf","src":"2875:2:103"},{"nodeType":"YulAssignment","src":"2946:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2983:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"2956:26:103"},"nodeType":"YulFunctionCall","src":"2956:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2946:6:103"}]},{"nodeType":"YulAssignment","src":"3002:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3022:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3033:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3018:3:103"},"nodeType":"YulFunctionCall","src":"3018:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3012:5:103"},"nodeType":"YulFunctionCall","src":"3012:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3002:6:103"}]},{"nodeType":"YulAssignment","src":"3046:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3066:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3077:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3062:3:103"},"nodeType":"YulFunctionCall","src":"3062:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3056:5:103"},"nodeType":"YulFunctionCall","src":"3056:25:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3046:6:103"}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2815:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2826:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2838:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2846:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2854:6:103","type":""}],"src":"2753:334:103"},{"body":{"nodeType":"YulBlock","src":"3162:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3208:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3217:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3225:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3210:6:103"},"nodeType":"YulFunctionCall","src":"3210:22:103"},"nodeType":"YulExpressionStatement","src":"3210:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3183:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3192:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3179:3:103"},"nodeType":"YulFunctionCall","src":"3179:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3204:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3175:3:103"},"nodeType":"YulFunctionCall","src":"3175:32:103"},"nodeType":"YulIf","src":"3172:2:103"},{"nodeType":"YulAssignment","src":"3243:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3266:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3253:12:103"},"nodeType":"YulFunctionCall","src":"3253:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3243:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3128:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3139:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3151:6:103","type":""}],"src":"3092:190:103"},{"body":{"nodeType":"YulBlock","src":"3368:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"3414:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3423:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3431:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3416:6:103"},"nodeType":"YulFunctionCall","src":"3416:22:103"},"nodeType":"YulExpressionStatement","src":"3416:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3389:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3398:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3385:3:103"},"nodeType":"YulFunctionCall","src":"3385:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3410:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3381:3:103"},"nodeType":"YulFunctionCall","src":"3381:32:103"},"nodeType":"YulIf","src":"3378:2:103"},{"nodeType":"YulAssignment","src":"3449:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3465:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3459:5:103"},"nodeType":"YulFunctionCall","src":"3459:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3449:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3334:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3345:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3357:6:103","type":""}],"src":"3287:194:103"},{"body":{"nodeType":"YulBlock","src":"3663:844:103","statements":[{"body":{"nodeType":"YulBlock","src":"3710:26:103","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"3719:6:103"},{"name":"value6","nodeType":"YulIdentifier","src":"3727:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3712:6:103"},"nodeType":"YulFunctionCall","src":"3712:22:103"},"nodeType":"YulExpressionStatement","src":"3712:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3684:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3693:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3680:3:103"},"nodeType":"YulFunctionCall","src":"3680:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3705:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3676:3:103"},"nodeType":"YulFunctionCall","src":"3676:33:103"},"nodeType":"YulIf","src":"3673:2:103"},{"nodeType":"YulAssignment","src":"3745:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3768:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3755:12:103"},"nodeType":"YulFunctionCall","src":"3755:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3745:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3787:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3829:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3814:3:103"},"nodeType":"YulFunctionCall","src":"3814:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3801:12:103"},"nodeType":"YulFunctionCall","src":"3801:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3791:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3842:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3852:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3846:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3897:26:103","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"3906:6:103"},{"name":"value6","nodeType":"YulIdentifier","src":"3914:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3899:6:103"},"nodeType":"YulFunctionCall","src":"3899:22:103"},"nodeType":"YulExpressionStatement","src":"3899:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3885:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3893:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3882:2:103"},"nodeType":"YulFunctionCall","src":"3882:14:103"},"nodeType":"YulIf","src":"3879:2:103"},{"nodeType":"YulVariableDeclaration","src":"3932:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3988:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3999:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3984:3:103"},"nodeType":"YulFunctionCall","src":"3984:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4008:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"3958:25:103"},"nodeType":"YulFunctionCall","src":"3958:58:103"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"3936:8:103","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"3946:8:103","type":""}]},{"nodeType":"YulAssignment","src":"4025:18:103","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"4035:8:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4025:6:103"}]},{"nodeType":"YulAssignment","src":"4052:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"4062:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4052:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"4079:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4123:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4108:3:103"},"nodeType":"YulFunctionCall","src":"4108:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4095:12:103"},"nodeType":"YulFunctionCall","src":"4095:32:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4083:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4156:26:103","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"4165:6:103"},{"name":"value6","nodeType":"YulIdentifier","src":"4173:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4158:6:103"},"nodeType":"YulFunctionCall","src":"4158:22:103"},"nodeType":"YulExpressionStatement","src":"4158:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4142:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4152:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4139:2:103"},"nodeType":"YulFunctionCall","src":"4139:16:103"},"nodeType":"YulIf","src":"4136:2:103"},{"nodeType":"YulVariableDeclaration","src":"4191:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4247:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4258:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4243:3:103"},"nodeType":"YulFunctionCall","src":"4243:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4269:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"4217:25:103"},"nodeType":"YulFunctionCall","src":"4217:60:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"4195:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"4205:8:103","type":""}]},{"nodeType":"YulAssignment","src":"4286:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"4296:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4286:6:103"}]},{"nodeType":"YulAssignment","src":"4313:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"4323:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4313:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"4340:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4370:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4381:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4366:3:103"},"nodeType":"YulFunctionCall","src":"4366:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4353:12:103"},"nodeType":"YulFunctionCall","src":"4353:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4344:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4419:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4394:24:103"},"nodeType":"YulFunctionCall","src":"4394:31:103"},"nodeType":"YulExpressionStatement","src":"4394:31:103"},{"nodeType":"YulAssignment","src":"4434:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4444:5:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"4434:6:103"}]},{"nodeType":"YulAssignment","src":"4458:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4485:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4496:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4481:3:103"},"nodeType":"YulFunctionCall","src":"4481:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4468:12:103"},"nodeType":"YulFunctionCall","src":"4468:33:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"4458:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_string_calldata_ptrt_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3581:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3592:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3604:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3612:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3620:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3628:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3636:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"3644:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"3652:6:103","type":""}],"src":"3486:1021:103"},{"body":{"nodeType":"YulBlock","src":"4599:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"4645:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4654:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4662:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:22:103"},"nodeType":"YulExpressionStatement","src":"4647:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4620:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4629:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4616:3:103"},"nodeType":"YulFunctionCall","src":"4616:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4641:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4612:3:103"},"nodeType":"YulFunctionCall","src":"4612:32:103"},"nodeType":"YulIf","src":"4609:2:103"},{"nodeType":"YulAssignment","src":"4680:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4703:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4690:12:103"},"nodeType":"YulFunctionCall","src":"4690:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4680:6:103"}]},{"nodeType":"YulAssignment","src":"4722:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4749:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4760:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4745:3:103"},"nodeType":"YulFunctionCall","src":"4745:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4732:12:103"},"nodeType":"YulFunctionCall","src":"4732:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4722:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4557:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4568:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4580:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4588:6:103","type":""}],"src":"4512:258:103"},{"body":{"nodeType":"YulBlock","src":"4898:442:103","statements":[{"body":{"nodeType":"YulBlock","src":"4944:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4953:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4961:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4946:6:103"},"nodeType":"YulFunctionCall","src":"4946:22:103"},"nodeType":"YulExpressionStatement","src":"4946:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4919:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4928:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4915:3:103"},"nodeType":"YulFunctionCall","src":"4915:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4940:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4911:3:103"},"nodeType":"YulFunctionCall","src":"4911:32:103"},"nodeType":"YulIf","src":"4908:2:103"},{"nodeType":"YulAssignment","src":"4979:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5002:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4989:12:103"},"nodeType":"YulFunctionCall","src":"4989:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4979:6:103"}]},{"nodeType":"YulAssignment","src":"5021:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5048:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5059:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5044:3:103"},"nodeType":"YulFunctionCall","src":"5044:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5031:12:103"},"nodeType":"YulFunctionCall","src":"5031:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5021:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5072:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5103:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5114:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5099:3:103"},"nodeType":"YulFunctionCall","src":"5099:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5086:12:103"},"nodeType":"YulFunctionCall","src":"5086:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5076:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5161:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5170:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5178:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5163:6:103"},"nodeType":"YulFunctionCall","src":"5163:22:103"},"nodeType":"YulExpressionStatement","src":"5163:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5133:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5141:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5130:2:103"},"nodeType":"YulFunctionCall","src":"5130:30:103"},"nodeType":"YulIf","src":"5127:2:103"},{"nodeType":"YulVariableDeclaration","src":"5196:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5252:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5263:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5248:3:103"},"nodeType":"YulFunctionCall","src":"5248:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5272:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"5222:25:103"},"nodeType":"YulFunctionCall","src":"5222:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"5200:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"5210:8:103","type":""}]},{"nodeType":"YulAssignment","src":"5289:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"5299:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5289:6:103"}]},{"nodeType":"YulAssignment","src":"5316:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"5326:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5316:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4840:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4851:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4863:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4871:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4879:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4887:6:103","type":""}],"src":"4775:565:103"},{"body":{"nodeType":"YulBlock","src":"5449:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"5495:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5504:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5512:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5497:6:103"},"nodeType":"YulFunctionCall","src":"5497:22:103"},"nodeType":"YulExpressionStatement","src":"5497:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5470:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5479:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5466:3:103"},"nodeType":"YulFunctionCall","src":"5466:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5491:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5462:3:103"},"nodeType":"YulFunctionCall","src":"5462:32:103"},"nodeType":"YulIf","src":"5459:2:103"},{"nodeType":"YulAssignment","src":"5530:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5553:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5540:12:103"},"nodeType":"YulFunctionCall","src":"5540:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5530:6:103"}]},{"nodeType":"YulAssignment","src":"5572:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5599:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5610:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5595:3:103"},"nodeType":"YulFunctionCall","src":"5595:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5582:12:103"},"nodeType":"YulFunctionCall","src":"5582:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5572:6:103"}]},{"nodeType":"YulAssignment","src":"5623:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5650:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5661:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5646:3:103"},"nodeType":"YulFunctionCall","src":"5646:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5633:12:103"},"nodeType":"YulFunctionCall","src":"5633:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5623:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5399:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5410:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5422:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5430:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5438:6:103","type":""}],"src":"5345:326:103"},{"body":{"nodeType":"YulBlock","src":"5816:494:103","statements":[{"body":{"nodeType":"YulBlock","src":"5863:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5872:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5880:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5865:6:103"},"nodeType":"YulFunctionCall","src":"5865:22:103"},"nodeType":"YulExpressionStatement","src":"5865:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5837:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5846:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5833:3:103"},"nodeType":"YulFunctionCall","src":"5833:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5858:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5829:3:103"},"nodeType":"YulFunctionCall","src":"5829:33:103"},"nodeType":"YulIf","src":"5826:2:103"},{"nodeType":"YulAssignment","src":"5898:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5921:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5908:12:103"},"nodeType":"YulFunctionCall","src":"5908:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5898:6:103"}]},{"nodeType":"YulAssignment","src":"5940:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5967:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5978:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5963:3:103"},"nodeType":"YulFunctionCall","src":"5963:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5950:12:103"},"nodeType":"YulFunctionCall","src":"5950:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5940:6:103"}]},{"nodeType":"YulAssignment","src":"5991:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6018:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6029:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6014:3:103"},"nodeType":"YulFunctionCall","src":"6014:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6001:12:103"},"nodeType":"YulFunctionCall","src":"6001:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5991:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6042:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6073:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6084:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6069:3:103"},"nodeType":"YulFunctionCall","src":"6069:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6056:12:103"},"nodeType":"YulFunctionCall","src":"6056:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6046:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6131:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6140:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6148:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6133:6:103"},"nodeType":"YulFunctionCall","src":"6133:22:103"},"nodeType":"YulExpressionStatement","src":"6133:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6103:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6111:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6100:2:103"},"nodeType":"YulFunctionCall","src":"6100:30:103"},"nodeType":"YulIf","src":"6097:2:103"},{"nodeType":"YulVariableDeclaration","src":"6166:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6222:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6233:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6218:3:103"},"nodeType":"YulFunctionCall","src":"6218:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6242:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"6192:25:103"},"nodeType":"YulFunctionCall","src":"6192:58:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"6170:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"6180:8:103","type":""}]},{"nodeType":"YulAssignment","src":"6259:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"6269:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6259:6:103"}]},{"nodeType":"YulAssignment","src":"6286:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"6296:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6286:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5750:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5761:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5773:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5781:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5789:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5797:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5805:6:103","type":""}],"src":"5676:634:103"},{"body":{"nodeType":"YulBlock","src":"6425:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"6471:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6480:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6488:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6473:6:103"},"nodeType":"YulFunctionCall","src":"6473:22:103"},"nodeType":"YulExpressionStatement","src":"6473:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6446:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6455:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6442:3:103"},"nodeType":"YulFunctionCall","src":"6442:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6467:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6438:3:103"},"nodeType":"YulFunctionCall","src":"6438:32:103"},"nodeType":"YulIf","src":"6435:2:103"},{"nodeType":"YulVariableDeclaration","src":"6506:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6526:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6520:5:103"},"nodeType":"YulFunctionCall","src":"6520:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6510:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6545:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6555:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6549:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6600:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6609:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6617:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6602:6:103"},"nodeType":"YulFunctionCall","src":"6602:22:103"},"nodeType":"YulExpressionStatement","src":"6602:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6588:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6596:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6585:2:103"},"nodeType":"YulFunctionCall","src":"6585:14:103"},"nodeType":"YulIf","src":"6582:2:103"},{"nodeType":"YulVariableDeclaration","src":"6635:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6649:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6660:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6645:3:103"},"nodeType":"YulFunctionCall","src":"6645:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6639:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6707:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6716:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6724:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6709:6:103"},"nodeType":"YulFunctionCall","src":"6709:22:103"},"nodeType":"YulExpressionStatement","src":"6709:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6687:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6696:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6683:3:103"},"nodeType":"YulFunctionCall","src":"6683:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"6701:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6679:3:103"},"nodeType":"YulFunctionCall","src":"6679:27:103"},"nodeType":"YulIf","src":"6676:2:103"},{"nodeType":"YulVariableDeclaration","src":"6742:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6771:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6755:15:103"},"nodeType":"YulFunctionCall","src":"6755:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6746:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6785:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6806:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6800:5:103"},"nodeType":"YulFunctionCall","src":"6800:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6789:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6857:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"6818:38:103"},"nodeType":"YulFunctionCall","src":"6818:47:103"},"nodeType":"YulExpressionStatement","src":"6818:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6881:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"6888:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6874:6:103"},"nodeType":"YulFunctionCall","src":"6874:22:103"},"nodeType":"YulExpressionStatement","src":"6874:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6916:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6923:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6912:3:103"},"nodeType":"YulFunctionCall","src":"6912:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6938:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6942:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6934:3:103"},"nodeType":"YulFunctionCall","src":"6934:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6928:5:103"},"nodeType":"YulFunctionCall","src":"6928:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6905:6:103"},"nodeType":"YulFunctionCall","src":"6905:42:103"},"nodeType":"YulExpressionStatement","src":"6905:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6967:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6974:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6963:3:103"},"nodeType":"YulFunctionCall","src":"6963:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6989:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6993:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6985:3:103"},"nodeType":"YulFunctionCall","src":"6985:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6979:5:103"},"nodeType":"YulFunctionCall","src":"6979:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6956:6:103"},"nodeType":"YulFunctionCall","src":"6956:42:103"},"nodeType":"YulExpressionStatement","src":"6956:42:103"},{"nodeType":"YulVariableDeclaration","src":"7007:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7033:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7037:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7029:3:103"},"nodeType":"YulFunctionCall","src":"7029:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7023:5:103"},"nodeType":"YulFunctionCall","src":"7023:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7011:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7070:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7079:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7087:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7072:6:103"},"nodeType":"YulFunctionCall","src":"7072:22:103"},"nodeType":"YulExpressionStatement","src":"7072:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7056:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7066:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7053:2:103"},"nodeType":"YulFunctionCall","src":"7053:16:103"},"nodeType":"YulIf","src":"7050:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7116:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7123:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7112:3:103"},"nodeType":"YulFunctionCall","src":"7112:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7160:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7164:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7156:3:103"},"nodeType":"YulFunctionCall","src":"7156:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7175:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"7128:27:103"},"nodeType":"YulFunctionCall","src":"7128:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7105:6:103"},"nodeType":"YulFunctionCall","src":"7105:79:103"},"nodeType":"YulExpressionStatement","src":"7105:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7204:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7211:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7200:3:103"},"nodeType":"YulFunctionCall","src":"7200:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7227:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7231:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7223:3:103"},"nodeType":"YulFunctionCall","src":"7223:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7217:5:103"},"nodeType":"YulFunctionCall","src":"7217:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7193:6:103"},"nodeType":"YulFunctionCall","src":"7193:44:103"},"nodeType":"YulExpressionStatement","src":"7193:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7257:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7264:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7253:3:103"},"nodeType":"YulFunctionCall","src":"7253:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7280:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7284:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7276:3:103"},"nodeType":"YulFunctionCall","src":"7276:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7270:5:103"},"nodeType":"YulFunctionCall","src":"7270:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7246:6:103"},"nodeType":"YulFunctionCall","src":"7246:44:103"},"nodeType":"YulExpressionStatement","src":"7246:44:103"},{"nodeType":"YulAssignment","src":"7299:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7309:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7299:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6391:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6402:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6414:6:103","type":""}],"src":"6315:1005:103"},{"body":{"nodeType":"YulBlock","src":"7429:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"7475:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7484:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7492:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7477:6:103"},"nodeType":"YulFunctionCall","src":"7477:22:103"},"nodeType":"YulExpressionStatement","src":"7477:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7450:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7459:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7446:3:103"},"nodeType":"YulFunctionCall","src":"7446:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7471:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7442:3:103"},"nodeType":"YulFunctionCall","src":"7442:32:103"},"nodeType":"YulIf","src":"7439:2:103"},{"nodeType":"YulVariableDeclaration","src":"7510:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7530:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7524:5:103"},"nodeType":"YulFunctionCall","src":"7524:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7514:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7549:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7559:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7553:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7604:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7613:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7621:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7606:6:103"},"nodeType":"YulFunctionCall","src":"7606:22:103"},"nodeType":"YulExpressionStatement","src":"7606:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7592:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7600:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7589:2:103"},"nodeType":"YulFunctionCall","src":"7589:14:103"},"nodeType":"YulIf","src":"7586:2:103"},{"nodeType":"YulVariableDeclaration","src":"7639:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7653:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"7664:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7649:3:103"},"nodeType":"YulFunctionCall","src":"7649:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7643:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7711:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7720:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7728:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7713:6:103"},"nodeType":"YulFunctionCall","src":"7713:22:103"},"nodeType":"YulExpressionStatement","src":"7713:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7691:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"7700:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7687:3:103"},"nodeType":"YulFunctionCall","src":"7687:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"7705:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7683:3:103"},"nodeType":"YulFunctionCall","src":"7683:27:103"},"nodeType":"YulIf","src":"7680:2:103"},{"nodeType":"YulVariableDeclaration","src":"7746:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7775:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"7759:15:103"},"nodeType":"YulFunctionCall","src":"7759:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7750:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7789:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7810:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7804:5:103"},"nodeType":"YulFunctionCall","src":"7804:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7793:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7861:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"7822:38:103"},"nodeType":"YulFunctionCall","src":"7822:47:103"},"nodeType":"YulExpressionStatement","src":"7822:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7885:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"7892:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7878:6:103"},"nodeType":"YulFunctionCall","src":"7878:22:103"},"nodeType":"YulExpressionStatement","src":"7878:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7920:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7927:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7916:3:103"},"nodeType":"YulFunctionCall","src":"7916:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7942:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7946:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7938:3:103"},"nodeType":"YulFunctionCall","src":"7938:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7932:5:103"},"nodeType":"YulFunctionCall","src":"7932:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7909:6:103"},"nodeType":"YulFunctionCall","src":"7909:42:103"},"nodeType":"YulExpressionStatement","src":"7909:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7971:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7967:3:103"},"nodeType":"YulFunctionCall","src":"7967:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7993:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7997:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7989:3:103"},"nodeType":"YulFunctionCall","src":"7989:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7983:5:103"},"nodeType":"YulFunctionCall","src":"7983:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7960:6:103"},"nodeType":"YulFunctionCall","src":"7960:42:103"},"nodeType":"YulExpressionStatement","src":"7960:42:103"},{"nodeType":"YulVariableDeclaration","src":"8011:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8037:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8041:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8033:3:103"},"nodeType":"YulFunctionCall","src":"8033:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8027:5:103"},"nodeType":"YulFunctionCall","src":"8027:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8015:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8074:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8083:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8091:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8076:6:103"},"nodeType":"YulFunctionCall","src":"8076:22:103"},"nodeType":"YulExpressionStatement","src":"8076:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8060:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8070:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8057:2:103"},"nodeType":"YulFunctionCall","src":"8057:16:103"},"nodeType":"YulIf","src":"8054:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8120:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8127:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8116:3:103"},"nodeType":"YulFunctionCall","src":"8116:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8164:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8168:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8160:3:103"},"nodeType":"YulFunctionCall","src":"8160:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8179:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"8132:27:103"},"nodeType":"YulFunctionCall","src":"8132:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8109:6:103"},"nodeType":"YulFunctionCall","src":"8109:79:103"},"nodeType":"YulExpressionStatement","src":"8109:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8208:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8215:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8204:3:103"},"nodeType":"YulFunctionCall","src":"8204:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8231:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8235:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8227:3:103"},"nodeType":"YulFunctionCall","src":"8227:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8221:5:103"},"nodeType":"YulFunctionCall","src":"8221:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8197:6:103"},"nodeType":"YulFunctionCall","src":"8197:44:103"},"nodeType":"YulExpressionStatement","src":"8197:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8261:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8268:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8257:3:103"},"nodeType":"YulFunctionCall","src":"8257:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8284:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8288:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8280:3:103"},"nodeType":"YulFunctionCall","src":"8280:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8274:5:103"},"nodeType":"YulFunctionCall","src":"8274:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8250:6:103"},"nodeType":"YulFunctionCall","src":"8250:44:103"},"nodeType":"YulExpressionStatement","src":"8250:44:103"},{"nodeType":"YulAssignment","src":"8303:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"8313:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8303:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7395:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7406:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7418:6:103","type":""}],"src":"7325:999:103"},{"body":{"nodeType":"YulBlock","src":"8436:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"8482:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8491:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8499:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8484:6:103"},"nodeType":"YulFunctionCall","src":"8484:22:103"},"nodeType":"YulExpressionStatement","src":"8484:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8457:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8466:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8453:3:103"},"nodeType":"YulFunctionCall","src":"8453:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8478:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8449:3:103"},"nodeType":"YulFunctionCall","src":"8449:32:103"},"nodeType":"YulIf","src":"8446:2:103"},{"nodeType":"YulVariableDeclaration","src":"8517:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8537:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8531:5:103"},"nodeType":"YulFunctionCall","src":"8531:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8521:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8556:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8566:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8560:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8611:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8620:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8628:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8613:6:103"},"nodeType":"YulFunctionCall","src":"8613:22:103"},"nodeType":"YulExpressionStatement","src":"8613:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8599:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8607:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8596:2:103"},"nodeType":"YulFunctionCall","src":"8596:14:103"},"nodeType":"YulIf","src":"8593:2:103"},{"nodeType":"YulVariableDeclaration","src":"8646:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8660:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"8671:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8656:3:103"},"nodeType":"YulFunctionCall","src":"8656:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8650:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8718:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8727:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8735:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8720:6:103"},"nodeType":"YulFunctionCall","src":"8720:22:103"},"nodeType":"YulExpressionStatement","src":"8720:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8698:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"8707:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8694:3:103"},"nodeType":"YulFunctionCall","src":"8694:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"8712:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8690:3:103"},"nodeType":"YulFunctionCall","src":"8690:27:103"},"nodeType":"YulIf","src":"8687:2:103"},{"nodeType":"YulVariableDeclaration","src":"8753:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8782:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8766:15:103"},"nodeType":"YulFunctionCall","src":"8766:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8757:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8796:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8817:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8811:5:103"},"nodeType":"YulFunctionCall","src":"8811:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"8800:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8854:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8829:24:103"},"nodeType":"YulFunctionCall","src":"8829:33:103"},"nodeType":"YulExpressionStatement","src":"8829:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8878:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"8885:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8871:6:103"},"nodeType":"YulFunctionCall","src":"8871:22:103"},"nodeType":"YulExpressionStatement","src":"8871:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8913:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8920:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8909:3:103"},"nodeType":"YulFunctionCall","src":"8909:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8935:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8939:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8931:3:103"},"nodeType":"YulFunctionCall","src":"8931:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8925:5:103"},"nodeType":"YulFunctionCall","src":"8925:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8902:6:103"},"nodeType":"YulFunctionCall","src":"8902:42:103"},"nodeType":"YulExpressionStatement","src":"8902:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8964:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8971:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8960:3:103"},"nodeType":"YulFunctionCall","src":"8960:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9023:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9027:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9019:3:103"},"nodeType":"YulFunctionCall","src":"9019:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"8976:42:103"},"nodeType":"YulFunctionCall","src":"8976:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8953:6:103"},"nodeType":"YulFunctionCall","src":"8953:79:103"},"nodeType":"YulExpressionStatement","src":"8953:79:103"},{"nodeType":"YulVariableDeclaration","src":"9041:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9067:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9071:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9063:3:103"},"nodeType":"YulFunctionCall","src":"9063:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9057:5:103"},"nodeType":"YulFunctionCall","src":"9057:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9045:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9104:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9113:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9121:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9106:6:103"},"nodeType":"YulFunctionCall","src":"9106:22:103"},"nodeType":"YulExpressionStatement","src":"9106:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9090:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9100:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9087:2:103"},"nodeType":"YulFunctionCall","src":"9087:16:103"},"nodeType":"YulIf","src":"9084:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9150:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9157:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9146:3:103"},"nodeType":"YulFunctionCall","src":"9146:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9194:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9198:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9190:3:103"},"nodeType":"YulFunctionCall","src":"9190:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9209:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"9162:27:103"},"nodeType":"YulFunctionCall","src":"9162:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9139:6:103"},"nodeType":"YulFunctionCall","src":"9139:79:103"},"nodeType":"YulExpressionStatement","src":"9139:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9238:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9245:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9234:3:103"},"nodeType":"YulFunctionCall","src":"9234:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9261:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9265:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9257:3:103"},"nodeType":"YulFunctionCall","src":"9257:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9251:5:103"},"nodeType":"YulFunctionCall","src":"9251:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9227:6:103"},"nodeType":"YulFunctionCall","src":"9227:44:103"},"nodeType":"YulExpressionStatement","src":"9227:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9291:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9298:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9287:3:103"},"nodeType":"YulFunctionCall","src":"9287:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9314:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9318:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9310:3:103"},"nodeType":"YulFunctionCall","src":"9310:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9304:5:103"},"nodeType":"YulFunctionCall","src":"9304:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9280:6:103"},"nodeType":"YulFunctionCall","src":"9280:44:103"},"nodeType":"YulExpressionStatement","src":"9280:44:103"},{"nodeType":"YulAssignment","src":"9333:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"9343:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9333:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8402:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8413:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8425:6:103","type":""}],"src":"8329:1025:103"},{"body":{"nodeType":"YulBlock","src":"9464:900:103","statements":[{"body":{"nodeType":"YulBlock","src":"9510:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9519:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9527:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9512:6:103"},"nodeType":"YulFunctionCall","src":"9512:22:103"},"nodeType":"YulExpressionStatement","src":"9512:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9485:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9494:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9481:3:103"},"nodeType":"YulFunctionCall","src":"9481:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9506:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9477:3:103"},"nodeType":"YulFunctionCall","src":"9477:32:103"},"nodeType":"YulIf","src":"9474:2:103"},{"nodeType":"YulVariableDeclaration","src":"9545:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9565:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9559:5:103"},"nodeType":"YulFunctionCall","src":"9559:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9549:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9584:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"9594:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9588:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9639:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9648:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9656:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9641:6:103"},"nodeType":"YulFunctionCall","src":"9641:22:103"},"nodeType":"YulExpressionStatement","src":"9641:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9627:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9635:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9624:2:103"},"nodeType":"YulFunctionCall","src":"9624:14:103"},"nodeType":"YulIf","src":"9621:2:103"},{"nodeType":"YulVariableDeclaration","src":"9674:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9688:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"9699:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9684:3:103"},"nodeType":"YulFunctionCall","src":"9684:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9678:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9746:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9755:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9763:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9748:6:103"},"nodeType":"YulFunctionCall","src":"9748:22:103"},"nodeType":"YulExpressionStatement","src":"9748:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9726:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"9735:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9722:3:103"},"nodeType":"YulFunctionCall","src":"9722:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"9740:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9718:3:103"},"nodeType":"YulFunctionCall","src":"9718:27:103"},"nodeType":"YulIf","src":"9715:2:103"},{"nodeType":"YulVariableDeclaration","src":"9781:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9810:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"9794:15:103"},"nodeType":"YulFunctionCall","src":"9794:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9785:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9831:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9844:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9838:5:103"},"nodeType":"YulFunctionCall","src":"9838:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9824:6:103"},"nodeType":"YulFunctionCall","src":"9824:24:103"},"nodeType":"YulExpressionStatement","src":"9824:24:103"},{"nodeType":"YulVariableDeclaration","src":"9857:33:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9882:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9886:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9878:3:103"},"nodeType":"YulFunctionCall","src":"9878:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9872:5:103"},"nodeType":"YulFunctionCall","src":"9872:18:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"9861:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9925:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9934:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9942:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9927:6:103"},"nodeType":"YulFunctionCall","src":"9927:22:103"},"nodeType":"YulExpressionStatement","src":"9927:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"9912:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"9921:1:103","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9909:2:103"},"nodeType":"YulFunctionCall","src":"9909:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9902:6:103"},"nodeType":"YulFunctionCall","src":"9902:22:103"},"nodeType":"YulIf","src":"9899:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9971:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9978:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9967:3:103"},"nodeType":"YulFunctionCall","src":"9967:14:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"9983:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9960:6:103"},"nodeType":"YulFunctionCall","src":"9960:31:103"},"nodeType":"YulExpressionStatement","src":"9960:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10011:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10018:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10007:3:103"},"nodeType":"YulFunctionCall","src":"10007:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10033:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10037:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10029:3:103"},"nodeType":"YulFunctionCall","src":"10029:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10023:5:103"},"nodeType":"YulFunctionCall","src":"10023:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10000:6:103"},"nodeType":"YulFunctionCall","src":"10000:42:103"},"nodeType":"YulExpressionStatement","src":"10000:42:103"},{"nodeType":"YulVariableDeclaration","src":"10051:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10077:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10081:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10073:3:103"},"nodeType":"YulFunctionCall","src":"10073:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10067:5:103"},"nodeType":"YulFunctionCall","src":"10067:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"10055:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10114:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10123:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10131:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10116:6:103"},"nodeType":"YulFunctionCall","src":"10116:22:103"},"nodeType":"YulExpressionStatement","src":"10116:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"10100:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10110:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10097:2:103"},"nodeType":"YulFunctionCall","src":"10097:16:103"},"nodeType":"YulIf","src":"10094:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10160:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10167:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10156:3:103"},"nodeType":"YulFunctionCall","src":"10156:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10204:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"10208:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10200:3:103"},"nodeType":"YulFunctionCall","src":"10200:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10219:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"10172:27:103"},"nodeType":"YulFunctionCall","src":"10172:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10149:6:103"},"nodeType":"YulFunctionCall","src":"10149:79:103"},"nodeType":"YulExpressionStatement","src":"10149:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10248:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10255:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10244:3:103"},"nodeType":"YulFunctionCall","src":"10244:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10271:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10275:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10267:3:103"},"nodeType":"YulFunctionCall","src":"10267:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10261:5:103"},"nodeType":"YulFunctionCall","src":"10261:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10237:6:103"},"nodeType":"YulFunctionCall","src":"10237:44:103"},"nodeType":"YulExpressionStatement","src":"10237:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10301:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10308:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10297:3:103"},"nodeType":"YulFunctionCall","src":"10297:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10324:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10328:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10320:3:103"},"nodeType":"YulFunctionCall","src":"10320:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10314:5:103"},"nodeType":"YulFunctionCall","src":"10314:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10290:6:103"},"nodeType":"YulFunctionCall","src":"10290:44:103"},"nodeType":"YulExpressionStatement","src":"10290:44:103"},{"nodeType":"YulAssignment","src":"10343:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"10353:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10343:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9430:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9441:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9453:6:103","type":""}],"src":"9359:1005:103"},{"body":{"nodeType":"YulBlock","src":"10474:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"10484:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"10494:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10488:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10542:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10551:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10559:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10544:6:103"},"nodeType":"YulFunctionCall","src":"10544:22:103"},"nodeType":"YulExpressionStatement","src":"10544:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10517:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"10526:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10513:3:103"},"nodeType":"YulFunctionCall","src":"10513:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10538:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10509:3:103"},"nodeType":"YulFunctionCall","src":"10509:32:103"},"nodeType":"YulIf","src":"10506:2:103"},{"nodeType":"YulVariableDeclaration","src":"10577:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10606:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"10590:15:103"},"nodeType":"YulFunctionCall","src":"10590:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10581:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10625:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10675:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"10632:42:103"},"nodeType":"YulFunctionCall","src":"10632:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10618:6:103"},"nodeType":"YulFunctionCall","src":"10618:68:103"},"nodeType":"YulExpressionStatement","src":"10618:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10706:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10713:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10702:3:103"},"nodeType":"YulFunctionCall","src":"10702:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10728:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10739:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10724:3:103"},"nodeType":"YulFunctionCall","src":"10724:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10718:5:103"},"nodeType":"YulFunctionCall","src":"10718:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10695:6:103"},"nodeType":"YulFunctionCall","src":"10695:49:103"},"nodeType":"YulExpressionStatement","src":"10695:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10764:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10771:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10760:3:103"},"nodeType":"YulFunctionCall","src":"10760:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10786:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10797:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10782:3:103"},"nodeType":"YulFunctionCall","src":"10782:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10776:5:103"},"nodeType":"YulFunctionCall","src":"10776:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10753:6:103"},"nodeType":"YulFunctionCall","src":"10753:49:103"},"nodeType":"YulExpressionStatement","src":"10753:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10822:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10829:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10818:3:103"},"nodeType":"YulFunctionCall","src":"10818:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10855:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10840:3:103"},"nodeType":"YulFunctionCall","src":"10840:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10834:5:103"},"nodeType":"YulFunctionCall","src":"10834:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10811:6:103"},"nodeType":"YulFunctionCall","src":"10811:49:103"},"nodeType":"YulExpressionStatement","src":"10811:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10880:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10887:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10876:3:103"},"nodeType":"YulFunctionCall","src":"10876:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10914:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10899:3:103"},"nodeType":"YulFunctionCall","src":"10899:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10893:5:103"},"nodeType":"YulFunctionCall","src":"10893:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10869:6:103"},"nodeType":"YulFunctionCall","src":"10869:51:103"},"nodeType":"YulExpressionStatement","src":"10869:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10940:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10947:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10936:3:103"},"nodeType":"YulFunctionCall","src":"10936:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10963:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10974:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10959:3:103"},"nodeType":"YulFunctionCall","src":"10959:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10953:5:103"},"nodeType":"YulFunctionCall","src":"10953:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10929:6:103"},"nodeType":"YulFunctionCall","src":"10929:51:103"},"nodeType":"YulExpressionStatement","src":"10929:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11000:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"11007:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10996:3:103"},"nodeType":"YulFunctionCall","src":"10996:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11023:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11034:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11019:3:103"},"nodeType":"YulFunctionCall","src":"11019:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11013:5:103"},"nodeType":"YulFunctionCall","src":"11013:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10989:6:103"},"nodeType":"YulFunctionCall","src":"10989:51:103"},"nodeType":"YulExpressionStatement","src":"10989:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11060:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"11067:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11056:3:103"},"nodeType":"YulFunctionCall","src":"11056:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11083:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11094:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11079:3:103"},"nodeType":"YulFunctionCall","src":"11079:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11073:5:103"},"nodeType":"YulFunctionCall","src":"11073:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11049:6:103"},"nodeType":"YulFunctionCall","src":"11049:51:103"},"nodeType":"YulExpressionStatement","src":"11049:51:103"},{"nodeType":"YulVariableDeclaration","src":"11109:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"11119:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"11113:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11142:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"11149:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11138:3:103"},"nodeType":"YulFunctionCall","src":"11138:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11164:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"11175:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11160:3:103"},"nodeType":"YulFunctionCall","src":"11160:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11154:5:103"},"nodeType":"YulFunctionCall","src":"11154:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11131:6:103"},"nodeType":"YulFunctionCall","src":"11131:49:103"},"nodeType":"YulExpressionStatement","src":"11131:49:103"},{"nodeType":"YulAssignment","src":"11189:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"11199:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11189:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10440:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10451:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10463:6:103","type":""}],"src":"10369:841:103"},{"body":{"nodeType":"YulBlock","src":"11285:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"11331:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11340:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11348:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11333:6:103"},"nodeType":"YulFunctionCall","src":"11333:22:103"},"nodeType":"YulExpressionStatement","src":"11333:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11306:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11315:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11302:3:103"},"nodeType":"YulFunctionCall","src":"11302:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11327:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11298:3:103"},"nodeType":"YulFunctionCall","src":"11298:32:103"},"nodeType":"YulIf","src":"11295:2:103"},{"nodeType":"YulAssignment","src":"11366:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11389:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11376:12:103"},"nodeType":"YulFunctionCall","src":"11376:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11366:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11251:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11262:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11274:6:103","type":""}],"src":"11215:190:103"},{"body":{"nodeType":"YulBlock","src":"11491:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"11537:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11546:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11554:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11539:6:103"},"nodeType":"YulFunctionCall","src":"11539:22:103"},"nodeType":"YulExpressionStatement","src":"11539:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11512:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11521:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11508:3:103"},"nodeType":"YulFunctionCall","src":"11508:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11533:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11504:3:103"},"nodeType":"YulFunctionCall","src":"11504:32:103"},"nodeType":"YulIf","src":"11501:2:103"},{"nodeType":"YulAssignment","src":"11572:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11588:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11582:5:103"},"nodeType":"YulFunctionCall","src":"11582:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11572:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11457:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11468:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11480:6:103","type":""}],"src":"11410:194:103"},{"body":{"nodeType":"YulBlock","src":"11707:157:103","statements":[{"body":{"nodeType":"YulBlock","src":"11753:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11762:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11770:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11755:6:103"},"nodeType":"YulFunctionCall","src":"11755:22:103"},"nodeType":"YulExpressionStatement","src":"11755:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11728:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11737:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11724:3:103"},"nodeType":"YulFunctionCall","src":"11724:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11749:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11720:3:103"},"nodeType":"YulFunctionCall","src":"11720:32:103"},"nodeType":"YulIf","src":"11717:2:103"},{"nodeType":"YulAssignment","src":"11788:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11804:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11798:5:103"},"nodeType":"YulFunctionCall","src":"11798:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11788:6:103"}]},{"nodeType":"YulAssignment","src":"11823:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11854:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11839:3:103"},"nodeType":"YulFunctionCall","src":"11839:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11833:5:103"},"nodeType":"YulFunctionCall","src":"11833:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11823:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11665:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11676:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11688:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11696:6:103","type":""}],"src":"11609:255:103"},{"body":{"nodeType":"YulBlock","src":"11935:202:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11952:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"11957:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11945:6:103"},"nodeType":"YulFunctionCall","src":"11945:19:103"},"nodeType":"YulExpressionStatement","src":"11945:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11990:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"11995:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11986:3:103"},"nodeType":"YulFunctionCall","src":"11986:14:103"},{"name":"start","nodeType":"YulIdentifier","src":"12002:5:103"},{"name":"length","nodeType":"YulIdentifier","src":"12009:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"11973:12:103"},"nodeType":"YulFunctionCall","src":"11973:43:103"},"nodeType":"YulExpressionStatement","src":"11973:43:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12040:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12045:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12036:3:103"},"nodeType":"YulFunctionCall","src":"12036:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"12054:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12032:3:103"},"nodeType":"YulFunctionCall","src":"12032:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"12061:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12025:6:103"},"nodeType":"YulFunctionCall","src":"12025:40:103"},"nodeType":"YulExpressionStatement","src":"12025:40:103"},{"nodeType":"YulAssignment","src":"12074:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12089:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12102:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12110:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12098:3:103"},"nodeType":"YulFunctionCall","src":"12098:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12119:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12115:3:103"},"nodeType":"YulFunctionCall","src":"12115:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12094:3:103"},"nodeType":"YulFunctionCall","src":"12094:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12085:3:103"},"nodeType":"YulFunctionCall","src":"12085:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"12126:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12081:3:103"},"nodeType":"YulFunctionCall","src":"12081:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12074:3:103"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"11904:5:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"11911:6:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11919:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11927:3:103","type":""}],"src":"11869:268:103"},{"body":{"nodeType":"YulBlock","src":"12243:102:103","statements":[{"nodeType":"YulAssignment","src":"12253:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12265:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12276:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12261:3:103"},"nodeType":"YulFunctionCall","src":"12261:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12253:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12295:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12310:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12326:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12331:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12322:3:103"},"nodeType":"YulFunctionCall","src":"12322:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"12335:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12318:3:103"},"nodeType":"YulFunctionCall","src":"12318:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12306:3:103"},"nodeType":"YulFunctionCall","src":"12306:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12288:6:103"},"nodeType":"YulFunctionCall","src":"12288:51:103"},"nodeType":"YulExpressionStatement","src":"12288:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12212:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12223:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12234:4:103","type":""}],"src":"12142:203:103"},{"body":{"nodeType":"YulBlock","src":"12535:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12552:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12567:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12583:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12588:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12579:3:103"},"nodeType":"YulFunctionCall","src":"12579:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"12592:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12575:3:103"},"nodeType":"YulFunctionCall","src":"12575:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12563:3:103"},"nodeType":"YulFunctionCall","src":"12563:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12545:6:103"},"nodeType":"YulFunctionCall","src":"12545:51:103"},"nodeType":"YulExpressionStatement","src":"12545:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12616:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12627:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12612:3:103"},"nodeType":"YulFunctionCall","src":"12612:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"12632:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12605:6:103"},"nodeType":"YulFunctionCall","src":"12605:34:103"},"nodeType":"YulExpressionStatement","src":"12605:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12659:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12670:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12655:3:103"},"nodeType":"YulFunctionCall","src":"12655:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12675:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12648:6:103"},"nodeType":"YulFunctionCall","src":"12648:30:103"},"nodeType":"YulExpressionStatement","src":"12648:30:103"},{"nodeType":"YulAssignment","src":"12687:69:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12721:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"12729:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12741:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12752:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12737:3:103"},"nodeType":"YulFunctionCall","src":"12737:18:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"12695:25:103"},"nodeType":"YulFunctionCall","src":"12695:61:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12687:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12480:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12491:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12499:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12507:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12515:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12526:4:103","type":""}],"src":"12350:412:103"},{"body":{"nodeType":"YulBlock","src":"12862:92:103","statements":[{"nodeType":"YulAssignment","src":"12872:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12884:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12895:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12880:3:103"},"nodeType":"YulFunctionCall","src":"12880:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12872:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12914:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12939:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12932:6:103"},"nodeType":"YulFunctionCall","src":"12932:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12925:6:103"},"nodeType":"YulFunctionCall","src":"12925:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12907:6:103"},"nodeType":"YulFunctionCall","src":"12907:41:103"},"nodeType":"YulExpressionStatement","src":"12907:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12831:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12842:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12853:4:103","type":""}],"src":"12767:187:103"},{"body":{"nodeType":"YulBlock","src":"13110:178:103","statements":[{"nodeType":"YulAssignment","src":"13120:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13132:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13143:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13128:3:103"},"nodeType":"YulFunctionCall","src":"13128:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13120:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13162:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13187:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13180:6:103"},"nodeType":"YulFunctionCall","src":"13180:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13173:6:103"},"nodeType":"YulFunctionCall","src":"13173:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13155:6:103"},"nodeType":"YulFunctionCall","src":"13155:41:103"},"nodeType":"YulExpressionStatement","src":"13155:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13227:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13212:3:103"},"nodeType":"YulFunctionCall","src":"13212:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13232:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13205:6:103"},"nodeType":"YulFunctionCall","src":"13205:34:103"},"nodeType":"YulExpressionStatement","src":"13205:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13259:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13270:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13255:3:103"},"nodeType":"YulFunctionCall","src":"13255:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"13275:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13248:6:103"},"nodeType":"YulFunctionCall","src":"13248:34:103"},"nodeType":"YulExpressionStatement","src":"13248:34:103"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13063:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13074:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13082:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13090:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13101:4:103","type":""}],"src":"12959:329:103"},{"body":{"nodeType":"YulBlock","src":"13394:76:103","statements":[{"nodeType":"YulAssignment","src":"13404:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13427:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13412:3:103"},"nodeType":"YulFunctionCall","src":"13412:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13404:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13446:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13457:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13439:6:103"},"nodeType":"YulFunctionCall","src":"13439:25:103"},"nodeType":"YulExpressionStatement","src":"13439:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13363:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13374:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13385:4:103","type":""}],"src":"13293:177:103"},{"body":{"nodeType":"YulBlock","src":"13746:404:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13763:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13774:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13756:6:103"},"nodeType":"YulFunctionCall","src":"13756:25:103"},"nodeType":"YulExpressionStatement","src":"13756:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13801:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13812:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13797:3:103"},"nodeType":"YulFunctionCall","src":"13797:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13817:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13790:6:103"},"nodeType":"YulFunctionCall","src":"13790:31:103"},"nodeType":"YulExpressionStatement","src":"13790:31:103"},{"nodeType":"YulVariableDeclaration","src":"13830:76:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13870:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"13878:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13890:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13901:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13886:3:103"},"nodeType":"YulFunctionCall","src":"13886:19:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13844:25:103"},"nodeType":"YulFunctionCall","src":"13844:62:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"13834:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13937:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13922:3:103"},"nodeType":"YulFunctionCall","src":"13922:18:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"13946:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"13954:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13942:3:103"},"nodeType":"YulFunctionCall","src":"13942:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13915:6:103"},"nodeType":"YulFunctionCall","src":"13915:50:103"},"nodeType":"YulExpressionStatement","src":"13915:50:103"},{"nodeType":"YulAssignment","src":"13974:57:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"14008:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"14016:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"14024:6:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13982:25:103"},"nodeType":"YulFunctionCall","src":"13982:49:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13974:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14051:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14062:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14047:3:103"},"nodeType":"YulFunctionCall","src":"14047:18:103"},{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"14071:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14087:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14092:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14083:3:103"},"nodeType":"YulFunctionCall","src":"14083:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14096:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14079:3:103"},"nodeType":"YulFunctionCall","src":"14079:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14067:3:103"},"nodeType":"YulFunctionCall","src":"14067:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14040:6:103"},"nodeType":"YulFunctionCall","src":"14040:60:103"},"nodeType":"YulExpressionStatement","src":"14040:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14120:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14131:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14116:3:103"},"nodeType":"YulFunctionCall","src":"14116:19:103"},{"name":"value6","nodeType":"YulIdentifier","src":"14137:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14109:6:103"},"nodeType":"YulFunctionCall","src":"14109:35:103"},"nodeType":"YulExpressionStatement","src":"14109:35:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_calldata_ptr_t_string_calldata_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13667:9:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"13678:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"13686:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13694:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13702:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13710:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13718:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13726:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13737:4:103","type":""}],"src":"13475:675:103"},{"body":{"nodeType":"YulBlock","src":"14284:119:103","statements":[{"nodeType":"YulAssignment","src":"14294:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14306:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14317:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14302:3:103"},"nodeType":"YulFunctionCall","src":"14302:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14294:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14336:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14347:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14329:6:103"},"nodeType":"YulFunctionCall","src":"14329:25:103"},"nodeType":"YulExpressionStatement","src":"14329:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14374:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14385:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14370:3:103"},"nodeType":"YulFunctionCall","src":"14370:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14390:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14363:6:103"},"nodeType":"YulFunctionCall","src":"14363:34:103"},"nodeType":"YulExpressionStatement","src":"14363:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14245:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14256:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14264:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14275:4:103","type":""}],"src":"14155:248:103"},{"body":{"nodeType":"YulBlock","src":"14593:201:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14610:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14621:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14603:6:103"},"nodeType":"YulFunctionCall","src":"14603:25:103"},"nodeType":"YulExpressionStatement","src":"14603:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14648:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14659:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14644:3:103"},"nodeType":"YulFunctionCall","src":"14644:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14664:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14637:6:103"},"nodeType":"YulFunctionCall","src":"14637:34:103"},"nodeType":"YulExpressionStatement","src":"14637:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14691:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14702:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14687:3:103"},"nodeType":"YulFunctionCall","src":"14687:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14707:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14680:6:103"},"nodeType":"YulFunctionCall","src":"14680:30:103"},"nodeType":"YulExpressionStatement","src":"14680:30:103"},{"nodeType":"YulAssignment","src":"14719:69:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"14753:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"14761:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14784:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14769:3:103"},"nodeType":"YulFunctionCall","src":"14769:18:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"14727:25:103"},"nodeType":"YulFunctionCall","src":"14727:61:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14719:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_calldata_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14538:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14549:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14557:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14565:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14584:4:103","type":""}],"src":"14408:386:103"},{"body":{"nodeType":"YulBlock","src":"14956:162:103","statements":[{"nodeType":"YulAssignment","src":"14966:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14989:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14974:3:103"},"nodeType":"YulFunctionCall","src":"14974:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14966:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15008:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15019:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15001:6:103"},"nodeType":"YulFunctionCall","src":"15001:25:103"},"nodeType":"YulExpressionStatement","src":"15001:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15046:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15057:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15042:3:103"},"nodeType":"YulFunctionCall","src":"15042:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"15062:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15035:6:103"},"nodeType":"YulFunctionCall","src":"15035:34:103"},"nodeType":"YulExpressionStatement","src":"15035:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15089:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15100:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15085:3:103"},"nodeType":"YulFunctionCall","src":"15085:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"15105:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15078:6:103"},"nodeType":"YulFunctionCall","src":"15078:34:103"},"nodeType":"YulExpressionStatement","src":"15078:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14909:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14920:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14928:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14936:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14947:4:103","type":""}],"src":"14799:319:103"},{"body":{"nodeType":"YulBlock","src":"15336:246:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15353:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15364:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15346:6:103"},"nodeType":"YulFunctionCall","src":"15346:25:103"},"nodeType":"YulExpressionStatement","src":"15346:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15391:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15402:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15387:3:103"},"nodeType":"YulFunctionCall","src":"15387:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"15407:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15380:6:103"},"nodeType":"YulFunctionCall","src":"15380:34:103"},"nodeType":"YulExpressionStatement","src":"15380:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15434:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15445:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15430:3:103"},"nodeType":"YulFunctionCall","src":"15430:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"15450:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15423:6:103"},"nodeType":"YulFunctionCall","src":"15423:34:103"},"nodeType":"YulExpressionStatement","src":"15423:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15477:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15488:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15473:3:103"},"nodeType":"YulFunctionCall","src":"15473:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15493:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15466:6:103"},"nodeType":"YulFunctionCall","src":"15466:31:103"},"nodeType":"YulExpressionStatement","src":"15466:31:103"},{"nodeType":"YulAssignment","src":"15506:70:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"15540:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"15548:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15560:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15571:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15556:3:103"},"nodeType":"YulFunctionCall","src":"15556:19:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15514:25:103"},"nodeType":"YulFunctionCall","src":"15514:62:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15506:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15273:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"15284:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"15292:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15300:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15308:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15316:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15327:4:103","type":""}],"src":"15123:459:103"},{"body":{"nodeType":"YulBlock","src":"15706:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15723:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15734:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15716:6:103"},"nodeType":"YulFunctionCall","src":"15716:21:103"},"nodeType":"YulExpressionStatement","src":"15716:21:103"},{"nodeType":"YulVariableDeclaration","src":"15746:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15766:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15760:5:103"},"nodeType":"YulFunctionCall","src":"15760:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15750:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15793:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15804:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15789:3:103"},"nodeType":"YulFunctionCall","src":"15789:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"15809:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15782:6:103"},"nodeType":"YulFunctionCall","src":"15782:34:103"},"nodeType":"YulExpressionStatement","src":"15782:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15851:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15859:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15847:3:103"},"nodeType":"YulFunctionCall","src":"15847:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15868:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15879:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15864:3:103"},"nodeType":"YulFunctionCall","src":"15864:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"15884:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"15825:21:103"},"nodeType":"YulFunctionCall","src":"15825:66:103"},"nodeType":"YulExpressionStatement","src":"15825:66:103"},{"nodeType":"YulAssignment","src":"15900:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15916:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15935:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15943:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15931:3:103"},"nodeType":"YulFunctionCall","src":"15931:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15952:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15948:3:103"},"nodeType":"YulFunctionCall","src":"15948:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15927:3:103"},"nodeType":"YulFunctionCall","src":"15927:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15912:3:103"},"nodeType":"YulFunctionCall","src":"15912:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"15959:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15908:3:103"},"nodeType":"YulFunctionCall","src":"15908:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15900:4:103"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15675:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15686:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15697:4:103","type":""}],"src":"15587:381:103"},{"body":{"nodeType":"YulBlock","src":"16092:102:103","statements":[{"nodeType":"YulAssignment","src":"16102:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16114:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16125:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16110:3:103"},"nodeType":"YulFunctionCall","src":"16110:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16102:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16144:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16159:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16175:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16180:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16171:3:103"},"nodeType":"YulFunctionCall","src":"16171:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"16184:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16167:3:103"},"nodeType":"YulFunctionCall","src":"16167:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16155:3:103"},"nodeType":"YulFunctionCall","src":"16155:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16137:6:103"},"nodeType":"YulFunctionCall","src":"16137:51:103"},"nodeType":"YulExpressionStatement","src":"16137:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16061:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16072:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16083:4:103","type":""}],"src":"15973:221:103"},{"body":{"nodeType":"YulBlock","src":"16373:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16401:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16383:6:103"},"nodeType":"YulFunctionCall","src":"16383:21:103"},"nodeType":"YulExpressionStatement","src":"16383:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16424:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16435:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16420:3:103"},"nodeType":"YulFunctionCall","src":"16420:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16440:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16413:6:103"},"nodeType":"YulFunctionCall","src":"16413:30:103"},"nodeType":"YulExpressionStatement","src":"16413:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16474:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16459:3:103"},"nodeType":"YulFunctionCall","src":"16459:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16479:34:103","type":"","value":"ERROR:PFD-004:PROCESSID_PRODUCT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16452:6:103"},"nodeType":"YulFunctionCall","src":"16452:62:103"},"nodeType":"YulExpressionStatement","src":"16452:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16534:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16545:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16530:3:103"},"nodeType":"YulFunctionCall","src":"16530:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16550:10:103","type":"","value":"MISMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16523:6:103"},"nodeType":"YulFunctionCall","src":"16523:38:103"},"nodeType":"YulExpressionStatement","src":"16523:38:103"},{"nodeType":"YulAssignment","src":"16570:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16582:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16593:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16578:3:103"},"nodeType":"YulFunctionCall","src":"16578:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16570:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_136fc3ad7c83d07b4d40caf713cd67bed82ca2b892762c2adbae1fe6fe0dcfb3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16350:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16364:4:103","type":""}],"src":"16199:404:103"},{"body":{"nodeType":"YulBlock","src":"16782:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16810:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16792:6:103"},"nodeType":"YulFunctionCall","src":"16792:21:103"},"nodeType":"YulExpressionStatement","src":"16792:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16844:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16829:3:103"},"nodeType":"YulFunctionCall","src":"16829:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16849:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16822:6:103"},"nodeType":"YulFunctionCall","src":"16822:30:103"},"nodeType":"YulExpressionStatement","src":"16822:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16872:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16883:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16868:3:103"},"nodeType":"YulFunctionCall","src":"16868:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16888:34:103","type":"","value":"ERROR:PFD-002:POLICY_NOT_EXPIRED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16861:6:103"},"nodeType":"YulFunctionCall","src":"16861:62:103"},"nodeType":"YulExpressionStatement","src":"16861:62:103"},{"nodeType":"YulAssignment","src":"16932:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16944:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16955:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16940:3:103"},"nodeType":"YulFunctionCall","src":"16940:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16932:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_18e20048df1336701316840c9034a9ef82a2e25efaf59ab47262e1bc60a26085__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16759:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16773:4:103","type":""}],"src":"16608:356:103"},{"body":{"nodeType":"YulBlock","src":"17143:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17160:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17171:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17153:6:103"},"nodeType":"YulFunctionCall","src":"17153:21:103"},"nodeType":"YulExpressionStatement","src":"17153:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17194:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17205:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17190:3:103"},"nodeType":"YulFunctionCall","src":"17190:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17210:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17183:6:103"},"nodeType":"YulFunctionCall","src":"17183:30:103"},"nodeType":"YulExpressionStatement","src":"17183:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17233:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17244:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17229:3:103"},"nodeType":"YulFunctionCall","src":"17229:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17249:33:103","type":"","value":"ERROR:PFD-001:POLICY_NOT_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17222:6:103"},"nodeType":"YulFunctionCall","src":"17222:61:103"},"nodeType":"YulExpressionStatement","src":"17222:61:103"},{"nodeType":"YulAssignment","src":"17292:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17315:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17300:3:103"},"nodeType":"YulFunctionCall","src":"17300:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17292:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b1cef90b481c0b75b84bee986adfe33e860c5dd41a12fda22045023a52d80d2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17120:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17134:4:103","type":""}],"src":"16969:355:103"},{"body":{"nodeType":"YulBlock","src":"17503:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17520:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17531:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17513:6:103"},"nodeType":"YulFunctionCall","src":"17513:21:103"},"nodeType":"YulExpressionStatement","src":"17513:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17554:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17565:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17550:3:103"},"nodeType":"YulFunctionCall","src":"17550:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17570:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17543:6:103"},"nodeType":"YulFunctionCall","src":"17543:30:103"},"nodeType":"YulExpressionStatement","src":"17543:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17593:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17604:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17589:3:103"},"nodeType":"YulFunctionCall","src":"17589:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17609:34:103","type":"","value":"ERROR:PFD-005:REQUESTID_PRODUCT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17582:6:103"},"nodeType":"YulFunctionCall","src":"17582:62:103"},"nodeType":"YulExpressionStatement","src":"17582:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17664:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17675:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17660:3:103"},"nodeType":"YulFunctionCall","src":"17660:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17680:10:103","type":"","value":"MISMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17653:6:103"},"nodeType":"YulFunctionCall","src":"17653:38:103"},"nodeType":"YulExpressionStatement","src":"17653:38:103"},{"nodeType":"YulAssignment","src":"17700:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17712:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17723:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17708:3:103"},"nodeType":"YulFunctionCall","src":"17708:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17700:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d0e68ed3ce2670c36485c8c12aea21dfa09249d8122b89624db20258a17e2536__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17480:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17494:4:103","type":""}],"src":"17329:404:103"},{"body":{"nodeType":"YulBlock","src":"17912:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17929:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17940:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17922:6:103"},"nodeType":"YulFunctionCall","src":"17922:21:103"},"nodeType":"YulExpressionStatement","src":"17922:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17963:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17974:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17959:3:103"},"nodeType":"YulFunctionCall","src":"17959:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17979:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17952:6:103"},"nodeType":"YulFunctionCall","src":"17952:30:103"},"nodeType":"YulExpressionStatement","src":"17952:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18002:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18013:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17998:3:103"},"nodeType":"YulFunctionCall","src":"17998:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18018:29:103","type":"","value":"ERROR:PFD-003:POLICY_CLOSED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17991:6:103"},"nodeType":"YulFunctionCall","src":"17991:57:103"},"nodeType":"YulExpressionStatement","src":"17991:57:103"},{"nodeType":"YulAssignment","src":"18057:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18069:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18080:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18065:3:103"},"nodeType":"YulFunctionCall","src":"18065:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18057:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fe1653e6a7be49437891bef0c146fde88ff09a38abe7e0ab716b9121e8b59650__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17889:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17903:4:103","type":""}],"src":"17738:351:103"},{"body":{"nodeType":"YulBlock","src":"18195:76:103","statements":[{"nodeType":"YulAssignment","src":"18205:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18228:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18213:3:103"},"nodeType":"YulFunctionCall","src":"18213:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18205:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18247:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18258:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18240:6:103"},"nodeType":"YulFunctionCall","src":"18240:25:103"},"nodeType":"YulExpressionStatement","src":"18240:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18164:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18175:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18186:4:103","type":""}],"src":"18094:177:103"},{"body":{"nodeType":"YulBlock","src":"18321:230:103","statements":[{"nodeType":"YulAssignment","src":"18331:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18347:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18341:5:103"},"nodeType":"YulFunctionCall","src":"18341:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18331:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"18359:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18381:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"18397:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"18403:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18393:3:103"},"nodeType":"YulFunctionCall","src":"18393:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18412:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18408:3:103"},"nodeType":"YulFunctionCall","src":"18408:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18389:3:103"},"nodeType":"YulFunctionCall","src":"18389:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18377:3:103"},"nodeType":"YulFunctionCall","src":"18377:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"18363:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"18492:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"18494:16:103"},"nodeType":"YulFunctionCall","src":"18494:18:103"},"nodeType":"YulExpressionStatement","src":"18494:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18435:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"18447:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18432:2:103"},"nodeType":"YulFunctionCall","src":"18432:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18471:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"18483:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18468:2:103"},"nodeType":"YulFunctionCall","src":"18468:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"18429:2:103"},"nodeType":"YulFunctionCall","src":"18429:62:103"},"nodeType":"YulIf","src":"18426:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18530:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18534:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18523:6:103"},"nodeType":"YulFunctionCall","src":"18523:22:103"},"nodeType":"YulExpressionStatement","src":"18523:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"18301:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"18310:6:103","type":""}],"src":"18276:275:103"},{"body":{"nodeType":"YulBlock","src":"18604:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"18639:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"18660:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18669:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18674:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18665:3:103"},"nodeType":"YulFunctionCall","src":"18665:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18653:6:103"},"nodeType":"YulFunctionCall","src":"18653:33:103"},"nodeType":"YulExpressionStatement","src":"18653:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18706:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18709:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18699:6:103"},"nodeType":"YulFunctionCall","src":"18699:15:103"},"nodeType":"YulExpressionStatement","src":"18699:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"18734:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"18739:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18727:6:103"},"nodeType":"YulFunctionCall","src":"18727:17:103"},"nodeType":"YulExpressionStatement","src":"18727:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18620:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18627:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18623:3:103"},"nodeType":"YulFunctionCall","src":"18623:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18617:2:103"},"nodeType":"YulFunctionCall","src":"18617:13:103"},"nodeType":"YulIf","src":"18614:2:103"},{"nodeType":"YulAssignment","src":"18763:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18774:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"18777:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18770:3:103"},"nodeType":"YulFunctionCall","src":"18770:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"18763:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18587:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"18590:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"18596:3:103","type":""}],"src":"18556:229:103"},{"body":{"nodeType":"YulBlock","src":"18843:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"18853:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"18862:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"18857:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"18922:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"18947:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"18952:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18943:3:103"},"nodeType":"YulFunctionCall","src":"18943:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18966:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"18971:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18962:3:103"},"nodeType":"YulFunctionCall","src":"18962:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18956:5:103"},"nodeType":"YulFunctionCall","src":"18956:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18936:6:103"},"nodeType":"YulFunctionCall","src":"18936:39:103"},"nodeType":"YulExpressionStatement","src":"18936:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18883:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"18886:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18880:2:103"},"nodeType":"YulFunctionCall","src":"18880:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"18894:19:103","statements":[{"nodeType":"YulAssignment","src":"18896:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18905:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"18908:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18901:3:103"},"nodeType":"YulFunctionCall","src":"18901:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"18896:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"18876:3:103","statements":[]},"src":"18872:113:103"},{"body":{"nodeType":"YulBlock","src":"19011:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19024:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"19029:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19020:3:103"},"nodeType":"YulFunctionCall","src":"19020:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"19038:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19013:6:103"},"nodeType":"YulFunctionCall","src":"19013:27:103"},"nodeType":"YulExpressionStatement","src":"19013:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19000:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"19003:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18997:2:103"},"nodeType":"YulFunctionCall","src":"18997:13:103"},"nodeType":"YulIf","src":"18994:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"18821:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"18826:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"18831:6:103","type":""}],"src":"18790:258:103"},{"body":{"nodeType":"YulBlock","src":"19085:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19102:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19109:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19114:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19105:3:103"},"nodeType":"YulFunctionCall","src":"19105:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19095:6:103"},"nodeType":"YulFunctionCall","src":"19095:31:103"},"nodeType":"YulExpressionStatement","src":"19095:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19142:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"19145:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19135:6:103"},"nodeType":"YulFunctionCall","src":"19135:15:103"},"nodeType":"YulExpressionStatement","src":"19135:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19166:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19169:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19159:6:103"},"nodeType":"YulFunctionCall","src":"19159:15:103"},"nodeType":"YulExpressionStatement","src":"19159:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"19053:127:103"},{"body":{"nodeType":"YulBlock","src":"19230:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"19294:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19303:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19306:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19296:6:103"},"nodeType":"YulFunctionCall","src":"19296:12:103"},"nodeType":"YulExpressionStatement","src":"19296:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19253:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19264:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19279:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19284:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19275:3:103"},"nodeType":"YulFunctionCall","src":"19275:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"19288:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19271:3:103"},"nodeType":"YulFunctionCall","src":"19271:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19260:3:103"},"nodeType":"YulFunctionCall","src":"19260:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"19250:2:103"},"nodeType":"YulFunctionCall","src":"19250:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19243:6:103"},"nodeType":"YulFunctionCall","src":"19243:50:103"},"nodeType":"YulIf","src":"19240:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19219:5:103","type":""}],"src":"19185:131:103"},{"body":{"nodeType":"YulBlock","src":"19380:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"19414:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19423:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19426:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19416:6:103"},"nodeType":"YulFunctionCall","src":"19416:12:103"},"nodeType":"YulExpressionStatement","src":"19416:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19403:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"19410:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19400:2:103"},"nodeType":"YulFunctionCall","src":"19400:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19393:6:103"},"nodeType":"YulFunctionCall","src":"19393:20:103"},"nodeType":"YulIf","src":"19390:2:103"}]},"name":"validator_revert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19369:5:103","type":""}],"src":"19321:115:103"}]},"contents":"{\n { }\n function abi_decode_bool_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let offset_1 := calldataload(add(headStart, 128))\n if gt(offset_1, _1) { revert(value5, value5) }\n let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value5 := value5_1\n value6 := value6_1\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_bool_fromMemory(headStart)\n }\n function abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_bool_fromMemory(headStart)\n value1 := mload(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_string_calldata_ptrt_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value6, value6) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value6, value6) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(value6, value6) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value5 := value\n value6 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n mstore(value, mload(_2))\n let value_1 := mload(add(_2, 32))\n if iszero(lt(value_1, 2)) { revert(value0, value0) }\n mstore(add(value, 32), value_1)\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 96))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_bytes_calldata_ptr_t_string_calldata_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 160))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value3, value4, tail_1)\n mstore(add(headStart, 96), and(value5, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value6)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_calldata_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 96))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_136fc3ad7c83d07b4d40caf713cd67bed82ca2b892762c2adbae1fe6fe0dcfb3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:PFD-004:PROCESSID_PRODUCT_\")\n mstore(add(headStart, 96), \"MISMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_18e20048df1336701316840c9034a9ef82a2e25efaf59ab47262e1bc60a26085__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:PFD-002:POLICY_NOT_EXPIRED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9b1cef90b481c0b75b84bee986adfe33e860c5dd41a12fda22045023a52d80d2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:PFD-001:POLICY_NOT_ACTIVE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d0e68ed3ce2670c36485c8c12aea21dfa09249d8122b89624db20258a17e2536__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:PFD-005:REQUESTID_PRODUCT_\")\n mstore(add(headStart, 96), \"MISMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fe1653e6a7be49437891bef0c146fde88ff09a38abe7e0ab716b9121e8b59650__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:PFD-003:POLICY_CLOSED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"26665":[{"length":32,"start":576},{"length":32,"start":7187}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101425760003560e01c80637f29dba2116100b8578063b75c7dc61161007c578063b75c7dc6146102e1578063c46df94e146102f4578063c644179814610307578063e3ebdea51461031a578063fae43d151461034a578063fe64372b1461035d57610142565b80637f29dba21461027a5780638cc7d3d11461028d57806393b8414a146102a0578063a3f4df7e146102b3578063a5b25e71146102ce57610142565b806330a73da51161010a57806330a73da5146101dc57806339c79e0c146101ef5780634cda0de9146102025780634e02c63f14610215578063781d7846146102285780637b1039991461023b57610142565b806310b96080146101475780631b07b17f1461017057806322f86e7f146101935780632c933f22146101a65780633015394c146101c7575b600080fd5b61015a610155366004612da0565b610370565b60405161016791906131e1565b60405180910390f35b61018361017e366004612cdc565b61040e565b6040519015158152602001610167565b61015a6101a1366004612da0565b610747565b6101b96101b4366004612d0c565b6107d9565b604051908152602001610167565b6101da6101d5366004612cdc565b6109be565b005b6101da6101ea366004612e12565b610c46565b6101da6101fd366004612cdc565b610eff565b6101da610210366004612da0565b61120f565b6101da610223366004612e12565b611392565b6101b9610236366004612e3d565b611554565b6102627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610167565b6101da610288366004612da0565b611733565b6101da61029b366004612cdc565b6118b6565b6101b96102ae366004612bfb565b611a68565b6101b970506f6c69637944656661756c74466c6f7760781b81565b6102626102dc366004612cdc565b611bfa565b6101da6102ef366004612cdc565b611c9b565b61015a610302366004612cdc565b611e17565b6101da610315366004612cdc565b611eaf565b61032d610328366004612da0565b612120565b604080519315158452602084019290925290820152606001610167565b6101b9610358366004612dc1565b6124f9565b61032d61036b366004612da0565b6127cc565b6060600061037c612a9d565b60405163cef58f1360e01b815260048101869052602481018590529091506001600160a01b0382169063cef58f139060440160006040518083038186803b1580156103c657600080fd5b505afa1580156103da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612fc5565b60600151949350505050565b600081600061041b612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561046157600080fd5b505afa158015610475573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261049d9190810190612f47565b905060006104b66810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156104f857600080fd5b505afa15801561050c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105309190612cf4565b82602001511461055b5760405162461bcd60e51b815260040161055290613214565b60405180910390fd5b6000610565612ab6565b604051631b07b17f60e01b8152600481018990529091506001600160a01b03821690631b07b17f90602401602060405180830381600087803b1580156105aa57600080fd5b505af11580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e29190612c8e565b9550851561073d5760006105f4612a9d565b604051630b92aa5160e31b8152600481018a90529091506001600160a01b03821690635c95528890602401600060405180830381600087803b15801561063957600080fd5b505af115801561064d573d6000803e3d6000fd5b505060405163260a666160e11b8152600481018b90526001600160a01b0384169250634c14ccc29150602401600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505060405163a3f685f960e01b8152600481018b9052600092506001600160a01b038416915063a3f685f9906024016101206040518083038186803b1580156106ef57600080fd5b505afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610727919061303f565b9050610737898260200151612120565b50505050505b5050505050919050565b60606000610753612a9d565b604051637f22c2d960e01b815260048101869052602481018590529091506001600160a01b03821690637f22c2d99060440160006040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612e9c565b60008760006107e6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108689190810190612f47565b905060006108816810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156108c357600080fd5b505afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190612cf4565b82602001511461091d5760405162461bcd60e51b815260040161055290613214565b610925612ac8565b6001600160a01b0316632c933f228d8d8d8d8d8d8d6040518863ffffffff1660e01b815260040161095c9796959493929190613143565b602060405180830381600087803b15801561097657600080fd5b505af115801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae9190612cf4565b9c9b505050505050505050505050565b8060006109c9612ac8565b905060006109d5612ac8565b6001600160a01b0316639b04ed30846040518263ffffffff1660e01b8152600401610a0291815260200190565b60206040518083038186803b158015610a1a57600080fd5b505afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190612cf4565b90506000610a5e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae09190810190612f47565b90506000610af96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610b3b57600080fd5b505afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190612cf4565b826020015114610bd65760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5046442d3030353a5245515545535449445f50524f445543545f60448201526709a92a69a82a886960c31b6064820152608401610552565b610bde612ac8565b6001600160a01b03166340e58ee5886040518263ffffffff1660e01b8152600401610c0b91815260200190565b600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b5050505050505050505050565b826000610c51612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610c9657600080fd5b505afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce919061303f565b516002811115610cee57634e487b7160e01b600052602160045260246000fd5b1415610d3c5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b846000610d47612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dc99190810190612f47565b90506000610de26810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c9190612cf4565b826020015114610e7e5760405162461bcd60e51b815260040161055290613214565b6000610e88612a9d565b6040516330a73da560e01b8152600481018c9052602481018b9052604481018a90529091506001600160a01b038216906330a73da590606401600060405180830381600087803b158015610edb57600080fd5b505af1158015610eef573d6000803e3d6000fd5b5050505050505050505050505050565b806000610f0a612a9d565b9050600160405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610f4f57600080fd5b505afa158015610f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f87919061303f565b516002811115610fa757634e487b7160e01b600052602160045260246000fd5b14610ff45760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5046442d3030323a504f4c4943595f4e4f545f455850495245446044820152606401610552565b826000610fff612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110819190810190612f47565b9050600061109a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156110dc57600080fd5b505afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190612cf4565b8260200151146111365760405162461bcd60e51b815260040161055290613214565b6000611140612a9d565b6040516315b95b6560e31b8152600481018a90529091506001600160a01b0382169063adcadb2890602401600060405180830381600087803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b5050505060006111a7612ab6565b6040516367d42a8b60e01b8152600481018b90529091506001600160a01b038216906367d42a8b90602401600060405180830381600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b50505050505050505050505050565b81600061121a612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561126057600080fd5b505afa158015611274573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261129c9190810190612f47565b905060006112b56810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156112f757600080fd5b505afa15801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190612cf4565b8260200151146113515760405162461bcd60e51b815260040161055290613214565b600061135b612a9d565b604051634cda0de960e01b815260048101899052602481018890529091506001600160a01b03821690634cda0de990604401610c0b565b82600061139d612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156113e357600080fd5b505afa1580156113f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141f9190810190612f47565b905060006114386810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b29190612cf4565b8260200151146114d45760405162461bcd60e51b815260040161055290613214565b60006114de612a9d565b604051634e02c63f60e01b8152600481018a905260248101899052604481018890529091506001600160a01b03821690634e02c63f906064015b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050505050505050505050565b6000856000611561612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115e39190810190612f47565b905060006115fc6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116769190612cf4565b8260200151146116985760405162461bcd60e51b815260040161055290613214565b6116a0612a9d565b6001600160a01b031663db42b77b8b8b8b8b8b6040518663ffffffff1660e01b81526004016116d39594939291906131b0565b602060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117259190612cf4565b9a9950505050505050505050565b81600061173e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561178457600080fd5b505afa158015611798573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117c09190810190612f47565b905060006117d96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561181b57600080fd5b505afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118539190612cf4565b8260200151146118755760405162461bcd60e51b815260040161055290613214565b600061187f612a9d565b604051633f94edd160e11b815260048101899052602481018890529091506001600160a01b03821690637f29dba290604401610c0b565b8060006118c1612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561190757600080fd5b505afa15801561191b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119439190810190612f47565b9050600061195c6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561199e57600080fd5b505afa1580156119b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d69190612cf4565b8260200151146119f85760405162461bcd60e51b815260040161055290613214565b6000611a02612a9d565b60405163296d6c7d60e01b8152600481018890529091506001600160a01b0382169063296d6c7d906024015b600060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b50505050505050505050565b600080611a73612adb565b604051632b1c7f7360e01b81523360048201529091506000906001600160a01b03831690632b1c7f739060240160206040518083038186803b158015611ab857600080fd5b505afa158015611acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af09190612cf4565b90506000611afc612a9d565b6040516350c0a50d60e11b81529091506001600160a01b0382169063a1814a1a90611b31908e9086908d908d90600401613111565b602060405180830381600087803b158015611b4b57600080fd5b505af1158015611b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b839190612cf4565b6040516333c019b760e11b81529094506001600160a01b03821690636780336e90611bba9087908e908e908c908c906004016131b0565b600060405180830381600087803b158015611bd457600080fd5b505af1158015611be8573d6000803e3d6000fd5b50505050505050979650505050505050565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c5d57600080fd5b505afa158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190612bd8565b92915050565b806000611ca6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611cec57600080fd5b505afa158015611d00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d289190810190612f47565b90506000611d416810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015611d8357600080fd5b505afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190612cf4565b826020015114611ddd5760405162461bcd60e51b815260040161055290613214565b6000611de7612a9d565b60405163eb96cbed60e01b8152600481018890529091506001600160a01b0382169063eb96cbed90602401611a2e565b60606000611e23612a9d565b604051632f141bd960e21b8152600481018590529091506001600160a01b0382169063bc506f649060240160006040518083038186803b158015611e6657600080fd5b505afa158015611e7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ea29190810190612e9c565b606001519150505b919050565b806000611eba612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015611eff57600080fd5b505afa158015611f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f37919061303f565b516002811115611f5757634e487b7160e01b600052602160045260246000fd5b14611fa45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b826000611faf612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611ff557600080fd5b505afa158015612009573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120319190810190612f47565b9050600061204a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561208c57600080fd5b505afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190612cf4565b8260200151146120e65760405162461bcd60e51b815260040161055290613214565b60006120f0612a9d565b6040516308fc762760e31b8152600481018a90529091506001600160a01b038216906347e3b13890602401611518565b6000806000846000612130612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561217557600080fd5b505afa158015612189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ad919061303f565b5160028111156121cd57634e487b7160e01b600052602160045260246000fd5b141561221b5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b866000612226612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561226c57600080fd5b505afa158015612280573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122a89190810190612f47565b905060006122c16810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561230357600080fd5b505afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612cf4565b82602001511461235d5760405162461bcd60e51b815260040161055290613214565b6000612367612af2565b90506000612373612a9d565b6040516242104d60e31b8152600481018f9052602481018e90529091506001600160a01b03831690630210826890604401606060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f69190612ca8565b919c509a5098508a156124ea576001600160a01b03811663e3ebdea58e61241d8d8d61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801561245b57600080fd5b505af115801561246f573d6000803e3d6000fd5b50505050600061247d612ab6565b9050806001600160a01b031663021082688f8c6040518363ffffffff1660e01b81526004016124b6929190918252602082015260400190565b600060405180830381600087803b1580156124d057600080fd5b505af11580156124e4573d6000803e3d6000fd5b50505050505b50505050505050509250925092565b6000846000612506612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561254b57600080fd5b505afa15801561255f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612583919061303f565b5160028111156125a357634e487b7160e01b600052602160045260246000fd5b146125f05760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b8660006125fb612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561264157600080fd5b505afa158015612655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261267d9190810190612f47565b905060006126966810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156126d857600080fd5b505afa1580156126ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127109190612cf4565b8260200151146127325760405162461bcd60e51b815260040161055290613214565b61273a612a9d565b6001600160a01b031663ec9356688c8c8c8c6040518563ffffffff1660e01b815260040161276b9493929190613190565b602060405180830381600087803b15801561278557600080fd5b505af1158015612799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bd9190612cf4565b9b9a5050505050505050505050565b60008060008460006127dc612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561282257600080fd5b505afa158015612836573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261285e9190810190612f47565b905060006128776810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156128b957600080fd5b505afa1580156128cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f19190612cf4565b8260200151146129135760405162461bcd60e51b815260040161055290613214565b600061291d612af2565b60405163fe64372b60e01b8152600481018c9052602481018b90529091506001600160a01b0382169063fe64372b906044016040805180830381600087803b15801561296857600080fd5b505af115801561297c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a091906130c4565b909750955060006129af612a9d565b60405163fe64372b60e01b8152600481018d9052602481018c90529091506001600160a01b0382169063fe64372b90604401600060405180830381600087803b1580156129fb57600080fd5b505af1158015612a0f573d6000803e3d6000fd5b505050506000612a1d612ab6565b90506001600160a01b03811663fe64372b8d612a398c8c61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b158015612a7757600080fd5b505af1158015612a8b573d6000803e3d6000fd5b50505050505050505050509250925092565b6000612ab165506f6c69637960d01b611bfa565b905090565b6000612ab163141bdbdb60e21b611bfa565b6000612ab164517565727960d81b611bfa565b6000612ab16810dbdb5c1bdb995b9d60ba1b611bfa565b6000612ab167547265617375727960c01b611bfa565b80518015158114611eaa57600080fd5b60008083601f840112612b29578182fd5b50813567ffffffffffffffff811115612b40578182fd5b602083019150836020828501011115612b5857600080fd5b9250929050565b600082601f830112612b6f578081fd5b815167ffffffffffffffff811115612b8957612b896132e1565b612b9c601f8201601f191660200161325c565b818152846020838601011115612bb0578283fd5b612bc18260208301602087016132b1565b949350505050565b805160038110611eaa57600080fd5b600060208284031215612be9578081fd5b8151612bf4816132f7565b9392505050565b600080600080600080600060a0888a031215612c15578283fd5b8735612c20816132f7565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612c4a578485fd5b612c568b838c01612b18565b909650945060808a0135915080821115612c6e578384fd5b50612c7b8a828b01612b18565b989b979a50959850939692959293505050565b600060208284031215612c9f578081fd5b612bf482612b08565b600080600060608486031215612cbc578081fd5b612cc584612b08565b925060208401519150604084015190509250925092565b600060208284031215612ced578081fd5b5035919050565b600060208284031215612d05578081fd5b5051919050565b600080600080600080600060a0888a031215612d26578081fd5b87359650602088013567ffffffffffffffff80821115612d44578283fd5b612d508b838c01612b18565b909850965060408a0135915080821115612d68578283fd5b50612d758a828b01612b18565b9095509350506060880135612d89816132f7565b809250506080880135905092959891949750929550565b60008060408385031215612db2578182fd5b50508035926020909101359150565b60008060008060608587031215612dd6578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612dfa578283fd5b612e0687828801612b18565b95989497509550505050565b600080600060608486031215612e26578081fd5b505081359360208301359350604090920135919050565b600080600080600060808688031215612e54578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115612e7f578182fd5b612e8b88828901612b18565b969995985093965092949392505050565b600060208284031215612ead578081fd5b815167ffffffffffffffff80821115612ec4578283fd5b9083019060c08286031215612ed7578283fd5b612ee160c061325c565b8251612eec8161330f565b808252506020830151602082015260408301516040820152606083015182811115612f15578485fd5b612f2187828601612b5f565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612f58578081fd5b815167ffffffffffffffff80821115612f6f578283fd5b9083019060c08286031215612f82578283fd5b612f8c60c061325c565b8251612f97816132f7565b815260208381015190820152612faf60408401612bc9565b6040820152606083015182811115612f15578485fd5b600060208284031215612fd6578081fd5b815167ffffffffffffffff80821115612fed578283fd5b9083019060c08286031215613000578283fd5b61300a60c061325c565b8251815260208301516002811061301f578485fd5b602082015260408381015190820152606083015182811115612f15578485fd5b6000610120808385031215613052578182fd5b61305b8161325c565b905061306683612bc9565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080604083850312156130d6578182fd5b505080516020909101519092909150565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600060018060a01b0386168252846020830152606060408301526131396060830184866130e7565b9695505050505050565b600088825260a0602083015261315d60a08301888a6130e7565b82810360408401526131708187896130e7565b6001600160a01b0395909516606084015250506080015295945050505050565b6000858252846020830152606060408301526131396060830184866130e7565b6000868252856020830152846040830152608060608301526131d66080830184866130e7565b979650505050505050565b60006020825282518060208401526132008160408501602087016132b1565b601f01601f19169190910160400192915050565b60208082526028908201527f4552524f523a5046442d3030343a50524f4345535349445f50524f445543545f60408201526709a92a69a82a886960c31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613285576132856132e1565b604052919050565b600082198211156132ac57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156132cc5781810151838201526020016132b4565b838111156132db576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461330c57600080fd5b50565b6004811061330c57600080fdfea264697066735822122092c051776eb1683c4470104ec76b5b4902125ab9cd0e8ba206bb1da8cad8d51c64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F29DBA2 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xB75C7DC6 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xB75C7DC6 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0xC46DF94E EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0xC6441798 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0xFAE43D15 EQ PUSH2 0x34A JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x35D JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x27A JUMPI DUP1 PUSH4 0x8CC7D3D1 EQ PUSH2 0x28D JUMPI DUP1 PUSH4 0x93B8414A EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x2B3 JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x2CE JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x30A73DA5 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x39C79E0C EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x781D7846 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x23B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x10B96080 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x22F86E7F EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x2C933F22 EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x3015394C EQ PUSH2 0x1C7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x370 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x31E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x183 PUSH2 0x17E CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x1A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x747 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x1B4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D0C JUMP JUMPDEST PUSH2 0x7D9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x1D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x9BE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DA PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2E12 JUMP JUMPDEST PUSH2 0xC46 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x1FD CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0xEFF JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x120F JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E12 JUMP JUMPDEST PUSH2 0x1392 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E3D JUMP JUMPDEST PUSH2 0x1554 JUMP JUMPDEST PUSH2 0x262 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x288 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x1733 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x29B CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x18B6 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x2AE CALLDATASIZE PUSH1 0x4 PUSH2 0x2BFB JUMP JUMPDEST PUSH2 0x1A68 JUMP JUMPDEST PUSH2 0x1B9 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH2 0x262 PUSH2 0x2DC CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1BFA JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x2EF CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1C9B JUMP JUMPDEST PUSH2 0x15A PUSH2 0x302 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1E17 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1EAF JUMP JUMPDEST PUSH2 0x32D PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x2120 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x358 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DC1 JUMP JUMPDEST PUSH2 0x24F9 JUMP JUMPDEST PUSH2 0x32D PUSH2 0x36B CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x27CC JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x37C PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCEF58F13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xCEF58F13 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x402 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2FC5 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 PUSH2 0x41B PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x475 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x49D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4B6 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x50C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x530 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x565 PUSH2 0x2AB6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5E2 SWAP2 SWAP1 PUSH2 0x2C8E JUMP JUMPDEST SWAP6 POP DUP6 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 PUSH2 0x5F4 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB92AA51 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x5C955288 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x639 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x64D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x260A6661 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH4 0x4C14CCC2 SWAP2 POP PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x0 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 POP PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x703 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x727 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST SWAP1 POP PUSH2 0x737 DUP10 DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x2120 JUMP JUMPDEST POP POP POP POP POP JUMPDEST POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x753 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x79D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x402 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x0 PUSH2 0x7E6 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x82C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x840 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x868 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x881 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8FB SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x91D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x925 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2C933F22 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x95C SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3143 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x98A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AE SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x9C9 PUSH2 0x2AC8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9D5 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9B04ED30 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA02 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA52 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA5E PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xAE0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xAF9 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB4F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB73 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0xBD6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030353A5245515545535449445F50524F445543545F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x9A92A69A82A8869 PUSH1 0xC3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x552 JUMP JUMPDEST PUSH2 0xBDE PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x40E58EE5 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0B SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0xC51 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCCE SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCEE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xD3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030333A504F4C4943595F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH2 0xD47 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xDC9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xDE2 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE5C SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0xE7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE88 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0xF0A PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF87 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFA7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030323A504F4C4943595F4E4F545F45585049524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0xFFF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1045 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1059 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1081 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x109A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1114 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1136 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1140 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x15B95B65 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xADCADB28 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1199 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x11A7 PUSH2 0x2AB6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x67D42A8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x67D42A8B SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1200 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 PUSH2 0x121A PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1274 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x129C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x12B5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x130B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x132F SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1351 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x135B PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD PUSH2 0xC0B JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0x139D PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x141F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1438 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x148E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14B2 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x14D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14DE PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1532 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1546 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH1 0x0 PUSH2 0x1561 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x15E3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x15FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1652 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1676 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1698 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x16A0 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDB42B77B DUP12 DUP12 DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16D3 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x31B0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1701 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1725 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 PUSH2 0x173E PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1798 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x17C0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17D9 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x181B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x182F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1853 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1875 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x187F PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0xC0B JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x18C1 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x191B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1943 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x195C PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x199E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19D6 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x19F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A02 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296D6C7D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x296D6C7D SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1A73 PUSH2 0x2ADB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ACC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1AF0 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AFC PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x50C0A50D PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA1814A1A SWAP1 PUSH2 0x1B31 SWAP1 DUP15 SWAP1 DUP7 SWAP1 DUP14 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0x3111 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B83 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33C019B7 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6780336E SWAP1 PUSH2 0x1BBA SWAP1 DUP8 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x31B0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C71 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C95 SWAP2 SWAP1 PUSH2 0x2BD8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x1CA6 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D00 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1D28 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D41 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D97 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DBB SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1DDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DE7 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEB96CBED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xEB96CBED SWAP1 PUSH1 0x24 ADD PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1E23 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1EA2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x1EBA PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F13 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F37 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1F57 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1FA4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0x1FAF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2009 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2031 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x204A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20C4 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x20E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20F0 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8FC7627 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x47E3B138 SWAP1 PUSH1 0x24 ADD PUSH2 0x1518 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x2130 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2189 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21AD SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x21CD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x221B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030333A504F4C4943595F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP7 PUSH1 0x0 PUSH2 0x2226 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x226C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2280 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x22A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x22C1 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2317 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x233B SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x235D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2367 PUSH2 0x2AF2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2373 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x42104D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x2108268 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23F6 SWAP2 SWAP1 PUSH2 0x2CA8 JUMP JUMPDEST SWAP2 SWAP13 POP SWAP11 POP SWAP9 POP DUP11 ISZERO PUSH2 0x24EA JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH4 0xE3EBDEA5 DUP15 PUSH2 0x241D DUP14 DUP14 PUSH2 0x328D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x245B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x246F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x247D PUSH2 0x2AB6 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2108268 DUP16 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24B6 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x2506 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x254B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x255F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2583 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x25A3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x25F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP7 PUSH1 0x0 PUSH2 0x25FB PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x267D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2696 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2710 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x2732 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x273A PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEC935668 DUP13 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x276B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3190 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2785 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2799 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27BD SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x27DC PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x285E SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2877 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28F1 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x2913 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x291D PUSH2 0x2AF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2968 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x297C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x29A0 SWAP2 SWAP1 PUSH2 0x30C4 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x0 PUSH2 0x29AF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x2A1D PUSH2 0x2AB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH4 0xFE64372B DUP14 PUSH2 0x2A39 DUP13 DUP13 PUSH2 0x328D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1BFA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1BFA JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1EAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2B29 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B40 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2B58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2B6F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B89 JUMPI PUSH2 0x2B89 PUSH2 0x32E1 JUMP JUMPDEST PUSH2 0x2B9C PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x325C JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2BB0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2BC1 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x32B1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1EAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BE9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2BF4 DUP2 PUSH2 0x32F7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2C15 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH2 0x2C20 DUP2 PUSH2 0x32F7 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C4A JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2C56 DUP12 DUP4 DUP13 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2C6E JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2C7B DUP11 DUP3 DUP12 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C9F JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2BF4 DUP3 PUSH2 0x2B08 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2CBC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2CC5 DUP5 PUSH2 0x2B08 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CED JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D05 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2D26 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2D44 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2D50 DUP12 DUP4 DUP13 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D68 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2D75 DUP11 DUP3 DUP12 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH2 0x2D89 DUP2 PUSH2 0x32F7 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2DB2 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2DD6 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DFA JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2E06 DUP8 DUP3 DUP9 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2E26 JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2E54 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2E7F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2E8B DUP9 DUP3 DUP10 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EAD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2EC4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2ED7 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2EE1 PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2EEC DUP2 PUSH2 0x330F JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2F21 DUP8 DUP3 DUP7 ADD PUSH2 0x2B5F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F58 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F6F JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2F82 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2F8C PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2F97 DUP2 PUSH2 0x32F7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2FAF PUSH1 0x40 DUP5 ADD PUSH2 0x2BC9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FD6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2FED JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3000 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x300A PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x301F JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3052 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x305B DUP2 PUSH2 0x325C JUMP JUMPDEST SWAP1 POP PUSH2 0x3066 DUP4 PUSH2 0x2BC9 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x30D6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3139 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP9 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x315D PUSH1 0xA0 DUP4 ADD DUP9 DUP11 PUSH2 0x30E7 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3170 DUP2 DUP8 DUP10 PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3139 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31D6 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3200 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x32B1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030343A50524F4345535349445F50524F445543545F PUSH1 0x40 DUP3 ADD MSTORE PUSH8 0x9A92A69A82A8869 PUSH1 0xC3 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3285 JUMPI PUSH2 0x3285 PUSH2 0x32E1 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x32AC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x32CC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x32B4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x32DB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x330C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x330C JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 0xC0 MLOAD PUSH24 0x6EB1683C4470104EC76B5B4902125AB9CD0E8BA206BB1DA8 0xCA 0xD8 0xD5 SHR PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"565:10634:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10204:246;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3588:1022;;;;;;:::i;:::-;;:::i;:::-;;;12932:14:103;;12925:22;12907:41;;12895:2;12880:18;3588:1022:72;12862:92:103;9956:242:72;;;;;;:::i;:::-;;:::i;9016:523::-;;;;;;:::i;:::-;;:::i;:::-;;;13439:25:103;;;13427:2;13412:18;9016:523:72;13394:76:103;9545:171:72;;;;;;:::i;:::-;;:::i;:::-;;5653:392;;;;;;:::i;:::-;;:::i;6492:301::-;;;;;;:::i;:::-;;:::i;7486:234::-;;;;;;:::i;:::-;;:::i;7174:306::-;;;;;;:::i;:::-;;:::i;7962:336::-;;;;;;:::i;:::-;;:::i;412:35:91:-;;;;;;;;-1:-1:-1;;;;;12306:32:103;;;12288:51;;12276:2;12261:18;412:35:91;12243:102:103;7726:230:72;;;;;;:::i;:::-;;:::i;6052:200::-;;;;;;:::i;:::-;;:::i;2663:654::-;;;;;;:::i;:::-;;:::i;620:50::-;;-1:-1:-1;;;620:50:72;;1344:200:91;;;;;;:::i;:::-;;:::i;3323:197:72:-;;;;;;:::i;:::-;;:::i;9722:228::-;;;;;;:::i;:::-;;:::i;6258:::-;;;;;;:::i;:::-;;:::i;4847:796::-;;;;;;:::i;:::-;;:::i;:::-;;;;13180:14:103;;13173:22;13155:41;;13227:2;13212:18;;13205:34;;;;13255:18;;;13248:34;13143:2;13128:18;4847:796:72;13110:178:103;6799:369:72;;;;;;:::i;:::-;;:::i;8304:706::-;;;;;;:::i;:::-;;:::i;10204:246::-;10311:12;10339:23;10365:19;:17;:19::i;:::-;10401:37;;-1:-1:-1;;;10401:37:72;;;;;14329:25:103;;;14370:18;;;14363:34;;;10339:45:72;;-1:-1:-1;;;;;;10401:16:72;;;;;14302:18:103;;10401:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10401:37:72;;;;;;;;;;;;:::i;:::-;:42;;;;10204:246;-1:-1:-1;;;;10204:246:72:o;3588:1022::-;3704:12;3677:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;;;;;;;;;3795:19:::1;3817:17;:15;:17::i;:::-;3854:26;::::0;-1:-1:-1;;;3854:26:72;;::::1;::::0;::::1;13439:25:103::0;;;3795:39:72;;-1:-1:-1;;;;;;3854:15:72;::::1;::::0;::::1;::::0;13412:18:103;;3854:26:72::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3844:36;;4207:7;4203:401;;;4230:33;4266:19;:17;:19::i;:::-;4299:49;::::0;-1:-1:-1;;;4299:49:72;;::::1;::::0;::::1;13439:25:103::0;;;4230:55:72;;-1:-1:-1;;;;;;4299:38:72;::::1;::::0;::::1;::::0;13412:18:103;;4299:49:72::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4362:40:72::1;::::0;-1:-1:-1;;;4362:40:72;;::::1;::::0;::::1;13439:25:103::0;;;-1:-1:-1;;;;;4362:29:72;::::1;::::0;-1:-1:-1;4362:29:72::1;::::0;-1:-1:-1;13412:18:103;;4362:40:72::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4487:37:72::1;::::0;-1:-1:-1;;;4487:37:72;;::::1;::::0;::::1;13439:25:103::0;;;4456:28:72::1;::::0;-1:-1:-1;;;;;;4487:26:72;::::1;::::0;-1:-1:-1;4487:26:72::1;::::0;13412:18:103;;4487:37:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4456:68;;4538:55;4553:9;4564:6;:28;;;4538:14;:55::i;:::-;;;;4203:401;;;1919:1;3588:1022:::0;;;;;;;:::o;9956:242::-;10061:12;10089:23;10115:19;:17;:19::i;:::-;10151:35;;-1:-1:-1;;;10151:35:72;;;;;14329:25:103;;;14370:18;;;14363:34;;;10089:45:72;;-1:-1:-1;;;;;;10151:15:72;;;;;14302:18:103;;10151:35:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10151:35:72;;;;;;;;;;;;:::i;9016:523::-;9300:18;9272:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;9348:18:::1;:16;:18::i;:::-;-1:-1:-1::0;;;;;9348:26:72::1;;9388:9;9411:6;;9431:19;;9464:24;9502:20;9348:184;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9335:197:::0;9016:523;-1:-1:-1;;;;;;;;;;;;9016:523:72:o;9545:171::-;9648:9;1991:17;2011:18;:16;:18::i;:::-;1991:38;;2039:17;2059:18;:16;:18::i;:::-;-1:-1:-1;;;;;2059:31:72;;2091:9;2059:42;;;;;;;;;;;;;13439:25:103;;13427:2;13412:18;;13394:76;2059:42:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2039:62;;2111:23;2137:19;:17;:19::i;:::-;2201:29;;-1:-1:-1;;;2201:29:72;;;;;13439:25:103;;;2111:45:72;;-1:-1:-1;2166:32:72;;-1:-1:-1;;;;;2201:18:72;;;;;13412::103;;2201:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2201:29:72;;;;;;;;;;;;:::i;:::-;2166:64;;2240:29;2292:36;-1:-1:-1;;;2292:23:72;:36::i;:::-;2369:45;;-1:-1:-1;;;2369:45:72;;2402:10;2369:45;;;12288:51:103;2240:89:72;;-1:-1:-1;;;;;;2369:24:72;;;;;12261:18:103;;2369:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2347:8;:18;;;:67;2339:120;;;;-1:-1:-1;;;2339:120:72;;17531:2:103;2339:120:72;;;17513:21:103;17570:2;17550:18;;;17543:30;17609:34;17589:18;;;17582:62;-1:-1:-1;;;17660:18:103;;;17653:38;17708:19;;2339:120:72;17503:230:103;2339:120:72;9673:18:::1;:16;:18::i;:::-;-1:-1:-1::0;;;;;9673:25:72::1;;9699:9;9673:36;;;;;;;;;;;;;13439:25:103::0;;13427:2;13412:18;;13394:76;9673:36:72::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9545:171:::0;;;;;;;:::o;5653:392::-;5834:9;1284:23;1310:19;:17;:19::i;:::-;1284:45;-1:-1:-1;1397:26:72;1360:27;;-1:-1:-1;;;1360:27:72;;;;;13439:25:103;;;-1:-1:-1;;;;;1360:16:72;;;;;13412:18:103;;1360:27:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;:63;;;;;;-1:-1:-1;;;1360:63:72;;;;;;;;;;;1339:137;;;;-1:-1:-1;;;1339:137:72;;17940:2:103;1339:137:72;;;17922:21:103;17979:2;17959:18;;;17952:30;18018:29;17998:18;;;17991:57;18065:18;;1339:137:72;17912:177:103;1339:137:72;5876:9:::1;1561:23;1587:19;:17;:19::i;:::-;1651:29;::::0;-1:-1:-1;;;1651:29:72;;::::1;::::0;::::1;13439:25:103::0;;;1561:45:72;;-1:-1:-1;1616:32:72::1;::::0;-1:-1:-1;;;;;1651:18:72;::::1;::::0;::::1;::::0;13412::103;;1651:29:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1651:29:72::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1::0;;;1742:23:72::1;:36::i;:::-;1819:45;::::0;-1:-1:-1;;;1819:45:72;;1852:10:::1;1819:45;::::0;::::1;12288:51:103::0;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;::::1;::::0;::::1;::::0;12261:18:103;;1819:45:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1::0;;;1789:120:72::1;;;;;;;:::i;:::-;5901:23:::2;5927:19;:17;:19::i;:::-;5956:82;::::0;-1:-1:-1;;;5956:82:72;;::::2;::::0;::::2;15001:25:103::0;;;15042:18;;;15035:34;;;15085:18;;;15078:34;;;5901:45:72;;-1:-1:-1;;;;;;5956:30:72;::::2;::::0;::::2;::::0;14974:18:103;;5956:82:72::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;1919:1;1486::::1;;;;5653:392:::0;;;;;:::o;6492:301::-;6570:9;1008:23;1034:19;:17;:19::i;:::-;1008:45;-1:-1:-1;1121:27:72;1084;;-1:-1:-1;;;1084:27:72;;;;;13439:25:103;;;-1:-1:-1;;;;;1084:16:72;;;;;13412:18:103;;1084:27:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;:64;;;;;;-1:-1:-1;;;1084:64:72;;;;;;;;;;1063:143;;;;-1:-1:-1;;;1063:143:72;;16810:2:103;1063:143:72;;;16792:21:103;;;16829:18;;;16822:30;16888:34;16868:18;;;16861:62;16940:18;;1063:143:72;16782:182:103;1063:143:72;6612:9:::1;1561:23;1587:19;:17;:19::i;:::-;1651:29;::::0;-1:-1:-1;;;1651:29:72;;::::1;::::0;::::1;13439:25:103::0;;;1561:45:72;;-1:-1:-1;1616:32:72::1;::::0;-1:-1:-1;;;;;1651:18:72;::::1;::::0;::::1;::::0;13412::103;;1651:29:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1651:29:72::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1::0;;;1742:23:72::1;:36::i;:::-;1819:45;::::0;-1:-1:-1;;;1819:45:72;;1852:10:::1;1819:45;::::0;::::1;12288:51:103::0;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;::::1;::::0;::::1;::::0;12261:18:103;;1819:45:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1::0;;;1789:120:72::1;;;;;;;:::i;:::-;6637:14:::2;6654:19;:17;:19::i;:::-;6683:29;::::0;-1:-1:-1;;;6683:29:72;;::::2;::::0;::::2;13439:25:103::0;;;6637:36:72;;-1:-1:-1;;;;;;6683:18:72;::::2;::::0;::::2;::::0;13412::103;;6683:29:72::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;6723:10;6736:17;:15;:17::i;:::-;6763:23;::::0;-1:-1:-1;;;6763:23:72;;::::2;::::0;::::2;13439:25:103::0;;;6723:30:72;;-1:-1:-1;;;;;;6763:12:72;::::2;::::0;::::2;::::0;13412:18:103;;6763:23:72::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;1919:1;;1216::::1;;;;6492:301:::0;;;:::o;7486:234::-;7594:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;7619:23:::1;7645:19;:17;:19::i;:::-;7674:39;::::0;-1:-1:-1;;;7674:39:72;;::::1;::::0;::::1;14329:25:103::0;;;14370:18;;;14363:34;;;7619:45:72;;-1:-1:-1;;;;;;7674:19:72;::::1;::::0;::::1;::::0;14302:18:103;;7674:39:72::1;14284:119:103::0;7174:306:72;7336:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;7362:23:::1;7388:19;:17;:19::i;:::-;7417:56;::::0;-1:-1:-1;;;7417:56:72;;::::1;::::0;::::1;15001:25:103::0;;;15042:18;;;15035:34;;;15085:18;;;15078:34;;;7362:45:72;;-1:-1:-1;;;;;;7417:19:72;::::1;::::0;::::1;::::0;14974:18:103;;7417:56:72::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1919:1;7174:306:::0;;;;;;;:::o;7962:336::-;8169:16;8142:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;8212:19:::1;:17;:19::i;:::-;-1:-1:-1::0;;;;;8212:45:72::1;;8258:9;8269:7;8278:6;8286:4;;8212:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8201:90:::0;7962:336;-1:-1:-1;;;;;;;;;;7962:336:72:o;7726:230::-;7832:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;7857:23:::1;7883:19;:17;:19::i;:::-;7912:37;::::0;-1:-1:-1;;;7912:37:72;;::::1;::::0;::::1;14329:25:103::0;;;14370:18;;;14363:34;;;7857:45:72;;-1:-1:-1;;;;;;7912:17:72;::::1;::::0;::::1;::::0;14302:18:103;;7912:37:72::1;14284:119:103::0;6052:200:72;6120:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;6163:14:::1;6180:19;:17;:19::i;:::-;6209:36;::::0;-1:-1:-1;;;6209:36:72;;::::1;::::0;::::1;13439:25:103::0;;;6163:36:72;;-1:-1:-1;;;;;;6209:25:72;::::1;::::0;::::1;::::0;13412:18:103;;6209:36:72::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1919:1;6052:200:::0;;;;;:::o;2663:654::-;2890:17;2923:29;2955:22;:20;:22::i;:::-;3007:36;;-1:-1:-1;;;3007:36:72;;3032:10;3007:36;;;12288:51:103;2923:54:72;;-1:-1:-1;2987:17:72;;-1:-1:-1;;;;;3007:24:72;;;;;12261:18:103;;3007:36:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2987:56;;3054:14;3071:19;:17;:19::i;:::-;3112:51;;-1:-1:-1;;;3112:51:72;;3054:36;;-1:-1:-1;;;;;;3112:23:72;;;;;:51;;3136:5;;3143:9;;3154:8;;;;3112:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3173:137;;-1:-1:-1;;;3173:137:72;;3100:63;;-1:-1:-1;;;;;;3173:24:72;;;;;:137;;3100:63;;3235:13;;3263:16;;3294:15;;;;3173:137;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2663:654;;;;;;;;;;;;:::o;1344:200:91:-;1502:35;;-1:-1:-1;;;1502:35:91;;;;;13439:25:103;;;1465:13:91;;1502:8;-1:-1:-1;;;;;1502:20:91;;;;13412:18:103;;1502:35:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1494:43;1344:200;-1:-1:-1;;1344:200:91:o;3323:197:72:-;3407:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;3432:14:::1;3449:19;:17;:19::i;:::-;3478:35;::::0;-1:-1:-1;;;3478:35:72;;::::1;::::0;::::1;13439:25:103::0;;;3432:36:72;;-1:-1:-1;;;;;;3478:24:72;::::1;::::0;::::1;::::0;13412:18:103;;3478:35:72::1;13394:76:103::0;9722:228:72;9816:12;9844:23;9870:19;:17;:19::i;:::-;9906:32;;-1:-1:-1;;;9906:32:72;;;;;13439:25:103;;;9844:45:72;;-1:-1:-1;;;;;;9906:21:72;;;;;13412:18:103;;9906:32:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9906:32:72;;;;;;;;;;;;:::i;:::-;:37;;;9899:44;;;9722:228;;;;:::o;6258:::-;6336:9;732:23;758:19;:17;:19::i;:::-;732:45;-1:-1:-1;845:26:72;808:27;;-1:-1:-1;;;808:27:72;;;;;13439:25:103;;;-1:-1:-1;;;;;808:16:72;;;;;13412:18:103;;808:27:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;:63;;;;;;-1:-1:-1;;;808:63:72;;;;;;;;;;787:141;;;;-1:-1:-1;;;787:141:72;;17171:2:103;787:141:72;;;17153:21:103;17210:2;17190:18;;;17183:30;17249:33;17229:18;;;17222:61;17300:18;;787:141:72;17143:181:103;787:141:72;6378:9:::1;1561:23;1587:19;:17;:19::i;:::-;1651:29;::::0;-1:-1:-1;;;1651:29:72;;::::1;::::0;::::1;13439:25:103::0;;;1561:45:72;;-1:-1:-1;1616:32:72::1;::::0;-1:-1:-1;;;;;1651:18:72;::::1;::::0;::::1;::::0;13412::103;;1651:29:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1651:29:72::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1::0;;;1742:23:72::1;:36::i;:::-;1819:45;::::0;-1:-1:-1;;;1819:45:72;;1852:10:::1;1819:45;::::0;::::1;12288:51:103::0;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;::::1;::::0;::::1;::::0;12261:18:103;;1819:45:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1::0;;;1789:120:72::1;;;;;;;:::i;:::-;6403:14:::2;6420:19;:17;:19::i;:::-;6449:30;::::0;-1:-1:-1;;;6449:30:72;;::::2;::::0;::::2;13439:25:103::0;;;6403:36:72;;-1:-1:-1;;;;;;6449:19:72;::::2;::::0;::::2;::::0;13412:18:103;;6449:30:72::2;13394:76:103::0;4847:796:72;5029:12;5056:17;5088:24;4947:9;1284:23;1310:19;:17;:19::i;:::-;1284:45;-1:-1:-1;1397:26:72;1360:27;;-1:-1:-1;;;1360:27:72;;;;;13439:25:103;;;-1:-1:-1;;;;;1360:16:72;;;;;13412:18:103;;1360:27:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;:63;;;;;;-1:-1:-1;;;1360:63:72;;;;;;;;;;;1339:137;;;;-1:-1:-1;;;1339:137:72;;17940:2:103;1339:137:72;;;17922:21:103;17979:2;17959:18;;;17952:30;18018:29;17998:18;;;17991:57;18065:18;;1339:137:72;17912:177:103;1339:137:72;4989:9:::1;1561:23;1587:19;:17;:19::i;:::-;1651:29;::::0;-1:-1:-1;;;1651:29:72;;::::1;::::0;::::1;13439:25:103::0;;;1561:45:72;;-1:-1:-1;1616:32:72::1;::::0;-1:-1:-1;;;;;1651:18:72;::::1;::::0;::::1;::::0;13412::103;;1651:29:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1651:29:72::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1::0;;;1742:23:72::1;:36::i;:::-;1819:45;::::0;-1:-1:-1;;;1819:45:72;;1852:10:::1;1819:45;::::0;::::1;12288:51:103::0;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;::::1;::::0;::::1;::::0;12261:18:103;;1819:45:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1::0;;;1789:120:72::1;;;;;;;:::i;:::-;5138:23:::2;5164:21;:19;:21::i;:::-;5138:47;;5195:23;5221:19;:17;:19::i;:::-;5292:42;::::0;-1:-1:-1;;;5292:42:72;;::::2;::::0;::::2;14329:25:103::0;;;14370:18;;;14363:34;;;5195:45:72;;-1:-1:-1;;;;;;5292:23:72;::::2;::::0;::::2;::::0;14302:18:103;;5292:42:72::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5251:83:::0;;-1:-1:-1;5251:83:72;-1:-1:-1;5251:83:72;-1:-1:-1;5421:216:72;::::2;;;-1:-1:-1::0;;;;;5448:21:72;::::2;;5470:9:::0;5481:28:::2;5500:9:::0;5481:16;:28:::2;:::i;:::-;5448:62;::::0;-1:-1:-1;;;;;;5448:62:72::2;::::0;;;;;;::::2;::::0;::::2;14329:25:103::0;;;;14370:18;;;14363:34;14302:18;;5448:62:72::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;5525:19;5547:17;:15;:17::i;:::-;5525:39;;5578:4;-1:-1:-1::0;;;;;5578:19:72::2;;5598:9;5609:16;5578:48;;;;;;;;;;;;;;;14329:25:103::0;;;14385:2;14370:18;;14363:34;14317:2;14302:18;;14284:119;5578:48:72::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;5421:216;;1919:1;;1486::::1;;;;4847:796:::0;;;;;;;:::o;6799:369::-;7021:15;6951:9;732:23;758:19;:17;:19::i;:::-;732:45;-1:-1:-1;845:26:72;808:27;;-1:-1:-1;;;808:27:72;;;;;13439:25:103;;;-1:-1:-1;;;;;808:16:72;;;;;13412:18:103;;808:27:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;:63;;;;;;-1:-1:-1;;;808:63:72;;;;;;;;;;787:141;;;;-1:-1:-1;;;787:141:72;;17171:2:103;787:141:72;;;17153:21:103;17210:2;17190:18;;;17183:30;17249:33;17229:18;;;17222:61;17300:18;;787:141:72;17143:181:103;787:141:72;6993:9:::1;1561:23;1587:19;:17;:19::i;:::-;1651:29;::::0;-1:-1:-1;;;1651:29:72;;::::1;::::0;::::1;13439:25:103::0;;;1561:45:72;;-1:-1:-1;1616:32:72::1;::::0;-1:-1:-1;;;;;1651:18:72;::::1;::::0;::::1;::::0;13412::103;;1651:29:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1651:29:72::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1::0;;;1742:23:72::1;:36::i;:::-;1819:45;::::0;-1:-1:-1;;;1819:45:72;;1852:10:::1;1819:45;::::0;::::1;12288:51:103::0;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;::::1;::::0;::::1;::::0;12261:18:103;;1819:45:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1::0;;;1789:120:72::1;;;;;;;:::i;:::-;7062:19:::2;:17;:19::i;:::-;-1:-1:-1::0;;;;;7062:31:72::2;;7107:9;7131:11;7156:4;;7062:99;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7052:109:::0;6799:369;-1:-1:-1;;;;;;;;;;;6799:369:72:o;8304:706::-;8475:12;8501:17;8532:23;8435:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;8580:23:::1;8606:21;:19;:21::i;:::-;8668:43;::::0;-1:-1:-1;;;8668:43:72;;::::1;::::0;::::1;14329:25:103::0;;;14370:18;;;14363:34;;;8580:47:72;;-1:-1:-1;;;;;;8668:22:72;::::1;::::0;::::1;::::0;14302:18:103;;8668:43:72::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8637:74:::0;;-1:-1:-1;8637:74:72;-1:-1:-1;8798:14:72::1;8815:19;:17;:19::i;:::-;8844:41;::::0;-1:-1:-1;;;8844:41:72;;::::1;::::0;::::1;14329:25:103::0;;;14370:18;;;14363:34;;;8798:36:72;;-1:-1:-1;;;;;;8844:20:72;::::1;::::0;::::1;::::0;14302:18:103;;8844:41:72::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8896:19;8918:17;:15;:17::i;:::-;8896:39:::0;-1:-1:-1;;;;;;8945:18:72;::::1;;8964:9:::0;8975:27:::1;8993:9:::0;8975:15;:27:::1;:::i;:::-;8945:58;::::0;-1:-1:-1;;;;;;8945:58:72::1;::::0;;;;;;::::1;::::0;::::1;14329:25:103::0;;;;14370:18;;;14363:34;14302:18;;8945:58:72::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1919:1;;;8304:706:::0;;;;;;;;;:::o;10762:145::-;10814:16;10866:33;-1:-1:-1;;;10866:23:72;:33::i;:::-;10842:58;;10762:145;:::o;10619:137::-;10669:14;10717:31;-1:-1:-1;;;10717:23:72;:31::i;10913:133::-;10964:11;11006:32;-1:-1:-1;;;11006:23:72;:32::i;10456:157::-;10511:19;10569:36;-1:-1:-1;;;10569:23:72;:36::i;11052:145::-;11106:14;11154:35;-1:-1:-1;;;11154:23:72;:35::i;14:164:103:-;90:13;;139;;132:21;122:32;;112:2;;168:1;165;158:12;183:375;;;298:3;291:4;283:6;279:17;275:27;265:2;;323:8;313;306:26;265:2;-1:-1:-1;353:20:103;;396:18;385:30;;382:2;;;435:8;425;418:26;382:2;479:4;471:6;467:17;455:29;;531:3;524:4;515:6;507;503:19;499:30;496:39;493:2;;;548:1;545;538:12;493:2;255:303;;;;;:::o;563:512::-;;669:3;662:4;654:6;650:17;646:27;636:2;;691:5;684;677:20;636:2;724:6;718:13;750:18;746:2;743:26;740:2;;;772:18;;:::i;:::-;816:55;859:2;840:13;;-1:-1:-1;;836:27:103;865:4;832:38;816:55;:::i;:::-;896:2;887:7;880:19;942:3;935:4;930:2;922:6;918:15;914:26;911:35;908:2;;;963:5;956;949:20;908:2;980:64;1041:2;1034:4;1025:7;1021:18;1014:4;1006:6;1002:17;980:64;:::i;:::-;1062:7;626:449;-1:-1:-1;;;;626:449:103:o;1080:160::-;1172:13;;1214:1;1204:12;;1194:2;;1230:1;1227;1220:12;1245:261;;1368:2;1356:9;1347:7;1343:23;1339:32;1336:2;;;1389:6;1381;1374:22;1336:2;1426:9;1420:16;1445:31;1470:5;1445:31;:::i;:::-;1495:5;1326:180;-1:-1:-1;;;1326:180:103:o;1511:1020::-;;;;;;;;1729:3;1717:9;1708:7;1704:23;1700:33;1697:2;;;1751:6;1743;1736:22;1697:2;1795:9;1782:23;1814:31;1839:5;1814:31;:::i;:::-;1864:5;-1:-1:-1;1916:2:103;1901:18;;1888:32;;-1:-1:-1;1967:2:103;1952:18;;1939:32;;-1:-1:-1;2022:2:103;2007:18;;1994:32;2045:18;2075:14;;;2072:2;;;2107:6;2099;2092:22;2072:2;2151:58;2201:7;2192:6;2181:9;2177:22;2151:58;:::i;:::-;2228:8;;-1:-1:-1;2125:84:103;-1:-1:-1;2316:3:103;2301:19;;2288:33;;-1:-1:-1;2333:16:103;;;2330:2;;;2367:6;2359;2352:22;2330:2;;2411:60;2463:7;2452:8;2441:9;2437:24;2411:60;:::i;:::-;1687:844;;;;-1:-1:-1;1687:844:103;;-1:-1:-1;1687:844:103;;;;2385:86;;-1:-1:-1;;;1687:844:103:o;2536:212::-;;2656:2;2644:9;2635:7;2631:23;2627:32;2624:2;;;2677:6;2669;2662:22;2624:2;2705:37;2732:9;2705:37;:::i;2753:334::-;;;;2907:2;2895:9;2886:7;2882:23;2878:32;2875:2;;;2928:6;2920;2913:22;2875:2;2956:37;2983:9;2956:37;:::i;:::-;2946:47;;3033:2;3022:9;3018:18;3012:25;3002:35;;3077:2;3066:9;3062:18;3056:25;3046:35;;2865:222;;;;;:::o;3092:190::-;;3204:2;3192:9;3183:7;3179:23;3175:32;3172:2;;;3225:6;3217;3210:22;3172:2;-1:-1:-1;3253:23:103;;3162:120;-1:-1:-1;3162:120:103:o;3287:194::-;;3410:2;3398:9;3389:7;3385:23;3381:32;3378:2;;;3431:6;3423;3416:22;3378:2;-1:-1:-1;3459:16:103;;3368:113;-1:-1:-1;3368:113:103:o;3486:1021::-;;;;;;;;3705:3;3693:9;3684:7;3680:23;3676:33;3673:2;;;3727:6;3719;3712:22;3673:2;3768:9;3755:23;3745:33;;3829:2;3818:9;3814:18;3801:32;3852:18;3893:2;3885:6;3882:14;3879:2;;;3914:6;3906;3899:22;3879:2;3958:58;4008:7;3999:6;3988:9;3984:22;3958:58;:::i;:::-;4035:8;;-1:-1:-1;3932:84:103;-1:-1:-1;4123:2:103;4108:18;;4095:32;;-1:-1:-1;4139:16:103;;;4136:2;;;4173:6;4165;4158:22;4136:2;;4217:60;4269:7;4258:8;4247:9;4243:24;4217:60;:::i;:::-;4296:8;;-1:-1:-1;4191:86:103;-1:-1:-1;;4381:2:103;4366:18;;4353:32;4394:31;4353:32;4394:31;:::i;:::-;4444:5;4434:15;;;4496:3;4485:9;4481:19;4468:33;4458:43;;3663:844;;;;;;;;;;:::o;4512:258::-;;;4641:2;4629:9;4620:7;4616:23;4612:32;4609:2;;;4662:6;4654;4647:22;4609:2;-1:-1:-1;;4690:23:103;;;4760:2;4745:18;;;4732:32;;-1:-1:-1;4599:171:103:o;4775:565::-;;;;;4940:2;4928:9;4919:7;4915:23;4911:32;4908:2;;;4961:6;4953;4946:22;4908:2;5002:9;4989:23;4979:33;;5059:2;5048:9;5044:18;5031:32;5021:42;;5114:2;5103:9;5099:18;5086:32;5141:18;5133:6;5130:30;5127:2;;;5178:6;5170;5163:22;5127:2;5222:58;5272:7;5263:6;5252:9;5248:22;5222:58;:::i;:::-;4898:442;;;;-1:-1:-1;5299:8:103;-1:-1:-1;;;;4898:442:103:o;5345:326::-;;;;5491:2;5479:9;5470:7;5466:23;5462:32;5459:2;;;5512:6;5504;5497:22;5459:2;-1:-1:-1;;5540:23:103;;;5610:2;5595:18;;5582:32;;-1:-1:-1;5661:2:103;5646:18;;;5633:32;;5449:222;-1:-1:-1;5449:222:103:o;5676:634::-;;;;;;5858:3;5846:9;5837:7;5833:23;5829:33;5826:2;;;5880:6;5872;5865:22;5826:2;5921:9;5908:23;5898:33;;5978:2;5967:9;5963:18;5950:32;5940:42;;6029:2;6018:9;6014:18;6001:32;5991:42;;6084:2;6073:9;6069:18;6056:32;6111:18;6103:6;6100:30;6097:2;;;6148:6;6140;6133:22;6097:2;6192:58;6242:7;6233:6;6222:9;6218:22;6192:58;:::i;:::-;5816:494;;;;-1:-1:-1;5816:494:103;;-1:-1:-1;6269:8:103;;6166:84;5816:494;-1:-1:-1;;;5816:494:103:o;6315:1005::-;;6467:2;6455:9;6446:7;6442:23;6438:32;6435:2;;;6488:6;6480;6473:22;6435:2;6526:9;6520:16;6555:18;6596:2;6588:6;6585:14;6582:2;;;6617:6;6609;6602:22;6582:2;6645:22;;;;6701:4;6683:16;;;6679:27;6676:2;;;6724:6;6716;6709:22;6676:2;6755:21;6771:4;6755:21;:::i;:::-;6806:2;6800:9;6818:47;6857:7;6818:47;:::i;:::-;6888:7;6881:5;6874:22;;6942:2;6938;6934:11;6928:18;6923:2;6916:5;6912:14;6905:42;6993:2;6989;6985:11;6979:18;6974:2;6967:5;6963:14;6956:42;7037:2;7033;7029:11;7023:18;7066:2;7056:8;7053:16;7050:2;;;7087:6;7079;7072:22;7050:2;7128:55;7175:7;7164:8;7160:2;7156:17;7128:55;:::i;:::-;7123:2;7116:5;7112:14;7105:79;;7231:3;7227:2;7223:12;7217:19;7211:3;7204:5;7200:15;7193:44;7284:3;7280:2;7276:12;7270:19;7264:3;7257:5;7253:15;7246:44;7309:5;7299:15;;;;;6425:895;;;;:::o;8329:1025::-;;8478:2;8466:9;8457:7;8453:23;8449:32;8446:2;;;8499:6;8491;8484:22;8446:2;8537:9;8531:16;8566:18;8607:2;8599:6;8596:14;8593:2;;;8628:6;8620;8613:22;8593:2;8656:22;;;;8712:4;8694:16;;;8690:27;8687:2;;;8735:6;8727;8720:22;8687:2;8766:21;8782:4;8766:21;:::i;:::-;8817:2;8811:9;8829:33;8854:7;8829:33;:::i;:::-;8871:22;;8939:2;8931:11;;;8925:18;8909:14;;;8902:42;8976:55;9027:2;9019:11;;8976:55;:::i;:::-;8971:2;8964:5;8960:14;8953:79;9071:2;9067;9063:11;9057:18;9100:2;9090:8;9087:16;9084:2;;;9121:6;9113;9106:22;9359:1005;;9506:2;9494:9;9485:7;9481:23;9477:32;9474:2;;;9527:6;9519;9512:22;9474:2;9565:9;9559:16;9594:18;9635:2;9627:6;9624:14;9621:2;;;9656:6;9648;9641:22;9621:2;9684:22;;;;9740:4;9722:16;;;9718:27;9715:2;;;9763:6;9755;9748:22;9715:2;9794:21;9810:4;9794:21;:::i;:::-;9844:2;9838:9;9831:5;9824:24;9886:2;9882;9878:11;9872:18;9921:1;9912:7;9909:14;9899:2;;9942:6;9934;9927:22;9899:2;9978;9967:14;;9960:31;10037:2;10029:11;;;10023:18;10007:14;;;10000:42;10081:2;10073:11;;10067:18;10097:16;;;10094:2;;;10131:6;10123;10116:22;10369:841;;10494:3;10538:2;10526:9;10517:7;10513:23;10509:32;10506:2;;;10559:6;10551;10544:22;10506:2;10590:19;10606:2;10590:19;:::i;:::-;10577:32;;10632:53;10675:9;10632:53;:::i;:::-;10625:5;10618:68;10739:2;10728:9;10724:18;10718:25;10713:2;10706:5;10702:14;10695:49;10797:2;10786:9;10782:18;10776:25;10771:2;10764:5;10760:14;10753:49;10855:2;10844:9;10840:18;10834:25;10829:2;10822:5;10818:14;10811:49;10914:3;10903:9;10899:19;10893:26;10887:3;10880:5;10876:15;10869:51;10974:3;10963:9;10959:19;10953:26;10947:3;10940:5;10936:15;10929:51;11034:3;11023:9;11019:19;11013:26;11007:3;11000:5;10996:15;10989:51;11094:3;11083:9;11079:19;11073:26;11067:3;11060:5;11056:15;11049:51;11119:3;11175:2;11164:9;11160:18;11154:25;11149:2;11142:5;11138:14;11131:49;;11199:5;11189:15;;;10474:736;;;;:::o;11609:255::-;;;11749:2;11737:9;11728:7;11724:23;11720:32;11717:2;;;11770:6;11762;11755:22;11717:2;-1:-1:-1;;11798:16:103;;11854:2;11839:18;;;11833:25;11798:16;;11833:25;;-1:-1:-1;11707:157:103:o;11869:268::-;;11957:6;11952:3;11945:19;12009:6;12002:5;11995:4;11990:3;11986:14;11973:43;12061:3;12054:4;12045:6;12040:3;12036:16;12032:27;12025:40;12126:4;12119:2;12115:7;12110:2;12102:6;12098:15;12094:29;12089:3;12085:39;12081:50;12074:57;;11935:202;;;;;:::o;12350:412::-;;12592:1;12588;12583:3;12579:11;12575:19;12567:6;12563:32;12552:9;12545:51;12632:6;12627:2;12616:9;12612:18;12605:34;12675:2;12670;12659:9;12655:18;12648:30;12695:61;12752:2;12741:9;12737:18;12729:6;12721;12695:61;:::i;:::-;12687:69;12535:227;-1:-1:-1;;;;;;12535:227:103:o;13475:675::-;;13774:6;13763:9;13756:25;13817:3;13812:2;13801:9;13797:18;13790:31;13844:62;13901:3;13890:9;13886:19;13878:6;13870;13844:62;:::i;:::-;13954:9;13946:6;13942:22;13937:2;13926:9;13922:18;13915:50;13982:49;14024:6;14016;14008;13982:49;:::i;:::-;-1:-1:-1;;;;;14067:32:103;;;;14062:2;14047:18;;14040:60;-1:-1:-1;;14131:3:103;14116:19;14109:35;13974:57;13746:404;-1:-1:-1;;;;;13746:404:103:o;14408:386::-;;14621:6;14610:9;14603:25;14664:6;14659:2;14648:9;14644:18;14637:34;14707:2;14702;14691:9;14687:18;14680:30;14727:61;14784:2;14773:9;14769:18;14761:6;14753;14727:61;:::i;15123:459::-;;15364:6;15353:9;15346:25;15407:6;15402:2;15391:9;15387:18;15380:34;15450:6;15445:2;15434:9;15430:18;15423:34;15493:3;15488:2;15477:9;15473:18;15466:31;15514:62;15571:3;15560:9;15556:19;15548:6;15540;15514:62;:::i;:::-;15506:70;15336:246;-1:-1:-1;;;;;;;15336:246:103:o;15587:381::-;;15734:2;15723:9;15716:21;15766:6;15760:13;15809:6;15804:2;15793:9;15789:18;15782:34;15825:66;15884:6;15879:2;15868:9;15864:18;15859:2;15851:6;15847:15;15825:66;:::i;:::-;15952:2;15931:15;-1:-1:-1;;15927:29:103;15912:45;;;;15959:2;15908:54;;15706:262;-1:-1:-1;;15706:262:103:o;16199:404::-;16401:2;16383:21;;;16440:2;16420:18;;;16413:30;16479:34;16474:2;16459:18;;16452:62;-1:-1:-1;;;16545:2:103;16530:18;;16523:38;16593:3;16578:19;;16373:230::o;18276:275::-;18347:2;18341:9;18412:2;18393:13;;-1:-1:-1;;18389:27:103;18377:40;;18447:18;18432:34;;18468:22;;;18429:62;18426:2;;;18494:18;;:::i;:::-;18530:2;18523:22;18321:230;;-1:-1:-1;18321:230:103:o;18556:229::-;;18627:1;18623:6;18620:1;18617:13;18614:2;;;-1:-1:-1;;;18653:33:103;;18709:4;18706:1;18699:15;18739:4;18660:3;18727:17;18614:2;-1:-1:-1;18770:9:103;;18604:181::o;18790:258::-;18862:1;18872:113;18886:6;18883:1;18880:13;18872:113;;;18962:11;;;18956:18;18943:11;;;18936:39;18908:2;18901:10;18872:113;;;19003:6;19000:1;18997:13;18994:2;;;19038:1;19029:6;19024:3;19020:16;19013:27;18994:2;;18843:205;;;:::o;19053:127::-;19114:10;19109:3;19105:20;19102:1;19095:31;19145:4;19142:1;19135:15;19169:4;19166:1;19159:15;19185:131;-1:-1:-1;;;;;19260:31:103;;19250:42;;19240:2;;19306:1;19303;19296:12;19240:2;19230:86;:::o;19321:115::-;19410:1;19403:5;19400:12;19390:2;;19426:1;19423;19416:12"},"methodIdentifiers":{"NAME()":"a3f4df7e","adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","cancelRequest(uint256)":"3015394c","close(bytes32)":"39c79e0c","closeClaim(bytes32,uint256)":"7f29dba2","collectPremium(bytes32,uint256)":"e3ebdea5","confirmClaim(bytes32,uint256,uint256)":"4e02c63f","decline(bytes32)":"8cc7d3d1","declineClaim(bytes32,uint256)":"4cda0de9","expire(bytes32)":"c6441798","getApplicationData(bytes32)":"c46df94e","getClaimData(bytes32,uint256)":"22f86e7f","getContractFromRegistry(bytes32)":"a5b25e71","getPayoutData(bytes32,uint256)":"10b96080","newApplication(address,uint256,uint256,bytes,bytes)":"93b8414a","newClaim(bytes32,uint256,bytes)":"fae43d15","newPayout(bytes32,uint256,uint256,bytes)":"781d7846","processPayout(bytes32,uint256)":"fe64372b","registry()":"7b103999","request(bytes32,bytes,string,address,uint256)":"2c933f22","revoke(bytes32)":"b75c7dc6","underwrite(bytes32)":"1b07b17f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancelRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"closeClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremiumAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"confirmClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"declineClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"expire\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getApplicationData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"getClaimData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractFromRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"getPayoutData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"newApplication\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"newClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"newPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPayoutAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_callbackMethodName\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_callbackContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"request\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/flows/PolicyDefaultFlow.sol\":\"PolicyDefaultFlow\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/flows/PolicyDefaultFlow.sol\":{\"keccak256\":\"0x7e4a62984412fd5a5bb64c8c50cd050a52881241ffdbdbfe50a212c8afa0979f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://58345c628392ac62b1576e1cc8e1edaddf9e4bc1089708b96ea854d948d4bc29\",\"dweb:/ipfs/QmWWAm94SnUHiQ9Wifo9GGw6eaE8JTLgce4Ap7g12MJbkk\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/modules/QueryModule.sol\":{\"keccak256\":\"0x2485de3fc1c10d0f73f1fe642b77fc3752142b00b8c0e67ea9166a04ea4a0c14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3104393b75a5e7ad6ee0059e0eff0f885a5531cdba307cf0e81da8998251b1fe\",\"dweb:/ipfs/QmahXuYLomYGj3jJeM5Z6SUXhAW6e9gwk4bi2MUQurfcEB\"]},\"contracts/modules/TreasuryModule.sol\":{\"keccak256\":\"0x5b816938607e52b8e3811a426b7c31377109b12c665d3889bdc0fc38b5d1039c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81900732664f85ed367e3c78020bc2bd78e8521dd928f3fd5bcd39ce0ce1dcf0\",\"dweb:/ipfs/QmPcRYLq6SJvZkMnoSZAocCKw9m83oXezNaDsmHJ6UWr4E\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/shared/WithRegistry.sol\":{\"keccak256\":\"0x1d52c8ad35ee149c4a0106ceb1f35d458c196248d02cb8d7b605e9963d47f706\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5780ec200f79f55f69d2e4030ceccccdbf78bc233561d03f334c4361c5425d17\",\"dweb:/ipfs/QmPjynmkMEjD9GHpreVLpWuK6qncwkKwAtNyYCyoeyzkHZ\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/modules/AccessController.sol":{"AccessController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE_PROVIDER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRODUCT_OWNER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISKPOOL_KEEPER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"addRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDefaultAdminRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOracleProviderRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getProductOwnerRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getRiskpoolKeeperRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"invalidateRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"name":"setDefaultAdminRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"validRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611548806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063775a4048116100b8578063c19010a71161007c578063c19010a714610301578063c4d66de814610314578063ca15c87314610327578063d17d02331461033a578063d49d21c01461034d578063d547741f1461037357610137565b8063775a40481461026e57806379a863f5146102945780639010d07c146102bb57806391d14854146102e6578063a217fddf146102f957610137565b806336568abe116100ff57806336568abe146101e05780633ffdd2f3146101f357806352a9c8d71461021957806368232c69146102205780636c137ea91461024757610137565b806301ffc9a71461013c57806312f9a85e14610164578063248a9ca314610187578063274b02a7146101b85780632f2ff15d146101cd575b600080fd5b61014f61014a366004611305565b610386565b60405190151581526020015b60405180910390f35b61014f61017236600461129d565b60046020526000908152604090205460ff1681565b6101aa61019536600461129d565b60009081526002602052604090206001015490565b60405190815260200161015b565b6101cb6101c636600461129d565b6103b3565b005b6101cb6101db3660046112b5565b6104ea565b6101cb6101ee3660046112b5565b61060a565b7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6101aa565b60006101aa565b6101aa7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd81565b6101aa7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd81565b7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd6101aa565b6101aa7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa281565b6102ce6102c93660046112e4565b610614565b6040516001600160a01b03909116815260200161015b565b61014f6102f43660046112b5565b610635565b6101aa600081565b6101cb61030f366004611245565b610660565b6101cb610322366004611245565b6106da565b6101aa61033536600461129d565b610909565b6101cb61034836600461129d565b610920565b7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa26101aa565b6101cb6103813660046112b5565b610a4a565b60006001600160e01b03198216635a05180f60e01b14806103ab57506103ab82610afa565b90505b919050565b6000546201000090046001600160a01b0316632ca65a796103d13390565b6040518263ffffffff1660e01b81526004016103ed91906113a2565b60206040518083038186803b15801561040557600080fd5b505afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d919061127d565b6104625760405162461bcd60e51b81526004016104599061140f565b60405180910390fd5b60008181526004602052604090205460ff16156104cf5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030333a524f4c455f4558495354494e475f414e445f604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19166001179055565b6000546201000090046001600160a01b0316632ca65a796105083390565b6040518263ffffffff1660e01b815260040161052491906113a2565b60206040518083038186803b15801561053c57600080fd5b505afa158015610550573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610574919061127d565b6105905760405162461bcd60e51b81526004016104599061140f565b60008281526004602052604090205460ff166105fc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030323a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6106068282610b2f565b5050565b6106068282610b59565b600082815260036020526040812061062c9083610bd3565b90505b92915050565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1661062c565b60055460ff16156106bf5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a41434c2d3030313a41444d494e5f524f4c455f414c524541445960448201526317d4d15560e21b6064820152608401610459565b6005805460ff191660011790556106d7600082610bdf565b50565b600054610100900460ff16158080156106fa5750600054600160ff909116105b806107145750303b158015610714575060005460ff166001145b6107775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610459565b6000805460ff19166001179055801561079a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556107cc6541636365737360d01b90565b6541636365737360d01b1461080e576107ed6541636365737360d01b610c01565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108c060046020527fef04f7ed48b33f0d9d7de17461a6b9fbfc99345543bcd1fd6722a181717386398054600160ff1991821681179092557f0d0f3851d150b47a1a07ba8d8da619d3d280e2d8c7ebd5a88c0ddf69c9320ac580548216831790557f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6000527f8ba76ee23aef2d48c27cf0a3d52ee681c660d5a027be0ef9cc9edc5ce9889bac80549091169091179055565b8015610606576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008181526003602052604081206103ab90610ce9565b6000546201000090046001600160a01b0316632ca65a7961093e3390565b6040518263ffffffff1660e01b815260040161095a91906113a2565b60206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa919061127d565b6109c65760405162461bcd60e51b81526004016104599061140f565b60008181526004602052604090205460ff16610a325760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030343a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19169055565b6000546201000090046001600160a01b0316632ca65a79610a683390565b6040518263ffffffff1660e01b8152600401610a8491906113a2565b60206040518083038186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad4919061127d565b610af05760405162461bcd60e51b81526004016104599061140f565b6106068282610cf3565b60006001600160e01b03198216637965db0b60e01b14806103ab57506301ffc9a760e01b6001600160e01b03198316146103ab565b600082815260026020526040902060010154610b4a81610d18565b610b548383610bdf565b505050565b6001600160a01b0381163314610bc95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610459565b6106068282610d22565b600061062c8383610d44565b610be98282610d7c565b6000828152600360205260409020610b549082610e02565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610c4b57600080fd5b505afa158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c839190611261565b90506001600160a01b0381166103ae5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610459565b60006103ab825490565b600082815260026020526040902060010154610d0e81610d18565b610b548383610d22565b6106d78133610e17565b610d2c8282610e7b565b6000828152600360205260409020610b549082610ee2565b6000826000018281548110610d6957634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b610d868282610635565b6106065760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610dbe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061062c836001600160a01b038416610ef7565b610e218282610635565b61060657610e39816001600160a01b03166014610f46565b610e44836020610f46565b604051602001610e5592919061132d565b60408051601f198184030181529082905262461bcd60e51b8252610459916004016113dc565b610e858282610635565b156106065760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061062c836001600160a01b038416611128565b6000818152600183016020526040812054610f3e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561062f565b50600061062f565b60606000610f5583600261146a565b610f60906002611452565b67ffffffffffffffff811115610f8657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610fb0576020820181803683370190505b509050600360fc1b81600081518110610fd957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061101657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061103a84600261146a565b611045906001611452565b90505b60018111156110d9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061108757634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106110ab57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936110d2816114d0565b9050611048565b50831561062c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610459565b6000818152600183016020526040812054801561123b57600061114c600183611489565b855490915060009061116090600190611489565b90508181146111e157600086600001828154811061118e57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106111bf57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061120057634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061062f565b600091505061062f565b600060208284031215611256578081fd5b813561062c816114fd565b600060208284031215611272578081fd5b815161062c816114fd565b60006020828403121561128e578081fd5b8151801515811461062c578182fd5b6000602082840312156112ae578081fd5b5035919050565b600080604083850312156112c7578081fd5b8235915060208301356112d9816114fd565b809150509250929050565b600080604083850312156112f6578182fd5b50508035926020909101359150565b600060208284031215611316578081fd5b81356001600160e01b03198116811461062c578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516113658160178501602088016114a0565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516113968160288401602088016114a0565b01602801949350505050565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60006020825282518060208401526113fb8160408501602087016114a0565b601f01601f19169190910160400192915050565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60008219821115611465576114656114e7565b500190565b6000816000190483118215151615611484576114846114e7565b500290565b60008282101561149b5761149b6114e7565b500390565b60005b838110156114bb5781810151838201526020016114a3565b838111156114ca576000848401525b50505050565b6000816114df576114df6114e7565b506000190190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146106d757600080fdfea26469706673582212203255f3dbbbf3b49008eb1abb30a00c8783989e7b50781a4462516e4ea3cbf87764736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x1548 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x137 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x775A4048 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC19010A7 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC19010A7 EQ PUSH2 0x301 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xD17D0233 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0xD49D21C0 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x373 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x775A4048 EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x79A863F5 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x2F9 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x3FFDD2F3 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x52A9C8D7 EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x68232C69 EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0x6C137EA9 EQ PUSH2 0x247 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x12F9A85E EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x274B02A7 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1CD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0x1305 JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1AA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15B JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CB PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x4EA JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1AA PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD DUP2 JUMP JUMPDEST PUSH2 0x1AA PUSH32 0xE984CFD1D1FA34F80E24DDB2A60C8300359D79EEE44555BC35C106EB020394CD DUP2 JUMP JUMPDEST PUSH32 0xE984CFD1D1FA34F80E24DDB2A60C8300359D79EEE44555BC35C106EB020394CD PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1AA PUSH32 0xD26B4CD59FFA91E4599F3D18B02FCD5FFB06E03216F3EE5F25F68DC75CBBBAA2 DUP2 JUMP JUMPDEST PUSH2 0x2CE PUSH2 0x2C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x12E4 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15B JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x635 JUMP JUMPDEST PUSH2 0x1AA PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x1245 JUMP JUMPDEST PUSH2 0x660 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x1245 JUMP JUMPDEST PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x1AA PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x909 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x348 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x920 JUMP JUMPDEST PUSH32 0xD26B4CD59FFA91E4599F3D18B02FCD5FFB06E03216F3EE5F25F68DC75CBBBAA2 PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x381 CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5A05180F PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3AB JUMPI POP PUSH2 0x3AB DUP3 PUSH2 0xAFA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3D1 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x419 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x43D SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030333A524F4C455F4558495354494E475F414E445F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x508 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x524 SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x550 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x574 SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x590 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030323A524F4C455F554E4B4E4F574E5F4F525F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xB2F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xB59 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x62C SWAP1 DUP4 PUSH2 0xBD3 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x62C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x6BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030313A41444D494E5F524F4C455F414C5245414459 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x17D4D155 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x6D7 PUSH1 0x0 DUP3 PUSH2 0xBDF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x6FA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x714 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x714 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x777 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x79A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x7CC PUSH6 0x416363657373 PUSH1 0xD0 SHL SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x80E JUMPI PUSH2 0x7ED PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x8C0 PUSH1 0x4 PUSH1 0x20 MSTORE PUSH32 0xEF04F7ED48B33F0D9D7DE17461A6B9FBFC99345543BCD1FD6722A18171738639 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH32 0xD0F3851D150B47A1A07BA8D8DA619D3D280E2D8C7EBD5A88C0DDF69C9320AC5 DUP1 SLOAD DUP3 AND DUP4 OR SWAP1 SSTORE PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD PUSH1 0x0 MSTORE PUSH32 0x8BA76EE23AEF2D48C27CF0A3D52EE681C660D5A027BE0EF9CC9EDC5CE9889BAC DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x3AB SWAP1 PUSH2 0xCE9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x93E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x95A SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x9C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xA32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030343A524F4C455F554E4B4E4F574E5F4F525F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xA68 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA84 SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAD4 SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0xAF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xCF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3AB JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x3AB JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xB4A DUP2 PUSH2 0xD18 JUMP JUMPDEST PUSH2 0xB54 DUP4 DUP4 PUSH2 0xBDF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xBC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xD22 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 DUP4 PUSH2 0xD44 JUMP JUMPDEST PUSH2 0xBE9 DUP3 DUP3 PUSH2 0xD7C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB54 SWAP1 DUP3 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC83 SWAP2 SWAP1 PUSH2 0x1261 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AB DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xD0E DUP2 PUSH2 0xD18 JUMP JUMPDEST PUSH2 0xB54 DUP4 DUP4 PUSH2 0xD22 JUMP JUMPDEST PUSH2 0x6D7 DUP2 CALLER PUSH2 0xE17 JUMP JUMPDEST PUSH2 0xD2C DUP3 DUP3 PUSH2 0xE7B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB54 SWAP1 DUP3 PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD69 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD86 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST PUSH2 0x606 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xDBE CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0xE21 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST PUSH2 0x606 JUMPI PUSH2 0xE39 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0xF46 JUMP JUMPDEST PUSH2 0xE44 DUP4 PUSH1 0x20 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE55 SWAP3 SWAP2 SWAP1 PUSH2 0x132D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x459 SWAP2 PUSH1 0x4 ADD PUSH2 0x13DC JUMP JUMPDEST PUSH2 0xE85 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1128 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xF3E JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x62F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x62F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xF55 DUP4 PUSH1 0x2 PUSH2 0x146A JUMP JUMPDEST PUSH2 0xF60 SWAP1 PUSH1 0x2 PUSH2 0x1452 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF86 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFB0 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xFD9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1016 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x103A DUP5 PUSH1 0x2 PUSH2 0x146A JUMP JUMPDEST PUSH2 0x1045 SWAP1 PUSH1 0x1 PUSH2 0x1452 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x10D9 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1087 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x10AB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x10D2 DUP2 PUSH2 0x14D0 JUMP JUMPDEST SWAP1 POP PUSH2 0x1048 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x62C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x123B JUMPI PUSH1 0x0 PUSH2 0x114C PUSH1 0x1 DUP4 PUSH2 0x1489 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1160 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1489 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x11E1 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x118E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x11BF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x1200 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x62F JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x62F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1256 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x62C DUP2 PUSH2 0x14FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1272 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x62C DUP2 PUSH2 0x14FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x128E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x62C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12AE JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12C7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x12D9 DUP2 PUSH2 0x14FD JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12F6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1316 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x62C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x1365 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x14A0 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1396 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x14A0 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x13FB DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x14A0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1465 JUMPI PUSH2 0x1465 PUSH2 0x14E7 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1484 JUMPI PUSH2 0x1484 PUSH2 0x14E7 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x149B JUMPI PUSH2 0x149B PUSH2 0x14E7 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14BB JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x14A3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x14CA JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14DF JUMPI PUSH2 0x14DF PUSH2 0x14E7 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6D7 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN SSTORE RETURN 0xDB 0xBB RETURN 0xB4 SWAP1 ADDMOD 0xEB BYTE 0xBB ADDRESS LOG0 0xC DUP8 DUP4 SWAP9 SWAP15 PUSH28 0x50781A4462516E4EA3CBF87764736F6C634300080200330000000000 ","sourceMap":"3861:3616:73:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;3861:3616:73;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;3861:3616:73;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:9176:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"620:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"666:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"675:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"683:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"668:6:103"},"nodeType":"YulFunctionCall","src":"668:22:103"},"nodeType":"YulExpressionStatement","src":"668:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"641:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"650:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"637:3:103"},"nodeType":"YulFunctionCall","src":"637:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"662:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"633:3:103"},"nodeType":"YulFunctionCall","src":"633:32:103"},"nodeType":"YulIf","src":"630:2:103"},{"nodeType":"YulVariableDeclaration","src":"701:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"720:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"714:5:103"},"nodeType":"YulFunctionCall","src":"714:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"705:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"783:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"800:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"785:6:103"},"nodeType":"YulFunctionCall","src":"785:22:103"},"nodeType":"YulExpressionStatement","src":"785:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"752:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"773:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"766:6:103"},"nodeType":"YulFunctionCall","src":"766:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"759:6:103"},"nodeType":"YulFunctionCall","src":"759:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"749:2:103"},"nodeType":"YulFunctionCall","src":"749:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"742:6:103"},"nodeType":"YulFunctionCall","src":"742:40:103"},"nodeType":"YulIf","src":"739:2:103"},{"nodeType":"YulAssignment","src":"818:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"828:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"818:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"586:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"597:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"609:6:103","type":""}],"src":"542:297:103"},{"body":{"nodeType":"YulBlock","src":"914:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"960:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"969:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"977:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"962:6:103"},"nodeType":"YulFunctionCall","src":"962:22:103"},"nodeType":"YulExpressionStatement","src":"962:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"935:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"944:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"931:3:103"},"nodeType":"YulFunctionCall","src":"931:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"956:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"927:3:103"},"nodeType":"YulFunctionCall","src":"927:32:103"},"nodeType":"YulIf","src":"924:2:103"},{"nodeType":"YulAssignment","src":"995:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1018:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1005:12:103"},"nodeType":"YulFunctionCall","src":"1005:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"995:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"880:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"891:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"903:6:103","type":""}],"src":"844:190:103"},{"body":{"nodeType":"YulBlock","src":"1126:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"1172:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1181:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1189:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1174:6:103"},"nodeType":"YulFunctionCall","src":"1174:22:103"},"nodeType":"YulExpressionStatement","src":"1174:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1147:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1156:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1143:3:103"},"nodeType":"YulFunctionCall","src":"1143:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1168:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1139:3:103"},"nodeType":"YulFunctionCall","src":"1139:32:103"},"nodeType":"YulIf","src":"1136:2:103"},{"nodeType":"YulAssignment","src":"1207:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1230:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1217:12:103"},"nodeType":"YulFunctionCall","src":"1217:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1207:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1249:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1290:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1275:3:103"},"nodeType":"YulFunctionCall","src":"1275:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1262:12:103"},"nodeType":"YulFunctionCall","src":"1262:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1253:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1328:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1303:24:103"},"nodeType":"YulFunctionCall","src":"1303:31:103"},"nodeType":"YulExpressionStatement","src":"1303:31:103"},{"nodeType":"YulAssignment","src":"1343:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1353:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1343:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1084:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1095:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1107:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1115:6:103","type":""}],"src":"1039:325:103"},{"body":{"nodeType":"YulBlock","src":"1456:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"1502:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1511:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1519:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1504:6:103"},"nodeType":"YulFunctionCall","src":"1504:22:103"},"nodeType":"YulExpressionStatement","src":"1504:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1477:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1486:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1473:3:103"},"nodeType":"YulFunctionCall","src":"1473:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1498:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1469:3:103"},"nodeType":"YulFunctionCall","src":"1469:32:103"},"nodeType":"YulIf","src":"1466:2:103"},{"nodeType":"YulAssignment","src":"1537:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1560:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1547:12:103"},"nodeType":"YulFunctionCall","src":"1547:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1537:6:103"}]},{"nodeType":"YulAssignment","src":"1579:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1606:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1617:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1602:3:103"},"nodeType":"YulFunctionCall","src":"1602:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1589:12:103"},"nodeType":"YulFunctionCall","src":"1589:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1579:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1414:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1425:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1437:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1445:6:103","type":""}],"src":"1369:258:103"},{"body":{"nodeType":"YulBlock","src":"1701:237:103","statements":[{"body":{"nodeType":"YulBlock","src":"1747:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1756:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1764:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1749:6:103"},"nodeType":"YulFunctionCall","src":"1749:22:103"},"nodeType":"YulExpressionStatement","src":"1749:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1722:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1731:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1718:3:103"},"nodeType":"YulFunctionCall","src":"1718:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1743:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1714:3:103"},"nodeType":"YulFunctionCall","src":"1714:32:103"},"nodeType":"YulIf","src":"1711:2:103"},{"nodeType":"YulVariableDeclaration","src":"1782:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1808:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1795:12:103"},"nodeType":"YulFunctionCall","src":"1795:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1786:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1882:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1891:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1899:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1884:6:103"},"nodeType":"YulFunctionCall","src":"1884:22:103"},"nodeType":"YulExpressionStatement","src":"1884:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1840:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1851:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1867:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1858:3:103"},"nodeType":"YulFunctionCall","src":"1858:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1847:3:103"},"nodeType":"YulFunctionCall","src":"1847:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1837:2:103"},"nodeType":"YulFunctionCall","src":"1837:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1830:6:103"},"nodeType":"YulFunctionCall","src":"1830:51:103"},"nodeType":"YulIf","src":"1827:2:103"},{"nodeType":"YulAssignment","src":"1917:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1927:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1917:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1667:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1678:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1690:6:103","type":""}],"src":"1632:306:103"},{"body":{"nodeType":"YulBlock","src":"2332:397:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2349:3:103"},{"kind":"string","nodeType":"YulLiteral","src":"2354:25:103","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2342:6:103"},"nodeType":"YulFunctionCall","src":"2342:38:103"},"nodeType":"YulExpressionStatement","src":"2342:38:103"},{"nodeType":"YulVariableDeclaration","src":"2389:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2409:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2403:5:103"},"nodeType":"YulFunctionCall","src":"2403:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2393:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2451:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2459:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2447:3:103"},"nodeType":"YulFunctionCall","src":"2447:17:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2470:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"2475:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2466:3:103"},"nodeType":"YulFunctionCall","src":"2466:12:103"},{"name":"length","nodeType":"YulIdentifier","src":"2480:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"2425:21:103"},"nodeType":"YulFunctionCall","src":"2425:62:103"},"nodeType":"YulExpressionStatement","src":"2425:62:103"},{"nodeType":"YulVariableDeclaration","src":"2496:26:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2510:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"2515:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2506:3:103"},"nodeType":"YulFunctionCall","src":"2506:16:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2500:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2542:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2546:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2538:3:103"},"nodeType":"YulFunctionCall","src":"2538:11:103"},{"kind":"string","nodeType":"YulLiteral","src":"2551:19:103","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2531:6:103"},"nodeType":"YulFunctionCall","src":"2531:40:103"},"nodeType":"YulExpressionStatement","src":"2531:40:103"},{"nodeType":"YulVariableDeclaration","src":"2580:29:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2602:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2596:5:103"},"nodeType":"YulFunctionCall","src":"2596:13:103"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"2584:8:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2644:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2652:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2640:3:103"},"nodeType":"YulFunctionCall","src":"2640:17:103"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2663:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2667:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2659:3:103"},"nodeType":"YulFunctionCall","src":"2659:11:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"2672:8:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"2618:21:103"},"nodeType":"YulFunctionCall","src":"2618:63:103"},"nodeType":"YulExpressionStatement","src":"2618:63:103"},{"nodeType":"YulAssignment","src":"2690:33:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2705:2:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"2709:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2701:3:103"},"nodeType":"YulFunctionCall","src":"2701:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2697:3:103"},"nodeType":"YulFunctionCall","src":"2697:26:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2690:3:103"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"2300:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2305:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2313:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2324:3:103","type":""}],"src":"1943:786:103"},{"body":{"nodeType":"YulBlock","src":"2835:102:103","statements":[{"nodeType":"YulAssignment","src":"2845:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2868:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2853:3:103"},"nodeType":"YulFunctionCall","src":"2853:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2845:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2887:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2902:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2918:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2923:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2914:3:103"},"nodeType":"YulFunctionCall","src":"2914:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2927:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2910:3:103"},"nodeType":"YulFunctionCall","src":"2910:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2898:3:103"},"nodeType":"YulFunctionCall","src":"2898:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2880:6:103"},"nodeType":"YulFunctionCall","src":"2880:51:103"},"nodeType":"YulExpressionStatement","src":"2880:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2804:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2815:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2826:4:103","type":""}],"src":"2734:203:103"},{"body":{"nodeType":"YulBlock","src":"3134:164:103","statements":[{"nodeType":"YulAssignment","src":"3144:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3156:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3167:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3152:3:103"},"nodeType":"YulFunctionCall","src":"3152:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3144:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3186:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3201:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3217:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3222:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3213:3:103"},"nodeType":"YulFunctionCall","src":"3213:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3226:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3209:3:103"},"nodeType":"YulFunctionCall","src":"3209:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3197:3:103"},"nodeType":"YulFunctionCall","src":"3197:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3179:6:103"},"nodeType":"YulFunctionCall","src":"3179:51:103"},"nodeType":"YulExpressionStatement","src":"3179:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3261:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3246:3:103"},"nodeType":"YulFunctionCall","src":"3246:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3266:25:103","type":"","value":"InstanceOperatorService"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3239:6:103"},"nodeType":"YulFunctionCall","src":"3239:53:103"},"nodeType":"YulExpressionStatement","src":"3239:53:103"}]},"name":"abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3103:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3114:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3125:4:103","type":""}],"src":"2942:356:103"},{"body":{"nodeType":"YulBlock","src":"3398:92:103","statements":[{"nodeType":"YulAssignment","src":"3408:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3431:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3416:3:103"},"nodeType":"YulFunctionCall","src":"3416:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3408:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3450:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3475:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3468:6:103"},"nodeType":"YulFunctionCall","src":"3468:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3461:6:103"},"nodeType":"YulFunctionCall","src":"3461:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3443:6:103"},"nodeType":"YulFunctionCall","src":"3443:41:103"},"nodeType":"YulExpressionStatement","src":"3443:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3367:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3378:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3389:4:103","type":""}],"src":"3303:187:103"},{"body":{"nodeType":"YulBlock","src":"3596:76:103","statements":[{"nodeType":"YulAssignment","src":"3606:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3618:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3629:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3614:3:103"},"nodeType":"YulFunctionCall","src":"3614:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3606:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3648:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3659:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3641:6:103"},"nodeType":"YulFunctionCall","src":"3641:25:103"},"nodeType":"YulExpressionStatement","src":"3641:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3565:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3576:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3587:4:103","type":""}],"src":"3495:177:103"},{"body":{"nodeType":"YulBlock","src":"3784:87:103","statements":[{"nodeType":"YulAssignment","src":"3794:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3806:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3817:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3802:3:103"},"nodeType":"YulFunctionCall","src":"3802:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3794:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3836:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3851:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3859:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3847:3:103"},"nodeType":"YulFunctionCall","src":"3847:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3829:6:103"},"nodeType":"YulFunctionCall","src":"3829:36:103"},"nodeType":"YulExpressionStatement","src":"3829:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3753:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3764:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3775:4:103","type":""}],"src":"3677:194:103"},{"body":{"nodeType":"YulBlock","src":"3997:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4014:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4025:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4007:6:103"},"nodeType":"YulFunctionCall","src":"4007:21:103"},"nodeType":"YulExpressionStatement","src":"4007:21:103"},{"nodeType":"YulVariableDeclaration","src":"4037:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4057:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4051:5:103"},"nodeType":"YulFunctionCall","src":"4051:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4041:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4095:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4080:3:103"},"nodeType":"YulFunctionCall","src":"4080:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"4100:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4073:6:103"},"nodeType":"YulFunctionCall","src":"4073:34:103"},"nodeType":"YulExpressionStatement","src":"4073:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4142:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4150:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4138:3:103"},"nodeType":"YulFunctionCall","src":"4138:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4159:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4170:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4155:3:103"},"nodeType":"YulFunctionCall","src":"4155:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"4175:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4116:21:103"},"nodeType":"YulFunctionCall","src":"4116:66:103"},"nodeType":"YulExpressionStatement","src":"4116:66:103"},{"nodeType":"YulAssignment","src":"4191:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4207:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4226:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4234:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4222:3:103"},"nodeType":"YulFunctionCall","src":"4222:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4243:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4239:3:103"},"nodeType":"YulFunctionCall","src":"4239:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4218:3:103"},"nodeType":"YulFunctionCall","src":"4218:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4203:3:103"},"nodeType":"YulFunctionCall","src":"4203:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"4250:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4199:3:103"},"nodeType":"YulFunctionCall","src":"4199:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4191:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3966:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3977:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3988:4:103","type":""}],"src":"3876:383:103"},{"body":{"nodeType":"YulBlock","src":"4438:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4455:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4466:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4448:6:103"},"nodeType":"YulFunctionCall","src":"4448:21:103"},"nodeType":"YulExpressionStatement","src":"4448:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4489:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4500:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4485:3:103"},"nodeType":"YulFunctionCall","src":"4485:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4505:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4478:6:103"},"nodeType":"YulFunctionCall","src":"4478:30:103"},"nodeType":"YulExpressionStatement","src":"4478:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4528:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4539:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4524:3:103"},"nodeType":"YulFunctionCall","src":"4524:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4544:34:103","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4517:6:103"},"nodeType":"YulFunctionCall","src":"4517:62:103"},"nodeType":"YulExpressionStatement","src":"4517:62:103"},{"nodeType":"YulAssignment","src":"4588:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4600:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4611:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4596:3:103"},"nodeType":"YulFunctionCall","src":"4596:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4588:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4415:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4429:4:103","type":""}],"src":"4264:356:103"},{"body":{"nodeType":"YulBlock","src":"4799:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4816:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4827:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4809:6:103"},"nodeType":"YulFunctionCall","src":"4809:21:103"},"nodeType":"YulExpressionStatement","src":"4809:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4850:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4861:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4846:3:103"},"nodeType":"YulFunctionCall","src":"4846:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4866:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4839:6:103"},"nodeType":"YulFunctionCall","src":"4839:30:103"},"nodeType":"YulExpressionStatement","src":"4839:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4889:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4900:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4885:3:103"},"nodeType":"YulFunctionCall","src":"4885:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4905:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4878:6:103"},"nodeType":"YulFunctionCall","src":"4878:62:103"},"nodeType":"YulExpressionStatement","src":"4878:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4960:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4971:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4956:3:103"},"nodeType":"YulFunctionCall","src":"4956:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4976:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4949:6:103"},"nodeType":"YulFunctionCall","src":"4949:35:103"},"nodeType":"YulExpressionStatement","src":"4949:35:103"},{"nodeType":"YulAssignment","src":"4993:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5005:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5016:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5001:3:103"},"nodeType":"YulFunctionCall","src":"5001:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4993:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4776:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4790:4:103","type":""}],"src":"4625:401:103"},{"body":{"nodeType":"YulBlock","src":"5205:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5233:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5215:6:103"},"nodeType":"YulFunctionCall","src":"5215:21:103"},"nodeType":"YulExpressionStatement","src":"5215:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5256:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5267:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5252:3:103"},"nodeType":"YulFunctionCall","src":"5252:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5272:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5245:6:103"},"nodeType":"YulFunctionCall","src":"5245:30:103"},"nodeType":"YulExpressionStatement","src":"5245:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5295:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5306:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5291:3:103"},"nodeType":"YulFunctionCall","src":"5291:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5311:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5284:6:103"},"nodeType":"YulFunctionCall","src":"5284:62:103"},"nodeType":"YulExpressionStatement","src":"5284:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5366:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5377:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5362:3:103"},"nodeType":"YulFunctionCall","src":"5362:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5382:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5355:6:103"},"nodeType":"YulFunctionCall","src":"5355:44:103"},"nodeType":"YulExpressionStatement","src":"5355:44:103"},{"nodeType":"YulAssignment","src":"5408:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5431:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5416:3:103"},"nodeType":"YulFunctionCall","src":"5416:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5408:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5182:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5196:4:103","type":""}],"src":"5031:410:103"},{"body":{"nodeType":"YulBlock","src":"5620:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5648:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5630:6:103"},"nodeType":"YulFunctionCall","src":"5630:21:103"},"nodeType":"YulExpressionStatement","src":"5630:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5682:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5667:3:103"},"nodeType":"YulFunctionCall","src":"5667:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5687:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5660:6:103"},"nodeType":"YulFunctionCall","src":"5660:30:103"},"nodeType":"YulExpressionStatement","src":"5660:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5710:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5721:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5706:3:103"},"nodeType":"YulFunctionCall","src":"5706:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5726:34:103","type":"","value":"ERROR:ACL-001:ADMIN_ROLE_ALREADY"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5699:6:103"},"nodeType":"YulFunctionCall","src":"5699:62:103"},"nodeType":"YulExpressionStatement","src":"5699:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5792:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5777:3:103"},"nodeType":"YulFunctionCall","src":"5777:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5797:6:103","type":"","value":"_SET"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5770:6:103"},"nodeType":"YulFunctionCall","src":"5770:34:103"},"nodeType":"YulExpressionStatement","src":"5770:34:103"},{"nodeType":"YulAssignment","src":"5813:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5825:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5836:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5821:3:103"},"nodeType":"YulFunctionCall","src":"5821:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5813:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9f9877d18dbbe1b61e60abbc0b78cf763130d8a58767ec78a5fe18c4bab672fb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5597:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5611:4:103","type":""}],"src":"5446:400:103"},{"body":{"nodeType":"YulBlock","src":"6025:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6042:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6053:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6035:6:103"},"nodeType":"YulFunctionCall","src":"6035:21:103"},"nodeType":"YulExpressionStatement","src":"6035:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6076:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6087:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6072:3:103"},"nodeType":"YulFunctionCall","src":"6072:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6092:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6065:6:103"},"nodeType":"YulFunctionCall","src":"6065:30:103"},"nodeType":"YulExpressionStatement","src":"6065:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6115:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6126:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6111:3:103"},"nodeType":"YulFunctionCall","src":"6111:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6131:34:103","type":"","value":"ERROR:ACL-004:ROLE_UNKNOWN_OR_IN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6104:6:103"},"nodeType":"YulFunctionCall","src":"6104:62:103"},"nodeType":"YulExpressionStatement","src":"6104:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6186:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6197:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6182:3:103"},"nodeType":"YulFunctionCall","src":"6182:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6202:7:103","type":"","value":"VALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6175:6:103"},"nodeType":"YulFunctionCall","src":"6175:35:103"},"nodeType":"YulExpressionStatement","src":"6175:35:103"},{"nodeType":"YulAssignment","src":"6219:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6231:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6242:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6227:3:103"},"nodeType":"YulFunctionCall","src":"6227:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6219:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a62f7cd2c33f4a0b1b1970f9fec462b3e3054faeb7b054bebcfcfab7f5ebf5bb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6002:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6016:4:103","type":""}],"src":"5851:401:103"},{"body":{"nodeType":"YulBlock","src":"6431:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6448:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6459:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6441:6:103"},"nodeType":"YulFunctionCall","src":"6441:21:103"},"nodeType":"YulExpressionStatement","src":"6441:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6493:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6478:3:103"},"nodeType":"YulFunctionCall","src":"6478:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6498:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6471:6:103"},"nodeType":"YulFunctionCall","src":"6471:30:103"},"nodeType":"YulExpressionStatement","src":"6471:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6521:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6532:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6517:3:103"},"nodeType":"YulFunctionCall","src":"6517:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6537:34:103","type":"","value":"ERROR:ACL-002:ROLE_UNKNOWN_OR_IN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6510:6:103"},"nodeType":"YulFunctionCall","src":"6510:62:103"},"nodeType":"YulExpressionStatement","src":"6510:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6603:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6588:3:103"},"nodeType":"YulFunctionCall","src":"6588:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6608:7:103","type":"","value":"VALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6581:6:103"},"nodeType":"YulFunctionCall","src":"6581:35:103"},"nodeType":"YulExpressionStatement","src":"6581:35:103"},{"nodeType":"YulAssignment","src":"6625:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6648:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6633:3:103"},"nodeType":"YulFunctionCall","src":"6633:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6625:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b44ca75bdc42e96be4c16ee432e64fdbf40464ed8da793481d44f5ac59f98005__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6408:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6422:4:103","type":""}],"src":"6257:401:103"},{"body":{"nodeType":"YulBlock","src":"6837:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6865:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6847:6:103"},"nodeType":"YulFunctionCall","src":"6847:21:103"},"nodeType":"YulExpressionStatement","src":"6847:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6888:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6899:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6884:3:103"},"nodeType":"YulFunctionCall","src":"6884:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6904:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6877:6:103"},"nodeType":"YulFunctionCall","src":"6877:30:103"},"nodeType":"YulExpressionStatement","src":"6877:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6927:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6938:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6923:3:103"},"nodeType":"YulFunctionCall","src":"6923:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6943:34:103","type":"","value":"ERROR:CRC-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6916:6:103"},"nodeType":"YulFunctionCall","src":"6916:62:103"},"nodeType":"YulExpressionStatement","src":"6916:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6998:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7009:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6994:3:103"},"nodeType":"YulFunctionCall","src":"6994:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7014:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6987:6:103"},"nodeType":"YulFunctionCall","src":"6987:33:103"},"nodeType":"YulExpressionStatement","src":"6987:33:103"},{"nodeType":"YulAssignment","src":"7029:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7041:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7052:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7037:3:103"},"nodeType":"YulFunctionCall","src":"7037:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7029:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6814:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6828:4:103","type":""}],"src":"6663:399:103"},{"body":{"nodeType":"YulBlock","src":"7241:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7258:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7269:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7251:6:103"},"nodeType":"YulFunctionCall","src":"7251:21:103"},"nodeType":"YulExpressionStatement","src":"7251:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7303:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7288:3:103"},"nodeType":"YulFunctionCall","src":"7288:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7308:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7281:6:103"},"nodeType":"YulFunctionCall","src":"7281:30:103"},"nodeType":"YulExpressionStatement","src":"7281:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7331:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7342:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7327:3:103"},"nodeType":"YulFunctionCall","src":"7327:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7347:34:103","type":"","value":"ERROR:ACL-003:ROLE_EXISTING_AND_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7320:6:103"},"nodeType":"YulFunctionCall","src":"7320:62:103"},"nodeType":"YulExpressionStatement","src":"7320:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7402:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7413:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7398:3:103"},"nodeType":"YulFunctionCall","src":"7398:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7418:7:103","type":"","value":"VALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7391:6:103"},"nodeType":"YulFunctionCall","src":"7391:35:103"},"nodeType":"YulExpressionStatement","src":"7391:35:103"},{"nodeType":"YulAssignment","src":"7435:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7447:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7458:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7443:3:103"},"nodeType":"YulFunctionCall","src":"7443:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7435:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ee0f5f51d1b211cfb0cb0e99e7ae5223d02dd767fa6a6f61a7de5feac9760754__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7218:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7232:4:103","type":""}],"src":"7067:401:103"},{"body":{"nodeType":"YulBlock","src":"7647:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7664:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7675:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7657:6:103"},"nodeType":"YulFunctionCall","src":"7657:21:103"},"nodeType":"YulExpressionStatement","src":"7657:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7698:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7709:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7694:3:103"},"nodeType":"YulFunctionCall","src":"7694:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7714:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7687:6:103"},"nodeType":"YulFunctionCall","src":"7687:30:103"},"nodeType":"YulExpressionStatement","src":"7687:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7737:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7748:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7733:3:103"},"nodeType":"YulFunctionCall","src":"7733:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7753:34:103","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7726:6:103"},"nodeType":"YulFunctionCall","src":"7726:62:103"},"nodeType":"YulExpressionStatement","src":"7726:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7808:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7819:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7804:3:103"},"nodeType":"YulFunctionCall","src":"7804:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7824:17:103","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7797:6:103"},"nodeType":"YulFunctionCall","src":"7797:45:103"},"nodeType":"YulExpressionStatement","src":"7797:45:103"},{"nodeType":"YulAssignment","src":"7851:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7863:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7874:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7859:3:103"},"nodeType":"YulFunctionCall","src":"7859:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7851:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7624:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7638:4:103","type":""}],"src":"7473:411:103"},{"body":{"nodeType":"YulBlock","src":"7990:76:103","statements":[{"nodeType":"YulAssignment","src":"8000:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8012:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8023:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8008:3:103"},"nodeType":"YulFunctionCall","src":"8008:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8000:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8042:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8053:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8035:6:103"},"nodeType":"YulFunctionCall","src":"8035:25:103"},"nodeType":"YulExpressionStatement","src":"8035:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7959:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7970:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7981:4:103","type":""}],"src":"7889:177:103"},{"body":{"nodeType":"YulBlock","src":"8119:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"8146:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8148:16:103"},"nodeType":"YulFunctionCall","src":"8148:18:103"},"nodeType":"YulExpressionStatement","src":"8148:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8135:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8142:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8138:3:103"},"nodeType":"YulFunctionCall","src":"8138:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8132:2:103"},"nodeType":"YulFunctionCall","src":"8132:13:103"},"nodeType":"YulIf","src":"8129:2:103"},{"nodeType":"YulAssignment","src":"8177:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8188:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"8191:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8184:3:103"},"nodeType":"YulFunctionCall","src":"8184:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"8177:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8102:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"8105:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"8111:3:103","type":""}],"src":"8071:128:103"},{"body":{"nodeType":"YulBlock","src":"8256:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"8315:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8317:16:103"},"nodeType":"YulFunctionCall","src":"8317:18:103"},"nodeType":"YulExpressionStatement","src":"8317:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8287:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8280:6:103"},"nodeType":"YulFunctionCall","src":"8280:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8273:6:103"},"nodeType":"YulFunctionCall","src":"8273:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8295:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8306:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8302:3:103"},"nodeType":"YulFunctionCall","src":"8302:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"8310:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8298:3:103"},"nodeType":"YulFunctionCall","src":"8298:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8292:2:103"},"nodeType":"YulFunctionCall","src":"8292:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8269:3:103"},"nodeType":"YulFunctionCall","src":"8269:45:103"},"nodeType":"YulIf","src":"8266:2:103"},{"nodeType":"YulAssignment","src":"8346:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8361:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"8364:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8357:3:103"},"nodeType":"YulFunctionCall","src":"8357:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"8346:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8235:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"8238:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"8244:7:103","type":""}],"src":"8204:168:103"},{"body":{"nodeType":"YulBlock","src":"8426:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"8448:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8450:16:103"},"nodeType":"YulFunctionCall","src":"8450:18:103"},"nodeType":"YulExpressionStatement","src":"8450:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8442:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"8445:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8439:2:103"},"nodeType":"YulFunctionCall","src":"8439:8:103"},"nodeType":"YulIf","src":"8436:2:103"},{"nodeType":"YulAssignment","src":"8479:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8491:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"8494:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8487:3:103"},"nodeType":"YulFunctionCall","src":"8487:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"8479:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8408:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"8411:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"8417:4:103","type":""}],"src":"8377:125:103"},{"body":{"nodeType":"YulBlock","src":"8560:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8570:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8579:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"8574:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8639:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8664:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"8669:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8660:3:103"},"nodeType":"YulFunctionCall","src":"8660:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8683:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"8688:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8679:3:103"},"nodeType":"YulFunctionCall","src":"8679:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8673:5:103"},"nodeType":"YulFunctionCall","src":"8673:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8653:6:103"},"nodeType":"YulFunctionCall","src":"8653:39:103"},"nodeType":"YulExpressionStatement","src":"8653:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8600:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"8603:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8597:2:103"},"nodeType":"YulFunctionCall","src":"8597:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8611:19:103","statements":[{"nodeType":"YulAssignment","src":"8613:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8622:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"8625:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8618:3:103"},"nodeType":"YulFunctionCall","src":"8618:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"8613:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"8593:3:103","statements":[]},"src":"8589:113:103"},{"body":{"nodeType":"YulBlock","src":"8728:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8741:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"8746:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8737:3:103"},"nodeType":"YulFunctionCall","src":"8737:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"8755:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8730:6:103"},"nodeType":"YulFunctionCall","src":"8730:27:103"},"nodeType":"YulExpressionStatement","src":"8730:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8717:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"8720:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8714:2:103"},"nodeType":"YulFunctionCall","src":"8714:13:103"},"nodeType":"YulIf","src":"8711:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"8538:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"8543:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"8548:6:103","type":""}],"src":"8507:258:103"},{"body":{"nodeType":"YulBlock","src":"8817:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"8844:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8846:16:103"},"nodeType":"YulFunctionCall","src":"8846:18:103"},"nodeType":"YulExpressionStatement","src":"8846:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8837:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8830:6:103"},"nodeType":"YulFunctionCall","src":"8830:13:103"},"nodeType":"YulIf","src":"8827:2:103"},{"nodeType":"YulAssignment","src":"8875:25:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8886:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8897:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8893:3:103"},"nodeType":"YulFunctionCall","src":"8893:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8882:3:103"},"nodeType":"YulFunctionCall","src":"8882:18:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"8875:3:103"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8799:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"8809:3:103","type":""}],"src":"8770:136:103"},{"body":{"nodeType":"YulBlock","src":"8943:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8960:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8967:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8972:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8963:3:103"},"nodeType":"YulFunctionCall","src":"8963:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8953:6:103"},"nodeType":"YulFunctionCall","src":"8953:31:103"},"nodeType":"YulExpressionStatement","src":"8953:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9000:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9003:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8993:6:103"},"nodeType":"YulFunctionCall","src":"8993:15:103"},"nodeType":"YulExpressionStatement","src":"8993:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9024:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9027:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9017:6:103"},"nodeType":"YulFunctionCall","src":"9017:15:103"},"nodeType":"YulExpressionStatement","src":"9017:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"8911:127:103"},{"body":{"nodeType":"YulBlock","src":"9088:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"9152:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9161:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9164:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9154:6:103"},"nodeType":"YulFunctionCall","src":"9154:12:103"},"nodeType":"YulExpressionStatement","src":"9154:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9111:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9122:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9137:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9142:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9133:3:103"},"nodeType":"YulFunctionCall","src":"9133:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9146:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9129:3:103"},"nodeType":"YulFunctionCall","src":"9129:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9118:3:103"},"nodeType":"YulFunctionCall","src":"9118:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9108:2:103"},"nodeType":"YulFunctionCall","src":"9108:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9101:6:103"},"nodeType":"YulFunctionCall","src":"9101:50:103"},"nodeType":"YulIf","src":"9098:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9077:5:103","type":""}],"src":"9043:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, \"AccessControl: account \")\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n let _1 := add(pos, length)\n mstore(add(_1, 23), \" is missing role \")\n let length_1 := mload(value1)\n copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n end := add(add(_1, length_1), 40)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), \"InstanceOperatorService\")\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9f9877d18dbbe1b61e60abbc0b78cf763130d8a58767ec78a5fe18c4bab672fb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:ACL-001:ADMIN_ROLE_ALREADY\")\n mstore(add(headStart, 96), \"_SET\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a62f7cd2c33f4a0b1b1970f9fec462b3e3054faeb7b054bebcfcfab7f5ebf5bb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:ACL-004:ROLE_UNKNOWN_OR_IN\")\n mstore(add(headStart, 96), \"VALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b44ca75bdc42e96be4c16ee432e64fdbf40464ed8da793481d44f5ac59f98005__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:ACL-002:ROLE_UNKNOWN_OR_IN\")\n mstore(add(headStart, 96), \"VALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CRC-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ee0f5f51d1b211cfb0cb0e99e7ae5223d02dd767fa6a6f61a7de5feac9760754__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:ACL-003:ROLE_EXISTING_AND_\")\n mstore(add(headStart, 96), \"VALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function decrement_t_uint256(value) -> ret\n {\n if iszero(value) { panic_error_0x11() }\n ret := add(value, not(0))\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101375760003560e01c8063775a4048116100b8578063c19010a71161007c578063c19010a714610301578063c4d66de814610314578063ca15c87314610327578063d17d02331461033a578063d49d21c01461034d578063d547741f1461037357610137565b8063775a40481461026e57806379a863f5146102945780639010d07c146102bb57806391d14854146102e6578063a217fddf146102f957610137565b806336568abe116100ff57806336568abe146101e05780633ffdd2f3146101f357806352a9c8d71461021957806368232c69146102205780636c137ea91461024757610137565b806301ffc9a71461013c57806312f9a85e14610164578063248a9ca314610187578063274b02a7146101b85780632f2ff15d146101cd575b600080fd5b61014f61014a366004611305565b610386565b60405190151581526020015b60405180910390f35b61014f61017236600461129d565b60046020526000908152604090205460ff1681565b6101aa61019536600461129d565b60009081526002602052604090206001015490565b60405190815260200161015b565b6101cb6101c636600461129d565b6103b3565b005b6101cb6101db3660046112b5565b6104ea565b6101cb6101ee3660046112b5565b61060a565b7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6101aa565b60006101aa565b6101aa7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd81565b6101aa7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd81565b7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd6101aa565b6101aa7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa281565b6102ce6102c93660046112e4565b610614565b6040516001600160a01b03909116815260200161015b565b61014f6102f43660046112b5565b610635565b6101aa600081565b6101cb61030f366004611245565b610660565b6101cb610322366004611245565b6106da565b6101aa61033536600461129d565b610909565b6101cb61034836600461129d565b610920565b7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa26101aa565b6101cb6103813660046112b5565b610a4a565b60006001600160e01b03198216635a05180f60e01b14806103ab57506103ab82610afa565b90505b919050565b6000546201000090046001600160a01b0316632ca65a796103d13390565b6040518263ffffffff1660e01b81526004016103ed91906113a2565b60206040518083038186803b15801561040557600080fd5b505afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d919061127d565b6104625760405162461bcd60e51b81526004016104599061140f565b60405180910390fd5b60008181526004602052604090205460ff16156104cf5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030333a524f4c455f4558495354494e475f414e445f604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19166001179055565b6000546201000090046001600160a01b0316632ca65a796105083390565b6040518263ffffffff1660e01b815260040161052491906113a2565b60206040518083038186803b15801561053c57600080fd5b505afa158015610550573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610574919061127d565b6105905760405162461bcd60e51b81526004016104599061140f565b60008281526004602052604090205460ff166105fc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030323a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6106068282610b2f565b5050565b6106068282610b59565b600082815260036020526040812061062c9083610bd3565b90505b92915050565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1661062c565b60055460ff16156106bf5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a41434c2d3030313a41444d494e5f524f4c455f414c524541445960448201526317d4d15560e21b6064820152608401610459565b6005805460ff191660011790556106d7600082610bdf565b50565b600054610100900460ff16158080156106fa5750600054600160ff909116105b806107145750303b158015610714575060005460ff166001145b6107775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610459565b6000805460ff19166001179055801561079a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556107cc6541636365737360d01b90565b6541636365737360d01b1461080e576107ed6541636365737360d01b610c01565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108c060046020527fef04f7ed48b33f0d9d7de17461a6b9fbfc99345543bcd1fd6722a181717386398054600160ff1991821681179092557f0d0f3851d150b47a1a07ba8d8da619d3d280e2d8c7ebd5a88c0ddf69c9320ac580548216831790557f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6000527f8ba76ee23aef2d48c27cf0a3d52ee681c660d5a027be0ef9cc9edc5ce9889bac80549091169091179055565b8015610606576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008181526003602052604081206103ab90610ce9565b6000546201000090046001600160a01b0316632ca65a7961093e3390565b6040518263ffffffff1660e01b815260040161095a91906113a2565b60206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa919061127d565b6109c65760405162461bcd60e51b81526004016104599061140f565b60008181526004602052604090205460ff16610a325760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030343a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19169055565b6000546201000090046001600160a01b0316632ca65a79610a683390565b6040518263ffffffff1660e01b8152600401610a8491906113a2565b60206040518083038186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad4919061127d565b610af05760405162461bcd60e51b81526004016104599061140f565b6106068282610cf3565b60006001600160e01b03198216637965db0b60e01b14806103ab57506301ffc9a760e01b6001600160e01b03198316146103ab565b600082815260026020526040902060010154610b4a81610d18565b610b548383610bdf565b505050565b6001600160a01b0381163314610bc95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610459565b6106068282610d22565b600061062c8383610d44565b610be98282610d7c565b6000828152600360205260409020610b549082610e02565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610c4b57600080fd5b505afa158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c839190611261565b90506001600160a01b0381166103ae5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610459565b60006103ab825490565b600082815260026020526040902060010154610d0e81610d18565b610b548383610d22565b6106d78133610e17565b610d2c8282610e7b565b6000828152600360205260409020610b549082610ee2565b6000826000018281548110610d6957634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b610d868282610635565b6106065760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610dbe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061062c836001600160a01b038416610ef7565b610e218282610635565b61060657610e39816001600160a01b03166014610f46565b610e44836020610f46565b604051602001610e5592919061132d565b60408051601f198184030181529082905262461bcd60e51b8252610459916004016113dc565b610e858282610635565b156106065760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061062c836001600160a01b038416611128565b6000818152600183016020526040812054610f3e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561062f565b50600061062f565b60606000610f5583600261146a565b610f60906002611452565b67ffffffffffffffff811115610f8657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610fb0576020820181803683370190505b509050600360fc1b81600081518110610fd957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061101657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061103a84600261146a565b611045906001611452565b90505b60018111156110d9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061108757634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106110ab57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936110d2816114d0565b9050611048565b50831561062c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610459565b6000818152600183016020526040812054801561123b57600061114c600183611489565b855490915060009061116090600190611489565b90508181146111e157600086600001828154811061118e57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106111bf57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061120057634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061062f565b600091505061062f565b600060208284031215611256578081fd5b813561062c816114fd565b600060208284031215611272578081fd5b815161062c816114fd565b60006020828403121561128e578081fd5b8151801515811461062c578182fd5b6000602082840312156112ae578081fd5b5035919050565b600080604083850312156112c7578081fd5b8235915060208301356112d9816114fd565b809150509250929050565b600080604083850312156112f6578182fd5b50508035926020909101359150565b600060208284031215611316578081fd5b81356001600160e01b03198116811461062c578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516113658160178501602088016114a0565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516113968160288401602088016114a0565b01602801949350505050565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60006020825282518060208401526113fb8160408501602087016114a0565b601f01601f19169190910160400192915050565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60008219821115611465576114656114e7565b500190565b6000816000190483118215151615611484576114846114e7565b500290565b60008282101561149b5761149b6114e7565b500390565b60005b838110156114bb5781810151838201526020016114a3565b838111156114ca576000848401525b50505050565b6000816114df576114df6114e7565b506000190190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146106d757600080fdfea26469706673582212203255f3dbbbf3b49008eb1abb30a00c8783989e7b50781a4462516e4ea3cbf87764736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x137 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x775A4048 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC19010A7 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC19010A7 EQ PUSH2 0x301 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xD17D0233 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0xD49D21C0 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x373 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x775A4048 EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x79A863F5 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x2F9 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x3FFDD2F3 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x52A9C8D7 EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x68232C69 EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0x6C137EA9 EQ PUSH2 0x247 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x12F9A85E EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x274B02A7 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1CD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0x1305 JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1AA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15B JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CB PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x4EA JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1AA PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD DUP2 JUMP JUMPDEST PUSH2 0x1AA PUSH32 0xE984CFD1D1FA34F80E24DDB2A60C8300359D79EEE44555BC35C106EB020394CD DUP2 JUMP JUMPDEST PUSH32 0xE984CFD1D1FA34F80E24DDB2A60C8300359D79EEE44555BC35C106EB020394CD PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1AA PUSH32 0xD26B4CD59FFA91E4599F3D18B02FCD5FFB06E03216F3EE5F25F68DC75CBBBAA2 DUP2 JUMP JUMPDEST PUSH2 0x2CE PUSH2 0x2C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x12E4 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15B JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x635 JUMP JUMPDEST PUSH2 0x1AA PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x1245 JUMP JUMPDEST PUSH2 0x660 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x1245 JUMP JUMPDEST PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x1AA PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x909 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x348 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x920 JUMP JUMPDEST PUSH32 0xD26B4CD59FFA91E4599F3D18B02FCD5FFB06E03216F3EE5F25F68DC75CBBBAA2 PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x381 CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5A05180F PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3AB JUMPI POP PUSH2 0x3AB DUP3 PUSH2 0xAFA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3D1 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x419 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x43D SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030333A524F4C455F4558495354494E475F414E445F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x508 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x524 SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x550 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x574 SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x590 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030323A524F4C455F554E4B4E4F574E5F4F525F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xB2F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xB59 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x62C SWAP1 DUP4 PUSH2 0xBD3 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x62C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x6BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030313A41444D494E5F524F4C455F414C5245414459 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x17D4D155 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x6D7 PUSH1 0x0 DUP3 PUSH2 0xBDF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x6FA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x714 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x714 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x777 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x79A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x7CC PUSH6 0x416363657373 PUSH1 0xD0 SHL SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x80E JUMPI PUSH2 0x7ED PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x8C0 PUSH1 0x4 PUSH1 0x20 MSTORE PUSH32 0xEF04F7ED48B33F0D9D7DE17461A6B9FBFC99345543BCD1FD6722A18171738639 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH32 0xD0F3851D150B47A1A07BA8D8DA619D3D280E2D8C7EBD5A88C0DDF69C9320AC5 DUP1 SLOAD DUP3 AND DUP4 OR SWAP1 SSTORE PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD PUSH1 0x0 MSTORE PUSH32 0x8BA76EE23AEF2D48C27CF0A3D52EE681C660D5A027BE0EF9CC9EDC5CE9889BAC DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x3AB SWAP1 PUSH2 0xCE9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x93E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x95A SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x9C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xA32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030343A524F4C455F554E4B4E4F574E5F4F525F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xA68 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA84 SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAD4 SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0xAF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xCF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3AB JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x3AB JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xB4A DUP2 PUSH2 0xD18 JUMP JUMPDEST PUSH2 0xB54 DUP4 DUP4 PUSH2 0xBDF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xBC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xD22 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 DUP4 PUSH2 0xD44 JUMP JUMPDEST PUSH2 0xBE9 DUP3 DUP3 PUSH2 0xD7C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB54 SWAP1 DUP3 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC83 SWAP2 SWAP1 PUSH2 0x1261 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AB DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xD0E DUP2 PUSH2 0xD18 JUMP JUMPDEST PUSH2 0xB54 DUP4 DUP4 PUSH2 0xD22 JUMP JUMPDEST PUSH2 0x6D7 DUP2 CALLER PUSH2 0xE17 JUMP JUMPDEST PUSH2 0xD2C DUP3 DUP3 PUSH2 0xE7B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB54 SWAP1 DUP3 PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD69 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD86 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST PUSH2 0x606 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xDBE CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0xE21 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST PUSH2 0x606 JUMPI PUSH2 0xE39 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0xF46 JUMP JUMPDEST PUSH2 0xE44 DUP4 PUSH1 0x20 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE55 SWAP3 SWAP2 SWAP1 PUSH2 0x132D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x459 SWAP2 PUSH1 0x4 ADD PUSH2 0x13DC JUMP JUMPDEST PUSH2 0xE85 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1128 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xF3E JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x62F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x62F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xF55 DUP4 PUSH1 0x2 PUSH2 0x146A JUMP JUMPDEST PUSH2 0xF60 SWAP1 PUSH1 0x2 PUSH2 0x1452 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF86 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFB0 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xFD9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1016 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x103A DUP5 PUSH1 0x2 PUSH2 0x146A JUMP JUMPDEST PUSH2 0x1045 SWAP1 PUSH1 0x1 PUSH2 0x1452 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x10D9 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1087 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x10AB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x10D2 DUP2 PUSH2 0x14D0 JUMP JUMPDEST SWAP1 POP PUSH2 0x1048 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x62C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x123B JUMPI PUSH1 0x0 PUSH2 0x114C PUSH1 0x1 DUP4 PUSH2 0x1489 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1160 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1489 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x11E1 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x118E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x11BF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x1200 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x62F JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x62F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1256 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x62C DUP2 PUSH2 0x14FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1272 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x62C DUP2 PUSH2 0x14FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x128E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x62C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12AE JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12C7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x12D9 DUP2 PUSH2 0x14FD JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12F6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1316 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x62C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x1365 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x14A0 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1396 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x14A0 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x13FB DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x14A0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1465 JUMPI PUSH2 0x1465 PUSH2 0x14E7 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1484 JUMPI PUSH2 0x1484 PUSH2 0x14E7 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x149B JUMPI PUSH2 0x149B PUSH2 0x14E7 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14BB JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x14A3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x14CA JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14DF JUMPI PUSH2 0x14DF PUSH2 0x14E7 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6D7 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN SSTORE RETURN 0xDB 0xBB RETURN 0xB4 SWAP1 ADDMOD 0xEB BYTE 0xBB ADDRESS LOG0 0xC DUP8 DUP4 SWAP9 SWAP15 PUSH28 0x50781A4462516E4EA3CBF87764736F6C634300080200330000000000 ","sourceMap":"3861:3616:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:212:38;;;;;;:::i;:::-;;:::i;:::-;;;3468:14:103;;3461:22;3443:41;;3431:2;3416:18;634:212:38;;;;;;;;4455:41:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4391:129:37;;;;;;:::i;:::-;4465:7;4491:12;;;:6;:12;;;;;:22;;;;4391:129;;;;3641:25:103;;;3629:2;3614:18;4391:129:37;3596:76:103;6137:211:73;;;;;;:::i;:::-;;:::i;:::-;;5348:285;;;;;;:::i;:::-;;:::i;5860:184::-;;;;;;:::i;:::-;;:::i;7157:117::-;4413:33;7157:117;;6790:113;6850:7;6790:113;;4366:80;;4413:33;4366:80;;4042:76;;4087:31;4042:76;;6911:113;4087:31;6911:113;;4202:80;;4249:33;4202:80;;1431:151:38;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2898:32:103;;;2880:51;;2868:2;2853:18;1431:151:38;2835:102:103;6581:201:73;;;;;;:::i;:::-;;:::i;2027:49:37:-;;2072:4;2027:49;;5007:252:73;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;1750:140:38:-;;;;;;:::i;:::-;;:::i;6356:217:73:-;;;;;;:::i;:::-;;:::i;7032:117::-;4249:33;7032:117;;5641:211;;;;;;:::i;:::-;;:::i;634:212:38:-;719:4;-1:-1:-1;;;;;;742:57:38;;-1:-1:-1;;;742:57:38;;:97;;;803:36;827:11;803:23;:36::i;:::-;735:104;;634:212;;;;:::o;6137:211:73:-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;;;;;;;;;6250:15:73::1;::::0;;;:9:::1;:15;::::0;;;;;::::1;;6249:16;6241:66;;;::::0;-1:-1:-1;;;6241:66:73;;7269:2:103;6241:66:73::1;::::0;::::1;7251:21:103::0;7308:2;7288:18;;;7281:30;7347:34;7327:18;;;7320:62;-1:-1:-1;;;7398:18:103;;;7391:35;7443:19;;6241:66:73::1;7241:227:103::0;6241:66:73::1;6318:15;::::0;;;:9:::1;:15;::::0;;;;:22;;-1:-1:-1;;6318:22:73::1;6336:4;6318:22;::::0;;6137:211::o;5348:285::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5517:15:73::1;::::0;;;:9:::1;:15;::::0;;;;;::::1;;5509:65;;;::::0;-1:-1:-1;;;5509:65:73;;6459:2:103;5509:65:73::1;::::0;::::1;6441:21:103::0;6498:2;6478:18;;;6471:30;6537:34;6517:18;;;6510:62;-1:-1:-1;;;6588:18:103;;;6581:35;6633:19;;5509:65:73::1;6431:227:103::0;5509:65:73::1;5585:40;5609:4;5615:9;5585:23;:40::i;:::-;5348:285:::0;;:::o;5860:184::-;5993:43;6020:4;6026:9;5993:26;:43::i;1431:151:38:-;1521:7;1547:18;;;:12;:18;;;;;:28;;1569:5;1547:21;:28::i;:::-;1540:35;;1431:151;;;;;:::o;6581:201:73:-;6715:4;3004:12:37;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:37;;;;;;;;;;;;6744:30:73;2895:145:37;5007:252:73;5103:16;;;;5102:17;5094:66;;;;-1:-1:-1;;;5094:66:73;;5648:2:103;5094:66:73;;;5630:21:103;5687:2;5667:18;;;5660:30;5726:34;5706:18;;;5699:62;-1:-1:-1;;;5777:18:103;;;5770:34;5821:19;;5094:66:73;5620:226:103;5094:66:73;5171:16;:23;;-1:-1:-1;;5171:23:73;5190:4;5171:23;;;5207:44;5171:16;5238:12;5207:10;:44::i;:::-;5007:252;:::o;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;5233:2:103;3146:190:47;;;5215:21:103;5272:2;5252:18;;;5245:30;5311:34;5291:18;;;5284:62;-1:-1:-1;;;5362:18:103;;;5355:44;5416:19;;3146:190:47;5205:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;-1:-1:-1::0;;;4710:80:73;;1255:10:88::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;7332:9:73::0;:29;;;:36;;7364:4;-1:-1:-1;;7332:36:73;;;;;;;;7379:31;:38;;;;;;;;4413:33;-1:-1:-1;7428:31:73;;:38;;;;;;;;;;4543:159;1350:18:88::1;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;3829:36:103;;3531:14:47;;3817:2:103;3802:18;3531:14:47;;;;;;;1143:232:88;;:::o;1750:140:38:-;1830:7;1856:18;;;:12;:18;;;;;:27;;:25;:27::i;6356:217:73:-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6474:15:73::1;::::0;;;:9:::1;:15;::::0;;;;;::::1;;6466:65;;;::::0;-1:-1:-1;;;6466:65:73;;6053:2:103;6466:65:73::1;::::0;::::1;6035:21:103::0;6092:2;6072:18;;;6065:30;6131:34;6111:18;;;6104:62;-1:-1:-1;;;6182:18:103;;;6175:35;6227:19;;6466:65:73::1;6025:227:103::0;6466:65:73::1;6560:5;6542:15:::0;;;:9:::1;:15;::::0;;;;:23;;-1:-1:-1;;6542:23:73::1;::::0;;6356:217::o;5641:211::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5803:41:73::1;5828:4;5834:9;5803:24;:41::i;2606:202:37:-:0;2691:4;-1:-1:-1;;;;;;2714:47:37;;-1:-1:-1;;;2714:47:37;;:87;;-1:-1:-1;;;;;;;;;;937:40:62;;;2765:36:37;829:155:62;4816:145:37;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4929:25:::1;4940:4;4946:7;4929:10;:25::i;:::-;4816:145:::0;;;:::o;5925:214::-;-1:-1:-1;;;;;6020:23:37;;719:10:59;6020:23:37;6012:83;;;;-1:-1:-1;;;6012:83:37;;7675:2:103;6012:83:37;;;7657:21:103;7714:2;7694:18;;;7687:30;7753:34;7733:18;;;7726:62;-1:-1:-1;;;7804:18:103;;;7797:45;7859:19;;6012:83:37;7647:237:103;6012:83:37;6106:26;6118:4;6124:7;6106:11;:26::i;9286:156:64:-;9360:7;9410:22;9414:3;9426:5;9410:3;:22::i;1978:166:38:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106:18;;;;:12;:18;;;;;:31;;2129:7;2106:22;:31::i;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;3641:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;3614:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;4827:2:103;1703:113:88;;;4809:21:103;4866:2;4846:18;;;4839:30;4905:34;4885:18;;;4878:62;-1:-1:-1;;;4956:18:103;;;4949:35;5001:19;;1703:113:88;4799:227:103;8829:115:64;8892:7;8918:19;8926:3;4444:18;;4362:107;5241:147:37;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5355:26:::1;5367:4;5373:7;5355:11;:26::i;3334:103::-:0;3400:30;3411:4;719:10:59;3400::37;:30::i;2233:171:38:-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:18;;;;:12;:18;;;;;:34;;2389:7;2363:25;:34::i;4811:118:64:-;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;7474:233:37:-;7557:22;7565:4;7571:7;7557;:22::i;:::-;7552:149;;7595:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7595:29:37;;;;;;;;;:36;;-1:-1:-1;;7595:36:37;7627:4;7595:36;;;7677:12;719:10:59;640:96;;7677:12:37;-1:-1:-1;;;;;7650:40:37;7668:7;-1:-1:-1;;;;;7650:40:37;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;8028:150:64:-;8098:4;8121:50;8126:3;-1:-1:-1;;;;;8146:23:64;;8121:4;:50::i;3718:492:37:-;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:403;;3989:41;4017:7;-1:-1:-1;;;;;3989:41:37;4027:2;3989:19;:41::i;:::-;4101:38;4129:4;4136:2;4101:19;:38::i;:::-;3896:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:265:37;;;;;;;;;;-1:-1:-1;;;3844:349:37;;;;;;;:::i;7878:234::-;7961:22;7969:4;7975:7;7961;:22::i;:::-;7957:149;;;8031:5;7999:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7999:29:37;;;;;;;;;;:37;;-1:-1:-1;;7999:37:37;;;8055:40;719:10:59;;7999:12:37;;8055:40;;8031:5;8055:40;7878:234;;:::o;8346:156:64:-;8419:4;8442:53;8450:3;-1:-1:-1;;;;;8470:23:64;;8442:7;:53::i;2113:404::-;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;1652:441:61;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;1774:25;;;;;;-1:-1:-1;;;1774:25:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:61;;1752:47;;-1:-1:-1;;;1809:6:61;1816:1;1809:9;;;;;;-1:-1:-1;;;1809:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1809:15:61;;;;;;;;;-1:-1:-1;;;1834:6:61;1841:1;1834:9;;;;;;-1:-1:-1;;;1834:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1834:15:61;;;;;;;;-1:-1:-1;1864:9:61;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:61;1951:3;1943:11;1930:25;;;;;-1:-1:-1;;;1930:25:61;;;;;;;;;;;;1918:6;1925:1;1918:9;;;;;;-1:-1:-1;;;1918:9:61;;;;;;;;;;;;:37;-1:-1:-1;;;;;1918:37:61;;;;;;;;-1:-1:-1;1979:1:61;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:61;;2000:55;;;;-1:-1:-1;;;2000:55:61;;4466:2:103;2000:55:61;;;4448:21:103;;;4485:18;;;4478:30;4544:34;4524:18;;;4517:62;4596:18;;2000:55:61;4438:182:103;2685:1388:64;2751:4;2888:19;;;:12;;;:19;;;;;;2922:15;;2918:1149;;3291:21;3315:14;3328:1;3315:10;:14;:::i;:::-;3363:18;;3291:38;;-1:-1:-1;3343:17:64;;3363:22;;3384:1;;3363:22;:::i;:::-;3343:42;;3417:13;3404:9;:26;3400:398;;3450:17;3470:3;:11;;3482:9;3470:22;;;;;;-1:-1:-1;;;3470:22:64;;;;;;;;;;;;;;;;;3450:42;;3621:9;3592:3;:11;;3604:13;3592:26;;;;;;-1:-1:-1;;;3592:26:64;;;;;;;;;;;;;;;;;;;;:38;;;;3704:23;;;:12;;;:23;;;;;:36;;;3400:398;3876:17;;:3;;:17;;;-1:-1:-1;;;3876:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;3968:3;:12;;:19;3981:5;3968:19;;;;;;;;;;;3961:26;;;4009:4;4002:11;;;;;;;2918:1149;4051:5;4044:12;;;;;14:257:103;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:297::-;;662:2;650:9;641:7;637:23;633:32;630:2;;;683:6;675;668:22;630:2;720:9;714:16;773:5;766:13;759:21;752:5;749:32;739:2;;800:6;792;785:22;844:190;;956:2;944:9;935:7;931:23;927:32;924:2;;;977:6;969;962:22;924:2;-1:-1:-1;1005:23:103;;914:120;-1:-1:-1;914:120:103:o;1039:325::-;;;1168:2;1156:9;1147:7;1143:23;1139:32;1136:2;;;1189:6;1181;1174:22;1136:2;1230:9;1217:23;1207:33;;1290:2;1279:9;1275:18;1262:32;1303:31;1328:5;1303:31;:::i;:::-;1353:5;1343:15;;;1126:238;;;;;:::o;1369:258::-;;;1498:2;1486:9;1477:7;1473:23;1469:32;1466:2;;;1519:6;1511;1504:22;1466:2;-1:-1:-1;;1547:23:103;;;1617:2;1602:18;;;1589:32;;-1:-1:-1;1456:171:103:o;1632:306::-;;1743:2;1731:9;1722:7;1718:23;1714:32;1711:2;;;1764:6;1756;1749:22;1711:2;1795:23;;-1:-1:-1;;;;;;1847:32:103;;1837:43;;1827:2;;1899:6;1891;1884:22;1943:786;;2354:25;2349:3;2342:38;2409:6;2403:13;2425:62;2480:6;2475:2;2470:3;2466:12;2459:4;2451:6;2447:17;2425:62;:::i;:::-;-1:-1:-1;;;2546:2:103;2506:16;;;2538:11;;;2531:40;2596:13;;2618:63;2596:13;2667:2;2659:11;;2652:4;2640:17;;2618:63;:::i;:::-;2701:17;2720:2;2697:26;;2332:397;-1:-1:-1;;;;2332:397:103:o;2942:356::-;-1:-1:-1;;;;;3197:32:103;;;;3179:51;;3266:25;3261:2;3246:18;;3239:53;3167:2;3152:18;;3134:164::o;3876:383::-;;4025:2;4014:9;4007:21;4057:6;4051:13;4100:6;4095:2;4084:9;4080:18;4073:34;4116:66;4175:6;4170:2;4159:9;4155:18;4150:2;4142:6;4138:15;4116:66;:::i;:::-;4243:2;4222:15;-1:-1:-1;;4218:29:103;4203:45;;;;4250:2;4199:54;;3997:262;-1:-1:-1;;3997:262:103:o;6663:399::-;6865:2;6847:21;;;6904:2;6884:18;;;6877:30;6943:34;6938:2;6923:18;;6916:62;-1:-1:-1;;;7009:2:103;6994:18;;6987:33;7052:3;7037:19;;6837:225::o;8071:128::-;;8142:1;8138:6;8135:1;8132:13;8129:2;;;8148:18;;:::i;:::-;-1:-1:-1;8184:9:103;;8119:80::o;8204:168::-;;8310:1;8306;8302:6;8298:14;8295:1;8292:21;8287:1;8280:9;8273:17;8269:45;8266:2;;;8317:18;;:::i;:::-;-1:-1:-1;8357:9:103;;8256:116::o;8377:125::-;;8445:1;8442;8439:8;8436:2;;;8450:18;;:::i;:::-;-1:-1:-1;8487:9:103;;8426:76::o;8507:258::-;8579:1;8589:113;8603:6;8600:1;8597:13;8589:113;;;8679:11;;;8673:18;8660:11;;;8653:39;8625:2;8618:10;8589:113;;;8720:6;8717:1;8714:13;8711:2;;;8755:1;8746:6;8741:3;8737:16;8730:27;8711:2;;8560:205;;;:::o;8770:136::-;;8837:5;8827:2;;8846:18;;:::i;:::-;-1:-1:-1;;;8882:18:103;;8817:89::o;8911:127::-;8972:10;8967:3;8963:20;8960:1;8953:31;9003:4;9000:1;8993:15;9027:4;9024:1;9017:15;9043:131;-1:-1:-1;;;;;9118:31:103;;9108:42;;9098:2;;9164:1;9161;9154:12"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","ORACLE_PROVIDER_ROLE()":"79a863f5","PRODUCT_OWNER_ROLE()":"6c137ea9","RISKPOOL_KEEPER_ROLE()":"68232c69","addRole(bytes32)":"274b02a7","getDefaultAdminRole()":"52a9c8d7","getOracleProviderRole()":"d49d21c0","getProductOwnerRole()":"775a4048","getRiskpoolKeeperRole()":"3ffdd2f3","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","invalidateRole(bytes32)":"d17d0233","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDefaultAdminRole(address)":"c19010a7","supportsInterface(bytes4)":"01ffc9a7","validRole(bytes32)":"12f9a85e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ORACLE_PROVIDER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRODUCT_OWNER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISKPOOL_KEEPER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"addRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDefaultAdminRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleProviderRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductOwnerRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolKeeperRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"invalidateRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"setDefaultAdminRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"validRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The provided smart contract is called \\\"AccessController\\\" and is written in Solidity. It implements the \\\"IAccess\\\" interface and inherits from the \\\"CoreController\\\" contract and the \\\"AccessControlEnumerable\\\" contract. The contract provides functionalities for access control and role management. Roles: The contract defines three role identifiers as bytes32 constants: 1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. 2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. 3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. State Variables: - `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. - `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. Functions: - `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. - `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. - `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. - `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract. - `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract. - `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract. - `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping. - `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping. - `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role. - `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE. - `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE. - `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE. - `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. - `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. Modifiers: - `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. Overall, the contract provides a flexible access control mechanism by defining roles and allowing the assignment, revocation, and validation of roles by instance operators. It also sets a default admin role and manages the validity of roles through the `validRole` mapping.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/AccessController.sol\":\"AccessController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/AccessController.sol\":{\"keccak256\":\"0xc8293dfdc5c092e2fcea16d8a68117c9367dd09b3d951b5e730a588652212928\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://91e551839506ea79fadff0e2ea72c033c5d68d61a8414301307a172dc770f885\",\"dweb:/ipfs/QmWibGimWPLxXgNcpKUPidyTTBqvyjdV2dnQfNGfWMDgJ8\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/BundleController.sol":{"BundleController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundleCapitalProvided","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundleCapitalWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogBundlePayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundlePolicyCollateralized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundlePolicyReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"oldState","type":"uint8"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"newState","type":"uint8"}],"name":"LogBundleStateChanged","type":"event"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collateralizePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"uint256","name":"riskpoolId_","type":"uint256"},{"internalType":"bytes","name":"filter_","type":"bytes"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"create","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getFilter","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getState","outputs":[{"internalType":"enum IBundle.BundleState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"contract BundleToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[{"internalType":"uint256","name":"remainingCollateralAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"unburntBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612d1180620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063a65e2cfd116100b8578063c0e714041161007c578063c0e71404146102b6578063c397ae39146102c9578063c41a360a146102dc578063c4d66de8146102ef578063c559783e14610302578063dd4670641461032257610142565b8063a65e2cfd14610257578063b299cc261461026a578063b72674201461027d578063bb540df614610290578063bcd5349f146102a357610142565b80632d0821b71161010a5780632d0821b7146101cb5780633f5d9235146101eb57806342966c68146101fe57806344c9af28146102115780634d03f9b7146102315780636198e3391461024457610142565b80630aebeb4e1461014757806318442e631461015c5780631e0104391461017357806321df0da7146101865780632c92fb99146101ab575b600080fd5b61015a610155366004612995565b610335565b005b6008545b6040519081526020015b60405180910390f35b610160610181366004612995565b610405565b6003546001600160a01b03165b6040516001600160a01b03909116815260200161016a565b6101be6101b9366004612995565b61041c565b60405161016a9190612a5f565b6101de6101d9366004612995565b610431565b60405161016a9190612ac2565b6101606101f9366004612995565b6105ed565b61015a61020c366004612995565b610602565b61022461021f366004612995565b6107ba565b60405161016a9190612a72565b61015a61023f3660046129e6565b6107cf565b61015a610252366004612995565b610c1d565b61015a6102653660046129c5565b610c73565b61015a6102783660046129e6565b610e4a565b61015a61028b3660046129e6565b611374565b61016061029e3660046129c5565b611672565b6101606102b1366004612995565b6119d6565b6101606102c43660046127d4565b6119ff565b61015a6102d73660046129c5565b611c28565b6101936102ea366004612995565b611e00565b61015a6102fd36600461279c565b611e90565b610160610310366004612995565b60009081526007602052604090205490565b61015a610330366004612995565b61200d565b6103506e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146103895760405162461bcd60e51b815260040161038090612a80565b60405180910390fd5b600081815260056020526040902054156103f75760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031353a42554e444c455f574954485f4143544956456044820152685f504f4c494349455360b81b6064820152608401610380565b61040281600261214b565b50565b600061041082610431565b60e0015190505b919050565b606061042782610431565b6080015192915050565b610439612618565b600082815260046020908152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600380820154606084019160ff9091169081111561049d57634e487b7160e01b600052602160045260246000fd5b60038111156104bc57634e487b7160e01b600052602160045260246000fd5b81526020016004820180546104d090612c44565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc90612c44565b80156105495780601f1061051e57610100808354040283529160200191610549565b820191906000526020600020905b81548152906001019060200180831161052c57829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505090506000816101000151116105e75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3036303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b92915050565b60006105f882610431565b60c0015192915050565b61061d6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461064d5760405162461bcd60e51b815260040161038090612a80565b6000818152600460205260409020600260038083015460ff169081111561068457634e487b7160e01b600052602160045260246000fd5b146106d15760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3031363a42554e444c455f4e4f545f434c4f534544006044820152606401610380565b6007810154156107235760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4255432d3031373a42554e444c455f4841535f42414c414e43456044820152606401610380565b600354604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b50505050600181810154600090815260076020526040812080549091906107a5908490612bfd565b909155506107b6905082600361214b565b5050565b60006107c582610431565b6060015192915050565b6107ea6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461081a5760405162461bcd60e51b815260040161038090612a80565b60025460405163296586d360e21b8152600481018490526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561085f57600080fd5b505afa158015610873573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089b9190810190612860565b60008581526004602052604090209091506108b46121ac565b6001600160a01b031663d229f3b083602001516040518263ffffffff1660e01b81526004016108e591815260200190565b60206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093591906129ad565b8160010154146109935760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3031393a42554e444c455f4e4f545f494e5f5249534b6044820152631413d3d360e21b6064820152608401610380565b60008160080154116109f35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3032303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff1690811115610a1c57634e487b7160e01b600052602160045260246000fd5b14610a695760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3032313a42554e444c455f4e4f545f414354495645006044820152606401610380565b828160060154610a799190612be5565b81600501541015610acc5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4255432d3032323a43415041434954595f544f4f5f4c4f5700006044820152606401610380565b600085815260066020908152604080832087845290915290205415610b595760405162461bcd60e51b815260206004820152603b60248201527f4552524f523a4255432d3032333a494e4352454d454e54414c5f434f4c4c415460448201527f4552414c495a4154494f4e5f4e4f545f494d504c454d454e54454400000000006064820152608401610380565b82816006016000828254610b6d9190612be5565b90915550504260098201556000858152600560205260408120805460019290610b97908490612be5565b9091555050600085815260066020818152604080842088855290915282208590558201546005830154610bca9190612bfd565b6040805188815260208101889052908101869052606081018290529091507fb253c82cbaad89e2bd0fb78bc565243ccc06da1ac58b640ed94469f69b64ea549060800160405180910390a1505050505050565b610c386e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610c685760405162461bcd60e51b815260040161038090612a80565b61040281600061214b565b610c8e6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610cbe5760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154610d295760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600260038083015460ff1690811115610d5257634e487b7160e01b600052602160045260246000fd5b1415610da05760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4255432d3031323a42554e444c455f434c4f53454400000000006044820152606401610380565b81816005016000828254610db49190612be5565b9250508190555081816007016000828254610dcf9190612be5565b909155505042600982015560068101546005820154600091610df091612bfd565b90507fed746f45e63100861a9a492e092018cdce2d2645b83741099a6f8ecba2af013884335b604080519283526001600160a01b03909116602083015281018590526060810183905260800160405180910390a150505050565b610e656e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610e955760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b158015610edb57600080fd5b505afa158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f139190612910565b9050600281516002811115610f3857634e487b7160e01b600052602160045260246000fd5b1415610f915760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000848152600560205260409020546110005760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3034313a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b60008481526006602090815260408083208684529091529020548211156110825760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4255432d3034323a434f4c4c41544552414c5f494e535546464960448201526f4349454e545f464f525f504f4c49435960801b6064820152608401610380565b600084815260046020526040902060088101546110ed5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3034333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff169081111561111657634e487b7160e01b600052602160045260246000fd5b14806111485750600160038083015460ff169081111561114657634e487b7160e01b600052602160045260246000fd5b145b61119f5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4255432d3034343a42554e444c455f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b82816005015410156111f35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034353a4341504954414c5f544f4f5f4c4f570000006044820152606401610380565b82816006015410156112535760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3034363a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b6064820152608401610380565b82816007015410156112a75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034373a42414c414e43455f544f4f5f4c4f570000006044820152606401610380565b6000858152600660209081526040808320878452909152812080548592906112d0908490612bfd565b92505081905550828160050160008282546112eb9190612bfd565b92505081905550828160060160008282546113069190612bfd565b92505081905550828160070160008282546113219190612bfd565b909155505042600982015560408051868152602081018690529081018490527f34ea3fe7b8e6aa959a187f606dc076e9fb02379d613a2c9356f5a556aac9508c9060600160405180910390a15050505050565b61138f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146113bf5760405162461bcd60e51b815260040161038090612a80565b6000838152600460205260409020600881015484919061142d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3030323a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b60038181015460ff168181111561145457634e487b7160e01b600052602160045260246000fd5b141580156114895750600260038083015460ff169081111561148657634e487b7160e01b600052602160045260246000fd5b14155b6114e35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4255432d3030333a42554e444c455f4255524e45445f4f525f436044820152641313d4d15160da1b6064820152608401610380565b60025460405163a3f685f960e01b8152600481018690526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561152957600080fd5b505afa15801561153d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115619190612910565b905060028151600281111561158657634e487b7160e01b600052602160045260246000fd5b14156115df5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3033303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000868152600460205260409020600881015461164a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3033313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b8481600701600082825461165e9190612be5565b909155505042600990910155505050505050565b600061168f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146116bf5760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612910565b905060028151600281111561176257634e487b7160e01b600052602160045260246000fd5b146117ba5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3035303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b600084815260046020526040902060088101546118255760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3035313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b6000858152600560205260409020546118945760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3035323a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b6000858152600660208181526040808420888552909152909120549082015481111561190e5760405162461bcd60e51b8152602060048201526024808201527f50414e49433a4255432d3035333a554e4c4f434b5f4341504954414c5f544f4f6044820152635f42494760e01b6064820152608401610380565b600086815260056020526040812080546001929061192d908490612bfd565b90915550506000868152600660208181526040808420898552909152822082905583018054839290611960908490612bfd565b90915550504260098301556006820154600583015460009161198191612bfd565b6040805189815260208101899052908101849052606081018290529091507fa7edca0329e0f25a5a213baaa606802692de7155da4cf8a007aedf326d9180759060800160405180910390a15050505092915050565b6000806119e283610431565b90508060c001518160a001516119f89190612bfd565b9392505050565b6000611a1c6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611a4c5760405162461bcd60e51b815260040161038090612a80565b600854611a5a906001612be5565b600081815260046020526040902060088101549192509015611aca5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031303a42554e444c455f414c52454144595f45584960448201526253545360e81b6064820152608401610380565b6003546040516394bf804d60e01b8152600481018490526001600160a01b03898116602483015260009216906394bf804d90604401602060405180830381600087803b158015611b1957600080fd5b505af1158015611b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5191906129ad565b838355600283018190556001830188905560038301805460ff191690559050611b7e60048301878761268a565b50600582018490556007820184905542600880840182905560098401919091558054906000611bac83612c7f565b90915550506000878152600760205260408120805491611bcb83612c7f565b90915550508154600383015460058401546040517f2a6ff62099c2d2515017f639043aef82d6293361b7cb7bdc90854eb2f026b56c93611c159390928c928e9260ff169190612b7a565b60405180910390a1505095945050505050565b611c436e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611c735760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154611cde5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b818160060154611cee9190612be5565b8160050154101580611d1157506006810154158015611d11575081816007015410155b611d6f5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031343a43415041434954595f4f525f42414c414e43604482015268455f544f4f5f4c4f5760b81b6064820152608401610380565b81816005015410611d995781816005016000828254611d8e9190612bfd565b90915550611da19050565b600060058201555b81816007016000828254611db59190612bfd565b909155505042600982015560068101546005820154600091611dd691612bfd565b90507fe3d161947307a0d06b7ac0f3a183176acbc70afff0831bba7e694ef9f47323bd8433610e16565b600080611e0c83610431565b60409081015160035491516331a9108f60e11b8152600481018290529092506001600160a01b0390911690636352211e9060240160206040518083038186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f891906127b8565b600054610100900460ff1615808015611eb05750600054600160ff909116105b80611eca5750303b158015611eca575060005460ff166001145b611f2d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610380565b6000805460ff191660011790558015611f50576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f7a600090565b6541636365737360d01b14611fbc57611f9b6541636365737360d01b612063565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611fc46121c3565b80156107b6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6120286e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146120585760405162461bcd60e51b815260040161038090612a80565b61040281600161214b565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156120ad57600080fd5b505afa1580156120c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e591906127b8565b90506001600160a01b0381166104175760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610380565b6000612156836107ba565b90506121628183612299565b61216c83836125bb565b7f0c318b62e2d75a1d66c8fa6d64604f76f84b646cf3dadfb56e336044d57061f583828460405161219f93929190612b59565b60405180910390a1505050565b60006121be63141bdbdb60e21b612063565b905090565b600054610100900460ff1661222e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610380565b61224065506f6c69637960d01b612063565b600280546001600160a01b0319166001600160a01b03929092169190911790556122776a213ab7323632aa37b5b2b760a91b612063565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008260038111156122bb57634e487b7160e01b600052602160045260246000fd5b141561236f5760018160038111156122e357634e487b7160e01b600052602160045260246000fd5b148061230e5750600281600381111561230c57634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037303a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b6107b6565b600182600381111561239157634e487b7160e01b600052602160045260246000fd5b14156124405760008160038111156123b957634e487b7160e01b600052602160045260246000fd5b14806123e4575060028160038111156123e257634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037313a4c4f434b45445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600282600381111561246257634e487b7160e01b600052602160045260246000fd5b14156124e757600381600381111561248a57634e487b7160e01b600052602160045260246000fd5b1461236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037323a434c4f5345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600382600381111561250957634e487b7160e01b600052602160045260246000fd5b14156125635760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3037333a4255524e45445f49535f46494e414c5f535460448201526241544560e81b6064820152608401610380565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a424f432d3037343a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610380565b600082815260046020526040902060039081018054839260ff199091169060019084908111156125fb57634e487b7160e01b600052602160045260246000fd5b021790555050600090815260046020526040902042600990910155565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561265a57634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461269690612c44565b90600052602060002090601f0160209004810192826126b857600085556126fe565b82601f106126d15782800160ff198235161785556126fe565b828001600101855582156126fe579182015b828111156126fe5782358255916020019190600101906126e3565b5061270a92915061270e565b5090565b5b8082111561270a576000815560010161270f565b600082601f830112612733578081fd5b815167ffffffffffffffff81111561274d5761274d612cb0565b612760601f8201601f1916602001612bb4565b818152846020838601011115612774578283fd5b612785826020830160208701612c14565b949350505050565b80516003811061041757600080fd5b6000602082840312156127ad578081fd5b81356119f881612cc6565b6000602082840312156127c9578081fd5b81516119f881612cc6565b6000806000806000608086880312156127eb578081fd5b85356127f681612cc6565b945060208601359350604086013567ffffffffffffffff80821115612819578283fd5b818801915088601f83011261282c578283fd5b81358181111561283a578384fd5b89602082850101111561284b578384fd5b96999598505060200195606001359392505050565b600060208284031215612871578081fd5b815167ffffffffffffffff80821115612888578283fd5b9083019060c0828603121561289b578283fd5b6128a560c0612bb4565b82516128b081612cc6565b8152602083810151908201526128c86040840161278d565b60408201526060830151828111156128de578485fd5b6128ea87828601612723565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215612923578182fd5b61292c81612bb4565b90506129378361278d565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6000602082840312156129a6578081fd5b5035919050565b6000602082840312156129be578081fd5b5051919050565b600080604083850312156129d7578182fd5b50508035926020909101359150565b6000806000606084860312156129fa578283fd5b505081359360208301359350604090920135919050565b60008151808452612a29816020860160208601612c14565b601f01601f19169290920160200192915050565b60048110612a5b57634e487b7160e01b600052602160045260246000fd5b9052565b6000602082526119f86020830184612a11565b602081016105e78284612a3d565b60208082526022908201527f4552524f523a4255432d3030313a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612af56080840182612a3d565b5060808301516101408060a0850152612b12610160850183612a11565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b83815260608101612b6d6020830185612a3d565b6127856040830184612a3d565b858152602081018590526001600160a01b038416604082015260a08101612ba46060830185612a3d565b8260808301529695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612bdd57612bdd612cb0565b604052919050565b60008219821115612bf857612bf8612c9a565b500190565b600082821015612c0f57612c0f612c9a565b500390565b60005b83811015612c2f578181015183820152602001612c17565b83811115612c3e576000848401525b50505050565b600281046001821680612c5857607f821691505b60208210811415612c7957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c9357612c93612c9a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040257600080fdfea26469706673582212201077787b34730b7d2a802670a61dd1edc7acf97dd1ddeccd189c2edf0833b64664736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x22 JUMP JUMPDEST PUSH3 0xE4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xE2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x2D11 DUP1 PUSH3 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA65E2CFD GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC0E71404 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC0E71404 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0xC397AE39 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xC41A360A EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x2EF JUMPI DUP1 PUSH4 0xC559783E EQ PUSH2 0x302 JUMPI DUP1 PUSH4 0xDD467064 EQ PUSH2 0x322 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0xA65E2CFD EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0xB299CC26 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0xB7267420 EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0xBB540DF6 EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xBCD5349F EQ PUSH2 0x2A3 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x3F5D9235 EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x44C9AF28 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x4D03F9B7 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x6198E339 EQ PUSH2 0x244 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0xAEBEB4E EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x1E010439 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x2C92FB99 EQ PUSH2 0x1AB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x8 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x405 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16A JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x41C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2A5F JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x431 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2AC2 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST PUSH2 0x15A PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x602 JUMP JUMPDEST PUSH2 0x224 PUSH2 0x21F CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x7BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2A72 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x7CF JUMP JUMPDEST PUSH2 0x15A PUSH2 0x252 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0xC1D JUMP JUMPDEST PUSH2 0x15A PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0xC73 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0xE4A JUMP JUMPDEST PUSH2 0x15A PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1374 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x29E CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0x1672 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x19D6 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x19FF JUMP JUMPDEST PUSH2 0x15A PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0x1C28 JUMP JUMPDEST PUSH2 0x193 PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x1E00 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x2FD CALLDATASIZE PUSH1 0x4 PUSH2 0x279C JUMP JUMPDEST PUSH2 0x1E90 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x310 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x330 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x200D JUMP JUMPDEST PUSH2 0x350 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x389 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031353A42554E444C455F574954485F414354495645 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F504F4C4943494553 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x2 PUSH2 0x214B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x410 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x427 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x80 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x439 PUSH2 0x2618 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH2 0x140 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP1 DUP3 ADD SLOAD PUSH1 0x60 DUP5 ADD SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0x49D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0x4D0 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FC SWAP1 PUSH2 0x2C44 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x549 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x549 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x100 ADD MLOAD GT PUSH2 0x5E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3036303A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F8 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x61D PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x64D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x684 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x6D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031363A42554E444C455F4E4F545F434C4F53454400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x7 DUP2 ADD SLOAD ISZERO PUSH2 0x723 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031373A42554E444C455F4841535F42414C414E4345 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42966C68 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x77D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 DUP2 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x7A5 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x7B6 SWAP1 POP DUP3 PUSH1 0x3 PUSH2 0x214B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7C5 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7EA PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x873 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x89B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2860 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x8B4 PUSH2 0x21AC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD229F3B0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E5 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x911 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x935 SWAP2 SWAP1 PUSH2 0x29AD JUMP JUMPDEST DUP2 PUSH1 0x1 ADD SLOAD EQ PUSH2 0x993 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031393A42554E444C455F4E4F545F494E5F5249534B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1413D3D3 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x8 ADD SLOAD GT PUSH2 0x9F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032303A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xA69 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032313A42554E444C455F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD SLOAD PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO PUSH2 0xACC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032323A43415041434954595F544F4F5F4C4F570000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xB59 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032333A494E4352454D454E54414C5F434F4C4C4154 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x4552414C495A4154494F4E5F4E4F545F494D504C454D454E5445440000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB6D SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xB97 SWAP1 DUP5 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP9 DUP6 MSTORE SWAP1 SWAP2 MSTORE DUP3 KECCAK256 DUP6 SWAP1 SSTORE DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH2 0xBCA SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xB253C82CBAAD89E2BD0FB78BC565243CCC06DA1AC58B640ED94469F69B64EA54 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC38 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x0 PUSH2 0x214B JUMP JUMPDEST PUSH2 0xC8E PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0xD29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0xD52 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xDA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031323A42554E444C455F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDB4 SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDCF SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0xDF0 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 POP PUSH32 0xED746F45E63100861A9A492E092018CDCE2D2645B83741099A6F8ECBA2AF0138 DUP5 CALLER JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0xE65 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF13 SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF38 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xF91 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1000 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034313A4E4F5F4143544956455F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x5F464F525F42554E444C45 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x1082 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034323A434F4C4C41544552414C5F494E5355464649 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x4349454E545F464F525F504F4C494359 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x10ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034333A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1116 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1148 JUMPI POP PUSH1 0x1 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1146 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x119F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034343A42554E444C455F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO PUSH2 0x11F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034353A4341504954414C5F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x1253 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034363A4C4F434B45445F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F4C4F57 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO PUSH2 0x12A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034373A42414C414E43455F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP6 SWAP3 SWAP1 PUSH2 0x12D0 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x12EB SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1306 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1321 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x34EA3FE7B8E6AA959A187F606DC076E9FB02379D613A2C9356F5A556AAC9508C SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x138F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD DUP5 SWAP2 SWAP1 PUSH2 0x142D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030323A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 ADD SLOAD PUSH1 0xFF AND DUP2 DUP2 GT ISZERO PUSH2 0x1454 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x1489 JUMPI POP PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1486 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO JUMPDEST PUSH2 0x14E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030333A42554E444C455F4255524E45445F4F525F43 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1313D4D151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1529 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x153D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1561 SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1586 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x15DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3033303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x164A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3033313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP5 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x165E SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 SWAP1 SWAP2 ADD SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1705 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x173D SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1762 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x17BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3035303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x1825 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3035313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1894 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3035323A4E4F5F4143544956455F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x5F464F525F42554E444C45 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP9 DUP6 MSTORE SWAP1 SWAP2 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 DUP3 ADD SLOAD DUP2 GT ISZERO PUSH2 0x190E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x50414E49433A4255432D3035333A554E4C4F434B5F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F424947 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x192D SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP10 DUP6 MSTORE SWAP1 SWAP2 MSTORE DUP3 KECCAK256 DUP3 SWAP1 SSTORE DUP4 ADD DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1960 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP4 ADD SSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1981 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xA7EDCA0329E0F25A5A213BAAA606802692DE7155DA4CF8A007AEDF326D918075 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x19E2 DUP4 PUSH2 0x431 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xC0 ADD MLOAD DUP2 PUSH1 0xA0 ADD MLOAD PUSH2 0x19F8 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A1C PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x1A5A SWAP1 PUSH1 0x1 PUSH2 0x2BE5 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 ISZERO PUSH2 0x1ACA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031303A42554E444C455F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x94BF804D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x94BF804D SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B51 SWAP2 SWAP1 PUSH2 0x29AD JUMP JUMPDEST DUP4 DUP4 SSTORE PUSH1 0x2 DUP4 ADD DUP2 SWAP1 SSTORE PUSH1 0x1 DUP4 ADD DUP9 SWAP1 SSTORE PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 POP PUSH2 0x1B7E PUSH1 0x4 DUP4 ADD DUP8 DUP8 PUSH2 0x268A JUMP JUMPDEST POP PUSH1 0x5 DUP3 ADD DUP5 SWAP1 SSTORE PUSH1 0x7 DUP3 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x8 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x9 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x1BAC DUP4 PUSH2 0x2C7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x1BCB DUP4 PUSH2 0x2C7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP2 SLOAD PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x5 DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH32 0x2A6FF62099C2D2515017F639043AEF82D6293361B7CB7BDC90854EB2F026B56C SWAP4 PUSH2 0x1C15 SWAP4 SWAP1 SWAP3 DUP13 SWAP3 DUP15 SWAP3 PUSH1 0xFF AND SWAP2 SWAP1 PUSH2 0x2B7A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1C43 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C73 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x1CDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031333A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x6 ADD SLOAD PUSH2 0x1CEE SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO DUP1 PUSH2 0x1D11 JUMPI POP PUSH1 0x6 DUP2 ADD SLOAD ISZERO DUP1 ISZERO PUSH2 0x1D11 JUMPI POP DUP2 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO JUMPDEST PUSH2 0x1D6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031343A43415041434954595F4F525F42414C414E43 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x455F544F4F5F4C4F57 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x5 ADD SLOAD LT PUSH2 0x1D99 JUMPI DUP2 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D8E SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1DA1 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 DUP3 ADD SSTORE JUMPDEST DUP2 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1DB5 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1DD6 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 POP PUSH32 0xE3D161947307A0D06B7AC0F3A183176ACBC70AFFF0831BBA7E694EF9F47323BD DUP5 CALLER PUSH2 0xE16 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0C DUP4 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 ADD MLOAD PUSH1 0x3 SLOAD SWAP2 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F8 SWAP2 SWAP1 PUSH2 0x27B8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1EB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1ECA JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ECA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1F2D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1F50 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1F7A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1FBC JUMPI PUSH2 0x1F9B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1FC4 PUSH2 0x21C3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7B6 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x2028 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2058 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x1 PUSH2 0x214B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20E5 SWAP2 SWAP1 PUSH2 0x27B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x417 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2156 DUP4 PUSH2 0x7BA JUMP JUMPDEST SWAP1 POP PUSH2 0x2162 DUP2 DUP4 PUSH2 0x2299 JUMP JUMPDEST PUSH2 0x216C DUP4 DUP4 PUSH2 0x25BB JUMP JUMPDEST PUSH32 0xC318B62E2D75A1D66C8FA6D64604F76F84B646CF3DADFB56E336044D57061F5 DUP4 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0x219F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B59 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21BE PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x2063 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x222E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x2240 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2277 PUSH11 0x213AB7323632AA37B5B2B7 PUSH1 0xA9 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x22BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x236F JUMPI PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x22E3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x230E JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x230C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037303A4143544956455F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x7B6 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2391 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2440 JUMPI PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x23B9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x23E4 JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x23E2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037313A4C4F434B45445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2462 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x24E7 JUMPI PUSH1 0x3 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x248A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037323A434C4F5345445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2509 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2563 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037333A4255524E45445F49535F46494E414C5F5354 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x415445 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A424F432D3037343A494E495449414C5F53544154455F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12105391131151 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 SWAP1 DUP2 ADD DUP1 SLOAD DUP4 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 DUP2 GT ISZERO PUSH2 0x25FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 TIMESTAMP PUSH1 0x9 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x265A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2696 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x26B8 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x26FE JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x26D1 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x26FE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x26FE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x26FE JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x26E3 JUMP JUMPDEST POP PUSH2 0x270A SWAP3 SWAP2 POP PUSH2 0x270E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x270A JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x270F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2733 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x274D JUMPI PUSH2 0x274D PUSH2 0x2CB0 JUMP JUMPDEST PUSH2 0x2760 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2BB4 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2774 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2785 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2C14 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x417 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x19F8 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27C9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x19F8 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x27EB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x27F6 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2819 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x282C JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x283A JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x284B JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP POP PUSH1 0x20 ADD SWAP6 PUSH1 0x60 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2871 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2888 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x289B JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x28A5 PUSH1 0xC0 PUSH2 0x2BB4 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x28B0 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x28C8 PUSH1 0x40 DUP5 ADD PUSH2 0x278D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x28DE JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x28EA DUP8 DUP3 DUP7 ADD PUSH2 0x2723 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2923 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x292C DUP2 PUSH2 0x2BB4 JUMP JUMPDEST SWAP1 POP PUSH2 0x2937 DUP4 PUSH2 0x278D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29A6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29BE JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29D7 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x29FA JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2A29 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2C14 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x2A5B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x19F8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A11 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x5E7 DUP3 DUP5 PUSH2 0x2A3D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2AF5 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2A3D JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2B12 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2A11 JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x2B6D PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2A3D JUMP JUMPDEST PUSH2 0x2785 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2A3D JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0x2BA4 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2A3D JUMP JUMPDEST DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2BDD JUMPI PUSH2 0x2BDD PUSH2 0x2CB0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2BF8 JUMPI PUSH2 0x2BF8 PUSH2 0x2C9A JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C0F JUMPI PUSH2 0x2C0F PUSH2 0x2C9A JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2C2F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2C17 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2C3E JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2C58 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2C79 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C93 JUMPI PUSH2 0x2C93 PUSH2 0x2C9A JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x402 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT PUSH24 0x787B34730B7D2A802670A61DD1EDC7ACF97DD1DDECCD189C 0x2E 0xDF ADDMOD CALLER 0xB6 CHAINID PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2400:13072:74:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;2400:13072:74;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;2400:13072:74;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:27913:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"77:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"126:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"135:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"142:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"128:6:103"},"nodeType":"YulFunctionCall","src":"128:20:103"},"nodeType":"YulExpressionStatement","src":"128:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"113:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"120:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"90:6:103"},"nodeType":"YulFunctionCall","src":"90:35:103"},"nodeType":"YulIf","src":"87:2:103"},{"nodeType":"YulVariableDeclaration","src":"159:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"175:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"169:5:103"},"nodeType":"YulFunctionCall","src":"169:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"163:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"221:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"223:16:103"},"nodeType":"YulFunctionCall","src":"223:18:103"},"nodeType":"YulExpressionStatement","src":"223:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"197:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"201:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"194:2:103"},"nodeType":"YulFunctionCall","src":"194:26:103"},"nodeType":"YulIf","src":"191:2:103"},{"nodeType":"YulVariableDeclaration","src":"252:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"295:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"299:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"291:3:103"},"nodeType":"YulFunctionCall","src":"291:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"310:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"306:3:103"},"nodeType":"YulFunctionCall","src":"306:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"287:3:103"},"nodeType":"YulFunctionCall","src":"287:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"316:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"283:3:103"},"nodeType":"YulFunctionCall","src":"283:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"267:15:103"},"nodeType":"YulFunctionCall","src":"267:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"256:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"338:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"347:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"331:6:103"},"nodeType":"YulFunctionCall","src":"331:19:103"},"nodeType":"YulExpressionStatement","src":"331:19:103"},{"body":{"nodeType":"YulBlock","src":"398:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"407:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"414:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"400:6:103"},"nodeType":"YulFunctionCall","src":"400:20:103"},"nodeType":"YulExpressionStatement","src":"400:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"373:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"381:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:103"},"nodeType":"YulFunctionCall","src":"369:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"386:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:103"},"nodeType":"YulFunctionCall","src":"365:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"393:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"362:2:103"},"nodeType":"YulFunctionCall","src":"362:35:103"},"nodeType":"YulIf","src":"359:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"457:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"465:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"453:3:103"},"nodeType":"YulFunctionCall","src":"453:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"476:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"485:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"472:3:103"},"nodeType":"YulFunctionCall","src":"472:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"492:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"431:21:103"},"nodeType":"YulFunctionCall","src":"431:64:103"},"nodeType":"YulExpressionStatement","src":"431:64:103"},{"nodeType":"YulAssignment","src":"504:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"513:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"504:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"51:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"59:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"67:5:103","type":""}],"src":"14:512:103"},{"body":{"nodeType":"YulBlock","src":"604:87:103","statements":[{"nodeType":"YulAssignment","src":"614:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"629:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"623:5:103"},"nodeType":"YulFunctionCall","src":"623:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"614:5:103"}]},{"body":{"nodeType":"YulBlock","src":"669:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"678:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"681:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"671:6:103"},"nodeType":"YulFunctionCall","src":"671:12:103"},"nodeType":"YulExpressionStatement","src":"671:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"658:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"665:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"655:2:103"},"nodeType":"YulFunctionCall","src":"655:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"648:6:103"},"nodeType":"YulFunctionCall","src":"648:20:103"},"nodeType":"YulIf","src":"645:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"583:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"594:5:103","type":""}],"src":"531:160:103"},{"body":{"nodeType":"YulBlock","src":"766:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"812:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"821:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"829:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"814:6:103"},"nodeType":"YulFunctionCall","src":"814:22:103"},"nodeType":"YulExpressionStatement","src":"814:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"787:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"796:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"783:3:103"},"nodeType":"YulFunctionCall","src":"783:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"808:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"779:3:103"},"nodeType":"YulFunctionCall","src":"779:32:103"},"nodeType":"YulIf","src":"776:2:103"},{"nodeType":"YulVariableDeclaration","src":"847:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"873:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"860:12:103"},"nodeType":"YulFunctionCall","src":"860:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"851:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"917:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"892:24:103"},"nodeType":"YulFunctionCall","src":"892:31:103"},"nodeType":"YulExpressionStatement","src":"892:31:103"},{"nodeType":"YulAssignment","src":"932:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"942:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"932:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"732:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"743:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"755:6:103","type":""}],"src":"696:257:103"},{"body":{"nodeType":"YulBlock","src":"1039:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1085:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1094:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1102:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1087:6:103"},"nodeType":"YulFunctionCall","src":"1087:22:103"},"nodeType":"YulExpressionStatement","src":"1087:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1060:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1069:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1056:3:103"},"nodeType":"YulFunctionCall","src":"1056:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1081:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1052:3:103"},"nodeType":"YulFunctionCall","src":"1052:32:103"},"nodeType":"YulIf","src":"1049:2:103"},{"nodeType":"YulVariableDeclaration","src":"1120:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1139:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1133:5:103"},"nodeType":"YulFunctionCall","src":"1133:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1124:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1183:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1158:24:103"},"nodeType":"YulFunctionCall","src":"1158:31:103"},"nodeType":"YulExpressionStatement","src":"1158:31:103"},{"nodeType":"YulAssignment","src":"1198:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1208:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1198:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1005:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1016:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1028:6:103","type":""}],"src":"958:261:103"},{"body":{"nodeType":"YulBlock","src":"1364:773:103","statements":[{"body":{"nodeType":"YulBlock","src":"1411:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1420:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1428:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1413:6:103"},"nodeType":"YulFunctionCall","src":"1413:22:103"},"nodeType":"YulExpressionStatement","src":"1413:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1385:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1394:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1381:3:103"},"nodeType":"YulFunctionCall","src":"1381:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1406:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1377:3:103"},"nodeType":"YulFunctionCall","src":"1377:33:103"},"nodeType":"YulIf","src":"1374:2:103"},{"nodeType":"YulVariableDeclaration","src":"1446:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1472:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1459:12:103"},"nodeType":"YulFunctionCall","src":"1459:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1450:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1516:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1491:24:103"},"nodeType":"YulFunctionCall","src":"1491:31:103"},"nodeType":"YulExpressionStatement","src":"1491:31:103"},{"nodeType":"YulAssignment","src":"1531:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1541:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1531:6:103"}]},{"nodeType":"YulAssignment","src":"1555:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1582:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1593:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1578:3:103"},"nodeType":"YulFunctionCall","src":"1578:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1565:12:103"},"nodeType":"YulFunctionCall","src":"1565:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1555:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1606:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1648:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1633:3:103"},"nodeType":"YulFunctionCall","src":"1633:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1620:12:103"},"nodeType":"YulFunctionCall","src":"1620:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1610:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1661:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1671:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1665:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1716:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1725:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1733:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1718:6:103"},"nodeType":"YulFunctionCall","src":"1718:22:103"},"nodeType":"YulExpressionStatement","src":"1718:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1704:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1701:2:103"},"nodeType":"YulFunctionCall","src":"1701:14:103"},"nodeType":"YulIf","src":"1698:2:103"},{"nodeType":"YulVariableDeclaration","src":"1751:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1765:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1776:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1761:3:103"},"nodeType":"YulFunctionCall","src":"1761:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1755:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1831:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1840:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1848:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1833:6:103"},"nodeType":"YulFunctionCall","src":"1833:22:103"},"nodeType":"YulExpressionStatement","src":"1833:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1810:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1814:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1806:3:103"},"nodeType":"YulFunctionCall","src":"1806:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1821:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1802:3:103"},"nodeType":"YulFunctionCall","src":"1802:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1795:6:103"},"nodeType":"YulFunctionCall","src":"1795:35:103"},"nodeType":"YulIf","src":"1792:2:103"},{"nodeType":"YulVariableDeclaration","src":"1866:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1893:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1880:12:103"},"nodeType":"YulFunctionCall","src":"1880:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1870:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1923:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1932:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1940:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1925:6:103"},"nodeType":"YulFunctionCall","src":"1925:22:103"},"nodeType":"YulExpressionStatement","src":"1925:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1911:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1919:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1908:2:103"},"nodeType":"YulFunctionCall","src":"1908:14:103"},"nodeType":"YulIf","src":"1905:2:103"},{"body":{"nodeType":"YulBlock","src":"1999:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2008:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"2016:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2001:6:103"},"nodeType":"YulFunctionCall","src":"2001:22:103"},"nodeType":"YulExpressionStatement","src":"2001:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1972:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"1976:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1968:3:103"},"nodeType":"YulFunctionCall","src":"1968:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"1985:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1964:3:103"},"nodeType":"YulFunctionCall","src":"1964:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1990:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1961:2:103"},"nodeType":"YulFunctionCall","src":"1961:37:103"},"nodeType":"YulIf","src":"1958:2:103"},{"nodeType":"YulAssignment","src":"2034:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2048:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2052:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2044:3:103"},"nodeType":"YulFunctionCall","src":"2044:11:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2034:6:103"}]},{"nodeType":"YulAssignment","src":"2064:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"2074:6:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2064:6:103"}]},{"nodeType":"YulAssignment","src":"2089:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2116:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2127:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2112:3:103"},"nodeType":"YulFunctionCall","src":"2112:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2099:12:103"},"nodeType":"YulFunctionCall","src":"2099:32:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2089:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1298:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1309:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1321:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1329:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1337:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1345:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1353:6:103","type":""}],"src":"1224:913:103"},{"body":{"nodeType":"YulBlock","src":"2249:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"2295:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2304:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2312:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2297:6:103"},"nodeType":"YulFunctionCall","src":"2297:22:103"},"nodeType":"YulExpressionStatement","src":"2297:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2270:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2279:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2266:3:103"},"nodeType":"YulFunctionCall","src":"2266:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2291:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2262:3:103"},"nodeType":"YulFunctionCall","src":"2262:32:103"},"nodeType":"YulIf","src":"2259:2:103"},{"nodeType":"YulVariableDeclaration","src":"2330:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2350:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2344:5:103"},"nodeType":"YulFunctionCall","src":"2344:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2334:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2369:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2379:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2373:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2424:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2433:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2441:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2426:6:103"},"nodeType":"YulFunctionCall","src":"2426:22:103"},"nodeType":"YulExpressionStatement","src":"2426:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2412:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2420:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2409:2:103"},"nodeType":"YulFunctionCall","src":"2409:14:103"},"nodeType":"YulIf","src":"2406:2:103"},{"nodeType":"YulVariableDeclaration","src":"2459:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2473:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2484:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2469:3:103"},"nodeType":"YulFunctionCall","src":"2469:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2463:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2531:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2540:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2548:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2533:6:103"},"nodeType":"YulFunctionCall","src":"2533:22:103"},"nodeType":"YulExpressionStatement","src":"2533:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2511:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"2520:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2507:3:103"},"nodeType":"YulFunctionCall","src":"2507:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"2525:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2503:3:103"},"nodeType":"YulFunctionCall","src":"2503:27:103"},"nodeType":"YulIf","src":"2500:2:103"},{"nodeType":"YulVariableDeclaration","src":"2566:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2595:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2579:15:103"},"nodeType":"YulFunctionCall","src":"2579:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2570:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2609:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2630:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2624:5:103"},"nodeType":"YulFunctionCall","src":"2624:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2613:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2667:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2642:24:103"},"nodeType":"YulFunctionCall","src":"2642:33:103"},"nodeType":"YulExpressionStatement","src":"2642:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2691:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"2698:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2684:6:103"},"nodeType":"YulFunctionCall","src":"2684:22:103"},"nodeType":"YulExpressionStatement","src":"2684:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2726:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2733:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2722:3:103"},"nodeType":"YulFunctionCall","src":"2722:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2748:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2752:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2738:5:103"},"nodeType":"YulFunctionCall","src":"2738:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2715:6:103"},"nodeType":"YulFunctionCall","src":"2715:42:103"},"nodeType":"YulExpressionStatement","src":"2715:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2777:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2784:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2773:3:103"},"nodeType":"YulFunctionCall","src":"2773:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2836:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2840:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2832:3:103"},"nodeType":"YulFunctionCall","src":"2832:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"2789:42:103"},"nodeType":"YulFunctionCall","src":"2789:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2766:6:103"},"nodeType":"YulFunctionCall","src":"2766:79:103"},"nodeType":"YulExpressionStatement","src":"2766:79:103"},{"nodeType":"YulVariableDeclaration","src":"2854:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2880:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2884:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2876:3:103"},"nodeType":"YulFunctionCall","src":"2876:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2870:5:103"},"nodeType":"YulFunctionCall","src":"2870:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2858:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2917:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2926:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2934:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2919:6:103"},"nodeType":"YulFunctionCall","src":"2919:22:103"},"nodeType":"YulExpressionStatement","src":"2919:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2903:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2913:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2900:2:103"},"nodeType":"YulFunctionCall","src":"2900:16:103"},"nodeType":"YulIf","src":"2897:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2963:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2970:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2959:3:103"},"nodeType":"YulFunctionCall","src":"2959:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3007:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3011:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3003:3:103"},"nodeType":"YulFunctionCall","src":"3003:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3022:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"2975:27:103"},"nodeType":"YulFunctionCall","src":"2975:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2952:6:103"},"nodeType":"YulFunctionCall","src":"2952:79:103"},"nodeType":"YulExpressionStatement","src":"2952:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3051:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3058:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3047:3:103"},"nodeType":"YulFunctionCall","src":"3047:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3074:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3078:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3070:3:103"},"nodeType":"YulFunctionCall","src":"3070:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3064:5:103"},"nodeType":"YulFunctionCall","src":"3064:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3040:6:103"},"nodeType":"YulFunctionCall","src":"3040:44:103"},"nodeType":"YulExpressionStatement","src":"3040:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3104:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3111:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3100:3:103"},"nodeType":"YulFunctionCall","src":"3100:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3127:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3131:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3123:3:103"},"nodeType":"YulFunctionCall","src":"3123:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3117:5:103"},"nodeType":"YulFunctionCall","src":"3117:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3093:6:103"},"nodeType":"YulFunctionCall","src":"3093:44:103"},"nodeType":"YulExpressionStatement","src":"3093:44:103"},{"nodeType":"YulAssignment","src":"3146:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3156:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3146:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2215:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2226:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2238:6:103","type":""}],"src":"2142:1025:103"},{"body":{"nodeType":"YulBlock","src":"3277:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3287:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3297:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3291:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3345:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3354:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3362:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3347:6:103"},"nodeType":"YulFunctionCall","src":"3347:22:103"},"nodeType":"YulExpressionStatement","src":"3347:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3320:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3329:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3316:3:103"},"nodeType":"YulFunctionCall","src":"3316:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3341:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3312:3:103"},"nodeType":"YulFunctionCall","src":"3312:32:103"},"nodeType":"YulIf","src":"3309:2:103"},{"nodeType":"YulVariableDeclaration","src":"3380:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3409:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3393:15:103"},"nodeType":"YulFunctionCall","src":"3393:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3384:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3428:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3478:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"3435:42:103"},"nodeType":"YulFunctionCall","src":"3435:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3421:6:103"},"nodeType":"YulFunctionCall","src":"3421:68:103"},"nodeType":"YulExpressionStatement","src":"3421:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3509:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3516:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3531:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3542:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3527:3:103"},"nodeType":"YulFunctionCall","src":"3527:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3521:5:103"},"nodeType":"YulFunctionCall","src":"3521:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:49:103"},"nodeType":"YulExpressionStatement","src":"3498:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3567:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3574:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3563:3:103"},"nodeType":"YulFunctionCall","src":"3563:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3589:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3600:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3585:3:103"},"nodeType":"YulFunctionCall","src":"3585:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3579:5:103"},"nodeType":"YulFunctionCall","src":"3579:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3556:6:103"},"nodeType":"YulFunctionCall","src":"3556:49:103"},"nodeType":"YulExpressionStatement","src":"3556:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3625:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3632:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3621:3:103"},"nodeType":"YulFunctionCall","src":"3621:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3658:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3643:3:103"},"nodeType":"YulFunctionCall","src":"3643:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3637:5:103"},"nodeType":"YulFunctionCall","src":"3637:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3614:6:103"},"nodeType":"YulFunctionCall","src":"3614:49:103"},"nodeType":"YulExpressionStatement","src":"3614:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3683:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3690:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3679:3:103"},"nodeType":"YulFunctionCall","src":"3679:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3706:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3717:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3702:3:103"},"nodeType":"YulFunctionCall","src":"3702:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3696:5:103"},"nodeType":"YulFunctionCall","src":"3696:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3672:6:103"},"nodeType":"YulFunctionCall","src":"3672:51:103"},"nodeType":"YulExpressionStatement","src":"3672:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3743:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3750:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3739:3:103"},"nodeType":"YulFunctionCall","src":"3739:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3766:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3777:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3762:3:103"},"nodeType":"YulFunctionCall","src":"3762:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3756:5:103"},"nodeType":"YulFunctionCall","src":"3756:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3732:6:103"},"nodeType":"YulFunctionCall","src":"3732:51:103"},"nodeType":"YulExpressionStatement","src":"3732:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3803:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3810:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3799:3:103"},"nodeType":"YulFunctionCall","src":"3799:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3826:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3837:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3822:3:103"},"nodeType":"YulFunctionCall","src":"3822:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3816:5:103"},"nodeType":"YulFunctionCall","src":"3816:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3792:6:103"},"nodeType":"YulFunctionCall","src":"3792:51:103"},"nodeType":"YulExpressionStatement","src":"3792:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3863:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3870:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3859:3:103"},"nodeType":"YulFunctionCall","src":"3859:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3886:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3897:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3882:3:103"},"nodeType":"YulFunctionCall","src":"3882:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3876:5:103"},"nodeType":"YulFunctionCall","src":"3876:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3852:6:103"},"nodeType":"YulFunctionCall","src":"3852:51:103"},"nodeType":"YulExpressionStatement","src":"3852:51:103"},{"nodeType":"YulVariableDeclaration","src":"3912:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3922:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3916:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3945:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"3952:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3941:3:103"},"nodeType":"YulFunctionCall","src":"3941:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3967:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"3978:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3963:3:103"},"nodeType":"YulFunctionCall","src":"3963:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3957:5:103"},"nodeType":"YulFunctionCall","src":"3957:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3934:6:103"},"nodeType":"YulFunctionCall","src":"3934:49:103"},"nodeType":"YulExpressionStatement","src":"3934:49:103"},{"nodeType":"YulAssignment","src":"3992:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4002:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3992:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3266:6:103","type":""}],"src":"3172:841:103"},{"body":{"nodeType":"YulBlock","src":"4088:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"4134:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4143:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4151:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4136:6:103"},"nodeType":"YulFunctionCall","src":"4136:22:103"},"nodeType":"YulExpressionStatement","src":"4136:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4109:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4118:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4105:3:103"},"nodeType":"YulFunctionCall","src":"4105:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4130:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4101:3:103"},"nodeType":"YulFunctionCall","src":"4101:32:103"},"nodeType":"YulIf","src":"4098:2:103"},{"nodeType":"YulAssignment","src":"4169:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4192:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4179:12:103"},"nodeType":"YulFunctionCall","src":"4179:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4169:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4054:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4065:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4077:6:103","type":""}],"src":"4018:190:103"},{"body":{"nodeType":"YulBlock","src":"4294:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"4340:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4349:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4357:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4342:6:103"},"nodeType":"YulFunctionCall","src":"4342:22:103"},"nodeType":"YulExpressionStatement","src":"4342:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4315:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4324:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4311:3:103"},"nodeType":"YulFunctionCall","src":"4311:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4336:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4307:3:103"},"nodeType":"YulFunctionCall","src":"4307:32:103"},"nodeType":"YulIf","src":"4304:2:103"},{"nodeType":"YulAssignment","src":"4375:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4391:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4385:5:103"},"nodeType":"YulFunctionCall","src":"4385:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4375:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4260:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4271:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4283:6:103","type":""}],"src":"4213:194:103"},{"body":{"nodeType":"YulBlock","src":"4499:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"4545:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4554:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4562:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4547:6:103"},"nodeType":"YulFunctionCall","src":"4547:22:103"},"nodeType":"YulExpressionStatement","src":"4547:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4520:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4529:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4516:3:103"},"nodeType":"YulFunctionCall","src":"4516:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4541:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4512:3:103"},"nodeType":"YulFunctionCall","src":"4512:32:103"},"nodeType":"YulIf","src":"4509:2:103"},{"nodeType":"YulAssignment","src":"4580:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4603:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4590:12:103"},"nodeType":"YulFunctionCall","src":"4590:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4580:6:103"}]},{"nodeType":"YulAssignment","src":"4622:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4649:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4660:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4645:3:103"},"nodeType":"YulFunctionCall","src":"4645:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4632:12:103"},"nodeType":"YulFunctionCall","src":"4632:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4622:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4457:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4468:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4480:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4488:6:103","type":""}],"src":"4412:258:103"},{"body":{"nodeType":"YulBlock","src":"4779:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"4825:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4834:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4842:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4827:6:103"},"nodeType":"YulFunctionCall","src":"4827:22:103"},"nodeType":"YulExpressionStatement","src":"4827:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4800:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4809:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4796:3:103"},"nodeType":"YulFunctionCall","src":"4796:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4821:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4792:3:103"},"nodeType":"YulFunctionCall","src":"4792:32:103"},"nodeType":"YulIf","src":"4789:2:103"},{"nodeType":"YulAssignment","src":"4860:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4883:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4870:12:103"},"nodeType":"YulFunctionCall","src":"4870:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4860:6:103"}]},{"nodeType":"YulAssignment","src":"4902:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4929:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4940:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4925:3:103"},"nodeType":"YulFunctionCall","src":"4925:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4912:12:103"},"nodeType":"YulFunctionCall","src":"4912:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4902:6:103"}]},{"nodeType":"YulAssignment","src":"4953:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4980:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4991:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4976:3:103"},"nodeType":"YulFunctionCall","src":"4976:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4963:12:103"},"nodeType":"YulFunctionCall","src":"4963:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4953:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4729:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4740:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4752:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4760:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4768:6:103","type":""}],"src":"4675:326:103"},{"body":{"nodeType":"YulBlock","src":"5093:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"5139:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5148:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5156:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5141:6:103"},"nodeType":"YulFunctionCall","src":"5141:22:103"},"nodeType":"YulExpressionStatement","src":"5141:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5114:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5123:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5110:3:103"},"nodeType":"YulFunctionCall","src":"5110:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5135:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5106:3:103"},"nodeType":"YulFunctionCall","src":"5106:32:103"},"nodeType":"YulIf","src":"5103:2:103"},{"nodeType":"YulAssignment","src":"5174:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5197:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5184:12:103"},"nodeType":"YulFunctionCall","src":"5184:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5174:6:103"}]},{"nodeType":"YulAssignment","src":"5216:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5243:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5254:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5239:3:103"},"nodeType":"YulFunctionCall","src":"5239:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5226:12:103"},"nodeType":"YulFunctionCall","src":"5226:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5216:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5051:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5062:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5074:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5082:6:103","type":""}],"src":"5006:258:103"},{"body":{"nodeType":"YulBlock","src":"5318:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"5328:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5348:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5342:5:103"},"nodeType":"YulFunctionCall","src":"5342:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5332:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5370:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5375:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5363:6:103"},"nodeType":"YulFunctionCall","src":"5363:19:103"},"nodeType":"YulExpressionStatement","src":"5363:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5417:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5424:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5413:3:103"},"nodeType":"YulFunctionCall","src":"5413:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5435:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5440:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5431:3:103"},"nodeType":"YulFunctionCall","src":"5431:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"5447:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"5391:21:103"},"nodeType":"YulFunctionCall","src":"5391:63:103"},"nodeType":"YulExpressionStatement","src":"5391:63:103"},{"nodeType":"YulAssignment","src":"5463:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5478:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5491:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5499:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5487:3:103"},"nodeType":"YulFunctionCall","src":"5487:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5508:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5504:3:103"},"nodeType":"YulFunctionCall","src":"5504:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5483:3:103"},"nodeType":"YulFunctionCall","src":"5483:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5474:3:103"},"nodeType":"YulFunctionCall","src":"5474:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"5515:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5470:3:103"},"nodeType":"YulFunctionCall","src":"5470:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5463:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5295:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5302:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5310:3:103","type":""}],"src":"5269:257:103"},{"body":{"nodeType":"YulBlock","src":"5584:186:103","statements":[{"body":{"nodeType":"YulBlock","src":"5626:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5647:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5654:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5659:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5650:3:103"},"nodeType":"YulFunctionCall","src":"5650:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5640:6:103"},"nodeType":"YulFunctionCall","src":"5640:31:103"},"nodeType":"YulExpressionStatement","src":"5640:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5691:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5694:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5684:6:103"},"nodeType":"YulFunctionCall","src":"5684:15:103"},"nodeType":"YulExpressionStatement","src":"5684:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5719:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5722:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5712:6:103"},"nodeType":"YulFunctionCall","src":"5712:15:103"},"nodeType":"YulExpressionStatement","src":"5712:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5607:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5614:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5604:2:103"},"nodeType":"YulFunctionCall","src":"5604:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5597:6:103"},"nodeType":"YulFunctionCall","src":"5597:20:103"},"nodeType":"YulIf","src":"5594:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5753:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"5758:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5746:6:103"},"nodeType":"YulFunctionCall","src":"5746:18:103"},"nodeType":"YulExpressionStatement","src":"5746:18:103"}]},"name":"abi_encode_enum_BundleState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5568:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5575:3:103","type":""}],"src":"5531:239:103"},{"body":{"nodeType":"YulBlock","src":"5876:102:103","statements":[{"nodeType":"YulAssignment","src":"5886:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5898:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5909:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5894:3:103"},"nodeType":"YulFunctionCall","src":"5894:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5886:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5928:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5943:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5959:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5964:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5955:3:103"},"nodeType":"YulFunctionCall","src":"5955:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5968:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5951:3:103"},"nodeType":"YulFunctionCall","src":"5951:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5939:3:103"},"nodeType":"YulFunctionCall","src":"5939:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5921:6:103"},"nodeType":"YulFunctionCall","src":"5921:51:103"},"nodeType":"YulExpressionStatement","src":"5921:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5845:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5856:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5867:4:103","type":""}],"src":"5775:203:103"},{"body":{"nodeType":"YulBlock","src":"6084:76:103","statements":[{"nodeType":"YulAssignment","src":"6094:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6106:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6117:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6102:3:103"},"nodeType":"YulFunctionCall","src":"6102:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6094:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6136:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6147:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6129:6:103"},"nodeType":"YulFunctionCall","src":"6129:25:103"},"nodeType":"YulExpressionStatement","src":"6129:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6053:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6064:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6075:4:103","type":""}],"src":"5983:177:103"},{"body":{"nodeType":"YulBlock","src":"6284:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6301:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6312:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6294:6:103"},"nodeType":"YulFunctionCall","src":"6294:21:103"},"nodeType":"YulExpressionStatement","src":"6294:21:103"},{"nodeType":"YulAssignment","src":"6324:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6349:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6361:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6372:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6357:3:103"},"nodeType":"YulFunctionCall","src":"6357:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6332:16:103"},"nodeType":"YulFunctionCall","src":"6332:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6324:4:103"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6253:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6264:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6275:4:103","type":""}],"src":"6165:217:103"},{"body":{"nodeType":"YulBlock","src":"6509:102:103","statements":[{"nodeType":"YulAssignment","src":"6519:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6531:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6542:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6527:3:103"},"nodeType":"YulFunctionCall","src":"6527:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6519:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6561:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6576:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6592:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6597:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6588:3:103"},"nodeType":"YulFunctionCall","src":"6588:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6601:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6584:3:103"},"nodeType":"YulFunctionCall","src":"6584:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6572:3:103"},"nodeType":"YulFunctionCall","src":"6572:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6554:6:103"},"nodeType":"YulFunctionCall","src":"6554:51:103"},"nodeType":"YulExpressionStatement","src":"6554:51:103"}]},"name":"abi_encode_tuple_t_contract$_BundleToken_$28751__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6478:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6489:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6500:4:103","type":""}],"src":"6387:224:103"},{"body":{"nodeType":"YulBlock","src":"6731:97:103","statements":[{"nodeType":"YulAssignment","src":"6741:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6764:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6749:3:103"},"nodeType":"YulFunctionCall","src":"6749:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6741:4:103"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6804:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6812:9:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"6776:27:103"},"nodeType":"YulFunctionCall","src":"6776:46:103"},"nodeType":"YulExpressionStatement","src":"6776:46:103"}]},"name":"abi_encode_tuple_t_enum$_BundleState_$4914__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6700:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6711:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6722:4:103","type":""}],"src":"6616:212:103"},{"body":{"nodeType":"YulBlock","src":"6940:87:103","statements":[{"nodeType":"YulAssignment","src":"6950:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6962:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6973:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6958:3:103"},"nodeType":"YulFunctionCall","src":"6958:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6950:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6992:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7007:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7015:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7003:3:103"},"nodeType":"YulFunctionCall","src":"7003:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6985:6:103"},"nodeType":"YulFunctionCall","src":"6985:36:103"},"nodeType":"YulExpressionStatement","src":"6985:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6909:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6920:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6931:4:103","type":""}],"src":"6833:194:103"},{"body":{"nodeType":"YulBlock","src":"7206:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7223:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7234:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7216:6:103"},"nodeType":"YulFunctionCall","src":"7216:21:103"},"nodeType":"YulExpressionStatement","src":"7216:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7257:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7268:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7253:3:103"},"nodeType":"YulFunctionCall","src":"7253:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7273:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7246:6:103"},"nodeType":"YulFunctionCall","src":"7246:30:103"},"nodeType":"YulExpressionStatement","src":"7246:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7296:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7307:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7292:3:103"},"nodeType":"YulFunctionCall","src":"7292:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7312:31:103","type":"","value":"ERROR:BUC-045:CAPITAL_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7285:6:103"},"nodeType":"YulFunctionCall","src":"7285:59:103"},"nodeType":"YulExpressionStatement","src":"7285:59:103"},{"nodeType":"YulAssignment","src":"7353:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7376:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7361:3:103"},"nodeType":"YulFunctionCall","src":"7361:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7353:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_03e06f22613c7e93a2c0293d2431263b515ac3c8de79433e162399c9d978c6da__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7183:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7197:4:103","type":""}],"src":"7032:353:103"},{"body":{"nodeType":"YulBlock","src":"7564:249:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7592:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7574:6:103"},"nodeType":"YulFunctionCall","src":"7574:21:103"},"nodeType":"YulExpressionStatement","src":"7574:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7626:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7611:3:103"},"nodeType":"YulFunctionCall","src":"7611:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7631:2:103","type":"","value":"59"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7604:6:103"},"nodeType":"YulFunctionCall","src":"7604:30:103"},"nodeType":"YulExpressionStatement","src":"7604:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7665:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7650:3:103"},"nodeType":"YulFunctionCall","src":"7650:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7670:34:103","type":"","value":"ERROR:BUC-023:INCREMENTAL_COLLAT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7643:6:103"},"nodeType":"YulFunctionCall","src":"7643:62:103"},"nodeType":"YulExpressionStatement","src":"7643:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7736:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7721:3:103"},"nodeType":"YulFunctionCall","src":"7721:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7741:29:103","type":"","value":"ERALIZATION_NOT_IMPLEMENTED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7714:6:103"},"nodeType":"YulFunctionCall","src":"7714:57:103"},"nodeType":"YulExpressionStatement","src":"7714:57:103"},{"nodeType":"YulAssignment","src":"7780:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7803:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7788:3:103"},"nodeType":"YulFunctionCall","src":"7788:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7780:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f7e878f103e4e81471a67c70bb5acfc513b47b809c34428480adee650fd472b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7541:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7555:4:103","type":""}],"src":"7390:423:103"},{"body":{"nodeType":"YulBlock","src":"7992:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8020:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8002:6:103"},"nodeType":"YulFunctionCall","src":"8002:21:103"},"nodeType":"YulExpressionStatement","src":"8002:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8043:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8054:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8039:3:103"},"nodeType":"YulFunctionCall","src":"8039:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8059:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8032:6:103"},"nodeType":"YulFunctionCall","src":"8032:30:103"},"nodeType":"YulExpressionStatement","src":"8032:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8082:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8093:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8078:3:103"},"nodeType":"YulFunctionCall","src":"8078:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8098:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8071:6:103"},"nodeType":"YulFunctionCall","src":"8071:62:103"},"nodeType":"YulExpressionStatement","src":"8071:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8164:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8149:3:103"},"nodeType":"YulFunctionCall","src":"8149:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8169:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8142:6:103"},"nodeType":"YulFunctionCall","src":"8142:35:103"},"nodeType":"YulExpressionStatement","src":"8142:35:103"},{"nodeType":"YulAssignment","src":"8186:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8198:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8209:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8194:3:103"},"nodeType":"YulFunctionCall","src":"8194:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8186:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7969:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7983:4:103","type":""}],"src":"7818:401:103"},{"body":{"nodeType":"YulBlock","src":"8398:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8426:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8408:6:103"},"nodeType":"YulFunctionCall","src":"8408:21:103"},"nodeType":"YulExpressionStatement","src":"8408:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8449:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8460:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8445:3:103"},"nodeType":"YulFunctionCall","src":"8445:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8465:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8438:6:103"},"nodeType":"YulFunctionCall","src":"8438:30:103"},"nodeType":"YulExpressionStatement","src":"8438:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8488:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8499:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8484:3:103"},"nodeType":"YulFunctionCall","src":"8484:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8504:34:103","type":"","value":"ERROR:BUC-060:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8477:6:103"},"nodeType":"YulFunctionCall","src":"8477:62:103"},"nodeType":"YulExpressionStatement","src":"8477:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8559:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8570:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8555:3:103"},"nodeType":"YulFunctionCall","src":"8555:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8575:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8548:6:103"},"nodeType":"YulFunctionCall","src":"8548:33:103"},"nodeType":"YulExpressionStatement","src":"8548:33:103"},{"nodeType":"YulAssignment","src":"8590:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8602:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8613:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8598:3:103"},"nodeType":"YulFunctionCall","src":"8598:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8590:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_18e88bfd32eca027f106fb862d7e55871ea316361090327a612bfb4dfe3f0755__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8375:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8389:4:103","type":""}],"src":"8224:399:103"},{"body":{"nodeType":"YulBlock","src":"8802:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8830:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8812:6:103"},"nodeType":"YulFunctionCall","src":"8812:21:103"},"nodeType":"YulExpressionStatement","src":"8812:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8853:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8864:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8849:3:103"},"nodeType":"YulFunctionCall","src":"8849:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8869:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8842:6:103"},"nodeType":"YulFunctionCall","src":"8842:30:103"},"nodeType":"YulExpressionStatement","src":"8842:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8903:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8888:3:103"},"nodeType":"YulFunctionCall","src":"8888:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8908:34:103","type":"","value":"ERROR:BUC-044:BUNDLE_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8881:6:103"},"nodeType":"YulFunctionCall","src":"8881:62:103"},"nodeType":"YulExpressionStatement","src":"8881:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8963:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8974:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8959:3:103"},"nodeType":"YulFunctionCall","src":"8959:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8979:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8952:6:103"},"nodeType":"YulFunctionCall","src":"8952:32:103"},"nodeType":"YulExpressionStatement","src":"8952:32:103"},{"nodeType":"YulAssignment","src":"8993:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9005:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9016:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9001:3:103"},"nodeType":"YulFunctionCall","src":"9001:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8993:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1dddbb0de5d7844609928e43cf681e6d3461371d25dd2fe6e10bde5404e8a51c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8779:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8793:4:103","type":""}],"src":"8628:398:103"},{"body":{"nodeType":"YulBlock","src":"9205:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9233:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9215:6:103"},"nodeType":"YulFunctionCall","src":"9215:21:103"},"nodeType":"YulExpressionStatement","src":"9215:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9256:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9267:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9252:3:103"},"nodeType":"YulFunctionCall","src":"9252:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9272:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9245:6:103"},"nodeType":"YulFunctionCall","src":"9245:30:103"},"nodeType":"YulExpressionStatement","src":"9245:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9295:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9306:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9291:3:103"},"nodeType":"YulFunctionCall","src":"9291:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9311:32:103","type":"","value":"ERROR:BUC-022:CAPACITY_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9284:6:103"},"nodeType":"YulFunctionCall","src":"9284:60:103"},"nodeType":"YulExpressionStatement","src":"9284:60:103"},{"nodeType":"YulAssignment","src":"9353:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9376:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9361:3:103"},"nodeType":"YulFunctionCall","src":"9361:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9353:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1f0e986b57b056403cfa995705a568caff60bf8952514def6e4e10f0b8be0363__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9182:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9196:4:103","type":""}],"src":"9031:354:103"},{"body":{"nodeType":"YulBlock","src":"9564:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9592:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9574:6:103"},"nodeType":"YulFunctionCall","src":"9574:21:103"},"nodeType":"YulExpressionStatement","src":"9574:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9626:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9611:3:103"},"nodeType":"YulFunctionCall","src":"9611:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9631:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9604:6:103"},"nodeType":"YulFunctionCall","src":"9604:30:103"},"nodeType":"YulExpressionStatement","src":"9604:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9665:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9650:3:103"},"nodeType":"YulFunctionCall","src":"9650:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9670:34:103","type":"","value":"ERROR:BUC-014:CAPACITY_OR_BALANC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9643:6:103"},"nodeType":"YulFunctionCall","src":"9643:62:103"},"nodeType":"YulExpressionStatement","src":"9643:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9736:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9721:3:103"},"nodeType":"YulFunctionCall","src":"9721:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9741:11:103","type":"","value":"E_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9714:6:103"},"nodeType":"YulFunctionCall","src":"9714:39:103"},"nodeType":"YulExpressionStatement","src":"9714:39:103"},{"nodeType":"YulAssignment","src":"9762:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9774:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9785:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9770:3:103"},"nodeType":"YulFunctionCall","src":"9770:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9762:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_21c208e0ee80cc3a94bf9c14b14ba802f5415c77d896f3678d2b2e4e18a9fdeb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9541:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9555:4:103","type":""}],"src":"9390:405:103"},{"body":{"nodeType":"YulBlock","src":"9974:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9991:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10002:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9984:6:103"},"nodeType":"YulFunctionCall","src":"9984:21:103"},"nodeType":"YulExpressionStatement","src":"9984:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10025:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10036:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10021:3:103"},"nodeType":"YulFunctionCall","src":"10021:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10041:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10014:6:103"},"nodeType":"YulFunctionCall","src":"10014:30:103"},"nodeType":"YulExpressionStatement","src":"10014:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10075:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10060:3:103"},"nodeType":"YulFunctionCall","src":"10060:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10080:34:103","type":"","value":"ERROR:BUC-020:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10053:6:103"},"nodeType":"YulFunctionCall","src":"10053:62:103"},"nodeType":"YulExpressionStatement","src":"10053:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10135:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10146:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10131:3:103"},"nodeType":"YulFunctionCall","src":"10131:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10151:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10124:6:103"},"nodeType":"YulFunctionCall","src":"10124:33:103"},"nodeType":"YulExpressionStatement","src":"10124:33:103"},{"nodeType":"YulAssignment","src":"10166:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10178:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10189:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10174:3:103"},"nodeType":"YulFunctionCall","src":"10174:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10166:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_23c15b355ac659e6efa849a6211bec479f57808999aa963c7b0feaa5cc832745__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9951:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9965:4:103","type":""}],"src":"9800:399:103"},{"body":{"nodeType":"YulBlock","src":"10378:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10395:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10406:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10388:6:103"},"nodeType":"YulFunctionCall","src":"10388:21:103"},"nodeType":"YulExpressionStatement","src":"10388:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10440:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10425:3:103"},"nodeType":"YulFunctionCall","src":"10425:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10445:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10418:6:103"},"nodeType":"YulFunctionCall","src":"10418:30:103"},"nodeType":"YulExpressionStatement","src":"10418:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10468:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10479:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10464:3:103"},"nodeType":"YulFunctionCall","src":"10464:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10484:31:103","type":"","value":"ERROR:BUC-047:BALANCE_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10457:6:103"},"nodeType":"YulFunctionCall","src":"10457:59:103"},"nodeType":"YulExpressionStatement","src":"10457:59:103"},{"nodeType":"YulAssignment","src":"10525:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10548:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10533:3:103"},"nodeType":"YulFunctionCall","src":"10533:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10525:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2e1494ff589237f5b43eee9b5f76fa574bdf53755720949c3bbf80d7f7047647__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10355:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10369:4:103","type":""}],"src":"10204:353:103"},{"body":{"nodeType":"YulBlock","src":"10736:238:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10764:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10746:6:103"},"nodeType":"YulFunctionCall","src":"10746:21:103"},"nodeType":"YulExpressionStatement","src":"10746:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10787:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10798:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10783:3:103"},"nodeType":"YulFunctionCall","src":"10783:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10803:2:103","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10776:6:103"},"nodeType":"YulFunctionCall","src":"10776:30:103"},"nodeType":"YulExpressionStatement","src":"10776:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10826:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10837:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10822:3:103"},"nodeType":"YulFunctionCall","src":"10822:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10842:34:103","type":"","value":"ERROR:BUC-042:COLLATERAL_INSUFFI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10815:6:103"},"nodeType":"YulFunctionCall","src":"10815:62:103"},"nodeType":"YulExpressionStatement","src":"10815:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10897:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10908:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10893:3:103"},"nodeType":"YulFunctionCall","src":"10893:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10913:18:103","type":"","value":"CIENT_FOR_POLICY"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10886:6:103"},"nodeType":"YulFunctionCall","src":"10886:46:103"},"nodeType":"YulExpressionStatement","src":"10886:46:103"},{"nodeType":"YulAssignment","src":"10941:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10953:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10964:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10949:3:103"},"nodeType":"YulFunctionCall","src":"10949:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10941:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_34c2d809984edcd3108df93e41438c107c75d7c168211713e77a185c157022f0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10713:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10727:4:103","type":""}],"src":"10562:412:103"},{"body":{"nodeType":"YulBlock","src":"11153:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11181:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11163:6:103"},"nodeType":"YulFunctionCall","src":"11163:21:103"},"nodeType":"YulExpressionStatement","src":"11163:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11204:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11215:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11200:3:103"},"nodeType":"YulFunctionCall","src":"11200:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11220:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11193:6:103"},"nodeType":"YulFunctionCall","src":"11193:30:103"},"nodeType":"YulExpressionStatement","src":"11193:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11243:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11254:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11239:3:103"},"nodeType":"YulFunctionCall","src":"11239:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11259:34:103","type":"","value":"ERROR:BUC-002:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11232:6:103"},"nodeType":"YulFunctionCall","src":"11232:62:103"},"nodeType":"YulExpressionStatement","src":"11232:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11314:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11325:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11310:3:103"},"nodeType":"YulFunctionCall","src":"11310:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11330:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11303:6:103"},"nodeType":"YulFunctionCall","src":"11303:33:103"},"nodeType":"YulExpressionStatement","src":"11303:33:103"},{"nodeType":"YulAssignment","src":"11345:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11357:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11368:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11353:3:103"},"nodeType":"YulFunctionCall","src":"11353:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11345:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4194f84ab3a903bd197fb67924a3a7daa9e6613ff1e3b7fc1fb4fffc1258eed5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11130:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11144:4:103","type":""}],"src":"10979:399:103"},{"body":{"nodeType":"YulBlock","src":"11557:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11574:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11585:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11567:6:103"},"nodeType":"YulFunctionCall","src":"11567:21:103"},"nodeType":"YulExpressionStatement","src":"11567:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11608:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11619:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11604:3:103"},"nodeType":"YulFunctionCall","src":"11604:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11624:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11597:6:103"},"nodeType":"YulFunctionCall","src":"11597:30:103"},"nodeType":"YulExpressionStatement","src":"11597:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11658:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11643:3:103"},"nodeType":"YulFunctionCall","src":"11643:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11663:34:103","type":"","value":"ERROR:BUC-046:LOCKED_CAPITAL_TOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11636:6:103"},"nodeType":"YulFunctionCall","src":"11636:62:103"},"nodeType":"YulExpressionStatement","src":"11636:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11718:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11729:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11714:3:103"},"nodeType":"YulFunctionCall","src":"11714:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11734:6:103","type":"","value":"_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11707:6:103"},"nodeType":"YulFunctionCall","src":"11707:34:103"},"nodeType":"YulExpressionStatement","src":"11707:34:103"},{"nodeType":"YulAssignment","src":"11750:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11762:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11773:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11758:3:103"},"nodeType":"YulFunctionCall","src":"11758:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11750:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_476d68cd1c40602068b3ee7843f94973d1216d46b2eed8d0cd41db8cb728d4b0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11534:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11548:4:103","type":""}],"src":"11383:400:103"},{"body":{"nodeType":"YulBlock","src":"11962:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11979:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11990:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11972:6:103"},"nodeType":"YulFunctionCall","src":"11972:21:103"},"nodeType":"YulExpressionStatement","src":"11972:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12024:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12009:3:103"},"nodeType":"YulFunctionCall","src":"12009:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12029:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12002:6:103"},"nodeType":"YulFunctionCall","src":"12002:30:103"},"nodeType":"YulExpressionStatement","src":"12002:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12052:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12063:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12048:3:103"},"nodeType":"YulFunctionCall","src":"12048:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12068:34:103","type":"","value":"ERROR:BUC-001:NOT_RISKPOOL_SERVI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12041:6:103"},"nodeType":"YulFunctionCall","src":"12041:62:103"},"nodeType":"YulExpressionStatement","src":"12041:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12123:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12134:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12119:3:103"},"nodeType":"YulFunctionCall","src":"12119:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12139:4:103","type":"","value":"CE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12112:6:103"},"nodeType":"YulFunctionCall","src":"12112:32:103"},"nodeType":"YulExpressionStatement","src":"12112:32:103"},{"nodeType":"YulAssignment","src":"12153:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12165:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12176:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12161:3:103"},"nodeType":"YulFunctionCall","src":"12161:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12153:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_476d7bdb29f083f2ebfc1b7face76d9f76a751b84204921dae4a5245b351756d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11939:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11953:4:103","type":""}],"src":"11788:398:103"},{"body":{"nodeType":"YulBlock","src":"12365:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12382:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12393:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12375:6:103"},"nodeType":"YulFunctionCall","src":"12375:21:103"},"nodeType":"YulExpressionStatement","src":"12375:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12427:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12412:3:103"},"nodeType":"YulFunctionCall","src":"12412:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12432:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12405:6:103"},"nodeType":"YulFunctionCall","src":"12405:30:103"},"nodeType":"YulExpressionStatement","src":"12405:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12455:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12466:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12451:3:103"},"nodeType":"YulFunctionCall","src":"12451:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12471:34:103","type":"","value":"ERROR:BUC-051:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12444:6:103"},"nodeType":"YulFunctionCall","src":"12444:62:103"},"nodeType":"YulExpressionStatement","src":"12444:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12526:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12537:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12522:3:103"},"nodeType":"YulFunctionCall","src":"12522:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12542:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12515:6:103"},"nodeType":"YulFunctionCall","src":"12515:33:103"},"nodeType":"YulExpressionStatement","src":"12515:33:103"},{"nodeType":"YulAssignment","src":"12557:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12580:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12565:3:103"},"nodeType":"YulFunctionCall","src":"12565:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12557:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4c8d28aba0b55c77dc14995621b19dd76d0dd4fc213e18d9e4f16eec0d3302e7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12342:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12356:4:103","type":""}],"src":"12191:399:103"},{"body":{"nodeType":"YulBlock","src":"12769:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12786:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12797:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12779:6:103"},"nodeType":"YulFunctionCall","src":"12779:21:103"},"nodeType":"YulExpressionStatement","src":"12779:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12831:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12816:3:103"},"nodeType":"YulFunctionCall","src":"12816:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12836:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12809:6:103"},"nodeType":"YulFunctionCall","src":"12809:30:103"},"nodeType":"YulExpressionStatement","src":"12809:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12859:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12870:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12855:3:103"},"nodeType":"YulFunctionCall","src":"12855:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12875:34:103","type":"","value":"ERROR:BUC-017:BUNDLE_HAS_BALANCE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12848:6:103"},"nodeType":"YulFunctionCall","src":"12848:62:103"},"nodeType":"YulExpressionStatement","src":"12848:62:103"},{"nodeType":"YulAssignment","src":"12919:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12931:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12942:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12927:3:103"},"nodeType":"YulFunctionCall","src":"12927:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12919:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4e3999515467d51db7d3efc320b4632f965fd637f4434d0cd56865c0258932e1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12746:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12760:4:103","type":""}],"src":"12595:356:103"},{"body":{"nodeType":"YulBlock","src":"13130:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13147:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13158:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13140:6:103"},"nodeType":"YulFunctionCall","src":"13140:21:103"},"nodeType":"YulExpressionStatement","src":"13140:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13181:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13192:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13177:3:103"},"nodeType":"YulFunctionCall","src":"13177:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13197:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13170:6:103"},"nodeType":"YulFunctionCall","src":"13170:30:103"},"nodeType":"YulExpressionStatement","src":"13170:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13231:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13216:3:103"},"nodeType":"YulFunctionCall","src":"13216:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13236:29:103","type":"","value":"ERROR:BUC-012:BUNDLE_CLOSED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13209:6:103"},"nodeType":"YulFunctionCall","src":"13209:57:103"},"nodeType":"YulExpressionStatement","src":"13209:57:103"},{"nodeType":"YulAssignment","src":"13275:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13287:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13298:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13283:3:103"},"nodeType":"YulFunctionCall","src":"13283:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13275:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_51098105866c55020f052d2f0c7132465beb1923abe3fed4a93163d00ae443f5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13107:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13121:4:103","type":""}],"src":"12956:351:103"},{"body":{"nodeType":"YulBlock","src":"13486:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13503:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13514:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13496:6:103"},"nodeType":"YulFunctionCall","src":"13496:21:103"},"nodeType":"YulExpressionStatement","src":"13496:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13548:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13533:3:103"},"nodeType":"YulFunctionCall","src":"13533:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13553:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13526:6:103"},"nodeType":"YulFunctionCall","src":"13526:30:103"},"nodeType":"YulExpressionStatement","src":"13526:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13576:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13587:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13572:3:103"},"nodeType":"YulFunctionCall","src":"13572:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13592:34:103","type":"","value":"ERROR:BUC-070:ACTIVE_INVALID_TRA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13565:6:103"},"nodeType":"YulFunctionCall","src":"13565:62:103"},"nodeType":"YulExpressionStatement","src":"13565:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13658:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13643:3:103"},"nodeType":"YulFunctionCall","src":"13643:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13663:9:103","type":"","value":"NSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13636:6:103"},"nodeType":"YulFunctionCall","src":"13636:37:103"},"nodeType":"YulExpressionStatement","src":"13636:37:103"},{"nodeType":"YulAssignment","src":"13682:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13694:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13705:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13690:3:103"},"nodeType":"YulFunctionCall","src":"13690:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13682:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_57e2fa2e1f46bf1826c5847f0b8b0e2dfce8ed4b21dd5b3ef33697380369b0d0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13463:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13477:4:103","type":""}],"src":"13312:403:103"},{"body":{"nodeType":"YulBlock","src":"13894:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13911:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13922:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13904:6:103"},"nodeType":"YulFunctionCall","src":"13904:21:103"},"nodeType":"YulExpressionStatement","src":"13904:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13945:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13956:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13941:3:103"},"nodeType":"YulFunctionCall","src":"13941:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13961:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13934:6:103"},"nodeType":"YulFunctionCall","src":"13934:30:103"},"nodeType":"YulExpressionStatement","src":"13934:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13984:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13995:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13980:3:103"},"nodeType":"YulFunctionCall","src":"13980:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14000:34:103","type":"","value":"ERROR:BUC-043:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13973:6:103"},"nodeType":"YulFunctionCall","src":"13973:62:103"},"nodeType":"YulExpressionStatement","src":"13973:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14066:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14051:3:103"},"nodeType":"YulFunctionCall","src":"14051:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14071:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14044:6:103"},"nodeType":"YulFunctionCall","src":"14044:33:103"},"nodeType":"YulExpressionStatement","src":"14044:33:103"},{"nodeType":"YulAssignment","src":"14086:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14098:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14109:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14094:3:103"},"nodeType":"YulFunctionCall","src":"14094:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14086:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_677000cd6030ee367c696ca46253760a7b00f48b537add2d4517030ec068929f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13871:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13885:4:103","type":""}],"src":"13720:399:103"},{"body":{"nodeType":"YulBlock","src":"14298:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14315:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14326:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14308:6:103"},"nodeType":"YulFunctionCall","src":"14308:21:103"},"nodeType":"YulExpressionStatement","src":"14308:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14360:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14345:3:103"},"nodeType":"YulFunctionCall","src":"14345:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14365:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14338:6:103"},"nodeType":"YulFunctionCall","src":"14338:30:103"},"nodeType":"YulExpressionStatement","src":"14338:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14388:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14399:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14384:3:103"},"nodeType":"YulFunctionCall","src":"14384:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14404:34:103","type":"","value":"ERROR:BUC-013:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14377:6:103"},"nodeType":"YulFunctionCall","src":"14377:62:103"},"nodeType":"YulExpressionStatement","src":"14377:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14470:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14455:3:103"},"nodeType":"YulFunctionCall","src":"14455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14475:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14448:6:103"},"nodeType":"YulFunctionCall","src":"14448:33:103"},"nodeType":"YulExpressionStatement","src":"14448:33:103"},{"nodeType":"YulAssignment","src":"14490:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14502:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14513:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14498:3:103"},"nodeType":"YulFunctionCall","src":"14498:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14490:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_750d48e8d1549f6e00eaa45d8b819215fd3f4c5e8b847763cb675c2a72ed0664__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14275:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14289:4:103","type":""}],"src":"14124:399:103"},{"body":{"nodeType":"YulBlock","src":"14702:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14730:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14712:6:103"},"nodeType":"YulFunctionCall","src":"14712:21:103"},"nodeType":"YulExpressionStatement","src":"14712:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14764:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14749:3:103"},"nodeType":"YulFunctionCall","src":"14749:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14769:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14742:6:103"},"nodeType":"YulFunctionCall","src":"14742:30:103"},"nodeType":"YulExpressionStatement","src":"14742:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14803:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14788:3:103"},"nodeType":"YulFunctionCall","src":"14788:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14808:34:103","type":"","value":"PANIC:BUC-053:UNLOCK_CAPITAL_TOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14781:6:103"},"nodeType":"YulFunctionCall","src":"14781:62:103"},"nodeType":"YulExpressionStatement","src":"14781:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14863:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14874:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14859:3:103"},"nodeType":"YulFunctionCall","src":"14859:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14879:6:103","type":"","value":"_BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14852:6:103"},"nodeType":"YulFunctionCall","src":"14852:34:103"},"nodeType":"YulExpressionStatement","src":"14852:34:103"},{"nodeType":"YulAssignment","src":"14895:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14918:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14903:3:103"},"nodeType":"YulFunctionCall","src":"14903:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14895:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_77814e7a28acd311f6561f4571dfa56fd4af89762a0ef5863e6c33e0835c7391__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14679:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14693:4:103","type":""}],"src":"14528:400:103"},{"body":{"nodeType":"YulBlock","src":"15107:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15124:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15135:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15117:6:103"},"nodeType":"YulFunctionCall","src":"15117:21:103"},"nodeType":"YulExpressionStatement","src":"15117:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15158:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15169:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15154:3:103"},"nodeType":"YulFunctionCall","src":"15154:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15174:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15147:6:103"},"nodeType":"YulFunctionCall","src":"15147:30:103"},"nodeType":"YulExpressionStatement","src":"15147:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15197:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15208:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15193:3:103"},"nodeType":"YulFunctionCall","src":"15193:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15213:34:103","type":"","value":"ERROR:BUC-019:BUNDLE_NOT_IN_RISK"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15186:6:103"},"nodeType":"YulFunctionCall","src":"15186:62:103"},"nodeType":"YulExpressionStatement","src":"15186:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15268:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15279:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15264:3:103"},"nodeType":"YulFunctionCall","src":"15264:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15284:6:103","type":"","value":"POOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15257:6:103"},"nodeType":"YulFunctionCall","src":"15257:34:103"},"nodeType":"YulExpressionStatement","src":"15257:34:103"},{"nodeType":"YulAssignment","src":"15300:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15312:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15323:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15308:3:103"},"nodeType":"YulFunctionCall","src":"15308:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15300:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7856d8fb31306adef57d12943b55496b08db0cef49b61216ad67a8afc716e628__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15084:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15098:4:103","type":""}],"src":"14933:400:103"},{"body":{"nodeType":"YulBlock","src":"15512:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15529:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15540:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15522:6:103"},"nodeType":"YulFunctionCall","src":"15522:21:103"},"nodeType":"YulExpressionStatement","src":"15522:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15563:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15574:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15559:3:103"},"nodeType":"YulFunctionCall","src":"15559:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15579:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15552:6:103"},"nodeType":"YulFunctionCall","src":"15552:30:103"},"nodeType":"YulExpressionStatement","src":"15552:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15602:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15613:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15598:3:103"},"nodeType":"YulFunctionCall","src":"15598:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15618:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15591:6:103"},"nodeType":"YulFunctionCall","src":"15591:62:103"},"nodeType":"YulExpressionStatement","src":"15591:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15673:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15684:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15669:3:103"},"nodeType":"YulFunctionCall","src":"15669:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15689:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15662:6:103"},"nodeType":"YulFunctionCall","src":"15662:44:103"},"nodeType":"YulExpressionStatement","src":"15662:44:103"},{"nodeType":"YulAssignment","src":"15715:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15738:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15723:3:103"},"nodeType":"YulFunctionCall","src":"15723:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15715:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15489:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15503:4:103","type":""}],"src":"15338:410:103"},{"body":{"nodeType":"YulBlock","src":"15927:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15944:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15955:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15937:6:103"},"nodeType":"YulFunctionCall","src":"15937:21:103"},"nodeType":"YulExpressionStatement","src":"15937:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15989:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15974:3:103"},"nodeType":"YulFunctionCall","src":"15974:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15994:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15967:6:103"},"nodeType":"YulFunctionCall","src":"15967:30:103"},"nodeType":"YulExpressionStatement","src":"15967:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16017:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16028:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16013:3:103"},"nodeType":"YulFunctionCall","src":"16013:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16033:34:103","type":"","value":"ERROR:POL-040:POLICY_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16006:6:103"},"nodeType":"YulFunctionCall","src":"16006:62:103"},"nodeType":"YulExpressionStatement","src":"16006:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16099:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16084:3:103"},"nodeType":"YulFunctionCall","src":"16084:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16104:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16077:6:103"},"nodeType":"YulFunctionCall","src":"16077:32:103"},"nodeType":"YulExpressionStatement","src":"16077:32:103"},{"nodeType":"YulAssignment","src":"16118:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16130:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16141:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16126:3:103"},"nodeType":"YulFunctionCall","src":"16126:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16118:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7c08561cf5ac792dc91430b2a3972e02263132349f58eb870b4f81b5de7584fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15904:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15918:4:103","type":""}],"src":"15753:398:103"},{"body":{"nodeType":"YulBlock","src":"16330:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16347:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16358:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16340:6:103"},"nodeType":"YulFunctionCall","src":"16340:21:103"},"nodeType":"YulExpressionStatement","src":"16340:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16392:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16377:3:103"},"nodeType":"YulFunctionCall","src":"16377:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16397:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16370:6:103"},"nodeType":"YulFunctionCall","src":"16370:30:103"},"nodeType":"YulExpressionStatement","src":"16370:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16431:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16416:3:103"},"nodeType":"YulFunctionCall","src":"16416:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16436:34:103","type":"","value":"ERROR:BUC-052:NO_ACTIVE_POLICIES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16409:6:103"},"nodeType":"YulFunctionCall","src":"16409:62:103"},"nodeType":"YulExpressionStatement","src":"16409:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16491:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16502:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16487:3:103"},"nodeType":"YulFunctionCall","src":"16487:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16507:13:103","type":"","value":"_FOR_BUNDLE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16480:6:103"},"nodeType":"YulFunctionCall","src":"16480:41:103"},"nodeType":"YulExpressionStatement","src":"16480:41:103"},{"nodeType":"YulAssignment","src":"16530:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16553:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16538:3:103"},"nodeType":"YulFunctionCall","src":"16538:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16530:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8d874023565b14265edd0c1a472831bbc0639816bd2e3c506af5ca79b37f4994__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16307:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16321:4:103","type":""}],"src":"16156:407:103"},{"body":{"nodeType":"YulBlock","src":"16742:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16759:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16770:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16752:6:103"},"nodeType":"YulFunctionCall","src":"16752:21:103"},"nodeType":"YulExpressionStatement","src":"16752:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16793:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16804:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16789:3:103"},"nodeType":"YulFunctionCall","src":"16789:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16809:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16782:6:103"},"nodeType":"YulFunctionCall","src":"16782:30:103"},"nodeType":"YulExpressionStatement","src":"16782:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16832:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16843:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16828:3:103"},"nodeType":"YulFunctionCall","src":"16828:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16848:34:103","type":"","value":"ERROR:BOC-074:INITIAL_STATE_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16821:6:103"},"nodeType":"YulFunctionCall","src":"16821:62:103"},"nodeType":"YulExpressionStatement","src":"16821:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16914:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16899:3:103"},"nodeType":"YulFunctionCall","src":"16899:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16919:9:103","type":"","value":"HANDLED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16892:6:103"},"nodeType":"YulFunctionCall","src":"16892:37:103"},"nodeType":"YulExpressionStatement","src":"16892:37:103"},{"nodeType":"YulAssignment","src":"16938:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16950:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16961:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16946:3:103"},"nodeType":"YulFunctionCall","src":"16946:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16938:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_90b0055e92488337515434f01755801bd01b043fd63366b1e22203e0ea972548__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16719:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16733:4:103","type":""}],"src":"16568:403:103"},{"body":{"nodeType":"YulBlock","src":"17150:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17167:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17178:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17160:6:103"},"nodeType":"YulFunctionCall","src":"17160:21:103"},"nodeType":"YulExpressionStatement","src":"17160:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17201:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17212:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17197:3:103"},"nodeType":"YulFunctionCall","src":"17197:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17217:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17190:6:103"},"nodeType":"YulFunctionCall","src":"17190:30:103"},"nodeType":"YulExpressionStatement","src":"17190:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17240:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17251:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17236:3:103"},"nodeType":"YulFunctionCall","src":"17236:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17256:34:103","type":"","value":"ERROR:BUC-031:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17229:6:103"},"nodeType":"YulFunctionCall","src":"17229:62:103"},"nodeType":"YulExpressionStatement","src":"17229:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17311:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17322:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17307:3:103"},"nodeType":"YulFunctionCall","src":"17307:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17327:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17300:6:103"},"nodeType":"YulFunctionCall","src":"17300:33:103"},"nodeType":"YulExpressionStatement","src":"17300:33:103"},{"nodeType":"YulAssignment","src":"17342:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17354:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17365:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17350:3:103"},"nodeType":"YulFunctionCall","src":"17350:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17342:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9d1cfb4ee24f94379bee7fbfee2e22d90b6f0f63a5a71e7d9fe32723d1e19a2b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17127:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17141:4:103","type":""}],"src":"16976:399:103"},{"body":{"nodeType":"YulBlock","src":"17554:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17582:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17564:6:103"},"nodeType":"YulFunctionCall","src":"17564:21:103"},"nodeType":"YulExpressionStatement","src":"17564:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17616:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17601:3:103"},"nodeType":"YulFunctionCall","src":"17601:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17621:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17594:6:103"},"nodeType":"YulFunctionCall","src":"17594:30:103"},"nodeType":"YulExpressionStatement","src":"17594:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17655:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17640:3:103"},"nodeType":"YulFunctionCall","src":"17640:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17660:34:103","type":"","value":"ERROR:BUC-010:BUNDLE_ALREADY_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17633:6:103"},"nodeType":"YulFunctionCall","src":"17633:62:103"},"nodeType":"YulExpressionStatement","src":"17633:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17715:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17726:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17711:3:103"},"nodeType":"YulFunctionCall","src":"17711:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17731:5:103","type":"","value":"STS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17704:6:103"},"nodeType":"YulFunctionCall","src":"17704:33:103"},"nodeType":"YulExpressionStatement","src":"17704:33:103"},{"nodeType":"YulAssignment","src":"17746:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17758:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17769:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17754:3:103"},"nodeType":"YulFunctionCall","src":"17754:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17746:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a6af89170a905e726a8cbfa86235e1ceb54481c43b365eb980d838bfae76a56c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17531:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17545:4:103","type":""}],"src":"17380:399:103"},{"body":{"nodeType":"YulBlock","src":"17958:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17986:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17968:6:103"},"nodeType":"YulFunctionCall","src":"17968:21:103"},"nodeType":"YulExpressionStatement","src":"17968:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18020:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18005:3:103"},"nodeType":"YulFunctionCall","src":"18005:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18025:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17998:6:103"},"nodeType":"YulFunctionCall","src":"17998:30:103"},"nodeType":"YulExpressionStatement","src":"17998:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18048:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18059:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18044:3:103"},"nodeType":"YulFunctionCall","src":"18044:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18064:34:103","type":"","value":"ERROR:POL-030:POLICY_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18037:6:103"},"nodeType":"YulFunctionCall","src":"18037:62:103"},"nodeType":"YulExpressionStatement","src":"18037:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18119:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18130:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18115:3:103"},"nodeType":"YulFunctionCall","src":"18115:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18135:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18108:6:103"},"nodeType":"YulFunctionCall","src":"18108:32:103"},"nodeType":"YulExpressionStatement","src":"18108:32:103"},{"nodeType":"YulAssignment","src":"18149:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18172:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18157:3:103"},"nodeType":"YulFunctionCall","src":"18157:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18149:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac05a7c756dadc02ca183d94e2630362537ab1a69f8694bcb1ec098e9c430dea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17935:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17949:4:103","type":""}],"src":"17784:398:103"},{"body":{"nodeType":"YulBlock","src":"18361:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18378:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18389:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18371:6:103"},"nodeType":"YulFunctionCall","src":"18371:21:103"},"nodeType":"YulExpressionStatement","src":"18371:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18412:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18423:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18408:3:103"},"nodeType":"YulFunctionCall","src":"18408:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18428:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18401:6:103"},"nodeType":"YulFunctionCall","src":"18401:30:103"},"nodeType":"YulExpressionStatement","src":"18401:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18451:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18462:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18447:3:103"},"nodeType":"YulFunctionCall","src":"18447:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18467:34:103","type":"","value":"ERROR:BUC-073:BURNED_IS_FINAL_ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18440:6:103"},"nodeType":"YulFunctionCall","src":"18440:62:103"},"nodeType":"YulExpressionStatement","src":"18440:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18522:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18533:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18518:3:103"},"nodeType":"YulFunctionCall","src":"18518:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18538:5:103","type":"","value":"ATE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18511:6:103"},"nodeType":"YulFunctionCall","src":"18511:33:103"},"nodeType":"YulExpressionStatement","src":"18511:33:103"},{"nodeType":"YulAssignment","src":"18553:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18565:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18576:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18561:3:103"},"nodeType":"YulFunctionCall","src":"18561:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18553:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b2dda52bf0283d27e4ffc8f6319b7fb1aa100314af58bb09bcaaf538af49aecd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18338:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18352:4:103","type":""}],"src":"18187:399:103"},{"body":{"nodeType":"YulBlock","src":"18765:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18782:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18793:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18775:6:103"},"nodeType":"YulFunctionCall","src":"18775:21:103"},"nodeType":"YulExpressionStatement","src":"18775:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18816:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18827:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18812:3:103"},"nodeType":"YulFunctionCall","src":"18812:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18832:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18805:6:103"},"nodeType":"YulFunctionCall","src":"18805:30:103"},"nodeType":"YulExpressionStatement","src":"18805:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18855:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18866:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18851:3:103"},"nodeType":"YulFunctionCall","src":"18851:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18871:34:103","type":"","value":"ERROR:BUC-041:NO_ACTIVE_POLICIES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18844:6:103"},"nodeType":"YulFunctionCall","src":"18844:62:103"},"nodeType":"YulExpressionStatement","src":"18844:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18937:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18922:3:103"},"nodeType":"YulFunctionCall","src":"18922:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18942:13:103","type":"","value":"_FOR_BUNDLE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18915:6:103"},"nodeType":"YulFunctionCall","src":"18915:41:103"},"nodeType":"YulExpressionStatement","src":"18915:41:103"},{"nodeType":"YulAssignment","src":"18965:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18977:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18988:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18973:3:103"},"nodeType":"YulFunctionCall","src":"18973:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18965:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b68fc49ffba85900fde950c14ac8951edad3f3436a673f461dc8a21fb7f4b182__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18742:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18756:4:103","type":""}],"src":"18591:407:103"},{"body":{"nodeType":"YulBlock","src":"19177:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19194:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19205:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19187:6:103"},"nodeType":"YulFunctionCall","src":"19187:21:103"},"nodeType":"YulExpressionStatement","src":"19187:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19228:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19239:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19224:3:103"},"nodeType":"YulFunctionCall","src":"19224:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19244:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19217:6:103"},"nodeType":"YulFunctionCall","src":"19217:30:103"},"nodeType":"YulExpressionStatement","src":"19217:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19267:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19278:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19263:3:103"},"nodeType":"YulFunctionCall","src":"19263:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19283:34:103","type":"","value":"ERROR:BUC-011:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19256:6:103"},"nodeType":"YulFunctionCall","src":"19256:62:103"},"nodeType":"YulExpressionStatement","src":"19256:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19338:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19349:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19334:3:103"},"nodeType":"YulFunctionCall","src":"19334:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19354:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19327:6:103"},"nodeType":"YulFunctionCall","src":"19327:33:103"},"nodeType":"YulExpressionStatement","src":"19327:33:103"},{"nodeType":"YulAssignment","src":"19369:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19392:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19377:3:103"},"nodeType":"YulFunctionCall","src":"19377:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19369:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_cf35f3e2266f9a8bf680e348616bdf722a2b950e229c31f4953b03b62eef75ef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19154:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19168:4:103","type":""}],"src":"19003:399:103"},{"body":{"nodeType":"YulBlock","src":"19581:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19598:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19609:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19591:6:103"},"nodeType":"YulFunctionCall","src":"19591:21:103"},"nodeType":"YulExpressionStatement","src":"19591:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19632:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19643:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19628:3:103"},"nodeType":"YulFunctionCall","src":"19628:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19648:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19621:6:103"},"nodeType":"YulFunctionCall","src":"19621:30:103"},"nodeType":"YulExpressionStatement","src":"19621:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19682:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19667:3:103"},"nodeType":"YulFunctionCall","src":"19667:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19687:34:103","type":"","value":"ERROR:POL-050:POLICY_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19660:6:103"},"nodeType":"YulFunctionCall","src":"19660:62:103"},"nodeType":"YulExpressionStatement","src":"19660:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19742:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19753:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19738:3:103"},"nodeType":"YulFunctionCall","src":"19738:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19758:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19731:6:103"},"nodeType":"YulFunctionCall","src":"19731:32:103"},"nodeType":"YulExpressionStatement","src":"19731:32:103"},{"nodeType":"YulAssignment","src":"19772:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19784:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19795:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19780:3:103"},"nodeType":"YulFunctionCall","src":"19780:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19772:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d17247b62deb77899a03f5965413c2eceeaf10a19dd096fa96404e4c4e56e423__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19558:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19572:4:103","type":""}],"src":"19407:398:103"},{"body":{"nodeType":"YulBlock","src":"19984:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20001:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20012:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19994:6:103"},"nodeType":"YulFunctionCall","src":"19994:21:103"},"nodeType":"YulExpressionStatement","src":"19994:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20035:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20046:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20031:3:103"},"nodeType":"YulFunctionCall","src":"20031:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20051:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20024:6:103"},"nodeType":"YulFunctionCall","src":"20024:30:103"},"nodeType":"YulExpressionStatement","src":"20024:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20074:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20085:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20070:3:103"},"nodeType":"YulFunctionCall","src":"20070:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20090:34:103","type":"","value":"ERROR:BUC-071:LOCKED_INVALID_TRA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20063:6:103"},"nodeType":"YulFunctionCall","src":"20063:62:103"},"nodeType":"YulExpressionStatement","src":"20063:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20145:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20156:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20141:3:103"},"nodeType":"YulFunctionCall","src":"20141:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20161:9:103","type":"","value":"NSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20134:6:103"},"nodeType":"YulFunctionCall","src":"20134:37:103"},"nodeType":"YulExpressionStatement","src":"20134:37:103"},{"nodeType":"YulAssignment","src":"20180:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20203:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20188:3:103"},"nodeType":"YulFunctionCall","src":"20188:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20180:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d5c1965b929932d1ff278545ca669b4260ba119d29824ba96b9562d9415628fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19961:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19975:4:103","type":""}],"src":"19810:403:103"},{"body":{"nodeType":"YulBlock","src":"20392:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20409:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20420:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20402:6:103"},"nodeType":"YulFunctionCall","src":"20402:21:103"},"nodeType":"YulExpressionStatement","src":"20402:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20443:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20454:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20439:3:103"},"nodeType":"YulFunctionCall","src":"20439:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20459:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20432:6:103"},"nodeType":"YulFunctionCall","src":"20432:30:103"},"nodeType":"YulExpressionStatement","src":"20432:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20493:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20478:3:103"},"nodeType":"YulFunctionCall","src":"20478:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20498:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20471:6:103"},"nodeType":"YulFunctionCall","src":"20471:62:103"},"nodeType":"YulExpressionStatement","src":"20471:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20553:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20564:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20549:3:103"},"nodeType":"YulFunctionCall","src":"20549:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20569:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20542:6:103"},"nodeType":"YulFunctionCall","src":"20542:41:103"},"nodeType":"YulExpressionStatement","src":"20542:41:103"},{"nodeType":"YulAssignment","src":"20592:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20615:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20600:3:103"},"nodeType":"YulFunctionCall","src":"20600:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20592:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20369:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20383:4:103","type":""}],"src":"20218:407:103"},{"body":{"nodeType":"YulBlock","src":"20804:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20821:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20832:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20814:6:103"},"nodeType":"YulFunctionCall","src":"20814:21:103"},"nodeType":"YulExpressionStatement","src":"20814:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20855:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20866:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20851:3:103"},"nodeType":"YulFunctionCall","src":"20851:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20871:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20844:6:103"},"nodeType":"YulFunctionCall","src":"20844:30:103"},"nodeType":"YulExpressionStatement","src":"20844:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20894:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20905:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20890:3:103"},"nodeType":"YulFunctionCall","src":"20890:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20910:34:103","type":"","value":"ERROR:BUC-003:BUNDLE_BURNED_OR_C"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20883:6:103"},"nodeType":"YulFunctionCall","src":"20883:62:103"},"nodeType":"YulExpressionStatement","src":"20883:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20965:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20976:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20961:3:103"},"nodeType":"YulFunctionCall","src":"20961:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20981:7:103","type":"","value":"LOSED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20954:6:103"},"nodeType":"YulFunctionCall","src":"20954:35:103"},"nodeType":"YulExpressionStatement","src":"20954:35:103"},{"nodeType":"YulAssignment","src":"20998:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21010:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21021:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21006:3:103"},"nodeType":"YulFunctionCall","src":"21006:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20998:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dc49a30c0f34e650ca8a70d3c57306b681ae1a5988f74df68b029f46527aaa14__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20781:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20795:4:103","type":""}],"src":"20630:401:103"},{"body":{"nodeType":"YulBlock","src":"21210:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21227:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21238:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21220:6:103"},"nodeType":"YulFunctionCall","src":"21220:21:103"},"nodeType":"YulExpressionStatement","src":"21220:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21261:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21272:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21257:3:103"},"nodeType":"YulFunctionCall","src":"21257:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21277:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21250:6:103"},"nodeType":"YulFunctionCall","src":"21250:30:103"},"nodeType":"YulExpressionStatement","src":"21250:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21300:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21311:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21296:3:103"},"nodeType":"YulFunctionCall","src":"21296:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21316:34:103","type":"","value":"ERROR:BUC-015:BUNDLE_WITH_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21289:6:103"},"nodeType":"YulFunctionCall","src":"21289:62:103"},"nodeType":"YulExpressionStatement","src":"21289:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21371:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21382:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21367:3:103"},"nodeType":"YulFunctionCall","src":"21367:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21387:11:103","type":"","value":"_POLICIES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21360:6:103"},"nodeType":"YulFunctionCall","src":"21360:39:103"},"nodeType":"YulExpressionStatement","src":"21360:39:103"},{"nodeType":"YulAssignment","src":"21408:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21431:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21416:3:103"},"nodeType":"YulFunctionCall","src":"21416:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21408:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dfee2d08a237128ef26128bb3ed2c011ce3e51b3f04253c27af0b6459a36cf46__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21187:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21201:4:103","type":""}],"src":"21036:405:103"},{"body":{"nodeType":"YulBlock","src":"21620:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21648:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21630:6:103"},"nodeType":"YulFunctionCall","src":"21630:21:103"},"nodeType":"YulExpressionStatement","src":"21630:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21682:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21667:3:103"},"nodeType":"YulFunctionCall","src":"21667:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21687:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21660:6:103"},"nodeType":"YulFunctionCall","src":"21660:30:103"},"nodeType":"YulExpressionStatement","src":"21660:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21710:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21721:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21706:3:103"},"nodeType":"YulFunctionCall","src":"21706:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21726:33:103","type":"","value":"ERROR:BUC-016:BUNDLE_NOT_CLOSED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21699:6:103"},"nodeType":"YulFunctionCall","src":"21699:61:103"},"nodeType":"YulExpressionStatement","src":"21699:61:103"},{"nodeType":"YulAssignment","src":"21769:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21792:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21777:3:103"},"nodeType":"YulFunctionCall","src":"21777:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21769:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e68c04cdb41f689d8d2e6a5d0c4084a8393fecccce8f7b586a8a6e10213866a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21597:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21611:4:103","type":""}],"src":"21446:355:103"},{"body":{"nodeType":"YulBlock","src":"21980:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21997:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22008:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21990:6:103"},"nodeType":"YulFunctionCall","src":"21990:21:103"},"nodeType":"YulExpressionStatement","src":"21990:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22031:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22042:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22027:3:103"},"nodeType":"YulFunctionCall","src":"22027:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22047:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22020:6:103"},"nodeType":"YulFunctionCall","src":"22020:30:103"},"nodeType":"YulExpressionStatement","src":"22020:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22070:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22081:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22066:3:103"},"nodeType":"YulFunctionCall","src":"22066:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22086:33:103","type":"","value":"ERROR:BUC-021:BUNDLE_NOT_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22059:6:103"},"nodeType":"YulFunctionCall","src":"22059:61:103"},"nodeType":"YulExpressionStatement","src":"22059:61:103"},{"nodeType":"YulAssignment","src":"22129:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22152:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22137:3:103"},"nodeType":"YulFunctionCall","src":"22137:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22129:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ea3e85c9558b3cb99a10a739823ff71f730cd0abf0b8a1db4cbcca809539be50__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21957:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21971:4:103","type":""}],"src":"21806:355:103"},{"body":{"nodeType":"YulBlock","src":"22340:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22357:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22368:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22350:6:103"},"nodeType":"YulFunctionCall","src":"22350:21:103"},"nodeType":"YulExpressionStatement","src":"22350:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22391:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22402:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22387:3:103"},"nodeType":"YulFunctionCall","src":"22387:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22407:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22380:6:103"},"nodeType":"YulFunctionCall","src":"22380:30:103"},"nodeType":"YulExpressionStatement","src":"22380:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22430:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22441:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22426:3:103"},"nodeType":"YulFunctionCall","src":"22426:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22446:34:103","type":"","value":"ERROR:BUC-072:CLOSED_INVALID_TRA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22419:6:103"},"nodeType":"YulFunctionCall","src":"22419:62:103"},"nodeType":"YulExpressionStatement","src":"22419:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22501:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22512:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22497:3:103"},"nodeType":"YulFunctionCall","src":"22497:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22517:9:103","type":"","value":"NSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22490:6:103"},"nodeType":"YulFunctionCall","src":"22490:37:103"},"nodeType":"YulExpressionStatement","src":"22490:37:103"},{"nodeType":"YulAssignment","src":"22536:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22548:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22559:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22544:3:103"},"nodeType":"YulFunctionCall","src":"22544:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22536:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f6f938bbd1284ec77e45bef46484f59fa0bcba98ae32543cf1059a51f233eec0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22317:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22331:4:103","type":""}],"src":"22166:403:103"},{"body":{"nodeType":"YulBlock","src":"22723:931:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22740:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22751:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22733:6:103"},"nodeType":"YulFunctionCall","src":"22733:21:103"},"nodeType":"YulExpressionStatement","src":"22733:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22774:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22785:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22770:3:103"},"nodeType":"YulFunctionCall","src":"22770:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22796:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22790:5:103"},"nodeType":"YulFunctionCall","src":"22790:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22763:6:103"},"nodeType":"YulFunctionCall","src":"22763:41:103"},"nodeType":"YulExpressionStatement","src":"22763:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22824:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22835:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22820:3:103"},"nodeType":"YulFunctionCall","src":"22820:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22850:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22858:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22846:3:103"},"nodeType":"YulFunctionCall","src":"22846:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22840:5:103"},"nodeType":"YulFunctionCall","src":"22840:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22813:6:103"},"nodeType":"YulFunctionCall","src":"22813:50:103"},"nodeType":"YulExpressionStatement","src":"22813:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22883:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22894:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22879:3:103"},"nodeType":"YulFunctionCall","src":"22879:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22909:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22917:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22905:3:103"},"nodeType":"YulFunctionCall","src":"22905:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22899:5:103"},"nodeType":"YulFunctionCall","src":"22899:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22872:6:103"},"nodeType":"YulFunctionCall","src":"22872:50:103"},"nodeType":"YulExpressionStatement","src":"22872:50:103"},{"nodeType":"YulVariableDeclaration","src":"22931:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22961:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22969:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22957:3:103"},"nodeType":"YulFunctionCall","src":"22957:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22951:5:103"},"nodeType":"YulFunctionCall","src":"22951:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"22935:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"23010:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23028:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23039:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23024:3:103"},"nodeType":"YulFunctionCall","src":"23024:19:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"22982:27:103"},"nodeType":"YulFunctionCall","src":"22982:62:103"},"nodeType":"YulExpressionStatement","src":"22982:62:103"},{"nodeType":"YulVariableDeclaration","src":"23053:45:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23085:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23093:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23081:3:103"},"nodeType":"YulFunctionCall","src":"23081:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23075:5:103"},"nodeType":"YulFunctionCall","src":"23075:23:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"23057:14:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23107:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"23117:6:103","type":"","value":"0x0140"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"23111:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23143:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23154:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23139:3:103"},"nodeType":"YulFunctionCall","src":"23139:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"23160:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23132:6:103"},"nodeType":"YulFunctionCall","src":"23132:31:103"},"nodeType":"YulExpressionStatement","src":"23132:31:103"},{"nodeType":"YulVariableDeclaration","src":"23172:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"23203:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23223:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23234:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23219:3:103"},"nodeType":"YulFunctionCall","src":"23219:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23186:16:103"},"nodeType":"YulFunctionCall","src":"23186:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"23176:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23259:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23270:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23255:3:103"},"nodeType":"YulFunctionCall","src":"23255:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23286:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23294:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23282:3:103"},"nodeType":"YulFunctionCall","src":"23282:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23276:5:103"},"nodeType":"YulFunctionCall","src":"23276:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23248:6:103"},"nodeType":"YulFunctionCall","src":"23248:52:103"},"nodeType":"YulExpressionStatement","src":"23248:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23320:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23331:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23316:3:103"},"nodeType":"YulFunctionCall","src":"23316:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23347:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23355:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23343:3:103"},"nodeType":"YulFunctionCall","src":"23343:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23337:5:103"},"nodeType":"YulFunctionCall","src":"23337:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23309:6:103"},"nodeType":"YulFunctionCall","src":"23309:52:103"},"nodeType":"YulExpressionStatement","src":"23309:52:103"},{"nodeType":"YulVariableDeclaration","src":"23370:33:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23390:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23398:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23386:3:103"},"nodeType":"YulFunctionCall","src":"23386:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23380:5:103"},"nodeType":"YulFunctionCall","src":"23380:23:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"23374:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23412:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"23422:3:103","type":"","value":"256"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"23416:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23445:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"23456:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23441:3:103"},"nodeType":"YulFunctionCall","src":"23441:18:103"},{"name":"_2","nodeType":"YulIdentifier","src":"23461:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23434:6:103"},"nodeType":"YulFunctionCall","src":"23434:30:103"},"nodeType":"YulExpressionStatement","src":"23434:30:103"},{"nodeType":"YulVariableDeclaration","src":"23473:32:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23493:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"23501:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23489:3:103"},"nodeType":"YulFunctionCall","src":"23489:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23483:5:103"},"nodeType":"YulFunctionCall","src":"23483:22:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"23477:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23514:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"23524:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"23518:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23547:9:103"},{"name":"_5","nodeType":"YulIdentifier","src":"23558:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23543:3:103"},"nodeType":"YulFunctionCall","src":"23543:18:103"},{"name":"_4","nodeType":"YulIdentifier","src":"23563:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23536:6:103"},"nodeType":"YulFunctionCall","src":"23536:30:103"},"nodeType":"YulExpressionStatement","src":"23536:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23586:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"23597:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23582:3:103"},"nodeType":"YulFunctionCall","src":"23582:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23612:6:103"},{"name":"_5","nodeType":"YulIdentifier","src":"23620:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23608:3:103"},"nodeType":"YulFunctionCall","src":"23608:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23602:5:103"},"nodeType":"YulFunctionCall","src":"23602:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23575:6:103"},"nodeType":"YulFunctionCall","src":"23575:50:103"},"nodeType":"YulExpressionStatement","src":"23575:50:103"},{"nodeType":"YulAssignment","src":"23634:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"23642:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23634:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22692:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22703:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22714:4:103","type":""}],"src":"22574:1080:103"},{"body":{"nodeType":"YulBlock","src":"23760:76:103","statements":[{"nodeType":"YulAssignment","src":"23770:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23782:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23793:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23778:3:103"},"nodeType":"YulFunctionCall","src":"23778:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23770:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23812:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"23823:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23805:6:103"},"nodeType":"YulFunctionCall","src":"23805:25:103"},"nodeType":"YulExpressionStatement","src":"23805:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23729:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23740:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23751:4:103","type":""}],"src":"23659:177:103"},{"body":{"nodeType":"YulBlock","src":"23970:145:103","statements":[{"nodeType":"YulAssignment","src":"23980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24003:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23988:3:103"},"nodeType":"YulFunctionCall","src":"23988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"24033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24015:6:103"},"nodeType":"YulFunctionCall","src":"24015:25:103"},"nodeType":"YulExpressionStatement","src":"24015:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24060:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24071:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24056:3:103"},"nodeType":"YulFunctionCall","src":"24056:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24080:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24096:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"24101:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24092:3:103"},"nodeType":"YulFunctionCall","src":"24092:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"24105:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24088:3:103"},"nodeType":"YulFunctionCall","src":"24088:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24076:3:103"},"nodeType":"YulFunctionCall","src":"24076:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24049:6:103"},"nodeType":"YulFunctionCall","src":"24049:60:103"},"nodeType":"YulExpressionStatement","src":"24049:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23931:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23942:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23961:4:103","type":""}],"src":"23841:274:103"},{"body":{"nodeType":"YulBlock","src":"24305:232:103","statements":[{"nodeType":"YulAssignment","src":"24315:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24327:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24338:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24323:3:103"},"nodeType":"YulFunctionCall","src":"24323:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24315:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24358:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"24369:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24351:6:103"},"nodeType":"YulFunctionCall","src":"24351:25:103"},"nodeType":"YulExpressionStatement","src":"24351:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24407:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24392:3:103"},"nodeType":"YulFunctionCall","src":"24392:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24416:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24432:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"24437:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24428:3:103"},"nodeType":"YulFunctionCall","src":"24428:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"24441:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24424:3:103"},"nodeType":"YulFunctionCall","src":"24424:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24412:3:103"},"nodeType":"YulFunctionCall","src":"24412:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24385:6:103"},"nodeType":"YulFunctionCall","src":"24385:60:103"},"nodeType":"YulExpressionStatement","src":"24385:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24476:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24461:3:103"},"nodeType":"YulFunctionCall","src":"24461:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"24481:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24454:6:103"},"nodeType":"YulFunctionCall","src":"24454:34:103"},"nodeType":"YulExpressionStatement","src":"24454:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24508:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24519:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24504:3:103"},"nodeType":"YulFunctionCall","src":"24504:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"24524:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24497:6:103"},"nodeType":"YulFunctionCall","src":"24497:34:103"},"nodeType":"YulExpressionStatement","src":"24497:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24250:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"24261:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"24269:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24277:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24285:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24296:4:103","type":""}],"src":"24120:417:103"},{"body":{"nodeType":"YulBlock","src":"24699:162:103","statements":[{"nodeType":"YulAssignment","src":"24709:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24721:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24732:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24717:3:103"},"nodeType":"YulFunctionCall","src":"24717:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24709:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24751:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"24762:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24744:6:103"},"nodeType":"YulFunctionCall","src":"24744:25:103"},"nodeType":"YulExpressionStatement","src":"24744:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24789:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24800:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24785:3:103"},"nodeType":"YulFunctionCall","src":"24785:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"24805:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24778:6:103"},"nodeType":"YulFunctionCall","src":"24778:34:103"},"nodeType":"YulExpressionStatement","src":"24778:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24832:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24843:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24828:3:103"},"nodeType":"YulFunctionCall","src":"24828:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"24848:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24821:6:103"},"nodeType":"YulFunctionCall","src":"24821:34:103"},"nodeType":"YulExpressionStatement","src":"24821:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24652:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"24663:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24671:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24679:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24690:4:103","type":""}],"src":"24542:319:103"},{"body":{"nodeType":"YulBlock","src":"25051:206:103","statements":[{"nodeType":"YulAssignment","src":"25061:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25073:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25084:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25069:3:103"},"nodeType":"YulFunctionCall","src":"25069:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25061:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25104:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"25115:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25097:6:103"},"nodeType":"YulFunctionCall","src":"25097:25:103"},"nodeType":"YulExpressionStatement","src":"25097:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25142:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25153:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25138:3:103"},"nodeType":"YulFunctionCall","src":"25138:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"25158:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25131:6:103"},"nodeType":"YulFunctionCall","src":"25131:34:103"},"nodeType":"YulExpressionStatement","src":"25131:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25185:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25196:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25181:3:103"},"nodeType":"YulFunctionCall","src":"25181:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"25201:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25174:6:103"},"nodeType":"YulFunctionCall","src":"25174:34:103"},"nodeType":"YulExpressionStatement","src":"25174:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25228:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25239:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25224:3:103"},"nodeType":"YulFunctionCall","src":"25224:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"25244:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25217:6:103"},"nodeType":"YulFunctionCall","src":"25217:34:103"},"nodeType":"YulExpressionStatement","src":"25217:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256_t_uint256__to_t_uint256_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24996:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25007:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25015:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25023:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25031:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25042:4:103","type":""}],"src":"24866:391:103"},{"body":{"nodeType":"YulBlock","src":"25447:204:103","statements":[{"nodeType":"YulAssignment","src":"25457:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25469:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25480:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25465:3:103"},"nodeType":"YulFunctionCall","src":"25465:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25457:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25499:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"25510:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25492:6:103"},"nodeType":"YulFunctionCall","src":"25492:25:103"},"nodeType":"YulExpressionStatement","src":"25492:25:103"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25554:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25566:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25577:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25562:3:103"},"nodeType":"YulFunctionCall","src":"25562:18:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"25526:27:103"},"nodeType":"YulFunctionCall","src":"25526:55:103"},"nodeType":"YulExpressionStatement","src":"25526:55:103"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"25618:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25630:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25641:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25626:3:103"},"nodeType":"YulFunctionCall","src":"25626:18:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"25590:27:103"},"nodeType":"YulFunctionCall","src":"25590:55:103"},"nodeType":"YulExpressionStatement","src":"25590:55:103"}]},"name":"abi_encode_tuple_t_uint256_t_enum$_BundleState_$4914_t_enum$_BundleState_$4914__to_t_uint256_t_uint8_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25400:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25411:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25419:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25427:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25438:4:103","type":""}],"src":"25262:389:103"},{"body":{"nodeType":"YulBlock","src":"25883:297:103","statements":[{"nodeType":"YulAssignment","src":"25893:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25905:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25916:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25901:3:103"},"nodeType":"YulFunctionCall","src":"25901:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25893:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25936:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"25947:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25929:6:103"},"nodeType":"YulFunctionCall","src":"25929:25:103"},"nodeType":"YulExpressionStatement","src":"25929:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25974:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25985:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25970:3:103"},"nodeType":"YulFunctionCall","src":"25970:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"25990:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25963:6:103"},"nodeType":"YulFunctionCall","src":"25963:34:103"},"nodeType":"YulExpressionStatement","src":"25963:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26017:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26028:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26013:3:103"},"nodeType":"YulFunctionCall","src":"26013:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"26037:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26053:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"26058:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26049:3:103"},"nodeType":"YulFunctionCall","src":"26049:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"26062:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26045:3:103"},"nodeType":"YulFunctionCall","src":"26045:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26033:3:103"},"nodeType":"YulFunctionCall","src":"26033:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26006:6:103"},"nodeType":"YulFunctionCall","src":"26006:60:103"},"nodeType":"YulExpressionStatement","src":"26006:60:103"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"26103:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26115:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26126:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26111:3:103"},"nodeType":"YulFunctionCall","src":"26111:18:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"26075:27:103"},"nodeType":"YulFunctionCall","src":"26075:55:103"},"nodeType":"YulExpressionStatement","src":"26075:55:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26150:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26161:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26146:3:103"},"nodeType":"YulFunctionCall","src":"26146:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"26167:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26139:6:103"},"nodeType":"YulFunctionCall","src":"26139:35:103"},"nodeType":"YulExpressionStatement","src":"26139:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address_t_enum$_BundleState_$4914_t_uint256__to_t_uint256_t_uint256_t_address_t_uint8_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25820:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"25831:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25839:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25847:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25855:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25863:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25874:4:103","type":""}],"src":"25656:524:103"},{"body":{"nodeType":"YulBlock","src":"26230:230:103","statements":[{"nodeType":"YulAssignment","src":"26240:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26256:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"26250:5:103"},"nodeType":"YulFunctionCall","src":"26250:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"26240:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"26268:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"26290:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"26306:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"26312:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26302:3:103"},"nodeType":"YulFunctionCall","src":"26302:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26321:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"26317:3:103"},"nodeType":"YulFunctionCall","src":"26317:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26298:3:103"},"nodeType":"YulFunctionCall","src":"26298:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26286:3:103"},"nodeType":"YulFunctionCall","src":"26286:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"26272:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"26401:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"26403:16:103"},"nodeType":"YulFunctionCall","src":"26403:18:103"},"nodeType":"YulExpressionStatement","src":"26403:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"26344:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"26356:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26341:2:103"},"nodeType":"YulFunctionCall","src":"26341:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"26380:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"26392:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26377:2:103"},"nodeType":"YulFunctionCall","src":"26377:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"26338:2:103"},"nodeType":"YulFunctionCall","src":"26338:62:103"},"nodeType":"YulIf","src":"26335:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26439:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"26443:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26432:6:103"},"nodeType":"YulFunctionCall","src":"26432:22:103"},"nodeType":"YulExpressionStatement","src":"26432:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"26210:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"26219:6:103","type":""}],"src":"26185:275:103"},{"body":{"nodeType":"YulBlock","src":"26513:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"26540:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"26542:16:103"},"nodeType":"YulFunctionCall","src":"26542:18:103"},"nodeType":"YulExpressionStatement","src":"26542:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26529:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"26536:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"26532:3:103"},"nodeType":"YulFunctionCall","src":"26532:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26526:2:103"},"nodeType":"YulFunctionCall","src":"26526:13:103"},"nodeType":"YulIf","src":"26523:2:103"},{"nodeType":"YulAssignment","src":"26571:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26582:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"26585:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26578:3:103"},"nodeType":"YulFunctionCall","src":"26578:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"26571:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"26496:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"26499:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"26505:3:103","type":""}],"src":"26465:128:103"},{"body":{"nodeType":"YulBlock","src":"26647:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"26669:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"26671:16:103"},"nodeType":"YulFunctionCall","src":"26671:18:103"},"nodeType":"YulExpressionStatement","src":"26671:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26663:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"26666:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26660:2:103"},"nodeType":"YulFunctionCall","src":"26660:8:103"},"nodeType":"YulIf","src":"26657:2:103"},{"nodeType":"YulAssignment","src":"26700:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26712:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"26715:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26708:3:103"},"nodeType":"YulFunctionCall","src":"26708:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"26700:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"26629:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"26632:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"26638:4:103","type":""}],"src":"26598:125:103"},{"body":{"nodeType":"YulBlock","src":"26781:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"26791:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"26800:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"26795:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"26860:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"26885:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"26890:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26881:3:103"},"nodeType":"YulFunctionCall","src":"26881:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"26904:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"26909:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26900:3:103"},"nodeType":"YulFunctionCall","src":"26900:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"26894:5:103"},"nodeType":"YulFunctionCall","src":"26894:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26874:6:103"},"nodeType":"YulFunctionCall","src":"26874:39:103"},"nodeType":"YulExpressionStatement","src":"26874:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26821:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"26824:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26818:2:103"},"nodeType":"YulFunctionCall","src":"26818:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"26832:19:103","statements":[{"nodeType":"YulAssignment","src":"26834:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26843:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"26846:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26839:3:103"},"nodeType":"YulFunctionCall","src":"26839:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"26834:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"26814:3:103","statements":[]},"src":"26810:113:103"},{"body":{"nodeType":"YulBlock","src":"26949:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"26962:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"26967:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26958:3:103"},"nodeType":"YulFunctionCall","src":"26958:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"26976:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26951:6:103"},"nodeType":"YulFunctionCall","src":"26951:27:103"},"nodeType":"YulExpressionStatement","src":"26951:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26938:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"26941:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26935:2:103"},"nodeType":"YulFunctionCall","src":"26935:13:103"},"nodeType":"YulIf","src":"26932:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"26759:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"26764:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"26769:6:103","type":""}],"src":"26728:258:103"},{"body":{"nodeType":"YulBlock","src":"27046:325:103","statements":[{"nodeType":"YulAssignment","src":"27056:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"27070:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"27076:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"27066:3:103"},"nodeType":"YulFunctionCall","src":"27066:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"27056:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"27087:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"27117:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"27123:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27113:3:103"},"nodeType":"YulFunctionCall","src":"27113:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"27091:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"27164:31:103","statements":[{"nodeType":"YulAssignment","src":"27166:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"27180:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"27188:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27176:3:103"},"nodeType":"YulFunctionCall","src":"27176:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"27166:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"27144:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27137:6:103"},"nodeType":"YulFunctionCall","src":"27137:26:103"},"nodeType":"YulIf","src":"27134:2:103"},{"body":{"nodeType":"YulBlock","src":"27254:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27275:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27282:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"27287:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27278:3:103"},"nodeType":"YulFunctionCall","src":"27278:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27268:6:103"},"nodeType":"YulFunctionCall","src":"27268:31:103"},"nodeType":"YulExpressionStatement","src":"27268:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27319:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"27322:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27312:6:103"},"nodeType":"YulFunctionCall","src":"27312:15:103"},"nodeType":"YulExpressionStatement","src":"27312:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27347:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27350:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27340:6:103"},"nodeType":"YulFunctionCall","src":"27340:15:103"},"nodeType":"YulExpressionStatement","src":"27340:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"27210:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"27233:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"27241:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27230:2:103"},"nodeType":"YulFunctionCall","src":"27230:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27207:2:103"},"nodeType":"YulFunctionCall","src":"27207:38:103"},"nodeType":"YulIf","src":"27204:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"27026:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"27035:6:103","type":""}],"src":"26991:380:103"},{"body":{"nodeType":"YulBlock","src":"27423:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"27454:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"27456:16:103"},"nodeType":"YulFunctionCall","src":"27456:18:103"},"nodeType":"YulExpressionStatement","src":"27456:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27439:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27450:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"27446:3:103"},"nodeType":"YulFunctionCall","src":"27446:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27436:2:103"},"nodeType":"YulFunctionCall","src":"27436:17:103"},"nodeType":"YulIf","src":"27433:2:103"},{"nodeType":"YulAssignment","src":"27485:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27496:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"27503:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27492:3:103"},"nodeType":"YulFunctionCall","src":"27492:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"27485:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27405:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"27415:3:103","type":""}],"src":"27376:135:103"},{"body":{"nodeType":"YulBlock","src":"27548:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27565:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27572:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"27577:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27568:3:103"},"nodeType":"YulFunctionCall","src":"27568:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27558:6:103"},"nodeType":"YulFunctionCall","src":"27558:31:103"},"nodeType":"YulExpressionStatement","src":"27558:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27605:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"27608:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27598:6:103"},"nodeType":"YulFunctionCall","src":"27598:15:103"},"nodeType":"YulExpressionStatement","src":"27598:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27629:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27632:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27622:6:103"},"nodeType":"YulFunctionCall","src":"27622:15:103"},"nodeType":"YulExpressionStatement","src":"27622:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"27516:127:103"},{"body":{"nodeType":"YulBlock","src":"27680:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27697:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27704:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"27709:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27700:3:103"},"nodeType":"YulFunctionCall","src":"27700:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27690:6:103"},"nodeType":"YulFunctionCall","src":"27690:31:103"},"nodeType":"YulExpressionStatement","src":"27690:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27737:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"27740:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27730:6:103"},"nodeType":"YulFunctionCall","src":"27730:15:103"},"nodeType":"YulExpressionStatement","src":"27730:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27761:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27764:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27754:6:103"},"nodeType":"YulFunctionCall","src":"27754:15:103"},"nodeType":"YulExpressionStatement","src":"27754:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"27648:127:103"},{"body":{"nodeType":"YulBlock","src":"27825:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"27889:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27898:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27901:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27891:6:103"},"nodeType":"YulFunctionCall","src":"27891:12:103"},"nodeType":"YulExpressionStatement","src":"27891:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27848:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27859:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27874:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"27879:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27870:3:103"},"nodeType":"YulFunctionCall","src":"27870:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"27883:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27866:3:103"},"nodeType":"YulFunctionCall","src":"27866:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27855:3:103"},"nodeType":"YulFunctionCall","src":"27855:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27845:2:103"},"nodeType":"YulFunctionCall","src":"27845:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27838:6:103"},"nodeType":"YulFunctionCall","src":"27838:50:103"},"nodeType":"YulIf","src":"27835:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27814:5:103","type":""}],"src":"27780:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value4, value4) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value4, value4) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value4, value4) }\n value2 := add(_2, 32)\n value3 := length\n value4 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_BundleState(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_BundleToken_$28751__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_BundleState_$4914__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_BundleState(value0, headStart)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_03e06f22613c7e93a2c0293d2431263b515ac3c8de79433e162399c9d978c6da__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:BUC-045:CAPITAL_TOO_LOW\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0f7e878f103e4e81471a67c70bb5acfc513b47b809c34428480adee650fd472b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 59)\n mstore(add(headStart, 64), \"ERROR:BUC-023:INCREMENTAL_COLLAT\")\n mstore(add(headStart, 96), \"ERALIZATION_NOT_IMPLEMENTED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_18e88bfd32eca027f106fb862d7e55871ea316361090327a612bfb4dfe3f0755__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-060:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1dddbb0de5d7844609928e43cf681e6d3461371d25dd2fe6e10bde5404e8a51c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:BUC-044:BUNDLE_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1f0e986b57b056403cfa995705a568caff60bf8952514def6e4e10f0b8be0363__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:BUC-022:CAPACITY_TOO_LOW\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_21c208e0ee80cc3a94bf9c14b14ba802f5415c77d896f3678d2b2e4e18a9fdeb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:BUC-014:CAPACITY_OR_BALANC\")\n mstore(add(headStart, 96), \"E_TOO_LOW\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_23c15b355ac659e6efa849a6211bec479f57808999aa963c7b0feaa5cc832745__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-020:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2e1494ff589237f5b43eee9b5f76fa574bdf53755720949c3bbf80d7f7047647__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:BUC-047:BALANCE_TOO_LOW\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_34c2d809984edcd3108df93e41438c107c75d7c168211713e77a185c157022f0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"ERROR:BUC-042:COLLATERAL_INSUFFI\")\n mstore(add(headStart, 96), \"CIENT_FOR_POLICY\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4194f84ab3a903bd197fb67924a3a7daa9e6613ff1e3b7fc1fb4fffc1258eed5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-002:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_476d68cd1c40602068b3ee7843f94973d1216d46b2eed8d0cd41db8cb728d4b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:BUC-046:LOCKED_CAPITAL_TOO\")\n mstore(add(headStart, 96), \"_LOW\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_476d7bdb29f083f2ebfc1b7face76d9f76a751b84204921dae4a5245b351756d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:BUC-001:NOT_RISKPOOL_SERVI\")\n mstore(add(headStart, 96), \"CE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4c8d28aba0b55c77dc14995621b19dd76d0dd4fc213e18d9e4f16eec0d3302e7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-051:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4e3999515467d51db7d3efc320b4632f965fd637f4434d0cd56865c0258932e1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:BUC-017:BUNDLE_HAS_BALANCE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_51098105866c55020f052d2f0c7132465beb1923abe3fed4a93163d00ae443f5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:BUC-012:BUNDLE_CLOSED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_57e2fa2e1f46bf1826c5847f0b8b0e2dfce8ed4b21dd5b3ef33697380369b0d0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:BUC-070:ACTIVE_INVALID_TRA\")\n mstore(add(headStart, 96), \"NSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_677000cd6030ee367c696ca46253760a7b00f48b537add2d4517030ec068929f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-043:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_750d48e8d1549f6e00eaa45d8b819215fd3f4c5e8b847763cb675c2a72ed0664__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-013:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_77814e7a28acd311f6561f4571dfa56fd4af89762a0ef5863e6c33e0835c7391__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"PANIC:BUC-053:UNLOCK_CAPITAL_TOO\")\n mstore(add(headStart, 96), \"_BIG\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7856d8fb31306adef57d12943b55496b08db0cef49b61216ad67a8afc716e628__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:BUC-019:BUNDLE_NOT_IN_RISK\")\n mstore(add(headStart, 96), \"POOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7c08561cf5ac792dc91430b2a3972e02263132349f58eb870b4f81b5de7584fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-040:POLICY_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8d874023565b14265edd0c1a472831bbc0639816bd2e3c506af5ca79b37f4994__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:BUC-052:NO_ACTIVE_POLICIES\")\n mstore(add(headStart, 96), \"_FOR_BUNDLE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_90b0055e92488337515434f01755801bd01b043fd63366b1e22203e0ea972548__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:BOC-074:INITIAL_STATE_NOT_\")\n mstore(add(headStart, 96), \"HANDLED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9d1cfb4ee24f94379bee7fbfee2e22d90b6f0f63a5a71e7d9fe32723d1e19a2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-031:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a6af89170a905e726a8cbfa86235e1ceb54481c43b365eb980d838bfae76a56c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-010:BUNDLE_ALREADY_EXI\")\n mstore(add(headStart, 96), \"STS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ac05a7c756dadc02ca183d94e2630362537ab1a69f8694bcb1ec098e9c430dea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-030:POLICY_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b2dda52bf0283d27e4ffc8f6319b7fb1aa100314af58bb09bcaaf538af49aecd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-073:BURNED_IS_FINAL_ST\")\n mstore(add(headStart, 96), \"ATE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b68fc49ffba85900fde950c14ac8951edad3f3436a673f461dc8a21fb7f4b182__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:BUC-041:NO_ACTIVE_POLICIES\")\n mstore(add(headStart, 96), \"_FOR_BUNDLE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_cf35f3e2266f9a8bf680e348616bdf722a2b950e229c31f4953b03b62eef75ef__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-011:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d17247b62deb77899a03f5965413c2eceeaf10a19dd096fa96404e4c4e56e423__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-050:POLICY_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d5c1965b929932d1ff278545ca669b4260ba119d29824ba96b9562d9415628fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:BUC-071:LOCKED_INVALID_TRA\")\n mstore(add(headStart, 96), \"NSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_dc49a30c0f34e650ca8a70d3c57306b681ae1a5988f74df68b029f46527aaa14__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:BUC-003:BUNDLE_BURNED_OR_C\")\n mstore(add(headStart, 96), \"LOSED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_dfee2d08a237128ef26128bb3ed2c011ce3e51b3f04253c27af0b6459a36cf46__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:BUC-015:BUNDLE_WITH_ACTIVE\")\n mstore(add(headStart, 96), \"_POLICIES\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e68c04cdb41f689d8d2e6a5d0c4084a8393fecccce8f7b586a8a6e10213866a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:BUC-016:BUNDLE_NOT_CLOSED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ea3e85c9558b3cb99a10a739823ff71f730cd0abf0b8a1db4cbcca809539be50__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:BUC-021:BUNDLE_NOT_ACTIVE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f6f938bbd1284ec77e45bef46484f59fa0bcba98ae32543cf1059a51f233eec0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:BUC-072:CLOSED_INVALID_TRA\")\n mstore(add(headStart, 96), \"NSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n abi_encode_enum_BundleState(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 128))\n let _1 := 0x0140\n mstore(add(headStart, 160), _1)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 352))\n mstore(add(headStart, 192), mload(add(value0, 160)))\n mstore(add(headStart, 224), mload(add(value0, 192)))\n let _2 := mload(add(value0, 224))\n let _3 := 256\n mstore(add(headStart, _3), _2)\n let _4 := mload(add(value0, _3))\n let _5 := 288\n mstore(add(headStart, _5), _4)\n mstore(add(headStart, _1), mload(add(value0, _5)))\n tail := tail_1\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256_t_uint256__to_t_uint256_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint256_t_enum$_BundleState_$4914_t_enum$_BundleState_$4914__to_t_uint256_t_uint8_t_uint8__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n abi_encode_enum_BundleState(value1, add(headStart, 32))\n abi_encode_enum_BundleState(value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_address_t_enum$_BundleState_$4914_t_uint256__to_t_uint256_t_uint256_t_address_t_uint8_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n abi_encode_enum_BundleState(value3, add(headStart, 96))\n mstore(add(headStart, 128), value4)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101425760003560e01c8063a65e2cfd116100b8578063c0e714041161007c578063c0e71404146102b6578063c397ae39146102c9578063c41a360a146102dc578063c4d66de8146102ef578063c559783e14610302578063dd4670641461032257610142565b8063a65e2cfd14610257578063b299cc261461026a578063b72674201461027d578063bb540df614610290578063bcd5349f146102a357610142565b80632d0821b71161010a5780632d0821b7146101cb5780633f5d9235146101eb57806342966c68146101fe57806344c9af28146102115780634d03f9b7146102315780636198e3391461024457610142565b80630aebeb4e1461014757806318442e631461015c5780631e0104391461017357806321df0da7146101865780632c92fb99146101ab575b600080fd5b61015a610155366004612995565b610335565b005b6008545b6040519081526020015b60405180910390f35b610160610181366004612995565b610405565b6003546001600160a01b03165b6040516001600160a01b03909116815260200161016a565b6101be6101b9366004612995565b61041c565b60405161016a9190612a5f565b6101de6101d9366004612995565b610431565b60405161016a9190612ac2565b6101606101f9366004612995565b6105ed565b61015a61020c366004612995565b610602565b61022461021f366004612995565b6107ba565b60405161016a9190612a72565b61015a61023f3660046129e6565b6107cf565b61015a610252366004612995565b610c1d565b61015a6102653660046129c5565b610c73565b61015a6102783660046129e6565b610e4a565b61015a61028b3660046129e6565b611374565b61016061029e3660046129c5565b611672565b6101606102b1366004612995565b6119d6565b6101606102c43660046127d4565b6119ff565b61015a6102d73660046129c5565b611c28565b6101936102ea366004612995565b611e00565b61015a6102fd36600461279c565b611e90565b610160610310366004612995565b60009081526007602052604090205490565b61015a610330366004612995565b61200d565b6103506e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146103895760405162461bcd60e51b815260040161038090612a80565b60405180910390fd5b600081815260056020526040902054156103f75760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031353a42554e444c455f574954485f4143544956456044820152685f504f4c494349455360b81b6064820152608401610380565b61040281600261214b565b50565b600061041082610431565b60e0015190505b919050565b606061042782610431565b6080015192915050565b610439612618565b600082815260046020908152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600380820154606084019160ff9091169081111561049d57634e487b7160e01b600052602160045260246000fd5b60038111156104bc57634e487b7160e01b600052602160045260246000fd5b81526020016004820180546104d090612c44565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc90612c44565b80156105495780601f1061051e57610100808354040283529160200191610549565b820191906000526020600020905b81548152906001019060200180831161052c57829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505090506000816101000151116105e75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3036303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b92915050565b60006105f882610431565b60c0015192915050565b61061d6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461064d5760405162461bcd60e51b815260040161038090612a80565b6000818152600460205260409020600260038083015460ff169081111561068457634e487b7160e01b600052602160045260246000fd5b146106d15760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3031363a42554e444c455f4e4f545f434c4f534544006044820152606401610380565b6007810154156107235760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4255432d3031373a42554e444c455f4841535f42414c414e43456044820152606401610380565b600354604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b50505050600181810154600090815260076020526040812080549091906107a5908490612bfd565b909155506107b6905082600361214b565b5050565b60006107c582610431565b6060015192915050565b6107ea6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461081a5760405162461bcd60e51b815260040161038090612a80565b60025460405163296586d360e21b8152600481018490526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561085f57600080fd5b505afa158015610873573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089b9190810190612860565b60008581526004602052604090209091506108b46121ac565b6001600160a01b031663d229f3b083602001516040518263ffffffff1660e01b81526004016108e591815260200190565b60206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093591906129ad565b8160010154146109935760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3031393a42554e444c455f4e4f545f494e5f5249534b6044820152631413d3d360e21b6064820152608401610380565b60008160080154116109f35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3032303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff1690811115610a1c57634e487b7160e01b600052602160045260246000fd5b14610a695760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3032313a42554e444c455f4e4f545f414354495645006044820152606401610380565b828160060154610a799190612be5565b81600501541015610acc5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4255432d3032323a43415041434954595f544f4f5f4c4f5700006044820152606401610380565b600085815260066020908152604080832087845290915290205415610b595760405162461bcd60e51b815260206004820152603b60248201527f4552524f523a4255432d3032333a494e4352454d454e54414c5f434f4c4c415460448201527f4552414c495a4154494f4e5f4e4f545f494d504c454d454e54454400000000006064820152608401610380565b82816006016000828254610b6d9190612be5565b90915550504260098201556000858152600560205260408120805460019290610b97908490612be5565b9091555050600085815260066020818152604080842088855290915282208590558201546005830154610bca9190612bfd565b6040805188815260208101889052908101869052606081018290529091507fb253c82cbaad89e2bd0fb78bc565243ccc06da1ac58b640ed94469f69b64ea549060800160405180910390a1505050505050565b610c386e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610c685760405162461bcd60e51b815260040161038090612a80565b61040281600061214b565b610c8e6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610cbe5760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154610d295760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600260038083015460ff1690811115610d5257634e487b7160e01b600052602160045260246000fd5b1415610da05760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4255432d3031323a42554e444c455f434c4f53454400000000006044820152606401610380565b81816005016000828254610db49190612be5565b9250508190555081816007016000828254610dcf9190612be5565b909155505042600982015560068101546005820154600091610df091612bfd565b90507fed746f45e63100861a9a492e092018cdce2d2645b83741099a6f8ecba2af013884335b604080519283526001600160a01b03909116602083015281018590526060810183905260800160405180910390a150505050565b610e656e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610e955760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b158015610edb57600080fd5b505afa158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f139190612910565b9050600281516002811115610f3857634e487b7160e01b600052602160045260246000fd5b1415610f915760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000848152600560205260409020546110005760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3034313a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b60008481526006602090815260408083208684529091529020548211156110825760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4255432d3034323a434f4c4c41544552414c5f494e535546464960448201526f4349454e545f464f525f504f4c49435960801b6064820152608401610380565b600084815260046020526040902060088101546110ed5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3034333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff169081111561111657634e487b7160e01b600052602160045260246000fd5b14806111485750600160038083015460ff169081111561114657634e487b7160e01b600052602160045260246000fd5b145b61119f5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4255432d3034343a42554e444c455f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b82816005015410156111f35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034353a4341504954414c5f544f4f5f4c4f570000006044820152606401610380565b82816006015410156112535760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3034363a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b6064820152608401610380565b82816007015410156112a75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034373a42414c414e43455f544f4f5f4c4f570000006044820152606401610380565b6000858152600660209081526040808320878452909152812080548592906112d0908490612bfd565b92505081905550828160050160008282546112eb9190612bfd565b92505081905550828160060160008282546113069190612bfd565b92505081905550828160070160008282546113219190612bfd565b909155505042600982015560408051868152602081018690529081018490527f34ea3fe7b8e6aa959a187f606dc076e9fb02379d613a2c9356f5a556aac9508c9060600160405180910390a15050505050565b61138f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146113bf5760405162461bcd60e51b815260040161038090612a80565b6000838152600460205260409020600881015484919061142d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3030323a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b60038181015460ff168181111561145457634e487b7160e01b600052602160045260246000fd5b141580156114895750600260038083015460ff169081111561148657634e487b7160e01b600052602160045260246000fd5b14155b6114e35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4255432d3030333a42554e444c455f4255524e45445f4f525f436044820152641313d4d15160da1b6064820152608401610380565b60025460405163a3f685f960e01b8152600481018690526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561152957600080fd5b505afa15801561153d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115619190612910565b905060028151600281111561158657634e487b7160e01b600052602160045260246000fd5b14156115df5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3033303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000868152600460205260409020600881015461164a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3033313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b8481600701600082825461165e9190612be5565b909155505042600990910155505050505050565b600061168f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146116bf5760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612910565b905060028151600281111561176257634e487b7160e01b600052602160045260246000fd5b146117ba5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3035303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b600084815260046020526040902060088101546118255760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3035313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b6000858152600560205260409020546118945760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3035323a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b6000858152600660208181526040808420888552909152909120549082015481111561190e5760405162461bcd60e51b8152602060048201526024808201527f50414e49433a4255432d3035333a554e4c4f434b5f4341504954414c5f544f4f6044820152635f42494760e01b6064820152608401610380565b600086815260056020526040812080546001929061192d908490612bfd565b90915550506000868152600660208181526040808420898552909152822082905583018054839290611960908490612bfd565b90915550504260098301556006820154600583015460009161198191612bfd565b6040805189815260208101899052908101849052606081018290529091507fa7edca0329e0f25a5a213baaa606802692de7155da4cf8a007aedf326d9180759060800160405180910390a15050505092915050565b6000806119e283610431565b90508060c001518160a001516119f89190612bfd565b9392505050565b6000611a1c6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611a4c5760405162461bcd60e51b815260040161038090612a80565b600854611a5a906001612be5565b600081815260046020526040902060088101549192509015611aca5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031303a42554e444c455f414c52454144595f45584960448201526253545360e81b6064820152608401610380565b6003546040516394bf804d60e01b8152600481018490526001600160a01b03898116602483015260009216906394bf804d90604401602060405180830381600087803b158015611b1957600080fd5b505af1158015611b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5191906129ad565b838355600283018190556001830188905560038301805460ff191690559050611b7e60048301878761268a565b50600582018490556007820184905542600880840182905560098401919091558054906000611bac83612c7f565b90915550506000878152600760205260408120805491611bcb83612c7f565b90915550508154600383015460058401546040517f2a6ff62099c2d2515017f639043aef82d6293361b7cb7bdc90854eb2f026b56c93611c159390928c928e9260ff169190612b7a565b60405180910390a1505095945050505050565b611c436e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611c735760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154611cde5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b818160060154611cee9190612be5565b8160050154101580611d1157506006810154158015611d11575081816007015410155b611d6f5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031343a43415041434954595f4f525f42414c414e43604482015268455f544f4f5f4c4f5760b81b6064820152608401610380565b81816005015410611d995781816005016000828254611d8e9190612bfd565b90915550611da19050565b600060058201555b81816007016000828254611db59190612bfd565b909155505042600982015560068101546005820154600091611dd691612bfd565b90507fe3d161947307a0d06b7ac0f3a183176acbc70afff0831bba7e694ef9f47323bd8433610e16565b600080611e0c83610431565b60409081015160035491516331a9108f60e11b8152600481018290529092506001600160a01b0390911690636352211e9060240160206040518083038186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f891906127b8565b600054610100900460ff1615808015611eb05750600054600160ff909116105b80611eca5750303b158015611eca575060005460ff166001145b611f2d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610380565b6000805460ff191660011790558015611f50576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f7a600090565b6541636365737360d01b14611fbc57611f9b6541636365737360d01b612063565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611fc46121c3565b80156107b6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6120286e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146120585760405162461bcd60e51b815260040161038090612a80565b61040281600161214b565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156120ad57600080fd5b505afa1580156120c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e591906127b8565b90506001600160a01b0381166104175760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610380565b6000612156836107ba565b90506121628183612299565b61216c83836125bb565b7f0c318b62e2d75a1d66c8fa6d64604f76f84b646cf3dadfb56e336044d57061f583828460405161219f93929190612b59565b60405180910390a1505050565b60006121be63141bdbdb60e21b612063565b905090565b600054610100900460ff1661222e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610380565b61224065506f6c69637960d01b612063565b600280546001600160a01b0319166001600160a01b03929092169190911790556122776a213ab7323632aa37b5b2b760a91b612063565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008260038111156122bb57634e487b7160e01b600052602160045260246000fd5b141561236f5760018160038111156122e357634e487b7160e01b600052602160045260246000fd5b148061230e5750600281600381111561230c57634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037303a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b6107b6565b600182600381111561239157634e487b7160e01b600052602160045260246000fd5b14156124405760008160038111156123b957634e487b7160e01b600052602160045260246000fd5b14806123e4575060028160038111156123e257634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037313a4c4f434b45445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600282600381111561246257634e487b7160e01b600052602160045260246000fd5b14156124e757600381600381111561248a57634e487b7160e01b600052602160045260246000fd5b1461236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037323a434c4f5345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600382600381111561250957634e487b7160e01b600052602160045260246000fd5b14156125635760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3037333a4255524e45445f49535f46494e414c5f535460448201526241544560e81b6064820152608401610380565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a424f432d3037343a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610380565b600082815260046020526040902060039081018054839260ff199091169060019084908111156125fb57634e487b7160e01b600052602160045260246000fd5b021790555050600090815260046020526040902042600990910155565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561265a57634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461269690612c44565b90600052602060002090601f0160209004810192826126b857600085556126fe565b82601f106126d15782800160ff198235161785556126fe565b828001600101855582156126fe579182015b828111156126fe5782358255916020019190600101906126e3565b5061270a92915061270e565b5090565b5b8082111561270a576000815560010161270f565b600082601f830112612733578081fd5b815167ffffffffffffffff81111561274d5761274d612cb0565b612760601f8201601f1916602001612bb4565b818152846020838601011115612774578283fd5b612785826020830160208701612c14565b949350505050565b80516003811061041757600080fd5b6000602082840312156127ad578081fd5b81356119f881612cc6565b6000602082840312156127c9578081fd5b81516119f881612cc6565b6000806000806000608086880312156127eb578081fd5b85356127f681612cc6565b945060208601359350604086013567ffffffffffffffff80821115612819578283fd5b818801915088601f83011261282c578283fd5b81358181111561283a578384fd5b89602082850101111561284b578384fd5b96999598505060200195606001359392505050565b600060208284031215612871578081fd5b815167ffffffffffffffff80821115612888578283fd5b9083019060c0828603121561289b578283fd5b6128a560c0612bb4565b82516128b081612cc6565b8152602083810151908201526128c86040840161278d565b60408201526060830151828111156128de578485fd5b6128ea87828601612723565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215612923578182fd5b61292c81612bb4565b90506129378361278d565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6000602082840312156129a6578081fd5b5035919050565b6000602082840312156129be578081fd5b5051919050565b600080604083850312156129d7578182fd5b50508035926020909101359150565b6000806000606084860312156129fa578283fd5b505081359360208301359350604090920135919050565b60008151808452612a29816020860160208601612c14565b601f01601f19169290920160200192915050565b60048110612a5b57634e487b7160e01b600052602160045260246000fd5b9052565b6000602082526119f86020830184612a11565b602081016105e78284612a3d565b60208082526022908201527f4552524f523a4255432d3030313a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612af56080840182612a3d565b5060808301516101408060a0850152612b12610160850183612a11565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b83815260608101612b6d6020830185612a3d565b6127856040830184612a3d565b858152602081018590526001600160a01b038416604082015260a08101612ba46060830185612a3d565b8260808301529695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612bdd57612bdd612cb0565b604052919050565b60008219821115612bf857612bf8612c9a565b500190565b600082821015612c0f57612c0f612c9a565b500390565b60005b83811015612c2f578181015183820152602001612c17565b83811115612c3e576000848401525b50505050565b600281046001821680612c5857607f821691505b60208210811415612c7957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c9357612c93612c9a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040257600080fdfea26469706673582212201077787b34730b7d2a802670a61dd1edc7acf97dd1ddeccd189c2edf0833b64664736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA65E2CFD GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC0E71404 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC0E71404 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0xC397AE39 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xC41A360A EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x2EF JUMPI DUP1 PUSH4 0xC559783E EQ PUSH2 0x302 JUMPI DUP1 PUSH4 0xDD467064 EQ PUSH2 0x322 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0xA65E2CFD EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0xB299CC26 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0xB7267420 EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0xBB540DF6 EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xBCD5349F EQ PUSH2 0x2A3 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x3F5D9235 EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x44C9AF28 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x4D03F9B7 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x6198E339 EQ PUSH2 0x244 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0xAEBEB4E EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x1E010439 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x2C92FB99 EQ PUSH2 0x1AB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x8 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x405 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16A JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x41C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2A5F JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x431 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2AC2 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST PUSH2 0x15A PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x602 JUMP JUMPDEST PUSH2 0x224 PUSH2 0x21F CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x7BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2A72 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x7CF JUMP JUMPDEST PUSH2 0x15A PUSH2 0x252 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0xC1D JUMP JUMPDEST PUSH2 0x15A PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0xC73 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0xE4A JUMP JUMPDEST PUSH2 0x15A PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1374 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x29E CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0x1672 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x19D6 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x19FF JUMP JUMPDEST PUSH2 0x15A PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0x1C28 JUMP JUMPDEST PUSH2 0x193 PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x1E00 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x2FD CALLDATASIZE PUSH1 0x4 PUSH2 0x279C JUMP JUMPDEST PUSH2 0x1E90 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x310 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x330 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x200D JUMP JUMPDEST PUSH2 0x350 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x389 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031353A42554E444C455F574954485F414354495645 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F504F4C4943494553 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x2 PUSH2 0x214B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x410 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x427 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x80 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x439 PUSH2 0x2618 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH2 0x140 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP1 DUP3 ADD SLOAD PUSH1 0x60 DUP5 ADD SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0x49D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0x4D0 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FC SWAP1 PUSH2 0x2C44 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x549 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x549 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x100 ADD MLOAD GT PUSH2 0x5E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3036303A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F8 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x61D PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x64D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x684 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x6D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031363A42554E444C455F4E4F545F434C4F53454400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x7 DUP2 ADD SLOAD ISZERO PUSH2 0x723 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031373A42554E444C455F4841535F42414C414E4345 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42966C68 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x77D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 DUP2 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x7A5 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x7B6 SWAP1 POP DUP3 PUSH1 0x3 PUSH2 0x214B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7C5 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7EA PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x873 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x89B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2860 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x8B4 PUSH2 0x21AC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD229F3B0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E5 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x911 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x935 SWAP2 SWAP1 PUSH2 0x29AD JUMP JUMPDEST DUP2 PUSH1 0x1 ADD SLOAD EQ PUSH2 0x993 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031393A42554E444C455F4E4F545F494E5F5249534B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1413D3D3 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x8 ADD SLOAD GT PUSH2 0x9F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032303A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xA69 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032313A42554E444C455F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD SLOAD PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO PUSH2 0xACC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032323A43415041434954595F544F4F5F4C4F570000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xB59 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032333A494E4352454D454E54414C5F434F4C4C4154 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x4552414C495A4154494F4E5F4E4F545F494D504C454D454E5445440000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB6D SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xB97 SWAP1 DUP5 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP9 DUP6 MSTORE SWAP1 SWAP2 MSTORE DUP3 KECCAK256 DUP6 SWAP1 SSTORE DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH2 0xBCA SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xB253C82CBAAD89E2BD0FB78BC565243CCC06DA1AC58B640ED94469F69B64EA54 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC38 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x0 PUSH2 0x214B JUMP JUMPDEST PUSH2 0xC8E PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0xD29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0xD52 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xDA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031323A42554E444C455F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDB4 SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDCF SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0xDF0 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 POP PUSH32 0xED746F45E63100861A9A492E092018CDCE2D2645B83741099A6F8ECBA2AF0138 DUP5 CALLER JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0xE65 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF13 SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF38 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xF91 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1000 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034313A4E4F5F4143544956455F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x5F464F525F42554E444C45 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x1082 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034323A434F4C4C41544552414C5F494E5355464649 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x4349454E545F464F525F504F4C494359 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x10ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034333A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1116 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1148 JUMPI POP PUSH1 0x1 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1146 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x119F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034343A42554E444C455F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO PUSH2 0x11F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034353A4341504954414C5F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x1253 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034363A4C4F434B45445F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F4C4F57 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO PUSH2 0x12A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034373A42414C414E43455F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP6 SWAP3 SWAP1 PUSH2 0x12D0 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x12EB SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1306 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1321 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x34EA3FE7B8E6AA959A187F606DC076E9FB02379D613A2C9356F5A556AAC9508C SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x138F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD DUP5 SWAP2 SWAP1 PUSH2 0x142D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030323A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 ADD SLOAD PUSH1 0xFF AND DUP2 DUP2 GT ISZERO PUSH2 0x1454 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x1489 JUMPI POP PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1486 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO JUMPDEST PUSH2 0x14E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030333A42554E444C455F4255524E45445F4F525F43 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1313D4D151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1529 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x153D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1561 SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1586 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x15DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3033303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x164A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3033313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP5 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x165E SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 SWAP1 SWAP2 ADD SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1705 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x173D SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1762 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x17BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3035303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x1825 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3035313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1894 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3035323A4E4F5F4143544956455F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x5F464F525F42554E444C45 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP9 DUP6 MSTORE SWAP1 SWAP2 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 DUP3 ADD SLOAD DUP2 GT ISZERO PUSH2 0x190E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x50414E49433A4255432D3035333A554E4C4F434B5F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F424947 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x192D SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP10 DUP6 MSTORE SWAP1 SWAP2 MSTORE DUP3 KECCAK256 DUP3 SWAP1 SSTORE DUP4 ADD DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1960 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP4 ADD SSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1981 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xA7EDCA0329E0F25A5A213BAAA606802692DE7155DA4CF8A007AEDF326D918075 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x19E2 DUP4 PUSH2 0x431 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xC0 ADD MLOAD DUP2 PUSH1 0xA0 ADD MLOAD PUSH2 0x19F8 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A1C PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x1A5A SWAP1 PUSH1 0x1 PUSH2 0x2BE5 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 ISZERO PUSH2 0x1ACA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031303A42554E444C455F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x94BF804D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x94BF804D SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B51 SWAP2 SWAP1 PUSH2 0x29AD JUMP JUMPDEST DUP4 DUP4 SSTORE PUSH1 0x2 DUP4 ADD DUP2 SWAP1 SSTORE PUSH1 0x1 DUP4 ADD DUP9 SWAP1 SSTORE PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 POP PUSH2 0x1B7E PUSH1 0x4 DUP4 ADD DUP8 DUP8 PUSH2 0x268A JUMP JUMPDEST POP PUSH1 0x5 DUP3 ADD DUP5 SWAP1 SSTORE PUSH1 0x7 DUP3 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x8 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x9 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x1BAC DUP4 PUSH2 0x2C7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x1BCB DUP4 PUSH2 0x2C7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP2 SLOAD PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x5 DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH32 0x2A6FF62099C2D2515017F639043AEF82D6293361B7CB7BDC90854EB2F026B56C SWAP4 PUSH2 0x1C15 SWAP4 SWAP1 SWAP3 DUP13 SWAP3 DUP15 SWAP3 PUSH1 0xFF AND SWAP2 SWAP1 PUSH2 0x2B7A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1C43 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C73 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x1CDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031333A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x6 ADD SLOAD PUSH2 0x1CEE SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO DUP1 PUSH2 0x1D11 JUMPI POP PUSH1 0x6 DUP2 ADD SLOAD ISZERO DUP1 ISZERO PUSH2 0x1D11 JUMPI POP DUP2 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO JUMPDEST PUSH2 0x1D6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031343A43415041434954595F4F525F42414C414E43 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x455F544F4F5F4C4F57 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x5 ADD SLOAD LT PUSH2 0x1D99 JUMPI DUP2 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D8E SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1DA1 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 DUP3 ADD SSTORE JUMPDEST DUP2 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1DB5 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1DD6 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 POP PUSH32 0xE3D161947307A0D06B7AC0F3A183176ACBC70AFFF0831BBA7E694EF9F47323BD DUP5 CALLER PUSH2 0xE16 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0C DUP4 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 ADD MLOAD PUSH1 0x3 SLOAD SWAP2 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F8 SWAP2 SWAP1 PUSH2 0x27B8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1EB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1ECA JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ECA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1F2D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1F50 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1F7A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1FBC JUMPI PUSH2 0x1F9B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1FC4 PUSH2 0x21C3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7B6 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x2028 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2058 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x1 PUSH2 0x214B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20E5 SWAP2 SWAP1 PUSH2 0x27B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x417 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2156 DUP4 PUSH2 0x7BA JUMP JUMPDEST SWAP1 POP PUSH2 0x2162 DUP2 DUP4 PUSH2 0x2299 JUMP JUMPDEST PUSH2 0x216C DUP4 DUP4 PUSH2 0x25BB JUMP JUMPDEST PUSH32 0xC318B62E2D75A1D66C8FA6D64604F76F84B646CF3DADFB56E336044D57061F5 DUP4 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0x219F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B59 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21BE PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x2063 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x222E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x2240 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2277 PUSH11 0x213AB7323632AA37B5B2B7 PUSH1 0xA9 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x22BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x236F JUMPI PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x22E3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x230E JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x230C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037303A4143544956455F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x7B6 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2391 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2440 JUMPI PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x23B9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x23E4 JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x23E2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037313A4C4F434B45445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2462 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x24E7 JUMPI PUSH1 0x3 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x248A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037323A434C4F5345445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2509 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2563 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037333A4255524E45445F49535F46494E414C5F5354 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x415445 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A424F432D3037343A494E495449414C5F53544154455F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12105391131151 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 SWAP1 DUP2 ADD DUP1 SLOAD DUP4 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 DUP2 GT ISZERO PUSH2 0x25FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 TIMESTAMP PUSH1 0x9 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x265A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2696 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x26B8 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x26FE JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x26D1 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x26FE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x26FE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x26FE JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x26E3 JUMP JUMPDEST POP PUSH2 0x270A SWAP3 SWAP2 POP PUSH2 0x270E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x270A JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x270F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2733 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x274D JUMPI PUSH2 0x274D PUSH2 0x2CB0 JUMP JUMPDEST PUSH2 0x2760 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2BB4 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2774 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2785 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2C14 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x417 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x19F8 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27C9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x19F8 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x27EB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x27F6 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2819 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x282C JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x283A JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x284B JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP POP PUSH1 0x20 ADD SWAP6 PUSH1 0x60 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2871 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2888 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x289B JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x28A5 PUSH1 0xC0 PUSH2 0x2BB4 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x28B0 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x28C8 PUSH1 0x40 DUP5 ADD PUSH2 0x278D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x28DE JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x28EA DUP8 DUP3 DUP7 ADD PUSH2 0x2723 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2923 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x292C DUP2 PUSH2 0x2BB4 JUMP JUMPDEST SWAP1 POP PUSH2 0x2937 DUP4 PUSH2 0x278D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29A6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29BE JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29D7 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x29FA JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2A29 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2C14 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x2A5B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x19F8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A11 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x5E7 DUP3 DUP5 PUSH2 0x2A3D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2AF5 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2A3D JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2B12 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2A11 JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x2B6D PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2A3D JUMP JUMPDEST PUSH2 0x2785 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2A3D JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0x2BA4 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2A3D JUMP JUMPDEST DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2BDD JUMPI PUSH2 0x2BDD PUSH2 0x2CB0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2BF8 JUMPI PUSH2 0x2BF8 PUSH2 0x2C9A JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C0F JUMPI PUSH2 0x2C0F PUSH2 0x2C9A JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2C2F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2C17 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2C3E JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2C58 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2C79 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C93 JUMPI PUSH2 0x2C93 PUSH2 0x2C9A JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x402 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT PUSH24 0x787B34730B7D2A802670A61DD1EDC7ACF97DD1DDECCD189C 0x2E 0xDF ADDMOD CALLER 0xB6 CHAINID PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2400:13072:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6709:244;;;;;;:::i;:::-;;:::i;:::-;;13572:84;13637:12;;13572:84;;;6129:25:103;;;6117:2;6102:18;13572:84:74;;;;;;;;13117:121;;;;;;:::i;:::-;;:::i;13244:85::-;13316:6;;-1:-1:-1;;;;;13316:6:74;13244:85;;;-1:-1:-1;;;;;5939:32:103;;;5921:51;;5909:2;5894:18;13244:85:74;5876:102:103;12658:121:74;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13335:231::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12975:136::-;;;;;;:::i;:::-;;:::i;6959:535::-;;;;;;:::i;:::-;;:::i;12531:121::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7500:1231::-;;;;;;:::i;:::-;;:::i;6552:151::-;;;;;;:::i;:::-;;:::i;4940:609::-;;;;;;:::i;:::-;;:::i;9368:1570::-;;;;;;:::i;:::-;;:::i;8738:623::-;;;;;;:::i;:::-;;:::i;10945:1405::-;;;;;;:::i;:::-;;:::i;12788:181::-;;;;;;:::i;:::-;;:::i;3803:1130::-;;;;;;:::i;:::-;;:::i;5556:835::-;;;;;;:::i;:::-;;:::i;12356:169::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;13662:139:74:-;;;;;;:::i;:::-;13728:7;13754:40;;;:28;:40;;;;;;;13662:139;6397:149;;;;;;:::i;:::-;;:::i;6709:244::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;;;;;;;;;6818:25:::1;::::0;;;:15:::1;:25;::::0;;;;;:30;6810:84:::1;;;::::0;-1:-1:-1;;;6810:84:74;;21238:2:103;6810:84:74::1;::::0;::::1;21220:21:103::0;21277:2;21257:18;;;21250:30;21316:34;21296:18;;;21289:62;-1:-1:-1;;;21367:18:103;;;21360:39;21416:19;;6810:84:74::1;21210:231:103::0;6810:84:74::1;6904:42;6917:8;6927:18;6904:12;:42::i;:::-;6709:244:::0;:::o;13117:121::-;13175:7;13201:19;13211:8;13201:9;:19::i;:::-;:27;;;13194:34;;13117:121;;;;:::o;12658:::-;12715:12;12746:19;12756:8;12746:9;:19::i;:::-;:26;;;;12658:121;-1:-1:-1;;12658:121:74:o;13335:231::-;13392:13;;:::i;:::-;13417:20;13440:18;;;:8;:18;;;;;;;;13417:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13417:41:74;;;;;;;;;;;;;;;-1:-1:-1;;;13417:41:74;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13495:1;13476:6;:16;;;:20;13468:68;;;;-1:-1:-1;;;13468:68:74;;8426:2:103;13468:68:74;;;8408:21:103;8465:2;8445:18;;;8438:30;8504:34;8484:18;;;8477:62;-1:-1:-1;;;8555:18:103;;;8548:33;8598:19;;13468:68:74;8398:225:103;13468:68:74;13553:6;13335:231;-1:-1:-1;;13335:231:74:o;12975:136::-;13042:7;13068:19;13078:8;13068:9;:19::i;:::-;:33;;;;12975:136;-1:-1:-1;;12975:136:74:o;6959:535::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;7063:21:::1;7087:18:::0;;;:8:::1;:18;::::0;;;;7139::::1;7123:12;::::0;;::::1;::::0;::::1;;::::0;:34;::::1;;;;-1:-1:-1::0;;;7123:34:74::1;;;;;;;;;;7115:78;;;::::0;-1:-1:-1;;;7115:78:74;;21648:2:103;7115:78:74::1;::::0;::::1;21630:21:103::0;21687:2;21667:18;;;21660:30;21726:33;21706:18;;;21699:61;21777:18;;7115:78:74::1;21620:181:103::0;7115:78:74::1;7211:14;::::0;::::1;::::0;:19;7203:64:::1;;;::::0;-1:-1:-1;;;7203:64:74;;12797:2:103;7203:64:74::1;::::0;::::1;12779:21:103::0;;;12816:18;;;12809:30;12875:34;12855:18;;;12848:62;12927:18;;7203:64:74::1;12769:182:103::0;7203:64:74::1;7351:6;::::0;:21:::1;::::0;-1:-1:-1;;;7351:21:74;;::::1;::::0;::::1;6129:25:103::0;;;-1:-1:-1;;;;;7351:6:74;;::::1;::::0;:11:::1;::::0;6102:18:103;;7351:21:74::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;7433:1:74::1;7411:17:::0;;::::1;::::0;7382:47:::1;::::0;;;:28:::1;:47;::::0;;;;:52;;:47;;;:52:::1;::::0;7433:1;;7382:52:::1;:::i;:::-;::::0;;;-1:-1:-1;7445:42:74::1;::::0;-1:-1:-1;7458:8:74;7468:18:::1;7445:12;:42::i;:::-;3197:1;6959:535:::0;:::o;12531:121::-;12587:11;12617:19;12627:8;12617:9;:19::i;:::-;:25;;;;12531:121;-1:-1:-1;;12531:121:74:o;7500:1231::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;7686:7:::1;::::0;:30:::1;::::0;-1:-1:-1;;;7686:30:74;;::::1;::::0;::::1;6129:25:103::0;;;7651:32:74::1;::::0;-1:-1:-1;;;;;7686:7:74::1;::::0;:19:::1;::::0;6102:18:103;;7686:30:74::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;7686:30:74::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;7726:21;7750:18:::0;;;:8:::1;:18;::::0;;;;7651:65;;-1:-1:-1;7807:20:74::1;:18;:20::i;:::-;-1:-1:-1::0;;;;;7807:42:74::1;;7850:8;:18;;;7807:62;;;;;;;;;;;;;6129:25:103::0;;6117:2;6102:18;;6084:76;7807:62:74::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7786:6;:17;;;:83;7778:132;;;::::0;-1:-1:-1;;;7778:132:74;;15135:2:103;7778:132:74::1;::::0;::::1;15117:21:103::0;15174:2;15154:18;;;15147:30;15213:34;15193:18;;;15186:62;-1:-1:-1;;;15264:18:103;;;15257:34;15308:19;;7778:132:74::1;15107:226:103::0;7778:132:74::1;7947:1;7928:6;:16;;;:20;7920:68;;;::::0;-1:-1:-1;;;7920:68:74;;10002:2:103;7920:68:74::1;::::0;::::1;9984:21:103::0;10041:2;10021:18;;;10014:30;10080:34;10060:18;;;10053:62;-1:-1:-1;;;10131:18:103;;;10124:33;10174:19;;7920:68:74::1;9974:225:103::0;7920:68:74::1;8022:26;8006:12;::::0;;::::1;::::0;::::1;;::::0;:42;::::1;;;;-1:-1:-1::0;;;8006:42:74::1;;;;;;;;;;7998:86;;;::::0;-1:-1:-1;;;7998:86:74;;22008:2:103;7998:86:74::1;::::0;::::1;21990:21:103::0;22047:2;22027:18;;;22020:30;22086:33;22066:18;;;22059:61;22137:18;;7998:86:74::1;21980:181:103::0;7998:86:74::1;8151:6;8128;:20;;;:29;;;;:::i;:::-;8110:6;:14;;;:47;;8102:90;;;::::0;-1:-1:-1;;;8102:90:74;;9233:2:103;8102:90:74::1;::::0;::::1;9215:21:103::0;9272:2;9252:18;;;9245:30;9311:32;9291:18;;;9284:60;9361:18;;8102:90:74::1;9205:180:103::0;8102:90:74::1;8264:31;::::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;;:47;8256:119:::1;;;::::0;-1:-1:-1;;;8256:119:74;;7592:2:103;8256:119:74::1;::::0;::::1;7574:21:103::0;7631:2;7611:18;;;7604:30;7670:34;7650:18;;;7643:62;7741:29;7721:18;;;7714:57;7788:19;;8256:119:74::1;7564:249:103::0;8256:119:74::1;8410:6;8386;:20;;;:30;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;8445:15:74::1;8426:16;::::0;::::1;:34:::0;8471:25:::1;::::0;;;:15:::1;:25;::::0;;;;:30;;8500:1:::1;::::0;8471:25;:30:::1;::::0;8500:1;;8471:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;8511:31:74::1;::::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;:51;;;8615:20;::::1;::::0;8598:14:::1;::::0;::::1;::::0;:37:::1;::::0;8615:20;8598:37:::1;:::i;:::-;8650:74;::::0;;25097:25:103;;;25153:2;25138:18;;25131:34;;;25181:18;;;25174:34;;;25239:2;25224:18;;25217:34;;;8573:62:74;;-1:-1:-1;8650:74:74::1;::::0;25084:3:103;25069:19;8650:74:74::1;;;;;;;3197:1;;;7500:1231:::0;;;:::o;6552:151::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;6654:42:::1;6667:8;6677:18;6654:12;:42::i;4940:609::-:0;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;5057:21:::1;5081:18:::0;;;:8:::1;:18;::::0;;;;5117:16:::1;::::0;::::1;::::0;5109:68:::1;;;::::0;-1:-1:-1;;;5109:68:74;;19205:2:103;5109:68:74::1;::::0;::::1;19187:21:103::0;19244:2;19224:18;;;19217:30;19283:34;19263:18;;;19256:62;-1:-1:-1;;;19334:18:103;;;19327:33;19377:19;;5109:68:74::1;19177:225:103::0;5109:68:74::1;5211:26;5195:12;::::0;;::::1;::::0;::::1;;::::0;:42;::::1;;;;-1:-1:-1::0;;;5195:42:74::1;;;;;;;;;;;5187:82;;;::::0;-1:-1:-1;;;5187:82:74;;13158:2:103;5187:82:74::1;::::0;::::1;13140:21:103::0;13197:2;13177:18;;;13170:30;13236:29;13216:18;;;13209:57;13283:18;;5187:82:74::1;13130:177:103::0;5187:82:74::1;5298:6;5280;:14;;;:24;;;;;;;:::i;:::-;;;;;;;;5332:6;5314;:14;;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;5367:15:74::1;5348:16;::::0;::::1;:34:::0;5435:20:::1;::::0;::::1;::::0;5418:14:::1;::::0;::::1;::::0;5393:22:::1;::::0;5418:37:::1;::::0;::::1;:::i;:::-;5393:62:::0;-1:-1:-1;5470:72:74::1;5495:8:::0;719:10:59;5505:12:74::1;5470:72;::::0;;24351:25:103;;;-1:-1:-1;;;;;24412:32:103;;;24407:2;24392:18;;24385:60;24461:18;;24454:34;;;24519:2;24504:18;;24497:34;;;24338:3;24323:19;5470:72:74::1;;;;;;;3197:1;;4940:609:::0;;:::o;9368:1570::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;9545:7:::1;::::0;:28:::1;::::0;-1:-1:-1;;;9545:28:74;;::::1;::::0;::::1;6129:25:103::0;;;9514:28:74::1;::::0;-1:-1:-1;;;;;9545:7:74::1;::::0;:17:::1;::::0;6102:18:103;;9545:28:74::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9514:59:::0;-1:-1:-1;9620:26:74::1;9604:12:::0;;:42:::1;::::0;::::1;;;;-1:-1:-1::0;;;9604:42:74::1;;;;;;;;;;;9583:123;;;::::0;-1:-1:-1;;;9583:123:74;;15955:2:103;9583:123:74::1;::::0;::::1;15937:21:103::0;15994:2;15974:18;;;15967:30;16033:34;16013:18;;;16006:62;-1:-1:-1;;;16084:18:103;;;16077:32;16126:19;;9583:123:74::1;15927:224:103::0;9583:123:74::1;9839:1;9811:25:::0;;;:15:::1;:25;::::0;;;;;9803:85:::1;;;::::0;-1:-1:-1;;;9803:85:74;;18793:2:103;9803:85:74::1;::::0;::::1;18775:21:103::0;18832:2;18812:18;;;18805:30;18871:34;18851:18;;;18844:62;-1:-1:-1;;;18922:18:103;;;18915:41;18973:19;;9803:85:74::1;18765:233:103::0;9803:85:74::1;9906:31;::::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;;:52;-1:-1:-1;9906:52:74::1;9898:113;;;::::0;-1:-1:-1;;;9898:113:74;;10764:2:103;9898:113:74::1;::::0;::::1;10746:21:103::0;10803:2;10783:18;;;10776:30;10842:34;10822:18;;;10815:62;-1:-1:-1;;;10893:18:103;;;10886:46;10949:19;;9898:113:74::1;10736:238:103::0;9898:113:74::1;10079:21;10103:18:::0;;;:8:::1;:18;::::0;;;;10139:16:::1;::::0;::::1;::::0;10131:68:::1;;;::::0;-1:-1:-1;;;10131:68:74;;13922:2:103;10131:68:74::1;::::0;::::1;13904:21:103::0;13961:2;13941:18;;;13934:30;14000:34;13980:18;;;13973:62;-1:-1:-1;;;14051:18:103;;;14044:33;14094:19;;10131:68:74::1;13894:225:103::0;10131:68:74::1;10246:26;10230:12;::::0;;::::1;::::0;::::1;;::::0;:42;::::1;;;;-1:-1:-1::0;;;10230:42:74::1;;;;;;;;;;:100;;;-1:-1:-1::0;10304:26:74::1;10288:12;::::0;;::::1;::::0;::::1;;::::0;:42;::::1;;;;-1:-1:-1::0;;;10288:42:74::1;;;;;;;;;;10230:100;10209:173;;;::::0;-1:-1:-1;;;10209:173:74;;8830:2:103;10209:173:74::1;::::0;::::1;8812:21:103::0;8869:2;8849:18;;;8842:30;8908:34;8888:18;;;8881:62;-1:-1:-1;;;8959:18:103;;;8952:32;9001:19;;10209:173:74::1;8802:224:103::0;10209:173:74::1;10418:6;10400;:14;;;:24;;10392:66;;;::::0;-1:-1:-1;;;10392:66:74;;7234:2:103;10392:66:74::1;::::0;::::1;7216:21:103::0;7273:2;7253:18;;;7246:30;7312:31;7292:18;;;7285:59;7361:18;;10392:66:74::1;7206:179:103::0;10392:66:74::1;10500:6;10476;:20;;;:30;;10468:79;;;::::0;-1:-1:-1;;;10468:79:74;;11585:2:103;10468:79:74::1;::::0;::::1;11567:21:103::0;11624:2;11604:18;;;11597:30;11663:34;11643:18;;;11636:62;-1:-1:-1;;;11714:18:103;;;11707:34;11758:19;;10468:79:74::1;11557:226:103::0;10468:79:74::1;10583:6;10565;:14;;;:24;;10557:66;;;::::0;-1:-1:-1;;;10557:66:74;;10406:2:103;10557:66:74::1;::::0;::::1;10388:21:103::0;10445:2;10425:18;;;10418:30;10484:31;10464:18;;;10457:59;10533:18;;10557:66:74::1;10378:179:103::0;10557:66:74::1;10634:31;::::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;:52;;10680:6;;10634:31;:52:::1;::::0;10680:6;;10634:52:::1;:::i;:::-;;;;;;;;10714:6;10696;:14;;;:24;;;;;;;:::i;:::-;;;;;;;;10754:6;10730;:20;;;:30;;;;;;;:::i;:::-;;;;;;;;10788:6;10770;:14;;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;10823:15:74::1;10804:16;::::0;::::1;:34:::0;10878:53:::1;::::0;;24744:25:103;;;24800:2;24785:18;;24778:34;;;24828:18;;;24821:34;;;10878:53:74::1;::::0;24732:2:103;24717:18;10878:53:74::1;;;;;;;3197:1;;9368:1570:::0;;;:::o;8738:623::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;3267:21:::1;3291:18:::0;;;:8:::1;:18;::::0;;;;3327:16:::1;::::0;::::1;::::0;8896:8;;3291:18;3319:68:::1;;;::::0;-1:-1:-1;;;3319:68:74;;11181:2:103;3319:68:74::1;::::0;::::1;11163:21:103::0;11220:2;11200:18;;;11193:30;11259:34;11239:18;;;11232:62;-1:-1:-1;;;11310:18:103;;;11303:33;11353:19;;3319:68:74::1;11153:225:103::0;3319:68:74::1;3434:26;3418:12:::0;;::::1;::::0;::::1;;:42:::0;;::::1;;;;-1:-1:-1::0;;;3418:42:74::1;;;;;;;;;;;:101;;;;-1:-1:-1::0;3493:26:74::1;3477:12;::::0;;::::1;::::0;::::1;;::::0;:42;::::1;;;;-1:-1:-1::0;;;3477:42:74::1;;;;;;;;;;;3418:101;3397:173;;;::::0;-1:-1:-1;;;3397:173:74;;20832:2:103;3397:173:74::1;::::0;::::1;20814:21:103::0;20871:2;20851:18;;;20844:30;20910:34;20890:18;;;20883:62;-1:-1:-1;;;20961:18:103;;;20954:35;21006:19;;3397:173:74::1;20804:227:103::0;3397:173:74::1;8951:7:::2;::::0;:28:::2;::::0;-1:-1:-1;;;8951:28:74;;::::2;::::0;::::2;6129:25:103::0;;;8920:28:74::2;::::0;-1:-1:-1;;;;;8951:7:74::2;::::0;:17:::2;::::0;6102:18:103;;8951:28:74::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8920:59:::0;-1:-1:-1;9026:26:74::2;9010:12:::0;;:42:::2;::::0;::::2;;;;-1:-1:-1::0;;;9010:42:74::2;;;;;;;;;;;8989:123;;;::::0;-1:-1:-1;;;8989:123:74;;17986:2:103;8989:123:74::2;::::0;::::2;17968:21:103::0;18025:2;18005:18;;;17998:30;18064:34;18044:18;;;18037:62;-1:-1:-1;;;18115:18:103;;;18108:32;18157:19;;8989:123:74::2;17958:224:103::0;8989:123:74::2;9123:21;9147:18:::0;;;:8:::2;:18;::::0;;;;9183:16:::2;::::0;::::2;::::0;9175:68:::2;;;::::0;-1:-1:-1;;;9175:68:74;;17178:2:103;9175:68:74::2;::::0;::::2;17160:21:103::0;17217:2;17197:18;;;17190:30;17256:34;17236:18;;;17229:62;-1:-1:-1;;;17307:18:103;;;17300:33;17350:19;;9175:68:74::2;17150:225:103::0;9175:68:74::2;9280:6;9262;:14;;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9315:15:74::2;9296:16;::::0;;::::2;:34:::0;-1:-1:-1;;;;;;8738:623:74:o;10945:1405::-;11077:33;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;11157:7:::1;::::0;:28:::1;::::0;-1:-1:-1;;;11157:28:74;;::::1;::::0;::::1;6129:25:103::0;;;11126:28:74::1;::::0;-1:-1:-1;;;;;11157:7:74::1;::::0;:17:::1;::::0;6102:18:103;;11157:28:74::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11126:59:::0;-1:-1:-1;11232:26:74::1;11216:12:::0;;:42:::1;::::0;::::1;;;;-1:-1:-1::0;;;11216:42:74::1;;;;;;;;;;11195:123;;;::::0;-1:-1:-1;;;11195:123:74;;19609:2:103;11195:123:74::1;::::0;::::1;19591:21:103::0;19648:2;19628:18;;;19621:30;19687:34;19667:18;;;19660:62;-1:-1:-1;;;19738:18:103;;;19731:32;19780:19;;11195:123:74::1;19581:224:103::0;11195:123:74::1;11386:21;11410:18:::0;;;:8:::1;:18;::::0;;;;11446:16:::1;::::0;::::1;::::0;11438:68:::1;;;::::0;-1:-1:-1;;;11438:68:74;;12393:2:103;11438:68:74::1;::::0;::::1;12375:21:103::0;12432:2;12412:18;;;12405:30;12471:34;12451:18;;;12444:62;-1:-1:-1;;;12522:18:103;;;12515:33;12565:19;;11438:68:74::1;12365:225:103::0;11438:68:74::1;11552:1;11524:25:::0;;;:15:::1;:25;::::0;;;;;11516:85:::1;;;::::0;-1:-1:-1;;;11516:85:74;;16358:2:103;11516:85:74::1;::::0;::::1;16340:21:103::0;16397:2;16377:18;;;16370:30;16436:34;16416:18;;;16409:62;-1:-1:-1;;;16487:18:103;;;16480:41;16538:19;;11516:85:74::1;16330:233:103::0;11516:85:74::1;11612:29;11644:31:::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;;;11760:20;;::::1;::::0;:45;-1:-1:-1;11760:45:74::1;11739:128;;;::::0;-1:-1:-1;;;11739:128:74;;14730:2:103;11739:128:74::1;::::0;::::1;14712:21:103::0;14769:2;14749:18;;;14742:30;14808:34;14788:18;;;14781:62;-1:-1:-1;;;14859:18:103;;;14852:34;14903:19;;11739:128:74::1;14702:226:103::0;11739:128:74::1;11926:25;::::0;;;:15:::1;:25;::::0;;;;:30;;11955:1:::1;::::0;11926:25;:30:::1;::::0;11955:1;;11926:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;11973:31:74::1;::::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;11966:49;;;12059:20;::::1;:45:::0;;12083:21;;11973:31;12059:45:::1;::::0;12083:21;;12059:45:::1;:::i;:::-;::::0;;;-1:-1:-1;;12133:15:74::1;12114:16;::::0;::::1;:34:::0;12225:20:::1;::::0;::::1;::::0;12208:14:::1;::::0;::::1;::::0;12183:22:::1;::::0;12208:37:::1;::::0;::::1;:::i;:::-;12260:83;::::0;;25097:25:103;;;25153:2;25138:18;;25131:34;;;25181:18;;;25174:34;;;25239:2;25224:18;;25217:34;;;12183:62:74;;-1:-1:-1;12260:83:74::1;::::0;25084:3:103;25069:19;12260:83:74::1;;;;;;;3197:1;;;;10945:1405:::0;;;;:::o;12788:181::-;12847:7;12866:20;12889:19;12899:8;12889:9;:19::i;:::-;12866:42;;12942:6;:20;;;12925:6;:14;;;:37;;;;:::i;:::-;12918:44;12788:181;-1:-1:-1;;;12788:181:74:o;3803:1130::-;3965:16;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;4125:12:::1;::::0;:16:::1;::::0;4140:1:::1;4125:16;:::i;:::-;4151:21;4175:18:::0;;;:8:::1;:18;::::0;;;;4211:16:::1;::::0;::::1;::::0;4114:27;;-1:-1:-1;4175:18:74;4211:21;4203:69:::1;;;::::0;-1:-1:-1;;;4203:69:74;;17582:2:103;4203:69:74::1;::::0;::::1;17564:21:103::0;17621:2;17601:18;;;17594:30;17660:34;17640:18;;;17633:62;-1:-1:-1;;;17711:18:103;;;17704:33;17754:19;;4203:69:74::1;17554:225:103::0;4203:69:74::1;4356:6;::::0;:29:::1;::::0;-1:-1:-1;;;4356:29:74;;::::1;::::0;::::1;24015:25:103::0;;;-1:-1:-1;;;;;24076:32:103;;;24056:18;;;24049:60;4338:15:74::1;::::0;4356:6:::1;::::0;:11:::1;::::0;23988:18:103;;4356:29:74::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4396:20:::0;;;4426:14:::1;::::0;::::1;:24:::0;;;4460:17:::1;::::0;::::1;:31:::0;;;4501:12:::1;::::0;::::1;:33:::0;;-1:-1:-1;;4501:33:74::1;::::0;;4426:24;-1:-1:-1;4544:23:74::1;:13;::::0;::::1;4560:7:::0;;4544:23:::1;:::i;:::-;-1:-1:-1::0;4577:14:74::1;::::0;::::1;:24:::0;;;4611:14:::1;::::0;::::1;:24:::0;;;4664:15:::1;4645:16;::::0;;::::1;:34:::0;;;4689:16:::1;::::0;::::1;:34:::0;;;;4765:14;;;-1:-1:-1;4765:14:74::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;4789:41:74::1;::::0;;;:28:::1;:41;::::0;;;;:43;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;4865:9:74;;4897:12:::1;::::0;::::1;::::0;4911:14:::1;::::0;::::1;::::0;4848:78:::1;::::0;::::1;::::0;::::1;::::0;4865:9;;4876:11;;4889:6;;4897:12:::1;;::::0;4911:14;4848:78:::1;:::i;:::-;;;;;;;;3197:1;;3803:1130:::0;;;;;;;:::o;5556:835::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;5676:21:::1;5700:18:::0;;;:8:::1;:18;::::0;;;;5736:16:::1;::::0;::::1;::::0;5728:68:::1;;;::::0;-1:-1:-1;;;5728:68:74;;14326:2:103;5728:68:74::1;::::0;::::1;14308:21:103::0;14365:2;14345:18;;;14338:30;14404:34;14384:18;;;14377:62;-1:-1:-1;;;14455:18:103;;;14448:33;14498:19;;5728:68:74::1;14298:225:103::0;5728:68:74::1;5868:6;5845;:20;;;:29;;;;:::i;:::-;5827:6;:14;;;:47;;:118;;;-1:-1:-1::0;5891:20:74::1;::::0;::::1;::::0;:25;:53;::::1;;;;5938:6;5920;:14;;;:24;;5891:53;5806:206;;;::::0;-1:-1:-1;;;5806:206:74;;9592:2:103;5806:206:74::1;::::0;::::1;9574:21:103::0;9631:2;9611:18;;;9604:30;9670:34;9650:18;;;9643:62;-1:-1:-1;;;9721:18:103;;;9714:39;9770:19;;5806:206:74::1;9564:231:103::0;5806:206:74::1;6045:6;6027;:14;;;:24;6023:122;;6073:6;6055;:14;;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;6023:122:74::1;::::0;-1:-1:-1;6023:122:74::1;;6141:1;6124:14;::::0;::::1;:18:::0;6023:122:::1;6173:6;6155;:14;;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6208:15:74::1;6189:16;::::0;::::1;:34:::0;6276:20:::1;::::0;::::1;::::0;6259:14:::1;::::0;::::1;::::0;6234:22:::1;::::0;6259:37:::1;::::0;::::1;:::i;:::-;6234:62:::0;-1:-1:-1;6311:73:74::1;6337:8:::0;719:10:59;6347:12:74::1;640:96:59::0;12356:169:74;12412:7;12432:15;12450:19;12460:8;12450:9;:19::i;:::-;:27;;;;;12494:6;;:23;;-1:-1:-1;;;12494:23:74;;;;;6129:25:103;;;12450:27:74;;-1:-1:-1;;;;;;12494:6:74;;;;:14;;6102:18:103;;12494:23:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;15540:2:103;3146:190:47;;;15522:21:103;15579:2;15559:18;;;15552:30;15618:34;15598:18;;;15591:62;-1:-1:-1;;;15669:18:103;;;15662:44;15723:19;;3146:190:47;15512:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;6985:36:103;;3531:14:47;;6973:2:103;6958:18;3531:14:47;;;;;;;1143:232:88;;:::o;6397:149:74:-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;6497:42:::1;6510:8;6520:18;6497:12;:42::i;1530:293:88:-:0;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;6129:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;6102:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;8020:2:103;1703:113:88;;;8002:21:103;8059:2;8039:18;;;8032:30;8098:34;8078:18;;;8071:62;-1:-1:-1;;;8149:18:103;;;8142:35;8194:19;;1703:113:88;7992:227:103;13976:336:74;14057:20;14080:18;14089:8;14080;:18::i;:::-;14057:41;;14109;14131:8;14141;14109:21;:41::i;:::-;14160:29;14170:8;14180;14160:9;:29::i;:::-;14254:51;14276:8;14286;14296;14254:51;;;;;;;;:::i;:::-;;;;;;;;13976:336;;;:::o;13807:163::-;13860:30;13935:27;-1:-1:-1;;;13935:19:74;:27::i;:::-;13902:61;;13807:163;:::o;3594:203::-;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;20420:2:103;4880:69:47;;;20402:21:103;20459:2;20439:18;;;20432:30;20498:34;20478:18;;;20471:62;-1:-1:-1;;;20549:18:103;;;20542:41;20600:19;;4880:69:47;20392:233:103;4880:69:47;3694:29:74::1;-1:-1:-1::0;;;3694:19:74::1;:29::i;:::-;3667:7;:57:::0;;-1:-1:-1;;;;;;3667:57:74::1;-1:-1:-1::0;;;;;3667:57:74;;;::::1;::::0;;;::::1;::::0;;3755:34:::1;-1:-1:-1::0;;;3755:19:74::1;:34::i;:::-;3734:6;:56:::0;;-1:-1:-1;;;;;;3734:56:74::1;-1:-1:-1::0;;;;;3734:56:74;;;::::1;::::0;;;::::1;::::0;;3594:203::o;14500:970::-;14638:18;14626:8;:30;;;;;;-1:-1:-1;;;14626:30:74;;;;;;;;;;14622:842;;;14709:18;14697:8;:30;;;;;;-1:-1:-1;;;14697:30:74;;;;;;;;;;:64;;;-1:-1:-1;14743:18:74;14731:8;:30;;;;;;-1:-1:-1;;;14731:30:74;;;;;;;;;;14697:64;14672:163;;;;-1:-1:-1;;;14672:163:74;;13514:2:103;14672:163:74;;;13496:21:103;13553:2;13533:18;;;13526:30;13592:34;13572:18;;;13565:62;-1:-1:-1;;;13643:18:103;;;13636:37;13690:19;;14672:163:74;13486:229:103;14672:163:74;14622:842;;;14868:18;14856:8;:30;;;;;;-1:-1:-1;;;14856:30:74;;;;;;;;;;14852:612;;;14939:18;14927:8;:30;;;;;;-1:-1:-1;;;14927:30:74;;;;;;;;;;:64;;;-1:-1:-1;14973:18:74;14961:8;:30;;;;;;-1:-1:-1;;;14961:30:74;;;;;;;;;;14927:64;14902:163;;;;-1:-1:-1;;;14902:163:74;;20012:2:103;14902:163:74;;;19994:21:103;20051:2;20031:18;;;20024:30;20090:34;20070:18;;;20063:62;-1:-1:-1;;;20141:18:103;;;20134:37;20188:19;;14902:163:74;19984:229:103;14852:612:74;15098:18;15086:8;:30;;;;;;-1:-1:-1;;;15086:30:74;;;;;;;;;;15082:382;;;15169:18;15157:8;:30;;;;;;-1:-1:-1;;;15157:30:74;;;;;;;;;;15132:129;;;;-1:-1:-1;;;15132:129:74;;22368:2:103;15132:129:74;;;22350:21:103;22407:2;22387:18;;;22380:30;22446:34;22426:18;;;22419:62;-1:-1:-1;;;22497:18:103;;;22490:37;22544:19;;15132:129:74;22340:229:103;15082:382:74;15294:18;15282:8;:30;;;;;;-1:-1:-1;;;15282:30:74;;;;;;;;;;15278:186;;;15328:45;;-1:-1:-1;;;15328:45:74;;18389:2:103;15328:45:74;;;18371:21:103;18428:2;18408:18;;;18401:30;18467:34;18447:18;;;18440:62;-1:-1:-1;;;18518:18:103;;;18511:33;18561:19;;15328:45:74;18361:225:103;15278:186:74;15404:49;;-1:-1:-1;;;15404:49:74;;16770:2:103;15404:49:74;;;16752:21:103;16809:2;16789:18;;;16782:30;16848:34;16828:18;;;16821:62;-1:-1:-1;;;16899:18:103;;;16892:37;16946:19;;15404:49:74;16742:229:103;14318:176:74;14396:18;;;;:8;:18;;;;;:24;;;;:35;;14423:8;;-1:-1:-1;;14396:35:74;;;;;;14423:8;;14396:35;;;;;-1:-1:-1;;;14396:35:74;;;;;;;;;;;;;-1:-1:-1;;14441:18:74;;;;:8;:18;;;;;14472:15;14441:28;;;;:46;14318:176::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:512:103;;120:3;113:4;105:6;101:17;97:27;87:2;;142:5;135;128:20;87:2;175:6;169:13;201:18;197:2;194:26;191:2;;;223:18;;:::i;:::-;267:55;310:2;291:13;;-1:-1:-1;;287:27:103;316:4;283:38;267:55;:::i;:::-;347:2;338:7;331:19;393:3;386:4;381:2;373:6;369:15;365:26;362:35;359:2;;;414:5;407;400:20;359:2;431:64;492:2;485:4;476:7;472:18;465:4;457:6;453:17;431:64;:::i;:::-;513:7;77:449;-1:-1:-1;;;;77:449:103:o;531:160::-;623:13;;665:1;655:12;;645:2;;681:1;678;671:12;696:257;;808:2;796:9;787:7;783:23;779:32;776:2;;;829:6;821;814:22;776:2;873:9;860:23;892:31;917:5;892:31;:::i;958:261::-;;1081:2;1069:9;1060:7;1056:23;1052:32;1049:2;;;1102:6;1094;1087:22;1049:2;1139:9;1133:16;1158:31;1183:5;1158:31;:::i;1224:913::-;;;;;;1406:3;1394:9;1385:7;1381:23;1377:33;1374:2;;;1428:6;1420;1413:22;1374:2;1472:9;1459:23;1491:31;1516:5;1491:31;:::i;:::-;1541:5;-1:-1:-1;1593:2:103;1578:18;;1565:32;;-1:-1:-1;1648:2:103;1633:18;;1620:32;1671:18;1701:14;;;1698:2;;;1733:6;1725;1718:22;1698:2;1776:6;1765:9;1761:22;1751:32;;1821:7;1814:4;1810:2;1806:13;1802:27;1792:2;;1848:6;1840;1833:22;1792:2;1893;1880:16;1919:2;1911:6;1908:14;1905:2;;;1940:6;1932;1925:22;1905:2;1990:7;1985:2;1976:6;1972:2;1968:15;1964:24;1961:37;1958:2;;;2016:6;2008;2001:22;1958:2;1364:773;;;;-1:-1:-1;;2052:2:103;2044:11;;2127:2;2112:18;2099:32;;1364:773;-1:-1:-1;;;1364:773:103:o;2142:1025::-;;2291:2;2279:9;2270:7;2266:23;2262:32;2259:2;;;2312:6;2304;2297:22;2259:2;2350:9;2344:16;2379:18;2420:2;2412:6;2409:14;2406:2;;;2441:6;2433;2426:22;2406:2;2469:22;;;;2525:4;2507:16;;;2503:27;2500:2;;;2548:6;2540;2533:22;2500:2;2579:21;2595:4;2579:21;:::i;:::-;2630:2;2624:9;2642:33;2667:7;2642:33;:::i;:::-;2684:22;;2752:2;2744:11;;;2738:18;2722:14;;;2715:42;2789:55;2840:2;2832:11;;2789:55;:::i;:::-;2784:2;2777:5;2773:14;2766:79;2884:2;2880;2876:11;2870:18;2913:2;2903:8;2900:16;2897:2;;;2934:6;2926;2919:22;2897:2;2975:55;3022:7;3011:8;3007:2;3003:17;2975:55;:::i;:::-;2970:2;2963:5;2959:14;2952:79;;3078:3;3074:2;3070:12;3064:19;3058:3;3051:5;3047:15;3040:44;3131:3;3127:2;3123:12;3117:19;3111:3;3104:5;3100:15;3093:44;3156:5;3146:15;;;;;2249:918;;;;:::o;3172:841::-;;3297:3;3341:2;3329:9;3320:7;3316:23;3312:32;3309:2;;;3362:6;3354;3347:22;3309:2;3393:19;3409:2;3393:19;:::i;:::-;3380:32;;3435:53;3478:9;3435:53;:::i;:::-;3428:5;3421:68;3542:2;3531:9;3527:18;3521:25;3516:2;3509:5;3505:14;3498:49;3600:2;3589:9;3585:18;3579:25;3574:2;3567:5;3563:14;3556:49;3658:2;3647:9;3643:18;3637:25;3632:2;3625:5;3621:14;3614:49;3717:3;3706:9;3702:19;3696:26;3690:3;3683:5;3679:15;3672:51;3777:3;3766:9;3762:19;3756:26;3750:3;3743:5;3739:15;3732:51;3837:3;3826:9;3822:19;3816:26;3810:3;3803:5;3799:15;3792:51;3897:3;3886:9;3882:19;3876:26;3870:3;3863:5;3859:15;3852:51;3922:3;3978:2;3967:9;3963:18;3957:25;3952:2;3945:5;3941:14;3934:49;;4002:5;3992:15;;;3277:736;;;;:::o;4018:190::-;;4130:2;4118:9;4109:7;4105:23;4101:32;4098:2;;;4151:6;4143;4136:22;4098:2;-1:-1:-1;4179:23:103;;4088:120;-1:-1:-1;4088:120:103:o;4213:194::-;;4336:2;4324:9;4315:7;4311:23;4307:32;4304:2;;;4357:6;4349;4342:22;4304:2;-1:-1:-1;4385:16:103;;4294:113;-1:-1:-1;4294:113:103:o;4412:258::-;;;4541:2;4529:9;4520:7;4516:23;4512:32;4509:2;;;4562:6;4554;4547:22;4509:2;-1:-1:-1;;4590:23:103;;;4660:2;4645:18;;;4632:32;;-1:-1:-1;4499:171:103:o;4675:326::-;;;;4821:2;4809:9;4800:7;4796:23;4792:32;4789:2;;;4842:6;4834;4827:22;4789:2;-1:-1:-1;;4870:23:103;;;4940:2;4925:18;;4912:32;;-1:-1:-1;4991:2:103;4976:18;;;4963:32;;4779:222;-1:-1:-1;4779:222:103:o;5269:257::-;;5348:5;5342:12;5375:6;5370:3;5363:19;5391:63;5447:6;5440:4;5435:3;5431:14;5424:4;5417:5;5413:16;5391:63;:::i;:::-;5508:2;5487:15;-1:-1:-1;;5483:29:103;5474:39;;;;5515:4;5470:50;;5318:208;-1:-1:-1;;5318:208:103:o;5531:239::-;5614:1;5607:5;5604:12;5594:2;;5659:10;5654:3;5650:20;5647:1;5640:31;5694:4;5691:1;5684:15;5722:4;5719:1;5712:15;5594:2;5746:18;;5584:186::o;6165:217::-;;6312:2;6301:9;6294:21;6332:44;6372:2;6361:9;6357:18;6349:6;6332:44;:::i;6616:212::-;6764:2;6749:18;;6776:46;6753:9;6804:6;6776:46;:::i;11788:398::-;11990:2;11972:21;;;12029:2;12009:18;;;12002:30;12068:34;12063:2;12048:18;;12041:62;-1:-1:-1;;;12134:2:103;12119:18;;12112:32;12176:3;12161:19;;11962:224::o;22574:1080::-;;22751:2;22740:9;22733:21;22796:6;22790:13;22785:2;22774:9;22770:18;22763:41;22858:2;22850:6;22846:15;22840:22;22835:2;22824:9;22820:18;22813:50;22917:2;22909:6;22905:15;22899:22;22894:2;22883:9;22879:18;22872:50;22969:2;22961:6;22957:15;22951:22;22982:62;23039:3;23028:9;23024:19;23010:12;22982:62;:::i;:::-;;23093:3;23085:6;23081:16;23075:23;23117:6;23160:2;23154:3;23143:9;23139:19;23132:31;23186:53;23234:3;23223:9;23219:19;23203:14;23186:53;:::i;:::-;23172:67;;23294:3;23286:6;23282:16;23276:23;23270:3;23259:9;23255:19;23248:52;23355:3;23347:6;23343:16;23337:23;23331:3;23320:9;23316:19;23309:52;23398:3;23390:6;23386:16;23380:23;23422:3;23461:2;23456;23445:9;23441:18;23434:30;23501:2;23493:6;23489:15;23483:22;23473:32;;;23524:3;23563:2;23558;23547:9;23543:18;23536:30;23620:2;23612:6;23608:15;23602:22;23597:2;23586:9;23582:18;23575:50;;;;23642:6;23634:14;;;22723:931;;;;:::o;25262:389::-;25492:25;;;25480:2;25465:18;;25526:55;25577:2;25562:18;;25554:6;25526:55;:::i;:::-;25590;25641:2;25630:9;25626:18;25618:6;25590:55;:::i;25656:524::-;25929:25;;;25985:2;25970:18;;25963:34;;;-1:-1:-1;;;;;26033:32:103;;26028:2;26013:18;;26006:60;25916:3;25901:19;;26075:55;26126:2;26111:18;;26103:6;26075:55;:::i;:::-;26167:6;26161:3;26150:9;26146:19;26139:35;25883:297;;;;;;;;:::o;26185:275::-;26256:2;26250:9;26321:2;26302:13;;-1:-1:-1;;26298:27:103;26286:40;;26356:18;26341:34;;26377:22;;;26338:62;26335:2;;;26403:18;;:::i;:::-;26439:2;26432:22;26230:230;;-1:-1:-1;26230:230:103:o;26465:128::-;;26536:1;26532:6;26529:1;26526:13;26523:2;;;26542:18;;:::i;:::-;-1:-1:-1;26578:9:103;;26513:80::o;26598:125::-;;26666:1;26663;26660:8;26657:2;;;26671:18;;:::i;:::-;-1:-1:-1;26708:9:103;;26647:76::o;26728:258::-;26800:1;26810:113;26824:6;26821:1;26818:13;26810:113;;;26900:11;;;26894:18;26881:11;;;26874:39;26846:2;26839:10;26810:113;;;26941:6;26938:1;26935:13;26932:2;;;26976:1;26967:6;26962:3;26958:16;26951:27;26932:2;;26781:205;;;:::o;26991:380::-;27076:1;27066:12;;27123:1;27113:12;;;27134:2;;27188:4;27180:6;27176:17;27166:27;;27134:2;27241;27233:6;27230:14;27210:18;27207:38;27204:2;;;27287:10;27282:3;27278:20;27275:1;27268:31;27322:4;27319:1;27312:15;27350:4;27347:1;27340:15;27204:2;;27046:325;;;:::o;27376:135::-;;-1:-1:-1;;27436:17:103;;27433:2;;;27456:18;;:::i;:::-;-1:-1:-1;27503:1:103;27492:13;;27423:88::o;27516:127::-;27577:10;27572:3;27568:20;27565:1;27558:31;27608:4;27605:1;27598:15;27632:4;27629:1;27622:15;27648:127;27709:10;27704:3;27700:20;27697:1;27690:31;27740:4;27737:1;27730:15;27764:4;27761:1;27754:15;27780:131;-1:-1:-1;;;;;27855:31:103;;27845:42;;27835:2;;27901:1;27898;27891:12"},"methodIdentifiers":{"bundles()":"18442e63","burn(uint256)":"42966c68","close(uint256)":"0aebeb4e","collateralizePolicy(uint256,bytes32,uint256)":"4d03f9b7","create(address,uint256,bytes,uint256)":"c0e71404","defund(uint256,uint256)":"c397ae39","fund(uint256,uint256)":"a65e2cfd","getBalance(uint256)":"1e010439","getBundle(uint256)":"2d0821b7","getCapacity(uint256)":"bcd5349f","getFilter(uint256)":"2c92fb99","getOwner(uint256)":"c41a360a","getState(uint256)":"44c9af28","getToken()":"21df0da7","getTotalValueLocked(uint256)":"3f5d9235","initialize(address)":"c4d66de8","lock(uint256)":"dd467064","processPayout(uint256,bytes32,uint256)":"b299cc26","processPremium(uint256,bytes32,uint256)":"b7267420","releasePolicy(uint256,bytes32)":"bb540df6","unburntBundles(uint256)":"c559783e","unlock(uint256)":"6198e339"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundleCapitalProvided\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundleCapitalWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogBundlePayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundlePolicyCollateralized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundlePolicyReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"oldState\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"LogBundleStateChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"filter_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getFilter\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contract BundleToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"remainingCollateralAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"unburntBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract is used to manage bundles, which are collections of policies. - The contract imports other Solidity contracts such as `PolicyController.sol`, `CoreController.sol`, and `BundleToken.sol`. - The contract implements the `IBundle` interface and extends the `CoreController` contract. - It defines several mappings to store information about bundles, active policies, locked capital per policy, and the number of unburt bundles for each risk pool. - There is a private variable `_bundleCount` to keep track of the number of bundles created. - The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`. Functions: - `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment. - `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token. - `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance. - `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle. - `lock()`: Locks a bundle of assets by changing its state to \\\"Locked.\\\" - `unlock()`: Unlocks a bundle, changing its state back to \\\"Active.\\\" - `close()`: Closes a bundle of policies. - `burn()`: Burns a bundle, changing its state to \\\"Burned.\\\" - `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. - `processPremium()`: Processes the premium payment for a given bundle and updates its balance. - `processPayout()`: Processes a payout for a policy from a bundle. - `releasePolicy()`: Releases a policy and updates the bundle's capital. The contract includes various modifiers and event emitters to enforce access control and emit relevant events. Overall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/BundleController.sol\":\"BundleController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/modules/ComponentController.sol":{"ComponentController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archiveFromComponentOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archiveFromInstanceOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"components","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getComponent","outputs":[{"internalType":"contract IComponent","name":"component","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"componentAddress","type":"address"}],"name":"getComponentId","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getComponentState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"componentState","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getComponentType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getOracleId","outputs":[{"internalType":"uint256","name":"oracleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"}],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"_policyFlow","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getProductId","outputs":[{"internalType":"uint256","name":"productId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"}],"name":"getRequiredRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracles","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"products","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IComponent","name":"component","type":"address"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"resume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"riskpools","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"suspend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6121f980620000ee6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636bc607b3116100f9578063ba80b8ed11610097578063dd51c86a11610071578063dd51c86a146103a9578063e61ae297146103c9578063fabc1cbc146103dc578063ff3f3883146103ef576101a9565b8063ba80b8ed1461037b578063c4d66de81461038e578063c71e261f146103a1576101a9565b8063a054381f116100d3578063a054381f14610345578063a5c0f5a11461034d578063b759f95414610360578063ba62fbe414610373576101a9565b80636bc607b31461030c5780639f77a6051461031f578063a0355f4e14610332576101a9565b80633920200c116101665780634f27da18116101405780634f27da18146102735780634f558e791461029e5780635af89a47146102c95780635e966e45146102dc576101a9565b80633920200c1461023a578063414000b51461024d5780634b86584614610260576101a9565b806301267951146101ae57806309f63ed9146101c35780630f5da3a6146101eb578063136439dd146101fe5780632857373a146102115780632b1c7f7314610227575b600080fd5b6101c16101bc366004611f6e565b610402565b005b6101d66101d136600461201d565b610739565b60405190151581526020015b60405180910390f35b6101c16101f936600461201d565b61074e565b6101c161020c36600461201d565b610827565b6102196108fe565b6040519081526020016101e2565b610219610235366004611f6e565b61090f565b6101d661024836600461201d565b6109da565b6101c161025b36600461201d565b6109e7565b6101c161026e36600461201d565b610ac0565b61028661028136600461201d565b610b99565b6040516001600160a01b0390911681526020016101e2565b6101d66102ac36600461201d565b6000908152600260205260409020546001600160a01b0316151590565b6102196102d7366004611fe5565b610c09565b6102ff6102ea36600461201d565b60009081526005602052604090205460ff1690565b6040516101e29190612088565b6101c161031a36600461201d565b610e00565b61021961032d36600461201d565b610e51565b6101c161034036600461201d565b610e5e565b610219610f37565b61021961035b36600461201d565b610f43565b6101c161036e36600461201d565b610f50565b600c54610219565b6101d661038936600461201d565b6110d5565b6101c161039c366004611f6e565b6110e2565b610219611260565b6103bc6103b736600461201d565b61126c565b6040516101e29190612096565b6102866103d736600461201d565b611309565b6101c16103ea36600461201d565b61137c565b6102196103fd36600461201d565b611453565b61042374436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b03161461045c5760405162461bcd60e51b8152600401610453906120ef565b60405180910390fd5b6001600160a01b038116600090815260046020526040902054156104d15760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4343522d3030333a434f4d504f4e454e545f414c52454144595f60448201526545584953545360d01b6064820152608401610453565b60036000826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190611fcd565b8152602001908152602001600020546000146105b85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4343522d3030343a434f4d504f4e454e545f4e414d455f414c5260448201526a454144595f45584953545360a81b6064820152608401610453565b60006105c382611548565b90507fd9b3d18a6293c46c667fe6a98468c457078489f2e16e356bb4c77bb2e22d2016826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561061f57600080fd5b505afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106579190611fcd565b836001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c89190612001565b84846040516106da9493929190612059565b60405180910390a1816001600160a01b031663638ce0ba6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050505050565b6000610746600883611830565b90505b919050565b61077176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120a4565b6107ac81600661184d565b6040518181527f9e6d5f1811033619318d2fbe9ee7ec46c830175b39f7885248b51e0decb5837a9060200160405180910390a160006107ea82610b99565b9050806001600160a01b031663be169e7e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b61084874436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146108785760405162461bcd60e51b8152600401610453906120ef565b61088381600461184d565b6040518181527f45dbc7e529df39b8d70de83cc9e1d38c088e6ba21ab836e976f7310f1cbb8afd9060200160405180910390a160006108c182610b99565b9050806001600160a01b031663d73cd9926040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a60086118e7565b905090565b60006001600160a01b0382166109735760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3030363a434f4d504f4e454e545f414444524553535f6044820152635a45524f60e01b6064820152608401610453565b506001600160a01b038116600090815260046020526040902054806107495760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4343522d3030373a434f4d504f4e454e545f554e4b4e4f574e006044820152606401610453565b6000610746600683611830565b610a0a76496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610a3a5760405162461bcd60e51b8152600401610453906120a4565b610a4581600361184d565b6040518181527fd24597f0a62b78258ebd8c2fa52051cf673a5000d14d2fb619c91b1ed95c538a9060200160405180910390a16000610a8382610b99565b9050806001600160a01b031663a18f5ae26040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b610ae376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610b135760405162461bcd60e51b8152600401610453906120a4565b610b1e81600561184d565b6040518181527f55d2d8495549e354e6ee012c5aa183eb0e08ee2f256349afb0f7f74d1940f9b39060200160405180910390a16000610b5c82610b99565b9050806001600160a01b031663b3fca9bd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000818152600260205260409020546001600160a01b0316806107495760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030353a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b60006001826002811115610c2d57634e487b7160e01b600052602160045260246000fd5b1415610cc057600160009054906101000a90046001600160a01b03166001600160a01b031663775a40486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b505afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190611fcd565b9050610749565b6000826002811115610ce257634e487b7160e01b600052602160045260246000fd5b1415610d3657600160009054906101000a90046001600160a01b03166001600160a01b031663d49d21c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b6002826002811115610d5857634e487b7160e01b600052602160045260246000fd5b1415610dac57600160009054906101000a90046001600160a01b03166001600160a01b0316633ffdd2f36040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b60405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3031303a434f4d504f4e454e545f545950455f554e4b6044820152632727aba760e11b6064820152608401610453565b610e2174436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120ef565b60006107466006836118f1565b610e8176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610eb15760405162461bcd60e51b8152600401610453906120a4565b610ebc81600261184d565b6040518181527fd541b5f22e9e402fb32220d566405510c49372d27b4f47f1d0da1a153ea2007c9060200160405180910390a16000610efa82610b99565b9050806001600160a01b031663bd1fe5d06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a600a6118e7565b60006107466008836118f1565b610f7376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610fa35760405162461bcd60e51b8152600401610453906120a4565b610fae81600361184d565b6000610fb982610b99565b9050610fc4826109da565b1561106757806001600160a01b031663637d08f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190611f91565b6000838152600d6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b6040518281527ff8d33755281aa5d41b12a70ae3947ee164ef541d786400d733b0b89df719859e9060200160405180910390a1806001600160a01b0316631b867c636040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a83611830565b600054610100900460ff16158080156111025750600054600160ff909116105b8061111c5750303b15801561111c575060005460ff166001145b61117f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff1916600117905580156111a2576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111cc600090565b6541636365737360d01b1461120e576111ed6541636365737360d01b611460565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6112166118fd565b801561125c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061090a60066118e7565b6000611279600683611830565b1561128657506001610749565b611291600883611830565b1561129e57506000610749565b6112a9600a83611830565b156112b657506002610749565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030383a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b6000611314826109da565b6113605760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4343522d3031313a554e4b4e4f574e5f50524f445543545f49446044820152606401610453565b506000908152600d60205260409020546001600160a01b031690565b61139d74436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146113cd5760405162461bcd60e51b8152600401610453906120ef565b6113d881600361184d565b6040518181527f8e78ca4cc29c505d9901fd1582ba8584083396ce204151eddd3e008749a24fe09060200160405180910390a1600061141682610b99565b9050806001600160a01b03166359dacc6a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a836118f1565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156114aa57600080fd5b505afa1580156114be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e29190611f91565b90506001600160a01b0381166107495760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610453565b600c80546000918261155983612161565b9190505550600c54905061156e81600161184d565b60405163d0e0ba9560e01b8152600481018290526001600160a01b0383169063d0e0ba9590602401600060405180830381600087803b1580156115b057600080fd5b505af11580156115c4573d6000803e3d6000fd5b505050600082815260026020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516305f5f79f60e21b815291518695506003949391926317d7de7c926004808301939192829003018186803b15801561162d57600080fd5b505afa158015611641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116659190611fcd565b8152602001908152602001600020819055508060046000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663e0815f0d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116da57600080fd5b505afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190611fad565b156117285761172260068261196a565b50610749565b816001600160a01b0316639a82f8906040518163ffffffff1660e01b815260040160206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190611fad565b156117a95761172260088261196a565b816001600160a01b031663258d560c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117e257600080fd5b505afa1580156117f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181a9190611fad565b156107495761182a600a8261196a565b50919050565b600081815260018301602052604081205415155b90505b92915050565b60008281526005602052604090205460ff166118698183611976565b6000838152600560205260409020805483919060ff191660018360068111156118a257634e487b7160e01b600052602160045260246000fd5b02179055507fd2248d3e400f6333d5de6d43446115557cb942e75002aa7ad26f9cac9b105b1a8382846040516118da93929190612138565b60405180910390a1505050565b6000610746825490565b60006118448383611ee7565b600054610100900460ff166119685760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610453565b565b60006118448383611f1f565b81600681111561199657634e487b7160e01b600052602160045260246000fd5b8160068111156119b657634e487b7160e01b600052602160045260246000fd5b1415611a1c5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4343522d3032303a534f555243455f414e445f5441524745545f60448201526e14d510551157d2511153951250d053608a1b6064820152608401610453565b6000826006811115611a3e57634e487b7160e01b600052602160045260246000fd5b1415611ac9576001816006811115611a6657634e487b7160e01b600052602160045260246000fd5b14611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d3032313a435245415445445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b61125c565b6001826006811115611aeb57634e487b7160e01b600052602160045260246000fd5b1415611b9b576003816006811115611b1357634e487b7160e01b600052602160045260246000fd5b1480611b3e57506002816006811115611b3c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d32323a50524f504f5345445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b6002826006811115611bbd57634e487b7160e01b600052602160045260246000fd5b1415611c195760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4343522d3032333a4445434c494e45445f49535f46494e414c5f604482015264535441544560d81b6064820152608401610453565b6003826006811115611c3b57634e487b7160e01b600052602160045260246000fd5b1415611cea576004816006811115611c6357634e487b7160e01b600052602160045260246000fd5b1480611c8e57506005816006811115611c8c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032343a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6004826006811115611d0c57634e487b7160e01b600052602160045260246000fd5b1415611dbb576003816006811115611d3457634e487b7160e01b600052602160045260246000fd5b1480611d5f57506006816006811115611d5d57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032353a5041555345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6005826006811115611ddd57634e487b7160e01b600052602160045260246000fd5b1415611e8f576003816006811115611e0557634e487b7160e01b600052602160045260246000fd5b1480611e3057506006816006811115611e2e57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a4343522d3032363a53555350454e4445445f494e56414c49445f6044820152692a2920a729a4aa24a7a760b11b6064820152608401610453565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032373a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610453565b6000826000018281548110611f0c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054611f6657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611847565b506000611847565b600060208284031215611f7f578081fd5b8135611f8a8161219e565b9392505050565b600060208284031215611fa2578081fd5b8151611f8a8161219e565b600060208284031215611fbe578081fd5b81518015158114611f8a578182fd5b600060208284031215611fde578081fd5b5051919050565b600060208284031215611ff6578081fd5b8135611f8a816121b6565b600060208284031215612012578081fd5b8151611f8a816121b6565b60006020828403121561202e578081fd5b5035919050565b6007811061204557612045612188565b9052565b6003811061204557612045612188565b8481526080810161206d6020830186612049565b6001600160a01b039390931660408201526060015292915050565b602081016118478284612035565b602081016118478284612049565b6020808252602b908201527f4552524f523a4343522d3030323a4e4f545f494e5354414e43455f4f5045524160408201526a544f525f5345525649434560a81b606082015260800190565b60208082526029908201527f4552524f523a4343522d3030313a4e4f545f434f4d504f4e454e545f4f574e45604082015268525f5345525649434560b81b606082015260800190565b8381526060810161214c6020830185612035565b6121596040830184612035565b949350505050565b600060001982141561218157634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146121b357600080fd5b50565b600381106121b357600080fdfea26469706673582212207b6d7253c522420b015643d5d348125e0e3e34a0bb911fa3cf3939a9d465163864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x21F9 DUP1 PUSH3 0xEE PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BC607B3 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xBA80B8ED GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xDD51C86A GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xDD51C86A EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xE61AE297 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0xFABC1CBC EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0xFF3F3883 EQ PUSH2 0x3EF JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xBA80B8ED EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0xC71E261F EQ PUSH2 0x3A1 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xA054381F GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xA5C0F5A1 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xB759F954 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0xBA62FBE4 EQ PUSH2 0x373 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x6BC607B3 EQ PUSH2 0x30C JUMPI DUP1 PUSH4 0x9F77A605 EQ PUSH2 0x31F JUMPI DUP1 PUSH4 0xA0355F4E EQ PUSH2 0x332 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x3920200C GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x4F27DA18 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x4F27DA18 EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x4F558E79 EQ PUSH2 0x29E JUMPI DUP1 PUSH4 0x5AF89A47 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x5E966E45 EQ PUSH2 0x2DC JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x3920200C EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x414000B5 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x4B865846 EQ PUSH2 0x260 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x1267951 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x9F63ED9 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xF5DA3A6 EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x136439DD EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x2857373A EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x2B1C7F73 EQ PUSH2 0x227 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x402 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1D6 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x739 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C1 PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x74E JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E2 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x235 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x90F JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x9E7 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xAC0 JUMP JUMPDEST PUSH2 0x286 PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xB99 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x2AC CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1FE5 JUMP JUMPDEST PUSH2 0xC09 JUMP JUMPDEST PUSH2 0x2FF PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x2088 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x31A CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE00 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x32D CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE51 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x340 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE5E JUMP JUMPDEST PUSH2 0x219 PUSH2 0xF37 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x35B CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x36E CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xF50 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x219 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x10D5 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x10E2 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x1260 JUMP JUMPDEST PUSH2 0x3BC PUSH2 0x3B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x126C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x2096 JUMP JUMPDEST PUSH2 0x286 PUSH2 0x3D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x1309 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x137C JUMP JUMPDEST PUSH2 0x219 PUSH2 0x3FD CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x1453 JUMP JUMPDEST PUSH2 0x423 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x45C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030333A434F4D504F4E454E545F414C52454144595F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x455849535453 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x17D7DE7C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x522 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x0 EQ PUSH2 0x5B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030343A434F4D504F4E454E545F4E414D455F414C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x454144595F455849535453 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C3 DUP3 PUSH2 0x1548 JUMP JUMPDEST SWAP1 POP PUSH32 0xD9B3D18A6293C46C667FE6A98468C457078489F2E16E356BB4C77BB2E22D2016 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x17D7DE7C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x61F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x633 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x657 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x15DAE03E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x690 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6C8 SWAP2 SWAP1 PUSH2 0x2001 JUMP JUMPDEST DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x6DA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x638CE0BA PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x731 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x8 DUP4 PUSH2 0x1830 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x771 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0x7AC DUP2 PUSH1 0x6 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x9E6D5F1811033619318D2FBE9EE7EC46C830175B39F7885248B51E0DECB5837A SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x7EA DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBE169E7E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x848 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x878 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH2 0x883 DUP2 PUSH1 0x4 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x45DBC7E529DF39B8D70DE83CC9E1D38C088E6BA21AB836E976F7310F1CBB8AFD SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x8C1 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD73CD992 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0x8 PUSH2 0x18E7 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x973 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030363A434F4D504F4E454E545F414444524553535F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5A45524F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030373A434F4D504F4E454E545F554E4B4E4F574E00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x6 DUP4 PUSH2 0x1830 JUMP JUMPDEST PUSH2 0xA0A PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA3A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xD24597F0A62B78258EBD8C2FA52051CF673A5000D14D2FB619C91B1ED95C538A SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xA83 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA18F5AE2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAE3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xB1E DUP2 PUSH1 0x5 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x55D2D8495549E354E6EE012C5AA183EB0E08EE2F256349AFB0F7F74D1940F9B3 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xB5C DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3FCA9BD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030353A494E56414C49445F434F4D504F4E454E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xCC0 JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x775A4048 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCB9 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST SWAP1 POP PUSH2 0x749 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCE2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xD36 JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD49D21C0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xDAC JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3FFDD2F3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3031303A434F4D504F4E454E545F545950455F554E4B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x2727ABA7 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH2 0xE21 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x6 DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH2 0xE81 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xEB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xEBC DUP2 PUSH1 0x2 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xD541B5F22E9E402FB32220D566405510C49372D27B4F47F1D0DA1A153EA2007C SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xEFA DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBD1FE5D0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0xA PUSH2 0x18E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x8 DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH2 0xF73 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xFAE DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFB9 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP PUSH2 0xFC4 DUP3 PUSH2 0x9DA JUMP JUMPDEST ISZERO PUSH2 0x1067 JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x637D08F4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1002 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1016 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x103A SWAP2 SWAP1 PUSH2 0x1F91 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xF8D33755281AA5D41B12A70AE3947EE164EF541D786400D733B0B89DF719859E SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1B867C63 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0xA DUP4 PUSH2 0x1830 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1102 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x111C JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x111C JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x117F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x11A2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x11CC PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x120E JUMPI PUSH2 0x11ED PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1216 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x125C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0x6 PUSH2 0x18E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1279 PUSH1 0x6 DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x1286 JUMPI POP PUSH1 0x1 PUSH2 0x749 JUMP JUMPDEST PUSH2 0x1291 PUSH1 0x8 DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x129E JUMPI POP PUSH1 0x0 PUSH2 0x749 JUMP JUMPDEST PUSH2 0x12A9 PUSH1 0xA DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x12B6 JUMPI POP PUSH1 0x2 PUSH2 0x749 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030383A494E56414C49445F434F4D504F4E454E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1314 DUP3 PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x1360 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3031313A554E4B4E4F574E5F50524F445543545F4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x453 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x139D PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH2 0x13D8 DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x8E78CA4CC29C505D9901FD1582BA8584083396CE204151EDDD3E008749A24FE0 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x1416 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x59DACC6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0xA DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14E2 SWAP2 SWAP1 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0x0 SWAP2 DUP3 PUSH2 0x1559 DUP4 PUSH2 0x2161 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0xC SLOAD SWAP1 POP PUSH2 0x156E DUP2 PUSH1 0x1 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD0E0BA95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xD0E0BA95 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 MLOAD PUSH4 0x5F5F79F PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 MLOAD DUP7 SWAP6 POP PUSH1 0x3 SWAP5 SWAP4 SWAP2 SWAP3 PUSH4 0x17D7DE7C SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x162D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1665 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE0815F0D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1712 SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x1728 JUMPI PUSH2 0x1722 PUSH1 0x6 DUP3 PUSH2 0x196A JUMP JUMPDEST POP PUSH2 0x749 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9A82F890 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1775 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1799 SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x17A9 JUMPI PUSH2 0x1722 PUSH1 0x8 DUP3 PUSH2 0x196A JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x258D560C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x181A SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x749 JUMPI PUSH2 0x182A PUSH1 0xA DUP3 PUSH2 0x196A JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1869 DUP2 DUP4 PUSH2 0x1976 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SWAP2 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x18A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH32 0xD2248D3E400F6333D5DE6D43446115557CB942E75002AA7AD26F9CAC9B105B1A DUP4 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0x18DA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2138 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1844 DUP4 DUP4 PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1968 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1844 DUP4 DUP4 PUSH2 0x1F1F JUMP JUMPDEST DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1996 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x19B6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1A1C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032303A534F555243455F414E445F5441524745545F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x14D510551157D2511153951250D053 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1A3E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1AC9 JUMPI PUSH1 0x1 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1A66 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032313A435245415445445F494E56414C49445F5452 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x20A729A4AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH2 0x125C JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1AEB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1B9B JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B13 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1B3E JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B3C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D32323A50524F504F5345445F494E56414C49445F5452 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x20A729A4AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1BBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1C19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032333A4445434C494E45445F49535F46494E414C5F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5354415445 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1CEA JUMPI PUSH1 0x4 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C63 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1C8E JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C8C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032343A4143544956455F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x4 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D0C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D34 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1D5F JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D5D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032353A5041555345445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x5 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1DDD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1E8F JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1E05 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1E30 JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1E2E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032363A53555350454E4445445F494E56414C49445F PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x2A2920A729A4AA24A7A7 PUSH1 0xB1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032373A494E495449414C5F53544154455F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12105391131151 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1F0C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1F66 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1847 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1847 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F7F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F8A DUP2 PUSH2 0x219E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FA2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1F8A DUP2 PUSH2 0x219E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FBE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1F8A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FDE JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FF6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F8A DUP2 PUSH2 0x21B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2012 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1F8A DUP2 PUSH2 0x21B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x202E JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x2045 JUMPI PUSH2 0x2045 PUSH2 0x2188 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2045 JUMPI PUSH2 0x2045 PUSH2 0x2188 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x206D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1847 DUP3 DUP5 PUSH2 0x2035 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1847 DUP3 DUP5 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030323A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x544F525F53455256494345 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x29 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030313A4E4F545F434F4D504F4E454E545F4F574E45 PUSH1 0x40 DUP3 ADD MSTORE PUSH9 0x525F53455256494345 PUSH1 0xB8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x214C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2035 JUMP JUMPDEST PUSH2 0x2159 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2035 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2181 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x21B3 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x6D7253C522420B015643D5D348125E0E3E34A0BB911FA3CF3939A9D4 PUSH6 0x163864736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"4013:11230:75:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;4013:11230:75;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;4013:11230:75;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:14014:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"620:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"666:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"675:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"683:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"668:6:103"},"nodeType":"YulFunctionCall","src":"668:22:103"},"nodeType":"YulExpressionStatement","src":"668:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"641:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"650:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"637:3:103"},"nodeType":"YulFunctionCall","src":"637:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"662:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"633:3:103"},"nodeType":"YulFunctionCall","src":"633:32:103"},"nodeType":"YulIf","src":"630:2:103"},{"nodeType":"YulVariableDeclaration","src":"701:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"720:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"714:5:103"},"nodeType":"YulFunctionCall","src":"714:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"705:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"783:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"800:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"785:6:103"},"nodeType":"YulFunctionCall","src":"785:22:103"},"nodeType":"YulExpressionStatement","src":"785:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"752:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"773:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"766:6:103"},"nodeType":"YulFunctionCall","src":"766:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"759:6:103"},"nodeType":"YulFunctionCall","src":"759:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"749:2:103"},"nodeType":"YulFunctionCall","src":"749:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"742:6:103"},"nodeType":"YulFunctionCall","src":"742:40:103"},"nodeType":"YulIf","src":"739:2:103"},{"nodeType":"YulAssignment","src":"818:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"828:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"818:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"586:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"597:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"609:6:103","type":""}],"src":"542:297:103"},{"body":{"nodeType":"YulBlock","src":"925:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"971:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"980:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"988:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"973:6:103"},"nodeType":"YulFunctionCall","src":"973:22:103"},"nodeType":"YulExpressionStatement","src":"973:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"946:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"955:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"942:3:103"},"nodeType":"YulFunctionCall","src":"942:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"967:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"938:3:103"},"nodeType":"YulFunctionCall","src":"938:32:103"},"nodeType":"YulIf","src":"935:2:103"},{"nodeType":"YulAssignment","src":"1006:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1022:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1016:5:103"},"nodeType":"YulFunctionCall","src":"1016:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1006:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"891:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"902:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"914:6:103","type":""}],"src":"844:194:103"},{"body":{"nodeType":"YulBlock","src":"1132:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1178:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1187:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1195:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1180:6:103"},"nodeType":"YulFunctionCall","src":"1180:22:103"},"nodeType":"YulExpressionStatement","src":"1180:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1153:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1162:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1149:3:103"},"nodeType":"YulFunctionCall","src":"1149:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1174:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1145:3:103"},"nodeType":"YulFunctionCall","src":"1145:32:103"},"nodeType":"YulIf","src":"1142:2:103"},{"nodeType":"YulVariableDeclaration","src":"1213:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1239:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1226:12:103"},"nodeType":"YulFunctionCall","src":"1226:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1217:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1283:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1258:24:103"},"nodeType":"YulFunctionCall","src":"1258:31:103"},"nodeType":"YulExpressionStatement","src":"1258:31:103"},{"nodeType":"YulAssignment","src":"1298:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1308:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1298:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1098:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1109:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1121:6:103","type":""}],"src":"1043:276:103"},{"body":{"nodeType":"YulBlock","src":"1412:198:103","statements":[{"body":{"nodeType":"YulBlock","src":"1458:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1467:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1475:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1460:6:103"},"nodeType":"YulFunctionCall","src":"1460:22:103"},"nodeType":"YulExpressionStatement","src":"1460:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1433:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1442:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1429:3:103"},"nodeType":"YulFunctionCall","src":"1429:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1454:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1425:3:103"},"nodeType":"YulFunctionCall","src":"1425:32:103"},"nodeType":"YulIf","src":"1422:2:103"},{"nodeType":"YulVariableDeclaration","src":"1493:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1519:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1506:12:103"},"nodeType":"YulFunctionCall","src":"1506:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1497:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1574:5:103"}],"functionName":{"name":"validator_revert_enum_ComponentType","nodeType":"YulIdentifier","src":"1538:35:103"},"nodeType":"YulFunctionCall","src":"1538:42:103"},"nodeType":"YulExpressionStatement","src":"1538:42:103"},{"nodeType":"YulAssignment","src":"1589:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1599:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1589:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1378:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1389:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1401:6:103","type":""}],"src":"1324:286:103"},{"body":{"nodeType":"YulBlock","src":"1714:191:103","statements":[{"body":{"nodeType":"YulBlock","src":"1760:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1769:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1777:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1762:6:103"},"nodeType":"YulFunctionCall","src":"1762:22:103"},"nodeType":"YulExpressionStatement","src":"1762:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1735:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1744:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1731:3:103"},"nodeType":"YulFunctionCall","src":"1731:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1756:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1727:3:103"},"nodeType":"YulFunctionCall","src":"1727:32:103"},"nodeType":"YulIf","src":"1724:2:103"},{"nodeType":"YulVariableDeclaration","src":"1795:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1814:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1808:5:103"},"nodeType":"YulFunctionCall","src":"1808:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1799:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1869:5:103"}],"functionName":{"name":"validator_revert_enum_ComponentType","nodeType":"YulIdentifier","src":"1833:35:103"},"nodeType":"YulFunctionCall","src":"1833:42:103"},"nodeType":"YulExpressionStatement","src":"1833:42:103"},{"nodeType":"YulAssignment","src":"1884:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1894:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1884:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1680:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1691:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1703:6:103","type":""}],"src":"1615:290:103"},{"body":{"nodeType":"YulBlock","src":"1980:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2026:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2035:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2043:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2028:6:103"},"nodeType":"YulFunctionCall","src":"2028:22:103"},"nodeType":"YulExpressionStatement","src":"2028:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2001:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2010:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1997:3:103"},"nodeType":"YulFunctionCall","src":"1997:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2022:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1993:3:103"},"nodeType":"YulFunctionCall","src":"1993:32:103"},"nodeType":"YulIf","src":"1990:2:103"},{"nodeType":"YulAssignment","src":"2061:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2084:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2071:12:103"},"nodeType":"YulFunctionCall","src":"2071:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2061:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1946:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1957:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1969:6:103","type":""}],"src":"1910:190:103"},{"body":{"nodeType":"YulBlock","src":"2161:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"2195:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"2197:16:103"},"nodeType":"YulFunctionCall","src":"2197:18:103"},"nodeType":"YulExpressionStatement","src":"2197:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2184:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2191:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2181:2:103"},"nodeType":"YulFunctionCall","src":"2181:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2174:6:103"},"nodeType":"YulFunctionCall","src":"2174:20:103"},"nodeType":"YulIf","src":"2171:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2233:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"2238:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2226:6:103"},"nodeType":"YulFunctionCall","src":"2226:18:103"},"nodeType":"YulExpressionStatement","src":"2226:18:103"}]},"name":"abi_encode_enum_ComponentState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2145:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2152:3:103","type":""}],"src":"2105:145:103"},{"body":{"nodeType":"YulBlock","src":"2310:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"2344:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"2346:16:103"},"nodeType":"YulFunctionCall","src":"2346:18:103"},"nodeType":"YulExpressionStatement","src":"2346:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2333:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2340:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2330:2:103"},"nodeType":"YulFunctionCall","src":"2330:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2323:6:103"},"nodeType":"YulFunctionCall","src":"2323:20:103"},"nodeType":"YulIf","src":"2320:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2382:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"2387:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2375:6:103"},"nodeType":"YulFunctionCall","src":"2375:18:103"},"nodeType":"YulExpressionStatement","src":"2375:18:103"}]},"name":"abi_encode_enum_ComponentType","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2294:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2301:3:103","type":""}],"src":"2255:144:103"},{"body":{"nodeType":"YulBlock","src":"2505:102:103","statements":[{"nodeType":"YulAssignment","src":"2515:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2527:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2538:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2523:3:103"},"nodeType":"YulFunctionCall","src":"2523:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2515:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2557:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2572:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2588:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2593:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2584:3:103"},"nodeType":"YulFunctionCall","src":"2584:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2597:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2580:3:103"},"nodeType":"YulFunctionCall","src":"2580:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2568:3:103"},"nodeType":"YulFunctionCall","src":"2568:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2550:6:103"},"nodeType":"YulFunctionCall","src":"2550:51:103"},"nodeType":"YulExpressionStatement","src":"2550:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2474:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2485:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2496:4:103","type":""}],"src":"2404:203:103"},{"body":{"nodeType":"YulBlock","src":"2707:92:103","statements":[{"nodeType":"YulAssignment","src":"2717:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2729:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2740:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2725:3:103"},"nodeType":"YulFunctionCall","src":"2725:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2717:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2759:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2784:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2777:6:103"},"nodeType":"YulFunctionCall","src":"2777:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2770:6:103"},"nodeType":"YulFunctionCall","src":"2770:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2752:6:103"},"nodeType":"YulFunctionCall","src":"2752:41:103"},"nodeType":"YulExpressionStatement","src":"2752:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2676:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2687:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2698:4:103","type":""}],"src":"2612:187:103"},{"body":{"nodeType":"YulBlock","src":"2905:76:103","statements":[{"nodeType":"YulAssignment","src":"2915:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2927:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2938:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2923:3:103"},"nodeType":"YulFunctionCall","src":"2923:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2915:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2957:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2968:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2950:6:103"},"nodeType":"YulFunctionCall","src":"2950:25:103"},"nodeType":"YulExpressionStatement","src":"2950:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2874:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2885:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2896:4:103","type":""}],"src":"2804:177:103"},{"body":{"nodeType":"YulBlock","src":"3187:255:103","statements":[{"nodeType":"YulAssignment","src":"3197:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3209:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3220:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3205:3:103"},"nodeType":"YulFunctionCall","src":"3205:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3197:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3240:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3251:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3233:6:103"},"nodeType":"YulFunctionCall","src":"3233:25:103"},"nodeType":"YulExpressionStatement","src":"3233:25:103"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3297:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3309:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3320:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3305:3:103"},"nodeType":"YulFunctionCall","src":"3305:18:103"}],"functionName":{"name":"abi_encode_enum_ComponentType","nodeType":"YulIdentifier","src":"3267:29:103"},"nodeType":"YulFunctionCall","src":"3267:57:103"},"nodeType":"YulExpressionStatement","src":"3267:57:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3340:3:103"},"nodeType":"YulFunctionCall","src":"3340:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3364:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3380:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3385:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3376:3:103"},"nodeType":"YulFunctionCall","src":"3376:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3389:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3372:3:103"},"nodeType":"YulFunctionCall","src":"3372:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3360:3:103"},"nodeType":"YulFunctionCall","src":"3360:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3333:6:103"},"nodeType":"YulFunctionCall","src":"3333:60:103"},"nodeType":"YulExpressionStatement","src":"3333:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3413:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3424:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3409:3:103"},"nodeType":"YulFunctionCall","src":"3409:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"3429:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3402:6:103"},"nodeType":"YulFunctionCall","src":"3402:34:103"},"nodeType":"YulExpressionStatement","src":"3402:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_uint256__to_t_bytes32_t_uint8_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3132:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3143:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3151:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3159:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3167:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3178:4:103","type":""}],"src":"2986:456:103"},{"body":{"nodeType":"YulBlock","src":"3567:102:103","statements":[{"nodeType":"YulAssignment","src":"3577:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3589:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3600:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3585:3:103"},"nodeType":"YulFunctionCall","src":"3585:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3577:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3619:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3634:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3650:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3655:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3646:3:103"},"nodeType":"YulFunctionCall","src":"3646:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3659:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3642:3:103"},"nodeType":"YulFunctionCall","src":"3642:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3630:3:103"},"nodeType":"YulFunctionCall","src":"3630:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3612:6:103"},"nodeType":"YulFunctionCall","src":"3612:51:103"},"nodeType":"YulExpressionStatement","src":"3612:51:103"}]},"name":"abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3536:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3547:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3558:4:103","type":""}],"src":"3447:222:103"},{"body":{"nodeType":"YulBlock","src":"3792:100:103","statements":[{"nodeType":"YulAssignment","src":"3802:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3825:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3810:3:103"},"nodeType":"YulFunctionCall","src":"3810:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3802:4:103"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3868:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3876:9:103"}],"functionName":{"name":"abi_encode_enum_ComponentState","nodeType":"YulIdentifier","src":"3837:30:103"},"nodeType":"YulFunctionCall","src":"3837:49:103"},"nodeType":"YulExpressionStatement","src":"3837:49:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3761:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3772:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3783:4:103","type":""}],"src":"3674:218:103"},{"body":{"nodeType":"YulBlock","src":"4014:99:103","statements":[{"nodeType":"YulAssignment","src":"4024:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4047:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4032:3:103"},"nodeType":"YulFunctionCall","src":"4032:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4024:4:103"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4089:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4097:9:103"}],"functionName":{"name":"abi_encode_enum_ComponentType","nodeType":"YulIdentifier","src":"4059:29:103"},"nodeType":"YulFunctionCall","src":"4059:48:103"},"nodeType":"YulExpressionStatement","src":"4059:48:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3983:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3994:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4005:4:103","type":""}],"src":"3897:216:103"},{"body":{"nodeType":"YulBlock","src":"4225:87:103","statements":[{"nodeType":"YulAssignment","src":"4235:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4247:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4258:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4243:3:103"},"nodeType":"YulFunctionCall","src":"4243:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4235:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4277:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4292:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4300:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4288:3:103"},"nodeType":"YulFunctionCall","src":"4288:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4270:6:103"},"nodeType":"YulFunctionCall","src":"4270:36:103"},"nodeType":"YulExpressionStatement","src":"4270:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4194:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4205:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4216:4:103","type":""}],"src":"4118:194:103"},{"body":{"nodeType":"YulBlock","src":"4491:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4508:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4519:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4501:6:103"},"nodeType":"YulFunctionCall","src":"4501:21:103"},"nodeType":"YulExpressionStatement","src":"4501:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4553:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4538:3:103"},"nodeType":"YulFunctionCall","src":"4538:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4558:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4531:6:103"},"nodeType":"YulFunctionCall","src":"4531:30:103"},"nodeType":"YulExpressionStatement","src":"4531:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4592:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4577:3:103"},"nodeType":"YulFunctionCall","src":"4577:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4597:34:103","type":"","value":"ERROR:CCR-025:PAUSED_INVALID_TRA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4570:6:103"},"nodeType":"YulFunctionCall","src":"4570:62:103"},"nodeType":"YulExpressionStatement","src":"4570:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4663:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4648:3:103"},"nodeType":"YulFunctionCall","src":"4648:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4668:9:103","type":"","value":"NSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4641:6:103"},"nodeType":"YulFunctionCall","src":"4641:37:103"},"nodeType":"YulExpressionStatement","src":"4641:37:103"},{"nodeType":"YulAssignment","src":"4687:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4699:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4710:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4695:3:103"},"nodeType":"YulFunctionCall","src":"4695:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4687:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0482b94049f0958858785a7e41524773ca88442982af776b7db627215a0937ca__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4468:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4482:4:103","type":""}],"src":"4317:403:103"},{"body":{"nodeType":"YulBlock","src":"4899:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4927:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4909:6:103"},"nodeType":"YulFunctionCall","src":"4909:21:103"},"nodeType":"YulExpressionStatement","src":"4909:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4950:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4961:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4946:3:103"},"nodeType":"YulFunctionCall","src":"4946:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4966:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4939:6:103"},"nodeType":"YulFunctionCall","src":"4939:30:103"},"nodeType":"YulExpressionStatement","src":"4939:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4989:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5000:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4985:3:103"},"nodeType":"YulFunctionCall","src":"4985:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5005:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4978:6:103"},"nodeType":"YulFunctionCall","src":"4978:62:103"},"nodeType":"YulExpressionStatement","src":"4978:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5060:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5071:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5056:3:103"},"nodeType":"YulFunctionCall","src":"5056:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5076:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5049:6:103"},"nodeType":"YulFunctionCall","src":"5049:35:103"},"nodeType":"YulExpressionStatement","src":"5049:35:103"},{"nodeType":"YulAssignment","src":"5093:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5105:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5116:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5101:3:103"},"nodeType":"YulFunctionCall","src":"5101:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5093:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4876:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4890:4:103","type":""}],"src":"4725:401:103"},{"body":{"nodeType":"YulBlock","src":"5305:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5333:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5315:6:103"},"nodeType":"YulFunctionCall","src":"5315:21:103"},"nodeType":"YulExpressionStatement","src":"5315:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5356:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5367:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5352:3:103"},"nodeType":"YulFunctionCall","src":"5352:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5372:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5345:6:103"},"nodeType":"YulFunctionCall","src":"5345:30:103"},"nodeType":"YulExpressionStatement","src":"5345:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5395:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5406:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5391:3:103"},"nodeType":"YulFunctionCall","src":"5391:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5411:34:103","type":"","value":"ERROR:CCR-002:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5384:6:103"},"nodeType":"YulFunctionCall","src":"5384:62:103"},"nodeType":"YulExpressionStatement","src":"5384:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5466:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5477:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5462:3:103"},"nodeType":"YulFunctionCall","src":"5462:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5482:13:103","type":"","value":"TOR_SERVICE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5455:6:103"},"nodeType":"YulFunctionCall","src":"5455:41:103"},"nodeType":"YulExpressionStatement","src":"5455:41:103"},{"nodeType":"YulAssignment","src":"5505:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5528:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5513:3:103"},"nodeType":"YulFunctionCall","src":"5513:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5505:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_130007efea4d49cc157bd5faf2f1c80f98e50627fe669a9a215b28142c1ee23f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5282:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5296:4:103","type":""}],"src":"5131:407:103"},{"body":{"nodeType":"YulBlock","src":"5717:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5734:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5745:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5727:6:103"},"nodeType":"YulFunctionCall","src":"5727:21:103"},"nodeType":"YulExpressionStatement","src":"5727:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5779:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5764:3:103"},"nodeType":"YulFunctionCall","src":"5764:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5784:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5757:6:103"},"nodeType":"YulFunctionCall","src":"5757:30:103"},"nodeType":"YulExpressionStatement","src":"5757:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5807:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5818:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5803:3:103"},"nodeType":"YulFunctionCall","src":"5803:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5823:34:103","type":"","value":"ERROR:CCR-021:CREATED_INVALID_TR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5796:6:103"},"nodeType":"YulFunctionCall","src":"5796:62:103"},"nodeType":"YulExpressionStatement","src":"5796:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5878:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5889:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5874:3:103"},"nodeType":"YulFunctionCall","src":"5874:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5894:10:103","type":"","value":"ANSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5867:6:103"},"nodeType":"YulFunctionCall","src":"5867:38:103"},"nodeType":"YulExpressionStatement","src":"5867:38:103"},{"nodeType":"YulAssignment","src":"5914:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5937:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5922:3:103"},"nodeType":"YulFunctionCall","src":"5922:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5914:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1f46e308fac0cff196aecf5e84c50b4060e83c7555cae1916f001746068e894c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5694:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5708:4:103","type":""}],"src":"5543:404:103"},{"body":{"nodeType":"YulBlock","src":"6126:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6143:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6154:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6136:6:103"},"nodeType":"YulFunctionCall","src":"6136:21:103"},"nodeType":"YulExpressionStatement","src":"6136:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6177:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6188:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6173:3:103"},"nodeType":"YulFunctionCall","src":"6173:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6193:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6166:6:103"},"nodeType":"YulFunctionCall","src":"6166:30:103"},"nodeType":"YulExpressionStatement","src":"6166:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6227:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6212:3:103"},"nodeType":"YulFunctionCall","src":"6212:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6232:34:103","type":"","value":"ERROR:CCR-001:NOT_COMPONENT_OWNE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6205:6:103"},"nodeType":"YulFunctionCall","src":"6205:62:103"},"nodeType":"YulExpressionStatement","src":"6205:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6287:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6298:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6283:3:103"},"nodeType":"YulFunctionCall","src":"6283:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6303:11:103","type":"","value":"R_SERVICE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6276:6:103"},"nodeType":"YulFunctionCall","src":"6276:39:103"},"nodeType":"YulExpressionStatement","src":"6276:39:103"},{"nodeType":"YulAssignment","src":"6324:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6336:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6347:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6332:3:103"},"nodeType":"YulFunctionCall","src":"6332:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6324:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2b163f71e59f0a392de25481a553757716afafc14f2c0ddf4ef8779c20751707__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6103:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6117:4:103","type":""}],"src":"5952:405:103"},{"body":{"nodeType":"YulBlock","src":"6536:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6553:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6564:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6546:6:103"},"nodeType":"YulFunctionCall","src":"6546:21:103"},"nodeType":"YulExpressionStatement","src":"6546:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6587:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6598:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6583:3:103"},"nodeType":"YulFunctionCall","src":"6583:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6603:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6576:6:103"},"nodeType":"YulFunctionCall","src":"6576:30:103"},"nodeType":"YulExpressionStatement","src":"6576:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6637:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6622:3:103"},"nodeType":"YulFunctionCall","src":"6622:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6642:34:103","type":"","value":"ERROR:CCR-006:COMPONENT_ADDRESS_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6615:6:103"},"nodeType":"YulFunctionCall","src":"6615:62:103"},"nodeType":"YulExpressionStatement","src":"6615:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6697:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6708:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6693:3:103"},"nodeType":"YulFunctionCall","src":"6693:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6713:6:103","type":"","value":"ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6686:6:103"},"nodeType":"YulFunctionCall","src":"6686:34:103"},"nodeType":"YulExpressionStatement","src":"6686:34:103"},{"nodeType":"YulAssignment","src":"6729:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6741:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6752:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6737:3:103"},"nodeType":"YulFunctionCall","src":"6737:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6729:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_349494011e9b14ad7882b684a4d52f7565404f3853de6409d514462bbbb08f64__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6513:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6527:4:103","type":""}],"src":"6362:400:103"},{"body":{"nodeType":"YulBlock","src":"6941:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6958:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6969:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6951:6:103"},"nodeType":"YulFunctionCall","src":"6951:21:103"},"nodeType":"YulExpressionStatement","src":"6951:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6988:3:103"},"nodeType":"YulFunctionCall","src":"6988:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7008:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6981:6:103"},"nodeType":"YulFunctionCall","src":"6981:30:103"},"nodeType":"YulExpressionStatement","src":"6981:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7031:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7042:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7027:3:103"},"nodeType":"YulFunctionCall","src":"7027:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7047:34:103","type":"","value":"ERROR:CCR-22:PROPOSED_INVALID_TR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7020:6:103"},"nodeType":"YulFunctionCall","src":"7020:62:103"},"nodeType":"YulExpressionStatement","src":"7020:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7102:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7113:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7098:3:103"},"nodeType":"YulFunctionCall","src":"7098:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7118:10:103","type":"","value":"ANSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7091:6:103"},"nodeType":"YulFunctionCall","src":"7091:38:103"},"nodeType":"YulExpressionStatement","src":"7091:38:103"},{"nodeType":"YulAssignment","src":"7138:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7150:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7161:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7146:3:103"},"nodeType":"YulFunctionCall","src":"7146:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7138:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b9aa6c2dd4c618aff287fe40145b03866d1f0f394ef1bd7eabcf15523e1a082__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6918:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6932:4:103","type":""}],"src":"6767:404:103"},{"body":{"nodeType":"YulBlock","src":"7350:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7367:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7378:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7360:6:103"},"nodeType":"YulFunctionCall","src":"7360:21:103"},"nodeType":"YulExpressionStatement","src":"7360:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7401:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7412:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7397:3:103"},"nodeType":"YulFunctionCall","src":"7397:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7417:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7390:6:103"},"nodeType":"YulFunctionCall","src":"7390:30:103"},"nodeType":"YulExpressionStatement","src":"7390:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7451:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7436:3:103"},"nodeType":"YulFunctionCall","src":"7436:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7456:34:103","type":"","value":"ERROR:CCR-023:DECLINED_IS_FINAL_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7429:6:103"},"nodeType":"YulFunctionCall","src":"7429:62:103"},"nodeType":"YulExpressionStatement","src":"7429:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7511:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7522:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7507:3:103"},"nodeType":"YulFunctionCall","src":"7507:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7527:7:103","type":"","value":"STATE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7500:6:103"},"nodeType":"YulFunctionCall","src":"7500:35:103"},"nodeType":"YulExpressionStatement","src":"7500:35:103"},{"nodeType":"YulAssignment","src":"7544:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7556:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7567:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7552:3:103"},"nodeType":"YulFunctionCall","src":"7552:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7544:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_42aa29d463e00aadde35312cfb43fe30bee16376ea01580e27b2dacd6cef5592__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7327:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7341:4:103","type":""}],"src":"7176:401:103"},{"body":{"nodeType":"YulBlock","src":"7756:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7784:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7766:6:103"},"nodeType":"YulFunctionCall","src":"7766:21:103"},"nodeType":"YulExpressionStatement","src":"7766:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7807:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7818:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7803:3:103"},"nodeType":"YulFunctionCall","src":"7803:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7823:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7796:6:103"},"nodeType":"YulFunctionCall","src":"7796:30:103"},"nodeType":"YulExpressionStatement","src":"7796:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7846:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7857:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7842:3:103"},"nodeType":"YulFunctionCall","src":"7842:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7862:34:103","type":"","value":"ERROR:CCR-027:INITIAL_STATE_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7835:6:103"},"nodeType":"YulFunctionCall","src":"7835:62:103"},"nodeType":"YulExpressionStatement","src":"7835:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7917:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7928:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7913:3:103"},"nodeType":"YulFunctionCall","src":"7913:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7933:9:103","type":"","value":"HANDLED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7906:6:103"},"nodeType":"YulFunctionCall","src":"7906:37:103"},"nodeType":"YulExpressionStatement","src":"7906:37:103"},{"nodeType":"YulAssignment","src":"7952:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7964:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7975:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7960:3:103"},"nodeType":"YulFunctionCall","src":"7960:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7952:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_512ac6c7424b7e416123df2c876fbcb260e557a5e44ae55dbe69355255653f93__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7733:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7747:4:103","type":""}],"src":"7582:403:103"},{"body":{"nodeType":"YulBlock","src":"8164:232:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8181:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8192:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8174:6:103"},"nodeType":"YulFunctionCall","src":"8174:21:103"},"nodeType":"YulExpressionStatement","src":"8174:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8215:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8226:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8211:3:103"},"nodeType":"YulFunctionCall","src":"8211:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8231:2:103","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8204:6:103"},"nodeType":"YulFunctionCall","src":"8204:30:103"},"nodeType":"YulExpressionStatement","src":"8204:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8265:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8250:3:103"},"nodeType":"YulFunctionCall","src":"8250:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8270:34:103","type":"","value":"ERROR:CCR-026:SUSPENDED_INVALID_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8243:6:103"},"nodeType":"YulFunctionCall","src":"8243:62:103"},"nodeType":"YulExpressionStatement","src":"8243:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8325:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8336:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8321:3:103"},"nodeType":"YulFunctionCall","src":"8321:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8341:12:103","type":"","value":"TRANSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8314:6:103"},"nodeType":"YulFunctionCall","src":"8314:40:103"},"nodeType":"YulExpressionStatement","src":"8314:40:103"},{"nodeType":"YulAssignment","src":"8363:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8375:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8386:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8371:3:103"},"nodeType":"YulFunctionCall","src":"8371:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8363:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_58a6319ab23087cefcdbcbd3c8e4c0242721e866c13cbc743fb203df63de1716__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8141:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8155:4:103","type":""}],"src":"7990:406:103"},{"body":{"nodeType":"YulBlock","src":"8575:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8603:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8585:6:103"},"nodeType":"YulFunctionCall","src":"8585:21:103"},"nodeType":"YulExpressionStatement","src":"8585:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8637:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8622:3:103"},"nodeType":"YulFunctionCall","src":"8622:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8642:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8615:6:103"},"nodeType":"YulFunctionCall","src":"8615:30:103"},"nodeType":"YulExpressionStatement","src":"8615:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8665:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8676:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8661:3:103"},"nodeType":"YulFunctionCall","src":"8661:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8681:33:103","type":"","value":"ERROR:CCR-007:COMPONENT_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8654:6:103"},"nodeType":"YulFunctionCall","src":"8654:61:103"},"nodeType":"YulExpressionStatement","src":"8654:61:103"},{"nodeType":"YulAssignment","src":"8724:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8736:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8747:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8732:3:103"},"nodeType":"YulFunctionCall","src":"8732:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8724:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5aa9184ead1177203c54428ab95078928f4521a9c578f8772ed90c5ea1b644ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8552:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8566:4:103","type":""}],"src":"8401:355:103"},{"body":{"nodeType":"YulBlock","src":"8935:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8952:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8963:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8945:6:103"},"nodeType":"YulFunctionCall","src":"8945:21:103"},"nodeType":"YulExpressionStatement","src":"8945:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8986:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8997:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8982:3:103"},"nodeType":"YulFunctionCall","src":"8982:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9002:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8975:6:103"},"nodeType":"YulFunctionCall","src":"8975:30:103"},"nodeType":"YulExpressionStatement","src":"8975:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9025:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9036:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9021:3:103"},"nodeType":"YulFunctionCall","src":"9021:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9041:34:103","type":"","value":"ERROR:CCR-003:COMPONENT_ALREADY_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9014:6:103"},"nodeType":"YulFunctionCall","src":"9014:62:103"},"nodeType":"YulExpressionStatement","src":"9014:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9096:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9107:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9092:3:103"},"nodeType":"YulFunctionCall","src":"9092:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9112:8:103","type":"","value":"EXISTS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9085:6:103"},"nodeType":"YulFunctionCall","src":"9085:36:103"},"nodeType":"YulExpressionStatement","src":"9085:36:103"},{"nodeType":"YulAssignment","src":"9130:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9142:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9153:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9138:3:103"},"nodeType":"YulFunctionCall","src":"9138:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9130:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5ae3a1e2de2af7e4b795f54ca41064c73c9d3d29ac084b6bc16d97b27e04e8c5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8912:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8926:4:103","type":""}],"src":"8761:402:103"},{"body":{"nodeType":"YulBlock","src":"9342:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9359:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9370:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9352:6:103"},"nodeType":"YulFunctionCall","src":"9352:21:103"},"nodeType":"YulExpressionStatement","src":"9352:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9404:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9389:3:103"},"nodeType":"YulFunctionCall","src":"9389:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9409:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9382:6:103"},"nodeType":"YulFunctionCall","src":"9382:30:103"},"nodeType":"YulExpressionStatement","src":"9382:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9432:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9443:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9428:3:103"},"nodeType":"YulFunctionCall","src":"9428:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9448:34:103","type":"","value":"ERROR:CCR-008:INVALID_COMPONENT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9421:6:103"},"nodeType":"YulFunctionCall","src":"9421:62:103"},"nodeType":"YulExpressionStatement","src":"9421:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9503:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9514:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9499:3:103"},"nodeType":"YulFunctionCall","src":"9499:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9519:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9492:6:103"},"nodeType":"YulFunctionCall","src":"9492:32:103"},"nodeType":"YulExpressionStatement","src":"9492:32:103"},{"nodeType":"YulAssignment","src":"9533:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9545:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9556:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9541:3:103"},"nodeType":"YulFunctionCall","src":"9541:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9533:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_67050a9f7590899f726ff1d1acfe3fa473b09c82fe38e2fb1e74ce440fa5d62b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9319:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9333:4:103","type":""}],"src":"9168:398:103"},{"body":{"nodeType":"YulBlock","src":"9745:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9762:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9773:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9755:6:103"},"nodeType":"YulFunctionCall","src":"9755:21:103"},"nodeType":"YulExpressionStatement","src":"9755:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9796:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9807:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9792:3:103"},"nodeType":"YulFunctionCall","src":"9792:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9812:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9785:6:103"},"nodeType":"YulFunctionCall","src":"9785:30:103"},"nodeType":"YulExpressionStatement","src":"9785:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9835:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9846:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9831:3:103"},"nodeType":"YulFunctionCall","src":"9831:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9851:34:103","type":"","value":"ERROR:CCR-020:SOURCE_AND_TARGET_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9824:6:103"},"nodeType":"YulFunctionCall","src":"9824:62:103"},"nodeType":"YulExpressionStatement","src":"9824:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9906:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9917:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9902:3:103"},"nodeType":"YulFunctionCall","src":"9902:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9922:17:103","type":"","value":"STATE_IDENTICAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9895:6:103"},"nodeType":"YulFunctionCall","src":"9895:45:103"},"nodeType":"YulExpressionStatement","src":"9895:45:103"},{"nodeType":"YulAssignment","src":"9949:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9961:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9972:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9957:3:103"},"nodeType":"YulFunctionCall","src":"9957:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9949:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6b075609608efafdf82ca4cfa74bf357d9aad12ac8bb658b7fb7cfcfb10656bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9722:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9736:4:103","type":""}],"src":"9571:411:103"},{"body":{"nodeType":"YulBlock","src":"10161:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10178:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10189:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10171:6:103"},"nodeType":"YulFunctionCall","src":"10171:21:103"},"nodeType":"YulExpressionStatement","src":"10171:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10212:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10223:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10208:3:103"},"nodeType":"YulFunctionCall","src":"10208:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10228:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10201:6:103"},"nodeType":"YulFunctionCall","src":"10201:30:103"},"nodeType":"YulExpressionStatement","src":"10201:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10262:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10247:3:103"},"nodeType":"YulFunctionCall","src":"10247:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10267:34:103","type":"","value":"ERROR:CCR-011:UNKNOWN_PRODUCT_ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10240:6:103"},"nodeType":"YulFunctionCall","src":"10240:62:103"},"nodeType":"YulExpressionStatement","src":"10240:62:103"},{"nodeType":"YulAssignment","src":"10311:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10323:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10334:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10319:3:103"},"nodeType":"YulFunctionCall","src":"10319:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10311:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_709b753f017c54bf3895eff7607622481d3ca03b6f3de6ef863313f4912d5c91__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10138:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10152:4:103","type":""}],"src":"9987:356:103"},{"body":{"nodeType":"YulBlock","src":"10522:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10539:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10550:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10532:6:103"},"nodeType":"YulFunctionCall","src":"10532:21:103"},"nodeType":"YulExpressionStatement","src":"10532:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10584:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10569:3:103"},"nodeType":"YulFunctionCall","src":"10569:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10589:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10562:6:103"},"nodeType":"YulFunctionCall","src":"10562:30:103"},"nodeType":"YulExpressionStatement","src":"10562:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10612:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10623:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10608:3:103"},"nodeType":"YulFunctionCall","src":"10608:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10628:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10601:6:103"},"nodeType":"YulFunctionCall","src":"10601:62:103"},"nodeType":"YulExpressionStatement","src":"10601:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10683:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10694:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10679:3:103"},"nodeType":"YulFunctionCall","src":"10679:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10699:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10672:6:103"},"nodeType":"YulFunctionCall","src":"10672:44:103"},"nodeType":"YulExpressionStatement","src":"10672:44:103"},{"nodeType":"YulAssignment","src":"10725:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10737:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10748:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10733:3:103"},"nodeType":"YulFunctionCall","src":"10733:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10725:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10499:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10513:4:103","type":""}],"src":"10348:410:103"},{"body":{"nodeType":"YulBlock","src":"10937:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10954:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10965:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10947:6:103"},"nodeType":"YulFunctionCall","src":"10947:21:103"},"nodeType":"YulExpressionStatement","src":"10947:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10988:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10999:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10984:3:103"},"nodeType":"YulFunctionCall","src":"10984:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11004:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10977:6:103"},"nodeType":"YulFunctionCall","src":"10977:30:103"},"nodeType":"YulExpressionStatement","src":"10977:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11027:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11038:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11023:3:103"},"nodeType":"YulFunctionCall","src":"11023:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11043:34:103","type":"","value":"ERROR:CCR-024:ACTIVE_INVALID_TRA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11016:6:103"},"nodeType":"YulFunctionCall","src":"11016:62:103"},"nodeType":"YulExpressionStatement","src":"11016:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11098:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11109:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11094:3:103"},"nodeType":"YulFunctionCall","src":"11094:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11114:9:103","type":"","value":"NSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11087:6:103"},"nodeType":"YulFunctionCall","src":"11087:37:103"},"nodeType":"YulExpressionStatement","src":"11087:37:103"},{"nodeType":"YulAssignment","src":"11133:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11145:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11156:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11141:3:103"},"nodeType":"YulFunctionCall","src":"11141:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11133:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_aedba318da9c17b182ebb85736c0568cffa933b22def476bb1db2682f6fecda2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10914:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10928:4:103","type":""}],"src":"10763:403:103"},{"body":{"nodeType":"YulBlock","src":"11345:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11362:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11373:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11355:6:103"},"nodeType":"YulFunctionCall","src":"11355:21:103"},"nodeType":"YulExpressionStatement","src":"11355:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11407:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11392:3:103"},"nodeType":"YulFunctionCall","src":"11392:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11412:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11385:6:103"},"nodeType":"YulFunctionCall","src":"11385:30:103"},"nodeType":"YulExpressionStatement","src":"11385:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11435:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11446:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11431:3:103"},"nodeType":"YulFunctionCall","src":"11431:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11451:34:103","type":"","value":"ERROR:CCR-005:INVALID_COMPONENT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11424:6:103"},"nodeType":"YulFunctionCall","src":"11424:62:103"},"nodeType":"YulExpressionStatement","src":"11424:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11506:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11517:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11502:3:103"},"nodeType":"YulFunctionCall","src":"11502:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11522:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11495:6:103"},"nodeType":"YulFunctionCall","src":"11495:32:103"},"nodeType":"YulExpressionStatement","src":"11495:32:103"},{"nodeType":"YulAssignment","src":"11536:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11548:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11559:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11544:3:103"},"nodeType":"YulFunctionCall","src":"11544:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11536:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ca1c305a0e9af3ea3550a0a1227e5f520650593127153fff20641c9f0d853894__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11322:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11336:4:103","type":""}],"src":"11171:398:103"},{"body":{"nodeType":"YulBlock","src":"11748:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11765:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11776:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11758:6:103"},"nodeType":"YulFunctionCall","src":"11758:21:103"},"nodeType":"YulExpressionStatement","src":"11758:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11810:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11795:3:103"},"nodeType":"YulFunctionCall","src":"11795:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11815:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11788:6:103"},"nodeType":"YulFunctionCall","src":"11788:30:103"},"nodeType":"YulExpressionStatement","src":"11788:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11838:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11834:3:103"},"nodeType":"YulFunctionCall","src":"11834:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11854:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11827:6:103"},"nodeType":"YulFunctionCall","src":"11827:62:103"},"nodeType":"YulExpressionStatement","src":"11827:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11909:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11920:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11905:3:103"},"nodeType":"YulFunctionCall","src":"11905:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11925:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11898:6:103"},"nodeType":"YulFunctionCall","src":"11898:41:103"},"nodeType":"YulExpressionStatement","src":"11898:41:103"},{"nodeType":"YulAssignment","src":"11948:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11960:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11971:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11956:3:103"},"nodeType":"YulFunctionCall","src":"11956:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11948:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11725:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11739:4:103","type":""}],"src":"11574:407:103"},{"body":{"nodeType":"YulBlock","src":"12160:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12177:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12188:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12170:6:103"},"nodeType":"YulFunctionCall","src":"12170:21:103"},"nodeType":"YulExpressionStatement","src":"12170:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12211:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12222:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12207:3:103"},"nodeType":"YulFunctionCall","src":"12207:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12227:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12200:6:103"},"nodeType":"YulFunctionCall","src":"12200:30:103"},"nodeType":"YulExpressionStatement","src":"12200:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12261:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12246:3:103"},"nodeType":"YulFunctionCall","src":"12246:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12266:34:103","type":"","value":"ERROR:CCR-004:COMPONENT_NAME_ALR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12239:6:103"},"nodeType":"YulFunctionCall","src":"12239:62:103"},"nodeType":"YulExpressionStatement","src":"12239:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12321:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12332:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12317:3:103"},"nodeType":"YulFunctionCall","src":"12317:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12337:13:103","type":"","value":"EADY_EXISTS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12310:6:103"},"nodeType":"YulFunctionCall","src":"12310:41:103"},"nodeType":"YulExpressionStatement","src":"12310:41:103"},{"nodeType":"YulAssignment","src":"12360:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12372:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12383:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12368:3:103"},"nodeType":"YulFunctionCall","src":"12368:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12360:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_db0e727d540281d778747629fde13ba11de87883dd7bb058b220298f1d595860__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12137:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12151:4:103","type":""}],"src":"11986:407:103"},{"body":{"nodeType":"YulBlock","src":"12572:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12589:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12600:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12582:6:103"},"nodeType":"YulFunctionCall","src":"12582:21:103"},"nodeType":"YulExpressionStatement","src":"12582:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12623:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12634:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12619:3:103"},"nodeType":"YulFunctionCall","src":"12619:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12639:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12612:6:103"},"nodeType":"YulFunctionCall","src":"12612:30:103"},"nodeType":"YulExpressionStatement","src":"12612:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12662:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12673:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12658:3:103"},"nodeType":"YulFunctionCall","src":"12658:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12678:34:103","type":"","value":"ERROR:CCR-010:COMPONENT_TYPE_UNK"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12651:6:103"},"nodeType":"YulFunctionCall","src":"12651:62:103"},"nodeType":"YulExpressionStatement","src":"12651:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12733:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12744:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12729:3:103"},"nodeType":"YulFunctionCall","src":"12729:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12749:6:103","type":"","value":"NOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12722:6:103"},"nodeType":"YulFunctionCall","src":"12722:34:103"},"nodeType":"YulExpressionStatement","src":"12722:34:103"},{"nodeType":"YulAssignment","src":"12765:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12777:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12788:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12773:3:103"},"nodeType":"YulFunctionCall","src":"12773:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12765:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f1c08fa2a8ffb36bf794006b5c478bd24ca48d907fc7830cb558a4b14cd289c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12549:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12563:4:103","type":""}],"src":"12398:400:103"},{"body":{"nodeType":"YulBlock","src":"12904:76:103","statements":[{"nodeType":"YulAssignment","src":"12914:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12937:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12922:3:103"},"nodeType":"YulFunctionCall","src":"12922:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12914:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12956:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12967:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12949:6:103"},"nodeType":"YulFunctionCall","src":"12949:25:103"},"nodeType":"YulExpressionStatement","src":"12949:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12873:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12884:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12895:4:103","type":""}],"src":"12803:177:103"},{"body":{"nodeType":"YulBlock","src":"13176:210:103","statements":[{"nodeType":"YulAssignment","src":"13186:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13198:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13209:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13194:3:103"},"nodeType":"YulFunctionCall","src":"13194:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13186:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13228:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13239:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13221:6:103"},"nodeType":"YulFunctionCall","src":"13221:25:103"},"nodeType":"YulExpressionStatement","src":"13221:25:103"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13286:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13298:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13309:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13294:3:103"},"nodeType":"YulFunctionCall","src":"13294:18:103"}],"functionName":{"name":"abi_encode_enum_ComponentState","nodeType":"YulIdentifier","src":"13255:30:103"},"nodeType":"YulFunctionCall","src":"13255:58:103"},"nodeType":"YulExpressionStatement","src":"13255:58:103"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13353:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13376:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13361:3:103"},"nodeType":"YulFunctionCall","src":"13361:18:103"}],"functionName":{"name":"abi_encode_enum_ComponentState","nodeType":"YulIdentifier","src":"13322:30:103"},"nodeType":"YulFunctionCall","src":"13322:58:103"},"nodeType":"YulExpressionStatement","src":"13322:58:103"}]},"name":"abi_encode_tuple_t_uint256_t_enum$_ComponentState_$2899_t_enum$_ComponentState_$2899__to_t_uint256_t_uint8_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13129:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13140:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13148:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13156:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13167:4:103","type":""}],"src":"12985:401:103"},{"body":{"nodeType":"YulBlock","src":"13438:189:103","statements":[{"body":{"nodeType":"YulBlock","src":"13477:115:103","statements":[{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"13498:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13507:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13512:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13503:3:103"},"nodeType":"YulFunctionCall","src":"13503:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13491:6:103"},"nodeType":"YulFunctionCall","src":"13491:33:103"},"nodeType":"YulExpressionStatement","src":"13491:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13544:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13547:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13537:6:103"},"nodeType":"YulFunctionCall","src":"13537:15:103"},"nodeType":"YulExpressionStatement","src":"13537:15:103"},{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"13572:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"13577:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13565:6:103"},"nodeType":"YulFunctionCall","src":"13565:17:103"},"nodeType":"YulExpressionStatement","src":"13565:17:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13454:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13465:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13461:3:103"},"nodeType":"YulFunctionCall","src":"13461:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"13451:2:103"},"nodeType":"YulFunctionCall","src":"13451:17:103"},"nodeType":"YulIf","src":"13448:2:103"},{"nodeType":"YulAssignment","src":"13601:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13612:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"13619:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13608:3:103"},"nodeType":"YulFunctionCall","src":"13608:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"13601:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13420:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"13430:3:103","type":""}],"src":"13391:236:103"},{"body":{"nodeType":"YulBlock","src":"13664:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13681:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13688:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13693:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13684:3:103"},"nodeType":"YulFunctionCall","src":"13684:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13674:6:103"},"nodeType":"YulFunctionCall","src":"13674:31:103"},"nodeType":"YulExpressionStatement","src":"13674:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13721:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13724:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13714:6:103"},"nodeType":"YulFunctionCall","src":"13714:15:103"},"nodeType":"YulExpressionStatement","src":"13714:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13745:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13748:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13738:6:103"},"nodeType":"YulFunctionCall","src":"13738:15:103"},"nodeType":"YulExpressionStatement","src":"13738:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"13632:127:103"},{"body":{"nodeType":"YulBlock","src":"13809:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"13873:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13882:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13885:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13875:6:103"},"nodeType":"YulFunctionCall","src":"13875:12:103"},"nodeType":"YulExpressionStatement","src":"13875:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13832:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13843:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13858:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13863:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13854:3:103"},"nodeType":"YulFunctionCall","src":"13854:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13867:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13850:3:103"},"nodeType":"YulFunctionCall","src":"13850:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13839:3:103"},"nodeType":"YulFunctionCall","src":"13839:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"13829:2:103"},"nodeType":"YulFunctionCall","src":"13829:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13822:6:103"},"nodeType":"YulFunctionCall","src":"13822:50:103"},"nodeType":"YulIf","src":"13819:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13798:5:103","type":""}],"src":"13764:131:103"},{"body":{"nodeType":"YulBlock","src":"13956:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"13990:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13999:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14002:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13992:6:103"},"nodeType":"YulFunctionCall","src":"13992:12:103"},"nodeType":"YulExpressionStatement","src":"13992:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13979:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"13986:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13976:2:103"},"nodeType":"YulFunctionCall","src":"13976:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13969:6:103"},"nodeType":"YulFunctionCall","src":"13969:20:103"},"nodeType":"YulIf","src":"13966:2:103"}]},"name":"validator_revert_enum_ComponentType","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13945:5:103","type":""}],"src":"13900:112:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_enum_ComponentType(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_enum_ComponentType(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_enum_ComponentState(value, pos)\n {\n if iszero(lt(value, 7)) { panic_error_0x21() }\n mstore(pos, value)\n }\n function abi_encode_enum_ComponentType(value, pos)\n {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n mstore(pos, value)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_uint256__to_t_bytes32_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n abi_encode_enum_ComponentType(value1, add(headStart, 32))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_ComponentState(value0, headStart)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_ComponentType(value0, headStart)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_0482b94049f0958858785a7e41524773ca88442982af776b7db627215a0937ca__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:CCR-025:PAUSED_INVALID_TRA\")\n mstore(add(headStart, 96), \"NSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_130007efea4d49cc157bd5faf2f1c80f98e50627fe669a9a215b28142c1ee23f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:CCR-002:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR_SERVICE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1f46e308fac0cff196aecf5e84c50b4060e83c7555cae1916f001746068e894c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:CCR-021:CREATED_INVALID_TR\")\n mstore(add(headStart, 96), \"ANSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2b163f71e59f0a392de25481a553757716afafc14f2c0ddf4ef8779c20751707__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:CCR-001:NOT_COMPONENT_OWNE\")\n mstore(add(headStart, 96), \"R_SERVICE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_349494011e9b14ad7882b684a4d52f7565404f3853de6409d514462bbbb08f64__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:CCR-006:COMPONENT_ADDRESS_\")\n mstore(add(headStart, 96), \"ZERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b9aa6c2dd4c618aff287fe40145b03866d1f0f394ef1bd7eabcf15523e1a082__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:CCR-22:PROPOSED_INVALID_TR\")\n mstore(add(headStart, 96), \"ANSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_42aa29d463e00aadde35312cfb43fe30bee16376ea01580e27b2dacd6cef5592__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CCR-023:DECLINED_IS_FINAL_\")\n mstore(add(headStart, 96), \"STATE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_512ac6c7424b7e416123df2c876fbcb260e557a5e44ae55dbe69355255653f93__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:CCR-027:INITIAL_STATE_NOT_\")\n mstore(add(headStart, 96), \"HANDLED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_58a6319ab23087cefcdbcbd3c8e4c0242721e866c13cbc743fb203df63de1716__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"ERROR:CCR-026:SUSPENDED_INVALID_\")\n mstore(add(headStart, 96), \"TRANSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5aa9184ead1177203c54428ab95078928f4521a9c578f8772ed90c5ea1b644ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:CCR-007:COMPONENT_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_5ae3a1e2de2af7e4b795f54ca41064c73c9d3d29ac084b6bc16d97b27e04e8c5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:CCR-003:COMPONENT_ALREADY_\")\n mstore(add(headStart, 96), \"EXISTS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_67050a9f7590899f726ff1d1acfe3fa473b09c82fe38e2fb1e74ce440fa5d62b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:CCR-008:INVALID_COMPONENT_\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6b075609608efafdf82ca4cfa74bf357d9aad12ac8bb658b7fb7cfcfb10656bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:CCR-020:SOURCE_AND_TARGET_\")\n mstore(add(headStart, 96), \"STATE_IDENTICAL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_709b753f017c54bf3895eff7607622481d3ca03b6f3de6ef863313f4912d5c91__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:CCR-011:UNKNOWN_PRODUCT_ID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_aedba318da9c17b182ebb85736c0568cffa933b22def476bb1db2682f6fecda2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:CCR-024:ACTIVE_INVALID_TRA\")\n mstore(add(headStart, 96), \"NSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ca1c305a0e9af3ea3550a0a1227e5f520650593127153fff20641c9f0d853894__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:CCR-005:INVALID_COMPONENT_\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_db0e727d540281d778747629fde13ba11de87883dd7bb058b220298f1d595860__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:CCR-004:COMPONENT_NAME_ALR\")\n mstore(add(headStart, 96), \"EADY_EXISTS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f1c08fa2a8ffb36bf794006b5c478bd24ca48d907fc7830cb558a4b14cd289c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:CCR-010:COMPONENT_TYPE_UNK\")\n mstore(add(headStart, 96), \"NOWN\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_enum$_ComponentState_$2899_t_enum$_ComponentState_$2899__to_t_uint256_t_uint8_t_uint8__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n abi_encode_enum_ComponentState(value1, add(headStart, 32))\n abi_encode_enum_ComponentState(value2, add(headStart, 64))\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(ret, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(ret, 0x24)\n }\n ret := add(value, 1)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_enum_ComponentType(value)\n {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101a95760003560e01c80636bc607b3116100f9578063ba80b8ed11610097578063dd51c86a11610071578063dd51c86a146103a9578063e61ae297146103c9578063fabc1cbc146103dc578063ff3f3883146103ef576101a9565b8063ba80b8ed1461037b578063c4d66de81461038e578063c71e261f146103a1576101a9565b8063a054381f116100d3578063a054381f14610345578063a5c0f5a11461034d578063b759f95414610360578063ba62fbe414610373576101a9565b80636bc607b31461030c5780639f77a6051461031f578063a0355f4e14610332576101a9565b80633920200c116101665780634f27da18116101405780634f27da18146102735780634f558e791461029e5780635af89a47146102c95780635e966e45146102dc576101a9565b80633920200c1461023a578063414000b51461024d5780634b86584614610260576101a9565b806301267951146101ae57806309f63ed9146101c35780630f5da3a6146101eb578063136439dd146101fe5780632857373a146102115780632b1c7f7314610227575b600080fd5b6101c16101bc366004611f6e565b610402565b005b6101d66101d136600461201d565b610739565b60405190151581526020015b60405180910390f35b6101c16101f936600461201d565b61074e565b6101c161020c36600461201d565b610827565b6102196108fe565b6040519081526020016101e2565b610219610235366004611f6e565b61090f565b6101d661024836600461201d565b6109da565b6101c161025b36600461201d565b6109e7565b6101c161026e36600461201d565b610ac0565b61028661028136600461201d565b610b99565b6040516001600160a01b0390911681526020016101e2565b6101d66102ac36600461201d565b6000908152600260205260409020546001600160a01b0316151590565b6102196102d7366004611fe5565b610c09565b6102ff6102ea36600461201d565b60009081526005602052604090205460ff1690565b6040516101e29190612088565b6101c161031a36600461201d565b610e00565b61021961032d36600461201d565b610e51565b6101c161034036600461201d565b610e5e565b610219610f37565b61021961035b36600461201d565b610f43565b6101c161036e36600461201d565b610f50565b600c54610219565b6101d661038936600461201d565b6110d5565b6101c161039c366004611f6e565b6110e2565b610219611260565b6103bc6103b736600461201d565b61126c565b6040516101e29190612096565b6102866103d736600461201d565b611309565b6101c16103ea36600461201d565b61137c565b6102196103fd36600461201d565b611453565b61042374436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b03161461045c5760405162461bcd60e51b8152600401610453906120ef565b60405180910390fd5b6001600160a01b038116600090815260046020526040902054156104d15760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4343522d3030333a434f4d504f4e454e545f414c52454144595f60448201526545584953545360d01b6064820152608401610453565b60036000826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190611fcd565b8152602001908152602001600020546000146105b85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4343522d3030343a434f4d504f4e454e545f4e414d455f414c5260448201526a454144595f45584953545360a81b6064820152608401610453565b60006105c382611548565b90507fd9b3d18a6293c46c667fe6a98468c457078489f2e16e356bb4c77bb2e22d2016826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561061f57600080fd5b505afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106579190611fcd565b836001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c89190612001565b84846040516106da9493929190612059565b60405180910390a1816001600160a01b031663638ce0ba6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050505050565b6000610746600883611830565b90505b919050565b61077176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120a4565b6107ac81600661184d565b6040518181527f9e6d5f1811033619318d2fbe9ee7ec46c830175b39f7885248b51e0decb5837a9060200160405180910390a160006107ea82610b99565b9050806001600160a01b031663be169e7e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b61084874436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146108785760405162461bcd60e51b8152600401610453906120ef565b61088381600461184d565b6040518181527f45dbc7e529df39b8d70de83cc9e1d38c088e6ba21ab836e976f7310f1cbb8afd9060200160405180910390a160006108c182610b99565b9050806001600160a01b031663d73cd9926040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a60086118e7565b905090565b60006001600160a01b0382166109735760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3030363a434f4d504f4e454e545f414444524553535f6044820152635a45524f60e01b6064820152608401610453565b506001600160a01b038116600090815260046020526040902054806107495760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4343522d3030373a434f4d504f4e454e545f554e4b4e4f574e006044820152606401610453565b6000610746600683611830565b610a0a76496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610a3a5760405162461bcd60e51b8152600401610453906120a4565b610a4581600361184d565b6040518181527fd24597f0a62b78258ebd8c2fa52051cf673a5000d14d2fb619c91b1ed95c538a9060200160405180910390a16000610a8382610b99565b9050806001600160a01b031663a18f5ae26040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b610ae376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610b135760405162461bcd60e51b8152600401610453906120a4565b610b1e81600561184d565b6040518181527f55d2d8495549e354e6ee012c5aa183eb0e08ee2f256349afb0f7f74d1940f9b39060200160405180910390a16000610b5c82610b99565b9050806001600160a01b031663b3fca9bd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000818152600260205260409020546001600160a01b0316806107495760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030353a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b60006001826002811115610c2d57634e487b7160e01b600052602160045260246000fd5b1415610cc057600160009054906101000a90046001600160a01b03166001600160a01b031663775a40486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b505afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190611fcd565b9050610749565b6000826002811115610ce257634e487b7160e01b600052602160045260246000fd5b1415610d3657600160009054906101000a90046001600160a01b03166001600160a01b031663d49d21c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b6002826002811115610d5857634e487b7160e01b600052602160045260246000fd5b1415610dac57600160009054906101000a90046001600160a01b03166001600160a01b0316633ffdd2f36040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b60405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3031303a434f4d504f4e454e545f545950455f554e4b6044820152632727aba760e11b6064820152608401610453565b610e2174436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120ef565b60006107466006836118f1565b610e8176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610eb15760405162461bcd60e51b8152600401610453906120a4565b610ebc81600261184d565b6040518181527fd541b5f22e9e402fb32220d566405510c49372d27b4f47f1d0da1a153ea2007c9060200160405180910390a16000610efa82610b99565b9050806001600160a01b031663bd1fe5d06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a600a6118e7565b60006107466008836118f1565b610f7376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610fa35760405162461bcd60e51b8152600401610453906120a4565b610fae81600361184d565b6000610fb982610b99565b9050610fc4826109da565b1561106757806001600160a01b031663637d08f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190611f91565b6000838152600d6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b6040518281527ff8d33755281aa5d41b12a70ae3947ee164ef541d786400d733b0b89df719859e9060200160405180910390a1806001600160a01b0316631b867c636040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a83611830565b600054610100900460ff16158080156111025750600054600160ff909116105b8061111c5750303b15801561111c575060005460ff166001145b61117f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff1916600117905580156111a2576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111cc600090565b6541636365737360d01b1461120e576111ed6541636365737360d01b611460565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6112166118fd565b801561125c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061090a60066118e7565b6000611279600683611830565b1561128657506001610749565b611291600883611830565b1561129e57506000610749565b6112a9600a83611830565b156112b657506002610749565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030383a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b6000611314826109da565b6113605760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4343522d3031313a554e4b4e4f574e5f50524f445543545f49446044820152606401610453565b506000908152600d60205260409020546001600160a01b031690565b61139d74436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146113cd5760405162461bcd60e51b8152600401610453906120ef565b6113d881600361184d565b6040518181527f8e78ca4cc29c505d9901fd1582ba8584083396ce204151eddd3e008749a24fe09060200160405180910390a1600061141682610b99565b9050806001600160a01b03166359dacc6a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a836118f1565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156114aa57600080fd5b505afa1580156114be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e29190611f91565b90506001600160a01b0381166107495760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610453565b600c80546000918261155983612161565b9190505550600c54905061156e81600161184d565b60405163d0e0ba9560e01b8152600481018290526001600160a01b0383169063d0e0ba9590602401600060405180830381600087803b1580156115b057600080fd5b505af11580156115c4573d6000803e3d6000fd5b505050600082815260026020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516305f5f79f60e21b815291518695506003949391926317d7de7c926004808301939192829003018186803b15801561162d57600080fd5b505afa158015611641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116659190611fcd565b8152602001908152602001600020819055508060046000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663e0815f0d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116da57600080fd5b505afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190611fad565b156117285761172260068261196a565b50610749565b816001600160a01b0316639a82f8906040518163ffffffff1660e01b815260040160206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190611fad565b156117a95761172260088261196a565b816001600160a01b031663258d560c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117e257600080fd5b505afa1580156117f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181a9190611fad565b156107495761182a600a8261196a565b50919050565b600081815260018301602052604081205415155b90505b92915050565b60008281526005602052604090205460ff166118698183611976565b6000838152600560205260409020805483919060ff191660018360068111156118a257634e487b7160e01b600052602160045260246000fd5b02179055507fd2248d3e400f6333d5de6d43446115557cb942e75002aa7ad26f9cac9b105b1a8382846040516118da93929190612138565b60405180910390a1505050565b6000610746825490565b60006118448383611ee7565b600054610100900460ff166119685760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610453565b565b60006118448383611f1f565b81600681111561199657634e487b7160e01b600052602160045260246000fd5b8160068111156119b657634e487b7160e01b600052602160045260246000fd5b1415611a1c5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4343522d3032303a534f555243455f414e445f5441524745545f60448201526e14d510551157d2511153951250d053608a1b6064820152608401610453565b6000826006811115611a3e57634e487b7160e01b600052602160045260246000fd5b1415611ac9576001816006811115611a6657634e487b7160e01b600052602160045260246000fd5b14611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d3032313a435245415445445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b61125c565b6001826006811115611aeb57634e487b7160e01b600052602160045260246000fd5b1415611b9b576003816006811115611b1357634e487b7160e01b600052602160045260246000fd5b1480611b3e57506002816006811115611b3c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d32323a50524f504f5345445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b6002826006811115611bbd57634e487b7160e01b600052602160045260246000fd5b1415611c195760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4343522d3032333a4445434c494e45445f49535f46494e414c5f604482015264535441544560d81b6064820152608401610453565b6003826006811115611c3b57634e487b7160e01b600052602160045260246000fd5b1415611cea576004816006811115611c6357634e487b7160e01b600052602160045260246000fd5b1480611c8e57506005816006811115611c8c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032343a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6004826006811115611d0c57634e487b7160e01b600052602160045260246000fd5b1415611dbb576003816006811115611d3457634e487b7160e01b600052602160045260246000fd5b1480611d5f57506006816006811115611d5d57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032353a5041555345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6005826006811115611ddd57634e487b7160e01b600052602160045260246000fd5b1415611e8f576003816006811115611e0557634e487b7160e01b600052602160045260246000fd5b1480611e3057506006816006811115611e2e57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a4343522d3032363a53555350454e4445445f494e56414c49445f6044820152692a2920a729a4aa24a7a760b11b6064820152608401610453565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032373a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610453565b6000826000018281548110611f0c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054611f6657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611847565b506000611847565b600060208284031215611f7f578081fd5b8135611f8a8161219e565b9392505050565b600060208284031215611fa2578081fd5b8151611f8a8161219e565b600060208284031215611fbe578081fd5b81518015158114611f8a578182fd5b600060208284031215611fde578081fd5b5051919050565b600060208284031215611ff6578081fd5b8135611f8a816121b6565b600060208284031215612012578081fd5b8151611f8a816121b6565b60006020828403121561202e578081fd5b5035919050565b6007811061204557612045612188565b9052565b6003811061204557612045612188565b8481526080810161206d6020830186612049565b6001600160a01b039390931660408201526060015292915050565b602081016118478284612035565b602081016118478284612049565b6020808252602b908201527f4552524f523a4343522d3030323a4e4f545f494e5354414e43455f4f5045524160408201526a544f525f5345525649434560a81b606082015260800190565b60208082526029908201527f4552524f523a4343522d3030313a4e4f545f434f4d504f4e454e545f4f574e45604082015268525f5345525649434560b81b606082015260800190565b8381526060810161214c6020830185612035565b6121596040830184612035565b949350505050565b600060001982141561218157634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146121b357600080fd5b50565b600381106121b357600080fdfea26469706673582212207b6d7253c522420b015643d5d348125e0e3e34a0bb911fa3cf3939a9d465163864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BC607B3 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xBA80B8ED GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xDD51C86A GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xDD51C86A EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xE61AE297 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0xFABC1CBC EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0xFF3F3883 EQ PUSH2 0x3EF JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xBA80B8ED EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0xC71E261F EQ PUSH2 0x3A1 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xA054381F GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xA5C0F5A1 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xB759F954 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0xBA62FBE4 EQ PUSH2 0x373 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x6BC607B3 EQ PUSH2 0x30C JUMPI DUP1 PUSH4 0x9F77A605 EQ PUSH2 0x31F JUMPI DUP1 PUSH4 0xA0355F4E EQ PUSH2 0x332 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x3920200C GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x4F27DA18 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x4F27DA18 EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x4F558E79 EQ PUSH2 0x29E JUMPI DUP1 PUSH4 0x5AF89A47 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x5E966E45 EQ PUSH2 0x2DC JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x3920200C EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x414000B5 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x4B865846 EQ PUSH2 0x260 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x1267951 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x9F63ED9 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xF5DA3A6 EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x136439DD EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x2857373A EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x2B1C7F73 EQ PUSH2 0x227 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x402 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1D6 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x739 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C1 PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x74E JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E2 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x235 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x90F JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x9E7 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xAC0 JUMP JUMPDEST PUSH2 0x286 PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xB99 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x2AC CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1FE5 JUMP JUMPDEST PUSH2 0xC09 JUMP JUMPDEST PUSH2 0x2FF PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x2088 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x31A CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE00 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x32D CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE51 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x340 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE5E JUMP JUMPDEST PUSH2 0x219 PUSH2 0xF37 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x35B CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x36E CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xF50 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x219 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x10D5 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x10E2 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x1260 JUMP JUMPDEST PUSH2 0x3BC PUSH2 0x3B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x126C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x2096 JUMP JUMPDEST PUSH2 0x286 PUSH2 0x3D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x1309 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x137C JUMP JUMPDEST PUSH2 0x219 PUSH2 0x3FD CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x1453 JUMP JUMPDEST PUSH2 0x423 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x45C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030333A434F4D504F4E454E545F414C52454144595F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x455849535453 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x17D7DE7C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x522 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x0 EQ PUSH2 0x5B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030343A434F4D504F4E454E545F4E414D455F414C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x454144595F455849535453 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C3 DUP3 PUSH2 0x1548 JUMP JUMPDEST SWAP1 POP PUSH32 0xD9B3D18A6293C46C667FE6A98468C457078489F2E16E356BB4C77BB2E22D2016 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x17D7DE7C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x61F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x633 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x657 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x15DAE03E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x690 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6C8 SWAP2 SWAP1 PUSH2 0x2001 JUMP JUMPDEST DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x6DA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x638CE0BA PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x731 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x8 DUP4 PUSH2 0x1830 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x771 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0x7AC DUP2 PUSH1 0x6 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x9E6D5F1811033619318D2FBE9EE7EC46C830175B39F7885248B51E0DECB5837A SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x7EA DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBE169E7E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x848 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x878 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH2 0x883 DUP2 PUSH1 0x4 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x45DBC7E529DF39B8D70DE83CC9E1D38C088E6BA21AB836E976F7310F1CBB8AFD SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x8C1 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD73CD992 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0x8 PUSH2 0x18E7 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x973 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030363A434F4D504F4E454E545F414444524553535F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5A45524F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030373A434F4D504F4E454E545F554E4B4E4F574E00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x6 DUP4 PUSH2 0x1830 JUMP JUMPDEST PUSH2 0xA0A PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA3A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xD24597F0A62B78258EBD8C2FA52051CF673A5000D14D2FB619C91B1ED95C538A SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xA83 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA18F5AE2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAE3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xB1E DUP2 PUSH1 0x5 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x55D2D8495549E354E6EE012C5AA183EB0E08EE2F256349AFB0F7F74D1940F9B3 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xB5C DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3FCA9BD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030353A494E56414C49445F434F4D504F4E454E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xCC0 JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x775A4048 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCB9 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST SWAP1 POP PUSH2 0x749 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCE2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xD36 JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD49D21C0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xDAC JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3FFDD2F3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3031303A434F4D504F4E454E545F545950455F554E4B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x2727ABA7 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH2 0xE21 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x6 DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH2 0xE81 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xEB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xEBC DUP2 PUSH1 0x2 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xD541B5F22E9E402FB32220D566405510C49372D27B4F47F1D0DA1A153EA2007C SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xEFA DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBD1FE5D0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0xA PUSH2 0x18E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x8 DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH2 0xF73 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xFAE DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFB9 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP PUSH2 0xFC4 DUP3 PUSH2 0x9DA JUMP JUMPDEST ISZERO PUSH2 0x1067 JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x637D08F4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1002 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1016 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x103A SWAP2 SWAP1 PUSH2 0x1F91 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xF8D33755281AA5D41B12A70AE3947EE164EF541D786400D733B0B89DF719859E SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1B867C63 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0xA DUP4 PUSH2 0x1830 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1102 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x111C JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x111C JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x117F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x11A2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x11CC PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x120E JUMPI PUSH2 0x11ED PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1216 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x125C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0x6 PUSH2 0x18E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1279 PUSH1 0x6 DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x1286 JUMPI POP PUSH1 0x1 PUSH2 0x749 JUMP JUMPDEST PUSH2 0x1291 PUSH1 0x8 DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x129E JUMPI POP PUSH1 0x0 PUSH2 0x749 JUMP JUMPDEST PUSH2 0x12A9 PUSH1 0xA DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x12B6 JUMPI POP PUSH1 0x2 PUSH2 0x749 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030383A494E56414C49445F434F4D504F4E454E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1314 DUP3 PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x1360 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3031313A554E4B4E4F574E5F50524F445543545F4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x453 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x139D PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH2 0x13D8 DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x8E78CA4CC29C505D9901FD1582BA8584083396CE204151EDDD3E008749A24FE0 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x1416 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x59DACC6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0xA DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14E2 SWAP2 SWAP1 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0x0 SWAP2 DUP3 PUSH2 0x1559 DUP4 PUSH2 0x2161 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0xC SLOAD SWAP1 POP PUSH2 0x156E DUP2 PUSH1 0x1 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD0E0BA95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xD0E0BA95 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 MLOAD PUSH4 0x5F5F79F PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 MLOAD DUP7 SWAP6 POP PUSH1 0x3 SWAP5 SWAP4 SWAP2 SWAP3 PUSH4 0x17D7DE7C SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x162D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1665 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE0815F0D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1712 SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x1728 JUMPI PUSH2 0x1722 PUSH1 0x6 DUP3 PUSH2 0x196A JUMP JUMPDEST POP PUSH2 0x749 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9A82F890 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1775 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1799 SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x17A9 JUMPI PUSH2 0x1722 PUSH1 0x8 DUP3 PUSH2 0x196A JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x258D560C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x181A SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x749 JUMPI PUSH2 0x182A PUSH1 0xA DUP3 PUSH2 0x196A JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1869 DUP2 DUP4 PUSH2 0x1976 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SWAP2 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x18A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH32 0xD2248D3E400F6333D5DE6D43446115557CB942E75002AA7AD26F9CAC9B105B1A DUP4 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0x18DA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2138 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1844 DUP4 DUP4 PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1968 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1844 DUP4 DUP4 PUSH2 0x1F1F JUMP JUMPDEST DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1996 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x19B6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1A1C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032303A534F555243455F414E445F5441524745545F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x14D510551157D2511153951250D053 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1A3E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1AC9 JUMPI PUSH1 0x1 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1A66 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032313A435245415445445F494E56414C49445F5452 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x20A729A4AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH2 0x125C JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1AEB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1B9B JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B13 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1B3E JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B3C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D32323A50524F504F5345445F494E56414C49445F5452 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x20A729A4AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1BBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1C19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032333A4445434C494E45445F49535F46494E414C5F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5354415445 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1CEA JUMPI PUSH1 0x4 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C63 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1C8E JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C8C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032343A4143544956455F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x4 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D0C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D34 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1D5F JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D5D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032353A5041555345445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x5 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1DDD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1E8F JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1E05 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1E30 JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1E2E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032363A53555350454E4445445F494E56414C49445F PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x2A2920A729A4AA24A7A7 PUSH1 0xB1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032373A494E495449414C5F53544154455F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12105391131151 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1F0C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1F66 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1847 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1847 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F7F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F8A DUP2 PUSH2 0x219E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FA2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1F8A DUP2 PUSH2 0x219E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FBE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1F8A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FDE JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FF6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F8A DUP2 PUSH2 0x21B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2012 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1F8A DUP2 PUSH2 0x21B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x202E JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x2045 JUMPI PUSH2 0x2045 PUSH2 0x2188 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2045 JUMPI PUSH2 0x2045 PUSH2 0x2188 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x206D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1847 DUP3 DUP5 PUSH2 0x2035 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1847 DUP3 DUP5 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030323A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x544F525F53455256494345 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x29 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030313A4E4F545F434F4D504F4E454E545F4F574E45 PUSH1 0x40 DUP3 ADD MSTORE PUSH9 0x525F53455256494345 PUSH1 0xB8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x214C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2035 JUMP JUMPDEST PUSH2 0x2159 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2035 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2181 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x21B3 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x6D7253C522420B015643D5D348125E0E3E34A0BB911FA3CF3939A9D4 PUSH6 0x163864736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"4013:11230:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5145:766;;;;;;:::i;:::-;;:::i;:::-;;12578:105;;;;;;:::i;:::-;;:::i;:::-;;;2777:14:103;;2770:22;2752:41;;2740:2;2725:18;12578:105:75;;;;;;;;9520:366;;;;;;:::i;:::-;;:::i;8458:334::-;;;;;;:::i;:::-;;:::i;12251:97::-;;;:::i;:::-;;;2950:25:103;;;2938:2;2923:18;12251:97:75;2905:76:103;10118:299:75;;;;;;:::i;:::-;;:::i;12463:107::-;;;;;;:::i;:::-;;:::i;8110:340::-;;;;;;:::i;:::-;;:::i;7753:349::-;;;;;;:::i;:::-;;:::i;9894:216::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2568:32:103;;;2550:51;;2538:2;2523:18;9894:216:75;2505:102:103;6733:166:75;;;;;;:::i;:::-;6781:4;6821:18;;;:14;:18;;;;;;-1:-1:-1;;;;;6821:18:75;6858:32;;;6733:166;11544:503;;;;;;:::i;:::-;;:::i;10966:147::-;;;;;;:::i;:::-;11026:40;11086:19;;;:15;:19;;;;;;;;;10966:147;;;;;;;;:::i;9150:362::-;;;;;;:::i;:::-;;:::i;11403:133::-;;;;;;:::i;:::-;;:::i;7402:343::-;;;;;;:::i;:::-;;:::i;12354:101::-;;;:::i;11121:130::-;;;;;;:::i;:::-;;:::i;6907:487::-;;;;;;:::i;:::-;;:::i;12055:85::-;12122:15;;12055:85;;12691:109;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;12146:99:75:-;;;:::i;10425:533::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12808:226::-;;;;;;:::i;:::-;;:::i;8800:342::-;;;;;;:::i;:::-;;:::i;11259:136::-;;;;;;:::i;:::-;;:::i;5145:766::-;4791:44;-1:-1:-1;;;4791:19:75;:44::i;:::-;-1:-1:-1;;;;;4775:60:75;719:10:59;-1:-1:-1;;;;;4775:60:75;;4753:141;;;;-1:-1:-1;;;4753:141:75;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5292:41:75;::::1;;::::0;;;:21:::1;:41;::::0;;;;;:46;5284:97:::1;;;::::0;-1:-1:-1;;;5284:97:75;;8963:2:103;5284:97:75::1;::::0;::::1;8945:21:103::0;9002:2;8982:18;;;8975:30;9041:34;9021:18;;;9014:62;-1:-1:-1;;;9092:18:103;;;9085:36;9138:19;;5284:97:75::1;8935:228:103::0;5284:97:75::1;5400:18;:39;5419:9;-1:-1:-1::0;;;;;5419:17:75::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5400:39;;;;;;;;;;;;5443:1;5400:44;5392:100;;;::::0;-1:-1:-1;;;5392:100:75;;12188:2:103;5392:100:75::1;::::0;::::1;12170:21:103::0;12227:2;12207:18;;;12200:30;12266:34;12246:18;;;12239:62;-1:-1:-1;;;12317:18:103;;;12310:41;12368:19;;5392:100:75::1;12160:233:103::0;5392:100:75::1;5555:10;5568:28;5586:9;5568:17;:28::i;:::-;5555:41;;5660:139;5695:9;-1:-1:-1::0;;;;;5695:17:75::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5729:9;-1:-1:-1::0;;;;;5729:17:75::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5771:9;5796:2;5660:139;;;;;;;;;:::i;:::-;;;;;;;;5875:9;-1:-1:-1::0;;;;;5875:26:75::1;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4905:1;5145:766:::0;:::o;12578:105::-;12629:4;12644:36;12667:8;12677:2;12644:22;:36::i;:::-;12637:43;;12578:105;;;;:::o;9520:366::-;5010:46;-1:-1:-1;;;5010:19:75;:46::i;:::-;-1:-1:-1;;;;;4994:62:75;719:10:59;-1:-1:-1;;;;;4994:62:75;;4972:145;;;;-1:-1:-1;;;4972:145:75;;;;;;;:::i;:::-;9643:52:::1;9656:2;9660:34;9643:12;:52::i;:::-;9711:24;::::0;2950:25:103;;;9711:24:75::1;::::0;2938:2:103;2923:18;9711:24:75::1;;;;;;;9801:20;9824:16;9837:2;9824:12;:16::i;:::-;9801:39;;9851:9;-1:-1:-1::0;;;;;9851:25:75::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;8458:334:::0;4791:44;-1:-1:-1;;;4791:19:75;:44::i;:::-;-1:-1:-1;;;;;4775:60:75;719:10:59;-1:-1:-1;;;;;4775:60:75;;4753:141;;;;-1:-1:-1;;;4753:141:75;;;;;;;:::i;:::-;8557:50:::1;8570:2;8574:32;8557:12;:50::i;:::-;8623:22;::::0;2950:25:103;;;8623:22:75::1;::::0;2938:2:103;2923:18;8623:22:75::1;;;;;;;8709:20;8732:16;8745:2;8732:12;:16::i;:::-;8709:39;;8759:9;-1:-1:-1::0;;;;;8759:23:75::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;12251:97:::0;12291:13;12315:30;12336:8;12315:20;:30::i;:::-;12308:37;;12251:97;:::o;10118:299::-;10189:10;-1:-1:-1;;;;;10220:30:75;;10212:79;;;;-1:-1:-1;;;10212:79:75;;6564:2:103;10212:79:75;;;6546:21:103;6603:2;6583:18;;;6576:30;6642:34;6622:18;;;6615:62;-1:-1:-1;;;6693:18:103;;;6686:34;6737:19;;10212:79:75;6536:226:103;10212:79:75;-1:-1:-1;;;;;;10307:39:75;;;;;;:21;:39;;;;;;10367:6;10359:50;;;;-1:-1:-1;;;10359:50:75;;8603:2:103;10359:50:75;;;8585:21:103;8642:2;8622:18;;;8615:30;8681:33;8661:18;;;8654:61;8732:18;;10359:50:75;8575:181:103;12463:107:75;12515:4;12530:37;12553:9;12564:2;12530:22;:37::i;8110:340::-;5010:46;-1:-1:-1;;;5010:19:75;:46::i;:::-;-1:-1:-1;;;;;4994:62:75;719:10:59;-1:-1:-1;;;;;4994:62:75;;4972:145;;;;-1:-1:-1;;;4972:145:75;;;;;;;:::i;:::-;8212:50:::1;8225:2;8229:32;8212:12;:50::i;:::-;8278:23;::::0;2950:25:103;;;8278:23:75::1;::::0;2938:2:103;2923:18;8278:23:75::1;;;;;;;8366:20;8389:16;8402:2;8389:12;:16::i;:::-;8366:39;;8416:9;-1:-1:-1::0;;;;;8416:24:75::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;7753:349:::0;5010:46;-1:-1:-1;;;5010:19:75;:46::i;:::-;-1:-1:-1;;;;;4994:62:75;719:10:59;-1:-1:-1;;;;;4994:62:75;;4972:145;;;;-1:-1:-1;;;4972:145:75;;;;;;;:::i;:::-;7856:53:::1;7869:2;7873:35;7856:12;:53::i;:::-;7925:25;::::0;2950::103;;;7925::75::1;::::0;2938:2:103;2923:18;7925:25:75::1;;;;;;;8017:20;8040:16;8053:2;8040:12;:16::i;:::-;8017:39;;8067:9;-1:-1:-1::0;;;;;8067:25:75::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;9894:216:::0;9949:20;9994:18;;;:14;:18;;;;;;-1:-1:-1;;;;;9994:18:75;10031:32;10023:79;;;;-1:-1:-1;;;10023:79:75;;11373:2:103;10023:79:75;;;11355:21:103;11412:2;11392:18;;;11385:30;11451:34;11431:18;;;11424:62;-1:-1:-1;;;11502:18:103;;;11495:32;11544:19;;10023:79:75;11345:224:103;11544:503:75;11632:7;11673:32;11656:13;:49;;;;;;-1:-1:-1;;;11656:49:75;;;;;;;;;;11652:388;;;11716:7;;;;;;;;;-1:-1:-1;;;;;11716:7:75;-1:-1:-1;;;;;11716:27:75;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11709:36;;;;11652:388;11784:31;11767:13;:48;;;;;;-1:-1:-1;;;11767:48:75;;;;;;;;;;11763:277;;;11826:7;;;;;;;;;-1:-1:-1;;;;;11826:7:75;-1:-1:-1;;;;;11826:29:75;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11763:277;11896:33;11879:13;:50;;;;;;-1:-1:-1;;;11879:50:75;;;;;;;;;;11875:165;;;11940:7;;;;;;;;;-1:-1:-1;;;;;11940:7:75;-1:-1:-1;;;;;11940:29:75;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11875:165;11991:46;;-1:-1:-1;;;11991:46:75;;12600:2:103;11991:46:75;;;12582:21:103;12639:2;12619:18;;;12612:30;12678:34;12658:18;;;12651:62;-1:-1:-1;;;12729:18:103;;;12722:34;12773:19;;11991:46:75;12572:226:103;9150:362:75;4791:44;-1:-1:-1;;;4791:19:75;:44::i;:::-;-1:-1:-1;;;;;4775:60:75;719:10:59;-1:-1:-1;;;;;4775:60:75;;4753:141;;;;-1:-1:-1;;;4753:141:75;;;;;;;:::i;11403:133::-;11459:17;11496:32;11513:9;11524:3;11496:16;:32::i;7402:343::-;5010:46;-1:-1:-1;;;5010:19:75;:46::i;:::-;-1:-1:-1;;;;;4994:62:75;719:10:59;-1:-1:-1;;;;;4994:62:75;;4972:145;;;;-1:-1:-1;;;4972:145:75;;;;;;;:::i;:::-;7504:52:::1;7517:2;7521:34;7504:12;:52::i;:::-;7572:24;::::0;2950:25:103;;;7572:24:75::1;::::0;2938:2:103;2923:18;7572:24:75::1;;;;;;;7660:20;7683:16;7696:2;7683:12;:16::i;:::-;7660:39;;7710:9;-1:-1:-1::0;;;;;7710:25:75::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;12354:101:::0;12396:13;12420:32;12441:10;12420:20;:32::i;11121:130::-;11176:16;11212:31;11229:8;11239:3;11212:16;:31::i;6907:487::-;5010:46;-1:-1:-1;;;5010:19:75;:46::i;:::-;-1:-1:-1;;;;;4994:62:75;719:10:59;-1:-1:-1;;;;;4994:62:75;;4972:145;;;;-1:-1:-1;;;4972:145:75;;;;;;;:::i;:::-;7009:50:::1;7022:2;7026:32;7009:12;:50::i;:::-;7070:20;7093:16;7106:2;7093:12;:16::i;:::-;7070:39;;7126:13;7136:2;7126:9;:13::i;:::-;7122:119;;;7202:9;-1:-1:-1::0;;;;;7185:42:75::1;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7156:26;::::0;;;:22:::1;:26;::::0;;;;:73;;-1:-1:-1;;;;;;7156:73:75::1;-1:-1:-1::0;;;;;7156:73:75;;;::::1;::::0;;;::::1;::::0;;7122:119:::1;7258:24;::::0;2950:25:103;;;7258:24:75::1;::::0;2938:2:103;2923:18;7258:24:75::1;;;;;;;7358:9;-1:-1:-1::0;;;;;7358:26:75::1;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;12691:109:::0;12744:4;12759:38;12782:10;12794:2;12759:22;:38::i;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;10550:2:103;3146:190:47;;;10532:21:103;10589:2;10569:18;;;10562:30;10628:34;10608:18;;;10601:62;-1:-1:-1;;;10679:18:103;;;10672:44;10733:19;;3146:190:47;10522:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;4270:36:103;;3531:14:47;;4258:2:103;4243:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;12146:99:75:-;12187:13;12211:31;12232:9;12211:20;:31::i;10425:533::-;10484:38;10539:37;10562:9;10573:2;10539:22;:37::i;:::-;10535:416;;;-1:-1:-1;10600:32:75;10593:39;;10535:416;10654:36;10677:8;10687:2;10654:22;:36::i;:::-;10650:301;;;-1:-1:-1;10714:31:75;10707:38;;10650:301;10767:38;10790:10;10802:2;10767:22;:38::i;:::-;10763:188;;;-1:-1:-1;10829:33:75;10822:40;;10763:188;10895:44;;-1:-1:-1;;;10895:44:75;;9370:2:103;10895:44:75;;;9352:21:103;9409:2;9389:18;;;9382:30;9448:34;9428:18;;;9421:62;-1:-1:-1;;;9499:18:103;;;9492:32;9541:19;;10895:44:75;9342:224:103;12808:226:75;12871:19;12911:20;12921:9;12911;:20::i;:::-;12903:65;;;;-1:-1:-1;;;12903:65:75;;10189:2:103;12903:65:75;;;10171:21:103;;;10208:18;;;10201:30;10267:34;10247:18;;;10240:62;10319:18;;12903:65:75;10161:182:103;12903:65:75;-1:-1:-1;12993:33:75;;;;:22;:33;;;;;;-1:-1:-1;;;;;12993:33:75;;12808:226::o;8800:342::-;4791:44;-1:-1:-1;;;4791:19:75;:44::i;:::-;-1:-1:-1;;;;;4775:60:75;719:10:59;-1:-1:-1;;;;;4775:60:75;;4753:141;;;;-1:-1:-1;;;4753:141:75;;;;;;;:::i;:::-;8901:50:::1;8914:2;8918:32;8901:12;:50::i;:::-;8967:24;::::0;2950:25:103;;;8967:24:75::1;::::0;2938:2:103;2923:18;8967:24:75::1;;;;;;;9057:20;9080:16;9093:2;9080:12;:16::i;:::-;9057:39;;9107:9;-1:-1:-1::0;;;;;9107:25:75::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;11259:136:::0;11316:18;11354:33;11371:10;11383:3;11354:16;:33::i;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;2950:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;2923:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;4927:2:103;1703:113:88;;;4909:21:103;4966:2;4946:18;;;4939:30;5005:34;4985:18;;;4978:62;-1:-1:-1;;;5056:18:103;;;5049:35;5101:19;;1703:113:88;4899:227:103;5919:806:75;6068:15;:17;;6004:10;;;6068:17;;;:::i;:::-;;;;;;6101:15;;6096:20;;6164:52;6177:2;6181:34;6164:12;:52::i;:::-;6227:19;;-1:-1:-1;;;6227:19:75;;;;;2950:25:103;;;-1:-1:-1;;;;;6227:15:75;;;;;2923:18:103;;6227:19:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6302:18:75;;;;:14;:18;;;;;;;;:30;;-1:-1:-1;;;;;;6302:30:75;-1:-1:-1;;;;;6302:30:75;;;;;;;;6362:19;;-1:-1:-1;;;6362:19:75;;;;6302:18;;-1:-1:-1;6343:18:75;;6302;:30;;6362:17;;:19;;;;;6302:18;;6362:19;;;;;6302:30;6362:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6343:39;;;;;;;;;;;:44;;;;6442:2;6398:21;:41;6428:9;-1:-1:-1;;;;;6398:41:75;-1:-1:-1;;;;;6398:41:75;;;;;;;;;;;;:46;;;;6500:9;-1:-1:-1;;;;;6500:19:75;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6496:222;;;6525:32;6543:9;6554:2;6525:17;:32::i;:::-;;6496:222;;;6579:9;-1:-1:-1;;;;;6579:18:75;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6575:143;;;6603:31;6621:8;6631:2;6603:17;:31::i;6575:143::-;6656:9;-1:-1:-1;;;;;6656:20:75;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6652:66;;;6682:33;6700:10;6712:2;6682:17;:33::i;:::-;;5919:806;;;:::o;11029:144:64:-;11106:4;4250:19;;;:12;;;:19;;;;;;:24;;11129:37;11122:44;;11029:144;;;;;:::o;13042:411:75:-;13141:34;13178:28;;;:15;:28;;;;;;;;13219:41;13178:28;13251:8;13219:21;:41::i;:::-;13271:28;;;;:15;:28;;;;;:39;;13302:8;;13271:28;-1:-1:-1;;13271:39:75;;13302:8;13271:39;;;;;;-1:-1:-1;;;13271:39:75;;;;;;;;;;;;;;13388:57;13413:11;13426:8;13436;13388:57;;;;;;;;:::i;:::-;;;;;;;;13042:411;;;:::o;11254:112:64:-;11314:7;11340:19;11348:3;4444:18;;4362:107;11708:135;11779:7;11813:22;11817:3;11829:5;11813:3;:22::i;1460:64:88:-;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;11776:2:103;4880:69:47;;;11758:21:103;11815:2;11795:18;;;11788:30;11854:34;11834:18;;;11827:62;-1:-1:-1;;;11905:18:103;;;11898:41;11956:19;;4880:69:47;11748:233:103;4880:69:47;1460:64:88:o;10516:129:64:-;10583:4;10606:32;10611:3;10631:5;10606:4;:32::i;13461:1779:75:-;13661:8;13649:20;;;;;;-1:-1:-1;;;13649:20:75;;;;;;;;;:8;:20;;;;;;-1:-1:-1;;;13649:20:75;;;;;;;;;;;13641:94;;;;-1:-1:-1;;;13641:94:75;;9773:2:103;13641:94:75;;;9755:21:103;9812:2;9792:18;;;9785:30;9851:34;9831:18;;;9824:62;-1:-1:-1;;;9902:18:103;;;9895:45;9957:19;;13641:94:75;9745:237:103;13641:94:75;13772:33;13760:8;:45;;;;;;-1:-1:-1;;;13760:45:75;;;;;;;;;;13756:1477;;;13842:34;13830:8;:46;;;;;;-1:-1:-1;;;13830:46:75;;;;;;;;;;13822:117;;;;-1:-1:-1;;;13822:117:75;;5745:2:103;13822:117:75;;;5727:21:103;5784:2;5764:18;;;5757:30;5823:34;5803:18;;;5796:62;-1:-1:-1;;;5874:18:103;;;5867:38;5922:19;;13822:117:75;5717:230:103;13822:117:75;13756:1477;;;13973:34;13961:8;:46;;;;;;-1:-1:-1;;;13961:46:75;;;;;;;;;;13957:1276;;;14044:32;14032:8;:44;;;;;;-1:-1:-1;;;14032:44:75;;;;;;;;;;:112;;;-1:-1:-1;14110:34:75;14098:8;:46;;;;;;-1:-1:-1;;;14098:46:75;;;;;;;;;;14032:112;14024:183;;;;-1:-1:-1;;;14024:183:75;;6969:2:103;14024:183:75;;;6951:21:103;7008:2;6988:18;;;6981:30;7047:34;7027:18;;;7020:62;-1:-1:-1;;;7098:18:103;;;7091:38;7146:19;;14024:183:75;6941:230:103;13957:1276:75;14241:34;14229:8;:46;;;;;;-1:-1:-1;;;14229:46:75;;;;;;;;;;14225:1008;;;14292:47;;-1:-1:-1;;;14292:47:75;;7378:2:103;14292:47:75;;;7360:21:103;7417:2;7397:18;;;7390:30;7456:34;7436:18;;;7429:62;-1:-1:-1;;;7507:18:103;;;7500:35;7552:19;;14292:47:75;7350:227:103;14225:1008:75;14373:32;14361:8;:44;;;;;;-1:-1:-1;;;14361:44:75;;;;;;;;;;14357:876;;;14442:32;14430:8;:44;;;;;;-1:-1:-1;;;14430:44:75;;;;;;;;;;:113;;;-1:-1:-1;14508:35:75;14496:8;:47;;;;;;-1:-1:-1;;;14496:47:75;;;;;;;;;;14430:113;14422:183;;;;-1:-1:-1;;;14422:183:75;;10965:2:103;14422:183:75;;;10947:21:103;11004:2;10984:18;;;10977:30;11043:34;11023:18;;;11016:62;-1:-1:-1;;;11094:18:103;;;11087:37;11141:19;;14422:183:75;10937:229:103;14357:876:75;14639:32;14627:8;:44;;;;;;-1:-1:-1;;;14627:44:75;;;;;;;;;;14623:610;;;14708:32;14696:8;:44;;;;;;-1:-1:-1;;;14696:44:75;;;;;;;;;;:111;;;-1:-1:-1;14773:34:75;14761:8;:46;;;;;;-1:-1:-1;;;14761:46:75;;;;;;;;;;14696:111;14688:181;;;;-1:-1:-1;;;14688:181:75;;4519:2:103;14688:181:75;;;4501:21:103;4558:2;4538:18;;;4531:30;4597:34;4577:18;;;4570:62;-1:-1:-1;;;4648:18:103;;;4641:37;4695:19;;14688:181:75;4491:229:103;14623:610:75;14903:35;14891:8;:47;;;;;;-1:-1:-1;;;14891:47:75;;;;;;;;;;14887:346;;;14975:32;14963:8;:44;;;;;;-1:-1:-1;;;14963:44:75;;;;;;;;;;:111;;;-1:-1:-1;15040:34:75;15028:8;:46;;;;;;-1:-1:-1;;;15028:46:75;;;;;;;;;;14963:111;14955:184;;;;-1:-1:-1;;;14955:184:75;;8192:2:103;14955:184:75;;;8174:21:103;8231:2;8211:18;;;8204:30;8270:34;8250:18;;;8243:62;-1:-1:-1;;;8321:18:103;;;8314:40;8371:19;;14955:184:75;8164:232:103;14887:346:75;15172:49;;-1:-1:-1;;;15172:49:75;;7784:2:103;15172:49:75;;;7766:21:103;7823:2;7803:18;;;7796:30;7862:34;7842:18;;;7835:62;-1:-1:-1;;;7913:18:103;;;7906:37;7960:19;;15172:49:75;7756:229:103;4811:118:64;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;2113:404::-;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;14:257:103;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:297::-;;662:2;650:9;641:7;637:23;633:32;630:2;;;683:6;675;668:22;630:2;720:9;714:16;773:5;766:13;759:21;752:5;749:32;739:2;;800:6;792;785:22;844:194;;967:2;955:9;946:7;942:23;938:32;935:2;;;988:6;980;973:22;935:2;-1:-1:-1;1016:16:103;;925:113;-1:-1:-1;925:113:103:o;1324:286::-;;1454:2;1442:9;1433:7;1429:23;1425:32;1422:2;;;1475:6;1467;1460:22;1422:2;1519:9;1506:23;1538:42;1574:5;1538:42;:::i;1615:290::-;;1756:2;1744:9;1735:7;1731:23;1727:32;1724:2;;;1777:6;1769;1762:22;1724:2;1814:9;1808:16;1833:42;1869:5;1833:42;:::i;1910:190::-;;2022:2;2010:9;2001:7;1997:23;1993:32;1990:2;;;2043:6;2035;2028:22;1990:2;-1:-1:-1;2071:23:103;;1980:120;-1:-1:-1;1980:120:103:o;2105:145::-;2191:1;2184:5;2181:12;2171:2;;2197:18;;:::i;:::-;2226;;2161:89::o;2255:144::-;2340:1;2333:5;2330:12;2320:2;;2346:18;;:::i;2986:456::-;3233:25;;;3220:3;3205:19;;3267:57;3320:2;3305:18;;3297:6;3267:57;:::i;:::-;-1:-1:-1;;;;;3360:32:103;;;;3355:2;3340:18;;3333:60;3424:2;3409:18;3402:34;3187:255;;-1:-1:-1;;3187:255:103:o;3674:218::-;3825:2;3810:18;;3837:49;3814:9;3868:6;3837:49;:::i;3897:216::-;4047:2;4032:18;;4059:48;4036:9;4089:6;4059:48;:::i;5131:407::-;5333:2;5315:21;;;5372:2;5352:18;;;5345:30;5411:34;5406:2;5391:18;;5384:62;-1:-1:-1;;;5477:2:103;5462:18;;5455:41;5528:3;5513:19;;5305:233::o;5952:405::-;6154:2;6136:21;;;6193:2;6173:18;;;6166:30;6232:34;6227:2;6212:18;;6205:62;-1:-1:-1;;;6298:2:103;6283:18;;6276:39;6347:3;6332:19;;6126:231::o;12985:401::-;13221:25;;;13209:2;13194:18;;13255:58;13309:2;13294:18;;13286:6;13255:58;:::i;:::-;13322;13376:2;13365:9;13361:18;13353:6;13322:58;:::i;:::-;13176:210;;;;;;:::o;13391:236::-;;-1:-1:-1;;13451:17:103;;13448:2;;;-1:-1:-1;;;13491:33:103;;13547:4;13544:1;13537:15;13577:4;13498:3;13565:17;13448:2;-1:-1:-1;13619:1:103;13608:13;;13438:189::o;13632:127::-;13693:10;13688:3;13684:20;13681:1;13674:31;13724:4;13721:1;13714:15;13748:4;13745:1;13738:15;13764:131;-1:-1:-1;;;;;13839:31:103;;13829:42;;13819:2;;13885:1;13882;13875:12;13819:2;13809:86;:::o;13900:112::-;13986:1;13979:5;13976:12;13966:2;;14002:1;13999;13992:12"},"methodIdentifiers":{"approve(uint256)":"b759f954","archiveFromComponentOwner(uint256)":"6bc607b3","archiveFromInstanceOperator(uint256)":"0f5da3a6","components()":"ba62fbe4","decline(uint256)":"a0355f4e","exists(uint256)":"4f558e79","getComponent(uint256)":"4f27da18","getComponentId(address)":"2b1c7f73","getComponentState(uint256)":"5e966e45","getComponentType(uint256)":"dd51c86a","getOracleId(uint256)":"a5c0f5a1","getPolicyFlow(uint256)":"e61ae297","getProductId(uint256)":"9f77a605","getRequiredRole(uint8)":"5af89a47","getRiskpoolId(uint256)":"ff3f3883","initialize(address)":"c4d66de8","isOracle(uint256)":"09f63ed9","isProduct(uint256)":"3920200c","isRiskpool(uint256)":"ba80b8ed","oracles()":"2857373a","pause(uint256)":"136439dd","products()":"c71e261f","propose(address)":"01267951","resume(uint256)":"414000b5","riskpools()":"a054381f","suspend(uint256)":"4b865846","unpause(uint256)":"fabc1cbc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archiveFromComponentOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archiveFromInstanceOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"components\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getComponent\",\"outputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"component\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"}],\"name\":\"getComponentId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getComponentState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"componentState\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getComponentType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getOracleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"oracleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"}],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_policyFlow\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getProductId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"}],\"name\":\"getRequiredRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"products\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"component\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"riskpools\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"suspend\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract provides functionality to manage and control components in a system. The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. It also includes modifiers to restrict access to certain functions based on the caller's role. Functions: - `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. - `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. - `exists()`: Checks if a component with the given ID exists in the system. - `approve()`: Approves a component with the given ID, changing its state to \\\"Active\\\" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping. - `decline()`: Changes the state of a component with the given ID to \\\"Declined\\\" and emits an event. It also calls the `declineCallback` function of the component. - `suspend()`: Suspends a component with the given ID by changing its state to \\\"Suspended\\\" and emitting an event. It also calls the `suspendCallback` function of the component. - `resume()`: Resumes a component with the given ID by changing its state to \\\"Active\\\" and emitting an event. It also calls the `resumeCallback` function of the component. - `pause()`: Pauses a component with the given ID by changing its state to \\\"Paused\\\" and emitting an event. It also calls the `pauseCallback` function of the component. - `unpause()`: Unpauses a component with the given ID by changing its state to \\\"Active\\\" and emitting an event. It also calls the `unpauseCallback` function of the component. - `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to \\\"Archived\\\" and emitting an event. It also calls the `archiveCallback` function of the component. - `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to \\\"Archived\\\" and emitting an event. It also calls the `archiveCallback` function of the component. - `getComponent()`: Retrieves the component with the given ID. - `getComponentId()`: Retrieves the ID of a registered component given its address. - `getComponentType()`: Retrieves the component type of a given component ID. - `getComponentState()`: Retrieves the state of the component with the given ID. - `getOracleId()`: Retrieves the oracle ID at the specified index. - `getRiskpoolId()`: Retrieves the risk pool ID at the specified index. - `getProductId()`: Retrieves the product ID at the specified index. - `getRequiredRole()`: Retrieves the required role for a given component type. - `components()`: Returns the number of components currently stored in the contract. - `products()`: Returns the number of products in the `_products` set. - `oracles()`: Returns the number of oracles registered in the `_oracles` set. - `riskpools()`: Returns the number of risk pools in the set. The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. The contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/ComponentController.sol\":\"ComponentController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/LicenseController.sol":{"LicenseController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"address","name":"productAddress","type":"address"}],"name":"getAuthorizationStatus","outputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"bool","name":"isAuthorized","type":"bool"},{"internalType":"address","name":"policyFlow","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b610630806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063d3e9c31414610050575b600080fd5b61004e61004936600461056c565b61008b565b005b61006361005e36600461056c565b610215565b6040805193845291151560208401526001600160a01b03169082015260600160405180910390f35b600054610100900460ff16158080156100ab5750600054600160ff909116105b806100cc57506100ba30610329565b1580156100cc575060005460ff166001145b6101345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610157576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610181600090565b6541636365737360d01b146101c3576101a26541636365737360d01b61033c565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101cb610424565b8015610211576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600254604051632b1c7f7360e01b81526001600160a01b0383811660048301526000928392839290911690632b1c7f739060240160206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029991906105ca565b92506102a4836104c6565b60025460405163e61ae29760e01b8152600481018690529193506001600160a01b03169063e61ae2979060240160206040518083038186803b1580156102e957600080fd5b505afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610321919061058f565b929491935050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061058f565b90506001600160a01b0381166103375760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161012b565b600054610100900460ff1661048f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161012b565b6104a46810dbdb5c1bdb995b9d60ba1b61033c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006003600254604051635e966e4560e01b8152600481018590526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054691906105ab565b600681111561056557634e487b7160e01b600052602160045260246000fd5b1492915050565b60006020828403121561057d578081fd5b8135610588816105e2565b9392505050565b6000602082840312156105a0578081fd5b8151610588816105e2565b6000602082840312156105bc578081fd5b815160078110610588578182fd5b6000602082840312156105db578081fd5b5051919050565b6001600160a01b03811681146105f757600080fd5b5056fea2646970667358221220cea7b50d1ccd58df7ad365e06063b9cd6fc1a8baf876def1c3f83285ceb5b10164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x630 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xD3E9C314 EQ PUSH2 0x50 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x8B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x63 PUSH2 0x5E CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x215 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xAB JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xCC JUMPI POP PUSH2 0xBA ADDRESS PUSH2 0x329 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xCC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x134 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x181 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1C3 JUMPI PUSH2 0x1A2 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x33C JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1CB PUSH2 0x424 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x261 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x275 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x299 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST SWAP3 POP PUSH2 0x2A4 DUP4 PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE61AE297 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE61AE297 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x321 SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST SWAP3 SWAP5 SWAP2 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x39A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x12B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x48F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x12B JUMP JUMPDEST PUSH2 0x4A4 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x33C JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x522 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x5AB JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x565 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x588 DUP2 PUSH2 0x5E2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x588 DUP2 PUSH2 0x5E2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5BC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x588 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5DB JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCE 0xA7 0xB5 0xD SHR 0xCD PC 0xDF PUSH27 0xD365E06063B9CD6FC1A8BAF876DEF1C3F83285CEB5B10164736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"2291:1126:76:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;2291:1126:76;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;2291:1126:76;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3542:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"642:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"688:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"697:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"705:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"690:6:103"},"nodeType":"YulFunctionCall","src":"690:22:103"},"nodeType":"YulExpressionStatement","src":"690:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"663:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"672:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"659:3:103"},"nodeType":"YulFunctionCall","src":"659:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"684:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"655:3:103"},"nodeType":"YulFunctionCall","src":"655:32:103"},"nodeType":"YulIf","src":"652:2:103"},{"nodeType":"YulVariableDeclaration","src":"723:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"742:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"736:5:103"},"nodeType":"YulFunctionCall","src":"736:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"727:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"785:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"794:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"802:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"787:6:103"},"nodeType":"YulFunctionCall","src":"787:22:103"},"nodeType":"YulExpressionStatement","src":"787:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"774:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"781:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"771:2:103"},"nodeType":"YulFunctionCall","src":"771:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"764:6:103"},"nodeType":"YulFunctionCall","src":"764:20:103"},"nodeType":"YulIf","src":"761:2:103"},{"nodeType":"YulAssignment","src":"820:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"830:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"820:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"608:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"619:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"631:6:103","type":""}],"src":"542:299:103"},{"body":{"nodeType":"YulBlock","src":"927:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"973:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"982:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"990:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"975:6:103"},"nodeType":"YulFunctionCall","src":"975:22:103"},"nodeType":"YulExpressionStatement","src":"975:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"948:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"957:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"944:3:103"},"nodeType":"YulFunctionCall","src":"944:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"969:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"940:3:103"},"nodeType":"YulFunctionCall","src":"940:32:103"},"nodeType":"YulIf","src":"937:2:103"},{"nodeType":"YulAssignment","src":"1008:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1024:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1018:5:103"},"nodeType":"YulFunctionCall","src":"1018:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1008:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"893:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"904:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"916:6:103","type":""}],"src":"846:194:103"},{"body":{"nodeType":"YulBlock","src":"1146:102:103","statements":[{"nodeType":"YulAssignment","src":"1156:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1168:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1179:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1164:3:103"},"nodeType":"YulFunctionCall","src":"1164:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1156:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1198:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1213:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1229:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1234:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1225:3:103"},"nodeType":"YulFunctionCall","src":"1225:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1238:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1221:3:103"},"nodeType":"YulFunctionCall","src":"1221:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1209:3:103"},"nodeType":"YulFunctionCall","src":"1209:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1191:6:103"},"nodeType":"YulFunctionCall","src":"1191:51:103"},"nodeType":"YulExpressionStatement","src":"1191:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1115:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1126:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1137:4:103","type":""}],"src":"1045:203:103"},{"body":{"nodeType":"YulBlock","src":"1354:76:103","statements":[{"nodeType":"YulAssignment","src":"1364:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1376:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1387:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1372:3:103"},"nodeType":"YulFunctionCall","src":"1372:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1364:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1417:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1399:6:103"},"nodeType":"YulFunctionCall","src":"1399:25:103"},"nodeType":"YulExpressionStatement","src":"1399:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1323:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1334:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1345:4:103","type":""}],"src":"1253:177:103"},{"body":{"nodeType":"YulBlock","src":"1542:87:103","statements":[{"nodeType":"YulAssignment","src":"1552:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1564:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1575:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1560:3:103"},"nodeType":"YulFunctionCall","src":"1560:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1552:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1594:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1609:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1617:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1605:3:103"},"nodeType":"YulFunctionCall","src":"1605:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1587:6:103"},"nodeType":"YulFunctionCall","src":"1587:36:103"},"nodeType":"YulExpressionStatement","src":"1587:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1511:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1522:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1533:4:103","type":""}],"src":"1435:194:103"},{"body":{"nodeType":"YulBlock","src":"1808:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1825:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1836:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1818:6:103"},"nodeType":"YulFunctionCall","src":"1818:21:103"},"nodeType":"YulExpressionStatement","src":"1818:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1859:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1870:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1855:3:103"},"nodeType":"YulFunctionCall","src":"1855:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1875:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1848:6:103"},"nodeType":"YulFunctionCall","src":"1848:30:103"},"nodeType":"YulExpressionStatement","src":"1848:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1898:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1909:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1894:3:103"},"nodeType":"YulFunctionCall","src":"1894:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1914:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1887:6:103"},"nodeType":"YulFunctionCall","src":"1887:62:103"},"nodeType":"YulExpressionStatement","src":"1887:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1980:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1965:3:103"},"nodeType":"YulFunctionCall","src":"1965:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1985:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1958:6:103"},"nodeType":"YulFunctionCall","src":"1958:35:103"},"nodeType":"YulExpressionStatement","src":"1958:35:103"},{"nodeType":"YulAssignment","src":"2002:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2014:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2025:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2010:3:103"},"nodeType":"YulFunctionCall","src":"2010:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2002:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1785:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1799:4:103","type":""}],"src":"1634:401:103"},{"body":{"nodeType":"YulBlock","src":"2214:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2231:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2242:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2224:6:103"},"nodeType":"YulFunctionCall","src":"2224:21:103"},"nodeType":"YulExpressionStatement","src":"2224:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2265:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2276:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2261:3:103"},"nodeType":"YulFunctionCall","src":"2261:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2281:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2254:6:103"},"nodeType":"YulFunctionCall","src":"2254:30:103"},"nodeType":"YulExpressionStatement","src":"2254:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2315:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2300:3:103"},"nodeType":"YulFunctionCall","src":"2300:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2320:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2293:6:103"},"nodeType":"YulFunctionCall","src":"2293:62:103"},"nodeType":"YulExpressionStatement","src":"2293:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2375:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2386:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2371:3:103"},"nodeType":"YulFunctionCall","src":"2371:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2391:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2364:6:103"},"nodeType":"YulFunctionCall","src":"2364:44:103"},"nodeType":"YulExpressionStatement","src":"2364:44:103"},{"nodeType":"YulAssignment","src":"2417:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2440:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2425:3:103"},"nodeType":"YulFunctionCall","src":"2425:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2417:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2191:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2205:4:103","type":""}],"src":"2040:410:103"},{"body":{"nodeType":"YulBlock","src":"2629:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2646:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2657:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2639:6:103"},"nodeType":"YulFunctionCall","src":"2639:21:103"},"nodeType":"YulExpressionStatement","src":"2639:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2691:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2676:3:103"},"nodeType":"YulFunctionCall","src":"2676:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2696:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2669:6:103"},"nodeType":"YulFunctionCall","src":"2669:30:103"},"nodeType":"YulExpressionStatement","src":"2669:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2730:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2715:3:103"},"nodeType":"YulFunctionCall","src":"2715:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2735:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2708:6:103"},"nodeType":"YulFunctionCall","src":"2708:62:103"},"nodeType":"YulExpressionStatement","src":"2708:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2790:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2801:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2786:3:103"},"nodeType":"YulFunctionCall","src":"2786:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2806:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2779:6:103"},"nodeType":"YulFunctionCall","src":"2779:41:103"},"nodeType":"YulExpressionStatement","src":"2779:41:103"},{"nodeType":"YulAssignment","src":"2829:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2841:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2852:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2837:3:103"},"nodeType":"YulFunctionCall","src":"2837:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2829:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2606:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2620:4:103","type":""}],"src":"2455:407:103"},{"body":{"nodeType":"YulBlock","src":"2968:76:103","statements":[{"nodeType":"YulAssignment","src":"2978:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2990:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3001:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2986:3:103"},"nodeType":"YulFunctionCall","src":"2986:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2978:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3020:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3031:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3013:6:103"},"nodeType":"YulFunctionCall","src":"3013:25:103"},"nodeType":"YulExpressionStatement","src":"3013:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2937:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2948:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2959:4:103","type":""}],"src":"2867:177:103"},{"body":{"nodeType":"YulBlock","src":"3200:204:103","statements":[{"nodeType":"YulAssignment","src":"3210:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3233:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3218:3:103"},"nodeType":"YulFunctionCall","src":"3218:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3210:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3252:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3263:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3245:6:103"},"nodeType":"YulFunctionCall","src":"3245:25:103"},"nodeType":"YulExpressionStatement","src":"3245:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3290:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3301:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3286:3:103"},"nodeType":"YulFunctionCall","src":"3286:18:103"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3320:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3313:6:103"},"nodeType":"YulFunctionCall","src":"3313:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3306:6:103"},"nodeType":"YulFunctionCall","src":"3306:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3279:6:103"},"nodeType":"YulFunctionCall","src":"3279:50:103"},"nodeType":"YulExpressionStatement","src":"3279:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3360:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3345:3:103"},"nodeType":"YulFunctionCall","src":"3345:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3369:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3385:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3390:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3381:3:103"},"nodeType":"YulFunctionCall","src":"3381:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3394:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3377:3:103"},"nodeType":"YulFunctionCall","src":"3377:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3365:3:103"},"nodeType":"YulFunctionCall","src":"3365:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3338:6:103"},"nodeType":"YulFunctionCall","src":"3338:60:103"},"nodeType":"YulExpressionStatement","src":"3338:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_bool_t_address__to_t_uint256_t_bool_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3153:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3164:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3172:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3180:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3191:4:103","type":""}],"src":"3049:355:103"},{"body":{"nodeType":"YulBlock","src":"3454:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"3518:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3527:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3530:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3520:6:103"},"nodeType":"YulFunctionCall","src":"3520:12:103"},"nodeType":"YulExpressionStatement","src":"3520:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3477:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3488:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3503:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3508:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3499:3:103"},"nodeType":"YulFunctionCall","src":"3499:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3512:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3495:3:103"},"nodeType":"YulFunctionCall","src":"3495:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3484:3:103"},"nodeType":"YulFunctionCall","src":"3484:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3474:2:103"},"nodeType":"YulFunctionCall","src":"3474:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3467:6:103"},"nodeType":"YulFunctionCall","src":"3467:50:103"},"nodeType":"YulIf","src":"3464:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3443:5:103","type":""}],"src":"3409:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bool_t_address__to_t_uint256_t_bool_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), iszero(iszero(value1)))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063d3e9c31414610050575b600080fd5b61004e61004936600461056c565b61008b565b005b61006361005e36600461056c565b610215565b6040805193845291151560208401526001600160a01b03169082015260600160405180910390f35b600054610100900460ff16158080156100ab5750600054600160ff909116105b806100cc57506100ba30610329565b1580156100cc575060005460ff166001145b6101345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610157576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610181600090565b6541636365737360d01b146101c3576101a26541636365737360d01b61033c565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101cb610424565b8015610211576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600254604051632b1c7f7360e01b81526001600160a01b0383811660048301526000928392839290911690632b1c7f739060240160206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029991906105ca565b92506102a4836104c6565b60025460405163e61ae29760e01b8152600481018690529193506001600160a01b03169063e61ae2979060240160206040518083038186803b1580156102e957600080fd5b505afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610321919061058f565b929491935050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061058f565b90506001600160a01b0381166103375760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161012b565b600054610100900460ff1661048f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161012b565b6104a46810dbdb5c1bdb995b9d60ba1b61033c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006003600254604051635e966e4560e01b8152600481018590526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054691906105ab565b600681111561056557634e487b7160e01b600052602160045260246000fd5b1492915050565b60006020828403121561057d578081fd5b8135610588816105e2565b9392505050565b6000602082840312156105a0578081fd5b8151610588816105e2565b6000602082840312156105bc578081fd5b815160078110610588578182fd5b6000602082840312156105db578081fd5b5051919050565b6001600160a01b03811681146105f757600080fd5b5056fea2646970667358221220cea7b50d1ccd58df7ad365e06063b9cd6fc1a8baf876def1c3f83285ceb5b10164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xD3E9C314 EQ PUSH2 0x50 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x8B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x63 PUSH2 0x5E CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x215 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xAB JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xCC JUMPI POP PUSH2 0xBA ADDRESS PUSH2 0x329 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xCC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x134 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x181 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1C3 JUMPI PUSH2 0x1A2 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x33C JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1CB PUSH2 0x424 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x261 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x275 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x299 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST SWAP3 POP PUSH2 0x2A4 DUP4 PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE61AE297 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE61AE297 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x321 SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST SWAP3 SWAP5 SWAP2 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x39A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x12B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x48F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x12B JUMP JUMPDEST PUSH2 0x4A4 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x33C JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x522 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x5AB JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x565 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x588 DUP2 PUSH2 0x5E2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x588 DUP2 PUSH2 0x5E2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5BC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x588 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5DB JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCE 0xA7 0xB5 0xD SHR 0xCD PC 0xDF PUSH27 0xD365E06063B9CD6FC1A8BAF876DEF1C3F83285CEB5B10164736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"2291:1126:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1143:232:88;;;;;;:::i;:::-;;:::i;:::-;;2627:348:76;;;;;;:::i;:::-;;:::i;:::-;;;;3245:25:103;;;3313:14;;3306:22;3301:2;3286:18;;3279:50;-1:-1:-1;;;;;3365:32:103;3345:18;;;3338:60;3233:2;3218:18;2627:348:76;;;;;;;1143:232:88;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;2242:2:103;3146:190:47;;;2224:21:103;2281:2;2261:18;;;2254:30;2320:34;2300:18;;;2293:62;-1:-1:-1;;;2371:18:103;;;2364:44;2425:19;;3146:190:47;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;1587:36:103;;3531:14:47;;1575:2:103;1560:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;2627:348:76:-;2821:10;;:41;;-1:-1:-1;;;2821:41:76;;-1:-1:-1;;;;;1209:32:103;;;2821:41:76;;;1191:51:103;2737:17:76;;;;;;2821:10;;;;:25;;1164:18:103;;2821:41:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2809:53;;2887:23;2900:9;2887:12;:23::i;:::-;2933:10;;:35;;-1:-1:-1;;;2933:35:76;;;;;1399:25:103;;;2872:38:76;;-1:-1:-1;;;;;;2933:10:76;;:24;;1372:18:103;;2933:35:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2627:348;;;;-1:-1:-1;;2627:348:76:o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;1399:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;1372:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;1836:2:103;1703:113:88;;;1818:21:103;1875:2;1855:18;;;1848:30;1914:34;1894:18;;;1887:62;-1:-1:-1;;;1965:18:103;;;1958:35;2010:19;;1703:113:88;1808:227:103;2407:146:76;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;2657:2:103;4880:69:47;;;2639:21:103;2696:2;2676:18;;;2669:30;2735:34;2715:18;;;2708:62;-1:-1:-1;;;2786:18:103;;;2779:41;2837:19;;4880:69:47;2629:233:103;4880:69:47;2513:32:76::1;-1:-1:-1::0;;;2513:19:76::1;:32::i;:::-;2480:10;:66:::0;;-1:-1:-1;;;;;;2480:66:76::1;-1:-1:-1::0;;;;;2480:66:76;;;::::1;::::0;;;::::1;::::0;;2407:146::o;2981:169::-;3045:4;3111:32;3068:10;;:39;;-1:-1:-1;;;3068:39:76;;;;;1399:25:103;;;-1:-1:-1;;;;;3068:10:76;;;;:28;;1372:18:103;;3068:39:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:75;;;;;;-1:-1:-1;;;3068:75:76;;;;;;;;;;;2981:169;-1:-1:-1;;2981:169:76:o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:299::-;;684:2;672:9;663:7;659:23;655:32;652:2;;;705:6;697;690:22;652:2;742:9;736:16;781:1;774:5;771:12;761:2;;802:6;794;787:22;846:194;;969:2;957:9;948:7;944:23;940:32;937:2;;;990:6;982;975:22;937:2;-1:-1:-1;1018:16:103;;927:113;-1:-1:-1;927:113:103:o;3409:131::-;-1:-1:-1;;;;;3484:31:103;;3474:42;;3464:2;;3530:1;3527;3520:12;3464:2;3454:86;:::o"},"methodIdentifiers":{"getAuthorizationStatus(address)":"d3e9c314","initialize(address)":"c4d66de8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"getAuthorizationStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"policyFlow\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract serves as a controller contract for managing licenses related to products in an insurance ecosystem. The contract implements the `ILicense` interface and extends the `CoreController` contract. The contract imports two other contracts: `ComponentController.sol` and `CoreController.sol`, which are expected to be located in specific file paths. It also imports several interfaces from the \\\"etherisc/gif-interface\\\" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`. The contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract. Functions: - `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract. - `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function. - `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`. - `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`. Overall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/LicenseController.sol\":\"LicenseController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/ILicense.sol\":{\"keccak256\":\"0x2fcefcbe60dfa44e7a1d947ae2059ccfdc3d1a151a8604fb7e96c734e0ffb9be\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6af56dc46b2adeb0c0d88ccd0ca4e9857195c4d647ccf7e3df61a91da24f45ab\",\"dweb:/ipfs/QmX1eYC9nFwFE4PJchjApCDYgErdrtfS9qYEtzbbfc4Ssz\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/LicenseController.sol\":{\"keccak256\":\"0x8a44e4fc75ecb3b2732789ecc20b02db522a93c9411e362bcacc66e01b6063e0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://598cf99c69ba3559eac59b8504585ba5671cd446fbe2410355f83550fc37e760\",\"dweb:/ipfs/QmawgBEk71ZqveRpi9F4XDUY8ZWJnfg7CTb7AUwc9wGpxr\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/PolicyController.sol":{"PolicyController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogApplicationCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"}],"name":"LogApplicationPremiumAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogApplicationSumInsuredAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationUnderwritten","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"LogClaimClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"LogClaimConfirmed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"LogClaimCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"LogClaimDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"}],"name":"LogMetadataCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"}],"name":"LogMetadataStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payoutId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogPayoutCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"LogPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyExpired","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumExpectedAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"}],"name":"LogPolicyPremiumAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogPremiumCollected","type":"event"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"applications","outputs":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"claims","outputs":[{"internalType":"enum IPolicy.ClaimState","name":"state","type":"uint8"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"uint256","name":"paidAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"closeClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"closePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"confirmClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createClaim","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"createPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createPolicyFlow","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"declineApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"declineClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"expirePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getApplication","outputs":[{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"getClaim","outputs":[{"components":[{"internalType":"enum IPolicy.ClaimState","name":"state","type":"uint8"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"uint256","name":"paidAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Claim","name":"claim","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getMetadata","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Metadata","name":"_metadata","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getNumberOfClaims","outputs":[{"internalType":"uint256","name":"numberOfClaims","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getNumberOfPayouts","outputs":[{"internalType":"uint256","name":"numberOfPayouts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"getPayout","outputs":[{"components":[{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"enum IPolicy.PayoutState","name":"state","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Payout","name":"payout","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getPolicy","outputs":[{"components":[{"internalType":"enum IPolicy.PolicyState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"},{"internalType":"uint256","name":"premiumPaidAmount","type":"uint256"},{"internalType":"uint256","name":"claimsCount","type":"uint256"},{"internalType":"uint256","name":"openClaimsCount","type":"uint256"},{"internalType":"uint256","name":"payoutMaxAmount","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Policy","name":"policy","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"metadata","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"payoutCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"payouts","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"enum IPolicy.PayoutState","name":"state","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"policies","outputs":[{"internalType":"enum IPolicy.PolicyState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"},{"internalType":"uint256","name":"premiumPaidAmount","type":"uint256"},{"internalType":"uint256","name":"claimsCount","type":"uint256"},{"internalType":"uint256","name":"openClaimsCount","type":"uint256"},{"internalType":"uint256","name":"payoutMaxAmount","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"revokeApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwriteApplication","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6147c880620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063a1814a1a1161010f578063c4d66de8116100a2578063e3ebdea511610071578063e3ebdea5146104d8578063eb96cbed146104eb578063ec935668146104fe578063fe64372b14610511576101e5565b8063c4d66de814610420578063cef58f1314610433578063db42b77b14610453578063ddbfd8ef14610466576101e5565b8063adcadb28116100de578063adcadb28146103c7578063b1e25988146103da578063bc506f64146103ed578063be183b1114610400576101e5565b8063a1814a1a1461036c578063a3f685f91461037f578063a427056e1461039f578063a5961b4c146103a7576101e5565b80634e02c63f116101875780637f22c2d9116101565780637f22c2d9146103015780637f29dba21461032157806380f2122c146103345780639e81f96a14610359576101e5565b80634e02c63f146102a35780635c955288146102b65780636780336e146102c95780637122ba06146102dc576101e5565b806347e3b138116101c357806347e3b138146102455780634c14ccc2146102585780634cafa1211461026b5780634cda0de914610290576101e5565b8063296d6c7d146101ea57806330a73da5146101ff578063357f030a14610212575b600080fd5b6101fd6101f83660046141f4565b610524565b005b6101fd61020d366004614266565b6107a6565b6102326102203660046141f4565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b6101fd6102533660046141f4565b610b85565b6101fd6102663660046141f4565b610d4a565b61027e6102793660046141f4565b61104f565b60405161023c9695949392919061440e565b6101fd61029e36600461420c565b611113565b6101fd6102b1366004614266565b6113bb565b6101fd6102c43660046141f4565b611702565b6101fd6102d7366004614291565b6118c3565b6102ef6102ea3660046141f4565b611bac565b60405161023c969594939291906143a4565b61031461030f36600461420c565b611bea565b60405161023c91906144fe565b6101fd61032f36600461420c565b611db2565b61034761034236600461420c565b612157565b60405161023c96959493929190614660565b61027e61036736600461420c565b612196565b61023261037a36600461417a565b6121d5565b61039261038d3660046141f4565b612576565b60405161023c91906145f3565b600854610232565b6103ba6103b53660046141f4565b6126e0565b60405161023c9190614563565b6101fd6103d53660046141f4565b6128a6565b6102326103e83660046141f4565b612b6b565b6103146103fb3660046141f4565b612b80565b61023261040e3660046141f4565b60009081526007602052604090205490565b6101fd61042e36600461413b565b612d40565b61044661044136600461420c565b612ebe565b60405161023c91906145b0565b610232610461366004614291565b613080565b6104c36104743660046141f4565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460089097015460ff90961697949693959293919290919089565b60405161023c9998979695949392919061443c565b6101fd6104e636600461420c565b61346c565b6101fd6104f93660046141f4565b61358f565b61023261050c36600461422d565b6137fe565b6101fd61051f36600461420c565b613b0e565b65506f6c69637960d01b61053781613e6b565b6001600160a01b0316306001600160a01b0316146105705760405162461bcd60e51b815260040161056790614486565b60405180910390fd5b61058a6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146105ba5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546106275760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031393a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546106975760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032303a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff1660038111156106bd57634e487b7160e01b600052602160045260246000fd5b1461071a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032313a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff1990811660031782554260058084018290556002858101805490941617928390558401556040516000805160206147738339815191529161076491879160ff16906143f1565b60405180910390a16040518481527fd38021ec2bcd4d63a80341a60be320a74cd71c01b04a4f7aac74ef6593d8e5e3906020015b60405180910390a150505050565b65506f6c69637960d01b6107b981613e6b565b6001600160a01b0316306001600160a01b0316146107e95760405162461bcd60e51b815260040161056790614486565b6108036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146108335760405162461bcd60e51b8152600401610567906144bd565b600084815260036020526040902060048101541580159061087757506002815460ff16600381111561087557634e487b7160e01b600052602160045260246000fd5b145b6108d45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032343a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b80600201548311156109475760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f432d3032363a4150504c49434154494f4e5f53554d5f494e60448201527514d554915117d25390d4915054d157d253959053125160521b6064820152608401610567565b600085815260046020526040902060078101541580159061098b57506000815460ff16600281111561098957634e487b7160e01b600052602160045260246000fd5b145b6109e35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032373a504f4c4943595f4143434553535f494e564160448201526213125160ea1b6064820152608401610567565b6000851180156109f7575080600201548510155b8015610a0257508385105b610a605760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f432d3032353a4150504c49434154494f4e5f5052454d49556044820152681357d253959053125160ba1b6064820152608401610567565b81600201548414610acc57600282015460408051888152602081019290925281018590527fa749e55ffd0f07193966d7c449d6238c6514c6b3eb5e8ab21b3ea9d94a5c21789060600160405180910390a160028201849055426005808401829055820185905560088201555b81600101548514610b7d57600182015460408051888152602081019290925281018690527f23e948a9dc44669750ea8ea8b7ca46c359534bd0f04e9260408a7e9bf8c7a5569060600160405180910390a1600182810186905542600584015581015460408051888152602081019290925281018690527ff392e5df923d5d0b6d6c6301c53c86e1c75f58c1c637200c3193dd589e5c8a019060600160405180910390a1600181018590554260088201555b505050505050565b65506f6c69637960d01b610b9881613e6b565b6001600160a01b0316306001600160a01b031614610bc85760405162461bcd60e51b815260040161056790614486565b610be26d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610c125760405162461bcd60e51b8152600401610567906144bd565b60008281526004602052604090206007810154610c7d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032383a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff166002811115610ca357634e487b7160e01b600052602160045260246000fd5b14610d005760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032393a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660011781554260088201556040518381527ff1950800da95964fdd42242722ccdfe6d9dc13d5d4dc7eafefeab77373e3c9ec906020015b60405180910390a1505050565b65506f6c69637960d01b610d5d81613e6b565b6001600160a01b0316306001600160a01b031614610d8d5760405162461bcd60e51b815260040161056790614486565b610da76d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610dd75760405162461bcd60e51b8152600401610567906144bd565b6000828152600360208190526040808320815160c08101909252805491929091839160ff90911690811115610e1c57634e487b7160e01b600052602160045260246000fd5b6003811115610e3b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054610e63906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8f906146b8565b8015610edc5780601f10610eb157610100808354040283529160200191610edc565b820191906000526020600020905b815481529060010190602001808311610ebf57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151118015610f2f5750600281516003811115610f2d57634e487b7160e01b600052602160045260246000fd5b145b610f8c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032323a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b6000838152600460205260409020600781015415610ff85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032333a504f4c4943595f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b805460ff191681556020828101516001830155604080840151600584015542600784018190556008840155518581527f0b979eae60510a4a065f45ddd8a0c9af7ba4d241e253b17bdee3043c2fb992e99101610798565b6003602081905260009182526040909120805460018201546002830154938301805460ff9093169491939192611084906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546110b0906146b8565b80156110fd5780601f106110d2576101008083540402835291602001916110fd565b820191906000526020600020905b8154815290600101906020018083116110e057829003601f168201915b5050505050908060040154908060050154905086565b65506f6c69637960d01b61112681613e6b565b6001600160a01b0316306001600160a01b0316146111565760405162461bcd60e51b815260040161056790614486565b6111706d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146111a05760405162461bcd60e51b8152600401610567906144bd565b6000838152600460205260409020600781015461120b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3036303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116112705760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3036313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b6000848152600560209081526040808320868452909152902060048101546112e55760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3036323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561130b57634e487b7160e01b600052602160045260246000fd5b146113625760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3036333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff191660021781554260058201819055600883015560408051868152602081018690527f5ea526dbb5ca484c7716dcc966fdfc289530cc595ebc9ec7bfda25d010d1a2fc91015b60405180910390a15050505050565b65506f6c69637960d01b6113ce81613e6b565b6001600160a01b0316306001600160a01b0316146113fe5760405162461bcd60e51b815260040161056790614486565b6114186d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146114485760405162461bcd60e51b8152600401610567906144bd565b600084815260046020526040902060078101546114b35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3035303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116115185760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b806005015483826006015461152d9190614672565b111561158c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035323a5041594f55545f4d41585f414d4f554e545f604482015267115610d15151115160c21b6064820152608401610567565b6000858152600560209081526040808320878452909152902060048101546116015760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3035333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561162757634e487b7160e01b600052602160045260246000fd5b1461167e5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3035343a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff19166001908117825581018490554260058201556006820180548591906000906116ad908490614672565b909155505042600883015560408051878152602081018790529081018590527fa39b09b76ccf7db94096e2c5a058215f9b2302b85de726e37edb99efdb6fb2c6906060015b60405180910390a1505050505050565b65506f6c69637960d01b61171581613e6b565b6001600160a01b0316306001600160a01b0316146117455760405162461bcd60e51b815260040161056790614486565b61175f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461178f5760405162461bcd60e51b8152600401610567906144bd565b600082815260036020526040902060048101546117ff5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031373a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561182557634e487b7160e01b600052602160045260246000fd5b146118825760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031383a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660021781554260058201556040518381527f67f56ed3a623b73566d40f65cba052fc97ca9df8afb800a885c2a4fe0228c1f890602001610d3d565b65506f6c69637960d01b6118d681613e6b565b6001600160a01b0316306001600160a01b0316146119065760405162461bcd60e51b815260040161056790614486565b6119206d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146119505760405162461bcd60e51b8152600401610567906144bd565b600086815260026020526040902060048101546119bd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b6000878152600360205260409020600481015415611a2e5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031313a4150504c49434154494f4e5f414c52454144604482015267595f45584953545360c01b6064820152608401610567565b60008711611a885760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3031323a5052454d49554d5f414d4f554e545f5a45526044820152604f60f81b6064820152608401610567565b868611611aea5760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a504f432d3031333a53554d5f494e53555245445f414d4f554e5460448201526917d513d3d7d4d350531360b21b6064820152608401610567565b805460ff191681556001810187905560028101869055611b0e60038201868661405b565b504260048201819055600580830182905560028401805460ff1916600117908190559084019190915560405160008051602061477383398151915291611b59918b9160ff16906143f1565b60405180910390a160408051898152602081018990529081018790527f71b9122c9f32160952b44f0e76b53474f59a5cd9b98ccdfb5ff20672fcae34129060600160405180910390a15050505050505050565b600260208190526000918252604090912080546001820154928201546003830180546001600160a01b03909316949360ff90921692611084906146b8565b611c246040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600083815260056020908152604080832085845290915290819020815160c081019092528054829060ff166003811115611c6e57634e487b7160e01b600052602160045260246000fd5b6003811115611c8d57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054611cb5906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce1906146b8565b8015611d2e5780601f10611d0357610100808354040283529160200191611d2e565b820191906000526020600020905b815481529060010190602001808311611d1157829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3130333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b92915050565b65506f6c69637960d01b611dc581613e6b565b6001600160a01b0316306001600160a01b031614611df55760405162461bcd60e51b815260040161056790614486565b611e0f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614611e3f5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154611eaa5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3037303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411611f0f5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3037313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260056020908152604080832086845290915290206004810154611f845760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3037323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff166003811115611faa57634e487b7160e01b600052602160045260246000fd5b1480611fd957506002815460ff166003811115611fd757634e487b7160e01b600052602160045260246000fd5b145b61202f5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3037333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b6001815460ff16600381111561205557634e487b7160e01b600052602160045260246000fd5b148015612069575080600201548160010154145b8061209757506002815460ff16600381111561209557634e487b7160e01b600052602160045260246000fd5b145b6120f35760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3037343a434c41494d5f574954485f554e504149445f6044820152665041594f55545360c81b6064820152608401610567565b805460ff19166003178155426005820155600482018054906000612116836146a1565b909155505042600883015560408051868152602081018690527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016113ac565b60066020908152600092835260408084209091529082529020805460018201546002830154600384018054939460ff90931693919291611084906146b8565b6005602090815260009283526040808420909152908252902080546001820154600283015460038401805460ff909416949293919291611084906146b8565b600065506f6c69637960d01b6121ea81613e6b565b6001600160a01b0316306001600160a01b03161461221a5760405162461bcd60e51b815260040161056790614486565b6122346d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146122645760405162461bcd60e51b8152600401610567906144bd565b6001600160a01b0386166122ba5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a504f4c2d3030313a494e56414c49445f4f574e455200000000006044820152606401610567565b600954604051630e48080360e21b8152600481018790526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122fe57600080fd5b505afa158015612312573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233691906141d4565b6123825760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3030323a494e56414c49445f50524f445543540000006044820152606401610567565b600954604051635e966e4560e01b8152600481018790526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156123c757600080fd5b505afa1580156123db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ff91906142f0565b600681111561241e57634e487b7160e01b600052602160045260246000fd5b1461246b5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030333a50524f445543545f4e4f545f4143544956456044820152606401610567565b612473613f53565b6000818152600260205260409020600481015491935090156124e55760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3030343a4d455441444154415f414c52454144595f45604482015264584953545360d81b6064820152608401610567565b80546001600160a01b0319166001600160a01b0388161781556001810186905560028101805460ff1916905561251f60038201868661405b565b50426004820181905560058201556040517f19c55cd86637a14907bc12064e09bf8dce1ecda9e5d96cae81099f4b8ae1d3c99061256490899086908a9060009061436e565b60405180910390a15050949350505050565b6125c6604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008281526004602052604090819020815161012081019092528054829060ff16600281111561260657634e487b7160e01b600052602160045260246000fd5b600281111561262557634e487b7160e01b600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481525050905060008160e00151116126db5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130323a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b919050565b6127196040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600082815260026020818152604092839020835160c08101855281546001600160a01b0316815260018201549281019290925280830154919390929084019160ff169081111561277957634e487b7160e01b600052602160045260246000fd5b600281111561279857634e487b7160e01b600052602160045260246000fd5b81526020016003820180546127ac906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546127d8906146b8565b80156128255780601f106127fa57610100808354040283529160200191612825565b820191906000526020600020905b81548152906001019060200180831161280857829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3130303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b65506f6c69637960d01b6128b981613e6b565b6001600160a01b0316306001600160a01b0316146128e95760405162461bcd60e51b815260040161056790614486565b6129036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146129335760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546129a05760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3033303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b60008381526004602052604090206007810154612a0b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3033313a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6001815460ff166002811115612a3157634e487b7160e01b600052602160045260246000fd5b14612a895760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3033323a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610567565b600481015415612ae75760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3033333a504f4c4943595f4841535f4f50454e5f434c60448201526341494d5360e01b6064820152608401610567565b8054600260ff19918216811783554260088401819055848201805490931690911791829055600584015560405160008051602061477383398151915291612b3391879160ff16906143f1565b60405180910390a16040518481527f47682aa751cfef9683dc926c2e0547bf1f6345215278ea52b866564017ac9b9c90602001610798565b6000612b7682612576565b6060015192915050565b612bba6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600082815260036020819052604091829020825160c0810190935280549091839160ff1690811115612bfc57634e487b7160e01b600052602160045260246000fd5b6003811115612c1b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054612c43906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612c6f906146b8565b8015612cbc5780601f10612c9157610100808354040283529160200191612cbc565b820191906000526020600020905b815481529060010190602001808311612c9f57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3130313a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b600054610100900460ff1615808015612d605750600054600160ff909116105b80612d7a5750303b158015612d7a575060005460ff166001145b612ddd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610567565b6000805460ff191660011790558015612e00576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055612e2a600090565b6541636365737360d01b14612e6c57612e4b6541636365737360d01b613e6b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b612e74613fb9565b8015612eba576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b612ef86040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6000838152600660209081526040808320858452825291829020825160c0810190935280548352600180820154919284019160ff1690811115612f4b57634e487b7160e01b600052602160045260246000fd5b6001811115612f6a57634e487b7160e01b600052602160045260246000fd5b815260200160028201548152602001600382018054612f88906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612fb4906146b8565b80156130015780601f10612fd657610100808354040283529160200191613001565b820191906000526020600020905b815481529060010190602001808311612fe457829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130343a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600065506f6c69637960d01b61309581613e6b565b6001600160a01b0316306001600160a01b0316146130c55760405162461bcd60e51b815260040161056790614486565b6130df6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461310f5760405162461bcd60e51b8152600401610567906144bd565b6000878152600460205260409020600781015461317a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008881526005602090815260408083208a8452909152902060048101546131ef5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3038313a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff16600381111561321557634e487b7160e01b600052602160045260246000fd5b1461326c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3038323a434c41494d5f4e4f545f434f4e4649524d456044820152601160fa1b6064820152608401610567565b600087116132cd5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3038333a5041594f55545f414d4f554e545f5a45524f60448201526717d253959053125160c21b6064820152608401610567565b80600101548782600201546132e29190614672565b111561333c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038343a5041594f55545f414d4f554e545f544f4f5f60448201526242494760e81b6064820152608401610567565b60008981526007602090815260408083205460068352818420818552909252909120600481015491955090156133c05760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038353a5041594f55545f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b888155600281018890556133d860038201888861405b565b5060018101805460ff191690554260048201819055600582015560008a815260076020526040812080549161340c836146f3565b9091555050426008840155604080518b8152602081018b9052908101869052606081018990527f223e38f266bc310bbf02cc4e1bb6c706af5c7f9710b3edfe17a12f09e44e84a79060800160405180910390a15050505095945050505050565b600082815260046020526040902060078101546134d75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3131303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b80600101548282600201546134ec9190614672565b111561353a5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a504f432d3131313a414d4f554e545f544f4f5f424947000000006044820152606401610567565b8181600201600082825461354e9190614672565b909155505042600882015560408051848152602081018490527f9bb11018b2a92c286be2bb51bd0ed127dadef34cddc2b557270d0f81873e00569101610d3d565b65506f6c69637960d01b6135a281613e6b565b6001600160a01b0316306001600160a01b0316146135d25760405162461bcd60e51b815260040161056790614486565b6135ec6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461361c5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546136895760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031343a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546136f95760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031353a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561371f57634e487b7160e01b600052602160045260246000fd5b1461377c5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031363a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff199081166001178255426005808401829055600285810180549094161792839055840155604051600080516020614773833981519152916137c691879160ff16906143f1565b60405180910390a16040518481527fbf8b120fb15c8c02daac643f4b8d8542610c41f75bda1d3efcc3f7017c9389fc90602001610798565b600065506f6c69637960d01b61381381613e6b565b6001600160a01b0316306001600160a01b0316146138435760405162461bcd60e51b815260040161056790614486565b61385d6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461388d5760405162461bcd60e51b8152600401610567906144bd565b600086815260046020526040902060078101546138f85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3034303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff16600281111561391e57634e487b7160e01b600052602160045260246000fd5b1461396b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a504f432d3034313a504f4c4943595f4e4f545f414354495645006044820152606401610567565b80600501548682600601546139809190614672565b11156139e45760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a504f432d3034323a434c41494d5f414d4f554e545f455843454560448201526c1114d7d3505617d4105653d555609a1b6064820152608401610567565b60038101546000888152600560209081526040808320848452909152902060048101549194509015613a635760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3034333a434c41494d5f414c52454144595f45584953604482015261545360f01b6064820152608401610567565b805460ff1916815560018101879055613a8060038201878761405b565b5042600482018190556005820155600382018054906000613aa0836146f3565b9091555050600482018054906000613ab7836146f3565b909155505042600883015560408051898152602081018690529081018890527f66d0839d281a46de5ca92181ef89787fbf266333fbd1076c0728149b3a5600fa9060600160405180910390a1505050949350505050565b65506f6c69637960d01b613b2181613e6b565b6001600160a01b0316306001600160a01b031614613b515760405162461bcd60e51b815260040161056790614486565b613b6b6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614613b9b5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154613c065760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411613c6b5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3039313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260066020908152604080832086845290915290206004810154613ce15760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039323a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600060018083015460ff1690811115613d0a57634e487b7160e01b600052602160045260246000fd5b14613d635760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3039333a5041594f55545f414c52454144595f5041496044820152631113d55560e21b6064820152608401610567565b6001818101805460ff1916909117905542600582015560408051868152602081018690527f97a4f1df9bfee1535200a1be1da2c502aec16bda67fdaded9c127eaec704b71f910160405180910390a16000858152600560209081526040808320845484529091528120600280840154908201805492939192909190613de9908490614672565b9091555050426005820155600281015460018201541415610b7d57805460ff1916600317815560048301805460019190600090613e2790849061468a565b909155505042600884015581546040805188815260208101929092527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016116f2565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015613eb557600080fd5b505afa158015613ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eed919061415e565b90506001600160a01b0381166126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610567565b6008805460009182613f64836146f3565b9091555050600054600854604080514660208201526201000090930460601b6bffffffffffffffffffffffff191690830152605482015260740160405160208183030381529060405280519060200120905090565b600054610100900460ff166140245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610567565b6140396810dbdb5c1bdb995b9d60ba1b613e6b565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b828054614067906146b8565b90600052602060002090601f01602090048101928261408957600085556140cf565b82601f106140a25782800160ff198235161785556140cf565b828001600101855582156140cf579182015b828111156140cf5782358255916020019190600101906140b4565b506140db9291506140df565b5090565b5b808211156140db57600081556001016140e0565b60008083601f840112614105578182fd5b50813567ffffffffffffffff81111561411c578182fd5b60208301915083602082850101111561413457600080fd5b9250929050565b60006020828403121561414c578081fd5b81356141578161475d565b9392505050565b60006020828403121561416f578081fd5b81516141578161475d565b6000806000806060858703121561418f578283fd5b843561419a8161475d565b935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b6141c8878288016140f4565b95989497509550505050565b6000602082840312156141e5578081fd5b81518015158114614157578182fd5b600060208284031215614205578081fd5b5035919050565b6000806040838503121561421e578182fd5b50508035926020909101359150565b60008060008060608587031215614242578384fd5b8435935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b60008060006060848603121561427a578283fd5b505081359360208301359350604090920135919050565b6000806000806000608086880312156142a8578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8111156142d3578182fd5b6142df888289016140f4565b969995985093965092949392505050565b600060208284031215614301578081fd5b815160078110614157578182fd5b60008151808452815b8181101561433457602081850181015186830182015201614318565b818111156143455782602083870101525b50601f01601f19169290920160200192915050565b6002811061436a5761436a614724565b9052565b6001600160a01b03851681526020810184905260408101839052608081016143958361474d565b82606083015295945050505050565b6001600160a01b03871681526020810186905260006143c28661474d565b85604083015260c060608301526143dc60c083018661430f565b60808301949094525060a00152949350505050565b828152604081016144018361474d565b8260208301529392505050565b60006144198861473a565b87825286602083015285604083015260c060608301526143dc60c083018661430f565b610120810161444a8b61474d565b998152602081019890985260408801969096526060870194909452608086019290925260a085015260c084015260e08301526101009091015290565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825161450f8161473a565b806020840152506020830151604083015260408301516060830152606083015160c0608084015261454360e084018261430f565b9050608084015160a084015260a084015160c08401528091505092915050565b60006020825260018060a01b0383511660208301526020830151604083015260408301516145908161474d565b80606084015250606083015160c0608084015261454360e084018261430f565b6000602082528251602083015260208301516145cf604084018261435a565b5060408301516060830152606083015160c0608084015261454360e084018261430f565b81516101208201906146048161474d565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b60008782526143c2602083018861435a565b600082198211156146855761468561470e565b500190565b60008282101561469c5761469c61470e565b500390565b6000816146b0576146b061470e565b506000190190565b6002810460018216806146cc57607f821691505b602082108114156146ed57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156147075761470761470e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6004811061474a5761474a614724565b50565b6003811061474a5761474a614724565b6001600160a01b038116811461474a57600080fdfe532394c6ec703c4ecf5944bc8f02b410433362f9bdc2f25cd1d7fe45e7edfc59a2646970667358221220aab73debb705ab2b89e919dd01382f96a906dc6199287419144898b6aa0d558764736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x22 JUMP JUMPDEST PUSH3 0xE4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xE2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x47C8 DUP1 PUSH3 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1E5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA1814A1A GT PUSH2 0x10F JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE3EBDEA5 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0xEB96CBED EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xEC935668 EQ PUSH2 0x4FE JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x511 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x420 JUMPI DUP1 PUSH4 0xCEF58F13 EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0xDB42B77B EQ PUSH2 0x453 JUMPI DUP1 PUSH4 0xDDBFD8EF EQ PUSH2 0x466 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xADCADB28 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xADCADB28 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0xB1E25988 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0xBC506F64 EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0xBE183B11 EQ PUSH2 0x400 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xA1814A1A EQ PUSH2 0x36C JUMPI DUP1 PUSH4 0xA3F685F9 EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xA427056E EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0xA5961B4C EQ PUSH2 0x3A7 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x4E02C63F GT PUSH2 0x187 JUMPI DUP1 PUSH4 0x7F22C2D9 GT PUSH2 0x156 JUMPI DUP1 PUSH4 0x7F22C2D9 EQ PUSH2 0x301 JUMPI DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x321 JUMPI DUP1 PUSH4 0x80F2122C EQ PUSH2 0x334 JUMPI DUP1 PUSH4 0x9E81F96A EQ PUSH2 0x359 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x5C955288 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x6780336E EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x7122BA06 EQ PUSH2 0x2DC JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x47E3B138 GT PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x47E3B138 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x4C14CCC2 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x4CAFA121 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x290 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x296D6C7D EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x357F030A EQ PUSH2 0x212 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FD PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x524 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1FD PUSH2 0x20D CALLDATASIZE PUSH1 0x4 PUSH2 0x4266 JUMP JUMPDEST PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x220 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH2 0x253 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x27E PUSH2 0x279 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x104F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x440E JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x29E CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1113 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4266 JUMP JUMPDEST PUSH2 0x13BB JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x1702 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4291 JUMP JUMPDEST PUSH2 0x18C3 JUMP JUMPDEST PUSH2 0x2EF PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x1BAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x43A4 JUMP JUMPDEST PUSH2 0x314 PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1BEA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x44FE JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x32F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1DB2 JUMP JUMPDEST PUSH2 0x347 PUSH2 0x342 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4660 JUMP JUMPDEST PUSH2 0x27E PUSH2 0x367 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2196 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x37A CALLDATASIZE PUSH1 0x4 PUSH2 0x417A JUMP JUMPDEST PUSH2 0x21D5 JUMP JUMPDEST PUSH2 0x392 PUSH2 0x38D CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x45F3 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x232 JUMP JUMPDEST PUSH2 0x3BA PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x26E0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x4563 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x28A6 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x3E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2B6B JUMP JUMPDEST PUSH2 0x314 PUSH2 0x3FB CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2B80 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x40E CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x42E CALLDATASIZE PUSH1 0x4 PUSH2 0x413B JUMP JUMPDEST PUSH2 0x2D40 JUMP JUMPDEST PUSH2 0x446 PUSH2 0x441 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2EBE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x45B0 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x461 CALLDATASIZE PUSH1 0x4 PUSH2 0x4291 JUMP JUMPDEST PUSH2 0x3080 JUMP JUMPDEST PUSH2 0x4C3 PUSH2 0x474 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD SWAP5 DUP5 ADD SLOAD PUSH1 0x5 DUP6 ADD SLOAD PUSH1 0x6 DUP7 ADD SLOAD PUSH1 0x7 DUP8 ADD SLOAD PUSH1 0x8 SWAP1 SWAP8 ADD SLOAD PUSH1 0xFF SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP10 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x443C JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x4E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x346C JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x4F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x358F JUMP JUMPDEST PUSH2 0x232 PUSH2 0x50C CALLDATASIZE PUSH1 0x4 PUSH2 0x422D JUMP JUMPDEST PUSH2 0x37FE JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x51F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x3B0E JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x537 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x58A PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x627 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031393A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x697 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032303A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x6BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x71A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032313A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x3 OR DUP3 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP6 DUP2 ADD DUP1 SLOAD SWAP1 SWAP5 AND OR SWAP3 DUP4 SWAP1 SSTORE DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x764 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xD38021EC2BCD4D63A80341A60BE320A74CD71C01B04A4F7AAC74EF6593D8E5E3 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x7B9 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x803 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x833 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x877 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x875 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x8D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032343A4150504C49434154494F4E5F414343455353 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x2 ADD SLOAD DUP4 GT ISZERO PUSH2 0x947 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032363A4150504C49434154494F4E5F53554D5F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x14D554915117D25390D4915054D157D2539590531251 PUSH1 0x52 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x98B JUMPI POP PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x989 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x9E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032373A504F4C4943595F4143434553535F494E5641 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x131251 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 GT DUP1 ISZERO PUSH2 0x9F7 JUMPI POP DUP1 PUSH1 0x2 ADD SLOAD DUP6 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xA02 JUMPI POP DUP4 DUP6 LT JUMPDEST PUSH2 0xA60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032353A4150504C49434154494F4E5F5052454D4955 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1357D2539590531251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP2 PUSH1 0x2 ADD SLOAD DUP5 EQ PUSH2 0xACC JUMPI PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xA749E55FFD0F07193966D7C449D6238C6514C6B3EB5E8AB21B3EA9D94A5C2178 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP3 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE DUP3 ADD DUP6 SWAP1 SSTORE PUSH1 0x8 DUP3 ADD SSTORE JUMPDEST DUP2 PUSH1 0x1 ADD SLOAD DUP6 EQ PUSH2 0xB7D JUMPI PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x23E948A9DC44669750EA8EA8B7CA46C359534BD0F04E9260408A7E9BF8C7A556 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP3 DUP2 ADD DUP7 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP5 ADD SSTORE DUP2 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0xF392E5DF923D5D0B6D6C6301C53C86E1C75F58C1C637200C3193DD589E5C8A01 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0xB98 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0xBE2 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0xC7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032383A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCA3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xD00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032393A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR DUP2 SSTORE TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0xF1950800DA95964FDD42242722CCDFE6D9DC13D5D4DC7EAFEFEAB77373E3C9EC SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0xD5D DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0xDA7 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDD7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0xE1C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0xE63 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE8F SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xEDC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEB1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xEDC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEBF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT DUP1 ISZERO PUSH2 0xF2F JUMPI POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0xF8C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032323A4150504C49434154494F4E5F414343455353 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD ISZERO PUSH2 0xFF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032333A504F4C4943595F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP4 ADD SSTORE PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x5 DUP5 ADD SSTORE TIMESTAMP PUSH1 0x7 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP5 ADD SSTORE MLOAD DUP6 DUP2 MSTORE PUSH32 0xB979EAE60510A4A065F45DDD8A0C9AF7BA4D241E253B17BDEE3043C2FB992E9 SWAP2 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD SWAP4 DUP4 ADD DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP4 AND SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x10B0 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x10FD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x10D2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x10FD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x10E0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 DUP1 PUSH1 0x5 ADD SLOAD SWAP1 POP DUP7 JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1126 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1156 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1170 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x11A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x120B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1270 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x12E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036323A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x130B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1362 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036333A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x5EA526DBB5CA484C7716DCC966FDFC289530CC595EBC9EC7BFDA25D010D1A2FC SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x13CE DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1418 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x14B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1518 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x5 ADD SLOAD DUP4 DUP3 PUSH1 0x6 ADD SLOAD PUSH2 0x152D SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x158C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035323A5041594F55545F4D41585F414D4F554E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x115610D151511151 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x1601 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035333A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1627 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x167E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035343A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR DUP3 SSTORE DUP2 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x6 DUP3 ADD DUP1 SLOAD DUP6 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x16AD SWAP1 DUP5 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xA39B09B76CCF7DB94096E2C5A058215F9B2302B85DE726E37EDB99EFDB6FB2C6 SWAP1 PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1715 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1745 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x175F PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x178F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x17FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031373A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1825 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1882 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031383A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x67F56ED3A623B73566D40F65CBA052FC97CA9DF8AFB800A885C2A4FE0228C1F8 SWAP1 PUSH1 0x20 ADD PUSH2 0xD3D JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x18D6 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1906 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1920 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1950 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x19BD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD ISZERO PUSH2 0x1A2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031313A4150504C49434154494F4E5F414C52454144 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x595F455849535453 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 GT PUSH2 0x1A88 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031323A5052454D49554D5F414D4F554E545F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP7 DUP7 GT PUSH2 0x1AEA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031333A53554D5F494E53555245445F414D4F554E54 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x17D513D3D7D4D3505313 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP8 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP7 SWAP1 SSTORE PUSH2 0x1B0E PUSH1 0x3 DUP3 ADD DUP7 DUP7 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP1 DUP4 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP5 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 DUP2 SWAP1 SSTORE SWAP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x1B59 SWAP2 DUP12 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP8 SWAP1 MSTORE PUSH32 0x71B9122C9F32160952B44F0E76B53474F59A5CD9B98CCDFB5FF20672FCAE3412 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP3 ADD SLOAD PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP5 SWAP4 PUSH1 0xFF SWAP1 SWAP3 AND SWAP3 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH2 0x1C24 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C6E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C8D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x1CB5 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1CE1 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1D2E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D03 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D2E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1D11 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1DAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130333A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1DC5 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1DF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1E0F PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x1EAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1F0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x1F84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037323A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1FAA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1FD9 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1FD7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x202F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037333A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2055 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 ISZERO PUSH2 0x2069 JUMPI POP DUP1 PUSH1 0x2 ADD SLOAD DUP2 PUSH1 0x1 ADD SLOAD EQ JUMPDEST DUP1 PUSH2 0x2097 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x20F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037343A434C41494D5F574954485F554E504149445F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x5041594F555453 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x4 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x2116 DUP4 PUSH2 0x46A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x482CA72FF614E1AAB3860B93209BFCB7382D63292E6004E15FF29639E58E19A7 SWAP2 ADD PUSH2 0x13AC JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD DUP1 SLOAD SWAP4 SWAP5 PUSH1 0xFF SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP5 AND SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x21EA DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x221A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x2234 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2264 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x22BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030313A494E56414C49445F4F574E45520000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2312 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2336 SWAP2 SWAP1 PUSH2 0x41D4 JUMP JUMPDEST PUSH2 0x2382 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030323A494E56414C49445F50524F44554354000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23DB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23FF SWAP2 SWAP1 PUSH2 0x42F0 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x241E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x246B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030333A50524F445543545F4E4F545F414354495645 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH2 0x2473 PUSH2 0x3F53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP4 POP SWAP1 ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3030343A4D455441444154415F414C52454144595F45 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5849535453 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x251F PUSH1 0x3 DUP3 ADD DUP7 DUP7 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x19C55CD86637A14907BC12064E09BF8DCE1ECDA9E5D96CAE81099F4B8AE1D3C9 SWAP1 PUSH2 0x2564 SWAP1 DUP10 SWAP1 DUP7 SWAP1 DUP11 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x436E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x25C6 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2606 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2625 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xE0 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130323A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2719 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0xC0 DUP2 ADD DUP6 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP1 DUP4 ADD SLOAD SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2779 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2798 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x27AC SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x27D8 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2825 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x27FA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2825 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2808 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x28B9 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x28E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x2903 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2933 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x29A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x2A0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033313A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2A31 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2A89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033323A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SLOAD ISZERO PUSH2 0x2AE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033333A504F4C4943595F4841535F4F50454E5F434C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41494D53 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x2 PUSH1 0xFF NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE TIMESTAMP PUSH1 0x8 DUP5 ADD DUP2 SWAP1 SSTORE DUP5 DUP3 ADD DUP1 SLOAD SWAP1 SWAP4 AND SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x5 DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x2B33 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0x47682AA751CFEF9683DC926C2E0547BF1F6345215278EA52B866564017AC9B9C SWAP1 PUSH1 0x20 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B76 DUP3 PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2BBA PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2BFC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2C1B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x2C43 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2C6F SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2CBC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2C91 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2CBC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2C9F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130313A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x2D60 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x2D7A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D7A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x2DDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x2E00 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x2E2A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x2E6C JUMPI PUSH2 0x2E4B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x2E74 PUSH2 0x3FB9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2EBA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x2EF8 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 DUP1 DUP3 ADD SLOAD SWAP2 SWAP3 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2F4B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2F6A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x2F88 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2FB4 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3001 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FD6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3001 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2FE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1DAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130343A5041594F55545F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3095 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x30C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x30DF PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x310F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x317A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP11 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x31EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038313A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3215 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x326C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038323A434C41494D5F4E4F545F434F4E4649524D45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 GT PUSH2 0x32CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038333A5041594F55545F414D4F554E545F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD DUP8 DUP3 PUSH1 0x2 ADD SLOAD PUSH2 0x32E2 SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x333C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038343A5041594F55545F414D4F554E545F544F4F5F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x424947 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP2 DUP6 MSTORE SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP6 POP SWAP1 ISZERO PUSH2 0x33C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038353A5041594F55545F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP9 DUP2 SSTORE PUSH1 0x2 DUP2 ADD DUP9 SWAP1 SSTORE PUSH2 0x33D8 PUSH1 0x3 DUP3 ADD DUP9 DUP9 PUSH2 0x405B JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x340C DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP5 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP12 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x223E38F266BC310BBF02CC4E1BB6C706AF5C7F9710B3EDFE17A12F09E44E84A7 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x34D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3131303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD DUP3 DUP3 PUSH1 0x2 ADD SLOAD PUSH2 0x34EC SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x353A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3131313A414D4F554E545F544F4F5F42494700000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x354E SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x9BB11018B2A92C286BE2BB51BD0ED127DADEF34CDDC2B557270D0F81873E0056 SWAP2 ADD PUSH2 0xD3D JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x35A2 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x35D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x35EC PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x361C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x3689 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031343A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x36F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031353A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x371F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x377C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031363A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x1 OR DUP3 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP6 DUP2 ADD DUP1 SLOAD SWAP1 SWAP5 AND OR SWAP3 DUP4 SWAP1 SSTORE DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x37C6 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xBF8B120FB15C8C02DAAC643F4B8D8542610C41F75BDA1D3EFCC3F7017C9389FC SWAP1 PUSH1 0x20 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3813 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3843 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x385D PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x388D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x38F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x391E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x396B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x5 ADD SLOAD DUP7 DUP3 PUSH1 0x6 ADD SLOAD PUSH2 0x3980 SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x39E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034323A434C41494D5F414D4F554E545F4558434545 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1114D7D3505617D4105653D555 PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP5 POP SWAP1 ISZERO PUSH2 0x3A63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034333A434C41494D5F414C52454144595F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP8 SWAP1 SSTORE PUSH2 0x3A80 PUSH1 0x3 DUP3 ADD DUP8 DUP8 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x3AA0 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x4 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x3AB7 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x66D0839D281A46DE5CA92181EF89787FBF266333FBD1076C0728149B3A5600FA SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3B21 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B51 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x3B6B PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x3C06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x3C6B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x3CE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039323A5041594F55545F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x3D0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x3D63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039333A5041594F55545F414C52454144595F504149 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1113D555 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x97A4F1DF9BFEE1535200A1BE1DA2C502AEC16BDA67FDADED9C127EAEC704B71F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SLOAD DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH1 0x2 DUP1 DUP5 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x3DE9 SWAP1 DUP5 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 DUP3 ADD SLOAD EQ ISZERO PUSH2 0xB7D JUMPI DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR DUP2 SSTORE PUSH1 0x4 DUP4 ADD DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x3E27 SWAP1 DUP5 SWAP1 PUSH2 0x468A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP5 ADD SSTORE DUP2 SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0x482CA72FF614E1AAB3860B93209BFCB7382D63292E6004E15FF29639E58E19A7 SWAP2 ADD PUSH2 0x16F2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3EB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3EC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3EED SWAP2 SWAP1 PUSH2 0x415E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 SWAP2 DUP3 PUSH2 0x3F64 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 SLOAD PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD CHAINID PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP4 DIV PUSH1 0x60 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP4 ADD MSTORE PUSH1 0x54 DUP3 ADD MSTORE PUSH1 0x74 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4024 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH2 0x4039 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x4067 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x4089 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x40CF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x40A2 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x40CF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x40CF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x40CF JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x40B4 JUMP JUMPDEST POP PUSH2 0x40DB SWAP3 SWAP2 POP PUSH2 0x40DF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x40DB JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x40E0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x4105 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x411C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x4134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x414C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4157 DUP2 PUSH2 0x475D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x416F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4157 DUP2 PUSH2 0x475D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x418F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x419A DUP2 PUSH2 0x475D JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x41BC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x41C8 DUP8 DUP3 DUP9 ADD PUSH2 0x40F4 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41E5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x4157 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4205 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x421E JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4242 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x41BC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x427A JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x42A8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x42D3 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x42DF DUP9 DUP3 DUP10 ADD PUSH2 0x40F4 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4301 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x4157 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4334 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x4318 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x4345 JUMPI DUP3 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x436A JUMPI PUSH2 0x436A PUSH2 0x4724 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x4395 DUP4 PUSH2 0x474D JUMP JUMPDEST DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 PUSH2 0x43C2 DUP7 PUSH2 0x474D JUMP JUMPDEST DUP6 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xC0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x43DC PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x430F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0xA0 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0x4401 DUP4 PUSH2 0x474D JUMP JUMPDEST DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4419 DUP9 PUSH2 0x473A JUMP JUMPDEST DUP8 DUP3 MSTORE DUP7 PUSH1 0x20 DUP4 ADD MSTORE DUP6 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xC0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x43DC PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x430F JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x444A DUP12 PUSH2 0x474D JUMP JUMPDEST SWAP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH1 0x40 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x60 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x80 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH2 0x450F DUP2 PUSH2 0x473A JUMP JUMPDEST DUP1 PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x4590 DUP2 PUSH2 0x474D JUMP JUMPDEST DUP1 PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x45CF PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x435A JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST DUP2 MLOAD PUSH2 0x120 DUP3 ADD SWAP1 PUSH2 0x4604 DUP2 PUSH2 0x474D JUMP JUMPDEST DUP1 DUP4 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP8 DUP3 MSTORE PUSH2 0x43C2 PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0x435A JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4685 JUMPI PUSH2 0x4685 PUSH2 0x470E JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x469C JUMPI PUSH2 0x469C PUSH2 0x470E JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x46B0 JUMPI PUSH2 0x46B0 PUSH2 0x470E JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x46CC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x46ED JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4707 JUMPI PUSH2 0x4707 PUSH2 0x470E JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x474A JUMPI PUSH2 0x474A PUSH2 0x4724 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x474A JUMPI PUSH2 0x474A PUSH2 0x4724 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x474A JUMPI PUSH1 0x0 DUP1 REVERT INVALID MSTORE8 0x23 SWAP5 0xC6 0xEC PUSH17 0x3C4ECF5944BC8F02B410433362F9BDC2F2 0x5C 0xD1 0xD7 INVALID GASLIMIT 0xE7 0xED 0xFC MSIZE LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA 0xB7 RETURNDATASIZE 0xEB 0xB7 SDIV 0xAB 0x2B DUP10 0xE9 NOT 0xDD ADD CODESIZE 0x2F SWAP7 0xA9 MOD 0xDC PUSH2 0x9928 PUSH21 0x19144898B6AA0D558764736F6C6343000802003300 ","sourceMap":"4404:20030:77:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;4404:20030:77;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;4404:20030:77;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:43724:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"86:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"135:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"144:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"154:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"137:6:103"},"nodeType":"YulFunctionCall","src":"137:26:103"},"nodeType":"YulExpressionStatement","src":"137:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"114:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"122:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"110:3:103"},"nodeType":"YulFunctionCall","src":"110:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"129:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"106:3:103"},"nodeType":"YulFunctionCall","src":"106:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"99:6:103"},"nodeType":"YulFunctionCall","src":"99:35:103"},"nodeType":"YulIf","src":"96:2:103"},{"nodeType":"YulAssignment","src":"174:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"197:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"184:12:103"},"nodeType":"YulFunctionCall","src":"184:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"174:6:103"}]},{"body":{"nodeType":"YulBlock","src":"247:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"256:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"266:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"249:6:103"},"nodeType":"YulFunctionCall","src":"249:26:103"},"nodeType":"YulExpressionStatement","src":"249:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"219:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"227:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"216:2:103"},"nodeType":"YulFunctionCall","src":"216:30:103"},"nodeType":"YulIf","src":"213:2:103"},{"nodeType":"YulAssignment","src":"286:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"302:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"310:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"298:3:103"},"nodeType":"YulFunctionCall","src":"298:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"286:8:103"}]},{"body":{"nodeType":"YulBlock","src":"367:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"376:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"379:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"369:6:103"},"nodeType":"YulFunctionCall","src":"369:12:103"},"nodeType":"YulExpressionStatement","src":"369:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"338:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"346:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"334:3:103"},"nodeType":"YulFunctionCall","src":"334:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"355:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"330:3:103"},"nodeType":"YulFunctionCall","src":"330:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"362:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"327:2:103"},"nodeType":"YulFunctionCall","src":"327:39:103"},"nodeType":"YulIf","src":"324:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"49:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"57:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"65:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"75:6:103","type":""}],"src":"14:375:103"},{"body":{"nodeType":"YulBlock","src":"464:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"510:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"519:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"527:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"512:6:103"},"nodeType":"YulFunctionCall","src":"512:22:103"},"nodeType":"YulExpressionStatement","src":"512:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"485:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"494:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"481:3:103"},"nodeType":"YulFunctionCall","src":"481:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"506:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"477:3:103"},"nodeType":"YulFunctionCall","src":"477:32:103"},"nodeType":"YulIf","src":"474:2:103"},{"nodeType":"YulVariableDeclaration","src":"545:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"558:12:103"},"nodeType":"YulFunctionCall","src":"558:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"549:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"615:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"590:24:103"},"nodeType":"YulFunctionCall","src":"590:31:103"},"nodeType":"YulExpressionStatement","src":"590:31:103"},{"nodeType":"YulAssignment","src":"630:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"640:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"630:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"430:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"441:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"453:6:103","type":""}],"src":"394:257:103"},{"body":{"nodeType":"YulBlock","src":"737:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"783:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"800:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"785:6:103"},"nodeType":"YulFunctionCall","src":"785:22:103"},"nodeType":"YulExpressionStatement","src":"785:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"758:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"767:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"754:3:103"},"nodeType":"YulFunctionCall","src":"754:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"779:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"750:3:103"},"nodeType":"YulFunctionCall","src":"750:32:103"},"nodeType":"YulIf","src":"747:2:103"},{"nodeType":"YulVariableDeclaration","src":"818:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"837:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"831:5:103"},"nodeType":"YulFunctionCall","src":"831:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"822:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"881:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"856:24:103"},"nodeType":"YulFunctionCall","src":"856:31:103"},"nodeType":"YulExpressionStatement","src":"856:31:103"},{"nodeType":"YulAssignment","src":"896:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"906:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"896:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"703:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"714:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"726:6:103","type":""}],"src":"656:261:103"},{"body":{"nodeType":"YulBlock","src":"1045:509:103","statements":[{"body":{"nodeType":"YulBlock","src":"1091:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1100:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1108:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1093:6:103"},"nodeType":"YulFunctionCall","src":"1093:22:103"},"nodeType":"YulExpressionStatement","src":"1093:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1066:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1075:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1062:3:103"},"nodeType":"YulFunctionCall","src":"1062:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1087:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1058:3:103"},"nodeType":"YulFunctionCall","src":"1058:32:103"},"nodeType":"YulIf","src":"1055:2:103"},{"nodeType":"YulVariableDeclaration","src":"1126:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1152:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1139:12:103"},"nodeType":"YulFunctionCall","src":"1139:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1130:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1196:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1171:24:103"},"nodeType":"YulFunctionCall","src":"1171:31:103"},"nodeType":"YulExpressionStatement","src":"1171:31:103"},{"nodeType":"YulAssignment","src":"1211:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1221:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1211:6:103"}]},{"nodeType":"YulAssignment","src":"1235:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1262:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1273:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1258:3:103"},"nodeType":"YulFunctionCall","src":"1258:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1245:12:103"},"nodeType":"YulFunctionCall","src":"1245:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1235:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1286:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1317:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1328:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1313:3:103"},"nodeType":"YulFunctionCall","src":"1313:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1300:12:103"},"nodeType":"YulFunctionCall","src":"1300:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1290:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1375:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1384:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"1392:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1377:6:103"},"nodeType":"YulFunctionCall","src":"1377:22:103"},"nodeType":"YulExpressionStatement","src":"1377:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1347:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1355:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1344:2:103"},"nodeType":"YulFunctionCall","src":"1344:30:103"},"nodeType":"YulIf","src":"1341:2:103"},{"nodeType":"YulVariableDeclaration","src":"1410:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1466:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1477:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1462:3:103"},"nodeType":"YulFunctionCall","src":"1462:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1486:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1436:25:103"},"nodeType":"YulFunctionCall","src":"1436:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"1414:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"1424:8:103","type":""}]},{"nodeType":"YulAssignment","src":"1503:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1513:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1503:6:103"}]},{"nodeType":"YulAssignment","src":"1530:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"1540:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1530:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"987:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"998:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1010:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1018:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1026:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1034:6:103","type":""}],"src":"922:632:103"},{"body":{"nodeType":"YulBlock","src":"1637:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1683:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1692:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1700:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1685:6:103"},"nodeType":"YulFunctionCall","src":"1685:22:103"},"nodeType":"YulExpressionStatement","src":"1685:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1658:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1667:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1654:3:103"},"nodeType":"YulFunctionCall","src":"1654:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1679:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1650:3:103"},"nodeType":"YulFunctionCall","src":"1650:32:103"},"nodeType":"YulIf","src":"1647:2:103"},{"nodeType":"YulVariableDeclaration","src":"1718:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1737:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1731:5:103"},"nodeType":"YulFunctionCall","src":"1731:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1722:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1800:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1809:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1817:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1802:6:103"},"nodeType":"YulFunctionCall","src":"1802:22:103"},"nodeType":"YulExpressionStatement","src":"1802:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1769:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1790:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1783:6:103"},"nodeType":"YulFunctionCall","src":"1783:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1776:6:103"},"nodeType":"YulFunctionCall","src":"1776:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1766:2:103"},"nodeType":"YulFunctionCall","src":"1766:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1759:6:103"},"nodeType":"YulFunctionCall","src":"1759:40:103"},"nodeType":"YulIf","src":"1756:2:103"},{"nodeType":"YulAssignment","src":"1835:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1845:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1835:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1603:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1614:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1626:6:103","type":""}],"src":"1559:297:103"},{"body":{"nodeType":"YulBlock","src":"1931:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1977:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1986:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1994:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1979:6:103"},"nodeType":"YulFunctionCall","src":"1979:22:103"},"nodeType":"YulExpressionStatement","src":"1979:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1952:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1961:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1948:3:103"},"nodeType":"YulFunctionCall","src":"1948:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1973:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1944:3:103"},"nodeType":"YulFunctionCall","src":"1944:32:103"},"nodeType":"YulIf","src":"1941:2:103"},{"nodeType":"YulAssignment","src":"2012:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2035:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2022:12:103"},"nodeType":"YulFunctionCall","src":"2022:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2012:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1897:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1908:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1920:6:103","type":""}],"src":"1861:190:103"},{"body":{"nodeType":"YulBlock","src":"2143:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2189:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2198:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2206:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2191:6:103"},"nodeType":"YulFunctionCall","src":"2191:22:103"},"nodeType":"YulExpressionStatement","src":"2191:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2164:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2173:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2160:3:103"},"nodeType":"YulFunctionCall","src":"2160:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2185:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2156:3:103"},"nodeType":"YulFunctionCall","src":"2156:32:103"},"nodeType":"YulIf","src":"2153:2:103"},{"nodeType":"YulAssignment","src":"2224:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2247:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2234:12:103"},"nodeType":"YulFunctionCall","src":"2234:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2224:6:103"}]},{"nodeType":"YulAssignment","src":"2266:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2293:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2304:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:103"},"nodeType":"YulFunctionCall","src":"2289:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2276:12:103"},"nodeType":"YulFunctionCall","src":"2276:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2266:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2101:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2112:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2124:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2132:6:103","type":""}],"src":"2056:258:103"},{"body":{"nodeType":"YulBlock","src":"2442:442:103","statements":[{"body":{"nodeType":"YulBlock","src":"2488:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2497:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2505:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2490:6:103"},"nodeType":"YulFunctionCall","src":"2490:22:103"},"nodeType":"YulExpressionStatement","src":"2490:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2463:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2472:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2459:3:103"},"nodeType":"YulFunctionCall","src":"2459:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2484:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2455:3:103"},"nodeType":"YulFunctionCall","src":"2455:32:103"},"nodeType":"YulIf","src":"2452:2:103"},{"nodeType":"YulAssignment","src":"2523:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2546:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2533:12:103"},"nodeType":"YulFunctionCall","src":"2533:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2523:6:103"}]},{"nodeType":"YulAssignment","src":"2565:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2603:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2588:3:103"},"nodeType":"YulFunctionCall","src":"2588:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2575:12:103"},"nodeType":"YulFunctionCall","src":"2575:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2565:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2616:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2658:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2643:3:103"},"nodeType":"YulFunctionCall","src":"2643:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2630:12:103"},"nodeType":"YulFunctionCall","src":"2630:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2620:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2705:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2714:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2722:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2707:6:103"},"nodeType":"YulFunctionCall","src":"2707:22:103"},"nodeType":"YulExpressionStatement","src":"2707:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2677:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2685:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2674:2:103"},"nodeType":"YulFunctionCall","src":"2674:30:103"},"nodeType":"YulIf","src":"2671:2:103"},{"nodeType":"YulVariableDeclaration","src":"2740:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2796:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2807:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2792:3:103"},"nodeType":"YulFunctionCall","src":"2792:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2816:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2766:25:103"},"nodeType":"YulFunctionCall","src":"2766:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"2744:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"2754:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2833:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2843:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2833:6:103"}]},{"nodeType":"YulAssignment","src":"2860:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2870:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2860:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2384:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2395:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2407:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2415:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2423:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2431:6:103","type":""}],"src":"2319:565:103"},{"body":{"nodeType":"YulBlock","src":"2993:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"3039:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3048:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3056:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3041:6:103"},"nodeType":"YulFunctionCall","src":"3041:22:103"},"nodeType":"YulExpressionStatement","src":"3041:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3014:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3023:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3010:3:103"},"nodeType":"YulFunctionCall","src":"3010:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3035:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3006:3:103"},"nodeType":"YulFunctionCall","src":"3006:32:103"},"nodeType":"YulIf","src":"3003:2:103"},{"nodeType":"YulAssignment","src":"3074:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3097:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3084:12:103"},"nodeType":"YulFunctionCall","src":"3084:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3074:6:103"}]},{"nodeType":"YulAssignment","src":"3116:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3143:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3154:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3139:3:103"},"nodeType":"YulFunctionCall","src":"3139:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3126:12:103"},"nodeType":"YulFunctionCall","src":"3126:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3116:6:103"}]},{"nodeType":"YulAssignment","src":"3167:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3194:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3205:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3190:3:103"},"nodeType":"YulFunctionCall","src":"3190:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3177:12:103"},"nodeType":"YulFunctionCall","src":"3177:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3167:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2943:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2954:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2966:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2974:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2982:6:103","type":""}],"src":"2889:326:103"},{"body":{"nodeType":"YulBlock","src":"3360:494:103","statements":[{"body":{"nodeType":"YulBlock","src":"3407:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3416:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"3424:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3409:6:103"},"nodeType":"YulFunctionCall","src":"3409:22:103"},"nodeType":"YulExpressionStatement","src":"3409:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3381:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3390:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3377:3:103"},"nodeType":"YulFunctionCall","src":"3377:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3402:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3373:3:103"},"nodeType":"YulFunctionCall","src":"3373:33:103"},"nodeType":"YulIf","src":"3370:2:103"},{"nodeType":"YulAssignment","src":"3442:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3465:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3452:12:103"},"nodeType":"YulFunctionCall","src":"3452:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3442:6:103"}]},{"nodeType":"YulAssignment","src":"3484:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3511:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3522:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3507:3:103"},"nodeType":"YulFunctionCall","src":"3507:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3494:12:103"},"nodeType":"YulFunctionCall","src":"3494:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3484:6:103"}]},{"nodeType":"YulAssignment","src":"3535:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3562:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3573:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3558:3:103"},"nodeType":"YulFunctionCall","src":"3558:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3545:12:103"},"nodeType":"YulFunctionCall","src":"3545:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3535:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3586:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3613:3:103"},"nodeType":"YulFunctionCall","src":"3613:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3600:12:103"},"nodeType":"YulFunctionCall","src":"3600:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3590:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3675:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3684:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"3692:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3677:6:103"},"nodeType":"YulFunctionCall","src":"3677:22:103"},"nodeType":"YulExpressionStatement","src":"3677:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3647:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3655:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3644:2:103"},"nodeType":"YulFunctionCall","src":"3644:30:103"},"nodeType":"YulIf","src":"3641:2:103"},{"nodeType":"YulVariableDeclaration","src":"3710:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3766:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3777:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3762:3:103"},"nodeType":"YulFunctionCall","src":"3762:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3786:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"3736:25:103"},"nodeType":"YulFunctionCall","src":"3736:58:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"3714:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"3724:8:103","type":""}]},{"nodeType":"YulAssignment","src":"3803:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"3813:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3803:6:103"}]},{"nodeType":"YulAssignment","src":"3830:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"3840:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3830:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3294:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3305:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3317:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3325:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3333:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3341:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3349:6:103","type":""}],"src":"3220:634:103"},{"body":{"nodeType":"YulBlock","src":"3959:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"4005:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4014:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4022:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4007:6:103"},"nodeType":"YulFunctionCall","src":"4007:22:103"},"nodeType":"YulExpressionStatement","src":"4007:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3980:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3989:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3976:3:103"},"nodeType":"YulFunctionCall","src":"3976:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4001:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3972:3:103"},"nodeType":"YulFunctionCall","src":"3972:32:103"},"nodeType":"YulIf","src":"3969:2:103"},{"nodeType":"YulVariableDeclaration","src":"4040:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4059:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4053:5:103"},"nodeType":"YulFunctionCall","src":"4053:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4044:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4102:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4111:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4119:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4104:6:103"},"nodeType":"YulFunctionCall","src":"4104:22:103"},"nodeType":"YulExpressionStatement","src":"4104:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4091:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4098:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4088:2:103"},"nodeType":"YulFunctionCall","src":"4088:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4081:6:103"},"nodeType":"YulFunctionCall","src":"4081:20:103"},"nodeType":"YulIf","src":"4078:2:103"},{"nodeType":"YulAssignment","src":"4137:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4147:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4137:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3925:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3936:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3948:6:103","type":""}],"src":"3859:299:103"},{"body":{"nodeType":"YulBlock","src":"4212:426:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4222:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4242:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4236:5:103"},"nodeType":"YulFunctionCall","src":"4236:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4226:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4264:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4269:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4257:6:103"},"nodeType":"YulFunctionCall","src":"4257:19:103"},"nodeType":"YulExpressionStatement","src":"4257:19:103"},{"nodeType":"YulVariableDeclaration","src":"4285:12:103","value":{"name":"end","nodeType":"YulIdentifier","src":"4294:3:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4289:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4358:110:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4372:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4382:4:103","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4376:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4414:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"4419:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4410:3:103"},"nodeType":"YulFunctionCall","src":"4410:11:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4423:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4406:3:103"},"nodeType":"YulFunctionCall","src":"4406:20:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4442:5:103"},{"name":"i","nodeType":"YulIdentifier","src":"4449:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4438:3:103"},"nodeType":"YulFunctionCall","src":"4438:13:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4453:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4434:3:103"},"nodeType":"YulFunctionCall","src":"4434:22:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4428:5:103"},"nodeType":"YulFunctionCall","src":"4428:29:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4399:6:103"},"nodeType":"YulFunctionCall","src":"4399:59:103"},"nodeType":"YulExpressionStatement","src":"4399:59:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4317:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"4320:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4314:2:103"},"nodeType":"YulFunctionCall","src":"4314:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4328:21:103","statements":[{"nodeType":"YulAssignment","src":"4330:17:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4339:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"4342:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4335:3:103"},"nodeType":"YulFunctionCall","src":"4335:12:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4330:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"4310:3:103","statements":[]},"src":"4306:162:103"},{"body":{"nodeType":"YulBlock","src":"4502:64:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4531:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4536:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4527:3:103"},"nodeType":"YulFunctionCall","src":"4527:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4545:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4523:3:103"},"nodeType":"YulFunctionCall","src":"4523:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"4552:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4516:6:103"},"nodeType":"YulFunctionCall","src":"4516:40:103"},"nodeType":"YulExpressionStatement","src":"4516:40:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4483:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"4486:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4480:2:103"},"nodeType":"YulFunctionCall","src":"4480:13:103"},"nodeType":"YulIf","src":"4477:2:103"},{"nodeType":"YulAssignment","src":"4575:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4590:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4603:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4611:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4599:3:103"},"nodeType":"YulFunctionCall","src":"4599:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4620:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4616:3:103"},"nodeType":"YulFunctionCall","src":"4616:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4595:3:103"},"nodeType":"YulFunctionCall","src":"4595:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4586:3:103"},"nodeType":"YulFunctionCall","src":"4586:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"4627:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4582:3:103"},"nodeType":"YulFunctionCall","src":"4582:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4575:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4189:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4196:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4204:3:103","type":""}],"src":"4163:475:103"},{"body":{"nodeType":"YulBlock","src":"4696:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"4730:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"4732:16:103"},"nodeType":"YulFunctionCall","src":"4732:18:103"},"nodeType":"YulExpressionStatement","src":"4732:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4719:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4726:1:103","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4716:2:103"},"nodeType":"YulFunctionCall","src":"4716:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4709:6:103"},"nodeType":"YulFunctionCall","src":"4709:20:103"},"nodeType":"YulIf","src":"4706:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4768:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"4773:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4761:6:103"},"nodeType":"YulFunctionCall","src":"4761:18:103"},"nodeType":"YulExpressionStatement","src":"4761:18:103"}]},"name":"abi_encode_enum_PayoutState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4680:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4687:3:103","type":""}],"src":"4643:142:103"},{"body":{"nodeType":"YulBlock","src":"4965:184:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4982:3:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4987:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4975:6:103"},"nodeType":"YulFunctionCall","src":"4975:19:103"},"nodeType":"YulExpressionStatement","src":"4975:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5014:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5019:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5010:3:103"},"nodeType":"YulFunctionCall","src":"5010:12:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5032:2:103","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"5036:6:103"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5028:3:103"},"nodeType":"YulFunctionCall","src":"5028:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5049:26:103","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5045:3:103"},"nodeType":"YulFunctionCall","src":"5045:31:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5024:3:103"},"nodeType":"YulFunctionCall","src":"5024:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5003:6:103"},"nodeType":"YulFunctionCall","src":"5003:75:103"},"nodeType":"YulExpressionStatement","src":"5003:75:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5098:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5103:2:103","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5094:3:103"},"nodeType":"YulFunctionCall","src":"5094:12:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5108:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5087:6:103"},"nodeType":"YulFunctionCall","src":"5087:28:103"},"nodeType":"YulExpressionStatement","src":"5087:28:103"},{"nodeType":"YulAssignment","src":"5124:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5135:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5140:2:103","type":"","value":"84"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5131:3:103"},"nodeType":"YulFunctionCall","src":"5131:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5124:3:103"}]}]},"name":"abi_encode_tuple_packed_t_uint256_t_address_t_uint256__to_t_uint256_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4925:3:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4930:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4938:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4946:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4957:3:103","type":""}],"src":"4790:359:103"},{"body":{"nodeType":"YulBlock","src":"5357:286:103","statements":[{"nodeType":"YulAssignment","src":"5367:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5379:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5390:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5375:3:103"},"nodeType":"YulFunctionCall","src":"5375:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5367:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5410:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5425:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5441:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5446:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5437:3:103"},"nodeType":"YulFunctionCall","src":"5437:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5450:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5433:3:103"},"nodeType":"YulFunctionCall","src":"5433:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5421:3:103"},"nodeType":"YulFunctionCall","src":"5421:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5403:6:103"},"nodeType":"YulFunctionCall","src":"5403:51:103"},"nodeType":"YulExpressionStatement","src":"5403:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5474:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5485:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5470:3:103"},"nodeType":"YulFunctionCall","src":"5470:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5490:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5463:6:103"},"nodeType":"YulFunctionCall","src":"5463:34:103"},"nodeType":"YulExpressionStatement","src":"5463:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5528:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5513:3:103"},"nodeType":"YulFunctionCall","src":"5513:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5533:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5506:6:103"},"nodeType":"YulFunctionCall","src":"5506:34:103"},"nodeType":"YulExpressionStatement","src":"5506:34:103"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5587:6:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"5549:37:103"},"nodeType":"YulFunctionCall","src":"5549:45:103"},"nodeType":"YulExpressionStatement","src":"5549:45:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5614:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5625:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5610:3:103"},"nodeType":"YulFunctionCall","src":"5610:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"5630:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5603:6:103"},"nodeType":"YulFunctionCall","src":"5603:34:103"},"nodeType":"YulExpressionStatement","src":"5603:34:103"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_uint256_t_enum$_PolicyFlowState_$5217__to_t_address_t_bytes32_t_uint256_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5302:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5313:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5321:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5329:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5337:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5348:4:103","type":""}],"src":"5154:489:103"},{"body":{"nodeType":"YulBlock","src":"5925:397:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5942:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5957:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5973:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5978:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5969:3:103"},"nodeType":"YulFunctionCall","src":"5969:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5982:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5965:3:103"},"nodeType":"YulFunctionCall","src":"5965:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5953:3:103"},"nodeType":"YulFunctionCall","src":"5953:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5935:6:103"},"nodeType":"YulFunctionCall","src":"5935:51:103"},"nodeType":"YulExpressionStatement","src":"5935:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6006:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6017:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6002:3:103"},"nodeType":"YulFunctionCall","src":"6002:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6022:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5995:6:103"},"nodeType":"YulFunctionCall","src":"5995:34:103"},"nodeType":"YulExpressionStatement","src":"5995:34:103"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6076:6:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"6038:37:103"},"nodeType":"YulFunctionCall","src":"6038:45:103"},"nodeType":"YulExpressionStatement","src":"6038:45:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6103:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6114:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6099:3:103"},"nodeType":"YulFunctionCall","src":"6099:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6119:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6092:6:103"},"nodeType":"YulFunctionCall","src":"6092:34:103"},"nodeType":"YulExpressionStatement","src":"6092:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6146:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6157:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6142:3:103"},"nodeType":"YulFunctionCall","src":"6142:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6162:3:103","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6135:6:103"},"nodeType":"YulFunctionCall","src":"6135:31:103"},"nodeType":"YulExpressionStatement","src":"6135:31:103"},{"nodeType":"YulAssignment","src":"6175:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6200:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6212:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6223:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6208:3:103"},"nodeType":"YulFunctionCall","src":"6208:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6183:16:103"},"nodeType":"YulFunctionCall","src":"6183:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6175:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6259:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6244:3:103"},"nodeType":"YulFunctionCall","src":"6244:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6265:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6237:6:103"},"nodeType":"YulFunctionCall","src":"6237:35:103"},"nodeType":"YulExpressionStatement","src":"6237:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6303:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6288:3:103"},"nodeType":"YulFunctionCall","src":"6288:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"6309:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6281:6:103"},"nodeType":"YulFunctionCall","src":"6281:35:103"},"nodeType":"YulExpressionStatement","src":"6281:35:103"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_enum$_PolicyFlowState_$5217_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_address_t_uint256_t_uint8_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5854:9:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5865:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5873:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5881:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5889:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5897:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5905:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5916:4:103","type":""}],"src":"5648:674:103"},{"body":{"nodeType":"YulBlock","src":"6428:76:103","statements":[{"nodeType":"YulAssignment","src":"6438:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6450:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6461:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6446:3:103"},"nodeType":"YulFunctionCall","src":"6446:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6438:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6480:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6491:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6473:6:103"},"nodeType":"YulFunctionCall","src":"6473:25:103"},"nodeType":"YulExpressionStatement","src":"6473:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6397:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6408:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6419:4:103","type":""}],"src":"6327:177:103"},{"body":{"nodeType":"YulBlock","src":"6656:173:103","statements":[{"nodeType":"YulAssignment","src":"6666:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6678:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6689:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6674:3:103"},"nodeType":"YulFunctionCall","src":"6674:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6666:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6708:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6719:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6701:6:103"},"nodeType":"YulFunctionCall","src":"6701:25:103"},"nodeType":"YulExpressionStatement","src":"6701:25:103"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6773:6:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"6735:37:103"},"nodeType":"YulFunctionCall","src":"6735:45:103"},"nodeType":"YulExpressionStatement","src":"6735:45:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6800:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6811:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6796:3:103"},"nodeType":"YulFunctionCall","src":"6796:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6816:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6789:6:103"},"nodeType":"YulFunctionCall","src":"6789:34:103"},"nodeType":"YulExpressionStatement","src":"6789:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_PolicyFlowState_$5217__to_t_bytes32_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6617:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6628:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6636:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6647:4:103","type":""}],"src":"6509:320:103"},{"body":{"nodeType":"YulBlock","src":"6963:119:103","statements":[{"nodeType":"YulAssignment","src":"6973:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6981:3:103"},"nodeType":"YulFunctionCall","src":"6981:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6973:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7015:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7026:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7008:6:103"},"nodeType":"YulFunctionCall","src":"7008:25:103"},"nodeType":"YulExpressionStatement","src":"7008:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7053:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7064:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7049:3:103"},"nodeType":"YulFunctionCall","src":"7049:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7069:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7042:6:103"},"nodeType":"YulFunctionCall","src":"7042:34:103"},"nodeType":"YulExpressionStatement","src":"7042:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6924:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6935:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6943:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6954:4:103","type":""}],"src":"6834:248:103"},{"body":{"nodeType":"YulBlock","src":"7244:162:103","statements":[{"nodeType":"YulAssignment","src":"7254:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7266:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7277:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7262:3:103"},"nodeType":"YulFunctionCall","src":"7262:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7254:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7296:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7307:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7289:6:103"},"nodeType":"YulFunctionCall","src":"7289:25:103"},"nodeType":"YulExpressionStatement","src":"7289:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7334:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7345:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7330:3:103"},"nodeType":"YulFunctionCall","src":"7330:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7350:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7323:6:103"},"nodeType":"YulFunctionCall","src":"7323:34:103"},"nodeType":"YulExpressionStatement","src":"7323:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7388:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7373:3:103"},"nodeType":"YulFunctionCall","src":"7373:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7393:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7366:6:103"},"nodeType":"YulFunctionCall","src":"7366:34:103"},"nodeType":"YulExpressionStatement","src":"7366:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7197:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7208:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7216:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7224:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7235:4:103","type":""}],"src":"7087:319:103"},{"body":{"nodeType":"YulBlock","src":"7596:206:103","statements":[{"nodeType":"YulAssignment","src":"7606:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7618:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7629:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7614:3:103"},"nodeType":"YulFunctionCall","src":"7614:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7606:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7649:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7660:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7642:6:103"},"nodeType":"YulFunctionCall","src":"7642:25:103"},"nodeType":"YulExpressionStatement","src":"7642:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7687:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7698:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7683:3:103"},"nodeType":"YulFunctionCall","src":"7683:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7703:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7676:6:103"},"nodeType":"YulFunctionCall","src":"7676:34:103"},"nodeType":"YulExpressionStatement","src":"7676:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7730:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7741:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7726:3:103"},"nodeType":"YulFunctionCall","src":"7726:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7746:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7719:6:103"},"nodeType":"YulFunctionCall","src":"7719:34:103"},"nodeType":"YulExpressionStatement","src":"7719:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7784:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7769:3:103"},"nodeType":"YulFunctionCall","src":"7769:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"7789:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7762:6:103"},"nodeType":"YulFunctionCall","src":"7762:34:103"},"nodeType":"YulExpressionStatement","src":"7762:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7541:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7552:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7560:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7568:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7576:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7587:4:103","type":""}],"src":"7411:391:103"},{"body":{"nodeType":"YulBlock","src":"8085:372:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8134:6:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"8095:38:103"},"nodeType":"YulFunctionCall","src":"8095:46:103"},"nodeType":"YulExpressionStatement","src":"8095:46:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8157:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8168:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8150:6:103"},"nodeType":"YulFunctionCall","src":"8150:25:103"},"nodeType":"YulExpressionStatement","src":"8150:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8195:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8206:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8191:3:103"},"nodeType":"YulFunctionCall","src":"8191:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8211:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8184:6:103"},"nodeType":"YulFunctionCall","src":"8184:34:103"},"nodeType":"YulExpressionStatement","src":"8184:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8238:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8249:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8234:3:103"},"nodeType":"YulFunctionCall","src":"8234:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"8254:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8227:6:103"},"nodeType":"YulFunctionCall","src":"8227:34:103"},"nodeType":"YulExpressionStatement","src":"8227:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8281:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8292:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8277:3:103"},"nodeType":"YulFunctionCall","src":"8277:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8297:3:103","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8270:6:103"},"nodeType":"YulFunctionCall","src":"8270:31:103"},"nodeType":"YulExpressionStatement","src":"8270:31:103"},{"nodeType":"YulAssignment","src":"8310:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8335:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8347:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8358:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8343:3:103"},"nodeType":"YulFunctionCall","src":"8343:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8318:16:103"},"nodeType":"YulFunctionCall","src":"8318:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8310:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8383:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8394:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8379:3:103"},"nodeType":"YulFunctionCall","src":"8379:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8400:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8372:6:103"},"nodeType":"YulFunctionCall","src":"8372:35:103"},"nodeType":"YulExpressionStatement","src":"8372:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8427:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8438:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8423:3:103"},"nodeType":"YulFunctionCall","src":"8423:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"8444:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8416:6:103"},"nodeType":"YulFunctionCall","src":"8416:35:103"},"nodeType":"YulExpressionStatement","src":"8416:35:103"}]},"name":"abi_encode_tuple_t_enum$_ApplicationState_$5222_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8014:9:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"8025:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8033:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8041:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8049:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8057:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8065:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8076:4:103","type":""}],"src":"7807:650:103"},{"body":{"nodeType":"YulBlock","src":"8734:372:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8783:6:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"8744:38:103"},"nodeType":"YulFunctionCall","src":"8744:46:103"},"nodeType":"YulExpressionStatement","src":"8744:46:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8806:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8817:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8799:6:103"},"nodeType":"YulFunctionCall","src":"8799:25:103"},"nodeType":"YulExpressionStatement","src":"8799:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8855:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8840:3:103"},"nodeType":"YulFunctionCall","src":"8840:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8860:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8833:6:103"},"nodeType":"YulFunctionCall","src":"8833:34:103"},"nodeType":"YulExpressionStatement","src":"8833:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8887:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8898:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8883:3:103"},"nodeType":"YulFunctionCall","src":"8883:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"8903:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8876:6:103"},"nodeType":"YulFunctionCall","src":"8876:34:103"},"nodeType":"YulExpressionStatement","src":"8876:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8930:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8941:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8926:3:103"},"nodeType":"YulFunctionCall","src":"8926:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8946:3:103","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8919:6:103"},"nodeType":"YulFunctionCall","src":"8919:31:103"},"nodeType":"YulExpressionStatement","src":"8919:31:103"},{"nodeType":"YulAssignment","src":"8959:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8984:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8996:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9007:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8992:3:103"},"nodeType":"YulFunctionCall","src":"8992:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8967:16:103"},"nodeType":"YulFunctionCall","src":"8967:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8959:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9028:3:103"},"nodeType":"YulFunctionCall","src":"9028:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"9049:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9021:6:103"},"nodeType":"YulFunctionCall","src":"9021:35:103"},"nodeType":"YulExpressionStatement","src":"9021:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9076:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9087:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9072:3:103"},"nodeType":"YulFunctionCall","src":"9072:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"9093:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9065:6:103"},"nodeType":"YulFunctionCall","src":"9065:35:103"},"nodeType":"YulExpressionStatement","src":"9065:35:103"}]},"name":"abi_encode_tuple_t_enum$_ClaimState_$5231_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8663:9:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"8674:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8682:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8690:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8698:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8706:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8714:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8725:4:103","type":""}],"src":"8462:644:103"},{"body":{"nodeType":"YulBlock","src":"9450:480:103","statements":[{"nodeType":"YulAssignment","src":"9460:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9472:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9483:3:103","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9468:3:103"},"nodeType":"YulFunctionCall","src":"9468:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9460:4:103"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9534:6:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"9496:37:103"},"nodeType":"YulFunctionCall","src":"9496:45:103"},"nodeType":"YulExpressionStatement","src":"9496:45:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9557:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9568:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9550:6:103"},"nodeType":"YulFunctionCall","src":"9550:25:103"},"nodeType":"YulExpressionStatement","src":"9550:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9595:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9606:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9591:3:103"},"nodeType":"YulFunctionCall","src":"9591:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"9611:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9584:6:103"},"nodeType":"YulFunctionCall","src":"9584:34:103"},"nodeType":"YulExpressionStatement","src":"9584:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9649:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9634:3:103"},"nodeType":"YulFunctionCall","src":"9634:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9654:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9627:6:103"},"nodeType":"YulFunctionCall","src":"9627:34:103"},"nodeType":"YulExpressionStatement","src":"9627:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9681:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9692:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9677:3:103"},"nodeType":"YulFunctionCall","src":"9677:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"9697:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9670:6:103"},"nodeType":"YulFunctionCall","src":"9670:34:103"},"nodeType":"YulExpressionStatement","src":"9670:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9724:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9735:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9720:3:103"},"nodeType":"YulFunctionCall","src":"9720:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"9741:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9713:6:103"},"nodeType":"YulFunctionCall","src":"9713:35:103"},"nodeType":"YulExpressionStatement","src":"9713:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9779:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9764:3:103"},"nodeType":"YulFunctionCall","src":"9764:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"9785:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9757:6:103"},"nodeType":"YulFunctionCall","src":"9757:35:103"},"nodeType":"YulExpressionStatement","src":"9757:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9812:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9823:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9808:3:103"},"nodeType":"YulFunctionCall","src":"9808:19:103"},{"name":"value6","nodeType":"YulIdentifier","src":"9829:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9801:6:103"},"nodeType":"YulFunctionCall","src":"9801:35:103"},"nodeType":"YulExpressionStatement","src":"9801:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9856:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9867:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9852:3:103"},"nodeType":"YulFunctionCall","src":"9852:19:103"},{"name":"value7","nodeType":"YulIdentifier","src":"9873:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9845:6:103"},"nodeType":"YulFunctionCall","src":"9845:35:103"},"nodeType":"YulExpressionStatement","src":"9845:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9900:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9911:3:103","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9896:3:103"},"nodeType":"YulFunctionCall","src":"9896:19:103"},{"name":"value8","nodeType":"YulIdentifier","src":"9917:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9889:6:103"},"nodeType":"YulFunctionCall","src":"9889:35:103"},"nodeType":"YulExpressionStatement","src":"9889:35:103"}]},"name":"abi_encode_tuple_t_enum$_PolicyState_$5226_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9355:9:103","type":""},{"name":"value8","nodeType":"YulTypedName","src":"9366:6:103","type":""},{"name":"value7","nodeType":"YulTypedName","src":"9374:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"9382:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"9390:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9398:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9406:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9414:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9422:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9430:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9441:4:103","type":""}],"src":"9111:819:103"},{"body":{"nodeType":"YulBlock","src":"10042:87:103","statements":[{"nodeType":"YulAssignment","src":"10052:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10075:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10060:3:103"},"nodeType":"YulFunctionCall","src":"10060:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10052:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10094:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10109:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"10117:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10105:3:103"},"nodeType":"YulFunctionCall","src":"10105:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10087:6:103"},"nodeType":"YulFunctionCall","src":"10087:36:103"},"nodeType":"YulExpressionStatement","src":"10087:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10011:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10022:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10033:4:103","type":""}],"src":"9935:194:103"},{"body":{"nodeType":"YulBlock","src":"10308:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10325:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10336:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10318:6:103"},"nodeType":"YulFunctionCall","src":"10318:21:103"},"nodeType":"YulExpressionStatement","src":"10318:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10359:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10370:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10355:3:103"},"nodeType":"YulFunctionCall","src":"10355:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10375:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10348:6:103"},"nodeType":"YulFunctionCall","src":"10348:30:103"},"nodeType":"YulExpressionStatement","src":"10348:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10398:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10409:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10394:3:103"},"nodeType":"YulFunctionCall","src":"10394:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10414:34:103","type":"","value":"ERROR:POC-093:PAYOUT_ALREADY_PAI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10387:6:103"},"nodeType":"YulFunctionCall","src":"10387:62:103"},"nodeType":"YulExpressionStatement","src":"10387:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10469:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10480:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10465:3:103"},"nodeType":"YulFunctionCall","src":"10465:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10485:6:103","type":"","value":"DOUT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10458:6:103"},"nodeType":"YulFunctionCall","src":"10458:34:103"},"nodeType":"YulExpressionStatement","src":"10458:34:103"},{"nodeType":"YulAssignment","src":"10501:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10513:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10524:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10509:3:103"},"nodeType":"YulFunctionCall","src":"10509:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10501:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_01bd7262c070b3850d799edbf9ebd39157a9b16f9c9855ee1ca0ecc7e289d2d2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10285:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10299:4:103","type":""}],"src":"10134:400:103"},{"body":{"nodeType":"YulBlock","src":"10713:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10730:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10741:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10723:6:103"},"nodeType":"YulFunctionCall","src":"10723:21:103"},"nodeType":"YulExpressionStatement","src":"10723:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10764:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10775:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10760:3:103"},"nodeType":"YulFunctionCall","src":"10760:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10780:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10753:6:103"},"nodeType":"YulFunctionCall","src":"10753:30:103"},"nodeType":"YulExpressionStatement","src":"10753:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10803:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10814:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10799:3:103"},"nodeType":"YulFunctionCall","src":"10799:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10819:34:103","type":"","value":"ERROR:POC-073:CLAIM_STATE_INVALI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10792:6:103"},"nodeType":"YulFunctionCall","src":"10792:62:103"},"nodeType":"YulExpressionStatement","src":"10792:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10874:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10885:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10870:3:103"},"nodeType":"YulFunctionCall","src":"10870:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10890:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10863:6:103"},"nodeType":"YulFunctionCall","src":"10863:31:103"},"nodeType":"YulExpressionStatement","src":"10863:31:103"},{"nodeType":"YulAssignment","src":"10903:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10926:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10911:3:103"},"nodeType":"YulFunctionCall","src":"10911:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10903:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0905fdf985363891ad748beb4d4a032395a3ba007421a6945b74e963f9f015fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10690:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10704:4:103","type":""}],"src":"10539:397:103"},{"body":{"nodeType":"YulBlock","src":"11115:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11132:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11143:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11125:6:103"},"nodeType":"YulFunctionCall","src":"11125:21:103"},"nodeType":"YulExpressionStatement","src":"11125:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11166:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11177:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11162:3:103"},"nodeType":"YulFunctionCall","src":"11162:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11182:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11155:6:103"},"nodeType":"YulFunctionCall","src":"11155:30:103"},"nodeType":"YulExpressionStatement","src":"11155:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11216:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11201:3:103"},"nodeType":"YulFunctionCall","src":"11201:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11221:34:103","type":"","value":"ERROR:POC-025:APPLICATION_PREMIU"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11194:6:103"},"nodeType":"YulFunctionCall","src":"11194:62:103"},"nodeType":"YulExpressionStatement","src":"11194:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11276:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11287:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11272:3:103"},"nodeType":"YulFunctionCall","src":"11272:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11292:11:103","type":"","value":"M_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11265:6:103"},"nodeType":"YulFunctionCall","src":"11265:39:103"},"nodeType":"YulExpressionStatement","src":"11265:39:103"},{"nodeType":"YulAssignment","src":"11313:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11325:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11336:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11321:3:103"},"nodeType":"YulFunctionCall","src":"11321:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11313:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0accb0c8465e13760989bc709fa6ab7cf10b68fe03957bd6fe9eb47233a41aba__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11092:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11106:4:103","type":""}],"src":"10941:405:103"},{"body":{"nodeType":"YulBlock","src":"11525:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11553:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11535:6:103"},"nodeType":"YulFunctionCall","src":"11535:21:103"},"nodeType":"YulExpressionStatement","src":"11535:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11576:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11587:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11572:3:103"},"nodeType":"YulFunctionCall","src":"11572:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11592:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11565:6:103"},"nodeType":"YulFunctionCall","src":"11565:30:103"},"nodeType":"YulExpressionStatement","src":"11565:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11626:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11611:3:103"},"nodeType":"YulFunctionCall","src":"11611:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11631:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11604:6:103"},"nodeType":"YulFunctionCall","src":"11604:62:103"},"nodeType":"YulExpressionStatement","src":"11604:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11686:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11697:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11682:3:103"},"nodeType":"YulFunctionCall","src":"11682:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11702:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11675:6:103"},"nodeType":"YulFunctionCall","src":"11675:35:103"},"nodeType":"YulExpressionStatement","src":"11675:35:103"},{"nodeType":"YulAssignment","src":"11719:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11731:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11742:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11727:3:103"},"nodeType":"YulFunctionCall","src":"11727:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11719:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11502:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11516:4:103","type":""}],"src":"11351:401:103"},{"body":{"nodeType":"YulBlock","src":"11931:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11948:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11959:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11941:6:103"},"nodeType":"YulFunctionCall","src":"11941:21:103"},"nodeType":"YulExpressionStatement","src":"11941:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11993:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11978:3:103"},"nodeType":"YulFunctionCall","src":"11978:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11998:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11971:6:103"},"nodeType":"YulFunctionCall","src":"11971:30:103"},"nodeType":"YulExpressionStatement","src":"11971:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12021:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12032:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12017:3:103"},"nodeType":"YulFunctionCall","src":"12017:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12037:34:103","type":"","value":"ERROR:POC-083:PAYOUT_AMOUNT_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12010:6:103"},"nodeType":"YulFunctionCall","src":"12010:62:103"},"nodeType":"YulExpressionStatement","src":"12010:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12092:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12103:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12088:3:103"},"nodeType":"YulFunctionCall","src":"12088:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12108:10:103","type":"","value":"_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12081:6:103"},"nodeType":"YulFunctionCall","src":"12081:38:103"},"nodeType":"YulExpressionStatement","src":"12081:38:103"},{"nodeType":"YulAssignment","src":"12128:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12140:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12151:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12136:3:103"},"nodeType":"YulFunctionCall","src":"12136:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12128:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a836dd02d461888166ce18ce5bc78481bf477d1f9ebbf4ce8444ca0e7f0dc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11908:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11922:4:103","type":""}],"src":"11757:404:103"},{"body":{"nodeType":"YulBlock","src":"12340:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12357:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12368:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12350:6:103"},"nodeType":"YulFunctionCall","src":"12350:21:103"},"nodeType":"YulExpressionStatement","src":"12350:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12391:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12402:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12387:3:103"},"nodeType":"YulFunctionCall","src":"12387:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12407:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12380:6:103"},"nodeType":"YulFunctionCall","src":"12380:30:103"},"nodeType":"YulExpressionStatement","src":"12380:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12430:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12441:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12426:3:103"},"nodeType":"YulFunctionCall","src":"12426:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12446:34:103","type":"","value":"ERROR:POC-102:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12419:6:103"},"nodeType":"YulFunctionCall","src":"12419:62:103"},"nodeType":"YulExpressionStatement","src":"12419:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12501:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12512:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12497:3:103"},"nodeType":"YulFunctionCall","src":"12497:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12517:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12490:6:103"},"nodeType":"YulFunctionCall","src":"12490:33:103"},"nodeType":"YulExpressionStatement","src":"12490:33:103"},{"nodeType":"YulAssignment","src":"12532:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12544:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12555:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12540:3:103"},"nodeType":"YulFunctionCall","src":"12540:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12532:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1ac03beb57c99a65c7942aa68c11e6b91d3cade8654ba7436c76c86f22bcf529__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12317:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12331:4:103","type":""}],"src":"12166:399:103"},{"body":{"nodeType":"YulBlock","src":"12744:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12761:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12772:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12754:6:103"},"nodeType":"YulFunctionCall","src":"12754:21:103"},"nodeType":"YulExpressionStatement","src":"12754:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12795:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12806:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12791:3:103"},"nodeType":"YulFunctionCall","src":"12791:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12811:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12784:6:103"},"nodeType":"YulFunctionCall","src":"12784:30:103"},"nodeType":"YulExpressionStatement","src":"12784:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12834:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12845:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12830:3:103"},"nodeType":"YulFunctionCall","src":"12830:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12850:34:103","type":"","value":"ERROR:POC-023:POLICY_ALREADY_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12823:6:103"},"nodeType":"YulFunctionCall","src":"12823:62:103"},"nodeType":"YulExpressionStatement","src":"12823:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12905:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12916:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12901:3:103"},"nodeType":"YulFunctionCall","src":"12901:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12921:5:103","type":"","value":"STS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12894:6:103"},"nodeType":"YulFunctionCall","src":"12894:33:103"},"nodeType":"YulExpressionStatement","src":"12894:33:103"},{"nodeType":"YulAssignment","src":"12936:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12948:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12959:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12944:3:103"},"nodeType":"YulFunctionCall","src":"12944:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12936:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1ac75784ff08502543cdff54428e36c01ae4d8ea69e36a455017dee99fa29dc8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12721:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12735:4:103","type":""}],"src":"12570:399:103"},{"body":{"nodeType":"YulBlock","src":"13148:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13165:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13176:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13158:6:103"},"nodeType":"YulFunctionCall","src":"13158:21:103"},"nodeType":"YulExpressionStatement","src":"13158:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13199:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13210:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13195:3:103"},"nodeType":"YulFunctionCall","src":"13195:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13215:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13188:6:103"},"nodeType":"YulFunctionCall","src":"13188:30:103"},"nodeType":"YulExpressionStatement","src":"13188:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13238:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13249:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13234:3:103"},"nodeType":"YulFunctionCall","src":"13234:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13254:34:103","type":"","value":"ERROR:POC-090:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13227:6:103"},"nodeType":"YulFunctionCall","src":"13227:62:103"},"nodeType":"YulExpressionStatement","src":"13227:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13309:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13320:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13305:3:103"},"nodeType":"YulFunctionCall","src":"13305:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13325:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13298:6:103"},"nodeType":"YulFunctionCall","src":"13298:33:103"},"nodeType":"YulExpressionStatement","src":"13298:33:103"},{"nodeType":"YulAssignment","src":"13340:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13363:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13348:3:103"},"nodeType":"YulFunctionCall","src":"13348:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13340:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1c588baea0842d5c025c2163acf2806d62a81ff4e95e6f6cd3cf1ce8023895b8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13125:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13139:4:103","type":""}],"src":"12974:399:103"},{"body":{"nodeType":"YulBlock","src":"13552:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13580:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13562:6:103"},"nodeType":"YulFunctionCall","src":"13562:21:103"},"nodeType":"YulExpressionStatement","src":"13562:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13614:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13599:3:103"},"nodeType":"YulFunctionCall","src":"13599:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13619:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13592:6:103"},"nodeType":"YulFunctionCall","src":"13592:30:103"},"nodeType":"YulExpressionStatement","src":"13592:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13653:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13638:3:103"},"nodeType":"YulFunctionCall","src":"13638:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13658:34:103","type":"","value":"ERROR:POC-011:APPLICATION_ALREAD"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13631:6:103"},"nodeType":"YulFunctionCall","src":"13631:62:103"},"nodeType":"YulExpressionStatement","src":"13631:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13713:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13724:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13709:3:103"},"nodeType":"YulFunctionCall","src":"13709:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13729:10:103","type":"","value":"Y_EXISTS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13702:6:103"},"nodeType":"YulFunctionCall","src":"13702:38:103"},"nodeType":"YulExpressionStatement","src":"13702:38:103"},{"nodeType":"YulAssignment","src":"13749:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13761:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13772:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13757:3:103"},"nodeType":"YulFunctionCall","src":"13757:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13749:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1db96ed0ae0923362061f94230382ef4f079d53202d86c4160c88d024476fc3b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13529:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13543:4:103","type":""}],"src":"13378:404:103"},{"body":{"nodeType":"YulBlock","src":"13961:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13989:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13971:6:103"},"nodeType":"YulFunctionCall","src":"13971:21:103"},"nodeType":"YulExpressionStatement","src":"13971:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14012:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14023:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14008:3:103"},"nodeType":"YulFunctionCall","src":"14008:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14028:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14001:6:103"},"nodeType":"YulFunctionCall","src":"14001:30:103"},"nodeType":"YulExpressionStatement","src":"14001:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14051:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14062:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14047:3:103"},"nodeType":"YulFunctionCall","src":"14047:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14067:34:103","type":"","value":"ERROR:POC-021:APPLICATION_STATE_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14040:6:103"},"nodeType":"YulFunctionCall","src":"14040:62:103"},"nodeType":"YulExpressionStatement","src":"14040:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14133:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14118:3:103"},"nodeType":"YulFunctionCall","src":"14118:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14138:9:103","type":"","value":"INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14111:6:103"},"nodeType":"YulFunctionCall","src":"14111:37:103"},"nodeType":"YulExpressionStatement","src":"14111:37:103"},{"nodeType":"YulAssignment","src":"14157:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14180:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14165:3:103"},"nodeType":"YulFunctionCall","src":"14165:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14157:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1f9b1806d4697b0956752b1032b95647f09da6dcb802b7b2ad16478e69e208e5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13938:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13952:4:103","type":""}],"src":"13787:403:103"},{"body":{"nodeType":"YulBlock","src":"14369:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14397:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14379:6:103"},"nodeType":"YulFunctionCall","src":"14379:21:103"},"nodeType":"YulExpressionStatement","src":"14379:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14431:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14416:3:103"},"nodeType":"YulFunctionCall","src":"14416:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14436:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14409:6:103"},"nodeType":"YulFunctionCall","src":"14409:30:103"},"nodeType":"YulExpressionStatement","src":"14409:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14470:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14455:3:103"},"nodeType":"YulFunctionCall","src":"14455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14475:34:103","type":"","value":"ERROR:POC-040:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14448:6:103"},"nodeType":"YulFunctionCall","src":"14448:62:103"},"nodeType":"YulExpressionStatement","src":"14448:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14541:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14526:3:103"},"nodeType":"YulFunctionCall","src":"14526:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14546:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14519:6:103"},"nodeType":"YulFunctionCall","src":"14519:33:103"},"nodeType":"YulExpressionStatement","src":"14519:33:103"},{"nodeType":"YulAssignment","src":"14561:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14584:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14569:3:103"},"nodeType":"YulFunctionCall","src":"14569:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14561:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_292e8e8b2f73338c9d7e6ea8fa7931b8d5344a982f7803b5e8efb3cc6e51eca2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14346:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14360:4:103","type":""}],"src":"14195:399:103"},{"body":{"nodeType":"YulBlock","src":"14773:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14790:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14801:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14783:6:103"},"nodeType":"YulFunctionCall","src":"14783:21:103"},"nodeType":"YulExpressionStatement","src":"14783:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14824:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14835:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14820:3:103"},"nodeType":"YulFunctionCall","src":"14820:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14840:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14813:6:103"},"nodeType":"YulFunctionCall","src":"14813:30:103"},"nodeType":"YulExpressionStatement","src":"14813:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14863:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14874:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14859:3:103"},"nodeType":"YulFunctionCall","src":"14859:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14879:34:103","type":"","value":"ERROR:POC-024:APPLICATION_ACCESS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14852:6:103"},"nodeType":"YulFunctionCall","src":"14852:62:103"},"nodeType":"YulExpressionStatement","src":"14852:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14945:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14930:3:103"},"nodeType":"YulFunctionCall","src":"14930:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14950:10:103","type":"","value":"_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14923:6:103"},"nodeType":"YulFunctionCall","src":"14923:38:103"},"nodeType":"YulExpressionStatement","src":"14923:38:103"},{"nodeType":"YulAssignment","src":"14970:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14993:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14978:3:103"},"nodeType":"YulFunctionCall","src":"14978:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14970:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a0446370afa916c99bdf68c1cd2d63970e57fe3533a05a487ffe2d3441b7439__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14750:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14764:4:103","type":""}],"src":"14599:404:103"},{"body":{"nodeType":"YulBlock","src":"15182:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15199:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15210:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15192:6:103"},"nodeType":"YulFunctionCall","src":"15192:21:103"},"nodeType":"YulExpressionStatement","src":"15192:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15233:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15244:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15229:3:103"},"nodeType":"YulFunctionCall","src":"15229:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15249:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15222:6:103"},"nodeType":"YulFunctionCall","src":"15222:30:103"},"nodeType":"YulExpressionStatement","src":"15222:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15272:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15283:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15268:3:103"},"nodeType":"YulFunctionCall","src":"15268:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15288:34:103","type":"","value":"ERROR:POC-050:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15261:6:103"},"nodeType":"YulFunctionCall","src":"15261:62:103"},"nodeType":"YulExpressionStatement","src":"15261:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15343:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15354:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15339:3:103"},"nodeType":"YulFunctionCall","src":"15339:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15359:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15332:6:103"},"nodeType":"YulFunctionCall","src":"15332:33:103"},"nodeType":"YulExpressionStatement","src":"15332:33:103"},{"nodeType":"YulAssignment","src":"15374:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15397:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15382:3:103"},"nodeType":"YulFunctionCall","src":"15382:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15374:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2c741f933dcdc4a0cc8ca27d6761d563fde507b39184c4ba433c9546d61881f7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15159:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15173:4:103","type":""}],"src":"15008:399:103"},{"body":{"nodeType":"YulBlock","src":"15586:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15614:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15596:6:103"},"nodeType":"YulFunctionCall","src":"15596:21:103"},"nodeType":"YulExpressionStatement","src":"15596:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15648:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15633:3:103"},"nodeType":"YulFunctionCall","src":"15633:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15653:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15626:6:103"},"nodeType":"YulFunctionCall","src":"15626:30:103"},"nodeType":"YulExpressionStatement","src":"15626:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15676:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15687:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15672:3:103"},"nodeType":"YulFunctionCall","src":"15672:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15692:34:103","type":"","value":"ERROR:POC-061:POLICY_WITHOUT_OPE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15665:6:103"},"nodeType":"YulFunctionCall","src":"15665:62:103"},"nodeType":"YulExpressionStatement","src":"15665:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15747:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15758:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15743:3:103"},"nodeType":"YulFunctionCall","src":"15743:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15763:10:103","type":"","value":"N_CLAIMS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15736:6:103"},"nodeType":"YulFunctionCall","src":"15736:38:103"},"nodeType":"YulExpressionStatement","src":"15736:38:103"},{"nodeType":"YulAssignment","src":"15783:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15795:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15806:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15791:3:103"},"nodeType":"YulFunctionCall","src":"15791:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15783:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3053d4e6cfaf833f897a113c773083b437a8e9c0edb9dab9a33e145eda637486__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15563:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15577:4:103","type":""}],"src":"15412:404:103"},{"body":{"nodeType":"YulBlock","src":"15995:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16012:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16023:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16005:6:103"},"nodeType":"YulFunctionCall","src":"16005:21:103"},"nodeType":"YulExpressionStatement","src":"16005:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16046:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16057:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16042:3:103"},"nodeType":"YulFunctionCall","src":"16042:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16062:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16035:6:103"},"nodeType":"YulFunctionCall","src":"16035:30:103"},"nodeType":"YulExpressionStatement","src":"16035:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16085:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16096:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16081:3:103"},"nodeType":"YulFunctionCall","src":"16081:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16101:34:103","type":"","value":"ERROR:POC-019:METADATA_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16074:6:103"},"nodeType":"YulFunctionCall","src":"16074:62:103"},"nodeType":"YulExpressionStatement","src":"16074:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16156:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16167:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16152:3:103"},"nodeType":"YulFunctionCall","src":"16152:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16172:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16145:6:103"},"nodeType":"YulFunctionCall","src":"16145:35:103"},"nodeType":"YulExpressionStatement","src":"16145:35:103"},{"nodeType":"YulAssignment","src":"16189:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16201:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16212:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16197:3:103"},"nodeType":"YulFunctionCall","src":"16197:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16189:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3704f3da0c4404bcf7333b4ad925aa1079f426470842ae45a22540b0335abfe9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15972:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15986:4:103","type":""}],"src":"15821:401:103"},{"body":{"nodeType":"YulBlock","src":"16401:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16418:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16429:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16411:6:103"},"nodeType":"YulFunctionCall","src":"16411:21:103"},"nodeType":"YulExpressionStatement","src":"16411:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16452:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16463:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16448:3:103"},"nodeType":"YulFunctionCall","src":"16448:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16468:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16441:6:103"},"nodeType":"YulFunctionCall","src":"16441:30:103"},"nodeType":"YulExpressionStatement","src":"16441:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16491:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16502:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16487:3:103"},"nodeType":"YulFunctionCall","src":"16487:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16507:34:103","type":"","value":"ERROR:POC-063:CLAIM_STATE_INVALI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16480:6:103"},"nodeType":"YulFunctionCall","src":"16480:62:103"},"nodeType":"YulExpressionStatement","src":"16480:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16562:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16573:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16558:3:103"},"nodeType":"YulFunctionCall","src":"16558:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16578:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16551:6:103"},"nodeType":"YulFunctionCall","src":"16551:31:103"},"nodeType":"YulExpressionStatement","src":"16551:31:103"},{"nodeType":"YulAssignment","src":"16591:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16614:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16599:3:103"},"nodeType":"YulFunctionCall","src":"16599:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16591:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_398a0b35799106343616f5ee2dafb07b4f8a17d7f3221c043c8d1b874d608409__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16378:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16392:4:103","type":""}],"src":"16227:397:103"},{"body":{"nodeType":"YulBlock","src":"16803:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16831:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16813:6:103"},"nodeType":"YulFunctionCall","src":"16813:21:103"},"nodeType":"YulExpressionStatement","src":"16813:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16865:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16850:3:103"},"nodeType":"YulFunctionCall","src":"16850:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16870:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16843:6:103"},"nodeType":"YulFunctionCall","src":"16843:30:103"},"nodeType":"YulExpressionStatement","src":"16843:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16893:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16904:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16889:3:103"},"nodeType":"YulFunctionCall","src":"16889:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16909:34:103","type":"","value":"ERROR:POC-054:CLAIM_STATE_INVALI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16882:6:103"},"nodeType":"YulFunctionCall","src":"16882:62:103"},"nodeType":"YulExpressionStatement","src":"16882:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16964:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16975:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16960:3:103"},"nodeType":"YulFunctionCall","src":"16960:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16980:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16953:6:103"},"nodeType":"YulFunctionCall","src":"16953:31:103"},"nodeType":"YulExpressionStatement","src":"16953:31:103"},{"nodeType":"YulAssignment","src":"16993:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17005:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17016:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17001:3:103"},"nodeType":"YulFunctionCall","src":"17001:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16993:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b4bf107bd938845d3000d9894f4f7c3f232df3de3b36946e82f23aad29c8984__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16780:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16794:4:103","type":""}],"src":"16629:397:103"},{"body":{"nodeType":"YulBlock","src":"17205:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17233:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17215:6:103"},"nodeType":"YulFunctionCall","src":"17215:21:103"},"nodeType":"YulExpressionStatement","src":"17215:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17256:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17267:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17252:3:103"},"nodeType":"YulFunctionCall","src":"17252:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17272:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17245:6:103"},"nodeType":"YulFunctionCall","src":"17245:30:103"},"nodeType":"YulExpressionStatement","src":"17245:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17295:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17306:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17291:3:103"},"nodeType":"YulFunctionCall","src":"17291:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17311:34:103","type":"","value":"ERROR:POC-101:APPLICATION_DOES_N"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17284:6:103"},"nodeType":"YulFunctionCall","src":"17284:62:103"},"nodeType":"YulExpressionStatement","src":"17284:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17366:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17377:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17362:3:103"},"nodeType":"YulFunctionCall","src":"17362:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17382:10:103","type":"","value":"OT_EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17355:6:103"},"nodeType":"YulFunctionCall","src":"17355:38:103"},"nodeType":"YulExpressionStatement","src":"17355:38:103"},{"nodeType":"YulAssignment","src":"17402:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17414:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17425:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17410:3:103"},"nodeType":"YulFunctionCall","src":"17410:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17402:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3da05b0c6fea2f8ac4206180524be50a65b9f5363895b5e6c8aa31db28fb502a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17182:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17196:4:103","type":""}],"src":"17031:404:103"},{"body":{"nodeType":"YulBlock","src":"17614:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17642:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17624:6:103"},"nodeType":"YulFunctionCall","src":"17624:21:103"},"nodeType":"YulExpressionStatement","src":"17624:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17665:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17676:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17661:3:103"},"nodeType":"YulFunctionCall","src":"17661:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17681:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17654:6:103"},"nodeType":"YulFunctionCall","src":"17654:30:103"},"nodeType":"YulExpressionStatement","src":"17654:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17704:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17715:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17700:3:103"},"nodeType":"YulFunctionCall","src":"17700:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17720:34:103","type":"","value":"ERROR:POC-071:POLICY_WITHOUT_OPE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17693:6:103"},"nodeType":"YulFunctionCall","src":"17693:62:103"},"nodeType":"YulExpressionStatement","src":"17693:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17775:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17786:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17771:3:103"},"nodeType":"YulFunctionCall","src":"17771:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17791:10:103","type":"","value":"N_CLAIMS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17764:6:103"},"nodeType":"YulFunctionCall","src":"17764:38:103"},"nodeType":"YulExpressionStatement","src":"17764:38:103"},{"nodeType":"YulAssignment","src":"17811:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17823:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17834:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17819:3:103"},"nodeType":"YulFunctionCall","src":"17819:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17811:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3fcafde1bf77d4ec8dcb626e9696c36e8e5c1a0660b1230d420f1e68bf4ba036__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17591:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17605:4:103","type":""}],"src":"17440:404:103"},{"body":{"nodeType":"YulBlock","src":"18023:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18040:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18051:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18033:6:103"},"nodeType":"YulFunctionCall","src":"18033:21:103"},"nodeType":"YulExpressionStatement","src":"18033:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18074:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18085:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18070:3:103"},"nodeType":"YulFunctionCall","src":"18070:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18090:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18063:6:103"},"nodeType":"YulFunctionCall","src":"18063:30:103"},"nodeType":"YulExpressionStatement","src":"18063:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18113:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18124:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18109:3:103"},"nodeType":"YulFunctionCall","src":"18109:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18129:34:103","type":"","value":"ERROR:POC-104:PAYOUT_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18102:6:103"},"nodeType":"YulFunctionCall","src":"18102:62:103"},"nodeType":"YulExpressionStatement","src":"18102:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18184:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18195:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18180:3:103"},"nodeType":"YulFunctionCall","src":"18180:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18200:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18173:6:103"},"nodeType":"YulFunctionCall","src":"18173:33:103"},"nodeType":"YulExpressionStatement","src":"18173:33:103"},{"nodeType":"YulAssignment","src":"18215:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18227:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18238:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18223:3:103"},"nodeType":"YulFunctionCall","src":"18223:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18215:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3fe79e67d34a91a0798917f8e39194a7499cac6ed14bea4875fa47d7458df812__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18000:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18014:4:103","type":""}],"src":"17849:399:103"},{"body":{"nodeType":"YulBlock","src":"18427:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18444:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18455:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18437:6:103"},"nodeType":"YulFunctionCall","src":"18437:21:103"},"nodeType":"YulExpressionStatement","src":"18437:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18478:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18489:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18474:3:103"},"nodeType":"YulFunctionCall","src":"18474:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18494:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18467:6:103"},"nodeType":"YulFunctionCall","src":"18467:30:103"},"nodeType":"YulExpressionStatement","src":"18467:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18528:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18513:3:103"},"nodeType":"YulFunctionCall","src":"18513:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18533:34:103","type":"","value":"ERROR:POC-031:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18506:6:103"},"nodeType":"YulFunctionCall","src":"18506:62:103"},"nodeType":"YulExpressionStatement","src":"18506:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18588:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18599:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18584:3:103"},"nodeType":"YulFunctionCall","src":"18584:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18604:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18577:6:103"},"nodeType":"YulFunctionCall","src":"18577:33:103"},"nodeType":"YulExpressionStatement","src":"18577:33:103"},{"nodeType":"YulAssignment","src":"18619:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18642:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18627:3:103"},"nodeType":"YulFunctionCall","src":"18627:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18619:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4478b2e77c23e8ea61028b27bf7e3d9b60113df479aab9238db0e9c1abb71c24__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18404:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18418:4:103","type":""}],"src":"18253:399:103"},{"body":{"nodeType":"YulBlock","src":"18831:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18848:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18859:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18841:6:103"},"nodeType":"YulFunctionCall","src":"18841:21:103"},"nodeType":"YulExpressionStatement","src":"18841:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18882:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18893:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18878:3:103"},"nodeType":"YulFunctionCall","src":"18878:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18898:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18871:6:103"},"nodeType":"YulFunctionCall","src":"18871:30:103"},"nodeType":"YulExpressionStatement","src":"18871:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18921:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18932:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18917:3:103"},"nodeType":"YulFunctionCall","src":"18917:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18937:34:103","type":"","value":"ERROR:POC-103:CLAIM_DOES_NOT_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18910:6:103"},"nodeType":"YulFunctionCall","src":"18910:62:103"},"nodeType":"YulExpressionStatement","src":"18910:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19003:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18988:3:103"},"nodeType":"YulFunctionCall","src":"18988:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19008:4:103","type":"","value":"ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18981:6:103"},"nodeType":"YulFunctionCall","src":"18981:32:103"},"nodeType":"YulExpressionStatement","src":"18981:32:103"},{"nodeType":"YulAssignment","src":"19022:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19034:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19045:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19030:3:103"},"nodeType":"YulFunctionCall","src":"19030:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19022:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5153c23cb9f198d7c66f5cc94bb88552d8f24d48aafcfe0e6f3776d7f1f59836__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18808:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18822:4:103","type":""}],"src":"18657:398:103"},{"body":{"nodeType":"YulBlock","src":"19234:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19262:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19244:6:103"},"nodeType":"YulFunctionCall","src":"19244:21:103"},"nodeType":"YulExpressionStatement","src":"19244:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19285:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19296:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19281:3:103"},"nodeType":"YulFunctionCall","src":"19281:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19301:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19274:6:103"},"nodeType":"YulFunctionCall","src":"19274:30:103"},"nodeType":"YulExpressionStatement","src":"19274:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19324:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19335:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19320:3:103"},"nodeType":"YulFunctionCall","src":"19320:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19340:34:103","type":"","value":"ERROR:POC-028:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19313:6:103"},"nodeType":"YulFunctionCall","src":"19313:62:103"},"nodeType":"YulExpressionStatement","src":"19313:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19395:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19406:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19391:3:103"},"nodeType":"YulFunctionCall","src":"19391:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19411:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19384:6:103"},"nodeType":"YulFunctionCall","src":"19384:33:103"},"nodeType":"YulExpressionStatement","src":"19384:33:103"},{"nodeType":"YulAssignment","src":"19426:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19438:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19449:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19434:3:103"},"nodeType":"YulFunctionCall","src":"19434:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19426:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_53d931fec3ed7a0ddc013521fad1f76a8f8e8de81d5c8c7f76a59d6fa698eba1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19211:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19225:4:103","type":""}],"src":"19060:399:103"},{"body":{"nodeType":"YulBlock","src":"19638:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19655:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19666:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19648:6:103"},"nodeType":"YulFunctionCall","src":"19648:21:103"},"nodeType":"YulExpressionStatement","src":"19648:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19689:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19700:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19685:3:103"},"nodeType":"YulFunctionCall","src":"19685:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19705:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19678:6:103"},"nodeType":"YulFunctionCall","src":"19678:30:103"},"nodeType":"YulExpressionStatement","src":"19678:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19728:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19739:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19724:3:103"},"nodeType":"YulFunctionCall","src":"19724:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19744:34:103","type":"","value":"ERROR:POC-091:POLICY_WITHOUT_OPE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19717:6:103"},"nodeType":"YulFunctionCall","src":"19717:62:103"},"nodeType":"YulExpressionStatement","src":"19717:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19810:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19795:3:103"},"nodeType":"YulFunctionCall","src":"19795:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19815:10:103","type":"","value":"N_CLAIMS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19788:6:103"},"nodeType":"YulFunctionCall","src":"19788:38:103"},"nodeType":"YulExpressionStatement","src":"19788:38:103"},{"nodeType":"YulAssignment","src":"19835:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19847:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19858:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19843:3:103"},"nodeType":"YulFunctionCall","src":"19843:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19835:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_56e2f09f25415e91cf31d4547c2e56eb6e29b71cb0dd85b313fae192ba276a63__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19615:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19629:4:103","type":""}],"src":"19464:404:103"},{"body":{"nodeType":"YulBlock","src":"20047:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20075:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20057:6:103"},"nodeType":"YulFunctionCall","src":"20057:21:103"},"nodeType":"YulExpressionStatement","src":"20057:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20098:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20109:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20094:3:103"},"nodeType":"YulFunctionCall","src":"20094:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20114:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20087:6:103"},"nodeType":"YulFunctionCall","src":"20087:30:103"},"nodeType":"YulExpressionStatement","src":"20087:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20137:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20148:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20133:3:103"},"nodeType":"YulFunctionCall","src":"20133:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20153:34:103","type":"","value":"ERROR:POC-080:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20126:6:103"},"nodeType":"YulFunctionCall","src":"20126:62:103"},"nodeType":"YulExpressionStatement","src":"20126:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20208:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20219:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20204:3:103"},"nodeType":"YulFunctionCall","src":"20204:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20224:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20197:6:103"},"nodeType":"YulFunctionCall","src":"20197:33:103"},"nodeType":"YulExpressionStatement","src":"20197:33:103"},{"nodeType":"YulAssignment","src":"20239:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20262:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20247:3:103"},"nodeType":"YulFunctionCall","src":"20247:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20239:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5a5a889abcf6c19c8dc84442c08bf7a95a45a161f8d31bee9415eee17c6af67a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20024:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20038:4:103","type":""}],"src":"19873:399:103"},{"body":{"nodeType":"YulBlock","src":"20451:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20468:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20479:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20461:6:103"},"nodeType":"YulFunctionCall","src":"20461:21:103"},"nodeType":"YulExpressionStatement","src":"20461:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20502:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20513:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20498:3:103"},"nodeType":"YulFunctionCall","src":"20498:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20518:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20491:6:103"},"nodeType":"YulFunctionCall","src":"20491:30:103"},"nodeType":"YulExpressionStatement","src":"20491:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20552:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20537:3:103"},"nodeType":"YulFunctionCall","src":"20537:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20557:34:103","type":"","value":"ERROR:POC-052:PAYOUT_MAX_AMOUNT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20530:6:103"},"nodeType":"YulFunctionCall","src":"20530:62:103"},"nodeType":"YulExpressionStatement","src":"20530:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20612:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20623:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20608:3:103"},"nodeType":"YulFunctionCall","src":"20608:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20628:10:103","type":"","value":"EXCEEDED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20601:6:103"},"nodeType":"YulFunctionCall","src":"20601:38:103"},"nodeType":"YulExpressionStatement","src":"20601:38:103"},{"nodeType":"YulAssignment","src":"20648:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20660:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20671:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20656:3:103"},"nodeType":"YulFunctionCall","src":"20656:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20648:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5c526d7df7c2530ac59be5bb2670f7e7233e5bcb0ebd99bccf1d2574f9088ff9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20428:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20442:4:103","type":""}],"src":"20277:404:103"},{"body":{"nodeType":"YulBlock","src":"20860:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20888:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20870:6:103"},"nodeType":"YulFunctionCall","src":"20870:21:103"},"nodeType":"YulExpressionStatement","src":"20870:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20911:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20922:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20907:3:103"},"nodeType":"YulFunctionCall","src":"20907:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20927:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20900:6:103"},"nodeType":"YulFunctionCall","src":"20900:30:103"},"nodeType":"YulExpressionStatement","src":"20900:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20950:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20961:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20946:3:103"},"nodeType":"YulFunctionCall","src":"20946:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20966:34:103","type":"","value":"ERROR:POC-053:CLAIM_DOES_NOT_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20939:6:103"},"nodeType":"YulFunctionCall","src":"20939:62:103"},"nodeType":"YulExpressionStatement","src":"20939:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21021:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21032:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21017:3:103"},"nodeType":"YulFunctionCall","src":"21017:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21037:4:103","type":"","value":"ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21010:6:103"},"nodeType":"YulFunctionCall","src":"21010:32:103"},"nodeType":"YulExpressionStatement","src":"21010:32:103"},{"nodeType":"YulAssignment","src":"21051:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21063:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21074:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21059:3:103"},"nodeType":"YulFunctionCall","src":"21059:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21051:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5e811d9572370e9a750a1f2b7c3f07287bed0a618295148d5ac82c856a0f8383__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20837:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20851:4:103","type":""}],"src":"20686:398:103"},{"body":{"nodeType":"YulBlock","src":"21263:235:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21280:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21291:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21273:6:103"},"nodeType":"YulFunctionCall","src":"21273:21:103"},"nodeType":"YulExpressionStatement","src":"21273:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21314:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21325:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21310:3:103"},"nodeType":"YulFunctionCall","src":"21310:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21330:2:103","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21303:6:103"},"nodeType":"YulFunctionCall","src":"21303:30:103"},"nodeType":"YulExpressionStatement","src":"21303:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21353:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21364:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21349:3:103"},"nodeType":"YulFunctionCall","src":"21349:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21369:34:103","type":"","value":"ERROR:POC-042:CLAIM_AMOUNT_EXCEE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21342:6:103"},"nodeType":"YulFunctionCall","src":"21342:62:103"},"nodeType":"YulExpressionStatement","src":"21342:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21424:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21435:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21420:3:103"},"nodeType":"YulFunctionCall","src":"21420:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21440:15:103","type":"","value":"DS_MAX_PAYOUT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21413:6:103"},"nodeType":"YulFunctionCall","src":"21413:43:103"},"nodeType":"YulExpressionStatement","src":"21413:43:103"},{"nodeType":"YulAssignment","src":"21465:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21477:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21488:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21473:3:103"},"nodeType":"YulFunctionCall","src":"21473:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21465:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5fee7969b096be44aa0b06a7d6dca973bac0addbe10f33bf7ae1c3268e370252__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21240:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21254:4:103","type":""}],"src":"21089:409:103"},{"body":{"nodeType":"YulBlock","src":"21677:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21694:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21705:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21687:6:103"},"nodeType":"YulFunctionCall","src":"21687:21:103"},"nodeType":"YulExpressionStatement","src":"21687:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21728:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21739:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21724:3:103"},"nodeType":"YulFunctionCall","src":"21724:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21744:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21717:6:103"},"nodeType":"YulFunctionCall","src":"21717:30:103"},"nodeType":"YulExpressionStatement","src":"21717:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21778:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21763:3:103"},"nodeType":"YulFunctionCall","src":"21763:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21783:34:103","type":"","value":"ERROR:POC-072:CLAIM_DOES_NOT_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21756:6:103"},"nodeType":"YulFunctionCall","src":"21756:62:103"},"nodeType":"YulExpressionStatement","src":"21756:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21838:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21849:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21834:3:103"},"nodeType":"YulFunctionCall","src":"21834:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21854:4:103","type":"","value":"ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21827:6:103"},"nodeType":"YulFunctionCall","src":"21827:32:103"},"nodeType":"YulExpressionStatement","src":"21827:32:103"},{"nodeType":"YulAssignment","src":"21868:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21880:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21891:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21876:3:103"},"nodeType":"YulFunctionCall","src":"21876:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21868:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_66228a7360d9b0fffc4485892145b1c3b51e61093cd4b29b7cfcba5c26002332__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21654:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21668:4:103","type":""}],"src":"21503:398:103"},{"body":{"nodeType":"YulBlock","src":"22080:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22097:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22108:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22090:6:103"},"nodeType":"YulFunctionCall","src":"22090:21:103"},"nodeType":"YulExpressionStatement","src":"22090:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22131:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22142:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22127:3:103"},"nodeType":"YulFunctionCall","src":"22127:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22147:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22120:6:103"},"nodeType":"YulFunctionCall","src":"22120:30:103"},"nodeType":"YulExpressionStatement","src":"22120:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22181:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22166:3:103"},"nodeType":"YulFunctionCall","src":"22166:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22186:34:103","type":"","value":"ERROR:POC-100:METADATA_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22159:6:103"},"nodeType":"YulFunctionCall","src":"22159:62:103"},"nodeType":"YulExpressionStatement","src":"22159:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22252:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22237:3:103"},"nodeType":"YulFunctionCall","src":"22237:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22257:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22230:6:103"},"nodeType":"YulFunctionCall","src":"22230:35:103"},"nodeType":"YulExpressionStatement","src":"22230:35:103"},{"nodeType":"YulAssignment","src":"22274:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22286:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22297:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22282:3:103"},"nodeType":"YulFunctionCall","src":"22282:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22274:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_690f72e367997aa82f823a8f8aab3f2b4ad3e7d36411ad6e690ba049cd7f8970__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22057:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22071:4:103","type":""}],"src":"21906:401:103"},{"body":{"nodeType":"YulBlock","src":"22486:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22503:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22514:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22496:6:103"},"nodeType":"YulFunctionCall","src":"22496:21:103"},"nodeType":"YulExpressionStatement","src":"22496:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22548:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22533:3:103"},"nodeType":"YulFunctionCall","src":"22533:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22553:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22526:6:103"},"nodeType":"YulFunctionCall","src":"22526:30:103"},"nodeType":"YulExpressionStatement","src":"22526:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22576:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22587:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22572:3:103"},"nodeType":"YulFunctionCall","src":"22572:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22592:34:103","type":"","value":"ERROR:POC-030:METADATA_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22565:6:103"},"nodeType":"YulFunctionCall","src":"22565:62:103"},"nodeType":"YulExpressionStatement","src":"22565:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22658:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22643:3:103"},"nodeType":"YulFunctionCall","src":"22643:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22663:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22636:6:103"},"nodeType":"YulFunctionCall","src":"22636:35:103"},"nodeType":"YulExpressionStatement","src":"22636:35:103"},{"nodeType":"YulAssignment","src":"22680:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22692:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22703:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22688:3:103"},"nodeType":"YulFunctionCall","src":"22688:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22680:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6b49b43b480ffcd2d682b90a53947b738e166fa0f45183e37b9a15878efb6017__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22463:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22477:4:103","type":""}],"src":"22312:401:103"},{"body":{"nodeType":"YulBlock","src":"22892:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22909:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22920:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22902:6:103"},"nodeType":"YulFunctionCall","src":"22902:21:103"},"nodeType":"YulExpressionStatement","src":"22902:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22943:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22954:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22939:3:103"},"nodeType":"YulFunctionCall","src":"22939:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22959:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22932:6:103"},"nodeType":"YulFunctionCall","src":"22932:30:103"},"nodeType":"YulExpressionStatement","src":"22932:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22993:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22978:3:103"},"nodeType":"YulFunctionCall","src":"22978:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22998:34:103","type":"","value":"ERROR:POC-010:METADATA_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22971:6:103"},"nodeType":"YulFunctionCall","src":"22971:62:103"},"nodeType":"YulExpressionStatement","src":"22971:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23053:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23064:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23049:3:103"},"nodeType":"YulFunctionCall","src":"23049:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23069:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23042:6:103"},"nodeType":"YulFunctionCall","src":"23042:35:103"},"nodeType":"YulExpressionStatement","src":"23042:35:103"},{"nodeType":"YulAssignment","src":"23086:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23098:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23109:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23094:3:103"},"nodeType":"YulFunctionCall","src":"23094:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23086:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6dd52a7803fdc21b6951089460e3af3aafa2d9d5b5456b70275b97403a595056__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22869:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22883:4:103","type":""}],"src":"22718:401:103"},{"body":{"nodeType":"YulBlock","src":"23298:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23315:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23326:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23308:6:103"},"nodeType":"YulFunctionCall","src":"23308:21:103"},"nodeType":"YulExpressionStatement","src":"23308:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23360:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23345:3:103"},"nodeType":"YulFunctionCall","src":"23345:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23365:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23338:6:103"},"nodeType":"YulFunctionCall","src":"23338:30:103"},"nodeType":"YulExpressionStatement","src":"23338:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23388:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23399:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23384:3:103"},"nodeType":"YulFunctionCall","src":"23384:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23404:34:103","type":"","value":"ERROR:POC-004:METADATA_ALREADY_E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23377:6:103"},"nodeType":"YulFunctionCall","src":"23377:62:103"},"nodeType":"YulExpressionStatement","src":"23377:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23470:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23455:3:103"},"nodeType":"YulFunctionCall","src":"23455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23475:7:103","type":"","value":"XISTS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23448:6:103"},"nodeType":"YulFunctionCall","src":"23448:35:103"},"nodeType":"YulExpressionStatement","src":"23448:35:103"},{"nodeType":"YulAssignment","src":"23492:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23504:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23515:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23500:3:103"},"nodeType":"YulFunctionCall","src":"23500:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23492:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_72d2655fbab03b37603c9b8823922a50adfc2cb818fbcde0bff3db8e97120ce2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23275:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23289:4:103","type":""}],"src":"23124:401:103"},{"body":{"nodeType":"YulBlock","src":"23704:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23721:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23732:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23714:6:103"},"nodeType":"YulFunctionCall","src":"23714:21:103"},"nodeType":"YulExpressionStatement","src":"23714:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23755:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23766:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23751:3:103"},"nodeType":"YulFunctionCall","src":"23751:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23771:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23744:6:103"},"nodeType":"YulFunctionCall","src":"23744:30:103"},"nodeType":"YulExpressionStatement","src":"23744:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23794:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23805:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23790:3:103"},"nodeType":"YulFunctionCall","src":"23790:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23810:34:103","type":"","value":"ERROR:POC-051:POLICY_WITHOUT_OPE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23783:6:103"},"nodeType":"YulFunctionCall","src":"23783:62:103"},"nodeType":"YulExpressionStatement","src":"23783:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23876:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23861:3:103"},"nodeType":"YulFunctionCall","src":"23861:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23881:10:103","type":"","value":"N_CLAIMS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23854:6:103"},"nodeType":"YulFunctionCall","src":"23854:38:103"},"nodeType":"YulExpressionStatement","src":"23854:38:103"},{"nodeType":"YulAssignment","src":"23901:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23913:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23924:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23909:3:103"},"nodeType":"YulFunctionCall","src":"23909:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23901:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_755bab7e4197528963528c11bb57a6268486e588c4c58aa1fdc3941f0ca82461__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23681:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23695:4:103","type":""}],"src":"23530:404:103"},{"body":{"nodeType":"YulBlock","src":"24113:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24130:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24141:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24123:6:103"},"nodeType":"YulFunctionCall","src":"24123:21:103"},"nodeType":"YulExpressionStatement","src":"24123:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24164:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24175:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24160:3:103"},"nodeType":"YulFunctionCall","src":"24160:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24180:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24153:6:103"},"nodeType":"YulFunctionCall","src":"24153:30:103"},"nodeType":"YulExpressionStatement","src":"24153:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24203:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24214:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24199:3:103"},"nodeType":"YulFunctionCall","src":"24199:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24219:34:103","type":"","value":"ERROR:POC-012:PREMIUM_AMOUNT_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24192:6:103"},"nodeType":"YulFunctionCall","src":"24192:62:103"},"nodeType":"YulExpressionStatement","src":"24192:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24274:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24285:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24270:3:103"},"nodeType":"YulFunctionCall","src":"24270:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24290:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24263:6:103"},"nodeType":"YulFunctionCall","src":"24263:31:103"},"nodeType":"YulExpressionStatement","src":"24263:31:103"},{"nodeType":"YulAssignment","src":"24303:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24315:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24326:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24311:3:103"},"nodeType":"YulFunctionCall","src":"24311:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24303:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_78097f0a73eb9c8a0cc0df22ac96ffe69f6d4347e55bf144298e75d504f52626__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24090:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24104:4:103","type":""}],"src":"23939:397:103"},{"body":{"nodeType":"YulBlock","src":"24515:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24532:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24543:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24525:6:103"},"nodeType":"YulFunctionCall","src":"24525:21:103"},"nodeType":"YulExpressionStatement","src":"24525:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24566:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24577:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24562:3:103"},"nodeType":"YulFunctionCall","src":"24562:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24582:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24555:6:103"},"nodeType":"YulFunctionCall","src":"24555:30:103"},"nodeType":"YulExpressionStatement","src":"24555:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24616:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24601:3:103"},"nodeType":"YulFunctionCall","src":"24601:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24621:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24594:6:103"},"nodeType":"YulFunctionCall","src":"24594:62:103"},"nodeType":"YulExpressionStatement","src":"24594:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24676:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24687:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24672:3:103"},"nodeType":"YulFunctionCall","src":"24672:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24692:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24665:6:103"},"nodeType":"YulFunctionCall","src":"24665:44:103"},"nodeType":"YulExpressionStatement","src":"24665:44:103"},{"nodeType":"YulAssignment","src":"24718:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24730:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24741:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24726:3:103"},"nodeType":"YulFunctionCall","src":"24726:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24718:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24492:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24506:4:103","type":""}],"src":"24341:410:103"},{"body":{"nodeType":"YulBlock","src":"24930:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24947:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24958:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24940:6:103"},"nodeType":"YulFunctionCall","src":"24940:21:103"},"nodeType":"YulExpressionStatement","src":"24940:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24981:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24992:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24977:3:103"},"nodeType":"YulFunctionCall","src":"24977:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24997:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24970:6:103"},"nodeType":"YulFunctionCall","src":"24970:30:103"},"nodeType":"YulExpressionStatement","src":"24970:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25020:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25031:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25016:3:103"},"nodeType":"YulFunctionCall","src":"25016:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25036:34:103","type":"","value":"ERROR:POC-070:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25009:6:103"},"nodeType":"YulFunctionCall","src":"25009:62:103"},"nodeType":"YulExpressionStatement","src":"25009:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25091:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25102:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25087:3:103"},"nodeType":"YulFunctionCall","src":"25087:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25107:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25080:6:103"},"nodeType":"YulFunctionCall","src":"25080:33:103"},"nodeType":"YulExpressionStatement","src":"25080:33:103"},{"nodeType":"YulAssignment","src":"25122:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25134:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25145:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25130:3:103"},"nodeType":"YulFunctionCall","src":"25130:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25122:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7ba313180bbdd84742438fe48f9070ad471c0e8441fc547ddd9d43836c05647d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24907:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24921:4:103","type":""}],"src":"24756:399:103"},{"body":{"nodeType":"YulBlock","src":"25334:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25351:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25362:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25344:6:103"},"nodeType":"YulFunctionCall","src":"25344:21:103"},"nodeType":"YulExpressionStatement","src":"25344:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25385:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25396:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25381:3:103"},"nodeType":"YulFunctionCall","src":"25381:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25401:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25374:6:103"},"nodeType":"YulFunctionCall","src":"25374:30:103"},"nodeType":"YulExpressionStatement","src":"25374:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25424:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25435:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25420:3:103"},"nodeType":"YulFunctionCall","src":"25420:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25440:34:103","type":"","value":"ERROR:POC-029:APPLICATION_STATE_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25413:6:103"},"nodeType":"YulFunctionCall","src":"25413:62:103"},"nodeType":"YulExpressionStatement","src":"25413:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25495:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25506:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25491:3:103"},"nodeType":"YulFunctionCall","src":"25491:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25511:9:103","type":"","value":"INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25484:6:103"},"nodeType":"YulFunctionCall","src":"25484:37:103"},"nodeType":"YulExpressionStatement","src":"25484:37:103"},{"nodeType":"YulAssignment","src":"25530:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25553:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25538:3:103"},"nodeType":"YulFunctionCall","src":"25538:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25530:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_812d7a3c3591ae4c026af18cdf37eaa885599baf13a298242cc5ed294cb86aa7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25311:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25325:4:103","type":""}],"src":"25160:403:103"},{"body":{"nodeType":"YulBlock","src":"25742:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25759:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25770:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25752:6:103"},"nodeType":"YulFunctionCall","src":"25752:21:103"},"nodeType":"YulExpressionStatement","src":"25752:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25793:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25804:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25789:3:103"},"nodeType":"YulFunctionCall","src":"25789:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25809:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25782:6:103"},"nodeType":"YulFunctionCall","src":"25782:30:103"},"nodeType":"YulExpressionStatement","src":"25782:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25832:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25843:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25828:3:103"},"nodeType":"YulFunctionCall","src":"25828:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25848:34:103","type":"","value":"ERROR:POC-015:APPLICATION_DOES_N"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25821:6:103"},"nodeType":"YulFunctionCall","src":"25821:62:103"},"nodeType":"YulExpressionStatement","src":"25821:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25914:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25899:3:103"},"nodeType":"YulFunctionCall","src":"25899:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25919:10:103","type":"","value":"OT_EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25892:6:103"},"nodeType":"YulFunctionCall","src":"25892:38:103"},"nodeType":"YulExpressionStatement","src":"25892:38:103"},{"nodeType":"YulAssignment","src":"25939:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25951:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25962:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25947:3:103"},"nodeType":"YulFunctionCall","src":"25947:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25939:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_84d582f54bcbf9ecef49660743d83c5d351adfda381e7de998dfd7253752ca0d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25719:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25733:4:103","type":""}],"src":"25568:404:103"},{"body":{"nodeType":"YulBlock","src":"26151:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26168:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26179:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26161:6:103"},"nodeType":"YulFunctionCall","src":"26161:21:103"},"nodeType":"YulExpressionStatement","src":"26161:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26202:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26213:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26198:3:103"},"nodeType":"YulFunctionCall","src":"26198:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26218:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26191:6:103"},"nodeType":"YulFunctionCall","src":"26191:30:103"},"nodeType":"YulExpressionStatement","src":"26191:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26252:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26237:3:103"},"nodeType":"YulFunctionCall","src":"26237:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26257:34:103","type":"","value":"ERROR:POC-043:CLAIM_ALREADY_EXIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26230:6:103"},"nodeType":"YulFunctionCall","src":"26230:62:103"},"nodeType":"YulExpressionStatement","src":"26230:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26312:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26323:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26308:3:103"},"nodeType":"YulFunctionCall","src":"26308:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26328:4:103","type":"","value":"TS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26301:6:103"},"nodeType":"YulFunctionCall","src":"26301:32:103"},"nodeType":"YulExpressionStatement","src":"26301:32:103"},{"nodeType":"YulAssignment","src":"26342:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26354:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26365:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26350:3:103"},"nodeType":"YulFunctionCall","src":"26350:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26342:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_91872c40feaf252e2b1bb5310507c26c5310a79208576166f8430e887a141a99__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26128:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26142:4:103","type":""}],"src":"25977:398:103"},{"body":{"nodeType":"YulBlock","src":"26554:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26582:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26564:6:103"},"nodeType":"YulFunctionCall","src":"26564:21:103"},"nodeType":"YulExpressionStatement","src":"26564:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26616:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26601:3:103"},"nodeType":"YulFunctionCall","src":"26601:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26621:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26594:6:103"},"nodeType":"YulFunctionCall","src":"26594:30:103"},"nodeType":"YulExpressionStatement","src":"26594:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26655:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26640:3:103"},"nodeType":"YulFunctionCall","src":"26640:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26660:34:103","type":"","value":"ERROR:POC-092:PAYOUT_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26633:6:103"},"nodeType":"YulFunctionCall","src":"26633:62:103"},"nodeType":"YulExpressionStatement","src":"26633:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26715:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26726:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26711:3:103"},"nodeType":"YulFunctionCall","src":"26711:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26731:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26704:6:103"},"nodeType":"YulFunctionCall","src":"26704:33:103"},"nodeType":"YulExpressionStatement","src":"26704:33:103"},{"nodeType":"YulAssignment","src":"26746:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26758:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26769:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26754:3:103"},"nodeType":"YulFunctionCall","src":"26754:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26746:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_93b837b53622deccc674a4295ad216375b944d6d9e4fcced40e36e2aab9aae9d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26531:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26545:4:103","type":""}],"src":"26380:399:103"},{"body":{"nodeType":"YulBlock","src":"26958:244:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26986:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26968:6:103"},"nodeType":"YulFunctionCall","src":"26968:21:103"},"nodeType":"YulExpressionStatement","src":"26968:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27020:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27005:3:103"},"nodeType":"YulFunctionCall","src":"27005:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27025:2:103","type":"","value":"54"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26998:6:103"},"nodeType":"YulFunctionCall","src":"26998:30:103"},"nodeType":"YulExpressionStatement","src":"26998:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27048:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27059:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27044:3:103"},"nodeType":"YulFunctionCall","src":"27044:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27064:34:103","type":"","value":"ERROR:POC-026:APPLICATION_SUM_IN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27037:6:103"},"nodeType":"YulFunctionCall","src":"27037:62:103"},"nodeType":"YulExpressionStatement","src":"27037:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27119:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27130:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27115:3:103"},"nodeType":"YulFunctionCall","src":"27115:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27135:24:103","type":"","value":"SURED_INCREASE_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27108:6:103"},"nodeType":"YulFunctionCall","src":"27108:52:103"},"nodeType":"YulExpressionStatement","src":"27108:52:103"},{"nodeType":"YulAssignment","src":"27169:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27181:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27192:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27177:3:103"},"nodeType":"YulFunctionCall","src":"27177:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27169:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9608b61059ad8bfc78f4d88fdfb884791e53ff59328c8a500c5f1565bd0419e3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26935:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26949:4:103","type":""}],"src":"26784:418:103"},{"body":{"nodeType":"YulBlock","src":"27381:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27398:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27409:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27391:6:103"},"nodeType":"YulFunctionCall","src":"27391:21:103"},"nodeType":"YulExpressionStatement","src":"27391:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27432:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27443:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27428:3:103"},"nodeType":"YulFunctionCall","src":"27428:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27448:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27421:6:103"},"nodeType":"YulFunctionCall","src":"27421:30:103"},"nodeType":"YulExpressionStatement","src":"27421:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27471:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27482:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27467:3:103"},"nodeType":"YulFunctionCall","src":"27467:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27487:34:103","type":"","value":"ERROR:POC-074:CLAIM_WITH_UNPAID_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27460:6:103"},"nodeType":"YulFunctionCall","src":"27460:62:103"},"nodeType":"YulExpressionStatement","src":"27460:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27553:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27538:3:103"},"nodeType":"YulFunctionCall","src":"27538:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27558:9:103","type":"","value":"PAYOUTS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27531:6:103"},"nodeType":"YulFunctionCall","src":"27531:37:103"},"nodeType":"YulExpressionStatement","src":"27531:37:103"},{"nodeType":"YulAssignment","src":"27577:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27589:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27600:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27585:3:103"},"nodeType":"YulFunctionCall","src":"27585:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27577:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_994fcfb46b233054b612c28f28fd225d060ea12c5701f5c87abfbfceffddc86b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27358:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27372:4:103","type":""}],"src":"27207:403:103"},{"body":{"nodeType":"YulBlock","src":"27789:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27806:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27817:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27799:6:103"},"nodeType":"YulFunctionCall","src":"27799:21:103"},"nodeType":"YulExpressionStatement","src":"27799:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27840:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27851:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27836:3:103"},"nodeType":"YulFunctionCall","src":"27836:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27856:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27829:6:103"},"nodeType":"YulFunctionCall","src":"27829:30:103"},"nodeType":"YulExpressionStatement","src":"27829:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27879:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27890:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27875:3:103"},"nodeType":"YulFunctionCall","src":"27875:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27895:34:103","type":"","value":"ERROR:POC-016:APPLICATION_STATE_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27868:6:103"},"nodeType":"YulFunctionCall","src":"27868:62:103"},"nodeType":"YulExpressionStatement","src":"27868:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27950:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27961:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27946:3:103"},"nodeType":"YulFunctionCall","src":"27946:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27966:9:103","type":"","value":"INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27939:6:103"},"nodeType":"YulFunctionCall","src":"27939:37:103"},"nodeType":"YulExpressionStatement","src":"27939:37:103"},{"nodeType":"YulAssignment","src":"27985:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27997:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28008:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27993:3:103"},"nodeType":"YulFunctionCall","src":"27993:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27985:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a28f16b2c92dc01202801f97442d7b5b72a32eaf29ba8288670aca403d1d91c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27766:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27780:4:103","type":""}],"src":"27615:403:103"},{"body":{"nodeType":"YulBlock","src":"28197:232:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28214:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28225:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28207:6:103"},"nodeType":"YulFunctionCall","src":"28207:21:103"},"nodeType":"YulExpressionStatement","src":"28207:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28259:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28244:3:103"},"nodeType":"YulFunctionCall","src":"28244:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28264:2:103","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28237:6:103"},"nodeType":"YulFunctionCall","src":"28237:30:103"},"nodeType":"YulExpressionStatement","src":"28237:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28287:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28298:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28283:3:103"},"nodeType":"YulFunctionCall","src":"28283:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28303:34:103","type":"","value":"ERROR:POC-013:SUM_INSURED_AMOUNT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28276:6:103"},"nodeType":"YulFunctionCall","src":"28276:62:103"},"nodeType":"YulExpressionStatement","src":"28276:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28358:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28369:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28354:3:103"},"nodeType":"YulFunctionCall","src":"28354:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28374:12:103","type":"","value":"_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28347:6:103"},"nodeType":"YulFunctionCall","src":"28347:40:103"},"nodeType":"YulExpressionStatement","src":"28347:40:103"},{"nodeType":"YulAssignment","src":"28396:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28408:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28419:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28404:3:103"},"nodeType":"YulFunctionCall","src":"28404:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28396:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a96e2ba49a294fb57653f2edea6788990e95e8ccf3f4008e1f67857f31ab7af5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28174:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28188:4:103","type":""}],"src":"28023:406:103"},{"body":{"nodeType":"YulBlock","src":"28608:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28625:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28636:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28618:6:103"},"nodeType":"YulFunctionCall","src":"28618:21:103"},"nodeType":"YulExpressionStatement","src":"28618:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28659:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28670:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28655:3:103"},"nodeType":"YulFunctionCall","src":"28655:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28675:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28648:6:103"},"nodeType":"YulFunctionCall","src":"28648:30:103"},"nodeType":"YulExpressionStatement","src":"28648:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28698:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28709:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28694:3:103"},"nodeType":"YulFunctionCall","src":"28694:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28714:34:103","type":"","value":"ERROR:POC-033:POLICY_HAS_OPEN_CL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28687:6:103"},"nodeType":"YulFunctionCall","src":"28687:62:103"},"nodeType":"YulExpressionStatement","src":"28687:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28769:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28780:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28765:3:103"},"nodeType":"YulFunctionCall","src":"28765:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28785:6:103","type":"","value":"AIMS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28758:6:103"},"nodeType":"YulFunctionCall","src":"28758:34:103"},"nodeType":"YulExpressionStatement","src":"28758:34:103"},{"nodeType":"YulAssignment","src":"28801:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28813:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28824:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28809:3:103"},"nodeType":"YulFunctionCall","src":"28809:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28801:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_abcae8090ad71bdef33e1fc1dca9cb7acc84966fbfb6b6101f386f861bfed9d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28585:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28599:4:103","type":""}],"src":"28434:400:103"},{"body":{"nodeType":"YulBlock","src":"29013:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29030:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29041:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29023:6:103"},"nodeType":"YulFunctionCall","src":"29023:21:103"},"nodeType":"YulExpressionStatement","src":"29023:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29075:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29060:3:103"},"nodeType":"YulFunctionCall","src":"29060:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29080:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29053:6:103"},"nodeType":"YulFunctionCall","src":"29053:30:103"},"nodeType":"YulExpressionStatement","src":"29053:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29103:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29114:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29099:3:103"},"nodeType":"YulFunctionCall","src":"29099:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29119:30:103","type":"","value":"ERROR:CRC-002:NOT_ON_STORAGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29092:6:103"},"nodeType":"YulFunctionCall","src":"29092:58:103"},"nodeType":"YulExpressionStatement","src":"29092:58:103"},{"nodeType":"YulAssignment","src":"29159:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29171:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29182:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29167:3:103"},"nodeType":"YulFunctionCall","src":"29167:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29159:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28990:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29004:4:103","type":""}],"src":"28839:352:103"},{"body":{"nodeType":"YulBlock","src":"29370:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29398:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29380:6:103"},"nodeType":"YulFunctionCall","src":"29380:21:103"},"nodeType":"YulExpressionStatement","src":"29380:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29421:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29432:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29417:3:103"},"nodeType":"YulFunctionCall","src":"29417:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29437:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29410:6:103"},"nodeType":"YulFunctionCall","src":"29410:30:103"},"nodeType":"YulExpressionStatement","src":"29410:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29460:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29471:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29456:3:103"},"nodeType":"YulFunctionCall","src":"29456:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29476:34:103","type":"","value":"ERROR:POC-060:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29449:6:103"},"nodeType":"YulFunctionCall","src":"29449:62:103"},"nodeType":"YulExpressionStatement","src":"29449:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29531:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29542:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29527:3:103"},"nodeType":"YulFunctionCall","src":"29527:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29547:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29520:6:103"},"nodeType":"YulFunctionCall","src":"29520:33:103"},"nodeType":"YulExpressionStatement","src":"29520:33:103"},{"nodeType":"YulAssignment","src":"29562:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29574:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29585:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29570:3:103"},"nodeType":"YulFunctionCall","src":"29570:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29562:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b41ecb3c73d1bd22f6c59fa2a27979a7be92c595245d732c42c675aea1a608cc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29347:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29361:4:103","type":""}],"src":"29196:399:103"},{"body":{"nodeType":"YulBlock","src":"29774:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29791:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29802:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29784:6:103"},"nodeType":"YulFunctionCall","src":"29784:21:103"},"nodeType":"YulExpressionStatement","src":"29784:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29825:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29836:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29821:3:103"},"nodeType":"YulFunctionCall","src":"29821:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29841:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29814:6:103"},"nodeType":"YulFunctionCall","src":"29814:30:103"},"nodeType":"YulExpressionStatement","src":"29814:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29864:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29875:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29860:3:103"},"nodeType":"YulFunctionCall","src":"29860:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29880:29:103","type":"","value":"ERROR:POL-001:INVALID_OWNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29853:6:103"},"nodeType":"YulFunctionCall","src":"29853:57:103"},"nodeType":"YulExpressionStatement","src":"29853:57:103"},{"nodeType":"YulAssignment","src":"29919:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29931:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29942:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29927:3:103"},"nodeType":"YulFunctionCall","src":"29927:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29919:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b56e7a919624c31e06a250efb3d4a1c8dc2262f50cf44fe416ac86523a45cda1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29751:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29765:4:103","type":""}],"src":"29600:351:103"},{"body":{"nodeType":"YulBlock","src":"30130:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30147:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30158:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30140:6:103"},"nodeType":"YulFunctionCall","src":"30140:21:103"},"nodeType":"YulExpressionStatement","src":"30140:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30181:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30192:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30177:3:103"},"nodeType":"YulFunctionCall","src":"30177:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30197:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30170:6:103"},"nodeType":"YulFunctionCall","src":"30170:30:103"},"nodeType":"YulExpressionStatement","src":"30170:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30231:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30216:3:103"},"nodeType":"YulFunctionCall","src":"30216:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30236:34:103","type":"","value":"ERROR:POC-081:CLAIM_DOES_NOT_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30209:6:103"},"nodeType":"YulFunctionCall","src":"30209:62:103"},"nodeType":"YulExpressionStatement","src":"30209:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30291:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30302:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30287:3:103"},"nodeType":"YulFunctionCall","src":"30287:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30307:4:103","type":"","value":"ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30280:6:103"},"nodeType":"YulFunctionCall","src":"30280:32:103"},"nodeType":"YulExpressionStatement","src":"30280:32:103"},{"nodeType":"YulAssignment","src":"30321:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30333:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30344:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30329:3:103"},"nodeType":"YulFunctionCall","src":"30329:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30321:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_bad351fc3f92fb02e37fe12e8bfff9d2e9a73dc2520d63761873fd147db6724b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30107:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30121:4:103","type":""}],"src":"29956:398:103"},{"body":{"nodeType":"YulBlock","src":"30533:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30550:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30561:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30543:6:103"},"nodeType":"YulFunctionCall","src":"30543:21:103"},"nodeType":"YulExpressionStatement","src":"30543:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30584:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30595:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30580:3:103"},"nodeType":"YulFunctionCall","src":"30580:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30600:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30573:6:103"},"nodeType":"YulFunctionCall","src":"30573:30:103"},"nodeType":"YulExpressionStatement","src":"30573:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30623:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30634:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30619:3:103"},"nodeType":"YulFunctionCall","src":"30619:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30639:31:103","type":"","value":"ERROR:POL-002:INVALID_PRODUCT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30612:6:103"},"nodeType":"YulFunctionCall","src":"30612:59:103"},"nodeType":"YulExpressionStatement","src":"30612:59:103"},{"nodeType":"YulAssignment","src":"30680:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30692:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30703:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30688:3:103"},"nodeType":"YulFunctionCall","src":"30688:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30680:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_be65d387a5e288bbda6f7f29353c4a4177557e85600e7b58dfff26aa731432f1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30510:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30524:4:103","type":""}],"src":"30359:353:103"},{"body":{"nodeType":"YulBlock","src":"30891:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30908:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30919:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30901:6:103"},"nodeType":"YulFunctionCall","src":"30901:21:103"},"nodeType":"YulExpressionStatement","src":"30901:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30953:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30938:3:103"},"nodeType":"YulFunctionCall","src":"30938:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30958:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30931:6:103"},"nodeType":"YulFunctionCall","src":"30931:30:103"},"nodeType":"YulExpressionStatement","src":"30931:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30981:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30992:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30977:3:103"},"nodeType":"YulFunctionCall","src":"30977:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30997:34:103","type":"","value":"ERROR:POL-003:PRODUCT_NOT_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30970:6:103"},"nodeType":"YulFunctionCall","src":"30970:62:103"},"nodeType":"YulExpressionStatement","src":"30970:62:103"},{"nodeType":"YulAssignment","src":"31041:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31053:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31064:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31049:3:103"},"nodeType":"YulFunctionCall","src":"31049:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31041:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_bf94c9406086159fab987519e07ae464f5659ba577264ceb8dcfb2519b4068e5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30868:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30882:4:103","type":""}],"src":"30717:356:103"},{"body":{"nodeType":"YulBlock","src":"31252:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31269:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31280:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31262:6:103"},"nodeType":"YulFunctionCall","src":"31262:21:103"},"nodeType":"YulExpressionStatement","src":"31262:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31303:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31314:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31299:3:103"},"nodeType":"YulFunctionCall","src":"31299:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"31319:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31292:6:103"},"nodeType":"YulFunctionCall","src":"31292:30:103"},"nodeType":"YulExpressionStatement","src":"31292:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31353:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31338:3:103"},"nodeType":"YulFunctionCall","src":"31338:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31358:34:103","type":"","value":"ERROR:POC-082:CLAIM_NOT_CONFIRME"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31331:6:103"},"nodeType":"YulFunctionCall","src":"31331:62:103"},"nodeType":"YulExpressionStatement","src":"31331:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31413:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31424:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31409:3:103"},"nodeType":"YulFunctionCall","src":"31409:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31429:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31402:6:103"},"nodeType":"YulFunctionCall","src":"31402:31:103"},"nodeType":"YulExpressionStatement","src":"31402:31:103"},{"nodeType":"YulAssignment","src":"31442:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31465:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31450:3:103"},"nodeType":"YulFunctionCall","src":"31450:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31442:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_bfc0ba001c33e3f6ca8d92ccec220dc5c2f1e52ae20defc45ca76c02259da5c3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31229:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31243:4:103","type":""}],"src":"31078:397:103"},{"body":{"nodeType":"YulBlock","src":"31654:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31682:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31664:6:103"},"nodeType":"YulFunctionCall","src":"31664:21:103"},"nodeType":"YulExpressionStatement","src":"31664:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31705:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31716:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31701:3:103"},"nodeType":"YulFunctionCall","src":"31701:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"31721:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31694:6:103"},"nodeType":"YulFunctionCall","src":"31694:30:103"},"nodeType":"YulExpressionStatement","src":"31694:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31744:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31755:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31740:3:103"},"nodeType":"YulFunctionCall","src":"31740:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31760:34:103","type":"","value":"ERROR:POC-014:METADATA_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31733:6:103"},"nodeType":"YulFunctionCall","src":"31733:62:103"},"nodeType":"YulExpressionStatement","src":"31733:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31815:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31826:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31811:3:103"},"nodeType":"YulFunctionCall","src":"31811:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31831:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31804:6:103"},"nodeType":"YulFunctionCall","src":"31804:35:103"},"nodeType":"YulExpressionStatement","src":"31804:35:103"},{"nodeType":"YulAssignment","src":"31848:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31860:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31871:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31856:3:103"},"nodeType":"YulFunctionCall","src":"31856:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31848:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c7b69042e7f6515d560658ee6d1de6d418e69114e700e0b6a50b7b0e552dda1c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31631:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31645:4:103","type":""}],"src":"31480:401:103"},{"body":{"nodeType":"YulBlock","src":"32060:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32077:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32088:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32070:6:103"},"nodeType":"YulFunctionCall","src":"32070:21:103"},"nodeType":"YulExpressionStatement","src":"32070:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32111:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32122:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32107:3:103"},"nodeType":"YulFunctionCall","src":"32107:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"32127:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32100:6:103"},"nodeType":"YulFunctionCall","src":"32100:30:103"},"nodeType":"YulExpressionStatement","src":"32100:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32150:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32161:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32146:3:103"},"nodeType":"YulFunctionCall","src":"32146:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32166:34:103","type":"","value":"ERROR:POC-110:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32139:6:103"},"nodeType":"YulFunctionCall","src":"32139:62:103"},"nodeType":"YulExpressionStatement","src":"32139:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32221:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32232:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32217:3:103"},"nodeType":"YulFunctionCall","src":"32217:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32237:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32210:6:103"},"nodeType":"YulFunctionCall","src":"32210:33:103"},"nodeType":"YulExpressionStatement","src":"32210:33:103"},{"nodeType":"YulAssignment","src":"32252:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32264:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32275:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32260:3:103"},"nodeType":"YulFunctionCall","src":"32260:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32252:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c8b70c4aba1c2cd717e92fc9379cd96b59815516b78271810475c67b9507a6b5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32037:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32051:4:103","type":""}],"src":"31886:399:103"},{"body":{"nodeType":"YulBlock","src":"32464:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32481:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32492:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32474:6:103"},"nodeType":"YulFunctionCall","src":"32474:21:103"},"nodeType":"YulExpressionStatement","src":"32474:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32515:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32526:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32511:3:103"},"nodeType":"YulFunctionCall","src":"32511:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"32531:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32504:6:103"},"nodeType":"YulFunctionCall","src":"32504:30:103"},"nodeType":"YulExpressionStatement","src":"32504:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32554:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32565:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32550:3:103"},"nodeType":"YulFunctionCall","src":"32550:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32570:30:103","type":"","value":"ERROR:POC-111:AMOUNT_TOO_BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32543:6:103"},"nodeType":"YulFunctionCall","src":"32543:58:103"},"nodeType":"YulExpressionStatement","src":"32543:58:103"},{"nodeType":"YulAssignment","src":"32610:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32622:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32633:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32618:3:103"},"nodeType":"YulFunctionCall","src":"32618:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32610:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ca128060720b4fcc87482c839fb4ff931d94c5e1cf662666b918d32e6fcfb90c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32441:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32455:4:103","type":""}],"src":"32290:352:103"},{"body":{"nodeType":"YulBlock","src":"32821:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32838:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32849:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32831:6:103"},"nodeType":"YulFunctionCall","src":"32831:21:103"},"nodeType":"YulExpressionStatement","src":"32831:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32872:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32883:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32868:3:103"},"nodeType":"YulFunctionCall","src":"32868:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"32888:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32861:6:103"},"nodeType":"YulFunctionCall","src":"32861:30:103"},"nodeType":"YulExpressionStatement","src":"32861:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32911:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32922:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32907:3:103"},"nodeType":"YulFunctionCall","src":"32907:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32927:34:103","type":"","value":"ERROR:POC-062:CLAIM_DOES_NOT_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32900:6:103"},"nodeType":"YulFunctionCall","src":"32900:62:103"},"nodeType":"YulExpressionStatement","src":"32900:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32993:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32978:3:103"},"nodeType":"YulFunctionCall","src":"32978:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32998:4:103","type":"","value":"ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32971:6:103"},"nodeType":"YulFunctionCall","src":"32971:32:103"},"nodeType":"YulExpressionStatement","src":"32971:32:103"},{"nodeType":"YulAssignment","src":"33012:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33024:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33035:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33020:3:103"},"nodeType":"YulFunctionCall","src":"33020:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33012:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc0c0ad5317a8bd39d7f7249cfb02b10c5d042b35addbb0f642b415e4905d7e9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32798:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32812:4:103","type":""}],"src":"32647:398:103"},{"body":{"nodeType":"YulBlock","src":"33224:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33252:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33234:6:103"},"nodeType":"YulFunctionCall","src":"33234:21:103"},"nodeType":"YulExpressionStatement","src":"33234:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33275:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33286:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33271:3:103"},"nodeType":"YulFunctionCall","src":"33271:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"33291:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33264:6:103"},"nodeType":"YulFunctionCall","src":"33264:30:103"},"nodeType":"YulExpressionStatement","src":"33264:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33314:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33325:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33310:3:103"},"nodeType":"YulFunctionCall","src":"33310:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33330:34:103","type":"","value":"ERROR:POC-084:PAYOUT_AMOUNT_TOO_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33303:6:103"},"nodeType":"YulFunctionCall","src":"33303:62:103"},"nodeType":"YulExpressionStatement","src":"33303:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33385:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33396:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33381:3:103"},"nodeType":"YulFunctionCall","src":"33381:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33401:5:103","type":"","value":"BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33374:6:103"},"nodeType":"YulFunctionCall","src":"33374:33:103"},"nodeType":"YulExpressionStatement","src":"33374:33:103"},{"nodeType":"YulAssignment","src":"33416:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33428:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33439:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33424:3:103"},"nodeType":"YulFunctionCall","src":"33424:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33416:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_cdac7f3ad598042a4a49afc2907268af0bd86276c34f48886ad7a8f93edf5782__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33201:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33215:4:103","type":""}],"src":"33050:399:103"},{"body":{"nodeType":"YulBlock","src":"33628:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33645:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33656:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33638:6:103"},"nodeType":"YulFunctionCall","src":"33638:21:103"},"nodeType":"YulExpressionStatement","src":"33638:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33679:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33690:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33675:3:103"},"nodeType":"YulFunctionCall","src":"33675:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"33695:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33668:6:103"},"nodeType":"YulFunctionCall","src":"33668:30:103"},"nodeType":"YulExpressionStatement","src":"33668:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33718:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33729:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33714:3:103"},"nodeType":"YulFunctionCall","src":"33714:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33734:34:103","type":"","value":"ERROR:POC-017:APPLICATION_DOES_N"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33707:6:103"},"nodeType":"YulFunctionCall","src":"33707:62:103"},"nodeType":"YulExpressionStatement","src":"33707:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33789:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33800:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33785:3:103"},"nodeType":"YulFunctionCall","src":"33785:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33805:10:103","type":"","value":"OT_EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33778:6:103"},"nodeType":"YulFunctionCall","src":"33778:38:103"},"nodeType":"YulExpressionStatement","src":"33778:38:103"},{"nodeType":"YulAssignment","src":"33825:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33837:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33848:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33833:3:103"},"nodeType":"YulFunctionCall","src":"33833:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33825:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d48c4714dc35abe5eee68196d3e0333f2895edd4c645d06d442d03e129bca5e5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33605:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33619:4:103","type":""}],"src":"33454:404:103"},{"body":{"nodeType":"YulBlock","src":"34037:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34054:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34065:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34047:6:103"},"nodeType":"YulFunctionCall","src":"34047:21:103"},"nodeType":"YulExpressionStatement","src":"34047:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34099:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34084:3:103"},"nodeType":"YulFunctionCall","src":"34084:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"34104:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34077:6:103"},"nodeType":"YulFunctionCall","src":"34077:30:103"},"nodeType":"YulExpressionStatement","src":"34077:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34127:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34138:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34123:3:103"},"nodeType":"YulFunctionCall","src":"34123:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34143:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34116:6:103"},"nodeType":"YulFunctionCall","src":"34116:62:103"},"nodeType":"YulExpressionStatement","src":"34116:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34198:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34209:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34194:3:103"},"nodeType":"YulFunctionCall","src":"34194:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34214:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34187:6:103"},"nodeType":"YulFunctionCall","src":"34187:41:103"},"nodeType":"YulExpressionStatement","src":"34187:41:103"},{"nodeType":"YulAssignment","src":"34237:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34260:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34245:3:103"},"nodeType":"YulFunctionCall","src":"34245:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34237:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34014:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34028:4:103","type":""}],"src":"33863:407:103"},{"body":{"nodeType":"YulBlock","src":"34449:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34466:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34477:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34459:6:103"},"nodeType":"YulFunctionCall","src":"34459:21:103"},"nodeType":"YulExpressionStatement","src":"34459:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34500:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34511:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34496:3:103"},"nodeType":"YulFunctionCall","src":"34496:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"34516:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34489:6:103"},"nodeType":"YulFunctionCall","src":"34489:30:103"},"nodeType":"YulExpressionStatement","src":"34489:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34539:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34550:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34535:3:103"},"nodeType":"YulFunctionCall","src":"34535:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34555:34:103","type":"","value":"ERROR:POC-085:PAYOUT_ALREADY_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34528:6:103"},"nodeType":"YulFunctionCall","src":"34528:62:103"},"nodeType":"YulExpressionStatement","src":"34528:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34610:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34621:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34606:3:103"},"nodeType":"YulFunctionCall","src":"34606:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34626:5:103","type":"","value":"STS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34599:6:103"},"nodeType":"YulFunctionCall","src":"34599:33:103"},"nodeType":"YulExpressionStatement","src":"34599:33:103"},{"nodeType":"YulAssignment","src":"34641:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34653:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34664:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34649:3:103"},"nodeType":"YulFunctionCall","src":"34649:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34641:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d99e4ac56574361524102dce714b9a80317be2e650f34ab1f2fc06080904a047__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34426:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34440:4:103","type":""}],"src":"34275:399:103"},{"body":{"nodeType":"YulBlock","src":"34853:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34870:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34881:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34863:6:103"},"nodeType":"YulFunctionCall","src":"34863:21:103"},"nodeType":"YulExpressionStatement","src":"34863:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34904:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34915:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34900:3:103"},"nodeType":"YulFunctionCall","src":"34900:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"34920:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34893:6:103"},"nodeType":"YulFunctionCall","src":"34893:30:103"},"nodeType":"YulExpressionStatement","src":"34893:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34943:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34954:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34939:3:103"},"nodeType":"YulFunctionCall","src":"34939:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34959:34:103","type":"","value":"ERROR:CRC-003:NOT_PRODUCT_SERVIC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34932:6:103"},"nodeType":"YulFunctionCall","src":"34932:62:103"},"nodeType":"YulExpressionStatement","src":"34932:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35014:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35025:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35010:3:103"},"nodeType":"YulFunctionCall","src":"35010:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"35030:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35003:6:103"},"nodeType":"YulFunctionCall","src":"35003:31:103"},"nodeType":"YulExpressionStatement","src":"35003:31:103"},{"nodeType":"YulAssignment","src":"35043:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35066:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35051:3:103"},"nodeType":"YulFunctionCall","src":"35051:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35043:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34830:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34844:4:103","type":""}],"src":"34679:397:103"},{"body":{"nodeType":"YulBlock","src":"35255:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35272:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35283:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35265:6:103"},"nodeType":"YulFunctionCall","src":"35265:21:103"},"nodeType":"YulExpressionStatement","src":"35265:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35306:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35317:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35302:3:103"},"nodeType":"YulFunctionCall","src":"35302:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"35322:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35295:6:103"},"nodeType":"YulFunctionCall","src":"35295:30:103"},"nodeType":"YulExpressionStatement","src":"35295:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35345:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35356:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35341:3:103"},"nodeType":"YulFunctionCall","src":"35341:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"35361:34:103","type":"","value":"ERROR:POC-018:APPLICATION_STATE_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35334:6:103"},"nodeType":"YulFunctionCall","src":"35334:62:103"},"nodeType":"YulExpressionStatement","src":"35334:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35427:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35412:3:103"},"nodeType":"YulFunctionCall","src":"35412:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"35432:9:103","type":"","value":"INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35405:6:103"},"nodeType":"YulFunctionCall","src":"35405:37:103"},"nodeType":"YulExpressionStatement","src":"35405:37:103"},{"nodeType":"YulAssignment","src":"35451:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35474:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35459:3:103"},"nodeType":"YulFunctionCall","src":"35459:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35451:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dc44a0f37543fb9791a7c26480d070adcda3855758541b01e4ac627d1640aa56__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35232:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35246:4:103","type":""}],"src":"35081:403:103"},{"body":{"nodeType":"YulBlock","src":"35663:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35691:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35673:6:103"},"nodeType":"YulFunctionCall","src":"35673:21:103"},"nodeType":"YulExpressionStatement","src":"35673:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35714:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35725:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35710:3:103"},"nodeType":"YulFunctionCall","src":"35710:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"35730:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35703:6:103"},"nodeType":"YulFunctionCall","src":"35703:30:103"},"nodeType":"YulExpressionStatement","src":"35703:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35764:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35749:3:103"},"nodeType":"YulFunctionCall","src":"35749:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"35769:34:103","type":"","value":"ERROR:POC-032:POLICY_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35742:6:103"},"nodeType":"YulFunctionCall","src":"35742:62:103"},"nodeType":"YulExpressionStatement","src":"35742:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35824:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35835:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35820:3:103"},"nodeType":"YulFunctionCall","src":"35820:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"35840:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35813:6:103"},"nodeType":"YulFunctionCall","src":"35813:32:103"},"nodeType":"YulExpressionStatement","src":"35813:32:103"},{"nodeType":"YulAssignment","src":"35854:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35866:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35877:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35862:3:103"},"nodeType":"YulFunctionCall","src":"35862:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35854:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e68601d261f3b44a01e4c4b719124fdfa4604ec137e1a47c16da8de53440a7a7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35640:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35654:4:103","type":""}],"src":"35489:398:103"},{"body":{"nodeType":"YulBlock","src":"36066:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36083:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36094:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36076:6:103"},"nodeType":"YulFunctionCall","src":"36076:21:103"},"nodeType":"YulExpressionStatement","src":"36076:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36117:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36128:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36113:3:103"},"nodeType":"YulFunctionCall","src":"36113:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"36133:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36106:6:103"},"nodeType":"YulFunctionCall","src":"36106:30:103"},"nodeType":"YulExpressionStatement","src":"36106:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36156:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36167:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36152:3:103"},"nodeType":"YulFunctionCall","src":"36152:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"36172:34:103","type":"","value":"ERROR:POC-027:POLICY_ACCESS_INVA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36145:6:103"},"nodeType":"YulFunctionCall","src":"36145:62:103"},"nodeType":"YulExpressionStatement","src":"36145:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36227:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36238:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36223:3:103"},"nodeType":"YulFunctionCall","src":"36223:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"36243:5:103","type":"","value":"LID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36216:6:103"},"nodeType":"YulFunctionCall","src":"36216:33:103"},"nodeType":"YulExpressionStatement","src":"36216:33:103"},{"nodeType":"YulAssignment","src":"36258:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36270:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36281:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36266:3:103"},"nodeType":"YulFunctionCall","src":"36266:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36258:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e6b085463e76c5d0bed11f77af4ff972e49e0aeb9e13803410e9593fb3d5272b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36043:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36057:4:103","type":""}],"src":"35892:399:103"},{"body":{"nodeType":"YulBlock","src":"36470:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36487:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36498:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36480:6:103"},"nodeType":"YulFunctionCall","src":"36480:21:103"},"nodeType":"YulExpressionStatement","src":"36480:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36521:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36532:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36517:3:103"},"nodeType":"YulFunctionCall","src":"36517:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"36537:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36510:6:103"},"nodeType":"YulFunctionCall","src":"36510:30:103"},"nodeType":"YulExpressionStatement","src":"36510:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36560:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36571:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36556:3:103"},"nodeType":"YulFunctionCall","src":"36556:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"36576:34:103","type":"","value":"ERROR:POC-022:APPLICATION_ACCESS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36549:6:103"},"nodeType":"YulFunctionCall","src":"36549:62:103"},"nodeType":"YulExpressionStatement","src":"36549:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36642:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36627:3:103"},"nodeType":"YulFunctionCall","src":"36627:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"36647:10:103","type":"","value":"_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36620:6:103"},"nodeType":"YulFunctionCall","src":"36620:38:103"},"nodeType":"YulExpressionStatement","src":"36620:38:103"},{"nodeType":"YulAssignment","src":"36667:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36679:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36690:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36675:3:103"},"nodeType":"YulFunctionCall","src":"36675:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36667:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e8784db9a0fb006cb4ae64ab1d8cc2ad3884140ec5a660b5e68045261d428b52__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36447:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36461:4:103","type":""}],"src":"36296:404:103"},{"body":{"nodeType":"YulBlock","src":"36879:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36896:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36907:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36889:6:103"},"nodeType":"YulFunctionCall","src":"36889:21:103"},"nodeType":"YulExpressionStatement","src":"36889:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36930:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36941:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36926:3:103"},"nodeType":"YulFunctionCall","src":"36926:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"36946:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36919:6:103"},"nodeType":"YulFunctionCall","src":"36919:30:103"},"nodeType":"YulExpressionStatement","src":"36919:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36980:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36965:3:103"},"nodeType":"YulFunctionCall","src":"36965:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"36985:34:103","type":"","value":"ERROR:POC-020:APPLICATION_DOES_N"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36958:6:103"},"nodeType":"YulFunctionCall","src":"36958:62:103"},"nodeType":"YulExpressionStatement","src":"36958:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37040:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37051:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37036:3:103"},"nodeType":"YulFunctionCall","src":"37036:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"37056:10:103","type":"","value":"OT_EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37029:6:103"},"nodeType":"YulFunctionCall","src":"37029:38:103"},"nodeType":"YulExpressionStatement","src":"37029:38:103"},{"nodeType":"YulAssignment","src":"37076:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37099:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37084:3:103"},"nodeType":"YulFunctionCall","src":"37084:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"37076:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_eb328158e0ed34e58154822f43e033245d25dd37ef2fd43004b775c706f4fcad__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36856:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36870:4:103","type":""}],"src":"36705:404:103"},{"body":{"nodeType":"YulBlock","src":"37288:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37316:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37298:6:103"},"nodeType":"YulFunctionCall","src":"37298:21:103"},"nodeType":"YulExpressionStatement","src":"37298:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37339:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37350:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37335:3:103"},"nodeType":"YulFunctionCall","src":"37335:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"37355:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37328:6:103"},"nodeType":"YulFunctionCall","src":"37328:30:103"},"nodeType":"YulExpressionStatement","src":"37328:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37378:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37389:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37374:3:103"},"nodeType":"YulFunctionCall","src":"37374:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"37394:33:103","type":"","value":"ERROR:POC-041:POLICY_NOT_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37367:6:103"},"nodeType":"YulFunctionCall","src":"37367:61:103"},"nodeType":"YulExpressionStatement","src":"37367:61:103"},{"nodeType":"YulAssignment","src":"37437:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37449:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37460:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37445:3:103"},"nodeType":"YulFunctionCall","src":"37445:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"37437:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fd5ce4739c74f225637bb83c85f080775b013e16f83c8f86ac7d7272df93a150__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"37265:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"37279:4:103","type":""}],"src":"37114:355:103"},{"body":{"nodeType":"YulBlock","src":"37633:590:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37650:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37661:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37643:6:103"},"nodeType":"YulFunctionCall","src":"37643:21:103"},"nodeType":"YulExpressionStatement","src":"37643:21:103"},{"nodeType":"YulVariableDeclaration","src":"37673:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"37689:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37683:5:103"},"nodeType":"YulFunctionCall","src":"37683:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"37677:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"37744:2:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"37705:38:103"},"nodeType":"YulFunctionCall","src":"37705:42:103"},"nodeType":"YulExpressionStatement","src":"37705:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37778:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37763:3:103"},"nodeType":"YulFunctionCall","src":"37763:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"37783:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37756:6:103"},"nodeType":"YulFunctionCall","src":"37756:30:103"},"nodeType":"YulExpressionStatement","src":"37756:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37806:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37817:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37802:3:103"},"nodeType":"YulFunctionCall","src":"37802:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"37832:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"37840:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37828:3:103"},"nodeType":"YulFunctionCall","src":"37828:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37822:5:103"},"nodeType":"YulFunctionCall","src":"37822:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37795:6:103"},"nodeType":"YulFunctionCall","src":"37795:50:103"},"nodeType":"YulExpressionStatement","src":"37795:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37876:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37861:3:103"},"nodeType":"YulFunctionCall","src":"37861:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"37891:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"37899:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37887:3:103"},"nodeType":"YulFunctionCall","src":"37887:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37881:5:103"},"nodeType":"YulFunctionCall","src":"37881:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37854:6:103"},"nodeType":"YulFunctionCall","src":"37854:50:103"},"nodeType":"YulExpressionStatement","src":"37854:50:103"},{"nodeType":"YulVariableDeclaration","src":"37913:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"37943:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"37951:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37939:3:103"},"nodeType":"YulFunctionCall","src":"37939:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37933:5:103"},"nodeType":"YulFunctionCall","src":"37933:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"37917:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37986:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37971:3:103"},"nodeType":"YulFunctionCall","src":"37971:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"37992:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37964:6:103"},"nodeType":"YulFunctionCall","src":"37964:33:103"},"nodeType":"YulExpressionStatement","src":"37964:33:103"},{"nodeType":"YulVariableDeclaration","src":"38006:65:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"38037:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38066:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38051:3:103"},"nodeType":"YulFunctionCall","src":"38051:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"38020:16:103"},"nodeType":"YulFunctionCall","src":"38020:51:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"38010:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38091:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38102:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38087:3:103"},"nodeType":"YulFunctionCall","src":"38087:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38118:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38126:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38114:3:103"},"nodeType":"YulFunctionCall","src":"38114:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38108:5:103"},"nodeType":"YulFunctionCall","src":"38108:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38080:6:103"},"nodeType":"YulFunctionCall","src":"38080:52:103"},"nodeType":"YulExpressionStatement","src":"38080:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38152:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38163:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38148:3:103"},"nodeType":"YulFunctionCall","src":"38148:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38180:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38188:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38176:3:103"},"nodeType":"YulFunctionCall","src":"38176:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38170:5:103"},"nodeType":"YulFunctionCall","src":"38170:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38141:6:103"},"nodeType":"YulFunctionCall","src":"38141:53:103"},"nodeType":"YulExpressionStatement","src":"38141:53:103"},{"nodeType":"YulAssignment","src":"38203:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"38211:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"38203:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Application_$5262_memory_ptr__to_t_struct$_Application_$5262_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"37602:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"37613:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"37624:4:103","type":""}],"src":"37474:749:103"},{"body":{"nodeType":"YulBlock","src":"38375:590:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38392:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38403:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38385:6:103"},"nodeType":"YulFunctionCall","src":"38385:21:103"},"nodeType":"YulExpressionStatement","src":"38385:21:103"},{"nodeType":"YulVariableDeclaration","src":"38415:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38431:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38425:5:103"},"nodeType":"YulFunctionCall","src":"38425:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"38419:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"38486:2:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"38447:38:103"},"nodeType":"YulFunctionCall","src":"38447:42:103"},"nodeType":"YulExpressionStatement","src":"38447:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38520:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38505:3:103"},"nodeType":"YulFunctionCall","src":"38505:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"38525:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38498:6:103"},"nodeType":"YulFunctionCall","src":"38498:30:103"},"nodeType":"YulExpressionStatement","src":"38498:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38548:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38559:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38544:3:103"},"nodeType":"YulFunctionCall","src":"38544:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38574:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38582:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38570:3:103"},"nodeType":"YulFunctionCall","src":"38570:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38564:5:103"},"nodeType":"YulFunctionCall","src":"38564:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38537:6:103"},"nodeType":"YulFunctionCall","src":"38537:50:103"},"nodeType":"YulExpressionStatement","src":"38537:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38607:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38618:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38603:3:103"},"nodeType":"YulFunctionCall","src":"38603:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38633:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38641:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38629:3:103"},"nodeType":"YulFunctionCall","src":"38629:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38623:5:103"},"nodeType":"YulFunctionCall","src":"38623:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38596:6:103"},"nodeType":"YulFunctionCall","src":"38596:50:103"},"nodeType":"YulExpressionStatement","src":"38596:50:103"},{"nodeType":"YulVariableDeclaration","src":"38655:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38685:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38693:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38681:3:103"},"nodeType":"YulFunctionCall","src":"38681:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38675:5:103"},"nodeType":"YulFunctionCall","src":"38675:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"38659:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38717:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38728:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38713:3:103"},"nodeType":"YulFunctionCall","src":"38713:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"38734:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38706:6:103"},"nodeType":"YulFunctionCall","src":"38706:33:103"},"nodeType":"YulExpressionStatement","src":"38706:33:103"},{"nodeType":"YulVariableDeclaration","src":"38748:65:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"38779:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38797:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38808:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38793:3:103"},"nodeType":"YulFunctionCall","src":"38793:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"38762:16:103"},"nodeType":"YulFunctionCall","src":"38762:51:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"38752:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38844:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38829:3:103"},"nodeType":"YulFunctionCall","src":"38829:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38860:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38868:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38856:3:103"},"nodeType":"YulFunctionCall","src":"38856:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38850:5:103"},"nodeType":"YulFunctionCall","src":"38850:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38822:6:103"},"nodeType":"YulFunctionCall","src":"38822:52:103"},"nodeType":"YulExpressionStatement","src":"38822:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38894:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38905:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38890:3:103"},"nodeType":"YulFunctionCall","src":"38890:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38922:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38930:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38918:3:103"},"nodeType":"YulFunctionCall","src":"38918:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38912:5:103"},"nodeType":"YulFunctionCall","src":"38912:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38883:6:103"},"nodeType":"YulFunctionCall","src":"38883:53:103"},"nodeType":"YulExpressionStatement","src":"38883:53:103"},{"nodeType":"YulAssignment","src":"38945:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"38953:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"38945:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Claim_$5296_memory_ptr__to_t_struct$_Claim_$5296_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"38344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"38355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"38366:4:103","type":""}],"src":"38228:737:103"},{"body":{"nodeType":"YulBlock","src":"39123:649:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39140:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39151:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39133:6:103"},"nodeType":"YulFunctionCall","src":"39133:21:103"},"nodeType":"YulExpressionStatement","src":"39133:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39185:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39170:3:103"},"nodeType":"YulFunctionCall","src":"39170:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39200:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39194:5:103"},"nodeType":"YulFunctionCall","src":"39194:13:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39217:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"39222:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"39213:3:103"},"nodeType":"YulFunctionCall","src":"39213:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"39226:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"39209:3:103"},"nodeType":"YulFunctionCall","src":"39209:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"39190:3:103"},"nodeType":"YulFunctionCall","src":"39190:39:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39163:6:103"},"nodeType":"YulFunctionCall","src":"39163:67:103"},"nodeType":"YulExpressionStatement","src":"39163:67:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39261:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39246:3:103"},"nodeType":"YulFunctionCall","src":"39246:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39276:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"39284:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39272:3:103"},"nodeType":"YulFunctionCall","src":"39272:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39266:5:103"},"nodeType":"YulFunctionCall","src":"39266:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39239:6:103"},"nodeType":"YulFunctionCall","src":"39239:50:103"},"nodeType":"YulExpressionStatement","src":"39239:50:103"},{"nodeType":"YulVariableDeclaration","src":"39298:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39328:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"39336:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39324:3:103"},"nodeType":"YulFunctionCall","src":"39324:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39318:5:103"},"nodeType":"YulFunctionCall","src":"39318:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"39302:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"39387:12:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"39349:37:103"},"nodeType":"YulFunctionCall","src":"39349:51:103"},"nodeType":"YulExpressionStatement","src":"39349:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39431:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39416:3:103"},"nodeType":"YulFunctionCall","src":"39416:18:103"},{"name":"memberValue0","nodeType":"YulIdentifier","src":"39436:12:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39409:6:103"},"nodeType":"YulFunctionCall","src":"39409:40:103"},"nodeType":"YulExpressionStatement","src":"39409:40:103"},{"nodeType":"YulVariableDeclaration","src":"39458:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39490:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"39498:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39486:3:103"},"nodeType":"YulFunctionCall","src":"39486:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39480:5:103"},"nodeType":"YulFunctionCall","src":"39480:22:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"39462:14:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39522:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39533:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39518:3:103"},"nodeType":"YulFunctionCall","src":"39518:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"39539:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39511:6:103"},"nodeType":"YulFunctionCall","src":"39511:33:103"},"nodeType":"YulExpressionStatement","src":"39511:33:103"},{"nodeType":"YulVariableDeclaration","src":"39553:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"39584:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39615:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39600:3:103"},"nodeType":"YulFunctionCall","src":"39600:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"39567:16:103"},"nodeType":"YulFunctionCall","src":"39567:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"39557:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39640:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39651:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39636:3:103"},"nodeType":"YulFunctionCall","src":"39636:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39667:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"39675:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39663:3:103"},"nodeType":"YulFunctionCall","src":"39663:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39657:5:103"},"nodeType":"YulFunctionCall","src":"39657:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39629:6:103"},"nodeType":"YulFunctionCall","src":"39629:52:103"},"nodeType":"YulExpressionStatement","src":"39629:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39701:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39712:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39697:3:103"},"nodeType":"YulFunctionCall","src":"39697:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39729:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"39737:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39725:3:103"},"nodeType":"YulFunctionCall","src":"39725:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39719:5:103"},"nodeType":"YulFunctionCall","src":"39719:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39690:6:103"},"nodeType":"YulFunctionCall","src":"39690:53:103"},"nodeType":"YulExpressionStatement","src":"39690:53:103"},{"nodeType":"YulAssignment","src":"39752:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"39760:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"39752:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Metadata_$5248_memory_ptr__to_t_struct$_Metadata_$5248_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"39092:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"39103:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"39114:4:103","type":""}],"src":"38970:802:103"},{"body":{"nodeType":"YulBlock","src":"39926:584:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39943:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39954:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39936:6:103"},"nodeType":"YulFunctionCall","src":"39936:21:103"},"nodeType":"YulExpressionStatement","src":"39936:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39977:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39988:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39973:3:103"},"nodeType":"YulFunctionCall","src":"39973:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39999:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39993:5:103"},"nodeType":"YulFunctionCall","src":"39993:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39966:6:103"},"nodeType":"YulFunctionCall","src":"39966:41:103"},"nodeType":"YulExpressionStatement","src":"39966:41:103"},{"nodeType":"YulVariableDeclaration","src":"40016:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40046:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40054:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40042:3:103"},"nodeType":"YulFunctionCall","src":"40042:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40036:5:103"},"nodeType":"YulFunctionCall","src":"40036:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"40020:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"40095:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40113:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40124:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40109:3:103"},"nodeType":"YulFunctionCall","src":"40109:18:103"}],"functionName":{"name":"abi_encode_enum_PayoutState","nodeType":"YulIdentifier","src":"40067:27:103"},"nodeType":"YulFunctionCall","src":"40067:61:103"},"nodeType":"YulExpressionStatement","src":"40067:61:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40148:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40159:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40144:3:103"},"nodeType":"YulFunctionCall","src":"40144:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40174:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40182:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40170:3:103"},"nodeType":"YulFunctionCall","src":"40170:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40164:5:103"},"nodeType":"YulFunctionCall","src":"40164:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40137:6:103"},"nodeType":"YulFunctionCall","src":"40137:50:103"},"nodeType":"YulExpressionStatement","src":"40137:50:103"},{"nodeType":"YulVariableDeclaration","src":"40196:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40228:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40236:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40224:3:103"},"nodeType":"YulFunctionCall","src":"40224:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40218:5:103"},"nodeType":"YulFunctionCall","src":"40218:22:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"40200:14:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40260:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40271:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40256:3:103"},"nodeType":"YulFunctionCall","src":"40256:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"40277:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40249:6:103"},"nodeType":"YulFunctionCall","src":"40249:33:103"},"nodeType":"YulExpressionStatement","src":"40249:33:103"},{"nodeType":"YulVariableDeclaration","src":"40291:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"40322:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40353:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40338:3:103"},"nodeType":"YulFunctionCall","src":"40338:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"40305:16:103"},"nodeType":"YulFunctionCall","src":"40305:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"40295:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40378:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40389:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40374:3:103"},"nodeType":"YulFunctionCall","src":"40374:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40405:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40413:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40401:3:103"},"nodeType":"YulFunctionCall","src":"40401:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40395:5:103"},"nodeType":"YulFunctionCall","src":"40395:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40367:6:103"},"nodeType":"YulFunctionCall","src":"40367:52:103"},"nodeType":"YulExpressionStatement","src":"40367:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40439:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40450:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40435:3:103"},"nodeType":"YulFunctionCall","src":"40435:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40467:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40475:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40463:3:103"},"nodeType":"YulFunctionCall","src":"40463:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40457:5:103"},"nodeType":"YulFunctionCall","src":"40457:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40428:6:103"},"nodeType":"YulFunctionCall","src":"40428:53:103"},"nodeType":"YulExpressionStatement","src":"40428:53:103"},{"nodeType":"YulAssignment","src":"40490:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"40498:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"40490:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Payout_$5310_memory_ptr__to_t_struct$_Payout_$5310_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"39895:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"39906:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"39917:4:103","type":""}],"src":"39777:733:103"},{"body":{"nodeType":"YulBlock","src":"40664:680:103","statements":[{"nodeType":"YulAssignment","src":"40674:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40686:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40697:3:103","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40682:3:103"},"nodeType":"YulFunctionCall","src":"40682:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"40674:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"40710:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40726:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40720:5:103"},"nodeType":"YulFunctionCall","src":"40720:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"40714:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"40780:2:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"40742:37:103"},"nodeType":"YulFunctionCall","src":"40742:41:103"},"nodeType":"YulExpressionStatement","src":"40742:41:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40799:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"40810:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40792:6:103"},"nodeType":"YulFunctionCall","src":"40792:21:103"},"nodeType":"YulExpressionStatement","src":"40792:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40844:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40829:3:103"},"nodeType":"YulFunctionCall","src":"40829:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40861:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40869:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40857:3:103"},"nodeType":"YulFunctionCall","src":"40857:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40851:5:103"},"nodeType":"YulFunctionCall","src":"40851:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40822:6:103"},"nodeType":"YulFunctionCall","src":"40822:54:103"},"nodeType":"YulExpressionStatement","src":"40822:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40896:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40907:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40892:3:103"},"nodeType":"YulFunctionCall","src":"40892:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40924:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40932:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40920:3:103"},"nodeType":"YulFunctionCall","src":"40920:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40914:5:103"},"nodeType":"YulFunctionCall","src":"40914:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40885:6:103"},"nodeType":"YulFunctionCall","src":"40885:54:103"},"nodeType":"YulExpressionStatement","src":"40885:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40959:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40970:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40955:3:103"},"nodeType":"YulFunctionCall","src":"40955:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40987:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40995:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40983:3:103"},"nodeType":"YulFunctionCall","src":"40983:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40977:5:103"},"nodeType":"YulFunctionCall","src":"40977:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40948:6:103"},"nodeType":"YulFunctionCall","src":"40948:54:103"},"nodeType":"YulExpressionStatement","src":"40948:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41022:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41033:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41018:3:103"},"nodeType":"YulFunctionCall","src":"41018:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41050:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"41058:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41046:3:103"},"nodeType":"YulFunctionCall","src":"41046:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41040:5:103"},"nodeType":"YulFunctionCall","src":"41040:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41011:6:103"},"nodeType":"YulFunctionCall","src":"41011:54:103"},"nodeType":"YulExpressionStatement","src":"41011:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41085:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41096:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41081:3:103"},"nodeType":"YulFunctionCall","src":"41081:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41113:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"41121:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41109:3:103"},"nodeType":"YulFunctionCall","src":"41109:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41103:5:103"},"nodeType":"YulFunctionCall","src":"41103:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41074:6:103"},"nodeType":"YulFunctionCall","src":"41074:54:103"},"nodeType":"YulExpressionStatement","src":"41074:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41148:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41159:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41144:3:103"},"nodeType":"YulFunctionCall","src":"41144:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41176:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"41184:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41172:3:103"},"nodeType":"YulFunctionCall","src":"41172:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41166:5:103"},"nodeType":"YulFunctionCall","src":"41166:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41137:6:103"},"nodeType":"YulFunctionCall","src":"41137:54:103"},"nodeType":"YulExpressionStatement","src":"41137:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41211:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41222:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41207:3:103"},"nodeType":"YulFunctionCall","src":"41207:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41239:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"41247:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41235:3:103"},"nodeType":"YulFunctionCall","src":"41235:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41229:5:103"},"nodeType":"YulFunctionCall","src":"41229:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41200:6:103"},"nodeType":"YulFunctionCall","src":"41200:54:103"},"nodeType":"YulExpressionStatement","src":"41200:54:103"},{"nodeType":"YulVariableDeclaration","src":"41263:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"41273:6:103","type":"","value":"0x0100"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"41267:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41299:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"41310:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41295:3:103"},"nodeType":"YulFunctionCall","src":"41295:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41325:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"41333:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41321:3:103"},"nodeType":"YulFunctionCall","src":"41321:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41315:5:103"},"nodeType":"YulFunctionCall","src":"41315:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41288:6:103"},"nodeType":"YulFunctionCall","src":"41288:50:103"},"nodeType":"YulExpressionStatement","src":"41288:50:103"}]},"name":"abi_encode_tuple_t_struct$_Policy_$5282_memory_ptr__to_t_struct$_Policy_$5282_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"40633:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"40644:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"40655:4:103","type":""}],"src":"40515:829:103"},{"body":{"nodeType":"YulBlock","src":"41450:76:103","statements":[{"nodeType":"YulAssignment","src":"41460:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41472:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41483:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41468:3:103"},"nodeType":"YulFunctionCall","src":"41468:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"41460:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41502:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"41513:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41495:6:103"},"nodeType":"YulFunctionCall","src":"41495:25:103"},"nodeType":"YulExpressionStatement","src":"41495:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"41419:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"41430:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"41441:4:103","type":""}],"src":"41349:177:103"},{"body":{"nodeType":"YulBlock","src":"41804:338:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41821:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"41832:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41814:6:103"},"nodeType":"YulFunctionCall","src":"41814:25:103"},"nodeType":"YulExpressionStatement","src":"41814:25:103"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"41876:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41888:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41899:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41884:3:103"},"nodeType":"YulFunctionCall","src":"41884:18:103"}],"functionName":{"name":"abi_encode_enum_PayoutState","nodeType":"YulIdentifier","src":"41848:27:103"},"nodeType":"YulFunctionCall","src":"41848:55:103"},"nodeType":"YulExpressionStatement","src":"41848:55:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41923:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41934:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41919:3:103"},"nodeType":"YulFunctionCall","src":"41919:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"41939:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41912:6:103"},"nodeType":"YulFunctionCall","src":"41912:34:103"},"nodeType":"YulExpressionStatement","src":"41912:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41977:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41962:3:103"},"nodeType":"YulFunctionCall","src":"41962:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"41982:3:103","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41955:6:103"},"nodeType":"YulFunctionCall","src":"41955:31:103"},"nodeType":"YulExpressionStatement","src":"41955:31:103"},{"nodeType":"YulAssignment","src":"41995:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"42020:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"42043:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42028:3:103"},"nodeType":"YulFunctionCall","src":"42028:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"42003:16:103"},"nodeType":"YulFunctionCall","src":"42003:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"41995:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42068:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"42079:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42064:3:103"},"nodeType":"YulFunctionCall","src":"42064:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"42085:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42057:6:103"},"nodeType":"YulFunctionCall","src":"42057:35:103"},"nodeType":"YulExpressionStatement","src":"42057:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"42123:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42108:3:103"},"nodeType":"YulFunctionCall","src":"42108:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"42129:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42101:6:103"},"nodeType":"YulFunctionCall","src":"42101:35:103"},"nodeType":"YulExpressionStatement","src":"42101:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_enum$_PayoutState_$5234_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint256_t_uint8_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"41733:9:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"41744:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"41752:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"41760:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"41768:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"41776:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"41784:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"41795:4:103","type":""}],"src":"41531:611:103"},{"body":{"nodeType":"YulBlock","src":"42195:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"42222:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"42224:16:103"},"nodeType":"YulFunctionCall","src":"42224:18:103"},"nodeType":"YulExpressionStatement","src":"42224:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"42211:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"42218:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"42214:3:103"},"nodeType":"YulFunctionCall","src":"42214:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"42208:2:103"},"nodeType":"YulFunctionCall","src":"42208:13:103"},"nodeType":"YulIf","src":"42205:2:103"},{"nodeType":"YulAssignment","src":"42253:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"42264:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"42267:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42260:3:103"},"nodeType":"YulFunctionCall","src":"42260:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"42253:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"42178:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"42181:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"42187:3:103","type":""}],"src":"42147:128:103"},{"body":{"nodeType":"YulBlock","src":"42329:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"42351:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"42353:16:103"},"nodeType":"YulFunctionCall","src":"42353:18:103"},"nodeType":"YulExpressionStatement","src":"42353:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"42345:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"42348:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"42342:2:103"},"nodeType":"YulFunctionCall","src":"42342:8:103"},"nodeType":"YulIf","src":"42339:2:103"},{"nodeType":"YulAssignment","src":"42382:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"42394:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"42397:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"42390:3:103"},"nodeType":"YulFunctionCall","src":"42390:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"42382:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"42311:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"42314:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"42320:4:103","type":""}],"src":"42280:125:103"},{"body":{"nodeType":"YulBlock","src":"42457:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"42484:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"42486:16:103"},"nodeType":"YulFunctionCall","src":"42486:18:103"},"nodeType":"YulExpressionStatement","src":"42486:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"42477:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"42470:6:103"},"nodeType":"YulFunctionCall","src":"42470:13:103"},"nodeType":"YulIf","src":"42467:2:103"},{"nodeType":"YulAssignment","src":"42515:25:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"42526:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42537:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"42533:3:103"},"nodeType":"YulFunctionCall","src":"42533:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42522:3:103"},"nodeType":"YulFunctionCall","src":"42522:18:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"42515:3:103"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"42439:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"42449:3:103","type":""}],"src":"42410:136:103"},{"body":{"nodeType":"YulBlock","src":"42606:325:103","statements":[{"nodeType":"YulAssignment","src":"42616:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"42630:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"42636:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"42626:3:103"},"nodeType":"YulFunctionCall","src":"42626:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"42616:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"42647:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"42677:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"42683:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"42673:3:103"},"nodeType":"YulFunctionCall","src":"42673:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"42651:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"42724:31:103","statements":[{"nodeType":"YulAssignment","src":"42726:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"42740:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"42748:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"42736:3:103"},"nodeType":"YulFunctionCall","src":"42736:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"42726:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"42704:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"42697:6:103"},"nodeType":"YulFunctionCall","src":"42697:26:103"},"nodeType":"YulIf","src":"42694:2:103"},{"body":{"nodeType":"YulBlock","src":"42814:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42835:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42842:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"42847:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"42838:3:103"},"nodeType":"YulFunctionCall","src":"42838:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42828:6:103"},"nodeType":"YulFunctionCall","src":"42828:31:103"},"nodeType":"YulExpressionStatement","src":"42828:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42879:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"42882:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42872:6:103"},"nodeType":"YulFunctionCall","src":"42872:15:103"},"nodeType":"YulExpressionStatement","src":"42872:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42907:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"42910:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"42900:6:103"},"nodeType":"YulFunctionCall","src":"42900:15:103"},"nodeType":"YulExpressionStatement","src":"42900:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"42770:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"42793:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"42801:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"42790:2:103"},"nodeType":"YulFunctionCall","src":"42790:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"42767:2:103"},"nodeType":"YulFunctionCall","src":"42767:38:103"},"nodeType":"YulIf","src":"42764:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"42586:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"42595:6:103","type":""}],"src":"42551:380:103"},{"body":{"nodeType":"YulBlock","src":"42983:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"43014:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"43016:16:103"},"nodeType":"YulFunctionCall","src":"43016:18:103"},"nodeType":"YulExpressionStatement","src":"43016:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"42999:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43010:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"43006:3:103"},"nodeType":"YulFunctionCall","src":"43006:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"42996:2:103"},"nodeType":"YulFunctionCall","src":"42996:17:103"},"nodeType":"YulIf","src":"42993:2:103"},{"nodeType":"YulAssignment","src":"43045:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43056:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"43063:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43052:3:103"},"nodeType":"YulFunctionCall","src":"43052:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"43045:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"42965:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"42975:3:103","type":""}],"src":"42936:135:103"},{"body":{"nodeType":"YulBlock","src":"43108:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43125:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43132:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"43137:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"43128:3:103"},"nodeType":"YulFunctionCall","src":"43128:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43118:6:103"},"nodeType":"YulFunctionCall","src":"43118:31:103"},"nodeType":"YulExpressionStatement","src":"43118:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43165:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"43168:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43158:6:103"},"nodeType":"YulFunctionCall","src":"43158:15:103"},"nodeType":"YulExpressionStatement","src":"43158:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43189:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"43192:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"43182:6:103"},"nodeType":"YulFunctionCall","src":"43182:15:103"},"nodeType":"YulExpressionStatement","src":"43182:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"43076:127:103"},{"body":{"nodeType":"YulBlock","src":"43240:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43257:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43264:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"43269:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"43260:3:103"},"nodeType":"YulFunctionCall","src":"43260:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43250:6:103"},"nodeType":"YulFunctionCall","src":"43250:31:103"},"nodeType":"YulExpressionStatement","src":"43250:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43297:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"43300:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43290:6:103"},"nodeType":"YulFunctionCall","src":"43290:15:103"},"nodeType":"YulExpressionStatement","src":"43290:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43321:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"43324:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"43314:6:103"},"nodeType":"YulFunctionCall","src":"43314:15:103"},"nodeType":"YulExpressionStatement","src":"43314:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"43208:127:103"},{"body":{"nodeType":"YulBlock","src":"43399:62:103","statements":[{"body":{"nodeType":"YulBlock","src":"43433:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"43435:16:103"},"nodeType":"YulFunctionCall","src":"43435:18:103"},"nodeType":"YulExpressionStatement","src":"43435:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43422:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"43429:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"43419:2:103"},"nodeType":"YulFunctionCall","src":"43419:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"43412:6:103"},"nodeType":"YulFunctionCall","src":"43412:20:103"},"nodeType":"YulIf","src":"43409:2:103"}]},"name":"validator_assert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"43388:5:103","type":""}],"src":"43340:121:103"},{"body":{"nodeType":"YulBlock","src":"43524:62:103","statements":[{"body":{"nodeType":"YulBlock","src":"43558:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"43560:16:103"},"nodeType":"YulFunctionCall","src":"43560:18:103"},"nodeType":"YulExpressionStatement","src":"43560:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43547:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"43554:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"43544:2:103"},"nodeType":"YulFunctionCall","src":"43544:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"43537:6:103"},"nodeType":"YulFunctionCall","src":"43537:20:103"},"nodeType":"YulIf","src":"43534:2:103"}]},"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"43513:5:103","type":""}],"src":"43466:120:103"},{"body":{"nodeType":"YulBlock","src":"43636:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"43700:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43709:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"43712:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"43702:6:103"},"nodeType":"YulFunctionCall","src":"43702:12:103"},"nodeType":"YulExpressionStatement","src":"43702:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43659:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43670:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43685:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"43690:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"43681:3:103"},"nodeType":"YulFunctionCall","src":"43681:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"43694:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"43677:3:103"},"nodeType":"YulFunctionCall","src":"43677:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"43666:3:103"},"nodeType":"YulFunctionCall","src":"43666:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"43656:2:103"},"nodeType":"YulFunctionCall","src":"43656:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"43649:6:103"},"nodeType":"YulFunctionCall","src":"43649:50:103"},"nodeType":"YulIf","src":"43646:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"43625:5:103","type":""}],"src":"43591:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := end\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(pos, length), 0x20), end)\n }\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_PayoutState(value, pos)\n {\n if iszero(lt(value, 2)) { panic_error_0x21() }\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_uint256_t_address_t_uint256__to_t_uint256_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 52), value2)\n end := add(pos, 84)\n }\n function abi_encode_tuple_t_address_t_bytes32_t_uint256_t_enum$_PolicyFlowState_$5217__to_t_address_t_bytes32_t_uint256_t_uint8__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n validator_assert_enum_PolicyFlowState(value3)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_address_t_uint256_t_enum$_PolicyFlowState_$5217_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_address_t_uint256_t_uint8_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n validator_assert_enum_PolicyFlowState(value2)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 192)\n tail := abi_encode_bytes(value3, add(headStart, 192))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_PolicyFlowState_$5217__to_t_bytes32_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n validator_assert_enum_PolicyFlowState(value1)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_enum$_ApplicationState_$5222_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n validator_assert_enum_ApplicationState(value0)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 192)\n tail := abi_encode_bytes(value3, add(headStart, 192))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_t_enum$_ClaimState_$5231_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n validator_assert_enum_ApplicationState(value0)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 192)\n tail := abi_encode_bytes(value3, add(headStart, 192))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_t_enum$_PolicyState_$5226_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 288)\n validator_assert_enum_PolicyFlowState(value0)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), value7)\n mstore(add(headStart, 256), value8)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_01bd7262c070b3850d799edbf9ebd39157a9b16f9c9855ee1ca0ecc7e289d2d2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:POC-093:PAYOUT_ALREADY_PAI\")\n mstore(add(headStart, 96), \"DOUT\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0905fdf985363891ad748beb4d4a032395a3ba007421a6945b74e963f9f015fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POC-073:CLAIM_STATE_INVALI\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0accb0c8465e13760989bc709fa6ab7cf10b68fe03957bd6fe9eb47233a41aba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:POC-025:APPLICATION_PREMIU\")\n mstore(add(headStart, 96), \"M_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_12a836dd02d461888166ce18ce5bc78481bf477d1f9ebbf4ce8444ca0e7f0dc1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-083:PAYOUT_AMOUNT_ZERO\")\n mstore(add(headStart, 96), \"_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1ac03beb57c99a65c7942aa68c11e6b91d3cade8654ba7436c76c86f22bcf529__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-102:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1ac75784ff08502543cdff54428e36c01ae4d8ea69e36a455017dee99fa29dc8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-023:POLICY_ALREADY_EXI\")\n mstore(add(headStart, 96), \"STS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1c588baea0842d5c025c2163acf2806d62a81ff4e95e6f6cd3cf1ce8023895b8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-090:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1db96ed0ae0923362061f94230382ef4f079d53202d86c4160c88d024476fc3b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-011:APPLICATION_ALREAD\")\n mstore(add(headStart, 96), \"Y_EXISTS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1f9b1806d4697b0956752b1032b95647f09da6dcb802b7b2ad16478e69e208e5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POC-021:APPLICATION_STATE_\")\n mstore(add(headStart, 96), \"INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_292e8e8b2f73338c9d7e6ea8fa7931b8d5344a982f7803b5e8efb3cc6e51eca2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-040:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2a0446370afa916c99bdf68c1cd2d63970e57fe3533a05a487ffe2d3441b7439__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-024:APPLICATION_ACCESS\")\n mstore(add(headStart, 96), \"_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2c741f933dcdc4a0cc8ca27d6761d563fde507b39184c4ba433c9546d61881f7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-050:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3053d4e6cfaf833f897a113c773083b437a8e9c0edb9dab9a33e145eda637486__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-061:POLICY_WITHOUT_OPE\")\n mstore(add(headStart, 96), \"N_CLAIMS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3704f3da0c4404bcf7333b4ad925aa1079f426470842ae45a22540b0335abfe9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-019:METADATA_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_398a0b35799106343616f5ee2dafb07b4f8a17d7f3221c043c8d1b874d608409__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POC-063:CLAIM_STATE_INVALI\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b4bf107bd938845d3000d9894f4f7c3f232df3de3b36946e82f23aad29c8984__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POC-054:CLAIM_STATE_INVALI\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3da05b0c6fea2f8ac4206180524be50a65b9f5363895b5e6c8aa31db28fb502a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-101:APPLICATION_DOES_N\")\n mstore(add(headStart, 96), \"OT_EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3fcafde1bf77d4ec8dcb626e9696c36e8e5c1a0660b1230d420f1e68bf4ba036__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-071:POLICY_WITHOUT_OPE\")\n mstore(add(headStart, 96), \"N_CLAIMS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3fe79e67d34a91a0798917f8e39194a7499cac6ed14bea4875fa47d7458df812__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-104:PAYOUT_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4478b2e77c23e8ea61028b27bf7e3d9b60113df479aab9238db0e9c1abb71c24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-031:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5153c23cb9f198d7c66f5cc94bb88552d8f24d48aafcfe0e6f3776d7f1f59836__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-103:CLAIM_DOES_NOT_EXI\")\n mstore(add(headStart, 96), \"ST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_53d931fec3ed7a0ddc013521fad1f76a8f8e8de81d5c8c7f76a59d6fa698eba1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-028:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_56e2f09f25415e91cf31d4547c2e56eb6e29b71cb0dd85b313fae192ba276a63__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-091:POLICY_WITHOUT_OPE\")\n mstore(add(headStart, 96), \"N_CLAIMS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5a5a889abcf6c19c8dc84442c08bf7a95a45a161f8d31bee9415eee17c6af67a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-080:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5c526d7df7c2530ac59be5bb2670f7e7233e5bcb0ebd99bccf1d2574f9088ff9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-052:PAYOUT_MAX_AMOUNT_\")\n mstore(add(headStart, 96), \"EXCEEDED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5e811d9572370e9a750a1f2b7c3f07287bed0a618295148d5ac82c856a0f8383__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-053:CLAIM_DOES_NOT_EXI\")\n mstore(add(headStart, 96), \"ST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5fee7969b096be44aa0b06a7d6dca973bac0addbe10f33bf7ae1c3268e370252__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 45)\n mstore(add(headStart, 64), \"ERROR:POC-042:CLAIM_AMOUNT_EXCEE\")\n mstore(add(headStart, 96), \"DS_MAX_PAYOUT\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_66228a7360d9b0fffc4485892145b1c3b51e61093cd4b29b7cfcba5c26002332__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-072:CLAIM_DOES_NOT_EXI\")\n mstore(add(headStart, 96), \"ST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_690f72e367997aa82f823a8f8aab3f2b4ad3e7d36411ad6e690ba049cd7f8970__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-100:METADATA_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6b49b43b480ffcd2d682b90a53947b738e166fa0f45183e37b9a15878efb6017__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-030:METADATA_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6dd52a7803fdc21b6951089460e3af3aafa2d9d5b5456b70275b97403a595056__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-010:METADATA_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_72d2655fbab03b37603c9b8823922a50adfc2cb818fbcde0bff3db8e97120ce2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-004:METADATA_ALREADY_E\")\n mstore(add(headStart, 96), \"XISTS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_755bab7e4197528963528c11bb57a6268486e588c4c58aa1fdc3941f0ca82461__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-051:POLICY_WITHOUT_OPE\")\n mstore(add(headStart, 96), \"N_CLAIMS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_78097f0a73eb9c8a0cc0df22ac96ffe69f6d4347e55bf144298e75d504f52626__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POC-012:PREMIUM_AMOUNT_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7ba313180bbdd84742438fe48f9070ad471c0e8441fc547ddd9d43836c05647d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-070:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_812d7a3c3591ae4c026af18cdf37eaa885599baf13a298242cc5ed294cb86aa7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POC-029:APPLICATION_STATE_\")\n mstore(add(headStart, 96), \"INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_84d582f54bcbf9ecef49660743d83c5d351adfda381e7de998dfd7253752ca0d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-015:APPLICATION_DOES_N\")\n mstore(add(headStart, 96), \"OT_EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_91872c40feaf252e2b1bb5310507c26c5310a79208576166f8430e887a141a99__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-043:CLAIM_ALREADY_EXIS\")\n mstore(add(headStart, 96), \"TS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_93b837b53622deccc674a4295ad216375b944d6d9e4fcced40e36e2aab9aae9d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-092:PAYOUT_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9608b61059ad8bfc78f4d88fdfb884791e53ff59328c8a500c5f1565bd0419e3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 54)\n mstore(add(headStart, 64), \"ERROR:POC-026:APPLICATION_SUM_IN\")\n mstore(add(headStart, 96), \"SURED_INCREASE_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_994fcfb46b233054b612c28f28fd225d060ea12c5701f5c87abfbfceffddc86b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POC-074:CLAIM_WITH_UNPAID_\")\n mstore(add(headStart, 96), \"PAYOUTS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a28f16b2c92dc01202801f97442d7b5b72a32eaf29ba8288670aca403d1d91c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POC-016:APPLICATION_STATE_\")\n mstore(add(headStart, 96), \"INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a96e2ba49a294fb57653f2edea6788990e95e8ccf3f4008e1f67857f31ab7af5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"ERROR:POC-013:SUM_INSURED_AMOUNT\")\n mstore(add(headStart, 96), \"_TOO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_abcae8090ad71bdef33e1fc1dca9cb7acc84966fbfb6b6101f386f861bfed9d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:POC-033:POLICY_HAS_OPEN_CL\")\n mstore(add(headStart, 96), \"AIMS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:CRC-002:NOT_ON_STORAGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b41ecb3c73d1bd22f6c59fa2a27979a7be92c595245d732c42c675aea1a608cc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-060:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b56e7a919624c31e06a250efb3d4a1c8dc2262f50cf44fe416ac86523a45cda1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:POL-001:INVALID_OWNER\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bad351fc3f92fb02e37fe12e8bfff9d2e9a73dc2520d63761873fd147db6724b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-081:CLAIM_DOES_NOT_EXI\")\n mstore(add(headStart, 96), \"ST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_be65d387a5e288bbda6f7f29353c4a4177557e85600e7b58dfff26aa731432f1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:POL-002:INVALID_PRODUCT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bf94c9406086159fab987519e07ae464f5659ba577264ceb8dcfb2519b4068e5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:POL-003:PRODUCT_NOT_ACTIVE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bfc0ba001c33e3f6ca8d92ccec220dc5c2f1e52ae20defc45ca76c02259da5c3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POC-082:CLAIM_NOT_CONFIRME\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c7b69042e7f6515d560658ee6d1de6d418e69114e700e0b6a50b7b0e552dda1c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-014:METADATA_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c8b70c4aba1c2cd717e92fc9379cd96b59815516b78271810475c67b9507a6b5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-110:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ca128060720b4fcc87482c839fb4ff931d94c5e1cf662666b918d32e6fcfb90c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:POC-111:AMOUNT_TOO_BIG\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cc0c0ad5317a8bd39d7f7249cfb02b10c5d042b35addbb0f642b415e4905d7e9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-062:CLAIM_DOES_NOT_EXI\")\n mstore(add(headStart, 96), \"ST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_cdac7f3ad598042a4a49afc2907268af0bd86276c34f48886ad7a8f93edf5782__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-084:PAYOUT_AMOUNT_TOO_\")\n mstore(add(headStart, 96), \"BIG\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d48c4714dc35abe5eee68196d3e0333f2895edd4c645d06d442d03e129bca5e5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-017:APPLICATION_DOES_N\")\n mstore(add(headStart, 96), \"OT_EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d99e4ac56574361524102dce714b9a80317be2e650f34ab1f2fc06080904a047__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-085:PAYOUT_ALREADY_EXI\")\n mstore(add(headStart, 96), \"STS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:CRC-003:NOT_PRODUCT_SERVIC\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_dc44a0f37543fb9791a7c26480d070adcda3855758541b01e4ac627d1640aa56__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POC-018:APPLICATION_STATE_\")\n mstore(add(headStart, 96), \"INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e68601d261f3b44a01e4c4b719124fdfa4604ec137e1a47c16da8de53440a7a7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-032:POLICY_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e6b085463e76c5d0bed11f77af4ff972e49e0aeb9e13803410e9593fb3d5272b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-027:POLICY_ACCESS_INVA\")\n mstore(add(headStart, 96), \"LID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e8784db9a0fb006cb4ae64ab1d8cc2ad3884140ec5a660b5e68045261d428b52__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-022:APPLICATION_ACCESS\")\n mstore(add(headStart, 96), \"_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_eb328158e0ed34e58154822f43e033245d25dd37ef2fd43004b775c706f4fcad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-020:APPLICATION_DOES_N\")\n mstore(add(headStart, 96), \"OT_EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fd5ce4739c74f225637bb83c85f080775b013e16f83c8f86ac7d7272df93a150__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:POC-041:POLICY_NOT_ACTIVE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_struct$_Application_$5262_memory_ptr__to_t_struct$_Application_$5262_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let _1 := mload(value0)\n validator_assert_enum_ApplicationState(_1)\n mstore(add(headStart, 32), _1)\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Claim_$5296_memory_ptr__to_t_struct$_Claim_$5296_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let _1 := mload(value0)\n validator_assert_enum_ApplicationState(_1)\n mstore(add(headStart, 32), _1)\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Metadata_$5248_memory_ptr__to_t_struct$_Metadata_$5248_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), and(mload(value0), sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n let memberValue0 := mload(add(value0, 64))\n validator_assert_enum_PolicyFlowState(memberValue0)\n mstore(add(headStart, 96), memberValue0)\n let memberValue0_1 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Payout_$5310_memory_ptr__to_t_struct$_Payout_$5310_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n let memberValue0 := mload(add(value0, 32))\n abi_encode_enum_PayoutState(memberValue0, add(headStart, 64))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0_1 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Policy_$5282_memory_ptr__to_t_struct$_Policy_$5282_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 288)\n let _1 := mload(value0)\n validator_assert_enum_PolicyFlowState(_1)\n mstore(headStart, _1)\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n let _2 := 0x0100\n mstore(add(headStart, _2), mload(add(value0, _2)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_enum$_PayoutState_$5234_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint256_t_uint8_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n abi_encode_enum_PayoutState(value1, add(headStart, 32))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 192)\n tail := abi_encode_bytes(value3, add(headStart, 192))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function decrement_t_uint256(value) -> ret\n {\n if iszero(value) { panic_error_0x11() }\n ret := add(value, not(0))\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function validator_assert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { panic_error_0x21() }\n }\n function validator_assert_enum_PolicyFlowState(value)\n {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101e55760003560e01c8063a1814a1a1161010f578063c4d66de8116100a2578063e3ebdea511610071578063e3ebdea5146104d8578063eb96cbed146104eb578063ec935668146104fe578063fe64372b14610511576101e5565b8063c4d66de814610420578063cef58f1314610433578063db42b77b14610453578063ddbfd8ef14610466576101e5565b8063adcadb28116100de578063adcadb28146103c7578063b1e25988146103da578063bc506f64146103ed578063be183b1114610400576101e5565b8063a1814a1a1461036c578063a3f685f91461037f578063a427056e1461039f578063a5961b4c146103a7576101e5565b80634e02c63f116101875780637f22c2d9116101565780637f22c2d9146103015780637f29dba21461032157806380f2122c146103345780639e81f96a14610359576101e5565b80634e02c63f146102a35780635c955288146102b65780636780336e146102c95780637122ba06146102dc576101e5565b806347e3b138116101c357806347e3b138146102455780634c14ccc2146102585780634cafa1211461026b5780634cda0de914610290576101e5565b8063296d6c7d146101ea57806330a73da5146101ff578063357f030a14610212575b600080fd5b6101fd6101f83660046141f4565b610524565b005b6101fd61020d366004614266565b6107a6565b6102326102203660046141f4565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b6101fd6102533660046141f4565b610b85565b6101fd6102663660046141f4565b610d4a565b61027e6102793660046141f4565b61104f565b60405161023c9695949392919061440e565b6101fd61029e36600461420c565b611113565b6101fd6102b1366004614266565b6113bb565b6101fd6102c43660046141f4565b611702565b6101fd6102d7366004614291565b6118c3565b6102ef6102ea3660046141f4565b611bac565b60405161023c969594939291906143a4565b61031461030f36600461420c565b611bea565b60405161023c91906144fe565b6101fd61032f36600461420c565b611db2565b61034761034236600461420c565b612157565b60405161023c96959493929190614660565b61027e61036736600461420c565b612196565b61023261037a36600461417a565b6121d5565b61039261038d3660046141f4565b612576565b60405161023c91906145f3565b600854610232565b6103ba6103b53660046141f4565b6126e0565b60405161023c9190614563565b6101fd6103d53660046141f4565b6128a6565b6102326103e83660046141f4565b612b6b565b6103146103fb3660046141f4565b612b80565b61023261040e3660046141f4565b60009081526007602052604090205490565b6101fd61042e36600461413b565b612d40565b61044661044136600461420c565b612ebe565b60405161023c91906145b0565b610232610461366004614291565b613080565b6104c36104743660046141f4565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460089097015460ff90961697949693959293919290919089565b60405161023c9998979695949392919061443c565b6101fd6104e636600461420c565b61346c565b6101fd6104f93660046141f4565b61358f565b61023261050c36600461422d565b6137fe565b6101fd61051f36600461420c565b613b0e565b65506f6c69637960d01b61053781613e6b565b6001600160a01b0316306001600160a01b0316146105705760405162461bcd60e51b815260040161056790614486565b60405180910390fd5b61058a6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146105ba5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546106275760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031393a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546106975760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032303a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff1660038111156106bd57634e487b7160e01b600052602160045260246000fd5b1461071a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032313a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff1990811660031782554260058084018290556002858101805490941617928390558401556040516000805160206147738339815191529161076491879160ff16906143f1565b60405180910390a16040518481527fd38021ec2bcd4d63a80341a60be320a74cd71c01b04a4f7aac74ef6593d8e5e3906020015b60405180910390a150505050565b65506f6c69637960d01b6107b981613e6b565b6001600160a01b0316306001600160a01b0316146107e95760405162461bcd60e51b815260040161056790614486565b6108036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146108335760405162461bcd60e51b8152600401610567906144bd565b600084815260036020526040902060048101541580159061087757506002815460ff16600381111561087557634e487b7160e01b600052602160045260246000fd5b145b6108d45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032343a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b80600201548311156109475760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f432d3032363a4150504c49434154494f4e5f53554d5f494e60448201527514d554915117d25390d4915054d157d253959053125160521b6064820152608401610567565b600085815260046020526040902060078101541580159061098b57506000815460ff16600281111561098957634e487b7160e01b600052602160045260246000fd5b145b6109e35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032373a504f4c4943595f4143434553535f494e564160448201526213125160ea1b6064820152608401610567565b6000851180156109f7575080600201548510155b8015610a0257508385105b610a605760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f432d3032353a4150504c49434154494f4e5f5052454d49556044820152681357d253959053125160ba1b6064820152608401610567565b81600201548414610acc57600282015460408051888152602081019290925281018590527fa749e55ffd0f07193966d7c449d6238c6514c6b3eb5e8ab21b3ea9d94a5c21789060600160405180910390a160028201849055426005808401829055820185905560088201555b81600101548514610b7d57600182015460408051888152602081019290925281018690527f23e948a9dc44669750ea8ea8b7ca46c359534bd0f04e9260408a7e9bf8c7a5569060600160405180910390a1600182810186905542600584015581015460408051888152602081019290925281018690527ff392e5df923d5d0b6d6c6301c53c86e1c75f58c1c637200c3193dd589e5c8a019060600160405180910390a1600181018590554260088201555b505050505050565b65506f6c69637960d01b610b9881613e6b565b6001600160a01b0316306001600160a01b031614610bc85760405162461bcd60e51b815260040161056790614486565b610be26d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610c125760405162461bcd60e51b8152600401610567906144bd565b60008281526004602052604090206007810154610c7d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032383a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff166002811115610ca357634e487b7160e01b600052602160045260246000fd5b14610d005760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032393a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660011781554260088201556040518381527ff1950800da95964fdd42242722ccdfe6d9dc13d5d4dc7eafefeab77373e3c9ec906020015b60405180910390a1505050565b65506f6c69637960d01b610d5d81613e6b565b6001600160a01b0316306001600160a01b031614610d8d5760405162461bcd60e51b815260040161056790614486565b610da76d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610dd75760405162461bcd60e51b8152600401610567906144bd565b6000828152600360208190526040808320815160c08101909252805491929091839160ff90911690811115610e1c57634e487b7160e01b600052602160045260246000fd5b6003811115610e3b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054610e63906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8f906146b8565b8015610edc5780601f10610eb157610100808354040283529160200191610edc565b820191906000526020600020905b815481529060010190602001808311610ebf57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151118015610f2f5750600281516003811115610f2d57634e487b7160e01b600052602160045260246000fd5b145b610f8c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032323a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b6000838152600460205260409020600781015415610ff85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032333a504f4c4943595f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b805460ff191681556020828101516001830155604080840151600584015542600784018190556008840155518581527f0b979eae60510a4a065f45ddd8a0c9af7ba4d241e253b17bdee3043c2fb992e99101610798565b6003602081905260009182526040909120805460018201546002830154938301805460ff9093169491939192611084906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546110b0906146b8565b80156110fd5780601f106110d2576101008083540402835291602001916110fd565b820191906000526020600020905b8154815290600101906020018083116110e057829003601f168201915b5050505050908060040154908060050154905086565b65506f6c69637960d01b61112681613e6b565b6001600160a01b0316306001600160a01b0316146111565760405162461bcd60e51b815260040161056790614486565b6111706d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146111a05760405162461bcd60e51b8152600401610567906144bd565b6000838152600460205260409020600781015461120b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3036303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116112705760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3036313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b6000848152600560209081526040808320868452909152902060048101546112e55760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3036323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561130b57634e487b7160e01b600052602160045260246000fd5b146113625760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3036333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff191660021781554260058201819055600883015560408051868152602081018690527f5ea526dbb5ca484c7716dcc966fdfc289530cc595ebc9ec7bfda25d010d1a2fc91015b60405180910390a15050505050565b65506f6c69637960d01b6113ce81613e6b565b6001600160a01b0316306001600160a01b0316146113fe5760405162461bcd60e51b815260040161056790614486565b6114186d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146114485760405162461bcd60e51b8152600401610567906144bd565b600084815260046020526040902060078101546114b35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3035303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116115185760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b806005015483826006015461152d9190614672565b111561158c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035323a5041594f55545f4d41585f414d4f554e545f604482015267115610d15151115160c21b6064820152608401610567565b6000858152600560209081526040808320878452909152902060048101546116015760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3035333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561162757634e487b7160e01b600052602160045260246000fd5b1461167e5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3035343a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff19166001908117825581018490554260058201556006820180548591906000906116ad908490614672565b909155505042600883015560408051878152602081018790529081018590527fa39b09b76ccf7db94096e2c5a058215f9b2302b85de726e37edb99efdb6fb2c6906060015b60405180910390a1505050505050565b65506f6c69637960d01b61171581613e6b565b6001600160a01b0316306001600160a01b0316146117455760405162461bcd60e51b815260040161056790614486565b61175f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461178f5760405162461bcd60e51b8152600401610567906144bd565b600082815260036020526040902060048101546117ff5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031373a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561182557634e487b7160e01b600052602160045260246000fd5b146118825760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031383a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660021781554260058201556040518381527f67f56ed3a623b73566d40f65cba052fc97ca9df8afb800a885c2a4fe0228c1f890602001610d3d565b65506f6c69637960d01b6118d681613e6b565b6001600160a01b0316306001600160a01b0316146119065760405162461bcd60e51b815260040161056790614486565b6119206d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146119505760405162461bcd60e51b8152600401610567906144bd565b600086815260026020526040902060048101546119bd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b6000878152600360205260409020600481015415611a2e5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031313a4150504c49434154494f4e5f414c52454144604482015267595f45584953545360c01b6064820152608401610567565b60008711611a885760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3031323a5052454d49554d5f414d4f554e545f5a45526044820152604f60f81b6064820152608401610567565b868611611aea5760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a504f432d3031333a53554d5f494e53555245445f414d4f554e5460448201526917d513d3d7d4d350531360b21b6064820152608401610567565b805460ff191681556001810187905560028101869055611b0e60038201868661405b565b504260048201819055600580830182905560028401805460ff1916600117908190559084019190915560405160008051602061477383398151915291611b59918b9160ff16906143f1565b60405180910390a160408051898152602081018990529081018790527f71b9122c9f32160952b44f0e76b53474f59a5cd9b98ccdfb5ff20672fcae34129060600160405180910390a15050505050505050565b600260208190526000918252604090912080546001820154928201546003830180546001600160a01b03909316949360ff90921692611084906146b8565b611c246040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600083815260056020908152604080832085845290915290819020815160c081019092528054829060ff166003811115611c6e57634e487b7160e01b600052602160045260246000fd5b6003811115611c8d57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054611cb5906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce1906146b8565b8015611d2e5780601f10611d0357610100808354040283529160200191611d2e565b820191906000526020600020905b815481529060010190602001808311611d1157829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3130333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b92915050565b65506f6c69637960d01b611dc581613e6b565b6001600160a01b0316306001600160a01b031614611df55760405162461bcd60e51b815260040161056790614486565b611e0f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614611e3f5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154611eaa5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3037303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411611f0f5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3037313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260056020908152604080832086845290915290206004810154611f845760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3037323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff166003811115611faa57634e487b7160e01b600052602160045260246000fd5b1480611fd957506002815460ff166003811115611fd757634e487b7160e01b600052602160045260246000fd5b145b61202f5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3037333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b6001815460ff16600381111561205557634e487b7160e01b600052602160045260246000fd5b148015612069575080600201548160010154145b8061209757506002815460ff16600381111561209557634e487b7160e01b600052602160045260246000fd5b145b6120f35760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3037343a434c41494d5f574954485f554e504149445f6044820152665041594f55545360c81b6064820152608401610567565b805460ff19166003178155426005820155600482018054906000612116836146a1565b909155505042600883015560408051868152602081018690527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016113ac565b60066020908152600092835260408084209091529082529020805460018201546002830154600384018054939460ff90931693919291611084906146b8565b6005602090815260009283526040808420909152908252902080546001820154600283015460038401805460ff909416949293919291611084906146b8565b600065506f6c69637960d01b6121ea81613e6b565b6001600160a01b0316306001600160a01b03161461221a5760405162461bcd60e51b815260040161056790614486565b6122346d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146122645760405162461bcd60e51b8152600401610567906144bd565b6001600160a01b0386166122ba5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a504f4c2d3030313a494e56414c49445f4f574e455200000000006044820152606401610567565b600954604051630e48080360e21b8152600481018790526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122fe57600080fd5b505afa158015612312573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233691906141d4565b6123825760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3030323a494e56414c49445f50524f445543540000006044820152606401610567565b600954604051635e966e4560e01b8152600481018790526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156123c757600080fd5b505afa1580156123db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ff91906142f0565b600681111561241e57634e487b7160e01b600052602160045260246000fd5b1461246b5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030333a50524f445543545f4e4f545f4143544956456044820152606401610567565b612473613f53565b6000818152600260205260409020600481015491935090156124e55760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3030343a4d455441444154415f414c52454144595f45604482015264584953545360d81b6064820152608401610567565b80546001600160a01b0319166001600160a01b0388161781556001810186905560028101805460ff1916905561251f60038201868661405b565b50426004820181905560058201556040517f19c55cd86637a14907bc12064e09bf8dce1ecda9e5d96cae81099f4b8ae1d3c99061256490899086908a9060009061436e565b60405180910390a15050949350505050565b6125c6604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008281526004602052604090819020815161012081019092528054829060ff16600281111561260657634e487b7160e01b600052602160045260246000fd5b600281111561262557634e487b7160e01b600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481525050905060008160e00151116126db5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130323a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b919050565b6127196040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600082815260026020818152604092839020835160c08101855281546001600160a01b0316815260018201549281019290925280830154919390929084019160ff169081111561277957634e487b7160e01b600052602160045260246000fd5b600281111561279857634e487b7160e01b600052602160045260246000fd5b81526020016003820180546127ac906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546127d8906146b8565b80156128255780601f106127fa57610100808354040283529160200191612825565b820191906000526020600020905b81548152906001019060200180831161280857829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3130303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b65506f6c69637960d01b6128b981613e6b565b6001600160a01b0316306001600160a01b0316146128e95760405162461bcd60e51b815260040161056790614486565b6129036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146129335760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546129a05760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3033303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b60008381526004602052604090206007810154612a0b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3033313a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6001815460ff166002811115612a3157634e487b7160e01b600052602160045260246000fd5b14612a895760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3033323a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610567565b600481015415612ae75760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3033333a504f4c4943595f4841535f4f50454e5f434c60448201526341494d5360e01b6064820152608401610567565b8054600260ff19918216811783554260088401819055848201805490931690911791829055600584015560405160008051602061477383398151915291612b3391879160ff16906143f1565b60405180910390a16040518481527f47682aa751cfef9683dc926c2e0547bf1f6345215278ea52b866564017ac9b9c90602001610798565b6000612b7682612576565b6060015192915050565b612bba6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600082815260036020819052604091829020825160c0810190935280549091839160ff1690811115612bfc57634e487b7160e01b600052602160045260246000fd5b6003811115612c1b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054612c43906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612c6f906146b8565b8015612cbc5780601f10612c9157610100808354040283529160200191612cbc565b820191906000526020600020905b815481529060010190602001808311612c9f57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3130313a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b600054610100900460ff1615808015612d605750600054600160ff909116105b80612d7a5750303b158015612d7a575060005460ff166001145b612ddd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610567565b6000805460ff191660011790558015612e00576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055612e2a600090565b6541636365737360d01b14612e6c57612e4b6541636365737360d01b613e6b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b612e74613fb9565b8015612eba576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b612ef86040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6000838152600660209081526040808320858452825291829020825160c0810190935280548352600180820154919284019160ff1690811115612f4b57634e487b7160e01b600052602160045260246000fd5b6001811115612f6a57634e487b7160e01b600052602160045260246000fd5b815260200160028201548152602001600382018054612f88906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612fb4906146b8565b80156130015780601f10612fd657610100808354040283529160200191613001565b820191906000526020600020905b815481529060010190602001808311612fe457829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130343a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600065506f6c69637960d01b61309581613e6b565b6001600160a01b0316306001600160a01b0316146130c55760405162461bcd60e51b815260040161056790614486565b6130df6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461310f5760405162461bcd60e51b8152600401610567906144bd565b6000878152600460205260409020600781015461317a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008881526005602090815260408083208a8452909152902060048101546131ef5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3038313a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff16600381111561321557634e487b7160e01b600052602160045260246000fd5b1461326c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3038323a434c41494d5f4e4f545f434f4e4649524d456044820152601160fa1b6064820152608401610567565b600087116132cd5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3038333a5041594f55545f414d4f554e545f5a45524f60448201526717d253959053125160c21b6064820152608401610567565b80600101548782600201546132e29190614672565b111561333c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038343a5041594f55545f414d4f554e545f544f4f5f60448201526242494760e81b6064820152608401610567565b60008981526007602090815260408083205460068352818420818552909252909120600481015491955090156133c05760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038353a5041594f55545f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b888155600281018890556133d860038201888861405b565b5060018101805460ff191690554260048201819055600582015560008a815260076020526040812080549161340c836146f3565b9091555050426008840155604080518b8152602081018b9052908101869052606081018990527f223e38f266bc310bbf02cc4e1bb6c706af5c7f9710b3edfe17a12f09e44e84a79060800160405180910390a15050505095945050505050565b600082815260046020526040902060078101546134d75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3131303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b80600101548282600201546134ec9190614672565b111561353a5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a504f432d3131313a414d4f554e545f544f4f5f424947000000006044820152606401610567565b8181600201600082825461354e9190614672565b909155505042600882015560408051848152602081018490527f9bb11018b2a92c286be2bb51bd0ed127dadef34cddc2b557270d0f81873e00569101610d3d565b65506f6c69637960d01b6135a281613e6b565b6001600160a01b0316306001600160a01b0316146135d25760405162461bcd60e51b815260040161056790614486565b6135ec6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461361c5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546136895760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031343a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546136f95760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031353a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561371f57634e487b7160e01b600052602160045260246000fd5b1461377c5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031363a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff199081166001178255426005808401829055600285810180549094161792839055840155604051600080516020614773833981519152916137c691879160ff16906143f1565b60405180910390a16040518481527fbf8b120fb15c8c02daac643f4b8d8542610c41f75bda1d3efcc3f7017c9389fc90602001610798565b600065506f6c69637960d01b61381381613e6b565b6001600160a01b0316306001600160a01b0316146138435760405162461bcd60e51b815260040161056790614486565b61385d6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461388d5760405162461bcd60e51b8152600401610567906144bd565b600086815260046020526040902060078101546138f85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3034303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff16600281111561391e57634e487b7160e01b600052602160045260246000fd5b1461396b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a504f432d3034313a504f4c4943595f4e4f545f414354495645006044820152606401610567565b80600501548682600601546139809190614672565b11156139e45760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a504f432d3034323a434c41494d5f414d4f554e545f455843454560448201526c1114d7d3505617d4105653d555609a1b6064820152608401610567565b60038101546000888152600560209081526040808320848452909152902060048101549194509015613a635760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3034333a434c41494d5f414c52454144595f45584953604482015261545360f01b6064820152608401610567565b805460ff1916815560018101879055613a8060038201878761405b565b5042600482018190556005820155600382018054906000613aa0836146f3565b9091555050600482018054906000613ab7836146f3565b909155505042600883015560408051898152602081018690529081018890527f66d0839d281a46de5ca92181ef89787fbf266333fbd1076c0728149b3a5600fa9060600160405180910390a1505050949350505050565b65506f6c69637960d01b613b2181613e6b565b6001600160a01b0316306001600160a01b031614613b515760405162461bcd60e51b815260040161056790614486565b613b6b6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614613b9b5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154613c065760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411613c6b5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3039313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260066020908152604080832086845290915290206004810154613ce15760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039323a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600060018083015460ff1690811115613d0a57634e487b7160e01b600052602160045260246000fd5b14613d635760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3039333a5041594f55545f414c52454144595f5041496044820152631113d55560e21b6064820152608401610567565b6001818101805460ff1916909117905542600582015560408051868152602081018690527f97a4f1df9bfee1535200a1be1da2c502aec16bda67fdaded9c127eaec704b71f910160405180910390a16000858152600560209081526040808320845484529091528120600280840154908201805492939192909190613de9908490614672565b9091555050426005820155600281015460018201541415610b7d57805460ff1916600317815560048301805460019190600090613e2790849061468a565b909155505042600884015581546040805188815260208101929092527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016116f2565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015613eb557600080fd5b505afa158015613ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eed919061415e565b90506001600160a01b0381166126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610567565b6008805460009182613f64836146f3565b9091555050600054600854604080514660208201526201000090930460601b6bffffffffffffffffffffffff191690830152605482015260740160405160208183030381529060405280519060200120905090565b600054610100900460ff166140245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610567565b6140396810dbdb5c1bdb995b9d60ba1b613e6b565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b828054614067906146b8565b90600052602060002090601f01602090048101928261408957600085556140cf565b82601f106140a25782800160ff198235161785556140cf565b828001600101855582156140cf579182015b828111156140cf5782358255916020019190600101906140b4565b506140db9291506140df565b5090565b5b808211156140db57600081556001016140e0565b60008083601f840112614105578182fd5b50813567ffffffffffffffff81111561411c578182fd5b60208301915083602082850101111561413457600080fd5b9250929050565b60006020828403121561414c578081fd5b81356141578161475d565b9392505050565b60006020828403121561416f578081fd5b81516141578161475d565b6000806000806060858703121561418f578283fd5b843561419a8161475d565b935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b6141c8878288016140f4565b95989497509550505050565b6000602082840312156141e5578081fd5b81518015158114614157578182fd5b600060208284031215614205578081fd5b5035919050565b6000806040838503121561421e578182fd5b50508035926020909101359150565b60008060008060608587031215614242578384fd5b8435935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b60008060006060848603121561427a578283fd5b505081359360208301359350604090920135919050565b6000806000806000608086880312156142a8578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8111156142d3578182fd5b6142df888289016140f4565b969995985093965092949392505050565b600060208284031215614301578081fd5b815160078110614157578182fd5b60008151808452815b8181101561433457602081850181015186830182015201614318565b818111156143455782602083870101525b50601f01601f19169290920160200192915050565b6002811061436a5761436a614724565b9052565b6001600160a01b03851681526020810184905260408101839052608081016143958361474d565b82606083015295945050505050565b6001600160a01b03871681526020810186905260006143c28661474d565b85604083015260c060608301526143dc60c083018661430f565b60808301949094525060a00152949350505050565b828152604081016144018361474d565b8260208301529392505050565b60006144198861473a565b87825286602083015285604083015260c060608301526143dc60c083018661430f565b610120810161444a8b61474d565b998152602081019890985260408801969096526060870194909452608086019290925260a085015260c084015260e08301526101009091015290565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825161450f8161473a565b806020840152506020830151604083015260408301516060830152606083015160c0608084015261454360e084018261430f565b9050608084015160a084015260a084015160c08401528091505092915050565b60006020825260018060a01b0383511660208301526020830151604083015260408301516145908161474d565b80606084015250606083015160c0608084015261454360e084018261430f565b6000602082528251602083015260208301516145cf604084018261435a565b5060408301516060830152606083015160c0608084015261454360e084018261430f565b81516101208201906146048161474d565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b60008782526143c2602083018861435a565b600082198211156146855761468561470e565b500190565b60008282101561469c5761469c61470e565b500390565b6000816146b0576146b061470e565b506000190190565b6002810460018216806146cc57607f821691505b602082108114156146ed57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156147075761470761470e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6004811061474a5761474a614724565b50565b6003811061474a5761474a614724565b6001600160a01b038116811461474a57600080fdfe532394c6ec703c4ecf5944bc8f02b410433362f9bdc2f25cd1d7fe45e7edfc59a2646970667358221220aab73debb705ab2b89e919dd01382f96a906dc6199287419144898b6aa0d558764736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1E5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA1814A1A GT PUSH2 0x10F JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE3EBDEA5 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0xEB96CBED EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xEC935668 EQ PUSH2 0x4FE JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x511 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x420 JUMPI DUP1 PUSH4 0xCEF58F13 EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0xDB42B77B EQ PUSH2 0x453 JUMPI DUP1 PUSH4 0xDDBFD8EF EQ PUSH2 0x466 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xADCADB28 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xADCADB28 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0xB1E25988 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0xBC506F64 EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0xBE183B11 EQ PUSH2 0x400 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xA1814A1A EQ PUSH2 0x36C JUMPI DUP1 PUSH4 0xA3F685F9 EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xA427056E EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0xA5961B4C EQ PUSH2 0x3A7 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x4E02C63F GT PUSH2 0x187 JUMPI DUP1 PUSH4 0x7F22C2D9 GT PUSH2 0x156 JUMPI DUP1 PUSH4 0x7F22C2D9 EQ PUSH2 0x301 JUMPI DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x321 JUMPI DUP1 PUSH4 0x80F2122C EQ PUSH2 0x334 JUMPI DUP1 PUSH4 0x9E81F96A EQ PUSH2 0x359 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x5C955288 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x6780336E EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x7122BA06 EQ PUSH2 0x2DC JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x47E3B138 GT PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x47E3B138 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x4C14CCC2 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x4CAFA121 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x290 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x296D6C7D EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x357F030A EQ PUSH2 0x212 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FD PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x524 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1FD PUSH2 0x20D CALLDATASIZE PUSH1 0x4 PUSH2 0x4266 JUMP JUMPDEST PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x220 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH2 0x253 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x27E PUSH2 0x279 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x104F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x440E JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x29E CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1113 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4266 JUMP JUMPDEST PUSH2 0x13BB JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x1702 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4291 JUMP JUMPDEST PUSH2 0x18C3 JUMP JUMPDEST PUSH2 0x2EF PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x1BAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x43A4 JUMP JUMPDEST PUSH2 0x314 PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1BEA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x44FE JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x32F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1DB2 JUMP JUMPDEST PUSH2 0x347 PUSH2 0x342 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4660 JUMP JUMPDEST PUSH2 0x27E PUSH2 0x367 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2196 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x37A CALLDATASIZE PUSH1 0x4 PUSH2 0x417A JUMP JUMPDEST PUSH2 0x21D5 JUMP JUMPDEST PUSH2 0x392 PUSH2 0x38D CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x45F3 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x232 JUMP JUMPDEST PUSH2 0x3BA PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x26E0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x4563 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x28A6 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x3E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2B6B JUMP JUMPDEST PUSH2 0x314 PUSH2 0x3FB CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2B80 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x40E CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x42E CALLDATASIZE PUSH1 0x4 PUSH2 0x413B JUMP JUMPDEST PUSH2 0x2D40 JUMP JUMPDEST PUSH2 0x446 PUSH2 0x441 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2EBE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x45B0 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x461 CALLDATASIZE PUSH1 0x4 PUSH2 0x4291 JUMP JUMPDEST PUSH2 0x3080 JUMP JUMPDEST PUSH2 0x4C3 PUSH2 0x474 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD SWAP5 DUP5 ADD SLOAD PUSH1 0x5 DUP6 ADD SLOAD PUSH1 0x6 DUP7 ADD SLOAD PUSH1 0x7 DUP8 ADD SLOAD PUSH1 0x8 SWAP1 SWAP8 ADD SLOAD PUSH1 0xFF SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP10 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x443C JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x4E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x346C JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x4F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x358F JUMP JUMPDEST PUSH2 0x232 PUSH2 0x50C CALLDATASIZE PUSH1 0x4 PUSH2 0x422D JUMP JUMPDEST PUSH2 0x37FE JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x51F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x3B0E JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x537 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x58A PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x627 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031393A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x697 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032303A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x6BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x71A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032313A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x3 OR DUP3 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP6 DUP2 ADD DUP1 SLOAD SWAP1 SWAP5 AND OR SWAP3 DUP4 SWAP1 SSTORE DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x764 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xD38021EC2BCD4D63A80341A60BE320A74CD71C01B04A4F7AAC74EF6593D8E5E3 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x7B9 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x803 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x833 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x877 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x875 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x8D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032343A4150504C49434154494F4E5F414343455353 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x2 ADD SLOAD DUP4 GT ISZERO PUSH2 0x947 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032363A4150504C49434154494F4E5F53554D5F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x14D554915117D25390D4915054D157D2539590531251 PUSH1 0x52 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x98B JUMPI POP PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x989 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x9E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032373A504F4C4943595F4143434553535F494E5641 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x131251 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 GT DUP1 ISZERO PUSH2 0x9F7 JUMPI POP DUP1 PUSH1 0x2 ADD SLOAD DUP6 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xA02 JUMPI POP DUP4 DUP6 LT JUMPDEST PUSH2 0xA60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032353A4150504C49434154494F4E5F5052454D4955 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1357D2539590531251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP2 PUSH1 0x2 ADD SLOAD DUP5 EQ PUSH2 0xACC JUMPI PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xA749E55FFD0F07193966D7C449D6238C6514C6B3EB5E8AB21B3EA9D94A5C2178 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP3 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE DUP3 ADD DUP6 SWAP1 SSTORE PUSH1 0x8 DUP3 ADD SSTORE JUMPDEST DUP2 PUSH1 0x1 ADD SLOAD DUP6 EQ PUSH2 0xB7D JUMPI PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x23E948A9DC44669750EA8EA8B7CA46C359534BD0F04E9260408A7E9BF8C7A556 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP3 DUP2 ADD DUP7 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP5 ADD SSTORE DUP2 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0xF392E5DF923D5D0B6D6C6301C53C86E1C75F58C1C637200C3193DD589E5C8A01 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0xB98 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0xBE2 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0xC7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032383A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCA3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xD00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032393A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR DUP2 SSTORE TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0xF1950800DA95964FDD42242722CCDFE6D9DC13D5D4DC7EAFEFEAB77373E3C9EC SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0xD5D DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0xDA7 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDD7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0xE1C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0xE63 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE8F SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xEDC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEB1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xEDC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEBF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT DUP1 ISZERO PUSH2 0xF2F JUMPI POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0xF8C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032323A4150504C49434154494F4E5F414343455353 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD ISZERO PUSH2 0xFF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032333A504F4C4943595F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP4 ADD SSTORE PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x5 DUP5 ADD SSTORE TIMESTAMP PUSH1 0x7 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP5 ADD SSTORE MLOAD DUP6 DUP2 MSTORE PUSH32 0xB979EAE60510A4A065F45DDD8A0C9AF7BA4D241E253B17BDEE3043C2FB992E9 SWAP2 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD SWAP4 DUP4 ADD DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP4 AND SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x10B0 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x10FD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x10D2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x10FD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x10E0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 DUP1 PUSH1 0x5 ADD SLOAD SWAP1 POP DUP7 JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1126 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1156 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1170 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x11A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x120B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1270 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x12E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036323A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x130B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1362 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036333A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x5EA526DBB5CA484C7716DCC966FDFC289530CC595EBC9EC7BFDA25D010D1A2FC SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x13CE DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1418 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x14B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1518 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x5 ADD SLOAD DUP4 DUP3 PUSH1 0x6 ADD SLOAD PUSH2 0x152D SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x158C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035323A5041594F55545F4D41585F414D4F554E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x115610D151511151 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x1601 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035333A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1627 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x167E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035343A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR DUP3 SSTORE DUP2 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x6 DUP3 ADD DUP1 SLOAD DUP6 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x16AD SWAP1 DUP5 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xA39B09B76CCF7DB94096E2C5A058215F9B2302B85DE726E37EDB99EFDB6FB2C6 SWAP1 PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1715 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1745 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x175F PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x178F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x17FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031373A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1825 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1882 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031383A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x67F56ED3A623B73566D40F65CBA052FC97CA9DF8AFB800A885C2A4FE0228C1F8 SWAP1 PUSH1 0x20 ADD PUSH2 0xD3D JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x18D6 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1906 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1920 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1950 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x19BD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD ISZERO PUSH2 0x1A2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031313A4150504C49434154494F4E5F414C52454144 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x595F455849535453 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 GT PUSH2 0x1A88 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031323A5052454D49554D5F414D4F554E545F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP7 DUP7 GT PUSH2 0x1AEA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031333A53554D5F494E53555245445F414D4F554E54 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x17D513D3D7D4D3505313 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP8 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP7 SWAP1 SSTORE PUSH2 0x1B0E PUSH1 0x3 DUP3 ADD DUP7 DUP7 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP1 DUP4 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP5 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 DUP2 SWAP1 SSTORE SWAP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x1B59 SWAP2 DUP12 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP8 SWAP1 MSTORE PUSH32 0x71B9122C9F32160952B44F0E76B53474F59A5CD9B98CCDFB5FF20672FCAE3412 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP3 ADD SLOAD PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP5 SWAP4 PUSH1 0xFF SWAP1 SWAP3 AND SWAP3 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH2 0x1C24 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C6E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C8D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x1CB5 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1CE1 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1D2E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D03 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D2E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1D11 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1DAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130333A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1DC5 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1DF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1E0F PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x1EAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1F0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x1F84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037323A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1FAA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1FD9 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1FD7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x202F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037333A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2055 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 ISZERO PUSH2 0x2069 JUMPI POP DUP1 PUSH1 0x2 ADD SLOAD DUP2 PUSH1 0x1 ADD SLOAD EQ JUMPDEST DUP1 PUSH2 0x2097 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x20F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037343A434C41494D5F574954485F554E504149445F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x5041594F555453 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x4 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x2116 DUP4 PUSH2 0x46A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x482CA72FF614E1AAB3860B93209BFCB7382D63292E6004E15FF29639E58E19A7 SWAP2 ADD PUSH2 0x13AC JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD DUP1 SLOAD SWAP4 SWAP5 PUSH1 0xFF SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP5 AND SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x21EA DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x221A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x2234 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2264 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x22BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030313A494E56414C49445F4F574E45520000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2312 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2336 SWAP2 SWAP1 PUSH2 0x41D4 JUMP JUMPDEST PUSH2 0x2382 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030323A494E56414C49445F50524F44554354000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23DB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23FF SWAP2 SWAP1 PUSH2 0x42F0 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x241E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x246B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030333A50524F445543545F4E4F545F414354495645 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH2 0x2473 PUSH2 0x3F53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP4 POP SWAP1 ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3030343A4D455441444154415F414C52454144595F45 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5849535453 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x251F PUSH1 0x3 DUP3 ADD DUP7 DUP7 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x19C55CD86637A14907BC12064E09BF8DCE1ECDA9E5D96CAE81099F4B8AE1D3C9 SWAP1 PUSH2 0x2564 SWAP1 DUP10 SWAP1 DUP7 SWAP1 DUP11 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x436E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x25C6 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2606 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2625 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xE0 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130323A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2719 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0xC0 DUP2 ADD DUP6 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP1 DUP4 ADD SLOAD SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2779 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2798 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x27AC SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x27D8 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2825 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x27FA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2825 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2808 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x28B9 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x28E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x2903 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2933 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x29A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x2A0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033313A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2A31 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2A89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033323A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SLOAD ISZERO PUSH2 0x2AE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033333A504F4C4943595F4841535F4F50454E5F434C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41494D53 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x2 PUSH1 0xFF NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE TIMESTAMP PUSH1 0x8 DUP5 ADD DUP2 SWAP1 SSTORE DUP5 DUP3 ADD DUP1 SLOAD SWAP1 SWAP4 AND SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x5 DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x2B33 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0x47682AA751CFEF9683DC926C2E0547BF1F6345215278EA52B866564017AC9B9C SWAP1 PUSH1 0x20 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B76 DUP3 PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2BBA PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2BFC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2C1B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x2C43 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2C6F SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2CBC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2C91 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2CBC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2C9F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130313A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x2D60 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x2D7A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D7A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x2DDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x2E00 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x2E2A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x2E6C JUMPI PUSH2 0x2E4B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x2E74 PUSH2 0x3FB9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2EBA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x2EF8 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 DUP1 DUP3 ADD SLOAD SWAP2 SWAP3 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2F4B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2F6A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x2F88 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2FB4 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3001 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FD6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3001 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2FE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1DAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130343A5041594F55545F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3095 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x30C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x30DF PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x310F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x317A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP11 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x31EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038313A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3215 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x326C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038323A434C41494D5F4E4F545F434F4E4649524D45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 GT PUSH2 0x32CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038333A5041594F55545F414D4F554E545F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD DUP8 DUP3 PUSH1 0x2 ADD SLOAD PUSH2 0x32E2 SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x333C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038343A5041594F55545F414D4F554E545F544F4F5F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x424947 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP2 DUP6 MSTORE SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP6 POP SWAP1 ISZERO PUSH2 0x33C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038353A5041594F55545F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP9 DUP2 SSTORE PUSH1 0x2 DUP2 ADD DUP9 SWAP1 SSTORE PUSH2 0x33D8 PUSH1 0x3 DUP3 ADD DUP9 DUP9 PUSH2 0x405B JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x340C DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP5 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP12 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x223E38F266BC310BBF02CC4E1BB6C706AF5C7F9710B3EDFE17A12F09E44E84A7 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x34D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3131303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD DUP3 DUP3 PUSH1 0x2 ADD SLOAD PUSH2 0x34EC SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x353A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3131313A414D4F554E545F544F4F5F42494700000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x354E SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x9BB11018B2A92C286BE2BB51BD0ED127DADEF34CDDC2B557270D0F81873E0056 SWAP2 ADD PUSH2 0xD3D JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x35A2 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x35D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x35EC PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x361C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x3689 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031343A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x36F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031353A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x371F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x377C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031363A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x1 OR DUP3 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP6 DUP2 ADD DUP1 SLOAD SWAP1 SWAP5 AND OR SWAP3 DUP4 SWAP1 SSTORE DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x37C6 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xBF8B120FB15C8C02DAAC643F4B8D8542610C41F75BDA1D3EFCC3F7017C9389FC SWAP1 PUSH1 0x20 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3813 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3843 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x385D PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x388D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x38F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x391E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x396B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x5 ADD SLOAD DUP7 DUP3 PUSH1 0x6 ADD SLOAD PUSH2 0x3980 SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x39E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034323A434C41494D5F414D4F554E545F4558434545 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1114D7D3505617D4105653D555 PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP5 POP SWAP1 ISZERO PUSH2 0x3A63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034333A434C41494D5F414C52454144595F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP8 SWAP1 SSTORE PUSH2 0x3A80 PUSH1 0x3 DUP3 ADD DUP8 DUP8 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x3AA0 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x4 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x3AB7 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x66D0839D281A46DE5CA92181EF89787FBF266333FBD1076C0728149B3A5600FA SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3B21 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B51 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x3B6B PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x3C06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x3C6B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x3CE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039323A5041594F55545F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x3D0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x3D63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039333A5041594F55545F414C52454144595F504149 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1113D555 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x97A4F1DF9BFEE1535200A1BE1DA2C502AEC16BDA67FDADED9C127EAEC704B71F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SLOAD DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH1 0x2 DUP1 DUP5 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x3DE9 SWAP1 DUP5 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 DUP3 ADD SLOAD EQ ISZERO PUSH2 0xB7D JUMPI DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR DUP2 SSTORE PUSH1 0x4 DUP4 ADD DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x3E27 SWAP1 DUP5 SWAP1 PUSH2 0x468A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP5 ADD SSTORE DUP2 SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0x482CA72FF614E1AAB3860B93209BFCB7382D63292E6004E15FF29639E58E19A7 SWAP2 ADD PUSH2 0x16F2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3EB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3EC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3EED SWAP2 SWAP1 PUSH2 0x415E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 SWAP2 DUP3 PUSH2 0x3F64 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 SLOAD PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD CHAINID PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP4 DIV PUSH1 0x60 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP4 ADD MSTORE PUSH1 0x54 DUP3 ADD MSTORE PUSH1 0x74 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4024 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH2 0x4039 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x4067 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x4089 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x40CF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x40A2 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x40CF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x40CF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x40CF JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x40B4 JUMP JUMPDEST POP PUSH2 0x40DB SWAP3 SWAP2 POP PUSH2 0x40DF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x40DB JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x40E0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x4105 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x411C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x4134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x414C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4157 DUP2 PUSH2 0x475D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x416F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4157 DUP2 PUSH2 0x475D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x418F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x419A DUP2 PUSH2 0x475D JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x41BC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x41C8 DUP8 DUP3 DUP9 ADD PUSH2 0x40F4 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41E5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x4157 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4205 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x421E JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4242 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x41BC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x427A JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x42A8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x42D3 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x42DF DUP9 DUP3 DUP10 ADD PUSH2 0x40F4 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4301 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x4157 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4334 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x4318 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x4345 JUMPI DUP3 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x436A JUMPI PUSH2 0x436A PUSH2 0x4724 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x4395 DUP4 PUSH2 0x474D JUMP JUMPDEST DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 PUSH2 0x43C2 DUP7 PUSH2 0x474D JUMP JUMPDEST DUP6 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xC0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x43DC PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x430F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0xA0 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0x4401 DUP4 PUSH2 0x474D JUMP JUMPDEST DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4419 DUP9 PUSH2 0x473A JUMP JUMPDEST DUP8 DUP3 MSTORE DUP7 PUSH1 0x20 DUP4 ADD MSTORE DUP6 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xC0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x43DC PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x430F JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x444A DUP12 PUSH2 0x474D JUMP JUMPDEST SWAP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH1 0x40 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x60 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x80 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH2 0x450F DUP2 PUSH2 0x473A JUMP JUMPDEST DUP1 PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x4590 DUP2 PUSH2 0x474D JUMP JUMPDEST DUP1 PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x45CF PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x435A JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST DUP2 MLOAD PUSH2 0x120 DUP3 ADD SWAP1 PUSH2 0x4604 DUP2 PUSH2 0x474D JUMP JUMPDEST DUP1 DUP4 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP8 DUP3 MSTORE PUSH2 0x43C2 PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0x435A JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4685 JUMPI PUSH2 0x4685 PUSH2 0x470E JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x469C JUMPI PUSH2 0x469C PUSH2 0x470E JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x46B0 JUMPI PUSH2 0x46B0 PUSH2 0x470E JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x46CC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x46ED JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4707 JUMPI PUSH2 0x4707 PUSH2 0x470E JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x474A JUMPI PUSH2 0x474A PUSH2 0x4724 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x474A JUMPI PUSH2 0x474A PUSH2 0x4724 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x474A JUMPI PUSH1 0x0 DUP1 REVERT INVALID MSTORE8 0x23 SWAP5 0xC6 0xEC PUSH17 0x3C4ECF5944BC8F02B410433362F9BDC2F2 0x5C 0xD1 0xD7 INVALID GASLIMIT 0xE7 0xED 0xFC MSIZE LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA 0xB7 RETURNDATASIZE 0xEB 0xB7 SDIV 0xAB 0x2B DUP10 0xE9 NOT 0xDD ADD CODESIZE 0x2F SWAP7 0xA9 MOD 0xDC PUSH2 0x9928 PUSH21 0x19144898B6AA0D558764736F6C6343000802003300 ","sourceMap":"4404:20030:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9736:864;;;;;;:::i;:::-;;:::i;:::-;;11435:2096;;;;;;:::i;:::-;;:::i;5013:62::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6473:25:103;;;6461:2;6446:18;5013:62:77;;;;;;;;13537:494;;;;;;:::i;:::-;;:::i;10623:806::-;;;;;;:::i;:::-;;:::i;4635:67::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;17588:805::-;;;;;;:::i;:::-;;:::i;16365:1217::-;;;;;;:::i;:::-;;:::i;9162:568::-;;;;;;:::i;:::-;;:::i;6484:1280::-;;;;;;:::i;:::-;;:::i;4548:60::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;23477:266::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;18399:1141::-;;;;;;:::i;:::-;;:::i;4915:92::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;4804:89::-;;;;;;:::i;:::-;;:::i;5413:1043::-;;;;;;:::i;:::-;;:::i;23223:248::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;24030:97::-;24101:19;;24030:97;;22348:256;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14037:880::-;;;;;;:::i;:::-;;:::i;22898:158::-;;;;;;:::i;:::-;;:::i;22610:282::-;;;;;;:::i;:::-;;:::i;23066:151::-;;;;;;:::i;:::-;23135:23;23188:22;;;:11;:22;;;;;;;23066:151;1143:232:88;;;;;;:::i;:::-;;:::i;23749:275:77:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;19563:1480::-;;;;;;:::i;:::-;;:::i;4725:58::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7770:515::-;;;;;;:::i;:::-;;:::i;8295:861::-;;;;;;:::i;:::-;;:::i;14939:1420::-;;;;;;:::i;:::-;;:::i;21049:1293::-;;;;;;:::i;:::-;;:::i;9736:864::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;;;;;;;;;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;9856:21:77::1;9880:19:::0;;;:8:::1;:19;::::0;;;;9917:14:::1;::::0;::::1;::::0;9909:68:::1;;;::::0;-1:-1:-1;;;9909:68:77;;16023:2:103;9909:68:77::1;::::0;::::1;16005:21:103::0;16062:2;16042:18;;;16035:30;16101:34;16081:18;;;16074:62;-1:-1:-1;;;16152:18:103;;;16145:35;16197:19;;9909:68:77::1;15995:227:103::0;9909:68:77::1;9988:31;10022:23:::0;;;:12:::1;:23;::::0;;;;10063:21:::1;::::0;::::1;::::0;10055:78:::1;;;::::0;-1:-1:-1;;;10055:78:77;;36907:2:103;10055:78:77::1;::::0;::::1;36889:21:103::0;36946:2;36926:18;;;36919:30;36985:34;36965:18;;;36958:62;-1:-1:-1;;;37036:18:103;;;37029:38;37084:19;;10055:78:77::1;36879:230:103::0;10055:78:77::1;10172:24;10151:17:::0;;::::1;;:45;::::0;::::1;;;;-1:-1:-1::0;;;10151:45:77::1;;;;;;;;;;10143:97;;;::::0;-1:-1:-1;;;10143:97:77;;13989:2:103;10143:97:77::1;::::0;::::1;13971:21:103::0;14028:2;14008:18;;;14001:30;14067:34;14047:18;;;14040:62;-1:-1:-1;;;14118:18:103;;;14111:37;14165:19;;10143:97:77::1;13961:229:103::0;10143:97:77::1;10251:45:::0;;-1:-1:-1;;10251:45:77;;::::1;10271:25;10251:45;::::0;;10330:15:::1;10306:21;::::0;;::::1;:39:::0;;;10393:24:::1;10380:10:::0;;::::1;:37:::0;;;;::::1;;::::0;;;;10427:14;::::1;:32:::0;10498:46:::1;::::0;-1:-1:-1;;;;;;;;;;;10498:46:77;::::1;::::0;10522:9;;10533:10:::1;;::::0;10498:46:::1;:::i;:::-;;;;;;;;10560:33;::::0;6473:25:103;;;10560:33:77::1;::::0;6461:2:103;6446:18;10560:33:77::1;;;;;;;;1129:1:88;;9736:864:77::0;;:::o;11435:2096::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;11648:31:77::1;11682:23:::0;;;:12:::1;:23;::::0;;;;11736:21:::1;::::0;::::1;::::0;:25;;;;:92:::1;;-1:-1:-1::0;11799:29:77::1;11778:17:::0;;::::1;;:50;::::0;::::1;;;;-1:-1:-1::0;;;11778:50:77::1;;;;;;;;;;11736:92;11715:171;;;::::0;-1:-1:-1;;;11715:171:77;;14801:2:103;11715:171:77::1;::::0;::::1;14783:21:103::0;14840:2;14820:18;;;14813:30;14879:34;14859:18;;;14852:62;-1:-1:-1;;;14930:18:103;;;14923:38;14978:19;;11715:171:77::1;14773:230:103::0;11715:171:77::1;11938:11;:28;;;11918:16;:48;;11897:141;;;::::0;-1:-1:-1;;;11897:141:77;;26986:2:103;11897:141:77::1;::::0;::::1;26968:21:103::0;27025:2;27005:18;;;26998:30;27064:34;27044:18;;;27037:62;-1:-1:-1;;;27115:18:103;;;27108:52;27177:19;;11897:141:77::1;26958:244:103::0;11897:141:77::1;12049:21;12073:19:::0;;;:8:::1;:19;::::0;;;;12123:16:::1;::::0;::::1;::::0;:20;;;;:79:::1;;-1:-1:-1::0;12176:26:77::1;12160:12:::0;;::::1;;:42;::::0;::::1;;;;-1:-1:-1::0;;;12160:42:77::1;;;;;;;;;;12123:79;12102:153;;;::::0;-1:-1:-1;;;12102:153:77;;36094:2:103;12102:153:77::1;::::0;::::1;36076:21:103::0;36133:2;36113:18;;;36106:30;36172:34;36152:18;;;36145:62;-1:-1:-1;;;36223:18:103;;;36216:33;36266:19;;12102:153:77::1;36066:225:103::0;12102:153:77::1;12319:1;12295:21;:25;:91;;;;;12362:6;:24;;;12337:21;:49;;12295:91;:147;;;;;12426:16;12402:21;:40;12295:147;12274:227;;;::::0;-1:-1:-1;;;12274:227:77;;11143:2:103;12274:227:77::1;::::0;::::1;11125:21:103::0;11182:2;11162:18;;;11155:30;11221:34;11201:18;;;11194:62;-1:-1:-1;;;11272:18:103;;;11265:39;11321:19;;12274:227:77::1;11115:231:103::0;12274:227:77::1;12536:11;:28;;;12516:16;:48;12512:441;;12629:28;::::0;::::1;::::0;12585:91:::1;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;;7373:18;;7366:34;;;12585:91:77::1;::::0;7277:2:103;7262:18;12585:91:77::1;;;;;;;12690:28;::::0;::::1;:47:::0;;;12775:15:::1;12751:21;::::0;;::::1;:39:::0;;;12829:22;::::1;:41:::0;;;12884:16:::1;::::0;::::1;:34:::0;12512:441:::1;12992:11;:25;;;12967:21;:50;12963:562;;13079:25;::::0;::::1;::::0;13038:90:::1;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;;7373:18;;7366:34;;;13038:90:77::1;::::0;7277:2:103;7262:18;13038:90:77::1;;;;;;;13142:25;::::0;;::::1;:49:::0;;;13229:15:::1;13205:21;::::0;::::1;:39:::0;13324:28;::::1;::::0;13288:88:::1;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;;7373:18;;7366:34;;;13288:88:77::1;::::0;7277:2:103;7262:18;13288:88:77::1;;;;;;;13390:28;::::0;::::1;:52:::0;;;13475:15:::1;13456:16;::::0;::::1;:34:::0;12963:562:::1;1129:1:88;;11435:2096:77::0;;;;:::o;13537:494::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;13651:21:77::1;13675:19:::0;;;:8:::1;:19;::::0;;;;13712:16:::1;::::0;::::1;::::0;13704:68:::1;;;::::0;-1:-1:-1;;;13704:68:77;;19262:2:103;13704:68:77::1;::::0;::::1;19244:21:103::0;19301:2;19281:18;;;19274:30;19340:34;19320:18;;;19313:62;-1:-1:-1;;;19391:18:103;;;19384:33;19434:19;;13704:68:77::1;19234:225:103::0;13704:68:77::1;13806:18;13790:12:::0;;::::1;;:34;::::0;::::1;;;;-1:-1:-1::0;;;13790:34:77::1;;;;;;;;;;13782:86;;;::::0;-1:-1:-1;;;13782:86:77;;25362:2:103;13782:86:77::1;::::0;::::1;25344:21:103::0;25401:2;25381:18;;;25374:30;25440:34;25420:18;;;25413:62;-1:-1:-1;;;25491:18:103;;;25484:37;25538:19;;13782:86:77::1;25334:229:103::0;13782:86:77::1;13879:34:::0;;-1:-1:-1;;13879:34:77::1;13894:19;13879:34;::::0;;13942:15:::1;13923:16;::::0;::::1;:34:::0;13997:27:::1;::::0;6473:25:103;;;13997:27:77::1;::::0;6461:2:103;6446:18;13997:27:77::1;;;;;;;;1129:1:88;13537:494:77::0;;:::o;10623:806::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;10739:30:77::1;10772:23:::0;;;:12:::1;:23;::::0;;;;;;;10739:56;;::::1;::::0;::::1;::::0;;;;;;;10772:23;;10739:56;;::::1;::::0;;::::1;::::0;;::::1;;;;-1:-1:-1::0;;;10739:56:77::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;10739:56:77::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;10837:1;10813:11;:21;;;:25;:79;;;;-1:-1:-1::0;10863:29:77::1;10842:17:::0;;:50:::1;::::0;::::1;;;;-1:-1:-1::0;;;10842:50:77::1;;;;;;;;;;10813:79;10805:132;;;::::0;-1:-1:-1;;;10805:132:77;;36498:2:103;10805:132:77::1;::::0;::::1;36480:21:103::0;36537:2;36517:18;;;36510:30;36576:34;36556:18;;;36549:62;-1:-1:-1;;;36627:18:103;;;36620:38;36675:19;;10805:132:77::1;36470:230:103::0;10805:132:77::1;10948:21;10972:19:::0;;;:8:::1;:19;::::0;;;;11009:16:::1;::::0;::::1;::::0;:21;11001:69:::1;;;::::0;-1:-1:-1;;;11001:69:77;;12772:2:103;11001:69:77::1;::::0;::::1;12754:21:103::0;12811:2;12791:18;;;12784:30;12850:34;12830:18;;;12823:62;-1:-1:-1;;;12901:18:103;;;12894:33;12944:19;;11001:69:77::1;12744:225:103::0;11001:69:77::1;11081:33:::0;;-1:-1:-1;;11081:33:77::1;::::0;;11155:25:::1;::::0;;::::1;::::0;11081:33;11124:28;::::1;:56:::0;11215:28:::1;::::0;;::::1;::::0;11190:22:::1;::::0;::::1;:53:::0;11272:15:::1;11253:16;::::0;::::1;:34:::0;;;11321:16:::1;::::0;::::1;:34:::0;11395:27;6473:25:103;;;11395:27:77::1;::::0;6446:18:103;11395:27:77::1;6428:76:103::0;4635:67:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17588:805::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;17720:21:77::1;17744:19:::0;;;:8:::1;:19;::::0;;;;17781:16:::1;::::0;::::1;::::0;17773:68:::1;;;::::0;-1:-1:-1;;;17773:68:77;;29398:2:103;17773:68:77::1;::::0;::::1;29380:21:103::0;29437:2;29417:18;;;29410:30;29476:34;29456:18;;;29449:62;-1:-1:-1;;;29527:18:103;;;29520:33;29570:19;;17773:68:77::1;29370:225:103::0;17773:68:77::1;17884:1;17859:6;:22;;;:26;17851:79;;;::::0;-1:-1:-1;;;17851:79:77;;15614:2:103;17851:79:77::1;::::0;::::1;15596:21:103::0;15653:2;15633:18;;;15626:30;15692:34;15672:18;;;15665:62;-1:-1:-1;;;15743:18:103;;;15736:38;15791:19;;17851:79:77::1;15586:230:103::0;17851:79:77::1;17941:19;17963:17:::0;;;:6:::1;:17;::::0;;;;;;;:26;;;;;;;;18007:15:::1;::::0;::::1;::::0;17999:66:::1;;;::::0;-1:-1:-1;;;17999:66:77;;32849:2:103;17999:66:77::1;::::0;::::1;32831:21:103::0;32888:2;32868:18;;;32861:30;32927:34;32907:18;;;32900:62;-1:-1:-1;;;32978:18:103;;;32971:32;33020:19;;17999:66:77::1;32821:224:103::0;17999:66:77::1;18098:18;18083:11:::0;;::::1;;:33;::::0;::::1;;;;-1:-1:-1::0;;;18083:33:77::1;;;;;;;;;;18075:79;;;::::0;-1:-1:-1;;;18075:79:77;;16429:2:103;18075:79:77::1;::::0;::::1;16411:21:103::0;16468:2;16448:18;;;16441:30;16507:34;16487:18;;;16480:62;-1:-1:-1;;;16558:18:103;;;16551:31;16599:19;;18075:79:77::1;16401:223:103::0;18075:79:77::1;18165:33:::0;;-1:-1:-1;;18165:33:77::1;18179:19;18165:33;::::0;;18226:15:::1;18208;::::0;::::1;:33:::0;;;18276:16:::1;::::0;::::1;:34:::0;18350:36:::1;::::0;;7008:25:103;;;7064:2;7049:18;;7042:34;;;18350:36:77::1;::::0;6981:18:103;18350:36:77::1;;;;;;;;1129:1:88;;17588:805:77::0;;;:::o;16365:1217::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;16553:21:77::1;16577:19:::0;;;:8:::1;:19;::::0;;;;16614:16:::1;::::0;::::1;::::0;16606:68:::1;;;::::0;-1:-1:-1;;;16606:68:77;;15210:2:103;16606:68:77::1;::::0;::::1;15192:21:103::0;15249:2;15229:18;;;15222:30;15288:34;15268:18;;;15261:62;-1:-1:-1;;;15339:18:103;;;15332:33;15382:19;;16606:68:77::1;15182:225:103::0;16606:68:77::1;16717:1;16692:6;:22;;;:26;16684:79;;;::::0;-1:-1:-1;;;16684:79:77;;23732:2:103;16684:79:77::1;::::0;::::1;23714:21:103::0;23771:2;23751:18;;;23744:30;23810:34;23790:18;;;23783:62;-1:-1:-1;;;23861:18:103;;;23854:38;23909:19;;16684:79:77::1;23704:230:103::0;16684:79:77::1;16940:6;:22;;;16921:15;16899:6;:19;;;:37;;;;:::i;:::-;:63;;16891:116;;;::::0;-1:-1:-1;;;16891:116:77;;20479:2:103;16891:116:77::1;::::0;::::1;20461:21:103::0;20518:2;20498:18;;;20491:30;20557:34;20537:18;;;20530:62;-1:-1:-1;;;20608:18:103;;;20601:38;20656:19;;16891:116:77::1;20451:230:103::0;16891:116:77::1;17018:19;17040:17:::0;;;:6:::1;:17;::::0;;;;;;;:26;;;;;;;;17084:15:::1;::::0;::::1;::::0;17076:66:::1;;;::::0;-1:-1:-1;;;17076:66:77;;20888:2:103;17076:66:77::1;::::0;::::1;20870:21:103::0;20927:2;20907:18;;;20900:30;20966:34;20946:18;;;20939:62;-1:-1:-1;;;21017:18:103;;;21010:32;21059:19;;17076:66:77::1;20860:224:103::0;17076:66:77::1;17175:18;17160:11:::0;;::::1;;:33;::::0;::::1;;;;-1:-1:-1::0;;;17160:33:77::1;;;;;;;;;;17152:79;;;::::0;-1:-1:-1;;;17152:79:77;;16831:2:103;17152:79:77::1;::::0;::::1;16813:21:103::0;16870:2;16850:18;;;16843:30;16909:34;16889:18;;;16882:62;-1:-1:-1;;;16960:18:103;;;16953:31;17001:19;;17152:79:77::1;16803:223:103::0;17152:79:77::1;17242:34:::0;;-1:-1:-1;;17242:34:77::1;17256:20;17242:34:::0;;::::1;::::0;;17286:17;::::1;:35:::0;;;17349:15:::1;17331;::::0;::::1;:33:::0;17399:19:::1;::::0;::::1;:38:::0;;17286:35;;17399:19;-1:-1:-1;;17399:38:77::1;::::0;17286:35;;17399:38:::1;:::i;:::-;::::0;;;-1:-1:-1;;17466:15:77::1;17447:16;::::0;::::1;:34:::0;17521:54:::1;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;7373:18;;;7366:34;;;17521:54:77::1;::::0;7277:2:103;7262:18;17521:54:77::1;;;;;;;;1129:1:88;;16365:1217:77::0;;;;:::o;9162:568::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;9285:31:77::1;9319:23:::0;;;:12:::1;:23;::::0;;;;9360:21:::1;::::0;::::1;::::0;9352:78:::1;;;::::0;-1:-1:-1;;;9352:78:77;;33656:2:103;9352:78:77::1;::::0;::::1;33638:21:103::0;33695:2;33675:18;;;33668:30;33734:34;33714:18;;;33707:62;-1:-1:-1;;;33785:18:103;;;33778:38;33833:19;;9352:78:77::1;33628:230:103::0;9352:78:77::1;9469:24;9448:17:::0;;::::1;;:45;::::0;::::1;;;;-1:-1:-1::0;;;9448:45:77::1;;;;;;;;;;9440:97;;;::::0;-1:-1:-1;;;9440:97:77;;35283:2:103;9440:97:77::1;::::0;::::1;35265:21:103::0;35322:2;35302:18;;;35295:30;35361:34;35341:18;;;35334:62;-1:-1:-1;;;35412:18:103;;;35405:37;35459:19;;9440:97:77::1;35255:229:103::0;9440:97:77::1;9548:49:::0;;-1:-1:-1;;9548:49:77::1;9568:29;9548:49;::::0;;9631:15:::1;9607:21;::::0;::::1;:39:::0;9686:37:::1;::::0;6473:25:103;;;9686:37:77::1;::::0;6461:2:103;6446:18;9686:37:77::1;6428:76:103::0;6484:1280:77;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;6712:21:77::1;6736:19:::0;;;:8:::1;:19;::::0;;;;6773:14:::1;::::0;::::1;::::0;6765:68:::1;;;::::0;-1:-1:-1;;;6765:68:77;;22920:2:103;6765:68:77::1;::::0;::::1;22902:21:103::0;22959:2;22939:18;;;22932:30;22998:34;22978:18;;;22971:62;-1:-1:-1;;;23049:18:103;;;23042:35;23094:19;;6765:68:77::1;22892:227:103::0;6765:68:77::1;6844:31;6878:23:::0;;;:12:::1;:23;::::0;;;;6919:21:::1;::::0;::::1;::::0;:26;6911:79:::1;;;::::0;-1:-1:-1;;;6911:79:77;;13580:2:103;6911:79:77::1;::::0;::::1;13562:21:103::0;13619:2;13599:18;;;13592:30;13658:34;13638:18;;;13631:62;-1:-1:-1;;;13709:18:103;;;13702:38;13757:19;;6911:79:77::1;13552:230:103::0;6911:79:77::1;7025:1;7009:13;:17;7001:63;;;::::0;-1:-1:-1;;;7001:63:77;;24141:2:103;7001:63:77::1;::::0;::::1;24123:21:103::0;24180:2;24160:18;;;24153:30;24219:34;24199:18;;;24192:62;-1:-1:-1;;;24270:18:103;;;24263:31;24311:19;;7001:63:77::1;24113:223:103::0;7001:63:77::1;7101:13;7082:16;:32;7074:87;;;::::0;-1:-1:-1;;;7074:87:77;;28225:2:103;7074:87:77::1;::::0;::::1;28207:21:103::0;28264:2;28244:18;;;28237:30;28303:34;28283:18;;;28276:62;-1:-1:-1;;;28354:18:103;;;28347:40;28404:19;;7074:87:77::1;28197:232:103::0;7074:87:77::1;7172:44:::0;;-1:-1:-1;;7172:44:77::1;::::0;;;7226:25;::::1;:41:::0;;;7277:28:::1;::::0;::::1;:47:::0;;;7334:23:::1;:16;::::0;::::1;7353:4:::0;;7334:23:::1;:::i;:::-;-1:-1:-1::0;7391:15:77::1;7367:21;::::0;::::1;:39:::0;;;7440:21:::1;::::0;;::::1;:39:::0;;;7514:10:::1;::::0;::::1;:35:::0;;-1:-1:-1;;7514:35:77::1;7527:22;7514:35;::::0;;;;7559:14;;::::1;:32:::0;;;;7630:46:::1;::::0;-1:-1:-1;;;;;;;;;;;7630:46:77;::::1;::::0;7654:9;;7665:10:::1;;::::0;7630:46:::1;:::i;:::-;;;;;;;;7692:65;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;7373:18;;;7366:34;;;7692:65:77::1;::::0;7277:2:103;7262:18;7692:65:77::1;;;;;;;1129:1:88;;6484:1280:77::0;;;;;;:::o;4548:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4548:60:77;;;;;;;;;;;;;:::i;23477:266::-;23576:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23576:26:77;23626:17;;;;:6;:17;;;;;;;;:26;;;;;;;;;;23618:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23618:34:77;;;;;;;;;;;;;;;-1:-1:-1;;;23618:34:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23688:1;23670:5;:15;;;:19;23662:66;;;;-1:-1:-1;;;23662:66:77;;18859:2:103;23662:66:77;;;18841:21:103;18898:2;18878:18;;;18871:30;18937:34;18917:18;;;18910:62;-1:-1:-1;;;18988:18:103;;;18981:32;19030:19;;23662:66:77;18831:224:103;23662:66:77;23477:266;;;;:::o;18399:1141::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;18529:21:77::1;18553:19:::0;;;:8:::1;:19;::::0;;;;18590:16:::1;::::0;::::1;::::0;18582:68:::1;;;::::0;-1:-1:-1;;;18582:68:77;;24958:2:103;18582:68:77::1;::::0;::::1;24940:21:103::0;24997:2;24977:18;;;24970:30;25036:34;25016:18;;;25009:62;-1:-1:-1;;;25087:18:103;;;25080:33;25130:19;;18582:68:77::1;24930:225:103::0;18582:68:77::1;18693:1;18668:6;:22;;;:26;18660:79;;;::::0;-1:-1:-1;;;18660:79:77;;17642:2:103;18660:79:77::1;::::0;::::1;17624:21:103::0;17681:2;17661:18;;;17654:30;17720:34;17700:18;;;17693:62;-1:-1:-1;;;17771:18:103;;;17764:38;17819:19;;18660:79:77::1;17614:230:103::0;18660:79:77::1;18750:19;18772:17:::0;;;:6:::1;:17;::::0;;;;;;;:26;;;;;;;;18816:15:::1;::::0;::::1;::::0;18808:66:::1;;;::::0;-1:-1:-1;;;18808:66:77;;21705:2:103;18808:66:77::1;::::0;::::1;21687:21:103::0;21744:2;21724:18;;;21717:30;21783:34;21763:18;;;21756:62;-1:-1:-1;;;21834:18:103;;;21827:32;21876:19;;18808:66:77::1;21677:224:103::0;18808:66:77::1;18920:20;18905:11:::0;;::::1;;:35;::::0;::::1;;;;-1:-1:-1::0;;;18905:35:77::1;;;;;;;;;;:86;;;-1:-1:-1::0;18972:19:77::1;18957:11:::0;;::::1;;:34;::::0;::::1;;;;-1:-1:-1::0;;;18957:34:77::1;;;;;;;;;;18905:86;18884:158;;;::::0;-1:-1:-1;;;18884:158:77;;10741:2:103;18884:158:77::1;::::0;::::1;10723:21:103::0;10780:2;10760:18;;;10753:30;10819:34;10799:18;;;10792:62;-1:-1:-1;;;10870:18:103;;;10863:31;10911:19;;18884:158:77::1;10713:223:103::0;18884:158:77::1;19090:20;19075:11:::0;;::::1;;:35;::::0;::::1;;;;-1:-1:-1::0;;;19075:35:77::1;;;;;;;;;;:76;;;;;19135:5;:16;;;19114:5;:17;;;:37;19075:76;19074:131;;;-1:-1:-1::0;19185:19:77::1;19170:11:::0;;::::1;;:34;::::0;::::1;;;;-1:-1:-1::0;;;19170:34:77::1;;;;;;;;;;19074:131;19053:218;;;::::0;-1:-1:-1;;;19053:218:77;;27409:2:103;19053:218:77::1;::::0;::::1;27391:21:103::0;27448:2;27428:18;;;27421:30;27487:34;27467:18;;;27460:62;-1:-1:-1;;;27538:18:103;;;27531:37;27585:19;;19053:218:77::1;27381:229:103::0;19053:218:77::1;19282:31:::0;;-1:-1:-1;;19282:31:77::1;19296:17;19282:31;::::0;;19341:15:::1;19323;::::0;::::1;:33:::0;19391:22:::1;::::0;::::1;:24:::0;;;-1:-1:-1;19391:24:77::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;19444:15:77::1;19425:16;::::0;::::1;:34:::0;19499::::1;::::0;;7008:25:103;;;7064:2;7049:18;;7042:34;;;19499::77::1;::::0;6981:18:103;19499:34:77::1;6963:119:103::0;4915:92:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4804:89::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5413:1043::-;5599:17;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;-1:-1:-1;;;;;5640:19:77;::::1;5632:59;;;::::0;-1:-1:-1;;;5632:59:77;;29802:2:103;5632:59:77::1;::::0;::::1;29784:21:103::0;29841:2;29821:18;;;29814:30;29880:29;29860:18;;;29853:57;29927:18;;5632:59:77::1;29774:177:103::0;5632:59:77::1;5710:10;::::0;:31:::1;::::0;-1:-1:-1;;;5710:31:77;;::::1;::::0;::::1;6473:25:103::0;;;-1:-1:-1;;;;;5710:10:77;;::::1;::::0;:20:::1;::::0;6446:18:103;;5710:31:77::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5702:73;;;::::0;-1:-1:-1;;;5702:73:77;;30561:2:103;5702:73:77::1;::::0;::::1;30543:21:103::0;30600:2;30580:18;;;30573:30;30639:31;30619:18;;;30612:59;30688:18;;5702:73:77::1;30533:179:103::0;5702:73:77::1;5793:10;::::0;:39:::1;::::0;-1:-1:-1;;;5793:39:77;;::::1;::::0;::::1;6473:25:103::0;;;5836:32:77::1;::::0;-1:-1:-1;;;;;5793:10:77::1;::::0;:28:::1;::::0;6446:18:103;;5793:39:77::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:75;;;;;;-1:-1:-1::0;;;5793:75:77::1;;;;;;;;;;5785:120;;;::::0;-1:-1:-1;;;5785:120:77;;30919:2:103;5785:120:77::1;::::0;::::1;30901:21:103::0;;;30938:18;;;30931:30;30997:34;30977:18;;;30970:62;31049:18;;5785:120:77::1;30891:182:103::0;5785:120:77::1;5936:24;:22;:24::i;:::-;5970:21;5994:19:::0;;;:8:::1;:19;::::0;;;;6031:14:::1;::::0;::::1;::::0;5924:36;;-1:-1:-1;5994:19:77;6031;6023:69:::1;;;::::0;-1:-1:-1;;;6023:69:77;;23326:2:103;6023:69:77::1;::::0;::::1;23308:21:103::0;23365:2;23345:18;;;23338:30;23404:34;23384:18;;;23377:62;-1:-1:-1;;;23455:18:103;;;23448:35;23500:19;;6023:69:77::1;23298:227:103::0;6023:69:77::1;6103:18:::0;;-1:-1:-1;;;;;;6103:18:77::1;-1:-1:-1::0;;;;;6103:18:77;::::1;;::::0;;-1:-1:-1;6131:14:77;::::1;:26:::0;;;6167:10:::1;::::0;::::1;:36:::0;;-1:-1:-1;;6167:36:77::1;::::0;;6213:16:::1;:9;::::0;::::1;6225:4:::0;;6213:16:::1;:::i;:::-;-1:-1:-1::0;6256:15:77::1;6239:14;::::0;::::1;:32:::0;;;6305:14:::1;::::0;::::1;:32:::0;6377:72:::1;::::0;::::1;::::0;::::1;::::0;6396:5;;6403:9;;6414;;-1:-1:-1;;6377:72:77::1;:::i;:::-;;;;;;;;1129:1:88;5413:1043:77::0;;;;;;;:::o;23223:248::-;23306:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23306:28:77;23359:19;;;;:8;:19;;;;;;;23350:28;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23350:28:77;;;;;;;;;;;;;;;-1:-1:-1;;;23350:28:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23415:1;23396:6;:16;;;:20;23388:68;;;;-1:-1:-1;;;23388:68:77;;12368:2:103;23388:68:77;;;12350:21:103;12407:2;12387:18;;;12380:30;12446:34;12426:18;;;12419:62;-1:-1:-1;;;12497:18:103;;;12490:33;12540:19;;23388:68:77;12340:225:103;23388:68:77;23223:248;;;:::o;22348:256::-;22433:33;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22433:33:77;22494:19;;;;:8;:19;;;;;;;;;22482:31;;;;;;;;;-1:-1:-1;;;;;22482:31:77;;;;;;;;;;;;;;;;;;;;22494:19;;22482:31;;;;;;;;;;;;-1:-1:-1;;;22482:31:77;;;;;;;;;;;;;;;-1:-1:-1;;;22482:31:77;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22553:1;22531:9;:19;;;:23;22523:74;;;;-1:-1:-1;;;22523:74:77;;22108:2:103;22523:74:77;;;22090:21:103;22147:2;22127:18;;;22120:30;22186:34;22166:18;;;22159:62;-1:-1:-1;;;22237:18:103;;;22230:35;22282:19;;22523:74:77;22080:227:103;14037:880:77;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;14150:21:77::1;14174:19:::0;;;:8:::1;:19;::::0;;;;14211:14:::1;::::0;::::1;::::0;14203:68:::1;;;::::0;-1:-1:-1;;;14203:68:77;;22514:2:103;14203:68:77::1;::::0;::::1;22496:21:103::0;22553:2;22533:18;;;22526:30;22592:34;22572:18;;;22565:62;-1:-1:-1;;;22643:18:103;;;22636:35;22688:19;;14203:68:77::1;22486:227:103::0;14203:68:77::1;14282:21;14306:19:::0;;;:8:::1;:19;::::0;;;;14343:16:::1;::::0;::::1;::::0;14335:68:::1;;;::::0;-1:-1:-1;;;14335:68:77;;18455:2:103;14335:68:77::1;::::0;::::1;18437:21:103::0;18494:2;18474:18;;;18467:30;18533:34;18513:18;;;18506:62;-1:-1:-1;;;18584:18:103;;;18577:33;18627:19;;14335:68:77::1;18427:225:103::0;14335:68:77::1;14437:19;14421:12:::0;;::::1;;:35;::::0;::::1;;;;-1:-1:-1::0;;;14421:35:77::1;;;;;;;;;;14413:82;;;::::0;-1:-1:-1;;;14413:82:77;;35691:2:103;14413:82:77::1;::::0;::::1;35673:21:103::0;35730:2;35710:18;;;35703:30;35769:34;35749:18;;;35742:62;-1:-1:-1;;;35820:18:103;;;35813:32;35862:19;;14413:82:77::1;35663:224:103::0;14413:82:77::1;14513:22;::::0;::::1;::::0;:27;14505:76:::1;;;::::0;-1:-1:-1;;;14505:76:77;;28636:2:103;14505:76:77::1;::::0;::::1;28618:21:103::0;28675:2;28655:18;;;28648:30;28714:34;28694:18;;;28687:62;-1:-1:-1;;;28765:18:103;;;28758:34;28809:19;;14505:76:77::1;28608:226:103::0;14505:76:77::1;14592:33:::0;;14607:18:::1;-1:-1:-1::0;;14592:33:77;;::::1;::::0;::::1;::::0;;14654:15:::1;14635:16;::::0;::::1;:34:::0;;;14704:10;;::::1;:37:::0;;;;::::1;::::0;;::::1;::::0;;;;14751:14:::1;::::0;::::1;:32:::0;14822:46:::1;::::0;-1:-1:-1;;;;;;;;;;;14822:46:77;::::1;::::0;14846:9;;14857:10:::1;;::::0;14822:46:::1;:::i;:::-;;;;;;;;14884:26;::::0;6473:25:103;;;14884:26:77::1;::::0;6461:2:103;6446:18;14884:26:77::1;6428:76:103::0;22898:158:77;22966:22;23017:20;23027:9;23017;:20::i;:::-;:32;;;;22898:158;-1:-1:-1;;22898:158:77:o;22610:282::-;22698:38;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22698:38:77;22766:23;;;;:12;:23;;;;;;;;;22752:37;;;;;;;;;;22766:23;;22752:37;;;;;;;;;;-1:-1:-1;;;22752:37:77;;;;;;;;;;;;;;;-1:-1:-1;;;22752:37:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22831:1;22807:11;:21;;;:25;22799:78;;;;-1:-1:-1;;;22799:78:77;;17233:2:103;22799:78:77;;;17215:21:103;17272:2;17252:18;;;17245:30;17311:34;17291:18;;;17284:62;-1:-1:-1;;;17362:18:103;;;17355:38;17410:19;;22799:78:77;17205:230:103;1143:232:88;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;24543:2:103;3146:190:47;;;24525:21:103;24582:2;24562:18;;;24555:30;24621:34;24601:18;;;24594:62;-1:-1:-1;;;24672:18:103;;;24665:44;24726:19;;3146:190:47;24515:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;10087:36:103;;3531:14:47;;10075:2:103;10060:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;23749:275:77:-;23850:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23850:28:77;23903:18;;;;:7;:18;;;;;;;;:28;;;;;;;;;23894:37;;;;;;;;;;;;;;;;;23903:28;;23894:37;;;;;;;;;;;-1:-1:-1;;;23894:37:77;;;;;;;;;;;;;;;-1:-1:-1;;;23894:37:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23968:1;23949:6;:16;;;:20;23941:68;;;;-1:-1:-1;;;23941:68:77;;18051:2:103;23941:68:77;;;18033:21:103;18090:2;18070:18;;;18063:30;18129:34;18109:18;;;18102:62;-1:-1:-1;;;18180:18:103;;;18173:33;18223:19;;23941:68:77;18023:225:103;19563:1480:77;19780:16;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;19812:21:77::1;19836:19:::0;;;:8:::1;:19;::::0;;;;19873:16:::1;::::0;::::1;::::0;19865:68:::1;;;::::0;-1:-1:-1;;;19865:68:77;;20075:2:103;19865:68:77::1;::::0;::::1;20057:21:103::0;20114:2;20094:18;;;20087:30;20153:34;20133:18;;;20126:62;-1:-1:-1;;;20204:18:103;;;20197:33;20247:19;;19865:68:77::1;20047:225:103::0;19865:68:77::1;19944:19;19966:17:::0;;;:6:::1;:17;::::0;;;;;;;:26;;;;;;;;20010:15:::1;::::0;::::1;::::0;20002:66:::1;;;::::0;-1:-1:-1;;;20002:66:77;;30158:2:103;20002:66:77::1;::::0;::::1;30140:21:103::0;30197:2;30177:18;;;30170:30;30236:34;30216:18;;;30209:62;-1:-1:-1;;;30287:18:103;;;30280:32;30329:19;;20002:66:77::1;30130:224:103::0;20002:66:77::1;20101:28;20086:11:::0;;::::1;;:43;::::0;::::1;;;;-1:-1:-1::0;;;20086:43:77::1;;;;;;;;;;20078:89;;;::::0;-1:-1:-1;;;20078:89:77;;31280:2:103;20078:89:77::1;::::0;::::1;31262:21:103::0;31319:2;31299:18;;;31292:30;31358:34;31338:18;;;31331:62;-1:-1:-1;;;31409:18:103;;;31402:31;31450:19;;20078:89:77::1;31252:223:103::0;20078:89:77::1;20200:1;20185:12;:16;20177:69;;;::::0;-1:-1:-1;;;20177:69:77;;11959:2:103;20177:69:77::1;::::0;::::1;11941:21:103::0;11998:2;11978:18;;;11971:30;12037:34;12017:18;;;12010:62;-1:-1:-1;;;12088:18:103;;;12081:38;12136:19;;20177:69:77::1;11931:230:103::0;20177:69:77::1;20312:5;:17;;;20296:12;20277:5;:16;;;:31;;;;:::i;:::-;:52;;20256:134;;;::::0;-1:-1:-1;;;20256:134:77;;33252:2:103;20256:134:77::1;::::0;::::1;33234:21:103::0;33291:2;33271:18;;;33264:30;33330:34;33310:18;;;33303:62;-1:-1:-1;;;33381:18:103;;;33374:33;33424:19;;20256:134:77::1;33224:225:103::0;20256:134:77::1;20412:22;::::0;;;:11:::1;:22;::::0;;;;;;;;20468:7:::1;:18:::0;;;;;:28;;;;;;;;;20514:16:::1;::::0;::::1;::::0;20412:22;;-1:-1:-1;20468:28:77;20514:21;20506:69:::1;;;::::0;-1:-1:-1;;;20506:69:77;;34477:2:103;20506:69:77::1;::::0;::::1;34459:21:103::0;34516:2;34496:18;;;34489:30;34555:34;34535:18;;;34528:62;-1:-1:-1;;;34606:18:103;;;34599:33;34649:19;;20506:69:77::1;34449:225:103::0;20506:69:77::1;20586:24:::0;;;20620:13:::1;::::0;::::1;:28:::0;;;20658:18:::1;:11;::::0;::::1;20672:4:::0;;20658:18:::1;:::i;:::-;-1:-1:-1::0;20686:12:77::1;::::0;::::1;:35:::0;;-1:-1:-1;;20686:35:77::1;::::0;;20750:15:::1;20731:16;::::0;::::1;:34:::0;;;20799:16:::1;::::0;::::1;:34:::0;20701:20:::1;20868:22:::0;;;:11:::1;:22;::::0;;;;:24;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;20921:15:77::1;20902:16;::::0;::::1;:34:::0;20976:60:::1;::::0;;7642:25:103;;;7698:2;7683:18;;7676:34;;;7726:18;;;7719:34;;;7784:2;7769:18;;7762:34;;;20976:60:77::1;::::0;7629:3:103;7614:19;20976:60:77::1;;;;;;;1129:1:88;;;19563:1480:77::0;;;;;;;;:::o;7770:515::-;7870:21;7894:19;;;:8;:19;;;;;7931:16;;;;7923:68;;;;-1:-1:-1;;;7923:68:77;;32088:2:103;7923:68:77;;;32070:21:103;32127:2;32107:18;;;32100:30;32166:34;32146:18;;;32139:62;-1:-1:-1;;;32217:18:103;;;32210:33;32260:19;;7923:68:77;32060:225:103;7923:68:77;8046:6;:28;;;8036:6;8009;:24;;;:33;;;;:::i;:::-;:65;;8001:106;;;;-1:-1:-1;;;8001:106:77;;32492:2:103;8001:106:77;;;32474:21:103;32531:2;32511:18;;;32504:30;32570;32550:18;;;32543:58;32618:18;;8001:106:77;32464:178:103;8001:106:77;8146:6;8118;:24;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;8181:15:77;8162:16;;;:34;8240:38;;;7008:25:103;;;7064:2;7049:18;;7042:34;;;8240:38:77;;6981:18:103;8240:38:77;6963:119:103;8295:861:77;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;8414:21:77::1;8438:19:::0;;;:8:::1;:19;::::0;;;;8475:14:::1;::::0;::::1;::::0;8467:68:::1;;;::::0;-1:-1:-1;;;8467:68:77;;31682:2:103;8467:68:77::1;::::0;::::1;31664:21:103::0;31721:2;31701:18;;;31694:30;31760:34;31740:18;;;31733:62;-1:-1:-1;;;31811:18:103;;;31804:35;31856:19;;8467:68:77::1;31654:227:103::0;8467:68:77::1;8546:31;8580:23:::0;;;:12:::1;:23;::::0;;;;8621:21:::1;::::0;::::1;::::0;8613:78:::1;;;::::0;-1:-1:-1;;;8613:78:77;;25770:2:103;8613:78:77::1;::::0;::::1;25752:21:103::0;25809:2;25789:18;;;25782:30;25848:34;25828:18;;;25821:62;-1:-1:-1;;;25899:18:103;;;25892:38;25947:19;;8613:78:77::1;25742:230:103::0;8613:78:77::1;8730:24;8709:17:::0;;::::1;;:45;::::0;::::1;;;;-1:-1:-1::0;;;8709:45:77::1;;;;;;;;;;8701:97;;;::::0;-1:-1:-1;;;8701:97:77;;27817:2:103;8701:97:77::1;::::0;::::1;27799:21:103::0;27856:2;27836:18;;;27829:30;27895:34;27875:18;;;27868:62;-1:-1:-1;;;27946:18:103;;;27939:37;27993:19;;8701:97:77::1;27789:229:103::0;8701:97:77::1;8809:44:::0;;-1:-1:-1;;8809:44:77;;::::1;8829:24;8809:44;::::0;;8887:15:::1;8863:21;::::0;;::::1;:39:::0;;;8950:24:::1;8937:10:::0;;::::1;:37:::0;;;;::::1;;::::0;;;;8984:14;::::1;:32:::0;9055:46:::1;::::0;-1:-1:-1;;;;;;;;;;;9055:46:77;::::1;::::0;9079:9;;9090:10:::1;;::::0;9055:46:::1;:::i;:::-;;;;;;;;9117:32;::::0;6473:25:103;;;9117:32:77::1;::::0;6461:2:103;6446:18;9117:32:77::1;6428:76:103::0;14939:1420:77;15128:15;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;15159:21:77::1;15183:19:::0;;;:8:::1;:19;::::0;;;;15220:16:::1;::::0;::::1;::::0;15212:68:::1;;;::::0;-1:-1:-1;;;15212:68:77;;14397:2:103;15212:68:77::1;::::0;::::1;14379:21:103::0;14436:2;14416:18;;;14409:30;14475:34;14455:18;;;14448:62;-1:-1:-1;;;14526:18:103;;;14519:33;14569:19;;15212:68:77::1;14369:225:103::0;15212:68:77::1;15314:26;15298:12:::0;;::::1;;:42;::::0;::::1;;;;-1:-1:-1::0;;;15298:42:77::1;;;;;;;;;;15290:86;;;::::0;-1:-1:-1;;;15290:86:77;;37316:2:103;15290:86:77::1;::::0;::::1;37298:21:103::0;37355:2;37335:18;;;37328:30;37394:33;37374:18;;;37367:61;37445:18;;15290:86:77::1;37288:181:103::0;15290:86:77::1;15664:6;:22;;;15649:11;15627:6;:19;;;:33;;;;:::i;:::-;:59;;15619:117;;;::::0;-1:-1:-1;;;15619:117:77;;21291:2:103;15619:117:77::1;::::0;::::1;21273:21:103::0;21330:2;21310:18;;;21303:30;21369:34;21349:18;;;21342:62;-1:-1:-1;;;21420:18:103;;;21413:43;21473:19;;15619:117:77::1;21263:235:103::0;15619:117:77::1;15757:18;::::0;::::1;::::0;15785:19:::1;15807:17:::0;;;:6:::1;:17;::::0;;;;;;;:26;;;;;;;;15851:15:::1;::::0;::::1;::::0;15757:18;;-1:-1:-1;15807:26:77;15851:20;15843:67:::1;;;::::0;-1:-1:-1;;;15843:67:77;;26179:2:103;15843:67:77::1;::::0;::::1;26161:21:103::0;26218:2;26198:18;;;26191:30;26257:34;26237:18;;;26230:62;-1:-1:-1;;;26308:18:103;;;26301:32;26350:19;;15843:67:77::1;26151:224:103::0;15843:67:77::1;15921:32:::0;;-1:-1:-1;;15921:32:77::1;::::0;;;15963:17;::::1;:31:::0;;;16004:17:::1;:10;::::0;::::1;16017:4:::0;;16004:17:::1;:::i;:::-;-1:-1:-1::0;16049:15:77::1;16031;::::0;::::1;:33:::0;;;16098:15:::1;::::0;::::1;:33:::0;16166:18:::1;::::0;::::1;:20:::0;;;-1:-1:-1;16166:20:77::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;16196:22:77::1;::::0;::::1;:24:::0;;;:22:::1;:24;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;16249:15:77::1;16230:16;::::0;::::1;:34:::0;16304:48:::1;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;7373:18;;;7366:34;;;16304:48:77::1;::::0;7277:2:103;7262:18;16304:48:77::1;;;;;;;1129:1:88;;14939:1420:77::0;;;;;;;:::o;21049:1293::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;21205:21:77::1;21229:19:::0;;;:8:::1;:19;::::0;;;;21266:16:::1;::::0;::::1;::::0;21258:68:::1;;;::::0;-1:-1:-1;;;21258:68:77;;13176:2:103;21258:68:77::1;::::0;::::1;13158:21:103::0;13215:2;13195:18;;;13188:30;13254:34;13234:18;;;13227:62;-1:-1:-1;;;13305:18:103;;;13298:33;13348:19;;21258:68:77::1;13148:225:103::0;21258:68:77::1;21369:1;21344:6;:22;;;:26;21336:79;;;::::0;-1:-1:-1;;;21336:79:77;;19666:2:103;21336:79:77::1;::::0;::::1;19648:21:103::0;19705:2;19685:18;;;19678:30;19744:34;19724:18;;;19717:62;-1:-1:-1;;;19795:18:103;;;19788:38;19843:19;;21336:79:77::1;19638:230:103::0;21336:79:77::1;21426:21;21450:18:::0;;;:7:::1;:18;::::0;;;;;;;:28;;;;;;;;21496:16:::1;::::0;::::1;::::0;21488:68:::1;;;::::0;-1:-1:-1;;;21488:68:77;;26582:2:103;21488:68:77::1;::::0;::::1;26564:21:103::0;26621:2;26601:18;;;26594:30;26660:34;26640:18;;;26633:62;-1:-1:-1;;;26711:18:103;;;26704:33;26754:19;;21488:68:77::1;26554:225:103::0;21488:68:77::1;21590:20;21574:12;::::0;;::::1;::::0;::::1;;::::0;:36;::::1;;;;-1:-1:-1::0;;;21574:36:77::1;;;;;;;;;;21566:85;;;::::0;-1:-1:-1;;;21566:85:77;;10336:2:103;21566:85:77::1;::::0;::::1;10318:21:103::0;10375:2;10355:18;;;10348:30;10414:34;10394:18;;;10387:62;-1:-1:-1;;;10465:18:103;;;10458:34;10509:19;;21566:85:77::1;10308:226:103::0;21566:85:77::1;21677:27;21662:12:::0;;::::1;:42:::0;;-1:-1:-1;;21662:42:77::1;::::0;;::::1;::::0;;21733:15:::1;21714:16;::::0;::::1;:34:::0;21788:39:::1;::::0;;7008:25:103;;;7064:2;7049:18;;7042:34;;;21788:39:77::1;::::0;6981:18:103;21788:39:77::1;;;;;;;21838:19;21860:17:::0;;;:6:::1;:17;::::0;;;;;;;21878:14;;21860:33;;;;;;;21923:13:::1;::::0;;::::1;::::0;21903:16;;::::1;:33:::0;;21860;;21923:13;;21903:16;;21838:19;21903:33:::1;::::0;21923:13;;21903:33:::1;:::i;:::-;::::0;;;-1:-1:-1;;21964:15:77::1;21946;::::0;::::1;:33:::0;22079:16:::1;::::0;::::1;::::0;22058:17:::1;::::0;::::1;::::0;:37:::1;22054:282;;;22111:39:::0;;-1:-1:-1;;22111:39:77::1;22125:25;22111:39;::::0;;22165:22:::1;::::0;::::1;:27:::0;;22111:39;;22165:22;-1:-1:-1;;22165:27:77::1;::::0;22111:39;;22165:27:::1;:::i;:::-;::::0;;;-1:-1:-1;;22225:15:77::1;22206:16;::::0;::::1;:34:::0;22310:14;;22284:41:::1;::::0;;7008:25:103;;;7064:2;7049:18;;7042:34;;;;22284:41:77::1;::::0;6981:18:103;22284:41:77::1;6963:119:103::0;1530:293:88;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;6473:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;6446:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;11553:2:103;1703:113:88;;;11535:21:103;11592:2;11572:18;;;11565:30;11631:34;11611:18;;;11604:62;-1:-1:-1;;;11682:18:103;;;11675:35;11727:19;;1703:113:88;11525:227:103;24133:298:77;24212:19;:21;;24183:17;;;24212:21;;;:::i;:::-;;;;-1:-1:-1;;24353:9:77;;24381:19;;24279:135;;;24313:13;24279:135;;;4975:19:103;24353:9:77;;;;5032:2:103;5028:15;-1:-1:-1;;5028:15:103;5010:12;;;5003:75;5094:12;;;5087:28;5131:12;;24279:135:77;;;;;;;;;;;;24256:168;;;;;;24244:180;;24133:298;:::o;5242:146::-;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;34065:2:103;4880:69:47;;;34047:21:103;34104:2;34084:18;;;34077:30;34143:34;34123:18;;;34116:62;-1:-1:-1;;;34194:18:103;;;34187:41;34245:19;;4880:69:47;34037:233:103;4880:69:47;5348:32:77::1;-1:-1:-1::0;;;5348:19:77::1;:32::i;:::-;5315:10;:66:::0;;-1:-1:-1;;;;;;5315:66:77::1;-1:-1:-1::0;;;;;5315:66:77;;;::::1;::::0;;;::::1;::::0;;5242:146::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:375:103;;;129:3;122:4;114:6;110:17;106:27;96:2;;154:8;144;137:26;96:2;-1:-1:-1;184:20:103;;227:18;216:30;;213:2;;;266:8;256;249:26;213:2;310:4;302:6;298:17;286:29;;362:3;355:4;346:6;338;334:19;330:30;327:39;324:2;;;379:1;376;369:12;324:2;86:303;;;;;:::o;394:257::-;;506:2;494:9;485:7;481:23;477:32;474:2;;;527:6;519;512:22;474:2;571:9;558:23;590:31;615:5;590:31;:::i;:::-;640:5;464:187;-1:-1:-1;;;464:187:103:o;656:261::-;;779:2;767:9;758:7;754:23;750:32;747:2;;;800:6;792;785:22;747:2;837:9;831:16;856:31;881:5;856:31;:::i;922:632::-;;;;;1087:2;1075:9;1066:7;1062:23;1058:32;1055:2;;;1108:6;1100;1093:22;1055:2;1152:9;1139:23;1171:31;1196:5;1171:31;:::i;:::-;1221:5;-1:-1:-1;1273:2:103;1258:18;;1245:32;;-1:-1:-1;1328:2:103;1313:18;;1300:32;1355:18;1344:30;;1341:2;;;1392:6;1384;1377:22;1341:2;1436:58;1486:7;1477:6;1466:9;1462:22;1436:58;:::i;:::-;1045:509;;;;-1:-1:-1;1513:8:103;-1:-1:-1;;;;1045:509:103:o;1559:297::-;;1679:2;1667:9;1658:7;1654:23;1650:32;1647:2;;;1700:6;1692;1685:22;1647:2;1737:9;1731:16;1790:5;1783:13;1776:21;1769:5;1766:32;1756:2;;1817:6;1809;1802:22;1861:190;;1973:2;1961:9;1952:7;1948:23;1944:32;1941:2;;;1994:6;1986;1979:22;1941:2;-1:-1:-1;2022:23:103;;1931:120;-1:-1:-1;1931:120:103:o;2056:258::-;;;2185:2;2173:9;2164:7;2160:23;2156:32;2153:2;;;2206:6;2198;2191:22;2153:2;-1:-1:-1;;2234:23:103;;;2304:2;2289:18;;;2276:32;;-1:-1:-1;2143:171:103:o;2319:565::-;;;;;2484:2;2472:9;2463:7;2459:23;2455:32;2452:2;;;2505:6;2497;2490:22;2452:2;2546:9;2533:23;2523:33;;2603:2;2592:9;2588:18;2575:32;2565:42;;2658:2;2647:9;2643:18;2630:32;2685:18;2677:6;2674:30;2671:2;;;2722:6;2714;2707:22;2889:326;;;;3035:2;3023:9;3014:7;3010:23;3006:32;3003:2;;;3056:6;3048;3041:22;3003:2;-1:-1:-1;;3084:23:103;;;3154:2;3139:18;;3126:32;;-1:-1:-1;3205:2:103;3190:18;;;3177:32;;2993:222;-1:-1:-1;2993:222:103:o;3220:634::-;;;;;;3402:3;3390:9;3381:7;3377:23;3373:33;3370:2;;;3424:6;3416;3409:22;3370:2;3465:9;3452:23;3442:33;;3522:2;3511:9;3507:18;3494:32;3484:42;;3573:2;3562:9;3558:18;3545:32;3535:42;;3628:2;3617:9;3613:18;3600:32;3655:18;3647:6;3644:30;3641:2;;;3692:6;3684;3677:22;3641:2;3736:58;3786:7;3777:6;3766:9;3762:22;3736:58;:::i;:::-;3360:494;;;;-1:-1:-1;3360:494:103;;-1:-1:-1;3813:8:103;;3710:84;3360:494;-1:-1:-1;;;3360:494:103:o;3859:299::-;;4001:2;3989:9;3980:7;3976:23;3972:32;3969:2;;;4022:6;4014;4007:22;3969:2;4059:9;4053:16;4098:1;4091:5;4088:12;4078:2;;4119:6;4111;4104:22;4163:475;;4242:5;4236:12;4269:6;4264:3;4257:19;4294:3;4306:162;4320:6;4317:1;4314:13;4306:162;;;4382:4;4438:13;;;4434:22;;4428:29;4410:11;;;4406:20;;4399:59;4335:12;4306:162;;;4486:6;4483:1;4480:13;4477:2;;;4552:3;4545:4;4536:6;4531:3;4527:16;4523:27;4516:40;4477:2;-1:-1:-1;4620:2:103;4599:15;-1:-1:-1;;4595:29:103;4586:39;;;;4627:4;4582:50;;4212:426;-1:-1:-1;;4212:426:103:o;4643:142::-;4726:1;4719:5;4716:12;4706:2;;4732:18;;:::i;:::-;4761;;4696:89::o;5154:489::-;-1:-1:-1;;;;;5421:32:103;;5403:51;;5485:2;5470:18;;5463:34;;;5528:2;5513:18;;5506:34;;;5390:3;5375:19;;5549:45;5587:6;5549:45;:::i;:::-;5630:6;5625:2;5614:9;5610:18;5603:34;5357:286;;;;;;;:::o;5648:674::-;-1:-1:-1;;;;;5953:32:103;;5935:51;;6017:2;6002:18;;5995:34;;;5648:674;6038:45;6076:6;6038:45;:::i;:::-;6119:6;6114:2;6103:9;6099:18;6092:34;6162:3;6157:2;6146:9;6142:18;6135:31;6183:45;6223:3;6212:9;6208:19;6200:6;6183:45;:::i;:::-;6259:3;6244:19;;6237:35;;;;-1:-1:-1;6303:3:103;6288:19;6281:35;6175:53;5925:397;-1:-1:-1;;;;5925:397:103:o;6509:320::-;6701:25;;;6689:2;6674:18;;6735:45;6773:6;6735:45;:::i;:::-;6816:6;6811:2;6800:9;6796:18;6789:34;6656:173;;;;;:::o;7807:650::-;;8095:46;8134:6;8095:46;:::i;:::-;8168:6;8157:9;8150:25;8211:6;8206:2;8195:9;8191:18;8184:34;8254:6;8249:2;8238:9;8234:18;8227:34;8297:3;8292:2;8281:9;8277:18;8270:31;8318:45;8358:3;8347:9;8343:19;8335:6;8318:45;:::i;9111:819::-;9483:3;9468:19;;9496:45;9534:6;9496:45;:::i;:::-;9550:25;;;9606:2;9591:18;;9584:34;;;;9649:2;9634:18;;9627:34;;;;9692:2;9677:18;;9670:34;;;;9735:3;9720:19;;9713:35;;;;9779:3;9764:19;;9757:35;9823:3;9808:19;;9801:35;9867:3;9852:19;;9845:35;9911:3;9896:19;;;9889:35;9450:480;:::o;28839:352::-;29041:2;29023:21;;;29080:2;29060:18;;;29053:30;29119;29114:2;29099:18;;29092:58;29182:2;29167:18;;29013:178::o;34679:397::-;34881:2;34863:21;;;34920:2;34900:18;;;34893:30;34959:34;34954:2;34939:18;;34932:62;-1:-1:-1;;;35025:2:103;35010:18;;35003:31;35066:3;35051:19;;34853:223::o;37474:749::-;;37661:2;37650:9;37643:21;37689:6;37683:13;37705:42;37744:2;37705:42;:::i;:::-;37783:2;37778;37767:9;37763:18;37756:30;;37840:2;37832:6;37828:15;37822:22;37817:2;37806:9;37802:18;37795:50;37899:2;37891:6;37887:15;37881:22;37876:2;37865:9;37861:18;37854:50;37951:2;37943:6;37939:15;37933:22;37992:4;37986:3;37975:9;37971:19;37964:33;38020:51;38066:3;38055:9;38051:19;38037:12;38020:51;:::i;:::-;38006:65;;38126:3;38118:6;38114:16;38108:23;38102:3;38091:9;38087:19;38080:52;38188:3;38180:6;38176:16;38170:23;38163:4;38152:9;38148:20;38141:53;38211:6;38203:14;;;37633:590;;;;:::o;38970:802::-;;39151:2;39140:9;39133:21;39226:1;39222;39217:3;39213:11;39209:19;39200:6;39194:13;39190:39;39185:2;39174:9;39170:18;39163:67;39284:2;39276:6;39272:15;39266:22;39261:2;39250:9;39246:18;39239:50;39336:2;39328:6;39324:15;39318:22;39349:51;39387:12;39349:51;:::i;:::-;39436:12;39431:2;39420:9;39416:18;39409:40;;39498:2;39490:6;39486:15;39480:22;39539:4;39533:3;39522:9;39518:19;39511:33;39567:53;39615:3;39604:9;39600:19;39584:14;39567:53;:::i;39777:733::-;;39954:2;39943:9;39936:21;39999:6;39993:13;39988:2;39977:9;39973:18;39966:41;40054:2;40046:6;40042:15;40036:22;40067:61;40124:2;40113:9;40109:18;40095:12;40067:61;:::i;:::-;;40182:2;40174:6;40170:15;40164:22;40159:2;40148:9;40144:18;40137:50;40236:2;40228:6;40224:15;40218:22;40277:4;40271:3;40260:9;40256:19;40249:33;40305:53;40353:3;40342:9;40338:19;40322:14;40305:53;:::i;40515:829::-;40720:13;;40697:3;40682:19;;;40742:41;40720:13;40742:41;:::i;:::-;40810:2;40799:9;40792:21;;40869:4;40861:6;40857:17;40851:24;40844:4;40833:9;40829:20;40822:54;40932:4;40924:6;40920:17;40914:24;40907:4;40896:9;40892:20;40885:54;40995:4;40987:6;40983:17;40977:24;40970:4;40959:9;40955:20;40948:54;41058:4;41050:6;41046:17;41040:24;41033:4;41022:9;41018:20;41011:54;41121:4;41113:6;41109:17;41103:24;41096:4;41085:9;41081:20;41074:54;41184:4;41176:6;41172:17;41166:24;41159:4;41148:9;41144:20;41137:54;41247:4;41239:6;41235:17;41229:24;41222:4;41211:9;41207:20;41200:54;41273:6;41333:2;41325:6;41321:15;41315:22;41310:2;41299:9;41295:18;41288:50;;40664:680;;;;:::o;41531:611::-;;41832:6;41821:9;41814:25;41848:55;41899:2;41888:9;41884:18;41876:6;41848:55;:::i;42147:128::-;;42218:1;42214:6;42211:1;42208:13;42205:2;;;42224:18;;:::i;:::-;-1:-1:-1;42260:9:103;;42195:80::o;42280:125::-;;42348:1;42345;42342:8;42339:2;;;42353:18;;:::i;:::-;-1:-1:-1;42390:9:103;;42329:76::o;42410:136::-;;42477:5;42467:2;;42486:18;;:::i;:::-;-1:-1:-1;;;42522:18:103;;42457:89::o;42551:380::-;42636:1;42626:12;;42683:1;42673:12;;;42694:2;;42748:4;42740:6;42736:17;42726:27;;42694:2;42801;42793:6;42790:14;42770:18;42767:38;42764:2;;;42847:10;42842:3;42838:20;42835:1;42828:31;42882:4;42879:1;42872:15;42910:4;42907:1;42900:15;42764:2;;42606:325;;;:::o;42936:135::-;;-1:-1:-1;;42996:17:103;;42993:2;;;43016:18;;:::i;:::-;-1:-1:-1;43063:1:103;43052:13;;42983:88::o;43076:127::-;43137:10;43132:3;43128:20;43125:1;43118:31;43168:4;43165:1;43158:15;43192:4;43189:1;43182:15;43208:127;43269:10;43264:3;43260:20;43257:1;43250:31;43300:4;43297:1;43290:15;43324:4;43321:1;43314:15;43340:121;43429:1;43422:5;43419:12;43409:2;;43435:18;;:::i;:::-;43399:62;:::o;43466:120::-;43554:1;43547:5;43544:12;43534:2;;43560:18;;:::i;43591:131::-;-1:-1:-1;;;;;43666:31:103;;43656:42;;43646:2;;43712:1;43709;43702:12"},"methodIdentifiers":{"adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","applications(bytes32)":"4cafa121","claims(bytes32,uint256)":"9e81f96a","closeClaim(bytes32,uint256)":"7f29dba2","closePolicy(bytes32)":"adcadb28","collectPremium(bytes32,uint256)":"e3ebdea5","confirmClaim(bytes32,uint256,uint256)":"4e02c63f","createApplication(bytes32,uint256,uint256,bytes)":"6780336e","createClaim(bytes32,uint256,bytes)":"ec935668","createPayout(bytes32,uint256,uint256,bytes)":"db42b77b","createPolicy(bytes32)":"4c14ccc2","createPolicyFlow(address,uint256,bytes)":"a1814a1a","declineApplication(bytes32)":"296d6c7d","declineClaim(bytes32,uint256)":"4cda0de9","expirePolicy(bytes32)":"47e3b138","getApplication(bytes32)":"bc506f64","getClaim(bytes32,uint256)":"7f22c2d9","getMetadata(bytes32)":"a5961b4c","getNumberOfClaims(bytes32)":"b1e25988","getNumberOfPayouts(bytes32)":"be183b11","getPayout(bytes32,uint256)":"cef58f13","getPolicy(bytes32)":"a3f685f9","initialize(address)":"c4d66de8","metadata(bytes32)":"7122ba06","payoutCount(bytes32)":"357f030a","payouts(bytes32,uint256)":"80f2122c","policies(bytes32)":"ddbfd8ef","processIds()":"a427056e","processPayout(bytes32,uint256)":"fe64372b","revokeApplication(bytes32)":"eb96cbed","underwriteApplication(bytes32)":"5c955288"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationPremiumAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationSumInsuredAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationUnderwritten\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"LogClaimClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"LogClaimConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"LogClaimCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"LogClaimDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"}],\"name\":\"LogMetadataCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"}],\"name\":\"LogMetadataStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogPayoutCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"LogPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyExpired\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"}],\"name\":\"LogPolicyPremiumAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogPremiumCollected\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"applications\",\"outputs\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"enum IPolicy.ClaimState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paidAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"closeClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"closePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"confirmClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"createPolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createPolicyFlow\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"declineApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"declineClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"expirePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getApplication\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"getClaim\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ClaimState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paidAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Claim\",\"name\":\"claim\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getNumberOfClaims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfClaims\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getNumberOfPayouts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPayouts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"getPayout\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PayoutState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Payout\",\"name\":\"payout\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getPolicy\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.PolicyState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premiumPaidAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openClaimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutMaxAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Policy\",\"name\":\"policy\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"metadata\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"payoutCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"payouts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PayoutState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"policies\",\"outputs\":[{\"internalType\":\"enum IPolicy.PolicyState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premiumPaidAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openClaimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutMaxAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"processIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"revokeApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwriteApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract implements functions for policy operations, including creation, update, cancellation, and retrieval. It also provides functions for claim creation, confirmation, decline, closure, and payout creation. Additionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy. The contract inherits from the `IPolicy` interface and the `CoreController` contract. 1. State Variables: - `metadata`: A mapping that stores metadata associated with policy flows. - `applications`: A mapping that stores insurance applications associated with policy flows. - `policies`: A mapping that stores policies associated with policy flows. - `claims`: A nested mapping that stores claims associated with policies. - `payouts`: A nested mapping that stores payouts associated with policies. - `payoutCount`: A mapping that stores the count of payouts for each policy flow. - `_assigendProcessIds`: A counter variable for assigning unique process IDs. - `_component`: A reference to the `ComponentController` contract. 2. Functions: - `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization. - `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data. - `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data. - `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount. - `revokeApplication()`: Revokes an application for a policy flow. - `underwriteApplication()`: Changes the state of an application to \\\"Underwritten\\\". - `declineApplication()`: Declines an application for a policy flow. - `createPolicy()`: Creates a new policy for a given application process ID. - `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application. - `expirePolicy()`: Expires a policy with the given process ID. - `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims. - `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event. - `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event. - `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event. - `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event. - `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event. - `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event. - `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists. - `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists. - `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function. - `getNumberOfPayouts()`: Returns the number of payouts for a given process ID. Overall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/PolicyController.sol\":\"PolicyController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/PoolController.sol":{"PoolController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralizationFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralizationSucceeded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"address","name":"erc20Token","type":"address"},{"indexed":false,"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"LogRiskpoolRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"sumInsured","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateral","type":"uint256"}],"name":"LogRiskpoolRequiredCollateral","type":"event"},{"inputs":[],"name":"COLLATERALIZATION_LEVEL_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FULL_COLLATERALIZATION_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"numberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"addBundleIdToActiveSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"calculateCollateral","outputs":[{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"bundleIdx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"}],"name":"getRiskPoolForProduct","outputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpool","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredAtRisk","type":"uint256"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPool.Pool","name":"riskPool","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"registerRiskpool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"removeBundleIdFromActiveSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"riskpools","outputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"maxNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"setRiskpoolForProduct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61304d80620000f46000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063a65e2cfd116100c3578063eb8021141161007c578063eb802114146102ad578063ec833b0c146102cd578063edb5be30146102e0578063f1d354d0146102e8578063f93b3673146102f6578063fe64372b146103095761014d565b8063a65e2cfd14610239578063c397ae391461024c578063c4d66de81461025f578063d229f3b014610272578063d407ba0014610292578063da68771a146102a55761014d565b806367d42a8b1161011557806367d42a8b146101d25780637cdb808d146101e55780637db32844146101f8578063950be8031461020b578063a054381f1461021e578063a4266a66146102265761014d565b806302108268146101525780631b07b17f146101675780632127fd481461018f57806345fe1c6d146101a257806357419e8f146101bf575b600080fd5b610165610160366004612b08565b61031c565b005b61017a610175366004612af0565b610643565b60405190151581526020015b60405180910390f35b61016561019d366004612d4a565b610c1b565b6101b1670de0b6b3a764000081565b604051908152602001610186565b6101656101cd366004612cf9565b610ce3565b6101656101e0366004612af0565b611030565b6101b16101f3366004612d4a565b611401565b6101b1610206366004612af0565b611461565b610165610219366004612d4a565b611476565b6007546101b1565b6101b1610234366004612af0565b61154d565b610165610247366004612d4a565b61156a565b61016561025a366004612d4a565b6116bf565b61016561026d366004612a98565b611819565b6101b1610280366004612af0565b60009081526003602052604090205490565b6101656102a0366004612d4a565b611997565b6101b1611afd565b6102c06102bb366004612af0565b611b13565b6040516101869190612e98565b6101b16102db366004612d4a565b611c78565b6101b1600181565b670de0b6b3a76400006101b1565b610165610304366004612d4a565b611d07565b610165610317366004612b08565b611fa5565b63141bdbdb60e21b61032d8161245e565b6001600160a01b0316306001600160a01b0316146103665760405162461bcd60e51b815260040161035d90612e20565b60405180910390fd5b6103806d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146103b05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156103f957600080fd5b505afa15801561040d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104359190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190612b29565b60068111156104e957634e487b7160e01b600052602160045260246000fd5b146105065760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105879190810190612bf6565b9050600061059482612546565b604051630d8a70f160e21b8152600481018a9052602481018990529091506001600160a01b03821690633629c3c490604401600060405180830381600087803b1580156105e057600080fd5b505af11580156105f4573d6000803e3d6000fd5b505050506020828101516000908152600382526040808220548083526004909352812060088101805491928b9261062c908490612f65565b909155505042600a90910155505050505050505050565b600063141bdbdb60e21b6106568161245e565b6001600160a01b0316306001600160a01b0316146106865760405162461bcd60e51b815260040161035d90612e20565b6106a06d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146106d05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561071957600080fd5b505afa15801561072d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107559190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612b29565b600681111561080957634e487b7160e01b600052602160045260246000fd5b146108265760405162461bcd60e51b815260040161035d90612d5c565b600954604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a79190810190612b48565b90506000815160038111156108cc57634e487b7160e01b600052602160045260246000fd5b146109295760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f4c2d3032303a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b606482015260840161035d565b60095460405163296586d360e21b8152600481018990526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561096e57600080fd5b505afa158015610982573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109aa9190810190612bf6565b602080820151600090815260039091526040808220549085015192935091906109d38383611401565b60008c81526002602090815260409182902083905581518e81529081018590529081018290529091507f893c64de8e253703b31297be336c07a93e39fe8eaa32127e2e6fff090f0aefae9060600160405180910390a160008381526004602052604090206005810154610a47908490612f65565b81600401541015610ab25760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a504f4c2d3032323a5249534b504f4f4c5f53554d5f494e53555260448201526e115117d0d05417d15610d151511151608a1b606482015260840161035d565b6000610abd86612546565b604051631121f7ef60e31b8152600481018f9052602481018590529091506001600160a01b0382169063890fbf7890604401602060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190612ad0565b9b508b15610bc95783826005016000828254610b5d9190612f65565b9250508190555082826007016000828254610b789190612f65565b909155505042600a83015560408051868152602081018f90529081018590527f66a2033a32603d30bde9ec2b858820c3202972f4ee1c8dd2c6e18391b6bfbaeb9060600160405180910390a1610c0b565b60408051868152602081018f90529081018590527fc6e314ad1256dc0c682dc6bb53e940b53f14aa323070798a8423a7f1d965d0599060600160405180910390a15b5050505050505050505050919050565b610c366e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610c665760405162461bcd60e51b815260040161035d90612dde565b60008111610cd15760405162461bcd60e51b815260206004820152603260248201527f4552524f523a504f4c2d3033323a4d41585f4e554d4245525f4f465f41435449604482015271159157d0955391131154d7d253959053125160721b606482015260840161035d565b60009182526005602052604090912055565b610cfe6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610d2e5760405162461bcd60e51b815260040161035d90612dde565b60008581526004602090815260408083206007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018a90556005909352922055600981015415610ddc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030353a5249534b504f4f4c5f414c52454144595f526044820152681151d254d51154915160ba1b606482015260840161035d565b6001600160a01b038516610e3c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3030363a57414c4c45545f414444524553535f5a45526044820152604f60f81b606482015260840161035d565b6001600160a01b038416610e925760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030373a45524332305f414444524553535f5a45524f604482015260640161035d565b610ea5670de0b6b3a76400006002612f9d565b831115610f0b5760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a504f4c2d3030383a434f4c4c41544552414c495a4154494f4e5f60448201526d0d88aac8ad8bea89e9ebe90928e960931b606482015260840161035d565b60008211610f6d5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030393a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b606482015260840161035d565b8581556001810180546001600160a01b038781166001600160a01b031992831681179093556002840180549188169190921681179091556003830185905560048301849055600060058401819055600684018190556007840181905560088401554260098401819055600a84015560408051898152602081019390935282015260608101849052608081018390527f798f4ae5a0a1e2125e89cf9f810639cd05f69896db5bd4f928bd53e6ef3bf8b99060a00160405180910390a1505050505050565b63141bdbdb60e21b6110418161245e565b6001600160a01b0316306001600160a01b0316146110715760405162461bcd60e51b815260040161035d90612e20565b61108b6d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146110bb5760405162461bcd60e51b815260040161035d90612e57565b60095460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111399190612c74565b905060028151600281111561115e57634e487b7160e01b600052602160045260246000fd5b146111b65760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3032353a504f4c4943595f53544154455f494e56414c604482015261125160f21b606482015260840161035d565b60095460405163296586d360e21b8152600481018590526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156111fb57600080fd5b505afa15801561120f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112379190810190612bf6565b9050600061124482612546565b604051636180264360e11b8152600481018790529091506001600160a01b0382169063c3004c8690602401600060405180830381600087803b15801561128957600080fd5b505af115801561129d573d6000803e3d6000fd5b5050600954604051632f141bd960e21b815260048101899052600093506001600160a01b03909116915063bc506f649060240160006040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113249190810190612b48565b6020808501516000908152600382526040808220548083526004845281832060c08a01518c855260029095529183205494955093909261136391612fbc565b9050836040015182600501600082825461137d9190612fbc565b92505081905550808260070160008282546113989190612fbc565b909155505042600a83015560008981526002602090815260408083209290925581518581529081018b90529081018290527f4948a5a8dbd6a1190cb403d7731211af859364368aafe64e104d3f3b07e846cf9060600160405180910390a1505050505050505050565b60008061140d84611b13565b606001519050670de0b6b3a764000081141561142b5782915061145a565b801561145557670de0b6b3a76400006114448483612f9d565b61144e9190612f7d565b915061145a565b600091505b5092915050565b6000818152600560205260409020545b919050565b6114916e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146114c15760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206114d990826125bf565b6115305760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034343a42554e444c455f49445f4e4f545f494e5f53604482015261115560f21b606482015260840161035d565b600082815260066020526040902061154890826125d7565b505050565b6000818152600660205260408120611564906125e3565b92915050565b6115856e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146115b55760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116349190612b29565b600681111561165357634e487b7160e01b600052602160045260246000fd5b146116705760405162461bcd60e51b815260040161035d90612d9d565b600083815260046020526040812060068101805491928592611693908490612f65565b92505081905550828160080160008282546116ae9190612f65565b909155505042600a90910155505050565b6116da6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b03161461170a5760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561175157600080fd5b505afa158015611765573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117899190612b29565b60068111156117a857634e487b7160e01b600052602160045260246000fd5b146117c55760405162461bcd60e51b815260040161035d90612d9d565b6000838152600460205260409020600681015483116117fd57828160060160008282546117f29190612fbc565b909155506118059050565b600060068201555b828160080160008282546116ae9190612fbc565b600054610100900460ff16158080156118395750600054600160ff909116105b806118535750303b158015611853575060005460ff166001145b6118b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161035d565b6000805460ff1916600117905580156118d9576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611903600090565b6541636365737360d01b14611945576119246541636365737360d01b61245e565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61194d6125ed565b8015611993576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6119b26e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146119e25760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206119fa90826125bf565b15611a565760405162461bcd60e51b815260206004820152602660248201527f4552524f523a504f4c2d3034323a42554e444c455f49445f414c52454144595f604482015265125397d4d15560d21b606482015260840161035d565b6000828152600560209081526040808320546006909252909120611a79906125e3565b10611ae55760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f4c2d3034333a4d4158494d554d5f4e554d4245525f4f465f6044820152751050d512559157d0955391131154d7d4915050d2115160521b606482015260840161035d565b600082815260066020526040902061154890826126f3565b611b10670de0b6b3a76400006002612f9d565b81565b611b826040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506000818152600460208181526040928390208351610160810185528154815260018201546001600160a01b039081169382019390935260028201549092169382019390935260038301546060820152908201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201546101208201819052600a90920154610140820152906114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034303a5249534b504f4f4c5f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b6000828152600660205260408120611c8f906125e3565b8210611ce85760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034313a42554e444c455f4944585f544f4f5f4c4152604482015261474560f01b606482015260840161035d565b6000838152600660205260409020611d0090836126ff565b9392505050565b611d307f496e7374616e63654f70657261746f725365727669636500000000000000000061245e565b6001600160a01b0316336001600160a01b031614611d9c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f4c2d3030313a4e4f545f494e5354414e43455f4f504552416044820152622a27a960e91b606482015260840161035d565b600854604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b158015611de057600080fd5b505afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612ad0565b611e645760405162461bcd60e51b815260206004820152601960248201527f4552524f523a504f4c2d3031303a4e4f545f50524f4455435400000000000000604482015260640161035d565b60085460405163ba80b8ed60e01b8152600481018390526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611ea857600080fd5b505afa158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee09190612ad0565b611f2c5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a504f4c2d3031313a4e4f545f5249534b504f4f4c000000000000604482015260640161035d565b60008281526003602052604090205415611f935760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3031323a5249534b504f4f4c5f414c52454144595f53604482015261115560f21b606482015260840161035d565b60009182526003602052604090912055565b63141bdbdb60e21b611fb68161245e565b6001600160a01b0316306001600160a01b031614611fe65760405162461bcd60e51b815260040161035d90612e20565b6120006d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146120305760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561207957600080fd5b505afa15801561208d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120b59190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561211257600080fd5b505afa158015612126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214a9190612b29565b600681111561216957634e487b7160e01b600052602160045260246000fd5b146121865760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156121cb57600080fd5b505afa1580156121df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122079190810190612bf6565b60208082015160009081526003825260408082205480835260049093529020600981015492935090916122865760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3032363a5249534b504f4f4c5f49445f494e56414c496044820152601160fa1b606482015260840161035d565b87816006015410156122da5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032373a4341504954414c5f544f4f5f4c4f57000000604482015260640161035d565b878160070154101561233a5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3032383a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b606482015260840161035d565b878160080154101561238e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032393a42414c414e43455f544f4f5f4c4f57000000604482015260640161035d565b878160060160008282546123a29190612fbc565b92505081905550878160070160008282546123bd9190612fbc565b92505081905550878160080160008282546123d89190612fbc565b909155505042600a82015560006123ee84612546565b60405163412ac48360e11b8152600481018c9052602481018b90529091506001600160a01b03821690638255890690604401600060405180830381600087803b15801561243a57600080fd5b505af115801561244e573d6000803e3d6000fd5b5050505050505050505050505050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156124a857600080fd5b505afa1580156124bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e09190612ab4565b90506001600160a01b0381166114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b602080820151600090815260039091526040812054806125b65760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034353a5249534b504f4f4c5f444f45535f4e4f545f60448201526411561254d560da1b606482015260840161035d565b611d008161270b565b60008181526001830160205260408120541515611d00565b6000611d00838361285d565b6000611564825490565b600054610100900460ff166126585760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161035d565b61266d6810dbdb5c1bdb995b9d60ba1b61245e565b600880546001600160a01b0319166001600160a01b039290921691909117905561269f65506f6c69637960d01b61245e565b600980546001600160a01b0319166001600160a01b03929092169190911790556126d16542756e646c6560d01b61245e565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000611d00838361297a565b6000611d0083836129c9565b60085460405163ba80b8ed60e01b8152600481018390526000916001600160a01b03169063ba80b8ed9060240160206040518083038186803b15801561275057600080fd5b505afa158015612764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127889190612ad0565b6127e05760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3034363a434f4d504f4e454e545f4e4f545f5249534b6044820152631413d3d360e21b606482015260840161035d565b6008546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561282557600080fd5b505afa158015612839573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d009190612ab4565b60008181526001830160205260408120548015612970576000612881600183612fbc565b855490915060009061289590600190612fbc565b90508181146129165760008660000182815481106128c357634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106128f457634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061293557634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611564565b6000915050611564565b60008181526001830160205260408120546129c157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611564565b506000611564565b60008260000182815481106129ee57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b600082601f830112612a11578081fd5b815167ffffffffffffffff811115612a2b57612a2b612fe9565b6020612a3f601f8301601f19168201612f34565b8281528582848701011115612a52578384fd5b835b83811015612a6f578581018301518282018401528201612a54565b83811115612a7f57848385840101525b5095945050505050565b80516003811061147157600080fd5b600060208284031215612aa9578081fd5b8135611d0081612fff565b600060208284031215612ac5578081fd5b8151611d0081612fff565b600060208284031215612ae1578081fd5b81518015158114611d00578182fd5b600060208284031215612b01578081fd5b5035919050565b60008060408385031215612b1a578081fd5b50508035926020909101359150565b600060208284031215612b3a578081fd5b815160078110611d00578182fd5b600060208284031215612b59578081fd5b815167ffffffffffffffff80821115612b70578283fd5b9083019060c08286031215612b83578283fd5b612b8d60c0612f34565b825160048110612b9b578485fd5b808252506020830151602082015260408301516040820152606083015182811115612bc4578485fd5b612bd087828601612a01565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612c07578081fd5b815167ffffffffffffffff80821115612c1e578283fd5b9083019060c08286031215612c31578283fd5b612c3b60c0612f34565b8251612c4681612fff565b815260208381015190820152612c5e60408401612a89565b6040820152606083015182811115612bc4578485fd5b6000610120808385031215612c87578182fd5b612c9081612f34565b9050612c9b83612a89565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080600080600060a08688031215612d10578081fd5b853594506020860135612d2281612fff565b93506040860135612d3281612fff565b94979396509394606081013594506080013592915050565b60008060408385031215612b1a578182fd5b60208082526021908201527f4552524f523a504f4c2d3030343a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526021908201527f4552524f523a504f4c2d3030333a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526022908201527f4552524f523a504f4c2d3030323a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b81518152602080830151610160830191612ebc908401826001600160a01b03169052565b506040830151612ed760408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612f5d57612f5d612fe9565b604052919050565b60008219821115612f7857612f78612fd3565b500190565b600082612f9857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612fb757612fb7612fd3565b500290565b600082821015612fce57612fce612fd3565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461301457600080fd5b5056fea2646970667358221220c3bffcc2760e53be86521cfbd777e61c2feecb4d34921b699ff2b261b3d0a62164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x22 JUMP JUMPDEST PUSH3 0xE4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xE2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x304D DUP1 PUSH3 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA65E2CFD GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xEB802114 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xEB802114 EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0xEC833B0C EQ PUSH2 0x2CD JUMPI DUP1 PUSH4 0xEDB5BE30 EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xF93B3673 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x309 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0xA65E2CFD EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0xC397AE39 EQ PUSH2 0x24C JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0xD229F3B0 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0xD407BA00 EQ PUSH2 0x292 JUMPI DUP1 PUSH4 0xDA68771A EQ PUSH2 0x2A5 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x67D42A8B GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x67D42A8B EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0x7CDB808D EQ PUSH2 0x1E5 JUMPI DUP1 PUSH4 0x7DB32844 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0x950BE803 EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0xA4266A66 EQ PUSH2 0x226 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x2108268 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x2127FD48 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x57419E8F EQ PUSH2 0x1BF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x165 PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B08 JUMP JUMPDEST PUSH2 0x31C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17A PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x165 PUSH2 0x19D CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x1B1 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x186 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x1CD CALLDATASIZE PUSH1 0x4 PUSH2 0x2CF9 JUMP JUMPDEST PUSH2 0xCE3 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x1E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1030 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x1F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1401 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x206 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1461 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x219 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1476 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x1B1 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x234 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x154D JUMP JUMPDEST PUSH2 0x165 PUSH2 0x247 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x156A JUMP JUMPDEST PUSH2 0x165 PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x16BF JUMP JUMPDEST PUSH2 0x165 PUSH2 0x26D CALLDATASIZE PUSH1 0x4 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x1819 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1997 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x1AFD JUMP JUMPDEST PUSH2 0x2C0 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1B13 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1B1 PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x1B1 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x304 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1D07 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x317 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B08 JUMP JUMPDEST PUSH2 0x1FA5 JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x32D DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x366 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x380 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x40D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x435 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x492 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4CA SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x4E9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x506 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x55F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x587 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x594 DUP3 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD8A70F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x3629C3C4 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE DUP2 KECCAK256 PUSH1 0x8 DUP2 ADD DUP1 SLOAD SWAP2 SWAP3 DUP12 SWAP3 PUSH2 0x62C SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA SWAP1 SWAP2 ADD SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x656 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x686 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x6A0 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x719 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x72D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x755 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7EA SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x809 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x86B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x87F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B48 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x8CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x929 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032303A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x96E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x982 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x9AA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 DUP6 ADD MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 PUSH2 0x9D3 DUP4 DUP4 PUSH2 0x1401 JUMP JUMPDEST PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE DUP2 MLOAD DUP15 DUP2 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0x893C64DE8E253703B31297BE336C07A93E39FE8EAA32127E2E6FFF090F0AEFAE SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 DUP2 ADD SLOAD PUSH2 0xA47 SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST DUP2 PUSH1 0x4 ADD SLOAD LT ISZERO PUSH2 0xAB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032323A5249534B504F4F4C5F53554D5F494E535552 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x115117D0D05417D15610D151511151 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xABD DUP7 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1121F7EF PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x890FBF78 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB41 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST SWAP12 POP DUP12 ISZERO PUSH2 0xBC9 JUMPI DUP4 DUP3 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB5D SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP3 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB78 SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x66A2033A32603D30BDE9EC2B858820C3202972F4EE1C8DD2C6E18391B6BFBAEB SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xC6E314AD1256DC0C682DC6BB53E940B53F14AA323070798A8423A7F1D965D059 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC36 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC66 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3033323A4D41585F4E554D4245525F4F465F41435449 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x159157D0955391131154D7D2539590531251 PUSH1 0x72 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xCFE PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP11 SWAP1 SSTORE PUSH1 0x5 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SSTORE PUSH1 0x9 DUP2 ADD SLOAD ISZERO PUSH2 0xDDC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030353A5249534B504F4F4C5F414C52454144595F52 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1151D254D511549151 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0xE3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030363A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xE92 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030373A45524332305F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0xEA5 PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 PUSH2 0x2F9D JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0xF0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030383A434F4C4C41544552414C495A4154494F4E5F PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0xD88AAC8AD8BEA89E9EBE90928E9 PUSH1 0x93 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 GT PUSH2 0xF6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030393A53554D5F4F465F53554D5F494E5355524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F4341505F5A45524F PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP6 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x2 DUP5 ADD DUP1 SLOAD SWAP2 DUP9 AND SWAP2 SWAP1 SWAP3 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP4 ADD DUP6 SWAP1 SSTORE PUSH1 0x4 DUP4 ADD DUP5 SWAP1 SSTORE PUSH1 0x0 PUSH1 0x5 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x6 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x7 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP5 ADD SSTORE TIMESTAMP PUSH1 0x9 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0xA DUP5 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x798F4AE5A0A1E2125E89CF9F810639CD05F69896DB5BD4F928BD53E6EF3BF8B9 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1041 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1071 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x108B PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1115 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1139 SWAP2 SWAP1 PUSH2 0x2C74 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x115E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x11B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032353A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x120F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1237 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1244 DUP3 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x61802643 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC3004C86 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x129D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x0 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1324 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B48 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 DUP5 MSTORE DUP2 DUP4 KECCAK256 PUSH1 0xC0 DUP11 ADD MLOAD DUP13 DUP6 MSTORE PUSH1 0x2 SWAP1 SWAP6 MSTORE SWAP2 DUP4 KECCAK256 SLOAD SWAP5 SWAP6 POP SWAP4 SWAP1 SWAP3 PUSH2 0x1363 SWAP2 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x40 ADD MLOAD DUP3 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x137D SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP3 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1398 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP4 ADD SSTORE PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP1 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x4948A5A8DBD6A1190CB403D7731211AF859364368AAFE64E104D3F3B07E846CF SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x140D DUP5 PUSH2 0x1B13 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP1 POP PUSH8 0xDE0B6B3A7640000 DUP2 EQ ISZERO PUSH2 0x142B JUMPI DUP3 SWAP2 POP PUSH2 0x145A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1455 JUMPI PUSH8 0xDE0B6B3A7640000 PUSH2 0x1444 DUP5 DUP4 PUSH2 0x2F9D JUMP JUMPDEST PUSH2 0x144E SWAP2 SWAP1 PUSH2 0x2F7D JUMP JUMPDEST SWAP2 POP PUSH2 0x145A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1491 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x14D9 SWAP1 DUP3 PUSH2 0x25BF JUMP JUMPDEST PUSH2 0x1530 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034343A42554E444C455F49445F4E4F545F494E5F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1155 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1548 SWAP1 DUP3 PUSH2 0x25D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1564 SWAP1 PUSH2 0x25E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1585 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x15B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST DUP2 PUSH1 0x3 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1610 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1634 SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1653 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1670 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D9D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x6 DUP2 ADD DUP1 SLOAD SWAP2 SWAP3 DUP6 SWAP3 PUSH2 0x1693 SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16AE SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA SWAP1 SWAP2 ADD SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x16DA PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x170A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST DUP2 PUSH1 0x3 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1751 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1765 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1789 SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x17A8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x17C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D9D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD DUP4 GT PUSH2 0x17FD JUMPI DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x17F2 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1805 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 DUP3 ADD SSTORE JUMPDEST DUP3 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16AE SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1839 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1853 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1853 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x18B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x18D9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1903 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1945 JUMPI PUSH2 0x1924 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x194D PUSH2 0x25ED JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1993 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x19B2 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19FA SWAP1 DUP3 PUSH2 0x25BF JUMP JUMPDEST ISZERO PUSH2 0x1A56 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034323A42554E444C455F49445F414C52454144595F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x125397D4D155 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH2 0x1A79 SWAP1 PUSH2 0x25E3 JUMP JUMPDEST LT PUSH2 0x1AE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034333A4D4158494D554D5F4E554D4245525F4F465F PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x1050D512559157D0955391131154D7D4915050D21151 PUSH1 0x52 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1548 SWAP1 DUP3 PUSH2 0x26F3 JUMP JUMPDEST PUSH2 0x1B10 PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 PUSH2 0x2F9D JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH2 0x1B82 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH2 0x160 DUP2 ADD DUP6 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP1 SWAP3 AND SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH2 0x120 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xA SWAP1 SWAP3 ADD SLOAD PUSH2 0x140 DUP3 ADD MSTORE SWAP1 PUSH2 0x1471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034303A5249534B504F4F4C5F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1C8F SWAP1 PUSH2 0x25E3 JUMP JUMPDEST DUP3 LT PUSH2 0x1CE8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034313A42554E444C455F4944585F544F4F5F4C4152 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4745 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1D00 SWAP1 DUP4 PUSH2 0x26FF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1D30 PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1D9C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E18 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x1E64 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031303A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EE0 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x1F2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031313A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1F93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031323A5249534B504F4F4C5F414C52454144595F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1155 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1FB6 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1FE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x2000 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2030 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2079 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x208D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x20B5 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2126 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x214A SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2169 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2186 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21DF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2207 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP1 KECCAK256 PUSH1 0x9 DUP2 ADD SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH2 0x2286 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032363A5249534B504F4F4C5F49445F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x22DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032373A4341504954414C5F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO PUSH2 0x233A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032383A4C4F434B45445F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F4C4F57 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x8 ADD SLOAD LT ISZERO PUSH2 0x238E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032393A42414C414E43455F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23A2 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP8 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23BD SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP8 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23D8 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP3 ADD SSTORE PUSH1 0x0 PUSH2 0x23EE DUP5 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x412AC483 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x82558906 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x243A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x244E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24E0 SWAP2 SWAP1 PUSH2 0x2AB4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x25B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034353A5249534B504F4F4C5F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x1D00 DUP2 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1D00 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x285D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1564 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2658 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x266D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x269F PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x26D1 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x297A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x29C9 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2750 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2764 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2788 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x27E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034363A434F4D504F4E454E545F4E4F545F5249534B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1413D3D3 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2825 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2839 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D00 SWAP2 SWAP1 PUSH2 0x2AB4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x2970 JUMPI PUSH1 0x0 PUSH2 0x2881 PUSH1 0x1 DUP4 PUSH2 0x2FBC JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2895 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x2916 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x28C3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x28F4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x2935 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x29C1 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1564 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x29EE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A11 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A2B JUMPI PUSH2 0x2A2B PUSH2 0x2FE9 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x2A3F PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH2 0x2F34 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP6 DUP3 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x2A52 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2A6F JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP3 DUP3 ADD DUP5 ADD MSTORE DUP3 ADD PUSH2 0x2A54 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2A7F JUMPI DUP5 DUP4 DUP6 DUP5 ADD ADD MSTORE JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AA9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1D00 DUP2 PUSH2 0x2FFF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AC5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1D00 DUP2 PUSH2 0x2FFF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AE1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1D00 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B01 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B1A JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B3A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1D00 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B59 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2B70 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2B83 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2B8D PUSH1 0xC0 PUSH2 0x2F34 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x2B9B JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BC4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2BD0 DUP8 DUP3 DUP7 ADD PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C07 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C1E JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2C31 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2C3B PUSH1 0xC0 PUSH2 0x2F34 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2C46 DUP2 PUSH2 0x2FFF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2C5E PUSH1 0x40 DUP5 ADD PUSH2 0x2A89 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BC4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C87 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2C90 DUP2 PUSH2 0x2F34 JUMP JUMPDEST SWAP1 POP PUSH2 0x2C9B DUP4 PUSH2 0x2A89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2D10 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2D22 DUP2 PUSH2 0x2FFF JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x2D32 DUP2 PUSH2 0x2FFF JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B1A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030343A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030333A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030323A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH2 0x160 DUP4 ADD SWAP2 PUSH2 0x2EBC SWAP1 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2ED7 PUSH1 0x40 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2F5D JUMPI PUSH2 0x2F5D PUSH2 0x2FE9 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2F78 JUMPI PUSH2 0x2F78 PUSH2 0x2FD3 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2F98 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2FB7 JUMPI PUSH2 0x2FB7 PUSH2 0x2FD3 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2FCE JUMPI PUSH2 0x2FCE PUSH2 0x2FD3 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3014 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0xBF 0xFC 0xC2 PUSH23 0xE53BE86521CFBD777E61C2FEECB4D34921B699FF2B261 0xB3 0xD0 0xA6 0x21 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2976:14040:78:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;2976:14040:78;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;2976:14040:78;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:24133:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"77:655:103","statements":[{"body":{"nodeType":"YulBlock","src":"126:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"135:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"142:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"128:6:103"},"nodeType":"YulFunctionCall","src":"128:20:103"},"nodeType":"YulExpressionStatement","src":"128:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"113:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"120:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"90:6:103"},"nodeType":"YulFunctionCall","src":"90:35:103"},"nodeType":"YulIf","src":"87:2:103"},{"nodeType":"YulVariableDeclaration","src":"159:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"175:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"169:5:103"},"nodeType":"YulFunctionCall","src":"169:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"163:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"221:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"223:16:103"},"nodeType":"YulFunctionCall","src":"223:18:103"},"nodeType":"YulExpressionStatement","src":"223:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"197:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"201:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"194:2:103"},"nodeType":"YulFunctionCall","src":"194:26:103"},"nodeType":"YulIf","src":"191:2:103"},{"nodeType":"YulVariableDeclaration","src":"252:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"262:4:103","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"256:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"275:68:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"318:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"322:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"314:3:103"},"nodeType":"YulFunctionCall","src":"314:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"333:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"329:3:103"},"nodeType":"YulFunctionCall","src":"329:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"310:3:103"},"nodeType":"YulFunctionCall","src":"310:27:103"},{"name":"_2","nodeType":"YulIdentifier","src":"339:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"306:3:103"},"nodeType":"YulFunctionCall","src":"306:36:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"290:15:103"},"nodeType":"YulFunctionCall","src":"290:53:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"279:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"359:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"368:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"352:6:103"},"nodeType":"YulFunctionCall","src":"352:19:103"},"nodeType":"YulExpressionStatement","src":"352:19:103"},{"body":{"nodeType":"YulBlock","src":"417:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"426:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"433:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"419:6:103"},"nodeType":"YulFunctionCall","src":"419:20:103"},"nodeType":"YulExpressionStatement","src":"419:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"394:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"402:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"390:3:103"},"nodeType":"YulFunctionCall","src":"390:15:103"},{"name":"_2","nodeType":"YulIdentifier","src":"407:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"386:3:103"},"nodeType":"YulFunctionCall","src":"386:24:103"},{"name":"end","nodeType":"YulIdentifier","src":"412:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"383:2:103"},"nodeType":"YulFunctionCall","src":"383:33:103"},"nodeType":"YulIf","src":"380:2:103"},{"nodeType":"YulVariableDeclaration","src":"450:14:103","value":{"name":"array","nodeType":"YulIdentifier","src":"459:5:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"454:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"519:88:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"548:7:103"},{"name":"i","nodeType":"YulIdentifier","src":"557:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"544:3:103"},"nodeType":"YulFunctionCall","src":"544:15:103"},{"name":"_2","nodeType":"YulIdentifier","src":"561:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"540:3:103"},"nodeType":"YulFunctionCall","src":"540:24:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"580:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"588:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"576:3:103"},"nodeType":"YulFunctionCall","src":"576:14:103"},{"name":"_2","nodeType":"YulIdentifier","src":"592:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"572:3:103"},"nodeType":"YulFunctionCall","src":"572:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"566:5:103"},"nodeType":"YulFunctionCall","src":"566:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"533:6:103"},"nodeType":"YulFunctionCall","src":"533:64:103"},"nodeType":"YulExpressionStatement","src":"533:64:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"484:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"487:2:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"481:2:103"},"nodeType":"YulFunctionCall","src":"481:9:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"491:19:103","statements":[{"nodeType":"YulAssignment","src":"493:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"502:1:103"},{"name":"_2","nodeType":"YulIdentifier","src":"505:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:103"},"nodeType":"YulFunctionCall","src":"498:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"493:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"477:3:103","statements":[]},"src":"473:134:103"},{"body":{"nodeType":"YulBlock","src":"637:64:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"666:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"675:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"662:3:103"},"nodeType":"YulFunctionCall","src":"662:16:103"},{"name":"_2","nodeType":"YulIdentifier","src":"680:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"658:3:103"},"nodeType":"YulFunctionCall","src":"658:25:103"},{"name":"array","nodeType":"YulIdentifier","src":"685:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"651:6:103"},"nodeType":"YulFunctionCall","src":"651:40:103"},"nodeType":"YulExpressionStatement","src":"651:40:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"622:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"625:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"619:2:103"},"nodeType":"YulFunctionCall","src":"619:9:103"},"nodeType":"YulIf","src":"616:2:103"},{"nodeType":"YulAssignment","src":"710:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"719:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"710:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"51:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"59:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"67:5:103","type":""}],"src":"14:718:103"},{"body":{"nodeType":"YulBlock","src":"810:87:103","statements":[{"nodeType":"YulAssignment","src":"820:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"829:5:103"},"nodeType":"YulFunctionCall","src":"829:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"820:5:103"}]},{"body":{"nodeType":"YulBlock","src":"875:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"884:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"887:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"877:6:103"},"nodeType":"YulFunctionCall","src":"877:12:103"},"nodeType":"YulExpressionStatement","src":"877:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"864:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"871:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"861:2:103"},"nodeType":"YulFunctionCall","src":"861:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"854:6:103"},"nodeType":"YulFunctionCall","src":"854:20:103"},"nodeType":"YulIf","src":"851:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"789:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"800:5:103","type":""}],"src":"737:160:103"},{"body":{"nodeType":"YulBlock","src":"972:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1018:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1027:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1035:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1020:6:103"},"nodeType":"YulFunctionCall","src":"1020:22:103"},"nodeType":"YulExpressionStatement","src":"1020:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"993:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1002:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"989:3:103"},"nodeType":"YulFunctionCall","src":"989:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1014:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"985:3:103"},"nodeType":"YulFunctionCall","src":"985:32:103"},"nodeType":"YulIf","src":"982:2:103"},{"nodeType":"YulVariableDeclaration","src":"1053:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1079:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1066:12:103"},"nodeType":"YulFunctionCall","src":"1066:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1057:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1123:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1098:24:103"},"nodeType":"YulFunctionCall","src":"1098:31:103"},"nodeType":"YulExpressionStatement","src":"1098:31:103"},{"nodeType":"YulAssignment","src":"1138:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1148:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1138:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"938:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"949:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"961:6:103","type":""}],"src":"902:257:103"},{"body":{"nodeType":"YulBlock","src":"1245:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1291:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1300:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1308:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1293:6:103"},"nodeType":"YulFunctionCall","src":"1293:22:103"},"nodeType":"YulExpressionStatement","src":"1293:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1266:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1275:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1262:3:103"},"nodeType":"YulFunctionCall","src":"1262:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1287:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1258:3:103"},"nodeType":"YulFunctionCall","src":"1258:32:103"},"nodeType":"YulIf","src":"1255:2:103"},{"nodeType":"YulVariableDeclaration","src":"1326:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1345:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1339:5:103"},"nodeType":"YulFunctionCall","src":"1339:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1330:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1389:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1364:24:103"},"nodeType":"YulFunctionCall","src":"1364:31:103"},"nodeType":"YulExpressionStatement","src":"1364:31:103"},{"nodeType":"YulAssignment","src":"1404:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1414:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1404:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1211:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1222:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1234:6:103","type":""}],"src":"1164:261:103"},{"body":{"nodeType":"YulBlock","src":"1508:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1554:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1563:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1571:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1556:6:103"},"nodeType":"YulFunctionCall","src":"1556:22:103"},"nodeType":"YulExpressionStatement","src":"1556:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1529:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1538:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1525:3:103"},"nodeType":"YulFunctionCall","src":"1525:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1550:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1521:3:103"},"nodeType":"YulFunctionCall","src":"1521:32:103"},"nodeType":"YulIf","src":"1518:2:103"},{"nodeType":"YulVariableDeclaration","src":"1589:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1608:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1602:5:103"},"nodeType":"YulFunctionCall","src":"1602:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1593:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1671:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1680:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1688:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1673:6:103"},"nodeType":"YulFunctionCall","src":"1673:22:103"},"nodeType":"YulExpressionStatement","src":"1673:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1640:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1661:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1654:6:103"},"nodeType":"YulFunctionCall","src":"1654:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1647:6:103"},"nodeType":"YulFunctionCall","src":"1647:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1637:2:103"},"nodeType":"YulFunctionCall","src":"1637:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1630:6:103"},"nodeType":"YulFunctionCall","src":"1630:40:103"},"nodeType":"YulIf","src":"1627:2:103"},{"nodeType":"YulAssignment","src":"1706:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1716:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1706:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1474:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1485:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1497:6:103","type":""}],"src":"1430:297:103"},{"body":{"nodeType":"YulBlock","src":"1802:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1848:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1857:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1865:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1850:6:103"},"nodeType":"YulFunctionCall","src":"1850:22:103"},"nodeType":"YulExpressionStatement","src":"1850:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1823:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1832:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1819:3:103"},"nodeType":"YulFunctionCall","src":"1819:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1815:3:103"},"nodeType":"YulFunctionCall","src":"1815:32:103"},"nodeType":"YulIf","src":"1812:2:103"},{"nodeType":"YulAssignment","src":"1883:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1906:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1893:12:103"},"nodeType":"YulFunctionCall","src":"1893:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1883:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1768:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1779:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1791:6:103","type":""}],"src":"1732:190:103"},{"body":{"nodeType":"YulBlock","src":"2014:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2060:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2069:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2077:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2062:6:103"},"nodeType":"YulFunctionCall","src":"2062:22:103"},"nodeType":"YulExpressionStatement","src":"2062:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2035:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2044:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2031:3:103"},"nodeType":"YulFunctionCall","src":"2031:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2056:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2027:3:103"},"nodeType":"YulFunctionCall","src":"2027:32:103"},"nodeType":"YulIf","src":"2024:2:103"},{"nodeType":"YulAssignment","src":"2095:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2118:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2105:12:103"},"nodeType":"YulFunctionCall","src":"2105:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2095:6:103"}]},{"nodeType":"YulAssignment","src":"2137:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2164:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2175:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2160:3:103"},"nodeType":"YulFunctionCall","src":"2160:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2147:12:103"},"nodeType":"YulFunctionCall","src":"2147:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2137:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1972:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1983:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1995:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2003:6:103","type":""}],"src":"1927:258:103"},{"body":{"nodeType":"YulBlock","src":"2290:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2336:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2345:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2353:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2338:6:103"},"nodeType":"YulFunctionCall","src":"2338:22:103"},"nodeType":"YulExpressionStatement","src":"2338:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2311:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2320:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2307:3:103"},"nodeType":"YulFunctionCall","src":"2307:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2332:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2303:3:103"},"nodeType":"YulFunctionCall","src":"2303:32:103"},"nodeType":"YulIf","src":"2300:2:103"},{"nodeType":"YulVariableDeclaration","src":"2371:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2390:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2384:5:103"},"nodeType":"YulFunctionCall","src":"2384:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2375:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2434:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2409:24:103"},"nodeType":"YulFunctionCall","src":"2409:31:103"},"nodeType":"YulExpressionStatement","src":"2409:31:103"},{"nodeType":"YulAssignment","src":"2449:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2459:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2449:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2256:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2267:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2279:6:103","type":""}],"src":"2190:280:103"},{"body":{"nodeType":"YulBlock","src":"2575:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"2621:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2630:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2638:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2623:6:103"},"nodeType":"YulFunctionCall","src":"2623:22:103"},"nodeType":"YulExpressionStatement","src":"2623:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2596:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2605:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2592:3:103"},"nodeType":"YulFunctionCall","src":"2592:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2617:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2588:3:103"},"nodeType":"YulFunctionCall","src":"2588:32:103"},"nodeType":"YulIf","src":"2585:2:103"},{"nodeType":"YulVariableDeclaration","src":"2656:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2669:5:103"},"nodeType":"YulFunctionCall","src":"2669:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2660:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2718:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2727:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2735:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2720:6:103"},"nodeType":"YulFunctionCall","src":"2720:22:103"},"nodeType":"YulExpressionStatement","src":"2720:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2707:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2714:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2704:2:103"},"nodeType":"YulFunctionCall","src":"2704:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2697:6:103"},"nodeType":"YulFunctionCall","src":"2697:20:103"},"nodeType":"YulIf","src":"2694:2:103"},{"nodeType":"YulAssignment","src":"2753:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2763:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2753:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2541:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2552:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2564:6:103","type":""}],"src":"2475:299:103"},{"body":{"nodeType":"YulBlock","src":"2889:900:103","statements":[{"body":{"nodeType":"YulBlock","src":"2935:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2944:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2952:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2937:6:103"},"nodeType":"YulFunctionCall","src":"2937:22:103"},"nodeType":"YulExpressionStatement","src":"2937:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2910:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2919:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2906:3:103"},"nodeType":"YulFunctionCall","src":"2906:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2931:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2902:3:103"},"nodeType":"YulFunctionCall","src":"2902:32:103"},"nodeType":"YulIf","src":"2899:2:103"},{"nodeType":"YulVariableDeclaration","src":"2970:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2990:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2984:5:103"},"nodeType":"YulFunctionCall","src":"2984:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2974:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3009:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3019:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3013:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3064:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3073:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3081:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3066:6:103"},"nodeType":"YulFunctionCall","src":"3066:22:103"},"nodeType":"YulExpressionStatement","src":"3066:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3052:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3060:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3049:2:103"},"nodeType":"YulFunctionCall","src":"3049:14:103"},"nodeType":"YulIf","src":"3046:2:103"},{"nodeType":"YulVariableDeclaration","src":"3099:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3113:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3124:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3109:3:103"},"nodeType":"YulFunctionCall","src":"3109:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3103:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3171:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3180:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3188:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3173:6:103"},"nodeType":"YulFunctionCall","src":"3173:22:103"},"nodeType":"YulExpressionStatement","src":"3173:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3151:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"3160:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3165:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3143:3:103"},"nodeType":"YulFunctionCall","src":"3143:27:103"},"nodeType":"YulIf","src":"3140:2:103"},{"nodeType":"YulVariableDeclaration","src":"3206:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3235:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3219:15:103"},"nodeType":"YulFunctionCall","src":"3219:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3210:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3249:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3270:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3264:5:103"},"nodeType":"YulFunctionCall","src":"3264:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"3253:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3310:6:103"},"nodeType":"YulFunctionCall","src":"3310:22:103"},"nodeType":"YulExpressionStatement","src":"3310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3295:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"3304:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3292:2:103"},"nodeType":"YulFunctionCall","src":"3292:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3285:6:103"},"nodeType":"YulFunctionCall","src":"3285:22:103"},"nodeType":"YulIf","src":"3282:2:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3350:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"3357:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3343:6:103"},"nodeType":"YulFunctionCall","src":"3343:22:103"},"nodeType":"YulExpressionStatement","src":"3343:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3385:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3392:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3381:3:103"},"nodeType":"YulFunctionCall","src":"3381:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3407:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3411:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3403:3:103"},"nodeType":"YulFunctionCall","src":"3403:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3397:5:103"},"nodeType":"YulFunctionCall","src":"3397:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3374:6:103"},"nodeType":"YulFunctionCall","src":"3374:42:103"},"nodeType":"YulExpressionStatement","src":"3374:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3436:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3443:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3432:3:103"},"nodeType":"YulFunctionCall","src":"3432:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3458:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3462:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3454:3:103"},"nodeType":"YulFunctionCall","src":"3454:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3448:5:103"},"nodeType":"YulFunctionCall","src":"3448:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3425:6:103"},"nodeType":"YulFunctionCall","src":"3425:42:103"},"nodeType":"YulExpressionStatement","src":"3425:42:103"},{"nodeType":"YulVariableDeclaration","src":"3476:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3502:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3506:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3498:3:103"},"nodeType":"YulFunctionCall","src":"3498:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3492:5:103"},"nodeType":"YulFunctionCall","src":"3492:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3480:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3539:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3548:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3556:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3541:6:103"},"nodeType":"YulFunctionCall","src":"3541:22:103"},"nodeType":"YulExpressionStatement","src":"3541:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3525:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3535:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3522:2:103"},"nodeType":"YulFunctionCall","src":"3522:16:103"},"nodeType":"YulIf","src":"3519:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3585:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3592:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3581:3:103"},"nodeType":"YulFunctionCall","src":"3581:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3629:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3633:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3625:3:103"},"nodeType":"YulFunctionCall","src":"3625:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3644:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"3597:27:103"},"nodeType":"YulFunctionCall","src":"3597:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3574:6:103"},"nodeType":"YulFunctionCall","src":"3574:79:103"},"nodeType":"YulExpressionStatement","src":"3574:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3673:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3680:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3669:3:103"},"nodeType":"YulFunctionCall","src":"3669:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3696:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3700:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3692:3:103"},"nodeType":"YulFunctionCall","src":"3692:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3686:5:103"},"nodeType":"YulFunctionCall","src":"3686:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3662:6:103"},"nodeType":"YulFunctionCall","src":"3662:44:103"},"nodeType":"YulExpressionStatement","src":"3662:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3726:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3733:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3722:3:103"},"nodeType":"YulFunctionCall","src":"3722:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3749:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3753:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3745:3:103"},"nodeType":"YulFunctionCall","src":"3745:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3739:5:103"},"nodeType":"YulFunctionCall","src":"3739:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3715:6:103"},"nodeType":"YulFunctionCall","src":"3715:44:103"},"nodeType":"YulExpressionStatement","src":"3715:44:103"},{"nodeType":"YulAssignment","src":"3768:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3778:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3768:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2855:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2866:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2878:6:103","type":""}],"src":"2779:1010:103"},{"body":{"nodeType":"YulBlock","src":"3901:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"3947:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3956:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3964:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3949:6:103"},"nodeType":"YulFunctionCall","src":"3949:22:103"},"nodeType":"YulExpressionStatement","src":"3949:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3922:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3931:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3918:3:103"},"nodeType":"YulFunctionCall","src":"3918:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3943:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3914:3:103"},"nodeType":"YulFunctionCall","src":"3914:32:103"},"nodeType":"YulIf","src":"3911:2:103"},{"nodeType":"YulVariableDeclaration","src":"3982:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4002:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3996:5:103"},"nodeType":"YulFunctionCall","src":"3996:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3986:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4021:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4031:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4025:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4076:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4085:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4093:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4078:6:103"},"nodeType":"YulFunctionCall","src":"4078:22:103"},"nodeType":"YulExpressionStatement","src":"4078:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4064:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4072:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4061:2:103"},"nodeType":"YulFunctionCall","src":"4061:14:103"},"nodeType":"YulIf","src":"4058:2:103"},{"nodeType":"YulVariableDeclaration","src":"4111:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4125:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4136:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4121:3:103"},"nodeType":"YulFunctionCall","src":"4121:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4115:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4183:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4192:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4200:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4185:6:103"},"nodeType":"YulFunctionCall","src":"4185:22:103"},"nodeType":"YulExpressionStatement","src":"4185:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4163:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4172:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4159:3:103"},"nodeType":"YulFunctionCall","src":"4159:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4177:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4155:3:103"},"nodeType":"YulFunctionCall","src":"4155:27:103"},"nodeType":"YulIf","src":"4152:2:103"},{"nodeType":"YulVariableDeclaration","src":"4218:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4247:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4231:15:103"},"nodeType":"YulFunctionCall","src":"4231:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4222:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4261:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4282:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4276:5:103"},"nodeType":"YulFunctionCall","src":"4276:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4265:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4319:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4294:24:103"},"nodeType":"YulFunctionCall","src":"4294:33:103"},"nodeType":"YulExpressionStatement","src":"4294:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4343:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"4350:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4336:6:103"},"nodeType":"YulFunctionCall","src":"4336:22:103"},"nodeType":"YulExpressionStatement","src":"4336:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4378:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4385:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4374:3:103"},"nodeType":"YulFunctionCall","src":"4374:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4400:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4396:3:103"},"nodeType":"YulFunctionCall","src":"4396:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4390:5:103"},"nodeType":"YulFunctionCall","src":"4390:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4367:6:103"},"nodeType":"YulFunctionCall","src":"4367:42:103"},"nodeType":"YulExpressionStatement","src":"4367:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4429:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4436:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4425:3:103"},"nodeType":"YulFunctionCall","src":"4425:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4488:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4492:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4484:3:103"},"nodeType":"YulFunctionCall","src":"4484:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"4441:42:103"},"nodeType":"YulFunctionCall","src":"4441:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4418:6:103"},"nodeType":"YulFunctionCall","src":"4418:79:103"},"nodeType":"YulExpressionStatement","src":"4418:79:103"},{"nodeType":"YulVariableDeclaration","src":"4506:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4532:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4536:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4528:3:103"},"nodeType":"YulFunctionCall","src":"4528:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4522:5:103"},"nodeType":"YulFunctionCall","src":"4522:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4510:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4569:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4578:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4586:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4571:6:103"},"nodeType":"YulFunctionCall","src":"4571:22:103"},"nodeType":"YulExpressionStatement","src":"4571:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4555:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4565:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4552:2:103"},"nodeType":"YulFunctionCall","src":"4552:16:103"},"nodeType":"YulIf","src":"4549:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4615:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4622:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4611:3:103"},"nodeType":"YulFunctionCall","src":"4611:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4659:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4663:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4655:3:103"},"nodeType":"YulFunctionCall","src":"4655:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4674:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"4627:27:103"},"nodeType":"YulFunctionCall","src":"4627:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4604:6:103"},"nodeType":"YulFunctionCall","src":"4604:79:103"},"nodeType":"YulExpressionStatement","src":"4604:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4703:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4710:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4699:3:103"},"nodeType":"YulFunctionCall","src":"4699:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4726:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4730:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4722:3:103"},"nodeType":"YulFunctionCall","src":"4722:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4716:5:103"},"nodeType":"YulFunctionCall","src":"4716:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4692:6:103"},"nodeType":"YulFunctionCall","src":"4692:44:103"},"nodeType":"YulExpressionStatement","src":"4692:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4756:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4763:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4752:3:103"},"nodeType":"YulFunctionCall","src":"4752:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4779:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4783:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4775:3:103"},"nodeType":"YulFunctionCall","src":"4775:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4769:5:103"},"nodeType":"YulFunctionCall","src":"4769:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4745:6:103"},"nodeType":"YulFunctionCall","src":"4745:44:103"},"nodeType":"YulExpressionStatement","src":"4745:44:103"},{"nodeType":"YulAssignment","src":"4798:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4808:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4798:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3867:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3878:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3890:6:103","type":""}],"src":"3794:1025:103"},{"body":{"nodeType":"YulBlock","src":"4929:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4939:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4949:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4943:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4997:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5006:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5014:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4999:6:103"},"nodeType":"YulFunctionCall","src":"4999:22:103"},"nodeType":"YulExpressionStatement","src":"4999:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4972:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4981:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4968:3:103"},"nodeType":"YulFunctionCall","src":"4968:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4993:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4964:3:103"},"nodeType":"YulFunctionCall","src":"4964:32:103"},"nodeType":"YulIf","src":"4961:2:103"},{"nodeType":"YulVariableDeclaration","src":"5032:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5061:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5045:15:103"},"nodeType":"YulFunctionCall","src":"5045:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5036:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5080:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5130:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"5087:42:103"},"nodeType":"YulFunctionCall","src":"5087:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5073:6:103"},"nodeType":"YulFunctionCall","src":"5073:68:103"},"nodeType":"YulExpressionStatement","src":"5073:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5161:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5168:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5157:3:103"},"nodeType":"YulFunctionCall","src":"5157:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5183:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5194:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5179:3:103"},"nodeType":"YulFunctionCall","src":"5179:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5173:5:103"},"nodeType":"YulFunctionCall","src":"5173:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5150:6:103"},"nodeType":"YulFunctionCall","src":"5150:49:103"},"nodeType":"YulExpressionStatement","src":"5150:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5219:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5226:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5215:3:103"},"nodeType":"YulFunctionCall","src":"5215:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5252:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5237:3:103"},"nodeType":"YulFunctionCall","src":"5237:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5231:5:103"},"nodeType":"YulFunctionCall","src":"5231:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5208:6:103"},"nodeType":"YulFunctionCall","src":"5208:49:103"},"nodeType":"YulExpressionStatement","src":"5208:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5277:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5284:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5273:3:103"},"nodeType":"YulFunctionCall","src":"5273:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5299:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5310:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5295:3:103"},"nodeType":"YulFunctionCall","src":"5295:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5289:5:103"},"nodeType":"YulFunctionCall","src":"5289:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5266:6:103"},"nodeType":"YulFunctionCall","src":"5266:49:103"},"nodeType":"YulExpressionStatement","src":"5266:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5335:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5342:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5331:3:103"},"nodeType":"YulFunctionCall","src":"5331:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5358:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5369:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5354:3:103"},"nodeType":"YulFunctionCall","src":"5354:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5348:5:103"},"nodeType":"YulFunctionCall","src":"5348:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5324:6:103"},"nodeType":"YulFunctionCall","src":"5324:51:103"},"nodeType":"YulExpressionStatement","src":"5324:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5395:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5402:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5391:3:103"},"nodeType":"YulFunctionCall","src":"5391:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5418:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5429:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5414:3:103"},"nodeType":"YulFunctionCall","src":"5414:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5408:5:103"},"nodeType":"YulFunctionCall","src":"5408:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5384:6:103"},"nodeType":"YulFunctionCall","src":"5384:51:103"},"nodeType":"YulExpressionStatement","src":"5384:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5455:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5462:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5451:3:103"},"nodeType":"YulFunctionCall","src":"5451:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5478:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5489:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5474:3:103"},"nodeType":"YulFunctionCall","src":"5474:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5468:5:103"},"nodeType":"YulFunctionCall","src":"5468:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5444:6:103"},"nodeType":"YulFunctionCall","src":"5444:51:103"},"nodeType":"YulExpressionStatement","src":"5444:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5515:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5522:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5511:3:103"},"nodeType":"YulFunctionCall","src":"5511:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5538:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5549:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5534:3:103"},"nodeType":"YulFunctionCall","src":"5534:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5528:5:103"},"nodeType":"YulFunctionCall","src":"5528:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5504:6:103"},"nodeType":"YulFunctionCall","src":"5504:51:103"},"nodeType":"YulExpressionStatement","src":"5504:51:103"},{"nodeType":"YulVariableDeclaration","src":"5564:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5574:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5568:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5597:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5604:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5593:3:103"},"nodeType":"YulFunctionCall","src":"5593:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5619:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5630:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5615:3:103"},"nodeType":"YulFunctionCall","src":"5615:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5609:5:103"},"nodeType":"YulFunctionCall","src":"5609:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:103"},"nodeType":"YulFunctionCall","src":"5586:49:103"},"nodeType":"YulExpressionStatement","src":"5586:49:103"},{"nodeType":"YulAssignment","src":"5644:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5654:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5644:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4895:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4906:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4918:6:103","type":""}],"src":"4824:841:103"},{"body":{"nodeType":"YulBlock","src":"5740:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"5786:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5795:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5803:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5788:6:103"},"nodeType":"YulFunctionCall","src":"5788:22:103"},"nodeType":"YulExpressionStatement","src":"5788:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5761:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5770:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5757:3:103"},"nodeType":"YulFunctionCall","src":"5757:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5782:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5753:3:103"},"nodeType":"YulFunctionCall","src":"5753:32:103"},"nodeType":"YulIf","src":"5750:2:103"},{"nodeType":"YulAssignment","src":"5821:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5844:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5831:12:103"},"nodeType":"YulFunctionCall","src":"5831:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5821:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5706:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5717:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5729:6:103","type":""}],"src":"5670:190:103"},{"body":{"nodeType":"YulBlock","src":"6003:466:103","statements":[{"body":{"nodeType":"YulBlock","src":"6050:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6059:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6067:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6052:6:103"},"nodeType":"YulFunctionCall","src":"6052:22:103"},"nodeType":"YulExpressionStatement","src":"6052:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6024:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6033:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6020:3:103"},"nodeType":"YulFunctionCall","src":"6020:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6045:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6016:3:103"},"nodeType":"YulFunctionCall","src":"6016:33:103"},"nodeType":"YulIf","src":"6013:2:103"},{"nodeType":"YulAssignment","src":"6085:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6108:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6095:12:103"},"nodeType":"YulFunctionCall","src":"6095:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6085:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6127:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6157:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6168:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6153:3:103"},"nodeType":"YulFunctionCall","src":"6153:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6140:12:103"},"nodeType":"YulFunctionCall","src":"6140:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6131:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6206:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6181:24:103"},"nodeType":"YulFunctionCall","src":"6181:31:103"},"nodeType":"YulExpressionStatement","src":"6181:31:103"},{"nodeType":"YulAssignment","src":"6221:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6231:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6221:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6245:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6277:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6288:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6273:3:103"},"nodeType":"YulFunctionCall","src":"6273:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6260:12:103"},"nodeType":"YulFunctionCall","src":"6260:32:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6249:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6326:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6301:24:103"},"nodeType":"YulFunctionCall","src":"6301:33:103"},"nodeType":"YulExpressionStatement","src":"6301:33:103"},{"nodeType":"YulAssignment","src":"6343:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6353:7:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6343:6:103"}]},{"nodeType":"YulAssignment","src":"6369:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6407:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6392:3:103"},"nodeType":"YulFunctionCall","src":"6392:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6379:12:103"},"nodeType":"YulFunctionCall","src":"6379:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6369:6:103"}]},{"nodeType":"YulAssignment","src":"6420:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6447:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6458:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6443:3:103"},"nodeType":"YulFunctionCall","src":"6443:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6430:12:103"},"nodeType":"YulFunctionCall","src":"6430:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6420:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_addresst_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5937:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5948:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5960:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5968:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5976:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5984:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5992:6:103","type":""}],"src":"5865:604:103"},{"body":{"nodeType":"YulBlock","src":"6561:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"6607:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6616:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6624:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6609:6:103"},"nodeType":"YulFunctionCall","src":"6609:22:103"},"nodeType":"YulExpressionStatement","src":"6609:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6582:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6591:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6578:3:103"},"nodeType":"YulFunctionCall","src":"6578:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6603:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6574:3:103"},"nodeType":"YulFunctionCall","src":"6574:32:103"},"nodeType":"YulIf","src":"6571:2:103"},{"nodeType":"YulAssignment","src":"6642:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6665:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6652:12:103"},"nodeType":"YulFunctionCall","src":"6652:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6642:6:103"}]},{"nodeType":"YulAssignment","src":"6684:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6711:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6722:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6707:3:103"},"nodeType":"YulFunctionCall","src":"6707:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6694:12:103"},"nodeType":"YulFunctionCall","src":"6694:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6684:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6519:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6530:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6542:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6550:6:103","type":""}],"src":"6474:258:103"},{"body":{"nodeType":"YulBlock","src":"6781:60:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6798:3:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6807:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6822:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6827:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6818:3:103"},"nodeType":"YulFunctionCall","src":"6818:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6831:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6814:3:103"},"nodeType":"YulFunctionCall","src":"6814:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6803:3:103"},"nodeType":"YulFunctionCall","src":"6803:31:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6791:6:103"},"nodeType":"YulFunctionCall","src":"6791:44:103"},"nodeType":"YulExpressionStatement","src":"6791:44:103"}]},"name":"abi_encode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6765:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6772:3:103","type":""}],"src":"6737:104:103"},{"body":{"nodeType":"YulBlock","src":"6941:92:103","statements":[{"nodeType":"YulAssignment","src":"6951:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6963:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6974:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6959:3:103"},"nodeType":"YulFunctionCall","src":"6959:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6951:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6993:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7018:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7011:6:103"},"nodeType":"YulFunctionCall","src":"7011:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7004:6:103"},"nodeType":"YulFunctionCall","src":"7004:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6986:6:103"},"nodeType":"YulFunctionCall","src":"6986:41:103"},"nodeType":"YulExpressionStatement","src":"6986:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6910:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6921:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6932:4:103","type":""}],"src":"6846:187:103"},{"body":{"nodeType":"YulBlock","src":"7139:76:103","statements":[{"nodeType":"YulAssignment","src":"7149:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7172:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7157:3:103"},"nodeType":"YulFunctionCall","src":"7157:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7149:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7191:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7202:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7184:6:103"},"nodeType":"YulFunctionCall","src":"7184:25:103"},"nodeType":"YulExpressionStatement","src":"7184:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7108:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7119:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7130:4:103","type":""}],"src":"7038:177:103"},{"body":{"nodeType":"YulBlock","src":"7349:119:103","statements":[{"nodeType":"YulAssignment","src":"7359:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7371:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7382:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7367:3:103"},"nodeType":"YulFunctionCall","src":"7367:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7359:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7401:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7412:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7394:6:103"},"nodeType":"YulFunctionCall","src":"7394:25:103"},"nodeType":"YulExpressionStatement","src":"7394:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7439:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7450:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7435:3:103"},"nodeType":"YulFunctionCall","src":"7435:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7455:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7428:6:103"},"nodeType":"YulFunctionCall","src":"7428:34:103"},"nodeType":"YulExpressionStatement","src":"7428:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7310:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7321:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7329:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7340:4:103","type":""}],"src":"7220:248:103"},{"body":{"nodeType":"YulBlock","src":"7630:162:103","statements":[{"nodeType":"YulAssignment","src":"7640:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7663:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7648:3:103"},"nodeType":"YulFunctionCall","src":"7648:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7640:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7682:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7693:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7675:6:103"},"nodeType":"YulFunctionCall","src":"7675:25:103"},"nodeType":"YulExpressionStatement","src":"7675:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7720:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7731:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7716:3:103"},"nodeType":"YulFunctionCall","src":"7716:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7736:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7709:6:103"},"nodeType":"YulFunctionCall","src":"7709:34:103"},"nodeType":"YulExpressionStatement","src":"7709:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7763:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7774:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7759:3:103"},"nodeType":"YulFunctionCall","src":"7759:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7779:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7752:6:103"},"nodeType":"YulFunctionCall","src":"7752:34:103"},"nodeType":"YulExpressionStatement","src":"7752:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7583:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7594:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7602:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7610:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7621:4:103","type":""}],"src":"7473:319:103"},{"body":{"nodeType":"YulBlock","src":"7904:87:103","statements":[{"nodeType":"YulAssignment","src":"7914:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7937:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7922:3:103"},"nodeType":"YulFunctionCall","src":"7922:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7914:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7956:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7971:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7979:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7967:3:103"},"nodeType":"YulFunctionCall","src":"7967:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7949:6:103"},"nodeType":"YulFunctionCall","src":"7949:36:103"},"nodeType":"YulExpressionStatement","src":"7949:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7873:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7884:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7895:4:103","type":""}],"src":"7797:194:103"},{"body":{"nodeType":"YulBlock","src":"8170:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8187:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8198:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8180:6:103"},"nodeType":"YulFunctionCall","src":"8180:21:103"},"nodeType":"YulExpressionStatement","src":"8180:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8221:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8232:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8217:3:103"},"nodeType":"YulFunctionCall","src":"8217:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8237:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8210:6:103"},"nodeType":"YulFunctionCall","src":"8210:30:103"},"nodeType":"YulExpressionStatement","src":"8210:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8260:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8271:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8256:3:103"},"nodeType":"YulFunctionCall","src":"8256:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8276:34:103","type":"","value":"ERROR:POL-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8249:6:103"},"nodeType":"YulFunctionCall","src":"8249:62:103"},"nodeType":"YulExpressionStatement","src":"8249:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8331:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8342:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8327:3:103"},"nodeType":"YulFunctionCall","src":"8327:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8347:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8320:6:103"},"nodeType":"YulFunctionCall","src":"8320:33:103"},"nodeType":"YulExpressionStatement","src":"8320:33:103"},{"nodeType":"YulAssignment","src":"8362:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8374:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8385:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8370:3:103"},"nodeType":"YulFunctionCall","src":"8370:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8362:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_01ba533ede5bc9857bd888044082beab7540e9985694ecf1b8f2420761091360__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8147:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8161:4:103","type":""}],"src":"7996:399:103"},{"body":{"nodeType":"YulBlock","src":"8574:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8591:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8602:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8584:6:103"},"nodeType":"YulFunctionCall","src":"8584:21:103"},"nodeType":"YulExpressionStatement","src":"8584:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8625:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8636:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8621:3:103"},"nodeType":"YulFunctionCall","src":"8621:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8641:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8614:6:103"},"nodeType":"YulFunctionCall","src":"8614:30:103"},"nodeType":"YulExpressionStatement","src":"8614:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8664:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8675:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8660:3:103"},"nodeType":"YulFunctionCall","src":"8660:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8680:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8653:6:103"},"nodeType":"YulFunctionCall","src":"8653:62:103"},"nodeType":"YulExpressionStatement","src":"8653:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8735:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8746:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8731:3:103"},"nodeType":"YulFunctionCall","src":"8731:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8751:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8724:6:103"},"nodeType":"YulFunctionCall","src":"8724:35:103"},"nodeType":"YulExpressionStatement","src":"8724:35:103"},{"nodeType":"YulAssignment","src":"8768:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8780:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8791:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8776:3:103"},"nodeType":"YulFunctionCall","src":"8776:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8768:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8551:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8565:4:103","type":""}],"src":"8400:401:103"},{"body":{"nodeType":"YulBlock","src":"8980:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8997:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9008:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8990:6:103"},"nodeType":"YulFunctionCall","src":"8990:21:103"},"nodeType":"YulExpressionStatement","src":"8990:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9031:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9042:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9027:3:103"},"nodeType":"YulFunctionCall","src":"9027:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9047:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9020:6:103"},"nodeType":"YulFunctionCall","src":"9020:30:103"},"nodeType":"YulExpressionStatement","src":"9020:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9070:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9081:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9066:3:103"},"nodeType":"YulFunctionCall","src":"9066:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9086:34:103","type":"","value":"ERROR:POL-009:SUM_OF_SUM_INSURED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9059:6:103"},"nodeType":"YulFunctionCall","src":"9059:62:103"},"nodeType":"YulExpressionStatement","src":"9059:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9152:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9137:3:103"},"nodeType":"YulFunctionCall","src":"9137:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9157:11:103","type":"","value":"_CAP_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9130:6:103"},"nodeType":"YulFunctionCall","src":"9130:39:103"},"nodeType":"YulExpressionStatement","src":"9130:39:103"},{"nodeType":"YulAssignment","src":"9178:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9190:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9201:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9186:3:103"},"nodeType":"YulFunctionCall","src":"9186:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9178:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_153cdd57b6a54a67c3edead82db53ff9ca80c0d53800cc6e08d94bcd48709063__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8957:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8971:4:103","type":""}],"src":"8806:405:103"},{"body":{"nodeType":"YulBlock","src":"9390:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9407:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9418:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9400:6:103"},"nodeType":"YulFunctionCall","src":"9400:21:103"},"nodeType":"YulExpressionStatement","src":"9400:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9441:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9452:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9437:3:103"},"nodeType":"YulFunctionCall","src":"9437:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9457:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9430:6:103"},"nodeType":"YulFunctionCall","src":"9430:30:103"},"nodeType":"YulExpressionStatement","src":"9430:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9480:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9491:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9476:3:103"},"nodeType":"YulFunctionCall","src":"9476:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9496:34:103","type":"","value":"ERROR:POL-004:RISKPOOL_NOT_ACTIV"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9469:6:103"},"nodeType":"YulFunctionCall","src":"9469:62:103"},"nodeType":"YulExpressionStatement","src":"9469:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9551:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9562:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9547:3:103"},"nodeType":"YulFunctionCall","src":"9547:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9567:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9540:6:103"},"nodeType":"YulFunctionCall","src":"9540:31:103"},"nodeType":"YulExpressionStatement","src":"9540:31:103"},{"nodeType":"YulAssignment","src":"9580:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9603:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9588:3:103"},"nodeType":"YulFunctionCall","src":"9588:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9580:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1b7f0a4d9ff2dc985060892cfa5d21ef1861aee5377df8478f07451d1c71c9a4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9367:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9381:4:103","type":""}],"src":"9216:397:103"},{"body":{"nodeType":"YulBlock","src":"9792:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9809:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9820:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9802:6:103"},"nodeType":"YulFunctionCall","src":"9802:21:103"},"nodeType":"YulExpressionStatement","src":"9802:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9854:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9839:3:103"},"nodeType":"YulFunctionCall","src":"9839:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9859:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9832:6:103"},"nodeType":"YulFunctionCall","src":"9832:30:103"},"nodeType":"YulExpressionStatement","src":"9832:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9882:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9893:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9878:3:103"},"nodeType":"YulFunctionCall","src":"9878:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9898:34:103","type":"","value":"ERROR:POL-022:RISKPOOL_SUM_INSUR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9871:6:103"},"nodeType":"YulFunctionCall","src":"9871:62:103"},"nodeType":"YulExpressionStatement","src":"9871:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9953:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9964:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9949:3:103"},"nodeType":"YulFunctionCall","src":"9949:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9969:17:103","type":"","value":"ED_CAP_EXCEEDED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9942:6:103"},"nodeType":"YulFunctionCall","src":"9942:45:103"},"nodeType":"YulExpressionStatement","src":"9942:45:103"},{"nodeType":"YulAssignment","src":"9996:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10008:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10019:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10004:3:103"},"nodeType":"YulFunctionCall","src":"10004:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9996:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1bc20430b5420212dd3a6e8be5f546e3de707484a8680f89c18cb18c351384cb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9769:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9783:4:103","type":""}],"src":"9618:411:103"},{"body":{"nodeType":"YulBlock","src":"10208:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10225:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10236:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10218:6:103"},"nodeType":"YulFunctionCall","src":"10218:21:103"},"nodeType":"YulExpressionStatement","src":"10218:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10259:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10270:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10255:3:103"},"nodeType":"YulFunctionCall","src":"10255:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10275:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10248:6:103"},"nodeType":"YulFunctionCall","src":"10248:30:103"},"nodeType":"YulExpressionStatement","src":"10248:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10298:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10309:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10294:3:103"},"nodeType":"YulFunctionCall","src":"10294:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10314:27:103","type":"","value":"ERROR:POL-010:NOT_PRODUCT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10287:6:103"},"nodeType":"YulFunctionCall","src":"10287:55:103"},"nodeType":"YulExpressionStatement","src":"10287:55:103"},{"nodeType":"YulAssignment","src":"10351:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10363:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10374:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10359:3:103"},"nodeType":"YulFunctionCall","src":"10359:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10351:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_21abf94b5548761de95d02f2a3d6e1d83d6d35330a6e30e85c122e0961c94723__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10185:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10199:4:103","type":""}],"src":"10034:349:103"},{"body":{"nodeType":"YulBlock","src":"10562:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10579:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10590:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10572:6:103"},"nodeType":"YulFunctionCall","src":"10572:21:103"},"nodeType":"YulExpressionStatement","src":"10572:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10613:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10624:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10609:3:103"},"nodeType":"YulFunctionCall","src":"10609:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10629:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10602:6:103"},"nodeType":"YulFunctionCall","src":"10602:30:103"},"nodeType":"YulExpressionStatement","src":"10602:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10663:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10648:3:103"},"nodeType":"YulFunctionCall","src":"10648:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10668:34:103","type":"","value":"ERROR:POL-044:BUNDLE_ID_NOT_IN_S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10641:6:103"},"nodeType":"YulFunctionCall","src":"10641:62:103"},"nodeType":"YulExpressionStatement","src":"10641:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10723:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10734:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10719:3:103"},"nodeType":"YulFunctionCall","src":"10719:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10739:4:103","type":"","value":"ET"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10712:6:103"},"nodeType":"YulFunctionCall","src":"10712:32:103"},"nodeType":"YulExpressionStatement","src":"10712:32:103"},{"nodeType":"YulAssignment","src":"10753:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10765:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10776:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10761:3:103"},"nodeType":"YulFunctionCall","src":"10761:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10753:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_25c96dd3fff47393c9641d7e3b8d6afd2344a8424f3becb7b10f61348f063fb8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10539:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10553:4:103","type":""}],"src":"10388:398:103"},{"body":{"nodeType":"YulBlock","src":"10965:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10993:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10975:6:103"},"nodeType":"YulFunctionCall","src":"10975:21:103"},"nodeType":"YulExpressionStatement","src":"10975:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11016:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11027:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11012:3:103"},"nodeType":"YulFunctionCall","src":"11012:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11032:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11005:6:103"},"nodeType":"YulFunctionCall","src":"11005:30:103"},"nodeType":"YulExpressionStatement","src":"11005:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11051:3:103"},"nodeType":"YulFunctionCall","src":"11051:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11071:34:103","type":"","value":"ERROR:POL-003:RISKPOOL_NOT_ACTIV"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11044:6:103"},"nodeType":"YulFunctionCall","src":"11044:62:103"},"nodeType":"YulExpressionStatement","src":"11044:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11126:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11137:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11122:3:103"},"nodeType":"YulFunctionCall","src":"11122:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11142:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11115:6:103"},"nodeType":"YulFunctionCall","src":"11115:31:103"},"nodeType":"YulExpressionStatement","src":"11115:31:103"},{"nodeType":"YulAssignment","src":"11155:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11167:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11178:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11163:3:103"},"nodeType":"YulFunctionCall","src":"11163:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11155:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2676f82624b5790964b977de4e2922d89874c40d9966c58f2ee005dc0bbd3479__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10942:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10956:4:103","type":""}],"src":"10791:397:103"},{"body":{"nodeType":"YulBlock","src":"11367:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11384:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11395:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11377:6:103"},"nodeType":"YulFunctionCall","src":"11377:21:103"},"nodeType":"YulExpressionStatement","src":"11377:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11418:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11429:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11414:3:103"},"nodeType":"YulFunctionCall","src":"11414:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11434:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11407:6:103"},"nodeType":"YulFunctionCall","src":"11407:30:103"},"nodeType":"YulExpressionStatement","src":"11407:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11457:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11468:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11453:3:103"},"nodeType":"YulFunctionCall","src":"11453:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11473:34:103","type":"","value":"ERROR:POL-006:WALLET_ADDRESS_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11446:6:103"},"nodeType":"YulFunctionCall","src":"11446:62:103"},"nodeType":"YulExpressionStatement","src":"11446:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11528:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11539:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11524:3:103"},"nodeType":"YulFunctionCall","src":"11524:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11544:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11517:6:103"},"nodeType":"YulFunctionCall","src":"11517:31:103"},"nodeType":"YulExpressionStatement","src":"11517:31:103"},{"nodeType":"YulAssignment","src":"11557:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11580:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11565:3:103"},"nodeType":"YulFunctionCall","src":"11565:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11557:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a58e30d80b67c427d73fc6164f99768fb9b50c18604efb17c57bf2e875de904__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11344:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11358:4:103","type":""}],"src":"11193:397:103"},{"body":{"nodeType":"YulBlock","src":"11769:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11786:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11797:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11779:6:103"},"nodeType":"YulFunctionCall","src":"11779:21:103"},"nodeType":"YulExpressionStatement","src":"11779:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11831:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11816:3:103"},"nodeType":"YulFunctionCall","src":"11816:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11836:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11809:6:103"},"nodeType":"YulFunctionCall","src":"11809:30:103"},"nodeType":"YulExpressionStatement","src":"11809:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11859:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11870:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11855:3:103"},"nodeType":"YulFunctionCall","src":"11855:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11875:34:103","type":"","value":"ERROR:POL-026:RISKPOOL_ID_INVALI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11848:6:103"},"nodeType":"YulFunctionCall","src":"11848:62:103"},"nodeType":"YulExpressionStatement","src":"11848:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11930:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11941:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11926:3:103"},"nodeType":"YulFunctionCall","src":"11926:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11946:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11919:6:103"},"nodeType":"YulFunctionCall","src":"11919:31:103"},"nodeType":"YulExpressionStatement","src":"11919:31:103"},{"nodeType":"YulAssignment","src":"11959:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11971:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11982:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11967:3:103"},"nodeType":"YulFunctionCall","src":"11967:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11959:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f1d6c58669160bcbfc12f912411cc7135fdc211388790e920c997812d46fbf3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11746:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11760:4:103","type":""}],"src":"11595:397:103"},{"body":{"nodeType":"YulBlock","src":"12171:244:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12188:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12199:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12181:6:103"},"nodeType":"YulFunctionCall","src":"12181:21:103"},"nodeType":"YulExpressionStatement","src":"12181:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12233:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12218:3:103"},"nodeType":"YulFunctionCall","src":"12218:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12238:2:103","type":"","value":"54"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12211:6:103"},"nodeType":"YulFunctionCall","src":"12211:30:103"},"nodeType":"YulExpressionStatement","src":"12211:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12261:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12272:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12257:3:103"},"nodeType":"YulFunctionCall","src":"12257:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12277:34:103","type":"","value":"ERROR:POL-043:MAXIMUM_NUMBER_OF_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12250:6:103"},"nodeType":"YulFunctionCall","src":"12250:62:103"},"nodeType":"YulExpressionStatement","src":"12250:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12332:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12343:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12328:3:103"},"nodeType":"YulFunctionCall","src":"12328:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12348:24:103","type":"","value":"ACTIVE_BUNDLES_REACHED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12321:6:103"},"nodeType":"YulFunctionCall","src":"12321:52:103"},"nodeType":"YulExpressionStatement","src":"12321:52:103"},{"nodeType":"YulAssignment","src":"12382:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12394:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12405:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12390:3:103"},"nodeType":"YulFunctionCall","src":"12390:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12382:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_32d45b651261a0d41dda08727c81a537b3167117b852006bf8549d74e1a978bf__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12148:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12162:4:103","type":""}],"src":"11997:418:103"},{"body":{"nodeType":"YulBlock","src":"12594:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12611:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12622:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12604:6:103"},"nodeType":"YulFunctionCall","src":"12604:21:103"},"nodeType":"YulExpressionStatement","src":"12604:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12645:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12656:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12641:3:103"},"nodeType":"YulFunctionCall","src":"12641:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12661:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12634:6:103"},"nodeType":"YulFunctionCall","src":"12634:30:103"},"nodeType":"YulExpressionStatement","src":"12634:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12684:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12695:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12680:3:103"},"nodeType":"YulFunctionCall","src":"12680:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12700:34:103","type":"","value":"ERROR:POL-007:ERC20_ADDRESS_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12673:6:103"},"nodeType":"YulFunctionCall","src":"12673:62:103"},"nodeType":"YulExpressionStatement","src":"12673:62:103"},{"nodeType":"YulAssignment","src":"12744:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12756:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12767:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12752:3:103"},"nodeType":"YulFunctionCall","src":"12752:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12744:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3c1c4902271d3c52f6adb4d23ba17ac60cf40fb4880aa2a0a9d8c9072958ecfa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12571:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12585:4:103","type":""}],"src":"12420:356:103"},{"body":{"nodeType":"YulBlock","src":"12955:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12972:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12983:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12965:6:103"},"nodeType":"YulFunctionCall","src":"12965:21:103"},"nodeType":"YulExpressionStatement","src":"12965:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13006:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13017:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13002:3:103"},"nodeType":"YulFunctionCall","src":"13002:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13022:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12995:6:103"},"nodeType":"YulFunctionCall","src":"12995:30:103"},"nodeType":"YulExpressionStatement","src":"12995:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13045:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13056:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13041:3:103"},"nodeType":"YulFunctionCall","src":"13041:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13061:34:103","type":"","value":"ERROR:POL-028:LOCKED_CAPITAL_TOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13034:6:103"},"nodeType":"YulFunctionCall","src":"13034:62:103"},"nodeType":"YulExpressionStatement","src":"13034:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13116:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13127:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13112:3:103"},"nodeType":"YulFunctionCall","src":"13112:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13132:6:103","type":"","value":"_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13105:6:103"},"nodeType":"YulFunctionCall","src":"13105:34:103"},"nodeType":"YulExpressionStatement","src":"13105:34:103"},{"nodeType":"YulAssignment","src":"13148:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13160:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13171:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13156:3:103"},"nodeType":"YulFunctionCall","src":"13156:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13148:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_44afcf949d770ee053a9529659b3ec99089a2997bdea1c544310c06d7692b840__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12932:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12946:4:103","type":""}],"src":"12781:400:103"},{"body":{"nodeType":"YulBlock","src":"13360:176:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13388:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13370:6:103"},"nodeType":"YulFunctionCall","src":"13370:21:103"},"nodeType":"YulExpressionStatement","src":"13370:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13411:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13422:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13407:3:103"},"nodeType":"YulFunctionCall","src":"13407:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13427:2:103","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13400:6:103"},"nodeType":"YulFunctionCall","src":"13400:30:103"},"nodeType":"YulExpressionStatement","src":"13400:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13450:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13461:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13446:3:103"},"nodeType":"YulFunctionCall","src":"13446:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13466:28:103","type":"","value":"ERROR:POL-011:NOT_RISKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13439:6:103"},"nodeType":"YulFunctionCall","src":"13439:56:103"},"nodeType":"YulExpressionStatement","src":"13439:56:103"},{"nodeType":"YulAssignment","src":"13504:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13516:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13527:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13512:3:103"},"nodeType":"YulFunctionCall","src":"13512:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13504:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_53bb344f755768ff8b29ba330a2701e3df8da028fa755fbfd239aa46f33046db__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13337:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13351:4:103","type":""}],"src":"13186:350:103"},{"body":{"nodeType":"YulBlock","src":"13715:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13732:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13743:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13725:6:103"},"nodeType":"YulFunctionCall","src":"13725:21:103"},"nodeType":"YulExpressionStatement","src":"13725:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13766:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13777:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13762:3:103"},"nodeType":"YulFunctionCall","src":"13762:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13782:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13755:6:103"},"nodeType":"YulFunctionCall","src":"13755:30:103"},"nodeType":"YulExpressionStatement","src":"13755:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13805:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13816:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13801:3:103"},"nodeType":"YulFunctionCall","src":"13801:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13821:34:103","type":"","value":"ERROR:POL-046:COMPONENT_NOT_RISK"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13794:6:103"},"nodeType":"YulFunctionCall","src":"13794:62:103"},"nodeType":"YulExpressionStatement","src":"13794:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13876:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13887:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13872:3:103"},"nodeType":"YulFunctionCall","src":"13872:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13892:6:103","type":"","value":"POOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13865:6:103"},"nodeType":"YulFunctionCall","src":"13865:34:103"},"nodeType":"YulExpressionStatement","src":"13865:34:103"},{"nodeType":"YulAssignment","src":"13908:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13920:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13931:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13916:3:103"},"nodeType":"YulFunctionCall","src":"13916:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13908:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_60fd20f0722035656a7179233af7d61a35ed3b471c51ffeacda2e26bd0b3e1fc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13692:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13706:4:103","type":""}],"src":"13541:400:103"},{"body":{"nodeType":"YulBlock","src":"14120:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14137:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14148:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14130:6:103"},"nodeType":"YulFunctionCall","src":"14130:21:103"},"nodeType":"YulExpressionStatement","src":"14130:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14171:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14182:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14167:3:103"},"nodeType":"YulFunctionCall","src":"14167:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14187:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14160:6:103"},"nodeType":"YulFunctionCall","src":"14160:30:103"},"nodeType":"YulExpressionStatement","src":"14160:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14210:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14221:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14206:3:103"},"nodeType":"YulFunctionCall","src":"14206:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14226:31:103","type":"","value":"ERROR:POL-027:CAPITAL_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14199:6:103"},"nodeType":"YulFunctionCall","src":"14199:59:103"},"nodeType":"YulExpressionStatement","src":"14199:59:103"},{"nodeType":"YulAssignment","src":"14267:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14290:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14275:3:103"},"nodeType":"YulFunctionCall","src":"14275:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14267:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_67cc7eb014a79a7e650ab0cfe6e52cae46518112ef7a651a4b1634ad03248e0e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14097:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14111:4:103","type":""}],"src":"13946:353:103"},{"body":{"nodeType":"YulBlock","src":"14478:240:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14495:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14506:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14488:6:103"},"nodeType":"YulFunctionCall","src":"14488:21:103"},"nodeType":"YulExpressionStatement","src":"14488:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14529:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14540:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14525:3:103"},"nodeType":"YulFunctionCall","src":"14525:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14545:2:103","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14518:6:103"},"nodeType":"YulFunctionCall","src":"14518:30:103"},"nodeType":"YulExpressionStatement","src":"14518:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14568:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14579:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14564:3:103"},"nodeType":"YulFunctionCall","src":"14564:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14584:34:103","type":"","value":"ERROR:POL-032:MAX_NUMBER_OF_ACTI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14557:6:103"},"nodeType":"YulFunctionCall","src":"14557:62:103"},"nodeType":"YulExpressionStatement","src":"14557:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14639:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14650:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14635:3:103"},"nodeType":"YulFunctionCall","src":"14635:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14655:20:103","type":"","value":"VE_BUNDLES_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14628:6:103"},"nodeType":"YulFunctionCall","src":"14628:48:103"},"nodeType":"YulExpressionStatement","src":"14628:48:103"},{"nodeType":"YulAssignment","src":"14685:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14697:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14708:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14693:3:103"},"nodeType":"YulFunctionCall","src":"14693:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14685:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7116746545d46f1c191ba7298d418be30d7db11a3c9e7fc22ef2d27b419a7e55__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14455:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14469:4:103","type":""}],"src":"14304:414:103"},{"body":{"nodeType":"YulBlock","src":"14897:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14925:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14907:6:103"},"nodeType":"YulFunctionCall","src":"14907:21:103"},"nodeType":"YulExpressionStatement","src":"14907:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14948:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14959:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14944:3:103"},"nodeType":"YulFunctionCall","src":"14944:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14964:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14937:6:103"},"nodeType":"YulFunctionCall","src":"14937:30:103"},"nodeType":"YulExpressionStatement","src":"14937:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14998:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14983:3:103"},"nodeType":"YulFunctionCall","src":"14983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15003:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14976:6:103"},"nodeType":"YulFunctionCall","src":"14976:62:103"},"nodeType":"YulExpressionStatement","src":"14976:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15054:3:103"},"nodeType":"YulFunctionCall","src":"15054:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15074:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15047:6:103"},"nodeType":"YulFunctionCall","src":"15047:44:103"},"nodeType":"YulExpressionStatement","src":"15047:44:103"},{"nodeType":"YulAssignment","src":"15100:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15123:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15108:3:103"},"nodeType":"YulFunctionCall","src":"15108:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15100:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14874:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14888:4:103","type":""}],"src":"14723:410:103"},{"body":{"nodeType":"YulBlock","src":"15312:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15329:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15340:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15322:6:103"},"nodeType":"YulFunctionCall","src":"15322:21:103"},"nodeType":"YulExpressionStatement","src":"15322:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15363:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15374:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15359:3:103"},"nodeType":"YulFunctionCall","src":"15359:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15379:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15352:6:103"},"nodeType":"YulFunctionCall","src":"15352:30:103"},"nodeType":"YulExpressionStatement","src":"15352:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15402:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15413:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15398:3:103"},"nodeType":"YulFunctionCall","src":"15398:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15418:34:103","type":"","value":"ERROR:POL-020:APPLICATION_STATE_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15391:6:103"},"nodeType":"YulFunctionCall","src":"15391:62:103"},"nodeType":"YulExpressionStatement","src":"15391:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15473:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15484:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15469:3:103"},"nodeType":"YulFunctionCall","src":"15469:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15489:9:103","type":"","value":"INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15462:6:103"},"nodeType":"YulFunctionCall","src":"15462:37:103"},"nodeType":"YulExpressionStatement","src":"15462:37:103"},{"nodeType":"YulAssignment","src":"15508:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15520:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15531:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15516:3:103"},"nodeType":"YulFunctionCall","src":"15516:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15508:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7b7737fa76e23ee54befdf8804430da02fe2a7f8d2077faa42f91454d58fec1e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15289:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15303:4:103","type":""}],"src":"15138:403:103"},{"body":{"nodeType":"YulBlock","src":"15720:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15737:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15748:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15730:6:103"},"nodeType":"YulFunctionCall","src":"15730:21:103"},"nodeType":"YulExpressionStatement","src":"15730:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15771:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15782:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15767:3:103"},"nodeType":"YulFunctionCall","src":"15767:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15787:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15760:6:103"},"nodeType":"YulFunctionCall","src":"15760:30:103"},"nodeType":"YulExpressionStatement","src":"15760:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15810:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15821:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15806:3:103"},"nodeType":"YulFunctionCall","src":"15806:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15826:34:103","type":"","value":"ERROR:POL-025:POLICY_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15799:6:103"},"nodeType":"YulFunctionCall","src":"15799:62:103"},"nodeType":"YulExpressionStatement","src":"15799:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15881:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15892:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15877:3:103"},"nodeType":"YulFunctionCall","src":"15877:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15897:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15870:6:103"},"nodeType":"YulFunctionCall","src":"15870:32:103"},"nodeType":"YulExpressionStatement","src":"15870:32:103"},{"nodeType":"YulAssignment","src":"15911:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15923:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15934:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15919:3:103"},"nodeType":"YulFunctionCall","src":"15919:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15911:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8112df5365773a5d212dc325b4bcf75d58165a23e61b1a17302f9ca56a1ed0fb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15697:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15711:4:103","type":""}],"src":"15546:398:103"},{"body":{"nodeType":"YulBlock","src":"16123:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16140:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16151:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16133:6:103"},"nodeType":"YulFunctionCall","src":"16133:21:103"},"nodeType":"YulExpressionStatement","src":"16133:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16185:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16170:3:103"},"nodeType":"YulFunctionCall","src":"16170:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16190:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16163:6:103"},"nodeType":"YulFunctionCall","src":"16163:30:103"},"nodeType":"YulExpressionStatement","src":"16163:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16213:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16224:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16209:3:103"},"nodeType":"YulFunctionCall","src":"16209:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16229:34:103","type":"","value":"ERROR:POL-002:NOT_RISKPOOL_SERVI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16202:6:103"},"nodeType":"YulFunctionCall","src":"16202:62:103"},"nodeType":"YulExpressionStatement","src":"16202:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16284:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16295:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16280:3:103"},"nodeType":"YulFunctionCall","src":"16280:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16300:4:103","type":"","value":"CE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16273:6:103"},"nodeType":"YulFunctionCall","src":"16273:32:103"},"nodeType":"YulExpressionStatement","src":"16273:32:103"},{"nodeType":"YulAssignment","src":"16314:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16326:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16337:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16322:3:103"},"nodeType":"YulFunctionCall","src":"16322:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16314:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_966f1f86304de2b3465165e344fb9e74c7781a68f6ea7df637fdc3729caa28d7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16100:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16114:4:103","type":""}],"src":"15949:398:103"},{"body":{"nodeType":"YulBlock","src":"16526:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16543:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16554:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16536:6:103"},"nodeType":"YulFunctionCall","src":"16536:21:103"},"nodeType":"YulExpressionStatement","src":"16536:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16577:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16588:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16573:3:103"},"nodeType":"YulFunctionCall","src":"16573:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16593:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16566:6:103"},"nodeType":"YulFunctionCall","src":"16566:30:103"},"nodeType":"YulExpressionStatement","src":"16566:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16616:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16627:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16612:3:103"},"nodeType":"YulFunctionCall","src":"16612:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16632:34:103","type":"","value":"ERROR:POL-045:RISKPOOL_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16605:6:103"},"nodeType":"YulFunctionCall","src":"16605:62:103"},"nodeType":"YulExpressionStatement","src":"16605:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16687:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16698:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16683:3:103"},"nodeType":"YulFunctionCall","src":"16683:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16703:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16676:6:103"},"nodeType":"YulFunctionCall","src":"16676:35:103"},"nodeType":"YulExpressionStatement","src":"16676:35:103"},{"nodeType":"YulAssignment","src":"16720:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16732:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16743:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16728:3:103"},"nodeType":"YulFunctionCall","src":"16728:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16720:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a4b296530db676cdfea5704a67861f031427c9d329dfdeaaa17866263df6c024__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16503:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16517:4:103","type":""}],"src":"16352:401:103"},{"body":{"nodeType":"YulBlock","src":"16932:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16949:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16960:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16942:6:103"},"nodeType":"YulFunctionCall","src":"16942:21:103"},"nodeType":"YulExpressionStatement","src":"16942:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16983:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16994:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16979:3:103"},"nodeType":"YulFunctionCall","src":"16979:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16999:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16972:6:103"},"nodeType":"YulFunctionCall","src":"16972:30:103"},"nodeType":"YulExpressionStatement","src":"16972:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17022:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17033:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17018:3:103"},"nodeType":"YulFunctionCall","src":"17018:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17038:30:103","type":"","value":"ERROR:CRC-002:NOT_ON_STORAGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17011:6:103"},"nodeType":"YulFunctionCall","src":"17011:58:103"},"nodeType":"YulExpressionStatement","src":"17011:58:103"},{"nodeType":"YulAssignment","src":"17078:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17090:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17101:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17086:3:103"},"nodeType":"YulFunctionCall","src":"17086:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17078:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16909:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16923:4:103","type":""}],"src":"16758:352:103"},{"body":{"nodeType":"YulBlock","src":"17289:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17306:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17317:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17299:6:103"},"nodeType":"YulFunctionCall","src":"17299:21:103"},"nodeType":"YulExpressionStatement","src":"17299:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17340:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17351:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17336:3:103"},"nodeType":"YulFunctionCall","src":"17336:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17356:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17329:6:103"},"nodeType":"YulFunctionCall","src":"17329:30:103"},"nodeType":"YulExpressionStatement","src":"17329:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17379:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17390:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17375:3:103"},"nodeType":"YulFunctionCall","src":"17375:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17395:34:103","type":"","value":"ERROR:POL-008:COLLATERALIZATION_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17368:6:103"},"nodeType":"YulFunctionCall","src":"17368:62:103"},"nodeType":"YulExpressionStatement","src":"17368:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17450:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17461:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17446:3:103"},"nodeType":"YulFunctionCall","src":"17446:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17466:16:103","type":"","value":"lEVEl_TOO_HIGH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17439:6:103"},"nodeType":"YulFunctionCall","src":"17439:44:103"},"nodeType":"YulExpressionStatement","src":"17439:44:103"},{"nodeType":"YulAssignment","src":"17492:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17504:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17515:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17500:3:103"},"nodeType":"YulFunctionCall","src":"17500:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17492:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_acad2caacd6ddfafd876b6f7b9565d102fbab77b96c69233dfb71c5f810056a1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17266:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17280:4:103","type":""}],"src":"17115:410:103"},{"body":{"nodeType":"YulBlock","src":"17704:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17721:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17732:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17714:6:103"},"nodeType":"YulFunctionCall","src":"17714:21:103"},"nodeType":"YulExpressionStatement","src":"17714:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17755:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17766:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17751:3:103"},"nodeType":"YulFunctionCall","src":"17751:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17771:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17744:6:103"},"nodeType":"YulFunctionCall","src":"17744:30:103"},"nodeType":"YulExpressionStatement","src":"17744:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17794:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17805:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17790:3:103"},"nodeType":"YulFunctionCall","src":"17790:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17810:34:103","type":"","value":"ERROR:POL-042:BUNDLE_ID_ALREADY_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17783:6:103"},"nodeType":"YulFunctionCall","src":"17783:62:103"},"nodeType":"YulExpressionStatement","src":"17783:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17876:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17861:3:103"},"nodeType":"YulFunctionCall","src":"17861:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17881:8:103","type":"","value":"IN_SET"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17854:6:103"},"nodeType":"YulFunctionCall","src":"17854:36:103"},"nodeType":"YulExpressionStatement","src":"17854:36:103"},{"nodeType":"YulAssignment","src":"17899:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17911:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17922:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17907:3:103"},"nodeType":"YulFunctionCall","src":"17907:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17899:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b086ae5e8f106ca526b0d03899a345f10ddaccb93416929015e592b95b2ec331__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17681:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17695:4:103","type":""}],"src":"17530:402:103"},{"body":{"nodeType":"YulBlock","src":"18111:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18128:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18139:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18121:6:103"},"nodeType":"YulFunctionCall","src":"18121:21:103"},"nodeType":"YulExpressionStatement","src":"18121:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18162:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18173:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18158:3:103"},"nodeType":"YulFunctionCall","src":"18158:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18178:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18151:6:103"},"nodeType":"YulFunctionCall","src":"18151:30:103"},"nodeType":"YulExpressionStatement","src":"18151:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18201:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18212:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18197:3:103"},"nodeType":"YulFunctionCall","src":"18197:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18217:31:103","type":"","value":"ERROR:POL-029:BALANCE_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18190:6:103"},"nodeType":"YulFunctionCall","src":"18190:59:103"},"nodeType":"YulExpressionStatement","src":"18190:59:103"},{"nodeType":"YulAssignment","src":"18258:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18270:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18281:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18266:3:103"},"nodeType":"YulFunctionCall","src":"18266:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18258:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ba78ed8f777c20a07a168d501d7b3d7b92a7f1a27a40caead8609d6c05873a42__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18088:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18102:4:103","type":""}],"src":"17937:353:103"},{"body":{"nodeType":"YulBlock","src":"18469:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18486:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18497:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18479:6:103"},"nodeType":"YulFunctionCall","src":"18479:21:103"},"nodeType":"YulExpressionStatement","src":"18479:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18520:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18531:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18516:3:103"},"nodeType":"YulFunctionCall","src":"18516:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18536:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18509:6:103"},"nodeType":"YulFunctionCall","src":"18509:30:103"},"nodeType":"YulExpressionStatement","src":"18509:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18559:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18570:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18555:3:103"},"nodeType":"YulFunctionCall","src":"18555:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18575:34:103","type":"","value":"ERROR:POL-040:RISKPOOL_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18548:6:103"},"nodeType":"YulFunctionCall","src":"18548:62:103"},"nodeType":"YulExpressionStatement","src":"18548:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18630:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18641:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18626:3:103"},"nodeType":"YulFunctionCall","src":"18626:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18646:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18619:6:103"},"nodeType":"YulFunctionCall","src":"18619:35:103"},"nodeType":"YulExpressionStatement","src":"18619:35:103"},{"nodeType":"YulAssignment","src":"18663:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18686:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18671:3:103"},"nodeType":"YulFunctionCall","src":"18671:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18663:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3836296e71c1859c2c71fd95043696a6e738e6a1a0c4395bee681aed798558c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18446:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18460:4:103","type":""}],"src":"18295:401:103"},{"body":{"nodeType":"YulBlock","src":"18875:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18903:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18885:6:103"},"nodeType":"YulFunctionCall","src":"18885:21:103"},"nodeType":"YulExpressionStatement","src":"18885:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18937:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18922:3:103"},"nodeType":"YulFunctionCall","src":"18922:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18942:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18915:6:103"},"nodeType":"YulFunctionCall","src":"18915:30:103"},"nodeType":"YulExpressionStatement","src":"18915:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18965:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18976:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18961:3:103"},"nodeType":"YulFunctionCall","src":"18961:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18981:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18954:6:103"},"nodeType":"YulFunctionCall","src":"18954:62:103"},"nodeType":"YulExpressionStatement","src":"18954:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19047:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19032:3:103"},"nodeType":"YulFunctionCall","src":"19032:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19052:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19025:6:103"},"nodeType":"YulFunctionCall","src":"19025:41:103"},"nodeType":"YulExpressionStatement","src":"19025:41:103"},{"nodeType":"YulAssignment","src":"19075:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19087:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19098:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19083:3:103"},"nodeType":"YulFunctionCall","src":"19083:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19075:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18852:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18866:4:103","type":""}],"src":"18701:407:103"},{"body":{"nodeType":"YulBlock","src":"19287:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19315:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19297:6:103"},"nodeType":"YulFunctionCall","src":"19297:21:103"},"nodeType":"YulExpressionStatement","src":"19297:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19338:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19349:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19334:3:103"},"nodeType":"YulFunctionCall","src":"19334:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19354:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19327:6:103"},"nodeType":"YulFunctionCall","src":"19327:30:103"},"nodeType":"YulExpressionStatement","src":"19327:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19388:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19373:3:103"},"nodeType":"YulFunctionCall","src":"19373:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19393:34:103","type":"","value":"ERROR:CRC-003:NOT_PRODUCT_SERVIC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19366:6:103"},"nodeType":"YulFunctionCall","src":"19366:62:103"},"nodeType":"YulExpressionStatement","src":"19366:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19448:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19459:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19444:3:103"},"nodeType":"YulFunctionCall","src":"19444:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19464:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19437:6:103"},"nodeType":"YulFunctionCall","src":"19437:31:103"},"nodeType":"YulExpressionStatement","src":"19437:31:103"},{"nodeType":"YulAssignment","src":"19477:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19489:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19500:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19485:3:103"},"nodeType":"YulFunctionCall","src":"19485:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19477:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19264:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19278:4:103","type":""}],"src":"19113:397:103"},{"body":{"nodeType":"YulBlock","src":"19689:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19706:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19717:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19699:6:103"},"nodeType":"YulFunctionCall","src":"19699:21:103"},"nodeType":"YulExpressionStatement","src":"19699:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19740:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19751:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19736:3:103"},"nodeType":"YulFunctionCall","src":"19736:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19756:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19729:6:103"},"nodeType":"YulFunctionCall","src":"19729:30:103"},"nodeType":"YulExpressionStatement","src":"19729:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19779:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19790:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19775:3:103"},"nodeType":"YulFunctionCall","src":"19775:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19795:34:103","type":"","value":"ERROR:POL-012:RISKPOOL_ALREADY_S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19768:6:103"},"nodeType":"YulFunctionCall","src":"19768:62:103"},"nodeType":"YulExpressionStatement","src":"19768:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19850:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19861:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19846:3:103"},"nodeType":"YulFunctionCall","src":"19846:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19866:4:103","type":"","value":"ET"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19839:6:103"},"nodeType":"YulFunctionCall","src":"19839:32:103"},"nodeType":"YulExpressionStatement","src":"19839:32:103"},{"nodeType":"YulAssignment","src":"19880:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19903:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19888:3:103"},"nodeType":"YulFunctionCall","src":"19888:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19880:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f319dea6556041246bb86b4f2b8ac2451da0edcfdd502e0f920d7f44141a5322__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19666:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19680:4:103","type":""}],"src":"19515:398:103"},{"body":{"nodeType":"YulBlock","src":"20092:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20109:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20120:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20102:6:103"},"nodeType":"YulFunctionCall","src":"20102:21:103"},"nodeType":"YulExpressionStatement","src":"20102:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20143:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20154:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20139:3:103"},"nodeType":"YulFunctionCall","src":"20139:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20159:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20132:6:103"},"nodeType":"YulFunctionCall","src":"20132:30:103"},"nodeType":"YulExpressionStatement","src":"20132:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20182:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20193:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20178:3:103"},"nodeType":"YulFunctionCall","src":"20178:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20198:34:103","type":"","value":"ERROR:POL-005:RISKPOOL_ALREADY_R"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20171:6:103"},"nodeType":"YulFunctionCall","src":"20171:62:103"},"nodeType":"YulExpressionStatement","src":"20171:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20253:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20264:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20249:3:103"},"nodeType":"YulFunctionCall","src":"20249:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20269:11:103","type":"","value":"EGISTERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20242:6:103"},"nodeType":"YulFunctionCall","src":"20242:39:103"},"nodeType":"YulExpressionStatement","src":"20242:39:103"},{"nodeType":"YulAssignment","src":"20290:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20302:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20313:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20298:3:103"},"nodeType":"YulFunctionCall","src":"20298:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20290:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f58ee845cc4844222cd7fa0a8e8d561077a6aa1109b2c08627d10c4eab87b0d9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20069:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20083:4:103","type":""}],"src":"19918:405:103"},{"body":{"nodeType":"YulBlock","src":"20502:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20519:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20530:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20512:6:103"},"nodeType":"YulFunctionCall","src":"20512:21:103"},"nodeType":"YulExpressionStatement","src":"20512:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20553:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20564:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20549:3:103"},"nodeType":"YulFunctionCall","src":"20549:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20569:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20542:6:103"},"nodeType":"YulFunctionCall","src":"20542:30:103"},"nodeType":"YulExpressionStatement","src":"20542:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20603:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20588:3:103"},"nodeType":"YulFunctionCall","src":"20588:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20608:34:103","type":"","value":"ERROR:POL-041:BUNDLE_IDX_TOO_LAR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20581:6:103"},"nodeType":"YulFunctionCall","src":"20581:62:103"},"nodeType":"YulExpressionStatement","src":"20581:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20663:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20674:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20659:3:103"},"nodeType":"YulFunctionCall","src":"20659:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20679:4:103","type":"","value":"GE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20652:6:103"},"nodeType":"YulFunctionCall","src":"20652:32:103"},"nodeType":"YulExpressionStatement","src":"20652:32:103"},{"nodeType":"YulAssignment","src":"20693:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20705:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20716:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20701:3:103"},"nodeType":"YulFunctionCall","src":"20701:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20693:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fac70cef27ea13d3b488fdaf23702ddb45d929dc3704ba843e20ef6d9116ebab__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20479:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20493:4:103","type":""}],"src":"20328:398:103"},{"body":{"nodeType":"YulBlock","src":"20876:887:103","statements":[{"nodeType":"YulAssignment","src":"20886:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20898:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20909:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20894:3:103"},"nodeType":"YulFunctionCall","src":"20894:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20886:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20929:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20946:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20940:5:103"},"nodeType":"YulFunctionCall","src":"20940:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20922:6:103"},"nodeType":"YulFunctionCall","src":"20922:32:103"},"nodeType":"YulExpressionStatement","src":"20922:32:103"},{"nodeType":"YulVariableDeclaration","src":"20963:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20993:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21001:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20989:3:103"},"nodeType":"YulFunctionCall","src":"20989:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20983:5:103"},"nodeType":"YulFunctionCall","src":"20983:24:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"20967:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"21035:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21053:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21064:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21049:3:103"},"nodeType":"YulFunctionCall","src":"21049:20:103"}],"functionName":{"name":"abi_encode_address","nodeType":"YulIdentifier","src":"21016:18:103"},"nodeType":"YulFunctionCall","src":"21016:54:103"},"nodeType":"YulExpressionStatement","src":"21016:54:103"},{"nodeType":"YulVariableDeclaration","src":"21079:46:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21111:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21119:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21107:3:103"},"nodeType":"YulFunctionCall","src":"21107:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21101:5:103"},"nodeType":"YulFunctionCall","src":"21101:24:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"21083:14:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"21153:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21173:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21184:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21169:3:103"},"nodeType":"YulFunctionCall","src":"21169:20:103"}],"functionName":{"name":"abi_encode_address","nodeType":"YulIdentifier","src":"21134:18:103"},"nodeType":"YulFunctionCall","src":"21134:56:103"},"nodeType":"YulExpressionStatement","src":"21134:56:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21210:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21221:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21206:3:103"},"nodeType":"YulFunctionCall","src":"21206:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21238:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21246:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21234:3:103"},"nodeType":"YulFunctionCall","src":"21234:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21228:5:103"},"nodeType":"YulFunctionCall","src":"21228:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21199:6:103"},"nodeType":"YulFunctionCall","src":"21199:54:103"},"nodeType":"YulExpressionStatement","src":"21199:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21273:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21284:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21269:3:103"},"nodeType":"YulFunctionCall","src":"21269:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21301:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21309:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21297:3:103"},"nodeType":"YulFunctionCall","src":"21297:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21291:5:103"},"nodeType":"YulFunctionCall","src":"21291:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21262:6:103"},"nodeType":"YulFunctionCall","src":"21262:54:103"},"nodeType":"YulExpressionStatement","src":"21262:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21336:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21347:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21332:3:103"},"nodeType":"YulFunctionCall","src":"21332:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21364:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21372:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21360:3:103"},"nodeType":"YulFunctionCall","src":"21360:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21354:5:103"},"nodeType":"YulFunctionCall","src":"21354:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21325:6:103"},"nodeType":"YulFunctionCall","src":"21325:54:103"},"nodeType":"YulExpressionStatement","src":"21325:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21399:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21410:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21395:3:103"},"nodeType":"YulFunctionCall","src":"21395:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21427:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21435:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21423:3:103"},"nodeType":"YulFunctionCall","src":"21423:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21417:5:103"},"nodeType":"YulFunctionCall","src":"21417:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21388:6:103"},"nodeType":"YulFunctionCall","src":"21388:54:103"},"nodeType":"YulExpressionStatement","src":"21388:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21473:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21458:3:103"},"nodeType":"YulFunctionCall","src":"21458:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21490:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21498:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21486:3:103"},"nodeType":"YulFunctionCall","src":"21486:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21480:5:103"},"nodeType":"YulFunctionCall","src":"21480:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21451:6:103"},"nodeType":"YulFunctionCall","src":"21451:54:103"},"nodeType":"YulExpressionStatement","src":"21451:54:103"},{"nodeType":"YulVariableDeclaration","src":"21514:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"21524:6:103","type":"","value":"0x0100"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21518:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21550:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"21561:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21546:3:103"},"nodeType":"YulFunctionCall","src":"21546:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21576:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"21584:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21572:3:103"},"nodeType":"YulFunctionCall","src":"21572:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21566:5:103"},"nodeType":"YulFunctionCall","src":"21566:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21539:6:103"},"nodeType":"YulFunctionCall","src":"21539:50:103"},"nodeType":"YulExpressionStatement","src":"21539:50:103"},{"nodeType":"YulVariableDeclaration","src":"21598:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"21608:6:103","type":"","value":"0x0120"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"21602:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21634:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"21645:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21630:3:103"},"nodeType":"YulFunctionCall","src":"21630:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21660:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"21668:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21656:3:103"},"nodeType":"YulFunctionCall","src":"21656:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21650:5:103"},"nodeType":"YulFunctionCall","src":"21650:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21623:6:103"},"nodeType":"YulFunctionCall","src":"21623:50:103"},"nodeType":"YulExpressionStatement","src":"21623:50:103"},{"nodeType":"YulVariableDeclaration","src":"21682:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"21692:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"21686:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21718:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"21729:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21714:3:103"},"nodeType":"YulFunctionCall","src":"21714:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21744:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"21752:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21740:3:103"},"nodeType":"YulFunctionCall","src":"21740:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21734:5:103"},"nodeType":"YulFunctionCall","src":"21734:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21707:6:103"},"nodeType":"YulFunctionCall","src":"21707:50:103"},"nodeType":"YulExpressionStatement","src":"21707:50:103"}]},"name":"abi_encode_tuple_t_struct$_Pool_$5502_memory_ptr__to_t_struct$_Pool_$5502_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20845:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20856:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20867:4:103","type":""}],"src":"20731:1032:103"},{"body":{"nodeType":"YulBlock","src":"21869:76:103","statements":[{"nodeType":"YulAssignment","src":"21879:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21891:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21902:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21887:3:103"},"nodeType":"YulFunctionCall","src":"21887:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21879:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21921:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"21932:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21914:6:103"},"nodeType":"YulFunctionCall","src":"21914:25:103"},"nodeType":"YulExpressionStatement","src":"21914:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21838:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21849:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21860:4:103","type":""}],"src":"21768:177:103"},{"body":{"nodeType":"YulBlock","src":"22163:306:103","statements":[{"nodeType":"YulAssignment","src":"22173:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22185:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22196:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22181:3:103"},"nodeType":"YulFunctionCall","src":"22181:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22173:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22216:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"22227:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22209:6:103"},"nodeType":"YulFunctionCall","src":"22209:25:103"},"nodeType":"YulExpressionStatement","src":"22209:25:103"},{"nodeType":"YulVariableDeclaration","src":"22243:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22261:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22266:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22257:3:103"},"nodeType":"YulFunctionCall","src":"22257:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"22270:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22253:3:103"},"nodeType":"YulFunctionCall","src":"22253:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22247:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22303:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22288:3:103"},"nodeType":"YulFunctionCall","src":"22288:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22312:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"22320:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22308:3:103"},"nodeType":"YulFunctionCall","src":"22308:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22281:6:103"},"nodeType":"YulFunctionCall","src":"22281:43:103"},"nodeType":"YulExpressionStatement","src":"22281:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22340:3:103"},"nodeType":"YulFunctionCall","src":"22340:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22364:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"22372:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22360:3:103"},"nodeType":"YulFunctionCall","src":"22360:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22333:6:103"},"nodeType":"YulFunctionCall","src":"22333:43:103"},"nodeType":"YulExpressionStatement","src":"22333:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22407:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22392:3:103"},"nodeType":"YulFunctionCall","src":"22392:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"22412:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22385:6:103"},"nodeType":"YulFunctionCall","src":"22385:34:103"},"nodeType":"YulExpressionStatement","src":"22385:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22439:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22450:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22435:3:103"},"nodeType":"YulFunctionCall","src":"22435:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"22456:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22428:6:103"},"nodeType":"YulFunctionCall","src":"22428:35:103"},"nodeType":"YulExpressionStatement","src":"22428:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22100:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22111:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22119:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22127:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22135:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22143:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22154:4:103","type":""}],"src":"21950:519:103"},{"body":{"nodeType":"YulBlock","src":"22631:162:103","statements":[{"nodeType":"YulAssignment","src":"22641:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22653:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22664:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22649:3:103"},"nodeType":"YulFunctionCall","src":"22649:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22641:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22683:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"22694:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22676:6:103"},"nodeType":"YulFunctionCall","src":"22676:25:103"},"nodeType":"YulExpressionStatement","src":"22676:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22721:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22732:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22717:3:103"},"nodeType":"YulFunctionCall","src":"22717:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"22737:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22710:6:103"},"nodeType":"YulFunctionCall","src":"22710:34:103"},"nodeType":"YulExpressionStatement","src":"22710:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22764:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22775:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22760:3:103"},"nodeType":"YulFunctionCall","src":"22760:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"22780:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22753:6:103"},"nodeType":"YulFunctionCall","src":"22753:34:103"},"nodeType":"YulExpressionStatement","src":"22753:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22584:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22595:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22603:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22611:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22622:4:103","type":""}],"src":"22474:319:103"},{"body":{"nodeType":"YulBlock","src":"22843:230:103","statements":[{"nodeType":"YulAssignment","src":"22853:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22869:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22863:5:103"},"nodeType":"YulFunctionCall","src":"22863:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22853:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"22881:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22903:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"22919:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"22925:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22915:3:103"},"nodeType":"YulFunctionCall","src":"22915:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22934:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22930:3:103"},"nodeType":"YulFunctionCall","src":"22930:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22911:3:103"},"nodeType":"YulFunctionCall","src":"22911:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22899:3:103"},"nodeType":"YulFunctionCall","src":"22899:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"22885:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"23014:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"23016:16:103"},"nodeType":"YulFunctionCall","src":"23016:18:103"},"nodeType":"YulExpressionStatement","src":"23016:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"22957:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"22969:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"22954:2:103"},"nodeType":"YulFunctionCall","src":"22954:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"22993:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"23005:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"22990:2:103"},"nodeType":"YulFunctionCall","src":"22990:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"22951:2:103"},"nodeType":"YulFunctionCall","src":"22951:62:103"},"nodeType":"YulIf","src":"22948:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23052:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"23056:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23045:6:103"},"nodeType":"YulFunctionCall","src":"23045:22:103"},"nodeType":"YulExpressionStatement","src":"23045:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"22823:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"22832:6:103","type":""}],"src":"22798:275:103"},{"body":{"nodeType":"YulBlock","src":"23126:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"23153:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"23155:16:103"},"nodeType":"YulFunctionCall","src":"23155:18:103"},"nodeType":"YulExpressionStatement","src":"23155:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23142:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"23149:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"23145:3:103"},"nodeType":"YulFunctionCall","src":"23145:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23139:2:103"},"nodeType":"YulFunctionCall","src":"23139:13:103"},"nodeType":"YulIf","src":"23136:2:103"},{"nodeType":"YulAssignment","src":"23184:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23195:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"23198:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23191:3:103"},"nodeType":"YulFunctionCall","src":"23191:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"23184:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23109:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"23112:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"23118:3:103","type":""}],"src":"23078:128:103"},{"body":{"nodeType":"YulBlock","src":"23257:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"23288:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"23309:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23316:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23321:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23312:3:103"},"nodeType":"YulFunctionCall","src":"23312:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23302:6:103"},"nodeType":"YulFunctionCall","src":"23302:31:103"},"nodeType":"YulExpressionStatement","src":"23302:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23353:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23356:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23346:6:103"},"nodeType":"YulFunctionCall","src":"23346:15:103"},"nodeType":"YulExpressionStatement","src":"23346:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"23381:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"23384:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23374:6:103"},"nodeType":"YulFunctionCall","src":"23374:15:103"},"nodeType":"YulExpressionStatement","src":"23374:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"23277:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23270:6:103"},"nodeType":"YulFunctionCall","src":"23270:9:103"},"nodeType":"YulIf","src":"23267:2:103"},{"nodeType":"YulAssignment","src":"23408:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23417:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"23420:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"23413:3:103"},"nodeType":"YulFunctionCall","src":"23413:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"23408:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23242:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"23245:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"23251:1:103","type":""}],"src":"23211:217:103"},{"body":{"nodeType":"YulBlock","src":"23485:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"23544:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"23546:16:103"},"nodeType":"YulFunctionCall","src":"23546:18:103"},"nodeType":"YulExpressionStatement","src":"23546:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23516:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23509:6:103"},"nodeType":"YulFunctionCall","src":"23509:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23502:6:103"},"nodeType":"YulFunctionCall","src":"23502:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"23524:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23535:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"23531:3:103"},"nodeType":"YulFunctionCall","src":"23531:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"23539:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"23527:3:103"},"nodeType":"YulFunctionCall","src":"23527:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23521:2:103"},"nodeType":"YulFunctionCall","src":"23521:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23498:3:103"},"nodeType":"YulFunctionCall","src":"23498:45:103"},"nodeType":"YulIf","src":"23495:2:103"},{"nodeType":"YulAssignment","src":"23575:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23590:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"23593:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"23586:3:103"},"nodeType":"YulFunctionCall","src":"23586:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"23575:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23464:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"23467:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"23473:7:103","type":""}],"src":"23433:168:103"},{"body":{"nodeType":"YulBlock","src":"23655:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"23677:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"23679:16:103"},"nodeType":"YulFunctionCall","src":"23679:18:103"},"nodeType":"YulExpressionStatement","src":"23679:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23671:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"23674:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"23668:2:103"},"nodeType":"YulFunctionCall","src":"23668:8:103"},"nodeType":"YulIf","src":"23665:2:103"},{"nodeType":"YulAssignment","src":"23708:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23720:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"23723:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23716:3:103"},"nodeType":"YulFunctionCall","src":"23716:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"23708:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23637:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"23640:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"23646:4:103","type":""}],"src":"23606:125:103"},{"body":{"nodeType":"YulBlock","src":"23768:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23785:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23792:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23797:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23788:3:103"},"nodeType":"YulFunctionCall","src":"23788:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23778:6:103"},"nodeType":"YulFunctionCall","src":"23778:31:103"},"nodeType":"YulExpressionStatement","src":"23778:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23825:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23828:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23818:6:103"},"nodeType":"YulFunctionCall","src":"23818:15:103"},"nodeType":"YulExpressionStatement","src":"23818:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23849:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23852:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23842:6:103"},"nodeType":"YulFunctionCall","src":"23842:15:103"},"nodeType":"YulExpressionStatement","src":"23842:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"23736:127:103"},{"body":{"nodeType":"YulBlock","src":"23900:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23917:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23924:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23929:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23920:3:103"},"nodeType":"YulFunctionCall","src":"23920:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23910:6:103"},"nodeType":"YulFunctionCall","src":"23910:31:103"},"nodeType":"YulExpressionStatement","src":"23910:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23957:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23960:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23950:6:103"},"nodeType":"YulFunctionCall","src":"23950:15:103"},"nodeType":"YulExpressionStatement","src":"23950:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23981:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23984:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23974:6:103"},"nodeType":"YulFunctionCall","src":"23974:15:103"},"nodeType":"YulExpressionStatement","src":"23974:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"23868:127:103"},{"body":{"nodeType":"YulBlock","src":"24045:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"24109:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24118:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24121:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24111:6:103"},"nodeType":"YulFunctionCall","src":"24111:12:103"},"nodeType":"YulExpressionStatement","src":"24111:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24068:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24079:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24094:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"24099:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24090:3:103"},"nodeType":"YulFunctionCall","src":"24090:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"24103:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24086:3:103"},"nodeType":"YulFunctionCall","src":"24086:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24075:3:103"},"nodeType":"YulFunctionCall","src":"24075:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"24065:2:103"},"nodeType":"YulFunctionCall","src":"24065:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24058:6:103"},"nodeType":"YulFunctionCall","src":"24058:50:103"},"nodeType":"YulIf","src":"24055:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"24034:5:103","type":""}],"src":"24000:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let _2 := 0x20\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), _2))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), _2), end) { revert(array, array) }\n let i := array\n for { } lt(i, _1) { i := add(i, _2) }\n {\n mstore(add(add(array_1, i), _2), mload(add(add(offset, i), _2)))\n }\n if gt(i, _1)\n {\n mstore(add(add(array_1, _1), _2), array)\n }\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n if iszero(lt(value_1, 4)) { revert(value0, value0) }\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address(value_1)\n value2 := value_1\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_address(value, pos)\n {\n mstore(pos, and(value, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_01ba533ede5bc9857bd888044082beab7540e9985694ecf1b8f2420761091360__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POL-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_153cdd57b6a54a67c3edead82db53ff9ca80c0d53800cc6e08d94bcd48709063__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:POL-009:SUM_OF_SUM_INSURED\")\n mstore(add(headStart, 96), \"_CAP_ZERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1b7f0a4d9ff2dc985060892cfa5d21ef1861aee5377df8478f07451d1c71c9a4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POL-004:RISKPOOL_NOT_ACTIV\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1bc20430b5420212dd3a6e8be5f546e3de707484a8680f89c18cb18c351384cb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:POL-022:RISKPOOL_SUM_INSUR\")\n mstore(add(headStart, 96), \"ED_CAP_EXCEEDED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_21abf94b5548761de95d02f2a3d6e1d83d6d35330a6e30e85c122e0961c94723__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERROR:POL-010:NOT_PRODUCT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_25c96dd3fff47393c9641d7e3b8d6afd2344a8424f3becb7b10f61348f063fb8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-044:BUNDLE_ID_NOT_IN_S\")\n mstore(add(headStart, 96), \"ET\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2676f82624b5790964b977de4e2922d89874c40d9966c58f2ee005dc0bbd3479__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POL-003:RISKPOOL_NOT_ACTIV\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2a58e30d80b67c427d73fc6164f99768fb9b50c18604efb17c57bf2e875de904__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POL-006:WALLET_ADDRESS_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2f1d6c58669160bcbfc12f912411cc7135fdc211388790e920c997812d46fbf3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POL-026:RISKPOOL_ID_INVALI\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_32d45b651261a0d41dda08727c81a537b3167117b852006bf8549d74e1a978bf__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 54)\n mstore(add(headStart, 64), \"ERROR:POL-043:MAXIMUM_NUMBER_OF_\")\n mstore(add(headStart, 96), \"ACTIVE_BUNDLES_REACHED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3c1c4902271d3c52f6adb4d23ba17ac60cf40fb4880aa2a0a9d8c9072958ecfa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:POL-007:ERC20_ADDRESS_ZERO\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_44afcf949d770ee053a9529659b3ec99089a2997bdea1c544310c06d7692b840__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:POL-028:LOCKED_CAPITAL_TOO\")\n mstore(add(headStart, 96), \"_LOW\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_53bb344f755768ff8b29ba330a2701e3df8da028fa755fbfd239aa46f33046db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"ERROR:POL-011:NOT_RISKPOOL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_60fd20f0722035656a7179233af7d61a35ed3b471c51ffeacda2e26bd0b3e1fc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:POL-046:COMPONENT_NOT_RISK\")\n mstore(add(headStart, 96), \"POOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_67cc7eb014a79a7e650ab0cfe6e52cae46518112ef7a651a4b1634ad03248e0e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:POL-027:CAPITAL_TOO_LOW\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7116746545d46f1c191ba7298d418be30d7db11a3c9e7fc22ef2d27b419a7e55__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 50)\n mstore(add(headStart, 64), \"ERROR:POL-032:MAX_NUMBER_OF_ACTI\")\n mstore(add(headStart, 96), \"VE_BUNDLES_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7b7737fa76e23ee54befdf8804430da02fe2a7f8d2077faa42f91454d58fec1e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POL-020:APPLICATION_STATE_\")\n mstore(add(headStart, 96), \"INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8112df5365773a5d212dc325b4bcf75d58165a23e61b1a17302f9ca56a1ed0fb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-025:POLICY_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_966f1f86304de2b3465165e344fb9e74c7781a68f6ea7df637fdc3729caa28d7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-002:NOT_RISKPOOL_SERVI\")\n mstore(add(headStart, 96), \"CE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a4b296530db676cdfea5704a67861f031427c9d329dfdeaaa17866263df6c024__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POL-045:RISKPOOL_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:CRC-002:NOT_ON_STORAGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_acad2caacd6ddfafd876b6f7b9565d102fbab77b96c69233dfb71c5f810056a1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"ERROR:POL-008:COLLATERALIZATION_\")\n mstore(add(headStart, 96), \"lEVEl_TOO_HIGH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b086ae5e8f106ca526b0d03899a345f10ddaccb93416929015e592b95b2ec331__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:POL-042:BUNDLE_ID_ALREADY_\")\n mstore(add(headStart, 96), \"IN_SET\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ba78ed8f777c20a07a168d501d7b3d7b92a7f1a27a40caead8609d6c05873a42__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:POL-029:BALANCE_TOO_LOW\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3836296e71c1859c2c71fd95043696a6e738e6a1a0c4395bee681aed798558c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POL-040:RISKPOOL_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:CRC-003:NOT_PRODUCT_SERVIC\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f319dea6556041246bb86b4f2b8ac2451da0edcfdd502e0f920d7f44141a5322__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-012:RISKPOOL_ALREADY_S\")\n mstore(add(headStart, 96), \"ET\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f58ee845cc4844222cd7fa0a8e8d561077a6aa1109b2c08627d10c4eab87b0d9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:POL-005:RISKPOOL_ALREADY_R\")\n mstore(add(headStart, 96), \"EGISTERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fac70cef27ea13d3b488fdaf23702ddb45d929dc3704ba843e20ef6d9116ebab__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-041:BUNDLE_IDX_TOO_LAR\")\n mstore(add(headStart, 96), \"GE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_Pool_$5502_memory_ptr__to_t_struct$_Pool_$5502_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, mload(value0))\n let memberValue0 := mload(add(value0, 0x20))\n abi_encode_address(memberValue0, add(headStart, 0x20))\n let memberValue0_1 := mload(add(value0, 0x40))\n abi_encode_address(memberValue0_1, add(headStart, 0x40))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n let _1 := 0x0100\n mstore(add(headStart, _1), mload(add(value0, _1)))\n let _2 := 0x0120\n mstore(add(headStart, _2), mload(add(value0, _2)))\n let _3 := 0x0140\n mstore(add(headStart, _3), mload(add(value0, _3)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061014d5760003560e01c8063a65e2cfd116100c3578063eb8021141161007c578063eb802114146102ad578063ec833b0c146102cd578063edb5be30146102e0578063f1d354d0146102e8578063f93b3673146102f6578063fe64372b146103095761014d565b8063a65e2cfd14610239578063c397ae391461024c578063c4d66de81461025f578063d229f3b014610272578063d407ba0014610292578063da68771a146102a55761014d565b806367d42a8b1161011557806367d42a8b146101d25780637cdb808d146101e55780637db32844146101f8578063950be8031461020b578063a054381f1461021e578063a4266a66146102265761014d565b806302108268146101525780631b07b17f146101675780632127fd481461018f57806345fe1c6d146101a257806357419e8f146101bf575b600080fd5b610165610160366004612b08565b61031c565b005b61017a610175366004612af0565b610643565b60405190151581526020015b60405180910390f35b61016561019d366004612d4a565b610c1b565b6101b1670de0b6b3a764000081565b604051908152602001610186565b6101656101cd366004612cf9565b610ce3565b6101656101e0366004612af0565b611030565b6101b16101f3366004612d4a565b611401565b6101b1610206366004612af0565b611461565b610165610219366004612d4a565b611476565b6007546101b1565b6101b1610234366004612af0565b61154d565b610165610247366004612d4a565b61156a565b61016561025a366004612d4a565b6116bf565b61016561026d366004612a98565b611819565b6101b1610280366004612af0565b60009081526003602052604090205490565b6101656102a0366004612d4a565b611997565b6101b1611afd565b6102c06102bb366004612af0565b611b13565b6040516101869190612e98565b6101b16102db366004612d4a565b611c78565b6101b1600181565b670de0b6b3a76400006101b1565b610165610304366004612d4a565b611d07565b610165610317366004612b08565b611fa5565b63141bdbdb60e21b61032d8161245e565b6001600160a01b0316306001600160a01b0316146103665760405162461bcd60e51b815260040161035d90612e20565b60405180910390fd5b6103806d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146103b05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156103f957600080fd5b505afa15801561040d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104359190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190612b29565b60068111156104e957634e487b7160e01b600052602160045260246000fd5b146105065760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105879190810190612bf6565b9050600061059482612546565b604051630d8a70f160e21b8152600481018a9052602481018990529091506001600160a01b03821690633629c3c490604401600060405180830381600087803b1580156105e057600080fd5b505af11580156105f4573d6000803e3d6000fd5b505050506020828101516000908152600382526040808220548083526004909352812060088101805491928b9261062c908490612f65565b909155505042600a90910155505050505050505050565b600063141bdbdb60e21b6106568161245e565b6001600160a01b0316306001600160a01b0316146106865760405162461bcd60e51b815260040161035d90612e20565b6106a06d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146106d05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561071957600080fd5b505afa15801561072d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107559190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612b29565b600681111561080957634e487b7160e01b600052602160045260246000fd5b146108265760405162461bcd60e51b815260040161035d90612d5c565b600954604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a79190810190612b48565b90506000815160038111156108cc57634e487b7160e01b600052602160045260246000fd5b146109295760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f4c2d3032303a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b606482015260840161035d565b60095460405163296586d360e21b8152600481018990526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561096e57600080fd5b505afa158015610982573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109aa9190810190612bf6565b602080820151600090815260039091526040808220549085015192935091906109d38383611401565b60008c81526002602090815260409182902083905581518e81529081018590529081018290529091507f893c64de8e253703b31297be336c07a93e39fe8eaa32127e2e6fff090f0aefae9060600160405180910390a160008381526004602052604090206005810154610a47908490612f65565b81600401541015610ab25760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a504f4c2d3032323a5249534b504f4f4c5f53554d5f494e53555260448201526e115117d0d05417d15610d151511151608a1b606482015260840161035d565b6000610abd86612546565b604051631121f7ef60e31b8152600481018f9052602481018590529091506001600160a01b0382169063890fbf7890604401602060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190612ad0565b9b508b15610bc95783826005016000828254610b5d9190612f65565b9250508190555082826007016000828254610b789190612f65565b909155505042600a83015560408051868152602081018f90529081018590527f66a2033a32603d30bde9ec2b858820c3202972f4ee1c8dd2c6e18391b6bfbaeb9060600160405180910390a1610c0b565b60408051868152602081018f90529081018590527fc6e314ad1256dc0c682dc6bb53e940b53f14aa323070798a8423a7f1d965d0599060600160405180910390a15b5050505050505050505050919050565b610c366e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610c665760405162461bcd60e51b815260040161035d90612dde565b60008111610cd15760405162461bcd60e51b815260206004820152603260248201527f4552524f523a504f4c2d3033323a4d41585f4e554d4245525f4f465f41435449604482015271159157d0955391131154d7d253959053125160721b606482015260840161035d565b60009182526005602052604090912055565b610cfe6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610d2e5760405162461bcd60e51b815260040161035d90612dde565b60008581526004602090815260408083206007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018a90556005909352922055600981015415610ddc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030353a5249534b504f4f4c5f414c52454144595f526044820152681151d254d51154915160ba1b606482015260840161035d565b6001600160a01b038516610e3c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3030363a57414c4c45545f414444524553535f5a45526044820152604f60f81b606482015260840161035d565b6001600160a01b038416610e925760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030373a45524332305f414444524553535f5a45524f604482015260640161035d565b610ea5670de0b6b3a76400006002612f9d565b831115610f0b5760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a504f4c2d3030383a434f4c4c41544552414c495a4154494f4e5f60448201526d0d88aac8ad8bea89e9ebe90928e960931b606482015260840161035d565b60008211610f6d5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030393a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b606482015260840161035d565b8581556001810180546001600160a01b038781166001600160a01b031992831681179093556002840180549188169190921681179091556003830185905560048301849055600060058401819055600684018190556007840181905560088401554260098401819055600a84015560408051898152602081019390935282015260608101849052608081018390527f798f4ae5a0a1e2125e89cf9f810639cd05f69896db5bd4f928bd53e6ef3bf8b99060a00160405180910390a1505050505050565b63141bdbdb60e21b6110418161245e565b6001600160a01b0316306001600160a01b0316146110715760405162461bcd60e51b815260040161035d90612e20565b61108b6d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146110bb5760405162461bcd60e51b815260040161035d90612e57565b60095460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111399190612c74565b905060028151600281111561115e57634e487b7160e01b600052602160045260246000fd5b146111b65760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3032353a504f4c4943595f53544154455f494e56414c604482015261125160f21b606482015260840161035d565b60095460405163296586d360e21b8152600481018590526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156111fb57600080fd5b505afa15801561120f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112379190810190612bf6565b9050600061124482612546565b604051636180264360e11b8152600481018790529091506001600160a01b0382169063c3004c8690602401600060405180830381600087803b15801561128957600080fd5b505af115801561129d573d6000803e3d6000fd5b5050600954604051632f141bd960e21b815260048101899052600093506001600160a01b03909116915063bc506f649060240160006040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113249190810190612b48565b6020808501516000908152600382526040808220548083526004845281832060c08a01518c855260029095529183205494955093909261136391612fbc565b9050836040015182600501600082825461137d9190612fbc565b92505081905550808260070160008282546113989190612fbc565b909155505042600a83015560008981526002602090815260408083209290925581518581529081018b90529081018290527f4948a5a8dbd6a1190cb403d7731211af859364368aafe64e104d3f3b07e846cf9060600160405180910390a1505050505050505050565b60008061140d84611b13565b606001519050670de0b6b3a764000081141561142b5782915061145a565b801561145557670de0b6b3a76400006114448483612f9d565b61144e9190612f7d565b915061145a565b600091505b5092915050565b6000818152600560205260409020545b919050565b6114916e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146114c15760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206114d990826125bf565b6115305760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034343a42554e444c455f49445f4e4f545f494e5f53604482015261115560f21b606482015260840161035d565b600082815260066020526040902061154890826125d7565b505050565b6000818152600660205260408120611564906125e3565b92915050565b6115856e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146115b55760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116349190612b29565b600681111561165357634e487b7160e01b600052602160045260246000fd5b146116705760405162461bcd60e51b815260040161035d90612d9d565b600083815260046020526040812060068101805491928592611693908490612f65565b92505081905550828160080160008282546116ae9190612f65565b909155505042600a90910155505050565b6116da6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b03161461170a5760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561175157600080fd5b505afa158015611765573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117899190612b29565b60068111156117a857634e487b7160e01b600052602160045260246000fd5b146117c55760405162461bcd60e51b815260040161035d90612d9d565b6000838152600460205260409020600681015483116117fd57828160060160008282546117f29190612fbc565b909155506118059050565b600060068201555b828160080160008282546116ae9190612fbc565b600054610100900460ff16158080156118395750600054600160ff909116105b806118535750303b158015611853575060005460ff166001145b6118b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161035d565b6000805460ff1916600117905580156118d9576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611903600090565b6541636365737360d01b14611945576119246541636365737360d01b61245e565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61194d6125ed565b8015611993576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6119b26e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146119e25760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206119fa90826125bf565b15611a565760405162461bcd60e51b815260206004820152602660248201527f4552524f523a504f4c2d3034323a42554e444c455f49445f414c52454144595f604482015265125397d4d15560d21b606482015260840161035d565b6000828152600560209081526040808320546006909252909120611a79906125e3565b10611ae55760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f4c2d3034333a4d4158494d554d5f4e554d4245525f4f465f6044820152751050d512559157d0955391131154d7d4915050d2115160521b606482015260840161035d565b600082815260066020526040902061154890826126f3565b611b10670de0b6b3a76400006002612f9d565b81565b611b826040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506000818152600460208181526040928390208351610160810185528154815260018201546001600160a01b039081169382019390935260028201549092169382019390935260038301546060820152908201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201546101208201819052600a90920154610140820152906114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034303a5249534b504f4f4c5f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b6000828152600660205260408120611c8f906125e3565b8210611ce85760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034313a42554e444c455f4944585f544f4f5f4c4152604482015261474560f01b606482015260840161035d565b6000838152600660205260409020611d0090836126ff565b9392505050565b611d307f496e7374616e63654f70657261746f725365727669636500000000000000000061245e565b6001600160a01b0316336001600160a01b031614611d9c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f4c2d3030313a4e4f545f494e5354414e43455f4f504552416044820152622a27a960e91b606482015260840161035d565b600854604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b158015611de057600080fd5b505afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612ad0565b611e645760405162461bcd60e51b815260206004820152601960248201527f4552524f523a504f4c2d3031303a4e4f545f50524f4455435400000000000000604482015260640161035d565b60085460405163ba80b8ed60e01b8152600481018390526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611ea857600080fd5b505afa158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee09190612ad0565b611f2c5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a504f4c2d3031313a4e4f545f5249534b504f4f4c000000000000604482015260640161035d565b60008281526003602052604090205415611f935760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3031323a5249534b504f4f4c5f414c52454144595f53604482015261115560f21b606482015260840161035d565b60009182526003602052604090912055565b63141bdbdb60e21b611fb68161245e565b6001600160a01b0316306001600160a01b031614611fe65760405162461bcd60e51b815260040161035d90612e20565b6120006d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146120305760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561207957600080fd5b505afa15801561208d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120b59190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561211257600080fd5b505afa158015612126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214a9190612b29565b600681111561216957634e487b7160e01b600052602160045260246000fd5b146121865760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156121cb57600080fd5b505afa1580156121df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122079190810190612bf6565b60208082015160009081526003825260408082205480835260049093529020600981015492935090916122865760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3032363a5249534b504f4f4c5f49445f494e56414c496044820152601160fa1b606482015260840161035d565b87816006015410156122da5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032373a4341504954414c5f544f4f5f4c4f57000000604482015260640161035d565b878160070154101561233a5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3032383a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b606482015260840161035d565b878160080154101561238e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032393a42414c414e43455f544f4f5f4c4f57000000604482015260640161035d565b878160060160008282546123a29190612fbc565b92505081905550878160070160008282546123bd9190612fbc565b92505081905550878160080160008282546123d89190612fbc565b909155505042600a82015560006123ee84612546565b60405163412ac48360e11b8152600481018c9052602481018b90529091506001600160a01b03821690638255890690604401600060405180830381600087803b15801561243a57600080fd5b505af115801561244e573d6000803e3d6000fd5b5050505050505050505050505050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156124a857600080fd5b505afa1580156124bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e09190612ab4565b90506001600160a01b0381166114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b602080820151600090815260039091526040812054806125b65760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034353a5249534b504f4f4c5f444f45535f4e4f545f60448201526411561254d560da1b606482015260840161035d565b611d008161270b565b60008181526001830160205260408120541515611d00565b6000611d00838361285d565b6000611564825490565b600054610100900460ff166126585760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161035d565b61266d6810dbdb5c1bdb995b9d60ba1b61245e565b600880546001600160a01b0319166001600160a01b039290921691909117905561269f65506f6c69637960d01b61245e565b600980546001600160a01b0319166001600160a01b03929092169190911790556126d16542756e646c6560d01b61245e565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000611d00838361297a565b6000611d0083836129c9565b60085460405163ba80b8ed60e01b8152600481018390526000916001600160a01b03169063ba80b8ed9060240160206040518083038186803b15801561275057600080fd5b505afa158015612764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127889190612ad0565b6127e05760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3034363a434f4d504f4e454e545f4e4f545f5249534b6044820152631413d3d360e21b606482015260840161035d565b6008546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561282557600080fd5b505afa158015612839573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d009190612ab4565b60008181526001830160205260408120548015612970576000612881600183612fbc565b855490915060009061289590600190612fbc565b90508181146129165760008660000182815481106128c357634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106128f457634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061293557634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611564565b6000915050611564565b60008181526001830160205260408120546129c157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611564565b506000611564565b60008260000182815481106129ee57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b600082601f830112612a11578081fd5b815167ffffffffffffffff811115612a2b57612a2b612fe9565b6020612a3f601f8301601f19168201612f34565b8281528582848701011115612a52578384fd5b835b83811015612a6f578581018301518282018401528201612a54565b83811115612a7f57848385840101525b5095945050505050565b80516003811061147157600080fd5b600060208284031215612aa9578081fd5b8135611d0081612fff565b600060208284031215612ac5578081fd5b8151611d0081612fff565b600060208284031215612ae1578081fd5b81518015158114611d00578182fd5b600060208284031215612b01578081fd5b5035919050565b60008060408385031215612b1a578081fd5b50508035926020909101359150565b600060208284031215612b3a578081fd5b815160078110611d00578182fd5b600060208284031215612b59578081fd5b815167ffffffffffffffff80821115612b70578283fd5b9083019060c08286031215612b83578283fd5b612b8d60c0612f34565b825160048110612b9b578485fd5b808252506020830151602082015260408301516040820152606083015182811115612bc4578485fd5b612bd087828601612a01565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612c07578081fd5b815167ffffffffffffffff80821115612c1e578283fd5b9083019060c08286031215612c31578283fd5b612c3b60c0612f34565b8251612c4681612fff565b815260208381015190820152612c5e60408401612a89565b6040820152606083015182811115612bc4578485fd5b6000610120808385031215612c87578182fd5b612c9081612f34565b9050612c9b83612a89565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080600080600060a08688031215612d10578081fd5b853594506020860135612d2281612fff565b93506040860135612d3281612fff565b94979396509394606081013594506080013592915050565b60008060408385031215612b1a578182fd5b60208082526021908201527f4552524f523a504f4c2d3030343a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526021908201527f4552524f523a504f4c2d3030333a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526022908201527f4552524f523a504f4c2d3030323a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b81518152602080830151610160830191612ebc908401826001600160a01b03169052565b506040830151612ed760408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612f5d57612f5d612fe9565b604052919050565b60008219821115612f7857612f78612fd3565b500190565b600082612f9857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612fb757612fb7612fd3565b500290565b600082821015612fce57612fce612fd3565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461301457600080fd5b5056fea2646970667358221220c3bffcc2760e53be86521cfbd777e61c2feecb4d34921b699ff2b261b3d0a62164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA65E2CFD GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xEB802114 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xEB802114 EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0xEC833B0C EQ PUSH2 0x2CD JUMPI DUP1 PUSH4 0xEDB5BE30 EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xF93B3673 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x309 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0xA65E2CFD EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0xC397AE39 EQ PUSH2 0x24C JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0xD229F3B0 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0xD407BA00 EQ PUSH2 0x292 JUMPI DUP1 PUSH4 0xDA68771A EQ PUSH2 0x2A5 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x67D42A8B GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x67D42A8B EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0x7CDB808D EQ PUSH2 0x1E5 JUMPI DUP1 PUSH4 0x7DB32844 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0x950BE803 EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0xA4266A66 EQ PUSH2 0x226 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x2108268 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x2127FD48 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x57419E8F EQ PUSH2 0x1BF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x165 PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B08 JUMP JUMPDEST PUSH2 0x31C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17A PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x165 PUSH2 0x19D CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x1B1 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x186 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x1CD CALLDATASIZE PUSH1 0x4 PUSH2 0x2CF9 JUMP JUMPDEST PUSH2 0xCE3 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x1E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1030 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x1F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1401 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x206 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1461 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x219 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1476 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x1B1 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x234 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x154D JUMP JUMPDEST PUSH2 0x165 PUSH2 0x247 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x156A JUMP JUMPDEST PUSH2 0x165 PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x16BF JUMP JUMPDEST PUSH2 0x165 PUSH2 0x26D CALLDATASIZE PUSH1 0x4 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x1819 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1997 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x1AFD JUMP JUMPDEST PUSH2 0x2C0 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1B13 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1B1 PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x1B1 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x304 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1D07 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x317 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B08 JUMP JUMPDEST PUSH2 0x1FA5 JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x32D DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x366 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x380 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x40D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x435 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x492 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4CA SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x4E9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x506 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x55F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x587 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x594 DUP3 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD8A70F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x3629C3C4 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE DUP2 KECCAK256 PUSH1 0x8 DUP2 ADD DUP1 SLOAD SWAP2 SWAP3 DUP12 SWAP3 PUSH2 0x62C SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA SWAP1 SWAP2 ADD SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x656 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x686 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x6A0 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x719 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x72D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x755 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7EA SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x809 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x86B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x87F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B48 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x8CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x929 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032303A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x96E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x982 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x9AA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 DUP6 ADD MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 PUSH2 0x9D3 DUP4 DUP4 PUSH2 0x1401 JUMP JUMPDEST PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE DUP2 MLOAD DUP15 DUP2 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0x893C64DE8E253703B31297BE336C07A93E39FE8EAA32127E2E6FFF090F0AEFAE SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 DUP2 ADD SLOAD PUSH2 0xA47 SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST DUP2 PUSH1 0x4 ADD SLOAD LT ISZERO PUSH2 0xAB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032323A5249534B504F4F4C5F53554D5F494E535552 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x115117D0D05417D15610D151511151 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xABD DUP7 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1121F7EF PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x890FBF78 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB41 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST SWAP12 POP DUP12 ISZERO PUSH2 0xBC9 JUMPI DUP4 DUP3 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB5D SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP3 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB78 SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x66A2033A32603D30BDE9EC2B858820C3202972F4EE1C8DD2C6E18391B6BFBAEB SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xC6E314AD1256DC0C682DC6BB53E940B53F14AA323070798A8423A7F1D965D059 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC36 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC66 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3033323A4D41585F4E554D4245525F4F465F41435449 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x159157D0955391131154D7D2539590531251 PUSH1 0x72 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xCFE PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP11 SWAP1 SSTORE PUSH1 0x5 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SSTORE PUSH1 0x9 DUP2 ADD SLOAD ISZERO PUSH2 0xDDC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030353A5249534B504F4F4C5F414C52454144595F52 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1151D254D511549151 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0xE3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030363A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xE92 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030373A45524332305F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0xEA5 PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 PUSH2 0x2F9D JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0xF0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030383A434F4C4C41544552414C495A4154494F4E5F PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0xD88AAC8AD8BEA89E9EBE90928E9 PUSH1 0x93 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 GT PUSH2 0xF6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030393A53554D5F4F465F53554D5F494E5355524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F4341505F5A45524F PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP6 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x2 DUP5 ADD DUP1 SLOAD SWAP2 DUP9 AND SWAP2 SWAP1 SWAP3 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP4 ADD DUP6 SWAP1 SSTORE PUSH1 0x4 DUP4 ADD DUP5 SWAP1 SSTORE PUSH1 0x0 PUSH1 0x5 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x6 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x7 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP5 ADD SSTORE TIMESTAMP PUSH1 0x9 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0xA DUP5 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x798F4AE5A0A1E2125E89CF9F810639CD05F69896DB5BD4F928BD53E6EF3BF8B9 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1041 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1071 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x108B PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1115 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1139 SWAP2 SWAP1 PUSH2 0x2C74 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x115E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x11B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032353A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x120F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1237 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1244 DUP3 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x61802643 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC3004C86 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x129D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x0 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1324 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B48 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 DUP5 MSTORE DUP2 DUP4 KECCAK256 PUSH1 0xC0 DUP11 ADD MLOAD DUP13 DUP6 MSTORE PUSH1 0x2 SWAP1 SWAP6 MSTORE SWAP2 DUP4 KECCAK256 SLOAD SWAP5 SWAP6 POP SWAP4 SWAP1 SWAP3 PUSH2 0x1363 SWAP2 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x40 ADD MLOAD DUP3 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x137D SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP3 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1398 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP4 ADD SSTORE PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP1 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x4948A5A8DBD6A1190CB403D7731211AF859364368AAFE64E104D3F3B07E846CF SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x140D DUP5 PUSH2 0x1B13 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP1 POP PUSH8 0xDE0B6B3A7640000 DUP2 EQ ISZERO PUSH2 0x142B JUMPI DUP3 SWAP2 POP PUSH2 0x145A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1455 JUMPI PUSH8 0xDE0B6B3A7640000 PUSH2 0x1444 DUP5 DUP4 PUSH2 0x2F9D JUMP JUMPDEST PUSH2 0x144E SWAP2 SWAP1 PUSH2 0x2F7D JUMP JUMPDEST SWAP2 POP PUSH2 0x145A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1491 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x14D9 SWAP1 DUP3 PUSH2 0x25BF JUMP JUMPDEST PUSH2 0x1530 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034343A42554E444C455F49445F4E4F545F494E5F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1155 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1548 SWAP1 DUP3 PUSH2 0x25D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1564 SWAP1 PUSH2 0x25E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1585 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x15B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST DUP2 PUSH1 0x3 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1610 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1634 SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1653 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1670 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D9D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x6 DUP2 ADD DUP1 SLOAD SWAP2 SWAP3 DUP6 SWAP3 PUSH2 0x1693 SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16AE SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA SWAP1 SWAP2 ADD SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x16DA PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x170A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST DUP2 PUSH1 0x3 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1751 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1765 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1789 SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x17A8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x17C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D9D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD DUP4 GT PUSH2 0x17FD JUMPI DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x17F2 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1805 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 DUP3 ADD SSTORE JUMPDEST DUP3 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16AE SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1839 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1853 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1853 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x18B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x18D9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1903 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1945 JUMPI PUSH2 0x1924 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x194D PUSH2 0x25ED JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1993 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x19B2 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19FA SWAP1 DUP3 PUSH2 0x25BF JUMP JUMPDEST ISZERO PUSH2 0x1A56 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034323A42554E444C455F49445F414C52454144595F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x125397D4D155 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH2 0x1A79 SWAP1 PUSH2 0x25E3 JUMP JUMPDEST LT PUSH2 0x1AE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034333A4D4158494D554D5F4E554D4245525F4F465F PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x1050D512559157D0955391131154D7D4915050D21151 PUSH1 0x52 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1548 SWAP1 DUP3 PUSH2 0x26F3 JUMP JUMPDEST PUSH2 0x1B10 PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 PUSH2 0x2F9D JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH2 0x1B82 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH2 0x160 DUP2 ADD DUP6 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP1 SWAP3 AND SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH2 0x120 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xA SWAP1 SWAP3 ADD SLOAD PUSH2 0x140 DUP3 ADD MSTORE SWAP1 PUSH2 0x1471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034303A5249534B504F4F4C5F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1C8F SWAP1 PUSH2 0x25E3 JUMP JUMPDEST DUP3 LT PUSH2 0x1CE8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034313A42554E444C455F4944585F544F4F5F4C4152 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4745 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1D00 SWAP1 DUP4 PUSH2 0x26FF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1D30 PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1D9C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E18 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x1E64 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031303A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EE0 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x1F2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031313A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1F93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031323A5249534B504F4F4C5F414C52454144595F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1155 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1FB6 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1FE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x2000 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2030 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2079 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x208D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x20B5 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2126 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x214A SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2169 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2186 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21DF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2207 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP1 KECCAK256 PUSH1 0x9 DUP2 ADD SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH2 0x2286 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032363A5249534B504F4F4C5F49445F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x22DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032373A4341504954414C5F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO PUSH2 0x233A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032383A4C4F434B45445F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F4C4F57 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x8 ADD SLOAD LT ISZERO PUSH2 0x238E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032393A42414C414E43455F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23A2 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP8 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23BD SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP8 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23D8 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP3 ADD SSTORE PUSH1 0x0 PUSH2 0x23EE DUP5 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x412AC483 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x82558906 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x243A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x244E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24E0 SWAP2 SWAP1 PUSH2 0x2AB4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x25B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034353A5249534B504F4F4C5F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x1D00 DUP2 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1D00 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x285D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1564 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2658 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x266D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x269F PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x26D1 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x297A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x29C9 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2750 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2764 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2788 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x27E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034363A434F4D504F4E454E545F4E4F545F5249534B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1413D3D3 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2825 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2839 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D00 SWAP2 SWAP1 PUSH2 0x2AB4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x2970 JUMPI PUSH1 0x0 PUSH2 0x2881 PUSH1 0x1 DUP4 PUSH2 0x2FBC JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2895 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x2916 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x28C3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x28F4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x2935 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x29C1 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1564 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x29EE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A11 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A2B JUMPI PUSH2 0x2A2B PUSH2 0x2FE9 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x2A3F PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH2 0x2F34 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP6 DUP3 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x2A52 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2A6F JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP3 DUP3 ADD DUP5 ADD MSTORE DUP3 ADD PUSH2 0x2A54 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2A7F JUMPI DUP5 DUP4 DUP6 DUP5 ADD ADD MSTORE JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AA9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1D00 DUP2 PUSH2 0x2FFF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AC5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1D00 DUP2 PUSH2 0x2FFF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AE1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1D00 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B01 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B1A JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B3A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1D00 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B59 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2B70 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2B83 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2B8D PUSH1 0xC0 PUSH2 0x2F34 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x2B9B JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BC4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2BD0 DUP8 DUP3 DUP7 ADD PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C07 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C1E JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2C31 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2C3B PUSH1 0xC0 PUSH2 0x2F34 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2C46 DUP2 PUSH2 0x2FFF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2C5E PUSH1 0x40 DUP5 ADD PUSH2 0x2A89 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BC4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C87 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2C90 DUP2 PUSH2 0x2F34 JUMP JUMPDEST SWAP1 POP PUSH2 0x2C9B DUP4 PUSH2 0x2A89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2D10 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2D22 DUP2 PUSH2 0x2FFF JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x2D32 DUP2 PUSH2 0x2FFF JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B1A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030343A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030333A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030323A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH2 0x160 DUP4 ADD SWAP2 PUSH2 0x2EBC SWAP1 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2ED7 PUSH1 0x40 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2F5D JUMPI PUSH2 0x2F5D PUSH2 0x2FE9 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2F78 JUMPI PUSH2 0x2F78 PUSH2 0x2FD3 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2F98 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2FB7 JUMPI PUSH2 0x2FB7 PUSH2 0x2FD3 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2FCE JUMPI PUSH2 0x2FCE PUSH2 0x2FD3 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3014 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0xBF 0xFC 0xC2 PUSH23 0xE53BE86521CFBD777E61C2FEECB4D34921B699FF2B261 0xB3 0xD0 0xA6 0x21 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2976:14040:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10925:574;;;;;;:::i;:::-;;:::i;:::-;;8223:1945;;;;;;:::i;:::-;;:::i;:::-;;;7011:14:103;;7004:22;6986:41;;6974:2;6959:18;8223:1945:78;;;;;;;;13652:345;;;;;;:::i;:::-;;:::i;3251:61::-;;3306:6;3251:61;;;;;7184:25:103;;;7172:2;7157:18;3251:61:78;7139:76:103;5573:1453:78;;;;;;:::i;:::-;;:::i;12489:1157::-;;;;;;:::i;:::-;;:::i;10175:743::-;;;;;;:::i;:::-;;:::i;14003:198::-;;;;;;:::i;:::-;;:::i;15870:383::-;;;;;;:::i;:::-;;:::i;14211:87::-;14276:12;:19;14211:87;;14689:183;;;;;;:::i;:::-;;:::i;7505:306::-;;;;;;:::i;:::-;;:::i;7817:400::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;14532:151:78:-;;;;;;:::i;:::-;14605:18;14642:34;;;:23;:34;;;;;;;14532:151;15251:613;;;;;;:::i;:::-;;:::i;3373:86::-;;;:::i;14305:221::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14878:367::-;;;;;;:::i;:::-;;:::i;3466:64::-;;3529:1;3466:64;;16259:125;3306:6;16259:125;;7032:467;;;;;;:::i;:::-;;:::i;11506:976::-;;;;;;:::i;:::-;;:::i;10925:574::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;;;;;;;;;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;4991:7:78::1;::::0;:30:::1;::::0;-1:-1:-1;;;4991:30:78;;::::1;::::0;::::1;7184:25:103::0;;;11075:9:78;;4956:32:::1;::::0;-1:-1:-1;;;;;4991:7:78;;::::1;::::0;:19:::1;::::0;7157:18:103;;4991:30:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4991:30:78::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;5076:18;::::0;;::::1;::::0;5031::::1;5052:43:::0;;;:23:::1;:43:::0;;;;;;;;4956:65;;-1:-1:-1;5126:10:78::1;::::0;:40:::1;::::0;-1:-1:-1;;;5126:40:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;5126:10:78;;::::1;::::0;:28:::1;::::0;7157:18:103;;5126:40:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;;;;;-1:-1:-1::0;;;5126:76:78::1;;;;;;;;;;5105:157;;;;-1:-1:-1::0;;;5105:157:78::1;;;;;;;:::i;:::-;11135:7:::2;::::0;:30:::2;::::0;-1:-1:-1;;;11135:30:78;;::::2;::::0;::::2;7184:25:103::0;;;11100:32:78::2;::::0;-1:-1:-1;;;;;11135:7:78::2;::::0;:19:::2;::::0;7157:18:103;;11135:30:78::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;11135:30:78::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;11100:65;;11175:18;11196:31;11218:8;11196:21;:31::i;:::-;11237:48;::::0;-1:-1:-1;;;11237:48:78;;::::2;::::0;::::2;7394:25:103::0;;;7435:18;;;7428:34;;;11175:52:78;;-1:-1:-1;;;;;;11237:29:78;::::2;::::0;::::2;::::0;7367:18:103;;11237:48:78::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;;;11341:18:78::2;::::0;;::::2;::::0;11296::::2;11317:43:::0;;;:23:::2;:43:::0;;;;;;;11396:22;;;:10:::2;:22:::0;;;;;11428:12:::2;::::0;::::2;:22:::0;;11396;;11444:6;;11428:22:::2;::::0;11444:6;;11428:22:::2;:::i;:::-;::::0;;;-1:-1:-1;;11477:15:78::2;11460:14;::::0;;::::2;:32:::0;-1:-1:-1;;;;;;;;;10925:574:78:o;8223:1945::-;8381:12;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;4991:7:78::1;::::0;:30:::1;::::0;-1:-1:-1;;;4991:30:78;;::::1;::::0;::::1;7184:25:103::0;;;8354:9:78;;4956:32:::1;::::0;-1:-1:-1;;;;;4991:7:78;;::::1;::::0;:19:::1;::::0;7157:18:103;;4991:30:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4991:30:78::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;5076:18;::::0;;::::1;::::0;5031::::1;5052:43:::0;;;:23:::1;:43:::0;;;;;;;;4956:65;;-1:-1:-1;5126:10:78::1;::::0;:40:::1;::::0;-1:-1:-1;;;5126:40:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;5126:10:78;;::::1;::::0;:28:::1;::::0;7157:18:103;;5126:40:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;;;;;-1:-1:-1::0;;;5126:76:78::1;;;;;;;;;;5105:157;;;;-1:-1:-1::0;;;5105:157:78::1;;;;;;;:::i;:::-;8504:7:::2;::::0;:33:::2;::::0;-1:-1:-1;;;8504:33:78;;::::2;::::0;::::2;7184:25:103::0;;;8463:38:78::2;::::0;-1:-1:-1;;;;;8504:7:78::2;::::0;:22:::2;::::0;7157:18:103;;8504:33:78::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;8504:33:78::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;8463:74:::0;-1:-1:-1;8589:32:78::2;8568:17:::0;;:53:::2;::::0;::::2;;;;-1:-1:-1::0;;;8568:53:78::2;;;;;;;;;;8547:139;;;::::0;-1:-1:-1;;;8547:139:78;;15340:2:103;8547:139:78::2;::::0;::::2;15322:21:103::0;15379:2;15359:18;;;15352:30;15418:34;15398:18;;;15391:62;-1:-1:-1;;;15469:18:103;;;15462:37;15516:19;;8547:139:78::2;15312:229:103::0;8547:139:78::2;8790:7;::::0;:30:::2;::::0;-1:-1:-1;;;8790:30:78;;::::2;::::0;::::2;7184:25:103::0;;;8755:32:78::2;::::0;-1:-1:-1;;;;;8790:7:78::2;::::0;:19:::2;::::0;7157:18:103;;8790:30:78::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;8790:30:78::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;8875:18;::::0;;::::2;::::0;8830::::2;8851:43:::0;;;:23:::2;:43:::0;;;;;;;;8980:28;;::::2;::::0;8755:65;;-1:-1:-1;8851:43:78;8980:28;9045:49:::2;8851:43:::0;8980:28;9045:19:::2;:49::i;:::-;9104:28;::::0;;;:17:::2;:28;::::0;;;;;;;;:47;;;9167:76;;7675:25:103;;;7716:18;;;7709:34;;;7759:18;;;7752:34;;;9104:47:78;;-1:-1:-1;9167:76:78::2;::::0;7663:2:103;7648:18;9167:76:78::2;;;;;;;9350:23;9376:22:::0;;;:10:::2;:22;::::0;;;;9456:26:::2;::::0;::::2;::::0;:45:::2;::::0;9485:16;;9456:45:::2;:::i;:::-;9429:4;:23;;;:72;;9408:166;;;::::0;-1:-1:-1;;;9408:166:78;;9820:2:103;9408:166:78::2;::::0;::::2;9802:21:103::0;9859:2;9839:18;;;9832:30;9898:34;9878:18;;;9871:62;-1:-1:-1;;;9949:18:103;;;9942:45;10004:19;;9408:166:78::2;9792:237:103::0;9408:166:78::2;9631:18;9652:31;9674:8;9652:21;:31::i;:::-;9703:57;::::0;-1:-1:-1;;;9703:57:78;;::::2;::::0;::::2;7394:25:103::0;;;7435:18;;;7428:34;;;9631:52:78;;-1:-1:-1;;;;;;9703:28:78;::::2;::::0;::::2;::::0;7367:18:103;;9703:57:78::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9693:67;;9775:7;9771:391;;;9828:16;9798:4;:26;;;:46;;;;;;;:::i;:::-;;;;;;;;9880:16;9858:4;:18;;;:38;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9927:15:78::2;9910:14;::::0;::::2;:32:::0;9962:78:::2;::::0;;7675:25:103;;;7731:2;7716:18;;7709:34;;;7759:18;;;7752:34;;;9962:78:78::2;::::0;7663:2:103;7648:18;9962:78:78::2;;;;;;;9771:391;;;10076:75;::::0;;7675:25:103;;;7731:2;7716:18;;7709:34;;;7759:18;;;7752:34;;;10076:75:78::2;::::0;7663:2:103;7648:18;10076:75:78::2;;;;;;;9771:391;5272:1;;;;;;;1129::88::1;;;8223:1945:78::0;;;;:::o;13652:345::-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;13842:1:::1;13815:24;:28;13807:91;;;::::0;-1:-1:-1;;;13807:91:78;;14506:2:103;13807:91:78::1;::::0;::::1;14488:21:103::0;14545:2;14525:18;;;14518:30;14584:34;14564:18;;;14557:62;-1:-1:-1;;;14635:18:103;;;14628:48;14693:19;;13807:91:78::1;14478:240:103::0;13807:91:78::1;13908:55;::::0;;;:43:::1;:55;::::0;;;;;:82;13652:345::o;5573:1453::-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;5831:23:::1;5857:22:::0;;;:10:::1;:22;::::0;;;;;;;5889:12:::1;:29:::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;5928:43:::1;:55:::0;;;;;:94;6049:14:::1;::::0;::::1;::::0;:19;6041:73:::1;;;::::0;-1:-1:-1;;;6041:73:78;;20120:2:103;6041:73:78::1;::::0;::::1;20102:21:103::0;20159:2;20139:18;;;20132:30;20198:34;20178:18;;;20171:62;-1:-1:-1;;;20249:18:103;;;20242:39;20298:19;;6041:73:78::1;20092:231:103::0;6041:73:78::1;-1:-1:-1::0;;;;;6133:20:78;::::1;6125:66;;;::::0;-1:-1:-1;;;6125:66:78;;11395:2:103;6125:66:78::1;::::0;::::1;11377:21:103::0;11434:2;11414:18;;;11407:30;11473:34;11453:18;;;11446:62;-1:-1:-1;;;11524:18:103;;;11517:31;11565:19;;6125:66:78::1;11367:223:103::0;6125:66:78::1;-1:-1:-1::0;;;;;6209:24:78;::::1;6201:69;;;::::0;-1:-1:-1;;;6201:69:78;;12622:2:103;6201:69:78::1;::::0;::::1;12604:21:103::0;;;12641:18;;;12634:30;12700:34;12680:18;;;12673:62;12752:18;;6201:69:78::1;12594:182:103::0;6201:69:78::1;3427:32;3306:6;3427:1;:32;:::i;:::-;6288:22;:53;;6280:112;;;::::0;-1:-1:-1;;;6280:112:78;;17317:2:103;6280:112:78::1;::::0;::::1;17299:21:103::0;17356:2;17336:18;;;17329:30;17395:34;17375:18;;;17368:62;-1:-1:-1;;;17446:18:103;;;17439:44;17500:19;;6280:112:78::1;17289:236:103::0;6280:112:78::1;6431:1;6410:18;:22;6402:76;;;::::0;-1:-1:-1;;;6402:76:78;;9008:2:103;6402:76:78::1;::::0;::::1;8990:21:103::0;9047:2;9027:18;;;9020:30;9086:34;9066:18;;;9059:62;-1:-1:-1;;;9137:18:103;;;9130:39;9186:19;;6402:76:78::1;8980:231:103::0;6402:76:78::1;6489:20:::0;;;6520:11:::1;::::0;::::1;:20:::0;;-1:-1:-1;;;;;6520:20:78;;::::1;-1:-1:-1::0;;;;;;6520:20:78;;::::1;::::0;::::1;::::0;;;6551:15:::1;::::0;::::1;:28:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;6590:27:::1;::::0;::::1;:52:::0;;;6652:23:::1;::::0;::::1;:44:::0;;;-1:-1:-1;6707:26:78::1;::::0;::::1;:30:::0;;;6747:12:::1;::::0;::::1;:16:::0;;;6773:18:::1;::::0;::::1;:22:::0;;;6805:12:::1;::::0;::::1;:16:::0;6849:15:::1;6832:14;::::0;::::1;:32:::0;;;6874:14:::1;::::0;::::1;:32:::0;6922:97:::1;::::0;;22209:25:103;;;22303:2;22288:18;;22281:43;;;;22340:18;;22333:43;22407:2;22392:18;;22385:34;;;22450:3;22435:19;;22428:35;;;6922:97:78::1;::::0;22196:3:103;22181:19;6922:97:78::1;;;;;;;4644:1;5573:1453:::0;;;;;:::o;12489:1157::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;12628:7:78::1;::::0;:28:::1;::::0;-1:-1:-1;;;12628:28:78;;::::1;::::0;::::1;7184:25:103::0;;;12597:28:78::1;::::0;-1:-1:-1;;;;;12628:7:78::1;::::0;:17:::1;::::0;7157:18:103;;12628:28:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12597:59:::0;-1:-1:-1;12703:26:78::1;12687:12:::0;;:42:::1;::::0;::::1;;;;-1:-1:-1::0;;;12687:42:78::1;;;;;;;;;;12666:123;;;::::0;-1:-1:-1;;;12666:123:78;;15748:2:103;12666:123:78::1;::::0;::::1;15730:21:103::0;15787:2;15767:18;;;15760:30;15826:34;15806:18;;;15799:62;-1:-1:-1;;;15877:18:103;;;15870:32;15919:19;;12666:123:78::1;15720:224:103::0;12666:123:78::1;12835:7;::::0;:30:::1;::::0;-1:-1:-1;;;12835:30:78;;::::1;::::0;::::1;7184:25:103::0;;;12800:32:78::1;::::0;-1:-1:-1;;;;;12835:7:78::1;::::0;:19:::1;::::0;7157:18:103;;12835:30:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;12835:30:78::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;12800:65;;12875:18;12896:31;12918:8;12896:21;:31::i;:::-;12937:33;::::0;-1:-1:-1;;;12937:33:78;;::::1;::::0;::::1;7184:25:103::0;;;12875:52:78;;-1:-1:-1;;;;;;12937:22:78;::::1;::::0;::::1;::::0;7157:18:103;;12937:33:78::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13022:7:78::1;::::0;:33:::1;::::0;-1:-1:-1;;;13022:33:78;;::::1;::::0;::::1;7184:25:103::0;;;12981:38:78::1;::::0;-1:-1:-1;;;;;;13022:7:78;;::::1;::::0;-1:-1:-1;13022:22:78::1;::::0;7157:18:103;;13022:33:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;13022:33:78::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;13111:18;::::0;;::::1;::::0;13066::::1;13087:43:::0;;;:23:::1;:43:::0;;;;;;;13166:22;;;:10:::1;:22:::0;;;;;13265:19:::1;::::0;::::1;::::0;13234:28;;;:17:::1;:28:::0;;;;;;;12981:74;;-1:-1:-1;13087:43:78;13166:22;;13234:50:::1;::::0;::::1;:::i;:::-;13198:86;;13325:11;:28;;;13295:4;:26;;;:58;;;;;;;:::i;:::-;;;;;;;;13385:25;13363:4;:18;;;:47;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13437:15:78::1;13420:14;::::0;::::1;:32:::0;13517:28:::1;::::0;;;:17:::1;:28;::::0;;;;;;;13510:35;;;;13560:79;;7675:25:103;;;7716:18;;;7709:34;;;7759:18;;;7752:34;;;13560:79:78::1;::::0;7663:2:103;7648:18;13560:79:78::1;;;;;;;1129:1:88;;;;;;;12489:1157:78::0;;:::o;10175:743::-;10297:24;10338:25;10366:23;10378:10;10366:11;:23::i;:::-;:46;;;10338:74;;3306:6;10464:17;:49;10460:452;;;10548:16;10529:35;;10460:452;;;10630:21;;10626:286;;3306:6;10687:36;10707:16;10687:17;:36;:::i;:::-;10686:69;;;;:::i;:::-;10667:88;;10626:286;;;10900:1;10881:20;;10626:286;10175:743;;;;;:::o;14003:198::-;14084:36;14139:55;;;:43;:55;;;;;;14003:198;;;;:::o;15870:383::-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;16049:41:::1;::::0;;;:29:::1;:41;::::0;;;;16026:75:::1;::::0;16092:8;16026:22:::1;:75::i;:::-;16005:157;;;::::0;-1:-1:-1;;;16005:157:78;;10590:2:103;16005:157:78::1;::::0;::::1;10572:21:103::0;10629:2;10609:18;;;10602:30;10668:34;10648:18;;;10641:62;-1:-1:-1;;;10719:18:103;;;10712:32;10761:19;;16005:157:78::1;10562:224:103::0;16005:157:78::1;16194:41;::::0;;;:29:::1;:41;::::0;;;;16173:73:::1;::::0;16237:8;16173:20:::1;:73::i;:::-;;15870:383:::0;;:::o;14689:183::-;14754:29;14823:41;;;:29;:41;;;;;14802:63;;:20;:63::i;:::-;14795:70;14689:183;-1:-1:-1;;14689:183:78:o;7505:306::-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;7624:10;4777:32:::1;4733:10;::::0;:40:::1;::::0;-1:-1:-1;;;4733:40:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;4733:10:78;;::::1;::::0;:28:::1;::::0;7157:18:103;;4733:40:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;;;;;-1:-1:-1::0;;;4733:76:78::1;;;;;;;;;;4712:157;;;;-1:-1:-1::0;;;4712:157:78::1;;;;;;;:::i;:::-;7650:23:::2;7676:22:::0;;;:10:::2;:22;::::0;;;;7708:12:::2;::::0;::::2;:22:::0;;7676;;7724:6;;7708:22:::2;::::0;7724:6;;7708:22:::2;:::i;:::-;;;;;;;;7756:6;7740:4;:12;;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;7789:15:78::2;7772:14;::::0;;::::2;:32:::0;-1:-1:-1;;;7505:306:78:o;7817:400::-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;7938:10;4777:32:::1;4733:10;::::0;:40:::1;::::0;-1:-1:-1;;;4733:40:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;4733:10:78;;::::1;::::0;:28:::1;::::0;7157:18:103;;4733:40:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;;;;;-1:-1:-1::0;;;4733:76:78::1;;;;;;;;;;4712:157;;;;-1:-1:-1::0;;;4712:157:78::1;;;;;;;:::i;:::-;7964:23:::2;7990:22:::0;;;:10:::2;:22;::::0;;;;8027:12:::2;::::0;::::2;::::0;:22;-1:-1:-1;8023:113:78::2;;8069:6;8053:4;:12;;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;8023:113:78::2;::::0;-1:-1:-1;8023:113:78::2;;8132:1;8117:12;::::0;::::2;:16:::0;8023:113:::2;8162:6;8146:4;:12;;;:22;;;;;;;:::i;1143:232:88:-:0;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;14925:2:103;3146:190:47;;;14907:21:103;14964:2;14944:18;;;14937:30;15003:34;14983:18;;;14976:62;-1:-1:-1;;;15054:18:103;;;15047:44;15108:19;;3146:190:47;14897:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;7949:36:103;;3531:14:47;;7937:2:103;7922:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;15251:613:78:-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;15426:41:::1;::::0;;;:29:::1;:41;::::0;;;;15403:75:::1;::::0;15469:8;15403:22:::1;:75::i;:::-;15402:76;15381:162;;;::::0;-1:-1:-1;;;15381:162:78;;17732:2:103;15381:162:78::1;::::0;::::1;17714:21:103::0;17771:2;17751:18;;;17744:30;17810:34;17790:18;;;17783:62;-1:-1:-1;;;17861:18:103;;;17854:36;17907:19;;15381:162:78::1;17704:228:103::0;15381:162:78::1;15640:55;::::0;;;:43:::1;:55;::::0;;;;;;;;15595:29:::1;:41:::0;;;;;;15574:63:::1;::::0;:20:::1;:63::i;:::-;:121;15553:223;;;::::0;-1:-1:-1;;;15553:223:78;;12199:2:103;15553:223:78::1;::::0;::::1;12181:21:103::0;12238:2;12218:18;;;12211:30;12277:34;12257:18;;;12250:62;-1:-1:-1;;;12328:18:103;;;12321:52;12390:19;;15553:223:78::1;12171:244:103::0;15553:223:78::1;15805:41;::::0;;;:29:::1;:41;::::0;;;;15787:70:::1;::::0;15848:8;15787:17:::1;:70::i;3373:86::-:0;3427:32;3306:6;3427:1;:32;:::i;:::-;3373:86;:::o;14305:221::-;14366:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14366:26:78;-1:-1:-1;14415:22:78;;;;:10;:22;;;;;;;;;14404:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;14404:33:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14447:72;;;;-1:-1:-1;;;14447:72:78;;18497:2:103;14447:72:78;;;18479:21:103;18536:2;18516:18;;;18509:30;18575:34;18555:18;;;18548:62;-1:-1:-1;;;18626:18:103;;;18619:35;18671:19;;14447:72:78;18469:227:103;14878:367:78;14966:16;15048:41;;;:29;:41;;;;;15027:63;;:20;:63::i;:::-;15015:9;:75;14994:156;;;;-1:-1:-1;;;14994:156:78;;20530:2:103;14994:156:78;;;20512:21:103;20569:2;20549:18;;;20542:30;20608:34;20588:18;;;20581:62;-1:-1:-1;;;20659:18:103;;;20652:32;20701:19;;14994:156:78;20502:224:103;14994:156:78;15185:41;;;;:29;:41;;;;;15168:70;;15228:9;15168:16;:70::i;:::-;15161:77;14878:367;-1:-1:-1;;;14878:367:78:o;7032:467::-;4327:46;;:19;:46::i;:::-;-1:-1:-1;;;;;4311:62:78;719:10:59;-1:-1:-1;;;;;4311:62:78;;4290:144;;;;-1:-1:-1;;;4290:144:78;;8198:2:103;4290:144:78;;;8180:21:103;8237:2;8217:18;;;8210:30;8276:34;8256:18;;;8249:62;-1:-1:-1;;;8327:18:103;;;8320:33;8370:19;;4290:144:78;8170:225:103;4290:144:78;7187:10:::1;::::0;:31:::1;::::0;-1:-1:-1;;;7187:31:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;7187:10:78;;::::1;::::0;:20:::1;::::0;7157:18:103;;7187:31:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7179:69;;;::::0;-1:-1:-1;;;7179:69:78;;10236:2:103;7179:69:78::1;::::0;::::1;10218:21:103::0;10275:2;10255:18;;;10248:30;10314:27;10294:18;;;10287:55;10359:18;;7179:69:78::1;10208:175:103::0;7179:69:78::1;7266:10;::::0;:33:::1;::::0;-1:-1:-1;;;7266:33:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;7266:10:78;;::::1;::::0;:21:::1;::::0;7157:18:103;;7266:33:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7258:72;;;::::0;-1:-1:-1;;;7258:72:78;;13388:2:103;7258:72:78::1;::::0;::::1;13370:21:103::0;13427:2;13407:18;;;13400:30;13466:28;13446:18;;;13439:56;13512:18;;7258:72:78::1;13360:176:103::0;7258:72:78::1;7348:34;::::0;;;:23:::1;:34;::::0;;;;;:39;7340:86:::1;;;::::0;-1:-1:-1;;;7340:86:78;;19717:2:103;7340:86:78::1;::::0;::::1;19699:21:103::0;19756:2;19736:18;;;19729:30;19795:34;19775:18;;;19768:62;-1:-1:-1;;;19846:18:103;;;19839:32;19888:19;;7340:86:78::1;19689:224:103::0;7340:86:78::1;7445:34;::::0;;;:23:::1;:34;::::0;;;;;:47;7032:467::o;11506:976::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;4991:7:78::1;::::0;:30:::1;::::0;-1:-1:-1;;;4991:30:78;;::::1;::::0;::::1;7184:25:103::0;;;11655:9:78;;4956:32:::1;::::0;-1:-1:-1;;;;;4991:7:78;;::::1;::::0;:19:::1;::::0;7157:18:103;;4991:30:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4991:30:78::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;5076:18;::::0;;::::1;::::0;5031::::1;5052:43:::0;;;:23:::1;:43:::0;;;;;;;;4956:65;;-1:-1:-1;5126:10:78::1;::::0;:40:::1;::::0;-1:-1:-1;;;5126:40:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;5126:10:78;;::::1;::::0;:28:::1;::::0;7157:18:103;;5126:40:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;;;;;-1:-1:-1::0;;;5126:76:78::1;;;;;;;;;;5105:157;;;;-1:-1:-1::0;;;5105:157:78::1;;;;;;;:::i;:::-;11715:7:::2;::::0;:30:::2;::::0;-1:-1:-1;;;11715:30:78;;::::2;::::0;::::2;7184:25:103::0;;;11680:32:78::2;::::0;-1:-1:-1;;;;;11715:7:78::2;::::0;:19:::2;::::0;7157:18:103;;11715:30:78::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;11715:30:78::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;11800:18;::::0;;::::2;::::0;11755::::2;11776:43:::0;;;:23:::2;:43:::0;;;;;;;11855:22;;;:10:::2;:22:::0;;;;;11895:14:::2;::::0;::::2;::::0;11680:65;;-1:-1:-1;11776:43:78;;11887:64:::2;;;::::0;-1:-1:-1;;;11887:64:78;;11797:2:103;11887:64:78::2;::::0;::::2;11779:21:103::0;11836:2;11816:18;;;11809:30;11875:34;11855:18;;;11848:62;-1:-1:-1;;;11926:18:103;;;11919:31;11967:19;;11887:64:78::2;11769:223:103::0;11887:64:78::2;11985:6;11969:4;:12;;;:22;;11961:64;;;::::0;-1:-1:-1;;;11961:64:78;;14148:2:103;11961:64:78::2;::::0;::::2;14130:21:103::0;14187:2;14167:18;;;14160:30;14226:31;14206:18;;;14199:59;14275:18;;11961:64:78::2;14120:179:103::0;11961:64:78::2;12065:6;12043:4;:18;;;:28;;12035:77;;;::::0;-1:-1:-1;;;12035:77:78;;12983:2:103;12035:77:78::2;::::0;::::2;12965:21:103::0;13022:2;13002:18;;;12995:30;13061:34;13041:18;;;13034:62;-1:-1:-1;;;13112:18:103;;;13105:34;13156:19;;12035:77:78::2;12955:226:103::0;12035:77:78::2;12146:6;12130:4;:12;;;:22;;12122:64;;;::::0;-1:-1:-1;;;12122:64:78;;18139:2:103;12122:64:78::2;::::0;::::2;18121:21:103::0;18178:2;18158:18;;;18151:30;18217:31;18197:18;;;18190:59;18266:18;;12122:64:78::2;18111:179:103::0;12122:64:78::2;12213:6;12197:4;:12;;;:22;;;;;;;:::i;:::-;;;;;;;;12251:6;12229:4;:18;;;:28;;;;;;;:::i;:::-;;;;;;;;12283:6;12267:4;:12;;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12316:15:78::2;12299:14;::::0;::::2;:32:::0;12366:18:::2;12387:31;12409:8:::0;12387:21:::2;:31::i;:::-;12428:47;::::0;-1:-1:-1;;;12428:47:78;;::::2;::::0;::::2;7394:25:103::0;;;7435:18;;;7428:34;;;12366:52:78;;-1:-1:-1;;;;;;12428:28:78;::::2;::::0;::::2;::::0;7367:18:103;;12428:47:78::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;5272:1;;;;1129::88::1;;;11506:976:78::0;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;7184:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;7157:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;8602:2:103;1703:113:88;;;8584:21:103;8641:2;8621:18;;;8614:30;8680:34;8660:18;;;8653:62;-1:-1:-1;;;8731:18:103;;;8724:35;8776:19;;1703:113:88;8574:227:103;16390:314:78;16553:18;;;;;16478;16529:43;;;:23;:43;;;;;;;16590:14;16582:64;;;;-1:-1:-1;;;16582:64:78;;16554:2:103;16582:64:78;;;16536:21:103;16593:2;16573:18;;;16566:30;16632:34;16612:18;;;16605:62;-1:-1:-1;;;16683:18:103;;;16676:35;16728:19;;16582:64:78;16526:227:103;16582:64:78;16668:29;16686:10;16668:17;:29::i;11029:144:64:-;11106:4;4250:19;;;:12;;;:19;;;;;;:24;;11129:37;4154:127;10813:135;10883:4;10906:35;10914:3;10934:5;10906:7;:35::i;11254:112::-;11314:7;11340:19;11348:3;4444:18;;4362:107;5286:280:78;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;18903:2:103;4880:69:47;;;18885:21:103;18942:2;18922:18;;;18915:30;18981:34;18961:18;;;18954:62;-1:-1:-1;;;19032:18:103;;;19025:41;19083:19;;4880:69:47;18875:233:103;4880:69:47;5392:32:78::1;-1:-1:-1::0;;;5392:19:78::1;:32::i;:::-;5359:10;:66:::0;;-1:-1:-1;;;;;;5359:66:78::1;-1:-1:-1::0;;;;;5359:66:78;;;::::1;::::0;;;::::1;::::0;;5462:29:::1;-1:-1:-1::0;;;5462:19:78::1;:29::i;:::-;5435:7;:57:::0;;-1:-1:-1;;;;;;5435:57:78::1;-1:-1:-1::0;;;;;5435:57:78;;;::::1;::::0;;;::::1;::::0;;5529:29:::1;-1:-1:-1::0;;;5529:19:78::1;:29::i;:::-;5502:7;:57:::0;;-1:-1:-1;;;;;;5502:57:78::1;-1:-1:-1::0;;;;;5502:57:78;;;::::1;::::0;;;::::1;::::0;;5286:280::o;10516:129:64:-;10583:4;10606:32;10611:3;10631:5;10606:4;:32::i;11708:135::-;11779:7;11813:22;11817:3;11829:5;11813:3;:22::i;16710:304:78:-;16818:10;;:33;;-1:-1:-1;;;16818:33:78;;;;;7184:25:103;;;16780:18:78;;-1:-1:-1;;;;;16818:10:78;;:21;;7157:18:103;;16818:33:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16810:82;;;;-1:-1:-1;;;16810:82:78;;13743:2:103;16810:82:78;;;13725:21:103;13782:2;13762:18;;;13755:30;13821:34;13801:18;;;13794:62;-1:-1:-1;;;13872:18:103;;;13865:34;13916:19;;16810:82:78;13715:226:103;16810:82:78;16928:10;;:35;;-1:-1:-1;;;16928:35:78;;;;;7184:25:103;;;16911:14:78;;-1:-1:-1;;;;;16928:10:78;;:23;;7157:18:103;;16928:35:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2685:1388:64:-;2751:4;2888:19;;;:12;;;:19;;;;;;2922:15;;2918:1149;;3291:21;3315:14;3328:1;3315:10;:14;:::i;:::-;3363:18;;3291:38;;-1:-1:-1;3343:17:64;;3363:22;;3384:1;;3363:22;:::i;:::-;3343:42;;3417:13;3404:9;:26;3400:398;;3450:17;3470:3;:11;;3482:9;3470:22;;;;;;-1:-1:-1;;;3470:22:64;;;;;;;;;;;;;;;;;3450:42;;3621:9;3592:3;:11;;3604:13;3592:26;;;;;;-1:-1:-1;;;3592:26:64;;;;;;;;;;;;;;;;;;;;:38;;;;3704:23;;;:12;;;:23;;;;;:36;;;3400:398;3876:17;;:3;;:17;;;-1:-1:-1;;;3876:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;3968:3;:12;;:19;3981:5;3968:19;;;;;;;;;;;3961:26;;;4009:4;4002:11;;;;;;;2918:1149;4051:5;4044:12;;;;;2113:404;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;4811:118;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;14:718:103:-;;120:3;113:4;105:6;101:17;97:27;87:2;;142:5;135;128:20;87:2;175:6;169:13;201:18;197:2;194:26;191:2;;;223:18;;:::i;:::-;262:4;290:53;333:2;314:13;;-1:-1:-1;;310:27:103;306:36;;290:53;:::i;:::-;368:2;359:7;352:19;412:3;407:2;402;394:6;390:15;386:24;383:33;380:2;;;433:5;426;419:20;380:2;459:5;473:134;487:2;484:1;481:9;473:134;;;576:14;;;572:23;;566:30;544:15;;;540:24;;533:64;498:10;;473:134;;;625:2;622:1;619:9;616:2;;;685:5;680:2;675;666:7;662:16;658:25;651:40;616:2;-1:-1:-1;719:7:103;77:655;-1:-1:-1;;;;;77:655:103:o;737:160::-;829:13;;871:1;861:12;;851:2;;887:1;884;877:12;902:257;;1014:2;1002:9;993:7;989:23;985:32;982:2;;;1035:6;1027;1020:22;982:2;1079:9;1066:23;1098:31;1123:5;1098:31;:::i;1164:261::-;;1287:2;1275:9;1266:7;1262:23;1258:32;1255:2;;;1308:6;1300;1293:22;1255:2;1345:9;1339:16;1364:31;1389:5;1364:31;:::i;1430:297::-;;1550:2;1538:9;1529:7;1525:23;1521:32;1518:2;;;1571:6;1563;1556:22;1518:2;1608:9;1602:16;1661:5;1654:13;1647:21;1640:5;1637:32;1627:2;;1688:6;1680;1673:22;1732:190;;1844:2;1832:9;1823:7;1819:23;1815:32;1812:2;;;1865:6;1857;1850:22;1812:2;-1:-1:-1;1893:23:103;;1802:120;-1:-1:-1;1802:120:103:o;1927:258::-;;;2056:2;2044:9;2035:7;2031:23;2027:32;2024:2;;;2077:6;2069;2062:22;2024:2;-1:-1:-1;;2105:23:103;;;2175:2;2160:18;;;2147:32;;-1:-1:-1;2014:171:103:o;2475:299::-;;2617:2;2605:9;2596:7;2592:23;2588:32;2585:2;;;2638:6;2630;2623:22;2585:2;2675:9;2669:16;2714:1;2707:5;2704:12;2694:2;;2735:6;2727;2720:22;2779:1010;;2931:2;2919:9;2910:7;2906:23;2902:32;2899:2;;;2952:6;2944;2937:22;2899:2;2990:9;2984:16;3019:18;3060:2;3052:6;3049:14;3046:2;;;3081:6;3073;3066:22;3046:2;3109:22;;;;3165:4;3147:16;;;3143:27;3140:2;;;3188:6;3180;3173:22;3140:2;3219:21;3235:4;3219:21;:::i;:::-;3270:2;3264:9;3304:1;3295:7;3292:14;3282:2;;3325:6;3317;3310:22;3282:2;3357:7;3350:5;3343:22;;3411:2;3407;3403:11;3397:18;3392:2;3385:5;3381:14;3374:42;3462:2;3458;3454:11;3448:18;3443:2;3436:5;3432:14;3425:42;3506:2;3502;3498:11;3492:18;3535:2;3525:8;3522:16;3519:2;;;3556:6;3548;3541:22;3519:2;3597:55;3644:7;3633:8;3629:2;3625:17;3597:55;:::i;:::-;3592:2;3585:5;3581:14;3574:79;;3700:3;3696:2;3692:12;3686:19;3680:3;3673:5;3669:15;3662:44;3753:3;3749:2;3745:12;3739:19;3733:3;3726:5;3722:15;3715:44;3778:5;3768:15;;;;;2889:900;;;;:::o;3794:1025::-;;3943:2;3931:9;3922:7;3918:23;3914:32;3911:2;;;3964:6;3956;3949:22;3911:2;4002:9;3996:16;4031:18;4072:2;4064:6;4061:14;4058:2;;;4093:6;4085;4078:22;4058:2;4121:22;;;;4177:4;4159:16;;;4155:27;4152:2;;;4200:6;4192;4185:22;4152:2;4231:21;4247:4;4231:21;:::i;:::-;4282:2;4276:9;4294:33;4319:7;4294:33;:::i;:::-;4336:22;;4404:2;4396:11;;;4390:18;4374:14;;;4367:42;4441:55;4492:2;4484:11;;4441:55;:::i;:::-;4436:2;4429:5;4425:14;4418:79;4536:2;4532;4528:11;4522:18;4565:2;4555:8;4552:16;4549:2;;;4586:6;4578;4571:22;4824:841;;4949:3;4993:2;4981:9;4972:7;4968:23;4964:32;4961:2;;;5014:6;5006;4999:22;4961:2;5045:19;5061:2;5045:19;:::i;:::-;5032:32;;5087:53;5130:9;5087:53;:::i;:::-;5080:5;5073:68;5194:2;5183:9;5179:18;5173:25;5168:2;5161:5;5157:14;5150:49;5252:2;5241:9;5237:18;5231:25;5226:2;5219:5;5215:14;5208:49;5310:2;5299:9;5295:18;5289:25;5284:2;5277:5;5273:14;5266:49;5369:3;5358:9;5354:19;5348:26;5342:3;5335:5;5331:15;5324:51;5429:3;5418:9;5414:19;5408:26;5402:3;5395:5;5391:15;5384:51;5489:3;5478:9;5474:19;5468:26;5462:3;5455:5;5451:15;5444:51;5549:3;5538:9;5534:19;5528:26;5522:3;5515:5;5511:15;5504:51;5574:3;5630:2;5619:9;5615:18;5609:25;5604:2;5597:5;5593:14;5586:49;;5654:5;5644:15;;;4929:736;;;;:::o;5865:604::-;;;;;;6045:3;6033:9;6024:7;6020:23;6016:33;6013:2;;;6067:6;6059;6052:22;6013:2;6108:9;6095:23;6085:33;;6168:2;6157:9;6153:18;6140:32;6181:31;6206:5;6181:31;:::i;:::-;6231:5;-1:-1:-1;6288:2:103;6273:18;;6260:32;6301:33;6260:32;6301:33;:::i;:::-;6003:466;;;;-1:-1:-1;6353:7:103;;6407:2;6392:18;;6379:32;;-1:-1:-1;6458:3:103;6443:19;6430:33;;6003:466;-1:-1:-1;;6003:466:103:o;6474:258::-;;;6603:2;6591:9;6582:7;6578:23;6574:32;6571:2;;;6624:6;6616;6609:22;9216:397;9418:2;9400:21;;;9457:2;9437:18;;;9430:30;9496:34;9491:2;9476:18;;9469:62;-1:-1:-1;;;9562:2:103;9547:18;;9540:31;9603:3;9588:19;;9390:223::o;10791:397::-;10993:2;10975:21;;;11032:2;11012:18;;;11005:30;11071:34;11066:2;11051:18;;11044:62;-1:-1:-1;;;11137:2:103;11122:18;;11115:31;11178:3;11163:19;;10965:223::o;15949:398::-;16151:2;16133:21;;;16190:2;16170:18;;;16163:30;16229:34;16224:2;16209:18;;16202:62;-1:-1:-1;;;16295:2:103;16280:18;;16273:32;16337:3;16322:19;;16123:224::o;16758:352::-;16960:2;16942:21;;;16999:2;16979:18;;;16972:30;17038;17033:2;17018:18;;17011:58;17101:2;17086:18;;16932:178::o;19113:397::-;19315:2;19297:21;;;19354:2;19334:18;;;19327:30;19393:34;19388:2;19373:18;;19366:62;-1:-1:-1;;;19459:2:103;19444:18;;19437:31;19500:3;19485:19;;19287:223::o;20731:1032::-;20940:13;;20922:32;;21001:4;20989:17;;;20983:24;20909:3;20894:19;;;21016:54;;21049:20;;20983:24;-1:-1:-1;;;;;6803:31:103;6791:44;;6781:60;21016:54;;21119:4;21111:6;21107:17;21101:24;21134:56;21184:4;21173:9;21169:20;21153:14;-1:-1:-1;;;;;6803:31:103;6791:44;;6781:60;21134:56;;21246:4;21238:6;21234:17;21228:24;21221:4;21210:9;21206:20;21199:54;21309:4;21301:6;21297:17;21291:24;21284:4;21273:9;21269:20;21262:54;21372:4;21364:6;21360:17;21354:24;21347:4;21336:9;21332:20;21325:54;21435:4;21427:6;21423:17;21417:24;21410:4;21399:9;21395:20;21388:54;21498:4;21490:6;21486:17;21480:24;21473:4;21462:9;21458:20;21451:54;21524:6;21584:2;21576:6;21572:15;21566:22;21561:2;21550:9;21546:18;21539:50;;21608:6;21668:2;21660:6;21656:15;21650:22;21645:2;21634:9;21630:18;21623:50;;21692:6;21752:2;21744:6;21740:15;21734:22;21729:2;21718:9;21714:18;21707:50;;20876:887;;;;:::o;22798:275::-;22869:2;22863:9;22934:2;22915:13;;-1:-1:-1;;22911:27:103;22899:40;;22969:18;22954:34;;22990:22;;;22951:62;22948:2;;;23016:18;;:::i;:::-;23052:2;23045:22;22843:230;;-1:-1:-1;22843:230:103:o;23078:128::-;;23149:1;23145:6;23142:1;23139:13;23136:2;;;23155:18;;:::i;:::-;-1:-1:-1;23191:9:103;;23126:80::o;23211:217::-;;23277:1;23267:2;;-1:-1:-1;;;23302:31:103;;23356:4;23353:1;23346:15;23384:4;23309:1;23374:15;23267:2;-1:-1:-1;23413:9:103;;23257:171::o;23433:168::-;;23539:1;23535;23531:6;23527:14;23524:1;23521:21;23516:1;23509:9;23502:17;23498:45;23495:2;;;23546:18;;:::i;:::-;-1:-1:-1;23586:9:103;;23485:116::o;23606:125::-;;23674:1;23671;23668:8;23665:2;;;23679:18;;:::i;:::-;-1:-1:-1;23716:9:103;;23655:76::o;23736:127::-;23797:10;23792:3;23788:20;23785:1;23778:31;23828:4;23825:1;23818:15;23852:4;23849:1;23842:15;23868:127;23929:10;23924:3;23920:20;23917:1;23910:31;23960:4;23957:1;23950:15;23984:4;23981:1;23974:15;24000:131;-1:-1:-1;;;;;24075:31:103;;24065:42;;24055:2;;24121:1;24118;24111:12;24055:2;24045:86;:::o"},"methodIdentifiers":{"COLLATERALIZATION_LEVEL_CAP()":"da68771a","DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES()":"edb5be30","FULL_COLLATERALIZATION_LEVEL()":"45fe1c6d","activeBundles(uint256)":"a4266a66","addBundleIdToActiveSet(uint256,uint256)":"d407ba00","calculateCollateral(uint256,uint256)":"7cdb808d","defund(uint256,uint256)":"c397ae39","fund(uint256,uint256)":"a65e2cfd","getActiveBundleId(uint256,uint256)":"ec833b0c","getFullCollateralizationLevel()":"f1d354d0","getMaximumNumberOfActiveBundles(uint256)":"7db32844","getRiskPoolForProduct(uint256)":"d229f3b0","getRiskpool(uint256)":"eb802114","initialize(address)":"c4d66de8","processPayout(bytes32,uint256)":"fe64372b","processPremium(bytes32,uint256)":"02108268","registerRiskpool(uint256,address,address,uint256,uint256)":"57419e8f","release(bytes32)":"67d42a8b","removeBundleIdFromActiveSet(uint256,uint256)":"950be803","riskpools()":"a054381f","setMaximumNumberOfActiveBundles(uint256,uint256)":"2127fd48","setRiskpoolForProduct(uint256,uint256)":"f93b3673","underwrite(bytes32)":"1b07b17f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralizationFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralizationSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolRequiredCollateral\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COLLATERALIZATION_LEVEL_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_COLLATERALIZATION_LEVEL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"addBundleIdToActiveSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"calculateCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bundleIdx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"}],\"name\":\"getRiskPoolForProduct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredAtRisk\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPool.Pool\",\"name\":\"riskPool\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"registerRiskpool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"removeBundleIdFromActiveSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"riskpools\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"setRiskpoolForProduct\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract manages riskpools, their registration, funding, defunding, collateralization, and other related operations. - The contract implements the IPool interface and extends the CoreController contract. - It imports other contracts such as ComponentController, PolicyController, BundleController, and CoreController. - It uses the EnumerableSet library from OpenZeppelin for managing sets of bundle IDs. - The contract defines constants for full collateralization level, collateralization level cap, and default maximum number of active bundles. - It maintains mappings to store riskpool information, riskpool IDs for products, maximum number of active bundles for riskpools, and active bundle IDs for riskpools. - The contract has a private array to store riskpool IDs. - It has references to other contracts: ComponentController, PolicyController, and BundleController. - The contract defines modifiers for access control to specific functions. Functions: - `_afterInitialize()`: Called after contract initialization to set addresses of other contracts. - `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration. - `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID. - `fund()`: Adds funds to a specific riskpool. - `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount. - `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure. - `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount. - `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract. - `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout. - `release()`: Releases a policy's collateral from the riskpool. Overall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/PoolController.sol\":\"PoolController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/modules/QueryModule.sol":{"QueryModule":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"LogOracleCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"responsibleOracleId","type":"uint256"}],"name":"LogOracleRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"address","name":"responder","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"}],"name":"LogOracleResponded","type":"event"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOracleRequestCount","outputs":[{"internalType":"uint256","name":"_count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"getProcessId","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"bytes","name":"input","type":"bytes"},{"internalType":"string","name":"callbackMethodName","type":"string"},{"internalType":"address","name":"callbackContractAddress","type":"address"},{"internalType":"uint256","name":"responsibleOracleId","type":"uint256"}],"name":"request","outputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"address","name":"responder","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"respond","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611844806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632c933f221461006757806338aec7cc1461008c57806340e58ee5146100945780639af8c4ba146100a95780639b04ed30146100bc578063c4d66de8146100cf575b600080fd5b61007a61007536600461149c565b6100e2565b60405190815260200160405180910390f35b60035461007a565b6100a76100a236600461156e565b61044d565b005b6100a76100b736600461159e565b61063a565b61007a6100ca36600461156e565b610b9f565b6100a76100dd36600461143d565b610dac565b600064517565727960d81b6100f681610f2a565b6001600160a01b0316306001600160a01b03161461015b5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f524147450000000060448201526064015b60405180910390fd5b6101756d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146101a55760405162461bcd60e51b815260040161015290611706565b600254604051632b1c7f7360e01b81526001600160a01b0386811660048301526000921690632b1c7f739060240160206040518083038186803b1580156101eb57600080fd5b505afa1580156101ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102239190611586565b600254604051630e48080360e21b8152600481018390529192506001600160a01b031690633920200c9060240160206040518083038186803b15801561026857600080fd5b505afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a0919061147c565b6103025760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a5155432d3031303a43414c4c4241434b5f414444524553535f4960448201526c14d7d393d517d41493d11550d5609a1b6064820152608401610152565b600380546001810180835560008381529195509091908590811061033657634e487b7160e01b600052603260045260246000fd5b600091825260209091206006909102018b81559050610359600482018b8b61131e565b5061036860038201898961131e565b506002810180546001600160a01b0319166001600160a01b0388161790556001810185905542600582015561039c85611012565b6001600160a01b031663ffc79065858c8c6040518463ffffffff1660e01b81526004016103cb93929190611771565b600060405180830381600087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b5050604080518e8152602081018890529081018890527f97e3e6ac41333a7d6e86bf69ab3f55df1e83baf81430f285faf030974809c3b19250606001905060405180910390a1505050979650505050505050565b64517565727960d81b61045f81610f2a565b6001600160a01b0316306001600160a01b0316146104bf5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f52414745000000006044820152606401610152565b6104d96d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146105095760405162461bcd60e51b815260040161015290611706565b60006003838154811061052c57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201905060008160050154116105905760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3033303a524551554553545f49445f494e56414c49446044820152606401610152565b600383815481106105b157634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b0319169055906105ea60038301826113a2565b6105f86004830160006113a2565b506000600591909101556040518381527f055856e72174cf1dcf5c10f8a1788a179a6e5c272427edc5ccc7f60becfec6899060200160405180910390a1505050565b6106536c4f7261636c655365727669636560981b610f2a565b6001600160a01b0316336001600160a01b0316146106b35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4352432d3030313a4e4f545f4f5241434c455f534552564943456044820152606401610152565b83836000600383815481106106d857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610744906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610770906117c4565b80156107bd5780601f10610792576101008083540402835291602001916107bd565b820191906000526020600020905b8154815290600101906020018083116107a057829003601f168201915b505050505081526020016004820180546107d6906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610802906117c4565b801561084f5780601f106108245761010080835404028352916020019161084f565b820191906000526020600020905b81548152906001019060200180831161083257829003601f168201915b50505050508152602001600582015481525050905060008160a00151116108b85760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3030323a524551554553545f49445f494e56414c49446044820152606401610152565b602081015160006108c882611012565b9050836001600160a01b0316816001600160a01b0316146109375760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5155432d3030333a4f5241434c455f4e4f545f524553504f4e5360448201526349424c4560e01b6064820152608401610152565b600060038a8154811061095a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602019050600081600301604051602001610980919061163e565b604051602081830303815290604052905060008260000154905060008360020160009054906101000a90046001600160a01b03166001600160a01b0316838e848e8e6040516024016109d59493929190611747565b60408051601f1981840301815290829052916109f091611622565b60408051918290039091206020830180516001600160e01b03166001600160e01b031990921691909117905251610a279190611622565b6000604051808303816000865af19150503d8060008114610a64576040519150601f19603f3d011682016040523d82523d6000602084013e610a69565b606091505b5050905080610ace5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a5155432d3032303a50524f445543545f43414c4c4241434b5f5560448201526a1394d550d0d154d4d1955360aa1b6064820152608401610152565b60038d81548110610aef57634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b031916905590610b2860038301826113a2565b610b366004830160006113a2565b5060006005919091015560408051838152602081018f90526001600160a01b038e1681830152821515606082015290517f4839cd12918767a83a4ef7b6a1abd1878ddfd2598fae0ad3b455c863cc177ad99181900360800190a150505050505050505050505050565b60008060038381548110610bc357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610c2f906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5b906117c4565b8015610ca85780601f10610c7d57610100808354040283529160200191610ca8565b820191906000526020600020905b815481529060010190602001808311610c8b57829003601f168201915b50505050508152602001600482018054610cc1906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906117c4565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b50505050508152602001600582015481525050905060008160a0015111610da35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3034303a524551554553545f49445f494e56414c49446044820152606401610152565b5190505b919050565b600054610100900460ff1615808015610dcc5750600054600160ff909116105b80610de65750303b158015610de6575060005460ff166001145b610e495760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610152565b6000805460ff191660011790558015610e6c576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610e96600090565b6541636365737360d01b14610ed857610eb76541636365737360d01b610f2a565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610ee061127c565b8015610f26576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611460565b90506001600160a01b038116610da75760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610152565b6002546040516309e4fb4360e31b81526004810183905260009182916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561105b57600080fd5b505afa15801561106f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110939190611460565b91508190506000600254604051636ea8e43560e11b8152600481018690526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156110de57600080fd5b505afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611116919061154f565b600281111561113557634e487b7160e01b600052602160045260246000fd5b1461118d5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5155432d3034313a434f4d504f4e454e545f4e4f545f4f5241436044820152614c4560f01b6064820152608401610152565b600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156111d257600080fd5b505afa1580156111e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120a9190611530565b600681111561122957634e487b7160e01b600052602160045260246000fd5b146112765760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5155432d3034323a4f5241434c455f4e4f545f414354495645006044820152606401610152565b50919050565b600054610100900460ff166112e75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610152565b6112fc6810dbdb5c1bdb995b9d60ba1b610f2a565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b82805461132a906117c4565b90600052602060002090601f01602090048101928261134c5760008555611392565b82601f106113655782800160ff19823516178555611392565b82800160010185558215611392579182015b82811115611392578235825591602001919060010190611377565b5061139e9291506113e1565b5090565b5080546113ae906117c4565b6000825580601f106113c057506113de565b601f0160209004906000526020600020908101906113de91906113e1565b50565b5b8082111561139e57600081556001016113e2565b60008083601f840112611407578182fd5b50813567ffffffffffffffff81111561141e578182fd5b60208301915083602082850101111561143657600080fd5b9250929050565b60006020828403121561144e578081fd5b8135611459816117f9565b9392505050565b600060208284031215611471578081fd5b8151611459816117f9565b60006020828403121561148d578081fd5b81518015158114611459578182fd5b600080600080600080600060a0888a0312156114b6578283fd5b87359650602088013567ffffffffffffffff808211156114d4578485fd5b6114e08b838c016113f6565b909850965060408a01359150808211156114f8578485fd5b506115058a828b016113f6565b9095509350506060880135611519816117f9565b809250506080880135905092959891949750929550565b600060208284031215611541578081fd5b815160078110611459578182fd5b600060208284031215611560578081fd5b815160038110611459578182fd5b60006020828403121561157f578081fd5b5035919050565b600060208284031215611597578081fd5b5051919050565b600080600080606085870312156115b3578384fd5b8435935060208501356115c5816117f9565b9250604085013567ffffffffffffffff8111156115e0578283fd5b6115ec878288016113f6565b95989497509550505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251611634818460208701611794565b9190910192915050565b815460009081906002810460018083168061165a57607f831692505b602080841082141561167a57634e487b7160e01b87526022600452602487fd5b81801561168e576001811461169f576116cb565b60ff198616895284890196506116cb565b60008a815260209020885b868110156116c35781548b8201529085019083016116aa565b505084890196505b5050505050506116fe817f2875696e743235362c627974657333322c627974657329000000000000000000815260170190565b949350505050565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b6000858252846020830152606060408301526117676060830184866115f8565b9695505050505050565b60008482526040602083015261178b6040830184866115f8565b95945050505050565b60005b838110156117af578181015183820152602001611797565b838111156117be576000848401525b50505050565b6002810460018216806117d857607f821691505b6020821081141561127657634e487b7160e01b600052602260045260246000fd5b6001600160a01b03811681146113de57600080fdfea264697066735822122041ed1675bdc184dac22d7618a0614577d9e87d9f88a1e8f5c79158a16aa26dc164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x1844 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2C933F22 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x38AEC7CC EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x9AF8C4BA EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x9B04ED30 EQ PUSH2 0xBC JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7A PUSH2 0x75 CALLDATASIZE PUSH1 0x4 PUSH2 0x149C JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x7A JUMP JUMPDEST PUSH2 0xA7 PUSH2 0xA2 CALLDATASIZE PUSH1 0x4 PUSH2 0x156E JUMP JUMPDEST PUSH2 0x44D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA7 PUSH2 0xB7 CALLDATASIZE PUSH1 0x4 PUSH2 0x159E JUMP JUMPDEST PUSH2 0x63A JUMP JUMPDEST PUSH2 0x7A PUSH2 0xCA CALLDATASIZE PUSH1 0x4 PUSH2 0x156E JUMP JUMPDEST PUSH2 0xB9F JUMP JUMPDEST PUSH2 0xA7 PUSH2 0xDD CALLDATASIZE PUSH1 0x4 PUSH2 0x143D JUMP JUMPDEST PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x0 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0xF6 DUP2 PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x15B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x175 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x152 SWAP1 PUSH2 0x1706 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x1586 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x268 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3031303A43414C4C4241434B5F414444524553535F49 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x14D7D393D517D41493D11550D5 PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP6 POP SWAP1 SWAP2 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x336 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP12 DUP2 SSTORE SWAP1 POP PUSH2 0x359 PUSH1 0x4 DUP3 ADD DUP12 DUP12 PUSH2 0x131E JUMP JUMPDEST POP PUSH2 0x368 PUSH1 0x3 DUP3 ADD DUP10 DUP10 PUSH2 0x131E JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH2 0x39C DUP6 PUSH2 0x1012 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFFC79065 DUP6 DUP13 DUP13 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1771 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP15 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x97E3E6AC41333A7D6E86BF69AB3F55DF1E83BAF81430F285FAF030974809C3B1 SWAP3 POP PUSH1 0x60 ADD SWAP1 POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x45F DUP2 PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH2 0x4D9 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x509 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x152 SWAP1 PUSH2 0x1706 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x52C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x5 ADD SLOAD GT PUSH2 0x590 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3033303A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x5B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE SWAP1 PUSH2 0x5EA PUSH1 0x3 DUP4 ADD DUP3 PUSH2 0x13A2 JUMP JUMPDEST PUSH2 0x5F8 PUSH1 0x4 DUP4 ADD PUSH1 0x0 PUSH2 0x13A2 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x5 SWAP2 SWAP1 SWAP2 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x55856E72174CF1DCF5C10F8A1788A179A6E5C272427EDC5CCC7F60BECFEC689 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x653 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F4F5241434C455F53455256494345 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST DUP4 DUP4 PUSH1 0x0 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x6D8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x744 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x770 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7BD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x792 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7BD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x7A0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0x7D6 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x802 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x84F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x824 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x832 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xA0 ADD MLOAD GT PUSH2 0x8B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3030323A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x0 PUSH2 0x8C8 DUP3 PUSH2 0x1012 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x937 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3030333A4F5241434C455F4E4F545F524553504F4E53 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x49424C45 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP11 DUP2 SLOAD DUP2 LT PUSH2 0x95A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x980 SWAP2 SWAP1 PUSH2 0x163E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 DUP15 DUP5 DUP15 DUP15 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x9D5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE SWAP2 PUSH2 0x9F0 SWAP2 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x20 DUP4 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE MLOAD PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xA64 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xACE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3032303A50524F445543545F43414C4C4241434B5F55 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x1394D550D0D154D4D19553 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP14 DUP2 SLOAD DUP2 LT PUSH2 0xAEF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE SWAP1 PUSH2 0xB28 PUSH1 0x3 DUP4 ADD DUP3 PUSH2 0x13A2 JUMP JUMPDEST PUSH2 0xB36 PUSH1 0x4 DUP4 ADD PUSH1 0x0 PUSH2 0x13A2 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x5 SWAP2 SWAP1 SWAP2 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP15 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x4839CD12918767A83A4EF7B6A1ABD1878DDFD2598FAE0AD3B455C863CC177AD9 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xBC3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0xC2F SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC5B SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCA8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC7D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xCA8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC8B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0xCC1 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCED SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD3A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD0F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD3A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD1D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xA0 ADD MLOAD GT PUSH2 0xDA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034303A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xDCC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xDE6 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDE6 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xE49 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xE6C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xE96 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xED8 JUMPI PUSH2 0xEB7 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xEE0 PUSH2 0x127C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF26 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFAC SWAP2 SWAP1 PUSH2 0x1460 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xDA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x105B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x106F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1093 SWAP2 SWAP1 PUSH2 0x1460 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1116 SWAP2 SWAP1 PUSH2 0x154F JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1135 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x118D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034313A434F4D504F4E454E545F4E4F545F4F524143 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4C45 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x120A SWAP2 SWAP1 PUSH2 0x1530 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1229 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1276 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034323A4F5241434C455F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x12E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH2 0x12FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x132A SWAP1 PUSH2 0x17C4 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x134C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1392 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1365 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x1392 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1392 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1392 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1377 JUMP JUMPDEST POP PUSH2 0x139E SWAP3 SWAP2 POP PUSH2 0x13E1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x13AE SWAP1 PUSH2 0x17C4 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x13C0 JUMPI POP PUSH2 0x13DE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x13DE SWAP2 SWAP1 PUSH2 0x13E1 JUMP JUMPDEST POP JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x139E JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x13E2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1407 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x141E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x144E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1459 DUP2 PUSH2 0x17F9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1471 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1459 DUP2 PUSH2 0x17F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x148D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x14B6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x14D4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x14E0 DUP12 DUP4 DUP13 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x14F8 JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x1505 DUP11 DUP3 DUP12 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH2 0x1519 DUP2 PUSH2 0x17F9 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1541 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x157F JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1597 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15B3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x15C5 DUP2 PUSH2 0x17F9 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15E0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x15EC DUP8 DUP3 DUP9 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1634 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP1 DUP4 AND DUP1 PUSH2 0x165A JUMPI PUSH1 0x7F DUP4 AND SWAP3 POP JUMPDEST PUSH1 0x20 DUP1 DUP5 LT DUP3 EQ ISZERO PUSH2 0x167A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP8 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP8 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x168E JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x169F JUMPI PUSH2 0x16CB JUMP JUMPDEST PUSH1 0xFF NOT DUP7 AND DUP10 MSTORE DUP5 DUP10 ADD SWAP7 POP PUSH2 0x16CB JUMP JUMPDEST PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP9 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x16C3 JUMPI DUP2 SLOAD DUP12 DUP3 ADD MSTORE SWAP1 DUP6 ADD SWAP1 DUP4 ADD PUSH2 0x16AA JUMP JUMPDEST POP POP DUP5 DUP10 ADD SWAP7 POP JUMPDEST POP POP POP POP POP POP PUSH2 0x16FE DUP2 PUSH32 0x2875696E743235362C627974657333322C627974657329000000000000000000 DUP2 MSTORE PUSH1 0x17 ADD SWAP1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1767 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x15F8 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE PUSH1 0x40 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x178B PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x15F8 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17AF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1797 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x17BE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x17D8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1276 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x13DE JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE 0xED AND PUSH22 0xBDC184DAC22D7618A0614577D9E87D9F88A1E8F5C791 PC LOG1 PUSH11 0xA26DC164736F6C63430008 MUL STOP CALLER ","sourceMap":"3274:5038:79:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;3274:5038:79;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;3274:5038:79;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:14958:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"86:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"135:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"144:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"154:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"137:6:103"},"nodeType":"YulFunctionCall","src":"137:26:103"},"nodeType":"YulExpressionStatement","src":"137:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"114:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"122:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"110:3:103"},"nodeType":"YulFunctionCall","src":"110:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"129:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"106:3:103"},"nodeType":"YulFunctionCall","src":"106:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"99:6:103"},"nodeType":"YulFunctionCall","src":"99:35:103"},"nodeType":"YulIf","src":"96:2:103"},{"nodeType":"YulAssignment","src":"174:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"197:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"184:12:103"},"nodeType":"YulFunctionCall","src":"184:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"174:6:103"}]},{"body":{"nodeType":"YulBlock","src":"247:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"256:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"266:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"249:6:103"},"nodeType":"YulFunctionCall","src":"249:26:103"},"nodeType":"YulExpressionStatement","src":"249:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"219:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"227:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"216:2:103"},"nodeType":"YulFunctionCall","src":"216:30:103"},"nodeType":"YulIf","src":"213:2:103"},{"nodeType":"YulAssignment","src":"286:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"302:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"310:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"298:3:103"},"nodeType":"YulFunctionCall","src":"298:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"286:8:103"}]},{"body":{"nodeType":"YulBlock","src":"367:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"376:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"379:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"369:6:103"},"nodeType":"YulFunctionCall","src":"369:12:103"},"nodeType":"YulExpressionStatement","src":"369:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"338:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"346:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"334:3:103"},"nodeType":"YulFunctionCall","src":"334:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"355:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"330:3:103"},"nodeType":"YulFunctionCall","src":"330:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"362:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"327:2:103"},"nodeType":"YulFunctionCall","src":"327:39:103"},"nodeType":"YulIf","src":"324:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"49:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"57:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"65:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"75:6:103","type":""}],"src":"14:375:103"},{"body":{"nodeType":"YulBlock","src":"464:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"510:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"519:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"527:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"512:6:103"},"nodeType":"YulFunctionCall","src":"512:22:103"},"nodeType":"YulExpressionStatement","src":"512:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"485:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"494:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"481:3:103"},"nodeType":"YulFunctionCall","src":"481:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"506:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"477:3:103"},"nodeType":"YulFunctionCall","src":"477:32:103"},"nodeType":"YulIf","src":"474:2:103"},{"nodeType":"YulVariableDeclaration","src":"545:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"558:12:103"},"nodeType":"YulFunctionCall","src":"558:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"549:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"615:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"590:24:103"},"nodeType":"YulFunctionCall","src":"590:31:103"},"nodeType":"YulExpressionStatement","src":"590:31:103"},{"nodeType":"YulAssignment","src":"630:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"640:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"630:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"430:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"441:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"453:6:103","type":""}],"src":"394:257:103"},{"body":{"nodeType":"YulBlock","src":"737:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"783:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"800:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"785:6:103"},"nodeType":"YulFunctionCall","src":"785:22:103"},"nodeType":"YulExpressionStatement","src":"785:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"758:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"767:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"754:3:103"},"nodeType":"YulFunctionCall","src":"754:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"779:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"750:3:103"},"nodeType":"YulFunctionCall","src":"750:32:103"},"nodeType":"YulIf","src":"747:2:103"},{"nodeType":"YulVariableDeclaration","src":"818:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"837:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"831:5:103"},"nodeType":"YulFunctionCall","src":"831:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"822:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"881:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"856:24:103"},"nodeType":"YulFunctionCall","src":"856:31:103"},"nodeType":"YulExpressionStatement","src":"856:31:103"},{"nodeType":"YulAssignment","src":"896:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"906:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"896:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"703:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"714:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"726:6:103","type":""}],"src":"656:261:103"},{"body":{"nodeType":"YulBlock","src":"1000:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1046:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1055:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1063:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1048:6:103"},"nodeType":"YulFunctionCall","src":"1048:22:103"},"nodeType":"YulExpressionStatement","src":"1048:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1021:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1030:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1017:3:103"},"nodeType":"YulFunctionCall","src":"1017:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1042:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1013:3:103"},"nodeType":"YulFunctionCall","src":"1013:32:103"},"nodeType":"YulIf","src":"1010:2:103"},{"nodeType":"YulVariableDeclaration","src":"1081:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1100:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1094:5:103"},"nodeType":"YulFunctionCall","src":"1094:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1085:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1163:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1172:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1180:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1165:6:103"},"nodeType":"YulFunctionCall","src":"1165:22:103"},"nodeType":"YulExpressionStatement","src":"1165:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1132:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1153:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1139:6:103"},"nodeType":"YulFunctionCall","src":"1139:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1129:2:103"},"nodeType":"YulFunctionCall","src":"1129:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1122:6:103"},"nodeType":"YulFunctionCall","src":"1122:40:103"},"nodeType":"YulIf","src":"1119:2:103"},{"nodeType":"YulAssignment","src":"1198:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1208:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1198:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"966:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"977:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"989:6:103","type":""}],"src":"922:297:103"},{"body":{"nodeType":"YulBlock","src":"1401:844:103","statements":[{"body":{"nodeType":"YulBlock","src":"1448:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1457:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1465:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1450:6:103"},"nodeType":"YulFunctionCall","src":"1450:22:103"},"nodeType":"YulExpressionStatement","src":"1450:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1422:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1431:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1418:3:103"},"nodeType":"YulFunctionCall","src":"1418:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1443:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1414:3:103"},"nodeType":"YulFunctionCall","src":"1414:33:103"},"nodeType":"YulIf","src":"1411:2:103"},{"nodeType":"YulAssignment","src":"1483:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1506:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1493:12:103"},"nodeType":"YulFunctionCall","src":"1493:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1483:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1525:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1556:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1567:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1552:3:103"},"nodeType":"YulFunctionCall","src":"1552:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1539:12:103"},"nodeType":"YulFunctionCall","src":"1539:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1529:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1580:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1590:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1584:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1635:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1644:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1652:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1637:6:103"},"nodeType":"YulFunctionCall","src":"1637:22:103"},"nodeType":"YulExpressionStatement","src":"1637:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1623:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1631:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1620:2:103"},"nodeType":"YulFunctionCall","src":"1620:14:103"},"nodeType":"YulIf","src":"1617:2:103"},{"nodeType":"YulVariableDeclaration","src":"1670:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1726:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1737:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1722:3:103"},"nodeType":"YulFunctionCall","src":"1722:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1746:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1696:25:103"},"nodeType":"YulFunctionCall","src":"1696:58:103"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1674:8:103","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1684:8:103","type":""}]},{"nodeType":"YulAssignment","src":"1763:18:103","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1773:8:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1763:6:103"}]},{"nodeType":"YulAssignment","src":"1790:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1800:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1790:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1817:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1850:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1861:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1846:3:103"},"nodeType":"YulFunctionCall","src":"1846:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1833:12:103"},"nodeType":"YulFunctionCall","src":"1833:32:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1821:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1894:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1903:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1911:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1896:6:103"},"nodeType":"YulFunctionCall","src":"1896:22:103"},"nodeType":"YulExpressionStatement","src":"1896:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1880:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1890:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1877:2:103"},"nodeType":"YulFunctionCall","src":"1877:16:103"},"nodeType":"YulIf","src":"1874:2:103"},{"nodeType":"YulVariableDeclaration","src":"1929:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1985:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1996:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1981:3:103"},"nodeType":"YulFunctionCall","src":"1981:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2007:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1955:25:103"},"nodeType":"YulFunctionCall","src":"1955:60:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"1933:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"1943:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2024:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2034:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2024:6:103"}]},{"nodeType":"YulAssignment","src":"2051:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"2061:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2051:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2078:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2108:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2119:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2104:3:103"},"nodeType":"YulFunctionCall","src":"2104:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2091:12:103"},"nodeType":"YulFunctionCall","src":"2091:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2082:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2157:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2132:24:103"},"nodeType":"YulFunctionCall","src":"2132:31:103"},"nodeType":"YulExpressionStatement","src":"2132:31:103"},{"nodeType":"YulAssignment","src":"2172:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2182:5:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2172:6:103"}]},{"nodeType":"YulAssignment","src":"2196:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2223:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2234:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2219:3:103"},"nodeType":"YulFunctionCall","src":"2219:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2206:12:103"},"nodeType":"YulFunctionCall","src":"2206:33:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"2196:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_string_calldata_ptrt_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1319:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1330:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1342:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1350:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1358:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1366:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1374:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1382:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"1390:6:103","type":""}],"src":"1224:1021:103"},{"body":{"nodeType":"YulBlock","src":"2350:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2396:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2405:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2413:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2398:6:103"},"nodeType":"YulFunctionCall","src":"2398:22:103"},"nodeType":"YulExpressionStatement","src":"2398:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2371:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2380:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2367:3:103"},"nodeType":"YulFunctionCall","src":"2367:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2392:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2363:3:103"},"nodeType":"YulFunctionCall","src":"2363:32:103"},"nodeType":"YulIf","src":"2360:2:103"},{"nodeType":"YulVariableDeclaration","src":"2431:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2450:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2444:5:103"},"nodeType":"YulFunctionCall","src":"2444:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2435:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2494:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2469:24:103"},"nodeType":"YulFunctionCall","src":"2469:31:103"},"nodeType":"YulExpressionStatement","src":"2469:31:103"},{"nodeType":"YulAssignment","src":"2509:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2519:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2509:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2316:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2327:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2339:6:103","type":""}],"src":"2250:280:103"},{"body":{"nodeType":"YulBlock","src":"2635:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"2681:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2690:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2698:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2683:6:103"},"nodeType":"YulFunctionCall","src":"2683:22:103"},"nodeType":"YulExpressionStatement","src":"2683:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2656:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2665:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2652:3:103"},"nodeType":"YulFunctionCall","src":"2652:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2677:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2648:3:103"},"nodeType":"YulFunctionCall","src":"2648:32:103"},"nodeType":"YulIf","src":"2645:2:103"},{"nodeType":"YulVariableDeclaration","src":"2716:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2735:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2729:5:103"},"nodeType":"YulFunctionCall","src":"2729:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2720:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2778:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2787:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2795:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2780:6:103"},"nodeType":"YulFunctionCall","src":"2780:22:103"},"nodeType":"YulExpressionStatement","src":"2780:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2767:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2774:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2764:2:103"},"nodeType":"YulFunctionCall","src":"2764:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2757:6:103"},"nodeType":"YulFunctionCall","src":"2757:20:103"},"nodeType":"YulIf","src":"2754:2:103"},{"nodeType":"YulAssignment","src":"2813:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2823:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2813:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2601:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2612:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2624:6:103","type":""}],"src":"2535:299:103"},{"body":{"nodeType":"YulBlock","src":"2938:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"2984:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2993:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3001:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2986:6:103"},"nodeType":"YulFunctionCall","src":"2986:22:103"},"nodeType":"YulExpressionStatement","src":"2986:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2959:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2968:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2955:3:103"},"nodeType":"YulFunctionCall","src":"2955:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2980:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2951:3:103"},"nodeType":"YulFunctionCall","src":"2951:32:103"},"nodeType":"YulIf","src":"2948:2:103"},{"nodeType":"YulVariableDeclaration","src":"3019:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3038:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3032:5:103"},"nodeType":"YulFunctionCall","src":"3032:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3023:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3081:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3090:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3098:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3083:6:103"},"nodeType":"YulFunctionCall","src":"3083:22:103"},"nodeType":"YulExpressionStatement","src":"3083:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3070:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3077:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3067:2:103"},"nodeType":"YulFunctionCall","src":"3067:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3060:6:103"},"nodeType":"YulFunctionCall","src":"3060:20:103"},"nodeType":"YulIf","src":"3057:2:103"},{"nodeType":"YulAssignment","src":"3116:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3126:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3116:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2904:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2915:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2927:6:103","type":""}],"src":"2839:298:103"},{"body":{"nodeType":"YulBlock","src":"3212:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3258:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3267:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3275:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3260:6:103"},"nodeType":"YulFunctionCall","src":"3260:22:103"},"nodeType":"YulExpressionStatement","src":"3260:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3233:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3242:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3229:3:103"},"nodeType":"YulFunctionCall","src":"3229:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3254:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3225:3:103"},"nodeType":"YulFunctionCall","src":"3225:32:103"},"nodeType":"YulIf","src":"3222:2:103"},{"nodeType":"YulAssignment","src":"3293:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3316:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3303:12:103"},"nodeType":"YulFunctionCall","src":"3303:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3293:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3178:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3189:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3201:6:103","type":""}],"src":"3142:190:103"},{"body":{"nodeType":"YulBlock","src":"3418:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"3464:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3473:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3481:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3466:6:103"},"nodeType":"YulFunctionCall","src":"3466:22:103"},"nodeType":"YulExpressionStatement","src":"3466:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3439:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3448:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3435:3:103"},"nodeType":"YulFunctionCall","src":"3435:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3460:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3431:3:103"},"nodeType":"YulFunctionCall","src":"3431:32:103"},"nodeType":"YulIf","src":"3428:2:103"},{"nodeType":"YulAssignment","src":"3499:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3515:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3509:5:103"},"nodeType":"YulFunctionCall","src":"3509:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3499:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3384:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3395:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3407:6:103","type":""}],"src":"3337:194:103"},{"body":{"nodeType":"YulBlock","src":"3659:509:103","statements":[{"body":{"nodeType":"YulBlock","src":"3705:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3714:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3722:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3707:6:103"},"nodeType":"YulFunctionCall","src":"3707:22:103"},"nodeType":"YulExpressionStatement","src":"3707:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3680:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3689:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3676:3:103"},"nodeType":"YulFunctionCall","src":"3676:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3672:3:103"},"nodeType":"YulFunctionCall","src":"3672:32:103"},"nodeType":"YulIf","src":"3669:2:103"},{"nodeType":"YulAssignment","src":"3740:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3763:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3750:12:103"},"nodeType":"YulFunctionCall","src":"3750:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3740:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3782:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3812:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3823:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3808:3:103"},"nodeType":"YulFunctionCall","src":"3808:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3795:12:103"},"nodeType":"YulFunctionCall","src":"3795:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3786:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3861:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3836:24:103"},"nodeType":"YulFunctionCall","src":"3836:31:103"},"nodeType":"YulExpressionStatement","src":"3836:31:103"},{"nodeType":"YulAssignment","src":"3876:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3886:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3876:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3900:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3931:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3942:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3927:3:103"},"nodeType":"YulFunctionCall","src":"3927:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3914:12:103"},"nodeType":"YulFunctionCall","src":"3914:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3904:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3989:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3998:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4006:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3991:6:103"},"nodeType":"YulFunctionCall","src":"3991:22:103"},"nodeType":"YulExpressionStatement","src":"3991:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3961:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3969:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3958:2:103"},"nodeType":"YulFunctionCall","src":"3958:30:103"},"nodeType":"YulIf","src":"3955:2:103"},{"nodeType":"YulVariableDeclaration","src":"4024:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4080:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4091:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4076:3:103"},"nodeType":"YulFunctionCall","src":"4076:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4100:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"4050:25:103"},"nodeType":"YulFunctionCall","src":"4050:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"4028:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"4038:8:103","type":""}]},{"nodeType":"YulAssignment","src":"4117:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"4127:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4117:6:103"}]},{"nodeType":"YulAssignment","src":"4144:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"4154:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4144:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3601:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3612:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3624:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3632:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3640:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3648:6:103","type":""}],"src":"3536:632:103"},{"body":{"nodeType":"YulBlock","src":"4239:202:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4256:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4261:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4249:6:103"},"nodeType":"YulFunctionCall","src":"4249:19:103"},"nodeType":"YulExpressionStatement","src":"4249:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4294:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4290:3:103"},"nodeType":"YulFunctionCall","src":"4290:14:103"},{"name":"start","nodeType":"YulIdentifier","src":"4306:5:103"},{"name":"length","nodeType":"YulIdentifier","src":"4313:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4277:12:103"},"nodeType":"YulFunctionCall","src":"4277:43:103"},"nodeType":"YulExpressionStatement","src":"4277:43:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4344:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4349:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4340:3:103"},"nodeType":"YulFunctionCall","src":"4340:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4358:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4336:3:103"},"nodeType":"YulFunctionCall","src":"4336:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"4365:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4329:6:103"},"nodeType":"YulFunctionCall","src":"4329:40:103"},"nodeType":"YulExpressionStatement","src":"4329:40:103"},{"nodeType":"YulAssignment","src":"4378:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4393:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4406:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4414:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4402:3:103"},"nodeType":"YulFunctionCall","src":"4402:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4423:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4419:3:103"},"nodeType":"YulFunctionCall","src":"4419:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4398:3:103"},"nodeType":"YulFunctionCall","src":"4398:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"4430:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4385:3:103"},"nodeType":"YulFunctionCall","src":"4385:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4378:3:103"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"4208:5:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"4215:6:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4223:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4231:3:103","type":""}],"src":"4173:268:103"},{"body":{"nodeType":"YulBlock","src":"4496:82:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4513:3:103"},{"kind":"string","nodeType":"YulLiteral","src":"4518:25:103","type":"","value":"(uint256,bytes32,bytes)"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4506:6:103"},"nodeType":"YulFunctionCall","src":"4506:38:103"},"nodeType":"YulExpressionStatement","src":"4506:38:103"},{"nodeType":"YulAssignment","src":"4553:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4564:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4569:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4560:3:103"},"nodeType":"YulFunctionCall","src":"4560:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4553:3:103"}]}]},"name":"abi_encode_stringliteral","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4480:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4488:3:103","type":""}],"src":"4446:132:103"},{"body":{"nodeType":"YulBlock","src":"4720:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4730:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4750:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4744:5:103"},"nodeType":"YulFunctionCall","src":"4744:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4734:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4792:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4800:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4788:3:103"},"nodeType":"YulFunctionCall","src":"4788:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"4807:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4812:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4766:21:103"},"nodeType":"YulFunctionCall","src":"4766:53:103"},"nodeType":"YulExpressionStatement","src":"4766:53:103"},{"nodeType":"YulAssignment","src":"4828:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4839:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4844:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4835:3:103"},"nodeType":"YulFunctionCall","src":"4835:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4828:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4696:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4701:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4712:3:103","type":""}],"src":"4583:274:103"},{"body":{"nodeType":"YulBlock","src":"5001:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"5011:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5031:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5025:5:103"},"nodeType":"YulFunctionCall","src":"5025:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5015:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5073:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5081:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5069:3:103"},"nodeType":"YulFunctionCall","src":"5069:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"5088:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5093:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"5047:21:103"},"nodeType":"YulFunctionCall","src":"5047:53:103"},"nodeType":"YulExpressionStatement","src":"5047:53:103"},{"nodeType":"YulAssignment","src":"5109:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5120:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5125:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5116:3:103"},"nodeType":"YulFunctionCall","src":"5116:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5109:3:103"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4977:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4982:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4993:3:103","type":""}],"src":"4862:276:103"},{"body":{"nodeType":"YulBlock","src":"5380:992:103","statements":[{"nodeType":"YulVariableDeclaration","src":"5390:14:103","value":{"name":"end","nodeType":"YulIdentifier","src":"5401:3:103"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"5394:3:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5413:30:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5436:6:103"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"5430:5:103"},"nodeType":"YulFunctionCall","src":"5430:13:103"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"5417:9:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5452:17:103","value":{"name":"end","nodeType":"YulIdentifier","src":"5466:3:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5456:6:103","type":""}]},{"nodeType":"YulAssignment","src":"5478:27:103","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5492:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5503:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5488:3:103"},"nodeType":"YulFunctionCall","src":"5488:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5478:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5514:11:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5524:1:103","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5518:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5534:44:103","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5564:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5575:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5560:3:103"},"nodeType":"YulFunctionCall","src":"5560:18:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5538:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5617:31:103","statements":[{"nodeType":"YulAssignment","src":"5619:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5633:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5641:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5629:3:103"},"nodeType":"YulFunctionCall","src":"5629:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5619:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5597:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5590:6:103"},"nodeType":"YulFunctionCall","src":"5590:26:103"},"nodeType":"YulIf","src":"5587:2:103"},{"nodeType":"YulVariableDeclaration","src":"5657:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5667:2:103","type":"","value":"32"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5661:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5728:115:103","statements":[{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"5749:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5763:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5754:3:103"},"nodeType":"YulFunctionCall","src":"5754:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5742:6:103"},"nodeType":"YulFunctionCall","src":"5742:33:103"},"nodeType":"YulExpressionStatement","src":"5742:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5795:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5798:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5788:6:103"},"nodeType":"YulFunctionCall","src":"5788:15:103"},"nodeType":"YulExpressionStatement","src":"5788:15:103"},{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"5823:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5828:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5816:6:103"},"nodeType":"YulFunctionCall","src":"5816:17:103"},"nodeType":"YulExpressionStatement","src":"5816:17:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5684:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5707:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5715:2:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5704:2:103"},"nodeType":"YulFunctionCall","src":"5704:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5681:2:103"},"nodeType":"YulFunctionCall","src":"5681:38:103"},"nodeType":"YulIf","src":"5678:2:103"},{"cases":[{"body":{"nodeType":"YulBlock","src":"5893:97:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5914:3:103"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5923:9:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5938:3:103","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5934:3:103"},"nodeType":"YulFunctionCall","src":"5934:8:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5919:3:103"},"nodeType":"YulFunctionCall","src":"5919:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5907:6:103"},"nodeType":"YulFunctionCall","src":"5907:37:103"},"nodeType":"YulExpressionStatement","src":"5907:37:103"},{"nodeType":"YulAssignment","src":"5957:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5968:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5973:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5964:3:103"},"nodeType":"YulFunctionCall","src":"5964:16:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5957:3:103"}]}]},"nodeType":"YulCase","src":"5886:104:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5891:1:103","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"6006:315:103","statements":[{"nodeType":"YulVariableDeclaration","src":"6020:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6065:6:103"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"6035:29:103"},"nodeType":"YulFunctionCall","src":"6035:37:103"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"6024:7:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6085:12:103","value":{"name":"end","nodeType":"YulIdentifier","src":"6094:3:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6089:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6164:111:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6193:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"6198:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6189:3:103"},"nodeType":"YulFunctionCall","src":"6189:11:103"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"6208:7:103"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"6202:5:103"},"nodeType":"YulFunctionCall","src":"6202:14:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6182:6:103"},"nodeType":"YulFunctionCall","src":"6182:35:103"},"nodeType":"YulExpressionStatement","src":"6182:35:103"},{"nodeType":"YulAssignment","src":"6234:27:103","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"6249:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6258:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6245:3:103"},"nodeType":"YulFunctionCall","src":"6245:16:103"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"6234:7:103"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6121:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"6124:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6118:2:103"},"nodeType":"YulFunctionCall","src":"6118:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6132:19:103","statements":[{"nodeType":"YulAssignment","src":"6134:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6143:1:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6146:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6139:3:103"},"nodeType":"YulFunctionCall","src":"6139:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6134:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"6114:3:103","statements":[]},"src":"6110:165:103"},{"nodeType":"YulAssignment","src":"6288:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6299:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"6304:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6295:3:103"},"nodeType":"YulFunctionCall","src":"6295:16:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"6288:3:103"}]}]},"nodeType":"YulCase","src":"5999:322:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6004:1:103","type":"","value":"1"}}],"expression":{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5859:18:103"},"nodeType":"YulSwitch","src":"5852:469:103"},{"nodeType":"YulAssignment","src":"6330:36:103","value":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"6362:3:103"}],"functionName":{"name":"abi_encode_stringliteral","nodeType":"YulIdentifier","src":"6337:24:103"},"nodeType":"YulFunctionCall","src":"6337:29:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6330:3:103"}]}]},"name":"abi_encode_tuple_packed_t_string_storage_t_stringliteral_69789469aba347ea3006333936a8384eb77a6c0f6b3710119647786d588df94c__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5356:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5361:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5372:3:103","type":""}],"src":"5143:1229:103"},{"body":{"nodeType":"YulBlock","src":"6478:102:103","statements":[{"nodeType":"YulAssignment","src":"6488:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6500:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6511:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6496:3:103"},"nodeType":"YulFunctionCall","src":"6496:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6488:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6530:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6545:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6561:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6566:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6557:3:103"},"nodeType":"YulFunctionCall","src":"6557:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6570:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6553:3:103"},"nodeType":"YulFunctionCall","src":"6553:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6541:3:103"},"nodeType":"YulFunctionCall","src":"6541:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6523:6:103"},"nodeType":"YulFunctionCall","src":"6523:51:103"},"nodeType":"YulExpressionStatement","src":"6523:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6447:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6458:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6469:4:103","type":""}],"src":"6377:203:103"},{"body":{"nodeType":"YulBlock","src":"6686:76:103","statements":[{"nodeType":"YulAssignment","src":"6696:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6708:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6719:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6704:3:103"},"nodeType":"YulFunctionCall","src":"6704:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6696:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6738:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6749:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6731:6:103"},"nodeType":"YulFunctionCall","src":"6731:25:103"},"nodeType":"YulExpressionStatement","src":"6731:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6655:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6666:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6677:4:103","type":""}],"src":"6585:177:103"},{"body":{"nodeType":"YulBlock","src":"6946:248:103","statements":[{"nodeType":"YulAssignment","src":"6956:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6968:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6979:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6964:3:103"},"nodeType":"YulFunctionCall","src":"6964:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6956:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6999:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7010:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6992:6:103"},"nodeType":"YulFunctionCall","src":"6992:25:103"},"nodeType":"YulExpressionStatement","src":"6992:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7037:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7048:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7033:3:103"},"nodeType":"YulFunctionCall","src":"7033:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7053:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7026:6:103"},"nodeType":"YulFunctionCall","src":"7026:34:103"},"nodeType":"YulExpressionStatement","src":"7026:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7080:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7091:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7076:3:103"},"nodeType":"YulFunctionCall","src":"7076:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7100:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7116:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7121:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7112:3:103"},"nodeType":"YulFunctionCall","src":"7112:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7125:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7108:3:103"},"nodeType":"YulFunctionCall","src":"7108:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7096:3:103"},"nodeType":"YulFunctionCall","src":"7096:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7069:6:103"},"nodeType":"YulFunctionCall","src":"7069:60:103"},"nodeType":"YulExpressionStatement","src":"7069:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7149:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7160:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7145:3:103"},"nodeType":"YulFunctionCall","src":"7145:18:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7179:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7172:6:103"},"nodeType":"YulFunctionCall","src":"7172:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7165:6:103"},"nodeType":"YulFunctionCall","src":"7165:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7138:6:103"},"nodeType":"YulFunctionCall","src":"7138:50:103"},"nodeType":"YulExpressionStatement","src":"7138:50:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bool__to_t_bytes32_t_uint256_t_address_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6891:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6902:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6910:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6918:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6926:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6937:4:103","type":""}],"src":"6767:427:103"},{"body":{"nodeType":"YulBlock","src":"7356:162:103","statements":[{"nodeType":"YulAssignment","src":"7366:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7378:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7389:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7374:3:103"},"nodeType":"YulFunctionCall","src":"7374:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7366:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7408:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7419:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7401:6:103"},"nodeType":"YulFunctionCall","src":"7401:25:103"},"nodeType":"YulExpressionStatement","src":"7401:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7446:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7457:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7442:3:103"},"nodeType":"YulFunctionCall","src":"7442:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7462:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7435:6:103"},"nodeType":"YulFunctionCall","src":"7435:34:103"},"nodeType":"YulExpressionStatement","src":"7435:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7489:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7500:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7485:3:103"},"nodeType":"YulFunctionCall","src":"7485:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7505:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7478:6:103"},"nodeType":"YulFunctionCall","src":"7478:34:103"},"nodeType":"YulExpressionStatement","src":"7478:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7309:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7320:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7328:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7336:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7347:4:103","type":""}],"src":"7199:319:103"},{"body":{"nodeType":"YulBlock","src":"7630:87:103","statements":[{"nodeType":"YulAssignment","src":"7640:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7663:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7648:3:103"},"nodeType":"YulFunctionCall","src":"7648:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7640:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7682:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7697:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7705:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7693:3:103"},"nodeType":"YulFunctionCall","src":"7693:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7675:6:103"},"nodeType":"YulFunctionCall","src":"7675:36:103"},"nodeType":"YulExpressionStatement","src":"7675:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7599:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7610:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7621:4:103","type":""}],"src":"7523:194:103"},{"body":{"nodeType":"YulBlock","src":"7896:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7913:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7924:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7906:6:103"},"nodeType":"YulFunctionCall","src":"7906:21:103"},"nodeType":"YulExpressionStatement","src":"7906:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7947:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7958:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7943:3:103"},"nodeType":"YulFunctionCall","src":"7943:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7963:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7936:6:103"},"nodeType":"YulFunctionCall","src":"7936:30:103"},"nodeType":"YulExpressionStatement","src":"7936:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7986:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7997:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7982:3:103"},"nodeType":"YulFunctionCall","src":"7982:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8002:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7975:6:103"},"nodeType":"YulFunctionCall","src":"7975:62:103"},"nodeType":"YulExpressionStatement","src":"7975:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8068:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8053:3:103"},"nodeType":"YulFunctionCall","src":"8053:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8073:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8046:6:103"},"nodeType":"YulFunctionCall","src":"8046:35:103"},"nodeType":"YulExpressionStatement","src":"8046:35:103"},{"nodeType":"YulAssignment","src":"8090:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8102:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8113:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8098:3:103"},"nodeType":"YulFunctionCall","src":"8098:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8090:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7873:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7887:4:103","type":""}],"src":"7722:401:103"},{"body":{"nodeType":"YulBlock","src":"8302:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8319:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8330:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8312:6:103"},"nodeType":"YulFunctionCall","src":"8312:21:103"},"nodeType":"YulExpressionStatement","src":"8312:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8353:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8364:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8349:3:103"},"nodeType":"YulFunctionCall","src":"8349:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8369:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8342:6:103"},"nodeType":"YulFunctionCall","src":"8342:30:103"},"nodeType":"YulExpressionStatement","src":"8342:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8392:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8403:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8388:3:103"},"nodeType":"YulFunctionCall","src":"8388:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8408:33:103","type":"","value":"ERROR:QUC-042:ORACLE_NOT_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8381:6:103"},"nodeType":"YulFunctionCall","src":"8381:61:103"},"nodeType":"YulExpressionStatement","src":"8381:61:103"},{"nodeType":"YulAssignment","src":"8451:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8474:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8459:3:103"},"nodeType":"YulFunctionCall","src":"8459:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8451:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1effa1aafe7739318f52d8e7636d12568aefa8c489aaee728a51f66427ce3363__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8279:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8293:4:103","type":""}],"src":"8128:355:103"},{"body":{"nodeType":"YulBlock","src":"8662:235:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8679:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8690:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8672:6:103"},"nodeType":"YulFunctionCall","src":"8672:21:103"},"nodeType":"YulExpressionStatement","src":"8672:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8713:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8724:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8709:3:103"},"nodeType":"YulFunctionCall","src":"8709:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8729:2:103","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8702:6:103"},"nodeType":"YulFunctionCall","src":"8702:30:103"},"nodeType":"YulExpressionStatement","src":"8702:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8752:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8763:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8748:3:103"},"nodeType":"YulFunctionCall","src":"8748:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8768:34:103","type":"","value":"ERROR:QUC-010:CALLBACK_ADDRESS_I"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8741:6:103"},"nodeType":"YulFunctionCall","src":"8741:62:103"},"nodeType":"YulExpressionStatement","src":"8741:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8823:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8834:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8819:3:103"},"nodeType":"YulFunctionCall","src":"8819:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8839:15:103","type":"","value":"S_NOT_PRODUCT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8812:6:103"},"nodeType":"YulFunctionCall","src":"8812:43:103"},"nodeType":"YulExpressionStatement","src":"8812:43:103"},{"nodeType":"YulAssignment","src":"8864:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8876:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8887:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8872:3:103"},"nodeType":"YulFunctionCall","src":"8872:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8864:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_37bddfa86d88e5af8c7eccd224ca962e184394ace054b6f62464e40201ad9c08__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8639:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8653:4:103","type":""}],"src":"8488:409:103"},{"body":{"nodeType":"YulBlock","src":"9076:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9093:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9104:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9086:6:103"},"nodeType":"YulFunctionCall","src":"9086:21:103"},"nodeType":"YulExpressionStatement","src":"9086:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9127:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9138:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9123:3:103"},"nodeType":"YulFunctionCall","src":"9123:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9143:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9116:6:103"},"nodeType":"YulFunctionCall","src":"9116:30:103"},"nodeType":"YulExpressionStatement","src":"9116:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9166:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9177:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9162:3:103"},"nodeType":"YulFunctionCall","src":"9162:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9182:34:103","type":"","value":"ERROR:QUC-041:COMPONENT_NOT_ORAC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9155:6:103"},"nodeType":"YulFunctionCall","src":"9155:62:103"},"nodeType":"YulExpressionStatement","src":"9155:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9237:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9248:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9233:3:103"},"nodeType":"YulFunctionCall","src":"9233:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9253:4:103","type":"","value":"LE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9226:6:103"},"nodeType":"YulFunctionCall","src":"9226:32:103"},"nodeType":"YulExpressionStatement","src":"9226:32:103"},{"nodeType":"YulAssignment","src":"9267:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9290:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9275:3:103"},"nodeType":"YulFunctionCall","src":"9275:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9267:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4390b2a7de90bd955cc7d20e4d8918121e4301d01ba56c2d0318a2494be55fcb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9053:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9067:4:103","type":""}],"src":"8902:398:103"},{"body":{"nodeType":"YulBlock","src":"9479:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9507:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9489:6:103"},"nodeType":"YulFunctionCall","src":"9489:21:103"},"nodeType":"YulExpressionStatement","src":"9489:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9541:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9526:3:103"},"nodeType":"YulFunctionCall","src":"9526:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9546:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9519:6:103"},"nodeType":"YulFunctionCall","src":"9519:30:103"},"nodeType":"YulExpressionStatement","src":"9519:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9580:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9565:3:103"},"nodeType":"YulFunctionCall","src":"9565:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9585:34:103","type":"","value":"ERROR:QUC-030:REQUEST_ID_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9558:6:103"},"nodeType":"YulFunctionCall","src":"9558:62:103"},"nodeType":"YulExpressionStatement","src":"9558:62:103"},{"nodeType":"YulAssignment","src":"9629:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9641:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9652:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9637:3:103"},"nodeType":"YulFunctionCall","src":"9637:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9629:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_774daad1cbf28a623c1273bcf077e47a159a045263db1d1d1a81c1c69daed74c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9456:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9470:4:103","type":""}],"src":"9305:356:103"},{"body":{"nodeType":"YulBlock","src":"9840:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9868:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9850:6:103"},"nodeType":"YulFunctionCall","src":"9850:21:103"},"nodeType":"YulExpressionStatement","src":"9850:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9891:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9902:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9887:3:103"},"nodeType":"YulFunctionCall","src":"9887:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9907:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9880:6:103"},"nodeType":"YulFunctionCall","src":"9880:30:103"},"nodeType":"YulExpressionStatement","src":"9880:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9930:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9941:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9926:3:103"},"nodeType":"YulFunctionCall","src":"9926:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9946:34:103","type":"","value":"ERROR:QUC-003:ORACLE_NOT_RESPONS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9919:6:103"},"nodeType":"YulFunctionCall","src":"9919:62:103"},"nodeType":"YulExpressionStatement","src":"9919:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10001:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10012:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9997:3:103"},"nodeType":"YulFunctionCall","src":"9997:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10017:6:103","type":"","value":"IBLE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9990:6:103"},"nodeType":"YulFunctionCall","src":"9990:34:103"},"nodeType":"YulExpressionStatement","src":"9990:34:103"},{"nodeType":"YulAssignment","src":"10033:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10045:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10056:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10041:3:103"},"nodeType":"YulFunctionCall","src":"10041:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10033:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_79c2419dd3836252a491e5fd1368db9c3868a0e1853d9bbe27ed6a8000a2b07d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9817:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9831:4:103","type":""}],"src":"9666:400:103"},{"body":{"nodeType":"YulBlock","src":"10245:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10262:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10273:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10255:6:103"},"nodeType":"YulFunctionCall","src":"10255:21:103"},"nodeType":"YulExpressionStatement","src":"10255:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10296:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10307:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10292:3:103"},"nodeType":"YulFunctionCall","src":"10292:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10312:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10285:6:103"},"nodeType":"YulFunctionCall","src":"10285:30:103"},"nodeType":"YulExpressionStatement","src":"10285:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10335:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10346:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10331:3:103"},"nodeType":"YulFunctionCall","src":"10331:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10351:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10324:6:103"},"nodeType":"YulFunctionCall","src":"10324:62:103"},"nodeType":"YulExpressionStatement","src":"10324:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10406:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10417:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10402:3:103"},"nodeType":"YulFunctionCall","src":"10402:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10422:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10395:6:103"},"nodeType":"YulFunctionCall","src":"10395:44:103"},"nodeType":"YulExpressionStatement","src":"10395:44:103"},{"nodeType":"YulAssignment","src":"10448:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10460:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10471:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10456:3:103"},"nodeType":"YulFunctionCall","src":"10456:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10448:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10222:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10236:4:103","type":""}],"src":"10071:410:103"},{"body":{"nodeType":"YulBlock","src":"10660:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10688:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10670:6:103"},"nodeType":"YulFunctionCall","src":"10670:21:103"},"nodeType":"YulExpressionStatement","src":"10670:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10711:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10722:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10707:3:103"},"nodeType":"YulFunctionCall","src":"10707:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10727:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10700:6:103"},"nodeType":"YulFunctionCall","src":"10700:30:103"},"nodeType":"YulExpressionStatement","src":"10700:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10750:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10761:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10746:3:103"},"nodeType":"YulFunctionCall","src":"10746:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10766:34:103","type":"","value":"ERROR:QUC-040:REQUEST_ID_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10739:6:103"},"nodeType":"YulFunctionCall","src":"10739:62:103"},"nodeType":"YulExpressionStatement","src":"10739:62:103"},{"nodeType":"YulAssignment","src":"10810:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10822:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10833:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10818:3:103"},"nodeType":"YulFunctionCall","src":"10818:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10810:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_988f80e03fa488be4da0a6e0b159af5f52d5707b3995562df14a79cc9e3d2889__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10637:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10651:4:103","type":""}],"src":"10486:356:103"},{"body":{"nodeType":"YulBlock","src":"11021:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11038:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11049:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11031:6:103"},"nodeType":"YulFunctionCall","src":"11031:21:103"},"nodeType":"YulExpressionStatement","src":"11031:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11072:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11083:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11068:3:103"},"nodeType":"YulFunctionCall","src":"11068:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11088:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11061:6:103"},"nodeType":"YulFunctionCall","src":"11061:30:103"},"nodeType":"YulExpressionStatement","src":"11061:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11111:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11122:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11107:3:103"},"nodeType":"YulFunctionCall","src":"11107:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11127:30:103","type":"","value":"ERROR:CRC-002:NOT_ON_STORAGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11100:6:103"},"nodeType":"YulFunctionCall","src":"11100:58:103"},"nodeType":"YulExpressionStatement","src":"11100:58:103"},{"nodeType":"YulAssignment","src":"11167:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11179:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11190:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11175:3:103"},"nodeType":"YulFunctionCall","src":"11175:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11167:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10998:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11012:4:103","type":""}],"src":"10847:352:103"},{"body":{"nodeType":"YulBlock","src":"11378:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11395:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11406:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11388:6:103"},"nodeType":"YulFunctionCall","src":"11388:21:103"},"nodeType":"YulExpressionStatement","src":"11388:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11440:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11425:3:103"},"nodeType":"YulFunctionCall","src":"11425:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11445:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11418:6:103"},"nodeType":"YulFunctionCall","src":"11418:30:103"},"nodeType":"YulExpressionStatement","src":"11418:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11468:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11479:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11464:3:103"},"nodeType":"YulFunctionCall","src":"11464:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11484:34:103","type":"","value":"ERROR:CRC-001:NOT_ORACLE_SERVICE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11457:6:103"},"nodeType":"YulFunctionCall","src":"11457:62:103"},"nodeType":"YulExpressionStatement","src":"11457:62:103"},{"nodeType":"YulAssignment","src":"11528:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11540:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11551:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11536:3:103"},"nodeType":"YulFunctionCall","src":"11536:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11528:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b09558737285c53e42f0cbb18d7098ce341b428cc4a700a20d5110ababfaf7a6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11355:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11369:4:103","type":""}],"src":"11204:356:103"},{"body":{"nodeType":"YulBlock","src":"11739:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11756:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11767:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11749:6:103"},"nodeType":"YulFunctionCall","src":"11749:21:103"},"nodeType":"YulExpressionStatement","src":"11749:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11790:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11801:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11786:3:103"},"nodeType":"YulFunctionCall","src":"11786:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11806:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11779:6:103"},"nodeType":"YulFunctionCall","src":"11779:30:103"},"nodeType":"YulExpressionStatement","src":"11779:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11829:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11840:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11825:3:103"},"nodeType":"YulFunctionCall","src":"11825:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11845:34:103","type":"","value":"ERROR:QUC-020:PRODUCT_CALLBACK_U"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11818:6:103"},"nodeType":"YulFunctionCall","src":"11818:62:103"},"nodeType":"YulExpressionStatement","src":"11818:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11900:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11911:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11896:3:103"},"nodeType":"YulFunctionCall","src":"11896:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11916:13:103","type":"","value":"NSUCCESSFUL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11889:6:103"},"nodeType":"YulFunctionCall","src":"11889:41:103"},"nodeType":"YulExpressionStatement","src":"11889:41:103"},{"nodeType":"YulAssignment","src":"11939:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11951:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11962:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11947:3:103"},"nodeType":"YulFunctionCall","src":"11947:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11939:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d2f7aff00631a903459db5e8faa0ab3073999f8b7c86b53a3df8a9ddbd8d8350__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11716:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11730:4:103","type":""}],"src":"11565:407:103"},{"body":{"nodeType":"YulBlock","src":"12151:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12168:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12179:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12161:6:103"},"nodeType":"YulFunctionCall","src":"12161:21:103"},"nodeType":"YulExpressionStatement","src":"12161:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12202:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12213:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12198:3:103"},"nodeType":"YulFunctionCall","src":"12198:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12218:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12191:6:103"},"nodeType":"YulFunctionCall","src":"12191:30:103"},"nodeType":"YulExpressionStatement","src":"12191:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12252:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12237:3:103"},"nodeType":"YulFunctionCall","src":"12237:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12257:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12230:6:103"},"nodeType":"YulFunctionCall","src":"12230:62:103"},"nodeType":"YulExpressionStatement","src":"12230:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12312:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12323:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12308:3:103"},"nodeType":"YulFunctionCall","src":"12308:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12328:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12301:6:103"},"nodeType":"YulFunctionCall","src":"12301:41:103"},"nodeType":"YulExpressionStatement","src":"12301:41:103"},{"nodeType":"YulAssignment","src":"12351:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12363:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12374:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12359:3:103"},"nodeType":"YulFunctionCall","src":"12359:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12351:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12128:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12142:4:103","type":""}],"src":"11977:407:103"},{"body":{"nodeType":"YulBlock","src":"12563:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12591:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12573:6:103"},"nodeType":"YulFunctionCall","src":"12573:21:103"},"nodeType":"YulExpressionStatement","src":"12573:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12614:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12625:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12610:3:103"},"nodeType":"YulFunctionCall","src":"12610:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12630:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12603:6:103"},"nodeType":"YulFunctionCall","src":"12603:30:103"},"nodeType":"YulExpressionStatement","src":"12603:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12653:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12664:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12649:3:103"},"nodeType":"YulFunctionCall","src":"12649:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12669:34:103","type":"","value":"ERROR:CRC-003:NOT_PRODUCT_SERVIC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12642:6:103"},"nodeType":"YulFunctionCall","src":"12642:62:103"},"nodeType":"YulExpressionStatement","src":"12642:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12724:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12735:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12720:3:103"},"nodeType":"YulFunctionCall","src":"12720:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12740:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12713:6:103"},"nodeType":"YulFunctionCall","src":"12713:31:103"},"nodeType":"YulExpressionStatement","src":"12713:31:103"},{"nodeType":"YulAssignment","src":"12753:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12765:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12776:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12761:3:103"},"nodeType":"YulFunctionCall","src":"12761:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12753:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12540:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12554:4:103","type":""}],"src":"12389:397:103"},{"body":{"nodeType":"YulBlock","src":"12965:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12993:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12975:6:103"},"nodeType":"YulFunctionCall","src":"12975:21:103"},"nodeType":"YulExpressionStatement","src":"12975:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13016:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13027:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13012:3:103"},"nodeType":"YulFunctionCall","src":"13012:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13032:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13005:6:103"},"nodeType":"YulFunctionCall","src":"13005:30:103"},"nodeType":"YulExpressionStatement","src":"13005:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13051:3:103"},"nodeType":"YulFunctionCall","src":"13051:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13071:34:103","type":"","value":"ERROR:QUC-002:REQUEST_ID_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13044:6:103"},"nodeType":"YulFunctionCall","src":"13044:62:103"},"nodeType":"YulExpressionStatement","src":"13044:62:103"},{"nodeType":"YulAssignment","src":"13115:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13127:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13138:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13123:3:103"},"nodeType":"YulFunctionCall","src":"13123:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13115:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f9911dbe79685a0b4bf01426459429095d797386123a16b8f4eb178ae8660c1c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12942:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12956:4:103","type":""}],"src":"12791:356:103"},{"body":{"nodeType":"YulBlock","src":"13253:76:103","statements":[{"nodeType":"YulAssignment","src":"13263:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13275:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13286:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13271:3:103"},"nodeType":"YulFunctionCall","src":"13271:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13263:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13305:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13316:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13298:6:103"},"nodeType":"YulFunctionCall","src":"13298:25:103"},"nodeType":"YulExpressionStatement","src":"13298:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13222:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13233:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13244:4:103","type":""}],"src":"13152:177:103"},{"body":{"nodeType":"YulBlock","src":"13519:201:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13536:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13547:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13529:6:103"},"nodeType":"YulFunctionCall","src":"13529:25:103"},"nodeType":"YulExpressionStatement","src":"13529:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13574:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13585:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13570:3:103"},"nodeType":"YulFunctionCall","src":"13570:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13590:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13563:6:103"},"nodeType":"YulFunctionCall","src":"13563:34:103"},"nodeType":"YulExpressionStatement","src":"13563:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13617:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13628:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13613:3:103"},"nodeType":"YulFunctionCall","src":"13613:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13633:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13606:6:103"},"nodeType":"YulFunctionCall","src":"13606:30:103"},"nodeType":"YulExpressionStatement","src":"13606:30:103"},{"nodeType":"YulAssignment","src":"13645:69:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13679:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"13687:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13699:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13710:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13695:3:103"},"nodeType":"YulFunctionCall","src":"13695:18:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13653:25:103"},"nodeType":"YulFunctionCall","src":"13653:61:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13645:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_bytes_calldata_ptr__to_t_uint256_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13464:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13475:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13483:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13491:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13510:4:103","type":""}],"src":"13334:386:103"},{"body":{"nodeType":"YulBlock","src":"13882:158:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13899:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13910:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13892:6:103"},"nodeType":"YulFunctionCall","src":"13892:25:103"},"nodeType":"YulExpressionStatement","src":"13892:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13937:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13948:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13933:3:103"},"nodeType":"YulFunctionCall","src":"13933:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13953:2:103","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13926:6:103"},"nodeType":"YulFunctionCall","src":"13926:30:103"},"nodeType":"YulExpressionStatement","src":"13926:30:103"},{"nodeType":"YulAssignment","src":"13965:69:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13999:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"14007:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14030:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14015:3:103"},"nodeType":"YulFunctionCall","src":"14015:18:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13973:25:103"},"nodeType":"YulFunctionCall","src":"13973:61:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13965:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13835:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13846:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13854:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13862:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13873:4:103","type":""}],"src":"13725:315:103"},{"body":{"nodeType":"YulBlock","src":"14101:71:103","statements":[{"expression":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14118:4:103"},{"name":"ptr","nodeType":"YulIdentifier","src":"14124:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14111:6:103"},"nodeType":"YulFunctionCall","src":"14111:17:103"},"nodeType":"YulExpressionStatement","src":"14111:17:103"},{"nodeType":"YulAssignment","src":"14137:29:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14155:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"14161:4:103","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"14145:9:103"},"nodeType":"YulFunctionCall","src":"14145:21:103"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"14137:4:103"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"14084:3:103","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"14092:4:103","type":""}],"src":"14045:127:103"},{"body":{"nodeType":"YulBlock","src":"14230:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"14240:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"14249:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14244:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"14309:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14334:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"14339:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14330:3:103"},"nodeType":"YulFunctionCall","src":"14330:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14353:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"14358:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14349:3:103"},"nodeType":"YulFunctionCall","src":"14349:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14343:5:103"},"nodeType":"YulFunctionCall","src":"14343:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14323:6:103"},"nodeType":"YulFunctionCall","src":"14323:39:103"},"nodeType":"YulExpressionStatement","src":"14323:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14270:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"14273:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14267:2:103"},"nodeType":"YulFunctionCall","src":"14267:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"14281:19:103","statements":[{"nodeType":"YulAssignment","src":"14283:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14292:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"14295:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14288:3:103"},"nodeType":"YulFunctionCall","src":"14288:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"14283:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"14263:3:103","statements":[]},"src":"14259:113:103"},{"body":{"nodeType":"YulBlock","src":"14398:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14411:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"14416:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14407:3:103"},"nodeType":"YulFunctionCall","src":"14407:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"14425:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14400:6:103"},"nodeType":"YulFunctionCall","src":"14400:27:103"},"nodeType":"YulExpressionStatement","src":"14400:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14387:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"14390:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14384:2:103"},"nodeType":"YulFunctionCall","src":"14384:13:103"},"nodeType":"YulIf","src":"14381:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"14208:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"14213:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"14218:6:103","type":""}],"src":"14177:258:103"},{"body":{"nodeType":"YulBlock","src":"14495:325:103","statements":[{"nodeType":"YulAssignment","src":"14505:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14519:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"14525:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14515:3:103"},"nodeType":"YulFunctionCall","src":"14515:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14505:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"14536:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14566:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"14572:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14562:3:103"},"nodeType":"YulFunctionCall","src":"14562:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"14540:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"14613:31:103","statements":[{"nodeType":"YulAssignment","src":"14615:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14629:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"14637:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14625:3:103"},"nodeType":"YulFunctionCall","src":"14625:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14615:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14593:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14586:6:103"},"nodeType":"YulFunctionCall","src":"14586:26:103"},"nodeType":"YulIf","src":"14583:2:103"},{"body":{"nodeType":"YulBlock","src":"14703:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14724:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14731:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14736:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14727:3:103"},"nodeType":"YulFunctionCall","src":"14727:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14717:6:103"},"nodeType":"YulFunctionCall","src":"14717:31:103"},"nodeType":"YulExpressionStatement","src":"14717:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14768:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14771:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14761:6:103"},"nodeType":"YulFunctionCall","src":"14761:15:103"},"nodeType":"YulExpressionStatement","src":"14761:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14796:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14799:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14789:6:103"},"nodeType":"YulFunctionCall","src":"14789:15:103"},"nodeType":"YulExpressionStatement","src":"14789:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14659:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14682:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"14690:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14679:2:103"},"nodeType":"YulFunctionCall","src":"14679:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14656:2:103"},"nodeType":"YulFunctionCall","src":"14656:38:103"},"nodeType":"YulIf","src":"14653:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"14475:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14484:6:103","type":""}],"src":"14440:380:103"},{"body":{"nodeType":"YulBlock","src":"14870:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"14934:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14943:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14946:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14936:6:103"},"nodeType":"YulFunctionCall","src":"14936:12:103"},"nodeType":"YulExpressionStatement","src":"14936:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14893:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14904:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14919:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14924:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14915:3:103"},"nodeType":"YulFunctionCall","src":"14915:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14928:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14911:3:103"},"nodeType":"YulFunctionCall","src":"14911:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14900:3:103"},"nodeType":"YulFunctionCall","src":"14900:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14890:2:103"},"nodeType":"YulFunctionCall","src":"14890:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14883:6:103"},"nodeType":"YulFunctionCall","src":"14883:50:103"},"nodeType":"YulIf","src":"14880:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14859:5:103","type":""}],"src":"14825:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_string_calldata_ptrt_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value5 := value\n value6 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 3)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_stringliteral(pos) -> end\n {\n mstore(pos, \"(uint256,bytes32,bytes)\")\n end := add(pos, 23)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_string_storage_t_stringliteral_69789469aba347ea3006333936a8384eb77a6c0f6b3710119647786d588df94c__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let ret := end\n let slotValue := sload(value0)\n let length := end\n length := div(slotValue, 2)\n let _1 := 1\n let outOfPlaceEncoding := and(slotValue, _1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n let _2 := 32\n if eq(outOfPlaceEncoding, lt(length, _2))\n {\n mstore(end, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(end, 0x24)\n }\n switch outOfPlaceEncoding\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, length)\n }\n case 1 {\n let dataPos := array_dataslot_string_storage(value0)\n let i := end\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, _1)\n }\n ret := add(pos, length)\n }\n end := abi_encode_stringliteral(ret)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bool__to_t_bytes32_t_uint256_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1effa1aafe7739318f52d8e7636d12568aefa8c489aaee728a51f66427ce3363__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:QUC-042:ORACLE_NOT_ACTIVE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_37bddfa86d88e5af8c7eccd224ca962e184394ace054b6f62464e40201ad9c08__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 45)\n mstore(add(headStart, 64), \"ERROR:QUC-010:CALLBACK_ADDRESS_I\")\n mstore(add(headStart, 96), \"S_NOT_PRODUCT\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4390b2a7de90bd955cc7d20e4d8918121e4301d01ba56c2d0318a2494be55fcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:QUC-041:COMPONENT_NOT_ORAC\")\n mstore(add(headStart, 96), \"LE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_774daad1cbf28a623c1273bcf077e47a159a045263db1d1d1a81c1c69daed74c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:QUC-030:REQUEST_ID_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_79c2419dd3836252a491e5fd1368db9c3868a0e1853d9bbe27ed6a8000a2b07d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:QUC-003:ORACLE_NOT_RESPONS\")\n mstore(add(headStart, 96), \"IBLE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_988f80e03fa488be4da0a6e0b159af5f52d5707b3995562df14a79cc9e3d2889__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:QUC-040:REQUEST_ID_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:CRC-002:NOT_ON_STORAGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b09558737285c53e42f0cbb18d7098ce341b428cc4a700a20d5110ababfaf7a6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:CRC-001:NOT_ORACLE_SERVICE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d2f7aff00631a903459db5e8faa0ab3073999f8b7c86b53a3df8a9ddbd8d8350__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:QUC-020:PRODUCT_CALLBACK_U\")\n mstore(add(headStart, 96), \"NSUCCESSFUL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:CRC-003:NOT_PRODUCT_SERVIC\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f9911dbe79685a0b4bf01426459429095d797386123a16b8f4eb178ae8660c1c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:QUC-002:REQUEST_ID_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_bytes_calldata_ptr__to_t_uint256_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 96))\n }\n function abi_encode_tuple_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(data, ptr)\n data := keccak256(data, 0x20)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100625760003560e01c80632c933f221461006757806338aec7cc1461008c57806340e58ee5146100945780639af8c4ba146100a95780639b04ed30146100bc578063c4d66de8146100cf575b600080fd5b61007a61007536600461149c565b6100e2565b60405190815260200160405180910390f35b60035461007a565b6100a76100a236600461156e565b61044d565b005b6100a76100b736600461159e565b61063a565b61007a6100ca36600461156e565b610b9f565b6100a76100dd36600461143d565b610dac565b600064517565727960d81b6100f681610f2a565b6001600160a01b0316306001600160a01b03161461015b5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f524147450000000060448201526064015b60405180910390fd5b6101756d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146101a55760405162461bcd60e51b815260040161015290611706565b600254604051632b1c7f7360e01b81526001600160a01b0386811660048301526000921690632b1c7f739060240160206040518083038186803b1580156101eb57600080fd5b505afa1580156101ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102239190611586565b600254604051630e48080360e21b8152600481018390529192506001600160a01b031690633920200c9060240160206040518083038186803b15801561026857600080fd5b505afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a0919061147c565b6103025760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a5155432d3031303a43414c4c4241434b5f414444524553535f4960448201526c14d7d393d517d41493d11550d5609a1b6064820152608401610152565b600380546001810180835560008381529195509091908590811061033657634e487b7160e01b600052603260045260246000fd5b600091825260209091206006909102018b81559050610359600482018b8b61131e565b5061036860038201898961131e565b506002810180546001600160a01b0319166001600160a01b0388161790556001810185905542600582015561039c85611012565b6001600160a01b031663ffc79065858c8c6040518463ffffffff1660e01b81526004016103cb93929190611771565b600060405180830381600087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b5050604080518e8152602081018890529081018890527f97e3e6ac41333a7d6e86bf69ab3f55df1e83baf81430f285faf030974809c3b19250606001905060405180910390a1505050979650505050505050565b64517565727960d81b61045f81610f2a565b6001600160a01b0316306001600160a01b0316146104bf5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f52414745000000006044820152606401610152565b6104d96d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146105095760405162461bcd60e51b815260040161015290611706565b60006003838154811061052c57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201905060008160050154116105905760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3033303a524551554553545f49445f494e56414c49446044820152606401610152565b600383815481106105b157634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b0319169055906105ea60038301826113a2565b6105f86004830160006113a2565b506000600591909101556040518381527f055856e72174cf1dcf5c10f8a1788a179a6e5c272427edc5ccc7f60becfec6899060200160405180910390a1505050565b6106536c4f7261636c655365727669636560981b610f2a565b6001600160a01b0316336001600160a01b0316146106b35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4352432d3030313a4e4f545f4f5241434c455f534552564943456044820152606401610152565b83836000600383815481106106d857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610744906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610770906117c4565b80156107bd5780601f10610792576101008083540402835291602001916107bd565b820191906000526020600020905b8154815290600101906020018083116107a057829003601f168201915b505050505081526020016004820180546107d6906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610802906117c4565b801561084f5780601f106108245761010080835404028352916020019161084f565b820191906000526020600020905b81548152906001019060200180831161083257829003601f168201915b50505050508152602001600582015481525050905060008160a00151116108b85760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3030323a524551554553545f49445f494e56414c49446044820152606401610152565b602081015160006108c882611012565b9050836001600160a01b0316816001600160a01b0316146109375760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5155432d3030333a4f5241434c455f4e4f545f524553504f4e5360448201526349424c4560e01b6064820152608401610152565b600060038a8154811061095a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602019050600081600301604051602001610980919061163e565b604051602081830303815290604052905060008260000154905060008360020160009054906101000a90046001600160a01b03166001600160a01b0316838e848e8e6040516024016109d59493929190611747565b60408051601f1981840301815290829052916109f091611622565b60408051918290039091206020830180516001600160e01b03166001600160e01b031990921691909117905251610a279190611622565b6000604051808303816000865af19150503d8060008114610a64576040519150601f19603f3d011682016040523d82523d6000602084013e610a69565b606091505b5050905080610ace5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a5155432d3032303a50524f445543545f43414c4c4241434b5f5560448201526a1394d550d0d154d4d1955360aa1b6064820152608401610152565b60038d81548110610aef57634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b031916905590610b2860038301826113a2565b610b366004830160006113a2565b5060006005919091015560408051838152602081018f90526001600160a01b038e1681830152821515606082015290517f4839cd12918767a83a4ef7b6a1abd1878ddfd2598fae0ad3b455c863cc177ad99181900360800190a150505050505050505050505050565b60008060038381548110610bc357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610c2f906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5b906117c4565b8015610ca85780601f10610c7d57610100808354040283529160200191610ca8565b820191906000526020600020905b815481529060010190602001808311610c8b57829003601f168201915b50505050508152602001600482018054610cc1906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906117c4565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b50505050508152602001600582015481525050905060008160a0015111610da35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3034303a524551554553545f49445f494e56414c49446044820152606401610152565b5190505b919050565b600054610100900460ff1615808015610dcc5750600054600160ff909116105b80610de65750303b158015610de6575060005460ff166001145b610e495760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610152565b6000805460ff191660011790558015610e6c576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610e96600090565b6541636365737360d01b14610ed857610eb76541636365737360d01b610f2a565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610ee061127c565b8015610f26576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611460565b90506001600160a01b038116610da75760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610152565b6002546040516309e4fb4360e31b81526004810183905260009182916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561105b57600080fd5b505afa15801561106f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110939190611460565b91508190506000600254604051636ea8e43560e11b8152600481018690526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156110de57600080fd5b505afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611116919061154f565b600281111561113557634e487b7160e01b600052602160045260246000fd5b1461118d5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5155432d3034313a434f4d504f4e454e545f4e4f545f4f5241436044820152614c4560f01b6064820152608401610152565b600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156111d257600080fd5b505afa1580156111e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120a9190611530565b600681111561122957634e487b7160e01b600052602160045260246000fd5b146112765760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5155432d3034323a4f5241434c455f4e4f545f414354495645006044820152606401610152565b50919050565b600054610100900460ff166112e75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610152565b6112fc6810dbdb5c1bdb995b9d60ba1b610f2a565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b82805461132a906117c4565b90600052602060002090601f01602090048101928261134c5760008555611392565b82601f106113655782800160ff19823516178555611392565b82800160010185558215611392579182015b82811115611392578235825591602001919060010190611377565b5061139e9291506113e1565b5090565b5080546113ae906117c4565b6000825580601f106113c057506113de565b601f0160209004906000526020600020908101906113de91906113e1565b50565b5b8082111561139e57600081556001016113e2565b60008083601f840112611407578182fd5b50813567ffffffffffffffff81111561141e578182fd5b60208301915083602082850101111561143657600080fd5b9250929050565b60006020828403121561144e578081fd5b8135611459816117f9565b9392505050565b600060208284031215611471578081fd5b8151611459816117f9565b60006020828403121561148d578081fd5b81518015158114611459578182fd5b600080600080600080600060a0888a0312156114b6578283fd5b87359650602088013567ffffffffffffffff808211156114d4578485fd5b6114e08b838c016113f6565b909850965060408a01359150808211156114f8578485fd5b506115058a828b016113f6565b9095509350506060880135611519816117f9565b809250506080880135905092959891949750929550565b600060208284031215611541578081fd5b815160078110611459578182fd5b600060208284031215611560578081fd5b815160038110611459578182fd5b60006020828403121561157f578081fd5b5035919050565b600060208284031215611597578081fd5b5051919050565b600080600080606085870312156115b3578384fd5b8435935060208501356115c5816117f9565b9250604085013567ffffffffffffffff8111156115e0578283fd5b6115ec878288016113f6565b95989497509550505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251611634818460208701611794565b9190910192915050565b815460009081906002810460018083168061165a57607f831692505b602080841082141561167a57634e487b7160e01b87526022600452602487fd5b81801561168e576001811461169f576116cb565b60ff198616895284890196506116cb565b60008a815260209020885b868110156116c35781548b8201529085019083016116aa565b505084890196505b5050505050506116fe817f2875696e743235362c627974657333322c627974657329000000000000000000815260170190565b949350505050565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b6000858252846020830152606060408301526117676060830184866115f8565b9695505050505050565b60008482526040602083015261178b6040830184866115f8565b95945050505050565b60005b838110156117af578181015183820152602001611797565b838111156117be576000848401525b50505050565b6002810460018216806117d857607f821691505b6020821081141561127657634e487b7160e01b600052602260045260246000fd5b6001600160a01b03811681146113de57600080fdfea264697066735822122041ed1675bdc184dac22d7618a0614577d9e87d9f88a1e8f5c79158a16aa26dc164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2C933F22 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x38AEC7CC EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x9AF8C4BA EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x9B04ED30 EQ PUSH2 0xBC JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7A PUSH2 0x75 CALLDATASIZE PUSH1 0x4 PUSH2 0x149C JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x7A JUMP JUMPDEST PUSH2 0xA7 PUSH2 0xA2 CALLDATASIZE PUSH1 0x4 PUSH2 0x156E JUMP JUMPDEST PUSH2 0x44D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA7 PUSH2 0xB7 CALLDATASIZE PUSH1 0x4 PUSH2 0x159E JUMP JUMPDEST PUSH2 0x63A JUMP JUMPDEST PUSH2 0x7A PUSH2 0xCA CALLDATASIZE PUSH1 0x4 PUSH2 0x156E JUMP JUMPDEST PUSH2 0xB9F JUMP JUMPDEST PUSH2 0xA7 PUSH2 0xDD CALLDATASIZE PUSH1 0x4 PUSH2 0x143D JUMP JUMPDEST PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x0 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0xF6 DUP2 PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x15B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x175 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x152 SWAP1 PUSH2 0x1706 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x1586 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x268 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3031303A43414C4C4241434B5F414444524553535F49 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x14D7D393D517D41493D11550D5 PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP6 POP SWAP1 SWAP2 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x336 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP12 DUP2 SSTORE SWAP1 POP PUSH2 0x359 PUSH1 0x4 DUP3 ADD DUP12 DUP12 PUSH2 0x131E JUMP JUMPDEST POP PUSH2 0x368 PUSH1 0x3 DUP3 ADD DUP10 DUP10 PUSH2 0x131E JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH2 0x39C DUP6 PUSH2 0x1012 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFFC79065 DUP6 DUP13 DUP13 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1771 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP15 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x97E3E6AC41333A7D6E86BF69AB3F55DF1E83BAF81430F285FAF030974809C3B1 SWAP3 POP PUSH1 0x60 ADD SWAP1 POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x45F DUP2 PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH2 0x4D9 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x509 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x152 SWAP1 PUSH2 0x1706 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x52C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x5 ADD SLOAD GT PUSH2 0x590 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3033303A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x5B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE SWAP1 PUSH2 0x5EA PUSH1 0x3 DUP4 ADD DUP3 PUSH2 0x13A2 JUMP JUMPDEST PUSH2 0x5F8 PUSH1 0x4 DUP4 ADD PUSH1 0x0 PUSH2 0x13A2 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x5 SWAP2 SWAP1 SWAP2 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x55856E72174CF1DCF5C10F8A1788A179A6E5C272427EDC5CCC7F60BECFEC689 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x653 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F4F5241434C455F53455256494345 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST DUP4 DUP4 PUSH1 0x0 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x6D8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x744 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x770 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7BD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x792 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7BD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x7A0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0x7D6 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x802 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x84F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x824 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x832 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xA0 ADD MLOAD GT PUSH2 0x8B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3030323A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x0 PUSH2 0x8C8 DUP3 PUSH2 0x1012 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x937 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3030333A4F5241434C455F4E4F545F524553504F4E53 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x49424C45 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP11 DUP2 SLOAD DUP2 LT PUSH2 0x95A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x980 SWAP2 SWAP1 PUSH2 0x163E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 DUP15 DUP5 DUP15 DUP15 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x9D5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE SWAP2 PUSH2 0x9F0 SWAP2 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x20 DUP4 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE MLOAD PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xA64 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xACE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3032303A50524F445543545F43414C4C4241434B5F55 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x1394D550D0D154D4D19553 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP14 DUP2 SLOAD DUP2 LT PUSH2 0xAEF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE SWAP1 PUSH2 0xB28 PUSH1 0x3 DUP4 ADD DUP3 PUSH2 0x13A2 JUMP JUMPDEST PUSH2 0xB36 PUSH1 0x4 DUP4 ADD PUSH1 0x0 PUSH2 0x13A2 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x5 SWAP2 SWAP1 SWAP2 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP15 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x4839CD12918767A83A4EF7B6A1ABD1878DDFD2598FAE0AD3B455C863CC177AD9 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xBC3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0xC2F SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC5B SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCA8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC7D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xCA8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC8B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0xCC1 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCED SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD3A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD0F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD3A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD1D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xA0 ADD MLOAD GT PUSH2 0xDA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034303A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xDCC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xDE6 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDE6 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xE49 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xE6C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xE96 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xED8 JUMPI PUSH2 0xEB7 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xEE0 PUSH2 0x127C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF26 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFAC SWAP2 SWAP1 PUSH2 0x1460 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xDA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x105B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x106F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1093 SWAP2 SWAP1 PUSH2 0x1460 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1116 SWAP2 SWAP1 PUSH2 0x154F JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1135 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x118D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034313A434F4D504F4E454E545F4E4F545F4F524143 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4C45 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x120A SWAP2 SWAP1 PUSH2 0x1530 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1229 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1276 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034323A4F5241434C455F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x12E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH2 0x12FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x132A SWAP1 PUSH2 0x17C4 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x134C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1392 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1365 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x1392 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1392 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1392 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1377 JUMP JUMPDEST POP PUSH2 0x139E SWAP3 SWAP2 POP PUSH2 0x13E1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x13AE SWAP1 PUSH2 0x17C4 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x13C0 JUMPI POP PUSH2 0x13DE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x13DE SWAP2 SWAP1 PUSH2 0x13E1 JUMP JUMPDEST POP JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x139E JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x13E2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1407 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x141E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x144E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1459 DUP2 PUSH2 0x17F9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1471 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1459 DUP2 PUSH2 0x17F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x148D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x14B6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x14D4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x14E0 DUP12 DUP4 DUP13 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x14F8 JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x1505 DUP11 DUP3 DUP12 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH2 0x1519 DUP2 PUSH2 0x17F9 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1541 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x157F JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1597 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15B3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x15C5 DUP2 PUSH2 0x17F9 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15E0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x15EC DUP8 DUP3 DUP9 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1634 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP1 DUP4 AND DUP1 PUSH2 0x165A JUMPI PUSH1 0x7F DUP4 AND SWAP3 POP JUMPDEST PUSH1 0x20 DUP1 DUP5 LT DUP3 EQ ISZERO PUSH2 0x167A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP8 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP8 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x168E JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x169F JUMPI PUSH2 0x16CB JUMP JUMPDEST PUSH1 0xFF NOT DUP7 AND DUP10 MSTORE DUP5 DUP10 ADD SWAP7 POP PUSH2 0x16CB JUMP JUMPDEST PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP9 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x16C3 JUMPI DUP2 SLOAD DUP12 DUP3 ADD MSTORE SWAP1 DUP6 ADD SWAP1 DUP4 ADD PUSH2 0x16AA JUMP JUMPDEST POP POP DUP5 DUP10 ADD SWAP7 POP JUMPDEST POP POP POP POP POP POP PUSH2 0x16FE DUP2 PUSH32 0x2875696E743235362C627974657333322C627974657329000000000000000000 DUP2 MSTORE PUSH1 0x17 ADD SWAP1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1767 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x15F8 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE PUSH1 0x40 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x178B PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x15F8 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17AF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1797 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x17BE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x17D8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1276 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x13DE JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE 0xED AND PUSH22 0xBDC184DAC22D7618A0614577D9E87D9F88A1E8F5C791 PC LOG1 PUSH11 0xA26DC164736F6C63430008 MUL STOP CALLER ","sourceMap":"3274:5038:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4514:1203;;;;;;:::i;:::-;;:::i;:::-;;;6731:25:103;;;6719:2;6704:18;4514:1203:79;;;;;;;7699:116;7786:15;:22;7699:116;;7024:349;;;;;;:::i;:::-;;:::i;:::-;;5999:1019;;;;;;:::i;:::-;;:::i;7380:312::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;4514:1203:79:-;4802:17;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;11049:2:103;790:119:88;;;11031:21:103;11088:2;11068:18;;;11061:30;11127;11107:18;;;11100:58;11175:18;;790:119:88;;;;;;;;;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;4858:10:79::1;::::0;:50:::1;::::0;-1:-1:-1;;;4858:50:79;;-1:-1:-1;;;;;6541:32:103;;;4858:50:79::1;::::0;::::1;6523:51:103::0;4836:19:79::1;::::0;4858:10:::1;::::0;:25:::1;::::0;6496:18:103;;4858:50:79::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4939:10;::::0;:33:::1;::::0;-1:-1:-1;;;4939:33:79;;::::1;::::0;::::1;6731:25:103::0;;;4836:72:79;;-1:-1:-1;;;;;;4939:10:79::1;::::0;:20:::1;::::0;6704:18:103;;4939:33:79::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4918:125;;;::::0;-1:-1:-1;;;4918:125:79;;8690:2:103;4918:125:79::1;::::0;::::1;8672:21:103::0;8729:2;8709:18;;;8702:30;8768:34;8748:18;;;8741:62;-1:-1:-1;;;8819:18:103;;;8812:43;8872:19;;4918:125:79::1;8662:235:103::0;4918:125:79::1;5074:15;:22:::0;;5106::::1;::::0;::::1;::::0;;;-1:-1:-1;5106:22:79;;;5074;;-1:-1:-1;;;5074:15:79;:22;;5208:26;::::1;;;-1:-1:-1::0;;;5208:26:79::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;5244:25:::0;;;5208:26;-1:-1:-1;5279:16:79::1;:8;::::0;::::1;5290:5:::0;;5279:16:::1;:::i;:::-;-1:-1:-1::0;5305:43:79::1;:22;::::0;::::1;5330:18:::0;;5305:43:::1;:::i;:::-;-1:-1:-1::0;5358:27:79::1;::::0;::::1;:53:::0;;-1:-1:-1;;;;;;5358:53:79::1;-1:-1:-1::0;;;;;5358:53:79;::::1;;::::0;;-1:-1:-1;5421:23:79;::::1;:45:::0;;;5492:15:::1;5476:13;::::0;::::1;:31:::0;5542::::1;5421:45:::0;5542:10:::1;:31::i;:::-;-1:-1:-1::0;;;;;5542:39:79::1;;5595:9;5618:5;;5542:91;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5649:61:79::1;::::0;;7401:25:103;;;7457:2;7442:18;;7435:34;;;7485:18;;;7478:34;;;5649:61:79::1;::::0;-1:-1:-1;7389:2:103;7374:18;;-1:-1:-1;5649:61:79::1;;;;;;;1129:1:88;;4514:1203:79::0;;;;;;;;;;:::o;7024:349::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;11049:2:103;790:119:88;;;11031:21:103;11088:2;11068:18;;;11061:30;11127;11107:18;;;11100:58;11175:18;;790:119:88;11021:178:103;790:119:88;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;7134:35:79::1;7172:15;7188:9;7172:26;;;;;;-1:-1:-1::0;;;7172:26:79::1;;;;;;;;;;;;;;;;;;;7134:64;;7242:1;7216:13;:23;;;:27;7208:72;;;::::0;-1:-1:-1;;;7208:72:79;;9507:2:103;7208:72:79::1;::::0;::::1;9489:21:103::0;;;9526:18;;;9519:30;9585:34;9565:18;;;9558:62;9637:18;;7208:72:79::1;9479:182:103::0;7208:72:79::1;7297:15;7313:9;7297:26;;;;;;-1:-1:-1::0;;;7297:26:79::1;;;;;;;;;;::::0;;;::::1;::::0;;::::1;::::0;;::::1;;7290:33:::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;7290:33:79::1;::::0;;7297:26;7290:33:::1;;::::0;::::1;7297:26:::0;7290:33:::1;:::i;:::-;;;::::0;::::1;;;:::i;:::-;-1:-1:-1::0;7290:33:79::1;;::::0;;;::::1;::::0;7338:28:::1;::::0;6731:25:103;;;7338:28:79::1;::::0;6719:2:103;6704:18;7338:28:79::1;;;;;;;1129:1:88;7024:349:79::0;;:::o;5999:1019::-;3503:36;-1:-1:-1;;;3503:19:79;:36::i;:::-;-1:-1:-1;;;;;3487:52:79;719:10:59;-1:-1:-1;;;;;3487:52:79;;3466:131;;;;-1:-1:-1;;;3466:131:79;;11406:2:103;3466:131:79;;;11388:21:103;;;11425:18;;;11418:30;11484:34;11464:18;;;11457:62;11536:18;;3466:131:79;11378:182:103;3466:131:79;6190:9:::1;6201;3700:34;3737:15;3753:9;3737:26;;;;;;-1:-1:-1::0;;;3737:26:79::1;;;;;;;;;;;;;;;;;;;3700:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;3700:63:79::1;-1:-1:-1::0;;;;;3700:63:79::1;-1:-1:-1::0;;;;;3700:63:79::1;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;3821:1;3795:13;:23;;;:27;3774:106;;;::::0;-1:-1:-1;;;3774:106:79;;12993:2:103;3774:106:79::1;::::0;::::1;12975:21:103::0;;;13012:18;;;13005:30;13071:34;13051:18;;;13044:62;13123:18;;3774:106:79::1;12965:182:103::0;3774:106:79::1;3910:33;::::0;::::1;::::0;3891:16:::1;3985:20;3910:33:::0;3985:10:::1;:20::i;:::-;3953:53;;4054:9;-1:-1:-1::0;;;;;4037:26:79::1;:13;-1:-1:-1::0;;;;;4037:26:79::1;;4016:109;;;::::0;-1:-1:-1;;;4016:109:79;;9868:2:103;4016:109:79::1;::::0;::::1;9850:21:103::0;9907:2;9887:18;;;9880:30;9946:34;9926:18;;;9919:62;-1:-1:-1;;;9997:18:103;;;9990:34;10041:19;;4016:109:79::1;9840:226:103::0;4016:109:79::1;6227:25:::2;6255:15;6271:9;6255:26;;;;;;-1:-1:-1::0;;;6255:26:79::2;;;;;;;;;;;;;;;;;;;6227:54;;6291:31;6379:3;:22;;6345:113;;;;;;;;:::i;:::-;;;;;;;;;;;;;6291:168;;6469:17;6489:3;:13;;;6469:33;;6514:12;6544:3;:27;;;;;;;;;;-1:-1:-1::0;;;;;6544:27:79::2;-1:-1:-1::0;;;;;6544:32:79::2;6639:17;6678:9;6709;6740:4;;6594:168;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;6594:168:79;;::::2;::::0;;;;;;;;::::2;::::0;::::2;:::i;:::-;;::::0;;;;;::::2;::::0;;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;6594:168:79::2;-1:-1:-1::0;;;;;;6594:168:79;;::::2;::::0;;;::::2;::::0;;6544:232;::::2;::::0;6594:168;6544:232:::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6513:263;;;6795:7;6787:63;;;::::0;-1:-1:-1;;;6787:63:79;;11767:2:103;6787:63:79::2;::::0;::::2;11749:21:103::0;11806:2;11786:18;;;11779:30;11845:34;11825:18;;;11818:62;-1:-1:-1;;;11896:18:103;;;11889:41;11947:19;;6787:63:79::2;11739:233:103::0;6787:63:79::2;6867:15;6883:9;6867:26;;;;;;-1:-1:-1::0;;;6867:26:79::2;;;;;;;;;;::::0;;;::::2;::::0;;::::2;::::0;;::::2;;6860:33:::0;;;::::2;::::0;::::2;::::0;;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;;6860:33:79::2;::::0;;6867:26;6860:33:::2;;::::0;::::2;6867:26:::0;6860:33:::2;:::i;:::-;;;::::0;::::2;;;:::i;:::-;-1:-1:-1::0;6860:33:79::2;;::::0;;;::::2;::::0;6951:60:::2;::::0;;6992:25:103;;;7048:2;7033:18;;7026:34;;;-1:-1:-1;;;;;7096:32:103;;7076:18;;;7069:60;7172:14;;7165:22;7160:2;7145:18;;7138:50;6951:60:79;;::::2;::::0;;;;6979:3:103;6951:60:79;;::::2;4135:1;;;;3607::::1;;;;;5999:1019:::0;;;;:::o;7380:312::-;7467:17;7500:34;7537:15;7553:9;7537:26;;;;;;-1:-1:-1;;;7537:26:79;;;;;;;;;;;;;;;;;;;7500:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7500:63:79;-1:-1:-1;;;;;7500:63:79;-1:-1:-1;;;;;7500:63:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7607:1;7581:13;:23;;;:27;7573:72;;;;-1:-1:-1;;;7573:72:79;;10688:2:103;7573:72:79;;;10670:21:103;;;10707:18;;;10700:30;10766:34;10746:18;;;10739:62;10818:18;;7573:72:79;10660:182:103;7573:72:79;7662:23;;-1:-1:-1;7380:312:79;;;;:::o;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;10273:2:103;3146:190:47;;;10255:21:103;10312:2;10292:18;;;10285:30;10351:34;10331:18;;;10324:62;-1:-1:-1;;;10402:18:103;;;10395:44;10456:19;;3146:190:47;10245:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;7675:36:103;;3531:14:47;;7663:2:103;7648:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;1530:293::-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;6731:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;6704:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;7924:2:103;1703:113:88;;;7906:21:103;7963:2;7943:18;;;7936:30;8002:34;7982:18;;;7975:62;-1:-1:-1;;;8053:18:103;;;8046:35;8098:19;;1703:113:88;7896:227:103;7821:489:79;7919:10;;:27;;-1:-1:-1;;;7919:27:79;;;;;6731:25:103;;;7876:14:79;;;;-1:-1:-1;;;;;7919:10:79;;;;:23;;6704:18:103;;7919:27:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7902:44;-1:-1:-1;7902:44:79;;-1:-1:-1;8053:31:79;8018:10;;:31;;-1:-1:-1;;;8018:31:79;;;;;6731:25:103;;;-1:-1:-1;;;;;8018:10:79;;;;:27;;6704:18:103;;8018:31:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:66;;;;;;-1:-1:-1;;;8018:66:79;;;;;;;;;;7997:148;;;;-1:-1:-1;;;7997:148:79;;9104:2:103;7997:148:79;;;9086:21:103;9143:2;9123:18;;;9116:30;9182:34;9162:18;;;9155:62;-1:-1:-1;;;9233:18:103;;;9226:32;9275:19;;7997:148:79;9076:224:103;7997:148:79;8177:10;;:32;;-1:-1:-1;;;8177:32:79;;;;;6731:25:103;;;8213:32:79;;-1:-1:-1;;;;;8177:10:79;;:28;;6704:18:103;;8177:32:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:68;;;;;;-1:-1:-1;;;8177:68:79;;;;;;;;;;8156:147;;;;-1:-1:-1;;;8156:147:79;;8330:2:103;8156:147:79;;;8312:21:103;8369:2;8349:18;;;8342:30;8408:33;8388:18;;;8381:61;8459:18;;8156:147:79;8302:181:103;8156:147:79;7821:489;;;;:::o;4149:146::-;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;12179:2:103;4880:69:47;;;12161:21:103;12218:2;12198:18;;;12191:30;12257:34;12237:18;;;12230:62;-1:-1:-1;;;12308:18:103;;;12301:41;12359:19;;4880:69:47;12151:233:103;4880:69:47;4255:32:79::1;-1:-1:-1::0;;;4255:19:79::1;:32::i;:::-;4222:10;:66:::0;;-1:-1:-1;;;;;;4222:66:79::1;-1:-1:-1::0;;;;;4222:66:79;;;::::1;::::0;;;::::1;::::0;;4149:146::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:375:103;;;129:3;122:4;114:6;110:17;106:27;96:2;;154:8;144;137:26;96:2;-1:-1:-1;184:20:103;;227:18;216:30;;213:2;;;266:8;256;249:26;213:2;310:4;302:6;298:17;286:29;;362:3;355:4;346:6;338;334:19;330:30;327:39;324:2;;;379:1;376;369:12;324:2;86:303;;;;;:::o;394:257::-;;506:2;494:9;485:7;481:23;477:32;474:2;;;527:6;519;512:22;474:2;571:9;558:23;590:31;615:5;590:31;:::i;:::-;640:5;464:187;-1:-1:-1;;;464:187:103:o;656:261::-;;779:2;767:9;758:7;754:23;750:32;747:2;;;800:6;792;785:22;747:2;837:9;831:16;856:31;881:5;856:31;:::i;922:297::-;;1042:2;1030:9;1021:7;1017:23;1013:32;1010:2;;;1063:6;1055;1048:22;1010:2;1100:9;1094:16;1153:5;1146:13;1139:21;1132:5;1129:32;1119:2;;1180:6;1172;1165:22;1224:1021;;;;;;;;1443:3;1431:9;1422:7;1418:23;1414:33;1411:2;;;1465:6;1457;1450:22;1411:2;1506:9;1493:23;1483:33;;1567:2;1556:9;1552:18;1539:32;1590:18;1631:2;1623:6;1620:14;1617:2;;;1652:6;1644;1637:22;1617:2;1696:58;1746:7;1737:6;1726:9;1722:22;1696:58;:::i;:::-;1773:8;;-1:-1:-1;1670:84:103;-1:-1:-1;1861:2:103;1846:18;;1833:32;;-1:-1:-1;1877:16:103;;;1874:2;;;1911:6;1903;1896:22;1874:2;;1955:60;2007:7;1996:8;1985:9;1981:24;1955:60;:::i;:::-;2034:8;;-1:-1:-1;1929:86:103;-1:-1:-1;;2119:2:103;2104:18;;2091:32;2132:31;2091:32;2132:31;:::i;:::-;2182:5;2172:15;;;2234:3;2223:9;2219:19;2206:33;2196:43;;1401:844;;;;;;;;;;:::o;2535:299::-;;2677:2;2665:9;2656:7;2652:23;2648:32;2645:2;;;2698:6;2690;2683:22;2645:2;2735:9;2729:16;2774:1;2767:5;2764:12;2754:2;;2795:6;2787;2780:22;2839:298;;2980:2;2968:9;2959:7;2955:23;2951:32;2948:2;;;3001:6;2993;2986:22;2948:2;3038:9;3032:16;3077:1;3070:5;3067:12;3057:2;;3098:6;3090;3083:22;3142:190;;3254:2;3242:9;3233:7;3229:23;3225:32;3222:2;;;3275:6;3267;3260:22;3222:2;-1:-1:-1;3303:23:103;;3212:120;-1:-1:-1;3212:120:103:o;3337:194::-;;3460:2;3448:9;3439:7;3435:23;3431:32;3428:2;;;3481:6;3473;3466:22;3428:2;-1:-1:-1;3509:16:103;;3418:113;-1:-1:-1;3418:113:103:o;3536:632::-;;;;;3701:2;3689:9;3680:7;3676:23;3672:32;3669:2;;;3722:6;3714;3707:22;3669:2;3763:9;3750:23;3740:33;;3823:2;3812:9;3808:18;3795:32;3836:31;3861:5;3836:31;:::i;:::-;3886:5;-1:-1:-1;3942:2:103;3927:18;;3914:32;3969:18;3958:30;;3955:2;;;4006:6;3998;3991:22;3955:2;4050:58;4100:7;4091:6;4080:9;4076:22;4050:58;:::i;:::-;3659:509;;;;-1:-1:-1;4127:8:103;-1:-1:-1;;;;3659:509:103:o;4173:268::-;;4261:6;4256:3;4249:19;4313:6;4306:5;4299:4;4294:3;4290:14;4277:43;4365:3;4358:4;4349:6;4344:3;4340:16;4336:27;4329:40;4430:4;4423:2;4419:7;4414:2;4406:6;4402:15;4398:29;4393:3;4389:39;4385:50;4378:57;;4239:202;;;;;:::o;4583:274::-;;4750:6;4744:13;4766:53;4812:6;4807:3;4800:4;4792:6;4788:17;4766:53;:::i;:::-;4835:16;;;;;4720:137;-1:-1:-1;;4720:137:103:o;5143:1229::-;5430:13;;5143:1229;;;;5503:1;5488:17;;5524:1;5560:18;;;;5587:2;;5641:4;5633:6;5629:17;5619:27;;5587:2;5667;5715;5707:6;5704:14;5684:18;5681:38;5678:2;;;-1:-1:-1;;;5742:33:103;;5798:4;5795:1;5788:15;5828:4;5749:3;5816:17;5678:2;5859:18;5886:104;;;;6004:1;5999:322;;;;5852:469;;5886:104;-1:-1:-1;;5919:24:103;;5907:37;;5964:16;;;;-1:-1:-1;5886:104:103;;5999:322;14045:127;14111:17;;;14161:4;14145:21;;6094:3;6110:165;6124:6;6121:1;6118:13;6110:165;;;6202:14;;6189:11;;;6182:35;6245:16;;;;6139:10;;6110:165;;;6114:3;;6304:6;6299:3;6295:16;6288:23;;5852:469;;;;;;;6337:29;6362:3;4518:25;4506:38;;4569:2;4560:12;;4496:82;6337:29;6330:36;5380:992;-1:-1:-1;;;;5380:992:103:o;12389:397::-;12591:2;12573:21;;;12630:2;12610:18;;;12603:30;12669:34;12664:2;12649:18;;12642:62;-1:-1:-1;;;12735:2:103;12720:18;;12713:31;12776:3;12761:19;;12563:223::o;13334:386::-;;13547:6;13536:9;13529:25;13590:6;13585:2;13574:9;13570:18;13563:34;13633:2;13628;13617:9;13613:18;13606:30;13653:61;13710:2;13699:9;13695:18;13687:6;13679;13653:61;:::i;:::-;13645:69;13519:201;-1:-1:-1;;;;;;13519:201:103:o;13725:315::-;;13910:6;13899:9;13892:25;13953:2;13948;13937:9;13933:18;13926:30;13973:61;14030:2;14019:9;14015:18;14007:6;13999;13973:61;:::i;:::-;13965:69;13882:158;-1:-1:-1;;;;;13882:158:103:o;14177:258::-;14249:1;14259:113;14273:6;14270:1;14267:13;14259:113;;;14349:11;;;14343:18;14330:11;;;14323:39;14295:2;14288:10;14259:113;;;14390:6;14387:1;14384:13;14381:2;;;14425:1;14416:6;14411:3;14407:16;14400:27;14381:2;;14230:205;;;:::o;14440:380::-;14525:1;14515:12;;14572:1;14562:12;;;14583:2;;14637:4;14629:6;14625:17;14615:27;;14583:2;14690;14682:6;14679:14;14659:18;14656:38;14653:2;;;14736:10;14731:3;14727:20;14724:1;14717:31;14771:4;14768:1;14761:15;14799:4;14796:1;14789:15;14825:131;-1:-1:-1;;;;;14900:31:103;;14890:42;;14880:2;;14946:1;14943;14936:12"},"methodIdentifiers":{"cancel(uint256)":"40e58ee5","getOracleRequestCount()":"38aec7cc","getProcessId(uint256)":"9b04ed30","initialize(address)":"c4d66de8","request(bytes32,bytes,string,address,uint256)":"2c933f22","respond(uint256,address,bytes)":"9af8c4ba"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"LogOracleCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"LogOracleRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"responder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"LogOracleResponded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleRequestCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"getProcessId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"callbackMethodName\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"callbackContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"request\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"responder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"respond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract implements the \\\"IQuery\\\" interface and extends the \\\"CoreController\\\" contract. The contract imports several external contracts from the \\\"etherisc/gif-interface\\\" repository, including \\\"IComponent.sol\\\", \\\"IOracle.sol\\\", \\\"IQuery.sol\\\", and \\\"IInstanceService.sol\\\". It also imports two local contracts, \\\"ComponentController.sol\\\" and \\\"CoreController.sol\\\". The contract defines a private variable `_component` of type \\\"ComponentController\\\" and an array `_oracleRequests` of type \\\"OracleRequest[]\\\". The contract includes two modifiers: 1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the \\\"OracleService\\\" contract address stored in the CoreController. 2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`. The contract provides the following functions: - `_afterInitialize()`: Sets the `_component` variable to the address of the \\\"ComponentController\\\" contract. It is called after contract initialization and only during the initialization phase. - `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the \\\"Query\\\" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event. - `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the \\\"OracleService\\\" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event. - `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the \\\"Query\\\" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event. - `getProcessId()`: Returns the process ID associated with a given `requestId`. - `getOracleRequestCount()`: Returns the number of oracle requests made. - `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component. The contract emits the following events: 1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID. 2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status. 3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/QueryModule.sol\":\"QueryModule\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/QueryModule.sol\":{\"keccak256\":\"0x2485de3fc1c10d0f73f1fe642b77fc3752142b00b8c0e67ea9166a04ea4a0c14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3104393b75a5e7ad6ee0059e0eff0f885a5531cdba307cf0e81da8998251b1fe\",\"dweb:/ipfs/QmahXuYLomYGj3jJeM5Z6SUXhAW6e9gwk4bi2MUQurfcEB\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/RegistryController.sol":{"RegistryController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"LogContractDeregistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isNew","type":"bool"}],"name":"LogContractRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"}],"name":"LogReleasePrepared","type":"event"},{"inputs":[],"name":"MAX_CONTRACTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_contracts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_contractsInRelease","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"contractName","outputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contracts","outputs":[{"internalType":"uint256","name":"_numberOfContracts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregisterInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"ensureSender","outputs":[{"internalType":"bool","name":"_senderMatches","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContract","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractInRelease","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRelease","outputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_initialRelease","type":"bytes32"}],"name":"initializeRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newRelease","type":"bytes32"}],"name":"prepareRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"registerInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"release","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6116b3806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806376b707b7116100a2578063c4d66de811610071578063c4d66de814610248578063d22057a91461025b578063dc527b081461026e578063e16c7d9814610281578063f6b3e7d01461029457610116565b806376b707b71461021157806386d1a69f14610219578063893917ea14610222578063b0ef18a01461023557610116565b806348cd4cb1116100e957806348cd4cb1146101815780634a941e5e1461018a57806356bbc19d146101d657806369923515146101e95780636c0f79b61461020957610116565b80631d5e73141461011b578063208131541461013057806324042a0a146101435780632ca65a791461015e575b600080fd5b61012e61012936600461150b565b6102a7565b005b61012e61013e3660046114a3565b610368565b61014b606481565b6040519081526020015b60405180910390f35b61017161016c366004611458565b61041d565b6040519015158152602001610155565b61014b60035481565b6101be6101983660046114ea565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610155565b61012e6101e43660046114a3565b610447565b61014b6101f73660046114a3565b60056020526000908152604090205481565b61014b6105bb565b60025461014b565b61014b60025481565b61012e6102303660046114a3565b6105da565b6101be6102433660046114ea565b6107ef565b61012e610256366004611420565b610802565b61012e6102693660046114bb565b610938565b61012e61027c3660046114ea565b6109ed565b6101be61028f3660046114a3565b610a9d565b61014b6102a23660046114a3565b610ab1565b6000546201000090046001600160a01b0316632ca65a796102c53390565b6040518263ffffffff1660e01b81526004016102e19190611543565b60206040518083038186803b1580156102f957600080fd5b505afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103319190611483565b6103565760405162461bcd60e51b815260040161034d906115c5565b60405180910390fd5b6103638360008484610acc565b505050565b6000546201000090046001600160a01b0316632ca65a796103863390565b6040518263ffffffff1660e01b81526004016103a29190611543565b60206040518083038186803b1580156103ba57600080fd5b505afa1580156103ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f29190611483565b61040e5760405162461bcd60e51b815260040161034d906115c5565b61041a60025482610e86565b50565b600061042b600254836110a8565b6001600160a01b0316836001600160a01b031614905092915050565b600054610100900460ff16158080156104675750600054600160ff909116105b806104885750610476306110ce565b158015610488575060005460ff166001145b6104a45760405162461bcd60e51b815260040161034d90611577565b6000805460ff1916600117905580156104c7576000805461ff0019166101001790555b6000805462010000600160b01b03191630620100000217905560028290556104ec3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b039790971696909617909555925482526006905220610556916110e1565b506002546000908152600560205260409020600190554360035580156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b60025460009081526006602052604081206105d5906110ed565b905090565b6000546201000090046001600160a01b0316632ca65a796105f83390565b6040518263ffffffff1660e01b81526004016106149190611543565b60206040518083038186803b15801561062c57600080fd5b505afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611483565b6106805760405162461bcd60e51b815260040161034d906115c5565b600254600090815260056020526040902054806106df5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c454153450000000000604482015260640161034d565b600082815260056020526040902054156107475760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b606482015260840161034d565b60005b818110156107b957600254600090815260066020526040812061076d90836110f7565b60025460009081526004602090815260408083208484529091529020549091506107a690859060019084906001600160a01b0316610acc565b506107b2600182611608565b905061074a565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b4906020016105ae565b60006107fb83836110a8565b9392505050565b600054610100900460ff16158080156108225750600054600160ff909116105b806108435750610831306110ce565b158015610843575060005460ff166001145b61085f5760405162461bcd60e51b815260040161034d90611577565b6000805460ff191660011790558015610882576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556108ac600090565b6541636365737360d01b146108ee576108cd6541636365737360d01b611103565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108f66111eb565b80156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016105ae565b6000546201000090046001600160a01b0316632ca65a796109563390565b6040518263ffffffff1660e01b81526004016109729190611543565b60206040518083038186803b15801561098a57600080fd5b505afa15801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c29190611483565b6109de5760405162461bcd60e51b815260040161034d906115c5565b6105b760025460008484610acc565b6000546201000090046001600160a01b0316632ca65a79610a0b3390565b6040518263ffffffff1660e01b8152600401610a279190611543565b60206040518083038186803b158015610a3f57600080fd5b505afa158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a779190611483565b610a935760405162461bcd60e51b815260040161034d906115c5565b6105b78282610e86565b6000610aab600254836110a8565b92915050565b6002546000908152600660205260408120610aab90836110f7565b6000848152600660205260408120606490610ae6906110ed565b10610b3d5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b606482015260840161034d565b600085815260056020526040902054151580610b565750835b610ba25760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e000000604482015260640161034d565b82610bf95760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b606482015260840161034d565b6000858152600660205260409020610c119084611258565b1580610c6257508276496e7374616e63654f70657261746f725365727669636560481b148015610c62575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610cb95760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b606482015260840161034d565b6001600160a01b038216610d1b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b606482015260840161034d565b60008581526004602090815260408083208684529091529020546001600160a01b0316610d7f576000858152600660205260409020610d5a90846110e1565b506000858152600560205260408120805491610d7583611637565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610dc4906110ed565b60008681526005602052604090205414610e2f5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a79610ea43390565b6040518263ffffffff1660e01b8152600401610ec09190611543565b60206040518083038186803b158015610ed857600080fd5b505afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f109190611483565b610f2c5760405162461bcd60e51b815260040161034d906115c5565b6000828152600660205260409020610f449082611258565b610f905760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e0000604482015260640161034d565b6000828152600660205260409020610fa89082611270565b506000828152600560205260408120805460019290610fc8908490611620565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b031916905584835260069091529020611007906110ed565b600083815260056020526040902054146110725760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a13191016105ae565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b60006107fb838361127c565b6000610aab825490565b60006107fb83836112cb565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611185919061143c565b90506001600160a01b0381166110dc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161034d565b600054610100900460ff166112565760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161034d565b565b600081815260018301602052604081205415156107fb565b60006107fb8383611303565b60008181526001830160205260408120546112c357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610aab565b506000610aab565b60008260000182815481106112f057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120548015611416576000611327600183611620565b855490915060009061133b90600190611620565b90508181146113bc57600086600001828154811061136957634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061139a57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806113db57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610aab565b6000915050610aab565b600060208284031215611431578081fd5b81356107fb81611668565b60006020828403121561144d578081fd5b81516107fb81611668565b6000806040838503121561146a578081fd5b823561147581611668565b946020939093013593505050565b600060208284031215611494578081fd5b815180151581146107fb578182fd5b6000602082840312156114b4578081fd5b5035919050565b600080604083850312156114cd578182fd5b8235915060208301356114df81611668565b809150509250929050565b600080604083850312156114fc578182fd5b50508035926020909101359150565b60008060006060848603121561151f578081fd5b8335925060208401359150604084013561153881611668565b809150509250925092565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000821982111561161b5761161b611652565b500190565b60008282101561163257611632611652565b500390565b600060001982141561164b5761164b611652565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461041a57600080fdfea264697066735822122010fc0f128c1a977b4951f6dee77033c18bcc4363fb956c3ba337add63496ccbf64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x16B3 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B707B7 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x294 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x76B707B7 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x86D1A69F EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0xB0EF18A0 EQ PUSH2 0x235 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x48CD4CB1 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x48CD4CB1 EQ PUSH2 0x181 JUMPI DUP1 PUSH4 0x4A941E5E EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x56BBC19D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x69923515 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x209 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x24042A0A EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x2CA65A79 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x150B JUMP JUMPDEST PUSH2 0x2A7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12E PUSH2 0x13E CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST PUSH2 0x14B PUSH1 0x64 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x171 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1458 JUMP JUMPDEST PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x155 JUMP JUMPDEST PUSH2 0x14B PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x155 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x447 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x14B JUMP JUMPDEST PUSH2 0x14B PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH2 0x7EF JUMP JUMPDEST PUSH2 0x12E PUSH2 0x256 CALLDATASIZE PUSH1 0x4 PUSH2 0x1420 JUMP JUMPDEST PUSH2 0x802 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x269 CALLDATASIZE PUSH1 0x4 PUSH2 0x14BB JUMP JUMPDEST PUSH2 0x938 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH2 0x9ED JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0xA9D JUMP JUMPDEST PUSH2 0x14B PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x2C5 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x331 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x356 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x363 DUP4 PUSH1 0x0 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x386 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A2 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x40E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x41A PUSH1 0x2 SLOAD DUP3 PUSH2 0xE86 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42B PUSH1 0x2 SLOAD DUP4 PUSH2 0x10A8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x467 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x488 JUMPI POP PUSH2 0x476 ADDRESS PUSH2 0x10CE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x488 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x4A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND ADDRESS PUSH3 0x10000 MUL OR SWAP1 SSTORE PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH2 0x4EC CALLER SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 SWAP1 SWAP8 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE SWAP3 SLOAD DUP3 MSTORE PUSH1 0x6 SWAP1 MSTORE KECCAK256 PUSH2 0x556 SWAP2 PUSH2 0x10E1 JUMP JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE NUMBER PUSH1 0x3 SSTORE DUP1 ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x5D5 SWAP1 PUSH2 0x10ED JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x5F8 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x614 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x62C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x640 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x664 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x680 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030313A454D5054595F52454C454153450000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030323A4E45575F52454C454153455F4E4F545F454D PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x505459 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B9 JUMPI PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x76D SWAP1 DUP4 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x7A6 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xACC JUMP JUMPDEST POP PUSH2 0x7B2 PUSH1 0x1 DUP3 PUSH2 0x1608 JUMP JUMPDEST SWAP1 POP PUSH2 0x74A JUMP JUMPDEST POP PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD50692EB75750D216C747528A2DFCED5915EAB7B4EE40BCF8120D0D035297B4 SWAP1 PUSH1 0x20 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x10A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x822 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x843 JUMPI POP PUSH2 0x831 ADDRESS PUSH2 0x10CE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x843 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x882 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x8AC PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x8EE JUMPI PUSH2 0x8CD PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1103 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x8F6 PUSH2 0x11EB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x956 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x972 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x98A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x99E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9C2 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x9DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x5B7 PUSH1 0x2 SLOAD PUSH1 0x0 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xA0B CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA77 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0xA93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x5B7 DUP3 DUP3 PUSH2 0xE86 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAB PUSH1 0x2 SLOAD DUP4 PUSH2 0x10A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xAAB SWAP1 DUP4 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x64 SWAP1 PUSH2 0xAE6 SWAP1 PUSH2 0x10ED JUMP JUMPDEST LT PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031303A4D41585F434F4E5452414354535F4C494D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO DUP1 PUSH2 0xB56 JUMPI POP DUP4 JUMPDEST PUSH2 0xBA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031313A52454C454153455F554E4B4E4F574E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST DUP3 PUSH2 0xBF9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031323A434F4E54524143545F4E414D455F454D5054 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x59 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC11 SWAP1 DUP5 PUSH2 0x1258 JUMP JUMPDEST ISZERO DUP1 PUSH2 0xC62 JUMPI POP DUP3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL EQ DUP1 ISZERO PUSH2 0xC62 JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0xCB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031333A434F4E54524143545F4E414D455F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xD1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031343A434F4E54524143545F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD7F JUMPI PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xD5A SWAP1 DUP5 PUSH2 0x10E1 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xD75 DUP4 PUSH2 0x1637 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE DUP8 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0xDC4 SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0xE2F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031353A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x7C5C4E97E59CBD96C53653DFD3F538E50D7BAB44BAA352481FDC3FA7F18E3008 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xEA4 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC0 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xED8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF10 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0xF2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xF44 SWAP1 DUP3 PUSH2 0x1258 JUMP JUMPDEST PUSH2 0xF90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032303A434F4E54524143545F554E4B4E4F574E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xFA8 SWAP1 DUP3 PUSH2 0x1270 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xFC8 SWAP1 DUP5 SWAP1 PUSH2 0x1620 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0x1007 SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1072 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032313A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x95BD8DB0F80EC14D4D7E375FB7FB3603144BA5B594106E0410243553F97A131 SWAP2 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP3 DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x127C JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAB DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x12CB JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x143C JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x10DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1256 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x7FB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x1303 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x12C3 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xAAB JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x12F0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1416 JUMPI PUSH1 0x0 PUSH2 0x1327 PUSH1 0x1 DUP4 PUSH2 0x1620 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x133B SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1620 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x13BC JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1369 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x139A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x13DB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1431 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7FB DUP2 PUSH2 0x1668 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x144D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7FB DUP2 PUSH2 0x1668 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x146A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1475 DUP2 PUSH2 0x1668 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1494 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x7FB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14B4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14CD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x14DF DUP2 PUSH2 0x1668 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14FC JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x151F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x1538 DUP2 PUSH2 0x1668 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x161B JUMPI PUSH2 0x161B PUSH2 0x1652 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1632 JUMPI PUSH2 0x1632 PUSH2 0x1652 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x164B JUMPI PUSH2 0x164B PUSH2 0x1652 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT 0xFC 0xF SLT DUP13 BYTE SWAP8 PUSH28 0x4951F6DEE77033C18BCC4363FB956C3BA337ADD63496CCBF64736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"2981:7567:80:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;2981:7567:80;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;2981:7567:80;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:10771:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"629:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"675:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"684:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"692:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"677:6:103"},"nodeType":"YulFunctionCall","src":"677:22:103"},"nodeType":"YulExpressionStatement","src":"677:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"650:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"659:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"646:3:103"},"nodeType":"YulFunctionCall","src":"646:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"671:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"642:3:103"},"nodeType":"YulFunctionCall","src":"642:32:103"},"nodeType":"YulIf","src":"639:2:103"},{"nodeType":"YulVariableDeclaration","src":"710:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"736:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"723:12:103"},"nodeType":"YulFunctionCall","src":"723:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"714:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"780:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"755:24:103"},"nodeType":"YulFunctionCall","src":"755:31:103"},"nodeType":"YulExpressionStatement","src":"755:31:103"},{"nodeType":"YulAssignment","src":"795:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"805:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"795:6:103"}]},{"nodeType":"YulAssignment","src":"819:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"846:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"857:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"842:3:103"},"nodeType":"YulFunctionCall","src":"842:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"829:12:103"},"nodeType":"YulFunctionCall","src":"829:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"819:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"587:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"598:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"610:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"618:6:103","type":""}],"src":"542:325:103"},{"body":{"nodeType":"YulBlock","src":"950:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"996:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1005:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1013:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"998:6:103"},"nodeType":"YulFunctionCall","src":"998:22:103"},"nodeType":"YulExpressionStatement","src":"998:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"971:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"980:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"992:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"963:3:103"},"nodeType":"YulFunctionCall","src":"963:32:103"},"nodeType":"YulIf","src":"960:2:103"},{"nodeType":"YulVariableDeclaration","src":"1031:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1050:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1044:5:103"},"nodeType":"YulFunctionCall","src":"1044:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1035:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1113:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1122:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1130:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1115:6:103"},"nodeType":"YulFunctionCall","src":"1115:22:103"},"nodeType":"YulExpressionStatement","src":"1115:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1082:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1103:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1096:6:103"},"nodeType":"YulFunctionCall","src":"1096:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1089:6:103"},"nodeType":"YulFunctionCall","src":"1089:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1079:2:103"},"nodeType":"YulFunctionCall","src":"1079:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1072:6:103"},"nodeType":"YulFunctionCall","src":"1072:40:103"},"nodeType":"YulIf","src":"1069:2:103"},{"nodeType":"YulAssignment","src":"1148:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1158:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1148:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"916:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"927:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"939:6:103","type":""}],"src":"872:297:103"},{"body":{"nodeType":"YulBlock","src":"1244:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1290:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1299:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1307:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1292:6:103"},"nodeType":"YulFunctionCall","src":"1292:22:103"},"nodeType":"YulExpressionStatement","src":"1292:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1265:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1274:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1261:3:103"},"nodeType":"YulFunctionCall","src":"1261:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1286:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1257:3:103"},"nodeType":"YulFunctionCall","src":"1257:32:103"},"nodeType":"YulIf","src":"1254:2:103"},{"nodeType":"YulAssignment","src":"1325:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1348:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1335:12:103"},"nodeType":"YulFunctionCall","src":"1335:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1325:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1210:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1221:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1233:6:103","type":""}],"src":"1174:190:103"},{"body":{"nodeType":"YulBlock","src":"1456:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"1502:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1511:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1519:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1504:6:103"},"nodeType":"YulFunctionCall","src":"1504:22:103"},"nodeType":"YulExpressionStatement","src":"1504:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1477:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1486:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1473:3:103"},"nodeType":"YulFunctionCall","src":"1473:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1498:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1469:3:103"},"nodeType":"YulFunctionCall","src":"1469:32:103"},"nodeType":"YulIf","src":"1466:2:103"},{"nodeType":"YulAssignment","src":"1537:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1560:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1547:12:103"},"nodeType":"YulFunctionCall","src":"1547:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1537:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1579:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1620:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1605:3:103"},"nodeType":"YulFunctionCall","src":"1605:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1592:12:103"},"nodeType":"YulFunctionCall","src":"1592:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1583:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1658:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1633:24:103"},"nodeType":"YulFunctionCall","src":"1633:31:103"},"nodeType":"YulExpressionStatement","src":"1633:31:103"},{"nodeType":"YulAssignment","src":"1673:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1683:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1673:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1414:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1425:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1437:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1445:6:103","type":""}],"src":"1369:325:103"},{"body":{"nodeType":"YulBlock","src":"1786:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"1832:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1841:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1849:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1834:6:103"},"nodeType":"YulFunctionCall","src":"1834:22:103"},"nodeType":"YulExpressionStatement","src":"1834:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1807:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1816:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1803:3:103"},"nodeType":"YulFunctionCall","src":"1803:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1828:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1799:3:103"},"nodeType":"YulFunctionCall","src":"1799:32:103"},"nodeType":"YulIf","src":"1796:2:103"},{"nodeType":"YulAssignment","src":"1867:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1890:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1877:12:103"},"nodeType":"YulFunctionCall","src":"1877:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1867:6:103"}]},{"nodeType":"YulAssignment","src":"1909:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1936:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1947:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1932:3:103"},"nodeType":"YulFunctionCall","src":"1932:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1919:12:103"},"nodeType":"YulFunctionCall","src":"1919:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1909:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1744:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1755:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1767:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1775:6:103","type":""}],"src":"1699:258:103"},{"body":{"nodeType":"YulBlock","src":"2066:289:103","statements":[{"body":{"nodeType":"YulBlock","src":"2112:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2121:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2129:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2114:6:103"},"nodeType":"YulFunctionCall","src":"2114:22:103"},"nodeType":"YulExpressionStatement","src":"2114:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2087:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2096:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2083:3:103"},"nodeType":"YulFunctionCall","src":"2083:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2108:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2079:3:103"},"nodeType":"YulFunctionCall","src":"2079:32:103"},"nodeType":"YulIf","src":"2076:2:103"},{"nodeType":"YulAssignment","src":"2147:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2170:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2157:12:103"},"nodeType":"YulFunctionCall","src":"2157:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2147:6:103"}]},{"nodeType":"YulAssignment","src":"2189:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2227:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2212:3:103"},"nodeType":"YulFunctionCall","src":"2212:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2199:12:103"},"nodeType":"YulFunctionCall","src":"2199:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2189:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2240:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2270:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2281:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2266:3:103"},"nodeType":"YulFunctionCall","src":"2266:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2253:12:103"},"nodeType":"YulFunctionCall","src":"2253:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2244:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2319:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2294:24:103"},"nodeType":"YulFunctionCall","src":"2294:31:103"},"nodeType":"YulExpressionStatement","src":"2294:31:103"},{"nodeType":"YulAssignment","src":"2334:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2344:5:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2334:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2016:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2027:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2039:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2047:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2055:6:103","type":""}],"src":"1962:393:103"},{"body":{"nodeType":"YulBlock","src":"2430:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2476:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2485:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2493:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2478:6:103"},"nodeType":"YulFunctionCall","src":"2478:22:103"},"nodeType":"YulExpressionStatement","src":"2478:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2451:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2460:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2447:3:103"},"nodeType":"YulFunctionCall","src":"2447:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2472:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2443:3:103"},"nodeType":"YulFunctionCall","src":"2443:32:103"},"nodeType":"YulIf","src":"2440:2:103"},{"nodeType":"YulAssignment","src":"2511:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2534:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2521:12:103"},"nodeType":"YulFunctionCall","src":"2521:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2511:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2396:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2407:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2419:6:103","type":""}],"src":"2360:190:103"},{"body":{"nodeType":"YulBlock","src":"2656:102:103","statements":[{"nodeType":"YulAssignment","src":"2666:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2678:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2689:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2674:3:103"},"nodeType":"YulFunctionCall","src":"2674:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2666:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2708:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2723:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2739:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2744:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2735:3:103"},"nodeType":"YulFunctionCall","src":"2735:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2748:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2731:3:103"},"nodeType":"YulFunctionCall","src":"2731:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2719:3:103"},"nodeType":"YulFunctionCall","src":"2719:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2701:6:103"},"nodeType":"YulFunctionCall","src":"2701:51:103"},"nodeType":"YulExpressionStatement","src":"2701:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2625:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2636:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2647:4:103","type":""}],"src":"2555:203:103"},{"body":{"nodeType":"YulBlock","src":"2955:164:103","statements":[{"nodeType":"YulAssignment","src":"2965:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2977:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2988:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2973:3:103"},"nodeType":"YulFunctionCall","src":"2973:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2965:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3007:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3022:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3038:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3043:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3034:3:103"},"nodeType":"YulFunctionCall","src":"3034:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3047:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3030:3:103"},"nodeType":"YulFunctionCall","src":"3030:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3018:3:103"},"nodeType":"YulFunctionCall","src":"3018:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3000:6:103"},"nodeType":"YulFunctionCall","src":"3000:51:103"},"nodeType":"YulExpressionStatement","src":"3000:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3071:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3082:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3067:3:103"},"nodeType":"YulFunctionCall","src":"3067:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3087:25:103","type":"","value":"InstanceOperatorService"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3060:6:103"},"nodeType":"YulFunctionCall","src":"3060:53:103"},"nodeType":"YulExpressionStatement","src":"3060:53:103"}]},"name":"abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2924:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2935:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2946:4:103","type":""}],"src":"2763:356:103"},{"body":{"nodeType":"YulBlock","src":"3219:92:103","statements":[{"nodeType":"YulAssignment","src":"3229:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3252:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3237:3:103"},"nodeType":"YulFunctionCall","src":"3237:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3229:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3271:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3296:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3289:6:103"},"nodeType":"YulFunctionCall","src":"3289:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3282:6:103"},"nodeType":"YulFunctionCall","src":"3282:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3264:6:103"},"nodeType":"YulFunctionCall","src":"3264:41:103"},"nodeType":"YulExpressionStatement","src":"3264:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3188:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3199:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3210:4:103","type":""}],"src":"3124:187:103"},{"body":{"nodeType":"YulBlock","src":"3417:76:103","statements":[{"nodeType":"YulAssignment","src":"3427:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3439:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3450:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3435:3:103"},"nodeType":"YulFunctionCall","src":"3435:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3427:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3469:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3480:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3462:6:103"},"nodeType":"YulFunctionCall","src":"3462:25:103"},"nodeType":"YulExpressionStatement","src":"3462:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3386:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3397:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3408:4:103","type":""}],"src":"3316:177:103"},{"body":{"nodeType":"YulBlock","src":"3627:119:103","statements":[{"nodeType":"YulAssignment","src":"3637:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3649:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3660:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3645:3:103"},"nodeType":"YulFunctionCall","src":"3645:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3637:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3679:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3690:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3672:6:103"},"nodeType":"YulFunctionCall","src":"3672:25:103"},"nodeType":"YulExpressionStatement","src":"3672:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3717:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3728:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3713:3:103"},"nodeType":"YulFunctionCall","src":"3713:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3733:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3706:6:103"},"nodeType":"YulFunctionCall","src":"3706:34:103"},"nodeType":"YulExpressionStatement","src":"3706:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3588:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3599:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3607:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3618:4:103","type":""}],"src":"3498:248:103"},{"body":{"nodeType":"YulBlock","src":"3930:248:103","statements":[{"nodeType":"YulAssignment","src":"3940:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3952:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3963:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3948:3:103"},"nodeType":"YulFunctionCall","src":"3948:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3940:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3983:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3994:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:25:103"},"nodeType":"YulExpressionStatement","src":"3976:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4021:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4032:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4017:3:103"},"nodeType":"YulFunctionCall","src":"4017:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"4037:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4010:6:103"},"nodeType":"YulFunctionCall","src":"4010:34:103"},"nodeType":"YulExpressionStatement","src":"4010:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4075:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4060:3:103"},"nodeType":"YulFunctionCall","src":"4060:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4084:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4100:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4105:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4096:3:103"},"nodeType":"YulFunctionCall","src":"4096:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4109:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4092:3:103"},"nodeType":"YulFunctionCall","src":"4092:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4080:3:103"},"nodeType":"YulFunctionCall","src":"4080:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4053:6:103"},"nodeType":"YulFunctionCall","src":"4053:60:103"},"nodeType":"YulExpressionStatement","src":"4053:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4144:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4129:3:103"},"nodeType":"YulFunctionCall","src":"4129:18:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4163:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4156:6:103"},"nodeType":"YulFunctionCall","src":"4156:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4149:6:103"},"nodeType":"YulFunctionCall","src":"4149:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4122:6:103"},"nodeType":"YulFunctionCall","src":"4122:50:103"},"nodeType":"YulExpressionStatement","src":"4122:50:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_address_t_bool__to_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3875:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3886:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3894:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3902:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3910:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3921:4:103","type":""}],"src":"3751:427:103"},{"body":{"nodeType":"YulBlock","src":"4290:87:103","statements":[{"nodeType":"YulAssignment","src":"4300:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4312:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4323:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4308:3:103"},"nodeType":"YulFunctionCall","src":"4308:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4300:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4342:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4357:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4365:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4353:3:103"},"nodeType":"YulFunctionCall","src":"4353:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4335:6:103"},"nodeType":"YulFunctionCall","src":"4335:36:103"},"nodeType":"YulExpressionStatement","src":"4335:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4259:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4270:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4281:4:103","type":""}],"src":"4183:194:103"},{"body":{"nodeType":"YulBlock","src":"4556:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4584:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4566:6:103"},"nodeType":"YulFunctionCall","src":"4566:21:103"},"nodeType":"YulExpressionStatement","src":"4566:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4607:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4618:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4603:3:103"},"nodeType":"YulFunctionCall","src":"4603:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4623:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4596:6:103"},"nodeType":"YulFunctionCall","src":"4596:30:103"},"nodeType":"YulExpressionStatement","src":"4596:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4646:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4657:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4642:3:103"},"nodeType":"YulFunctionCall","src":"4642:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4662:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4635:6:103"},"nodeType":"YulFunctionCall","src":"4635:62:103"},"nodeType":"YulExpressionStatement","src":"4635:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4717:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4728:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4713:3:103"},"nodeType":"YulFunctionCall","src":"4713:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4733:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4706:6:103"},"nodeType":"YulFunctionCall","src":"4706:35:103"},"nodeType":"YulExpressionStatement","src":"4706:35:103"},{"nodeType":"YulAssignment","src":"4750:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4762:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4773:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4758:3:103"},"nodeType":"YulFunctionCall","src":"4758:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4750:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4533:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4547:4:103","type":""}],"src":"4382:401:103"},{"body":{"nodeType":"YulBlock","src":"4962:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4979:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4990:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4972:6:103"},"nodeType":"YulFunctionCall","src":"4972:21:103"},"nodeType":"YulExpressionStatement","src":"4972:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5024:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5009:3:103"},"nodeType":"YulFunctionCall","src":"5009:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5029:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5002:6:103"},"nodeType":"YulFunctionCall","src":"5002:30:103"},"nodeType":"YulExpressionStatement","src":"5002:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5052:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5063:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5048:3:103"},"nodeType":"YulFunctionCall","src":"5048:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5068:34:103","type":"","value":"ERROR:REC-021:CONTRACT_NUMBER_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5041:6:103"},"nodeType":"YulFunctionCall","src":"5041:62:103"},"nodeType":"YulExpressionStatement","src":"5041:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5123:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5134:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5119:3:103"},"nodeType":"YulFunctionCall","src":"5119:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5139:8:103","type":"","value":"SMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5112:6:103"},"nodeType":"YulFunctionCall","src":"5112:36:103"},"nodeType":"YulExpressionStatement","src":"5112:36:103"},{"nodeType":"YulAssignment","src":"5157:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5180:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5165:3:103"},"nodeType":"YulFunctionCall","src":"5165:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5157:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4953:4:103","type":""}],"src":"4788:402:103"},{"body":{"nodeType":"YulBlock","src":"5369:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5397:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5379:6:103"},"nodeType":"YulFunctionCall","src":"5379:21:103"},"nodeType":"YulExpressionStatement","src":"5379:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5431:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5416:3:103"},"nodeType":"YulFunctionCall","src":"5416:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5436:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5409:6:103"},"nodeType":"YulFunctionCall","src":"5409:30:103"},"nodeType":"YulExpressionStatement","src":"5409:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5470:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5455:3:103"},"nodeType":"YulFunctionCall","src":"5455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5475:34:103","type":"","value":"ERROR:REC-012:CONTRACT_NAME_EMPT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5448:6:103"},"nodeType":"YulFunctionCall","src":"5448:62:103"},"nodeType":"YulExpressionStatement","src":"5448:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5541:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5526:3:103"},"nodeType":"YulFunctionCall","src":"5526:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5546:3:103","type":"","value":"Y"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5519:6:103"},"nodeType":"YulFunctionCall","src":"5519:31:103"},"nodeType":"YulExpressionStatement","src":"5519:31:103"},{"nodeType":"YulAssignment","src":"5559:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5582:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5567:3:103"},"nodeType":"YulFunctionCall","src":"5567:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5559:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5346:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5360:4:103","type":""}],"src":"5195:397:103"},{"body":{"nodeType":"YulBlock","src":"5771:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5788:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5799:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5781:6:103"},"nodeType":"YulFunctionCall","src":"5781:21:103"},"nodeType":"YulExpressionStatement","src":"5781:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5822:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5833:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5818:3:103"},"nodeType":"YulFunctionCall","src":"5818:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5838:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5811:6:103"},"nodeType":"YulFunctionCall","src":"5811:30:103"},"nodeType":"YulExpressionStatement","src":"5811:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5872:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5857:3:103"},"nodeType":"YulFunctionCall","src":"5857:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5877:29:103","type":"","value":"ERROR:REC-001:EMPTY_RELEASE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5850:6:103"},"nodeType":"YulFunctionCall","src":"5850:57:103"},"nodeType":"YulExpressionStatement","src":"5850:57:103"},{"nodeType":"YulAssignment","src":"5916:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5928:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5939:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5924:3:103"},"nodeType":"YulFunctionCall","src":"5924:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5916:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5748:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5762:4:103","type":""}],"src":"5597:351:103"},{"body":{"nodeType":"YulBlock","src":"6127:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6144:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6155:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6137:6:103"},"nodeType":"YulFunctionCall","src":"6137:21:103"},"nodeType":"YulExpressionStatement","src":"6137:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6178:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6189:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6174:3:103"},"nodeType":"YulFunctionCall","src":"6174:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6194:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6167:6:103"},"nodeType":"YulFunctionCall","src":"6167:30:103"},"nodeType":"YulExpressionStatement","src":"6167:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6228:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6213:3:103"},"nodeType":"YulFunctionCall","src":"6213:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6233:34:103","type":"","value":"ERROR:REC-015:CONTRACT_NUMBER_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6206:6:103"},"nodeType":"YulFunctionCall","src":"6206:62:103"},"nodeType":"YulExpressionStatement","src":"6206:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6288:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6299:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6284:3:103"},"nodeType":"YulFunctionCall","src":"6284:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6304:8:103","type":"","value":"SMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6277:6:103"},"nodeType":"YulFunctionCall","src":"6277:36:103"},"nodeType":"YulExpressionStatement","src":"6277:36:103"},{"nodeType":"YulAssignment","src":"6322:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6334:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6345:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6330:3:103"},"nodeType":"YulFunctionCall","src":"6330:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6322:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6104:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6118:4:103","type":""}],"src":"5953:402:103"},{"body":{"nodeType":"YulBlock","src":"6534:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6551:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6562:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6544:6:103"},"nodeType":"YulFunctionCall","src":"6544:21:103"},"nodeType":"YulExpressionStatement","src":"6544:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6585:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6596:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6581:3:103"},"nodeType":"YulFunctionCall","src":"6581:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6601:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6574:6:103"},"nodeType":"YulFunctionCall","src":"6574:30:103"},"nodeType":"YulExpressionStatement","src":"6574:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6624:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6635:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6620:3:103"},"nodeType":"YulFunctionCall","src":"6620:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6640:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6613:6:103"},"nodeType":"YulFunctionCall","src":"6613:62:103"},"nodeType":"YulExpressionStatement","src":"6613:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6695:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6706:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6691:3:103"},"nodeType":"YulFunctionCall","src":"6691:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6711:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6684:6:103"},"nodeType":"YulFunctionCall","src":"6684:44:103"},"nodeType":"YulExpressionStatement","src":"6684:44:103"},{"nodeType":"YulAssignment","src":"6737:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6749:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6760:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6745:3:103"},"nodeType":"YulFunctionCall","src":"6745:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6737:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6511:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6525:4:103","type":""}],"src":"6360:410:103"},{"body":{"nodeType":"YulBlock","src":"6949:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6977:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6959:6:103"},"nodeType":"YulFunctionCall","src":"6959:21:103"},"nodeType":"YulExpressionStatement","src":"6959:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7000:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7011:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6996:3:103"},"nodeType":"YulFunctionCall","src":"6996:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7016:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6989:6:103"},"nodeType":"YulFunctionCall","src":"6989:30:103"},"nodeType":"YulExpressionStatement","src":"6989:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7039:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7050:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7035:3:103"},"nodeType":"YulFunctionCall","src":"7035:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7055:34:103","type":"","value":"ERROR:REC-002:NEW_RELEASE_NOT_EM"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7028:6:103"},"nodeType":"YulFunctionCall","src":"7028:62:103"},"nodeType":"YulExpressionStatement","src":"7028:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7121:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7106:3:103"},"nodeType":"YulFunctionCall","src":"7106:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7126:5:103","type":"","value":"PTY"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7099:6:103"},"nodeType":"YulFunctionCall","src":"7099:33:103"},"nodeType":"YulExpressionStatement","src":"7099:33:103"},{"nodeType":"YulAssignment","src":"7141:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7164:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7149:3:103"},"nodeType":"YulFunctionCall","src":"7149:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7141:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6926:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6940:4:103","type":""}],"src":"6775:399:103"},{"body":{"nodeType":"YulBlock","src":"7353:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7370:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7381:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7363:6:103"},"nodeType":"YulFunctionCall","src":"7363:21:103"},"nodeType":"YulExpressionStatement","src":"7363:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7404:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7415:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7400:3:103"},"nodeType":"YulFunctionCall","src":"7400:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7420:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7393:6:103"},"nodeType":"YulFunctionCall","src":"7393:30:103"},"nodeType":"YulExpressionStatement","src":"7393:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7443:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7454:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7439:3:103"},"nodeType":"YulFunctionCall","src":"7439:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7459:34:103","type":"","value":"ERROR:REC-013:CONTRACT_NAME_EXIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7432:6:103"},"nodeType":"YulFunctionCall","src":"7432:62:103"},"nodeType":"YulExpressionStatement","src":"7432:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7514:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7525:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7510:3:103"},"nodeType":"YulFunctionCall","src":"7510:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7530:4:103","type":"","value":"TS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7503:6:103"},"nodeType":"YulFunctionCall","src":"7503:32:103"},"nodeType":"YulExpressionStatement","src":"7503:32:103"},{"nodeType":"YulAssignment","src":"7544:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7556:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7567:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7552:3:103"},"nodeType":"YulFunctionCall","src":"7552:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7544:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7330:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7344:4:103","type":""}],"src":"7179:398:103"},{"body":{"nodeType":"YulBlock","src":"7756:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7784:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7766:6:103"},"nodeType":"YulFunctionCall","src":"7766:21:103"},"nodeType":"YulExpressionStatement","src":"7766:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7807:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7818:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7803:3:103"},"nodeType":"YulFunctionCall","src":"7803:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7823:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7796:6:103"},"nodeType":"YulFunctionCall","src":"7796:30:103"},"nodeType":"YulExpressionStatement","src":"7796:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7846:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7857:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7842:3:103"},"nodeType":"YulFunctionCall","src":"7842:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7862:34:103","type":"","value":"ERROR:REC-014:CONTRACT_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7835:6:103"},"nodeType":"YulFunctionCall","src":"7835:62:103"},"nodeType":"YulExpressionStatement","src":"7835:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7917:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7928:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7913:3:103"},"nodeType":"YulFunctionCall","src":"7913:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7933:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7906:6:103"},"nodeType":"YulFunctionCall","src":"7906:33:103"},"nodeType":"YulExpressionStatement","src":"7906:33:103"},{"nodeType":"YulAssignment","src":"7948:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7960:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7971:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7956:3:103"},"nodeType":"YulFunctionCall","src":"7956:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7948:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7733:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7747:4:103","type":""}],"src":"7582:399:103"},{"body":{"nodeType":"YulBlock","src":"8160:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8177:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8188:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8170:6:103"},"nodeType":"YulFunctionCall","src":"8170:21:103"},"nodeType":"YulExpressionStatement","src":"8170:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8211:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8222:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8207:3:103"},"nodeType":"YulFunctionCall","src":"8207:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8227:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8200:6:103"},"nodeType":"YulFunctionCall","src":"8200:30:103"},"nodeType":"YulExpressionStatement","src":"8200:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8261:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8246:3:103"},"nodeType":"YulFunctionCall","src":"8246:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8266:32:103","type":"","value":"ERROR:REC-020:CONTRACT_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8239:6:103"},"nodeType":"YulFunctionCall","src":"8239:60:103"},"nodeType":"YulExpressionStatement","src":"8239:60:103"},{"nodeType":"YulAssignment","src":"8308:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8320:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8331:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8316:3:103"},"nodeType":"YulFunctionCall","src":"8316:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8308:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8137:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8151:4:103","type":""}],"src":"7986:354:103"},{"body":{"nodeType":"YulBlock","src":"8519:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8536:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8547:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8529:6:103"},"nodeType":"YulFunctionCall","src":"8529:21:103"},"nodeType":"YulExpressionStatement","src":"8529:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8570:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8581:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8566:3:103"},"nodeType":"YulFunctionCall","src":"8566:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8586:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8559:6:103"},"nodeType":"YulFunctionCall","src":"8559:30:103"},"nodeType":"YulExpressionStatement","src":"8559:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8620:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8605:3:103"},"nodeType":"YulFunctionCall","src":"8605:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8625:34:103","type":"","value":"ERROR:CRC-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8598:6:103"},"nodeType":"YulFunctionCall","src":"8598:62:103"},"nodeType":"YulExpressionStatement","src":"8598:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8691:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8676:3:103"},"nodeType":"YulFunctionCall","src":"8676:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8696:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8669:6:103"},"nodeType":"YulFunctionCall","src":"8669:33:103"},"nodeType":"YulExpressionStatement","src":"8669:33:103"},{"nodeType":"YulAssignment","src":"8711:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8723:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8734:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8719:3:103"},"nodeType":"YulFunctionCall","src":"8719:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8711:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8496:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8510:4:103","type":""}],"src":"8345:399:103"},{"body":{"nodeType":"YulBlock","src":"8923:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8940:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8951:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8933:6:103"},"nodeType":"YulFunctionCall","src":"8933:21:103"},"nodeType":"YulExpressionStatement","src":"8933:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8974:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8985:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8970:3:103"},"nodeType":"YulFunctionCall","src":"8970:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8990:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8963:6:103"},"nodeType":"YulFunctionCall","src":"8963:30:103"},"nodeType":"YulExpressionStatement","src":"8963:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9024:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9009:3:103"},"nodeType":"YulFunctionCall","src":"9009:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9029:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9002:6:103"},"nodeType":"YulFunctionCall","src":"9002:62:103"},"nodeType":"YulExpressionStatement","src":"9002:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9095:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9080:3:103"},"nodeType":"YulFunctionCall","src":"9080:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9100:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9073:6:103"},"nodeType":"YulFunctionCall","src":"9073:41:103"},"nodeType":"YulExpressionStatement","src":"9073:41:103"},{"nodeType":"YulAssignment","src":"9123:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9135:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9146:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9131:3:103"},"nodeType":"YulFunctionCall","src":"9131:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9123:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8900:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8914:4:103","type":""}],"src":"8749:407:103"},{"body":{"nodeType":"YulBlock","src":"9335:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9363:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9345:6:103"},"nodeType":"YulFunctionCall","src":"9345:21:103"},"nodeType":"YulExpressionStatement","src":"9345:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9397:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9382:3:103"},"nodeType":"YulFunctionCall","src":"9382:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9402:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9375:6:103"},"nodeType":"YulFunctionCall","src":"9375:30:103"},"nodeType":"YulExpressionStatement","src":"9375:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9425:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9436:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9421:3:103"},"nodeType":"YulFunctionCall","src":"9421:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9441:34:103","type":"","value":"ERROR:REC-010:MAX_CONTRACTS_LIMI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9414:6:103"},"nodeType":"YulFunctionCall","src":"9414:62:103"},"nodeType":"YulExpressionStatement","src":"9414:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9507:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9492:3:103"},"nodeType":"YulFunctionCall","src":"9492:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9512:3:103","type":"","value":"T"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9485:6:103"},"nodeType":"YulFunctionCall","src":"9485:31:103"},"nodeType":"YulExpressionStatement","src":"9485:31:103"},{"nodeType":"YulAssignment","src":"9525:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9548:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9533:3:103"},"nodeType":"YulFunctionCall","src":"9533:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9525:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9312:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9326:4:103","type":""}],"src":"9161:397:103"},{"body":{"nodeType":"YulBlock","src":"9737:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9754:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9765:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9747:6:103"},"nodeType":"YulFunctionCall","src":"9747:21:103"},"nodeType":"YulExpressionStatement","src":"9747:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9788:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9799:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9784:3:103"},"nodeType":"YulFunctionCall","src":"9784:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9804:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9777:6:103"},"nodeType":"YulFunctionCall","src":"9777:30:103"},"nodeType":"YulExpressionStatement","src":"9777:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9827:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9838:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9823:3:103"},"nodeType":"YulFunctionCall","src":"9823:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9843:31:103","type":"","value":"ERROR:REC-011:RELEASE_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9816:6:103"},"nodeType":"YulFunctionCall","src":"9816:59:103"},"nodeType":"YulExpressionStatement","src":"9816:59:103"},{"nodeType":"YulAssignment","src":"9884:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9896:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9907:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9892:3:103"},"nodeType":"YulFunctionCall","src":"9892:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9884:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9714:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9728:4:103","type":""}],"src":"9563:353:103"},{"body":{"nodeType":"YulBlock","src":"10022:76:103","statements":[{"nodeType":"YulAssignment","src":"10032:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10044:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10055:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10040:3:103"},"nodeType":"YulFunctionCall","src":"10040:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10032:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10074:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10085:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10067:6:103"},"nodeType":"YulFunctionCall","src":"10067:25:103"},"nodeType":"YulExpressionStatement","src":"10067:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9991:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10002:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10013:4:103","type":""}],"src":"9921:177:103"},{"body":{"nodeType":"YulBlock","src":"10151:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"10178:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10180:16:103"},"nodeType":"YulFunctionCall","src":"10180:18:103"},"nodeType":"YulExpressionStatement","src":"10180:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10167:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10174:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10170:3:103"},"nodeType":"YulFunctionCall","src":"10170:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10164:2:103"},"nodeType":"YulFunctionCall","src":"10164:13:103"},"nodeType":"YulIf","src":"10161:2:103"},{"nodeType":"YulAssignment","src":"10209:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10220:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"10223:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10216:3:103"},"nodeType":"YulFunctionCall","src":"10216:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"10209:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10134:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"10137:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"10143:3:103","type":""}],"src":"10103:128:103"},{"body":{"nodeType":"YulBlock","src":"10285:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"10307:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10309:16:103"},"nodeType":"YulFunctionCall","src":"10309:18:103"},"nodeType":"YulExpressionStatement","src":"10309:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10301:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"10304:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10298:2:103"},"nodeType":"YulFunctionCall","src":"10298:8:103"},"nodeType":"YulIf","src":"10295:2:103"},{"nodeType":"YulAssignment","src":"10338:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10350:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"10353:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10346:3:103"},"nodeType":"YulFunctionCall","src":"10346:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"10338:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10267:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"10270:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"10276:4:103","type":""}],"src":"10236:125:103"},{"body":{"nodeType":"YulBlock","src":"10413:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"10444:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10446:16:103"},"nodeType":"YulFunctionCall","src":"10446:18:103"},"nodeType":"YulExpressionStatement","src":"10446:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10429:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10440:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10436:3:103"},"nodeType":"YulFunctionCall","src":"10436:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10426:2:103"},"nodeType":"YulFunctionCall","src":"10426:17:103"},"nodeType":"YulIf","src":"10423:2:103"},{"nodeType":"YulAssignment","src":"10475:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10486:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10493:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10482:3:103"},"nodeType":"YulFunctionCall","src":"10482:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"10475:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10395:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"10405:3:103","type":""}],"src":"10366:135:103"},{"body":{"nodeType":"YulBlock","src":"10538:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10555:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10562:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10567:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10558:3:103"},"nodeType":"YulFunctionCall","src":"10558:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10548:6:103"},"nodeType":"YulFunctionCall","src":"10548:31:103"},"nodeType":"YulExpressionStatement","src":"10548:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10595:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10598:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10588:6:103"},"nodeType":"YulFunctionCall","src":"10588:15:103"},"nodeType":"YulExpressionStatement","src":"10588:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10619:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10622:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10612:6:103"},"nodeType":"YulFunctionCall","src":"10612:15:103"},"nodeType":"YulExpressionStatement","src":"10612:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"10506:127:103"},{"body":{"nodeType":"YulBlock","src":"10683:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"10747:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10756:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10759:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10749:6:103"},"nodeType":"YulFunctionCall","src":"10749:12:103"},"nodeType":"YulExpressionStatement","src":"10749:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10706:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10717:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10732:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10737:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10728:3:103"},"nodeType":"YulFunctionCall","src":"10728:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10741:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10724:3:103"},"nodeType":"YulFunctionCall","src":"10724:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10713:3:103"},"nodeType":"YulFunctionCall","src":"10713:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10703:2:103"},"nodeType":"YulFunctionCall","src":"10703:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10696:6:103"},"nodeType":"YulFunctionCall","src":"10696:50:103"},"nodeType":"YulIf","src":"10693:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10672:5:103","type":""}],"src":"10638:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), \"InstanceOperatorService\")\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_address_t_bool__to_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:REC-021:CONTRACT_NUMBER_MI\")\n mstore(add(headStart, 96), \"SMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:REC-012:CONTRACT_NAME_EMPT\")\n mstore(add(headStart, 96), \"Y\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:REC-001:EMPTY_RELEASE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:REC-015:CONTRACT_NUMBER_MI\")\n mstore(add(headStart, 96), \"SMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:REC-002:NEW_RELEASE_NOT_EM\")\n mstore(add(headStart, 96), \"PTY\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:REC-013:CONTRACT_NAME_EXIS\")\n mstore(add(headStart, 96), \"TS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:REC-014:CONTRACT_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:REC-020:CONTRACT_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CRC-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:REC-010:MAX_CONTRACTS_LIMI\")\n mstore(add(headStart, 96), \"T\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:REC-011:RELEASE_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101165760003560e01c806376b707b7116100a2578063c4d66de811610071578063c4d66de814610248578063d22057a91461025b578063dc527b081461026e578063e16c7d9814610281578063f6b3e7d01461029457610116565b806376b707b71461021157806386d1a69f14610219578063893917ea14610222578063b0ef18a01461023557610116565b806348cd4cb1116100e957806348cd4cb1146101815780634a941e5e1461018a57806356bbc19d146101d657806369923515146101e95780636c0f79b61461020957610116565b80631d5e73141461011b578063208131541461013057806324042a0a146101435780632ca65a791461015e575b600080fd5b61012e61012936600461150b565b6102a7565b005b61012e61013e3660046114a3565b610368565b61014b606481565b6040519081526020015b60405180910390f35b61017161016c366004611458565b61041d565b6040519015158152602001610155565b61014b60035481565b6101be6101983660046114ea565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610155565b61012e6101e43660046114a3565b610447565b61014b6101f73660046114a3565b60056020526000908152604090205481565b61014b6105bb565b60025461014b565b61014b60025481565b61012e6102303660046114a3565b6105da565b6101be6102433660046114ea565b6107ef565b61012e610256366004611420565b610802565b61012e6102693660046114bb565b610938565b61012e61027c3660046114ea565b6109ed565b6101be61028f3660046114a3565b610a9d565b61014b6102a23660046114a3565b610ab1565b6000546201000090046001600160a01b0316632ca65a796102c53390565b6040518263ffffffff1660e01b81526004016102e19190611543565b60206040518083038186803b1580156102f957600080fd5b505afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103319190611483565b6103565760405162461bcd60e51b815260040161034d906115c5565b60405180910390fd5b6103638360008484610acc565b505050565b6000546201000090046001600160a01b0316632ca65a796103863390565b6040518263ffffffff1660e01b81526004016103a29190611543565b60206040518083038186803b1580156103ba57600080fd5b505afa1580156103ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f29190611483565b61040e5760405162461bcd60e51b815260040161034d906115c5565b61041a60025482610e86565b50565b600061042b600254836110a8565b6001600160a01b0316836001600160a01b031614905092915050565b600054610100900460ff16158080156104675750600054600160ff909116105b806104885750610476306110ce565b158015610488575060005460ff166001145b6104a45760405162461bcd60e51b815260040161034d90611577565b6000805460ff1916600117905580156104c7576000805461ff0019166101001790555b6000805462010000600160b01b03191630620100000217905560028290556104ec3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b039790971696909617909555925482526006905220610556916110e1565b506002546000908152600560205260409020600190554360035580156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b60025460009081526006602052604081206105d5906110ed565b905090565b6000546201000090046001600160a01b0316632ca65a796105f83390565b6040518263ffffffff1660e01b81526004016106149190611543565b60206040518083038186803b15801561062c57600080fd5b505afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611483565b6106805760405162461bcd60e51b815260040161034d906115c5565b600254600090815260056020526040902054806106df5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c454153450000000000604482015260640161034d565b600082815260056020526040902054156107475760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b606482015260840161034d565b60005b818110156107b957600254600090815260066020526040812061076d90836110f7565b60025460009081526004602090815260408083208484529091529020549091506107a690859060019084906001600160a01b0316610acc565b506107b2600182611608565b905061074a565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b4906020016105ae565b60006107fb83836110a8565b9392505050565b600054610100900460ff16158080156108225750600054600160ff909116105b806108435750610831306110ce565b158015610843575060005460ff166001145b61085f5760405162461bcd60e51b815260040161034d90611577565b6000805460ff191660011790558015610882576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556108ac600090565b6541636365737360d01b146108ee576108cd6541636365737360d01b611103565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108f66111eb565b80156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016105ae565b6000546201000090046001600160a01b0316632ca65a796109563390565b6040518263ffffffff1660e01b81526004016109729190611543565b60206040518083038186803b15801561098a57600080fd5b505afa15801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c29190611483565b6109de5760405162461bcd60e51b815260040161034d906115c5565b6105b760025460008484610acc565b6000546201000090046001600160a01b0316632ca65a79610a0b3390565b6040518263ffffffff1660e01b8152600401610a279190611543565b60206040518083038186803b158015610a3f57600080fd5b505afa158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a779190611483565b610a935760405162461bcd60e51b815260040161034d906115c5565b6105b78282610e86565b6000610aab600254836110a8565b92915050565b6002546000908152600660205260408120610aab90836110f7565b6000848152600660205260408120606490610ae6906110ed565b10610b3d5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b606482015260840161034d565b600085815260056020526040902054151580610b565750835b610ba25760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e000000604482015260640161034d565b82610bf95760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b606482015260840161034d565b6000858152600660205260409020610c119084611258565b1580610c6257508276496e7374616e63654f70657261746f725365727669636560481b148015610c62575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610cb95760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b606482015260840161034d565b6001600160a01b038216610d1b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b606482015260840161034d565b60008581526004602090815260408083208684529091529020546001600160a01b0316610d7f576000858152600660205260409020610d5a90846110e1565b506000858152600560205260408120805491610d7583611637565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610dc4906110ed565b60008681526005602052604090205414610e2f5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a79610ea43390565b6040518263ffffffff1660e01b8152600401610ec09190611543565b60206040518083038186803b158015610ed857600080fd5b505afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f109190611483565b610f2c5760405162461bcd60e51b815260040161034d906115c5565b6000828152600660205260409020610f449082611258565b610f905760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e0000604482015260640161034d565b6000828152600660205260409020610fa89082611270565b506000828152600560205260408120805460019290610fc8908490611620565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b031916905584835260069091529020611007906110ed565b600083815260056020526040902054146110725760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a13191016105ae565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b60006107fb838361127c565b6000610aab825490565b60006107fb83836112cb565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611185919061143c565b90506001600160a01b0381166110dc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161034d565b600054610100900460ff166112565760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161034d565b565b600081815260018301602052604081205415156107fb565b60006107fb8383611303565b60008181526001830160205260408120546112c357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610aab565b506000610aab565b60008260000182815481106112f057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120548015611416576000611327600183611620565b855490915060009061133b90600190611620565b90508181146113bc57600086600001828154811061136957634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061139a57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806113db57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610aab565b6000915050610aab565b600060208284031215611431578081fd5b81356107fb81611668565b60006020828403121561144d578081fd5b81516107fb81611668565b6000806040838503121561146a578081fd5b823561147581611668565b946020939093013593505050565b600060208284031215611494578081fd5b815180151581146107fb578182fd5b6000602082840312156114b4578081fd5b5035919050565b600080604083850312156114cd578182fd5b8235915060208301356114df81611668565b809150509250929050565b600080604083850312156114fc578182fd5b50508035926020909101359150565b60008060006060848603121561151f578081fd5b8335925060208401359150604084013561153881611668565b809150509250925092565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000821982111561161b5761161b611652565b500190565b60008282101561163257611632611652565b500390565b600060001982141561164b5761164b611652565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461041a57600080fdfea264697066735822122010fc0f128c1a977b4951f6dee77033c18bcc4363fb956c3ba337add63496ccbf64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B707B7 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x294 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x76B707B7 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x86D1A69F EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0xB0EF18A0 EQ PUSH2 0x235 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x48CD4CB1 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x48CD4CB1 EQ PUSH2 0x181 JUMPI DUP1 PUSH4 0x4A941E5E EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x56BBC19D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x69923515 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x209 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x24042A0A EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x2CA65A79 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x150B JUMP JUMPDEST PUSH2 0x2A7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12E PUSH2 0x13E CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST PUSH2 0x14B PUSH1 0x64 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x171 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1458 JUMP JUMPDEST PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x155 JUMP JUMPDEST PUSH2 0x14B PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x155 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x447 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x14B JUMP JUMPDEST PUSH2 0x14B PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH2 0x7EF JUMP JUMPDEST PUSH2 0x12E PUSH2 0x256 CALLDATASIZE PUSH1 0x4 PUSH2 0x1420 JUMP JUMPDEST PUSH2 0x802 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x269 CALLDATASIZE PUSH1 0x4 PUSH2 0x14BB JUMP JUMPDEST PUSH2 0x938 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH2 0x9ED JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0xA9D JUMP JUMPDEST PUSH2 0x14B PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x2C5 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x331 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x356 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x363 DUP4 PUSH1 0x0 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x386 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A2 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x40E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x41A PUSH1 0x2 SLOAD DUP3 PUSH2 0xE86 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42B PUSH1 0x2 SLOAD DUP4 PUSH2 0x10A8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x467 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x488 JUMPI POP PUSH2 0x476 ADDRESS PUSH2 0x10CE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x488 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x4A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND ADDRESS PUSH3 0x10000 MUL OR SWAP1 SSTORE PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH2 0x4EC CALLER SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 SWAP1 SWAP8 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE SWAP3 SLOAD DUP3 MSTORE PUSH1 0x6 SWAP1 MSTORE KECCAK256 PUSH2 0x556 SWAP2 PUSH2 0x10E1 JUMP JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE NUMBER PUSH1 0x3 SSTORE DUP1 ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x5D5 SWAP1 PUSH2 0x10ED JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x5F8 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x614 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x62C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x640 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x664 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x680 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030313A454D5054595F52454C454153450000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030323A4E45575F52454C454153455F4E4F545F454D PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x505459 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B9 JUMPI PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x76D SWAP1 DUP4 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x7A6 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xACC JUMP JUMPDEST POP PUSH2 0x7B2 PUSH1 0x1 DUP3 PUSH2 0x1608 JUMP JUMPDEST SWAP1 POP PUSH2 0x74A JUMP JUMPDEST POP PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD50692EB75750D216C747528A2DFCED5915EAB7B4EE40BCF8120D0D035297B4 SWAP1 PUSH1 0x20 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x10A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x822 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x843 JUMPI POP PUSH2 0x831 ADDRESS PUSH2 0x10CE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x843 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x882 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x8AC PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x8EE JUMPI PUSH2 0x8CD PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1103 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x8F6 PUSH2 0x11EB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x956 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x972 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x98A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x99E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9C2 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x9DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x5B7 PUSH1 0x2 SLOAD PUSH1 0x0 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xA0B CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA77 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0xA93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x5B7 DUP3 DUP3 PUSH2 0xE86 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAB PUSH1 0x2 SLOAD DUP4 PUSH2 0x10A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xAAB SWAP1 DUP4 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x64 SWAP1 PUSH2 0xAE6 SWAP1 PUSH2 0x10ED JUMP JUMPDEST LT PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031303A4D41585F434F4E5452414354535F4C494D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO DUP1 PUSH2 0xB56 JUMPI POP DUP4 JUMPDEST PUSH2 0xBA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031313A52454C454153455F554E4B4E4F574E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST DUP3 PUSH2 0xBF9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031323A434F4E54524143545F4E414D455F454D5054 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x59 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC11 SWAP1 DUP5 PUSH2 0x1258 JUMP JUMPDEST ISZERO DUP1 PUSH2 0xC62 JUMPI POP DUP3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL EQ DUP1 ISZERO PUSH2 0xC62 JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0xCB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031333A434F4E54524143545F4E414D455F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xD1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031343A434F4E54524143545F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD7F JUMPI PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xD5A SWAP1 DUP5 PUSH2 0x10E1 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xD75 DUP4 PUSH2 0x1637 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE DUP8 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0xDC4 SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0xE2F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031353A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x7C5C4E97E59CBD96C53653DFD3F538E50D7BAB44BAA352481FDC3FA7F18E3008 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xEA4 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC0 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xED8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF10 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0xF2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xF44 SWAP1 DUP3 PUSH2 0x1258 JUMP JUMPDEST PUSH2 0xF90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032303A434F4E54524143545F554E4B4E4F574E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xFA8 SWAP1 DUP3 PUSH2 0x1270 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xFC8 SWAP1 DUP5 SWAP1 PUSH2 0x1620 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0x1007 SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1072 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032313A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x95BD8DB0F80EC14D4D7E375FB7FB3603144BA5B594106E0410243553F97A131 SWAP2 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP3 DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x127C JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAB DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x12CB JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x143C JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x10DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1256 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x7FB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x1303 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x12C3 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xAAB JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x12F0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1416 JUMPI PUSH1 0x0 PUSH2 0x1327 PUSH1 0x1 DUP4 PUSH2 0x1620 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x133B SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1620 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x13BC JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1369 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x139A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x13DB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1431 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7FB DUP2 PUSH2 0x1668 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x144D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7FB DUP2 PUSH2 0x1668 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x146A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1475 DUP2 PUSH2 0x1668 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1494 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x7FB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14B4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14CD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x14DF DUP2 PUSH2 0x1668 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14FC JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x151F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x1538 DUP2 PUSH2 0x1668 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x161B JUMPI PUSH2 0x161B PUSH2 0x1652 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1632 JUMPI PUSH2 0x1632 PUSH2 0x1652 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x164B JUMPI PUSH2 0x164B PUSH2 0x1652 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT 0xFC 0xF SLT DUP13 BYTE SWAP8 PUSH28 0x4951F6DEE77033C18BCC4363FB956C3BA337ADD63496CCBF64736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"2981:7567:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5996:241;;;;;;:::i;:::-;;:::i;:::-;;5474:166;;;;;;:::i;:::-;;:::i;3217:43::-;;3257:3;3217:43;;;;;3462:25:103;;;3450:2;3435:18;3217:43:80;;;;;;;;4442:227;;;;;;:::i;:::-;;:::i;:::-;;;3289:14:103;;3282:22;3264:41;;3252:2;3237:18;4442:227:80;3219:92:103;3379:25:80;;;;;;3411:122;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3411:122:80;;;;;;-1:-1:-1;;;;;2719:32:103;;;2701:51;;2689:2;2674:18;3411:122:80;2656:102:103;3759:677:80;;;;;;:::i;:::-;;:::i;3539:105::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7336:164;;;:::i;4723:130::-;4839:7;;4723:130;;3346:22;;;;;;6525:805;;;;;;:::i;:::-;;:::i;5716:209::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;5187:210:80:-;;;;;;:::i;:::-;;:::i;6243:191::-;;;;;;:::i;:::-;;:::i;4933:179::-;;;;;;:::i;:::-;;:::i;7506:169::-;;;;;;:::i;:::-;;:::i;5996:241::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;;;;;;;;;6162:68:80::1;6181:8;6191:5;6198:13;6213:16;6162:18;:68::i;:::-;5996:241:::0;;;:::o;5474:166::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5589:44:80::1;5610:7;;5619:13;5589:20;:44::i;:::-;5474:166:::0;:::o;4442:227::-;4552:19;4616:45;4638:7;;4647:13;4616:21;:45::i;:::-;-1:-1:-1;;;;;4606:55:80;:6;-1:-1:-1;;;;;4606:55:80;;4588:74;;4442:227;;;;:::o;3759:677::-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;;;;;;:::i;:::-;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;3883:9:80::1;:16:::0;;-1:-1:-1;;;;;;3883:16:80::1;3895:4;3883:16:::0;::::1;;::::0;;:9:::1;4117:25:::0;;;4201:12:::1;719:10:59::0;640:96;;4201:12:80::1;4163:7;::::0;;4152:19:::1;::::0;;;:10:::1;:19;::::0;;;;;;;-1:-1:-1;;;4152:46:80;;;;;;;;;:61;;-1:-1:-1;;;;;;4152:61:80::1;-1:-1:-1::0;;;;;4152:61:80;;;::::1;::::0;;;::::1;::::0;;;4256:7;;4241:23;;:14:::1;:23:::0;;;4223:69:::1;::::0;:17:::1;:69::i;:::-;-1:-1:-1::0;4322:7:80::1;::::0;4302:28:::1;::::0;;;:19:::1;:28;::::0;;;;4333:1:::1;4302:32:::0;;4417:12:::1;4404:10;:25:::0;3457:99:47;;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;4335:36:103;;3531:14:47;;4323:2:103;4308:18;3531:14:47;;;;;;;;3457:99;3759:677:80;;:::o;7336:164::-;7484:7;;7389:26;7469:23;;;:14;:23;;;;;7448:45;;:20;:45::i;:::-;7427:66;;7336:164;:::o;6525:805::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6687:7:80::1;::::0;6642:22:::1;6667:28:::0;;;:19:::1;:28;::::0;;;;;6714:18;6706:58:::1;;;::::0;-1:-1:-1;;;6706:58:80;;5799:2:103;6706:58:80::1;::::0;::::1;5781:21:103::0;5838:2;5818:18;;;5811:30;5877:29;5857:18;;;5850:57;5924:18;;6706:58:80::1;5771:177:103::0;6706:58:80::1;6795:32;::::0;;;:19:::1;:32;::::0;;;;;:37;6774:119:::1;;;::::0;-1:-1:-1;;;6774:119:80;;6977:2:103;6774:119:80::1;::::0;::::1;6959:21:103::0;7016:2;6996:18;;;6989:30;7055:34;7035:18;;;7028:62;-1:-1:-1;;;7106:18:103;;;7099:33;7149:19;;6774:119:80::1;6949:225:103::0;6774:119:80::1;6960:9;6955:294;6979:14;6975:1;:18;6955:294;;;7064:7;::::0;7017:12:::1;7049:23:::0;;;:14:::1;:23;::::0;;;;7032:44:::1;::::0;7074:1;7032:16:::1;:44::i;:::-;7210:7;::::0;7199:19:::1;::::0;;;:10:::1;:19;::::0;;;;;;;:25;;;;;;;;;7017:59;;-1:-1:-1;7090:148:80::1;::::0;7126:11;;7155:4:::1;::::0;7017:59;;-1:-1:-1;;;;;7199:25:80::1;7090:18;:148::i;:::-;-1:-1:-1::0;6995:6:80::1;7000:1;6995:6:::0;::::1;:::i;:::-;;;6955:294;;;-1:-1:-1::0;7259:7:80::1;:21:::0;;;7296:27:::1;::::0;3462:25:103;;;7296:27:80::1;::::0;3450:2:103;3435:18;7296:27:80::1;3417:76:103::0;5716:209:80;5835:13;5872:46;5894:8;5904:13;5872:21;:46::i;:::-;5864:54;5716:209;-1:-1:-1;;;5716:209:80:o;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;;;;;;:::i;:::-;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;4335:36:103;;3531:14:47;;4323:2:103;4308:18;3531:14:47;4290:87:103;5187:210:80;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5323:67:80::1;5342:7;;5351:5;5358:13;5373:16;5323:18;:67::i;6243:191::-:0;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6382:45:80::1;6403:8;6413:13;6382:20;:45::i;4933:179::-:0;5023:13;5060:45;5082:7;;5091:13;5060:21;:45::i;:::-;5052:53;4933:179;-1:-1:-1;;4933:179:80:o;7506:169::-;7654:7;;7573:21;7639:23;;;:14;:23;;;;;7622:46;;7664:3;7622:16;:46::i;8012:1798::-;8196:10;8267:24;;;:14;:24;;;;;3257:3;;8246:46;;:20;:46::i;:::-;:62;8225:142;;;;-1:-1:-1;;;8225:142:80;;9363:2:103;8225:142:80;;;9345:21:103;9402:2;9382:18;;;9375:30;9441:34;9421:18;;;9414:62;-1:-1:-1;;;9492:18:103;;;9485:31;9533:19;;8225:142:80;9335:223:103;8225:142:80;8523:1;8491:29;;;:19;:29;;;;;;:33;;;:49;;;8528:12;8491:49;8483:91;;;;-1:-1:-1;;;8483:91:80;;9765:2:103;8483:91:80;;;9747:21:103;9804:2;9784:18;;;9777:30;9843:31;9823:18;;;9816:59;9892:18;;8483:91:80;9737:179:103;8483:91:80;8592:21;8584:67;;;;-1:-1:-1;;;8584:67:80;;5397:2:103;8584:67:80;;;5379:21:103;5436:2;5416:18;;;5409:30;5475:34;5455:18;;;5448:62;-1:-1:-1;;;5526:18:103;;;5519:31;5567:19;;8584:67:80;5369:223:103;8584:67:80;8708:24;;;;:14;:24;;;;;8685:63;;8734:13;8685:22;:63::i;:::-;8683:65;8682:378;;;;8962:13;-1:-1:-1;;;8962:42:80;:97;;;;-1:-1:-1;9008:20:80;;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;9008:35:80;719:10:59;9008:51:80;8962:97;8661:451;;;;-1:-1:-1;;;8661:451:80;;7381:2:103;8661:451:80;;;7363:21:103;7420:2;7400:18;;;7393:30;7459:34;7439:18;;;7432:62;-1:-1:-1;;;7510:18:103;;;7503:32;7552:19;;8661:451:80;7353:224:103;8661:451:80;-1:-1:-1;;;;;9130:30:80;;9122:78;;;;-1:-1:-1;;;9122:78:80;;7784:2:103;9122:78:80;;;7766:21:103;7823:2;7803:18;;;7796:30;7862:34;7842:18;;;7835:62;-1:-1:-1;;;7913:18:103;;;7906:33;7956:19;;9122:78:80;7756:225:103;9122:78:80;9262:1;9215:20;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;9215:35:80;9211:209;;9298:24;;;;:14;:24;;;;;9280:58;;9324:13;9280:17;:58::i;:::-;-1:-1:-1;9352:29:80;;;;:19;:29;;;;;:31;;;;;;:::i;:::-;;;;;;9405:4;9397:12;;9211:209;9430:20;;;;:10;:20;;;;;;;;:35;;;;;;;;:54;;-1:-1:-1;;;;;;9430:54:80;-1:-1:-1;;;;;9430:54:80;;;;;9569:24;;;:14;:24;;;;;9548:46;;:20;:46::i;:::-;9515:29;;;;:19;:29;;;;;;:79;9494:164;;;;-1:-1:-1;;;9494:164:80;;6155:2:103;9494:164:80;;;6137:21:103;6194:2;6174:18;;;6167:30;6233:34;6213:18;;;6206:62;-1:-1:-1;;;6284:18:103;;;6277:36;6330:19;;9494:164:80;6127:228:103;9494:164:80;9674:129;;;3976:25:103;;;4032:2;4017:18;;4010:34;;;-1:-1:-1;;;;;4080:32:103;;4060:18;;;4053:60;4156:14;;4149:22;4144:2;4129:18;;4122:50;9674:129:80;;;;;;;3963:3:103;9674:129:80;;;8012:1798;;;;;:::o;9884:662::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;10046:24:80::1;::::0;;;:14:::1;:24;::::0;;;;10023:63:::1;::::0;10072:13;10023:22:::1;:63::i;:::-;10015:106;;;::::0;-1:-1:-1;;;10015:106:80;;8188:2:103;10015:106:80::1;::::0;::::1;8170:21:103::0;8227:2;8207:18;;;8200:30;8266:32;8246:18;;;8239:60;8316:18;;10015:106:80::1;8160:180:103::0;10015:106:80::1;10153:24;::::0;;;:14:::1;:24;::::0;;;;10132:61:::1;::::0;10179:13;10132:20:::1;:61::i;:::-;-1:-1:-1::0;10204:29:80::1;::::0;;;:19:::1;:29;::::0;;;;:34;;10237:1:::1;::::0;10204:29;:34:::1;::::0;10237:1;;10204:34:::1;:::i;:::-;::::0;;;-1:-1:-1;;10255:20:80::1;::::0;;;:10:::1;:20;::::0;;;;;;;:35;;;;;;;;10248:42;;-1:-1:-1;;;;;;10248:42:80::1;::::0;;10384:24;;;:14:::1;:24:::0;;;;;10363:46:::1;::::0;:20:::1;:46::i;:::-;10330:29;::::0;;;:19:::1;:29;::::0;;;;;:79:::1;10309:155;;;::::0;-1:-1:-1;;;10309:155:80;;4990:2:103;10309:155:80::1;::::0;::::1;4972:21:103::0;5029:2;5009:18;;;5002:30;5068:34;5048:18;;;5041:62;-1:-1:-1;;;5119:18:103;;;5112:36;5165:19;;10309:155:80::1;4962:228:103::0;10309:155:80::1;10479:48;::::0;;3672:25:103;;;3728:2;3713:18;;3706:34;;;10479:48:80::1;::::0;3645:18:103;10479:48:80::1;3627:119:103::0;7751:190:80;7862:13;7899:20;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;7899:35:80;;7751:190::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;5818:123:64:-;5888:4;5911:23;5916:3;5928:5;5911:4;:23::i;6538:115::-;6601:7;6627:19;6635:3;4444:18;;4362:107;6995:129;7069:7;7095:22;7099:3;7111:5;7095:3;:22::i;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;3462:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;3435:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;4584:2:103;1703:113:88;;;4566:21:103;4623:2;4603:18;;;4596:30;4662:34;4642:18;;;4635:62;-1:-1:-1;;;4713:18:103;;;4706:35;4758:19;;1703:113:88;4556:227:103;1460:64:88;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;8951:2:103;4880:69:47;;;8933:21:103;8990:2;8970:18;;;8963:30;9029:34;9009:18;;;9002:62;-1:-1:-1;;;9080:18:103;;;9073:41;9131:19;;4880:69:47;8923:233:103;4880:69:47;1460:64:88:o;6319:138:64:-;6399:4;4250:19;;;:12;;;:19;;;;;;:24;;6422:28;4154:127;6109:129;6182:4;6205:26;6213:3;6225:5;6205:7;:26::i;2113:404::-;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;4811:118;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;2685:1388::-;2751:4;2888:19;;;:12;;;:19;;;;;;2922:15;;2918:1149;;3291:21;3315:14;3328:1;3315:10;:14;:::i;:::-;3363:18;;3291:38;;-1:-1:-1;3343:17:64;;3363:22;;3384:1;;3363:22;:::i;:::-;3343:42;;3417:13;3404:9;:26;3400:398;;3450:17;3470:3;:11;;3482:9;3470:22;;;;;;-1:-1:-1;;;3470:22:64;;;;;;;;;;;;;;;;;3450:42;;3621:9;3592:3;:11;;3604:13;3592:26;;;;;;-1:-1:-1;;;3592:26:64;;;;;;;;;;;;;;;;;;;;:38;;;;3704:23;;;:12;;;:23;;;;;:36;;;3400:398;3876:17;;:3;;:17;;;-1:-1:-1;;;3876:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;3968:3;:12;;:19;3981:5;3968:19;;;;;;;;;;;3961:26;;;4009:4;4002:11;;;;;;;2918:1149;4051:5;4044:12;;;;;14:257:103;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:325::-;;;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;857:2;842:18;;;;829:32;;-1:-1:-1;;;629:238:103:o;872:297::-;;992:2;980:9;971:7;967:23;963:32;960:2;;;1013:6;1005;998:22;960:2;1050:9;1044:16;1103:5;1096:13;1089:21;1082:5;1079:32;1069:2;;1130:6;1122;1115:22;1174:190;;1286:2;1274:9;1265:7;1261:23;1257:32;1254:2;;;1307:6;1299;1292:22;1254:2;-1:-1:-1;1335:23:103;;1244:120;-1:-1:-1;1244:120:103:o;1369:325::-;;;1498:2;1486:9;1477:7;1473:23;1469:32;1466:2;;;1519:6;1511;1504:22;1466:2;1560:9;1547:23;1537:33;;1620:2;1609:9;1605:18;1592:32;1633:31;1658:5;1633:31;:::i;:::-;1683:5;1673:15;;;1456:238;;;;;:::o;1699:258::-;;;1828:2;1816:9;1807:7;1803:23;1799:32;1796:2;;;1849:6;1841;1834:22;1796:2;-1:-1:-1;;1877:23:103;;;1947:2;1932:18;;;1919:32;;-1:-1:-1;1786:171:103:o;1962:393::-;;;;2108:2;2096:9;2087:7;2083:23;2079:32;2076:2;;;2129:6;2121;2114:22;2076:2;2170:9;2157:23;2147:33;;2227:2;2216:9;2212:18;2199:32;2189:42;;2281:2;2270:9;2266:18;2253:32;2294:31;2319:5;2294:31;:::i;:::-;2344:5;2334:15;;;2066:289;;;;;:::o;2763:356::-;-1:-1:-1;;;;;3018:32:103;;;;3000:51;;-1:-1:-1;;;3082:2:103;3067:18;;3060:53;2988:2;2973:18;;2955:164::o;6360:410::-;6562:2;6544:21;;;6601:2;6581:18;;;6574:30;6640:34;6635:2;6620:18;;6613:62;-1:-1:-1;;;6706:2:103;6691:18;;6684:44;6760:3;6745:19;;6534:236::o;8345:399::-;8547:2;8529:21;;;8586:2;8566:18;;;8559:30;8625:34;8620:2;8605:18;;8598:62;-1:-1:-1;;;8691:2:103;8676:18;;8669:33;8734:3;8719:19;;8519:225::o;10103:128::-;;10174:1;10170:6;10167:1;10164:13;10161:2;;;10180:18;;:::i;:::-;-1:-1:-1;10216:9:103;;10151:80::o;10236:125::-;;10304:1;10301;10298:8;10295:2;;;10309:18;;:::i;:::-;-1:-1:-1;10346:9:103;;10285:76::o;10366:135::-;;-1:-1:-1;;10426:17:103;;10423:2;;;10446:18;;:::i;:::-;-1:-1:-1;10493:1:103;10482:13;;10413:88::o;10506:127::-;10567:10;10562:3;10558:20;10555:1;10548:31;10598:4;10595:1;10588:15;10622:4;10619:1;10612:15;10638:131;-1:-1:-1;;;;;10713:31:103;;10703:42;;10693:2;;10759:1;10756;10749:12"},"methodIdentifiers":{"MAX_CONTRACTS()":"24042a0a","_contracts(bytes32,bytes32)":"4a941e5e","_contractsInRelease(bytes32)":"69923515","contractName(uint256)":"f6b3e7d0","contracts()":"6c0f79b6","deregister(bytes32)":"20813154","deregisterInRelease(bytes32,bytes32)":"dc527b08","ensureSender(address,bytes32)":"2ca65a79","getContract(bytes32)":"e16c7d98","getContractInRelease(bytes32,bytes32)":"b0ef18a0","getRelease()":"76b707b7","initialize(address)":"c4d66de8","initializeRegistry(bytes32)":"56bbc19d","prepareRelease(bytes32)":"893917ea","register(bytes32,address)":"d22057a9","registerInRelease(bytes32,bytes32,address)":"1d5e7314","release()":"86d1a69f","startBlock()":"48cd4cb1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"LogContractDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isNew\",\"type\":\"bool\"}],\"name\":\"LogContractRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"}],\"name\":\"LogReleasePrepared\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_CONTRACTS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"_contracts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"_contractsInRelease\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"contractName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_numberOfContracts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregisterInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"ensureSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_senderMatches\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractInRelease\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRelease\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_initialRelease\",\"type\":\"bytes32\"}],\"name\":\"initializeRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newRelease\",\"type\":\"bytes32\"}],\"name\":\"prepareRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"registerInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"release\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deregister(bytes32)\":{\"details\":\"Deregister contract in the current release\"},\"getContract(bytes32)\":{\"details\":\"Get contract's address in the current release\"},\"getContractInRelease(bytes32,bytes32)\":{\"details\":\"Get contract's address in certain release\"},\"getRelease()\":{\"details\":\"get current release\"},\"prepareRelease(bytes32)\":{\"details\":\"Create new release, copy contracts from previous release\"},\"register(bytes32,address)\":{\"details\":\"Register contract in the current release\"},\"registerInRelease(bytes32,bytes32,address)\":{\"details\":\"Register contract in certain release\"}},\"stateVariables\":{\"MAX_CONTRACTS\":{\"details\":\"Save number of items to iterate through Currently we have < 20 contracts.\"},\"release\":{\"details\":\"Current release We use semantic versioning.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract implements the `IRegistry` interface and inherits from the `CoreController` contract. The contract provides functionality for registering, deregistering, and accessing contracts within different releases. It maintains mappings and sets to store contract names and addresses in different releases. - `MAX_CONTRACTS`: A constant variable set to 100, representing the maximum number of contracts allowed in a release. - `release`: A bytes32 variable representing the current release identifier. - `startBlock`: An unsigned integer storing the block number at which the contract was deployed. - `_contracts`: A nested mapping that stores contract addresses based on the release and contract name. - `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release. - `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release. Functions: - `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs. - `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release. - `getRelease()`: Returns the current release identifier. - `getContract()`: Returns the address of a contract by its name in the current release. - `register()`: Registers a contract with a given name and address in the current release. - `deregister()`: Deregisters a contract from the current release. - `getContractInRelease()`: Returns the address of a specific contract within a given release. - `registerInRelease()`: Registers a contract in a specific release. - `deregisterInRelease()`: Deregisters a contract name from a specific release. - `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one. - `contracts()`: Returns the number of contracts in the current release. - `contractName()`: Returns the name of the contract at the specified index in the contractNames set. Internal functions: - `_getContractInRelease()`: Returns the address of a contract in a specific release. - `_registerInRelease()`: Registers a contract in a release. - `_deregisterInRelease()`: Deregisters a contract in a specific release. The contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered. Overall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/RegistryController.sol\":\"RegistryController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/RegistryController.sol\":{\"keccak256\":\"0x509cc6e92d7d46a87f3c7bb05b23570f45d1a5a96a30af82bfff77f0237a0d44\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://66d5cca04102b54cb7bdb1d3e08f7864c2bdefd1c4246741b36882f3c4ea459d\",\"dweb:/ipfs/QmYBhsMAj1pvMNNDkB8ccW1yoJJraJobsvdQX7rRUrfx5y\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/TreasuryModule.sol":{"TreasuryModule":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"callSuccess","type":"bool"},{"indexed":false,"internalType":"uint256","name":"returnDataLength","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"LogTransferHelperCallFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tokenIsContract","type":"bool"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"LogTransferHelperInputValidation1Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allowance","type":"uint256"}],"name":"LogTransferHelperInputValidation2Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fixedFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fractionalFee","type":"uint256"}],"name":"LogTreasuryCapitalFeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryCapitalProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryCapitalTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"instanceWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryFeesTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"walletAddress","type":"address"}],"name":"LogTreasuryInstanceWalletSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPayoutTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fixedFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fractionalFee","type":"uint256"}],"name":"LogTreasuryPremiumFeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPremiumTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"erc20Address","type":"address"}],"name":"LogTreasuryProductTokenSet","type":"event"},{"anonymous":false,"inputs":[],"name":"LogTreasuryResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"walletAddress","type":"address"}],"name":"LogTreasuryRiskpoolWalletSet","type":"event"},{"anonymous":false,"inputs":[],"name":"LogTreasurySuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryWithdrawalProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryWithdrawalTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"FRACTIONAL_FEE_MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FRACTION_FULL_UNIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateFee","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"}],"name":"createFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentToken","outputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFractionFullUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getInstanceWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpoolWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"capitalAmount","type":"uint256"}],"name":"processCapital","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netCapitalAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPayoutAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"processPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPremiumAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processWithdrawal","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setCapitalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"instanceWalletAddress","type":"address"}],"name":"setInstanceWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setPremiumFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"}],"name":"setProductToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"riskpoolWalletAddress","type":"address"}],"name":"setRiskpoolWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspend","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c6200002f565b6001805460ff60a01b19169055620000f1565b600054610100900460ff16156200009c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000ef576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61474180620001016000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638ca946aa116100c3578063cab2504d1161007c578063cab2504d1461030d578063cc9cf8cd14610320578063d935807514610333578063e6400bbe14610346578063f964690d1461034e578063fe64372b146103565761014d565b80638ca946aa1461029c5780638ccf5ca2146102af578063a434f0ad146102c7578063a44330c4146102da578063b79f5eab146102eb578063c4d66de8146102fa5761014d565b806334e731221161011557806334e73122146101f7578063490816371461020a5780635c975abb146102335780635ecc078e1461025657806362f0ab551461026957806386039aed146102895761014d565b806301132a7f146101525780630210826814610167578063038696bb1461019c578063046f7da2146101c757806326debdaa146101cf575b600080fd5b610165610160366004613e2c565b610369565b005b61017a610175366004613d37565b6105a3565b6040805193151584526020840192909252908201526060015b60405180910390f35b6101af6101aa366004613d1f565b610aac565b6040516001600160a01b039091168152602001610193565b610165610c24565b6101e26101dd36600461405a565b610cfd565b60408051928352602083019190915201610193565b6101e261020536600461405a565b6113b4565b6101af610218366004613d1f565b6000908152600360205260409020546001600160a01b031690565b610246600154600160a01b900460ff1690565b6040519015158152602001610193565b61017a610264366004613d1f565b611438565b61027c61027736600461406c565b6115b5565b60405161019391906143cb565b61016561029736600461402b565b611825565b6101656102aa366004613e2c565b611b08565b670de0b6b3a76400005b604051908152602001610193565b61027c6102d5366004613d1f565b611d31565b6002546001600160a01b03166101af565b6102b9670de0b6b3a764000081565b610165610308366004613cc0565b611e53565b61016561031b366004613cc0565b611fcd565b61016561032e36600461402b565b612157565b6101e261034136600461405a565b6126ce565b610165612d04565b6102b9612ddd565b6101e2610364366004613d37565b612df3565b61037c600154600160a01b900460ff1690565b156103a25760405162461bcd60e51b815260040161039990614294565b60405180910390fd5b6000546201000090046001600160a01b0316632ca65a796103c03390565b6040518263ffffffff1660e01b81526004016103dc9190614160565b60206040518083038186803b1580156103f457600080fd5b505afa158015610408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042c9190613cff565b6104485760405162461bcd60e51b815260040161039990614347565b600754604051630e48080360e21b8152823560048201526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561048c57600080fd5b505afa1580156104a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c49190613cff565b6105105760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3032323a4e4f545f50524f44554354000000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290610534828261466e565b505080156105545781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527f389ab9b2665a8ef1adf5a151c45e2546c4b1ffe8cfa537dd96a5eb8046b06efe906060015b60405180910390a15050565b60008060006105bb600154600160a01b900460ff1690565b156105d85760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166106005760405162461bcd60e51b81526004016103999061424d565b8460008061060d8361333e565b90925090506001600160a01b0381166106385760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b61064d816134c9565b6001600160a01b0316306001600160a01b03161461067d5760405162461bcd60e51b8152600401610399906142c9565b6106976d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146106c75760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018b90526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561070d57600080fd5b505afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190613f8e565b9050806020015189826040015161075c9190614456565b11156107aa5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5452532d3033303a414d4f554e545f544f4f5f424947000000006044820152606401610399565b60085460405163296586d360e21b8152600481018c90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156107ef57600080fd5b505afa158015610803573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082b9190810190613e64565b905061083b81602001518b6113b4565b6020830151919950975060009061085190610aac565b8251604051636eb1769f60e11b81526001600160a01b0391821660048201523060248201529192508c919083169063dd62ed3e9060440160206040518083038186803b1580156108a057600080fd5b505afa1580156108b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190614013565b10156108ea5760009950505050610aa1565b81516002546109049183916001600160a01b03168c6135b1565b8251600254604051929c507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e9261094792916001600160a01b0316908d9061413c565b60405180910390a1896109a65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3033313a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b6000806109b28e61333e565b915091506109c6838560000151838d6135b1565b9b507f6e18cdd81334cca9a49a7b3a4305750ab3d5e62ee7fa04ab08b28f21a53486718460000151828c6040516109ff9392919061413c565b60405180910390a18b610a625760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3033323a5052454d49554d5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b604080518f8152602081018f90527fc78d1fffca4ae6e34ee8442f7e1bc6fe124bf1a3374c7a902cae38d496ced322910160405180910390a150505050505b505050509250925092565b600754604051630e48080360e21b8152600481018390526000916001600160a01b031690633920200c9060240160206040518083038186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b299190613cff565b80610bab575060075460405163ba80b8ed60e01b8152600481018490526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab9190613cff565b610c055760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3037303a4e4f545f50524f445543545f4f525f52495360448201526412d413d3d360da1b6064820152608401610399565b506000818152600560205260409020546001600160a01b03165b919050565b6000546201000090046001600160a01b0316632ca65a79610c423390565b6040518263ffffffff1660e01b8152600401610c5e9190614160565b60206040518083038186803b158015610c7657600080fd5b505afa158015610c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cae9190613cff565b610cca5760405162461bcd60e51b815260040161039990614347565b610cd26138c3565b6040517f7bd43c6857df1d4fd40c4e86f9cf80ba02adf2e9fdadf03d9e8057eb429fcc5b90600090a1565b600080610d13600154600160a01b900460ff1690565b15610d305760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316610d585760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610da157600080fd5b505afa158015610db5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ddd9190810190613d58565b905060006001600160a01b0316610e0d82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b03161415610e345760405162461bcd60e51b815260040161039990614300565b610e4f6e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b031614610e7f5760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610ec457600080fd5b505afa158015610ed8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f009190810190613d58565b60065460405163620d1b0560e11b8152600481018a90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b158015610f4a57600080fd5b505afa158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190613ce3565b90506000610f938360200151611d31565b90506000816080015111610fe95760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3035303a4645455f535045435f554e444546494e45446044820152606401610399565b6020808401516000908152600590915260409020546001600160a01b0316611011828a613918565b975061101d888a6144ad565b6040516370a0823160e01b81526001600160a01b0385811660048301529198508a918316906370a082319060240160206040518083038186803b15801561106357600080fd5b505afa158015611077573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109b9190614013565b10156110e95760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5452532d3035323a42414c414e43455f544f4f5f534d414c4c006044820152606401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190614013565b10156111d45760405162461bcd60e51b815260206004820152603260248201527f4552524f523a5452532d3035333a4341504954414c5f5452414e534645525f41604482015271131313d5d05390d157d513d3d7d4d350531360721b6064820152608401610399565b6002546000906111f190839086906001600160a01b03168c6135b1565b6002546040519192507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e916112359187916001600160a01b03909116908d9061413c565b60405180910390a1806112945760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3035343a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b60006112b986602001516000908152600360205260409020546001600160a01b031690565b90506112c78386838c6135b1565b91507f4a9a3e028031198ad78a401460c1524a9322592291fed6b5306710aae5ff6d3985828b6040516112fc9392919061413c565b60405180910390a18161135f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3035353a4341504954414c5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b602080870151604080519182529181018e90529081018c90527f855e172a7eb8b6ab1abf4014f1e3683e97000f5c207690b9d8447c9df1c00eb39060600160405180910390a150505050505050509250929050565b60008060006113c285611d31565b905060008160800151116114185760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3032343a4645455f535045435f554e444546494e45446044820152606401610399565b6114228185613918565b925061142e83856144ad565b9150509250929050565b6000806000611450600154600160a01b900460ff1690565b1561146d5760405162461bcd60e51b815260040161039990614294565b67547265617375727960c01b611482816134c9565b6001600160a01b0316306001600160a01b0316146114b25760405162461bcd60e51b8152600401610399906142c9565b6114cc6d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146114fc5760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018790526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561154257600080fd5b505afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613f8e565b90508060200151816040015110156115ac576115a4868260400151836020015161017591906144ad565b919650945092505b50509193909250565b6115ee6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600754604051630e48080360e21b8152600481018890526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561163257600080fd5b505afa158015611646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166a9190613cff565b806116ec575060075460405163ba80b8ed60e01b8152600481018890526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b1580156116b457600080fd5b505afa1580156116c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ec9190613cff565b6117495760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3032303a49445f4e4f545f50524f445543545f4f525f604482015267149254d2d413d3d360c21b6064820152608401610399565b61175c6004670de0b6b3a764000061446e565b8411156117b75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5452532d3032313a46524143494f4e414c5f4645455f544f4f5f60448201526242494760e81b6064820152608401610399565b6040518060c0016040528087815260200186815260200185815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525042602082018190526040909101529695505050505050565b611838600154600160a01b900460ff1690565b156118555760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796118733390565b6040518263ffffffff1660e01b815260040161188f9190614160565b60206040518083038186803b1580156118a757600080fd5b505afa1580156118bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118df9190613cff565b6118fb5760405162461bcd60e51b815260040161039990614347565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119789190613ce3565b60075460405163ba80b8ed60e01b8152600481018690529192506001600160a01b03169063ba80b8ed9060240160206040518083038186803b1580156119bd57600080fd5b505afa1580156119d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f59190613cff565b611a415760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3031363a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b6001600160a01b038216611aa15760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031373a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b60008381526003602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251868152918201527f347fbbd524a9e157686795820f5abf777a026670f7dbaa751f4f190abc52f3a2910160405180910390a1505050565b611b1b600154600160a01b900460ff1690565b15611b385760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a79611b563390565b6040518263ffffffff1660e01b8152600401611b729190614160565b60206040518083038186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190613cff565b611bde5760405162461bcd60e51b815260040161039990614347565b60075460405163ba80b8ed60e01b8152823560048201526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611c2257600080fd5b505afa158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a9190613cff565b611ca65760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3032333a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290611cca828261466e565b50508015611cea5781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527fc3ef28d06d8c4c14101ca058d5b1507f9710ae8e34940a185cff056c375671a990606001610597565b611d6a6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600460008381526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382018054611db690614607565b80601f0160208091040260200160405190810160405280929190818152602001828054611de290614607565b8015611e2f5780601f10611e0457610100808354040283529160200191611e2f565b820191906000526020600020905b815481529060010190602001808311611e1257829003601f168201915b50505050508152602001600482015481526020016005820154815250509050919050565b600054610100900460ff1615808015611e735750600054600160ff909116105b80611e8d5750303b158015611e8d575060005460ff166001145b611ef05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610399565b6000805460ff191660011790558015611f13576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f3d600090565b6541636365737360d01b14611f7f57611f5e6541636365737360d01b6134c9565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611f87613a1c565b8015611fc9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610597565b5050565b611fe0600154600160a01b900460ff1690565b15611ffd5760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a7961201b3390565b6040518263ffffffff1660e01b81526004016120379190614160565b60206040518083038186803b15801561204f57600080fd5b505afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190613cff565b6120a35760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166121035760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031353a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f3769187331e10b0394c677689372317cc625318f5e50b76cb4da221dbdf05ef89060200160405180910390a150565b61216a600154600160a01b900460ff1690565b156121875760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796121a53390565b6040518263ffffffff1660e01b81526004016121c19190614160565b60206040518083038186803b1580156121d957600080fd5b505afa1580156121ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122119190613cff565b61222d5760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166122835760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3031303a544f4b454e5f414444524553535f5a45524f6044820152606401610399565b600754604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ff9190613cff565b61234b5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3031313a4e4f545f50524f44554354000000000000006044820152606401610399565b6000828152600560205260409020546001600160a01b0316156123c05760405162461bcd60e51b815260206004820152602760248201527f4552524f523a5452532d3031323a50524f445543545f544f4b454e5f414c524560448201526610511657d4d15560ca1b6064820152608401610399565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561240557600080fd5b505afa158015612419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243d9190613ce3565b9050816001600160a01b0316816001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561248257600080fd5b505afa158015612496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ba9190613ce3565b6001600160a01b0316146125295760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031333a50524f445543545f544f4b454e5f4144445260448201526f4553535f4e4f545f4d41544348494e4760801b6064820152608401610399565b600954604051630d229f3b60e41b8152600481018590526000916001600160a01b03169063d229f3b09060240160206040518083038186803b15801561256e57600080fd5b505afa158015612582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a69190614013565b6000818152600560205260409020549091506001600160a01b031615806125e657506000818152600560205260409020546001600160a01b038481169116145b61264b5760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031343a5249534b504f4f4c5f544f4b454e5f41444460448201526f524553535f4e4f545f4d414348494e4760801b6064820152608401610399565b600084815260056020908152604080832080546001600160a01b0388166001600160a01b03199182168117909255858552938290208054909416811790935580518781529182018490528101919091527f78b40e42f597552da073de514ce9a92a14a8e48cb9bb12a1fae74564a0dcf3ab9060600160405180910390a150505050565b6000806126e4600154600160a01b900460ff1690565b156127015760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166127295760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561277257600080fd5b505afa158015612786573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127ae9190810190613d58565b905060006001600160a01b03166127de82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b031614156128055760405162461bcd60e51b815260040161039990614300565b6128206e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b0316146128505760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561289557600080fd5b505afa1580156128a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128d19190810190613d58565b9050858160c001516128e39190614456565b8160a00151101580612906575060c08101511580156129065750858160e0015110155b6129785760405162461bcd60e51b815260206004820152603960248201527f4552524f523a5452532d3036303a43415041434954595f4f525f42414c414e4360448201527f455f534d414c4c45525f5448414e5f5749544844524157414c000000000000006064820152608401610399565b600061299d82602001516000908152600360205260409020546001600160a01b031690565b60065460405163620d1b0560e11b8152600481018b90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b1580156129e757600080fd5b505afa1580156129fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1f9190613ce3565b602084810151600090815260059091526040908190205490516370a0823160e01b81526001600160a01b038581166004830152929350911690899082906370a082319060240160206040518083038186803b158015612a7d57600080fd5b505afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab59190614013565b1015612b1b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3036313a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b158015612b6557600080fd5b505afa158015612b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9d9190614013565b1015612c005760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a5452532d3036323a5749544844524157414c5f414c4c4f57414e60448201526b10d157d513d3d7d4d350531360a21b6064820152608401610399565b600097508896506000612c158285858b6135b1565b90507fbe5d373e2476acbcb4aa97c605f358cfe7748bebff73d2d3195f587dc61f59c384848a604051612c4a9392919061413c565b60405180910390a180612cb05760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3036333a5749544844524157414c5f5452414e5346456044820152671497d1905253115160c21b6064820152608401610399565b602080860151604080519182529181018d90529081018990527fdbb3ae752b98a0c1c3c26fe1b0a7faa343da1c6fe5e0a80624f36e8e25e22edf9060600160405180910390a1505050505050509250929050565b6000546201000090046001600160a01b0316632ca65a79612d223390565b6040518263ffffffff1660e01b8152600401612d3e9190614160565b60206040518083038186803b158015612d5657600080fd5b505afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190613cff565b612daa5760405162461bcd60e51b815260040161039990614347565b612db2613b52565b6040517f5508e022c084f2aba2d9ebf198ee0e2e205840df815b91112781505e6798bfdc90600090a1565b612df06004670de0b6b3a764000061446e565b81565b600080612e09600154600160a01b900460ff1690565b15612e265760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316612e4e5760405162461bcd60e51b81526004016103999061424d565b83600080612e5b8361333e565b90925090506001600160a01b038116612e865760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b612e9b816134c9565b6001600160a01b0316306001600160a01b031614612ecb5760405162461bcd60e51b8152600401610399906142c9565b612ee56d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b031614612f155760405162461bcd60e51b81526004016103999061438a565b60085460405163296586d360e21b8152600481018a90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015612f5a57600080fd5b505afa158015612f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f969190810190613e64565b90506000612fa78260200151610aac565b9050600080612fb58c61333e565b915091506000600860009054906101000a90046001600160a01b03166001600160a01b031663cef58f138e8e6040518363ffffffff1660e01b8152600401613007929190918252602082015260400190565b60006040518083038186803b15801561301f57600080fd5b505afa158015613033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261305b9190810190613f14565b60408082015190516370a0823160e01b81526001600160a01b03858116600483015292935090918616906370a082319060240160206040518083038186803b1580156130a657600080fd5b505afa1580156130ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130de9190614013565b10156131445760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3034323a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b6040818101519051636eb1769f60e11b81526001600160a01b03848116600483015230602483015286169063dd62ed3e9060440160206040518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190614013565b10156132275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3034333a5041594f55545f414c4c4f57414e43455f5460448201526713d3d7d4d350531360c21b6064820152608401610399565b600061323d8584886000015185604001516135b1565b6040808401518851915160009f50909d509192507f967b0d7f4806051ef2c1375d324be9be0c739a4e34845bc060210577fd677f85916132809186918f9061413c565b60405180910390a1806132e15760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5452532d3034343a5041594f55545f5452414e534645525f46416044820152631253115160e21b6064820152608401610399565b855160408381015181518781526001600160a01b03909316602084015282820152517f8b5ad77a07a1f8dbb7f91bd53d28ecf3c900534c88f13672f6f2ddcf01ec7f859181900360600190a1505050505050505050509250929050565b60085460405163296586d360e21b815260048101839052600091829182916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561338757600080fd5b505afa15801561339b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133c39190810190613e64565b6009546020820151604051630d229f3b60e41b815260048101919091529192506001600160a01b03169063d229f3b09060240160206040518083038186803b15801561340e57600080fd5b505afa158015613422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134469190614013565b9250600083116134a75760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5452532d3039323a50524f445543545f574954484f55545f524960448201526514d2d413d3d360d21b6064820152608401610399565b505060008181526003602052604090205490926001600160a01b039091169150565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561351357600080fd5b505afa158015613527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354b9190613ce3565b90506001600160a01b038116610c1f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610399565b6000846001600160a01b038082163b151590861615806135d857506001600160a01b038516155b806135e1575080155b1561363c576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a16000925050506138bb565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561368157600080fd5b505afa158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b99190614013565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b15801561370657600080fd5b505afa15801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190614013565b90508582108061374d57508581105b156137985760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a160009450505050506138bb565b6000808a6001600160a01b03166323b872dd8b8b8b6040516024016137bf9392919061413c565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516137f89190614120565b6000604051808303816000865af19150503d8060008114613835576040519150601f19603f3d011682016040523d82523d6000602084013e61383a565b606091505b50915091508180156138705750805115806138705750805160201480156138705750808060200190518101906138709190613cff565b9650866138b4577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b828251836040516138ab9392919061419a565b60405180910390a15b5050505050505b949350505050565b6138cb613b95565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b606082015151600090156139875760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3039303a4645455f43414c43554c4154494f4e5f444160448201526f151057d393d517d4d5541413d495115160821b6064820152608401610399565b5060208201516040830151156139c757670de0b6b3a76400008284604001516139b0919061448e565b6139ba919061446e565b6139c49082614456565b90505b818110613a165760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3039313a4645455f544f4f5f424947000000000000006044820152606401610399565b92915050565b600054610100900460ff16613a875760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610399565b613a996542756e646c6560d01b6134c9565b600680546001600160a01b0319166001600160a01b0392909216919091179055613ace6810dbdb5c1bdb995b9d60ba1b6134c9565b600780546001600160a01b0319166001600160a01b0392909216919091179055613b0065506f6c69637960d01b6134c9565b600880546001600160a01b0319166001600160a01b0392909216919091179055613b3063141bdbdb60e21b6134c9565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b613b5a613bed565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138fb3390565b613ba8600154600160a01b900460ff1690565b613beb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610399565b565b613c00600154600160a01b900460ff1690565b15613beb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610399565b600082601f830112613c50578081fd5b815167ffffffffffffffff811115613c6a57613c6a614658565b613c7d601f8201601f1916602001614425565b818152846020838601011115613c91578283fd5b6138bb8260208301602087016145d7565b805160048110610c1f57600080fd5b805160038110610c1f57600080fd5b600060208284031215613cd1578081fd5b8135613cdc816146f3565b9392505050565b600060208284031215613cf4578081fd5b8151613cdc816146f3565b600060208284031215613d10578081fd5b81518015158114613cdc578182fd5b600060208284031215613d30578081fd5b5035919050565b60008060408385031215613d49578081fd5b50508035926020909101359150565b600060208284031215613d69578081fd5b815167ffffffffffffffff80821115613d80578283fd5b8184019150610140808387031215613d96578384fd5b613d9f81614425565b9050825181526020830151602082015260408301516040820152613dc560608401613ca2565b6060820152608083015182811115613ddb578485fd5b613de787828601613c40565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613e3d578081fd5b813567ffffffffffffffff811115613e53578182fd5b820160c08185031215613cdc578182fd5b600060208284031215613e75578081fd5b815167ffffffffffffffff80821115613e8c578283fd5b9083019060c08286031215613e9f578283fd5b613ea960c0614425565b8251613eb4816146f3565b815260208381015190820152613ecc60408401613cb1565b6040820152606083015182811115613ee2578485fd5b613eee87828601613c40565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613f25578081fd5b815167ffffffffffffffff80821115613f3c578283fd5b9083019060c08286031215613f4f578283fd5b613f5960c0614425565b82518152602083015160028110613f6e578485fd5b602082015260408381015190820152606083015182811115613ee2578485fd5b6000610120808385031215613fa1578182fd5b613faa81614425565b9050613fb583613cb1565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060208284031215614024578081fd5b5051919050565b6000806040838503121561403d578182fd5b82359150602083013561404f816146f3565b809150509250929050565b60008060408385031215613d49578182fd5b600080600080600060808688031215614083578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff808211156140af578283fd5b818801915088601f8301126140c2578283fd5b8135818111156140d0578384fd5b8960208285010111156140e1578384fd5b9699959850939650602001949392505050565b6000815180845261410c8160208601602086016145d7565b601f01601f19169290920160200192915050565b600082516141328184602087016145d7565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60008415158252836020830152606060408301526141bb60608301846140f4565b95945050505050565b60208082526027908201527f4552524f523a5452532d3030323a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526022908201527f4552524f523a5452532d3030353a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b60208082526027908201527f4552524f523a5452532d3030313a494e5354414e43455f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b6020808252818101527f4552524f523a5452532d3030343a54524541535552595f53555350454e444544604082015260600190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526027908201527f4552524f523a5452532d3030333a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015261440560e08401826140f4565b9050608084015160a084015260a084015160c08401528091505092915050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561444e5761444e614658565b604052919050565b6000821982111561446957614469614642565b500190565b60008261448957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156144a8576144a8614642565b500290565b6000828210156144bf576144bf614642565b500390565b5b81811015611fc957600081556001016144c5565b67ffffffffffffffff8311156144f1576144f1614658565b6144fb8154614607565b600080601f8611601f84118181171561451a5760008681526020902092505b8015614549576020601f890104830160208910156145355750825b6145476020601f8801048501826144c4565b505b50806001811461457b57600094508715614564578387013594505b6002880260001960088a021c1986161786556145cd565b601f198816945082845b868110156145a55788860135825560209586019560019092019101614585565b50888610156145c257878501356000196008601f8c16021c191681555b506001600289020186555b5050505050505050565b60005b838110156145f25781810151838201526020016145da565b83811115614601576000848401525b50505050565b60028104600182168061461b57607f821691505b6020821081141561463c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8135815560208201356001820155604082013560028201556060820135601e1983360301811261469d57600080fd5b8201803567ffffffffffffffff8111156146b657600080fd5b6020820191508036038213156146cb57600080fd5b6146d98183600386016144d9565b50506080820135600482015560a082013560058201555050565b6001600160a01b038116811461470857600080fd5b5056fea26469706673582212209c6e17d64e138985579699ae8a3c6c60853f74a96d720c58205175e0cdbe5ef264736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x2F JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH3 0xF1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x9C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xEF JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x4741 DUP1 PUSH3 0x101 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8CA946AA GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xCAB2504D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xCAB2504D EQ PUSH2 0x30D JUMPI DUP1 PUSH4 0xCC9CF8CD EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0xD9358075 EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0xE6400BBE EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xF964690D EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x356 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x8CA946AA EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x8CCF5CA2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xA434F0AD EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0xA44330C4 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0xB79F5EAB EQ PUSH2 0x2EB JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x2FA JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x34E73122 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x34E73122 EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0x49081637 EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0x5ECC078E EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0x62F0AB55 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x86039AED EQ PUSH2 0x289 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1132A7F EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x2108268 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x38696BB EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0x46F7DA2 EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x26DEBDAA EQ PUSH2 0x1CF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x165 PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E2C JUMP JUMPDEST PUSH2 0x369 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17A PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D37 JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH2 0x1AA CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0xAAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x165 PUSH2 0xC24 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x1DD CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0xCFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x205 CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0x13B4 JUMP JUMPDEST PUSH2 0x1AF PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x246 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x17A PUSH2 0x264 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0x1438 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x277 CALLDATASIZE PUSH1 0x4 PUSH2 0x406C JUMP JUMPDEST PUSH2 0x15B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x43CB JUMP JUMPDEST PUSH2 0x165 PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x1825 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x3E2C JUMP JUMPDEST PUSH2 0x1B08 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x2D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0x1D31 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1AF JUMP JUMPDEST PUSH2 0x2B9 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x308 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CC0 JUMP JUMPDEST PUSH2 0x1E53 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x31B CALLDATASIZE PUSH1 0x4 PUSH2 0x3CC0 JUMP JUMPDEST PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x165 PUSH2 0x32E CALLDATASIZE PUSH1 0x4 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x2157 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0x26CE JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2D04 JUMP JUMPDEST PUSH2 0x2B9 PUSH2 0x2DDD JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D37 JUMP JUMPDEST PUSH2 0x2DF3 JUMP JUMPDEST PUSH2 0x37C PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3C0 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3DC SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x408 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE DUP3 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x48C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x510 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032323A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 DUP3 SWAP1 PUSH2 0x534 DUP3 DUP3 PUSH2 0x466E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x554 JUMPI DUP2 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP2 DUP5 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x389AB9B2665A8EF1ADF5A151C45E2546C4B1FFE8CFA537DD96A5EB8046B06EFE SWAP1 PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x5BB PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x5D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x600 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST DUP5 PUSH1 0x0 DUP1 PUSH2 0x60D DUP4 PUSH2 0x333E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x638 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x41C4 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x64D DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x67D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x697 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x70D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x721 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x745 SWAP2 SWAP1 PUSH2 0x3F8E JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP10 DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x75C SWAP2 SWAP1 PUSH2 0x4456 JUMP JUMPDEST GT ISZERO PUSH2 0x7AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033303A414D4F554E545F544F4F5F42494700000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x803 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x82B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST SWAP1 POP PUSH2 0x83B DUP2 PUSH1 0x20 ADD MLOAD DUP12 PUSH2 0x13B4 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP1 PUSH2 0x851 SWAP1 PUSH2 0xAAC JUMP JUMPDEST DUP3 MLOAD PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE SWAP2 SWAP3 POP DUP13 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8D8 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x8EA JUMPI PUSH1 0x0 SWAP10 POP POP POP POP PUSH2 0xAA1 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x2 SLOAD PUSH2 0x904 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH2 0x35B1 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP13 POP PUSH32 0xACB52383128D246C2AB215825C8705382E85E3D779899196DDD096C74C70880E SWAP3 PUSH2 0x947 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP14 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP10 PUSH2 0x9A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033313A4645455F5452414E534645525F4641494C45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9B2 DUP15 PUSH2 0x333E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9C6 DUP4 DUP6 PUSH1 0x0 ADD MLOAD DUP4 DUP14 PUSH2 0x35B1 JUMP JUMPDEST SWAP12 POP PUSH32 0x6E18CDD81334CCA9A49A7B3A4305750AB3D5E62EE7FA04AB08B28F21A5348671 DUP5 PUSH1 0x0 ADD MLOAD DUP3 DUP13 PUSH1 0x40 MLOAD PUSH2 0x9FF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 PUSH2 0xA62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033323A5052454D49554D5F5452414E534645525F46 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1052531151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP16 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE PUSH32 0xC78D1FFFCA4AE6E34EE8442F7E1BC6FE124BF1A3374C7A902CAE38D496CED322 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMPDEST POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB29 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST DUP1 PUSH2 0xBAB JUMPI POP PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB87 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBAB SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0xC05 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3037303A4E4F545F50524F445543545F4F525F524953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x12D413D3D3 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xC42 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC5E SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC8A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCAE SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0xCCA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH2 0xCD2 PUSH2 0x38C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7BD43C6857DF1D4FD40C4E86F9CF80BA02ADF2E9FDADF03D9E8057EB429FCC5B SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD13 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0xD30 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD58 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE DUP6 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xDDD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE0D DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0xE34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4300 JUMP JUMPDEST PUSH2 0xE4F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE7F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xED8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xF00 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x620D1B05 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC41A360A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF5E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF82 SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xF93 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x1D31 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0xFE9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035303A4645455F535045435F554E444546494E4544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1011 DUP3 DUP11 PUSH2 0x3918 JUMP JUMPDEST SWAP8 POP PUSH2 0x101D DUP9 DUP11 PUSH2 0x44AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP9 POP DUP11 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1063 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1077 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x109B SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x10E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035323A42414C414E43455F544F4F5F534D414C4C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP11 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1147 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x116B SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x11D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035333A4341504954414C5F5452414E534645525F41 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x131313D5D05390D157D513D3D7D4D3505313 PUSH1 0x72 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x11F1 SWAP1 DUP4 SWAP1 DUP7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH32 0xACB52383128D246C2AB215825C8705382E85E3D779899196DDD096C74C70880E SWAP2 PUSH2 0x1235 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP14 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x1294 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035343A4645455F5452414E534645525F4641494C45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B9 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x12C7 DUP4 DUP7 DUP4 DUP13 PUSH2 0x35B1 JUMP JUMPDEST SWAP2 POP PUSH32 0x4A9A3E028031198AD78A401460C1524A9322592291FED6B5306710AAE5FF6D39 DUP6 DUP3 DUP12 PUSH1 0x40 MLOAD PUSH2 0x12FC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH2 0x135F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035353A4341504954414C5F5452414E534645525F46 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1052531151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP8 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE SWAP2 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 DUP2 ADD DUP13 SWAP1 MSTORE PUSH32 0x855E172A7EB8B6AB1ABF4014F1E3683E97000F5C207690B9D8447C9DF1C00EB3 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x13C2 DUP6 PUSH2 0x1D31 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1418 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032343A4645455F535045435F554E444546494E4544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x1422 DUP2 DUP6 PUSH2 0x3918 JUMP JUMPDEST SWAP3 POP PUSH2 0x142E DUP4 DUP6 PUSH2 0x44AD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1450 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x146D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1482 DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x14CC PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1556 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x157A SWAP2 SWAP1 PUSH2 0x3F8E JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x15AC JUMPI PUSH2 0x15A4 DUP7 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x44AD JUMP JUMPDEST SWAP2 SWAP7 POP SWAP5 POP SWAP3 POP JUMPDEST POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH2 0x15EE PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1646 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x166A SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST DUP1 PUSH2 0x16EC JUMPI POP PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16EC SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032303A49445F4E4F545F50524F445543545F4F525F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x149254D2D413D3D3 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x175C PUSH1 0x4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x446E JUMP JUMPDEST DUP5 GT ISZERO PUSH2 0x17B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032313A46524143494F4E414C5F4645455F544F4F5F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x424947 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP1 DUP3 MSTORE POP TIMESTAMP PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1838 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1855 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x1873 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x188F SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18DF SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x18FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1978 SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19D1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F5 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1A41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031363A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1AA1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031373A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP7 DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0x347FBBD524A9E157686795820F5ABF777A026670F7DBAA751F4F190ABC52F3A2 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1B1B PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1B38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x1B56 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B72 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B9E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BC2 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1BDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE DUP3 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C36 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C5A SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1CA6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032333A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 DUP3 SWAP1 PUSH2 0x1CCA DUP3 DUP3 PUSH2 0x466E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x1CEA JUMPI DUP2 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP2 DUP5 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC3EF28D06D8C4C14101CA058D5B1507F9710AE8E34940A185CFF056C375671A9 SWAP1 PUSH1 0x60 ADD PUSH2 0x597 JUMP JUMPDEST PUSH2 0x1D6A PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x1DB6 SWAP1 PUSH2 0x4607 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DE2 SWAP1 PUSH2 0x4607 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E2F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E04 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1E2F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1E12 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1E73 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1E8D JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E8D JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1EF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1F13 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1F3D PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1F7F JUMPI PUSH2 0x1F5E PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1F87 PUSH2 0x3A1C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x597 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1FE0 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1FFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x201B CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2037 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x204F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2063 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2087 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x20A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2103 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031353A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x3769187331E10B0394C677689372317CC625318F5E50B76CB4DA221DBDF05EF8 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x216A PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x21A5 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C1 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2211 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x222D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2283 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031303A544F4B454E5F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22DB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22FF SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x234B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031313A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x23C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031323A50524F445543545F544F4B454E5F414C5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x10511657D4D155 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2419 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x243D SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x21DF0DA7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2496 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24BA SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2529 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031333A50524F445543545F544F4B454E5F41444452 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x4553535F4E4F545F4D41544348494E47 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD229F3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD229F3B0 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x256E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2582 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x25A6 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO DUP1 PUSH2 0x25E6 JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 AND EQ JUMPDEST PUSH2 0x264B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031343A5249534B504F4F4C5F544F4B454E5F414444 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x524553535F4E4F545F4D414348494E47 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE DUP6 DUP6 MSTORE SWAP4 DUP3 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP5 AND DUP2 OR SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x78B40E42F597552DA073DE514CE9A92A14A8E48CB9BB12A1FAE74564A0DCF3AB SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x26E4 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2701 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2729 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE DUP6 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2786 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x27AE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x27DE DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x2805 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4300 JUMP JUMPDEST PUSH2 0x2820 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2850 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2895 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x28D1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x28E3 SWAP2 SWAP1 PUSH2 0x4456 JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD LT ISZERO DUP1 PUSH2 0x2906 JUMPI POP PUSH1 0xC0 DUP2 ADD MLOAD ISZERO DUP1 ISZERO PUSH2 0x2906 JUMPI POP DUP6 DUP2 PUSH1 0xE0 ADD MLOAD LT ISZERO JUMPDEST PUSH2 0x2978 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036303A43415041434954595F4F525F42414C414E43 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x455F534D414C4C45525F5448414E5F5749544844524157414C00000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x299D DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x620D1B05 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC41A360A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x29FB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A1F SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x20 DUP5 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP2 AND SWAP1 DUP10 SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A91 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AB5 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x2B1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036313A5249534B504F4F4C5F57414C4C45545F4241 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x13105390D157D513D3D7D4D3505313 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP11 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B79 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B9D SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x2C00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036323A5749544844524157414C5F414C4C4F57414E PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x10D157D513D3D7D4D3505313 PUSH1 0xA2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 SWAP8 POP DUP9 SWAP7 POP PUSH1 0x0 PUSH2 0x2C15 DUP3 DUP6 DUP6 DUP12 PUSH2 0x35B1 JUMP JUMPDEST SWAP1 POP PUSH32 0xBE5D373E2476ACBCB4AA97C605F358CFE7748BEBFF73D2D3195F587DC61F59C3 DUP5 DUP5 DUP11 PUSH1 0x40 MLOAD PUSH2 0x2C4A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x2CB0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036333A5749544844524157414C5F5452414E534645 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x1497D19052531151 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP7 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE SWAP2 DUP2 ADD DUP14 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0xDBB3AE752B98A0C1C3C26FE1B0A7FAA343DA1C6FE5E0A80624F36E8E25E22EDF SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x2D22 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D3E SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D6A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D8E SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x2DAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH2 0x2DB2 PUSH2 0x3B52 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x5508E022C084F2ABA2D9EBF198EE0E2E205840DF815B91112781505E6798BFDC SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2DF0 PUSH1 0x4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x446E JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2E09 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2E26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E4E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST DUP4 PUSH1 0x0 DUP1 PUSH2 0x2E5B DUP4 PUSH2 0x333E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2E86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x41C4 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x2E9B DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2ECB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x2EE5 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2F15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2F96 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2FA7 DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0xAAC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2FB5 DUP13 PUSH2 0x333E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xCEF58F13 DUP15 DUP15 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3007 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3033 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x305B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3F14 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD SWAP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP1 SWAP2 DUP7 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30DE SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x3144 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034323A5249534B504F4F4C5F57414C4C45545F4241 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x13105390D157D513D3D7D4D3505313 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD SWAP1 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP7 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3190 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31C8 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x3227 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034333A5041594F55545F414C4C4F57414E43455F54 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D3D7D4D3505313 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x323D DUP6 DUP5 DUP9 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP5 ADD MLOAD DUP9 MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP16 POP SWAP1 SWAP14 POP SWAP2 SWAP3 POP PUSH32 0x967B0D7F4806051EF2C1375D324BE9BE0C739A4E34845BC060210577FD677F85 SWAP2 PUSH2 0x3280 SWAP2 DUP7 SWAP2 DUP16 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x32E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034343A5041594F55545F5452414E534645525F4641 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x12531151 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST DUP6 MLOAD PUSH1 0x40 DUP4 DUP2 ADD MLOAD DUP2 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x20 DUP5 ADD MSTORE DUP3 DUP3 ADD MSTORE MLOAD PUSH32 0x8B5AD77A07A1F8DBB7F91BD53D28ECF3C900534C88F13672F6F2DDCF01EC7F85 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x339B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x33C3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xD229F3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD229F3B0 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x340E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3422 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3446 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x34A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039323A50524F445543545F574954484F55545F5249 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x14D2D413D3D3 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3527 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x354B SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x35D8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0x35E1 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x363C JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x38BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3681 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3695 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x36B9 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x371A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x373E SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x374D JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x3798 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x38BB JUMP JUMPDEST PUSH1 0x0 DUP1 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x37BF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x37F8 SWAP2 SWAP1 PUSH2 0x4120 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3835 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x383A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x3870 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x3870 JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x3870 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3870 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x38B4 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x38AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x419A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x38CB PUSH2 0x3B95 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MLOAD MLOAD PUSH1 0x0 SWAP1 ISZERO PUSH2 0x3987 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039303A4645455F43414C43554C4154494F4E5F4441 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x151057D393D517D4D5541413D4951151 PUSH1 0x82 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP4 ADD MLOAD ISZERO PUSH2 0x39C7 JUMPI PUSH8 0xDE0B6B3A7640000 DUP3 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x39B0 SWAP2 SWAP1 PUSH2 0x448E JUMP JUMPDEST PUSH2 0x39BA SWAP2 SWAP1 PUSH2 0x446E JUMP JUMPDEST PUSH2 0x39C4 SWAP1 DUP3 PUSH2 0x4456 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT PUSH2 0x3A16 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039313A4645455F544F4F5F42494700000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3A87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x3A99 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3ACE PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3B00 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3B30 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3B5A PUSH2 0x3BED JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x38FB CALLER SWAP1 JUMP JUMPDEST PUSH2 0x3BA8 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x3BEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x3C00 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x3BEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3C50 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C6A JUMPI PUSH2 0x3C6A PUSH2 0x4658 JUMP JUMPDEST PUSH2 0x3C7D PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x4425 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3C91 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x38BB DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x45D7 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CD1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3CDC DUP2 PUSH2 0x46F3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CF4 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3CDC DUP2 PUSH2 0x46F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D10 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3CDC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D30 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D49 JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D69 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3D80 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x3D96 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3D9F DUP2 PUSH2 0x4425 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x3DC5 PUSH1 0x60 DUP5 ADD PUSH2 0x3CA2 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3DDB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3DE7 DUP8 DUP3 DUP7 ADD PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E3D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E53 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0xC0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x3CDC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E75 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3E8C JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3E9F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3EA9 PUSH1 0xC0 PUSH2 0x4425 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x3EB4 DUP2 PUSH2 0x46F3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x3ECC PUSH1 0x40 DUP5 ADD PUSH2 0x3CB1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3EE2 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3EEE DUP8 DUP3 DUP7 ADD PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F25 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3F3C JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3F4F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3F59 PUSH1 0xC0 PUSH2 0x4425 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x3F6E JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3EE2 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3FA1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x3FAA DUP2 PUSH2 0x4425 JUMP JUMPDEST SWAP1 POP PUSH2 0x3FB5 DUP4 PUSH2 0x3CB1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4024 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x403D JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x404F DUP2 PUSH2 0x46F3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D49 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4083 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x40AF JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x40C2 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x40D0 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x40E1 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x410C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x45D7 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4132 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x45D7 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x41BB PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x40F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030323A5249534B504F4F4C5F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030353A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030313A494E5354414E43455F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4552524F523A5452532D3030343A54524541535552595F53555350454E444544 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030333A5249534B504F4F4C5F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4405 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x40F4 JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x444E JUMPI PUSH2 0x444E PUSH2 0x4658 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4469 JUMPI PUSH2 0x4469 PUSH2 0x4642 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4489 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x44A8 JUMPI PUSH2 0x44A8 PUSH2 0x4642 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x44BF JUMPI PUSH2 0x44BF PUSH2 0x4642 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x44F1 JUMPI PUSH2 0x44F1 PUSH2 0x4658 JUMP JUMPDEST PUSH2 0x44FB DUP2 SLOAD PUSH2 0x4607 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP7 GT PUSH1 0x1F DUP5 GT DUP2 DUP2 OR ISZERO PUSH2 0x451A JUMPI PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP3 POP JUMPDEST DUP1 ISZERO PUSH2 0x4549 JUMPI PUSH1 0x20 PUSH1 0x1F DUP10 ADD DIV DUP4 ADD PUSH1 0x20 DUP10 LT ISZERO PUSH2 0x4535 JUMPI POP DUP3 JUMPDEST PUSH2 0x4547 PUSH1 0x20 PUSH1 0x1F DUP9 ADD DIV DUP6 ADD DUP3 PUSH2 0x44C4 JUMP JUMPDEST POP JUMPDEST POP DUP1 PUSH1 0x1 DUP2 EQ PUSH2 0x457B JUMPI PUSH1 0x0 SWAP5 POP DUP8 ISZERO PUSH2 0x4564 JUMPI DUP4 DUP8 ADD CALLDATALOAD SWAP5 POP JUMPDEST PUSH1 0x2 DUP9 MUL PUSH1 0x0 NOT PUSH1 0x8 DUP11 MUL SHR NOT DUP7 AND OR DUP7 SSTORE PUSH2 0x45CD JUMP JUMPDEST PUSH1 0x1F NOT DUP9 AND SWAP5 POP DUP3 DUP5 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x45A5 JUMPI DUP9 DUP7 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4585 JUMP JUMPDEST POP DUP9 DUP7 LT ISZERO PUSH2 0x45C2 JUMPI DUP8 DUP6 ADD CALLDATALOAD PUSH1 0x0 NOT PUSH1 0x8 PUSH1 0x1F DUP13 AND MUL SHR NOT AND DUP2 SSTORE JUMPDEST POP PUSH1 0x1 PUSH1 0x2 DUP10 MUL ADD DUP7 SSTORE JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x45F2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x45DA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4601 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x461B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x463C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 SSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x469D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x46CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x46D9 DUP2 DUP4 PUSH1 0x3 DUP7 ADD PUSH2 0x44D9 JUMP JUMPDEST POP POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0x5 DUP3 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4708 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 PUSH15 0x17D64E138985579699AE8A3C6C6085 EXTCODEHASH PUSH21 0xA96D720C58205175E0CDBE5EF264736F6C63430008 MUL STOP CALLER ","sourceMap":"3548:18091:81:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;996:7:48;:15;;-1:-1:-1;;;;996:15:48;;;3548:18091:81;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;3548:18091:81;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:37821:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"77:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"126:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"135:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"142:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"128:6:103"},"nodeType":"YulFunctionCall","src":"128:20:103"},"nodeType":"YulExpressionStatement","src":"128:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"113:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"120:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"90:6:103"},"nodeType":"YulFunctionCall","src":"90:35:103"},"nodeType":"YulIf","src":"87:2:103"},{"nodeType":"YulVariableDeclaration","src":"159:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"175:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"169:5:103"},"nodeType":"YulFunctionCall","src":"169:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"163:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"221:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"223:16:103"},"nodeType":"YulFunctionCall","src":"223:18:103"},"nodeType":"YulExpressionStatement","src":"223:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"197:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"201:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"194:2:103"},"nodeType":"YulFunctionCall","src":"194:26:103"},"nodeType":"YulIf","src":"191:2:103"},{"nodeType":"YulVariableDeclaration","src":"252:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"295:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"299:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"291:3:103"},"nodeType":"YulFunctionCall","src":"291:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"310:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"306:3:103"},"nodeType":"YulFunctionCall","src":"306:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"287:3:103"},"nodeType":"YulFunctionCall","src":"287:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"316:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"283:3:103"},"nodeType":"YulFunctionCall","src":"283:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"267:15:103"},"nodeType":"YulFunctionCall","src":"267:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"256:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"338:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"347:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"331:6:103"},"nodeType":"YulFunctionCall","src":"331:19:103"},"nodeType":"YulExpressionStatement","src":"331:19:103"},{"body":{"nodeType":"YulBlock","src":"398:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"407:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"414:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"400:6:103"},"nodeType":"YulFunctionCall","src":"400:20:103"},"nodeType":"YulExpressionStatement","src":"400:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"373:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"381:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:103"},"nodeType":"YulFunctionCall","src":"369:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"386:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:103"},"nodeType":"YulFunctionCall","src":"365:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"393:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"362:2:103"},"nodeType":"YulFunctionCall","src":"362:35:103"},"nodeType":"YulIf","src":"359:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"457:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"465:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"453:3:103"},"nodeType":"YulFunctionCall","src":"453:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"476:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"485:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"472:3:103"},"nodeType":"YulFunctionCall","src":"472:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"492:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"431:21:103"},"nodeType":"YulFunctionCall","src":"431:64:103"},"nodeType":"YulExpressionStatement","src":"431:64:103"},{"nodeType":"YulAssignment","src":"504:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"513:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"504:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"51:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"59:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"67:5:103","type":""}],"src":"14:512:103"},{"body":{"nodeType":"YulBlock","src":"600:87:103","statements":[{"nodeType":"YulAssignment","src":"610:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"625:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"619:5:103"},"nodeType":"YulFunctionCall","src":"619:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"610:5:103"}]},{"body":{"nodeType":"YulBlock","src":"665:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"674:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"677:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"667:6:103"},"nodeType":"YulFunctionCall","src":"667:12:103"},"nodeType":"YulExpressionStatement","src":"667:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"654:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"661:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"651:2:103"},"nodeType":"YulFunctionCall","src":"651:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"644:6:103"},"nodeType":"YulFunctionCall","src":"644:20:103"},"nodeType":"YulIf","src":"641:2:103"}]},"name":"abi_decode_enum_BundleState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"579:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"590:5:103","type":""}],"src":"531:156:103"},{"body":{"nodeType":"YulBlock","src":"765:87:103","statements":[{"nodeType":"YulAssignment","src":"775:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"790:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"784:5:103"},"nodeType":"YulFunctionCall","src":"784:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"775:5:103"}]},{"body":{"nodeType":"YulBlock","src":"830:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"839:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"842:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"832:6:103"},"nodeType":"YulFunctionCall","src":"832:12:103"},"nodeType":"YulExpressionStatement","src":"832:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"819:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"826:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"816:2:103"},"nodeType":"YulFunctionCall","src":"816:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"809:6:103"},"nodeType":"YulFunctionCall","src":"809:20:103"},"nodeType":"YulIf","src":"806:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"744:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"755:5:103","type":""}],"src":"692:160:103"},{"body":{"nodeType":"YulBlock","src":"927:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"973:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"982:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"990:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"975:6:103"},"nodeType":"YulFunctionCall","src":"975:22:103"},"nodeType":"YulExpressionStatement","src":"975:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"948:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"957:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"944:3:103"},"nodeType":"YulFunctionCall","src":"944:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"969:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"940:3:103"},"nodeType":"YulFunctionCall","src":"940:32:103"},"nodeType":"YulIf","src":"937:2:103"},{"nodeType":"YulVariableDeclaration","src":"1008:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1034:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1021:12:103"},"nodeType":"YulFunctionCall","src":"1021:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1012:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1078:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1053:24:103"},"nodeType":"YulFunctionCall","src":"1053:31:103"},"nodeType":"YulExpressionStatement","src":"1053:31:103"},{"nodeType":"YulAssignment","src":"1093:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1103:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1093:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"893:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"904:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"916:6:103","type":""}],"src":"857:257:103"},{"body":{"nodeType":"YulBlock","src":"1200:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1246:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1255:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1263:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1248:6:103"},"nodeType":"YulFunctionCall","src":"1248:22:103"},"nodeType":"YulExpressionStatement","src":"1248:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1221:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1230:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1217:3:103"},"nodeType":"YulFunctionCall","src":"1217:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1242:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1213:3:103"},"nodeType":"YulFunctionCall","src":"1213:32:103"},"nodeType":"YulIf","src":"1210:2:103"},{"nodeType":"YulVariableDeclaration","src":"1281:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1300:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1294:5:103"},"nodeType":"YulFunctionCall","src":"1294:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1285:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1344:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1319:24:103"},"nodeType":"YulFunctionCall","src":"1319:31:103"},"nodeType":"YulExpressionStatement","src":"1319:31:103"},{"nodeType":"YulAssignment","src":"1359:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1369:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1359:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1166:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1177:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1189:6:103","type":""}],"src":"1119:261:103"},{"body":{"nodeType":"YulBlock","src":"1463:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1509:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1518:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1526:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1511:6:103"},"nodeType":"YulFunctionCall","src":"1511:22:103"},"nodeType":"YulExpressionStatement","src":"1511:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1484:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1493:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1480:3:103"},"nodeType":"YulFunctionCall","src":"1480:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1505:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1476:3:103"},"nodeType":"YulFunctionCall","src":"1476:32:103"},"nodeType":"YulIf","src":"1473:2:103"},{"nodeType":"YulVariableDeclaration","src":"1544:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1563:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1557:5:103"},"nodeType":"YulFunctionCall","src":"1557:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1548:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1626:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1635:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1643:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1628:6:103"},"nodeType":"YulFunctionCall","src":"1628:22:103"},"nodeType":"YulExpressionStatement","src":"1628:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1595:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1616:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1609:6:103"},"nodeType":"YulFunctionCall","src":"1609:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1602:6:103"},"nodeType":"YulFunctionCall","src":"1602:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1592:2:103"},"nodeType":"YulFunctionCall","src":"1592:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1585:6:103"},"nodeType":"YulFunctionCall","src":"1585:40:103"},"nodeType":"YulIf","src":"1582:2:103"},{"nodeType":"YulAssignment","src":"1661:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1671:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1661:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1429:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1440:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1452:6:103","type":""}],"src":"1385:297:103"},{"body":{"nodeType":"YulBlock","src":"1757:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1803:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1812:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1820:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1805:6:103"},"nodeType":"YulFunctionCall","src":"1805:22:103"},"nodeType":"YulExpressionStatement","src":"1805:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1778:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1787:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1774:3:103"},"nodeType":"YulFunctionCall","src":"1774:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1799:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1770:3:103"},"nodeType":"YulFunctionCall","src":"1770:32:103"},"nodeType":"YulIf","src":"1767:2:103"},{"nodeType":"YulAssignment","src":"1838:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1861:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1848:12:103"},"nodeType":"YulFunctionCall","src":"1848:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1838:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1723:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1734:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1746:6:103","type":""}],"src":"1687:190:103"},{"body":{"nodeType":"YulBlock","src":"1969:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2015:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2024:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2032:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2017:6:103"},"nodeType":"YulFunctionCall","src":"2017:22:103"},"nodeType":"YulExpressionStatement","src":"2017:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1990:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1999:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1986:3:103"},"nodeType":"YulFunctionCall","src":"1986:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2011:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1982:3:103"},"nodeType":"YulFunctionCall","src":"1982:32:103"},"nodeType":"YulIf","src":"1979:2:103"},{"nodeType":"YulAssignment","src":"2050:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2073:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2060:12:103"},"nodeType":"YulFunctionCall","src":"2060:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2050:6:103"}]},{"nodeType":"YulAssignment","src":"2092:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2130:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:103"},"nodeType":"YulFunctionCall","src":"2115:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2102:12:103"},"nodeType":"YulFunctionCall","src":"2102:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2092:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1927:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1938:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1950:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1958:6:103","type":""}],"src":"1882:258:103"},{"body":{"nodeType":"YulBlock","src":"2245:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2291:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2300:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2308:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2293:6:103"},"nodeType":"YulFunctionCall","src":"2293:22:103"},"nodeType":"YulExpressionStatement","src":"2293:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2266:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2275:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2262:3:103"},"nodeType":"YulFunctionCall","src":"2262:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2287:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2258:3:103"},"nodeType":"YulFunctionCall","src":"2258:32:103"},"nodeType":"YulIf","src":"2255:2:103"},{"nodeType":"YulVariableDeclaration","src":"2326:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2345:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2339:5:103"},"nodeType":"YulFunctionCall","src":"2339:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2330:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2389:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2364:24:103"},"nodeType":"YulFunctionCall","src":"2364:31:103"},"nodeType":"YulExpressionStatement","src":"2364:31:103"},{"nodeType":"YulAssignment","src":"2404:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2414:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2404:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2211:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2222:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2234:6:103","type":""}],"src":"2145:280:103"},{"body":{"nodeType":"YulBlock","src":"2535:1114:103","statements":[{"body":{"nodeType":"YulBlock","src":"2581:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2590:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2598:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2583:6:103"},"nodeType":"YulFunctionCall","src":"2583:22:103"},"nodeType":"YulExpressionStatement","src":"2583:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2556:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2565:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2552:3:103"},"nodeType":"YulFunctionCall","src":"2552:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2577:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2548:3:103"},"nodeType":"YulFunctionCall","src":"2548:32:103"},"nodeType":"YulIf","src":"2545:2:103"},{"nodeType":"YulVariableDeclaration","src":"2616:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2636:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2630:5:103"},"nodeType":"YulFunctionCall","src":"2630:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2620:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2655:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2665:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2659:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2710:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2719:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2727:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2712:6:103"},"nodeType":"YulFunctionCall","src":"2712:22:103"},"nodeType":"YulExpressionStatement","src":"2712:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2698:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2706:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2695:2:103"},"nodeType":"YulFunctionCall","src":"2695:14:103"},"nodeType":"YulIf","src":"2692:2:103"},{"nodeType":"YulVariableDeclaration","src":"2745:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2759:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2770:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2755:3:103"},"nodeType":"YulFunctionCall","src":"2755:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2749:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2786:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2796:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2790:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2840:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2849:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2857:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2842:6:103"},"nodeType":"YulFunctionCall","src":"2842:22:103"},"nodeType":"YulExpressionStatement","src":"2842:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2822:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"2831:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2818:3:103"},"nodeType":"YulFunctionCall","src":"2818:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2836:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2814:3:103"},"nodeType":"YulFunctionCall","src":"2814:25:103"},"nodeType":"YulIf","src":"2811:2:103"},{"nodeType":"YulVariableDeclaration","src":"2875:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2904:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2888:15:103"},"nodeType":"YulFunctionCall","src":"2888:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2879:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2923:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2936:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2930:5:103"},"nodeType":"YulFunctionCall","src":"2930:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2916:6:103"},"nodeType":"YulFunctionCall","src":"2916:24:103"},"nodeType":"YulExpressionStatement","src":"2916:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2960:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2967:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2956:3:103"},"nodeType":"YulFunctionCall","src":"2956:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2982:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2986:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2978:3:103"},"nodeType":"YulFunctionCall","src":"2978:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2972:5:103"},"nodeType":"YulFunctionCall","src":"2972:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2949:6:103"},"nodeType":"YulFunctionCall","src":"2949:42:103"},"nodeType":"YulExpressionStatement","src":"2949:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3011:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3018:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3007:3:103"},"nodeType":"YulFunctionCall","src":"3007:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3033:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3037:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3029:3:103"},"nodeType":"YulFunctionCall","src":"3029:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3023:5:103"},"nodeType":"YulFunctionCall","src":"3023:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3000:6:103"},"nodeType":"YulFunctionCall","src":"3000:42:103"},"nodeType":"YulExpressionStatement","src":"3000:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3062:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3069:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3058:3:103"},"nodeType":"YulFunctionCall","src":"3058:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3117:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3121:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3113:3:103"},"nodeType":"YulFunctionCall","src":"3113:11:103"}],"functionName":{"name":"abi_decode_enum_BundleState_fromMemory","nodeType":"YulIdentifier","src":"3074:38:103"},"nodeType":"YulFunctionCall","src":"3074:51:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3051:6:103"},"nodeType":"YulFunctionCall","src":"3051:75:103"},"nodeType":"YulExpressionStatement","src":"3051:75:103"},{"nodeType":"YulVariableDeclaration","src":"3135:35:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3161:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3165:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3157:3:103"},"nodeType":"YulFunctionCall","src":"3157:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3151:5:103"},"nodeType":"YulFunctionCall","src":"3151:19:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3139:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3199:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3208:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3216:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3201:6:103"},"nodeType":"YulFunctionCall","src":"3201:22:103"},"nodeType":"YulExpressionStatement","src":"3201:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3185:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3195:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3182:2:103"},"nodeType":"YulFunctionCall","src":"3182:16:103"},"nodeType":"YulIf","src":"3179:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3245:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3252:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3241:3:103"},"nodeType":"YulFunctionCall","src":"3241:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3290:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3294:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3286:3:103"},"nodeType":"YulFunctionCall","src":"3286:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3305:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"3258:27:103"},"nodeType":"YulFunctionCall","src":"3258:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3234:6:103"},"nodeType":"YulFunctionCall","src":"3234:80:103"},"nodeType":"YulExpressionStatement","src":"3234:80:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3334:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3341:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3330:3:103"},"nodeType":"YulFunctionCall","src":"3330:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3357:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3361:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3353:3:103"},"nodeType":"YulFunctionCall","src":"3353:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3347:5:103"},"nodeType":"YulFunctionCall","src":"3347:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3323:6:103"},"nodeType":"YulFunctionCall","src":"3323:44:103"},"nodeType":"YulExpressionStatement","src":"3323:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3387:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3394:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3383:3:103"},"nodeType":"YulFunctionCall","src":"3383:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3410:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3414:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3406:3:103"},"nodeType":"YulFunctionCall","src":"3406:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3400:5:103"},"nodeType":"YulFunctionCall","src":"3400:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3376:6:103"},"nodeType":"YulFunctionCall","src":"3376:44:103"},"nodeType":"YulExpressionStatement","src":"3376:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3440:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3436:3:103"},"nodeType":"YulFunctionCall","src":"3436:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3463:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3467:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3459:3:103"},"nodeType":"YulFunctionCall","src":"3459:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3453:5:103"},"nodeType":"YulFunctionCall","src":"3453:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:44:103"},"nodeType":"YulExpressionStatement","src":"3429:44:103"},{"nodeType":"YulVariableDeclaration","src":"3482:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3492:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"3486:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3515:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"3522:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3511:3:103"},"nodeType":"YulFunctionCall","src":"3511:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3537:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"3541:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3533:3:103"},"nodeType":"YulFunctionCall","src":"3533:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3527:5:103"},"nodeType":"YulFunctionCall","src":"3527:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3504:6:103"},"nodeType":"YulFunctionCall","src":"3504:42:103"},"nodeType":"YulExpressionStatement","src":"3504:42:103"},{"nodeType":"YulVariableDeclaration","src":"3555:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3565:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"3559:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3588:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"3595:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3584:3:103"},"nodeType":"YulFunctionCall","src":"3584:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3610:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"3614:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3606:3:103"},"nodeType":"YulFunctionCall","src":"3606:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3600:5:103"},"nodeType":"YulFunctionCall","src":"3600:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3577:6:103"},"nodeType":"YulFunctionCall","src":"3577:42:103"},"nodeType":"YulExpressionStatement","src":"3577:42:103"},{"nodeType":"YulAssignment","src":"3628:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3638:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3628:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2501:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2512:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2524:6:103","type":""}],"src":"2430:1219:103"},{"body":{"nodeType":"YulBlock","src":"3760:320:103","statements":[{"body":{"nodeType":"YulBlock","src":"3806:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3815:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3823:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3808:6:103"},"nodeType":"YulFunctionCall","src":"3808:22:103"},"nodeType":"YulExpressionStatement","src":"3808:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3781:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3790:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3777:3:103"},"nodeType":"YulFunctionCall","src":"3777:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3802:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3773:3:103"},"nodeType":"YulFunctionCall","src":"3773:32:103"},"nodeType":"YulIf","src":"3770:2:103"},{"nodeType":"YulVariableDeclaration","src":"3841:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3868:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3855:12:103"},"nodeType":"YulFunctionCall","src":"3855:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3845:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3921:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3930:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3938:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3923:6:103"},"nodeType":"YulFunctionCall","src":"3923:22:103"},"nodeType":"YulExpressionStatement","src":"3923:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3893:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3901:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3890:2:103"},"nodeType":"YulFunctionCall","src":"3890:30:103"},"nodeType":"YulIf","src":"3887:2:103"},{"nodeType":"YulVariableDeclaration","src":"3956:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3970:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3981:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3966:3:103"},"nodeType":"YulFunctionCall","src":"3966:22:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3960:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4027:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4036:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4044:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4029:6:103"},"nodeType":"YulFunctionCall","src":"4029:22:103"},"nodeType":"YulExpressionStatement","src":"4029:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4008:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4017:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4004:3:103"},"nodeType":"YulFunctionCall","src":"4004:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4022:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4000:3:103"},"nodeType":"YulFunctionCall","src":"4000:26:103"},"nodeType":"YulIf","src":"3997:2:103"},{"nodeType":"YulAssignment","src":"4062:12:103","value":{"name":"_1","nodeType":"YulIdentifier","src":"4072:2:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4062:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3726:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3737:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3749:6:103","type":""}],"src":"3654:426:103"},{"body":{"nodeType":"YulBlock","src":"4192:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"4238:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4247:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4255:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4240:6:103"},"nodeType":"YulFunctionCall","src":"4240:22:103"},"nodeType":"YulExpressionStatement","src":"4240:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4213:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4222:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4209:3:103"},"nodeType":"YulFunctionCall","src":"4209:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4234:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4205:3:103"},"nodeType":"YulFunctionCall","src":"4205:32:103"},"nodeType":"YulIf","src":"4202:2:103"},{"nodeType":"YulVariableDeclaration","src":"4273:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4293:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4287:5:103"},"nodeType":"YulFunctionCall","src":"4287:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4277:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4312:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4322:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4316:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4367:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4376:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4384:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4369:6:103"},"nodeType":"YulFunctionCall","src":"4369:22:103"},"nodeType":"YulExpressionStatement","src":"4369:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4355:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4363:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4352:2:103"},"nodeType":"YulFunctionCall","src":"4352:14:103"},"nodeType":"YulIf","src":"4349:2:103"},{"nodeType":"YulVariableDeclaration","src":"4402:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4416:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4427:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4412:3:103"},"nodeType":"YulFunctionCall","src":"4412:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4406:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4474:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4483:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4491:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4476:6:103"},"nodeType":"YulFunctionCall","src":"4476:22:103"},"nodeType":"YulExpressionStatement","src":"4476:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4454:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4463:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4450:3:103"},"nodeType":"YulFunctionCall","src":"4450:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4468:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4446:3:103"},"nodeType":"YulFunctionCall","src":"4446:27:103"},"nodeType":"YulIf","src":"4443:2:103"},{"nodeType":"YulVariableDeclaration","src":"4509:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4538:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4522:15:103"},"nodeType":"YulFunctionCall","src":"4522:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4513:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4552:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4573:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4567:5:103"},"nodeType":"YulFunctionCall","src":"4567:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4556:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4610:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4585:24:103"},"nodeType":"YulFunctionCall","src":"4585:33:103"},"nodeType":"YulExpressionStatement","src":"4585:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4634:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"4641:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4627:6:103"},"nodeType":"YulFunctionCall","src":"4627:22:103"},"nodeType":"YulExpressionStatement","src":"4627:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4669:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4676:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4665:3:103"},"nodeType":"YulFunctionCall","src":"4665:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4691:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4695:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4687:3:103"},"nodeType":"YulFunctionCall","src":"4687:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4681:5:103"},"nodeType":"YulFunctionCall","src":"4681:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4658:6:103"},"nodeType":"YulFunctionCall","src":"4658:42:103"},"nodeType":"YulExpressionStatement","src":"4658:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4720:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4727:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4716:3:103"},"nodeType":"YulFunctionCall","src":"4716:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4779:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4783:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4775:3:103"},"nodeType":"YulFunctionCall","src":"4775:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"4732:42:103"},"nodeType":"YulFunctionCall","src":"4732:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4709:6:103"},"nodeType":"YulFunctionCall","src":"4709:79:103"},"nodeType":"YulExpressionStatement","src":"4709:79:103"},{"nodeType":"YulVariableDeclaration","src":"4797:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4823:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4827:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4819:3:103"},"nodeType":"YulFunctionCall","src":"4819:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4813:5:103"},"nodeType":"YulFunctionCall","src":"4813:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4801:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4860:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4869:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4877:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4862:6:103"},"nodeType":"YulFunctionCall","src":"4862:22:103"},"nodeType":"YulExpressionStatement","src":"4862:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4846:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4856:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4843:2:103"},"nodeType":"YulFunctionCall","src":"4843:16:103"},"nodeType":"YulIf","src":"4840:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4906:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4913:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4902:3:103"},"nodeType":"YulFunctionCall","src":"4902:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4950:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4954:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4946:3:103"},"nodeType":"YulFunctionCall","src":"4946:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4965:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"4918:27:103"},"nodeType":"YulFunctionCall","src":"4918:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4895:6:103"},"nodeType":"YulFunctionCall","src":"4895:79:103"},"nodeType":"YulExpressionStatement","src":"4895:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4994:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5001:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4990:3:103"},"nodeType":"YulFunctionCall","src":"4990:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5017:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5021:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5013:3:103"},"nodeType":"YulFunctionCall","src":"5013:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5007:5:103"},"nodeType":"YulFunctionCall","src":"5007:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4983:6:103"},"nodeType":"YulFunctionCall","src":"4983:44:103"},"nodeType":"YulExpressionStatement","src":"4983:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5047:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5054:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5043:3:103"},"nodeType":"YulFunctionCall","src":"5043:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5070:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5074:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5066:3:103"},"nodeType":"YulFunctionCall","src":"5066:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5060:5:103"},"nodeType":"YulFunctionCall","src":"5060:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5036:6:103"},"nodeType":"YulFunctionCall","src":"5036:44:103"},"nodeType":"YulExpressionStatement","src":"5036:44:103"},{"nodeType":"YulAssignment","src":"5089:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5099:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5089:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4158:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4169:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4181:6:103","type":""}],"src":"4085:1025:103"},{"body":{"nodeType":"YulBlock","src":"5220:900:103","statements":[{"body":{"nodeType":"YulBlock","src":"5266:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5275:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5283:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5268:6:103"},"nodeType":"YulFunctionCall","src":"5268:22:103"},"nodeType":"YulExpressionStatement","src":"5268:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5241:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5250:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5237:3:103"},"nodeType":"YulFunctionCall","src":"5237:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5262:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5233:3:103"},"nodeType":"YulFunctionCall","src":"5233:32:103"},"nodeType":"YulIf","src":"5230:2:103"},{"nodeType":"YulVariableDeclaration","src":"5301:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5321:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5315:5:103"},"nodeType":"YulFunctionCall","src":"5315:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5305:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5340:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5350:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5344:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5395:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5404:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5412:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5397:6:103"},"nodeType":"YulFunctionCall","src":"5397:22:103"},"nodeType":"YulExpressionStatement","src":"5397:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5383:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5391:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5380:2:103"},"nodeType":"YulFunctionCall","src":"5380:14:103"},"nodeType":"YulIf","src":"5377:2:103"},{"nodeType":"YulVariableDeclaration","src":"5430:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5444:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5455:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5440:3:103"},"nodeType":"YulFunctionCall","src":"5440:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5434:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5502:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5511:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5519:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5504:6:103"},"nodeType":"YulFunctionCall","src":"5504:22:103"},"nodeType":"YulExpressionStatement","src":"5504:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5482:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5491:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5478:3:103"},"nodeType":"YulFunctionCall","src":"5478:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"5496:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5474:3:103"},"nodeType":"YulFunctionCall","src":"5474:27:103"},"nodeType":"YulIf","src":"5471:2:103"},{"nodeType":"YulVariableDeclaration","src":"5537:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5566:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5550:15:103"},"nodeType":"YulFunctionCall","src":"5550:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5541:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5587:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5600:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5594:5:103"},"nodeType":"YulFunctionCall","src":"5594:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5580:6:103"},"nodeType":"YulFunctionCall","src":"5580:24:103"},"nodeType":"YulExpressionStatement","src":"5580:24:103"},{"nodeType":"YulVariableDeclaration","src":"5613:33:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5638:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5642:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5634:3:103"},"nodeType":"YulFunctionCall","src":"5634:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5628:5:103"},"nodeType":"YulFunctionCall","src":"5628:18:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5617:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5681:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5690:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5698:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5683:6:103"},"nodeType":"YulFunctionCall","src":"5683:22:103"},"nodeType":"YulExpressionStatement","src":"5683:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5668:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"5677:1:103","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5665:2:103"},"nodeType":"YulFunctionCall","src":"5665:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5658:6:103"},"nodeType":"YulFunctionCall","src":"5658:22:103"},"nodeType":"YulIf","src":"5655:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5727:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5734:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5723:3:103"},"nodeType":"YulFunctionCall","src":"5723:14:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"5739:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5716:6:103"},"nodeType":"YulFunctionCall","src":"5716:31:103"},"nodeType":"YulExpressionStatement","src":"5716:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5767:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5774:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5763:3:103"},"nodeType":"YulFunctionCall","src":"5763:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5789:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5793:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5785:3:103"},"nodeType":"YulFunctionCall","src":"5785:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5779:5:103"},"nodeType":"YulFunctionCall","src":"5779:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5756:6:103"},"nodeType":"YulFunctionCall","src":"5756:42:103"},"nodeType":"YulExpressionStatement","src":"5756:42:103"},{"nodeType":"YulVariableDeclaration","src":"5807:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5833:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5837:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5829:3:103"},"nodeType":"YulFunctionCall","src":"5829:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5823:5:103"},"nodeType":"YulFunctionCall","src":"5823:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5811:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5870:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5879:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5887:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5872:6:103"},"nodeType":"YulFunctionCall","src":"5872:22:103"},"nodeType":"YulExpressionStatement","src":"5872:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5856:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5866:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5853:2:103"},"nodeType":"YulFunctionCall","src":"5853:16:103"},"nodeType":"YulIf","src":"5850:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5916:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5923:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5912:3:103"},"nodeType":"YulFunctionCall","src":"5912:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5960:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5964:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5956:3:103"},"nodeType":"YulFunctionCall","src":"5956:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5975:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"5928:27:103"},"nodeType":"YulFunctionCall","src":"5928:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5905:6:103"},"nodeType":"YulFunctionCall","src":"5905:79:103"},"nodeType":"YulExpressionStatement","src":"5905:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6004:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6011:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6000:3:103"},"nodeType":"YulFunctionCall","src":"6000:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6027:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6031:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6023:3:103"},"nodeType":"YulFunctionCall","src":"6023:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6017:5:103"},"nodeType":"YulFunctionCall","src":"6017:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5993:6:103"},"nodeType":"YulFunctionCall","src":"5993:44:103"},"nodeType":"YulExpressionStatement","src":"5993:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6057:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6064:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6053:3:103"},"nodeType":"YulFunctionCall","src":"6053:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6080:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6084:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6076:3:103"},"nodeType":"YulFunctionCall","src":"6076:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6070:5:103"},"nodeType":"YulFunctionCall","src":"6070:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6046:6:103"},"nodeType":"YulFunctionCall","src":"6046:44:103"},"nodeType":"YulExpressionStatement","src":"6046:44:103"},{"nodeType":"YulAssignment","src":"6099:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6109:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6099:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5186:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5197:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5209:6:103","type":""}],"src":"5115:1005:103"},{"body":{"nodeType":"YulBlock","src":"6230:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"6240:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6250:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6244:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6298:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6307:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6315:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6300:6:103"},"nodeType":"YulFunctionCall","src":"6300:22:103"},"nodeType":"YulExpressionStatement","src":"6300:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6273:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6282:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6269:3:103"},"nodeType":"YulFunctionCall","src":"6269:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6294:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6265:3:103"},"nodeType":"YulFunctionCall","src":"6265:32:103"},"nodeType":"YulIf","src":"6262:2:103"},{"nodeType":"YulVariableDeclaration","src":"6333:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6362:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6346:15:103"},"nodeType":"YulFunctionCall","src":"6346:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6337:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6381:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6431:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"6388:42:103"},"nodeType":"YulFunctionCall","src":"6388:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6374:6:103"},"nodeType":"YulFunctionCall","src":"6374:68:103"},"nodeType":"YulExpressionStatement","src":"6374:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6462:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6469:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6458:3:103"},"nodeType":"YulFunctionCall","src":"6458:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6484:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6495:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6480:3:103"},"nodeType":"YulFunctionCall","src":"6480:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6474:5:103"},"nodeType":"YulFunctionCall","src":"6474:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6451:6:103"},"nodeType":"YulFunctionCall","src":"6451:49:103"},"nodeType":"YulExpressionStatement","src":"6451:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6520:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6527:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6516:3:103"},"nodeType":"YulFunctionCall","src":"6516:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6553:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6538:3:103"},"nodeType":"YulFunctionCall","src":"6538:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6532:5:103"},"nodeType":"YulFunctionCall","src":"6532:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6509:6:103"},"nodeType":"YulFunctionCall","src":"6509:49:103"},"nodeType":"YulExpressionStatement","src":"6509:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6578:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6585:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6574:3:103"},"nodeType":"YulFunctionCall","src":"6574:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6600:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6611:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6596:3:103"},"nodeType":"YulFunctionCall","src":"6596:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6590:5:103"},"nodeType":"YulFunctionCall","src":"6590:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6567:6:103"},"nodeType":"YulFunctionCall","src":"6567:49:103"},"nodeType":"YulExpressionStatement","src":"6567:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6636:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6643:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6632:3:103"},"nodeType":"YulFunctionCall","src":"6632:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6659:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6670:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6655:3:103"},"nodeType":"YulFunctionCall","src":"6655:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6649:5:103"},"nodeType":"YulFunctionCall","src":"6649:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6625:6:103"},"nodeType":"YulFunctionCall","src":"6625:51:103"},"nodeType":"YulExpressionStatement","src":"6625:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6696:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6703:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6692:3:103"},"nodeType":"YulFunctionCall","src":"6692:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6730:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6715:3:103"},"nodeType":"YulFunctionCall","src":"6715:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6709:5:103"},"nodeType":"YulFunctionCall","src":"6709:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6685:6:103"},"nodeType":"YulFunctionCall","src":"6685:51:103"},"nodeType":"YulExpressionStatement","src":"6685:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6756:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6763:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6752:3:103"},"nodeType":"YulFunctionCall","src":"6752:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6779:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6790:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6775:3:103"},"nodeType":"YulFunctionCall","src":"6775:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6769:5:103"},"nodeType":"YulFunctionCall","src":"6769:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6745:6:103"},"nodeType":"YulFunctionCall","src":"6745:51:103"},"nodeType":"YulExpressionStatement","src":"6745:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6816:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6823:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6812:3:103"},"nodeType":"YulFunctionCall","src":"6812:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6839:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6850:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6835:3:103"},"nodeType":"YulFunctionCall","src":"6835:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6829:5:103"},"nodeType":"YulFunctionCall","src":"6829:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6805:6:103"},"nodeType":"YulFunctionCall","src":"6805:51:103"},"nodeType":"YulExpressionStatement","src":"6805:51:103"},{"nodeType":"YulVariableDeclaration","src":"6865:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6875:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6869:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6898:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6905:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6894:3:103"},"nodeType":"YulFunctionCall","src":"6894:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6920:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6931:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6916:3:103"},"nodeType":"YulFunctionCall","src":"6916:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6910:5:103"},"nodeType":"YulFunctionCall","src":"6910:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6887:6:103"},"nodeType":"YulFunctionCall","src":"6887:49:103"},"nodeType":"YulExpressionStatement","src":"6887:49:103"},{"nodeType":"YulAssignment","src":"6945:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6955:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6945:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6196:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6207:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6219:6:103","type":""}],"src":"6125:841:103"},{"body":{"nodeType":"YulBlock","src":"7041:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"7087:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7096:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7104:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7089:6:103"},"nodeType":"YulFunctionCall","src":"7089:22:103"},"nodeType":"YulExpressionStatement","src":"7089:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7062:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7071:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7058:3:103"},"nodeType":"YulFunctionCall","src":"7058:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7083:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7054:3:103"},"nodeType":"YulFunctionCall","src":"7054:32:103"},"nodeType":"YulIf","src":"7051:2:103"},{"nodeType":"YulAssignment","src":"7122:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7145:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7132:12:103"},"nodeType":"YulFunctionCall","src":"7132:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7122:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7007:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7018:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7030:6:103","type":""}],"src":"6971:190:103"},{"body":{"nodeType":"YulBlock","src":"7247:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"7293:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7302:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7310:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7295:6:103"},"nodeType":"YulFunctionCall","src":"7295:22:103"},"nodeType":"YulExpressionStatement","src":"7295:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7268:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7277:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7264:3:103"},"nodeType":"YulFunctionCall","src":"7264:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7289:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7260:3:103"},"nodeType":"YulFunctionCall","src":"7260:32:103"},"nodeType":"YulIf","src":"7257:2:103"},{"nodeType":"YulAssignment","src":"7328:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7344:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7338:5:103"},"nodeType":"YulFunctionCall","src":"7338:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7328:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7213:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7224:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7236:6:103","type":""}],"src":"7166:194:103"},{"body":{"nodeType":"YulBlock","src":"7452:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"7498:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7507:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7515:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7500:6:103"},"nodeType":"YulFunctionCall","src":"7500:22:103"},"nodeType":"YulExpressionStatement","src":"7500:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7473:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7482:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7469:3:103"},"nodeType":"YulFunctionCall","src":"7469:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7494:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7465:3:103"},"nodeType":"YulFunctionCall","src":"7465:32:103"},"nodeType":"YulIf","src":"7462:2:103"},{"nodeType":"YulAssignment","src":"7533:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7556:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7543:12:103"},"nodeType":"YulFunctionCall","src":"7543:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7533:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"7575:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7616:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7601:3:103"},"nodeType":"YulFunctionCall","src":"7601:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7588:12:103"},"nodeType":"YulFunctionCall","src":"7588:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7579:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7654:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7629:24:103"},"nodeType":"YulFunctionCall","src":"7629:31:103"},"nodeType":"YulExpressionStatement","src":"7629:31:103"},{"nodeType":"YulAssignment","src":"7669:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7679:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7669:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7410:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7421:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7433:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7441:6:103","type":""}],"src":"7365:325:103"},{"body":{"nodeType":"YulBlock","src":"7782:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"7828:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7837:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7845:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7830:6:103"},"nodeType":"YulFunctionCall","src":"7830:22:103"},"nodeType":"YulExpressionStatement","src":"7830:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7803:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7812:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7799:3:103"},"nodeType":"YulFunctionCall","src":"7799:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7824:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7795:3:103"},"nodeType":"YulFunctionCall","src":"7795:32:103"},"nodeType":"YulIf","src":"7792:2:103"},{"nodeType":"YulAssignment","src":"7863:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7886:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7873:12:103"},"nodeType":"YulFunctionCall","src":"7873:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7863:6:103"}]},{"nodeType":"YulAssignment","src":"7905:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7932:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7943:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7928:3:103"},"nodeType":"YulFunctionCall","src":"7928:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7915:12:103"},"nodeType":"YulFunctionCall","src":"7915:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7905:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7740:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7751:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7763:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7771:6:103","type":""}],"src":"7695:258:103"},{"body":{"nodeType":"YulBlock","src":"8098:706:103","statements":[{"body":{"nodeType":"YulBlock","src":"8145:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8154:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8162:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8147:6:103"},"nodeType":"YulFunctionCall","src":"8147:22:103"},"nodeType":"YulExpressionStatement","src":"8147:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8115:3:103"},"nodeType":"YulFunctionCall","src":"8115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8140:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8111:3:103"},"nodeType":"YulFunctionCall","src":"8111:33:103"},"nodeType":"YulIf","src":"8108:2:103"},{"nodeType":"YulAssignment","src":"8180:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8203:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8190:12:103"},"nodeType":"YulFunctionCall","src":"8190:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8180:6:103"}]},{"nodeType":"YulAssignment","src":"8222:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8260:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8245:3:103"},"nodeType":"YulFunctionCall","src":"8245:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8232:12:103"},"nodeType":"YulFunctionCall","src":"8232:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8222:6:103"}]},{"nodeType":"YulAssignment","src":"8273:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8300:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8311:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8296:3:103"},"nodeType":"YulFunctionCall","src":"8296:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8283:12:103"},"nodeType":"YulFunctionCall","src":"8283:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8273:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"8324:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8355:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8366:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8351:3:103"},"nodeType":"YulFunctionCall","src":"8351:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8338:12:103"},"nodeType":"YulFunctionCall","src":"8338:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8328:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8379:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8389:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8383:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8434:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8443:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8451:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8436:6:103"},"nodeType":"YulFunctionCall","src":"8436:22:103"},"nodeType":"YulExpressionStatement","src":"8436:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8422:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8430:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8419:2:103"},"nodeType":"YulFunctionCall","src":"8419:14:103"},"nodeType":"YulIf","src":"8416:2:103"},{"nodeType":"YulVariableDeclaration","src":"8469:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8483:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"8494:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8479:3:103"},"nodeType":"YulFunctionCall","src":"8479:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8473:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8549:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8558:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8566:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8551:6:103"},"nodeType":"YulFunctionCall","src":"8551:22:103"},"nodeType":"YulExpressionStatement","src":"8551:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8528:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8532:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8524:3:103"},"nodeType":"YulFunctionCall","src":"8524:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8539:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8520:3:103"},"nodeType":"YulFunctionCall","src":"8520:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8513:6:103"},"nodeType":"YulFunctionCall","src":"8513:35:103"},"nodeType":"YulIf","src":"8510:2:103"},{"nodeType":"YulVariableDeclaration","src":"8584:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8611:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8598:12:103"},"nodeType":"YulFunctionCall","src":"8598:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8588:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8641:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8650:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8658:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8643:6:103"},"nodeType":"YulFunctionCall","src":"8643:22:103"},"nodeType":"YulExpressionStatement","src":"8643:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8629:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8637:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8626:2:103"},"nodeType":"YulFunctionCall","src":"8626:14:103"},"nodeType":"YulIf","src":"8623:2:103"},{"body":{"nodeType":"YulBlock","src":"8717:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8726:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8734:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8719:6:103"},"nodeType":"YulFunctionCall","src":"8719:22:103"},"nodeType":"YulExpressionStatement","src":"8719:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8690:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"8694:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8686:3:103"},"nodeType":"YulFunctionCall","src":"8686:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"8703:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8682:3:103"},"nodeType":"YulFunctionCall","src":"8682:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8708:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8679:2:103"},"nodeType":"YulFunctionCall","src":"8679:37:103"},"nodeType":"YulIf","src":"8676:2:103"},{"nodeType":"YulAssignment","src":"8752:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8766:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8770:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8762:3:103"},"nodeType":"YulFunctionCall","src":"8762:11:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8752:6:103"}]},{"nodeType":"YulAssignment","src":"8782:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"8792:6:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"8782:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8032:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8043:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8055:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8063:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8071:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8079:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8087:6:103","type":""}],"src":"7958:846:103"},{"body":{"nodeType":"YulBlock","src":"8858:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8868:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8888:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8882:5:103"},"nodeType":"YulFunctionCall","src":"8882:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8872:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8910:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"8915:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8903:6:103"},"nodeType":"YulFunctionCall","src":"8903:19:103"},"nodeType":"YulExpressionStatement","src":"8903:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8957:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8964:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8953:3:103"},"nodeType":"YulFunctionCall","src":"8953:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8975:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"8980:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8971:3:103"},"nodeType":"YulFunctionCall","src":"8971:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"8987:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"8931:21:103"},"nodeType":"YulFunctionCall","src":"8931:63:103"},"nodeType":"YulExpressionStatement","src":"8931:63:103"},{"nodeType":"YulAssignment","src":"9003:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9018:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"9031:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9039:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9027:3:103"},"nodeType":"YulFunctionCall","src":"9027:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9048:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9044:3:103"},"nodeType":"YulFunctionCall","src":"9044:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9023:3:103"},"nodeType":"YulFunctionCall","src":"9023:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9014:3:103"},"nodeType":"YulFunctionCall","src":"9014:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"9055:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9010:3:103"},"nodeType":"YulFunctionCall","src":"9010:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9003:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8835:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8842:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8850:3:103","type":""}],"src":"8809:257:103"},{"body":{"nodeType":"YulBlock","src":"9208:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"9218:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9238:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9232:5:103"},"nodeType":"YulFunctionCall","src":"9232:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9222:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9280:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9288:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9276:3:103"},"nodeType":"YulFunctionCall","src":"9276:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"9295:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"9300:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9254:21:103"},"nodeType":"YulFunctionCall","src":"9254:53:103"},"nodeType":"YulExpressionStatement","src":"9254:53:103"},{"nodeType":"YulAssignment","src":"9316:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9327:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"9332:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9323:3:103"},"nodeType":"YulFunctionCall","src":"9323:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9316:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9184:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9189:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9200:3:103","type":""}],"src":"9071:274:103"},{"body":{"nodeType":"YulBlock","src":"9451:102:103","statements":[{"nodeType":"YulAssignment","src":"9461:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9473:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9484:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9469:3:103"},"nodeType":"YulFunctionCall","src":"9469:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9461:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9503:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9518:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9534:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9539:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9530:3:103"},"nodeType":"YulFunctionCall","src":"9530:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9543:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9526:3:103"},"nodeType":"YulFunctionCall","src":"9526:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9514:3:103"},"nodeType":"YulFunctionCall","src":"9514:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9496:6:103"},"nodeType":"YulFunctionCall","src":"9496:51:103"},"nodeType":"YulExpressionStatement","src":"9496:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9420:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9431:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9442:4:103","type":""}],"src":"9350:203:103"},{"body":{"nodeType":"YulBlock","src":"9687:175:103","statements":[{"nodeType":"YulAssignment","src":"9697:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9720:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9705:3:103"},"nodeType":"YulFunctionCall","src":"9705:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9697:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"9732:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9750:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9755:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9746:3:103"},"nodeType":"YulFunctionCall","src":"9746:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9759:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9742:3:103"},"nodeType":"YulFunctionCall","src":"9742:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9736:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9777:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9792:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9800:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9788:3:103"},"nodeType":"YulFunctionCall","src":"9788:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9770:6:103"},"nodeType":"YulFunctionCall","src":"9770:34:103"},"nodeType":"YulExpressionStatement","src":"9770:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9824:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9835:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9820:3:103"},"nodeType":"YulFunctionCall","src":"9820:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9844:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9852:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9840:3:103"},"nodeType":"YulFunctionCall","src":"9840:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9813:6:103"},"nodeType":"YulFunctionCall","src":"9813:43:103"},"nodeType":"YulExpressionStatement","src":"9813:43:103"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9648:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9659:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9667:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9678:4:103","type":""}],"src":"9558:304:103"},{"body":{"nodeType":"YulBlock","src":"10024:218:103","statements":[{"nodeType":"YulAssignment","src":"10034:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10046:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10057:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10042:3:103"},"nodeType":"YulFunctionCall","src":"10042:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10034:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"10069:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10087:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10092:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10083:3:103"},"nodeType":"YulFunctionCall","src":"10083:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10096:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10079:3:103"},"nodeType":"YulFunctionCall","src":"10079:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10073:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10114:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10129:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10137:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10125:3:103"},"nodeType":"YulFunctionCall","src":"10125:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10107:6:103"},"nodeType":"YulFunctionCall","src":"10107:34:103"},"nodeType":"YulExpressionStatement","src":"10107:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10172:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10157:3:103"},"nodeType":"YulFunctionCall","src":"10157:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10181:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10189:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10177:3:103"},"nodeType":"YulFunctionCall","src":"10177:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10150:6:103"},"nodeType":"YulFunctionCall","src":"10150:43:103"},"nodeType":"YulExpressionStatement","src":"10150:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10213:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10224:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10209:3:103"},"nodeType":"YulFunctionCall","src":"10209:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10229:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10202:6:103"},"nodeType":"YulFunctionCall","src":"10202:34:103"},"nodeType":"YulExpressionStatement","src":"10202:34:103"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9977:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9988:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9996:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10004:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10015:4:103","type":""}],"src":"9867:375:103"},{"body":{"nodeType":"YulBlock","src":"10439:164:103","statements":[{"nodeType":"YulAssignment","src":"10449:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10461:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10472:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10457:3:103"},"nodeType":"YulFunctionCall","src":"10457:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10449:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10491:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10506:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10522:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10527:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10518:3:103"},"nodeType":"YulFunctionCall","src":"10518:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10531:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10514:3:103"},"nodeType":"YulFunctionCall","src":"10514:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10502:3:103"},"nodeType":"YulFunctionCall","src":"10502:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10484:6:103"},"nodeType":"YulFunctionCall","src":"10484:51:103"},"nodeType":"YulExpressionStatement","src":"10484:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10555:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10566:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10551:3:103"},"nodeType":"YulFunctionCall","src":"10551:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10571:25:103","type":"","value":"InstanceOperatorService"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10544:6:103"},"nodeType":"YulFunctionCall","src":"10544:53:103"},"nodeType":"YulExpressionStatement","src":"10544:53:103"}]},"name":"abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10408:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10419:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10430:4:103","type":""}],"src":"10247:356:103"},{"body":{"nodeType":"YulBlock","src":"10703:92:103","statements":[{"nodeType":"YulAssignment","src":"10713:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10736:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10721:3:103"},"nodeType":"YulFunctionCall","src":"10721:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10713:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10755:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10780:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10773:6:103"},"nodeType":"YulFunctionCall","src":"10773:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10766:6:103"},"nodeType":"YulFunctionCall","src":"10766:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10748:6:103"},"nodeType":"YulFunctionCall","src":"10748:41:103"},"nodeType":"YulExpressionStatement","src":"10748:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10672:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10683:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10694:4:103","type":""}],"src":"10608:187:103"},{"body":{"nodeType":"YulBlock","src":"10951:234:103","statements":[{"nodeType":"YulAssignment","src":"10961:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10973:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10984:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10969:3:103"},"nodeType":"YulFunctionCall","src":"10969:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10961:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11003:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11028:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11021:6:103"},"nodeType":"YulFunctionCall","src":"11021:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11014:6:103"},"nodeType":"YulFunctionCall","src":"11014:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10996:6:103"},"nodeType":"YulFunctionCall","src":"10996:41:103"},"nodeType":"YulExpressionStatement","src":"10996:41:103"},{"nodeType":"YulVariableDeclaration","src":"11046:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11064:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11069:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11060:3:103"},"nodeType":"YulFunctionCall","src":"11060:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"11073:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11056:3:103"},"nodeType":"YulFunctionCall","src":"11056:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11050:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11095:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11106:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11091:3:103"},"nodeType":"YulFunctionCall","src":"11091:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11115:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"11123:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11111:3:103"},"nodeType":"YulFunctionCall","src":"11111:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11084:6:103"},"nodeType":"YulFunctionCall","src":"11084:43:103"},"nodeType":"YulExpressionStatement","src":"11084:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11147:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11158:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11143:3:103"},"nodeType":"YulFunctionCall","src":"11143:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11167:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"11175:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11163:3:103"},"nodeType":"YulFunctionCall","src":"11163:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11136:6:103"},"nodeType":"YulFunctionCall","src":"11136:43:103"},"nodeType":"YulExpressionStatement","src":"11136:43:103"}]},"name":"abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10904:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10915:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10923:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10931:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10942:4:103","type":""}],"src":"10800:385:103"},{"body":{"nodeType":"YulBlock","src":"11359:200:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11376:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11401:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11394:6:103"},"nodeType":"YulFunctionCall","src":"11394:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11387:6:103"},"nodeType":"YulFunctionCall","src":"11387:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11369:6:103"},"nodeType":"YulFunctionCall","src":"11369:41:103"},"nodeType":"YulExpressionStatement","src":"11369:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11430:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11441:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11426:3:103"},"nodeType":"YulFunctionCall","src":"11426:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11446:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11419:6:103"},"nodeType":"YulFunctionCall","src":"11419:34:103"},"nodeType":"YulExpressionStatement","src":"11419:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11473:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11484:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11469:3:103"},"nodeType":"YulFunctionCall","src":"11469:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11489:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11462:6:103"},"nodeType":"YulFunctionCall","src":"11462:30:103"},"nodeType":"YulExpressionStatement","src":"11462:30:103"},{"nodeType":"YulAssignment","src":"11501:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11526:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11538:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11549:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11534:3:103"},"nodeType":"YulFunctionCall","src":"11534:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11509:16:103"},"nodeType":"YulFunctionCall","src":"11509:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11501:4:103"}]}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11312:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11323:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11331:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11339:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11350:4:103","type":""}],"src":"11190:369:103"},{"body":{"nodeType":"YulBlock","src":"11715:178:103","statements":[{"nodeType":"YulAssignment","src":"11725:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11737:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11748:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11733:3:103"},"nodeType":"YulFunctionCall","src":"11733:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11725:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11767:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11792:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11785:6:103"},"nodeType":"YulFunctionCall","src":"11785:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11778:6:103"},"nodeType":"YulFunctionCall","src":"11778:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11760:6:103"},"nodeType":"YulFunctionCall","src":"11760:41:103"},"nodeType":"YulExpressionStatement","src":"11760:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11821:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11832:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11817:3:103"},"nodeType":"YulFunctionCall","src":"11817:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11837:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11810:6:103"},"nodeType":"YulFunctionCall","src":"11810:34:103"},"nodeType":"YulExpressionStatement","src":"11810:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11864:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11875:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11860:3:103"},"nodeType":"YulFunctionCall","src":"11860:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"11880:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11853:6:103"},"nodeType":"YulFunctionCall","src":"11853:34:103"},"nodeType":"YulExpressionStatement","src":"11853:34:103"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11668:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11679:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11687:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11695:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11706:4:103","type":""}],"src":"11564:329:103"},{"body":{"nodeType":"YulBlock","src":"11999:76:103","statements":[{"nodeType":"YulAssignment","src":"12009:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12021:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12032:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12017:3:103"},"nodeType":"YulFunctionCall","src":"12017:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12009:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12051:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12062:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12044:6:103"},"nodeType":"YulFunctionCall","src":"12044:25:103"},"nodeType":"YulExpressionStatement","src":"12044:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11968:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11979:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11990:4:103","type":""}],"src":"11898:177:103"},{"body":{"nodeType":"YulBlock","src":"12209:119:103","statements":[{"nodeType":"YulAssignment","src":"12219:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12231:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12242:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12227:3:103"},"nodeType":"YulFunctionCall","src":"12227:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12219:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12261:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12272:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12254:6:103"},"nodeType":"YulFunctionCall","src":"12254:25:103"},"nodeType":"YulExpressionStatement","src":"12254:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12299:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12310:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12295:3:103"},"nodeType":"YulFunctionCall","src":"12295:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"12315:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12288:6:103"},"nodeType":"YulFunctionCall","src":"12288:34:103"},"nodeType":"YulExpressionStatement","src":"12288:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12170:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12181:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12189:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12200:4:103","type":""}],"src":"12080:248:103"},{"body":{"nodeType":"YulBlock","src":"12449:102:103","statements":[{"nodeType":"YulAssignment","src":"12459:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12471:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12482:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12467:3:103"},"nodeType":"YulFunctionCall","src":"12467:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12459:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12501:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12516:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12532:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12537:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12528:3:103"},"nodeType":"YulFunctionCall","src":"12528:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"12541:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12524:3:103"},"nodeType":"YulFunctionCall","src":"12524:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12512:3:103"},"nodeType":"YulFunctionCall","src":"12512:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12494:6:103"},"nodeType":"YulFunctionCall","src":"12494:51:103"},"nodeType":"YulExpressionStatement","src":"12494:51:103"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$8831__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12418:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12429:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12440:4:103","type":""}],"src":"12333:218:103"},{"body":{"nodeType":"YulBlock","src":"12663:87:103","statements":[{"nodeType":"YulAssignment","src":"12673:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12685:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12696:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12681:3:103"},"nodeType":"YulFunctionCall","src":"12681:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12673:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12715:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12730:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12738:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12726:3:103"},"nodeType":"YulFunctionCall","src":"12726:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12708:6:103"},"nodeType":"YulFunctionCall","src":"12708:36:103"},"nodeType":"YulExpressionStatement","src":"12708:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12632:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12643:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12654:4:103","type":""}],"src":"12556:194:103"},{"body":{"nodeType":"YulBlock","src":"12929:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12946:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12957:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12939:6:103"},"nodeType":"YulFunctionCall","src":"12939:21:103"},"nodeType":"YulExpressionStatement","src":"12939:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12980:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12991:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12976:3:103"},"nodeType":"YulFunctionCall","src":"12976:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12996:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12969:6:103"},"nodeType":"YulFunctionCall","src":"12969:30:103"},"nodeType":"YulExpressionStatement","src":"12969:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13030:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13015:3:103"},"nodeType":"YulFunctionCall","src":"13015:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13035:27:103","type":"","value":"ERROR:TRS-022:NOT_PRODUCT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13008:6:103"},"nodeType":"YulFunctionCall","src":"13008:55:103"},"nodeType":"YulExpressionStatement","src":"13008:55:103"},{"nodeType":"YulAssignment","src":"13072:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13095:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13080:3:103"},"nodeType":"YulFunctionCall","src":"13080:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13072:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_002d2121ea321e9dc7af161d487859644848c89f417a8b4f6cd3c64e88216019__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12906:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12920:4:103","type":""}],"src":"12755:349:103"},{"body":{"nodeType":"YulBlock","src":"13283:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13300:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13311:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13293:6:103"},"nodeType":"YulFunctionCall","src":"13293:21:103"},"nodeType":"YulExpressionStatement","src":"13293:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13334:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13345:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13330:3:103"},"nodeType":"YulFunctionCall","src":"13330:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13350:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13323:6:103"},"nodeType":"YulFunctionCall","src":"13323:30:103"},"nodeType":"YulExpressionStatement","src":"13323:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13373:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13384:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13369:3:103"},"nodeType":"YulFunctionCall","src":"13369:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13389:34:103","type":"","value":"ERROR:TRS-015:WALLET_ADDRESS_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13362:6:103"},"nodeType":"YulFunctionCall","src":"13362:62:103"},"nodeType":"YulExpressionStatement","src":"13362:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13444:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13455:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13440:3:103"},"nodeType":"YulFunctionCall","src":"13440:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13460:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13433:6:103"},"nodeType":"YulFunctionCall","src":"13433:31:103"},"nodeType":"YulExpressionStatement","src":"13433:31:103"},{"nodeType":"YulAssignment","src":"13473:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13485:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13496:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13481:3:103"},"nodeType":"YulFunctionCall","src":"13481:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13473:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_023e61203cb0be5307b17a41d4b69495f70210073b02aa48d79a82beee2c037a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13260:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13274:4:103","type":""}],"src":"13109:397:103"},{"body":{"nodeType":"YulBlock","src":"13685:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13702:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13713:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13695:6:103"},"nodeType":"YulFunctionCall","src":"13695:21:103"},"nodeType":"YulExpressionStatement","src":"13695:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13736:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13747:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13732:3:103"},"nodeType":"YulFunctionCall","src":"13732:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13752:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13725:6:103"},"nodeType":"YulFunctionCall","src":"13725:30:103"},"nodeType":"YulExpressionStatement","src":"13725:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13775:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13786:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13771:3:103"},"nodeType":"YulFunctionCall","src":"13771:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13791:34:103","type":"","value":"ERROR:TRS-002:RISKPOOL_WALLET_UN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13764:6:103"},"nodeType":"YulFunctionCall","src":"13764:62:103"},"nodeType":"YulExpressionStatement","src":"13764:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13846:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13857:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13842:3:103"},"nodeType":"YulFunctionCall","src":"13842:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13862:9:103","type":"","value":"DEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13835:6:103"},"nodeType":"YulFunctionCall","src":"13835:37:103"},"nodeType":"YulExpressionStatement","src":"13835:37:103"},{"nodeType":"YulAssignment","src":"13881:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13893:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13904:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13889:3:103"},"nodeType":"YulFunctionCall","src":"13889:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13881:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0426c9e38488694ef5fcd21b7d01546e3f09d04e0204867e9068633df2d21047__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13662:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13676:4:103","type":""}],"src":"13511:403:103"},{"body":{"nodeType":"YulBlock","src":"14093:170:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14121:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14103:6:103"},"nodeType":"YulFunctionCall","src":"14103:21:103"},"nodeType":"YulExpressionStatement","src":"14103:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14144:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14155:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14140:3:103"},"nodeType":"YulFunctionCall","src":"14140:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14160:2:103","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14133:6:103"},"nodeType":"YulFunctionCall","src":"14133:30:103"},"nodeType":"YulExpressionStatement","src":"14133:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14183:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14194:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14179:3:103"},"nodeType":"YulFunctionCall","src":"14179:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14199:22:103","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14172:6:103"},"nodeType":"YulFunctionCall","src":"14172:50:103"},"nodeType":"YulExpressionStatement","src":"14172:50:103"},{"nodeType":"YulAssignment","src":"14231:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14243:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14254:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14239:3:103"},"nodeType":"YulFunctionCall","src":"14239:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14231:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14070:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14084:4:103","type":""}],"src":"13919:344:103"},{"body":{"nodeType":"YulBlock","src":"14442:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14470:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14452:6:103"},"nodeType":"YulFunctionCall","src":"14452:21:103"},"nodeType":"YulExpressionStatement","src":"14452:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14493:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14504:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14489:3:103"},"nodeType":"YulFunctionCall","src":"14489:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14509:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14482:6:103"},"nodeType":"YulFunctionCall","src":"14482:30:103"},"nodeType":"YulExpressionStatement","src":"14482:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14532:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14543:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14528:3:103"},"nodeType":"YulFunctionCall","src":"14528:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14548:34:103","type":"","value":"ERROR:TRS-070:NOT_PRODUCT_OR_RIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14521:6:103"},"nodeType":"YulFunctionCall","src":"14521:62:103"},"nodeType":"YulExpressionStatement","src":"14521:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14614:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14599:3:103"},"nodeType":"YulFunctionCall","src":"14599:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14619:7:103","type":"","value":"KPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14592:6:103"},"nodeType":"YulFunctionCall","src":"14592:35:103"},"nodeType":"YulExpressionStatement","src":"14592:35:103"},{"nodeType":"YulAssignment","src":"14636:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14648:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14659:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14644:3:103"},"nodeType":"YulFunctionCall","src":"14644:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14636:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0df3c78e93cd9b7c9045f326b01178dc9332f2f6498582ce9cff7c8821aa1d20__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14419:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14433:4:103","type":""}],"src":"14268:401:103"},{"body":{"nodeType":"YulBlock","src":"14848:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14876:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14858:6:103"},"nodeType":"YulFunctionCall","src":"14858:21:103"},"nodeType":"YulExpressionStatement","src":"14858:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14899:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14910:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14895:3:103"},"nodeType":"YulFunctionCall","src":"14895:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14915:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14888:6:103"},"nodeType":"YulFunctionCall","src":"14888:30:103"},"nodeType":"YulExpressionStatement","src":"14888:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14938:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14949:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14934:3:103"},"nodeType":"YulFunctionCall","src":"14934:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14954:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14927:6:103"},"nodeType":"YulFunctionCall","src":"14927:62:103"},"nodeType":"YulExpressionStatement","src":"14927:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15020:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15005:3:103"},"nodeType":"YulFunctionCall","src":"15005:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15025:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14998:6:103"},"nodeType":"YulFunctionCall","src":"14998:35:103"},"nodeType":"YulExpressionStatement","src":"14998:35:103"},{"nodeType":"YulAssignment","src":"15042:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15054:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15065:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15050:3:103"},"nodeType":"YulFunctionCall","src":"15050:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15042:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14825:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14839:4:103","type":""}],"src":"14674:401:103"},{"body":{"nodeType":"YulBlock","src":"15254:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15264:6:103"},"nodeType":"YulFunctionCall","src":"15264:21:103"},"nodeType":"YulExpressionStatement","src":"15264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15301:3:103"},"nodeType":"YulFunctionCall","src":"15301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15321:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15294:6:103"},"nodeType":"YulFunctionCall","src":"15294:30:103"},"nodeType":"YulExpressionStatement","src":"15294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15340:3:103"},"nodeType":"YulFunctionCall","src":"15340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15360:34:103","type":"","value":"ERROR:TRS-005:NOT_RISKPOOL_SERVI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15333:6:103"},"nodeType":"YulFunctionCall","src":"15333:62:103"},"nodeType":"YulExpressionStatement","src":"15333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15411:3:103"},"nodeType":"YulFunctionCall","src":"15411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15431:4:103","type":"","value":"CE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15404:6:103"},"nodeType":"YulFunctionCall","src":"15404:32:103"},"nodeType":"YulExpressionStatement","src":"15404:32:103"},{"nodeType":"YulAssignment","src":"15445:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15457:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15468:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15453:3:103"},"nodeType":"YulFunctionCall","src":"15453:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15445:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1c57f116b2d23b472e497701710f194d47bb249cf3bdd21579f4ccec35ce6514__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15245:4:103","type":""}],"src":"15080:398:103"},{"body":{"nodeType":"YulBlock","src":"15657:240:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15674:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15685:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15667:6:103"},"nodeType":"YulFunctionCall","src":"15667:21:103"},"nodeType":"YulExpressionStatement","src":"15667:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15708:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15719:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15704:3:103"},"nodeType":"YulFunctionCall","src":"15704:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15724:2:103","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15697:6:103"},"nodeType":"YulFunctionCall","src":"15697:30:103"},"nodeType":"YulExpressionStatement","src":"15697:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15747:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15758:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15743:3:103"},"nodeType":"YulFunctionCall","src":"15743:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15763:34:103","type":"","value":"ERROR:TRS-053:CAPITAL_TRANSFER_A"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15736:6:103"},"nodeType":"YulFunctionCall","src":"15736:62:103"},"nodeType":"YulExpressionStatement","src":"15736:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15829:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15814:3:103"},"nodeType":"YulFunctionCall","src":"15814:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15834:20:103","type":"","value":"LLOWANCE_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15807:6:103"},"nodeType":"YulFunctionCall","src":"15807:48:103"},"nodeType":"YulExpressionStatement","src":"15807:48:103"},{"nodeType":"YulAssignment","src":"15864:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15876:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15887:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15872:3:103"},"nodeType":"YulFunctionCall","src":"15872:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15864:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_211791b6640da73c43884462143c95a88a879b6ed92d3aff6ce166c1d61a88f2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15634:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15648:4:103","type":""}],"src":"15483:414:103"},{"body":{"nodeType":"YulBlock","src":"16076:176:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16093:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16104:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16086:6:103"},"nodeType":"YulFunctionCall","src":"16086:21:103"},"nodeType":"YulExpressionStatement","src":"16086:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16127:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16138:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16123:3:103"},"nodeType":"YulFunctionCall","src":"16123:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16143:2:103","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16116:6:103"},"nodeType":"YulFunctionCall","src":"16116:30:103"},"nodeType":"YulExpressionStatement","src":"16116:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16166:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16177:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16162:3:103"},"nodeType":"YulFunctionCall","src":"16162:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16182:28:103","type":"","value":"ERROR:TRS-016:NOT_RISKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16155:6:103"},"nodeType":"YulFunctionCall","src":"16155:56:103"},"nodeType":"YulExpressionStatement","src":"16155:56:103"},{"nodeType":"YulAssignment","src":"16220:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16232:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16243:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16228:3:103"},"nodeType":"YulFunctionCall","src":"16228:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16220:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2929b40534bc3751b2a6ec3225ca6171f4a79ecde38ee6c1fce17106a98b0991__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16053:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16067:4:103","type":""}],"src":"15902:350:103"},{"body":{"nodeType":"YulBlock","src":"16431:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16448:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16459:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16441:6:103"},"nodeType":"YulFunctionCall","src":"16441:21:103"},"nodeType":"YulExpressionStatement","src":"16441:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16493:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16478:3:103"},"nodeType":"YulFunctionCall","src":"16478:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16498:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16471:6:103"},"nodeType":"YulFunctionCall","src":"16471:30:103"},"nodeType":"YulExpressionStatement","src":"16471:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16521:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16532:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16517:3:103"},"nodeType":"YulFunctionCall","src":"16517:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16537:34:103","type":"","value":"ERROR:TRS-001:INSTANCE_WALLET_UN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16510:6:103"},"nodeType":"YulFunctionCall","src":"16510:62:103"},"nodeType":"YulExpressionStatement","src":"16510:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16603:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16588:3:103"},"nodeType":"YulFunctionCall","src":"16588:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16608:9:103","type":"","value":"DEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16581:6:103"},"nodeType":"YulFunctionCall","src":"16581:37:103"},"nodeType":"YulExpressionStatement","src":"16581:37:103"},{"nodeType":"YulAssignment","src":"16627:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16639:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16650:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16635:3:103"},"nodeType":"YulFunctionCall","src":"16635:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16627:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2b46fae8951b5666cf5036a2bfff9803d02b9a299525a4505cc74a99e0633220__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16408:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16422:4:103","type":""}],"src":"16257:403:103"},{"body":{"nodeType":"YulBlock","src":"16839:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16856:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16867:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16849:6:103"},"nodeType":"YulFunctionCall","src":"16849:21:103"},"nodeType":"YulExpressionStatement","src":"16849:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16890:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16901:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16886:3:103"},"nodeType":"YulFunctionCall","src":"16886:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16906:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16879:6:103"},"nodeType":"YulFunctionCall","src":"16879:30:103"},"nodeType":"YulExpressionStatement","src":"16879:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16929:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16940:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16925:3:103"},"nodeType":"YulFunctionCall","src":"16925:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16945:34:103","type":"","value":"ERROR:TRS-004:TREASURY_SUSPENDED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16918:6:103"},"nodeType":"YulFunctionCall","src":"16918:62:103"},"nodeType":"YulExpressionStatement","src":"16918:62:103"},{"nodeType":"YulAssignment","src":"16989:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17001:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17012:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16997:3:103"},"nodeType":"YulFunctionCall","src":"16997:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16989:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3716cf2f5864d6ed7dbe013f132263c98f75980b1bc9e53587b62e45d53b8001__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16816:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16830:4:103","type":""}],"src":"16665:356:103"},{"body":{"nodeType":"YulBlock","src":"17200:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17228:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17210:6:103"},"nodeType":"YulFunctionCall","src":"17210:21:103"},"nodeType":"YulExpressionStatement","src":"17210:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17262:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17247:3:103"},"nodeType":"YulFunctionCall","src":"17247:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17267:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17240:6:103"},"nodeType":"YulFunctionCall","src":"17240:30:103"},"nodeType":"YulExpressionStatement","src":"17240:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17290:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17301:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17286:3:103"},"nodeType":"YulFunctionCall","src":"17286:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17306:34:103","type":"","value":"ERROR:TRS-017:WALLET_ADDRESS_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17279:6:103"},"nodeType":"YulFunctionCall","src":"17279:62:103"},"nodeType":"YulExpressionStatement","src":"17279:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17361:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17372:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17357:3:103"},"nodeType":"YulFunctionCall","src":"17357:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17377:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17350:6:103"},"nodeType":"YulFunctionCall","src":"17350:31:103"},"nodeType":"YulExpressionStatement","src":"17350:31:103"},{"nodeType":"YulAssignment","src":"17390:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17402:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17413:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17398:3:103"},"nodeType":"YulFunctionCall","src":"17398:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17390:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3acbd6322e617e55df208025743cb9bdef35beedf84134e8e69828378743af76__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17177:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17191:4:103","type":""}],"src":"17026:397:103"},{"body":{"nodeType":"YulBlock","src":"17602:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17619:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17630:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17612:6:103"},"nodeType":"YulFunctionCall","src":"17612:21:103"},"nodeType":"YulExpressionStatement","src":"17612:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17653:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17664:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17649:3:103"},"nodeType":"YulFunctionCall","src":"17649:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17669:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17642:6:103"},"nodeType":"YulFunctionCall","src":"17642:30:103"},"nodeType":"YulExpressionStatement","src":"17642:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17692:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17703:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17688:3:103"},"nodeType":"YulFunctionCall","src":"17688:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17708:34:103","type":"","value":"ERROR:TRS-061:RISKPOOL_WALLET_BA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17681:6:103"},"nodeType":"YulFunctionCall","src":"17681:62:103"},"nodeType":"YulExpressionStatement","src":"17681:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17763:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17774:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17759:3:103"},"nodeType":"YulFunctionCall","src":"17759:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17779:17:103","type":"","value":"LANCE_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17752:6:103"},"nodeType":"YulFunctionCall","src":"17752:45:103"},"nodeType":"YulExpressionStatement","src":"17752:45:103"},{"nodeType":"YulAssignment","src":"17806:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17829:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17814:3:103"},"nodeType":"YulFunctionCall","src":"17814:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17806:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4ff8d3b4e484daf7626b33b4e51d57bdf16ceea6f454579b2b8cc97aa218b830__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17579:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17593:4:103","type":""}],"src":"17428:411:103"},{"body":{"nodeType":"YulBlock","src":"18018:176:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18035:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18046:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18028:6:103"},"nodeType":"YulFunctionCall","src":"18028:21:103"},"nodeType":"YulExpressionStatement","src":"18028:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18069:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18080:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18065:3:103"},"nodeType":"YulFunctionCall","src":"18065:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18085:2:103","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18058:6:103"},"nodeType":"YulFunctionCall","src":"18058:30:103"},"nodeType":"YulExpressionStatement","src":"18058:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18108:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18119:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18104:3:103"},"nodeType":"YulFunctionCall","src":"18104:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18124:28:103","type":"","value":"ERROR:TRS-023:NOT_RISKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18097:6:103"},"nodeType":"YulFunctionCall","src":"18097:56:103"},"nodeType":"YulExpressionStatement","src":"18097:56:103"},{"nodeType":"YulAssignment","src":"18162:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18185:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18170:3:103"},"nodeType":"YulFunctionCall","src":"18170:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18162:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_51470dc3834195a38b6a47115f9352e7c4e977a95b9739b912cca2a00008681e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17995:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18009:4:103","type":""}],"src":"17844:350:103"},{"body":{"nodeType":"YulBlock","src":"18373:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18401:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18383:6:103"},"nodeType":"YulFunctionCall","src":"18383:21:103"},"nodeType":"YulExpressionStatement","src":"18383:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18424:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18435:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18420:3:103"},"nodeType":"YulFunctionCall","src":"18420:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18440:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18413:6:103"},"nodeType":"YulFunctionCall","src":"18413:30:103"},"nodeType":"YulExpressionStatement","src":"18413:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18474:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18459:3:103"},"nodeType":"YulFunctionCall","src":"18459:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18479:34:103","type":"","value":"ERROR:TRS-032:PREMIUM_TRANSFER_F"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18452:6:103"},"nodeType":"YulFunctionCall","src":"18452:62:103"},"nodeType":"YulExpressionStatement","src":"18452:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18534:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18545:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18530:3:103"},"nodeType":"YulFunctionCall","src":"18530:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18550:7:103","type":"","value":"AILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18523:6:103"},"nodeType":"YulFunctionCall","src":"18523:35:103"},"nodeType":"YulExpressionStatement","src":"18523:35:103"},{"nodeType":"YulAssignment","src":"18567:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18579:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18590:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18575:3:103"},"nodeType":"YulFunctionCall","src":"18575:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18567:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5cf18c155db3e0e44074585a9cca469fe44a6111772a61c46ab85216052cb52e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18350:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18364:4:103","type":""}],"src":"18199:401:103"},{"body":{"nodeType":"YulBlock","src":"18779:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18796:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18807:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18789:6:103"},"nodeType":"YulFunctionCall","src":"18789:21:103"},"nodeType":"YulExpressionStatement","src":"18789:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18830:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18841:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18826:3:103"},"nodeType":"YulFunctionCall","src":"18826:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18846:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18819:6:103"},"nodeType":"YulFunctionCall","src":"18819:30:103"},"nodeType":"YulExpressionStatement","src":"18819:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18869:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18880:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18865:3:103"},"nodeType":"YulFunctionCall","src":"18865:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18885:30:103","type":"","value":"ERROR:TRS-030:AMOUNT_TOO_BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18858:6:103"},"nodeType":"YulFunctionCall","src":"18858:58:103"},"nodeType":"YulExpressionStatement","src":"18858:58:103"},{"nodeType":"YulAssignment","src":"18925:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18937:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18948:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18933:3:103"},"nodeType":"YulFunctionCall","src":"18933:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18925:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_61e1f4ff42e3123af58f70ed814e76c339065814b9eabd9415d5cb832ae5bb26__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18756:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18770:4:103","type":""}],"src":"18605:352:103"},{"body":{"nodeType":"YulBlock","src":"19136:166:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19164:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19146:6:103"},"nodeType":"YulFunctionCall","src":"19146:21:103"},"nodeType":"YulExpressionStatement","src":"19146:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19187:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19198:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19183:3:103"},"nodeType":"YulFunctionCall","src":"19183:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19203:2:103","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19176:6:103"},"nodeType":"YulFunctionCall","src":"19176:30:103"},"nodeType":"YulExpressionStatement","src":"19176:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19237:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19222:3:103"},"nodeType":"YulFunctionCall","src":"19222:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19242:18:103","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19215:6:103"},"nodeType":"YulFunctionCall","src":"19215:46:103"},"nodeType":"YulExpressionStatement","src":"19215:46:103"},{"nodeType":"YulAssignment","src":"19270:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19282:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19293:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19278:3:103"},"nodeType":"YulFunctionCall","src":"19278:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19270:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19113:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19127:4:103","type":""}],"src":"18962:340:103"},{"body":{"nodeType":"YulBlock","src":"19481:238:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19498:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19509:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19491:6:103"},"nodeType":"YulFunctionCall","src":"19491:21:103"},"nodeType":"YulExpressionStatement","src":"19491:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19532:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19543:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19528:3:103"},"nodeType":"YulFunctionCall","src":"19528:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19548:2:103","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19521:6:103"},"nodeType":"YulFunctionCall","src":"19521:30:103"},"nodeType":"YulExpressionStatement","src":"19521:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19582:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19567:3:103"},"nodeType":"YulFunctionCall","src":"19567:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19587:34:103","type":"","value":"ERROR:TRS-090:FEE_CALCULATION_DA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19560:6:103"},"nodeType":"YulFunctionCall","src":"19560:62:103"},"nodeType":"YulExpressionStatement","src":"19560:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19653:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19638:3:103"},"nodeType":"YulFunctionCall","src":"19638:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19658:18:103","type":"","value":"TA_NOT_SUPPORTED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19631:6:103"},"nodeType":"YulFunctionCall","src":"19631:46:103"},"nodeType":"YulExpressionStatement","src":"19631:46:103"},{"nodeType":"YulAssignment","src":"19686:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19698:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19709:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19694:3:103"},"nodeType":"YulFunctionCall","src":"19694:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19686:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6a7920c070ee7c8d85c964148119b679dffd62a937b57794605d2b978251dbac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19458:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19472:4:103","type":""}],"src":"19307:412:103"},{"body":{"nodeType":"YulBlock","src":"19898:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19926:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19908:6:103"},"nodeType":"YulFunctionCall","src":"19908:21:103"},"nodeType":"YulExpressionStatement","src":"19908:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19949:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19960:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19945:3:103"},"nodeType":"YulFunctionCall","src":"19945:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19965:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19938:6:103"},"nodeType":"YulFunctionCall","src":"19938:30:103"},"nodeType":"YulExpressionStatement","src":"19938:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19988:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19999:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19984:3:103"},"nodeType":"YulFunctionCall","src":"19984:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20004:34:103","type":"","value":"ERROR:TRS-020:ID_NOT_PRODUCT_OR_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19977:6:103"},"nodeType":"YulFunctionCall","src":"19977:62:103"},"nodeType":"YulExpressionStatement","src":"19977:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20059:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20070:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20055:3:103"},"nodeType":"YulFunctionCall","src":"20055:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20075:10:103","type":"","value":"RISKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20048:6:103"},"nodeType":"YulFunctionCall","src":"20048:38:103"},"nodeType":"YulExpressionStatement","src":"20048:38:103"},{"nodeType":"YulAssignment","src":"20095:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20107:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20118:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20103:3:103"},"nodeType":"YulFunctionCall","src":"20103:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20095:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6bade88963632687c264d794f9df0a7fbb1e4e45c72ac6b0eea83aa8d3c453de__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19875:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19889:4:103","type":""}],"src":"19724:404:103"},{"body":{"nodeType":"YulBlock","src":"20307:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20324:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20335:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20317:6:103"},"nodeType":"YulFunctionCall","src":"20317:21:103"},"nodeType":"YulExpressionStatement","src":"20317:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20358:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20369:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20354:3:103"},"nodeType":"YulFunctionCall","src":"20354:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20374:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20347:6:103"},"nodeType":"YulFunctionCall","src":"20347:30:103"},"nodeType":"YulExpressionStatement","src":"20347:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20408:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20393:3:103"},"nodeType":"YulFunctionCall","src":"20393:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20413:34:103","type":"","value":"ERROR:TRS-054:FEE_TRANSFER_FAILE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20386:6:103"},"nodeType":"YulFunctionCall","src":"20386:62:103"},"nodeType":"YulExpressionStatement","src":"20386:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20468:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20479:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20464:3:103"},"nodeType":"YulFunctionCall","src":"20464:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20484:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20457:6:103"},"nodeType":"YulFunctionCall","src":"20457:31:103"},"nodeType":"YulExpressionStatement","src":"20457:31:103"},{"nodeType":"YulAssignment","src":"20497:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20520:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20505:3:103"},"nodeType":"YulFunctionCall","src":"20505:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20497:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_77500f959cf782554c0ce0c1dde202048b680670f0cce75f17feb23a8e0308ef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20284:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20298:4:103","type":""}],"src":"20133:397:103"},{"body":{"nodeType":"YulBlock","src":"20709:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20726:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20737:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20719:6:103"},"nodeType":"YulFunctionCall","src":"20719:21:103"},"nodeType":"YulExpressionStatement","src":"20719:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20760:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20771:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20756:3:103"},"nodeType":"YulFunctionCall","src":"20756:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20776:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20749:6:103"},"nodeType":"YulFunctionCall","src":"20749:30:103"},"nodeType":"YulExpressionStatement","src":"20749:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20810:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20795:3:103"},"nodeType":"YulFunctionCall","src":"20795:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20815:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20788:6:103"},"nodeType":"YulFunctionCall","src":"20788:62:103"},"nodeType":"YulExpressionStatement","src":"20788:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20870:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20881:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20866:3:103"},"nodeType":"YulFunctionCall","src":"20866:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20886:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20859:6:103"},"nodeType":"YulFunctionCall","src":"20859:44:103"},"nodeType":"YulExpressionStatement","src":"20859:44:103"},{"nodeType":"YulAssignment","src":"20912:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20924:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20935:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20920:3:103"},"nodeType":"YulFunctionCall","src":"20920:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20912:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20686:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20700:4:103","type":""}],"src":"20535:410:103"},{"body":{"nodeType":"YulBlock","src":"21124:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21152:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21134:6:103"},"nodeType":"YulFunctionCall","src":"21134:21:103"},"nodeType":"YulExpressionStatement","src":"21134:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21186:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21171:3:103"},"nodeType":"YulFunctionCall","src":"21171:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21191:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21164:6:103"},"nodeType":"YulFunctionCall","src":"21164:30:103"},"nodeType":"YulExpressionStatement","src":"21164:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21214:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21225:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21210:3:103"},"nodeType":"YulFunctionCall","src":"21210:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21230:27:103","type":"","value":"ERROR:TRS-011:NOT_PRODUCT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21203:6:103"},"nodeType":"YulFunctionCall","src":"21203:55:103"},"nodeType":"YulExpressionStatement","src":"21203:55:103"},{"nodeType":"YulAssignment","src":"21267:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21290:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21275:3:103"},"nodeType":"YulFunctionCall","src":"21275:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21267:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7da3c4275d49aeca81de3efd989371cdf344763b44123371517a3e6b02efcce4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21101:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21115:4:103","type":""}],"src":"20950:349:103"},{"body":{"nodeType":"YulBlock","src":"21478:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21495:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21506:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21488:6:103"},"nodeType":"YulFunctionCall","src":"21488:21:103"},"nodeType":"YulExpressionStatement","src":"21488:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21529:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21540:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21525:3:103"},"nodeType":"YulFunctionCall","src":"21525:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21545:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21518:6:103"},"nodeType":"YulFunctionCall","src":"21518:30:103"},"nodeType":"YulExpressionStatement","src":"21518:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21568:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21579:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21564:3:103"},"nodeType":"YulFunctionCall","src":"21564:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21584:33:103","type":"","value":"ERROR:TRS-052:BALANCE_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21557:6:103"},"nodeType":"YulFunctionCall","src":"21557:61:103"},"nodeType":"YulExpressionStatement","src":"21557:61:103"},{"nodeType":"YulAssignment","src":"21627:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21639:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21650:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21635:3:103"},"nodeType":"YulFunctionCall","src":"21635:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21627:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7de95b395fb2e1b69ae5bfa415c7293d3911661a8a5a83a9008160da9346bd51__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21455:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21469:4:103","type":""}],"src":"21304:355:103"},{"body":{"nodeType":"YulBlock","src":"21838:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21855:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21866:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21848:6:103"},"nodeType":"YulFunctionCall","src":"21848:21:103"},"nodeType":"YulExpressionStatement","src":"21848:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21889:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21900:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21885:3:103"},"nodeType":"YulFunctionCall","src":"21885:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21905:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21878:6:103"},"nodeType":"YulFunctionCall","src":"21878:30:103"},"nodeType":"YulExpressionStatement","src":"21878:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21928:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21939:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21924:3:103"},"nodeType":"YulFunctionCall","src":"21924:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21944:34:103","type":"","value":"ERROR:TRS-043:PAYOUT_ALLOWANCE_T"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21917:6:103"},"nodeType":"YulFunctionCall","src":"21917:62:103"},"nodeType":"YulExpressionStatement","src":"21917:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21999:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22010:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21995:3:103"},"nodeType":"YulFunctionCall","src":"21995:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22015:10:103","type":"","value":"OO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21988:6:103"},"nodeType":"YulFunctionCall","src":"21988:38:103"},"nodeType":"YulExpressionStatement","src":"21988:38:103"},{"nodeType":"YulAssignment","src":"22035:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22047:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22058:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22043:3:103"},"nodeType":"YulFunctionCall","src":"22043:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22035:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e9183e17ad533b95e8b637459b508b75172f9edd7e8c99c80d386496a06de75__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21815:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21829:4:103","type":""}],"src":"21664:404:103"},{"body":{"nodeType":"YulBlock","src":"22247:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22264:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22275:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22257:6:103"},"nodeType":"YulFunctionCall","src":"22257:21:103"},"nodeType":"YulExpressionStatement","src":"22257:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22298:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22309:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22294:3:103"},"nodeType":"YulFunctionCall","src":"22294:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22314:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22287:6:103"},"nodeType":"YulFunctionCall","src":"22287:30:103"},"nodeType":"YulExpressionStatement","src":"22287:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22337:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22348:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22333:3:103"},"nodeType":"YulFunctionCall","src":"22333:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22353:34:103","type":"","value":"ERROR:TRS-012:PRODUCT_TOKEN_ALRE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22326:6:103"},"nodeType":"YulFunctionCall","src":"22326:62:103"},"nodeType":"YulExpressionStatement","src":"22326:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22408:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22419:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22404:3:103"},"nodeType":"YulFunctionCall","src":"22404:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22424:9:103","type":"","value":"ADY_SET"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22397:6:103"},"nodeType":"YulFunctionCall","src":"22397:37:103"},"nodeType":"YulExpressionStatement","src":"22397:37:103"},{"nodeType":"YulAssignment","src":"22443:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22455:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22466:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22451:3:103"},"nodeType":"YulFunctionCall","src":"22451:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22443:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_91cd09a8272bca29602366afa78499ab462a45026fab37c8b88437074a1814d2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22224:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22238:4:103","type":""}],"src":"22073:403:103"},{"body":{"nodeType":"YulBlock","src":"22655:238:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22672:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22683:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22665:6:103"},"nodeType":"YulFunctionCall","src":"22665:21:103"},"nodeType":"YulExpressionStatement","src":"22665:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22706:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22717:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22702:3:103"},"nodeType":"YulFunctionCall","src":"22702:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22722:2:103","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22695:6:103"},"nodeType":"YulFunctionCall","src":"22695:30:103"},"nodeType":"YulExpressionStatement","src":"22695:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22745:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22756:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22741:3:103"},"nodeType":"YulFunctionCall","src":"22741:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22761:34:103","type":"","value":"ERROR:TRS-013:PRODUCT_TOKEN_ADDR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22734:6:103"},"nodeType":"YulFunctionCall","src":"22734:62:103"},"nodeType":"YulExpressionStatement","src":"22734:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22816:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22827:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22812:3:103"},"nodeType":"YulFunctionCall","src":"22812:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22832:18:103","type":"","value":"ESS_NOT_MATCHING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22805:6:103"},"nodeType":"YulFunctionCall","src":"22805:46:103"},"nodeType":"YulExpressionStatement","src":"22805:46:103"},{"nodeType":"YulAssignment","src":"22860:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22872:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22883:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22868:3:103"},"nodeType":"YulFunctionCall","src":"22868:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22860:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9defa563bbba994121b588e9e6ffee73848f6557b51cbbd6b857b473a53fa73e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22632:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22646:4:103","type":""}],"src":"22481:412:103"},{"body":{"nodeType":"YulBlock","src":"23072:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23089:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23100:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23082:6:103"},"nodeType":"YulFunctionCall","src":"23082:21:103"},"nodeType":"YulExpressionStatement","src":"23082:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23123:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23134:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23119:3:103"},"nodeType":"YulFunctionCall","src":"23119:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23139:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23112:6:103"},"nodeType":"YulFunctionCall","src":"23112:30:103"},"nodeType":"YulExpressionStatement","src":"23112:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23162:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23173:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23158:3:103"},"nodeType":"YulFunctionCall","src":"23158:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23178:34:103","type":"","value":"ERROR:TRS-092:PRODUCT_WITHOUT_RI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23151:6:103"},"nodeType":"YulFunctionCall","src":"23151:62:103"},"nodeType":"YulExpressionStatement","src":"23151:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23233:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23244:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23229:3:103"},"nodeType":"YulFunctionCall","src":"23229:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23249:8:103","type":"","value":"SKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23222:6:103"},"nodeType":"YulFunctionCall","src":"23222:36:103"},"nodeType":"YulExpressionStatement","src":"23222:36:103"},{"nodeType":"YulAssignment","src":"23267:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23290:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23275:3:103"},"nodeType":"YulFunctionCall","src":"23275:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23267:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a12cb855de85ca500fa62d405caf8e8c48f5df6ba8af9f453603b23bd9e4d04d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23049:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23063:4:103","type":""}],"src":"22898:402:103"},{"body":{"nodeType":"YulBlock","src":"23479:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23507:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23489:6:103"},"nodeType":"YulFunctionCall","src":"23489:21:103"},"nodeType":"YulExpressionStatement","src":"23489:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23541:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23526:3:103"},"nodeType":"YulFunctionCall","src":"23526:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23546:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23519:6:103"},"nodeType":"YulFunctionCall","src":"23519:30:103"},"nodeType":"YulExpressionStatement","src":"23519:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23580:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23565:3:103"},"nodeType":"YulFunctionCall","src":"23565:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23585:34:103","type":"","value":"ERROR:TRS-021:FRACIONAL_FEE_TOO_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23558:6:103"},"nodeType":"YulFunctionCall","src":"23558:62:103"},"nodeType":"YulExpressionStatement","src":"23558:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23640:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23651:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23636:3:103"},"nodeType":"YulFunctionCall","src":"23636:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23656:5:103","type":"","value":"BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23629:6:103"},"nodeType":"YulFunctionCall","src":"23629:33:103"},"nodeType":"YulExpressionStatement","src":"23629:33:103"},{"nodeType":"YulAssignment","src":"23671:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23683:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23694:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23679:3:103"},"nodeType":"YulFunctionCall","src":"23679:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23671:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a583f75e567de5febc61daea2db74bc5d44cccb6bb5cd7ea41b386478b7592a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23456:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23470:4:103","type":""}],"src":"23305:399:103"},{"body":{"nodeType":"YulBlock","src":"23883:247:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23900:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23911:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23893:6:103"},"nodeType":"YulFunctionCall","src":"23893:21:103"},"nodeType":"YulExpressionStatement","src":"23893:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23930:3:103"},"nodeType":"YulFunctionCall","src":"23930:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23950:2:103","type":"","value":"57"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23923:6:103"},"nodeType":"YulFunctionCall","src":"23923:30:103"},"nodeType":"YulExpressionStatement","src":"23923:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23973:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23984:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23969:3:103"},"nodeType":"YulFunctionCall","src":"23969:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23989:34:103","type":"","value":"ERROR:TRS-060:CAPACITY_OR_BALANC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23962:6:103"},"nodeType":"YulFunctionCall","src":"23962:62:103"},"nodeType":"YulExpressionStatement","src":"23962:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24044:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24055:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24040:3:103"},"nodeType":"YulFunctionCall","src":"24040:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24060:27:103","type":"","value":"E_SMALLER_THAN_WITHDRAWAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24033:6:103"},"nodeType":"YulFunctionCall","src":"24033:55:103"},"nodeType":"YulExpressionStatement","src":"24033:55:103"},{"nodeType":"YulAssignment","src":"24097:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24109:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24120:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24105:3:103"},"nodeType":"YulFunctionCall","src":"24105:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24097:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_abefc76b4190bc32094fc332397abd635b177c21ff1892fa5ed5fd71e1968656__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23860:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23874:4:103","type":""}],"src":"23709:421:103"},{"body":{"nodeType":"YulBlock","src":"24309:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24326:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24337:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24319:6:103"},"nodeType":"YulFunctionCall","src":"24319:21:103"},"nodeType":"YulExpressionStatement","src":"24319:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24360:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24371:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24356:3:103"},"nodeType":"YulFunctionCall","src":"24356:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24376:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24349:6:103"},"nodeType":"YulFunctionCall","src":"24349:30:103"},"nodeType":"YulExpressionStatement","src":"24349:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24399:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24410:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24395:3:103"},"nodeType":"YulFunctionCall","src":"24395:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24415:30:103","type":"","value":"ERROR:CRC-002:NOT_ON_STORAGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24388:6:103"},"nodeType":"YulFunctionCall","src":"24388:58:103"},"nodeType":"YulExpressionStatement","src":"24388:58:103"},{"nodeType":"YulAssignment","src":"24455:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24467:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24478:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24463:3:103"},"nodeType":"YulFunctionCall","src":"24463:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24455:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24286:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24300:4:103","type":""}],"src":"24135:352:103"},{"body":{"nodeType":"YulBlock","src":"24666:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24683:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24694:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24676:6:103"},"nodeType":"YulFunctionCall","src":"24676:21:103"},"nodeType":"YulExpressionStatement","src":"24676:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24717:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24728:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24713:3:103"},"nodeType":"YulFunctionCall","src":"24713:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24733:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24706:6:103"},"nodeType":"YulFunctionCall","src":"24706:30:103"},"nodeType":"YulExpressionStatement","src":"24706:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24756:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24767:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24752:3:103"},"nodeType":"YulFunctionCall","src":"24752:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24772:34:103","type":"","value":"ERROR:TRS-044:PAYOUT_TRANSFER_FA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24745:6:103"},"nodeType":"YulFunctionCall","src":"24745:62:103"},"nodeType":"YulExpressionStatement","src":"24745:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24827:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24838:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24823:3:103"},"nodeType":"YulFunctionCall","src":"24823:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24843:6:103","type":"","value":"ILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24816:6:103"},"nodeType":"YulFunctionCall","src":"24816:34:103"},"nodeType":"YulExpressionStatement","src":"24816:34:103"},{"nodeType":"YulAssignment","src":"24859:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24871:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24882:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24867:3:103"},"nodeType":"YulFunctionCall","src":"24867:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24859:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b8f0baf95c395dce72ff03341babefe990689bb1ce08b121a2a99bc20faec980__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24643:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24657:4:103","type":""}],"src":"24492:400:103"},{"body":{"nodeType":"YulBlock","src":"25071:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25099:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25081:6:103"},"nodeType":"YulFunctionCall","src":"25081:21:103"},"nodeType":"YulExpressionStatement","src":"25081:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25133:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25118:3:103"},"nodeType":"YulFunctionCall","src":"25118:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25138:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25111:6:103"},"nodeType":"YulFunctionCall","src":"25111:30:103"},"nodeType":"YulExpressionStatement","src":"25111:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25172:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25157:3:103"},"nodeType":"YulFunctionCall","src":"25157:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25177:34:103","type":"","value":"ERROR:TRS-042:RISKPOOL_WALLET_BA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25150:6:103"},"nodeType":"YulFunctionCall","src":"25150:62:103"},"nodeType":"YulExpressionStatement","src":"25150:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25232:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25243:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25228:3:103"},"nodeType":"YulFunctionCall","src":"25228:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25248:17:103","type":"","value":"LANCE_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25221:6:103"},"nodeType":"YulFunctionCall","src":"25221:45:103"},"nodeType":"YulExpressionStatement","src":"25221:45:103"},{"nodeType":"YulAssignment","src":"25275:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25287:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25298:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25283:3:103"},"nodeType":"YulFunctionCall","src":"25283:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25275:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_bbbd206bf526f712f36d054d860aea94d102517fedd4615662eb1c115a60beea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25048:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25062:4:103","type":""}],"src":"24897:411:103"},{"body":{"nodeType":"YulBlock","src":"25487:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25504:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25515:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25497:6:103"},"nodeType":"YulFunctionCall","src":"25497:21:103"},"nodeType":"YulExpressionStatement","src":"25497:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25538:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25549:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25534:3:103"},"nodeType":"YulFunctionCall","src":"25534:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25554:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25527:6:103"},"nodeType":"YulFunctionCall","src":"25527:30:103"},"nodeType":"YulExpressionStatement","src":"25527:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25577:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25588:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25573:3:103"},"nodeType":"YulFunctionCall","src":"25573:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25593:34:103","type":"","value":"ERROR:TRS-003:RISKPOOL_WALLET_UN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25566:6:103"},"nodeType":"YulFunctionCall","src":"25566:62:103"},"nodeType":"YulExpressionStatement","src":"25566:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25648:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25659:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25644:3:103"},"nodeType":"YulFunctionCall","src":"25644:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25664:9:103","type":"","value":"DEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25637:6:103"},"nodeType":"YulFunctionCall","src":"25637:37:103"},"nodeType":"YulExpressionStatement","src":"25637:37:103"},{"nodeType":"YulAssignment","src":"25683:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25695:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25706:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25691:3:103"},"nodeType":"YulFunctionCall","src":"25691:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25683:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_bc89108457ff0693a34e0e46b7b733b4220c89a4cb97d3006bf3a51034cca2c9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25464:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25478:4:103","type":""}],"src":"25313:403:103"},{"body":{"nodeType":"YulBlock","src":"25895:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25912:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25923:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25905:6:103"},"nodeType":"YulFunctionCall","src":"25905:21:103"},"nodeType":"YulExpressionStatement","src":"25905:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25946:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25957:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25942:3:103"},"nodeType":"YulFunctionCall","src":"25942:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25962:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25935:6:103"},"nodeType":"YulFunctionCall","src":"25935:30:103"},"nodeType":"YulExpressionStatement","src":"25935:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25981:3:103"},"nodeType":"YulFunctionCall","src":"25981:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26001:34:103","type":"","value":"ERROR:TRS-063:WITHDRAWAL_TRANSFE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25974:6:103"},"nodeType":"YulFunctionCall","src":"25974:62:103"},"nodeType":"YulExpressionStatement","src":"25974:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26056:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26067:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26052:3:103"},"nodeType":"YulFunctionCall","src":"26052:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26072:10:103","type":"","value":"R_FAILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26045:6:103"},"nodeType":"YulFunctionCall","src":"26045:38:103"},"nodeType":"YulExpressionStatement","src":"26045:38:103"},{"nodeType":"YulAssignment","src":"26092:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26104:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26115:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26100:3:103"},"nodeType":"YulFunctionCall","src":"26100:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26092:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c3c791ba0a21dcb3428b822dcce6828d8b36ff48be0d7f71d7205920e54c15b3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25872:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25886:4:103","type":""}],"src":"25721:404:103"},{"body":{"nodeType":"YulBlock","src":"26304:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26321:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26332:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26314:6:103"},"nodeType":"YulFunctionCall","src":"26314:21:103"},"nodeType":"YulExpressionStatement","src":"26314:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26355:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26366:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26351:3:103"},"nodeType":"YulFunctionCall","src":"26351:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26371:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26344:6:103"},"nodeType":"YulFunctionCall","src":"26344:30:103"},"nodeType":"YulExpressionStatement","src":"26344:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26394:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26405:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26390:3:103"},"nodeType":"YulFunctionCall","src":"26390:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26410:34:103","type":"","value":"ERROR:TRS-031:FEE_TRANSFER_FAILE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26383:6:103"},"nodeType":"YulFunctionCall","src":"26383:62:103"},"nodeType":"YulExpressionStatement","src":"26383:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26476:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26461:3:103"},"nodeType":"YulFunctionCall","src":"26461:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26481:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26454:6:103"},"nodeType":"YulFunctionCall","src":"26454:31:103"},"nodeType":"YulExpressionStatement","src":"26454:31:103"},{"nodeType":"YulAssignment","src":"26494:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26506:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26517:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26502:3:103"},"nodeType":"YulFunctionCall","src":"26502:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26494:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c64a6a11b68791be2b7fc40e3fe3e71aed151a6ed457ee8c919ac899d8679ba6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26281:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26295:4:103","type":""}],"src":"26130:397:103"},{"body":{"nodeType":"YulBlock","src":"26706:238:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26723:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26734:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26716:6:103"},"nodeType":"YulFunctionCall","src":"26716:21:103"},"nodeType":"YulExpressionStatement","src":"26716:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26757:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26768:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26753:3:103"},"nodeType":"YulFunctionCall","src":"26753:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26773:2:103","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26746:6:103"},"nodeType":"YulFunctionCall","src":"26746:30:103"},"nodeType":"YulExpressionStatement","src":"26746:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26796:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26807:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26792:3:103"},"nodeType":"YulFunctionCall","src":"26792:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26812:34:103","type":"","value":"ERROR:TRS-014:RISKPOOL_TOKEN_ADD"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26785:6:103"},"nodeType":"YulFunctionCall","src":"26785:62:103"},"nodeType":"YulExpressionStatement","src":"26785:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26867:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26878:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26863:3:103"},"nodeType":"YulFunctionCall","src":"26863:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26883:18:103","type":"","value":"RESS_NOT_MACHING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26856:6:103"},"nodeType":"YulFunctionCall","src":"26856:46:103"},"nodeType":"YulExpressionStatement","src":"26856:46:103"},{"nodeType":"YulAssignment","src":"26911:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26923:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26934:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26919:3:103"},"nodeType":"YulFunctionCall","src":"26919:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26911:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_cbf92c04d1a98b7ef606e69dd4b1bdfb97cdaa3f5e71e07471d88f1ddf906147__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26683:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26697:4:103","type":""}],"src":"26532:412:103"},{"body":{"nodeType":"YulBlock","src":"27123:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27140:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27151:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27133:6:103"},"nodeType":"YulFunctionCall","src":"27133:21:103"},"nodeType":"YulExpressionStatement","src":"27133:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27185:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27170:3:103"},"nodeType":"YulFunctionCall","src":"27170:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27190:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27163:6:103"},"nodeType":"YulFunctionCall","src":"27163:30:103"},"nodeType":"YulExpressionStatement","src":"27163:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27213:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27224:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27209:3:103"},"nodeType":"YulFunctionCall","src":"27209:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27229:34:103","type":"","value":"ERROR:TRS-010:TOKEN_ADDRESS_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27202:6:103"},"nodeType":"YulFunctionCall","src":"27202:62:103"},"nodeType":"YulExpressionStatement","src":"27202:62:103"},{"nodeType":"YulAssignment","src":"27273:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27285:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27296:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27281:3:103"},"nodeType":"YulFunctionCall","src":"27281:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27273:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ceb0bf7951c332a40d75b8b4b45101b45a65b113825ab60387d5b818680891fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27100:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27114:4:103","type":""}],"src":"26949:356:103"},{"body":{"nodeType":"YulBlock","src":"27484:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27501:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27512:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27494:6:103"},"nodeType":"YulFunctionCall","src":"27494:21:103"},"nodeType":"YulExpressionStatement","src":"27494:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27535:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27546:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27531:3:103"},"nodeType":"YulFunctionCall","src":"27531:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27551:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27524:6:103"},"nodeType":"YulFunctionCall","src":"27524:30:103"},"nodeType":"YulExpressionStatement","src":"27524:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27574:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27585:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27570:3:103"},"nodeType":"YulFunctionCall","src":"27570:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27590:34:103","type":"","value":"ERROR:CRC-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27563:6:103"},"nodeType":"YulFunctionCall","src":"27563:62:103"},"nodeType":"YulExpressionStatement","src":"27563:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27645:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27656:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27641:3:103"},"nodeType":"YulFunctionCall","src":"27641:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27661:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27634:6:103"},"nodeType":"YulFunctionCall","src":"27634:33:103"},"nodeType":"YulExpressionStatement","src":"27634:33:103"},{"nodeType":"YulAssignment","src":"27676:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27699:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27684:3:103"},"nodeType":"YulFunctionCall","src":"27684:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27676:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27461:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27475:4:103","type":""}],"src":"27310:399:103"},{"body":{"nodeType":"YulBlock","src":"27888:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27905:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27916:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27898:6:103"},"nodeType":"YulFunctionCall","src":"27898:21:103"},"nodeType":"YulExpressionStatement","src":"27898:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27939:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27950:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27935:3:103"},"nodeType":"YulFunctionCall","src":"27935:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27955:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27928:6:103"},"nodeType":"YulFunctionCall","src":"27928:30:103"},"nodeType":"YulExpressionStatement","src":"27928:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27989:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27974:3:103"},"nodeType":"YulFunctionCall","src":"27974:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27994:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27967:6:103"},"nodeType":"YulFunctionCall","src":"27967:62:103"},"nodeType":"YulExpressionStatement","src":"27967:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28049:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28060:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28045:3:103"},"nodeType":"YulFunctionCall","src":"28045:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28065:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28038:6:103"},"nodeType":"YulFunctionCall","src":"28038:41:103"},"nodeType":"YulExpressionStatement","src":"28038:41:103"},{"nodeType":"YulAssignment","src":"28088:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28100:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28111:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28096:3:103"},"nodeType":"YulFunctionCall","src":"28096:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28088:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27865:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27879:4:103","type":""}],"src":"27714:407:103"},{"body":{"nodeType":"YulBlock","src":"28300:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28317:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28328:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28310:6:103"},"nodeType":"YulFunctionCall","src":"28310:21:103"},"nodeType":"YulExpressionStatement","src":"28310:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28351:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28362:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28347:3:103"},"nodeType":"YulFunctionCall","src":"28347:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28367:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28340:6:103"},"nodeType":"YulFunctionCall","src":"28340:30:103"},"nodeType":"YulExpressionStatement","src":"28340:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28401:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28386:3:103"},"nodeType":"YulFunctionCall","src":"28386:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28406:34:103","type":"","value":"ERROR:CRC-003:NOT_PRODUCT_SERVIC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28379:6:103"},"nodeType":"YulFunctionCall","src":"28379:62:103"},"nodeType":"YulExpressionStatement","src":"28379:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28461:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28472:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28457:3:103"},"nodeType":"YulFunctionCall","src":"28457:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28477:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28450:6:103"},"nodeType":"YulFunctionCall","src":"28450:31:103"},"nodeType":"YulExpressionStatement","src":"28450:31:103"},{"nodeType":"YulAssignment","src":"28490:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28502:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28513:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28498:3:103"},"nodeType":"YulFunctionCall","src":"28498:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28490:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28277:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28291:4:103","type":""}],"src":"28126:397:103"},{"body":{"nodeType":"YulBlock","src":"28702:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28730:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28712:6:103"},"nodeType":"YulFunctionCall","src":"28712:21:103"},"nodeType":"YulExpressionStatement","src":"28712:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28764:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28749:3:103"},"nodeType":"YulFunctionCall","src":"28749:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28769:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28742:6:103"},"nodeType":"YulFunctionCall","src":"28742:30:103"},"nodeType":"YulExpressionStatement","src":"28742:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28803:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28788:3:103"},"nodeType":"YulFunctionCall","src":"28788:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28808:27:103","type":"","value":"ERROR:TRS-091:FEE_TOO_BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28781:6:103"},"nodeType":"YulFunctionCall","src":"28781:55:103"},"nodeType":"YulExpressionStatement","src":"28781:55:103"},{"nodeType":"YulAssignment","src":"28845:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28868:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28853:3:103"},"nodeType":"YulFunctionCall","src":"28853:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28845:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e106755395283005e5aee6caae70ff5d864aa76c26b2d96a6a077ed12733afd7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28679:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28693:4:103","type":""}],"src":"28528:349:103"},{"body":{"nodeType":"YulBlock","src":"29056:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29073:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29084:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29066:6:103"},"nodeType":"YulFunctionCall","src":"29066:21:103"},"nodeType":"YulExpressionStatement","src":"29066:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29107:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29118:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29103:3:103"},"nodeType":"YulFunctionCall","src":"29103:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29123:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29096:6:103"},"nodeType":"YulFunctionCall","src":"29096:30:103"},"nodeType":"YulExpressionStatement","src":"29096:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29146:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29157:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29142:3:103"},"nodeType":"YulFunctionCall","src":"29142:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29162:34:103","type":"","value":"ERROR:TRS-055:CAPITAL_TRANSFER_F"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29135:6:103"},"nodeType":"YulFunctionCall","src":"29135:62:103"},"nodeType":"YulExpressionStatement","src":"29135:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29228:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29213:3:103"},"nodeType":"YulFunctionCall","src":"29213:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29233:7:103","type":"","value":"AILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29206:6:103"},"nodeType":"YulFunctionCall","src":"29206:35:103"},"nodeType":"YulExpressionStatement","src":"29206:35:103"},{"nodeType":"YulAssignment","src":"29250:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29262:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29273:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29258:3:103"},"nodeType":"YulFunctionCall","src":"29258:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29250:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ee072957df3bcc0b6a380c5eb268686cec614b16dbbda8cabbd506c7cad3be44__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29033:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29047:4:103","type":""}],"src":"28882:401:103"},{"body":{"nodeType":"YulBlock","src":"29462:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29479:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29490:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29472:6:103"},"nodeType":"YulFunctionCall","src":"29472:21:103"},"nodeType":"YulExpressionStatement","src":"29472:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29513:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29524:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29509:3:103"},"nodeType":"YulFunctionCall","src":"29509:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29529:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29502:6:103"},"nodeType":"YulFunctionCall","src":"29502:30:103"},"nodeType":"YulExpressionStatement","src":"29502:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29552:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29563:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29548:3:103"},"nodeType":"YulFunctionCall","src":"29548:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29568:34:103","type":"","value":"ERROR:TRS-024:FEE_SPEC_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29541:6:103"},"nodeType":"YulFunctionCall","src":"29541:62:103"},"nodeType":"YulExpressionStatement","src":"29541:62:103"},{"nodeType":"YulAssignment","src":"29612:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29624:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29635:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29620:3:103"},"nodeType":"YulFunctionCall","src":"29620:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29612:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f3bfd224a81d9a321038f24de2588f8f485d74dd9e38c360b2708398c4728895__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29439:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29453:4:103","type":""}],"src":"29288:356:103"},{"body":{"nodeType":"YulBlock","src":"29823:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29840:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29851:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29833:6:103"},"nodeType":"YulFunctionCall","src":"29833:21:103"},"nodeType":"YulExpressionStatement","src":"29833:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29874:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29885:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29870:3:103"},"nodeType":"YulFunctionCall","src":"29870:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29890:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29863:6:103"},"nodeType":"YulFunctionCall","src":"29863:30:103"},"nodeType":"YulExpressionStatement","src":"29863:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29913:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29924:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29909:3:103"},"nodeType":"YulFunctionCall","src":"29909:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29929:34:103","type":"","value":"ERROR:TRS-050:FEE_SPEC_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29902:6:103"},"nodeType":"YulFunctionCall","src":"29902:62:103"},"nodeType":"YulExpressionStatement","src":"29902:62:103"},{"nodeType":"YulAssignment","src":"29973:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29996:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29981:3:103"},"nodeType":"YulFunctionCall","src":"29981:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29973:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5e24e1787cfb8007a3eb3c3796c431645b0dfa466828874ea644c38e8537028__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29800:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29814:4:103","type":""}],"src":"29649:356:103"},{"body":{"nodeType":"YulBlock","src":"30184:234:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30201:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30212:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30194:6:103"},"nodeType":"YulFunctionCall","src":"30194:21:103"},"nodeType":"YulExpressionStatement","src":"30194:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30235:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30246:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30231:3:103"},"nodeType":"YulFunctionCall","src":"30231:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30251:2:103","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30224:6:103"},"nodeType":"YulFunctionCall","src":"30224:30:103"},"nodeType":"YulExpressionStatement","src":"30224:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30274:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30285:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30270:3:103"},"nodeType":"YulFunctionCall","src":"30270:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30290:34:103","type":"","value":"ERROR:TRS-062:WITHDRAWAL_ALLOWAN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30263:6:103"},"nodeType":"YulFunctionCall","src":"30263:62:103"},"nodeType":"YulExpressionStatement","src":"30263:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30345:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30356:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30341:3:103"},"nodeType":"YulFunctionCall","src":"30341:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30361:14:103","type":"","value":"CE_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30334:6:103"},"nodeType":"YulFunctionCall","src":"30334:42:103"},"nodeType":"YulExpressionStatement","src":"30334:42:103"},{"nodeType":"YulAssignment","src":"30385:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30408:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30393:3:103"},"nodeType":"YulFunctionCall","src":"30393:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30385:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fe68ccbc21a2bc35481ec1ba83353491017fc775b9abae87cf31e492c23093ec__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30161:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30175:4:103","type":""}],"src":"30010:408:103"},{"body":{"nodeType":"YulBlock","src":"30592:518:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30620:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30602:6:103"},"nodeType":"YulFunctionCall","src":"30602:21:103"},"nodeType":"YulExpressionStatement","src":"30602:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30654:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30639:3:103"},"nodeType":"YulFunctionCall","src":"30639:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30665:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30659:5:103"},"nodeType":"YulFunctionCall","src":"30659:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30632:6:103"},"nodeType":"YulFunctionCall","src":"30632:41:103"},"nodeType":"YulExpressionStatement","src":"30632:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30693:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30704:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30689:3:103"},"nodeType":"YulFunctionCall","src":"30689:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30719:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"30727:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30715:3:103"},"nodeType":"YulFunctionCall","src":"30715:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30709:5:103"},"nodeType":"YulFunctionCall","src":"30709:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30682:6:103"},"nodeType":"YulFunctionCall","src":"30682:50:103"},"nodeType":"YulExpressionStatement","src":"30682:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30752:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30763:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30748:3:103"},"nodeType":"YulFunctionCall","src":"30748:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30778:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"30786:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30774:3:103"},"nodeType":"YulFunctionCall","src":"30774:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30768:5:103"},"nodeType":"YulFunctionCall","src":"30768:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30741:6:103"},"nodeType":"YulFunctionCall","src":"30741:50:103"},"nodeType":"YulExpressionStatement","src":"30741:50:103"},{"nodeType":"YulVariableDeclaration","src":"30800:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30830:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"30838:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30826:3:103"},"nodeType":"YulFunctionCall","src":"30826:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30820:5:103"},"nodeType":"YulFunctionCall","src":"30820:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"30804:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30862:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30873:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30858:3:103"},"nodeType":"YulFunctionCall","src":"30858:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"30879:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30851:6:103"},"nodeType":"YulFunctionCall","src":"30851:33:103"},"nodeType":"YulExpressionStatement","src":"30851:33:103"},{"nodeType":"YulVariableDeclaration","src":"30893:65:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"30924:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30953:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30938:3:103"},"nodeType":"YulFunctionCall","src":"30938:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"30907:16:103"},"nodeType":"YulFunctionCall","src":"30907:51:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"30897:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30989:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30974:3:103"},"nodeType":"YulFunctionCall","src":"30974:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"31005:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"31013:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31001:3:103"},"nodeType":"YulFunctionCall","src":"31001:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30995:5:103"},"nodeType":"YulFunctionCall","src":"30995:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30967:6:103"},"nodeType":"YulFunctionCall","src":"30967:52:103"},"nodeType":"YulExpressionStatement","src":"30967:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31039:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31050:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31035:3:103"},"nodeType":"YulFunctionCall","src":"31035:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"31067:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"31075:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31063:3:103"},"nodeType":"YulFunctionCall","src":"31063:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"31057:5:103"},"nodeType":"YulFunctionCall","src":"31057:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31028:6:103"},"nodeType":"YulFunctionCall","src":"31028:53:103"},"nodeType":"YulExpressionStatement","src":"31028:53:103"},{"nodeType":"YulAssignment","src":"31090:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"31098:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31090:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30561:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"30572:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30583:4:103","type":""}],"src":"30423:687:103"},{"body":{"nodeType":"YulBlock","src":"31216:76:103","statements":[{"nodeType":"YulAssignment","src":"31226:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31238:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31249:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31234:3:103"},"nodeType":"YulFunctionCall","src":"31234:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31226:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31268:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"31279:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31261:6:103"},"nodeType":"YulFunctionCall","src":"31261:25:103"},"nodeType":"YulExpressionStatement","src":"31261:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31185:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31196:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31207:4:103","type":""}],"src":"31115:177:103"},{"body":{"nodeType":"YulBlock","src":"31426:145:103","statements":[{"nodeType":"YulAssignment","src":"31436:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31448:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31459:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31444:3:103"},"nodeType":"YulFunctionCall","src":"31444:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31436:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31478:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"31489:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31471:6:103"},"nodeType":"YulFunctionCall","src":"31471:25:103"},"nodeType":"YulExpressionStatement","src":"31471:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31516:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31527:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31512:3:103"},"nodeType":"YulFunctionCall","src":"31512:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"31536:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31552:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"31557:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31548:3:103"},"nodeType":"YulFunctionCall","src":"31548:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"31561:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31544:3:103"},"nodeType":"YulFunctionCall","src":"31544:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31532:3:103"},"nodeType":"YulFunctionCall","src":"31532:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31505:6:103"},"nodeType":"YulFunctionCall","src":"31505:60:103"},"nodeType":"YulExpressionStatement","src":"31505:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31387:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"31398:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31406:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31417:4:103","type":""}],"src":"31297:274:103"},{"body":{"nodeType":"YulBlock","src":"31733:188:103","statements":[{"nodeType":"YulAssignment","src":"31743:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31755:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31766:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31751:3:103"},"nodeType":"YulFunctionCall","src":"31751:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31743:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31785:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"31796:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31778:6:103"},"nodeType":"YulFunctionCall","src":"31778:25:103"},"nodeType":"YulExpressionStatement","src":"31778:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31823:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31834:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31819:3:103"},"nodeType":"YulFunctionCall","src":"31819:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"31843:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31859:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"31864:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31855:3:103"},"nodeType":"YulFunctionCall","src":"31855:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"31868:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31851:3:103"},"nodeType":"YulFunctionCall","src":"31851:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31839:3:103"},"nodeType":"YulFunctionCall","src":"31839:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31812:6:103"},"nodeType":"YulFunctionCall","src":"31812:60:103"},"nodeType":"YulExpressionStatement","src":"31812:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31903:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31888:3:103"},"nodeType":"YulFunctionCall","src":"31888:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"31908:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31881:6:103"},"nodeType":"YulFunctionCall","src":"31881:34:103"},"nodeType":"YulExpressionStatement","src":"31881:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_uint256__to_t_uint256_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31686:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"31697:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"31705:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31713:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31724:4:103","type":""}],"src":"31576:345:103"},{"body":{"nodeType":"YulBlock","src":"32055:119:103","statements":[{"nodeType":"YulAssignment","src":"32065:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32077:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32088:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32073:3:103"},"nodeType":"YulFunctionCall","src":"32073:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32065:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32107:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"32118:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32100:6:103"},"nodeType":"YulFunctionCall","src":"32100:25:103"},"nodeType":"YulExpressionStatement","src":"32100:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32145:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32156:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32141:3:103"},"nodeType":"YulFunctionCall","src":"32141:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"32161:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32134:6:103"},"nodeType":"YulFunctionCall","src":"32134:34:103"},"nodeType":"YulExpressionStatement","src":"32134:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32016:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"32027:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"32035:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32046:4:103","type":""}],"src":"31926:248:103"},{"body":{"nodeType":"YulBlock","src":"32336:188:103","statements":[{"nodeType":"YulAssignment","src":"32346:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32358:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32369:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32354:3:103"},"nodeType":"YulFunctionCall","src":"32354:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32346:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32388:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"32399:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32381:6:103"},"nodeType":"YulFunctionCall","src":"32381:25:103"},"nodeType":"YulExpressionStatement","src":"32381:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32437:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32422:3:103"},"nodeType":"YulFunctionCall","src":"32422:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"32442:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32415:6:103"},"nodeType":"YulFunctionCall","src":"32415:34:103"},"nodeType":"YulExpressionStatement","src":"32415:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32469:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32480:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32465:3:103"},"nodeType":"YulFunctionCall","src":"32465:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"32489:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32505:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"32510:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"32501:3:103"},"nodeType":"YulFunctionCall","src":"32501:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"32514:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32497:3:103"},"nodeType":"YulFunctionCall","src":"32497:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32485:3:103"},"nodeType":"YulFunctionCall","src":"32485:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32458:6:103"},"nodeType":"YulFunctionCall","src":"32458:60:103"},"nodeType":"YulExpressionStatement","src":"32458:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32289:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"32300:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"32308:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"32316:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32327:4:103","type":""}],"src":"32179:345:103"},{"body":{"nodeType":"YulBlock","src":"32686:162:103","statements":[{"nodeType":"YulAssignment","src":"32696:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32708:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32719:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32704:3:103"},"nodeType":"YulFunctionCall","src":"32704:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32696:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32738:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"32749:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32731:6:103"},"nodeType":"YulFunctionCall","src":"32731:25:103"},"nodeType":"YulExpressionStatement","src":"32731:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32776:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32787:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32772:3:103"},"nodeType":"YulFunctionCall","src":"32772:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"32792:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32765:6:103"},"nodeType":"YulFunctionCall","src":"32765:34:103"},"nodeType":"YulExpressionStatement","src":"32765:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32830:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32815:3:103"},"nodeType":"YulFunctionCall","src":"32815:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"32835:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32808:6:103"},"nodeType":"YulFunctionCall","src":"32808:34:103"},"nodeType":"YulExpressionStatement","src":"32808:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32639:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"32650:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"32658:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"32666:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32677:4:103","type":""}],"src":"32529:319:103"},{"body":{"nodeType":"YulBlock","src":"32898:230:103","statements":[{"nodeType":"YulAssignment","src":"32908:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32924:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"32918:5:103"},"nodeType":"YulFunctionCall","src":"32918:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"32908:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"32936:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"32958:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"32974:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"32980:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32970:3:103"},"nodeType":"YulFunctionCall","src":"32970:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32989:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"32985:3:103"},"nodeType":"YulFunctionCall","src":"32985:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32966:3:103"},"nodeType":"YulFunctionCall","src":"32966:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32954:3:103"},"nodeType":"YulFunctionCall","src":"32954:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"32940:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"33069:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"33071:16:103"},"nodeType":"YulFunctionCall","src":"33071:18:103"},"nodeType":"YulExpressionStatement","src":"33071:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"33012:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"33024:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"33009:2:103"},"nodeType":"YulFunctionCall","src":"33009:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"33048:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"33060:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"33045:2:103"},"nodeType":"YulFunctionCall","src":"33045:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"33006:2:103"},"nodeType":"YulFunctionCall","src":"33006:62:103"},"nodeType":"YulIf","src":"33003:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33107:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"33111:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33100:6:103"},"nodeType":"YulFunctionCall","src":"33100:22:103"},"nodeType":"YulExpressionStatement","src":"33100:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"32878:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"32887:6:103","type":""}],"src":"32853:275:103"},{"body":{"nodeType":"YulBlock","src":"33188:71:103","statements":[{"expression":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"33205:4:103"},{"name":"ptr","nodeType":"YulIdentifier","src":"33211:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33198:6:103"},"nodeType":"YulFunctionCall","src":"33198:17:103"},"nodeType":"YulExpressionStatement","src":"33198:17:103"},{"nodeType":"YulAssignment","src":"33224:29:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"33242:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"33248:4:103","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"33232:9:103"},"nodeType":"YulFunctionCall","src":"33232:21:103"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"33224:4:103"}]}]},"name":"array_dataslot_bytes_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"33171:3:103","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"33179:4:103","type":""}],"src":"33133:126:103"},{"body":{"nodeType":"YulBlock","src":"33312:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"33339:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"33341:16:103"},"nodeType":"YulFunctionCall","src":"33341:18:103"},"nodeType":"YulExpressionStatement","src":"33341:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33328:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"33335:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"33331:3:103"},"nodeType":"YulFunctionCall","src":"33331:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"33325:2:103"},"nodeType":"YulFunctionCall","src":"33325:13:103"},"nodeType":"YulIf","src":"33322:2:103"},{"nodeType":"YulAssignment","src":"33370:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33381:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"33384:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33377:3:103"},"nodeType":"YulFunctionCall","src":"33377:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"33370:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"33295:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"33298:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"33304:3:103","type":""}],"src":"33264:128:103"},{"body":{"nodeType":"YulBlock","src":"33443:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"33474:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"33495:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33502:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"33507:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"33498:3:103"},"nodeType":"YulFunctionCall","src":"33498:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33488:6:103"},"nodeType":"YulFunctionCall","src":"33488:31:103"},"nodeType":"YulExpressionStatement","src":"33488:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33539:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"33542:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33532:6:103"},"nodeType":"YulFunctionCall","src":"33532:15:103"},"nodeType":"YulExpressionStatement","src":"33532:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"33567:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"33570:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"33560:6:103"},"nodeType":"YulFunctionCall","src":"33560:15:103"},"nodeType":"YulExpressionStatement","src":"33560:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"33463:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33456:6:103"},"nodeType":"YulFunctionCall","src":"33456:9:103"},"nodeType":"YulIf","src":"33453:2:103"},{"nodeType":"YulAssignment","src":"33594:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33603:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"33606:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"33599:3:103"},"nodeType":"YulFunctionCall","src":"33599:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"33594:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"33428:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"33431:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"33437:1:103","type":""}],"src":"33397:217:103"},{"body":{"nodeType":"YulBlock","src":"33671:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"33730:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"33732:16:103"},"nodeType":"YulFunctionCall","src":"33732:18:103"},"nodeType":"YulExpressionStatement","src":"33732:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33702:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33695:6:103"},"nodeType":"YulFunctionCall","src":"33695:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33688:6:103"},"nodeType":"YulFunctionCall","src":"33688:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"33710:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33721:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"33717:3:103"},"nodeType":"YulFunctionCall","src":"33717:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"33725:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"33713:3:103"},"nodeType":"YulFunctionCall","src":"33713:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"33707:2:103"},"nodeType":"YulFunctionCall","src":"33707:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"33684:3:103"},"nodeType":"YulFunctionCall","src":"33684:45:103"},"nodeType":"YulIf","src":"33681:2:103"},{"nodeType":"YulAssignment","src":"33761:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33776:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"33779:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"33772:3:103"},"nodeType":"YulFunctionCall","src":"33772:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"33761:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"33650:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"33653:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"33659:7:103","type":""}],"src":"33619:168:103"},{"body":{"nodeType":"YulBlock","src":"33841:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"33863:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"33865:16:103"},"nodeType":"YulFunctionCall","src":"33865:18:103"},"nodeType":"YulExpressionStatement","src":"33865:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33857:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"33860:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"33854:2:103"},"nodeType":"YulFunctionCall","src":"33854:8:103"},"nodeType":"YulIf","src":"33851:2:103"},{"nodeType":"YulAssignment","src":"33894:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33906:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"33909:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"33902:3:103"},"nodeType":"YulFunctionCall","src":"33902:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"33894:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"33823:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"33826:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"33832:4:103","type":""}],"src":"33792:125:103"},{"body":{"nodeType":"YulBlock","src":"33974:94:103","statements":[{"body":{"nodeType":"YulBlock","src":"34042:20:103","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"34051:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"34058:1:103","type":"","value":"0"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"34044:6:103"},"nodeType":"YulFunctionCall","src":"34044:16:103"},"nodeType":"YulExpressionStatement","src":"34044:16:103"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"33995:5:103"},{"name":"end","nodeType":"YulIdentifier","src":"34002:3:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"33992:2:103"},"nodeType":"YulFunctionCall","src":"33992:14:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"34007:26:103","statements":[{"nodeType":"YulAssignment","src":"34009:22:103","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"34022:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"34029:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34018:3:103"},"nodeType":"YulFunctionCall","src":"34018:13:103"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"34009:5:103"}]}]},"pre":{"nodeType":"YulBlock","src":"33988:3:103","statements":[]},"src":"33984:78:103"}]},"name":"clear_storage_range_bytes1","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"33958:5:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"33965:3:103","type":""}],"src":"33922:146:103"},{"body":{"nodeType":"YulBlock","src":"34158:1490:103","statements":[{"body":{"nodeType":"YulBlock","src":"34199:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"34201:16:103"},"nodeType":"YulFunctionCall","src":"34201:18:103"},"nodeType":"YulExpressionStatement","src":"34201:18:103"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"34174:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"34179:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"34171:2:103"},"nodeType":"YulFunctionCall","src":"34171:27:103"},"nodeType":"YulIf","src":"34168:2:103"},{"nodeType":"YulVariableDeclaration","src":"34230:52:103","value":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"34276:4:103"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"34270:5:103"},"nodeType":"YulFunctionCall","src":"34270:11:103"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"34244:25:103"},"nodeType":"YulFunctionCall","src":"34244:38:103"},"variables":[{"name":"oldLen","nodeType":"YulTypedName","src":"34234:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34291:18:103","value":{"kind":"number","nodeType":"YulLiteral","src":"34308:1:103","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"34295:9:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34318:28:103","value":{"name":"srcOffset","nodeType":"YulIdentifier","src":"34337:9:103"},"variables":[{"name":"dstDataArea","nodeType":"YulTypedName","src":"34322:11:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34355:21:103","value":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"34368:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"34373:2:103","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"34365:2:103"},"nodeType":"YulFunctionCall","src":"34365:11:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"34359:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34385:24:103","value":{"arguments":[{"name":"oldLen","nodeType":"YulIdentifier","src":"34398:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34406:2:103","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"34395:2:103"},"nodeType":"YulFunctionCall","src":"34395:14:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"34389:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"34440:73:103","statements":[{"nodeType":"YulAssignment","src":"34454:49:103","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"34498:4:103"}],"functionName":{"name":"array_dataslot_bytes_storage","nodeType":"YulIdentifier","src":"34469:28:103"},"nodeType":"YulFunctionCall","src":"34469:34:103"},"variableNames":[{"name":"dstDataArea","nodeType":"YulIdentifier","src":"34454:11:103"}]}]},"condition":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"34424:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"34428:2:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"34421:2:103"},"nodeType":"YulFunctionCall","src":"34421:10:103"},"nodeType":"YulIf","src":"34418:2:103"},{"body":{"nodeType":"YulBlock","src":"34536:236:103","statements":[{"nodeType":"YulVariableDeclaration","src":"34550:58:103","value":{"arguments":[{"name":"dstDataArea","nodeType":"YulIdentifier","src":"34573:11:103"},{"arguments":[{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"34594:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"34599:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34590:3:103"},"nodeType":"YulFunctionCall","src":"34590:12:103"},{"kind":"number","nodeType":"YulLiteral","src":"34604:2:103","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"34586:3:103"},"nodeType":"YulFunctionCall","src":"34586:21:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34569:3:103"},"nodeType":"YulFunctionCall","src":"34569:39:103"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"34554:11:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"34636:30:103","statements":[{"nodeType":"YulAssignment","src":"34638:26:103","value":{"name":"dstDataArea","nodeType":"YulIdentifier","src":"34653:11:103"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"34638:11:103"}]}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"34627:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"34632:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"34624:2:103"},"nodeType":"YulFunctionCall","src":"34624:11:103"},"nodeType":"YulIf","src":"34621:2:103"},{"expression":{"arguments":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"34706:11:103"},{"arguments":[{"name":"dstDataArea","nodeType":"YulIdentifier","src":"34723:11:103"},{"arguments":[{"arguments":[{"name":"oldLen","nodeType":"YulIdentifier","src":"34744:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34752:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34740:3:103"},"nodeType":"YulFunctionCall","src":"34740:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"34757:2:103","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"34736:3:103"},"nodeType":"YulFunctionCall","src":"34736:24:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34719:3:103"},"nodeType":"YulFunctionCall","src":"34719:42:103"}],"functionName":{"name":"clear_storage_range_bytes1","nodeType":"YulIdentifier","src":"34679:26:103"},"nodeType":"YulFunctionCall","src":"34679:83:103"},"nodeType":"YulExpressionStatement","src":"34679:83:103"}]},"condition":{"name":"_2","nodeType":"YulIdentifier","src":"34525:2:103"},"nodeType":"YulIf","src":"34522:2:103"},{"cases":[{"body":{"nodeType":"YulBlock","src":"34806:584:103","statements":[{"nodeType":"YulVariableDeclaration","src":"34820:32:103","value":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"34839:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"34848:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"34844:3:103"},"nodeType":"YulFunctionCall","src":"34844:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"34835:3:103"},"nodeType":"YulFunctionCall","src":"34835:17:103"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"34824:7:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34865:25:103","value":{"name":"dstDataArea","nodeType":"YulIdentifier","src":"34879:11:103"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"34869:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34903:18:103","value":{"name":"srcOffset","nodeType":"YulIdentifier","src":"34912:9:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"34907:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"34991:172:103","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"35016:6:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"35041:3:103"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"35046:9:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35037:3:103"},"nodeType":"YulFunctionCall","src":"35037:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"35024:12:103"},"nodeType":"YulFunctionCall","src":"35024:33:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"35009:6:103"},"nodeType":"YulFunctionCall","src":"35009:49:103"},"nodeType":"YulExpressionStatement","src":"35009:49:103"},{"nodeType":"YulAssignment","src":"35075:24:103","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"35089:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"35097:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35085:3:103"},"nodeType":"YulFunctionCall","src":"35085:14:103"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"35075:6:103"}]},{"nodeType":"YulAssignment","src":"35116:33:103","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"35133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35144:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35129:3:103"},"nodeType":"YulFunctionCall","src":"35129:20:103"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"35116:9:103"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"34945:1:103"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"34948:7:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"34942:2:103"},"nodeType":"YulFunctionCall","src":"34942:14:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"34957:21:103","statements":[{"nodeType":"YulAssignment","src":"34959:17:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"34968:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"34971:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34964:3:103"},"nodeType":"YulFunctionCall","src":"34964:12:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"34959:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"34938:3:103","statements":[]},"src":"34934:229:103"},{"body":{"nodeType":"YulBlock","src":"35208:126:103","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"35233:6:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"35262:3:103"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"35267:9:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35258:3:103"},"nodeType":"YulFunctionCall","src":"35258:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"35245:12:103"},"nodeType":"YulFunctionCall","src":"35245:33:103"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"35292:1:103","type":"","value":"8"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"35299:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"35304:2:103","type":"","value":"31"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"35295:3:103"},"nodeType":"YulFunctionCall","src":"35295:12:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"35288:3:103"},"nodeType":"YulFunctionCall","src":"35288:20:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"35314:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"35310:3:103"},"nodeType":"YulFunctionCall","src":"35310:6:103"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"35284:3:103"},"nodeType":"YulFunctionCall","src":"35284:33:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"35280:3:103"},"nodeType":"YulFunctionCall","src":"35280:38:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"35241:3:103"},"nodeType":"YulFunctionCall","src":"35241:78:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"35226:6:103"},"nodeType":"YulFunctionCall","src":"35226:94:103"},"nodeType":"YulExpressionStatement","src":"35226:94:103"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"35182:7:103"},{"name":"len","nodeType":"YulIdentifier","src":"35191:3:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"35179:2:103"},"nodeType":"YulFunctionCall","src":"35179:16:103"},"nodeType":"YulIf","src":"35176:2:103"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"35354:4:103"},{"arguments":[{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"35368:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"35373:1:103","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"35364:3:103"},"nodeType":"YulFunctionCall","src":"35364:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"35377:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35360:3:103"},"nodeType":"YulFunctionCall","src":"35360:19:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"35347:6:103"},"nodeType":"YulFunctionCall","src":"35347:33:103"},"nodeType":"YulExpressionStatement","src":"35347:33:103"}]},"nodeType":"YulCase","src":"34799:591:103","value":{"kind":"number","nodeType":"YulLiteral","src":"34804:1:103","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"35407:235:103","statements":[{"nodeType":"YulVariableDeclaration","src":"35421:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35434:1:103","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"35425:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"35467:74:103","statements":[{"nodeType":"YulAssignment","src":"35485:42:103","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"35511:3:103"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"35516:9:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35507:3:103"},"nodeType":"YulFunctionCall","src":"35507:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"35494:12:103"},"nodeType":"YulFunctionCall","src":"35494:33:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"35485:5:103"}]}]},"condition":{"name":"len","nodeType":"YulIdentifier","src":"35451:3:103"},"nodeType":"YulIf","src":"35448:2:103"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"35561:4:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"35620:5:103"},{"name":"len","nodeType":"YulIdentifier","src":"35627:3:103"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"35567:52:103"},"nodeType":"YulFunctionCall","src":"35567:64:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"35554:6:103"},"nodeType":"YulFunctionCall","src":"35554:78:103"},"nodeType":"YulExpressionStatement","src":"35554:78:103"}]},"nodeType":"YulCase","src":"35399:243:103","value":"default"}],"expression":{"name":"_1","nodeType":"YulIdentifier","src":"34788:2:103"},"nodeType":"YulSwitch","src":"34781:861:103"}]},"name":"copy_byte_array_to_storage_from_bytes_calldata_to_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"34138:4:103","type":""},{"name":"src","nodeType":"YulTypedName","src":"34144:3:103","type":""},{"name":"len","nodeType":"YulTypedName","src":"34149:3:103","type":""}],"src":"34073:1575:103"},{"body":{"nodeType":"YulBlock","src":"35706:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"35716:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35725:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"35720:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"35785:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"35810:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"35815:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35806:3:103"},"nodeType":"YulFunctionCall","src":"35806:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"35829:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"35834:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35825:3:103"},"nodeType":"YulFunctionCall","src":"35825:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35819:5:103"},"nodeType":"YulFunctionCall","src":"35819:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35799:6:103"},"nodeType":"YulFunctionCall","src":"35799:39:103"},"nodeType":"YulExpressionStatement","src":"35799:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"35746:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"35749:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"35743:2:103"},"nodeType":"YulFunctionCall","src":"35743:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"35757:19:103","statements":[{"nodeType":"YulAssignment","src":"35759:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"35768:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"35771:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35764:3:103"},"nodeType":"YulFunctionCall","src":"35764:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"35759:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"35739:3:103","statements":[]},"src":"35735:113:103"},{"body":{"nodeType":"YulBlock","src":"35874:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"35887:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"35892:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35883:3:103"},"nodeType":"YulFunctionCall","src":"35883:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"35901:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35876:6:103"},"nodeType":"YulFunctionCall","src":"35876:27:103"},"nodeType":"YulExpressionStatement","src":"35876:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"35863:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"35866:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"35860:2:103"},"nodeType":"YulFunctionCall","src":"35860:13:103"},"nodeType":"YulIf","src":"35857:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"35684:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"35689:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"35694:6:103","type":""}],"src":"35653:258:103"},{"body":{"nodeType":"YulBlock","src":"35971:325:103","statements":[{"nodeType":"YulAssignment","src":"35981:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"35995:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"36001:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"35991:3:103"},"nodeType":"YulFunctionCall","src":"35991:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"35981:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"36012:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"36042:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"36048:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36038:3:103"},"nodeType":"YulFunctionCall","src":"36038:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"36016:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"36089:31:103","statements":[{"nodeType":"YulAssignment","src":"36091:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"36105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"36113:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36101:3:103"},"nodeType":"YulFunctionCall","src":"36101:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"36091:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"36069:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"36062:6:103"},"nodeType":"YulFunctionCall","src":"36062:26:103"},"nodeType":"YulIf","src":"36059:2:103"},{"body":{"nodeType":"YulBlock","src":"36179:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36200:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36207:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"36212:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"36203:3:103"},"nodeType":"YulFunctionCall","src":"36203:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36193:6:103"},"nodeType":"YulFunctionCall","src":"36193:31:103"},"nodeType":"YulExpressionStatement","src":"36193:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36244:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"36247:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36237:6:103"},"nodeType":"YulFunctionCall","src":"36237:15:103"},"nodeType":"YulExpressionStatement","src":"36237:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36272:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"36275:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"36265:6:103"},"nodeType":"YulFunctionCall","src":"36265:15:103"},"nodeType":"YulExpressionStatement","src":"36265:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"36135:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"36158:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"36166:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"36155:2:103"},"nodeType":"YulFunctionCall","src":"36155:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"36132:2:103"},"nodeType":"YulFunctionCall","src":"36132:38:103"},"nodeType":"YulIf","src":"36129:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"35951:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"35960:6:103","type":""}],"src":"35916:380:103"},{"body":{"nodeType":"YulBlock","src":"36386:81:103","statements":[{"nodeType":"YulAssignment","src":"36396:65:103","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"36411:4:103"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36429:1:103","type":"","value":"8"},{"name":"len","nodeType":"YulIdentifier","src":"36432:3:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"36425:3:103"},"nodeType":"YulFunctionCall","src":"36425:11:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36442:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"36438:3:103"},"nodeType":"YulFunctionCall","src":"36438:6:103"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"36421:3:103"},"nodeType":"YulFunctionCall","src":"36421:24:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"36417:3:103"},"nodeType":"YulFunctionCall","src":"36417:29:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36407:3:103"},"nodeType":"YulFunctionCall","src":"36407:40:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36453:1:103","type":"","value":"2"},{"name":"len","nodeType":"YulIdentifier","src":"36456:3:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"36449:3:103"},"nodeType":"YulFunctionCall","src":"36449:11:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"36404:2:103"},"nodeType":"YulFunctionCall","src":"36404:57:103"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"36396:4:103"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"36363:4:103","type":""},{"name":"len","nodeType":"YulTypedName","src":"36369:3:103","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"36377:4:103","type":""}],"src":"36301:166:103"},{"body":{"nodeType":"YulBlock","src":"36504:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36521:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36528:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"36533:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"36524:3:103"},"nodeType":"YulFunctionCall","src":"36524:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36514:6:103"},"nodeType":"YulFunctionCall","src":"36514:31:103"},"nodeType":"YulExpressionStatement","src":"36514:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36561:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"36564:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36554:6:103"},"nodeType":"YulFunctionCall","src":"36554:15:103"},"nodeType":"YulExpressionStatement","src":"36554:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36585:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"36588:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"36578:6:103"},"nodeType":"YulFunctionCall","src":"36578:15:103"},"nodeType":"YulExpressionStatement","src":"36578:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"36472:127:103"},{"body":{"nodeType":"YulBlock","src":"36636:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36653:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36660:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"36665:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"36656:3:103"},"nodeType":"YulFunctionCall","src":"36656:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36646:6:103"},"nodeType":"YulFunctionCall","src":"36646:31:103"},"nodeType":"YulExpressionStatement","src":"36646:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36693:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"36696:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36686:6:103"},"nodeType":"YulFunctionCall","src":"36686:15:103"},"nodeType":"YulExpressionStatement","src":"36686:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36717:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"36720:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"36710:6:103"},"nodeType":"YulFunctionCall","src":"36710:15:103"},"nodeType":"YulExpressionStatement","src":"36710:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"36604:127:103"},{"body":{"nodeType":"YulBlock","src":"36881:802:103","statements":[{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"36898:4:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"36917:5:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"36904:12:103"},"nodeType":"YulFunctionCall","src":"36904:19:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"36891:6:103"},"nodeType":"YulFunctionCall","src":"36891:33:103"},"nodeType":"YulExpressionStatement","src":"36891:33:103"},{"expression":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"36944:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"36950:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36940:3:103"},"nodeType":"YulFunctionCall","src":"36940:12:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"36971:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"36978:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36967:3:103"},"nodeType":"YulFunctionCall","src":"36967:14:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"36954:12:103"},"nodeType":"YulFunctionCall","src":"36954:28:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"36933:6:103"},"nodeType":"YulFunctionCall","src":"36933:50:103"},"nodeType":"YulExpressionStatement","src":"36933:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"37003:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"37009:1:103","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36999:3:103"},"nodeType":"YulFunctionCall","src":"36999:12:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37030:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"37037:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37026:3:103"},"nodeType":"YulFunctionCall","src":"37026:14:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"37013:12:103"},"nodeType":"YulFunctionCall","src":"37013:28:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"36992:6:103"},"nodeType":"YulFunctionCall","src":"36992:50:103"},"nodeType":"YulExpressionStatement","src":"36992:50:103"},{"nodeType":"YulVariableDeclaration","src":"37051:54:103","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37094:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"37101:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37090:3:103"},"nodeType":"YulFunctionCall","src":"37090:14:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"37077:12:103"},"nodeType":"YulFunctionCall","src":"37077:28:103"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"37055:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"37191:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37200:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37203:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37193:6:103"},"nodeType":"YulFunctionCall","src":"37193:12:103"},"nodeType":"YulExpressionStatement","src":"37193:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"37128:18:103"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"37156:12:103"},"nodeType":"YulFunctionCall","src":"37156:14:103"},{"name":"value","nodeType":"YulIdentifier","src":"37172:5:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37152:3:103"},"nodeType":"YulFunctionCall","src":"37152:26:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37184:2:103","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"37180:3:103"},"nodeType":"YulFunctionCall","src":"37180:7:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37148:3:103"},"nodeType":"YulFunctionCall","src":"37148:40:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"37124:3:103"},"nodeType":"YulFunctionCall","src":"37124:65:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37117:6:103"},"nodeType":"YulFunctionCall","src":"37117:73:103"},"nodeType":"YulIf","src":"37114:2:103"},{"nodeType":"YulVariableDeclaration","src":"37216:42:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37232:5:103"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"37239:18:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37228:3:103"},"nodeType":"YulFunctionCall","src":"37228:30:103"},"variables":[{"name":"addr","nodeType":"YulTypedName","src":"37220:4:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"37267:32:103","value":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"37294:4:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"37281:12:103"},"nodeType":"YulFunctionCall","src":"37281:18:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"37271:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"37342:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37351:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37354:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37344:6:103"},"nodeType":"YulFunctionCall","src":"37344:12:103"},"nodeType":"YulExpressionStatement","src":"37344:12:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"37314:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"37322:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"37311:2:103"},"nodeType":"YulFunctionCall","src":"37311:30:103"},"nodeType":"YulIf","src":"37308:2:103"},{"nodeType":"YulVariableDeclaration","src":"37367:27:103","value":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"37385:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"37391:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37381:3:103"},"nodeType":"YulFunctionCall","src":"37381:13:103"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"37371:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"37447:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37456:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37459:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37449:6:103"},"nodeType":"YulFunctionCall","src":"37449:12:103"},"nodeType":"YulExpressionStatement","src":"37449:12:103"}]},"condition":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"37410:6:103"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"37422:12:103"},"nodeType":"YulFunctionCall","src":"37422:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"37438:6:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37418:3:103"},"nodeType":"YulFunctionCall","src":"37418:27:103"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"37406:3:103"},"nodeType":"YulFunctionCall","src":"37406:40:103"},"nodeType":"YulIf","src":"37403:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"37532:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"37538:1:103","type":"","value":"3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37528:3:103"},"nodeType":"YulFunctionCall","src":"37528:12:103"},{"name":"addr_1","nodeType":"YulIdentifier","src":"37542:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"37550:6:103"}],"functionName":{"name":"copy_byte_array_to_storage_from_bytes_calldata_to_bytes","nodeType":"YulIdentifier","src":"37472:55:103"},"nodeType":"YulFunctionCall","src":"37472:85:103"},"nodeType":"YulExpressionStatement","src":"37472:85:103"},{"expression":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"37577:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"37583:1:103","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37573:3:103"},"nodeType":"YulFunctionCall","src":"37573:12:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37604:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"37611:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37600:3:103"},"nodeType":"YulFunctionCall","src":"37600:15:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"37587:12:103"},"nodeType":"YulFunctionCall","src":"37587:29:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"37566:6:103"},"nodeType":"YulFunctionCall","src":"37566:51:103"},"nodeType":"YulExpressionStatement","src":"37566:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"37637:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"37643:1:103","type":"","value":"5"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37633:3:103"},"nodeType":"YulFunctionCall","src":"37633:12:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37664:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"37671:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37660:3:103"},"nodeType":"YulFunctionCall","src":"37660:15:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"37647:12:103"},"nodeType":"YulFunctionCall","src":"37647:29:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"37626:6:103"},"nodeType":"YulFunctionCall","src":"37626:51:103"},"nodeType":"YulExpressionStatement","src":"37626:51:103"}]},"name":"update_storage_value_offset_0t_struct$_FeeSpecification_$5838_calldata_ptr_to_t_struct$_FeeSpecification_$5838_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"36864:4:103","type":""},{"name":"value","nodeType":"YulTypedName","src":"36870:5:103","type":""}],"src":"36736:947:103"},{"body":{"nodeType":"YulBlock","src":"37733:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"37797:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37806:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37809:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37799:6:103"},"nodeType":"YulFunctionCall","src":"37799:12:103"},"nodeType":"YulExpressionStatement","src":"37799:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37756:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37767:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37782:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"37787:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"37778:3:103"},"nodeType":"YulFunctionCall","src":"37778:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"37791:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37774:3:103"},"nodeType":"YulFunctionCall","src":"37774:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"37763:3:103"},"nodeType":"YulFunctionCall","src":"37763:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"37753:2:103"},"nodeType":"YulFunctionCall","src":"37753:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37746:6:103"},"nodeType":"YulFunctionCall","src":"37746:50:103"},"nodeType":"YulIf","src":"37743:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"37722:5:103","type":""}],"src":"37688:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_BundleState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_BundleState_fromMemory(add(_2, 96)))\n let offset_1 := mload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), mload(add(_2, 160)))\n mstore(add(value, 192), mload(add(_2, 192)))\n mstore(add(value, 224), mload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), mload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), mload(add(_2, _5)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n let _1 := add(headStart, offset)\n if slt(sub(dataEnd, _1), 192) { revert(value0, value0) }\n value0 := _1\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n mstore(value, mload(_2))\n let value_1 := mload(add(_2, 32))\n if iszero(lt(value_1, 2)) { revert(value0, value0) }\n mstore(add(value, 32), value_1)\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value4, value4) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value4, value4) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value4, value4) }\n value3 := add(_2, 32)\n value4 := length\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), \"InstanceOperatorService\")\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_contract$_IERC20_$8831__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_002d2121ea321e9dc7af161d487859644848c89f417a8b4f6cd3c64e88216019__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERROR:TRS-022:NOT_PRODUCT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_023e61203cb0be5307b17a41d4b69495f70210073b02aa48d79a82beee2c037a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:TRS-015:WALLET_ADDRESS_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0426c9e38488694ef5fcd21b7d01546e3f09d04e0204867e9068633df2d21047__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:TRS-002:RISKPOOL_WALLET_UN\")\n mstore(add(headStart, 96), \"DEFINED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Pausable: not paused\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0df3c78e93cd9b7c9045f326b01178dc9332f2f6498582ce9cff7c8821aa1d20__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:TRS-070:NOT_PRODUCT_OR_RIS\")\n mstore(add(headStart, 96), \"KPOOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1c57f116b2d23b472e497701710f194d47bb249cf3bdd21579f4ccec35ce6514__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:TRS-005:NOT_RISKPOOL_SERVI\")\n mstore(add(headStart, 96), \"CE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_211791b6640da73c43884462143c95a88a879b6ed92d3aff6ce166c1d61a88f2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 50)\n mstore(add(headStart, 64), \"ERROR:TRS-053:CAPITAL_TRANSFER_A\")\n mstore(add(headStart, 96), \"LLOWANCE_TOO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2929b40534bc3751b2a6ec3225ca6171f4a79ecde38ee6c1fce17106a98b0991__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"ERROR:TRS-016:NOT_RISKPOOL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2b46fae8951b5666cf5036a2bfff9803d02b9a299525a4505cc74a99e0633220__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:TRS-001:INSTANCE_WALLET_UN\")\n mstore(add(headStart, 96), \"DEFINED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3716cf2f5864d6ed7dbe013f132263c98f75980b1bc9e53587b62e45d53b8001__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:TRS-004:TREASURY_SUSPENDED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3acbd6322e617e55df208025743cb9bdef35beedf84134e8e69828378743af76__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:TRS-017:WALLET_ADDRESS_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4ff8d3b4e484daf7626b33b4e51d57bdf16ceea6f454579b2b8cc97aa218b830__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:TRS-061:RISKPOOL_WALLET_BA\")\n mstore(add(headStart, 96), \"LANCE_TOO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_51470dc3834195a38b6a47115f9352e7c4e977a95b9739b912cca2a00008681e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"ERROR:TRS-023:NOT_RISKPOOL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_5cf18c155db3e0e44074585a9cca469fe44a6111772a61c46ab85216052cb52e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:TRS-032:PREMIUM_TRANSFER_F\")\n mstore(add(headStart, 96), \"AILED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_61e1f4ff42e3123af58f70ed814e76c339065814b9eabd9415d5cb832ae5bb26__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:TRS-030:AMOUNT_TOO_BIG\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Pausable: paused\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6a7920c070ee7c8d85c964148119b679dffd62a937b57794605d2b978251dbac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"ERROR:TRS-090:FEE_CALCULATION_DA\")\n mstore(add(headStart, 96), \"TA_NOT_SUPPORTED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6bade88963632687c264d794f9df0a7fbb1e4e45c72ac6b0eea83aa8d3c453de__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:TRS-020:ID_NOT_PRODUCT_OR_\")\n mstore(add(headStart, 96), \"RISKPOOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_77500f959cf782554c0ce0c1dde202048b680670f0cce75f17feb23a8e0308ef__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:TRS-054:FEE_TRANSFER_FAILE\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7da3c4275d49aeca81de3efd989371cdf344763b44123371517a3e6b02efcce4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERROR:TRS-011:NOT_PRODUCT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7de95b395fb2e1b69ae5bfa415c7293d3911661a8a5a83a9008160da9346bd51__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:TRS-052:BALANCE_TOO_SMALL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8e9183e17ad533b95e8b637459b508b75172f9edd7e8c99c80d386496a06de75__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:TRS-043:PAYOUT_ALLOWANCE_T\")\n mstore(add(headStart, 96), \"OO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_91cd09a8272bca29602366afa78499ab462a45026fab37c8b88437074a1814d2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:TRS-012:PRODUCT_TOKEN_ALRE\")\n mstore(add(headStart, 96), \"ADY_SET\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9defa563bbba994121b588e9e6ffee73848f6557b51cbbd6b857b473a53fa73e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"ERROR:TRS-013:PRODUCT_TOKEN_ADDR\")\n mstore(add(headStart, 96), \"ESS_NOT_MATCHING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a12cb855de85ca500fa62d405caf8e8c48f5df6ba8af9f453603b23bd9e4d04d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:TRS-092:PRODUCT_WITHOUT_RI\")\n mstore(add(headStart, 96), \"SKPOOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a583f75e567de5febc61daea2db74bc5d44cccb6bb5cd7ea41b386478b7592a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:TRS-021:FRACIONAL_FEE_TOO_\")\n mstore(add(headStart, 96), \"BIG\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_abefc76b4190bc32094fc332397abd635b177c21ff1892fa5ed5fd71e1968656__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 57)\n mstore(add(headStart, 64), \"ERROR:TRS-060:CAPACITY_OR_BALANC\")\n mstore(add(headStart, 96), \"E_SMALLER_THAN_WITHDRAWAL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:CRC-002:NOT_ON_STORAGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b8f0baf95c395dce72ff03341babefe990689bb1ce08b121a2a99bc20faec980__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:TRS-044:PAYOUT_TRANSFER_FA\")\n mstore(add(headStart, 96), \"ILED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_bbbd206bf526f712f36d054d860aea94d102517fedd4615662eb1c115a60beea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:TRS-042:RISKPOOL_WALLET_BA\")\n mstore(add(headStart, 96), \"LANCE_TOO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_bc89108457ff0693a34e0e46b7b733b4220c89a4cb97d3006bf3a51034cca2c9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:TRS-003:RISKPOOL_WALLET_UN\")\n mstore(add(headStart, 96), \"DEFINED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c3c791ba0a21dcb3428b822dcce6828d8b36ff48be0d7f71d7205920e54c15b3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:TRS-063:WITHDRAWAL_TRANSFE\")\n mstore(add(headStart, 96), \"R_FAILED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c64a6a11b68791be2b7fc40e3fe3e71aed151a6ed457ee8c919ac899d8679ba6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:TRS-031:FEE_TRANSFER_FAILE\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_cbf92c04d1a98b7ef606e69dd4b1bdfb97cdaa3f5e71e07471d88f1ddf906147__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"ERROR:TRS-014:RISKPOOL_TOKEN_ADD\")\n mstore(add(headStart, 96), \"RESS_NOT_MACHING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ceb0bf7951c332a40d75b8b4b45101b45a65b113825ab60387d5b818680891fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:TRS-010:TOKEN_ADDRESS_ZERO\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CRC-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:CRC-003:NOT_PRODUCT_SERVIC\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e106755395283005e5aee6caae70ff5d864aa76c26b2d96a6a077ed12733afd7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERROR:TRS-091:FEE_TOO_BIG\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ee072957df3bcc0b6a380c5eb268686cec614b16dbbda8cabbd506c7cad3be44__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:TRS-055:CAPITAL_TRANSFER_F\")\n mstore(add(headStart, 96), \"AILED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f3bfd224a81d9a321038f24de2588f8f485d74dd9e38c360b2708398c4728895__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:TRS-024:FEE_SPEC_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f5e24e1787cfb8007a3eb3c3796c431645b0dfa466828874ea644c38e8537028__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:TRS-050:FEE_SPEC_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_fe68ccbc21a2bc35481ec1ba83353491017fc775b9abae87cf31e492c23093ec__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 44)\n mstore(add(headStart, 64), \"ERROR:TRS-062:WITHDRAWAL_ALLOWAN\")\n mstore(add(headStart, 96), \"CE_TOO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_address_t_uint256__to_t_uint256_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_dataslot_bytes_storage(ptr) -> data\n {\n mstore(data, ptr)\n data := keccak256(data, 0x20)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function clear_storage_range_bytes1(start, end)\n {\n for { } lt(start, end) { start := add(start, 1) }\n { sstore(start, 0) }\n }\n function copy_byte_array_to_storage_from_bytes_calldata_to_bytes(slot, src, len)\n {\n if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n let oldLen := extract_byte_array_length(sload(slot))\n let srcOffset := 0\n let dstDataArea := srcOffset\n let _1 := gt(len, 31)\n let _2 := gt(oldLen, 31)\n if or(_2, _1)\n {\n dstDataArea := array_dataslot_bytes_storage(slot)\n }\n if _2\n {\n let deleteStart := add(dstDataArea, div(add(len, 31), 32))\n if lt(len, 32) { deleteStart := dstDataArea }\n clear_storage_range_bytes1(deleteStart, add(dstDataArea, div(add(oldLen, 31), 32)))\n }\n switch _1\n case 1 {\n let loopEnd := and(len, not(31))\n let dstPtr := dstDataArea\n let i := srcOffset\n for { } lt(i, loopEnd) { i := add(i, 0x20) }\n {\n sstore(dstPtr, calldataload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 0x20)\n }\n if lt(loopEnd, len)\n {\n sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(mul(8, and(len, 31)), not(0)))))\n }\n sstore(slot, add(mul(len, 2), 1))\n }\n default {\n let value := 0\n if len\n {\n value := calldataload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n }\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(mul(8, len), not(0)))), mul(2, len))\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function update_storage_value_offset_0t_struct$_FeeSpecification_$5838_calldata_ptr_to_t_struct$_FeeSpecification_$5838_storage(slot, value)\n {\n sstore(slot, calldataload(value))\n sstore(add(slot, 1), calldataload(add(value, 32)))\n sstore(add(slot, 2), calldataload(add(value, 64)))\n let rel_offset_of_tail := calldataload(add(value, 96))\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), value), not(30)))) { revert(0, 0) }\n let addr := add(value, rel_offset_of_tail)\n let length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n let addr_1 := add(addr, 32)\n if sgt(addr_1, sub(calldatasize(), length)) { revert(0, 0) }\n copy_byte_array_to_storage_from_bytes_calldata_to_bytes(add(slot, 3), addr_1, length)\n sstore(add(slot, 4), calldataload(add(value, 128)))\n sstore(add(slot, 5), calldataload(add(value, 160)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061014d5760003560e01c80638ca946aa116100c3578063cab2504d1161007c578063cab2504d1461030d578063cc9cf8cd14610320578063d935807514610333578063e6400bbe14610346578063f964690d1461034e578063fe64372b146103565761014d565b80638ca946aa1461029c5780638ccf5ca2146102af578063a434f0ad146102c7578063a44330c4146102da578063b79f5eab146102eb578063c4d66de8146102fa5761014d565b806334e731221161011557806334e73122146101f7578063490816371461020a5780635c975abb146102335780635ecc078e1461025657806362f0ab551461026957806386039aed146102895761014d565b806301132a7f146101525780630210826814610167578063038696bb1461019c578063046f7da2146101c757806326debdaa146101cf575b600080fd5b610165610160366004613e2c565b610369565b005b61017a610175366004613d37565b6105a3565b6040805193151584526020840192909252908201526060015b60405180910390f35b6101af6101aa366004613d1f565b610aac565b6040516001600160a01b039091168152602001610193565b610165610c24565b6101e26101dd36600461405a565b610cfd565b60408051928352602083019190915201610193565b6101e261020536600461405a565b6113b4565b6101af610218366004613d1f565b6000908152600360205260409020546001600160a01b031690565b610246600154600160a01b900460ff1690565b6040519015158152602001610193565b61017a610264366004613d1f565b611438565b61027c61027736600461406c565b6115b5565b60405161019391906143cb565b61016561029736600461402b565b611825565b6101656102aa366004613e2c565b611b08565b670de0b6b3a76400005b604051908152602001610193565b61027c6102d5366004613d1f565b611d31565b6002546001600160a01b03166101af565b6102b9670de0b6b3a764000081565b610165610308366004613cc0565b611e53565b61016561031b366004613cc0565b611fcd565b61016561032e36600461402b565b612157565b6101e261034136600461405a565b6126ce565b610165612d04565b6102b9612ddd565b6101e2610364366004613d37565b612df3565b61037c600154600160a01b900460ff1690565b156103a25760405162461bcd60e51b815260040161039990614294565b60405180910390fd5b6000546201000090046001600160a01b0316632ca65a796103c03390565b6040518263ffffffff1660e01b81526004016103dc9190614160565b60206040518083038186803b1580156103f457600080fd5b505afa158015610408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042c9190613cff565b6104485760405162461bcd60e51b815260040161039990614347565b600754604051630e48080360e21b8152823560048201526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561048c57600080fd5b505afa1580156104a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c49190613cff565b6105105760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3032323a4e4f545f50524f44554354000000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290610534828261466e565b505080156105545781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527f389ab9b2665a8ef1adf5a151c45e2546c4b1ffe8cfa537dd96a5eb8046b06efe906060015b60405180910390a15050565b60008060006105bb600154600160a01b900460ff1690565b156105d85760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166106005760405162461bcd60e51b81526004016103999061424d565b8460008061060d8361333e565b90925090506001600160a01b0381166106385760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b61064d816134c9565b6001600160a01b0316306001600160a01b03161461067d5760405162461bcd60e51b8152600401610399906142c9565b6106976d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146106c75760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018b90526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561070d57600080fd5b505afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190613f8e565b9050806020015189826040015161075c9190614456565b11156107aa5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5452532d3033303a414d4f554e545f544f4f5f424947000000006044820152606401610399565b60085460405163296586d360e21b8152600481018c90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156107ef57600080fd5b505afa158015610803573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082b9190810190613e64565b905061083b81602001518b6113b4565b6020830151919950975060009061085190610aac565b8251604051636eb1769f60e11b81526001600160a01b0391821660048201523060248201529192508c919083169063dd62ed3e9060440160206040518083038186803b1580156108a057600080fd5b505afa1580156108b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190614013565b10156108ea5760009950505050610aa1565b81516002546109049183916001600160a01b03168c6135b1565b8251600254604051929c507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e9261094792916001600160a01b0316908d9061413c565b60405180910390a1896109a65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3033313a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b6000806109b28e61333e565b915091506109c6838560000151838d6135b1565b9b507f6e18cdd81334cca9a49a7b3a4305750ab3d5e62ee7fa04ab08b28f21a53486718460000151828c6040516109ff9392919061413c565b60405180910390a18b610a625760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3033323a5052454d49554d5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b604080518f8152602081018f90527fc78d1fffca4ae6e34ee8442f7e1bc6fe124bf1a3374c7a902cae38d496ced322910160405180910390a150505050505b505050509250925092565b600754604051630e48080360e21b8152600481018390526000916001600160a01b031690633920200c9060240160206040518083038186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b299190613cff565b80610bab575060075460405163ba80b8ed60e01b8152600481018490526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab9190613cff565b610c055760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3037303a4e4f545f50524f445543545f4f525f52495360448201526412d413d3d360da1b6064820152608401610399565b506000818152600560205260409020546001600160a01b03165b919050565b6000546201000090046001600160a01b0316632ca65a79610c423390565b6040518263ffffffff1660e01b8152600401610c5e9190614160565b60206040518083038186803b158015610c7657600080fd5b505afa158015610c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cae9190613cff565b610cca5760405162461bcd60e51b815260040161039990614347565b610cd26138c3565b6040517f7bd43c6857df1d4fd40c4e86f9cf80ba02adf2e9fdadf03d9e8057eb429fcc5b90600090a1565b600080610d13600154600160a01b900460ff1690565b15610d305760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316610d585760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610da157600080fd5b505afa158015610db5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ddd9190810190613d58565b905060006001600160a01b0316610e0d82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b03161415610e345760405162461bcd60e51b815260040161039990614300565b610e4f6e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b031614610e7f5760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610ec457600080fd5b505afa158015610ed8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f009190810190613d58565b60065460405163620d1b0560e11b8152600481018a90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b158015610f4a57600080fd5b505afa158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190613ce3565b90506000610f938360200151611d31565b90506000816080015111610fe95760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3035303a4645455f535045435f554e444546494e45446044820152606401610399565b6020808401516000908152600590915260409020546001600160a01b0316611011828a613918565b975061101d888a6144ad565b6040516370a0823160e01b81526001600160a01b0385811660048301529198508a918316906370a082319060240160206040518083038186803b15801561106357600080fd5b505afa158015611077573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109b9190614013565b10156110e95760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5452532d3035323a42414c414e43455f544f4f5f534d414c4c006044820152606401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190614013565b10156111d45760405162461bcd60e51b815260206004820152603260248201527f4552524f523a5452532d3035333a4341504954414c5f5452414e534645525f41604482015271131313d5d05390d157d513d3d7d4d350531360721b6064820152608401610399565b6002546000906111f190839086906001600160a01b03168c6135b1565b6002546040519192507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e916112359187916001600160a01b03909116908d9061413c565b60405180910390a1806112945760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3035343a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b60006112b986602001516000908152600360205260409020546001600160a01b031690565b90506112c78386838c6135b1565b91507f4a9a3e028031198ad78a401460c1524a9322592291fed6b5306710aae5ff6d3985828b6040516112fc9392919061413c565b60405180910390a18161135f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3035353a4341504954414c5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b602080870151604080519182529181018e90529081018c90527f855e172a7eb8b6ab1abf4014f1e3683e97000f5c207690b9d8447c9df1c00eb39060600160405180910390a150505050505050509250929050565b60008060006113c285611d31565b905060008160800151116114185760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3032343a4645455f535045435f554e444546494e45446044820152606401610399565b6114228185613918565b925061142e83856144ad565b9150509250929050565b6000806000611450600154600160a01b900460ff1690565b1561146d5760405162461bcd60e51b815260040161039990614294565b67547265617375727960c01b611482816134c9565b6001600160a01b0316306001600160a01b0316146114b25760405162461bcd60e51b8152600401610399906142c9565b6114cc6d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146114fc5760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018790526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561154257600080fd5b505afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613f8e565b90508060200151816040015110156115ac576115a4868260400151836020015161017591906144ad565b919650945092505b50509193909250565b6115ee6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600754604051630e48080360e21b8152600481018890526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561163257600080fd5b505afa158015611646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166a9190613cff565b806116ec575060075460405163ba80b8ed60e01b8152600481018890526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b1580156116b457600080fd5b505afa1580156116c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ec9190613cff565b6117495760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3032303a49445f4e4f545f50524f445543545f4f525f604482015267149254d2d413d3d360c21b6064820152608401610399565b61175c6004670de0b6b3a764000061446e565b8411156117b75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5452532d3032313a46524143494f4e414c5f4645455f544f4f5f60448201526242494760e81b6064820152608401610399565b6040518060c0016040528087815260200186815260200185815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525042602082018190526040909101529695505050505050565b611838600154600160a01b900460ff1690565b156118555760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796118733390565b6040518263ffffffff1660e01b815260040161188f9190614160565b60206040518083038186803b1580156118a757600080fd5b505afa1580156118bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118df9190613cff565b6118fb5760405162461bcd60e51b815260040161039990614347565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119789190613ce3565b60075460405163ba80b8ed60e01b8152600481018690529192506001600160a01b03169063ba80b8ed9060240160206040518083038186803b1580156119bd57600080fd5b505afa1580156119d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f59190613cff565b611a415760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3031363a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b6001600160a01b038216611aa15760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031373a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b60008381526003602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251868152918201527f347fbbd524a9e157686795820f5abf777a026670f7dbaa751f4f190abc52f3a2910160405180910390a1505050565b611b1b600154600160a01b900460ff1690565b15611b385760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a79611b563390565b6040518263ffffffff1660e01b8152600401611b729190614160565b60206040518083038186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190613cff565b611bde5760405162461bcd60e51b815260040161039990614347565b60075460405163ba80b8ed60e01b8152823560048201526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611c2257600080fd5b505afa158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a9190613cff565b611ca65760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3032333a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290611cca828261466e565b50508015611cea5781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527fc3ef28d06d8c4c14101ca058d5b1507f9710ae8e34940a185cff056c375671a990606001610597565b611d6a6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600460008381526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382018054611db690614607565b80601f0160208091040260200160405190810160405280929190818152602001828054611de290614607565b8015611e2f5780601f10611e0457610100808354040283529160200191611e2f565b820191906000526020600020905b815481529060010190602001808311611e1257829003601f168201915b50505050508152602001600482015481526020016005820154815250509050919050565b600054610100900460ff1615808015611e735750600054600160ff909116105b80611e8d5750303b158015611e8d575060005460ff166001145b611ef05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610399565b6000805460ff191660011790558015611f13576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f3d600090565b6541636365737360d01b14611f7f57611f5e6541636365737360d01b6134c9565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611f87613a1c565b8015611fc9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610597565b5050565b611fe0600154600160a01b900460ff1690565b15611ffd5760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a7961201b3390565b6040518263ffffffff1660e01b81526004016120379190614160565b60206040518083038186803b15801561204f57600080fd5b505afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190613cff565b6120a35760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166121035760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031353a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f3769187331e10b0394c677689372317cc625318f5e50b76cb4da221dbdf05ef89060200160405180910390a150565b61216a600154600160a01b900460ff1690565b156121875760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796121a53390565b6040518263ffffffff1660e01b81526004016121c19190614160565b60206040518083038186803b1580156121d957600080fd5b505afa1580156121ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122119190613cff565b61222d5760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166122835760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3031303a544f4b454e5f414444524553535f5a45524f6044820152606401610399565b600754604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ff9190613cff565b61234b5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3031313a4e4f545f50524f44554354000000000000006044820152606401610399565b6000828152600560205260409020546001600160a01b0316156123c05760405162461bcd60e51b815260206004820152602760248201527f4552524f523a5452532d3031323a50524f445543545f544f4b454e5f414c524560448201526610511657d4d15560ca1b6064820152608401610399565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561240557600080fd5b505afa158015612419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243d9190613ce3565b9050816001600160a01b0316816001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561248257600080fd5b505afa158015612496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ba9190613ce3565b6001600160a01b0316146125295760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031333a50524f445543545f544f4b454e5f4144445260448201526f4553535f4e4f545f4d41544348494e4760801b6064820152608401610399565b600954604051630d229f3b60e41b8152600481018590526000916001600160a01b03169063d229f3b09060240160206040518083038186803b15801561256e57600080fd5b505afa158015612582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a69190614013565b6000818152600560205260409020549091506001600160a01b031615806125e657506000818152600560205260409020546001600160a01b038481169116145b61264b5760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031343a5249534b504f4f4c5f544f4b454e5f41444460448201526f524553535f4e4f545f4d414348494e4760801b6064820152608401610399565b600084815260056020908152604080832080546001600160a01b0388166001600160a01b03199182168117909255858552938290208054909416811790935580518781529182018490528101919091527f78b40e42f597552da073de514ce9a92a14a8e48cb9bb12a1fae74564a0dcf3ab9060600160405180910390a150505050565b6000806126e4600154600160a01b900460ff1690565b156127015760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166127295760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561277257600080fd5b505afa158015612786573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127ae9190810190613d58565b905060006001600160a01b03166127de82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b031614156128055760405162461bcd60e51b815260040161039990614300565b6128206e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b0316146128505760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561289557600080fd5b505afa1580156128a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128d19190810190613d58565b9050858160c001516128e39190614456565b8160a00151101580612906575060c08101511580156129065750858160e0015110155b6129785760405162461bcd60e51b815260206004820152603960248201527f4552524f523a5452532d3036303a43415041434954595f4f525f42414c414e4360448201527f455f534d414c4c45525f5448414e5f5749544844524157414c000000000000006064820152608401610399565b600061299d82602001516000908152600360205260409020546001600160a01b031690565b60065460405163620d1b0560e11b8152600481018b90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b1580156129e757600080fd5b505afa1580156129fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1f9190613ce3565b602084810151600090815260059091526040908190205490516370a0823160e01b81526001600160a01b038581166004830152929350911690899082906370a082319060240160206040518083038186803b158015612a7d57600080fd5b505afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab59190614013565b1015612b1b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3036313a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b158015612b6557600080fd5b505afa158015612b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9d9190614013565b1015612c005760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a5452532d3036323a5749544844524157414c5f414c4c4f57414e60448201526b10d157d513d3d7d4d350531360a21b6064820152608401610399565b600097508896506000612c158285858b6135b1565b90507fbe5d373e2476acbcb4aa97c605f358cfe7748bebff73d2d3195f587dc61f59c384848a604051612c4a9392919061413c565b60405180910390a180612cb05760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3036333a5749544844524157414c5f5452414e5346456044820152671497d1905253115160c21b6064820152608401610399565b602080860151604080519182529181018d90529081018990527fdbb3ae752b98a0c1c3c26fe1b0a7faa343da1c6fe5e0a80624f36e8e25e22edf9060600160405180910390a1505050505050509250929050565b6000546201000090046001600160a01b0316632ca65a79612d223390565b6040518263ffffffff1660e01b8152600401612d3e9190614160565b60206040518083038186803b158015612d5657600080fd5b505afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190613cff565b612daa5760405162461bcd60e51b815260040161039990614347565b612db2613b52565b6040517f5508e022c084f2aba2d9ebf198ee0e2e205840df815b91112781505e6798bfdc90600090a1565b612df06004670de0b6b3a764000061446e565b81565b600080612e09600154600160a01b900460ff1690565b15612e265760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316612e4e5760405162461bcd60e51b81526004016103999061424d565b83600080612e5b8361333e565b90925090506001600160a01b038116612e865760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b612e9b816134c9565b6001600160a01b0316306001600160a01b031614612ecb5760405162461bcd60e51b8152600401610399906142c9565b612ee56d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b031614612f155760405162461bcd60e51b81526004016103999061438a565b60085460405163296586d360e21b8152600481018a90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015612f5a57600080fd5b505afa158015612f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f969190810190613e64565b90506000612fa78260200151610aac565b9050600080612fb58c61333e565b915091506000600860009054906101000a90046001600160a01b03166001600160a01b031663cef58f138e8e6040518363ffffffff1660e01b8152600401613007929190918252602082015260400190565b60006040518083038186803b15801561301f57600080fd5b505afa158015613033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261305b9190810190613f14565b60408082015190516370a0823160e01b81526001600160a01b03858116600483015292935090918616906370a082319060240160206040518083038186803b1580156130a657600080fd5b505afa1580156130ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130de9190614013565b10156131445760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3034323a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b6040818101519051636eb1769f60e11b81526001600160a01b03848116600483015230602483015286169063dd62ed3e9060440160206040518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190614013565b10156132275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3034333a5041594f55545f414c4c4f57414e43455f5460448201526713d3d7d4d350531360c21b6064820152608401610399565b600061323d8584886000015185604001516135b1565b6040808401518851915160009f50909d509192507f967b0d7f4806051ef2c1375d324be9be0c739a4e34845bc060210577fd677f85916132809186918f9061413c565b60405180910390a1806132e15760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5452532d3034343a5041594f55545f5452414e534645525f46416044820152631253115160e21b6064820152608401610399565b855160408381015181518781526001600160a01b03909316602084015282820152517f8b5ad77a07a1f8dbb7f91bd53d28ecf3c900534c88f13672f6f2ddcf01ec7f859181900360600190a1505050505050505050509250929050565b60085460405163296586d360e21b815260048101839052600091829182916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561338757600080fd5b505afa15801561339b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133c39190810190613e64565b6009546020820151604051630d229f3b60e41b815260048101919091529192506001600160a01b03169063d229f3b09060240160206040518083038186803b15801561340e57600080fd5b505afa158015613422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134469190614013565b9250600083116134a75760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5452532d3039323a50524f445543545f574954484f55545f524960448201526514d2d413d3d360d21b6064820152608401610399565b505060008181526003602052604090205490926001600160a01b039091169150565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561351357600080fd5b505afa158015613527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354b9190613ce3565b90506001600160a01b038116610c1f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610399565b6000846001600160a01b038082163b151590861615806135d857506001600160a01b038516155b806135e1575080155b1561363c576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a16000925050506138bb565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561368157600080fd5b505afa158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b99190614013565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b15801561370657600080fd5b505afa15801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190614013565b90508582108061374d57508581105b156137985760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a160009450505050506138bb565b6000808a6001600160a01b03166323b872dd8b8b8b6040516024016137bf9392919061413c565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516137f89190614120565b6000604051808303816000865af19150503d8060008114613835576040519150601f19603f3d011682016040523d82523d6000602084013e61383a565b606091505b50915091508180156138705750805115806138705750805160201480156138705750808060200190518101906138709190613cff565b9650866138b4577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b828251836040516138ab9392919061419a565b60405180910390a15b5050505050505b949350505050565b6138cb613b95565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b606082015151600090156139875760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3039303a4645455f43414c43554c4154494f4e5f444160448201526f151057d393d517d4d5541413d495115160821b6064820152608401610399565b5060208201516040830151156139c757670de0b6b3a76400008284604001516139b0919061448e565b6139ba919061446e565b6139c49082614456565b90505b818110613a165760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3039313a4645455f544f4f5f424947000000000000006044820152606401610399565b92915050565b600054610100900460ff16613a875760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610399565b613a996542756e646c6560d01b6134c9565b600680546001600160a01b0319166001600160a01b0392909216919091179055613ace6810dbdb5c1bdb995b9d60ba1b6134c9565b600780546001600160a01b0319166001600160a01b0392909216919091179055613b0065506f6c69637960d01b6134c9565b600880546001600160a01b0319166001600160a01b0392909216919091179055613b3063141bdbdb60e21b6134c9565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b613b5a613bed565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138fb3390565b613ba8600154600160a01b900460ff1690565b613beb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610399565b565b613c00600154600160a01b900460ff1690565b15613beb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610399565b600082601f830112613c50578081fd5b815167ffffffffffffffff811115613c6a57613c6a614658565b613c7d601f8201601f1916602001614425565b818152846020838601011115613c91578283fd5b6138bb8260208301602087016145d7565b805160048110610c1f57600080fd5b805160038110610c1f57600080fd5b600060208284031215613cd1578081fd5b8135613cdc816146f3565b9392505050565b600060208284031215613cf4578081fd5b8151613cdc816146f3565b600060208284031215613d10578081fd5b81518015158114613cdc578182fd5b600060208284031215613d30578081fd5b5035919050565b60008060408385031215613d49578081fd5b50508035926020909101359150565b600060208284031215613d69578081fd5b815167ffffffffffffffff80821115613d80578283fd5b8184019150610140808387031215613d96578384fd5b613d9f81614425565b9050825181526020830151602082015260408301516040820152613dc560608401613ca2565b6060820152608083015182811115613ddb578485fd5b613de787828601613c40565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613e3d578081fd5b813567ffffffffffffffff811115613e53578182fd5b820160c08185031215613cdc578182fd5b600060208284031215613e75578081fd5b815167ffffffffffffffff80821115613e8c578283fd5b9083019060c08286031215613e9f578283fd5b613ea960c0614425565b8251613eb4816146f3565b815260208381015190820152613ecc60408401613cb1565b6040820152606083015182811115613ee2578485fd5b613eee87828601613c40565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613f25578081fd5b815167ffffffffffffffff80821115613f3c578283fd5b9083019060c08286031215613f4f578283fd5b613f5960c0614425565b82518152602083015160028110613f6e578485fd5b602082015260408381015190820152606083015182811115613ee2578485fd5b6000610120808385031215613fa1578182fd5b613faa81614425565b9050613fb583613cb1565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060208284031215614024578081fd5b5051919050565b6000806040838503121561403d578182fd5b82359150602083013561404f816146f3565b809150509250929050565b60008060408385031215613d49578182fd5b600080600080600060808688031215614083578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff808211156140af578283fd5b818801915088601f8301126140c2578283fd5b8135818111156140d0578384fd5b8960208285010111156140e1578384fd5b9699959850939650602001949392505050565b6000815180845261410c8160208601602086016145d7565b601f01601f19169290920160200192915050565b600082516141328184602087016145d7565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60008415158252836020830152606060408301526141bb60608301846140f4565b95945050505050565b60208082526027908201527f4552524f523a5452532d3030323a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526022908201527f4552524f523a5452532d3030353a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b60208082526027908201527f4552524f523a5452532d3030313a494e5354414e43455f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b6020808252818101527f4552524f523a5452532d3030343a54524541535552595f53555350454e444544604082015260600190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526027908201527f4552524f523a5452532d3030333a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015261440560e08401826140f4565b9050608084015160a084015260a084015160c08401528091505092915050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561444e5761444e614658565b604052919050565b6000821982111561446957614469614642565b500190565b60008261448957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156144a8576144a8614642565b500290565b6000828210156144bf576144bf614642565b500390565b5b81811015611fc957600081556001016144c5565b67ffffffffffffffff8311156144f1576144f1614658565b6144fb8154614607565b600080601f8611601f84118181171561451a5760008681526020902092505b8015614549576020601f890104830160208910156145355750825b6145476020601f8801048501826144c4565b505b50806001811461457b57600094508715614564578387013594505b6002880260001960088a021c1986161786556145cd565b601f198816945082845b868110156145a55788860135825560209586019560019092019101614585565b50888610156145c257878501356000196008601f8c16021c191681555b506001600289020186555b5050505050505050565b60005b838110156145f25781810151838201526020016145da565b83811115614601576000848401525b50505050565b60028104600182168061461b57607f821691505b6020821081141561463c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8135815560208201356001820155604082013560028201556060820135601e1983360301811261469d57600080fd5b8201803567ffffffffffffffff8111156146b657600080fd5b6020820191508036038213156146cb57600080fd5b6146d98183600386016144d9565b50506080820135600482015560a082013560058201555050565b6001600160a01b038116811461470857600080fd5b5056fea26469706673582212209c6e17d64e138985579699ae8a3c6c60853f74a96d720c58205175e0cdbe5ef264736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8CA946AA GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xCAB2504D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xCAB2504D EQ PUSH2 0x30D JUMPI DUP1 PUSH4 0xCC9CF8CD EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0xD9358075 EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0xE6400BBE EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xF964690D EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x356 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x8CA946AA EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x8CCF5CA2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xA434F0AD EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0xA44330C4 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0xB79F5EAB EQ PUSH2 0x2EB JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x2FA JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x34E73122 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x34E73122 EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0x49081637 EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0x5ECC078E EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0x62F0AB55 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x86039AED EQ PUSH2 0x289 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1132A7F EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x2108268 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x38696BB EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0x46F7DA2 EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x26DEBDAA EQ PUSH2 0x1CF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x165 PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E2C JUMP JUMPDEST PUSH2 0x369 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17A PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D37 JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH2 0x1AA CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0xAAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x165 PUSH2 0xC24 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x1DD CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0xCFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x205 CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0x13B4 JUMP JUMPDEST PUSH2 0x1AF PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x246 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x17A PUSH2 0x264 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0x1438 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x277 CALLDATASIZE PUSH1 0x4 PUSH2 0x406C JUMP JUMPDEST PUSH2 0x15B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x43CB JUMP JUMPDEST PUSH2 0x165 PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x1825 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x3E2C JUMP JUMPDEST PUSH2 0x1B08 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x2D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0x1D31 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1AF JUMP JUMPDEST PUSH2 0x2B9 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x308 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CC0 JUMP JUMPDEST PUSH2 0x1E53 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x31B CALLDATASIZE PUSH1 0x4 PUSH2 0x3CC0 JUMP JUMPDEST PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x165 PUSH2 0x32E CALLDATASIZE PUSH1 0x4 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x2157 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0x26CE JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2D04 JUMP JUMPDEST PUSH2 0x2B9 PUSH2 0x2DDD JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D37 JUMP JUMPDEST PUSH2 0x2DF3 JUMP JUMPDEST PUSH2 0x37C PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3C0 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3DC SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x408 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE DUP3 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x48C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x510 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032323A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 DUP3 SWAP1 PUSH2 0x534 DUP3 DUP3 PUSH2 0x466E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x554 JUMPI DUP2 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP2 DUP5 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x389AB9B2665A8EF1ADF5A151C45E2546C4B1FFE8CFA537DD96A5EB8046B06EFE SWAP1 PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x5BB PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x5D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x600 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST DUP5 PUSH1 0x0 DUP1 PUSH2 0x60D DUP4 PUSH2 0x333E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x638 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x41C4 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x64D DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x67D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x697 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x70D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x721 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x745 SWAP2 SWAP1 PUSH2 0x3F8E JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP10 DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x75C SWAP2 SWAP1 PUSH2 0x4456 JUMP JUMPDEST GT ISZERO PUSH2 0x7AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033303A414D4F554E545F544F4F5F42494700000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x803 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x82B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST SWAP1 POP PUSH2 0x83B DUP2 PUSH1 0x20 ADD MLOAD DUP12 PUSH2 0x13B4 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP1 PUSH2 0x851 SWAP1 PUSH2 0xAAC JUMP JUMPDEST DUP3 MLOAD PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE SWAP2 SWAP3 POP DUP13 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8D8 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x8EA JUMPI PUSH1 0x0 SWAP10 POP POP POP POP PUSH2 0xAA1 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x2 SLOAD PUSH2 0x904 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH2 0x35B1 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP13 POP PUSH32 0xACB52383128D246C2AB215825C8705382E85E3D779899196DDD096C74C70880E SWAP3 PUSH2 0x947 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP14 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP10 PUSH2 0x9A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033313A4645455F5452414E534645525F4641494C45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9B2 DUP15 PUSH2 0x333E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9C6 DUP4 DUP6 PUSH1 0x0 ADD MLOAD DUP4 DUP14 PUSH2 0x35B1 JUMP JUMPDEST SWAP12 POP PUSH32 0x6E18CDD81334CCA9A49A7B3A4305750AB3D5E62EE7FA04AB08B28F21A5348671 DUP5 PUSH1 0x0 ADD MLOAD DUP3 DUP13 PUSH1 0x40 MLOAD PUSH2 0x9FF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 PUSH2 0xA62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033323A5052454D49554D5F5452414E534645525F46 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1052531151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP16 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE PUSH32 0xC78D1FFFCA4AE6E34EE8442F7E1BC6FE124BF1A3374C7A902CAE38D496CED322 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMPDEST POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB29 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST DUP1 PUSH2 0xBAB JUMPI POP PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB87 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBAB SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0xC05 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3037303A4E4F545F50524F445543545F4F525F524953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x12D413D3D3 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xC42 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC5E SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC8A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCAE SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0xCCA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH2 0xCD2 PUSH2 0x38C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7BD43C6857DF1D4FD40C4E86F9CF80BA02ADF2E9FDADF03D9E8057EB429FCC5B SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD13 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0xD30 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD58 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE DUP6 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xDDD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE0D DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0xE34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4300 JUMP JUMPDEST PUSH2 0xE4F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE7F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xED8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xF00 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x620D1B05 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC41A360A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF5E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF82 SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xF93 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x1D31 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0xFE9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035303A4645455F535045435F554E444546494E4544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1011 DUP3 DUP11 PUSH2 0x3918 JUMP JUMPDEST SWAP8 POP PUSH2 0x101D DUP9 DUP11 PUSH2 0x44AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP9 POP DUP11 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1063 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1077 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x109B SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x10E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035323A42414C414E43455F544F4F5F534D414C4C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP11 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1147 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x116B SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x11D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035333A4341504954414C5F5452414E534645525F41 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x131313D5D05390D157D513D3D7D4D3505313 PUSH1 0x72 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x11F1 SWAP1 DUP4 SWAP1 DUP7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH32 0xACB52383128D246C2AB215825C8705382E85E3D779899196DDD096C74C70880E SWAP2 PUSH2 0x1235 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP14 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x1294 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035343A4645455F5452414E534645525F4641494C45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B9 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x12C7 DUP4 DUP7 DUP4 DUP13 PUSH2 0x35B1 JUMP JUMPDEST SWAP2 POP PUSH32 0x4A9A3E028031198AD78A401460C1524A9322592291FED6B5306710AAE5FF6D39 DUP6 DUP3 DUP12 PUSH1 0x40 MLOAD PUSH2 0x12FC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH2 0x135F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035353A4341504954414C5F5452414E534645525F46 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1052531151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP8 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE SWAP2 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 DUP2 ADD DUP13 SWAP1 MSTORE PUSH32 0x855E172A7EB8B6AB1ABF4014F1E3683E97000F5C207690B9D8447C9DF1C00EB3 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x13C2 DUP6 PUSH2 0x1D31 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1418 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032343A4645455F535045435F554E444546494E4544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x1422 DUP2 DUP6 PUSH2 0x3918 JUMP JUMPDEST SWAP3 POP PUSH2 0x142E DUP4 DUP6 PUSH2 0x44AD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1450 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x146D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1482 DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x14CC PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1556 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x157A SWAP2 SWAP1 PUSH2 0x3F8E JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x15AC JUMPI PUSH2 0x15A4 DUP7 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x44AD JUMP JUMPDEST SWAP2 SWAP7 POP SWAP5 POP SWAP3 POP JUMPDEST POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH2 0x15EE PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1646 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x166A SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST DUP1 PUSH2 0x16EC JUMPI POP PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16EC SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032303A49445F4E4F545F50524F445543545F4F525F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x149254D2D413D3D3 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x175C PUSH1 0x4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x446E JUMP JUMPDEST DUP5 GT ISZERO PUSH2 0x17B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032313A46524143494F4E414C5F4645455F544F4F5F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x424947 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP1 DUP3 MSTORE POP TIMESTAMP PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1838 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1855 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x1873 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x188F SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18DF SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x18FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1978 SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19D1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F5 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1A41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031363A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1AA1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031373A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP7 DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0x347FBBD524A9E157686795820F5ABF777A026670F7DBAA751F4F190ABC52F3A2 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1B1B PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1B38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x1B56 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B72 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B9E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BC2 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1BDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE DUP3 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C36 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C5A SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1CA6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032333A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 DUP3 SWAP1 PUSH2 0x1CCA DUP3 DUP3 PUSH2 0x466E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x1CEA JUMPI DUP2 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP2 DUP5 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC3EF28D06D8C4C14101CA058D5B1507F9710AE8E34940A185CFF056C375671A9 SWAP1 PUSH1 0x60 ADD PUSH2 0x597 JUMP JUMPDEST PUSH2 0x1D6A PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x1DB6 SWAP1 PUSH2 0x4607 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DE2 SWAP1 PUSH2 0x4607 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E2F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E04 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1E2F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1E12 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1E73 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1E8D JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E8D JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1EF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1F13 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1F3D PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1F7F JUMPI PUSH2 0x1F5E PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1F87 PUSH2 0x3A1C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x597 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1FE0 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1FFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x201B CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2037 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x204F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2063 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2087 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x20A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2103 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031353A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x3769187331E10B0394C677689372317CC625318F5E50B76CB4DA221DBDF05EF8 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x216A PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x21A5 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C1 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2211 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x222D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2283 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031303A544F4B454E5F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22DB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22FF SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x234B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031313A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x23C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031323A50524F445543545F544F4B454E5F414C5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x10511657D4D155 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2419 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x243D SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x21DF0DA7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2496 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24BA SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2529 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031333A50524F445543545F544F4B454E5F41444452 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x4553535F4E4F545F4D41544348494E47 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD229F3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD229F3B0 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x256E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2582 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x25A6 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO DUP1 PUSH2 0x25E6 JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 AND EQ JUMPDEST PUSH2 0x264B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031343A5249534B504F4F4C5F544F4B454E5F414444 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x524553535F4E4F545F4D414348494E47 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE DUP6 DUP6 MSTORE SWAP4 DUP3 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP5 AND DUP2 OR SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x78B40E42F597552DA073DE514CE9A92A14A8E48CB9BB12A1FAE74564A0DCF3AB SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x26E4 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2701 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2729 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE DUP6 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2786 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x27AE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x27DE DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x2805 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4300 JUMP JUMPDEST PUSH2 0x2820 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2850 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2895 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x28D1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x28E3 SWAP2 SWAP1 PUSH2 0x4456 JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD LT ISZERO DUP1 PUSH2 0x2906 JUMPI POP PUSH1 0xC0 DUP2 ADD MLOAD ISZERO DUP1 ISZERO PUSH2 0x2906 JUMPI POP DUP6 DUP2 PUSH1 0xE0 ADD MLOAD LT ISZERO JUMPDEST PUSH2 0x2978 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036303A43415041434954595F4F525F42414C414E43 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x455F534D414C4C45525F5448414E5F5749544844524157414C00000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x299D DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x620D1B05 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC41A360A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x29FB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A1F SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x20 DUP5 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP2 AND SWAP1 DUP10 SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A91 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AB5 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x2B1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036313A5249534B504F4F4C5F57414C4C45545F4241 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x13105390D157D513D3D7D4D3505313 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP11 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B79 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B9D SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x2C00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036323A5749544844524157414C5F414C4C4F57414E PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x10D157D513D3D7D4D3505313 PUSH1 0xA2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 SWAP8 POP DUP9 SWAP7 POP PUSH1 0x0 PUSH2 0x2C15 DUP3 DUP6 DUP6 DUP12 PUSH2 0x35B1 JUMP JUMPDEST SWAP1 POP PUSH32 0xBE5D373E2476ACBCB4AA97C605F358CFE7748BEBFF73D2D3195F587DC61F59C3 DUP5 DUP5 DUP11 PUSH1 0x40 MLOAD PUSH2 0x2C4A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x2CB0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036333A5749544844524157414C5F5452414E534645 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x1497D19052531151 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP7 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE SWAP2 DUP2 ADD DUP14 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0xDBB3AE752B98A0C1C3C26FE1B0A7FAA343DA1C6FE5E0A80624F36E8E25E22EDF SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x2D22 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D3E SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D6A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D8E SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x2DAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH2 0x2DB2 PUSH2 0x3B52 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x5508E022C084F2ABA2D9EBF198EE0E2E205840DF815B91112781505E6798BFDC SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2DF0 PUSH1 0x4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x446E JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2E09 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2E26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E4E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST DUP4 PUSH1 0x0 DUP1 PUSH2 0x2E5B DUP4 PUSH2 0x333E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2E86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x41C4 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x2E9B DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2ECB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x2EE5 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2F15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2F96 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2FA7 DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0xAAC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2FB5 DUP13 PUSH2 0x333E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xCEF58F13 DUP15 DUP15 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3007 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3033 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x305B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3F14 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD SWAP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP1 SWAP2 DUP7 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30DE SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x3144 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034323A5249534B504F4F4C5F57414C4C45545F4241 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x13105390D157D513D3D7D4D3505313 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD SWAP1 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP7 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3190 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31C8 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x3227 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034333A5041594F55545F414C4C4F57414E43455F54 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D3D7D4D3505313 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x323D DUP6 DUP5 DUP9 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP5 ADD MLOAD DUP9 MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP16 POP SWAP1 SWAP14 POP SWAP2 SWAP3 POP PUSH32 0x967B0D7F4806051EF2C1375D324BE9BE0C739A4E34845BC060210577FD677F85 SWAP2 PUSH2 0x3280 SWAP2 DUP7 SWAP2 DUP16 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x32E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034343A5041594F55545F5452414E534645525F4641 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x12531151 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST DUP6 MLOAD PUSH1 0x40 DUP4 DUP2 ADD MLOAD DUP2 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x20 DUP5 ADD MSTORE DUP3 DUP3 ADD MSTORE MLOAD PUSH32 0x8B5AD77A07A1F8DBB7F91BD53D28ECF3C900534C88F13672F6F2DDCF01EC7F85 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x339B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x33C3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xD229F3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD229F3B0 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x340E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3422 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3446 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x34A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039323A50524F445543545F574954484F55545F5249 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x14D2D413D3D3 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3527 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x354B SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x35D8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0x35E1 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x363C JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x38BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3681 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3695 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x36B9 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x371A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x373E SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x374D JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x3798 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x38BB JUMP JUMPDEST PUSH1 0x0 DUP1 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x37BF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x37F8 SWAP2 SWAP1 PUSH2 0x4120 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3835 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x383A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x3870 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x3870 JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x3870 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3870 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x38B4 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x38AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x419A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x38CB PUSH2 0x3B95 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MLOAD MLOAD PUSH1 0x0 SWAP1 ISZERO PUSH2 0x3987 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039303A4645455F43414C43554C4154494F4E5F4441 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x151057D393D517D4D5541413D4951151 PUSH1 0x82 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP4 ADD MLOAD ISZERO PUSH2 0x39C7 JUMPI PUSH8 0xDE0B6B3A7640000 DUP3 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x39B0 SWAP2 SWAP1 PUSH2 0x448E JUMP JUMPDEST PUSH2 0x39BA SWAP2 SWAP1 PUSH2 0x446E JUMP JUMPDEST PUSH2 0x39C4 SWAP1 DUP3 PUSH2 0x4456 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT PUSH2 0x3A16 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039313A4645455F544F4F5F42494700000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3A87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x3A99 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3ACE PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3B00 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3B30 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3B5A PUSH2 0x3BED JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x38FB CALLER SWAP1 JUMP JUMPDEST PUSH2 0x3BA8 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x3BEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x3C00 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x3BEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3C50 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C6A JUMPI PUSH2 0x3C6A PUSH2 0x4658 JUMP JUMPDEST PUSH2 0x3C7D PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x4425 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3C91 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x38BB DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x45D7 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CD1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3CDC DUP2 PUSH2 0x46F3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CF4 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3CDC DUP2 PUSH2 0x46F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D10 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3CDC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D30 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D49 JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D69 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3D80 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x3D96 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3D9F DUP2 PUSH2 0x4425 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x3DC5 PUSH1 0x60 DUP5 ADD PUSH2 0x3CA2 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3DDB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3DE7 DUP8 DUP3 DUP7 ADD PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E3D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E53 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0xC0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x3CDC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E75 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3E8C JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3E9F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3EA9 PUSH1 0xC0 PUSH2 0x4425 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x3EB4 DUP2 PUSH2 0x46F3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x3ECC PUSH1 0x40 DUP5 ADD PUSH2 0x3CB1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3EE2 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3EEE DUP8 DUP3 DUP7 ADD PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F25 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3F3C JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3F4F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3F59 PUSH1 0xC0 PUSH2 0x4425 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x3F6E JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3EE2 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3FA1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x3FAA DUP2 PUSH2 0x4425 JUMP JUMPDEST SWAP1 POP PUSH2 0x3FB5 DUP4 PUSH2 0x3CB1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4024 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x403D JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x404F DUP2 PUSH2 0x46F3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D49 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4083 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x40AF JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x40C2 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x40D0 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x40E1 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x410C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x45D7 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4132 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x45D7 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x41BB PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x40F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030323A5249534B504F4F4C5F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030353A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030313A494E5354414E43455F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4552524F523A5452532D3030343A54524541535552595F53555350454E444544 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030333A5249534B504F4F4C5F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4405 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x40F4 JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x444E JUMPI PUSH2 0x444E PUSH2 0x4658 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4469 JUMPI PUSH2 0x4469 PUSH2 0x4642 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4489 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x44A8 JUMPI PUSH2 0x44A8 PUSH2 0x4642 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x44BF JUMPI PUSH2 0x44BF PUSH2 0x4642 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x44F1 JUMPI PUSH2 0x44F1 PUSH2 0x4658 JUMP JUMPDEST PUSH2 0x44FB DUP2 SLOAD PUSH2 0x4607 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP7 GT PUSH1 0x1F DUP5 GT DUP2 DUP2 OR ISZERO PUSH2 0x451A JUMPI PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP3 POP JUMPDEST DUP1 ISZERO PUSH2 0x4549 JUMPI PUSH1 0x20 PUSH1 0x1F DUP10 ADD DIV DUP4 ADD PUSH1 0x20 DUP10 LT ISZERO PUSH2 0x4535 JUMPI POP DUP3 JUMPDEST PUSH2 0x4547 PUSH1 0x20 PUSH1 0x1F DUP9 ADD DIV DUP6 ADD DUP3 PUSH2 0x44C4 JUMP JUMPDEST POP JUMPDEST POP DUP1 PUSH1 0x1 DUP2 EQ PUSH2 0x457B JUMPI PUSH1 0x0 SWAP5 POP DUP8 ISZERO PUSH2 0x4564 JUMPI DUP4 DUP8 ADD CALLDATALOAD SWAP5 POP JUMPDEST PUSH1 0x2 DUP9 MUL PUSH1 0x0 NOT PUSH1 0x8 DUP11 MUL SHR NOT DUP7 AND OR DUP7 SSTORE PUSH2 0x45CD JUMP JUMPDEST PUSH1 0x1F NOT DUP9 AND SWAP5 POP DUP3 DUP5 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x45A5 JUMPI DUP9 DUP7 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4585 JUMP JUMPDEST POP DUP9 DUP7 LT ISZERO PUSH2 0x45C2 JUMPI DUP8 DUP6 ADD CALLDATALOAD PUSH1 0x0 NOT PUSH1 0x8 PUSH1 0x1F DUP13 AND MUL SHR NOT AND DUP2 SSTORE JUMPDEST POP PUSH1 0x1 PUSH1 0x2 DUP10 MUL ADD DUP7 SSTORE JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x45F2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x45DA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4601 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x461B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x463C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 SSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x469D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x46CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x46D9 DUP2 DUP4 PUSH1 0x3 DUP7 ADD PUSH2 0x44D9 JUMP JUMPDEST POP POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0x5 DUP3 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4708 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 PUSH15 0x17D64E138985579699AE8A3C6C6085 EXTCODEHASH PUSH21 0xA96D720C58205175E0CDBE5EF264736F6C63430008 MUL STOP CALLER ","sourceMap":"3548:18091:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9244:748;;;;;;:::i;:::-;;:::i;:::-;;12251:1864;;;;;;:::i;:::-;;:::i;:::-;;;;11785:14:103;;11778:22;11760:41;;11832:2;11817:18;;11810:34;;;;11860:18;;;11853:34;11748:2;11733:18;12251:1864:81;;;;;;;;19290:304;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;9514:32:103;;;9496:51;;9484:2;9469:18;19290:304:81;9451:102:103;6191:132:81;;;:::i;15577:1964::-;;;;;;:::i;:::-;;:::i;:::-;;;;12254:25:103;;;12310:2;12295:18;;12288:34;;;;12227:18;15577:1964:81;12209:119:103;10748:397:81;;;;;;:::i;:::-;;:::i;19992:136::-;;;;;;:::i;:::-;20068:7;20094:27;;;:15;:27;;;;;;-1:-1:-1;;;;;20094:27:81;;19992:136;1615:84:48;;1685:7;;-1:-1:-1;;;1685:7:48;;;;;1615:84;;;;10773:14:103;;10766:22;10748:41;;10736:2;10721:18;1615:84:48;10703:92:103;11436:572:81;;;;;;:::i;:::-;;:::i;8492:746::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7934:552::-;;;;;;:::i;:::-;;:::i;9999:742::-;;;;;;:::i;:::-;;:::i;19752:113::-;3675:6;19752:113;;;12044:25:103;;;12032:2;12017:18;19752:113:81;11999:76:103;19600:146:81;;;;;;:::i;:::-;;:::i;19871:115::-;19956:22;;-1:-1:-1;;;;;19956:22:81;19871:115;;3630:51;;3675:6;3630:51;;1143:232:88;;;;;;:::i;:::-;;:::i;7563:365:81:-;;;;;;:::i;:::-;;:::i;6329:1228::-;;;;;;:::i;:::-;;:::i;17547:1736::-;;;;;;:::i;:::-;;:::i;6052:133::-;;;:::i;3687:67::-;;;:::i;14122:1449::-;;;;;;:::i;:::-;;:::i;9244:748::-;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;;;;;;;;;564:9:88::1;::::0;;;::::1;-1:-1:-1::0;;;;;564:9:88::1;:22;587:12;719:10:59::0;640:96;;587:12:88::1;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1::0;;;543:136:88::1;;;;;;;:::i;:::-;9406:10:81::2;::::0;:41:::2;::::0;-1:-1:-1;;;9406:41:81;;9427:19;::::2;9406:41;::::0;::::2;12044:25:103::0;-1:-1:-1;;;;;9406:10:81;;::::2;::::0;:20:::2;::::0;12017:18:103;;9406:41:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9398:79;;;::::0;-1:-1:-1;;;9398:79:81;;12957:2:103;9398:79:81::2;::::0;::::2;12939:21:103::0;12996:2;12976:18;;;12969:30;13035:27;13015:18;;;13008:55;13080:18;;9398:79:81::2;12929:175:103::0;9398:79:81::2;9578:19:::0;::::2;9544:25;9572:26:::0;;;:5:::2;:26;::::0;;;;;;;:36;;::::2;::::0;;9578:7;;9618:36:::2;9578:7:::0;9572:26;9618:36:::2;:::i;:::-;-1:-1:-1::0;;9740:21:81;;9736:108:::2;;9783:19:::0;::::2;9777:26;::::0;;;:5:::2;:26;::::0;;;;;;;:36:::2;:56:::0;;;9736:108:::2;9963:21;9859:126:::0;;9899:19;::::2;32731:25:103::0;;9932:16:81::2;::::0;;::::2;;32772:18:103::0;;;32765:34;9963:21:81;;::::2;;32815:18:103::0;;;32808:34;;;;9859:126:81::2;::::0;32719:2:103;32704:18;9859:126:81::2;;;;;;;;689:1:88;9244:748:81::0;:::o;12251:1864::-;12506:12;12533:17;12565;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;4617:22:::1;::::0;-1:-1:-1;;;;;4617:22:81::1;4596:113;;;;-1:-1:-1::0;;;4596:113:81::1;;;;;;;:::i;:::-;12431:9:::2;4804:18;4824:21:::0;4849:29:::2;4868:9;4849:18;:29::i;:::-;4803:75:::0;;-1:-1:-1;4803:75:81;-1:-1:-1;;;;;;4909:27:81;::::2;4888:104;;;;-1:-1:-1::0;;;4888:104:81::2;;;;;;;:::i;:::-;-1:-1:-1::0;;;828:27:88::3;848:6;828:19;:27::i;:::-;-1:-1:-1::0;;;;;811:44:88::3;819:4;-1:-1:-1::0;;;;;811:44:88::3;;790:119;;;;-1:-1:-1::0;;;790:119:88::3;;;;;;;:::i;:::-;1023:37;-1:-1:-1::0;;;1023:19:88::3;:37::i;:::-;-1:-1:-1::0;;;;;1007:53:88::3;719:10:59::0;-1:-1:-1;;;;;1007:53:88::3;;986:133;;;;-1:-1:-1::0;;;986:133:88::3;;;;;;;:::i;:::-;12640:7:81::4;::::0;:28:::4;::::0;-1:-1:-1;;;12640:28:81;;::::4;::::0;::::4;12044:25:103::0;;;12608:28:81::4;::::0;-1:-1:-1;;;;;12640:7:81::4;::::0;:17:::4;::::0;12017:18:103;;12640:28:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12608:60;;12736:6;:28;;;12726:6;12699;:24;;;:33;;;;:::i;:::-;:65;;12678:141;;;::::0;-1:-1:-1;;;12678:141:81;;18807:2:103;12678:141:81::4;::::0;::::4;18789:21:103::0;18846:2;18826:18;;;18819:30;18885;18865:18;;;18858:58;18933:18;;12678:141:81::4;18779:178:103::0;12678:141:81::4;12865:7;::::0;:30:::4;::::0;-1:-1:-1;;;12865:30:81;;::::4;::::0;::::4;12044:25:103::0;;;12830:32:81::4;::::0;-1:-1:-1;;;;;12865:7:81::4;::::0;:19:::4;::::0;12017:18:103;;12865:30:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;::::0;;::::4;-1:-1:-1::0;;12865:30:81::4;::::0;::::4;;::::0;::::4;::::0;;;::::4;::::0;::::4;:::i;:::-;12830:65;;12943:40;12956:8;:18;;;12976:6;12943:12;:40::i;:::-;13081:18;::::0;::::4;::::0;12905:78;;-1:-1:-1;12905:78:81;-1:-1:-1;13048:12:81::4;::::0;13063:37:::4;::::0;:17:::4;:37::i;:::-;13130:14:::0;;13114:46:::4;::::0;-1:-1:-1;;;13114:46:81;;-1:-1:-1;;;;;9788:15:103;;;13114:46:81::4;::::0;::::4;9770:34:103::0;13154:4:81::4;9820:18:103::0;;;9813:43;13048:52:81;;-1:-1:-1;13163:6:81;;13114:15;;::::4;::::0;::::4;::::0;9705:18:103;;13114:46:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:55;13110:153;;;13195:5;13185:15;;13214:38;;;;;13110:153;13357:14:::0;;13373:22:::4;::::0;13315:92:::4;::::0;13350:5;;-1:-1:-1;;;;;13373:22:81::4;13397:9:::0;13315:34:::4;:92::i;:::-;13449:14:::0;;13465:22:::4;::::0;13422:77:::4;::::0;13305:102;;-1:-1:-1;13422:77:81::4;::::0;::::4;::::0;13449:14;-1:-1:-1;;;;;13465:22:81::4;::::0;13489:9;;13422:77:::4;:::i;:::-;;;;;;;;13517:7;13509:53;;;::::0;-1:-1:-1;;;13509:53:81;;26332:2:103;13509:53:81::4;::::0;::::4;26314:21:103::0;26371:2;26351:18;;;26344:30;26410:34;26390:18;;;26383:62;-1:-1:-1;;;26461:18:103;;;26454:31;26502:19;;13509:53:81::4;26304:223:103::0;13509:53:81::4;13691:18;13711:29:::0;13744::::4;13763:9;13744:18;:29::i;:::-;13690:83;;;;13793:91;13828:5;13835:8;:14;;;13851:21;13874:9;13793:34;:91::i;:::-;13783:101;;13900:79;13930:8;:14;;;13946:21;13969:9;13900:79;;;;;;;;:::i;:::-;;;;;;;;13997:7;13989:57;;;::::0;-1:-1:-1;;;13989:57:81;;18401:2:103;13989:57:81::4;::::0;::::4;18383:21:103::0;18440:2;18420:18;;;18413:30;18479:34;18459:18;;;18452:62;-1:-1:-1;;;18530:18:103;;;18523:35;18575:19;;13989:57:81::4;18373:227:103::0;13989:57:81::4;14062:46;::::0;;12254:25:103;;;12310:2;12295:18;;12288:34;;;14062:46:81::4;::::0;12227:18:103;14062:46:81::4;;;;;;;1129:1:88;;;;;;5002::81::3;4719::::2;;;12251:1864:::0;;;;;:::o;19290:304::-;19429:10;;:33;;-1:-1:-1;;;19429:33:81;;;;;12044:25:103;;;19392:12:81;;-1:-1:-1;;;;;19429:10:81;;:20;;12017:18:103;;19429:33:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:71;;;-1:-1:-1;19466:10:81;;:34;;-1:-1:-1;;;19466:34:81;;;;;12044:25:103;;;-1:-1:-1;;;;;19466:10:81;;;;:21;;12017:18:103;;19466:34:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19421:121;;;;-1:-1:-1;;;19421:121:81;;14470:2:103;19421:121:81;;;14452:21:103;14509:2;14489:18;;;14482:30;14548:34;14528:18;;;14521:62;-1:-1:-1;;;14599:18:103;;;14592:35;14644:19;;19421:121:81;14442:227:103;19421:121:81;-1:-1:-1;19559:28:81;;;;:15;:28;;;;;;-1:-1:-1;;;;;19559:28:81;19290:304;;;;:::o;6191:132::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6271:10:81::1;:8;:10::i;:::-;6296:20;::::0;::::1;::::0;;;::::1;6191:132::o:0;15577:1964::-;15831:17;15862:24;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;4617:22:::1;::::0;-1:-1:-1;;;;;4617:22:81::1;4596:113;;;;-1:-1:-1::0;;;4596:113:81::1;;;;;;;:::i;:::-;5115:7:::2;::::0;:27:::2;::::0;-1:-1:-1;;;5115:27:81;;::::2;::::0;::::2;12044:25:103::0;;;15764:8:81;;5084:28:::2;::::0;-1:-1:-1;;;;;5115:7:81;;::::2;::::0;:17:::2;::::0;12017:18:103;;5115:27:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;5115:27:81::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;5084:58;;5221:1;-1:-1:-1::0;;;;;5173:50:81::2;:36;5191:6;:17;;;20068:7:::0;20094:27;;;:15;:27;;;;;;-1:-1:-1;;;;;20094:27:81;;19992:136;5173:36:::2;-1:-1:-1::0;;;;;5173:50:81::2;;;5152:127;;;;-1:-1:-1::0;;;5152:127:81::2;;;;;;;:::i;:::-;5583:38:::3;-1:-1:-1::0;;;5583:19:81::3;:38::i;:::-;-1:-1:-1::0;;;;;5567:54:81::3;719:10:59::0;-1:-1:-1;;;;;5567:54:81::3;;5546:135;;;;-1:-1:-1::0;;;5546:135:81::3;;;;;;;:::i;:::-;15987:7:::4;::::0;:27:::4;::::0;-1:-1:-1;;;15987:27:81;;::::4;::::0;::::4;12044:25:103::0;;;15956:28:81::4;::::0;-1:-1:-1;;;;;15987:7:81::4;::::0;:17:::4;::::0;12017:18:103;;15987:27:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;::::0;;::::4;-1:-1:-1::0;;15987:27:81::4;::::0;::::4;;::::0;::::4;::::0;;;::::4;::::0;::::4;:::i;:::-;16046:7;::::0;:26:::4;::::0;-1:-1:-1;;;16046:26:81;;::::4;::::0;::::4;12044:25:103::0;;;15956:58:81;;-1:-1:-1;16024:19:81::4;::::0;-1:-1:-1;;;;;16046:7:81;;::::4;::::0;:16:::4;::::0;12017:18:103;;16046:26:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16024:48;;16083:31;16117:38;16137:6;:17;;;16117:19;:38::i;:::-;16083:72;;16193:1;16173:7;:17;;;:21;16165:66;;;::::0;-1:-1:-1;;;16165:66:81;;29851:2:103;16165:66:81::4;::::0;::::4;29833:21:103::0;;;29870:18;;;29863:30;29929:34;29909:18;;;29902:62;29981:18;;16165:66:81::4;29823:182:103::0;16165:66:81::4;16332:17;::::0;;::::4;::::0;16301:12:::4;16316:34:::0;;;:15:::4;:34:::0;;;;;;;-1:-1:-1;;;;;16316:34:81::4;16415:37;16429:7:::0;16438:13;16415::::4;:37::i;:::-;16403:49:::0;-1:-1:-1;16481:25:81::4;16403:49:::0;16481:13;:25:::4;:::i;:::-;16594:28;::::0;-1:-1:-1;;;16594:28:81;;-1:-1:-1;;;;;9514:32:103;;;16594:28:81::4;::::0;::::4;9496:51:103::0;16462:44:81;;-1:-1:-1;16626:13:81;;16594:15;::::4;::::0;::::4;::::0;9469:18:103;;16594:28:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;16586:89;;;::::0;-1:-1:-1;;;16586:89:81;;21506:2:103;16586:89:81::4;::::0;::::4;21488:21:103::0;21545:2;21525:18;;;21518:30;21584:33;21564:18;;;21557:61;21635:18;;16586:89:81::4;21478:181:103::0;16586:89:81::4;16693:43;::::0;-1:-1:-1;;;16693:43:81;;-1:-1:-1;;;;;9788:15:103;;;16693:43:81::4;::::0;::::4;9770:34:103::0;16730:4:81::4;9820:18:103::0;;;9813:43;16740:13:81;;16693:15;;::::4;::::0;::::4;::::0;9705:18:103;;16693:43:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;16685:123;;;::::0;-1:-1:-1;;;16685:123:81;;15685:2:103;16685:123:81::4;::::0;::::4;15667:21:103::0;15724:2;15704:18;;;15697:30;15763:34;15743:18;;;15736:62;-1:-1:-1;;;15814:18:103;;;15807:48;15872:19;;16685:123:81::4;15657:240:103::0;16685:123:81::4;16889:22;::::0;16819:12:::4;::::0;16834:89:::4;::::0;16869:5;;16876:11;;-1:-1:-1;;;;;16889:22:81::4;16913:9:::0;16834:34:::4;:89::i;:::-;16979:22;::::0;16939:74:::4;::::0;16819:104;;-1:-1:-1;16939:74:81::4;::::0;::::4;::::0;16966:11;;-1:-1:-1;;;;;16979:22:81;;::::4;::::0;17003:9;;16939:74:::4;:::i;:::-;;;;;;;;17031:7;17023:53;;;::::0;-1:-1:-1;;;17023:53:81;;20335:2:103;17023:53:81::4;::::0;::::4;20317:21:103::0;20374:2;20354:18;;;20347:30;20413:34;20393:18;;;20386:62;-1:-1:-1;;;20464:18:103;;;20457:31;20505:19;;17023:53:81::4;20307:223:103::0;17023:53:81::4;17119:22;17144:36;17162:6;:17;;;20068:7:::0;20094:27;;;:15;:27;;;;;;-1:-1:-1;;;;;20094:27:81;;19992:136;17144:36:::4;17119:61;;17200:88;17235:5;17242:11;17255:14;17271:16;17200:34;:88::i;:::-;17190:98;;17304:76;17334:11;17347:14;17363:16;17304:76;;;;;;;;:::i;:::-;;;;;;;;17398:7;17390:57;;;::::0;-1:-1:-1;;;17390:57:81;;29084:2:103;17390:57:81::4;::::0;::::4;29066:21:103::0;29123:2;29103:18;;;29096:30;29162:34;29142:18;;;29135:62;-1:-1:-1;;;29213:18:103;;;29206:35;29258:19;;17390:57:81::4;29056:227:103::0;17390:57:81::4;17491:17;::::0;;::::4;::::0;17463:71:::4;::::0;;32731:25:103;;;32772:18;;;32765:34;;;32815:18;;;32808:34;;;17463:71:81::4;::::0;32719:2:103;32704:18;17463:71:81::4;;;;;;;5691:1;;;;;;4719::::2;;15577:1964:::0;;;;;:::o;10748:397::-;10852:17;10871;10904:31;10938:32;10958:11;10938:19;:32::i;:::-;10904:66;;11008:1;10988:7;:17;;;:21;10980:66;;;;-1:-1:-1;;;10980:66:81;;29490:2:103;10980:66:81;;;29472:21:103;;;29509:18;;;29502:30;29568:34;29548:18;;;29541:62;29620:18;;10980:66:81;29462:182:103;10980:66:81;11068:30;11082:7;11091:6;11068:13;:30::i;:::-;11056:42;-1:-1:-1;11120:18:81;11056:42;11120:6;:18;:::i;:::-;11108:30;;10748:397;;;;;;:::o;11436:572::-;11596:12;11623:17;11655:24;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;-1:-1:-1;;;828:27:88::1;848:6;828:19;:27::i;:::-;-1:-1:-1::0;;;;;811:44:88::1;819:4;-1:-1:-1::0;;;;;811:44:88::1;;790:119;;;;-1:-1:-1::0;;;790:119:88::1;;;;;;;:::i;:::-;1023:37;-1:-1:-1::0;;;1023:19:88::1;:37::i;:::-;-1:-1:-1::0;;;;;1007:53:88::1;719:10:59::0;-1:-1:-1;;;;;1007:53:88::1;;986:133;;;;-1:-1:-1::0;;;986:133:88::1;;;;;;;:::i;:::-;11737:7:81::2;::::0;:28:::2;::::0;-1:-1:-1;;;11737:28:81;;::::2;::::0;::::2;12044:25:103::0;;;11705:28:81::2;::::0;-1:-1:-1;;;;;11737:7:81::2;::::0;:17:::2;::::0;12017:18:103;;11737:28:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11705:60;;11807:6;:28;;;11780:6;:24;;;:55;11776:226;;;11909:82;11924:9;11966:6;:24;;;11935:6;:28;;;:55;;;;:::i;11909:82::-;11851:140:::0;;-1:-1:-1;11851:140:81;-1:-1:-1;11851:140:81;-1:-1:-1;11776:226:81::2;1129:1:88;5491::81::1;11436:572:::0;;;;;:::o;8492:746::-;8715:23;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8715:23:81;8762:10;;:33;;-1:-1:-1;;;8762:33:81;;;;;12044:25:103;;;-1:-1:-1;;;;;8762:10:81;;;;:20;;12017:18:103;;8762:33:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:71;;;-1:-1:-1;8799:10:81;;:34;;-1:-1:-1;;;8799:34:81;;;;;12044:25:103;;;-1:-1:-1;;;;;8799:10:81;;;;:21;;12017:18:103;;8799:34:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8754:124;;;;-1:-1:-1;;;8754:124:81;;19926:2:103;8754:124:81;;;19908:21:103;19965:2;19945:18;;;19938:30;20004:34;19984:18;;;19977:62;-1:-1:-1;;;20055:18:103;;;20048:38;20103:19;;8754:124:81;19898:230:103;8754:124:81;3732:22;3753:1;3675:6;3732:22;:::i;:::-;8896:13;:35;;8888:83;;;;-1:-1:-1;;;8888:83:81;;23507:2:103;8888:83:81;;;23489:21:103;23546:2;23526:18;;;23519:30;23585:34;23565:18;;;23558:62;-1:-1:-1;;;23636:18:103;;;23629:33;23679:19;;8888:83:81;23479:225:103;8888:83:81;8989:241;;;;;;;;9019:11;8989:241;;;;9044:8;8989:241;;;;9066:13;8989:241;;;;9093:18;;8989:241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8989:241:81;;;-1:-1:-1;9125:15:81;8989:241;;;;;;;;;;;8982:248;8492:746;-1:-1:-1;;;;;;8492:746:81:o;7934:552::-;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;564:9:88::1;::::0;;;::::1;-1:-1:-1::0;;;;;564:9:88::1;:22;587:12;719:10:59::0;640:96;;587:12:88::1;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1::0;;;543:136:88::1;;;;;;;:::i;:::-;8130:10:81::2;::::0;:35:::2;::::0;-1:-1:-1;;;8130:35:81;;::::2;::::0;::::2;12044:25:103::0;;;8107:20:81::2;::::0;-1:-1:-1;;;;;8130:10:81::2;::::0;:23:::2;::::0;12017:18:103;;8130:35:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8183:10;::::0;:33:::2;::::0;-1:-1:-1;;;8183:33:81;;::::2;::::0;::::2;12044:25:103::0;;;8107:58:81;;-1:-1:-1;;;;;;8183:10:81::2;::::0;:21:::2;::::0;12017:18:103;;8183:33:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8175:72;;;::::0;-1:-1:-1;;;8175:72:81;;16104:2:103;8175:72:81::2;::::0;::::2;16086:21:103::0;16143:2;16123:18;;;16116:30;16182:28;16162:18;;;16155:56;16228:18;;8175:72:81::2;16076:176:103::0;8175:72:81::2;-1:-1:-1::0;;;;;8265:35:81;::::2;8257:81;;;::::0;-1:-1:-1;;;8257:81:81;;17228:2:103;8257:81:81::2;::::0;::::2;17210:21:103::0;17267:2;17247:18;;;17240:30;17306:34;17286:18;;;17279:62;-1:-1:-1;;;17357:18:103;;;17350:31;17398:19;;8257:81:81::2;17200:223:103::0;8257:81:81::2;8348:27;::::0;;;:15:::2;:27;::::0;;;;;;;;:51;;-1:-1:-1;;;;;;8348:51:81::2;-1:-1:-1::0;;;;;8348:51:81;::::2;::::0;;::::2;::::0;;;8415:64;;31471:25:103;;;31512:18;;;31505:60;8415:64:81::2;::::0;31444:18:103;8415:64:81::2;;;;;;;689:1:88;7934:552:81::0;;:::o;9999:742::-;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;564:9:88::1;::::0;;;::::1;-1:-1:-1::0;;;;;564:9:88::1;:22;587:12;719:10:59::0;640:96;;587:12:88::1;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1::0;;;543:136:88::1;;;;;;;:::i;:::-;10161:10:81::2;::::0;:42:::2;::::0;-1:-1:-1;;;10161:42:81;;10183:19;::::2;10161:42;::::0;::::2;12044:25:103::0;-1:-1:-1;;;;;10161:10:81;;::::2;::::0;:21:::2;::::0;12017:18:103;;10161:42:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10153:81;;;::::0;-1:-1:-1;;;10153:81:81;;18046:2:103;10153:81:81::2;::::0;::::2;18028:21:103::0;18085:2;18065:18;;;18058:30;18124:28;18104:18;;;18097:56;18170:18;;10153:81:81::2;18018:176:103::0;10153:81:81::2;10327:19:::0;::::2;10293:25;10321:26:::0;;;:5:::2;:26;::::0;;;;;;;:36;;::::2;::::0;;10327:7;;10367:36:::2;10327:7:::0;10321:26;10367:36:::2;:::i;:::-;-1:-1:-1::0;;10489:21:81;;10485:108:::2;;10532:19:::0;::::2;10526:26;::::0;;;:5:::2;:26;::::0;;;;;;;:36:::2;:56:::0;;;10485:108:::2;10712:21;10608:126:::0;;10648:19;::::2;32731:25:103::0;;10681:16:81::2;::::0;;::::2;;32772:18:103::0;;;32765:34;10712:21:81;;::::2;;32815:18:103::0;;;32808:34;;;;10608:126:81::2;::::0;32719:2:103;32704:18;10608:126:81::2;32686:162:103::0;19600:146:81;19679:23;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19679:23:81;19721:5;:18;19727:11;19721:18;;;;;;;;;;;19714:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19600:146;;;:::o;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;20737:2:103;3146:190:47;;;20719:21:103;20776:2;20756:18;;;20749:30;20815:34;20795:18;;;20788:62;-1:-1:-1;;;20866:18:103;;;20859:44;20920:19;;3146:190:47;20709:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;12708:36:103;;3531:14:47;;12696:2:103;12681:18;3531:14:47;12663:87:103;3457:99:47;1143:232:88;;:::o;7563:365:81:-;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;564:9:88::1;::::0;;;::::1;-1:-1:-1::0;;;;;564:9:88::1;:22;587:12;719:10:59::0;640:96;;587:12:88::1;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1::0;;;543:136:88::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7724:35:81;::::2;7716:81;;;::::0;-1:-1:-1;;;7716:81:81;;13311:2:103;7716:81:81::2;::::0;::::2;13293:21:103::0;13350:2;13330:18;;;13323:30;13389:34;13369:18;;;13362:62;-1:-1:-1;;;13440:18:103;;;13433:31;13481:19;;7716:81:81::2;13283:223:103::0;7716:81:81::2;7807:22;:46:::0;;-1:-1:-1;;;;;;7807:46:81::2;-1:-1:-1::0;;;;;7807:46:81;::::2;::::0;;::::2;::::0;;;7869:52:::2;::::0;9496:51:103;;;7869:52:81::2;::::0;9484:2:103;9469:18;7869:52:81::2;;;;;;;7563:365:::0;:::o;6329:1228::-;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;564:9:88::1;::::0;;;::::1;-1:-1:-1::0;;;;;564:9:88::1;:22;587:12;719:10:59::0;640:96;;587:12:88::1;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1::0;;;543:136:88::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6497:26:81;::::2;6489:71;;;::::0;-1:-1:-1;;;6489:71:81;;27151:2:103;6489:71:81::2;::::0;::::2;27133:21:103::0;;;27170:18;;;27163:30;27229:34;27209:18;;;27202:62;27281:18;;6489:71:81::2;27123:182:103::0;6489:71:81::2;6579:10;::::0;:31:::2;::::0;-1:-1:-1;;;6579:31:81;;::::2;::::0;::::2;12044:25:103::0;;;-1:-1:-1;;;;;6579:10:81;;::::2;::::0;:20:::2;::::0;12017:18:103;;6579:31:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6571:69;;;::::0;-1:-1:-1;;;6571:69:81;;21152:2:103;6571:69:81::2;::::0;::::2;21134:21:103::0;21191:2;21171:18;;;21164:30;21230:27;21210:18;;;21203:55;21275:18;;6571:69:81::2;21124:175:103::0;6571:69:81::2;6705:1;6666:26:::0;;;:15:::2;:26;::::0;;;;;-1:-1:-1;;;;;6666:26:81::2;6658:49:::0;6650:101:::2;;;::::0;-1:-1:-1;;;6650:101:81;;22275:2:103;6650:101:81::2;::::0;::::2;22257:21:103::0;22314:2;22294:18;;;22287:30;22353:34;22333:18;;;22326:62;-1:-1:-1;;;22404:18:103;;;22397:37;22451:19;;6650:101:81::2;22247:229:103::0;6650:101:81::2;6797:10;::::0;:34:::2;::::0;-1:-1:-1;;;6797:34:81;;::::2;::::0;::::2;12044:25:103::0;;;6774:20:81::2;::::0;-1:-1:-1;;;;;6797:10:81::2;::::0;:23:::2;::::0;12017:18:103;;6797:34:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6774:57;;6901:12;-1:-1:-1::0;;;;;6849:64:81::2;6874:9;-1:-1:-1::0;;;;;6857:37:81::2;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6849:64:81::2;;6841:125;;;::::0;-1:-1:-1;;;6841:125:81;;22683:2:103;6841:125:81::2;::::0;::::2;22665:21:103::0;22722:2;22702:18;;;22695:30;22761:34;22741:18;;;22734:62;-1:-1:-1;;;22812:18:103;;;22805:46;22868:19;;6841:125:81::2;22655:238:103::0;6841:125:81::2;6998:5;::::0;:38:::2;::::0;-1:-1:-1;;;6998:38:81;;::::2;::::0;::::2;12044:25:103::0;;;6977:18:81::2;::::0;-1:-1:-1;;;;;6998:5:81::2;::::0;:27:::2;::::0;12017:18:103;;6998:38:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7199:1;7159:27:::0;;;:15:::2;:27;::::0;;;;;6977:59;;-1:-1:-1;;;;;;7159:27:81::2;7151:50:::0;;:122:::2;;-1:-1:-1::0;7229:27:81::2;::::0;;;:15:::2;:27;::::0;;;;;-1:-1:-1;;;;;7221:52:81;;::::2;7229:27:::0;::::2;7221:52;7151:122;7143:200;;;::::0;-1:-1:-1;;;7143:200:81;;26734:2:103;7143:200:81::2;::::0;::::2;26716:21:103::0;26773:2;26753:18;;;26746:30;26812:34;26792:18;;;26785:62;-1:-1:-1;;;26863:18:103;;;26856:46;26919:19;;7143:200:81::2;26706:238:103::0;7143:200:81::2;7362:26;::::0;;;:15:::2;:26;::::0;;;;;;;:49;;-1:-1:-1;;;;;7362:49:81;::::2;-1:-1:-1::0;;;;;;7362:49:81;;::::2;::::0;::::2;::::0;;;7421:27;;;;;;;:50;;;;::::2;::::0;::::2;::::0;;;7487:63;;32381:25:103;;;32422:18;;;32415:34;;;32465:18;;32458:60;;;;7487:63:81::2;::::0;32369:2:103;32354:18;7487:63:81::2;;;;;;;689:1:88;;6329:1228:81::0;;:::o;17547:1736::-;17796:17;17827;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;4617:22:::1;::::0;-1:-1:-1;;;;;4617:22:81::1;4596:113;;;;-1:-1:-1::0;;;4596:113:81::1;;;;;;;:::i;:::-;5115:7:::2;::::0;:27:::2;::::0;-1:-1:-1;;;5115:27:81;;::::2;::::0;::::2;12044:25:103::0;;;17729:8:81;;5084:28:::2;::::0;-1:-1:-1;;;;;5115:7:81;;::::2;::::0;:17:::2;::::0;12017:18:103;;5115:27:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;5115:27:81::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;5084:58;;5221:1;-1:-1:-1::0;;;;;5173:50:81::2;:36;5191:6;:17;;;20068:7:::0;20094:27;;;:15;:27;;;;;;-1:-1:-1;;;;;20094:27:81;;19992:136;5173:36:::2;-1:-1:-1::0;;;;;5173:50:81::2;;;5152:127;;;;-1:-1:-1::0;;;5152:127:81::2;;;;;;;:::i;:::-;5583:38:::3;-1:-1:-1::0;;;5583:19:81::3;:38::i;:::-;-1:-1:-1::0;;;;;5567:54:81::3;719:10:59::0;-1:-1:-1;;;;;5567:54:81::3;;5546:135;;;;-1:-1:-1::0;;;5546:135:81::3;;;;;;;:::i;:::-;17939:7:::4;::::0;:27:::4;::::0;-1:-1:-1;;;17939:27:81;;::::4;::::0;::::4;12044:25:103::0;;;17908:28:81::4;::::0;-1:-1:-1;;;;;17939:7:81::4;::::0;:17:::4;::::0;12017:18:103;;17939:27:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;::::0;;::::4;-1:-1:-1::0;;17939:27:81::4;::::0;::::4;;::::0;::::4;::::0;;;::::4;::::0;::::4;:::i;:::-;17908:58;;18038:6;18015;:20;;;:29;;;;:::i;:::-;17997:6;:14;;;:47;;:118;;;-1:-1:-1::0;18061:20:81::4;::::0;::::4;::::0;:25;:53;::::4;;;;18108:6;18090;:14;;;:24;;18061:53;17976:222;;;::::0;-1:-1:-1;;;17976:222:81;;23911:2:103;17976:222:81::4;::::0;::::4;23893:21:103::0;23950:2;23930:18;;;23923:30;23989:34;23969:18;;;23962:62;24060:27;24040:18;;;24033:55;24105:19;;17976:222:81::4;23883:247:103::0;17976:222:81::4;18268:22;18293:36;18311:6;:17;;;20068:7:::0;20094:27;;;:15;:27;;;;;;-1:-1:-1;;;;;20094:27:81;;19992:136;18293:36:::4;18361:7;::::0;:26:::4;::::0;-1:-1:-1;;;18361:26:81;;::::4;::::0;::::4;12044:25:103::0;;;18268:61:81;;-1:-1:-1;18339:19:81::4;::::0;-1:-1:-1;;;;;18361:7:81;;::::4;::::0;:16:::4;::::0;12017:18:103;;18361:26:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18428:17;::::0;;::::4;::::0;18397:12:::4;18412:34:::0;;;:15:::4;:34:::0;;;;;;;;;18478:31;;-1:-1:-1;;;18478:31:81;;-1:-1:-1;;;;;9514:32:103;;;18478:31:81::4;::::0;::::4;9496:51:103::0;18339:48:81;;-1:-1:-1;18412:34:81;::::4;::::0;18513:6;;18412:34;;18478:15:::4;::::0;9469:18:103;;18478:31:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;18457:136;;;::::0;-1:-1:-1;;;18457:136:81;;17630:2:103;18457:136:81::4;::::0;::::4;17612:21:103::0;17669:2;17649:18;;;17642:30;17708:34;17688:18;;;17681:62;-1:-1:-1;;;17759:18:103;;;17752:45;17814:19;;18457:136:81::4;17602:237:103::0;18457:136:81::4;18624:46;::::0;-1:-1:-1;;;18624:46:81;;-1:-1:-1;;;;;9788:15:103;;;18624:46:81::4;::::0;::::4;9770:34:103::0;18664:4:81::4;9820:18:103::0;;;9813:43;18674:6:81;;18624:15;;::::4;::::0;::::4;::::0;9705:18:103;;18624:46:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;18603:148;;;::::0;-1:-1:-1;;;18603:148:81;;30212:2:103;18603:148:81::4;::::0;::::4;30194:21:103::0;30251:2;30231:18;;;30224:30;30290:34;30270:18;;;30263:62;-1:-1:-1;;;30341:18:103;;;30334:42;30393:19;;18603:148:81::4;30184:234:103::0;18603:148:81::4;18897:1;18885:13;;18920:6;18908:18;;18936:12;18951:81;18986:5;18993:14;19009:11;19022:9;18951:34;:81::i;:::-;18936:96;;19048:72;19081:14;19097:11;19110:9;19048:72;;;;;;;;:::i;:::-;;;;;;;;19138:7;19130:60;;;::::0;-1:-1:-1;;;19130:60:81;;25923:2:103;19130:60:81::4;::::0;::::4;25905:21:103::0;25962:2;25942:18;;;25935:30;26001:34;25981:18;;;25974:62;-1:-1:-1;;;26052:18:103;;;26045:38;26100:19;;19130:60:81::4;25895:230:103::0;19130:60:81::4;19237:17;::::0;;::::4;::::0;19206:70:::4;::::0;;32731:25:103;;;32772:18;;;32765:34;;;32815:18;;;32808:34;;;19206:70:81::4;::::0;32719:2:103;32704:18;19206:70:81::4;;;;;;;5691:1;;;;;4719::::2;;17547:1736:::0;;;;;:::o;6052:133::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6133:8:81::1;:6;:8::i;:::-;6156:22;::::0;::::1;::::0;;;::::1;6052:133::o:0;3687:67::-;3732:22;3753:1;3675:6;3732:22;:::i;:::-;3687:67;:::o;14122:1449::-;14379:17;14410:23;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;4617:22:::1;::::0;-1:-1:-1;;;;;4617:22:81::1;4596:113;;;;-1:-1:-1::0;;;4596:113:81::1;;;;;;;:::i;:::-;14304:9:::2;4804:18;4824:21:::0;4849:29:::2;4868:9;4849:18;:29::i;:::-;4803:75:::0;;-1:-1:-1;4803:75:81;-1:-1:-1;;;;;;4909:27:81;::::2;4888:104;;;;-1:-1:-1::0;;;4888:104:81::2;;;;;;;:::i;:::-;-1:-1:-1::0;;;828:27:88::3;848:6;828:19;:27::i;:::-;-1:-1:-1::0;;;;;811:44:88::3;819:4;-1:-1:-1::0;;;;;811:44:88::3;;790:119;;;;-1:-1:-1::0;;;790:119:88::3;;;;;;;:::i;:::-;1023:37;-1:-1:-1::0;;;1023:19:88::3;:37::i;:::-;-1:-1:-1::0;;;;;1007:53:88::3;719:10:59::0;-1:-1:-1;;;;;1007:53:88::3;;986:133;;;;-1:-1:-1::0;;;986:133:88::3;;;;;;;:::i;:::-;14493:7:81::4;::::0;:30:::4;::::0;-1:-1:-1;;;14493:30:81;;::::4;::::0;::::4;12044:25:103::0;;;14458:32:81::4;::::0;-1:-1:-1;;;;;14493:7:81::4;::::0;:19:::4;::::0;12017:18:103;;14493:30:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;::::0;;::::4;-1:-1:-1::0;;14493:30:81::4;::::0;::::4;;::::0;::::4;::::0;;;::::4;::::0;::::4;:::i;:::-;14458:65;;14533:12;14548:37;14566:8;:18;;;14548:17;:37::i;:::-;14533:52;;14596:18;14616:29:::0;14649::::4;14668:9;14649:18;:29::i;:::-;14595:83;;;;14689:28;14721:7;;;;;;;;;-1:-1:-1::0;;;;;14721:7:81::4;-1:-1:-1::0;;;;;14721:17:81::4;;14739:9;14750:8;14721:38;;;;;;;;;;;;;;;12254:25:103::0;;;12310:2;12295:18;;12288:34;12242:2;12227:18;;12209:119;14721:38:81::4;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;::::0;;::::4;-1:-1:-1::0;;14721:38:81::4;::::0;::::4;;::::0;::::4;::::0;;;::::4;::::0;::::4;:::i;:::-;14832:13;::::0;;::::4;::::0;14790:38;;-1:-1:-1;;;14790:38:81;;-1:-1:-1;;;;;9514:32:103;;;14790:38:81::4;::::0;::::4;9496:51:103::0;14689:70:81;;-1:-1:-1;14832:13:81;;14790:15;::::4;::::0;::::4;::::0;9469:18:103;;14790:38:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:55;;14769:150;;;::::0;-1:-1:-1;;;14769:150:81;;25099:2:103;14769:150:81::4;::::0;::::4;25081:21:103::0;25138:2;25118:18;;;25111:30;25177:34;25157:18;;;25150:62;-1:-1:-1;;;25228:18:103;;;25221:45;25283:19;;14769:150:81::4;25071:237:103::0;14769:150:81::4;15007:13;::::0;;::::4;::::0;14950:53;;-1:-1:-1;;;14950:53:81;;-1:-1:-1;;;;;9788:15:103;;;14950:53:81::4;::::0;::::4;9770:34:103::0;14997:4:81::4;9820:18:103::0;;;9813:43;14950:15:81;::::4;::::0;::::4;::::0;9705:18:103;;14950:53:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:70;;14929:158;;;::::0;-1:-1:-1;;;14929:158:81;;21866:2:103;14929:158:81::4;::::0;::::4;21848:21:103::0;21905:2;21885:18;;;21878:30;21944:34;21924:18;;;21917:62;-1:-1:-1;;;21995:18:103;;;21988:38;22043:19;;14929:158:81::4;21838:230:103::0;14929:158:81::4;15140:12;15155:95;15190:5;15197:21;15220:8;:14;;;15236:6;:13;;;15155:34;:95::i;:::-;15301:13;::::0;;::::4;::::0;15382:14;;15330:82;;15272:1:::4;::::0;-1:-1:-1;15301:13:81;;-1:-1:-1;15140:110:81;;-1:-1:-1;15330:82:81::4;::::0;::::4;::::0;15359:21;;15301:13;;15330:82:::4;:::i;:::-;;;;;;;;15430:7;15422:56;;;::::0;-1:-1:-1;;;15422:56:81;;24694:2:103;15422:56:81::4;::::0;::::4;24676:21:103::0;24733:2;24713:18;;;24706:30;24772:34;24752:18;;;24745:62;-1:-1:-1;;;24823:18:103;;;24816:34;24867:19;;15422:56:81::4;24666:226:103::0;15422:56:81::4;15534:14:::0;;15550:13:::4;::::0;;::::4;::::0;15494:70;;31778:25:103;;;-1:-1:-1;;;;;31839:32:103;;;31834:2;31819:18;;31812:60;31888:18;;;31881:34;15494:70:81;::::4;::::0;;;;31766:2:103;15494:70:81;;::::4;1129:1:88;;;;;;5002::81::3;4719::::2;;;14122:1449:::0;;;;;:::o;21201:436::-;21394:7;;:30;;-1:-1:-1;;;21394:30:81;;;;;12044:25:103;;;21294:18:81;;;;;;-1:-1:-1;;;;;21394:7:81;;:19;;12017:18:103;;21394:30:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21394:30:81;;;;;;;;;;;;:::i;:::-;21447:5;;21475:18;;;;21447:47;;-1:-1:-1;;;21447:47:81;;;;;12044:25:103;;;;21475:18:81;;-1:-1:-1;;;;;;21447:5:81;;:27;;12017:18:103;;21447:47:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21434:60;;21525:1;21512:10;:14;21504:65;;;;-1:-1:-1;;;21504:65:81;;23100:2:103;21504:65:81;;;23082:21:103;23139:2;23119:18;;;23112:30;23178:34;23158:18;;;23151:62;-1:-1:-1;;;23229:18:103;;;23222:36;23275:19;;21504:65:81;23072:228:103;21504:65:81;-1:-1:-1;;21603:27:81;;;;:15;:27;;;;;;21619:10;;-1:-1:-1;;;;;21603:27:81;;;;-1:-1:-1;21201:436:81:o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;12044:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;12017:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;14876:2:103;1703:113:88;;;14858:21:103;14915:2;14895:18;;;14888:30;14954:34;14934:18;;;14927:62;-1:-1:-1;;;15005:18:103;;;14998:35;15050:19;;1703:113:88;14848:227:103;913:1422:90;1068:12;1162:5;-1:-1:-1;;;;;1202:24:90;;;;:28;;;1245:18;;;;:39;;-1:-1:-1;;;;;;1267:17:90;;;1245:39;:59;;;;1289:15;1288:16;1245:59;1241:187;;;1325:66;;;11021:14:103;;11014:22;10996:41;;-1:-1:-1;;;;;11111:15:103;;;11106:2;11091:18;;11084:43;11163:15;;11143:18;;;11136:43;1325:66:90;;;;;;;10984:2:103;1325:66:90;;;1412:5;1405:12;;;;;;1241:187;1499:21;;-1:-1:-1;;;1499:21:90;;-1:-1:-1;;;;;9514:32:103;;;1499:21:90;;;9496:51:103;1481:15:90;;1499;;;;;;9469:18:103;;1499:21:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1550:36;;-1:-1:-1;;;1550:36:90;;-1:-1:-1;;;;;9788:15:103;;;1550:36:90;;;9770:34:103;1580:4:90;9820:18:103;;;9813:43;1481:39:90;;-1:-1:-1;1530:17:90;;1550:15;;;;;9705:18:103;;1550:36:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1530:56;;1610:5;1600:7;:15;:36;;;;1631:5;1619:9;:17;1600:36;1596:157;;;1657:59;;;12254:25:103;;;12310:2;12295:18;;12288:34;;;1657:59:90;;12227:18:103;1657:59:90;;;;;;;1737:5;1730:12;;;;;;;;1596:157;1884:16;1902:17;1931:5;-1:-1:-1;;;;;1923:19:90;1996:10;2025:4;2048:2;2069:5;1956:119;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1956:119:90;;;;;;;;;;;1923:153;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1883:193;;;;2097:11;:118;;;;-1:-1:-1;2134:11:90;;:16;2113:101;;;;2168:4;:11;2183:2;2168:17;:45;;;;;2200:4;2189:24;;;;;;;;;;;;:::i;:::-;2087:128;;2231:7;2226:103;;2259:59;2287:11;2300:4;:11;2313:4;2259:59;;;;;;;;:::i;:::-;;;;;;;;2226:103;913:1422;;;;;;;;;;;;;:::o;2433:117:48:-;1486:16;:14;:16::i;:::-;2491:7:::1;:15:::0;;-1:-1:-1;;;;2491:15:48::1;::::0;;2521:22:::1;719:10:59::0;2530:12:48::1;2521:22;::::0;-1:-1:-1;;;;;9514:32:103;;;9496:51;;9484:2;9469:18;2521:22:48::1;;;;;;;2433:117::o:0;20529:665:81:-;20708:26;;;;:33;20671:17;;20708:37;20704:126;;20761:58;;-1:-1:-1;;;20761:58:81;;19509:2:103;20761:58:81;;;19491:21:103;19548:2;19528:18;;;19521:30;19587:34;19567:18;;;19560:62;-1:-1:-1;;;19638:18:103;;;19631:46;19694:19;;20761:58:81;19481:238:103;20704:126:81;-1:-1:-1;20884:16:81;;;;20952:21;;;;:25;20948:122;;3675:6;21031;21007:7;:21;;;:30;;;;:::i;:::-;21006:53;;;;:::i;:::-;20993:66;;;;:::i;:::-;;;20948:122;21151:6;21139:9;:18;21131:56;;;;-1:-1:-1;;;21131:56:81;;28730:2:103;21131:56:81;;;28712:21:103;28769:2;28749:18;;;28742:30;28808:27;28788:18;;;28781:55;28853:18;;21131:56:81;28702:175:103;21131:56:81;20529:665;;;;:::o;5705:341::-;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;27916:2:103;4880:69:47;;;27898:21:103;27955:2;27935:18;;;27928:30;27994:34;27974:18;;;27967:62;-1:-1:-1;;;28045:18:103;;;28038:41;28096:19;;4880:69:47;27888:233:103;4880:69:47;5805:29:81::1;-1:-1:-1::0;;;5805:19:81::1;:29::i;:::-;5778:7;:57:::0;;-1:-1:-1;;;;;;5778:57:81::1;-1:-1:-1::0;;;;;5778:57:81;;;::::1;::::0;;;::::1;::::0;;5878:32:::1;-1:-1:-1::0;;;5878:19:81::1;:32::i;:::-;5845:10;:66:::0;;-1:-1:-1;;;;;;5845:66:81::1;-1:-1:-1::0;;;;;5845:66:81;;;::::1;::::0;;;::::1;::::0;;5948:29:::1;-1:-1:-1::0;;;5948:19:81::1;:29::i;:::-;5921:7;:57:::0;;-1:-1:-1;;;;;;5921:57:81::1;-1:-1:-1::0;;;;;5921:57:81;;;::::1;::::0;;;::::1;::::0;;6011:27:::1;-1:-1:-1::0;;;6011:19:81::1;:27::i;:::-;5988:5;:51:::0;;-1:-1:-1;;;;;;5988:51:81::1;-1:-1:-1::0;;;;;5988:51:81;;;::::1;::::0;;;::::1;::::0;;5705:341::o;2186:115:48:-;1239:19;:17;:19::i;:::-;2255:4:::1;2245:14:::0;;-1:-1:-1;;;;2245:14:48::1;-1:-1:-1::0;;;2245:14:48::1;::::0;;2274:20:::1;2281:12;719:10:59::0;640:96;;1945:106:48;2011:8;1685:7;;-1:-1:-1;;;1685:7:48;;;;;1615:84;2011:8;2003:41;;;;-1:-1:-1;;;2003:41:48;;14121:2:103;2003:41:48;;;14103:21:103;14160:2;14140:18;;;14133:30;-1:-1:-1;;;14179:18:103;;;14172:50;14239:18;;2003:41:48;14093:170:103;2003:41:48;1945:106::o;1767:::-;1837:8;1685:7;;-1:-1:-1;;;1685:7:48;;;;;1615:84;1837:8;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:48;;19164:2:103;1828:38:48;;;19146:21:103;19203:2;19183:18;;;19176:30;-1:-1:-1;;;19222:18:103;;;19215:46;19278:18;;1828:38:48;19136:166:103;14:512;;120:3;113:4;105:6;101:17;97:27;87:2;;142:5;135;128:20;87:2;175:6;169:13;201:18;197:2;194:26;191:2;;;223:18;;:::i;:::-;267:55;310:2;291:13;;-1:-1:-1;;287:27:103;316:4;283:38;267:55;:::i;:::-;347:2;338:7;331:19;393:3;386:4;381:2;373:6;369:15;365:26;362:35;359:2;;;414:5;407;400:20;359:2;431:64;492:2;485:4;476:7;472:18;465:4;457:6;453:17;431:64;:::i;531:156::-;619:13;;661:1;651:12;;641:2;;677:1;674;667:12;692:160;784:13;;826:1;816:12;;806:2;;842:1;839;832:12;857:257;;969:2;957:9;948:7;944:23;940:32;937:2;;;990:6;982;975:22;937:2;1034:9;1021:23;1053:31;1078:5;1053:31;:::i;:::-;1103:5;927:187;-1:-1:-1;;;927:187:103:o;1119:261::-;;1242:2;1230:9;1221:7;1217:23;1213:32;1210:2;;;1263:6;1255;1248:22;1210:2;1300:9;1294:16;1319:31;1344:5;1319:31;:::i;1385:297::-;;1505:2;1493:9;1484:7;1480:23;1476:32;1473:2;;;1526:6;1518;1511:22;1473:2;1563:9;1557:16;1616:5;1609:13;1602:21;1595:5;1592:32;1582:2;;1643:6;1635;1628:22;1687:190;;1799:2;1787:9;1778:7;1774:23;1770:32;1767:2;;;1820:6;1812;1805:22;1767:2;-1:-1:-1;1848:23:103;;1757:120;-1:-1:-1;1757:120:103:o;1882:258::-;;;2011:2;1999:9;1990:7;1986:23;1982:32;1979:2;;;2032:6;2024;2017:22;1979:2;-1:-1:-1;;2060:23:103;;;2130:2;2115:18;;;2102:32;;-1:-1:-1;1969:171:103:o;2430:1219::-;;2577:2;2565:9;2556:7;2552:23;2548:32;2545:2;;;2598:6;2590;2583:22;2545:2;2636:9;2630:16;2665:18;2706:2;2698:6;2695:14;2692:2;;;2727:6;2719;2712:22;2692:2;2770:6;2759:9;2755:22;2745:32;;2796:6;2836:2;2831;2822:7;2818:16;2814:25;2811:2;;;2857:6;2849;2842:22;2811:2;2888:19;2904:2;2888:19;:::i;:::-;2875:32;;2936:2;2930:9;2923:5;2916:24;2986:2;2982;2978:11;2972:18;2967:2;2960:5;2956:14;2949:42;3037:2;3033;3029:11;3023:18;3018:2;3011:5;3007:14;3000:42;3074:51;3121:2;3117;3113:11;3074:51;:::i;:::-;3069:2;3062:5;3058:14;3051:75;3165:3;3161:2;3157:12;3151:19;3195:2;3185:8;3182:16;3179:2;;;3216:6;3208;3201:22;3179:2;3258:55;3305:7;3294:8;3290:2;3286:17;3258:55;:::i;:::-;3252:3;3241:15;;3234:80;-1:-1:-1;3361:3:103;3353:12;;;3347:19;3330:15;;;3323:44;3414:3;3406:12;;;3400:19;3383:15;;;3376:44;3467:3;3459:12;;;3453:19;3436:15;;;3429:44;3492:3;3533:11;;;3527:18;3511:14;;;3504:42;3565:3;3606:11;;;3600:18;3584:14;;;3577:42;;;;-1:-1:-1;3245:5:103;2535:1114;-1:-1:-1;;;2535:1114:103:o;3654:426::-;;3802:2;3790:9;3781:7;3777:23;3773:32;3770:2;;;3823:6;3815;3808:22;3770:2;3868:9;3855:23;3901:18;3893:6;3890:30;3887:2;;;3938:6;3930;3923:22;3887:2;3966:22;;4022:3;4004:16;;;4000:26;3997:2;;;4044:6;4036;4029:22;4085:1025;;4234:2;4222:9;4213:7;4209:23;4205:32;4202:2;;;4255:6;4247;4240:22;4202:2;4293:9;4287:16;4322:18;4363:2;4355:6;4352:14;4349:2;;;4384:6;4376;4369:22;4349:2;4412:22;;;;4468:4;4450:16;;;4446:27;4443:2;;;4491:6;4483;4476:22;4443:2;4522:21;4538:4;4522:21;:::i;:::-;4573:2;4567:9;4585:33;4610:7;4585:33;:::i;:::-;4627:22;;4695:2;4687:11;;;4681:18;4665:14;;;4658:42;4732:55;4783:2;4775:11;;4732:55;:::i;:::-;4727:2;4720:5;4716:14;4709:79;4827:2;4823;4819:11;4813:18;4856:2;4846:8;4843:16;4840:2;;;4877:6;4869;4862:22;4840:2;4918:55;4965:7;4954:8;4950:2;4946:17;4918:55;:::i;:::-;4913:2;4906:5;4902:14;4895:79;;5021:3;5017:2;5013:12;5007:19;5001:3;4994:5;4990:15;4983:44;5074:3;5070:2;5066:12;5060:19;5054:3;5047:5;5043:15;5036:44;5099:5;5089:15;;;;;4192:918;;;;:::o;5115:1005::-;;5262:2;5250:9;5241:7;5237:23;5233:32;5230:2;;;5283:6;5275;5268:22;5230:2;5321:9;5315:16;5350:18;5391:2;5383:6;5380:14;5377:2;;;5412:6;5404;5397:22;5377:2;5440:22;;;;5496:4;5478:16;;;5474:27;5471:2;;;5519:6;5511;5504:22;5471:2;5550:21;5566:4;5550:21;:::i;:::-;5600:2;5594:9;5587:5;5580:24;5642:2;5638;5634:11;5628:18;5677:1;5668:7;5665:14;5655:2;;5698:6;5690;5683:22;5655:2;5734;5723:14;;5716:31;5793:2;5785:11;;;5779:18;5763:14;;;5756:42;5837:2;5829:11;;5823:18;5853:16;;;5850:2;;;5887:6;5879;5872:22;6125:841;;6250:3;6294:2;6282:9;6273:7;6269:23;6265:32;6262:2;;;6315:6;6307;6300:22;6262:2;6346:19;6362:2;6346:19;:::i;:::-;6333:32;;6388:53;6431:9;6388:53;:::i;:::-;6381:5;6374:68;6495:2;6484:9;6480:18;6474:25;6469:2;6462:5;6458:14;6451:49;6553:2;6542:9;6538:18;6532:25;6527:2;6520:5;6516:14;6509:49;6611:2;6600:9;6596:18;6590:25;6585:2;6578:5;6574:14;6567:49;6670:3;6659:9;6655:19;6649:26;6643:3;6636:5;6632:15;6625:51;6730:3;6719:9;6715:19;6709:26;6703:3;6696:5;6692:15;6685:51;6790:3;6779:9;6775:19;6769:26;6763:3;6756:5;6752:15;6745:51;6850:3;6839:9;6835:19;6829:26;6823:3;6816:5;6812:15;6805:51;6875:3;6931:2;6920:9;6916:18;6910:25;6905:2;6898:5;6894:14;6887:49;;6955:5;6945:15;;;6230:736;;;;:::o;7166:194::-;;7289:2;7277:9;7268:7;7264:23;7260:32;7257:2;;;7310:6;7302;7295:22;7257:2;-1:-1:-1;7338:16:103;;7247:113;-1:-1:-1;7247:113:103:o;7365:325::-;;;7494:2;7482:9;7473:7;7469:23;7465:32;7462:2;;;7515:6;7507;7500:22;7462:2;7556:9;7543:23;7533:33;;7616:2;7605:9;7601:18;7588:32;7629:31;7654:5;7629:31;:::i;:::-;7679:5;7669:15;;;7452:238;;;;;:::o;7695:258::-;;;7824:2;7812:9;7803:7;7799:23;7795:32;7792:2;;;7845:6;7837;7830:22;7958:846;;;;;;8140:3;8128:9;8119:7;8115:23;8111:33;8108:2;;;8162:6;8154;8147:22;8108:2;8203:9;8190:23;8180:33;;8260:2;8249:9;8245:18;8232:32;8222:42;;8311:2;8300:9;8296:18;8283:32;8273:42;;8366:2;8355:9;8351:18;8338:32;8389:18;8430:2;8422:6;8419:14;8416:2;;;8451:6;8443;8436:22;8416:2;8494:6;8483:9;8479:22;8469:32;;8539:7;8532:4;8528:2;8524:13;8520:27;8510:2;;8566:6;8558;8551:22;8510:2;8611;8598:16;8637:2;8629:6;8626:14;8623:2;;;8658:6;8650;8643:22;8623:2;8708:7;8703:2;8694:6;8690:2;8686:15;8682:24;8679:37;8676:2;;;8734:6;8726;8719:22;8676:2;8098:706;;;;-1:-1:-1;8098:706:103;;-1:-1:-1;8770:2:103;8762:11;;8792:6;8098:706;-1:-1:-1;;;8098:706:103:o;8809:257::-;;8888:5;8882:12;8915:6;8910:3;8903:19;8931:63;8987:6;8980:4;8975:3;8971:14;8964:4;8957:5;8953:16;8931:63;:::i;:::-;9048:2;9027:15;-1:-1:-1;;9023:29:103;9014:39;;;;9055:4;9010:50;;8858:208;-1:-1:-1;;8858:208:103:o;9071:274::-;;9238:6;9232:13;9254:53;9300:6;9295:3;9288:4;9280:6;9276:17;9254:53;:::i;:::-;9323:16;;;;;9208:137;-1:-1:-1;;9208:137:103:o;9867:375::-;-1:-1:-1;;;;;10125:15:103;;;10107:34;;10177:15;;;;10172:2;10157:18;;10150:43;10224:2;10209:18;;10202:34;;;;10057:2;10042:18;;10024:218::o;10247:356::-;-1:-1:-1;;;;;10502:32:103;;;;10484:51;;10571:25;10566:2;10551:18;;10544:53;10472:2;10457:18;;10439:164::o;11190:369::-;;11401:6;11394:14;11387:22;11376:9;11369:41;11446:6;11441:2;11430:9;11426:18;11419:34;11489:2;11484;11473:9;11469:18;11462:30;11509:44;11549:2;11538:9;11534:18;11526:6;11509:44;:::i;:::-;11501:52;11359:200;-1:-1:-1;;;;;11359:200:103:o;13511:403::-;13713:2;13695:21;;;13752:2;13732:18;;;13725:30;13791:34;13786:2;13771:18;;13764:62;-1:-1:-1;;;13857:2:103;13842:18;;13835:37;13904:3;13889:19;;13685:229::o;15080:398::-;15282:2;15264:21;;;15321:2;15301:18;;;15294:30;15360:34;15355:2;15340:18;;15333:62;-1:-1:-1;;;15426:2:103;15411:18;;15404:32;15468:3;15453:19;;15254:224::o;16257:403::-;16459:2;16441:21;;;16498:2;16478:18;;;16471:30;16537:34;16532:2;16517:18;;16510:62;-1:-1:-1;;;16603:2:103;16588:18;;16581:37;16650:3;16635:19;;16431:229::o;16665:356::-;16867:2;16849:21;;;16886:18;;;16879:30;16945:34;16940:2;16925:18;;16918:62;17012:2;16997:18;;16839:182::o;24135:352::-;24337:2;24319:21;;;24376:2;24356:18;;;24349:30;24415;24410:2;24395:18;;24388:58;24478:2;24463:18;;24309:178::o;25313:403::-;25515:2;25497:21;;;25554:2;25534:18;;;25527:30;25593:34;25588:2;25573:18;;25566:62;-1:-1:-1;;;25659:2:103;25644:18;;25637:37;25706:3;25691:19;;25487:229::o;27310:399::-;27512:2;27494:21;;;27551:2;27531:18;;;27524:30;27590:34;27585:2;27570:18;;27563:62;-1:-1:-1;;;27656:2:103;27641:18;;27634:33;27699:3;27684:19;;27484:225::o;28126:397::-;28328:2;28310:21;;;28367:2;28347:18;;;28340:30;28406:34;28401:2;28386:18;;28379:62;-1:-1:-1;;;28472:2:103;28457:18;;28450:31;28513:3;28498:19;;28300:223::o;30423:687::-;;30620:2;30609:9;30602:21;30665:6;30659:13;30654:2;30643:9;30639:18;30632:41;30727:2;30719:6;30715:15;30709:22;30704:2;30693:9;30689:18;30682:50;30786:2;30778:6;30774:15;30768:22;30763:2;30752:9;30748:18;30741:50;30838:2;30830:6;30826:15;30820:22;30879:4;30873:3;30862:9;30858:19;30851:33;30907:51;30953:3;30942:9;30938:19;30924:12;30907:51;:::i;:::-;30893:65;;31013:3;31005:6;31001:16;30995:23;30989:3;30978:9;30974:19;30967:52;31075:3;31067:6;31063:16;31057:23;31050:4;31039:9;31035:20;31028:53;31098:6;31090:14;;;30592:518;;;;:::o;32853:275::-;32924:2;32918:9;32989:2;32970:13;;-1:-1:-1;;32966:27:103;32954:40;;33024:18;33009:34;;33045:22;;;33006:62;33003:2;;;33071:18;;:::i;:::-;33107:2;33100:22;32898:230;;-1:-1:-1;32898:230:103:o;33264:128::-;;33335:1;33331:6;33328:1;33325:13;33322:2;;;33341:18;;:::i;:::-;-1:-1:-1;33377:9:103;;33312:80::o;33397:217::-;;33463:1;33453:2;;-1:-1:-1;;;33488:31:103;;33542:4;33539:1;33532:15;33570:4;33495:1;33560:15;33453:2;-1:-1:-1;33599:9:103;;33443:171::o;33619:168::-;;33725:1;33721;33717:6;33713:14;33710:1;33707:21;33702:1;33695:9;33688:17;33684:45;33681:2;;;33732:18;;:::i;:::-;-1:-1:-1;33772:9:103;;33671:116::o;33792:125::-;;33860:1;33857;33854:8;33851:2;;;33865:18;;:::i;:::-;-1:-1:-1;33902:9:103;;33841:76::o;33922:146::-;33984:78;34002:3;33995:5;33992:14;33984:78;;;34058:1;34044:16;;34029:1;34018:13;33984:78;;34073:1575;34179:18;34174:3;34171:27;34168:2;;;34201:18;;:::i;:::-;34244:38;34276:4;34270:11;34244:38;:::i;:::-;34308:1;34337:9;34373:2;34368:3;34365:11;34406:2;34398:6;34395:14;34428:2;34424;34421:10;34418:2;;;33133:126;33198:17;;;33248:4;33232:21;;34454:49;;34418:2;34525;34522;;;34604;34599;34594:3;34590:12;34586:21;34573:11;34569:39;34632:2;34627:3;34624:11;34621:2;;;-1:-1:-1;34653:11:103;34621:2;34679:83;34757:2;34752;34744:6;34740:15;34736:24;34723:11;34719:42;34706:11;34679:83;:::i;:::-;;34522:2;;34788;34804:1;34799:591;;;;35434:1;35421:14;;35451:3;35448:2;;;35516:9;35511:3;35507:19;35494:33;35485:42;;35448:2;36453:1;36449:11;;-1:-1:-1;;36429:1:103;36425:11;;36421:24;36417:29;36407:40;;36404:57;35561:4;35554:78;34781:861;;34799:591;-1:-1:-1;;34835:17:103;;;-1:-1:-1;34879:11:103;34912:9;34934:229;34948:7;34945:1;34942:14;34934:229;;;35037:19;;;35024:33;35009:49;;35144:4;35129:20;;;;35097:1;35085:14;;;;34964:12;34934:229;;;34938:3;35191;35182:7;35179:16;35176:2;;;35258:19;;;35245:33;-1:-1:-1;;35292:1:103;35304:2;35295:12;;35288:20;35284:33;35280:38;35241:78;35226:94;;35176:2;;35377:1;35373;35368:3;35364:11;35360:19;35354:4;35347:33;34781:861;;;;;;34158:1490;;;:::o;35653:258::-;35725:1;35735:113;35749:6;35746:1;35743:13;35735:113;;;35825:11;;;35819:18;35806:11;;;35799:39;35771:2;35764:10;35735:113;;;35866:6;35863:1;35860:13;35857:2;;;35901:1;35892:6;35887:3;35883:16;35876:27;35857:2;;35706:205;;;:::o;35916:380::-;36001:1;35991:12;;36048:1;36038:12;;;36059:2;;36113:4;36105:6;36101:17;36091:27;;36059:2;36166;36158:6;36155:14;36135:18;36132:38;36129:2;;;36212:10;36207:3;36203:20;36200:1;36193:31;36247:4;36244:1;36237:15;36275:4;36272:1;36265:15;36129:2;;35971:325;;;:::o;36472:127::-;36533:10;36528:3;36524:20;36521:1;36514:31;36564:4;36561:1;36554:15;36588:4;36585:1;36578:15;36604:127;36665:10;36660:3;36656:20;36653:1;36646:31;36696:4;36693:1;36686:15;36720:4;36717:1;36710:15;36736:947;36917:5;36904:19;36898:4;36891:33;36978:2;36971:5;36967:14;36954:28;36950:1;36944:4;36940:12;36933:50;37037:2;37030:5;37026:14;37013:28;37009:1;37003:4;36999:12;36992:50;37101:2;37094:5;37090:14;37077:28;37184:2;37180:7;37172:5;37156:14;37152:26;37148:40;37128:18;37124:65;37114:2;;37203:1;37200;37193:12;37114:2;37228:30;;37281:18;;37322;37311:30;;37308:2;;;37354:1;37351;37344:12;37308:2;37391;37385:4;37381:13;37367:27;;37438:6;37422:14;37418:27;37410:6;37406:40;37403:2;;;37459:1;37456;37449:12;37403:2;37472:85;37550:6;37542;37538:1;37532:4;37528:12;37472:85;:::i;:::-;;;37611:3;37604:5;37600:15;37587:29;37583:1;37577:4;37573:12;37566:51;37671:3;37664:5;37660:15;37647:29;37643:1;37637:4;37633:12;37626:51;36881:802;;:::o;37688:131::-;-1:-1:-1;;;;;37763:31:103;;37753:42;;37743:2;;37809:1;37806;37799:12;37743:2;37733:86;:::o"},"methodIdentifiers":{"FRACTIONAL_FEE_MAX()":"f964690d","FRACTION_FULL_UNIT()":"b79f5eab","calculateFee(uint256,uint256)":"34e73122","createFeeSpecification(uint256,uint256,uint256,bytes)":"62f0ab55","getComponentToken(uint256)":"038696bb","getFeeSpecification(uint256)":"a434f0ad","getFractionFullUnit()":"8ccf5ca2","getInstanceWallet()":"a44330c4","getRiskpoolWallet(uint256)":"49081637","initialize(address)":"c4d66de8","paused()":"5c975abb","processCapital(uint256,uint256)":"26debdaa","processPayout(bytes32,uint256)":"fe64372b","processPremium(bytes32)":"5ecc078e","processPremium(bytes32,uint256)":"02108268","processWithdrawal(uint256,uint256)":"d9358075","resume()":"046f7da2","setCapitalFees((uint256,uint256,uint256,bytes,uint256,uint256))":"8ca946aa","setInstanceWallet(address)":"cab2504d","setPremiumFees((uint256,uint256,uint256,bytes,uint256,uint256))":"01132a7f","setProductToken(uint256,address)":"cc9cf8cd","setRiskpoolWallet(uint256,address)":"86039aed","suspend()":"e6400bbe"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callSuccess\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"returnDataLength\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"LogTransferHelperCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"tokenIsContract\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"LogTransferHelperInputValidation1Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"}],\"name\":\"LogTransferHelperInputValidation2Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalFeesSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"instanceWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryFeesTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"LogTreasuryInstanceWalletSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPayoutTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumFeesSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"LogTreasuryProductTokenSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LogTreasuryResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"LogTreasuryRiskpoolWalletSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LogTreasurySuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryWithdrawalProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryWithdrawalTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FRACTIONAL_FEE_MAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FRACTION_FULL_UNIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calculateFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"}],\"name\":\"createFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFractionFullUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"capitalAmount\",\"type\":\"uint256\"}],\"name\":\"processCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netCapitalAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPayoutAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"processPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremiumAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processWithdrawal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setCapitalFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instanceWalletAddress\",\"type\":\"address\"}],\"name\":\"setInstanceWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setPremiumFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"setProductToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"}],\"name\":\"setRiskpoolWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspend\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts. The contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the \\\"etherisc/gif-interface\\\" and \\\"openzeppelin/contracts\\\" libraries. The contract defines several state variables, including: - FRACTION_FULL_UNIT: a constant representing the full unit value (10^18). - FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%). - event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation. - event LogTransferHelperInputValidation2Failed: an event that logs a failed input validation. - event LogTransferHelperCallFailed: an event that logs a failed external call. - _instanceWalletAddress: a private variable representing the address of the instance wallet. - _riskpoolWallet: a mapping of riskpool IDs to wallet addresses. - _fees: a mapping of component IDs to FeeSpecification structs. - _componentToken: a mapping of product IDs/riskpool IDs to ERC20 token addresses. - _bundle: an instance of the BundleController contract. - _component: an instance of the ComponentController contract. - _policy: an instance of the PolicyController contract. - _pool: an instance of the PoolController contract. The contract includes several modifiers that enforce certain conditions on function execution, such as the instanceWalletDefined modifier, which requires the instance wallet address to be defined; the riskpoolWalletDefinedForProcess modifier, which requires the riskpool wallet address to be defined for a given process ID; the riskpoolWalletDefinedForBundle modifier, which requires the riskpool wallet address to be defined for a given bundle ID; the whenNotSuspended modifier, which requires the contract to not be paused; and the onlyRiskpoolService modifier, which restricts access to the RiskpoolService contract. The contract contains various functions for managing the treasury, such as setting the product token address, setting the instance wallet address, setting the riskpool wallet address, creating fee specifications, and setting premium and capital fees for components. There are also functions for suspending and resuming the treasury contract. The contract includes a function to calculate the fee amount and net amount for a given component ID and amount. It also includes functions to process premium payments for policies, either for the remaining premium amount or for a specific amount. Overall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/TreasuryModule.sol\":\"TreasuryModule\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/modules/TreasuryModule.sol\":{\"keccak256\":\"0x5b816938607e52b8e3811a426b7c31377109b12c665d3889bdc0fc38b5d1039c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81900732664f85ed367e3c78020bc2bd78e8521dd928f3fd5bcd39ce0ce1dcf0\",\"dweb:/ipfs/QmPcRYLq6SJvZkMnoSZAocCKw9m83oXezNaDsmHJ6UWr4E\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/services/ComponentOwnerService.sol":{"ComponentOwnerService":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IComponent","name":"component","type":"address"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6118e0806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806393c829fc1161005b57806393c829fc146100bd578063a694fc3a146100d0578063c4d66de8146100e3578063fabc1cbc146100f65761007d565b80630126795114610082578063136439dd146100975780632e1a7d4d146100aa575b600080fd5b610095610090366004611700565b610109565b005b6100956100a5366004611796565b610422565b6100956100b8366004611796565b610764565b6100956100cb366004611796565b610a94565b6100956100de366004611796565b610da1565b6100956100f1366004611700565b6110d1565b610095610104366004611796565b611256565b806000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561014557600080fd5b505afa158015610159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017d9190611723565b90506000600260009054906101000a90046001600160a01b03166001600160a01b0316635af89a47846001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101de57600080fd5b505afa1580156101f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102169190611777565b6040518263ffffffff1660e01b815260040161023291906117ae565b60206040518083038186803b15801561024a57600080fd5b505afa15801561025e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610282919061175f565b9050336001600160a01b038316146102e15760405162461bcd60e51b815260206004820152601760248201527f4552524f523a434f532d3030313a4e4f545f4f574e455200000000000000000060448201526064015b60405180910390fd5b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561032d57600080fd5b505afa158015610341573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610365919061173f565b6103bd5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030323a52455155495245445f524f4c455f4d495353604482015262494e4760e81b60648201526084016102d8565b600254604051630126795160e01b81526001600160a01b03868116600483015290911690630126795190602401600060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b5050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561046b57600080fd5b505afa15801561047f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a39190611723565b90506001600160a01b0381166104cb5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561050657600080fd5b505afa15801561051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053e9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b15801561059057600080fd5b505afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c89190611777565b6040518263ffffffff1660e01b81526004016105e491906117ae565b60206040518083038186803b1580156105fc57600080fd5b505afa158015610610573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610634919061175f565b9050336001600160a01b0383161461065e5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156106aa57600080fd5b505afa1580156106be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e2919061173f565b6106fe5760405162461bcd60e51b81526004016102d89061180d565b60025460405163136439dd60e01b8152600481018790526001600160a01b039091169063136439dd906024015b600060405180830381600087803b15801561074557600080fd5b505af1158015610759573d6000803e3d6000fd5b505050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e59190611723565b90506001600160a01b03811661080d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561084857600080fd5b505afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611777565b6040518263ffffffff1660e01b815260040161092691906117ae565b60206040518083038186803b15801561093e57600080fd5b505afa158015610952573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610976919061175f565b9050336001600160a01b038316146109a05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156109ec57600080fd5b505afa158015610a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a24919061173f565b610a405760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030373a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190611723565b90506001600160a01b038116610b3d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7857600080fd5b505afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb09190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610c0257600080fd5b505afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a9190611777565b6040518263ffffffff1660e01b8152600401610c5691906117ae565b60206040518083038186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca6919061175f565b9050336001600160a01b03831614610cd05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b158015610d1c57600080fd5b505afa158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d54919061173f565b610d705760405162461bcd60e51b81526004016102d89061180d565b600254604051636bc607b360e01b8152600481018790526001600160a01b0390911690636bc607b39060240161072b565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610dea57600080fd5b505afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e229190611723565b90506001600160a01b038116610e4a5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8557600080fd5b505afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190611777565b6040518263ffffffff1660e01b8152600401610f6391906117ae565b60206040518083038186803b158015610f7b57600080fd5b505afa158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb3919061175f565b9050336001600160a01b03831614610fdd5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611061919061173f565b61107d5760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030363a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b600054610100900460ff16158080156110f15750600054600160ff909116105b80611112575061110030611563565b158015611112575060005460ff166001145b6111755760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102d8565b6000805460ff191660011790558015611198576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111c2600090565b6541636365737360d01b14611204576111e36541636365737360d01b611576565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61120c61165e565b8015611252576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561129f57600080fd5b505afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190611723565b90506001600160a01b0381166112ff5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156113c457600080fd5b505afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc9190611777565b6040518263ffffffff1660e01b815260040161141891906117ae565b60206040518083038186803b15801561143057600080fd5b505afa158015611444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611468919061175f565b9050336001600160a01b038316146114925760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156114de57600080fd5b505afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611516919061173f565b6115325760405162461bcd60e51b81526004016102d89061180d565b600254604051633eaf072f60e21b8152600481018790526001600160a01b039091169063fabc1cbc9060240161072b565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156115c057600080fd5b505afa1580156115d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f89190611723565b90506001600160a01b0381166115715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016102d8565b600054610100900460ff166116c95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102d8565b6116de6810dbdb5c1bdb995b9d60ba1b611576565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215611711578081fd5b813561171c81611892565b9392505050565b600060208284031215611734578081fd5b815161171c81611892565b600060208284031215611750578081fd5b8151801515811461171c578182fd5b600060208284031215611770578081fd5b5051919050565b600060208284031215611788578081fd5b81516003811061171c578182fd5b6000602082840312156117a7578081fd5b5035919050565b60208101600383106117d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208082526017908201527f4552524f523a434f532d3030343a4e4f545f4f574e4552000000000000000000604082015260600190565b60208082526023908201527f4552524f523a434f532d3030353a52455155495245445f524f4c455f4d495353604082015262494e4760e81b606082015260800190565b60208082526022908201527f4552524f523a434f532d3030333a434f4d504f4e454e545f49445f494e56414c604082015261125160f21b606082015260800190565b6001600160a01b03811681146118a757600080fd5b5056fea26469706673582212204fada8cc38a6834cba510a9d1fd15248263b594551f2057738c5fe9a6731ec8e64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x18E0 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x93C829FC GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x93C829FC EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0xA694FC3A EQ PUSH2 0xD0 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xFABC1CBC EQ PUSH2 0xF6 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x1267951 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x136439DD EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0xAA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x1700 JUMP JUMPDEST PUSH2 0x109 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x422 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x764 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xCB CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xDE CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xDA1 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1700 JUMP JUMPDEST PUSH2 0x10D1 JUMP JUMPDEST PUSH2 0x95 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x1256 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x159 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5AF89A47 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x15DAE03E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x216 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x2E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030313A4E4F545F4F574E4552000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x341 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x365 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x3BD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030323A52455155495245445F524F4C455F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1267951 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x1267951 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x47F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4A3 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x506 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x51A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x53E SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C8 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x610 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x634 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x65E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6E2 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x6FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136439DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x136439DD SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x759 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x80D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x85C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x880 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x926 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x93E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x952 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x976 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x9A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA00 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA24 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030373A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB15 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBB0 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC3A SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC56 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCA6 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0xCD0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD54 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0xD70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6BC607B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6BC607B3 SWAP1 PUSH1 0x24 ADD PUSH2 0x72B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE22 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xE4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE99 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEBD SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF47 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF63 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB3 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0xFDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1029 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x103D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1061 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x107D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030363A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x10F1 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1112 JUMPI POP PUSH2 0x1100 ADDRESS PUSH2 0x1563 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x1112 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1175 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1198 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x11C2 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1204 JUMPI PUSH2 0x11E3 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1576 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x120C PUSH2 0x165E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1252 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x129F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12D7 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1372 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13D8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13FC SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1418 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1444 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1468 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x1492 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1516 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x1532 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3EAF072F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFABC1CBC SWAP1 PUSH1 0x24 ADD PUSH2 0x72B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15F8 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1571 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x16C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH2 0x16DE PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1576 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1711 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x171C DUP2 PUSH2 0x1892 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1734 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x171C DUP2 PUSH2 0x1892 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1750 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x171C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1770 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1788 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x171C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17A7 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x17D0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x17 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030343A4E4F545F4F574E4552000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030353A52455155495245445F524F4C455F4D495353 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030333A434F4D504F4E454E545F49445F494E56414C PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F 0xAD 0xA8 0xCC CODESIZE 0xA6 DUP4 0x4C 0xBA MLOAD EXP SWAP14 0x1F 0xD1 MSTORE 0x48 0x26 EXTCODESIZE MSIZE GASLIMIT MLOAD CALLCODE SDIV PUSH24 0x38C5FE9A6731EC8E64736F6C634300080200330000000000 ","sourceMap":"488:2163:82:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;488:2163:82;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;488:2163:82;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7616:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"620:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"666:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"675:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"683:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"668:6:103"},"nodeType":"YulFunctionCall","src":"668:22:103"},"nodeType":"YulExpressionStatement","src":"668:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"641:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"650:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"637:3:103"},"nodeType":"YulFunctionCall","src":"637:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"662:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"633:3:103"},"nodeType":"YulFunctionCall","src":"633:32:103"},"nodeType":"YulIf","src":"630:2:103"},{"nodeType":"YulVariableDeclaration","src":"701:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"720:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"714:5:103"},"nodeType":"YulFunctionCall","src":"714:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"705:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"783:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"800:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"785:6:103"},"nodeType":"YulFunctionCall","src":"785:22:103"},"nodeType":"YulExpressionStatement","src":"785:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"752:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"773:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"766:6:103"},"nodeType":"YulFunctionCall","src":"766:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"759:6:103"},"nodeType":"YulFunctionCall","src":"759:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"749:2:103"},"nodeType":"YulFunctionCall","src":"749:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"742:6:103"},"nodeType":"YulFunctionCall","src":"742:40:103"},"nodeType":"YulIf","src":"739:2:103"},{"nodeType":"YulAssignment","src":"818:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"828:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"818:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"586:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"597:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"609:6:103","type":""}],"src":"542:297:103"},{"body":{"nodeType":"YulBlock","src":"925:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"971:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"980:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"988:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"973:6:103"},"nodeType":"YulFunctionCall","src":"973:22:103"},"nodeType":"YulExpressionStatement","src":"973:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"946:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"955:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"942:3:103"},"nodeType":"YulFunctionCall","src":"942:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"967:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"938:3:103"},"nodeType":"YulFunctionCall","src":"938:32:103"},"nodeType":"YulIf","src":"935:2:103"},{"nodeType":"YulAssignment","src":"1006:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1022:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1016:5:103"},"nodeType":"YulFunctionCall","src":"1016:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1006:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"891:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"902:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"914:6:103","type":""}],"src":"844:194:103"},{"body":{"nodeType":"YulBlock","src":"1132:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1178:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1187:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1195:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1180:6:103"},"nodeType":"YulFunctionCall","src":"1180:22:103"},"nodeType":"YulExpressionStatement","src":"1180:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1153:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1162:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1149:3:103"},"nodeType":"YulFunctionCall","src":"1149:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1174:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1145:3:103"},"nodeType":"YulFunctionCall","src":"1145:32:103"},"nodeType":"YulIf","src":"1142:2:103"},{"nodeType":"YulVariableDeclaration","src":"1213:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1239:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1226:12:103"},"nodeType":"YulFunctionCall","src":"1226:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1217:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1283:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1258:24:103"},"nodeType":"YulFunctionCall","src":"1258:31:103"},"nodeType":"YulExpressionStatement","src":"1258:31:103"},{"nodeType":"YulAssignment","src":"1298:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1308:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1298:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1098:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1109:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1121:6:103","type":""}],"src":"1043:276:103"},{"body":{"nodeType":"YulBlock","src":"1424:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1470:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1479:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1487:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1472:6:103"},"nodeType":"YulFunctionCall","src":"1472:22:103"},"nodeType":"YulExpressionStatement","src":"1472:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1445:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1454:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1441:3:103"},"nodeType":"YulFunctionCall","src":"1441:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1466:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1437:3:103"},"nodeType":"YulFunctionCall","src":"1437:32:103"},"nodeType":"YulIf","src":"1434:2:103"},{"nodeType":"YulVariableDeclaration","src":"1505:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1524:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1518:5:103"},"nodeType":"YulFunctionCall","src":"1518:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1509:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1568:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1543:24:103"},"nodeType":"YulFunctionCall","src":"1543:31:103"},"nodeType":"YulExpressionStatement","src":"1543:31:103"},{"nodeType":"YulAssignment","src":"1583:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1593:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1583:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1390:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1401:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1413:6:103","type":""}],"src":"1324:280:103"},{"body":{"nodeType":"YulBlock","src":"1708:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"1754:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1763:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1771:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1756:6:103"},"nodeType":"YulFunctionCall","src":"1756:22:103"},"nodeType":"YulExpressionStatement","src":"1756:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1729:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1738:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1725:3:103"},"nodeType":"YulFunctionCall","src":"1725:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1750:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1721:3:103"},"nodeType":"YulFunctionCall","src":"1721:32:103"},"nodeType":"YulIf","src":"1718:2:103"},{"nodeType":"YulVariableDeclaration","src":"1789:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1808:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1802:5:103"},"nodeType":"YulFunctionCall","src":"1802:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1793:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1851:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1860:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1853:6:103"},"nodeType":"YulFunctionCall","src":"1853:22:103"},"nodeType":"YulExpressionStatement","src":"1853:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1840:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1847:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1837:2:103"},"nodeType":"YulFunctionCall","src":"1837:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1830:6:103"},"nodeType":"YulFunctionCall","src":"1830:20:103"},"nodeType":"YulIf","src":"1827:2:103"},{"nodeType":"YulAssignment","src":"1886:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1896:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1886:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1674:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1685:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1697:6:103","type":""}],"src":"1609:298:103"},{"body":{"nodeType":"YulBlock","src":"1982:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2028:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2037:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2045:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2030:6:103"},"nodeType":"YulFunctionCall","src":"2030:22:103"},"nodeType":"YulExpressionStatement","src":"2030:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2003:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2012:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1999:3:103"},"nodeType":"YulFunctionCall","src":"1999:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2024:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1995:3:103"},"nodeType":"YulFunctionCall","src":"1995:32:103"},"nodeType":"YulIf","src":"1992:2:103"},{"nodeType":"YulAssignment","src":"2063:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2086:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2073:12:103"},"nodeType":"YulFunctionCall","src":"2073:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2063:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1948:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1959:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1971:6:103","type":""}],"src":"1912:190:103"},{"body":{"nodeType":"YulBlock","src":"2208:76:103","statements":[{"nodeType":"YulAssignment","src":"2218:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2230:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2241:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2226:3:103"},"nodeType":"YulFunctionCall","src":"2226:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2218:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2260:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2271:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2253:6:103"},"nodeType":"YulFunctionCall","src":"2253:25:103"},"nodeType":"YulExpressionStatement","src":"2253:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2177:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2188:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2199:4:103","type":""}],"src":"2107:177:103"},{"body":{"nodeType":"YulBlock","src":"2418:145:103","statements":[{"nodeType":"YulAssignment","src":"2428:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2451:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2436:3:103"},"nodeType":"YulFunctionCall","src":"2436:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2428:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2470:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2481:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2463:6:103"},"nodeType":"YulFunctionCall","src":"2463:25:103"},"nodeType":"YulExpressionStatement","src":"2463:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2508:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2519:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2504:3:103"},"nodeType":"YulFunctionCall","src":"2504:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2528:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2544:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2549:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2540:3:103"},"nodeType":"YulFunctionCall","src":"2540:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2553:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2536:3:103"},"nodeType":"YulFunctionCall","src":"2536:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2524:3:103"},"nodeType":"YulFunctionCall","src":"2524:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2497:6:103"},"nodeType":"YulFunctionCall","src":"2497:60:103"},"nodeType":"YulExpressionStatement","src":"2497:60:103"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2379:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2390:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2398:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2409:4:103","type":""}],"src":"2289:274:103"},{"body":{"nodeType":"YulBlock","src":"2688:102:103","statements":[{"nodeType":"YulAssignment","src":"2698:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2710:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2721:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2706:3:103"},"nodeType":"YulFunctionCall","src":"2706:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2698:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2740:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2755:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2771:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2776:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2767:3:103"},"nodeType":"YulFunctionCall","src":"2767:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2780:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2763:3:103"},"nodeType":"YulFunctionCall","src":"2763:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2751:3:103"},"nodeType":"YulFunctionCall","src":"2751:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2733:6:103"},"nodeType":"YulFunctionCall","src":"2733:51:103"},"nodeType":"YulExpressionStatement","src":"2733:51:103"}]},"name":"abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2657:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2668:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2679:4:103","type":""}],"src":"2568:222:103"},{"body":{"nodeType":"YulBlock","src":"2912:229:103","statements":[{"nodeType":"YulAssignment","src":"2922:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2930:3:103"},"nodeType":"YulFunctionCall","src":"2930:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2922:4:103"}]},{"body":{"nodeType":"YulBlock","src":"2990:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3011:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3018:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3023:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3014:3:103"},"nodeType":"YulFunctionCall","src":"3014:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3004:6:103"},"nodeType":"YulFunctionCall","src":"3004:31:103"},"nodeType":"YulExpressionStatement","src":"3004:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3055:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3058:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3048:6:103"},"nodeType":"YulFunctionCall","src":"3048:15:103"},"nodeType":"YulExpressionStatement","src":"3048:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3083:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3086:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3076:6:103"},"nodeType":"YulFunctionCall","src":"3076:15:103"},"nodeType":"YulExpressionStatement","src":"3076:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2970:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2978:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2967:2:103"},"nodeType":"YulFunctionCall","src":"2967:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2960:6:103"},"nodeType":"YulFunctionCall","src":"2960:21:103"},"nodeType":"YulIf","src":"2957:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3117:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3128:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3110:6:103"},"nodeType":"YulFunctionCall","src":"3110:25:103"},"nodeType":"YulExpressionStatement","src":"3110:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2881:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2892:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2903:4:103","type":""}],"src":"2795:346:103"},{"body":{"nodeType":"YulBlock","src":"3253:87:103","statements":[{"nodeType":"YulAssignment","src":"3263:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3275:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3286:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3271:3:103"},"nodeType":"YulFunctionCall","src":"3271:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3263:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3305:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3320:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3328:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3316:3:103"},"nodeType":"YulFunctionCall","src":"3316:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3298:6:103"},"nodeType":"YulFunctionCall","src":"3298:36:103"},"nodeType":"YulExpressionStatement","src":"3298:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3222:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3233:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3244:4:103","type":""}],"src":"3146:194:103"},{"body":{"nodeType":"YulBlock","src":"3519:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3536:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3547:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3529:6:103"},"nodeType":"YulFunctionCall","src":"3529:21:103"},"nodeType":"YulExpressionStatement","src":"3529:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3570:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3581:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3566:3:103"},"nodeType":"YulFunctionCall","src":"3566:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3586:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3559:6:103"},"nodeType":"YulFunctionCall","src":"3559:30:103"},"nodeType":"YulExpressionStatement","src":"3559:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3620:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3605:3:103"},"nodeType":"YulFunctionCall","src":"3605:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3625:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3598:6:103"},"nodeType":"YulFunctionCall","src":"3598:62:103"},"nodeType":"YulExpressionStatement","src":"3598:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3691:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3676:3:103"},"nodeType":"YulFunctionCall","src":"3676:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3696:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3669:6:103"},"nodeType":"YulFunctionCall","src":"3669:35:103"},"nodeType":"YulExpressionStatement","src":"3669:35:103"},{"nodeType":"YulAssignment","src":"3713:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3736:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3721:3:103"},"nodeType":"YulFunctionCall","src":"3721:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3713:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3496:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3510:4:103","type":""}],"src":"3345:401:103"},{"body":{"nodeType":"YulBlock","src":"3925:173:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3953:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3935:6:103"},"nodeType":"YulFunctionCall","src":"3935:21:103"},"nodeType":"YulExpressionStatement","src":"3935:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3976:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3987:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3972:3:103"},"nodeType":"YulFunctionCall","src":"3972:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3992:2:103","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3965:6:103"},"nodeType":"YulFunctionCall","src":"3965:30:103"},"nodeType":"YulExpressionStatement","src":"3965:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4015:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4026:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4011:3:103"},"nodeType":"YulFunctionCall","src":"4011:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4031:25:103","type":"","value":"ERROR:COS-004:NOT_OWNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4004:6:103"},"nodeType":"YulFunctionCall","src":"4004:53:103"},"nodeType":"YulExpressionStatement","src":"4004:53:103"},{"nodeType":"YulAssignment","src":"4066:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4089:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4074:3:103"},"nodeType":"YulFunctionCall","src":"4074:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4066:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3dfee339654c8563649f4df81de163cc439c725d11fcbc6e2de5d26baaee8ff7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3902:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3916:4:103","type":""}],"src":"3751:347:103"},{"body":{"nodeType":"YulBlock","src":"4277:173:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4294:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4305:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4287:6:103"},"nodeType":"YulFunctionCall","src":"4287:21:103"},"nodeType":"YulExpressionStatement","src":"4287:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4328:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4339:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4324:3:103"},"nodeType":"YulFunctionCall","src":"4324:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4344:2:103","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4317:6:103"},"nodeType":"YulFunctionCall","src":"4317:30:103"},"nodeType":"YulExpressionStatement","src":"4317:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4367:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4378:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4363:3:103"},"nodeType":"YulFunctionCall","src":"4363:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4383:25:103","type":"","value":"ERROR:COS-001:NOT_OWNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4356:6:103"},"nodeType":"YulFunctionCall","src":"4356:53:103"},"nodeType":"YulExpressionStatement","src":"4356:53:103"},{"nodeType":"YulAssignment","src":"4418:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4430:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4441:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4426:3:103"},"nodeType":"YulFunctionCall","src":"4426:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4418:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_465d2c87dcb0f9e507f01f9bd011e20013cefede3ead0fe8442c34503dee279a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4254:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4268:4:103","type":""}],"src":"4103:347:103"},{"body":{"nodeType":"YulBlock","src":"4629:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4646:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4657:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4639:6:103"},"nodeType":"YulFunctionCall","src":"4639:21:103"},"nodeType":"YulExpressionStatement","src":"4639:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4691:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4676:3:103"},"nodeType":"YulFunctionCall","src":"4676:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4696:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4669:6:103"},"nodeType":"YulFunctionCall","src":"4669:30:103"},"nodeType":"YulExpressionStatement","src":"4669:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4730:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4715:3:103"},"nodeType":"YulFunctionCall","src":"4715:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4735:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4708:6:103"},"nodeType":"YulFunctionCall","src":"4708:62:103"},"nodeType":"YulExpressionStatement","src":"4708:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4790:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4801:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4786:3:103"},"nodeType":"YulFunctionCall","src":"4786:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4806:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4779:6:103"},"nodeType":"YulFunctionCall","src":"4779:44:103"},"nodeType":"YulExpressionStatement","src":"4779:44:103"},{"nodeType":"YulAssignment","src":"4832:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4855:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4840:3:103"},"nodeType":"YulFunctionCall","src":"4840:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4832:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4606:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4620:4:103","type":""}],"src":"4455:410:103"},{"body":{"nodeType":"YulBlock","src":"5044:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5061:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5072:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5054:6:103"},"nodeType":"YulFunctionCall","src":"5054:21:103"},"nodeType":"YulExpressionStatement","src":"5054:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5095:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5106:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5091:3:103"},"nodeType":"YulFunctionCall","src":"5091:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5111:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5084:6:103"},"nodeType":"YulFunctionCall","src":"5084:30:103"},"nodeType":"YulExpressionStatement","src":"5084:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5134:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5145:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5130:3:103"},"nodeType":"YulFunctionCall","src":"5130:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5150:34:103","type":"","value":"ERROR:COS-005:REQUIRED_ROLE_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5123:6:103"},"nodeType":"YulFunctionCall","src":"5123:62:103"},"nodeType":"YulExpressionStatement","src":"5123:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5216:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5201:3:103"},"nodeType":"YulFunctionCall","src":"5201:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5221:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5194:6:103"},"nodeType":"YulFunctionCall","src":"5194:33:103"},"nodeType":"YulExpressionStatement","src":"5194:33:103"},{"nodeType":"YulAssignment","src":"5236:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5259:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5244:3:103"},"nodeType":"YulFunctionCall","src":"5244:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5236:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_88c17061477e2a1abea4e769d8a1e347027489fb75476594ddd18ce8ec84d271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5021:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5035:4:103","type":""}],"src":"4870:399:103"},{"body":{"nodeType":"YulBlock","src":"5448:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5476:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5458:6:103"},"nodeType":"YulFunctionCall","src":"5458:21:103"},"nodeType":"YulExpressionStatement","src":"5458:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5499:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5510:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5495:3:103"},"nodeType":"YulFunctionCall","src":"5495:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5515:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5488:6:103"},"nodeType":"YulFunctionCall","src":"5488:30:103"},"nodeType":"YulExpressionStatement","src":"5488:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5538:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5549:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5534:3:103"},"nodeType":"YulFunctionCall","src":"5534:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5554:34:103","type":"","value":"ERROR:COS-006:IMPLEMENATION_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5527:6:103"},"nodeType":"YulFunctionCall","src":"5527:62:103"},"nodeType":"YulExpressionStatement","src":"5527:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5620:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5605:3:103"},"nodeType":"YulFunctionCall","src":"5605:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5625:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5598:6:103"},"nodeType":"YulFunctionCall","src":"5598:33:103"},"nodeType":"YulExpressionStatement","src":"5598:33:103"},{"nodeType":"YulAssignment","src":"5640:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5663:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5648:3:103"},"nodeType":"YulFunctionCall","src":"5648:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5640:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8c33643b536d9b9641d49decf8b2e52fa547e9e6beac65134376f36156613b58__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5425:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5439:4:103","type":""}],"src":"5274:399:103"},{"body":{"nodeType":"YulBlock","src":"5852:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5869:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5880:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5862:6:103"},"nodeType":"YulFunctionCall","src":"5862:21:103"},"nodeType":"YulExpressionStatement","src":"5862:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5914:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5899:3:103"},"nodeType":"YulFunctionCall","src":"5899:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5919:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5892:6:103"},"nodeType":"YulFunctionCall","src":"5892:30:103"},"nodeType":"YulExpressionStatement","src":"5892:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5953:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5938:3:103"},"nodeType":"YulFunctionCall","src":"5938:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5958:34:103","type":"","value":"ERROR:COS-002:REQUIRED_ROLE_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5931:6:103"},"nodeType":"YulFunctionCall","src":"5931:62:103"},"nodeType":"YulExpressionStatement","src":"5931:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6024:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6009:3:103"},"nodeType":"YulFunctionCall","src":"6009:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6029:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6002:6:103"},"nodeType":"YulFunctionCall","src":"6002:33:103"},"nodeType":"YulExpressionStatement","src":"6002:33:103"},{"nodeType":"YulAssignment","src":"6044:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6056:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6067:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6052:3:103"},"nodeType":"YulFunctionCall","src":"6052:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6044:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ba7f3dd1050d0760c96ec2016b668c5029825c4f0129279369d1f9706925f324__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5829:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5843:4:103","type":""}],"src":"5678:399:103"},{"body":{"nodeType":"YulBlock","src":"6256:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6273:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6284:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6266:6:103"},"nodeType":"YulFunctionCall","src":"6266:21:103"},"nodeType":"YulExpressionStatement","src":"6266:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6307:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6318:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6303:3:103"},"nodeType":"YulFunctionCall","src":"6303:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6323:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6296:6:103"},"nodeType":"YulFunctionCall","src":"6296:30:103"},"nodeType":"YulExpressionStatement","src":"6296:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6346:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6357:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6342:3:103"},"nodeType":"YulFunctionCall","src":"6342:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6362:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6335:6:103"},"nodeType":"YulFunctionCall","src":"6335:62:103"},"nodeType":"YulExpressionStatement","src":"6335:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6417:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6428:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6413:3:103"},"nodeType":"YulFunctionCall","src":"6413:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6433:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6406:6:103"},"nodeType":"YulFunctionCall","src":"6406:41:103"},"nodeType":"YulExpressionStatement","src":"6406:41:103"},{"nodeType":"YulAssignment","src":"6456:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6468:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6479:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6464:3:103"},"nodeType":"YulFunctionCall","src":"6464:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6456:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6233:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6247:4:103","type":""}],"src":"6082:407:103"},{"body":{"nodeType":"YulBlock","src":"6668:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6685:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6696:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6678:6:103"},"nodeType":"YulFunctionCall","src":"6678:21:103"},"nodeType":"YulExpressionStatement","src":"6678:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6730:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6715:3:103"},"nodeType":"YulFunctionCall","src":"6715:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6735:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6708:6:103"},"nodeType":"YulFunctionCall","src":"6708:30:103"},"nodeType":"YulExpressionStatement","src":"6708:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6758:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6769:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6754:3:103"},"nodeType":"YulFunctionCall","src":"6754:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6774:34:103","type":"","value":"ERROR:COS-003:COMPONENT_ID_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6747:6:103"},"nodeType":"YulFunctionCall","src":"6747:62:103"},"nodeType":"YulExpressionStatement","src":"6747:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6829:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6840:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6825:3:103"},"nodeType":"YulFunctionCall","src":"6825:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6845:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6818:6:103"},"nodeType":"YulFunctionCall","src":"6818:32:103"},"nodeType":"YulExpressionStatement","src":"6818:32:103"},{"nodeType":"YulAssignment","src":"6859:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6871:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6882:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6867:3:103"},"nodeType":"YulFunctionCall","src":"6867:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6859:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dd56e2e72358a9edc326877a1e38d84909493861f3901cf215f515edfe95f5df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6645:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6659:4:103","type":""}],"src":"6494:398:103"},{"body":{"nodeType":"YulBlock","src":"7071:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7099:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7081:6:103"},"nodeType":"YulFunctionCall","src":"7081:21:103"},"nodeType":"YulExpressionStatement","src":"7081:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7133:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7118:3:103"},"nodeType":"YulFunctionCall","src":"7118:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7138:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7111:6:103"},"nodeType":"YulFunctionCall","src":"7111:30:103"},"nodeType":"YulExpressionStatement","src":"7111:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7172:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7157:3:103"},"nodeType":"YulFunctionCall","src":"7157:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7177:34:103","type":"","value":"ERROR:COS-007:IMPLEMENATION_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7150:6:103"},"nodeType":"YulFunctionCall","src":"7150:62:103"},"nodeType":"YulExpressionStatement","src":"7150:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7232:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7243:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7228:3:103"},"nodeType":"YulFunctionCall","src":"7228:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7248:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7221:6:103"},"nodeType":"YulFunctionCall","src":"7221:33:103"},"nodeType":"YulExpressionStatement","src":"7221:33:103"},{"nodeType":"YulAssignment","src":"7263:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7275:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7286:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7271:3:103"},"nodeType":"YulFunctionCall","src":"7271:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7263:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb6da26fba0466dffcc83682913bbbb22b0d48dbbc0bda69e09fccb7c56e2455__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7048:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7062:4:103","type":""}],"src":"6897:399:103"},{"body":{"nodeType":"YulBlock","src":"7402:76:103","statements":[{"nodeType":"YulAssignment","src":"7412:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7424:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7435:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7420:3:103"},"nodeType":"YulFunctionCall","src":"7420:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7412:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7454:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7465:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7447:6:103"},"nodeType":"YulFunctionCall","src":"7447:25:103"},"nodeType":"YulExpressionStatement","src":"7447:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7371:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7382:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7393:4:103","type":""}],"src":"7301:177:103"},{"body":{"nodeType":"YulBlock","src":"7528:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"7592:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7601:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7604:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7594:6:103"},"nodeType":"YulFunctionCall","src":"7594:12:103"},"nodeType":"YulExpressionStatement","src":"7594:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7551:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7562:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7577:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7582:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7573:3:103"},"nodeType":"YulFunctionCall","src":"7573:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7586:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7569:3:103"},"nodeType":"YulFunctionCall","src":"7569:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7558:3:103"},"nodeType":"YulFunctionCall","src":"7558:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7548:2:103"},"nodeType":"YulFunctionCall","src":"7548:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7541:6:103"},"nodeType":"YulFunctionCall","src":"7541:50:103"},"nodeType":"YulIf","src":"7538:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7517:5:103","type":""}],"src":"7483:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 3)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3dfee339654c8563649f4df81de163cc439c725d11fcbc6e2de5d26baaee8ff7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"ERROR:COS-004:NOT_OWNER\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_465d2c87dcb0f9e507f01f9bd011e20013cefede3ead0fe8442c34503dee279a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"ERROR:COS-001:NOT_OWNER\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_88c17061477e2a1abea4e769d8a1e347027489fb75476594ddd18ce8ec84d271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:COS-005:REQUIRED_ROLE_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8c33643b536d9b9641d49decf8b2e52fa547e9e6beac65134376f36156613b58__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:COS-006:IMPLEMENATION_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ba7f3dd1050d0760c96ec2016b668c5029825c4f0129279369d1f9706925f324__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:COS-002:REQUIRED_ROLE_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_dd56e2e72358a9edc326877a1e38d84909493861f3901cf215f515edfe95f5df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:COS-003:COMPONENT_ID_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb6da26fba0466dffcc83682913bbbb22b0d48dbbc0bda69e09fccb7c56e2455__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:COS-007:IMPLEMENATION_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061007d5760003560e01c806393c829fc1161005b57806393c829fc146100bd578063a694fc3a146100d0578063c4d66de8146100e3578063fabc1cbc146100f65761007d565b80630126795114610082578063136439dd146100975780632e1a7d4d146100aa575b600080fd5b610095610090366004611700565b610109565b005b6100956100a5366004611796565b610422565b6100956100b8366004611796565b610764565b6100956100cb366004611796565b610a94565b6100956100de366004611796565b610da1565b6100956100f1366004611700565b6110d1565b610095610104366004611796565b611256565b806000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561014557600080fd5b505afa158015610159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017d9190611723565b90506000600260009054906101000a90046001600160a01b03166001600160a01b0316635af89a47846001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101de57600080fd5b505afa1580156101f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102169190611777565b6040518263ffffffff1660e01b815260040161023291906117ae565b60206040518083038186803b15801561024a57600080fd5b505afa15801561025e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610282919061175f565b9050336001600160a01b038316146102e15760405162461bcd60e51b815260206004820152601760248201527f4552524f523a434f532d3030313a4e4f545f4f574e455200000000000000000060448201526064015b60405180910390fd5b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561032d57600080fd5b505afa158015610341573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610365919061173f565b6103bd5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030323a52455155495245445f524f4c455f4d495353604482015262494e4760e81b60648201526084016102d8565b600254604051630126795160e01b81526001600160a01b03868116600483015290911690630126795190602401600060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b5050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561046b57600080fd5b505afa15801561047f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a39190611723565b90506001600160a01b0381166104cb5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561050657600080fd5b505afa15801561051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053e9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b15801561059057600080fd5b505afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c89190611777565b6040518263ffffffff1660e01b81526004016105e491906117ae565b60206040518083038186803b1580156105fc57600080fd5b505afa158015610610573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610634919061175f565b9050336001600160a01b0383161461065e5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156106aa57600080fd5b505afa1580156106be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e2919061173f565b6106fe5760405162461bcd60e51b81526004016102d89061180d565b60025460405163136439dd60e01b8152600481018790526001600160a01b039091169063136439dd906024015b600060405180830381600087803b15801561074557600080fd5b505af1158015610759573d6000803e3d6000fd5b505050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e59190611723565b90506001600160a01b03811661080d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561084857600080fd5b505afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611777565b6040518263ffffffff1660e01b815260040161092691906117ae565b60206040518083038186803b15801561093e57600080fd5b505afa158015610952573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610976919061175f565b9050336001600160a01b038316146109a05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156109ec57600080fd5b505afa158015610a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a24919061173f565b610a405760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030373a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190611723565b90506001600160a01b038116610b3d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7857600080fd5b505afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb09190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610c0257600080fd5b505afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a9190611777565b6040518263ffffffff1660e01b8152600401610c5691906117ae565b60206040518083038186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca6919061175f565b9050336001600160a01b03831614610cd05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b158015610d1c57600080fd5b505afa158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d54919061173f565b610d705760405162461bcd60e51b81526004016102d89061180d565b600254604051636bc607b360e01b8152600481018790526001600160a01b0390911690636bc607b39060240161072b565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610dea57600080fd5b505afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e229190611723565b90506001600160a01b038116610e4a5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8557600080fd5b505afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190611777565b6040518263ffffffff1660e01b8152600401610f6391906117ae565b60206040518083038186803b158015610f7b57600080fd5b505afa158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb3919061175f565b9050336001600160a01b03831614610fdd5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611061919061173f565b61107d5760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030363a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b600054610100900460ff16158080156110f15750600054600160ff909116105b80611112575061110030611563565b158015611112575060005460ff166001145b6111755760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102d8565b6000805460ff191660011790558015611198576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111c2600090565b6541636365737360d01b14611204576111e36541636365737360d01b611576565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61120c61165e565b8015611252576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561129f57600080fd5b505afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190611723565b90506001600160a01b0381166112ff5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156113c457600080fd5b505afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc9190611777565b6040518263ffffffff1660e01b815260040161141891906117ae565b60206040518083038186803b15801561143057600080fd5b505afa158015611444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611468919061175f565b9050336001600160a01b038316146114925760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156114de57600080fd5b505afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611516919061173f565b6115325760405162461bcd60e51b81526004016102d89061180d565b600254604051633eaf072f60e21b8152600481018790526001600160a01b039091169063fabc1cbc9060240161072b565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156115c057600080fd5b505afa1580156115d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f89190611723565b90506001600160a01b0381166115715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016102d8565b600054610100900460ff166116c95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102d8565b6116de6810dbdb5c1bdb995b9d60ba1b611576565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215611711578081fd5b813561171c81611892565b9392505050565b600060208284031215611734578081fd5b815161171c81611892565b600060208284031215611750578081fd5b8151801515811461171c578182fd5b600060208284031215611770578081fd5b5051919050565b600060208284031215611788578081fd5b81516003811061171c578182fd5b6000602082840312156117a7578081fd5b5035919050565b60208101600383106117d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208082526017908201527f4552524f523a434f532d3030343a4e4f545f4f574e4552000000000000000000604082015260600190565b60208082526023908201527f4552524f523a434f532d3030353a52455155495245445f524f4c455f4d495353604082015262494e4760e81b606082015260800190565b60208082526022908201527f4552524f523a434f532d3030333a434f4d504f4e454e545f49445f494e56414c604082015261125160f21b606082015260800190565b6001600160a01b03811681146118a757600080fd5b5056fea26469706673582212204fada8cc38a6834cba510a9d1fd15248263b594551f2057738c5fe9a6731ec8e64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x93C829FC GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x93C829FC EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0xA694FC3A EQ PUSH2 0xD0 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xFABC1CBC EQ PUSH2 0xF6 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x1267951 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x136439DD EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0xAA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x1700 JUMP JUMPDEST PUSH2 0x109 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x422 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x764 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xCB CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xDE CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xDA1 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1700 JUMP JUMPDEST PUSH2 0x10D1 JUMP JUMPDEST PUSH2 0x95 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x1256 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x159 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5AF89A47 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x15DAE03E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x216 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x2E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030313A4E4F545F4F574E4552000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x341 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x365 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x3BD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030323A52455155495245445F524F4C455F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1267951 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x1267951 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x47F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4A3 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x506 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x51A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x53E SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C8 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x610 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x634 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x65E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6E2 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x6FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136439DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x136439DD SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x759 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x80D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x85C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x880 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x926 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x93E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x952 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x976 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x9A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA00 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA24 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030373A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB15 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBB0 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC3A SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC56 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCA6 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0xCD0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD54 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0xD70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6BC607B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6BC607B3 SWAP1 PUSH1 0x24 ADD PUSH2 0x72B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE22 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xE4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE99 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEBD SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF47 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF63 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB3 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0xFDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1029 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x103D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1061 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x107D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030363A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x10F1 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1112 JUMPI POP PUSH2 0x1100 ADDRESS PUSH2 0x1563 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x1112 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1175 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1198 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x11C2 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1204 JUMPI PUSH2 0x11E3 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1576 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x120C PUSH2 0x165E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1252 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x129F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12D7 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1372 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13D8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13FC SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1418 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1444 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1468 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x1492 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1516 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x1532 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3EAF072F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFABC1CBC SWAP1 PUSH1 0x24 ADD PUSH2 0x72B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15F8 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1571 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x16C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH2 0x16DE PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1576 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1711 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x171C DUP2 PUSH2 0x1892 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1734 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x171C DUP2 PUSH2 0x1892 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1750 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x171C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1770 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1788 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x171C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17A7 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x17D0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x17 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030343A4E4F545F4F574E4552000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030353A52455155495245445F524F4C455F4D495353 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030333A434F4D504F4E454E545F49445F494E56414C PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F 0xAD 0xA8 0xCC CODESIZE 0xA6 DUP4 0x4C 0xBA MLOAD EXP SWAP14 0x1F 0xD1 MSTORE 0x48 0x26 EXTCODESIZE MSIZE GASLIMIT MLOAD CALLCODE SDIV PUSH24 0x38C5FE9A6731EC8E64736F6C634300080200330000000000 ","sourceMap":"488:2163:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1689:172;;;;;;:::i;:::-;;:::i;:::-;;2211:131;;;;;;:::i;:::-;;:::i;2034:159::-;;;;;;:::i;:::-;;:::i;2494:154::-;;;;;;:::i;:::-;;:::i;1869:157::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;2350:136:82:-;;;;;;:::i;:::-;;:::i;1689:172::-;1796:9;700:13;716:9;-1:-1:-1;;;;;716:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;700:36;;747:20;770:10;;;;;;;;;-1:-1:-1;;;;;770:10:82;-1:-1:-1;;;;;770:26:82;;797:9;-1:-1:-1;;;;;797:17:82;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;770:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;747:70;-1:-1:-1;719:10:59;-1:-1:-1;;;;;836:21:82;;;828:57;;;;-1:-1:-1;;;828:57:82;;4305:2:103;828:57:82;;;4287:21:103;4344:2;4324:18;;;4317:30;4383:25;4363:18;;;4356:53;4426:18;;828:57:82;;;;;;;;;904:7;;:36;;-1:-1:-1;;;904:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;904:7:82;;;;:15;;2436:18:103;;904:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;896:84;;;;-1:-1:-1;;;896:84:82;;5880:2:103;896:84:82;;;5862:21:103;5919:2;5899:18;;;5892:30;5958:34;5938:18;;;5931:62;-1:-1:-1;;;6009:18:103;;;6002:33;6052:19;;896:84:82;5852:225:103;896:84:82;1824:10:::1;::::0;:29:::1;::::0;-1:-1:-1;;;1824:29:82;;-1:-1:-1;;;;;2751:32:103;;;1824:29:82::1;::::0;::::1;2733:51:103::0;1824:10:82;;::::1;::::0;:18:::1;::::0;2706::103;;1824:29:82::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1689:172:::0;;;;:::o;2211:131::-;1081:10;;:27;;-1:-1:-1;;;1081:27:82;;;;;2253:25:103;;;2293:2:82;;1058:20;;-1:-1:-1;;;;;1081:10:82;;;;:23;;2226:18:103;;1081:27:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1058:50;-1:-1:-1;;;;;;1127:32:82;;1119:79;;;;-1:-1:-1;;;1119:79:82;;;;;;;:::i;:::-;1211:13;1227:9;-1:-1:-1;;;;;1227:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:10;;1308:31;;-1:-1:-1;;;1308:31:82;;;;;2253:25:103;;;1211:36:82;;-1:-1:-1;1258:20:82;;-1:-1:-1;;;;;1281:10:82;;;;:26;;:10;;1308:27;;2226:18:103;;1308:31:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1258:82;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1361:21:82;;;1353:57;;;;-1:-1:-1;;;1353:57:82;;;;;;;:::i;:::-;1429:7;;:36;;-1:-1:-1;;;1429:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;1429:7:82;;;;:15;;2436:18:103;;1429:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:84;;;;-1:-1:-1;;;1421:84:82;;;;;;;:::i;:::-;2314:10:::1;::::0;:20:::1;::::0;-1:-1:-1;;;2314:20:82;;::::1;::::0;::::1;2253:25:103::0;;;-1:-1:-1;;;;;2314:10:82;;::::1;::::0;:16:::1;::::0;2226:18:103;;2314:20:82::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2211:131:::0;;;;;:::o;2034:159::-;1081:10;;:27;;-1:-1:-1;;;1081:27:82;;;;;2253:25:103;;;2119:2:82;;1058:20;;-1:-1:-1;;;;;1081:10:82;;;;:23;;2226:18:103;;1081:27:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1058:50;-1:-1:-1;;;;;;1127:32:82;;1119:79;;;;-1:-1:-1;;;1119:79:82;;;;;;;:::i;:::-;1211:13;1227:9;-1:-1:-1;;;;;1227:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:10;;1308:31;;-1:-1:-1;;;1308:31:82;;;;;2253:25:103;;;1211:36:82;;-1:-1:-1;1258:20:82;;-1:-1:-1;;;;;1281:10:82;;;;:26;;:10;;1308:27;;2226:18:103;;1308:31:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1258:82;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1361:21:82;;;1353:57;;;;-1:-1:-1;;;1353:57:82;;;;;;;:::i;:::-;1429:7;;:36;;-1:-1:-1;;;1429:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;1429:7:82;;;;:15;;2436:18:103;;1429:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:84;;;;-1:-1:-1;;;1421:84:82;;;;;;;:::i;:::-;2140:45:::1;::::0;-1:-1:-1;;;2140:45:82;;7099:2:103;2140:45:82::1;::::0;::::1;7081:21:103::0;7138:2;7118:18;;;7111:30;7177:34;7157:18;;;7150:62;-1:-1:-1;;;7228:18:103;;;7221:33;7271:19;;2140:45:82::1;7071:225:103::0;2494:154:82;1081:10;;:27;;-1:-1:-1;;;1081:27:82;;;;;2253:25:103;;;2579:2:82;;1058:20;;-1:-1:-1;;;;;1081:10:82;;;;:23;;2226:18:103;;1081:27:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1058:50;-1:-1:-1;;;;;;1127:32:82;;1119:79;;;;-1:-1:-1;;;1119:79:82;;;;;;;:::i;:::-;1211:13;1227:9;-1:-1:-1;;;;;1227:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:10;;1308:31;;-1:-1:-1;;;1308:31:82;;;;;2253:25:103;;;1211:36:82;;-1:-1:-1;1258:20:82;;-1:-1:-1;;;;;1281:10:82;;;;:26;;:10;;1308:27;;2226:18:103;;1308:31:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1258:82;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1361:21:82;;;1353:57;;;;-1:-1:-1;;;1353:57:82;;;;;;;:::i;:::-;1429:7;;:36;;-1:-1:-1;;;1429:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;1429:7:82;;;;:15;;2436:18:103;;1429:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:84;;;;-1:-1:-1;;;1421:84:82;;;;;;;:::i;:::-;2600:10:::1;::::0;:40:::1;::::0;-1:-1:-1;;;2600:40:82;;::::1;::::0;::::1;2253:25:103::0;;;-1:-1:-1;;;;;2600:10:82;;::::1;::::0;:36:::1;::::0;2226:18:103;;2600:40:82::1;2208:76:103::0;1869:157:82;1081:10;;:27;;-1:-1:-1;;;1081:27:82;;;;;2253:25:103;;;1952:2:82;;1058:20;;-1:-1:-1;;;;;1081:10:82;;;;:23;;2226:18:103;;1081:27:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1058:50;-1:-1:-1;;;;;;1127:32:82;;1119:79;;;;-1:-1:-1;;;1119:79:82;;;;;;;:::i;:::-;1211:13;1227:9;-1:-1:-1;;;;;1227:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:10;;1308:31;;-1:-1:-1;;;1308:31:82;;;;;2253:25:103;;;1211:36:82;;-1:-1:-1;1258:20:82;;-1:-1:-1;;;;;1281:10:82;;;;:26;;:10;;1308:27;;2226:18:103;;1308:31:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1258:82;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1361:21:82;;;1353:57;;;;-1:-1:-1;;;1353:57:82;;;;;;;:::i;:::-;1429:7;;:36;;-1:-1:-1;;;1429:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;1429:7:82;;;;:15;;2436:18:103;;1429:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:84;;;;-1:-1:-1;;;1421:84:82;;;;;;;:::i;:::-;1973:45:::1;::::0;-1:-1:-1;;;1973:45:82;;5476:2:103;1973:45:82::1;::::0;::::1;5458:21:103::0;5515:2;5495:18;;;5488:30;5554:34;5534:18;;;5527:62;-1:-1:-1;;;5605:18:103;;;5598:33;5648:19;;1973:45:82::1;5448:225:103::0;1143:232:88;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;4657:2:103;3146:190:47;;;4639:21:103;4696:2;4676:18;;;4669:30;4735:34;4715:18;;;4708:62;-1:-1:-1;;;4786:18:103;;;4779:44;4840:19;;3146:190:47;4629:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;3298:36:103;;3531:14:47;;3286:2:103;3271:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;2350:136:82:-;1081:10;;:27;;-1:-1:-1;;;1081:27:82;;;;;2253:25:103;;;2435:2:82;;1058:20;;-1:-1:-1;;;;;1081:10:82;;;;:23;;2226:18:103;;1081:27:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1058:50;-1:-1:-1;;;;;;1127:32:82;;1119:79;;;;-1:-1:-1;;;1119:79:82;;;;;;;:::i;:::-;1211:13;1227:9;-1:-1:-1;;;;;1227:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:10;;1308:31;;-1:-1:-1;;;1308:31:82;;;;;2253:25:103;;;1211:36:82;;-1:-1:-1;1258:20:82;;-1:-1:-1;;;;;1281:10:82;;;;:26;;:10;;1308:27;;2226:18:103;;1308:31:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1258:82;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1361:21:82;;;1353:57;;;;-1:-1:-1;;;1353:57:82;;;;;;;:::i;:::-;1429:7;;:36;;-1:-1:-1;;;1429:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;1429:7:82;;;;:15;;2436:18:103;;1429:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:84;;;;-1:-1:-1;;;1421:84:82;;;;;;;:::i;:::-;2456:10:::1;::::0;:22:::1;::::0;-1:-1:-1;;;2456:22:82;;::::1;::::0;::::1;2253:25:103::0;;;-1:-1:-1;;;;;2456:10:82;;::::1;::::0;:18:::1;::::0;2226::103;;2456:22:82::1;2208:76:103::0;1175:320:58;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;2253:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;2226:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;3547:2:103;1703:113:88;;;3529:21:103;3586:2;3566:18;;;3559:30;3625:34;3605:18;;;3598:62;-1:-1:-1;;;3676:18:103;;;3669:35;3721:19;;1703:113:88;3519:227:103;1533:148:82;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;6284:2:103;4880:69:47;;;6266:21:103;6323:2;6303:18;;;6296:30;6362:34;6342:18;;;6335:62;-1:-1:-1;;;6413:18:103;;;6406:41;6464:19;;4880:69:47;6256:233:103;4880:69:47;1640:32:82::1;-1:-1:-1::0;;;1640:19:82::1;:32::i;:::-;1607:10;:66:::0;;-1:-1:-1;;;;;;1607:66:82::1;-1:-1:-1::0;;;;;1607:66:82;;;::::1;::::0;;;::::1;::::0;;1533:148::o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:297::-;;662:2;650:9;641:7;637:23;633:32;630:2;;;683:6;675;668:22;630:2;720:9;714:16;773:5;766:13;759:21;752:5;749:32;739:2;;800:6;792;785:22;844:194;;967:2;955:9;946:7;942:23;938:32;935:2;;;988:6;980;973:22;935:2;-1:-1:-1;1016:16:103;;925:113;-1:-1:-1;925:113:103:o;1609:298::-;;1750:2;1738:9;1729:7;1725:23;1721:32;1718:2;;;1771:6;1763;1756:22;1718:2;1808:9;1802:16;1847:1;1840:5;1837:12;1827:2;;1868:6;1860;1853:22;1912:190;;2024:2;2012:9;2003:7;1999:23;1995:32;1992:2;;;2045:6;2037;2030:22;1992:2;-1:-1:-1;2073:23:103;;1982:120;-1:-1:-1;1982:120:103:o;2795:346::-;2945:2;2930:18;;2978:1;2967:13;;2957:2;;3023:10;3018:3;3014:20;3011:1;3004:31;3058:4;3055:1;3048:15;3086:4;3083:1;3076:15;2957:2;3110:25;;;2912:229;:::o;3751:347::-;3953:2;3935:21;;;3992:2;3972:18;;;3965:30;4031:25;4026:2;4011:18;;4004:53;4089:2;4074:18;;3925:173::o;4870:399::-;5072:2;5054:21;;;5111:2;5091:18;;;5084:30;5150:34;5145:2;5130:18;;5123:62;-1:-1:-1;;;5216:2:103;5201:18;;5194:33;5259:3;5244:19;;5044:225::o;6494:398::-;6696:2;6678:21;;;6735:2;6715:18;;;6708:30;6774:34;6769:2;6754:18;;6747:62;-1:-1:-1;;;6840:2:103;6825:18;;6818:32;6882:3;6867:19;;6668:224::o;7483:131::-;-1:-1:-1;;;;;7558:31:103;;7548:42;;7538:2;;7604:1;7601;7594:12;7538:2;7528:86;:::o"},"methodIdentifiers":{"archive(uint256)":"93c829fc","initialize(address)":"c4d66de8","pause(uint256)":"136439dd","propose(address)":"01267951","stake(uint256)":"a694fc3a","unpause(uint256)":"fabc1cbc","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"component\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/ComponentOwnerService.sol\":\"ComponentOwnerService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/services/ComponentOwnerService.sol\":{\"keccak256\":\"0xcff52fe17865cf4f1bd373a5e98060ca6982ae8168da41e2e76596e9291c3834\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://19b0f8ecbf6547e41fb8e2029b4e76f124363e40a8d2637b019a9421a7d0804e\",\"dweb:/ipfs/QmUdJipqY2TBXamtB6wT2ogP8TmE5EWkUPPnhj9BpKyKww\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/services/InstanceOperatorService.sol":{"InstanceOperatorService":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"adjustStakingRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"}],"name":"createFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"}],"name":"createRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregisterInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"}],"name":"invalidateRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newRelease","type":"bytes32"}],"name":"prepareRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"registerInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"resume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setCapitalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"componentType","type":"uint16"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"setDefaultStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletAddress","type":"address"}],"name":"setInstanceWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setPremiumFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"}],"name":"setProductToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"riskpoolWalletAddress","type":"address"}],"name":"setRiskpoolWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"suspend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610019610027565b610022336100e7565b610139565b600054610100900460ff16156100935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611be380620001496000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063cc9cf8cd11610097578063d547741f11610071578063d547741f1461039b578063d5fe1f10146103ae578063dc527b08146103b6578063f2fde38b146103c9576101c4565b8063cc9cf8cd14610362578063d17d023314610375578063d22057a914610388576101c4565b8063b759f954116100d3578063b759f95414610316578063c42994a214610329578063c4d66de81461033c578063cab2504d1461034f576101c4565b80638da5cb5b146102d557806393c829fc146102f0578063a0355f4e14610303576101c4565b80634b8658461161016657806372beb6fb1161014057806372beb6fb1461028957806386039aed1461029c578063893917ea146102af5780638ca946aa146102c2576101c4565b80634b8658461461024557806362f0ab5514610258578063715018a614610281576101c4565b806320813154116101a257806320813154146101f95780632f2ff15d1461020c578063394c78ba1461021f578063414000b514610232576101c4565b806301132a7f146101c957806310a81c4a146101de5780631d5e7314146101e6575b600080fd5b6101dc6101d7366004611794565b6103dc565b005b6101dc610474565b6101dc6101f436600461175c565b610508565b6101dc6102073660046116f4565b6105ac565b6101dc61021a36600461170c565b61060c565b6101dc61022d36600461186c565b6106a1565b6101dc6102403660046116f4565b61071f565b6101dc6102533660046116f4565b61077a565b61026b610266366004611920565b6107d5565b6040516102789190611a82565b60405180910390f35b6101dc6108a4565b6101dc6102973660046118ef565b6108b8565b6101dc6102aa3660046118dd565b610936565b6101dc6102bd3660046116f4565b610999565b6101dc6102d0366004611794565b6109f9565b6002546040516001600160a01b039091168152602001610278565b6101dc6102fe3660046116f4565b610a53565b6101dc6103113660046116f4565b610aae565b6101dc6103243660046116f4565b610b09565b6101dc6103373660046116f4565b610d58565b6101dc61034a366004611695565b610db3565b6101dc61035d366004611695565b610f38565b6101dc6103703660046118dd565b610f94565b6101dc6103833660046116f4565b610ff7565b6101dc61039636600461170c565b611052565b6101dc6103a936600461170c565b6110bc565b6101dc61111f565b6101dc6103c436600461173b565b611199565b6101dc6103d7366004611695565b611200565b6002546001600160a01b0316331461040f5760405162461bcd60e51b8152600401610406906119a9565b60405180910390fd5b6005546040516301132a7f60e01b81526001600160a01b03909116906301132a7f9061043f9084906004016119ec565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b5050505050565b6002546001600160a01b0316331461049e5760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663046f7da26040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b50505050565b6002546001600160a01b031633146105325760405162461bcd60e51b8152600401610406906119a9565b6000546040516307579cc560e21b815260048101859052602481018490526001600160a01b0383811660448301526201000090920490911690631d5e7314906064015b600060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b50505050505050565b6002546001600160a01b031633146105d65760405162461bcd60e51b8152600401610406906119a9565b6000546040516308204c5560e21b815260048101839052620100009091046001600160a01b03169063208131549060240161043f565b6002546001600160a01b031633146106365760405162461bcd60e51b8152600401610406906119a9565b600154604051632f2ff15d60e01b8152600481018490526001600160a01b03838116602483015290911690632f2ff15d906044015b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505050565b6002546001600160a01b031633146106cb5760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031303a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146107495760405162461bcd60e51b8152600401610406906119a9565b60035460405163414000b560e01b8152600481018390526001600160a01b039091169063414000b59060240161043f565b6002546001600160a01b031633146107a45760405162461bcd60e51b8152600401610406906119a9565b6003546040516325c32c2360e11b8152600481018390526001600160a01b0390911690634b8658469060240161043f565b61080e6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b6005546040516362f0ab5560e01b81526001600160a01b03909116906362f0ab55906108469089908990899089908990600401611af4565b60006040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089a91908101906117cc565b9695505050505050565b6108ac611276565b6108b660006112d0565b565b6002546001600160a01b031633146108e25760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031313a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146109605760405162461bcd60e51b8152600401610406906119a9565b6005546040516386039aed60e01b8152600481018490526001600160a01b038381166024830152909116906386039aed9060440161066b565b6002546001600160a01b031633146109c35760405162461bcd60e51b8152600401610406906119a9565b60005460405163449c8bf560e11b815260048101839052620100009091046001600160a01b03169063893917ea9060240161043f565b6002546001600160a01b03163314610a235760405162461bcd60e51b8152600401610406906119a9565b600554604051634654a35560e11b81526001600160a01b0390911690638ca946aa9061043f9084906004016119ec565b6002546001600160a01b03163314610a7d5760405162461bcd60e51b8152600401610406906119a9565b6003546040516307aed1d360e11b8152600481018390526001600160a01b0390911690630f5da3a69060240161043f565b6002546001600160a01b03163314610ad85760405162461bcd60e51b8152600401610406906119a9565b60035460405163501aafa760e11b8152600481018390526001600160a01b039091169063a0355f4e9060240161043f565b6002546001600160a01b03163314610b335760405162461bcd60e51b8152600401610406906119a9565b600354604051632dd67e5560e21b8152600481018390526001600160a01b039091169063b759f95490602401600060405180830381600087803b158015610b7957600080fd5b505af1158015610b8d573d6000803e3d6000fd5b5050600354604051630e48080360e21b8152600481018590526001600160a01b039091169250633920200c915060240160206040518083038186803b158015610bd557600080fd5b505afa158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0d91906116d4565b15610d55576003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da189060240160206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f91906116b8565b90506000819050600460009054906101000a90046001600160a01b03166001600160a01b031663f93b367384836001600160a01b03166370d2fe536040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c91906118c5565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401610575565b50565b6002546001600160a01b03163314610d825760405162461bcd60e51b8152600401610406906119a9565b60015460405163274b02a760e01b8152600481018390526001600160a01b039091169063274b02a79060240161043f565b600054610100900460ff1615808015610dd35750600054600160ff909116105b80610df45750610de230611322565b158015610df4575060005460ff166001145b610e575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610406565b6000805460ff191660011790558015610e7a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610ea4600090565b6541636365737360d01b14610ee657610ec56541636365737360d01b611335565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610eee61141d565b8015610f34576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b03163314610f625760405162461bcd60e51b8152600401610406906119a9565b60055460405163cab2504d60e01b81526001600160a01b0383811660048301529091169063cab2504d9060240161043f565b6002546001600160a01b03163314610fbe5760405162461bcd60e51b8152600401610406906119a9565b60055460405163cc9cf8cd60e01b8152600481018490526001600160a01b0383811660248301529091169063cc9cf8cd9060440161066b565b6002546001600160a01b031633146110215760405162461bcd60e51b8152600401610406906119a9565b60015460405163d17d023360e01b8152600481018390526001600160a01b039091169063d17d02339060240161043f565b6002546001600160a01b0316331461107c5760405162461bcd60e51b8152600401610406906119a9565b60005460405163d22057a960e01b8152600481018490526001600160a01b038381166024830152620100009092049091169063d22057a99060440161066b565b6002546001600160a01b031633146110e65760405162461bcd60e51b8152600401610406906119a9565b60015460405163d547741f60e01b8152600481018490526001600160a01b0383811660248301529091169063d547741f9060440161066b565b6002546001600160a01b031633146111495760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663e6400bbe6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b6002546001600160a01b031633146111c35760405162461bcd60e51b8152600401610406906119a9565b600054604051631b8a4f6160e31b81526004810184905260248101839052620100009091046001600160a01b03169063dc527b089060440161066b565b611208611276565b6001600160a01b03811661126d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610406565b610d55816112d0565b6002546001600160a01b031633146108b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610406565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561137f57600080fd5b505afa158015611393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b791906116b8565b90506001600160a01b0381166113305760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610406565b600054610100900460ff166114885760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610406565b61149d6810dbdb5c1bdb995b9d60ba1b611335565b600380546001600160a01b0319166001600160a01b03929092169190911790556114cd63141bdbdb60e21b611335565b600480546001600160a01b0319166001600160a01b039290921691909117905561150167547265617375727960c01b611335565b600580546001600160a01b0319166001600160a01b039290921691909117905561153061152b3390565b6112d0565b611538611540565b6108b66115a1565b60006115596a213ab7323632aa37b5b2b760a91b611335565b9050600061156f6542756e646c6560d01b611335565b6040516328e2dc5360e21b81526001600160a01b0380831660048301529192509083169063a38b714c9060240161066b565b60006115b56541636365737360d01b611335565b60405163c19010a760e01b81523060048201529091506001600160a01b0382169063c19010a79060240161043f565b60008083601f8401126115f5578182fd5b50813567ffffffffffffffff81111561160c578182fd5b60208301915083602082850101111561162457600080fd5b9250929050565b600082601f83011261163b578081fd5b815167ffffffffffffffff81111561165557611655611b82565b611668601f8201601f1916602001611b25565b81815284602083860101111561167c578283fd5b61168d826020830160208701611b56565b949350505050565b6000602082840312156116a6578081fd5b81356116b181611b98565b9392505050565b6000602082840312156116c9578081fd5b81516116b181611b98565b6000602082840312156116e5578081fd5b815180151581146116b1578182fd5b600060208284031215611705578081fd5b5035919050565b6000806040838503121561171e578081fd5b82359150602083013561173081611b98565b809150509250929050565b6000806040838503121561174d578182fd5b50508035926020909101359150565b600080600060608486031215611770578081fd5b8335925060208401359150604084013561178981611b98565b809150509250925092565b6000602082840312156117a5578081fd5b813567ffffffffffffffff8111156117bb578182fd5b820160c081850312156116b1578182fd5b6000602082840312156117dd578081fd5b815167ffffffffffffffff808211156117f4578283fd5b9083019060c08286031215611807578283fd5b61181160c0611b25565b82518152602083015160208201526040830151604082015260608301518281111561183a578485fd5b6118468782860161162b565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600080600060408486031215611880578283fd5b833561ffff81168114611891578384fd5b9250602084013567ffffffffffffffff8111156118ac578283fd5b6118b8868287016115e4565b9497909650939450505050565b6000602082840312156118d6578081fd5b5051919050565b6000806040838503121561171e578182fd5b600080600060408486031215611903578081fd5b83359250602084013567ffffffffffffffff8111156118ac578182fd5b600080600080600060808688031215611937578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115611962578182fd5b61196e888289016115e4565b969995985093965092949392505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60208082526023908201527f4552524f523a494f532d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000602082528235602083015260208301356040830152604083013560608301526060830135601e19843603018112611a23578182fd5b8301803567ffffffffffffffff811115611a3b578283fd5b803603851315611a49578283fd5b60c06080850152611a6160e08501826020850161197f565b915050608084013560a084015260a084013560c08401528091505092915050565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015280518060e0850152610100611aca8282870160208601611b56565b608086015160a0868101919091529095015160c0850152601f01601f191690920190920192915050565b600086825285602083015284604083015260806060830152611b1a60808301848661197f565b979650505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611b4e57611b4e611b82565b604052919050565b60005b83811015611b71578181015183820152602001611b59565b838111156105025750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d5557600080fdfea2646970667358221220333f2e0637b224e8cc6c846170351f725e19eaaf413aa2f641b275607074212c64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x27 JUMP JUMPDEST PUSH2 0x22 CALLER PUSH2 0xE7 JUMP JUMPDEST PUSH2 0x139 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xE5 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x1BE3 DUP1 PUSH3 0x149 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xCC9CF8CD GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x39B JUMPI DUP1 PUSH4 0xD5FE1F10 EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x3B6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3C9 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0xCC9CF8CD EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0xD17D0233 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x388 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0xB759F954 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0xB759F954 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0xC42994A2 EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x33C JUMPI DUP1 PUSH4 0xCAB2504D EQ PUSH2 0x34F JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x93C829FC EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0xA0355F4E EQ PUSH2 0x303 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x4B865846 GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x72BEB6FB GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x72BEB6FB EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0x86039AED EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0x8CA946AA EQ PUSH2 0x2C2 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x4B865846 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x62F0AB55 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x281 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x20813154 GT PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x394C78BA EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x414000B5 EQ PUSH2 0x232 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x1132A7F EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x10A81C4A EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x1E6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x3DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DC PUSH2 0x474 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x175C JUMP JUMPDEST PUSH2 0x508 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x60C JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x186C JUMP JUMPDEST PUSH2 0x6A1 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x240 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x71F JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x253 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x77A JUMP JUMPDEST PUSH2 0x26B PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x1920 JUMP JUMPDEST PUSH2 0x7D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DC PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x8B8 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x18DD JUMP JUMPDEST PUSH2 0x936 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2BD CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x999 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x9F9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x278 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xAAE JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x324 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x337 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xD58 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x35D CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0xF38 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x370 CALLDATASIZE PUSH1 0x4 PUSH2 0x18DD JUMP JUMPDEST PUSH2 0xF94 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x383 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xFF7 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x396 CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x1052 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x10BC JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x111F JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x173B JUMP JUMPDEST PUSH2 0x1199 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0x1200 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x40F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1132A7F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1132A7F SWAP1 PUSH2 0x43F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x19EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x46D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x49E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x46F7DA2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x502 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x532 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7579CC5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0x1D5E7314 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x8204C55 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x20813154 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F2FF15D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x2F2FF15D SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x685 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x699 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3031303A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x414000B5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x414000B5 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x25C32C23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4B865846 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH2 0x80E PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62F0AB55 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x62F0AB55 SWAP1 PUSH2 0x846 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1AF4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x872 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x89A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x17CC JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8AC PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x8B6 PUSH1 0x0 PUSH2 0x12D0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3031313A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x960 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x86039AED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x86039AED SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x9C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x449C8BF5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x893917EA SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA23 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4654A355 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8CA946AA SWAP1 PUSH2 0x43F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x19EC JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7AED1D3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xF5DA3A6 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xAD8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x501AAFA7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA0355F4E SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB33 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2DD67E55 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB759F954 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB8D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x3920200C SWAP2 POP PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBE9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC0D SWAP2 SWAP1 PUSH2 0x16D4 JUMP JUMPDEST ISZERO PUSH2 0xD55 JUMPI PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC6B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC8F SWAP2 SWAP1 PUSH2 0x16B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF93B3673 DUP5 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70D2FE53 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD08 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD2C SWAP2 SWAP1 PUSH2 0x18C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x575 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x274B02A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x274B02A7 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xDD3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xDF4 JUMPI POP PUSH2 0xDE2 ADDRESS PUSH2 0x1322 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xDF4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xE57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xE7A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xEA4 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xEE6 JUMPI PUSH2 0xEC5 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xEEE PUSH2 0x141D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF34 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xF62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCAB2504D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xCAB2504D SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xFBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCC9CF8CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xCC9CF8CD SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1021 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD17D0233 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD17D0233 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x107C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD22057A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0xD22057A9 SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x10E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD547741F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xD547741F SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1149 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE6400BBE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x11C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B8A4F61 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xDC527B08 SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH2 0x1208 PUSH2 0x1276 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x126D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH2 0xD55 DUP2 PUSH2 0x12D0 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x137F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1393 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13B7 SWAP2 SWAP1 PUSH2 0x16B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1330 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1488 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH2 0x149D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14CD PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1501 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1530 PUSH2 0x152B CALLER SWAP1 JUMP JUMPDEST PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x1538 PUSH2 0x1540 JUMP JUMPDEST PUSH2 0x8B6 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1559 PUSH11 0x213AB7323632AA37B5B2B7 PUSH1 0xA9 SHL PUSH2 0x1335 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x156F PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x28E2DC53 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP4 AND SWAP1 PUSH4 0xA38B714C SWAP1 PUSH1 0x24 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B5 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC19010A7 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC19010A7 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x15F5 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x160C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x163B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1655 JUMPI PUSH2 0x1655 PUSH2 0x1B82 JUMP JUMPDEST PUSH2 0x1668 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1B25 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x167C JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x168D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1B56 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16B1 DUP2 PUSH2 0x1B98 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x16B1 DUP2 PUSH2 0x1B98 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16E5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x16B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1705 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1730 DUP2 PUSH2 0x1B98 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x174D JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1770 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x1789 DUP2 PUSH2 0x1B98 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17A5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17BB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0xC0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x16B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x17F4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x1807 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x1811 PUSH1 0xC0 PUSH2 0x1B25 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x183A JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1846 DUP8 DUP3 DUP7 ADD PUSH2 0x162B JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1880 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1891 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18AC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x18B8 DUP7 DUP3 DUP8 ADD PUSH2 0x15E4 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18D6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1903 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18AC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1937 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x196E DUP9 DUP3 DUP10 ADD PUSH2 0x15E4 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1A23 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A3B JUMPI DUP3 DUP4 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP6 SGT ISZERO PUSH2 0x1A49 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0xC0 PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x1A61 PUSH1 0xE0 DUP6 ADD DUP3 PUSH1 0x20 DUP6 ADD PUSH2 0x197F JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE DUP1 MLOAD DUP1 PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 PUSH2 0x1ACA DUP3 DUP3 DUP8 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1B56 JUMP JUMPDEST PUSH1 0x80 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 SWAP3 ADD SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1B1A PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x197F JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1B4E JUMPI PUSH2 0x1B4E PUSH2 0x1B82 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B71 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1B59 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x502 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD55 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER EXTCODEHASH 0x2E MOD CALLDATACOPY 0xB2 0x24 0xE8 0xCC PUSH13 0x846170351F725E19EAAF413AA2 0xF6 COINBASE 0xB2 PUSH22 0x607074212C64736F6C63430008020033000000000000 ","sourceMap":"786:6300:83:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;936:32:41;719:10:59;936:18:41;:32::i;:::-;786:6300:83;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;2433:187:41:-;2525:6;;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;519:87:103:-;786:6300:83;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15943:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"86:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"135:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"144:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"154:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"137:6:103"},"nodeType":"YulFunctionCall","src":"137:26:103"},"nodeType":"YulExpressionStatement","src":"137:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"114:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"122:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"110:3:103"},"nodeType":"YulFunctionCall","src":"110:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"129:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"106:3:103"},"nodeType":"YulFunctionCall","src":"106:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"99:6:103"},"nodeType":"YulFunctionCall","src":"99:35:103"},"nodeType":"YulIf","src":"96:2:103"},{"nodeType":"YulAssignment","src":"174:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"197:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"184:12:103"},"nodeType":"YulFunctionCall","src":"184:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"174:6:103"}]},{"body":{"nodeType":"YulBlock","src":"247:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"256:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"266:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"249:6:103"},"nodeType":"YulFunctionCall","src":"249:26:103"},"nodeType":"YulExpressionStatement","src":"249:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"219:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"227:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"216:2:103"},"nodeType":"YulFunctionCall","src":"216:30:103"},"nodeType":"YulIf","src":"213:2:103"},{"nodeType":"YulAssignment","src":"286:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"302:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"310:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"298:3:103"},"nodeType":"YulFunctionCall","src":"298:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"286:8:103"}]},{"body":{"nodeType":"YulBlock","src":"367:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"376:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"379:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"369:6:103"},"nodeType":"YulFunctionCall","src":"369:12:103"},"nodeType":"YulExpressionStatement","src":"369:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"338:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"346:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"334:3:103"},"nodeType":"YulFunctionCall","src":"334:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"355:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"330:3:103"},"nodeType":"YulFunctionCall","src":"330:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"362:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"327:2:103"},"nodeType":"YulFunctionCall","src":"327:39:103"},"nodeType":"YulIf","src":"324:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"49:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"57:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"65:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"75:6:103","type":""}],"src":"14:375:103"},{"body":{"nodeType":"YulBlock","src":"457:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"506:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"515:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"522:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"508:6:103"},"nodeType":"YulFunctionCall","src":"508:20:103"},"nodeType":"YulExpressionStatement","src":"508:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"485:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"493:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"481:3:103"},"nodeType":"YulFunctionCall","src":"481:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"500:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"477:3:103"},"nodeType":"YulFunctionCall","src":"477:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"470:6:103"},"nodeType":"YulFunctionCall","src":"470:35:103"},"nodeType":"YulIf","src":"467:2:103"},{"nodeType":"YulVariableDeclaration","src":"539:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"555:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"549:5:103"},"nodeType":"YulFunctionCall","src":"549:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"543:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"601:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"603:16:103"},"nodeType":"YulFunctionCall","src":"603:18:103"},"nodeType":"YulExpressionStatement","src":"603:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"577:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"581:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"574:2:103"},"nodeType":"YulFunctionCall","src":"574:26:103"},"nodeType":"YulIf","src":"571:2:103"},{"nodeType":"YulVariableDeclaration","src":"632:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"675:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"679:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"671:3:103"},"nodeType":"YulFunctionCall","src":"671:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"690:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"686:3:103"},"nodeType":"YulFunctionCall","src":"686:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"667:3:103"},"nodeType":"YulFunctionCall","src":"667:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"696:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"663:3:103"},"nodeType":"YulFunctionCall","src":"663:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"647:15:103"},"nodeType":"YulFunctionCall","src":"647:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"636:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"718:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"727:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"711:6:103"},"nodeType":"YulFunctionCall","src":"711:19:103"},"nodeType":"YulExpressionStatement","src":"711:19:103"},{"body":{"nodeType":"YulBlock","src":"778:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"787:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"794:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"780:6:103"},"nodeType":"YulFunctionCall","src":"780:20:103"},"nodeType":"YulExpressionStatement","src":"780:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"753:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"761:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"749:3:103"},"nodeType":"YulFunctionCall","src":"749:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"766:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"745:3:103"},"nodeType":"YulFunctionCall","src":"745:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"773:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"742:2:103"},"nodeType":"YulFunctionCall","src":"742:35:103"},"nodeType":"YulIf","src":"739:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"837:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"845:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"833:3:103"},"nodeType":"YulFunctionCall","src":"833:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"856:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"852:3:103"},"nodeType":"YulFunctionCall","src":"852:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"872:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"811:21:103"},"nodeType":"YulFunctionCall","src":"811:64:103"},"nodeType":"YulExpressionStatement","src":"811:64:103"},{"nodeType":"YulAssignment","src":"884:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"893:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"884:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"431:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"439:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"447:5:103","type":""}],"src":"394:512:103"},{"body":{"nodeType":"YulBlock","src":"981:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1027:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1036:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1044:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1029:6:103"},"nodeType":"YulFunctionCall","src":"1029:22:103"},"nodeType":"YulExpressionStatement","src":"1029:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1002:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1011:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"998:3:103"},"nodeType":"YulFunctionCall","src":"998:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1023:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"994:3:103"},"nodeType":"YulFunctionCall","src":"994:32:103"},"nodeType":"YulIf","src":"991:2:103"},{"nodeType":"YulVariableDeclaration","src":"1062:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1088:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1075:12:103"},"nodeType":"YulFunctionCall","src":"1075:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1066:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1132:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1107:24:103"},"nodeType":"YulFunctionCall","src":"1107:31:103"},"nodeType":"YulExpressionStatement","src":"1107:31:103"},{"nodeType":"YulAssignment","src":"1147:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1157:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1147:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"947:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"958:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"970:6:103","type":""}],"src":"911:257:103"},{"body":{"nodeType":"YulBlock","src":"1254:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1300:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1309:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1317:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1302:6:103"},"nodeType":"YulFunctionCall","src":"1302:22:103"},"nodeType":"YulExpressionStatement","src":"1302:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1275:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1284:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1271:3:103"},"nodeType":"YulFunctionCall","src":"1271:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1296:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1267:3:103"},"nodeType":"YulFunctionCall","src":"1267:32:103"},"nodeType":"YulIf","src":"1264:2:103"},{"nodeType":"YulVariableDeclaration","src":"1335:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1354:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1348:5:103"},"nodeType":"YulFunctionCall","src":"1348:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1339:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1398:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1373:24:103"},"nodeType":"YulFunctionCall","src":"1373:31:103"},"nodeType":"YulExpressionStatement","src":"1373:31:103"},{"nodeType":"YulAssignment","src":"1413:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1423:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1413:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1220:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1231:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1243:6:103","type":""}],"src":"1173:261:103"},{"body":{"nodeType":"YulBlock","src":"1517:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1563:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1572:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1580:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1565:6:103"},"nodeType":"YulFunctionCall","src":"1565:22:103"},"nodeType":"YulExpressionStatement","src":"1565:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1538:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1547:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1534:3:103"},"nodeType":"YulFunctionCall","src":"1534:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1559:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1530:3:103"},"nodeType":"YulFunctionCall","src":"1530:32:103"},"nodeType":"YulIf","src":"1527:2:103"},{"nodeType":"YulVariableDeclaration","src":"1598:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1617:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1611:5:103"},"nodeType":"YulFunctionCall","src":"1611:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1602:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1680:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1689:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1697:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1682:6:103"},"nodeType":"YulFunctionCall","src":"1682:22:103"},"nodeType":"YulExpressionStatement","src":"1682:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1649:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1670:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1663:6:103"},"nodeType":"YulFunctionCall","src":"1663:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1656:6:103"},"nodeType":"YulFunctionCall","src":"1656:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1646:2:103"},"nodeType":"YulFunctionCall","src":"1646:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1639:6:103"},"nodeType":"YulFunctionCall","src":"1639:40:103"},"nodeType":"YulIf","src":"1636:2:103"},{"nodeType":"YulAssignment","src":"1715:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1725:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1715:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1483:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1494:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1506:6:103","type":""}],"src":"1439:297:103"},{"body":{"nodeType":"YulBlock","src":"1811:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1857:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1866:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1874:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1859:6:103"},"nodeType":"YulFunctionCall","src":"1859:22:103"},"nodeType":"YulExpressionStatement","src":"1859:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1832:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1841:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1828:3:103"},"nodeType":"YulFunctionCall","src":"1828:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1824:3:103"},"nodeType":"YulFunctionCall","src":"1824:32:103"},"nodeType":"YulIf","src":"1821:2:103"},{"nodeType":"YulAssignment","src":"1892:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1915:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1902:12:103"},"nodeType":"YulFunctionCall","src":"1902:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1892:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1788:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1800:6:103","type":""}],"src":"1741:190:103"},{"body":{"nodeType":"YulBlock","src":"2023:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"2069:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2078:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2086:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2071:6:103"},"nodeType":"YulFunctionCall","src":"2071:22:103"},"nodeType":"YulExpressionStatement","src":"2071:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2044:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2053:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2040:3:103"},"nodeType":"YulFunctionCall","src":"2040:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2065:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2036:3:103"},"nodeType":"YulFunctionCall","src":"2036:32:103"},"nodeType":"YulIf","src":"2033:2:103"},{"nodeType":"YulAssignment","src":"2104:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2127:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2114:12:103"},"nodeType":"YulFunctionCall","src":"2114:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2104:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2146:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2176:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2187:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2172:3:103"},"nodeType":"YulFunctionCall","src":"2172:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2159:12:103"},"nodeType":"YulFunctionCall","src":"2159:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2150:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2225:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2200:24:103"},"nodeType":"YulFunctionCall","src":"2200:31:103"},"nodeType":"YulExpressionStatement","src":"2200:31:103"},{"nodeType":"YulAssignment","src":"2240:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2250:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2240:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1981:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1992:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2004:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2012:6:103","type":""}],"src":"1936:325:103"},{"body":{"nodeType":"YulBlock","src":"2353:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2399:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2408:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2416:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2401:6:103"},"nodeType":"YulFunctionCall","src":"2401:22:103"},"nodeType":"YulExpressionStatement","src":"2401:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2374:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2383:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2370:3:103"},"nodeType":"YulFunctionCall","src":"2370:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2395:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2366:3:103"},"nodeType":"YulFunctionCall","src":"2366:32:103"},"nodeType":"YulIf","src":"2363:2:103"},{"nodeType":"YulAssignment","src":"2434:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2457:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2444:12:103"},"nodeType":"YulFunctionCall","src":"2444:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2434:6:103"}]},{"nodeType":"YulAssignment","src":"2476:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2503:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2514:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2499:3:103"},"nodeType":"YulFunctionCall","src":"2499:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2486:12:103"},"nodeType":"YulFunctionCall","src":"2486:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2476:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2311:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2322:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2334:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2342:6:103","type":""}],"src":"2266:258:103"},{"body":{"nodeType":"YulBlock","src":"2633:289:103","statements":[{"body":{"nodeType":"YulBlock","src":"2679:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2688:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2696:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2681:6:103"},"nodeType":"YulFunctionCall","src":"2681:22:103"},"nodeType":"YulExpressionStatement","src":"2681:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2654:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2663:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2650:3:103"},"nodeType":"YulFunctionCall","src":"2650:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2675:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2646:3:103"},"nodeType":"YulFunctionCall","src":"2646:32:103"},"nodeType":"YulIf","src":"2643:2:103"},{"nodeType":"YulAssignment","src":"2714:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2737:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2724:12:103"},"nodeType":"YulFunctionCall","src":"2724:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2714:6:103"}]},{"nodeType":"YulAssignment","src":"2756:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2783:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2794:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2779:3:103"},"nodeType":"YulFunctionCall","src":"2779:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2766:12:103"},"nodeType":"YulFunctionCall","src":"2766:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2756:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2807:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2837:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2848:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2833:3:103"},"nodeType":"YulFunctionCall","src":"2833:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2820:12:103"},"nodeType":"YulFunctionCall","src":"2820:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2811:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2886:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2861:24:103"},"nodeType":"YulFunctionCall","src":"2861:31:103"},"nodeType":"YulExpressionStatement","src":"2861:31:103"},{"nodeType":"YulAssignment","src":"2901:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2911:5:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2901:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2583:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2594:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2606:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2614:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2622:6:103","type":""}],"src":"2529:393:103"},{"body":{"nodeType":"YulBlock","src":"3027:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"3073:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3082:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3090:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3075:6:103"},"nodeType":"YulFunctionCall","src":"3075:22:103"},"nodeType":"YulExpressionStatement","src":"3075:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3048:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3057:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3044:3:103"},"nodeType":"YulFunctionCall","src":"3044:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3069:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3040:3:103"},"nodeType":"YulFunctionCall","src":"3040:32:103"},"nodeType":"YulIf","src":"3037:2:103"},{"nodeType":"YulVariableDeclaration","src":"3108:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3127:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3121:5:103"},"nodeType":"YulFunctionCall","src":"3121:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3112:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3171:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3146:24:103"},"nodeType":"YulFunctionCall","src":"3146:31:103"},"nodeType":"YulExpressionStatement","src":"3146:31:103"},{"nodeType":"YulAssignment","src":"3186:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3196:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3186:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2993:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3004:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3016:6:103","type":""}],"src":"2927:280:103"},{"body":{"nodeType":"YulBlock","src":"3318:320:103","statements":[{"body":{"nodeType":"YulBlock","src":"3364:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3373:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3381:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3366:6:103"},"nodeType":"YulFunctionCall","src":"3366:22:103"},"nodeType":"YulExpressionStatement","src":"3366:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3339:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3348:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3335:3:103"},"nodeType":"YulFunctionCall","src":"3335:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3360:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3331:3:103"},"nodeType":"YulFunctionCall","src":"3331:32:103"},"nodeType":"YulIf","src":"3328:2:103"},{"nodeType":"YulVariableDeclaration","src":"3399:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3426:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3413:12:103"},"nodeType":"YulFunctionCall","src":"3413:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3403:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3479:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3488:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3496:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3481:6:103"},"nodeType":"YulFunctionCall","src":"3481:22:103"},"nodeType":"YulExpressionStatement","src":"3481:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3451:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3459:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3448:2:103"},"nodeType":"YulFunctionCall","src":"3448:30:103"},"nodeType":"YulIf","src":"3445:2:103"},{"nodeType":"YulVariableDeclaration","src":"3514:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3528:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3539:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3524:3:103"},"nodeType":"YulFunctionCall","src":"3524:22:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3518:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3585:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3594:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3602:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3587:6:103"},"nodeType":"YulFunctionCall","src":"3587:22:103"},"nodeType":"YulExpressionStatement","src":"3587:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3566:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3575:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3562:3:103"},"nodeType":"YulFunctionCall","src":"3562:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3580:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3558:3:103"},"nodeType":"YulFunctionCall","src":"3558:26:103"},"nodeType":"YulIf","src":"3555:2:103"},{"nodeType":"YulAssignment","src":"3620:12:103","value":{"name":"_1","nodeType":"YulIdentifier","src":"3630:2:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3620:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3284:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3295:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3307:6:103","type":""}],"src":"3212:426:103"},{"body":{"nodeType":"YulBlock","src":"3758:808:103","statements":[{"body":{"nodeType":"YulBlock","src":"3804:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3813:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3821:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3806:6:103"},"nodeType":"YulFunctionCall","src":"3806:22:103"},"nodeType":"YulExpressionStatement","src":"3806:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3779:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3788:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3775:3:103"},"nodeType":"YulFunctionCall","src":"3775:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3800:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3771:3:103"},"nodeType":"YulFunctionCall","src":"3771:32:103"},"nodeType":"YulIf","src":"3768:2:103"},{"nodeType":"YulVariableDeclaration","src":"3839:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3859:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3853:5:103"},"nodeType":"YulFunctionCall","src":"3853:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3843:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3878:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3888:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3882:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3933:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3942:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3950:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3935:6:103"},"nodeType":"YulFunctionCall","src":"3935:22:103"},"nodeType":"YulExpressionStatement","src":"3935:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3921:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3929:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3918:2:103"},"nodeType":"YulFunctionCall","src":"3918:14:103"},"nodeType":"YulIf","src":"3915:2:103"},{"nodeType":"YulVariableDeclaration","src":"3968:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3982:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3993:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3978:3:103"},"nodeType":"YulFunctionCall","src":"3978:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3972:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4040:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4049:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4057:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4042:6:103"},"nodeType":"YulFunctionCall","src":"4042:22:103"},"nodeType":"YulExpressionStatement","src":"4042:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4020:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4029:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4016:3:103"},"nodeType":"YulFunctionCall","src":"4016:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4034:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4012:3:103"},"nodeType":"YulFunctionCall","src":"4012:27:103"},"nodeType":"YulIf","src":"4009:2:103"},{"nodeType":"YulVariableDeclaration","src":"4075:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4104:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4088:15:103"},"nodeType":"YulFunctionCall","src":"4088:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4079:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4125:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4138:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4132:5:103"},"nodeType":"YulFunctionCall","src":"4132:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4118:6:103"},"nodeType":"YulFunctionCall","src":"4118:24:103"},"nodeType":"YulExpressionStatement","src":"4118:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4162:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4169:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4158:3:103"},"nodeType":"YulFunctionCall","src":"4158:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4184:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4188:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4180:3:103"},"nodeType":"YulFunctionCall","src":"4180:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4174:5:103"},"nodeType":"YulFunctionCall","src":"4174:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4151:6:103"},"nodeType":"YulFunctionCall","src":"4151:42:103"},"nodeType":"YulExpressionStatement","src":"4151:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4213:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4220:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4209:3:103"},"nodeType":"YulFunctionCall","src":"4209:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4235:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4239:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4231:3:103"},"nodeType":"YulFunctionCall","src":"4231:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4225:5:103"},"nodeType":"YulFunctionCall","src":"4225:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4202:6:103"},"nodeType":"YulFunctionCall","src":"4202:42:103"},"nodeType":"YulExpressionStatement","src":"4202:42:103"},{"nodeType":"YulVariableDeclaration","src":"4253:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4279:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4283:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4275:3:103"},"nodeType":"YulFunctionCall","src":"4275:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4269:5:103"},"nodeType":"YulFunctionCall","src":"4269:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4257:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4316:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4325:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4333:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4318:6:103"},"nodeType":"YulFunctionCall","src":"4318:22:103"},"nodeType":"YulExpressionStatement","src":"4318:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4302:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4312:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4299:2:103"},"nodeType":"YulFunctionCall","src":"4299:16:103"},"nodeType":"YulIf","src":"4296:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4362:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4369:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4358:3:103"},"nodeType":"YulFunctionCall","src":"4358:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4406:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4410:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4402:3:103"},"nodeType":"YulFunctionCall","src":"4402:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4421:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"4374:27:103"},"nodeType":"YulFunctionCall","src":"4374:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4351:6:103"},"nodeType":"YulFunctionCall","src":"4351:79:103"},"nodeType":"YulExpressionStatement","src":"4351:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4450:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4457:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4446:3:103"},"nodeType":"YulFunctionCall","src":"4446:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4473:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4477:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4469:3:103"},"nodeType":"YulFunctionCall","src":"4469:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4463:5:103"},"nodeType":"YulFunctionCall","src":"4463:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4439:6:103"},"nodeType":"YulFunctionCall","src":"4439:44:103"},"nodeType":"YulExpressionStatement","src":"4439:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4503:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4510:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4499:3:103"},"nodeType":"YulFunctionCall","src":"4499:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4526:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4530:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4522:3:103"},"nodeType":"YulFunctionCall","src":"4522:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4516:5:103"},"nodeType":"YulFunctionCall","src":"4516:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4492:6:103"},"nodeType":"YulFunctionCall","src":"4492:44:103"},"nodeType":"YulExpressionStatement","src":"4492:44:103"},{"nodeType":"YulAssignment","src":"4545:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4555:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4545:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3724:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3735:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3747:6:103","type":""}],"src":"3643:923:103"},{"body":{"nodeType":"YulBlock","src":"4676:494:103","statements":[{"body":{"nodeType":"YulBlock","src":"4722:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4731:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4739:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4724:6:103"},"nodeType":"YulFunctionCall","src":"4724:22:103"},"nodeType":"YulExpressionStatement","src":"4724:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4697:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4706:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4693:3:103"},"nodeType":"YulFunctionCall","src":"4693:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4718:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4689:3:103"},"nodeType":"YulFunctionCall","src":"4689:32:103"},"nodeType":"YulIf","src":"4686:2:103"},{"nodeType":"YulVariableDeclaration","src":"4757:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4770:12:103"},"nodeType":"YulFunctionCall","src":"4770:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4761:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4843:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4852:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4860:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4845:6:103"},"nodeType":"YulFunctionCall","src":"4845:22:103"},"nodeType":"YulExpressionStatement","src":"4845:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4815:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4826:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4833:6:103","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4822:3:103"},"nodeType":"YulFunctionCall","src":"4822:18:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4812:2:103"},"nodeType":"YulFunctionCall","src":"4812:29:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4805:6:103"},"nodeType":"YulFunctionCall","src":"4805:37:103"},"nodeType":"YulIf","src":"4802:2:103"},{"nodeType":"YulAssignment","src":"4878:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4888:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4878:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"4902:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4933:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4944:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4929:3:103"},"nodeType":"YulFunctionCall","src":"4929:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4916:12:103"},"nodeType":"YulFunctionCall","src":"4916:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4906:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4991:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5000:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5008:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4993:6:103"},"nodeType":"YulFunctionCall","src":"4993:22:103"},"nodeType":"YulExpressionStatement","src":"4993:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4963:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4971:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4960:2:103"},"nodeType":"YulFunctionCall","src":"4960:30:103"},"nodeType":"YulIf","src":"4957:2:103"},{"nodeType":"YulVariableDeclaration","src":"5026:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5082:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5093:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5078:3:103"},"nodeType":"YulFunctionCall","src":"5078:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5102:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"5052:25:103"},"nodeType":"YulFunctionCall","src":"5052:58:103"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"5030:8:103","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"5040:8:103","type":""}]},{"nodeType":"YulAssignment","src":"5119:18:103","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"5129:8:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5119:6:103"}]},{"nodeType":"YulAssignment","src":"5146:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"5156:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5146:6:103"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4626:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4637:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4649:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4657:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4665:6:103","type":""}],"src":"4571:599:103"},{"body":{"nodeType":"YulBlock","src":"5245:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"5291:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5300:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5308:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5293:6:103"},"nodeType":"YulFunctionCall","src":"5293:22:103"},"nodeType":"YulExpressionStatement","src":"5293:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5266:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5275:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5262:3:103"},"nodeType":"YulFunctionCall","src":"5262:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5287:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5258:3:103"},"nodeType":"YulFunctionCall","src":"5258:32:103"},"nodeType":"YulIf","src":"5255:2:103"},{"nodeType":"YulAssignment","src":"5326:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5349:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5336:12:103"},"nodeType":"YulFunctionCall","src":"5336:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5326:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5211:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5222:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5234:6:103","type":""}],"src":"5175:190:103"},{"body":{"nodeType":"YulBlock","src":"5451:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"5497:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5506:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5514:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5499:6:103"},"nodeType":"YulFunctionCall","src":"5499:22:103"},"nodeType":"YulExpressionStatement","src":"5499:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5472:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5481:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5468:3:103"},"nodeType":"YulFunctionCall","src":"5468:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5493:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5464:3:103"},"nodeType":"YulFunctionCall","src":"5464:32:103"},"nodeType":"YulIf","src":"5461:2:103"},{"nodeType":"YulAssignment","src":"5532:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5548:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5542:5:103"},"nodeType":"YulFunctionCall","src":"5542:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5532:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5417:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5428:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5440:6:103","type":""}],"src":"5370:194:103"},{"body":{"nodeType":"YulBlock","src":"5656:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"5702:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5711:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5719:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5704:6:103"},"nodeType":"YulFunctionCall","src":"5704:22:103"},"nodeType":"YulExpressionStatement","src":"5704:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5677:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5686:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5673:3:103"},"nodeType":"YulFunctionCall","src":"5673:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5698:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5669:3:103"},"nodeType":"YulFunctionCall","src":"5669:32:103"},"nodeType":"YulIf","src":"5666:2:103"},{"nodeType":"YulAssignment","src":"5737:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5760:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5747:12:103"},"nodeType":"YulFunctionCall","src":"5747:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5737:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5779:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5809:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5820:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5805:3:103"},"nodeType":"YulFunctionCall","src":"5805:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5792:12:103"},"nodeType":"YulFunctionCall","src":"5792:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5783:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5858:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5833:24:103"},"nodeType":"YulFunctionCall","src":"5833:31:103"},"nodeType":"YulExpressionStatement","src":"5833:31:103"},{"nodeType":"YulAssignment","src":"5873:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5883:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5873:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5614:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5625:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5637:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5645:6:103","type":""}],"src":"5569:325:103"},{"body":{"nodeType":"YulBlock","src":"6005:391:103","statements":[{"body":{"nodeType":"YulBlock","src":"6051:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6060:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6068:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6053:6:103"},"nodeType":"YulFunctionCall","src":"6053:22:103"},"nodeType":"YulExpressionStatement","src":"6053:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6026:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6035:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6022:3:103"},"nodeType":"YulFunctionCall","src":"6022:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6047:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6018:3:103"},"nodeType":"YulFunctionCall","src":"6018:32:103"},"nodeType":"YulIf","src":"6015:2:103"},{"nodeType":"YulAssignment","src":"6086:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6109:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6096:12:103"},"nodeType":"YulFunctionCall","src":"6096:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6086:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6128:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6159:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6170:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6155:3:103"},"nodeType":"YulFunctionCall","src":"6155:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6142:12:103"},"nodeType":"YulFunctionCall","src":"6142:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6132:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6217:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6226:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6234:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6219:6:103"},"nodeType":"YulFunctionCall","src":"6219:22:103"},"nodeType":"YulExpressionStatement","src":"6219:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6189:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6197:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6186:2:103"},"nodeType":"YulFunctionCall","src":"6186:30:103"},"nodeType":"YulIf","src":"6183:2:103"},{"nodeType":"YulVariableDeclaration","src":"6252:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6308:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6319:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6304:3:103"},"nodeType":"YulFunctionCall","src":"6304:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6328:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"6278:25:103"},"nodeType":"YulFunctionCall","src":"6278:58:103"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"6256:8:103","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"6266:8:103","type":""}]},{"nodeType":"YulAssignment","src":"6345:18:103","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"6355:8:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6345:6:103"}]},{"nodeType":"YulAssignment","src":"6372:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"6382:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6372:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5955:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5966:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5978:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5986:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5994:6:103","type":""}],"src":"5899:497:103"},{"body":{"nodeType":"YulBlock","src":"6541:494:103","statements":[{"body":{"nodeType":"YulBlock","src":"6588:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6597:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6605:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6590:6:103"},"nodeType":"YulFunctionCall","src":"6590:22:103"},"nodeType":"YulExpressionStatement","src":"6590:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6562:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6571:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6558:3:103"},"nodeType":"YulFunctionCall","src":"6558:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6583:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6554:3:103"},"nodeType":"YulFunctionCall","src":"6554:33:103"},"nodeType":"YulIf","src":"6551:2:103"},{"nodeType":"YulAssignment","src":"6623:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6646:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6633:12:103"},"nodeType":"YulFunctionCall","src":"6633:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6623:6:103"}]},{"nodeType":"YulAssignment","src":"6665:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6692:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6703:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6688:3:103"},"nodeType":"YulFunctionCall","src":"6688:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6675:12:103"},"nodeType":"YulFunctionCall","src":"6675:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6665:6:103"}]},{"nodeType":"YulAssignment","src":"6716:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6743:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6754:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6739:3:103"},"nodeType":"YulFunctionCall","src":"6739:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6726:12:103"},"nodeType":"YulFunctionCall","src":"6726:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6716:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6767:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6794:3:103"},"nodeType":"YulFunctionCall","src":"6794:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6781:12:103"},"nodeType":"YulFunctionCall","src":"6781:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6771:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6856:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6865:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6873:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6858:6:103"},"nodeType":"YulFunctionCall","src":"6858:22:103"},"nodeType":"YulExpressionStatement","src":"6858:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6828:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6836:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6825:2:103"},"nodeType":"YulFunctionCall","src":"6825:30:103"},"nodeType":"YulIf","src":"6822:2:103"},{"nodeType":"YulVariableDeclaration","src":"6891:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6947:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6958:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6943:3:103"},"nodeType":"YulFunctionCall","src":"6943:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6967:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"6917:25:103"},"nodeType":"YulFunctionCall","src":"6917:58:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"6895:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"6905:8:103","type":""}]},{"nodeType":"YulAssignment","src":"6984:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"6994:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6984:6:103"}]},{"nodeType":"YulAssignment","src":"7011:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"7021:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7011:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6475:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6486:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6498:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6506:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6514:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6522:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6530:6:103","type":""}],"src":"6401:634:103"},{"body":{"nodeType":"YulBlock","src":"7106:202:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7123:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"7128:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7116:6:103"},"nodeType":"YulFunctionCall","src":"7116:19:103"},"nodeType":"YulExpressionStatement","src":"7116:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7161:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"7166:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7157:3:103"},"nodeType":"YulFunctionCall","src":"7157:14:103"},{"name":"start","nodeType":"YulIdentifier","src":"7173:5:103"},{"name":"length","nodeType":"YulIdentifier","src":"7180:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"7144:12:103"},"nodeType":"YulFunctionCall","src":"7144:43:103"},"nodeType":"YulExpressionStatement","src":"7144:43:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7211:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"7216:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7207:3:103"},"nodeType":"YulFunctionCall","src":"7207:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"7225:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7203:3:103"},"nodeType":"YulFunctionCall","src":"7203:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"7232:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7196:6:103"},"nodeType":"YulFunctionCall","src":"7196:40:103"},"nodeType":"YulExpressionStatement","src":"7196:40:103"},{"nodeType":"YulAssignment","src":"7245:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7260:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7273:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7281:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7269:3:103"},"nodeType":"YulFunctionCall","src":"7269:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7290:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7286:3:103"},"nodeType":"YulFunctionCall","src":"7286:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7265:3:103"},"nodeType":"YulFunctionCall","src":"7265:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7256:3:103"},"nodeType":"YulFunctionCall","src":"7256:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"7297:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7252:3:103"},"nodeType":"YulFunctionCall","src":"7252:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7245:3:103"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"7075:5:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"7082:6:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"7090:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7098:3:103","type":""}],"src":"7040:268:103"},{"body":{"nodeType":"YulBlock","src":"7414:102:103","statements":[{"nodeType":"YulAssignment","src":"7424:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7447:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7432:3:103"},"nodeType":"YulFunctionCall","src":"7432:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7424:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7466:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7481:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7497:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7502:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7493:3:103"},"nodeType":"YulFunctionCall","src":"7493:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7506:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7489:3:103"},"nodeType":"YulFunctionCall","src":"7489:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7477:3:103"},"nodeType":"YulFunctionCall","src":"7477:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7459:6:103"},"nodeType":"YulFunctionCall","src":"7459:51:103"},"nodeType":"YulExpressionStatement","src":"7459:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7383:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7394:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7405:4:103","type":""}],"src":"7313:203:103"},{"body":{"nodeType":"YulBlock","src":"7622:76:103","statements":[{"nodeType":"YulAssignment","src":"7632:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7655:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7640:3:103"},"nodeType":"YulFunctionCall","src":"7640:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7632:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7674:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7685:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7667:6:103"},"nodeType":"YulFunctionCall","src":"7667:25:103"},"nodeType":"YulExpressionStatement","src":"7667:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7591:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7602:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7613:4:103","type":""}],"src":"7521:177:103"},{"body":{"nodeType":"YulBlock","src":"7832:145:103","statements":[{"nodeType":"YulAssignment","src":"7842:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7865:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7850:3:103"},"nodeType":"YulFunctionCall","src":"7850:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7842:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7884:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7895:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7877:6:103"},"nodeType":"YulFunctionCall","src":"7877:25:103"},"nodeType":"YulExpressionStatement","src":"7877:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7922:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7933:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7918:3:103"},"nodeType":"YulFunctionCall","src":"7918:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7942:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7958:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7963:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7954:3:103"},"nodeType":"YulFunctionCall","src":"7954:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7967:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7950:3:103"},"nodeType":"YulFunctionCall","src":"7950:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7938:3:103"},"nodeType":"YulFunctionCall","src":"7938:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7911:6:103"},"nodeType":"YulFunctionCall","src":"7911:60:103"},"nodeType":"YulExpressionStatement","src":"7911:60:103"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7793:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7804:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7812:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7823:4:103","type":""}],"src":"7703:274:103"},{"body":{"nodeType":"YulBlock","src":"8111:119:103","statements":[{"nodeType":"YulAssignment","src":"8121:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8144:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8129:3:103"},"nodeType":"YulFunctionCall","src":"8129:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8121:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8163:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8174:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8156:6:103"},"nodeType":"YulFunctionCall","src":"8156:25:103"},"nodeType":"YulExpressionStatement","src":"8156:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8201:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8212:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8197:3:103"},"nodeType":"YulFunctionCall","src":"8197:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8217:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8190:6:103"},"nodeType":"YulFunctionCall","src":"8190:34:103"},"nodeType":"YulExpressionStatement","src":"8190:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8072:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8083:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8091:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8102:4:103","type":""}],"src":"7982:248:103"},{"body":{"nodeType":"YulBlock","src":"8392:188:103","statements":[{"nodeType":"YulAssignment","src":"8402:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8414:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8425:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8410:3:103"},"nodeType":"YulFunctionCall","src":"8410:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8402:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8444:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8455:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8437:6:103"},"nodeType":"YulFunctionCall","src":"8437:25:103"},"nodeType":"YulExpressionStatement","src":"8437:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8493:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8478:3:103"},"nodeType":"YulFunctionCall","src":"8478:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8498:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8471:6:103"},"nodeType":"YulFunctionCall","src":"8471:34:103"},"nodeType":"YulExpressionStatement","src":"8471:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8536:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8521:3:103"},"nodeType":"YulFunctionCall","src":"8521:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8545:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8561:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8566:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8557:3:103"},"nodeType":"YulFunctionCall","src":"8557:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"8570:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8553:3:103"},"nodeType":"YulFunctionCall","src":"8553:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8541:3:103"},"nodeType":"YulFunctionCall","src":"8541:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8514:6:103"},"nodeType":"YulFunctionCall","src":"8514:60:103"},"nodeType":"YulExpressionStatement","src":"8514:60:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_address__to_t_bytes32_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8345:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8356:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8364:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8372:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8383:4:103","type":""}],"src":"8235:345:103"},{"body":{"nodeType":"YulBlock","src":"8692:87:103","statements":[{"nodeType":"YulAssignment","src":"8702:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8714:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8725:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8710:3:103"},"nodeType":"YulFunctionCall","src":"8710:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8702:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8744:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8759:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"8767:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8755:3:103"},"nodeType":"YulFunctionCall","src":"8755:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8737:6:103"},"nodeType":"YulFunctionCall","src":"8737:36:103"},"nodeType":"YulExpressionStatement","src":"8737:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8661:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8672:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8683:4:103","type":""}],"src":"8585:194:103"},{"body":{"nodeType":"YulBlock","src":"8958:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8986:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8968:6:103"},"nodeType":"YulFunctionCall","src":"8968:21:103"},"nodeType":"YulExpressionStatement","src":"8968:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9020:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9005:3:103"},"nodeType":"YulFunctionCall","src":"9005:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9025:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8998:6:103"},"nodeType":"YulFunctionCall","src":"8998:30:103"},"nodeType":"YulExpressionStatement","src":"8998:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9048:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9059:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9044:3:103"},"nodeType":"YulFunctionCall","src":"9044:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9064:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9037:6:103"},"nodeType":"YulFunctionCall","src":"9037:62:103"},"nodeType":"YulExpressionStatement","src":"9037:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9119:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9130:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9115:3:103"},"nodeType":"YulFunctionCall","src":"9115:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9135:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9108:6:103"},"nodeType":"YulFunctionCall","src":"9108:35:103"},"nodeType":"YulExpressionStatement","src":"9108:35:103"},{"nodeType":"YulAssignment","src":"9152:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9164:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9175:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9160:3:103"},"nodeType":"YulFunctionCall","src":"9160:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9152:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8935:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8949:4:103","type":""}],"src":"8784:401:103"},{"body":{"nodeType":"YulBlock","src":"9364:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9392:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9374:6:103"},"nodeType":"YulFunctionCall","src":"9374:21:103"},"nodeType":"YulExpressionStatement","src":"9374:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9426:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9411:3:103"},"nodeType":"YulFunctionCall","src":"9411:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9431:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9404:6:103"},"nodeType":"YulFunctionCall","src":"9404:30:103"},"nodeType":"YulExpressionStatement","src":"9404:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9465:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9450:3:103"},"nodeType":"YulFunctionCall","src":"9450:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9470:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9443:6:103"},"nodeType":"YulFunctionCall","src":"9443:62:103"},"nodeType":"YulExpressionStatement","src":"9443:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9536:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9521:3:103"},"nodeType":"YulFunctionCall","src":"9521:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9541:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9514:6:103"},"nodeType":"YulFunctionCall","src":"9514:36:103"},"nodeType":"YulExpressionStatement","src":"9514:36:103"},{"nodeType":"YulAssignment","src":"9559:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9582:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9567:3:103"},"nodeType":"YulFunctionCall","src":"9567:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9559:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9341:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9355:4:103","type":""}],"src":"9190:402:103"},{"body":{"nodeType":"YulBlock","src":"9771:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9788:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9799:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9781:6:103"},"nodeType":"YulFunctionCall","src":"9781:21:103"},"nodeType":"YulExpressionStatement","src":"9781:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9822:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9833:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9818:3:103"},"nodeType":"YulFunctionCall","src":"9818:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9838:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9811:6:103"},"nodeType":"YulFunctionCall","src":"9811:30:103"},"nodeType":"YulExpressionStatement","src":"9811:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9872:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9857:3:103"},"nodeType":"YulFunctionCall","src":"9857:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9877:34:103","type":"","value":"ERROR:IOS-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9850:6:103"},"nodeType":"YulFunctionCall","src":"9850:62:103"},"nodeType":"YulExpressionStatement","src":"9850:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9932:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9943:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9928:3:103"},"nodeType":"YulFunctionCall","src":"9928:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9948:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9921:6:103"},"nodeType":"YulFunctionCall","src":"9921:33:103"},"nodeType":"YulExpressionStatement","src":"9921:33:103"},{"nodeType":"YulAssignment","src":"9963:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9986:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9971:3:103"},"nodeType":"YulFunctionCall","src":"9971:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9963:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4f9a629a891ef96edc5744c3431f880a108556562b68950708236c732d2e7e88__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9748:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9762:4:103","type":""}],"src":"9597:399:103"},{"body":{"nodeType":"YulBlock","src":"10175:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10203:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10185:6:103"},"nodeType":"YulFunctionCall","src":"10185:21:103"},"nodeType":"YulExpressionStatement","src":"10185:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10237:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10222:3:103"},"nodeType":"YulFunctionCall","src":"10222:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10242:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10215:6:103"},"nodeType":"YulFunctionCall","src":"10215:30:103"},"nodeType":"YulExpressionStatement","src":"10215:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10265:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10276:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10261:3:103"},"nodeType":"YulFunctionCall","src":"10261:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10281:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10254:6:103"},"nodeType":"YulFunctionCall","src":"10254:62:103"},"nodeType":"YulExpressionStatement","src":"10254:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10336:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10347:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10332:3:103"},"nodeType":"YulFunctionCall","src":"10332:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10352:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10325:6:103"},"nodeType":"YulFunctionCall","src":"10325:44:103"},"nodeType":"YulExpressionStatement","src":"10325:44:103"},{"nodeType":"YulAssignment","src":"10378:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10401:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10386:3:103"},"nodeType":"YulFunctionCall","src":"10386:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10378:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10152:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10166:4:103","type":""}],"src":"10001:410:103"},{"body":{"nodeType":"YulBlock","src":"10590:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10607:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10618:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10600:6:103"},"nodeType":"YulFunctionCall","src":"10600:21:103"},"nodeType":"YulExpressionStatement","src":"10600:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10641:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10652:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10637:3:103"},"nodeType":"YulFunctionCall","src":"10637:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10657:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10630:6:103"},"nodeType":"YulFunctionCall","src":"10630:30:103"},"nodeType":"YulExpressionStatement","src":"10630:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10691:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10676:3:103"},"nodeType":"YulFunctionCall","src":"10676:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10696:34:103","type":"","value":"ERROR:IOS-011:IMPLEMENATION_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10669:6:103"},"nodeType":"YulFunctionCall","src":"10669:62:103"},"nodeType":"YulExpressionStatement","src":"10669:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10751:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10762:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10747:3:103"},"nodeType":"YulFunctionCall","src":"10747:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10767:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10740:6:103"},"nodeType":"YulFunctionCall","src":"10740:33:103"},"nodeType":"YulExpressionStatement","src":"10740:33:103"},{"nodeType":"YulAssignment","src":"10782:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10794:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10805:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10790:3:103"},"nodeType":"YulFunctionCall","src":"10790:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10782:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_82cd723e08c6881587ec30a3dfe2f83ddd1d3003fc073eb1e0f321714bc7396c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10567:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10581:4:103","type":""}],"src":"10416:399:103"},{"body":{"nodeType":"YulBlock","src":"10994:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11011:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11022:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11004:6:103"},"nodeType":"YulFunctionCall","src":"11004:21:103"},"nodeType":"YulExpressionStatement","src":"11004:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11045:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11056:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11041:3:103"},"nodeType":"YulFunctionCall","src":"11041:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11061:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11034:6:103"},"nodeType":"YulFunctionCall","src":"11034:30:103"},"nodeType":"YulExpressionStatement","src":"11034:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11095:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11080:3:103"},"nodeType":"YulFunctionCall","src":"11080:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11100:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11073:6:103"},"nodeType":"YulFunctionCall","src":"11073:62:103"},"nodeType":"YulExpressionStatement","src":"11073:62:103"},{"nodeType":"YulAssignment","src":"11144:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11156:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11167:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11152:3:103"},"nodeType":"YulFunctionCall","src":"11152:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11144:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10971:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10985:4:103","type":""}],"src":"10820:356:103"},{"body":{"nodeType":"YulBlock","src":"11355:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11372:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11383:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11365:6:103"},"nodeType":"YulFunctionCall","src":"11365:21:103"},"nodeType":"YulExpressionStatement","src":"11365:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11406:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11417:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11402:3:103"},"nodeType":"YulFunctionCall","src":"11402:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11422:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11395:6:103"},"nodeType":"YulFunctionCall","src":"11395:30:103"},"nodeType":"YulExpressionStatement","src":"11395:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11445:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11456:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11441:3:103"},"nodeType":"YulFunctionCall","src":"11441:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11461:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11434:6:103"},"nodeType":"YulFunctionCall","src":"11434:62:103"},"nodeType":"YulExpressionStatement","src":"11434:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11516:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11527:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11512:3:103"},"nodeType":"YulFunctionCall","src":"11512:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11532:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11505:6:103"},"nodeType":"YulFunctionCall","src":"11505:41:103"},"nodeType":"YulExpressionStatement","src":"11505:41:103"},{"nodeType":"YulAssignment","src":"11555:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11578:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11563:3:103"},"nodeType":"YulFunctionCall","src":"11563:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11555:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11332:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11346:4:103","type":""}],"src":"11181:407:103"},{"body":{"nodeType":"YulBlock","src":"11767:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11784:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11795:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11777:6:103"},"nodeType":"YulFunctionCall","src":"11777:21:103"},"nodeType":"YulExpressionStatement","src":"11777:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11829:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11814:3:103"},"nodeType":"YulFunctionCall","src":"11814:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11834:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11807:6:103"},"nodeType":"YulFunctionCall","src":"11807:30:103"},"nodeType":"YulExpressionStatement","src":"11807:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11868:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11853:3:103"},"nodeType":"YulFunctionCall","src":"11853:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11873:34:103","type":"","value":"ERROR:IOS-010:IMPLEMENATION_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11846:6:103"},"nodeType":"YulFunctionCall","src":"11846:62:103"},"nodeType":"YulExpressionStatement","src":"11846:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11928:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11939:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11924:3:103"},"nodeType":"YulFunctionCall","src":"11924:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11944:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11917:6:103"},"nodeType":"YulFunctionCall","src":"11917:33:103"},"nodeType":"YulExpressionStatement","src":"11917:33:103"},{"nodeType":"YulAssignment","src":"11959:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11971:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11982:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11967:3:103"},"nodeType":"YulFunctionCall","src":"11967:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11959:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_eced10d50b8ba1711cfe37b4eb88407a5eaeb66e7a413a20b76444cdfd898ea4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11744:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11758:4:103","type":""}],"src":"11593:399:103"},{"body":{"nodeType":"YulBlock","src":"12168:929:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12185:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12196:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12178:6:103"},"nodeType":"YulFunctionCall","src":"12178:21:103"},"nodeType":"YulExpressionStatement","src":"12178:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12219:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12230:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12215:3:103"},"nodeType":"YulFunctionCall","src":"12215:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12248:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12235:12:103"},"nodeType":"YulFunctionCall","src":"12235:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12208:6:103"},"nodeType":"YulFunctionCall","src":"12208:48:103"},"nodeType":"YulExpressionStatement","src":"12208:48:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12276:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12287:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12272:3:103"},"nodeType":"YulFunctionCall","src":"12272:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12309:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12317:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12305:3:103"},"nodeType":"YulFunctionCall","src":"12305:15:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12292:12:103"},"nodeType":"YulFunctionCall","src":"12292:29:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12265:6:103"},"nodeType":"YulFunctionCall","src":"12265:57:103"},"nodeType":"YulExpressionStatement","src":"12265:57:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12353:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12338:3:103"},"nodeType":"YulFunctionCall","src":"12338:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12375:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12383:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12371:3:103"},"nodeType":"YulFunctionCall","src":"12371:15:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12358:12:103"},"nodeType":"YulFunctionCall","src":"12358:29:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12331:6:103"},"nodeType":"YulFunctionCall","src":"12331:57:103"},"nodeType":"YulExpressionStatement","src":"12331:57:103"},{"nodeType":"YulVariableDeclaration","src":"12397:55:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12440:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12448:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12436:3:103"},"nodeType":"YulFunctionCall","src":"12436:15:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12423:12:103"},"nodeType":"YulFunctionCall","src":"12423:29:103"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"12401:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12539:22:103","statements":[{"expression":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12548:4:103"},{"name":"tail","nodeType":"YulIdentifier","src":"12554:4:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12541:6:103"},"nodeType":"YulFunctionCall","src":"12541:18:103"},"nodeType":"YulExpressionStatement","src":"12541:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"12475:18:103"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"12503:12:103"},"nodeType":"YulFunctionCall","src":"12503:14:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12519:6:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12499:3:103"},"nodeType":"YulFunctionCall","src":"12499:27:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12532:2:103","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12528:3:103"},"nodeType":"YulFunctionCall","src":"12528:7:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12495:3:103"},"nodeType":"YulFunctionCall","src":"12495:41:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12471:3:103"},"nodeType":"YulFunctionCall","src":"12471:66:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12464:6:103"},"nodeType":"YulFunctionCall","src":"12464:74:103"},"nodeType":"YulIf","src":"12461:2:103"},{"nodeType":"YulVariableDeclaration","src":"12570:44:103","value":{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"12587:18:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12607:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12583:3:103"},"nodeType":"YulFunctionCall","src":"12583:31:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12574:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12623:33:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12650:5:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12637:12:103"},"nodeType":"YulFunctionCall","src":"12637:19:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12627:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12699:22:103","statements":[{"expression":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12708:4:103"},{"name":"tail","nodeType":"YulIdentifier","src":"12714:4:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12701:6:103"},"nodeType":"YulFunctionCall","src":"12701:18:103"},"nodeType":"YulExpressionStatement","src":"12701:18:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12671:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12679:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12668:2:103"},"nodeType":"YulFunctionCall","src":"12668:30:103"},"nodeType":"YulIf","src":"12665:2:103"},{"body":{"nodeType":"YulBlock","src":"12774:22:103","statements":[{"expression":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12783:4:103"},{"name":"tail","nodeType":"YulIdentifier","src":"12789:4:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12776:6:103"},"nodeType":"YulFunctionCall","src":"12776:18:103"},"nodeType":"YulExpressionStatement","src":"12776:18:103"}]},"condition":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12737:6:103"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"12749:12:103"},"nodeType":"YulFunctionCall","src":"12749:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"12765:6:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12745:3:103"},"nodeType":"YulFunctionCall","src":"12745:27:103"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"12733:3:103"},"nodeType":"YulFunctionCall","src":"12733:40:103"},"nodeType":"YulIf","src":"12730:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12816:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12827:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12812:3:103"},"nodeType":"YulFunctionCall","src":"12812:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"12833:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12805:6:103"},"nodeType":"YulFunctionCall","src":"12805:33:103"},"nodeType":"YulExpressionStatement","src":"12805:33:103"},{"nodeType":"YulVariableDeclaration","src":"12847:84:103","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12891:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"12898:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12887:3:103"},"nodeType":"YulFunctionCall","src":"12887:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"12903:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12926:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12911:3:103"},"nodeType":"YulFunctionCall","src":"12911:19:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"12861:25:103"},"nodeType":"YulFunctionCall","src":"12861:70:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"12851:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12951:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12962:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12947:3:103"},"nodeType":"YulFunctionCall","src":"12947:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12985:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12993:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12981:3:103"},"nodeType":"YulFunctionCall","src":"12981:16:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12968:12:103"},"nodeType":"YulFunctionCall","src":"12968:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12940:6:103"},"nodeType":"YulFunctionCall","src":"12940:59:103"},"nodeType":"YulExpressionStatement","src":"12940:59:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13030:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13015:3:103"},"nodeType":"YulFunctionCall","src":"13015:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13054:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13062:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13050:3:103"},"nodeType":"YulFunctionCall","src":"13050:16:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13037:12:103"},"nodeType":"YulFunctionCall","src":"13037:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13008:6:103"},"nodeType":"YulFunctionCall","src":"13008:60:103"},"nodeType":"YulExpressionStatement","src":"13008:60:103"},{"nodeType":"YulAssignment","src":"13077:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"13085:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13077:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12137:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12148:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12159:4:103","type":""}],"src":"11997:1100:103"},{"body":{"nodeType":"YulBlock","src":"13271:681:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13288:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13299:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13281:6:103"},"nodeType":"YulFunctionCall","src":"13281:21:103"},"nodeType":"YulExpressionStatement","src":"13281:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13333:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13318:3:103"},"nodeType":"YulFunctionCall","src":"13318:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13344:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13338:5:103"},"nodeType":"YulFunctionCall","src":"13338:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13311:6:103"},"nodeType":"YulFunctionCall","src":"13311:41:103"},"nodeType":"YulExpressionStatement","src":"13311:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13372:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13383:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13368:3:103"},"nodeType":"YulFunctionCall","src":"13368:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13398:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13406:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13394:3:103"},"nodeType":"YulFunctionCall","src":"13394:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13388:5:103"},"nodeType":"YulFunctionCall","src":"13388:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13361:6:103"},"nodeType":"YulFunctionCall","src":"13361:50:103"},"nodeType":"YulExpressionStatement","src":"13361:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13431:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13442:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13427:3:103"},"nodeType":"YulFunctionCall","src":"13427:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13457:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13465:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13453:3:103"},"nodeType":"YulFunctionCall","src":"13453:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13447:5:103"},"nodeType":"YulFunctionCall","src":"13447:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13420:6:103"},"nodeType":"YulFunctionCall","src":"13420:50:103"},"nodeType":"YulExpressionStatement","src":"13420:50:103"},{"nodeType":"YulVariableDeclaration","src":"13479:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13509:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13517:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13505:3:103"},"nodeType":"YulFunctionCall","src":"13505:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13499:5:103"},"nodeType":"YulFunctionCall","src":"13499:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"13483:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13552:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13537:3:103"},"nodeType":"YulFunctionCall","src":"13537:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"13558:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13530:6:103"},"nodeType":"YulFunctionCall","src":"13530:33:103"},"nodeType":"YulExpressionStatement","src":"13530:33:103"},{"nodeType":"YulVariableDeclaration","src":"13572:33:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"13592:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13586:5:103"},"nodeType":"YulFunctionCall","src":"13586:19:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"13576:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13625:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13636:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13621:3:103"},"nodeType":"YulFunctionCall","src":"13621:19:103"},{"name":"length","nodeType":"YulIdentifier","src":"13642:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13614:6:103"},"nodeType":"YulFunctionCall","src":"13614:35:103"},"nodeType":"YulExpressionStatement","src":"13614:35:103"},{"nodeType":"YulVariableDeclaration","src":"13658:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"13668:3:103","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13662:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"13706:12:103"},{"kind":"number","nodeType":"YulLiteral","src":"13720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13702:3:103"},"nodeType":"YulFunctionCall","src":"13702:21:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13729:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13740:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13725:3:103"},"nodeType":"YulFunctionCall","src":"13725:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"13745:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"13680:21:103"},"nodeType":"YulFunctionCall","src":"13680:72:103"},"nodeType":"YulExpressionStatement","src":"13680:72:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13772:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13783:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13768:3:103"},"nodeType":"YulFunctionCall","src":"13768:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13799:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13807:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13795:3:103"},"nodeType":"YulFunctionCall","src":"13795:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13789:5:103"},"nodeType":"YulFunctionCall","src":"13789:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13761:6:103"},"nodeType":"YulFunctionCall","src":"13761:52:103"},"nodeType":"YulExpressionStatement","src":"13761:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13844:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13829:3:103"},"nodeType":"YulFunctionCall","src":"13829:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13861:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13869:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13857:3:103"},"nodeType":"YulFunctionCall","src":"13857:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13851:5:103"},"nodeType":"YulFunctionCall","src":"13851:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13822:6:103"},"nodeType":"YulFunctionCall","src":"13822:53:103"},"nodeType":"YulExpressionStatement","src":"13822:53:103"},{"nodeType":"YulAssignment","src":"13884:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13900:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13919:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13927:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13915:3:103"},"nodeType":"YulFunctionCall","src":"13915:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13936:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13932:3:103"},"nodeType":"YulFunctionCall","src":"13932:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13911:3:103"},"nodeType":"YulFunctionCall","src":"13911:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13896:3:103"},"nodeType":"YulFunctionCall","src":"13896:45:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13943:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13892:3:103"},"nodeType":"YulFunctionCall","src":"13892:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13884:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13240:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13251:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13262:4:103","type":""}],"src":"13102:850:103"},{"body":{"nodeType":"YulBlock","src":"14058:76:103","statements":[{"nodeType":"YulAssignment","src":"14068:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14080:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14091:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14076:3:103"},"nodeType":"YulFunctionCall","src":"14076:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14068:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14110:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14121:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14103:6:103"},"nodeType":"YulFunctionCall","src":"14103:25:103"},"nodeType":"YulExpressionStatement","src":"14103:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14027:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14038:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14049:4:103","type":""}],"src":"13957:177:103"},{"body":{"nodeType":"YulBlock","src":"14268:145:103","statements":[{"nodeType":"YulAssignment","src":"14278:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14290:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14301:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14286:3:103"},"nodeType":"YulFunctionCall","src":"14286:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14278:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14320:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14331:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14313:6:103"},"nodeType":"YulFunctionCall","src":"14313:25:103"},"nodeType":"YulExpressionStatement","src":"14313:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14358:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14369:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14354:3:103"},"nodeType":"YulFunctionCall","src":"14354:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14378:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14394:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14399:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14390:3:103"},"nodeType":"YulFunctionCall","src":"14390:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14403:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14386:3:103"},"nodeType":"YulFunctionCall","src":"14386:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14374:3:103"},"nodeType":"YulFunctionCall","src":"14374:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14347:6:103"},"nodeType":"YulFunctionCall","src":"14347:60:103"},"nodeType":"YulExpressionStatement","src":"14347:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14229:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14240:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14248:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14259:4:103","type":""}],"src":"14139:274:103"},{"body":{"nodeType":"YulBlock","src":"14547:119:103","statements":[{"nodeType":"YulAssignment","src":"14557:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14580:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14565:3:103"},"nodeType":"YulFunctionCall","src":"14565:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14557:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14599:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14610:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14592:6:103"},"nodeType":"YulFunctionCall","src":"14592:25:103"},"nodeType":"YulExpressionStatement","src":"14592:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14648:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14633:3:103"},"nodeType":"YulFunctionCall","src":"14633:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14653:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14626:6:103"},"nodeType":"YulFunctionCall","src":"14626:34:103"},"nodeType":"YulExpressionStatement","src":"14626:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14508:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14519:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14527:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14538:4:103","type":""}],"src":"14418:248:103"},{"body":{"nodeType":"YulBlock","src":"14884:246:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14901:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14912:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14894:6:103"},"nodeType":"YulFunctionCall","src":"14894:25:103"},"nodeType":"YulExpressionStatement","src":"14894:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14939:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14950:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14935:3:103"},"nodeType":"YulFunctionCall","src":"14935:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14955:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14928:6:103"},"nodeType":"YulFunctionCall","src":"14928:34:103"},"nodeType":"YulExpressionStatement","src":"14928:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14993:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14978:3:103"},"nodeType":"YulFunctionCall","src":"14978:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"14998:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14971:6:103"},"nodeType":"YulFunctionCall","src":"14971:34:103"},"nodeType":"YulExpressionStatement","src":"14971:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15025:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15036:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15021:3:103"},"nodeType":"YulFunctionCall","src":"15021:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15041:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15014:6:103"},"nodeType":"YulFunctionCall","src":"15014:31:103"},"nodeType":"YulExpressionStatement","src":"15014:31:103"},{"nodeType":"YulAssignment","src":"15054:70:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"15088:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"15096:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15108:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15119:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15104:3:103"},"nodeType":"YulFunctionCall","src":"15104:19:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15062:25:103"},"nodeType":"YulFunctionCall","src":"15062:62:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15054:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14821:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14832:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14840:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14848:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14856:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14864:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14875:4:103","type":""}],"src":"14671:459:103"},{"body":{"nodeType":"YulBlock","src":"15180:230:103","statements":[{"nodeType":"YulAssignment","src":"15190:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15206:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15200:5:103"},"nodeType":"YulFunctionCall","src":"15200:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"15190:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"15218:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"15240:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"15256:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"15262:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15252:3:103"},"nodeType":"YulFunctionCall","src":"15252:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15271:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15267:3:103"},"nodeType":"YulFunctionCall","src":"15267:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15248:3:103"},"nodeType":"YulFunctionCall","src":"15248:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15236:3:103"},"nodeType":"YulFunctionCall","src":"15236:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"15222:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"15351:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"15353:16:103"},"nodeType":"YulFunctionCall","src":"15353:18:103"},"nodeType":"YulExpressionStatement","src":"15353:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15294:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"15306:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15291:2:103"},"nodeType":"YulFunctionCall","src":"15291:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15330:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"15342:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15327:2:103"},"nodeType":"YulFunctionCall","src":"15327:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"15288:2:103"},"nodeType":"YulFunctionCall","src":"15288:62:103"},"nodeType":"YulIf","src":"15285:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15389:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15393:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15382:6:103"},"nodeType":"YulFunctionCall","src":"15382:22:103"},"nodeType":"YulExpressionStatement","src":"15382:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"15160:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"15169:6:103","type":""}],"src":"15135:275:103"},{"body":{"nodeType":"YulBlock","src":"15468:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"15478:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"15487:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"15482:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"15547:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"15572:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"15577:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15568:3:103"},"nodeType":"YulFunctionCall","src":"15568:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"15591:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"15596:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15587:3:103"},"nodeType":"YulFunctionCall","src":"15587:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15581:5:103"},"nodeType":"YulFunctionCall","src":"15581:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15561:6:103"},"nodeType":"YulFunctionCall","src":"15561:39:103"},"nodeType":"YulExpressionStatement","src":"15561:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15508:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"15511:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15505:2:103"},"nodeType":"YulFunctionCall","src":"15505:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15519:19:103","statements":[{"nodeType":"YulAssignment","src":"15521:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15530:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"15533:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15526:3:103"},"nodeType":"YulFunctionCall","src":"15526:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15521:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"15501:3:103","statements":[]},"src":"15497:113:103"},{"body":{"nodeType":"YulBlock","src":"15636:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"15649:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"15654:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15645:3:103"},"nodeType":"YulFunctionCall","src":"15645:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"15663:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15638:6:103"},"nodeType":"YulFunctionCall","src":"15638:27:103"},"nodeType":"YulExpressionStatement","src":"15638:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15625:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"15628:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15622:2:103"},"nodeType":"YulFunctionCall","src":"15622:13:103"},"nodeType":"YulIf","src":"15619:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"15446:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"15451:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"15456:6:103","type":""}],"src":"15415:258:103"},{"body":{"nodeType":"YulBlock","src":"15710:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15727:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15734:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15739:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15730:3:103"},"nodeType":"YulFunctionCall","src":"15730:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15720:6:103"},"nodeType":"YulFunctionCall","src":"15720:31:103"},"nodeType":"YulExpressionStatement","src":"15720:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15767:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15770:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15760:6:103"},"nodeType":"YulFunctionCall","src":"15760:15:103"},"nodeType":"YulExpressionStatement","src":"15760:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15791:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15794:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15784:6:103"},"nodeType":"YulFunctionCall","src":"15784:15:103"},"nodeType":"YulExpressionStatement","src":"15784:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"15678:127:103"},{"body":{"nodeType":"YulBlock","src":"15855:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"15919:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15928:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15931:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15921:6:103"},"nodeType":"YulFunctionCall","src":"15921:12:103"},"nodeType":"YulExpressionStatement","src":"15921:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15878:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15889:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15904:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15909:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15900:3:103"},"nodeType":"YulFunctionCall","src":"15900:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15913:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15896:3:103"},"nodeType":"YulFunctionCall","src":"15896:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15885:3:103"},"nodeType":"YulFunctionCall","src":"15885:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15875:2:103"},"nodeType":"YulFunctionCall","src":"15875:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15868:6:103"},"nodeType":"YulFunctionCall","src":"15868:50:103"},"nodeType":"YulIf","src":"15865:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15844:5:103","type":""}],"src":"15810:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n let _1 := add(headStart, offset)\n if slt(sub(dataEnd, _1), 192) { revert(value0, value0) }\n value0 := _1\n }\n function abi_decode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, 0xffff))) { revert(value0, value0) }\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(value1, value1) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value2, value2) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_address__to_t_bytes32_t_bytes32_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4f9a629a891ef96edc5744c3431f880a108556562b68950708236c732d2e7e88__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:IOS-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_82cd723e08c6881587ec30a3dfe2f83ddd1d3003fc073eb1e0f321714bc7396c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:IOS-011:IMPLEMENATION_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_eced10d50b8ba1711cfe37b4eb88407a5eaeb66e7a413a20b76444cdfd898ea4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:IOS-010:IMPLEMENATION_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), calldataload(value0))\n mstore(add(headStart, 64), calldataload(add(value0, 32)))\n mstore(add(headStart, 96), calldataload(add(value0, 64)))\n let rel_offset_of_tail := calldataload(add(value0, 96))\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), value0), not(30)))) { revert(tail, tail) }\n let value := add(rel_offset_of_tail, value0)\n let length := calldataload(value)\n if gt(length, 0xffffffffffffffff) { revert(tail, tail) }\n if sgt(value0, sub(calldatasize(), length)) { revert(tail, tail) }\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes_calldata(add(value, 32), length, add(headStart, 224))\n mstore(add(headStart, 160), calldataload(add(value0, 128)))\n mstore(add(headStart, 0xc0), calldataload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let length := mload(memberValue0)\n mstore(add(headStart, 224), length)\n let _1 := 256\n copy_memory_to_memory(add(memberValue0, 32), add(headStart, _1), length)\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := add(add(headStart, and(add(length, 31), not(31))), _1)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063cc9cf8cd11610097578063d547741f11610071578063d547741f1461039b578063d5fe1f10146103ae578063dc527b08146103b6578063f2fde38b146103c9576101c4565b8063cc9cf8cd14610362578063d17d023314610375578063d22057a914610388576101c4565b8063b759f954116100d3578063b759f95414610316578063c42994a214610329578063c4d66de81461033c578063cab2504d1461034f576101c4565b80638da5cb5b146102d557806393c829fc146102f0578063a0355f4e14610303576101c4565b80634b8658461161016657806372beb6fb1161014057806372beb6fb1461028957806386039aed1461029c578063893917ea146102af5780638ca946aa146102c2576101c4565b80634b8658461461024557806362f0ab5514610258578063715018a614610281576101c4565b806320813154116101a257806320813154146101f95780632f2ff15d1461020c578063394c78ba1461021f578063414000b514610232576101c4565b806301132a7f146101c957806310a81c4a146101de5780631d5e7314146101e6575b600080fd5b6101dc6101d7366004611794565b6103dc565b005b6101dc610474565b6101dc6101f436600461175c565b610508565b6101dc6102073660046116f4565b6105ac565b6101dc61021a36600461170c565b61060c565b6101dc61022d36600461186c565b6106a1565b6101dc6102403660046116f4565b61071f565b6101dc6102533660046116f4565b61077a565b61026b610266366004611920565b6107d5565b6040516102789190611a82565b60405180910390f35b6101dc6108a4565b6101dc6102973660046118ef565b6108b8565b6101dc6102aa3660046118dd565b610936565b6101dc6102bd3660046116f4565b610999565b6101dc6102d0366004611794565b6109f9565b6002546040516001600160a01b039091168152602001610278565b6101dc6102fe3660046116f4565b610a53565b6101dc6103113660046116f4565b610aae565b6101dc6103243660046116f4565b610b09565b6101dc6103373660046116f4565b610d58565b6101dc61034a366004611695565b610db3565b6101dc61035d366004611695565b610f38565b6101dc6103703660046118dd565b610f94565b6101dc6103833660046116f4565b610ff7565b6101dc61039636600461170c565b611052565b6101dc6103a936600461170c565b6110bc565b6101dc61111f565b6101dc6103c436600461173b565b611199565b6101dc6103d7366004611695565b611200565b6002546001600160a01b0316331461040f5760405162461bcd60e51b8152600401610406906119a9565b60405180910390fd5b6005546040516301132a7f60e01b81526001600160a01b03909116906301132a7f9061043f9084906004016119ec565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b5050505050565b6002546001600160a01b0316331461049e5760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663046f7da26040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b50505050565b6002546001600160a01b031633146105325760405162461bcd60e51b8152600401610406906119a9565b6000546040516307579cc560e21b815260048101859052602481018490526001600160a01b0383811660448301526201000090920490911690631d5e7314906064015b600060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b50505050505050565b6002546001600160a01b031633146105d65760405162461bcd60e51b8152600401610406906119a9565b6000546040516308204c5560e21b815260048101839052620100009091046001600160a01b03169063208131549060240161043f565b6002546001600160a01b031633146106365760405162461bcd60e51b8152600401610406906119a9565b600154604051632f2ff15d60e01b8152600481018490526001600160a01b03838116602483015290911690632f2ff15d906044015b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505050565b6002546001600160a01b031633146106cb5760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031303a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146107495760405162461bcd60e51b8152600401610406906119a9565b60035460405163414000b560e01b8152600481018390526001600160a01b039091169063414000b59060240161043f565b6002546001600160a01b031633146107a45760405162461bcd60e51b8152600401610406906119a9565b6003546040516325c32c2360e11b8152600481018390526001600160a01b0390911690634b8658469060240161043f565b61080e6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b6005546040516362f0ab5560e01b81526001600160a01b03909116906362f0ab55906108469089908990899089908990600401611af4565b60006040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089a91908101906117cc565b9695505050505050565b6108ac611276565b6108b660006112d0565b565b6002546001600160a01b031633146108e25760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031313a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146109605760405162461bcd60e51b8152600401610406906119a9565b6005546040516386039aed60e01b8152600481018490526001600160a01b038381166024830152909116906386039aed9060440161066b565b6002546001600160a01b031633146109c35760405162461bcd60e51b8152600401610406906119a9565b60005460405163449c8bf560e11b815260048101839052620100009091046001600160a01b03169063893917ea9060240161043f565b6002546001600160a01b03163314610a235760405162461bcd60e51b8152600401610406906119a9565b600554604051634654a35560e11b81526001600160a01b0390911690638ca946aa9061043f9084906004016119ec565b6002546001600160a01b03163314610a7d5760405162461bcd60e51b8152600401610406906119a9565b6003546040516307aed1d360e11b8152600481018390526001600160a01b0390911690630f5da3a69060240161043f565b6002546001600160a01b03163314610ad85760405162461bcd60e51b8152600401610406906119a9565b60035460405163501aafa760e11b8152600481018390526001600160a01b039091169063a0355f4e9060240161043f565b6002546001600160a01b03163314610b335760405162461bcd60e51b8152600401610406906119a9565b600354604051632dd67e5560e21b8152600481018390526001600160a01b039091169063b759f95490602401600060405180830381600087803b158015610b7957600080fd5b505af1158015610b8d573d6000803e3d6000fd5b5050600354604051630e48080360e21b8152600481018590526001600160a01b039091169250633920200c915060240160206040518083038186803b158015610bd557600080fd5b505afa158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0d91906116d4565b15610d55576003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da189060240160206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f91906116b8565b90506000819050600460009054906101000a90046001600160a01b03166001600160a01b031663f93b367384836001600160a01b03166370d2fe536040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c91906118c5565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401610575565b50565b6002546001600160a01b03163314610d825760405162461bcd60e51b8152600401610406906119a9565b60015460405163274b02a760e01b8152600481018390526001600160a01b039091169063274b02a79060240161043f565b600054610100900460ff1615808015610dd35750600054600160ff909116105b80610df45750610de230611322565b158015610df4575060005460ff166001145b610e575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610406565b6000805460ff191660011790558015610e7a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610ea4600090565b6541636365737360d01b14610ee657610ec56541636365737360d01b611335565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610eee61141d565b8015610f34576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b03163314610f625760405162461bcd60e51b8152600401610406906119a9565b60055460405163cab2504d60e01b81526001600160a01b0383811660048301529091169063cab2504d9060240161043f565b6002546001600160a01b03163314610fbe5760405162461bcd60e51b8152600401610406906119a9565b60055460405163cc9cf8cd60e01b8152600481018490526001600160a01b0383811660248301529091169063cc9cf8cd9060440161066b565b6002546001600160a01b031633146110215760405162461bcd60e51b8152600401610406906119a9565b60015460405163d17d023360e01b8152600481018390526001600160a01b039091169063d17d02339060240161043f565b6002546001600160a01b0316331461107c5760405162461bcd60e51b8152600401610406906119a9565b60005460405163d22057a960e01b8152600481018490526001600160a01b038381166024830152620100009092049091169063d22057a99060440161066b565b6002546001600160a01b031633146110e65760405162461bcd60e51b8152600401610406906119a9565b60015460405163d547741f60e01b8152600481018490526001600160a01b0383811660248301529091169063d547741f9060440161066b565b6002546001600160a01b031633146111495760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663e6400bbe6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b6002546001600160a01b031633146111c35760405162461bcd60e51b8152600401610406906119a9565b600054604051631b8a4f6160e31b81526004810184905260248101839052620100009091046001600160a01b03169063dc527b089060440161066b565b611208611276565b6001600160a01b03811661126d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610406565b610d55816112d0565b6002546001600160a01b031633146108b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610406565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561137f57600080fd5b505afa158015611393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b791906116b8565b90506001600160a01b0381166113305760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610406565b600054610100900460ff166114885760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610406565b61149d6810dbdb5c1bdb995b9d60ba1b611335565b600380546001600160a01b0319166001600160a01b03929092169190911790556114cd63141bdbdb60e21b611335565b600480546001600160a01b0319166001600160a01b039290921691909117905561150167547265617375727960c01b611335565b600580546001600160a01b0319166001600160a01b039290921691909117905561153061152b3390565b6112d0565b611538611540565b6108b66115a1565b60006115596a213ab7323632aa37b5b2b760a91b611335565b9050600061156f6542756e646c6560d01b611335565b6040516328e2dc5360e21b81526001600160a01b0380831660048301529192509083169063a38b714c9060240161066b565b60006115b56541636365737360d01b611335565b60405163c19010a760e01b81523060048201529091506001600160a01b0382169063c19010a79060240161043f565b60008083601f8401126115f5578182fd5b50813567ffffffffffffffff81111561160c578182fd5b60208301915083602082850101111561162457600080fd5b9250929050565b600082601f83011261163b578081fd5b815167ffffffffffffffff81111561165557611655611b82565b611668601f8201601f1916602001611b25565b81815284602083860101111561167c578283fd5b61168d826020830160208701611b56565b949350505050565b6000602082840312156116a6578081fd5b81356116b181611b98565b9392505050565b6000602082840312156116c9578081fd5b81516116b181611b98565b6000602082840312156116e5578081fd5b815180151581146116b1578182fd5b600060208284031215611705578081fd5b5035919050565b6000806040838503121561171e578081fd5b82359150602083013561173081611b98565b809150509250929050565b6000806040838503121561174d578182fd5b50508035926020909101359150565b600080600060608486031215611770578081fd5b8335925060208401359150604084013561178981611b98565b809150509250925092565b6000602082840312156117a5578081fd5b813567ffffffffffffffff8111156117bb578182fd5b820160c081850312156116b1578182fd5b6000602082840312156117dd578081fd5b815167ffffffffffffffff808211156117f4578283fd5b9083019060c08286031215611807578283fd5b61181160c0611b25565b82518152602083015160208201526040830151604082015260608301518281111561183a578485fd5b6118468782860161162b565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600080600060408486031215611880578283fd5b833561ffff81168114611891578384fd5b9250602084013567ffffffffffffffff8111156118ac578283fd5b6118b8868287016115e4565b9497909650939450505050565b6000602082840312156118d6578081fd5b5051919050565b6000806040838503121561171e578182fd5b600080600060408486031215611903578081fd5b83359250602084013567ffffffffffffffff8111156118ac578182fd5b600080600080600060808688031215611937578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115611962578182fd5b61196e888289016115e4565b969995985093965092949392505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60208082526023908201527f4552524f523a494f532d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000602082528235602083015260208301356040830152604083013560608301526060830135601e19843603018112611a23578182fd5b8301803567ffffffffffffffff811115611a3b578283fd5b803603851315611a49578283fd5b60c06080850152611a6160e08501826020850161197f565b915050608084013560a084015260a084013560c08401528091505092915050565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015280518060e0850152610100611aca8282870160208601611b56565b608086015160a0868101919091529095015160c0850152601f01601f191690920190920192915050565b600086825285602083015284604083015260806060830152611b1a60808301848661197f565b979650505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611b4e57611b4e611b82565b604052919050565b60005b83811015611b71578181015183820152602001611b59565b838111156105025750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d5557600080fdfea2646970667358221220333f2e0637b224e8cc6c846170351f725e19eaaf413aa2f641b275607074212c64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xCC9CF8CD GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x39B JUMPI DUP1 PUSH4 0xD5FE1F10 EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x3B6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3C9 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0xCC9CF8CD EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0xD17D0233 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x388 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0xB759F954 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0xB759F954 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0xC42994A2 EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x33C JUMPI DUP1 PUSH4 0xCAB2504D EQ PUSH2 0x34F JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x93C829FC EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0xA0355F4E EQ PUSH2 0x303 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x4B865846 GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x72BEB6FB GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x72BEB6FB EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0x86039AED EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0x8CA946AA EQ PUSH2 0x2C2 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x4B865846 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x62F0AB55 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x281 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x20813154 GT PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x394C78BA EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x414000B5 EQ PUSH2 0x232 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x1132A7F EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x10A81C4A EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x1E6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x3DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DC PUSH2 0x474 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x175C JUMP JUMPDEST PUSH2 0x508 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x60C JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x186C JUMP JUMPDEST PUSH2 0x6A1 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x240 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x71F JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x253 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x77A JUMP JUMPDEST PUSH2 0x26B PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x1920 JUMP JUMPDEST PUSH2 0x7D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DC PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x8B8 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x18DD JUMP JUMPDEST PUSH2 0x936 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2BD CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x999 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x9F9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x278 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xAAE JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x324 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x337 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xD58 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x35D CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0xF38 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x370 CALLDATASIZE PUSH1 0x4 PUSH2 0x18DD JUMP JUMPDEST PUSH2 0xF94 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x383 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xFF7 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x396 CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x1052 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x10BC JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x111F JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x173B JUMP JUMPDEST PUSH2 0x1199 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0x1200 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x40F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1132A7F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1132A7F SWAP1 PUSH2 0x43F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x19EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x46D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x49E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x46F7DA2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x502 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x532 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7579CC5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0x1D5E7314 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x8204C55 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x20813154 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F2FF15D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x2F2FF15D SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x685 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x699 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3031303A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x414000B5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x414000B5 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x25C32C23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4B865846 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH2 0x80E PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62F0AB55 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x62F0AB55 SWAP1 PUSH2 0x846 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1AF4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x872 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x89A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x17CC JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8AC PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x8B6 PUSH1 0x0 PUSH2 0x12D0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3031313A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x960 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x86039AED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x86039AED SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x9C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x449C8BF5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x893917EA SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA23 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4654A355 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8CA946AA SWAP1 PUSH2 0x43F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x19EC JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7AED1D3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xF5DA3A6 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xAD8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x501AAFA7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA0355F4E SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB33 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2DD67E55 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB759F954 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB8D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x3920200C SWAP2 POP PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBE9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC0D SWAP2 SWAP1 PUSH2 0x16D4 JUMP JUMPDEST ISZERO PUSH2 0xD55 JUMPI PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC6B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC8F SWAP2 SWAP1 PUSH2 0x16B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF93B3673 DUP5 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70D2FE53 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD08 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD2C SWAP2 SWAP1 PUSH2 0x18C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x575 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x274B02A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x274B02A7 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xDD3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xDF4 JUMPI POP PUSH2 0xDE2 ADDRESS PUSH2 0x1322 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xDF4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xE57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xE7A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xEA4 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xEE6 JUMPI PUSH2 0xEC5 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xEEE PUSH2 0x141D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF34 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xF62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCAB2504D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xCAB2504D SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xFBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCC9CF8CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xCC9CF8CD SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1021 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD17D0233 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD17D0233 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x107C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD22057A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0xD22057A9 SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x10E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD547741F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xD547741F SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1149 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE6400BBE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x11C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B8A4F61 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xDC527B08 SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH2 0x1208 PUSH2 0x1276 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x126D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH2 0xD55 DUP2 PUSH2 0x12D0 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x137F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1393 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13B7 SWAP2 SWAP1 PUSH2 0x16B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1330 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1488 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH2 0x149D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14CD PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1501 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1530 PUSH2 0x152B CALLER SWAP1 JUMP JUMPDEST PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x1538 PUSH2 0x1540 JUMP JUMPDEST PUSH2 0x8B6 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1559 PUSH11 0x213AB7323632AA37B5B2B7 PUSH1 0xA9 SHL PUSH2 0x1335 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x156F PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x28E2DC53 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP4 AND SWAP1 PUSH4 0xA38B714C SWAP1 PUSH1 0x24 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B5 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC19010A7 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC19010A7 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x15F5 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x160C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x163B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1655 JUMPI PUSH2 0x1655 PUSH2 0x1B82 JUMP JUMPDEST PUSH2 0x1668 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1B25 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x167C JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x168D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1B56 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16B1 DUP2 PUSH2 0x1B98 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x16B1 DUP2 PUSH2 0x1B98 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16E5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x16B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1705 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1730 DUP2 PUSH2 0x1B98 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x174D JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1770 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x1789 DUP2 PUSH2 0x1B98 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17A5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17BB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0xC0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x16B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x17F4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x1807 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x1811 PUSH1 0xC0 PUSH2 0x1B25 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x183A JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1846 DUP8 DUP3 DUP7 ADD PUSH2 0x162B JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1880 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1891 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18AC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x18B8 DUP7 DUP3 DUP8 ADD PUSH2 0x15E4 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18D6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1903 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18AC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1937 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x196E DUP9 DUP3 DUP10 ADD PUSH2 0x15E4 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1A23 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A3B JUMPI DUP3 DUP4 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP6 SGT ISZERO PUSH2 0x1A49 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0xC0 PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x1A61 PUSH1 0xE0 DUP6 ADD DUP3 PUSH1 0x20 DUP6 ADD PUSH2 0x197F JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE DUP1 MLOAD DUP1 PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 PUSH2 0x1ACA DUP3 DUP3 DUP8 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1B56 JUMP JUMPDEST PUSH1 0x80 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 SWAP3 ADD SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1B1A PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x197F JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1B4E JUMPI PUSH2 0x1B4E PUSH2 0x1B82 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B71 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1B59 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x502 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD55 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER EXTCODEHASH 0x2E MOD CALLDATACOPY 0xB2 0x24 0xE8 0xCC PUSH13 0x846170351F725E19EAAF413AA2 0xF6 COINBASE 0xB2 PUSH22 0x607074212C64736F6C63430008020033000000000000 ","sourceMap":"786:6300:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6706:186;;;;;;:::i;:::-;;:::i;:::-;;5509:129;;;:::i;2560:280::-;;;;;;:::i;:::-;;:::i;2390:164::-;;;;;;:::i;:::-;;:::i;3387:169::-;;;;;;:::i;:::-;;:::i;4845:221::-;;;;;;:::i;:::-;;:::i;4470:135::-;;;;;;:::i;:::-;;:::i;4327:137::-;;;;;;:::i;:::-;;:::i;6262:434::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1831:101:41;;;:::i;5128:219:83:-;;;;;;:::i;:::-;;:::i;5826:224::-;;;;;;:::i;:::-;;:::i;2009:168::-;;;;;;:::i;:::-;;:::i;6898:186::-;;;;;;:::i;:::-;;:::i;1201:85:41:-;1273:6;;1201:85;;-1:-1:-1;;;;;1273:6:41;;;7459:51:103;;7447:2;7432:18;1201:85:41;7414:102:103;4611:157:83;;;;;;:::i;:::-;;:::i;4184:137::-;;;;;;:::i;:::-;;:::i;3762:416::-;;;;;;:::i;:::-;;:::i;3080:142::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;5644:176:83:-;;;;;;:::i;:::-;;:::i;6056:200::-;;;;;;:::i;:::-;;:::i;3228:153::-;;;;;;:::i;:::-;;:::i;2183:201::-;;;;;;:::i;:::-;;:::i;3562:174::-;;;;;;:::i;:::-;;:::i;5372:131::-;;;:::i;2846:207::-;;;;;;:::i;:::-;;:::i;2081:198:41:-;;;;;;:::i;:::-;;:::i;6706:186:83:-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;;;;;;;;;6852:9:::1;::::0;:33:::1;::::0;-1:-1:-1;;;6852:33:83;;-1:-1:-1;;;;;6852:9:83;;::::1;::::0;:24:::1;::::0;:33:::1;::::0;6877:7;;6852:33:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6706:186:::0;:::o;5509:129::-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5613:9:::1;;;;;;;;;-1:-1:-1::0;;;;;5613:9:83::1;-1:-1:-1::0;;;;;5613:16:83::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5509:129::o:0;2560:280::-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;2763:9:::1;::::0;:70:::1;::::0;-1:-1:-1;;;2763:70:83;;::::1;::::0;::::1;8437:25:103::0;;;8478:18;;;8471:34;;;-1:-1:-1;;;;;8541:32:103;;;8521:18;;;8514:60;2763:9:83;;;::::1;::::0;;::::1;::::0;:27:::1;::::0;8410:18:103;;2763:70:83::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2560:280:::0;;;:::o;2390:164::-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;2512:9:::1;::::0;:35:::1;::::0;-1:-1:-1;;;2512:35:83;;::::1;::::0;::::1;7667:25:103::0;;;2512:9:83;;;::::1;-1:-1:-1::0;;;;;2512:9:83::1;::::0;:20:::1;::::0;7640:18:103;;2512:35:83::1;7622:76:103::0;3387:169:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;3515:7:::1;::::0;:34:::1;::::0;-1:-1:-1;;;3515:34:83;;::::1;::::0;::::1;7877:25:103::0;;;-1:-1:-1;;;;;7938:32:103;;;7918:18;;;7911:60;3515:7:83;;::::1;::::0;:17:::1;::::0;7850:18:103;;3515:34:83::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3387:169:::0;;:::o;4845:221::-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5014:45:::1;::::0;-1:-1:-1;;;5014:45:83;;11795:2:103;5014:45:83::1;::::0;::::1;11777:21:103::0;11834:2;11814:18;;;11807:30;11873:34;11853:18;;;11846:62;-1:-1:-1;;;11924:18:103;;;11917:33;11967:19;;5014:45:83::1;11767:225:103::0;4470:135:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;4577:10:::1;::::0;:21:::1;::::0;-1:-1:-1;;;4577:21:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;4577:10:83;;::::1;::::0;:17:::1;::::0;7640:18:103;;4577:21:83::1;7622:76:103::0;4327:137:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;4435:10:::1;::::0;:22:::1;::::0;-1:-1:-1;;;4435:22:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;4435:10:83;;::::1;::::0;:18:::1;::::0;7640::103;;4435:22:83::1;7622:76:103::0;6262:434:83;6485:33;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6485:33:83;6541:9;;:148;;-1:-1:-1;;;6541:148:83;;-1:-1:-1;;;;;6541:9:83;;;;:32;;:148;;6587:11;;6612:8;;6634:13;;6661:18;;;;6541:148;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6541:148:83;;;;;;;;;;;;:::i;:::-;6534:155;6262:434;-1:-1:-1;;;;;;6262:434:83:o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;5128:219:83:-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5295:45:::1;::::0;-1:-1:-1;;;5295:45:83;;10618:2:103;5295:45:83::1;::::0;::::1;10600:21:103::0;10657:2;10637:18;;;10630:30;10696:34;10676:18;;;10669:62;-1:-1:-1;;;10747:18:103;;;10740:33;10790:19;;5295:45:83::1;10590:225:103::0;5826:224:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5981:9:::1;::::0;:62:::1;::::0;-1:-1:-1;;;5981:62:83;;::::1;::::0;::::1;7877:25:103::0;;;-1:-1:-1;;;;;7938:32:103;;;7918:18;;;7911:60;5981:9:83;;::::1;::::0;:27:::1;::::0;7850:18:103;;5981:62:83::1;7832:145:103::0;2009:168:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;2133:9:::1;::::0;:37:::1;::::0;-1:-1:-1;;;2133:37:83;;::::1;::::0;::::1;7667:25:103::0;;;2133:9:83;;;::::1;-1:-1:-1::0;;;;;2133:9:83::1;::::0;:24:::1;::::0;7640:18:103;;2133:37:83::1;7622:76:103::0;6898:186:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;7044:9:::1;::::0;:33:::1;::::0;-1:-1:-1;;;7044:33:83;;-1:-1:-1;;;;;7044:9:83;;::::1;::::0;:24:::1;::::0;:33:::1;::::0;7069:7;;7044:33:::1;;;:::i;4611:157::-:0;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;4719:10:::1;::::0;:42:::1;::::0;-1:-1:-1;;;4719:42:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;4719:10:83;;::::1;::::0;:38:::1;::::0;7640:18:103;;4719:42:83::1;7622:76:103::0;4184:137:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;4292:10:::1;::::0;:22:::1;::::0;-1:-1:-1;;;4292:22:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;4292:10:83;;::::1;::::0;:18:::1;::::0;7640::103;;4292:22:83::1;7622:76:103::0;3762:416:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;3869:10:::1;::::0;:22:::1;::::0;-1:-1:-1;;;3869:22:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;3869:10:83;;::::1;::::0;:18:::1;::::0;7640::103;;3869:22:83::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;3906:10:83::1;::::0;:24:::1;::::0;-1:-1:-1;;;3906:24:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;3906:10:83;;::::1;::::0;-1:-1:-1;3906:20:83::1;::::0;-1:-1:-1;7640:18:103;;3906:24:83::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3902:270;;;3969:10;::::0;:27:::1;::::0;-1:-1:-1;;;3969:27:83;;::::1;::::0;::::1;7667:25:103::0;;;3946:20:83::1;::::0;-1:-1:-1;;;;;3969:10:83::1;::::0;:23:::1;::::0;7640:18:103;;3969:27:83::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3946:50;;4010:16;4046:9;4010:47;;4072:5;;;;;;;;;-1:-1:-1::0;;;;;4072:5:83::1;-1:-1:-1::0;;;;;4072:27:83::1;;4117:2;4137:7;-1:-1:-1::0;;;;;4137:21:83::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4072:89;::::0;-1:-1:-1;;;;;;4072:89:83::1;::::0;;;;;;::::1;::::0;::::1;8156:25:103::0;;;;8197:18;;;8190:34;8129:18;;4072:89:83::1;8111:119:103::0;3902:270:83::1;3762:416:::0;:::o;3080:142::-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;3193:7:::1;::::0;:22:::1;::::0;-1:-1:-1;;;3193:22:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;3193:7:83;;::::1;::::0;:15:::1;::::0;7640:18:103;;3193:22:83::1;7622:76:103::0;1143:232:88;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;10203:2:103;3146:190:47;;;10185:21:103;10242:2;10222:18;;;10215:30;10281:34;10261:18;;;10254:62;-1:-1:-1;;;10332:18:103;;;10325:44;10386:19;;3146:190:47;10175:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;8737:36:103;;3531:14:47;;8725:2:103;8710:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;5644:176:83:-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5771:9:::1;::::0;:42:::1;::::0;-1:-1:-1;;;5771:42:83;;-1:-1:-1;;;;;7477:32:103;;;5771:42:83::1;::::0;::::1;7459:51:103::0;5771:9:83;;::::1;::::0;:27:::1;::::0;7432:18:103;;5771:42:83::1;7414:102:103::0;6056:200:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;6199:9:::1;::::0;:50:::1;::::0;-1:-1:-1;;;6199:50:83;;::::1;::::0;::::1;7877:25:103::0;;;-1:-1:-1;;;;;7938:32:103;;;7918:18;;;7911:60;6199:9:83;;::::1;::::0;:25:::1;::::0;7850:18:103;;6199:50:83::1;7832:145:103::0;3228:153:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;3345:7:::1;::::0;:29:::1;::::0;-1:-1:-1;;;3345:29:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;3345:7:83;;::::1;::::0;:22:::1;::::0;7640:18:103;;3345:29:83::1;7622:76:103::0;2183:201:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;2326:9:::1;::::0;:51:::1;::::0;-1:-1:-1;;;2326:51:83;;::::1;::::0;::::1;7877:25:103::0;;;-1:-1:-1;;;;;7938:32:103;;;7918:18;;;7911:60;2326:9:83;;;::::1;::::0;;::::1;::::0;:18:::1;::::0;7850::103;;2326:51:83::1;7832:145:103::0;3562:174:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;3694:7:::1;::::0;:35:::1;::::0;-1:-1:-1;;;3694:35:83;;::::1;::::0;::::1;7877:25:103::0;;;-1:-1:-1;;;;;7938:32:103;;;7918:18;;;7911:60;3694:7:83;;::::1;::::0;:18:::1;::::0;7850::103;;3694:35:83::1;7832:145:103::0;5372:131:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5477:9:::1;;;;;;;;;-1:-1:-1::0;;;;;5477:9:83::1;-1:-1:-1::0;;;;;5477:17:83::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;2846:207:::0;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;2992:9:::1;::::0;:54:::1;::::0;-1:-1:-1;;;2992:54:83;;::::1;::::0;::::1;8156:25:103::0;;;8197:18;;;8190:34;;;2992:9:83;;;::::1;-1:-1:-1::0;;;;;2992:9:83::1;::::0;:29:::1;::::0;8129:18:103;;2992:54:83::1;8111:119:103::0;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;9392:2:103;2161:73:41::1;::::0;::::1;9374:21:103::0;9431:2;9411:18;;;9404:30;9470:34;9450:18;;;9443:62;-1:-1:-1;;;9521:18:103;;;9514:36;9567:19;;2161:73:41::1;9364:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;1359:130::-:0;1273:6;;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;11022:2:103;1414:68:41;;;11004:21:103;;;11041:18;;;11034:30;11100:34;11080:18;;;11073:62;11152:18;;1414:68:41;10994:182:103;2433:187:41;2525:6;;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;7667:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;7640:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;8986:2:103;1703:113:88;;;8968:21:103;9025:2;9005:18;;;8998:30;9064:34;9044:18;;;9037:62;-1:-1:-1;;;9115:18:103;;;9108:35;9160:19;;1703:113:88;8958:227:103;1155:393:83;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;11383:2:103;4880:69:47;;;11365:21:103;11422:2;11402:18;;;11395:30;11461:34;11441:18;;;11434:62;-1:-1:-1;;;11512:18:103;;;11505:41;11563:19;;4880:69:47;11355:233:103;4880:69:47;1261:32:83::1;-1:-1:-1::0;;;1261:19:83::1;:32::i;:::-;1228:10;:66:::0;;-1:-1:-1;;;;;;1228:66:83::1;-1:-1:-1::0;;;;;1228:66:83;;;::::1;::::0;;;::::1;::::0;;1327:27:::1;-1:-1:-1::0;;;1327:19:83::1;:27::i;:::-;1304:5;:51:::0;;-1:-1:-1;;;;;;1304:51:83::1;-1:-1:-1::0;;;;;1304:51:83;;;::::1;::::0;;;::::1;::::0;;1392:31:::1;-1:-1:-1::0;;;1392:19:83::1;:31::i;:::-;1365:9;:59:::0;;-1:-1:-1;;;;;;1365:59:83::1;-1:-1:-1::0;;;;;1365:59:83;;;::::1;::::0;;;::::1;::::0;;1435:32:::1;1454:12;719:10:59::0;640:96;;1454:12:83::1;1435:18;:32::i;:::-;1477;:30;:32::i;:::-;1519:22;:20;:22::i;1741:243::-:0;1801:17;1833:34;-1:-1:-1;;;1833:19:83;:34::i;:::-;1801:67;;1878:21;1902:29;-1:-1:-1;;;1902:19:83;:29::i;:::-;1941:36;;-1:-1:-1;;;1941:36:83;;-1:-1:-1;;;;;7477:32:103;;;1941:36:83;;;7459:51:103;1878:53:83;;-1:-1:-1;1941:21:83;;;;;;7432:18:103;;1941:36:83;7414:102:103;1554:181:83;1604:23;1647:29;-1:-1:-1;;;1647:19:83;:29::i;:::-;1687:41;;-1:-1:-1;;;1687:41:83;;1722:4;1687:41;;;7459:51:103;1604:73:83;;-1:-1:-1;;;;;;1687:26:83;;;;;7432:18:103;;1687:41:83;7414:102:103;14:375;;;129:3;122:4;114:6;110:17;106:27;96:2;;154:8;144;137:26;96:2;-1:-1:-1;184:20:103;;227:18;216:30;;213:2;;;266:8;256;249:26;213:2;310:4;302:6;298:17;286:29;;362:3;355:4;346:6;338;334:19;330:30;327:39;324:2;;;379:1;376;369:12;324:2;86:303;;;;;:::o;394:512::-;;500:3;493:4;485:6;481:17;477:27;467:2;;522:5;515;508:20;467:2;555:6;549:13;581:18;577:2;574:26;571:2;;;603:18;;:::i;:::-;647:55;690:2;671:13;;-1:-1:-1;;667:27:103;696:4;663:38;647:55;:::i;:::-;727:2;718:7;711:19;773:3;766:4;761:2;753:6;749:15;745:26;742:35;739:2;;;794:5;787;780:20;739:2;811:64;872:2;865:4;856:7;852:18;845:4;837:6;833:17;811:64;:::i;:::-;893:7;457:449;-1:-1:-1;;;;457:449:103:o;911:257::-;;1023:2;1011:9;1002:7;998:23;994:32;991:2;;;1044:6;1036;1029:22;991:2;1088:9;1075:23;1107:31;1132:5;1107:31;:::i;:::-;1157:5;981:187;-1:-1:-1;;;981:187:103:o;1173:261::-;;1296:2;1284:9;1275:7;1271:23;1267:32;1264:2;;;1317:6;1309;1302:22;1264:2;1354:9;1348:16;1373:31;1398:5;1373:31;:::i;1439:297::-;;1559:2;1547:9;1538:7;1534:23;1530:32;1527:2;;;1580:6;1572;1565:22;1527:2;1617:9;1611:16;1670:5;1663:13;1656:21;1649:5;1646:32;1636:2;;1697:6;1689;1682:22;1741:190;;1853:2;1841:9;1832:7;1828:23;1824:32;1821:2;;;1874:6;1866;1859:22;1821:2;-1:-1:-1;1902:23:103;;1811:120;-1:-1:-1;1811:120:103:o;1936:325::-;;;2065:2;2053:9;2044:7;2040:23;2036:32;2033:2;;;2086:6;2078;2071:22;2033:2;2127:9;2114:23;2104:33;;2187:2;2176:9;2172:18;2159:32;2200:31;2225:5;2200:31;:::i;:::-;2250:5;2240:15;;;2023:238;;;;;:::o;2266:258::-;;;2395:2;2383:9;2374:7;2370:23;2366:32;2363:2;;;2416:6;2408;2401:22;2363:2;-1:-1:-1;;2444:23:103;;;2514:2;2499:18;;;2486:32;;-1:-1:-1;2353:171:103:o;2529:393::-;;;;2675:2;2663:9;2654:7;2650:23;2646:32;2643:2;;;2696:6;2688;2681:22;2643:2;2737:9;2724:23;2714:33;;2794:2;2783:9;2779:18;2766:32;2756:42;;2848:2;2837:9;2833:18;2820:32;2861:31;2886:5;2861:31;:::i;:::-;2911:5;2901:15;;;2633:289;;;;;:::o;3212:426::-;;3360:2;3348:9;3339:7;3335:23;3331:32;3328:2;;;3381:6;3373;3366:22;3328:2;3426:9;3413:23;3459:18;3451:6;3448:30;3445:2;;;3496:6;3488;3481:22;3445:2;3524:22;;3580:3;3562:16;;;3558:26;3555:2;;;3602:6;3594;3587:22;3643:923;;3800:2;3788:9;3779:7;3775:23;3771:32;3768:2;;;3821:6;3813;3806:22;3768:2;3859:9;3853:16;3888:18;3929:2;3921:6;3918:14;3915:2;;;3950:6;3942;3935:22;3915:2;3978:22;;;;4034:4;4016:16;;;4012:27;4009:2;;;4057:6;4049;4042:22;4009:2;4088:21;4104:4;4088:21;:::i;:::-;4138:2;4132:9;4125:5;4118:24;4188:2;4184;4180:11;4174:18;4169:2;4162:5;4158:14;4151:42;4239:2;4235;4231:11;4225:18;4220:2;4213:5;4209:14;4202:42;4283:2;4279;4275:11;4269:18;4312:2;4302:8;4299:16;4296:2;;;4333:6;4325;4318:22;4296:2;4374:55;4421:7;4410:8;4406:2;4402:17;4374:55;:::i;:::-;4369:2;4362:5;4358:14;4351:79;;4477:3;4473:2;4469:12;4463:19;4457:3;4450:5;4446:15;4439:44;4530:3;4526:2;4522:12;4516:19;4510:3;4503:5;4499:15;4492:44;4555:5;4545:15;;;;;3758:808;;;;:::o;4571:599::-;;;;4718:2;4706:9;4697:7;4693:23;4689:32;4686:2;;;4739:6;4731;4724:22;4686:2;4783:9;4770:23;4833:6;4826:5;4822:18;4815:5;4812:29;4802:2;;4860:6;4852;4845:22;4802:2;4888:5;-1:-1:-1;4944:2:103;4929:18;;4916:32;4971:18;4960:30;;4957:2;;;5008:6;5000;4993:22;4957:2;5052:58;5102:7;5093:6;5082:9;5078:22;5052:58;:::i;:::-;4676:494;;5129:8;;-1:-1:-1;5026:84:103;;-1:-1:-1;;;;4676:494:103:o;5370:194::-;;5493:2;5481:9;5472:7;5468:23;5464:32;5461:2;;;5514:6;5506;5499:22;5461:2;-1:-1:-1;5542:16:103;;5451:113;-1:-1:-1;5451:113:103:o;5569:325::-;;;5698:2;5686:9;5677:7;5673:23;5669:32;5666:2;;;5719:6;5711;5704:22;5899:497;;;;6047:2;6035:9;6026:7;6022:23;6018:32;6015:2;;;6068:6;6060;6053:22;6015:2;6109:9;6096:23;6086:33;;6170:2;6159:9;6155:18;6142:32;6197:18;6189:6;6186:30;6183:2;;;6234:6;6226;6219:22;6401:634;;;;;;6583:3;6571:9;6562:7;6558:23;6554:33;6551:2;;;6605:6;6597;6590:22;6551:2;6646:9;6633:23;6623:33;;6703:2;6692:9;6688:18;6675:32;6665:42;;6754:2;6743:9;6739:18;6726:32;6716:42;;6809:2;6798:9;6794:18;6781:32;6836:18;6828:6;6825:30;6822:2;;;6873:6;6865;6858:22;6822:2;6917:58;6967:7;6958:6;6947:9;6943:22;6917:58;:::i;:::-;6541:494;;;;-1:-1:-1;6541:494:103;;-1:-1:-1;6994:8:103;;6891:84;6541:494;-1:-1:-1;;;6541:494:103:o;7040:268::-;;7128:6;7123:3;7116:19;7180:6;7173:5;7166:4;7161:3;7157:14;7144:43;7232:3;7225:4;7216:6;7211:3;7207:16;7203:27;7196:40;7297:4;7290:2;7286:7;7281:2;7273:6;7269:15;7265:29;7260:3;7256:39;7252:50;7245:57;;7106:202;;;;;:::o;9597:399::-;9799:2;9781:21;;;9838:2;9818:18;;;9811:30;9877:34;9872:2;9857:18;;9850:62;-1:-1:-1;;;9943:2:103;9928:18;;9921:33;9986:3;9971:19;;9771:225::o;11997:1100::-;;12196:2;12185:9;12178:21;12248:6;12235:20;12230:2;12219:9;12215:18;12208:48;12317:2;12309:6;12305:15;12292:29;12287:2;12276:9;12272:18;12265:57;12383:2;12375:6;12371:15;12358:29;12353:2;12342:9;12338:18;12331:57;12448:2;12440:6;12436:15;12423:29;12532:2;12528:7;12519:6;12503:14;12499:27;12495:41;12475:18;12471:66;12461:2;;12554:4;12548;12541:18;12461:2;12583:31;;12637:19;;12679:18;12668:30;;12665:2;;;12714:4;12708;12701:18;12665:2;12765:6;12749:14;12745:27;12737:6;12733:40;12730:2;;;12789:4;12783;12776:18;12730:2;12833:4;12827:3;12816:9;12812:19;12805:33;12861:70;12926:3;12915:9;12911:19;12903:6;12898:2;12891:5;12887:14;12861:70;:::i;:::-;12847:84;;;12993:3;12985:6;12981:16;12968:30;12962:3;12951:9;12947:19;12940:59;13062:3;13054:6;13050:16;13037:30;13030:4;13019:9;13015:20;13008:60;13085:6;13077:14;;;12168:929;;;;:::o;13102:850::-;;13299:2;13288:9;13281:21;13344:6;13338:13;13333:2;13322:9;13318:18;13311:41;13406:2;13398:6;13394:15;13388:22;13383:2;13372:9;13368:18;13361:50;13465:2;13457:6;13453:15;13447:22;13442:2;13431:9;13427:18;13420:50;13517:2;13509:6;13505:15;13499:22;13558:4;13552:3;13541:9;13537:19;13530:33;13592:12;13586:19;13642:6;13636:3;13625:9;13621:19;13614:35;13668:3;13680:72;13745:6;13740:2;13729:9;13725:18;13720:2;13706:12;13702:21;13680:72;:::i;:::-;13807:3;13795:16;;13789:23;13783:3;13768:19;;;13761:52;;;;13857:16;;;13851:23;13844:4;13829:20;;13822:53;13936:2;13915:15;-1:-1:-1;;13911:29:103;13896:45;;;13892:54;;;;13271:681;-1:-1:-1;;13271:681:103:o;14671:459::-;;14912:6;14901:9;14894:25;14955:6;14950:2;14939:9;14935:18;14928:34;14998:6;14993:2;14982:9;14978:18;14971:34;15041:3;15036:2;15025:9;15021:18;15014:31;15062:62;15119:3;15108:9;15104:19;15096:6;15088;15062:62;:::i;:::-;15054:70;14884:246;-1:-1:-1;;;;;;;14884:246:103:o;15135:275::-;15206:2;15200:9;15271:2;15252:13;;-1:-1:-1;;15248:27:103;15236:40;;15306:18;15291:34;;15327:22;;;15288:62;15285:2;;;15353:18;;:::i;:::-;15389:2;15382:22;15180:230;;-1:-1:-1;15180:230:103:o;15415:258::-;15487:1;15497:113;15511:6;15508:1;15505:13;15497:113;;;15587:11;;;15581:18;15568:11;;;15561:39;15533:2;15526:10;15497:113;;;15628:6;15625:1;15622:13;15619:2;;;-1:-1:-1;;15663:1:103;15645:16;;15638:27;15468:205::o;15678:127::-;15739:10;15734:3;15730:20;15727:1;15720:31;15770:4;15767:1;15760:15;15794:4;15791:1;15784:15;15810:131;-1:-1:-1;;;;;15885:31:103;;15875:42;;15865:2;;15931:1;15928;15921:12"},"methodIdentifiers":{"adjustStakingRequirements(uint256,bytes)":"72beb6fb","approve(uint256)":"b759f954","archive(uint256)":"93c829fc","createFeeSpecification(uint256,uint256,uint256,bytes)":"62f0ab55","createRole(bytes32)":"c42994a2","decline(uint256)":"a0355f4e","deregister(bytes32)":"20813154","deregisterInRelease(bytes32,bytes32)":"dc527b08","grantRole(bytes32,address)":"2f2ff15d","initialize(address)":"c4d66de8","invalidateRole(bytes32)":"d17d0233","owner()":"8da5cb5b","prepareRelease(bytes32)":"893917ea","register(bytes32,address)":"d22057a9","registerInRelease(bytes32,bytes32,address)":"1d5e7314","renounceOwnership()":"715018a6","resume(uint256)":"414000b5","resumeTreasury()":"10a81c4a","revokeRole(bytes32,address)":"d547741f","setCapitalFees((uint256,uint256,uint256,bytes,uint256,uint256))":"8ca946aa","setDefaultStaking(uint16,bytes)":"394c78ba","setInstanceWallet(address)":"cab2504d","setPremiumFees((uint256,uint256,uint256,bytes,uint256,uint256))":"01132a7f","setProductToken(uint256,address)":"cc9cf8cd","setRiskpoolWallet(uint256,address)":"86039aed","suspend(uint256)":"4b865846","suspendTreasury()":"d5fe1f10","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"adjustStakingRequirements\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"}],\"name\":\"createFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"createRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregisterInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"invalidateRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newRelease\",\"type\":\"bytes32\"}],\"name\":\"prepareRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"registerInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setCapitalFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"componentType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDefaultStaking\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"setInstanceWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setPremiumFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"setProductToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"}],\"name\":\"setRiskpoolWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"suspend\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/InstanceOperatorService.sol\":\"InstanceOperatorService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Product.sol\":{\"keccak256\":\"0xdf55ff9638da4db1501362fc2ffcd26858b7c09b7cc5e0701f1bb31081142815\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fdbfbd830dafe0d721150778469cbbdf01058f8713c3636d2ba48234761e8590\",\"dweb:/ipfs/QmZ9K5X2ant5TtUhA9kgXUAMe7y9MUHpnv3PQUKAmxwVYj\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/AccessController.sol\":{\"keccak256\":\"0xc8293dfdc5c092e2fcea16d8a68117c9367dd09b3d951b5e730a588652212928\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://91e551839506ea79fadff0e2ea72c033c5d68d61a8414301307a172dc770f885\",\"dweb:/ipfs/QmWibGimWPLxXgNcpKUPidyTTBqvyjdV2dnQfNGfWMDgJ8\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/modules/TreasuryModule.sol\":{\"keccak256\":\"0x5b816938607e52b8e3811a426b7c31377109b12c665d3889bdc0fc38b5d1039c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81900732664f85ed367e3c78020bc2bd78e8521dd928f3fd5bcd39ce0ce1dcf0\",\"dweb:/ipfs/QmPcRYLq6SJvZkMnoSZAocCKw9m83oXezNaDsmHJ6UWr4E\"]},\"contracts/services/InstanceOperatorService.sol\":{\"keccak256\":\"0xc81b4b5142137add01ca290d8ebfa560b487c73a074df4d914ad734f047bfba2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8a2679741b690346dc2d2488d5a57693fe5a080882a78b5cfccc68258a710e5f\",\"dweb:/ipfs/QmUGDdo53xM1iWVcZ9MtYBb5LYXXemS6vfwnpXSGcuJEL8\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/test/TestProduct.sol\":{\"keccak256\":\"0x2e678b5aa5698dcd7869eef379bfd156677dd4f5ece499e0dcc29614437e58a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://87e6535b924036b2b8d08c516519de66ea362dec109249675acc95471cb71989\",\"dweb:/ipfs/QmVnFPF4u2XZPHXSkqQD5qPDMnDPAYoDwjquVTrUnXVxh7\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/services/InstanceService.sol":{"InstanceService":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"BUNDLE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COMPONENT_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COMPONENT_OWNER_SERVICE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INSTANCE_OPERATOR_SERVICE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE_SERVICE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POLICY_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POOL_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRODUCT_SERVICE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISKPOOL_SERVICE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TREASURY_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"numberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"claims","outputs":[{"internalType":"uint256","name":"numberOfClaims","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"contractName","outputs":[{"internalType":"bytes32","name":"name","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contracts","outputs":[{"internalType":"uint256","name":"numberOfContracts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"bundleIdx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getApplication","outputs":[{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"balanceAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBundleToken","outputs":[{"internalType":"contract IBundleToken","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"capacityAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getCapital","outputs":[{"internalType":"uint256","name":"capitalAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainName","outputs":[{"internalType":"string","name":"chainName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"getClaim","outputs":[{"components":[{"internalType":"enum IPolicy.ClaimState","name":"state","type":"uint8"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"uint256","name":"paidAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Claim","name":"claim","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getComponent","outputs":[{"internalType":"contract IComponent","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"componentAddress","type":"address"}],"name":"getComponentId","outputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentOwnerService","outputs":[{"internalType":"contract IComponentOwnerService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"componentState","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDefaultAdminRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeFractionFullUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceId","outputs":[{"internalType":"bytes32","name":"instanceId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceOperator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceOperatorService","outputs":[{"internalType":"contract IInstanceOperatorService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"bpKey","type":"bytes32"}],"name":"getMetadata","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Metadata","name":"metadata","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getOracleId","outputs":[{"internalType":"uint256","name":"oracleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleProviderRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleService","outputs":[{"internalType":"contract IOracleService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"getPayout","outputs":[{"components":[{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"enum IPolicy.PayoutState","name":"state","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Payout","name":"payout","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getPolicy","outputs":[{"components":[{"internalType":"enum IPolicy.PolicyState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"},{"internalType":"uint256","name":"premiumPaidAmount","type":"uint256"},{"internalType":"uint256","name":"claimsCount","type":"uint256"},{"internalType":"uint256","name":"openClaimsCount","type":"uint256"},{"internalType":"uint256","name":"payoutMaxAmount","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Policy","name":"policy","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getProductId","outputs":[{"internalType":"uint256","name":"productId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProductOwnerRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProductService","outputs":[{"internalType":"contract IProductService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpool","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredAtRisk","type":"uint256"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPool.Pool","name":"riskPool","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolKeeperRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolService","outputs":[{"internalType":"contract IRiskpoolService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpoolWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getStakedAssets","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getStakingRequirements","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"totalValueLockedAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTreasuryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"oracles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"payouts","outputs":[{"internalType":"uint256","name":"numberOfPayouts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processIds","outputs":[{"internalType":"uint256","name":"numberOfProcessIds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"products","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"riskpools","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"unburntBundles","outputs":[{"internalType":"uint256","name":"numberOfUnburntBundles","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612ebd80620000f46000396000f3fe608060405234801561001057600080fd5b50600436106103e65760003560e01c80637f22c2d91161020a578063c4d66de811610125578063e543ecb9116100b8578063ec833b0c11610087578063ec833b0c14610894578063eff0f592146108a7578063f1d354d0146108ba578063f6b3e7d0146108c2578063ff3f3883146108d5576103e6565b8063e543ecb91461083b578063e882892214610854578063eb35783c1461086c578063eb80211414610874576103e6565b8063d49d21c0116100f4578063d49d21c0146107fa578063d722b0bc14610802578063dd51c86a1461080a578063e00246041461082a576103e6565b8063c4d66de8146107aa578063c559783e146107bf578063c71e261f146107d2578063cef58f13146107da576103e6565b8063a44330c41161019d578063ab9c6ee41161016c578063ab9c6ee41461075e578063aeddb90514610771578063bc506f6414610784578063bcd5349f14610797576103e6565b8063a44330c41461071b578063a5961b4c14610723578063a5c0f5a114610743578063a7ecda3614610756576103e6565b8063a3f66bd2116101d9578063a3f66bd2146106bf578063a3f685f9146106e0578063a4266a6614610700578063a427056e14610713576103e6565b80637f22c2d91461066157806391d14854146106815780639f77a605146106a4578063a054381f146106b7576103e6565b80633ffdd2f31161030557806352b5b0ef116102985780636319112b116102675780636319112b1461062e5780636c0f79b6146106365780636fa298531461063e578063775a4048146106465780637db328441461064e576103e6565b806352b5b0ef146105c75780635ab1bd53146105e65780635e6877be146105fe5780635e966e451461060e576103e6565b80634f27da18116102d45780634f27da181461058757806350e1a19b1461059a57806351b2fb90146105ac57806352a9c8d7146105bf576103e6565b80633ffdd2f31461055c5780634288121d14610564578063442ed8171461056c5780634908163714610574576103e6565b80632898312f1161037d5780633408e4701161034c5780633408e4701461051b57806339c6fa90146105215780633a42b053146105295780633f5d923514610549576103e6565b80632898312f146104be57806329560980146104d55780632b1c7f73146104e85780632d0821b7146104fb576103e6565b806318442e63116103b957806318442e631461048b57806318ff21c3146104935780631e010439146104a35780632857373a146104b6576103e6565b8063038696bb146103eb578063091924dc1461041b5780630c131757146104235780631551100f1461043f575b600080fd5b6103fe6103f93660046125e1565b6108e8565b6040516001600160a01b0390911681526020015b60405180910390f35b6103fe61096e565b61043163141bdbdb60e21b81565b604051908152602001610412565b61043160008054604080514660208201526201000090920460601b6bffffffffffffffffffffffff19169082015260540160405160208183030381529060405280519060200120905090565b610431610998565b61043165506f6c69637960d01b81565b6104316104b13660046125e1565b610a15565b610431610a9e565b6104316c4f7261636c655365727669636560981b81565b6104316104e33660046125e1565b610ae3565b6104316104f6366004612589565b610b6b565b61050e6105093660046125e1565b610bea565b6040516104129190612b14565b46610431565b6103fe610c72565b61053c6105373660046125e1565b610d11565b6040516104129190612a75565b6104316105573660046125e1565b610d6c565b610431610df4565b6103fe610e39565b6103fe610e55565b6103fe6105823660046125e1565b610e72565b6103fe6105953660046125e1565b610ea4565b61043167547265617375727960c01b81565b6104316810dbdb5c1bdb995b9d60ba1b81565b610431610ed6565b61043174436f6d706f6e656e744f776e65725365727669636560581b81565b6103fe6000546201000090046001600160a01b031690565b6104316542756e646c6560d01b81565b61062161061c3660046125e1565b610f1b565b6040516104129190612a88565b610431610f98565b610431610fdd565b6103fe61102c565b61043161104f565b61043161065c3660046125e1565b611094565b61067461066f366004612640565b6110c6565b6040516104129190612aaf565b61069461068f366004612611565b61118c565b6040519015158152602001610412565b6104316106b23660046125e1565b611211565b610431611243565b61043176496e7374616e63654f70657261746f725365727669636560481b81565b6106f36106ee3660046125e1565b611288565b6040516104129190612c44565b61043161070e3660046125e1565b611353565b610431611385565b6103fe6113d5565b6107366107313660046125e1565b611452565b6040516104129190612bab565b6104316107513660046125e1565b611509565b6103fe61153b565b61053c61076c3660046125e1565b611556565b61043161077f3660046125e1565b6115ac565b6106746107923660046125e1565b6115e0565b6104316107a53660046125e1565b611698565b6107bd6107b8366004612589565b611730565b005b6104316107cd3660046125e1565b6118ae565b6104316118e0565b6107ed6107e8366004612640565b611925565b6040516104129190612bf8565b6104316119e4565b61053c611a29565b61081d6108183660046125e1565b611aca565b6040516104129190612aa2565b6006546001600160a01b03166103fe565b6104316e5269736b706f6f6c5365727669636560881b81565b6104316d50726f647563745365727669636560901b81565b6103fe611b47565b6108876108823660046125e1565b611bd6565b6040516104129190612cb1565b6104316108a2366004612640565b611cc2565b6104316108b53660046125e1565b611d46565b610431611d7a565b6104316108d03660046125e1565b611dbf565b6104316108e33660046125e1565b611df6565b60065460405163038696bb60e01b8152600481018390526000916001600160a01b03169063038696bb906024015b60206040518083038186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125a5565b90505b919050565b600061099376496e7374616e63654f70657261746f725365727669636560481b611e2b565b905090565b600254604080516318442e6360e01b815290516000926001600160a01b0316916318442e63916004808301926020929190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125f9565b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610a5b57600080fd5b505afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a939190612998565b610100015192915050565b6003546040805163142b9b9d60e11b815290516000926001600160a01b031691632857373a916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610b2957600080fd5b505afa158015610b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b619190612998565b60c0015192915050565b600354604051632b1c7f7360e01b81526001600160a01b0383811660048301526000921690632b1c7f73906024015b60206040518083038186803b158015610bb257600080fd5b505afa158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125f9565b610bf26123f3565b600254604051632d0821b760e01b8152600481018490526001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3657600080fd5b505afa158015610c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109669190810190612747565b600080610c9876496e7374616e63654f70657261746f725365727669636560481b611e2b565b9050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd357600080fd5b505afa158015610ce7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0b91906125a5565b91505090565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030323a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b60648201526060906084015b60405180910390fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610db257600080fd5b505afa158015610dc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dea9190612998565b60e0015192915050565b60015460408051633ffdd2f360e01b815290516000926001600160a01b031691633ffdd2f3916004808301926020929190829003018186803b1580156109dd57600080fd5b60006109936d50726f647563745365727669636560901b611e2b565b60006109936e5269736b706f6f6c5365727669636560881b611e2b565b600654604051634908163760e01b8152600481018390526000916001600160a01b031690634908163790602401610916565b6003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da1890602401610916565b600154604080516352a9c8d760e01b815290516000926001600160a01b0316916352a9c8d7916004808301926020929190829003018186803b1580156109dd57600080fd5b600354604051635e966e4560e01b8152600481018390526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610f6057600080fd5b505afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612661565b60065460408051634667ae5160e11b815290516000926001600160a01b031691638ccf5ca2916004808301926020929190829003018186803b1580156109dd57600080fd5b60008060029054906101000a90046001600160a01b03166001600160a01b0316636c0f79b66040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b600061099374436f6d706f6e656e744f776e65725365727669636560581b611e2b565b60015460408051630eeb480960e31b815290516000926001600160a01b03169163775a4048916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051631f6cca1160e21b8152600481018390526000916001600160a01b031690637db3284490602401610b9a565b6111006040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051637f22c2d960e01b8152918201859052602482018490526001600160a01b031690637f22c2d99060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611185919081019061269c565b9392505050565b600154604051632474521560e21b8152600481018490526001600160a01b03838116602483015260009216906391d148549060440160206040518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125c1565b600354604051639f77a60560e01b8152600481018390526000916001600160a01b031690639f77a60590602401610b9a565b6003546040805163a054381f60e01b815290516000926001600160a01b03169163a054381f916004808301926020929190829003018186803b1580156109dd57600080fd5b6112d8604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6004805460405163a3f685f960e01b81529182018490526001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612913565b600554604051635213353360e11b8152600481018390526000916001600160a01b03169063a4266a6690602401610b9a565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663a427056e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b60065460408051632910cc3160e21b815290516000926001600160a01b03169163a44330c4916004808301926020929190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125a5565b61148b6040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b6004805460405163296586d360e21b81529182018490526001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061281b565b60035460405163a5c0f5a160e01b8152600481018390526000916001600160a01b03169063a5c0f5a190602401610b9a565b60006109936c4f7261636c655365727669636560981b611e2b565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030313a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b6064820152606090608401610d63565b6004805460405163be183b1160e01b81529182018390526000916001600160a01b039091169063be183b1190602401610b9a565b61161a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051632f141bd960e21b81529182018490526001600160a01b03169063bc506f649060240160006040518083038186803b15801561165c57600080fd5b505afa158015611670573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061269c565b600554604051633ae0084560e21b81526004810183905260009182916001600160a01b039091169063eb802114906024016101606040518083038186803b1580156116e257600080fd5b505afa1580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a9190612998565b90508060e001518160c001516111859190612d7e565b600054610100900460ff16158080156117505750600054600160ff909116105b8061176a5750303b15801561176a575060005460ff166001145b6117cd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d63565b6000805460ff1916600117905580156117f0576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561181a600090565b6541636365737360d01b1461185c5761183b6541636365737360d01b611e2b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611864611f13565b80156118aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516362acbc1f60e11b8152600481018390526000916001600160a01b03169063c559783e90602401610b9a565b6003546040805163c71e261f60e01b815290516000926001600160a01b03169163c71e261f916004808301926020929190829003018186803b1580156109dd57600080fd5b61195f6040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6004805460405163cef58f1360e01b8152918201859052602482018490526001600160a01b03169063cef58f139060440160006040518083038186803b1580156119a857600080fd5b505afa1580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111859190810190612899565b60015460408051630352748760e61b815290516000926001600160a01b03169163d49d21c0916004808301926020929190829003018186803b1580156109dd57600080fd5b466000908152600760205260409020805460609190611a4790612dd1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7390612dd1565b8015611ac05780601f10611a9557610100808354040283529160200191611ac0565b820191906000526020600020905b815481529060010190602001808311611aa357829003601f168201915b5050505050905090565b600354604051636ea8e43560e11b8152600481018390526000916001600160a01b03169063dd51c86a9060240160206040518083038186803b158015611b0f57600080fd5b505afa158015611b23573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612680565b600080600260009054906101000a90046001600160a01b03166001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906125a5565b92915050565b611c456040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600554604051633ae0084560e21b8152600481018490526001600160a01b039091169063eb802114906024016101606040518083038186803b158015611c8a57600080fd5b505afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612998565b600554604051633b20cec360e21b815260048101849052602481018390526000916001600160a01b03169063ec833b0c9060440160206040518083038186803b158015611d0e57600080fd5b505afa158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125f9565b6004805460405163163c4b3160e31b81529182018390526000916001600160a01b039091169063b1e2598890602401610b9a565b60055460408051630f1d354d60e41b815290516000926001600160a01b03169163f1d354d0916004808301926020929190829003018186803b1580156109dd57600080fd5b60008054604051630f6b3e7d60e41b815260048101849052620100009091046001600160a01b03169063f6b3e7d090602401610b9a565b600354604051600162c0c77d60e01b03198152600481018390526000916001600160a01b03169063ff3f388390602401610b9a565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611e7557600080fd5b505afa158015611e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ead91906125a5565b90506001600160a01b0381166109695760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610d63565b600054610100900460ff16611f7e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610d63565b611f906542756e646c6560d01b611e2b565b600280546001600160a01b0319166001600160a01b0392909216919091179055611fc56810dbdb5c1bdb995b9d60ba1b611e2b565b600380546001600160a01b0319166001600160a01b0392909216919091179055611ff765506f6c69637960d01b611e2b565b600480546001600160a01b0319166001600160a01b039290921691909117905561202763141bdbdb60e21b611e2b565b600580546001600160a01b0319166001600160a01b039290921691909117905561205b67547265617375727960c01b611e2b565b600680546001600160a01b0319166001600160a01b0392909216919091179055612083612085565b565b60408051808201909152601481527308ae8d0cae4caeada409ac2d2dcdccae85e8aa8960631b602080830191825260016000526007905290516120e9917fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82891612465565b5060408051808201909152600a81526908edecae4d8d25e8aa8960b31b60208083019182526005600052600790529051612144917fbcdda56b5d08466ec462cbbe0adfa57cb0a15fcc8940ef68f702f21b787bc93591612465565b506040805180820190915260078082526647616e6163686560c81b602080840191825261053960005291909152905161219e917f96a76633116ac3161b66b4be70f114c9a245f4bbf414dc7a4d0edce8c01734cf91612465565b5060408051808201909152600b81526a476e6f7369732f7844616960a81b602080830191825260646000526007905290516121fa917f06179e496907eb3333fef2ed2194553681badbb6d717316349bf33d21ec47e1291612465565b5060408051808201909152600a815269536f6b6f6c2f53504f4160b01b6020808301918252604d600052600790529051612255917f58f3d94c4a880e721e755344405d3fe6076875bf5b3ad388d0a326a85bcabfb591612465565b50604080518082019091526015815274506f6c79676f6e204d61696e6e65742f4d4154494360581b602080830191825260896000526007905290516122bb917f65420a8d28339aeca441a0c94a464f6387b468f3f5ea5c247a6df59a5f7b886691612465565b5060408051808201909152600c81526b4d756d6261692f4d4154494360a01b6020808301918252611f41600052600790529051612319917f4d67172c71df6b75e948764b65521db84c0c61e94d5f3739b666417e9471e58491612465565b50604080518082019091526016815275082ecc2d8c2dcc6d0ca40865a86d0c2d2dc5e82ac82b60531b602080830191825261a86a600052600790529051612381917fa4356065248d86930c73e944e85f9d029fb0f52c0b8312d1a61bfbc9797ef51491612465565b5060408051808201909152601b81527f4176616c616e6368652046756a6920546573746e65742f415641580000000000602080830191825261a8696000526007905290516123f0917f57a00da22bfc0a372532b5dfacb7ddf387626f66de87422d191e09ea7493495691612465565b50565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561243557634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461247190612dd1565b90600052602060002090601f01602090048101928261249357600085556124d9565b82601f106124ac57805160ff19168380011785556124d9565b828001600101855582156124d9579182015b828111156124d95782518255916020019190600101906124be565b506124e59291506124e9565b5090565b5b808211156124e557600081556001016124ea565b805161096981612e58565b600082601f830112612519578081fd5b815167ffffffffffffffff81111561253357612533612e22565b612546601f8201601f1916602001612d4d565b81815284602083860101111561255a578283fd5b61256b826020830160208701612da1565b949350505050565b805161096981612e6d565b805161096981612e7a565b60006020828403121561259a578081fd5b813561118581612e58565b6000602082840312156125b6578081fd5b815161118581612e58565b6000602082840312156125d2578081fd5b81518015158114611185578182fd5b6000602082840312156125f2578081fd5b5035919050565b60006020828403121561260a578081fd5b5051919050565b60008060408385031215612623578081fd5b82359150602083013561263581612e58565b809150509250929050565b60008060408385031215612652578182fd5b50508035926020909101359150565b600060208284031215612672578081fd5b815160078110611185578182fd5b600060208284031215612691578081fd5b815161118581612e7a565b6000602082840312156126ad578081fd5b815167ffffffffffffffff808211156126c4578283fd5b9083019060c082860312156126d7578283fd5b6126e160c0612d4d565b82516126ec81612e6d565b808252506020830151602082015260408301516040820152606083015182811115612715578485fd5b61272187828601612509565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612758578081fd5b815167ffffffffffffffff8082111561276f578283fd5b8184019150610140808387031215612785578384fd5b61278e81612d4d565b90508251815260208301516020820152604083015160408201526127b460608401612573565b60608201526080830151828111156127ca578485fd5b6127d687828601612509565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60006020828403121561282c578081fd5b815167ffffffffffffffff80821115612843578283fd5b9083019060c08286031215612856578283fd5b61286060c0612d4d565b825161286b81612e58565b8152602083810151908201526128836040840161257e565b6040820152606083015182811115612715578485fd5b6000602082840312156128aa578081fd5b815167ffffffffffffffff808211156128c1578283fd5b9083019060c082860312156128d4578283fd5b6128de60c0612d4d565b825181526020830151600281106128f3578485fd5b602082015260408381015190820152606083015182811115612715578485fd5b6000610120808385031215612926578182fd5b61292f81612d4d565b905061293a8361257e565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006101608083850312156129ab578182fd5b6129b481612d4d565b9050825181526129c6602084016124fe565b60208201526129d7604084016124fe565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152508091505092915050565b60008151808452612a54816020860160208601612da1565b601f01601f19169290920160200192915050565b612a7181612e38565b9052565b6000602082526111856020830184612a3c565b6020810160078310612a9c57612a9c612e0c565b91905290565b60208101612a9c83612e48565b6000602082528251612ac081612e38565b806020840152506020830151604083015260408301516060830152606083015160c06080840152612af460e0840182612a3c565b9050608084015160a084015260a084015160c08401528091505092915050565b6000602082528251602083015260208301516040830152604083015160608301526060830151612b476080840182612a68565b5060808301516101408060a0850152612b64610160850183612a3c565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b60006020825260018060a01b038351166020830152602083015160408301526040830151612bd881612e48565b80606084015250606083015160c06080840152612af460e0840182612a3c565b60006020825282516020830152602083015160028110612c1a57612c1a612e0c565b8060408401525060408301516060830152606083015160c06080840152612af460e0840182612a3c565b8151610120820190612c5581612e48565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b81518152602080830151610160830191612cd5908401826001600160a01b03169052565b506040830151612cf060408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7657612d76612e22565b604052919050565b600082821015612d9c57634e487b7160e01b81526011600452602481fd5b500390565b60005b83811015612dbc578181015183820152602001612da4565b83811115612dcb576000848401525b50505050565b600281046001821680612de557607f821691505b60208210811415612e0657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600481106123f0576123f0612e0c565b600381106123f0576123f0612e0c565b6001600160a01b03811681146123f057600080fd5b600481106123f057600080fd5b600381106123f057600080fdfea26469706673582212208baa8d3664a94bfb7869664ce5bc59b2293ec35862ba4906c74e8d5f75cdd5f464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x22 JUMP JUMPDEST PUSH3 0xE4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xE2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x2EBD DUP1 PUSH3 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3E6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F22C2D9 GT PUSH2 0x20A JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xE543ECB9 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xEC833B0C GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xEC833B0C EQ PUSH2 0x894 JUMPI DUP1 PUSH4 0xEFF0F592 EQ PUSH2 0x8A7 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x8BA JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x8C2 JUMPI DUP1 PUSH4 0xFF3F3883 EQ PUSH2 0x8D5 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xE543ECB9 EQ PUSH2 0x83B JUMPI DUP1 PUSH4 0xE8828922 EQ PUSH2 0x854 JUMPI DUP1 PUSH4 0xEB35783C EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0xEB802114 EQ PUSH2 0x874 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xD49D21C0 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xD49D21C0 EQ PUSH2 0x7FA JUMPI DUP1 PUSH4 0xD722B0BC EQ PUSH2 0x802 JUMPI DUP1 PUSH4 0xDD51C86A EQ PUSH2 0x80A JUMPI DUP1 PUSH4 0xE0024604 EQ PUSH2 0x82A JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x7AA JUMPI DUP1 PUSH4 0xC559783E EQ PUSH2 0x7BF JUMPI DUP1 PUSH4 0xC71E261F EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0xCEF58F13 EQ PUSH2 0x7DA JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA44330C4 GT PUSH2 0x19D JUMPI DUP1 PUSH4 0xAB9C6EE4 GT PUSH2 0x16C JUMPI DUP1 PUSH4 0xAB9C6EE4 EQ PUSH2 0x75E JUMPI DUP1 PUSH4 0xAEDDB905 EQ PUSH2 0x771 JUMPI DUP1 PUSH4 0xBC506F64 EQ PUSH2 0x784 JUMPI DUP1 PUSH4 0xBCD5349F EQ PUSH2 0x797 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA44330C4 EQ PUSH2 0x71B JUMPI DUP1 PUSH4 0xA5961B4C EQ PUSH2 0x723 JUMPI DUP1 PUSH4 0xA5C0F5A1 EQ PUSH2 0x743 JUMPI DUP1 PUSH4 0xA7ECDA36 EQ PUSH2 0x756 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA3F66BD2 GT PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xA3F66BD2 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0xA3F685F9 EQ PUSH2 0x6E0 JUMPI DUP1 PUSH4 0xA4266A66 EQ PUSH2 0x700 JUMPI DUP1 PUSH4 0xA427056E EQ PUSH2 0x713 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x7F22C2D9 EQ PUSH2 0x661 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x681 JUMPI DUP1 PUSH4 0x9F77A605 EQ PUSH2 0x6A4 JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x6B7 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x3FFDD2F3 GT PUSH2 0x305 JUMPI DUP1 PUSH4 0x52B5B0EF GT PUSH2 0x298 JUMPI DUP1 PUSH4 0x6319112B GT PUSH2 0x267 JUMPI DUP1 PUSH4 0x6319112B EQ PUSH2 0x62E JUMPI DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x636 JUMPI DUP1 PUSH4 0x6FA29853 EQ PUSH2 0x63E JUMPI DUP1 PUSH4 0x775A4048 EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0x7DB32844 EQ PUSH2 0x64E JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x52B5B0EF EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0x5E6877BE EQ PUSH2 0x5FE JUMPI DUP1 PUSH4 0x5E966E45 EQ PUSH2 0x60E JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x4F27DA18 GT PUSH2 0x2D4 JUMPI DUP1 PUSH4 0x4F27DA18 EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0x50E1A19B EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x51B2FB90 EQ PUSH2 0x5AC JUMPI DUP1 PUSH4 0x52A9C8D7 EQ PUSH2 0x5BF JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x3FFDD2F3 EQ PUSH2 0x55C JUMPI DUP1 PUSH4 0x4288121D EQ PUSH2 0x564 JUMPI DUP1 PUSH4 0x442ED817 EQ PUSH2 0x56C JUMPI DUP1 PUSH4 0x49081637 EQ PUSH2 0x574 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x2898312F GT PUSH2 0x37D JUMPI DUP1 PUSH4 0x3408E470 GT PUSH2 0x34C JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x51B JUMPI DUP1 PUSH4 0x39C6FA90 EQ PUSH2 0x521 JUMPI DUP1 PUSH4 0x3A42B053 EQ PUSH2 0x529 JUMPI DUP1 PUSH4 0x3F5D9235 EQ PUSH2 0x549 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x2898312F EQ PUSH2 0x4BE JUMPI DUP1 PUSH4 0x29560980 EQ PUSH2 0x4D5 JUMPI DUP1 PUSH4 0x2B1C7F73 EQ PUSH2 0x4E8 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x4FB JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x18442E63 GT PUSH2 0x3B9 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x48B JUMPI DUP1 PUSH4 0x18FF21C3 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x1E010439 EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0x2857373A EQ PUSH2 0x4B6 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x38696BB EQ PUSH2 0x3EB JUMPI DUP1 PUSH4 0x91924DC EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xC131757 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x1551100F EQ PUSH2 0x43F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3FE PUSH2 0x3F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FE PUSH2 0x96E JUMP JUMPDEST PUSH2 0x431 PUSH4 0x141BDBDB PUSH1 0xE2 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x412 JUMP JUMPDEST PUSH2 0x431 PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD CHAINID PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV PUSH1 0x60 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP3 ADD MSTORE PUSH1 0x54 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x998 JUMP JUMPDEST PUSH2 0x431 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xA15 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xA9E JUMP JUMPDEST PUSH2 0x431 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xAE3 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0xB6B JUMP JUMPDEST PUSH2 0x50E PUSH2 0x509 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xBEA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2B14 JUMP JUMPDEST CHAINID PUSH2 0x431 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xC72 JUMP JUMPDEST PUSH2 0x53C PUSH2 0x537 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xD11 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2A75 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x557 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xD6C JUMP JUMPDEST PUSH2 0x431 PUSH2 0xDF4 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xE39 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xE55 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x595 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xEA4 JUMP JUMPDEST PUSH2 0x431 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xED6 JUMP JUMPDEST PUSH2 0x431 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL DUP2 JUMP JUMPDEST PUSH2 0x3FE PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x431 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x621 PUSH2 0x61C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xF1B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2A88 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xF98 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xFDD JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x102C JUMP JUMPDEST PUSH2 0x431 PUSH2 0x104F JUMP JUMPDEST PUSH2 0x431 PUSH2 0x65C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1094 JUMP JUMPDEST PUSH2 0x674 PUSH2 0x66F CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x10C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2AAF JUMP JUMPDEST PUSH2 0x694 PUSH2 0x68F CALLDATASIZE PUSH1 0x4 PUSH2 0x2611 JUMP JUMPDEST PUSH2 0x118C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x412 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x6B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1211 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1243 JUMP JUMPDEST PUSH2 0x431 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP2 JUMP JUMPDEST PUSH2 0x6F3 PUSH2 0x6EE CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1288 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x70E CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1353 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1385 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x13D5 JUMP JUMPDEST PUSH2 0x736 PUSH2 0x731 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1452 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2BAB JUMP JUMPDEST PUSH2 0x431 PUSH2 0x751 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1509 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x153B JUMP JUMPDEST PUSH2 0x53C PUSH2 0x76C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1556 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x77F CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x15AC JUMP JUMPDEST PUSH2 0x674 PUSH2 0x792 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x15E0 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x7A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1698 JUMP JUMPDEST PUSH2 0x7BD PUSH2 0x7B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0x1730 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x431 PUSH2 0x7CD CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x18AE JUMP JUMPDEST PUSH2 0x431 PUSH2 0x18E0 JUMP JUMPDEST PUSH2 0x7ED PUSH2 0x7E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x1925 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2BF8 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x19E4 JUMP JUMPDEST PUSH2 0x53C PUSH2 0x1A29 JUMP JUMPDEST PUSH2 0x81D PUSH2 0x818 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1ACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2AA2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x431 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL DUP2 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x1B47 JUMP JUMPDEST PUSH2 0x887 PUSH2 0x882 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1BD6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2CB1 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x1CC2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1D46 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1D7A JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1DBF JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1DF6 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x38696BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x38696BB SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x92E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x942 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1E2B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x18442E63 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x18442E63 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x993 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA93 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH2 0x100 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x142B9B9D PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x2857373A SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB61 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH2 0xBF2 PUSH2 0x23F3 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2747 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC98 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1E2B JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A49532D3030323A494D504C454D454E4154494F4E5F4D49535349 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4E47 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x60 SWAP1 PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDEA SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3FFDD2F3 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x3FFDD2F3 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x49081637 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x49081637 SWAP1 PUSH1 0x24 ADD PUSH2 0x916 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH2 0x916 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x52A9C8D7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x52A9C8D7 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF74 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2661 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x4667AE51 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x8CCF5CA2 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6C0F79B6 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xEEB4809 PUSH1 0xE3 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x775A4048 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x1100 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1185 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x269C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x25C1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9F77A605 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x9F77A605 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xA054381F PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xA054381F SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12D8 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x131B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x132F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2913 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA427056E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x2910CC31 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xA44330C4 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x142E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x993 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x281B JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA5C0F5A1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5C0F5A1 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A49532D3030313A494D504C454D454E4154494F4E5F4D49535349 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4E47 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x60 SWAP1 PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBE183B11 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBE183B11 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x161A PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x165C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1670 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x269C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x171A SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xE0 ADD MLOAD DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x2D7E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1750 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x176A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x176A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x17CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x17F0 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x181A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x185C JUMPI PUSH2 0x183B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1864 PUSH2 0x1F13 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x18AA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xC71E261F PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xC71E261F SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x195F PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCEF58F13 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xCEF58F13 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1185 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2899 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3527487 PUSH1 0xE6 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD49D21C0 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CHAINID PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH2 0x1A47 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1A73 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1AC0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A95 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1AC0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1AA3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2680 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x21DF0DA7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BD0 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1C45 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C9E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x163C4B31 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB1E25988 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xF1D354D PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xF1D354D0 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xF6B3E7D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF6B3E7D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0xC0C77D PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFF3F3883 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EAD SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x969 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1F7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH2 0x1F90 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1FC5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1FF7 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2027 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x205B PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2083 PUSH2 0x2085 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP2 MSTORE PUSH20 0x8AE8D0CAE4CAEADA409AC2D2DCDCCAE85E8AA89 PUSH1 0x63 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x20E9 SWAP2 PUSH32 0xB39221ACE053465EC3453CE2B36430BD138B997ECEA25C1043DA0C366812B828 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x8EDECAE4D8D25E8AA89 PUSH1 0xB3 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x5 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2144 SWAP2 PUSH32 0xBCDDA56B5D08466EC462CBBE0ADFA57CB0A15FCC8940EF68F702F21B787BC935 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x7 DUP1 DUP3 MSTORE PUSH7 0x47616E61636865 PUSH1 0xC8 SHL PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE PUSH2 0x539 PUSH1 0x0 MSTORE SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH2 0x219E SWAP2 PUSH32 0x96A76633116AC3161B66B4BE70F114C9A245F4BBF414DC7A4D0EDCE8C01734CF SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xB DUP2 MSTORE PUSH11 0x476E6F7369732F78446169 PUSH1 0xA8 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x64 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x21FA SWAP2 PUSH32 0x6179E496907EB3333FEF2ED2194553681BADBB6D717316349BF33D21EC47E12 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x536F6B6F6C2F53504F41 PUSH1 0xB0 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x4D PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2255 SWAP2 PUSH32 0x58F3D94C4A880E721E755344405D3FE6076875BF5B3AD388D0A326A85BCABFB5 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH21 0x506F6C79676F6E204D61696E6E65742F4D41544943 PUSH1 0x58 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x89 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x22BB SWAP2 PUSH32 0x65420A8D28339AECA441A0C94A464F6387B468F3F5EA5C247A6DF59A5F7B8866 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xC DUP2 MSTORE PUSH12 0x4D756D6261692F4D41544943 PUSH1 0xA0 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0x1F41 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2319 SWAP2 PUSH32 0x4D67172C71DF6B75E948764B65521DB84C0C61E94D5F3739B666417E9471E584 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH22 0x82ECC2D8C2DCC6D0CA40865A86D0C2D2DC5E82AC82B PUSH1 0x53 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0xA86A PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2381 SWAP2 PUSH32 0xA4356065248D86930C73E944E85F9D029FB0F52C0B8312D1A61BFBC9797EF514 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH32 0x4176616C616E6368652046756A6920546573746E65742F415641580000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0xA869 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x23F0 SWAP2 PUSH32 0x57A00DA22BFC0A372532B5DFACB7DDF387626F66DE87422D191E09EA74934956 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2435 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2471 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2493 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x24D9 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x24AC JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x24D9 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x24D9 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x24D9 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x24BE JUMP JUMPDEST POP PUSH2 0x24E5 SWAP3 SWAP2 POP PUSH2 0x24E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x24EA JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2519 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2533 JUMPI PUSH2 0x2533 PUSH2 0x2E22 JUMP JUMPDEST PUSH2 0x2546 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2D4D JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x255A JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x256B DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2DA1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E6D JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x259A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1185 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25B6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1185 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25D2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1185 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25F2 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x260A JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2623 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2635 DUP2 PUSH2 0x2E58 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2652 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2672 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1185 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2691 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1185 DUP2 PUSH2 0x2E7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x26C4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x26D7 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x26E1 PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD PUSH2 0x26EC DUP2 PUSH2 0x2E6D JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2721 DUP8 DUP3 DUP7 ADD PUSH2 0x2509 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2758 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x276F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2785 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x278E DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x27B4 PUSH1 0x60 DUP5 ADD PUSH2 0x2573 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x27CA JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x27D6 DUP8 DUP3 DUP7 ADD PUSH2 0x2509 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2843 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2856 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2860 PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD PUSH2 0x286B DUP2 PUSH2 0x2E58 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2883 PUSH1 0x40 DUP5 ADD PUSH2 0x257E JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28AA JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x28C1 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x28D4 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x28DE PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x28F3 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2926 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x292F DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP PUSH2 0x293A DUP4 PUSH2 0x257E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29AB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x29B4 DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH2 0x29C6 PUSH1 0x20 DUP5 ADD PUSH2 0x24FE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x29D7 PUSH1 0x40 DUP5 ADD PUSH2 0x24FE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2A54 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2DA1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2A71 DUP2 PUSH2 0x2E38 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1185 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A3C JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2A9C JUMPI PUSH2 0x2A9C PUSH2 0x2E0C JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2A9C DUP4 PUSH2 0x2E48 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH2 0x2AC0 DUP2 PUSH2 0x2E38 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2B47 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2A68 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2B64 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2A3C JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2BD8 DUP2 PUSH2 0x2E48 JUMP JUMPDEST DUP1 PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x2C1A JUMPI PUSH2 0x2C1A PUSH2 0x2E0C JUMP JUMPDEST DUP1 PUSH1 0x40 DUP5 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST DUP2 MLOAD PUSH2 0x120 DUP3 ADD SWAP1 PUSH2 0x2C55 DUP2 PUSH2 0x2E48 JUMP JUMPDEST DUP1 DUP4 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH2 0x160 DUP4 ADD SWAP2 PUSH2 0x2CD5 SWAP1 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2CF0 PUSH1 0x40 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2D76 JUMPI PUSH2 0x2D76 PUSH2 0x2E22 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2D9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2DBC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2DA4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2DCB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2DE5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2E06 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x23F0 JUMPI PUSH2 0x23F0 PUSH2 0x2E0C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x23F0 JUMPI PUSH2 0x23F0 PUSH2 0x2E0C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP12 0xAA DUP14 CALLDATASIZE PUSH5 0xA94BFB7869 PUSH7 0x4CE5BC59B2293E 0xC3 PC PUSH3 0xBA4906 0xC7 0x4E DUP14 0x5F PUSH22 0xCDD5F464736F6C634300080200330000000000000000 ","sourceMap":"1407:11001:84:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;1407:11001:84;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;1407:11001:84;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:27789:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:78:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"140:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"115:24:103"},"nodeType":"YulFunctionCall","src":"115:31:103"},"nodeType":"YulExpressionStatement","src":"115:31:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:138:103"},{"body":{"nodeType":"YulBlock","src":"220:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"269:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"278:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"285:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"271:6:103"},"nodeType":"YulFunctionCall","src":"271:20:103"},"nodeType":"YulExpressionStatement","src":"271:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"248:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"256:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"244:3:103"},"nodeType":"YulFunctionCall","src":"244:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"263:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"240:3:103"},"nodeType":"YulFunctionCall","src":"240:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"233:6:103"},"nodeType":"YulFunctionCall","src":"233:35:103"},"nodeType":"YulIf","src":"230:2:103"},{"nodeType":"YulVariableDeclaration","src":"302:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"318:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"312:5:103"},"nodeType":"YulFunctionCall","src":"312:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"306:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"364:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"366:16:103"},"nodeType":"YulFunctionCall","src":"366:18:103"},"nodeType":"YulExpressionStatement","src":"366:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"340:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"344:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"337:2:103"},"nodeType":"YulFunctionCall","src":"337:26:103"},"nodeType":"YulIf","src":"334:2:103"},{"nodeType":"YulVariableDeclaration","src":"395:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"438:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"442:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"434:3:103"},"nodeType":"YulFunctionCall","src":"434:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"453:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"449:3:103"},"nodeType":"YulFunctionCall","src":"449:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"430:3:103"},"nodeType":"YulFunctionCall","src":"430:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"459:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"426:3:103"},"nodeType":"YulFunctionCall","src":"426:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"410:15:103"},"nodeType":"YulFunctionCall","src":"410:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"399:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"481:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"490:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"474:6:103"},"nodeType":"YulFunctionCall","src":"474:19:103"},"nodeType":"YulExpressionStatement","src":"474:19:103"},{"body":{"nodeType":"YulBlock","src":"541:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"550:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"557:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"543:6:103"},"nodeType":"YulFunctionCall","src":"543:20:103"},"nodeType":"YulExpressionStatement","src":"543:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"516:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"524:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"512:3:103"},"nodeType":"YulFunctionCall","src":"512:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"529:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"508:3:103"},"nodeType":"YulFunctionCall","src":"508:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"536:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"505:2:103"},"nodeType":"YulFunctionCall","src":"505:35:103"},"nodeType":"YulIf","src":"502:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"600:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"608:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"596:3:103"},"nodeType":"YulFunctionCall","src":"596:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"619:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"628:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"615:3:103"},"nodeType":"YulFunctionCall","src":"615:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"635:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"574:21:103"},"nodeType":"YulFunctionCall","src":"574:64:103"},"nodeType":"YulExpressionStatement","src":"574:64:103"},{"nodeType":"YulAssignment","src":"647:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"656:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"647:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"194:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"202:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"210:5:103","type":""}],"src":"157:512:103"},{"body":{"nodeType":"YulBlock","src":"748:92:103","statements":[{"nodeType":"YulAssignment","src":"758:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"773:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"767:5:103"},"nodeType":"YulFunctionCall","src":"767:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"758:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"828:5:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"789:38:103"},"nodeType":"YulFunctionCall","src":"789:45:103"},"nodeType":"YulExpressionStatement","src":"789:45:103"}]},"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"727:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"738:5:103","type":""}],"src":"674:166:103"},{"body":{"nodeType":"YulBlock","src":"916:89:103","statements":[{"nodeType":"YulAssignment","src":"926:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"941:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"935:5:103"},"nodeType":"YulFunctionCall","src":"935:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"926:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"993:5:103"}],"functionName":{"name":"validator_revert_enum_ComponentType","nodeType":"YulIdentifier","src":"957:35:103"},"nodeType":"YulFunctionCall","src":"957:42:103"},"nodeType":"YulExpressionStatement","src":"957:42:103"}]},"name":"abi_decode_enum_ComponentType_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"895:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"906:5:103","type":""}],"src":"845:160:103"},{"body":{"nodeType":"YulBlock","src":"1080:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1126:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1135:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1143:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1128:6:103"},"nodeType":"YulFunctionCall","src":"1128:22:103"},"nodeType":"YulExpressionStatement","src":"1128:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1101:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1110:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1097:3:103"},"nodeType":"YulFunctionCall","src":"1097:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1122:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1093:3:103"},"nodeType":"YulFunctionCall","src":"1093:32:103"},"nodeType":"YulIf","src":"1090:2:103"},{"nodeType":"YulVariableDeclaration","src":"1161:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1187:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1174:12:103"},"nodeType":"YulFunctionCall","src":"1174:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1165:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1231:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1206:24:103"},"nodeType":"YulFunctionCall","src":"1206:31:103"},"nodeType":"YulExpressionStatement","src":"1206:31:103"},{"nodeType":"YulAssignment","src":"1246:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1256:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1246:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1046:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1057:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1069:6:103","type":""}],"src":"1010:257:103"},{"body":{"nodeType":"YulBlock","src":"1353:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1399:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1408:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1416:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1401:6:103"},"nodeType":"YulFunctionCall","src":"1401:22:103"},"nodeType":"YulExpressionStatement","src":"1401:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1374:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1383:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1370:3:103"},"nodeType":"YulFunctionCall","src":"1370:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1395:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1366:3:103"},"nodeType":"YulFunctionCall","src":"1366:32:103"},"nodeType":"YulIf","src":"1363:2:103"},{"nodeType":"YulVariableDeclaration","src":"1434:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1453:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1447:5:103"},"nodeType":"YulFunctionCall","src":"1447:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1438:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1497:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1472:24:103"},"nodeType":"YulFunctionCall","src":"1472:31:103"},"nodeType":"YulExpressionStatement","src":"1472:31:103"},{"nodeType":"YulAssignment","src":"1512:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1522:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1512:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1319:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1330:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1342:6:103","type":""}],"src":"1272:261:103"},{"body":{"nodeType":"YulBlock","src":"1616:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1662:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1671:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1679:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1664:6:103"},"nodeType":"YulFunctionCall","src":"1664:22:103"},"nodeType":"YulExpressionStatement","src":"1664:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1637:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1646:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1633:3:103"},"nodeType":"YulFunctionCall","src":"1633:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1658:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1629:3:103"},"nodeType":"YulFunctionCall","src":"1629:32:103"},"nodeType":"YulIf","src":"1626:2:103"},{"nodeType":"YulVariableDeclaration","src":"1697:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1716:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1710:5:103"},"nodeType":"YulFunctionCall","src":"1710:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1701:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1779:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1788:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1796:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1781:6:103"},"nodeType":"YulFunctionCall","src":"1781:22:103"},"nodeType":"YulExpressionStatement","src":"1781:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1748:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1769:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1762:6:103"},"nodeType":"YulFunctionCall","src":"1762:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1755:6:103"},"nodeType":"YulFunctionCall","src":"1755:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1745:2:103"},"nodeType":"YulFunctionCall","src":"1745:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1738:6:103"},"nodeType":"YulFunctionCall","src":"1738:40:103"},"nodeType":"YulIf","src":"1735:2:103"},{"nodeType":"YulAssignment","src":"1814:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1824:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1814:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1582:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1593:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1605:6:103","type":""}],"src":"1538:297:103"},{"body":{"nodeType":"YulBlock","src":"1910:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1956:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1965:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1973:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1958:6:103"},"nodeType":"YulFunctionCall","src":"1958:22:103"},"nodeType":"YulExpressionStatement","src":"1958:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1931:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1940:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1927:3:103"},"nodeType":"YulFunctionCall","src":"1927:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1952:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1923:3:103"},"nodeType":"YulFunctionCall","src":"1923:32:103"},"nodeType":"YulIf","src":"1920:2:103"},{"nodeType":"YulAssignment","src":"1991:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2014:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2001:12:103"},"nodeType":"YulFunctionCall","src":"2001:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1991:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1876:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1887:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1899:6:103","type":""}],"src":"1840:190:103"},{"body":{"nodeType":"YulBlock","src":"2116:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"2162:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2171:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2179:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2164:6:103"},"nodeType":"YulFunctionCall","src":"2164:22:103"},"nodeType":"YulExpressionStatement","src":"2164:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2137:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2146:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2133:3:103"},"nodeType":"YulFunctionCall","src":"2133:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2158:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2129:3:103"},"nodeType":"YulFunctionCall","src":"2129:32:103"},"nodeType":"YulIf","src":"2126:2:103"},{"nodeType":"YulAssignment","src":"2197:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2213:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2207:5:103"},"nodeType":"YulFunctionCall","src":"2207:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2197:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2082:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2093:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2105:6:103","type":""}],"src":"2035:194:103"},{"body":{"nodeType":"YulBlock","src":"2321:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"2367:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2376:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2384:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2369:6:103"},"nodeType":"YulFunctionCall","src":"2369:22:103"},"nodeType":"YulExpressionStatement","src":"2369:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2342:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2351:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2338:3:103"},"nodeType":"YulFunctionCall","src":"2338:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2363:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2334:3:103"},"nodeType":"YulFunctionCall","src":"2334:32:103"},"nodeType":"YulIf","src":"2331:2:103"},{"nodeType":"YulAssignment","src":"2402:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2425:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2412:12:103"},"nodeType":"YulFunctionCall","src":"2412:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2402:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2444:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2474:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2485:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2470:3:103"},"nodeType":"YulFunctionCall","src":"2470:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2457:12:103"},"nodeType":"YulFunctionCall","src":"2457:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2448:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2523:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2498:24:103"},"nodeType":"YulFunctionCall","src":"2498:31:103"},"nodeType":"YulExpressionStatement","src":"2498:31:103"},{"nodeType":"YulAssignment","src":"2538:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2548:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2538:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2279:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2290:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2302:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2310:6:103","type":""}],"src":"2234:325:103"},{"body":{"nodeType":"YulBlock","src":"2651:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2697:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2706:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2714:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2699:6:103"},"nodeType":"YulFunctionCall","src":"2699:22:103"},"nodeType":"YulExpressionStatement","src":"2699:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2672:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2681:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2668:3:103"},"nodeType":"YulFunctionCall","src":"2668:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2693:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2664:3:103"},"nodeType":"YulFunctionCall","src":"2664:32:103"},"nodeType":"YulIf","src":"2661:2:103"},{"nodeType":"YulAssignment","src":"2732:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2755:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2742:12:103"},"nodeType":"YulFunctionCall","src":"2742:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2732:6:103"}]},{"nodeType":"YulAssignment","src":"2774:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2801:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2812:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2797:3:103"},"nodeType":"YulFunctionCall","src":"2797:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2784:12:103"},"nodeType":"YulFunctionCall","src":"2784:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2774:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2609:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2620:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2632:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2640:6:103","type":""}],"src":"2564:258:103"},{"body":{"nodeType":"YulBlock","src":"2929:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2975:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2984:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2992:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2977:6:103"},"nodeType":"YulFunctionCall","src":"2977:22:103"},"nodeType":"YulExpressionStatement","src":"2977:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2950:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2959:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2946:3:103"},"nodeType":"YulFunctionCall","src":"2946:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2971:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2942:3:103"},"nodeType":"YulFunctionCall","src":"2942:32:103"},"nodeType":"YulIf","src":"2939:2:103"},{"nodeType":"YulVariableDeclaration","src":"3010:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3029:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3023:5:103"},"nodeType":"YulFunctionCall","src":"3023:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3014:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3073:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3048:24:103"},"nodeType":"YulFunctionCall","src":"3048:31:103"},"nodeType":"YulExpressionStatement","src":"3048:31:103"},{"nodeType":"YulAssignment","src":"3088:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3098:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3088:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_BundleToken_$28751_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2895:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2906:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2918:6:103","type":""}],"src":"2827:282:103"},{"body":{"nodeType":"YulBlock","src":"3214:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"3260:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3269:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3277:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3262:6:103"},"nodeType":"YulFunctionCall","src":"3262:22:103"},"nodeType":"YulExpressionStatement","src":"3262:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3235:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3244:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3231:3:103"},"nodeType":"YulFunctionCall","src":"3231:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3256:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3227:3:103"},"nodeType":"YulFunctionCall","src":"3227:32:103"},"nodeType":"YulIf","src":"3224:2:103"},{"nodeType":"YulVariableDeclaration","src":"3295:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3314:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3308:5:103"},"nodeType":"YulFunctionCall","src":"3308:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3299:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3358:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3333:24:103"},"nodeType":"YulFunctionCall","src":"3333:31:103"},"nodeType":"YulExpressionStatement","src":"3333:31:103"},{"nodeType":"YulAssignment","src":"3373:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3383:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3373:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3180:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3191:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3203:6:103","type":""}],"src":"3114:280:103"},{"body":{"nodeType":"YulBlock","src":"3495:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"3541:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3550:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3558:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3543:6:103"},"nodeType":"YulFunctionCall","src":"3543:22:103"},"nodeType":"YulExpressionStatement","src":"3543:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3516:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3525:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3512:3:103"},"nodeType":"YulFunctionCall","src":"3512:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3537:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3508:3:103"},"nodeType":"YulFunctionCall","src":"3508:32:103"},"nodeType":"YulIf","src":"3505:2:103"},{"nodeType":"YulVariableDeclaration","src":"3576:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3595:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3589:5:103"},"nodeType":"YulFunctionCall","src":"3589:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3580:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3639:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3614:24:103"},"nodeType":"YulFunctionCall","src":"3614:31:103"},"nodeType":"YulExpressionStatement","src":"3614:31:103"},{"nodeType":"YulAssignment","src":"3654:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3664:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3654:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$8831_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3461:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3472:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3484:6:103","type":""}],"src":"3399:276:103"},{"body":{"nodeType":"YulBlock","src":"3780:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"3826:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3835:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3843:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3828:6:103"},"nodeType":"YulFunctionCall","src":"3828:22:103"},"nodeType":"YulExpressionStatement","src":"3828:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3801:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3810:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3797:3:103"},"nodeType":"YulFunctionCall","src":"3797:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3822:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3793:3:103"},"nodeType":"YulFunctionCall","src":"3793:32:103"},"nodeType":"YulIf","src":"3790:2:103"},{"nodeType":"YulVariableDeclaration","src":"3861:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3880:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3874:5:103"},"nodeType":"YulFunctionCall","src":"3874:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3865:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3923:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3932:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3940:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3925:6:103"},"nodeType":"YulFunctionCall","src":"3925:22:103"},"nodeType":"YulExpressionStatement","src":"3925:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3912:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3919:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3909:2:103"},"nodeType":"YulFunctionCall","src":"3909:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3902:6:103"},"nodeType":"YulFunctionCall","src":"3902:20:103"},"nodeType":"YulIf","src":"3899:2:103"},{"nodeType":"YulAssignment","src":"3958:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3968:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3958:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3746:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3757:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3769:6:103","type":""}],"src":"3680:299:103"},{"body":{"nodeType":"YulBlock","src":"4083:191:103","statements":[{"body":{"nodeType":"YulBlock","src":"4129:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4138:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4146:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4131:6:103"},"nodeType":"YulFunctionCall","src":"4131:22:103"},"nodeType":"YulExpressionStatement","src":"4131:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4104:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4113:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4100:3:103"},"nodeType":"YulFunctionCall","src":"4100:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4125:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4096:3:103"},"nodeType":"YulFunctionCall","src":"4096:32:103"},"nodeType":"YulIf","src":"4093:2:103"},{"nodeType":"YulVariableDeclaration","src":"4164:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4183:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4177:5:103"},"nodeType":"YulFunctionCall","src":"4177:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4168:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4238:5:103"}],"functionName":{"name":"validator_revert_enum_ComponentType","nodeType":"YulIdentifier","src":"4202:35:103"},"nodeType":"YulFunctionCall","src":"4202:42:103"},"nodeType":"YulExpressionStatement","src":"4202:42:103"},{"nodeType":"YulAssignment","src":"4253:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4263:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4253:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4049:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4060:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4072:6:103","type":""}],"src":"3984:290:103"},{"body":{"nodeType":"YulBlock","src":"4389:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"4435:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4444:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4452:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4437:6:103"},"nodeType":"YulFunctionCall","src":"4437:22:103"},"nodeType":"YulExpressionStatement","src":"4437:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4410:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4419:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4406:3:103"},"nodeType":"YulFunctionCall","src":"4406:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4431:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4402:3:103"},"nodeType":"YulFunctionCall","src":"4402:32:103"},"nodeType":"YulIf","src":"4399:2:103"},{"nodeType":"YulVariableDeclaration","src":"4470:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4490:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4484:5:103"},"nodeType":"YulFunctionCall","src":"4484:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4474:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4509:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4519:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4513:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4564:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4573:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4581:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4566:6:103"},"nodeType":"YulFunctionCall","src":"4566:22:103"},"nodeType":"YulExpressionStatement","src":"4566:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4552:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4560:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4549:2:103"},"nodeType":"YulFunctionCall","src":"4549:14:103"},"nodeType":"YulIf","src":"4546:2:103"},{"nodeType":"YulVariableDeclaration","src":"4599:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4613:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4624:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4609:3:103"},"nodeType":"YulFunctionCall","src":"4609:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4603:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4671:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4680:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4688:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4673:6:103"},"nodeType":"YulFunctionCall","src":"4673:22:103"},"nodeType":"YulExpressionStatement","src":"4673:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4651:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4660:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4647:3:103"},"nodeType":"YulFunctionCall","src":"4647:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4643:3:103"},"nodeType":"YulFunctionCall","src":"4643:27:103"},"nodeType":"YulIf","src":"4640:2:103"},{"nodeType":"YulVariableDeclaration","src":"4706:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4735:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4719:15:103"},"nodeType":"YulFunctionCall","src":"4719:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4710:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4749:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4770:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4764:5:103"},"nodeType":"YulFunctionCall","src":"4764:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4753:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4821:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"4782:38:103"},"nodeType":"YulFunctionCall","src":"4782:47:103"},"nodeType":"YulExpressionStatement","src":"4782:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4845:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"4852:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4838:6:103"},"nodeType":"YulFunctionCall","src":"4838:22:103"},"nodeType":"YulExpressionStatement","src":"4838:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4880:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4887:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4876:3:103"},"nodeType":"YulFunctionCall","src":"4876:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4902:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4906:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4898:3:103"},"nodeType":"YulFunctionCall","src":"4898:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4892:5:103"},"nodeType":"YulFunctionCall","src":"4892:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4869:6:103"},"nodeType":"YulFunctionCall","src":"4869:42:103"},"nodeType":"YulExpressionStatement","src":"4869:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4931:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4938:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4927:3:103"},"nodeType":"YulFunctionCall","src":"4927:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4953:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4957:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4949:3:103"},"nodeType":"YulFunctionCall","src":"4949:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4943:5:103"},"nodeType":"YulFunctionCall","src":"4943:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4920:6:103"},"nodeType":"YulFunctionCall","src":"4920:42:103"},"nodeType":"YulExpressionStatement","src":"4920:42:103"},{"nodeType":"YulVariableDeclaration","src":"4971:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4997:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5001:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4993:3:103"},"nodeType":"YulFunctionCall","src":"4993:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4987:5:103"},"nodeType":"YulFunctionCall","src":"4987:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4975:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5034:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5043:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5051:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5036:6:103"},"nodeType":"YulFunctionCall","src":"5036:22:103"},"nodeType":"YulExpressionStatement","src":"5036:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5020:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5030:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5017:2:103"},"nodeType":"YulFunctionCall","src":"5017:16:103"},"nodeType":"YulIf","src":"5014:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5080:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5087:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5076:3:103"},"nodeType":"YulFunctionCall","src":"5076:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5124:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5128:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5120:3:103"},"nodeType":"YulFunctionCall","src":"5120:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5139:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"5092:27:103"},"nodeType":"YulFunctionCall","src":"5092:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5069:6:103"},"nodeType":"YulFunctionCall","src":"5069:79:103"},"nodeType":"YulExpressionStatement","src":"5069:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5168:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5175:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5164:3:103"},"nodeType":"YulFunctionCall","src":"5164:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5191:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5195:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5187:3:103"},"nodeType":"YulFunctionCall","src":"5187:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5181:5:103"},"nodeType":"YulFunctionCall","src":"5181:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5157:6:103"},"nodeType":"YulFunctionCall","src":"5157:44:103"},"nodeType":"YulExpressionStatement","src":"5157:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5221:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5228:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5217:3:103"},"nodeType":"YulFunctionCall","src":"5217:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5244:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5248:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5240:3:103"},"nodeType":"YulFunctionCall","src":"5240:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5234:5:103"},"nodeType":"YulFunctionCall","src":"5234:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5210:6:103"},"nodeType":"YulFunctionCall","src":"5210:44:103"},"nodeType":"YulExpressionStatement","src":"5210:44:103"},{"nodeType":"YulAssignment","src":"5263:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5273:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5263:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4355:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4366:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4378:6:103","type":""}],"src":"4279:1005:103"},{"body":{"nodeType":"YulBlock","src":"5394:1119:103","statements":[{"body":{"nodeType":"YulBlock","src":"5440:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5449:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5457:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5442:6:103"},"nodeType":"YulFunctionCall","src":"5442:22:103"},"nodeType":"YulExpressionStatement","src":"5442:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5415:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5424:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5411:3:103"},"nodeType":"YulFunctionCall","src":"5411:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5436:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5407:3:103"},"nodeType":"YulFunctionCall","src":"5407:32:103"},"nodeType":"YulIf","src":"5404:2:103"},{"nodeType":"YulVariableDeclaration","src":"5475:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5495:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5489:5:103"},"nodeType":"YulFunctionCall","src":"5489:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5479:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5514:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5524:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5518:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5569:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5578:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5586:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5571:6:103"},"nodeType":"YulFunctionCall","src":"5571:22:103"},"nodeType":"YulExpressionStatement","src":"5571:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5557:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5565:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5554:2:103"},"nodeType":"YulFunctionCall","src":"5554:14:103"},"nodeType":"YulIf","src":"5551:2:103"},{"nodeType":"YulVariableDeclaration","src":"5604:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5618:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5629:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5614:3:103"},"nodeType":"YulFunctionCall","src":"5614:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5608:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5645:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5655:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5649:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5699:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5708:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5716:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5701:6:103"},"nodeType":"YulFunctionCall","src":"5701:22:103"},"nodeType":"YulExpressionStatement","src":"5701:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5681:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5690:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5677:3:103"},"nodeType":"YulFunctionCall","src":"5677:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"5695:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5673:3:103"},"nodeType":"YulFunctionCall","src":"5673:25:103"},"nodeType":"YulIf","src":"5670:2:103"},{"nodeType":"YulVariableDeclaration","src":"5734:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5763:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5747:15:103"},"nodeType":"YulFunctionCall","src":"5747:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5738:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5782:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5795:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5789:5:103"},"nodeType":"YulFunctionCall","src":"5789:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5775:6:103"},"nodeType":"YulFunctionCall","src":"5775:24:103"},"nodeType":"YulExpressionStatement","src":"5775:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5819:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5826:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5815:3:103"},"nodeType":"YulFunctionCall","src":"5815:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5841:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5845:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5837:3:103"},"nodeType":"YulFunctionCall","src":"5837:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5831:5:103"},"nodeType":"YulFunctionCall","src":"5831:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5808:6:103"},"nodeType":"YulFunctionCall","src":"5808:42:103"},"nodeType":"YulExpressionStatement","src":"5808:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5870:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5877:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5866:3:103"},"nodeType":"YulFunctionCall","src":"5866:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5892:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5896:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5888:3:103"},"nodeType":"YulFunctionCall","src":"5888:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5882:5:103"},"nodeType":"YulFunctionCall","src":"5882:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5859:6:103"},"nodeType":"YulFunctionCall","src":"5859:42:103"},"nodeType":"YulExpressionStatement","src":"5859:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5921:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5928:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5917:3:103"},"nodeType":"YulFunctionCall","src":"5917:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5981:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5985:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5977:3:103"},"nodeType":"YulFunctionCall","src":"5977:11:103"}],"functionName":{"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulIdentifier","src":"5933:43:103"},"nodeType":"YulFunctionCall","src":"5933:56:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5910:6:103"},"nodeType":"YulFunctionCall","src":"5910:80:103"},"nodeType":"YulExpressionStatement","src":"5910:80:103"},{"nodeType":"YulVariableDeclaration","src":"5999:35:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6025:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6029:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6021:3:103"},"nodeType":"YulFunctionCall","src":"6021:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6015:5:103"},"nodeType":"YulFunctionCall","src":"6015:19:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6003:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6063:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6072:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6080:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6065:6:103"},"nodeType":"YulFunctionCall","src":"6065:22:103"},"nodeType":"YulExpressionStatement","src":"6065:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6049:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6059:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6046:2:103"},"nodeType":"YulFunctionCall","src":"6046:16:103"},"nodeType":"YulIf","src":"6043:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6109:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6116:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6105:3:103"},"nodeType":"YulFunctionCall","src":"6105:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6154:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6158:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6150:3:103"},"nodeType":"YulFunctionCall","src":"6150:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6169:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"6122:27:103"},"nodeType":"YulFunctionCall","src":"6122:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6098:6:103"},"nodeType":"YulFunctionCall","src":"6098:80:103"},"nodeType":"YulExpressionStatement","src":"6098:80:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6198:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6205:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6194:3:103"},"nodeType":"YulFunctionCall","src":"6194:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6221:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6225:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6217:3:103"},"nodeType":"YulFunctionCall","src":"6217:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6211:5:103"},"nodeType":"YulFunctionCall","src":"6211:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6187:6:103"},"nodeType":"YulFunctionCall","src":"6187:44:103"},"nodeType":"YulExpressionStatement","src":"6187:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6251:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6258:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6247:3:103"},"nodeType":"YulFunctionCall","src":"6247:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6274:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6278:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6270:3:103"},"nodeType":"YulFunctionCall","src":"6270:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6264:5:103"},"nodeType":"YulFunctionCall","src":"6264:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6240:6:103"},"nodeType":"YulFunctionCall","src":"6240:44:103"},"nodeType":"YulExpressionStatement","src":"6240:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6304:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6311:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6300:3:103"},"nodeType":"YulFunctionCall","src":"6300:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6327:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6331:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6323:3:103"},"nodeType":"YulFunctionCall","src":"6323:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6317:5:103"},"nodeType":"YulFunctionCall","src":"6317:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6293:6:103"},"nodeType":"YulFunctionCall","src":"6293:44:103"},"nodeType":"YulExpressionStatement","src":"6293:44:103"},{"nodeType":"YulVariableDeclaration","src":"6346:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6356:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"6350:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6379:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"6386:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6375:3:103"},"nodeType":"YulFunctionCall","src":"6375:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6401:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"6405:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6397:3:103"},"nodeType":"YulFunctionCall","src":"6397:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6391:5:103"},"nodeType":"YulFunctionCall","src":"6391:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6368:6:103"},"nodeType":"YulFunctionCall","src":"6368:42:103"},"nodeType":"YulExpressionStatement","src":"6368:42:103"},{"nodeType":"YulVariableDeclaration","src":"6419:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6429:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"6423:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6452:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"6459:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6448:3:103"},"nodeType":"YulFunctionCall","src":"6448:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6474:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"6478:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6470:3:103"},"nodeType":"YulFunctionCall","src":"6470:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6464:5:103"},"nodeType":"YulFunctionCall","src":"6464:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6441:6:103"},"nodeType":"YulFunctionCall","src":"6441:42:103"},"nodeType":"YulExpressionStatement","src":"6441:42:103"},{"nodeType":"YulAssignment","src":"6492:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6502:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6492:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5360:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5371:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5383:6:103","type":""}],"src":"5289:1224:103"},{"body":{"nodeType":"YulBlock","src":"6622:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"6668:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6677:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6685:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6670:6:103"},"nodeType":"YulFunctionCall","src":"6670:22:103"},"nodeType":"YulExpressionStatement","src":"6670:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6643:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6652:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6639:3:103"},"nodeType":"YulFunctionCall","src":"6639:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6664:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6635:3:103"},"nodeType":"YulFunctionCall","src":"6635:32:103"},"nodeType":"YulIf","src":"6632:2:103"},{"nodeType":"YulVariableDeclaration","src":"6703:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6723:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6717:5:103"},"nodeType":"YulFunctionCall","src":"6717:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6707:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6742:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6752:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6746:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6797:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6806:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6814:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6799:6:103"},"nodeType":"YulFunctionCall","src":"6799:22:103"},"nodeType":"YulExpressionStatement","src":"6799:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6785:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6793:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6782:2:103"},"nodeType":"YulFunctionCall","src":"6782:14:103"},"nodeType":"YulIf","src":"6779:2:103"},{"nodeType":"YulVariableDeclaration","src":"6832:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6846:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6857:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6842:3:103"},"nodeType":"YulFunctionCall","src":"6842:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6836:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6904:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6913:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6921:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6906:6:103"},"nodeType":"YulFunctionCall","src":"6906:22:103"},"nodeType":"YulExpressionStatement","src":"6906:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6884:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6893:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6880:3:103"},"nodeType":"YulFunctionCall","src":"6880:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"6898:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6876:3:103"},"nodeType":"YulFunctionCall","src":"6876:27:103"},"nodeType":"YulIf","src":"6873:2:103"},{"nodeType":"YulVariableDeclaration","src":"6939:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6968:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6952:15:103"},"nodeType":"YulFunctionCall","src":"6952:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6943:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6982:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7003:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6997:5:103"},"nodeType":"YulFunctionCall","src":"6997:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6986:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7054:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"7015:38:103"},"nodeType":"YulFunctionCall","src":"7015:47:103"},"nodeType":"YulExpressionStatement","src":"7015:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7078:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"7085:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7071:6:103"},"nodeType":"YulFunctionCall","src":"7071:22:103"},"nodeType":"YulExpressionStatement","src":"7071:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7113:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7120:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7109:3:103"},"nodeType":"YulFunctionCall","src":"7109:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7135:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7139:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7131:3:103"},"nodeType":"YulFunctionCall","src":"7131:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7125:5:103"},"nodeType":"YulFunctionCall","src":"7125:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7102:6:103"},"nodeType":"YulFunctionCall","src":"7102:42:103"},"nodeType":"YulExpressionStatement","src":"7102:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7164:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7171:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7160:3:103"},"nodeType":"YulFunctionCall","src":"7160:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7186:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7190:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7182:3:103"},"nodeType":"YulFunctionCall","src":"7182:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7176:5:103"},"nodeType":"YulFunctionCall","src":"7176:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7153:6:103"},"nodeType":"YulFunctionCall","src":"7153:42:103"},"nodeType":"YulExpressionStatement","src":"7153:42:103"},{"nodeType":"YulVariableDeclaration","src":"7204:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7230:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7234:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7226:3:103"},"nodeType":"YulFunctionCall","src":"7226:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7220:5:103"},"nodeType":"YulFunctionCall","src":"7220:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7208:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7267:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7276:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7284:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7269:6:103"},"nodeType":"YulFunctionCall","src":"7269:22:103"},"nodeType":"YulExpressionStatement","src":"7269:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7253:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7263:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7250:2:103"},"nodeType":"YulFunctionCall","src":"7250:16:103"},"nodeType":"YulIf","src":"7247:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7313:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7320:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7309:3:103"},"nodeType":"YulFunctionCall","src":"7309:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7357:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7361:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7353:3:103"},"nodeType":"YulFunctionCall","src":"7353:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7372:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"7325:27:103"},"nodeType":"YulFunctionCall","src":"7325:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7302:6:103"},"nodeType":"YulFunctionCall","src":"7302:79:103"},"nodeType":"YulExpressionStatement","src":"7302:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7401:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7408:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7397:3:103"},"nodeType":"YulFunctionCall","src":"7397:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7424:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7428:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7420:3:103"},"nodeType":"YulFunctionCall","src":"7420:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7414:5:103"},"nodeType":"YulFunctionCall","src":"7414:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7390:6:103"},"nodeType":"YulFunctionCall","src":"7390:44:103"},"nodeType":"YulExpressionStatement","src":"7390:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7454:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7461:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7450:3:103"},"nodeType":"YulFunctionCall","src":"7450:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7477:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7481:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7473:3:103"},"nodeType":"YulFunctionCall","src":"7473:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7467:5:103"},"nodeType":"YulFunctionCall","src":"7467:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7443:6:103"},"nodeType":"YulFunctionCall","src":"7443:44:103"},"nodeType":"YulExpressionStatement","src":"7443:44:103"},{"nodeType":"YulAssignment","src":"7496:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7506:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7496:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6588:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6599:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6611:6:103","type":""}],"src":"6518:999:103"},{"body":{"nodeType":"YulBlock","src":"7629:916:103","statements":[{"body":{"nodeType":"YulBlock","src":"7675:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7684:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7692:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7677:6:103"},"nodeType":"YulFunctionCall","src":"7677:22:103"},"nodeType":"YulExpressionStatement","src":"7677:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7650:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7659:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7646:3:103"},"nodeType":"YulFunctionCall","src":"7646:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7671:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7642:3:103"},"nodeType":"YulFunctionCall","src":"7642:32:103"},"nodeType":"YulIf","src":"7639:2:103"},{"nodeType":"YulVariableDeclaration","src":"7710:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7730:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7724:5:103"},"nodeType":"YulFunctionCall","src":"7724:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7714:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7749:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7759:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7753:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7804:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7813:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7821:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7806:6:103"},"nodeType":"YulFunctionCall","src":"7806:22:103"},"nodeType":"YulExpressionStatement","src":"7806:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7792:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7800:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7789:2:103"},"nodeType":"YulFunctionCall","src":"7789:14:103"},"nodeType":"YulIf","src":"7786:2:103"},{"nodeType":"YulVariableDeclaration","src":"7839:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7853:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"7864:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7849:3:103"},"nodeType":"YulFunctionCall","src":"7849:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7843:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7911:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7920:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7928:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7913:6:103"},"nodeType":"YulFunctionCall","src":"7913:22:103"},"nodeType":"YulExpressionStatement","src":"7913:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7891:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"7900:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7887:3:103"},"nodeType":"YulFunctionCall","src":"7887:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"7905:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7883:3:103"},"nodeType":"YulFunctionCall","src":"7883:27:103"},"nodeType":"YulIf","src":"7880:2:103"},{"nodeType":"YulVariableDeclaration","src":"7946:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7975:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"7959:15:103"},"nodeType":"YulFunctionCall","src":"7959:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7950:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7989:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8010:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8004:5:103"},"nodeType":"YulFunctionCall","src":"8004:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7993:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8047:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8022:24:103"},"nodeType":"YulFunctionCall","src":"8022:33:103"},"nodeType":"YulExpressionStatement","src":"8022:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8071:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"8078:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8064:6:103"},"nodeType":"YulFunctionCall","src":"8064:22:103"},"nodeType":"YulExpressionStatement","src":"8064:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8106:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8113:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8102:3:103"},"nodeType":"YulFunctionCall","src":"8102:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8128:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8132:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8124:3:103"},"nodeType":"YulFunctionCall","src":"8124:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8118:5:103"},"nodeType":"YulFunctionCall","src":"8118:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8095:6:103"},"nodeType":"YulFunctionCall","src":"8095:42:103"},"nodeType":"YulExpressionStatement","src":"8095:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8157:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8164:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8153:3:103"},"nodeType":"YulFunctionCall","src":"8153:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8214:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8218:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8210:3:103"},"nodeType":"YulFunctionCall","src":"8210:11:103"}],"functionName":{"name":"abi_decode_enum_ComponentType_fromMemory","nodeType":"YulIdentifier","src":"8169:40:103"},"nodeType":"YulFunctionCall","src":"8169:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8146:6:103"},"nodeType":"YulFunctionCall","src":"8146:77:103"},"nodeType":"YulExpressionStatement","src":"8146:77:103"},{"nodeType":"YulVariableDeclaration","src":"8232:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8258:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8262:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8254:3:103"},"nodeType":"YulFunctionCall","src":"8254:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8248:5:103"},"nodeType":"YulFunctionCall","src":"8248:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8236:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8295:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8304:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8312:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8297:6:103"},"nodeType":"YulFunctionCall","src":"8297:22:103"},"nodeType":"YulExpressionStatement","src":"8297:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8281:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8291:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8278:2:103"},"nodeType":"YulFunctionCall","src":"8278:16:103"},"nodeType":"YulIf","src":"8275:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8341:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8348:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8337:3:103"},"nodeType":"YulFunctionCall","src":"8337:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8385:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8389:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8381:3:103"},"nodeType":"YulFunctionCall","src":"8381:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8400:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"8353:27:103"},"nodeType":"YulFunctionCall","src":"8353:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8330:6:103"},"nodeType":"YulFunctionCall","src":"8330:79:103"},"nodeType":"YulExpressionStatement","src":"8330:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8429:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8436:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8425:3:103"},"nodeType":"YulFunctionCall","src":"8425:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8452:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8456:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8448:3:103"},"nodeType":"YulFunctionCall","src":"8448:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8442:5:103"},"nodeType":"YulFunctionCall","src":"8442:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8418:6:103"},"nodeType":"YulFunctionCall","src":"8418:44:103"},"nodeType":"YulExpressionStatement","src":"8418:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8482:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8489:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8478:3:103"},"nodeType":"YulFunctionCall","src":"8478:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8505:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8509:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8501:3:103"},"nodeType":"YulFunctionCall","src":"8501:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8495:5:103"},"nodeType":"YulFunctionCall","src":"8495:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8471:6:103"},"nodeType":"YulFunctionCall","src":"8471:44:103"},"nodeType":"YulExpressionStatement","src":"8471:44:103"},{"nodeType":"YulAssignment","src":"8524:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"8534:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8524:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7595:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7606:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7618:6:103","type":""}],"src":"7522:1023:103"},{"body":{"nodeType":"YulBlock","src":"8655:900:103","statements":[{"body":{"nodeType":"YulBlock","src":"8701:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8710:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8718:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8703:6:103"},"nodeType":"YulFunctionCall","src":"8703:22:103"},"nodeType":"YulExpressionStatement","src":"8703:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8676:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8685:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8672:3:103"},"nodeType":"YulFunctionCall","src":"8672:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8697:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8668:3:103"},"nodeType":"YulFunctionCall","src":"8668:32:103"},"nodeType":"YulIf","src":"8665:2:103"},{"nodeType":"YulVariableDeclaration","src":"8736:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8756:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8750:5:103"},"nodeType":"YulFunctionCall","src":"8750:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8740:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8775:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8785:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8779:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8830:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8839:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8847:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8832:6:103"},"nodeType":"YulFunctionCall","src":"8832:22:103"},"nodeType":"YulExpressionStatement","src":"8832:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8818:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8826:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8815:2:103"},"nodeType":"YulFunctionCall","src":"8815:14:103"},"nodeType":"YulIf","src":"8812:2:103"},{"nodeType":"YulVariableDeclaration","src":"8865:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8879:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"8890:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8875:3:103"},"nodeType":"YulFunctionCall","src":"8875:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8869:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8937:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8946:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8954:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8939:6:103"},"nodeType":"YulFunctionCall","src":"8939:22:103"},"nodeType":"YulExpressionStatement","src":"8939:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8917:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"8926:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8913:3:103"},"nodeType":"YulFunctionCall","src":"8913:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"8931:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8909:3:103"},"nodeType":"YulFunctionCall","src":"8909:27:103"},"nodeType":"YulIf","src":"8906:2:103"},{"nodeType":"YulVariableDeclaration","src":"8972:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9001:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8985:15:103"},"nodeType":"YulFunctionCall","src":"8985:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8976:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9022:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9035:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9029:5:103"},"nodeType":"YulFunctionCall","src":"9029:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9015:6:103"},"nodeType":"YulFunctionCall","src":"9015:24:103"},"nodeType":"YulExpressionStatement","src":"9015:24:103"},{"nodeType":"YulVariableDeclaration","src":"9048:33:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9073:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9077:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9069:3:103"},"nodeType":"YulFunctionCall","src":"9069:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9063:5:103"},"nodeType":"YulFunctionCall","src":"9063:18:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"9052:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9116:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9125:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9133:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9118:6:103"},"nodeType":"YulFunctionCall","src":"9118:22:103"},"nodeType":"YulExpressionStatement","src":"9118:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"9103:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"9112:1:103","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9100:2:103"},"nodeType":"YulFunctionCall","src":"9100:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9093:6:103"},"nodeType":"YulFunctionCall","src":"9093:22:103"},"nodeType":"YulIf","src":"9090:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9162:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9169:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9158:3:103"},"nodeType":"YulFunctionCall","src":"9158:14:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"9174:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9151:6:103"},"nodeType":"YulFunctionCall","src":"9151:31:103"},"nodeType":"YulExpressionStatement","src":"9151:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9202:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9209:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9198:3:103"},"nodeType":"YulFunctionCall","src":"9198:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9224:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9228:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9220:3:103"},"nodeType":"YulFunctionCall","src":"9220:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9214:5:103"},"nodeType":"YulFunctionCall","src":"9214:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9191:6:103"},"nodeType":"YulFunctionCall","src":"9191:42:103"},"nodeType":"YulExpressionStatement","src":"9191:42:103"},{"nodeType":"YulVariableDeclaration","src":"9242:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9268:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9272:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9264:3:103"},"nodeType":"YulFunctionCall","src":"9264:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9258:5:103"},"nodeType":"YulFunctionCall","src":"9258:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9246:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9305:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9314:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9322:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9307:6:103"},"nodeType":"YulFunctionCall","src":"9307:22:103"},"nodeType":"YulExpressionStatement","src":"9307:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9291:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9301:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9288:2:103"},"nodeType":"YulFunctionCall","src":"9288:16:103"},"nodeType":"YulIf","src":"9285:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9351:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9358:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9347:3:103"},"nodeType":"YulFunctionCall","src":"9347:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9395:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9399:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9391:3:103"},"nodeType":"YulFunctionCall","src":"9391:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9410:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"9363:27:103"},"nodeType":"YulFunctionCall","src":"9363:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9340:6:103"},"nodeType":"YulFunctionCall","src":"9340:79:103"},"nodeType":"YulExpressionStatement","src":"9340:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9439:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9446:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9435:3:103"},"nodeType":"YulFunctionCall","src":"9435:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9462:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9466:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9458:3:103"},"nodeType":"YulFunctionCall","src":"9458:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9452:5:103"},"nodeType":"YulFunctionCall","src":"9452:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9428:6:103"},"nodeType":"YulFunctionCall","src":"9428:44:103"},"nodeType":"YulExpressionStatement","src":"9428:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9492:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9499:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9488:3:103"},"nodeType":"YulFunctionCall","src":"9488:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9515:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9519:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9511:3:103"},"nodeType":"YulFunctionCall","src":"9511:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9505:5:103"},"nodeType":"YulFunctionCall","src":"9505:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9481:6:103"},"nodeType":"YulFunctionCall","src":"9481:44:103"},"nodeType":"YulExpressionStatement","src":"9481:44:103"},{"nodeType":"YulAssignment","src":"9534:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"9544:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9534:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8621:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8632:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8644:6:103","type":""}],"src":"8550:1005:103"},{"body":{"nodeType":"YulBlock","src":"9665:734:103","statements":[{"nodeType":"YulVariableDeclaration","src":"9675:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"9685:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9679:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9733:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9742:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9750:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9735:6:103"},"nodeType":"YulFunctionCall","src":"9735:22:103"},"nodeType":"YulExpressionStatement","src":"9735:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9708:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9717:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9704:3:103"},"nodeType":"YulFunctionCall","src":"9704:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9729:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9700:3:103"},"nodeType":"YulFunctionCall","src":"9700:32:103"},"nodeType":"YulIf","src":"9697:2:103"},{"nodeType":"YulVariableDeclaration","src":"9768:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9797:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"9781:15:103"},"nodeType":"YulFunctionCall","src":"9781:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9772:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9816:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9864:9:103"}],"functionName":{"name":"abi_decode_enum_ComponentType_fromMemory","nodeType":"YulIdentifier","src":"9823:40:103"},"nodeType":"YulFunctionCall","src":"9823:51:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9809:6:103"},"nodeType":"YulFunctionCall","src":"9809:66:103"},"nodeType":"YulExpressionStatement","src":"9809:66:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9895:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9902:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9891:3:103"},"nodeType":"YulFunctionCall","src":"9891:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9917:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9928:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9913:3:103"},"nodeType":"YulFunctionCall","src":"9913:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9907:5:103"},"nodeType":"YulFunctionCall","src":"9907:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9884:6:103"},"nodeType":"YulFunctionCall","src":"9884:49:103"},"nodeType":"YulExpressionStatement","src":"9884:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9953:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9960:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9949:3:103"},"nodeType":"YulFunctionCall","src":"9949:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9986:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9971:3:103"},"nodeType":"YulFunctionCall","src":"9971:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9965:5:103"},"nodeType":"YulFunctionCall","src":"9965:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9942:6:103"},"nodeType":"YulFunctionCall","src":"9942:49:103"},"nodeType":"YulExpressionStatement","src":"9942:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10011:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10018:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10007:3:103"},"nodeType":"YulFunctionCall","src":"10007:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10033:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10044:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10029:3:103"},"nodeType":"YulFunctionCall","src":"10029:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10023:5:103"},"nodeType":"YulFunctionCall","src":"10023:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10000:6:103"},"nodeType":"YulFunctionCall","src":"10000:49:103"},"nodeType":"YulExpressionStatement","src":"10000:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10069:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10076:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10065:3:103"},"nodeType":"YulFunctionCall","src":"10065:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10092:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10103:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10088:3:103"},"nodeType":"YulFunctionCall","src":"10088:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10082:5:103"},"nodeType":"YulFunctionCall","src":"10082:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10058:6:103"},"nodeType":"YulFunctionCall","src":"10058:51:103"},"nodeType":"YulExpressionStatement","src":"10058:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10129:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10136:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10125:3:103"},"nodeType":"YulFunctionCall","src":"10125:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10152:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10163:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10148:3:103"},"nodeType":"YulFunctionCall","src":"10148:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10142:5:103"},"nodeType":"YulFunctionCall","src":"10142:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10118:6:103"},"nodeType":"YulFunctionCall","src":"10118:51:103"},"nodeType":"YulExpressionStatement","src":"10118:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10189:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10196:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10185:3:103"},"nodeType":"YulFunctionCall","src":"10185:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10212:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10223:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10208:3:103"},"nodeType":"YulFunctionCall","src":"10208:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10202:5:103"},"nodeType":"YulFunctionCall","src":"10202:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10178:6:103"},"nodeType":"YulFunctionCall","src":"10178:51:103"},"nodeType":"YulExpressionStatement","src":"10178:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10249:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10256:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10245:3:103"},"nodeType":"YulFunctionCall","src":"10245:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10272:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10283:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10268:3:103"},"nodeType":"YulFunctionCall","src":"10268:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10262:5:103"},"nodeType":"YulFunctionCall","src":"10262:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10238:6:103"},"nodeType":"YulFunctionCall","src":"10238:51:103"},"nodeType":"YulExpressionStatement","src":"10238:51:103"},{"nodeType":"YulVariableDeclaration","src":"10298:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"10308:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"10302:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10331:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"10338:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10327:3:103"},"nodeType":"YulFunctionCall","src":"10327:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10353:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"10364:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10349:3:103"},"nodeType":"YulFunctionCall","src":"10349:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10343:5:103"},"nodeType":"YulFunctionCall","src":"10343:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10320:6:103"},"nodeType":"YulFunctionCall","src":"10320:49:103"},"nodeType":"YulExpressionStatement","src":"10320:49:103"},{"nodeType":"YulAssignment","src":"10378:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"10388:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10378:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9631:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9642:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9654:6:103","type":""}],"src":"9560:839:103"},{"body":{"nodeType":"YulBlock","src":"10507:907:103","statements":[{"nodeType":"YulVariableDeclaration","src":"10517:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"10527:3:103","type":"","value":"352"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10521:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10575:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10584:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10592:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10577:6:103"},"nodeType":"YulFunctionCall","src":"10577:22:103"},"nodeType":"YulExpressionStatement","src":"10577:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10550:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"10559:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10546:3:103"},"nodeType":"YulFunctionCall","src":"10546:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10571:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10542:3:103"},"nodeType":"YulFunctionCall","src":"10542:32:103"},"nodeType":"YulIf","src":"10539:2:103"},{"nodeType":"YulVariableDeclaration","src":"10610:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10639:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"10623:15:103"},"nodeType":"YulFunctionCall","src":"10623:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10614:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10658:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10671:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10665:5:103"},"nodeType":"YulFunctionCall","src":"10665:16:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10651:6:103"},"nodeType":"YulFunctionCall","src":"10651:31:103"},"nodeType":"YulExpressionStatement","src":"10651:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10702:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10709:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10698:3:103"},"nodeType":"YulFunctionCall","src":"10698:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10759:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10744:3:103"},"nodeType":"YulFunctionCall","src":"10744:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"10714:29:103"},"nodeType":"YulFunctionCall","src":"10714:49:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10691:6:103"},"nodeType":"YulFunctionCall","src":"10691:73:103"},"nodeType":"YulExpressionStatement","src":"10691:73:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10784:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10791:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10780:3:103"},"nodeType":"YulFunctionCall","src":"10780:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10830:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10841:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10826:3:103"},"nodeType":"YulFunctionCall","src":"10826:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"10796:29:103"},"nodeType":"YulFunctionCall","src":"10796:49:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10773:6:103"},"nodeType":"YulFunctionCall","src":"10773:73:103"},"nodeType":"YulExpressionStatement","src":"10773:73:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10866:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10873:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10862:3:103"},"nodeType":"YulFunctionCall","src":"10862:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10888:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10899:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10884:3:103"},"nodeType":"YulFunctionCall","src":"10884:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10878:5:103"},"nodeType":"YulFunctionCall","src":"10878:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10855:6:103"},"nodeType":"YulFunctionCall","src":"10855:49:103"},"nodeType":"YulExpressionStatement","src":"10855:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10924:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10931:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10920:3:103"},"nodeType":"YulFunctionCall","src":"10920:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10947:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10958:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10943:3:103"},"nodeType":"YulFunctionCall","src":"10943:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10937:5:103"},"nodeType":"YulFunctionCall","src":"10937:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10913:6:103"},"nodeType":"YulFunctionCall","src":"10913:51:103"},"nodeType":"YulExpressionStatement","src":"10913:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10984:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10991:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10980:3:103"},"nodeType":"YulFunctionCall","src":"10980:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11007:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11018:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11003:3:103"},"nodeType":"YulFunctionCall","src":"11003:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10997:5:103"},"nodeType":"YulFunctionCall","src":"10997:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10973:6:103"},"nodeType":"YulFunctionCall","src":"10973:51:103"},"nodeType":"YulExpressionStatement","src":"10973:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11044:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"11051:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11040:3:103"},"nodeType":"YulFunctionCall","src":"11040:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11067:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11078:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11063:3:103"},"nodeType":"YulFunctionCall","src":"11063:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11057:5:103"},"nodeType":"YulFunctionCall","src":"11057:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11033:6:103"},"nodeType":"YulFunctionCall","src":"11033:51:103"},"nodeType":"YulExpressionStatement","src":"11033:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11104:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"11111:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11100:3:103"},"nodeType":"YulFunctionCall","src":"11100:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11127:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11138:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11123:3:103"},"nodeType":"YulFunctionCall","src":"11123:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11117:5:103"},"nodeType":"YulFunctionCall","src":"11117:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11093:6:103"},"nodeType":"YulFunctionCall","src":"11093:51:103"},"nodeType":"YulExpressionStatement","src":"11093:51:103"},{"nodeType":"YulVariableDeclaration","src":"11153:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"11163:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"11157:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11186:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"11193:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11182:3:103"},"nodeType":"YulFunctionCall","src":"11182:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11208:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"11219:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11204:3:103"},"nodeType":"YulFunctionCall","src":"11204:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11198:5:103"},"nodeType":"YulFunctionCall","src":"11198:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11175:6:103"},"nodeType":"YulFunctionCall","src":"11175:49:103"},"nodeType":"YulExpressionStatement","src":"11175:49:103"},{"nodeType":"YulVariableDeclaration","src":"11233:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"11243:3:103","type":"","value":"288"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"11237:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11266:5:103"},{"name":"_3","nodeType":"YulIdentifier","src":"11273:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11262:3:103"},"nodeType":"YulFunctionCall","src":"11262:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11288:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"11299:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11284:3:103"},"nodeType":"YulFunctionCall","src":"11284:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11278:5:103"},"nodeType":"YulFunctionCall","src":"11278:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11255:6:103"},"nodeType":"YulFunctionCall","src":"11255:49:103"},"nodeType":"YulExpressionStatement","src":"11255:49:103"},{"nodeType":"YulVariableDeclaration","src":"11313:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"11323:3:103","type":"","value":"320"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"11317:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11346:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"11353:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11342:3:103"},"nodeType":"YulFunctionCall","src":"11342:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11368:9:103"},{"name":"_4","nodeType":"YulIdentifier","src":"11379:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11364:3:103"},"nodeType":"YulFunctionCall","src":"11364:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11358:5:103"},"nodeType":"YulFunctionCall","src":"11358:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11335:6:103"},"nodeType":"YulFunctionCall","src":"11335:49:103"},"nodeType":"YulExpressionStatement","src":"11335:49:103"},{"nodeType":"YulAssignment","src":"11393:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"11403:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11393:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Pool_$5502_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10473:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10484:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10496:6:103","type":""}],"src":"10404:1010:103"},{"body":{"nodeType":"YulBlock","src":"11489:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"11535:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11544:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11552:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11537:6:103"},"nodeType":"YulFunctionCall","src":"11537:22:103"},"nodeType":"YulExpressionStatement","src":"11537:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11510:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11519:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11506:3:103"},"nodeType":"YulFunctionCall","src":"11506:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11531:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11502:3:103"},"nodeType":"YulFunctionCall","src":"11502:32:103"},"nodeType":"YulIf","src":"11499:2:103"},{"nodeType":"YulAssignment","src":"11570:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11593:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11580:12:103"},"nodeType":"YulFunctionCall","src":"11580:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11570:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11455:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11466:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11478:6:103","type":""}],"src":"11419:190:103"},{"body":{"nodeType":"YulBlock","src":"11695:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"11741:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11750:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11758:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11743:6:103"},"nodeType":"YulFunctionCall","src":"11743:22:103"},"nodeType":"YulExpressionStatement","src":"11743:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11716:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11725:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11712:3:103"},"nodeType":"YulFunctionCall","src":"11712:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11737:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11708:3:103"},"nodeType":"YulFunctionCall","src":"11708:32:103"},"nodeType":"YulIf","src":"11705:2:103"},{"nodeType":"YulAssignment","src":"11776:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11792:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11786:5:103"},"nodeType":"YulFunctionCall","src":"11786:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11776:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11661:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11672:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11684:6:103","type":""}],"src":"11614:194:103"},{"body":{"nodeType":"YulBlock","src":"11900:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"11946:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11955:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11963:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11948:6:103"},"nodeType":"YulFunctionCall","src":"11948:22:103"},"nodeType":"YulExpressionStatement","src":"11948:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11921:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11930:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11917:3:103"},"nodeType":"YulFunctionCall","src":"11917:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11942:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11913:3:103"},"nodeType":"YulFunctionCall","src":"11913:32:103"},"nodeType":"YulIf","src":"11910:2:103"},{"nodeType":"YulAssignment","src":"11981:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12004:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11991:12:103"},"nodeType":"YulFunctionCall","src":"11991:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11981:6:103"}]},{"nodeType":"YulAssignment","src":"12023:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12050:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12061:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12046:3:103"},"nodeType":"YulFunctionCall","src":"12046:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12033:12:103"},"nodeType":"YulFunctionCall","src":"12033:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12023:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11858:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11869:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11881:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11889:6:103","type":""}],"src":"11813:258:103"},{"body":{"nodeType":"YulBlock","src":"12120:60:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12137:3:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12146:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12161:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12166:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12157:3:103"},"nodeType":"YulFunctionCall","src":"12157:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"12170:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12153:3:103"},"nodeType":"YulFunctionCall","src":"12153:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12142:3:103"},"nodeType":"YulFunctionCall","src":"12142:31:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12130:6:103"},"nodeType":"YulFunctionCall","src":"12130:44:103"},"nodeType":"YulExpressionStatement","src":"12130:44:103"}]},"name":"abi_encode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12104:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12111:3:103","type":""}],"src":"12076:104:103"},{"body":{"nodeType":"YulBlock","src":"12234:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"12244:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12264:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12258:5:103"},"nodeType":"YulFunctionCall","src":"12258:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12248:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12286:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12291:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12279:6:103"},"nodeType":"YulFunctionCall","src":"12279:19:103"},"nodeType":"YulExpressionStatement","src":"12279:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12333:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"12340:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12329:3:103"},"nodeType":"YulFunctionCall","src":"12329:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12351:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"12356:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12347:3:103"},"nodeType":"YulFunctionCall","src":"12347:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"12363:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12307:21:103"},"nodeType":"YulFunctionCall","src":"12307:63:103"},"nodeType":"YulExpressionStatement","src":"12307:63:103"},{"nodeType":"YulAssignment","src":"12379:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12394:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12407:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12415:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12403:3:103"},"nodeType":"YulFunctionCall","src":"12403:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12424:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12420:3:103"},"nodeType":"YulFunctionCall","src":"12420:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12399:3:103"},"nodeType":"YulFunctionCall","src":"12399:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12390:3:103"},"nodeType":"YulFunctionCall","src":"12390:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"12431:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12386:3:103"},"nodeType":"YulFunctionCall","src":"12386:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12379:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12211:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12218:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12226:3:103","type":""}],"src":"12185:257:103"},{"body":{"nodeType":"YulBlock","src":"12500:88:103","statements":[{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12549:5:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"12510:38:103"},"nodeType":"YulFunctionCall","src":"12510:45:103"},"nodeType":"YulExpressionStatement","src":"12510:45:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12571:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"12576:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12564:6:103"},"nodeType":"YulFunctionCall","src":"12564:18:103"},"nodeType":"YulExpressionStatement","src":"12564:18:103"}]},"name":"abi_encode_enum_BundleState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12484:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12491:3:103","type":""}],"src":"12447:141:103"},{"body":{"nodeType":"YulBlock","src":"12740:147:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12757:3:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12762:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12750:6:103"},"nodeType":"YulFunctionCall","src":"12750:19:103"},"nodeType":"YulExpressionStatement","src":"12750:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12789:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"12794:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12785:3:103"},"nodeType":"YulFunctionCall","src":"12785:12:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12807:2:103","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"12811:6:103"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12803:3:103"},"nodeType":"YulFunctionCall","src":"12803:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12824:26:103","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12820:3:103"},"nodeType":"YulFunctionCall","src":"12820:31:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12799:3:103"},"nodeType":"YulFunctionCall","src":"12799:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12778:6:103"},"nodeType":"YulFunctionCall","src":"12778:75:103"},"nodeType":"YulExpressionStatement","src":"12778:75:103"},{"nodeType":"YulAssignment","src":"12862:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12873:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"12878:2:103","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12869:3:103"},"nodeType":"YulFunctionCall","src":"12869:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12862:3:103"}]}]},"name":"abi_encode_tuple_packed_t_uint256_t_address__to_t_uint256_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12708:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12713:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12721:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12732:3:103","type":""}],"src":"12593:294:103"},{"body":{"nodeType":"YulBlock","src":"12993:102:103","statements":[{"nodeType":"YulAssignment","src":"13003:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13015:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13026:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13011:3:103"},"nodeType":"YulFunctionCall","src":"13011:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13003:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13045:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13060:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13076:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13081:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13072:3:103"},"nodeType":"YulFunctionCall","src":"13072:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13085:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13068:3:103"},"nodeType":"YulFunctionCall","src":"13068:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13056:3:103"},"nodeType":"YulFunctionCall","src":"13056:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13038:6:103"},"nodeType":"YulFunctionCall","src":"13038:51:103"},"nodeType":"YulExpressionStatement","src":"13038:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12962:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12973:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12984:4:103","type":""}],"src":"12892:203:103"},{"body":{"nodeType":"YulBlock","src":"13195:92:103","statements":[{"nodeType":"YulAssignment","src":"13205:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13228:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13213:3:103"},"nodeType":"YulFunctionCall","src":"13213:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13205:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13247:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13272:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13265:6:103"},"nodeType":"YulFunctionCall","src":"13265:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13258:6:103"},"nodeType":"YulFunctionCall","src":"13258:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13240:6:103"},"nodeType":"YulFunctionCall","src":"13240:41:103"},"nodeType":"YulExpressionStatement","src":"13240:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13164:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13175:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13186:4:103","type":""}],"src":"13100:187:103"},{"body":{"nodeType":"YulBlock","src":"13393:76:103","statements":[{"nodeType":"YulAssignment","src":"13403:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13426:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13411:3:103"},"nodeType":"YulFunctionCall","src":"13411:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13403:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13445:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13456:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13438:6:103"},"nodeType":"YulFunctionCall","src":"13438:25:103"},"nodeType":"YulExpressionStatement","src":"13438:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13362:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13373:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13384:4:103","type":""}],"src":"13292:177:103"},{"body":{"nodeType":"YulBlock","src":"13603:145:103","statements":[{"nodeType":"YulAssignment","src":"13613:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13625:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13636:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13621:3:103"},"nodeType":"YulFunctionCall","src":"13621:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13613:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13655:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13666:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13648:6:103"},"nodeType":"YulFunctionCall","src":"13648:25:103"},"nodeType":"YulExpressionStatement","src":"13648:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13693:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13704:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13689:3:103"},"nodeType":"YulFunctionCall","src":"13689:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13713:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13729:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13734:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13725:3:103"},"nodeType":"YulFunctionCall","src":"13725:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13738:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13721:3:103"},"nodeType":"YulFunctionCall","src":"13721:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13709:3:103"},"nodeType":"YulFunctionCall","src":"13709:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13682:6:103"},"nodeType":"YulFunctionCall","src":"13682:60:103"},"nodeType":"YulExpressionStatement","src":"13682:60:103"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13564:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13575:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13583:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13594:4:103","type":""}],"src":"13474:274:103"},{"body":{"nodeType":"YulBlock","src":"13882:119:103","statements":[{"nodeType":"YulAssignment","src":"13892:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13904:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13915:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13900:3:103"},"nodeType":"YulFunctionCall","src":"13900:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13892:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13934:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13945:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13927:6:103"},"nodeType":"YulFunctionCall","src":"13927:25:103"},"nodeType":"YulExpressionStatement","src":"13927:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13972:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13983:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13968:3:103"},"nodeType":"YulFunctionCall","src":"13968:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13988:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13961:6:103"},"nodeType":"YulFunctionCall","src":"13961:34:103"},"nodeType":"YulExpressionStatement","src":"13961:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13843:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13854:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13862:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13873:4:103","type":""}],"src":"13753:248:103"},{"body":{"nodeType":"YulBlock","src":"14125:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14142:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14153:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14135:6:103"},"nodeType":"YulFunctionCall","src":"14135:21:103"},"nodeType":"YulExpressionStatement","src":"14135:21:103"},{"nodeType":"YulAssignment","src":"14165:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14190:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14202:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14213:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14198:3:103"},"nodeType":"YulFunctionCall","src":"14198:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"14173:16:103"},"nodeType":"YulFunctionCall","src":"14173:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14165:4:103"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14094:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14105:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14116:4:103","type":""}],"src":"14006:217:103"},{"body":{"nodeType":"YulBlock","src":"14350:102:103","statements":[{"nodeType":"YulAssignment","src":"14360:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14372:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14383:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14368:3:103"},"nodeType":"YulFunctionCall","src":"14368:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14360:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14402:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14417:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14433:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14438:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14429:3:103"},"nodeType":"YulFunctionCall","src":"14429:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14442:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14425:3:103"},"nodeType":"YulFunctionCall","src":"14425:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14413:3:103"},"nodeType":"YulFunctionCall","src":"14413:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14395:6:103"},"nodeType":"YulFunctionCall","src":"14395:51:103"},"nodeType":"YulExpressionStatement","src":"14395:51:103"}]},"name":"abi_encode_tuple_t_contract$_IBundleToken_$6825__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14319:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14330:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14341:4:103","type":""}],"src":"14228:224:103"},{"body":{"nodeType":"YulBlock","src":"14589:102:103","statements":[{"nodeType":"YulAssignment","src":"14599:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14611:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14622:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14607:3:103"},"nodeType":"YulFunctionCall","src":"14607:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14599:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14641:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14656:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14672:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14677:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14668:3:103"},"nodeType":"YulFunctionCall","src":"14668:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14681:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14664:3:103"},"nodeType":"YulFunctionCall","src":"14664:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14652:3:103"},"nodeType":"YulFunctionCall","src":"14652:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14634:6:103"},"nodeType":"YulFunctionCall","src":"14634:51:103"},"nodeType":"YulExpressionStatement","src":"14634:51:103"}]},"name":"abi_encode_tuple_t_contract$_IComponentOwnerService_$6009__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14558:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14569:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14580:4:103","type":""}],"src":"14457:234:103"},{"body":{"nodeType":"YulBlock","src":"14816:102:103","statements":[{"nodeType":"YulAssignment","src":"14826:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14838:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14849:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14834:3:103"},"nodeType":"YulFunctionCall","src":"14834:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14826:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14868:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14883:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14899:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14904:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14895:3:103"},"nodeType":"YulFunctionCall","src":"14895:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14908:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14891:3:103"},"nodeType":"YulFunctionCall","src":"14891:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14879:3:103"},"nodeType":"YulFunctionCall","src":"14879:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14861:6:103"},"nodeType":"YulFunctionCall","src":"14861:51:103"},"nodeType":"YulExpressionStatement","src":"14861:51:103"}]},"name":"abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14785:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14796:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14807:4:103","type":""}],"src":"14696:222:103"},{"body":{"nodeType":"YulBlock","src":"15039:102:103","statements":[{"nodeType":"YulAssignment","src":"15049:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15061:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15072:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15057:3:103"},"nodeType":"YulFunctionCall","src":"15057:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15049:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15091:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15106:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15122:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15127:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15118:3:103"},"nodeType":"YulFunctionCall","src":"15118:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15131:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15114:3:103"},"nodeType":"YulFunctionCall","src":"15114:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15102:3:103"},"nodeType":"YulFunctionCall","src":"15102:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15084:6:103"},"nodeType":"YulFunctionCall","src":"15084:51:103"},"nodeType":"YulExpressionStatement","src":"15084:51:103"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$8831__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15008:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15019:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15030:4:103","type":""}],"src":"14923:218:103"},{"body":{"nodeType":"YulBlock","src":"15280:102:103","statements":[{"nodeType":"YulAssignment","src":"15290:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15302:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15313:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15298:3:103"},"nodeType":"YulFunctionCall","src":"15298:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15290:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15332:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15347:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15363:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15368:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15359:3:103"},"nodeType":"YulFunctionCall","src":"15359:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15372:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15355:3:103"},"nodeType":"YulFunctionCall","src":"15355:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15343:3:103"},"nodeType":"YulFunctionCall","src":"15343:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15325:6:103"},"nodeType":"YulFunctionCall","src":"15325:51:103"},"nodeType":"YulExpressionStatement","src":"15325:51:103"}]},"name":"abi_encode_tuple_t_contract$_IInstanceOperatorService_$6160__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15249:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15260:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15271:4:103","type":""}],"src":"15146:236:103"},{"body":{"nodeType":"YulBlock","src":"15511:102:103","statements":[{"nodeType":"YulAssignment","src":"15521:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15533:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15544:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15529:3:103"},"nodeType":"YulFunctionCall","src":"15529:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15521:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15563:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15578:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15594:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15599:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15590:3:103"},"nodeType":"YulFunctionCall","src":"15590:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15603:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15586:3:103"},"nodeType":"YulFunctionCall","src":"15586:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15574:3:103"},"nodeType":"YulFunctionCall","src":"15574:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15556:6:103"},"nodeType":"YulFunctionCall","src":"15556:51:103"},"nodeType":"YulExpressionStatement","src":"15556:51:103"}]},"name":"abi_encode_tuple_t_contract$_IOracleService_$6519__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15480:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15491:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15502:4:103","type":""}],"src":"15387:226:103"},{"body":{"nodeType":"YulBlock","src":"15743:102:103","statements":[{"nodeType":"YulAssignment","src":"15753:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15765:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15776:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15761:3:103"},"nodeType":"YulFunctionCall","src":"15761:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15753:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15795:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15810:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15826:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15831:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15822:3:103"},"nodeType":"YulFunctionCall","src":"15822:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15835:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15818:3:103"},"nodeType":"YulFunctionCall","src":"15818:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15806:3:103"},"nodeType":"YulFunctionCall","src":"15806:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15788:6:103"},"nodeType":"YulFunctionCall","src":"15788:51:103"},"nodeType":"YulExpressionStatement","src":"15788:51:103"}]},"name":"abi_encode_tuple_t_contract$_IProductService_$6664__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15712:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15723:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15734:4:103","type":""}],"src":"15618:227:103"},{"body":{"nodeType":"YulBlock","src":"15969:102:103","statements":[{"nodeType":"YulAssignment","src":"15979:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15991:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16002:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15987:3:103"},"nodeType":"YulFunctionCall","src":"15987:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15979:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16021:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16036:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16052:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16057:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16048:3:103"},"nodeType":"YulFunctionCall","src":"16048:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"16061:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16044:3:103"},"nodeType":"YulFunctionCall","src":"16044:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16032:3:103"},"nodeType":"YulFunctionCall","src":"16032:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16014:6:103"},"nodeType":"YulFunctionCall","src":"16014:51:103"},"nodeType":"YulExpressionStatement","src":"16014:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15938:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15949:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15960:4:103","type":""}],"src":"15850:221:103"},{"body":{"nodeType":"YulBlock","src":"16202:102:103","statements":[{"nodeType":"YulAssignment","src":"16212:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16224:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16235:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16220:3:103"},"nodeType":"YulFunctionCall","src":"16220:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16212:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16254:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16269:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16285:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16290:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16281:3:103"},"nodeType":"YulFunctionCall","src":"16281:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"16294:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16277:3:103"},"nodeType":"YulFunctionCall","src":"16277:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16265:3:103"},"nodeType":"YulFunctionCall","src":"16265:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16247:6:103"},"nodeType":"YulFunctionCall","src":"16247:51:103"},"nodeType":"YulExpressionStatement","src":"16247:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRiskpoolService_$6770__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16171:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16182:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16193:4:103","type":""}],"src":"16076:228:103"},{"body":{"nodeType":"YulBlock","src":"16427:132:103","statements":[{"nodeType":"YulAssignment","src":"16437:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16449:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16460:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16445:3:103"},"nodeType":"YulFunctionCall","src":"16445:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16437:4:103"}]},{"body":{"nodeType":"YulBlock","src":"16497:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"16499:16:103"},"nodeType":"YulFunctionCall","src":"16499:18:103"},"nodeType":"YulExpressionStatement","src":"16499:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16485:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"16493:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16482:2:103"},"nodeType":"YulFunctionCall","src":"16482:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16475:6:103"},"nodeType":"YulFunctionCall","src":"16475:21:103"},"nodeType":"YulIf","src":"16472:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16535:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16546:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16528:6:103"},"nodeType":"YulFunctionCall","src":"16528:25:103"},"nodeType":"YulExpressionStatement","src":"16528:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16396:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16407:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16418:4:103","type":""}],"src":"16309:250:103"},{"body":{"nodeType":"YulBlock","src":"16681:128:103","statements":[{"nodeType":"YulAssignment","src":"16691:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16703:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16714:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16699:3:103"},"nodeType":"YulFunctionCall","src":"16699:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16691:4:103"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16762:6:103"}],"functionName":{"name":"validator_assert_enum_ComponentType","nodeType":"YulIdentifier","src":"16726:35:103"},"nodeType":"YulFunctionCall","src":"16726:43:103"},"nodeType":"YulExpressionStatement","src":"16726:43:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16785:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16796:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16778:6:103"},"nodeType":"YulFunctionCall","src":"16778:25:103"},"nodeType":"YulExpressionStatement","src":"16778:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16650:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16661:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16672:4:103","type":""}],"src":"16564:245:103"},{"body":{"nodeType":"YulBlock","src":"16921:87:103","statements":[{"nodeType":"YulAssignment","src":"16931:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16943:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16954:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16939:3:103"},"nodeType":"YulFunctionCall","src":"16939:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16931:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16973:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16988:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"16996:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16984:3:103"},"nodeType":"YulFunctionCall","src":"16984:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16966:6:103"},"nodeType":"YulFunctionCall","src":"16966:36:103"},"nodeType":"YulExpressionStatement","src":"16966:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16890:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16901:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16912:4:103","type":""}],"src":"16814:194:103"},{"body":{"nodeType":"YulBlock","src":"17134:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17162:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17144:6:103"},"nodeType":"YulFunctionCall","src":"17144:21:103"},"nodeType":"YulExpressionStatement","src":"17144:21:103"},{"nodeType":"YulAssignment","src":"17174:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17199:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17211:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17222:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17207:3:103"},"nodeType":"YulFunctionCall","src":"17207:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"17182:16:103"},"nodeType":"YulFunctionCall","src":"17182:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17174:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17103:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17114:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17125:4:103","type":""}],"src":"17013:219:103"},{"body":{"nodeType":"YulBlock","src":"17411:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17428:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17439:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17421:6:103"},"nodeType":"YulFunctionCall","src":"17421:21:103"},"nodeType":"YulExpressionStatement","src":"17421:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17473:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17458:3:103"},"nodeType":"YulFunctionCall","src":"17458:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17478:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17451:6:103"},"nodeType":"YulFunctionCall","src":"17451:30:103"},"nodeType":"YulExpressionStatement","src":"17451:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17501:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17512:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17497:3:103"},"nodeType":"YulFunctionCall","src":"17497:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17517:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17490:6:103"},"nodeType":"YulFunctionCall","src":"17490:62:103"},"nodeType":"YulExpressionStatement","src":"17490:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17572:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17583:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17568:3:103"},"nodeType":"YulFunctionCall","src":"17568:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17588:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17561:6:103"},"nodeType":"YulFunctionCall","src":"17561:35:103"},"nodeType":"YulExpressionStatement","src":"17561:35:103"},{"nodeType":"YulAssignment","src":"17605:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17617:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17628:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17613:3:103"},"nodeType":"YulFunctionCall","src":"17613:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17605:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17388:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17402:4:103","type":""}],"src":"17237:401:103"},{"body":{"nodeType":"YulBlock","src":"17817:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17834:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17845:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17827:6:103"},"nodeType":"YulFunctionCall","src":"17827:21:103"},"nodeType":"YulExpressionStatement","src":"17827:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17868:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17879:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17864:3:103"},"nodeType":"YulFunctionCall","src":"17864:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17884:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17857:6:103"},"nodeType":"YulFunctionCall","src":"17857:30:103"},"nodeType":"YulExpressionStatement","src":"17857:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17918:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17903:3:103"},"nodeType":"YulFunctionCall","src":"17903:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17923:34:103","type":"","value":"ERROR:IS-002:IMPLEMENATION_MISSI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17896:6:103"},"nodeType":"YulFunctionCall","src":"17896:62:103"},"nodeType":"YulExpressionStatement","src":"17896:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17989:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17974:3:103"},"nodeType":"YulFunctionCall","src":"17974:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17994:4:103","type":"","value":"NG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17967:6:103"},"nodeType":"YulFunctionCall","src":"17967:32:103"},"nodeType":"YulExpressionStatement","src":"17967:32:103"},{"nodeType":"YulAssignment","src":"18008:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18020:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18031:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18016:3:103"},"nodeType":"YulFunctionCall","src":"18016:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18008:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3538b2b40dc1579a3c1803dfe60abab88e636a7c9369729bbd4ce7b793360801__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17794:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17808:4:103","type":""}],"src":"17643:398:103"},{"body":{"nodeType":"YulBlock","src":"18220:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18237:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18248:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18230:6:103"},"nodeType":"YulFunctionCall","src":"18230:21:103"},"nodeType":"YulExpressionStatement","src":"18230:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18282:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18267:3:103"},"nodeType":"YulFunctionCall","src":"18267:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18287:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18260:6:103"},"nodeType":"YulFunctionCall","src":"18260:30:103"},"nodeType":"YulExpressionStatement","src":"18260:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18310:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18321:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18306:3:103"},"nodeType":"YulFunctionCall","src":"18306:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18326:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18299:6:103"},"nodeType":"YulFunctionCall","src":"18299:62:103"},"nodeType":"YulExpressionStatement","src":"18299:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18392:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18377:3:103"},"nodeType":"YulFunctionCall","src":"18377:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18397:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18370:6:103"},"nodeType":"YulFunctionCall","src":"18370:44:103"},"nodeType":"YulExpressionStatement","src":"18370:44:103"},{"nodeType":"YulAssignment","src":"18423:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18435:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18446:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18431:3:103"},"nodeType":"YulFunctionCall","src":"18431:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18423:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18197:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18211:4:103","type":""}],"src":"18046:410:103"},{"body":{"nodeType":"YulBlock","src":"18635:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18663:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18645:6:103"},"nodeType":"YulFunctionCall","src":"18645:21:103"},"nodeType":"YulExpressionStatement","src":"18645:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18686:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18697:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18682:3:103"},"nodeType":"YulFunctionCall","src":"18682:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18702:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18675:6:103"},"nodeType":"YulFunctionCall","src":"18675:30:103"},"nodeType":"YulExpressionStatement","src":"18675:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18736:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18721:3:103"},"nodeType":"YulFunctionCall","src":"18721:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18741:34:103","type":"","value":"ERROR:IS-001:IMPLEMENATION_MISSI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18714:6:103"},"nodeType":"YulFunctionCall","src":"18714:62:103"},"nodeType":"YulExpressionStatement","src":"18714:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18796:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18807:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18792:3:103"},"nodeType":"YulFunctionCall","src":"18792:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18812:4:103","type":"","value":"NG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18785:6:103"},"nodeType":"YulFunctionCall","src":"18785:32:103"},"nodeType":"YulExpressionStatement","src":"18785:32:103"},{"nodeType":"YulAssignment","src":"18826:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18838:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18849:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18834:3:103"},"nodeType":"YulFunctionCall","src":"18834:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18826:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9f10dbd7637aa20fb8b54a4dbdfe5499f4b0287e8df0e24d98f28636def7ca3d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18612:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18626:4:103","type":""}],"src":"18461:398:103"},{"body":{"nodeType":"YulBlock","src":"19038:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19066:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19048:6:103"},"nodeType":"YulFunctionCall","src":"19048:21:103"},"nodeType":"YulExpressionStatement","src":"19048:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19089:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19100:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19085:3:103"},"nodeType":"YulFunctionCall","src":"19085:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19105:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19078:6:103"},"nodeType":"YulFunctionCall","src":"19078:30:103"},"nodeType":"YulExpressionStatement","src":"19078:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19128:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19139:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19124:3:103"},"nodeType":"YulFunctionCall","src":"19124:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19144:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19117:6:103"},"nodeType":"YulFunctionCall","src":"19117:62:103"},"nodeType":"YulExpressionStatement","src":"19117:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19199:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19210:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19195:3:103"},"nodeType":"YulFunctionCall","src":"19195:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19215:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19188:6:103"},"nodeType":"YulFunctionCall","src":"19188:41:103"},"nodeType":"YulExpressionStatement","src":"19188:41:103"},{"nodeType":"YulAssignment","src":"19238:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19261:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19246:3:103"},"nodeType":"YulFunctionCall","src":"19246:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19238:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19015:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19029:4:103","type":""}],"src":"18864:407:103"},{"body":{"nodeType":"YulBlock","src":"19435:590:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19452:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19463:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19445:6:103"},"nodeType":"YulFunctionCall","src":"19445:21:103"},"nodeType":"YulExpressionStatement","src":"19445:21:103"},{"nodeType":"YulVariableDeclaration","src":"19475:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19491:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19485:5:103"},"nodeType":"YulFunctionCall","src":"19485:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19479:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19546:2:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"19507:38:103"},"nodeType":"YulFunctionCall","src":"19507:42:103"},"nodeType":"YulExpressionStatement","src":"19507:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19580:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19565:3:103"},"nodeType":"YulFunctionCall","src":"19565:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"19585:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19558:6:103"},"nodeType":"YulFunctionCall","src":"19558:30:103"},"nodeType":"YulExpressionStatement","src":"19558:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19608:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19619:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19604:3:103"},"nodeType":"YulFunctionCall","src":"19604:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19634:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"19642:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19630:3:103"},"nodeType":"YulFunctionCall","src":"19630:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19624:5:103"},"nodeType":"YulFunctionCall","src":"19624:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19597:6:103"},"nodeType":"YulFunctionCall","src":"19597:50:103"},"nodeType":"YulExpressionStatement","src":"19597:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19667:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19678:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19663:3:103"},"nodeType":"YulFunctionCall","src":"19663:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19693:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"19701:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19689:3:103"},"nodeType":"YulFunctionCall","src":"19689:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19683:5:103"},"nodeType":"YulFunctionCall","src":"19683:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19656:6:103"},"nodeType":"YulFunctionCall","src":"19656:50:103"},"nodeType":"YulExpressionStatement","src":"19656:50:103"},{"nodeType":"YulVariableDeclaration","src":"19715:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19745:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"19753:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19741:3:103"},"nodeType":"YulFunctionCall","src":"19741:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19735:5:103"},"nodeType":"YulFunctionCall","src":"19735:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"19719:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19777:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19788:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19773:3:103"},"nodeType":"YulFunctionCall","src":"19773:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"19794:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19766:6:103"},"nodeType":"YulFunctionCall","src":"19766:33:103"},"nodeType":"YulExpressionStatement","src":"19766:33:103"},{"nodeType":"YulVariableDeclaration","src":"19808:65:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"19839:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19868:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19853:3:103"},"nodeType":"YulFunctionCall","src":"19853:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"19822:16:103"},"nodeType":"YulFunctionCall","src":"19822:51:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"19812:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19893:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19904:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19889:3:103"},"nodeType":"YulFunctionCall","src":"19889:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19920:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"19928:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19916:3:103"},"nodeType":"YulFunctionCall","src":"19916:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19910:5:103"},"nodeType":"YulFunctionCall","src":"19910:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19882:6:103"},"nodeType":"YulFunctionCall","src":"19882:52:103"},"nodeType":"YulExpressionStatement","src":"19882:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19954:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19965:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19950:3:103"},"nodeType":"YulFunctionCall","src":"19950:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19982:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"19990:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19978:3:103"},"nodeType":"YulFunctionCall","src":"19978:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19972:5:103"},"nodeType":"YulFunctionCall","src":"19972:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19943:6:103"},"nodeType":"YulFunctionCall","src":"19943:53:103"},"nodeType":"YulExpressionStatement","src":"19943:53:103"},{"nodeType":"YulAssignment","src":"20005:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"20013:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20005:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Application_$5262_memory_ptr__to_t_struct$_Application_$5262_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19404:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19415:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19426:4:103","type":""}],"src":"19276:749:103"},{"body":{"nodeType":"YulBlock","src":"20179:931:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20196:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20207:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20189:6:103"},"nodeType":"YulFunctionCall","src":"20189:21:103"},"nodeType":"YulExpressionStatement","src":"20189:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20230:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20241:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20226:3:103"},"nodeType":"YulFunctionCall","src":"20226:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20252:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20246:5:103"},"nodeType":"YulFunctionCall","src":"20246:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20219:6:103"},"nodeType":"YulFunctionCall","src":"20219:41:103"},"nodeType":"YulExpressionStatement","src":"20219:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20280:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20291:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20276:3:103"},"nodeType":"YulFunctionCall","src":"20276:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20306:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20314:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20302:3:103"},"nodeType":"YulFunctionCall","src":"20302:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20296:5:103"},"nodeType":"YulFunctionCall","src":"20296:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20269:6:103"},"nodeType":"YulFunctionCall","src":"20269:50:103"},"nodeType":"YulExpressionStatement","src":"20269:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20339:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20350:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20335:3:103"},"nodeType":"YulFunctionCall","src":"20335:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20365:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20373:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20361:3:103"},"nodeType":"YulFunctionCall","src":"20361:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20355:5:103"},"nodeType":"YulFunctionCall","src":"20355:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20328:6:103"},"nodeType":"YulFunctionCall","src":"20328:50:103"},"nodeType":"YulExpressionStatement","src":"20328:50:103"},{"nodeType":"YulVariableDeclaration","src":"20387:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20417:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20425:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20413:3:103"},"nodeType":"YulFunctionCall","src":"20413:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20407:5:103"},"nodeType":"YulFunctionCall","src":"20407:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"20391:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"20466:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20484:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20495:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20480:3:103"},"nodeType":"YulFunctionCall","src":"20480:19:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"20438:27:103"},"nodeType":"YulFunctionCall","src":"20438:62:103"},"nodeType":"YulExpressionStatement","src":"20438:62:103"},{"nodeType":"YulVariableDeclaration","src":"20509:45:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20541:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20549:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20537:3:103"},"nodeType":"YulFunctionCall","src":"20537:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20531:5:103"},"nodeType":"YulFunctionCall","src":"20531:23:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"20513:14:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20563:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"20573:6:103","type":"","value":"0x0140"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20567:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20599:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20610:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20595:3:103"},"nodeType":"YulFunctionCall","src":"20595:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"20616:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20588:6:103"},"nodeType":"YulFunctionCall","src":"20588:31:103"},"nodeType":"YulExpressionStatement","src":"20588:31:103"},{"nodeType":"YulVariableDeclaration","src":"20628:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"20659:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20679:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20690:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20675:3:103"},"nodeType":"YulFunctionCall","src":"20675:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"20642:16:103"},"nodeType":"YulFunctionCall","src":"20642:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"20632:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20715:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20726:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20711:3:103"},"nodeType":"YulFunctionCall","src":"20711:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20742:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20750:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20738:3:103"},"nodeType":"YulFunctionCall","src":"20738:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20732:5:103"},"nodeType":"YulFunctionCall","src":"20732:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20704:6:103"},"nodeType":"YulFunctionCall","src":"20704:52:103"},"nodeType":"YulExpressionStatement","src":"20704:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20776:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20787:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20772:3:103"},"nodeType":"YulFunctionCall","src":"20772:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20803:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20811:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20799:3:103"},"nodeType":"YulFunctionCall","src":"20799:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20793:5:103"},"nodeType":"YulFunctionCall","src":"20793:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20765:6:103"},"nodeType":"YulFunctionCall","src":"20765:52:103"},"nodeType":"YulExpressionStatement","src":"20765:52:103"},{"nodeType":"YulVariableDeclaration","src":"20826:33:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20846:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20854:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20842:3:103"},"nodeType":"YulFunctionCall","src":"20842:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20836:5:103"},"nodeType":"YulFunctionCall","src":"20836:23:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"20830:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20868:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"20878:3:103","type":"","value":"256"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"20872:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20901:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"20912:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20897:3:103"},"nodeType":"YulFunctionCall","src":"20897:18:103"},{"name":"_2","nodeType":"YulIdentifier","src":"20917:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20890:6:103"},"nodeType":"YulFunctionCall","src":"20890:30:103"},"nodeType":"YulExpressionStatement","src":"20890:30:103"},{"nodeType":"YulVariableDeclaration","src":"20929:32:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20949:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"20957:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20945:3:103"},"nodeType":"YulFunctionCall","src":"20945:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20939:5:103"},"nodeType":"YulFunctionCall","src":"20939:22:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"20933:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20970:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"20980:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"20974:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21003:9:103"},{"name":"_5","nodeType":"YulIdentifier","src":"21014:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20999:3:103"},"nodeType":"YulFunctionCall","src":"20999:18:103"},{"name":"_4","nodeType":"YulIdentifier","src":"21019:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20992:6:103"},"nodeType":"YulFunctionCall","src":"20992:30:103"},"nodeType":"YulExpressionStatement","src":"20992:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21042:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"21053:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21038:3:103"},"nodeType":"YulFunctionCall","src":"21038:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21068:6:103"},{"name":"_5","nodeType":"YulIdentifier","src":"21076:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21064:3:103"},"nodeType":"YulFunctionCall","src":"21064:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21058:5:103"},"nodeType":"YulFunctionCall","src":"21058:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21031:6:103"},"nodeType":"YulFunctionCall","src":"21031:50:103"},"nodeType":"YulExpressionStatement","src":"21031:50:103"},{"nodeType":"YulAssignment","src":"21090:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"21098:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21090:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20148:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20159:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20170:4:103","type":""}],"src":"20030:1080:103"},{"body":{"nodeType":"YulBlock","src":"21262:590:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21290:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21272:6:103"},"nodeType":"YulFunctionCall","src":"21272:21:103"},"nodeType":"YulExpressionStatement","src":"21272:21:103"},{"nodeType":"YulVariableDeclaration","src":"21302:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21318:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21312:5:103"},"nodeType":"YulFunctionCall","src":"21312:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21306:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"21373:2:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"21334:38:103"},"nodeType":"YulFunctionCall","src":"21334:42:103"},"nodeType":"YulExpressionStatement","src":"21334:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21407:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21392:3:103"},"nodeType":"YulFunctionCall","src":"21392:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"21412:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21385:6:103"},"nodeType":"YulFunctionCall","src":"21385:30:103"},"nodeType":"YulExpressionStatement","src":"21385:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21435:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21446:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21431:3:103"},"nodeType":"YulFunctionCall","src":"21431:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21461:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21469:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21457:3:103"},"nodeType":"YulFunctionCall","src":"21457:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21451:5:103"},"nodeType":"YulFunctionCall","src":"21451:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21424:6:103"},"nodeType":"YulFunctionCall","src":"21424:50:103"},"nodeType":"YulExpressionStatement","src":"21424:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21494:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21505:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21490:3:103"},"nodeType":"YulFunctionCall","src":"21490:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21520:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21528:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21516:3:103"},"nodeType":"YulFunctionCall","src":"21516:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21510:5:103"},"nodeType":"YulFunctionCall","src":"21510:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21483:6:103"},"nodeType":"YulFunctionCall","src":"21483:50:103"},"nodeType":"YulExpressionStatement","src":"21483:50:103"},{"nodeType":"YulVariableDeclaration","src":"21542:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21572:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21580:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21568:3:103"},"nodeType":"YulFunctionCall","src":"21568:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21562:5:103"},"nodeType":"YulFunctionCall","src":"21562:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"21546:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21615:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21600:3:103"},"nodeType":"YulFunctionCall","src":"21600:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"21621:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21593:6:103"},"nodeType":"YulFunctionCall","src":"21593:33:103"},"nodeType":"YulExpressionStatement","src":"21593:33:103"},{"nodeType":"YulVariableDeclaration","src":"21635:65:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"21666:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21684:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21695:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21680:3:103"},"nodeType":"YulFunctionCall","src":"21680:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"21649:16:103"},"nodeType":"YulFunctionCall","src":"21649:51:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"21639:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21720:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21731:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21716:3:103"},"nodeType":"YulFunctionCall","src":"21716:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21747:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21755:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21743:3:103"},"nodeType":"YulFunctionCall","src":"21743:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21737:5:103"},"nodeType":"YulFunctionCall","src":"21737:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21709:6:103"},"nodeType":"YulFunctionCall","src":"21709:52:103"},"nodeType":"YulExpressionStatement","src":"21709:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21792:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21777:3:103"},"nodeType":"YulFunctionCall","src":"21777:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21809:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21817:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21805:3:103"},"nodeType":"YulFunctionCall","src":"21805:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21799:5:103"},"nodeType":"YulFunctionCall","src":"21799:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21770:6:103"},"nodeType":"YulFunctionCall","src":"21770:53:103"},"nodeType":"YulExpressionStatement","src":"21770:53:103"},{"nodeType":"YulAssignment","src":"21832:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"21840:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21832:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Claim_$5296_memory_ptr__to_t_struct$_Claim_$5296_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21231:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21242:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21253:4:103","type":""}],"src":"21115:737:103"},{"body":{"nodeType":"YulBlock","src":"22010:647:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22027:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22038:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22020:6:103"},"nodeType":"YulFunctionCall","src":"22020:21:103"},"nodeType":"YulExpressionStatement","src":"22020:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22061:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22072:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22057:3:103"},"nodeType":"YulFunctionCall","src":"22057:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22087:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22081:5:103"},"nodeType":"YulFunctionCall","src":"22081:13:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22104:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22109:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22100:3:103"},"nodeType":"YulFunctionCall","src":"22100:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"22113:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22096:3:103"},"nodeType":"YulFunctionCall","src":"22096:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22077:3:103"},"nodeType":"YulFunctionCall","src":"22077:39:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22050:6:103"},"nodeType":"YulFunctionCall","src":"22050:67:103"},"nodeType":"YulExpressionStatement","src":"22050:67:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22137:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22148:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22133:3:103"},"nodeType":"YulFunctionCall","src":"22133:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22163:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22171:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22159:3:103"},"nodeType":"YulFunctionCall","src":"22159:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22153:5:103"},"nodeType":"YulFunctionCall","src":"22153:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22126:6:103"},"nodeType":"YulFunctionCall","src":"22126:50:103"},"nodeType":"YulExpressionStatement","src":"22126:50:103"},{"nodeType":"YulVariableDeclaration","src":"22185:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22223:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22211:3:103"},"nodeType":"YulFunctionCall","src":"22211:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22205:5:103"},"nodeType":"YulFunctionCall","src":"22205:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"22189:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"22272:12:103"}],"functionName":{"name":"validator_assert_enum_ComponentType","nodeType":"YulIdentifier","src":"22236:35:103"},"nodeType":"YulFunctionCall","src":"22236:49:103"},"nodeType":"YulExpressionStatement","src":"22236:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22316:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22301:3:103"},"nodeType":"YulFunctionCall","src":"22301:18:103"},{"name":"memberValue0","nodeType":"YulIdentifier","src":"22321:12:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22294:6:103"},"nodeType":"YulFunctionCall","src":"22294:40:103"},"nodeType":"YulExpressionStatement","src":"22294:40:103"},{"nodeType":"YulVariableDeclaration","src":"22343:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22375:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22383:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22371:3:103"},"nodeType":"YulFunctionCall","src":"22371:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22365:5:103"},"nodeType":"YulFunctionCall","src":"22365:22:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"22347:14:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22407:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22418:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22403:3:103"},"nodeType":"YulFunctionCall","src":"22403:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"22424:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22396:6:103"},"nodeType":"YulFunctionCall","src":"22396:33:103"},"nodeType":"YulExpressionStatement","src":"22396:33:103"},{"nodeType":"YulVariableDeclaration","src":"22438:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"22469:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22489:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22500:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22485:3:103"},"nodeType":"YulFunctionCall","src":"22485:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"22452:16:103"},"nodeType":"YulFunctionCall","src":"22452:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"22442:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22536:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22521:3:103"},"nodeType":"YulFunctionCall","src":"22521:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22552:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22560:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22548:3:103"},"nodeType":"YulFunctionCall","src":"22548:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22542:5:103"},"nodeType":"YulFunctionCall","src":"22542:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22514:6:103"},"nodeType":"YulFunctionCall","src":"22514:52:103"},"nodeType":"YulExpressionStatement","src":"22514:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22586:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22597:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22582:3:103"},"nodeType":"YulFunctionCall","src":"22582:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22614:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22622:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22610:3:103"},"nodeType":"YulFunctionCall","src":"22610:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22604:5:103"},"nodeType":"YulFunctionCall","src":"22604:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22575:6:103"},"nodeType":"YulFunctionCall","src":"22575:53:103"},"nodeType":"YulExpressionStatement","src":"22575:53:103"},{"nodeType":"YulAssignment","src":"22637:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"22645:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22637:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Metadata_$5248_memory_ptr__to_t_struct$_Metadata_$5248_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21979:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21990:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22001:4:103","type":""}],"src":"21857:800:103"},{"body":{"nodeType":"YulBlock","src":"22811:625:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22828:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22839:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22821:6:103"},"nodeType":"YulFunctionCall","src":"22821:21:103"},"nodeType":"YulExpressionStatement","src":"22821:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22862:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22873:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22858:3:103"},"nodeType":"YulFunctionCall","src":"22858:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22884:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22878:5:103"},"nodeType":"YulFunctionCall","src":"22878:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22851:6:103"},"nodeType":"YulFunctionCall","src":"22851:41:103"},"nodeType":"YulExpressionStatement","src":"22851:41:103"},{"nodeType":"YulVariableDeclaration","src":"22901:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22931:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22939:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22927:3:103"},"nodeType":"YulFunctionCall","src":"22927:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22921:5:103"},"nodeType":"YulFunctionCall","src":"22921:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"22905:12:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"22983:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"22985:16:103"},"nodeType":"YulFunctionCall","src":"22985:18:103"},"nodeType":"YulExpressionStatement","src":"22985:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"22965:12:103"},{"kind":"number","nodeType":"YulLiteral","src":"22979:1:103","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"22962:2:103"},"nodeType":"YulFunctionCall","src":"22962:19:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22955:6:103"},"nodeType":"YulFunctionCall","src":"22955:27:103"},"nodeType":"YulIf","src":"22952:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23025:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23036:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23021:3:103"},"nodeType":"YulFunctionCall","src":"23021:18:103"},{"name":"memberValue0","nodeType":"YulIdentifier","src":"23041:12:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23014:6:103"},"nodeType":"YulFunctionCall","src":"23014:40:103"},"nodeType":"YulExpressionStatement","src":"23014:40:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23074:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23085:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23070:3:103"},"nodeType":"YulFunctionCall","src":"23070:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23100:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23108:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23096:3:103"},"nodeType":"YulFunctionCall","src":"23096:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23090:5:103"},"nodeType":"YulFunctionCall","src":"23090:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23063:6:103"},"nodeType":"YulFunctionCall","src":"23063:50:103"},"nodeType":"YulExpressionStatement","src":"23063:50:103"},{"nodeType":"YulVariableDeclaration","src":"23122:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23154:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23162:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23150:3:103"},"nodeType":"YulFunctionCall","src":"23150:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23144:5:103"},"nodeType":"YulFunctionCall","src":"23144:22:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"23126:14:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23186:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23197:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23182:3:103"},"nodeType":"YulFunctionCall","src":"23182:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"23203:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23175:6:103"},"nodeType":"YulFunctionCall","src":"23175:33:103"},"nodeType":"YulExpressionStatement","src":"23175:33:103"},{"nodeType":"YulVariableDeclaration","src":"23217:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"23248:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23268:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23279:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23264:3:103"},"nodeType":"YulFunctionCall","src":"23264:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23231:16:103"},"nodeType":"YulFunctionCall","src":"23231:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"23221:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23315:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23300:3:103"},"nodeType":"YulFunctionCall","src":"23300:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23331:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23339:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23327:3:103"},"nodeType":"YulFunctionCall","src":"23327:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23321:5:103"},"nodeType":"YulFunctionCall","src":"23321:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23293:6:103"},"nodeType":"YulFunctionCall","src":"23293:52:103"},"nodeType":"YulExpressionStatement","src":"23293:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23376:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23361:3:103"},"nodeType":"YulFunctionCall","src":"23361:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23393:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23401:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23389:3:103"},"nodeType":"YulFunctionCall","src":"23389:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23383:5:103"},"nodeType":"YulFunctionCall","src":"23383:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23354:6:103"},"nodeType":"YulFunctionCall","src":"23354:53:103"},"nodeType":"YulExpressionStatement","src":"23354:53:103"},{"nodeType":"YulAssignment","src":"23416:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"23424:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23416:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Payout_$5310_memory_ptr__to_t_struct$_Payout_$5310_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22780:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22791:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22802:4:103","type":""}],"src":"22662:774:103"},{"body":{"nodeType":"YulBlock","src":"23590:678:103","statements":[{"nodeType":"YulAssignment","src":"23600:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23612:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23623:3:103","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23608:3:103"},"nodeType":"YulFunctionCall","src":"23608:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23600:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"23636:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23652:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23646:5:103"},"nodeType":"YulFunctionCall","src":"23646:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"23640:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23704:2:103"}],"functionName":{"name":"validator_assert_enum_ComponentType","nodeType":"YulIdentifier","src":"23668:35:103"},"nodeType":"YulFunctionCall","src":"23668:39:103"},"nodeType":"YulExpressionStatement","src":"23668:39:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23723:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"23734:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23716:6:103"},"nodeType":"YulFunctionCall","src":"23716:21:103"},"nodeType":"YulExpressionStatement","src":"23716:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23757:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23768:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23753:3:103"},"nodeType":"YulFunctionCall","src":"23753:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23785:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23793:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23781:3:103"},"nodeType":"YulFunctionCall","src":"23781:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23775:5:103"},"nodeType":"YulFunctionCall","src":"23775:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23746:6:103"},"nodeType":"YulFunctionCall","src":"23746:54:103"},"nodeType":"YulExpressionStatement","src":"23746:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23831:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23816:3:103"},"nodeType":"YulFunctionCall","src":"23816:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23848:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23856:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23844:3:103"},"nodeType":"YulFunctionCall","src":"23844:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23838:5:103"},"nodeType":"YulFunctionCall","src":"23838:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23809:6:103"},"nodeType":"YulFunctionCall","src":"23809:54:103"},"nodeType":"YulExpressionStatement","src":"23809:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23883:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23894:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23879:3:103"},"nodeType":"YulFunctionCall","src":"23879:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23911:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23919:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23907:3:103"},"nodeType":"YulFunctionCall","src":"23907:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23901:5:103"},"nodeType":"YulFunctionCall","src":"23901:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23872:6:103"},"nodeType":"YulFunctionCall","src":"23872:54:103"},"nodeType":"YulExpressionStatement","src":"23872:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23946:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23957:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23942:3:103"},"nodeType":"YulFunctionCall","src":"23942:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23974:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23982:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23970:3:103"},"nodeType":"YulFunctionCall","src":"23970:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23964:5:103"},"nodeType":"YulFunctionCall","src":"23964:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23935:6:103"},"nodeType":"YulFunctionCall","src":"23935:54:103"},"nodeType":"YulExpressionStatement","src":"23935:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24020:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24005:3:103"},"nodeType":"YulFunctionCall","src":"24005:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24037:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24045:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24033:3:103"},"nodeType":"YulFunctionCall","src":"24033:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24027:5:103"},"nodeType":"YulFunctionCall","src":"24027:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23998:6:103"},"nodeType":"YulFunctionCall","src":"23998:54:103"},"nodeType":"YulExpressionStatement","src":"23998:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24072:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24083:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24068:3:103"},"nodeType":"YulFunctionCall","src":"24068:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24100:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24108:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24096:3:103"},"nodeType":"YulFunctionCall","src":"24096:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24090:5:103"},"nodeType":"YulFunctionCall","src":"24090:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24061:6:103"},"nodeType":"YulFunctionCall","src":"24061:54:103"},"nodeType":"YulExpressionStatement","src":"24061:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24135:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24146:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24131:3:103"},"nodeType":"YulFunctionCall","src":"24131:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24163:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24171:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24159:3:103"},"nodeType":"YulFunctionCall","src":"24159:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24153:5:103"},"nodeType":"YulFunctionCall","src":"24153:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24124:6:103"},"nodeType":"YulFunctionCall","src":"24124:54:103"},"nodeType":"YulExpressionStatement","src":"24124:54:103"},{"nodeType":"YulVariableDeclaration","src":"24187:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"24197:6:103","type":"","value":"0x0100"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"24191:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24223:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"24234:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24219:3:103"},"nodeType":"YulFunctionCall","src":"24219:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24249:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"24257:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24245:3:103"},"nodeType":"YulFunctionCall","src":"24245:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24239:5:103"},"nodeType":"YulFunctionCall","src":"24239:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24212:6:103"},"nodeType":"YulFunctionCall","src":"24212:50:103"},"nodeType":"YulExpressionStatement","src":"24212:50:103"}]},"name":"abi_encode_tuple_t_struct$_Policy_$5282_memory_ptr__to_t_struct$_Policy_$5282_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23559:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23570:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23581:4:103","type":""}],"src":"23441:827:103"},{"body":{"nodeType":"YulBlock","src":"24418:887:103","statements":[{"nodeType":"YulAssignment","src":"24428:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24451:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24436:3:103"},"nodeType":"YulFunctionCall","src":"24436:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24428:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24471:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24488:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24482:5:103"},"nodeType":"YulFunctionCall","src":"24482:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24464:6:103"},"nodeType":"YulFunctionCall","src":"24464:32:103"},"nodeType":"YulExpressionStatement","src":"24464:32:103"},{"nodeType":"YulVariableDeclaration","src":"24505:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24535:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24543:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24531:3:103"},"nodeType":"YulFunctionCall","src":"24531:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24525:5:103"},"nodeType":"YulFunctionCall","src":"24525:24:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"24509:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"24577:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24595:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24606:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24591:3:103"},"nodeType":"YulFunctionCall","src":"24591:20:103"}],"functionName":{"name":"abi_encode_address","nodeType":"YulIdentifier","src":"24558:18:103"},"nodeType":"YulFunctionCall","src":"24558:54:103"},"nodeType":"YulExpressionStatement","src":"24558:54:103"},{"nodeType":"YulVariableDeclaration","src":"24621:46:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24653:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24661:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24649:3:103"},"nodeType":"YulFunctionCall","src":"24649:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24643:5:103"},"nodeType":"YulFunctionCall","src":"24643:24:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"24625:14:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"24695:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24715:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24726:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24711:3:103"},"nodeType":"YulFunctionCall","src":"24711:20:103"}],"functionName":{"name":"abi_encode_address","nodeType":"YulIdentifier","src":"24676:18:103"},"nodeType":"YulFunctionCall","src":"24676:56:103"},"nodeType":"YulExpressionStatement","src":"24676:56:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24752:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24763:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24748:3:103"},"nodeType":"YulFunctionCall","src":"24748:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24780:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24788:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24776:3:103"},"nodeType":"YulFunctionCall","src":"24776:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24770:5:103"},"nodeType":"YulFunctionCall","src":"24770:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24741:6:103"},"nodeType":"YulFunctionCall","src":"24741:54:103"},"nodeType":"YulExpressionStatement","src":"24741:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24815:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24826:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24811:3:103"},"nodeType":"YulFunctionCall","src":"24811:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24843:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24851:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24839:3:103"},"nodeType":"YulFunctionCall","src":"24839:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24833:5:103"},"nodeType":"YulFunctionCall","src":"24833:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24804:6:103"},"nodeType":"YulFunctionCall","src":"24804:54:103"},"nodeType":"YulExpressionStatement","src":"24804:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24878:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24889:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24874:3:103"},"nodeType":"YulFunctionCall","src":"24874:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24906:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24914:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24902:3:103"},"nodeType":"YulFunctionCall","src":"24902:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24896:5:103"},"nodeType":"YulFunctionCall","src":"24896:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24867:6:103"},"nodeType":"YulFunctionCall","src":"24867:54:103"},"nodeType":"YulExpressionStatement","src":"24867:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24941:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24952:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24937:3:103"},"nodeType":"YulFunctionCall","src":"24937:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24969:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24977:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24965:3:103"},"nodeType":"YulFunctionCall","src":"24965:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24959:5:103"},"nodeType":"YulFunctionCall","src":"24959:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24930:6:103"},"nodeType":"YulFunctionCall","src":"24930:54:103"},"nodeType":"YulExpressionStatement","src":"24930:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25004:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25015:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25000:3:103"},"nodeType":"YulFunctionCall","src":"25000:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25032:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"25040:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25028:3:103"},"nodeType":"YulFunctionCall","src":"25028:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25022:5:103"},"nodeType":"YulFunctionCall","src":"25022:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24993:6:103"},"nodeType":"YulFunctionCall","src":"24993:54:103"},"nodeType":"YulExpressionStatement","src":"24993:54:103"},{"nodeType":"YulVariableDeclaration","src":"25056:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"25066:6:103","type":"","value":"0x0100"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"25060:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25092:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"25103:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25088:3:103"},"nodeType":"YulFunctionCall","src":"25088:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25118:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"25126:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25114:3:103"},"nodeType":"YulFunctionCall","src":"25114:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25108:5:103"},"nodeType":"YulFunctionCall","src":"25108:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25081:6:103"},"nodeType":"YulFunctionCall","src":"25081:50:103"},"nodeType":"YulExpressionStatement","src":"25081:50:103"},{"nodeType":"YulVariableDeclaration","src":"25140:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"25150:6:103","type":"","value":"0x0120"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"25144:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25176:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"25187:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25172:3:103"},"nodeType":"YulFunctionCall","src":"25172:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25202:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"25210:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25198:3:103"},"nodeType":"YulFunctionCall","src":"25198:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25192:5:103"},"nodeType":"YulFunctionCall","src":"25192:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25165:6:103"},"nodeType":"YulFunctionCall","src":"25165:50:103"},"nodeType":"YulExpressionStatement","src":"25165:50:103"},{"nodeType":"YulVariableDeclaration","src":"25224:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"25234:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"25228:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25260:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"25271:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25256:3:103"},"nodeType":"YulFunctionCall","src":"25256:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25286:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"25294:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25282:3:103"},"nodeType":"YulFunctionCall","src":"25282:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25276:5:103"},"nodeType":"YulFunctionCall","src":"25276:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25249:6:103"},"nodeType":"YulFunctionCall","src":"25249:50:103"},"nodeType":"YulExpressionStatement","src":"25249:50:103"}]},"name":"abi_encode_tuple_t_struct$_Pool_$5502_memory_ptr__to_t_struct$_Pool_$5502_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24387:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24398:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24409:4:103","type":""}],"src":"24273:1032:103"},{"body":{"nodeType":"YulBlock","src":"25411:76:103","statements":[{"nodeType":"YulAssignment","src":"25421:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25444:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25429:3:103"},"nodeType":"YulFunctionCall","src":"25429:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25421:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25463:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"25474:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25456:6:103"},"nodeType":"YulFunctionCall","src":"25456:25:103"},"nodeType":"YulExpressionStatement","src":"25456:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25380:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25391:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25402:4:103","type":""}],"src":"25310:177:103"},{"body":{"nodeType":"YulBlock","src":"25621:119:103","statements":[{"nodeType":"YulAssignment","src":"25631:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25654:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25639:3:103"},"nodeType":"YulFunctionCall","src":"25639:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25631:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25673:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"25684:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25666:6:103"},"nodeType":"YulFunctionCall","src":"25666:25:103"},"nodeType":"YulExpressionStatement","src":"25666:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25711:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25722:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25707:3:103"},"nodeType":"YulFunctionCall","src":"25707:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"25727:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25700:6:103"},"nodeType":"YulFunctionCall","src":"25700:34:103"},"nodeType":"YulExpressionStatement","src":"25700:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25582:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25593:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25601:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25612:4:103","type":""}],"src":"25492:248:103"},{"body":{"nodeType":"YulBlock","src":"25790:230:103","statements":[{"nodeType":"YulAssignment","src":"25800:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25816:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25810:5:103"},"nodeType":"YulFunctionCall","src":"25810:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"25800:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"25828:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"25850:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"25866:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"25872:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25862:3:103"},"nodeType":"YulFunctionCall","src":"25862:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25881:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25877:3:103"},"nodeType":"YulFunctionCall","src":"25877:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25858:3:103"},"nodeType":"YulFunctionCall","src":"25858:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25846:3:103"},"nodeType":"YulFunctionCall","src":"25846:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"25832:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"25961:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"25963:16:103"},"nodeType":"YulFunctionCall","src":"25963:18:103"},"nodeType":"YulExpressionStatement","src":"25963:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"25904:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"25916:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25901:2:103"},"nodeType":"YulFunctionCall","src":"25901:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"25940:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"25952:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"25937:2:103"},"nodeType":"YulFunctionCall","src":"25937:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"25898:2:103"},"nodeType":"YulFunctionCall","src":"25898:62:103"},"nodeType":"YulIf","src":"25895:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25999:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"26003:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25992:6:103"},"nodeType":"YulFunctionCall","src":"25992:22:103"},"nodeType":"YulExpressionStatement","src":"25992:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"25770:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"25779:6:103","type":""}],"src":"25745:275:103"},{"body":{"nodeType":"YulBlock","src":"26074:179:103","statements":[{"body":{"nodeType":"YulBlock","src":"26104:117:103","statements":[{"expression":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"26125:4:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26135:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"26140:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26131:3:103"},"nodeType":"YulFunctionCall","src":"26131:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26118:6:103"},"nodeType":"YulFunctionCall","src":"26118:34:103"},"nodeType":"YulExpressionStatement","src":"26118:34:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26172:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"26175:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26165:6:103"},"nodeType":"YulFunctionCall","src":"26165:15:103"},"nodeType":"YulExpressionStatement","src":"26165:15:103"},{"expression":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"26200:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"26206:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"26193:6:103"},"nodeType":"YulFunctionCall","src":"26193:18:103"},"nodeType":"YulExpressionStatement","src":"26193:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26090:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"26093:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26087:2:103"},"nodeType":"YulFunctionCall","src":"26087:8:103"},"nodeType":"YulIf","src":"26084:2:103"},{"nodeType":"YulAssignment","src":"26230:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26242:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"26245:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26238:3:103"},"nodeType":"YulFunctionCall","src":"26238:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"26230:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"26056:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"26059:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"26065:4:103","type":""}],"src":"26025:228:103"},{"body":{"nodeType":"YulBlock","src":"26311:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"26321:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"26330:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"26325:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"26390:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"26415:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"26420:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26411:3:103"},"nodeType":"YulFunctionCall","src":"26411:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"26434:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"26439:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26430:3:103"},"nodeType":"YulFunctionCall","src":"26430:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"26424:5:103"},"nodeType":"YulFunctionCall","src":"26424:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26404:6:103"},"nodeType":"YulFunctionCall","src":"26404:39:103"},"nodeType":"YulExpressionStatement","src":"26404:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26351:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"26354:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26348:2:103"},"nodeType":"YulFunctionCall","src":"26348:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"26362:19:103","statements":[{"nodeType":"YulAssignment","src":"26364:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26373:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"26376:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26369:3:103"},"nodeType":"YulFunctionCall","src":"26369:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"26364:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"26344:3:103","statements":[]},"src":"26340:113:103"},{"body":{"nodeType":"YulBlock","src":"26479:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"26492:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"26497:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26488:3:103"},"nodeType":"YulFunctionCall","src":"26488:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"26506:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26481:6:103"},"nodeType":"YulFunctionCall","src":"26481:27:103"},"nodeType":"YulExpressionStatement","src":"26481:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26468:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"26471:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26465:2:103"},"nodeType":"YulFunctionCall","src":"26465:13:103"},"nodeType":"YulIf","src":"26462:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"26289:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"26294:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"26299:6:103","type":""}],"src":"26258:258:103"},{"body":{"nodeType":"YulBlock","src":"26576:325:103","statements":[{"nodeType":"YulAssignment","src":"26586:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"26600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"26606:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"26596:3:103"},"nodeType":"YulFunctionCall","src":"26596:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"26586:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"26617:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"26647:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"26653:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26643:3:103"},"nodeType":"YulFunctionCall","src":"26643:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"26621:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"26694:31:103","statements":[{"nodeType":"YulAssignment","src":"26696:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"26710:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"26718:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26706:3:103"},"nodeType":"YulFunctionCall","src":"26706:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"26696:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"26674:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"26667:6:103"},"nodeType":"YulFunctionCall","src":"26667:26:103"},"nodeType":"YulIf","src":"26664:2:103"},{"body":{"nodeType":"YulBlock","src":"26784:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26805:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26812:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"26817:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26808:3:103"},"nodeType":"YulFunctionCall","src":"26808:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26798:6:103"},"nodeType":"YulFunctionCall","src":"26798:31:103"},"nodeType":"YulExpressionStatement","src":"26798:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26849:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"26852:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26842:6:103"},"nodeType":"YulFunctionCall","src":"26842:15:103"},"nodeType":"YulExpressionStatement","src":"26842:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26877:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"26880:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"26870:6:103"},"nodeType":"YulFunctionCall","src":"26870:15:103"},"nodeType":"YulExpressionStatement","src":"26870:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"26740:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"26763:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"26771:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26760:2:103"},"nodeType":"YulFunctionCall","src":"26760:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"26737:2:103"},"nodeType":"YulFunctionCall","src":"26737:38:103"},"nodeType":"YulIf","src":"26734:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"26556:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"26565:6:103","type":""}],"src":"26521:380:103"},{"body":{"nodeType":"YulBlock","src":"26938:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26955:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26962:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"26967:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26958:3:103"},"nodeType":"YulFunctionCall","src":"26958:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26948:6:103"},"nodeType":"YulFunctionCall","src":"26948:31:103"},"nodeType":"YulExpressionStatement","src":"26948:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26995:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"26998:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26988:6:103"},"nodeType":"YulFunctionCall","src":"26988:15:103"},"nodeType":"YulExpressionStatement","src":"26988:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27019:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27022:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27012:6:103"},"nodeType":"YulFunctionCall","src":"27012:15:103"},"nodeType":"YulExpressionStatement","src":"27012:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"26906:127:103"},{"body":{"nodeType":"YulBlock","src":"27070:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27087:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27094:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"27099:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27090:3:103"},"nodeType":"YulFunctionCall","src":"27090:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27080:6:103"},"nodeType":"YulFunctionCall","src":"27080:31:103"},"nodeType":"YulExpressionStatement","src":"27080:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27127:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"27130:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27120:6:103"},"nodeType":"YulFunctionCall","src":"27120:15:103"},"nodeType":"YulExpressionStatement","src":"27120:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27151:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27154:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27144:6:103"},"nodeType":"YulFunctionCall","src":"27144:15:103"},"nodeType":"YulExpressionStatement","src":"27144:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"27038:127:103"},{"body":{"nodeType":"YulBlock","src":"27229:62:103","statements":[{"body":{"nodeType":"YulBlock","src":"27263:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"27265:16:103"},"nodeType":"YulFunctionCall","src":"27265:18:103"},"nodeType":"YulExpressionStatement","src":"27265:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27252:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"27259:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27249:2:103"},"nodeType":"YulFunctionCall","src":"27249:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27242:6:103"},"nodeType":"YulFunctionCall","src":"27242:20:103"},"nodeType":"YulIf","src":"27239:2:103"}]},"name":"validator_assert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27218:5:103","type":""}],"src":"27170:121:103"},{"body":{"nodeType":"YulBlock","src":"27352:62:103","statements":[{"body":{"nodeType":"YulBlock","src":"27386:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"27388:16:103"},"nodeType":"YulFunctionCall","src":"27388:18:103"},"nodeType":"YulExpressionStatement","src":"27388:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27375:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"27382:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27372:2:103"},"nodeType":"YulFunctionCall","src":"27372:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27365:6:103"},"nodeType":"YulFunctionCall","src":"27365:20:103"},"nodeType":"YulIf","src":"27362:2:103"}]},"name":"validator_assert_enum_ComponentType","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27341:5:103","type":""}],"src":"27296:118:103"},{"body":{"nodeType":"YulBlock","src":"27464:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"27528:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27537:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27540:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27530:6:103"},"nodeType":"YulFunctionCall","src":"27530:12:103"},"nodeType":"YulExpressionStatement","src":"27530:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27487:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27498:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27513:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"27518:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27509:3:103"},"nodeType":"YulFunctionCall","src":"27509:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"27522:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27505:3:103"},"nodeType":"YulFunctionCall","src":"27505:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27494:3:103"},"nodeType":"YulFunctionCall","src":"27494:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27484:2:103"},"nodeType":"YulFunctionCall","src":"27484:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27477:6:103"},"nodeType":"YulFunctionCall","src":"27477:50:103"},"nodeType":"YulIf","src":"27474:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27453:5:103","type":""}],"src":"27419:131:103"},{"body":{"nodeType":"YulBlock","src":"27614:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"27648:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27657:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27660:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27650:6:103"},"nodeType":"YulFunctionCall","src":"27650:12:103"},"nodeType":"YulExpressionStatement","src":"27650:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27637:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"27644:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27634:2:103"},"nodeType":"YulFunctionCall","src":"27634:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27627:6:103"},"nodeType":"YulFunctionCall","src":"27627:20:103"},"nodeType":"YulIf","src":"27624:2:103"}]},"name":"validator_revert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27603:5:103","type":""}],"src":"27555:115:103"},{"body":{"nodeType":"YulBlock","src":"27731:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"27765:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27774:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27777:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27767:6:103"},"nodeType":"YulFunctionCall","src":"27767:12:103"},"nodeType":"YulExpressionStatement","src":"27767:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27754:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"27761:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27751:2:103"},"nodeType":"YulFunctionCall","src":"27751:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27744:6:103"},"nodeType":"YulFunctionCall","src":"27744:20:103"},"nodeType":"YulIf","src":"27741:2:103"}]},"name":"validator_revert_enum_ComponentType","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27720:5:103","type":""}],"src":"27675:112:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_address(value)\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_ApplicationState_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_enum_ApplicationState(value)\n }\n function abi_decode_enum_ComponentType_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_enum_ComponentType(value)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_contract$_BundleToken_$28751_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_contract$_IERC20_$8831_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_enum_ComponentType(value)\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_ApplicationState_fromMemory(add(_2, 96)))\n let offset_1 := mload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), mload(add(_2, 160)))\n mstore(add(value, 192), mload(add(_2, 192)))\n mstore(add(value, 224), mload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), mload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), mload(add(_2, _5)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_ComponentType_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n mstore(value, mload(_2))\n let value_1 := mload(add(_2, 32))\n if iszero(lt(value_1, 2)) { revert(value0, value0) }\n mstore(add(value, 32), value_1)\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_ComponentType_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Pool_$5502_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 352\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, mload(headStart))\n mstore(add(value, 32), abi_decode_address_fromMemory(add(headStart, 32)))\n mstore(add(value, 64), abi_decode_address_fromMemory(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n let _3 := 288\n mstore(add(value, _3), mload(add(headStart, _3)))\n let _4 := 320\n mstore(add(value, _4), mload(add(headStart, _4)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_address(value, pos)\n {\n mstore(pos, and(value, sub(shl(160, 1), 1)))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_BundleState(value, pos)\n {\n validator_assert_enum_ApplicationState(value)\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_uint256_t_address__to_t_uint256_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n end := add(pos, 52)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_IBundleToken_$6825__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IComponentOwnerService_$6009__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IERC20_$8831__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IInstanceOperatorService_$6160__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IOracleService_$6519__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IProductService_$6664__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IRiskpoolService_$6770__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n validator_assert_enum_ComponentType(value0)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3538b2b40dc1579a3c1803dfe60abab88e636a7c9369729bbd4ce7b793360801__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:IS-002:IMPLEMENATION_MISSI\")\n mstore(add(headStart, 96), \"NG\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9f10dbd7637aa20fb8b54a4dbdfe5499f4b0287e8df0e24d98f28636def7ca3d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:IS-001:IMPLEMENATION_MISSI\")\n mstore(add(headStart, 96), \"NG\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_Application_$5262_memory_ptr__to_t_struct$_Application_$5262_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let _1 := mload(value0)\n validator_assert_enum_ApplicationState(_1)\n mstore(add(headStart, 32), _1)\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n abi_encode_enum_BundleState(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 128))\n let _1 := 0x0140\n mstore(add(headStart, 160), _1)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 352))\n mstore(add(headStart, 192), mload(add(value0, 160)))\n mstore(add(headStart, 224), mload(add(value0, 192)))\n let _2 := mload(add(value0, 224))\n let _3 := 256\n mstore(add(headStart, _3), _2)\n let _4 := mload(add(value0, _3))\n let _5 := 288\n mstore(add(headStart, _5), _4)\n mstore(add(headStart, _1), mload(add(value0, _5)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Claim_$5296_memory_ptr__to_t_struct$_Claim_$5296_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let _1 := mload(value0)\n validator_assert_enum_ApplicationState(_1)\n mstore(add(headStart, 32), _1)\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Metadata_$5248_memory_ptr__to_t_struct$_Metadata_$5248_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), and(mload(value0), sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n let memberValue0 := mload(add(value0, 64))\n validator_assert_enum_ComponentType(memberValue0)\n mstore(add(headStart, 96), memberValue0)\n let memberValue0_1 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Payout_$5310_memory_ptr__to_t_struct$_Payout_$5310_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n let memberValue0 := mload(add(value0, 32))\n if iszero(lt(memberValue0, 2)) { panic_error_0x21() }\n mstore(add(headStart, 64), memberValue0)\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0_1 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Policy_$5282_memory_ptr__to_t_struct$_Policy_$5282_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 288)\n let _1 := mload(value0)\n validator_assert_enum_ComponentType(_1)\n mstore(headStart, _1)\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n let _2 := 0x0100\n mstore(add(headStart, _2), mload(add(value0, _2)))\n }\n function abi_encode_tuple_t_struct$_Pool_$5502_memory_ptr__to_t_struct$_Pool_$5502_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, mload(value0))\n let memberValue0 := mload(add(value0, 0x20))\n abi_encode_address(memberValue0, add(headStart, 0x20))\n let memberValue0_1 := mload(add(value0, 0x40))\n abi_encode_address(memberValue0_1, add(headStart, 0x40))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n let _1 := 0x0100\n mstore(add(headStart, _1), mload(add(value0, _1)))\n let _2 := 0x0120\n mstore(add(headStart, _2), mload(add(value0, _2)))\n let _3 := 0x0140\n mstore(add(headStart, _3), mload(add(value0, _3)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y)\n {\n mstore(diff, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(diff, 0x24)\n }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_assert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { panic_error_0x21() }\n }\n function validator_assert_enum_ComponentType(value)\n {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n function validator_revert_enum_ComponentType(value)\n {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106103e65760003560e01c80637f22c2d91161020a578063c4d66de811610125578063e543ecb9116100b8578063ec833b0c11610087578063ec833b0c14610894578063eff0f592146108a7578063f1d354d0146108ba578063f6b3e7d0146108c2578063ff3f3883146108d5576103e6565b8063e543ecb91461083b578063e882892214610854578063eb35783c1461086c578063eb80211414610874576103e6565b8063d49d21c0116100f4578063d49d21c0146107fa578063d722b0bc14610802578063dd51c86a1461080a578063e00246041461082a576103e6565b8063c4d66de8146107aa578063c559783e146107bf578063c71e261f146107d2578063cef58f13146107da576103e6565b8063a44330c41161019d578063ab9c6ee41161016c578063ab9c6ee41461075e578063aeddb90514610771578063bc506f6414610784578063bcd5349f14610797576103e6565b8063a44330c41461071b578063a5961b4c14610723578063a5c0f5a114610743578063a7ecda3614610756576103e6565b8063a3f66bd2116101d9578063a3f66bd2146106bf578063a3f685f9146106e0578063a4266a6614610700578063a427056e14610713576103e6565b80637f22c2d91461066157806391d14854146106815780639f77a605146106a4578063a054381f146106b7576103e6565b80633ffdd2f31161030557806352b5b0ef116102985780636319112b116102675780636319112b1461062e5780636c0f79b6146106365780636fa298531461063e578063775a4048146106465780637db328441461064e576103e6565b806352b5b0ef146105c75780635ab1bd53146105e65780635e6877be146105fe5780635e966e451461060e576103e6565b80634f27da18116102d45780634f27da181461058757806350e1a19b1461059a57806351b2fb90146105ac57806352a9c8d7146105bf576103e6565b80633ffdd2f31461055c5780634288121d14610564578063442ed8171461056c5780634908163714610574576103e6565b80632898312f1161037d5780633408e4701161034c5780633408e4701461051b57806339c6fa90146105215780633a42b053146105295780633f5d923514610549576103e6565b80632898312f146104be57806329560980146104d55780632b1c7f73146104e85780632d0821b7146104fb576103e6565b806318442e63116103b957806318442e631461048b57806318ff21c3146104935780631e010439146104a35780632857373a146104b6576103e6565b8063038696bb146103eb578063091924dc1461041b5780630c131757146104235780631551100f1461043f575b600080fd5b6103fe6103f93660046125e1565b6108e8565b6040516001600160a01b0390911681526020015b60405180910390f35b6103fe61096e565b61043163141bdbdb60e21b81565b604051908152602001610412565b61043160008054604080514660208201526201000090920460601b6bffffffffffffffffffffffff19169082015260540160405160208183030381529060405280519060200120905090565b610431610998565b61043165506f6c69637960d01b81565b6104316104b13660046125e1565b610a15565b610431610a9e565b6104316c4f7261636c655365727669636560981b81565b6104316104e33660046125e1565b610ae3565b6104316104f6366004612589565b610b6b565b61050e6105093660046125e1565b610bea565b6040516104129190612b14565b46610431565b6103fe610c72565b61053c6105373660046125e1565b610d11565b6040516104129190612a75565b6104316105573660046125e1565b610d6c565b610431610df4565b6103fe610e39565b6103fe610e55565b6103fe6105823660046125e1565b610e72565b6103fe6105953660046125e1565b610ea4565b61043167547265617375727960c01b81565b6104316810dbdb5c1bdb995b9d60ba1b81565b610431610ed6565b61043174436f6d706f6e656e744f776e65725365727669636560581b81565b6103fe6000546201000090046001600160a01b031690565b6104316542756e646c6560d01b81565b61062161061c3660046125e1565b610f1b565b6040516104129190612a88565b610431610f98565b610431610fdd565b6103fe61102c565b61043161104f565b61043161065c3660046125e1565b611094565b61067461066f366004612640565b6110c6565b6040516104129190612aaf565b61069461068f366004612611565b61118c565b6040519015158152602001610412565b6104316106b23660046125e1565b611211565b610431611243565b61043176496e7374616e63654f70657261746f725365727669636560481b81565b6106f36106ee3660046125e1565b611288565b6040516104129190612c44565b61043161070e3660046125e1565b611353565b610431611385565b6103fe6113d5565b6107366107313660046125e1565b611452565b6040516104129190612bab565b6104316107513660046125e1565b611509565b6103fe61153b565b61053c61076c3660046125e1565b611556565b61043161077f3660046125e1565b6115ac565b6106746107923660046125e1565b6115e0565b6104316107a53660046125e1565b611698565b6107bd6107b8366004612589565b611730565b005b6104316107cd3660046125e1565b6118ae565b6104316118e0565b6107ed6107e8366004612640565b611925565b6040516104129190612bf8565b6104316119e4565b61053c611a29565b61081d6108183660046125e1565b611aca565b6040516104129190612aa2565b6006546001600160a01b03166103fe565b6104316e5269736b706f6f6c5365727669636560881b81565b6104316d50726f647563745365727669636560901b81565b6103fe611b47565b6108876108823660046125e1565b611bd6565b6040516104129190612cb1565b6104316108a2366004612640565b611cc2565b6104316108b53660046125e1565b611d46565b610431611d7a565b6104316108d03660046125e1565b611dbf565b6104316108e33660046125e1565b611df6565b60065460405163038696bb60e01b8152600481018390526000916001600160a01b03169063038696bb906024015b60206040518083038186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125a5565b90505b919050565b600061099376496e7374616e63654f70657261746f725365727669636560481b611e2b565b905090565b600254604080516318442e6360e01b815290516000926001600160a01b0316916318442e63916004808301926020929190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125f9565b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610a5b57600080fd5b505afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a939190612998565b610100015192915050565b6003546040805163142b9b9d60e11b815290516000926001600160a01b031691632857373a916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610b2957600080fd5b505afa158015610b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b619190612998565b60c0015192915050565b600354604051632b1c7f7360e01b81526001600160a01b0383811660048301526000921690632b1c7f73906024015b60206040518083038186803b158015610bb257600080fd5b505afa158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125f9565b610bf26123f3565b600254604051632d0821b760e01b8152600481018490526001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3657600080fd5b505afa158015610c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109669190810190612747565b600080610c9876496e7374616e63654f70657261746f725365727669636560481b611e2b565b9050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd357600080fd5b505afa158015610ce7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0b91906125a5565b91505090565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030323a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b60648201526060906084015b60405180910390fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610db257600080fd5b505afa158015610dc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dea9190612998565b60e0015192915050565b60015460408051633ffdd2f360e01b815290516000926001600160a01b031691633ffdd2f3916004808301926020929190829003018186803b1580156109dd57600080fd5b60006109936d50726f647563745365727669636560901b611e2b565b60006109936e5269736b706f6f6c5365727669636560881b611e2b565b600654604051634908163760e01b8152600481018390526000916001600160a01b031690634908163790602401610916565b6003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da1890602401610916565b600154604080516352a9c8d760e01b815290516000926001600160a01b0316916352a9c8d7916004808301926020929190829003018186803b1580156109dd57600080fd5b600354604051635e966e4560e01b8152600481018390526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610f6057600080fd5b505afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612661565b60065460408051634667ae5160e11b815290516000926001600160a01b031691638ccf5ca2916004808301926020929190829003018186803b1580156109dd57600080fd5b60008060029054906101000a90046001600160a01b03166001600160a01b0316636c0f79b66040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b600061099374436f6d706f6e656e744f776e65725365727669636560581b611e2b565b60015460408051630eeb480960e31b815290516000926001600160a01b03169163775a4048916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051631f6cca1160e21b8152600481018390526000916001600160a01b031690637db3284490602401610b9a565b6111006040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051637f22c2d960e01b8152918201859052602482018490526001600160a01b031690637f22c2d99060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611185919081019061269c565b9392505050565b600154604051632474521560e21b8152600481018490526001600160a01b03838116602483015260009216906391d148549060440160206040518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125c1565b600354604051639f77a60560e01b8152600481018390526000916001600160a01b031690639f77a60590602401610b9a565b6003546040805163a054381f60e01b815290516000926001600160a01b03169163a054381f916004808301926020929190829003018186803b1580156109dd57600080fd5b6112d8604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6004805460405163a3f685f960e01b81529182018490526001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612913565b600554604051635213353360e11b8152600481018390526000916001600160a01b03169063a4266a6690602401610b9a565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663a427056e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b60065460408051632910cc3160e21b815290516000926001600160a01b03169163a44330c4916004808301926020929190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125a5565b61148b6040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b6004805460405163296586d360e21b81529182018490526001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061281b565b60035460405163a5c0f5a160e01b8152600481018390526000916001600160a01b03169063a5c0f5a190602401610b9a565b60006109936c4f7261636c655365727669636560981b611e2b565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030313a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b6064820152606090608401610d63565b6004805460405163be183b1160e01b81529182018390526000916001600160a01b039091169063be183b1190602401610b9a565b61161a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051632f141bd960e21b81529182018490526001600160a01b03169063bc506f649060240160006040518083038186803b15801561165c57600080fd5b505afa158015611670573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061269c565b600554604051633ae0084560e21b81526004810183905260009182916001600160a01b039091169063eb802114906024016101606040518083038186803b1580156116e257600080fd5b505afa1580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a9190612998565b90508060e001518160c001516111859190612d7e565b600054610100900460ff16158080156117505750600054600160ff909116105b8061176a5750303b15801561176a575060005460ff166001145b6117cd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d63565b6000805460ff1916600117905580156117f0576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561181a600090565b6541636365737360d01b1461185c5761183b6541636365737360d01b611e2b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611864611f13565b80156118aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516362acbc1f60e11b8152600481018390526000916001600160a01b03169063c559783e90602401610b9a565b6003546040805163c71e261f60e01b815290516000926001600160a01b03169163c71e261f916004808301926020929190829003018186803b1580156109dd57600080fd5b61195f6040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6004805460405163cef58f1360e01b8152918201859052602482018490526001600160a01b03169063cef58f139060440160006040518083038186803b1580156119a857600080fd5b505afa1580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111859190810190612899565b60015460408051630352748760e61b815290516000926001600160a01b03169163d49d21c0916004808301926020929190829003018186803b1580156109dd57600080fd5b466000908152600760205260409020805460609190611a4790612dd1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7390612dd1565b8015611ac05780601f10611a9557610100808354040283529160200191611ac0565b820191906000526020600020905b815481529060010190602001808311611aa357829003601f168201915b5050505050905090565b600354604051636ea8e43560e11b8152600481018390526000916001600160a01b03169063dd51c86a9060240160206040518083038186803b158015611b0f57600080fd5b505afa158015611b23573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612680565b600080600260009054906101000a90046001600160a01b03166001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906125a5565b92915050565b611c456040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600554604051633ae0084560e21b8152600481018490526001600160a01b039091169063eb802114906024016101606040518083038186803b158015611c8a57600080fd5b505afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612998565b600554604051633b20cec360e21b815260048101849052602481018390526000916001600160a01b03169063ec833b0c9060440160206040518083038186803b158015611d0e57600080fd5b505afa158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125f9565b6004805460405163163c4b3160e31b81529182018390526000916001600160a01b039091169063b1e2598890602401610b9a565b60055460408051630f1d354d60e41b815290516000926001600160a01b03169163f1d354d0916004808301926020929190829003018186803b1580156109dd57600080fd5b60008054604051630f6b3e7d60e41b815260048101849052620100009091046001600160a01b03169063f6b3e7d090602401610b9a565b600354604051600162c0c77d60e01b03198152600481018390526000916001600160a01b03169063ff3f388390602401610b9a565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611e7557600080fd5b505afa158015611e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ead91906125a5565b90506001600160a01b0381166109695760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610d63565b600054610100900460ff16611f7e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610d63565b611f906542756e646c6560d01b611e2b565b600280546001600160a01b0319166001600160a01b0392909216919091179055611fc56810dbdb5c1bdb995b9d60ba1b611e2b565b600380546001600160a01b0319166001600160a01b0392909216919091179055611ff765506f6c69637960d01b611e2b565b600480546001600160a01b0319166001600160a01b039290921691909117905561202763141bdbdb60e21b611e2b565b600580546001600160a01b0319166001600160a01b039290921691909117905561205b67547265617375727960c01b611e2b565b600680546001600160a01b0319166001600160a01b0392909216919091179055612083612085565b565b60408051808201909152601481527308ae8d0cae4caeada409ac2d2dcdccae85e8aa8960631b602080830191825260016000526007905290516120e9917fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82891612465565b5060408051808201909152600a81526908edecae4d8d25e8aa8960b31b60208083019182526005600052600790529051612144917fbcdda56b5d08466ec462cbbe0adfa57cb0a15fcc8940ef68f702f21b787bc93591612465565b506040805180820190915260078082526647616e6163686560c81b602080840191825261053960005291909152905161219e917f96a76633116ac3161b66b4be70f114c9a245f4bbf414dc7a4d0edce8c01734cf91612465565b5060408051808201909152600b81526a476e6f7369732f7844616960a81b602080830191825260646000526007905290516121fa917f06179e496907eb3333fef2ed2194553681badbb6d717316349bf33d21ec47e1291612465565b5060408051808201909152600a815269536f6b6f6c2f53504f4160b01b6020808301918252604d600052600790529051612255917f58f3d94c4a880e721e755344405d3fe6076875bf5b3ad388d0a326a85bcabfb591612465565b50604080518082019091526015815274506f6c79676f6e204d61696e6e65742f4d4154494360581b602080830191825260896000526007905290516122bb917f65420a8d28339aeca441a0c94a464f6387b468f3f5ea5c247a6df59a5f7b886691612465565b5060408051808201909152600c81526b4d756d6261692f4d4154494360a01b6020808301918252611f41600052600790529051612319917f4d67172c71df6b75e948764b65521db84c0c61e94d5f3739b666417e9471e58491612465565b50604080518082019091526016815275082ecc2d8c2dcc6d0ca40865a86d0c2d2dc5e82ac82b60531b602080830191825261a86a600052600790529051612381917fa4356065248d86930c73e944e85f9d029fb0f52c0b8312d1a61bfbc9797ef51491612465565b5060408051808201909152601b81527f4176616c616e6368652046756a6920546573746e65742f415641580000000000602080830191825261a8696000526007905290516123f0917f57a00da22bfc0a372532b5dfacb7ddf387626f66de87422d191e09ea7493495691612465565b50565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561243557634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461247190612dd1565b90600052602060002090601f01602090048101928261249357600085556124d9565b82601f106124ac57805160ff19168380011785556124d9565b828001600101855582156124d9579182015b828111156124d95782518255916020019190600101906124be565b506124e59291506124e9565b5090565b5b808211156124e557600081556001016124ea565b805161096981612e58565b600082601f830112612519578081fd5b815167ffffffffffffffff81111561253357612533612e22565b612546601f8201601f1916602001612d4d565b81815284602083860101111561255a578283fd5b61256b826020830160208701612da1565b949350505050565b805161096981612e6d565b805161096981612e7a565b60006020828403121561259a578081fd5b813561118581612e58565b6000602082840312156125b6578081fd5b815161118581612e58565b6000602082840312156125d2578081fd5b81518015158114611185578182fd5b6000602082840312156125f2578081fd5b5035919050565b60006020828403121561260a578081fd5b5051919050565b60008060408385031215612623578081fd5b82359150602083013561263581612e58565b809150509250929050565b60008060408385031215612652578182fd5b50508035926020909101359150565b600060208284031215612672578081fd5b815160078110611185578182fd5b600060208284031215612691578081fd5b815161118581612e7a565b6000602082840312156126ad578081fd5b815167ffffffffffffffff808211156126c4578283fd5b9083019060c082860312156126d7578283fd5b6126e160c0612d4d565b82516126ec81612e6d565b808252506020830151602082015260408301516040820152606083015182811115612715578485fd5b61272187828601612509565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612758578081fd5b815167ffffffffffffffff8082111561276f578283fd5b8184019150610140808387031215612785578384fd5b61278e81612d4d565b90508251815260208301516020820152604083015160408201526127b460608401612573565b60608201526080830151828111156127ca578485fd5b6127d687828601612509565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60006020828403121561282c578081fd5b815167ffffffffffffffff80821115612843578283fd5b9083019060c08286031215612856578283fd5b61286060c0612d4d565b825161286b81612e58565b8152602083810151908201526128836040840161257e565b6040820152606083015182811115612715578485fd5b6000602082840312156128aa578081fd5b815167ffffffffffffffff808211156128c1578283fd5b9083019060c082860312156128d4578283fd5b6128de60c0612d4d565b825181526020830151600281106128f3578485fd5b602082015260408381015190820152606083015182811115612715578485fd5b6000610120808385031215612926578182fd5b61292f81612d4d565b905061293a8361257e565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006101608083850312156129ab578182fd5b6129b481612d4d565b9050825181526129c6602084016124fe565b60208201526129d7604084016124fe565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152508091505092915050565b60008151808452612a54816020860160208601612da1565b601f01601f19169290920160200192915050565b612a7181612e38565b9052565b6000602082526111856020830184612a3c565b6020810160078310612a9c57612a9c612e0c565b91905290565b60208101612a9c83612e48565b6000602082528251612ac081612e38565b806020840152506020830151604083015260408301516060830152606083015160c06080840152612af460e0840182612a3c565b9050608084015160a084015260a084015160c08401528091505092915050565b6000602082528251602083015260208301516040830152604083015160608301526060830151612b476080840182612a68565b5060808301516101408060a0850152612b64610160850183612a3c565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b60006020825260018060a01b038351166020830152602083015160408301526040830151612bd881612e48565b80606084015250606083015160c06080840152612af460e0840182612a3c565b60006020825282516020830152602083015160028110612c1a57612c1a612e0c565b8060408401525060408301516060830152606083015160c06080840152612af460e0840182612a3c565b8151610120820190612c5581612e48565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b81518152602080830151610160830191612cd5908401826001600160a01b03169052565b506040830151612cf060408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7657612d76612e22565b604052919050565b600082821015612d9c57634e487b7160e01b81526011600452602481fd5b500390565b60005b83811015612dbc578181015183820152602001612da4565b83811115612dcb576000848401525b50505050565b600281046001821680612de557607f821691505b60208210811415612e0657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600481106123f0576123f0612e0c565b600381106123f0576123f0612e0c565b6001600160a01b03811681146123f057600080fd5b600481106123f057600080fd5b600381106123f057600080fdfea26469706673582212208baa8d3664a94bfb7869664ce5bc59b2293ec35862ba4906c74e8d5f75cdd5f464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3E6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F22C2D9 GT PUSH2 0x20A JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xE543ECB9 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xEC833B0C GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xEC833B0C EQ PUSH2 0x894 JUMPI DUP1 PUSH4 0xEFF0F592 EQ PUSH2 0x8A7 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x8BA JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x8C2 JUMPI DUP1 PUSH4 0xFF3F3883 EQ PUSH2 0x8D5 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xE543ECB9 EQ PUSH2 0x83B JUMPI DUP1 PUSH4 0xE8828922 EQ PUSH2 0x854 JUMPI DUP1 PUSH4 0xEB35783C EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0xEB802114 EQ PUSH2 0x874 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xD49D21C0 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xD49D21C0 EQ PUSH2 0x7FA JUMPI DUP1 PUSH4 0xD722B0BC EQ PUSH2 0x802 JUMPI DUP1 PUSH4 0xDD51C86A EQ PUSH2 0x80A JUMPI DUP1 PUSH4 0xE0024604 EQ PUSH2 0x82A JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x7AA JUMPI DUP1 PUSH4 0xC559783E EQ PUSH2 0x7BF JUMPI DUP1 PUSH4 0xC71E261F EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0xCEF58F13 EQ PUSH2 0x7DA JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA44330C4 GT PUSH2 0x19D JUMPI DUP1 PUSH4 0xAB9C6EE4 GT PUSH2 0x16C JUMPI DUP1 PUSH4 0xAB9C6EE4 EQ PUSH2 0x75E JUMPI DUP1 PUSH4 0xAEDDB905 EQ PUSH2 0x771 JUMPI DUP1 PUSH4 0xBC506F64 EQ PUSH2 0x784 JUMPI DUP1 PUSH4 0xBCD5349F EQ PUSH2 0x797 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA44330C4 EQ PUSH2 0x71B JUMPI DUP1 PUSH4 0xA5961B4C EQ PUSH2 0x723 JUMPI DUP1 PUSH4 0xA5C0F5A1 EQ PUSH2 0x743 JUMPI DUP1 PUSH4 0xA7ECDA36 EQ PUSH2 0x756 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA3F66BD2 GT PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xA3F66BD2 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0xA3F685F9 EQ PUSH2 0x6E0 JUMPI DUP1 PUSH4 0xA4266A66 EQ PUSH2 0x700 JUMPI DUP1 PUSH4 0xA427056E EQ PUSH2 0x713 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x7F22C2D9 EQ PUSH2 0x661 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x681 JUMPI DUP1 PUSH4 0x9F77A605 EQ PUSH2 0x6A4 JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x6B7 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x3FFDD2F3 GT PUSH2 0x305 JUMPI DUP1 PUSH4 0x52B5B0EF GT PUSH2 0x298 JUMPI DUP1 PUSH4 0x6319112B GT PUSH2 0x267 JUMPI DUP1 PUSH4 0x6319112B EQ PUSH2 0x62E JUMPI DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x636 JUMPI DUP1 PUSH4 0x6FA29853 EQ PUSH2 0x63E JUMPI DUP1 PUSH4 0x775A4048 EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0x7DB32844 EQ PUSH2 0x64E JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x52B5B0EF EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0x5E6877BE EQ PUSH2 0x5FE JUMPI DUP1 PUSH4 0x5E966E45 EQ PUSH2 0x60E JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x4F27DA18 GT PUSH2 0x2D4 JUMPI DUP1 PUSH4 0x4F27DA18 EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0x50E1A19B EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x51B2FB90 EQ PUSH2 0x5AC JUMPI DUP1 PUSH4 0x52A9C8D7 EQ PUSH2 0x5BF JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x3FFDD2F3 EQ PUSH2 0x55C JUMPI DUP1 PUSH4 0x4288121D EQ PUSH2 0x564 JUMPI DUP1 PUSH4 0x442ED817 EQ PUSH2 0x56C JUMPI DUP1 PUSH4 0x49081637 EQ PUSH2 0x574 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x2898312F GT PUSH2 0x37D JUMPI DUP1 PUSH4 0x3408E470 GT PUSH2 0x34C JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x51B JUMPI DUP1 PUSH4 0x39C6FA90 EQ PUSH2 0x521 JUMPI DUP1 PUSH4 0x3A42B053 EQ PUSH2 0x529 JUMPI DUP1 PUSH4 0x3F5D9235 EQ PUSH2 0x549 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x2898312F EQ PUSH2 0x4BE JUMPI DUP1 PUSH4 0x29560980 EQ PUSH2 0x4D5 JUMPI DUP1 PUSH4 0x2B1C7F73 EQ PUSH2 0x4E8 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x4FB JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x18442E63 GT PUSH2 0x3B9 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x48B JUMPI DUP1 PUSH4 0x18FF21C3 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x1E010439 EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0x2857373A EQ PUSH2 0x4B6 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x38696BB EQ PUSH2 0x3EB JUMPI DUP1 PUSH4 0x91924DC EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xC131757 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x1551100F EQ PUSH2 0x43F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3FE PUSH2 0x3F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FE PUSH2 0x96E JUMP JUMPDEST PUSH2 0x431 PUSH4 0x141BDBDB PUSH1 0xE2 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x412 JUMP JUMPDEST PUSH2 0x431 PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD CHAINID PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV PUSH1 0x60 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP3 ADD MSTORE PUSH1 0x54 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x998 JUMP JUMPDEST PUSH2 0x431 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xA15 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xA9E JUMP JUMPDEST PUSH2 0x431 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xAE3 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0xB6B JUMP JUMPDEST PUSH2 0x50E PUSH2 0x509 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xBEA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2B14 JUMP JUMPDEST CHAINID PUSH2 0x431 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xC72 JUMP JUMPDEST PUSH2 0x53C PUSH2 0x537 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xD11 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2A75 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x557 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xD6C JUMP JUMPDEST PUSH2 0x431 PUSH2 0xDF4 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xE39 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xE55 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x595 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xEA4 JUMP JUMPDEST PUSH2 0x431 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xED6 JUMP JUMPDEST PUSH2 0x431 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL DUP2 JUMP JUMPDEST PUSH2 0x3FE PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x431 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x621 PUSH2 0x61C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xF1B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2A88 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xF98 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xFDD JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x102C JUMP JUMPDEST PUSH2 0x431 PUSH2 0x104F JUMP JUMPDEST PUSH2 0x431 PUSH2 0x65C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1094 JUMP JUMPDEST PUSH2 0x674 PUSH2 0x66F CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x10C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2AAF JUMP JUMPDEST PUSH2 0x694 PUSH2 0x68F CALLDATASIZE PUSH1 0x4 PUSH2 0x2611 JUMP JUMPDEST PUSH2 0x118C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x412 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x6B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1211 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1243 JUMP JUMPDEST PUSH2 0x431 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP2 JUMP JUMPDEST PUSH2 0x6F3 PUSH2 0x6EE CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1288 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x70E CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1353 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1385 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x13D5 JUMP JUMPDEST PUSH2 0x736 PUSH2 0x731 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1452 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2BAB JUMP JUMPDEST PUSH2 0x431 PUSH2 0x751 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1509 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x153B JUMP JUMPDEST PUSH2 0x53C PUSH2 0x76C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1556 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x77F CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x15AC JUMP JUMPDEST PUSH2 0x674 PUSH2 0x792 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x15E0 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x7A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1698 JUMP JUMPDEST PUSH2 0x7BD PUSH2 0x7B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0x1730 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x431 PUSH2 0x7CD CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x18AE JUMP JUMPDEST PUSH2 0x431 PUSH2 0x18E0 JUMP JUMPDEST PUSH2 0x7ED PUSH2 0x7E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x1925 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2BF8 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x19E4 JUMP JUMPDEST PUSH2 0x53C PUSH2 0x1A29 JUMP JUMPDEST PUSH2 0x81D PUSH2 0x818 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1ACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2AA2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x431 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL DUP2 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x1B47 JUMP JUMPDEST PUSH2 0x887 PUSH2 0x882 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1BD6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2CB1 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x1CC2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1D46 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1D7A JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1DBF JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1DF6 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x38696BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x38696BB SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x92E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x942 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1E2B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x18442E63 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x18442E63 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x993 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA93 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH2 0x100 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x142B9B9D PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x2857373A SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB61 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH2 0xBF2 PUSH2 0x23F3 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2747 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC98 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1E2B JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A49532D3030323A494D504C454D454E4154494F4E5F4D49535349 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4E47 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x60 SWAP1 PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDEA SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3FFDD2F3 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x3FFDD2F3 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x49081637 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x49081637 SWAP1 PUSH1 0x24 ADD PUSH2 0x916 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH2 0x916 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x52A9C8D7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x52A9C8D7 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF74 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2661 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x4667AE51 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x8CCF5CA2 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6C0F79B6 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xEEB4809 PUSH1 0xE3 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x775A4048 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x1100 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1185 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x269C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x25C1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9F77A605 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x9F77A605 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xA054381F PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xA054381F SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12D8 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x131B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x132F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2913 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA427056E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x2910CC31 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xA44330C4 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x142E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x993 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x281B JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA5C0F5A1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5C0F5A1 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A49532D3030313A494D504C454D454E4154494F4E5F4D49535349 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4E47 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x60 SWAP1 PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBE183B11 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBE183B11 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x161A PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x165C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1670 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x269C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x171A SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xE0 ADD MLOAD DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x2D7E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1750 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x176A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x176A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x17CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x17F0 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x181A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x185C JUMPI PUSH2 0x183B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1864 PUSH2 0x1F13 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x18AA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xC71E261F PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xC71E261F SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x195F PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCEF58F13 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xCEF58F13 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1185 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2899 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3527487 PUSH1 0xE6 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD49D21C0 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CHAINID PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH2 0x1A47 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1A73 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1AC0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A95 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1AC0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1AA3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2680 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x21DF0DA7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BD0 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1C45 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C9E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x163C4B31 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB1E25988 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xF1D354D PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xF1D354D0 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xF6B3E7D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF6B3E7D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0xC0C77D PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFF3F3883 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EAD SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x969 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1F7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH2 0x1F90 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1FC5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1FF7 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2027 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x205B PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2083 PUSH2 0x2085 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP2 MSTORE PUSH20 0x8AE8D0CAE4CAEADA409AC2D2DCDCCAE85E8AA89 PUSH1 0x63 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x20E9 SWAP2 PUSH32 0xB39221ACE053465EC3453CE2B36430BD138B997ECEA25C1043DA0C366812B828 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x8EDECAE4D8D25E8AA89 PUSH1 0xB3 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x5 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2144 SWAP2 PUSH32 0xBCDDA56B5D08466EC462CBBE0ADFA57CB0A15FCC8940EF68F702F21B787BC935 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x7 DUP1 DUP3 MSTORE PUSH7 0x47616E61636865 PUSH1 0xC8 SHL PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE PUSH2 0x539 PUSH1 0x0 MSTORE SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH2 0x219E SWAP2 PUSH32 0x96A76633116AC3161B66B4BE70F114C9A245F4BBF414DC7A4D0EDCE8C01734CF SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xB DUP2 MSTORE PUSH11 0x476E6F7369732F78446169 PUSH1 0xA8 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x64 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x21FA SWAP2 PUSH32 0x6179E496907EB3333FEF2ED2194553681BADBB6D717316349BF33D21EC47E12 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x536F6B6F6C2F53504F41 PUSH1 0xB0 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x4D PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2255 SWAP2 PUSH32 0x58F3D94C4A880E721E755344405D3FE6076875BF5B3AD388D0A326A85BCABFB5 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH21 0x506F6C79676F6E204D61696E6E65742F4D41544943 PUSH1 0x58 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x89 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x22BB SWAP2 PUSH32 0x65420A8D28339AECA441A0C94A464F6387B468F3F5EA5C247A6DF59A5F7B8866 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xC DUP2 MSTORE PUSH12 0x4D756D6261692F4D41544943 PUSH1 0xA0 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0x1F41 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2319 SWAP2 PUSH32 0x4D67172C71DF6B75E948764B65521DB84C0C61E94D5F3739B666417E9471E584 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH22 0x82ECC2D8C2DCC6D0CA40865A86D0C2D2DC5E82AC82B PUSH1 0x53 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0xA86A PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2381 SWAP2 PUSH32 0xA4356065248D86930C73E944E85F9D029FB0F52C0B8312D1A61BFBC9797EF514 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH32 0x4176616C616E6368652046756A6920546573746E65742F415641580000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0xA869 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x23F0 SWAP2 PUSH32 0x57A00DA22BFC0A372532B5DFACB7DDF387626F66DE87422D191E09EA74934956 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2435 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2471 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2493 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x24D9 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x24AC JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x24D9 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x24D9 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x24D9 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x24BE JUMP JUMPDEST POP PUSH2 0x24E5 SWAP3 SWAP2 POP PUSH2 0x24E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x24EA JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2519 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2533 JUMPI PUSH2 0x2533 PUSH2 0x2E22 JUMP JUMPDEST PUSH2 0x2546 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2D4D JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x255A JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x256B DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2DA1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E6D JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x259A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1185 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25B6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1185 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25D2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1185 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25F2 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x260A JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2623 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2635 DUP2 PUSH2 0x2E58 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2652 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2672 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1185 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2691 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1185 DUP2 PUSH2 0x2E7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x26C4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x26D7 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x26E1 PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD PUSH2 0x26EC DUP2 PUSH2 0x2E6D JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2721 DUP8 DUP3 DUP7 ADD PUSH2 0x2509 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2758 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x276F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2785 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x278E DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x27B4 PUSH1 0x60 DUP5 ADD PUSH2 0x2573 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x27CA JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x27D6 DUP8 DUP3 DUP7 ADD PUSH2 0x2509 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2843 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2856 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2860 PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD PUSH2 0x286B DUP2 PUSH2 0x2E58 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2883 PUSH1 0x40 DUP5 ADD PUSH2 0x257E JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28AA JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x28C1 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x28D4 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x28DE PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x28F3 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2926 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x292F DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP PUSH2 0x293A DUP4 PUSH2 0x257E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29AB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x29B4 DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH2 0x29C6 PUSH1 0x20 DUP5 ADD PUSH2 0x24FE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x29D7 PUSH1 0x40 DUP5 ADD PUSH2 0x24FE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2A54 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2DA1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2A71 DUP2 PUSH2 0x2E38 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1185 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A3C JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2A9C JUMPI PUSH2 0x2A9C PUSH2 0x2E0C JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2A9C DUP4 PUSH2 0x2E48 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH2 0x2AC0 DUP2 PUSH2 0x2E38 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2B47 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2A68 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2B64 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2A3C JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2BD8 DUP2 PUSH2 0x2E48 JUMP JUMPDEST DUP1 PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x2C1A JUMPI PUSH2 0x2C1A PUSH2 0x2E0C JUMP JUMPDEST DUP1 PUSH1 0x40 DUP5 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST DUP2 MLOAD PUSH2 0x120 DUP3 ADD SWAP1 PUSH2 0x2C55 DUP2 PUSH2 0x2E48 JUMP JUMPDEST DUP1 DUP4 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH2 0x160 DUP4 ADD SWAP2 PUSH2 0x2CD5 SWAP1 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2CF0 PUSH1 0x40 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2D76 JUMPI PUSH2 0x2D76 PUSH2 0x2E22 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2D9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2DBC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2DA4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2DCB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2DE5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2E06 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x23F0 JUMPI PUSH2 0x23F0 PUSH2 0x2E0C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x23F0 JUMPI PUSH2 0x23F0 PUSH2 0x2E0C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP12 0xAA DUP14 CALLDATASIZE PUSH5 0xA94BFB7869 PUSH7 0x4CE5BC59B2293E 0xC3 PC PUSH3 0xBA4906 0xC7 0x4E DUP14 0x5F PUSH22 0xCDD5F464736F6C634300080200330000000000000000 ","sourceMap":"1407:11001:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12119:152;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;13056:32:103;;;13038:51;;13026:2;13011:18;12119:152:84;;;;;;;;4253:204;;;:::i;1646:42::-;;-1:-1:-1;;;1646:42:84;;;;;13438:25:103;;;13426:2;13411:18;1646:42:84;13393:76:103;3581:213:84;;3635:18;3775:9;;3701:85;;;3735:13;3701:85;;;12750:19:103;3775:9:84;;;;12807:2:103;12803:15;-1:-1:-1;;12803:15:103;12785:12;;;12778:75;12869:12;;3701:85:84;;;;;;;;;;;;3678:109;;;;;;3665:122;;3581:213;;11399:101;;;:::i;1594:46::-;;-1:-1:-1;;;1594:46:84;;10307:155;;;;;;:::i;:::-;;:::i;6240:103::-;;;:::i;1923:61::-;;-1:-1:-1;;;1923:61:84;;9738:155;;;;;;:::i;:::-;;:::i;6462:169::-;;;;;;:::i;:::-;;:::i;11241:152::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3329:108::-;3417:13;3329:108;;3800:222;;;:::i;7839:179::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9899:::-;;;;;;:::i;:::-;;:::i;5805:128::-;;;:::i;4632:167::-;;;:::i;4805:171::-;;;:::i;11962:151::-;;;;;;:::i;:::-;;:::i;7087:128::-;;;;;;:::i;:::-;;:::i;1694:50::-;;-1:-1:-1;;;1694:50:84;;1536:52;;-1:-1:-1;;;1536:52:84;;5411:124;;;:::i;1751:78::-;;-1:-1:-1;;;1751:78:84;;5001:97;;5046:17;5082:9;;;;-1:-1:-1;;;;;5082:9:84;;5001:97;1484:46;;-1:-1:-1;;;1484:46:84;;6855:226;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12277:129::-;;;:::i;5104:138::-;;;:::i;4051:196::-;;;:::i;5541:124::-;;;:::i;10824:203::-;;;;;;:::i;:::-;;:::i;9038:175::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5939:164::-;;;;;;:::i;:::-;;:::i;:::-;;;13265:14:103;;13258:22;13240:41;;13228:2;13213:18;5939:164:84;13195:92:103;7487:127:84;;;;;;:::i;:::-;;:::i;6349:107::-;;;:::i;1835:82::-;;-1:-1:-1;;;1835:82:84;;8531:153;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10468:160::-;;;;;;:::i;:::-;;:::i;8041:139::-;;;:::i;11833:123::-;;;:::i;8186:155::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7221:124::-;;;;;;:::i;:::-;;:::i;4463:163::-;;;:::i;7646:187::-;;;;;;:::i;:::-;;:::i;8864:164::-;;;;;;:::i;:::-;;:::i;8347:178::-;;;;;;:::i;:::-;;:::i;10084:217::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;:::-;;11506:183:84;;;;;;:::i;:::-;;:::i;6129:105::-;;;:::i;9223:182::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5671:128::-;;;:::i;3443:132::-;;;:::i;6637:212::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11714:113::-;11810:9;;-1:-1:-1;;;;;11810:9:84;11714:113;;2059:65;;-1:-1:-1;;;2059:65:84;;1990:63;;-1:-1:-1;;;1990:63:84;;11050:181;;;:::i;9430:153::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10634:185::-;;;;;;:::i;:::-;;:::i;8694:160::-;;;;;;:::i;:::-;;:::i;9589:143::-;;;:::i;5256:132::-;;;;;;:::i;:::-;;:::i;7351:130::-;;;;;;:::i;:::-;;:::i;12119:152::-;12224:9;;:40;;-1:-1:-1;;;12224:40:84;;;;;13438:25:103;;;12198:6:84;;-1:-1:-1;;;;;12224:9:84;;:27;;13411:18:103;;12224:40:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12217:47;;12119:152;;;;:::o;4253:204::-;4322:32;4398:51;-1:-1:-1;;;4398:19:84;:51::i;:::-;4366:84;;4253:204;:::o;11399:101::-;11476:7;;:17;;;-1:-1:-1;;;11476:17:84;;;;11450:7;;-1:-1:-1;;;;;11476:7:84;;:15;;:17;;;;;;;;;;;;;;:7;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10307:155::-;10418:5;;:29;;-1:-1:-1;;;10418:29:84;;;;;13438:25:103;;;10378:21:84;;-1:-1:-1;;;;;10418:5:84;;:17;;13411:18:103;;10418:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;;;10307:155;-1:-1:-1;;10307:155:84:o;6240:103::-;6316:10;;:20;;;-1:-1:-1;;;6316:20:84;;;;6290:7;;-1:-1:-1;;;;;6316:10:84;;:18;;:20;;;;;;;;;;;;;;:10;:20;;;;;;;;;;9738:155;9849:5;;:29;;-1:-1:-1;;;9849:29:84;;;;;13438:25:103;;;9809:21:84;;-1:-1:-1;;;;;9849:5:84;;:17;;13411:18:103;;9849:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;;;9738:155;-1:-1:-1;;9738:155:84:o;6462:169::-;6581:10;;:43;;-1:-1:-1;;;6581:43:84;;-1:-1:-1;;;;;13056:32:103;;;6581:43:84;;;13038:51:103;6543:19:84;;6581:10;;:25;;13011:18:103;;6581:43:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11241:152::-;11310:28;;:::i;:::-;11359:7;;:27;;-1:-1:-1;;;11359:27:84;;;;;13438:25:103;;;-1:-1:-1;;;;;11359:7:84;;;;:17;;13411:18:103;;11359:27:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11359:27:84;;;;;;;;;;;;:::i;3800:222::-;3862:7;3881:27;3935:51;-1:-1:-1;;;3935:19:84;:51::i;:::-;3881:106;;4004:3;-1:-1:-1;;;;;4004:9:84;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3997:18;;;3800:222;:::o;7839:179::-;7967:44;;-1:-1:-1;;;7967:44:84;;17845:2:103;7967:44:84;;;17827:21:103;17884:2;17864:18;;;17857:30;17923:34;17903:18;;;17896:62;-1:-1:-1;;;17974:18:103;;;17967:32;7933:17:84;;18016:19:103;;7967:44:84;;;;;;;;9899:179;10028:5;;:29;;-1:-1:-1;;;10028:29:84;;;;;13438:25:103;;;9979:30:84;;-1:-1:-1;;;;;10028:5:84;;:17;;13411:18:103;;10028:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;;;9899:179;-1:-1:-1;;9899:179:84:o;5805:128::-;5895:7;;:31;;;-1:-1:-1;;;5895:31:84;;;;5869:7;;-1:-1:-1;;;;;5895:7:84;;:29;;:31;;;;;;;;;;;;;;:7;:31;;;;;;;;;;4632:167;4692:23;4750:41;-1:-1:-1;;;4750:19:84;:41::i;4805:171::-;4866:24;4926:42;-1:-1:-1;;;4926:19:84;:42::i;11962:151::-;12067:9;;:39;;-1:-1:-1;;;12067:39:84;;;;;13438:25:103;;;12040:7:84;;-1:-1:-1;;;;;12067:9:84;;:27;;13411:18:103;;12067:39:84;13393:76:103;7087:128:84;7181:10;;:27;;-1:-1:-1;;;7181:27:84;;;;;13438:25:103;;;7152:10:84;;-1:-1:-1;;;;;7181:10:84;;:23;;13411:18:103;;7181:27:84;13393:76:103;5411:124:84;5499:7;;:29;;;-1:-1:-1;;;5499:29:84;;;;5473:7;;-1:-1:-1;;;;;5499:7:84;;:27;;:29;;;;;;;;;;;;;;:7;:29;;;;;;;;;;6855:226;7033:10;;:41;;-1:-1:-1;;;7033:41:84;;;;;13438:25:103;;;6960:40:84;;-1:-1:-1;;;;;7033:10:84;;:28;;13411:18:103;;7033:41:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12277:129::-;12368:9;;:31;;;-1:-1:-1;;;12368:31:84;;;;12342:7;;-1:-1:-1;;;;;12368:9:84;;:29;;:31;;;;;;;;;;;;;;:9;:31;;;;;;;;;;5104:138;5157:25;5214:9;;;;;;;;;-1:-1:-1;;;;;5214:9:84;-1:-1:-1;;;;;5214:19:84;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4051:196;4118:30;4190:49;-1:-1:-1;;;4190:19:84;:49::i;5541:124::-;5629:7;;:29;;;-1:-1:-1;;;5629:29:84;;;;5603:7;;-1:-1:-1;;;;;5629:7:84;;:27;;:29;;;;;;;;;;;;;;:7;:29;;;;;;;;;;10824:203;10971:5;;:49;;-1:-1:-1;;;10971:49:84;;;;;13438:25:103;;;10916:36:84;;-1:-1:-1;;;;;10971:5:84;;:37;;13411:18:103;;10971:49:84;13393:76:103;9038:175:84;9124:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9124:26:84;9170:7;;;:36;;-1:-1:-1;;;9170:36:84;;;;;13927:25:103;;;13968:18;;;13961:34;;;-1:-1:-1;;;;;9170:7:84;;:16;;13900:18:103;;9170:36:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9170:36:84;;;;;;;;;;;;:::i;:::-;9162:44;9038:175;-1:-1:-1;;;9038:175:84:o;5939:164::-;6064:7;;:32;;-1:-1:-1;;;6064:32:84;;;;;13648:25:103;;;-1:-1:-1;;;;;13709:32:103;;;13689:18;;;13682:60;6037:4:84;;6064:7;;:15;;13621:18:103;;6064:32:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7487:127::-;7579:10;;:28;;-1:-1:-1;;;7579:28:84;;;;;13438:25:103;;;7543:17:84;;-1:-1:-1;;;;;7579:10:84;;:23;;13411:18:103;;7579:28:84;13393:76:103;6349:107:84;6427:10;;:22;;;-1:-1:-1;;;6427:22:84;;;;6401:7;;-1:-1:-1;;;;;6427:10:84;;:20;;:22;;;;;;;;;;;;;;:10;:22;;;;;;;;;;8531:153;8600:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8600:28:84;8649:7;;;:28;;-1:-1:-1;;;8649:28:84;;;;;13438:25:103;;;-1:-1:-1;;;;;8649:7:84;;:17;;13411:18:103;;8649:28:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10468:160::-;10590:5;;:31;;-1:-1:-1;;;10590:31:84;;;;;13438:25:103;;;10542:29:84;;-1:-1:-1;;;;;10590:5:84;;:19;;13411:18:103;;10590:31:84;13393:76:103;8041:139:84;8094:26;8153:7;;;;;;;;;-1:-1:-1;;;;;8153:7:84;-1:-1:-1;;;;;8153:18:84;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11833:123;11920:9;;:29;;;-1:-1:-1;;;11920:29:84;;;;11893:7;;-1:-1:-1;;;;;11920:9:84;;:27;;:29;;;;;;;;;;;;;;:9;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8186:155::-;8253:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8253:32:84;8308:7;;;:26;;-1:-1:-1;;;8308:26:84;;;;;13438:25:103;;;-1:-1:-1;;;;;8308:7:84;;:19;;13411:18:103;;8308:26:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8308:26:84;;;;;;;;;;;;:::i;7221:124::-;7311:10;;:27;;-1:-1:-1;;;7311:27:84;;;;;13438:25:103;;;7276:16:84;;-1:-1:-1;;;;;7311:10:84;;:22;;13411:18:103;;7311:27:84;13393:76:103;4463:163:84;4522:22;4578:40;-1:-1:-1;;;4578:19:84;:40::i;7646:187::-;7782:44;;-1:-1:-1;;;7782:44:84;;18663:2:103;7782:44:84;;;18645:21:103;18702:2;18682:18;;;18675:30;18741:34;18721:18;;;18714:62;-1:-1:-1;;;18792:18:103;;;18785:32;7748:17:84;;18834:19:103;;7782:44:84;18635:224:103;8864:164:84;8984:7;;;:37;;-1:-1:-1;;;8984:37:84;;;;;13438:25:103;;;8931:23:84;;-1:-1:-1;;;;;8984:7:84;;;;:26;;13411:18:103;;8984:37:84;13393:76:103;8347:178:84;8421:38;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8421:38:84;8485:7;;;:33;;-1:-1:-1;;;8485:33:84;;;;;13438:25:103;;;-1:-1:-1;;;;;8485:7:84;;:22;;13411:18:103;;8485:33:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8485:33:84;;;;;;;;;;;;:::i;10084:217::-;10215:5;;:29;;-1:-1:-1;;;10215:29:84;;;;;13438:25:103;;;10156:22:84;;;;-1:-1:-1;;;;;10215:5:84;;;;:17;;13411:18:103;;10215:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10190:54;;10276:4;:18;;;10261:4;:12;;;:33;;;;:::i;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;18248:2:103;3146:190:47;;;18230:21:103;18287:2;18267:18;;;18260:30;18326:34;18306:18;;;18299:62;-1:-1:-1;;;18377:18:103;;;18370:44;18431:19;;3146:190:47;18220:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;16966:36:103;;3531:14:47;;16954:2:103;16939:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;11506:183:84:-;11648:7;;:34;;-1:-1:-1;;;11648:34:84;;;;;13438:25:103;;;11581:30:84;;-1:-1:-1;;;;;11648:7:84;;:22;;13411:18:103;;11648:34:84;13393:76:103;6129:105:84;6206:10;;:21;;;-1:-1:-1;;;6206:21:84;;;;6180:7;;-1:-1:-1;;;;;6206:10:84;;:19;;:21;;;;;;;;;;;;;;:10;:21;;;;;;;;;;9223:182;9311:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9311:28:84;9360:7;;;:38;;-1:-1:-1;;;9360:38:84;;;;;13927:25:103;;;13968:18;;;13961:34;;;-1:-1:-1;;;;;9360:7:84;;:17;;13900:18:103;;9360:38:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9360:38:84;;;;;;;;;;;;:::i;5671:128::-;5761:7;;:31;;;-1:-1:-1;;;5761:31:84;;;;5735:7;;-1:-1:-1;;;;;5761:7:84;;:29;;:31;;;;;;;;;;;;;;:7;:31;;;;;;;;;;3443:132;3554:13;3543:25;;;;:10;:25;;;;;3531:37;;3496:23;;3543:25;3531:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3443:132;:::o;6637:212::-;6802:10;;:40;;-1:-1:-1;;;6802:40:84;;;;;13438:25:103;;;6741:38:84;;-1:-1:-1;;;;;6802:10:84;;:27;;13411:18:103;;6802:40:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11050:181::-;11107:18;11137:23;11163:7;;;;;;;;;-1:-1:-1;;;;;11163:7:84;-1:-1:-1;;;;;11163:16:84;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11137:44;11050:181;-1:-1:-1;;11050:181:84:o;9430:153::-;9502:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9502:26:84;9547:5;;:29;;-1:-1:-1;;;9547:29:84;;;;;13438:25:103;;;-1:-1:-1;;;;;9547:5:84;;;;:17;;13411:18:103;;9547:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10634:185::-;10766:5;;:46;;-1:-1:-1;;;10766:46:84;;;;;13927:25:103;;;13968:18;;;13961:34;;;10731:16:84;;-1:-1:-1;;;;;10766:5:84;;:23;;13900:18:103;;10766:46:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8694:160::-;8811:7;;;:36;;-1:-1:-1;;;8811:36:84;;;;;13438:25:103;;;8760:22:84;;-1:-1:-1;;;;;8811:7:84;;;;:25;;13411:18:103;;8811:36:84;13393:76:103;9589:143:84;9688:5;;:37;;;-1:-1:-1;;;9688:37:84;;;;9662:7;;-1:-1:-1;;;;;9688:5:84;;:35;;:37;;;;;;;;;;;;;;:5;:37;;;;;;;;;;5256:132;5323:12;5354:9;;:27;;-1:-1:-1;;;5354:27:84;;;;;13438:25:103;;;5354:9:84;;;;-1:-1:-1;;;;;5354:9:84;;:22;;13411:18:103;;5354:27:84;13393:76:103;7351:130:84;7445:10;;:29;;-1:-1:-1;;;;;;7445:29:84;;;;;13438:25:103;;;7408:18:84;;-1:-1:-1;;;;;7445:10:84;;:24;;13411:18:103;;7445:29:84;13393:76:103;1530:293:88;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;13438:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;13411:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;17439:2:103;1703:113:88;;;17421:21:103;17478:2;17458:18;;;17451:30;17517:34;17497:18;;;17490:62;-1:-1:-1;;;17568:18:103;;;17561:35;17613:19;;1703:113:88;17411:227:103;2376:452:84;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;19066:2:103;4880:69:47;;;19048:21:103;19105:2;19085:18;;;19078:30;19144:34;19124:18;;;19117:62;-1:-1:-1;;;19195:18:103;;;19188:41;19246:19;;4880:69:47;19038:233:103;4880:69:47;2476:32:84::1;-1:-1:-1::0;;;2476:19:84::1;:32::i;:::-;2449:7;:60:::0;;-1:-1:-1;;;;;;2449:60:84::1;-1:-1:-1::0;;;;;2449:60:84;;;::::1;::::0;;;::::1;::::0;;2552:35:::1;-1:-1:-1::0;;;2552:19:84::1;:35::i;:::-;2519:10;:69:::0;;-1:-1:-1;;;;;;2519:69:84::1;-1:-1:-1::0;;;;;2519:69:84;;;::::1;::::0;;;::::1;::::0;;2625:32:::1;-1:-1:-1::0;;;2625:19:84::1;:32::i;:::-;2598:7;:60:::0;;-1:-1:-1;;;;;;2598:60:84::1;-1:-1:-1::0;;;;;2598:60:84;;;::::1;::::0;;;::::1;::::0;;2691:30:::1;-1:-1:-1::0;;;2691:19:84::1;:30::i;:::-;2668:5;:54:::0;;-1:-1:-1;;;;;;2668:54:84::1;-1:-1:-1::0;;;;;2668:54:84;;;::::1;::::0;;;::::1;::::0;;2759:34:::1;-1:-1:-1::0;;;2759:19:84::1;:34::i;:::-;2732:9;:62:::0;;-1:-1:-1;;;;;;2732:62:84::1;-1:-1:-1::0;;;;;2732:62:84;;;::::1;::::0;;;::::1;::::0;;2805:16:::1;:14;:16::i;:::-;2376:452::o:0;2834:462::-;2879:38;;;;;;;;;;;;-1:-1:-1;;;2879:38:84;;;;;;;2890:1;-1:-1:-1;2879:13:84;:10;:13;;:38;;;;:13;;:38;:::i;:::-;-1:-1:-1;2928:28:84;;;;;;;;;;;;-1:-1:-1;;;2928:28:84;;;;;;;2939:1;-1:-1:-1;2928:13:84;:10;:13;;:28;;;;:13;;:28;:::i;:::-;-1:-1:-1;2967:28:84;;;;;;;;;;;;;-1:-1:-1;;;2967:28:84;;;;;;;2978:4;-1:-1:-1;2967:16:84;;;;;:28;;;;:16;;:28;:::i;:::-;-1:-1:-1;3006:31:84;;;;;;;;;;;;-1:-1:-1;;;3006:31:84;;;;;;;3017:3;-1:-1:-1;3006:15:84;:10;:15;;:31;;;;:15;;:31;:::i;:::-;-1:-1:-1;3048:29:84;;;;;;;;;;;;-1:-1:-1;;;3048:29:84;;;;;;;3059:2;-1:-1:-1;3048:14:84;:10;:14;;:29;;;;:14;;:29;:::i;:::-;-1:-1:-1;3088:41:84;;;;;;;;;;;;-1:-1:-1;;;3088:41:84;;;;;;;3099:3;-1:-1:-1;3088:15:84;:10;:15;;:41;;;;:15;;:41;:::i;:::-;-1:-1:-1;3140:33:84;;;;;;;;;;;;-1:-1:-1;;;3140:33:84;;;;;;;3151:4;-1:-1:-1;3140:16:84;:10;:16;;:33;;;;:16;;:33;:::i;:::-;-1:-1:-1;3184:44:84;;;;;;;;;;;;-1:-1:-1;;;3184:44:84;;;;;;;3195:5;-1:-1:-1;3184:17:84;:10;:17;;:44;;;;:17;;:44;:::i;:::-;-1:-1:-1;3239:49:84;;;;;;;;;;;;;;;;;;;;3250:5;-1:-1:-1;3239:17:84;:10;:17;;:49;;;;:17;;:49;:::i;:::-;;2834:462::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:138:103;93:13;;115:31;93:13;115:31;:::i;157:512::-;;263:3;256:4;248:6;244:17;240:27;230:2;;285:5;278;271:20;230:2;318:6;312:13;344:18;340:2;337:26;334:2;;;366:18;;:::i;:::-;410:55;453:2;434:13;;-1:-1:-1;;430:27:103;459:4;426:38;410:55;:::i;:::-;490:2;481:7;474:19;536:3;529:4;524:2;516:6;512:15;508:26;505:35;502:2;;;557:5;550;543:20;502:2;574:64;635:2;628:4;619:7;615:18;608:4;600:6;596:17;574:64;:::i;:::-;656:7;220:449;-1:-1:-1;;;;220:449:103:o;674:166::-;767:13;;789:45;767:13;789:45;:::i;845:160::-;935:13;;957:42;935:13;957:42;:::i;1010:257::-;;1122:2;1110:9;1101:7;1097:23;1093:32;1090:2;;;1143:6;1135;1128:22;1090:2;1187:9;1174:23;1206:31;1231:5;1206:31;:::i;1272:261::-;;1395:2;1383:9;1374:7;1370:23;1366:32;1363:2;;;1416:6;1408;1401:22;1363:2;1453:9;1447:16;1472:31;1497:5;1472:31;:::i;1538:297::-;;1658:2;1646:9;1637:7;1633:23;1629:32;1626:2;;;1679:6;1671;1664:22;1626:2;1716:9;1710:16;1769:5;1762:13;1755:21;1748:5;1745:32;1735:2;;1796:6;1788;1781:22;1840:190;;1952:2;1940:9;1931:7;1927:23;1923:32;1920:2;;;1973:6;1965;1958:22;1920:2;-1:-1:-1;2001:23:103;;1910:120;-1:-1:-1;1910:120:103:o;2035:194::-;;2158:2;2146:9;2137:7;2133:23;2129:32;2126:2;;;2179:6;2171;2164:22;2126:2;-1:-1:-1;2207:16:103;;2116:113;-1:-1:-1;2116:113:103:o;2234:325::-;;;2363:2;2351:9;2342:7;2338:23;2334:32;2331:2;;;2384:6;2376;2369:22;2331:2;2425:9;2412:23;2402:33;;2485:2;2474:9;2470:18;2457:32;2498:31;2523:5;2498:31;:::i;:::-;2548:5;2538:15;;;2321:238;;;;;:::o;2564:258::-;;;2693:2;2681:9;2672:7;2668:23;2664:32;2661:2;;;2714:6;2706;2699:22;2661:2;-1:-1:-1;;2742:23:103;;;2812:2;2797:18;;;2784:32;;-1:-1:-1;2651:171:103:o;3680:299::-;;3822:2;3810:9;3801:7;3797:23;3793:32;3790:2;;;3843:6;3835;3828:22;3790:2;3880:9;3874:16;3919:1;3912:5;3909:12;3899:2;;3940:6;3932;3925:22;3984:290;;4125:2;4113:9;4104:7;4100:23;4096:32;4093:2;;;4146:6;4138;4131:22;4093:2;4183:9;4177:16;4202:42;4238:5;4202:42;:::i;4279:1005::-;;4431:2;4419:9;4410:7;4406:23;4402:32;4399:2;;;4452:6;4444;4437:22;4399:2;4490:9;4484:16;4519:18;4560:2;4552:6;4549:14;4546:2;;;4581:6;4573;4566:22;4546:2;4609:22;;;;4665:4;4647:16;;;4643:27;4640:2;;;4688:6;4680;4673:22;4640:2;4719:21;4735:4;4719:21;:::i;:::-;4770:2;4764:9;4782:47;4821:7;4782:47;:::i;:::-;4852:7;4845:5;4838:22;;4906:2;4902;4898:11;4892:18;4887:2;4880:5;4876:14;4869:42;4957:2;4953;4949:11;4943:18;4938:2;4931:5;4927:14;4920:42;5001:2;4997;4993:11;4987:18;5030:2;5020:8;5017:16;5014:2;;;5051:6;5043;5036:22;5014:2;5092:55;5139:7;5128:8;5124:2;5120:17;5092:55;:::i;:::-;5087:2;5080:5;5076:14;5069:79;;5195:3;5191:2;5187:12;5181:19;5175:3;5168:5;5164:15;5157:44;5248:3;5244:2;5240:12;5234:19;5228:3;5221:5;5217:15;5210:44;5273:5;5263:15;;;;;4389:895;;;;:::o;5289:1224::-;;5436:2;5424:9;5415:7;5411:23;5407:32;5404:2;;;5457:6;5449;5442:22;5404:2;5495:9;5489:16;5524:18;5565:2;5557:6;5554:14;5551:2;;;5586:6;5578;5571:22;5551:2;5629:6;5618:9;5614:22;5604:32;;5655:6;5695:2;5690;5681:7;5677:16;5673:25;5670:2;;;5716:6;5708;5701:22;5670:2;5747:19;5763:2;5747:19;:::i;:::-;5734:32;;5795:2;5789:9;5782:5;5775:24;5845:2;5841;5837:11;5831:18;5826:2;5819:5;5815:14;5808:42;5896:2;5892;5888:11;5882:18;5877:2;5870:5;5866:14;5859:42;5933:56;5985:2;5981;5977:11;5933:56;:::i;:::-;5928:2;5921:5;5917:14;5910:80;6029:3;6025:2;6021:12;6015:19;6059:2;6049:8;6046:16;6043:2;;;6080:6;6072;6065:22;6043:2;6122:55;6169:7;6158:8;6154:2;6150:17;6122:55;:::i;:::-;6116:3;6105:15;;6098:80;-1:-1:-1;6225:3:103;6217:12;;;6211:19;6194:15;;;6187:44;6278:3;6270:12;;;6264:19;6247:15;;;6240:44;6331:3;6323:12;;;6317:19;6300:15;;;6293:44;6356:3;6397:11;;;6391:18;6375:14;;;6368:42;6429:3;6470:11;;;6464:18;6448:14;;;6441:42;;;;-1:-1:-1;6109:5:103;5394:1119;-1:-1:-1;;;5394:1119:103:o;7522:1023::-;;7671:2;7659:9;7650:7;7646:23;7642:32;7639:2;;;7692:6;7684;7677:22;7639:2;7730:9;7724:16;7759:18;7800:2;7792:6;7789:14;7786:2;;;7821:6;7813;7806:22;7786:2;7849:22;;;;7905:4;7887:16;;;7883:27;7880:2;;;7928:6;7920;7913:22;7880:2;7959:21;7975:4;7959:21;:::i;:::-;8010:2;8004:9;8022:33;8047:7;8022:33;:::i;:::-;8064:22;;8132:2;8124:11;;;8118:18;8102:14;;;8095:42;8169:53;8218:2;8210:11;;8169:53;:::i;:::-;8164:2;8157:5;8153:14;8146:77;8262:2;8258;8254:11;8248:18;8291:2;8281:8;8278:16;8275:2;;;8312:6;8304;8297:22;8550:1005;;8697:2;8685:9;8676:7;8672:23;8668:32;8665:2;;;8718:6;8710;8703:22;8665:2;8756:9;8750:16;8785:18;8826:2;8818:6;8815:14;8812:2;;;8847:6;8839;8832:22;8812:2;8875:22;;;;8931:4;8913:16;;;8909:27;8906:2;;;8954:6;8946;8939:22;8906:2;8985:21;9001:4;8985:21;:::i;:::-;9035:2;9029:9;9022:5;9015:24;9077:2;9073;9069:11;9063:18;9112:1;9103:7;9100:14;9090:2;;9133:6;9125;9118:22;9090:2;9169;9158:14;;9151:31;9228:2;9220:11;;;9214:18;9198:14;;;9191:42;9272:2;9264:11;;9258:18;9288:16;;;9285:2;;;9322:6;9314;9307:22;9560:839;;9685:3;9729:2;9717:9;9708:7;9704:23;9700:32;9697:2;;;9750:6;9742;9735:22;9697:2;9781:19;9797:2;9781:19;:::i;:::-;9768:32;;9823:51;9864:9;9823:51;:::i;:::-;9816:5;9809:66;9928:2;9917:9;9913:18;9907:25;9902:2;9895:5;9891:14;9884:49;9986:2;9975:9;9971:18;9965:25;9960:2;9953:5;9949:14;9942:49;10044:2;10033:9;10029:18;10023:25;10018:2;10011:5;10007:14;10000:49;10103:3;10092:9;10088:19;10082:26;10076:3;10069:5;10065:15;10058:51;10163:3;10152:9;10148:19;10142:26;10136:3;10129:5;10125:15;10118:51;10223:3;10212:9;10208:19;10202:26;10196:3;10189:5;10185:15;10178:51;10283:3;10272:9;10268:19;10262:26;10256:3;10249:5;10245:15;10238:51;10308:3;10364:2;10353:9;10349:18;10343:25;10338:2;10331:5;10327:14;10320:49;;10388:5;10378:15;;;9665:734;;;;:::o;10404:1010::-;;10527:3;10571:2;10559:9;10550:7;10546:23;10542:32;10539:2;;;10592:6;10584;10577:22;10539:2;10623:19;10639:2;10623:19;:::i;:::-;10610:32;;10671:9;10665:16;10658:5;10651:31;10714:49;10759:2;10748:9;10744:18;10714:49;:::i;:::-;10709:2;10702:5;10698:14;10691:73;10796:49;10841:2;10830:9;10826:18;10796:49;:::i;:::-;10791:2;10784:5;10780:14;10773:73;10899:2;10888:9;10884:18;10878:25;10873:2;10866:5;10862:14;10855:49;10958:3;10947:9;10943:19;10937:26;10931:3;10924:5;10920:15;10913:51;11018:3;11007:9;11003:19;10997:26;10991:3;10984:5;10980:15;10973:51;11078:3;11067:9;11063:19;11057:26;11051:3;11044:5;11040:15;11033:51;11138:3;11127:9;11123:19;11117:26;11111:3;11104:5;11100:15;11093:51;11163:3;11219:2;11208:9;11204:18;11198:25;11193:2;11186:5;11182:14;11175:49;;11243:3;11299:2;11288:9;11284:18;11278:25;11273:2;11266:5;11262:14;11255:49;;11323:3;11379:2;11368:9;11364:18;11358:25;11353:2;11346:5;11342:14;11335:49;;11403:5;11393:15;;;10507:907;;;;:::o;12185:257::-;;12264:5;12258:12;12291:6;12286:3;12279:19;12307:63;12363:6;12356:4;12351:3;12347:14;12340:4;12333:5;12329:16;12307:63;:::i;:::-;12424:2;12403:15;-1:-1:-1;;12399:29:103;12390:39;;;;12431:4;12386:50;;12234:208;-1:-1:-1;;12234:208:103:o;12447:141::-;12510:45;12549:5;12510:45;:::i;:::-;12564:18;;12500:88::o;14006:217::-;;14153:2;14142:9;14135:21;14173:44;14213:2;14202:9;14198:18;14190:6;14173:44;:::i;16309:250::-;16460:2;16445:18;;16493:1;16482:13;;16472:2;;16499:18;;:::i;:::-;16528:25;;;16427:132;:::o;16564:245::-;16714:2;16699:18;;16726:43;16762:6;16726:43;:::i;19276:749::-;;19463:2;19452:9;19445:21;19491:6;19485:13;19507:42;19546:2;19507:42;:::i;:::-;19585:2;19580;19569:9;19565:18;19558:30;;19642:2;19634:6;19630:15;19624:22;19619:2;19608:9;19604:18;19597:50;19701:2;19693:6;19689:15;19683:22;19678:2;19667:9;19663:18;19656:50;19753:2;19745:6;19741:15;19735:22;19794:4;19788:3;19777:9;19773:19;19766:33;19822:51;19868:3;19857:9;19853:19;19839:12;19822:51;:::i;:::-;19808:65;;19928:3;19920:6;19916:16;19910:23;19904:3;19893:9;19889:19;19882:52;19990:3;19982:6;19978:16;19972:23;19965:4;19954:9;19950:20;19943:53;20013:6;20005:14;;;19435:590;;;;:::o;20030:1080::-;;20207:2;20196:9;20189:21;20252:6;20246:13;20241:2;20230:9;20226:18;20219:41;20314:2;20306:6;20302:15;20296:22;20291:2;20280:9;20276:18;20269:50;20373:2;20365:6;20361:15;20355:22;20350:2;20339:9;20335:18;20328:50;20425:2;20417:6;20413:15;20407:22;20438:62;20495:3;20484:9;20480:19;20466:12;20438:62;:::i;:::-;;20549:3;20541:6;20537:16;20531:23;20573:6;20616:2;20610:3;20599:9;20595:19;20588:31;20642:53;20690:3;20679:9;20675:19;20659:14;20642:53;:::i;:::-;20628:67;;20750:3;20742:6;20738:16;20732:23;20726:3;20715:9;20711:19;20704:52;20811:3;20803:6;20799:16;20793:23;20787:3;20776:9;20772:19;20765:52;20854:3;20846:6;20842:16;20836:23;20878:3;20917:2;20912;20901:9;20897:18;20890:30;20957:2;20949:6;20945:15;20939:22;20929:32;;;20980:3;21019:2;21014;21003:9;20999:18;20992:30;21076:2;21068:6;21064:15;21058:22;21053:2;21042:9;21038:18;21031:50;;;;21098:6;21090:14;;;20179:931;;;;:::o;21857:800::-;;22038:2;22027:9;22020:21;22113:1;22109;22104:3;22100:11;22096:19;22087:6;22081:13;22077:39;22072:2;22061:9;22057:18;22050:67;22171:2;22163:6;22159:15;22153:22;22148:2;22137:9;22133:18;22126:50;22223:2;22215:6;22211:15;22205:22;22236:49;22272:12;22236:49;:::i;:::-;22321:12;22316:2;22305:9;22301:18;22294:40;;22383:2;22375:6;22371:15;22365:22;22424:4;22418:3;22407:9;22403:19;22396:33;22452:53;22500:3;22489:9;22485:19;22469:14;22452:53;:::i;22662:774::-;;22839:2;22828:9;22821:21;22884:6;22878:13;22873:2;22862:9;22858:18;22851:41;22939:2;22931:6;22927:15;22921:22;22979:1;22965:12;22962:19;22952:2;;22985:18;;:::i;:::-;23041:12;23036:2;23025:9;23021:18;23014:40;;23108:2;23100:6;23096:15;23090:22;23085:2;23074:9;23070:18;23063:50;23162:2;23154:6;23150:15;23144:22;23203:4;23197:3;23186:9;23182:19;23175:33;23231:53;23279:3;23268:9;23264:19;23248:14;23231:53;:::i;23441:827::-;23646:13;;23623:3;23608:19;;;23668:39;23646:13;23668:39;:::i;:::-;23734:2;23723:9;23716:21;;23793:4;23785:6;23781:17;23775:24;23768:4;23757:9;23753:20;23746:54;23856:4;23848:6;23844:17;23838:24;23831:4;23820:9;23816:20;23809:54;23919:4;23911:6;23907:17;23901:24;23894:4;23883:9;23879:20;23872:54;23982:4;23974:6;23970:17;23964:24;23957:4;23946:9;23942:20;23935:54;24045:4;24037:6;24033:17;24027:24;24020:4;24009:9;24005:20;23998:54;24108:4;24100:6;24096:17;24090:24;24083:4;24072:9;24068:20;24061:54;24171:4;24163:6;24159:17;24153:24;24146:4;24135:9;24131:20;24124:54;24197:6;24257:2;24249:6;24245:15;24239:22;24234:2;24223:9;24219:18;24212:50;;23590:678;;;;:::o;24273:1032::-;24482:13;;24464:32;;24543:4;24531:17;;;24525:24;24451:3;24436:19;;;24558:54;;24591:20;;24525:24;-1:-1:-1;;;;;12142:31:103;12130:44;;12120:60;24558:54;;24661:4;24653:6;24649:17;24643:24;24676:56;24726:4;24715:9;24711:20;24695:14;-1:-1:-1;;;;;12142:31:103;12130:44;;12120:60;24676:56;;24788:4;24780:6;24776:17;24770:24;24763:4;24752:9;24748:20;24741:54;24851:4;24843:6;24839:17;24833:24;24826:4;24815:9;24811:20;24804:54;24914:4;24906:6;24902:17;24896:24;24889:4;24878:9;24874:20;24867:54;24977:4;24969:6;24965:17;24959:24;24952:4;24941:9;24937:20;24930:54;25040:4;25032:6;25028:17;25022:24;25015:4;25004:9;25000:20;24993:54;25066:6;25126:2;25118:6;25114:15;25108:22;25103:2;25092:9;25088:18;25081:50;;25150:6;25210:2;25202:6;25198:15;25192:22;25187:2;25176:9;25172:18;25165:50;;25234:6;25294:2;25286:6;25282:15;25276:22;25271:2;25260:9;25256:18;25249:50;;24418:887;;;;:::o;25745:275::-;25816:2;25810:9;25881:2;25862:13;;-1:-1:-1;;25858:27:103;25846:40;;25916:18;25901:34;;25937:22;;;25898:62;25895:2;;;25963:18;;:::i;:::-;25999:2;25992:22;25790:230;;-1:-1:-1;25790:230:103:o;26025:228::-;;26093:1;26090;26087:8;26084:2;;;-1:-1:-1;;;26118:34:103;;26175:4;26172:1;26165:15;26206:4;26125;26193:18;26084:2;-1:-1:-1;26238:9:103;;26074:179::o;26258:258::-;26330:1;26340:113;26354:6;26351:1;26348:13;26340:113;;;26430:11;;;26424:18;26411:11;;;26404:39;26376:2;26369:10;26340:113;;;26471:6;26468:1;26465:13;26462:2;;;26506:1;26497:6;26492:3;26488:16;26481:27;26462:2;;26311:205;;;:::o;26521:380::-;26606:1;26596:12;;26653:1;26643:12;;;26664:2;;26718:4;26710:6;26706:17;26696:27;;26664:2;26771;26763:6;26760:14;26740:18;26737:38;26734:2;;;26817:10;26812:3;26808:20;26805:1;26798:31;26852:4;26849:1;26842:15;26880:4;26877:1;26870:15;26734:2;;26576:325;;;:::o;26906:127::-;26967:10;26962:3;26958:20;26955:1;26948:31;26998:4;26995:1;26988:15;27022:4;27019:1;27012:15;27038:127;27099:10;27094:3;27090:20;27087:1;27080:31;27130:4;27127:1;27120:15;27154:4;27151:1;27144:15;27170:121;27259:1;27252:5;27249:12;27239:2;;27265:18;;:::i;27296:118::-;27382:1;27375:5;27372:12;27362:2;;27388:18;;:::i;27419:131::-;-1:-1:-1;;;;;27494:31:103;;27484:42;;27474:2;;27540:1;27537;27530:12;27555:115;27644:1;27637:5;27634:12;27624:2;;27660:1;27657;27650:12;27675:112;27761:1;27754:5;27751:12;27741:2;;27777:1;27774;27767:12"},"methodIdentifiers":{"BUNDLE_NAME()":"5e6877be","COMPONENT_NAME()":"51b2fb90","COMPONENT_OWNER_SERVICE_NAME()":"52b5b0ef","INSTANCE_OPERATOR_SERVICE_NAME()":"a3f66bd2","ORACLE_SERVICE_NAME()":"2898312f","POLICY_NAME()":"18ff21c3","POOL_NAME()":"0c131757","PRODUCT_SERVICE_NAME()":"e8828922","RISKPOOL_SERVICE_NAME()":"e543ecb9","TREASURY_NAME()":"50e1a19b","activeBundles(uint256)":"a4266a66","bundles()":"18442e63","claims(bytes32)":"eff0f592","contractName(uint256)":"f6b3e7d0","contracts()":"6c0f79b6","getActiveBundleId(uint256,uint256)":"ec833b0c","getApplication(bytes32)":"bc506f64","getBalance(uint256)":"1e010439","getBundle(uint256)":"2d0821b7","getBundleToken()":"eb35783c","getCapacity(uint256)":"bcd5349f","getCapital(uint256)":"29560980","getChainId()":"3408e470","getChainName()":"d722b0bc","getClaim(bytes32,uint256)":"7f22c2d9","getComponent(uint256)":"4f27da18","getComponentId(address)":"2b1c7f73","getComponentOwnerService()":"6fa29853","getComponentState(uint256)":"5e966e45","getComponentToken(uint256)":"038696bb","getComponentType(uint256)":"dd51c86a","getDefaultAdminRole()":"52a9c8d7","getFeeFractionFullUnit()":"6319112b","getFullCollateralizationLevel()":"f1d354d0","getInstanceId()":"1551100f","getInstanceOperator()":"39c6fa90","getInstanceOperatorService()":"091924dc","getInstanceWallet()":"a44330c4","getMaximumNumberOfActiveBundles(uint256)":"7db32844","getMetadata(bytes32)":"a5961b4c","getOracleId(uint256)":"a5c0f5a1","getOracleProviderRole()":"d49d21c0","getOracleService()":"a7ecda36","getPayout(bytes32,uint256)":"cef58f13","getPolicy(bytes32)":"a3f685f9","getProductId(uint256)":"9f77a605","getProductOwnerRole()":"775a4048","getProductService()":"4288121d","getRegistry()":"5ab1bd53","getRiskpool(uint256)":"eb802114","getRiskpoolId(uint256)":"ff3f3883","getRiskpoolKeeperRole()":"3ffdd2f3","getRiskpoolService()":"442ed817","getRiskpoolWallet(uint256)":"49081637","getStakedAssets(uint256)":"3a42b053","getStakingRequirements(uint256)":"ab9c6ee4","getTotalValueLocked(uint256)":"3f5d9235","getTreasuryAddress()":"e0024604","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","oracles()":"2857373a","payouts(bytes32)":"aeddb905","processIds()":"a427056e","products()":"c71e261f","riskpools()":"a054381f","unburntBundles(uint256)":"c559783e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BUNDLE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMPONENT_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMPONENT_OWNER_SERVICE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INSTANCE_OPERATOR_SERVICE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ORACLE_SERVICE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POLICY_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRODUCT_SERVICE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISKPOOL_SERVICE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfClaims\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"contractName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfContracts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bundleIdx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getApplication\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balanceAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBundleToken\",\"outputs\":[{\"internalType\":\"contract IBundleToken\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"capacityAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"capitalAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"chainName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"getClaim\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ClaimState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paidAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Claim\",\"name\":\"claim\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getComponent\",\"outputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"}],\"name\":\"getComponentId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentOwnerService\",\"outputs\":[{\"internalType\":\"contract IComponentOwnerService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"componentState\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDefaultAdminRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeFractionFullUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"instanceId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceOperatorService\",\"outputs\":[{\"internalType\":\"contract IInstanceOperatorService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bpKey\",\"type\":\"bytes32\"}],\"name\":\"getMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getOracleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"oracleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleProviderRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleService\",\"outputs\":[{\"internalType\":\"contract IOracleService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"getPayout\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PayoutState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Payout\",\"name\":\"payout\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getPolicy\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.PolicyState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premiumPaidAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openClaimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutMaxAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Policy\",\"name\":\"policy\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getProductId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductOwnerRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductService\",\"outputs\":[{\"internalType\":\"contract IProductService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredAtRisk\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPool.Pool\",\"name\":\"riskPool\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolKeeperRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolService\",\"outputs\":[{\"internalType\":\"contract IRiskpoolService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getStakedAssets\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getStakingRequirements\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalValueLockedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasuryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"payouts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPayouts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"processIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfProcessIds\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"products\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"riskpools\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"unburntBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfUnburntBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/InstanceService.sol\":\"InstanceService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Product.sol\":{\"keccak256\":\"0xdf55ff9638da4db1501362fc2ffcd26858b7c09b7cc5e0701f1bb31081142815\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fdbfbd830dafe0d721150778469cbbdf01058f8713c3636d2ba48234761e8590\",\"dweb:/ipfs/QmZ9K5X2ant5TtUhA9kgXUAMe7y9MUHpnv3PQUKAmxwVYj\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/AccessController.sol\":{\"keccak256\":\"0xc8293dfdc5c092e2fcea16d8a68117c9367dd09b3d951b5e730a588652212928\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://91e551839506ea79fadff0e2ea72c033c5d68d61a8414301307a172dc770f885\",\"dweb:/ipfs/QmWibGimWPLxXgNcpKUPidyTTBqvyjdV2dnQfNGfWMDgJ8\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/modules/TreasuryModule.sol\":{\"keccak256\":\"0x5b816938607e52b8e3811a426b7c31377109b12c665d3889bdc0fc38b5d1039c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81900732664f85ed367e3c78020bc2bd78e8521dd928f3fd5bcd39ce0ce1dcf0\",\"dweb:/ipfs/QmPcRYLq6SJvZkMnoSZAocCKw9m83oXezNaDsmHJ6UWr4E\"]},\"contracts/services/InstanceOperatorService.sol\":{\"keccak256\":\"0xc81b4b5142137add01ca290d8ebfa560b487c73a074df4d914ad734f047bfba2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8a2679741b690346dc2d2488d5a57693fe5a080882a78b5cfccc68258a710e5f\",\"dweb:/ipfs/QmUGDdo53xM1iWVcZ9MtYBb5LYXXemS6vfwnpXSGcuJEL8\"]},\"contracts/services/InstanceService.sol\":{\"keccak256\":\"0x3c8e07cdea76938530dee66981d77f49f53194b074a7298ce9214842ae48296e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1154648e46a9996186b546542557a3addbb4aa639d9923b160ff24c1d2c366ff\",\"dweb:/ipfs/QmRbCqxXpe9zMcTPoRKCQU6m8kPDbfuvk7cF1fSsoayrre\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/test/TestProduct.sol\":{\"keccak256\":\"0x2e678b5aa5698dcd7869eef379bfd156677dd4f5ece499e0dcc29614437e58a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://87e6535b924036b2b8d08c516519de66ea362dec109249675acc95471cb71989\",\"dweb:/ipfs/QmVnFPF4u2XZPHXSkqQD5qPDMnDPAYoDwjquVTrUnXVxh7\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/services/OracleService.sol":{"OracleService":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_requestId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"respond","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61053c806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063e409534a14610050575b600080fd5b61004e6100493660046103f1565b610063565b005b61004e61005e366004610430565b6101ed565b600054610100900460ff16158080156100835750600054600160ff909116105b806100a4575061009230610258565b1580156100a4575060005460ff166001145b61010c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561012f576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610159600090565b6541636365737360d01b1461019b5761017a6541636365737360d01b61026b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101a3610353565b80156101e9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b0316639af8c4ba843385856040518563ffffffff1660e01b815260040161022194939291906104a7565b600060405180830381600087803b15801561023b57600080fd5b505af115801561024f573d6000803e3d6000fd5b50505050505050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156102b557600080fd5b505afa1580156102c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ed9190610414565b90506001600160a01b0381166102665760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610103565b600054610100900460ff166103be5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610103565b6103cf64517565727960d81b61026b565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610402578081fd5b813561040d816104ee565b9392505050565b600060208284031215610425578081fd5b815161040d816104ee565b600080600060408486031215610444578182fd5b83359250602084013567ffffffffffffffff80821115610462578384fd5b818601915086601f830112610475578384fd5b813581811115610483578485fd5b876020828501011115610494578485fd5b6020830194508093505050509250925092565b8481526001600160a01b03841660208201526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6001600160a01b038116811461050357600080fd5b5056fea26469706673582212204a53d69cc77e9e0eeba3f4165d92870605fe025baa935bbfaef8c2a6955096a464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x53C DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE409534A EQ PUSH2 0x50 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F1 JUMP JUMPDEST PUSH2 0x63 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4E PUSH2 0x5E CALLDATASIZE PUSH1 0x4 PUSH2 0x430 JUMP JUMPDEST PUSH2 0x1ED JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x83 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xA4 JUMPI POP PUSH2 0x92 ADDRESS PUSH2 0x258 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xA4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x10C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x12F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x159 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x19B JUMPI PUSH2 0x17A PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x26B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1A3 PUSH2 0x353 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9AF8C4BA DUP5 CALLER DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x221 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0x414 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x266 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x3CF PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x26B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x402 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x40D DUP2 PUSH2 0x4EE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x425 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x40D DUP2 PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x444 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x462 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x475 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x483 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x494 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A MSTORE8 0xD6 SWAP13 0xC7 PUSH31 0x9E0EEBA3F4165D92870605FE025BAA935BBFAEF8C2A6955096A464736F6C63 NUMBER STOP ADDMOD MUL STOP CALLER ","sourceMap":"240:447:85:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;240:447:85;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;240:447:85;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3570:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"648:603:103","statements":[{"body":{"nodeType":"YulBlock","src":"694:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"703:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"711:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"696:6:103"},"nodeType":"YulFunctionCall","src":"696:22:103"},"nodeType":"YulExpressionStatement","src":"696:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"669:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"678:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"665:3:103"},"nodeType":"YulFunctionCall","src":"665:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"690:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"661:3:103"},"nodeType":"YulFunctionCall","src":"661:32:103"},"nodeType":"YulIf","src":"658:2:103"},{"nodeType":"YulAssignment","src":"729:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"752:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"739:12:103"},"nodeType":"YulFunctionCall","src":"739:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"729:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"771:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"813:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"798:3:103"},"nodeType":"YulFunctionCall","src":"798:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"785:12:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"775:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"826:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"836:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"830:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"881:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"890:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"898:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"883:6:103"},"nodeType":"YulFunctionCall","src":"883:22:103"},"nodeType":"YulExpressionStatement","src":"883:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"869:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"877:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"866:2:103"},"nodeType":"YulFunctionCall","src":"866:14:103"},"nodeType":"YulIf","src":"863:2:103"},{"nodeType":"YulVariableDeclaration","src":"916:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"930:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"941:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"926:3:103"},"nodeType":"YulFunctionCall","src":"926:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"920:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"996:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1005:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1013:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"998:6:103"},"nodeType":"YulFunctionCall","src":"998:22:103"},"nodeType":"YulExpressionStatement","src":"998:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"975:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"979:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"971:3:103"},"nodeType":"YulFunctionCall","src":"971:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"986:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"960:6:103"},"nodeType":"YulFunctionCall","src":"960:35:103"},"nodeType":"YulIf","src":"957:2:103"},{"nodeType":"YulVariableDeclaration","src":"1031:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1058:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1045:12:103"},"nodeType":"YulFunctionCall","src":"1045:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1035:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1088:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1097:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1105:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1090:6:103"},"nodeType":"YulFunctionCall","src":"1090:22:103"},"nodeType":"YulExpressionStatement","src":"1090:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1076:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1084:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1073:2:103"},"nodeType":"YulFunctionCall","src":"1073:14:103"},"nodeType":"YulIf","src":"1070:2:103"},{"body":{"nodeType":"YulBlock","src":"1164:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1173:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1181:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1166:6:103"},"nodeType":"YulFunctionCall","src":"1166:22:103"},"nodeType":"YulExpressionStatement","src":"1166:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1137:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"1141:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1133:3:103"},"nodeType":"YulFunctionCall","src":"1133:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"1150:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1129:3:103"},"nodeType":"YulFunctionCall","src":"1129:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1155:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1126:2:103"},"nodeType":"YulFunctionCall","src":"1126:37:103"},"nodeType":"YulIf","src":"1123:2:103"},{"nodeType":"YulAssignment","src":"1199:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1213:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1217:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1209:3:103"},"nodeType":"YulFunctionCall","src":"1209:11:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1199:6:103"}]},{"nodeType":"YulAssignment","src":"1229:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"1239:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1229:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"598:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"609:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"621:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"629:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"637:6:103","type":""}],"src":"542:709:103"},{"body":{"nodeType":"YulBlock","src":"1357:76:103","statements":[{"nodeType":"YulAssignment","src":"1367:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1379:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1390:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1375:3:103"},"nodeType":"YulFunctionCall","src":"1375:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1367:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1409:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1420:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1402:6:103"},"nodeType":"YulFunctionCall","src":"1402:25:103"},"nodeType":"YulExpressionStatement","src":"1402:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1326:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1337:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1348:4:103","type":""}],"src":"1256:177:103"},{"body":{"nodeType":"YulBlock","src":"1545:87:103","statements":[{"nodeType":"YulAssignment","src":"1555:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1578:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1563:3:103"},"nodeType":"YulFunctionCall","src":"1563:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1555:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1597:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1612:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1620:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1608:3:103"},"nodeType":"YulFunctionCall","src":"1608:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1590:6:103"},"nodeType":"YulFunctionCall","src":"1590:36:103"},"nodeType":"YulExpressionStatement","src":"1590:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1514:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1525:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1536:4:103","type":""}],"src":"1438:194:103"},{"body":{"nodeType":"YulBlock","src":"1811:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1828:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1839:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1821:6:103"},"nodeType":"YulFunctionCall","src":"1821:21:103"},"nodeType":"YulExpressionStatement","src":"1821:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1862:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1873:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1858:3:103"},"nodeType":"YulFunctionCall","src":"1858:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1878:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1851:6:103"},"nodeType":"YulFunctionCall","src":"1851:30:103"},"nodeType":"YulExpressionStatement","src":"1851:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1901:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1912:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1897:3:103"},"nodeType":"YulFunctionCall","src":"1897:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1917:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1890:6:103"},"nodeType":"YulFunctionCall","src":"1890:62:103"},"nodeType":"YulExpressionStatement","src":"1890:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1972:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1983:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1968:3:103"},"nodeType":"YulFunctionCall","src":"1968:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1988:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1961:6:103"},"nodeType":"YulFunctionCall","src":"1961:35:103"},"nodeType":"YulExpressionStatement","src":"1961:35:103"},{"nodeType":"YulAssignment","src":"2005:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2017:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2028:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2013:3:103"},"nodeType":"YulFunctionCall","src":"2013:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2005:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1788:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1802:4:103","type":""}],"src":"1637:401:103"},{"body":{"nodeType":"YulBlock","src":"2217:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2234:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2245:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2227:6:103"},"nodeType":"YulFunctionCall","src":"2227:21:103"},"nodeType":"YulExpressionStatement","src":"2227:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2268:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2279:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2264:3:103"},"nodeType":"YulFunctionCall","src":"2264:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2284:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2257:6:103"},"nodeType":"YulFunctionCall","src":"2257:30:103"},"nodeType":"YulExpressionStatement","src":"2257:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2307:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2318:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2303:3:103"},"nodeType":"YulFunctionCall","src":"2303:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2323:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2296:6:103"},"nodeType":"YulFunctionCall","src":"2296:62:103"},"nodeType":"YulExpressionStatement","src":"2296:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2378:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2389:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2374:3:103"},"nodeType":"YulFunctionCall","src":"2374:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2394:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2367:6:103"},"nodeType":"YulFunctionCall","src":"2367:44:103"},"nodeType":"YulExpressionStatement","src":"2367:44:103"},{"nodeType":"YulAssignment","src":"2420:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2432:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2443:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2428:3:103"},"nodeType":"YulFunctionCall","src":"2428:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2420:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2194:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2208:4:103","type":""}],"src":"2043:410:103"},{"body":{"nodeType":"YulBlock","src":"2632:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2649:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2660:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2642:6:103"},"nodeType":"YulFunctionCall","src":"2642:21:103"},"nodeType":"YulExpressionStatement","src":"2642:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2683:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2694:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2679:3:103"},"nodeType":"YulFunctionCall","src":"2679:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2699:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2672:6:103"},"nodeType":"YulFunctionCall","src":"2672:30:103"},"nodeType":"YulExpressionStatement","src":"2672:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2722:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2733:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2718:3:103"},"nodeType":"YulFunctionCall","src":"2718:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2738:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2711:6:103"},"nodeType":"YulFunctionCall","src":"2711:62:103"},"nodeType":"YulExpressionStatement","src":"2711:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2793:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2804:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2789:3:103"},"nodeType":"YulFunctionCall","src":"2789:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2809:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2782:6:103"},"nodeType":"YulFunctionCall","src":"2782:41:103"},"nodeType":"YulExpressionStatement","src":"2782:41:103"},{"nodeType":"YulAssignment","src":"2832:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2855:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2840:3:103"},"nodeType":"YulFunctionCall","src":"2840:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2832:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2609:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2623:4:103","type":""}],"src":"2458:407:103"},{"body":{"nodeType":"YulBlock","src":"3055:377:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3072:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3083:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3065:6:103"},"nodeType":"YulFunctionCall","src":"3065:25:103"},"nodeType":"YulExpressionStatement","src":"3065:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3121:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3106:3:103"},"nodeType":"YulFunctionCall","src":"3106:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3130:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3146:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3151:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3142:3:103"},"nodeType":"YulFunctionCall","src":"3142:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3155:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3138:3:103"},"nodeType":"YulFunctionCall","src":"3138:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3126:3:103"},"nodeType":"YulFunctionCall","src":"3126:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3099:6:103"},"nodeType":"YulFunctionCall","src":"3099:60:103"},"nodeType":"YulExpressionStatement","src":"3099:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3179:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3190:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3175:3:103"},"nodeType":"YulFunctionCall","src":"3175:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3195:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3168:6:103"},"nodeType":"YulFunctionCall","src":"3168:30:103"},"nodeType":"YulExpressionStatement","src":"3168:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3218:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3229:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3214:3:103"},"nodeType":"YulFunctionCall","src":"3214:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"3234:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3207:6:103"},"nodeType":"YulFunctionCall","src":"3207:34:103"},"nodeType":"YulExpressionStatement","src":"3207:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3267:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3278:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3263:3:103"},"nodeType":"YulFunctionCall","src":"3263:19:103"},{"name":"value2","nodeType":"YulIdentifier","src":"3284:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"3292:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3250:12:103"},"nodeType":"YulFunctionCall","src":"3250:49:103"},"nodeType":"YulExpressionStatement","src":"3250:49:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3323:9:103"},{"name":"value3","nodeType":"YulIdentifier","src":"3334:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3319:3:103"},"nodeType":"YulFunctionCall","src":"3319:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"3343:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3315:3:103"},"nodeType":"YulFunctionCall","src":"3315:32:103"},{"name":"tail","nodeType":"YulIdentifier","src":"3349:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3308:6:103"},"nodeType":"YulFunctionCall","src":"3308:46:103"},"nodeType":"YulExpressionStatement","src":"3308:46:103"},{"nodeType":"YulAssignment","src":"3363:63:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3379:9:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"3398:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3406:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3394:3:103"},"nodeType":"YulFunctionCall","src":"3394:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3415:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3411:3:103"},"nodeType":"YulFunctionCall","src":"3411:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3390:3:103"},"nodeType":"YulFunctionCall","src":"3390:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3375:3:103"},"nodeType":"YulFunctionCall","src":"3375:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"3422:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3371:3:103"},"nodeType":"YulFunctionCall","src":"3371:55:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3363:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_address_t_bytes_calldata_ptr__to_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3000:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3011:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3019:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3027:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3035:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3046:4:103","type":""}],"src":"2870:562:103"},{"body":{"nodeType":"YulBlock","src":"3482:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"3546:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3555:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3558:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3548:6:103"},"nodeType":"YulFunctionCall","src":"3548:12:103"},"nodeType":"YulExpressionStatement","src":"3548:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3505:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3516:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3531:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3536:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3527:3:103"},"nodeType":"YulFunctionCall","src":"3527:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3540:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3523:3:103"},"nodeType":"YulFunctionCall","src":"3523:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3512:3:103"},"nodeType":"YulFunctionCall","src":"3512:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3502:2:103"},"nodeType":"YulFunctionCall","src":"3502:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3495:6:103"},"nodeType":"YulFunctionCall","src":"3495:50:103"},"nodeType":"YulIf","src":"3492:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3471:5:103","type":""}],"src":"3437:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value1, value1) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value1, value1) }\n value1 := add(_2, 32)\n value2 := length\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256_t_address_t_bytes_calldata_ptr__to_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), 96)\n mstore(add(headStart, 96), value3)\n calldatacopy(add(headStart, 128), value2, value3)\n mstore(add(add(headStart, value3), 128), tail)\n tail := add(add(headStart, and(add(value3, 31), not(31))), 128)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063e409534a14610050575b600080fd5b61004e6100493660046103f1565b610063565b005b61004e61005e366004610430565b6101ed565b600054610100900460ff16158080156100835750600054600160ff909116105b806100a4575061009230610258565b1580156100a4575060005460ff166001145b61010c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561012f576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610159600090565b6541636365737360d01b1461019b5761017a6541636365737360d01b61026b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101a3610353565b80156101e9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b0316639af8c4ba843385856040518563ffffffff1660e01b815260040161022194939291906104a7565b600060405180830381600087803b15801561023b57600080fd5b505af115801561024f573d6000803e3d6000fd5b50505050505050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156102b557600080fd5b505afa1580156102c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ed9190610414565b90506001600160a01b0381166102665760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610103565b600054610100900460ff166103be5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610103565b6103cf64517565727960d81b61026b565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610402578081fd5b813561040d816104ee565b9392505050565b600060208284031215610425578081fd5b815161040d816104ee565b600080600060408486031215610444578182fd5b83359250602084013567ffffffffffffffff80821115610462578384fd5b818601915086601f830112610475578384fd5b813581811115610483578485fd5b876020828501011115610494578485fd5b6020830194508093505050509250925092565b8481526001600160a01b03841660208201526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6001600160a01b038116811461050357600080fd5b5056fea26469706673582212204a53d69cc77e9e0eeba3f4165d92870605fe025baa935bbfaef8c2a6955096a464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE409534A EQ PUSH2 0x50 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F1 JUMP JUMPDEST PUSH2 0x63 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4E PUSH2 0x5E CALLDATASIZE PUSH1 0x4 PUSH2 0x430 JUMP JUMPDEST PUSH2 0x1ED JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x83 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xA4 JUMPI POP PUSH2 0x92 ADDRESS PUSH2 0x258 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xA4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x10C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x12F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x159 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x19B JUMPI PUSH2 0x17A PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x26B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1A3 PUSH2 0x353 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9AF8C4BA DUP5 CALLER DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x221 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0x414 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x266 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x3CF PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x26B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x402 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x40D DUP2 PUSH2 0x4EE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x425 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x40D DUP2 PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x444 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x462 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x475 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x483 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x494 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A MSTORE8 0xD6 SWAP13 0xC7 PUSH31 0x9E0EEBA3F4165D92870605FE025BAA935BBFAEF8C2A6955096A464736F6C63 NUMBER STOP ADDMOD MUL STOP CALLER ","sourceMap":"240:447:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1143:232:88;;;;;;:::i;:::-;;:::i;:::-;;472:213:85;;;;;;:::i;:::-;;:::i;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;2245:2:103;3146:190:47;;;2227:21:103;2284:2;2264:18;;;2257:30;2323:34;2303:18;;;2296:62;-1:-1:-1;;;2374:18:103;;;2367:44;2428:19;;3146:190:47;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;1590:36:103;;3531:14:47;;1578:2:103;1563:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;472:213:85:-;631:6;;-1:-1:-1;;;;;631:6:85;:14;646:10;719::59;672:5:85;;631:47;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;472:213;;;:::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;1402:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;1375:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;1839:2:103;1703:113:88;;;1821:21:103;1878:2;1858:18;;;1851:30;1917:34;1897:18;;;1890:62;-1:-1:-1;;;1968:18:103;;;1961:35;2013:19;;1703:113:88;1811:227:103;341:125:85;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;2660:2:103;4880:69:47;;;2642:21:103;2699:2;2679:18;;;2672:30;2738:34;2718:18;;;2711:62;-1:-1:-1;;;2789:18:103;;;2782:41;2840:19;;4880:69:47;2632:233:103;4880:69:47;430:28:85::1;-1:-1:-1::0;;;430:19:85::1;:28::i;:::-;414:6;:45:::0;;-1:-1:-1;;;;;;414:45:85::1;-1:-1:-1::0;;;;;414:45:85;;;::::1;::::0;;;::::1;::::0;;341:125::o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:709::-;;;;690:2;678:9;669:7;665:23;661:32;658:2;;;711:6;703;696:22;658:2;752:9;739:23;729:33;;813:2;802:9;798:18;785:32;836:18;877:2;869:6;866:14;863:2;;;898:6;890;883:22;863:2;941:6;930:9;926:22;916:32;;986:7;979:4;975:2;971:13;967:27;957:2;;1013:6;1005;998:22;957:2;1058;1045:16;1084:2;1076:6;1073:14;1070:2;;;1105:6;1097;1090:22;1070:2;1155:7;1150:2;1141:6;1137:2;1133:15;1129:24;1126:37;1123:2;;;1181:6;1173;1166:22;1123:2;1217;1213;1209:11;1199:21;;1239:6;1229:16;;;;;648:603;;;;;:::o;2870:562::-;3065:25;;;-1:-1:-1;;;;;3126:32:103;;3121:2;3106:18;;3099:60;3195:2;3190;3175:18;;3168:30;;;3214:18;;3207:34;;;2870:562;3234:6;3284;3278:3;3263:19;;3250:49;3319:22;;;3343:3;3315:32;;;3308:46;;;;3415:2;3394:15;;;-1:-1:-1;;3390:29:103;3375:45;3371:55;;3055:377;-1:-1:-1;;;3055:377:103:o;3437:131::-;-1:-1:-1;;;;;3512:31:103;;3502:42;;3492:2;;3558:1;3555;3548:12;3492:2;3482:86;:::o"},"methodIdentifiers":{"initialize(address)":"c4d66de8","respond(uint256,bytes)":"e409534a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"respond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/OracleService.sol\":\"OracleService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/services/OracleService.sol\":{\"keccak256\":\"0xb5e050650453ba1bf9f4d0051fafbe5db98175b2b06c7719beac9124f7527225\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e1a4223153a73395e0faa213851966b6d7ef235cc1ee18603b7a44dfd15a3935\",\"dweb:/ipfs/QmdvmZHfD7q2Y4Hq9dp6rbsY5woKBAsTfCuihn6ALnoCJq\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/services/ProductService.sol":{"ProductService":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractFromRegistry","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:326:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:229:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"268:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"277:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"285:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"270:6:103"},"nodeType":"YulFunctionCall","src":"270:22:103"},"nodeType":"YulExpressionStatement","src":"270:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"238:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"249:3:103"},"nodeType":"YulFunctionCall","src":"249:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"245:3:103"},"nodeType":"YulFunctionCall","src":"245:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"234:3:103"},"nodeType":"YulFunctionCall","src":"234:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"224:2:103"},"nodeType":"YulFunctionCall","src":"224:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"217:6:103"},"nodeType":"YulFunctionCall","src":"217:50:103"},"nodeType":"YulIf","src":"214:2:103"},{"nodeType":"YulAssignment","src":"303:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"313:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:310:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b506040516104f03803806104f083398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c61045261009e600039600081816101a00152818161023a01526102fe01526104526000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80637b1039991461019b578063a3f4df7e146101df578063a5b25e7114610205575b60008061004c610218565b6001600160a01b031663d3e9c314336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160606040518083038186803b15801561009a57600080fd5b505afa1580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d291906103db565b9250925050816101295760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5052532d3030313a4e4f545f415554484f52495a45440000000060448201526064015b60405180910390fd5b6001600160a01b03811661018e5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5052532d3030323a504f4c4943595f464c4f575f4e4f545f524560448201526514d3d315915160d21b6064820152608401610120565b610197816102c1565b5050005b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f76d50726f647563745365727669636560901b81565b6040519081526020016101d6565b6101c26102133660046103c3565b6102e5565b604051631c2d8fb360e31b8152664c6963656e736560c81b60048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561028457600080fd5b505afa158015610298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bc91906103a2565b905090565b3660008037600080366000845af43d6000803e8080156102e0573d6000f35b3d6000fd5b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561034857600080fd5b505afa15801561035c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038091906103a2565b92915050565b80516001600160a01b038116811461039d57600080fd5b919050565b6000602082840312156103b3578081fd5b6103bc82610386565b9392505050565b6000602082840312156103d4578081fd5b5035919050565b6000806000606084860312156103ef578182fd5b8351925060208401518015158114610405578283fd5b915061041360408501610386565b9050925092509256fea26469706673582212207b859cebd9125a360f4471ca57be175d7287894fb1de6366e38c493b36feefb564736f6c63430008020033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x4F0 CODESIZE SUB DUP1 PUSH2 0x4F0 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x44 JUMP JUMPDEST PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH2 0x72 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x55 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6B JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x452 PUSH2 0x9E PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x1A0 ADD MSTORE DUP2 DUP2 PUSH2 0x23A ADD MSTORE PUSH2 0x2FE ADD MSTORE PUSH2 0x452 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x205 JUMPI JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4C PUSH2 0x218 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD3E9C314 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x3DB JUMP JUMPDEST SWAP3 POP SWAP3 POP POP DUP2 PUSH2 0x129 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052532D3030313A4E4F545F415554484F52495A454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x18E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052532D3030323A504F4C4943595F464C4F575F4E4F545F5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x14D3D3159151 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x120 JUMP JUMPDEST PUSH2 0x197 DUP2 PUSH2 0x2C1 JUMP JUMPDEST POP POP STOP JUMPDEST PUSH2 0x1C2 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F7 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1D6 JUMP JUMPDEST PUSH2 0x1C2 PUSH2 0x213 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C3 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH7 0x4C6963656E7365 PUSH1 0xC8 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x284 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x298 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2BC SWAP2 SWAP1 PUSH2 0x3A2 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x2E0 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x35C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x380 SWAP2 SWAP1 PUSH2 0x3A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3BC DUP3 PUSH2 0x386 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3EF JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x405 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP2 POP PUSH2 0x413 PUSH1 0x40 DUP6 ADD PUSH2 0x386 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x859CEBD9125A360F4471CA57BE175D7287894FB1DE6366E38C493B36 INVALID 0xEF 0xB5 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"261:2015:86:-:0;;;450:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1300:31:91;;-1:-1:-1;;;;;;1300:31:91;;;261:2015:86;;14:310:103;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:103;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:103:o;:::-;261:2015:86;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2687:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"489:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"535:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"544:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"552:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"537:6:103"},"nodeType":"YulFunctionCall","src":"537:22:103"},"nodeType":"YulExpressionStatement","src":"537:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"510:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"519:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"506:3:103"},"nodeType":"YulFunctionCall","src":"506:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"531:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"502:3:103"},"nodeType":"YulFunctionCall","src":"502:32:103"},"nodeType":"YulIf","src":"499:2:103"},{"nodeType":"YulAssignment","src":"570:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"593:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"580:12:103"},"nodeType":"YulFunctionCall","src":"580:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"570:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"455:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"466:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"478:6:103","type":""}],"src":"419:190:103"},{"body":{"nodeType":"YulBlock","src":"726:331:103","statements":[{"body":{"nodeType":"YulBlock","src":"772:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"781:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"789:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"774:6:103"},"nodeType":"YulFunctionCall","src":"774:22:103"},"nodeType":"YulExpressionStatement","src":"774:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"747:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"756:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"743:3:103"},"nodeType":"YulFunctionCall","src":"743:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"768:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"739:3:103"},"nodeType":"YulFunctionCall","src":"739:32:103"},"nodeType":"YulIf","src":"736:2:103"},{"nodeType":"YulAssignment","src":"807:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"823:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"817:5:103"},"nodeType":"YulFunctionCall","src":"817:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"807:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"842:38:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"876:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"861:3:103"},"nodeType":"YulFunctionCall","src":"861:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"855:5:103"},"nodeType":"YulFunctionCall","src":"855:25:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"846:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"933:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"942:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"950:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"935:6:103"},"nodeType":"YulFunctionCall","src":"935:22:103"},"nodeType":"YulExpressionStatement","src":"935:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"902:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"923:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"916:6:103"},"nodeType":"YulFunctionCall","src":"916:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"909:6:103"},"nodeType":"YulFunctionCall","src":"909:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"899:2:103"},"nodeType":"YulFunctionCall","src":"899:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"892:6:103"},"nodeType":"YulFunctionCall","src":"892:40:103"},"nodeType":"YulIf","src":"889:2:103"},{"nodeType":"YulAssignment","src":"968:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"978:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"968:6:103"}]},{"nodeType":"YulAssignment","src":"992:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1047:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1032:3:103"},"nodeType":"YulFunctionCall","src":"1032:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1002:29:103"},"nodeType":"YulFunctionCall","src":"1002:49:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"992:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_boolt_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"676:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"687:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"699:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"707:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"715:6:103","type":""}],"src":"614:443:103"},{"body":{"nodeType":"YulBlock","src":"1163:102:103","statements":[{"nodeType":"YulAssignment","src":"1173:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1185:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1181:3:103"},"nodeType":"YulFunctionCall","src":"1181:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1173:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1215:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1230:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1246:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1251:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1242:3:103"},"nodeType":"YulFunctionCall","src":"1242:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1255:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1238:3:103"},"nodeType":"YulFunctionCall","src":"1238:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1226:3:103"},"nodeType":"YulFunctionCall","src":"1226:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1208:6:103"},"nodeType":"YulFunctionCall","src":"1208:51:103"},"nodeType":"YulExpressionStatement","src":"1208:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1132:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1143:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1154:4:103","type":""}],"src":"1062:203:103"},{"body":{"nodeType":"YulBlock","src":"1371:76:103","statements":[{"nodeType":"YulAssignment","src":"1381:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1404:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1389:3:103"},"nodeType":"YulFunctionCall","src":"1389:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1381:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1423:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1434:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1416:6:103"},"nodeType":"YulFunctionCall","src":"1416:25:103"},"nodeType":"YulExpressionStatement","src":"1416:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1340:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1351:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1362:4:103","type":""}],"src":"1270:177:103"},{"body":{"nodeType":"YulBlock","src":"1571:102:103","statements":[{"nodeType":"YulAssignment","src":"1581:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1593:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1604:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1589:3:103"},"nodeType":"YulFunctionCall","src":"1589:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1581:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1623:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1638:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1654:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1659:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1650:3:103"},"nodeType":"YulFunctionCall","src":"1650:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1663:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1646:3:103"},"nodeType":"YulFunctionCall","src":"1646:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1634:3:103"},"nodeType":"YulFunctionCall","src":"1634:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1616:6:103"},"nodeType":"YulFunctionCall","src":"1616:51:103"},"nodeType":"YulExpressionStatement","src":"1616:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1540:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1551:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1562:4:103","type":""}],"src":"1452:221:103"},{"body":{"nodeType":"YulBlock","src":"1852:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1869:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1880:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1862:6:103"},"nodeType":"YulFunctionCall","src":"1862:21:103"},"nodeType":"YulExpressionStatement","src":"1862:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1914:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1899:3:103"},"nodeType":"YulFunctionCall","src":"1899:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1919:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1892:6:103"},"nodeType":"YulFunctionCall","src":"1892:30:103"},"nodeType":"YulExpressionStatement","src":"1892:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1953:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1938:3:103"},"nodeType":"YulFunctionCall","src":"1938:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1958:30:103","type":"","value":"ERROR:PRS-001:NOT_AUTHORIZED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1931:6:103"},"nodeType":"YulFunctionCall","src":"1931:58:103"},"nodeType":"YulExpressionStatement","src":"1931:58:103"},{"nodeType":"YulAssignment","src":"1998:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2010:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2021:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2006:3:103"},"nodeType":"YulFunctionCall","src":"2006:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1998:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2ea29d619e783380245e9479bc50992b7e9e66d498084c15d9aeb14649a09dc3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1829:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1843:4:103","type":""}],"src":"1678:352:103"},{"body":{"nodeType":"YulBlock","src":"2209:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2237:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2219:6:103"},"nodeType":"YulFunctionCall","src":"2219:21:103"},"nodeType":"YulExpressionStatement","src":"2219:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2260:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2271:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2256:3:103"},"nodeType":"YulFunctionCall","src":"2256:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2276:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2249:6:103"},"nodeType":"YulFunctionCall","src":"2249:30:103"},"nodeType":"YulExpressionStatement","src":"2249:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2299:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2310:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2295:3:103"},"nodeType":"YulFunctionCall","src":"2295:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2315:34:103","type":"","value":"ERROR:PRS-002:POLICY_FLOW_NOT_RE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2288:6:103"},"nodeType":"YulFunctionCall","src":"2288:62:103"},"nodeType":"YulExpressionStatement","src":"2288:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2370:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2381:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2366:3:103"},"nodeType":"YulFunctionCall","src":"2366:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2386:8:103","type":"","value":"SOLVED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2359:6:103"},"nodeType":"YulFunctionCall","src":"2359:36:103"},"nodeType":"YulExpressionStatement","src":"2359:36:103"},{"nodeType":"YulAssignment","src":"2404:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2427:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2412:3:103"},"nodeType":"YulFunctionCall","src":"2412:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2404:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3481a442355178eff70c53b479d1406dd857fddda3e91ffea746909cf740d5cd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2186:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2200:4:103","type":""}],"src":"2035:402:103"},{"body":{"nodeType":"YulBlock","src":"2606:79:103","statements":[{"nodeType":"YulAssignment","src":"2616:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2628:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2639:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2624:3:103"},"nodeType":"YulFunctionCall","src":"2624:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2616:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2658:9:103"},{"kind":"string","nodeType":"YulLiteral","src":"2669:9:103","type":"","value":"License"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2651:6:103"},"nodeType":"YulFunctionCall","src":"2651:28:103"},"nodeType":"YulExpressionStatement","src":"2651:28:103"}]},"name":"abi_encode_tuple_t_stringliteral_3b9d03c09d4e108ca3b630bc72507e91ae7da8eb1de63663acbce1d12cfbfb3a__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2583:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2597:4:103","type":""}],"src":"2442:243:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_boolt_address_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value1, value1) }\n value0 := mload(headStart)\n let value := mload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(value1, value1) }\n value1 := value\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_2ea29d619e783380245e9479bc50992b7e9e66d498084c15d9aeb14649a09dc3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:PRS-001:NOT_AUTHORIZED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3481a442355178eff70c53b479d1406dd857fddda3e91ffea746909cf740d5cd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:PRS-002:POLICY_FLOW_NOT_RE\")\n mstore(add(headStart, 96), \"SOLVED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b9d03c09d4e108ca3b630bc72507e91ae7da8eb1de63663acbce1d12cfbfb3a__to_t_bytes32__fromStack_reversed(headStart) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, \"License\")\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"26665":[{"length":32,"start":416},{"length":32,"start":570},{"length":32,"start":766}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c80637b1039991461019b578063a3f4df7e146101df578063a5b25e7114610205575b60008061004c610218565b6001600160a01b031663d3e9c314336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160606040518083038186803b15801561009a57600080fd5b505afa1580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d291906103db565b9250925050816101295760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5052532d3030313a4e4f545f415554484f52495a45440000000060448201526064015b60405180910390fd5b6001600160a01b03811661018e5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5052532d3030323a504f4c4943595f464c4f575f4e4f545f524560448201526514d3d315915160d21b6064820152608401610120565b610197816102c1565b5050005b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f76d50726f647563745365727669636560901b81565b6040519081526020016101d6565b6101c26102133660046103c3565b6102e5565b604051631c2d8fb360e31b8152664c6963656e736560c81b60048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561028457600080fd5b505afa158015610298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bc91906103a2565b905090565b3660008037600080366000845af43d6000803e8080156102e0573d6000f35b3d6000fd5b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561034857600080fd5b505afa15801561035c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038091906103a2565b92915050565b80516001600160a01b038116811461039d57600080fd5b919050565b6000602082840312156103b3578081fd5b6103bc82610386565b9392505050565b6000602082840312156103d4578081fd5b5035919050565b6000806000606084860312156103ef578182fd5b8351925060208401518015158114610405578283fd5b915061041360408501610386565b9050925092509256fea26469706673582212207b859cebd9125a360f4471ca57be175d7287894fb1de6366e38c493b36feefb564736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x205 JUMPI JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4C PUSH2 0x218 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD3E9C314 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x3DB JUMP JUMPDEST SWAP3 POP SWAP3 POP POP DUP2 PUSH2 0x129 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052532D3030313A4E4F545F415554484F52495A454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x18E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052532D3030323A504F4C4943595F464C4F575F4E4F545F5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x14D3D3159151 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x120 JUMP JUMPDEST PUSH2 0x197 DUP2 PUSH2 0x2C1 JUMP JUMPDEST POP POP STOP JUMPDEST PUSH2 0x1C2 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F7 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1D6 JUMP JUMPDEST PUSH2 0x1C2 PUSH2 0x213 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C3 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH7 0x4C6963656E7365 PUSH1 0xC8 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x284 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x298 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2BC SWAP2 SWAP1 PUSH2 0x3A2 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x2E0 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x35C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x380 SWAP2 SWAP1 PUSH2 0x3A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3BC DUP3 PUSH2 0x386 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3EF JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x405 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP2 POP PUSH2 0x413 PUSH1 0x40 DUP6 ADD PUSH2 0x386 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x859CEBD9125A360F4471CA57BE175D7287894FB1DE6366E38C493B36 INVALID 0xEF 0xB5 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"261:2015:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:17;645:18;667:10;:8;:10::i;:::-;-1:-1:-1;;;;;667:33:86;;719:10:59;667:47:86;;-1:-1:-1;;;;;;667:47:86;;;;;;;-1:-1:-1;;;;;1226:32:103;;;667:47:86;;;1208:51:103;1181:18;;667:47:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;624:90;;;;;733:12;725:53;;;;-1:-1:-1;;;725:53:86;;1880:2:103;725:53:86;;;1862:21:103;1919:2;1899:18;;;1892:30;1958;1938:18;;;1931:58;2006:18;;725:53:86;;;;;;;;;-1:-1:-1;;;;;796:24:86;;788:74;;;;-1:-1:-1;;;788:74:86;;2237:2:103;788:74:86;;;2219:21:103;2276:2;2256:18;;;2249:30;2315:34;2295:18;;;2288:62;-1:-1:-1;;;2366:18:103;;;2359:36;2412:19;;788:74:86;2209:228:103;788:74:86;873:21;883:10;873:9;:21::i;:::-;513:388;;261:2015;412:35:91;;;;;;;;-1:-1:-1;;;;;1226:32:103;;;1208:51;;1196:2;1181:18;412:35:91;;;;;;;;347:47:86;;-1:-1:-1;;;347:47:86;;;;;1416:25:103;;;1404:2;1389:18;347:47:86;1371:76:103;1344:200:91;;;;;;:::i;:::-;;:::i;2155:118:86:-;2234:31;;-1:-1:-1;;;2234:31:86;;-1:-1:-1;;;2234:31:86;;;2651:28:103;2198:8:86;;2234;-1:-1:-1;;;;;2234:20:86;;;;2624:18:103;;2234:31:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2218:48;;2155:118;:::o;1262:887::-;1592:14;1589:1;1586;1573:34;1806:1;1803;1787:14;1784:1;1768:14;1761:5;1748:60;1882:16;1879:1;1876;1861:38;1920:6;1987:66;;;;2102:16;2099:1;2092:27;1987:66;2022:16;2019:1;2012:27;1344:200:91;1502:35;;-1:-1:-1;;;1502:35:91;;;;;1416:25:103;;;1465:13:91;;1502:8;-1:-1:-1;;;;;1502:20:91;;;;1389:18:103;;1502:35:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1494:43;1344:200;-1:-1:-1;;1344:200:91:o;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;115:2;74:117;;;:::o;196:218::-;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:190::-;;531:2;519:9;510:7;506:23;502:32;499:2;;;552:6;544;537:22;499:2;-1:-1:-1;580:23:103;;489:120;-1:-1:-1;489:120:103:o;614:443::-;;;;768:2;756:9;747:7;743:23;739:32;736:2;;;789:6;781;774:22;736:2;823:9;817:16;807:26;;876:2;865:9;861:18;855:25;923:5;916:13;909:21;902:5;899:32;889:2;;950:6;942;935:22;889:2;978:5;-1:-1:-1;1002:49:103;1047:2;1032:18;;1002:49;:::i;:::-;992:59;;726:331;;;;;:::o"},"methodIdentifiers":{"NAME()":"a3f4df7e","getContractFromRegistry(bytes32)":"a5b25e71","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractFromRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/ProductService.sol\":\"ProductService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/ILicense.sol\":{\"keccak256\":\"0x2fcefcbe60dfa44e7a1d947ae2059ccfdc3d1a151a8604fb7e96c734e0ffb9be\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6af56dc46b2adeb0c0d88ccd0ca4e9857195c4d647ccf7e3df61a91da24f45ab\",\"dweb:/ipfs/QmX1eYC9nFwFE4PJchjApCDYgErdrtfS9qYEtzbbfc4Ssz\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/services/ProductService.sol\":{\"keccak256\":\"0x10c24ed496abd23a16567d64acfcad6d34ec890b70f08b95bc8775dea30ff944\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://265a06064ff8c882b3ba6580ee90c1138ee15d0be2502410a04ecd33202577a3\",\"dweb:/ipfs/QmUgigrJDBuwfmdGvAZV5aRNJtPeiGC5mTvA3RmNt9bogT\"]},\"contracts/shared/WithRegistry.sol\":{\"keccak256\":\"0x1d52c8ad35ee149c4a0106ceb1f35d458c196248d02cb8d7b605e9963d47f706\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5780ec200f79f55f69d2e4030ceccccdbf78bc233561d03f334c4361c5425d17\",\"dweb:/ipfs/QmPjynmkMEjD9GHpreVLpWuK6qncwkKwAtNyYCyoeyzkHZ\"]}},\"version\":1}"}},"contracts/services/RiskpoolService.sol":{"RiskpoolService":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"RISKPOOL_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialCapital","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"registerRiskpool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"maxNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b613f9c80620000f46000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806389002da511610097578063b726742011610066578063b7267420146101de578063bb540df6146101f1578063bf2e354614610204578063c4d66de814610217576100f5565b806389002da5146101925780638c483e5a146101a5578063a17030d5146101b8578063b299cc26146101cb576100f5565b8063316c5348116100d3578063316c53481461014657806336153f3a146101595780634d03f9b71461016c578063587e59d01461017f576100f5565b806304f5f96e146100fa57806315fc1e741461011e5780632127fd4814610131575b600080fd5b61010c67149a5cdadc1bdbdb60c21b81565b60405190815260200160405180910390f35b61010c61012c366004613b9d565b61022a565b61014461013f366004613d7f565b61078a565b005b610144610154366004613d4f565b610a8c565b61010c610167366004613d7f565b610ea5565b61014461017a366004613da0565b611419565b61014461018d366004613d4f565b611749565b61010c6101a0366004613d7f565b611cbf565b6101446101b3366004613d4f565b6121d8565b6101446101c6366004613d4f565b612657565b6101446101d9366004613da0565b612a3a565b6101446101ec366004613da0565b612d32565b61010c6101ff366004613d7f565b61302a565b610144610212366004613b58565b613375565b610144610225366004613b19565b6136ca565b60025460009081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561028057600080fd5b505afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156102ff57600080fd5b505afa158015610313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103379190613c5c565b600281111561035657634e487b7160e01b600052602160045260246000fd5b146103b25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030333a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084015b60405180910390fd5b600254604051635e966e4560e01b8152600481018390526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156103f757600080fd5b505afa15801561040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042f9190613c3d565b600681111561044e57634e487b7160e01b600052602160045260246000fd5b146104a55760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030343a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156104f957600080fd5b505afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190613d67565b600354604051633039c50160e21b81529192506001600160a01b03169063c0e714049061056b908a9085908b908b90600090600401613dee565b602060405180830381600087803b15801561058557600080fd5b505af1158015610599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bd9190613d67565b60048054604051626a03dd60e91b81529295506001600160a01b03169163d407ba00916105f7918591889101918252602082015260400190565b600060405180830381600087803b15801561061157600080fd5b505af1158015610625573d6000803e3d6000fd5b505060055460405163136f5ed560e11b81526004810187905260248101889052600093508392506001600160a01b03909116906326debdaa906044016040805180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190613dcb565b60035460405163a65e2cfd60e01b815260048101899052602481018390529294509092506001600160a01b03169063a65e2cfd90604401600060405180830381600087803b15801561070357600080fd5b505af1158015610717573d6000803e3d6000fd5b50506004805460405163a65e2cfd60e01b8152918201879052602482018590526001600160a01b0316925063a65e2cfd9150604401600060405180830381600087803b15801561076657600080fd5b505af115801561077a573d6000803e3d6000fd5b5050505050505050949350505050565b60025482906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156107e357600080fd5b505afa1580156107f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081b9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c9190613c5c565b60028111156108bb57634e487b7160e01b600052602160045260246000fd5b1490508080156108ca57508382145b6109275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3030383a53454e4445525f4e4f545f4f574e494e475f604482015267149254d2d413d3d360c21b60648201526084016103a9565b8215610a2057600254604051635e966e4560e01b8152600481018490526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa9190613c3d565b60068111156109c957634e487b7160e01b600052602160045260246000fd5b14610a205760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030393a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b60048054604051630424ffa960e31b8152918201889052602482018790526001600160a01b031690632127fd48906044015b600060405180830381600087803b158015610a6c57600080fd5b505af1158015610a80573d6000803e3d6000fd5b50505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ae557600080fd5b505afa158015610af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1d9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610b6657600080fd5b505afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190613c5c565b6002811115610bbd57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c449190810190613c7b565b905081610c635760405162461bcd60e51b81526004016103a990613e3f565b80602001518314610c865760405162461bcd60e51b81526004016103a990613ec1565b8315610d4557600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d099190613c3d565b6006811115610d2857634e487b7160e01b600052602160045260246000fd5b14610d455760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610d9957600080fd5b505afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190613d67565b60048054604051626a03dd60e91b81529293506001600160a01b03169163d407ba0091610e0b9185918c9101918252602082015260400190565b600060405180830381600087803b158015610e2557600080fd5b505af1158015610e39573d6000803e3d6000fd5b5050600354604051636198e33960e01b8152600481018b90526001600160a01b039091169250636198e33991506024015b600060405180830381600087803b158015610e8457600080fd5b505af1158015610e98573d6000803e3d6000fd5b5050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f389190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190613c5c565b6002811115610fd857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561102357600080fd5b505afa158015611037573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261105f9190810190613c7b565b90508161107e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146110a15760405162461bcd60e51b81526004016103a990613ec1565b831561116057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156110ec57600080fd5b505afa158015611100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111249190613c3d565b600681111561114357634e487b7160e01b600052602160045260246000fd5b146111605760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156111a557600080fd5b505afa1580156111b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111e19190810190613c7b565b905060038160600151600381111561120957634e487b7160e01b600052602160045260246000fd5b14156112575760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5250532d3031313a42554e444c455f4255524e4544000000000060448201526064016103a9565b60055460405163d935807560e01b8152600481018b9052602481018a90526000916001600160a01b03169063d9358075906044016040805180830381600087803b1580156112a457600080fd5b505af11580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190613dcb565b985090508888146113405760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3031333a554e45585045435445445f4645455f5355426044820152672a2920a1aa24a7a760c11b60648201526084016103a9565b60035460405163c397ae3960e01b8152600481018c9052602481018b90526001600160a01b039091169063c397ae3990604401600060405180830381600087803b15801561138d57600080fd5b505af11580156113a1573d6000803e3d6000fd5b505060048054602086015160405163c397ae3960e01b815292830152602482018c90526001600160a01b0316925063c397ae3991506044015b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050505050505050505092915050565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561147257600080fd5b505afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156114f357600080fd5b505afa158015611507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152b9190613c5c565b600281111561154a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561159557600080fd5b505afa1580156115a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115d19190810190613c7b565b9050816115f05760405162461bcd60e51b81526004016103a990613e3f565b806020015183146116135760405162461bcd60e51b81526004016103a990613ec1565b83156116d257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561165e57600080fd5b505afa158015611672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116969190613c3d565b60068111156116b557634e487b7160e01b600052602160045260246000fd5b146116d25760405162461bcd60e51b81526004016103a990613e80565b600354604051634d03f9b760e01b8152600481018a905260248101899052604481018890526001600160a01b0390911690634d03f9b7906064015b600060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b505050505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156117a257600080fd5b505afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b9190613c5c565b600281111561187a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156118c557600080fd5b505afa1580156118d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119019190810190613c7b565b9050816119205760405162461bcd60e51b81526004016103a990613e3f565b806020015183146119435760405162461bcd60e51b81526004016103a990613ec1565b8315611a0257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561198e57600080fd5b505afa1580156119a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c69190613c3d565b60068111156119e557634e487b7160e01b600052602160045260246000fd5b14611a025760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a839190810190613c7b565b9050600281606001516003811115611aab57634e487b7160e01b600052602160045260246000fd5b14611af85760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5250532d3032303a42554e444c455f4e4f545f434c4f5345440060448201526064016103a9565b60055460e082015160405163d935807560e01b8152600481018a9052602481019190915260009182916001600160a01b039091169063d9358075906044016040805180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b879190613dcb565b60035460405163c397ae3960e01b8152600481018d9052602481018390529294509092506001600160a01b03169063c397ae3990604401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505060048054602087015160405163c397ae3960e01b815292830152602482018590526001600160a01b0316925063c397ae399150604401600060405180830381600087803b158015611c3e57600080fd5b505af1158015611c52573d6000803e3d6000fd5b5050600354604051630852cd8d60e31b8152600481018d90526001600160a01b0390911692506342966c689150602401600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b50505050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015611d1a57600080fd5b505afa158015611d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d529190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd39190613c5c565b6002811115611df257634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611e3d57600080fd5b505afa158015611e51573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e799190810190613c7b565b905081611e985760405162461bcd60e51b81526004016103a990613e3f565b80602001518314611ebb5760405162461bcd60e51b81526004016103a990613ec1565b8315611f7a57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e9190613c3d565b6006811115611f5d57634e487b7160e01b600052602160045260246000fd5b14611f7a5760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611fbf57600080fd5b505afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb9190810190613c7b565b905060028160600151600381111561202357634e487b7160e01b600052602160045260246000fd5b14158015612055575060038160600151600381111561205257634e487b7160e01b600052602160045260246000fd5b14155b6120af5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5250532d3031303a42554e444c455f434c4f5345445f4f525f42604482015264155493915160da1b60648201526084016103a9565b60055460405163136f5ed560e11b8152600481018b9052602481018a90526000916001600160a01b0316906326debdaa906044016040805180830381600087803b1580156120fc57600080fd5b505af1158015612110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121349190613dcb565b60035460405163a65e2cfd60e01b8152600481018e905260248101839052919a509192506001600160a01b039091169063a65e2cfd90604401600060405180830381600087803b15801561218757600080fd5b505af115801561219b573d6000803e3d6000fd5b505060048054602086015160405163a65e2cfd60e01b815292830152602482018c90526001600160a01b0316925063a65e2cfd91506044016113da565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561223157600080fd5b505afa158015612245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122699190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156122b257600080fd5b505afa1580156122c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ea9190613c5c565b600281111561230957634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561235457600080fd5b505afa158015612368573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123909190810190613c7b565b9050816123af5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146123d25760405162461bcd60e51b81526004016103a990613ec1565b831561249157600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190613c3d565b600681111561247457634e487b7160e01b600052602160045260246000fd5b146124915760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156124e557600080fd5b505afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190613d67565b9050600060035460405163089935e560e31b8152600481018a90526001600160a01b03909116906344c9af289060240160206040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d9190613c23565b60038111156125bc57634e487b7160e01b600052602160045260246000fd5b1415612626576004805460405163950be80360e01b8152918201839052602482018990526001600160a01b03169063950be80390604401600060405180830381600087803b15801561260d57600080fd5b505af1158015612621573d6000803e3d6000fd5b505050505b600354604051630575f5a760e11b8152600481018990526001600160a01b0390911690630aebeb4e90602401610e6a565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156126b057600080fd5b505afa1580156126c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e89190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561273157600080fd5b505afa158015612745573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127699190613c5c565b600281111561278857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156127d357600080fd5b505afa1580156127e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261280f9190810190613c7b565b90508161282e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146128515760405162461bcd60e51b81526004016103a990613ec1565b831561291057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561289c57600080fd5b505afa1580156128b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d49190613c3d565b60068111156128f357634e487b7160e01b600052602160045260246000fd5b146129105760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561296457600080fd5b505afa158015612978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299c9190613d67565b6004805460405163950be80360e01b81529293506001600160a01b03169163950be803916129d79185918c9101918252602082015260400190565b600060405180830381600087803b1580156129f157600080fd5b505af1158015612a05573d6000803e3d6000fd5b50506003546040516337519c1960e21b8152600481018b90526001600160a01b03909116925063dd4670649150602401610e6a565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612a9357600080fd5b505afa158015612aa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acb9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612b1457600080fd5b505afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4c9190613c5c565b6002811115612b6b57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612bb657600080fd5b505afa158015612bca573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bf29190810190613c7b565b905081612c115760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612c345760405162461bcd60e51b81526004016103a990613ec1565b8315612cf357600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612c7f57600080fd5b505afa158015612c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb79190613c3d565b6006811115612cd657634e487b7160e01b600052602160045260246000fd5b14612cf35760405162461bcd60e51b81526004016103a990613e80565b60035460405163594ce61360e11b8152600481018a905260248101899052604481018890526001600160a01b039091169063b299cc269060640161170d565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612d8b57600080fd5b505afa158015612d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc39190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612e0c57600080fd5b505afa158015612e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e449190613c5c565b6002811115612e6357634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612eae57600080fd5b505afa158015612ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612eea9190810190613c7b565b905081612f095760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612f2c5760405162461bcd60e51b81526004016103a990613ec1565b8315612feb57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612f7757600080fd5b505afa158015612f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612faf9190613c3d565b6006811115612fce57634e487b7160e01b600052602160045260246000fd5b14612feb5760405162461bcd60e51b81526004016103a990613e80565b6003546040516305b933a160e51b8152600481018a905260248101899052604481018890526001600160a01b039091169063b72674209060640161170d565b6002546000908390829081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561308457600080fd5b505afa158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561310557600080fd5b505afa158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d9190613c5c565b600281111561315c57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156131a757600080fd5b505afa1580156131bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131e39190810190613c7b565b9050816132025760405162461bcd60e51b81526004016103a990613e3f565b806020015183146132255760405162461bcd60e51b81526004016103a990613ec1565b83156132e457600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561327057600080fd5b505afa158015613284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a89190613c3d565b60068111156132c757634e487b7160e01b600052602160045260246000fd5b146132e45760405162461bcd60e51b81526004016103a990613e80565b600354604051635daa06fb60e11b8152600481018a9052602481018990526001600160a01b039091169063bb540df690604401602060405180830381600087803b15801561333157600080fd5b505af1158015613345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133699190613d67565b98975050505050505050565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156133c957600080fd5b505afa1580156133dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134019190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134809190613c5c565b600281111561349f57634e487b7160e01b600052602160045260246000fd5b146134f65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030313a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084016103a9565b600254604051635e966e4560e01b8152600481018390526001916001600160a01b031690635e966e459060240160206040518083038186803b15801561353b57600080fd5b505afa15801561354f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135739190613c3d565b600681111561359257634e487b7160e01b600052602160045260246000fd5b146135eb5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5250532d3030323a5249534b504f4f4c5f4e4f545f50524f504f60448201526214d15160ea1b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561363f57600080fd5b505afa158015613653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136779190613d67565b600480546040516357419e8f60e01b81529182018390526001600160a01b0389811660248401528881166044840152606483018890526084830187905292935091909116906357419e8f9060a401610a52565b600054610100900460ff16158080156136ea5750600054600160ff909116105b8061370b57506136f93061384f565b15801561370b575060005460ff166001145b61376e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a9565b6000805460ff191660011790558015613791576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556137bb600090565b6541636365737360d01b146137fd576137dc6541636365737360d01b613862565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61380561394a565b801561384b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156138ac57600080fd5b505afa1580156138c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e49190613b3c565b90506001600160a01b03811661385d5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166139b55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b6139c76542756e646c6560d01b613862565b600380546001600160a01b0319166001600160a01b03929092169190911790556139fc6810dbdb5c1bdb995b9d60ba1b613862565b600280546001600160a01b0319166001600160a01b0392909216919091179055613a2c63141bdbdb60e21b613862565b600480546001600160a01b0319166001600160a01b0392909216919091179055613a6067547265617375727960c01b613862565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b600082601f830112613a92578081fd5b815167ffffffffffffffff811115613aac57613aac613f38565b6020613ac0601f8301601f19168201613f07565b8281528582848701011115613ad3578384fd5b835b83811015613af0578581018301518282018401528201613ad5565b83811115613b0057848385840101525b5095945050505050565b80516004811061385d57600080fd5b600060208284031215613b2a578081fd5b8135613b3581613f4e565b9392505050565b600060208284031215613b4d578081fd5b8151613b3581613f4e565b60008060008060808587031215613b6d578283fd5b8435613b7881613f4e565b93506020850135613b8881613f4e565b93969395505050506040820135916060013590565b60008060008060608587031215613bb2578384fd5b8435613bbd81613f4e565b9350602085013567ffffffffffffffff80821115613bd9578485fd5b818701915087601f830112613bec578485fd5b813581811115613bfa578586fd5b886020828501011115613c0b578586fd5b95986020929092019750949560400135945092505050565b600060208284031215613c34578081fd5b613b3582613b0a565b600060208284031215613c4e578081fd5b815160078110613b35578182fd5b600060208284031215613c6d578081fd5b815160038110613b35578182fd5b600060208284031215613c8c578081fd5b815167ffffffffffffffff80821115613ca3578283fd5b8184019150610140808387031215613cb9578384fd5b613cc281613f07565b9050825181526020830151602082015260408301516040820152613ce860608401613b0a565b6060820152608083015182811115613cfe578485fd5b613d0a87828601613a82565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613d60578081fd5b5035919050565b600060208284031215613d78578081fd5b5051919050565b60008060408385031215613d91578182fd5b50508035926020909101359150565b600080600060608486031215613db4578283fd5b505081359360208301359350604090920135919050565b60008060408385031215613ddd578182fd5b505080516020909101519092909150565b6001600160a01b03861681526020810185905260806040820181905281018390526000838560a08401378060a0858401015260a0601f19601f86011683010190508260608301529695505050505050565b60208082526021908201527f4552524f523a5250532d3030353a53454e4445525f4e4f545f5249534b504f4f6040820152601360fa1b606082015260800190565b60208082526021908201527f4552524f523a5250532d3030373a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526026908201527f4552524f523a5250532d3030363a42554e444c455f5249534b504f4f4c5f4d496040820152650a69a82a886960d31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f3057613f30613f38565b604052919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114613f6357600080fd5b5056fea26469706673582212209a54242b6373dab5b01e37d770361bdd347dbf612e95820001979e25479ba64464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x22 JUMP JUMPDEST PUSH3 0xE4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xE2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x3F9C DUP1 PUSH3 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x89002DA5 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xB7267420 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xB7267420 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0xBB540DF6 EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0xBF2E3546 EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x217 JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0xB299CC26 EQ PUSH2 0x1CB JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x316C5348 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x4D03F9B7 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x17F JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x4F5F96E EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x15FC1E74 EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0x2127FD48 EQ PUSH2 0x131 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C PUSH8 0x149A5CDADC1BDBDB PUSH1 0xC2 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH2 0x12C CALLDATASIZE PUSH1 0x4 PUSH2 0x3B9D JUMP JUMPDEST PUSH2 0x22A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x78A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x144 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST PUSH2 0x10C PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0xEA5 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x1419 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x1749 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x1CBF JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x21D8 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x2657 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x2A3A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1EC CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x2D32 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x302A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x212 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B58 JUMP JUMPDEST PUSH2 0x3375 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B19 JUMP JUMPDEST PUSH2 0x36CA JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x294 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B8 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x313 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x356 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x3B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030333A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x40B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x44E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x4A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030343A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x50D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x531 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3039C501 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC0E71404 SWAP1 PUSH2 0x56B SWAP1 DUP11 SWAP1 DUP6 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x3DEE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x599 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5BD SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH3 0x6A03DD PUSH1 0xE9 SHL DUP2 MSTORE SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD407BA00 SWAP2 PUSH2 0x5F7 SWAP2 DUP6 SWAP2 DUP9 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x625 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136F5ED5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP4 POP DUP4 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x26DEBDAA SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x67A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x68E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6B2 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA65E2CFD SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x717 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xA65E2CFD SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x766 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x77A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP3 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x81B SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x878 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x89C SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x8CA JUMPI POP DUP4 DUP3 EQ JUMPDEST PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030383A53454E4445525F4E4F545F4F574E494E475F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x149254D2D413D3D3 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST DUP3 ISZERO PUSH2 0xA20 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x9C9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xA20 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030393A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB1D SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB9E SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC44 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0xC63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0xC86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0xD45 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCE5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD09 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0xD28 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xD45 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD1 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH3 0x6A03DD PUSH1 0xE9 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD407BA00 SWAP2 PUSH2 0xE0B SWAP2 DUP6 SWAP2 DUP13 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6198E339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x6198E339 SWAP2 POP PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF38 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB9 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFD8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1023 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1037 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x105F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x107E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x10A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1160 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1100 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1124 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1143 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1160 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x11E1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x3 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1209 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1257 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031313A42554E444C455F4255524E45440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD9358075 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD9358075 SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12DC SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST SWAP9 POP SWAP1 POP DUP9 DUP9 EQ PUSH2 0x1340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031333A554E45585045435445445F4645455F535542 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x2A2920A1AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC397AE39 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13A1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xC397AE39 SWAP2 POP PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1408 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1472 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1486 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14AA SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1507 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x152B SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x154A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x15D1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x15F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1613 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x16D2 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x165E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1672 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1696 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x16B5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x16D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1727 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x173B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17DA SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1837 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x185B SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1901 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x1920 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1943 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1A02 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x198E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19C6 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x19E5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1A02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1A83 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1AAB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1AF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3032303A42554E444C455F4E4F545F434C4F53454400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xD9358075 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD9358075 SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B87 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC397AE39 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xC397AE39 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x42966C68 SWAP2 POP PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D52 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DD3 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1DF2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1E79 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x1E98 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1EBB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1F7A JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F3E SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1F5D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1F7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FD3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1FFB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2023 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x2055 JUMPI POP PUSH1 0x3 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2052 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO JUMPDEST PUSH2 0x20AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031303A42554E444C455F434C4F5345445F4F525F42 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1554939151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136F5ED5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x26DEBDAA SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2110 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2134 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP11 POP SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA65E2CFD SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xA65E2CFD SWAP2 POP PUSH1 0x44 ADD PUSH2 0x13DA JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2245 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2269 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22EA SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2309 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2368 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2390 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x23AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x23D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2491 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x241D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2431 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2455 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2474 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2491 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x251D SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89935E5 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x44C9AF28 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2565 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2579 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x259D SWAP2 SWAP1 PUSH2 0x3C23 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x25BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2626 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x950BE803 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x950BE803 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x260D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2621 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x575F5A7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xAEBEB4E SWAP1 PUSH1 0x24 ADD PUSH2 0xE6A JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26E8 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2731 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2745 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2769 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2788 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x280F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x282E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2851 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2910 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x289C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28D4 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x28F3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2910 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2964 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2978 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x299C SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x950BE803 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x950BE803 SWAP2 PUSH2 0x29D7 SWAP2 DUP6 SWAP2 DUP13 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x37519C19 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0xDD467064 SWAP2 POP PUSH1 0x24 ADD PUSH2 0xE6A JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AA7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ACB SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B28 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B4C SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2B6B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2BF2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x2C11 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2C34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2CF3 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2CB7 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2CD6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2CF3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x170D JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2DC3 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E20 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E44 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2E63 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EC2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2EEA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x2F09 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2F2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2FEB JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2FAF SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2FCE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2FEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD PUSH2 0x170D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3084 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3098 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30BC SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3119 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313D SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x315C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x31E3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x3202 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x3225 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x32E4 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3284 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32A8 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x32C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x32E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3345 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3369 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x33C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3401 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x345C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3480 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x349F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x34F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030313A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x353B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x354F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3573 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x3592 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x35EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030323A5249534B504F4F4C5F4E4F545F50524F504F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x14D151 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x363F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3653 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3677 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57419E8F PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x24 DUP5 ADD MSTORE DUP9 DUP2 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP9 SWAP1 MSTORE PUSH1 0x84 DUP4 ADD DUP8 SWAP1 MSTORE SWAP3 SWAP4 POP SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x57419E8F SWAP1 PUSH1 0xA4 ADD PUSH2 0xA52 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x36EA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x370B JUMPI POP PUSH2 0x36F9 ADDRESS PUSH2 0x384F JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x370B JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x376E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x3791 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x37BB PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x37FD JUMPI PUSH2 0x37DC PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x3805 PUSH2 0x394A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x384B JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x38AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38E4 SWAP2 SWAP1 PUSH2 0x3B3C JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x385D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x39B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH2 0x39C7 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x39FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3A2C PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3A60 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3A92 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3AAC JUMPI PUSH2 0x3AAC PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x3AC0 PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH2 0x3F07 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP6 DUP3 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x3AD3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3AF0 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP3 DUP3 ADD DUP5 ADD MSTORE DUP3 ADD PUSH2 0x3AD5 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3B00 JUMPI DUP5 DUP4 DUP6 DUP5 ADD ADD MSTORE JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x385D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B2A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3B35 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B4D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3B35 DUP2 PUSH2 0x3F4E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3B6D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3B78 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3B88 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3BB2 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3BBD DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BD9 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3BEC JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3BFA JUMPI DUP6 DUP7 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3C0B JUMPI DUP6 DUP7 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C34 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3B35 DUP3 PUSH2 0x3B0A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C4E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x3B35 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C6D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x3B35 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C8C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3CA3 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x3CB9 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3CC2 DUP2 PUSH2 0x3F07 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x3CE8 PUSH1 0x60 DUP5 ADD PUSH2 0x3B0A JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3CFE JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3D0A DUP8 DUP3 DUP7 ADD PUSH2 0x3A82 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D60 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D78 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D91 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3DB4 JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3DDD JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 DUP4 DUP6 PUSH1 0xA0 DUP5 ADD CALLDATACOPY DUP1 PUSH1 0xA0 DUP6 DUP5 ADD ADD MSTORE PUSH1 0xA0 PUSH1 0x1F NOT PUSH1 0x1F DUP7 ADD AND DUP4 ADD ADD SWAP1 POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030353A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030373A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x26 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030363A42554E444C455F5249534B504F4F4C5F4D49 PUSH1 0x40 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3F30 JUMPI PUSH2 0x3F30 PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3F63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 SLOAD 0x24 0x2B PUSH4 0x73DAB5B0 0x1E CALLDATACOPY 0xD7 PUSH17 0x361BDD347DBF612E95820001979E25479B 0xA6 DIFFICULTY PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"439:8208:87:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;439:8208:87;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;439:8208:87;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:16119:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"77:655:103","statements":[{"body":{"nodeType":"YulBlock","src":"126:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"135:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"142:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"128:6:103"},"nodeType":"YulFunctionCall","src":"128:20:103"},"nodeType":"YulExpressionStatement","src":"128:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"113:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"120:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"90:6:103"},"nodeType":"YulFunctionCall","src":"90:35:103"},"nodeType":"YulIf","src":"87:2:103"},{"nodeType":"YulVariableDeclaration","src":"159:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"175:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"169:5:103"},"nodeType":"YulFunctionCall","src":"169:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"163:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"221:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"223:16:103"},"nodeType":"YulFunctionCall","src":"223:18:103"},"nodeType":"YulExpressionStatement","src":"223:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"197:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"201:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"194:2:103"},"nodeType":"YulFunctionCall","src":"194:26:103"},"nodeType":"YulIf","src":"191:2:103"},{"nodeType":"YulVariableDeclaration","src":"252:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"262:4:103","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"256:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"275:68:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"318:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"322:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"314:3:103"},"nodeType":"YulFunctionCall","src":"314:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"333:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"329:3:103"},"nodeType":"YulFunctionCall","src":"329:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"310:3:103"},"nodeType":"YulFunctionCall","src":"310:27:103"},{"name":"_2","nodeType":"YulIdentifier","src":"339:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"306:3:103"},"nodeType":"YulFunctionCall","src":"306:36:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"290:15:103"},"nodeType":"YulFunctionCall","src":"290:53:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"279:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"359:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"368:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"352:6:103"},"nodeType":"YulFunctionCall","src":"352:19:103"},"nodeType":"YulExpressionStatement","src":"352:19:103"},{"body":{"nodeType":"YulBlock","src":"417:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"426:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"433:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"419:6:103"},"nodeType":"YulFunctionCall","src":"419:20:103"},"nodeType":"YulExpressionStatement","src":"419:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"394:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"402:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"390:3:103"},"nodeType":"YulFunctionCall","src":"390:15:103"},{"name":"_2","nodeType":"YulIdentifier","src":"407:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"386:3:103"},"nodeType":"YulFunctionCall","src":"386:24:103"},{"name":"end","nodeType":"YulIdentifier","src":"412:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"383:2:103"},"nodeType":"YulFunctionCall","src":"383:33:103"},"nodeType":"YulIf","src":"380:2:103"},{"nodeType":"YulVariableDeclaration","src":"450:14:103","value":{"name":"array","nodeType":"YulIdentifier","src":"459:5:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"454:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"519:88:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"548:7:103"},{"name":"i","nodeType":"YulIdentifier","src":"557:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"544:3:103"},"nodeType":"YulFunctionCall","src":"544:15:103"},{"name":"_2","nodeType":"YulIdentifier","src":"561:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"540:3:103"},"nodeType":"YulFunctionCall","src":"540:24:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"580:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"588:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"576:3:103"},"nodeType":"YulFunctionCall","src":"576:14:103"},{"name":"_2","nodeType":"YulIdentifier","src":"592:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"572:3:103"},"nodeType":"YulFunctionCall","src":"572:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"566:5:103"},"nodeType":"YulFunctionCall","src":"566:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"533:6:103"},"nodeType":"YulFunctionCall","src":"533:64:103"},"nodeType":"YulExpressionStatement","src":"533:64:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"484:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"487:2:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"481:2:103"},"nodeType":"YulFunctionCall","src":"481:9:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"491:19:103","statements":[{"nodeType":"YulAssignment","src":"493:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"502:1:103"},{"name":"_2","nodeType":"YulIdentifier","src":"505:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:103"},"nodeType":"YulFunctionCall","src":"498:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"493:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"477:3:103","statements":[]},"src":"473:134:103"},{"body":{"nodeType":"YulBlock","src":"637:64:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"666:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"675:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"662:3:103"},"nodeType":"YulFunctionCall","src":"662:16:103"},{"name":"_2","nodeType":"YulIdentifier","src":"680:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"658:3:103"},"nodeType":"YulFunctionCall","src":"658:25:103"},{"name":"array","nodeType":"YulIdentifier","src":"685:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"651:6:103"},"nodeType":"YulFunctionCall","src":"651:40:103"},"nodeType":"YulExpressionStatement","src":"651:40:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"622:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"625:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"619:2:103"},"nodeType":"YulFunctionCall","src":"619:9:103"},"nodeType":"YulIf","src":"616:2:103"},{"nodeType":"YulAssignment","src":"710:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"719:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"710:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"51:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"59:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"67:5:103","type":""}],"src":"14:718:103"},{"body":{"nodeType":"YulBlock","src":"806:87:103","statements":[{"nodeType":"YulAssignment","src":"816:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"831:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"825:5:103"},"nodeType":"YulFunctionCall","src":"825:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"816:5:103"}]},{"body":{"nodeType":"YulBlock","src":"871:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"880:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"883:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"873:6:103"},"nodeType":"YulFunctionCall","src":"873:12:103"},"nodeType":"YulExpressionStatement","src":"873:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"860:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"867:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"857:2:103"},"nodeType":"YulFunctionCall","src":"857:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"850:6:103"},"nodeType":"YulFunctionCall","src":"850:20:103"},"nodeType":"YulIf","src":"847:2:103"}]},"name":"abi_decode_enum_BundleState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"785:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"796:5:103","type":""}],"src":"737:156:103"},{"body":{"nodeType":"YulBlock","src":"968:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1014:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1023:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1031:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1016:6:103"},"nodeType":"YulFunctionCall","src":"1016:22:103"},"nodeType":"YulExpressionStatement","src":"1016:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"989:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"998:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"985:3:103"},"nodeType":"YulFunctionCall","src":"985:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1010:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:32:103"},"nodeType":"YulIf","src":"978:2:103"},{"nodeType":"YulVariableDeclaration","src":"1049:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1075:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1062:12:103"},"nodeType":"YulFunctionCall","src":"1062:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1053:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1119:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1094:24:103"},"nodeType":"YulFunctionCall","src":"1094:31:103"},"nodeType":"YulExpressionStatement","src":"1094:31:103"},{"nodeType":"YulAssignment","src":"1134:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1144:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1134:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"934:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"945:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"957:6:103","type":""}],"src":"898:257:103"},{"body":{"nodeType":"YulBlock","src":"1241:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1287:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1296:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1304:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1289:6:103"},"nodeType":"YulFunctionCall","src":"1289:22:103"},"nodeType":"YulExpressionStatement","src":"1289:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1262:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1271:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1258:3:103"},"nodeType":"YulFunctionCall","src":"1258:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1283:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1254:3:103"},"nodeType":"YulFunctionCall","src":"1254:32:103"},"nodeType":"YulIf","src":"1251:2:103"},{"nodeType":"YulVariableDeclaration","src":"1322:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1341:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1335:5:103"},"nodeType":"YulFunctionCall","src":"1335:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1326:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1385:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1360:24:103"},"nodeType":"YulFunctionCall","src":"1360:31:103"},"nodeType":"YulExpressionStatement","src":"1360:31:103"},{"nodeType":"YulAssignment","src":"1400:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1410:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1400:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1207:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1218:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1230:6:103","type":""}],"src":"1160:261:103"},{"body":{"nodeType":"YulBlock","src":"1547:414:103","statements":[{"body":{"nodeType":"YulBlock","src":"1594:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1603:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1611:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1596:6:103"},"nodeType":"YulFunctionCall","src":"1596:22:103"},"nodeType":"YulExpressionStatement","src":"1596:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1568:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1577:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1564:3:103"},"nodeType":"YulFunctionCall","src":"1564:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1589:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1560:3:103"},"nodeType":"YulFunctionCall","src":"1560:33:103"},"nodeType":"YulIf","src":"1557:2:103"},{"nodeType":"YulVariableDeclaration","src":"1629:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1655:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1642:12:103"},"nodeType":"YulFunctionCall","src":"1642:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1633:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1699:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1674:24:103"},"nodeType":"YulFunctionCall","src":"1674:31:103"},"nodeType":"YulExpressionStatement","src":"1674:31:103"},{"nodeType":"YulAssignment","src":"1714:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1724:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1714:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1738:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1770:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1781:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1766:3:103"},"nodeType":"YulFunctionCall","src":"1766:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1753:12:103"},"nodeType":"YulFunctionCall","src":"1753:32:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1742:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1819:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1794:24:103"},"nodeType":"YulFunctionCall","src":"1794:33:103"},"nodeType":"YulExpressionStatement","src":"1794:33:103"},{"nodeType":"YulAssignment","src":"1836:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1846:7:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1836:6:103"}]},{"nodeType":"YulAssignment","src":"1862:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1889:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1900:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1885:3:103"},"nodeType":"YulFunctionCall","src":"1885:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1872:12:103"},"nodeType":"YulFunctionCall","src":"1872:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1862:6:103"}]},{"nodeType":"YulAssignment","src":"1913:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1940:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1951:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1936:3:103"},"nodeType":"YulFunctionCall","src":"1936:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1923:12:103"},"nodeType":"YulFunctionCall","src":"1923:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1913:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1489:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1500:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1512:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1520:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1528:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1536:6:103","type":""}],"src":"1426:535:103"},{"body":{"nodeType":"YulBlock","src":"2089:721:103","statements":[{"body":{"nodeType":"YulBlock","src":"2135:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2144:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2152:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2137:6:103"},"nodeType":"YulFunctionCall","src":"2137:22:103"},"nodeType":"YulExpressionStatement","src":"2137:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2110:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2106:3:103"},"nodeType":"YulFunctionCall","src":"2106:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2131:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2102:3:103"},"nodeType":"YulFunctionCall","src":"2102:32:103"},"nodeType":"YulIf","src":"2099:2:103"},{"nodeType":"YulVariableDeclaration","src":"2170:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2196:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2183:12:103"},"nodeType":"YulFunctionCall","src":"2183:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2174:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2240:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2215:24:103"},"nodeType":"YulFunctionCall","src":"2215:31:103"},"nodeType":"YulExpressionStatement","src":"2215:31:103"},{"nodeType":"YulAssignment","src":"2255:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2265:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2255:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2279:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2310:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2306:3:103"},"nodeType":"YulFunctionCall","src":"2306:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2293:12:103"},"nodeType":"YulFunctionCall","src":"2293:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2283:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2334:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2344:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2338:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2389:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2398:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2406:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2391:6:103"},"nodeType":"YulFunctionCall","src":"2391:22:103"},"nodeType":"YulExpressionStatement","src":"2391:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2377:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2385:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2374:2:103"},"nodeType":"YulFunctionCall","src":"2374:14:103"},"nodeType":"YulIf","src":"2371:2:103"},{"nodeType":"YulVariableDeclaration","src":"2424:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2438:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2449:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2434:3:103"},"nodeType":"YulFunctionCall","src":"2434:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2428:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2504:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2513:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2521:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2506:6:103"},"nodeType":"YulFunctionCall","src":"2506:22:103"},"nodeType":"YulExpressionStatement","src":"2506:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2483:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2487:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2479:3:103"},"nodeType":"YulFunctionCall","src":"2479:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2494:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2475:3:103"},"nodeType":"YulFunctionCall","src":"2475:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2468:6:103"},"nodeType":"YulFunctionCall","src":"2468:35:103"},"nodeType":"YulIf","src":"2465:2:103"},{"nodeType":"YulVariableDeclaration","src":"2539:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2566:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2553:12:103"},"nodeType":"YulFunctionCall","src":"2553:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2543:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2596:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2605:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2613:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2598:6:103"},"nodeType":"YulFunctionCall","src":"2598:22:103"},"nodeType":"YulExpressionStatement","src":"2598:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2584:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2592:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2581:2:103"},"nodeType":"YulFunctionCall","src":"2581:14:103"},"nodeType":"YulIf","src":"2578:2:103"},{"body":{"nodeType":"YulBlock","src":"2672:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2681:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2689:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2674:6:103"},"nodeType":"YulFunctionCall","src":"2674:22:103"},"nodeType":"YulExpressionStatement","src":"2674:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2645:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"2649:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2641:3:103"},"nodeType":"YulFunctionCall","src":"2641:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"2658:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2637:3:103"},"nodeType":"YulFunctionCall","src":"2637:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2663:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2634:2:103"},"nodeType":"YulFunctionCall","src":"2634:37:103"},"nodeType":"YulIf","src":"2631:2:103"},{"nodeType":"YulAssignment","src":"2707:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2721:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2717:3:103"},"nodeType":"YulFunctionCall","src":"2717:11:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2707:6:103"}]},{"nodeType":"YulAssignment","src":"2737:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"2747:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2737:6:103"}]},{"nodeType":"YulAssignment","src":"2762:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2789:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2800:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2785:3:103"},"nodeType":"YulFunctionCall","src":"2785:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2772:12:103"},"nodeType":"YulFunctionCall","src":"2772:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2762:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2031:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2042:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2054:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2062:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2070:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2078:6:103","type":""}],"src":"1966:844:103"},{"body":{"nodeType":"YulBlock","src":"2912:146:103","statements":[{"body":{"nodeType":"YulBlock","src":"2958:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2967:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2975:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2960:6:103"},"nodeType":"YulFunctionCall","src":"2960:22:103"},"nodeType":"YulExpressionStatement","src":"2960:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2933:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2942:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2929:3:103"},"nodeType":"YulFunctionCall","src":"2929:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2954:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2925:3:103"},"nodeType":"YulFunctionCall","src":"2925:32:103"},"nodeType":"YulIf","src":"2922:2:103"},{"nodeType":"YulAssignment","src":"2993:59:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3042:9:103"}],"functionName":{"name":"abi_decode_enum_BundleState_fromMemory","nodeType":"YulIdentifier","src":"3003:38:103"},"nodeType":"YulFunctionCall","src":"3003:49:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2993:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_BundleState_$4914_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2878:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2889:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2901:6:103","type":""}],"src":"2815:243:103"},{"body":{"nodeType":"YulBlock","src":"3163:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"3209:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3218:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3226:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3211:6:103"},"nodeType":"YulFunctionCall","src":"3211:22:103"},"nodeType":"YulExpressionStatement","src":"3211:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3184:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3193:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3180:3:103"},"nodeType":"YulFunctionCall","src":"3180:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3205:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3176:3:103"},"nodeType":"YulFunctionCall","src":"3176:32:103"},"nodeType":"YulIf","src":"3173:2:103"},{"nodeType":"YulVariableDeclaration","src":"3244:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3263:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3257:5:103"},"nodeType":"YulFunctionCall","src":"3257:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3248:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3306:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3315:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3323:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3308:6:103"},"nodeType":"YulFunctionCall","src":"3308:22:103"},"nodeType":"YulExpressionStatement","src":"3308:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3295:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3302:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3292:2:103"},"nodeType":"YulFunctionCall","src":"3292:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3285:6:103"},"nodeType":"YulFunctionCall","src":"3285:20:103"},"nodeType":"YulIf","src":"3282:2:103"},{"nodeType":"YulAssignment","src":"3341:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3351:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3341:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3129:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3140:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3152:6:103","type":""}],"src":"3063:299:103"},{"body":{"nodeType":"YulBlock","src":"3466:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"3512:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3521:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3529:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3514:6:103"},"nodeType":"YulFunctionCall","src":"3514:22:103"},"nodeType":"YulExpressionStatement","src":"3514:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3487:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3496:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3483:3:103"},"nodeType":"YulFunctionCall","src":"3483:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3508:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3479:3:103"},"nodeType":"YulFunctionCall","src":"3479:32:103"},"nodeType":"YulIf","src":"3476:2:103"},{"nodeType":"YulVariableDeclaration","src":"3547:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3566:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3560:5:103"},"nodeType":"YulFunctionCall","src":"3560:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3551:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3609:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3618:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3626:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3611:6:103"},"nodeType":"YulFunctionCall","src":"3611:22:103"},"nodeType":"YulExpressionStatement","src":"3611:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3598:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3605:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3595:2:103"},"nodeType":"YulFunctionCall","src":"3595:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3588:6:103"},"nodeType":"YulFunctionCall","src":"3588:20:103"},"nodeType":"YulIf","src":"3585:2:103"},{"nodeType":"YulAssignment","src":"3644:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3654:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3644:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3432:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3443:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3455:6:103","type":""}],"src":"3367:298:103"},{"body":{"nodeType":"YulBlock","src":"3775:1114:103","statements":[{"body":{"nodeType":"YulBlock","src":"3821:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3830:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3838:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3823:6:103"},"nodeType":"YulFunctionCall","src":"3823:22:103"},"nodeType":"YulExpressionStatement","src":"3823:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3796:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3805:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3792:3:103"},"nodeType":"YulFunctionCall","src":"3792:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3817:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3788:3:103"},"nodeType":"YulFunctionCall","src":"3788:32:103"},"nodeType":"YulIf","src":"3785:2:103"},{"nodeType":"YulVariableDeclaration","src":"3856:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3876:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3870:5:103"},"nodeType":"YulFunctionCall","src":"3870:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3860:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3895:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3905:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3899:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3950:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3959:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3967:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3952:6:103"},"nodeType":"YulFunctionCall","src":"3952:22:103"},"nodeType":"YulExpressionStatement","src":"3952:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3938:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3946:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3935:2:103"},"nodeType":"YulFunctionCall","src":"3935:14:103"},"nodeType":"YulIf","src":"3932:2:103"},{"nodeType":"YulVariableDeclaration","src":"3985:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3999:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4010:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3995:3:103"},"nodeType":"YulFunctionCall","src":"3995:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3989:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4026:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4036:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"4030:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4080:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4089:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4097:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4082:6:103"},"nodeType":"YulFunctionCall","src":"4082:22:103"},"nodeType":"YulExpressionStatement","src":"4082:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4062:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4071:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4058:3:103"},"nodeType":"YulFunctionCall","src":"4058:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"4076:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4054:3:103"},"nodeType":"YulFunctionCall","src":"4054:25:103"},"nodeType":"YulIf","src":"4051:2:103"},{"nodeType":"YulVariableDeclaration","src":"4115:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4144:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4128:15:103"},"nodeType":"YulFunctionCall","src":"4128:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4119:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4163:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4176:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4170:5:103"},"nodeType":"YulFunctionCall","src":"4170:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4156:6:103"},"nodeType":"YulFunctionCall","src":"4156:24:103"},"nodeType":"YulExpressionStatement","src":"4156:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4200:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4207:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4196:3:103"},"nodeType":"YulFunctionCall","src":"4196:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4222:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4226:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4218:3:103"},"nodeType":"YulFunctionCall","src":"4218:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4212:5:103"},"nodeType":"YulFunctionCall","src":"4212:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4189:6:103"},"nodeType":"YulFunctionCall","src":"4189:42:103"},"nodeType":"YulExpressionStatement","src":"4189:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4251:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4258:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4247:3:103"},"nodeType":"YulFunctionCall","src":"4247:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4273:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4277:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4269:3:103"},"nodeType":"YulFunctionCall","src":"4269:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4263:5:103"},"nodeType":"YulFunctionCall","src":"4263:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4240:6:103"},"nodeType":"YulFunctionCall","src":"4240:42:103"},"nodeType":"YulExpressionStatement","src":"4240:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4302:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4309:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4298:3:103"},"nodeType":"YulFunctionCall","src":"4298:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4357:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4361:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4353:3:103"},"nodeType":"YulFunctionCall","src":"4353:11:103"}],"functionName":{"name":"abi_decode_enum_BundleState_fromMemory","nodeType":"YulIdentifier","src":"4314:38:103"},"nodeType":"YulFunctionCall","src":"4314:51:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4291:6:103"},"nodeType":"YulFunctionCall","src":"4291:75:103"},"nodeType":"YulExpressionStatement","src":"4291:75:103"},{"nodeType":"YulVariableDeclaration","src":"4375:35:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4401:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4405:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4397:3:103"},"nodeType":"YulFunctionCall","src":"4397:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4391:5:103"},"nodeType":"YulFunctionCall","src":"4391:19:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4379:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4439:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4448:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4456:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4441:6:103"},"nodeType":"YulFunctionCall","src":"4441:22:103"},"nodeType":"YulExpressionStatement","src":"4441:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4425:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4435:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4422:2:103"},"nodeType":"YulFunctionCall","src":"4422:16:103"},"nodeType":"YulIf","src":"4419:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4485:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4492:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4481:3:103"},"nodeType":"YulFunctionCall","src":"4481:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4530:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4534:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4526:3:103"},"nodeType":"YulFunctionCall","src":"4526:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4545:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"4498:27:103"},"nodeType":"YulFunctionCall","src":"4498:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4474:6:103"},"nodeType":"YulFunctionCall","src":"4474:80:103"},"nodeType":"YulExpressionStatement","src":"4474:80:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4574:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4581:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4570:3:103"},"nodeType":"YulFunctionCall","src":"4570:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4597:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4601:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4593:3:103"},"nodeType":"YulFunctionCall","src":"4593:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4587:5:103"},"nodeType":"YulFunctionCall","src":"4587:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4563:6:103"},"nodeType":"YulFunctionCall","src":"4563:44:103"},"nodeType":"YulExpressionStatement","src":"4563:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4627:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4634:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4623:3:103"},"nodeType":"YulFunctionCall","src":"4623:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4650:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4654:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4646:3:103"},"nodeType":"YulFunctionCall","src":"4646:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4640:5:103"},"nodeType":"YulFunctionCall","src":"4640:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4616:6:103"},"nodeType":"YulFunctionCall","src":"4616:44:103"},"nodeType":"YulExpressionStatement","src":"4616:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4680:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4687:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4676:3:103"},"nodeType":"YulFunctionCall","src":"4676:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4703:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4707:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4699:3:103"},"nodeType":"YulFunctionCall","src":"4699:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4693:5:103"},"nodeType":"YulFunctionCall","src":"4693:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4669:6:103"},"nodeType":"YulFunctionCall","src":"4669:44:103"},"nodeType":"YulExpressionStatement","src":"4669:44:103"},{"nodeType":"YulVariableDeclaration","src":"4722:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4732:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"4726:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4755:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"4762:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4751:3:103"},"nodeType":"YulFunctionCall","src":"4751:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4777:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"4781:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4773:3:103"},"nodeType":"YulFunctionCall","src":"4773:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4767:5:103"},"nodeType":"YulFunctionCall","src":"4767:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4744:6:103"},"nodeType":"YulFunctionCall","src":"4744:42:103"},"nodeType":"YulExpressionStatement","src":"4744:42:103"},{"nodeType":"YulVariableDeclaration","src":"4795:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4805:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"4799:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4828:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"4835:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4824:3:103"},"nodeType":"YulFunctionCall","src":"4824:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4850:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"4854:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4846:3:103"},"nodeType":"YulFunctionCall","src":"4846:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4840:5:103"},"nodeType":"YulFunctionCall","src":"4840:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4817:6:103"},"nodeType":"YulFunctionCall","src":"4817:42:103"},"nodeType":"YulExpressionStatement","src":"4817:42:103"},{"nodeType":"YulAssignment","src":"4868:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4878:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4868:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3741:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3752:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3764:6:103","type":""}],"src":"3670:1219:103"},{"body":{"nodeType":"YulBlock","src":"4964:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"5010:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5019:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5027:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5012:6:103"},"nodeType":"YulFunctionCall","src":"5012:22:103"},"nodeType":"YulExpressionStatement","src":"5012:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4985:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4994:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4981:3:103"},"nodeType":"YulFunctionCall","src":"4981:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5006:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4977:3:103"},"nodeType":"YulFunctionCall","src":"4977:32:103"},"nodeType":"YulIf","src":"4974:2:103"},{"nodeType":"YulAssignment","src":"5045:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5068:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5055:12:103"},"nodeType":"YulFunctionCall","src":"5055:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5045:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4930:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4941:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4953:6:103","type":""}],"src":"4894:190:103"},{"body":{"nodeType":"YulBlock","src":"5170:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"5216:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5225:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5233:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5218:6:103"},"nodeType":"YulFunctionCall","src":"5218:22:103"},"nodeType":"YulExpressionStatement","src":"5218:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5191:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5187:3:103"},"nodeType":"YulFunctionCall","src":"5187:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5212:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5183:3:103"},"nodeType":"YulFunctionCall","src":"5183:32:103"},"nodeType":"YulIf","src":"5180:2:103"},{"nodeType":"YulAssignment","src":"5251:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5267:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5261:5:103"},"nodeType":"YulFunctionCall","src":"5261:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5251:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5136:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5147:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5159:6:103","type":""}],"src":"5089:194:103"},{"body":{"nodeType":"YulBlock","src":"5375:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"5421:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5430:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5438:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5423:6:103"},"nodeType":"YulFunctionCall","src":"5423:22:103"},"nodeType":"YulExpressionStatement","src":"5423:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5396:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5405:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5392:3:103"},"nodeType":"YulFunctionCall","src":"5392:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5417:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5388:3:103"},"nodeType":"YulFunctionCall","src":"5388:32:103"},"nodeType":"YulIf","src":"5385:2:103"},{"nodeType":"YulAssignment","src":"5456:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5479:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5466:12:103"},"nodeType":"YulFunctionCall","src":"5466:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5456:6:103"}]},{"nodeType":"YulAssignment","src":"5498:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5536:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5521:3:103"},"nodeType":"YulFunctionCall","src":"5521:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5508:12:103"},"nodeType":"YulFunctionCall","src":"5508:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5498:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5333:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5344:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5356:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5364:6:103","type":""}],"src":"5288:258:103"},{"body":{"nodeType":"YulBlock","src":"5655:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"5701:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5710:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5718:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5703:6:103"},"nodeType":"YulFunctionCall","src":"5703:22:103"},"nodeType":"YulExpressionStatement","src":"5703:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5676:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5685:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5672:3:103"},"nodeType":"YulFunctionCall","src":"5672:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5697:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5668:3:103"},"nodeType":"YulFunctionCall","src":"5668:32:103"},"nodeType":"YulIf","src":"5665:2:103"},{"nodeType":"YulAssignment","src":"5736:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5759:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5746:12:103"},"nodeType":"YulFunctionCall","src":"5746:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5736:6:103"}]},{"nodeType":"YulAssignment","src":"5778:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5805:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5816:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5801:3:103"},"nodeType":"YulFunctionCall","src":"5801:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5788:12:103"},"nodeType":"YulFunctionCall","src":"5788:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5778:6:103"}]},{"nodeType":"YulAssignment","src":"5829:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5856:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5867:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5852:3:103"},"nodeType":"YulFunctionCall","src":"5852:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5839:12:103"},"nodeType":"YulFunctionCall","src":"5839:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5829:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5605:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5616:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5628:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5636:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5644:6:103","type":""}],"src":"5551:326:103"},{"body":{"nodeType":"YulBlock","src":"5969:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"6015:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6024:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6032:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6017:6:103"},"nodeType":"YulFunctionCall","src":"6017:22:103"},"nodeType":"YulExpressionStatement","src":"6017:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5990:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5999:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5986:3:103"},"nodeType":"YulFunctionCall","src":"5986:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6011:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5982:3:103"},"nodeType":"YulFunctionCall","src":"5982:32:103"},"nodeType":"YulIf","src":"5979:2:103"},{"nodeType":"YulAssignment","src":"6050:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6073:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6060:12:103"},"nodeType":"YulFunctionCall","src":"6060:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6050:6:103"}]},{"nodeType":"YulAssignment","src":"6092:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6119:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6130:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6115:3:103"},"nodeType":"YulFunctionCall","src":"6115:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6102:12:103"},"nodeType":"YulFunctionCall","src":"6102:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6092:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5927:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5938:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5950:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5958:6:103","type":""}],"src":"5882:258:103"},{"body":{"nodeType":"YulBlock","src":"6243:157:103","statements":[{"body":{"nodeType":"YulBlock","src":"6289:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6298:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6306:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6291:6:103"},"nodeType":"YulFunctionCall","src":"6291:22:103"},"nodeType":"YulExpressionStatement","src":"6291:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6264:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6273:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6260:3:103"},"nodeType":"YulFunctionCall","src":"6260:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6285:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6256:3:103"},"nodeType":"YulFunctionCall","src":"6256:32:103"},"nodeType":"YulIf","src":"6253:2:103"},{"nodeType":"YulAssignment","src":"6324:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6340:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6334:5:103"},"nodeType":"YulFunctionCall","src":"6334:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6324:6:103"}]},{"nodeType":"YulAssignment","src":"6359:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6379:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6390:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6375:3:103"},"nodeType":"YulFunctionCall","src":"6375:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6369:5:103"},"nodeType":"YulFunctionCall","src":"6369:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6359:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6201:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6212:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6224:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6232:6:103","type":""}],"src":"6145:255:103"},{"body":{"nodeType":"YulBlock","src":"6506:102:103","statements":[{"nodeType":"YulAssignment","src":"6516:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6528:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6539:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6524:3:103"},"nodeType":"YulFunctionCall","src":"6524:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6516:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6558:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6573:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6589:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6594:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6585:3:103"},"nodeType":"YulFunctionCall","src":"6585:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6598:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6581:3:103"},"nodeType":"YulFunctionCall","src":"6581:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6569:3:103"},"nodeType":"YulFunctionCall","src":"6569:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6551:6:103"},"nodeType":"YulFunctionCall","src":"6551:51:103"},"nodeType":"YulExpressionStatement","src":"6551:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6475:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6486:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6497:4:103","type":""}],"src":"6405:203:103"},{"body":{"nodeType":"YulBlock","src":"6834:422:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6851:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6866:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6882:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6887:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6878:3:103"},"nodeType":"YulFunctionCall","src":"6878:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6891:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6874:3:103"},"nodeType":"YulFunctionCall","src":"6874:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6862:3:103"},"nodeType":"YulFunctionCall","src":"6862:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6844:6:103"},"nodeType":"YulFunctionCall","src":"6844:51:103"},"nodeType":"YulExpressionStatement","src":"6844:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6926:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6911:3:103"},"nodeType":"YulFunctionCall","src":"6911:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6931:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6904:6:103"},"nodeType":"YulFunctionCall","src":"6904:34:103"},"nodeType":"YulExpressionStatement","src":"6904:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6958:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6969:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6954:3:103"},"nodeType":"YulFunctionCall","src":"6954:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6974:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6947:6:103"},"nodeType":"YulFunctionCall","src":"6947:31:103"},"nodeType":"YulExpressionStatement","src":"6947:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6998:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7009:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6994:3:103"},"nodeType":"YulFunctionCall","src":"6994:19:103"},{"name":"value3","nodeType":"YulIdentifier","src":"7015:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6987:6:103"},"nodeType":"YulFunctionCall","src":"6987:35:103"},"nodeType":"YulExpressionStatement","src":"6987:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7048:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7059:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7044:3:103"},"nodeType":"YulFunctionCall","src":"7044:19:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7065:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"7073:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"7031:12:103"},"nodeType":"YulFunctionCall","src":"7031:49:103"},"nodeType":"YulExpressionStatement","src":"7031:49:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7104:9:103"},{"name":"value3","nodeType":"YulIdentifier","src":"7115:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7100:3:103"},"nodeType":"YulFunctionCall","src":"7100:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"7124:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7096:3:103"},"nodeType":"YulFunctionCall","src":"7096:32:103"},{"name":"tail","nodeType":"YulIdentifier","src":"7130:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7089:6:103"},"nodeType":"YulFunctionCall","src":"7089:46:103"},"nodeType":"YulExpressionStatement","src":"7089:46:103"},{"nodeType":"YulAssignment","src":"7144:63:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7160:9:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7179:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7187:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7175:3:103"},"nodeType":"YulFunctionCall","src":"7175:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7196:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7192:3:103"},"nodeType":"YulFunctionCall","src":"7192:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7171:3:103"},"nodeType":"YulFunctionCall","src":"7171:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7156:3:103"},"nodeType":"YulFunctionCall","src":"7156:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"7203:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7152:3:103"},"nodeType":"YulFunctionCall","src":"7152:55:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7144:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7227:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7238:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7223:3:103"},"nodeType":"YulFunctionCall","src":"7223:18:103"},{"name":"value4","nodeType":"YulIdentifier","src":"7243:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7216:6:103"},"nodeType":"YulFunctionCall","src":"7216:34:103"},"nodeType":"YulExpressionStatement","src":"7216:34:103"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_rational_0_by_1__to_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6771:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6782:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6790:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6798:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6806:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6814:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6825:4:103","type":""}],"src":"6613:643:103"},{"body":{"nodeType":"YulBlock","src":"7362:76:103","statements":[{"nodeType":"YulAssignment","src":"7372:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7384:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7395:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7380:3:103"},"nodeType":"YulFunctionCall","src":"7380:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7372:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7414:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7425:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7407:6:103"},"nodeType":"YulFunctionCall","src":"7407:25:103"},"nodeType":"YulExpressionStatement","src":"7407:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7331:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7342:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7353:4:103","type":""}],"src":"7261:177:103"},{"body":{"nodeType":"YulBlock","src":"7550:87:103","statements":[{"nodeType":"YulAssignment","src":"7560:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7572:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7583:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7568:3:103"},"nodeType":"YulFunctionCall","src":"7568:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7560:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7602:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7617:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7625:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7613:3:103"},"nodeType":"YulFunctionCall","src":"7613:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7595:6:103"},"nodeType":"YulFunctionCall","src":"7595:36:103"},"nodeType":"YulExpressionStatement","src":"7595:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7519:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7530:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7541:4:103","type":""}],"src":"7443:194:103"},{"body":{"nodeType":"YulBlock","src":"7816:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7844:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7826:6:103"},"nodeType":"YulFunctionCall","src":"7826:21:103"},"nodeType":"YulExpressionStatement","src":"7826:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7867:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7878:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7863:3:103"},"nodeType":"YulFunctionCall","src":"7863:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7883:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7856:6:103"},"nodeType":"YulFunctionCall","src":"7856:30:103"},"nodeType":"YulExpressionStatement","src":"7856:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7906:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7917:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7902:3:103"},"nodeType":"YulFunctionCall","src":"7902:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7922:34:103","type":"","value":"ERROR:RPS-002:RISKPOOL_NOT_PROPO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7895:6:103"},"nodeType":"YulFunctionCall","src":"7895:62:103"},"nodeType":"YulExpressionStatement","src":"7895:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7977:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7988:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7973:3:103"},"nodeType":"YulFunctionCall","src":"7973:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7993:5:103","type":"","value":"SED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7966:6:103"},"nodeType":"YulFunctionCall","src":"7966:33:103"},"nodeType":"YulExpressionStatement","src":"7966:33:103"},{"nodeType":"YulAssignment","src":"8008:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8020:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8031:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8016:3:103"},"nodeType":"YulFunctionCall","src":"8016:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8008:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0c96a51f00cf9612773d15d17720eae05a0f2c52cc3d14d5ed17e37cdf11d67e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7793:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7807:4:103","type":""}],"src":"7642:399:103"},{"body":{"nodeType":"YulBlock","src":"8220:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8237:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8248:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8230:6:103"},"nodeType":"YulFunctionCall","src":"8230:21:103"},"nodeType":"YulExpressionStatement","src":"8230:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8282:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8267:3:103"},"nodeType":"YulFunctionCall","src":"8267:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8287:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8260:6:103"},"nodeType":"YulFunctionCall","src":"8260:30:103"},"nodeType":"YulExpressionStatement","src":"8260:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8310:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8321:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8306:3:103"},"nodeType":"YulFunctionCall","src":"8306:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8326:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8299:6:103"},"nodeType":"YulFunctionCall","src":"8299:62:103"},"nodeType":"YulExpressionStatement","src":"8299:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8392:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8377:3:103"},"nodeType":"YulFunctionCall","src":"8377:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8397:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8370:6:103"},"nodeType":"YulFunctionCall","src":"8370:35:103"},"nodeType":"YulExpressionStatement","src":"8370:35:103"},{"nodeType":"YulAssignment","src":"8414:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8437:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8422:3:103"},"nodeType":"YulFunctionCall","src":"8422:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8414:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8197:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8211:4:103","type":""}],"src":"8046:401:103"},{"body":{"nodeType":"YulBlock","src":"8626:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8654:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8636:6:103"},"nodeType":"YulFunctionCall","src":"8636:21:103"},"nodeType":"YulExpressionStatement","src":"8636:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8688:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8673:3:103"},"nodeType":"YulFunctionCall","src":"8673:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8693:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8666:6:103"},"nodeType":"YulFunctionCall","src":"8666:30:103"},"nodeType":"YulExpressionStatement","src":"8666:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8716:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8727:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8712:3:103"},"nodeType":"YulFunctionCall","src":"8712:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8732:34:103","type":"","value":"ERROR:RPS-013:UNEXPECTED_FEE_SUB"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8705:6:103"},"nodeType":"YulFunctionCall","src":"8705:62:103"},"nodeType":"YulExpressionStatement","src":"8705:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8787:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8798:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8783:3:103"},"nodeType":"YulFunctionCall","src":"8783:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8803:10:103","type":"","value":"TRACTION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8776:6:103"},"nodeType":"YulFunctionCall","src":"8776:38:103"},"nodeType":"YulExpressionStatement","src":"8776:38:103"},{"nodeType":"YulAssignment","src":"8823:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8835:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8846:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8831:3:103"},"nodeType":"YulFunctionCall","src":"8831:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8823:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_258a3c9af06bd81d9eb902a8f510faf45f4bdbbc4357a4c707327ecc2c7180b8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8603:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8617:4:103","type":""}],"src":"8452:404:103"},{"body":{"nodeType":"YulBlock","src":"9035:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9052:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9063:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9045:6:103"},"nodeType":"YulFunctionCall","src":"9045:21:103"},"nodeType":"YulExpressionStatement","src":"9045:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9086:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9097:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9082:3:103"},"nodeType":"YulFunctionCall","src":"9082:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9102:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9075:6:103"},"nodeType":"YulFunctionCall","src":"9075:30:103"},"nodeType":"YulExpressionStatement","src":"9075:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9125:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9136:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9121:3:103"},"nodeType":"YulFunctionCall","src":"9121:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9141:34:103","type":"","value":"ERROR:RPS-005:SENDER_NOT_RISKPOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9114:6:103"},"nodeType":"YulFunctionCall","src":"9114:62:103"},"nodeType":"YulExpressionStatement","src":"9114:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9196:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9207:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9192:3:103"},"nodeType":"YulFunctionCall","src":"9192:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9212:3:103","type":"","value":"L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9185:6:103"},"nodeType":"YulFunctionCall","src":"9185:31:103"},"nodeType":"YulExpressionStatement","src":"9185:31:103"},{"nodeType":"YulAssignment","src":"9225:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9237:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9248:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9233:3:103"},"nodeType":"YulFunctionCall","src":"9233:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9225:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_309fb80389ae2cf275d3bd06f653b63b4bb0fb9d9ee3e0d9b947706f44385d1f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9012:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9026:4:103","type":""}],"src":"8861:397:103"},{"body":{"nodeType":"YulBlock","src":"9437:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9465:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9447:6:103"},"nodeType":"YulFunctionCall","src":"9447:21:103"},"nodeType":"YulExpressionStatement","src":"9447:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9488:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9499:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9484:3:103"},"nodeType":"YulFunctionCall","src":"9484:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9504:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9477:6:103"},"nodeType":"YulFunctionCall","src":"9477:30:103"},"nodeType":"YulExpressionStatement","src":"9477:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9527:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9538:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9523:3:103"},"nodeType":"YulFunctionCall","src":"9523:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9543:33:103","type":"","value":"ERROR:RPS-020:BUNDLE_NOT_CLOSED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9516:6:103"},"nodeType":"YulFunctionCall","src":"9516:61:103"},"nodeType":"YulExpressionStatement","src":"9516:61:103"},{"nodeType":"YulAssignment","src":"9586:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9598:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9609:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9594:3:103"},"nodeType":"YulFunctionCall","src":"9594:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9586:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_386d499e9b35cf070593adbf1e04c00337097d278207b271aae54ef291324f75__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9414:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9428:4:103","type":""}],"src":"9263:355:103"},{"body":{"nodeType":"YulBlock","src":"9797:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9825:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9807:6:103"},"nodeType":"YulFunctionCall","src":"9807:21:103"},"nodeType":"YulExpressionStatement","src":"9807:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9848:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9859:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9844:3:103"},"nodeType":"YulFunctionCall","src":"9844:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9864:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9837:6:103"},"nodeType":"YulFunctionCall","src":"9837:30:103"},"nodeType":"YulExpressionStatement","src":"9837:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9887:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9898:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9883:3:103"},"nodeType":"YulFunctionCall","src":"9883:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9903:34:103","type":"","value":"ERROR:RPS-008:SENDER_NOT_OWNING_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9876:6:103"},"nodeType":"YulFunctionCall","src":"9876:62:103"},"nodeType":"YulExpressionStatement","src":"9876:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9958:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9969:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9954:3:103"},"nodeType":"YulFunctionCall","src":"9954:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9974:10:103","type":"","value":"RISKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9947:6:103"},"nodeType":"YulFunctionCall","src":"9947:38:103"},"nodeType":"YulExpressionStatement","src":"9947:38:103"},{"nodeType":"YulAssignment","src":"9994:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10006:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10017:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10002:3:103"},"nodeType":"YulFunctionCall","src":"10002:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9994:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3c31b8742a47ea96bb8a5dda4954f2d206e7ddf3e59e186c3dda9736791081f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9774:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9788:4:103","type":""}],"src":"9623:404:103"},{"body":{"nodeType":"YulBlock","src":"10206:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10223:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10234:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10216:6:103"},"nodeType":"YulFunctionCall","src":"10216:21:103"},"nodeType":"YulExpressionStatement","src":"10216:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10257:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10268:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10253:3:103"},"nodeType":"YulFunctionCall","src":"10253:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10273:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10246:6:103"},"nodeType":"YulFunctionCall","src":"10246:30:103"},"nodeType":"YulExpressionStatement","src":"10246:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10296:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10307:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10292:3:103"},"nodeType":"YulFunctionCall","src":"10292:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10312:34:103","type":"","value":"ERROR:RPS-010:BUNDLE_CLOSED_OR_B"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10285:6:103"},"nodeType":"YulFunctionCall","src":"10285:62:103"},"nodeType":"YulExpressionStatement","src":"10285:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10367:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10378:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10363:3:103"},"nodeType":"YulFunctionCall","src":"10363:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10383:7:103","type":"","value":"URNED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10356:6:103"},"nodeType":"YulFunctionCall","src":"10356:35:103"},"nodeType":"YulExpressionStatement","src":"10356:35:103"},{"nodeType":"YulAssignment","src":"10400:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10412:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10423:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10408:3:103"},"nodeType":"YulFunctionCall","src":"10408:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10400:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_578b4367808291b575492ac361c0e3d01cfd1dc40e85f0622444de502d7a0138__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10183:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10197:4:103","type":""}],"src":"10032:401:103"},{"body":{"nodeType":"YulBlock","src":"10612:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10629:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10640:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10622:6:103"},"nodeType":"YulFunctionCall","src":"10622:21:103"},"nodeType":"YulExpressionStatement","src":"10622:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10663:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10674:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10659:3:103"},"nodeType":"YulFunctionCall","src":"10659:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10679:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10652:6:103"},"nodeType":"YulFunctionCall","src":"10652:30:103"},"nodeType":"YulExpressionStatement","src":"10652:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10702:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10713:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10698:3:103"},"nodeType":"YulFunctionCall","src":"10698:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10718:34:103","type":"","value":"ERROR:RPS-009:RISKPOOL_NOT_ACTIV"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10691:6:103"},"nodeType":"YulFunctionCall","src":"10691:62:103"},"nodeType":"YulExpressionStatement","src":"10691:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10784:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10769:3:103"},"nodeType":"YulFunctionCall","src":"10769:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10789:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10762:6:103"},"nodeType":"YulFunctionCall","src":"10762:31:103"},"nodeType":"YulExpressionStatement","src":"10762:31:103"},{"nodeType":"YulAssignment","src":"10802:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10825:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10810:3:103"},"nodeType":"YulFunctionCall","src":"10810:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10802:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5997ac91a2b36c0c5a522febf3408a4cfa08d11c8d231513f8127518fd86198f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10589:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10603:4:103","type":""}],"src":"10438:397:103"},{"body":{"nodeType":"YulBlock","src":"11014:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11031:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11042:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11024:6:103"},"nodeType":"YulFunctionCall","src":"11024:21:103"},"nodeType":"YulExpressionStatement","src":"11024:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11065:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11076:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11061:3:103"},"nodeType":"YulFunctionCall","src":"11061:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11081:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11054:6:103"},"nodeType":"YulFunctionCall","src":"11054:30:103"},"nodeType":"YulExpressionStatement","src":"11054:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11104:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11115:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11100:3:103"},"nodeType":"YulFunctionCall","src":"11100:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11120:34:103","type":"","value":"ERROR:RPS-004:RISKPOOL_NOT_ACTIV"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11093:6:103"},"nodeType":"YulFunctionCall","src":"11093:62:103"},"nodeType":"YulExpressionStatement","src":"11093:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11186:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11171:3:103"},"nodeType":"YulFunctionCall","src":"11171:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11191:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11164:6:103"},"nodeType":"YulFunctionCall","src":"11164:31:103"},"nodeType":"YulExpressionStatement","src":"11164:31:103"},{"nodeType":"YulAssignment","src":"11204:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11227:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11212:3:103"},"nodeType":"YulFunctionCall","src":"11212:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11204:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6aeeb671cb04d5a48d011c2b888ef50bedbd1cccc4d6e15aa35591a7f0d67c8d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10991:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11005:4:103","type":""}],"src":"10840:397:103"},{"body":{"nodeType":"YulBlock","src":"11416:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11444:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11426:6:103"},"nodeType":"YulFunctionCall","src":"11426:21:103"},"nodeType":"YulExpressionStatement","src":"11426:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11467:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11478:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11463:3:103"},"nodeType":"YulFunctionCall","src":"11463:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11483:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11456:6:103"},"nodeType":"YulFunctionCall","src":"11456:30:103"},"nodeType":"YulExpressionStatement","src":"11456:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11506:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11517:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11502:3:103"},"nodeType":"YulFunctionCall","src":"11502:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11522:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11495:6:103"},"nodeType":"YulFunctionCall","src":"11495:62:103"},"nodeType":"YulExpressionStatement","src":"11495:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11577:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11588:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11573:3:103"},"nodeType":"YulFunctionCall","src":"11573:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11593:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11566:6:103"},"nodeType":"YulFunctionCall","src":"11566:44:103"},"nodeType":"YulExpressionStatement","src":"11566:44:103"},{"nodeType":"YulAssignment","src":"11619:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11642:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11627:3:103"},"nodeType":"YulFunctionCall","src":"11627:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11619:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11393:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11407:4:103","type":""}],"src":"11242:410:103"},{"body":{"nodeType":"YulBlock","src":"11831:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11848:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11859:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11841:6:103"},"nodeType":"YulFunctionCall","src":"11841:21:103"},"nodeType":"YulExpressionStatement","src":"11841:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11882:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11893:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11878:3:103"},"nodeType":"YulFunctionCall","src":"11878:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11898:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11871:6:103"},"nodeType":"YulFunctionCall","src":"11871:30:103"},"nodeType":"YulExpressionStatement","src":"11871:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11921:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11932:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11917:3:103"},"nodeType":"YulFunctionCall","src":"11917:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11937:34:103","type":"","value":"ERROR:RPS-007:RISKPOOL_NOT_ACTIV"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11910:6:103"},"nodeType":"YulFunctionCall","src":"11910:62:103"},"nodeType":"YulExpressionStatement","src":"11910:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12003:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11988:3:103"},"nodeType":"YulFunctionCall","src":"11988:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12008:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11981:6:103"},"nodeType":"YulFunctionCall","src":"11981:31:103"},"nodeType":"YulExpressionStatement","src":"11981:31:103"},{"nodeType":"YulAssignment","src":"12021:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12033:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12044:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12029:3:103"},"nodeType":"YulFunctionCall","src":"12029:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12021:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_82c4beee20530787664c8ead0427e62fb92780c18734e94848452ff578617680__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11808:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11822:4:103","type":""}],"src":"11657:397:103"},{"body":{"nodeType":"YulBlock","src":"12233:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12261:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12243:6:103"},"nodeType":"YulFunctionCall","src":"12243:21:103"},"nodeType":"YulExpressionStatement","src":"12243:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12284:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12295:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12280:3:103"},"nodeType":"YulFunctionCall","src":"12280:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12300:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12273:6:103"},"nodeType":"YulFunctionCall","src":"12273:30:103"},"nodeType":"YulExpressionStatement","src":"12273:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12323:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12334:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12319:3:103"},"nodeType":"YulFunctionCall","src":"12319:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12339:34:103","type":"","value":"ERROR:RPS-006:BUNDLE_RISKPOOL_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12312:6:103"},"nodeType":"YulFunctionCall","src":"12312:62:103"},"nodeType":"YulExpressionStatement","src":"12312:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12394:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12405:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12390:3:103"},"nodeType":"YulFunctionCall","src":"12390:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12410:8:103","type":"","value":"SMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12383:6:103"},"nodeType":"YulFunctionCall","src":"12383:36:103"},"nodeType":"YulExpressionStatement","src":"12383:36:103"},{"nodeType":"YulAssignment","src":"12428:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12451:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12436:3:103"},"nodeType":"YulFunctionCall","src":"12436:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12428:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_855b2be9e098fb1f219f436687f12dd85abab2ace616e4294e271e6704a1c399__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12210:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12224:4:103","type":""}],"src":"12059:402:103"},{"body":{"nodeType":"YulBlock","src":"12640:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12657:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12668:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12650:6:103"},"nodeType":"YulFunctionCall","src":"12650:21:103"},"nodeType":"YulExpressionStatement","src":"12650:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12691:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12702:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12687:3:103"},"nodeType":"YulFunctionCall","src":"12687:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12707:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12680:6:103"},"nodeType":"YulFunctionCall","src":"12680:30:103"},"nodeType":"YulExpressionStatement","src":"12680:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12730:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12741:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12726:3:103"},"nodeType":"YulFunctionCall","src":"12726:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12746:34:103","type":"","value":"ERROR:RPS-001:SENDER_NOT_RISKPOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12719:6:103"},"nodeType":"YulFunctionCall","src":"12719:62:103"},"nodeType":"YulExpressionStatement","src":"12719:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12801:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12812:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12797:3:103"},"nodeType":"YulFunctionCall","src":"12797:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12817:3:103","type":"","value":"L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12790:6:103"},"nodeType":"YulFunctionCall","src":"12790:31:103"},"nodeType":"YulExpressionStatement","src":"12790:31:103"},{"nodeType":"YulAssignment","src":"12830:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12842:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12853:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12838:3:103"},"nodeType":"YulFunctionCall","src":"12838:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12830:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ae48b1a9c680c35d2a9f667f2fed37c9f73ddafd56231c776d44d9e8be57b7c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12617:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12631:4:103","type":""}],"src":"12466:397:103"},{"body":{"nodeType":"YulBlock","src":"13042:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13059:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13070:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13052:6:103"},"nodeType":"YulFunctionCall","src":"13052:21:103"},"nodeType":"YulExpressionStatement","src":"13052:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13093:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13104:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13089:3:103"},"nodeType":"YulFunctionCall","src":"13089:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13109:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13082:6:103"},"nodeType":"YulFunctionCall","src":"13082:30:103"},"nodeType":"YulExpressionStatement","src":"13082:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13132:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13143:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13128:3:103"},"nodeType":"YulFunctionCall","src":"13128:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13148:34:103","type":"","value":"ERROR:RPS-003:SENDER_NOT_RISKPOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13121:6:103"},"nodeType":"YulFunctionCall","src":"13121:62:103"},"nodeType":"YulExpressionStatement","src":"13121:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13203:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13214:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13199:3:103"},"nodeType":"YulFunctionCall","src":"13199:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13219:3:103","type":"","value":"L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13192:6:103"},"nodeType":"YulFunctionCall","src":"13192:31:103"},"nodeType":"YulExpressionStatement","src":"13192:31:103"},{"nodeType":"YulAssignment","src":"13232:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13244:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13255:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13240:3:103"},"nodeType":"YulFunctionCall","src":"13240:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13232:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d0cf53bcac0823b95001502ace6e4a3ba31149781e27fb2df5d3fca0a348d9e0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13019:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13033:4:103","type":""}],"src":"12868:397:103"},{"body":{"nodeType":"YulBlock","src":"13444:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13461:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13472:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13454:6:103"},"nodeType":"YulFunctionCall","src":"13454:21:103"},"nodeType":"YulExpressionStatement","src":"13454:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13495:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13506:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13491:3:103"},"nodeType":"YulFunctionCall","src":"13491:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13511:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13484:6:103"},"nodeType":"YulFunctionCall","src":"13484:30:103"},"nodeType":"YulExpressionStatement","src":"13484:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13534:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13545:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13530:3:103"},"nodeType":"YulFunctionCall","src":"13530:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13550:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13523:6:103"},"nodeType":"YulFunctionCall","src":"13523:62:103"},"nodeType":"YulExpressionStatement","src":"13523:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13616:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13601:3:103"},"nodeType":"YulFunctionCall","src":"13601:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13621:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13594:6:103"},"nodeType":"YulFunctionCall","src":"13594:41:103"},"nodeType":"YulExpressionStatement","src":"13594:41:103"},{"nodeType":"YulAssignment","src":"13644:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13656:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13667:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13652:3:103"},"nodeType":"YulFunctionCall","src":"13652:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13644:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13421:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13435:4:103","type":""}],"src":"13270:407:103"},{"body":{"nodeType":"YulBlock","src":"13856:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13873:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13884:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13866:6:103"},"nodeType":"YulFunctionCall","src":"13866:21:103"},"nodeType":"YulExpressionStatement","src":"13866:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13918:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13903:3:103"},"nodeType":"YulFunctionCall","src":"13903:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13923:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13896:6:103"},"nodeType":"YulFunctionCall","src":"13896:30:103"},"nodeType":"YulExpressionStatement","src":"13896:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13946:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13957:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13942:3:103"},"nodeType":"YulFunctionCall","src":"13942:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13962:29:103","type":"","value":"ERROR:RPS-011:BUNDLE_BURNED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13935:6:103"},"nodeType":"YulFunctionCall","src":"13935:57:103"},"nodeType":"YulExpressionStatement","src":"13935:57:103"},{"nodeType":"YulAssignment","src":"14001:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14024:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14009:3:103"},"nodeType":"YulFunctionCall","src":"14009:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14001:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e1f2a051d0acedf2156c1900d0e6d10c218e8acd8875eeacadd2cd00fdd5a714__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13833:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13847:4:103","type":""}],"src":"13682:351:103"},{"body":{"nodeType":"YulBlock","src":"14139:76:103","statements":[{"nodeType":"YulAssignment","src":"14149:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14172:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14157:3:103"},"nodeType":"YulFunctionCall","src":"14157:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14149:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14191:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14202:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14184:6:103"},"nodeType":"YulFunctionCall","src":"14184:25:103"},"nodeType":"YulExpressionStatement","src":"14184:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14108:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14119:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14130:4:103","type":""}],"src":"14038:177:103"},{"body":{"nodeType":"YulBlock","src":"14433:306:103","statements":[{"nodeType":"YulAssignment","src":"14443:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14455:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14466:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14451:3:103"},"nodeType":"YulFunctionCall","src":"14451:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14443:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14486:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14497:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14479:6:103"},"nodeType":"YulFunctionCall","src":"14479:25:103"},"nodeType":"YulExpressionStatement","src":"14479:25:103"},{"nodeType":"YulVariableDeclaration","src":"14513:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14531:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14536:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14527:3:103"},"nodeType":"YulFunctionCall","src":"14527:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14540:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14523:3:103"},"nodeType":"YulFunctionCall","src":"14523:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14517:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14562:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14573:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14558:3:103"},"nodeType":"YulFunctionCall","src":"14558:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14582:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"14590:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14578:3:103"},"nodeType":"YulFunctionCall","src":"14578:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14551:6:103"},"nodeType":"YulFunctionCall","src":"14551:43:103"},"nodeType":"YulExpressionStatement","src":"14551:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14614:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14625:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14610:3:103"},"nodeType":"YulFunctionCall","src":"14610:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"14634:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"14642:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14630:3:103"},"nodeType":"YulFunctionCall","src":"14630:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14603:6:103"},"nodeType":"YulFunctionCall","src":"14603:43:103"},"nodeType":"YulExpressionStatement","src":"14603:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14666:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14677:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14662:3:103"},"nodeType":"YulFunctionCall","src":"14662:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"14682:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14655:6:103"},"nodeType":"YulFunctionCall","src":"14655:34:103"},"nodeType":"YulExpressionStatement","src":"14655:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14720:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14705:3:103"},"nodeType":"YulFunctionCall","src":"14705:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"14726:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14698:6:103"},"nodeType":"YulFunctionCall","src":"14698:35:103"},"nodeType":"YulExpressionStatement","src":"14698:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14370:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14381:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14389:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14397:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14405:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14413:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14424:4:103","type":""}],"src":"14220:519:103"},{"body":{"nodeType":"YulBlock","src":"14873:119:103","statements":[{"nodeType":"YulAssignment","src":"14883:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14895:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14906:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14891:3:103"},"nodeType":"YulFunctionCall","src":"14891:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14883:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14925:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14936:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14918:6:103"},"nodeType":"YulFunctionCall","src":"14918:25:103"},"nodeType":"YulExpressionStatement","src":"14918:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14963:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14974:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14959:3:103"},"nodeType":"YulFunctionCall","src":"14959:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14979:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14952:6:103"},"nodeType":"YulFunctionCall","src":"14952:34:103"},"nodeType":"YulExpressionStatement","src":"14952:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14834:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14845:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14853:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14864:4:103","type":""}],"src":"14744:248:103"},{"body":{"nodeType":"YulBlock","src":"15154:162:103","statements":[{"nodeType":"YulAssignment","src":"15164:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15176:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15187:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15172:3:103"},"nodeType":"YulFunctionCall","src":"15172:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15164:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15206:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15217:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15199:6:103"},"nodeType":"YulFunctionCall","src":"15199:25:103"},"nodeType":"YulExpressionStatement","src":"15199:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15244:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15255:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15240:3:103"},"nodeType":"YulFunctionCall","src":"15240:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"15260:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15233:6:103"},"nodeType":"YulFunctionCall","src":"15233:34:103"},"nodeType":"YulExpressionStatement","src":"15233:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15287:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15298:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15283:3:103"},"nodeType":"YulFunctionCall","src":"15283:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"15303:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15276:6:103"},"nodeType":"YulFunctionCall","src":"15276:34:103"},"nodeType":"YulExpressionStatement","src":"15276:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15107:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15118:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15126:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15134:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15145:4:103","type":""}],"src":"14997:319:103"},{"body":{"nodeType":"YulBlock","src":"15450:119:103","statements":[{"nodeType":"YulAssignment","src":"15460:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15472:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15483:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15468:3:103"},"nodeType":"YulFunctionCall","src":"15468:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15460:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15502:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15513:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15495:6:103"},"nodeType":"YulFunctionCall","src":"15495:25:103"},"nodeType":"YulExpressionStatement","src":"15495:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15540:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15551:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15536:3:103"},"nodeType":"YulFunctionCall","src":"15536:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"15556:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15529:6:103"},"nodeType":"YulFunctionCall","src":"15529:34:103"},"nodeType":"YulExpressionStatement","src":"15529:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15411:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15422:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15430:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15441:4:103","type":""}],"src":"15321:248:103"},{"body":{"nodeType":"YulBlock","src":"15619:230:103","statements":[{"nodeType":"YulAssignment","src":"15629:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15645:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15639:5:103"},"nodeType":"YulFunctionCall","src":"15639:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"15629:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"15657:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"15679:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"15695:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"15701:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15691:3:103"},"nodeType":"YulFunctionCall","src":"15691:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15710:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15706:3:103"},"nodeType":"YulFunctionCall","src":"15706:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15687:3:103"},"nodeType":"YulFunctionCall","src":"15687:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15675:3:103"},"nodeType":"YulFunctionCall","src":"15675:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"15661:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"15790:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"15792:16:103"},"nodeType":"YulFunctionCall","src":"15792:18:103"},"nodeType":"YulExpressionStatement","src":"15792:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15733:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"15745:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15730:2:103"},"nodeType":"YulFunctionCall","src":"15730:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15769:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"15781:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15766:2:103"},"nodeType":"YulFunctionCall","src":"15766:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"15727:2:103"},"nodeType":"YulFunctionCall","src":"15727:62:103"},"nodeType":"YulIf","src":"15724:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15828:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15832:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15821:6:103"},"nodeType":"YulFunctionCall","src":"15821:22:103"},"nodeType":"YulExpressionStatement","src":"15821:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"15599:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"15608:6:103","type":""}],"src":"15574:275:103"},{"body":{"nodeType":"YulBlock","src":"15886:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15903:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15910:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15915:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15906:3:103"},"nodeType":"YulFunctionCall","src":"15906:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15896:6:103"},"nodeType":"YulFunctionCall","src":"15896:31:103"},"nodeType":"YulExpressionStatement","src":"15896:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15943:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15946:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15936:6:103"},"nodeType":"YulFunctionCall","src":"15936:15:103"},"nodeType":"YulExpressionStatement","src":"15936:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15967:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15970:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15960:6:103"},"nodeType":"YulFunctionCall","src":"15960:15:103"},"nodeType":"YulExpressionStatement","src":"15960:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"15854:127:103"},{"body":{"nodeType":"YulBlock","src":"16031:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"16095:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16104:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16107:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16097:6:103"},"nodeType":"YulFunctionCall","src":"16097:12:103"},"nodeType":"YulExpressionStatement","src":"16097:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16054:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16065:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16080:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16085:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16076:3:103"},"nodeType":"YulFunctionCall","src":"16076:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"16089:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16072:3:103"},"nodeType":"YulFunctionCall","src":"16072:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16061:3:103"},"nodeType":"YulFunctionCall","src":"16061:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"16051:2:103"},"nodeType":"YulFunctionCall","src":"16051:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16044:6:103"},"nodeType":"YulFunctionCall","src":"16044:50:103"},"nodeType":"YulIf","src":"16041:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"16020:5:103","type":""}],"src":"15986:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let _2 := 0x20\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), _2))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), _2), end) { revert(array, array) }\n let i := array\n for { } lt(i, _1) { i := add(i, _2) }\n {\n mstore(add(add(array_1, i), _2), mload(add(add(offset, i), _2)))\n }\n if gt(i, _1)\n {\n mstore(add(add(array_1, _1), _2), array)\n }\n array := array_1\n }\n function abi_decode_enum_BundleState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_addresst_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value1, value1) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value1, value1) }\n value1 := add(_2, 32)\n value2 := length\n value3 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_enum$_BundleState_$4914_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_enum_BundleState_fromMemory(headStart)\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 3)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_BundleState_fromMemory(add(_2, 96)))\n let offset_1 := mload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), mload(add(_2, 160)))\n mstore(add(value, 192), mload(add(_2, 192)))\n mstore(add(value, 224), mload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), mload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), mload(add(_2, _5)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_rational_0_by_1__to_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 128)\n mstore(add(headStart, 128), value3)\n calldatacopy(add(headStart, 160), value2, value3)\n mstore(add(add(headStart, value3), 160), tail)\n tail := add(add(headStart, and(add(value3, 31), not(31))), 160)\n mstore(add(headStart, 96), value4)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_0c96a51f00cf9612773d15d17720eae05a0f2c52cc3d14d5ed17e37cdf11d67e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:RPS-002:RISKPOOL_NOT_PROPO\")\n mstore(add(headStart, 96), \"SED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_258a3c9af06bd81d9eb902a8f510faf45f4bdbbc4357a4c707327ecc2c7180b8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:RPS-013:UNEXPECTED_FEE_SUB\")\n mstore(add(headStart, 96), \"TRACTION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_309fb80389ae2cf275d3bd06f653b63b4bb0fb9d9ee3e0d9b947706f44385d1f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-005:SENDER_NOT_RISKPOO\")\n mstore(add(headStart, 96), \"L\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_386d499e9b35cf070593adbf1e04c00337097d278207b271aae54ef291324f75__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:RPS-020:BUNDLE_NOT_CLOSED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3c31b8742a47ea96bb8a5dda4954f2d206e7ddf3e59e186c3dda9736791081f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:RPS-008:SENDER_NOT_OWNING_\")\n mstore(add(headStart, 96), \"RISKPOOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_578b4367808291b575492ac361c0e3d01cfd1dc40e85f0622444de502d7a0138__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:RPS-010:BUNDLE_CLOSED_OR_B\")\n mstore(add(headStart, 96), \"URNED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5997ac91a2b36c0c5a522febf3408a4cfa08d11c8d231513f8127518fd86198f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-009:RISKPOOL_NOT_ACTIV\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6aeeb671cb04d5a48d011c2b888ef50bedbd1cccc4d6e15aa35591a7f0d67c8d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-004:RISKPOOL_NOT_ACTIV\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_82c4beee20530787664c8ead0427e62fb92780c18734e94848452ff578617680__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-007:RISKPOOL_NOT_ACTIV\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_855b2be9e098fb1f219f436687f12dd85abab2ace616e4294e271e6704a1c399__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:RPS-006:BUNDLE_RISKPOOL_MI\")\n mstore(add(headStart, 96), \"SMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ae48b1a9c680c35d2a9f667f2fed37c9f73ddafd56231c776d44d9e8be57b7c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-001:SENDER_NOT_RISKPOO\")\n mstore(add(headStart, 96), \"L\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d0cf53bcac0823b95001502ace6e4a3ba31149781e27fb2df5d3fca0a348d9e0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-003:SENDER_NOT_RISKPOO\")\n mstore(add(headStart, 96), \"L\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e1f2a051d0acedf2156c1900d0e6d10c218e8acd8875eeacadd2cd00fdd5a714__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:RPS-011:BUNDLE_BURNED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100f55760003560e01c806389002da511610097578063b726742011610066578063b7267420146101de578063bb540df6146101f1578063bf2e354614610204578063c4d66de814610217576100f5565b806389002da5146101925780638c483e5a146101a5578063a17030d5146101b8578063b299cc26146101cb576100f5565b8063316c5348116100d3578063316c53481461014657806336153f3a146101595780634d03f9b71461016c578063587e59d01461017f576100f5565b806304f5f96e146100fa57806315fc1e741461011e5780632127fd4814610131575b600080fd5b61010c67149a5cdadc1bdbdb60c21b81565b60405190815260200160405180910390f35b61010c61012c366004613b9d565b61022a565b61014461013f366004613d7f565b61078a565b005b610144610154366004613d4f565b610a8c565b61010c610167366004613d7f565b610ea5565b61014461017a366004613da0565b611419565b61014461018d366004613d4f565b611749565b61010c6101a0366004613d7f565b611cbf565b6101446101b3366004613d4f565b6121d8565b6101446101c6366004613d4f565b612657565b6101446101d9366004613da0565b612a3a565b6101446101ec366004613da0565b612d32565b61010c6101ff366004613d7f565b61302a565b610144610212366004613b58565b613375565b610144610225366004613b19565b6136ca565b60025460009081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561028057600080fd5b505afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156102ff57600080fd5b505afa158015610313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103379190613c5c565b600281111561035657634e487b7160e01b600052602160045260246000fd5b146103b25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030333a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084015b60405180910390fd5b600254604051635e966e4560e01b8152600481018390526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156103f757600080fd5b505afa15801561040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042f9190613c3d565b600681111561044e57634e487b7160e01b600052602160045260246000fd5b146104a55760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030343a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156104f957600080fd5b505afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190613d67565b600354604051633039c50160e21b81529192506001600160a01b03169063c0e714049061056b908a9085908b908b90600090600401613dee565b602060405180830381600087803b15801561058557600080fd5b505af1158015610599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bd9190613d67565b60048054604051626a03dd60e91b81529295506001600160a01b03169163d407ba00916105f7918591889101918252602082015260400190565b600060405180830381600087803b15801561061157600080fd5b505af1158015610625573d6000803e3d6000fd5b505060055460405163136f5ed560e11b81526004810187905260248101889052600093508392506001600160a01b03909116906326debdaa906044016040805180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190613dcb565b60035460405163a65e2cfd60e01b815260048101899052602481018390529294509092506001600160a01b03169063a65e2cfd90604401600060405180830381600087803b15801561070357600080fd5b505af1158015610717573d6000803e3d6000fd5b50506004805460405163a65e2cfd60e01b8152918201879052602482018590526001600160a01b0316925063a65e2cfd9150604401600060405180830381600087803b15801561076657600080fd5b505af115801561077a573d6000803e3d6000fd5b5050505050505050949350505050565b60025482906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156107e357600080fd5b505afa1580156107f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081b9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c9190613c5c565b60028111156108bb57634e487b7160e01b600052602160045260246000fd5b1490508080156108ca57508382145b6109275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3030383a53454e4445525f4e4f545f4f574e494e475f604482015267149254d2d413d3d360c21b60648201526084016103a9565b8215610a2057600254604051635e966e4560e01b8152600481018490526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa9190613c3d565b60068111156109c957634e487b7160e01b600052602160045260246000fd5b14610a205760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030393a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b60048054604051630424ffa960e31b8152918201889052602482018790526001600160a01b031690632127fd48906044015b600060405180830381600087803b158015610a6c57600080fd5b505af1158015610a80573d6000803e3d6000fd5b50505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ae557600080fd5b505afa158015610af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1d9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610b6657600080fd5b505afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190613c5c565b6002811115610bbd57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c449190810190613c7b565b905081610c635760405162461bcd60e51b81526004016103a990613e3f565b80602001518314610c865760405162461bcd60e51b81526004016103a990613ec1565b8315610d4557600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d099190613c3d565b6006811115610d2857634e487b7160e01b600052602160045260246000fd5b14610d455760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610d9957600080fd5b505afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190613d67565b60048054604051626a03dd60e91b81529293506001600160a01b03169163d407ba0091610e0b9185918c9101918252602082015260400190565b600060405180830381600087803b158015610e2557600080fd5b505af1158015610e39573d6000803e3d6000fd5b5050600354604051636198e33960e01b8152600481018b90526001600160a01b039091169250636198e33991506024015b600060405180830381600087803b158015610e8457600080fd5b505af1158015610e98573d6000803e3d6000fd5b5050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f389190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190613c5c565b6002811115610fd857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561102357600080fd5b505afa158015611037573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261105f9190810190613c7b565b90508161107e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146110a15760405162461bcd60e51b81526004016103a990613ec1565b831561116057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156110ec57600080fd5b505afa158015611100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111249190613c3d565b600681111561114357634e487b7160e01b600052602160045260246000fd5b146111605760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156111a557600080fd5b505afa1580156111b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111e19190810190613c7b565b905060038160600151600381111561120957634e487b7160e01b600052602160045260246000fd5b14156112575760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5250532d3031313a42554e444c455f4255524e4544000000000060448201526064016103a9565b60055460405163d935807560e01b8152600481018b9052602481018a90526000916001600160a01b03169063d9358075906044016040805180830381600087803b1580156112a457600080fd5b505af11580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190613dcb565b985090508888146113405760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3031333a554e45585045435445445f4645455f5355426044820152672a2920a1aa24a7a760c11b60648201526084016103a9565b60035460405163c397ae3960e01b8152600481018c9052602481018b90526001600160a01b039091169063c397ae3990604401600060405180830381600087803b15801561138d57600080fd5b505af11580156113a1573d6000803e3d6000fd5b505060048054602086015160405163c397ae3960e01b815292830152602482018c90526001600160a01b0316925063c397ae3991506044015b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050505050505050505092915050565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561147257600080fd5b505afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156114f357600080fd5b505afa158015611507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152b9190613c5c565b600281111561154a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561159557600080fd5b505afa1580156115a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115d19190810190613c7b565b9050816115f05760405162461bcd60e51b81526004016103a990613e3f565b806020015183146116135760405162461bcd60e51b81526004016103a990613ec1565b83156116d257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561165e57600080fd5b505afa158015611672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116969190613c3d565b60068111156116b557634e487b7160e01b600052602160045260246000fd5b146116d25760405162461bcd60e51b81526004016103a990613e80565b600354604051634d03f9b760e01b8152600481018a905260248101899052604481018890526001600160a01b0390911690634d03f9b7906064015b600060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b505050505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156117a257600080fd5b505afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b9190613c5c565b600281111561187a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156118c557600080fd5b505afa1580156118d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119019190810190613c7b565b9050816119205760405162461bcd60e51b81526004016103a990613e3f565b806020015183146119435760405162461bcd60e51b81526004016103a990613ec1565b8315611a0257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561198e57600080fd5b505afa1580156119a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c69190613c3d565b60068111156119e557634e487b7160e01b600052602160045260246000fd5b14611a025760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a839190810190613c7b565b9050600281606001516003811115611aab57634e487b7160e01b600052602160045260246000fd5b14611af85760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5250532d3032303a42554e444c455f4e4f545f434c4f5345440060448201526064016103a9565b60055460e082015160405163d935807560e01b8152600481018a9052602481019190915260009182916001600160a01b039091169063d9358075906044016040805180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b879190613dcb565b60035460405163c397ae3960e01b8152600481018d9052602481018390529294509092506001600160a01b03169063c397ae3990604401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505060048054602087015160405163c397ae3960e01b815292830152602482018590526001600160a01b0316925063c397ae399150604401600060405180830381600087803b158015611c3e57600080fd5b505af1158015611c52573d6000803e3d6000fd5b5050600354604051630852cd8d60e31b8152600481018d90526001600160a01b0390911692506342966c689150602401600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b50505050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015611d1a57600080fd5b505afa158015611d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d529190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd39190613c5c565b6002811115611df257634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611e3d57600080fd5b505afa158015611e51573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e799190810190613c7b565b905081611e985760405162461bcd60e51b81526004016103a990613e3f565b80602001518314611ebb5760405162461bcd60e51b81526004016103a990613ec1565b8315611f7a57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e9190613c3d565b6006811115611f5d57634e487b7160e01b600052602160045260246000fd5b14611f7a5760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611fbf57600080fd5b505afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb9190810190613c7b565b905060028160600151600381111561202357634e487b7160e01b600052602160045260246000fd5b14158015612055575060038160600151600381111561205257634e487b7160e01b600052602160045260246000fd5b14155b6120af5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5250532d3031303a42554e444c455f434c4f5345445f4f525f42604482015264155493915160da1b60648201526084016103a9565b60055460405163136f5ed560e11b8152600481018b9052602481018a90526000916001600160a01b0316906326debdaa906044016040805180830381600087803b1580156120fc57600080fd5b505af1158015612110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121349190613dcb565b60035460405163a65e2cfd60e01b8152600481018e905260248101839052919a509192506001600160a01b039091169063a65e2cfd90604401600060405180830381600087803b15801561218757600080fd5b505af115801561219b573d6000803e3d6000fd5b505060048054602086015160405163a65e2cfd60e01b815292830152602482018c90526001600160a01b0316925063a65e2cfd91506044016113da565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561223157600080fd5b505afa158015612245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122699190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156122b257600080fd5b505afa1580156122c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ea9190613c5c565b600281111561230957634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561235457600080fd5b505afa158015612368573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123909190810190613c7b565b9050816123af5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146123d25760405162461bcd60e51b81526004016103a990613ec1565b831561249157600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190613c3d565b600681111561247457634e487b7160e01b600052602160045260246000fd5b146124915760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156124e557600080fd5b505afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190613d67565b9050600060035460405163089935e560e31b8152600481018a90526001600160a01b03909116906344c9af289060240160206040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d9190613c23565b60038111156125bc57634e487b7160e01b600052602160045260246000fd5b1415612626576004805460405163950be80360e01b8152918201839052602482018990526001600160a01b03169063950be80390604401600060405180830381600087803b15801561260d57600080fd5b505af1158015612621573d6000803e3d6000fd5b505050505b600354604051630575f5a760e11b8152600481018990526001600160a01b0390911690630aebeb4e90602401610e6a565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156126b057600080fd5b505afa1580156126c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e89190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561273157600080fd5b505afa158015612745573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127699190613c5c565b600281111561278857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156127d357600080fd5b505afa1580156127e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261280f9190810190613c7b565b90508161282e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146128515760405162461bcd60e51b81526004016103a990613ec1565b831561291057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561289c57600080fd5b505afa1580156128b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d49190613c3d565b60068111156128f357634e487b7160e01b600052602160045260246000fd5b146129105760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561296457600080fd5b505afa158015612978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299c9190613d67565b6004805460405163950be80360e01b81529293506001600160a01b03169163950be803916129d79185918c9101918252602082015260400190565b600060405180830381600087803b1580156129f157600080fd5b505af1158015612a05573d6000803e3d6000fd5b50506003546040516337519c1960e21b8152600481018b90526001600160a01b03909116925063dd4670649150602401610e6a565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612a9357600080fd5b505afa158015612aa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acb9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612b1457600080fd5b505afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4c9190613c5c565b6002811115612b6b57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612bb657600080fd5b505afa158015612bca573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bf29190810190613c7b565b905081612c115760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612c345760405162461bcd60e51b81526004016103a990613ec1565b8315612cf357600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612c7f57600080fd5b505afa158015612c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb79190613c3d565b6006811115612cd657634e487b7160e01b600052602160045260246000fd5b14612cf35760405162461bcd60e51b81526004016103a990613e80565b60035460405163594ce61360e11b8152600481018a905260248101899052604481018890526001600160a01b039091169063b299cc269060640161170d565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612d8b57600080fd5b505afa158015612d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc39190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612e0c57600080fd5b505afa158015612e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e449190613c5c565b6002811115612e6357634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612eae57600080fd5b505afa158015612ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612eea9190810190613c7b565b905081612f095760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612f2c5760405162461bcd60e51b81526004016103a990613ec1565b8315612feb57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612f7757600080fd5b505afa158015612f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612faf9190613c3d565b6006811115612fce57634e487b7160e01b600052602160045260246000fd5b14612feb5760405162461bcd60e51b81526004016103a990613e80565b6003546040516305b933a160e51b8152600481018a905260248101899052604481018890526001600160a01b039091169063b72674209060640161170d565b6002546000908390829081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561308457600080fd5b505afa158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561310557600080fd5b505afa158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d9190613c5c565b600281111561315c57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156131a757600080fd5b505afa1580156131bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131e39190810190613c7b565b9050816132025760405162461bcd60e51b81526004016103a990613e3f565b806020015183146132255760405162461bcd60e51b81526004016103a990613ec1565b83156132e457600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561327057600080fd5b505afa158015613284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a89190613c3d565b60068111156132c757634e487b7160e01b600052602160045260246000fd5b146132e45760405162461bcd60e51b81526004016103a990613e80565b600354604051635daa06fb60e11b8152600481018a9052602481018990526001600160a01b039091169063bb540df690604401602060405180830381600087803b15801561333157600080fd5b505af1158015613345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133699190613d67565b98975050505050505050565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156133c957600080fd5b505afa1580156133dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134019190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134809190613c5c565b600281111561349f57634e487b7160e01b600052602160045260246000fd5b146134f65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030313a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084016103a9565b600254604051635e966e4560e01b8152600481018390526001916001600160a01b031690635e966e459060240160206040518083038186803b15801561353b57600080fd5b505afa15801561354f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135739190613c3d565b600681111561359257634e487b7160e01b600052602160045260246000fd5b146135eb5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5250532d3030323a5249534b504f4f4c5f4e4f545f50524f504f60448201526214d15160ea1b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561363f57600080fd5b505afa158015613653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136779190613d67565b600480546040516357419e8f60e01b81529182018390526001600160a01b0389811660248401528881166044840152606483018890526084830187905292935091909116906357419e8f9060a401610a52565b600054610100900460ff16158080156136ea5750600054600160ff909116105b8061370b57506136f93061384f565b15801561370b575060005460ff166001145b61376e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a9565b6000805460ff191660011790558015613791576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556137bb600090565b6541636365737360d01b146137fd576137dc6541636365737360d01b613862565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61380561394a565b801561384b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156138ac57600080fd5b505afa1580156138c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e49190613b3c565b90506001600160a01b03811661385d5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166139b55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b6139c76542756e646c6560d01b613862565b600380546001600160a01b0319166001600160a01b03929092169190911790556139fc6810dbdb5c1bdb995b9d60ba1b613862565b600280546001600160a01b0319166001600160a01b0392909216919091179055613a2c63141bdbdb60e21b613862565b600480546001600160a01b0319166001600160a01b0392909216919091179055613a6067547265617375727960c01b613862565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b600082601f830112613a92578081fd5b815167ffffffffffffffff811115613aac57613aac613f38565b6020613ac0601f8301601f19168201613f07565b8281528582848701011115613ad3578384fd5b835b83811015613af0578581018301518282018401528201613ad5565b83811115613b0057848385840101525b5095945050505050565b80516004811061385d57600080fd5b600060208284031215613b2a578081fd5b8135613b3581613f4e565b9392505050565b600060208284031215613b4d578081fd5b8151613b3581613f4e565b60008060008060808587031215613b6d578283fd5b8435613b7881613f4e565b93506020850135613b8881613f4e565b93969395505050506040820135916060013590565b60008060008060608587031215613bb2578384fd5b8435613bbd81613f4e565b9350602085013567ffffffffffffffff80821115613bd9578485fd5b818701915087601f830112613bec578485fd5b813581811115613bfa578586fd5b886020828501011115613c0b578586fd5b95986020929092019750949560400135945092505050565b600060208284031215613c34578081fd5b613b3582613b0a565b600060208284031215613c4e578081fd5b815160078110613b35578182fd5b600060208284031215613c6d578081fd5b815160038110613b35578182fd5b600060208284031215613c8c578081fd5b815167ffffffffffffffff80821115613ca3578283fd5b8184019150610140808387031215613cb9578384fd5b613cc281613f07565b9050825181526020830151602082015260408301516040820152613ce860608401613b0a565b6060820152608083015182811115613cfe578485fd5b613d0a87828601613a82565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613d60578081fd5b5035919050565b600060208284031215613d78578081fd5b5051919050565b60008060408385031215613d91578182fd5b50508035926020909101359150565b600080600060608486031215613db4578283fd5b505081359360208301359350604090920135919050565b60008060408385031215613ddd578182fd5b505080516020909101519092909150565b6001600160a01b03861681526020810185905260806040820181905281018390526000838560a08401378060a0858401015260a0601f19601f86011683010190508260608301529695505050505050565b60208082526021908201527f4552524f523a5250532d3030353a53454e4445525f4e4f545f5249534b504f4f6040820152601360fa1b606082015260800190565b60208082526021908201527f4552524f523a5250532d3030373a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526026908201527f4552524f523a5250532d3030363a42554e444c455f5249534b504f4f4c5f4d496040820152650a69a82a886960d31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f3057613f30613f38565b604052919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114613f6357600080fd5b5056fea26469706673582212209a54242b6373dab5b01e37d770361bdd347dbf612e95820001979e25479ba64464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x89002DA5 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xB7267420 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xB7267420 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0xBB540DF6 EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0xBF2E3546 EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x217 JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0xB299CC26 EQ PUSH2 0x1CB JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x316C5348 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x4D03F9B7 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x17F JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x4F5F96E EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x15FC1E74 EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0x2127FD48 EQ PUSH2 0x131 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C PUSH8 0x149A5CDADC1BDBDB PUSH1 0xC2 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH2 0x12C CALLDATASIZE PUSH1 0x4 PUSH2 0x3B9D JUMP JUMPDEST PUSH2 0x22A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x78A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x144 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST PUSH2 0x10C PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0xEA5 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x1419 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x1749 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x1CBF JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x21D8 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x2657 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x2A3A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1EC CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x2D32 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x302A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x212 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B58 JUMP JUMPDEST PUSH2 0x3375 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B19 JUMP JUMPDEST PUSH2 0x36CA JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x294 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B8 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x313 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x356 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x3B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030333A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x40B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x44E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x4A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030343A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x50D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x531 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3039C501 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC0E71404 SWAP1 PUSH2 0x56B SWAP1 DUP11 SWAP1 DUP6 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x3DEE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x599 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5BD SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH3 0x6A03DD PUSH1 0xE9 SHL DUP2 MSTORE SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD407BA00 SWAP2 PUSH2 0x5F7 SWAP2 DUP6 SWAP2 DUP9 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x625 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136F5ED5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP4 POP DUP4 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x26DEBDAA SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x67A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x68E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6B2 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA65E2CFD SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x717 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xA65E2CFD SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x766 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x77A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP3 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x81B SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x878 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x89C SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x8CA JUMPI POP DUP4 DUP3 EQ JUMPDEST PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030383A53454E4445525F4E4F545F4F574E494E475F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x149254D2D413D3D3 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST DUP3 ISZERO PUSH2 0xA20 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x9C9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xA20 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030393A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB1D SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB9E SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC44 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0xC63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0xC86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0xD45 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCE5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD09 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0xD28 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xD45 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD1 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH3 0x6A03DD PUSH1 0xE9 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD407BA00 SWAP2 PUSH2 0xE0B SWAP2 DUP6 SWAP2 DUP13 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6198E339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x6198E339 SWAP2 POP PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF38 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB9 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFD8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1023 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1037 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x105F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x107E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x10A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1160 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1100 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1124 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1143 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1160 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x11E1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x3 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1209 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1257 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031313A42554E444C455F4255524E45440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD9358075 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD9358075 SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12DC SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST SWAP9 POP SWAP1 POP DUP9 DUP9 EQ PUSH2 0x1340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031333A554E45585045435445445F4645455F535542 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x2A2920A1AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC397AE39 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13A1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xC397AE39 SWAP2 POP PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1408 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1472 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1486 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14AA SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1507 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x152B SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x154A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x15D1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x15F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1613 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x16D2 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x165E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1672 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1696 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x16B5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x16D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1727 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x173B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17DA SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1837 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x185B SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1901 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x1920 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1943 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1A02 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x198E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19C6 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x19E5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1A02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1A83 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1AAB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1AF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3032303A42554E444C455F4E4F545F434C4F53454400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xD9358075 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD9358075 SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B87 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC397AE39 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xC397AE39 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x42966C68 SWAP2 POP PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D52 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DD3 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1DF2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1E79 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x1E98 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1EBB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1F7A JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F3E SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1F5D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1F7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FD3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1FFB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2023 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x2055 JUMPI POP PUSH1 0x3 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2052 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO JUMPDEST PUSH2 0x20AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031303A42554E444C455F434C4F5345445F4F525F42 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1554939151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136F5ED5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x26DEBDAA SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2110 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2134 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP11 POP SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA65E2CFD SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xA65E2CFD SWAP2 POP PUSH1 0x44 ADD PUSH2 0x13DA JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2245 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2269 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22EA SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2309 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2368 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2390 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x23AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x23D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2491 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x241D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2431 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2455 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2474 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2491 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x251D SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89935E5 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x44C9AF28 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2565 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2579 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x259D SWAP2 SWAP1 PUSH2 0x3C23 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x25BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2626 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x950BE803 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x950BE803 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x260D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2621 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x575F5A7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xAEBEB4E SWAP1 PUSH1 0x24 ADD PUSH2 0xE6A JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26E8 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2731 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2745 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2769 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2788 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x280F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x282E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2851 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2910 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x289C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28D4 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x28F3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2910 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2964 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2978 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x299C SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x950BE803 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x950BE803 SWAP2 PUSH2 0x29D7 SWAP2 DUP6 SWAP2 DUP13 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x37519C19 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0xDD467064 SWAP2 POP PUSH1 0x24 ADD PUSH2 0xE6A JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AA7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ACB SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B28 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B4C SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2B6B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2BF2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x2C11 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2C34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2CF3 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2CB7 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2CD6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2CF3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x170D JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2DC3 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E20 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E44 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2E63 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EC2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2EEA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x2F09 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2F2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2FEB JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2FAF SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2FCE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2FEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD PUSH2 0x170D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3084 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3098 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30BC SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3119 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313D SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x315C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x31E3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x3202 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x3225 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x32E4 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3284 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32A8 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x32C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x32E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3345 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3369 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x33C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3401 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x345C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3480 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x349F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x34F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030313A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x353B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x354F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3573 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x3592 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x35EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030323A5249534B504F4F4C5F4E4F545F50524F504F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x14D151 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x363F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3653 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3677 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57419E8F PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x24 DUP5 ADD MSTORE DUP9 DUP2 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP9 SWAP1 MSTORE PUSH1 0x84 DUP4 ADD DUP8 SWAP1 MSTORE SWAP3 SWAP4 POP SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x57419E8F SWAP1 PUSH1 0xA4 ADD PUSH2 0xA52 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x36EA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x370B JUMPI POP PUSH2 0x36F9 ADDRESS PUSH2 0x384F JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x370B JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x376E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x3791 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x37BB PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x37FD JUMPI PUSH2 0x37DC PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x3805 PUSH2 0x394A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x384B JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x38AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38E4 SWAP2 SWAP1 PUSH2 0x3B3C JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x385D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x39B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH2 0x39C7 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x39FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3A2C PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3A60 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3A92 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3AAC JUMPI PUSH2 0x3AAC PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x3AC0 PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH2 0x3F07 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP6 DUP3 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x3AD3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3AF0 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP3 DUP3 ADD DUP5 ADD MSTORE DUP3 ADD PUSH2 0x3AD5 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3B00 JUMPI DUP5 DUP4 DUP6 DUP5 ADD ADD MSTORE JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x385D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B2A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3B35 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B4D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3B35 DUP2 PUSH2 0x3F4E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3B6D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3B78 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3B88 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3BB2 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3BBD DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BD9 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3BEC JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3BFA JUMPI DUP6 DUP7 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3C0B JUMPI DUP6 DUP7 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C34 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3B35 DUP3 PUSH2 0x3B0A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C4E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x3B35 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C6D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x3B35 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C8C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3CA3 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x3CB9 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3CC2 DUP2 PUSH2 0x3F07 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x3CE8 PUSH1 0x60 DUP5 ADD PUSH2 0x3B0A JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3CFE JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3D0A DUP8 DUP3 DUP7 ADD PUSH2 0x3A82 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D60 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D78 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D91 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3DB4 JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3DDD JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 DUP4 DUP6 PUSH1 0xA0 DUP5 ADD CALLDATACOPY DUP1 PUSH1 0xA0 DUP6 DUP5 ADD ADD MSTORE PUSH1 0xA0 PUSH1 0x1F NOT PUSH1 0x1F DUP7 ADD AND DUP4 ADD ADD SWAP1 POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030353A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030373A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x26 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030363A42554E444C455F5249534B504F4F4C5F4D49 PUSH1 0x40 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3F30 JUMPI PUSH2 0x3F30 PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3F63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 SLOAD 0x24 0x2B PUSH4 0x73DAB5B0 0x1E CALLDATACOPY 0xD7 PUSH17 0x361BDD347DBF612E95820001979E25479B 0xA6 DIFFICULTY PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"439:8208:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;515:50;;-1:-1:-1;;;515:50:87;;;;;7407:25:103;;;7395:2;7380:18;515:50:87;;;;;;;3915:605;;;;;;:::i;:::-;;:::i;8378:264::-;;;;;;:::i;:::-;;:::i;:::-;;6120:286;;;;;;:::i;:::-;;:::i;5166:651::-;;;;;;:::i;:::-;;:::i;7403:251::-;;;;;;:::i;:::-;;:::i;6796:597::-;;;;;;:::i;:::-;;:::i;4527:632::-;;;;;;:::i;:::-;;:::i;6413:377::-;;;;;;:::i;:::-;;:::i;5824:289::-;;;;;;:::i;:::-;;:::i;7892:218::-;;;;;;:::i;:::-;;:::i;7660:226::-;;;;;;:::i;:::-;;:::i;8116:256::-;;;;;;:::i;:::-;;:::i;3432:477::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;3915:605:87:-;1254:10;;4101:16;;;;-1:-1:-1;;;;;1254:10:87;:25;719:10:59;1254:39:87;;-1:-1:-1;;;;;;1254:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1254:39:87;;;6551:51:103;6524:18;;1254:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1232:61;-1:-1:-1;1368:33:87;1324:10;;:40;;-1:-1:-1;;;1324:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1324:10:87;;;;:27;;7380:18:103;;1324:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1324:77:87;;;;;;;;;;1303:157;;;;-1:-1:-1;;;1303:157:87;;13070:2:103;1303:157:87;;;13052:21:103;13109:2;13089:18;;;13082:30;13148:34;13128:18;;;13121:62;-1:-1:-1;;;13199:18:103;;;13192:31;13240:19;;1303:157:87;;;;;;;;;1491:10;;:41;;-1:-1:-1;;;1491:41:87;;;;;7407:25:103;;;1536:32:87;;-1:-1:-1;;;;;1491:10:87;;:28;;7380:18:103;;1491:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1491:77:87;;;;;;;;;;1470:157;;;;-1:-1:-1;;;1470:157:87;;11042:2:103;1470:157:87;;;11024:21:103;11081:2;11061:18;;;11054:30;11120:34;11100:18;;;11093:62;-1:-1:-1;;;11171:18:103;;;11164:31;11212:19;;1470:157:87;11014:223:103;1470:157:87;4154:10:::1;::::0;4133:18:::1;::::0;-1:-1:-1;;;;;4154:10:87::1;:25;719:10:59::0;4154:39:87::1;::::0;-1:-1:-1;;;;;;4154:39:87::1;::::0;;;;;;-1:-1:-1;;;;;6569:32:103;;;4154:39:87::1;::::0;::::1;6551:51:103::0;6524:18;;4154:39:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4214:7;::::0;:44:::1;::::0;-1:-1:-1;;;4214:44:87;;4133:60;;-1:-1:-1;;;;;;4214:7:87::1;::::0;:14:::1;::::0;:44:::1;::::0;4229:5;;4133:60;;4248:6;;;;4214:7:::1;::::0;:44:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4277:5;::::0;;:50:::1;::::0;-1:-1:-1;;;4277:50:87;;4203:55;;-1:-1:-1;;;;;;4277:5:87::1;::::0;:28:::1;::::0;:50:::1;::::0;4306:10;;4203:55;;4277:50:::1;14918:25:103::0;;;14974:2;14959:18;;14952:34;14906:2;14891:18;;14873:119;4277:50:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4374:9:87::1;::::0;:50:::1;::::0;-1:-1:-1;;;4374:50:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;4339:11:87::1;::::0;-1:-1:-1;4339:11:87;;-1:-1:-1;;;;;;4374:9:87;;::::1;::::0;:24:::1;::::0;14891:18:103;;4374:50:87::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4435:7;::::0;:34:::1;::::0;-1:-1:-1;;;4435:34:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;4338:86:87;;-1:-1:-1;4338:86:87;;-1:-1:-1;;;;;;4435:7:87::1;::::0;:12:::1;::::0;14891:18:103;;4435:34:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4479:5:87::1;::::0;;:34:::1;::::0;-1:-1:-1;;;4479:34:87;;;;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;-1:-1:-1;;;;;4479:5:87::1;::::0;-1:-1:-1;4479:10:87::1;::::0;-1:-1:-1;14891:18:103;;4479:34:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1637:1;;;3915:605:::0;;;;;;;:::o;8378:264::-;2533:10;;8528;;8540:4;;2511:19;;-1:-1:-1;;;;;2533:10:87;:25;719:10:59;2533:39:87;;-1:-1:-1;;;;;;2533:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;2533:39:87;;;6551:51:103;6524:18;;2533:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2511:61;-1:-1:-1;2582:15:87;2644:33;2600:10;;:40;;-1:-1:-1;;;2600:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;2600:10:87;;;;:27;;7380:18:103;;2600:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2600:77:87;;;;;;;;;;2582:95;;2708:10;:39;;;;;2737:10;2722:11;:25;2708:39;2687:126;;;;-1:-1:-1;;;2687:126:87;;9825:2:103;2687:126:87;;;9807:21:103;9864:2;9844:18;;;9837:30;9903:34;9883:18;;;9876:62;-1:-1:-1;;;9954:18:103;;;9947:38;10002:19;;2687:126:87;9797:230:103;2687:126:87;2827:12;2823:212;;;2880:10;;:41;;-1:-1:-1;;;2880:41:87;;;;;7407:25:103;;;2925:32:87;;-1:-1:-1;;;;;2880:10:87;;:28;;7380:18:103;;2880:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2880:77:87;;;;;;;;;;2855:169;;;;-1:-1:-1;;;2855:169:87;;10640:2:103;2855:169:87;;;10622:21:103;10679:2;10659:18;;;10652:30;10718:34;10698:18;;;10691:62;-1:-1:-1;;;10769:18:103;;;10762:31;10810:19;;2855:169:87;10612:223:103;2855:169:87;8560:5:::1;::::0;;:75:::1;::::0;-1:-1:-1;;;8560:75:87;;;;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;-1:-1:-1;;;;;8560:5:87::1;::::0;:37:::1;::::0;14891:18:103;;8560:75:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8378:264:::0;;;;;;:::o;6120:286::-;1748:10;;6213:8;;6223:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;6266:10:::1;::::0;6245:18:::1;::::0;-1:-1:-1;;;;;6266:10:87::1;:25;719:10:59::0;6266:39:87::1;::::0;-1:-1:-1;;;;;;6266:39:87::1;::::0;;;;;;-1:-1:-1;;;;;6569:32:103;;;6266:39:87::1;::::0;::::1;6551:51:103::0;6524:18;;6266:39:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6315:5;::::0;;:50:::1;::::0;-1:-1:-1;;;6315:50:87;;6245:60;;-1:-1:-1;;;;;;6315:5:87::1;::::0;:28:::1;::::0;:50:::1;::::0;6245:60;;6356:8;;6315:50:::1;14918:25:103::0;;;14974:2;14959:18;;14952:34;14906:2;14891:18;;14873:119;6315:50:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6375:7:87::1;::::0;:24:::1;::::0;-1:-1:-1;;;6375:24:87;;::::1;::::0;::::1;7407:25:103::0;;;-1:-1:-1;;;;;6375:7:87;;::::1;::::0;-1:-1:-1;6375:14:87::1;::::0;-1:-1:-1;7380:18:103;;6375:24:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2418:1;6120:286:::0;;;;;;:::o;5166:651::-;1748:10;;5307:17;;5275:8;;5285:4;;5307:17;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;5371:7:::1;::::0;:27:::1;::::0;-1:-1:-1;;;5371:27:87;;::::1;::::0;::::1;7407:25:103::0;;;5340:28:87::1;::::0;-1:-1:-1;;;;;5371:7:87::1;::::0;:17:::1;::::0;7380:18:103;;5371:27:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;5371:27:87::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;5340:58:::0;-1:-1:-1;5445:26:87::1;5429:6;:12;;;:42;;;;;;-1:-1:-1::0;;;5429:42:87::1;;;;;;;;;;;5408:117;;;::::0;-1:-1:-1;;;5408:117:87;;13884:2:103;5408:117:87::1;::::0;::::1;13866:21:103::0;13923:2;13903:18;;;13896:30;13962:29;13942:18;;;13935:57;14009:18;;5408:117:87::1;13856:177:103::0;5408:117:87::1;5588:9;::::0;:45:::1;::::0;-1:-1:-1;;;5588:45:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;5536:17:87::1;::::0;-1:-1:-1;;;;;5588:9:87::1;::::0;:27:::1;::::0;14891:18:103;;5588:45:87::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5563:70:::0;-1:-1:-1;5563:70:87;-1:-1:-1;5651:19:87;;::::1;5643:72;;;::::0;-1:-1:-1;;;5643:72:87;;8654:2:103;5643:72:87::1;::::0;::::1;8636:21:103::0;8693:2;8673:18;;;8666:30;8732:34;8712:18;;;8705:62;-1:-1:-1;;;8783:18:103;;;8776:38;8831:19;;5643:72:87::1;8626:230:103::0;5643:72:87::1;5726:7;::::0;:32:::1;::::0;-1:-1:-1;;;5726:32:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;-1:-1:-1;;;;;5726:7:87;;::::1;::::0;:14:::1;::::0;14891:18:103;;5726:32:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5768:5:87::1;::::0;;5781:17:::1;::::0;::::1;::::0;5768:42:::1;::::0;-1:-1:-1;;;5768:42:87;;;;::::1;14918:25:103::0;14959:18;;;14952:34;;;-1:-1:-1;;;;;5768:5:87::1;::::0;-1:-1:-1;5768:12:87::1;::::0;-1:-1:-1;14891:18:103;;5768:42:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2418:1;;5166:651:::0;;;;;;;;;:::o;7403:251::-;1748:10;;7549:8;;7559:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;7581:7:::1;::::0;:66:::1;::::0;-1:-1:-1;;;7581:66:87;;::::1;::::0;::::1;15199:25:103::0;;;15240:18;;;15233:34;;;15283:18;;;15276:34;;;-1:-1:-1;;;;;7581:7:87;;::::1;::::0;:27:::1;::::0;15172:18:103;;7581:66:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7403:251:::0;;;;;;;;:::o;6796:597::-;1748:10;;6887:8;;6897:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;6985:7:::1;::::0;:27:::1;::::0;-1:-1:-1;;;6985:27:87;;::::1;::::0;::::1;7407:25:103::0;;;6954:28:87::1;::::0;-1:-1:-1;;;;;6985:7:87::1;::::0;:17:::1;::::0;7380:18:103;;6985:27:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;6985:27:87::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;6954:58:::0;-1:-1:-1;7046:26:87::1;7030:6;:12;;;:42;;;;;;-1:-1:-1::0;;;7030:42:87::1;;;;;;;;;;7022:86;;;::::0;-1:-1:-1;;;7022:86:87;;9465:2:103;7022:86:87::1;::::0;::::1;9447:21:103::0;9504:2;9484:18;;;9477:30;9543:33;9523:18;;;9516:61;9594:18;;7022:86:87::1;9437:181:103::0;7022:86:87::1;7198:9;::::0;7236:14:::1;::::0;::::1;::::0;7198:53:::1;::::0;-1:-1:-1;;;7198:53:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;;7158:17:87::1;::::0;;;-1:-1:-1;;;;;7198:9:87;;::::1;::::0;:27:::1;::::0;14891:18:103;;7198:53:87::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7266:7;::::0;:35:::1;::::0;-1:-1:-1;;;7266:35:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;7157:94:87;;-1:-1:-1;7157:94:87;;-1:-1:-1;;;;;;7266:7:87::1;::::0;:14:::1;::::0;14891:18:103;;7266:35:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7311:5:87::1;::::0;;7324:17:::1;::::0;::::1;::::0;7311:42:::1;::::0;-1:-1:-1;;;7311:42:87;;;;::::1;14918:25:103::0;14959:18;;;14952:34;;;-1:-1:-1;;;;;7311:5:87::1;::::0;-1:-1:-1;7311:12:87::1;::::0;-1:-1:-1;14891:18:103;;7311:42:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7364:7:87::1;::::0;:22:::1;::::0;-1:-1:-1;;;7364:22:87;;::::1;::::0;::::1;7407:25:103::0;;;-1:-1:-1;;;;;7364:7:87;;::::1;::::0;-1:-1:-1;7364:12:87::1;::::0;-1:-1:-1;7380:18:103;;7364:22:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2418:1;;;6796:597:::0;;;;;;:::o;4527:632::-;1748:10;;4667:17;;4634:8;;4644:4;;4667:17;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;4731:7:::1;::::0;:27:::1;::::0;-1:-1:-1;;;4731:27:87;;::::1;::::0;::::1;7407:25:103::0;;;4700:28:87::1;::::0;-1:-1:-1;;;;;4731:7:87::1;::::0;:17:::1;::::0;7380:18:103;;4731:27:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4731:27:87::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;4700:58:::0;-1:-1:-1;4805:26:87::1;4789:6;:12;;;:42;;;;;;-1:-1:-1::0;;;4789:42:87::1;;;;;;;;;;;:100;;;;-1:-1:-1::0;4863:26:87::1;4847:6;:12;;;:42;;;;;;-1:-1:-1::0;;;4847:42:87::1;;;;;;;;;;;4789:100;4768:185;;;::::0;-1:-1:-1;;;4768:185:87;;10234:2:103;4768:185:87::1;::::0;::::1;10216:21:103::0;10273:2;10253:18;;;10246:30;10312:34;10292:18;;;10285:62;-1:-1:-1;;;10363:18:103;;;10356:35;10408:19;;4768:185:87::1;10206:227:103::0;4768:185:87::1;5016:9;::::0;:42:::1;::::0;-1:-1:-1;;;5016:42:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;4964:17:87::1;::::0;-1:-1:-1;;;;;5016:9:87::1;::::0;:24:::1;::::0;14891:18:103;;5016:42:87::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5069:7;::::0;:33:::1;::::0;-1:-1:-1;;;5069:33:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;4991:67:87;;-1:-1:-1;4991:67:87;;-1:-1:-1;;;;;;5069:7:87;;::::1;::::0;:12:::1;::::0;14891:18:103;;5069:33:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5112:5:87::1;::::0;;5123:17:::1;::::0;::::1;::::0;5112:40:::1;::::0;-1:-1:-1;;;5112:40:87;;;;::::1;14918:25:103::0;14959:18;;;14952:34;;;-1:-1:-1;;;;;5112:5:87::1;::::0;-1:-1:-1;5112:10:87::1;::::0;-1:-1:-1;14891:18:103;;5112:40:87::1;14873:119:103::0;6413:377:87;1748:10;;6505:8;;6515:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;6558:10:::1;::::0;6537:18:::1;::::0;-1:-1:-1;;;;;6558:10:87::1;:25;719:10:59::0;6558:39:87::1;::::0;-1:-1:-1;;;;;;6558:39:87::1;::::0;;;;;;-1:-1:-1;;;;;6569:32:103;;;6558:39:87::1;::::0;::::1;6551:51:103::0;6524:18;;6558:39:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6537:60:::0;-1:-1:-1;6642:26:87::1;6612:7;::::0;:26:::1;::::0;-1:-1:-1;;;6612:26:87;;::::1;::::0;::::1;7407:25:103::0;;;-1:-1:-1;;;;;6612:7:87;;::::1;::::0;:16:::1;::::0;7380:18:103;;6612:26:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;;;;-1:-1:-1::0;;;6612:56:87::1;;;;;;;;;;6608:142;;;6684:5;::::0;;:55:::1;::::0;-1:-1:-1;;;6684:55:87;;;;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;-1:-1:-1;;;;;6684:5:87::1;::::0;:33:::1;::::0;14891:18:103;;6684:55:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6608:142;6760:7;::::0;:23:::1;::::0;-1:-1:-1;;;6760:23:87;;::::1;::::0;::::1;7407:25:103::0;;;-1:-1:-1;;;;;6760:7:87;;::::1;::::0;:13:::1;::::0;7380:18:103;;6760:23:87::1;7362:76:103::0;5824:289:87;1748:10;;5915:8;;5925:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;5970:10:::1;::::0;5949:18:::1;::::0;-1:-1:-1;;;;;5970:10:87::1;:25;719:10:59::0;5970:39:87::1;::::0;-1:-1:-1;;;;;;5970:39:87::1;::::0;;;;;;-1:-1:-1;;;;;6569:32:103;;;5970:39:87::1;::::0;::::1;6551:51:103::0;6524:18;;5970:39:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6019:5;::::0;;:55:::1;::::0;-1:-1:-1;;;6019:55:87;;5949:60;;-1:-1:-1;;;;;;6019:5:87::1;::::0;:33:::1;::::0;:55:::1;::::0;5949:60;;6065:8;;6019:55:::1;14918:25:103::0;;;14974:2;14959:18;;14952:34;14906:2;14891:18;;14873:119;6019:55:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6084:7:87::1;::::0;:22:::1;::::0;-1:-1:-1;;;6084:22:87;;::::1;::::0;::::1;7407:25:103::0;;;-1:-1:-1;;;;;6084:7:87;;::::1;::::0;-1:-1:-1;6084:12:87::1;::::0;-1:-1:-1;7380:18:103;;6084:22:87::1;7362:76:103::0;7892:218:87;1748:10;;8021:8;;8031:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;8053:7:::1;::::0;:50:::1;::::0;-1:-1:-1;;;8053:50:87;;::::1;::::0;::::1;15199:25:103::0;;;15240:18;;;15233:34;;;15283:18;;;15276:34;;;-1:-1:-1;;;;;8053:7:87;;::::1;::::0;:21:::1;::::0;15172:18:103;;8053:50:87::1;15154:162:103::0;7660:226:87;1748:10;;7790:8;;7800:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;7828:7:::1;::::0;:51:::1;::::0;-1:-1:-1;;;7828:51:87;;::::1;::::0;::::1;15199:25:103::0;;;15240:18;;;15233:34;;;15283:18;;;15276:34;;;-1:-1:-1;;;;;7828:7:87;;::::1;::::0;:22:::1;::::0;15172:18:103;;7828:51:87::1;15154:162:103::0;8116:256:87;1748:10;;8264:24;;8229:8;;8264:24;;;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;8323:7:::1;::::0;:42:::1;::::0;-1:-1:-1;;;8323:42:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;-1:-1:-1;;;;;8323:7:87;;::::1;::::0;:21:::1;::::0;14891:18:103;;8323:42:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8304:61:::0;8116:256;-1:-1:-1;;;;;;;;8116:256:87:o;3432:477::-;791:10;;769:19;;-1:-1:-1;;;;;791:10:87;:25;719:10:59;791:39:87;;-1:-1:-1;;;;;;791:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;791:39:87;;;6551:51:103;6524:18;;791:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;769:61;-1:-1:-1;905:33:87;861:10;;:40;;-1:-1:-1;;;861:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;861:10:87;;;;:27;;7380:18:103;;861:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;861:77:87;;;;;;;;;;840:157;;;;-1:-1:-1;;;840:157:87;;12668:2:103;840:157:87;;;12650:21:103;12707:2;12687:18;;;12680:30;12746:34;12726:18;;;12719:62;-1:-1:-1;;;12797:18:103;;;12790:31;12838:19;;840:157:87;12640:223:103;840:157:87;1028:10;;:41;;-1:-1:-1;;;1028:41:87;;;;;7407:25:103;;;1073:34:87;;-1:-1:-1;;;;;1028:10:87;;:28;;7380:18:103;;1028:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:79;;;;;;-1:-1:-1;;;1028:79:87;;;;;;;;;;1007:161;;;;-1:-1:-1;;;1007:161:87;;7844:2:103;1007:161:87;;;7826:21:103;7883:2;7863:18;;;7856:30;7922:34;7902:18;;;7895:62;-1:-1:-1;;;7973:18:103;;;7966:33;8016:19;;1007:161:87;7816:225:103;1007:161:87;3683:10:::1;::::0;3662:18:::1;::::0;-1:-1:-1;;;;;3683:10:87::1;:25;719:10:59::0;3683:39:87::1;::::0;-1:-1:-1;;;;;;3683:39:87::1;::::0;;;;;;-1:-1:-1;;;;;6569:32:103;;;3683:39:87::1;::::0;::::1;6551:51:103::0;6524:18;;3683:39:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3732:5;::::0;;:170:::1;::::0;-1:-1:-1;;;3732:170:87;;;;::::1;14479:25:103::0;;;-1:-1:-1;;;;;14578:15:103;;;14558:18;;;14551:43;14630:15;;;14610:18;;;14603:43;14662:18;;;14655:34;;;14705:19;;;14698:35;;;3662:60:87;;-1:-1:-1;3732:5:87;;;::::1;::::0;:22:::1;::::0;14451:19:103;;3732:170:87::1;14433:306:103::0;1143:232:88;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;11444:2:103;3146:190:47;;;11426:21:103;11483:2;11463:18;;;11456:30;11522:34;11502:18;;;11495:62;-1:-1:-1;;;11573:18:103;;;11566:44;11627:19;;3146:190:47;11416:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;7595:36:103;;3531:14:47;;7583:2:103;7568:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;7407:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;7380:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;8248:2:103;1703:113:88;;;8230:21:103;8287:2;8267:18;;;8260:30;8326:34;8306:18;;;8299:62;-1:-1:-1;;;8377:18:103;;;8370:35;8422:19;;1703:113:88;8220:227:103;3059:366:87;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;13472:2:103;4880:69:47;;;13454:21:103;13511:2;13491:18;;;13484:30;13550:34;13530:18;;;13523:62;-1:-1:-1;;;13601:18:103;;;13594:41;13652:19;;4880:69:47;13444:233:103;4880:69:47;3182:29:87::1;-1:-1:-1::0;;;3182:19:87::1;:29::i;:::-;3155:7;:57:::0;;-1:-1:-1;;;;;;3155:57:87::1;-1:-1:-1::0;;;;;3155:57:87;;;::::1;::::0;;;::::1;::::0;;3255:32:::1;-1:-1:-1::0;;;3255:19:87::1;:32::i;:::-;3222:10;:66:::0;;-1:-1:-1;;;;;;3222:66:87::1;-1:-1:-1::0;;;;;3222:66:87;;;::::1;::::0;;;::::1;::::0;;3321:27:::1;-1:-1:-1::0;;;3321:19:87::1;:27::i;:::-;3298:5;:51:::0;;-1:-1:-1;;;;;;3298:51:87::1;-1:-1:-1::0;;;;;3298:51:87;;;::::1;::::0;;;::::1;::::0;;3386:31:::1;-1:-1:-1::0;;;3386:19:87::1;:31::i;:::-;3359:9;:59:::0;;-1:-1:-1;;;;;;3359:59:87::1;-1:-1:-1::0;;;;;3359:59:87;;;::::1;::::0;;;::::1;::::0;;3059:366::o;14:718:103:-;;120:3;113:4;105:6;101:17;97:27;87:2;;142:5;135;128:20;87:2;175:6;169:13;201:18;197:2;194:26;191:2;;;223:18;;:::i;:::-;262:4;290:53;333:2;314:13;;-1:-1:-1;;310:27:103;306:36;;290:53;:::i;:::-;368:2;359:7;352:19;412:3;407:2;402;394:6;390:15;386:24;383:33;380:2;;;433:5;426;419:20;380:2;459:5;473:134;487:2;484:1;481:9;473:134;;;576:14;;;572:23;;566:30;544:15;;;540:24;;533:64;498:10;;473:134;;;625:2;622:1;619:9;616:2;;;685:5;680:2;675;666:7;662:16;658:25;651:40;616:2;-1:-1:-1;719:7:103;77:655;-1:-1:-1;;;;;77:655:103:o;737:156::-;825:13;;867:1;857:12;;847:2;;883:1;880;873:12;898:257;;1010:2;998:9;989:7;985:23;981:32;978:2;;;1031:6;1023;1016:22;978:2;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;968:187;-1:-1:-1;;;968:187:103:o;1160:261::-;;1283:2;1271:9;1262:7;1258:23;1254:32;1251:2;;;1304:6;1296;1289:22;1251:2;1341:9;1335:16;1360:31;1385:5;1360:31;:::i;1426:535::-;;;;;1589:3;1577:9;1568:7;1564:23;1560:33;1557:2;;;1611:6;1603;1596:22;1557:2;1655:9;1642:23;1674:31;1699:5;1674:31;:::i;:::-;1724:5;-1:-1:-1;1781:2:103;1766:18;;1753:32;1794:33;1753:32;1794:33;:::i;:::-;1547:414;;1846:7;;-1:-1:-1;;;;1900:2:103;1885:18;;1872:32;;1951:2;1936:18;1923:32;;1547:414::o;1966:844::-;;;;;2131:2;2119:9;2110:7;2106:23;2102:32;2099:2;;;2152:6;2144;2137:22;2099:2;2196:9;2183:23;2215:31;2240:5;2215:31;:::i;:::-;2265:5;-1:-1:-1;2321:2:103;2306:18;;2293:32;2344:18;2374:14;;;2371:2;;;2406:6;2398;2391:22;2371:2;2449:6;2438:9;2434:22;2424:32;;2494:7;2487:4;2483:2;2479:13;2475:27;2465:2;;2521:6;2513;2506:22;2465:2;2566;2553:16;2592:2;2584:6;2581:14;2578:2;;;2613:6;2605;2598:22;2578:2;2663:7;2658:2;2649:6;2645:2;2641:15;2637:24;2634:37;2631:2;;;2689:6;2681;2674:22;2631:2;2089:721;;2725:2;2717:11;;;;;-1:-1:-1;2747:6:103;;2800:2;2785:18;2772:32;;-1:-1:-1;2089:721:103;-1:-1:-1;;;2089:721:103:o;2815:243::-;;2954:2;2942:9;2933:7;2929:23;2925:32;2922:2;;;2975:6;2967;2960:22;2922:2;3003:49;3042:9;3003:49;:::i;3063:299::-;;3205:2;3193:9;3184:7;3180:23;3176:32;3173:2;;;3226:6;3218;3211:22;3173:2;3263:9;3257:16;3302:1;3295:5;3292:12;3282:2;;3323:6;3315;3308:22;3367:298;;3508:2;3496:9;3487:7;3483:23;3479:32;3476:2;;;3529:6;3521;3514:22;3476:2;3566:9;3560:16;3605:1;3598:5;3595:12;3585:2;;3626:6;3618;3611:22;3670:1219;;3817:2;3805:9;3796:7;3792:23;3788:32;3785:2;;;3838:6;3830;3823:22;3785:2;3876:9;3870:16;3905:18;3946:2;3938:6;3935:14;3932:2;;;3967:6;3959;3952:22;3932:2;4010:6;3999:9;3995:22;3985:32;;4036:6;4076:2;4071;4062:7;4058:16;4054:25;4051:2;;;4097:6;4089;4082:22;4051:2;4128:19;4144:2;4128:19;:::i;:::-;4115:32;;4176:2;4170:9;4163:5;4156:24;4226:2;4222;4218:11;4212:18;4207:2;4200:5;4196:14;4189:42;4277:2;4273;4269:11;4263:18;4258:2;4251:5;4247:14;4240:42;4314:51;4361:2;4357;4353:11;4314:51;:::i;:::-;4309:2;4302:5;4298:14;4291:75;4405:3;4401:2;4397:12;4391:19;4435:2;4425:8;4422:16;4419:2;;;4456:6;4448;4441:22;4419:2;4498:55;4545:7;4534:8;4530:2;4526:17;4498:55;:::i;:::-;4492:3;4481:15;;4474:80;-1:-1:-1;4601:3:103;4593:12;;;4587:19;4570:15;;;4563:44;4654:3;4646:12;;;4640:19;4623:15;;;4616:44;4707:3;4699:12;;;4693:19;4676:15;;;4669:44;4732:3;4773:11;;;4767:18;4751:14;;;4744:42;4805:3;4846:11;;;4840:18;4824:14;;;4817:42;;;;-1:-1:-1;4485:5:103;3775:1114;-1:-1:-1;;;3775:1114:103:o;4894:190::-;;5006:2;4994:9;4985:7;4981:23;4977:32;4974:2;;;5027:6;5019;5012:22;4974:2;-1:-1:-1;5055:23:103;;4964:120;-1:-1:-1;4964:120:103:o;5089:194::-;;5212:2;5200:9;5191:7;5187:23;5183:32;5180:2;;;5233:6;5225;5218:22;5180:2;-1:-1:-1;5261:16:103;;5170:113;-1:-1:-1;5170:113:103:o;5288:258::-;;;5417:2;5405:9;5396:7;5392:23;5388:32;5385:2;;;5438:6;5430;5423:22;5385:2;-1:-1:-1;;5466:23:103;;;5536:2;5521:18;;;5508:32;;-1:-1:-1;5375:171:103:o;5551:326::-;;;;5697:2;5685:9;5676:7;5672:23;5668:32;5665:2;;;5718:6;5710;5703:22;5665:2;-1:-1:-1;;5746:23:103;;;5816:2;5801:18;;5788:32;;-1:-1:-1;5867:2:103;5852:18;;;5839:32;;5655:222;-1:-1:-1;5655:222:103:o;6145:255::-;;;6285:2;6273:9;6264:7;6260:23;6256:32;6253:2;;;6306:6;6298;6291:22;6253:2;-1:-1:-1;;6334:16:103;;6390:2;6375:18;;;6369:25;6334:16;;6369:25;;-1:-1:-1;6243:157:103:o;6613:643::-;-1:-1:-1;;;;;6862:32:103;;6844:51;;6926:2;6911:18;;6904:34;;;6974:3;6969:2;6954:18;;6947:31;;;6994:19;;6987:35;;;6613:643;7015:6;7065;6882:3;7044:19;;7031:49;7130:4;7124:3;7115:6;7104:9;7100:22;7096:32;7089:46;7203:3;7196:2;7192:7;7187:2;7179:6;7175:15;7171:29;7160:9;7156:45;7152:55;7144:63;;7243:6;7238:2;7227:9;7223:18;7216:34;6834:422;;;;;;;;:::o;8861:397::-;9063:2;9045:21;;;9102:2;9082:18;;;9075:30;9141:34;9136:2;9121:18;;9114:62;-1:-1:-1;;;9207:2:103;9192:18;;9185:31;9248:3;9233:19;;9035:223::o;11657:397::-;11859:2;11841:21;;;11898:2;11878:18;;;11871:30;11937:34;11932:2;11917:18;;11910:62;-1:-1:-1;;;12003:2:103;11988:18;;11981:31;12044:3;12029:19;;11831:223::o;12059:402::-;12261:2;12243:21;;;12300:2;12280:18;;;12273:30;12339:34;12334:2;12319:18;;12312:62;-1:-1:-1;;;12405:2:103;12390:18;;12383:36;12451:3;12436:19;;12233:228::o;15574:275::-;15645:2;15639:9;15710:2;15691:13;;-1:-1:-1;;15687:27:103;15675:40;;15745:18;15730:34;;15766:22;;;15727:62;15724:2;;;15792:18;;:::i;:::-;15828:2;15821:22;15619:230;;-1:-1:-1;15619:230:103:o;15854:127::-;15915:10;15910:3;15906:20;15903:1;15896:31;15946:4;15943:1;15936:15;15970:4;15967:1;15960:15;15986:131;-1:-1:-1;;;;;16061:31:103;;16051:42;;16041:2;;16107:1;16104;16097:12;16041:2;16031:86;:::o"},"methodIdentifiers":{"RISKPOOL_NAME()":"04f5f96e","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(uint256,bytes32,uint256)":"4d03f9b7","createBundle(address,bytes,uint256)":"15fc1e74","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","initialize(address)":"c4d66de8","lockBundle(uint256)":"a17030d5","processPayout(uint256,bytes32,uint256)":"b299cc26","processPremium(uint256,bytes32,uint256)":"b7267420","registerRiskpool(address,address,uint256,uint256)":"bf2e3546","releasePolicy(uint256,bytes32)":"bb540df6","setMaximumNumberOfActiveBundles(uint256,uint256)":"2127fd48","unlockBundle(uint256)":"316c5348"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"RISKPOOL_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialCapital\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"registerRiskpool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/RiskpoolService.sol\":\"RiskpoolService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/modules/TreasuryModule.sol\":{\"keccak256\":\"0x5b816938607e52b8e3811a426b7c31377109b12c665d3889bdc0fc38b5d1039c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81900732664f85ed367e3c78020bc2bd78e8521dd928f3fd5bcd39ce0ce1dcf0\",\"dweb:/ipfs/QmPcRYLq6SJvZkMnoSZAocCKw9m83oXezNaDsmHJ6UWr4E\"]},\"contracts/services/RiskpoolService.sol\":{\"keccak256\":\"0x3862cc16ca6d31d1d2bce977fd111cd07c9d590ae54460bff4a76eb942f8263f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://98f858b193f48a695993cf6d73aaf7503f550d09f454e049d9e72c0fbde9fa10\",\"dweb:/ipfs/QmdsXwoSuEwRBuz79yPwYznzGxEp3mipWjfbr9jS8wQbes\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/shared/CoreController.sol":{"CoreController":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6103c0806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c4d66de814610030575b600080fd5b61004361003e366004610337565b610045565b005b600054610100900460ff16158080156100655750600054600160ff909116105b806100865750610074306101cf565b158015610086575060005460ff166001145b6100ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610111576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561013b600090565b6541636365737360d01b1461017d5761015c6541636365737360d01b6101e2565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101856102ca565b80156101cb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561022c57600080fd5b505afa158015610240573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610264919061035a565b90506001600160a01b0381166101dd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016100e5565b600054610100900460ff166103355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016100e5565b565b600060208284031215610348578081fd5b813561035381610372565b9392505050565b60006020828403121561036b578081fd5b8151610353815b6001600160a01b038116811461038757600080fd5b5056fea26469706673582212207a5000e854af590ede146fd80aeb1020a519941888a6dccd93415a3d32e7307364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x3C0 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x337 JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x65 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x86 JUMPI POP PUSH2 0x74 ADDRESS PUSH2 0x1CF JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x86 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x111 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x13B PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x17D JUMPI PUSH2 0x15C PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1E2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x185 PUSH2 0x2CA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x240 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x264 SWAP2 SWAP1 PUSH2 0x35A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x335 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x348 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x353 DUP2 PUSH2 0x372 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x353 DUP2 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0x5000E854AF590EDE146FD80AEB1020A519941888A6DCCD93415A3D ORIGIN 0xE7 ADDRESS PUSH20 0x64736F6C63430008020033000000000000000000 ","sourceMap":"311:1514:88:-:0;;;441:54;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;311:1514;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;311:1514:88;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2289:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"643:76:103","statements":[{"nodeType":"YulAssignment","src":"653:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"665:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"676:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"661:3:103"},"nodeType":"YulFunctionCall","src":"661:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"653:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"695:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"706:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"688:6:103"},"nodeType":"YulFunctionCall","src":"688:25:103"},"nodeType":"YulExpressionStatement","src":"688:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"612:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"623:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"634:4:103","type":""}],"src":"542:177:103"},{"body":{"nodeType":"YulBlock","src":"831:87:103","statements":[{"nodeType":"YulAssignment","src":"841:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"853:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"864:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"849:3:103"},"nodeType":"YulFunctionCall","src":"849:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"841:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"883:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"898:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"906:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"894:3:103"},"nodeType":"YulFunctionCall","src":"894:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"876:6:103"},"nodeType":"YulFunctionCall","src":"876:36:103"},"nodeType":"YulExpressionStatement","src":"876:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"800:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"811:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"822:4:103","type":""}],"src":"724:194:103"},{"body":{"nodeType":"YulBlock","src":"1097:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1114:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1125:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1107:6:103"},"nodeType":"YulFunctionCall","src":"1107:21:103"},"nodeType":"YulExpressionStatement","src":"1107:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1148:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1159:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1144:3:103"},"nodeType":"YulFunctionCall","src":"1144:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1164:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1137:6:103"},"nodeType":"YulFunctionCall","src":"1137:30:103"},"nodeType":"YulExpressionStatement","src":"1137:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1187:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1198:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1183:3:103"},"nodeType":"YulFunctionCall","src":"1183:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1203:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1176:6:103"},"nodeType":"YulFunctionCall","src":"1176:62:103"},"nodeType":"YulExpressionStatement","src":"1176:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1258:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1269:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1254:3:103"},"nodeType":"YulFunctionCall","src":"1254:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1274:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1247:6:103"},"nodeType":"YulFunctionCall","src":"1247:35:103"},"nodeType":"YulExpressionStatement","src":"1247:35:103"},{"nodeType":"YulAssignment","src":"1291:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1303:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1314:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1299:3:103"},"nodeType":"YulFunctionCall","src":"1299:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1291:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1074:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1088:4:103","type":""}],"src":"923:401:103"},{"body":{"nodeType":"YulBlock","src":"1503:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1520:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1531:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1513:6:103"},"nodeType":"YulFunctionCall","src":"1513:21:103"},"nodeType":"YulExpressionStatement","src":"1513:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1554:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1565:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1550:3:103"},"nodeType":"YulFunctionCall","src":"1550:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1570:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1543:6:103"},"nodeType":"YulFunctionCall","src":"1543:30:103"},"nodeType":"YulExpressionStatement","src":"1543:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1593:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1604:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1589:3:103"},"nodeType":"YulFunctionCall","src":"1589:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1609:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1582:6:103"},"nodeType":"YulFunctionCall","src":"1582:62:103"},"nodeType":"YulExpressionStatement","src":"1582:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1664:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1675:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1660:3:103"},"nodeType":"YulFunctionCall","src":"1660:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1680:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1653:6:103"},"nodeType":"YulFunctionCall","src":"1653:44:103"},"nodeType":"YulExpressionStatement","src":"1653:44:103"},{"nodeType":"YulAssignment","src":"1706:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1718:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1729:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1714:3:103"},"nodeType":"YulFunctionCall","src":"1714:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1706:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1480:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1494:4:103","type":""}],"src":"1329:410:103"},{"body":{"nodeType":"YulBlock","src":"1918:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1935:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1946:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1928:6:103"},"nodeType":"YulFunctionCall","src":"1928:21:103"},"nodeType":"YulExpressionStatement","src":"1928:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1980:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1965:3:103"},"nodeType":"YulFunctionCall","src":"1965:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1985:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1958:6:103"},"nodeType":"YulFunctionCall","src":"1958:30:103"},"nodeType":"YulExpressionStatement","src":"1958:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2008:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2019:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2004:3:103"},"nodeType":"YulFunctionCall","src":"2004:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2024:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1997:6:103"},"nodeType":"YulFunctionCall","src":"1997:62:103"},"nodeType":"YulExpressionStatement","src":"1997:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2079:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2090:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2075:3:103"},"nodeType":"YulFunctionCall","src":"2075:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2095:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2068:6:103"},"nodeType":"YulFunctionCall","src":"2068:41:103"},"nodeType":"YulExpressionStatement","src":"2068:41:103"},{"nodeType":"YulAssignment","src":"2118:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2130:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2141:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2126:3:103"},"nodeType":"YulFunctionCall","src":"2126:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2118:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1895:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1909:4:103","type":""}],"src":"1744:407:103"},{"body":{"nodeType":"YulBlock","src":"2201:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"2265:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2274:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2277:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2267:6:103"},"nodeType":"YulFunctionCall","src":"2267:12:103"},"nodeType":"YulExpressionStatement","src":"2267:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2224:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2235:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2250:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2255:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2246:3:103"},"nodeType":"YulFunctionCall","src":"2246:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2259:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2242:3:103"},"nodeType":"YulFunctionCall","src":"2242:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2231:3:103"},"nodeType":"YulFunctionCall","src":"2231:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2221:2:103"},"nodeType":"YulFunctionCall","src":"2221:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2214:6:103"},"nodeType":"YulFunctionCall","src":"2214:50:103"},"nodeType":"YulIf","src":"2211:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2190:5:103","type":""}],"src":"2156:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c4d66de814610030575b600080fd5b61004361003e366004610337565b610045565b005b600054610100900460ff16158080156100655750600054600160ff909116105b806100865750610074306101cf565b158015610086575060005460ff166001145b6100ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610111576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561013b600090565b6541636365737360d01b1461017d5761015c6541636365737360d01b6101e2565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101856102ca565b80156101cb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561022c57600080fd5b505afa158015610240573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610264919061035a565b90506001600160a01b0381166101dd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016100e5565b600054610100900460ff166103355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016100e5565b565b600060208284031215610348578081fd5b813561035381610372565b9392505050565b60006020828403121561036b578081fd5b8151610353815b6001600160a01b038116811461038757600080fd5b5056fea26469706673582212207a5000e854af590ede146fd80aeb1020a519941888a6dccd93415a3d32e7307364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x337 JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x65 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x86 JUMPI POP PUSH2 0x74 ADDRESS PUSH2 0x1CF JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x86 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x111 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x13B PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x17D JUMPI PUSH2 0x15C PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1E2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x185 PUSH2 0x2CA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x240 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x264 SWAP2 SWAP1 PUSH2 0x35A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x335 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x348 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x353 DUP2 PUSH2 0x372 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x353 DUP2 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0x5000E854AF590EDE146FD80AEB1020A519941888A6DCCD93415A3D ORIGIN 0xE7 ADDRESS PUSH20 0x64736F6C63430008020033000000000000000000 ","sourceMap":"311:1514:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1143:232;;;;;;:::i;:::-;;:::i;:::-;;;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;1531:2:103;3146:190:47;;;1513:21:103;1570:2;1550:18;;;1543:30;1609:34;1589:18;;;1582:62;-1:-1:-1;;;1660:18:103;;;1653:44;1714:19;;3146:190:47;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;876:36:103;;3531:14:47;;864:2:103;849:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;688:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;661:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;1125:2:103;1703:113:88;;;1107:21:103;1164:2;1144:18;;;1137:30;1203:34;1183:18;;;1176:62;-1:-1:-1;;;1254:18:103;;;1247:35;1299:19;;1703:113:88;1097:227:103;1460:64:88;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;1946:2:103;4880:69:47;;;1928:21:103;1985:2;1965:18;;;1958:30;2024:34;2004:18;;;1997:62;-1:-1:-1;;;2075:18:103;;;2068:41;2126:19;;4880:69:47;1918:233:103;4880:69:47;1460:64:88:o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;2156:131;-1:-1:-1;;;;;2231:31:103;;2221:42;;2211:2;;2277:1;2274;2267:12;2211:2;2201:86;:::o"},"methodIdentifiers":{"initialize(address)":"c4d66de8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/CoreController.sol\":\"CoreController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/shared/CoreProxy.sol":{"CoreProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_controller","type":"address"},{"internalType":"bytes","name":"encoded_initializer","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplemntation","type":"address"}],"name":"LogCoreContractUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3715:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"121:993:103","statements":[{"body":{"nodeType":"YulBlock","src":"167:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"176:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"184:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"169:6:103"},"nodeType":"YulFunctionCall","src":"169:22:103"},"nodeType":"YulExpressionStatement","src":"169:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"142:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"151:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"138:3:103"},"nodeType":"YulFunctionCall","src":"138:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"134:3:103"},"nodeType":"YulFunctionCall","src":"134:32:103"},"nodeType":"YulIf","src":"131:2:103"},{"nodeType":"YulVariableDeclaration","src":"202:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"221:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"215:5:103"},"nodeType":"YulFunctionCall","src":"215:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"206:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"294:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"311:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"296:6:103"},"nodeType":"YulFunctionCall","src":"296:22:103"},"nodeType":"YulExpressionStatement","src":"296:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"253:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"264:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"279:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"284:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"288:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"271:3:103"},"nodeType":"YulFunctionCall","src":"271:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"260:3:103"},"nodeType":"YulFunctionCall","src":"260:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"250:2:103"},"nodeType":"YulFunctionCall","src":"250:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"243:6:103"},"nodeType":"YulFunctionCall","src":"243:50:103"},"nodeType":"YulIf","src":"240:2:103"},{"nodeType":"YulAssignment","src":"329:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"339:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"329:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"353:39:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"373:3:103"},"nodeType":"YulFunctionCall","src":"373:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"367:5:103"},"nodeType":"YulFunctionCall","src":"367:25:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"357:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"401:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"419:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"423:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"415:3:103"},"nodeType":"YulFunctionCall","src":"415:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"427:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"411:3:103"},"nodeType":"YulFunctionCall","src":"411:18:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"405:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"456:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"465:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"473:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"458:6:103"},"nodeType":"YulFunctionCall","src":"458:22:103"},"nodeType":"YulExpressionStatement","src":"458:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"444:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"452:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"441:2:103"},"nodeType":"YulFunctionCall","src":"441:14:103"},"nodeType":"YulIf","src":"438:2:103"},{"nodeType":"YulVariableDeclaration","src":"491:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"505:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"516:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"501:3:103"},"nodeType":"YulFunctionCall","src":"501:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"495:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"571:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"580:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"588:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"573:6:103"},"nodeType":"YulFunctionCall","src":"573:22:103"},"nodeType":"YulExpressionStatement","src":"573:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"550:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"554:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"546:3:103"},"nodeType":"YulFunctionCall","src":"546:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"561:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"542:3:103"},"nodeType":"YulFunctionCall","src":"542:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"535:6:103"},"nodeType":"YulFunctionCall","src":"535:35:103"},"nodeType":"YulIf","src":"532:2:103"},{"nodeType":"YulVariableDeclaration","src":"606:19:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"622:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"616:5:103"},"nodeType":"YulFunctionCall","src":"616:9:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"610:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"648:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"650:16:103"},"nodeType":"YulFunctionCall","src":"650:18:103"},"nodeType":"YulExpressionStatement","src":"650:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"640:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"644:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"637:2:103"},"nodeType":"YulFunctionCall","src":"637:10:103"},"nodeType":"YulIf","src":"634:2:103"},{"nodeType":"YulVariableDeclaration","src":"679:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"693:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"689:3:103"},"nodeType":"YulFunctionCall","src":"689:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"683:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"705:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"725:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"719:5:103"},"nodeType":"YulFunctionCall","src":"719:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"709:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"737:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"759:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"783:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"787:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"779:3:103"},"nodeType":"YulFunctionCall","src":"779:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"794:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"775:3:103"},"nodeType":"YulFunctionCall","src":"775:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"799:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"771:3:103"},"nodeType":"YulFunctionCall","src":"771:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"804:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"767:3:103"},"nodeType":"YulFunctionCall","src":"767:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"755:3:103"},"nodeType":"YulFunctionCall","src":"755:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"741:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"867:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"869:16:103"},"nodeType":"YulFunctionCall","src":"869:18:103"},"nodeType":"YulExpressionStatement","src":"869:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"826:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"838:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"823:2:103"},"nodeType":"YulFunctionCall","src":"823:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"846:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"858:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"843:2:103"},"nodeType":"YulFunctionCall","src":"843:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"820:2:103"},"nodeType":"YulFunctionCall","src":"820:46:103"},"nodeType":"YulIf","src":"817:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"905:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"909:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"898:6:103"},"nodeType":"YulFunctionCall","src":"898:22:103"},"nodeType":"YulExpressionStatement","src":"898:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"936:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"944:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"929:6:103"},"nodeType":"YulFunctionCall","src":"929:18:103"},"nodeType":"YulExpressionStatement","src":"929:18:103"},{"body":{"nodeType":"YulBlock","src":"993:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1002:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1010:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"995:6:103"},"nodeType":"YulFunctionCall","src":"995:22:103"},"nodeType":"YulExpressionStatement","src":"995:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"970:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"974:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"966:3:103"},"nodeType":"YulFunctionCall","src":"966:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"979:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"962:3:103"},"nodeType":"YulFunctionCall","src":"962:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"984:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"959:2:103"},"nodeType":"YulFunctionCall","src":"959:33:103"},"nodeType":"YulIf","src":"956:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1054:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1058:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1050:3:103"},"nodeType":"YulFunctionCall","src":"1050:11:103"},{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1067:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1075:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1063:3:103"},"nodeType":"YulFunctionCall","src":"1063:15:103"},{"name":"_3","nodeType":"YulIdentifier","src":"1080:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1028:21:103"},"nodeType":"YulFunctionCall","src":"1028:55:103"},"nodeType":"YulExpressionStatement","src":"1028:55:103"},{"nodeType":"YulAssignment","src":"1092:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1102:6:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1092:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"79:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"90:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"102:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"110:6:103","type":""}],"src":"14:1100:103"},{"body":{"nodeType":"YulBlock","src":"1256:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1266:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1286:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1280:5:103"},"nodeType":"YulFunctionCall","src":"1280:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1270:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1328:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1336:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1324:3:103"},"nodeType":"YulFunctionCall","src":"1324:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"1343:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1348:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1302:21:103"},"nodeType":"YulFunctionCall","src":"1302:53:103"},"nodeType":"YulExpressionStatement","src":"1302:53:103"},{"nodeType":"YulAssignment","src":"1364:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1375:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1380:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1371:3:103"},"nodeType":"YulFunctionCall","src":"1371:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1364:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"1232:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1237:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1248:3:103","type":""}],"src":"1119:274:103"},{"body":{"nodeType":"YulBlock","src":"1527:175:103","statements":[{"nodeType":"YulAssignment","src":"1537:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1549:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1560:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1545:3:103"},"nodeType":"YulFunctionCall","src":"1545:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1537:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"1572:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1590:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1595:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1586:3:103"},"nodeType":"YulFunctionCall","src":"1586:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1599:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1582:3:103"},"nodeType":"YulFunctionCall","src":"1582:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1576:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1617:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1632:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1640:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1628:3:103"},"nodeType":"YulFunctionCall","src":"1628:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1610:6:103"},"nodeType":"YulFunctionCall","src":"1610:34:103"},"nodeType":"YulExpressionStatement","src":"1610:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1664:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1675:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1660:3:103"},"nodeType":"YulFunctionCall","src":"1660:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1684:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1692:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1680:3:103"},"nodeType":"YulFunctionCall","src":"1680:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1653:6:103"},"nodeType":"YulFunctionCall","src":"1653:43:103"},"nodeType":"YulExpressionStatement","src":"1653:43:103"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1488:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1499:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1507:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1518:4:103","type":""}],"src":"1398:304:103"},{"body":{"nodeType":"YulBlock","src":"1828:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1845:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1856:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1838:6:103"},"nodeType":"YulFunctionCall","src":"1838:21:103"},"nodeType":"YulExpressionStatement","src":"1838:21:103"},{"nodeType":"YulVariableDeclaration","src":"1868:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1888:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1882:5:103"},"nodeType":"YulFunctionCall","src":"1882:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1872:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1926:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1911:3:103"},"nodeType":"YulFunctionCall","src":"1911:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1931:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1904:6:103"},"nodeType":"YulFunctionCall","src":"1904:34:103"},"nodeType":"YulExpressionStatement","src":"1904:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1973:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1981:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1969:3:103"},"nodeType":"YulFunctionCall","src":"1969:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1990:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2001:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1986:3:103"},"nodeType":"YulFunctionCall","src":"1986:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"2006:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1947:21:103"},"nodeType":"YulFunctionCall","src":"1947:66:103"},"nodeType":"YulExpressionStatement","src":"1947:66:103"},{"nodeType":"YulAssignment","src":"2022:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2038:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2057:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2065:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2053:3:103"},"nodeType":"YulFunctionCall","src":"2053:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2070:3:103"},"nodeType":"YulFunctionCall","src":"2070:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2049:3:103"},"nodeType":"YulFunctionCall","src":"2049:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2081:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2030:3:103"},"nodeType":"YulFunctionCall","src":"2030:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2022:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1797:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1808:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1819:4:103","type":""}],"src":"1707:383:103"},{"body":{"nodeType":"YulBlock","src":"2269:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2286:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2297:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2279:6:103"},"nodeType":"YulFunctionCall","src":"2279:21:103"},"nodeType":"YulExpressionStatement","src":"2279:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2320:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2331:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2316:3:103"},"nodeType":"YulFunctionCall","src":"2316:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2336:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2309:6:103"},"nodeType":"YulFunctionCall","src":"2309:30:103"},"nodeType":"YulExpressionStatement","src":"2309:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2359:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2370:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2355:3:103"},"nodeType":"YulFunctionCall","src":"2355:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2375:34:103","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2348:6:103"},"nodeType":"YulFunctionCall","src":"2348:62:103"},"nodeType":"YulExpressionStatement","src":"2348:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2430:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2441:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2426:3:103"},"nodeType":"YulFunctionCall","src":"2426:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2446:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2419:6:103"},"nodeType":"YulFunctionCall","src":"2419:36:103"},"nodeType":"YulExpressionStatement","src":"2419:36:103"},{"nodeType":"YulAssignment","src":"2464:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2476:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2487:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2472:3:103"},"nodeType":"YulFunctionCall","src":"2472:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2464:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2246:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2260:4:103","type":""}],"src":"2095:402:103"},{"body":{"nodeType":"YulBlock","src":"2676:235:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2693:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2704:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2686:6:103"},"nodeType":"YulFunctionCall","src":"2686:21:103"},"nodeType":"YulExpressionStatement","src":"2686:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2738:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2723:3:103"},"nodeType":"YulFunctionCall","src":"2723:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2743:2:103","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2716:6:103"},"nodeType":"YulFunctionCall","src":"2716:30:103"},"nodeType":"YulExpressionStatement","src":"2716:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2766:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2777:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2762:3:103"},"nodeType":"YulFunctionCall","src":"2762:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2782:34:103","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2755:6:103"},"nodeType":"YulFunctionCall","src":"2755:62:103"},"nodeType":"YulExpressionStatement","src":"2755:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2837:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2848:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2833:3:103"},"nodeType":"YulFunctionCall","src":"2833:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2853:15:103","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2826:6:103"},"nodeType":"YulFunctionCall","src":"2826:43:103"},"nodeType":"YulExpressionStatement","src":"2826:43:103"},{"nodeType":"YulAssignment","src":"2878:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2890:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2901:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2886:3:103"},"nodeType":"YulFunctionCall","src":"2886:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2878:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2653:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2667:4:103","type":""}],"src":"2502:409:103"},{"body":{"nodeType":"YulBlock","src":"3090:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3107:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3118:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3100:6:103"},"nodeType":"YulFunctionCall","src":"3100:21:103"},"nodeType":"YulExpressionStatement","src":"3100:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3152:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3137:3:103"},"nodeType":"YulFunctionCall","src":"3137:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3157:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3130:6:103"},"nodeType":"YulFunctionCall","src":"3130:30:103"},"nodeType":"YulExpressionStatement","src":"3130:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3180:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3191:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3176:3:103"},"nodeType":"YulFunctionCall","src":"3176:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3196:34:103","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3169:6:103"},"nodeType":"YulFunctionCall","src":"3169:62:103"},"nodeType":"YulExpressionStatement","src":"3169:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3262:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3247:3:103"},"nodeType":"YulFunctionCall","src":"3247:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3267:8:103","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3240:6:103"},"nodeType":"YulFunctionCall","src":"3240:36:103"},"nodeType":"YulExpressionStatement","src":"3240:36:103"},{"nodeType":"YulAssignment","src":"3285:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3297:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3308:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3293:3:103"},"nodeType":"YulFunctionCall","src":"3293:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3285:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3067:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3081:4:103","type":""}],"src":"2916:402:103"},{"body":{"nodeType":"YulBlock","src":"3376:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3386:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3395:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3390:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3455:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3480:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3485:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3476:3:103"},"nodeType":"YulFunctionCall","src":"3476:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3499:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3504:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3495:3:103"},"nodeType":"YulFunctionCall","src":"3495:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3489:5:103"},"nodeType":"YulFunctionCall","src":"3489:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3469:6:103"},"nodeType":"YulFunctionCall","src":"3469:39:103"},"nodeType":"YulExpressionStatement","src":"3469:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3416:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3419:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3413:2:103"},"nodeType":"YulFunctionCall","src":"3413:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3427:19:103","statements":[{"nodeType":"YulAssignment","src":"3429:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3438:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"3441:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3434:3:103"},"nodeType":"YulFunctionCall","src":"3434:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3429:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"3409:3:103","statements":[]},"src":"3405:113:103"},{"body":{"nodeType":"YulBlock","src":"3544:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3557:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3562:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3553:3:103"},"nodeType":"YulFunctionCall","src":"3553:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3571:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3546:6:103"},"nodeType":"YulFunctionCall","src":"3546:27:103"},"nodeType":"YulExpressionStatement","src":"3546:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3533:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3536:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3530:2:103"},"nodeType":"YulFunctionCall","src":"3530:13:103"},"nodeType":"YulIf","src":"3527:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3354:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"3359:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"3364:6:103","type":""}],"src":"3323:258:103"},{"body":{"nodeType":"YulBlock","src":"3618:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3635:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3642:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3647:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3638:3:103"},"nodeType":"YulFunctionCall","src":"3638:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3628:6:103"},"nodeType":"YulFunctionCall","src":"3628:31:103"},"nodeType":"YulExpressionStatement","src":"3628:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3675:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3678:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3668:6:103"},"nodeType":"YulFunctionCall","src":"3668:15:103"},"nodeType":"YulExpressionStatement","src":"3668:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3699:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3702:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3692:6:103"},"nodeType":"YulFunctionCall","src":"3692:15:103"},"nodeType":"YulExpressionStatement","src":"3692:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3586:127:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n let offset := mload(add(headStart, 32))\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let _3 := mload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value1, value1) }\n copy_memory_to_memory(add(_2, 32), add(memPtr, 32), _3)\n value1 := memPtr\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC1967: new admin is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 45)\n mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n mstore(add(headStart, 96), \"ot a contract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000c0c38038062000c0c83398101604081905262000034916200043b565b818162000044828260006200005a565b506200005290503362000097565b5050620005a9565b6200006583620000f2565b600082511180620000735750805b1562000092576200009083836200013460201b620001ae1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c262000163565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ef816200019c565b50565b620000fd8162000251565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015c838360405180606001604052806027815260200162000be56027913962000305565b9392505050565b60006200018d60008051602062000bc583398151915260001b620003eb60201b620001da1760201c565b546001600160a01b0316905090565b6001600160a01b038116620002075760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200023060008051602062000bc583398151915260001b620003eb60201b620001da1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200026781620003ee60201b620001dd1760201c565b620002cb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001fe565b80620002307f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003eb60201b620001da1760201c565b60606001600160a01b0384163b6200036f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001fe565b600080856001600160a01b0316856040516200038c919062000511565b600060405180830381855af49150503d8060008114620003c9576040519150601f19603f3d011682016040523d82523d6000602084013e620003ce565b606091505b509092509050620003e1828286620003fd565b9695505050505050565b90565b6001600160a01b03163b151590565b606083156200040e5750816200015c565b8251156200041f5782518084602001fd5b8160405162461bcd60e51b8152600401620001fe91906200052f565b600080604083850312156200044e578182fd5b82516001600160a01b038116811462000465578283fd5b60208401519092506001600160401b038082111562000482578283fd5b818501915085601f83011262000496578283fd5b815181811115620004ab57620004ab62000593565b604051601f8201601f19908116603f01168101908382118183101715620004d657620004d662000593565b81604052828152886020848701011115620004ef578586fd5b6200050283602083016020880162000564565b80955050505050509250929050565b600082516200052581846020870162000564565b9190910192915050565b60006020825282518060208401526200055081604085016020870162000564565b601f01601f19169190910160400192915050565b60005b838110156200058157818101518382015260200162000567565b83811115620000905750506000910152565b634e487b7160e01b600052604160045260246000fd5b61060c80620005b96000396000f3fe60806040526004361061002d5760003560e01c80634f1ef286146100445780635c60da1b146100575761003c565b3661003c5761003a610088565b005b61003a610088565b61003a6100523660046104a9565b61009a565b34801561006357600080fd5b5061006c61019f565b6040516001600160a01b03909116815260200160405180910390f35b6100986100936101ec565b6101f6565b565b6100a261021f565b6001600160a01b0316336001600160a01b0316146101075760405162461bcd60e51b815260206004820152601760248201527f4552524f523a4352502d3030313a4e4f545f41444d494e00000000000000000060448201526064015b60405180910390fd5b60006101116101ec565b90506101568484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610252915050565b604080516001600160a01b038084168252861660208201527faca1087105eb43beb9d5a0283455ab4c7fc8e7412810dca909839c8c2f8be7b5910160405180910390a150505050565b60006101a96101ec565b905090565b60606101d383836040518060600160405280602781526020016105b06027913961027d565b9392505050565b90565b6001600160a01b03163b151590565b60006101a961035a565b3660008037600080366000845af43d6000803e808015610215573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b61025b83610382565b6000825111806102685750805b1561021a5761027783836101ae565b50505050565b60606001600160a01b0384163b6102e55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016100fe565b600080856001600160a01b0316856040516103009190610534565b600060405180830381855af49150503d806000811461033b576040519150601f19603f3d011682016040523d82523d6000602084013e610340565b606091505b50915091506103508282866103c2565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610243565b61038b816103fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156103d15750816101d3565b8251156103e15782518084602001fd5b8160405162461bcd60e51b81526004016100fe9190610550565b6001600160a01b0381163b6104685760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100fe565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000604084860312156104bd578283fd5b83356001600160a01b03811681146104d3578384fd5b9250602084013567ffffffffffffffff808211156104ef578384fd5b818601915086601f830112610502578384fd5b813581811115610510578485fd5b876020828501011115610521578485fd5b6020830194508093505050509250925092565b60008251610546818460208701610583565b9190910192915050565b600060208252825180602084015261056f816040850160208701610583565b601f01601f19169190910160400192915050565b60005b8381101561059e578181015183820152602001610586565b83811115610277575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1938722abe7a1266a6059456b8e2596f1ccd82ddbf52882350a27c535c239964736f6c63430008020033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xC0C CODESIZE SUB DUP1 PUSH3 0xC0C DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x43B JUMP JUMPDEST DUP2 DUP2 PUSH3 0x44 DUP3 DUP3 PUSH1 0x0 PUSH3 0x5A JUMP JUMPDEST POP PUSH3 0x52 SWAP1 POP CALLER PUSH3 0x97 JUMP JUMPDEST POP POP PUSH3 0x5A9 JUMP JUMPDEST PUSH3 0x65 DUP4 PUSH3 0xF2 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH3 0x73 JUMPI POP DUP1 JUMPDEST ISZERO PUSH3 0x92 JUMPI PUSH3 0x90 DUP4 DUP4 PUSH3 0x134 PUSH1 0x20 SHL PUSH3 0x1AE OR PUSH1 0x20 SHR JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH3 0xC2 PUSH3 0x163 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP5 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH3 0xEF DUP2 PUSH3 0x19C JUMP JUMPDEST POP JUMP JUMPDEST PUSH3 0xFD DUP2 PUSH3 0x251 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH3 0x15C DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xBE5 PUSH1 0x27 SWAP2 CODECOPY PUSH3 0x305 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x18D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0xBC5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SHL PUSH3 0x3EB PUSH1 0x20 SHL PUSH3 0x1DA OR PUSH1 0x20 SHR JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x207 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH3 0x230 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0xBC5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SHL PUSH3 0x3EB PUSH1 0x20 SHL PUSH3 0x1DA OR PUSH1 0x20 SHR JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH3 0x267 DUP2 PUSH3 0x3EE PUSH1 0x20 SHL PUSH3 0x1DD OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x2CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0x1FE JUMP JUMPDEST DUP1 PUSH3 0x230 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH3 0x3EB PUSH1 0x20 SHL PUSH3 0x1DA OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH3 0x36F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0x1FE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH3 0x38C SWAP2 SWAP1 PUSH3 0x511 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH3 0x3C9 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH3 0x3CE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH3 0x3E1 DUP3 DUP3 DUP7 PUSH3 0x3FD JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH3 0x40E JUMPI POP DUP2 PUSH3 0x15C JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH3 0x41F JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x1FE SWAP2 SWAP1 PUSH3 0x52F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x44E JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x465 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x482 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x496 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x4AB JUMPI PUSH3 0x4AB PUSH3 0x593 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x4D6 JUMPI PUSH3 0x4D6 PUSH3 0x593 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH3 0x4EF JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH3 0x502 DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH3 0x564 JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH3 0x525 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH3 0x564 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH3 0x550 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH3 0x564 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x581 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x567 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x90 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x60C DUP1 PUSH3 0x5B9 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x57 JUMPI PUSH2 0x3C JUMP JUMPDEST CALLDATASIZE PUSH2 0x3C JUMPI PUSH2 0x3A PUSH2 0x88 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A PUSH2 0x88 JUMP JUMPDEST PUSH2 0x3A PUSH2 0x52 CALLDATASIZE PUSH1 0x4 PUSH2 0x4A9 JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C PUSH2 0x19F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x98 PUSH2 0x93 PUSH2 0x1EC JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xA2 PUSH2 0x21F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x107 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352502D3030313A4E4F545F41444D494E000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x111 PUSH2 0x1EC JUMP JUMPDEST SWAP1 POP PUSH2 0x156 DUP5 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x252 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xACA1087105EB43BEB9D5A0283455AB4C7FC8E7412810DCA909839C8C2F8BE7B5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A9 PUSH2 0x1EC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1D3 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5B0 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x27D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A9 PUSH2 0x35A JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x25B DUP4 PUSH2 0x382 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x268 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x21A JUMPI PUSH2 0x277 DUP4 DUP4 PUSH2 0x1AE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x2E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xFE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x300 SWAP2 SWAP1 PUSH2 0x534 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x33B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x340 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x350 DUP3 DUP3 DUP7 PUSH2 0x3C2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x243 JUMP JUMPDEST PUSH2 0x38B DUP2 PUSH2 0x3FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3D1 JUMPI POP DUP2 PUSH2 0x1D3 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x3E1 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x550 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x468 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xFE JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4BD JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4D3 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x4EF JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x502 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x510 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x521 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x546 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x56F DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x59E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x586 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x277 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212203E1938 PUSH19 0x2ABE7A1266A6059456B8E2596F1CCD82DDBF52 DUP9 0x23 POP LOG2 PUSH29 0x535C239964736F6C63430008020033B53127684A568B3173AE13B9F8A6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C65640000 ","sourceMap":"203:881:89:-:0;;;420:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;510:11;523:19;1024:39:43;510:11:89;523:19;1057:5:43;1024:17;:39::i;:::-;-1:-1:-1;561:24:89::1;::::0;-1:-1:-1;574:10:89::1;561:12;:24::i;:::-;420:173:::0;;203:881;;2183:295:44;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;;;;;:53;;:::i;:::-;;2360:112;2183:295;;;:::o;4624:135::-;4688:35;4701:11;:9;:11::i;:::-;4688:35;;;-1:-1:-1;;;;;1628:15:103;;;1610:34;;1680:15;;;1675:2;1660:18;;1653:43;1545:18;4688:35:44;;;;;;;4733:19;4743:8;4733:9;:19::i;:::-;4624:135;:::o;1897:152::-;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:44;;;;;;;;1897:152;:::o;6570:198:58:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:58:o;4108:122:44:-;4152:7;4178:39;-1:-1:-1;;;;;;;;;;;4205:11:44;;4178:26;;;;;:39;;:::i;:::-;:45;-1:-1:-1;;;;;4178:45:44;;-1:-1:-1;4108:122:44;:::o;4312:201::-;-1:-1:-1;;;;;4375:22:44;;4367:73;;;;-1:-1:-1;;;4367:73:44;;2297:2:103;4367:73:44;;;2279:21:103;2336:2;2316:18;;;2309:30;2375:34;2355:18;;;2348:62;-1:-1:-1;;;2426:18:103;;;2419:36;2472:19;;4367:73:44;;;;;;;;;4498:8;4450:39;-1:-1:-1;;;;;;;;;;;4477:11:44;;4450:26;;;;;:39;;:::i;:::-;:56;;-1:-1:-1;;;;;;4450:56:44;-1:-1:-1;;;;;4450:56:44;;;;;;;;;;-1:-1:-1;4312:201:44:o;1532:259::-;1613:37;1632:17;1613:18;;;;;:37;;:::i;:::-;1605:95;;;;-1:-1:-1;;;1605:95:44;;2704:2:103;1605:95:44;;;2686:21:103;2743:2;2723:18;;;2716:30;2782:34;2762:18;;;2755:62;-1:-1:-1;;;2833:18:103;;;2826:43;2886:19;;1605:95:44;2676:235:103;1605:95:44;1767:17;1710:48;1030:66;1737:20;;1710:26;;;;;:48;;:::i;6954:387:58:-;7095:12;-1:-1:-1;;;;;1465:19:58;;;7119:69;;;;-1:-1:-1;;;7119:69:58;;3118:2:103;7119:69:58;;;3100:21:103;3157:2;3137:18;;;3130:30;3196:34;3176:18;;;3169:62;-1:-1:-1;;;3247:18:103;;;3240:36;3293:19;;7119:69:58;3090:228:103;7119:69:58;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:58;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7199:67:58;;-1:-1:-1;7199:67:58;-1:-1:-1;7283:51:58;7199:67;;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:58:o;1614:190:60:-;1784:4;1760:38::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;:23;;;1175:320::o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:58;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:58;;;;;;;;:::i;14:1100:103:-;;;163:2;151:9;142:7;138:23;134:32;131:2;;;184:6;176;169:22;131:2;215:16;;-1:-1:-1;;;;;260:31:103;;250:42;;240:2;;311:6;303;296:22;240:2;388;373:18;;367:25;339:5;;-1:-1:-1;;;;;;441:14:103;;;438:2;;;473:6;465;458:22;438:2;516:6;505:9;501:22;491:32;;561:7;554:4;550:2;546:13;542:27;532:2;;588:6;580;573:22;532:2;622;616:9;644:2;640;637:10;634:2;;;650:18;;:::i;:::-;725:2;719:9;693:2;779:13;;-1:-1:-1;;775:22:103;;;799:2;771:31;767:40;755:53;;;823:18;;;843:22;;;820:46;817:2;;;869:18;;:::i;:::-;909:10;905:2;898:22;944:2;936:6;929:18;984:7;979:2;974;970;966:11;962:20;959:33;956:2;;;1010:6;1002;995:22;956:2;1028:55;1080:2;1075;1067:6;1063:15;1058:2;1054;1050:11;1028:55;:::i;:::-;1102:6;1092:16;;;;;;;121:993;;;;;:::o;1119:274::-;;1286:6;1280:13;1302:53;1348:6;1343:3;1336:4;1328:6;1324:17;1302:53;:::i;:::-;1371:16;;;;;1256:137;-1:-1:-1;;1256:137:103:o;1707:383::-;;1856:2;1845:9;1838:21;1888:6;1882:13;1931:6;1926:2;1915:9;1911:18;1904:34;1947:66;2006:6;2001:2;1990:9;1986:18;1981:2;1973:6;1969:15;1947:66;:::i;:::-;2074:2;2053:15;-1:-1:-1;;2049:29:103;2034:45;;;;2081:2;2030:54;;1828:262;-1:-1:-1;;1828:262:103:o;3323:258::-;3395:1;3405:113;3419:6;3416:1;3413:13;3405:113;;;3495:11;;;3489:18;3476:11;;;3469:39;3441:2;3434:10;3405:113;;;3536:6;3533:1;3530:13;3527:2;;;-1:-1:-1;;3571:1:103;3553:16;;3546:27;3376:205::o;3586:127::-;3647:10;3642:3;3638:20;3635:1;3628:31;3678:4;3675:1;3668:15;3702:4;3699:1;3692:15;3618:95;203:881:89;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3461:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"120:719:103","statements":[{"body":{"nodeType":"YulBlock","src":"166:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"175:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"183:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"168:6:103"},"nodeType":"YulFunctionCall","src":"168:22:103"},"nodeType":"YulExpressionStatement","src":"168:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"141:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"150:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"137:3:103"},"nodeType":"YulFunctionCall","src":"137:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"162:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"133:3:103"},"nodeType":"YulFunctionCall","src":"133:32:103"},"nodeType":"YulIf","src":"130:2:103"},{"nodeType":"YulVariableDeclaration","src":"201:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"227:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"214:12:103"},"nodeType":"YulFunctionCall","src":"214:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"205:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"300:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"309:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"302:6:103"},"nodeType":"YulFunctionCall","src":"302:22:103"},"nodeType":"YulExpressionStatement","src":"302:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"259:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"270:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"285:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"290:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"281:3:103"},"nodeType":"YulFunctionCall","src":"281:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"294:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"277:3:103"},"nodeType":"YulFunctionCall","src":"277:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"266:3:103"},"nodeType":"YulFunctionCall","src":"266:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"256:2:103"},"nodeType":"YulFunctionCall","src":"256:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"249:6:103"},"nodeType":"YulFunctionCall","src":"249:50:103"},"nodeType":"YulIf","src":"246:2:103"},{"nodeType":"YulAssignment","src":"335:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"345:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"335:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"359:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"401:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"386:3:103"},"nodeType":"YulFunctionCall","src":"386:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"373:12:103"},"nodeType":"YulFunctionCall","src":"373:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"363:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"414:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"424:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"418:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"469:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"478:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"486:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"471:6:103"},"nodeType":"YulFunctionCall","src":"471:22:103"},"nodeType":"YulExpressionStatement","src":"471:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"457:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"465:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"454:2:103"},"nodeType":"YulFunctionCall","src":"454:14:103"},"nodeType":"YulIf","src":"451:2:103"},{"nodeType":"YulVariableDeclaration","src":"504:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"518:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"529:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"514:3:103"},"nodeType":"YulFunctionCall","src":"514:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"508:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"584:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"593:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"601:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"586:6:103"},"nodeType":"YulFunctionCall","src":"586:22:103"},"nodeType":"YulExpressionStatement","src":"586:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"563:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"567:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"559:3:103"},"nodeType":"YulFunctionCall","src":"559:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"574:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"555:3:103"},"nodeType":"YulFunctionCall","src":"555:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"548:6:103"},"nodeType":"YulFunctionCall","src":"548:35:103"},"nodeType":"YulIf","src":"545:2:103"},{"nodeType":"YulVariableDeclaration","src":"619:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"646:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"633:12:103"},"nodeType":"YulFunctionCall","src":"633:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"623:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"676:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"685:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"693:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"678:6:103"},"nodeType":"YulFunctionCall","src":"678:22:103"},"nodeType":"YulExpressionStatement","src":"678:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"664:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"672:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"661:2:103"},"nodeType":"YulFunctionCall","src":"661:14:103"},"nodeType":"YulIf","src":"658:2:103"},{"body":{"nodeType":"YulBlock","src":"752:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"761:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"769:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"754:6:103"},"nodeType":"YulFunctionCall","src":"754:22:103"},"nodeType":"YulExpressionStatement","src":"754:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"725:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"729:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"721:3:103"},"nodeType":"YulFunctionCall","src":"721:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"738:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"717:3:103"},"nodeType":"YulFunctionCall","src":"717:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"743:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"714:2:103"},"nodeType":"YulFunctionCall","src":"714:37:103"},"nodeType":"YulIf","src":"711:2:103"},{"nodeType":"YulAssignment","src":"787:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"801:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"805:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"797:3:103"},"nodeType":"YulFunctionCall","src":"797:11:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"787:6:103"}]},{"nodeType":"YulAssignment","src":"817:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"827:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"817:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"70:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"81:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"93:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"101:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"109:6:103","type":""}],"src":"14:825:103"},{"body":{"nodeType":"YulBlock","src":"981:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"991:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1011:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1005:5:103"},"nodeType":"YulFunctionCall","src":"1005:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"995:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1053:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1061:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1049:3:103"},"nodeType":"YulFunctionCall","src":"1049:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"1068:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1073:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1027:21:103"},"nodeType":"YulFunctionCall","src":"1027:53:103"},"nodeType":"YulExpressionStatement","src":"1027:53:103"},{"nodeType":"YulAssignment","src":"1089:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1100:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1105:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1096:3:103"},"nodeType":"YulFunctionCall","src":"1096:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1089:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"957:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"962:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"973:3:103","type":""}],"src":"844:274:103"},{"body":{"nodeType":"YulBlock","src":"1224:102:103","statements":[{"nodeType":"YulAssignment","src":"1234:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1246:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1257:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1242:3:103"},"nodeType":"YulFunctionCall","src":"1242:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1234:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1276:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1291:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1307:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1312:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1303:3:103"},"nodeType":"YulFunctionCall","src":"1303:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1316:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1299:3:103"},"nodeType":"YulFunctionCall","src":"1299:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1287:3:103"},"nodeType":"YulFunctionCall","src":"1287:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1269:6:103"},"nodeType":"YulFunctionCall","src":"1269:51:103"},"nodeType":"YulExpressionStatement","src":"1269:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1193:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1204:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1215:4:103","type":""}],"src":"1123:203:103"},{"body":{"nodeType":"YulBlock","src":"1460:175:103","statements":[{"nodeType":"YulAssignment","src":"1470:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1493:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1478:3:103"},"nodeType":"YulFunctionCall","src":"1478:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1470:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"1505:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1523:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1528:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1519:3:103"},"nodeType":"YulFunctionCall","src":"1519:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1532:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1515:3:103"},"nodeType":"YulFunctionCall","src":"1515:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1509:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1550:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1565:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1573:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1561:3:103"},"nodeType":"YulFunctionCall","src":"1561:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1543:6:103"},"nodeType":"YulFunctionCall","src":"1543:34:103"},"nodeType":"YulExpressionStatement","src":"1543:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1597:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1608:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1593:3:103"},"nodeType":"YulFunctionCall","src":"1593:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1617:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1625:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1613:3:103"},"nodeType":"YulFunctionCall","src":"1613:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1586:6:103"},"nodeType":"YulFunctionCall","src":"1586:43:103"},"nodeType":"YulExpressionStatement","src":"1586:43:103"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1421:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1432:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1440:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1451:4:103","type":""}],"src":"1331:304:103"},{"body":{"nodeType":"YulBlock","src":"1761:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1778:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1789:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1771:6:103"},"nodeType":"YulFunctionCall","src":"1771:21:103"},"nodeType":"YulExpressionStatement","src":"1771:21:103"},{"nodeType":"YulVariableDeclaration","src":"1801:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1821:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1815:5:103"},"nodeType":"YulFunctionCall","src":"1815:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1805:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1848:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1859:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1844:3:103"},"nodeType":"YulFunctionCall","src":"1844:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1864:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1837:6:103"},"nodeType":"YulFunctionCall","src":"1837:34:103"},"nodeType":"YulExpressionStatement","src":"1837:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1906:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1914:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1902:3:103"},"nodeType":"YulFunctionCall","src":"1902:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1923:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1934:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1919:3:103"},"nodeType":"YulFunctionCall","src":"1919:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1939:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1880:21:103"},"nodeType":"YulFunctionCall","src":"1880:66:103"},"nodeType":"YulExpressionStatement","src":"1880:66:103"},{"nodeType":"YulAssignment","src":"1955:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1971:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1990:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1998:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1986:3:103"},"nodeType":"YulFunctionCall","src":"1986:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2007:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2003:3:103"},"nodeType":"YulFunctionCall","src":"2003:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1982:3:103"},"nodeType":"YulFunctionCall","src":"1982:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1967:3:103"},"nodeType":"YulFunctionCall","src":"1967:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2014:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1963:3:103"},"nodeType":"YulFunctionCall","src":"1963:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1955:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1730:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1741:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1752:4:103","type":""}],"src":"1640:383:103"},{"body":{"nodeType":"YulBlock","src":"2202:173:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2219:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2230:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2212:6:103"},"nodeType":"YulFunctionCall","src":"2212:21:103"},"nodeType":"YulExpressionStatement","src":"2212:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2253:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2264:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2249:3:103"},"nodeType":"YulFunctionCall","src":"2249:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:103","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2242:6:103"},"nodeType":"YulFunctionCall","src":"2242:30:103"},"nodeType":"YulExpressionStatement","src":"2242:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2303:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2288:3:103"},"nodeType":"YulFunctionCall","src":"2288:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2308:25:103","type":"","value":"ERROR:CRP-001:NOT_ADMIN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2281:6:103"},"nodeType":"YulFunctionCall","src":"2281:53:103"},"nodeType":"YulExpressionStatement","src":"2281:53:103"},{"nodeType":"YulAssignment","src":"2343:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2355:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2366:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2351:3:103"},"nodeType":"YulFunctionCall","src":"2351:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2343:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0040c7b535fe8d83323ecc73a5169249b6133b5d656b3adacba7405479c95dea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2179:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2193:4:103","type":""}],"src":"2028:347:103"},{"body":{"nodeType":"YulBlock","src":"2554:235:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2582:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2564:6:103"},"nodeType":"YulFunctionCall","src":"2564:21:103"},"nodeType":"YulExpressionStatement","src":"2564:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2616:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2601:3:103"},"nodeType":"YulFunctionCall","src":"2601:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2621:2:103","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2594:6:103"},"nodeType":"YulFunctionCall","src":"2594:30:103"},"nodeType":"YulExpressionStatement","src":"2594:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2640:3:103"},"nodeType":"YulFunctionCall","src":"2640:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2660:34:103","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2633:6:103"},"nodeType":"YulFunctionCall","src":"2633:62:103"},"nodeType":"YulExpressionStatement","src":"2633:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2715:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2726:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2711:3:103"},"nodeType":"YulFunctionCall","src":"2711:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2731:15:103","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2704:6:103"},"nodeType":"YulFunctionCall","src":"2704:43:103"},"nodeType":"YulExpressionStatement","src":"2704:43:103"},{"nodeType":"YulAssignment","src":"2756:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2779:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2764:3:103"},"nodeType":"YulFunctionCall","src":"2764:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2756:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2531:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2545:4:103","type":""}],"src":"2380:409:103"},{"body":{"nodeType":"YulBlock","src":"2968:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2996:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2978:6:103"},"nodeType":"YulFunctionCall","src":"2978:21:103"},"nodeType":"YulExpressionStatement","src":"2978:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3030:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3015:3:103"},"nodeType":"YulFunctionCall","src":"3015:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3035:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3008:6:103"},"nodeType":"YulFunctionCall","src":"3008:30:103"},"nodeType":"YulExpressionStatement","src":"3008:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3058:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3069:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3054:3:103"},"nodeType":"YulFunctionCall","src":"3054:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3074:34:103","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3047:6:103"},"nodeType":"YulFunctionCall","src":"3047:62:103"},"nodeType":"YulExpressionStatement","src":"3047:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3129:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3140:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3125:3:103"},"nodeType":"YulFunctionCall","src":"3125:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3145:8:103","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3118:6:103"},"nodeType":"YulFunctionCall","src":"3118:36:103"},"nodeType":"YulExpressionStatement","src":"3118:36:103"},{"nodeType":"YulAssignment","src":"3163:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3186:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3171:3:103"},"nodeType":"YulFunctionCall","src":"3171:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3163:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2945:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2959:4:103","type":""}],"src":"2794:402:103"},{"body":{"nodeType":"YulBlock","src":"3254:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3264:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3273:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3268:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3333:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3358:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3363:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3354:3:103"},"nodeType":"YulFunctionCall","src":"3354:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3377:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3382:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3373:3:103"},"nodeType":"YulFunctionCall","src":"3373:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3367:5:103"},"nodeType":"YulFunctionCall","src":"3367:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3347:6:103"},"nodeType":"YulFunctionCall","src":"3347:39:103"},"nodeType":"YulExpressionStatement","src":"3347:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3294:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3297:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3291:2:103"},"nodeType":"YulFunctionCall","src":"3291:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3305:19:103","statements":[{"nodeType":"YulAssignment","src":"3307:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3316:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"3319:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3312:3:103"},"nodeType":"YulFunctionCall","src":"3312:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3307:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"3287:3:103","statements":[]},"src":"3283:113:103"},{"body":{"nodeType":"YulBlock","src":"3422:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3435:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3440:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3431:3:103"},"nodeType":"YulFunctionCall","src":"3431:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3449:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3424:6:103"},"nodeType":"YulFunctionCall","src":"3424:27:103"},"nodeType":"YulExpressionStatement","src":"3424:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3411:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3414:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3408:2:103"},"nodeType":"YulFunctionCall","src":"3408:13:103"},"nodeType":"YulIf","src":"3405:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3232:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"3237:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"3242:6:103","type":""}],"src":"3201:258:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value1, value1) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value1, value1) }\n value1 := add(_2, 32)\n value2 := length\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0040c7b535fe8d83323ecc73a5169249b6133b5d656b3adacba7405479c95dea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"ERROR:CRP-001:NOT_ADMIN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 45)\n mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n mstore(add(headStart, 96), \"ot a contract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061002d5760003560e01c80634f1ef286146100445780635c60da1b146100575761003c565b3661003c5761003a610088565b005b61003a610088565b61003a6100523660046104a9565b61009a565b34801561006357600080fd5b5061006c61019f565b6040516001600160a01b03909116815260200160405180910390f35b6100986100936101ec565b6101f6565b565b6100a261021f565b6001600160a01b0316336001600160a01b0316146101075760405162461bcd60e51b815260206004820152601760248201527f4552524f523a4352502d3030313a4e4f545f41444d494e00000000000000000060448201526064015b60405180910390fd5b60006101116101ec565b90506101568484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610252915050565b604080516001600160a01b038084168252861660208201527faca1087105eb43beb9d5a0283455ab4c7fc8e7412810dca909839c8c2f8be7b5910160405180910390a150505050565b60006101a96101ec565b905090565b60606101d383836040518060600160405280602781526020016105b06027913961027d565b9392505050565b90565b6001600160a01b03163b151590565b60006101a961035a565b3660008037600080366000845af43d6000803e808015610215573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b61025b83610382565b6000825111806102685750805b1561021a5761027783836101ae565b50505050565b60606001600160a01b0384163b6102e55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016100fe565b600080856001600160a01b0316856040516103009190610534565b600060405180830381855af49150503d806000811461033b576040519150601f19603f3d011682016040523d82523d6000602084013e610340565b606091505b50915091506103508282866103c2565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610243565b61038b816103fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156103d15750816101d3565b8251156103e15782518084602001fd5b8160405162461bcd60e51b81526004016100fe9190610550565b6001600160a01b0381163b6104685760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100fe565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000604084860312156104bd578283fd5b83356001600160a01b03811681146104d3578384fd5b9250602084013567ffffffffffffffff808211156104ef578384fd5b818601915086601f830112610502578384fd5b813581811115610510578485fd5b876020828501011115610521578485fd5b6020830194508093505050509250925092565b60008251610546818460208701610583565b9190910192915050565b600060208252825180602084015261056f816040850160208701610583565b601f01601f19169190910160400192915050565b60005b8381101561059e578181015183820152602001610586565b83811115610277575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1938722abe7a1266a6059456b8e2596f1ccd82ddbf52882350a27c535c239964736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x57 JUMPI PUSH2 0x3C JUMP JUMPDEST CALLDATASIZE PUSH2 0x3C JUMPI PUSH2 0x3A PUSH2 0x88 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A PUSH2 0x88 JUMP JUMPDEST PUSH2 0x3A PUSH2 0x52 CALLDATASIZE PUSH1 0x4 PUSH2 0x4A9 JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C PUSH2 0x19F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x98 PUSH2 0x93 PUSH2 0x1EC JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xA2 PUSH2 0x21F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x107 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352502D3030313A4E4F545F41444D494E000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x111 PUSH2 0x1EC JUMP JUMPDEST SWAP1 POP PUSH2 0x156 DUP5 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x252 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xACA1087105EB43BEB9D5A0283455AB4C7FC8E7412810DCA909839C8C2F8BE7B5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A9 PUSH2 0x1EC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1D3 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5B0 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x27D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A9 PUSH2 0x35A JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x25B DUP4 PUSH2 0x382 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x268 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x21A JUMPI PUSH2 0x277 DUP4 DUP4 PUSH2 0x1AE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x2E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xFE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x300 SWAP2 SWAP1 PUSH2 0x534 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x33B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x340 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x350 DUP3 DUP3 DUP7 PUSH2 0x3C2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x243 JUMP JUMPDEST PUSH2 0x38B DUP2 PUSH2 0x3FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3D1 JUMPI POP DUP2 PUSH2 0x1D3 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x3E1 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x550 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x468 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xFE JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4BD JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4D3 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x4EF JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x502 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x510 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x521 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x546 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x56F DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x59E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x586 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x277 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212203E1938 PUSH19 0x2ABE7A1266A6059456B8E2596F1CCD82DDBF52 DUP9 0x23 POP LOG2 PUSH29 0x535C239964736F6C634300080200330000000000000000000000000000 ","sourceMap":"203:881:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2898:11:45;:9;:11::i;:::-;203:881:89;;2675:11:45;:9;:11::i;710:367:89:-;;;;;;:::i;:::-;;:::i;601:101::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1287:32:103;;;1269:51;;1257:2;1242:18;601:101:89;;;;;;;2322:110:45;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;710:367:89:-;340:11;:9;:11::i;:::-;-1:-1:-1;;;;;326:25:89;:10;-1:-1:-1;;;;;326:25:89;;304:88;;;;-1:-1:-1;;;304:88:89;;2230:2:103;304:88:89;;;2212:21:103;2269:2;2249:18;;;2242:30;2308:25;2288:18;;;2281:53;2351:18;;304:88:89;;;;;;;;;855:25:::1;884:17;:15;:17::i;:::-;855:46;;914:48;932:17;951:4;;914:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;957:4:89::1;::::0;-1:-1:-1;914:17:89::1;::::0;-1:-1:-1;;914:48:89:i:1;:::-;980:89;::::0;;-1:-1:-1;;;;;1561:15:103;;;1543:34;;1613:15;;1608:2;1593:18;;1586:43;980:89:89::1;::::0;1478:18:103;980:89:89::1;;;;;;;403:1;710:367:::0;;;:::o;601:101::-;650:7;677:17;:15;:17::i;:::-;670:24;;601:101;:::o;6570:198:58:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:58:o;1614:190:60:-;1784:4;1760:38::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;:23;;;1175:320::o;1148:140:43:-;1215:12;1246:35;:33;:35::i;948:895:45:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27;1607:220;;;1027:810;:::o;4108:122:44:-;4152:7;3842:66;4178:39;:45;-1:-1:-1;;;;;4178:45:44;;-1:-1:-1;4108:122:44;:::o;2183:295::-;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;:53::i;:::-;;2183:295;;;:::o;6954:387:58:-;7095:12;-1:-1:-1;;;;;1465:19:58;;;7119:69;;;;-1:-1:-1;;;7119:69:58;;2996:2:103;7119:69:58;;;2978:21:103;3035:2;3015:18;;;3008:30;3074:34;3054:18;;;3047:62;-1:-1:-1;;;3125:18:103;;;3118:36;3171:19;;7119:69:58;2968:228:103;7119:69:58;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:58;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:67;;;;7283:51;7300:7;7309:10;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:58:o;1301:140:44:-;1354:7;1030:66;1380:48;1760:38:60;1897:152:44;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:44;;;;;;;;1897:152;:::o;7561:742:58:-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:58;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:58;;;;;;;;:::i;1532:259:44:-;-1:-1:-1;;;;;1465:19:58;;;1605:95:44;;;;-1:-1:-1;;;1605:95:44;;2582:2:103;1605:95:44;;;2564:21:103;2621:2;2601:18;;;2594:30;2660:34;2640:18;;;2633:62;-1:-1:-1;;;2711:18:103;;;2704:43;2764:19;;1605:95:44;2554:235:103;1605:95:44;1030:66;1710:74;;-1:-1:-1;;;;;;1710:74:44;-1:-1:-1;;;;;1710:74:44;;;;;;;;;;1532:259::o;14:825:103:-;;;;162:2;150:9;141:7;137:23;133:32;130:2;;;183:6;175;168:22;130:2;214:23;;-1:-1:-1;;;;;266:31:103;;256:42;;246:2;;317:6;309;302:22;246:2;345:5;-1:-1:-1;401:2:103;386:18;;373:32;424:18;454:14;;;451:2;;;486:6;478;471:22;451:2;529:6;518:9;514:22;504:32;;574:7;567:4;563:2;559:13;555:27;545:2;;601:6;593;586:22;545:2;646;633:16;672:2;664:6;661:14;658:2;;;693:6;685;678:22;658:2;743:7;738:2;729:6;725:2;721:15;717:24;714:37;711:2;;;769:6;761;754:22;711:2;805;801;797:11;787:21;;827:6;817:16;;;;;120:719;;;;;:::o;844:274::-;;1011:6;1005:13;1027:53;1073:6;1068:3;1061:4;1053:6;1049:17;1027:53;:::i;:::-;1096:16;;;;;981:137;-1:-1:-1;;981:137:103:o;1640:383::-;;1789:2;1778:9;1771:21;1821:6;1815:13;1864:6;1859:2;1848:9;1844:18;1837:34;1880:66;1939:6;1934:2;1923:9;1919:18;1914:2;1906:6;1902:15;1880:66;:::i;:::-;2007:2;1986:15;-1:-1:-1;;1982:29:103;1967:45;;;;2014:2;1963:54;;1761:262;-1:-1:-1;;1761:262:103:o;3201:258::-;3273:1;3283:113;3297:6;3294:1;3291:13;3283:113;;;3373:11;;;3367:18;3354:11;;;3347:39;3319:2;3312:10;3283:113;;;3414:6;3411:1;3408:13;3405:2;;;-1:-1:-1;;3449:1:103;3431:16;;3424:27;3254:205::o"},"methodIdentifiers":{"implementation()":"5c60da1b","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encoded_initializer\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplemntation\",\"type\":\"address\"}],\"name\":\"LogCoreContractUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/CoreProxy.sol\":\"CoreProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol\":{\"keccak256\":\"0xf223e92c2b295866c5826c62b63874f6822bd218d58fcc78b5792c0c6c682317\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6c3958aa0390c9e535c2892522729795fe5ed956f7e31409b339b19ab7bf1d5b\",\"dweb:/ipfs/QmW6ie3Gp1wKnAyAC1eciNfbHZJa9NtC2bd6fRv75PFHPh\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"contracts/shared/CoreProxy.sol\":{\"keccak256\":\"0xc688443620597ee1251e513d6cf44c2c16d84e797c45afa6ebe4f20333941e1d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://68e998e0a20b0ed578e258eecd36ce6ce4ecfca8c7107263c5124d44804c0dc5\",\"dweb:/ipfs/QmNpvZzWeZBuQsatcGgytRxtjHAeocHJsJcztugSYABpFy\"]}},\"version\":1}"}},"contracts/shared/TransferHelper.sol":{"TransferHelper":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"callSuccess","type":"bool"},{"indexed":false,"internalType":"uint256","name":"returnDataLength","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"LogTransferHelperCallFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tokenIsContract","type":"bool"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"LogTransferHelperInputValidation1Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allowance","type":"uint256"}],"name":"LogTransferHelperInputValidation2Failed","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd7fbdf31ee1e4bfbfa5b4bef9f2c1150e2a776badabfd872b32c5ef7a2de43a64736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD PUSH32 0xBDF31EE1E4BFBFA5B4BEF9F2C1150E2A776BADABFD872B32C5EF7A2DE43A6473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"595:1742:90:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;595:1742:90;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd7fbdf31ee1e4bfbfa5b4bef9f2c1150e2a776badabfd872b32c5ef7a2de43a64736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD PUSH32 0xBDF31EE1E4BFBFA5B4BEF9F2C1150E2A776BADABFD872B32C5EF7A2DE43A6473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"595:1742:90:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callSuccess\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"returnDataLength\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"LogTransferHelperCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"tokenIsContract\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"LogTransferHelperInputValidation1Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"}],\"name\":\"LogTransferHelperInputValidation2Failed\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/TransferHelper.sol\":\"TransferHelper\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]}},\"version\":1}"}},"contracts/shared/WithRegistry.sol":{"WithRegistry":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractFromRegistry","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:326:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:229:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"268:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"277:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"285:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"270:6:103"},"nodeType":"YulFunctionCall","src":"270:22:103"},"nodeType":"YulExpressionStatement","src":"270:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"238:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"249:3:103"},"nodeType":"YulFunctionCall","src":"249:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"245:3:103"},"nodeType":"YulFunctionCall","src":"245:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"234:3:103"},"nodeType":"YulFunctionCall","src":"234:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"224:2:103"},"nodeType":"YulFunctionCall","src":"224:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"217:6:103"},"nodeType":"YulFunctionCall","src":"217:50:103"},"nodeType":"YulIf","src":"214:2:103"},{"nodeType":"YulAssignment","src":"303:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"313:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:310:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b5060405161023e38038061023e83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6101a9610095600039600081816040015260a501526101a96000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063a5b25e711461007e575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61006261008c36600461015b565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b1580156100ef57600080fd5b505afa158015610103573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610127919061012d565b92915050565b60006020828403121561013e578081fd5b81516001600160a01b0381168114610154578182fd5b9392505050565b60006020828403121561016c578081fd5b503591905056fea264697066735822122073f6d3467796894695daf3d0106c32b32e072c548ba560293d99c61a987563a964736f6c63430008020033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x23E CODESIZE SUB DUP1 PUSH2 0x23E DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x44 JUMP JUMPDEST PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH2 0x72 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x55 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6B JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x1A9 PUSH2 0x95 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x40 ADD MSTORE PUSH1 0xA5 ADD MSTORE PUSH2 0x1A9 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x62 PUSH2 0x8C CALLDATASIZE PUSH1 0x4 PUSH2 0x15B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x103 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x12D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x154 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xF6D3467796894695DAF3D0106C32B32E072C548B 0xA5 PUSH1 0x29 RETURNDATASIZE SWAP10 0xC6 BYTE SWAP9 PUSH22 0x63A964736F6C63430008020033000000000000000000 ","sourceMap":"130:1780:91:-:0;;;1259:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1300:31;;-1:-1:-1;;;;;;1300:31:91;;;130:1780;;14:310:103;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:103;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:103:o;:::-;130:1780:91;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1137:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:229:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"268:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"277:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"285:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"270:6:103"},"nodeType":"YulFunctionCall","src":"270:22:103"},"nodeType":"YulExpressionStatement","src":"270:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"238:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"249:3:103"},"nodeType":"YulFunctionCall","src":"249:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"245:3:103"},"nodeType":"YulFunctionCall","src":"245:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"234:3:103"},"nodeType":"YulFunctionCall","src":"234:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"224:2:103"},"nodeType":"YulFunctionCall","src":"224:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"217:6:103"},"nodeType":"YulFunctionCall","src":"217:50:103"},"nodeType":"YulIf","src":"214:2:103"},{"nodeType":"YulAssignment","src":"303:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"313:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:310:103"},{"body":{"nodeType":"YulBlock","src":"399:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"445:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"454:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"462:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"447:6:103"},"nodeType":"YulFunctionCall","src":"447:22:103"},"nodeType":"YulExpressionStatement","src":"447:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"420:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"429:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"416:3:103"},"nodeType":"YulFunctionCall","src":"416:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"441:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"412:3:103"},"nodeType":"YulFunctionCall","src":"412:32:103"},"nodeType":"YulIf","src":"409:2:103"},{"nodeType":"YulAssignment","src":"480:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"503:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"490:12:103"},"nodeType":"YulFunctionCall","src":"490:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"480:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"365:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"376:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"388:6:103","type":""}],"src":"329:190:103"},{"body":{"nodeType":"YulBlock","src":"625:102:103","statements":[{"nodeType":"YulAssignment","src":"635:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"658:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"643:3:103"},"nodeType":"YulFunctionCall","src":"643:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"635:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"677:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"692:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"708:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"713:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"704:3:103"},"nodeType":"YulFunctionCall","src":"704:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"717:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"700:3:103"},"nodeType":"YulFunctionCall","src":"700:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"688:3:103"},"nodeType":"YulFunctionCall","src":"688:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"670:6:103"},"nodeType":"YulFunctionCall","src":"670:51:103"},"nodeType":"YulExpressionStatement","src":"670:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"594:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"605:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"616:4:103","type":""}],"src":"524:203:103"},{"body":{"nodeType":"YulBlock","src":"833:76:103","statements":[{"nodeType":"YulAssignment","src":"843:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"855:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"866:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"851:3:103"},"nodeType":"YulFunctionCall","src":"851:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"843:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"885:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"896:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"878:6:103"},"nodeType":"YulFunctionCall","src":"878:25:103"},"nodeType":"YulExpressionStatement","src":"878:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"802:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"813:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"824:4:103","type":""}],"src":"732:177:103"},{"body":{"nodeType":"YulBlock","src":"1033:102:103","statements":[{"nodeType":"YulAssignment","src":"1043:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1066:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1051:3:103"},"nodeType":"YulFunctionCall","src":"1051:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1043:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1085:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1100:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1116:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1121:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1112:3:103"},"nodeType":"YulFunctionCall","src":"1112:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1125:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1108:3:103"},"nodeType":"YulFunctionCall","src":"1108:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1096:3:103"},"nodeType":"YulFunctionCall","src":"1096:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1078:6:103"},"nodeType":"YulFunctionCall","src":"1078:51:103"},"nodeType":"YulExpressionStatement","src":"1078:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1002:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1013:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1024:4:103","type":""}],"src":"914:221:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"26665":[{"length":32,"start":64},{"length":32,"start":165}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063a5b25e711461007e575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61006261008c36600461015b565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b1580156100ef57600080fd5b505afa158015610103573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610127919061012d565b92915050565b60006020828403121561013e578081fd5b81516001600160a01b0381168114610154578182fd5b9392505050565b60006020828403121561016c578081fd5b503591905056fea264697066735822122073f6d3467796894695daf3d0106c32b32e072c548ba560293d99c61a987563a964736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x62 PUSH2 0x8C CALLDATASIZE PUSH1 0x4 PUSH2 0x15B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x103 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x12D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x154 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xF6D3467796894695DAF3D0106C32B32E072C548B 0xA5 PUSH1 0x29 RETURNDATASIZE SWAP10 0xC6 BYTE SWAP9 PUSH22 0x63A964736F6C63430008020033000000000000000000 ","sourceMap":"130:1780:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;412:35;;;;;;;;-1:-1:-1;;;;;688:32:103;;;670:51;;658:2;643:18;412:35:91;;;;;;;1344:200;;;;;;:::i;:::-;1502:35;;-1:-1:-1;;;1502:35:91;;;;;878:25:103;;;1465:13:91;;1502:8;-1:-1:-1;;;;;1502:20:91;;;;851:18:103;;1502:35:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1494:43;1344:200;-1:-1:-1;;1344:200:91:o;14:310:103:-;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:103;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:103:o;329:190::-;;441:2;429:9;420:7;416:23;412:32;409:2;;;462:6;454;447:22;409:2;-1:-1:-1;490:23:103;;399:120;-1:-1:-1;399:120:103:o"},"methodIdentifiers":{"getContractFromRegistry(bytes32)":"a5b25e71","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractFromRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/WithRegistry.sol\":\"WithRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"contracts/shared/WithRegistry.sol\":{\"keccak256\":\"0x1d52c8ad35ee149c4a0106ceb1f35d458c196248d02cb8d7b605e9963d47f706\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5780ec200f79f55f69d2e4030ceccccdbf78bc233561d03f334c4361c5425d17\",\"dweb:/ipfs/QmPjynmkMEjD9GHpreVLpWuK6qncwkKwAtNyYCyoeyzkHZ\"]}},\"version\":1}"}},"contracts/test/TestCoin.sol":{"TestCoin":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1172:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:33:103","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:61:103"},"nodeType":"YulExpressionStatement","src":"267:61:103"},{"nodeType":"YulAssignment","src":"337:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"337:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:355:103"},{"body":{"nodeType":"YulBlock","src":"475:76:103","statements":[{"nodeType":"YulAssignment","src":"485:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"508:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"485:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"527:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"538:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"520:6:103"},"nodeType":"YulFunctionCall","src":"520:25:103"},"nodeType":"YulExpressionStatement","src":"520:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"444:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"455:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"466:4:103","type":""}],"src":"374:177:103"},{"body":{"nodeType":"YulBlock","src":"604:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"639:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"660:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"669:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"674:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"665:3:103"},"nodeType":"YulFunctionCall","src":"665:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"653:6:103"},"nodeType":"YulFunctionCall","src":"653:33:103"},"nodeType":"YulExpressionStatement","src":"653:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"706:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"709:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"699:6:103"},"nodeType":"YulFunctionCall","src":"699:15:103"},"nodeType":"YulExpressionStatement","src":"699:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"734:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"739:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"727:6:103"},"nodeType":"YulFunctionCall","src":"727:17:103"},"nodeType":"YulExpressionStatement","src":"727:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"620:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"627:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"623:3:103"},"nodeType":"YulFunctionCall","src":"623:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"617:2:103"},"nodeType":"YulFunctionCall","src":"617:13:103"},"nodeType":"YulIf","src":"614:2:103"},{"nodeType":"YulAssignment","src":"763:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"774:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"777:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"770:3:103"},"nodeType":"YulFunctionCall","src":"770:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"763:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"587:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"590:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"596:3:103","type":""}],"src":"556:229:103"},{"body":{"nodeType":"YulBlock","src":"845:325:103","statements":[{"nodeType":"YulAssignment","src":"855:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"869:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"875:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"865:3:103"},"nodeType":"YulFunctionCall","src":"865:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"855:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"886:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"916:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"922:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"912:3:103"},"nodeType":"YulFunctionCall","src":"912:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"890:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"963:31:103","statements":[{"nodeType":"YulAssignment","src":"965:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"979:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"987:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"975:3:103"},"nodeType":"YulFunctionCall","src":"975:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"965:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"943:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"936:6:103"},"nodeType":"YulFunctionCall","src":"936:26:103"},"nodeType":"YulIf","src":"933:2:103"},{"body":{"nodeType":"YulBlock","src":"1053:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1074:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1081:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1086:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1077:3:103"},"nodeType":"YulFunctionCall","src":"1077:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1067:6:103"},"nodeType":"YulFunctionCall","src":"1067:31:103"},"nodeType":"YulExpressionStatement","src":"1067:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1118:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1121:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1111:6:103"},"nodeType":"YulFunctionCall","src":"1111:15:103"},"nodeType":"YulExpressionStatement","src":"1111:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1146:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1149:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1139:6:103"},"nodeType":"YulFunctionCall","src":"1139:15:103"},"nodeType":"YulExpressionStatement","src":"1139:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1009:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1032:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1040:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1029:2:103"},"nodeType":"YulFunctionCall","src":"1029:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1006:2:103"},"nodeType":"YulFunctionCall","src":"1006:38:103"},"nodeType":"YulIf","src":"1003:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"825:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"834:6:103","type":""}],"src":"790:380:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040518060400160405280600a815260200169546573742044756d6d7960b01b8152506040518060400160405280600381526020016254445960e81b81525081600390805190602001906200006992919062000199565b5080516200007f90600490602084019062000199565b505050620000a762000096620000ad60201b60201c565b69d3c21bcecceda1000000620000b1565b620002a1565b3390565b6001600160a01b0382166200010c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012091906200023f565b90915550506001600160a01b038216600090815260208190526040812080548392906200014f9084906200023f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001a79062000264565b90600052602060002090601f016020900481019282620001cb576000855562000216565b82601f10620001e657805160ff191683800117855562000216565b8280016001018555821562000216579182015b8281111562000216578251825591602001919060010190620001f9565b506200022492915062000228565b5090565b5b8082111562000224576000815560010162000229565b600082198211156200025f57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200027957607f821691505b602082108114156200029b57634e487b7160e01b600052602260045260246000fd5b50919050565b61092080620002b16000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101cc578063a9059cbb146101df578063dd62ed3e146101f2578063f76f8d7814610205576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610227565b6040516101049190610838565b60405180910390f35b61012061011b36600461080f565b6102b9565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d4565b6102d1565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461080f565b6102f5565b610134610196366004610781565b610317565b6100f7610336565b6100f76040518060400160405280600a815260200169546573742044756d6d7960b01b81525081565b6101206101da36600461080f565b610345565b6101206101ed36600461080f565b6103c5565b6101346102003660046107a2565b6103d3565b6100f76040518060400160405280600381526020016254445960e81b81525081565b606060038054610236906108af565b80601f0160208091040260200160405190810160405280929190818152602001828054610262906108af565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000336102c78185856103fe565b5060019392505050565b6000336102df858285610522565b6102ea85858561059c565b506001949350505050565b6000336102c781858561030883836103d3565b610312919061088b565b6103fe565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610236906108af565b6000338161035382866103d3565b9050838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ea82868684036103fe565b6000336102c781858561059c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166104c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052e84846103d3565b9050600019811461059657818110156105895760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b61059684848484036103fe565b50505050565b6001600160a01b0383166106005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b0382166106625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156106da5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071190849061088b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075d91815260200190565b60405180910390a3610596565b80356001600160a01b038116811461033157600080fd5b600060208284031215610792578081fd5b61079b8261076a565b9392505050565b600080604083850312156107b4578081fd5b6107bd8361076a565b91506107cb6020840161076a565b90509250929050565b6000806000606084860312156107e8578081fd5b6107f18461076a565b92506107ff6020850161076a565b9150604084013590509250925092565b60008060408385031215610821578182fd5b61082a8361076a565b946020939093013593505050565b6000602080835283518082850152825b8181101561086457858101830151858201604001528201610848565b818111156108755783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108aa57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c357607f821691505b602082108114156108e457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220bc4a89f4c007a366f56184c546e091f3566d682752848dd871a3ce1c929429d464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x546573742044756D6D79 PUSH1 0xB0 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544459 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x69 SWAP3 SWAP2 SWAP1 PUSH3 0x199 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x7F SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x199 JUMP JUMPDEST POP POP POP PUSH3 0xA7 PUSH3 0x96 PUSH3 0xAD PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH10 0xD3C21BCECCEDA1000000 PUSH3 0xB1 JUMP JUMPDEST PUSH3 0x2A1 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x10C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x120 SWAP2 SWAP1 PUSH3 0x23F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH3 0x14F SWAP1 DUP5 SWAP1 PUSH3 0x23F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x1A7 SWAP1 PUSH3 0x264 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x1CB JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x216 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1E6 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x216 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x216 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x216 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1F9 JUMP JUMPDEST POP PUSH3 0x224 SWAP3 SWAP2 POP PUSH3 0x228 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x224 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x229 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x25F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x279 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x29B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x920 DUP1 PUSH3 0x2B1 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F2 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x205 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x838 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x7D4 JUMP JUMPDEST PUSH2 0x2D1 JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x781 JUMP JUMPDEST PUSH2 0x317 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x336 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x546573742044756D6D79 PUSH1 0xB0 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x345 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1ED CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x3C5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x200 CALLDATASIZE PUSH1 0x4 PUSH2 0x7A2 JUMP JUMPDEST PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544459 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0x8AF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0x8AF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x3FE JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2DF DUP6 DUP3 DUP6 PUSH2 0x522 JUMP JUMPDEST PUSH2 0x2EA DUP6 DUP6 DUP6 PUSH2 0x59C JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x308 DUP4 DUP4 PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x312 SWAP2 SWAP1 PUSH2 0x88B JUMP JUMPDEST PUSH2 0x3FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x353 DUP3 DUP7 PUSH2 0x3D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2EA DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3FE JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x59C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x460 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP5 DUP5 PUSH2 0x3D3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x596 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x589 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH2 0x596 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3FE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x600 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x711 SWAP1 DUP5 SWAP1 PUSH2 0x88B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x75D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x596 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x792 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x79B DUP3 PUSH2 0x76A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7B4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7BD DUP4 PUSH2 0x76A JUMP JUMPDEST SWAP2 POP PUSH2 0x7CB PUSH1 0x20 DUP5 ADD PUSH2 0x76A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7E8 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7F1 DUP5 PUSH2 0x76A JUMP JUMPDEST SWAP3 POP PUSH2 0x7FF PUSH1 0x20 DUP6 ADD PUSH2 0x76A JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x821 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x82A DUP4 PUSH2 0x76A JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x864 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x848 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x875 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x8AA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x8C3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBC 0x4A DUP10 DELEGATECALL 0xC0 SMOD LOG3 PUSH7 0xF56184C546E091 RETURN JUMP PUSH14 0x682752848DD871A3CE1C929429D4 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"125:329:92:-:0;;;312:139;;;;;;;;;;341:4;;;;;;;;;;;;;-1:-1:-1;;;341:4:92;;;347:6;;;;;;;;;;;;;-1:-1:-1;;;347:6:92;;;2052:5:49;2044;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;371:72:92::1;391:12;:10;;;:12;;:::i;:::-;297:6;371:5;:72::i;:::-;125:329:::0;;640:96:59;719:10;640:96;:::o;8402:389:49:-;-1:-1:-1;;;;;8485:21:49;;8477:65;;;;-1:-1:-1;;;8477:65:49;;216:2:103;8477:65:49;;;198:21:103;255:2;235:18;;;228:30;294:33;274:18;;;267:61;345:18;;8477:65:49;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:49;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:49;;520:25:103;;;-1:-1:-1;;;;;8688:37:49;;;8705:1;;8688:37;;508:2:103;493:18;8688:37:49;;;;;;;8402:389;;:::o;125:329:92:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;125:329:92;;;-1:-1:-1;125:329:92;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;556:229:103;;627:1;623:6;620:1;617:13;614:2;;;-1:-1:-1;;;653:33:103;;709:4;706:1;699:15;739:4;660:3;727:17;614:2;-1:-1:-1;770:9:103;;604:181::o;790:380::-;875:1;865:12;;922:1;912:12;;;933:2;;987:4;979:6;975:17;965:27;;933:2;1040;1032:6;1029:14;1009:18;1006:38;1003:2;;;1086:10;1081:3;1077:20;1074:1;1067:31;1121:4;1118:1;1111:15;1149:4;1146:1;1139:15;1003:2;;845:325;;;:::o;:::-;125:329:92;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5856:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1375:92:103","statements":[{"nodeType":"YulAssignment","src":"1385:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:103"},"nodeType":"YulFunctionCall","src":"1393:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:103"},"nodeType":"YulFunctionCall","src":"1445:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:103"},"nodeType":"YulFunctionCall","src":"1438:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:103"},"nodeType":"YulFunctionCall","src":"1420:41:103"},"nodeType":"YulExpressionStatement","src":"1420:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:103","type":""}],"src":"1280:187:103"},{"body":{"nodeType":"YulBlock","src":"1593:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:103"},"nodeType":"YulFunctionCall","src":"1624:21:103"},"nodeType":"YulExpressionStatement","src":"1624:21:103"},{"nodeType":"YulVariableDeclaration","src":"1654:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:103"},"nodeType":"YulFunctionCall","src":"1668:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:103"},"nodeType":"YulFunctionCall","src":"1697:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:103"},"nodeType":"YulFunctionCall","src":"1690:34:103"},"nodeType":"YulExpressionStatement","src":"1690:34:103"},{"nodeType":"YulVariableDeclaration","src":"1733:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:103"},"nodeType":"YulFunctionCall","src":"1826:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:103"},"nodeType":"YulFunctionCall","src":"1854:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:103"},"nodeType":"YulFunctionCall","src":"1819:66:103"},"nodeType":"YulExpressionStatement","src":"1819:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:103"},"nodeType":"YulFunctionCall","src":"1763:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:103","statements":[{"nodeType":"YulAssignment","src":"1779:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:103"},"nodeType":"YulFunctionCall","src":"1784:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:103","statements":[]},"src":"1755:140:103"},{"body":{"nodeType":"YulBlock","src":"1929:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:103"},"nodeType":"YulFunctionCall","src":"1954:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:103"},"nodeType":"YulFunctionCall","src":"1950:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:103"},"nodeType":"YulFunctionCall","src":"1943:45:103"},"nodeType":"YulExpressionStatement","src":"1943:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:103"},"nodeType":"YulFunctionCall","src":"1907:13:103"},"nodeType":"YulIf","src":"1904:2:103"},{"nodeType":"YulAssignment","src":"2007:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:103"},"nodeType":"YulFunctionCall","src":"2038:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:103"},"nodeType":"YulFunctionCall","src":"2055:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:103"},"nodeType":"YulFunctionCall","src":"2019:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:103"},"nodeType":"YulFunctionCall","src":"2015:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:103","type":""}],"src":"1472:603:103"},{"body":{"nodeType":"YulBlock","src":"2254:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:103"},"nodeType":"YulFunctionCall","src":"2264:21:103"},"nodeType":"YulExpressionStatement","src":"2264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:103"},"nodeType":"YulFunctionCall","src":"2294:30:103"},"nodeType":"YulExpressionStatement","src":"2294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:62:103"},"nodeType":"YulExpressionStatement","src":"2333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:103"},"nodeType":"YulFunctionCall","src":"2411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:103"},"nodeType":"YulFunctionCall","src":"2404:33:103"},"nodeType":"YulExpressionStatement","src":"2404:33:103"},{"nodeType":"YulAssignment","src":"2446:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:103"},"nodeType":"YulFunctionCall","src":"2454:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:103","type":""}],"src":"2080:399:103"},{"body":{"nodeType":"YulBlock","src":"2658:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:103"},"nodeType":"YulFunctionCall","src":"2668:21:103"},"nodeType":"YulExpressionStatement","src":"2668:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:103"},"nodeType":"YulFunctionCall","src":"2698:30:103"},"nodeType":"YulExpressionStatement","src":"2698:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:103"},"nodeType":"YulFunctionCall","src":"2737:62:103"},"nodeType":"YulExpressionStatement","src":"2737:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:103"},"nodeType":"YulFunctionCall","src":"2815:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:103"},"nodeType":"YulFunctionCall","src":"2808:32:103"},"nodeType":"YulExpressionStatement","src":"2808:32:103"},{"nodeType":"YulAssignment","src":"2849:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:103"},"nodeType":"YulFunctionCall","src":"2857:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:103","type":""}],"src":"2484:398:103"},{"body":{"nodeType":"YulBlock","src":"3061:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:21:103"},"nodeType":"YulExpressionStatement","src":"3071:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:103"},"nodeType":"YulFunctionCall","src":"3108:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:103"},"nodeType":"YulFunctionCall","src":"3101:30:103"},"nodeType":"YulExpressionStatement","src":"3101:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:103"},"nodeType":"YulFunctionCall","src":"3140:59:103"},"nodeType":"YulExpressionStatement","src":"3140:59:103"},{"nodeType":"YulAssignment","src":"3208:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:103"},"nodeType":"YulFunctionCall","src":"3216:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:103","type":""}],"src":"2887:353:103"},{"body":{"nodeType":"YulBlock","src":"3419:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:21:103"},"nodeType":"YulExpressionStatement","src":"3429:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:103"},"nodeType":"YulFunctionCall","src":"3459:30:103"},"nodeType":"YulExpressionStatement","src":"3459:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:62:103"},"nodeType":"YulExpressionStatement","src":"3498:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:103"},"nodeType":"YulFunctionCall","src":"3569:36:103"},"nodeType":"YulExpressionStatement","src":"3569:36:103"},{"nodeType":"YulAssignment","src":"3614:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:103","type":""}],"src":"3245:402:103"},{"body":{"nodeType":"YulBlock","src":"3826:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:103"},"nodeType":"YulFunctionCall","src":"3836:21:103"},"nodeType":"YulExpressionStatement","src":"3836:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:103"},"nodeType":"YulFunctionCall","src":"3873:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:103"},"nodeType":"YulFunctionCall","src":"3866:30:103"},"nodeType":"YulExpressionStatement","src":"3866:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:103"},"nodeType":"YulFunctionCall","src":"3912:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:103"},"nodeType":"YulFunctionCall","src":"3905:62:103"},"nodeType":"YulExpressionStatement","src":"3905:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:103"},"nodeType":"YulFunctionCall","src":"3983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:35:103"},"nodeType":"YulExpressionStatement","src":"3976:35:103"},{"nodeType":"YulAssignment","src":"4020:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:103","type":""}],"src":"3652:401:103"},{"body":{"nodeType":"YulBlock","src":"4232:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:103"},"nodeType":"YulFunctionCall","src":"4242:21:103"},"nodeType":"YulExpressionStatement","src":"4242:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:103"},"nodeType":"YulFunctionCall","src":"4279:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:103"},"nodeType":"YulFunctionCall","src":"4272:30:103"},"nodeType":"YulExpressionStatement","src":"4272:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:103"},"nodeType":"YulFunctionCall","src":"4318:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:103"},"nodeType":"YulFunctionCall","src":"4311:62:103"},"nodeType":"YulExpressionStatement","src":"4311:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:103"},"nodeType":"YulFunctionCall","src":"4382:34:103"},"nodeType":"YulExpressionStatement","src":"4382:34:103"},{"nodeType":"YulAssignment","src":"4425:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:103"},"nodeType":"YulFunctionCall","src":"4433:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:103","type":""}],"src":"4058:400:103"},{"body":{"nodeType":"YulBlock","src":"4637:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:21:103"},"nodeType":"YulExpressionStatement","src":"4647:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:103"},"nodeType":"YulFunctionCall","src":"4677:30:103"},"nodeType":"YulExpressionStatement","src":"4677:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:103"},"nodeType":"YulFunctionCall","src":"4723:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:103"},"nodeType":"YulFunctionCall","src":"4716:62:103"},"nodeType":"YulExpressionStatement","src":"4716:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:103"},"nodeType":"YulFunctionCall","src":"4794:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:103"},"nodeType":"YulFunctionCall","src":"4787:35:103"},"nodeType":"YulExpressionStatement","src":"4787:35:103"},{"nodeType":"YulAssignment","src":"4831:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:103"},"nodeType":"YulFunctionCall","src":"4839:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:103","type":""}],"src":"4463:401:103"},{"body":{"nodeType":"YulBlock","src":"4970:76:103","statements":[{"nodeType":"YulAssignment","src":"4980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4988:3:103"},"nodeType":"YulFunctionCall","src":"4988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5015:6:103"},"nodeType":"YulFunctionCall","src":"5015:25:103"},"nodeType":"YulExpressionStatement","src":"5015:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4961:4:103","type":""}],"src":"4869:177:103"},{"body":{"nodeType":"YulBlock","src":"5148:87:103","statements":[{"nodeType":"YulAssignment","src":"5158:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:103"},"nodeType":"YulFunctionCall","src":"5166:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5223:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5211:3:103"},"nodeType":"YulFunctionCall","src":"5211:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:103"},"nodeType":"YulFunctionCall","src":"5193:36:103"},"nodeType":"YulExpressionStatement","src":"5193:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5117:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5128:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5139:4:103","type":""}],"src":"5051:184:103"},{"body":{"nodeType":"YulBlock","src":"5288:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"5323:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5344:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:103"},"nodeType":"YulFunctionCall","src":"5349:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:103"},"nodeType":"YulFunctionCall","src":"5337:33:103"},"nodeType":"YulExpressionStatement","src":"5337:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5390:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5393:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:103"},"nodeType":"YulFunctionCall","src":"5383:15:103"},"nodeType":"YulExpressionStatement","src":"5383:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5418:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5423:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5411:6:103"},"nodeType":"YulFunctionCall","src":"5411:17:103"},"nodeType":"YulExpressionStatement","src":"5411:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5304:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5311:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5307:3:103"},"nodeType":"YulFunctionCall","src":"5307:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5301:2:103"},"nodeType":"YulFunctionCall","src":"5301:13:103"},"nodeType":"YulIf","src":"5298:2:103"},{"nodeType":"YulAssignment","src":"5447:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5458:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5461:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:103"},"nodeType":"YulFunctionCall","src":"5454:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5447:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5271:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5274:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5280:3:103","type":""}],"src":"5240:229:103"},{"body":{"nodeType":"YulBlock","src":"5529:325:103","statements":[{"nodeType":"YulAssignment","src":"5539:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5553:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5559:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5549:3:103"},"nodeType":"YulFunctionCall","src":"5549:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5539:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5570:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5606:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5596:3:103"},"nodeType":"YulFunctionCall","src":"5596:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5574:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5647:31:103","statements":[{"nodeType":"YulAssignment","src":"5649:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5663:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5671:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5659:3:103"},"nodeType":"YulFunctionCall","src":"5659:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5649:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5627:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5620:6:103"},"nodeType":"YulFunctionCall","src":"5620:26:103"},"nodeType":"YulIf","src":"5617:2:103"},{"body":{"nodeType":"YulBlock","src":"5737:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5765:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5770:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5761:3:103"},"nodeType":"YulFunctionCall","src":"5761:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5751:6:103"},"nodeType":"YulFunctionCall","src":"5751:31:103"},"nodeType":"YulExpressionStatement","src":"5751:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5802:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5805:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5795:6:103"},"nodeType":"YulFunctionCall","src":"5795:15:103"},"nodeType":"YulExpressionStatement","src":"5795:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5833:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5823:6:103"},"nodeType":"YulFunctionCall","src":"5823:15:103"},"nodeType":"YulExpressionStatement","src":"5823:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5693:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5716:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5724:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5713:2:103"},"nodeType":"YulFunctionCall","src":"5713:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5690:2:103"},"nodeType":"YulFunctionCall","src":"5690:38:103"},"nodeType":"YulIf","src":"5687:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5509:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5518:6:103","type":""}],"src":"5474:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101cc578063a9059cbb146101df578063dd62ed3e146101f2578063f76f8d7814610205576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610227565b6040516101049190610838565b60405180910390f35b61012061011b36600461080f565b6102b9565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d4565b6102d1565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461080f565b6102f5565b610134610196366004610781565b610317565b6100f7610336565b6100f76040518060400160405280600a815260200169546573742044756d6d7960b01b81525081565b6101206101da36600461080f565b610345565b6101206101ed36600461080f565b6103c5565b6101346102003660046107a2565b6103d3565b6100f76040518060400160405280600381526020016254445960e81b81525081565b606060038054610236906108af565b80601f0160208091040260200160405190810160405280929190818152602001828054610262906108af565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000336102c78185856103fe565b5060019392505050565b6000336102df858285610522565b6102ea85858561059c565b506001949350505050565b6000336102c781858561030883836103d3565b610312919061088b565b6103fe565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610236906108af565b6000338161035382866103d3565b9050838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ea82868684036103fe565b6000336102c781858561059c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166104c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052e84846103d3565b9050600019811461059657818110156105895760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b61059684848484036103fe565b50505050565b6001600160a01b0383166106005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b0382166106625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156106da5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071190849061088b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075d91815260200190565b60405180910390a3610596565b80356001600160a01b038116811461033157600080fd5b600060208284031215610792578081fd5b61079b8261076a565b9392505050565b600080604083850312156107b4578081fd5b6107bd8361076a565b91506107cb6020840161076a565b90509250929050565b6000806000606084860312156107e8578081fd5b6107f18461076a565b92506107ff6020850161076a565b9150604084013590509250925092565b60008060408385031215610821578182fd5b61082a8361076a565b946020939093013593505050565b6000602080835283518082850152825b8181101561086457858101830151858201604001528201610848565b818111156108755783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108aa57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c357607f821691505b602082108114156108e457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220bc4a89f4c007a366f56184c546e091f3566d682752848dd871a3ce1c929429d464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F2 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x205 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x838 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x7D4 JUMP JUMPDEST PUSH2 0x2D1 JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x781 JUMP JUMPDEST PUSH2 0x317 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x336 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x546573742044756D6D79 PUSH1 0xB0 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x345 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1ED CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x3C5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x200 CALLDATASIZE PUSH1 0x4 PUSH2 0x7A2 JUMP JUMPDEST PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544459 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0x8AF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0x8AF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x3FE JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2DF DUP6 DUP3 DUP6 PUSH2 0x522 JUMP JUMPDEST PUSH2 0x2EA DUP6 DUP6 DUP6 PUSH2 0x59C JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x308 DUP4 DUP4 PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x312 SWAP2 SWAP1 PUSH2 0x88B JUMP JUMPDEST PUSH2 0x3FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x353 DUP3 DUP7 PUSH2 0x3D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2EA DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3FE JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x59C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x460 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP5 DUP5 PUSH2 0x3D3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x596 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x589 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH2 0x596 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3FE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x600 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x711 SWAP1 DUP5 SWAP1 PUSH2 0x88B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x75D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x596 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x792 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x79B DUP3 PUSH2 0x76A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7B4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7BD DUP4 PUSH2 0x76A JUMP JUMPDEST SWAP2 POP PUSH2 0x7CB PUSH1 0x20 DUP5 ADD PUSH2 0x76A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7E8 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7F1 DUP5 PUSH2 0x76A JUMP JUMPDEST SWAP3 POP PUSH2 0x7FF PUSH1 0x20 DUP6 ADD PUSH2 0x76A JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x821 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x82A DUP4 PUSH2 0x76A JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x864 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x848 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x875 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x8AA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x8C3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBC 0x4A DUP10 DELEGATECALL 0xC0 SMOD LOG3 PUSH7 0xF56184C546E091 RETURN JUMP PUSH14 0x682752848DD871A3CE1C929429D4 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"125:329:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:49;1375:92:103;3244:106:49;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:49;4970:76:103;5192:286:49;;;;;;:::i;:::-;;:::i;256:47:92:-;;297:6;256:47;;3093:91:49;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:49;5148:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;161:42:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;161:42:92;;;;;6594:427:49;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;210:37:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;210:37:92;;;;;2156:98:49;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:49;;5192:286;-1:-1:-1;;;;5192:286:49:o;5873:234::-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;4665:2:103;6803:85:49;;;4647:21:103;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:103;;;4787:35;4839:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;4260:2:103;10233:68:49;;;4242:21:103;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:103;;;4382:34;4433:19;;10233:68:49;4232:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;2686:2:103;10311:68:49;;;2668:21:103;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:103;;;2808:32;2857:19;;10311:68:49;2658:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:103;;;10441:32:49;;4988:18:103;10441:32:49;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;3089:2:103;11010:68:49;;;3071:21:103;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:49;3061:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;3854:2:103;7593:68:49;;;3836:21:103;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:103;;;3976:35;4028:19;;7593:68:49;3826:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;2282:2:103;7671:64:49;;;2264:21:103;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:103;;;2404:33;2454:19;;7671:64:49;2254:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;3447:2:103;7842:72:49;;;3429:21:103;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:103;;;3569:36;3622:19;;7842:72:49;3419:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;5015:25:103;;5003:2;4988:18;;4970:76;8045:26:49;;;;;;;;8082:37;11786:121;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:103:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:103;2038:15;-1:-1:-1;;2034:29:103;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:103:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:103;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:103;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o"},"methodIdentifiers":{"INITIAL_SUPPLY()":"2ff2e9dc","NAME()":"a3f4df7e","SYMBOL()":"f76f8d78","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"INITIAL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYMBOL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestCoin.sol\":\"TestCoin\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/test/TestCoin.sol\":{\"keccak256\":\"0xe784a80ba4235683a529548905fe411d4806df472e2ef352eb43f430dd51b7d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a2a9d54f2975a970ad4b00244021679e35d3041795e4f72df2a3cb323c44d596\",\"dweb:/ipfs/QmbHHdMH1i9Ud5FvvHHKm3HUKahHZsvgzn1oJoeii5YS6f\"]}},\"version\":1}"},"TestCoinX":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1172:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:33:103","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:61:103"},"nodeType":"YulExpressionStatement","src":"267:61:103"},{"nodeType":"YulAssignment","src":"337:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"337:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:355:103"},{"body":{"nodeType":"YulBlock","src":"475:76:103","statements":[{"nodeType":"YulAssignment","src":"485:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"508:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"485:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"527:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"538:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"520:6:103"},"nodeType":"YulFunctionCall","src":"520:25:103"},"nodeType":"YulExpressionStatement","src":"520:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"444:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"455:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"466:4:103","type":""}],"src":"374:177:103"},{"body":{"nodeType":"YulBlock","src":"604:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"639:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"660:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"669:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"674:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"665:3:103"},"nodeType":"YulFunctionCall","src":"665:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"653:6:103"},"nodeType":"YulFunctionCall","src":"653:33:103"},"nodeType":"YulExpressionStatement","src":"653:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"706:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"709:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"699:6:103"},"nodeType":"YulFunctionCall","src":"699:15:103"},"nodeType":"YulExpressionStatement","src":"699:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"734:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"739:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"727:6:103"},"nodeType":"YulFunctionCall","src":"727:17:103"},"nodeType":"YulExpressionStatement","src":"727:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"620:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"627:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"623:3:103"},"nodeType":"YulFunctionCall","src":"623:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"617:2:103"},"nodeType":"YulFunctionCall","src":"617:13:103"},"nodeType":"YulIf","src":"614:2:103"},{"nodeType":"YulAssignment","src":"763:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"774:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"777:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"770:3:103"},"nodeType":"YulFunctionCall","src":"770:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"763:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"587:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"590:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"596:3:103","type":""}],"src":"556:229:103"},{"body":{"nodeType":"YulBlock","src":"845:325:103","statements":[{"nodeType":"YulAssignment","src":"855:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"869:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"875:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"865:3:103"},"nodeType":"YulFunctionCall","src":"865:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"855:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"886:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"916:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"922:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"912:3:103"},"nodeType":"YulFunctionCall","src":"912:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"890:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"963:31:103","statements":[{"nodeType":"YulAssignment","src":"965:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"979:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"987:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"975:3:103"},"nodeType":"YulFunctionCall","src":"975:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"965:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"943:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"936:6:103"},"nodeType":"YulFunctionCall","src":"936:26:103"},"nodeType":"YulIf","src":"933:2:103"},{"body":{"nodeType":"YulBlock","src":"1053:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1074:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1081:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1086:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1077:3:103"},"nodeType":"YulFunctionCall","src":"1077:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1067:6:103"},"nodeType":"YulFunctionCall","src":"1067:31:103"},"nodeType":"YulExpressionStatement","src":"1067:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1118:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1121:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1111:6:103"},"nodeType":"YulFunctionCall","src":"1111:15:103"},"nodeType":"YulExpressionStatement","src":"1111:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1146:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1149:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1139:6:103"},"nodeType":"YulFunctionCall","src":"1139:15:103"},"nodeType":"YulExpressionStatement","src":"1139:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1009:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1032:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1040:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1029:2:103"},"nodeType":"YulFunctionCall","src":"1029:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1006:2:103"},"nodeType":"YulFunctionCall","src":"1006:38:103"},"nodeType":"YulIf","src":"1003:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"825:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"834:6:103","type":""}],"src":"790:380:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b815250604051806040016040528060038152602001620a888b60eb1b81525081600390805190602001906200006b9291906200019b565b508051620000819060049060208401906200019b565b505050620000a962000098620000af60201b60201c565b69d3c21bcecceda1000000620000b3565b620002a3565b3390565b6001600160a01b0382166200010e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000122919062000241565b90915550506001600160a01b038216600090815260208190526040812080548392906200015190849062000241565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001a99062000266565b90600052602060002090601f016020900481019282620001cd576000855562000218565b82601f10620001e857805160ff191683800117855562000218565b8280016001018555821562000218579182015b8281111562000218578251825591602001919060010190620001fb565b50620002269291506200022a565b5090565b5b808211156200022657600081556001016200022b565b600082198211156200026157634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200027b57607f821691505b602082108114156200029d57634e487b7160e01b600052602260045260246000fd5b50919050565b61092280620002b36000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101ce578063a9059cbb146101e1578063dd62ed3e146101f4578063f76f8d7814610207576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610229565b604051610104919061083a565b60405180910390f35b61012061011b366004610811565b6102bb565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d6565b6102d3565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b610120610183366004610811565b6102f7565b610134610196366004610783565b610319565b6100f7610338565b6100f76040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b81525081565b6101206101dc366004610811565b610347565b6101206101ef366004610811565b6103c7565b6101346102023660046107a4565b6103d5565b6100f7604051806040016040528060038152602001620a888b60eb1b81525081565b606060038054610238906108b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906108b1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b5050505050905090565b6000336102c9818585610400565b5060019392505050565b6000336102e1858285610524565b6102ec85858561059e565b506001949350505050565b6000336102c981858561030a83836103d5565b610314919061088d565b610400565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610238906108b1565b6000338161035582866103d5565b9050838110156103ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ec8286868403610400565b6000336102c981858561059e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b1565b6001600160a01b0382166104c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053084846103d5565b90506000198114610598578181101561058b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103b1565b6105988484848403610400565b50505050565b6001600160a01b0383166106025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b1565b6001600160a01b0382166106645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b1565b6001600160a01b038316600090815260208190526040902054818110156106dc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103b1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071390849061088d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075f91815260200190565b60405180910390a3610598565b80356001600160a01b038116811461033357600080fd5b600060208284031215610794578081fd5b61079d8261076c565b9392505050565b600080604083850312156107b6578081fd5b6107bf8361076c565b91506107cd6020840161076c565b90509250929050565b6000806000606084860312156107ea578081fd5b6107f38461076c565b92506108016020850161076c565b9150604084013590509250925092565b60008060408385031215610823578182fd5b61082c8361076c565b946020939093013593505050565b6000602080835283518082850152825b818110156108665785810183015185820160400152820161084a565b818111156108775783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108ac57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c557607f821691505b602082108114156108e657634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202a8e76e1b4e5b8026b2d39aa0fb86dd6fc4365a817df004296a5841464fe79a864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0xA8CAE6E84088EADADAF240B PUSH1 0xA3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA888B PUSH1 0xEB SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x6B SWAP3 SWAP2 SWAP1 PUSH3 0x19B JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x81 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x19B JUMP JUMPDEST POP POP POP PUSH3 0xA9 PUSH3 0x98 PUSH3 0xAF PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH10 0xD3C21BCECCEDA1000000 PUSH3 0xB3 JUMP JUMPDEST PUSH3 0x2A3 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x10E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x122 SWAP2 SWAP1 PUSH3 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH3 0x151 SWAP1 DUP5 SWAP1 PUSH3 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x1A9 SWAP1 PUSH3 0x266 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x1CD JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x218 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1E8 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x218 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x218 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x218 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FB JUMP JUMPDEST POP PUSH3 0x226 SWAP3 SWAP2 POP PUSH3 0x22A JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x226 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x22B JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x261 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x27B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x29D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x922 DUP1 PUSH3 0x2B3 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x207 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x229 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x2BB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x7D6 JUMP JUMPDEST PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x2F7 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x783 JUMP JUMPDEST PUSH2 0x319 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x338 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0xA8CAE6E84088EADADAF240B PUSH1 0xA3 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1DC CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x347 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0x7A4 JUMP JUMPDEST PUSH2 0x3D5 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA888B PUSH1 0xEB SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x238 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x264 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2B1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x286 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2B1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x294 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x400 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2E1 DUP6 DUP3 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH2 0x2EC DUP6 DUP6 DUP6 PUSH2 0x59E JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x30A DUP4 DUP4 PUSH2 0x3D5 JUMP JUMPDEST PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x238 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x355 DUP3 DUP7 PUSH2 0x3D5 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2EC DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x400 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x59E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x530 DUP5 DUP5 PUSH2 0x3D5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x598 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x58B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH2 0x598 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x400 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x602 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x664 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x713 SWAP1 DUP5 SWAP1 PUSH2 0x88D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x75F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x598 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x794 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x79D DUP3 PUSH2 0x76C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7B6 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7BF DUP4 PUSH2 0x76C JUMP JUMPDEST SWAP2 POP PUSH2 0x7CD PUSH1 0x20 DUP5 ADD PUSH2 0x76C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7EA JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7F3 DUP5 PUSH2 0x76C JUMP JUMPDEST SWAP3 POP PUSH2 0x801 PUSH1 0x20 DUP6 ADD PUSH2 0x76C JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x823 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x82C DUP4 PUSH2 0x76C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x866 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x84A JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x877 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x8AC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x8C5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A DUP15 PUSH23 0xE1B4E5B8026B2D39AA0FB86DD6FC4365A817DF004296A5 DUP5 EQ PUSH5 0xFE79A86473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"458:332:92:-:0;;;648:139;;;;;;;;;;677:4;;;;;;;;;;;;;-1:-1:-1;;;677:4:92;;;683:6;;;;;;;;;;;;;-1:-1:-1;;;683:6:92;;;2052:5:49;2044;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;707:72:92::1;727:12;:10;;;:12;;:::i;:::-;633:6;707:5;:72::i;:::-;458:332:::0;;640:96:59;719:10;640:96;:::o;8402:389:49:-;-1:-1:-1;;;;;8485:21:49;;8477:65;;;;-1:-1:-1;;;8477:65:49;;216:2:103;8477:65:49;;;198:21:103;255:2;235:18;;;228:30;294:33;274:18;;;267:61;345:18;;8477:65:49;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:49;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:49;;520:25:103;;;-1:-1:-1;;;;;8688:37:49;;;8705:1;;8688:37;;508:2:103;493:18;8688:37:49;;;;;;;8402:389;;:::o;458:332:92:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;458:332:92;;;-1:-1:-1;458:332:92;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;556:229:103;;627:1;623:6;620:1;617:13;614:2;;;-1:-1:-1;;;653:33:103;;709:4;706:1;699:15;739:4;660:3;727:17;614:2;-1:-1:-1;770:9:103;;604:181::o;790:380::-;875:1;865:12;;922:1;912:12;;;933:2;;987:4;979:6;975:17;965:27;;933:2;1040;1032:6;1029:14;1009:18;1006:38;1003:2;;;1086:10;1081:3;1077:20;1074:1;1067:31;1121:4;1118:1;1111:15;1149:4;1146:1;1139:15;1003:2;;845:325;;;:::o;:::-;458:332:92;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5856:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1375:92:103","statements":[{"nodeType":"YulAssignment","src":"1385:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:103"},"nodeType":"YulFunctionCall","src":"1393:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:103"},"nodeType":"YulFunctionCall","src":"1445:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:103"},"nodeType":"YulFunctionCall","src":"1438:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:103"},"nodeType":"YulFunctionCall","src":"1420:41:103"},"nodeType":"YulExpressionStatement","src":"1420:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:103","type":""}],"src":"1280:187:103"},{"body":{"nodeType":"YulBlock","src":"1593:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:103"},"nodeType":"YulFunctionCall","src":"1624:21:103"},"nodeType":"YulExpressionStatement","src":"1624:21:103"},{"nodeType":"YulVariableDeclaration","src":"1654:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:103"},"nodeType":"YulFunctionCall","src":"1668:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:103"},"nodeType":"YulFunctionCall","src":"1697:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:103"},"nodeType":"YulFunctionCall","src":"1690:34:103"},"nodeType":"YulExpressionStatement","src":"1690:34:103"},{"nodeType":"YulVariableDeclaration","src":"1733:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:103"},"nodeType":"YulFunctionCall","src":"1826:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:103"},"nodeType":"YulFunctionCall","src":"1854:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:103"},"nodeType":"YulFunctionCall","src":"1819:66:103"},"nodeType":"YulExpressionStatement","src":"1819:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:103"},"nodeType":"YulFunctionCall","src":"1763:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:103","statements":[{"nodeType":"YulAssignment","src":"1779:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:103"},"nodeType":"YulFunctionCall","src":"1784:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:103","statements":[]},"src":"1755:140:103"},{"body":{"nodeType":"YulBlock","src":"1929:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:103"},"nodeType":"YulFunctionCall","src":"1954:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:103"},"nodeType":"YulFunctionCall","src":"1950:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:103"},"nodeType":"YulFunctionCall","src":"1943:45:103"},"nodeType":"YulExpressionStatement","src":"1943:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:103"},"nodeType":"YulFunctionCall","src":"1907:13:103"},"nodeType":"YulIf","src":"1904:2:103"},{"nodeType":"YulAssignment","src":"2007:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:103"},"nodeType":"YulFunctionCall","src":"2038:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:103"},"nodeType":"YulFunctionCall","src":"2055:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:103"},"nodeType":"YulFunctionCall","src":"2019:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:103"},"nodeType":"YulFunctionCall","src":"2015:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:103","type":""}],"src":"1472:603:103"},{"body":{"nodeType":"YulBlock","src":"2254:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:103"},"nodeType":"YulFunctionCall","src":"2264:21:103"},"nodeType":"YulExpressionStatement","src":"2264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:103"},"nodeType":"YulFunctionCall","src":"2294:30:103"},"nodeType":"YulExpressionStatement","src":"2294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:62:103"},"nodeType":"YulExpressionStatement","src":"2333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:103"},"nodeType":"YulFunctionCall","src":"2411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:103"},"nodeType":"YulFunctionCall","src":"2404:33:103"},"nodeType":"YulExpressionStatement","src":"2404:33:103"},{"nodeType":"YulAssignment","src":"2446:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:103"},"nodeType":"YulFunctionCall","src":"2454:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:103","type":""}],"src":"2080:399:103"},{"body":{"nodeType":"YulBlock","src":"2658:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:103"},"nodeType":"YulFunctionCall","src":"2668:21:103"},"nodeType":"YulExpressionStatement","src":"2668:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:103"},"nodeType":"YulFunctionCall","src":"2698:30:103"},"nodeType":"YulExpressionStatement","src":"2698:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:103"},"nodeType":"YulFunctionCall","src":"2737:62:103"},"nodeType":"YulExpressionStatement","src":"2737:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:103"},"nodeType":"YulFunctionCall","src":"2815:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:103"},"nodeType":"YulFunctionCall","src":"2808:32:103"},"nodeType":"YulExpressionStatement","src":"2808:32:103"},{"nodeType":"YulAssignment","src":"2849:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:103"},"nodeType":"YulFunctionCall","src":"2857:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:103","type":""}],"src":"2484:398:103"},{"body":{"nodeType":"YulBlock","src":"3061:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:21:103"},"nodeType":"YulExpressionStatement","src":"3071:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:103"},"nodeType":"YulFunctionCall","src":"3108:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:103"},"nodeType":"YulFunctionCall","src":"3101:30:103"},"nodeType":"YulExpressionStatement","src":"3101:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:103"},"nodeType":"YulFunctionCall","src":"3140:59:103"},"nodeType":"YulExpressionStatement","src":"3140:59:103"},{"nodeType":"YulAssignment","src":"3208:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:103"},"nodeType":"YulFunctionCall","src":"3216:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:103","type":""}],"src":"2887:353:103"},{"body":{"nodeType":"YulBlock","src":"3419:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:21:103"},"nodeType":"YulExpressionStatement","src":"3429:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:103"},"nodeType":"YulFunctionCall","src":"3459:30:103"},"nodeType":"YulExpressionStatement","src":"3459:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:62:103"},"nodeType":"YulExpressionStatement","src":"3498:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:103"},"nodeType":"YulFunctionCall","src":"3569:36:103"},"nodeType":"YulExpressionStatement","src":"3569:36:103"},{"nodeType":"YulAssignment","src":"3614:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:103","type":""}],"src":"3245:402:103"},{"body":{"nodeType":"YulBlock","src":"3826:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:103"},"nodeType":"YulFunctionCall","src":"3836:21:103"},"nodeType":"YulExpressionStatement","src":"3836:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:103"},"nodeType":"YulFunctionCall","src":"3873:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:103"},"nodeType":"YulFunctionCall","src":"3866:30:103"},"nodeType":"YulExpressionStatement","src":"3866:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:103"},"nodeType":"YulFunctionCall","src":"3912:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:103"},"nodeType":"YulFunctionCall","src":"3905:62:103"},"nodeType":"YulExpressionStatement","src":"3905:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:103"},"nodeType":"YulFunctionCall","src":"3983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:35:103"},"nodeType":"YulExpressionStatement","src":"3976:35:103"},{"nodeType":"YulAssignment","src":"4020:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:103","type":""}],"src":"3652:401:103"},{"body":{"nodeType":"YulBlock","src":"4232:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:103"},"nodeType":"YulFunctionCall","src":"4242:21:103"},"nodeType":"YulExpressionStatement","src":"4242:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:103"},"nodeType":"YulFunctionCall","src":"4279:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:103"},"nodeType":"YulFunctionCall","src":"4272:30:103"},"nodeType":"YulExpressionStatement","src":"4272:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:103"},"nodeType":"YulFunctionCall","src":"4318:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:103"},"nodeType":"YulFunctionCall","src":"4311:62:103"},"nodeType":"YulExpressionStatement","src":"4311:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:103"},"nodeType":"YulFunctionCall","src":"4382:34:103"},"nodeType":"YulExpressionStatement","src":"4382:34:103"},{"nodeType":"YulAssignment","src":"4425:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:103"},"nodeType":"YulFunctionCall","src":"4433:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:103","type":""}],"src":"4058:400:103"},{"body":{"nodeType":"YulBlock","src":"4637:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:21:103"},"nodeType":"YulExpressionStatement","src":"4647:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:103"},"nodeType":"YulFunctionCall","src":"4677:30:103"},"nodeType":"YulExpressionStatement","src":"4677:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:103"},"nodeType":"YulFunctionCall","src":"4723:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:103"},"nodeType":"YulFunctionCall","src":"4716:62:103"},"nodeType":"YulExpressionStatement","src":"4716:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:103"},"nodeType":"YulFunctionCall","src":"4794:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:103"},"nodeType":"YulFunctionCall","src":"4787:35:103"},"nodeType":"YulExpressionStatement","src":"4787:35:103"},{"nodeType":"YulAssignment","src":"4831:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:103"},"nodeType":"YulFunctionCall","src":"4839:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:103","type":""}],"src":"4463:401:103"},{"body":{"nodeType":"YulBlock","src":"4970:76:103","statements":[{"nodeType":"YulAssignment","src":"4980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4988:3:103"},"nodeType":"YulFunctionCall","src":"4988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5015:6:103"},"nodeType":"YulFunctionCall","src":"5015:25:103"},"nodeType":"YulExpressionStatement","src":"5015:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4961:4:103","type":""}],"src":"4869:177:103"},{"body":{"nodeType":"YulBlock","src":"5148:87:103","statements":[{"nodeType":"YulAssignment","src":"5158:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:103"},"nodeType":"YulFunctionCall","src":"5166:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5223:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5211:3:103"},"nodeType":"YulFunctionCall","src":"5211:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:103"},"nodeType":"YulFunctionCall","src":"5193:36:103"},"nodeType":"YulExpressionStatement","src":"5193:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5117:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5128:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5139:4:103","type":""}],"src":"5051:184:103"},{"body":{"nodeType":"YulBlock","src":"5288:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"5323:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5344:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:103"},"nodeType":"YulFunctionCall","src":"5349:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:103"},"nodeType":"YulFunctionCall","src":"5337:33:103"},"nodeType":"YulExpressionStatement","src":"5337:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5390:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5393:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:103"},"nodeType":"YulFunctionCall","src":"5383:15:103"},"nodeType":"YulExpressionStatement","src":"5383:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5418:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5423:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5411:6:103"},"nodeType":"YulFunctionCall","src":"5411:17:103"},"nodeType":"YulExpressionStatement","src":"5411:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5304:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5311:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5307:3:103"},"nodeType":"YulFunctionCall","src":"5307:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5301:2:103"},"nodeType":"YulFunctionCall","src":"5301:13:103"},"nodeType":"YulIf","src":"5298:2:103"},{"nodeType":"YulAssignment","src":"5447:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5458:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5461:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:103"},"nodeType":"YulFunctionCall","src":"5454:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5447:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5271:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5274:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5280:3:103","type":""}],"src":"5240:229:103"},{"body":{"nodeType":"YulBlock","src":"5529:325:103","statements":[{"nodeType":"YulAssignment","src":"5539:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5553:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5559:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5549:3:103"},"nodeType":"YulFunctionCall","src":"5549:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5539:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5570:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5606:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5596:3:103"},"nodeType":"YulFunctionCall","src":"5596:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5574:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5647:31:103","statements":[{"nodeType":"YulAssignment","src":"5649:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5663:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5671:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5659:3:103"},"nodeType":"YulFunctionCall","src":"5659:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5649:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5627:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5620:6:103"},"nodeType":"YulFunctionCall","src":"5620:26:103"},"nodeType":"YulIf","src":"5617:2:103"},{"body":{"nodeType":"YulBlock","src":"5737:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5765:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5770:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5761:3:103"},"nodeType":"YulFunctionCall","src":"5761:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5751:6:103"},"nodeType":"YulFunctionCall","src":"5751:31:103"},"nodeType":"YulExpressionStatement","src":"5751:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5802:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5805:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5795:6:103"},"nodeType":"YulFunctionCall","src":"5795:15:103"},"nodeType":"YulExpressionStatement","src":"5795:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5833:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5823:6:103"},"nodeType":"YulFunctionCall","src":"5823:15:103"},"nodeType":"YulExpressionStatement","src":"5823:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5693:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5716:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5724:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5713:2:103"},"nodeType":"YulFunctionCall","src":"5713:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5690:2:103"},"nodeType":"YulFunctionCall","src":"5690:38:103"},"nodeType":"YulIf","src":"5687:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5509:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5518:6:103","type":""}],"src":"5474:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101ce578063a9059cbb146101e1578063dd62ed3e146101f4578063f76f8d7814610207576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610229565b604051610104919061083a565b60405180910390f35b61012061011b366004610811565b6102bb565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d6565b6102d3565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b610120610183366004610811565b6102f7565b610134610196366004610783565b610319565b6100f7610338565b6100f76040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b81525081565b6101206101dc366004610811565b610347565b6101206101ef366004610811565b6103c7565b6101346102023660046107a4565b6103d5565b6100f7604051806040016040528060038152602001620a888b60eb1b81525081565b606060038054610238906108b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906108b1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b5050505050905090565b6000336102c9818585610400565b5060019392505050565b6000336102e1858285610524565b6102ec85858561059e565b506001949350505050565b6000336102c981858561030a83836103d5565b610314919061088d565b610400565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610238906108b1565b6000338161035582866103d5565b9050838110156103ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ec8286868403610400565b6000336102c981858561059e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b1565b6001600160a01b0382166104c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053084846103d5565b90506000198114610598578181101561058b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103b1565b6105988484848403610400565b50505050565b6001600160a01b0383166106025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b1565b6001600160a01b0382166106645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b1565b6001600160a01b038316600090815260208190526040902054818110156106dc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103b1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071390849061088d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075f91815260200190565b60405180910390a3610598565b80356001600160a01b038116811461033357600080fd5b600060208284031215610794578081fd5b61079d8261076c565b9392505050565b600080604083850312156107b6578081fd5b6107bf8361076c565b91506107cd6020840161076c565b90509250929050565b6000806000606084860312156107ea578081fd5b6107f38461076c565b92506108016020850161076c565b9150604084013590509250925092565b60008060408385031215610823578182fd5b61082c8361076c565b946020939093013593505050565b6000602080835283518082850152825b818110156108665785810183015185820160400152820161084a565b818111156108775783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108ac57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c557607f821691505b602082108114156108e657634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202a8e76e1b4e5b8026b2d39aa0fb86dd6fc4365a817df004296a5841464fe79a864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x207 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x229 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x2BB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x7D6 JUMP JUMPDEST PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x2F7 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x783 JUMP JUMPDEST PUSH2 0x319 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x338 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0xA8CAE6E84088EADADAF240B PUSH1 0xA3 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1DC CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x347 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0x7A4 JUMP JUMPDEST PUSH2 0x3D5 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA888B PUSH1 0xEB SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x238 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x264 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2B1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x286 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2B1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x294 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x400 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2E1 DUP6 DUP3 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH2 0x2EC DUP6 DUP6 DUP6 PUSH2 0x59E JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x30A DUP4 DUP4 PUSH2 0x3D5 JUMP JUMPDEST PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x238 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x355 DUP3 DUP7 PUSH2 0x3D5 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2EC DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x400 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x59E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x530 DUP5 DUP5 PUSH2 0x3D5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x598 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x58B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH2 0x598 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x400 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x602 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x664 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x713 SWAP1 DUP5 SWAP1 PUSH2 0x88D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x75F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x598 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x794 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x79D DUP3 PUSH2 0x76C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7B6 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7BF DUP4 PUSH2 0x76C JUMP JUMPDEST SWAP2 POP PUSH2 0x7CD PUSH1 0x20 DUP5 ADD PUSH2 0x76C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7EA JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7F3 DUP5 PUSH2 0x76C JUMP JUMPDEST SWAP3 POP PUSH2 0x801 PUSH1 0x20 DUP6 ADD PUSH2 0x76C JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x823 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x82C DUP4 PUSH2 0x76C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x866 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x84A JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x877 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x8AC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x8C5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A DUP15 PUSH23 0xE1B4E5B8026B2D39AA0FB86DD6FC4365A817DF004296A5 DUP5 EQ PUSH5 0xFE79A86473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"458:332:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:49;1375:92:103;3244:106:49;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:49;4970:76:103;5192:286:49;;;;;;:::i;:::-;;:::i;592:47:92:-;;633:6;592:47;;3093:91:49;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:49;5148:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;495:44:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;495:44:92;;;;;6594:427:49;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;546:37:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;546:37:92;;;;;2156:98:49;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:49;;5192:286;-1:-1:-1;;;;5192:286:49:o;5873:234::-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;4665:2:103;6803:85:49;;;4647:21:103;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:103;;;4787:35;4839:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;4260:2:103;10233:68:49;;;4242:21:103;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:103;;;4382:34;4433:19;;10233:68:49;4232:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;2686:2:103;10311:68:49;;;2668:21:103;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:103;;;2808:32;2857:19;;10311:68:49;2658:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:103;;;10441:32:49;;4988:18:103;10441:32:49;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;3089:2:103;11010:68:49;;;3071:21:103;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:49;3061:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;3854:2:103;7593:68:49;;;3836:21:103;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:103;;;3976:35;4028:19;;7593:68:49;3826:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;2282:2:103;7671:64:49;;;2264:21:103;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:103;;;2404:33;2454:19;;7671:64:49;2254:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;3447:2:103;7842:72:49;;;3429:21:103;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:103;;;3569:36;3622:19;;7842:72:49;3419:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;5015:25:103;;5003:2;4988:18;;4970:76;8045:26:49;;;;;;;;8082:37;11786:121;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:103:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:103;2038:15;-1:-1:-1;;2034:29:103;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:103:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:103;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:103;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o"},"methodIdentifiers":{"INITIAL_SUPPLY()":"2ff2e9dc","NAME()":"a3f4df7e","SYMBOL()":"f76f8d78","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"INITIAL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYMBOL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestCoin.sol\":\"TestCoinX\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/test/TestCoin.sol\":{\"keccak256\":\"0xe784a80ba4235683a529548905fe411d4806df472e2ef352eb43f430dd51b7d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a2a9d54f2975a970ad4b00244021679e35d3041795e4f72df2a3cb323c44d596\",\"dweb:/ipfs/QmbHHdMH1i9Ud5FvvHHKm3HUKahHZsvgzn1oJoeii5YS6f\"]}},\"version\":1}"}},"contracts/test/TestCoinAlternativeImplementation.sol":{"TestCoinAlternativeImplementation":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1172:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:33:103","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:61:103"},"nodeType":"YulExpressionStatement","src":"267:61:103"},{"nodeType":"YulAssignment","src":"337:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"337:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:355:103"},{"body":{"nodeType":"YulBlock","src":"475:76:103","statements":[{"nodeType":"YulAssignment","src":"485:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"508:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"485:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"527:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"538:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"520:6:103"},"nodeType":"YulFunctionCall","src":"520:25:103"},"nodeType":"YulExpressionStatement","src":"520:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"444:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"455:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"466:4:103","type":""}],"src":"374:177:103"},{"body":{"nodeType":"YulBlock","src":"604:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"639:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"660:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"669:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"674:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"665:3:103"},"nodeType":"YulFunctionCall","src":"665:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"653:6:103"},"nodeType":"YulFunctionCall","src":"653:33:103"},"nodeType":"YulExpressionStatement","src":"653:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"706:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"709:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"699:6:103"},"nodeType":"YulFunctionCall","src":"699:15:103"},"nodeType":"YulExpressionStatement","src":"699:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"734:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"739:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"727:6:103"},"nodeType":"YulFunctionCall","src":"727:17:103"},"nodeType":"YulExpressionStatement","src":"727:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"620:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"627:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"623:3:103"},"nodeType":"YulFunctionCall","src":"623:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"617:2:103"},"nodeType":"YulFunctionCall","src":"617:13:103"},"nodeType":"YulIf","src":"614:2:103"},{"nodeType":"YulAssignment","src":"763:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"774:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"777:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"770:3:103"},"nodeType":"YulFunctionCall","src":"770:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"763:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"587:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"590:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"596:3:103","type":""}],"src":"556:229:103"},{"body":{"nodeType":"YulBlock","src":"845:325:103","statements":[{"nodeType":"YulAssignment","src":"855:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"869:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"875:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"865:3:103"},"nodeType":"YulFunctionCall","src":"865:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"855:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"886:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"916:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"922:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"912:3:103"},"nodeType":"YulFunctionCall","src":"912:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"890:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"963:31:103","statements":[{"nodeType":"YulAssignment","src":"965:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"979:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"987:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"975:3:103"},"nodeType":"YulFunctionCall","src":"975:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"965:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"943:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"936:6:103"},"nodeType":"YulFunctionCall","src":"936:26:103"},"nodeType":"YulIf","src":"933:2:103"},{"body":{"nodeType":"YulBlock","src":"1053:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1074:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1081:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1086:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1077:3:103"},"nodeType":"YulFunctionCall","src":"1077:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1067:6:103"},"nodeType":"YulFunctionCall","src":"1067:31:103"},"nodeType":"YulExpressionStatement","src":"1067:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1118:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1121:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1111:6:103"},"nodeType":"YulFunctionCall","src":"1111:15:103"},"nodeType":"YulExpressionStatement","src":"1111:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1146:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1149:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1139:6:103"},"nodeType":"YulFunctionCall","src":"1139:15:103"},"nodeType":"YulExpressionStatement","src":"1139:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1009:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1032:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1040:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1029:2:103"},"nodeType":"YulFunctionCall","src":"1029:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1006:2:103"},"nodeType":"YulFunctionCall","src":"1006:38:103"},"nodeType":"YulIf","src":"1003:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"825:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"834:6:103","type":""}],"src":"790:380:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040518060400160405280601581526020017f5465737420416c7465726e617469766520436f696e00000000000000000000008152506040518060400160405280600381526020016254414360e81b81525081600390805190602001906200007c929190620001ac565b50805162000092906004906020840190620001ac565b505050620000ba620000a9620000c060201b60201c565b69d3c21bcecceda1000000620000c4565b620002b4565b3390565b6001600160a01b0382166200011f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000133919062000252565b90915550506001600160a01b038216600090815260208190526040812080548392906200016290849062000252565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001ba9062000277565b90600052602060002090601f016020900481019282620001de576000855562000229565b82601f10620001f957805160ff191683800117855562000229565b8280016001018555821562000229579182015b82811115620002295782518255916020019190600101906200020c565b50620002379291506200023b565b5090565b5b808211156200023757600081556001016200023c565b600082198211156200027257634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200028c57607f821691505b60208210811415620002ae57634e487b7160e01b600052602260045260246000fd5b50919050565b6109b080620002c46000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101d7578063a9059cbb146101ea578063dd62ed3e146101fd578063f76f8d7814610210576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610232565b60405161010491906108c8565b60405180910390f35b61012061011b36600461089f565b6102c4565b6040519015158152602001610104565b6002545b604051908152602001610104565b610120610150366004610864565b6102dc565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461089f565b610370565b610134610196366004610818565b610392565b6100f76103b1565b6100f7604051806040016040528060158152602001742a32b9ba1020b63a32b93730ba34bb329021b7b4b760591b81525081565b6101206101e536600461089f565b6103c0565b6101206101f836600461089f565b61044b565b61013461020b366004610832565b610459565b6100f76040518060400160405280600381526020016254414360e81b81525081565b6060600380546102419061093f565b80601f016020809104026020016040519081016040528092919081815260200182805461026d9061093f565b80156102ba5780601f1061028f576101008083540402835291602001916102ba565b820191906000526020600020905b81548152906001019060200180831161029d57829003601f168201915b5050505050905090565b6000336102d2818585610484565b5060019392505050565b6000816102e885610392565b101580156102ff5750816102fc8533610459565b10155b8015610326575061030f83610392565b8261031985610392565b610323919061091b565b10155b801561033a57506001600160a01b03841615155b801561034e57506001600160a01b03831615155b156103655761035e8484846105a8565b9050610369565b5060005b9392505050565b6000336102d28185856103838383610459565b61038d919061091b565b610484565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102419061093f565b600033816103ce8286610459565b9050838110156104335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6104408286868403610484565b506001949350505050565b6000336102d28185856105bd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161042a565b6001600160a01b0382166105475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161042a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000336105b685828561078d565b6104408585855b6001600160a01b0383166106215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161042a565b6001600160a01b0382166106835760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161042a565b6001600160a01b038316600090815260208190526040902054818110156106fb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161042a565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061073290849061091b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161077e91815260200190565b60405180910390a35b50505050565b60006107998484610459565b9050600019811461078757818110156107f45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161042a565b6107878484848403610484565b80356001600160a01b03811681146103ac57600080fd5b600060208284031215610829578081fd5b61036982610801565b60008060408385031215610844578081fd5b61084d83610801565b915061085b60208401610801565b90509250929050565b600080600060608486031215610878578081fd5b61088184610801565b925061088f60208501610801565b9150604084013590509250925092565b600080604083850312156108b1578182fd5b6108ba83610801565b946020939093013593505050565b6000602080835283518082850152825b818110156108f4578581018301518582016040015282016108d8565b818111156109055783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561093a57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061095357607f821691505b6020821081141561097457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220fe54507b3ea268ebc7a74b0b506365823cec572537e192781708c94b808aa2e464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5465737420416C7465726E617469766520436F696E0000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544143 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x7C SWAP3 SWAP2 SWAP1 PUSH3 0x1AC JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x92 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x1AC JUMP JUMPDEST POP POP POP PUSH3 0xBA PUSH3 0xA9 PUSH3 0xC0 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH10 0xD3C21BCECCEDA1000000 PUSH3 0xC4 JUMP JUMPDEST PUSH3 0x2B4 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x11F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x133 SWAP2 SWAP1 PUSH3 0x252 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH3 0x162 SWAP1 DUP5 SWAP1 PUSH3 0x252 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x1BA SWAP1 PUSH3 0x277 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x1DE JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x229 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1F9 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x229 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x229 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x229 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x20C JUMP JUMPDEST POP PUSH3 0x237 SWAP3 SWAP2 POP PUSH3 0x23B JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x237 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x23C JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x272 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x28C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x2AE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9B0 DUP1 PUSH3 0x2C4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1FD JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x210 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x8C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x864 JUMP JUMPDEST PUSH2 0x2DC JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x370 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x818 JUMP JUMPDEST PUSH2 0x392 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x3B1 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH21 0x2A32B9BA1020B63A32B93730BA34BB329021B7B4B7 PUSH1 0x59 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x44B JUMP JUMPDEST PUSH2 0x134 PUSH2 0x20B CALLDATASIZE PUSH1 0x4 PUSH2 0x832 JUMP JUMPDEST PUSH2 0x459 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544143 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x241 SWAP1 PUSH2 0x93F JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x26D SWAP1 PUSH2 0x93F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2BA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x28F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2BA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x29D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x484 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2E8 DUP6 PUSH2 0x392 JUMP JUMPDEST LT ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI POP DUP2 PUSH2 0x2FC DUP6 CALLER PUSH2 0x459 JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x326 JUMPI POP PUSH2 0x30F DUP4 PUSH2 0x392 JUMP JUMPDEST DUP3 PUSH2 0x319 DUP6 PUSH2 0x392 JUMP JUMPDEST PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x91B JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x33A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x34E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x365 JUMPI PUSH2 0x35E DUP5 DUP5 DUP5 PUSH2 0x5A8 JUMP JUMPDEST SWAP1 POP PUSH2 0x369 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x383 DUP4 DUP4 PUSH2 0x459 JUMP JUMPDEST PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x91B JUMP JUMPDEST PUSH2 0x484 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x241 SWAP1 PUSH2 0x93F JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x3CE DUP3 DUP7 PUSH2 0x459 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x433 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x440 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x484 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x5BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x547 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x5B6 DUP6 DUP3 DUP6 PUSH2 0x78D JUMP JUMPDEST PUSH2 0x440 DUP6 DUP6 DUP6 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x621 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x732 SWAP1 DUP5 SWAP1 PUSH2 0x91B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x77E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x799 DUP5 DUP5 PUSH2 0x459 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x787 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42A JUMP JUMPDEST PUSH2 0x787 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x484 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x829 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x369 DUP3 PUSH2 0x801 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x844 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x84D DUP4 PUSH2 0x801 JUMP JUMPDEST SWAP2 POP PUSH2 0x85B PUSH1 0x20 DUP5 ADD PUSH2 0x801 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x878 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x881 DUP5 PUSH2 0x801 JUMP JUMPDEST SWAP3 POP PUSH2 0x88F PUSH1 0x20 DUP6 ADD PUSH2 0x801 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x8BA DUP4 PUSH2 0x801 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8F4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x8D8 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x905 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x93A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x953 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x974 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID SLOAD POP PUSH28 0x3EA268EBC7A74B0B506365823CEC572537E192781708C94B808AA2E4 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"125:1192:93:-:0;;;348:139;;;;;;;;;;377:4;;;;;;;;;;;;;;;;;383:6;;;;;;;;;;;;;-1:-1:-1;;;383:6:93;;;2052:5:49;2044;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;407:72:93::1;427:12;:10;;;:12;;:::i;:::-;333:6;407:5;:72::i;:::-;125:1192:::0;;640:96:59;719:10;640:96;:::o;8402:389:49:-;-1:-1:-1;;;;;8485:21:49;;8477:65;;;;-1:-1:-1;;;8477:65:49;;216:2:103;8477:65:49;;;198:21:103;255:2;235:18;;;228:30;294:33;274:18;;;267:61;345:18;;8477:65:49;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:49;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:49;;520:25:103;;;-1:-1:-1;;;;;8688:37:49;;;8705:1;;8688:37;;508:2:103;493:18;8688:37:49;;;;;;;8402:389;;:::o;125:1192:93:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;125:1192:93;;;-1:-1:-1;125:1192:93;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;556:229:103;;627:1;623:6;620:1;617:13;614:2;;;-1:-1:-1;;;653:33:103;;709:4;706:1;699:15;739:4;660:3;727:17;614:2;-1:-1:-1;770:9:103;;604:181::o;790:380::-;875:1;865:12;;922:1;912:12;;;933:2;;987:4;979:6;975:17;965:27;;933:2;1040;1032:6;1029:14;1009:18;1006:38;1003:2;;;1086:10;1081:3;1077:20;1074:1;1067:31;1121:4;1118:1;1111:15;1149:4;1146:1;1139:15;1003:2;;845:325;;;:::o;:::-;125:1192:93;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5856:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1375:92:103","statements":[{"nodeType":"YulAssignment","src":"1385:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:103"},"nodeType":"YulFunctionCall","src":"1393:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:103"},"nodeType":"YulFunctionCall","src":"1445:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:103"},"nodeType":"YulFunctionCall","src":"1438:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:103"},"nodeType":"YulFunctionCall","src":"1420:41:103"},"nodeType":"YulExpressionStatement","src":"1420:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:103","type":""}],"src":"1280:187:103"},{"body":{"nodeType":"YulBlock","src":"1593:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:103"},"nodeType":"YulFunctionCall","src":"1624:21:103"},"nodeType":"YulExpressionStatement","src":"1624:21:103"},{"nodeType":"YulVariableDeclaration","src":"1654:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:103"},"nodeType":"YulFunctionCall","src":"1668:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:103"},"nodeType":"YulFunctionCall","src":"1697:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:103"},"nodeType":"YulFunctionCall","src":"1690:34:103"},"nodeType":"YulExpressionStatement","src":"1690:34:103"},{"nodeType":"YulVariableDeclaration","src":"1733:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:103"},"nodeType":"YulFunctionCall","src":"1826:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:103"},"nodeType":"YulFunctionCall","src":"1854:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:103"},"nodeType":"YulFunctionCall","src":"1819:66:103"},"nodeType":"YulExpressionStatement","src":"1819:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:103"},"nodeType":"YulFunctionCall","src":"1763:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:103","statements":[{"nodeType":"YulAssignment","src":"1779:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:103"},"nodeType":"YulFunctionCall","src":"1784:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:103","statements":[]},"src":"1755:140:103"},{"body":{"nodeType":"YulBlock","src":"1929:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:103"},"nodeType":"YulFunctionCall","src":"1954:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:103"},"nodeType":"YulFunctionCall","src":"1950:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:103"},"nodeType":"YulFunctionCall","src":"1943:45:103"},"nodeType":"YulExpressionStatement","src":"1943:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:103"},"nodeType":"YulFunctionCall","src":"1907:13:103"},"nodeType":"YulIf","src":"1904:2:103"},{"nodeType":"YulAssignment","src":"2007:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:103"},"nodeType":"YulFunctionCall","src":"2038:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:103"},"nodeType":"YulFunctionCall","src":"2055:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:103"},"nodeType":"YulFunctionCall","src":"2019:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:103"},"nodeType":"YulFunctionCall","src":"2015:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:103","type":""}],"src":"1472:603:103"},{"body":{"nodeType":"YulBlock","src":"2254:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:103"},"nodeType":"YulFunctionCall","src":"2264:21:103"},"nodeType":"YulExpressionStatement","src":"2264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:103"},"nodeType":"YulFunctionCall","src":"2294:30:103"},"nodeType":"YulExpressionStatement","src":"2294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:62:103"},"nodeType":"YulExpressionStatement","src":"2333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:103"},"nodeType":"YulFunctionCall","src":"2411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:103"},"nodeType":"YulFunctionCall","src":"2404:33:103"},"nodeType":"YulExpressionStatement","src":"2404:33:103"},{"nodeType":"YulAssignment","src":"2446:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:103"},"nodeType":"YulFunctionCall","src":"2454:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:103","type":""}],"src":"2080:399:103"},{"body":{"nodeType":"YulBlock","src":"2658:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:103"},"nodeType":"YulFunctionCall","src":"2668:21:103"},"nodeType":"YulExpressionStatement","src":"2668:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:103"},"nodeType":"YulFunctionCall","src":"2698:30:103"},"nodeType":"YulExpressionStatement","src":"2698:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:103"},"nodeType":"YulFunctionCall","src":"2737:62:103"},"nodeType":"YulExpressionStatement","src":"2737:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:103"},"nodeType":"YulFunctionCall","src":"2815:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:103"},"nodeType":"YulFunctionCall","src":"2808:32:103"},"nodeType":"YulExpressionStatement","src":"2808:32:103"},{"nodeType":"YulAssignment","src":"2849:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:103"},"nodeType":"YulFunctionCall","src":"2857:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:103","type":""}],"src":"2484:398:103"},{"body":{"nodeType":"YulBlock","src":"3061:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:21:103"},"nodeType":"YulExpressionStatement","src":"3071:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:103"},"nodeType":"YulFunctionCall","src":"3108:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:103"},"nodeType":"YulFunctionCall","src":"3101:30:103"},"nodeType":"YulExpressionStatement","src":"3101:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:103"},"nodeType":"YulFunctionCall","src":"3140:59:103"},"nodeType":"YulExpressionStatement","src":"3140:59:103"},{"nodeType":"YulAssignment","src":"3208:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:103"},"nodeType":"YulFunctionCall","src":"3216:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:103","type":""}],"src":"2887:353:103"},{"body":{"nodeType":"YulBlock","src":"3419:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:21:103"},"nodeType":"YulExpressionStatement","src":"3429:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:103"},"nodeType":"YulFunctionCall","src":"3459:30:103"},"nodeType":"YulExpressionStatement","src":"3459:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:62:103"},"nodeType":"YulExpressionStatement","src":"3498:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:103"},"nodeType":"YulFunctionCall","src":"3569:36:103"},"nodeType":"YulExpressionStatement","src":"3569:36:103"},{"nodeType":"YulAssignment","src":"3614:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:103","type":""}],"src":"3245:402:103"},{"body":{"nodeType":"YulBlock","src":"3826:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:103"},"nodeType":"YulFunctionCall","src":"3836:21:103"},"nodeType":"YulExpressionStatement","src":"3836:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:103"},"nodeType":"YulFunctionCall","src":"3873:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:103"},"nodeType":"YulFunctionCall","src":"3866:30:103"},"nodeType":"YulExpressionStatement","src":"3866:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:103"},"nodeType":"YulFunctionCall","src":"3912:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:103"},"nodeType":"YulFunctionCall","src":"3905:62:103"},"nodeType":"YulExpressionStatement","src":"3905:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:103"},"nodeType":"YulFunctionCall","src":"3983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:35:103"},"nodeType":"YulExpressionStatement","src":"3976:35:103"},{"nodeType":"YulAssignment","src":"4020:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:103","type":""}],"src":"3652:401:103"},{"body":{"nodeType":"YulBlock","src":"4232:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:103"},"nodeType":"YulFunctionCall","src":"4242:21:103"},"nodeType":"YulExpressionStatement","src":"4242:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:103"},"nodeType":"YulFunctionCall","src":"4279:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:103"},"nodeType":"YulFunctionCall","src":"4272:30:103"},"nodeType":"YulExpressionStatement","src":"4272:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:103"},"nodeType":"YulFunctionCall","src":"4318:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:103"},"nodeType":"YulFunctionCall","src":"4311:62:103"},"nodeType":"YulExpressionStatement","src":"4311:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:103"},"nodeType":"YulFunctionCall","src":"4382:34:103"},"nodeType":"YulExpressionStatement","src":"4382:34:103"},{"nodeType":"YulAssignment","src":"4425:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:103"},"nodeType":"YulFunctionCall","src":"4433:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:103","type":""}],"src":"4058:400:103"},{"body":{"nodeType":"YulBlock","src":"4637:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:21:103"},"nodeType":"YulExpressionStatement","src":"4647:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:103"},"nodeType":"YulFunctionCall","src":"4677:30:103"},"nodeType":"YulExpressionStatement","src":"4677:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:103"},"nodeType":"YulFunctionCall","src":"4723:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:103"},"nodeType":"YulFunctionCall","src":"4716:62:103"},"nodeType":"YulExpressionStatement","src":"4716:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:103"},"nodeType":"YulFunctionCall","src":"4794:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:103"},"nodeType":"YulFunctionCall","src":"4787:35:103"},"nodeType":"YulExpressionStatement","src":"4787:35:103"},{"nodeType":"YulAssignment","src":"4831:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:103"},"nodeType":"YulFunctionCall","src":"4839:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:103","type":""}],"src":"4463:401:103"},{"body":{"nodeType":"YulBlock","src":"4970:76:103","statements":[{"nodeType":"YulAssignment","src":"4980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4988:3:103"},"nodeType":"YulFunctionCall","src":"4988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5015:6:103"},"nodeType":"YulFunctionCall","src":"5015:25:103"},"nodeType":"YulExpressionStatement","src":"5015:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4961:4:103","type":""}],"src":"4869:177:103"},{"body":{"nodeType":"YulBlock","src":"5148:87:103","statements":[{"nodeType":"YulAssignment","src":"5158:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:103"},"nodeType":"YulFunctionCall","src":"5166:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5223:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5211:3:103"},"nodeType":"YulFunctionCall","src":"5211:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:103"},"nodeType":"YulFunctionCall","src":"5193:36:103"},"nodeType":"YulExpressionStatement","src":"5193:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5117:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5128:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5139:4:103","type":""}],"src":"5051:184:103"},{"body":{"nodeType":"YulBlock","src":"5288:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"5323:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5344:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:103"},"nodeType":"YulFunctionCall","src":"5349:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:103"},"nodeType":"YulFunctionCall","src":"5337:33:103"},"nodeType":"YulExpressionStatement","src":"5337:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5390:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5393:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:103"},"nodeType":"YulFunctionCall","src":"5383:15:103"},"nodeType":"YulExpressionStatement","src":"5383:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5418:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5423:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5411:6:103"},"nodeType":"YulFunctionCall","src":"5411:17:103"},"nodeType":"YulExpressionStatement","src":"5411:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5304:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5311:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5307:3:103"},"nodeType":"YulFunctionCall","src":"5307:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5301:2:103"},"nodeType":"YulFunctionCall","src":"5301:13:103"},"nodeType":"YulIf","src":"5298:2:103"},{"nodeType":"YulAssignment","src":"5447:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5458:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5461:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:103"},"nodeType":"YulFunctionCall","src":"5454:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5447:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5271:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5274:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5280:3:103","type":""}],"src":"5240:229:103"},{"body":{"nodeType":"YulBlock","src":"5529:325:103","statements":[{"nodeType":"YulAssignment","src":"5539:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5553:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5559:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5549:3:103"},"nodeType":"YulFunctionCall","src":"5549:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5539:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5570:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5606:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5596:3:103"},"nodeType":"YulFunctionCall","src":"5596:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5574:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5647:31:103","statements":[{"nodeType":"YulAssignment","src":"5649:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5663:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5671:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5659:3:103"},"nodeType":"YulFunctionCall","src":"5659:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5649:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5627:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5620:6:103"},"nodeType":"YulFunctionCall","src":"5620:26:103"},"nodeType":"YulIf","src":"5617:2:103"},{"body":{"nodeType":"YulBlock","src":"5737:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5765:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5770:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5761:3:103"},"nodeType":"YulFunctionCall","src":"5761:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5751:6:103"},"nodeType":"YulFunctionCall","src":"5751:31:103"},"nodeType":"YulExpressionStatement","src":"5751:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5802:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5805:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5795:6:103"},"nodeType":"YulFunctionCall","src":"5795:15:103"},"nodeType":"YulExpressionStatement","src":"5795:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5833:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5823:6:103"},"nodeType":"YulFunctionCall","src":"5823:15:103"},"nodeType":"YulExpressionStatement","src":"5823:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5693:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5716:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5724:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5713:2:103"},"nodeType":"YulFunctionCall","src":"5713:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5690:2:103"},"nodeType":"YulFunctionCall","src":"5690:38:103"},"nodeType":"YulIf","src":"5687:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5509:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5518:6:103","type":""}],"src":"5474:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101d7578063a9059cbb146101ea578063dd62ed3e146101fd578063f76f8d7814610210576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610232565b60405161010491906108c8565b60405180910390f35b61012061011b36600461089f565b6102c4565b6040519015158152602001610104565b6002545b604051908152602001610104565b610120610150366004610864565b6102dc565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461089f565b610370565b610134610196366004610818565b610392565b6100f76103b1565b6100f7604051806040016040528060158152602001742a32b9ba1020b63a32b93730ba34bb329021b7b4b760591b81525081565b6101206101e536600461089f565b6103c0565b6101206101f836600461089f565b61044b565b61013461020b366004610832565b610459565b6100f76040518060400160405280600381526020016254414360e81b81525081565b6060600380546102419061093f565b80601f016020809104026020016040519081016040528092919081815260200182805461026d9061093f565b80156102ba5780601f1061028f576101008083540402835291602001916102ba565b820191906000526020600020905b81548152906001019060200180831161029d57829003601f168201915b5050505050905090565b6000336102d2818585610484565b5060019392505050565b6000816102e885610392565b101580156102ff5750816102fc8533610459565b10155b8015610326575061030f83610392565b8261031985610392565b610323919061091b565b10155b801561033a57506001600160a01b03841615155b801561034e57506001600160a01b03831615155b156103655761035e8484846105a8565b9050610369565b5060005b9392505050565b6000336102d28185856103838383610459565b61038d919061091b565b610484565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102419061093f565b600033816103ce8286610459565b9050838110156104335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6104408286868403610484565b506001949350505050565b6000336102d28185856105bd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161042a565b6001600160a01b0382166105475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161042a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000336105b685828561078d565b6104408585855b6001600160a01b0383166106215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161042a565b6001600160a01b0382166106835760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161042a565b6001600160a01b038316600090815260208190526040902054818110156106fb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161042a565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061073290849061091b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161077e91815260200190565b60405180910390a35b50505050565b60006107998484610459565b9050600019811461078757818110156107f45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161042a565b6107878484848403610484565b80356001600160a01b03811681146103ac57600080fd5b600060208284031215610829578081fd5b61036982610801565b60008060408385031215610844578081fd5b61084d83610801565b915061085b60208401610801565b90509250929050565b600080600060608486031215610878578081fd5b61088184610801565b925061088f60208501610801565b9150604084013590509250925092565b600080604083850312156108b1578182fd5b6108ba83610801565b946020939093013593505050565b6000602080835283518082850152825b818110156108f4578581018301518582016040015282016108d8565b818111156109055783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561093a57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061095357607f821691505b6020821081141561097457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220fe54507b3ea268ebc7a74b0b506365823cec572537e192781708c94b808aa2e464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1FD JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x210 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x8C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x864 JUMP JUMPDEST PUSH2 0x2DC JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x370 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x818 JUMP JUMPDEST PUSH2 0x392 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x3B1 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH21 0x2A32B9BA1020B63A32B93730BA34BB329021B7B4B7 PUSH1 0x59 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x44B JUMP JUMPDEST PUSH2 0x134 PUSH2 0x20B CALLDATASIZE PUSH1 0x4 PUSH2 0x832 JUMP JUMPDEST PUSH2 0x459 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544143 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x241 SWAP1 PUSH2 0x93F JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x26D SWAP1 PUSH2 0x93F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2BA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x28F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2BA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x29D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x484 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2E8 DUP6 PUSH2 0x392 JUMP JUMPDEST LT ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI POP DUP2 PUSH2 0x2FC DUP6 CALLER PUSH2 0x459 JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x326 JUMPI POP PUSH2 0x30F DUP4 PUSH2 0x392 JUMP JUMPDEST DUP3 PUSH2 0x319 DUP6 PUSH2 0x392 JUMP JUMPDEST PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x91B JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x33A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x34E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x365 JUMPI PUSH2 0x35E DUP5 DUP5 DUP5 PUSH2 0x5A8 JUMP JUMPDEST SWAP1 POP PUSH2 0x369 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x383 DUP4 DUP4 PUSH2 0x459 JUMP JUMPDEST PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x91B JUMP JUMPDEST PUSH2 0x484 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x241 SWAP1 PUSH2 0x93F JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x3CE DUP3 DUP7 PUSH2 0x459 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x433 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x440 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x484 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x5BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x547 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x5B6 DUP6 DUP3 DUP6 PUSH2 0x78D JUMP JUMPDEST PUSH2 0x440 DUP6 DUP6 DUP6 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x621 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x732 SWAP1 DUP5 SWAP1 PUSH2 0x91B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x77E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x799 DUP5 DUP5 PUSH2 0x459 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x787 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42A JUMP JUMPDEST PUSH2 0x787 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x484 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x829 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x369 DUP3 PUSH2 0x801 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x844 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x84D DUP4 PUSH2 0x801 JUMP JUMPDEST SWAP2 POP PUSH2 0x85B PUSH1 0x20 DUP5 ADD PUSH2 0x801 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x878 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x881 DUP5 PUSH2 0x801 JUMP JUMPDEST SWAP3 POP PUSH2 0x88F PUSH1 0x20 DUP6 ADD PUSH2 0x801 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x8BA DUP4 PUSH2 0x801 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8F4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x8D8 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x905 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x93A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x953 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x974 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID SLOAD POP PUSH28 0x3EA268EBC7A74B0B506365823CEC572537E192781708C94B808AA2E4 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"125:1192:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:49;1375:92:103;3244:106:49;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:49;4970:76:103;596:718:93;;;;;;:::i;:::-;;:::i;292:47::-;;333:6;292:47;;3093:91:49;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:49;5148:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;186:53:93:-;;;;;;;;;;;;;;;-1:-1:-1;;;186:53:93;;;;;6594:427:49;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;246:37:93:-;;;;;;;;;;;;;;;-1:-1:-1;;;246:37:93;;;;;2156:98:49;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;596:718:93:-;701:4;748:6;728:16;738:5;728:9;:16::i;:::-;:26;;:130;;;;;852:6;820:28;830:5;837:10;820:9;:28::i;:::-;:38;;728:130;:224;;;;;938:14;948:3;938:9;:14::i;:::-;928:6;911:14;921:3;911:9;:14::i;:::-;:23;;;;:::i;:::-;:41;;728:224;:280;;;;-1:-1:-1;;;;;;989:19:93;;;;728:280;:367;;;;-1:-1:-1;;;;;;1078:17:93;;;;728:367;724:583;;;1185:38;1204:5;1211:3;1216:6;1185:18;:38::i;:::-;1178:45;;;;724:583;-1:-1:-1;1289:5:93;724:583;596:718;;;;;:::o;5873:234:49:-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;4665:2:103;6803:85:49;;;4647:21:103;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:103;;;4787:35;4839:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;:::-;-1:-1:-1;7010:4:49;;6594:427;-1:-1:-1;;;;6594:427:49:o;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;4260:2:103;10233:68:49;;;4242:21:103;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:103;;;4382:34;4433:19;;10233:68:49;4232:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;2686:2:103;10311:68:49;;;2668:21:103;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:103;;;2808:32;2857:19;;10311:68:49;2658:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:103;;;10441:32:49;;4988:18:103;10441:32:49;;;;;;;10110:370;;;:::o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;7475:651;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;3854:2:103;7593:68:49;;;3836:21:103;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:103;;;3976:35;4028:19;;7593:68:49;3826:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;2282:2:103;7671:64:49;;;2264:21:103;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:103;;;2404:33;2454:19;;7671:64:49;2254:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;3447:2:103;7842:72:49;;;3429:21:103;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:103;;;3569:36;3622:19;;7842:72:49;3419:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;5015:25:103;;5003:2;4988:18;;4970:76;8045:26:49;;;;;;;;8082:37;7475:651;;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;3089:2:103;11010:68:49;;;3071:21:103;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:49;3061:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;14:173:103:-;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:103;2038:15;-1:-1:-1;;2034:29:103;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:103:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:103;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:103;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o"},"methodIdentifiers":{"INITIAL_SUPPLY()":"2ff2e9dc","NAME()":"a3f4df7e","SYMBOL()":"f76f8d78","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"INITIAL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYMBOL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestCoinAlternativeImplementation.sol\":\"TestCoinAlternativeImplementation\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/test/TestCoinAlternativeImplementation.sol\":{\"keccak256\":\"0x2ef920a343dda4bffeb954a1009eb6c251616a73f4f968b54ef06b15ffdd76dc\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://faaff0df2becca964e89538250fb2eb4cb5ada69292bf984dba317c6e6f8f9cd\",\"dweb:/ipfs/QmSABZFzP8sTciiBn769K5m3FejENqsJ52etQcRw4rpjoH\"]}},\"version\":1}"}},"contracts/test/TestCompromisedProduct.sol":{"TestCompromisedProduct":{"abi":[{"inputs":[{"internalType":"bytes32","name":"fakeProductName","type":"bytes32"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"fakeComponentId","type":"uint256"},{"internalType":"uint256","name":"fakeRiskpoolId","type":"uint256"},{"internalType":"address","name":"registryAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"productAddress","type":"address"}],"name":"LogProductCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"FAKE_STATE","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POLICY_FLOW","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"sumInsured","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"applyForPolicy","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"collectPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getApplicationDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPayoutDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"policyFlow","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"riskPoolCapacityCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"submitClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1091:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"568:339:103","statements":[{"body":{"nodeType":"YulBlock","src":"615:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"624:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"632:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"617:6:103"},"nodeType":"YulFunctionCall","src":"617:22:103"},"nodeType":"YulExpressionStatement","src":"617:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"589:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"598:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"585:3:103"},"nodeType":"YulFunctionCall","src":"585:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"610:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"581:3:103"},"nodeType":"YulFunctionCall","src":"581:33:103"},"nodeType":"YulIf","src":"578:2:103"},{"nodeType":"YulAssignment","src":"650:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"666:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"660:5:103"},"nodeType":"YulFunctionCall","src":"660:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"650:6:103"}]},{"nodeType":"YulAssignment","src":"685:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"729:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"740:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"725:3:103"},"nodeType":"YulFunctionCall","src":"725:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"695:29:103"},"nodeType":"YulFunctionCall","src":"695:49:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"685:6:103"}]},{"nodeType":"YulAssignment","src":"753:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"784:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:103"},"nodeType":"YulFunctionCall","src":"769:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"763:5:103"},"nodeType":"YulFunctionCall","src":"763:25:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"753:6:103"}]},{"nodeType":"YulAssignment","src":"797:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"817:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"828:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"813:3:103"},"nodeType":"YulFunctionCall","src":"813:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"807:5:103"},"nodeType":"YulFunctionCall","src":"807:25:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"797:6:103"}]},{"nodeType":"YulAssignment","src":"841:60:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"885:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"896:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:103"},"nodeType":"YulFunctionCall","src":"881:19:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"851:29:103"},"nodeType":"YulFunctionCall","src":"851:50:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"841:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_uint256t_uint256t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"502:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"513:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"525:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"533:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"541:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"549:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"557:6:103","type":""}],"src":"419:488:103"},{"body":{"nodeType":"YulBlock","src":"1013:76:103","statements":[{"nodeType":"YulAssignment","src":"1023:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1035:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1046:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1031:3:103"},"nodeType":"YulFunctionCall","src":"1031:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1023:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1065:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1076:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1058:6:103"},"nodeType":"YulFunctionCall","src":"1058:25:103"},"nodeType":"YulExpressionStatement","src":"1058:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"982:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"993:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1004:4:103","type":""}],"src":"912:177:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32t_addresst_uint256t_uint256t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n value3 := mload(add(headStart, 96))\n value4 := abi_decode_address_fromMemory(add(headStart, 128))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620014f0380380620014f0833981016040819052620000349162000306565b6200003f3362000171565b6001859055600280546001600160a01b038087166001600160a01b03199283161790925560038590556004849055600580549284169290911691909117905562000088620001c1565b600680546001600160a01b0319166001600160a01b0392909216919091179055620000b2620001dc565b600780546001600160a01b0319166001600160a01b0392909216919091179055620000dc62000209565b600880546001600160a01b0319166001600160a01b03929092169190911790556200011b70506f6c69637944656661756c74466c6f7760781b62000223565b600980546001600160a01b0319166001600160a01b039290921691909117905562000145620002ac565b600a80546001600160a01b0319166001600160a01b0392909216919091179055506200035a9350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620001d76541636365737360d01b62000223565b905090565b6000620001d77f436f6d706f6e656e744f776e657253657276696365000000000000000000000062000223565b6000620001d76e496e7374616e63655365727669636560881b5b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200026957600080fd5b505afa1580156200027e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a49190620002e2565b90505b919050565b6000620001d76d50726f647563745365727669636560901b62000223565b80516001600160a01b0381168114620002a757600080fd5b600060208284031215620002f4578081fd5b620002ff82620002ca565b9392505050565b600080600080600060a086880312156200031e578081fd5b855194506200033060208701620002ca565b935060408601519250606086015191506200034e60808701620002ca565b90509295509295909350565b611186806200036a6000396000f3fe6080604052600436106101ee5760003560e01c806370d2fe531161010d578063b9ea8d66116100a0578063d73cd9921161006f578063d73cd9921461027c578063e0815f0d1461042a578063e6f95edd1461043e578063f2fde38b14610451578063f4fdc1fa1461040c576101ee565b8063b9ea8d66146103ec578063bd1fe5d01461027c578063be169e7e1461027c578063d0e0ba951461040c576101ee565b806394f64ff4116100dc57806394f64ff4146102fe5780639a82f890146102be578063a18f5ae21461027c578063b3fca9bd1461027c576101ee565b806370d2fe5314610382578063715018a614610397578063893d20e8146103ac5780638da5cb5b146103ce576101ee565b806339cf5e16116101855780635ab1bd53116101545780635ab1bd531461033a5780635d1ca63114610358578063637d08f41461036d578063638ce0ba1461027c576101ee565b806339cf5e16146102fe5780633b5284b6146103255780633ec92bda146102fe57806359dacc6a1461027c576101ee565b80631b867c63116101c15780631b867c631461027c57806321df0da71461028c578063258d560c146102be5780632b677841146102de576101ee565b806309128d83146101f357806315dae03e1461022e57806317d7de7c1461024a5780631865c57d1461025f575b600080fd5b3480156101ff57600080fd5b5061021b70506f6c69637944656661756c74466c6f7760781b81565b6040519081526020015b60405180910390f35b34801561023a57600080fd5b5060016040516102259190611063565b34801561025657600080fd5b5060015461021b565b34801561026b57600080fd5b5060035b6040516102259190611049565b34801561028857600080fd5b505b005b34801561029857600080fd5b506002546001600160a01b03165b6040516001600160a01b039091168152602001610225565b3480156102ca57600080fd5b5060005b6040519015158152602001610225565b3480156102ea57600080fd5b5061028a6102f9366004610d54565b610473565b34801561030a57600080fd5b50604080516020810182526000815290516102259190611077565b34801561033157600080fd5b5061026f600381565b34801561034657600080fd5b506005546001600160a01b03166102a6565b34801561036457600080fd5b5060035461021b565b34801561037957600080fd5b506102a66107bd565b34801561038e57600080fd5b5060045461021b565b3480156103a357600080fd5b5061028a6107e1565b3480156103b857600080fd5b506102a6600080546001600160a01b03166107dc565b3480156103da57600080fd5b506000546001600160a01b03166102a6565b3480156103f857600080fd5b5061028a610407366004610d24565b6107f3565b34801561041857600080fd5b5061028a610427366004610d24565b50565b34801561043657600080fd5b5060016102ce565b61021b61044c366004610ecd565b610904565b34801561045d57600080fd5b5061028a61046c366004610c97565b610a22565b565b60085460405163296586d360e21b81526004810184905283916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104f89190810190610d75565b519050336001600160a01b038216146105645760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5443502d313a494e56414c49445f504f4c4943595f4f525f484f604482015263262222a960e11b60648201526084015b60405180910390fd5b6001600c600082825461057791906110bb565b9091555050600a546040805160006020808301829052835180840390910181528284019384905263fae43d1560e01b909352926001600160a01b03169163fae43d15916105cb918991899190604401610ff2565b602060405180830381600087803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061d9190610d3c565b600a54604051634e02c63f60e01b81526004810188905260248101839052604481018790529192506001600160a01b031690634e02c63f90606401600060405180830381600087803b15801561067257600080fd5b505af1158015610686573d6000803e3d6000fd5b5050600a5460408051600060208083018290528351808403909101815282840193849052633c0ebc2360e11b90935294506001600160a01b03909216925063781d7846916106dc918a9187918b9160440161101a565b602060405180830381600087803b1580156106f657600080fd5b505af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e9190610d3c565b600a5460405163fe64372b60e01b815260048101899052602481018390529192506001600160a01b03169063fe64372b906044016040805180830381600087803b15801561077b57600080fd5b505af115801561078f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b39190610eaa565b5050505050505050565b60006107dc70506f6c69637944656661756c74466c6f7760781b610a98565b905090565b6107e9610b1d565b6104716000610b77565b60085460405163a3f685f960e01b8152600481018390526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190610e25565b600a54602082015160405163e3ebdea560e01b81526004810186905260248101919091529192506001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fd9190610cf0565b5050505050565b60008033600a546040516349dc20a560e11b81529192506001600160a01b0316906393b8414a906109459084908c908c908c908c908c908c90600401610fa3565b602060405180830381600087803b15801561095f57600080fd5b505af1158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190610d3c565b600a54604051631b07b17f60e01b8152600481018390529193506001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190610cd6565b50509695505050505050565b610a2a610b1d565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055b565b61042781610b77565b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190610cba565b90505b919050565b6000546001600160a01b031633146104715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80518015158114610b1857600080fd5b60008083601f840112610be8578182fd5b50813567ffffffffffffffff811115610bff578182fd5b602083019150836020828501011115610c1757600080fd5b9250929050565b600082601f830112610c2e578081fd5b815167ffffffffffffffff811115610c4857610c48611125565b610c5b601f8201601f191660200161108a565b818152846020838601011115610c6f578283fd5b610c808260208301602087016110df565b949350505050565b805160038110610b1857600080fd5b600060208284031215610ca8578081fd5b8135610cb38161113b565b9392505050565b600060208284031215610ccb578081fd5b8151610cb38161113b565b600060208284031215610ce7578081fd5b610cb382610bc7565b600080600060608486031215610d04578182fd5b610d0d84610bc7565b925060208401519150604084015190509250925092565b600060208284031215610d35578081fd5b5035919050565b600060208284031215610d4d578081fd5b5051919050565b60008060408385031215610d66578182fd5b50508035926020909101359150565b600060208284031215610d86578081fd5b815167ffffffffffffffff80821115610d9d578283fd5b9083019060c08286031215610db0578283fd5b610dba60c061108a565b8251610dc58161113b565b815260208381015190820152610ddd60408401610c88565b6040820152606083015182811115610df3578485fd5b610dff87828601610c1e565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215610e38578182fd5b610e418161108a565b9050610e4c83610c88565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060408385031215610ebc578182fd5b505080516020909101519092909150565b60008060008060008060808789031215610ee5578384fd5b8635955060208701359450604087013567ffffffffffffffff80821115610f0a578586fd5b610f168a838b01610bd7565b90965094506060890135915080821115610f2e578384fd5b50610f3b89828a01610bd7565b979a9699509497509295939492505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452610f8f8160208601602086016110df565b601f01601f19169290920160200192915050565b600060018060a01b038916825287602083015286604083015260a06060830152610fd160a083018688610f4d565b8281036080840152610fe4818587610f4d565b9a9950505050505050505050565b6000848252836020830152606060408301526110116060830184610f77565b95945050505050565b60008582528460208301528360408301526080606083015261103f6080830184610f77565b9695505050505050565b602081016007831061105d5761105d61110f565b91905290565b602081016003831061105d5761105d61110f565b600060208252610cb36020830184610f77565b604051601f8201601f1916810167ffffffffffffffff811182821017156110b3576110b3611125565b604052919050565b600082198211156110da57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156110fa5781810151838201526020016110e2565b83811115611109576000848401525b50505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461042757600080fdfea2646970667358221220d035e3de5b3a00e05b9cb799c298a86d18cc827ca95856c5337177a97dceacf664736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x14F0 CODESIZE SUB DUP1 PUSH3 0x14F0 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x306 JUMP JUMPDEST PUSH3 0x3F CALLER PUSH3 0x171 JUMP JUMPDEST PUSH1 0x1 DUP6 SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x3 DUP6 SWAP1 SSTORE PUSH1 0x4 DUP5 SWAP1 SSTORE PUSH1 0x5 DUP1 SLOAD SWAP3 DUP5 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x88 PUSH3 0x1C1 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0xB2 PUSH3 0x1DC JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0xDC PUSH3 0x209 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x11B PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL PUSH3 0x223 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x145 PUSH3 0x2AC JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x35A SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D7 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x223 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D7 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x223 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D7 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x27E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x2A4 SWAP2 SWAP1 PUSH3 0x2E2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D7 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH3 0x223 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x2A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x2F4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH3 0x2FF DUP3 PUSH3 0x2CA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x31E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 MLOAD SWAP5 POP PUSH3 0x330 PUSH1 0x20 DUP8 ADD PUSH3 0x2CA JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD MLOAD SWAP3 POP PUSH1 0x60 DUP7 ADD MLOAD SWAP2 POP PUSH3 0x34E PUSH1 0x80 DUP8 ADD PUSH3 0x2CA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x1186 DUP1 PUSH3 0x36A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1EE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70D2FE53 GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xD73CD992 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x42A JUMPI DUP1 PUSH4 0xE6F95EDD EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x40C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x3EC JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x40C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x94F64FF4 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x382 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3CE JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x39CF5E16 GT PUSH2 0x185 JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x154 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x3B5284B6 EQ PUSH2 0x325 JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x1B867C63 GT PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0x2B677841 EQ PUSH2 0x2DE JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x9128D83 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x22E JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x25F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21B PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1063 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1049 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x2F9 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x473 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1077 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH1 0x3 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x379 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH2 0x7BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x7E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7DC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x407 CALLDATASIZE PUSH1 0x4 PUSH2 0xD24 JUMP JUMPDEST PUSH2 0x7F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0xD24 JUMP JUMPDEST POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH2 0x2CE JUMP JUMPDEST PUSH2 0x21B PUSH2 0x44C CALLDATASIZE PUSH1 0x4 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x904 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x46C CALLDATASIZE PUSH1 0x4 PUSH2 0xC97 JUMP JUMPDEST PUSH2 0xA22 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE DUP4 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x4F8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xD75 JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x564 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5443502D313A494E56414C49445F504F4C4943595F4F525F484F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x262222A9 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xC PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x577 SWAP2 SWAP1 PUSH2 0x10BB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE DUP3 DUP5 ADD SWAP4 DUP5 SWAP1 MSTORE PUSH4 0xFAE43D15 PUSH1 0xE0 SHL SWAP1 SWAP4 MSTORE SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xFAE43D15 SWAP2 PUSH2 0x5CB SWAP2 DUP10 SWAP2 DUP10 SWAP2 SWAP1 PUSH1 0x44 ADD PUSH2 0xFF2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x61D SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x686 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE DUP3 DUP5 ADD SWAP4 DUP5 SWAP1 MSTORE PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL SWAP1 SWAP4 MSTORE SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 POP PUSH4 0x781D7846 SWAP2 PUSH2 0x6DC SWAP2 DUP11 SWAP2 DUP8 SWAP2 DUP12 SWAP2 PUSH1 0x44 ADD PUSH2 0x101A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x70A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x72E SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x78F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0xEAA JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DC PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL PUSH2 0xA98 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7E9 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x471 PUSH1 0x0 PUSH2 0xB77 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x84D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x871 SWAP2 SWAP1 PUSH2 0xE25 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8FD SWAP2 SWAP1 PUSH2 0xCF0 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x945 SWAP1 DUP5 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0xFA3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x95F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x973 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x997 SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA16 SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA2A PUSH2 0xB1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x55B JUMP JUMPDEST PUSH2 0x427 DUP2 PUSH2 0xB77 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB15 SWAP2 SWAP1 PUSH2 0xCBA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x55B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xB18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xBE8 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBFF JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC2E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC48 JUMPI PUSH2 0xC48 PUSH2 0x1125 JUMP JUMPDEST PUSH2 0xC5B PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x108A JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xC6F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xC80 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x10DF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xB18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCA8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCB3 DUP2 PUSH2 0x113B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCCB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCB3 DUP2 PUSH2 0x113B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE7 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCB3 DUP3 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD04 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xD0D DUP5 PUSH2 0xBC7 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD35 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4D JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD66 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD86 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD9D JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0xDB0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xDBA PUSH1 0xC0 PUSH2 0x108A JUMP JUMPDEST DUP3 MLOAD PUSH2 0xDC5 DUP2 PUSH2 0x113B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0xDDD PUSH1 0x40 DUP5 ADD PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0xDF3 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0xDFF DUP8 DUP3 DUP7 ADD PUSH2 0xC1E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE38 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xE41 DUP2 PUSH2 0x108A JUMP JUMPDEST SWAP1 POP PUSH2 0xE4C DUP4 PUSH2 0xC88 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEBC JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xEE5 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xF0A JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0xF16 DUP11 DUP4 DUP12 ADD PUSH2 0xBD7 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xF2E JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0xF3B DUP10 DUP3 DUP11 ADD PUSH2 0xBD7 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xF8F DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x10DF JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP10 AND DUP3 MSTORE DUP8 PUSH1 0x20 DUP4 ADD MSTORE DUP7 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xFD1 PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0xF4D JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0xFE4 DUP2 DUP6 DUP8 PUSH2 0xF4D JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1011 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x103F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x105D JUMPI PUSH2 0x105D PUSH2 0x110F JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x105D JUMPI PUSH2 0x105D PUSH2 0x110F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xCB3 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10B3 JUMPI PUSH2 0x10B3 PUSH2 0x1125 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x10DA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10FA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E2 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1109 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x427 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD0 CALLDATALOAD 0xE3 0xDE JUMPDEST GASPRICE STOP 0xE0 JUMPDEST SWAP13 0xB7 SWAP10 0xC2 SWAP9 0xA8 PUSH14 0x18CC827CA95856C5337177A97DCE 0xAC 0xF6 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1116:6274:94:-:0;;;2097:684;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:41;719:10:59;936:18:41;:32::i;:::-;2318:14:94::1;:32:::0;;;2361:13:::1;:28:::0;;-1:-1:-1;;;;;2361:28:94;;::::1;-1:-1:-1::0;;;;;;2361:28:94;;::::1;;::::0;;;2400:12:::1;:30:::0;;;2441:11:::1;:28:::0;;;2482:9:::1;:38:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;2541:12:::1;:10;:12::i;:::-;2531:7;:22:::0;;-1:-1:-1;;;;;;2531:22:94::1;-1:-1:-1::0;;;;;2531:22:94;;;::::1;::::0;;;::::1;::::0;;2589:27:::1;:25;:27::i;:::-;2564:22;:52:::0;;-1:-1:-1;;;;;;2564:52:94::1;-1:-1:-1::0;;;;;2564:52:94;;;::::1;::::0;;;::::1;::::0;;2646:21:::1;:19;:21::i;:::-;2627:16;:40:::0;;-1:-1:-1;;;;;;2627:40:94::1;-1:-1:-1::0;;;;;2627:40:94;;;::::1;::::0;;;::::1;::::0;;2692:32:::1;-1:-1:-1::0;;;2692:19:94::1;:32::i;:::-;2678:11;:46:::0;;-1:-1:-1;;;;;;2678:46:94::1;-1:-1:-1::0;;;;;2678:46:94;;;::::1;::::0;;;::::1;::::0;;2753:20:::1;:18;:20::i;:::-;2735:15;:38:::0;;-1:-1:-1;;;;;;2735:38:94::1;-1:-1:-1::0;;;;;2735:38:94;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1116:6274:94;;-1:-1:-1;;;;1116:6274:94;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;6581:125:94:-;6625:7;6660:29;-1:-1:-1;;;6660:19:94;:29::i;:::-;6645:45;;6581:125;:::o;6883:185::-;6942:22;7007:44;;:19;:44::i;6714:161::-;6767:16;6820:38;-1:-1:-1;;;7241:144:94;7342:9;;:35;;-1:-1:-1;;;7342:35:94;;;;;1058:25:103;;;7314:7:94;;-1:-1:-1;;;;;7342:9:94;;:21;;1031:18:103;;7342:35:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7335:42;;7241:144;;;;:::o;7076:157::-;7128:15;7179:37;-1:-1:-1;;;7179:19:94;:37::i;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;196:218;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:488::-;;;;;;610:3;598:9;589:7;585:23;581:33;578:2;;;632:6;624;617:22;578:2;666:9;660:16;650:26;;695:49;740:2;729:9;725:18;695:49;:::i;:::-;685:59;;784:2;773:9;769:18;763:25;753:35;;828:2;817:9;813:18;807:25;797:35;;851:50;896:3;885:9;881:19;851:50;:::i;:::-;841:60;;568:339;;;;;;;;:::o;1013:76::-;1116:6274:94;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:13273:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"71:107:103","statements":[{"nodeType":"YulAssignment","src":"81:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"96:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"90:5:103"},"nodeType":"YulFunctionCall","src":"90:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:103"}]},{"body":{"nodeType":"YulBlock","src":"156:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"165:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"168:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"158:6:103"},"nodeType":"YulFunctionCall","src":"158:12:103"},"nodeType":"YulExpressionStatement","src":"158:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"125:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"146:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"139:6:103"},"nodeType":"YulFunctionCall","src":"139:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"122:2:103"},"nodeType":"YulFunctionCall","src":"122:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"115:6:103"},"nodeType":"YulFunctionCall","src":"115:40:103"},"nodeType":"YulIf","src":"112:2:103"}]},"name":"abi_decode_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"50:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"61:5:103","type":""}],"src":"14:164:103"},{"body":{"nodeType":"YulBlock","src":"255:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"304:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"313:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"323:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"306:6:103"},"nodeType":"YulFunctionCall","src":"306:26:103"},"nodeType":"YulExpressionStatement","src":"306:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"283:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"291:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"298:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"268:6:103"},"nodeType":"YulFunctionCall","src":"268:35:103"},"nodeType":"YulIf","src":"265:2:103"},{"nodeType":"YulAssignment","src":"343:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"366:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"353:12:103"},"nodeType":"YulFunctionCall","src":"353:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"343:6:103"}]},{"body":{"nodeType":"YulBlock","src":"416:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"425:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"435:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"418:6:103"},"nodeType":"YulFunctionCall","src":"418:26:103"},"nodeType":"YulExpressionStatement","src":"418:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"396:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"385:2:103"},"nodeType":"YulFunctionCall","src":"385:30:103"},"nodeType":"YulIf","src":"382:2:103"},{"nodeType":"YulAssignment","src":"455:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"471:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"479:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"467:3:103"},"nodeType":"YulFunctionCall","src":"467:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"455:8:103"}]},{"body":{"nodeType":"YulBlock","src":"536:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"545:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"548:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"538:6:103"},"nodeType":"YulFunctionCall","src":"538:12:103"},"nodeType":"YulExpressionStatement","src":"538:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"507:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"515:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"503:3:103"},"nodeType":"YulFunctionCall","src":"503:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"524:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"499:3:103"},"nodeType":"YulFunctionCall","src":"499:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"531:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"496:2:103"},"nodeType":"YulFunctionCall","src":"496:39:103"},"nodeType":"YulIf","src":"493:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"218:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"226:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"234:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"244:6:103","type":""}],"src":"183:375:103"},{"body":{"nodeType":"YulBlock","src":"626:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"675:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"684:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"691:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"677:6:103"},"nodeType":"YulFunctionCall","src":"677:20:103"},"nodeType":"YulExpressionStatement","src":"677:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"654:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"662:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"650:3:103"},"nodeType":"YulFunctionCall","src":"650:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"669:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"646:3:103"},"nodeType":"YulFunctionCall","src":"646:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"639:6:103"},"nodeType":"YulFunctionCall","src":"639:35:103"},"nodeType":"YulIf","src":"636:2:103"},{"nodeType":"YulVariableDeclaration","src":"708:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"724:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"718:5:103"},"nodeType":"YulFunctionCall","src":"718:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"712:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"770:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"772:16:103"},"nodeType":"YulFunctionCall","src":"772:18:103"},"nodeType":"YulExpressionStatement","src":"772:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"746:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"750:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"743:2:103"},"nodeType":"YulFunctionCall","src":"743:26:103"},"nodeType":"YulIf","src":"740:2:103"},{"nodeType":"YulVariableDeclaration","src":"801:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"844:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"848:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"840:3:103"},"nodeType":"YulFunctionCall","src":"840:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"859:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"855:3:103"},"nodeType":"YulFunctionCall","src":"855:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"836:3:103"},"nodeType":"YulFunctionCall","src":"836:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"832:3:103"},"nodeType":"YulFunctionCall","src":"832:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"816:15:103"},"nodeType":"YulFunctionCall","src":"816:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"805:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"887:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"896:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"880:6:103"},"nodeType":"YulFunctionCall","src":"880:19:103"},"nodeType":"YulExpressionStatement","src":"880:19:103"},{"body":{"nodeType":"YulBlock","src":"947:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"956:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"963:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"949:6:103"},"nodeType":"YulFunctionCall","src":"949:20:103"},"nodeType":"YulExpressionStatement","src":"949:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"922:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"918:3:103"},"nodeType":"YulFunctionCall","src":"918:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"935:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"914:3:103"},"nodeType":"YulFunctionCall","src":"914:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"942:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"911:2:103"},"nodeType":"YulFunctionCall","src":"911:35:103"},"nodeType":"YulIf","src":"908:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1006:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1014:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1002:3:103"},"nodeType":"YulFunctionCall","src":"1002:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1025:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"1034:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1021:3:103"},"nodeType":"YulFunctionCall","src":"1021:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1041:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"980:21:103"},"nodeType":"YulFunctionCall","src":"980:64:103"},"nodeType":"YulExpressionStatement","src":"980:64:103"},{"nodeType":"YulAssignment","src":"1053:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"1062:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1053:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"600:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"608:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"616:5:103","type":""}],"src":"563:512:103"},{"body":{"nodeType":"YulBlock","src":"1153:87:103","statements":[{"nodeType":"YulAssignment","src":"1163:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1178:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1172:5:103"},"nodeType":"YulFunctionCall","src":"1172:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1163:5:103"}]},{"body":{"nodeType":"YulBlock","src":"1218:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1227:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1230:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1220:6:103"},"nodeType":"YulFunctionCall","src":"1220:12:103"},"nodeType":"YulExpressionStatement","src":"1220:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1207:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1214:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1204:2:103"},"nodeType":"YulFunctionCall","src":"1204:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1197:6:103"},"nodeType":"YulFunctionCall","src":"1197:20:103"},"nodeType":"YulIf","src":"1194:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1132:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1143:5:103","type":""}],"src":"1080:160:103"},{"body":{"nodeType":"YulBlock","src":"1315:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1361:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1370:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1378:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1363:6:103"},"nodeType":"YulFunctionCall","src":"1363:22:103"},"nodeType":"YulExpressionStatement","src":"1363:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1336:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1345:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1332:3:103"},"nodeType":"YulFunctionCall","src":"1332:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1357:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1328:3:103"},"nodeType":"YulFunctionCall","src":"1328:32:103"},"nodeType":"YulIf","src":"1325:2:103"},{"nodeType":"YulVariableDeclaration","src":"1396:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1422:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1409:12:103"},"nodeType":"YulFunctionCall","src":"1409:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1400:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1466:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1441:24:103"},"nodeType":"YulFunctionCall","src":"1441:31:103"},"nodeType":"YulExpressionStatement","src":"1441:31:103"},{"nodeType":"YulAssignment","src":"1481:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1491:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1481:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1281:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1292:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1304:6:103","type":""}],"src":"1245:257:103"},{"body":{"nodeType":"YulBlock","src":"1588:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1634:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1643:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1651:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1636:6:103"},"nodeType":"YulFunctionCall","src":"1636:22:103"},"nodeType":"YulExpressionStatement","src":"1636:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1609:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1618:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1605:3:103"},"nodeType":"YulFunctionCall","src":"1605:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1630:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1601:3:103"},"nodeType":"YulFunctionCall","src":"1601:32:103"},"nodeType":"YulIf","src":"1598:2:103"},{"nodeType":"YulVariableDeclaration","src":"1669:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1688:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1682:5:103"},"nodeType":"YulFunctionCall","src":"1682:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1673:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1732:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1707:24:103"},"nodeType":"YulFunctionCall","src":"1707:31:103"},"nodeType":"YulExpressionStatement","src":"1707:31:103"},{"nodeType":"YulAssignment","src":"1747:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1757:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1747:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1554:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1565:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1577:6:103","type":""}],"src":"1507:261:103"},{"body":{"nodeType":"YulBlock","src":"1851:134:103","statements":[{"body":{"nodeType":"YulBlock","src":"1897:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1906:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1914:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1899:6:103"},"nodeType":"YulFunctionCall","src":"1899:22:103"},"nodeType":"YulExpressionStatement","src":"1899:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1872:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1881:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1868:3:103"},"nodeType":"YulFunctionCall","src":"1868:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1893:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:32:103"},"nodeType":"YulIf","src":"1861:2:103"},{"nodeType":"YulAssignment","src":"1932:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1969:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"1942:26:103"},"nodeType":"YulFunctionCall","src":"1942:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1932:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1817:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1828:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1840:6:103","type":""}],"src":"1773:212:103"},{"body":{"nodeType":"YulBlock","src":"2102:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"2148:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2157:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2165:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2150:6:103"},"nodeType":"YulFunctionCall","src":"2150:22:103"},"nodeType":"YulExpressionStatement","src":"2150:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2123:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2132:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2119:3:103"},"nodeType":"YulFunctionCall","src":"2119:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2144:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2115:3:103"},"nodeType":"YulFunctionCall","src":"2115:32:103"},"nodeType":"YulIf","src":"2112:2:103"},{"nodeType":"YulAssignment","src":"2183:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2220:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"2193:26:103"},"nodeType":"YulFunctionCall","src":"2193:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2183:6:103"}]},{"nodeType":"YulAssignment","src":"2239:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2259:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2270:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2255:3:103"},"nodeType":"YulFunctionCall","src":"2255:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2249:5:103"},"nodeType":"YulFunctionCall","src":"2249:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2239:6:103"}]},{"nodeType":"YulAssignment","src":"2283:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2303:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2314:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2299:3:103"},"nodeType":"YulFunctionCall","src":"2299:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2293:5:103"},"nodeType":"YulFunctionCall","src":"2293:25:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2283:6:103"}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2052:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2063:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2075:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2083:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2091:6:103","type":""}],"src":"1990:334:103"},{"body":{"nodeType":"YulBlock","src":"2399:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2445:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2454:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2462:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2447:6:103"},"nodeType":"YulFunctionCall","src":"2447:22:103"},"nodeType":"YulExpressionStatement","src":"2447:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2420:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2429:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2416:3:103"},"nodeType":"YulFunctionCall","src":"2416:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2441:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2412:3:103"},"nodeType":"YulFunctionCall","src":"2412:32:103"},"nodeType":"YulIf","src":"2409:2:103"},{"nodeType":"YulAssignment","src":"2480:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2503:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2490:12:103"},"nodeType":"YulFunctionCall","src":"2490:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2480:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2365:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2376:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2388:6:103","type":""}],"src":"2329:190:103"},{"body":{"nodeType":"YulBlock","src":"2605:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"2651:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2660:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2668:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2653:6:103"},"nodeType":"YulFunctionCall","src":"2653:22:103"},"nodeType":"YulExpressionStatement","src":"2653:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2626:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2635:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2622:3:103"},"nodeType":"YulFunctionCall","src":"2622:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2647:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2618:3:103"},"nodeType":"YulFunctionCall","src":"2618:32:103"},"nodeType":"YulIf","src":"2615:2:103"},{"nodeType":"YulAssignment","src":"2686:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2702:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2696:5:103"},"nodeType":"YulFunctionCall","src":"2696:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2686:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2571:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2582:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2594:6:103","type":""}],"src":"2524:194:103"},{"body":{"nodeType":"YulBlock","src":"2810:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2856:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2865:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2873:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2858:6:103"},"nodeType":"YulFunctionCall","src":"2858:22:103"},"nodeType":"YulExpressionStatement","src":"2858:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2831:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2840:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2827:3:103"},"nodeType":"YulFunctionCall","src":"2827:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2852:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2823:3:103"},"nodeType":"YulFunctionCall","src":"2823:32:103"},"nodeType":"YulIf","src":"2820:2:103"},{"nodeType":"YulAssignment","src":"2891:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2914:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2901:12:103"},"nodeType":"YulFunctionCall","src":"2901:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2891:6:103"}]},{"nodeType":"YulAssignment","src":"2933:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2960:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2971:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2956:3:103"},"nodeType":"YulFunctionCall","src":"2956:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2943:12:103"},"nodeType":"YulFunctionCall","src":"2943:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2933:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2768:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2779:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2791:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2799:6:103","type":""}],"src":"2723:258:103"},{"body":{"nodeType":"YulBlock","src":"3093:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"3139:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3148:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3156:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3141:6:103"},"nodeType":"YulFunctionCall","src":"3141:22:103"},"nodeType":"YulExpressionStatement","src":"3141:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3114:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3123:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3110:3:103"},"nodeType":"YulFunctionCall","src":"3110:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3135:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3106:3:103"},"nodeType":"YulFunctionCall","src":"3106:32:103"},"nodeType":"YulIf","src":"3103:2:103"},{"nodeType":"YulVariableDeclaration","src":"3174:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3194:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3188:5:103"},"nodeType":"YulFunctionCall","src":"3188:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3178:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3213:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3223:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3217:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3268:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3277:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3285:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3270:6:103"},"nodeType":"YulFunctionCall","src":"3270:22:103"},"nodeType":"YulExpressionStatement","src":"3270:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3256:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3264:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3253:2:103"},"nodeType":"YulFunctionCall","src":"3253:14:103"},"nodeType":"YulIf","src":"3250:2:103"},{"nodeType":"YulVariableDeclaration","src":"3303:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3317:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3328:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3313:3:103"},"nodeType":"YulFunctionCall","src":"3313:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3307:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3375:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3384:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3392:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3377:6:103"},"nodeType":"YulFunctionCall","src":"3377:22:103"},"nodeType":"YulExpressionStatement","src":"3377:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3355:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"3364:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3351:3:103"},"nodeType":"YulFunctionCall","src":"3351:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3369:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3347:3:103"},"nodeType":"YulFunctionCall","src":"3347:27:103"},"nodeType":"YulIf","src":"3344:2:103"},{"nodeType":"YulVariableDeclaration","src":"3410:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3439:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3423:15:103"},"nodeType":"YulFunctionCall","src":"3423:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3414:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3453:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3474:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3468:5:103"},"nodeType":"YulFunctionCall","src":"3468:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"3457:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3511:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3486:24:103"},"nodeType":"YulFunctionCall","src":"3486:33:103"},"nodeType":"YulExpressionStatement","src":"3486:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3535:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"3542:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3528:6:103"},"nodeType":"YulFunctionCall","src":"3528:22:103"},"nodeType":"YulExpressionStatement","src":"3528:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3570:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3577:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3566:3:103"},"nodeType":"YulFunctionCall","src":"3566:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3592:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3596:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3588:3:103"},"nodeType":"YulFunctionCall","src":"3588:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3582:5:103"},"nodeType":"YulFunctionCall","src":"3582:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3559:6:103"},"nodeType":"YulFunctionCall","src":"3559:42:103"},"nodeType":"YulExpressionStatement","src":"3559:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3621:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3617:3:103"},"nodeType":"YulFunctionCall","src":"3617:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3680:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3684:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3676:3:103"},"nodeType":"YulFunctionCall","src":"3676:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"3633:42:103"},"nodeType":"YulFunctionCall","src":"3633:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:103"},"nodeType":"YulFunctionCall","src":"3610:79:103"},"nodeType":"YulExpressionStatement","src":"3610:79:103"},{"nodeType":"YulVariableDeclaration","src":"3698:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3724:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3728:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3720:3:103"},"nodeType":"YulFunctionCall","src":"3720:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3714:5:103"},"nodeType":"YulFunctionCall","src":"3714:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3702:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3761:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3770:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3778:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3763:6:103"},"nodeType":"YulFunctionCall","src":"3763:22:103"},"nodeType":"YulExpressionStatement","src":"3763:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3747:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3757:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3744:2:103"},"nodeType":"YulFunctionCall","src":"3744:16:103"},"nodeType":"YulIf","src":"3741:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3807:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3814:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3803:3:103"},"nodeType":"YulFunctionCall","src":"3803:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3851:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3855:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3847:3:103"},"nodeType":"YulFunctionCall","src":"3847:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3866:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"3819:27:103"},"nodeType":"YulFunctionCall","src":"3819:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3796:6:103"},"nodeType":"YulFunctionCall","src":"3796:79:103"},"nodeType":"YulExpressionStatement","src":"3796:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3895:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3902:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3891:3:103"},"nodeType":"YulFunctionCall","src":"3891:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3918:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3922:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3914:3:103"},"nodeType":"YulFunctionCall","src":"3914:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3908:5:103"},"nodeType":"YulFunctionCall","src":"3908:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3884:6:103"},"nodeType":"YulFunctionCall","src":"3884:44:103"},"nodeType":"YulExpressionStatement","src":"3884:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3948:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3955:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3944:3:103"},"nodeType":"YulFunctionCall","src":"3944:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3971:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3975:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3967:3:103"},"nodeType":"YulFunctionCall","src":"3967:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3961:5:103"},"nodeType":"YulFunctionCall","src":"3961:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3937:6:103"},"nodeType":"YulFunctionCall","src":"3937:44:103"},"nodeType":"YulExpressionStatement","src":"3937:44:103"},{"nodeType":"YulAssignment","src":"3990:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4000:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3990:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3059:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3070:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3082:6:103","type":""}],"src":"2986:1025:103"},{"body":{"nodeType":"YulBlock","src":"4121:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4131:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4141:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4135:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4189:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4198:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4206:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4191:6:103"},"nodeType":"YulFunctionCall","src":"4191:22:103"},"nodeType":"YulExpressionStatement","src":"4191:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4164:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4173:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4160:3:103"},"nodeType":"YulFunctionCall","src":"4160:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4185:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4156:3:103"},"nodeType":"YulFunctionCall","src":"4156:32:103"},"nodeType":"YulIf","src":"4153:2:103"},{"nodeType":"YulVariableDeclaration","src":"4224:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4253:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4237:15:103"},"nodeType":"YulFunctionCall","src":"4237:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4228:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4272:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"4279:42:103"},"nodeType":"YulFunctionCall","src":"4279:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4265:6:103"},"nodeType":"YulFunctionCall","src":"4265:68:103"},"nodeType":"YulExpressionStatement","src":"4265:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4353:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4360:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4349:3:103"},"nodeType":"YulFunctionCall","src":"4349:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4375:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4386:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4371:3:103"},"nodeType":"YulFunctionCall","src":"4371:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4365:5:103"},"nodeType":"YulFunctionCall","src":"4365:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4342:6:103"},"nodeType":"YulFunctionCall","src":"4342:49:103"},"nodeType":"YulExpressionStatement","src":"4342:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4411:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4418:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4407:3:103"},"nodeType":"YulFunctionCall","src":"4407:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4444:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4429:3:103"},"nodeType":"YulFunctionCall","src":"4429:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4423:5:103"},"nodeType":"YulFunctionCall","src":"4423:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4400:6:103"},"nodeType":"YulFunctionCall","src":"4400:49:103"},"nodeType":"YulExpressionStatement","src":"4400:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4469:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4476:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4465:3:103"},"nodeType":"YulFunctionCall","src":"4465:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4491:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4502:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4487:3:103"},"nodeType":"YulFunctionCall","src":"4487:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4481:5:103"},"nodeType":"YulFunctionCall","src":"4481:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4458:6:103"},"nodeType":"YulFunctionCall","src":"4458:49:103"},"nodeType":"YulExpressionStatement","src":"4458:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4527:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4534:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4523:3:103"},"nodeType":"YulFunctionCall","src":"4523:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4550:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4561:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4546:3:103"},"nodeType":"YulFunctionCall","src":"4546:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4540:5:103"},"nodeType":"YulFunctionCall","src":"4540:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4516:6:103"},"nodeType":"YulFunctionCall","src":"4516:51:103"},"nodeType":"YulExpressionStatement","src":"4516:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4587:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4594:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4583:3:103"},"nodeType":"YulFunctionCall","src":"4583:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4610:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4621:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4606:3:103"},"nodeType":"YulFunctionCall","src":"4606:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4600:5:103"},"nodeType":"YulFunctionCall","src":"4600:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4576:6:103"},"nodeType":"YulFunctionCall","src":"4576:51:103"},"nodeType":"YulExpressionStatement","src":"4576:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4647:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4654:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4643:3:103"},"nodeType":"YulFunctionCall","src":"4643:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4670:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4681:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4666:3:103"},"nodeType":"YulFunctionCall","src":"4666:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4660:5:103"},"nodeType":"YulFunctionCall","src":"4660:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4636:6:103"},"nodeType":"YulFunctionCall","src":"4636:51:103"},"nodeType":"YulExpressionStatement","src":"4636:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4707:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4714:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4703:3:103"},"nodeType":"YulFunctionCall","src":"4703:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4730:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4741:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4726:3:103"},"nodeType":"YulFunctionCall","src":"4726:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4720:5:103"},"nodeType":"YulFunctionCall","src":"4720:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4696:6:103"},"nodeType":"YulFunctionCall","src":"4696:51:103"},"nodeType":"YulExpressionStatement","src":"4696:51:103"},{"nodeType":"YulVariableDeclaration","src":"4756:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4766:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4760:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4789:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4796:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4785:3:103"},"nodeType":"YulFunctionCall","src":"4785:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4811:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4822:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4807:3:103"},"nodeType":"YulFunctionCall","src":"4807:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4801:5:103"},"nodeType":"YulFunctionCall","src":"4801:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4778:6:103"},"nodeType":"YulFunctionCall","src":"4778:49:103"},"nodeType":"YulExpressionStatement","src":"4778:49:103"},{"nodeType":"YulAssignment","src":"4836:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4846:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4836:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4087:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4098:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4110:6:103","type":""}],"src":"4016:841:103"},{"body":{"nodeType":"YulBlock","src":"4932:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"4978:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4987:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4995:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4980:6:103"},"nodeType":"YulFunctionCall","src":"4980:22:103"},"nodeType":"YulExpressionStatement","src":"4980:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4953:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4962:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4949:3:103"},"nodeType":"YulFunctionCall","src":"4949:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4974:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4945:3:103"},"nodeType":"YulFunctionCall","src":"4945:32:103"},"nodeType":"YulIf","src":"4942:2:103"},{"nodeType":"YulAssignment","src":"5013:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5036:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5023:12:103"},"nodeType":"YulFunctionCall","src":"5023:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5013:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4898:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4909:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4921:6:103","type":""}],"src":"4862:190:103"},{"body":{"nodeType":"YulBlock","src":"5138:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"5184:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5193:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5201:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5186:6:103"},"nodeType":"YulFunctionCall","src":"5186:22:103"},"nodeType":"YulExpressionStatement","src":"5186:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5159:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5168:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5155:3:103"},"nodeType":"YulFunctionCall","src":"5155:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5180:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5151:3:103"},"nodeType":"YulFunctionCall","src":"5151:32:103"},"nodeType":"YulIf","src":"5148:2:103"},{"nodeType":"YulAssignment","src":"5219:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5235:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5229:5:103"},"nodeType":"YulFunctionCall","src":"5229:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5219:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5104:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5115:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5127:6:103","type":""}],"src":"5057:194:103"},{"body":{"nodeType":"YulBlock","src":"5354:157:103","statements":[{"body":{"nodeType":"YulBlock","src":"5400:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5409:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5417:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5402:6:103"},"nodeType":"YulFunctionCall","src":"5402:22:103"},"nodeType":"YulExpressionStatement","src":"5402:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5375:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5384:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5371:3:103"},"nodeType":"YulFunctionCall","src":"5371:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5396:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5367:3:103"},"nodeType":"YulFunctionCall","src":"5367:32:103"},"nodeType":"YulIf","src":"5364:2:103"},{"nodeType":"YulAssignment","src":"5435:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5451:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5445:5:103"},"nodeType":"YulFunctionCall","src":"5445:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5435:6:103"}]},{"nodeType":"YulAssignment","src":"5470:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5490:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5501:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5486:3:103"},"nodeType":"YulFunctionCall","src":"5486:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5480:5:103"},"nodeType":"YulFunctionCall","src":"5480:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5470:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5312:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5323:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5335:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5343:6:103","type":""}],"src":"5256:255:103"},{"body":{"nodeType":"YulBlock","src":"5675:725:103","statements":[{"body":{"nodeType":"YulBlock","src":"5722:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5731:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5739:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5724:6:103"},"nodeType":"YulFunctionCall","src":"5724:22:103"},"nodeType":"YulExpressionStatement","src":"5724:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5696:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5705:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5692:3:103"},"nodeType":"YulFunctionCall","src":"5692:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5717:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5688:3:103"},"nodeType":"YulFunctionCall","src":"5688:33:103"},"nodeType":"YulIf","src":"5685:2:103"},{"nodeType":"YulAssignment","src":"5757:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5780:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5767:12:103"},"nodeType":"YulFunctionCall","src":"5767:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5757:6:103"}]},{"nodeType":"YulAssignment","src":"5799:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5826:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5837:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5822:3:103"},"nodeType":"YulFunctionCall","src":"5822:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5809:12:103"},"nodeType":"YulFunctionCall","src":"5809:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5799:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5850:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5881:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5892:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5877:3:103"},"nodeType":"YulFunctionCall","src":"5877:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5864:12:103"},"nodeType":"YulFunctionCall","src":"5864:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5854:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5905:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5915:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5909:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5960:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5969:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5977:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5962:6:103"},"nodeType":"YulFunctionCall","src":"5962:22:103"},"nodeType":"YulExpressionStatement","src":"5962:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5948:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5956:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5945:2:103"},"nodeType":"YulFunctionCall","src":"5945:14:103"},"nodeType":"YulIf","src":"5942:2:103"},{"nodeType":"YulVariableDeclaration","src":"5995:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6051:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6062:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6047:3:103"},"nodeType":"YulFunctionCall","src":"6047:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6071:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"6021:25:103"},"nodeType":"YulFunctionCall","src":"6021:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"5999:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"6009:8:103","type":""}]},{"nodeType":"YulAssignment","src":"6088:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"6098:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6088:6:103"}]},{"nodeType":"YulAssignment","src":"6115:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"6125:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6115:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6142:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6186:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6171:3:103"},"nodeType":"YulFunctionCall","src":"6171:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6158:12:103"},"nodeType":"YulFunctionCall","src":"6158:32:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6146:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6219:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6228:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6236:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6221:6:103"},"nodeType":"YulFunctionCall","src":"6221:22:103"},"nodeType":"YulExpressionStatement","src":"6221:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6205:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6215:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6202:2:103"},"nodeType":"YulFunctionCall","src":"6202:16:103"},"nodeType":"YulIf","src":"6199:2:103"},{"nodeType":"YulVariableDeclaration","src":"6254:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6310:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6321:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6306:3:103"},"nodeType":"YulFunctionCall","src":"6306:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6332:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"6280:25:103"},"nodeType":"YulFunctionCall","src":"6280:60:103"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"6258:8:103","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"6268:8:103","type":""}]},{"nodeType":"YulAssignment","src":"6349:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"6359:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6349:6:103"}]},{"nodeType":"YulAssignment","src":"6376:18:103","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"6386:8:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"6376:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5601:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5612:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5624:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5632:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5640:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5648:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5656:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5664:6:103","type":""}],"src":"5516:884:103"},{"body":{"nodeType":"YulBlock","src":"6471:202:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6488:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"6493:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6481:6:103"},"nodeType":"YulFunctionCall","src":"6481:19:103"},"nodeType":"YulExpressionStatement","src":"6481:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6526:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"6531:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6522:3:103"},"nodeType":"YulFunctionCall","src":"6522:14:103"},{"name":"start","nodeType":"YulIdentifier","src":"6538:5:103"},{"name":"length","nodeType":"YulIdentifier","src":"6545:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"6509:12:103"},"nodeType":"YulFunctionCall","src":"6509:43:103"},"nodeType":"YulExpressionStatement","src":"6509:43:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6576:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"6581:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6572:3:103"},"nodeType":"YulFunctionCall","src":"6572:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"6590:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6568:3:103"},"nodeType":"YulFunctionCall","src":"6568:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"6597:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6561:6:103"},"nodeType":"YulFunctionCall","src":"6561:40:103"},"nodeType":"YulExpressionStatement","src":"6561:40:103"},{"nodeType":"YulAssignment","src":"6610:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6625:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6638:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6646:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6634:3:103"},"nodeType":"YulFunctionCall","src":"6634:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6655:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6651:3:103"},"nodeType":"YulFunctionCall","src":"6651:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6630:3:103"},"nodeType":"YulFunctionCall","src":"6630:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6621:3:103"},"nodeType":"YulFunctionCall","src":"6621:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"6662:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6617:3:103"},"nodeType":"YulFunctionCall","src":"6617:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6610:3:103"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"6440:5:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"6447:6:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6455:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6463:3:103","type":""}],"src":"6405:268:103"},{"body":{"nodeType":"YulBlock","src":"6727:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"6737:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6757:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6751:5:103"},"nodeType":"YulFunctionCall","src":"6751:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6741:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6779:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"6784:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6772:6:103"},"nodeType":"YulFunctionCall","src":"6772:19:103"},"nodeType":"YulExpressionStatement","src":"6772:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6826:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6833:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6822:3:103"},"nodeType":"YulFunctionCall","src":"6822:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6844:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"6849:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6840:3:103"},"nodeType":"YulFunctionCall","src":"6840:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"6856:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6800:21:103"},"nodeType":"YulFunctionCall","src":"6800:63:103"},"nodeType":"YulExpressionStatement","src":"6800:63:103"},{"nodeType":"YulAssignment","src":"6872:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6887:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6900:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6908:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6896:3:103"},"nodeType":"YulFunctionCall","src":"6896:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6917:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6913:3:103"},"nodeType":"YulFunctionCall","src":"6913:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6892:3:103"},"nodeType":"YulFunctionCall","src":"6892:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6883:3:103"},"nodeType":"YulFunctionCall","src":"6883:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"6924:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6879:3:103"},"nodeType":"YulFunctionCall","src":"6879:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6872:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6704:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6711:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6719:3:103","type":""}],"src":"6678:257:103"},{"body":{"nodeType":"YulBlock","src":"7041:102:103","statements":[{"nodeType":"YulAssignment","src":"7051:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7063:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7074:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7059:3:103"},"nodeType":"YulFunctionCall","src":"7059:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7051:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7093:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7108:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7124:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7129:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7120:3:103"},"nodeType":"YulFunctionCall","src":"7120:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7133:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7116:3:103"},"nodeType":"YulFunctionCall","src":"7116:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7104:3:103"},"nodeType":"YulFunctionCall","src":"7104:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7086:6:103"},"nodeType":"YulFunctionCall","src":"7086:51:103"},"nodeType":"YulExpressionStatement","src":"7086:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7010:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7021:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7032:4:103","type":""}],"src":"6940:203:103"},{"body":{"nodeType":"YulBlock","src":"7425:404:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7442:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7457:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7473:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7478:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7469:3:103"},"nodeType":"YulFunctionCall","src":"7469:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7482:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7465:3:103"},"nodeType":"YulFunctionCall","src":"7465:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7453:3:103"},"nodeType":"YulFunctionCall","src":"7453:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7435:6:103"},"nodeType":"YulFunctionCall","src":"7435:51:103"},"nodeType":"YulExpressionStatement","src":"7435:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7506:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7517:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7502:3:103"},"nodeType":"YulFunctionCall","src":"7502:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7522:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7495:6:103"},"nodeType":"YulFunctionCall","src":"7495:34:103"},"nodeType":"YulExpressionStatement","src":"7495:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7549:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7560:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7545:3:103"},"nodeType":"YulFunctionCall","src":"7545:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7565:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7538:6:103"},"nodeType":"YulFunctionCall","src":"7538:34:103"},"nodeType":"YulExpressionStatement","src":"7538:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7603:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7588:3:103"},"nodeType":"YulFunctionCall","src":"7588:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7608:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7581:6:103"},"nodeType":"YulFunctionCall","src":"7581:31:103"},"nodeType":"YulExpressionStatement","src":"7581:31:103"},{"nodeType":"YulVariableDeclaration","src":"7621:76:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7661:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"7669:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7681:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7692:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7677:3:103"},"nodeType":"YulFunctionCall","src":"7677:19:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"7635:25:103"},"nodeType":"YulFunctionCall","src":"7635:62:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"7625:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7717:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7728:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7713:3:103"},"nodeType":"YulFunctionCall","src":"7713:19:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"7738:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7746:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7734:3:103"},"nodeType":"YulFunctionCall","src":"7734:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7706:6:103"},"nodeType":"YulFunctionCall","src":"7706:51:103"},"nodeType":"YulExpressionStatement","src":"7706:51:103"},{"nodeType":"YulAssignment","src":"7766:57:103","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"7800:6:103"},{"name":"value6","nodeType":"YulIdentifier","src":"7808:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"7816:6:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"7774:25:103"},"nodeType":"YulFunctionCall","src":"7774:49:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7766:4:103"}]}]},"name":"abi_encode_tuple_t_address_payable_t_uint256_t_uint256_t_bytes_calldata_ptr_t_bytes_calldata_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7346:9:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"7357:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"7365:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7373:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7381:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7389:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7397:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7405:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7416:4:103","type":""}],"src":"7148:681:103"},{"body":{"nodeType":"YulBlock","src":"7929:92:103","statements":[{"nodeType":"YulAssignment","src":"7939:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7951:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7962:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7947:3:103"},"nodeType":"YulFunctionCall","src":"7947:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7939:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7981:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8006:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7999:6:103"},"nodeType":"YulFunctionCall","src":"7999:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7992:6:103"},"nodeType":"YulFunctionCall","src":"7992:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7974:6:103"},"nodeType":"YulFunctionCall","src":"7974:41:103"},"nodeType":"YulExpressionStatement","src":"7974:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7898:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7909:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7920:4:103","type":""}],"src":"7834:187:103"},{"body":{"nodeType":"YulBlock","src":"8127:76:103","statements":[{"nodeType":"YulAssignment","src":"8137:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8149:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8160:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8145:3:103"},"nodeType":"YulFunctionCall","src":"8145:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8137:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8179:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8190:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8172:6:103"},"nodeType":"YulFunctionCall","src":"8172:25:103"},"nodeType":"YulExpressionStatement","src":"8172:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8096:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8107:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8118:4:103","type":""}],"src":"8026:177:103"},{"body":{"nodeType":"YulBlock","src":"8337:119:103","statements":[{"nodeType":"YulAssignment","src":"8347:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8359:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8370:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8355:3:103"},"nodeType":"YulFunctionCall","src":"8355:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8347:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8389:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8400:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8382:6:103"},"nodeType":"YulFunctionCall","src":"8382:25:103"},"nodeType":"YulExpressionStatement","src":"8382:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8427:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8438:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8423:3:103"},"nodeType":"YulFunctionCall","src":"8423:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8443:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8416:6:103"},"nodeType":"YulFunctionCall","src":"8416:34:103"},"nodeType":"YulExpressionStatement","src":"8416:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8298:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8309:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8317:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8328:4:103","type":""}],"src":"8208:248:103"},{"body":{"nodeType":"YulBlock","src":"8636:184:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8653:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8664:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8646:6:103"},"nodeType":"YulFunctionCall","src":"8646:25:103"},"nodeType":"YulExpressionStatement","src":"8646:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8691:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8702:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8687:3:103"},"nodeType":"YulFunctionCall","src":"8687:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8707:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8680:6:103"},"nodeType":"YulFunctionCall","src":"8680:34:103"},"nodeType":"YulExpressionStatement","src":"8680:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8734:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8745:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8730:3:103"},"nodeType":"YulFunctionCall","src":"8730:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8750:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8723:6:103"},"nodeType":"YulFunctionCall","src":"8723:30:103"},"nodeType":"YulExpressionStatement","src":"8723:30:103"},{"nodeType":"YulAssignment","src":"8762:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8787:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8810:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8795:3:103"},"nodeType":"YulFunctionCall","src":"8795:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8770:16:103"},"nodeType":"YulFunctionCall","src":"8770:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8762:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8589:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8600:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8608:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8616:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8627:4:103","type":""}],"src":"8461:359:103"},{"body":{"nodeType":"YulBlock","src":"8982:162:103","statements":[{"nodeType":"YulAssignment","src":"8992:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9004:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9015:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9000:3:103"},"nodeType":"YulFunctionCall","src":"9000:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8992:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9034:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9045:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9027:6:103"},"nodeType":"YulFunctionCall","src":"9027:25:103"},"nodeType":"YulExpressionStatement","src":"9027:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9072:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9083:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9068:3:103"},"nodeType":"YulFunctionCall","src":"9068:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"9088:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9061:6:103"},"nodeType":"YulFunctionCall","src":"9061:34:103"},"nodeType":"YulExpressionStatement","src":"9061:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9115:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9126:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9111:3:103"},"nodeType":"YulFunctionCall","src":"9111:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9131:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9104:6:103"},"nodeType":"YulFunctionCall","src":"9104:34:103"},"nodeType":"YulExpressionStatement","src":"9104:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8935:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8946:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8954:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8962:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8973:4:103","type":""}],"src":"8825:319:103"},{"body":{"nodeType":"YulBlock","src":"9352:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9369:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9380:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9362:6:103"},"nodeType":"YulFunctionCall","src":"9362:25:103"},"nodeType":"YulExpressionStatement","src":"9362:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9407:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9418:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9403:3:103"},"nodeType":"YulFunctionCall","src":"9403:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"9423:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9396:6:103"},"nodeType":"YulFunctionCall","src":"9396:34:103"},"nodeType":"YulExpressionStatement","src":"9396:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9450:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9461:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9446:3:103"},"nodeType":"YulFunctionCall","src":"9446:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9466:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9439:6:103"},"nodeType":"YulFunctionCall","src":"9439:34:103"},"nodeType":"YulExpressionStatement","src":"9439:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9493:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9504:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9489:3:103"},"nodeType":"YulFunctionCall","src":"9489:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9509:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9482:6:103"},"nodeType":"YulFunctionCall","src":"9482:31:103"},"nodeType":"YulExpressionStatement","src":"9482:31:103"},{"nodeType":"YulAssignment","src":"9522:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9547:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9559:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9570:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9555:3:103"},"nodeType":"YulFunctionCall","src":"9555:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"9530:16:103"},"nodeType":"YulFunctionCall","src":"9530:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9522:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9297:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9308:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9316:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9324:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9332:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9343:4:103","type":""}],"src":"9149:432:103"},{"body":{"nodeType":"YulBlock","src":"9705:102:103","statements":[{"nodeType":"YulAssignment","src":"9715:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9738:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9723:3:103"},"nodeType":"YulFunctionCall","src":"9723:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9715:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9757:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9772:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9788:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9793:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9784:3:103"},"nodeType":"YulFunctionCall","src":"9784:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9797:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9780:3:103"},"nodeType":"YulFunctionCall","src":"9780:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9768:3:103"},"nodeType":"YulFunctionCall","src":"9768:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9750:6:103"},"nodeType":"YulFunctionCall","src":"9750:51:103"},"nodeType":"YulExpressionStatement","src":"9750:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9674:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9685:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9696:4:103","type":""}],"src":"9586:221:103"},{"body":{"nodeType":"YulBlock","src":"9930:132:103","statements":[{"nodeType":"YulAssignment","src":"9940:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9952:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9963:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9948:3:103"},"nodeType":"YulFunctionCall","src":"9948:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9940:4:103"}]},{"body":{"nodeType":"YulBlock","src":"10000:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"10002:16:103"},"nodeType":"YulFunctionCall","src":"10002:18:103"},"nodeType":"YulExpressionStatement","src":"10002:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9988:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9996:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9985:2:103"},"nodeType":"YulFunctionCall","src":"9985:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9978:6:103"},"nodeType":"YulFunctionCall","src":"9978:21:103"},"nodeType":"YulIf","src":"9975:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10038:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10049:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10031:6:103"},"nodeType":"YulFunctionCall","src":"10031:25:103"},"nodeType":"YulExpressionStatement","src":"10031:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9899:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9910:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9921:4:103","type":""}],"src":"9812:250:103"},{"body":{"nodeType":"YulBlock","src":"10184:132:103","statements":[{"nodeType":"YulAssignment","src":"10194:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10206:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10217:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10202:3:103"},"nodeType":"YulFunctionCall","src":"10202:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10194:4:103"}]},{"body":{"nodeType":"YulBlock","src":"10254:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"10256:16:103"},"nodeType":"YulFunctionCall","src":"10256:18:103"},"nodeType":"YulExpressionStatement","src":"10256:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10242:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"10250:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10239:2:103"},"nodeType":"YulFunctionCall","src":"10239:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10232:6:103"},"nodeType":"YulFunctionCall","src":"10232:21:103"},"nodeType":"YulIf","src":"10229:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10292:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10303:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10285:6:103"},"nodeType":"YulFunctionCall","src":"10285:25:103"},"nodeType":"YulExpressionStatement","src":"10285:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10153:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10164:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10175:4:103","type":""}],"src":"10067:249:103"},{"body":{"nodeType":"YulBlock","src":"10428:87:103","statements":[{"nodeType":"YulAssignment","src":"10438:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10450:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10461:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10446:3:103"},"nodeType":"YulFunctionCall","src":"10446:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10438:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10480:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10495:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"10503:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10491:3:103"},"nodeType":"YulFunctionCall","src":"10491:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10473:6:103"},"nodeType":"YulFunctionCall","src":"10473:36:103"},"nodeType":"YulExpressionStatement","src":"10473:36:103"}]},"name":"abi_encode_tuple_t_rational_0_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10397:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10408:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10419:4:103","type":""}],"src":"10321:194:103"},{"body":{"nodeType":"YulBlock","src":"10641:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10658:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10669:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10651:6:103"},"nodeType":"YulFunctionCall","src":"10651:21:103"},"nodeType":"YulExpressionStatement","src":"10651:21:103"},{"nodeType":"YulAssignment","src":"10681:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10706:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10718:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10729:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10714:3:103"},"nodeType":"YulFunctionCall","src":"10714:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"10689:16:103"},"nodeType":"YulFunctionCall","src":"10689:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10681:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10610:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10621:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10632:4:103","type":""}],"src":"10520:219:103"},{"body":{"nodeType":"YulBlock","src":"10918:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10935:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10946:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10928:6:103"},"nodeType":"YulFunctionCall","src":"10928:21:103"},"nodeType":"YulExpressionStatement","src":"10928:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10980:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10965:3:103"},"nodeType":"YulFunctionCall","src":"10965:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10985:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10958:6:103"},"nodeType":"YulFunctionCall","src":"10958:30:103"},"nodeType":"YulExpressionStatement","src":"10958:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11008:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11019:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11004:3:103"},"nodeType":"YulFunctionCall","src":"11004:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11024:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10997:6:103"},"nodeType":"YulFunctionCall","src":"10997:62:103"},"nodeType":"YulExpressionStatement","src":"10997:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11079:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11090:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11075:3:103"},"nodeType":"YulFunctionCall","src":"11075:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11095:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11068:6:103"},"nodeType":"YulFunctionCall","src":"11068:36:103"},"nodeType":"YulExpressionStatement","src":"11068:36:103"},{"nodeType":"YulAssignment","src":"11113:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11125:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11136:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11121:3:103"},"nodeType":"YulFunctionCall","src":"11121:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11113:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10895:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10909:4:103","type":""}],"src":"10744:402:103"},{"body":{"nodeType":"YulBlock","src":"11325:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11353:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11335:6:103"},"nodeType":"YulFunctionCall","src":"11335:21:103"},"nodeType":"YulExpressionStatement","src":"11335:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11376:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11387:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11372:3:103"},"nodeType":"YulFunctionCall","src":"11372:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11392:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11365:6:103"},"nodeType":"YulFunctionCall","src":"11365:30:103"},"nodeType":"YulExpressionStatement","src":"11365:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11426:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11411:3:103"},"nodeType":"YulFunctionCall","src":"11411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11431:34:103","type":"","value":"ERROR:TCP-1:INVALID_POLICY_OR_HO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11404:6:103"},"nodeType":"YulFunctionCall","src":"11404:62:103"},"nodeType":"YulExpressionStatement","src":"11404:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11486:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11497:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11482:3:103"},"nodeType":"YulFunctionCall","src":"11482:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11502:6:103","type":"","value":"LDER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11475:6:103"},"nodeType":"YulFunctionCall","src":"11475:34:103"},"nodeType":"YulExpressionStatement","src":"11475:34:103"},{"nodeType":"YulAssignment","src":"11518:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11541:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11526:3:103"},"nodeType":"YulFunctionCall","src":"11526:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11518:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_45b7c023a985c9e867fb92bc16a50e3a4287536d298108f611ee335f5fdad6ba__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11302:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11316:4:103","type":""}],"src":"11151:400:103"},{"body":{"nodeType":"YulBlock","src":"11730:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11747:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11758:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11740:6:103"},"nodeType":"YulFunctionCall","src":"11740:21:103"},"nodeType":"YulExpressionStatement","src":"11740:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11792:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11777:3:103"},"nodeType":"YulFunctionCall","src":"11777:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11797:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11770:6:103"},"nodeType":"YulFunctionCall","src":"11770:30:103"},"nodeType":"YulExpressionStatement","src":"11770:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11831:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11816:3:103"},"nodeType":"YulFunctionCall","src":"11816:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11836:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11809:6:103"},"nodeType":"YulFunctionCall","src":"11809:62:103"},"nodeType":"YulExpressionStatement","src":"11809:62:103"},{"nodeType":"YulAssignment","src":"11880:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11903:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11888:3:103"},"nodeType":"YulFunctionCall","src":"11888:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11880:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11707:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11721:4:103","type":""}],"src":"11556:356:103"},{"body":{"nodeType":"YulBlock","src":"12018:76:103","statements":[{"nodeType":"YulAssignment","src":"12028:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12040:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12051:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12036:3:103"},"nodeType":"YulFunctionCall","src":"12036:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12028:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12070:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12081:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12063:6:103"},"nodeType":"YulFunctionCall","src":"12063:25:103"},"nodeType":"YulExpressionStatement","src":"12063:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11987:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11998:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12009:4:103","type":""}],"src":"11917:177:103"},{"body":{"nodeType":"YulBlock","src":"12144:230:103","statements":[{"nodeType":"YulAssignment","src":"12154:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12170:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12164:5:103"},"nodeType":"YulFunctionCall","src":"12164:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12154:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"12182:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12204:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"12220:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"12226:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12216:3:103"},"nodeType":"YulFunctionCall","src":"12216:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12235:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12231:3:103"},"nodeType":"YulFunctionCall","src":"12231:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12212:3:103"},"nodeType":"YulFunctionCall","src":"12212:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12200:3:103"},"nodeType":"YulFunctionCall","src":"12200:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"12186:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12315:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"12317:16:103"},"nodeType":"YulFunctionCall","src":"12317:18:103"},"nodeType":"YulExpressionStatement","src":"12317:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"12258:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"12270:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12255:2:103"},"nodeType":"YulFunctionCall","src":"12255:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"12294:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"12306:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12291:2:103"},"nodeType":"YulFunctionCall","src":"12291:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"12252:2:103"},"nodeType":"YulFunctionCall","src":"12252:62:103"},"nodeType":"YulIf","src":"12249:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12353:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"12357:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12346:6:103"},"nodeType":"YulFunctionCall","src":"12346:22:103"},"nodeType":"YulExpressionStatement","src":"12346:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"12124:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"12133:6:103","type":""}],"src":"12099:275:103"},{"body":{"nodeType":"YulBlock","src":"12427:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"12462:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"12483:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12492:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12497:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12488:3:103"},"nodeType":"YulFunctionCall","src":"12488:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12476:6:103"},"nodeType":"YulFunctionCall","src":"12476:33:103"},"nodeType":"YulExpressionStatement","src":"12476:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12529:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12532:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12522:6:103"},"nodeType":"YulFunctionCall","src":"12522:15:103"},"nodeType":"YulExpressionStatement","src":"12522:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"12557:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"12562:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12550:6:103"},"nodeType":"YulFunctionCall","src":"12550:17:103"},"nodeType":"YulExpressionStatement","src":"12550:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12443:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12450:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12446:3:103"},"nodeType":"YulFunctionCall","src":"12446:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12440:2:103"},"nodeType":"YulFunctionCall","src":"12440:13:103"},"nodeType":"YulIf","src":"12437:2:103"},{"nodeType":"YulAssignment","src":"12586:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12597:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"12600:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12593:3:103"},"nodeType":"YulFunctionCall","src":"12593:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"12586:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12410:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"12413:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12419:3:103","type":""}],"src":"12379:229:103"},{"body":{"nodeType":"YulBlock","src":"12666:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"12676:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12685:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"12680:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12745:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12770:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"12775:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12766:3:103"},"nodeType":"YulFunctionCall","src":"12766:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"12789:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"12794:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12785:3:103"},"nodeType":"YulFunctionCall","src":"12785:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12779:5:103"},"nodeType":"YulFunctionCall","src":"12779:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12759:6:103"},"nodeType":"YulFunctionCall","src":"12759:39:103"},"nodeType":"YulExpressionStatement","src":"12759:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12706:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"12709:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12703:2:103"},"nodeType":"YulFunctionCall","src":"12703:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12717:19:103","statements":[{"nodeType":"YulAssignment","src":"12719:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12728:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"12731:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12724:3:103"},"nodeType":"YulFunctionCall","src":"12724:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12719:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"12699:3:103","statements":[]},"src":"12695:113:103"},{"body":{"nodeType":"YulBlock","src":"12834:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12847:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12852:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12843:3:103"},"nodeType":"YulFunctionCall","src":"12843:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"12861:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12836:6:103"},"nodeType":"YulFunctionCall","src":"12836:27:103"},"nodeType":"YulExpressionStatement","src":"12836:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12823:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"12826:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12820:2:103"},"nodeType":"YulFunctionCall","src":"12820:13:103"},"nodeType":"YulIf","src":"12817:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"12644:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"12649:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"12654:6:103","type":""}],"src":"12613:258:103"},{"body":{"nodeType":"YulBlock","src":"12908:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12925:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12932:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12937:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12928:3:103"},"nodeType":"YulFunctionCall","src":"12928:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12918:6:103"},"nodeType":"YulFunctionCall","src":"12918:31:103"},"nodeType":"YulExpressionStatement","src":"12918:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12965:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12968:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12958:6:103"},"nodeType":"YulFunctionCall","src":"12958:15:103"},"nodeType":"YulExpressionStatement","src":"12958:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12989:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12992:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12982:6:103"},"nodeType":"YulFunctionCall","src":"12982:15:103"},"nodeType":"YulExpressionStatement","src":"12982:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"12876:127:103"},{"body":{"nodeType":"YulBlock","src":"13040:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13057:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13064:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13069:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13060:3:103"},"nodeType":"YulFunctionCall","src":"13060:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13050:6:103"},"nodeType":"YulFunctionCall","src":"13050:31:103"},"nodeType":"YulExpressionStatement","src":"13050:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13097:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13100:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13090:6:103"},"nodeType":"YulFunctionCall","src":"13090:15:103"},"nodeType":"YulExpressionStatement","src":"13090:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13121:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13124:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13114:6:103"},"nodeType":"YulFunctionCall","src":"13114:15:103"},"nodeType":"YulExpressionStatement","src":"13114:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"13008:127:103"},{"body":{"nodeType":"YulBlock","src":"13185:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"13249:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13258:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13261:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13251:6:103"},"nodeType":"YulFunctionCall","src":"13251:12:103"},"nodeType":"YulExpressionStatement","src":"13251:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13208:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13219:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13234:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13239:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13230:3:103"},"nodeType":"YulFunctionCall","src":"13230:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13243:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13226:3:103"},"nodeType":"YulFunctionCall","src":"13226:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13215:3:103"},"nodeType":"YulFunctionCall","src":"13215:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"13205:2:103"},"nodeType":"YulFunctionCall","src":"13205:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13198:6:103"},"nodeType":"YulFunctionCall","src":"13198:50:103"},"nodeType":"YulIf","src":"13195:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13174:5:103","type":""}],"src":"13140:131:103"}]},"contents":"{\n { }\n function abi_decode_bool_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_bool_fromMemory(headStart)\n }\n function abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value1, value1) }\n value0 := abi_decode_bool_fromMemory(headStart)\n value1 := mload(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_payable_t_uint256_t_uint256_t_bytes_calldata_ptr_t_bytes_calldata_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 160)\n let tail_1 := abi_encode_bytes_calldata(value3, value4, add(headStart, 160))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value5, value6, tail_1)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_0_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_45b7c023a985c9e867fb92bc16a50e3a4287536d298108f611ee335f5fdad6ba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:TCP-1:INVALID_POLICY_OR_HO\")\n mstore(add(headStart, 96), \"LDER\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106101ee5760003560e01c806370d2fe531161010d578063b9ea8d66116100a0578063d73cd9921161006f578063d73cd9921461027c578063e0815f0d1461042a578063e6f95edd1461043e578063f2fde38b14610451578063f4fdc1fa1461040c576101ee565b8063b9ea8d66146103ec578063bd1fe5d01461027c578063be169e7e1461027c578063d0e0ba951461040c576101ee565b806394f64ff4116100dc57806394f64ff4146102fe5780639a82f890146102be578063a18f5ae21461027c578063b3fca9bd1461027c576101ee565b806370d2fe5314610382578063715018a614610397578063893d20e8146103ac5780638da5cb5b146103ce576101ee565b806339cf5e16116101855780635ab1bd53116101545780635ab1bd531461033a5780635d1ca63114610358578063637d08f41461036d578063638ce0ba1461027c576101ee565b806339cf5e16146102fe5780633b5284b6146103255780633ec92bda146102fe57806359dacc6a1461027c576101ee565b80631b867c63116101c15780631b867c631461027c57806321df0da71461028c578063258d560c146102be5780632b677841146102de576101ee565b806309128d83146101f357806315dae03e1461022e57806317d7de7c1461024a5780631865c57d1461025f575b600080fd5b3480156101ff57600080fd5b5061021b70506f6c69637944656661756c74466c6f7760781b81565b6040519081526020015b60405180910390f35b34801561023a57600080fd5b5060016040516102259190611063565b34801561025657600080fd5b5060015461021b565b34801561026b57600080fd5b5060035b6040516102259190611049565b34801561028857600080fd5b505b005b34801561029857600080fd5b506002546001600160a01b03165b6040516001600160a01b039091168152602001610225565b3480156102ca57600080fd5b5060005b6040519015158152602001610225565b3480156102ea57600080fd5b5061028a6102f9366004610d54565b610473565b34801561030a57600080fd5b50604080516020810182526000815290516102259190611077565b34801561033157600080fd5b5061026f600381565b34801561034657600080fd5b506005546001600160a01b03166102a6565b34801561036457600080fd5b5060035461021b565b34801561037957600080fd5b506102a66107bd565b34801561038e57600080fd5b5060045461021b565b3480156103a357600080fd5b5061028a6107e1565b3480156103b857600080fd5b506102a6600080546001600160a01b03166107dc565b3480156103da57600080fd5b506000546001600160a01b03166102a6565b3480156103f857600080fd5b5061028a610407366004610d24565b6107f3565b34801561041857600080fd5b5061028a610427366004610d24565b50565b34801561043657600080fd5b5060016102ce565b61021b61044c366004610ecd565b610904565b34801561045d57600080fd5b5061028a61046c366004610c97565b610a22565b565b60085460405163296586d360e21b81526004810184905283916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104f89190810190610d75565b519050336001600160a01b038216146105645760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5443502d313a494e56414c49445f504f4c4943595f4f525f484f604482015263262222a960e11b60648201526084015b60405180910390fd5b6001600c600082825461057791906110bb565b9091555050600a546040805160006020808301829052835180840390910181528284019384905263fae43d1560e01b909352926001600160a01b03169163fae43d15916105cb918991899190604401610ff2565b602060405180830381600087803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061d9190610d3c565b600a54604051634e02c63f60e01b81526004810188905260248101839052604481018790529192506001600160a01b031690634e02c63f90606401600060405180830381600087803b15801561067257600080fd5b505af1158015610686573d6000803e3d6000fd5b5050600a5460408051600060208083018290528351808403909101815282840193849052633c0ebc2360e11b90935294506001600160a01b03909216925063781d7846916106dc918a9187918b9160440161101a565b602060405180830381600087803b1580156106f657600080fd5b505af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e9190610d3c565b600a5460405163fe64372b60e01b815260048101899052602481018390529192506001600160a01b03169063fe64372b906044016040805180830381600087803b15801561077b57600080fd5b505af115801561078f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b39190610eaa565b5050505050505050565b60006107dc70506f6c69637944656661756c74466c6f7760781b610a98565b905090565b6107e9610b1d565b6104716000610b77565b60085460405163a3f685f960e01b8152600481018390526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190610e25565b600a54602082015160405163e3ebdea560e01b81526004810186905260248101919091529192506001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fd9190610cf0565b5050505050565b60008033600a546040516349dc20a560e11b81529192506001600160a01b0316906393b8414a906109459084908c908c908c908c908c908c90600401610fa3565b602060405180830381600087803b15801561095f57600080fd5b505af1158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190610d3c565b600a54604051631b07b17f60e01b8152600481018390529193506001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190610cd6565b50509695505050505050565b610a2a610b1d565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055b565b61042781610b77565b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190610cba565b90505b919050565b6000546001600160a01b031633146104715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80518015158114610b1857600080fd5b60008083601f840112610be8578182fd5b50813567ffffffffffffffff811115610bff578182fd5b602083019150836020828501011115610c1757600080fd5b9250929050565b600082601f830112610c2e578081fd5b815167ffffffffffffffff811115610c4857610c48611125565b610c5b601f8201601f191660200161108a565b818152846020838601011115610c6f578283fd5b610c808260208301602087016110df565b949350505050565b805160038110610b1857600080fd5b600060208284031215610ca8578081fd5b8135610cb38161113b565b9392505050565b600060208284031215610ccb578081fd5b8151610cb38161113b565b600060208284031215610ce7578081fd5b610cb382610bc7565b600080600060608486031215610d04578182fd5b610d0d84610bc7565b925060208401519150604084015190509250925092565b600060208284031215610d35578081fd5b5035919050565b600060208284031215610d4d578081fd5b5051919050565b60008060408385031215610d66578182fd5b50508035926020909101359150565b600060208284031215610d86578081fd5b815167ffffffffffffffff80821115610d9d578283fd5b9083019060c08286031215610db0578283fd5b610dba60c061108a565b8251610dc58161113b565b815260208381015190820152610ddd60408401610c88565b6040820152606083015182811115610df3578485fd5b610dff87828601610c1e565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215610e38578182fd5b610e418161108a565b9050610e4c83610c88565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060408385031215610ebc578182fd5b505080516020909101519092909150565b60008060008060008060808789031215610ee5578384fd5b8635955060208701359450604087013567ffffffffffffffff80821115610f0a578586fd5b610f168a838b01610bd7565b90965094506060890135915080821115610f2e578384fd5b50610f3b89828a01610bd7565b979a9699509497509295939492505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452610f8f8160208601602086016110df565b601f01601f19169290920160200192915050565b600060018060a01b038916825287602083015286604083015260a06060830152610fd160a083018688610f4d565b8281036080840152610fe4818587610f4d565b9a9950505050505050505050565b6000848252836020830152606060408301526110116060830184610f77565b95945050505050565b60008582528460208301528360408301526080606083015261103f6080830184610f77565b9695505050505050565b602081016007831061105d5761105d61110f565b91905290565b602081016003831061105d5761105d61110f565b600060208252610cb36020830184610f77565b604051601f8201601f1916810167ffffffffffffffff811182821017156110b3576110b3611125565b604052919050565b600082198211156110da57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156110fa5781810151838201526020016110e2565b83811115611109576000848401525b50505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461042757600080fdfea2646970667358221220d035e3de5b3a00e05b9cb799c298a86d18cc827ca95856c5337177a97dceacf664736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1EE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70D2FE53 GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xD73CD992 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x42A JUMPI DUP1 PUSH4 0xE6F95EDD EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x40C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x3EC JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x40C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x94F64FF4 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x382 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3CE JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x39CF5E16 GT PUSH2 0x185 JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x154 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x3B5284B6 EQ PUSH2 0x325 JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x1B867C63 GT PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0x2B677841 EQ PUSH2 0x2DE JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x9128D83 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x22E JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x25F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21B PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1063 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1049 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x2F9 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x473 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1077 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH1 0x3 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x379 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH2 0x7BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x7E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7DC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x407 CALLDATASIZE PUSH1 0x4 PUSH2 0xD24 JUMP JUMPDEST PUSH2 0x7F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0xD24 JUMP JUMPDEST POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH2 0x2CE JUMP JUMPDEST PUSH2 0x21B PUSH2 0x44C CALLDATASIZE PUSH1 0x4 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x904 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x46C CALLDATASIZE PUSH1 0x4 PUSH2 0xC97 JUMP JUMPDEST PUSH2 0xA22 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE DUP4 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x4F8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xD75 JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x564 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5443502D313A494E56414C49445F504F4C4943595F4F525F484F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x262222A9 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xC PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x577 SWAP2 SWAP1 PUSH2 0x10BB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE DUP3 DUP5 ADD SWAP4 DUP5 SWAP1 MSTORE PUSH4 0xFAE43D15 PUSH1 0xE0 SHL SWAP1 SWAP4 MSTORE SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xFAE43D15 SWAP2 PUSH2 0x5CB SWAP2 DUP10 SWAP2 DUP10 SWAP2 SWAP1 PUSH1 0x44 ADD PUSH2 0xFF2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x61D SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x686 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE DUP3 DUP5 ADD SWAP4 DUP5 SWAP1 MSTORE PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL SWAP1 SWAP4 MSTORE SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 POP PUSH4 0x781D7846 SWAP2 PUSH2 0x6DC SWAP2 DUP11 SWAP2 DUP8 SWAP2 DUP12 SWAP2 PUSH1 0x44 ADD PUSH2 0x101A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x70A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x72E SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x78F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0xEAA JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DC PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL PUSH2 0xA98 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7E9 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x471 PUSH1 0x0 PUSH2 0xB77 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x84D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x871 SWAP2 SWAP1 PUSH2 0xE25 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8FD SWAP2 SWAP1 PUSH2 0xCF0 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x945 SWAP1 DUP5 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0xFA3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x95F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x973 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x997 SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA16 SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA2A PUSH2 0xB1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x55B JUMP JUMPDEST PUSH2 0x427 DUP2 PUSH2 0xB77 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB15 SWAP2 SWAP1 PUSH2 0xCBA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x55B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xB18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xBE8 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBFF JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC2E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC48 JUMPI PUSH2 0xC48 PUSH2 0x1125 JUMP JUMPDEST PUSH2 0xC5B PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x108A JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xC6F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xC80 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x10DF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xB18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCA8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCB3 DUP2 PUSH2 0x113B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCCB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCB3 DUP2 PUSH2 0x113B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE7 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCB3 DUP3 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD04 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xD0D DUP5 PUSH2 0xBC7 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD35 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4D JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD66 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD86 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD9D JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0xDB0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xDBA PUSH1 0xC0 PUSH2 0x108A JUMP JUMPDEST DUP3 MLOAD PUSH2 0xDC5 DUP2 PUSH2 0x113B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0xDDD PUSH1 0x40 DUP5 ADD PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0xDF3 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0xDFF DUP8 DUP3 DUP7 ADD PUSH2 0xC1E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE38 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xE41 DUP2 PUSH2 0x108A JUMP JUMPDEST SWAP1 POP PUSH2 0xE4C DUP4 PUSH2 0xC88 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEBC JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xEE5 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xF0A JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0xF16 DUP11 DUP4 DUP12 ADD PUSH2 0xBD7 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xF2E JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0xF3B DUP10 DUP3 DUP11 ADD PUSH2 0xBD7 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xF8F DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x10DF JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP10 AND DUP3 MSTORE DUP8 PUSH1 0x20 DUP4 ADD MSTORE DUP7 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xFD1 PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0xF4D JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0xFE4 DUP2 DUP6 DUP8 PUSH2 0xF4D JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1011 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x103F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x105D JUMPI PUSH2 0x105D PUSH2 0x110F JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x105D JUMPI PUSH2 0x105D PUSH2 0x110F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xCB3 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10B3 JUMPI PUSH2 0x10B3 PUSH2 0x1125 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x10DA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10FA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E2 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1109 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x427 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD0 CALLDATALOAD 0xE3 0xDE JUMPDEST GASPRICE STOP 0xE0 JUMPDEST SWAP13 0xB7 SWAP10 0xC2 SWAP9 0xA8 PUSH14 0x18CC827CA95856C5337177A97DCE 0xAC 0xF6 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1116:6274:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1289:57;;;;;;;;;;;;-1:-1:-1;;;1289:57:94;;;;;8172:25:103;;;8160:2;8145:18;1289:57:94;;;;;;;;5506:109;;;;;;;;;;-1:-1:-1;5580:32:94;5506:109;;;;;;:::i;5328:85::-;;;;;;;;;;-1:-1:-1;5396:14:94;;5328:85;;5621:111;;;;;;;;;;-1:-1:-1;5697:32:94;5621:111;;;;;;;:::i;6209:48::-;;;;;;;;;;;;;4408:91;;;;;;;;;;-1:-1:-1;4483:13:94;;-1:-1:-1;;;;;4483:13:94;4408:91;;;-1:-1:-1;;;;;7104:32:103;;;7086:51;;7074:2;7059:18;4408:91:94;7041:102:103;6073:74:94;;;;;;;;;;-1:-1:-1;6124:4:94;6073:74;;;7999:14:103;;7992:22;7974:41;;7962:2;7947:18;6073:74:94;7929:92:103;3640:596:94;;;;;;;;;;-1:-1:-1;3640:596:94;;;;;:::i;:::-;;:::i;4970:108::-;;;;;;;;;;-1:-1:-1;5066:9:94;;;;;;;;-1:-1:-1;5066:9:94;;4970:108;;;;5066:9;4970:108;:::i;1189:87::-;;;;;;;;;;;;1244:32;1189:87;;5823:86;;;;;;;;;;-1:-1:-1;5897:9:94;;-1:-1:-1;;;;;5897:9:94;5823:86;;5419:81;;;;;;;;;;-1:-1:-1;5485:12:94;;5419:81;;4505:120;;;;;;;;;;;;;:::i;4631:99::-;;;;;;;;;;-1:-1:-1;4716:11:94;;4631:99;;1831:101:41;;;;;;;;;;;;;:::i;5738:79:94:-;;;;;;;;;;;;5789:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;5807:7:94;1201:85:41;;;;;;;;;;;-1:-1:-1;1247:7:41;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;3398:234:94;;;;;;;;;;-1:-1:-1;3398:234:94;;;;;:::i;:::-;;:::i;5247:47::-;;;;;;;;;;-1:-1:-1;5247:47:94;;;;;:::i;:::-;;;5917:72;;;;;;;;;;-1:-1:-1;5580:32:94;5917:72;5506:109;2789:601;;;;;;:::i;:::-;;:::i;2081:198:41:-;;;;;;;;;;-1:-1:-1;2081:198:41;;;;;:::i;:::-;;:::i;6209:48:94:-;:::o;3640:596::-;1899:16;;:38;;-1:-1:-1;;;1899:38:94;;;;;8172:25:103;;;3745:8:94;;1876:20;;-1:-1:-1;;;;;1899:16:94;;;;:28;;8145:18:103;;1899:38:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1899:38:94;;;;;;;;;;;;:::i;:::-;:44;;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1976:28:94;;;1954:115;;;;-1:-1:-1;;;1954:115:94;;11353:2:103;1954:115:94;;;11335:21:103;11392:2;11372:18;;;11365:30;11431:34;11411:18;;;11404:62;-1:-1:-1;;;11482:18:103;;;11475:34;11526:19;;1954:115:94;;;;;;;;;3818:1:::1;3807:7;;:12;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;3898:15:94::1;::::0;3946:13:::1;::::0;;3880:15:::1;3946:13;::::0;;::::1;10473:36:103::0;;;3946:13:94;;;;;;;;;;10446:18:103;;;3946:13:94;;;;-1:-1:-1;;;3898:62:94;;;3880:15;-1:-1:-1;;;;;3898:15:94::1;::::0;:24:::1;::::0;:62:::1;::::0;3923:8;;3933:11;;3946:13;3898:62;;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3971:15;::::0;:60:::1;::::0;-1:-1:-1;;;3971:60:94;;::::1;::::0;::::1;9027:25:103::0;;;9068:18;;;9061:34;;;9111:18;;;9104:34;;;3880:80:94;;-1:-1:-1;;;;;;3971:15:94::1;::::0;:28:::1;::::0;9000:18:103;;3971:60:94::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4096:15:94::1;::::0;4154:13:::1;::::0;;4077:16:::1;4154:13;::::0;;::::1;10473:36:103::0;;;4154:13:94;;;;;;;;;;10446:18:103;;;4154:13:94;;;;-1:-1:-1;;;4096:72:94;;;4077:16;-1:-1:-1;;;;;;4096:15:94;;::::1;::::0;-1:-1:-1;4096:25:94::1;::::0;:72:::1;::::0;4122:8;;4132:7;;4141:11;;4096:72;;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4179:15;::::0;:49:::1;::::0;-1:-1:-1;;;4179:49:94;;::::1;::::0;::::1;8382:25:103::0;;;8423:18;;;8416:34;;;4077:91:94;;-1:-1:-1;;;;;;4179:15:94::1;::::0;:29:::1;::::0;8355:18:103;;4179:49:94::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2080:1;;3640:596:::0;;;;:::o;4505:120::-;4561:18;4590:32;-1:-1:-1;;;4590:19:94;:32::i;:::-;4583:39;;4505:120;:::o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;3398:234:94:-:0;3507:16;;:36;;-1:-1:-1;;;3507:36:94;;;;;8172:25:103;;;3476:28:94;;-1:-1:-1;;;;;3507:16:94;;:26;;8145:18:103;;3507:36:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3554:15;;3595:28;;;;3554:70;;-1:-1:-1;;;3554:70:94;;;;;8382:25:103;;;8423:18;;;8416:34;;;;3595:28:94;;-1:-1:-1;;;;;;3554:15:94;;:30;;8355:18:103;;3554:70:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3398:234;;:::o;2789:601::-;3007:17;;719:10:59;3170:15:94;;:162;;-1:-1:-1;;;3170:162:94;;3043:52;;-1:-1:-1;;;;;;3170:15:94;;:30;;:162;;3043:52;;3243:7;;3266:10;;3292:8;;;;3316:15;;;;3170:162;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3345:15;;:37;;-1:-1:-1;;;3345:37:94;;;;;8172:25:103;;;3158:174:94;;-1:-1:-1;;;;;;3345:15:94;;:26;;8145:18:103;;3345:37:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2789:601;;;;;;;;;:::o;2081:198:41:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;10946:2:103;2161:73:41::1;::::0;::::1;10928:21:103::0;10985:2;10965:18;;;10958:30;11024:34;11004:18;;;10997:62;-1:-1:-1;;;11075:18:103;;;11068:36;11121:19;;2161:73:41::1;10918:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;7241:144:94:-:0;7342:9;;:35;;-1:-1:-1;;;7342:35:94;;;;;8172:25:103;;;7314:7:94;;-1:-1:-1;;;;;7342:9:94;;:21;;8145:18:103;;7342:35:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7335:42;;7241:144;;;;:::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;11758:2:103;1414:68:41;;;11740:21:103;;;11777:18;;;11770:30;11836:34;11816:18;;;11809:62;11888:18;;1414:68:41;11730:182:103;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;14:164:103:-;90:13;;139;;132:21;122:32;;112:2;;168:1;165;158:12;183:375;;;298:3;291:4;283:6;279:17;275:27;265:2;;323:8;313;306:26;265:2;-1:-1:-1;353:20:103;;396:18;385:30;;382:2;;;435:8;425;418:26;382:2;479:4;471:6;467:17;455:29;;531:3;524:4;515:6;507;503:19;499:30;496:39;493:2;;;548:1;545;538:12;493:2;255:303;;;;;:::o;563:512::-;;669:3;662:4;654:6;650:17;646:27;636:2;;691:5;684;677:20;636:2;724:6;718:13;750:18;746:2;743:26;740:2;;;772:18;;:::i;:::-;816:55;859:2;840:13;;-1:-1:-1;;836:27:103;865:4;832:38;816:55;:::i;:::-;896:2;887:7;880:19;942:3;935:4;930:2;922:6;918:15;914:26;911:35;908:2;;;963:5;956;949:20;908:2;980:64;1041:2;1034:4;1025:7;1021:18;1014:4;1006:6;1002:17;980:64;:::i;:::-;1062:7;626:449;-1:-1:-1;;;;626:449:103:o;1080:160::-;1172:13;;1214:1;1204:12;;1194:2;;1230:1;1227;1220:12;1245:257;;1357:2;1345:9;1336:7;1332:23;1328:32;1325:2;;;1378:6;1370;1363:22;1325:2;1422:9;1409:23;1441:31;1466:5;1441:31;:::i;:::-;1491:5;1315:187;-1:-1:-1;;;1315:187:103:o;1507:261::-;;1630:2;1618:9;1609:7;1605:23;1601:32;1598:2;;;1651:6;1643;1636:22;1598:2;1688:9;1682:16;1707:31;1732:5;1707:31;:::i;1773:212::-;;1893:2;1881:9;1872:7;1868:23;1864:32;1861:2;;;1914:6;1906;1899:22;1861:2;1942:37;1969:9;1942:37;:::i;1990:334::-;;;;2144:2;2132:9;2123:7;2119:23;2115:32;2112:2;;;2165:6;2157;2150:22;2112:2;2193:37;2220:9;2193:37;:::i;:::-;2183:47;;2270:2;2259:9;2255:18;2249:25;2239:35;;2314:2;2303:9;2299:18;2293:25;2283:35;;2102:222;;;;;:::o;2329:190::-;;2441:2;2429:9;2420:7;2416:23;2412:32;2409:2;;;2462:6;2454;2447:22;2409:2;-1:-1:-1;2490:23:103;;2399:120;-1:-1:-1;2399:120:103:o;2524:194::-;;2647:2;2635:9;2626:7;2622:23;2618:32;2615:2;;;2668:6;2660;2653:22;2615:2;-1:-1:-1;2696:16:103;;2605:113;-1:-1:-1;2605:113:103:o;2723:258::-;;;2852:2;2840:9;2831:7;2827:23;2823:32;2820:2;;;2873:6;2865;2858:22;2820:2;-1:-1:-1;;2901:23:103;;;2971:2;2956:18;;;2943:32;;-1:-1:-1;2810:171:103:o;2986:1025::-;;3135:2;3123:9;3114:7;3110:23;3106:32;3103:2;;;3156:6;3148;3141:22;3103:2;3194:9;3188:16;3223:18;3264:2;3256:6;3253:14;3250:2;;;3285:6;3277;3270:22;3250:2;3313:22;;;;3369:4;3351:16;;;3347:27;3344:2;;;3392:6;3384;3377:22;3344:2;3423:21;3439:4;3423:21;:::i;:::-;3474:2;3468:9;3486:33;3511:7;3486:33;:::i;:::-;3528:22;;3596:2;3588:11;;;3582:18;3566:14;;;3559:42;3633:55;3684:2;3676:11;;3633:55;:::i;:::-;3628:2;3621:5;3617:14;3610:79;3728:2;3724;3720:11;3714:18;3757:2;3747:8;3744:16;3741:2;;;3778:6;3770;3763:22;3741:2;3819:55;3866:7;3855:8;3851:2;3847:17;3819:55;:::i;:::-;3814:2;3807:5;3803:14;3796:79;;3922:3;3918:2;3914:12;3908:19;3902:3;3895:5;3891:15;3884:44;3975:3;3971:2;3967:12;3961:19;3955:3;3948:5;3944:15;3937:44;4000:5;3990:15;;;;;3093:918;;;;:::o;4016:841::-;;4141:3;4185:2;4173:9;4164:7;4160:23;4156:32;4153:2;;;4206:6;4198;4191:22;4153:2;4237:19;4253:2;4237:19;:::i;:::-;4224:32;;4279:53;4322:9;4279:53;:::i;:::-;4272:5;4265:68;4386:2;4375:9;4371:18;4365:25;4360:2;4353:5;4349:14;4342:49;4444:2;4433:9;4429:18;4423:25;4418:2;4411:5;4407:14;4400:49;4502:2;4491:9;4487:18;4481:25;4476:2;4469:5;4465:14;4458:49;4561:3;4550:9;4546:19;4540:26;4534:3;4527:5;4523:15;4516:51;4621:3;4610:9;4606:19;4600:26;4594:3;4587:5;4583:15;4576:51;4681:3;4670:9;4666:19;4660:26;4654:3;4647:5;4643:15;4636:51;4741:3;4730:9;4726:19;4720:26;4714:3;4707:5;4703:15;4696:51;4766:3;4822:2;4811:9;4807:18;4801:25;4796:2;4789:5;4785:14;4778:49;;4846:5;4836:15;;;4121:736;;;;:::o;5256:255::-;;;5396:2;5384:9;5375:7;5371:23;5367:32;5364:2;;;5417:6;5409;5402:22;5364:2;-1:-1:-1;;5445:16:103;;5501:2;5486:18;;;5480:25;5445:16;;5480:25;;-1:-1:-1;5354:157:103:o;5516:884::-;;;;;;;5717:3;5705:9;5696:7;5692:23;5688:33;5685:2;;;5739:6;5731;5724:22;5685:2;5780:9;5767:23;5757:33;;5837:2;5826:9;5822:18;5809:32;5799:42;;5892:2;5881:9;5877:18;5864:32;5915:18;5956:2;5948:6;5945:14;5942:2;;;5977:6;5969;5962:22;5942:2;6021:58;6071:7;6062:6;6051:9;6047:22;6021:58;:::i;:::-;6098:8;;-1:-1:-1;5995:84:103;-1:-1:-1;6186:2:103;6171:18;;6158:32;;-1:-1:-1;6202:16:103;;;6199:2;;;6236:6;6228;6221:22;6199:2;;6280:60;6332:7;6321:8;6310:9;6306:24;6280:60;:::i;:::-;5675:725;;;;-1:-1:-1;5675:725:103;;-1:-1:-1;5675:725:103;;6359:8;;5675:725;-1:-1:-1;;;5675:725:103:o;6405:268::-;;6493:6;6488:3;6481:19;6545:6;6538:5;6531:4;6526:3;6522:14;6509:43;6597:3;6590:4;6581:6;6576:3;6572:16;6568:27;6561:40;6662:4;6655:2;6651:7;6646:2;6638:6;6634:15;6630:29;6625:3;6621:39;6617:50;6610:57;;6471:202;;;;;:::o;6678:257::-;;6757:5;6751:12;6784:6;6779:3;6772:19;6800:63;6856:6;6849:4;6844:3;6840:14;6833:4;6826:5;6822:16;6800:63;:::i;:::-;6917:2;6896:15;-1:-1:-1;;6892:29:103;6883:39;;;;6924:4;6879:50;;6727:208;-1:-1:-1;;6727:208:103:o;7148:681::-;;7482:1;7478;7473:3;7469:11;7465:19;7457:6;7453:32;7442:9;7435:51;7522:6;7517:2;7506:9;7502:18;7495:34;7565:6;7560:2;7549:9;7545:18;7538:34;7608:3;7603:2;7592:9;7588:18;7581:31;7635:62;7692:3;7681:9;7677:19;7669:6;7661;7635:62;:::i;:::-;7746:9;7738:6;7734:22;7728:3;7717:9;7713:19;7706:51;7774:49;7816:6;7808;7800;7774:49;:::i;:::-;7766:57;7425:404;-1:-1:-1;;;;;;;;;;7425:404:103:o;8461:359::-;;8664:6;8653:9;8646:25;8707:6;8702:2;8691:9;8687:18;8680:34;8750:2;8745;8734:9;8730:18;8723:30;8770:44;8810:2;8799:9;8795:18;8787:6;8770:44;:::i;:::-;8762:52;8636:184;-1:-1:-1;;;;;8636:184:103:o;9149:432::-;;9380:6;9369:9;9362:25;9423:6;9418:2;9407:9;9403:18;9396:34;9466:6;9461:2;9450:9;9446:18;9439:34;9509:3;9504:2;9493:9;9489:18;9482:31;9530:45;9570:3;9559:9;9555:19;9547:6;9530:45;:::i;:::-;9522:53;9352:229;-1:-1:-1;;;;;;9352:229:103:o;9812:250::-;9963:2;9948:18;;9996:1;9985:13;;9975:2;;10002:18;;:::i;:::-;10031:25;;;9930:132;:::o;10067:249::-;10217:2;10202:18;;10250:1;10239:13;;10229:2;;10256:18;;:::i;10520:219::-;;10669:2;10658:9;10651:21;10689:44;10729:2;10718:9;10714:18;10706:6;10689:44;:::i;12099:275::-;12170:2;12164:9;12235:2;12216:13;;-1:-1:-1;;12212:27:103;12200:40;;12270:18;12255:34;;12291:22;;;12252:62;12249:2;;;12317:18;;:::i;:::-;12353:2;12346:22;12144:230;;-1:-1:-1;12144:230:103:o;12379:229::-;;12450:1;12446:6;12443:1;12440:13;12437:2;;;-1:-1:-1;;;12476:33:103;;12532:4;12529:1;12522:15;12562:4;12483:3;12550:17;12437:2;-1:-1:-1;12593:9:103;;12427:181::o;12613:258::-;12685:1;12695:113;12709:6;12706:1;12703:13;12695:113;;;12785:11;;;12779:18;12766:11;;;12759:39;12731:2;12724:10;12695:113;;;12826:6;12823:1;12820:13;12817:2;;;12861:1;12852:6;12847:3;12843:16;12836:27;12817:2;;12666:205;;;:::o;12876:127::-;12937:10;12932:3;12928:20;12925:1;12918:31;12968:4;12965:1;12958:15;12992:4;12989:1;12982:15;13008:127;13069:10;13064:3;13060:20;13057:1;13050:31;13100:4;13097:1;13090:15;13124:4;13121:1;13114:15;13140:131;-1:-1:-1;;;;;13215:31:103;;13205:42;;13195:2;;13261:1;13258;13251:12"},"methodIdentifiers":{"FAKE_STATE()":"3b5284b6","POLICY_FLOW()":"09128d83","applyForPolicy(uint256,uint256,bytes,bytes)":"e6f95edd","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","collectPremium(bytes32)":"b9ea8d66","declineCallback()":"bd1fe5d0","getApplicationDataStructure()":"94f64ff4","getClaimDataStructure()":"3ec92bda","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getPayoutDataStructure()":"39cf5e16","getPolicyFlow()":"637d08f4","getRegistry()":"5ab1bd53","getRiskpoolId()":"70d2fe53","getState()":"1865c57d","getToken()":"21df0da7","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","owner()":"8da5cb5b","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","riskPoolCapacityCallback(uint256)":"f4fdc1fa","setId(uint256)":"d0e0ba95","submitClaim(bytes32,uint256)":"2b677841","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"fakeProductName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fakeComponentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fakeRiskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"LogProductCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FAKE_STATE\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POLICY_FLOW\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"applyForPolicy\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"collectPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApplicationDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayoutDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"policyFlow\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"riskPoolCapacityCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"submitClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestCompromisedProduct.sol\":\"TestCompromisedProduct\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/test/TestCompromisedProduct.sol\":{\"keccak256\":\"0x7438a6b38aef27de18bd4618a7546aad8de0ca5b62ad7b0d24b20c84cf3aaf03\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://974040b6737de6e01116a24809110c2a432b921737f7151ab17f13326bec75af\",\"dweb:/ipfs/QmbWYQufuTEdxTcrSK9KNTGc1qtscK56jFDh8HWH3yBY2w\"]}},\"version\":1}"}},"contracts/test/TestOracle.sol":{"TestOracle":{"abi":[{"inputs":[{"internalType":"bytes32","name":"oracleName","type":"bytes32"},{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oracleAddress","type":"address"}],"name":"LogOracleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes","name":"input","type":"bytes"}],"name":"request","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bool","name":"isLossEvent","type":"bool"}],"name":"respond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2115:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"517:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"563:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"572:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"580:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"565:6:103"},"nodeType":"YulFunctionCall","src":"565:22:103"},"nodeType":"YulExpressionStatement","src":"565:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"538:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"547:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"534:3:103"},"nodeType":"YulFunctionCall","src":"534:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"559:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"530:3:103"},"nodeType":"YulFunctionCall","src":"530:32:103"},"nodeType":"YulIf","src":"527:2:103"},{"nodeType":"YulAssignment","src":"598:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"614:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"608:5:103"},"nodeType":"YulFunctionCall","src":"608:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"598:6:103"}]},{"nodeType":"YulAssignment","src":"633:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"688:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"673:3:103"},"nodeType":"YulFunctionCall","src":"673:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"643:29:103"},"nodeType":"YulFunctionCall","src":"643:49:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"633:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"475:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"486:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"498:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"506:6:103","type":""}],"src":"419:279:103"},{"body":{"nodeType":"YulBlock","src":"804:102:103","statements":[{"nodeType":"YulAssignment","src":"814:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"826:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"837:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"822:3:103"},"nodeType":"YulFunctionCall","src":"822:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"814:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"856:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"871:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"887:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"892:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"883:3:103"},"nodeType":"YulFunctionCall","src":"883:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"896:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"879:3:103"},"nodeType":"YulFunctionCall","src":"879:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"867:3:103"},"nodeType":"YulFunctionCall","src":"867:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"849:6:103"},"nodeType":"YulFunctionCall","src":"849:51:103"},"nodeType":"YulExpressionStatement","src":"849:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"773:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"784:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"795:4:103","type":""}],"src":"703:203:103"},{"body":{"nodeType":"YulBlock","src":"1012:76:103","statements":[{"nodeType":"YulAssignment","src":"1022:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1034:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1045:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1030:3:103"},"nodeType":"YulFunctionCall","src":"1030:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1022:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1064:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1075:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1057:6:103"},"nodeType":"YulFunctionCall","src":"1057:25:103"},"nodeType":"YulExpressionStatement","src":"1057:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"981:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"992:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1003:4:103","type":""}],"src":"911:177:103"},{"body":{"nodeType":"YulBlock","src":"1294:415:103","statements":[{"nodeType":"YulAssignment","src":"1304:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1316:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1327:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1312:3:103"},"nodeType":"YulFunctionCall","src":"1312:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1304:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1347:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1358:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1340:6:103"},"nodeType":"YulFunctionCall","src":"1340:25:103"},"nodeType":"YulExpressionStatement","src":"1340:25:103"},{"body":{"nodeType":"YulBlock","src":"1407:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1428:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1435:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1440:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1431:3:103"},"nodeType":"YulFunctionCall","src":"1431:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1421:6:103"},"nodeType":"YulFunctionCall","src":"1421:31:103"},"nodeType":"YulExpressionStatement","src":"1421:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1472:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1475:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1465:6:103"},"nodeType":"YulFunctionCall","src":"1465:15:103"},"nodeType":"YulExpressionStatement","src":"1465:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1500:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1503:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1493:6:103"},"nodeType":"YulFunctionCall","src":"1493:15:103"},"nodeType":"YulExpressionStatement","src":"1493:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1387:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1395:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1384:2:103"},"nodeType":"YulFunctionCall","src":"1384:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1377:6:103"},"nodeType":"YulFunctionCall","src":"1377:21:103"},"nodeType":"YulIf","src":"1374:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1538:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1549:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1534:3:103"},"nodeType":"YulFunctionCall","src":"1534:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1554:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1527:6:103"},"nodeType":"YulFunctionCall","src":"1527:34:103"},"nodeType":"YulExpressionStatement","src":"1527:34:103"},{"nodeType":"YulVariableDeclaration","src":"1570:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1588:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1593:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1584:3:103"},"nodeType":"YulFunctionCall","src":"1584:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1597:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1580:3:103"},"nodeType":"YulFunctionCall","src":"1580:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1574:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1619:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1630:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1615:3:103"},"nodeType":"YulFunctionCall","src":"1615:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1639:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1647:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1635:3:103"},"nodeType":"YulFunctionCall","src":"1635:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1608:6:103"},"nodeType":"YulFunctionCall","src":"1608:43:103"},"nodeType":"YulExpressionStatement","src":"1608:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1682:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1667:3:103"},"nodeType":"YulFunctionCall","src":"1667:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1691:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1699:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1687:3:103"},"nodeType":"YulFunctionCall","src":"1687:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1660:6:103"},"nodeType":"YulFunctionCall","src":"1660:43:103"},"nodeType":"YulExpressionStatement","src":"1660:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1239:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1250:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1258:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1266:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1274:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1285:4:103","type":""}],"src":"1093:616:103"},{"body":{"nodeType":"YulBlock","src":"1888:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1905:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1916:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1898:6:103"},"nodeType":"YulFunctionCall","src":"1898:21:103"},"nodeType":"YulExpressionStatement","src":"1898:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1939:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1950:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1935:3:103"},"nodeType":"YulFunctionCall","src":"1935:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1955:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1928:6:103"},"nodeType":"YulFunctionCall","src":"1928:30:103"},"nodeType":"YulExpressionStatement","src":"1928:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1989:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1974:3:103"},"nodeType":"YulFunctionCall","src":"1974:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1994:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1967:6:103"},"nodeType":"YulFunctionCall","src":"1967:62:103"},"nodeType":"YulExpressionStatement","src":"1967:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2049:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2060:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2045:3:103"},"nodeType":"YulFunctionCall","src":"2045:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2065:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2038:6:103"},"nodeType":"YulFunctionCall","src":"2038:33:103"},"nodeType":"YulExpressionStatement","src":"2038:33:103"},{"nodeType":"YulAssignment","src":"2080:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2092:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2103:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2088:3:103"},"nodeType":"YulFunctionCall","src":"2088:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2080:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1865:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1879:4:103","type":""}],"src":"1714:399:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := mload(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000f6138038062000f618339810160408190526200003491620003d6565b81818160008262000045336200025a565b6001600160a01b038116620000ac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b606482015260840160405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000d6620002aa565b600480546001600160a01b0319166001600160a01b039290921691909117905562000100620002c5565b600580546001600160a01b0319166001600160a01b03929092169190911790556200012a620002f2565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200017d57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001d192909160ff82169130916101009091046001600160a01b03169062000404565b60405180910390a1505050620001fd6c4f7261636c655365727669636560981b6200030c60201b60201c565b600780546001600160a01b0319166001600160a01b03929092169190911790556040513081527f77dee27cd265ac28cb5ba0d4f1a792ad0425ca4ae8bd0c6253b99ec26ac454109060200160405180910390a1505050506200044f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620002c06541636365737360d01b6200030c565b905090565b6000620002c07f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200030c565b6000620002c06e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200035757600080fd5b505afa1580156200036c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003929190620003b2565b90505b919050565b80516001600160a01b03811681146200039557600080fd5b600060208284031215620003c4578081fd5b620003cf826200039a565b9392505050565b60008060408385031215620003e9578081fd5b82519150620003fb602084016200039a565b90509250929050565b84815260808101600385106200042a57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b610b02806200045f6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063be169e7e1161007c578063be169e7e146101d5578063d0e0ba951461026d578063d73cd992146101d5578063e0815f0d14610280578063f2fde38b14610288578063ffc790651461029b57610158565b80638da5cb5b146102395780639a82f8901461024a578063a18f5ae2146101d5578063a9c577c514610252578063b3fca9bd146101d5578063bd1fe5d01461026557610158565b806359dacc6a1161011557806359dacc6a146101d55780635ab1bd53146101dd5780635d1ca6311461020c578063638ce0ba14610214578063715018a61461021c578063893d20e81461022457610158565b806315dae03e1461015d57806317d7de7c146101795780631865c57d1461018b5780631b867c63146101a0578063258d560c146101aa57806340e58ee5146101c2575b600080fd5b60035460ff1660405161017091906109db565b60405180910390f35b6001545b604051908152602001610170565b6101936102ae565b60405161017091906109c1565b6101a8610334565b005b6101b261038c565b6040519015158152602001610170565b6101a86101d03660046108ff565b6103bc565b6101a86103c7565b6101f460035461010090046001600160a01b031690565b6040516001600160a01b039091168152602001610170565b60025461017d565b6101a8610411565b6101a861045e565b6101f4600080546001600160a01b031661032f565b6000546001600160a01b03166101f4565b6101b2610470565b6101a8610260366004610917565b610478565b6101a86104a8565b6101a861027b3660046108ff565b6104f5565b6101b261053f565b6101a86102963660046108a1565b610548565b6101a86102a936600461094a565b6105be565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156102f757600080fd5b505afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906108e0565b905090565b6103496810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146103825760405162461bcd60e51b8152600401610379906109ef565b60405180910390fd5b61038a6106f0565b565b600060025b60035460ff1660028111156103b657634e487b7160e01b600052602160045260246000fd5b14905090565b6103c461072d565b50565b6103dc6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461040c5760405162461bcd60e51b8152600401610379906109ef565b61038a565b6104266810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104565760405162461bcd60e51b8152600401610379906109ef565b61038a610787565b61046661072d565b61038a60006107b1565b600080610391565b6040805182151560208201526000910160405160208183030381529060405290506104a38382610801565b505050565b6104bd6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104ed5760405162461bcd60e51b8152600401610379906109ef565b61038a610861565b61050a6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461053a5760405162461bcd60e51b8152600401610379906109ef565b600255565b60006001610391565b61055061072d565b6001600160a01b0381166105b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610379565b6103c4816107b1565b6105cf64517565727960d81b610668565b6001600160a01b0316336001600160a01b03161461062f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e49454400000000006044820152606401610379565b60008061063e83850185610917565b9150915080156106615760006106538361088b565b905061065f8682610478565b505b5050505050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea91906108c4565b92915050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b2361071a60025490565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461038a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610379565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e661071a60025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a906108339085908590600401610a26565b600060405180830381600087803b15801561084d57600080fd5b505af115801561065f573d6000803e3d6000fd5b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d61071a60025490565b6000610898600283610a81565b60011492915050565b6000602082840312156108b2578081fd5b81356108bd81610ab7565b9392505050565b6000602082840312156108d5578081fd5b81516108bd81610ab7565b6000602082840312156108f1578081fd5b8151600781106108bd578182fd5b600060208284031215610910578081fd5b5035919050565b60008060408385031215610929578081fd5b823591506020830135801515811461093f578182fd5b809150509250929050565b60008060006040848603121561095e578081fd5b83359250602084013567ffffffffffffffff8082111561097c578283fd5b818601915086601f83011261098f578283fd5b81358181111561099d578384fd5b8760208285010111156109ae578384fd5b6020830194508093505050509250925092565b60208101600783106109d5576109d5610aa1565b91905290565b60208101600383106109d5576109d5610aa1565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260206040818401528351806040850152825b81811015610a5957858101830151858201606001528201610a3d565b81811115610a6a5783606083870101525b50601f01601f191692909201606001949350505050565b600082610a9c57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146103c457600080fdfea26469706673582212207cdbbd98d4220fcfcf29de531380c5e9d77ba0bb75aa63d715c0b748d14b43e964736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xF61 CODESIZE SUB DUP1 PUSH3 0xF61 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x3D6 JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x0 DUP3 PUSH3 0x45 CALLER PUSH3 0x25A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xD6 PUSH3 0x2AA JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x100 PUSH3 0x2C5 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x12A PUSH3 0x2F2 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x17D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1D1 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x404 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP PUSH3 0x1FD PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH3 0x30C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 MLOAD ADDRESS DUP2 MSTORE PUSH32 0x77DEE27CD265AC28CB5BA0D4F1A792AD0425CA4AE8BD0C6253B99EC26AC45410 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP PUSH3 0x44F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2C0 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x30C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2C0 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x30C JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2C0 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x36C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x392 SWAP2 SWAP1 PUSH3 0x3B2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x3C4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH3 0x3CF DUP3 PUSH3 0x39A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x3E9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 MLOAD SWAP2 POP PUSH3 0x3FB PUSH1 0x20 DUP5 ADD PUSH3 0x39A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x42A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB02 DUP1 PUSH3 0x45F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x158 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xBE169E7E GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0xFFC79065 EQ PUSH2 0x29B JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xA9C577C5 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x265 JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x214 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x224 JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x18B JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x1C2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x193 PUSH2 0x2AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x9C1 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B2 PUSH2 0x38C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x1D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x8FF JUMP JUMPDEST PUSH2 0x3BC JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x1F4 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x17D JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x411 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x45E JUMP JUMPDEST PUSH2 0x1F4 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x32F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F4 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x470 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x260 CALLDATASIZE PUSH1 0x4 PUSH2 0x917 JUMP JUMPDEST PUSH2 0x478 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x4A8 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x8FF JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x53F JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x296 CALLDATASIZE PUSH1 0x4 PUSH2 0x8A1 JUMP JUMPDEST PUSH2 0x548 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x2A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x94A JUMP JUMPDEST PUSH2 0x5BE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32F SWAP2 SWAP1 PUSH2 0x8E0 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x349 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x382 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38A PUSH2 0x6F0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x3B6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x3C4 PUSH2 0x72D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x3DC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x40C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A JUMP JUMPDEST PUSH2 0x426 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A PUSH2 0x787 JUMP JUMPDEST PUSH2 0x466 PUSH2 0x72D JUMP JUMPDEST PUSH2 0x38A PUSH1 0x0 PUSH2 0x7B1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x391 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x4A3 DUP4 DUP3 PUSH2 0x801 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4BD PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A PUSH2 0x861 JUMP JUMPDEST PUSH2 0x50A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x53A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x550 PUSH2 0x72D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x379 JUMP JUMPDEST PUSH2 0x3C4 DUP2 PUSH2 0x7B1 JUMP JUMPDEST PUSH2 0x5CF PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x62F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4F52412D3030313A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x379 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x63E DUP4 DUP6 ADD DUP6 PUSH2 0x917 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 ISZERO PUSH2 0x661 JUMPI PUSH1 0x0 PUSH2 0x653 DUP4 PUSH2 0x88B JUMP JUMPDEST SWAP1 POP PUSH2 0x65F DUP7 DUP3 PUSH2 0x478 JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6EA SWAP2 SWAP1 PUSH2 0x8C4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x33A6EC8D94D03F2C0A2DA3411552B0777613E4220ABD6CE5679DECB30AF09B23 PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x38A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x379 JUMP JUMPDEST PUSH32 0xDB7E2F5405EA10CAD5583CE31A1BDE125FF32946EDB3CE5972D70EA3F2C214E6 PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7204A9A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE409534A SWAP1 PUSH2 0x833 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0xA26 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x84D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x65F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH32 0x1855FCCE92CB172C06FD991F1B19774237130B37CF6806BC01AA4E3A0C359E2D PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x898 PUSH1 0x2 DUP4 PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8B2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x8BD DUP2 PUSH2 0xAB7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8D5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x8BD DUP2 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8F1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x8BD JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x910 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x929 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x93F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x95E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x97C JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x98F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x99D JUMPI DUP4 DUP5 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x9AE JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D5 PUSH2 0xAA1 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D5 PUSH2 0xAA1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP3 MSTORE PUSH1 0x20 PUSH1 0x40 DUP2 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA59 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0xA3D JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xA6A JUMPI DUP4 PUSH1 0x60 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x60 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xA9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH29 0xDBBD98D4220FCFCF29DE531380C5E9D77BA0BB75AA63D715C0B748D14B NUMBER 0xE9 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"135:1710:95:-:0;;;174:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;265:10;277:8;265:10;580:20:17;277:8:95;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;1916:2:103;1619:70:12::1;::::0;::::1;1898:21:103::0;1955:2;1935:18;;;1928:30;1994:34;1974:18;;;1967:62;-1:-1:-1;;;2045:18:103;;;2038:33;2088:19;;1619:70:12::1;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;1466:657:::0;;;660:36:17::1;-1:-1:-1::0;;;660:19:17::1;;;:36;;:::i;:::-;628:14;:69:::0;;-1:-1:-1;;;;;;628:69:17::1;-1:-1:-1::0;;;;;628:69:17;;;::::1;::::0;;;::::1;::::0;;713:31:::1;::::0;738:4:::1;849:51:103::0;;713:31:17::1;::::0;837:2:103;822:18;713:31:17::1;;;;;;;486:266:::0;;174:121:95;;135:1710;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1057:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1030:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;;4875:145;;;;:::o;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;196:218;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:279::-;;;559:2;547:9;538:7;534:23;530:32;527:2;;;580:6;572;565:22;527:2;614:9;608:16;598:26;;643:49;688:2;677:9;673:18;643:49;:::i;:::-;633:59;;517:181;;;;;:::o;1093:616::-;1340:25;;;1327:3;1312:19;;1395:1;1384:13;;1374:2;;1440:10;1435:3;1431:20;1428:1;1421:31;1475:4;1472:1;1465:15;1503:4;1500:1;1493:15;1374:2;1549;1534:18;;1527:34;;;;-1:-1:-1;;;;;1635:15:103;;;1630:2;1615:18;;1608:43;1687:15;;1682:2;1667:18;;;1660:43;1294:415;;-1:-1:-1;1294:415:103:o;1888:225::-;135:1710:95;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6256:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"642:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"688:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"697:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"705:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"690:6:103"},"nodeType":"YulFunctionCall","src":"690:22:103"},"nodeType":"YulExpressionStatement","src":"690:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"663:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"672:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"659:3:103"},"nodeType":"YulFunctionCall","src":"659:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"684:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"655:3:103"},"nodeType":"YulFunctionCall","src":"655:32:103"},"nodeType":"YulIf","src":"652:2:103"},{"nodeType":"YulVariableDeclaration","src":"723:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"742:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"736:5:103"},"nodeType":"YulFunctionCall","src":"736:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"727:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"785:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"794:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"802:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"787:6:103"},"nodeType":"YulFunctionCall","src":"787:22:103"},"nodeType":"YulExpressionStatement","src":"787:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"774:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"781:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"771:2:103"},"nodeType":"YulFunctionCall","src":"771:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"764:6:103"},"nodeType":"YulFunctionCall","src":"764:20:103"},"nodeType":"YulIf","src":"761:2:103"},{"nodeType":"YulAssignment","src":"820:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"830:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"820:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"608:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"619:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"631:6:103","type":""}],"src":"542:299:103"},{"body":{"nodeType":"YulBlock","src":"916:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"962:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"971:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"979:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"964:6:103"},"nodeType":"YulFunctionCall","src":"964:22:103"},"nodeType":"YulExpressionStatement","src":"964:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"937:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"946:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"933:3:103"},"nodeType":"YulFunctionCall","src":"933:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"958:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"929:3:103"},"nodeType":"YulFunctionCall","src":"929:32:103"},"nodeType":"YulIf","src":"926:2:103"},{"nodeType":"YulAssignment","src":"997:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1020:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1007:12:103"},"nodeType":"YulFunctionCall","src":"1007:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"997:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"882:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"893:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"905:6:103","type":""}],"src":"846:190:103"},{"body":{"nodeType":"YulBlock","src":"1125:277:103","statements":[{"body":{"nodeType":"YulBlock","src":"1171:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1180:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1188:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1173:6:103"},"nodeType":"YulFunctionCall","src":"1173:22:103"},"nodeType":"YulExpressionStatement","src":"1173:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1146:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1155:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1142:3:103"},"nodeType":"YulFunctionCall","src":"1142:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1167:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1138:3:103"},"nodeType":"YulFunctionCall","src":"1138:32:103"},"nodeType":"YulIf","src":"1135:2:103"},{"nodeType":"YulAssignment","src":"1206:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1229:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1216:12:103"},"nodeType":"YulFunctionCall","src":"1216:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1206:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1248:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1289:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1274:3:103"},"nodeType":"YulFunctionCall","src":"1274:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1261:12:103"},"nodeType":"YulFunctionCall","src":"1261:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1252:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1346:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1355:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1363:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1348:6:103"},"nodeType":"YulFunctionCall","src":"1348:22:103"},"nodeType":"YulExpressionStatement","src":"1348:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1315:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1336:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1329:6:103"},"nodeType":"YulFunctionCall","src":"1329:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1322:6:103"},"nodeType":"YulFunctionCall","src":"1322:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1312:2:103"},"nodeType":"YulFunctionCall","src":"1312:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1305:6:103"},"nodeType":"YulFunctionCall","src":"1305:40:103"},"nodeType":"YulIf","src":"1302:2:103"},{"nodeType":"YulAssignment","src":"1381:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1391:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1381:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1083:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1094:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1106:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1114:6:103","type":""}],"src":"1041:361:103"},{"body":{"nodeType":"YulBlock","src":"1513:603:103","statements":[{"body":{"nodeType":"YulBlock","src":"1559:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1568:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"1576:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1561:6:103"},"nodeType":"YulFunctionCall","src":"1561:22:103"},"nodeType":"YulExpressionStatement","src":"1561:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1534:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1543:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1530:3:103"},"nodeType":"YulFunctionCall","src":"1530:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1555:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1526:3:103"},"nodeType":"YulFunctionCall","src":"1526:32:103"},"nodeType":"YulIf","src":"1523:2:103"},{"nodeType":"YulAssignment","src":"1594:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1617:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1604:12:103"},"nodeType":"YulFunctionCall","src":"1604:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1594:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1636:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1667:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1678:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1663:3:103"},"nodeType":"YulFunctionCall","src":"1663:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1650:12:103"},"nodeType":"YulFunctionCall","src":"1650:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1640:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1691:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1701:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1695:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1746:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1755:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"1763:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1748:6:103"},"nodeType":"YulFunctionCall","src":"1748:22:103"},"nodeType":"YulExpressionStatement","src":"1748:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1734:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1742:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1731:2:103"},"nodeType":"YulFunctionCall","src":"1731:14:103"},"nodeType":"YulIf","src":"1728:2:103"},{"nodeType":"YulVariableDeclaration","src":"1781:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1795:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1806:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1791:3:103"},"nodeType":"YulFunctionCall","src":"1791:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1785:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1861:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1870:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"1878:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1863:6:103"},"nodeType":"YulFunctionCall","src":"1863:22:103"},"nodeType":"YulExpressionStatement","src":"1863:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1840:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1836:3:103"},"nodeType":"YulFunctionCall","src":"1836:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1851:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1832:3:103"},"nodeType":"YulFunctionCall","src":"1832:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1825:6:103"},"nodeType":"YulFunctionCall","src":"1825:35:103"},"nodeType":"YulIf","src":"1822:2:103"},{"nodeType":"YulVariableDeclaration","src":"1896:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1923:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1910:12:103"},"nodeType":"YulFunctionCall","src":"1910:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1900:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1953:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1962:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"1970:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1955:6:103"},"nodeType":"YulFunctionCall","src":"1955:22:103"},"nodeType":"YulExpressionStatement","src":"1955:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1941:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1949:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1938:2:103"},"nodeType":"YulFunctionCall","src":"1938:14:103"},"nodeType":"YulIf","src":"1935:2:103"},{"body":{"nodeType":"YulBlock","src":"2029:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2038:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2046:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2031:6:103"},"nodeType":"YulFunctionCall","src":"2031:22:103"},"nodeType":"YulExpressionStatement","src":"2031:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2002:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"2006:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1998:3:103"},"nodeType":"YulFunctionCall","src":"1998:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"2015:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:103"},"nodeType":"YulFunctionCall","src":"1994:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2020:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1991:2:103"},"nodeType":"YulFunctionCall","src":"1991:37:103"},"nodeType":"YulIf","src":"1988:2:103"},{"nodeType":"YulAssignment","src":"2064:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2078:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2082:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2074:3:103"},"nodeType":"YulFunctionCall","src":"2074:11:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2064:6:103"}]},{"nodeType":"YulAssignment","src":"2094:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"2104:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2094:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1463:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1474:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1486:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1494:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1502:6:103","type":""}],"src":"1407:709:103"},{"body":{"nodeType":"YulBlock","src":"2222:102:103","statements":[{"nodeType":"YulAssignment","src":"2232:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2244:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2255:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2240:3:103"},"nodeType":"YulFunctionCall","src":"2240:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2232:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2274:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2289:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2305:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2310:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2314:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2297:3:103"},"nodeType":"YulFunctionCall","src":"2297:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2285:3:103"},"nodeType":"YulFunctionCall","src":"2285:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2267:6:103"},"nodeType":"YulFunctionCall","src":"2267:51:103"},"nodeType":"YulExpressionStatement","src":"2267:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2191:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2202:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2213:4:103","type":""}],"src":"2121:203:103"},{"body":{"nodeType":"YulBlock","src":"2424:92:103","statements":[{"nodeType":"YulAssignment","src":"2434:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2446:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2457:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2442:3:103"},"nodeType":"YulFunctionCall","src":"2442:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2434:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2476:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2501:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2494:6:103"},"nodeType":"YulFunctionCall","src":"2494:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2487:6:103"},"nodeType":"YulFunctionCall","src":"2487:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2469:6:103"},"nodeType":"YulFunctionCall","src":"2469:41:103"},"nodeType":"YulExpressionStatement","src":"2469:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2393:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2404:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2415:4:103","type":""}],"src":"2329:187:103"},{"body":{"nodeType":"YulBlock","src":"2622:76:103","statements":[{"nodeType":"YulAssignment","src":"2632:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2640:3:103"},"nodeType":"YulFunctionCall","src":"2640:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2632:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2674:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2685:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2667:6:103"},"nodeType":"YulFunctionCall","src":"2667:25:103"},"nodeType":"YulExpressionStatement","src":"2667:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2591:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2602:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2613:4:103","type":""}],"src":"2521:177:103"},{"body":{"nodeType":"YulBlock","src":"2822:102:103","statements":[{"nodeType":"YulAssignment","src":"2832:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2855:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2840:3:103"},"nodeType":"YulFunctionCall","src":"2840:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2832:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2874:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2889:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2905:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2910:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2901:3:103"},"nodeType":"YulFunctionCall","src":"2901:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2914:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2897:3:103"},"nodeType":"YulFunctionCall","src":"2897:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2885:3:103"},"nodeType":"YulFunctionCall","src":"2885:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2867:6:103"},"nodeType":"YulFunctionCall","src":"2867:51:103"},"nodeType":"YulExpressionStatement","src":"2867:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2791:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2802:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2813:4:103","type":""}],"src":"2703:221:103"},{"body":{"nodeType":"YulBlock","src":"3047:132:103","statements":[{"nodeType":"YulAssignment","src":"3057:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3069:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3080:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3065:3:103"},"nodeType":"YulFunctionCall","src":"3065:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3057:4:103"}]},{"body":{"nodeType":"YulBlock","src":"3117:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"3119:16:103"},"nodeType":"YulFunctionCall","src":"3119:18:103"},"nodeType":"YulExpressionStatement","src":"3119:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3113:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3102:2:103"},"nodeType":"YulFunctionCall","src":"3102:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3095:6:103"},"nodeType":"YulFunctionCall","src":"3095:21:103"},"nodeType":"YulIf","src":"3092:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3155:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3166:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3148:6:103"},"nodeType":"YulFunctionCall","src":"3148:25:103"},"nodeType":"YulExpressionStatement","src":"3148:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3016:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3027:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3038:4:103","type":""}],"src":"2929:250:103"},{"body":{"nodeType":"YulBlock","src":"3301:132:103","statements":[{"nodeType":"YulAssignment","src":"3311:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3323:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3334:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3319:3:103"},"nodeType":"YulFunctionCall","src":"3319:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3311:4:103"}]},{"body":{"nodeType":"YulBlock","src":"3371:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"3373:16:103"},"nodeType":"YulFunctionCall","src":"3373:18:103"},"nodeType":"YulExpressionStatement","src":"3373:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3359:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3367:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3356:2:103"},"nodeType":"YulFunctionCall","src":"3356:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3349:6:103"},"nodeType":"YulFunctionCall","src":"3349:21:103"},"nodeType":"YulIf","src":"3346:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3409:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3420:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3402:6:103"},"nodeType":"YulFunctionCall","src":"3402:25:103"},"nodeType":"YulExpressionStatement","src":"3402:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3270:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3281:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3292:4:103","type":""}],"src":"3184:249:103"},{"body":{"nodeType":"YulBlock","src":"3612:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3629:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3640:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3622:6:103"},"nodeType":"YulFunctionCall","src":"3622:21:103"},"nodeType":"YulExpressionStatement","src":"3622:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3663:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3674:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3659:3:103"},"nodeType":"YulFunctionCall","src":"3659:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3679:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3652:6:103"},"nodeType":"YulFunctionCall","src":"3652:30:103"},"nodeType":"YulExpressionStatement","src":"3652:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3702:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3713:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3698:3:103"},"nodeType":"YulFunctionCall","src":"3698:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3718:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3691:6:103"},"nodeType":"YulFunctionCall","src":"3691:57:103"},"nodeType":"YulExpressionStatement","src":"3691:57:103"},{"nodeType":"YulAssignment","src":"3757:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3769:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3780:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3765:3:103"},"nodeType":"YulFunctionCall","src":"3765:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3757:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3589:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3603:4:103","type":""}],"src":"3438:351:103"},{"body":{"nodeType":"YulBlock","src":"3968:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3996:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3978:6:103"},"nodeType":"YulFunctionCall","src":"3978:21:103"},"nodeType":"YulExpressionStatement","src":"3978:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4030:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4015:3:103"},"nodeType":"YulFunctionCall","src":"4015:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4035:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4008:6:103"},"nodeType":"YulFunctionCall","src":"4008:30:103"},"nodeType":"YulExpressionStatement","src":"4008:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4058:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4069:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4054:3:103"},"nodeType":"YulFunctionCall","src":"4054:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4074:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4047:6:103"},"nodeType":"YulFunctionCall","src":"4047:62:103"},"nodeType":"YulExpressionStatement","src":"4047:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4129:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4140:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4125:3:103"},"nodeType":"YulFunctionCall","src":"4125:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4145:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4118:6:103"},"nodeType":"YulFunctionCall","src":"4118:36:103"},"nodeType":"YulExpressionStatement","src":"4118:36:103"},{"nodeType":"YulAssignment","src":"4163:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4186:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4171:3:103"},"nodeType":"YulFunctionCall","src":"4171:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4163:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3945:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3959:4:103","type":""}],"src":"3794:402:103"},{"body":{"nodeType":"YulBlock","src":"4375:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4392:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4403:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4385:6:103"},"nodeType":"YulFunctionCall","src":"4385:21:103"},"nodeType":"YulExpressionStatement","src":"4385:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4437:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4422:3:103"},"nodeType":"YulFunctionCall","src":"4422:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4442:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4415:6:103"},"nodeType":"YulFunctionCall","src":"4415:30:103"},"nodeType":"YulExpressionStatement","src":"4415:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4476:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4461:3:103"},"nodeType":"YulFunctionCall","src":"4461:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4481:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4454:6:103"},"nodeType":"YulFunctionCall","src":"4454:62:103"},"nodeType":"YulExpressionStatement","src":"4454:62:103"},{"nodeType":"YulAssignment","src":"4525:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4548:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4533:3:103"},"nodeType":"YulFunctionCall","src":"4533:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4525:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4352:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4366:4:103","type":""}],"src":"4201:356:103"},{"body":{"nodeType":"YulBlock","src":"4736:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4764:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4746:6:103"},"nodeType":"YulFunctionCall","src":"4746:21:103"},"nodeType":"YulExpressionStatement","src":"4746:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4787:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4798:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4783:3:103"},"nodeType":"YulFunctionCall","src":"4783:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4803:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4776:6:103"},"nodeType":"YulFunctionCall","src":"4776:30:103"},"nodeType":"YulExpressionStatement","src":"4776:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4826:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4837:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4822:3:103"},"nodeType":"YulFunctionCall","src":"4822:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4842:29:103","type":"","value":"ERROR:ORA-001:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4815:6:103"},"nodeType":"YulFunctionCall","src":"4815:57:103"},"nodeType":"YulExpressionStatement","src":"4815:57:103"},{"nodeType":"YulAssignment","src":"4881:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4893:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4904:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4889:3:103"},"nodeType":"YulFunctionCall","src":"4889:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4881:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4713:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4727:4:103","type":""}],"src":"4562:351:103"},{"body":{"nodeType":"YulBlock","src":"5019:76:103","statements":[{"nodeType":"YulAssignment","src":"5029:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5041:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5052:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5037:3:103"},"nodeType":"YulFunctionCall","src":"5037:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5029:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5071:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5082:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5064:6:103"},"nodeType":"YulFunctionCall","src":"5064:25:103"},"nodeType":"YulExpressionStatement","src":"5064:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4988:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4999:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5010:4:103","type":""}],"src":"4918:177:103"},{"body":{"nodeType":"YulBlock","src":"5247:525:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5264:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5275:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5257:6:103"},"nodeType":"YulFunctionCall","src":"5257:25:103"},"nodeType":"YulExpressionStatement","src":"5257:25:103"},{"nodeType":"YulVariableDeclaration","src":"5291:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5301:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5295:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5323:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5334:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5319:3:103"},"nodeType":"YulFunctionCall","src":"5319:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5339:2:103","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5312:6:103"},"nodeType":"YulFunctionCall","src":"5312:30:103"},"nodeType":"YulExpressionStatement","src":"5312:30:103"},{"nodeType":"YulVariableDeclaration","src":"5351:27:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5371:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5365:5:103"},"nodeType":"YulFunctionCall","src":"5365:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5355:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5398:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5409:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5394:3:103"},"nodeType":"YulFunctionCall","src":"5394:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"5414:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5387:6:103"},"nodeType":"YulFunctionCall","src":"5387:34:103"},"nodeType":"YulExpressionStatement","src":"5387:34:103"},{"nodeType":"YulVariableDeclaration","src":"5430:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"5439:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5434:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5502:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5531:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"5542:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5527:3:103"},"nodeType":"YulFunctionCall","src":"5527:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"5546:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5523:3:103"},"nodeType":"YulFunctionCall","src":"5523:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5565:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"5573:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5561:3:103"},"nodeType":"YulFunctionCall","src":"5561:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5577:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5557:3:103"},"nodeType":"YulFunctionCall","src":"5557:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5551:5:103"},"nodeType":"YulFunctionCall","src":"5551:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5516:6:103"},"nodeType":"YulFunctionCall","src":"5516:66:103"},"nodeType":"YulExpressionStatement","src":"5516:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5463:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5466:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5460:2:103"},"nodeType":"YulFunctionCall","src":"5460:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5474:19:103","statements":[{"nodeType":"YulAssignment","src":"5476:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5485:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5488:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5481:3:103"},"nodeType":"YulFunctionCall","src":"5481:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5476:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"5456:3:103","statements":[]},"src":"5452:140:103"},{"body":{"nodeType":"YulBlock","src":"5626:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5655:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"5666:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5651:3:103"},"nodeType":"YulFunctionCall","src":"5651:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"5675:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5647:3:103"},"nodeType":"YulFunctionCall","src":"5647:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"5680:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5640:6:103"},"nodeType":"YulFunctionCall","src":"5640:45:103"},"nodeType":"YulExpressionStatement","src":"5640:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5607:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5610:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5604:2:103"},"nodeType":"YulFunctionCall","src":"5604:13:103"},"nodeType":"YulIf","src":"5601:2:103"},{"nodeType":"YulAssignment","src":"5704:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5720:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5739:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5747:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5735:3:103"},"nodeType":"YulFunctionCall","src":"5735:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5756:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5752:3:103"},"nodeType":"YulFunctionCall","src":"5752:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5731:3:103"},"nodeType":"YulFunctionCall","src":"5731:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5716:3:103"},"nodeType":"YulFunctionCall","src":"5716:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"5763:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5712:3:103"},"nodeType":"YulFunctionCall","src":"5712:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5704:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5208:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5219:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5227:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5238:4:103","type":""}],"src":"5100:672:103"},{"body":{"nodeType":"YulBlock","src":"5815:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"5846:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"5867:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5874:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5879:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5870:3:103"},"nodeType":"YulFunctionCall","src":"5870:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5860:6:103"},"nodeType":"YulFunctionCall","src":"5860:31:103"},"nodeType":"YulExpressionStatement","src":"5860:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5911:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5914:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5904:6:103"},"nodeType":"YulFunctionCall","src":"5904:15:103"},"nodeType":"YulExpressionStatement","src":"5904:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"5939:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"5942:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5932:6:103"},"nodeType":"YulFunctionCall","src":"5932:15:103"},"nodeType":"YulExpressionStatement","src":"5932:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5835:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5828:6:103"},"nodeType":"YulFunctionCall","src":"5828:9:103"},"nodeType":"YulIf","src":"5825:2:103"},{"nodeType":"YulAssignment","src":"5966:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5975:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5978:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"5971:3:103"},"nodeType":"YulFunctionCall","src":"5971:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5966:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5800:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5803:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"5809:1:103","type":""}],"src":"5777:209:103"},{"body":{"nodeType":"YulBlock","src":"6023:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6040:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6047:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6052:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6043:3:103"},"nodeType":"YulFunctionCall","src":"6043:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6033:6:103"},"nodeType":"YulFunctionCall","src":"6033:31:103"},"nodeType":"YulExpressionStatement","src":"6033:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6080:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6083:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6073:6:103"},"nodeType":"YulFunctionCall","src":"6073:15:103"},"nodeType":"YulExpressionStatement","src":"6073:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6104:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6107:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6097:6:103"},"nodeType":"YulFunctionCall","src":"6097:15:103"},"nodeType":"YulExpressionStatement","src":"6097:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"5991:127:103"},{"body":{"nodeType":"YulBlock","src":"6168:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"6232:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6241:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6244:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6234:6:103"},"nodeType":"YulFunctionCall","src":"6234:12:103"},"nodeType":"YulExpressionStatement","src":"6234:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6191:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6202:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6217:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6222:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6213:3:103"},"nodeType":"YulFunctionCall","src":"6213:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6226:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6209:3:103"},"nodeType":"YulFunctionCall","src":"6209:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6198:3:103"},"nodeType":"YulFunctionCall","src":"6198:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6188:2:103"},"nodeType":"YulFunctionCall","src":"6188:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6181:6:103"},"nodeType":"YulFunctionCall","src":"6181:50:103"},"nodeType":"YulIf","src":"6178:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6157:5:103","type":""}],"src":"6123:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(value1, value1) }\n value1 := value\n }\n function abi_decode_tuple_t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value2, value2) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value2, value2) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value2, value2) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value2, value2) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value2, value2) }\n value1 := add(_2, 32)\n value2 := length\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:ORA-001:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, value0)\n let _1 := 32\n mstore(add(headStart, _1), 64)\n let length := mload(value1)\n mstore(add(headStart, 64), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 96), mload(add(add(value1, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 96), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 96)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := mod(x, y)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063be169e7e1161007c578063be169e7e146101d5578063d0e0ba951461026d578063d73cd992146101d5578063e0815f0d14610280578063f2fde38b14610288578063ffc790651461029b57610158565b80638da5cb5b146102395780639a82f8901461024a578063a18f5ae2146101d5578063a9c577c514610252578063b3fca9bd146101d5578063bd1fe5d01461026557610158565b806359dacc6a1161011557806359dacc6a146101d55780635ab1bd53146101dd5780635d1ca6311461020c578063638ce0ba14610214578063715018a61461021c578063893d20e81461022457610158565b806315dae03e1461015d57806317d7de7c146101795780631865c57d1461018b5780631b867c63146101a0578063258d560c146101aa57806340e58ee5146101c2575b600080fd5b60035460ff1660405161017091906109db565b60405180910390f35b6001545b604051908152602001610170565b6101936102ae565b60405161017091906109c1565b6101a8610334565b005b6101b261038c565b6040519015158152602001610170565b6101a86101d03660046108ff565b6103bc565b6101a86103c7565b6101f460035461010090046001600160a01b031690565b6040516001600160a01b039091168152602001610170565b60025461017d565b6101a8610411565b6101a861045e565b6101f4600080546001600160a01b031661032f565b6000546001600160a01b03166101f4565b6101b2610470565b6101a8610260366004610917565b610478565b6101a86104a8565b6101a861027b3660046108ff565b6104f5565b6101b261053f565b6101a86102963660046108a1565b610548565b6101a86102a936600461094a565b6105be565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156102f757600080fd5b505afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906108e0565b905090565b6103496810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146103825760405162461bcd60e51b8152600401610379906109ef565b60405180910390fd5b61038a6106f0565b565b600060025b60035460ff1660028111156103b657634e487b7160e01b600052602160045260246000fd5b14905090565b6103c461072d565b50565b6103dc6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461040c5760405162461bcd60e51b8152600401610379906109ef565b61038a565b6104266810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104565760405162461bcd60e51b8152600401610379906109ef565b61038a610787565b61046661072d565b61038a60006107b1565b600080610391565b6040805182151560208201526000910160405160208183030381529060405290506104a38382610801565b505050565b6104bd6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104ed5760405162461bcd60e51b8152600401610379906109ef565b61038a610861565b61050a6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461053a5760405162461bcd60e51b8152600401610379906109ef565b600255565b60006001610391565b61055061072d565b6001600160a01b0381166105b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610379565b6103c4816107b1565b6105cf64517565727960d81b610668565b6001600160a01b0316336001600160a01b03161461062f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e49454400000000006044820152606401610379565b60008061063e83850185610917565b9150915080156106615760006106538361088b565b905061065f8682610478565b505b5050505050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea91906108c4565b92915050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b2361071a60025490565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461038a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610379565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e661071a60025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a906108339085908590600401610a26565b600060405180830381600087803b15801561084d57600080fd5b505af115801561065f573d6000803e3d6000fd5b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d61071a60025490565b6000610898600283610a81565b60011492915050565b6000602082840312156108b2578081fd5b81356108bd81610ab7565b9392505050565b6000602082840312156108d5578081fd5b81516108bd81610ab7565b6000602082840312156108f1578081fd5b8151600781106108bd578182fd5b600060208284031215610910578081fd5b5035919050565b60008060408385031215610929578081fd5b823591506020830135801515811461093f578182fd5b809150509250929050565b60008060006040848603121561095e578081fd5b83359250602084013567ffffffffffffffff8082111561097c578283fd5b818601915086601f83011261098f578283fd5b81358181111561099d578384fd5b8760208285010111156109ae578384fd5b6020830194508093505050509250925092565b60208101600783106109d5576109d5610aa1565b91905290565b60208101600383106109d5576109d5610aa1565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260206040818401528351806040850152825b81811015610a5957858101830151858201606001528201610a3d565b81811115610a6a5783606083870101525b50601f01601f191692909201606001949350505050565b600082610a9c57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146103c457600080fdfea26469706673582212207cdbbd98d4220fcfcf29de531380c5e9d77ba0bb75aa63d715c0b748d14b43e964736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x158 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xBE169E7E GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0xFFC79065 EQ PUSH2 0x29B JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xA9C577C5 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x265 JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x214 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x224 JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x18B JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x1C2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x193 PUSH2 0x2AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x9C1 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B2 PUSH2 0x38C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x1D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x8FF JUMP JUMPDEST PUSH2 0x3BC JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x1F4 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x17D JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x411 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x45E JUMP JUMPDEST PUSH2 0x1F4 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x32F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F4 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x470 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x260 CALLDATASIZE PUSH1 0x4 PUSH2 0x917 JUMP JUMPDEST PUSH2 0x478 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x4A8 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x8FF JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x53F JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x296 CALLDATASIZE PUSH1 0x4 PUSH2 0x8A1 JUMP JUMPDEST PUSH2 0x548 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x2A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x94A JUMP JUMPDEST PUSH2 0x5BE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32F SWAP2 SWAP1 PUSH2 0x8E0 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x349 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x382 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38A PUSH2 0x6F0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x3B6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x3C4 PUSH2 0x72D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x3DC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x40C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A JUMP JUMPDEST PUSH2 0x426 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A PUSH2 0x787 JUMP JUMPDEST PUSH2 0x466 PUSH2 0x72D JUMP JUMPDEST PUSH2 0x38A PUSH1 0x0 PUSH2 0x7B1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x391 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x4A3 DUP4 DUP3 PUSH2 0x801 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4BD PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A PUSH2 0x861 JUMP JUMPDEST PUSH2 0x50A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x53A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x550 PUSH2 0x72D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x379 JUMP JUMPDEST PUSH2 0x3C4 DUP2 PUSH2 0x7B1 JUMP JUMPDEST PUSH2 0x5CF PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x62F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4F52412D3030313A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x379 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x63E DUP4 DUP6 ADD DUP6 PUSH2 0x917 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 ISZERO PUSH2 0x661 JUMPI PUSH1 0x0 PUSH2 0x653 DUP4 PUSH2 0x88B JUMP JUMPDEST SWAP1 POP PUSH2 0x65F DUP7 DUP3 PUSH2 0x478 JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6EA SWAP2 SWAP1 PUSH2 0x8C4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x33A6EC8D94D03F2C0A2DA3411552B0777613E4220ABD6CE5679DECB30AF09B23 PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x38A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x379 JUMP JUMPDEST PUSH32 0xDB7E2F5405EA10CAD5583CE31A1BDE125FF32946EDB3CE5972D70EA3F2C214E6 PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7204A9A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE409534A SWAP1 PUSH2 0x833 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0xA26 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x84D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x65F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH32 0x1855FCCE92CB172C06FD991F1B19774237130B37CF6806BC01AA4E3A0C359E2D PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x898 PUSH1 0x2 DUP4 PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8B2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x8BD DUP2 PUSH2 0xAB7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8D5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x8BD DUP2 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8F1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x8BD JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x910 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x929 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x93F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x95E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x97C JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x98F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x99D JUMPI DUP4 DUP5 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x9AE JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D5 PUSH2 0xAA1 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D5 PUSH2 0xAA1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP3 MSTORE PUSH1 0x20 PUSH1 0x40 DUP2 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA59 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0xA3D JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xA6A JUMPI DUP4 PUSH1 0x60 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x60 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xA9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH29 0xDBBD98D4220FCFCF29DE531380C5E9D77BA0BB75AA63D715C0B748D14B NUMBER 0xE9 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"135:1710:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:100:12;2477:14;;;;2394:100;;;;;;:::i;:::-;;;;;;;;2220:83;2286:14;;2220:83;;;2667:25:103;;;2655:2;2640:18;2220:83:12;2622:76:103;2500:136:12;;;:::i;:::-;;;;;;;:::i;3279:78::-;;;:::i;:::-;;2973:120;;;:::i;:::-;;;2494:14:103;;2487:22;2469:41;;2457:2;2442:18;2973:120:12;2424:92:103;889:220:95;;;;;;:::i;:::-;;:::i;3689:77:12:-;;;:::i;3101:86::-;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;;;;-1:-1:-1;;;;;2285:32:103;;;2267:51;;2255:2;2240:18;3101:86:12;2222:102:103;2309:79:12;2373:12;;2309:79;;3195:78;;;:::i;1831:101:41:-;;;:::i;2642:77:12:-;;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;2851:116:12;;;:::i;1265:279:95:-;;;;;;:::i;:::-;;:::i;3363:77:12:-;;;:::i;2131:81::-;;;;;;:::i;:::-;;:::i;2727:118::-;;;:::i;2081:198:41:-;;;;;;:::i;:::-;;:::i;303:578:95:-;;;;;;:::i;:::-;;:::i;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;2667:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;2640:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2578:55;;2500:136;:::o;3279:78::-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;;;;;;;;;3339:15:::1;:13;:15::i;:::-;3279:78::o:0;2973:120::-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;889:220:95:-;1094:13:41;:11;:13::i;:::-;889:220:95;:::o;3689:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3748:15:::1;3279:78:::0;3195;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;1831:101:41:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;2851:116:12:-:0;2900:4;;2915:49;;1265:279:95;1419:29;;;2494:14:103;;2487:22;1419:29:95;;;2469:41:103;1397:19:95;;2442:18:103;1419:29:95;;;;;;;;;;;;1397:51;;1509:27;1518:9;1529:6;1509:8;:27::i;:::-;1265:279;;;:::o;3363:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3422:15:::1;:13;:15::i;2131:81::-:0;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;2727:118::-;2777:4;2810:32;2792:50;;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;3996:2:103;2161:73:41::1;::::0;::::1;3978:21:103::0;4035:2;4015:18;;;4008:30;4074:34;4054:18;;;4047:62;-1:-1:-1;;;4125:18:103;;;4118:36;4171:19;;2161:73:41::1;3968:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;303:578:95:-:0;375:28:17;-1:-1:-1;;;375:19:17;:28::i;:::-;-1:-1:-1;;;;;359:44:17;719:10:59;-1:-1:-1;;;;;359:44:17;;336:122;;;;-1:-1:-1;;;336:122:17;;4764:2:103;336:122:17;;;4746:21:103;4803:2;4783:18;;;4776:30;4842:29;4822:18;;;4815:57;4889:18;;336:122:17;4736:177:103;336:122:17;438:15:95::1;::::0;481:34:::1;::::0;;::::1;492:5:::0;481:34:::1;:::i;:::-;437:78;;;;532:17;528:346;;;770:16;789:27;808:7;789:18;:27::i;:::-;770:46;;831:31;839:9;850:11;831:7;:31::i;:::-;528:346;;469:1:17;;303:578:95::0;;;:::o;4875:145:12:-;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;2667:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;2640:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;4875:145;-1:-1:-1;;4875:145:12:o;810:95:17:-;870:26;888:7;2373:12:12;;2309:79;;888:7:17;870:26;;2667:25:103;;;2655:2;2640:18;870:26:17;;;;;;;810:95::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;4403:2:103;1414:68:41;;;4385:21:103;;;4422:18;;;4415:30;4481:34;4461:18;;;4454:62;4533:18;;1414:68:41;4375:182:103;913:79:17;963:26;981:7;2373:12:12;;2309:79;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;1085:123:17:-;1161:14;;:39;;-1:-1:-1;;;1161:39:17;;-1:-1:-1;;;;;1161:14:17;;;;:22;;:39;;1184:9;;1195:4;;1161:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;998:79;1048:26;1066:7;2373:12:12;;2309:79;;1706:132:95;1769:16;1813:11;1823:1;1813:7;:11;:::i;:::-;1828:1;1813:16;;1706:132;-1:-1:-1;;1706:132:95:o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:299::-;;684:2;672:9;663:7;659:23;655:32;652:2;;;705:6;697;690:22;652:2;742:9;736:16;781:1;774:5;771:12;761:2;;802:6;794;787:22;846:190;;958:2;946:9;937:7;933:23;929:32;926:2;;;979:6;971;964:22;926:2;-1:-1:-1;1007:23:103;;916:120;-1:-1:-1;916:120:103:o;1041:361::-;;;1167:2;1155:9;1146:7;1142:23;1138:32;1135:2;;;1188:6;1180;1173:22;1135:2;1229:9;1216:23;1206:33;;1289:2;1278:9;1274:18;1261:32;1336:5;1329:13;1322:21;1315:5;1312:32;1302:2;;1363:6;1355;1348:22;1302:2;1391:5;1381:15;;;1125:277;;;;;:::o;1407:709::-;;;;1555:2;1543:9;1534:7;1530:23;1526:32;1523:2;;;1576:6;1568;1561:22;1523:2;1617:9;1604:23;1594:33;;1678:2;1667:9;1663:18;1650:32;1701:18;1742:2;1734:6;1731:14;1728:2;;;1763:6;1755;1748:22;1728:2;1806:6;1795:9;1791:22;1781:32;;1851:7;1844:4;1840:2;1836:13;1832:27;1822:2;;1878:6;1870;1863:22;1822:2;1923;1910:16;1949:2;1941:6;1938:14;1935:2;;;1970:6;1962;1955:22;1935:2;2020:7;2015:2;2006:6;2002:2;1998:15;1994:24;1991:37;1988:2;;;2046:6;2038;2031:22;1988:2;2082;2078;2074:11;2064:21;;2104:6;2094:16;;;;;1513:603;;;;;:::o;2929:250::-;3080:2;3065:18;;3113:1;3102:13;;3092:2;;3119:18;;:::i;:::-;3148:25;;;3047:132;:::o;3184:249::-;3334:2;3319:18;;3367:1;3356:13;;3346:2;;3373:18;;:::i;3438:351::-;3640:2;3622:21;;;3679:2;3659:18;;;3652:30;3718:29;3713:2;3698:18;;3691:57;3780:2;3765:18;;3612:177::o;5100:672::-;;5275:6;5264:9;5257:25;5301:2;5339;5334;5323:9;5319:18;5312:30;5371:6;5365:13;5414:6;5409:2;5398:9;5394:18;5387:34;5439:4;5452:140;5466:6;5463:1;5460:13;5452:140;;;5561:14;;;5557:23;;5551:30;5527:17;;;5546:2;5523:26;5516:66;5481:10;;5452:140;;;5610:6;5607:1;5604:13;5601:2;;;5680:4;5675:2;5666:6;5655:9;5651:22;5647:31;5640:45;5601:2;-1:-1:-1;5756:2:103;5735:15;-1:-1:-1;;5731:29:103;5716:45;;;;5763:2;5712:54;;5247:525;-1:-1:-1;;;;5247:525:103:o;5777:209::-;;5835:1;5825:2;;-1:-1:-1;;;5860:31:103;;5914:4;5911:1;5904:15;5942:4;5867:1;5932:15;5825:2;-1:-1:-1;5971:9:103;;5815:171::o;5991:127::-;6052:10;6047:3;6043:20;6040:1;6033:31;6083:4;6080:1;6073:15;6107:4;6104:1;6097:15;6123:131;-1:-1:-1;;;;;6198:31:103;;6188:42;;6178:2;;6244:1;6241;6234:12"},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","cancel(uint256)":"40e58ee5","declineCallback()":"bd1fe5d0","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","owner()":"8da5cb5b","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","request(uint256,bytes)":"ffc79065","respond(uint256,bool)":"a9c577c5","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"oracleName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"}],\"name\":\"LogOracleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"request\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isLossEvent\",\"type\":\"bool\"}],\"name\":\"respond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestOracle.sol\":\"TestOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/Oracle.sol\":{\"keccak256\":\"0xc0de2df5ab9dbde82f5bba5e0bd311b4b0e708a90a7541c453581cd369795d66\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cbfa0790664076b9a1f2c983a27f60ce5b66d9357df9dd17c29f1909a0cdfef6\",\"dweb:/ipfs/Qmco66eWdxHYNJZbaMC6oi1Pqq3WptZgtDs469kF2RkUXB\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/test/TestOracle.sol\":{\"keccak256\":\"0x38fdfad83ddc712c458da0a002025891bd416abc6ba34bf4f8216039c46ff4d9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://00963a8297b88cbdc8675d9f0319fc7e1cf28e1e96552addd9a3ade8f6e7ce6a\",\"dweb:/ipfs/QmdgvR64xFW28fnbiyQKSazVkQo6ogeM56LvoPqoJhur6J\"]}},\"version\":1}"}},"contracts/test/TestProduct.sol":{"TestProduct":{"abi":[{"inputs":[{"internalType":"bytes32","name":"productName","type":"bytes32"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"capitalOwner","type":"address"},{"internalType":"uint256","name":"oracleId","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"registryAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"productAddress","type":"address"}],"name":"LogProductCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"response","type":"bytes"}],"name":"LogTestOracleCallbackReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTestProductFundingReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"ORACLE_CALLBACK_METHOD_NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POLICY_FLOW","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applications","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"policyHolder","type":"address"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"sumInsured","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"applyForPolicy","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"sumInsured","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"applyForPolicy","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"closeClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"netPremium","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"netPremium","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"confirmClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"}],"name":"createPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"declineClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"expire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getApplicationDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"getClaimId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPayoutDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"getPayoutId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"sumInsured","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"newAppliation","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"}],"name":"newPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"bytes","name":"responseData","type":"bytes"}],"name":"oracleCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"policies","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"revoke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"riskPoolCapacityCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"submitClaim","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"submitClaimNoOracle","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"submitClaimWithDeferredResponse","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2768:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"585:408:103","statements":[{"body":{"nodeType":"YulBlock","src":"632:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"641:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"649:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"634:6:103"},"nodeType":"YulFunctionCall","src":"634:22:103"},"nodeType":"YulExpressionStatement","src":"634:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"606:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"615:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"602:3:103"},"nodeType":"YulFunctionCall","src":"602:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"627:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"598:3:103"},"nodeType":"YulFunctionCall","src":"598:33:103"},"nodeType":"YulIf","src":"595:2:103"},{"nodeType":"YulAssignment","src":"667:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"683:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"677:5:103"},"nodeType":"YulFunctionCall","src":"677:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"667:6:103"}]},{"nodeType":"YulAssignment","src":"702:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"757:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"742:3:103"},"nodeType":"YulFunctionCall","src":"742:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"712:29:103"},"nodeType":"YulFunctionCall","src":"712:49:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"702:6:103"}]},{"nodeType":"YulAssignment","src":"770:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"825:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"810:3:103"},"nodeType":"YulFunctionCall","src":"810:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"780:29:103"},"nodeType":"YulFunctionCall","src":"780:49:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"770:6:103"}]},{"nodeType":"YulAssignment","src":"838:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"858:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"869:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"854:3:103"},"nodeType":"YulFunctionCall","src":"854:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"848:5:103"},"nodeType":"YulFunctionCall","src":"848:25:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"838:6:103"}]},{"nodeType":"YulAssignment","src":"882:36:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"902:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"913:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"898:3:103"},"nodeType":"YulFunctionCall","src":"898:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"892:5:103"},"nodeType":"YulFunctionCall","src":"892:26:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"882:6:103"}]},{"nodeType":"YulAssignment","src":"927:60:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"971:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"982:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:19:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"937:29:103"},"nodeType":"YulFunctionCall","src":"937:50:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"927:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_addresst_uint256t_uint256t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"511:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"522:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"534:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"542:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"550:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"558:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"566:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"574:6:103","type":""}],"src":"419:574:103"},{"body":{"nodeType":"YulBlock","src":"1099:102:103","statements":[{"nodeType":"YulAssignment","src":"1109:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:103"},"nodeType":"YulFunctionCall","src":"1117:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1166:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1182:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1187:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1178:3:103"},"nodeType":"YulFunctionCall","src":"1178:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1191:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1174:3:103"},"nodeType":"YulFunctionCall","src":"1174:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1162:3:103"},"nodeType":"YulFunctionCall","src":"1162:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:103"},"nodeType":"YulFunctionCall","src":"1144:51:103"},"nodeType":"YulExpressionStatement","src":"1144:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:103","type":""}],"src":"998:203:103"},{"body":{"nodeType":"YulBlock","src":"1307:76:103","statements":[{"nodeType":"YulAssignment","src":"1317:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1329:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1340:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1325:3:103"},"nodeType":"YulFunctionCall","src":"1325:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1317:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1359:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1370:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1352:6:103"},"nodeType":"YulFunctionCall","src":"1352:25:103"},"nodeType":"YulExpressionStatement","src":"1352:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1276:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1287:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1298:4:103","type":""}],"src":"1206:177:103"},{"body":{"nodeType":"YulBlock","src":"1589:415:103","statements":[{"nodeType":"YulAssignment","src":"1599:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1611:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1622:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1607:3:103"},"nodeType":"YulFunctionCall","src":"1607:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1599:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1642:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1653:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1635:6:103"},"nodeType":"YulFunctionCall","src":"1635:25:103"},"nodeType":"YulExpressionStatement","src":"1635:25:103"},{"body":{"nodeType":"YulBlock","src":"1702:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1723:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1730:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1735:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1726:3:103"},"nodeType":"YulFunctionCall","src":"1726:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1716:6:103"},"nodeType":"YulFunctionCall","src":"1716:31:103"},"nodeType":"YulExpressionStatement","src":"1716:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1767:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1770:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1760:6:103"},"nodeType":"YulFunctionCall","src":"1760:15:103"},"nodeType":"YulExpressionStatement","src":"1760:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1795:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1798:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1788:6:103"},"nodeType":"YulFunctionCall","src":"1788:15:103"},"nodeType":"YulExpressionStatement","src":"1788:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1682:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1690:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1679:2:103"},"nodeType":"YulFunctionCall","src":"1679:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1672:6:103"},"nodeType":"YulFunctionCall","src":"1672:21:103"},"nodeType":"YulIf","src":"1669:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1829:3:103"},"nodeType":"YulFunctionCall","src":"1829:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1849:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1822:6:103"},"nodeType":"YulFunctionCall","src":"1822:34:103"},"nodeType":"YulExpressionStatement","src":"1822:34:103"},{"nodeType":"YulVariableDeclaration","src":"1865:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1883:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1888:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1879:3:103"},"nodeType":"YulFunctionCall","src":"1879:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1892:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1875:3:103"},"nodeType":"YulFunctionCall","src":"1875:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1869:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1925:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1910:3:103"},"nodeType":"YulFunctionCall","src":"1910:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1934:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1942:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1930:3:103"},"nodeType":"YulFunctionCall","src":"1930:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1903:6:103"},"nodeType":"YulFunctionCall","src":"1903:43:103"},"nodeType":"YulExpressionStatement","src":"1903:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1977:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1962:3:103"},"nodeType":"YulFunctionCall","src":"1962:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1986:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1994:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1982:3:103"},"nodeType":"YulFunctionCall","src":"1982:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1955:6:103"},"nodeType":"YulFunctionCall","src":"1955:43:103"},"nodeType":"YulExpressionStatement","src":"1955:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1534:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1545:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1553:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1561:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1569:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1580:4:103","type":""}],"src":"1388:616:103"},{"body":{"nodeType":"YulBlock","src":"2183:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2200:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2211:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2193:6:103"},"nodeType":"YulFunctionCall","src":"2193:21:103"},"nodeType":"YulExpressionStatement","src":"2193:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2234:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2245:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2230:3:103"},"nodeType":"YulFunctionCall","src":"2230:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2250:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2223:6:103"},"nodeType":"YulFunctionCall","src":"2223:30:103"},"nodeType":"YulExpressionStatement","src":"2223:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2273:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2284:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2269:3:103"},"nodeType":"YulFunctionCall","src":"2269:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2289:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2262:6:103"},"nodeType":"YulFunctionCall","src":"2262:62:103"},"nodeType":"YulExpressionStatement","src":"2262:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:33:103"},"nodeType":"YulExpressionStatement","src":"2333:33:103"},{"nodeType":"YulAssignment","src":"2375:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2398:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2383:3:103"},"nodeType":"YulFunctionCall","src":"2383:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2375:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2160:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2174:4:103","type":""}],"src":"2009:399:103"},{"body":{"nodeType":"YulBlock","src":"2587:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2615:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2597:6:103"},"nodeType":"YulFunctionCall","src":"2597:21:103"},"nodeType":"YulExpressionStatement","src":"2597:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2649:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2634:3:103"},"nodeType":"YulFunctionCall","src":"2634:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2654:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2627:6:103"},"nodeType":"YulFunctionCall","src":"2627:30:103"},"nodeType":"YulExpressionStatement","src":"2627:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2688:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2673:3:103"},"nodeType":"YulFunctionCall","src":"2673:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2693:31:103","type":"","value":"ERROR:TI-2:TOKEN_ADDRESS_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2666:6:103"},"nodeType":"YulFunctionCall","src":"2666:59:103"},"nodeType":"YulExpressionStatement","src":"2666:59:103"},{"nodeType":"YulAssignment","src":"2734:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2757:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2742:3:103"},"nodeType":"YulFunctionCall","src":"2742:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2734:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6003834a90355bc6c34bf2f1e5e7831d67694839f4cff894321a4e1852368d7b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2564:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2578:4:103","type":""}],"src":"2413:353:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32t_addresst_addresst_uint256t_uint256t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := mload(add(headStart, 96))\n value4 := mload(add(headStart, 128))\n value5 := abi_decode_address_fromMemory(add(headStart, 160))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6003834a90355bc6c34bf2f1e5e7831d67694839f4cff894321a4e1852368d7b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:TI-2:TOKEN_ADDRESS_ZERO\")\n tail := add(headStart, 96)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162002eff38038062002eff8339810160408190526200003491620004f5565b858570506f6c69637944656661756c74466c6f7760781b8484846001826200005c3362000379565b6001600160a01b038116620000c45760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000ee620003c9565b600480546001600160a01b0319166001600160a01b039290921691909117905562000118620003e4565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014262000411565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019557634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001e992909160ff82169130916101009091046001600160a01b0316906200055a565b60405180910390a15050600880546001600160a01b0319166001600160a01b0387161790555060098290556200021f836200042b565b600780546001600160a01b0319166001600160a01b03929092169190911790556200025b6d50726f647563745365727669636560901b6200042b565b600a80546001600160a01b0319166001600160a01b0392909216919091179055620002986e496e7374616e63655365727669636560881b6200042b565b600b80546001600160a01b0319166001600160a01b03929092169190911790556040513081527fced180b842b890d77dab95dcbf4654065589a164226ef9faa91a7601fb67c4679060200160405180910390a150505050506001600160a01b038516620003485760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a54492d323a544f4b454e5f414444524553535f5a45524f0000006044820152606401620000bb565b50600c80546001600160a01b0319166001600160a01b039490941693909317909255600d55600e5550620005a59050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620003df6541636365737360d01b6200042b565b905090565b6000620003df7f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200042b565b6000620003df6e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200047657600080fd5b505afa1580156200048b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b19190620004d1565b90505b919050565b80516001600160a01b0381168114620004b457600080fd5b600060208284031215620004e3578081fd5b620004ee82620004b9565b9392505050565b60008060008060008060c087890312156200050e578182fd5b865195506200052060208801620004b9565b94506200053060408801620004b9565b935060608701519250608087015191506200054e60a08801620004b9565b90509295509295509295565b84815260808101600385106200058057634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b61294a80620005b56000396000f3fe60806040526004361061036b5760003560e01c806370d2fe53116101c6578063b9ea8d66116100f7578063e0815f0d11610095578063ec8b4a9a1161006f578063ec8b4a9a146108f7578063f2fde38b1461092c578063f4fdc1fa1461094c578063fe64372b1461096a5761036b565b8063e0815f0d146108af578063e3ebdea5146108c4578063e6f95edd146108e45761036b565b8063c6441798116100d1578063c64417981461085a578063d0e0ba951461087a578063d73cd9921461061e578063dcc59b6f1461089a5761036b565b8063b9ea8d6614610808578063bd1fe5d014610845578063be169e7e1461061e5761036b565b80638da5cb5b11610164578063a18f5ae21161013e578063a18f5ae21461061e578063ab72c4e1146107bb578063b3fca9bd1461061e578063b75c7dc6146107e85761036b565b80638da5cb5b1461078857806394f64ff41461058a5780639a82f890146107a65761036b565b80637ce5e82f116101a05780637ce5e82f1461071e5780637f29dba214610733578063893d20e8146107535780638cc7d3d1146107685761036b565b806370d2fe53146106d4578063715018a6146106e957806379ed5209146106fe5761036b565b806339c79e0c116102a057806359dacc6a1161023e5780635e61aa63116102185780635e61aa631461066c578063637d08f41461068c578063638ce0ba146106aa578063702e7e1f146106bf5761036b565b806359dacc6a1461061e5780635ab1bd53146106335780635d1ca631146106575761036b565b80633ec92bda1161027a5780633ec92bda1461058a5780634703dc8d146105be5780634cda0de9146105de5780634e02c63f146105fe5761036b565b806339c79e0c1461056a57806339cf5e161461058a5780633dcabeab146105ab5761036b565b806321df0da71161030d57806329abdbd7116102e757806329abdbd7146104ea5780632b1994ba1461050a5780632b6778411461052a57806330a73da51461054a5761036b565b806321df0da71461044c578063232d346a1461047e578063258d560c146104c55761036b565b806317d7de7c1161034957806317d7de7c146103de5780631865c57d146103f35780631b07b17f146104155780631b867c63146104375761036b565b806303f0ac1a1461037057806309128d831461039657806315dae03e146103be575b600080fd5b61038361037e366004612594565b61098a565b6040519081526020015b60405180910390f35b3480156103a257600080fd5b5061038370506f6c69637944656661756c74466c6f7760781b81565b3480156103ca57600080fd5b5060035460ff1660405161038d9190612732565b3480156103ea57600080fd5b50600154610383565b3480156103ff57600080fd5b50610408610a47565b60405161038d9190612718565b34801561042157600080fd5b506104356104303660046122d7565b610acd565b005b34801561044357600080fd5b50610435610b22565b34801561045857600080fd5b506008546001600160a01b03165b6040516001600160a01b03909116815260200161038d565b34801561048a57600080fd5b506104b86040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b81525081565b60405161038d9190612746565b3480156104d157600080fd5b506104da610b7a565b604051901515815260200161038d565b3480156104f657600080fd5b506103836105053660046122d7565b610baa565b34801561051657600080fd5b50610383610525366004612328565b610bbf565b34801561053657600080fd5b50610383610545366004612307565b610bfc565b34801561055657600080fd5b50610435610565366004612328565b610d56565b34801561057657600080fd5b506104356105853660046122d7565b610d66565b34801561059657600080fd5b506040805160208101909152600081526104b8565b6103836105b93660046121d6565b610d77565b3480156105ca57600080fd5b506103836105d9366004612328565b610e79565b3480156105ea57600080fd5b506104356105f9366004612307565b610eb3565b34801561060a57600080fd5b50610435610619366004612328565b610ec5565b34801561062a57600080fd5b50610435610ed8565b34801561063f57600080fd5b5061046660035461010090046001600160a01b031690565b34801561066357600080fd5b50600254610383565b34801561067857600080fd5b50610435610687366004612520565b610f22565b34801561069857600080fd5b506007546001600160a01b0316610466565b3480156106b657600080fd5b50610435611086565b3480156106cb57600080fd5b50601054610383565b3480156106e057600080fd5b50600954610383565b3480156106f557600080fd5b506104356110d3565b34801561070a57600080fd5b50610383610719366004612307565b6110e5565b34801561072a57600080fd5b50600f54610383565b34801561073f57600080fd5b5061043561074e366004612307565b6111df565b34801561075f57600080fd5b506104666111f1565b34801561077457600080fd5b506104356107833660046122d7565b611203565b34801561079457600080fd5b506000546001600160a01b0316610466565b3480156107b257600080fd5b506104da611214565b3480156107c757600080fd5b506103836107d63660046122d7565b60009081526012602052604090205490565b3480156107f457600080fd5b506104356108033660046122d7565b61121c565b34801561081457600080fd5b506108286108233660046122d7565b6112d5565b60408051931515845260208401929092529082015260600161038d565b34801561085157600080fd5b506104356112f8565b34801561086657600080fd5b506104356108753660046122d7565b611345565b34801561088657600080fd5b506104356108953660046122d7565b611356565b3480156108a657600080fd5b50601154610383565b3480156108bb57600080fd5b506104da6113a0565b3480156108d057600080fd5b506108286108df366004612307565b6113a9565b6103836108f2366004612594565b6113ce565b34801561090357600080fd5b50610917610912366004612307565b6114d4565b6040805192835260208301919091520161038d565b34801561093857600080fd5b5061043561094736600461219e565b611634565b34801561095857600080fd5b506104356109673660046122d7565b50565b34801561097657600080fd5b50610435610985366004612307565b6116aa565b600080339050610a0681898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f80546001810182556000919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020181905598975050505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190612353565b905090565b610ad5611757565b6000610ae0826117b1565b90508015610b1e57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b5050565b610b376810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610b705760405162461bcd60e51b8152600401610b6790612759565b60405180910390fd5b610b786118b8565b565b600060025b60035460ff166002811115610ba457634e487b7160e01b600052602160045260246000fd5b14905090565b6000818152601360205260409020545b919050565b6000610bc9611757565b6040805160006020820152610bf491869186918691015b6040516020818303038152906040526118f5565b949350505050565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c81919081019061241d565b519050336001600160a01b03821614610cac5760405162461bcd60e51b8152600401610b6790612790565b60118054906000610cbc83612887565b9190505550610cdb858560405180602001604052806000815250611987565b600086815260126020908152604080832084905560115481519283015260019082018190529295506060016040516020818303038152906040529050610d4b87826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b505050505092915050565b610d61838383611a47565b505050565b610d6e611757565b61096781611ab9565b6000610def88888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a91508990819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80201829055909150610e2f826117b1565b90508015610e6d57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b50979650505050505050565b6000610e83611757565b6040805160006020820152610e9e9186918691869101610be0565b9050610eaa8482611b1b565b50509392505050565b610ebb611757565b610b1e8282611baf565b610ecd611757565b610d61838383611c11565b610eed6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610f1d5760405162461bcd60e51b8152600401610b6790612759565b610b78565b610f3364517565727960d81b611836565b6001600160a01b0316336001600160a01b031614610f935760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610b67565b7f76f1662da8419575225dd3addaf14184129f5230097a533de445a2d5688a399e84848484604051610fc894939291906127d6565b60405180910390a16000610fde82840184612269565b600085815260126020526040902054909150811561107457610fff85611c50565b50600061100c8683611d0a565b602081015190915061101f878483611c11565b604080516000602080830182905283518084039091018152918301909252829161104b8a8785856118f5565b60008b815260136020526040902081905590506110688a82611b1b565b5050505050505061107e565b61107e8582611baf565b505050505050565b61109b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b0316146110cb5760405162461bcd60e51b8152600401610b6790612759565b610b78611dd2565b6110db611757565b610b786000611dfc565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116a919081019061241d565b519050336001600160a01b038216146111955760405162461bcd60e51b8152600401610b6790612790565b601180549060006111a583612887565b91905055506111c4858560405180602001604052806000815250611987565b60009586526012602052604090952085905550929392505050565b6111e7611757565b610b1e8282611e4c565b600080546001600160a01b0316610ac8565b61120b611757565b61096781611e84565b600080610b7f565b600b5460405163296586d360e21b81526004810183905282916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561126557600080fd5b505afa158015611279573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112a1919081019061241d565b519050336001600160a01b038216146112cc5760405162461bcd60e51b8152600401610b6790612790565b610d6183611eb5565b60008060006112e2611757565b6112eb84611ee6565b9196909550909350915050565b61130d6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461133d5760405162461bcd60e51b8152600401610b6790612759565b610b78611f34565b61134d611757565b61096781611f5e565b61136b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461139b5760405162461bcd60e51b8152600401610b6790612759565b600255565b60006001610b7f565b60008060006113b6611757565b6113c08585611f8f565b919790965090945092505050565b60008033905061144a81898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020182905590925061148a836117b1565b905080156114c857601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018390555b50509695505050505050565b600b5460405163296586d360e21b8152600481018490526000918291859183916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561152157600080fd5b505afa158015611535573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261155d919081019061241d565b519050336001600160a01b038216146115885760405162461bcd60e51b8152600401610b6790612790565b6011805490600061159883612887565b91905055506115b7868660405180602001604052806000815250611987565b60008781526012602090815260408083208490556011548151928301528101829052919550908190606001604051602081830303815290604052905061162788826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b9450505050509250929050565b61163c611757565b6001600160a01b0381166116a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b67565b61096781611dfc565b6116b2611757565b6116bc8282611b1b565b50505050565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a906116fb9089908990899089908990600401612640565b602060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d91906122ef565b9695505050505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b67565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156117f857600080fd5b505af115801561180c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118309190612285565b92915050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561188057600080fd5b505afa158015611894573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183091906121ba565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616118e260025490565b60405190815260200160405180910390a1565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d78469061192c9088908890889088906004016126f3565b602060405180830381600087803b15801561194657600080fd5b505af115801561195a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197e91906122ef565b95945050505050565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d15906119bc908790879087906004016126d4565b602060405180830381600087803b1580156119d657600080fd5b505af11580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf491906122ef565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f229061192c908890889088903090899060040161268b565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064015b600060405180830381600087803b158015611a9c57600080fd5b505af1158015611ab0573d6000803e3d6000fd5b50505050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c906024015b600060405180830381600087803b158015611b0057600080fd5b505af1158015611b14573d6000803e3d6000fd5b5050505050565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b158015611b6c57600080fd5b505af1158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190612571565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b158015611bfd57600080fd5b505af115801561107e573d6000803e3d6000fd5b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f90606401611a82565b611c8a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118309190810190612372565b611d446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051637f22c2d960e01b815260048101859052602481018490526001600160a01b0390911690637f22c2d99060440160006040518083038186803b158015611d8f57600080fd5b505afa158015611da3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dcb9190810190612372565b9392505050565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96118e260025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba290604401611be3565b600a54604051638cc7d3d160e01b8152600481018390526001600160a01b0390911690638cc7d3d190602401611ae6565b600a54604051635bae3ee360e11b8152600481018390526001600160a01b039091169063b75c7dc690602401611ae6565b600080600080611ef585612019565b9050806020015181604001511015611f2c57611f248582604001518360200151611f1f9190612844565b611f8f565b919550935091505b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556118e260025490565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c644179890602401611ae6565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b158015611fe157600080fd5b505af1158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c091906122a1565b612069604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b1580156120ae57600080fd5b505afa1580156120c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611830919061249b565b60008083601f8401126120f7578182fd5b50813567ffffffffffffffff81111561210e578182fd5b60208301915083602082850101111561212657600080fd5b9250929050565b600082601f83011261213d578081fd5b815167ffffffffffffffff811115612157576121576128ce565b61216a601f8201601f1916602001612813565b81815284602083860101111561217e578283fd5b610bf482602083016020870161285b565b805160038110610bba57600080fd5b6000602082840312156121af578081fd5b8135611dcb816128e4565b6000602082840312156121cb578081fd5b8151611dcb816128e4565b600080600080600080600060a0888a0312156121f0578283fd5b87356121fb816128e4565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612225578485fd5b6122318b838c016120e6565b909650945060808a0135915080821115612249578384fd5b506122568a828b016120e6565b989b979a50959850939692959293505050565b60006020828403121561227a578081fd5b8135611dcb816128f9565b600060208284031215612296578081fd5b8151611dcb816128f9565b6000806000606084860312156122b5578081fd5b83516122c0816128f9565b602085015160409095015190969495509392505050565b6000602082840312156122e8578081fd5b5035919050565b600060208284031215612300578081fd5b5051919050565b60008060408385031215612319578182fd5b50508035926020909101359150565b60008060006060848603121561233c578081fd5b505081359360208301359350604090920135919050565b600060208284031215612364578081fd5b815160078110611dcb578182fd5b600060208284031215612383578081fd5b815167ffffffffffffffff8082111561239a578283fd5b9083019060c082860312156123ad578283fd5b6123b760c0612813565b82516123c281612907565b8082525060208301516020820152604083015160408201526060830151828111156123eb578485fd5b6123f78782860161212d565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561242e578081fd5b815167ffffffffffffffff80821115612445578283fd5b9083019060c08286031215612458578283fd5b61246260c0612813565b825161246d816128e4565b8152602083810151908201526124856040840161218f565b60408201526060830151828111156123eb578485fd5b60006101208083850312156124ae578182fd5b6124b781612813565b90506124c28361218f565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215612535578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612559578283fd5b612565878288016120e6565b95989497509550505050565b60008060408385031215612583578182fd5b505080516020909101519092909150565b600080600080600080608087890312156125ac578384fd5b8635955060208701359450604087013567ffffffffffffffff808211156125d1578586fd5b6125dd8a838b016120e6565b909650945060608901359150808211156125f5578384fd5b5061260289828a016120e6565b979a9699509497509295939492505050565b6000815180845261262c81602086016020860161285b565b601f01601f19169290920160200192915050565b600060018060a01b038716825285602083015284604083015260a0606083015261266d60a0830185612614565b828103608084015261267f8185612614565b98975050505050505050565b600086825260a060208301526126a460a0830187612614565b82810360408401526126b68187612614565b6001600160a01b039590951660608401525050608001529392505050565b60008482528360208301526060604083015261197e6060830184612614565b60008582528460208301528360408301526080606083015261174d6080830184612614565b602081016007831061272c5761272c6128b8565b91905290565b602081016003831061272c5761272c6128b8565b600060208252611dcb6020830184612614565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60208082526026908201527f4552524f523a5052442d3030313a504f4c4943595f4f525f484f4c4445525f4960408201526513959053125160d21b606082015260800190565b60008582528460208301526060604083015282606083015282846080840137818301608090810191909152601f909201601f191601019392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561283c5761283c6128ce565b604052919050565b600082821015612856576128566128a2565b500390565b60005b8381101561287657818101518382015260200161285e565b838111156116bc5750506000910152565b600060001982141561289b5761289b6128a2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096757600080fd5b801515811461096757600080fd5b6004811061096757600080fdfea2646970667358221220c8724aa3eebe95b1d2b318ce70a883306561edfcdce90d9ce1e8ee50df556e2864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2EFF CODESIZE SUB DUP1 PUSH3 0x2EFF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x4F5 JUMP JUMPDEST DUP6 DUP6 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP5 DUP5 DUP5 PUSH1 0x1 DUP3 PUSH3 0x5C CALLER PUSH3 0x379 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xEE PUSH3 0x3C9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x118 PUSH3 0x3E4 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x142 PUSH3 0x411 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x195 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1E9 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE POP PUSH1 0x9 DUP3 SWAP1 SSTORE PUSH3 0x21F DUP4 PUSH3 0x42B JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x25B PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH3 0x42B JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x298 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL PUSH3 0x42B JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 MLOAD ADDRESS DUP2 MSTORE PUSH32 0xCED180B842B890D77DAB95DCBF4654065589A164226EF9FAA91A7601FB67C467 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH3 0x348 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A54492D323A544F4B454E5F414444524553535F5A45524F000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xBB JUMP JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0xD SSTORE PUSH1 0xE SSTORE POP PUSH3 0x5A5 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3DF PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x42B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3DF PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x42B JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3DF PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x48B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x4B1 SWAP2 SWAP1 PUSH3 0x4D1 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x4E3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH3 0x4EE DUP3 PUSH3 0x4B9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH3 0x50E JUMPI DUP2 DUP3 REVERT JUMPDEST DUP7 MLOAD SWAP6 POP PUSH3 0x520 PUSH1 0x20 DUP9 ADD PUSH3 0x4B9 JUMP JUMPDEST SWAP5 POP PUSH3 0x530 PUSH1 0x40 DUP9 ADD PUSH3 0x4B9 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD MLOAD SWAP3 POP PUSH1 0x80 DUP8 ADD MLOAD SWAP2 POP PUSH3 0x54E PUSH1 0xA0 DUP9 ADD PUSH3 0x4B9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x580 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x294A DUP1 PUSH3 0x5B5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70D2FE53 GT PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xEC8B4A9A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xEC8B4A9A EQ PUSH2 0x8F7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x92C JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x94C JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x96A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x8AF JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x8C4 JUMPI DUP1 PUSH4 0xE6F95EDD EQ PUSH2 0x8E4 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xC6441798 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xC6441798 EQ PUSH2 0x85A JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x87A JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x89A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x808 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x845 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x61E JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x164 JUMPI DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xAB72C4E1 EQ PUSH2 0x7BB JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xB75C7DC6 EQ PUSH2 0x7E8 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x788 JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x7A6 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x7CE5E82F GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x7CE5E82F EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0x8CC7D3D1 EQ PUSH2 0x768 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x6D4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x6E9 JUMPI DUP1 PUSH4 0x79ED5209 EQ PUSH2 0x6FE JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x39C79E0C GT PUSH2 0x2A0 JUMPI DUP1 PUSH4 0x59DACC6A GT PUSH2 0x23E JUMPI DUP1 PUSH4 0x5E61AA63 GT PUSH2 0x218 JUMPI DUP1 PUSH4 0x5E61AA63 EQ PUSH2 0x66C JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x68C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x6AA JUMPI DUP1 PUSH4 0x702E7E1F EQ PUSH2 0x6BF JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x657 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x3EC92BDA GT PUSH2 0x27A JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x4703DC8D EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x5FE JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x39C79E0C EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x3DCABEAB EQ PUSH2 0x5AB JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x21DF0DA7 GT PUSH2 0x30D JUMPI DUP1 PUSH4 0x29ABDBD7 GT PUSH2 0x2E7 JUMPI DUP1 PUSH4 0x29ABDBD7 EQ PUSH2 0x4EA JUMPI DUP1 PUSH4 0x2B1994BA EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0x2B677841 EQ PUSH2 0x52A JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x54A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x232D346A EQ PUSH2 0x47E JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x4C5 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x17D7DE7C GT PUSH2 0x349 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x437 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x3F0AC1A EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0x9128D83 EQ PUSH2 0x396 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x3BE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x383 PUSH2 0x37E CALLDATASIZE PUSH1 0x4 PUSH2 0x2594 JUMP JUMPDEST PUSH2 0x98A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2732 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2718 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x430 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xACD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0xB22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2746 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x505 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x516 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x525 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xBBF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x536 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x545 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0xBFC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x565 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xD56 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x585 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xD66 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH2 0x4B8 JUMP JUMPDEST PUSH2 0x383 PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x21D6 JUMP JUMPDEST PUSH2 0xD77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xE79 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x5F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0xEB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x619 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xEC5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0xED8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x678 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x687 CALLDATASIZE PUSH1 0x4 PUSH2 0x2520 JUMP JUMPDEST PUSH2 0xF22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x698 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x466 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x1086 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x10 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x10D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x719 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x10E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xF SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x74E CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x11DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH2 0x11F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x774 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x783 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1203 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x794 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x466 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0x1214 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x7D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x803 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x121C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x828 PUSH2 0x823 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x12F8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x875 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1345 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x895 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1356 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0x13A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x828 PUSH2 0x8DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x383 PUSH2 0x8F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2594 JUMP JUMPDEST PUSH2 0x13CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x917 PUSH2 0x912 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x14D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x947 CALLDATASIZE PUSH1 0x4 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x1634 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x958 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x967 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x985 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x16AA JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xA06 DUP2 DUP10 DUP10 DUP10 DUP10 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE SWAP3 POP DUP12 SWAP2 POP DUP11 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP2 SWAP1 SSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC8 SWAP2 SWAP1 PUSH2 0x2353 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAD5 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE0 DUP3 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xB1E JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP3 SWAP1 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xB37 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB78 PUSH2 0x18B8 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBA4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC9 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xBF4 SWAP2 DUP7 SWAP2 DUP7 SWAP2 DUP7 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x18F5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC81 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xCAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xCBC DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0xCDB DUP6 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x11 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD MSTORE PUSH1 0x1 SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE SWAP3 SWAP6 POP PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xD4B DUP8 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xD SLOAD PUSH2 0x1A0E JUMP JUMPDEST POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD61 DUP4 DUP4 DUP4 PUSH2 0x1A47 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xD6E PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1AB9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDEF DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP13 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP11 DUP2 MSTORE SWAP3 POP DUP11 SWAP2 POP DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP3 SWAP1 SSTORE SWAP1 SWAP2 POP PUSH2 0xE2F DUP3 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xE6D JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP3 SWAP1 SSTORE JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE83 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xE9E SWAP2 DUP7 SWAP2 DUP7 SWAP2 DUP7 SWAP2 ADD PUSH2 0xBE0 JUMP JUMPDEST SWAP1 POP PUSH2 0xEAA DUP5 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEBB PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB1E DUP3 DUP3 PUSH2 0x1BAF JUMP JUMPDEST PUSH2 0xECD PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xD61 DUP4 DUP4 DUP4 PUSH2 0x1C11 JUMP JUMPDEST PUSH2 0xEED PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 JUMP JUMPDEST PUSH2 0xF33 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030333A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH32 0x76F1662DA8419575225DD3ADDAF14184129F5230097A533DE445A2D5688A399E DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xFC8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xFDE DUP3 DUP5 ADD DUP5 PUSH2 0x2269 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP2 ISZERO PUSH2 0x1074 JUMPI PUSH2 0xFFF DUP6 PUSH2 0x1C50 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x100C DUP7 DUP4 PUSH2 0x1D0A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH2 0x101F DUP8 DUP5 DUP4 PUSH2 0x1C11 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE SWAP2 DUP4 ADD SWAP1 SWAP3 MSTORE DUP3 SWAP2 PUSH2 0x104B DUP11 DUP8 DUP6 DUP6 PUSH2 0x18F5 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP1 POP PUSH2 0x1068 DUP11 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP POP POP POP POP POP PUSH2 0x107E JUMP JUMPDEST PUSH2 0x107E DUP6 DUP3 PUSH2 0x1BAF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x109B PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 PUSH2 0x1DD2 JUMP JUMPDEST PUSH2 0x10DB PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB78 PUSH1 0x0 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x112E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x116A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1195 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x11A5 DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x11C4 DUP6 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 SWAP6 DUP7 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 DUP6 SWAP1 SSTORE POP SWAP3 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x11E7 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB1E DUP3 DUP3 PUSH2 0x1E4C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xAC8 JUMP JUMPDEST PUSH2 0x120B PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB7F JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1279 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12A1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x12CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH2 0xD61 DUP4 PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x12E2 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x12EB DUP5 PUSH2 0x1EE6 JUMP JUMPDEST SWAP2 SWAP7 SWAP1 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH2 0x130D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x133D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x134D PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x136B PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x139B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x13B6 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x13C0 DUP6 DUP6 PUSH2 0x1F8F JUMP JUMPDEST SWAP2 SWAP8 SWAP1 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0x144A DUP2 DUP10 DUP10 DUP10 DUP10 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE SWAP3 POP DUP12 SWAP2 POP DUP11 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH2 0x148A DUP4 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP4 SWAP1 SSTORE JUMPDEST POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP6 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1521 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1535 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x155D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x1598 DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x15B7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x11 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD MSTORE DUP2 ADD DUP3 SWAP1 MSTORE SWAP2 SWAP6 POP SWAP1 DUP2 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1627 DUP9 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xD SLOAD PUSH2 0x1A0E JUMP JUMPDEST SWAP5 POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x163C PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x16A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1DFC JUMP JUMPDEST PUSH2 0x16B2 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x16BC DUP3 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x16FB SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2640 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1729 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x174D SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x180C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x2285 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1894 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x21BA JUMP JUMPDEST PUSH32 0xB79D34516B55D664B61192AA41FBC0625B132FB7129BD3B3A31F46D1BEFA7061 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x781D7846 SWAP1 PUSH2 0x192C SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26F3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1946 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x195A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x197E SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFAE43D15 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFAE43D15 SWAP1 PUSH2 0x19BC SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26D4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBF4 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x16499F91 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2C933F22 SWAP1 PUSH2 0x192C SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x268B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE71E783 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x39C79E0C SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BA4 SWAP2 SWAP1 PUSH2 0x2571 JUMP JUMPDEST SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x107E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD PUSH2 0x1A82 JUMP JUMPDEST PUSH2 0x1C8A PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CE2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1830 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2372 JUMP JUMPDEST PUSH2 0x1D44 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1DCB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2372 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xCFF3B7B8B07D4D8F74BF41F05737717140D5916781B9DFF86EA0B996F2FDB9F9 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0x1BE3 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x8CC7D3D1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8CC7D3D1 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x5BAE3EE3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB75C7DC6 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1EF5 DUP6 PUSH2 0x2019 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x1F2C JUMPI PUSH2 0x1F24 DUP6 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x1F1F SWAP2 SWAP1 PUSH2 0x2844 JUMP JUMPDEST PUSH2 0x1F8F JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP JUMPDEST POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH32 0x38954B1D025D5A8FFCF9B42D431BE2745CDCD05D32B0E5AD33EE2DB025EF5B55 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C882F3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC6441798 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13C0 SWAP2 SWAP1 PUSH2 0x22A1 JUMP JUMPDEST PUSH2 0x2069 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x249B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x20F7 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x210E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x213D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2157 JUMPI PUSH2 0x2157 PUSH2 0x28CE JUMP JUMPDEST PUSH2 0x216A PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2813 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x217E JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xBF4 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x285B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xBBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21AF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1DCB DUP2 PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21CB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1DCB DUP2 PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x21F0 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH2 0x21FB DUP2 PUSH2 0x28E4 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2225 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2231 DUP12 DUP4 DUP13 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2249 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2256 DUP11 DUP3 DUP12 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x227A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1DCB DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2296 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1DCB DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x22B5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x22C0 DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x40 SWAP1 SWAP6 ADD MLOAD SWAP1 SWAP7 SWAP5 SWAP6 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22E8 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2300 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2319 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x233C JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2364 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1DCB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2383 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x239A JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x23AD JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x23B7 PUSH1 0xC0 PUSH2 0x2813 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x23C2 DUP2 PUSH2 0x2907 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x23EB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x23F7 DUP8 DUP3 DUP7 ADD PUSH2 0x212D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x242E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2445 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2458 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2462 PUSH1 0xC0 PUSH2 0x2813 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x246D DUP2 PUSH2 0x28E4 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2485 PUSH1 0x40 DUP5 ADD PUSH2 0x218F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x23EB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24AE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x24B7 DUP2 PUSH2 0x2813 JUMP JUMPDEST SWAP1 POP PUSH2 0x24C2 DUP4 PUSH2 0x218F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2535 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2559 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2565 DUP8 DUP3 DUP9 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2583 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x25AC JUMPI DUP4 DUP5 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25D1 JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x25DD DUP11 DUP4 DUP12 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x25F5 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2602 DUP10 DUP3 DUP11 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x262C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x285B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x266D PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x2614 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x267F DUP2 DUP6 PUSH2 0x2614 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x26A4 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2614 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x26B6 DUP2 DUP8 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x197E PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x174D PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x272C JUMPI PUSH2 0x272C PUSH2 0x28B8 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x272C JUMPI PUSH2 0x272C PUSH2 0x28B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1DCB PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x26 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030313A504F4C4943595F4F525F484F4C4445525F49 PUSH1 0x40 DUP3 ADD MSTORE PUSH6 0x139590531251 PUSH1 0xD2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 PUSH1 0x60 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x283C JUMPI PUSH2 0x283C PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2856 JUMPI PUSH2 0x2856 PUSH2 0x28A2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2876 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x285E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x16BC JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x289B JUMPI PUSH2 0x289B PUSH2 0x28A2 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 PUSH19 0x4AA3EEBE95B1D2B318CE70A883306561EDFCDC 0xE9 0xD SWAP13 0xE1 0xE8 0xEE POP 0xDF SSTORE PUSH15 0x2864736F6C63430008020033000000 ","sourceMap":"409:10172:96:-:0;;;1112:492;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1330:11;1343:12;-1:-1:-1;;;1370:10:96;1382:15;1330:11;1412:21:18;1382:15:96;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;2211:2:103;1619:70:12::1;::::0;::::1;2193:21:103::0;2250:2;2230:18;;;2223:30;2289:34;2269:18;;;2262:62;-1:-1:-1;;;2340:18:103;;;2333:33;2383:19;;1619:70:12::1;;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;;1459:6:18::1;:14:::0;;-1:-1:-1;;;;;;1459:14:18::1;-1:-1:-1::0;;;;;1459:14:18;::::1;;::::0;;-1:-1:-1;1483:11:18::1;:24:::0;;;1579:31:::1;1599:10:::0;1579:19:::1;:31::i;:::-;1565:11;:45:::0;;-1:-1:-1;;;;;;1565:45:18::1;-1:-1:-1::0;;;;;1565:45:18;;;::::1;::::0;;;::::1;::::0;;1654:37:::1;-1:-1:-1::0;;;1654:19:18::1;:37::i;:::-;1620:15;:72:::0;;-1:-1:-1;;;;;;1620:72:18::1;-1:-1:-1::0;;;;;1620:72:18;;;::::1;::::0;;;::::1;::::0;;1738:38:::1;-1:-1:-1::0;;;1738:19:18::1;:38::i;:::-;1702:16;:75:::0;;-1:-1:-1;;;;;;1702:75:18::1;-1:-1:-1::0;;;;;1702:75:18;;;::::1;::::0;;;::::1;::::0;;1793:32:::1;::::0;1819:4:::1;1144:51:103::0;;1793:32:18::1;::::0;1132:2:103;1117:18;1793:32:18::1;;;;;;;-1:-1:-1::0;;;;;;;;;;1423:26:96;::::1;1415:68;;;::::0;-1:-1:-1;;;1415:68:96;;2615:2:103;1415:68:96::1;::::0;::::1;2597:21:103::0;2654:2;2634:18;;;2627:30;2693:31;2673:18;;;2666:59;2742:18;;1415:68:96::1;2587:179:103::0;1415:68:96::1;-1:-1:-1::0;1494:13:96::1;:28:::0;;-1:-1:-1;;;;;;1494:28:96::1;-1:-1:-1::0;;;;;1494:28:96;;;::::1;::::0;;;::::1;::::0;;;1533:13:::1;:24:::0;1568:15:::1;:28:::0;-1:-1:-1;409:10172:96;;-1:-1:-1;409:10172:96;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1352:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1325:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;;4875:145;;;;:::o;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;196:218;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:574::-;;;;;;;627:3;615:9;606:7;602:23;598:33;595:2;;;649:6;641;634:22;595:2;683:9;677:16;667:26;;712:49;757:2;746:9;742:18;712:49;:::i;:::-;702:59;;780:49;825:2;814:9;810:18;780:49;:::i;:::-;770:59;;869:2;858:9;854:18;848:25;838:35;;913:3;902:9;898:19;892:26;882:36;;937:50;982:3;971:9;967:19;937:50;:::i;:::-;927:60;;585:408;;;;;;;;:::o;1388:616::-;1635:25;;;1622:3;1607:19;;1690:1;1679:13;;1669:2;;1735:10;1730:3;1726:20;1723:1;1716:31;1770:4;1767:1;1760:15;1798:4;1795:1;1788:15;1669:2;1844;1829:18;;1822:34;;;;-1:-1:-1;;;;;1930:15:103;;;1925:2;1910:18;;1903:43;1982:15;;1977:2;1962:18;;;1955:43;1589:415;;-1:-1:-1;1589:415:103:o;2587:179::-;409:10172:96;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:20505:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"86:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"135:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"144:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"154:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"137:6:103"},"nodeType":"YulFunctionCall","src":"137:26:103"},"nodeType":"YulExpressionStatement","src":"137:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"114:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"122:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"110:3:103"},"nodeType":"YulFunctionCall","src":"110:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"129:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"106:3:103"},"nodeType":"YulFunctionCall","src":"106:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"99:6:103"},"nodeType":"YulFunctionCall","src":"99:35:103"},"nodeType":"YulIf","src":"96:2:103"},{"nodeType":"YulAssignment","src":"174:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"197:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"184:12:103"},"nodeType":"YulFunctionCall","src":"184:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"174:6:103"}]},{"body":{"nodeType":"YulBlock","src":"247:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"256:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"266:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"249:6:103"},"nodeType":"YulFunctionCall","src":"249:26:103"},"nodeType":"YulExpressionStatement","src":"249:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"219:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"227:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"216:2:103"},"nodeType":"YulFunctionCall","src":"216:30:103"},"nodeType":"YulIf","src":"213:2:103"},{"nodeType":"YulAssignment","src":"286:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"302:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"310:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"298:3:103"},"nodeType":"YulFunctionCall","src":"298:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"286:8:103"}]},{"body":{"nodeType":"YulBlock","src":"367:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"376:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"379:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"369:6:103"},"nodeType":"YulFunctionCall","src":"369:12:103"},"nodeType":"YulExpressionStatement","src":"369:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"338:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"346:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"334:3:103"},"nodeType":"YulFunctionCall","src":"334:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"355:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"330:3:103"},"nodeType":"YulFunctionCall","src":"330:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"362:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"327:2:103"},"nodeType":"YulFunctionCall","src":"327:39:103"},"nodeType":"YulIf","src":"324:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"49:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"57:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"65:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"75:6:103","type":""}],"src":"14:375:103"},{"body":{"nodeType":"YulBlock","src":"457:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"506:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"515:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"522:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"508:6:103"},"nodeType":"YulFunctionCall","src":"508:20:103"},"nodeType":"YulExpressionStatement","src":"508:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"485:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"493:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"481:3:103"},"nodeType":"YulFunctionCall","src":"481:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"500:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"477:3:103"},"nodeType":"YulFunctionCall","src":"477:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"470:6:103"},"nodeType":"YulFunctionCall","src":"470:35:103"},"nodeType":"YulIf","src":"467:2:103"},{"nodeType":"YulVariableDeclaration","src":"539:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"555:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"549:5:103"},"nodeType":"YulFunctionCall","src":"549:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"543:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"601:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"603:16:103"},"nodeType":"YulFunctionCall","src":"603:18:103"},"nodeType":"YulExpressionStatement","src":"603:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"577:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"581:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"574:2:103"},"nodeType":"YulFunctionCall","src":"574:26:103"},"nodeType":"YulIf","src":"571:2:103"},{"nodeType":"YulVariableDeclaration","src":"632:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"675:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"679:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"671:3:103"},"nodeType":"YulFunctionCall","src":"671:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"690:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"686:3:103"},"nodeType":"YulFunctionCall","src":"686:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"667:3:103"},"nodeType":"YulFunctionCall","src":"667:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"696:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"663:3:103"},"nodeType":"YulFunctionCall","src":"663:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"647:15:103"},"nodeType":"YulFunctionCall","src":"647:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"636:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"718:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"727:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"711:6:103"},"nodeType":"YulFunctionCall","src":"711:19:103"},"nodeType":"YulExpressionStatement","src":"711:19:103"},{"body":{"nodeType":"YulBlock","src":"778:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"787:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"794:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"780:6:103"},"nodeType":"YulFunctionCall","src":"780:20:103"},"nodeType":"YulExpressionStatement","src":"780:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"753:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"761:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"749:3:103"},"nodeType":"YulFunctionCall","src":"749:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"766:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"745:3:103"},"nodeType":"YulFunctionCall","src":"745:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"773:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"742:2:103"},"nodeType":"YulFunctionCall","src":"742:35:103"},"nodeType":"YulIf","src":"739:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"837:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"845:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"833:3:103"},"nodeType":"YulFunctionCall","src":"833:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"856:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"852:3:103"},"nodeType":"YulFunctionCall","src":"852:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"872:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"811:21:103"},"nodeType":"YulFunctionCall","src":"811:64:103"},"nodeType":"YulExpressionStatement","src":"811:64:103"},{"nodeType":"YulAssignment","src":"884:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"893:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"884:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"431:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"439:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"447:5:103","type":""}],"src":"394:512:103"},{"body":{"nodeType":"YulBlock","src":"984:87:103","statements":[{"nodeType":"YulAssignment","src":"994:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1009:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1003:5:103"},"nodeType":"YulFunctionCall","src":"1003:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"994:5:103"}]},{"body":{"nodeType":"YulBlock","src":"1049:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1058:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1061:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1051:6:103"},"nodeType":"YulFunctionCall","src":"1051:12:103"},"nodeType":"YulExpressionStatement","src":"1051:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1038:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1045:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1035:2:103"},"nodeType":"YulFunctionCall","src":"1035:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1028:6:103"},"nodeType":"YulFunctionCall","src":"1028:20:103"},"nodeType":"YulIf","src":"1025:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"963:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"974:5:103","type":""}],"src":"911:160:103"},{"body":{"nodeType":"YulBlock","src":"1146:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1192:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1201:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1209:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1194:6:103"},"nodeType":"YulFunctionCall","src":"1194:22:103"},"nodeType":"YulExpressionStatement","src":"1194:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1167:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1176:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1163:3:103"},"nodeType":"YulFunctionCall","src":"1163:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1188:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1159:3:103"},"nodeType":"YulFunctionCall","src":"1159:32:103"},"nodeType":"YulIf","src":"1156:2:103"},{"nodeType":"YulVariableDeclaration","src":"1227:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1253:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1240:12:103"},"nodeType":"YulFunctionCall","src":"1240:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1231:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1297:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1272:24:103"},"nodeType":"YulFunctionCall","src":"1272:31:103"},"nodeType":"YulExpressionStatement","src":"1272:31:103"},{"nodeType":"YulAssignment","src":"1312:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1322:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1312:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:103","type":""}],"src":"1076:257:103"},{"body":{"nodeType":"YulBlock","src":"1419:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1465:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1474:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1482:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1467:6:103"},"nodeType":"YulFunctionCall","src":"1467:22:103"},"nodeType":"YulExpressionStatement","src":"1467:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1440:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1449:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1436:3:103"},"nodeType":"YulFunctionCall","src":"1436:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1432:3:103"},"nodeType":"YulFunctionCall","src":"1432:32:103"},"nodeType":"YulIf","src":"1429:2:103"},{"nodeType":"YulVariableDeclaration","src":"1500:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1519:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1513:5:103"},"nodeType":"YulFunctionCall","src":"1513:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1504:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1563:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1538:24:103"},"nodeType":"YulFunctionCall","src":"1538:31:103"},"nodeType":"YulExpressionStatement","src":"1538:31:103"},{"nodeType":"YulAssignment","src":"1578:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1588:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1578:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1385:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1396:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1408:6:103","type":""}],"src":"1338:261:103"},{"body":{"nodeType":"YulBlock","src":"1788:844:103","statements":[{"body":{"nodeType":"YulBlock","src":"1835:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1844:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1852:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1837:6:103"},"nodeType":"YulFunctionCall","src":"1837:22:103"},"nodeType":"YulExpressionStatement","src":"1837:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1809:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1818:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1805:3:103"},"nodeType":"YulFunctionCall","src":"1805:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1830:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1801:3:103"},"nodeType":"YulFunctionCall","src":"1801:33:103"},"nodeType":"YulIf","src":"1798:2:103"},{"nodeType":"YulVariableDeclaration","src":"1870:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1896:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1883:12:103"},"nodeType":"YulFunctionCall","src":"1883:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1874:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1940:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1915:24:103"},"nodeType":"YulFunctionCall","src":"1915:31:103"},"nodeType":"YulExpressionStatement","src":"1915:31:103"},{"nodeType":"YulAssignment","src":"1955:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1965:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1955:6:103"}]},{"nodeType":"YulAssignment","src":"1979:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2006:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2017:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:103"},"nodeType":"YulFunctionCall","src":"2002:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1989:12:103"},"nodeType":"YulFunctionCall","src":"1989:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1979:6:103"}]},{"nodeType":"YulAssignment","src":"2030:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2068:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2053:3:103"},"nodeType":"YulFunctionCall","src":"2053:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2040:12:103"},"nodeType":"YulFunctionCall","src":"2040:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2030:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2081:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2123:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2108:3:103"},"nodeType":"YulFunctionCall","src":"2108:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2095:12:103"},"nodeType":"YulFunctionCall","src":"2095:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2085:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2136:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2146:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2140:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2191:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2200:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"2208:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2193:6:103"},"nodeType":"YulFunctionCall","src":"2193:22:103"},"nodeType":"YulExpressionStatement","src":"2193:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2179:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2187:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2176:2:103"},"nodeType":"YulFunctionCall","src":"2176:14:103"},"nodeType":"YulIf","src":"2173:2:103"},{"nodeType":"YulVariableDeclaration","src":"2226:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2282:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2293:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2278:3:103"},"nodeType":"YulFunctionCall","src":"2278:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2302:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2252:25:103"},"nodeType":"YulFunctionCall","src":"2252:58:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"2230:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"2240:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2319:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2329:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2319:6:103"}]},{"nodeType":"YulAssignment","src":"2346:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"2356:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2346:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2373:49:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2406:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2417:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:103"},"nodeType":"YulFunctionCall","src":"2402:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2389:12:103"},"nodeType":"YulFunctionCall","src":"2389:33:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2377:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2451:26:103","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"2460:6:103"},{"name":"value5","nodeType":"YulIdentifier","src":"2468:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2453:6:103"},"nodeType":"YulFunctionCall","src":"2453:22:103"},"nodeType":"YulExpressionStatement","src":"2453:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2437:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2447:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2434:2:103"},"nodeType":"YulFunctionCall","src":"2434:16:103"},"nodeType":"YulIf","src":"2431:2:103"},{"nodeType":"YulVariableDeclaration","src":"2486:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2542:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2553:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2538:3:103"},"nodeType":"YulFunctionCall","src":"2538:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2564:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2512:25:103"},"nodeType":"YulFunctionCall","src":"2512:60:103"},"variables":[{"name":"value5_1","nodeType":"YulTypedName","src":"2490:8:103","type":""},{"name":"value6_1","nodeType":"YulTypedName","src":"2500:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2581:18:103","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"2591:8:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2581:6:103"}]},{"nodeType":"YulAssignment","src":"2608:18:103","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"2618:8:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"2608:6:103"}]}]},"name":"abi_decode_tuple_t_address_payablet_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1706:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1717:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1729:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1737:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1745:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1753:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1761:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1769:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"1777:6:103","type":""}],"src":"1604:1028:103"},{"body":{"nodeType":"YulBlock","src":"2704:184:103","statements":[{"body":{"nodeType":"YulBlock","src":"2750:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2759:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2767:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2752:6:103"},"nodeType":"YulFunctionCall","src":"2752:22:103"},"nodeType":"YulExpressionStatement","src":"2752:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2725:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2734:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2721:3:103"},"nodeType":"YulFunctionCall","src":"2721:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2746:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2717:3:103"},"nodeType":"YulFunctionCall","src":"2717:32:103"},"nodeType":"YulIf","src":"2714:2:103"},{"nodeType":"YulVariableDeclaration","src":"2785:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2811:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2798:12:103"},"nodeType":"YulFunctionCall","src":"2798:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2789:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2852:5:103"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"2830:21:103"},"nodeType":"YulFunctionCall","src":"2830:28:103"},"nodeType":"YulExpressionStatement","src":"2830:28:103"},{"nodeType":"YulAssignment","src":"2867:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2877:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2867:6:103"}]}]},"name":"abi_decode_tuple_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2670:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2681:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2693:6:103","type":""}],"src":"2637:251:103"},{"body":{"nodeType":"YulBlock","src":"2971:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"3017:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3026:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3034:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3019:6:103"},"nodeType":"YulFunctionCall","src":"3019:22:103"},"nodeType":"YulExpressionStatement","src":"3019:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2992:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3001:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2988:3:103"},"nodeType":"YulFunctionCall","src":"2988:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3013:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2984:3:103"},"nodeType":"YulFunctionCall","src":"2984:32:103"},"nodeType":"YulIf","src":"2981:2:103"},{"nodeType":"YulVariableDeclaration","src":"3052:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3071:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3065:5:103"},"nodeType":"YulFunctionCall","src":"3065:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3056:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3112:5:103"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"3090:21:103"},"nodeType":"YulFunctionCall","src":"3090:28:103"},"nodeType":"YulExpressionStatement","src":"3090:28:103"},{"nodeType":"YulAssignment","src":"3127:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3137:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3127:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2937:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2948:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2960:6:103","type":""}],"src":"2893:255:103"},{"body":{"nodeType":"YulBlock","src":"3265:265:103","statements":[{"body":{"nodeType":"YulBlock","src":"3311:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3320:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"3328:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3313:6:103"},"nodeType":"YulFunctionCall","src":"3313:22:103"},"nodeType":"YulExpressionStatement","src":"3313:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3286:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3295:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3282:3:103"},"nodeType":"YulFunctionCall","src":"3282:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3307:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3278:3:103"},"nodeType":"YulFunctionCall","src":"3278:32:103"},"nodeType":"YulIf","src":"3275:2:103"},{"nodeType":"YulVariableDeclaration","src":"3346:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3365:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3359:5:103"},"nodeType":"YulFunctionCall","src":"3359:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3350:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3406:5:103"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"3384:21:103"},"nodeType":"YulFunctionCall","src":"3384:28:103"},"nodeType":"YulExpressionStatement","src":"3384:28:103"},{"nodeType":"YulAssignment","src":"3421:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3431:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3421:6:103"}]},{"nodeType":"YulAssignment","src":"3445:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3476:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3461:3:103"},"nodeType":"YulFunctionCall","src":"3461:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3455:5:103"},"nodeType":"YulFunctionCall","src":"3455:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3445:6:103"}]},{"nodeType":"YulAssignment","src":"3489:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3499:5:103"},"nodeType":"YulFunctionCall","src":"3499:25:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3489:6:103"}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3215:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3226:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3238:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3246:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3254:6:103","type":""}],"src":"3153:377:103"},{"body":{"nodeType":"YulBlock","src":"3605:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3651:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3660:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3668:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3653:6:103"},"nodeType":"YulFunctionCall","src":"3653:22:103"},"nodeType":"YulExpressionStatement","src":"3653:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3626:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3635:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3647:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3618:3:103"},"nodeType":"YulFunctionCall","src":"3618:32:103"},"nodeType":"YulIf","src":"3615:2:103"},{"nodeType":"YulAssignment","src":"3686:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3709:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3696:12:103"},"nodeType":"YulFunctionCall","src":"3696:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3686:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3571:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3582:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3594:6:103","type":""}],"src":"3535:190:103"},{"body":{"nodeType":"YulBlock","src":"3811:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"3857:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3866:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3874:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3859:6:103"},"nodeType":"YulFunctionCall","src":"3859:22:103"},"nodeType":"YulExpressionStatement","src":"3859:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3832:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3841:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3828:3:103"},"nodeType":"YulFunctionCall","src":"3828:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3853:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3824:3:103"},"nodeType":"YulFunctionCall","src":"3824:32:103"},"nodeType":"YulIf","src":"3821:2:103"},{"nodeType":"YulAssignment","src":"3892:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3908:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3902:5:103"},"nodeType":"YulFunctionCall","src":"3902:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3892:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3777:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3788:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3800:6:103","type":""}],"src":"3730:194:103"},{"body":{"nodeType":"YulBlock","src":"4016:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"4062:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4071:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4079:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4064:6:103"},"nodeType":"YulFunctionCall","src":"4064:22:103"},"nodeType":"YulExpressionStatement","src":"4064:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4037:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4046:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4033:3:103"},"nodeType":"YulFunctionCall","src":"4033:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4058:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4029:3:103"},"nodeType":"YulFunctionCall","src":"4029:32:103"},"nodeType":"YulIf","src":"4026:2:103"},{"nodeType":"YulAssignment","src":"4097:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4120:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4107:12:103"},"nodeType":"YulFunctionCall","src":"4107:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4097:6:103"}]},{"nodeType":"YulAssignment","src":"4139:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4177:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:103"},"nodeType":"YulFunctionCall","src":"4162:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4149:12:103"},"nodeType":"YulFunctionCall","src":"4149:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4139:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3974:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3985:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3997:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4005:6:103","type":""}],"src":"3929:258:103"},{"body":{"nodeType":"YulBlock","src":"4296:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"4342:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4351:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4359:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4344:6:103"},"nodeType":"YulFunctionCall","src":"4344:22:103"},"nodeType":"YulExpressionStatement","src":"4344:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4317:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4326:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4313:3:103"},"nodeType":"YulFunctionCall","src":"4313:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4338:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4309:3:103"},"nodeType":"YulFunctionCall","src":"4309:32:103"},"nodeType":"YulIf","src":"4306:2:103"},{"nodeType":"YulAssignment","src":"4377:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4400:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4387:12:103"},"nodeType":"YulFunctionCall","src":"4387:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4377:6:103"}]},{"nodeType":"YulAssignment","src":"4419:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4446:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4457:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4442:3:103"},"nodeType":"YulFunctionCall","src":"4442:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4429:12:103"},"nodeType":"YulFunctionCall","src":"4429:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4419:6:103"}]},{"nodeType":"YulAssignment","src":"4470:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4508:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4493:3:103"},"nodeType":"YulFunctionCall","src":"4493:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4480:12:103"},"nodeType":"YulFunctionCall","src":"4480:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4470:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4246:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4257:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4269:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4277:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4285:6:103","type":""}],"src":"4192:326:103"},{"body":{"nodeType":"YulBlock","src":"4623:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"4669:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4678:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4686:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4671:6:103"},"nodeType":"YulFunctionCall","src":"4671:22:103"},"nodeType":"YulExpressionStatement","src":"4671:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4644:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4653:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4640:3:103"},"nodeType":"YulFunctionCall","src":"4640:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4636:3:103"},"nodeType":"YulFunctionCall","src":"4636:32:103"},"nodeType":"YulIf","src":"4633:2:103"},{"nodeType":"YulVariableDeclaration","src":"4704:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4723:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4717:5:103"},"nodeType":"YulFunctionCall","src":"4717:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4708:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4766:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4775:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4783:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4768:6:103"},"nodeType":"YulFunctionCall","src":"4768:22:103"},"nodeType":"YulExpressionStatement","src":"4768:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4755:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4762:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4752:2:103"},"nodeType":"YulFunctionCall","src":"4752:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4745:6:103"},"nodeType":"YulFunctionCall","src":"4745:20:103"},"nodeType":"YulIf","src":"4742:2:103"},{"nodeType":"YulAssignment","src":"4801:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4811:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4801:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4589:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4600:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4612:6:103","type":""}],"src":"4523:299:103"},{"body":{"nodeType":"YulBlock","src":"4937:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"4983:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4992:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5000:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4985:6:103"},"nodeType":"YulFunctionCall","src":"4985:22:103"},"nodeType":"YulExpressionStatement","src":"4985:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4958:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4967:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4954:3:103"},"nodeType":"YulFunctionCall","src":"4954:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4979:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4950:3:103"},"nodeType":"YulFunctionCall","src":"4950:32:103"},"nodeType":"YulIf","src":"4947:2:103"},{"nodeType":"YulVariableDeclaration","src":"5018:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5038:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5032:5:103"},"nodeType":"YulFunctionCall","src":"5032:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5022:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5057:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5067:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5061:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5112:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5121:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5129:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5114:6:103"},"nodeType":"YulFunctionCall","src":"5114:22:103"},"nodeType":"YulExpressionStatement","src":"5114:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5100:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5108:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5097:2:103"},"nodeType":"YulFunctionCall","src":"5097:14:103"},"nodeType":"YulIf","src":"5094:2:103"},{"nodeType":"YulVariableDeclaration","src":"5147:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5161:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5172:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5157:3:103"},"nodeType":"YulFunctionCall","src":"5157:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5151:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5219:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5228:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5236:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5221:6:103"},"nodeType":"YulFunctionCall","src":"5221:22:103"},"nodeType":"YulExpressionStatement","src":"5221:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5199:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5208:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5195:3:103"},"nodeType":"YulFunctionCall","src":"5195:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"5213:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5191:3:103"},"nodeType":"YulFunctionCall","src":"5191:27:103"},"nodeType":"YulIf","src":"5188:2:103"},{"nodeType":"YulVariableDeclaration","src":"5254:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5283:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5267:15:103"},"nodeType":"YulFunctionCall","src":"5267:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5258:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5297:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5318:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5312:5:103"},"nodeType":"YulFunctionCall","src":"5312:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5301:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5369:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"5330:38:103"},"nodeType":"YulFunctionCall","src":"5330:47:103"},"nodeType":"YulExpressionStatement","src":"5330:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5393:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"5400:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5386:6:103"},"nodeType":"YulFunctionCall","src":"5386:22:103"},"nodeType":"YulExpressionStatement","src":"5386:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5428:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5435:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5424:3:103"},"nodeType":"YulFunctionCall","src":"5424:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5450:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5454:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5446:3:103"},"nodeType":"YulFunctionCall","src":"5446:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5440:5:103"},"nodeType":"YulFunctionCall","src":"5440:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5417:6:103"},"nodeType":"YulFunctionCall","src":"5417:42:103"},"nodeType":"YulExpressionStatement","src":"5417:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5479:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5486:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5475:3:103"},"nodeType":"YulFunctionCall","src":"5475:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5501:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5505:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5497:3:103"},"nodeType":"YulFunctionCall","src":"5497:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5491:5:103"},"nodeType":"YulFunctionCall","src":"5491:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5468:6:103"},"nodeType":"YulFunctionCall","src":"5468:42:103"},"nodeType":"YulExpressionStatement","src":"5468:42:103"},{"nodeType":"YulVariableDeclaration","src":"5519:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5545:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5549:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5541:3:103"},"nodeType":"YulFunctionCall","src":"5541:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5535:5:103"},"nodeType":"YulFunctionCall","src":"5535:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5523:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5582:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5591:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5599:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5584:6:103"},"nodeType":"YulFunctionCall","src":"5584:22:103"},"nodeType":"YulExpressionStatement","src":"5584:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5568:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5578:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5565:2:103"},"nodeType":"YulFunctionCall","src":"5565:16:103"},"nodeType":"YulIf","src":"5562:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5628:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5635:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5624:3:103"},"nodeType":"YulFunctionCall","src":"5624:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5672:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5676:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5668:3:103"},"nodeType":"YulFunctionCall","src":"5668:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5687:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"5640:27:103"},"nodeType":"YulFunctionCall","src":"5640:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5617:6:103"},"nodeType":"YulFunctionCall","src":"5617:79:103"},"nodeType":"YulExpressionStatement","src":"5617:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5716:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5723:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5712:3:103"},"nodeType":"YulFunctionCall","src":"5712:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5739:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5743:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5735:3:103"},"nodeType":"YulFunctionCall","src":"5735:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5729:5:103"},"nodeType":"YulFunctionCall","src":"5729:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5705:6:103"},"nodeType":"YulFunctionCall","src":"5705:44:103"},"nodeType":"YulExpressionStatement","src":"5705:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5769:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5776:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5765:3:103"},"nodeType":"YulFunctionCall","src":"5765:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5792:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5796:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5788:3:103"},"nodeType":"YulFunctionCall","src":"5788:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5782:5:103"},"nodeType":"YulFunctionCall","src":"5782:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5758:6:103"},"nodeType":"YulFunctionCall","src":"5758:44:103"},"nodeType":"YulExpressionStatement","src":"5758:44:103"},{"nodeType":"YulAssignment","src":"5811:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5821:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5811:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4903:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4914:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4926:6:103","type":""}],"src":"4827:1005:103"},{"body":{"nodeType":"YulBlock","src":"5941:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"5987:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5996:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6004:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5989:6:103"},"nodeType":"YulFunctionCall","src":"5989:22:103"},"nodeType":"YulExpressionStatement","src":"5989:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5962:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5971:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5958:3:103"},"nodeType":"YulFunctionCall","src":"5958:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5983:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5954:3:103"},"nodeType":"YulFunctionCall","src":"5954:32:103"},"nodeType":"YulIf","src":"5951:2:103"},{"nodeType":"YulVariableDeclaration","src":"6022:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6042:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6036:5:103"},"nodeType":"YulFunctionCall","src":"6036:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6026:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6061:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6071:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6065:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6116:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6125:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6133:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6118:6:103"},"nodeType":"YulFunctionCall","src":"6118:22:103"},"nodeType":"YulExpressionStatement","src":"6118:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6104:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6112:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6101:2:103"},"nodeType":"YulFunctionCall","src":"6101:14:103"},"nodeType":"YulIf","src":"6098:2:103"},{"nodeType":"YulVariableDeclaration","src":"6151:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6165:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6176:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6161:3:103"},"nodeType":"YulFunctionCall","src":"6161:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6155:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6223:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6232:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6240:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6225:6:103"},"nodeType":"YulFunctionCall","src":"6225:22:103"},"nodeType":"YulExpressionStatement","src":"6225:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6203:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6212:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6199:3:103"},"nodeType":"YulFunctionCall","src":"6199:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"6217:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6195:3:103"},"nodeType":"YulFunctionCall","src":"6195:27:103"},"nodeType":"YulIf","src":"6192:2:103"},{"nodeType":"YulVariableDeclaration","src":"6258:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6287:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6271:15:103"},"nodeType":"YulFunctionCall","src":"6271:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6262:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6301:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6322:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6316:5:103"},"nodeType":"YulFunctionCall","src":"6316:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6305:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6373:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"6334:38:103"},"nodeType":"YulFunctionCall","src":"6334:47:103"},"nodeType":"YulExpressionStatement","src":"6334:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6397:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"6404:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6390:6:103"},"nodeType":"YulFunctionCall","src":"6390:22:103"},"nodeType":"YulExpressionStatement","src":"6390:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6432:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6439:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6428:3:103"},"nodeType":"YulFunctionCall","src":"6428:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6454:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6458:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6450:3:103"},"nodeType":"YulFunctionCall","src":"6450:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6444:5:103"},"nodeType":"YulFunctionCall","src":"6444:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6421:6:103"},"nodeType":"YulFunctionCall","src":"6421:42:103"},"nodeType":"YulExpressionStatement","src":"6421:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6483:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6490:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6479:3:103"},"nodeType":"YulFunctionCall","src":"6479:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6505:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6509:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6501:3:103"},"nodeType":"YulFunctionCall","src":"6501:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6495:5:103"},"nodeType":"YulFunctionCall","src":"6495:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6472:6:103"},"nodeType":"YulFunctionCall","src":"6472:42:103"},"nodeType":"YulExpressionStatement","src":"6472:42:103"},{"nodeType":"YulVariableDeclaration","src":"6523:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6549:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6553:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6545:3:103"},"nodeType":"YulFunctionCall","src":"6545:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6539:5:103"},"nodeType":"YulFunctionCall","src":"6539:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6527:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6586:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6595:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6603:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6588:6:103"},"nodeType":"YulFunctionCall","src":"6588:22:103"},"nodeType":"YulExpressionStatement","src":"6588:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6572:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6582:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6569:2:103"},"nodeType":"YulFunctionCall","src":"6569:16:103"},"nodeType":"YulIf","src":"6566:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6632:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6639:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6628:3:103"},"nodeType":"YulFunctionCall","src":"6628:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6676:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6680:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6672:3:103"},"nodeType":"YulFunctionCall","src":"6672:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6691:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"6644:27:103"},"nodeType":"YulFunctionCall","src":"6644:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6621:6:103"},"nodeType":"YulFunctionCall","src":"6621:79:103"},"nodeType":"YulExpressionStatement","src":"6621:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6720:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6727:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6716:3:103"},"nodeType":"YulFunctionCall","src":"6716:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6743:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6747:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6739:3:103"},"nodeType":"YulFunctionCall","src":"6739:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6733:5:103"},"nodeType":"YulFunctionCall","src":"6733:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6709:6:103"},"nodeType":"YulFunctionCall","src":"6709:44:103"},"nodeType":"YulExpressionStatement","src":"6709:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6773:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6780:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6769:3:103"},"nodeType":"YulFunctionCall","src":"6769:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6796:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6800:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6792:3:103"},"nodeType":"YulFunctionCall","src":"6792:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6786:5:103"},"nodeType":"YulFunctionCall","src":"6786:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6762:6:103"},"nodeType":"YulFunctionCall","src":"6762:44:103"},"nodeType":"YulExpressionStatement","src":"6762:44:103"},{"nodeType":"YulAssignment","src":"6815:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6825:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6815:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5907:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5918:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5930:6:103","type":""}],"src":"5837:999:103"},{"body":{"nodeType":"YulBlock","src":"6948:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"6994:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7003:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7011:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6996:6:103"},"nodeType":"YulFunctionCall","src":"6996:22:103"},"nodeType":"YulExpressionStatement","src":"6996:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6969:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6978:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6965:3:103"},"nodeType":"YulFunctionCall","src":"6965:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6990:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6961:3:103"},"nodeType":"YulFunctionCall","src":"6961:32:103"},"nodeType":"YulIf","src":"6958:2:103"},{"nodeType":"YulVariableDeclaration","src":"7029:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7049:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7043:5:103"},"nodeType":"YulFunctionCall","src":"7043:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7033:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7068:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7078:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7072:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7123:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7132:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7140:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7125:6:103"},"nodeType":"YulFunctionCall","src":"7125:22:103"},"nodeType":"YulExpressionStatement","src":"7125:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7111:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7119:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7108:2:103"},"nodeType":"YulFunctionCall","src":"7108:14:103"},"nodeType":"YulIf","src":"7105:2:103"},{"nodeType":"YulVariableDeclaration","src":"7158:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7172:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"7183:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7168:3:103"},"nodeType":"YulFunctionCall","src":"7168:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7162:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7230:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7239:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7247:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7232:6:103"},"nodeType":"YulFunctionCall","src":"7232:22:103"},"nodeType":"YulExpressionStatement","src":"7232:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7210:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"7219:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7206:3:103"},"nodeType":"YulFunctionCall","src":"7206:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"7224:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7202:3:103"},"nodeType":"YulFunctionCall","src":"7202:27:103"},"nodeType":"YulIf","src":"7199:2:103"},{"nodeType":"YulVariableDeclaration","src":"7265:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7294:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"7278:15:103"},"nodeType":"YulFunctionCall","src":"7278:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7269:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7308:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7329:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7323:5:103"},"nodeType":"YulFunctionCall","src":"7323:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7312:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7366:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7341:24:103"},"nodeType":"YulFunctionCall","src":"7341:33:103"},"nodeType":"YulExpressionStatement","src":"7341:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7390:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"7397:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7383:6:103"},"nodeType":"YulFunctionCall","src":"7383:22:103"},"nodeType":"YulExpressionStatement","src":"7383:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7425:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7432:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7421:3:103"},"nodeType":"YulFunctionCall","src":"7421:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7447:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7451:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7443:3:103"},"nodeType":"YulFunctionCall","src":"7443:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7437:5:103"},"nodeType":"YulFunctionCall","src":"7437:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7414:6:103"},"nodeType":"YulFunctionCall","src":"7414:42:103"},"nodeType":"YulExpressionStatement","src":"7414:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7476:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7483:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7472:3:103"},"nodeType":"YulFunctionCall","src":"7472:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7535:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7539:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7531:3:103"},"nodeType":"YulFunctionCall","src":"7531:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"7488:42:103"},"nodeType":"YulFunctionCall","src":"7488:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7465:6:103"},"nodeType":"YulFunctionCall","src":"7465:79:103"},"nodeType":"YulExpressionStatement","src":"7465:79:103"},{"nodeType":"YulVariableDeclaration","src":"7553:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7579:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7583:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7575:3:103"},"nodeType":"YulFunctionCall","src":"7575:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7569:5:103"},"nodeType":"YulFunctionCall","src":"7569:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7557:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7616:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7625:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7633:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7618:6:103"},"nodeType":"YulFunctionCall","src":"7618:22:103"},"nodeType":"YulExpressionStatement","src":"7618:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7602:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7612:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7599:2:103"},"nodeType":"YulFunctionCall","src":"7599:16:103"},"nodeType":"YulIf","src":"7596:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7662:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7669:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7658:3:103"},"nodeType":"YulFunctionCall","src":"7658:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7706:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7710:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7702:3:103"},"nodeType":"YulFunctionCall","src":"7702:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7721:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"7674:27:103"},"nodeType":"YulFunctionCall","src":"7674:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7651:6:103"},"nodeType":"YulFunctionCall","src":"7651:79:103"},"nodeType":"YulExpressionStatement","src":"7651:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7750:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7757:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7746:3:103"},"nodeType":"YulFunctionCall","src":"7746:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7773:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7777:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7769:3:103"},"nodeType":"YulFunctionCall","src":"7769:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7763:5:103"},"nodeType":"YulFunctionCall","src":"7763:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7739:6:103"},"nodeType":"YulFunctionCall","src":"7739:44:103"},"nodeType":"YulExpressionStatement","src":"7739:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7803:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7810:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7799:3:103"},"nodeType":"YulFunctionCall","src":"7799:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7826:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7830:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7822:3:103"},"nodeType":"YulFunctionCall","src":"7822:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7816:5:103"},"nodeType":"YulFunctionCall","src":"7816:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7792:6:103"},"nodeType":"YulFunctionCall","src":"7792:44:103"},"nodeType":"YulExpressionStatement","src":"7792:44:103"},{"nodeType":"YulAssignment","src":"7845:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7855:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7845:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6914:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6925:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6937:6:103","type":""}],"src":"6841:1025:103"},{"body":{"nodeType":"YulBlock","src":"7976:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"7986:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7996:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7990:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8044:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8053:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8061:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8046:6:103"},"nodeType":"YulFunctionCall","src":"8046:22:103"},"nodeType":"YulExpressionStatement","src":"8046:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8019:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8028:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8015:3:103"},"nodeType":"YulFunctionCall","src":"8015:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8040:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8011:3:103"},"nodeType":"YulFunctionCall","src":"8011:32:103"},"nodeType":"YulIf","src":"8008:2:103"},{"nodeType":"YulVariableDeclaration","src":"8079:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8108:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8092:15:103"},"nodeType":"YulFunctionCall","src":"8092:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8083:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8127:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8177:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"8134:42:103"},"nodeType":"YulFunctionCall","src":"8134:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8120:6:103"},"nodeType":"YulFunctionCall","src":"8120:68:103"},"nodeType":"YulExpressionStatement","src":"8120:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8208:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8215:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8204:3:103"},"nodeType":"YulFunctionCall","src":"8204:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8230:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8241:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8226:3:103"},"nodeType":"YulFunctionCall","src":"8226:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8220:5:103"},"nodeType":"YulFunctionCall","src":"8220:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8197:6:103"},"nodeType":"YulFunctionCall","src":"8197:49:103"},"nodeType":"YulExpressionStatement","src":"8197:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8266:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8273:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8262:3:103"},"nodeType":"YulFunctionCall","src":"8262:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8288:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8299:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8284:3:103"},"nodeType":"YulFunctionCall","src":"8284:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8278:5:103"},"nodeType":"YulFunctionCall","src":"8278:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8255:6:103"},"nodeType":"YulFunctionCall","src":"8255:49:103"},"nodeType":"YulExpressionStatement","src":"8255:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8324:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8331:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8320:3:103"},"nodeType":"YulFunctionCall","src":"8320:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8346:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8357:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8342:3:103"},"nodeType":"YulFunctionCall","src":"8342:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8336:5:103"},"nodeType":"YulFunctionCall","src":"8336:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8313:6:103"},"nodeType":"YulFunctionCall","src":"8313:49:103"},"nodeType":"YulExpressionStatement","src":"8313:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8382:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8389:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8378:3:103"},"nodeType":"YulFunctionCall","src":"8378:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8405:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8416:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8401:3:103"},"nodeType":"YulFunctionCall","src":"8401:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8395:5:103"},"nodeType":"YulFunctionCall","src":"8395:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8371:6:103"},"nodeType":"YulFunctionCall","src":"8371:51:103"},"nodeType":"YulExpressionStatement","src":"8371:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8442:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8449:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8438:3:103"},"nodeType":"YulFunctionCall","src":"8438:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8476:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8461:3:103"},"nodeType":"YulFunctionCall","src":"8461:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8455:5:103"},"nodeType":"YulFunctionCall","src":"8455:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8431:6:103"},"nodeType":"YulFunctionCall","src":"8431:51:103"},"nodeType":"YulExpressionStatement","src":"8431:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8502:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8509:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8498:3:103"},"nodeType":"YulFunctionCall","src":"8498:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8536:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8521:3:103"},"nodeType":"YulFunctionCall","src":"8521:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8515:5:103"},"nodeType":"YulFunctionCall","src":"8515:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8491:6:103"},"nodeType":"YulFunctionCall","src":"8491:51:103"},"nodeType":"YulExpressionStatement","src":"8491:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8562:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8569:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8558:3:103"},"nodeType":"YulFunctionCall","src":"8558:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8585:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8596:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8581:3:103"},"nodeType":"YulFunctionCall","src":"8581:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8575:5:103"},"nodeType":"YulFunctionCall","src":"8575:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8551:6:103"},"nodeType":"YulFunctionCall","src":"8551:51:103"},"nodeType":"YulExpressionStatement","src":"8551:51:103"},{"nodeType":"YulVariableDeclaration","src":"8611:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8621:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8615:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8644:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"8651:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8640:3:103"},"nodeType":"YulFunctionCall","src":"8640:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8666:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"8677:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8662:3:103"},"nodeType":"YulFunctionCall","src":"8662:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8656:5:103"},"nodeType":"YulFunctionCall","src":"8656:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8633:6:103"},"nodeType":"YulFunctionCall","src":"8633:49:103"},"nodeType":"YulExpressionStatement","src":"8633:49:103"},{"nodeType":"YulAssignment","src":"8691:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"8701:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8691:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7942:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7953:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7965:6:103","type":""}],"src":"7871:841:103"},{"body":{"nodeType":"YulBlock","src":"8787:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"8833:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8842:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8850:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8835:6:103"},"nodeType":"YulFunctionCall","src":"8835:22:103"},"nodeType":"YulExpressionStatement","src":"8835:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8808:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8817:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8804:3:103"},"nodeType":"YulFunctionCall","src":"8804:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8829:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8800:3:103"},"nodeType":"YulFunctionCall","src":"8800:32:103"},"nodeType":"YulIf","src":"8797:2:103"},{"nodeType":"YulAssignment","src":"8868:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8891:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8878:12:103"},"nodeType":"YulFunctionCall","src":"8878:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8868:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8753:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8764:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8776:6:103","type":""}],"src":"8717:190:103"},{"body":{"nodeType":"YulBlock","src":"8993:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"9039:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9048:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9056:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9041:6:103"},"nodeType":"YulFunctionCall","src":"9041:22:103"},"nodeType":"YulExpressionStatement","src":"9041:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9014:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9023:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9010:3:103"},"nodeType":"YulFunctionCall","src":"9010:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9035:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9006:3:103"},"nodeType":"YulFunctionCall","src":"9006:32:103"},"nodeType":"YulIf","src":"9003:2:103"},{"nodeType":"YulAssignment","src":"9074:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9090:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9084:5:103"},"nodeType":"YulFunctionCall","src":"9084:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9074:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8959:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8970:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8982:6:103","type":""}],"src":"8912:194:103"},{"body":{"nodeType":"YulBlock","src":"9234:442:103","statements":[{"body":{"nodeType":"YulBlock","src":"9280:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9289:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9297:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9282:6:103"},"nodeType":"YulFunctionCall","src":"9282:22:103"},"nodeType":"YulExpressionStatement","src":"9282:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9255:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9264:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9251:3:103"},"nodeType":"YulFunctionCall","src":"9251:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9276:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9247:3:103"},"nodeType":"YulFunctionCall","src":"9247:32:103"},"nodeType":"YulIf","src":"9244:2:103"},{"nodeType":"YulAssignment","src":"9315:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9338:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9325:12:103"},"nodeType":"YulFunctionCall","src":"9325:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9315:6:103"}]},{"nodeType":"YulAssignment","src":"9357:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9384:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9395:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9380:3:103"},"nodeType":"YulFunctionCall","src":"9380:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9367:12:103"},"nodeType":"YulFunctionCall","src":"9367:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9357:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"9408:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9439:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9450:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9435:3:103"},"nodeType":"YulFunctionCall","src":"9435:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9422:12:103"},"nodeType":"YulFunctionCall","src":"9422:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9412:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9497:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9506:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9514:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9499:6:103"},"nodeType":"YulFunctionCall","src":"9499:22:103"},"nodeType":"YulExpressionStatement","src":"9499:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9469:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9477:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9466:2:103"},"nodeType":"YulFunctionCall","src":"9466:30:103"},"nodeType":"YulIf","src":"9463:2:103"},{"nodeType":"YulVariableDeclaration","src":"9532:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9588:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"9599:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9584:3:103"},"nodeType":"YulFunctionCall","src":"9584:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9608:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9558:25:103"},"nodeType":"YulFunctionCall","src":"9558:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"9536:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"9546:8:103","type":""}]},{"nodeType":"YulAssignment","src":"9625:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"9635:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9625:6:103"}]},{"nodeType":"YulAssignment","src":"9652:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9662:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9652:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9176:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9187:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9199:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9207:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9215:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9223:6:103","type":""}],"src":"9111:565:103"},{"body":{"nodeType":"YulBlock","src":"9779:157:103","statements":[{"body":{"nodeType":"YulBlock","src":"9825:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9834:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9842:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9827:6:103"},"nodeType":"YulFunctionCall","src":"9827:22:103"},"nodeType":"YulExpressionStatement","src":"9827:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9800:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9809:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9796:3:103"},"nodeType":"YulFunctionCall","src":"9796:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9821:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9792:3:103"},"nodeType":"YulFunctionCall","src":"9792:32:103"},"nodeType":"YulIf","src":"9789:2:103"},{"nodeType":"YulAssignment","src":"9860:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9876:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9870:5:103"},"nodeType":"YulFunctionCall","src":"9870:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9860:6:103"}]},{"nodeType":"YulAssignment","src":"9895:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9926:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9911:3:103"},"nodeType":"YulFunctionCall","src":"9911:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9905:5:103"},"nodeType":"YulFunctionCall","src":"9905:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9895:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9737:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9748:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9760:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9768:6:103","type":""}],"src":"9681:255:103"},{"body":{"nodeType":"YulBlock","src":"10100:725:103","statements":[{"body":{"nodeType":"YulBlock","src":"10147:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10156:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10164:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10149:6:103"},"nodeType":"YulFunctionCall","src":"10149:22:103"},"nodeType":"YulExpressionStatement","src":"10149:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10121:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"10130:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10117:3:103"},"nodeType":"YulFunctionCall","src":"10117:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"10142:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10113:3:103"},"nodeType":"YulFunctionCall","src":"10113:33:103"},"nodeType":"YulIf","src":"10110:2:103"},{"nodeType":"YulAssignment","src":"10182:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10205:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10192:12:103"},"nodeType":"YulFunctionCall","src":"10192:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10182:6:103"}]},{"nodeType":"YulAssignment","src":"10224:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10262:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10247:3:103"},"nodeType":"YulFunctionCall","src":"10247:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10234:12:103"},"nodeType":"YulFunctionCall","src":"10234:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10224:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"10275:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10306:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10317:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10302:3:103"},"nodeType":"YulFunctionCall","src":"10302:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10289:12:103"},"nodeType":"YulFunctionCall","src":"10289:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10279:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10330:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"10340:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10334:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10385:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10394:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10402:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10387:6:103"},"nodeType":"YulFunctionCall","src":"10387:22:103"},"nodeType":"YulExpressionStatement","src":"10387:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10373:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10381:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10370:2:103"},"nodeType":"YulFunctionCall","src":"10370:14:103"},"nodeType":"YulIf","src":"10367:2:103"},{"nodeType":"YulVariableDeclaration","src":"10420:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10476:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"10487:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10472:3:103"},"nodeType":"YulFunctionCall","src":"10472:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10496:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"10446:25:103"},"nodeType":"YulFunctionCall","src":"10446:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"10424:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"10434:8:103","type":""}]},{"nodeType":"YulAssignment","src":"10513:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"10523:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10513:6:103"}]},{"nodeType":"YulAssignment","src":"10540:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"10550:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"10540:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"10567:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10600:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10611:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10596:3:103"},"nodeType":"YulFunctionCall","src":"10596:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10583:12:103"},"nodeType":"YulFunctionCall","src":"10583:32:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"10571:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10644:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"10653:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"10661:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10646:6:103"},"nodeType":"YulFunctionCall","src":"10646:22:103"},"nodeType":"YulExpressionStatement","src":"10646:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"10630:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10640:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10627:2:103"},"nodeType":"YulFunctionCall","src":"10627:16:103"},"nodeType":"YulIf","src":"10624:2:103"},{"nodeType":"YulVariableDeclaration","src":"10679:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10735:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"10746:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10731:3:103"},"nodeType":"YulFunctionCall","src":"10731:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10757:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"10705:25:103"},"nodeType":"YulFunctionCall","src":"10705:60:103"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"10683:8:103","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"10693:8:103","type":""}]},{"nodeType":"YulAssignment","src":"10774:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"10784:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"10774:6:103"}]},{"nodeType":"YulAssignment","src":"10801:18:103","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"10811:8:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"10801:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10026:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10037:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10049:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10057:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10065:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10073:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10081:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10089:6:103","type":""}],"src":"9941:884:103"},{"body":{"nodeType":"YulBlock","src":"10879:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"10889:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10909:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10903:5:103"},"nodeType":"YulFunctionCall","src":"10903:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10893:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10931:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"10936:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10924:6:103"},"nodeType":"YulFunctionCall","src":"10924:19:103"},"nodeType":"YulExpressionStatement","src":"10924:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10978:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10985:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10974:3:103"},"nodeType":"YulFunctionCall","src":"10974:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10996:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"11001:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10992:3:103"},"nodeType":"YulFunctionCall","src":"10992:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"11008:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"10952:21:103"},"nodeType":"YulFunctionCall","src":"10952:63:103"},"nodeType":"YulExpressionStatement","src":"10952:63:103"},{"nodeType":"YulAssignment","src":"11024:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11039:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11052:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"11060:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11048:3:103"},"nodeType":"YulFunctionCall","src":"11048:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11069:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11065:3:103"},"nodeType":"YulFunctionCall","src":"11065:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11044:3:103"},"nodeType":"YulFunctionCall","src":"11044:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11035:3:103"},"nodeType":"YulFunctionCall","src":"11035:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"11076:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11031:3:103"},"nodeType":"YulFunctionCall","src":"11031:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11024:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10856:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10863:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10871:3:103","type":""}],"src":"10830:257:103"},{"body":{"nodeType":"YulBlock","src":"11193:102:103","statements":[{"nodeType":"YulAssignment","src":"11203:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11215:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11226:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11211:3:103"},"nodeType":"YulFunctionCall","src":"11211:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11203:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11245:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11260:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11276:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11281:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11272:3:103"},"nodeType":"YulFunctionCall","src":"11272:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"11285:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11268:3:103"},"nodeType":"YulFunctionCall","src":"11268:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11256:3:103"},"nodeType":"YulFunctionCall","src":"11256:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11238:6:103"},"nodeType":"YulFunctionCall","src":"11238:51:103"},"nodeType":"YulExpressionStatement","src":"11238:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11162:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11173:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11184:4:103","type":""}],"src":"11092:203:103"},{"body":{"nodeType":"YulBlock","src":"11549:370:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11566:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11581:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11597:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11602:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11593:3:103"},"nodeType":"YulFunctionCall","src":"11593:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"11606:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11589:3:103"},"nodeType":"YulFunctionCall","src":"11589:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11577:3:103"},"nodeType":"YulFunctionCall","src":"11577:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11559:6:103"},"nodeType":"YulFunctionCall","src":"11559:51:103"},"nodeType":"YulExpressionStatement","src":"11559:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11630:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11641:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11626:3:103"},"nodeType":"YulFunctionCall","src":"11626:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11646:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11619:6:103"},"nodeType":"YulFunctionCall","src":"11619:34:103"},"nodeType":"YulExpressionStatement","src":"11619:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11673:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11684:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11669:3:103"},"nodeType":"YulFunctionCall","src":"11669:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"11689:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11662:6:103"},"nodeType":"YulFunctionCall","src":"11662:34:103"},"nodeType":"YulExpressionStatement","src":"11662:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11716:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11727:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11712:3:103"},"nodeType":"YulFunctionCall","src":"11712:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11732:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11705:6:103"},"nodeType":"YulFunctionCall","src":"11705:31:103"},"nodeType":"YulExpressionStatement","src":"11705:31:103"},{"nodeType":"YulVariableDeclaration","src":"11745:59:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"11776:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11788:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11799:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11784:3:103"},"nodeType":"YulFunctionCall","src":"11784:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11759:16:103"},"nodeType":"YulFunctionCall","src":"11759:45:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"11749:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11824:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11835:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11820:3:103"},"nodeType":"YulFunctionCall","src":"11820:19:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"11845:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11853:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11841:3:103"},"nodeType":"YulFunctionCall","src":"11841:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11813:6:103"},"nodeType":"YulFunctionCall","src":"11813:51:103"},"nodeType":"YulExpressionStatement","src":"11813:51:103"},{"nodeType":"YulAssignment","src":"11873:40:103","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"11898:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"11906:6:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11881:16:103"},"nodeType":"YulFunctionCall","src":"11881:32:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11873:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11486:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"11497:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11505:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11513:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11521:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11529:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11540:4:103","type":""}],"src":"11300:619:103"},{"body":{"nodeType":"YulBlock","src":"12019:92:103","statements":[{"nodeType":"YulAssignment","src":"12029:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12041:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12052:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12037:3:103"},"nodeType":"YulFunctionCall","src":"12037:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12029:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12071:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12096:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12089:6:103"},"nodeType":"YulFunctionCall","src":"12089:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12082:6:103"},"nodeType":"YulFunctionCall","src":"12082:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12064:6:103"},"nodeType":"YulFunctionCall","src":"12064:41:103"},"nodeType":"YulExpressionStatement","src":"12064:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11988:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11999:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12010:4:103","type":""}],"src":"11924:187:103"},{"body":{"nodeType":"YulBlock","src":"12267:178:103","statements":[{"nodeType":"YulAssignment","src":"12277:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12289:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12300:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12285:3:103"},"nodeType":"YulFunctionCall","src":"12285:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12277:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12319:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12344:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12337:6:103"},"nodeType":"YulFunctionCall","src":"12337:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12330:6:103"},"nodeType":"YulFunctionCall","src":"12330:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12312:6:103"},"nodeType":"YulFunctionCall","src":"12312:41:103"},"nodeType":"YulExpressionStatement","src":"12312:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12373:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12384:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12369:3:103"},"nodeType":"YulFunctionCall","src":"12369:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"12389:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12362:6:103"},"nodeType":"YulFunctionCall","src":"12362:34:103"},"nodeType":"YulExpressionStatement","src":"12362:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12427:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12412:3:103"},"nodeType":"YulFunctionCall","src":"12412:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"12432:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12405:6:103"},"nodeType":"YulFunctionCall","src":"12405:34:103"},"nodeType":"YulExpressionStatement","src":"12405:34:103"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12220:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12231:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12239:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12247:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12258:4:103","type":""}],"src":"12116:329:103"},{"body":{"nodeType":"YulBlock","src":"12551:76:103","statements":[{"nodeType":"YulAssignment","src":"12561:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12584:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12569:3:103"},"nodeType":"YulFunctionCall","src":"12569:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12561:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12603:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12614:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12596:6:103"},"nodeType":"YulFunctionCall","src":"12596:25:103"},"nodeType":"YulExpressionStatement","src":"12596:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12520:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12531:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12542:4:103","type":""}],"src":"12450:177:103"},{"body":{"nodeType":"YulBlock","src":"12883:370:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12900:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12911:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12893:6:103"},"nodeType":"YulFunctionCall","src":"12893:25:103"},"nodeType":"YulExpressionStatement","src":"12893:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12938:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12949:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12934:3:103"},"nodeType":"YulFunctionCall","src":"12934:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12954:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12927:6:103"},"nodeType":"YulFunctionCall","src":"12927:31:103"},"nodeType":"YulExpressionStatement","src":"12927:31:103"},{"nodeType":"YulVariableDeclaration","src":"12967:59:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12998:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13010:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13021:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13006:3:103"},"nodeType":"YulFunctionCall","src":"13006:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"12981:16:103"},"nodeType":"YulFunctionCall","src":"12981:45:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"12971:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13046:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13057:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13042:3:103"},"nodeType":"YulFunctionCall","src":"13042:18:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"13066:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"13074:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13062:3:103"},"nodeType":"YulFunctionCall","src":"13062:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13035:6:103"},"nodeType":"YulFunctionCall","src":"13035:50:103"},"nodeType":"YulExpressionStatement","src":"13035:50:103"},{"nodeType":"YulAssignment","src":"13094:40:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13119:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"13127:6:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"13102:16:103"},"nodeType":"YulFunctionCall","src":"13102:32:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13094:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13154:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13165:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13150:3:103"},"nodeType":"YulFunctionCall","src":"13150:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"13174:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13190:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13195:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13186:3:103"},"nodeType":"YulFunctionCall","src":"13186:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13199:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13182:3:103"},"nodeType":"YulFunctionCall","src":"13182:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13170:3:103"},"nodeType":"YulFunctionCall","src":"13170:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13143:6:103"},"nodeType":"YulFunctionCall","src":"13143:60:103"},"nodeType":"YulExpressionStatement","src":"13143:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13223:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13234:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13219:3:103"},"nodeType":"YulFunctionCall","src":"13219:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"13240:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13212:6:103"},"nodeType":"YulFunctionCall","src":"13212:35:103"},"nodeType":"YulExpressionStatement","src":"13212:35:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12820:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"12831:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12839:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12847:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12855:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12863:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12874:4:103","type":""}],"src":"12632:621:103"},{"body":{"nodeType":"YulBlock","src":"13387:119:103","statements":[{"nodeType":"YulAssignment","src":"13397:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13409:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13420:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13405:3:103"},"nodeType":"YulFunctionCall","src":"13405:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13397:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13439:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13450:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13432:6:103"},"nodeType":"YulFunctionCall","src":"13432:25:103"},"nodeType":"YulExpressionStatement","src":"13432:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13477:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13488:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13473:3:103"},"nodeType":"YulFunctionCall","src":"13473:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13493:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13466:6:103"},"nodeType":"YulFunctionCall","src":"13466:34:103"},"nodeType":"YulExpressionStatement","src":"13466:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13348:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13359:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13367:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13378:4:103","type":""}],"src":"13258:248:103"},{"body":{"nodeType":"YulBlock","src":"13686:184:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13703:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13714:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13696:6:103"},"nodeType":"YulFunctionCall","src":"13696:25:103"},"nodeType":"YulExpressionStatement","src":"13696:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13741:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13752:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13737:3:103"},"nodeType":"YulFunctionCall","src":"13737:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13757:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13730:6:103"},"nodeType":"YulFunctionCall","src":"13730:34:103"},"nodeType":"YulExpressionStatement","src":"13730:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13784:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13795:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13780:3:103"},"nodeType":"YulFunctionCall","src":"13780:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13800:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13773:6:103"},"nodeType":"YulFunctionCall","src":"13773:30:103"},"nodeType":"YulExpressionStatement","src":"13773:30:103"},{"nodeType":"YulAssignment","src":"13812:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13837:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13849:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13860:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13845:3:103"},"nodeType":"YulFunctionCall","src":"13845:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"13820:16:103"},"nodeType":"YulFunctionCall","src":"13820:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13812:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13639:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13650:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13658:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13666:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13677:4:103","type":""}],"src":"13511:359:103"},{"body":{"nodeType":"YulBlock","src":"14032:162:103","statements":[{"nodeType":"YulAssignment","src":"14042:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14054:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14065:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14050:3:103"},"nodeType":"YulFunctionCall","src":"14050:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14042:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14084:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14095:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14077:6:103"},"nodeType":"YulFunctionCall","src":"14077:25:103"},"nodeType":"YulExpressionStatement","src":"14077:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14133:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14118:3:103"},"nodeType":"YulFunctionCall","src":"14118:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14138:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14111:6:103"},"nodeType":"YulFunctionCall","src":"14111:34:103"},"nodeType":"YulExpressionStatement","src":"14111:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14165:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14176:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14161:3:103"},"nodeType":"YulFunctionCall","src":"14161:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"14181:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14154:6:103"},"nodeType":"YulFunctionCall","src":"14154:34:103"},"nodeType":"YulExpressionStatement","src":"14154:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13985:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13996:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14004:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14012:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14023:4:103","type":""}],"src":"13875:319:103"},{"body":{"nodeType":"YulBlock","src":"14402:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14419:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14430:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14412:6:103"},"nodeType":"YulFunctionCall","src":"14412:25:103"},"nodeType":"YulExpressionStatement","src":"14412:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14457:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14468:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14453:3:103"},"nodeType":"YulFunctionCall","src":"14453:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14473:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14446:6:103"},"nodeType":"YulFunctionCall","src":"14446:34:103"},"nodeType":"YulExpressionStatement","src":"14446:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14500:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14511:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14496:3:103"},"nodeType":"YulFunctionCall","src":"14496:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"14516:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14489:6:103"},"nodeType":"YulFunctionCall","src":"14489:34:103"},"nodeType":"YulExpressionStatement","src":"14489:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14543:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14554:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14539:3:103"},"nodeType":"YulFunctionCall","src":"14539:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14559:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14532:6:103"},"nodeType":"YulFunctionCall","src":"14532:31:103"},"nodeType":"YulExpressionStatement","src":"14532:31:103"},{"nodeType":"YulAssignment","src":"14572:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"14597:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14620:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14605:3:103"},"nodeType":"YulFunctionCall","src":"14605:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"14580:16:103"},"nodeType":"YulFunctionCall","src":"14580:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14572:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14347:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14358:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14366:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14374:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14382:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14393:4:103","type":""}],"src":"14199:432:103"},{"body":{"nodeType":"YulBlock","src":"14755:102:103","statements":[{"nodeType":"YulAssignment","src":"14765:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14777:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14788:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14773:3:103"},"nodeType":"YulFunctionCall","src":"14773:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14765:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14807:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14822:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14838:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14843:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14834:3:103"},"nodeType":"YulFunctionCall","src":"14834:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14847:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14830:3:103"},"nodeType":"YulFunctionCall","src":"14830:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14818:3:103"},"nodeType":"YulFunctionCall","src":"14818:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14800:6:103"},"nodeType":"YulFunctionCall","src":"14800:51:103"},"nodeType":"YulExpressionStatement","src":"14800:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14724:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14735:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14746:4:103","type":""}],"src":"14636:221:103"},{"body":{"nodeType":"YulBlock","src":"14980:132:103","statements":[{"nodeType":"YulAssignment","src":"14990:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15002:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15013:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14998:3:103"},"nodeType":"YulFunctionCall","src":"14998:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14990:4:103"}]},{"body":{"nodeType":"YulBlock","src":"15050:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"15052:16:103"},"nodeType":"YulFunctionCall","src":"15052:18:103"},"nodeType":"YulExpressionStatement","src":"15052:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15038:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15046:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15035:2:103"},"nodeType":"YulFunctionCall","src":"15035:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15028:6:103"},"nodeType":"YulFunctionCall","src":"15028:21:103"},"nodeType":"YulIf","src":"15025:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15088:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15099:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15081:6:103"},"nodeType":"YulFunctionCall","src":"15081:25:103"},"nodeType":"YulExpressionStatement","src":"15081:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14949:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14960:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14971:4:103","type":""}],"src":"14862:250:103"},{"body":{"nodeType":"YulBlock","src":"15234:132:103","statements":[{"nodeType":"YulAssignment","src":"15244:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15256:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15267:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15252:3:103"},"nodeType":"YulFunctionCall","src":"15252:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15244:4:103"}]},{"body":{"nodeType":"YulBlock","src":"15304:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"15306:16:103"},"nodeType":"YulFunctionCall","src":"15306:18:103"},"nodeType":"YulExpressionStatement","src":"15306:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15292:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15300:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15289:2:103"},"nodeType":"YulFunctionCall","src":"15289:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15282:6:103"},"nodeType":"YulFunctionCall","src":"15282:21:103"},"nodeType":"YulIf","src":"15279:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15342:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15353:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15335:6:103"},"nodeType":"YulFunctionCall","src":"15335:25:103"},"nodeType":"YulExpressionStatement","src":"15335:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15203:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15214:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15225:4:103","type":""}],"src":"15117:249:103"},{"body":{"nodeType":"YulBlock","src":"15478:87:103","statements":[{"nodeType":"YulAssignment","src":"15488:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15500:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15511:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15496:3:103"},"nodeType":"YulFunctionCall","src":"15496:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15488:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15530:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15545:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15553:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15541:3:103"},"nodeType":"YulFunctionCall","src":"15541:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15523:6:103"},"nodeType":"YulFunctionCall","src":"15523:36:103"},"nodeType":"YulExpressionStatement","src":"15523:36:103"}]},"name":"abi_encode_tuple_t_rational_0_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15447:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15458:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15469:4:103","type":""}],"src":"15371:194:103"},{"body":{"nodeType":"YulBlock","src":"15691:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15708:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15719:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15701:6:103"},"nodeType":"YulFunctionCall","src":"15701:21:103"},"nodeType":"YulExpressionStatement","src":"15701:21:103"},{"nodeType":"YulAssignment","src":"15731:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15756:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15779:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15764:3:103"},"nodeType":"YulFunctionCall","src":"15764:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"15739:16:103"},"nodeType":"YulFunctionCall","src":"15739:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15731:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15660:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15671:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15682:4:103","type":""}],"src":"15570:219:103"},{"body":{"nodeType":"YulBlock","src":"15968:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15996:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15978:6:103"},"nodeType":"YulFunctionCall","src":"15978:21:103"},"nodeType":"YulExpressionStatement","src":"15978:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16030:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16015:3:103"},"nodeType":"YulFunctionCall","src":"16015:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16035:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16008:6:103"},"nodeType":"YulFunctionCall","src":"16008:30:103"},"nodeType":"YulExpressionStatement","src":"16008:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16058:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16069:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16054:3:103"},"nodeType":"YulFunctionCall","src":"16054:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16074:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16047:6:103"},"nodeType":"YulFunctionCall","src":"16047:57:103"},"nodeType":"YulExpressionStatement","src":"16047:57:103"},{"nodeType":"YulAssignment","src":"16113:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16125:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16136:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16121:3:103"},"nodeType":"YulFunctionCall","src":"16121:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16113:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15945:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15959:4:103","type":""}],"src":"15794:351:103"},{"body":{"nodeType":"YulBlock","src":"16324:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16341:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16352:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16334:6:103"},"nodeType":"YulFunctionCall","src":"16334:21:103"},"nodeType":"YulExpressionStatement","src":"16334:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16375:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16386:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16371:3:103"},"nodeType":"YulFunctionCall","src":"16371:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16391:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16364:6:103"},"nodeType":"YulFunctionCall","src":"16364:30:103"},"nodeType":"YulExpressionStatement","src":"16364:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16414:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16425:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16410:3:103"},"nodeType":"YulFunctionCall","src":"16410:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16430:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16403:6:103"},"nodeType":"YulFunctionCall","src":"16403:62:103"},"nodeType":"YulExpressionStatement","src":"16403:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16485:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16496:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16481:3:103"},"nodeType":"YulFunctionCall","src":"16481:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16501:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16474:6:103"},"nodeType":"YulFunctionCall","src":"16474:36:103"},"nodeType":"YulExpressionStatement","src":"16474:36:103"},{"nodeType":"YulAssignment","src":"16519:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16531:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16542:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16527:3:103"},"nodeType":"YulFunctionCall","src":"16527:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16519:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16301:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16315:4:103","type":""}],"src":"16150:402:103"},{"body":{"nodeType":"YulBlock","src":"16731:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16759:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16741:6:103"},"nodeType":"YulFunctionCall","src":"16741:21:103"},"nodeType":"YulExpressionStatement","src":"16741:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16782:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16793:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16778:3:103"},"nodeType":"YulFunctionCall","src":"16778:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16798:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16771:6:103"},"nodeType":"YulFunctionCall","src":"16771:30:103"},"nodeType":"YulExpressionStatement","src":"16771:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16821:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16832:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16817:3:103"},"nodeType":"YulFunctionCall","src":"16817:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16837:29:103","type":"","value":"ERROR:PRD-003:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16810:6:103"},"nodeType":"YulFunctionCall","src":"16810:57:103"},"nodeType":"YulExpressionStatement","src":"16810:57:103"},{"nodeType":"YulAssignment","src":"16876:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16888:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16899:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16884:3:103"},"nodeType":"YulFunctionCall","src":"16884:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16876:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16708:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16722:4:103","type":""}],"src":"16557:351:103"},{"body":{"nodeType":"YulBlock","src":"17087:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17104:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17115:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17097:6:103"},"nodeType":"YulFunctionCall","src":"17097:21:103"},"nodeType":"YulExpressionStatement","src":"17097:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17138:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17149:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17134:3:103"},"nodeType":"YulFunctionCall","src":"17134:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17154:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17127:6:103"},"nodeType":"YulFunctionCall","src":"17127:30:103"},"nodeType":"YulExpressionStatement","src":"17127:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17177:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17188:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17173:3:103"},"nodeType":"YulFunctionCall","src":"17173:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17193:34:103","type":"","value":"ERROR:PRD-001:POLICY_OR_HOLDER_I"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17166:6:103"},"nodeType":"YulFunctionCall","src":"17166:62:103"},"nodeType":"YulExpressionStatement","src":"17166:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17259:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17244:3:103"},"nodeType":"YulFunctionCall","src":"17244:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17264:8:103","type":"","value":"NVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17237:6:103"},"nodeType":"YulFunctionCall","src":"17237:36:103"},"nodeType":"YulExpressionStatement","src":"17237:36:103"},{"nodeType":"YulAssignment","src":"17282:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17294:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17305:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17290:3:103"},"nodeType":"YulFunctionCall","src":"17290:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17282:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8c751e03794b568011bdacc7506cfc24e9e6da1a04bd63102218013a02fcc8b2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17064:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17078:4:103","type":""}],"src":"16913:402:103"},{"body":{"nodeType":"YulBlock","src":"17494:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17511:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17522:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17504:6:103"},"nodeType":"YulFunctionCall","src":"17504:21:103"},"nodeType":"YulExpressionStatement","src":"17504:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17545:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17556:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17541:3:103"},"nodeType":"YulFunctionCall","src":"17541:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17561:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17534:6:103"},"nodeType":"YulFunctionCall","src":"17534:30:103"},"nodeType":"YulExpressionStatement","src":"17534:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17584:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17595:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17580:3:103"},"nodeType":"YulFunctionCall","src":"17580:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17600:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17573:6:103"},"nodeType":"YulFunctionCall","src":"17573:62:103"},"nodeType":"YulExpressionStatement","src":"17573:62:103"},{"nodeType":"YulAssignment","src":"17644:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17656:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17667:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17652:3:103"},"nodeType":"YulFunctionCall","src":"17652:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17644:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17471:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17485:4:103","type":""}],"src":"17320:356:103"},{"body":{"nodeType":"YulBlock","src":"17782:76:103","statements":[{"nodeType":"YulAssignment","src":"17792:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17804:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17815:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17800:3:103"},"nodeType":"YulFunctionCall","src":"17800:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17792:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17834:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17845:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17827:6:103"},"nodeType":"YulFunctionCall","src":"17827:25:103"},"nodeType":"YulExpressionStatement","src":"17827:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17751:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17762:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17773:4:103","type":""}],"src":"17681:177:103"},{"body":{"nodeType":"YulBlock","src":"17986:135:103","statements":[{"nodeType":"YulAssignment","src":"17996:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18008:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18019:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18004:3:103"},"nodeType":"YulFunctionCall","src":"18004:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17996:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18038:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18049:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18031:6:103"},"nodeType":"YulFunctionCall","src":"18031:25:103"},"nodeType":"YulExpressionStatement","src":"18031:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18076:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18087:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18072:3:103"},"nodeType":"YulFunctionCall","src":"18072:18:103"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18106:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18099:6:103"},"nodeType":"YulFunctionCall","src":"18099:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18092:6:103"},"nodeType":"YulFunctionCall","src":"18092:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18065:6:103"},"nodeType":"YulFunctionCall","src":"18065:50:103"},"nodeType":"YulExpressionStatement","src":"18065:50:103"}]},"name":"abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17947:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17958:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17966:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17977:4:103","type":""}],"src":"17863:258:103"},{"body":{"nodeType":"YulBlock","src":"18311:351:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18328:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18339:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18321:6:103"},"nodeType":"YulFunctionCall","src":"18321:25:103"},"nodeType":"YulExpressionStatement","src":"18321:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18366:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18377:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18362:3:103"},"nodeType":"YulFunctionCall","src":"18362:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"18382:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18355:6:103"},"nodeType":"YulFunctionCall","src":"18355:34:103"},"nodeType":"YulExpressionStatement","src":"18355:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18409:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18420:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18405:3:103"},"nodeType":"YulFunctionCall","src":"18405:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18425:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18398:6:103"},"nodeType":"YulFunctionCall","src":"18398:30:103"},"nodeType":"YulExpressionStatement","src":"18398:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18448:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18459:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18444:3:103"},"nodeType":"YulFunctionCall","src":"18444:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"18464:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18437:6:103"},"nodeType":"YulFunctionCall","src":"18437:34:103"},"nodeType":"YulExpressionStatement","src":"18437:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18508:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18493:3:103"},"nodeType":"YulFunctionCall","src":"18493:19:103"},{"name":"value2","nodeType":"YulIdentifier","src":"18514:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"18522:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"18480:12:103"},"nodeType":"YulFunctionCall","src":"18480:49:103"},"nodeType":"YulExpressionStatement","src":"18480:49:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18553:9:103"},{"name":"value3","nodeType":"YulIdentifier","src":"18564:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18549:3:103"},"nodeType":"YulFunctionCall","src":"18549:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"18573:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18545:3:103"},"nodeType":"YulFunctionCall","src":"18545:32:103"},{"name":"tail","nodeType":"YulIdentifier","src":"18579:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18538:6:103"},"nodeType":"YulFunctionCall","src":"18538:46:103"},"nodeType":"YulExpressionStatement","src":"18538:46:103"},{"nodeType":"YulAssignment","src":"18593:63:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18609:9:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18628:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18636:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18624:3:103"},"nodeType":"YulFunctionCall","src":"18624:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18645:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18641:3:103"},"nodeType":"YulFunctionCall","src":"18641:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18620:3:103"},"nodeType":"YulFunctionCall","src":"18620:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18605:3:103"},"nodeType":"YulFunctionCall","src":"18605:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"18652:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18601:3:103"},"nodeType":"YulFunctionCall","src":"18601:55:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18593:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_bytes_calldata_ptr__to_t_uint256_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18256:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"18267:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"18275:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18283:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18291:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18302:4:103","type":""}],"src":"18126:536:103"},{"body":{"nodeType":"YulBlock","src":"18796:119:103","statements":[{"nodeType":"YulAssignment","src":"18806:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18829:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18814:3:103"},"nodeType":"YulFunctionCall","src":"18814:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18806:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18848:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18859:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18841:6:103"},"nodeType":"YulFunctionCall","src":"18841:25:103"},"nodeType":"YulExpressionStatement","src":"18841:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18886:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18897:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18882:3:103"},"nodeType":"YulFunctionCall","src":"18882:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"18902:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18875:6:103"},"nodeType":"YulFunctionCall","src":"18875:34:103"},"nodeType":"YulExpressionStatement","src":"18875:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18757:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18768:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18776:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18787:4:103","type":""}],"src":"18667:248:103"},{"body":{"nodeType":"YulBlock","src":"18965:230:103","statements":[{"nodeType":"YulAssignment","src":"18975:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18991:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18985:5:103"},"nodeType":"YulFunctionCall","src":"18985:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18975:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"19003:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"19025:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"19041:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"19047:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19037:3:103"},"nodeType":"YulFunctionCall","src":"19037:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19056:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19052:3:103"},"nodeType":"YulFunctionCall","src":"19052:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19033:3:103"},"nodeType":"YulFunctionCall","src":"19033:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19021:3:103"},"nodeType":"YulFunctionCall","src":"19021:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"19007:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"19136:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"19138:16:103"},"nodeType":"YulFunctionCall","src":"19138:18:103"},"nodeType":"YulExpressionStatement","src":"19138:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"19079:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"19091:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19076:2:103"},"nodeType":"YulFunctionCall","src":"19076:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"19115:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"19127:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19112:2:103"},"nodeType":"YulFunctionCall","src":"19112:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"19073:2:103"},"nodeType":"YulFunctionCall","src":"19073:62:103"},"nodeType":"YulIf","src":"19070:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19174:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"19178:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19167:6:103"},"nodeType":"YulFunctionCall","src":"19167:22:103"},"nodeType":"YulExpressionStatement","src":"19167:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"18945:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"18954:6:103","type":""}],"src":"18920:275:103"},{"body":{"nodeType":"YulBlock","src":"19249:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"19271:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19273:16:103"},"nodeType":"YulFunctionCall","src":"19273:18:103"},"nodeType":"YulExpressionStatement","src":"19273:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19265:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"19268:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19262:2:103"},"nodeType":"YulFunctionCall","src":"19262:8:103"},"nodeType":"YulIf","src":"19259:2:103"},{"nodeType":"YulAssignment","src":"19302:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19314:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"19317:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19310:3:103"},"nodeType":"YulFunctionCall","src":"19310:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"19302:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19231:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"19234:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"19240:4:103","type":""}],"src":"19200:125:103"},{"body":{"nodeType":"YulBlock","src":"19383:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"19393:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"19402:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"19397:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"19462:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19487:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"19492:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19483:3:103"},"nodeType":"YulFunctionCall","src":"19483:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"19506:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"19511:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19502:3:103"},"nodeType":"YulFunctionCall","src":"19502:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19496:5:103"},"nodeType":"YulFunctionCall","src":"19496:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19476:6:103"},"nodeType":"YulFunctionCall","src":"19476:39:103"},"nodeType":"YulExpressionStatement","src":"19476:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19423:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"19426:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19420:2:103"},"nodeType":"YulFunctionCall","src":"19420:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"19434:19:103","statements":[{"nodeType":"YulAssignment","src":"19436:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19445:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"19448:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19441:3:103"},"nodeType":"YulFunctionCall","src":"19441:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"19436:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"19416:3:103","statements":[]},"src":"19412:113:103"},{"body":{"nodeType":"YulBlock","src":"19551:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19564:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"19569:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19560:3:103"},"nodeType":"YulFunctionCall","src":"19560:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"19578:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19553:6:103"},"nodeType":"YulFunctionCall","src":"19553:27:103"},"nodeType":"YulExpressionStatement","src":"19553:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19540:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"19543:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19537:2:103"},"nodeType":"YulFunctionCall","src":"19537:13:103"},"nodeType":"YulIf","src":"19534:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"19361:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"19366:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"19371:6:103","type":""}],"src":"19330:258:103"},{"body":{"nodeType":"YulBlock","src":"19640:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"19671:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19673:16:103"},"nodeType":"YulFunctionCall","src":"19673:18:103"},"nodeType":"YulExpressionStatement","src":"19673:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19656:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19667:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19663:3:103"},"nodeType":"YulFunctionCall","src":"19663:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"19653:2:103"},"nodeType":"YulFunctionCall","src":"19653:17:103"},"nodeType":"YulIf","src":"19650:2:103"},{"nodeType":"YulAssignment","src":"19702:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19713:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"19720:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19709:3:103"},"nodeType":"YulFunctionCall","src":"19709:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19702:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19622:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"19632:3:103","type":""}],"src":"19593:135:103"},{"body":{"nodeType":"YulBlock","src":"19765:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19782:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19789:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19794:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19785:3:103"},"nodeType":"YulFunctionCall","src":"19785:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19775:6:103"},"nodeType":"YulFunctionCall","src":"19775:31:103"},"nodeType":"YulExpressionStatement","src":"19775:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19822:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"19825:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19815:6:103"},"nodeType":"YulFunctionCall","src":"19815:15:103"},"nodeType":"YulExpressionStatement","src":"19815:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19846:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19849:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19839:6:103"},"nodeType":"YulFunctionCall","src":"19839:15:103"},"nodeType":"YulExpressionStatement","src":"19839:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"19733:127:103"},{"body":{"nodeType":"YulBlock","src":"19897:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19914:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19921:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19926:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19917:3:103"},"nodeType":"YulFunctionCall","src":"19917:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19907:6:103"},"nodeType":"YulFunctionCall","src":"19907:31:103"},"nodeType":"YulExpressionStatement","src":"19907:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19954:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"19957:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19947:6:103"},"nodeType":"YulFunctionCall","src":"19947:15:103"},"nodeType":"YulExpressionStatement","src":"19947:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19978:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19981:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19971:6:103"},"nodeType":"YulFunctionCall","src":"19971:15:103"},"nodeType":"YulExpressionStatement","src":"19971:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"19865:127:103"},{"body":{"nodeType":"YulBlock","src":"20029:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20046:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20053:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"20058:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20049:3:103"},"nodeType":"YulFunctionCall","src":"20049:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20039:6:103"},"nodeType":"YulFunctionCall","src":"20039:31:103"},"nodeType":"YulExpressionStatement","src":"20039:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20086:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20089:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20079:6:103"},"nodeType":"YulFunctionCall","src":"20079:15:103"},"nodeType":"YulExpressionStatement","src":"20079:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20110:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20113:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20103:6:103"},"nodeType":"YulFunctionCall","src":"20103:15:103"},"nodeType":"YulExpressionStatement","src":"20103:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"19997:127:103"},{"body":{"nodeType":"YulBlock","src":"20174:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"20238:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20247:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20250:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20240:6:103"},"nodeType":"YulFunctionCall","src":"20240:12:103"},"nodeType":"YulExpressionStatement","src":"20240:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20197:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20208:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20223:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"20228:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20219:3:103"},"nodeType":"YulFunctionCall","src":"20219:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"20232:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20215:3:103"},"nodeType":"YulFunctionCall","src":"20215:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20204:3:103"},"nodeType":"YulFunctionCall","src":"20204:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"20194:2:103"},"nodeType":"YulFunctionCall","src":"20194:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20187:6:103"},"nodeType":"YulFunctionCall","src":"20187:50:103"},"nodeType":"YulIf","src":"20184:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20163:5:103","type":""}],"src":"20129:131:103"},{"body":{"nodeType":"YulBlock","src":"20307:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"20361:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20370:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20373:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20363:6:103"},"nodeType":"YulFunctionCall","src":"20363:12:103"},"nodeType":"YulExpressionStatement","src":"20363:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20330:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20351:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20344:6:103"},"nodeType":"YulFunctionCall","src":"20344:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20337:6:103"},"nodeType":"YulFunctionCall","src":"20337:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"20327:2:103"},"nodeType":"YulFunctionCall","src":"20327:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20320:6:103"},"nodeType":"YulFunctionCall","src":"20320:40:103"},"nodeType":"YulIf","src":"20317:2:103"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20296:5:103","type":""}],"src":"20265:118:103"},{"body":{"nodeType":"YulBlock","src":"20447:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"20481:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20490:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20493:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20483:6:103"},"nodeType":"YulFunctionCall","src":"20483:12:103"},"nodeType":"YulExpressionStatement","src":"20483:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20470:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"20477:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20467:2:103"},"nodeType":"YulFunctionCall","src":"20467:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20460:6:103"},"nodeType":"YulFunctionCall","src":"20460:20:103"},"nodeType":"YulIf","src":"20457:2:103"}]},"name":"validator_revert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20436:5:103","type":""}],"src":"20388:115:103"}]},"contents":"{\n { }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_payablet_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let offset_1 := calldataload(add(headStart, 128))\n if gt(offset_1, _1) { revert(value5, value5) }\n let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value5 := value5_1\n value6 := value6_1\n }\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n value1 := mload(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bytes32t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 160)\n let tail_1 := abi_encode_bytes(value3, add(headStart, 160))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n tail := abi_encode_bytes(value4, tail_1)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 160))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_bytes(value2, tail_1)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_0_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:PRD-003:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8c751e03794b568011bdacc7506cfc24e9e6da1a04bd63102218013a02fcc8b2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:PRD-001:POLICY_OR_HOLDER_I\")\n mstore(add(headStart, 96), \"NVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), iszero(iszero(value1)))\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_bytes_calldata_ptr__to_t_uint256_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n mstore(add(headStart, 96), value3)\n calldatacopy(add(headStart, 128), value2, value3)\n mstore(add(add(headStart, value3), 128), tail)\n tail := add(add(headStart, and(add(value3, 31), not(31))), 128)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function validator_revert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061036b5760003560e01c806370d2fe53116101c6578063b9ea8d66116100f7578063e0815f0d11610095578063ec8b4a9a1161006f578063ec8b4a9a146108f7578063f2fde38b1461092c578063f4fdc1fa1461094c578063fe64372b1461096a5761036b565b8063e0815f0d146108af578063e3ebdea5146108c4578063e6f95edd146108e45761036b565b8063c6441798116100d1578063c64417981461085a578063d0e0ba951461087a578063d73cd9921461061e578063dcc59b6f1461089a5761036b565b8063b9ea8d6614610808578063bd1fe5d014610845578063be169e7e1461061e5761036b565b80638da5cb5b11610164578063a18f5ae21161013e578063a18f5ae21461061e578063ab72c4e1146107bb578063b3fca9bd1461061e578063b75c7dc6146107e85761036b565b80638da5cb5b1461078857806394f64ff41461058a5780639a82f890146107a65761036b565b80637ce5e82f116101a05780637ce5e82f1461071e5780637f29dba214610733578063893d20e8146107535780638cc7d3d1146107685761036b565b806370d2fe53146106d4578063715018a6146106e957806379ed5209146106fe5761036b565b806339c79e0c116102a057806359dacc6a1161023e5780635e61aa63116102185780635e61aa631461066c578063637d08f41461068c578063638ce0ba146106aa578063702e7e1f146106bf5761036b565b806359dacc6a1461061e5780635ab1bd53146106335780635d1ca631146106575761036b565b80633ec92bda1161027a5780633ec92bda1461058a5780634703dc8d146105be5780634cda0de9146105de5780634e02c63f146105fe5761036b565b806339c79e0c1461056a57806339cf5e161461058a5780633dcabeab146105ab5761036b565b806321df0da71161030d57806329abdbd7116102e757806329abdbd7146104ea5780632b1994ba1461050a5780632b6778411461052a57806330a73da51461054a5761036b565b806321df0da71461044c578063232d346a1461047e578063258d560c146104c55761036b565b806317d7de7c1161034957806317d7de7c146103de5780631865c57d146103f35780631b07b17f146104155780631b867c63146104375761036b565b806303f0ac1a1461037057806309128d831461039657806315dae03e146103be575b600080fd5b61038361037e366004612594565b61098a565b6040519081526020015b60405180910390f35b3480156103a257600080fd5b5061038370506f6c69637944656661756c74466c6f7760781b81565b3480156103ca57600080fd5b5060035460ff1660405161038d9190612732565b3480156103ea57600080fd5b50600154610383565b3480156103ff57600080fd5b50610408610a47565b60405161038d9190612718565b34801561042157600080fd5b506104356104303660046122d7565b610acd565b005b34801561044357600080fd5b50610435610b22565b34801561045857600080fd5b506008546001600160a01b03165b6040516001600160a01b03909116815260200161038d565b34801561048a57600080fd5b506104b86040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b81525081565b60405161038d9190612746565b3480156104d157600080fd5b506104da610b7a565b604051901515815260200161038d565b3480156104f657600080fd5b506103836105053660046122d7565b610baa565b34801561051657600080fd5b50610383610525366004612328565b610bbf565b34801561053657600080fd5b50610383610545366004612307565b610bfc565b34801561055657600080fd5b50610435610565366004612328565b610d56565b34801561057657600080fd5b506104356105853660046122d7565b610d66565b34801561059657600080fd5b506040805160208101909152600081526104b8565b6103836105b93660046121d6565b610d77565b3480156105ca57600080fd5b506103836105d9366004612328565b610e79565b3480156105ea57600080fd5b506104356105f9366004612307565b610eb3565b34801561060a57600080fd5b50610435610619366004612328565b610ec5565b34801561062a57600080fd5b50610435610ed8565b34801561063f57600080fd5b5061046660035461010090046001600160a01b031690565b34801561066357600080fd5b50600254610383565b34801561067857600080fd5b50610435610687366004612520565b610f22565b34801561069857600080fd5b506007546001600160a01b0316610466565b3480156106b657600080fd5b50610435611086565b3480156106cb57600080fd5b50601054610383565b3480156106e057600080fd5b50600954610383565b3480156106f557600080fd5b506104356110d3565b34801561070a57600080fd5b50610383610719366004612307565b6110e5565b34801561072a57600080fd5b50600f54610383565b34801561073f57600080fd5b5061043561074e366004612307565b6111df565b34801561075f57600080fd5b506104666111f1565b34801561077457600080fd5b506104356107833660046122d7565b611203565b34801561079457600080fd5b506000546001600160a01b0316610466565b3480156107b257600080fd5b506104da611214565b3480156107c757600080fd5b506103836107d63660046122d7565b60009081526012602052604090205490565b3480156107f457600080fd5b506104356108033660046122d7565b61121c565b34801561081457600080fd5b506108286108233660046122d7565b6112d5565b60408051931515845260208401929092529082015260600161038d565b34801561085157600080fd5b506104356112f8565b34801561086657600080fd5b506104356108753660046122d7565b611345565b34801561088657600080fd5b506104356108953660046122d7565b611356565b3480156108a657600080fd5b50601154610383565b3480156108bb57600080fd5b506104da6113a0565b3480156108d057600080fd5b506108286108df366004612307565b6113a9565b6103836108f2366004612594565b6113ce565b34801561090357600080fd5b50610917610912366004612307565b6114d4565b6040805192835260208301919091520161038d565b34801561093857600080fd5b5061043561094736600461219e565b611634565b34801561095857600080fd5b506104356109673660046122d7565b50565b34801561097657600080fd5b50610435610985366004612307565b6116aa565b600080339050610a0681898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f80546001810182556000919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020181905598975050505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190612353565b905090565b610ad5611757565b6000610ae0826117b1565b90508015610b1e57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b5050565b610b376810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610b705760405162461bcd60e51b8152600401610b6790612759565b60405180910390fd5b610b786118b8565b565b600060025b60035460ff166002811115610ba457634e487b7160e01b600052602160045260246000fd5b14905090565b6000818152601360205260409020545b919050565b6000610bc9611757565b6040805160006020820152610bf491869186918691015b6040516020818303038152906040526118f5565b949350505050565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c81919081019061241d565b519050336001600160a01b03821614610cac5760405162461bcd60e51b8152600401610b6790612790565b60118054906000610cbc83612887565b9190505550610cdb858560405180602001604052806000815250611987565b600086815260126020908152604080832084905560115481519283015260019082018190529295506060016040516020818303038152906040529050610d4b87826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b505050505092915050565b610d61838383611a47565b505050565b610d6e611757565b61096781611ab9565b6000610def88888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a91508990819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80201829055909150610e2f826117b1565b90508015610e6d57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b50979650505050505050565b6000610e83611757565b6040805160006020820152610e9e9186918691869101610be0565b9050610eaa8482611b1b565b50509392505050565b610ebb611757565b610b1e8282611baf565b610ecd611757565b610d61838383611c11565b610eed6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610f1d5760405162461bcd60e51b8152600401610b6790612759565b610b78565b610f3364517565727960d81b611836565b6001600160a01b0316336001600160a01b031614610f935760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610b67565b7f76f1662da8419575225dd3addaf14184129f5230097a533de445a2d5688a399e84848484604051610fc894939291906127d6565b60405180910390a16000610fde82840184612269565b600085815260126020526040902054909150811561107457610fff85611c50565b50600061100c8683611d0a565b602081015190915061101f878483611c11565b604080516000602080830182905283518084039091018152918301909252829161104b8a8785856118f5565b60008b815260136020526040902081905590506110688a82611b1b565b5050505050505061107e565b61107e8582611baf565b505050505050565b61109b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b0316146110cb5760405162461bcd60e51b8152600401610b6790612759565b610b78611dd2565b6110db611757565b610b786000611dfc565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116a919081019061241d565b519050336001600160a01b038216146111955760405162461bcd60e51b8152600401610b6790612790565b601180549060006111a583612887565b91905055506111c4858560405180602001604052806000815250611987565b60009586526012602052604090952085905550929392505050565b6111e7611757565b610b1e8282611e4c565b600080546001600160a01b0316610ac8565b61120b611757565b61096781611e84565b600080610b7f565b600b5460405163296586d360e21b81526004810183905282916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561126557600080fd5b505afa158015611279573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112a1919081019061241d565b519050336001600160a01b038216146112cc5760405162461bcd60e51b8152600401610b6790612790565b610d6183611eb5565b60008060006112e2611757565b6112eb84611ee6565b9196909550909350915050565b61130d6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461133d5760405162461bcd60e51b8152600401610b6790612759565b610b78611f34565b61134d611757565b61096781611f5e565b61136b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461139b5760405162461bcd60e51b8152600401610b6790612759565b600255565b60006001610b7f565b60008060006113b6611757565b6113c08585611f8f565b919790965090945092505050565b60008033905061144a81898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020182905590925061148a836117b1565b905080156114c857601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018390555b50509695505050505050565b600b5460405163296586d360e21b8152600481018490526000918291859183916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561152157600080fd5b505afa158015611535573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261155d919081019061241d565b519050336001600160a01b038216146115885760405162461bcd60e51b8152600401610b6790612790565b6011805490600061159883612887565b91905055506115b7868660405180602001604052806000815250611987565b60008781526012602090815260408083208490556011548151928301528101829052919550908190606001604051602081830303815290604052905061162788826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b9450505050509250929050565b61163c611757565b6001600160a01b0381166116a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b67565b61096781611dfc565b6116b2611757565b6116bc8282611b1b565b50505050565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a906116fb9089908990899089908990600401612640565b602060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d91906122ef565b9695505050505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b67565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156117f857600080fd5b505af115801561180c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118309190612285565b92915050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561188057600080fd5b505afa158015611894573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183091906121ba565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616118e260025490565b60405190815260200160405180910390a1565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d78469061192c9088908890889088906004016126f3565b602060405180830381600087803b15801561194657600080fd5b505af115801561195a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197e91906122ef565b95945050505050565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d15906119bc908790879087906004016126d4565b602060405180830381600087803b1580156119d657600080fd5b505af11580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf491906122ef565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f229061192c908890889088903090899060040161268b565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064015b600060405180830381600087803b158015611a9c57600080fd5b505af1158015611ab0573d6000803e3d6000fd5b50505050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c906024015b600060405180830381600087803b158015611b0057600080fd5b505af1158015611b14573d6000803e3d6000fd5b5050505050565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b158015611b6c57600080fd5b505af1158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190612571565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b158015611bfd57600080fd5b505af115801561107e573d6000803e3d6000fd5b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f90606401611a82565b611c8a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118309190810190612372565b611d446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051637f22c2d960e01b815260048101859052602481018490526001600160a01b0390911690637f22c2d99060440160006040518083038186803b158015611d8f57600080fd5b505afa158015611da3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dcb9190810190612372565b9392505050565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96118e260025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba290604401611be3565b600a54604051638cc7d3d160e01b8152600481018390526001600160a01b0390911690638cc7d3d190602401611ae6565b600a54604051635bae3ee360e11b8152600481018390526001600160a01b039091169063b75c7dc690602401611ae6565b600080600080611ef585612019565b9050806020015181604001511015611f2c57611f248582604001518360200151611f1f9190612844565b611f8f565b919550935091505b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556118e260025490565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c644179890602401611ae6565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b158015611fe157600080fd5b505af1158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c091906122a1565b612069604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b1580156120ae57600080fd5b505afa1580156120c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611830919061249b565b60008083601f8401126120f7578182fd5b50813567ffffffffffffffff81111561210e578182fd5b60208301915083602082850101111561212657600080fd5b9250929050565b600082601f83011261213d578081fd5b815167ffffffffffffffff811115612157576121576128ce565b61216a601f8201601f1916602001612813565b81815284602083860101111561217e578283fd5b610bf482602083016020870161285b565b805160038110610bba57600080fd5b6000602082840312156121af578081fd5b8135611dcb816128e4565b6000602082840312156121cb578081fd5b8151611dcb816128e4565b600080600080600080600060a0888a0312156121f0578283fd5b87356121fb816128e4565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612225578485fd5b6122318b838c016120e6565b909650945060808a0135915080821115612249578384fd5b506122568a828b016120e6565b989b979a50959850939692959293505050565b60006020828403121561227a578081fd5b8135611dcb816128f9565b600060208284031215612296578081fd5b8151611dcb816128f9565b6000806000606084860312156122b5578081fd5b83516122c0816128f9565b602085015160409095015190969495509392505050565b6000602082840312156122e8578081fd5b5035919050565b600060208284031215612300578081fd5b5051919050565b60008060408385031215612319578182fd5b50508035926020909101359150565b60008060006060848603121561233c578081fd5b505081359360208301359350604090920135919050565b600060208284031215612364578081fd5b815160078110611dcb578182fd5b600060208284031215612383578081fd5b815167ffffffffffffffff8082111561239a578283fd5b9083019060c082860312156123ad578283fd5b6123b760c0612813565b82516123c281612907565b8082525060208301516020820152604083015160408201526060830151828111156123eb578485fd5b6123f78782860161212d565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561242e578081fd5b815167ffffffffffffffff80821115612445578283fd5b9083019060c08286031215612458578283fd5b61246260c0612813565b825161246d816128e4565b8152602083810151908201526124856040840161218f565b60408201526060830151828111156123eb578485fd5b60006101208083850312156124ae578182fd5b6124b781612813565b90506124c28361218f565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215612535578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612559578283fd5b612565878288016120e6565b95989497509550505050565b60008060408385031215612583578182fd5b505080516020909101519092909150565b600080600080600080608087890312156125ac578384fd5b8635955060208701359450604087013567ffffffffffffffff808211156125d1578586fd5b6125dd8a838b016120e6565b909650945060608901359150808211156125f5578384fd5b5061260289828a016120e6565b979a9699509497509295939492505050565b6000815180845261262c81602086016020860161285b565b601f01601f19169290920160200192915050565b600060018060a01b038716825285602083015284604083015260a0606083015261266d60a0830185612614565b828103608084015261267f8185612614565b98975050505050505050565b600086825260a060208301526126a460a0830187612614565b82810360408401526126b68187612614565b6001600160a01b039590951660608401525050608001529392505050565b60008482528360208301526060604083015261197e6060830184612614565b60008582528460208301528360408301526080606083015261174d6080830184612614565b602081016007831061272c5761272c6128b8565b91905290565b602081016003831061272c5761272c6128b8565b600060208252611dcb6020830184612614565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60208082526026908201527f4552524f523a5052442d3030313a504f4c4943595f4f525f484f4c4445525f4960408201526513959053125160d21b606082015260800190565b60008582528460208301526060604083015282606083015282846080840137818301608090810191909152601f909201601f191601019392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561283c5761283c6128ce565b604052919050565b600082821015612856576128566128a2565b500390565b60005b8381101561287657818101518382015260200161285e565b838111156116bc5750506000910152565b600060001982141561289b5761289b6128a2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096757600080fd5b801515811461096757600080fd5b6004811061096757600080fdfea2646970667358221220c8724aa3eebe95b1d2b318ce70a883306561edfcdce90d9ce1e8ee50df556e2864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70D2FE53 GT PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xEC8B4A9A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xEC8B4A9A EQ PUSH2 0x8F7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x92C JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x94C JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x96A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x8AF JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x8C4 JUMPI DUP1 PUSH4 0xE6F95EDD EQ PUSH2 0x8E4 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xC6441798 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xC6441798 EQ PUSH2 0x85A JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x87A JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x89A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x808 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x845 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x61E JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x164 JUMPI DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xAB72C4E1 EQ PUSH2 0x7BB JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xB75C7DC6 EQ PUSH2 0x7E8 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x788 JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x7A6 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x7CE5E82F GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x7CE5E82F EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0x8CC7D3D1 EQ PUSH2 0x768 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x6D4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x6E9 JUMPI DUP1 PUSH4 0x79ED5209 EQ PUSH2 0x6FE JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x39C79E0C GT PUSH2 0x2A0 JUMPI DUP1 PUSH4 0x59DACC6A GT PUSH2 0x23E JUMPI DUP1 PUSH4 0x5E61AA63 GT PUSH2 0x218 JUMPI DUP1 PUSH4 0x5E61AA63 EQ PUSH2 0x66C JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x68C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x6AA JUMPI DUP1 PUSH4 0x702E7E1F EQ PUSH2 0x6BF JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x657 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x3EC92BDA GT PUSH2 0x27A JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x4703DC8D EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x5FE JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x39C79E0C EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x3DCABEAB EQ PUSH2 0x5AB JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x21DF0DA7 GT PUSH2 0x30D JUMPI DUP1 PUSH4 0x29ABDBD7 GT PUSH2 0x2E7 JUMPI DUP1 PUSH4 0x29ABDBD7 EQ PUSH2 0x4EA JUMPI DUP1 PUSH4 0x2B1994BA EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0x2B677841 EQ PUSH2 0x52A JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x54A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x232D346A EQ PUSH2 0x47E JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x4C5 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x17D7DE7C GT PUSH2 0x349 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x437 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x3F0AC1A EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0x9128D83 EQ PUSH2 0x396 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x3BE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x383 PUSH2 0x37E CALLDATASIZE PUSH1 0x4 PUSH2 0x2594 JUMP JUMPDEST PUSH2 0x98A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2732 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2718 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x430 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xACD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0xB22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2746 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x505 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x516 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x525 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xBBF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x536 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x545 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0xBFC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x565 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xD56 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x585 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xD66 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH2 0x4B8 JUMP JUMPDEST PUSH2 0x383 PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x21D6 JUMP JUMPDEST PUSH2 0xD77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xE79 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x5F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0xEB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x619 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xEC5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0xED8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x678 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x687 CALLDATASIZE PUSH1 0x4 PUSH2 0x2520 JUMP JUMPDEST PUSH2 0xF22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x698 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x466 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x1086 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x10 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x10D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x719 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x10E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xF SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x74E CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x11DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH2 0x11F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x774 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x783 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1203 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x794 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x466 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0x1214 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x7D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x803 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x121C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x828 PUSH2 0x823 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x12F8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x875 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1345 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x895 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1356 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0x13A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x828 PUSH2 0x8DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x383 PUSH2 0x8F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2594 JUMP JUMPDEST PUSH2 0x13CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x917 PUSH2 0x912 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x14D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x947 CALLDATASIZE PUSH1 0x4 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x1634 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x958 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x967 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x985 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x16AA JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xA06 DUP2 DUP10 DUP10 DUP10 DUP10 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE SWAP3 POP DUP12 SWAP2 POP DUP11 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP2 SWAP1 SSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC8 SWAP2 SWAP1 PUSH2 0x2353 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAD5 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE0 DUP3 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xB1E JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP3 SWAP1 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xB37 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB78 PUSH2 0x18B8 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBA4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC9 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xBF4 SWAP2 DUP7 SWAP2 DUP7 SWAP2 DUP7 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x18F5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC81 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xCAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xCBC DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0xCDB DUP6 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x11 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD MSTORE PUSH1 0x1 SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE SWAP3 SWAP6 POP PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xD4B DUP8 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xD SLOAD PUSH2 0x1A0E JUMP JUMPDEST POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD61 DUP4 DUP4 DUP4 PUSH2 0x1A47 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xD6E PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1AB9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDEF DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP13 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP11 DUP2 MSTORE SWAP3 POP DUP11 SWAP2 POP DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP3 SWAP1 SSTORE SWAP1 SWAP2 POP PUSH2 0xE2F DUP3 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xE6D JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP3 SWAP1 SSTORE JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE83 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xE9E SWAP2 DUP7 SWAP2 DUP7 SWAP2 DUP7 SWAP2 ADD PUSH2 0xBE0 JUMP JUMPDEST SWAP1 POP PUSH2 0xEAA DUP5 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEBB PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB1E DUP3 DUP3 PUSH2 0x1BAF JUMP JUMPDEST PUSH2 0xECD PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xD61 DUP4 DUP4 DUP4 PUSH2 0x1C11 JUMP JUMPDEST PUSH2 0xEED PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 JUMP JUMPDEST PUSH2 0xF33 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030333A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH32 0x76F1662DA8419575225DD3ADDAF14184129F5230097A533DE445A2D5688A399E DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xFC8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xFDE DUP3 DUP5 ADD DUP5 PUSH2 0x2269 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP2 ISZERO PUSH2 0x1074 JUMPI PUSH2 0xFFF DUP6 PUSH2 0x1C50 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x100C DUP7 DUP4 PUSH2 0x1D0A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH2 0x101F DUP8 DUP5 DUP4 PUSH2 0x1C11 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE SWAP2 DUP4 ADD SWAP1 SWAP3 MSTORE DUP3 SWAP2 PUSH2 0x104B DUP11 DUP8 DUP6 DUP6 PUSH2 0x18F5 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP1 POP PUSH2 0x1068 DUP11 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP POP POP POP POP POP PUSH2 0x107E JUMP JUMPDEST PUSH2 0x107E DUP6 DUP3 PUSH2 0x1BAF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x109B PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 PUSH2 0x1DD2 JUMP JUMPDEST PUSH2 0x10DB PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB78 PUSH1 0x0 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x112E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x116A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1195 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x11A5 DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x11C4 DUP6 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 SWAP6 DUP7 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 DUP6 SWAP1 SSTORE POP SWAP3 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x11E7 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB1E DUP3 DUP3 PUSH2 0x1E4C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xAC8 JUMP JUMPDEST PUSH2 0x120B PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB7F JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1279 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12A1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x12CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH2 0xD61 DUP4 PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x12E2 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x12EB DUP5 PUSH2 0x1EE6 JUMP JUMPDEST SWAP2 SWAP7 SWAP1 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH2 0x130D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x133D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x134D PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x136B PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x139B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x13B6 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x13C0 DUP6 DUP6 PUSH2 0x1F8F JUMP JUMPDEST SWAP2 SWAP8 SWAP1 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0x144A DUP2 DUP10 DUP10 DUP10 DUP10 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE SWAP3 POP DUP12 SWAP2 POP DUP11 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH2 0x148A DUP4 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP4 SWAP1 SSTORE JUMPDEST POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP6 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1521 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1535 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x155D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x1598 DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x15B7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x11 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD MSTORE DUP2 ADD DUP3 SWAP1 MSTORE SWAP2 SWAP6 POP SWAP1 DUP2 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1627 DUP9 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xD SLOAD PUSH2 0x1A0E JUMP JUMPDEST SWAP5 POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x163C PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x16A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1DFC JUMP JUMPDEST PUSH2 0x16B2 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x16BC DUP3 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x16FB SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2640 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1729 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x174D SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x180C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x2285 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1894 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x21BA JUMP JUMPDEST PUSH32 0xB79D34516B55D664B61192AA41FBC0625B132FB7129BD3B3A31F46D1BEFA7061 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x781D7846 SWAP1 PUSH2 0x192C SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26F3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1946 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x195A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x197E SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFAE43D15 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFAE43D15 SWAP1 PUSH2 0x19BC SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26D4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBF4 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x16499F91 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2C933F22 SWAP1 PUSH2 0x192C SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x268B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE71E783 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x39C79E0C SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BA4 SWAP2 SWAP1 PUSH2 0x2571 JUMP JUMPDEST SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x107E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD PUSH2 0x1A82 JUMP JUMPDEST PUSH2 0x1C8A PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CE2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1830 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2372 JUMP JUMPDEST PUSH2 0x1D44 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1DCB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2372 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xCFF3B7B8B07D4D8F74BF41F05737717140D5916781B9DFF86EA0B996F2FDB9F9 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0x1BE3 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x8CC7D3D1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8CC7D3D1 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x5BAE3EE3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB75C7DC6 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1EF5 DUP6 PUSH2 0x2019 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x1F2C JUMPI PUSH2 0x1F24 DUP6 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x1F1F SWAP2 SWAP1 PUSH2 0x2844 JUMP JUMPDEST PUSH2 0x1F8F JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP JUMPDEST POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH32 0x38954B1D025D5A8FFCF9B42D431BE2745CDCD05D32B0E5AD33EE2DB025EF5B55 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C882F3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC6441798 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13C0 SWAP2 SWAP1 PUSH2 0x22A1 JUMP JUMPDEST PUSH2 0x2069 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x249B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x20F7 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x210E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x213D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2157 JUMPI PUSH2 0x2157 PUSH2 0x28CE JUMP JUMPDEST PUSH2 0x216A PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2813 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x217E JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xBF4 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x285B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xBBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21AF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1DCB DUP2 PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21CB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1DCB DUP2 PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x21F0 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH2 0x21FB DUP2 PUSH2 0x28E4 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2225 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2231 DUP12 DUP4 DUP13 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2249 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2256 DUP11 DUP3 DUP12 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x227A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1DCB DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2296 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1DCB DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x22B5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x22C0 DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x40 SWAP1 SWAP6 ADD MLOAD SWAP1 SWAP7 SWAP5 SWAP6 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22E8 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2300 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2319 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x233C JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2364 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1DCB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2383 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x239A JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x23AD JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x23B7 PUSH1 0xC0 PUSH2 0x2813 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x23C2 DUP2 PUSH2 0x2907 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x23EB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x23F7 DUP8 DUP3 DUP7 ADD PUSH2 0x212D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x242E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2445 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2458 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2462 PUSH1 0xC0 PUSH2 0x2813 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x246D DUP2 PUSH2 0x28E4 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2485 PUSH1 0x40 DUP5 ADD PUSH2 0x218F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x23EB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24AE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x24B7 DUP2 PUSH2 0x2813 JUMP JUMPDEST SWAP1 POP PUSH2 0x24C2 DUP4 PUSH2 0x218F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2535 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2559 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2565 DUP8 DUP3 DUP9 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2583 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x25AC JUMPI DUP4 DUP5 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25D1 JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x25DD DUP11 DUP4 DUP12 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x25F5 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2602 DUP10 DUP3 DUP11 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x262C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x285B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x266D PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x2614 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x267F DUP2 DUP6 PUSH2 0x2614 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x26A4 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2614 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x26B6 DUP2 DUP8 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x197E PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x174D PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x272C JUMPI PUSH2 0x272C PUSH2 0x28B8 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x272C JUMPI PUSH2 0x272C PUSH2 0x28B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1DCB PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x26 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030313A504F4C4943595F4F525F484F4C4445525F49 PUSH1 0x40 DUP3 ADD MSTORE PUSH6 0x139590531251 PUSH1 0xD2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 PUSH1 0x60 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x283C JUMPI PUSH2 0x283C PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2856 JUMPI PUSH2 0x2856 PUSH2 0x28A2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2876 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x285E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x16BC JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x289B JUMPI PUSH2 0x289B PUSH2 0x28A2 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 PUSH19 0x4AA3EEBE95B1D2B318CE70A883306561EDFCDC 0xE9 0xD SWAP13 0xE1 0xE8 0xEE POP 0xDF SSTORE PUSH15 0x2864736F6C63430008020033000000 ","sourceMap":"409:10172:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2904:524;;;;;;:::i;:::-;;:::i;:::-;;;12596:25:103;;;12584:2;12569:18;2904:524:96;;;;;;;;456:57;;;;;;;;;;;;-1:-1:-1;;;456:57:96;;2394:100:12;;;;;;;;;;-1:-1:-1;2477:14:12;;;;2394:100;;;;;;:::i;2220:83::-;;;;;;;;;;-1:-1:-1;2286:14:12;;2220:83;;2500:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3658:190:96:-;;;;;;;;;;-1:-1:-1;3658:190:96;;;;;:::i;:::-;;:::i;:::-;;3279:78:12;;;;;;;;;;;;;:::i;1838:88:18:-;;;;;;;;;;-1:-1:-1;1913:6:18;;-1:-1:-1;;;;;1913:6:18;1838:88;;;-1:-1:-1;;;;;11256:32:103;;;11238:51;;11226:2;11211:18;1838:88:18;11193:102:103;520:69:96;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;520:69:96;;;;;;;;;;;;:::i;2973:120:12:-;;;;;;;;;;;;;:::i;:::-;;;12089:14:103;;12082:22;12064:41;;12052:2;12037:18;2973:120:12;12019:92:103;10211:112:96;;;;;;;;;;-1:-1:-1;10211:112:96;;;;;:::i;:::-;;:::i;8030:334::-;;;;;;;;;;-1:-1:-1;8030:334:96;;;;;:::i;:::-;;:::i;4783:824::-;;;;;;;;;;-1:-1:-1;4783:824:96;;;;;:::i;:::-;;:::i;4322:261::-;;;;;;;;;;-1:-1:-1;4322:261:96;;;;;:::i;:::-;;:::i;4688:87::-;;;;;;;;;;-1:-1:-1;4688:87:96;;;;;:::i;:::-;;:::i;7872:128:18:-;;;;;;;;;;-1:-1:-1;7984:9:18;;;;;;;;;-1:-1:-1;7984:9:18;;7872:128;;2270:624:96;;;;;;:::i;:::-;;:::i;7626:396::-;;;;;;;;;;-1:-1:-1;7626:396:96;;;;;:::i;:::-;;:::i;7260:177::-;;;;;;;;;;-1:-1:-1;7260:177:96;;;;;:::i;:::-;;:::i;7023:229::-;;;;;;;;;;-1:-1:-1;7023:229:96;;;;;:::i;:::-;;:::i;3689:77:12:-;;;;;;;;;;;;;:::i;3101:86::-;;;;;;;;;;;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;2309:79;;;;;;;;;;-1:-1:-1;2373:12:12;;2309:79;;8561:1526:96;;;;;;;;;;-1:-1:-1;8561:1526:96;;;;;:::i;:::-;;:::i;1932:98:18:-;;;;;;;;;;-1:-1:-1;2012:11:18;;-1:-1:-1;;;;;2012:11:18;1932:98;;3195:78:12;;;;;;;;;;;;;:::i;10423:80:96:-;;;;;;;;;;-1:-1:-1;10484:9:96;:16;10423:80;;2036:98:18;;;;;;;;;;-1:-1:-1;2116:11:18;;2036:98;;1831:101:41;;;;;;;;;;;;;:::i;5615:512:96:-;;;;;;;;;;-1:-1:-1;5615:512:96;;;;;:::i;:::-;;:::i;10329:88::-;;;;;;;;;;-1:-1:-1;10394:13:96;:20;10329:88;;7445:173;;;;;;;;;;-1:-1:-1;7445:173:96;;;;;:::i;:::-;;:::i;2642:77:12:-;;;;;;;;;;;;;:::i;3556:94:96:-;;;;;;;;;;-1:-1:-1;3556:94:96;;;;;:::i;:::-;;:::i;1201:85:41:-;;;;;;;;;;-1:-1:-1;1247:7:41;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;2851:116:12;;;;;;;;;;;;;:::i;10095:110:96:-;;;;;;;;;;-1:-1:-1;10095:110:96;;;;;:::i;:::-;10156:7;10174:28;;;:18;:28;;;;;;;10095:110;3438;;;;;;;;;;-1:-1:-1;3438:110:96;;;;;:::i;:::-;;:::i;3856:213::-;;;;;;;;;;-1:-1:-1;3856:213:96;;;;;:::i;:::-;;:::i;:::-;;;;12337:14:103;;12330:22;12312:41;;12384:2;12369:18;;12362:34;;;;12412:18;;;12405:34;12300:2;12285:18;3856:213:96;12267:178:103;3363:77:12;;;;;;;;;;;;;:::i;4591:89:96:-;;;;;;;;;;-1:-1:-1;4591:89:96;;;;;:::i;:::-;;:::i;2131:81:12:-;;;;;;;;;;-1:-1:-1;2131:81:12;;;;;:::i;:::-;;:::i;10509:69:96:-;;;;;;;;;;-1:-1:-1;10568:7:96;;10509:69;;2727:118:12;;;;;;;;;;;;;:::i;4077:237:96:-;;;;;;;;;;-1:-1:-1;4077:237:96;;;;;:::i;:::-;;:::i;1612:650::-;;;;;;:::i;:::-;;:::i;6139:876::-;;;;;;;;;;-1:-1:-1;6139:876:96;;;;;:::i;:::-;;:::i;:::-;;;;13432:25:103;;;13488:2;13473:18;;13466:34;;;;13405:18;6139:876:96;13387:119:103;2081:198:41;;;;;;;;;;-1:-1:-1;2081:198:41;;;;;:::i;:::-;;:::i;8006:81:18:-;;;;;;;;;;-1:-1:-1;8006:81:18;;;;;:::i;:::-;4688:87:96;;8372:181;;;;;;;;;;-1:-1:-1;8372:181:96;;;;;:::i;:::-;;:::i;2904:524::-;3121:17;;719:10:59;3157:52:96;;3234:144;3264:12;3291:7;3314:10;3339:8;;3234:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3234:144:96;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3362:15:96;;-1:-1:-1;3362:15:96;;;;3234:144;;3362:15;;;;3234:144;;;;;;;;;-1:-1:-1;3234:15:96;;-1:-1:-1;;;3234:144:96:i;:::-;3391:13;:29;;;;;;;-1:-1:-1;3391:29:96;;;;;;;;;3222:156;2904:524;-1:-1:-1;;;;;;;;2904:524:96:o;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;12596:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;12569:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2578:55;;2500:136;:::o;3658:190:96:-;1094:13:41;:11;:13::i;:::-;3728:12:96::1;3743:22;3755:9;3743:11;:22::i;:::-;3728:37;;3780:7;3776:65;;;3804:9;:25:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;3804:25:96;;;;;::::1;::::0;;;3776:65:::1;1117:1:41;3658:190:96::0;:::o;3279:78:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;;;;;;;;;3339:15:::1;:13;:15::i;:::-;3279:78::o:0;2973:120::-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;10211:112:96:-;10273:7;10291:29;;;:19;:29;;;;;;10211:112;;;;:::o;8030:334::-;8197:16;1094:13:41;:11;:13::i;:::-;8342::96::1;::::0;;8353:1:::1;8342:13;::::0;::::1;15523:36:103::0;8242:114:96::1;::::0;8267:8;;8291:7;;8314:12;;15496:18:103;8342:13:96::1;;;;;;;;;;;;;8242:10;:114::i;:::-;8231:125:::0;8030:334;-1:-1:-1;;;;8030:334:96:o;4783:824::-;702:16:18;;:38;;-1:-1:-1;;;702:38:18;;;;;12596:25:103;;;4915:15:96;;4888:8;;4915:15;;-1:-1:-1;;;;;702:16:18;;:28;;12569:18:103;;702:38:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;702:38:18;;;;;;;;;;;;:::i;:::-;:44;;-1:-1:-1;719:10:59;-1:-1:-1;;;;;777:28:18;;;756:114;;;;-1:-1:-1;;;756:114:18;;;;;;;:::i;:::-;5124:7:96::1;:9:::0;;;:7:::1;:9;::::0;::::1;:::i;:::-;;;;;;5194:36;5204:8;5214:11;5194:36;;;;;;;;;;;::::0;:9:::1;:36::i;:::-;5241:28;::::0;;;:18:::1;:28;::::0;;;;;;;:38;;;5425:7:::1;::::0;5414:38;;;;::::1;18031:25:103::0;5374:4:96::1;18072:18:103::0;;;18065:50;;;5241:38:96;;-1:-1:-1;18004:18:103;;5414:38:96::1;;;;;;;;;;;;5389:63;;5463:136;5486:8;5509:9;5533:27;;;;;;;;;;;;;-1:-1:-1::0;;;5533:27:96::1;;::::0;5575:13:::1;;5463:8;:136::i;:::-;;880:1:18;;4783:824:96::0;;;;;;:::o;4322:261::-;4499:76;4524:9;4535:21;4558:16;4499:24;:76::i;:::-;4322:261;;;:::o;4688:87::-;1094:13:41;:11;:13::i;:::-;4751:16:96::1;4758:8;4751:6;:16::i;2270:624::-:0;2527:17;2575:144;2605:12;2632:7;2655:10;2680:8;;2575:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2575:144:96;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2703:15:96;;-1:-1:-1;2703:15:96;;;;2575:144;;2703:15;;;;2575:144;;;;;;;;;-1:-1:-1;2575:15:96;;-1:-1:-1;;;2575:144:96:i;:::-;2732:13;:29;;;;;;;-1:-1:-1;2732:29:96;;;;;;;;2563:156;;-1:-1:-1;2789:22:96;2563:156;2789:11;:22::i;:::-;2774:37;;2826:7;2822:65;;;2850:9;:25;;;;;;;-1:-1:-1;2850:25:96;;;;;;;;;2822:65;2270:624;;;;;;;;;;:::o;7626:396::-;7796:16;1094:13:41;:11;:13::i;:::-;7941::96::1;::::0;;7952:1:::1;7941:13;::::0;::::1;15523:36:103::0;7841:114:96::1;::::0;7866:8;;7890:7;;7913:12;;15496:18:103;7941:13:96::1;15478:87:103::0;7841:114:96::1;7830:125;;7980:34;7995:8;8005;7980:14;:34::i;:::-;;;7626:396:::0;;;;;:::o;7260:177::-;1094:13:41;:11;:13::i;:::-;7397:32:96::1;7411:8;7421:7;7397:13;:32::i;7023:229::-:0;1094:13:41;:11;:13::i;:::-;7195:49:96::1;7209:8;7219:7;7228:15;7195:13;:49::i;3689:77:12:-:0;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3748:15:::1;3279:78:::0;8561:1526:96;1138:28:18;-1:-1:-1;;;1138:19:18;:28::i;:::-;-1:-1:-1;;;;;1122:44:18;719:10:59;-1:-1:-1;;;;;1122:44:18;;1100:119;;;;-1:-1:-1;;;1100:119:18;;16759:2:103;1100:119:18;;;16741:21:103;16798:2;16778:18;;;16771:30;16837:29;16817:18;;;16810:57;16884:18;;1100:119:18;16731:177:103;1100:119:18;8746:64:96::1;8776:9;8787:8;8797:12;;8746:64;;;;;;;;;:::i;:::-;;;;;;;;8861:16;8881:32;::::0;;::::1;8892:12:::0;8881:32:::1;:::i;:::-;8924:15;8942:28:::0;;;:18:::1;:28;::::0;;;;;8860:53;;-1:-1:-1;9029:1051:96;::::1;;;9124:25;9140:8;9124:15;:25::i;:::-;;9166:26;9213:28;9223:8;9233:7;9213:9;:28::i;:::-;9320:17;::::0;::::1;::::0;9166:75;;-1:-1:-1;9352:49:96::1;9366:8:::0;9376:7;9320:17;9352:13:::1;:49::i;:::-;9534:13;::::0;;9455:20:::1;9534:13;::::0;;::::1;15523:36:103::0;;;9534:13:96;;;;;;;;;;15496:18:103;;;9534:13:96;;;9478:15;;9581:55:::1;9592:8:::0;9602:7;9478:15;9534:13;9581:10:::1;:55::i;:::-;9651:29;::::0;;;:19:::1;:29;::::0;;;;:40;;;9562:74;-1:-1:-1;9708:34:96::1;9671:8:::0;9562:74;9708:14:::1;:34::i;:::-;;;9029:1051;;;;;;;;10036:32;10050:8;10060:7;10036:13;:32::i;:::-;1229:1:18;;8561:1526:96::0;;;;:::o;3195:78:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;1831:101:41:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;5615:512:96:-:0;702:16:18;;:38;;-1:-1:-1;;;702:38:18;;;;;12596:25:103;;;5755:15:96;;5728:8;;5755:15;;-1:-1:-1;;;;;702:16:18;;:28;;12569:18:103;;702:38:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;702:38:18;;;;;;;;;;;;:::i;:::-;:44;;-1:-1:-1;719:10:59;-1:-1:-1;;;;;777:28:18;;;756:114;;;;-1:-1:-1;;;756:114:18;;;;;;;:::i;:::-;5964:7:96::1;:9:::0;;;:7:::1;:9;::::0;::::1;:::i;:::-;;;;;;6034:36;6044:8;6054:11;6034:36;;;;;;;;;;;::::0;:9:::1;:36::i;:::-;6081:28;::::0;;;:18:::1;:28;::::0;;;;;:38;;;-1:-1:-1;6024:46:96;;5615:512;-1:-1:-1;;;5615:512:96:o;7445:173::-;1094:13:41;:11;:13::i;:::-;7580:30:96::1;7592:8;7602:7;7580:11;:30::i;2642:77:12:-:0;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;3556:94:96;1094:13:41;:11;:13::i;:::-;3623:19:96::1;3632:9;3623:8;:19::i;2851:116:12:-:0;2900:4;;2915:49;;3438:110:96;702:16:18;;:38;;-1:-1:-1;;;702:38:18;;;;;12596:25:103;;;3499:9:96;;679:20:18;;-1:-1:-1;;;;;702:16:18;;;;:28;;12569:18:103;;702:38:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;702:38:18;;;;;;;;;;;;:::i;:::-;:44;;-1:-1:-1;719:10:59;-1:-1:-1;;;;;777:28:18;;;756:114;;;;-1:-1:-1;;;756:114:18;;;;;;;:::i;:::-;3522:18:96::1;3530:9;3522:7;:18::i;3856:213::-:0;3944:12;3958:11;3971:18;1094:13:41;:11;:13::i;:::-;4036:25:96::1;4052:8;4036:15;:25::i;:::-;4007:54:::0;;;;-1:-1:-1;4007:54:96;;-1:-1:-1;3856:213:96;-1:-1:-1;;3856:213:96:o;3363:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3422:15:::1;:13;:15::i;4591:89:96:-:0;1094:13:41;:11;:13::i;:::-;4655:17:96::1;4663:8;4655:7;:17::i;2131:81:12:-:0;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;2727:118::-;2777:4;2810:32;2792:50;;4077:237:96;4181:12;4195:11;4208:18;1094:13:41;:11;:13::i;:::-;4273:33:96::1;4289:8;4299:6;4273:15;:33::i;:::-;4244:62:::0;;;;-1:-1:-1;4244:62:96;;-1:-1:-1;4077:237:96;-1:-1:-1;;;4077:237:96:o;1612:650::-;1830:17;;719:10:59;1866:52:96;;1943:144;1973:12;2000:7;2023:10;2048:8;;1943:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1943:144:96;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2071:15:96;;-1:-1:-1;2071:15:96;;;;1943:144;;2071:15;;;;1943:144;;;;;;;;;-1:-1:-1;1943:15:96;;-1:-1:-1;;;1943:144:96:i;:::-;2100:13;:29;;;;;;;-1:-1:-1;2100:29:96;;;;;;;;1931:156;;-1:-1:-1;2157:22:96;1931:156;2157:11;:22::i;:::-;2142:37;;2194:7;2190:65;;;2218:9;:25;;;;;;;-1:-1:-1;2218:25:96;;;;;;;;;2190:65;1612:650;;;;;;;;;;:::o;6139:876::-;702:16:18;;:38;;-1:-1:-1;;;702:38:18;;;;;12596:25:103;;;6291:15:96;;;;6264:8;;6291:15;;-1:-1:-1;;;;;702:16:18;;;;:28;;12569:18:103;;702:38:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;702:38:18;;;;;;;;;;;;:::i;:::-;:44;;-1:-1:-1;719:10:59;-1:-1:-1;;;;;777:28:18;;;756:114;;;;-1:-1:-1;;;756:114:18;;;;;;;:::i;:::-;6519:7:96::1;:9:::0;;;:7:::1;:9;::::0;::::1;:::i;:::-;;;;;;6589:36;6599:8;6609:11;6589:36;;;;;;;;;;;::::0;:9:::1;:36::i;:::-;6636:28;::::0;;;:18:::1;:28;::::0;;;;;;;:38;;;6821:7:::1;::::0;6810:38;;;;::::1;18031:25:103::0;18072:18;;18065:50;;;6579:46:96;;-1:-1:-1;6636:28:96;;;18004:18:103;;6810:38:96::1;;;;;;;;;;;;6785:63;;6871:136;6894:8;6917:9;6941:27;;;;;;;;;;;;;-1:-1:-1::0;;;6941:27:96::1;;::::0;6983:13:::1;;6871:8;:136::i;:::-;6859:148;;880:1:18;;6139:876:96::0;;;;;;;:::o;2081:198:41:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;16352:2:103;2161:73:41::1;::::0;::::1;16334:21:103::0;16391:2;16371:18;;;16364:30;16430:34;16410:18;;;16403:62;-1:-1:-1;;;16481:18:103;;;16474:36;16527:19;;2161:73:41::1;16324:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;8372:181:96:-:0;1094:13:41;:11;:13::i;:::-;8511:34:96::1;8526:8;8536;8511:14;:34::i;:::-;;;8372:181:::0;;:::o;2446:459:18:-;2725:15;;:173;;-1:-1:-1;;;2725:173:18;;2680:17;;-1:-1:-1;;;;;2725:15:18;;:30;;:173;;2769:16;;2800:13;;2828:16;;2859:8;;2882:15;;2725:173;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2713:185;2446:459;-1:-1:-1;;;;;;2446:459:18:o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;17522:2:103;1414:68:41;;;17504:21:103;;;17541:18;;;17534:30;17600:34;17580:18;;;17573:62;17652:18;;1414:68:41;17494:182:103;4142:135:18;4233:15;;:37;;-1:-1:-1;;;4233:37:18;;;;;12596:25:103;;;4199:12:18;;-1:-1:-1;;;;;4233:15:18;;:26;;12569:18:103;;4233:37:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4223:47;4142:135;-1:-1:-1;;4142:135:18:o;4875:145:12:-;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;12596:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;12569:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2189:80:18:-;2239:27;2258:7;2373:12:12;;2309:79;;2258:7:18;2239:27;;12596:25:103;;;12584:2;12569:18;2239:27:18;;;;;;;2189:80::o;5407:271::-;5612:15;;:59;;-1:-1:-1;;;5612:59:18;;5569:16;;-1:-1:-1;;;;;5612:15:18;;:25;;:59;;5638:9;;5649:7;;5658:6;;5666:4;;5612:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5601:70;5407:271;-1:-1:-1;;;;;5407:271:18:o;4586:285::-;4771:15;;:93;;-1:-1:-1;;;4771:93:18;;4730:15;;-1:-1:-1;;;;;4771:15:18;;:24;;:93;;4809:9;;4833:11;;4859:4;;4771:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6020:411::-;6257:15;;:167;;-1:-1:-1;;;6257:167:18;;6212:17;;-1:-1:-1;;;;;6257:15:18;;:23;;:167;;6294:9;;6317:5;;6336:18;;6376:4;;6395:19;;6257:167;;;:::i;3778:257::-;3937:15;;:91;;-1:-1:-1;;;3937:91:18;;;;;14077:25:103;;;14118:18;;;14111:34;;;14161:18;;;14154:34;;;-1:-1:-1;;;;;3937:15:18;;;;:39;;14050:18:103;;3937:91:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3778:257;;;:::o;4487:93::-;4541:15;;:32;;-1:-1:-1;;;4541:32:18;;;;;12596:25:103;;;-1:-1:-1;;;;;4541:15:18;;;;:21;;12569:18:103;;4541:32:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4487:93;:::o;5684:330::-;5957:15;;:50;;-1:-1:-1;;;5957:50:18;;;;;13432:25:103;;;13473:18;;;13466:34;;;5813:17:18;;;;-1:-1:-1;;;;;5957:15:18;;;;:29;;13405:18:103;;5957:50:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5892:115;;;;-1:-1:-1;5684:330:18;-1:-1:-1;;;5684:330:18:o;5133:133::-;5211:15;;:48;;-1:-1:-1;;;5211:48:18;;;;;13432:25:103;;;13473:18;;;13466:34;;;-1:-1:-1;;;;;5211:15:18;;;;:28;;13405:18:103;;5211:48:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4877:250;5019:15;;:101;;-1:-1:-1;;;5019:101:18;;;;;14077:25:103;;;14118:18;;;14111:34;;;14161:18;;;14154:34;;;-1:-1:-1;;;;;5019:15:18;;;;:28;;14050:18:103;;5019:101:18;14032:162:103;6763:205:18;6857:38;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6857:38:18;6919:16;;:42;;-1:-1:-1;;;6919:42:18;;;;;12596:25:103;;;-1:-1:-1;;;;;6919:16:18;;;;:31;;12569:18:103;;6919:42:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6919:42:18;;;;;;;;;;;;:::i;7165:207::-;7270:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7270:26:18;7320:16;;:45;;-1:-1:-1;;;7320:45:18;;;;;13432:25:103;;;13473:18;;;13466:34;;;-1:-1:-1;;;;;7320:16:18;;;;:25;;13405:18:103;;7320:45:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7320:45:18;;;;;;;;;;;;:::i;:::-;7313:52;7165:207;-1:-1:-1;;;7165:207:18:o;2275:80::-;2325:27;2344:7;2373:12:12;;2309:79;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;5272:129:18:-;5348:15;;:46;;-1:-1:-1;;;5348:46:18;;;;;13432:25:103;;;13473:18;;;13466:34;;;-1:-1:-1;;;;;5348:15:18;;;;:26;;13405:18:103;;5348:46:18;13387:119:103;4283:97:18;4339:15;;:34;;-1:-1:-1;;;4339:34:18;;;;;12596:25:103;;;-1:-1:-1;;;;;4339:15:18;;;;:23;;12569:18:103;;4339:34:18;12551:76:103;4041:95:18;4096:15;;:33;;-1:-1:-1;;;4096:33:18;;;;;12596:25:103;;;-1:-1:-1;;;;;4096:15:18;;;;:22;;12569:18:103;;4096:33:18;12551:76:103;2911:538:18;3002:12;3028:17;3059;3101:28;3132:21;3143:9;3132:10;:21::i;:::-;3101:52;;3195:6;:28;;;3168:6;:24;;;:55;3164:279;;;3290:142;3327:9;3390:6;:24;;;3359:6;:28;;;:55;;;;:::i;:::-;3290:15;:142::i;:::-;3239:193;;-1:-1:-1;3239:193:18;-1:-1:-1;3239:193:18;-1:-1:-1;3164:279:18;2911:538;;;;;;:::o;2360:80::-;2410:27;2429:7;2373:12:12;;2309:79;;4386:95:18;4441:15;;:33;;-1:-1:-1;;;4441:33:18;;;;;12596:25:103;;;-1:-1:-1;;;;;4441:15:18;;;;:22;;12569:18:103;;4441:33:18;12551:76:103;3455:317:18;3716:15;;:49;;-1:-1:-1;;;3716:49:18;;;;;13432:25:103;;;13473:18;;;13466:34;;;3583:12:18;;;;;;-1:-1:-1;;;;;3716:15:18;;:30;;13405:18:103;;3716:49:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6974:185::-;7063:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7063:28:18;7115:16;;:37;;-1:-1:-1;;;7115:37:18;;;;;12596:25:103;;;-1:-1:-1;;;;;7115:16:18;;;;:26;;12569:18:103;;7115:37:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:375:103:-;;;129:3;122:4;114:6;110:17;106:27;96:2;;154:8;144;137:26;96:2;-1:-1:-1;184:20:103;;227:18;216:30;;213:2;;;266:8;256;249:26;213:2;310:4;302:6;298:17;286:29;;362:3;355:4;346:6;338;334:19;330:30;327:39;324:2;;;379:1;376;369:12;324:2;86:303;;;;;:::o;394:512::-;;500:3;493:4;485:6;481:17;477:27;467:2;;522:5;515;508:20;467:2;555:6;549:13;581:18;577:2;574:26;571:2;;;603:18;;:::i;:::-;647:55;690:2;671:13;;-1:-1:-1;;667:27:103;696:4;663:38;647:55;:::i;:::-;727:2;718:7;711:19;773:3;766:4;761:2;753:6;749:15;745:26;742:35;739:2;;;794:5;787;780:20;739:2;811:64;872:2;865:4;856:7;852:18;845:4;837:6;833:17;811:64;:::i;911:160::-;1003:13;;1045:1;1035:12;;1025:2;;1061:1;1058;1051:12;1076:257;;1188:2;1176:9;1167:7;1163:23;1159:32;1156:2;;;1209:6;1201;1194:22;1156:2;1253:9;1240:23;1272:31;1297:5;1272:31;:::i;1338:261::-;;1461:2;1449:9;1440:7;1436:23;1432:32;1429:2;;;1482:6;1474;1467:22;1429:2;1519:9;1513:16;1538:31;1563:5;1538:31;:::i;1604:1028::-;;;;;;;;1830:3;1818:9;1809:7;1805:23;1801:33;1798:2;;;1852:6;1844;1837:22;1798:2;1896:9;1883:23;1915:31;1940:5;1915:31;:::i;:::-;1965:5;-1:-1:-1;2017:2:103;2002:18;;1989:32;;-1:-1:-1;2068:2:103;2053:18;;2040:32;;-1:-1:-1;2123:2:103;2108:18;;2095:32;2146:18;2176:14;;;2173:2;;;2208:6;2200;2193:22;2173:2;2252:58;2302:7;2293:6;2282:9;2278:22;2252:58;:::i;:::-;2329:8;;-1:-1:-1;2226:84:103;-1:-1:-1;2417:3:103;2402:19;;2389:33;;-1:-1:-1;2434:16:103;;;2431:2;;;2468:6;2460;2453:22;2431:2;;2512:60;2564:7;2553:8;2542:9;2538:24;2512:60;:::i;:::-;1788:844;;;;-1:-1:-1;1788:844:103;;-1:-1:-1;1788:844:103;;;;2486:86;;-1:-1:-1;;;1788:844:103:o;2637:251::-;;2746:2;2734:9;2725:7;2721:23;2717:32;2714:2;;;2767:6;2759;2752:22;2714:2;2811:9;2798:23;2830:28;2852:5;2830:28;:::i;2893:255::-;;3013:2;3001:9;2992:7;2988:23;2984:32;2981:2;;;3034:6;3026;3019:22;2981:2;3071:9;3065:16;3090:28;3112:5;3090:28;:::i;3153:377::-;;;;3307:2;3295:9;3286:7;3282:23;3278:32;3275:2;;;3328:6;3320;3313:22;3275:2;3365:9;3359:16;3384:28;3406:5;3384:28;:::i;:::-;3476:2;3461:18;;3455:25;3520:2;3505:18;;;3499:25;3431:5;;3455:25;;-1:-1:-1;3499:25:103;3265:265;-1:-1:-1;;;3265:265:103:o;3535:190::-;;3647:2;3635:9;3626:7;3622:23;3618:32;3615:2;;;3668:6;3660;3653:22;3615:2;-1:-1:-1;3696:23:103;;3605:120;-1:-1:-1;3605:120:103:o;3730:194::-;;3853:2;3841:9;3832:7;3828:23;3824:32;3821:2;;;3874:6;3866;3859:22;3821:2;-1:-1:-1;3902:16:103;;3811:113;-1:-1:-1;3811:113:103:o;3929:258::-;;;4058:2;4046:9;4037:7;4033:23;4029:32;4026:2;;;4079:6;4071;4064:22;4026:2;-1:-1:-1;;4107:23:103;;;4177:2;4162:18;;;4149:32;;-1:-1:-1;4016:171:103:o;4192:326::-;;;;4338:2;4326:9;4317:7;4313:23;4309:32;4306:2;;;4359:6;4351;4344:22;4306:2;-1:-1:-1;;4387:23:103;;;4457:2;4442:18;;4429:32;;-1:-1:-1;4508:2:103;4493:18;;;4480:32;;4296:222;-1:-1:-1;4296:222:103:o;4523:299::-;;4665:2;4653:9;4644:7;4640:23;4636:32;4633:2;;;4686:6;4678;4671:22;4633:2;4723:9;4717:16;4762:1;4755:5;4752:12;4742:2;;4783:6;4775;4768:22;4827:1005;;4979:2;4967:9;4958:7;4954:23;4950:32;4947:2;;;5000:6;4992;4985:22;4947:2;5038:9;5032:16;5067:18;5108:2;5100:6;5097:14;5094:2;;;5129:6;5121;5114:22;5094:2;5157:22;;;;5213:4;5195:16;;;5191:27;5188:2;;;5236:6;5228;5221:22;5188:2;5267:21;5283:4;5267:21;:::i;:::-;5318:2;5312:9;5330:47;5369:7;5330:47;:::i;:::-;5400:7;5393:5;5386:22;;5454:2;5450;5446:11;5440:18;5435:2;5428:5;5424:14;5417:42;5505:2;5501;5497:11;5491:18;5486:2;5479:5;5475:14;5468:42;5549:2;5545;5541:11;5535:18;5578:2;5568:8;5565:16;5562:2;;;5599:6;5591;5584:22;5562:2;5640:55;5687:7;5676:8;5672:2;5668:17;5640:55;:::i;:::-;5635:2;5628:5;5624:14;5617:79;;5743:3;5739:2;5735:12;5729:19;5723:3;5716:5;5712:15;5705:44;5796:3;5792:2;5788:12;5782:19;5776:3;5769:5;5765:15;5758:44;5821:5;5811:15;;;;;4937:895;;;;:::o;6841:1025::-;;6990:2;6978:9;6969:7;6965:23;6961:32;6958:2;;;7011:6;7003;6996:22;6958:2;7049:9;7043:16;7078:18;7119:2;7111:6;7108:14;7105:2;;;7140:6;7132;7125:22;7105:2;7168:22;;;;7224:4;7206:16;;;7202:27;7199:2;;;7247:6;7239;7232:22;7199:2;7278:21;7294:4;7278:21;:::i;:::-;7329:2;7323:9;7341:33;7366:7;7341:33;:::i;:::-;7383:22;;7451:2;7443:11;;;7437:18;7421:14;;;7414:42;7488:55;7539:2;7531:11;;7488:55;:::i;:::-;7483:2;7476:5;7472:14;7465:79;7583:2;7579;7575:11;7569:18;7612:2;7602:8;7599:16;7596:2;;;7633:6;7625;7618:22;7871:841;;7996:3;8040:2;8028:9;8019:7;8015:23;8011:32;8008:2;;;8061:6;8053;8046:22;8008:2;8092:19;8108:2;8092:19;:::i;:::-;8079:32;;8134:53;8177:9;8134:53;:::i;:::-;8127:5;8120:68;8241:2;8230:9;8226:18;8220:25;8215:2;8208:5;8204:14;8197:49;8299:2;8288:9;8284:18;8278:25;8273:2;8266:5;8262:14;8255:49;8357:2;8346:9;8342:18;8336:25;8331:2;8324:5;8320:14;8313:49;8416:3;8405:9;8401:19;8395:26;8389:3;8382:5;8378:15;8371:51;8476:3;8465:9;8461:19;8455:26;8449:3;8442:5;8438:15;8431:51;8536:3;8525:9;8521:19;8515:26;8509:3;8502:5;8498:15;8491:51;8596:3;8585:9;8581:19;8575:26;8569:3;8562:5;8558:15;8551:51;8621:3;8677:2;8666:9;8662:18;8656:25;8651:2;8644:5;8640:14;8633:49;;8701:5;8691:15;;;7976:736;;;;:::o;9111:565::-;;;;;9276:2;9264:9;9255:7;9251:23;9247:32;9244:2;;;9297:6;9289;9282:22;9244:2;9338:9;9325:23;9315:33;;9395:2;9384:9;9380:18;9367:32;9357:42;;9450:2;9439:9;9435:18;9422:32;9477:18;9469:6;9466:30;9463:2;;;9514:6;9506;9499:22;9463:2;9558:58;9608:7;9599:6;9588:9;9584:22;9558:58;:::i;:::-;9234:442;;;;-1:-1:-1;9635:8:103;-1:-1:-1;;;;9234:442:103:o;9681:255::-;;;9821:2;9809:9;9800:7;9796:23;9792:32;9789:2;;;9842:6;9834;9827:22;9789:2;-1:-1:-1;;9870:16:103;;9926:2;9911:18;;;9905:25;9870:16;;9905:25;;-1:-1:-1;9779:157:103:o;9941:884::-;;;;;;;10142:3;10130:9;10121:7;10117:23;10113:33;10110:2;;;10164:6;10156;10149:22;10110:2;10205:9;10192:23;10182:33;;10262:2;10251:9;10247:18;10234:32;10224:42;;10317:2;10306:9;10302:18;10289:32;10340:18;10381:2;10373:6;10370:14;10367:2;;;10402:6;10394;10387:22;10367:2;10446:58;10496:7;10487:6;10476:9;10472:22;10446:58;:::i;:::-;10523:8;;-1:-1:-1;10420:84:103;-1:-1:-1;10611:2:103;10596:18;;10583:32;;-1:-1:-1;10627:16:103;;;10624:2;;;10661:6;10653;10646:22;10624:2;;10705:60;10757:7;10746:8;10735:9;10731:24;10705:60;:::i;:::-;10100:725;;;;-1:-1:-1;10100:725:103;;-1:-1:-1;10100:725:103;;10784:8;;10100:725;-1:-1:-1;;;10100:725:103:o;10830:257::-;;10909:5;10903:12;10936:6;10931:3;10924:19;10952:63;11008:6;11001:4;10996:3;10992:14;10985:4;10978:5;10974:16;10952:63;:::i;:::-;11069:2;11048:15;-1:-1:-1;;11044:29:103;11035:39;;;;11076:4;11031:50;;10879:208;-1:-1:-1;;10879:208:103:o;11300:619::-;;11606:1;11602;11597:3;11593:11;11589:19;11581:6;11577:32;11566:9;11559:51;11646:6;11641:2;11630:9;11626:18;11619:34;11689:6;11684:2;11673:9;11669:18;11662:34;11732:3;11727:2;11716:9;11712:18;11705:31;11759:45;11799:3;11788:9;11784:19;11776:6;11759:45;:::i;:::-;11853:9;11845:6;11841:22;11835:3;11824:9;11820:19;11813:51;11881:32;11906:6;11898;11881:32;:::i;:::-;11873:40;11549:370;-1:-1:-1;;;;;;;;11549:370:103:o;12632:621::-;;12911:6;12900:9;12893:25;12954:3;12949:2;12938:9;12934:18;12927:31;12981:45;13021:3;13010:9;13006:19;12998:6;12981:45;:::i;:::-;13074:9;13066:6;13062:22;13057:2;13046:9;13042:18;13035:50;13102:32;13127:6;13119;13102:32;:::i;:::-;-1:-1:-1;;;;;13170:32:103;;;;13165:2;13150:18;;13143:60;-1:-1:-1;;13234:3:103;13219:19;13212:35;13094:40;12883:370;-1:-1:-1;;;12883:370:103:o;13511:359::-;;13714:6;13703:9;13696:25;13757:6;13752:2;13741:9;13737:18;13730:34;13800:2;13795;13784:9;13780:18;13773:30;13820:44;13860:2;13849:9;13845:18;13837:6;13820:44;:::i;14199:432::-;;14430:6;14419:9;14412:25;14473:6;14468:2;14457:9;14453:18;14446:34;14516:6;14511:2;14500:9;14496:18;14489:34;14559:3;14554:2;14543:9;14539:18;14532:31;14580:45;14620:3;14609:9;14605:19;14597:6;14580:45;:::i;14862:250::-;15013:2;14998:18;;15046:1;15035:13;;15025:2;;15052:18;;:::i;:::-;15081:25;;;14980:132;:::o;15117:249::-;15267:2;15252:18;;15300:1;15289:13;;15279:2;;15306:18;;:::i;15570:219::-;;15719:2;15708:9;15701:21;15739:44;15779:2;15768:9;15764:18;15756:6;15739:44;:::i;15794:351::-;15996:2;15978:21;;;16035:2;16015:18;;;16008:30;16074:29;16069:2;16054:18;;16047:57;16136:2;16121:18;;15968:177::o;16913:402::-;17115:2;17097:21;;;17154:2;17134:18;;;17127:30;17193:34;17188:2;17173:18;;17166:62;-1:-1:-1;;;17259:2:103;17244:18;;17237:36;17305:3;17290:19;;17087:228::o;18126:536::-;;18339:6;18328:9;18321:25;18382:6;18377:2;18366:9;18362:18;18355:34;18425:2;18420;18409:9;18405:18;18398:30;18464:6;18459:2;18448:9;18444:18;18437:34;18522:6;18514;18508:3;18497:9;18493:19;18480:49;18549:22;;;18573:3;18545:32;;;18538:46;;;;18645:2;18624:15;;;-1:-1:-1;;18620:29:103;18605:45;18601:55;;18311:351;-1:-1:-1;;;18311:351:103:o;18920:275::-;18991:2;18985:9;19056:2;19037:13;;-1:-1:-1;;19033:27:103;19021:40;;19091:18;19076:34;;19112:22;;;19073:62;19070:2;;;19138:18;;:::i;:::-;19174:2;19167:22;18965:230;;-1:-1:-1;18965:230:103:o;19200:125::-;;19268:1;19265;19262:8;19259:2;;;19273:18;;:::i;:::-;-1:-1:-1;19310:9:103;;19249:76::o;19330:258::-;19402:1;19412:113;19426:6;19423:1;19420:13;19412:113;;;19502:11;;;19496:18;19483:11;;;19476:39;19448:2;19441:10;19412:113;;;19543:6;19540:1;19537:13;19534:2;;;-1:-1:-1;;19578:1:103;19560:16;;19553:27;19383:205::o;19593:135::-;;-1:-1:-1;;19653:17:103;;19650:2;;;19673:18;;:::i;:::-;-1:-1:-1;19720:1:103;19709:13;;19640:88::o;19733:127::-;19794:10;19789:3;19785:20;19782:1;19775:31;19825:4;19822:1;19815:15;19849:4;19846:1;19839:15;19865:127;19926:10;19921:3;19917:20;19914:1;19907:31;19957:4;19954:1;19947:15;19981:4;19978:1;19971:15;19997:127;20058:10;20053:3;20049:20;20046:1;20039:31;20089:4;20086:1;20079:15;20113:4;20110:1;20103:15;20129:131;-1:-1:-1;;;;;20204:31:103;;20194:42;;20184:2;;20250:1;20247;20240:12;20265:118;20351:5;20344:13;20337:21;20330:5;20327:32;20317:2;;20373:1;20370;20363:12;20388:115;20477:1;20470:5;20467:12;20457:2;;20493:1;20490;20483:12"},"methodIdentifiers":{"ORACLE_CALLBACK_METHOD_NAME()":"232d346a","POLICY_FLOW()":"09128d83","adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","applications()":"7ce5e82f","applyForPolicy(address,uint256,uint256,bytes,bytes)":"3dcabeab","applyForPolicy(uint256,uint256,bytes,bytes)":"e6f95edd","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","claims()":"dcc59b6f","close(bytes32)":"39c79e0c","closeClaim(bytes32,uint256)":"7f29dba2","collectPremium(bytes32)":"b9ea8d66","collectPremium(bytes32,uint256)":"e3ebdea5","confirmClaim(bytes32,uint256,uint256)":"4e02c63f","createPayout(bytes32,uint256,uint256)":"4703dc8d","decline(bytes32)":"8cc7d3d1","declineCallback()":"bd1fe5d0","declineClaim(bytes32,uint256)":"4cda0de9","expire(bytes32)":"c6441798","getApplicationDataStructure()":"94f64ff4","getClaimDataStructure()":"3ec92bda","getClaimId(bytes32)":"ab72c4e1","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getPayoutDataStructure()":"39cf5e16","getPayoutId(bytes32)":"29abdbd7","getPolicyFlow()":"637d08f4","getRegistry()":"5ab1bd53","getRiskpoolId()":"70d2fe53","getState()":"1865c57d","getToken()":"21df0da7","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","newAppliation(uint256,uint256,bytes,bytes)":"03f0ac1a","newPayout(bytes32,uint256,uint256)":"2b1994ba","oracleCallback(uint256,bytes32,bytes)":"5e61aa63","owner()":"8da5cb5b","pauseCallback()":"d73cd992","policies()":"702e7e1f","processPayout(bytes32,uint256)":"fe64372b","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","revoke(bytes32)":"b75c7dc6","riskPoolCapacityCallback(uint256)":"f4fdc1fa","setId(uint256)":"d0e0ba95","submitClaim(bytes32,uint256)":"2b677841","submitClaimNoOracle(bytes32,uint256)":"79ed5209","submitClaimWithDeferredResponse(bytes32,uint256)":"ec8b4a9a","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","underwrite(bytes32)":"1b07b17f","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"productName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"capitalOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"oracleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"LogProductCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"name\":\"LogTestOracleCallbackReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTestProductFundingReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ORACLE_CALLBACK_METHOD_NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POLICY_FLOW\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"applications\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"applyForPolicy\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"applyForPolicy\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"closeClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremium\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremium\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"confirmClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"}],\"name\":\"createPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"declineClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"expire\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApplicationDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"getClaimId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayoutDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"getPayoutId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"newAppliation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"}],\"name\":\"newPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"responseData\",\"type\":\"bytes\"}],\"name\":\"oracleCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policies\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"riskPoolCapacityCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"submitClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"submitClaimNoOracle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"submitClaimWithDeferredResponse\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestProduct.sol\":\"TestProduct\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/Product.sol\":{\"keccak256\":\"0xdf55ff9638da4db1501362fc2ffcd26858b7c09b7cc5e0701f1bb31081142815\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fdbfbd830dafe0d721150778469cbbdf01058f8713c3636d2ba48234761e8590\",\"dweb:/ipfs/QmZ9K5X2ant5TtUhA9kgXUAMe7y9MUHpnv3PQUKAmxwVYj\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/test/TestProduct.sol\":{\"keccak256\":\"0x2e678b5aa5698dcd7869eef379bfd156677dd4f5ece499e0dcc29614437e58a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://87e6535b924036b2b8d08c516519de66ea362dec109249675acc95471cb71989\",\"dweb:/ipfs/QmVnFPF4u2XZPHXSkqQD5qPDMnDPAYoDwjquVTrUnXVxh7\"]}},\"version\":1}"}},"contracts/test/TestRegistryCompromisedController.sol":{"TestRegistryCompromisedController":{"abi":[{"inputs":[],"name":"POLICY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"QUERY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"contracts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"getContract","outputs":[{"internalType":"address","name":"moduleAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"compromisedPolicyModuleAddress","type":"address"},{"internalType":"address","name":"originalQueryModuleAddress","type":"address"}],"name":"upgradeToV2","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610223806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea26469706673582212200a56ef5fcc359265f1d34843e958bb8fae6aa679c1a712a74bb7703e4ce8270864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x223 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BC0D7FB EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x4F6FC0B1 EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xDADBCCEE EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0xEC56A373 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE9 PUSH2 0x6A CALLDATASIZE PUSH1 0x4 PUSH2 0x1A3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH32 0xF51CCB208F64C7678632570548CD6BA9FF8006466EC703412C917B708A19C9E0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH5 0x5175657279 PUSH1 0xD8 SHL SWAP1 SWAP2 MSTORE PUSH32 0x4BBCC452808EC518CF1B5B4BB97D91D9D8D47960BBF45A7ADAB13B29DDCA3753 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFA PUSH5 0x5175657279 PUSH1 0xD8 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFA PUSH6 0x506F6C696379 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x12B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B5 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1BE DUP4 PUSH2 0x187 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CC PUSH1 0x20 DUP5 ADD PUSH2 0x187 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXP JUMP 0xEF 0x5F 0xCC CALLDATALOAD SWAP3 PUSH6 0xF1D34843E958 0xBB DUP16 0xAE PUSH11 0xA679C1A712A74BB7703E4C 0xE8 0x27 ADDMOD PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"66:681:97:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1049:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"279:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"325:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"334:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"342:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"327:6:103"},"nodeType":"YulFunctionCall","src":"327:22:103"},"nodeType":"YulExpressionStatement","src":"327:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"300:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"309:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"296:3:103"},"nodeType":"YulFunctionCall","src":"296:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"321:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"292:3:103"},"nodeType":"YulFunctionCall","src":"292:32:103"},"nodeType":"YulIf","src":"289:2:103"},{"nodeType":"YulAssignment","src":"360:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"389:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"370:18:103"},"nodeType":"YulFunctionCall","src":"370:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"360:6:103"}]},{"nodeType":"YulAssignment","src":"408:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"441:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"452:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"437:3:103"},"nodeType":"YulFunctionCall","src":"437:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"418:18:103"},"nodeType":"YulFunctionCall","src":"418:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"408:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"237:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"248:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"260:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"268:6:103","type":""}],"src":"192:270:103"},{"body":{"nodeType":"YulBlock","src":"537:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"583:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"592:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"600:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"585:6:103"},"nodeType":"YulFunctionCall","src":"585:22:103"},"nodeType":"YulExpressionStatement","src":"585:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"558:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"567:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"554:3:103"},"nodeType":"YulFunctionCall","src":"554:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"579:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"550:3:103"},"nodeType":"YulFunctionCall","src":"550:32:103"},"nodeType":"YulIf","src":"547:2:103"},{"nodeType":"YulAssignment","src":"618:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"641:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"628:12:103"},"nodeType":"YulFunctionCall","src":"628:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"618:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"503:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"514:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"526:6:103","type":""}],"src":"467:190:103"},{"body":{"nodeType":"YulBlock","src":"763:102:103","statements":[{"nodeType":"YulAssignment","src":"773:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"785:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"796:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"781:3:103"},"nodeType":"YulFunctionCall","src":"781:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"773:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"815:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"830:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"846:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"851:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"842:3:103"},"nodeType":"YulFunctionCall","src":"842:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"855:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"838:3:103"},"nodeType":"YulFunctionCall","src":"838:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"826:3:103"},"nodeType":"YulFunctionCall","src":"826:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"808:6:103"},"nodeType":"YulFunctionCall","src":"808:51:103"},"nodeType":"YulExpressionStatement","src":"808:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"732:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"743:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"754:4:103","type":""}],"src":"662:203:103"},{"body":{"nodeType":"YulBlock","src":"971:76:103","statements":[{"nodeType":"YulAssignment","src":"981:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"993:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1004:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"989:3:103"},"nodeType":"YulFunctionCall","src":"989:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"981:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1023:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1034:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1016:6:103"},"nodeType":"YulFunctionCall","src":"1016:25:103"},"nodeType":"YulExpressionStatement","src":"1016:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"940:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"951:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"962:4:103","type":""}],"src":"870:177:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea26469706673582212200a56ef5fcc359265f1d34843e958bb8fae6aa679c1a712a74bb7703e4ce8270864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BC0D7FB EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x4F6FC0B1 EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xDADBCCEE EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0xEC56A373 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE9 PUSH2 0x6A CALLDATASIZE PUSH1 0x4 PUSH2 0x1A3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH32 0xF51CCB208F64C7678632570548CD6BA9FF8006466EC703412C917B708A19C9E0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH5 0x5175657279 PUSH1 0xD8 SHL SWAP1 SWAP2 MSTORE PUSH32 0x4BBCC452808EC518CF1B5B4BB97D91D9D8D47960BBF45A7ADAB13B29DDCA3753 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFA PUSH5 0x5175657279 PUSH1 0xD8 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFA PUSH6 0x506F6C696379 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x12B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B5 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1BE DUP4 PUSH2 0x187 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CC PUSH1 0x20 DUP5 ADD PUSH2 0x187 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXP JUMP 0xEF 0x5F 0xCC CALLDATALOAD SWAP3 PUSH6 0xF1D34843E958 0xBB DUP16 0xAE PUSH11 0xA679C1A712A74BB7703E4C 0xE8 0x27 ADDMOD PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"66:681:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;472:272;;;;;;:::i;:::-;630:9;:17;;;;;:50;;-1:-1:-1;;;;;630:50:97;;;-1:-1:-1;;;;;;630:50:97;;;;;;;-1:-1:-1;;;691:16:97;;;;:45;;;;;;;;;;;472:272;;;175:48;;-1:-1:-1;;;175:48:97;;;;;1016:25:103;;;1004:2;989:18;175:48:97;;;;;;;;118:50;;-1:-1:-1;;;118:50:97;;285:179;;;;;;:::i;:::-;378:21;433:23;;;;;;;;;;;-1:-1:-1;;;;;433:23:97;;285:179;;;;-1:-1:-1;;;;;826:32:103;;;808:51;;796:2;781:18;285:179:97;763:102:103;232:44:97;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;232:44:97;;;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:270::-;;;321:2;309:9;300:7;296:23;292:32;289:2;;;342:6;334;327:22;289:2;370:29;389:9;370:29;:::i;:::-;360:39;;418:38;452:2;441:9;437:18;418:38;:::i;:::-;408:48;;279:183;;;;;:::o;467:190::-;;579:2;567:9;558:7;554:23;550:32;547:2;;;600:6;592;585:22;547:2;-1:-1:-1;628:23:103;;537:120;-1:-1:-1;537:120:103:o"},"methodIdentifiers":{"POLICY()":"dadbccee","QUERY()":"4f6fc0b1","contracts(bytes32)":"ec56a373","getContract(bytes32)":"e16c7d98","upgradeToV2(address,address)":"2bc0d7fb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"POLICY\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"QUERY\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"getContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"moduleAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compromisedPolicyModuleAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"originalQueryModuleAddress\",\"type\":\"address\"}],\"name\":\"upgradeToV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestRegistryCompromisedController.sol\":\"TestRegistryCompromisedController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/test/TestRegistryCompromisedController.sol\":{\"keccak256\":\"0x69c91063aec505ec3a1a05b77f153b7a42100eae759fcc7507042df2d05b2080\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e5fed7d819178feb828930773ef2d4a61ef22b572b60b76f9b4cb2919382f6b5\",\"dweb:/ipfs/QmY5ZBDzHGLkyBqxyN8L7zVrLjEKqQwyq1sQ5afD4A13bL\"]}},\"version\":1}"}},"contracts/test/TestRegistryControllerUpdated.sol":{"TestRegistryControllerUpdated":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"LogContractDeregistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isNew","type":"bool"}],"name":"LogContractRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"}],"name":"LogReleasePrepared","type":"event"},{"inputs":[],"name":"MAX_CONTRACTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_contracts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_contractsInRelease","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"contractName","outputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contracts","outputs":[{"internalType":"uint256","name":"_numberOfContracts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregisterInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"ensureSender","outputs":[{"internalType":"bool","name":"_senderMatches","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContract","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractInRelease","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMessage","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRelease","outputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_initialRelease","type":"bytes32"}],"name":"initializeRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newRelease","type":"bytes32"}],"name":"prepareRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"registerInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"release","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_message","type":"string"}],"name":"setMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_message","type":"string"}],"name":"upgradeToV2","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611aad806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80636c0f79b6116100b8578063c4d66de81161007c578063c4d66de81461028f578063ce6d41de146102a2578063d22057a9146102b7578063dc527b08146102ca578063e16c7d98146102dd578063f6b3e7d0146102f057610137565b80636c0f79b61461025057806376b707b71461025857806386d1a69f14610260578063893917ea14610269578063b0ef18a01461027c57610137565b8063368b8772116100ff578063368b8772146101b557806348cd4cb1146101c85780634a941e5e146101d157806356bbc19d1461021d578063699235151461023057610137565b80631d5e73141461013c578063208131541461015157806324042a0a146101645780632b34378a1461017f5780632ca65a7914610192575b600080fd5b61014f61014a3660046117b7565b610303565b005b61014f61015f36600461174f565b6103c4565b61016c606481565b6040519081526020015b60405180910390f35b61014f61018d3660046117ef565b610479565b6101a56101a0366004611704565b6104e2565b6040519015158152602001610176565b61014f6101c33660046117ef565b61050c565b61016c60035481565b6102056101df366004611796565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61014f61022b36600461174f565b6105c9565b61016c61023e36600461174f565b60056020526000908152604090205481565b61016c61073c565b60025461016c565b61016c60025481565b61014f61027736600461174f565b61075b565b61020561028a366004611796565b610970565b61014f61029d3660046116cc565b610983565b6102aa610ab9565b60405161017691906118cd565b61014f6102c5366004611767565b610b4b565b61014f6102d8366004611796565b610c00565b6102056102eb36600461174f565b610cb0565b61016c6102fe36600461174f565b610cc4565b6000546201000090046001600160a01b0316632ca65a796103213390565b6040518263ffffffff1660e01b815260040161033d9190611899565b60206040518083038186803b15801561035557600080fd5b505afa158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d919061172f565b6103b25760405162461bcd60e51b81526004016103a99061196e565b60405180910390fd5b6103bf8360008484610cdf565b505050565b6000546201000090046001600160a01b0316632ca65a796103e23390565b6040518263ffffffff1660e01b81526004016103fe9190611899565b60206040518083038186803b15801561041657600080fd5b505afa15801561042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044e919061172f565b61046a5760405162461bcd60e51b81526004016103a99061196e565b61047660025482611099565b50565b60085460ff16156104cc5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5245432d3130323a555047524144455f4f4e43455f4f4d4c590060448201526064016103a9565b6008805460ff191660011790556104768161050c565b60006104f0600254836112bb565b6001600160a01b0316836001600160a01b031614905092915050565b6000546201000090046001600160a01b0316632ca65a7961052a3390565b6040518263ffffffff1660e01b81526004016105469190611899565b60206040518083038186803b15801561055e57600080fd5b505afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610596919061172f565b6105b25760405162461bcd60e51b81526004016103a99061196e565b80516105c5906007906020840190611633565b5050565b600054610100900460ff16158080156105e95750600054600160ff909116105b8061060a57506105f8306112e1565b15801561060a575060005460ff166001145b6106265760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610649576000805461ff0019166101001790555b6000805462010000600160b01b031916306201000002179055600282905561066e3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b0397909716969096179095559254825260069052206106d8916112f4565b506002546000908152600560205260409020600190554360035580156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b600254600090815260066020526040812061075690611300565b905090565b6000546201000090046001600160a01b0316632ca65a796107793390565b6040518263ffffffff1660e01b81526004016107959190611899565b60206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e5919061172f565b6108015760405162461bcd60e51b81526004016103a99061196e565b600254600090815260056020526040902054806108605760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c45415345000000000060448201526064016103a9565b600082815260056020526040902054156108c85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b60648201526084016103a9565b60005b8181101561093a5760025460009081526006602052604081206108ee908361130a565b600254600090815260046020908152604080832084845290915290205490915061092790859060019084906001600160a01b0316610cdf565b506109336001826119b1565b90506108cb565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b490602001610730565b600061097c83836112bb565b9392505050565b600054610100900460ff16158080156109a35750600054600160ff909116105b806109c457506109b2306112e1565b1580156109c4575060005460ff166001145b6109e05760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610a03576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610a2d600090565b6541636365737360d01b14610a6f57610a4e6541636365737360d01b611316565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610a776113fe565b80156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610730565b606060078054610ac8906119e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610af4906119e0565b8015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b5050505050905090565b6000546201000090046001600160a01b0316632ca65a79610b693390565b6040518263ffffffff1660e01b8152600401610b859190611899565b60206040518083038186803b158015610b9d57600080fd5b505afa158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd5919061172f565b610bf15760405162461bcd60e51b81526004016103a99061196e565b6105c560025460008484610cdf565b6000546201000090046001600160a01b0316632ca65a79610c1e3390565b6040518263ffffffff1660e01b8152600401610c3a9190611899565b60206040518083038186803b158015610c5257600080fd5b505afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a919061172f565b610ca65760405162461bcd60e51b81526004016103a99061196e565b6105c58282611099565b6000610cbe600254836112bb565b92915050565b6002546000908152600660205260408120610cbe908361130a565b6000848152600660205260408120606490610cf990611300565b10610d505760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b60648201526084016103a9565b600085815260056020526040902054151580610d695750835b610db55760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e00000060448201526064016103a9565b82610e0c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b60648201526084016103a9565b6000858152600660205260409020610e24908461146b565b1580610e7557508276496e7374616e63654f70657261746f725365727669636560481b148015610e75575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610ecc5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b60648201526084016103a9565b6001600160a01b038216610f2e5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b60648201526084016103a9565b60008581526004602090815260408083208684529091529020546001600160a01b0316610f92576000858152600660205260409020610f6d90846112f4565b506000858152600560205260408120805491610f8883611a1b565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610fd790611300565b600086815260056020526040902054146110425760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a796110b73390565b6040518263ffffffff1660e01b81526004016110d39190611899565b60206040518083038186803b1580156110eb57600080fd5b505afa1580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611123919061172f565b61113f5760405162461bcd60e51b81526004016103a99061196e565b6000828152600660205260409020611157908261146b565b6111a35760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e000060448201526064016103a9565b60008281526006602052604090206111bb9082611483565b5060008281526005602052604081208054600192906111db9084906119c9565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b03191690558483526006909152902061121a90611300565b600083815260056020526040902054146112855760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a1319101610730565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b600061097c838361148f565b6000610cbe825490565b600061097c83836114de565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561136057600080fd5b505afa158015611374573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139891906116e8565b90506001600160a01b0381166112ef5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166114695760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b565b6000818152600183016020526040812054151561097c565b600061097c8383611516565b60008181526001830160205260408120546114d657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cbe565b506000610cbe565b600082600001828154811061150357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054801561162957600061153a6001836119c9565b855490915060009061154e906001906119c9565b90508181146115cf57600086600001828154811061157c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106115ad57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115ee57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cbe565b6000915050610cbe565b82805461163f906119e0565b90600052602060002090601f01602090048101928261166157600085556116a7565b82601f1061167a57805160ff19168380011785556116a7565b828001600101855582156116a7579182015b828111156116a757825182559160200191906001019061168c565b506116b39291506116b7565b5090565b5b808211156116b357600081556001016116b8565b6000602082840312156116dd578081fd5b813561097c81611a62565b6000602082840312156116f9578081fd5b815161097c81611a62565b60008060408385031215611716578081fd5b823561172181611a62565b946020939093013593505050565b600060208284031215611740578081fd5b8151801515811461097c578182fd5b600060208284031215611760578081fd5b5035919050565b60008060408385031215611779578182fd5b82359150602083013561178b81611a62565b809150509250929050565b600080604083850312156117a8578182fd5b50508035926020909101359150565b6000806000606084860312156117cb578081fd5b833592506020840135915060408401356117e481611a62565b809150509250925092565b600060208284031215611800578081fd5b813567ffffffffffffffff80821115611817578283fd5b818401915084601f83011261182a578283fd5b81358181111561183c5761183c611a4c565b604051601f8201601f19908116603f0116810190838211818310171561186457611864611a4c565b8160405282815287602084870101111561187c578586fd5b826020860160208301379182016020019490945295945050505050565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6000602080835283518082850152825b818110156118f9578581018301518582016040015282016118dd565b8181111561190a5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b600082198211156119c4576119c4611a36565b500190565b6000828210156119db576119db611a36565b500390565b6002810460018216806119f457607f821691505b60208210811415611a1557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611a2f57611a2f611a36565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461047657600080fdfea26469706673582212204c7f94f441c1f862908cff0be31a75f685e50b915477a4cbe46f145ab6d61f9264736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x1AAD DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x137 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6C0F79B6 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xCE6D41DE EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x2F0 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x76B707B7 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x86D1A69F EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0xB0EF18A0 EQ PUSH2 0x27C JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x368B8772 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x368B8772 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x48CD4CB1 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x4A941E5E EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x56BBC19D EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x69923515 EQ PUSH2 0x230 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x24042A0A EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x2B34378A EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x2CA65A79 EQ PUSH2 0x192 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0x17B7 JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x3C4 JUMP JUMPDEST PUSH2 0x16C PUSH1 0x64 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x479 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1704 JUMP JUMPDEST PUSH2 0x4E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH2 0x16C PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x22B CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x5C9 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x23E CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x73C JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x16C JUMP JUMPDEST PUSH2 0x16C PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x277 CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x75B JUMP JUMPDEST PUSH2 0x205 PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x970 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x16CC JUMP JUMPDEST PUSH2 0x983 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x176 SWAP2 SWAP1 PUSH2 0x18CD JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1767 JUMP JUMPDEST PUSH2 0xB4B JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xC00 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0xCB0 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0xCC4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x321 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33D SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x369 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x3B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3BF DUP4 PUSH1 0x0 DUP5 DUP5 PUSH2 0xCDF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3E2 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3FE SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x42A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x44E SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x46A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x476 PUSH1 0x2 SLOAD DUP3 PUSH2 0x1099 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3130323A555047524144455F4F4E43455F4F4D4C5900 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x476 DUP2 PUSH2 0x50C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F0 PUSH1 0x2 SLOAD DUP4 PUSH2 0x12BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x52A CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x55E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x572 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x5B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST DUP1 MLOAD PUSH2 0x5C5 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x1633 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x5E9 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x60A JUMPI POP PUSH2 0x5F8 ADDRESS PUSH2 0x12E1 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x60A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x1920 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x649 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND ADDRESS PUSH3 0x10000 MUL OR SWAP1 SSTORE PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH2 0x66E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 SWAP1 SWAP8 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE SWAP3 SLOAD DUP3 MSTORE PUSH1 0x6 SWAP1 MSTORE KECCAK256 PUSH2 0x6D8 SWAP2 PUSH2 0x12F4 JUMP JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE NUMBER PUSH1 0x3 SSTORE DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x756 SWAP1 PUSH2 0x1300 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x779 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x795 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x801 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x860 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030313A454D5054595F52454C454153450000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030323A4E45575F52454C454153455F4E4F545F454D PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x505459 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x93A JUMPI PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x8EE SWAP1 DUP4 PUSH2 0x130A JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x927 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xCDF JUMP JUMPDEST POP PUSH2 0x933 PUSH1 0x1 DUP3 PUSH2 0x19B1 JUMP JUMPDEST SWAP1 POP PUSH2 0x8CB JUMP JUMPDEST POP PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD50692EB75750D216C747528A2DFCED5915EAB7B4EE40BCF8120D0D035297B4 SWAP1 PUSH1 0x20 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x12BB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x9A3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x9C4 JUMPI POP PUSH2 0x9B2 ADDRESS PUSH2 0x12E1 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x9C4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x9E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x1920 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xA03 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xA2D PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xA6F JUMPI PUSH2 0xA4E PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1316 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xA77 PUSH2 0x13FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x7 DUP1 SLOAD PUSH2 0xAC8 SWAP1 PUSH2 0x19E0 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF4 SWAP1 PUSH2 0x19E0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB41 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB16 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB41 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB24 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xB69 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB85 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBD5 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0xBF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5C5 PUSH1 0x2 SLOAD PUSH1 0x0 DUP5 DUP5 PUSH2 0xCDF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xC1E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC8A SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0xCA6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5C5 DUP3 DUP3 PUSH2 0x1099 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE PUSH1 0x2 SLOAD DUP4 PUSH2 0x12BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xCBE SWAP1 DUP4 PUSH2 0x130A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x64 SWAP1 PUSH2 0xCF9 SWAP1 PUSH2 0x1300 JUMP JUMPDEST LT PUSH2 0xD50 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031303A4D41585F434F4E5452414354535F4C494D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO DUP1 PUSH2 0xD69 JUMPI POP DUP4 JUMPDEST PUSH2 0xDB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031313A52454C454153455F554E4B4E4F574E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST DUP3 PUSH2 0xE0C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031323A434F4E54524143545F4E414D455F454D5054 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x59 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xE24 SWAP1 DUP5 PUSH2 0x146B JUMP JUMPDEST ISZERO DUP1 PUSH2 0xE75 JUMPI POP DUP3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL EQ DUP1 ISZERO PUSH2 0xE75 JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0xECC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031333A434F4E54524143545F4E414D455F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031343A434F4E54524143545F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xF92 JUMPI PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xF6D SWAP1 DUP5 PUSH2 0x12F4 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xF88 DUP4 PUSH2 0x1A1B JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE DUP8 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0xFD7 SWAP1 PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1042 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031353A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x7C5C4E97E59CBD96C53653DFD3F538E50D7BAB44BAA352481FDC3FA7F18E3008 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x10B7 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10D3 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1123 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x113F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1157 SWAP1 DUP3 PUSH2 0x146B JUMP JUMPDEST PUSH2 0x11A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032303A434F4E54524143545F554E4B4E4F574E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x11BB SWAP1 DUP3 PUSH2 0x1483 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x11DB SWAP1 DUP5 SWAP1 PUSH2 0x19C9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0x121A SWAP1 PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1285 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032313A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x95BD8DB0F80EC14D4D7E375FB7FB3603144BA5B594106E0410243553F97A131 SWAP2 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP3 DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x148F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x14DE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1374 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1398 SWAP2 SWAP1 PUSH2 0x16E8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1469 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x97C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x1516 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x14D6 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xCBE JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xCBE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1503 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1629 JUMPI PUSH1 0x0 PUSH2 0x153A PUSH1 0x1 DUP4 PUSH2 0x19C9 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x154E SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x19C9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x15CF JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x157C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x15AD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x15EE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xCBE JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xCBE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x163F SWAP1 PUSH2 0x19E0 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1661 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x16A7 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x167A JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x16A7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x16A7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x16A7 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x168C JUMP JUMPDEST POP PUSH2 0x16B3 SWAP3 SWAP2 POP PUSH2 0x16B7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x16B3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x16B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16DD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x97C DUP2 PUSH2 0x1A62 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x97C DUP2 PUSH2 0x1A62 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1716 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1721 DUP2 PUSH2 0x1A62 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1740 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x97C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1760 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1779 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x178B DUP2 PUSH2 0x1A62 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17A8 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x17CB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x17E4 DUP2 PUSH2 0x1A62 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1800 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1817 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x182A JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x183C JUMPI PUSH2 0x183C PUSH2 0x1A4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1864 JUMPI PUSH2 0x1864 PUSH2 0x1A4C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x187C JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x18F9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x18DD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x190A JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x19C4 JUMPI PUSH2 0x19C4 PUSH2 0x1A36 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x19DB JUMPI PUSH2 0x19DB PUSH2 0x1A36 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x19F4 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1A15 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1A2F JUMPI PUSH2 0x1A2F PUSH2 0x1A36 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C PUSH32 0x94F441C1F862908CFF0BE31A75F685E50B915477A4CBE46F145AB6D61F926473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"115:490:98:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;115:490:98;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;115:490:98;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:13228:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"629:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"675:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"684:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"692:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"677:6:103"},"nodeType":"YulFunctionCall","src":"677:22:103"},"nodeType":"YulExpressionStatement","src":"677:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"650:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"659:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"646:3:103"},"nodeType":"YulFunctionCall","src":"646:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"671:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"642:3:103"},"nodeType":"YulFunctionCall","src":"642:32:103"},"nodeType":"YulIf","src":"639:2:103"},{"nodeType":"YulVariableDeclaration","src":"710:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"736:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"723:12:103"},"nodeType":"YulFunctionCall","src":"723:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"714:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"780:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"755:24:103"},"nodeType":"YulFunctionCall","src":"755:31:103"},"nodeType":"YulExpressionStatement","src":"755:31:103"},{"nodeType":"YulAssignment","src":"795:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"805:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"795:6:103"}]},{"nodeType":"YulAssignment","src":"819:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"846:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"857:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"842:3:103"},"nodeType":"YulFunctionCall","src":"842:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"829:12:103"},"nodeType":"YulFunctionCall","src":"829:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"819:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"587:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"598:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"610:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"618:6:103","type":""}],"src":"542:325:103"},{"body":{"nodeType":"YulBlock","src":"950:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"996:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1005:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1013:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"998:6:103"},"nodeType":"YulFunctionCall","src":"998:22:103"},"nodeType":"YulExpressionStatement","src":"998:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"971:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"980:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"992:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"963:3:103"},"nodeType":"YulFunctionCall","src":"963:32:103"},"nodeType":"YulIf","src":"960:2:103"},{"nodeType":"YulVariableDeclaration","src":"1031:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1050:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1044:5:103"},"nodeType":"YulFunctionCall","src":"1044:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1035:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1113:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1122:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1130:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1115:6:103"},"nodeType":"YulFunctionCall","src":"1115:22:103"},"nodeType":"YulExpressionStatement","src":"1115:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1082:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1103:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1096:6:103"},"nodeType":"YulFunctionCall","src":"1096:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1089:6:103"},"nodeType":"YulFunctionCall","src":"1089:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1079:2:103"},"nodeType":"YulFunctionCall","src":"1079:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1072:6:103"},"nodeType":"YulFunctionCall","src":"1072:40:103"},"nodeType":"YulIf","src":"1069:2:103"},{"nodeType":"YulAssignment","src":"1148:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1158:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1148:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"916:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"927:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"939:6:103","type":""}],"src":"872:297:103"},{"body":{"nodeType":"YulBlock","src":"1244:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1290:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1299:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1307:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1292:6:103"},"nodeType":"YulFunctionCall","src":"1292:22:103"},"nodeType":"YulExpressionStatement","src":"1292:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1265:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1274:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1261:3:103"},"nodeType":"YulFunctionCall","src":"1261:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1286:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1257:3:103"},"nodeType":"YulFunctionCall","src":"1257:32:103"},"nodeType":"YulIf","src":"1254:2:103"},{"nodeType":"YulAssignment","src":"1325:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1348:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1335:12:103"},"nodeType":"YulFunctionCall","src":"1335:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1325:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1210:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1221:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1233:6:103","type":""}],"src":"1174:190:103"},{"body":{"nodeType":"YulBlock","src":"1456:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"1502:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1511:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1519:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1504:6:103"},"nodeType":"YulFunctionCall","src":"1504:22:103"},"nodeType":"YulExpressionStatement","src":"1504:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1477:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1486:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1473:3:103"},"nodeType":"YulFunctionCall","src":"1473:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1498:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1469:3:103"},"nodeType":"YulFunctionCall","src":"1469:32:103"},"nodeType":"YulIf","src":"1466:2:103"},{"nodeType":"YulAssignment","src":"1537:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1560:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1547:12:103"},"nodeType":"YulFunctionCall","src":"1547:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1537:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1579:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1620:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1605:3:103"},"nodeType":"YulFunctionCall","src":"1605:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1592:12:103"},"nodeType":"YulFunctionCall","src":"1592:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1583:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1658:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1633:24:103"},"nodeType":"YulFunctionCall","src":"1633:31:103"},"nodeType":"YulExpressionStatement","src":"1633:31:103"},{"nodeType":"YulAssignment","src":"1673:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1683:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1673:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1414:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1425:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1437:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1445:6:103","type":""}],"src":"1369:325:103"},{"body":{"nodeType":"YulBlock","src":"1786:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"1832:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1841:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1849:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1834:6:103"},"nodeType":"YulFunctionCall","src":"1834:22:103"},"nodeType":"YulExpressionStatement","src":"1834:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1807:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1816:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1803:3:103"},"nodeType":"YulFunctionCall","src":"1803:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1828:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1799:3:103"},"nodeType":"YulFunctionCall","src":"1799:32:103"},"nodeType":"YulIf","src":"1796:2:103"},{"nodeType":"YulAssignment","src":"1867:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1890:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1877:12:103"},"nodeType":"YulFunctionCall","src":"1877:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1867:6:103"}]},{"nodeType":"YulAssignment","src":"1909:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1936:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1947:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1932:3:103"},"nodeType":"YulFunctionCall","src":"1932:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1919:12:103"},"nodeType":"YulFunctionCall","src":"1919:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1909:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1744:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1755:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1767:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1775:6:103","type":""}],"src":"1699:258:103"},{"body":{"nodeType":"YulBlock","src":"2066:289:103","statements":[{"body":{"nodeType":"YulBlock","src":"2112:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2121:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2129:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2114:6:103"},"nodeType":"YulFunctionCall","src":"2114:22:103"},"nodeType":"YulExpressionStatement","src":"2114:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2087:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2096:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2083:3:103"},"nodeType":"YulFunctionCall","src":"2083:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2108:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2079:3:103"},"nodeType":"YulFunctionCall","src":"2079:32:103"},"nodeType":"YulIf","src":"2076:2:103"},{"nodeType":"YulAssignment","src":"2147:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2170:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2157:12:103"},"nodeType":"YulFunctionCall","src":"2157:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2147:6:103"}]},{"nodeType":"YulAssignment","src":"2189:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2227:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2212:3:103"},"nodeType":"YulFunctionCall","src":"2212:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2199:12:103"},"nodeType":"YulFunctionCall","src":"2199:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2189:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2240:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2270:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2281:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2266:3:103"},"nodeType":"YulFunctionCall","src":"2266:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2253:12:103"},"nodeType":"YulFunctionCall","src":"2253:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2244:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2319:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2294:24:103"},"nodeType":"YulFunctionCall","src":"2294:31:103"},"nodeType":"YulExpressionStatement","src":"2294:31:103"},{"nodeType":"YulAssignment","src":"2334:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2344:5:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2334:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2016:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2027:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2039:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2047:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2055:6:103","type":""}],"src":"1962:393:103"},{"body":{"nodeType":"YulBlock","src":"2440:887:103","statements":[{"body":{"nodeType":"YulBlock","src":"2486:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2495:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2503:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2488:6:103"},"nodeType":"YulFunctionCall","src":"2488:22:103"},"nodeType":"YulExpressionStatement","src":"2488:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2461:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2470:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2457:3:103"},"nodeType":"YulFunctionCall","src":"2457:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2482:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2453:3:103"},"nodeType":"YulFunctionCall","src":"2453:32:103"},"nodeType":"YulIf","src":"2450:2:103"},{"nodeType":"YulVariableDeclaration","src":"2521:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2548:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2535:12:103"},"nodeType":"YulFunctionCall","src":"2535:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2525:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2567:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2577:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2571:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2622:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2631:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2639:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2624:6:103"},"nodeType":"YulFunctionCall","src":"2624:22:103"},"nodeType":"YulExpressionStatement","src":"2624:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2610:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2618:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2607:2:103"},"nodeType":"YulFunctionCall","src":"2607:14:103"},"nodeType":"YulIf","src":"2604:2:103"},{"nodeType":"YulVariableDeclaration","src":"2657:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2671:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2682:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2667:3:103"},"nodeType":"YulFunctionCall","src":"2667:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2661:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2737:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2746:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2754:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2739:6:103"},"nodeType":"YulFunctionCall","src":"2739:22:103"},"nodeType":"YulExpressionStatement","src":"2739:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2716:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2712:3:103"},"nodeType":"YulFunctionCall","src":"2712:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2727:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2708:3:103"},"nodeType":"YulFunctionCall","src":"2708:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2701:6:103"},"nodeType":"YulFunctionCall","src":"2701:35:103"},"nodeType":"YulIf","src":"2698:2:103"},{"nodeType":"YulVariableDeclaration","src":"2772:26:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2795:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2782:12:103"},"nodeType":"YulFunctionCall","src":"2782:16:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2776:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2821:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2823:16:103"},"nodeType":"YulFunctionCall","src":"2823:18:103"},"nodeType":"YulExpressionStatement","src":"2823:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2813:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2817:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2810:2:103"},"nodeType":"YulFunctionCall","src":"2810:10:103"},"nodeType":"YulIf","src":"2807:2:103"},{"nodeType":"YulVariableDeclaration","src":"2852:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2866:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2862:3:103"},"nodeType":"YulFunctionCall","src":"2862:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2856:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2878:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2898:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2892:5:103"},"nodeType":"YulFunctionCall","src":"2892:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2882:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2910:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2932:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2956:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2960:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2952:3:103"},"nodeType":"YulFunctionCall","src":"2952:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"2967:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2948:3:103"},"nodeType":"YulFunctionCall","src":"2948:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"2972:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2944:3:103"},"nodeType":"YulFunctionCall","src":"2944:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"2977:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2940:3:103"},"nodeType":"YulFunctionCall","src":"2940:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2928:3:103"},"nodeType":"YulFunctionCall","src":"2928:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2914:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3040:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3042:16:103"},"nodeType":"YulFunctionCall","src":"3042:18:103"},"nodeType":"YulExpressionStatement","src":"3042:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2999:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3011:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2996:2:103"},"nodeType":"YulFunctionCall","src":"2996:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3019:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3031:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3016:2:103"},"nodeType":"YulFunctionCall","src":"3016:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2993:2:103"},"nodeType":"YulFunctionCall","src":"2993:46:103"},"nodeType":"YulIf","src":"2990:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3078:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3082:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:22:103"},"nodeType":"YulExpressionStatement","src":"3071:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3109:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"3117:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3102:6:103"},"nodeType":"YulFunctionCall","src":"3102:18:103"},"nodeType":"YulExpressionStatement","src":"3102:18:103"},{"body":{"nodeType":"YulBlock","src":"3166:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3175:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3183:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3168:6:103"},"nodeType":"YulFunctionCall","src":"3168:22:103"},"nodeType":"YulExpressionStatement","src":"3168:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3143:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"3147:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3139:3:103"},"nodeType":"YulFunctionCall","src":"3139:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3152:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3135:3:103"},"nodeType":"YulFunctionCall","src":"3135:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3157:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3132:2:103"},"nodeType":"YulFunctionCall","src":"3132:33:103"},"nodeType":"YulIf","src":"3129:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3218:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3226:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3214:3:103"},"nodeType":"YulFunctionCall","src":"3214:15:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3235:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3239:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3231:3:103"},"nodeType":"YulFunctionCall","src":"3231:11:103"},{"name":"_3","nodeType":"YulIdentifier","src":"3244:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3201:12:103"},"nodeType":"YulFunctionCall","src":"3201:46:103"},"nodeType":"YulExpressionStatement","src":"3201:46:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3271:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"3279:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3267:3:103"},"nodeType":"YulFunctionCall","src":"3267:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"3284:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3263:3:103"},"nodeType":"YulFunctionCall","src":"3263:24:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3289:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3256:6:103"},"nodeType":"YulFunctionCall","src":"3256:40:103"},"nodeType":"YulExpressionStatement","src":"3256:40:103"},{"nodeType":"YulAssignment","src":"3305:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3315:6:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3305:6:103"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2406:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2417:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2429:6:103","type":""}],"src":"2360:967:103"},{"body":{"nodeType":"YulBlock","src":"3402:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3448:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3457:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3465:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3450:6:103"},"nodeType":"YulFunctionCall","src":"3450:22:103"},"nodeType":"YulExpressionStatement","src":"3450:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3423:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3432:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3419:3:103"},"nodeType":"YulFunctionCall","src":"3419:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3444:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3415:3:103"},"nodeType":"YulFunctionCall","src":"3415:32:103"},"nodeType":"YulIf","src":"3412:2:103"},{"nodeType":"YulAssignment","src":"3483:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3506:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3493:12:103"},"nodeType":"YulFunctionCall","src":"3493:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3483:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3368:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3379:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3391:6:103","type":""}],"src":"3332:190:103"},{"body":{"nodeType":"YulBlock","src":"3628:102:103","statements":[{"nodeType":"YulAssignment","src":"3638:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3650:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3661:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3646:3:103"},"nodeType":"YulFunctionCall","src":"3646:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3638:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3680:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3695:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3711:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3716:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3707:3:103"},"nodeType":"YulFunctionCall","src":"3707:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3720:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3703:3:103"},"nodeType":"YulFunctionCall","src":"3703:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3691:3:103"},"nodeType":"YulFunctionCall","src":"3691:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3673:6:103"},"nodeType":"YulFunctionCall","src":"3673:51:103"},"nodeType":"YulExpressionStatement","src":"3673:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3597:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3608:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3619:4:103","type":""}],"src":"3527:203:103"},{"body":{"nodeType":"YulBlock","src":"3927:164:103","statements":[{"nodeType":"YulAssignment","src":"3937:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3949:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3960:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3945:3:103"},"nodeType":"YulFunctionCall","src":"3945:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3937:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3979:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3994:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4010:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4015:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4006:3:103"},"nodeType":"YulFunctionCall","src":"4006:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4019:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4002:3:103"},"nodeType":"YulFunctionCall","src":"4002:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3990:3:103"},"nodeType":"YulFunctionCall","src":"3990:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3972:6:103"},"nodeType":"YulFunctionCall","src":"3972:51:103"},"nodeType":"YulExpressionStatement","src":"3972:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4043:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4054:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4039:3:103"},"nodeType":"YulFunctionCall","src":"4039:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4059:25:103","type":"","value":"InstanceOperatorService"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4032:6:103"},"nodeType":"YulFunctionCall","src":"4032:53:103"},"nodeType":"YulExpressionStatement","src":"4032:53:103"}]},"name":"abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3896:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3907:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3918:4:103","type":""}],"src":"3735:356:103"},{"body":{"nodeType":"YulBlock","src":"4191:92:103","statements":[{"nodeType":"YulAssignment","src":"4201:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4213:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4224:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4209:3:103"},"nodeType":"YulFunctionCall","src":"4209:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4201:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4243:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4268:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4261:6:103"},"nodeType":"YulFunctionCall","src":"4261:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4254:6:103"},"nodeType":"YulFunctionCall","src":"4254:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4236:6:103"},"nodeType":"YulFunctionCall","src":"4236:41:103"},"nodeType":"YulExpressionStatement","src":"4236:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4160:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4171:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4182:4:103","type":""}],"src":"4096:187:103"},{"body":{"nodeType":"YulBlock","src":"4389:76:103","statements":[{"nodeType":"YulAssignment","src":"4399:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4411:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4422:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4407:3:103"},"nodeType":"YulFunctionCall","src":"4407:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4399:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4441:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4452:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4434:6:103"},"nodeType":"YulFunctionCall","src":"4434:25:103"},"nodeType":"YulExpressionStatement","src":"4434:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4358:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4369:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4380:4:103","type":""}],"src":"4288:177:103"},{"body":{"nodeType":"YulBlock","src":"4599:119:103","statements":[{"nodeType":"YulAssignment","src":"4609:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4632:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4617:3:103"},"nodeType":"YulFunctionCall","src":"4617:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4609:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4651:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4662:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4644:6:103"},"nodeType":"YulFunctionCall","src":"4644:25:103"},"nodeType":"YulExpressionStatement","src":"4644:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4689:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4700:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4685:3:103"},"nodeType":"YulFunctionCall","src":"4685:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"4705:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4678:6:103"},"nodeType":"YulFunctionCall","src":"4678:34:103"},"nodeType":"YulExpressionStatement","src":"4678:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4560:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4571:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4579:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4590:4:103","type":""}],"src":"4470:248:103"},{"body":{"nodeType":"YulBlock","src":"4902:248:103","statements":[{"nodeType":"YulAssignment","src":"4912:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4924:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4935:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4920:3:103"},"nodeType":"YulFunctionCall","src":"4920:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4912:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4955:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4966:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4948:6:103"},"nodeType":"YulFunctionCall","src":"4948:25:103"},"nodeType":"YulExpressionStatement","src":"4948:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4993:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5004:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4989:3:103"},"nodeType":"YulFunctionCall","src":"4989:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5009:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4982:6:103"},"nodeType":"YulFunctionCall","src":"4982:34:103"},"nodeType":"YulExpressionStatement","src":"4982:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5047:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5032:3:103"},"nodeType":"YulFunctionCall","src":"5032:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5056:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5072:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5077:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5068:3:103"},"nodeType":"YulFunctionCall","src":"5068:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5081:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5064:3:103"},"nodeType":"YulFunctionCall","src":"5064:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5052:3:103"},"nodeType":"YulFunctionCall","src":"5052:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5025:6:103"},"nodeType":"YulFunctionCall","src":"5025:60:103"},"nodeType":"YulExpressionStatement","src":"5025:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5105:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5116:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5101:3:103"},"nodeType":"YulFunctionCall","src":"5101:18:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5135:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5128:6:103"},"nodeType":"YulFunctionCall","src":"5128:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5121:6:103"},"nodeType":"YulFunctionCall","src":"5121:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5094:6:103"},"nodeType":"YulFunctionCall","src":"5094:50:103"},"nodeType":"YulExpressionStatement","src":"5094:50:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_address_t_bool__to_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4847:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4858:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4866:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4874:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4882:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4893:4:103","type":""}],"src":"4723:427:103"},{"body":{"nodeType":"YulBlock","src":"5262:87:103","statements":[{"nodeType":"YulAssignment","src":"5272:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5284:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5295:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5280:3:103"},"nodeType":"YulFunctionCall","src":"5280:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5272:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5314:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5329:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5337:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5325:3:103"},"nodeType":"YulFunctionCall","src":"5325:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5307:6:103"},"nodeType":"YulFunctionCall","src":"5307:36:103"},"nodeType":"YulExpressionStatement","src":"5307:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5231:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5242:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5253:4:103","type":""}],"src":"5155:194:103"},{"body":{"nodeType":"YulBlock","src":"5475:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"5485:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5495:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5489:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5513:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5524:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5506:6:103"},"nodeType":"YulFunctionCall","src":"5506:21:103"},"nodeType":"YulExpressionStatement","src":"5506:21:103"},{"nodeType":"YulVariableDeclaration","src":"5536:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5556:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5550:5:103"},"nodeType":"YulFunctionCall","src":"5550:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5540:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5583:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5594:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5579:3:103"},"nodeType":"YulFunctionCall","src":"5579:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"5599:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5572:6:103"},"nodeType":"YulFunctionCall","src":"5572:34:103"},"nodeType":"YulExpressionStatement","src":"5572:34:103"},{"nodeType":"YulVariableDeclaration","src":"5615:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"5624:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5619:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5687:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5716:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"5727:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5712:3:103"},"nodeType":"YulFunctionCall","src":"5712:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"5731:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5708:3:103"},"nodeType":"YulFunctionCall","src":"5708:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5750:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"5758:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5746:3:103"},"nodeType":"YulFunctionCall","src":"5746:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5762:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5742:3:103"},"nodeType":"YulFunctionCall","src":"5742:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5736:5:103"},"nodeType":"YulFunctionCall","src":"5736:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5701:6:103"},"nodeType":"YulFunctionCall","src":"5701:66:103"},"nodeType":"YulExpressionStatement","src":"5701:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5648:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5651:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5645:2:103"},"nodeType":"YulFunctionCall","src":"5645:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5659:19:103","statements":[{"nodeType":"YulAssignment","src":"5661:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5670:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5673:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5666:3:103"},"nodeType":"YulFunctionCall","src":"5666:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5661:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"5641:3:103","statements":[]},"src":"5637:140:103"},{"body":{"nodeType":"YulBlock","src":"5811:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5840:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"5851:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5836:3:103"},"nodeType":"YulFunctionCall","src":"5836:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"5860:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5832:3:103"},"nodeType":"YulFunctionCall","src":"5832:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"5865:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5825:6:103"},"nodeType":"YulFunctionCall","src":"5825:45:103"},"nodeType":"YulExpressionStatement","src":"5825:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5792:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5795:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5789:2:103"},"nodeType":"YulFunctionCall","src":"5789:13:103"},"nodeType":"YulIf","src":"5786:2:103"},{"nodeType":"YulAssignment","src":"5889:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5905:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5924:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5932:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5920:3:103"},"nodeType":"YulFunctionCall","src":"5920:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5941:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5937:3:103"},"nodeType":"YulFunctionCall","src":"5937:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5916:3:103"},"nodeType":"YulFunctionCall","src":"5916:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5901:3:103"},"nodeType":"YulFunctionCall","src":"5901:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"5948:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5897:3:103"},"nodeType":"YulFunctionCall","src":"5897:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5889:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5444:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5455:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5466:4:103","type":""}],"src":"5354:603:103"},{"body":{"nodeType":"YulBlock","src":"6136:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6164:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6146:6:103"},"nodeType":"YulFunctionCall","src":"6146:21:103"},"nodeType":"YulExpressionStatement","src":"6146:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6187:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6198:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6183:3:103"},"nodeType":"YulFunctionCall","src":"6183:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6203:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6176:6:103"},"nodeType":"YulFunctionCall","src":"6176:30:103"},"nodeType":"YulExpressionStatement","src":"6176:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6237:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6222:3:103"},"nodeType":"YulFunctionCall","src":"6222:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6242:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6215:6:103"},"nodeType":"YulFunctionCall","src":"6215:62:103"},"nodeType":"YulExpressionStatement","src":"6215:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6297:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6308:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6293:3:103"},"nodeType":"YulFunctionCall","src":"6293:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6313:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6286:6:103"},"nodeType":"YulFunctionCall","src":"6286:35:103"},"nodeType":"YulExpressionStatement","src":"6286:35:103"},{"nodeType":"YulAssignment","src":"6330:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6353:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6338:3:103"},"nodeType":"YulFunctionCall","src":"6338:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6330:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6113:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6127:4:103","type":""}],"src":"5962:401:103"},{"body":{"nodeType":"YulBlock","src":"6542:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6559:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6570:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6552:6:103"},"nodeType":"YulFunctionCall","src":"6552:21:103"},"nodeType":"YulExpressionStatement","src":"6552:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6593:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6604:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6589:3:103"},"nodeType":"YulFunctionCall","src":"6589:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6609:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6582:6:103"},"nodeType":"YulFunctionCall","src":"6582:30:103"},"nodeType":"YulExpressionStatement","src":"6582:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6632:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6643:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6628:3:103"},"nodeType":"YulFunctionCall","src":"6628:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6648:34:103","type":"","value":"ERROR:REC-021:CONTRACT_NUMBER_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6621:6:103"},"nodeType":"YulFunctionCall","src":"6621:62:103"},"nodeType":"YulExpressionStatement","src":"6621:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6703:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6714:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6699:3:103"},"nodeType":"YulFunctionCall","src":"6699:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6719:8:103","type":"","value":"SMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6692:6:103"},"nodeType":"YulFunctionCall","src":"6692:36:103"},"nodeType":"YulExpressionStatement","src":"6692:36:103"},{"nodeType":"YulAssignment","src":"6737:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6749:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6760:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6745:3:103"},"nodeType":"YulFunctionCall","src":"6745:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6737:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6519:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6533:4:103","type":""}],"src":"6368:402:103"},{"body":{"nodeType":"YulBlock","src":"6949:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6977:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6959:6:103"},"nodeType":"YulFunctionCall","src":"6959:21:103"},"nodeType":"YulExpressionStatement","src":"6959:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7000:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7011:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6996:3:103"},"nodeType":"YulFunctionCall","src":"6996:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7016:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6989:6:103"},"nodeType":"YulFunctionCall","src":"6989:30:103"},"nodeType":"YulExpressionStatement","src":"6989:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7039:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7050:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7035:3:103"},"nodeType":"YulFunctionCall","src":"7035:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7055:34:103","type":"","value":"ERROR:REC-012:CONTRACT_NAME_EMPT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7028:6:103"},"nodeType":"YulFunctionCall","src":"7028:62:103"},"nodeType":"YulExpressionStatement","src":"7028:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7121:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7106:3:103"},"nodeType":"YulFunctionCall","src":"7106:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7126:3:103","type":"","value":"Y"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7099:6:103"},"nodeType":"YulFunctionCall","src":"7099:31:103"},"nodeType":"YulExpressionStatement","src":"7099:31:103"},{"nodeType":"YulAssignment","src":"7139:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7162:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7147:3:103"},"nodeType":"YulFunctionCall","src":"7147:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7139:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6926:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6940:4:103","type":""}],"src":"6775:397:103"},{"body":{"nodeType":"YulBlock","src":"7351:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7368:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7379:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7361:6:103"},"nodeType":"YulFunctionCall","src":"7361:21:103"},"nodeType":"YulExpressionStatement","src":"7361:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7402:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7413:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7398:3:103"},"nodeType":"YulFunctionCall","src":"7398:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7418:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7391:6:103"},"nodeType":"YulFunctionCall","src":"7391:30:103"},"nodeType":"YulExpressionStatement","src":"7391:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7441:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7452:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7437:3:103"},"nodeType":"YulFunctionCall","src":"7437:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7457:29:103","type":"","value":"ERROR:REC-001:EMPTY_RELEASE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7430:6:103"},"nodeType":"YulFunctionCall","src":"7430:57:103"},"nodeType":"YulExpressionStatement","src":"7430:57:103"},{"nodeType":"YulAssignment","src":"7496:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7508:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7519:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7504:3:103"},"nodeType":"YulFunctionCall","src":"7504:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7496:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7328:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7342:4:103","type":""}],"src":"7177:351:103"},{"body":{"nodeType":"YulBlock","src":"7707:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7724:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7735:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7717:6:103"},"nodeType":"YulFunctionCall","src":"7717:21:103"},"nodeType":"YulExpressionStatement","src":"7717:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7758:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7769:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7754:3:103"},"nodeType":"YulFunctionCall","src":"7754:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7774:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7747:6:103"},"nodeType":"YulFunctionCall","src":"7747:30:103"},"nodeType":"YulExpressionStatement","src":"7747:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7797:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7808:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7793:3:103"},"nodeType":"YulFunctionCall","src":"7793:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7813:33:103","type":"","value":"ERROR:REC-102:UPGRADE_ONCE_OMLY"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7786:6:103"},"nodeType":"YulFunctionCall","src":"7786:61:103"},"nodeType":"YulExpressionStatement","src":"7786:61:103"},{"nodeType":"YulAssignment","src":"7856:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7868:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7879:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7864:3:103"},"nodeType":"YulFunctionCall","src":"7864:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7856:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_584862d2e254607edab8323f691596b09145970a7a655d210eb1f81c78c94e40__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7684:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7698:4:103","type":""}],"src":"7533:355:103"},{"body":{"nodeType":"YulBlock","src":"8067:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8095:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8077:6:103"},"nodeType":"YulFunctionCall","src":"8077:21:103"},"nodeType":"YulExpressionStatement","src":"8077:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8118:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8129:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8114:3:103"},"nodeType":"YulFunctionCall","src":"8114:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8134:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8107:6:103"},"nodeType":"YulFunctionCall","src":"8107:30:103"},"nodeType":"YulExpressionStatement","src":"8107:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8157:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8168:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8153:3:103"},"nodeType":"YulFunctionCall","src":"8153:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8173:34:103","type":"","value":"ERROR:REC-015:CONTRACT_NUMBER_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8146:6:103"},"nodeType":"YulFunctionCall","src":"8146:62:103"},"nodeType":"YulExpressionStatement","src":"8146:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8228:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8239:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8224:3:103"},"nodeType":"YulFunctionCall","src":"8224:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8244:8:103","type":"","value":"SMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8217:6:103"},"nodeType":"YulFunctionCall","src":"8217:36:103"},"nodeType":"YulExpressionStatement","src":"8217:36:103"},{"nodeType":"YulAssignment","src":"8262:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8274:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8285:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8270:3:103"},"nodeType":"YulFunctionCall","src":"8270:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8262:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8044:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8058:4:103","type":""}],"src":"7893:402:103"},{"body":{"nodeType":"YulBlock","src":"8474:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8491:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8502:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8484:6:103"},"nodeType":"YulFunctionCall","src":"8484:21:103"},"nodeType":"YulExpressionStatement","src":"8484:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8536:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8521:3:103"},"nodeType":"YulFunctionCall","src":"8521:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8541:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8514:6:103"},"nodeType":"YulFunctionCall","src":"8514:30:103"},"nodeType":"YulExpressionStatement","src":"8514:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8564:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8575:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8560:3:103"},"nodeType":"YulFunctionCall","src":"8560:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8580:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8553:6:103"},"nodeType":"YulFunctionCall","src":"8553:62:103"},"nodeType":"YulExpressionStatement","src":"8553:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8635:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8646:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8631:3:103"},"nodeType":"YulFunctionCall","src":"8631:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8651:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8624:6:103"},"nodeType":"YulFunctionCall","src":"8624:44:103"},"nodeType":"YulExpressionStatement","src":"8624:44:103"},{"nodeType":"YulAssignment","src":"8677:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8689:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8700:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8685:3:103"},"nodeType":"YulFunctionCall","src":"8685:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8677:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8451:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8465:4:103","type":""}],"src":"8300:410:103"},{"body":{"nodeType":"YulBlock","src":"8889:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8906:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8917:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8899:6:103"},"nodeType":"YulFunctionCall","src":"8899:21:103"},"nodeType":"YulExpressionStatement","src":"8899:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8940:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8951:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8936:3:103"},"nodeType":"YulFunctionCall","src":"8936:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8956:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8929:6:103"},"nodeType":"YulFunctionCall","src":"8929:30:103"},"nodeType":"YulExpressionStatement","src":"8929:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8979:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8990:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8975:3:103"},"nodeType":"YulFunctionCall","src":"8975:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8995:34:103","type":"","value":"ERROR:REC-002:NEW_RELEASE_NOT_EM"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8968:6:103"},"nodeType":"YulFunctionCall","src":"8968:62:103"},"nodeType":"YulExpressionStatement","src":"8968:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9050:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9061:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9046:3:103"},"nodeType":"YulFunctionCall","src":"9046:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9066:5:103","type":"","value":"PTY"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9039:6:103"},"nodeType":"YulFunctionCall","src":"9039:33:103"},"nodeType":"YulExpressionStatement","src":"9039:33:103"},{"nodeType":"YulAssignment","src":"9081:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9093:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9104:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9089:3:103"},"nodeType":"YulFunctionCall","src":"9089:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9081:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8866:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8880:4:103","type":""}],"src":"8715:399:103"},{"body":{"nodeType":"YulBlock","src":"9293:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9310:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9321:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9303:6:103"},"nodeType":"YulFunctionCall","src":"9303:21:103"},"nodeType":"YulExpressionStatement","src":"9303:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9355:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9340:3:103"},"nodeType":"YulFunctionCall","src":"9340:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9360:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9333:6:103"},"nodeType":"YulFunctionCall","src":"9333:30:103"},"nodeType":"YulExpressionStatement","src":"9333:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9383:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9394:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9379:3:103"},"nodeType":"YulFunctionCall","src":"9379:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9399:34:103","type":"","value":"ERROR:REC-013:CONTRACT_NAME_EXIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9372:6:103"},"nodeType":"YulFunctionCall","src":"9372:62:103"},"nodeType":"YulExpressionStatement","src":"9372:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9465:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9450:3:103"},"nodeType":"YulFunctionCall","src":"9450:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9470:4:103","type":"","value":"TS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9443:6:103"},"nodeType":"YulFunctionCall","src":"9443:32:103"},"nodeType":"YulExpressionStatement","src":"9443:32:103"},{"nodeType":"YulAssignment","src":"9484:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9507:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9492:3:103"},"nodeType":"YulFunctionCall","src":"9492:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9484:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9270:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9284:4:103","type":""}],"src":"9119:398:103"},{"body":{"nodeType":"YulBlock","src":"9696:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9713:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9724:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9706:6:103"},"nodeType":"YulFunctionCall","src":"9706:21:103"},"nodeType":"YulExpressionStatement","src":"9706:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9747:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9758:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9743:3:103"},"nodeType":"YulFunctionCall","src":"9743:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9763:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9736:6:103"},"nodeType":"YulFunctionCall","src":"9736:30:103"},"nodeType":"YulExpressionStatement","src":"9736:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9786:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9797:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9782:3:103"},"nodeType":"YulFunctionCall","src":"9782:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9802:34:103","type":"","value":"ERROR:REC-014:CONTRACT_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9775:6:103"},"nodeType":"YulFunctionCall","src":"9775:62:103"},"nodeType":"YulExpressionStatement","src":"9775:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9868:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9853:3:103"},"nodeType":"YulFunctionCall","src":"9853:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9873:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9846:6:103"},"nodeType":"YulFunctionCall","src":"9846:33:103"},"nodeType":"YulExpressionStatement","src":"9846:33:103"},{"nodeType":"YulAssignment","src":"9888:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9900:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9911:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9896:3:103"},"nodeType":"YulFunctionCall","src":"9896:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9888:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9673:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9687:4:103","type":""}],"src":"9522:399:103"},{"body":{"nodeType":"YulBlock","src":"10100:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10117:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10128:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10110:6:103"},"nodeType":"YulFunctionCall","src":"10110:21:103"},"nodeType":"YulExpressionStatement","src":"10110:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10162:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10147:3:103"},"nodeType":"YulFunctionCall","src":"10147:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10167:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10140:6:103"},"nodeType":"YulFunctionCall","src":"10140:30:103"},"nodeType":"YulExpressionStatement","src":"10140:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10190:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10201:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10186:3:103"},"nodeType":"YulFunctionCall","src":"10186:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10206:32:103","type":"","value":"ERROR:REC-020:CONTRACT_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10179:6:103"},"nodeType":"YulFunctionCall","src":"10179:60:103"},"nodeType":"YulExpressionStatement","src":"10179:60:103"},{"nodeType":"YulAssignment","src":"10248:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10260:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10271:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10256:3:103"},"nodeType":"YulFunctionCall","src":"10256:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10248:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10077:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10091:4:103","type":""}],"src":"9926:354:103"},{"body":{"nodeType":"YulBlock","src":"10459:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10476:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10487:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10469:6:103"},"nodeType":"YulFunctionCall","src":"10469:21:103"},"nodeType":"YulExpressionStatement","src":"10469:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10510:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10521:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10506:3:103"},"nodeType":"YulFunctionCall","src":"10506:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10526:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10499:6:103"},"nodeType":"YulFunctionCall","src":"10499:30:103"},"nodeType":"YulExpressionStatement","src":"10499:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10549:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10560:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10545:3:103"},"nodeType":"YulFunctionCall","src":"10545:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10565:34:103","type":"","value":"ERROR:CRC-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10538:6:103"},"nodeType":"YulFunctionCall","src":"10538:62:103"},"nodeType":"YulExpressionStatement","src":"10538:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10620:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10631:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10616:3:103"},"nodeType":"YulFunctionCall","src":"10616:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10636:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10609:6:103"},"nodeType":"YulFunctionCall","src":"10609:33:103"},"nodeType":"YulExpressionStatement","src":"10609:33:103"},{"nodeType":"YulAssignment","src":"10651:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10663:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10674:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10659:3:103"},"nodeType":"YulFunctionCall","src":"10659:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10651:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10436:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10450:4:103","type":""}],"src":"10285:399:103"},{"body":{"nodeType":"YulBlock","src":"10863:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10880:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10891:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10873:6:103"},"nodeType":"YulFunctionCall","src":"10873:21:103"},"nodeType":"YulExpressionStatement","src":"10873:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10925:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10910:3:103"},"nodeType":"YulFunctionCall","src":"10910:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10930:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10903:6:103"},"nodeType":"YulFunctionCall","src":"10903:30:103"},"nodeType":"YulExpressionStatement","src":"10903:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10953:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10964:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10949:3:103"},"nodeType":"YulFunctionCall","src":"10949:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10969:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10942:6:103"},"nodeType":"YulFunctionCall","src":"10942:62:103"},"nodeType":"YulExpressionStatement","src":"10942:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11024:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11035:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11020:3:103"},"nodeType":"YulFunctionCall","src":"11020:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11040:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11013:6:103"},"nodeType":"YulFunctionCall","src":"11013:41:103"},"nodeType":"YulExpressionStatement","src":"11013:41:103"},{"nodeType":"YulAssignment","src":"11063:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11075:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11086:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11071:3:103"},"nodeType":"YulFunctionCall","src":"11071:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11063:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10840:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10854:4:103","type":""}],"src":"10689:407:103"},{"body":{"nodeType":"YulBlock","src":"11275:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11303:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11285:6:103"},"nodeType":"YulFunctionCall","src":"11285:21:103"},"nodeType":"YulExpressionStatement","src":"11285:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11326:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11337:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11322:3:103"},"nodeType":"YulFunctionCall","src":"11322:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11342:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11315:6:103"},"nodeType":"YulFunctionCall","src":"11315:30:103"},"nodeType":"YulExpressionStatement","src":"11315:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11376:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11361:3:103"},"nodeType":"YulFunctionCall","src":"11361:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11381:34:103","type":"","value":"ERROR:REC-010:MAX_CONTRACTS_LIMI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11354:6:103"},"nodeType":"YulFunctionCall","src":"11354:62:103"},"nodeType":"YulExpressionStatement","src":"11354:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11447:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11432:3:103"},"nodeType":"YulFunctionCall","src":"11432:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11452:3:103","type":"","value":"T"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11425:6:103"},"nodeType":"YulFunctionCall","src":"11425:31:103"},"nodeType":"YulExpressionStatement","src":"11425:31:103"},{"nodeType":"YulAssignment","src":"11465:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11477:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11488:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11473:3:103"},"nodeType":"YulFunctionCall","src":"11473:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11465:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11252:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11266:4:103","type":""}],"src":"11101:397:103"},{"body":{"nodeType":"YulBlock","src":"11677:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11694:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11705:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11687:6:103"},"nodeType":"YulFunctionCall","src":"11687:21:103"},"nodeType":"YulExpressionStatement","src":"11687:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11728:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11739:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11724:3:103"},"nodeType":"YulFunctionCall","src":"11724:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11744:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11717:6:103"},"nodeType":"YulFunctionCall","src":"11717:30:103"},"nodeType":"YulExpressionStatement","src":"11717:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11778:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11763:3:103"},"nodeType":"YulFunctionCall","src":"11763:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11783:31:103","type":"","value":"ERROR:REC-011:RELEASE_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11756:6:103"},"nodeType":"YulFunctionCall","src":"11756:59:103"},"nodeType":"YulExpressionStatement","src":"11756:59:103"},{"nodeType":"YulAssignment","src":"11824:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11836:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11847:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11832:3:103"},"nodeType":"YulFunctionCall","src":"11832:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11824:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11654:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11668:4:103","type":""}],"src":"11503:353:103"},{"body":{"nodeType":"YulBlock","src":"11962:76:103","statements":[{"nodeType":"YulAssignment","src":"11972:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11984:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11995:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11980:3:103"},"nodeType":"YulFunctionCall","src":"11980:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11972:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12014:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12025:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12007:6:103"},"nodeType":"YulFunctionCall","src":"12007:25:103"},"nodeType":"YulExpressionStatement","src":"12007:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11931:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11942:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11953:4:103","type":""}],"src":"11861:177:103"},{"body":{"nodeType":"YulBlock","src":"12091:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"12118:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12120:16:103"},"nodeType":"YulFunctionCall","src":"12120:18:103"},"nodeType":"YulExpressionStatement","src":"12120:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12107:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12114:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12110:3:103"},"nodeType":"YulFunctionCall","src":"12110:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12104:2:103"},"nodeType":"YulFunctionCall","src":"12104:13:103"},"nodeType":"YulIf","src":"12101:2:103"},{"nodeType":"YulAssignment","src":"12149:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12160:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"12163:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12156:3:103"},"nodeType":"YulFunctionCall","src":"12156:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"12149:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12074:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"12077:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12083:3:103","type":""}],"src":"12043:128:103"},{"body":{"nodeType":"YulBlock","src":"12225:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"12247:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12249:16:103"},"nodeType":"YulFunctionCall","src":"12249:18:103"},"nodeType":"YulExpressionStatement","src":"12249:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12241:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"12244:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12238:2:103"},"nodeType":"YulFunctionCall","src":"12238:8:103"},"nodeType":"YulIf","src":"12235:2:103"},{"nodeType":"YulAssignment","src":"12278:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12290:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"12293:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12286:3:103"},"nodeType":"YulFunctionCall","src":"12286:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"12278:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12207:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"12210:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"12216:4:103","type":""}],"src":"12176:125:103"},{"body":{"nodeType":"YulBlock","src":"12361:325:103","statements":[{"nodeType":"YulAssignment","src":"12371:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"12385:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"12391:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"12381:3:103"},"nodeType":"YulFunctionCall","src":"12381:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"12371:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"12402:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"12432:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"12438:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12428:3:103"},"nodeType":"YulFunctionCall","src":"12428:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"12406:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12479:31:103","statements":[{"nodeType":"YulAssignment","src":"12481:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12495:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12503:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12491:3:103"},"nodeType":"YulFunctionCall","src":"12491:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"12481:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"12459:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12452:6:103"},"nodeType":"YulFunctionCall","src":"12452:26:103"},"nodeType":"YulIf","src":"12449:2:103"},{"body":{"nodeType":"YulBlock","src":"12569:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12590:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12597:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12602:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12593:3:103"},"nodeType":"YulFunctionCall","src":"12593:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12583:6:103"},"nodeType":"YulFunctionCall","src":"12583:31:103"},"nodeType":"YulExpressionStatement","src":"12583:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12634:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12637:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12627:6:103"},"nodeType":"YulFunctionCall","src":"12627:15:103"},"nodeType":"YulExpressionStatement","src":"12627:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12662:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12665:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12655:6:103"},"nodeType":"YulFunctionCall","src":"12655:15:103"},"nodeType":"YulExpressionStatement","src":"12655:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"12525:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12548:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12556:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12545:2:103"},"nodeType":"YulFunctionCall","src":"12545:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12522:2:103"},"nodeType":"YulFunctionCall","src":"12522:38:103"},"nodeType":"YulIf","src":"12519:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"12341:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"12350:6:103","type":""}],"src":"12306:380:103"},{"body":{"nodeType":"YulBlock","src":"12738:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"12769:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12771:16:103"},"nodeType":"YulFunctionCall","src":"12771:18:103"},"nodeType":"YulExpressionStatement","src":"12771:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12754:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12765:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12761:3:103"},"nodeType":"YulFunctionCall","src":"12761:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12751:2:103"},"nodeType":"YulFunctionCall","src":"12751:17:103"},"nodeType":"YulIf","src":"12748:2:103"},{"nodeType":"YulAssignment","src":"12800:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12811:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"12818:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12807:3:103"},"nodeType":"YulFunctionCall","src":"12807:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12800:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12720:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"12730:3:103","type":""}],"src":"12691:135:103"},{"body":{"nodeType":"YulBlock","src":"12863:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12880:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12887:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12892:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12883:3:103"},"nodeType":"YulFunctionCall","src":"12883:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12873:6:103"},"nodeType":"YulFunctionCall","src":"12873:31:103"},"nodeType":"YulExpressionStatement","src":"12873:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12920:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12923:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12913:6:103"},"nodeType":"YulFunctionCall","src":"12913:15:103"},"nodeType":"YulExpressionStatement","src":"12913:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12944:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12947:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12937:6:103"},"nodeType":"YulFunctionCall","src":"12937:15:103"},"nodeType":"YulExpressionStatement","src":"12937:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"12831:127:103"},{"body":{"nodeType":"YulBlock","src":"12995:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13012:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13019:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13024:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13015:3:103"},"nodeType":"YulFunctionCall","src":"13015:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13005:6:103"},"nodeType":"YulFunctionCall","src":"13005:31:103"},"nodeType":"YulExpressionStatement","src":"13005:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13052:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13055:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13045:6:103"},"nodeType":"YulFunctionCall","src":"13045:15:103"},"nodeType":"YulExpressionStatement","src":"13045:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13076:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13079:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13069:6:103"},"nodeType":"YulFunctionCall","src":"13069:15:103"},"nodeType":"YulExpressionStatement","src":"13069:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"12963:127:103"},{"body":{"nodeType":"YulBlock","src":"13140:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"13204:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13213:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13216:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13206:6:103"},"nodeType":"YulFunctionCall","src":"13206:12:103"},"nodeType":"YulExpressionStatement","src":"13206:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13163:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13174:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13189:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13194:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13185:3:103"},"nodeType":"YulFunctionCall","src":"13185:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13198:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13181:3:103"},"nodeType":"YulFunctionCall","src":"13181:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13170:3:103"},"nodeType":"YulFunctionCall","src":"13170:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"13160:2:103"},"nodeType":"YulFunctionCall","src":"13160:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13153:6:103"},"nodeType":"YulFunctionCall","src":"13153:50:103"},"nodeType":"YulIf","src":"13150:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13129:5:103","type":""}],"src":"13095:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value0, value0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value0, value0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), value0)\n value0 := memPtr\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), \"InstanceOperatorService\")\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_address_t_bool__to_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:REC-021:CONTRACT_NUMBER_MI\")\n mstore(add(headStart, 96), \"SMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:REC-012:CONTRACT_NAME_EMPT\")\n mstore(add(headStart, 96), \"Y\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:REC-001:EMPTY_RELEASE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_584862d2e254607edab8323f691596b09145970a7a655d210eb1f81c78c94e40__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:REC-102:UPGRADE_ONCE_OMLY\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:REC-015:CONTRACT_NUMBER_MI\")\n mstore(add(headStart, 96), \"SMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:REC-002:NEW_RELEASE_NOT_EM\")\n mstore(add(headStart, 96), \"PTY\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:REC-013:CONTRACT_NAME_EXIS\")\n mstore(add(headStart, 96), \"TS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:REC-014:CONTRACT_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:REC-020:CONTRACT_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CRC-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:REC-010:MAX_CONTRACTS_LIMI\")\n mstore(add(headStart, 96), \"T\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:REC-011:RELEASE_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101375760003560e01c80636c0f79b6116100b8578063c4d66de81161007c578063c4d66de81461028f578063ce6d41de146102a2578063d22057a9146102b7578063dc527b08146102ca578063e16c7d98146102dd578063f6b3e7d0146102f057610137565b80636c0f79b61461025057806376b707b71461025857806386d1a69f14610260578063893917ea14610269578063b0ef18a01461027c57610137565b8063368b8772116100ff578063368b8772146101b557806348cd4cb1146101c85780634a941e5e146101d157806356bbc19d1461021d578063699235151461023057610137565b80631d5e73141461013c578063208131541461015157806324042a0a146101645780632b34378a1461017f5780632ca65a7914610192575b600080fd5b61014f61014a3660046117b7565b610303565b005b61014f61015f36600461174f565b6103c4565b61016c606481565b6040519081526020015b60405180910390f35b61014f61018d3660046117ef565b610479565b6101a56101a0366004611704565b6104e2565b6040519015158152602001610176565b61014f6101c33660046117ef565b61050c565b61016c60035481565b6102056101df366004611796565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61014f61022b36600461174f565b6105c9565b61016c61023e36600461174f565b60056020526000908152604090205481565b61016c61073c565b60025461016c565b61016c60025481565b61014f61027736600461174f565b61075b565b61020561028a366004611796565b610970565b61014f61029d3660046116cc565b610983565b6102aa610ab9565b60405161017691906118cd565b61014f6102c5366004611767565b610b4b565b61014f6102d8366004611796565b610c00565b6102056102eb36600461174f565b610cb0565b61016c6102fe36600461174f565b610cc4565b6000546201000090046001600160a01b0316632ca65a796103213390565b6040518263ffffffff1660e01b815260040161033d9190611899565b60206040518083038186803b15801561035557600080fd5b505afa158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d919061172f565b6103b25760405162461bcd60e51b81526004016103a99061196e565b60405180910390fd5b6103bf8360008484610cdf565b505050565b6000546201000090046001600160a01b0316632ca65a796103e23390565b6040518263ffffffff1660e01b81526004016103fe9190611899565b60206040518083038186803b15801561041657600080fd5b505afa15801561042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044e919061172f565b61046a5760405162461bcd60e51b81526004016103a99061196e565b61047660025482611099565b50565b60085460ff16156104cc5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5245432d3130323a555047524144455f4f4e43455f4f4d4c590060448201526064016103a9565b6008805460ff191660011790556104768161050c565b60006104f0600254836112bb565b6001600160a01b0316836001600160a01b031614905092915050565b6000546201000090046001600160a01b0316632ca65a7961052a3390565b6040518263ffffffff1660e01b81526004016105469190611899565b60206040518083038186803b15801561055e57600080fd5b505afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610596919061172f565b6105b25760405162461bcd60e51b81526004016103a99061196e565b80516105c5906007906020840190611633565b5050565b600054610100900460ff16158080156105e95750600054600160ff909116105b8061060a57506105f8306112e1565b15801561060a575060005460ff166001145b6106265760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610649576000805461ff0019166101001790555b6000805462010000600160b01b031916306201000002179055600282905561066e3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b0397909716969096179095559254825260069052206106d8916112f4565b506002546000908152600560205260409020600190554360035580156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b600254600090815260066020526040812061075690611300565b905090565b6000546201000090046001600160a01b0316632ca65a796107793390565b6040518263ffffffff1660e01b81526004016107959190611899565b60206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e5919061172f565b6108015760405162461bcd60e51b81526004016103a99061196e565b600254600090815260056020526040902054806108605760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c45415345000000000060448201526064016103a9565b600082815260056020526040902054156108c85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b60648201526084016103a9565b60005b8181101561093a5760025460009081526006602052604081206108ee908361130a565b600254600090815260046020908152604080832084845290915290205490915061092790859060019084906001600160a01b0316610cdf565b506109336001826119b1565b90506108cb565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b490602001610730565b600061097c83836112bb565b9392505050565b600054610100900460ff16158080156109a35750600054600160ff909116105b806109c457506109b2306112e1565b1580156109c4575060005460ff166001145b6109e05760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610a03576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610a2d600090565b6541636365737360d01b14610a6f57610a4e6541636365737360d01b611316565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610a776113fe565b80156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610730565b606060078054610ac8906119e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610af4906119e0565b8015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b5050505050905090565b6000546201000090046001600160a01b0316632ca65a79610b693390565b6040518263ffffffff1660e01b8152600401610b859190611899565b60206040518083038186803b158015610b9d57600080fd5b505afa158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd5919061172f565b610bf15760405162461bcd60e51b81526004016103a99061196e565b6105c560025460008484610cdf565b6000546201000090046001600160a01b0316632ca65a79610c1e3390565b6040518263ffffffff1660e01b8152600401610c3a9190611899565b60206040518083038186803b158015610c5257600080fd5b505afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a919061172f565b610ca65760405162461bcd60e51b81526004016103a99061196e565b6105c58282611099565b6000610cbe600254836112bb565b92915050565b6002546000908152600660205260408120610cbe908361130a565b6000848152600660205260408120606490610cf990611300565b10610d505760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b60648201526084016103a9565b600085815260056020526040902054151580610d695750835b610db55760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e00000060448201526064016103a9565b82610e0c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b60648201526084016103a9565b6000858152600660205260409020610e24908461146b565b1580610e7557508276496e7374616e63654f70657261746f725365727669636560481b148015610e75575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610ecc5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b60648201526084016103a9565b6001600160a01b038216610f2e5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b60648201526084016103a9565b60008581526004602090815260408083208684529091529020546001600160a01b0316610f92576000858152600660205260409020610f6d90846112f4565b506000858152600560205260408120805491610f8883611a1b565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610fd790611300565b600086815260056020526040902054146110425760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a796110b73390565b6040518263ffffffff1660e01b81526004016110d39190611899565b60206040518083038186803b1580156110eb57600080fd5b505afa1580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611123919061172f565b61113f5760405162461bcd60e51b81526004016103a99061196e565b6000828152600660205260409020611157908261146b565b6111a35760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e000060448201526064016103a9565b60008281526006602052604090206111bb9082611483565b5060008281526005602052604081208054600192906111db9084906119c9565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b03191690558483526006909152902061121a90611300565b600083815260056020526040902054146112855760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a1319101610730565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b600061097c838361148f565b6000610cbe825490565b600061097c83836114de565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561136057600080fd5b505afa158015611374573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139891906116e8565b90506001600160a01b0381166112ef5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166114695760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b565b6000818152600183016020526040812054151561097c565b600061097c8383611516565b60008181526001830160205260408120546114d657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cbe565b506000610cbe565b600082600001828154811061150357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054801561162957600061153a6001836119c9565b855490915060009061154e906001906119c9565b90508181146115cf57600086600001828154811061157c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106115ad57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115ee57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cbe565b6000915050610cbe565b82805461163f906119e0565b90600052602060002090601f01602090048101928261166157600085556116a7565b82601f1061167a57805160ff19168380011785556116a7565b828001600101855582156116a7579182015b828111156116a757825182559160200191906001019061168c565b506116b39291506116b7565b5090565b5b808211156116b357600081556001016116b8565b6000602082840312156116dd578081fd5b813561097c81611a62565b6000602082840312156116f9578081fd5b815161097c81611a62565b60008060408385031215611716578081fd5b823561172181611a62565b946020939093013593505050565b600060208284031215611740578081fd5b8151801515811461097c578182fd5b600060208284031215611760578081fd5b5035919050565b60008060408385031215611779578182fd5b82359150602083013561178b81611a62565b809150509250929050565b600080604083850312156117a8578182fd5b50508035926020909101359150565b6000806000606084860312156117cb578081fd5b833592506020840135915060408401356117e481611a62565b809150509250925092565b600060208284031215611800578081fd5b813567ffffffffffffffff80821115611817578283fd5b818401915084601f83011261182a578283fd5b81358181111561183c5761183c611a4c565b604051601f8201601f19908116603f0116810190838211818310171561186457611864611a4c565b8160405282815287602084870101111561187c578586fd5b826020860160208301379182016020019490945295945050505050565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6000602080835283518082850152825b818110156118f9578581018301518582016040015282016118dd565b8181111561190a5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b600082198211156119c4576119c4611a36565b500190565b6000828210156119db576119db611a36565b500390565b6002810460018216806119f457607f821691505b60208210811415611a1557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611a2f57611a2f611a36565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461047657600080fdfea26469706673582212204c7f94f441c1f862908cff0be31a75f685e50b915477a4cbe46f145ab6d61f9264736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x137 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6C0F79B6 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xCE6D41DE EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x2F0 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x76B707B7 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x86D1A69F EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0xB0EF18A0 EQ PUSH2 0x27C JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x368B8772 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x368B8772 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x48CD4CB1 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x4A941E5E EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x56BBC19D EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x69923515 EQ PUSH2 0x230 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x24042A0A EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x2B34378A EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x2CA65A79 EQ PUSH2 0x192 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0x17B7 JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x3C4 JUMP JUMPDEST PUSH2 0x16C PUSH1 0x64 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x479 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1704 JUMP JUMPDEST PUSH2 0x4E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH2 0x16C PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x22B CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x5C9 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x23E CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x73C JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x16C JUMP JUMPDEST PUSH2 0x16C PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x277 CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x75B JUMP JUMPDEST PUSH2 0x205 PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x970 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x16CC JUMP JUMPDEST PUSH2 0x983 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x176 SWAP2 SWAP1 PUSH2 0x18CD JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1767 JUMP JUMPDEST PUSH2 0xB4B JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xC00 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0xCB0 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0xCC4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x321 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33D SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x369 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x3B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3BF DUP4 PUSH1 0x0 DUP5 DUP5 PUSH2 0xCDF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3E2 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3FE SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x42A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x44E SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x46A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x476 PUSH1 0x2 SLOAD DUP3 PUSH2 0x1099 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3130323A555047524144455F4F4E43455F4F4D4C5900 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x476 DUP2 PUSH2 0x50C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F0 PUSH1 0x2 SLOAD DUP4 PUSH2 0x12BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x52A CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x55E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x572 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x5B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST DUP1 MLOAD PUSH2 0x5C5 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x1633 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x5E9 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x60A JUMPI POP PUSH2 0x5F8 ADDRESS PUSH2 0x12E1 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x60A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x1920 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x649 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND ADDRESS PUSH3 0x10000 MUL OR SWAP1 SSTORE PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH2 0x66E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 SWAP1 SWAP8 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE SWAP3 SLOAD DUP3 MSTORE PUSH1 0x6 SWAP1 MSTORE KECCAK256 PUSH2 0x6D8 SWAP2 PUSH2 0x12F4 JUMP JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE NUMBER PUSH1 0x3 SSTORE DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x756 SWAP1 PUSH2 0x1300 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x779 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x795 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x801 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x860 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030313A454D5054595F52454C454153450000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030323A4E45575F52454C454153455F4E4F545F454D PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x505459 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x93A JUMPI PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x8EE SWAP1 DUP4 PUSH2 0x130A JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x927 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xCDF JUMP JUMPDEST POP PUSH2 0x933 PUSH1 0x1 DUP3 PUSH2 0x19B1 JUMP JUMPDEST SWAP1 POP PUSH2 0x8CB JUMP JUMPDEST POP PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD50692EB75750D216C747528A2DFCED5915EAB7B4EE40BCF8120D0D035297B4 SWAP1 PUSH1 0x20 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x12BB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x9A3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x9C4 JUMPI POP PUSH2 0x9B2 ADDRESS PUSH2 0x12E1 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x9C4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x9E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x1920 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xA03 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xA2D PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xA6F JUMPI PUSH2 0xA4E PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1316 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xA77 PUSH2 0x13FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x7 DUP1 SLOAD PUSH2 0xAC8 SWAP1 PUSH2 0x19E0 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF4 SWAP1 PUSH2 0x19E0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB41 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB16 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB41 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB24 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xB69 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB85 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBD5 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0xBF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5C5 PUSH1 0x2 SLOAD PUSH1 0x0 DUP5 DUP5 PUSH2 0xCDF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xC1E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC8A SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0xCA6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5C5 DUP3 DUP3 PUSH2 0x1099 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE PUSH1 0x2 SLOAD DUP4 PUSH2 0x12BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xCBE SWAP1 DUP4 PUSH2 0x130A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x64 SWAP1 PUSH2 0xCF9 SWAP1 PUSH2 0x1300 JUMP JUMPDEST LT PUSH2 0xD50 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031303A4D41585F434F4E5452414354535F4C494D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO DUP1 PUSH2 0xD69 JUMPI POP DUP4 JUMPDEST PUSH2 0xDB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031313A52454C454153455F554E4B4E4F574E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST DUP3 PUSH2 0xE0C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031323A434F4E54524143545F4E414D455F454D5054 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x59 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xE24 SWAP1 DUP5 PUSH2 0x146B JUMP JUMPDEST ISZERO DUP1 PUSH2 0xE75 JUMPI POP DUP3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL EQ DUP1 ISZERO PUSH2 0xE75 JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0xECC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031333A434F4E54524143545F4E414D455F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031343A434F4E54524143545F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xF92 JUMPI PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xF6D SWAP1 DUP5 PUSH2 0x12F4 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xF88 DUP4 PUSH2 0x1A1B JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE DUP8 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0xFD7 SWAP1 PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1042 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031353A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x7C5C4E97E59CBD96C53653DFD3F538E50D7BAB44BAA352481FDC3FA7F18E3008 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x10B7 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10D3 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1123 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x113F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1157 SWAP1 DUP3 PUSH2 0x146B JUMP JUMPDEST PUSH2 0x11A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032303A434F4E54524143545F554E4B4E4F574E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x11BB SWAP1 DUP3 PUSH2 0x1483 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x11DB SWAP1 DUP5 SWAP1 PUSH2 0x19C9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0x121A SWAP1 PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1285 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032313A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x95BD8DB0F80EC14D4D7E375FB7FB3603144BA5B594106E0410243553F97A131 SWAP2 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP3 DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x148F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x14DE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1374 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1398 SWAP2 SWAP1 PUSH2 0x16E8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1469 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x97C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x1516 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x14D6 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xCBE JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xCBE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1503 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1629 JUMPI PUSH1 0x0 PUSH2 0x153A PUSH1 0x1 DUP4 PUSH2 0x19C9 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x154E SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x19C9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x15CF JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x157C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x15AD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x15EE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xCBE JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xCBE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x163F SWAP1 PUSH2 0x19E0 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1661 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x16A7 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x167A JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x16A7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x16A7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x16A7 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x168C JUMP JUMPDEST POP PUSH2 0x16B3 SWAP3 SWAP2 POP PUSH2 0x16B7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x16B3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x16B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16DD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x97C DUP2 PUSH2 0x1A62 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x97C DUP2 PUSH2 0x1A62 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1716 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1721 DUP2 PUSH2 0x1A62 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1740 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x97C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1760 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1779 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x178B DUP2 PUSH2 0x1A62 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17A8 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x17CB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x17E4 DUP2 PUSH2 0x1A62 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1800 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1817 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x182A JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x183C JUMPI PUSH2 0x183C PUSH2 0x1A4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1864 JUMPI PUSH2 0x1864 PUSH2 0x1A4C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x187C JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x18F9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x18DD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x190A JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x19C4 JUMPI PUSH2 0x19C4 PUSH2 0x1A36 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x19DB JUMPI PUSH2 0x19DB PUSH2 0x1A36 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x19F4 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1A15 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1A2F JUMPI PUSH2 0x1A2F PUSH2 0x1A36 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C PUSH32 0x94F441C1F862908CFF0BE31A75F685E50B915477A4CBE46F145AB6D61F926473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"115:490:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5996:241:80;;;;;;:::i;:::-;;:::i;:::-;;5474:166;;;;;;:::i;:::-;;:::i;3217:43::-;;3257:3;3217:43;;;;;4434:25:103;;;4422:2;4407:18;3217:43:80;;;;;;;;415:187:98;;;;;;:::i;:::-;;:::i;4442:227:80:-;;;;;;:::i;:::-;;:::i;:::-;;;4261:14:103;;4254:22;4236:41;;4224:2;4209:18;4442:227:80;4191:92:103;229:95:98;;;;;;:::i;:::-;;:::i;3379:25:80:-;;;;;;3411:122;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3411:122:80;;;;;;-1:-1:-1;;;;;3691:32:103;;;3673:51;;3661:2;3646:18;3411:122:80;3628:102:103;3759:677:80;;;;;;:::i;:::-;;:::i;3539:105::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7336:164;;;:::i;4723:130::-;4839:7;;4723:130;;3346:22;;;;;;6525:805;;;;;;:::i;:::-;;:::i;5716:209::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;330:77:98:-;;;:::i;:::-;;;;;;;:::i;5187:210:80:-;;;;;;:::i;:::-;;:::i;6243:191::-;;;;;;:::i;:::-;;:::i;4933:179::-;;;;;;:::i;:::-;;:::i;7506:169::-;;;;;;:::i;:::-;;:::i;5996:241::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;;;;;;;;;6162:68:80::1;6181:8;6191:5;6198:13;6213:16;6162:18;:68::i;:::-;5996:241:::0;;;:::o;5474:166::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5589:44:80::1;5610:7;;5619:13;5589:20;:44::i;:::-;5474:166:::0;:::o;415:187:98:-;488:9;;;;487:10;479:54;;;;-1:-1:-1;;;479:54:98;;7735:2:103;479:54:98;;;7717:21:103;7774:2;7754:18;;;7747:30;7813:33;7793:18;;;7786:61;7864:18;;479:54:98;7707:181:103;479:54:98;544:9;:16;;-1:-1:-1;;544:16:98;556:4;544:16;;;573:20;584:8;573:10;:20::i;4442:227:80:-;4552:19;4616:45;4638:7;;4647:13;4616:21;:45::i;:::-;-1:-1:-1;;;;;4606:55:80;:6;-1:-1:-1;;;;;4606:55:80;;4588:74;;4442:227;;;;:::o;229:95:98:-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;303:18:98;;::::1;::::0;:7:::1;::::0;:18:::1;::::0;::::1;::::0;::::1;:::i;:::-;;229:95:::0;:::o;3759:677:80:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;;;;;;:::i;:::-;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;3883:9:80::1;:16:::0;;-1:-1:-1;;;;;;3883:16:80::1;3895:4;3883:16:::0;::::1;;::::0;;:9:::1;4117:25:::0;;;4201:12:::1;719:10:59::0;640:96;;4201:12:80::1;4163:7;::::0;;4152:19:::1;::::0;;;:10:::1;:19;::::0;;;;;;;-1:-1:-1;;;4152:46:80;;;;;;;;;:61;;-1:-1:-1;;;;;;4152:61:80::1;-1:-1:-1::0;;;;;4152:61:80;;;::::1;::::0;;;::::1;::::0;;;4256:7;;4241:23;;:14:::1;:23:::0;;;4223:69:::1;::::0;:17:::1;:69::i;:::-;-1:-1:-1::0;4322:7:80::1;::::0;4302:28:::1;::::0;;;:19:::1;:28;::::0;;;;4333:1:::1;4302:32:::0;;4417:12:::1;4404:10;:25:::0;3457:99:47;;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;5307:36:103;;3531:14:47;;5295:2:103;5280:18;3531:14:47;;;;;;;;3759:677:80;;:::o;7336:164::-;7484:7;;7389:26;7469:23;;;:14;:23;;;;;7448:45;;:20;:45::i;:::-;7427:66;;7336:164;:::o;6525:805::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6687:7:80::1;::::0;6642:22:::1;6667:28:::0;;;:19:::1;:28;::::0;;;;;6714:18;6706:58:::1;;;::::0;-1:-1:-1;;;6706:58:80;;7379:2:103;6706:58:80::1;::::0;::::1;7361:21:103::0;7418:2;7398:18;;;7391:30;7457:29;7437:18;;;7430:57;7504:18;;6706:58:80::1;7351:177:103::0;6706:58:80::1;6795:32;::::0;;;:19:::1;:32;::::0;;;;;:37;6774:119:::1;;;::::0;-1:-1:-1;;;6774:119:80;;8917:2:103;6774:119:80::1;::::0;::::1;8899:21:103::0;8956:2;8936:18;;;8929:30;8995:34;8975:18;;;8968:62;-1:-1:-1;;;9046:18:103;;;9039:33;9089:19;;6774:119:80::1;8889:225:103::0;6774:119:80::1;6960:9;6955:294;6979:14;6975:1;:18;6955:294;;;7064:7;::::0;7017:12:::1;7049:23:::0;;;:14:::1;:23;::::0;;;;7032:44:::1;::::0;7074:1;7032:16:::1;:44::i;:::-;7210:7;::::0;7199:19:::1;::::0;;;:10:::1;:19;::::0;;;;;;;:25;;;;;;;;;7017:59;;-1:-1:-1;7090:148:80::1;::::0;7126:11;;7155:4:::1;::::0;7017:59;;-1:-1:-1;;;;;7199:25:80::1;7090:18;:148::i;:::-;-1:-1:-1::0;6995:6:80::1;7000:1;6995:6:::0;::::1;:::i;:::-;;;6955:294;;;-1:-1:-1::0;7259:7:80::1;:21:::0;;;7296:27:::1;::::0;4434:25:103;;;7296:27:80::1;::::0;4422:2:103;4407:18;7296:27:80::1;4389:76:103::0;5716:209:80;5835:13;5872:46;5894:8;5904:13;5872:21;:46::i;:::-;5864:54;5716:209;-1:-1:-1;;;5716:209:80:o;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;;;;;;:::i;:::-;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;5307:36:103;;3531:14:47;;5295:2:103;5280:18;3531:14:47;5262:87:103;330:77:98;373:13;397:7;390:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;330:77;:::o;5187:210:80:-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5323:67:80::1;5342:7;;5351:5;5358:13;5373:16;5323:18;:67::i;6243:191::-:0;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6382:45:80::1;6403:8;6413:13;6382:20;:45::i;4933:179::-:0;5023:13;5060:45;5082:7;;5091:13;5060:21;:45::i;:::-;5052:53;4933:179;-1:-1:-1;;4933:179:80:o;7506:169::-;7654:7;;7573:21;7639:23;;;:14;:23;;;;;7622:46;;7664:3;7622:16;:46::i;8012:1798::-;8196:10;8267:24;;;:14;:24;;;;;3257:3;;8246:46;;:20;:46::i;:::-;:62;8225:142;;;;-1:-1:-1;;;8225:142:80;;11303:2:103;8225:142:80;;;11285:21:103;11342:2;11322:18;;;11315:30;11381:34;11361:18;;;11354:62;-1:-1:-1;;;11432:18:103;;;11425:31;11473:19;;8225:142:80;11275:223:103;8225:142:80;8523:1;8491:29;;;:19;:29;;;;;;:33;;;:49;;;8528:12;8491:49;8483:91;;;;-1:-1:-1;;;8483:91:80;;11705:2:103;8483:91:80;;;11687:21:103;11744:2;11724:18;;;11717:30;11783:31;11763:18;;;11756:59;11832:18;;8483:91:80;11677:179:103;8483:91:80;8592:21;8584:67;;;;-1:-1:-1;;;8584:67:80;;6977:2:103;8584:67:80;;;6959:21:103;7016:2;6996:18;;;6989:30;7055:34;7035:18;;;7028:62;-1:-1:-1;;;7106:18:103;;;7099:31;7147:19;;8584:67:80;6949:223:103;8584:67:80;8708:24;;;;:14;:24;;;;;8685:63;;8734:13;8685:22;:63::i;:::-;8683:65;8682:378;;;;8962:13;-1:-1:-1;;;8962:42:80;:97;;;;-1:-1:-1;9008:20:80;;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;9008:35:80;719:10:59;9008:51:80;8962:97;8661:451;;;;-1:-1:-1;;;8661:451:80;;9321:2:103;8661:451:80;;;9303:21:103;9360:2;9340:18;;;9333:30;9399:34;9379:18;;;9372:62;-1:-1:-1;;;9450:18:103;;;9443:32;9492:19;;8661:451:80;9293:224:103;8661:451:80;-1:-1:-1;;;;;9130:30:80;;9122:78;;;;-1:-1:-1;;;9122:78:80;;9724:2:103;9122:78:80;;;9706:21:103;9763:2;9743:18;;;9736:30;9802:34;9782:18;;;9775:62;-1:-1:-1;;;9853:18:103;;;9846:33;9896:19;;9122:78:80;9696:225:103;9122:78:80;9262:1;9215:20;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;9215:35:80;9211:209;;9298:24;;;;:14;:24;;;;;9280:58;;9324:13;9280:17;:58::i;:::-;-1:-1:-1;9352:29:80;;;;:19;:29;;;;;:31;;;;;;:::i;:::-;;;;;;9405:4;9397:12;;9211:209;9430:20;;;;:10;:20;;;;;;;;:35;;;;;;;;:54;;-1:-1:-1;;;;;;9430:54:80;-1:-1:-1;;;;;9430:54:80;;;;;9569:24;;;:14;:24;;;;;9548:46;;:20;:46::i;:::-;9515:29;;;;:19;:29;;;;;;:79;9494:164;;;;-1:-1:-1;;;9494:164:80;;8095:2:103;9494:164:80;;;8077:21:103;8134:2;8114:18;;;8107:30;8173:34;8153:18;;;8146:62;-1:-1:-1;;;8224:18:103;;;8217:36;8270:19;;9494:164:80;8067:228:103;9494:164:80;9674:129;;;4948:25:103;;;5004:2;4989:18;;4982:34;;;-1:-1:-1;;;;;5052:32:103;;5032:18;;;5025:60;5128:14;;5121:22;5116:2;5101:18;;5094:50;9674:129:80;;;;;;;4935:3:103;9674:129:80;;;8012:1798;;;;;:::o;9884:662::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;10046:24:80::1;::::0;;;:14:::1;:24;::::0;;;;10023:63:::1;::::0;10072:13;10023:22:::1;:63::i;:::-;10015:106;;;::::0;-1:-1:-1;;;10015:106:80;;10128:2:103;10015:106:80::1;::::0;::::1;10110:21:103::0;10167:2;10147:18;;;10140:30;10206:32;10186:18;;;10179:60;10256:18;;10015:106:80::1;10100:180:103::0;10015:106:80::1;10153:24;::::0;;;:14:::1;:24;::::0;;;;10132:61:::1;::::0;10179:13;10132:20:::1;:61::i;:::-;-1:-1:-1::0;10204:29:80::1;::::0;;;:19:::1;:29;::::0;;;;:34;;10237:1:::1;::::0;10204:29;:34:::1;::::0;10237:1;;10204:34:::1;:::i;:::-;::::0;;;-1:-1:-1;;10255:20:80::1;::::0;;;:10:::1;:20;::::0;;;;;;;:35;;;;;;;;10248:42;;-1:-1:-1;;;;;;10248:42:80::1;::::0;;10384:24;;;:14:::1;:24:::0;;;;;10363:46:::1;::::0;:20:::1;:46::i;:::-;10330:29;::::0;;;:19:::1;:29;::::0;;;;;:79:::1;10309:155;;;::::0;-1:-1:-1;;;10309:155:80;;6570:2:103;10309:155:80::1;::::0;::::1;6552:21:103::0;6609:2;6589:18;;;6582:30;6648:34;6628:18;;;6621:62;-1:-1:-1;;;6699:18:103;;;6692:36;6745:19;;10309:155:80::1;6542:228:103::0;10309:155:80::1;10479:48;::::0;;4644:25:103;;;4700:2;4685:18;;4678:34;;;10479:48:80::1;::::0;4617:18:103;10479:48:80::1;4599:119:103::0;7751:190:80;7862:13;7899:20;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;7899:35:80;;7751:190::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;5818:123:64:-;5888:4;5911:23;5916:3;5928:5;5911:4;:23::i;6538:115::-;6601:7;6627:19;6635:3;4444:18;;4362:107;6995:129;7069:7;7095:22;7099:3;7111:5;7095:3;:22::i;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;4434:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;4407:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;6164:2:103;1703:113:88;;;6146:21:103;6203:2;6183:18;;;6176:30;6242:34;6222:18;;;6215:62;-1:-1:-1;;;6293:18:103;;;6286:35;6338:19;;1703:113:88;6136:227:103;1460:64:88;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;10891:2:103;4880:69:47;;;10873:21:103;10930:2;10910:18;;;10903:30;10969:34;10949:18;;;10942:62;-1:-1:-1;;;11020:18:103;;;11013:41;11071:19;;4880:69:47;10863:233:103;4880:69:47;1460:64:88:o;6319:138:64:-;6399:4;4250:19;;;:12;;;:19;;;;;;:24;;6422:28;4154:127;6109:129;6182:4;6205:26;6213:3;6225:5;6205:7;:26::i;2113:404::-;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;4811:118;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;2685:1388::-;2751:4;2888:19;;;:12;;;:19;;;;;;2922:15;;2918:1149;;3291:21;3315:14;3328:1;3315:10;:14;:::i;:::-;3363:18;;3291:38;;-1:-1:-1;3343:17:64;;3363:22;;3384:1;;3363:22;:::i;:::-;3343:42;;3417:13;3404:9;:26;3400:398;;3450:17;3470:3;:11;;3482:9;3470:22;;;;;;-1:-1:-1;;;3470:22:64;;;;;;;;;;;;;;;;;3450:42;;3621:9;3592:3;:11;;3604:13;3592:26;;;;;;-1:-1:-1;;;3592:26:64;;;;;;;;;;;;;;;;;;;;:38;;;;3704:23;;;:12;;;:23;;;;;:36;;;3400:398;3876:17;;:3;;:17;;;-1:-1:-1;;;3876:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;3968:3;:12;;:19;3981:5;3968:19;;;;;;;;;;;3961:26;;;4009:4;4002:11;;;;;;;2918:1149;4051:5;4044:12;;;;;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:257:103;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:325::-;;;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;857:2;842:18;;;;829:32;;-1:-1:-1;;;629:238:103:o;872:297::-;;992:2;980:9;971:7;967:23;963:32;960:2;;;1013:6;1005;998:22;960:2;1050:9;1044:16;1103:5;1096:13;1089:21;1082:5;1079:32;1069:2;;1130:6;1122;1115:22;1174:190;;1286:2;1274:9;1265:7;1261:23;1257:32;1254:2;;;1307:6;1299;1292:22;1254:2;-1:-1:-1;1335:23:103;;1244:120;-1:-1:-1;1244:120:103:o;1369:325::-;;;1498:2;1486:9;1477:7;1473:23;1469:32;1466:2;;;1519:6;1511;1504:22;1466:2;1560:9;1547:23;1537:33;;1620:2;1609:9;1605:18;1592:32;1633:31;1658:5;1633:31;:::i;:::-;1683:5;1673:15;;;1456:238;;;;;:::o;1699:258::-;;;1828:2;1816:9;1807:7;1803:23;1799:32;1796:2;;;1849:6;1841;1834:22;1796:2;-1:-1:-1;;1877:23:103;;;1947:2;1932:18;;;1919:32;;-1:-1:-1;1786:171:103:o;1962:393::-;;;;2108:2;2096:9;2087:7;2083:23;2079:32;2076:2;;;2129:6;2121;2114:22;2076:2;2170:9;2157:23;2147:33;;2227:2;2216:9;2212:18;2199:32;2189:42;;2281:2;2270:9;2266:18;2253:32;2294:31;2319:5;2294:31;:::i;:::-;2344:5;2334:15;;;2066:289;;;;;:::o;2360:967::-;;2482:2;2470:9;2461:7;2457:23;2453:32;2450:2;;;2503:6;2495;2488:22;2450:2;2548:9;2535:23;2577:18;2618:2;2610:6;2607:14;2604:2;;;2639:6;2631;2624:22;2604:2;2682:6;2671:9;2667:22;2657:32;;2727:7;2720:4;2716:2;2712:13;2708:27;2698:2;;2754:6;2746;2739:22;2698:2;2795;2782:16;2817:2;2813;2810:10;2807:2;;;2823:18;;:::i;:::-;2898:2;2892:9;2866:2;2952:13;;-1:-1:-1;;2948:22:103;;;2972:2;2944:31;2940:40;2928:53;;;2996:18;;;3016:22;;;2993:46;2990:2;;;3042:18;;:::i;:::-;3082:10;3078:2;3071:22;3117:2;3109:6;3102:18;3157:7;3152:2;3147;3143;3139:11;3135:20;3132:33;3129:2;;;3183:6;3175;3168:22;3129:2;3244;3239;3235;3231:11;3226:2;3218:6;3214:15;3201:46;3267:15;;;3284:2;3263:24;3256:40;;;;3271:6;2440:887;-1:-1:-1;;;;;2440:887:103:o;3735:356::-;-1:-1:-1;;;;;3990:32:103;;;;3972:51;;-1:-1:-1;;;4054:2:103;4039:18;;4032:53;3960:2;3945:18;;3927:164::o;5354:603::-;;5495:2;5524;5513:9;5506:21;5556:6;5550:13;5599:6;5594:2;5583:9;5579:18;5572:34;5624:4;5637:140;5651:6;5648:1;5645:13;5637:140;;;5746:14;;;5742:23;;5736:30;5712:17;;;5731:2;5708:26;5701:66;5666:10;;5637:140;;;5795:6;5792:1;5789:13;5786:2;;;5865:4;5860:2;5851:6;5840:9;5836:22;5832:31;5825:45;5786:2;-1:-1:-1;5941:2:103;5920:15;-1:-1:-1;;5916:29:103;5901:45;;;;5948:2;5897:54;;5475:482;-1:-1:-1;;;5475:482:103:o;8300:410::-;8502:2;8484:21;;;8541:2;8521:18;;;8514:30;8580:34;8575:2;8560:18;;8553:62;-1:-1:-1;;;8646:2:103;8631:18;;8624:44;8700:3;8685:19;;8474:236::o;10285:399::-;10487:2;10469:21;;;10526:2;10506:18;;;10499:30;10565:34;10560:2;10545:18;;10538:62;-1:-1:-1;;;10631:2:103;10616:18;;10609:33;10674:3;10659:19;;10459:225::o;12043:128::-;;12114:1;12110:6;12107:1;12104:13;12101:2;;;12120:18;;:::i;:::-;-1:-1:-1;12156:9:103;;12091:80::o;12176:125::-;;12244:1;12241;12238:8;12235:2;;;12249:18;;:::i;:::-;-1:-1:-1;12286:9:103;;12225:76::o;12306:380::-;12391:1;12381:12;;12438:1;12428:12;;;12449:2;;12503:4;12495:6;12491:17;12481:27;;12449:2;12556;12548:6;12545:14;12525:18;12522:38;12519:2;;;12602:10;12597:3;12593:20;12590:1;12583:31;12637:4;12634:1;12627:15;12665:4;12662:1;12655:15;12519:2;;12361:325;;;:::o;12691:135::-;;-1:-1:-1;;12751:17:103;;12748:2;;;12771:18;;:::i;:::-;-1:-1:-1;12818:1:103;12807:13;;12738:88::o;12831:127::-;12892:10;12887:3;12883:20;12880:1;12873:31;12923:4;12920:1;12913:15;12947:4;12944:1;12937:15;12963:127;13024:10;13019:3;13015:20;13012:1;13005:31;13055:4;13052:1;13045:15;13079:4;13076:1;13069:15;13095:131;-1:-1:-1;;;;;13170:31:103;;13160:42;;13150:2;;13216:1;13213;13206:12"},"methodIdentifiers":{"MAX_CONTRACTS()":"24042a0a","_contracts(bytes32,bytes32)":"4a941e5e","_contractsInRelease(bytes32)":"69923515","contractName(uint256)":"f6b3e7d0","contracts()":"6c0f79b6","deregister(bytes32)":"20813154","deregisterInRelease(bytes32,bytes32)":"dc527b08","ensureSender(address,bytes32)":"2ca65a79","getContract(bytes32)":"e16c7d98","getContractInRelease(bytes32,bytes32)":"b0ef18a0","getMessage()":"ce6d41de","getRelease()":"76b707b7","initialize(address)":"c4d66de8","initializeRegistry(bytes32)":"56bbc19d","prepareRelease(bytes32)":"893917ea","register(bytes32,address)":"d22057a9","registerInRelease(bytes32,bytes32,address)":"1d5e7314","release()":"86d1a69f","setMessage(string)":"368b8772","startBlock()":"48cd4cb1","upgradeToV2(string)":"2b34378a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"LogContractDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isNew\",\"type\":\"bool\"}],\"name\":\"LogContractRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"}],\"name\":\"LogReleasePrepared\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_CONTRACTS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"_contracts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"_contractsInRelease\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"contractName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_numberOfContracts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregisterInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"ensureSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_senderMatches\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractInRelease\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMessage\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRelease\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_initialRelease\",\"type\":\"bytes32\"}],\"name\":\"initializeRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newRelease\",\"type\":\"bytes32\"}],\"name\":\"prepareRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"registerInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"release\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"setMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"upgradeToV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deregister(bytes32)\":{\"details\":\"Deregister contract in the current release\"},\"getContract(bytes32)\":{\"details\":\"Get contract's address in the current release\"},\"getContractInRelease(bytes32,bytes32)\":{\"details\":\"Get contract's address in certain release\"},\"getRelease()\":{\"details\":\"get current release\"},\"prepareRelease(bytes32)\":{\"details\":\"Create new release, copy contracts from previous release\"},\"register(bytes32,address)\":{\"details\":\"Register contract in the current release\"},\"registerInRelease(bytes32,bytes32,address)\":{\"details\":\"Register contract in certain release\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestRegistryControllerUpdated.sol\":\"TestRegistryControllerUpdated\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/RegistryController.sol\":{\"keccak256\":\"0x509cc6e92d7d46a87f3c7bb05b23570f45d1a5a96a30af82bfff77f0237a0d44\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://66d5cca04102b54cb7bdb1d3e08f7864c2bdefd1c4246741b36882f3c4ea459d\",\"dweb:/ipfs/QmYBhsMAj1pvMNNDkB8ccW1yoJJraJobsvdQX7rRUrfx5y\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/test/TestRegistryControllerUpdated.sol\":{\"keccak256\":\"0x5a7d84848a8c5a439a1dea054f04f906a4a93f739ee541f306a525bafd40c523\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://de049a6953aa0808f26462c3573a417247d6f63d1bad3ea8e61c89af6ad1c738\",\"dweb:/ipfs/QmTVen8XG3HWDp2wJvqYECynnhMRPw7WqC7K8SPgMy6KRk\"]}},\"version\":1}"}},"contracts/test/TestRiskpool.sol":{"TestRiskpool":{"abi":[{"inputs":[{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"uint256","name":"collateralization","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"activeBundles","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"LogBasicRiskpoolBundlesAndPolicies","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogBasicRiskpoolCandidateBundleAmountCheck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isMatching","type":"bool"}],"name":"LogRiskpoolBundleMatchesPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isSecured","type":"bool"}],"name":"LogRiskpoolCollateralLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolAddress","type":"address"}],"name":"LogRiskpoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"DEFAULT_FILTER_DATA_STRUCTURE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FULL_COLLATERALIZATION_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUM_OF_SUM_INSURED_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"},{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"name":"bundleMatchesApplication","outputs":[{"internalType":"bool","name":"isMatching","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialAmount","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapital","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getErc20Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFilterDataStructure","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSumOfSumInsuredCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3738:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"239:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"214:24:103"},"nodeType":"YulFunctionCall","src":"214:31:103"},"nodeType":"YulExpressionStatement","src":"214:31:103"},{"nodeType":"YulAssignment","src":"254:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"264:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"254:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:261:103"},{"body":{"nodeType":"YulBlock","src":"429:504:103","statements":[{"body":{"nodeType":"YulBlock","src":"476:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"485:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"493:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"478:6:103"},"nodeType":"YulFunctionCall","src":"478:22:103"},"nodeType":"YulExpressionStatement","src":"478:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"450:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"459:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"446:3:103"},"nodeType":"YulFunctionCall","src":"446:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"471:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"442:3:103"},"nodeType":"YulFunctionCall","src":"442:33:103"},"nodeType":"YulIf","src":"439:2:103"},{"nodeType":"YulAssignment","src":"511:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"527:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"521:5:103"},"nodeType":"YulFunctionCall","src":"521:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"511:6:103"}]},{"nodeType":"YulAssignment","src":"546:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"566:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"577:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"562:3:103"},"nodeType":"YulFunctionCall","src":"562:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"556:5:103"},"nodeType":"YulFunctionCall","src":"556:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"546:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"590:38:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"613:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"624:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"609:3:103"},"nodeType":"YulFunctionCall","src":"609:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"603:5:103"},"nodeType":"YulFunctionCall","src":"603:25:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"594:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"662:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"637:24:103"},"nodeType":"YulFunctionCall","src":"637:31:103"},"nodeType":"YulExpressionStatement","src":"637:31:103"},{"nodeType":"YulAssignment","src":"677:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"687:5:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"677:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"701:40:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"726:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"737:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"722:3:103"},"nodeType":"YulFunctionCall","src":"722:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"716:5:103"},"nodeType":"YulFunctionCall","src":"716:25:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"705:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"775:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"750:24:103"},"nodeType":"YulFunctionCall","src":"750:33:103"},"nodeType":"YulExpressionStatement","src":"750:33:103"},{"nodeType":"YulAssignment","src":"792:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"802:7:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"792:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"818:41:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"839:3:103"},"nodeType":"YulFunctionCall","src":"839:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"833:5:103"},"nodeType":"YulFunctionCall","src":"833:26:103"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"822:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"893:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"868:24:103"},"nodeType":"YulFunctionCall","src":"868:33:103"},"nodeType":"YulExpressionStatement","src":"868:33:103"},{"nodeType":"YulAssignment","src":"910:17:103","value":{"name":"value_2","nodeType":"YulIdentifier","src":"920:7:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"910:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"363:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"374:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"386:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"394:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"402:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"410:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"418:6:103","type":""}],"src":"280:653:103"},{"body":{"nodeType":"YulBlock","src":"1040:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1086:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1095:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1103:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1088:6:103"},"nodeType":"YulFunctionCall","src":"1088:22:103"},"nodeType":"YulExpressionStatement","src":"1088:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1061:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1070:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1057:3:103"},"nodeType":"YulFunctionCall","src":"1057:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1082:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1053:3:103"},"nodeType":"YulFunctionCall","src":"1053:32:103"},"nodeType":"YulIf","src":"1050:2:103"},{"nodeType":"YulVariableDeclaration","src":"1121:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1140:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1134:5:103"},"nodeType":"YulFunctionCall","src":"1134:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1125:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1184:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1159:24:103"},"nodeType":"YulFunctionCall","src":"1159:31:103"},"nodeType":"YulExpressionStatement","src":"1159:31:103"},{"nodeType":"YulAssignment","src":"1199:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1209:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1199:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IBundleToken_$6825_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1006:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1017:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1029:6:103","type":""}],"src":"938:282:103"},{"body":{"nodeType":"YulBlock","src":"1326:76:103","statements":[{"nodeType":"YulAssignment","src":"1336:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1348:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1359:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1344:3:103"},"nodeType":"YulFunctionCall","src":"1344:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1336:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1378:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1389:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1371:6:103"},"nodeType":"YulFunctionCall","src":"1371:25:103"},"nodeType":"YulExpressionStatement","src":"1371:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1295:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1306:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1317:4:103","type":""}],"src":"1225:177:103"},{"body":{"nodeType":"YulBlock","src":"1608:415:103","statements":[{"nodeType":"YulAssignment","src":"1618:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1630:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1641:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1626:3:103"},"nodeType":"YulFunctionCall","src":"1626:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1618:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1661:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1672:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1654:6:103"},"nodeType":"YulFunctionCall","src":"1654:25:103"},"nodeType":"YulExpressionStatement","src":"1654:25:103"},{"body":{"nodeType":"YulBlock","src":"1721:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1742:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1749:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1754:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1745:3:103"},"nodeType":"YulFunctionCall","src":"1745:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1735:6:103"},"nodeType":"YulFunctionCall","src":"1735:31:103"},"nodeType":"YulExpressionStatement","src":"1735:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1786:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1789:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1779:6:103"},"nodeType":"YulFunctionCall","src":"1779:15:103"},"nodeType":"YulExpressionStatement","src":"1779:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1814:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1817:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1807:6:103"},"nodeType":"YulFunctionCall","src":"1807:15:103"},"nodeType":"YulExpressionStatement","src":"1807:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1701:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1709:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1698:2:103"},"nodeType":"YulFunctionCall","src":"1698:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1691:6:103"},"nodeType":"YulFunctionCall","src":"1691:21:103"},"nodeType":"YulIf","src":"1688:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1852:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1863:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1848:3:103"},"nodeType":"YulFunctionCall","src":"1848:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1868:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1841:6:103"},"nodeType":"YulFunctionCall","src":"1841:34:103"},"nodeType":"YulExpressionStatement","src":"1841:34:103"},{"nodeType":"YulVariableDeclaration","src":"1884:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1902:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1907:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1898:3:103"},"nodeType":"YulFunctionCall","src":"1898:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1911:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1894:3:103"},"nodeType":"YulFunctionCall","src":"1894:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1888:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1933:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1944:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1929:3:103"},"nodeType":"YulFunctionCall","src":"1929:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1953:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1961:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1949:3:103"},"nodeType":"YulFunctionCall","src":"1949:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1922:6:103"},"nodeType":"YulFunctionCall","src":"1922:43:103"},"nodeType":"YulExpressionStatement","src":"1922:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1996:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1981:3:103"},"nodeType":"YulFunctionCall","src":"1981:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2005:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2013:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2001:3:103"},"nodeType":"YulFunctionCall","src":"2001:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1974:6:103"},"nodeType":"YulFunctionCall","src":"1974:43:103"},"nodeType":"YulExpressionStatement","src":"1974:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1553:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1564:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1572:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1580:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1588:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1599:4:103","type":""}],"src":"1407:616:103"},{"body":{"nodeType":"YulBlock","src":"2202:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2219:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2230:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2212:6:103"},"nodeType":"YulFunctionCall","src":"2212:21:103"},"nodeType":"YulExpressionStatement","src":"2212:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2253:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2264:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2249:3:103"},"nodeType":"YulFunctionCall","src":"2249:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2242:6:103"},"nodeType":"YulFunctionCall","src":"2242:30:103"},"nodeType":"YulExpressionStatement","src":"2242:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2303:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2288:3:103"},"nodeType":"YulFunctionCall","src":"2288:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2308:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2281:6:103"},"nodeType":"YulFunctionCall","src":"2281:62:103"},"nodeType":"YulExpressionStatement","src":"2281:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2363:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2374:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2359:3:103"},"nodeType":"YulFunctionCall","src":"2359:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2379:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2352:6:103"},"nodeType":"YulFunctionCall","src":"2352:33:103"},"nodeType":"YulExpressionStatement","src":"2352:33:103"},{"nodeType":"YulAssignment","src":"2394:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2406:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2417:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:103"},"nodeType":"YulFunctionCall","src":"2402:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2394:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2179:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2193:4:103","type":""}],"src":"2028:399:103"},{"body":{"nodeType":"YulBlock","src":"2606:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2623:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2634:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2616:6:103"},"nodeType":"YulFunctionCall","src":"2616:21:103"},"nodeType":"YulExpressionStatement","src":"2616:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2657:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2668:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2653:3:103"},"nodeType":"YulFunctionCall","src":"2653:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2673:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2646:6:103"},"nodeType":"YulFunctionCall","src":"2646:30:103"},"nodeType":"YulExpressionStatement","src":"2646:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2696:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2707:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2692:3:103"},"nodeType":"YulFunctionCall","src":"2692:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2712:34:103","type":"","value":"ERROR:RPL-003:ERC20_ADDRESS_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2685:6:103"},"nodeType":"YulFunctionCall","src":"2685:62:103"},"nodeType":"YulExpressionStatement","src":"2685:62:103"},{"nodeType":"YulAssignment","src":"2756:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2779:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2764:3:103"},"nodeType":"YulFunctionCall","src":"2764:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2756:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2583:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2597:4:103","type":""}],"src":"2432:356:103"},{"body":{"nodeType":"YulBlock","src":"2967:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2984:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2995:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2977:6:103"},"nodeType":"YulFunctionCall","src":"2977:21:103"},"nodeType":"YulExpressionStatement","src":"2977:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3018:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3029:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3014:3:103"},"nodeType":"YulFunctionCall","src":"3014:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3034:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3007:6:103"},"nodeType":"YulFunctionCall","src":"3007:30:103"},"nodeType":"YulExpressionStatement","src":"3007:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3068:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3053:3:103"},"nodeType":"YulFunctionCall","src":"3053:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3073:34:103","type":"","value":"ERROR:RPL-004:WALLET_ADDRESS_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3046:6:103"},"nodeType":"YulFunctionCall","src":"3046:62:103"},"nodeType":"YulExpressionStatement","src":"3046:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3128:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3139:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3124:3:103"},"nodeType":"YulFunctionCall","src":"3124:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3144:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3117:6:103"},"nodeType":"YulFunctionCall","src":"3117:31:103"},"nodeType":"YulExpressionStatement","src":"3117:31:103"},{"nodeType":"YulAssignment","src":"3157:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3180:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3165:3:103"},"nodeType":"YulFunctionCall","src":"3165:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3157:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2944:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2958:4:103","type":""}],"src":"2793:397:103"},{"body":{"nodeType":"YulBlock","src":"3369:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3397:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3379:6:103"},"nodeType":"YulFunctionCall","src":"3379:21:103"},"nodeType":"YulExpressionStatement","src":"3379:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3431:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3416:3:103"},"nodeType":"YulFunctionCall","src":"3416:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3436:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3409:6:103"},"nodeType":"YulFunctionCall","src":"3409:30:103"},"nodeType":"YulExpressionStatement","src":"3409:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3470:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3455:3:103"},"nodeType":"YulFunctionCall","src":"3455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3475:34:103","type":"","value":"ERROR:RPL-002:SUM_OF_SUM_INSURED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3448:6:103"},"nodeType":"YulFunctionCall","src":"3448:62:103"},"nodeType":"YulExpressionStatement","src":"3448:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3541:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3526:3:103"},"nodeType":"YulFunctionCall","src":"3526:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3546:11:103","type":"","value":"_CAP_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3519:6:103"},"nodeType":"YulFunctionCall","src":"3519:39:103"},"nodeType":"YulExpressionStatement","src":"3519:39:103"},{"nodeType":"YulAssignment","src":"3567:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3579:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3590:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3575:3:103"},"nodeType":"YulFunctionCall","src":"3575:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3567:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3346:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3360:4:103","type":""}],"src":"3195:405:103"},{"body":{"nodeType":"YulBlock","src":"3650:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"3714:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3723:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3726:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3716:6:103"},"nodeType":"YulFunctionCall","src":"3716:12:103"},"nodeType":"YulExpressionStatement","src":"3716:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3673:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3684:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3699:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3704:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3695:3:103"},"nodeType":"YulFunctionCall","src":"3695:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3708:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3691:3:103"},"nodeType":"YulFunctionCall","src":"3691:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3680:3:103"},"nodeType":"YulFunctionCall","src":"3680:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3670:2:103"},"nodeType":"YulFunctionCall","src":"3670:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3663:6:103"},"nodeType":"YulFunctionCall","src":"3663:50:103"},"nodeType":"YulIf","src":"3660:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3639:5:103","type":""}],"src":"3605:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256t_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n let value := mload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n let value_1 := mload(add(headStart, 96))\n validator_revert_address(value_1)\n value3 := value_1\n let value_2 := mload(add(headStart, 128))\n validator_revert_address(value_2)\n value4 := value_2\n }\n function abi_decode_tuple_t_contract$_IBundleToken_$6825_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPL-004:WALLET_ADDRESS_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:RPL-002:SUM_OF_SUM_INSURED\")\n mstore(add(headStart, 96), \"_CAP_ZERO\")\n tail := add(headStart, 128)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526011805463ffffffff191690553480156200001e57600080fd5b5060405162003118380380620031188339810160408190526200004191620005e1565b848469d3c21bcecceda10000008585858585858585858560028262000066336200047d565b6001600160a01b038116620000ce5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000f8620004cd565b600480546001600160a01b0319166001600160a01b039290921691909117905562000122620004e8565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014c62000515565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019f57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001f392909160ff82169130916101009091046001600160a01b03169062000648565b60405180910390a1505050600d85905583620002645760405162461bcd60e51b815260206004820152602960248201527f4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b6064820152608401620000c5565b600e8490556001600160a01b038316620002c15760405162461bcd60e51b815260206004820181905260248201527f4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f6044820152606401620000c5565b600c80546001600160a01b0319166001600160a01b038581169190911790915582166200033b5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401620000c5565b600b80546001600160a01b0319166001600160a01b038416179055620003736e496e7374616e63655365727669636560881b6200052f565b600780546001600160a01b0319166001600160a01b0392909216919091179055620003b06e5269736b706f6f6c5365727669636560881b6200052f565b600880546001600160a01b0319166001600160a01b0392831617905560075460408051633acd5e0f60e21b81529051919092169163eb35783c916004808301926020929190829003018186803b1580156200040a57600080fd5b505afa1580156200041f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004459190620005bb565b600980546001600160a01b0319166001600160a01b039290921691909117905550620006ac9f50505050505050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620004e36541636365737360d01b6200052f565b905090565b6000620004e37f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200052f565b6000620004e36e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200057a57600080fd5b505afa1580156200058f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005b59190620005bb565b92915050565b600060208284031215620005cd578081fd5b8151620005da8162000693565b9392505050565b600080600080600060a08688031215620005f9578081fd5b85519450602086015193506040860151620006148162000693565b6060870151909350620006278162000693565b60808701519092506200063a8162000693565b809150509295509295909350565b84815260808101600385106200066e57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6001600160a01b0381168114620006a957600080fd5b50565b612a5c80620006bc6000396000f3fe608060405234801561001057600080fd5b506004361061030c5760003560e01c80637f3b69801161019d578063b3fca9bd116100e9578063d0e0ba95116100a2578063e0815f0d1161007c578063e0815f0d146105ce578063f1d354d0146105d6578063f2fde38b146105e4578063feb1824b146105f75761030c565b8063d0e0ba95146105b3578063d73cd9921461039c578063e0032383146105c65761030c565b8063b3fca9bd1461039c578063bd1fe5d01461039c578063be169e7e1461057f578063be61e91e14610587578063c3004c8614610598578063c40000d4146105ab5761030c565b80638c483e5a11610156578063a17030d511610130578063a17030d51461055c578063a18aa1281461056f578063a18f5ae21461039c578063b26025aa146105775761030c565b80638c483e5a146105305780638da5cb5b146105435780639a82f890146105545761030c565b80637f3b6980146104d157806382558906146104d957806386c71288146104ec57806389002da514610502578063890fbf7814610515578063893d20e8146105285761030c565b80633dcdde171161025c5780635ab1bd5311610215578063652028e5116101ef578063652028e51461048d578063715018a6146104a05780637888a2ff146104a85780637893c7bc146104bb5761030c565b80635ab1bd53146104665780635d1ca6311461047d578063638ce0ba146104855761030c565b80633dcdde17146104175780634101b90c1461043457806345fe1c6d1461043c57806354afef631461044b578063587e59d01461045357806359dacc6a1461039c5761030c565b80631865c57d116102c95780632d0821b7116102a35780632d0821b7146103be578063316c5348146103de57806336153f3a146103f15780633629c3c4146104045761030c565b80631865c57d146103875780631b867c631461039c578063258d560c146103a65761030c565b80630676cb0e1461031157806312065fe014610337578063132996041461033f57806315dae03e1461036457806317d7de7c1461037757806318442e631461037f575b600080fd5b61032461031f366004612380565b610608565b6040519081526020015b60405180910390f35b610324610784565b600b546001600160a01b03165b6040516001600160a01b03909116815260200161032e565b60035460ff1660405161032e919061274c565b600154610324565b600a54610324565b61038f610814565b60405161032e9190612732565b6103a461089a565b005b6103ae6108e1565b604051901515815260200161032e565b6103d16103cc366004612380565b610911565b60405161032e9190612818565b6103a46103ec366004612380565b610a26565b6103246103ff3660046126ac565b610bc7565b6103a4610412366004612398565b610d93565b6040805160208101909152600081525b60405161032e9190612760565b610324610e1b565b610324670de0b6b3a764000081565b600d54610324565b6103a4610461366004612380565b610e59565b61034c60035461010090046001600160a01b031690565b600254610324565b6103a4610fc6565b6103a461049b366004612380565b611013565b6103a4611090565b6103246104b63660046123b9565b6110a2565b6104276040518060200160405280600081525081565b6103246111a5565b6103a46104e7366004612398565b6111e3565b6103ae6104fa36600461259a565b506001919050565b6103246105103660046126ac565b611263565b6103ae610523366004612398565b6113d7565b61034c61146e565b6103a461053e366004612380565b611480565b6000546001600160a01b031661034c565b6103ae6115ed565b6103a461056a366004612380565b6115f5565b600e54610324565b610324611762565b6103a46117a0565b61032469d3c21bcecceda100000081565b6103a46105a6366004612380565b6117ed565b610324611871565b6103a46105c1366004612380565b6118af565b6103246118f9565b6103ae611936565b670de0b6b3a7640000610324565b6103a46105f2366004612341565b61193f565b600c546001600160a01b031661034c565b60008061061460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190612694565b83106106f85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190612694565b9150505b919050565b60008061079060025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b1580156107d657600080fd5b505afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e9190612694565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561085d57600080fd5b505afa158015610871573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089591906123fc565b905090565b6108af6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146108df5760405162461bcd60e51b81526004016106ef90612773565b565b600060025b60035460ff16600281111561090b57634e487b7160e01b600052602160045260246000fd5b14905090565b610919612197565b600a5482106109765760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b60648201526084016106ef565b6000600a838154811061099957634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b1580156109ea57600080fd5b505afa1580156109fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077b91908101906124c6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aab91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610ae89160040190815260200190565b60206040518083038186803b158015610b0057600080fd5b505afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190612364565b9050336001600160a01b03821614610b625760405162461bcd60e51b81526004016106ef906127aa565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c4c91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610c899160040190815260200190565b60206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612364565b9050336001600160a01b03821614610d035760405162461bcd60e51b81526004016106ef906127aa565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610d5157600080fd5b505af1158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190612694565b9695505050505050565b610da363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b031614610dd35760405162461bcd60e51b81526004016106ef906127e1565b610ddd8282611a40565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b600080610e2760025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a66906024016107be565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ede91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610f1b9160040190815260200190565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612364565b9050336001600160a01b03821614610f955760405162461bcd60e51b81526004016106ef906127aa565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610b8f565b610fdb6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b03161461100b5760405162461bcd60e51b81526004016106ef90612773565b6108df611ac2565b61101b611b43565b600061102660025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505050505050565b611098611b43565b6108df6000611b9d565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e74906110db908490889088906004016126fe565b602060405180830381600087803b1580156110f557600080fd5b505af1158015611109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112d9190612694565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000806111b160025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db32844906024016107be565b6111f363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146112235760405162461bcd60e51b81526004016106ef906127e1565b61122d8282611bed565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610e0f565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b1580156112ac57600080fd5b505afa1580156112c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e891908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916113259160040190815260200190565b60206040518083038186803b15801561133d57600080fd5b505afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190612364565b9050336001600160a01b0382161461139f5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610d37565b60006113e963141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146114195760405162461bcd60e51b81526004016106ef906127e1565b6114238383611c3c565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610895565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156114c957600080fd5b505afa1580156114dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150591908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916115429160040190815260200190565b60206040518083038186803b15801561155a57600080fd5b505afa15801561156e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115929190612364565b9050336001600160a01b038216146115bc5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610b8f565b6000806108e6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261167a91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116b79160040190815260200190565b60206040518083038186803b1580156116cf57600080fd5b505afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190612364565b9050336001600160a01b038216146117315760405162461bcd60e51b81526004016106ef906127aa565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610b8f565b60008061176e60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d9235906024016107be565b6117b56810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146117e55760405162461bcd60e51b81526004016106ef90612773565b6108df61203f565b6117fd63141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b03161461182d5760405162461bcd60e51b81526004016106ef906127e1565b600061183882612127565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610e0f565b60008061187d60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f906024016107be565b6118c46810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146118f45760405162461bcd60e51b81526004016106ef90612773565b600255565b60008061190560025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b0316906329560980906024016107be565b600060016108e6565b611947611b43565b6001600160a01b0381166119ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ef565b6119b581611b9d565b50565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611a0257600080fd5b505afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190612364565b92915050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611aa557600080fd5b505af1158015611ab9573d6000803e3d6000fd5b50505050505050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146108df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ef565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611a8b565b600080611c47610e1b565b90506000611c536118f9565b90506000611c5f611762565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a160008311611cf45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c45530060448201526064016106ef565b808211611d435760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c00000060448201526064016106ef565b611d4d8582612908565b821061203657600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b158015611d9857600080fd5b505afa158015611dac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd4919081019061241b565b601154909150600090611dee90869063ffffffff166129a2565b905060005b8581108015611e00575086155b15612032576000611e1083610608565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015611e5a57600080fd5b505afa158015611e6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9691908101906124c6565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a1801561201c5760008260c001518360a00151611ef59190612920565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b811061200157600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b158015611f9b57600080fd5b505af1158015611faf573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff16925090611fdd8361297e565b91906101000a81548163ffffffff021916908363ffffffff1602179055505061201a565b8961200d876001612908565b61201791906129a2565b95505b505b505050808061202a90612963565b915050611df3565b5050505b50505092915050565b600061204a60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561208f57600080fd5b505afa1580156120a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c79190612694565b156119b55760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b60648201526084016106ef565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561218357600080fd5b505af1158015610757573d6000803e3d6000fd5b604051806101400160405280600081526020016000815260200160008152602001600060038111156121d957634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612219578081fd5b813561222c612227826128e0565b6128af565b818152846020838601011115612240578283fd5b816020850160208301379081016020019190915292915050565b600082601f83011261226a578081fd5b8151612278612227826128e0565b81815284602083860101111561228c578283fd5b61229d826020830160208701612937565b949350505050565b803561077f81612a19565b805161077f81612a19565b600060c082840312156122cc578081fd5b6122d660c06128af565b905081356122e381612a19565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561231557600080fd5b61232184828501612209565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612352578081fd5b813561235d81612a04565b9392505050565b600060208284031215612375578081fd5b815161235d81612a04565b600060208284031215612391578081fd5b5035919050565b600080604083850312156123aa578081fd5b50508035926020909101359150565b600080604083850312156123cb578182fd5b823567ffffffffffffffff8111156123e1578283fd5b6123ed85828601612209565b95602094909401359450505050565b60006020828403121561240d578081fd5b81516007811061235d578182fd5b60006020828403121561242c578081fd5b815167ffffffffffffffff80821115612443578283fd5b9083019060c08286031215612456578283fd5b61246060c06128af565b825161246b81612a19565b808252506020830151602082015260408301516040820152606083015182811115612494578485fd5b6124a08782860161225a565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000602082840312156124d7578081fd5b815167ffffffffffffffff808211156124ee578283fd5b8184019150610140808387031215612504578384fd5b61250d816128af565b9050825181526020830151602082015260408301516040820152612533606084016122b0565b6060820152608083015182811115612549578485fd5b6125558782860161225a565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600080604083850312156125ac578182fd5b823567ffffffffffffffff808211156125c3578384fd5b81850191506101408083880312156125d9578485fd5b6125e2816128af565b9050823581526020830135602082015260408301356040820152612608606084016122a5565b606082015260808301358281111561261e578586fd5b61262a88828601612209565b60808301525060a083013560a082015260c083013560c082015260e083013560e082015261010080840135818301525061012080840135818301525080945050602085013591508082111561267d578283fd5b5061268a858286016122bb565b9150509250929050565b6000602082840312156126a5578081fd5b5051919050565b600080604083850312156123aa578182fd5b600081518084526126d6816020860160208601612937565b601f01601f19169290920160200192915050565b600481106126fa576126fa6129d8565b9052565b6001600160a01b0384168152606060208201819052600090612722908301856126be565b9050826040830152949350505050565b6020810160078310612746576127466129d8565b91905290565b6020810160038310612746576127466129d8565b60006020825261235d60208301846126be565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b600060208252825160208301526020830151604083015260408301516060830152606083015161284b60808401826126ea565b5060808301516101408060a08501526128686101608501836126be565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128d8576128d86129ee565b604052919050565b600067ffffffffffffffff8211156128fa576128fa6129ee565b50601f01601f191660200190565b6000821982111561291b5761291b6129c2565b500190565b600082821015612932576129326129c2565b500390565b60005b8381101561295257818101518382015260200161293a565b83811115611b3d5750506000910152565b6000600019821415612977576129776129c2565b5060010190565b600063ffffffff80831681811415612998576129986129c2565b6001019392505050565b6000826129bd57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146119b557600080fd5b600481106119b557600080fdfea264697066735822122027465eb2540f515511bab31c2e975b912c7cb02ee862dca2d6d9395445502f7364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x11 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3118 CODESIZE SUB DUP1 PUSH3 0x3118 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x41 SWAP2 PUSH3 0x5E1 JUMP JUMPDEST DUP5 DUP5 PUSH10 0xD3C21BCECCEDA1000000 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH1 0x2 DUP3 PUSH3 0x66 CALLER PUSH3 0x47D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xF8 PUSH3 0x4CD JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x122 PUSH3 0x4E8 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x14C PUSH3 0x515 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x19F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1F3 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x648 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP PUSH1 0xD DUP6 SWAP1 SSTORE DUP4 PUSH3 0x264 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030323A53554D5F4F465F53554D5F494E5355524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F4341505F5A45524F PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xE DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH3 0x2C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030333A45524332305F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP3 AND PUSH3 0x33B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030343A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE PUSH3 0x373 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL PUSH3 0x52F JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x3B0 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH3 0x52F JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3ACD5E0F PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xEB35783C SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x41F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x445 SWAP2 SWAP1 PUSH3 0x5BB JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x6AC SWAP16 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4E3 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x52F JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4E3 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x52F JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4E3 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x57A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x58F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x5B5 SWAP2 SWAP1 PUSH3 0x5BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x5CD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x5DA DUP2 PUSH3 0x693 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x5F9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 MLOAD SWAP5 POP PUSH1 0x20 DUP7 ADD MLOAD SWAP4 POP PUSH1 0x40 DUP7 ADD MLOAD PUSH3 0x614 DUP2 PUSH3 0x693 JUMP JUMPDEST PUSH1 0x60 DUP8 ADD MLOAD SWAP1 SWAP4 POP PUSH3 0x627 DUP2 PUSH3 0x693 JUMP JUMPDEST PUSH1 0x80 DUP8 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x63A DUP2 PUSH3 0x693 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x66E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2A5C DUP1 PUSH3 0x6BC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x30C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3B6980 GT PUSH2 0x19D JUMPI DUP1 PUSH4 0xB3FCA9BD GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xD0E0BA95 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x5D6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5E4 JUMPI DUP1 PUSH4 0xFEB1824B EQ PUSH2 0x5F7 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x5B3 JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xE0032383 EQ PUSH2 0x5C6 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x57F JUMPI DUP1 PUSH4 0xBE61E91E EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xC3004C86 EQ PUSH2 0x598 JUMPI DUP1 PUSH4 0xC40000D4 EQ PUSH2 0x5AB JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A GT PUSH2 0x156 JUMPI DUP1 PUSH4 0xA17030D5 GT PUSH2 0x130 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x55C JUMPI DUP1 PUSH4 0xA18AA128 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xB26025AA EQ PUSH2 0x577 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x543 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x554 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x7F3B6980 EQ PUSH2 0x4D1 JUMPI DUP1 PUSH4 0x82558906 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0x86C71288 EQ PUSH2 0x4EC JUMPI DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0x890FBF78 EQ PUSH2 0x515 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x528 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x3DCDDE17 GT PUSH2 0x25C JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x215 JUMPI DUP1 PUSH4 0x652028E5 GT PUSH2 0x1EF JUMPI DUP1 PUSH4 0x652028E5 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x7888A2FF EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0x7893C7BC EQ PUSH2 0x4BB JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x466 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x47D JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x485 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x3DCDDE17 EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0x4101B90C EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x43C JUMPI DUP1 PUSH4 0x54AFEF63 EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x453 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x39C JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x1865C57D GT PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x3F1 JUMPI DUP1 PUSH4 0x3629C3C4 EQ PUSH2 0x404 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x1865C57D EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x3A6 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x676CB0E EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x13299604 EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x377 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x37F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x324 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x324 PUSH2 0x784 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x274C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x38F PUSH2 0x814 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x89A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3AE PUSH2 0x8E1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x3D1 PUSH2 0x3CC CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2818 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x3EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0xA26 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x26AC JUMP JUMPDEST PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x412 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0xD93 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2760 JUMP JUMPDEST PUSH2 0x324 PUSH2 0xE1B JUMP JUMPDEST PUSH2 0x324 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x461 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0xE59 JUMP JUMPDEST PUSH2 0x34C PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0xFC6 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x1013 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x1090 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x4B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x23B9 JUMP JUMPDEST PUSH2 0x10A2 JUMP JUMPDEST PUSH2 0x427 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x11A5 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x4E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x11E3 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x4FA CALLDATASIZE PUSH1 0x4 PUSH2 0x259A JUMP JUMPDEST POP PUSH1 0x1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x324 PUSH2 0x510 CALLDATASIZE PUSH1 0x4 PUSH2 0x26AC JUMP JUMPDEST PUSH2 0x1263 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x523 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x13D7 JUMP JUMPDEST PUSH2 0x34C PUSH2 0x146E JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x53E CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x1480 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x34C JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x15ED JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x56A CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x15F5 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x1762 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x17A0 JUMP JUMPDEST PUSH2 0x324 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x17ED JUMP JUMPDEST PUSH2 0x324 PUSH2 0x1871 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x18AF JUMP JUMPDEST PUSH2 0x324 PUSH2 0x18F9 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x1936 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2341 JUMP JUMPDEST PUSH2 0x193F JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x34C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x614 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x659 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x66D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x691 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST DUP4 LT PUSH2 0x6F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030373A4143544956455F42554E444C455F494E4445 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x585F544F4F5F4C41524745 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x77B SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x790 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1E010439 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1E010439 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x80E SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x871 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x895 SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8AF PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x90B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x919 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0xA SLOAD DUP3 LT PUSH2 0x976 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030363A42554E444C455F494E4445585F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x999 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x77B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA83 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xAAB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xAE8 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB38 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xB62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62D8A69 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x316C5348 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC4C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xC89 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCD9 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xD03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B0A9F9D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x36153F3A SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDA3 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDD3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0xDDD DUP3 DUP3 PUSH2 0x1A40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xD910A5091EEA39C3EFEED9891A9E2B4694BD064808F5B0A4DE415D70B313EC52 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE27 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEB6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xEDE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xF1B SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF47 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xF95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x587E59D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x587E59D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH2 0xFDB PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x100B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH2 0x8DF PUSH2 0x1AC2 JUMP JUMPDEST PUSH2 0x101B PUSH2 0x1B43 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1026 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1074 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1088 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1098 PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0x8DF PUSH1 0x0 PUSH2 0x1B9D JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57F079D PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x15FC1E74 SWAP1 PUSH2 0x10DB SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26FE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1109 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x112D SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC65A7BB8D6351C1CF70C95A316CC6A92839C986682D98BC35F958F4883F9D2A8 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH32 0xD17D9DC3726BA31D9AF5D3A3425289766158A8EA95520E1C299CCBE4A2978B34 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11B1 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x11F3 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1223 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0x122D DUP3 DUP3 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xEE37957C2D37326FA4E3897FC3947BBDBD8E1082639A302C1C206B4D1C5E695 SWAP2 ADD PUSH2 0xE0F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12E8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1325 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1351 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1375 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x139F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89002DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x89002DA5 SWAP1 PUSH1 0x44 ADD PUSH2 0xD37 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13E9 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1419 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0x1423 DUP4 DUP4 PUSH2 0x1C3C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP3 ISZERO ISZERO DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9D0F25E972AD53428B0A94CD615FA731919562FA34769DF0F9C3EED71B0BD81E SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x895 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1505 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1542 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x156E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1592 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x15BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x46241F2D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8C483E5A SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8E6 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1652 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x167A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x16B7 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1707 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA17030D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA17030D5 SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x176E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F5D9235 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3F5D9235 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x17B5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH2 0x8DF PUSH2 0x203F JUMP JUMPDEST PUSH2 0x17FD PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x182D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1838 DUP3 PUSH2 0x2127 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x22BF66455B4BF54C9548E2BB650543CFA753A53CAB13AF4020DDBFA76C231B0F SWAP2 ADD PUSH2 0xE0F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x187D PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBCD5349F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBCD5349F SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x18C4 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x18F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1905 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH3 0x52AC13 PUSH1 0xE7 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x29560980 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x8E6 JUMP JUMPDEST PUSH2 0x1947 PUSH2 0x1B43 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x19AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH2 0x19B5 DUP2 PUSH2 0x1B9D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A3A SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH1 0xD SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x5F971AA3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x64 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0xBF2E3546 SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x1A8B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1C47 PUSH2 0xE1B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C53 PUSH2 0x18F9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C5F PUSH2 0x1762 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7296D1A54B2D02C3A2F8F0B83B688D6B8415618F2AB8C3D5F761DD678DCC4B29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 GT PUSH2 0x1CF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030313A4E4F5F4143544956455F42554E444C455300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST DUP1 DUP3 GT PUSH2 0x1D43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030323A4E4F5F465245455F4341504954414C000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH2 0x1D4D DUP6 DUP3 PUSH2 0x2908 JUMP JUMPDEST DUP3 LT PUSH2 0x2036 JUMPI PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1DD4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241B JUMP JUMPDEST PUSH1 0x11 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1DEE SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x29A2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT DUP1 ISZERO PUSH2 0x1E00 JUMPI POP DUP7 ISZERO JUMPDEST ISZERO PUSH2 0x2032 JUMPI PUSH1 0x0 PUSH2 0x1E10 DUP4 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1E96 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x4FB0F8B19E3CE187A133519BFF1FCBDF3DFBC1B55F8BC334A3DA5BCADBEEA2A7 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 ISZERO PUSH2 0x201C JUMPI PUSH1 0x0 DUP3 PUSH1 0xC0 ADD MLOAD DUP4 PUSH1 0xA0 ADD MLOAD PUSH2 0x1EF5 SWAP2 SWAP1 PUSH2 0x2920 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xE54EF564BEE7E49A6E78296E638947532DE075D47CD66E331104B4812756F119 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 DUP2 LT PUSH2 0x2001 JUMPI PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP15 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP7 SWAP1 SSTORE PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 SWAP15 POP PUSH4 0xFFFFFFFF AND SWAP3 POP SWAP1 PUSH2 0x1FDD DUP4 PUSH2 0x297E JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x201A JUMP JUMPDEST DUP10 PUSH2 0x200D DUP8 PUSH1 0x1 PUSH2 0x2908 JUMP JUMPDEST PUSH2 0x2017 SWAP2 SWAP1 PUSH2 0x29A2 JUMP JUMPDEST SWAP6 POP JUMPDEST POP JUMPDEST POP POP POP DUP1 DUP1 PUSH2 0x202A SWAP1 PUSH2 0x2963 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1DF3 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x204A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20C7 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST ISZERO PUSH2 0x19B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3031303A5249534B504F4F4C5F4841535F554E425552 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x4E545F42554E444C4553 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2183 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2219 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x222C PUSH2 0x2227 DUP3 PUSH2 0x28E0 JUMP JUMPDEST PUSH2 0x28AF JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2240 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x226A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2278 PUSH2 0x2227 DUP3 PUSH2 0x28E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x228C JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x229D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2937 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x77F DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x77F DUP2 PUSH2 0x2A19 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22CC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x22D6 PUSH1 0xC0 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x22E3 DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2321 DUP5 DUP3 DUP6 ADD PUSH2 0x2209 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2352 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x235D DUP2 PUSH2 0x2A04 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2375 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x235D DUP2 PUSH2 0x2A04 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2391 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23AA JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23CB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23E1 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x23ED DUP6 DUP3 DUP7 ADD PUSH2 0x2209 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x235D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x242C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2443 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2456 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2460 PUSH1 0xC0 PUSH2 0x28AF JUMP JUMPDEST DUP3 MLOAD PUSH2 0x246B DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2494 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x24A0 DUP8 DUP3 DUP7 ADD PUSH2 0x225A JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24D7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x24EE JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2504 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x250D DUP2 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2533 PUSH1 0x60 DUP5 ADD PUSH2 0x22B0 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2549 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2555 DUP8 DUP3 DUP7 ADD PUSH2 0x225A JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25AC JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25C3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP9 SUB SLT ISZERO PUSH2 0x25D9 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x25E2 DUP2 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2608 PUSH1 0x60 DUP5 ADD PUSH2 0x22A5 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x261E JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x262A DUP9 DUP3 DUP7 ADD PUSH2 0x2209 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD CALLDATALOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x267D JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x268A DUP6 DUP3 DUP7 ADD PUSH2 0x22BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26A5 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23AA JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x26D6 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2937 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x26FA JUMPI PUSH2 0x26FA PUSH2 0x29D8 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2722 SWAP1 DUP4 ADD DUP6 PUSH2 0x26BE JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2746 JUMPI PUSH2 0x2746 PUSH2 0x29D8 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x2746 JUMPI PUSH2 0x2746 PUSH2 0x29D8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x235D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26BE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F42554E444C455F4F574E45520000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030313A4143434553535F44454E4945440000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x284B PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x26EA JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2868 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x26BE JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x28D8 JUMPI PUSH2 0x28D8 PUSH2 0x29EE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28FA JUMPI PUSH2 0x28FA PUSH2 0x29EE JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x291B JUMPI PUSH2 0x291B PUSH2 0x29C2 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2932 JUMPI PUSH2 0x2932 PUSH2 0x29C2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2952 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x293A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1B3D JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2977 JUMPI PUSH2 0x2977 PUSH2 0x29C2 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2998 JUMPI PUSH2 0x2998 PUSH2 0x29C2 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x29BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x19B5 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x27 CHAINID 0x5E 0xB2 SLOAD 0xF MLOAD SSTORE GT 0xBA 0xB3 SHR 0x2E SWAP8 JUMPDEST SWAP2 0x2C PUSH29 0xB02EE862DCA2D6D9395445502F7364736F6C6343000802003300000000 ","sourceMap":"272:702:99:-:0;;;769:35:11;;;-1:-1:-1;;769:35:11;;;384:269:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;566:4;572:17;369:6;615:10;627:6;635:8;566:4;572:17;369:6;615:10;627:6;635:8;566:4;1887:22:19;635:8:99;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;2230:2:103;1619:70:12::1;::::0;::::1;2212:21:103::0;2269:2;2249:18;;;2242:30;2308:34;2288:18;;;2281:62;-1:-1:-1;;;2359:18:103;;;2352:33;2402:19;;1619:70:12::1;;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;;;1938:18:19::1;:38:::0;;;1997:23;1989:77:::1;;;::::0;-1:-1:-1;;;1989:77:19;;3397:2:103;1989:77:19::1;::::0;::::1;3379:21:103::0;3436:2;3416:18;;;3409:30;3475:34;3455:18;;;3448:62;-1:-1:-1;;;3526:18:103;;;3519:39;3575:19;;1989:77:19::1;3369:231:103::0;1989:77:19::1;2077:19;:40:::0;;;-1:-1:-1;;;;;2138:24:19;::::1;2130:69;;;::::0;-1:-1:-1;;;2130:69:19;;2634:2:103;2130:69:19::1;::::0;::::1;2616:21:103::0;;;2653:18;;;2646:30;2712:34;2692:18;;;2685:62;2764:18;;2130:69:19::1;2606:182:103::0;2130:69:19::1;2210:11;:24:::0;;-1:-1:-1;;;;;;2210:24:19::1;-1:-1:-1::0;;;;;2210:24:19;;::::1;::::0;;;::::1;::::0;;;2255:20;::::1;2247:66;;;::::0;-1:-1:-1;;;2247:66:19;;2995:2:103;2247:66:19::1;::::0;::::1;2977:21:103::0;3034:2;3014:18;;;3007:30;3073:34;3053:18;;;3046:62;-1:-1:-1;;;3124:18:103;;;3117:31;3165:19;;2247:66:19::1;2967:223:103::0;2247:66:19::1;2324:7;:16:::0;;-1:-1:-1;;;;;;2324:16:19::1;-1:-1:-1::0;;;;;2324:16:19;::::1;;::::0;;2389:38:::1;-1:-1:-1::0;;;2389:19:19::1;:38::i;:::-;2353:16;:75:::0;;-1:-1:-1;;;;;;2353:75:19::1;-1:-1:-1::0;;;;;2353:75:19;;;::::1;::::0;;;::::1;::::0;;2476:38:::1;-1:-1:-1::0;;;2476:19:19::1;:38::i;:::-;2440:16;:75:::0;;-1:-1:-1;;;;;;2440:75:19::1;-1:-1:-1::0;;;;;2440:75:19;;::::1;;::::0;;2541:16:::1;::::0;:33:::1;::::0;;-1:-1:-1;;;2541:33:19;;;;:16;;;::::1;::::0;:31:::1;::::0;:33:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:16;:33;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2526:12;:48:::0;;-1:-1:-1;;;;;;2526:48:19::1;-1:-1:-1::0;;;;;2526:48:19;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;272:702:99;;-1:-1:-1;;;;;;;;;;;;;;;;272:702:99;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1371:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1344:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;4875:145;-1:-1:-1;;4875:145:12:o;14:261:103:-;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;195:9;189:16;214:31;239:5;214:31;:::i;:::-;264:5;95:180;-1:-1:-1;;;95:180:103:o;280:653::-;;;;;;471:3;459:9;450:7;446:23;442:33;439:2;;;493:6;485;478:22;439:2;527:9;521:16;511:26;;577:2;566:9;562:18;556:25;546:35;;624:2;613:9;609:18;603:25;637:31;662:5;637:31;:::i;:::-;737:2;722:18;;716:25;687:5;;-1:-1:-1;750:33:103;716:25;750:33;:::i;:::-;854:3;839:19;;833:26;802:7;;-1:-1:-1;868:33:103;833:26;868:33;:::i;:::-;920:7;910:17;;;429:504;;;;;;;;:::o;1407:616::-;1654:25;;;1641:3;1626:19;;1709:1;1698:13;;1688:2;;1754:10;1749:3;1745:20;1742:1;1735:31;1789:4;1786:1;1779:15;1817:4;1814:1;1807:15;1688:2;1863;1848:18;;1841:34;;;;-1:-1:-1;;;;;1949:15:103;;;1944:2;1929:18;;1922:43;2001:15;;1996:2;1981:18;;;1974:43;1608:415;;-1:-1:-1;1608:415:103:o;3605:131::-;-1:-1:-1;;;;;3680:31:103;;3670:42;;3660:2;;3726:1;3723;3716:12;3660:2;3650:86;:::o;:::-;272:702:99;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:20565:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"66:430:103","statements":[{"body":{"nodeType":"YulBlock","src":"115:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"124:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"131:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"117:6:103"},"nodeType":"YulFunctionCall","src":"117:20:103"},"nodeType":"YulExpressionStatement","src":"117:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"94:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"102:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"90:3:103"},"nodeType":"YulFunctionCall","src":"90:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"109:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"86:3:103"},"nodeType":"YulFunctionCall","src":"86:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"79:6:103"},"nodeType":"YulFunctionCall","src":"79:35:103"},"nodeType":"YulIf","src":"76:2:103"},{"nodeType":"YulVariableDeclaration","src":"148:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"171:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"158:12:103"},"nodeType":"YulFunctionCall","src":"158:20:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"152:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"187:63:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"246:2:103"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"218:27:103"},"nodeType":"YulFunctionCall","src":"218:31:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"202:15:103"},"nodeType":"YulFunctionCall","src":"202:48:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"191:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"266:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"275:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"259:6:103"},"nodeType":"YulFunctionCall","src":"259:19:103"},"nodeType":"YulExpressionStatement","src":"259:19:103"},{"body":{"nodeType":"YulBlock","src":"326:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"335:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"342:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"328:6:103"},"nodeType":"YulFunctionCall","src":"328:20:103"},"nodeType":"YulExpressionStatement","src":"328:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"301:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"309:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"297:3:103"},"nodeType":"YulFunctionCall","src":"297:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"314:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"293:3:103"},"nodeType":"YulFunctionCall","src":"293:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"321:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"290:2:103"},"nodeType":"YulFunctionCall","src":"290:35:103"},"nodeType":"YulIf","src":"287:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"376:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"385:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"372:3:103"},"nodeType":"YulFunctionCall","src":"372:18:103"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"396:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"404:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:17:103"},{"name":"_1","nodeType":"YulIdentifier","src":"411:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"359:12:103"},"nodeType":"YulFunctionCall","src":"359:55:103"},"nodeType":"YulExpressionStatement","src":"359:55:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"438:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"447:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"434:3:103"},"nodeType":"YulFunctionCall","src":"434:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"452:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"430:3:103"},"nodeType":"YulFunctionCall","src":"430:27:103"},{"name":"array","nodeType":"YulIdentifier","src":"459:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:103"},"nodeType":"YulFunctionCall","src":"423:42:103"},"nodeType":"YulExpressionStatement","src":"423:42:103"},{"nodeType":"YulAssignment","src":"474:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"483:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"474:5:103"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"40:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"48:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"56:5:103","type":""}],"src":"14:482:103"},{"body":{"nodeType":"YulBlock","src":"564:381:103","statements":[{"body":{"nodeType":"YulBlock","src":"613:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"622:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"629:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"615:6:103"},"nodeType":"YulFunctionCall","src":"615:20:103"},"nodeType":"YulExpressionStatement","src":"615:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"592:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"600:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"588:3:103"},"nodeType":"YulFunctionCall","src":"588:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"607:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"584:3:103"},"nodeType":"YulFunctionCall","src":"584:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"577:6:103"},"nodeType":"YulFunctionCall","src":"577:35:103"},"nodeType":"YulIf","src":"574:2:103"},{"nodeType":"YulVariableDeclaration","src":"646:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"662:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"656:5:103"},"nodeType":"YulFunctionCall","src":"656:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"650:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"678:63:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"737:2:103"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"709:27:103"},"nodeType":"YulFunctionCall","src":"709:31:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"693:15:103"},"nodeType":"YulFunctionCall","src":"693:48:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"682:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"757:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"766:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"750:6:103"},"nodeType":"YulFunctionCall","src":"750:19:103"},"nodeType":"YulExpressionStatement","src":"750:19:103"},{"body":{"nodeType":"YulBlock","src":"817:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"826:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"833:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"819:6:103"},"nodeType":"YulFunctionCall","src":"819:20:103"},"nodeType":"YulExpressionStatement","src":"819:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"800:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"788:3:103"},"nodeType":"YulFunctionCall","src":"788:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"805:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"784:3:103"},"nodeType":"YulFunctionCall","src":"784:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"812:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"781:2:103"},"nodeType":"YulFunctionCall","src":"781:35:103"},"nodeType":"YulIf","src":"778:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"876:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"884:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"872:3:103"},"nodeType":"YulFunctionCall","src":"872:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"895:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"904:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"891:3:103"},"nodeType":"YulFunctionCall","src":"891:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"911:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"850:21:103"},"nodeType":"YulFunctionCall","src":"850:64:103"},"nodeType":"YulExpressionStatement","src":"850:64:103"},{"nodeType":"YulAssignment","src":"923:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"932:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"923:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"538:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"546:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"554:5:103","type":""}],"src":"501:444:103"},{"body":{"nodeType":"YulBlock","src":"1013:99:103","statements":[{"nodeType":"YulAssignment","src":"1023:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1045:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1032:12:103"},"nodeType":"YulFunctionCall","src":"1032:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1023:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1100:5:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1061:38:103"},"nodeType":"YulFunctionCall","src":"1061:45:103"},"nodeType":"YulExpressionStatement","src":"1061:45:103"}]},"name":"abi_decode_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"992:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1003:5:103","type":""}],"src":"950:162:103"},{"body":{"nodeType":"YulBlock","src":"1191:92:103","statements":[{"nodeType":"YulAssignment","src":"1201:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1216:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1210:5:103"},"nodeType":"YulFunctionCall","src":"1210:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1201:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1271:5:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1232:38:103"},"nodeType":"YulFunctionCall","src":"1232:45:103"},"nodeType":"YulExpressionStatement","src":"1232:45:103"}]},"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1170:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1181:5:103","type":""}],"src":"1117:166:103"},{"body":{"nodeType":"YulBlock","src":"1356:703:103","statements":[{"body":{"nodeType":"YulBlock","src":"1400:24:103","statements":[{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1409:5:103"},{"name":"value","nodeType":"YulIdentifier","src":"1416:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1402:6:103"},"nodeType":"YulFunctionCall","src":"1402:20:103"},"nodeType":"YulExpressionStatement","src":"1402:20:103"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"1377:3:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1382:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1373:3:103"},"nodeType":"YulFunctionCall","src":"1373:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"1394:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1369:3:103"},"nodeType":"YulFunctionCall","src":"1369:30:103"},"nodeType":"YulIf","src":"1366:2:103"},{"nodeType":"YulAssignment","src":"1433:30:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1458:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1442:15:103"},"nodeType":"YulFunctionCall","src":"1442:21:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1433:5:103"}]},{"nodeType":"YulVariableDeclaration","src":"1472:38:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1500:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1487:12:103"},"nodeType":"YulFunctionCall","src":"1487:23:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1476:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1558:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1519:38:103"},"nodeType":"YulFunctionCall","src":"1519:47:103"},"nodeType":"YulExpressionStatement","src":"1519:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1582:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"1589:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1575:6:103"},"nodeType":"YulFunctionCall","src":"1575:22:103"},"nodeType":"YulExpressionStatement","src":"1575:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1617:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1624:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1613:3:103"},"nodeType":"YulFunctionCall","src":"1613:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1646:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1657:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1642:3:103"},"nodeType":"YulFunctionCall","src":"1642:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1629:12:103"},"nodeType":"YulFunctionCall","src":"1629:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1606:6:103"},"nodeType":"YulFunctionCall","src":"1606:56:103"},"nodeType":"YulExpressionStatement","src":"1606:56:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1682:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1689:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1678:3:103"},"nodeType":"YulFunctionCall","src":"1678:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1711:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1722:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1707:3:103"},"nodeType":"YulFunctionCall","src":"1707:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1694:12:103"},"nodeType":"YulFunctionCall","src":"1694:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1671:6:103"},"nodeType":"YulFunctionCall","src":"1671:56:103"},"nodeType":"YulExpressionStatement","src":"1671:56:103"},{"nodeType":"YulVariableDeclaration","src":"1736:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1778:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1763:3:103"},"nodeType":"YulFunctionCall","src":"1763:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1750:12:103"},"nodeType":"YulFunctionCall","src":"1750:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1740:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1825:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1834:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1837:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1827:6:103"},"nodeType":"YulFunctionCall","src":"1827:12:103"},"nodeType":"YulExpressionStatement","src":"1827:12:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1797:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1805:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1794:2:103"},"nodeType":"YulFunctionCall","src":"1794:30:103"},"nodeType":"YulIf","src":"1791:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1861:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1868:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1857:3:103"},"nodeType":"YulFunctionCall","src":"1857:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1894:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1905:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1890:3:103"},"nodeType":"YulFunctionCall","src":"1890:22:103"},{"name":"end","nodeType":"YulIdentifier","src":"1914:3:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"1873:16:103"},"nodeType":"YulFunctionCall","src":"1873:45:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1850:6:103"},"nodeType":"YulFunctionCall","src":"1850:69:103"},"nodeType":"YulExpressionStatement","src":"1850:69:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1939:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1946:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1935:3:103"},"nodeType":"YulFunctionCall","src":"1935:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1980:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1965:3:103"},"nodeType":"YulFunctionCall","src":"1965:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1952:12:103"},"nodeType":"YulFunctionCall","src":"1952:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1928:6:103"},"nodeType":"YulFunctionCall","src":"1928:58:103"},"nodeType":"YulExpressionStatement","src":"1928:58:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2006:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2013:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:103"},"nodeType":"YulFunctionCall","src":"2002:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2047:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2032:3:103"},"nodeType":"YulFunctionCall","src":"2032:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2019:12:103"},"nodeType":"YulFunctionCall","src":"2019:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1995:6:103"},"nodeType":"YulFunctionCall","src":"1995:58:103"},"nodeType":"YulExpressionStatement","src":"1995:58:103"}]},"name":"abi_decode_struct_Application","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1327:9:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"1338:3:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1346:5:103","type":""}],"src":"1288:771:103"},{"body":{"nodeType":"YulBlock","src":"2134:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"2180:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2189:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2197:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2182:6:103"},"nodeType":"YulFunctionCall","src":"2182:22:103"},"nodeType":"YulExpressionStatement","src":"2182:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2155:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2164:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2151:3:103"},"nodeType":"YulFunctionCall","src":"2151:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2176:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2147:3:103"},"nodeType":"YulFunctionCall","src":"2147:32:103"},"nodeType":"YulIf","src":"2144:2:103"},{"nodeType":"YulVariableDeclaration","src":"2215:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2241:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2228:12:103"},"nodeType":"YulFunctionCall","src":"2228:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2219:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2285:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2260:24:103"},"nodeType":"YulFunctionCall","src":"2260:31:103"},"nodeType":"YulExpressionStatement","src":"2260:31:103"},{"nodeType":"YulAssignment","src":"2300:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2310:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2300:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2100:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2111:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2123:6:103","type":""}],"src":"2064:257:103"},{"body":{"nodeType":"YulBlock","src":"2407:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2453:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2462:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2470:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2455:6:103"},"nodeType":"YulFunctionCall","src":"2455:22:103"},"nodeType":"YulExpressionStatement","src":"2455:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2428:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2437:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2424:3:103"},"nodeType":"YulFunctionCall","src":"2424:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2449:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2420:3:103"},"nodeType":"YulFunctionCall","src":"2420:32:103"},"nodeType":"YulIf","src":"2417:2:103"},{"nodeType":"YulVariableDeclaration","src":"2488:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2507:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2501:5:103"},"nodeType":"YulFunctionCall","src":"2501:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2492:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2551:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2526:24:103"},"nodeType":"YulFunctionCall","src":"2526:31:103"},"nodeType":"YulExpressionStatement","src":"2526:31:103"},{"nodeType":"YulAssignment","src":"2566:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2576:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2566:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2373:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2384:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2396:6:103","type":""}],"src":"2326:261:103"},{"body":{"nodeType":"YulBlock","src":"2662:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2708:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2717:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2725:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2710:6:103"},"nodeType":"YulFunctionCall","src":"2710:22:103"},"nodeType":"YulExpressionStatement","src":"2710:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2683:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2692:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2679:3:103"},"nodeType":"YulFunctionCall","src":"2679:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2704:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2675:3:103"},"nodeType":"YulFunctionCall","src":"2675:32:103"},"nodeType":"YulIf","src":"2672:2:103"},{"nodeType":"YulAssignment","src":"2743:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2766:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2753:12:103"},"nodeType":"YulFunctionCall","src":"2753:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2743:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2628:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2639:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2651:6:103","type":""}],"src":"2592:190:103"},{"body":{"nodeType":"YulBlock","src":"2874:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2920:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2929:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2937:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2922:6:103"},"nodeType":"YulFunctionCall","src":"2922:22:103"},"nodeType":"YulExpressionStatement","src":"2922:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2895:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2904:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2891:3:103"},"nodeType":"YulFunctionCall","src":"2891:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2916:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2887:3:103"},"nodeType":"YulFunctionCall","src":"2887:32:103"},"nodeType":"YulIf","src":"2884:2:103"},{"nodeType":"YulAssignment","src":"2955:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2978:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2965:12:103"},"nodeType":"YulFunctionCall","src":"2965:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2955:6:103"}]},{"nodeType":"YulAssignment","src":"2997:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3024:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3035:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3020:3:103"},"nodeType":"YulFunctionCall","src":"3020:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3007:12:103"},"nodeType":"YulFunctionCall","src":"3007:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2997:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2832:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2843:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2855:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2863:6:103","type":""}],"src":"2787:258:103"},{"body":{"nodeType":"YulBlock","src":"3146:312:103","statements":[{"body":{"nodeType":"YulBlock","src":"3192:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3201:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3209:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3194:6:103"},"nodeType":"YulFunctionCall","src":"3194:22:103"},"nodeType":"YulExpressionStatement","src":"3194:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3167:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3176:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3163:3:103"},"nodeType":"YulFunctionCall","src":"3163:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3188:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3159:3:103"},"nodeType":"YulFunctionCall","src":"3159:32:103"},"nodeType":"YulIf","src":"3156:2:103"},{"nodeType":"YulVariableDeclaration","src":"3227:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3254:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3241:12:103"},"nodeType":"YulFunctionCall","src":"3241:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3231:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3307:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3316:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3324:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3309:6:103"},"nodeType":"YulFunctionCall","src":"3309:22:103"},"nodeType":"YulExpressionStatement","src":"3309:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3279:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3287:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3276:2:103"},"nodeType":"YulFunctionCall","src":"3276:30:103"},"nodeType":"YulIf","src":"3273:2:103"},{"nodeType":"YulAssignment","src":"3342:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3373:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3384:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3369:3:103"},"nodeType":"YulFunctionCall","src":"3369:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3393:7:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3352:16:103"},"nodeType":"YulFunctionCall","src":"3352:49:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3342:6:103"}]},{"nodeType":"YulAssignment","src":"3410:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3448:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3433:3:103"},"nodeType":"YulFunctionCall","src":"3433:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3420:12:103"},"nodeType":"YulFunctionCall","src":"3420:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3410:6:103"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3104:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3115:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3127:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3135:6:103","type":""}],"src":"3050:408:103"},{"body":{"nodeType":"YulBlock","src":"3563:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"3609:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3618:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3626:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3611:6:103"},"nodeType":"YulFunctionCall","src":"3611:22:103"},"nodeType":"YulExpressionStatement","src":"3611:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3584:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3593:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3580:3:103"},"nodeType":"YulFunctionCall","src":"3580:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3605:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:32:103"},"nodeType":"YulIf","src":"3573:2:103"},{"nodeType":"YulVariableDeclaration","src":"3644:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3663:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3657:5:103"},"nodeType":"YulFunctionCall","src":"3657:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3648:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3706:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3715:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3723:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3708:6:103"},"nodeType":"YulFunctionCall","src":"3708:22:103"},"nodeType":"YulExpressionStatement","src":"3708:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3695:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3702:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3692:2:103"},"nodeType":"YulFunctionCall","src":"3692:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3685:6:103"},"nodeType":"YulFunctionCall","src":"3685:20:103"},"nodeType":"YulIf","src":"3682:2:103"},{"nodeType":"YulAssignment","src":"3741:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3751:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3741:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3529:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3540:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3552:6:103","type":""}],"src":"3463:299:103"},{"body":{"nodeType":"YulBlock","src":"3877:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"3923:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3932:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3940:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3925:6:103"},"nodeType":"YulFunctionCall","src":"3925:22:103"},"nodeType":"YulExpressionStatement","src":"3925:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3898:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3907:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3894:3:103"},"nodeType":"YulFunctionCall","src":"3894:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3919:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3890:3:103"},"nodeType":"YulFunctionCall","src":"3890:32:103"},"nodeType":"YulIf","src":"3887:2:103"},{"nodeType":"YulVariableDeclaration","src":"3958:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3978:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3972:5:103"},"nodeType":"YulFunctionCall","src":"3972:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3962:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3997:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4007:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4001:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4052:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4061:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4069:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4054:6:103"},"nodeType":"YulFunctionCall","src":"4054:22:103"},"nodeType":"YulExpressionStatement","src":"4054:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4040:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4048:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4037:2:103"},"nodeType":"YulFunctionCall","src":"4037:14:103"},"nodeType":"YulIf","src":"4034:2:103"},{"nodeType":"YulVariableDeclaration","src":"4087:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4101:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4112:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4097:3:103"},"nodeType":"YulFunctionCall","src":"4097:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4091:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4159:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4168:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4176:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4161:6:103"},"nodeType":"YulFunctionCall","src":"4161:22:103"},"nodeType":"YulExpressionStatement","src":"4161:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4139:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4148:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4135:3:103"},"nodeType":"YulFunctionCall","src":"4135:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4153:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4131:3:103"},"nodeType":"YulFunctionCall","src":"4131:27:103"},"nodeType":"YulIf","src":"4128:2:103"},{"nodeType":"YulVariableDeclaration","src":"4194:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4223:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4207:15:103"},"nodeType":"YulFunctionCall","src":"4207:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4198:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4237:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4258:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4252:5:103"},"nodeType":"YulFunctionCall","src":"4252:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4241:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4309:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"4270:38:103"},"nodeType":"YulFunctionCall","src":"4270:47:103"},"nodeType":"YulExpressionStatement","src":"4270:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4333:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"4340:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4326:6:103"},"nodeType":"YulFunctionCall","src":"4326:22:103"},"nodeType":"YulExpressionStatement","src":"4326:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4368:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4375:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4364:3:103"},"nodeType":"YulFunctionCall","src":"4364:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4390:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4394:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4386:3:103"},"nodeType":"YulFunctionCall","src":"4386:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4380:5:103"},"nodeType":"YulFunctionCall","src":"4380:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4357:6:103"},"nodeType":"YulFunctionCall","src":"4357:42:103"},"nodeType":"YulExpressionStatement","src":"4357:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4419:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4426:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4415:3:103"},"nodeType":"YulFunctionCall","src":"4415:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4441:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4445:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4437:3:103"},"nodeType":"YulFunctionCall","src":"4437:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4431:5:103"},"nodeType":"YulFunctionCall","src":"4431:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4408:6:103"},"nodeType":"YulFunctionCall","src":"4408:42:103"},"nodeType":"YulExpressionStatement","src":"4408:42:103"},{"nodeType":"YulVariableDeclaration","src":"4459:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4485:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4489:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4481:3:103"},"nodeType":"YulFunctionCall","src":"4481:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4475:5:103"},"nodeType":"YulFunctionCall","src":"4475:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4463:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4522:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4531:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4539:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4524:6:103"},"nodeType":"YulFunctionCall","src":"4524:22:103"},"nodeType":"YulExpressionStatement","src":"4524:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4508:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4518:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4505:2:103"},"nodeType":"YulFunctionCall","src":"4505:16:103"},"nodeType":"YulIf","src":"4502:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4568:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4575:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4564:3:103"},"nodeType":"YulFunctionCall","src":"4564:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4612:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4616:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4608:3:103"},"nodeType":"YulFunctionCall","src":"4608:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4627:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"4580:27:103"},"nodeType":"YulFunctionCall","src":"4580:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4557:6:103"},"nodeType":"YulFunctionCall","src":"4557:79:103"},"nodeType":"YulExpressionStatement","src":"4557:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4656:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4663:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4652:3:103"},"nodeType":"YulFunctionCall","src":"4652:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4679:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4683:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4675:3:103"},"nodeType":"YulFunctionCall","src":"4675:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4669:5:103"},"nodeType":"YulFunctionCall","src":"4669:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4645:6:103"},"nodeType":"YulFunctionCall","src":"4645:44:103"},"nodeType":"YulExpressionStatement","src":"4645:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4709:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4716:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4705:3:103"},"nodeType":"YulFunctionCall","src":"4705:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4732:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4736:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4728:3:103"},"nodeType":"YulFunctionCall","src":"4728:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4722:5:103"},"nodeType":"YulFunctionCall","src":"4722:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4698:6:103"},"nodeType":"YulFunctionCall","src":"4698:44:103"},"nodeType":"YulExpressionStatement","src":"4698:44:103"},{"nodeType":"YulAssignment","src":"4751:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4761:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4751:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3843:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3854:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3866:6:103","type":""}],"src":"3767:1005:103"},{"body":{"nodeType":"YulBlock","src":"4882:1119:103","statements":[{"body":{"nodeType":"YulBlock","src":"4928:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4937:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4945:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4930:6:103"},"nodeType":"YulFunctionCall","src":"4930:22:103"},"nodeType":"YulExpressionStatement","src":"4930:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4903:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4912:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4899:3:103"},"nodeType":"YulFunctionCall","src":"4899:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4924:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4895:3:103"},"nodeType":"YulFunctionCall","src":"4895:32:103"},"nodeType":"YulIf","src":"4892:2:103"},{"nodeType":"YulVariableDeclaration","src":"4963:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4983:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4977:5:103"},"nodeType":"YulFunctionCall","src":"4977:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4967:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5002:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5012:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5006:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5057:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5066:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5074:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5059:6:103"},"nodeType":"YulFunctionCall","src":"5059:22:103"},"nodeType":"YulExpressionStatement","src":"5059:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5045:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5053:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5042:2:103"},"nodeType":"YulFunctionCall","src":"5042:14:103"},"nodeType":"YulIf","src":"5039:2:103"},{"nodeType":"YulVariableDeclaration","src":"5092:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5106:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5117:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5102:3:103"},"nodeType":"YulFunctionCall","src":"5102:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5096:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5133:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5143:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5137:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5187:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5196:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5204:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5189:6:103"},"nodeType":"YulFunctionCall","src":"5189:22:103"},"nodeType":"YulExpressionStatement","src":"5189:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5169:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5178:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5165:3:103"},"nodeType":"YulFunctionCall","src":"5165:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"5183:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5161:3:103"},"nodeType":"YulFunctionCall","src":"5161:25:103"},"nodeType":"YulIf","src":"5158:2:103"},{"nodeType":"YulVariableDeclaration","src":"5222:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5251:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5235:15:103"},"nodeType":"YulFunctionCall","src":"5235:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5226:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5270:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5283:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5277:5:103"},"nodeType":"YulFunctionCall","src":"5277:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5263:6:103"},"nodeType":"YulFunctionCall","src":"5263:24:103"},"nodeType":"YulExpressionStatement","src":"5263:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5307:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5314:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5303:3:103"},"nodeType":"YulFunctionCall","src":"5303:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5329:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5333:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5325:3:103"},"nodeType":"YulFunctionCall","src":"5325:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5319:5:103"},"nodeType":"YulFunctionCall","src":"5319:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5296:6:103"},"nodeType":"YulFunctionCall","src":"5296:42:103"},"nodeType":"YulExpressionStatement","src":"5296:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5358:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5365:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5354:3:103"},"nodeType":"YulFunctionCall","src":"5354:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5380:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5384:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5376:3:103"},"nodeType":"YulFunctionCall","src":"5376:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5370:5:103"},"nodeType":"YulFunctionCall","src":"5370:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5347:6:103"},"nodeType":"YulFunctionCall","src":"5347:42:103"},"nodeType":"YulExpressionStatement","src":"5347:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5409:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5416:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5405:3:103"},"nodeType":"YulFunctionCall","src":"5405:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5469:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5473:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5465:3:103"},"nodeType":"YulFunctionCall","src":"5465:11:103"}],"functionName":{"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulIdentifier","src":"5421:43:103"},"nodeType":"YulFunctionCall","src":"5421:56:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5398:6:103"},"nodeType":"YulFunctionCall","src":"5398:80:103"},"nodeType":"YulExpressionStatement","src":"5398:80:103"},{"nodeType":"YulVariableDeclaration","src":"5487:35:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5513:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5517:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5509:3:103"},"nodeType":"YulFunctionCall","src":"5509:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5503:5:103"},"nodeType":"YulFunctionCall","src":"5503:19:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5491:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5551:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5560:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5568:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5553:6:103"},"nodeType":"YulFunctionCall","src":"5553:22:103"},"nodeType":"YulExpressionStatement","src":"5553:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5537:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5547:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5534:2:103"},"nodeType":"YulFunctionCall","src":"5534:16:103"},"nodeType":"YulIf","src":"5531:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5597:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5604:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5593:3:103"},"nodeType":"YulFunctionCall","src":"5593:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5642:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5646:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5638:3:103"},"nodeType":"YulFunctionCall","src":"5638:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5657:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"5610:27:103"},"nodeType":"YulFunctionCall","src":"5610:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:103"},"nodeType":"YulFunctionCall","src":"5586:80:103"},"nodeType":"YulExpressionStatement","src":"5586:80:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5686:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5693:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5682:3:103"},"nodeType":"YulFunctionCall","src":"5682:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5709:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5713:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5705:3:103"},"nodeType":"YulFunctionCall","src":"5705:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5699:5:103"},"nodeType":"YulFunctionCall","src":"5699:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5675:6:103"},"nodeType":"YulFunctionCall","src":"5675:44:103"},"nodeType":"YulExpressionStatement","src":"5675:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5739:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5746:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5735:3:103"},"nodeType":"YulFunctionCall","src":"5735:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5762:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5766:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5758:3:103"},"nodeType":"YulFunctionCall","src":"5758:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5752:5:103"},"nodeType":"YulFunctionCall","src":"5752:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5728:6:103"},"nodeType":"YulFunctionCall","src":"5728:44:103"},"nodeType":"YulExpressionStatement","src":"5728:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5792:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5799:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5788:3:103"},"nodeType":"YulFunctionCall","src":"5788:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5815:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5819:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5811:3:103"},"nodeType":"YulFunctionCall","src":"5811:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5805:5:103"},"nodeType":"YulFunctionCall","src":"5805:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5781:6:103"},"nodeType":"YulFunctionCall","src":"5781:44:103"},"nodeType":"YulExpressionStatement","src":"5781:44:103"},{"nodeType":"YulVariableDeclaration","src":"5834:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5844:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"5838:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5867:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"5874:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5863:3:103"},"nodeType":"YulFunctionCall","src":"5863:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5889:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"5893:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5885:3:103"},"nodeType":"YulFunctionCall","src":"5885:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5879:5:103"},"nodeType":"YulFunctionCall","src":"5879:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5856:6:103"},"nodeType":"YulFunctionCall","src":"5856:42:103"},"nodeType":"YulExpressionStatement","src":"5856:42:103"},{"nodeType":"YulVariableDeclaration","src":"5907:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5917:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"5911:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5940:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"5947:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5936:3:103"},"nodeType":"YulFunctionCall","src":"5936:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5962:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"5966:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5958:3:103"},"nodeType":"YulFunctionCall","src":"5958:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5952:5:103"},"nodeType":"YulFunctionCall","src":"5952:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5929:6:103"},"nodeType":"YulFunctionCall","src":"5929:42:103"},"nodeType":"YulExpressionStatement","src":"5929:42:103"},{"nodeType":"YulAssignment","src":"5980:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5990:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5980:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4848:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4859:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4871:6:103","type":""}],"src":"4777:1224:103"},{"body":{"nodeType":"YulBlock","src":"6146:1362:103","statements":[{"body":{"nodeType":"YulBlock","src":"6192:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6201:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6209:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6194:6:103"},"nodeType":"YulFunctionCall","src":"6194:22:103"},"nodeType":"YulExpressionStatement","src":"6194:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6167:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6176:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6163:3:103"},"nodeType":"YulFunctionCall","src":"6163:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6188:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6159:3:103"},"nodeType":"YulFunctionCall","src":"6159:32:103"},"nodeType":"YulIf","src":"6156:2:103"},{"nodeType":"YulVariableDeclaration","src":"6227:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6254:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6241:12:103"},"nodeType":"YulFunctionCall","src":"6241:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6231:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6273:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6283:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6277:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6328:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6337:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6345:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6330:6:103"},"nodeType":"YulFunctionCall","src":"6330:22:103"},"nodeType":"YulExpressionStatement","src":"6330:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6316:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6324:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6313:2:103"},"nodeType":"YulFunctionCall","src":"6313:14:103"},"nodeType":"YulIf","src":"6310:2:103"},{"nodeType":"YulVariableDeclaration","src":"6363:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6377:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6388:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6373:3:103"},"nodeType":"YulFunctionCall","src":"6373:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6367:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6404:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6414:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"6408:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6458:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6467:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6475:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6460:6:103"},"nodeType":"YulFunctionCall","src":"6460:22:103"},"nodeType":"YulExpressionStatement","src":"6460:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6440:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6449:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6436:3:103"},"nodeType":"YulFunctionCall","src":"6436:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"6454:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6432:3:103"},"nodeType":"YulFunctionCall","src":"6432:25:103"},"nodeType":"YulIf","src":"6429:2:103"},{"nodeType":"YulVariableDeclaration","src":"6493:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"6522:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6506:15:103"},"nodeType":"YulFunctionCall","src":"6506:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6497:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6541:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6561:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6548:12:103"},"nodeType":"YulFunctionCall","src":"6548:16:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6534:6:103"},"nodeType":"YulFunctionCall","src":"6534:31:103"},"nodeType":"YulExpressionStatement","src":"6534:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6585:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6592:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6581:3:103"},"nodeType":"YulFunctionCall","src":"6581:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6614:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6618:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6610:3:103"},"nodeType":"YulFunctionCall","src":"6610:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6597:12:103"},"nodeType":"YulFunctionCall","src":"6597:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6574:6:103"},"nodeType":"YulFunctionCall","src":"6574:49:103"},"nodeType":"YulExpressionStatement","src":"6574:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6643:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6650:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6639:3:103"},"nodeType":"YulFunctionCall","src":"6639:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6672:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6676:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6668:3:103"},"nodeType":"YulFunctionCall","src":"6668:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6655:12:103"},"nodeType":"YulFunctionCall","src":"6655:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6632:6:103"},"nodeType":"YulFunctionCall","src":"6632:49:103"},"nodeType":"YulExpressionStatement","src":"6632:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6701:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6708:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6697:3:103"},"nodeType":"YulFunctionCall","src":"6697:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6750:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6754:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6746:3:103"},"nodeType":"YulFunctionCall","src":"6746:11:103"}],"functionName":{"name":"abi_decode_enum_ApplicationState","nodeType":"YulIdentifier","src":"6713:32:103"},"nodeType":"YulFunctionCall","src":"6713:45:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6690:6:103"},"nodeType":"YulFunctionCall","src":"6690:69:103"},"nodeType":"YulExpressionStatement","src":"6690:69:103"},{"nodeType":"YulVariableDeclaration","src":"6768:42:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6801:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6805:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6797:3:103"},"nodeType":"YulFunctionCall","src":"6797:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6784:12:103"},"nodeType":"YulFunctionCall","src":"6784:26:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6772:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6839:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6848:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6856:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6841:6:103"},"nodeType":"YulFunctionCall","src":"6841:22:103"},"nodeType":"YulExpressionStatement","src":"6841:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6825:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6835:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6822:2:103"},"nodeType":"YulFunctionCall","src":"6822:16:103"},"nodeType":"YulIf","src":"6819:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6885:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6892:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6881:3:103"},"nodeType":"YulFunctionCall","src":"6881:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6919:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6923:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6915:3:103"},"nodeType":"YulFunctionCall","src":"6915:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6934:7:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6898:16:103"},"nodeType":"YulFunctionCall","src":"6898:44:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6874:6:103"},"nodeType":"YulFunctionCall","src":"6874:69:103"},"nodeType":"YulExpressionStatement","src":"6874:69:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6963:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6970:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6959:3:103"},"nodeType":"YulFunctionCall","src":"6959:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6993:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6997:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6989:3:103"},"nodeType":"YulFunctionCall","src":"6989:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6976:12:103"},"nodeType":"YulFunctionCall","src":"6976:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6952:6:103"},"nodeType":"YulFunctionCall","src":"6952:51:103"},"nodeType":"YulExpressionStatement","src":"6952:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7023:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7030:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7019:3:103"},"nodeType":"YulFunctionCall","src":"7019:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7053:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7057:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7049:3:103"},"nodeType":"YulFunctionCall","src":"7049:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7036:12:103"},"nodeType":"YulFunctionCall","src":"7036:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7012:6:103"},"nodeType":"YulFunctionCall","src":"7012:51:103"},"nodeType":"YulExpressionStatement","src":"7012:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7083:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7090:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7079:3:103"},"nodeType":"YulFunctionCall","src":"7079:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7113:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7117:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7109:3:103"},"nodeType":"YulFunctionCall","src":"7109:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7096:12:103"},"nodeType":"YulFunctionCall","src":"7096:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7072:6:103"},"nodeType":"YulFunctionCall","src":"7072:51:103"},"nodeType":"YulExpressionStatement","src":"7072:51:103"},{"nodeType":"YulVariableDeclaration","src":"7132:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7142:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"7136:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7165:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"7172:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7161:3:103"},"nodeType":"YulFunctionCall","src":"7161:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7194:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"7198:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7190:3:103"},"nodeType":"YulFunctionCall","src":"7190:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7177:12:103"},"nodeType":"YulFunctionCall","src":"7177:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7154:6:103"},"nodeType":"YulFunctionCall","src":"7154:49:103"},"nodeType":"YulExpressionStatement","src":"7154:49:103"},{"nodeType":"YulVariableDeclaration","src":"7212:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7222:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"7216:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7245:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"7252:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7241:3:103"},"nodeType":"YulFunctionCall","src":"7241:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7274:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"7278:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7270:3:103"},"nodeType":"YulFunctionCall","src":"7270:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7257:12:103"},"nodeType":"YulFunctionCall","src":"7257:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7234:6:103"},"nodeType":"YulFunctionCall","src":"7234:49:103"},"nodeType":"YulExpressionStatement","src":"7234:49:103"},{"nodeType":"YulAssignment","src":"7292:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7302:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7292:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"7316:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7360:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7345:3:103"},"nodeType":"YulFunctionCall","src":"7345:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7332:12:103"},"nodeType":"YulFunctionCall","src":"7332:32:103"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"7320:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7393:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7402:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7410:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7395:6:103"},"nodeType":"YulFunctionCall","src":"7395:22:103"},"nodeType":"YulExpressionStatement","src":"7395:22:103"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"7379:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7389:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7376:2:103"},"nodeType":"YulFunctionCall","src":"7376:16:103"},"nodeType":"YulIf","src":"7373:2:103"},{"nodeType":"YulAssignment","src":"7428:74:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7472:9:103"},{"name":"offset_2","nodeType":"YulIdentifier","src":"7483:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7468:3:103"},"nodeType":"YulFunctionCall","src":"7468:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7494:7:103"}],"functionName":{"name":"abi_decode_struct_Application","nodeType":"YulIdentifier","src":"7438:29:103"},"nodeType":"YulFunctionCall","src":"7438:64:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7428:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptrt_struct$_Application_$5262_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6104:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6115:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6127:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6135:6:103","type":""}],"src":"6006:1502:103"},{"body":{"nodeType":"YulBlock","src":"7583:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"7629:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7638:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7646:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7631:6:103"},"nodeType":"YulFunctionCall","src":"7631:22:103"},"nodeType":"YulExpressionStatement","src":"7631:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7604:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7613:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7600:3:103"},"nodeType":"YulFunctionCall","src":"7600:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7625:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7596:3:103"},"nodeType":"YulFunctionCall","src":"7596:32:103"},"nodeType":"YulIf","src":"7593:2:103"},{"nodeType":"YulAssignment","src":"7664:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7687:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7674:12:103"},"nodeType":"YulFunctionCall","src":"7674:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7664:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7549:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7560:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7572:6:103","type":""}],"src":"7513:190:103"},{"body":{"nodeType":"YulBlock","src":"7789:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"7835:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7844:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7852:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7837:6:103"},"nodeType":"YulFunctionCall","src":"7837:22:103"},"nodeType":"YulExpressionStatement","src":"7837:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7810:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7819:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7806:3:103"},"nodeType":"YulFunctionCall","src":"7806:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7831:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7802:3:103"},"nodeType":"YulFunctionCall","src":"7802:32:103"},"nodeType":"YulIf","src":"7799:2:103"},{"nodeType":"YulAssignment","src":"7870:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7886:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7880:5:103"},"nodeType":"YulFunctionCall","src":"7880:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7870:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7755:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7766:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7778:6:103","type":""}],"src":"7708:194:103"},{"body":{"nodeType":"YulBlock","src":"7994:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"8040:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8049:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8057:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8042:6:103"},"nodeType":"YulFunctionCall","src":"8042:22:103"},"nodeType":"YulExpressionStatement","src":"8042:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8015:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8024:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8011:3:103"},"nodeType":"YulFunctionCall","src":"8011:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8036:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8007:3:103"},"nodeType":"YulFunctionCall","src":"8007:32:103"},"nodeType":"YulIf","src":"8004:2:103"},{"nodeType":"YulAssignment","src":"8075:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8098:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8085:12:103"},"nodeType":"YulFunctionCall","src":"8085:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8075:6:103"}]},{"nodeType":"YulAssignment","src":"8117:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8144:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8155:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8140:3:103"},"nodeType":"YulFunctionCall","src":"8140:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8127:12:103"},"nodeType":"YulFunctionCall","src":"8127:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8117:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7952:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7963:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7975:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7983:6:103","type":""}],"src":"7907:258:103"},{"body":{"nodeType":"YulBlock","src":"8219:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8229:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8249:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8243:5:103"},"nodeType":"YulFunctionCall","src":"8243:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8233:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8271:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"8276:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8264:6:103"},"nodeType":"YulFunctionCall","src":"8264:19:103"},"nodeType":"YulExpressionStatement","src":"8264:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8318:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8325:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8314:3:103"},"nodeType":"YulFunctionCall","src":"8314:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8336:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"8341:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8332:3:103"},"nodeType":"YulFunctionCall","src":"8332:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"8348:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"8292:21:103"},"nodeType":"YulFunctionCall","src":"8292:63:103"},"nodeType":"YulExpressionStatement","src":"8292:63:103"},{"nodeType":"YulAssignment","src":"8364:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8379:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8392:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"8400:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8388:3:103"},"nodeType":"YulFunctionCall","src":"8388:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8409:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8405:3:103"},"nodeType":"YulFunctionCall","src":"8405:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8384:3:103"},"nodeType":"YulFunctionCall","src":"8384:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8375:3:103"},"nodeType":"YulFunctionCall","src":"8375:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"8416:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8371:3:103"},"nodeType":"YulFunctionCall","src":"8371:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8364:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8196:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8203:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8211:3:103","type":""}],"src":"8170:257:103"},{"body":{"nodeType":"YulBlock","src":"8485:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"8519:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"8521:16:103"},"nodeType":"YulFunctionCall","src":"8521:18:103"},"nodeType":"YulExpressionStatement","src":"8521:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8508:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8515:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8505:2:103"},"nodeType":"YulFunctionCall","src":"8505:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8498:6:103"},"nodeType":"YulFunctionCall","src":"8498:20:103"},"nodeType":"YulIf","src":"8495:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8557:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"8562:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8550:6:103"},"nodeType":"YulFunctionCall","src":"8550:18:103"},"nodeType":"YulExpressionStatement","src":"8550:18:103"}]},"name":"abi_encode_enum_BundleState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8469:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8476:3:103","type":""}],"src":"8432:142:103"},{"body":{"nodeType":"YulBlock","src":"8680:102:103","statements":[{"nodeType":"YulAssignment","src":"8690:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8702:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8713:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8698:3:103"},"nodeType":"YulFunctionCall","src":"8698:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8690:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8732:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8747:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8763:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8768:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8759:3:103"},"nodeType":"YulFunctionCall","src":"8759:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"8772:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8755:3:103"},"nodeType":"YulFunctionCall","src":"8755:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8743:3:103"},"nodeType":"YulFunctionCall","src":"8743:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8725:6:103"},"nodeType":"YulFunctionCall","src":"8725:51:103"},"nodeType":"YulExpressionStatement","src":"8725:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8649:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8660:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8671:4:103","type":""}],"src":"8579:203:103"},{"body":{"nodeType":"YulBlock","src":"8972:262:103","statements":[{"nodeType":"YulAssignment","src":"8982:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8994:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9005:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8990:3:103"},"nodeType":"YulFunctionCall","src":"8990:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8982:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"9018:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9036:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9041:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9032:3:103"},"nodeType":"YulFunctionCall","src":"9032:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9045:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9028:3:103"},"nodeType":"YulFunctionCall","src":"9028:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9022:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9063:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9078:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9086:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9074:3:103"},"nodeType":"YulFunctionCall","src":"9074:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9056:6:103"},"nodeType":"YulFunctionCall","src":"9056:34:103"},"nodeType":"YulExpressionStatement","src":"9056:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9121:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9106:3:103"},"nodeType":"YulFunctionCall","src":"9106:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9130:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9138:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9126:3:103"},"nodeType":"YulFunctionCall","src":"9126:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9099:6:103"},"nodeType":"YulFunctionCall","src":"9099:43:103"},"nodeType":"YulExpressionStatement","src":"9099:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9162:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9173:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9158:3:103"},"nodeType":"YulFunctionCall","src":"9158:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9178:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9151:6:103"},"nodeType":"YulFunctionCall","src":"9151:34:103"},"nodeType":"YulExpressionStatement","src":"9151:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9216:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9201:3:103"},"nodeType":"YulFunctionCall","src":"9201:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"9221:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9194:6:103"},"nodeType":"YulFunctionCall","src":"9194:34:103"},"nodeType":"YulExpressionStatement","src":"9194:34:103"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8917:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8928:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8936:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8944:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8952:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8963:4:103","type":""}],"src":"8787:447:103"},{"body":{"nodeType":"YulBlock","src":"9414:210:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9431:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9446:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9462:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9467:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9458:3:103"},"nodeType":"YulFunctionCall","src":"9458:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9471:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9454:3:103"},"nodeType":"YulFunctionCall","src":"9454:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9442:3:103"},"nodeType":"YulFunctionCall","src":"9442:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9424:6:103"},"nodeType":"YulFunctionCall","src":"9424:51:103"},"nodeType":"YulExpressionStatement","src":"9424:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9495:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9506:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9491:3:103"},"nodeType":"YulFunctionCall","src":"9491:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9511:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9484:6:103"},"nodeType":"YulFunctionCall","src":"9484:30:103"},"nodeType":"YulExpressionStatement","src":"9484:30:103"},{"nodeType":"YulAssignment","src":"9523:52:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9548:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9560:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9571:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9556:3:103"},"nodeType":"YulFunctionCall","src":"9556:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"9531:16:103"},"nodeType":"YulFunctionCall","src":"9531:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9523:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9595:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9606:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9591:3:103"},"nodeType":"YulFunctionCall","src":"9591:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9611:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9584:6:103"},"nodeType":"YulFunctionCall","src":"9584:34:103"},"nodeType":"YulExpressionStatement","src":"9584:34:103"}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9367:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9378:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9386:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9394:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9405:4:103","type":""}],"src":"9239:385:103"},{"body":{"nodeType":"YulBlock","src":"9724:92:103","statements":[{"nodeType":"YulAssignment","src":"9734:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9757:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9742:3:103"},"nodeType":"YulFunctionCall","src":"9742:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9734:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9776:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9801:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9794:6:103"},"nodeType":"YulFunctionCall","src":"9794:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9787:6:103"},"nodeType":"YulFunctionCall","src":"9787:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9769:6:103"},"nodeType":"YulFunctionCall","src":"9769:41:103"},"nodeType":"YulExpressionStatement","src":"9769:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9693:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9704:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9715:4:103","type":""}],"src":"9629:187:103"},{"body":{"nodeType":"YulBlock","src":"9922:76:103","statements":[{"nodeType":"YulAssignment","src":"9932:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9944:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9955:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9940:3:103"},"nodeType":"YulFunctionCall","src":"9940:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9932:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9974:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9985:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9967:6:103"},"nodeType":"YulFunctionCall","src":"9967:25:103"},"nodeType":"YulExpressionStatement","src":"9967:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9891:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9902:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9913:4:103","type":""}],"src":"9821:177:103"},{"body":{"nodeType":"YulBlock","src":"10132:119:103","statements":[{"nodeType":"YulAssignment","src":"10142:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10154:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10165:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10150:3:103"},"nodeType":"YulFunctionCall","src":"10150:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10142:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10184:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10195:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10177:6:103"},"nodeType":"YulFunctionCall","src":"10177:25:103"},"nodeType":"YulExpressionStatement","src":"10177:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10233:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10218:3:103"},"nodeType":"YulFunctionCall","src":"10218:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"10238:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10211:6:103"},"nodeType":"YulFunctionCall","src":"10211:34:103"},"nodeType":"YulExpressionStatement","src":"10211:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10093:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10104:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10112:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10123:4:103","type":""}],"src":"10003:248:103"},{"body":{"nodeType":"YulBlock","src":"10407:178:103","statements":[{"nodeType":"YulAssignment","src":"10417:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10440:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10425:3:103"},"nodeType":"YulFunctionCall","src":"10425:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10417:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10459:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10470:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10452:6:103"},"nodeType":"YulFunctionCall","src":"10452:25:103"},"nodeType":"YulExpressionStatement","src":"10452:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10508:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10493:3:103"},"nodeType":"YulFunctionCall","src":"10493:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"10513:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10486:6:103"},"nodeType":"YulFunctionCall","src":"10486:34:103"},"nodeType":"YulExpressionStatement","src":"10486:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10540:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10551:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10536:3:103"},"nodeType":"YulFunctionCall","src":"10536:18:103"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10570:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10563:6:103"},"nodeType":"YulFunctionCall","src":"10563:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10556:6:103"},"nodeType":"YulFunctionCall","src":"10556:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10529:6:103"},"nodeType":"YulFunctionCall","src":"10529:50:103"},"nodeType":"YulExpressionStatement","src":"10529:50:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bool__to_t_bytes32_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10360:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10371:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10379:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10387:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10398:4:103","type":""}],"src":"10256:329:103"},{"body":{"nodeType":"YulBlock","src":"10709:102:103","statements":[{"nodeType":"YulAssignment","src":"10719:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10731:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10742:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10727:3:103"},"nodeType":"YulFunctionCall","src":"10727:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10719:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10761:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10776:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10792:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10797:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10788:3:103"},"nodeType":"YulFunctionCall","src":"10788:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10801:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10784:3:103"},"nodeType":"YulFunctionCall","src":"10784:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10772:3:103"},"nodeType":"YulFunctionCall","src":"10772:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10754:6:103"},"nodeType":"YulFunctionCall","src":"10754:51:103"},"nodeType":"YulExpressionStatement","src":"10754:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10678:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10689:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10700:4:103","type":""}],"src":"10590:221:103"},{"body":{"nodeType":"YulBlock","src":"10934:132:103","statements":[{"nodeType":"YulAssignment","src":"10944:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10956:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10967:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10952:3:103"},"nodeType":"YulFunctionCall","src":"10952:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10944:4:103"}]},{"body":{"nodeType":"YulBlock","src":"11004:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"11006:16:103"},"nodeType":"YulFunctionCall","src":"11006:18:103"},"nodeType":"YulExpressionStatement","src":"11006:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10992:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"11000:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10989:2:103"},"nodeType":"YulFunctionCall","src":"10989:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10982:6:103"},"nodeType":"YulFunctionCall","src":"10982:21:103"},"nodeType":"YulIf","src":"10979:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11042:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11053:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11035:6:103"},"nodeType":"YulFunctionCall","src":"11035:25:103"},"nodeType":"YulExpressionStatement","src":"11035:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10903:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10914:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10925:4:103","type":""}],"src":"10816:250:103"},{"body":{"nodeType":"YulBlock","src":"11188:132:103","statements":[{"nodeType":"YulAssignment","src":"11198:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11210:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11221:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11206:3:103"},"nodeType":"YulFunctionCall","src":"11206:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11198:4:103"}]},{"body":{"nodeType":"YulBlock","src":"11258:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"11260:16:103"},"nodeType":"YulFunctionCall","src":"11260:18:103"},"nodeType":"YulExpressionStatement","src":"11260:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11246:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"11254:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11243:2:103"},"nodeType":"YulFunctionCall","src":"11243:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11236:6:103"},"nodeType":"YulFunctionCall","src":"11236:21:103"},"nodeType":"YulIf","src":"11233:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11296:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11307:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11289:6:103"},"nodeType":"YulFunctionCall","src":"11289:25:103"},"nodeType":"YulExpressionStatement","src":"11289:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11157:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11168:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11179:4:103","type":""}],"src":"11071:249:103"},{"body":{"nodeType":"YulBlock","src":"11446:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11474:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11456:6:103"},"nodeType":"YulFunctionCall","src":"11456:21:103"},"nodeType":"YulExpressionStatement","src":"11456:21:103"},{"nodeType":"YulAssignment","src":"11486:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11511:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11523:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11534:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11519:3:103"},"nodeType":"YulFunctionCall","src":"11519:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11494:16:103"},"nodeType":"YulFunctionCall","src":"11494:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11486:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11415:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11426:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11437:4:103","type":""}],"src":"11325:219:103"},{"body":{"nodeType":"YulBlock","src":"11723:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11740:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11751:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11733:6:103"},"nodeType":"YulFunctionCall","src":"11733:21:103"},"nodeType":"YulExpressionStatement","src":"11733:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11774:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11785:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11770:3:103"},"nodeType":"YulFunctionCall","src":"11770:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11790:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11763:6:103"},"nodeType":"YulFunctionCall","src":"11763:30:103"},"nodeType":"YulExpressionStatement","src":"11763:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11813:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11824:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11809:3:103"},"nodeType":"YulFunctionCall","src":"11809:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11829:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11802:6:103"},"nodeType":"YulFunctionCall","src":"11802:57:103"},"nodeType":"YulExpressionStatement","src":"11802:57:103"},{"nodeType":"YulAssignment","src":"11868:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11880:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11891:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11876:3:103"},"nodeType":"YulFunctionCall","src":"11876:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11868:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11700:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11714:4:103","type":""}],"src":"11549:351:103"},{"body":{"nodeType":"YulBlock","src":"12079:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12096:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12107:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12089:6:103"},"nodeType":"YulFunctionCall","src":"12089:21:103"},"nodeType":"YulExpressionStatement","src":"12089:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12130:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12141:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12126:3:103"},"nodeType":"YulFunctionCall","src":"12126:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12146:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12119:6:103"},"nodeType":"YulFunctionCall","src":"12119:30:103"},"nodeType":"YulExpressionStatement","src":"12119:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12180:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12165:3:103"},"nodeType":"YulFunctionCall","src":"12165:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12185:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12158:6:103"},"nodeType":"YulFunctionCall","src":"12158:62:103"},"nodeType":"YulExpressionStatement","src":"12158:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12240:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12251:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12236:3:103"},"nodeType":"YulFunctionCall","src":"12236:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12256:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12229:6:103"},"nodeType":"YulFunctionCall","src":"12229:36:103"},"nodeType":"YulExpressionStatement","src":"12229:36:103"},{"nodeType":"YulAssignment","src":"12274:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12286:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12297:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12282:3:103"},"nodeType":"YulFunctionCall","src":"12282:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12274:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12056:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12070:4:103","type":""}],"src":"11905:402:103"},{"body":{"nodeType":"YulBlock","src":"12486:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12503:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12514:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12496:6:103"},"nodeType":"YulFunctionCall","src":"12496:21:103"},"nodeType":"YulExpressionStatement","src":"12496:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12548:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12533:3:103"},"nodeType":"YulFunctionCall","src":"12533:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12553:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12526:6:103"},"nodeType":"YulFunctionCall","src":"12526:30:103"},"nodeType":"YulExpressionStatement","src":"12526:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12576:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12587:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12572:3:103"},"nodeType":"YulFunctionCall","src":"12572:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12592:34:103","type":"","value":"ERROR:RPL-006:BUNDLE_INDEX_TOO_L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12565:6:103"},"nodeType":"YulFunctionCall","src":"12565:62:103"},"nodeType":"YulExpressionStatement","src":"12565:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12658:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12643:3:103"},"nodeType":"YulFunctionCall","src":"12643:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12663:6:103","type":"","value":"ARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12636:6:103"},"nodeType":"YulFunctionCall","src":"12636:34:103"},"nodeType":"YulExpressionStatement","src":"12636:34:103"},{"nodeType":"YulAssignment","src":"12679:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12691:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12702:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12687:3:103"},"nodeType":"YulFunctionCall","src":"12687:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12679:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12463:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12477:4:103","type":""}],"src":"12312:400:103"},{"body":{"nodeType":"YulBlock","src":"12891:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12908:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12919:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12901:6:103"},"nodeType":"YulFunctionCall","src":"12901:21:103"},"nodeType":"YulExpressionStatement","src":"12901:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12953:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12938:3:103"},"nodeType":"YulFunctionCall","src":"12938:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12958:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12931:6:103"},"nodeType":"YulFunctionCall","src":"12931:30:103"},"nodeType":"YulExpressionStatement","src":"12931:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12981:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12992:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12977:3:103"},"nodeType":"YulFunctionCall","src":"12977:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12997:33:103","type":"","value":"ERROR:BRP-001:NO_ACTIVE_BUNDLES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12970:6:103"},"nodeType":"YulFunctionCall","src":"12970:61:103"},"nodeType":"YulExpressionStatement","src":"12970:61:103"},{"nodeType":"YulAssignment","src":"13040:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13052:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13063:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13048:3:103"},"nodeType":"YulFunctionCall","src":"13048:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13040:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12868:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12882:4:103","type":""}],"src":"12717:355:103"},{"body":{"nodeType":"YulBlock","src":"13251:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13268:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13279:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13261:6:103"},"nodeType":"YulFunctionCall","src":"13261:21:103"},"nodeType":"YulExpressionStatement","src":"13261:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13302:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13313:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13298:3:103"},"nodeType":"YulFunctionCall","src":"13298:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13318:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13291:6:103"},"nodeType":"YulFunctionCall","src":"13291:30:103"},"nodeType":"YulExpressionStatement","src":"13291:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13341:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13352:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13337:3:103"},"nodeType":"YulFunctionCall","src":"13337:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13357:34:103","type":"","value":"ERROR:RPL-007:ACTIVE_BUNDLE_INDE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13330:6:103"},"nodeType":"YulFunctionCall","src":"13330:62:103"},"nodeType":"YulExpressionStatement","src":"13330:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13412:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13423:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13408:3:103"},"nodeType":"YulFunctionCall","src":"13408:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13428:13:103","type":"","value":"X_TOO_LARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13401:6:103"},"nodeType":"YulFunctionCall","src":"13401:41:103"},"nodeType":"YulExpressionStatement","src":"13401:41:103"},{"nodeType":"YulAssignment","src":"13451:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13474:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13459:3:103"},"nodeType":"YulFunctionCall","src":"13459:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13451:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13228:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13242:4:103","type":""}],"src":"13077:407:103"},{"body":{"nodeType":"YulBlock","src":"13663:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13691:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13673:6:103"},"nodeType":"YulFunctionCall","src":"13673:21:103"},"nodeType":"YulExpressionStatement","src":"13673:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13714:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13725:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13710:3:103"},"nodeType":"YulFunctionCall","src":"13710:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13730:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13703:6:103"},"nodeType":"YulFunctionCall","src":"13703:30:103"},"nodeType":"YulExpressionStatement","src":"13703:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13764:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13749:3:103"},"nodeType":"YulFunctionCall","src":"13749:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13769:31:103","type":"","value":"ERROR:BRP-002:NO_FREE_CAPITAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13742:6:103"},"nodeType":"YulFunctionCall","src":"13742:59:103"},"nodeType":"YulExpressionStatement","src":"13742:59:103"},{"nodeType":"YulAssignment","src":"13810:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13822:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13833:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13818:3:103"},"nodeType":"YulFunctionCall","src":"13818:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13810:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13640:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13654:4:103","type":""}],"src":"13489:353:103"},{"body":{"nodeType":"YulBlock","src":"14021:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14038:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14049:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14031:6:103"},"nodeType":"YulFunctionCall","src":"14031:21:103"},"nodeType":"YulExpressionStatement","src":"14031:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14072:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14083:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14068:3:103"},"nodeType":"YulFunctionCall","src":"14068:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14088:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14061:6:103"},"nodeType":"YulFunctionCall","src":"14061:30:103"},"nodeType":"YulExpressionStatement","src":"14061:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14111:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14122:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14107:3:103"},"nodeType":"YulFunctionCall","src":"14107:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14127:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14100:6:103"},"nodeType":"YulFunctionCall","src":"14100:62:103"},"nodeType":"YulExpressionStatement","src":"14100:62:103"},{"nodeType":"YulAssignment","src":"14171:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14183:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14194:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14179:3:103"},"nodeType":"YulFunctionCall","src":"14179:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14171:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13998:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14012:4:103","type":""}],"src":"13847:356:103"},{"body":{"nodeType":"YulBlock","src":"14382:232:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14399:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14410:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14392:6:103"},"nodeType":"YulFunctionCall","src":"14392:21:103"},"nodeType":"YulExpressionStatement","src":"14392:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14444:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14429:3:103"},"nodeType":"YulFunctionCall","src":"14429:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14449:2:103","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14422:6:103"},"nodeType":"YulFunctionCall","src":"14422:30:103"},"nodeType":"YulExpressionStatement","src":"14422:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14472:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14483:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14468:3:103"},"nodeType":"YulFunctionCall","src":"14468:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14488:34:103","type":"","value":"ERROR:RPL-010:RISKPOOL_HAS_UNBUR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14461:6:103"},"nodeType":"YulFunctionCall","src":"14461:62:103"},"nodeType":"YulExpressionStatement","src":"14461:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14543:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14554:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14539:3:103"},"nodeType":"YulFunctionCall","src":"14539:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14559:12:103","type":"","value":"NT_BUNDLES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14532:6:103"},"nodeType":"YulFunctionCall","src":"14532:40:103"},"nodeType":"YulExpressionStatement","src":"14532:40:103"},{"nodeType":"YulAssignment","src":"14581:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14593:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14604:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14589:3:103"},"nodeType":"YulFunctionCall","src":"14589:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14581:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14359:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14373:4:103","type":""}],"src":"14208:406:103"},{"body":{"nodeType":"YulBlock","src":"14793:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14810:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14821:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14803:6:103"},"nodeType":"YulFunctionCall","src":"14803:21:103"},"nodeType":"YulExpressionStatement","src":"14803:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14855:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14840:3:103"},"nodeType":"YulFunctionCall","src":"14840:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14860:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14833:6:103"},"nodeType":"YulFunctionCall","src":"14833:30:103"},"nodeType":"YulExpressionStatement","src":"14833:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14883:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14894:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14879:3:103"},"nodeType":"YulFunctionCall","src":"14879:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14899:32:103","type":"","value":"ERROR:BUC-001:NOT_BUNDLE_OWNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14872:6:103"},"nodeType":"YulFunctionCall","src":"14872:60:103"},"nodeType":"YulExpressionStatement","src":"14872:60:103"},{"nodeType":"YulAssignment","src":"14941:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14953:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14964:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14949:3:103"},"nodeType":"YulFunctionCall","src":"14949:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14941:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14770:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14784:4:103","type":""}],"src":"14619:354:103"},{"body":{"nodeType":"YulBlock","src":"15152:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15180:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15162:6:103"},"nodeType":"YulFunctionCall","src":"15162:21:103"},"nodeType":"YulExpressionStatement","src":"15162:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15203:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15214:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15199:3:103"},"nodeType":"YulFunctionCall","src":"15199:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15219:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15192:6:103"},"nodeType":"YulFunctionCall","src":"15192:30:103"},"nodeType":"YulExpressionStatement","src":"15192:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15242:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15253:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15238:3:103"},"nodeType":"YulFunctionCall","src":"15238:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15258:29:103","type":"","value":"ERROR:RPL-001:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15231:6:103"},"nodeType":"YulFunctionCall","src":"15231:57:103"},"nodeType":"YulExpressionStatement","src":"15231:57:103"},{"nodeType":"YulAssignment","src":"15297:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15309:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15320:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15305:3:103"},"nodeType":"YulFunctionCall","src":"15305:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15297:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15129:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15143:4:103","type":""}],"src":"14978:351:103"},{"body":{"nodeType":"YulBlock","src":"15483:931:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15500:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15511:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15493:6:103"},"nodeType":"YulFunctionCall","src":"15493:21:103"},"nodeType":"YulExpressionStatement","src":"15493:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15534:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15545:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15530:3:103"},"nodeType":"YulFunctionCall","src":"15530:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15556:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15550:5:103"},"nodeType":"YulFunctionCall","src":"15550:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15523:6:103"},"nodeType":"YulFunctionCall","src":"15523:41:103"},"nodeType":"YulExpressionStatement","src":"15523:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15584:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15595:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15580:3:103"},"nodeType":"YulFunctionCall","src":"15580:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15610:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15618:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15606:3:103"},"nodeType":"YulFunctionCall","src":"15606:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15600:5:103"},"nodeType":"YulFunctionCall","src":"15600:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15573:6:103"},"nodeType":"YulFunctionCall","src":"15573:50:103"},"nodeType":"YulExpressionStatement","src":"15573:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15654:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15639:3:103"},"nodeType":"YulFunctionCall","src":"15639:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15669:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15677:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15665:3:103"},"nodeType":"YulFunctionCall","src":"15665:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15659:5:103"},"nodeType":"YulFunctionCall","src":"15659:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15632:6:103"},"nodeType":"YulFunctionCall","src":"15632:50:103"},"nodeType":"YulExpressionStatement","src":"15632:50:103"},{"nodeType":"YulVariableDeclaration","src":"15691:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15721:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15729:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15717:3:103"},"nodeType":"YulFunctionCall","src":"15717:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15711:5:103"},"nodeType":"YulFunctionCall","src":"15711:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"15695:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"15770:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15788:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15799:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15784:3:103"},"nodeType":"YulFunctionCall","src":"15784:19:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"15742:27:103"},"nodeType":"YulFunctionCall","src":"15742:62:103"},"nodeType":"YulExpressionStatement","src":"15742:62:103"},{"nodeType":"YulVariableDeclaration","src":"15813:45:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15845:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15853:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15841:3:103"},"nodeType":"YulFunctionCall","src":"15841:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15835:5:103"},"nodeType":"YulFunctionCall","src":"15835:23:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"15817:14:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15867:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"15877:6:103","type":"","value":"0x0140"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15871:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15914:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15899:3:103"},"nodeType":"YulFunctionCall","src":"15899:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"15920:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15892:6:103"},"nodeType":"YulFunctionCall","src":"15892:31:103"},"nodeType":"YulExpressionStatement","src":"15892:31:103"},{"nodeType":"YulVariableDeclaration","src":"15932:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"15963:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15983:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15994:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15979:3:103"},"nodeType":"YulFunctionCall","src":"15979:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"15946:16:103"},"nodeType":"YulFunctionCall","src":"15946:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"15936:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16030:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16015:3:103"},"nodeType":"YulFunctionCall","src":"16015:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16046:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"16054:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16042:3:103"},"nodeType":"YulFunctionCall","src":"16042:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16036:5:103"},"nodeType":"YulFunctionCall","src":"16036:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16008:6:103"},"nodeType":"YulFunctionCall","src":"16008:52:103"},"nodeType":"YulExpressionStatement","src":"16008:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16080:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16091:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16076:3:103"},"nodeType":"YulFunctionCall","src":"16076:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16107:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"16115:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16103:3:103"},"nodeType":"YulFunctionCall","src":"16103:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16097:5:103"},"nodeType":"YulFunctionCall","src":"16097:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16069:6:103"},"nodeType":"YulFunctionCall","src":"16069:52:103"},"nodeType":"YulExpressionStatement","src":"16069:52:103"},{"nodeType":"YulVariableDeclaration","src":"16130:33:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16150:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"16158:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16146:3:103"},"nodeType":"YulFunctionCall","src":"16146:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16140:5:103"},"nodeType":"YulFunctionCall","src":"16140:23:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"16134:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16172:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"16182:3:103","type":"","value":"256"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"16176:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16205:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"16216:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16201:3:103"},"nodeType":"YulFunctionCall","src":"16201:18:103"},{"name":"_2","nodeType":"YulIdentifier","src":"16221:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16194:6:103"},"nodeType":"YulFunctionCall","src":"16194:30:103"},"nodeType":"YulExpressionStatement","src":"16194:30:103"},{"nodeType":"YulVariableDeclaration","src":"16233:32:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16253:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"16261:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16249:3:103"},"nodeType":"YulFunctionCall","src":"16249:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16243:5:103"},"nodeType":"YulFunctionCall","src":"16243:22:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"16237:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16274:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"16284:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"16278:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16307:9:103"},{"name":"_5","nodeType":"YulIdentifier","src":"16318:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16303:3:103"},"nodeType":"YulFunctionCall","src":"16303:18:103"},{"name":"_4","nodeType":"YulIdentifier","src":"16323:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16296:6:103"},"nodeType":"YulFunctionCall","src":"16296:30:103"},"nodeType":"YulExpressionStatement","src":"16296:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16346:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"16357:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16342:3:103"},"nodeType":"YulFunctionCall","src":"16342:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16372:6:103"},{"name":"_5","nodeType":"YulIdentifier","src":"16380:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16368:3:103"},"nodeType":"YulFunctionCall","src":"16368:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16362:5:103"},"nodeType":"YulFunctionCall","src":"16362:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16335:6:103"},"nodeType":"YulFunctionCall","src":"16335:50:103"},"nodeType":"YulExpressionStatement","src":"16335:50:103"},{"nodeType":"YulAssignment","src":"16394:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"16402:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16394:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15452:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15463:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15474:4:103","type":""}],"src":"15334:1080:103"},{"body":{"nodeType":"YulBlock","src":"16520:76:103","statements":[{"nodeType":"YulAssignment","src":"16530:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16553:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16538:3:103"},"nodeType":"YulFunctionCall","src":"16538:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16530:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16572:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16583:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16565:6:103"},"nodeType":"YulFunctionCall","src":"16565:25:103"},"nodeType":"YulExpressionStatement","src":"16565:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16489:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16500:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16511:4:103","type":""}],"src":"16419:177:103"},{"body":{"nodeType":"YulBlock","src":"16724:135:103","statements":[{"nodeType":"YulAssignment","src":"16734:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16757:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16742:3:103"},"nodeType":"YulFunctionCall","src":"16742:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16734:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16776:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16787:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16769:6:103"},"nodeType":"YulFunctionCall","src":"16769:25:103"},"nodeType":"YulExpressionStatement","src":"16769:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16825:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16810:3:103"},"nodeType":"YulFunctionCall","src":"16810:18:103"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16844:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16837:6:103"},"nodeType":"YulFunctionCall","src":"16837:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16830:6:103"},"nodeType":"YulFunctionCall","src":"16830:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16803:6:103"},"nodeType":"YulFunctionCall","src":"16803:50:103"},"nodeType":"YulExpressionStatement","src":"16803:50:103"}]},"name":"abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16685:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16696:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16704:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16715:4:103","type":""}],"src":"16601:258:103"},{"body":{"nodeType":"YulBlock","src":"16993:119:103","statements":[{"nodeType":"YulAssignment","src":"17003:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17015:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17026:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17011:3:103"},"nodeType":"YulFunctionCall","src":"17011:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17003:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17045:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17056:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17038:6:103"},"nodeType":"YulFunctionCall","src":"17038:25:103"},"nodeType":"YulExpressionStatement","src":"17038:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17083:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17094:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17079:3:103"},"nodeType":"YulFunctionCall","src":"17079:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17099:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17072:6:103"},"nodeType":"YulFunctionCall","src":"17072:34:103"},"nodeType":"YulExpressionStatement","src":"17072:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16954:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16965:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16973:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16984:4:103","type":""}],"src":"16864:248:103"},{"body":{"nodeType":"YulBlock","src":"17274:162:103","statements":[{"nodeType":"YulAssignment","src":"17284:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17296:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17307:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17292:3:103"},"nodeType":"YulFunctionCall","src":"17292:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17284:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17326:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17337:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17319:6:103"},"nodeType":"YulFunctionCall","src":"17319:25:103"},"nodeType":"YulExpressionStatement","src":"17319:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17364:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17375:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17360:3:103"},"nodeType":"YulFunctionCall","src":"17360:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17380:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17353:6:103"},"nodeType":"YulFunctionCall","src":"17353:34:103"},"nodeType":"YulExpressionStatement","src":"17353:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17407:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17418:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17403:3:103"},"nodeType":"YulFunctionCall","src":"17403:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"17423:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17396:6:103"},"nodeType":"YulFunctionCall","src":"17396:34:103"},"nodeType":"YulExpressionStatement","src":"17396:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17227:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17238:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17246:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17254:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17265:4:103","type":""}],"src":"17117:319:103"},{"body":{"nodeType":"YulBlock","src":"17570:119:103","statements":[{"nodeType":"YulAssignment","src":"17580:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17603:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17588:3:103"},"nodeType":"YulFunctionCall","src":"17588:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17580:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17622:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17633:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17615:6:103"},"nodeType":"YulFunctionCall","src":"17615:25:103"},"nodeType":"YulExpressionStatement","src":"17615:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17660:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17671:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17656:3:103"},"nodeType":"YulFunctionCall","src":"17656:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17676:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17649:6:103"},"nodeType":"YulFunctionCall","src":"17649:34:103"},"nodeType":"YulExpressionStatement","src":"17649:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17531:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17542:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17550:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17561:4:103","type":""}],"src":"17441:248:103"},{"body":{"nodeType":"YulBlock","src":"17879:206:103","statements":[{"nodeType":"YulAssignment","src":"17889:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17901:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17912:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17897:3:103"},"nodeType":"YulFunctionCall","src":"17897:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17889:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17932:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17943:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17925:6:103"},"nodeType":"YulFunctionCall","src":"17925:25:103"},"nodeType":"YulExpressionStatement","src":"17925:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17970:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17981:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17966:3:103"},"nodeType":"YulFunctionCall","src":"17966:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17986:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17959:6:103"},"nodeType":"YulFunctionCall","src":"17959:34:103"},"nodeType":"YulExpressionStatement","src":"17959:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18024:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18009:3:103"},"nodeType":"YulFunctionCall","src":"18009:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"18029:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18002:6:103"},"nodeType":"YulFunctionCall","src":"18002:34:103"},"nodeType":"YulExpressionStatement","src":"18002:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18056:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18067:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18052:3:103"},"nodeType":"YulFunctionCall","src":"18052:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"18072:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18045:6:103"},"nodeType":"YulFunctionCall","src":"18045:34:103"},"nodeType":"YulExpressionStatement","src":"18045:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17824:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17835:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17843:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17851:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17859:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17870:4:103","type":""}],"src":"17694:391:103"},{"body":{"nodeType":"YulBlock","src":"18218:136:103","statements":[{"nodeType":"YulAssignment","src":"18228:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18240:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18251:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18236:3:103"},"nodeType":"YulFunctionCall","src":"18236:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18228:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18270:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18281:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18263:6:103"},"nodeType":"YulFunctionCall","src":"18263:25:103"},"nodeType":"YulExpressionStatement","src":"18263:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18308:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18319:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18304:3:103"},"nodeType":"YulFunctionCall","src":"18304:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18328:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18336:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18324:3:103"},"nodeType":"YulFunctionCall","src":"18324:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18297:6:103"},"nodeType":"YulFunctionCall","src":"18297:51:103"},"nodeType":"YulExpressionStatement","src":"18297:51:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint32__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18179:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18190:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18198:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18209:4:103","type":""}],"src":"18090:264:103"},{"body":{"nodeType":"YulBlock","src":"18404:230:103","statements":[{"nodeType":"YulAssignment","src":"18414:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18430:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18424:5:103"},"nodeType":"YulFunctionCall","src":"18424:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18414:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"18442:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18464:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"18480:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"18486:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18476:3:103"},"nodeType":"YulFunctionCall","src":"18476:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18495:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18491:3:103"},"nodeType":"YulFunctionCall","src":"18491:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18472:3:103"},"nodeType":"YulFunctionCall","src":"18472:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18460:3:103"},"nodeType":"YulFunctionCall","src":"18460:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"18446:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"18575:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"18577:16:103"},"nodeType":"YulFunctionCall","src":"18577:18:103"},"nodeType":"YulExpressionStatement","src":"18577:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18518:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"18530:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18515:2:103"},"nodeType":"YulFunctionCall","src":"18515:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18554:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"18566:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18551:2:103"},"nodeType":"YulFunctionCall","src":"18551:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"18512:2:103"},"nodeType":"YulFunctionCall","src":"18512:62:103"},"nodeType":"YulIf","src":"18509:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18613:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18617:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18606:6:103"},"nodeType":"YulFunctionCall","src":"18606:22:103"},"nodeType":"YulExpressionStatement","src":"18606:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"18384:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"18393:6:103","type":""}],"src":"18359:275:103"},{"body":{"nodeType":"YulBlock","src":"18696:129:103","statements":[{"body":{"nodeType":"YulBlock","src":"18740:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"18742:16:103"},"nodeType":"YulFunctionCall","src":"18742:18:103"},"nodeType":"YulExpressionStatement","src":"18742:18:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"18712:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18720:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18709:2:103"},"nodeType":"YulFunctionCall","src":"18709:30:103"},"nodeType":"YulIf","src":"18706:2:103"},{"nodeType":"YulAssignment","src":"18771:48:103","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"18791:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18799:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18787:3:103"},"nodeType":"YulFunctionCall","src":"18787:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18808:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18804:3:103"},"nodeType":"YulFunctionCall","src":"18804:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18783:3:103"},"nodeType":"YulFunctionCall","src":"18783:29:103"},{"kind":"number","nodeType":"YulLiteral","src":"18814:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18779:3:103"},"nodeType":"YulFunctionCall","src":"18779:40:103"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"18771:4:103"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"18676:6:103","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"18687:4:103","type":""}],"src":"18639:186:103"},{"body":{"nodeType":"YulBlock","src":"18878:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"18905:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18907:16:103"},"nodeType":"YulFunctionCall","src":"18907:18:103"},"nodeType":"YulExpressionStatement","src":"18907:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18894:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18901:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18897:3:103"},"nodeType":"YulFunctionCall","src":"18897:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18891:2:103"},"nodeType":"YulFunctionCall","src":"18891:13:103"},"nodeType":"YulIf","src":"18888:2:103"},{"nodeType":"YulAssignment","src":"18936:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18947:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"18950:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18943:3:103"},"nodeType":"YulFunctionCall","src":"18943:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"18936:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18861:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"18864:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"18870:3:103","type":""}],"src":"18830:128:103"},{"body":{"nodeType":"YulBlock","src":"19012:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"19034:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19036:16:103"},"nodeType":"YulFunctionCall","src":"19036:18:103"},"nodeType":"YulExpressionStatement","src":"19036:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19028:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"19031:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19025:2:103"},"nodeType":"YulFunctionCall","src":"19025:8:103"},"nodeType":"YulIf","src":"19022:2:103"},{"nodeType":"YulAssignment","src":"19065:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19077:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"19080:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19073:3:103"},"nodeType":"YulFunctionCall","src":"19073:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"19065:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18994:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"18997:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"19003:4:103","type":""}],"src":"18963:125:103"},{"body":{"nodeType":"YulBlock","src":"19146:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"19156:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"19165:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"19160:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"19225:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19250:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"19255:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19246:3:103"},"nodeType":"YulFunctionCall","src":"19246:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"19269:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"19274:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19265:3:103"},"nodeType":"YulFunctionCall","src":"19265:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19259:5:103"},"nodeType":"YulFunctionCall","src":"19259:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19239:6:103"},"nodeType":"YulFunctionCall","src":"19239:39:103"},"nodeType":"YulExpressionStatement","src":"19239:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19186:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"19189:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19183:2:103"},"nodeType":"YulFunctionCall","src":"19183:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"19197:19:103","statements":[{"nodeType":"YulAssignment","src":"19199:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19208:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"19211:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19204:3:103"},"nodeType":"YulFunctionCall","src":"19204:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"19199:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"19179:3:103","statements":[]},"src":"19175:113:103"},{"body":{"nodeType":"YulBlock","src":"19314:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19327:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"19332:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19323:3:103"},"nodeType":"YulFunctionCall","src":"19323:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"19341:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19316:6:103"},"nodeType":"YulFunctionCall","src":"19316:27:103"},"nodeType":"YulExpressionStatement","src":"19316:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19303:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"19306:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19300:2:103"},"nodeType":"YulFunctionCall","src":"19300:13:103"},"nodeType":"YulIf","src":"19297:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"19124:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"19129:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"19134:6:103","type":""}],"src":"19093:258:103"},{"body":{"nodeType":"YulBlock","src":"19403:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"19434:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19436:16:103"},"nodeType":"YulFunctionCall","src":"19436:18:103"},"nodeType":"YulExpressionStatement","src":"19436:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19419:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19430:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19426:3:103"},"nodeType":"YulFunctionCall","src":"19426:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"19416:2:103"},"nodeType":"YulFunctionCall","src":"19416:17:103"},"nodeType":"YulIf","src":"19413:2:103"},{"nodeType":"YulAssignment","src":"19465:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19476:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"19483:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19472:3:103"},"nodeType":"YulFunctionCall","src":"19472:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19465:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19385:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"19395:3:103","type":""}],"src":"19356:135:103"},{"body":{"nodeType":"YulBlock","src":"19542:155:103","statements":[{"nodeType":"YulVariableDeclaration","src":"19552:20:103","value":{"kind":"number","nodeType":"YulLiteral","src":"19562:10:103","type":"","value":"0xffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19556:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19581:29:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19600:5:103"},{"name":"_1","nodeType":"YulIdentifier","src":"19607:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19596:3:103"},"nodeType":"YulFunctionCall","src":"19596:14:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"19585:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"19638:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19640:16:103"},"nodeType":"YulFunctionCall","src":"19640:18:103"},"nodeType":"YulExpressionStatement","src":"19640:18:103"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"19625:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"19634:2:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"19622:2:103"},"nodeType":"YulFunctionCall","src":"19622:15:103"},"nodeType":"YulIf","src":"19619:2:103"},{"nodeType":"YulAssignment","src":"19669:22:103","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"19680:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"19689:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19676:3:103"},"nodeType":"YulFunctionCall","src":"19676:15:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19669:3:103"}]}]},"name":"increment_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19524:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"19534:3:103","type":""}],"src":"19496:201:103"},{"body":{"nodeType":"YulBlock","src":"19740:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"19771:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"19792:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19799:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19804:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19795:3:103"},"nodeType":"YulFunctionCall","src":"19795:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19785:6:103"},"nodeType":"YulFunctionCall","src":"19785:31:103"},"nodeType":"YulExpressionStatement","src":"19785:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19836:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"19839:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19829:6:103"},"nodeType":"YulFunctionCall","src":"19829:15:103"},"nodeType":"YulExpressionStatement","src":"19829:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"19864:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"19867:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19857:6:103"},"nodeType":"YulFunctionCall","src":"19857:15:103"},"nodeType":"YulExpressionStatement","src":"19857:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"19760:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19753:6:103"},"nodeType":"YulFunctionCall","src":"19753:9:103"},"nodeType":"YulIf","src":"19750:2:103"},{"nodeType":"YulAssignment","src":"19891:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19900:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"19903:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"19896:3:103"},"nodeType":"YulFunctionCall","src":"19896:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"19891:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19725:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"19728:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"19734:1:103","type":""}],"src":"19702:209:103"},{"body":{"nodeType":"YulBlock","src":"19948:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19965:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19972:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19977:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19968:3:103"},"nodeType":"YulFunctionCall","src":"19968:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19958:6:103"},"nodeType":"YulFunctionCall","src":"19958:31:103"},"nodeType":"YulExpressionStatement","src":"19958:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20005:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20008:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19998:6:103"},"nodeType":"YulFunctionCall","src":"19998:15:103"},"nodeType":"YulExpressionStatement","src":"19998:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20029:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20032:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20022:6:103"},"nodeType":"YulFunctionCall","src":"20022:15:103"},"nodeType":"YulExpressionStatement","src":"20022:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"19916:127:103"},{"body":{"nodeType":"YulBlock","src":"20080:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20097:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20104:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"20109:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20100:3:103"},"nodeType":"YulFunctionCall","src":"20100:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20090:6:103"},"nodeType":"YulFunctionCall","src":"20090:31:103"},"nodeType":"YulExpressionStatement","src":"20090:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20137:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20140:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20130:6:103"},"nodeType":"YulFunctionCall","src":"20130:15:103"},"nodeType":"YulExpressionStatement","src":"20130:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20161:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20164:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20154:6:103"},"nodeType":"YulFunctionCall","src":"20154:15:103"},"nodeType":"YulExpressionStatement","src":"20154:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"20048:127:103"},{"body":{"nodeType":"YulBlock","src":"20212:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20229:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20236:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"20241:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20232:3:103"},"nodeType":"YulFunctionCall","src":"20232:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20222:6:103"},"nodeType":"YulFunctionCall","src":"20222:31:103"},"nodeType":"YulExpressionStatement","src":"20222:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20269:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20272:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20262:6:103"},"nodeType":"YulFunctionCall","src":"20262:15:103"},"nodeType":"YulExpressionStatement","src":"20262:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20293:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20296:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20286:6:103"},"nodeType":"YulFunctionCall","src":"20286:15:103"},"nodeType":"YulExpressionStatement","src":"20286:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"20180:127:103"},{"body":{"nodeType":"YulBlock","src":"20357:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"20421:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20430:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20433:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20423:6:103"},"nodeType":"YulFunctionCall","src":"20423:12:103"},"nodeType":"YulExpressionStatement","src":"20423:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20380:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20391:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20406:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"20411:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20402:3:103"},"nodeType":"YulFunctionCall","src":"20402:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"20415:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20398:3:103"},"nodeType":"YulFunctionCall","src":"20398:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20387:3:103"},"nodeType":"YulFunctionCall","src":"20387:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"20377:2:103"},"nodeType":"YulFunctionCall","src":"20377:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20370:6:103"},"nodeType":"YulFunctionCall","src":"20370:50:103"},"nodeType":"YulIf","src":"20367:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20346:5:103","type":""}],"src":"20312:131:103"},{"body":{"nodeType":"YulBlock","src":"20507:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"20541:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20550:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20553:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20543:6:103"},"nodeType":"YulFunctionCall","src":"20543:12:103"},"nodeType":"YulExpressionStatement","src":"20543:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20530:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"20537:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20527:2:103"},"nodeType":"YulFunctionCall","src":"20527:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20520:6:103"},"nodeType":"YulFunctionCall","src":"20520:20:103"},"nodeType":"YulIf","src":"20517:2:103"}]},"name":"validator_revert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20496:5:103","type":""}],"src":"20448:115:103"}]},"contents":"{\n { }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), array)\n array := array_1\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_ApplicationState(offset) -> value\n {\n value := calldataload(offset)\n validator_revert_enum_ApplicationState(value)\n }\n function abi_decode_enum_ApplicationState_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_enum_ApplicationState(value)\n }\n function abi_decode_struct_Application(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0xc0) { revert(value, value) }\n value := allocate_memory(0xc0)\n let value_1 := calldataload(headStart)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), calldataload(add(headStart, 32)))\n mstore(add(value, 64), calldataload(add(headStart, 64)))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value, 96), abi_decode_bytes(add(headStart, offset), end))\n mstore(add(value, 128), calldataload(add(headStart, 128)))\n mstore(add(value, 160), calldataload(add(headStart, 160)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_ApplicationState_fromMemory(add(_2, 96)))\n let offset_1 := mload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), mload(add(_2, 160)))\n mstore(add(value, 192), mload(add(_2, 192)))\n mstore(add(value, 224), mload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), mload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), mload(add(_2, _5)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptrt_struct$_Application_$5262_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, calldataload(_2))\n mstore(add(value, 32), calldataload(add(_2, 32)))\n mstore(add(value, 64), calldataload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_ApplicationState(add(_2, 96)))\n let offset_1 := calldataload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), calldataload(add(_2, 160)))\n mstore(add(value, 192), calldataload(add(_2, 192)))\n mstore(add(value, 224), calldataload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), calldataload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), calldataload(add(_2, _5)))\n value0 := value\n let offset_2 := calldataload(add(headStart, 32))\n if gt(offset_2, _1) { revert(value1, value1) }\n value1 := abi_decode_struct_Application(add(headStart, offset_2), dataEnd)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_BundleState(value, pos)\n {\n if iszero(lt(value, 4)) { panic_error_0x21() }\n mstore(pos, value)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_address_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 96)\n tail := abi_encode_bytes(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bool__to_t_bytes32_t_uint256_t_bool__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), iszero(iszero(value2)))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:RPL-006:BUNDLE_INDEX_TOO_L\")\n mstore(add(headStart, 96), \"ARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:BRP-001:NO_ACTIVE_BUNDLES\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:RPL-007:ACTIVE_BUNDLE_INDE\")\n mstore(add(headStart, 96), \"X_TOO_LARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:BRP-002:NO_FREE_CAPITAL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"ERROR:RPL-010:RISKPOOL_HAS_UNBUR\")\n mstore(add(headStart, 96), \"NT_BUNDLES\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:BUC-001:NOT_BUNDLE_OWNER\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:RPL-001:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n abi_encode_enum_BundleState(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 128))\n let _1 := 0x0140\n mstore(add(headStart, 160), _1)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 352))\n mstore(add(headStart, 192), mload(add(value0, 160)))\n mstore(add(headStart, 224), mload(add(value0, 192)))\n let _2 := mload(add(value0, 224))\n let _3 := 256\n mstore(add(headStart, _3), _2)\n let _4 := mload(add(value0, _3))\n let _5 := 288\n mstore(add(headStart, _5), _4)\n mstore(add(headStart, _1), mload(add(value0, _5)))\n tail := tail_1\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), iszero(iszero(value1)))\n }\n function abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint256_t_uint32__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffff))\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function increment_t_uint32(value) -> ret\n {\n let _1 := 0xffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := mod(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061030c5760003560e01c80637f3b69801161019d578063b3fca9bd116100e9578063d0e0ba95116100a2578063e0815f0d1161007c578063e0815f0d146105ce578063f1d354d0146105d6578063f2fde38b146105e4578063feb1824b146105f75761030c565b8063d0e0ba95146105b3578063d73cd9921461039c578063e0032383146105c65761030c565b8063b3fca9bd1461039c578063bd1fe5d01461039c578063be169e7e1461057f578063be61e91e14610587578063c3004c8614610598578063c40000d4146105ab5761030c565b80638c483e5a11610156578063a17030d511610130578063a17030d51461055c578063a18aa1281461056f578063a18f5ae21461039c578063b26025aa146105775761030c565b80638c483e5a146105305780638da5cb5b146105435780639a82f890146105545761030c565b80637f3b6980146104d157806382558906146104d957806386c71288146104ec57806389002da514610502578063890fbf7814610515578063893d20e8146105285761030c565b80633dcdde171161025c5780635ab1bd5311610215578063652028e5116101ef578063652028e51461048d578063715018a6146104a05780637888a2ff146104a85780637893c7bc146104bb5761030c565b80635ab1bd53146104665780635d1ca6311461047d578063638ce0ba146104855761030c565b80633dcdde17146104175780634101b90c1461043457806345fe1c6d1461043c57806354afef631461044b578063587e59d01461045357806359dacc6a1461039c5761030c565b80631865c57d116102c95780632d0821b7116102a35780632d0821b7146103be578063316c5348146103de57806336153f3a146103f15780633629c3c4146104045761030c565b80631865c57d146103875780631b867c631461039c578063258d560c146103a65761030c565b80630676cb0e1461031157806312065fe014610337578063132996041461033f57806315dae03e1461036457806317d7de7c1461037757806318442e631461037f575b600080fd5b61032461031f366004612380565b610608565b6040519081526020015b60405180910390f35b610324610784565b600b546001600160a01b03165b6040516001600160a01b03909116815260200161032e565b60035460ff1660405161032e919061274c565b600154610324565b600a54610324565b61038f610814565b60405161032e9190612732565b6103a461089a565b005b6103ae6108e1565b604051901515815260200161032e565b6103d16103cc366004612380565b610911565b60405161032e9190612818565b6103a46103ec366004612380565b610a26565b6103246103ff3660046126ac565b610bc7565b6103a4610412366004612398565b610d93565b6040805160208101909152600081525b60405161032e9190612760565b610324610e1b565b610324670de0b6b3a764000081565b600d54610324565b6103a4610461366004612380565b610e59565b61034c60035461010090046001600160a01b031690565b600254610324565b6103a4610fc6565b6103a461049b366004612380565b611013565b6103a4611090565b6103246104b63660046123b9565b6110a2565b6104276040518060200160405280600081525081565b6103246111a5565b6103a46104e7366004612398565b6111e3565b6103ae6104fa36600461259a565b506001919050565b6103246105103660046126ac565b611263565b6103ae610523366004612398565b6113d7565b61034c61146e565b6103a461053e366004612380565b611480565b6000546001600160a01b031661034c565b6103ae6115ed565b6103a461056a366004612380565b6115f5565b600e54610324565b610324611762565b6103a46117a0565b61032469d3c21bcecceda100000081565b6103a46105a6366004612380565b6117ed565b610324611871565b6103a46105c1366004612380565b6118af565b6103246118f9565b6103ae611936565b670de0b6b3a7640000610324565b6103a46105f2366004612341565b61193f565b600c546001600160a01b031661034c565b60008061061460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190612694565b83106106f85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190612694565b9150505b919050565b60008061079060025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b1580156107d657600080fd5b505afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e9190612694565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561085d57600080fd5b505afa158015610871573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089591906123fc565b905090565b6108af6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146108df5760405162461bcd60e51b81526004016106ef90612773565b565b600060025b60035460ff16600281111561090b57634e487b7160e01b600052602160045260246000fd5b14905090565b610919612197565b600a5482106109765760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b60648201526084016106ef565b6000600a838154811061099957634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b1580156109ea57600080fd5b505afa1580156109fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077b91908101906124c6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aab91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610ae89160040190815260200190565b60206040518083038186803b158015610b0057600080fd5b505afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190612364565b9050336001600160a01b03821614610b625760405162461bcd60e51b81526004016106ef906127aa565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c4c91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610c899160040190815260200190565b60206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612364565b9050336001600160a01b03821614610d035760405162461bcd60e51b81526004016106ef906127aa565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610d5157600080fd5b505af1158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190612694565b9695505050505050565b610da363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b031614610dd35760405162461bcd60e51b81526004016106ef906127e1565b610ddd8282611a40565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b600080610e2760025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a66906024016107be565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ede91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610f1b9160040190815260200190565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612364565b9050336001600160a01b03821614610f955760405162461bcd60e51b81526004016106ef906127aa565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610b8f565b610fdb6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b03161461100b5760405162461bcd60e51b81526004016106ef90612773565b6108df611ac2565b61101b611b43565b600061102660025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505050505050565b611098611b43565b6108df6000611b9d565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e74906110db908490889088906004016126fe565b602060405180830381600087803b1580156110f557600080fd5b505af1158015611109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112d9190612694565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000806111b160025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db32844906024016107be565b6111f363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146112235760405162461bcd60e51b81526004016106ef906127e1565b61122d8282611bed565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610e0f565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b1580156112ac57600080fd5b505afa1580156112c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e891908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916113259160040190815260200190565b60206040518083038186803b15801561133d57600080fd5b505afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190612364565b9050336001600160a01b0382161461139f5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610d37565b60006113e963141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146114195760405162461bcd60e51b81526004016106ef906127e1565b6114238383611c3c565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610895565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156114c957600080fd5b505afa1580156114dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150591908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916115429160040190815260200190565b60206040518083038186803b15801561155a57600080fd5b505afa15801561156e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115929190612364565b9050336001600160a01b038216146115bc5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610b8f565b6000806108e6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261167a91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116b79160040190815260200190565b60206040518083038186803b1580156116cf57600080fd5b505afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190612364565b9050336001600160a01b038216146117315760405162461bcd60e51b81526004016106ef906127aa565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610b8f565b60008061176e60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d9235906024016107be565b6117b56810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146117e55760405162461bcd60e51b81526004016106ef90612773565b6108df61203f565b6117fd63141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b03161461182d5760405162461bcd60e51b81526004016106ef906127e1565b600061183882612127565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610e0f565b60008061187d60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f906024016107be565b6118c46810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146118f45760405162461bcd60e51b81526004016106ef90612773565b600255565b60008061190560025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b0316906329560980906024016107be565b600060016108e6565b611947611b43565b6001600160a01b0381166119ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ef565b6119b581611b9d565b50565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611a0257600080fd5b505afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190612364565b92915050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611aa557600080fd5b505af1158015611ab9573d6000803e3d6000fd5b50505050505050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146108df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ef565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611a8b565b600080611c47610e1b565b90506000611c536118f9565b90506000611c5f611762565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a160008311611cf45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c45530060448201526064016106ef565b808211611d435760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c00000060448201526064016106ef565b611d4d8582612908565b821061203657600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b158015611d9857600080fd5b505afa158015611dac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd4919081019061241b565b601154909150600090611dee90869063ffffffff166129a2565b905060005b8581108015611e00575086155b15612032576000611e1083610608565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015611e5a57600080fd5b505afa158015611e6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9691908101906124c6565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a1801561201c5760008260c001518360a00151611ef59190612920565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b811061200157600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b158015611f9b57600080fd5b505af1158015611faf573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff16925090611fdd8361297e565b91906101000a81548163ffffffff021916908363ffffffff1602179055505061201a565b8961200d876001612908565b61201791906129a2565b95505b505b505050808061202a90612963565b915050611df3565b5050505b50505092915050565b600061204a60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561208f57600080fd5b505afa1580156120a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c79190612694565b156119b55760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b60648201526084016106ef565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561218357600080fd5b505af1158015610757573d6000803e3d6000fd5b604051806101400160405280600081526020016000815260200160008152602001600060038111156121d957634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612219578081fd5b813561222c612227826128e0565b6128af565b818152846020838601011115612240578283fd5b816020850160208301379081016020019190915292915050565b600082601f83011261226a578081fd5b8151612278612227826128e0565b81815284602083860101111561228c578283fd5b61229d826020830160208701612937565b949350505050565b803561077f81612a19565b805161077f81612a19565b600060c082840312156122cc578081fd5b6122d660c06128af565b905081356122e381612a19565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561231557600080fd5b61232184828501612209565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612352578081fd5b813561235d81612a04565b9392505050565b600060208284031215612375578081fd5b815161235d81612a04565b600060208284031215612391578081fd5b5035919050565b600080604083850312156123aa578081fd5b50508035926020909101359150565b600080604083850312156123cb578182fd5b823567ffffffffffffffff8111156123e1578283fd5b6123ed85828601612209565b95602094909401359450505050565b60006020828403121561240d578081fd5b81516007811061235d578182fd5b60006020828403121561242c578081fd5b815167ffffffffffffffff80821115612443578283fd5b9083019060c08286031215612456578283fd5b61246060c06128af565b825161246b81612a19565b808252506020830151602082015260408301516040820152606083015182811115612494578485fd5b6124a08782860161225a565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000602082840312156124d7578081fd5b815167ffffffffffffffff808211156124ee578283fd5b8184019150610140808387031215612504578384fd5b61250d816128af565b9050825181526020830151602082015260408301516040820152612533606084016122b0565b6060820152608083015182811115612549578485fd5b6125558782860161225a565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600080604083850312156125ac578182fd5b823567ffffffffffffffff808211156125c3578384fd5b81850191506101408083880312156125d9578485fd5b6125e2816128af565b9050823581526020830135602082015260408301356040820152612608606084016122a5565b606082015260808301358281111561261e578586fd5b61262a88828601612209565b60808301525060a083013560a082015260c083013560c082015260e083013560e082015261010080840135818301525061012080840135818301525080945050602085013591508082111561267d578283fd5b5061268a858286016122bb565b9150509250929050565b6000602082840312156126a5578081fd5b5051919050565b600080604083850312156123aa578182fd5b600081518084526126d6816020860160208601612937565b601f01601f19169290920160200192915050565b600481106126fa576126fa6129d8565b9052565b6001600160a01b0384168152606060208201819052600090612722908301856126be565b9050826040830152949350505050565b6020810160078310612746576127466129d8565b91905290565b6020810160038310612746576127466129d8565b60006020825261235d60208301846126be565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b600060208252825160208301526020830151604083015260408301516060830152606083015161284b60808401826126ea565b5060808301516101408060a08501526128686101608501836126be565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128d8576128d86129ee565b604052919050565b600067ffffffffffffffff8211156128fa576128fa6129ee565b50601f01601f191660200190565b6000821982111561291b5761291b6129c2565b500190565b600082821015612932576129326129c2565b500390565b60005b8381101561295257818101518382015260200161293a565b83811115611b3d5750506000910152565b6000600019821415612977576129776129c2565b5060010190565b600063ffffffff80831681811415612998576129986129c2565b6001019392505050565b6000826129bd57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146119b557600080fd5b600481106119b557600080fdfea264697066735822122027465eb2540f515511bab31c2e975b912c7cb02ee862dca2d6d9395445502f7364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x30C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3B6980 GT PUSH2 0x19D JUMPI DUP1 PUSH4 0xB3FCA9BD GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xD0E0BA95 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x5D6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5E4 JUMPI DUP1 PUSH4 0xFEB1824B EQ PUSH2 0x5F7 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x5B3 JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xE0032383 EQ PUSH2 0x5C6 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x57F JUMPI DUP1 PUSH4 0xBE61E91E EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xC3004C86 EQ PUSH2 0x598 JUMPI DUP1 PUSH4 0xC40000D4 EQ PUSH2 0x5AB JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A GT PUSH2 0x156 JUMPI DUP1 PUSH4 0xA17030D5 GT PUSH2 0x130 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x55C JUMPI DUP1 PUSH4 0xA18AA128 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xB26025AA EQ PUSH2 0x577 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x543 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x554 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x7F3B6980 EQ PUSH2 0x4D1 JUMPI DUP1 PUSH4 0x82558906 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0x86C71288 EQ PUSH2 0x4EC JUMPI DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0x890FBF78 EQ PUSH2 0x515 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x528 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x3DCDDE17 GT PUSH2 0x25C JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x215 JUMPI DUP1 PUSH4 0x652028E5 GT PUSH2 0x1EF JUMPI DUP1 PUSH4 0x652028E5 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x7888A2FF EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0x7893C7BC EQ PUSH2 0x4BB JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x466 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x47D JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x485 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x3DCDDE17 EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0x4101B90C EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x43C JUMPI DUP1 PUSH4 0x54AFEF63 EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x453 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x39C JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x1865C57D GT PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x3F1 JUMPI DUP1 PUSH4 0x3629C3C4 EQ PUSH2 0x404 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x1865C57D EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x3A6 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x676CB0E EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x13299604 EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x377 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x37F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x324 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x324 PUSH2 0x784 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x274C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x38F PUSH2 0x814 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x89A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3AE PUSH2 0x8E1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x3D1 PUSH2 0x3CC CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2818 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x3EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0xA26 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x26AC JUMP JUMPDEST PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x412 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0xD93 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2760 JUMP JUMPDEST PUSH2 0x324 PUSH2 0xE1B JUMP JUMPDEST PUSH2 0x324 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x461 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0xE59 JUMP JUMPDEST PUSH2 0x34C PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0xFC6 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x1013 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x1090 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x4B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x23B9 JUMP JUMPDEST PUSH2 0x10A2 JUMP JUMPDEST PUSH2 0x427 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x11A5 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x4E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x11E3 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x4FA CALLDATASIZE PUSH1 0x4 PUSH2 0x259A JUMP JUMPDEST POP PUSH1 0x1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x324 PUSH2 0x510 CALLDATASIZE PUSH1 0x4 PUSH2 0x26AC JUMP JUMPDEST PUSH2 0x1263 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x523 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x13D7 JUMP JUMPDEST PUSH2 0x34C PUSH2 0x146E JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x53E CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x1480 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x34C JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x15ED JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x56A CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x15F5 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x1762 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x17A0 JUMP JUMPDEST PUSH2 0x324 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x17ED JUMP JUMPDEST PUSH2 0x324 PUSH2 0x1871 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x18AF JUMP JUMPDEST PUSH2 0x324 PUSH2 0x18F9 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x1936 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2341 JUMP JUMPDEST PUSH2 0x193F JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x34C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x614 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x659 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x66D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x691 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST DUP4 LT PUSH2 0x6F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030373A4143544956455F42554E444C455F494E4445 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x585F544F4F5F4C41524745 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x77B SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x790 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1E010439 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1E010439 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x80E SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x871 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x895 SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8AF PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x90B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x919 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0xA SLOAD DUP3 LT PUSH2 0x976 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030363A42554E444C455F494E4445585F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x999 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x77B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA83 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xAAB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xAE8 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB38 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xB62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62D8A69 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x316C5348 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC4C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xC89 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCD9 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xD03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B0A9F9D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x36153F3A SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDA3 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDD3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0xDDD DUP3 DUP3 PUSH2 0x1A40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xD910A5091EEA39C3EFEED9891A9E2B4694BD064808F5B0A4DE415D70B313EC52 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE27 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEB6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xEDE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xF1B SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF47 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xF95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x587E59D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x587E59D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH2 0xFDB PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x100B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH2 0x8DF PUSH2 0x1AC2 JUMP JUMPDEST PUSH2 0x101B PUSH2 0x1B43 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1026 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1074 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1088 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1098 PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0x8DF PUSH1 0x0 PUSH2 0x1B9D JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57F079D PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x15FC1E74 SWAP1 PUSH2 0x10DB SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26FE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1109 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x112D SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC65A7BB8D6351C1CF70C95A316CC6A92839C986682D98BC35F958F4883F9D2A8 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH32 0xD17D9DC3726BA31D9AF5D3A3425289766158A8EA95520E1C299CCBE4A2978B34 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11B1 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x11F3 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1223 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0x122D DUP3 DUP3 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xEE37957C2D37326FA4E3897FC3947BBDBD8E1082639A302C1C206B4D1C5E695 SWAP2 ADD PUSH2 0xE0F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12E8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1325 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1351 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1375 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x139F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89002DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x89002DA5 SWAP1 PUSH1 0x44 ADD PUSH2 0xD37 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13E9 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1419 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0x1423 DUP4 DUP4 PUSH2 0x1C3C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP3 ISZERO ISZERO DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9D0F25E972AD53428B0A94CD615FA731919562FA34769DF0F9C3EED71B0BD81E SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x895 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1505 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1542 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x156E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1592 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x15BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x46241F2D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8C483E5A SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8E6 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1652 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x167A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x16B7 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1707 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA17030D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA17030D5 SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x176E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F5D9235 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3F5D9235 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x17B5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH2 0x8DF PUSH2 0x203F JUMP JUMPDEST PUSH2 0x17FD PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x182D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1838 DUP3 PUSH2 0x2127 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x22BF66455B4BF54C9548E2BB650543CFA753A53CAB13AF4020DDBFA76C231B0F SWAP2 ADD PUSH2 0xE0F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x187D PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBCD5349F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBCD5349F SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x18C4 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x18F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1905 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH3 0x52AC13 PUSH1 0xE7 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x29560980 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x8E6 JUMP JUMPDEST PUSH2 0x1947 PUSH2 0x1B43 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x19AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH2 0x19B5 DUP2 PUSH2 0x1B9D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A3A SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH1 0xD SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x5F971AA3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x64 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0xBF2E3546 SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x1A8B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1C47 PUSH2 0xE1B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C53 PUSH2 0x18F9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C5F PUSH2 0x1762 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7296D1A54B2D02C3A2F8F0B83B688D6B8415618F2AB8C3D5F761DD678DCC4B29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 GT PUSH2 0x1CF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030313A4E4F5F4143544956455F42554E444C455300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST DUP1 DUP3 GT PUSH2 0x1D43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030323A4E4F5F465245455F4341504954414C000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH2 0x1D4D DUP6 DUP3 PUSH2 0x2908 JUMP JUMPDEST DUP3 LT PUSH2 0x2036 JUMPI PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1DD4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241B JUMP JUMPDEST PUSH1 0x11 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1DEE SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x29A2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT DUP1 ISZERO PUSH2 0x1E00 JUMPI POP DUP7 ISZERO JUMPDEST ISZERO PUSH2 0x2032 JUMPI PUSH1 0x0 PUSH2 0x1E10 DUP4 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1E96 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x4FB0F8B19E3CE187A133519BFF1FCBDF3DFBC1B55F8BC334A3DA5BCADBEEA2A7 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 ISZERO PUSH2 0x201C JUMPI PUSH1 0x0 DUP3 PUSH1 0xC0 ADD MLOAD DUP4 PUSH1 0xA0 ADD MLOAD PUSH2 0x1EF5 SWAP2 SWAP1 PUSH2 0x2920 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xE54EF564BEE7E49A6E78296E638947532DE075D47CD66E331104B4812756F119 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 DUP2 LT PUSH2 0x2001 JUMPI PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP15 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP7 SWAP1 SSTORE PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 SWAP15 POP PUSH4 0xFFFFFFFF AND SWAP3 POP SWAP1 PUSH2 0x1FDD DUP4 PUSH2 0x297E JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x201A JUMP JUMPDEST DUP10 PUSH2 0x200D DUP8 PUSH1 0x1 PUSH2 0x2908 JUMP JUMPDEST PUSH2 0x2017 SWAP2 SWAP1 PUSH2 0x29A2 JUMP JUMPDEST SWAP6 POP JUMPDEST POP JUMPDEST POP POP POP DUP1 DUP1 PUSH2 0x202A SWAP1 PUSH2 0x2963 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1DF3 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x204A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20C7 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST ISZERO PUSH2 0x19B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3031303A5249534B504F4F4C5F4841535F554E425552 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x4E545F42554E444C4553 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2183 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2219 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x222C PUSH2 0x2227 DUP3 PUSH2 0x28E0 JUMP JUMPDEST PUSH2 0x28AF JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2240 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x226A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2278 PUSH2 0x2227 DUP3 PUSH2 0x28E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x228C JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x229D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2937 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x77F DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x77F DUP2 PUSH2 0x2A19 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22CC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x22D6 PUSH1 0xC0 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x22E3 DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2321 DUP5 DUP3 DUP6 ADD PUSH2 0x2209 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2352 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x235D DUP2 PUSH2 0x2A04 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2375 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x235D DUP2 PUSH2 0x2A04 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2391 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23AA JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23CB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23E1 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x23ED DUP6 DUP3 DUP7 ADD PUSH2 0x2209 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x235D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x242C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2443 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2456 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2460 PUSH1 0xC0 PUSH2 0x28AF JUMP JUMPDEST DUP3 MLOAD PUSH2 0x246B DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2494 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x24A0 DUP8 DUP3 DUP7 ADD PUSH2 0x225A JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24D7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x24EE JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2504 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x250D DUP2 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2533 PUSH1 0x60 DUP5 ADD PUSH2 0x22B0 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2549 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2555 DUP8 DUP3 DUP7 ADD PUSH2 0x225A JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25AC JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25C3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP9 SUB SLT ISZERO PUSH2 0x25D9 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x25E2 DUP2 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2608 PUSH1 0x60 DUP5 ADD PUSH2 0x22A5 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x261E JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x262A DUP9 DUP3 DUP7 ADD PUSH2 0x2209 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD CALLDATALOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x267D JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x268A DUP6 DUP3 DUP7 ADD PUSH2 0x22BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26A5 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23AA JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x26D6 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2937 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x26FA JUMPI PUSH2 0x26FA PUSH2 0x29D8 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2722 SWAP1 DUP4 ADD DUP6 PUSH2 0x26BE JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2746 JUMPI PUSH2 0x2746 PUSH2 0x29D8 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x2746 JUMPI PUSH2 0x2746 PUSH2 0x29D8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x235D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26BE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F42554E444C455F4F574E45520000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030313A4143434553535F44454E4945440000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x284B PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x26EA JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2868 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x26BE JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x28D8 JUMPI PUSH2 0x28D8 PUSH2 0x29EE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28FA JUMPI PUSH2 0x28FA PUSH2 0x29EE JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x291B JUMPI PUSH2 0x291B PUSH2 0x29C2 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2932 JUMPI PUSH2 0x2932 PUSH2 0x29C2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2952 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x293A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1B3D JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2977 JUMPI PUSH2 0x2977 PUSH2 0x29C2 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2998 JUMPI PUSH2 0x2998 PUSH2 0x29C2 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x29BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x19B5 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x27 CHAINID 0x5E 0xB2 SLOAD 0xF MLOAD SSTORE GT 0xBA 0xB3 SHR 0x2E SWAP8 JUMPDEST SWAP2 0x2C PUSH29 0xB02EE862DCA2D6D9395445502F7364736F6C6343000802003300000000 ","sourceMap":"272:702:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7157:320:19;;;;;;:::i;:::-;;:::i;:::-;;;9967:25:103;;;9955:2;9940:18;7157:320:19;;;;;;;;8164:164;;;:::i;5982:92::-;6059:7;;-1:-1:-1;;;;;6059:7:19;5982:92;;;-1:-1:-1;;;;;8743:32:103;;;8725:51;;8713:2;8698:18;5982:92:19;8680:102:103;2394:100:12;2477:14;;;;2394:100;;;;;;:::i;2220:83::-;2286:14;;2220:83;;6585:100:19;6660:10;:17;6585:100;;2500:136:12;;;:::i;:::-;;;;;;;:::i;3279:78::-;;;:::i;:::-;;2973:120;;;:::i;:::-;;;9794:14:103;;9787:22;9769:41;;9757:2;9742:18;2973:120:12;9724:92:103;6693:278:19;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3875:165::-;;;;;;:::i;:::-;;:::i;3461:237::-;;;;;;:::i;:::-;;:::i;4942:230::-;;;;;;:::i;:::-;;:::i;7485:135::-;7583:29;;;;;;;;;-1:-1:-1;7583:29:19;;7485:135;;;;;;;:::i;6979:170::-;;;:::i;580:61::-;;635:6;580:61;;6457:120;6551:18;;6457:120;;4219:161;;;;;;:::i;:::-;;:::i;3101:86:12:-;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;2309:79;2373:12;;2309:79;;3195:78;;;:::i;5430:278:19:-;;;;;;:::i;:::-;;:::i;1831:101:41:-;;;:::i;2828:383:19:-;;;;;;:::i;:::-;;:::i;648:57::-;;;;;;;;;;;;;;;;5716:258;;;:::i;4707:227::-;;;;;;:::i;:::-;;:::i;723:246:99:-;;;;;;:::i;:::-;-1:-1:-1;957:4:99;;723:246;-1:-1:-1;723:246:99;3219:234:19;;;;;;:::i;:::-;;:::i;4388:311::-;;;;;;:::i;:::-;;:::i;2642:77:12:-;;;:::i;4048:163:19:-;;;;;;:::i;:::-;;:::i;1201:85:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;2851:116:12;;;:::i;3706:161:19:-;;;;;;:::i;:::-;;:::i;6190:117::-;6280:19;;6190:117;;7800:182;;;:::i;3772:77:12:-;;;:::i;320:55:99:-;;369:6;320:55;;5180:242:19;;;;;;:::i;:::-;;:::i;7990:166::-;;;:::i;2131:81:12:-;;;;;;:::i;:::-;;:::i;7628:164:19:-;;;:::i;2727:118:12:-;;;:::i;6315:134:19:-;635:6;6315:134;;2081:198:41;;;;;;:::i;:::-;;:::i;6082:100:19:-;6163:11;;-1:-1:-1;;;;;6163:11:19;6082:100;;7157:320;7226:16;7255:18;7276:7;2373:12:12;;2309:79;;7276:7:19;7308:16;;:42;;-1:-1:-1;;;7308:42:19;;;;;9967:25:103;;;7255:28:19;;-1:-1:-1;;;;;;7308:16:19;;:30;;9940:18:103;;7308:42:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7302:3;:48;7294:104;;;;-1:-1:-1;;;7294:104:19;;13279:2:103;7294:104:19;;;13261:21:103;13318:2;13298:18;;;13291:30;13357:34;13337:18;;;13330:62;-1:-1:-1;;;13408:18:103;;;13401:41;13459:19;;7294:104:19;;;;;;;;;7418:16;;:51;;-1:-1:-1;;;7418:51:19;;;;;10177:25:103;;;10218:18;;;10211:34;;;-1:-1:-1;;;;;7418:16:19;;;;:34;;10150:18:103;;7418:51:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7411:58;;;7157:320;;;;:::o;8164:164::-;8215:7;8235:18;8256:7;2373:12:12;;2309:79;;8256:7:19;8281:16;;:39;;-1:-1:-1;;;8281:39:19;;;;;9967:25:103;;;8235:28:19;;-1:-1:-1;;;;;;8281:16:19;;:27;;9940:18:103;;8281:39:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8274:46;;;8164:164;:::o;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;9967:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;9940:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2578:55;;2500:136;:::o;3279:78::-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3279:78::o;2973:120::-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;6693:278:19:-;6754:21;;:::i;:::-;6802:10;:17;6796:23;;6788:72;;;;-1:-1:-1;;;6788:72:19;;12514:2:103;6788:72:19;;;12496:21:103;12553:2;12533:18;;;12526:30;12592:34;12572:18;;;12565:62;-1:-1:-1;;;12643:18:103;;;12636:34;12687:19;;6788:72:19;12486:226:103;6788:72:19;6873:17;6893:10;6904:3;6893:15;;;;;;-1:-1:-1;;;6893:15:19;;;;;;;;;;;;;;;;;;;6926:16;;:37;;-1:-1:-1;;;6926:37:19;;;;;9967:25:103;;;6893:15:19;;-1:-1:-1;;;;;;6926:16:19;;:26;;9940:18:103;;6926:37:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6926:37:19;;;;;;;;;;;;:::i;3875:165::-;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;3967:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3993:16:::1;::::0;:39:::1;::::0;-1:-1:-1;;;3993:39:19;;::::1;::::0;::::1;9967:25:103::0;;;-1:-1:-1;;;;;3993:16:19;;::::1;::::0;:29:::1;::::0;9940:18:103;;3993:39:19::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3875:165:::0;;;;:::o;3461:237::-;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;3596:17:19;;3569:8;;3596:17;;-1:-1:-1;;;;;1413:16:19;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3643:16:::1;::::0;:47:::1;::::0;-1:-1:-1;;;3643:47:19;;::::1;::::0;::::1;10177:25:103::0;;;10218:18;;;10211:34;;;-1:-1:-1;;;;;3643:16:19;;::::1;::::0;:29:::1;::::0;10150:18:103;;3643:47:19::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3631:59:::0;3461:237;-1:-1:-1;;;;;;3461:237:19:o;4942:230::-;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;5068:34:::1;5084:9;5095:6;5068:15;:34::i;:::-;5118:46;::::0;;10177:25:103;;;10233:2;10218:18;;10211:34;;;5118:46:19::1;::::0;10150:18:103;5118:46:19::1;;;;;;;;4942:230:::0;;:::o;6979:170::-;7033:7;7053:18;7074:7;2373:12:12;;2309:79;;7074:7:19;7099:16;;:42;;-1:-1:-1;;;7099:42:19;;;;;9967:25:103;;;7053:28:19;;-1:-1:-1;;;;;;7099:16:19;;:30;;9940:18:103;;7099:42:19;9922:76:103;4219:161:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;4309:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;4335:16:::1;::::0;:37:::1;::::0;-1:-1:-1;;;4335:37:19;;::::1;::::0;::::1;9967:25:103::0;;;-1:-1:-1;;;;;4335:16:19;;::::1;::::0;:27:::1;::::0;9940:18:103;;4335:37:19::1;9922:76:103::0;3195:78:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;5430:278:19:-:0;1094:13:41;:11;:13::i;:::-;5571:18:19::1;5592:7;2373:12:12::0;;2309:79;;5592:7:19::1;5610:16;::::0;:90:::1;::::0;-1:-1:-1;;;5610:90:19;;::::1;::::0;::::1;10177:25:103::0;;;10218:18;;;10211:34;;;5571:28:19;;-1:-1:-1;;;;;;5610:16:19::1;::::0;:48:::1;::::0;10150:18:103;;5610:90:19::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1117:1:41;5430:278:19::0;:::o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;2828:383:19:-:0;2945:16;;719:10:59;3035:16:19;;:65;;-1:-1:-1;;;3035:65:19;;2979:34;;-1:-1:-1;;;;;;3035:16:19;;:29;;:65;;2979:34;;3078:6;;3086:13;;3035:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3111:10;:25;;;;;;;-1:-1:-1;3111:25:19;;;;;;;;;3154:49;;;10177:25:103;;;10233:2;10218:18;;10211:34;;;3111:25:19;;-1:-1:-1;3154:49:19;;10150:18:103;3154:49:19;;;;;;;2828:383;;;;;:::o;5716:258::-;5806:36;5860:18;5881:7;2373:12:12;;2309:79;;5881:7:19;5906:16;;:60;;-1:-1:-1;;;5906:60:19;;;;;9967:25:103;;;5860:28:19;;-1:-1:-1;;;;;;5906:16:19;;:48;;9940:18:103;;5906:60:19;9922:76:103;4707:227:19;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;4832:33:::1;4847:9;4858:6;4832:14;:33::i;:::-;4881:45;::::0;;10177:25:103;;;10233:2;10218:18;;10211:34;;;4881:45:19::1;::::0;10150:18:103;4881:45:19::1;10132:119:103::0;3219:234:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;3353:17:19;;3326:8;;3353:17;;-1:-1:-1;;;;;1413:16:19;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3400:16:::1;::::0;:45:::1;::::0;-1:-1:-1;;;3400:45:19;;::::1;::::0;::::1;10177:25:103::0;;;10218:18;;;10211:34;;;-1:-1:-1;;;;;3400:16:19;;::::1;::::0;:27:::1;::::0;10150:18:103;;3400:45:19::1;10132:119:103::0;4388:311:19;4525:12;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;4566:44:::1;4582:9;4593:16;4566:15;:44::i;:::-;4626:65;::::0;;10452:25:103;;;10508:2;10493:18;;10486:34;;;10563:14;;10556:22;10536:18;;;10529:50;4626:65:19;;10563:14:103;;-1:-1:-1;4626:65:19::1;::::0;;;;;10440:2:103;4626:65:19;;::::1;4388:311:::0;;;;:::o;2642:77:12:-;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;4048:163:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;4139:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;4165:16:::1;::::0;:38:::1;::::0;-1:-1:-1;;;4165:38:19;;::::1;::::0;::::1;9967:25:103::0;;;-1:-1:-1;;;;;4165:16:19;;::::1;::::0;:28:::1;::::0;9940:18:103;;4165:38:19::1;9922:76:103::0;2851:116:12;2900:4;;2915:49;;3706:161:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;3796:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3822:16:::1;::::0;:37:::1;::::0;-1:-1:-1;;;3822:37:19;;::::1;::::0;::::1;9967:25:103::0;;;-1:-1:-1;;;;;3822:16:19;;::::1;::::0;:27:::1;::::0;9940:18:103;;3822:37:19::1;9922:76:103::0;7800:182:19;7860:7;7880:18;7901:7;2373:12:12;;2309:79;;7901:7:19;7926:16;;:48;;-1:-1:-1;;;7926:48:19;;;;;9967:25:103;;;7880:28:19;;-1:-1:-1;;;;;;7926:16:19;;:36;;9940:18:103;;7926:48:19;9922:76:103;3772:77:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3831:15:::1;:13;:15::i;5180:242:19:-:0;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;5284:24:::1;5311:29;5330:9;5311:18;:29::i;:::-;5356:58;::::0;;10177:25:103;;;10233:2;10218:18;;10211:34;;;5284:56:19;;-1:-1:-1;5356:58:19::1;::::0;10150:18:103;5356:58:19::1;10132:119:103::0;7990:166:19;8042:7;8062:18;8083:7;2373:12:12;;2309:79;;8083:7:19;8108:16;;:40;;-1:-1:-1;;;8108:40:19;;;;;9967:25:103;;;8062:28:19;;-1:-1:-1;;;;;;8108:16:19;;:28;;9940:18:103;;8108:40:19;9922:76:103;2131:81:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;7628:164:19:-;7679:7;7699:18;7720:7;2373:12:12;;2309:79;;7720:7:19;7745:16;;:39;;-1:-1:-1;;;7745:39:19;;;;;9967:25:103;;;7699:28:19;;-1:-1:-1;;;;;;7745:16:19;;:27;;9940:18:103;;7745:39:19;9922:76:103;2727:118:12;2777:4;2810:32;2792:50;;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;12107:2:103;2161:73:41::1;::::0;::::1;12089:21:103::0;12146:2;12126:18;;;12119:30;12185:34;12165:18;;;12158:62;-1:-1:-1;;;12236:18:103;;;12229:36;12282:19;;2161:73:41::1;12079:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;4875:145:12:-;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;9967:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;9940:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;4875:145;-1:-1:-1;;4875:145:12:o;4177:229:11:-;4280:16;4299:28;;;:17;:28;;;;;;;;4338:16;;:60;;-1:-1:-1;;;4338:60:11;;;;;17319:25:103;;;17360:18;;;17353:34;;;17403:18;;;17396:34;;;4299:28:11;;-1:-1:-1;;;;;4338:16:11;;:31;;17292:18:103;;4338:60:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4177:229;;;:::o;2590:230:19:-;2652:16;;2700:7;;2722:11;;2749:18;;2782:19;;2652:160;;-1:-1:-1;;;2652:160:19;;-1:-1:-1;;;;;2700:7:19;;;2652:160;;;9056:34:103;2722:11:19;;;9106:18:103;;;9099:43;9158:18;;;9151:34;;;;9201:18;;;9194:34;2652:16:19;;;:33;;8990:19:103;;2652:160:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2590:230::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;14049:2:103;1414:68:41;;;14031:21:103;;;14068:18;;;14061:30;14127:34;14107:18;;;14100:62;14179:18;;1414:68:41;14021:182:103;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;3942:227:11:-;4044:16;4063:28;;;:17;:28;;;;;;;;4102:16;;:59;;-1:-1:-1;;;4102:59:11;;;;;17319:25:103;;;17360:18;;;17353:34;;;17403:18;;;17396:34;;;4063:28:11;;-1:-1:-1;;;;;4102:16:11;;:30;;17292:18:103;;4102:59:11;17274:162:103;1533:2401:11;1648:12;1679:21;1703:15;:13;:15::i;:::-;1679:39;;1729:15;1747:12;:10;:12::i;:::-;1729:30;;1770:21;1794;:19;:21::i;:::-;1883:16;;1833:67;;;18263:25:103;;;1883:16:11;;;;18319:2:103;18304:18;;18297:51;1770:45:11;;-1:-1:-1;1833:67:11;;18236:18:103;1833:67:11;;;;;;;1935:1;1919:13;:17;1911:61;;;;-1:-1:-1;;;1911:61:11;;12919:2:103;1911:61:11;;;12901:21:103;12958:2;12938:18;;;12931:30;12997:33;12977:18;;;12970:61;13048:18;;1911:61:11;12891:181:103;1911:61:11;2001:13;1991:7;:23;1983:65;;;;-1:-1:-1;;;1983:65:11;;13691:2:103;1983:65:11;;;13673:21:103;13730:2;13710:18;;;13703:30;13769:31;13749:18;;;13742:59;13818:18;;1983:65:11;13663:179:103;1983:65:11;2135:32;2151:16;2135:13;:32;:::i;:::-;2124:7;:43;2121:1806;;2225:16;;:42;;-1:-1:-1;;;2225:42:11;;;;;9967:25:103;;;2184:38:11;;-1:-1:-1;;;;;2225:16:11;;:31;;9940:18:103;;2225:42:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2225:42:11;;;;;;;;;;;;:::i;:::-;2374:16;;2184:83;;-1:-1:-1;2363:8:11;;2374:32;;2393:13;;2374:16;;:32;:::i;:::-;2363:43;;2870:9;2865:1051;2889:13;2885:1;:17;:29;;;;;2907:7;2906:8;2885:29;2865:1051;;;2940:16;2959:22;2977:3;2959:17;:22::i;:::-;3031:16;;:36;;-1:-1:-1;;;3031:36:11;;;;;9967:25:103;;;2940:41:11;;-1:-1:-1;3000:28:11;;-1:-1:-1;;;;;3031:16:11;;;;:26;;9940:18:103;;3031:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3031:36:11;;;;;;;;;;;;:::i;:::-;3000:67;-1:-1:-1;3086:15:11;957:4:99;3173:52:11;;;16769:25:103;;;16837:14;;16830:22;16825:2;16810:18;;16803:50;3086:63:11;;-1:-1:-1;3173:52:11;;16742:18:103;3173:52:11;;;;;;;3250:10;3246:655;;;3285:17;3322:6;:20;;;3305:6;:14;;;:37;;;;:::i;:::-;3370:86;;;17925:25:103;;;17981:2;17966:18;;17959:34;;;18009:18;;;18002:34;;;18067:2;18052:18;;18045:34;;;3285:57:11;;-1:-1:-1;3370:86:11;;17912:3:103;17897:19;3370:86:11;;;;;;;3498:16;3485:9;:29;3481:401;;3543:16;;:75;;-1:-1:-1;;;3543:75:11;;;;;17319:25:103;;;17360:18;;;17353:34;;;17403:18;;;17396:34;;;-1:-1:-1;;;;;3543:16:11;;;;:36;;17292:18:103;;3543:75:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3645:28:11;;;;:17;:28;;;;;:39;;;3752:16;:18;;3721:4;;-1:-1:-1;3752:18:11;;;-1:-1:-1;3752:16:11;:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3481:401;;;3845:13;3834:7;:3;3840:1;3834:7;:::i;:::-;3833:25;;;;:::i;:::-;3827:31;;3481:401;3246:655;;2865:1051;;;2916:3;;;;;:::i;:::-;;;;2865:1051;;;;2121:1806;;;1533:2401;;;;;;;:::o;8528:252:19:-;8588:18;8609:7;2373:12:12;;2309:79;;8609:7:19;8649:16;;:43;;-1:-1:-1;;;8649:43:19;;;;;9967:25:103;;;8588:28:19;;-1:-1:-1;;;;;;8649:16:19;;:31;;9940:18:103;;8649:43:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;8627:145;;;;-1:-1:-1;;;8627:145:19;;14410:2:103;8627:145:19;;;14392:21:103;14449:2;14429:18;;;14422:30;14488:34;14468:18;;;14461:62;-1:-1:-1;;;14539:18:103;;;14532:40;14589:19;;8627:145:19;14382:232:103;4414:279:11;4506:24;4576:28;;;:17;:28;;;;;;;4634:16;;:51;;-1:-1:-1;;;4634:51:11;;;;;10177:25:103;;;10218:18;;;10211:34;;;4576:28:11;;-1:-1:-1;;;;;4634:16:11;;:30;;10150:18:103;;4634:51:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:482:103:-;;109:3;102:4;94:6;90:17;86:27;76:2;;131:5;124;117:20;76:2;171:6;158:20;202:48;218:31;246:2;218:31;:::i;:::-;202:48;:::i;:::-;275:2;266:7;259:19;321:3;314:4;309:2;301:6;297:15;293:26;290:35;287:2;;;342:5;335;328:20;287:2;411;404:4;396:6;392:17;385:4;376:7;372:18;359:55;434:16;;;452:4;430:27;423:42;;;;438:7;66:430;-1:-1:-1;;66:430:103:o;501:444::-;;607:3;600:4;592:6;588:17;584:27;574:2;;629:5;622;615:20;574:2;662:6;656:13;693:48;709:31;737:2;709:31;:::i;693:48::-;766:2;757:7;750:19;812:3;805:4;800:2;792:6;788:15;784:26;781:35;778:2;;;833:5;826;819:20;778:2;850:64;911:2;904:4;895:7;891:18;884:4;876:6;872:17;850:64;:::i;:::-;932:7;564:381;-1:-1:-1;;;;564:381:103:o;950:162::-;1032:20;;1061:45;1032:20;1061:45;:::i;1117:166::-;1210:13;;1232:45;1210:13;1232:45;:::i;1288:771::-;;1394:4;1382:9;1377:3;1373:19;1369:30;1366:2;;;1416:5;1409;1402:20;1366:2;1442:21;1458:4;1442:21;:::i;:::-;1433:30;;1500:9;1487:23;1519:47;1558:7;1519:47;:::i;:::-;1589:7;1582:5;1575:22;;1657:2;1646:9;1642:18;1629:32;1624:2;1617:5;1613:14;1606:56;1722:2;1711:9;1707:18;1694:32;1689:2;1682:5;1678:14;1671:56;1778:2;1767:9;1763:18;1750:32;1805:18;1797:6;1794:30;1791:2;;;1837:1;1834;1827:12;1791:2;1873:45;1914:3;1905:6;1894:9;1890:22;1873:45;:::i;:::-;1868:2;1861:5;1857:14;1850:69;;1980:3;1969:9;1965:19;1952:33;1946:3;1939:5;1935:15;1928:58;2047:3;2036:9;2032:19;2019:33;2013:3;2006:5;2002:15;1995:58;1356:703;;;;:::o;2064:257::-;;2176:2;2164:9;2155:7;2151:23;2147:32;2144:2;;;2197:6;2189;2182:22;2144:2;2241:9;2228:23;2260:31;2285:5;2260:31;:::i;:::-;2310:5;2134:187;-1:-1:-1;;;2134:187:103:o;2326:261::-;;2449:2;2437:9;2428:7;2424:23;2420:32;2417:2;;;2470:6;2462;2455:22;2417:2;2507:9;2501:16;2526:31;2551:5;2526:31;:::i;2592:190::-;;2704:2;2692:9;2683:7;2679:23;2675:32;2672:2;;;2725:6;2717;2710:22;2672:2;-1:-1:-1;2753:23:103;;2662:120;-1:-1:-1;2662:120:103:o;2787:258::-;;;2916:2;2904:9;2895:7;2891:23;2887:32;2884:2;;;2937:6;2929;2922:22;2884:2;-1:-1:-1;;2965:23:103;;;3035:2;3020:18;;;3007:32;;-1:-1:-1;2874:171:103:o;3050:408::-;;;3188:2;3176:9;3167:7;3163:23;3159:32;3156:2;;;3209:6;3201;3194:22;3156:2;3254:9;3241:23;3287:18;3279:6;3276:30;3273:2;;;3324:6;3316;3309:22;3273:2;3352:49;3393:7;3384:6;3373:9;3369:22;3352:49;:::i;:::-;3342:59;3448:2;3433:18;;;;3420:32;;-1:-1:-1;;;;3146:312:103:o;3463:299::-;;3605:2;3593:9;3584:7;3580:23;3576:32;3573:2;;;3626:6;3618;3611:22;3573:2;3663:9;3657:16;3702:1;3695:5;3692:12;3682:2;;3723:6;3715;3708:22;3767:1005;;3919:2;3907:9;3898:7;3894:23;3890:32;3887:2;;;3940:6;3932;3925:22;3887:2;3978:9;3972:16;4007:18;4048:2;4040:6;4037:14;4034:2;;;4069:6;4061;4054:22;4034:2;4097:22;;;;4153:4;4135:16;;;4131:27;4128:2;;;4176:6;4168;4161:22;4128:2;4207:21;4223:4;4207:21;:::i;:::-;4258:2;4252:9;4270:47;4309:7;4270:47;:::i;:::-;4340:7;4333:5;4326:22;;4394:2;4390;4386:11;4380:18;4375:2;4368:5;4364:14;4357:42;4445:2;4441;4437:11;4431:18;4426:2;4419:5;4415:14;4408:42;4489:2;4485;4481:11;4475:18;4518:2;4508:8;4505:16;4502:2;;;4539:6;4531;4524:22;4502:2;4580:55;4627:7;4616:8;4612:2;4608:17;4580:55;:::i;:::-;4575:2;4568:5;4564:14;4557:79;;4683:3;4679:2;4675:12;4669:19;4663:3;4656:5;4652:15;4645:44;4736:3;4732:2;4728:12;4722:19;4716:3;4709:5;4705:15;4698:44;4761:5;4751:15;;;;;3877:895;;;;:::o;4777:1224::-;;4924:2;4912:9;4903:7;4899:23;4895:32;4892:2;;;4945:6;4937;4930:22;4892:2;4983:9;4977:16;5012:18;5053:2;5045:6;5042:14;5039:2;;;5074:6;5066;5059:22;5039:2;5117:6;5106:9;5102:22;5092:32;;5143:6;5183:2;5178;5169:7;5165:16;5161:25;5158:2;;;5204:6;5196;5189:22;5158:2;5235:19;5251:2;5235:19;:::i;:::-;5222:32;;5283:2;5277:9;5270:5;5263:24;5333:2;5329;5325:11;5319:18;5314:2;5307:5;5303:14;5296:42;5384:2;5380;5376:11;5370:18;5365:2;5358:5;5354:14;5347:42;5421:56;5473:2;5469;5465:11;5421:56;:::i;:::-;5416:2;5409:5;5405:14;5398:80;5517:3;5513:2;5509:12;5503:19;5547:2;5537:8;5534:16;5531:2;;;5568:6;5560;5553:22;5531:2;5610:55;5657:7;5646:8;5642:2;5638:17;5610:55;:::i;:::-;5604:3;5593:15;;5586:80;-1:-1:-1;5713:3:103;5705:12;;;5699:19;5682:15;;;5675:44;5766:3;5758:12;;;5752:19;5735:15;;;5728:44;5819:3;5811:12;;;5805:19;5788:15;;;5781:44;5844:3;5885:11;;;5879:18;5863:14;;;5856:42;5917:3;5958:11;;;5952:18;5936:14;;;5929:42;;;;-1:-1:-1;5597:5:103;4882:1119;-1:-1:-1;;;4882:1119:103:o;6006:1502::-;;;6188:2;6176:9;6167:7;6163:23;6159:32;6156:2;;;6209:6;6201;6194:22;6156:2;6254:9;6241:23;6283:18;6324:2;6316:6;6313:14;6310:2;;;6345:6;6337;6330:22;6310:2;6388:6;6377:9;6373:22;6363:32;;6414:6;6454:2;6449;6440:7;6436:16;6432:25;6429:2;;;6475:6;6467;6460:22;6429:2;6506:19;6522:2;6506:19;:::i;:::-;6493:32;;6561:2;6548:16;6541:5;6534:31;6618:2;6614;6610:11;6597:25;6592:2;6585:5;6581:14;6574:49;6676:2;6672;6668:11;6655:25;6650:2;6643:5;6639:14;6632:49;6713:45;6754:2;6750;6746:11;6713:45;:::i;:::-;6708:2;6701:5;6697:14;6690:69;6805:3;6801:2;6797:12;6784:26;6835:2;6825:8;6822:16;6819:2;;;6856:6;6848;6841:22;6819:2;6898:44;6934:7;6923:8;6919:2;6915:17;6898:44;:::i;:::-;6892:3;6885:5;6881:15;6874:69;;6997:3;6993:2;6989:12;6976:26;6970:3;6963:5;6959:15;6952:51;7057:3;7053:2;7049:12;7036:26;7030:3;7023:5;7019:15;7012:51;7117:3;7113:2;7109:12;7096:26;7090:3;7083:5;7079:15;7072:51;7142:3;7198:2;7194;7190:11;7177:25;7172:2;7165:5;7161:14;7154:49;;7222:3;7278:2;7274;7270:11;7257:25;7252:2;7245:5;7241:14;7234:49;;7302:5;7292:15;;;7360:2;7349:9;7345:18;7332:32;7316:48;;7389:2;7379:8;7376:16;7373:2;;;7410:6;7402;7395:22;7373:2;;7438:64;7494:7;7483:8;7472:9;7468:24;7438:64;:::i;:::-;7428:74;;;6146:1362;;;;;:::o;7708:194::-;;7831:2;7819:9;7810:7;7806:23;7802:32;7799:2;;;7852:6;7844;7837:22;7799:2;-1:-1:-1;7880:16:103;;7789:113;-1:-1:-1;7789:113:103:o;7907:258::-;;;8036:2;8024:9;8015:7;8011:23;8007:32;8004:2;;;8057:6;8049;8042:22;8170:257;;8249:5;8243:12;8276:6;8271:3;8264:19;8292:63;8348:6;8341:4;8336:3;8332:14;8325:4;8318:5;8314:16;8292:63;:::i;:::-;8409:2;8388:15;-1:-1:-1;;8384:29:103;8375:39;;;;8416:4;8371:50;;8219:208;-1:-1:-1;;8219:208:103:o;8432:142::-;8515:1;8508:5;8505:12;8495:2;;8521:18;;:::i;:::-;8550;;8485:89::o;9239:385::-;-1:-1:-1;;;;;9442:32:103;;9424:51;;9511:2;9506;9491:18;;9484:30;;;9239:385;;9531:44;;9556:18;;9548:6;9531:44;:::i;:::-;9523:52;;9611:6;9606:2;9595:9;9591:18;9584:34;9414:210;;;;;;:::o;10816:250::-;10967:2;10952:18;;11000:1;10989:13;;10979:2;;11006:18;;:::i;:::-;11035:25;;;10934:132;:::o;11071:249::-;11221:2;11206:18;;11254:1;11243:13;;11233:2;;11260:18;;:::i;11325:219::-;;11474:2;11463:9;11456:21;11494:44;11534:2;11523:9;11519:18;11511:6;11494:44;:::i;11549:351::-;11751:2;11733:21;;;11790:2;11770:18;;;11763:30;11829:29;11824:2;11809:18;;11802:57;11891:2;11876:18;;11723:177::o;14619:354::-;14821:2;14803:21;;;14860:2;14840:18;;;14833:30;14899:32;14894:2;14879:18;;14872:60;14964:2;14949:18;;14793:180::o;14978:351::-;15180:2;15162:21;;;15219:2;15199:18;;;15192:30;15258:29;15253:2;15238:18;;15231:57;15320:2;15305:18;;15152:177::o;15334:1080::-;;15511:2;15500:9;15493:21;15556:6;15550:13;15545:2;15534:9;15530:18;15523:41;15618:2;15610:6;15606:15;15600:22;15595:2;15584:9;15580:18;15573:50;15677:2;15669:6;15665:15;15659:22;15654:2;15643:9;15639:18;15632:50;15729:2;15721:6;15717:15;15711:22;15742:62;15799:3;15788:9;15784:19;15770:12;15742:62;:::i;:::-;;15853:3;15845:6;15841:16;15835:23;15877:6;15920:2;15914:3;15903:9;15899:19;15892:31;15946:53;15994:3;15983:9;15979:19;15963:14;15946:53;:::i;:::-;15932:67;;16054:3;16046:6;16042:16;16036:23;16030:3;16019:9;16015:19;16008:52;16115:3;16107:6;16103:16;16097:23;16091:3;16080:9;16076:19;16069:52;16158:3;16150:6;16146:16;16140:23;16182:3;16221:2;16216;16205:9;16201:18;16194:30;16261:2;16253:6;16249:15;16243:22;16233:32;;;16284:3;16323:2;16318;16307:9;16303:18;16296:30;16380:2;16372:6;16368:15;16362:22;16357:2;16346:9;16342:18;16335:50;;;;16402:6;16394:14;;;15483:931;;;;:::o;18359:275::-;18430:2;18424:9;18495:2;18476:13;;-1:-1:-1;;18472:27:103;18460:40;;18530:18;18515:34;;18551:22;;;18512:62;18509:2;;;18577:18;;:::i;:::-;18613:2;18606:22;18404:230;;-1:-1:-1;18404:230:103:o;18639:186::-;;18720:18;18712:6;18709:30;18706:2;;;18742:18;;:::i;:::-;-1:-1:-1;18808:2:103;18787:15;-1:-1:-1;;18783:29:103;18814:4;18779:40;;18696:129::o;18830:128::-;;18901:1;18897:6;18894:1;18891:13;18888:2;;;18907:18;;:::i;:::-;-1:-1:-1;18943:9:103;;18878:80::o;18963:125::-;;19031:1;19028;19025:8;19022:2;;;19036:18;;:::i;:::-;-1:-1:-1;19073:9:103;;19012:76::o;19093:258::-;19165:1;19175:113;19189:6;19186:1;19183:13;19175:113;;;19265:11;;;19259:18;19246:11;;;19239:39;19211:2;19204:10;19175:113;;;19306:6;19303:1;19300:13;19297:2;;;-1:-1:-1;;19341:1:103;19323:16;;19316:27;19146:205::o;19356:135::-;;-1:-1:-1;;19416:17:103;;19413:2;;;19436:18;;:::i;:::-;-1:-1:-1;19483:1:103;19472:13;;19403:88::o;19496:201::-;;19562:10;19607:2;19600:5;19596:14;19634:2;19625:7;19622:15;19619:2;;;19640:18;;:::i;:::-;19689:1;19676:15;;19542:155;-1:-1:-1;;;19542:155:103:o;19702:209::-;;19760:1;19750:2;;-1:-1:-1;;;19785:31:103;;19839:4;19836:1;19829:15;19867:4;19792:1;19857:15;19750:2;-1:-1:-1;19896:9:103;;19740:171::o;19916:127::-;19977:10;19972:3;19968:20;19965:1;19958:31;20008:4;20005:1;19998:15;20032:4;20029:1;20022:15;20048:127;20109:10;20104:3;20100:20;20097:1;20090:31;20140:4;20137:1;20130:15;20164:4;20161:1;20154:15;20180:127;20241:10;20236:3;20232:20;20229:1;20222:31;20272:4;20269:1;20262:15;20296:4;20293:1;20286:15;20312:131;-1:-1:-1;;;;;20387:31:103;;20377:42;;20367:2;;20433:1;20430;20423:12;20448:115;20537:1;20530:5;20527:12;20517:2;;20553:1;20550;20543:12"},"methodIdentifiers":{"DEFAULT_FILTER_DATA_STRUCTURE()":"7893c7bc","FULL_COLLATERALIZATION_LEVEL()":"45fe1c6d","SUM_OF_SUM_INSURED_CAP()":"be61e91e","activeBundles()":"4101b90c","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","bundleMatchesApplication((uint256,uint256,uint256,uint8,bytes,uint256,uint256,uint256,uint256,uint256),(uint8,uint256,uint256,bytes,uint256,uint256))":"86c71288","bundles()":"18442e63","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(bytes32,uint256)":"890fbf78","createBundle(bytes,uint256)":"7888a2ff","declineCallback()":"bd1fe5d0","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","getActiveBundleId(uint256)":"0676cb0e","getBalance()":"12065fe0","getBundle(uint256)":"2d0821b7","getCapacity()":"c40000d4","getCapital()":"e0032383","getCollateralizationLevel()":"54afef63","getErc20Token()":"feb1824b","getFilterDataStructure()":"3dcdde17","getFullCollateralizationLevel()":"f1d354d0","getId()":"5d1ca631","getMaximumNumberOfActiveBundles()":"7f3b6980","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getSumOfSumInsuredCap()":"a18aa128","getTotalValueLocked()":"b26025aa","getType()":"15dae03e","getWallet()":"13299604","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","lockBundle(uint256)":"a17030d5","owner()":"8da5cb5b","pauseCallback()":"d73cd992","processPolicyPayout(bytes32,uint256)":"82558906","processPolicyPremium(bytes32,uint256)":"3629c3c4","proposalCallback()":"638ce0ba","releasePolicy(bytes32)":"c3004c86","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","setMaximumNumberOfActiveBundles(uint256)":"652028e5","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unlockBundle(uint256)":"316c5348","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralization\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"activeBundles\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolBundlesAndPolicies\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolCandidateBundleAmountCheck\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolBundleMatchesPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolCollateralLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolAddress\",\"type\":\"address\"}],\"name\":\"LogRiskpoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_FILTER_DATA_STRUCTURE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_COLLATERALIZATION_LEVEL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUM_OF_SUM_INSURED_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"name\":\"bundleMatchesApplication\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialAmount\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getErc20Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFilterDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSumOfSumInsuredCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestRiskpool.sol\":\"TestRiskpool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\":{\"keccak256\":\"0xb86d781f945942220e37e1903420537fa3ad5539c0f341c4cccdfb1b11d196ee\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bb61f5c4724bcf6ece000fa46359dfabd60a91e82b8e637bf27e3028119047c\",\"dweb:/ipfs/QmWJ5zhmwCSKemq6PKhddWbbiEMsVVS9abCz5tU6s7b8f3\"]},\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Riskpool.sol\":{\"keccak256\":\"0x627c05cef03e42f2b798004db6d000d574c0edc383d185952592425895ada20e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d20ecfaf1ed6c983cd81482d982373b8d4d00f6cbe6ed0e67e78255e71c7ac86\",\"dweb:/ipfs/QmdwKC99b54yMa3rKJdwD4RjcbLgX6hkLV6SYjfgFbLi5T\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/test/TestRiskpool.sol\":{\"keccak256\":\"0xf53ae63047a001a3a973d0b6c60b6fa4b6ca7a1fb561eb7f55044367fa9f6211\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0e0f3b6068d7c66f5532b353f7a0a38c44354743bcdb4a4ee6e1b1e3d110d3fe\",\"dweb:/ipfs/Qmc8R6z3vvXkYmicCUVBEznLJDwFSQkPN8o3JLtu3X6FVk\"]}},\"version\":1}"}},"contracts/test/TestTransferFrom.sol":{"TestTransferFrom":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"callSuccess","type":"bool"},{"indexed":false,"internalType":"uint256","name":"returnDataLength","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"LogTransferHelperCallFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tokenIsContract","type":"bool"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"LogTransferHelperInputValidation1Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allowance","type":"uint256"}],"name":"LogTransferHelperInputValidation2Failed","type":"event"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unifiedTransferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b506104f1806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806386aa75d714610030575b600080fd5b61004361003e3660046103ac565b610057565b604051901515815260200160405180910390f35b600061006585858585610070565b90505b949350505050565b6000846001600160a01b038082163b1515908616158061009757506001600160a01b038516155b806100a0575080155b156100fb576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a1600092505050610068565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561014057600080fd5b505afa158015610154573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017891906103fc565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156101c557600080fd5b505afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906103fc565b90508582108061020c57508581105b156102575760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a16000945050505050610068565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916102bb9190610414565b6000604051808303816000865af19150503d80600081146102f8576040519150601f19603f3d011682016040523d82523d6000602084013e6102fd565b606091505b50915091508180156103335750805115806103335750805160201480156103335750808060200190518101906103339190610385565b965086610377577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161036e93929190610430565b60405180910390a15b505050505050949350505050565b600060208284031215610396578081fd5b815180151581146103a5578182fd5b9392505050565b600080600080608085870312156103c1578283fd5b84356103cc816104a3565b935060208501356103dc816104a3565b925060408501356103ec816104a3565b9396929550929360600135925050565b60006020828403121561040d578081fd5b5051919050565b60008251610426818460208701610473565b9190910192915050565b6000841515825283602083015260606040830152825180606084015261045d816080850160208701610473565b601f01601f191691909101608001949350505050565b60005b8381101561048e578181015183820152602001610476565b8381111561049d576000848401525b50505050565b6001600160a01b03811681146104b857600080fd5b5056fea26469706673582212204cd47de7139602c38bd878e742df2f0bda2fca7a0fe902f95fd7daa762c597cd64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F1 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x86AA75D7 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x57 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x65 DUP6 DUP6 DUP6 DUP6 PUSH2 0x70 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x97 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0xA0 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xFB JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x154 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x20C JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x257 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x68 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP11 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP14 AND SWAP2 PUSH2 0x2BB SWAP2 SWAP1 PUSH2 0x414 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2F8 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x333 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x333 JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x333 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x385 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x377 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x36E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x430 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x396 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3A5 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3C1 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3CC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3DC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x3EC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40D JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x426 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x473 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 MLOAD DUP1 PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x45D DUP2 PUSH1 0x80 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x473 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x80 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x48E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x476 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x49D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C 0xD4 PUSH30 0xE7139602C38BD878E742DF2F0BDA2FCA7A0FE902F95FD7DAA762C597CD64 PUSH20 0x6F6C634300080200330000000000000000000000 ","sourceMap":"168:596:100:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4090:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"92:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"138:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"155:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"140:6:103"},"nodeType":"YulFunctionCall","src":"140:22:103"},"nodeType":"YulExpressionStatement","src":"140:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"113:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"122:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"109:3:103"},"nodeType":"YulFunctionCall","src":"109:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"134:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"105:3:103"},"nodeType":"YulFunctionCall","src":"105:32:103"},"nodeType":"YulIf","src":"102:2:103"},{"nodeType":"YulVariableDeclaration","src":"173:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"192:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"186:5:103"},"nodeType":"YulFunctionCall","src":"186:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"177:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"255:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"264:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"272:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"257:6:103"},"nodeType":"YulFunctionCall","src":"257:22:103"},"nodeType":"YulExpressionStatement","src":"257:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"224:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"245:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"238:6:103"},"nodeType":"YulFunctionCall","src":"238:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"231:6:103"},"nodeType":"YulFunctionCall","src":"231:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"221:2:103"},"nodeType":"YulFunctionCall","src":"221:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"214:6:103"},"nodeType":"YulFunctionCall","src":"214:40:103"},"nodeType":"YulIf","src":"211:2:103"},{"nodeType":"YulAssignment","src":"290:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"300:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"290:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"58:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"69:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"81:6:103","type":""}],"src":"14:297:103"},{"body":{"nodeType":"YulBlock","src":"452:487:103","statements":[{"body":{"nodeType":"YulBlock","src":"499:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"508:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"516:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"501:6:103"},"nodeType":"YulFunctionCall","src":"501:22:103"},"nodeType":"YulExpressionStatement","src":"501:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"473:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"482:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"469:3:103"},"nodeType":"YulFunctionCall","src":"469:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"494:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"465:3:103"},"nodeType":"YulFunctionCall","src":"465:33:103"},"nodeType":"YulIf","src":"462:2:103"},{"nodeType":"YulVariableDeclaration","src":"534:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"560:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"547:12:103"},"nodeType":"YulFunctionCall","src":"547:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"538:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"604:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"579:24:103"},"nodeType":"YulFunctionCall","src":"579:31:103"},"nodeType":"YulExpressionStatement","src":"579:31:103"},{"nodeType":"YulAssignment","src":"619:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"629:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"619:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"643:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"686:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"671:3:103"},"nodeType":"YulFunctionCall","src":"671:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"658:12:103"},"nodeType":"YulFunctionCall","src":"658:32:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"647:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"724:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"699:24:103"},"nodeType":"YulFunctionCall","src":"699:33:103"},"nodeType":"YulExpressionStatement","src":"699:33:103"},{"nodeType":"YulAssignment","src":"741:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"751:7:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"741:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"767:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"810:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"795:3:103"},"nodeType":"YulFunctionCall","src":"795:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"782:12:103"},"nodeType":"YulFunctionCall","src":"782:32:103"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"771:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"848:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"823:24:103"},"nodeType":"YulFunctionCall","src":"823:33:103"},"nodeType":"YulExpressionStatement","src":"823:33:103"},{"nodeType":"YulAssignment","src":"865:17:103","value":{"name":"value_2","nodeType":"YulIdentifier","src":"875:7:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"865:6:103"}]},{"nodeType":"YulAssignment","src":"891:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"918:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"929:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"914:3:103"},"nodeType":"YulFunctionCall","src":"914:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"901:12:103"},"nodeType":"YulFunctionCall","src":"901:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"891:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$8831t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"394:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"405:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"417:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"425:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"433:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"441:6:103","type":""}],"src":"316:623:103"},{"body":{"nodeType":"YulBlock","src":"1025:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"1071:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1080:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1088:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1073:6:103"},"nodeType":"YulFunctionCall","src":"1073:22:103"},"nodeType":"YulExpressionStatement","src":"1073:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1046:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1042:3:103"},"nodeType":"YulFunctionCall","src":"1042:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1067:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1038:3:103"},"nodeType":"YulFunctionCall","src":"1038:32:103"},"nodeType":"YulIf","src":"1035:2:103"},{"nodeType":"YulAssignment","src":"1106:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1122:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1116:5:103"},"nodeType":"YulFunctionCall","src":"1116:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1106:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"991:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1002:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1014:6:103","type":""}],"src":"944:194:103"},{"body":{"nodeType":"YulBlock","src":"1280:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1290:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1310:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1304:5:103"},"nodeType":"YulFunctionCall","src":"1304:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1294:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1352:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1360:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1348:3:103"},"nodeType":"YulFunctionCall","src":"1348:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"1367:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1372:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1326:21:103"},"nodeType":"YulFunctionCall","src":"1326:53:103"},"nodeType":"YulExpressionStatement","src":"1326:53:103"},{"nodeType":"YulAssignment","src":"1388:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1399:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1404:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1395:3:103"},"nodeType":"YulFunctionCall","src":"1395:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1388:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"1256:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1261:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1272:3:103","type":""}],"src":"1143:274:103"},{"body":{"nodeType":"YulBlock","src":"1523:102:103","statements":[{"nodeType":"YulAssignment","src":"1533:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1545:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1556:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1541:3:103"},"nodeType":"YulFunctionCall","src":"1541:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1533:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1575:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1590:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1606:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1611:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1602:3:103"},"nodeType":"YulFunctionCall","src":"1602:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1615:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1598:3:103"},"nodeType":"YulFunctionCall","src":"1598:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1586:3:103"},"nodeType":"YulFunctionCall","src":"1586:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1568:6:103"},"nodeType":"YulFunctionCall","src":"1568:51:103"},"nodeType":"YulExpressionStatement","src":"1568:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1492:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1503:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1514:4:103","type":""}],"src":"1422:203:103"},{"body":{"nodeType":"YulBlock","src":"1759:175:103","statements":[{"nodeType":"YulAssignment","src":"1769:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1792:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1777:3:103"},"nodeType":"YulFunctionCall","src":"1777:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1769:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"1804:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1822:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1827:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1818:3:103"},"nodeType":"YulFunctionCall","src":"1818:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1831:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1814:3:103"},"nodeType":"YulFunctionCall","src":"1814:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1808:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1849:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1864:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1872:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1842:6:103"},"nodeType":"YulFunctionCall","src":"1842:34:103"},"nodeType":"YulExpressionStatement","src":"1842:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1896:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1907:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1892:3:103"},"nodeType":"YulFunctionCall","src":"1892:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1916:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1924:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1912:3:103"},"nodeType":"YulFunctionCall","src":"1912:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1885:6:103"},"nodeType":"YulFunctionCall","src":"1885:43:103"},"nodeType":"YulExpressionStatement","src":"1885:43:103"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1720:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1731:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1739:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1750:4:103","type":""}],"src":"1630:304:103"},{"body":{"nodeType":"YulBlock","src":"2096:218:103","statements":[{"nodeType":"YulAssignment","src":"2106:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2118:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2129:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2114:3:103"},"nodeType":"YulFunctionCall","src":"2114:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2106:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"2141:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2159:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2164:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2155:3:103"},"nodeType":"YulFunctionCall","src":"2155:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2168:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2151:3:103"},"nodeType":"YulFunctionCall","src":"2151:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2145:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2186:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2201:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2209:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2197:3:103"},"nodeType":"YulFunctionCall","src":"2197:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2179:6:103"},"nodeType":"YulFunctionCall","src":"2179:34:103"},"nodeType":"YulExpressionStatement","src":"2179:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2233:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2244:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2229:3:103"},"nodeType":"YulFunctionCall","src":"2229:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2253:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2261:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2249:3:103"},"nodeType":"YulFunctionCall","src":"2249:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2222:6:103"},"nodeType":"YulFunctionCall","src":"2222:43:103"},"nodeType":"YulExpressionStatement","src":"2222:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2285:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2296:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2281:3:103"},"nodeType":"YulFunctionCall","src":"2281:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2301:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2274:6:103"},"nodeType":"YulFunctionCall","src":"2274:34:103"},"nodeType":"YulExpressionStatement","src":"2274:34:103"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2049:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2060:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2068:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2076:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2087:4:103","type":""}],"src":"1939:375:103"},{"body":{"nodeType":"YulBlock","src":"2414:92:103","statements":[{"nodeType":"YulAssignment","src":"2424:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2447:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2432:3:103"},"nodeType":"YulFunctionCall","src":"2432:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2424:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2466:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2491:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2484:6:103"},"nodeType":"YulFunctionCall","src":"2484:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2477:6:103"},"nodeType":"YulFunctionCall","src":"2477:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2459:6:103"},"nodeType":"YulFunctionCall","src":"2459:41:103"},"nodeType":"YulExpressionStatement","src":"2459:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2383:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2394:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2405:4:103","type":""}],"src":"2319:187:103"},{"body":{"nodeType":"YulBlock","src":"2662:234:103","statements":[{"nodeType":"YulAssignment","src":"2672:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2684:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2695:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2680:3:103"},"nodeType":"YulFunctionCall","src":"2680:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2672:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2714:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2739:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2732:6:103"},"nodeType":"YulFunctionCall","src":"2732:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2725:6:103"},"nodeType":"YulFunctionCall","src":"2725:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2707:6:103"},"nodeType":"YulFunctionCall","src":"2707:41:103"},"nodeType":"YulExpressionStatement","src":"2707:41:103"},{"nodeType":"YulVariableDeclaration","src":"2757:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2775:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2780:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2771:3:103"},"nodeType":"YulFunctionCall","src":"2771:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2784:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2767:3:103"},"nodeType":"YulFunctionCall","src":"2767:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2761:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2806:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2817:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2802:3:103"},"nodeType":"YulFunctionCall","src":"2802:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2826:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2834:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2822:3:103"},"nodeType":"YulFunctionCall","src":"2822:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2795:6:103"},"nodeType":"YulFunctionCall","src":"2795:43:103"},"nodeType":"YulExpressionStatement","src":"2795:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2858:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2869:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2854:3:103"},"nodeType":"YulFunctionCall","src":"2854:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2878:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2886:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2874:3:103"},"nodeType":"YulFunctionCall","src":"2874:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2847:6:103"},"nodeType":"YulFunctionCall","src":"2847:43:103"},"nodeType":"YulExpressionStatement","src":"2847:43:103"}]},"name":"abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2615:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2626:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2634:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2642:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2653:4:103","type":""}],"src":"2511:385:103"},{"body":{"nodeType":"YulBlock","src":"3070:366:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3087:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3112:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3105:6:103"},"nodeType":"YulFunctionCall","src":"3105:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3098:6:103"},"nodeType":"YulFunctionCall","src":"3098:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3080:6:103"},"nodeType":"YulFunctionCall","src":"3080:41:103"},"nodeType":"YulExpressionStatement","src":"3080:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3152:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3137:3:103"},"nodeType":"YulFunctionCall","src":"3137:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3157:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3130:6:103"},"nodeType":"YulFunctionCall","src":"3130:34:103"},"nodeType":"YulExpressionStatement","src":"3130:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3184:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3195:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3180:3:103"},"nodeType":"YulFunctionCall","src":"3180:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3200:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3173:6:103"},"nodeType":"YulFunctionCall","src":"3173:30:103"},"nodeType":"YulExpressionStatement","src":"3173:30:103"},{"nodeType":"YulVariableDeclaration","src":"3212:27:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3232:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3226:5:103"},"nodeType":"YulFunctionCall","src":"3226:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3216:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3259:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3270:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3255:3:103"},"nodeType":"YulFunctionCall","src":"3255:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"3275:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3248:6:103"},"nodeType":"YulFunctionCall","src":"3248:34:103"},"nodeType":"YulExpressionStatement","src":"3248:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3317:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3325:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3313:3:103"},"nodeType":"YulFunctionCall","src":"3313:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3334:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3345:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3330:3:103"},"nodeType":"YulFunctionCall","src":"3330:19:103"},{"name":"length","nodeType":"YulIdentifier","src":"3351:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3291:21:103"},"nodeType":"YulFunctionCall","src":"3291:67:103"},"nodeType":"YulExpressionStatement","src":"3291:67:103"},{"nodeType":"YulAssignment","src":"3367:63:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3383:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3402:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3410:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3398:3:103"},"nodeType":"YulFunctionCall","src":"3398:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3419:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3415:3:103"},"nodeType":"YulFunctionCall","src":"3415:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3394:3:103"},"nodeType":"YulFunctionCall","src":"3394:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3379:3:103"},"nodeType":"YulFunctionCall","src":"3379:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"3426:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3375:3:103"},"nodeType":"YulFunctionCall","src":"3375:55:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3367:4:103"}]}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3023:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3034:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3042:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3050:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3061:4:103","type":""}],"src":"2901:535:103"},{"body":{"nodeType":"YulBlock","src":"3570:119:103","statements":[{"nodeType":"YulAssignment","src":"3580:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3603:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3588:3:103"},"nodeType":"YulFunctionCall","src":"3588:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3580:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3622:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3633:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3615:6:103"},"nodeType":"YulFunctionCall","src":"3615:25:103"},"nodeType":"YulExpressionStatement","src":"3615:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3660:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3671:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3656:3:103"},"nodeType":"YulFunctionCall","src":"3656:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3676:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3649:6:103"},"nodeType":"YulFunctionCall","src":"3649:34:103"},"nodeType":"YulExpressionStatement","src":"3649:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3531:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3542:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3550:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3561:4:103","type":""}],"src":"3441:248:103"},{"body":{"nodeType":"YulBlock","src":"3747:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3757:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3766:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3761:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3826:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3851:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3856:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3847:3:103"},"nodeType":"YulFunctionCall","src":"3847:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3870:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3875:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3866:3:103"},"nodeType":"YulFunctionCall","src":"3866:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3860:5:103"},"nodeType":"YulFunctionCall","src":"3860:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3840:6:103"},"nodeType":"YulFunctionCall","src":"3840:39:103"},"nodeType":"YulExpressionStatement","src":"3840:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3787:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3790:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3784:2:103"},"nodeType":"YulFunctionCall","src":"3784:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3798:19:103","statements":[{"nodeType":"YulAssignment","src":"3800:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3809:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"3812:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3805:3:103"},"nodeType":"YulFunctionCall","src":"3805:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3800:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"3780:3:103","statements":[]},"src":"3776:113:103"},{"body":{"nodeType":"YulBlock","src":"3915:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3928:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3933:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3924:3:103"},"nodeType":"YulFunctionCall","src":"3924:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3942:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3917:6:103"},"nodeType":"YulFunctionCall","src":"3917:27:103"},"nodeType":"YulExpressionStatement","src":"3917:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3904:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3907:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3901:2:103"},"nodeType":"YulFunctionCall","src":"3901:13:103"},"nodeType":"YulIf","src":"3898:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3725:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"3730:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"3735:6:103","type":""}],"src":"3694:258:103"},{"body":{"nodeType":"YulBlock","src":"4002:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"4066:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4075:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4078:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4068:6:103"},"nodeType":"YulFunctionCall","src":"4068:12:103"},"nodeType":"YulExpressionStatement","src":"4068:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4025:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4036:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4051:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4056:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4047:3:103"},"nodeType":"YulFunctionCall","src":"4047:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4060:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4043:3:103"},"nodeType":"YulFunctionCall","src":"4043:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4032:3:103"},"nodeType":"YulFunctionCall","src":"4032:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4022:2:103"},"nodeType":"YulFunctionCall","src":"4022:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4015:6:103"},"nodeType":"YulFunctionCall","src":"4015:50:103"},"nodeType":"YulIf","src":"4012:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3991:5:103","type":""}],"src":"3957:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_contract$_IERC20_$8831t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let value_2 := calldataload(add(headStart, 64))\n validator_revert_address(value_2)\n value2 := value_2\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n let length := mload(value2)\n mstore(add(headStart, 96), length)\n copy_memory_to_memory(add(value2, 32), add(headStart, 128), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 128)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c806386aa75d714610030575b600080fd5b61004361003e3660046103ac565b610057565b604051901515815260200160405180910390f35b600061006585858585610070565b90505b949350505050565b6000846001600160a01b038082163b1515908616158061009757506001600160a01b038516155b806100a0575080155b156100fb576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a1600092505050610068565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561014057600080fd5b505afa158015610154573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017891906103fc565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156101c557600080fd5b505afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906103fc565b90508582108061020c57508581105b156102575760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a16000945050505050610068565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916102bb9190610414565b6000604051808303816000865af19150503d80600081146102f8576040519150601f19603f3d011682016040523d82523d6000602084013e6102fd565b606091505b50915091508180156103335750805115806103335750805160201480156103335750808060200190518101906103339190610385565b965086610377577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161036e93929190610430565b60405180910390a15b505050505050949350505050565b600060208284031215610396578081fd5b815180151581146103a5578182fd5b9392505050565b600080600080608085870312156103c1578283fd5b84356103cc816104a3565b935060208501356103dc816104a3565b925060408501356103ec816104a3565b9396929550929360600135925050565b60006020828403121561040d578081fd5b5051919050565b60008251610426818460208701610473565b9190910192915050565b6000841515825283602083015260606040830152825180606084015261045d816080850160208701610473565b601f01601f191691909101608001949350505050565b60005b8381101561048e578181015183820152602001610476565b8381111561049d576000848401525b50505050565b6001600160a01b03811681146104b857600080fd5b5056fea26469706673582212204cd47de7139602c38bd878e742df2f0bda2fca7a0fe902f95fd7daa762c597cd64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x86AA75D7 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x57 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x65 DUP6 DUP6 DUP6 DUP6 PUSH2 0x70 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x97 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0xA0 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xFB JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x154 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x20C JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x257 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x68 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP11 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP14 AND SWAP2 PUSH2 0x2BB SWAP2 SWAP1 PUSH2 0x414 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2F8 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x333 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x333 JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x333 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x385 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x377 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x36E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x430 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x396 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3A5 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3C1 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3CC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3DC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x3EC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40D JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x426 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x473 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 MLOAD DUP1 PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x45D DUP2 PUSH1 0x80 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x473 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x80 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x48E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x476 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x49D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C 0xD4 PUSH30 0xE7139602C38BD878E742DF2F0BDA2FCA7A0FE902F95FD7DAA762C597CD64 PUSH20 0x6F6C634300080200330000000000000000000000 ","sourceMap":"168:596:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;495:264;;;;;;:::i;:::-;;:::i;:::-;;;2484:14:103;;2477:22;2459:41;;2447:2;2432:18;495:264:100;;;;;;;;663:4;692:59;727:5;734:4;740:2;744:6;692:34;:59::i;:::-;685:66;;495:264;;;;;;;:::o;913:1422:90:-;1068:12;1162:5;-1:-1:-1;;;;;1202:24:90;;;;:28;;;1245:18;;;;:39;;-1:-1:-1;;;;;;1267:17:90;;;1245:39;:59;;;;1289:15;1288:16;1245:59;1241:187;;;1325:66;;;2732:14:103;;2725:22;2707:41;;-1:-1:-1;;;;;2822:15:103;;;2817:2;2802:18;;2795:43;2874:15;;2854:18;;;2847:43;1325:66:90;;;;;;;2695:2:103;1325:66:90;;;1412:5;1405:12;;;;;;1241:187;1499:21;;-1:-1:-1;;;1499:21:90;;-1:-1:-1;;;;;1586:32:103;;;1499:21:90;;;1568:51:103;1481:15:90;;1499;;;;;;1541:18:103;;1499:21:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1550:36;;-1:-1:-1;;;1550:36:90;;-1:-1:-1;;;;;1860:15:103;;;1550:36:90;;;1842:34:103;1580:4:90;1892:18:103;;;1885:43;1481:39:90;;-1:-1:-1;1530:17:90;;1550:15;;;;;1777:18:103;;1550:36:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1530:56;;1610:5;1600:7;:15;:36;;;;1631:5;1619:9;:17;1600:36;1596:157;;;1657:59;;;3615:25:103;;;3671:2;3656:18;;3649:34;;;1657:59:90;;3588:18:103;1657:59:90;;;;;;;1737:5;1730:12;;;;;;;;1596:157;1956:119;;;-1:-1:-1;;;;;2197:15:103;;;1956:119:90;;;2179:34:103;2249:15;;;2229:18;;;2222:43;2281:18;;;;2274:34;;;1956:119:90;;;;;;;;;;2114:18:103;;;;1956:119:90;;;;;;;-1:-1:-1;;;;;1956:119:90;-1:-1:-1;;;1956:119:90;;;1923:153;;-1:-1:-1;;;;1923:19:90;;;;:153;;1956:119;1923:153;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1883:193;;;;2097:11;:118;;;;-1:-1:-1;2134:11:90;;:16;2113:101;;;;2168:4;:11;2183:2;2168:17;:45;;;;;2200:4;2189:24;;;;;;;;;;;;:::i;:::-;2087:128;;2231:7;2226:103;;2259:59;2287:11;2300:4;:11;2313:4;2259:59;;;;;;;;:::i;:::-;;;;;;;;2226:103;913:1422;;;;;;;;;;;;:::o;14:297:103:-;;134:2;122:9;113:7;109:23;105:32;102:2;;;155:6;147;140:22;102:2;192:9;186:16;245:5;238:13;231:21;224:5;221:32;211:2;;272:6;264;257:22;211:2;300:5;92:219;-1:-1:-1;;;92:219:103:o;316:623::-;;;;;494:3;482:9;473:7;469:23;465:33;462:2;;;516:6;508;501:22;462:2;560:9;547:23;579:31;604:5;579:31;:::i;:::-;629:5;-1:-1:-1;686:2:103;671:18;;658:32;699:33;658:32;699:33;:::i;:::-;751:7;-1:-1:-1;810:2:103;795:18;;782:32;823:33;782:32;823:33;:::i;:::-;452:487;;;;-1:-1:-1;875:7:103;;929:2;914:18;901:32;;-1:-1:-1;;452:487:103:o;944:194::-;;1067:2;1055:9;1046:7;1042:23;1038:32;1035:2;;;1088:6;1080;1073:22;1035:2;-1:-1:-1;1116:16:103;;1025:113;-1:-1:-1;1025:113:103:o;1143:274::-;;1310:6;1304:13;1326:53;1372:6;1367:3;1360:4;1352:6;1348:17;1326:53;:::i;:::-;1395:16;;;;;1280:137;-1:-1:-1;;1280:137:103:o;2901:535::-;;3112:6;3105:14;3098:22;3087:9;3080:41;3157:6;3152:2;3141:9;3137:18;3130:34;3200:2;3195;3184:9;3180:18;3173:30;3232:6;3226:13;3275:6;3270:2;3259:9;3255:18;3248:34;3291:67;3351:6;3345:3;3334:9;3330:19;3325:2;3317:6;3313:15;3291:67;:::i;:::-;3419:2;3398:15;-1:-1:-1;;3394:29:103;3379:45;;;;3426:3;3375:55;;3070:366;-1:-1:-1;;;;3070:366:103:o;3694:258::-;3766:1;3776:113;3790:6;3787:1;3784:13;3776:113;;;3866:11;;;3860:18;3847:11;;;3840:39;3812:2;3805:10;3776:113;;;3907:6;3904:1;3901:13;3898:2;;;3942:1;3933:6;3928:3;3924:16;3917:27;3898:2;;3747:205;;;:::o;3957:131::-;-1:-1:-1;;;;;4032:31:103;;4022:42;;4012:2;;4078:1;4075;4068:12;4012:2;4002:86;:::o"},"methodIdentifiers":{"unifiedTransferFrom(address,address,address,uint256)":"86aa75d7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callSuccess\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"returnDataLength\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"LogTransferHelperCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"tokenIsContract\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"LogTransferHelperInputValidation1Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"}],\"name\":\"LogTransferHelperInputValidation2Failed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unifiedTransferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestTransferFrom.sol\":\"TestTransferFrom\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/test/TestTransferFrom.sol\":{\"keccak256\":\"0x1e2c2d198517b5107ef8d17de8fb14d4d713f74db5c97e5a8dc8820264233c95\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://13b86cc3053b716c6bf6613d3871980e975d74e0369595045c33799abf6a8008\",\"dweb:/ipfs/QmYrHj7hYaotpF4XocFxSg9Npkr1sRXaaxNubbXsztWoJV\"]}},\"version\":1}"}},"contracts/tokens/BundleToken.sol":{"BundleToken":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"LogBundleTokenBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"address","name":"tokenOwner","type":"address"}],"name":"LogBundleTokenMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bundleIdForTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burned","outputs":[{"internalType":"bool","name":"isBurned","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getBundleId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBundleModuleAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"bundleModule","type":"address"}],"name":"setBundleModule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"tokenCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:396:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"69:325:103","statements":[{"nodeType":"YulAssignment","src":"79:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"93:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"99:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"89:3:103"},"nodeType":"YulFunctionCall","src":"89:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"79:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"110:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"140:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"146:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"136:3:103"},"nodeType":"YulFunctionCall","src":"136:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"114:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"187:31:103","statements":[{"nodeType":"YulAssignment","src":"189:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"203:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"211:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"199:3:103"},"nodeType":"YulFunctionCall","src":"199:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"189:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"167:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"160:6:103"},"nodeType":"YulFunctionCall","src":"160:26:103"},"nodeType":"YulIf","src":"157:2:103"},{"body":{"nodeType":"YulBlock","src":"277:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"298:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"305:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"310:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"301:3:103"},"nodeType":"YulFunctionCall","src":"301:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"291:6:103"},"nodeType":"YulFunctionCall","src":"291:31:103"},"nodeType":"YulExpressionStatement","src":"291:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"342:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"345:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"335:6:103"},"nodeType":"YulFunctionCall","src":"335:15:103"},"nodeType":"YulExpressionStatement","src":"335:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"370:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"373:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"363:6:103"},"nodeType":"YulFunctionCall","src":"363:15:103"},"nodeType":"YulExpressionStatement","src":"363:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"233:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"256:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"264:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"253:2:103"},"nodeType":"YulFunctionCall","src":"253:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"230:2:103"},"nodeType":"YulFunctionCall","src":"230:38:103"},"nodeType":"YulIf","src":"227:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"49:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"58:6:103","type":""}],"src":"14:380:103"}]},"contents":"{\n { }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604080518082018252601081526f23a4a310213ab7323632902a37b5b2b760811b60208083019182528351808501909452600384526242544b60e81b9084015281519192916200006591600091620000f4565b5080516200007b906001906020840190620000f4565b50505062000098620000926200009e60201b60201c565b620000a2565b620001d7565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b82805462000102906200019a565b90600052602060002090601f01602090048101928262000126576000855562000171565b82601f106200014157805160ff191683800117855562000171565b8280016001018555821562000171579182015b828111156200017157825182559160200191906001019062000154565b506200017f92915062000183565b5090565b5b808211156200017f576000815560010162000184565b600281046001821680620001af57607f821691505b60208210811415620001d157634e487b7160e01b600052602260045260246000fd5b50919050565b611aa580620001e76000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636ae9d6e8116100f9578063a38b714c11610097578063c87b56dd11610071578063c87b56dd146103b2578063e985e9c5146103c5578063f2fde38b14610401578063f76f8d7814610414576101a9565b8063a38b714c1461035d578063a3f4df7e14610370578063b88d4fde1461039f576101a9565b80638da5cb5b116100d35780638da5cb5b1461031e57806394bf804d1461032f57806395d89b4114610342578063a22cb4651461034a576101a9565b80636ae9d6e8146102e357806370a0823114610303578063715018a614610316576101a9565b806323b872dd1161016657806342966c681161014057806342966c68146102965780634f558e79146102a95780636352211e146102bf5780636ae73384146102d2576101a9565b806323b872dd1461025057806329a630831461026357806342842e0e14610283576101a9565b806301ffc9a7146101ae57806306fdde03146101d6578063081812fc146101eb578063095ea7b31461021657806318160ddd1461022b57806323250cae1461023d575b600080fd5b6101c16101bc366004611781565b610436565b60405190151581526020015b60405180910390f35b6101de61048a565b6040516101cd919061188b565b6101fe6101f93660046117b9565b61051c565b6040516001600160a01b0390911681526020016101cd565b610229610224366004611758565b610543565b005b6009545b6040519081526020016101cd565b6101c161024b3660046117b9565b61065e565b61022961025e36600461160e565b61068a565b61022f6102713660046117b9565b60009081526007602052604090205490565b61022961029136600461160e565b6106bb565b6102296102a43660046117b9565b6106d6565b6101c16102b73660046117b9565b600954101590565b6101fe6102cd3660046117b9565b61084a565b6008546001600160a01b03166101fe565b61022f6102f13660046117b9565b60076020526000908152604090205481565b61022f6103113660046115c2565b6108aa565b610229610930565b6006546001600160a01b03166101fe565b61022f61033d3660046117d1565b610944565b6101de610a85565b61022961035836600461171e565b610a94565b61022961036b3660046115c2565b610aa3565b6101de6040518060400160405280601081526020016f23a4a310213ab7323632902a37b5b2b760811b81525081565b6102296103ad366004611649565b610b9c565b6101de6103c03660046117b9565b610bd4565b6101c16103d33660046115dc565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61022961040f3660046115c2565b610c48565b6101de6040518060400160405280600381526020016242544b60e81b81525081565b60006001600160e01b031982166380ac58cd60e01b148061046757506001600160e01b03198216635b5e139f60e01b145b8061048257506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b606060008054610499906119ad565b80601f01602080910402602001604051908101604052809291908181526020018280546104c5906119ad565b80156105125780601f106104e757610100808354040283529160200191610512565b820191906000526020600020905b8154815290600101906020018083116104f557829003601f168201915b5050505050905090565b600061052782610cc1565b506000908152600460205260409020546001600160a01b031690565b600061054e8261084a565b9050806001600160a01b0316836001600160a01b031614156105c15760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105dd57506105dd81336103d3565b61064f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016105b8565b6106598383610d20565b505050565b600060095482111580156104825750506000908152600260205260409020546001600160a01b03161590565b6106943382610d8e565b6106b05760405162461bcd60e51b81526004016105b8906118f0565b610659838383610e0d565b61065983838360405180602001604052806000815250610b9c565b6008546001600160a01b031661072e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b0316146107915760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b6000818152600260205260409020546001600160a01b03166107f55760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42544b2d3030353a544f4b454e5f49445f494e56414c4944000060448201526064016105b8565b6107fe81610fa9565b6000818152600760209081526040918290205482519081529081018390527f9b94bd6eee531d53aaede5ff8a93d142b0afb2cf7fbbce1135a75efd7f29cb55910160405180910390a150565b6000818152600260205260408120546001600160a01b0316806104825760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b60006001600160a01b0382166109145760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105b8565b506001600160a01b031660009081526003602052604090205490565b610938611045565b610942600061109f565b565b6008546000906001600160a01b031661099f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b031614610a025760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b60098054906000610a12836119e8565b909155505060095460008181526007602052604090208490559050610a3782826110f1565b60408051848152602081018390526001600160a01b0384168183015290517ffd51d5a3232267986482b6be627e03dabfb0a2ce2025276823100423b5f558679181900360600190a192915050565b606060018054610499906119ad565b610a9f33838361110b565b5050565b6008546001600160a01b031615610b105760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030333a42554e444c455f4d4f44554c455f414c524560448201526a10511657d111519253915160aa1b60648201526084016105b8565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030343a494e56414c49445f42554e444c455f4d4f4460448201526a554c455f4144445245535360a81b60648201526084016105b8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610ba63383610d8e565b610bc25760405162461bcd60e51b81526004016105b8906118f0565b610bce848484846111da565b50505050565b6060610bdf82610cc1565b6000610bf660408051602081019091526000815290565b90506000815111610c165760405180602001604052806000815250610c41565b80610c208461120d565b604051602001610c3192919061181f565b6040516020818303038152906040525b9392505050565b610c50611045565b6001600160a01b038116610cb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b8565b610cbe8161109f565b50565b6000818152600260205260409020546001600160a01b0316610cbe5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610d558261084a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d9a8361084a565b9050806001600160a01b0316846001600160a01b03161480610de157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610e055750836001600160a01b0316610dfa8461051c565b6001600160a01b0316145b949350505050565b826001600160a01b0316610e208261084a565b6001600160a01b031614610e845760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016105b8565b6001600160a01b038216610ee65760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105b8565b610ef1600082610d20565b6001600160a01b0383166000908152600360205260408120805460019290610f1a90849061196a565b90915550506001600160a01b0382166000908152600360205260408120805460019290610f4890849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4610659565b6000610fb48261084a565b9050610fc1600083610d20565b6001600160a01b0381166000908152600360205260408120805460019290610fea90849061196a565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4610a9f565b6006546001600160a01b031633146109425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b8565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610a9f828260405180602001604052806000815250611328565b816001600160a01b0316836001600160a01b0316141561116d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105b8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6111e5848484610e0d565b6111f18484848461135b565b610bce5760405162461bcd60e51b81526004016105b89061189e565b60608161123257506040805180820190915260018152600360fc1b6020820152610485565b8160005b811561125c5780611246816119e8565b91506112559050600a83611956565b9150611236565b60008167ffffffffffffffff81111561128557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112af576020820181803683370190505b5090505b8415610e05576112c460018361196a565b91506112d1600a86611a03565b6112dc90603061193e565b60f81b8183815181106112ff57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611321600a86611956565b94506112b3565b6113328383611468565b61133f600084848461135b565b6106595760405162461bcd60e51b81526004016105b89061189e565b60006001600160a01b0384163b1561145d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061139f90339089908890889060040161184e565b602060405180830381600087803b1580156113b957600080fd5b505af19250505080156113e9575060408051601f3d908101601f191682019092526113e69181019061179d565b60015b611443573d808015611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50805161143b5760405162461bcd60e51b81526004016105b89061189e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610e05565b506001949350505050565b6001600160a01b0382166114be5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105b8565b6000818152600260205260409020546001600160a01b0316156115235760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105b8565b6001600160a01b038216600090815260036020526040812080546001929061154c90849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4610a9f565b80356001600160a01b038116811461048557600080fd5b6000602082840312156115d3578081fd5b610c41826115ab565b600080604083850312156115ee578081fd5b6115f7836115ab565b9150611605602084016115ab565b90509250929050565b600080600060608486031215611622578081fd5b61162b846115ab565b9250611639602085016115ab565b9150604084013590509250925092565b6000806000806080858703121561165e578081fd5b611667856115ab565b9350611675602086016115ab565b925060408501359150606085013567ffffffffffffffff80821115611698578283fd5b818701915087601f8301126116ab578283fd5b8135818111156116bd576116bd611a43565b604051601f8201601f19908116603f011681019083821181831017156116e5576116e5611a43565b816040528281528a60208487010111156116fd578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215611730578182fd5b611739836115ab565b91506020830135801515811461174d578182fd5b809150509250929050565b6000806040838503121561176a578182fd5b611773836115ab565b946020939093013593505050565b600060208284031215611792578081fd5b8135610c4181611a59565b6000602082840312156117ae578081fd5b8151610c4181611a59565b6000602082840312156117ca578081fd5b5035919050565b600080604083850312156117e3578182fd5b82359150611605602084016115ab565b6000815180845261180b816020860160208601611981565b601f01601f19169290920160200192915050565b60008351611831818460208801611981565b835190830190611845818360208801611981565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611881908301846117f3565b9695505050505050565b600060208252610c4160208301846117f3565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000821982111561195157611951611a17565b500190565b60008261196557611965611a2d565b500490565b60008282101561197c5761197c611a17565b500390565b60005b8381101561199c578181015183820152602001611984565b83811115610bce5750506000910152565b6002810460018216806119c157607f821691505b602082108114156119e257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119fc576119fc611a17565b5060010190565b600082611a1257611a12611a2d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610cbe57600080fdfea264697066735822122032918e0ae1816ccf1a3674eda3a468fbc7e9aedcee3910edd8f9f7aeb8199bcb64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH16 0x23A4A310213AB7323632902A37B5B2B7 PUSH1 0x81 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x3 DUP5 MSTORE PUSH3 0x42544B PUSH1 0xE8 SHL SWAP1 DUP5 ADD MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 PUSH3 0x65 SWAP2 PUSH1 0x0 SWAP2 PUSH3 0xF4 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x7B SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0xF4 JUMP JUMPDEST POP POP POP PUSH3 0x98 PUSH3 0x92 PUSH3 0x9E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0xA2 JUMP JUMPDEST PUSH3 0x1D7 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x102 SWAP1 PUSH3 0x19A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x126 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x171 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x141 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x171 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x171 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x171 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x154 JUMP JUMPDEST POP PUSH3 0x17F SWAP3 SWAP2 POP PUSH3 0x183 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x17F JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x184 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x1AF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x1D1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AA5 DUP1 PUSH3 0x1E7 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6AE9D6E8 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xA38B714C GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xC87B56DD GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x414 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xA38B714C EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x39F JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x31E JUMPI DUP1 PUSH4 0x94BF804D EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x34A JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x6AE9D6E8 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x316 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x296 JUMPI DUP1 PUSH4 0x4F558E79 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x6AE73384 EQ PUSH2 0x2D2 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x29A63083 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x283 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0x23250CAE EQ PUSH2 0x23D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x1781 JUMP JUMPDEST PUSH2 0x436 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DE PUSH2 0x48A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x188B JUMP JUMPDEST PUSH2 0x1FE PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x51C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1CD JUMP JUMPDEST PUSH2 0x229 PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0x1758 JUMP JUMPDEST PUSH2 0x543 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x9 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1CD JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x24B CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x65E JUMP JUMPDEST PUSH2 0x229 PUSH2 0x25E CALLDATASIZE PUSH1 0x4 PUSH2 0x160E JUMP JUMPDEST PUSH2 0x68A JUMP JUMPDEST PUSH2 0x22F PUSH2 0x271 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x291 CALLDATASIZE PUSH1 0x4 PUSH2 0x160E JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST PUSH2 0x229 PUSH2 0x2A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x2B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x9 SLOAD LT ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x1FE PUSH2 0x2CD CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x84A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1FE JUMP JUMPDEST PUSH2 0x22F PUSH2 0x2F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0x8AA JUMP JUMPDEST PUSH2 0x229 PUSH2 0x930 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1FE JUMP JUMPDEST PUSH2 0x22F PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x17D1 JUMP JUMPDEST PUSH2 0x944 JUMP JUMPDEST PUSH2 0x1DE PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x358 CALLDATASIZE PUSH1 0x4 PUSH2 0x171E JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x36B CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0xAA3 JUMP JUMPDEST PUSH2 0x1DE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH16 0x23A4A310213AB7323632902A37B5B2B7 PUSH1 0x81 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x3AD CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH2 0xB9C JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x3C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0xBD4 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x3D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x15DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x1DE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x42544B PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x467 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x482 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x499 SWAP1 PUSH2 0x19AD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C5 SWAP1 PUSH2 0x19AD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x512 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x512 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x527 DUP3 PUSH2 0xCC1 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54E DUP3 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x5C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x5DD JUMPI POP PUSH2 0x5DD DUP2 CALLER PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x64F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206E6F7220617070726F76656420666F7220616C6C0000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 PUSH2 0xD20 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD DUP3 GT ISZERO DUP1 ISZERO PUSH2 0x482 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x694 CALLER DUP3 PUSH2 0xD8E JUMP JUMPDEST PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x18F0 JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 DUP4 PUSH2 0xE0D JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x72E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030313A4E4F545F494E495449414C495A4544000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x791 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030323A4E4F545F42554E444C455F4D4F44554C4500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030353A544F4B454E5F49445F494E56414C49440000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0x7FE DUP2 PUSH2 0xFA9 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x9B94BD6EEE531D53AAEDE5FF8A93D142B0AFB2CF7FBBCE1135A75EFD7F29CB55 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x482 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x914 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x938 PUSH2 0x1045 JUMP JUMPDEST PUSH2 0x942 PUSH1 0x0 PUSH2 0x109F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x99F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030313A4E4F545F494E495449414C495A4544000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030323A4E4F545F42554E444C455F4D4F44554C4500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xA12 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x9 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE SWAP1 POP PUSH2 0xA37 DUP3 DUP3 PUSH2 0x10F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xFD51D5A3232267986482B6BE627E03DABFB0A2CE2025276823100423B5F55867 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x499 SWAP1 PUSH2 0x19AD JUMP JUMPDEST PUSH2 0xA9F CALLER DUP4 DUP4 PUSH2 0x110B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xB10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030333A42554E444C455F4D4F44554C455F414C5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x10511657D1115192539151 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030343A494E56414C49445F42554E444C455F4D4F44 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x554C455F41444452455353 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xBA6 CALLER DUP4 PUSH2 0xD8E JUMP JUMPDEST PUSH2 0xBC2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x18F0 JUMP JUMPDEST PUSH2 0xBCE DUP5 DUP5 DUP5 DUP5 PUSH2 0x11DA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xBDF DUP3 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF6 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xC16 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xC41 JUMP JUMPDEST DUP1 PUSH2 0xC20 DUP5 PUSH2 0x120D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC31 SWAP3 SWAP2 SWAP1 PUSH2 0x181F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC50 PUSH2 0x1045 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xCB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0xCBE DUP2 PUSH2 0x109F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0xD55 DUP3 PUSH2 0x84A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD9A DUP4 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xDE1 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0xE05 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xDFA DUP5 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE20 DUP3 PUSH2 0x84A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xEE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0xEF1 PUSH1 0x0 DUP3 PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xF1A SWAP1 DUP5 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xF48 SWAP1 DUP5 SWAP1 PUSH2 0x193E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP5 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 PUSH2 0x659 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFB4 DUP3 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP PUSH2 0xFC1 PUSH1 0x0 DUP4 PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xFEA SWAP1 DUP5 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP4 SWAP1 LOG4 PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x942 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xA9F DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1328 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x116D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x11E5 DUP5 DUP5 DUP5 PUSH2 0xE0D JUMP JUMPDEST PUSH2 0x11F1 DUP5 DUP5 DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST PUSH2 0xBCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1232 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x485 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x125C JUMPI DUP1 PUSH2 0x1246 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1255 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0x1956 JUMP JUMPDEST SWAP2 POP PUSH2 0x1236 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1285 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x12AF JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0xE05 JUMPI PUSH2 0x12C4 PUSH1 0x1 DUP4 PUSH2 0x196A JUMP JUMPDEST SWAP2 POP PUSH2 0x12D1 PUSH1 0xA DUP7 PUSH2 0x1A03 JUMP JUMPDEST PUSH2 0x12DC SWAP1 PUSH1 0x30 PUSH2 0x193E JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x12FF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x1321 PUSH1 0xA DUP7 PUSH2 0x1956 JUMP JUMPDEST SWAP5 POP PUSH2 0x12B3 JUMP JUMPDEST PUSH2 0x1332 DUP4 DUP4 PUSH2 0x1468 JUMP JUMPDEST PUSH2 0x133F PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST PUSH2 0x659 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x145D JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x139F SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x184E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x13E9 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x13E6 SWAP2 DUP2 ADD SWAP1 PUSH2 0x179D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1443 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1417 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x141C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0x143B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0xE05 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x14BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1523 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x154C SWAP1 DUP5 SWAP1 PUSH2 0x193E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 SWAP3 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 PUSH2 0xA9F JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15D3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC41 DUP3 PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x15EE JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x15F7 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH2 0x1605 PUSH1 0x20 DUP5 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1622 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x162B DUP5 PUSH2 0x15AB JUMP JUMPDEST SWAP3 POP PUSH2 0x1639 PUSH1 0x20 DUP6 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x165E JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1667 DUP6 PUSH2 0x15AB JUMP JUMPDEST SWAP4 POP PUSH2 0x1675 PUSH1 0x20 DUP7 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1698 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16AB JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x16BD JUMPI PUSH2 0x16BD PUSH2 0x1A43 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x16E5 JUMPI PUSH2 0x16E5 PUSH2 0x1A43 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x16FD JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1730 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1739 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x174D JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x176A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1773 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1792 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC41 DUP2 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17AE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xC41 DUP2 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17CA JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17E3 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1605 PUSH1 0x20 DUP5 ADD PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x180B DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1981 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1831 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1981 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1845 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1981 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1881 SWAP1 DUP4 ADD DUP5 PUSH2 0x17F3 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xC41 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x17F3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x1C881B9BDC88185C1C1C9BDD9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1951 JUMPI PUSH2 0x1951 PUSH2 0x1A17 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1965 JUMPI PUSH2 0x1965 PUSH2 0x1A2D JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x197C JUMPI PUSH2 0x197C PUSH2 0x1A17 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x199C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1984 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xBCE JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x19C1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x19E2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x19FC JUMPI PUSH2 0x19FC PUSH2 0x1A17 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A12 JUMPI PUSH2 0x1A12 PUSH2 0x1A2D JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xCBE JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN SWAP2 DUP15 EXP 0xE1 DUP2 PUSH13 0xCF1A3674EDA3A468FBC7E9AEDC 0xEE CODECOPY LT 0xED 0xD8 0xF9 0xF7 0xAE 0xB8 NOT SWAP12 0xCB PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"244:2162:101:-:0;;;789:48;;;;;;;;;-1:-1:-1;810:4:101;;;;;;;;;;;-1:-1:-1;;;810:4:101;;;;;;;816:6;;;;;;;;;;;-1:-1:-1;;;816:6:101;;;;1456:13:54;;810:4:101;;816:6;1456:13:54;;-1:-1:-1;;1456:13:54;:::i;:::-;-1:-1:-1;1479:17:54;;;;:7;;:17;;;;;:::i;:::-;;1390:113;;936:32:41;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;244:2162:101;;640:96:59;719:10;640:96;:::o;2433:187:41:-;2525:6;;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;244:2162:101:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;244:2162:101;;;-1:-1:-1;244:2162:101;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:380:103;99:1;89:12;;146:1;136:12;;;157:2;;211:4;203:6;199:17;189:27;;157:2;264;256:6;253:14;233:18;230:38;227:2;;;310:10;305:3;301:20;298:1;291:31;345:4;342:1;335:15;373:4;370:1;363:15;227:2;;69:325;;;:::o;:::-;244:2162:101;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15271:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1141:1053:103","statements":[{"body":{"nodeType":"YulBlock","src":"1188:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1197:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1205:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1190:6:103"},"nodeType":"YulFunctionCall","src":"1190:22:103"},"nodeType":"YulExpressionStatement","src":"1190:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1162:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1171:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1158:3:103"},"nodeType":"YulFunctionCall","src":"1158:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1183:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1154:3:103"},"nodeType":"YulFunctionCall","src":"1154:33:103"},"nodeType":"YulIf","src":"1151:2:103"},{"nodeType":"YulAssignment","src":"1223:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1252:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1233:18:103"},"nodeType":"YulFunctionCall","src":"1233:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1223:6:103"}]},{"nodeType":"YulAssignment","src":"1271:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1315:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:103"},"nodeType":"YulFunctionCall","src":"1300:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1281:18:103"},"nodeType":"YulFunctionCall","src":"1281:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1271:6:103"}]},{"nodeType":"YulAssignment","src":"1328:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1355:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1366:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1351:3:103"},"nodeType":"YulFunctionCall","src":"1351:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1338:12:103"},"nodeType":"YulFunctionCall","src":"1338:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1328:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1379:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1410:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1421:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1406:3:103"},"nodeType":"YulFunctionCall","src":"1406:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1393:12:103"},"nodeType":"YulFunctionCall","src":"1393:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1383:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1434:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1444:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1438:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1489:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1498:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1506:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1491:6:103"},"nodeType":"YulFunctionCall","src":"1491:22:103"},"nodeType":"YulExpressionStatement","src":"1491:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1477:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1485:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1474:2:103"},"nodeType":"YulFunctionCall","src":"1474:14:103"},"nodeType":"YulIf","src":"1471:2:103"},{"nodeType":"YulVariableDeclaration","src":"1524:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1538:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1549:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1534:3:103"},"nodeType":"YulFunctionCall","src":"1534:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1528:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1604:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1613:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1621:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1606:6:103"},"nodeType":"YulFunctionCall","src":"1606:22:103"},"nodeType":"YulExpressionStatement","src":"1606:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1583:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1587:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1579:3:103"},"nodeType":"YulFunctionCall","src":"1579:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1594:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1575:3:103"},"nodeType":"YulFunctionCall","src":"1575:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1568:6:103"},"nodeType":"YulFunctionCall","src":"1568:35:103"},"nodeType":"YulIf","src":"1565:2:103"},{"nodeType":"YulVariableDeclaration","src":"1639:26:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1662:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1649:12:103"},"nodeType":"YulFunctionCall","src":"1649:16:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1643:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1688:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1690:16:103"},"nodeType":"YulFunctionCall","src":"1690:18:103"},"nodeType":"YulExpressionStatement","src":"1690:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1680:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1684:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1677:2:103"},"nodeType":"YulFunctionCall","src":"1677:10:103"},"nodeType":"YulIf","src":"1674:2:103"},{"nodeType":"YulVariableDeclaration","src":"1719:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1733:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1729:3:103"},"nodeType":"YulFunctionCall","src":"1729:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1723:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1745:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1765:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1759:5:103"},"nodeType":"YulFunctionCall","src":"1759:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1749:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1777:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1799:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1823:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1827:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1819:3:103"},"nodeType":"YulFunctionCall","src":"1819:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"1834:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1815:3:103"},"nodeType":"YulFunctionCall","src":"1815:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1839:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1811:3:103"},"nodeType":"YulFunctionCall","src":"1811:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"1844:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1807:3:103"},"nodeType":"YulFunctionCall","src":"1807:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1795:3:103"},"nodeType":"YulFunctionCall","src":"1795:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1781:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1907:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1909:16:103"},"nodeType":"YulFunctionCall","src":"1909:18:103"},"nodeType":"YulExpressionStatement","src":"1909:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1866:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1878:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1863:2:103"},"nodeType":"YulFunctionCall","src":"1863:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1886:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1898:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1883:2:103"},"nodeType":"YulFunctionCall","src":"1883:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1860:2:103"},"nodeType":"YulFunctionCall","src":"1860:46:103"},"nodeType":"YulIf","src":"1857:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1945:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1949:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1938:6:103"},"nodeType":"YulFunctionCall","src":"1938:22:103"},"nodeType":"YulExpressionStatement","src":"1938:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1976:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"1984:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1969:6:103"},"nodeType":"YulFunctionCall","src":"1969:18:103"},"nodeType":"YulExpressionStatement","src":"1969:18:103"},{"body":{"nodeType":"YulBlock","src":"2033:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2042:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2050:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2035:6:103"},"nodeType":"YulFunctionCall","src":"2035:22:103"},"nodeType":"YulExpressionStatement","src":"2035:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2010:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2014:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2006:3:103"},"nodeType":"YulFunctionCall","src":"2006:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2019:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:103"},"nodeType":"YulFunctionCall","src":"2002:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2024:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1999:2:103"},"nodeType":"YulFunctionCall","src":"1999:33:103"},"nodeType":"YulIf","src":"1996:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2085:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2093:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2081:3:103"},"nodeType":"YulFunctionCall","src":"2081:15:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2102:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2106:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2098:3:103"},"nodeType":"YulFunctionCall","src":"2098:11:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2111:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2068:12:103"},"nodeType":"YulFunctionCall","src":"2068:46:103"},"nodeType":"YulExpressionStatement","src":"2068:46:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2138:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2146:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2134:3:103"},"nodeType":"YulFunctionCall","src":"2134:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"2151:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2130:3:103"},"nodeType":"YulFunctionCall","src":"2130:24:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2156:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2123:6:103"},"nodeType":"YulFunctionCall","src":"2123:40:103"},"nodeType":"YulExpressionStatement","src":"2123:40:103"},{"nodeType":"YulAssignment","src":"2172:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2182:6:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2172:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1083:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1094:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1106:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1114:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1122:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1130:6:103","type":""}],"src":"1011:1183:103"},{"body":{"nodeType":"YulBlock","src":"2283:283:103","statements":[{"body":{"nodeType":"YulBlock","src":"2329:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2338:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2346:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2331:6:103"},"nodeType":"YulFunctionCall","src":"2331:22:103"},"nodeType":"YulExpressionStatement","src":"2331:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2304:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2313:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2300:3:103"},"nodeType":"YulFunctionCall","src":"2300:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2325:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2296:3:103"},"nodeType":"YulFunctionCall","src":"2296:32:103"},"nodeType":"YulIf","src":"2293:2:103"},{"nodeType":"YulAssignment","src":"2364:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2393:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2374:18:103"},"nodeType":"YulFunctionCall","src":"2374:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2364:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2412:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2442:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2453:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2438:3:103"},"nodeType":"YulFunctionCall","src":"2438:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2425:12:103"},"nodeType":"YulFunctionCall","src":"2425:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2416:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2510:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2519:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2527:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2512:6:103"},"nodeType":"YulFunctionCall","src":"2512:22:103"},"nodeType":"YulExpressionStatement","src":"2512:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2479:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2500:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2493:6:103"},"nodeType":"YulFunctionCall","src":"2493:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2486:6:103"},"nodeType":"YulFunctionCall","src":"2486:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2476:2:103"},"nodeType":"YulFunctionCall","src":"2476:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2469:6:103"},"nodeType":"YulFunctionCall","src":"2469:40:103"},"nodeType":"YulIf","src":"2466:2:103"},{"nodeType":"YulAssignment","src":"2545:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2555:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2545:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2241:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2252:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2264:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2272:6:103","type":""}],"src":"2199:367:103"},{"body":{"nodeType":"YulBlock","src":"2658:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"2704:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2713:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2721:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2706:6:103"},"nodeType":"YulFunctionCall","src":"2706:22:103"},"nodeType":"YulExpressionStatement","src":"2706:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2679:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2688:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2675:3:103"},"nodeType":"YulFunctionCall","src":"2675:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2700:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2671:3:103"},"nodeType":"YulFunctionCall","src":"2671:32:103"},"nodeType":"YulIf","src":"2668:2:103"},{"nodeType":"YulAssignment","src":"2739:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2768:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2749:18:103"},"nodeType":"YulFunctionCall","src":"2749:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2739:6:103"}]},{"nodeType":"YulAssignment","src":"2787:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2825:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2810:3:103"},"nodeType":"YulFunctionCall","src":"2810:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2797:12:103"},"nodeType":"YulFunctionCall","src":"2797:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2787:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2616:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2627:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2639:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2647:6:103","type":""}],"src":"2571:264:103"},{"body":{"nodeType":"YulBlock","src":"2909:186:103","statements":[{"body":{"nodeType":"YulBlock","src":"2955:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2964:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2972:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2957:6:103"},"nodeType":"YulFunctionCall","src":"2957:22:103"},"nodeType":"YulExpressionStatement","src":"2957:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2930:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2939:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2926:3:103"},"nodeType":"YulFunctionCall","src":"2926:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2951:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2922:3:103"},"nodeType":"YulFunctionCall","src":"2922:32:103"},"nodeType":"YulIf","src":"2919:2:103"},{"nodeType":"YulVariableDeclaration","src":"2990:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3016:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3003:12:103"},"nodeType":"YulFunctionCall","src":"3003:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2994:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3059:5:103"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"3035:23:103"},"nodeType":"YulFunctionCall","src":"3035:30:103"},"nodeType":"YulExpressionStatement","src":"3035:30:103"},{"nodeType":"YulAssignment","src":"3074:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3084:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3074:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2875:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2886:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2898:6:103","type":""}],"src":"2840:255:103"},{"body":{"nodeType":"YulBlock","src":"3180:179:103","statements":[{"body":{"nodeType":"YulBlock","src":"3226:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3235:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3243:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3228:6:103"},"nodeType":"YulFunctionCall","src":"3228:22:103"},"nodeType":"YulExpressionStatement","src":"3228:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3201:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3210:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3197:3:103"},"nodeType":"YulFunctionCall","src":"3197:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3193:3:103"},"nodeType":"YulFunctionCall","src":"3193:32:103"},"nodeType":"YulIf","src":"3190:2:103"},{"nodeType":"YulVariableDeclaration","src":"3261:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3280:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3274:5:103"},"nodeType":"YulFunctionCall","src":"3274:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3265:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3323:5:103"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"3299:23:103"},"nodeType":"YulFunctionCall","src":"3299:30:103"},"nodeType":"YulExpressionStatement","src":"3299:30:103"},{"nodeType":"YulAssignment","src":"3338:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3348:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3338:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3146:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3157:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3169:6:103","type":""}],"src":"3100:259:103"},{"body":{"nodeType":"YulBlock","src":"3434:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3480:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3489:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3497:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3482:6:103"},"nodeType":"YulFunctionCall","src":"3482:22:103"},"nodeType":"YulExpressionStatement","src":"3482:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3455:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3464:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3451:3:103"},"nodeType":"YulFunctionCall","src":"3451:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3476:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3447:3:103"},"nodeType":"YulFunctionCall","src":"3447:32:103"},"nodeType":"YulIf","src":"3444:2:103"},{"nodeType":"YulAssignment","src":"3515:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3538:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3525:12:103"},"nodeType":"YulFunctionCall","src":"3525:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3515:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3400:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3411:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3423:6:103","type":""}],"src":"3364:190:103"},{"body":{"nodeType":"YulBlock","src":"3646:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"3692:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3701:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3709:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3694:6:103"},"nodeType":"YulFunctionCall","src":"3694:22:103"},"nodeType":"YulExpressionStatement","src":"3694:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3667:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3676:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3663:3:103"},"nodeType":"YulFunctionCall","src":"3663:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3688:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3659:3:103"},"nodeType":"YulFunctionCall","src":"3659:32:103"},"nodeType":"YulIf","src":"3656:2:103"},{"nodeType":"YulAssignment","src":"3727:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3750:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3737:12:103"},"nodeType":"YulFunctionCall","src":"3737:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3727:6:103"}]},{"nodeType":"YulAssignment","src":"3769:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3802:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3813:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3798:3:103"},"nodeType":"YulFunctionCall","src":"3798:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3779:18:103"},"nodeType":"YulFunctionCall","src":"3779:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3769:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3604:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3615:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3627:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3635:6:103","type":""}],"src":"3559:264:103"},{"body":{"nodeType":"YulBlock","src":"3877:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3887:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3907:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3901:5:103"},"nodeType":"YulFunctionCall","src":"3901:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3891:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3929:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3934:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3922:6:103"},"nodeType":"YulFunctionCall","src":"3922:19:103"},"nodeType":"YulExpressionStatement","src":"3922:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3976:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3983:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3972:3:103"},"nodeType":"YulFunctionCall","src":"3972:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3994:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"3999:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3990:3:103"},"nodeType":"YulFunctionCall","src":"3990:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"4006:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3950:21:103"},"nodeType":"YulFunctionCall","src":"3950:63:103"},"nodeType":"YulExpressionStatement","src":"3950:63:103"},{"nodeType":"YulAssignment","src":"4022:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4037:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4050:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4058:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4046:3:103"},"nodeType":"YulFunctionCall","src":"4046:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4067:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4063:3:103"},"nodeType":"YulFunctionCall","src":"4063:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4042:3:103"},"nodeType":"YulFunctionCall","src":"4042:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4033:3:103"},"nodeType":"YulFunctionCall","src":"4033:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"4074:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4029:3:103"},"nodeType":"YulFunctionCall","src":"4029:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4022:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3854:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3861:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3869:3:103","type":""}],"src":"3828:257:103"},{"body":{"nodeType":"YulBlock","src":"4277:283:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4287:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4307:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4301:5:103"},"nodeType":"YulFunctionCall","src":"4301:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4291:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4349:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4357:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4345:3:103"},"nodeType":"YulFunctionCall","src":"4345:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"4364:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4369:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4323:21:103"},"nodeType":"YulFunctionCall","src":"4323:53:103"},"nodeType":"YulExpressionStatement","src":"4323:53:103"},{"nodeType":"YulVariableDeclaration","src":"4385:29:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4402:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4407:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4398:3:103"},"nodeType":"YulFunctionCall","src":"4398:16:103"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"4389:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4423:29:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4445:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4439:5:103"},"nodeType":"YulFunctionCall","src":"4439:13:103"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"4427:8:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4487:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4495:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4483:3:103"},"nodeType":"YulFunctionCall","src":"4483:17:103"},{"name":"end_1","nodeType":"YulIdentifier","src":"4502:5:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"4509:8:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4461:21:103"},"nodeType":"YulFunctionCall","src":"4461:57:103"},"nodeType":"YulExpressionStatement","src":"4461:57:103"},{"nodeType":"YulAssignment","src":"4527:27:103","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"4538:5:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"4545:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4534:3:103"},"nodeType":"YulFunctionCall","src":"4534:20:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4527:3:103"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4245:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4250:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4258:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4269:3:103","type":""}],"src":"4090:470:103"},{"body":{"nodeType":"YulBlock","src":"4666:102:103","statements":[{"nodeType":"YulAssignment","src":"4676:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4676:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4718:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4733:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4749:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4754:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4745:3:103"},"nodeType":"YulFunctionCall","src":"4745:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4758:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4741:3:103"},"nodeType":"YulFunctionCall","src":"4741:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4729:3:103"},"nodeType":"YulFunctionCall","src":"4729:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4711:6:103"},"nodeType":"YulFunctionCall","src":"4711:51:103"},"nodeType":"YulExpressionStatement","src":"4711:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4635:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4646:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4657:4:103","type":""}],"src":"4565:203:103"},{"body":{"nodeType":"YulBlock","src":"4976:285:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4986:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5004:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5009:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5000:3:103"},"nodeType":"YulFunctionCall","src":"5000:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5013:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4996:3:103"},"nodeType":"YulFunctionCall","src":"4996:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4990:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5031:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5046:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5054:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5042:3:103"},"nodeType":"YulFunctionCall","src":"5042:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5024:6:103"},"nodeType":"YulFunctionCall","src":"5024:34:103"},"nodeType":"YulExpressionStatement","src":"5024:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5089:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5074:3:103"},"nodeType":"YulFunctionCall","src":"5074:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5098:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5106:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5094:3:103"},"nodeType":"YulFunctionCall","src":"5094:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5067:6:103"},"nodeType":"YulFunctionCall","src":"5067:43:103"},"nodeType":"YulExpressionStatement","src":"5067:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5130:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5141:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5126:3:103"},"nodeType":"YulFunctionCall","src":"5126:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5146:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5119:6:103"},"nodeType":"YulFunctionCall","src":"5119:34:103"},"nodeType":"YulExpressionStatement","src":"5119:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5173:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5184:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5169:3:103"},"nodeType":"YulFunctionCall","src":"5169:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5189:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5162:6:103"},"nodeType":"YulFunctionCall","src":"5162:31:103"},"nodeType":"YulExpressionStatement","src":"5162:31:103"},{"nodeType":"YulAssignment","src":"5202:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5227:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5250:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5235:3:103"},"nodeType":"YulFunctionCall","src":"5235:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5210:16:103"},"nodeType":"YulFunctionCall","src":"5210:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5202:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4921:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4932:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4940:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4948:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4956:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4967:4:103","type":""}],"src":"4773:488:103"},{"body":{"nodeType":"YulBlock","src":"5361:92:103","statements":[{"nodeType":"YulAssignment","src":"5371:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5383:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5394:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5379:3:103"},"nodeType":"YulFunctionCall","src":"5379:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5371:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5413:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5438:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5431:6:103"},"nodeType":"YulFunctionCall","src":"5431:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5424:6:103"},"nodeType":"YulFunctionCall","src":"5424:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5406:6:103"},"nodeType":"YulFunctionCall","src":"5406:41:103"},"nodeType":"YulExpressionStatement","src":"5406:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5330:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5341:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5352:4:103","type":""}],"src":"5266:187:103"},{"body":{"nodeType":"YulBlock","src":"5579:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5596:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5607:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5589:6:103"},"nodeType":"YulFunctionCall","src":"5589:21:103"},"nodeType":"YulExpressionStatement","src":"5589:21:103"},{"nodeType":"YulAssignment","src":"5619:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5644:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5656:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5667:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5652:3:103"},"nodeType":"YulFunctionCall","src":"5652:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5627:16:103"},"nodeType":"YulFunctionCall","src":"5627:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5619:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5548:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5559:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5570:4:103","type":""}],"src":"5458:219:103"},{"body":{"nodeType":"YulBlock","src":"5856:240:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5873:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5884:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5866:6:103"},"nodeType":"YulFunctionCall","src":"5866:21:103"},"nodeType":"YulExpressionStatement","src":"5866:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5918:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5903:3:103"},"nodeType":"YulFunctionCall","src":"5903:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5923:2:103","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5896:6:103"},"nodeType":"YulFunctionCall","src":"5896:30:103"},"nodeType":"YulExpressionStatement","src":"5896:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5946:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5957:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5942:3:103"},"nodeType":"YulFunctionCall","src":"5942:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5962:34:103","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5935:6:103"},"nodeType":"YulFunctionCall","src":"5935:62:103"},"nodeType":"YulExpressionStatement","src":"5935:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6017:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6028:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6013:3:103"},"nodeType":"YulFunctionCall","src":"6013:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6033:20:103","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6006:6:103"},"nodeType":"YulFunctionCall","src":"6006:48:103"},"nodeType":"YulExpressionStatement","src":"6006:48:103"},{"nodeType":"YulAssignment","src":"6063:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6075:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6086:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6071:3:103"},"nodeType":"YulFunctionCall","src":"6071:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6063:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5833:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5847:4:103","type":""}],"src":"5682:414:103"},{"body":{"nodeType":"YulBlock","src":"6275:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6303:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6285:6:103"},"nodeType":"YulFunctionCall","src":"6285:21:103"},"nodeType":"YulExpressionStatement","src":"6285:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6326:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6337:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6322:3:103"},"nodeType":"YulFunctionCall","src":"6322:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6342:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6315:6:103"},"nodeType":"YulFunctionCall","src":"6315:30:103"},"nodeType":"YulExpressionStatement","src":"6315:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6376:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6361:3:103"},"nodeType":"YulFunctionCall","src":"6361:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6381:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6354:6:103"},"nodeType":"YulFunctionCall","src":"6354:62:103"},"nodeType":"YulExpressionStatement","src":"6354:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6447:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6432:3:103"},"nodeType":"YulFunctionCall","src":"6432:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6452:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6425:6:103"},"nodeType":"YulFunctionCall","src":"6425:36:103"},"nodeType":"YulExpressionStatement","src":"6425:36:103"},{"nodeType":"YulAssignment","src":"6470:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6493:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6478:3:103"},"nodeType":"YulFunctionCall","src":"6478:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6470:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6252:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6266:4:103","type":""}],"src":"6101:402:103"},{"body":{"nodeType":"YulBlock","src":"6682:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6699:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6710:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6692:6:103"},"nodeType":"YulFunctionCall","src":"6692:21:103"},"nodeType":"YulExpressionStatement","src":"6692:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6733:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6744:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6729:3:103"},"nodeType":"YulFunctionCall","src":"6729:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6749:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6722:6:103"},"nodeType":"YulFunctionCall","src":"6722:30:103"},"nodeType":"YulExpressionStatement","src":"6722:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6772:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6783:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6768:3:103"},"nodeType":"YulFunctionCall","src":"6768:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6788:34:103","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6761:6:103"},"nodeType":"YulFunctionCall","src":"6761:62:103"},"nodeType":"YulExpressionStatement","src":"6761:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6854:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6839:3:103"},"nodeType":"YulFunctionCall","src":"6839:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6859:7:103","type":"","value":"owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6832:6:103"},"nodeType":"YulFunctionCall","src":"6832:35:103"},"nodeType":"YulExpressionStatement","src":"6832:35:103"},{"nodeType":"YulAssignment","src":"6876:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6888:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6899:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6884:3:103"},"nodeType":"YulFunctionCall","src":"6884:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6876:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6659:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6673:4:103","type":""}],"src":"6508:401:103"},{"body":{"nodeType":"YulBlock","src":"7088:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7105:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7116:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7098:6:103"},"nodeType":"YulFunctionCall","src":"7098:21:103"},"nodeType":"YulExpressionStatement","src":"7098:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7139:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7150:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7135:3:103"},"nodeType":"YulFunctionCall","src":"7135:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7155:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7128:6:103"},"nodeType":"YulFunctionCall","src":"7128:30:103"},"nodeType":"YulExpressionStatement","src":"7128:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7178:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7189:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7174:3:103"},"nodeType":"YulFunctionCall","src":"7174:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7194:30:103","type":"","value":"ERC721: token already minted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7167:6:103"},"nodeType":"YulFunctionCall","src":"7167:58:103"},"nodeType":"YulExpressionStatement","src":"7167:58:103"},{"nodeType":"YulAssignment","src":"7234:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7246:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7257:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7242:3:103"},"nodeType":"YulFunctionCall","src":"7242:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7234:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7065:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7079:4:103","type":""}],"src":"6914:352:103"},{"body":{"nodeType":"YulBlock","src":"7445:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7473:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7455:6:103"},"nodeType":"YulFunctionCall","src":"7455:21:103"},"nodeType":"YulExpressionStatement","src":"7455:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7507:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7492:3:103"},"nodeType":"YulFunctionCall","src":"7492:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7512:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7485:6:103"},"nodeType":"YulFunctionCall","src":"7485:30:103"},"nodeType":"YulExpressionStatement","src":"7485:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7535:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7546:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7531:3:103"},"nodeType":"YulFunctionCall","src":"7531:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7551:34:103","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7524:6:103"},"nodeType":"YulFunctionCall","src":"7524:62:103"},"nodeType":"YulExpressionStatement","src":"7524:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7606:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7617:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7602:3:103"},"nodeType":"YulFunctionCall","src":"7602:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7622:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7595:6:103"},"nodeType":"YulFunctionCall","src":"7595:34:103"},"nodeType":"YulExpressionStatement","src":"7595:34:103"},{"nodeType":"YulAssignment","src":"7638:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7650:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7661:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7646:3:103"},"nodeType":"YulFunctionCall","src":"7646:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7638:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7422:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7436:4:103","type":""}],"src":"7271:400:103"},{"body":{"nodeType":"YulBlock","src":"7850:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7867:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7878:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7860:6:103"},"nodeType":"YulFunctionCall","src":"7860:21:103"},"nodeType":"YulExpressionStatement","src":"7860:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7901:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7912:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7897:3:103"},"nodeType":"YulFunctionCall","src":"7897:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7917:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7890:6:103"},"nodeType":"YulFunctionCall","src":"7890:30:103"},"nodeType":"YulExpressionStatement","src":"7890:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7940:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7951:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7936:3:103"},"nodeType":"YulFunctionCall","src":"7936:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7956:27:103","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7929:6:103"},"nodeType":"YulFunctionCall","src":"7929:55:103"},"nodeType":"YulExpressionStatement","src":"7929:55:103"},{"nodeType":"YulAssignment","src":"7993:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8005:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8016:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8001:3:103"},"nodeType":"YulFunctionCall","src":"8001:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7993:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7827:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7841:4:103","type":""}],"src":"7676:349:103"},{"body":{"nodeType":"YulBlock","src":"8204:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8221:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8232:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8214:6:103"},"nodeType":"YulFunctionCall","src":"8214:21:103"},"nodeType":"YulExpressionStatement","src":"8214:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8255:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8266:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8251:3:103"},"nodeType":"YulFunctionCall","src":"8251:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8271:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8244:6:103"},"nodeType":"YulFunctionCall","src":"8244:30:103"},"nodeType":"YulExpressionStatement","src":"8244:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8294:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8305:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8290:3:103"},"nodeType":"YulFunctionCall","src":"8290:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8310:34:103","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8283:6:103"},"nodeType":"YulFunctionCall","src":"8283:62:103"},"nodeType":"YulExpressionStatement","src":"8283:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8376:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8361:3:103"},"nodeType":"YulFunctionCall","src":"8361:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8381:11:103","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8354:6:103"},"nodeType":"YulFunctionCall","src":"8354:39:103"},"nodeType":"YulExpressionStatement","src":"8354:39:103"},{"nodeType":"YulAssignment","src":"8402:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8414:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8425:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8410:3:103"},"nodeType":"YulFunctionCall","src":"8410:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8402:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8181:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8195:4:103","type":""}],"src":"8030:405:103"},{"body":{"nodeType":"YulBlock","src":"8614:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8642:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8624:6:103"},"nodeType":"YulFunctionCall","src":"8624:21:103"},"nodeType":"YulExpressionStatement","src":"8624:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8665:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8676:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8661:3:103"},"nodeType":"YulFunctionCall","src":"8661:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8681:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8654:6:103"},"nodeType":"YulFunctionCall","src":"8654:30:103"},"nodeType":"YulExpressionStatement","src":"8654:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8704:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8715:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8700:3:103"},"nodeType":"YulFunctionCall","src":"8700:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8720:31:103","type":"","value":"ERROR:BTK-001:NOT_INITIALIZED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8693:6:103"},"nodeType":"YulFunctionCall","src":"8693:59:103"},"nodeType":"YulExpressionStatement","src":"8693:59:103"},{"nodeType":"YulAssignment","src":"8761:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8784:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8769:3:103"},"nodeType":"YulFunctionCall","src":"8769:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8761:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_71c345712a418cc2c46cd273ab8511c6cbb55feb2ba9f1d283511627144b0e51__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8591:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8605:4:103","type":""}],"src":"8440:353:103"},{"body":{"nodeType":"YulBlock","src":"8972:252:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8989:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9000:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8982:6:103"},"nodeType":"YulFunctionCall","src":"8982:21:103"},"nodeType":"YulExpressionStatement","src":"8982:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9023:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9034:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9019:3:103"},"nodeType":"YulFunctionCall","src":"9019:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9039:2:103","type":"","value":"62"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9012:6:103"},"nodeType":"YulFunctionCall","src":"9012:30:103"},"nodeType":"YulExpressionStatement","src":"9012:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9062:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9073:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9058:3:103"},"nodeType":"YulFunctionCall","src":"9058:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9078:34:103","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9051:6:103"},"nodeType":"YulFunctionCall","src":"9051:62:103"},"nodeType":"YulExpressionStatement","src":"9051:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9144:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9129:3:103"},"nodeType":"YulFunctionCall","src":"9129:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9149:32:103","type":"","value":"ken owner nor approved for all"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9122:6:103"},"nodeType":"YulFunctionCall","src":"9122:60:103"},"nodeType":"YulExpressionStatement","src":"9122:60:103"},{"nodeType":"YulAssignment","src":"9191:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9203:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9214:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9199:3:103"},"nodeType":"YulFunctionCall","src":"9199:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9191:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8949:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8963:4:103","type":""}],"src":"8798:426:103"},{"body":{"nodeType":"YulBlock","src":"9403:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9431:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9413:6:103"},"nodeType":"YulFunctionCall","src":"9413:21:103"},"nodeType":"YulExpressionStatement","src":"9413:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9465:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9450:3:103"},"nodeType":"YulFunctionCall","src":"9450:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9470:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9443:6:103"},"nodeType":"YulFunctionCall","src":"9443:30:103"},"nodeType":"YulExpressionStatement","src":"9443:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9493:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9504:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9489:3:103"},"nodeType":"YulFunctionCall","src":"9489:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9509:34:103","type":"","value":"ERC721: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9482:6:103"},"nodeType":"YulFunctionCall","src":"9482:62:103"},"nodeType":"YulExpressionStatement","src":"9482:62:103"},{"nodeType":"YulAssignment","src":"9553:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9565:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9576:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9561:3:103"},"nodeType":"YulFunctionCall","src":"9561:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9553:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9380:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9394:4:103","type":""}],"src":"9229:356:103"},{"body":{"nodeType":"YulBlock","src":"9764:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9792:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9774:6:103"},"nodeType":"YulFunctionCall","src":"9774:21:103"},"nodeType":"YulExpressionStatement","src":"9774:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9815:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9826:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9811:3:103"},"nodeType":"YulFunctionCall","src":"9811:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9831:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9804:6:103"},"nodeType":"YulFunctionCall","src":"9804:30:103"},"nodeType":"YulExpressionStatement","src":"9804:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9865:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9850:3:103"},"nodeType":"YulFunctionCall","src":"9850:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9870:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9843:6:103"},"nodeType":"YulFunctionCall","src":"9843:62:103"},"nodeType":"YulExpressionStatement","src":"9843:62:103"},{"nodeType":"YulAssignment","src":"9914:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9937:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9922:3:103"},"nodeType":"YulFunctionCall","src":"9922:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9914:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9741:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9755:4:103","type":""}],"src":"9590:356:103"},{"body":{"nodeType":"YulBlock","src":"10125:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10142:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10153:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10135:6:103"},"nodeType":"YulFunctionCall","src":"10135:21:103"},"nodeType":"YulExpressionStatement","src":"10135:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10176:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10187:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10172:3:103"},"nodeType":"YulFunctionCall","src":"10172:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10192:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10165:6:103"},"nodeType":"YulFunctionCall","src":"10165:30:103"},"nodeType":"YulExpressionStatement","src":"10165:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10215:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10226:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10211:3:103"},"nodeType":"YulFunctionCall","src":"10211:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10231:34:103","type":"","value":"ERROR:BTK-003:BUNDLE_MODULE_ALRE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10204:6:103"},"nodeType":"YulFunctionCall","src":"10204:62:103"},"nodeType":"YulExpressionStatement","src":"10204:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10286:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10297:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10282:3:103"},"nodeType":"YulFunctionCall","src":"10282:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10302:13:103","type":"","value":"ADY_DEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10275:6:103"},"nodeType":"YulFunctionCall","src":"10275:41:103"},"nodeType":"YulExpressionStatement","src":"10275:41:103"},{"nodeType":"YulAssignment","src":"10325:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10337:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10348:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10333:3:103"},"nodeType":"YulFunctionCall","src":"10333:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10325:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_abc636ae2799ac58b80df921189c05433792fe090199f11c917db3daf328f355__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10102:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10116:4:103","type":""}],"src":"9951:407:103"},{"body":{"nodeType":"YulBlock","src":"10537:174:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10554:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10565:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10547:6:103"},"nodeType":"YulFunctionCall","src":"10547:21:103"},"nodeType":"YulExpressionStatement","src":"10547:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10588:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10599:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10584:3:103"},"nodeType":"YulFunctionCall","src":"10584:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10604:2:103","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10577:6:103"},"nodeType":"YulFunctionCall","src":"10577:30:103"},"nodeType":"YulExpressionStatement","src":"10577:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10627:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10638:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10623:3:103"},"nodeType":"YulFunctionCall","src":"10623:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10643:26:103","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10616:6:103"},"nodeType":"YulFunctionCall","src":"10616:54:103"},"nodeType":"YulExpressionStatement","src":"10616:54:103"},{"nodeType":"YulAssignment","src":"10679:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10691:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10702:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10687:3:103"},"nodeType":"YulFunctionCall","src":"10687:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10679:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10514:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10528:4:103","type":""}],"src":"10363:348:103"},{"body":{"nodeType":"YulBlock","src":"10890:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10918:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10900:6:103"},"nodeType":"YulFunctionCall","src":"10900:21:103"},"nodeType":"YulExpressionStatement","src":"10900:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10941:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10952:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10937:3:103"},"nodeType":"YulFunctionCall","src":"10937:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10957:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10930:6:103"},"nodeType":"YulFunctionCall","src":"10930:30:103"},"nodeType":"YulExpressionStatement","src":"10930:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10980:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10991:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10976:3:103"},"nodeType":"YulFunctionCall","src":"10976:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10996:34:103","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10969:6:103"},"nodeType":"YulFunctionCall","src":"10969:62:103"},"nodeType":"YulExpressionStatement","src":"10969:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11051:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11062:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11047:3:103"},"nodeType":"YulFunctionCall","src":"11047:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11067:3:103","type":"","value":"r"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11040:6:103"},"nodeType":"YulFunctionCall","src":"11040:31:103"},"nodeType":"YulExpressionStatement","src":"11040:31:103"},{"nodeType":"YulAssignment","src":"11080:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11092:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11103:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11088:3:103"},"nodeType":"YulFunctionCall","src":"11088:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11080:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10867:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10881:4:103","type":""}],"src":"10716:397:103"},{"body":{"nodeType":"YulBlock","src":"11292:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11309:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11320:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11302:6:103"},"nodeType":"YulFunctionCall","src":"11302:21:103"},"nodeType":"YulExpressionStatement","src":"11302:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11343:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11354:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11339:3:103"},"nodeType":"YulFunctionCall","src":"11339:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11359:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11332:6:103"},"nodeType":"YulFunctionCall","src":"11332:30:103"},"nodeType":"YulExpressionStatement","src":"11332:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11382:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11393:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11378:3:103"},"nodeType":"YulFunctionCall","src":"11378:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11398:34:103","type":"","value":"ERROR:BTK-004:INVALID_BUNDLE_MOD"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11371:6:103"},"nodeType":"YulFunctionCall","src":"11371:62:103"},"nodeType":"YulExpressionStatement","src":"11371:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11453:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11464:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11449:3:103"},"nodeType":"YulFunctionCall","src":"11449:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11469:13:103","type":"","value":"ULE_ADDRESS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11442:6:103"},"nodeType":"YulFunctionCall","src":"11442:41:103"},"nodeType":"YulExpressionStatement","src":"11442:41:103"},{"nodeType":"YulAssignment","src":"11492:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11504:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11515:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11500:3:103"},"nodeType":"YulFunctionCall","src":"11500:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11492:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b8c7de1baab44a0acb8a288a8111919b2fbe55231df4bb3c2c01062efb0d0040__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11269:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11283:4:103","type":""}],"src":"11118:407:103"},{"body":{"nodeType":"YulBlock","src":"11704:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11721:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11732:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11714:6:103"},"nodeType":"YulFunctionCall","src":"11714:21:103"},"nodeType":"YulExpressionStatement","src":"11714:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11755:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11766:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11751:3:103"},"nodeType":"YulFunctionCall","src":"11751:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11771:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11744:6:103"},"nodeType":"YulFunctionCall","src":"11744:30:103"},"nodeType":"YulExpressionStatement","src":"11744:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11794:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11805:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11790:3:103"},"nodeType":"YulFunctionCall","src":"11790:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11810:33:103","type":"","value":"ERROR:BTK-002:NOT_BUNDLE_MODULE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11783:6:103"},"nodeType":"YulFunctionCall","src":"11783:61:103"},"nodeType":"YulExpressionStatement","src":"11783:61:103"},{"nodeType":"YulAssignment","src":"11853:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11876:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11861:3:103"},"nodeType":"YulFunctionCall","src":"11861:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11853:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e4463d809287d808796cb4a3a161ee1bce186c0b33e3e1818bc6844ffcc5748f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11681:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11695:4:103","type":""}],"src":"11530:355:103"},{"body":{"nodeType":"YulBlock","src":"12064:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12081:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12092:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12074:6:103"},"nodeType":"YulFunctionCall","src":"12074:21:103"},"nodeType":"YulExpressionStatement","src":"12074:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12115:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12126:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12111:3:103"},"nodeType":"YulFunctionCall","src":"12111:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12131:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12104:6:103"},"nodeType":"YulFunctionCall","src":"12104:30:103"},"nodeType":"YulExpressionStatement","src":"12104:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12154:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12165:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12150:3:103"},"nodeType":"YulFunctionCall","src":"12150:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12170:32:103","type":"","value":"ERROR:BTK-005:TOKEN_ID_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12143:6:103"},"nodeType":"YulFunctionCall","src":"12143:60:103"},"nodeType":"YulExpressionStatement","src":"12143:60:103"},{"nodeType":"YulAssignment","src":"12212:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12224:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12235:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12220:3:103"},"nodeType":"YulFunctionCall","src":"12220:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12212:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e9b135c0fcb89fd6fb27d63d9c9b41b2ffa3e6cec6119734a095764dd4d45f96__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12041:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12055:4:103","type":""}],"src":"11890:354:103"},{"body":{"nodeType":"YulBlock","src":"12423:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12451:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12433:6:103"},"nodeType":"YulFunctionCall","src":"12433:21:103"},"nodeType":"YulExpressionStatement","src":"12433:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12474:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12485:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12470:3:103"},"nodeType":"YulFunctionCall","src":"12470:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12490:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12463:6:103"},"nodeType":"YulFunctionCall","src":"12463:30:103"},"nodeType":"YulExpressionStatement","src":"12463:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12513:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12524:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12509:3:103"},"nodeType":"YulFunctionCall","src":"12509:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12529:34:103","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12502:6:103"},"nodeType":"YulFunctionCall","src":"12502:62:103"},"nodeType":"YulExpressionStatement","src":"12502:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12584:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12595:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12580:3:103"},"nodeType":"YulFunctionCall","src":"12580:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12600:16:103","type":"","value":"r nor approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12573:6:103"},"nodeType":"YulFunctionCall","src":"12573:44:103"},"nodeType":"YulExpressionStatement","src":"12573:44:103"},{"nodeType":"YulAssignment","src":"12626:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12649:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12634:3:103"},"nodeType":"YulFunctionCall","src":"12634:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12626:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12400:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12414:4:103","type":""}],"src":"12249:410:103"},{"body":{"nodeType":"YulBlock","src":"12765:76:103","statements":[{"nodeType":"YulAssignment","src":"12775:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12787:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12798:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12783:3:103"},"nodeType":"YulFunctionCall","src":"12783:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12775:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12817:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12828:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12810:6:103"},"nodeType":"YulFunctionCall","src":"12810:25:103"},"nodeType":"YulExpressionStatement","src":"12810:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12734:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12745:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12756:4:103","type":""}],"src":"12664:177:103"},{"body":{"nodeType":"YulBlock","src":"12975:119:103","statements":[{"nodeType":"YulAssignment","src":"12985:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12997:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13008:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12993:3:103"},"nodeType":"YulFunctionCall","src":"12993:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12985:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13027:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13038:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13020:6:103"},"nodeType":"YulFunctionCall","src":"13020:25:103"},"nodeType":"YulExpressionStatement","src":"13020:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13065:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13076:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13061:3:103"},"nodeType":"YulFunctionCall","src":"13061:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13081:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13054:6:103"},"nodeType":"YulFunctionCall","src":"13054:34:103"},"nodeType":"YulExpressionStatement","src":"13054:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12936:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12947:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12955:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12966:4:103","type":""}],"src":"12846:248:103"},{"body":{"nodeType":"YulBlock","src":"13256:188:103","statements":[{"nodeType":"YulAssignment","src":"13266:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13289:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13274:3:103"},"nodeType":"YulFunctionCall","src":"13274:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13266:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13308:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13319:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13301:6:103"},"nodeType":"YulFunctionCall","src":"13301:25:103"},"nodeType":"YulExpressionStatement","src":"13301:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13346:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13357:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13342:3:103"},"nodeType":"YulFunctionCall","src":"13342:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13362:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13335:6:103"},"nodeType":"YulFunctionCall","src":"13335:34:103"},"nodeType":"YulExpressionStatement","src":"13335:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13389:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13400:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13385:3:103"},"nodeType":"YulFunctionCall","src":"13385:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13409:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13425:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13430:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13421:3:103"},"nodeType":"YulFunctionCall","src":"13421:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13434:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13417:3:103"},"nodeType":"YulFunctionCall","src":"13417:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13405:3:103"},"nodeType":"YulFunctionCall","src":"13405:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13378:6:103"},"nodeType":"YulFunctionCall","src":"13378:60:103"},"nodeType":"YulExpressionStatement","src":"13378:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13209:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13220:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13228:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13236:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13247:4:103","type":""}],"src":"13099:345:103"},{"body":{"nodeType":"YulBlock","src":"13497:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"13524:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13526:16:103"},"nodeType":"YulFunctionCall","src":"13526:18:103"},"nodeType":"YulExpressionStatement","src":"13526:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13513:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13520:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13516:3:103"},"nodeType":"YulFunctionCall","src":"13516:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13510:2:103"},"nodeType":"YulFunctionCall","src":"13510:13:103"},"nodeType":"YulIf","src":"13507:2:103"},{"nodeType":"YulAssignment","src":"13555:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13566:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13569:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13562:3:103"},"nodeType":"YulFunctionCall","src":"13562:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"13555:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13480:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13483:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"13489:3:103","type":""}],"src":"13449:128:103"},{"body":{"nodeType":"YulBlock","src":"13628:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"13651:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"13653:16:103"},"nodeType":"YulFunctionCall","src":"13653:18:103"},"nodeType":"YulExpressionStatement","src":"13653:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13648:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13641:6:103"},"nodeType":"YulFunctionCall","src":"13641:9:103"},"nodeType":"YulIf","src":"13638:2:103"},{"nodeType":"YulAssignment","src":"13682:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13691:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13694:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"13687:3:103"},"nodeType":"YulFunctionCall","src":"13687:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"13682:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13613:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13616:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"13622:1:103","type":""}],"src":"13582:120:103"},{"body":{"nodeType":"YulBlock","src":"13756:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"13778:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13780:16:103"},"nodeType":"YulFunctionCall","src":"13780:18:103"},"nodeType":"YulExpressionStatement","src":"13780:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13772:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13775:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13769:2:103"},"nodeType":"YulFunctionCall","src":"13769:8:103"},"nodeType":"YulIf","src":"13766:2:103"},{"nodeType":"YulAssignment","src":"13809:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13821:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13824:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13817:3:103"},"nodeType":"YulFunctionCall","src":"13817:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"13809:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13738:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13741:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"13747:4:103","type":""}],"src":"13707:125:103"},{"body":{"nodeType":"YulBlock","src":"13890:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"13900:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"13909:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"13904:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"13969:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"13994:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"13999:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13990:3:103"},"nodeType":"YulFunctionCall","src":"13990:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14013:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"14018:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14009:3:103"},"nodeType":"YulFunctionCall","src":"14009:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14003:5:103"},"nodeType":"YulFunctionCall","src":"14003:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13983:6:103"},"nodeType":"YulFunctionCall","src":"13983:39:103"},"nodeType":"YulExpressionStatement","src":"13983:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13930:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"13933:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13927:2:103"},"nodeType":"YulFunctionCall","src":"13927:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13941:19:103","statements":[{"nodeType":"YulAssignment","src":"13943:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13952:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"13955:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13948:3:103"},"nodeType":"YulFunctionCall","src":"13948:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"13943:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"13923:3:103","statements":[]},"src":"13919:113:103"},{"body":{"nodeType":"YulBlock","src":"14058:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14071:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"14076:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14067:3:103"},"nodeType":"YulFunctionCall","src":"14067:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"14085:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14060:6:103"},"nodeType":"YulFunctionCall","src":"14060:27:103"},"nodeType":"YulExpressionStatement","src":"14060:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14047:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"14050:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14044:2:103"},"nodeType":"YulFunctionCall","src":"14044:13:103"},"nodeType":"YulIf","src":"14041:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"13868:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"13873:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"13878:6:103","type":""}],"src":"13837:258:103"},{"body":{"nodeType":"YulBlock","src":"14155:325:103","statements":[{"nodeType":"YulAssignment","src":"14165:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14179:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"14185:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14175:3:103"},"nodeType":"YulFunctionCall","src":"14175:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14165:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"14196:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14226:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"14232:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14222:3:103"},"nodeType":"YulFunctionCall","src":"14222:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"14200:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"14273:31:103","statements":[{"nodeType":"YulAssignment","src":"14275:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14289:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"14297:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14285:3:103"},"nodeType":"YulFunctionCall","src":"14285:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14275:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14253:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14246:6:103"},"nodeType":"YulFunctionCall","src":"14246:26:103"},"nodeType":"YulIf","src":"14243:2:103"},{"body":{"nodeType":"YulBlock","src":"14363:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14384:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14391:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14396:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14387:3:103"},"nodeType":"YulFunctionCall","src":"14387:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14377:6:103"},"nodeType":"YulFunctionCall","src":"14377:31:103"},"nodeType":"YulExpressionStatement","src":"14377:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14428:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14431:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14421:6:103"},"nodeType":"YulFunctionCall","src":"14421:15:103"},"nodeType":"YulExpressionStatement","src":"14421:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14456:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14459:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14449:6:103"},"nodeType":"YulFunctionCall","src":"14449:15:103"},"nodeType":"YulExpressionStatement","src":"14449:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14319:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14342:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"14350:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14339:2:103"},"nodeType":"YulFunctionCall","src":"14339:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14316:2:103"},"nodeType":"YulFunctionCall","src":"14316:38:103"},"nodeType":"YulIf","src":"14313:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"14135:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14144:6:103","type":""}],"src":"14100:380:103"},{"body":{"nodeType":"YulBlock","src":"14532:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"14563:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14565:16:103"},"nodeType":"YulFunctionCall","src":"14565:18:103"},"nodeType":"YulExpressionStatement","src":"14565:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14548:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14559:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14555:3:103"},"nodeType":"YulFunctionCall","src":"14555:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14545:2:103"},"nodeType":"YulFunctionCall","src":"14545:17:103"},"nodeType":"YulIf","src":"14542:2:103"},{"nodeType":"YulAssignment","src":"14594:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14605:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"14612:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14601:3:103"},"nodeType":"YulFunctionCall","src":"14601:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"14594:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14514:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"14524:3:103","type":""}],"src":"14485:135:103"},{"body":{"nodeType":"YulBlock","src":"14663:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"14686:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"14688:16:103"},"nodeType":"YulFunctionCall","src":"14688:18:103"},"nodeType":"YulExpressionStatement","src":"14688:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14683:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14676:6:103"},"nodeType":"YulFunctionCall","src":"14676:9:103"},"nodeType":"YulIf","src":"14673:2:103"},{"nodeType":"YulAssignment","src":"14717:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14726:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"14729:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"14722:3:103"},"nodeType":"YulFunctionCall","src":"14722:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"14717:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14648:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"14651:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"14657:1:103","type":""}],"src":"14625:112:103"},{"body":{"nodeType":"YulBlock","src":"14774:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14791:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14798:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14803:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14794:3:103"},"nodeType":"YulFunctionCall","src":"14794:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14784:6:103"},"nodeType":"YulFunctionCall","src":"14784:31:103"},"nodeType":"YulExpressionStatement","src":"14784:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14831:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14834:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14824:6:103"},"nodeType":"YulFunctionCall","src":"14824:15:103"},"nodeType":"YulExpressionStatement","src":"14824:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14855:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14858:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14848:6:103"},"nodeType":"YulFunctionCall","src":"14848:15:103"},"nodeType":"YulExpressionStatement","src":"14848:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14742:127:103"},{"body":{"nodeType":"YulBlock","src":"14906:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14923:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14930:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14935:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14926:3:103"},"nodeType":"YulFunctionCall","src":"14926:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14916:6:103"},"nodeType":"YulFunctionCall","src":"14916:31:103"},"nodeType":"YulExpressionStatement","src":"14916:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14963:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14966:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14956:6:103"},"nodeType":"YulFunctionCall","src":"14956:15:103"},"nodeType":"YulExpressionStatement","src":"14956:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14987:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14990:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14980:6:103"},"nodeType":"YulFunctionCall","src":"14980:15:103"},"nodeType":"YulExpressionStatement","src":"14980:15:103"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"14874:127:103"},{"body":{"nodeType":"YulBlock","src":"15038:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15055:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15062:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15067:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15058:3:103"},"nodeType":"YulFunctionCall","src":"15058:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15048:6:103"},"nodeType":"YulFunctionCall","src":"15048:31:103"},"nodeType":"YulExpressionStatement","src":"15048:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15095:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15098:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15088:6:103"},"nodeType":"YulFunctionCall","src":"15088:15:103"},"nodeType":"YulExpressionStatement","src":"15088:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15119:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15122:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15112:6:103"},"nodeType":"YulFunctionCall","src":"15112:15:103"},"nodeType":"YulExpressionStatement","src":"15112:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"15006:127:103"},{"body":{"nodeType":"YulBlock","src":"15182:87:103","statements":[{"body":{"nodeType":"YulBlock","src":"15247:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15256:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15259:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15249:6:103"},"nodeType":"YulFunctionCall","src":"15249:12:103"},"nodeType":"YulExpressionStatement","src":"15249:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15205:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15216:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15227:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15232:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15223:3:103"},"nodeType":"YulFunctionCall","src":"15223:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15212:3:103"},"nodeType":"YulFunctionCall","src":"15212:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15202:2:103"},"nodeType":"YulFunctionCall","src":"15202:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15195:6:103"},"nodeType":"YulFunctionCall","src":"15195:51:103"},"nodeType":"YulIf","src":"15192:2:103"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15171:5:103","type":""}],"src":"15138:131:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value3, value3) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value3, value3) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value3, value3) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value3, value3) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), value3)\n value3 := memPtr\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(value1, value1) }\n value1 := value\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 50)\n mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n mstore(add(headStart, 96), \"ceiver implementer\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n mstore(add(headStart, 96), \"owner\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERC721: token already minted\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERC721: approve to caller\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n mstore(add(headStart, 96), \"lid owner\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_71c345712a418cc2c46cd273ab8511c6cbb55feb2ba9f1d283511627144b0e51__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:BTK-001:NOT_INITIALIZED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 62)\n mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n mstore(add(headStart, 96), \"ken owner nor approved for all\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERC721: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_abc636ae2799ac58b80df921189c05433792fe090199f11c917db3daf328f355__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:BTK-003:BUNDLE_MODULE_ALRE\")\n mstore(add(headStart, 96), \"ADY_DEFINED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n mstore(add(headStart, 96), \"r\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b8c7de1baab44a0acb8a288a8111919b2fbe55231df4bb3c2c01062efb0d0040__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:BTK-004:INVALID_BUNDLE_MOD\")\n mstore(add(headStart, 96), \"ULE_ADDRESS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e4463d809287d808796cb4a3a161ee1bce186c0b33e3e1818bc6844ffcc5748f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:BTK-002:NOT_BUNDLE_MODULE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_e9b135c0fcb89fd6fb27d63d9c9b41b2ffa3e6cec6119734a095764dd4d45f96__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:BTK-005:TOKEN_ID_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n mstore(add(headStart, 96), \"r nor approved\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101a95760003560e01c80636ae9d6e8116100f9578063a38b714c11610097578063c87b56dd11610071578063c87b56dd146103b2578063e985e9c5146103c5578063f2fde38b14610401578063f76f8d7814610414576101a9565b8063a38b714c1461035d578063a3f4df7e14610370578063b88d4fde1461039f576101a9565b80638da5cb5b116100d35780638da5cb5b1461031e57806394bf804d1461032f57806395d89b4114610342578063a22cb4651461034a576101a9565b80636ae9d6e8146102e357806370a0823114610303578063715018a614610316576101a9565b806323b872dd1161016657806342966c681161014057806342966c68146102965780634f558e79146102a95780636352211e146102bf5780636ae73384146102d2576101a9565b806323b872dd1461025057806329a630831461026357806342842e0e14610283576101a9565b806301ffc9a7146101ae57806306fdde03146101d6578063081812fc146101eb578063095ea7b31461021657806318160ddd1461022b57806323250cae1461023d575b600080fd5b6101c16101bc366004611781565b610436565b60405190151581526020015b60405180910390f35b6101de61048a565b6040516101cd919061188b565b6101fe6101f93660046117b9565b61051c565b6040516001600160a01b0390911681526020016101cd565b610229610224366004611758565b610543565b005b6009545b6040519081526020016101cd565b6101c161024b3660046117b9565b61065e565b61022961025e36600461160e565b61068a565b61022f6102713660046117b9565b60009081526007602052604090205490565b61022961029136600461160e565b6106bb565b6102296102a43660046117b9565b6106d6565b6101c16102b73660046117b9565b600954101590565b6101fe6102cd3660046117b9565b61084a565b6008546001600160a01b03166101fe565b61022f6102f13660046117b9565b60076020526000908152604090205481565b61022f6103113660046115c2565b6108aa565b610229610930565b6006546001600160a01b03166101fe565b61022f61033d3660046117d1565b610944565b6101de610a85565b61022961035836600461171e565b610a94565b61022961036b3660046115c2565b610aa3565b6101de6040518060400160405280601081526020016f23a4a310213ab7323632902a37b5b2b760811b81525081565b6102296103ad366004611649565b610b9c565b6101de6103c03660046117b9565b610bd4565b6101c16103d33660046115dc565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61022961040f3660046115c2565b610c48565b6101de6040518060400160405280600381526020016242544b60e81b81525081565b60006001600160e01b031982166380ac58cd60e01b148061046757506001600160e01b03198216635b5e139f60e01b145b8061048257506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b606060008054610499906119ad565b80601f01602080910402602001604051908101604052809291908181526020018280546104c5906119ad565b80156105125780601f106104e757610100808354040283529160200191610512565b820191906000526020600020905b8154815290600101906020018083116104f557829003601f168201915b5050505050905090565b600061052782610cc1565b506000908152600460205260409020546001600160a01b031690565b600061054e8261084a565b9050806001600160a01b0316836001600160a01b031614156105c15760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105dd57506105dd81336103d3565b61064f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016105b8565b6106598383610d20565b505050565b600060095482111580156104825750506000908152600260205260409020546001600160a01b03161590565b6106943382610d8e565b6106b05760405162461bcd60e51b81526004016105b8906118f0565b610659838383610e0d565b61065983838360405180602001604052806000815250610b9c565b6008546001600160a01b031661072e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b0316146107915760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b6000818152600260205260409020546001600160a01b03166107f55760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42544b2d3030353a544f4b454e5f49445f494e56414c4944000060448201526064016105b8565b6107fe81610fa9565b6000818152600760209081526040918290205482519081529081018390527f9b94bd6eee531d53aaede5ff8a93d142b0afb2cf7fbbce1135a75efd7f29cb55910160405180910390a150565b6000818152600260205260408120546001600160a01b0316806104825760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b60006001600160a01b0382166109145760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105b8565b506001600160a01b031660009081526003602052604090205490565b610938611045565b610942600061109f565b565b6008546000906001600160a01b031661099f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b031614610a025760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b60098054906000610a12836119e8565b909155505060095460008181526007602052604090208490559050610a3782826110f1565b60408051848152602081018390526001600160a01b0384168183015290517ffd51d5a3232267986482b6be627e03dabfb0a2ce2025276823100423b5f558679181900360600190a192915050565b606060018054610499906119ad565b610a9f33838361110b565b5050565b6008546001600160a01b031615610b105760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030333a42554e444c455f4d4f44554c455f414c524560448201526a10511657d111519253915160aa1b60648201526084016105b8565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030343a494e56414c49445f42554e444c455f4d4f4460448201526a554c455f4144445245535360a81b60648201526084016105b8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610ba63383610d8e565b610bc25760405162461bcd60e51b81526004016105b8906118f0565b610bce848484846111da565b50505050565b6060610bdf82610cc1565b6000610bf660408051602081019091526000815290565b90506000815111610c165760405180602001604052806000815250610c41565b80610c208461120d565b604051602001610c3192919061181f565b6040516020818303038152906040525b9392505050565b610c50611045565b6001600160a01b038116610cb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b8565b610cbe8161109f565b50565b6000818152600260205260409020546001600160a01b0316610cbe5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610d558261084a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d9a8361084a565b9050806001600160a01b0316846001600160a01b03161480610de157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610e055750836001600160a01b0316610dfa8461051c565b6001600160a01b0316145b949350505050565b826001600160a01b0316610e208261084a565b6001600160a01b031614610e845760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016105b8565b6001600160a01b038216610ee65760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105b8565b610ef1600082610d20565b6001600160a01b0383166000908152600360205260408120805460019290610f1a90849061196a565b90915550506001600160a01b0382166000908152600360205260408120805460019290610f4890849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4610659565b6000610fb48261084a565b9050610fc1600083610d20565b6001600160a01b0381166000908152600360205260408120805460019290610fea90849061196a565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4610a9f565b6006546001600160a01b031633146109425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b8565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610a9f828260405180602001604052806000815250611328565b816001600160a01b0316836001600160a01b0316141561116d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105b8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6111e5848484610e0d565b6111f18484848461135b565b610bce5760405162461bcd60e51b81526004016105b89061189e565b60608161123257506040805180820190915260018152600360fc1b6020820152610485565b8160005b811561125c5780611246816119e8565b91506112559050600a83611956565b9150611236565b60008167ffffffffffffffff81111561128557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112af576020820181803683370190505b5090505b8415610e05576112c460018361196a565b91506112d1600a86611a03565b6112dc90603061193e565b60f81b8183815181106112ff57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611321600a86611956565b94506112b3565b6113328383611468565b61133f600084848461135b565b6106595760405162461bcd60e51b81526004016105b89061189e565b60006001600160a01b0384163b1561145d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061139f90339089908890889060040161184e565b602060405180830381600087803b1580156113b957600080fd5b505af19250505080156113e9575060408051601f3d908101601f191682019092526113e69181019061179d565b60015b611443573d808015611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50805161143b5760405162461bcd60e51b81526004016105b89061189e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610e05565b506001949350505050565b6001600160a01b0382166114be5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105b8565b6000818152600260205260409020546001600160a01b0316156115235760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105b8565b6001600160a01b038216600090815260036020526040812080546001929061154c90849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4610a9f565b80356001600160a01b038116811461048557600080fd5b6000602082840312156115d3578081fd5b610c41826115ab565b600080604083850312156115ee578081fd5b6115f7836115ab565b9150611605602084016115ab565b90509250929050565b600080600060608486031215611622578081fd5b61162b846115ab565b9250611639602085016115ab565b9150604084013590509250925092565b6000806000806080858703121561165e578081fd5b611667856115ab565b9350611675602086016115ab565b925060408501359150606085013567ffffffffffffffff80821115611698578283fd5b818701915087601f8301126116ab578283fd5b8135818111156116bd576116bd611a43565b604051601f8201601f19908116603f011681019083821181831017156116e5576116e5611a43565b816040528281528a60208487010111156116fd578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215611730578182fd5b611739836115ab565b91506020830135801515811461174d578182fd5b809150509250929050565b6000806040838503121561176a578182fd5b611773836115ab565b946020939093013593505050565b600060208284031215611792578081fd5b8135610c4181611a59565b6000602082840312156117ae578081fd5b8151610c4181611a59565b6000602082840312156117ca578081fd5b5035919050565b600080604083850312156117e3578182fd5b82359150611605602084016115ab565b6000815180845261180b816020860160208601611981565b601f01601f19169290920160200192915050565b60008351611831818460208801611981565b835190830190611845818360208801611981565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611881908301846117f3565b9695505050505050565b600060208252610c4160208301846117f3565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000821982111561195157611951611a17565b500190565b60008261196557611965611a2d565b500490565b60008282101561197c5761197c611a17565b500390565b60005b8381101561199c578181015183820152602001611984565b83811115610bce5750506000910152565b6002810460018216806119c157607f821691505b602082108114156119e257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119fc576119fc611a17565b5060010190565b600082611a1257611a12611a2d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610cbe57600080fdfea264697066735822122032918e0ae1816ccf1a3674eda3a468fbc7e9aedcee3910edd8f9f7aeb8199bcb64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6AE9D6E8 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xA38B714C GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xC87B56DD GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x414 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xA38B714C EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x39F JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x31E JUMPI DUP1 PUSH4 0x94BF804D EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x34A JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x6AE9D6E8 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x316 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x296 JUMPI DUP1 PUSH4 0x4F558E79 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x6AE73384 EQ PUSH2 0x2D2 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x29A63083 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x283 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0x23250CAE EQ PUSH2 0x23D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x1781 JUMP JUMPDEST PUSH2 0x436 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DE PUSH2 0x48A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x188B JUMP JUMPDEST PUSH2 0x1FE PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x51C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1CD JUMP JUMPDEST PUSH2 0x229 PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0x1758 JUMP JUMPDEST PUSH2 0x543 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x9 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1CD JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x24B CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x65E JUMP JUMPDEST PUSH2 0x229 PUSH2 0x25E CALLDATASIZE PUSH1 0x4 PUSH2 0x160E JUMP JUMPDEST PUSH2 0x68A JUMP JUMPDEST PUSH2 0x22F PUSH2 0x271 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x291 CALLDATASIZE PUSH1 0x4 PUSH2 0x160E JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST PUSH2 0x229 PUSH2 0x2A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x2B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x9 SLOAD LT ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x1FE PUSH2 0x2CD CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x84A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1FE JUMP JUMPDEST PUSH2 0x22F PUSH2 0x2F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0x8AA JUMP JUMPDEST PUSH2 0x229 PUSH2 0x930 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1FE JUMP JUMPDEST PUSH2 0x22F PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x17D1 JUMP JUMPDEST PUSH2 0x944 JUMP JUMPDEST PUSH2 0x1DE PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x358 CALLDATASIZE PUSH1 0x4 PUSH2 0x171E JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x36B CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0xAA3 JUMP JUMPDEST PUSH2 0x1DE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH16 0x23A4A310213AB7323632902A37B5B2B7 PUSH1 0x81 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x3AD CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH2 0xB9C JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x3C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0xBD4 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x3D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x15DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x1DE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x42544B PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x467 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x482 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x499 SWAP1 PUSH2 0x19AD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C5 SWAP1 PUSH2 0x19AD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x512 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x512 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x527 DUP3 PUSH2 0xCC1 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54E DUP3 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x5C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x5DD JUMPI POP PUSH2 0x5DD DUP2 CALLER PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x64F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206E6F7220617070726F76656420666F7220616C6C0000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 PUSH2 0xD20 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD DUP3 GT ISZERO DUP1 ISZERO PUSH2 0x482 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x694 CALLER DUP3 PUSH2 0xD8E JUMP JUMPDEST PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x18F0 JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 DUP4 PUSH2 0xE0D JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x72E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030313A4E4F545F494E495449414C495A4544000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x791 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030323A4E4F545F42554E444C455F4D4F44554C4500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030353A544F4B454E5F49445F494E56414C49440000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0x7FE DUP2 PUSH2 0xFA9 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x9B94BD6EEE531D53AAEDE5FF8A93D142B0AFB2CF7FBBCE1135A75EFD7F29CB55 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x482 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x914 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x938 PUSH2 0x1045 JUMP JUMPDEST PUSH2 0x942 PUSH1 0x0 PUSH2 0x109F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x99F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030313A4E4F545F494E495449414C495A4544000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030323A4E4F545F42554E444C455F4D4F44554C4500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xA12 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x9 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE SWAP1 POP PUSH2 0xA37 DUP3 DUP3 PUSH2 0x10F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xFD51D5A3232267986482B6BE627E03DABFB0A2CE2025276823100423B5F55867 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x499 SWAP1 PUSH2 0x19AD JUMP JUMPDEST PUSH2 0xA9F CALLER DUP4 DUP4 PUSH2 0x110B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xB10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030333A42554E444C455F4D4F44554C455F414C5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x10511657D1115192539151 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030343A494E56414C49445F42554E444C455F4D4F44 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x554C455F41444452455353 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xBA6 CALLER DUP4 PUSH2 0xD8E JUMP JUMPDEST PUSH2 0xBC2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x18F0 JUMP JUMPDEST PUSH2 0xBCE DUP5 DUP5 DUP5 DUP5 PUSH2 0x11DA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xBDF DUP3 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF6 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xC16 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xC41 JUMP JUMPDEST DUP1 PUSH2 0xC20 DUP5 PUSH2 0x120D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC31 SWAP3 SWAP2 SWAP1 PUSH2 0x181F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC50 PUSH2 0x1045 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xCB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0xCBE DUP2 PUSH2 0x109F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0xD55 DUP3 PUSH2 0x84A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD9A DUP4 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xDE1 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0xE05 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xDFA DUP5 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE20 DUP3 PUSH2 0x84A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xEE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0xEF1 PUSH1 0x0 DUP3 PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xF1A SWAP1 DUP5 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xF48 SWAP1 DUP5 SWAP1 PUSH2 0x193E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP5 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 PUSH2 0x659 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFB4 DUP3 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP PUSH2 0xFC1 PUSH1 0x0 DUP4 PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xFEA SWAP1 DUP5 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP4 SWAP1 LOG4 PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x942 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xA9F DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1328 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x116D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x11E5 DUP5 DUP5 DUP5 PUSH2 0xE0D JUMP JUMPDEST PUSH2 0x11F1 DUP5 DUP5 DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST PUSH2 0xBCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1232 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x485 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x125C JUMPI DUP1 PUSH2 0x1246 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1255 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0x1956 JUMP JUMPDEST SWAP2 POP PUSH2 0x1236 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1285 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x12AF JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0xE05 JUMPI PUSH2 0x12C4 PUSH1 0x1 DUP4 PUSH2 0x196A JUMP JUMPDEST SWAP2 POP PUSH2 0x12D1 PUSH1 0xA DUP7 PUSH2 0x1A03 JUMP JUMPDEST PUSH2 0x12DC SWAP1 PUSH1 0x30 PUSH2 0x193E JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x12FF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x1321 PUSH1 0xA DUP7 PUSH2 0x1956 JUMP JUMPDEST SWAP5 POP PUSH2 0x12B3 JUMP JUMPDEST PUSH2 0x1332 DUP4 DUP4 PUSH2 0x1468 JUMP JUMPDEST PUSH2 0x133F PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST PUSH2 0x659 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x145D JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x139F SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x184E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x13E9 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x13E6 SWAP2 DUP2 ADD SWAP1 PUSH2 0x179D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1443 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1417 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x141C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0x143B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0xE05 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x14BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1523 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x154C SWAP1 DUP5 SWAP1 PUSH2 0x193E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 SWAP3 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 PUSH2 0xA9F JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15D3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC41 DUP3 PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x15EE JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x15F7 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH2 0x1605 PUSH1 0x20 DUP5 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1622 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x162B DUP5 PUSH2 0x15AB JUMP JUMPDEST SWAP3 POP PUSH2 0x1639 PUSH1 0x20 DUP6 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x165E JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1667 DUP6 PUSH2 0x15AB JUMP JUMPDEST SWAP4 POP PUSH2 0x1675 PUSH1 0x20 DUP7 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1698 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16AB JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x16BD JUMPI PUSH2 0x16BD PUSH2 0x1A43 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x16E5 JUMPI PUSH2 0x16E5 PUSH2 0x1A43 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x16FD JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1730 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1739 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x174D JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x176A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1773 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1792 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC41 DUP2 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17AE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xC41 DUP2 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17CA JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17E3 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1605 PUSH1 0x20 DUP5 ADD PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x180B DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1981 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1831 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1981 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1845 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1981 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1881 SWAP1 DUP4 ADD DUP5 PUSH2 0x17F3 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xC41 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x17F3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x1C881B9BDC88185C1C1C9BDD9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1951 JUMPI PUSH2 0x1951 PUSH2 0x1A17 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1965 JUMPI PUSH2 0x1965 PUSH2 0x1A2D JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x197C JUMPI PUSH2 0x197C PUSH2 0x1A17 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x199C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1984 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xBCE JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x19C1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x19E2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x19FC JUMPI PUSH2 0x19FC PUSH2 0x1A17 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A12 JUMPI PUSH2 0x1A12 PUSH2 0x1A2D JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xCBE JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN SWAP2 DUP15 EXP 0xE1 DUP2 PUSH13 0xCF1A3674EDA3A468FBC7E9AEDC 0xEE CODECOPY LT 0xED 0xD8 0xF9 0xF7 0xAE 0xB8 NOT SWAP12 0xCB PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"244:2162:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300:54;;;;;;:::i;:::-;;:::i;:::-;;;5431:14:103;;5424:22;5406:41;;5394:2;5379:18;1570:300:54;;;;;;;;2470:98;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4729:32:103;;;4711:51;;4699:2;4684:18;3935:167:54;4666:102:103;3467:407:54;;;;;;:::i;:::-;;:::i;:::-;;2306:98:101;2389:12;;2306:98;;;12810:25:103;;;12798:2;12783:18;2306:98:101;12765:76:103;1794:178:101;;;;;;:::i;:::-;;:::i;4612:327:54:-;;;;;;:::i;:::-;;:::i;1978:117:101:-;;;;;;:::i;:::-;2047:7;2065:27;;;:18;:27;;;;;;;1978:117;5005:179:54;;;;;;:::i;:::-;;:::i;1517:271:101:-;;;;;;:::i;:::-;;:::i;2196:105::-;;;;;;:::i;:::-;2286:12;;-1:-1:-1;2275:23:101;;2196:105;2190:218:54;;;;;;:::i;:::-;;:::i;2100:90:101:-;2174:13;;-1:-1:-1;;;;;2174:13:101;2100:90;;415:84;;;;;;:::i;:::-;;;;;;;;;;;;;;1929:204:54;;;;;;:::i;:::-;;:::i;1831:101:41:-;;;:::i;1201:85::-;1273:6;;-1:-1:-1;;;;;1273:6:41;1201:85;;1148:362:101;;;;;;:::i;:::-;;:::i;2632:102:54:-;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;843:298:101:-;;;;;;:::i;:::-;;:::i;317:48::-;;;;;;;;;;;;;;;-1:-1:-1;;;317:48:101;;;;;5250:315:54;;;;;;:::i;:::-;;:::i;2800:276::-;;;;;;:::i;:::-;;:::i;4388:162::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4508:25:54;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;2081:198:41;;;;;;:::i;:::-;;:::i;371:37:101:-;;;;;;;;;;;;;;;-1:-1:-1;;;371:37:101;;;;;1570:300:54;1672:4;-1:-1:-1;;;;;;1707:40:54;;-1:-1:-1;;;1707:40:54;;:104;;-1:-1:-1;;;;;;;1763:48:54;;-1:-1:-1;;;1763:48:54;1707:104;:156;;;-1:-1:-1;;;;;;;;;;937:40:62;;;1827:36:54;1688:175;;1570:300;;;;:::o;2470:98::-;2524:13;2556:5;2549:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2470:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:54;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:54;;3935:167::o;3467:407::-;3547:13;3563:23;3578:7;3563:14;:23::i;:::-;3547:39;;3610:5;-1:-1:-1;;;;;3604:11:54;:2;-1:-1:-1;;;;;3604:11:54;;;3596:57;;;;-1:-1:-1;;;3596:57:54;;10918:2:103;3596:57:54;;;10900:21:103;10957:2;10937:18;;;10930:30;10996:34;10976:18;;;10969:62;-1:-1:-1;;;11047:18:103;;;11040:31;11088:19;;3596:57:54;;;;;;;;;719:10:59;-1:-1:-1;;;;;3685:21:54;;;;:62;;-1:-1:-1;3710:37:54;3727:5;719:10:59;3734:12:54;640:96:59;3710:37:54;3664:171;;;;-1:-1:-1;;;3664:171:54;;9000:2:103;3664:171:54;;;8982:21:103;9039:2;9019:18;;;9012:30;9078:34;9058:18;;;9051:62;9149:32;9129:18;;;9122:60;9199:19;;3664:171:54;8972:252:103;3664:171:54;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3467:407;;;:::o;1794:178:101:-;1881:13;1932:12;;1921:7;:23;;:44;;;;-1:-1:-1;;7099:4:54;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:54;:30;;1794:178:101:o;4612:327:54:-;4801:41;719:10:59;4834:7:54;4801:18;:41::i;:::-;4793:100;;;;-1:-1:-1;;;4793:100:54;;;;;;;:::i;:::-;4904:28;4914:4;4920:2;4924:7;4904:9;:28::i;5005:179::-;5138:39;5155:4;5161:2;5165:7;5138:39;;;;;;;;;;;;:16;:39::i;1517:271:101:-;621:13;;-1:-1:-1;;;;;621:13:101;613:69;;;;-1:-1:-1;;;613:69:101;;8642:2:103;613:69:101;;;8624:21:103;8681:2;8661:18;;;8654:30;8720:31;8700:18;;;8693:59;8769:18;;613:69:101;8614:179:103;613:69:101;716:13;;-1:-1:-1;;;;;716:13:101;719:10:59;-1:-1:-1;;;;;700:29:101;;692:73;;;;-1:-1:-1;;;692:73:101;;11732:2:103;692:73:101;;;11714:21:103;11771:2;11751:18;;;11744:30;11810:33;11790:18;;;11783:61;11861:18;;692:73:101;11704:181:103;692:73:101;7099:4:54;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:54;1605:59:101::1;;;::::0;-1:-1:-1;;;1605:59:101;;12092:2:103;1605:59:101::1;::::0;::::1;12074:21:103::0;12131:2;12111:18;;;12104:30;12170:32;12150:18;;;12143:60;12220:18;;1605:59:101::1;12064:180:103::0;1605:59:101::1;1682:14;1688:7;1682:5;:14::i;:::-;1741:27;::::0;;;:18:::1;:27;::::0;;;;;;;;;1720:58;;13020:25:103;;;13061:18;;;13054:34;;;1720:58:101::1;::::0;12993:18:103;1720:58:101::1;;;;;;;1517:271:::0;:::o;2190:218:54:-;2262:7;2297:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2297:16:54;2331:19;2323:56;;;;-1:-1:-1;;;2323:56:54;;10565:2:103;2323:56:54;;;10547:21:103;10604:2;10584:18;;;10577:30;-1:-1:-1;;;10623:18:103;;;10616:54;10687:18;;2323:56:54;10537:174:103;1929:204:54;2001:7;-1:-1:-1;;;;;2028:19:54;;2020:73;;;;-1:-1:-1;;;2020:73:54;;8232:2:103;2020:73:54;;;8214:21:103;8271:2;8251:18;;;8244:30;8310:34;8290:18;;;8283:62;-1:-1:-1;;;8361:18:103;;;8354:39;8410:19;;2020:73:54;8204:231:103;2020:73:54;-1:-1:-1;;;;;;2110:16:54;;;;;:9;:16;;;;;;;1929:204::o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1148:362:101:-;621:13;;1251:15;;-1:-1:-1;;;;;621:13:101;613:69;;;;-1:-1:-1;;;613:69:101;;8642:2:103;613:69:101;;;8624:21:103;8681:2;8661:18;;;8654:30;8720:31;8700:18;;;8693:59;8769:18;;613:69:101;8614:179:103;613:69:101;716:13;;-1:-1:-1;;;;;716:13:101;719:10:59;-1:-1:-1;;;;;700:29:101;;692:73;;;;-1:-1:-1;;;692:73:101;;11732:2:103;692:73:101;;;11714:21:103;11771:2;11751:18;;;11744:30;11810:33;11790:18;;;11783:61;11861:18;;692:73:101;11704:181:103;692:73:101;1282:12:::1;:14:::0;;;:12:::1;:14;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;1316:12:101::1;::::0;1338:27:::1;::::0;;;:18:::1;:27;::::0;;;;:38;;;1316:12;-1:-1:-1;1403:22:101::1;1413:2:::0;1316:12;1403:9:::1;:22::i;:::-;1449:43;::::0;;13301:25:103;;;13357:2;13342:18;;13335:34;;;-1:-1:-1;;;;;13405:32:103;;13385:18;;;13378:60;1449:43:101;;::::1;::::0;;;;13289:2:103;1449:43:101;;::::1;1148:362:::0;;;;:::o;2632:102:54:-;2688:13;2720:7;2713:14;;;;;:::i;4169:153::-;4263:52;719:10:59;4296:8:54;4306;4263:18;:52::i;:::-;4169:153;;:::o;843:298:101:-;929:13;;-1:-1:-1;;;;;929:13:101;:27;921:83;;;;-1:-1:-1;;;921:83:101;;10153:2:103;921:83:101;;;10135:21:103;10192:2;10172:18;;;10165:30;10231:34;10211:18;;;10204:62;-1:-1:-1;;;10282:18:103;;;10275:41;10333:19;;921:83:101;10125:233:103;921:83:101;-1:-1:-1;;;;;1022:26:101;;1014:82;;;;-1:-1:-1;;;1014:82:101;;11320:2:103;1014:82:101;;;11302:21:103;11359:2;11339:18;;;11332:30;11398:34;11378:18;;;11371:62;-1:-1:-1;;;11449:18:103;;;11442:41;11500:19;;1014:82:101;11292:233:103;1014:82:101;1106:13;:28;;-1:-1:-1;;;;;;1106:28:101;-1:-1:-1;;;;;1106:28:101;;;;;;;;;;843:298::o;5250:315:54:-;5418:41;719:10:59;5451:7:54;5418:18;:41::i;:::-;5410:100;;;;-1:-1:-1;;;5410:100:54;;;;;;;:::i;:::-;5520:38;5534:4;5540:2;5544:7;5553:4;5520:13;:38::i;:::-;5250:315;;;;:::o;2800:276::-;2873:13;2898:23;2913:7;2898:14;:23::i;:::-;2932:21;2956:10;3394:9;;;;;;;;;-1:-1:-1;3394:9:54;;3318:92;;2956:10;2932:34;;3007:1;2989:7;2983:21;:25;:86;;;;;;;;;;;;;;;;;3035:7;3044:18;:7;:16;:18::i;:::-;3018:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2983:86;2976:93;2800:276;-1:-1:-1;;;2800:276:54:o;2081:198:41:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;6303:2:103;2161:73:41::1;::::0;::::1;6285:21:103::0;6342:2;6322:18;;;6315:30;6381:34;6361:18;;;6354:62;-1:-1:-1;;;6432:18:103;;;6425:36;6478:19;;2161:73:41::1;6275:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;11657:133:54:-;7099:4;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:54;11730:53;;;;-1:-1:-1;;;11730:53:54;;10565:2:103;11730:53:54;;;10547:21:103;10604:2;10584:18;;;10577:30;-1:-1:-1;;;10623:18:103;;;10616:54;10687:18;;11730:53:54;10537:174:103;10959:171:54;11033:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11033:29:54;-1:-1:-1;;;;;11033:29:54;;;;;;;;:24;;11086:23;11033:24;11086:14;:23::i;:::-;-1:-1:-1;;;;;11077:46:54;;;;;;;;;;;10959:171;;:::o;7317:261::-;7410:4;7426:13;7442:23;7457:7;7442:14;:23::i;:::-;7426:39;;7494:5;-1:-1:-1;;;;;7483:16:54;:7;-1:-1:-1;;;;;7483:16:54;;:52;;;-1:-1:-1;;;;;;4508:25:54;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7503:32;7483:87;;;;7563:7;-1:-1:-1;;;;;7539:31:54;:20;7551:7;7539:11;:20::i;:::-;-1:-1:-1;;;;;7539:31:54;;7483:87;7475:96;7317:261;-1:-1:-1;;;;7317:261:54:o;10242:605::-;10396:4;-1:-1:-1;;;;;10369:31:54;:23;10384:7;10369:14;:23::i;:::-;-1:-1:-1;;;;;10369:31:54;;10361:81;;;;-1:-1:-1;;;10361:81:54;;6710:2:103;10361:81:54;;;6692:21:103;6749:2;6729:18;;;6722:30;6788:34;6768:18;;;6761:62;-1:-1:-1;;;6839:18:103;;;6832:35;6884:19;;10361:81:54;6682:227:103;10361:81:54;-1:-1:-1;;;;;10460:16:54;;10452:65;;;;-1:-1:-1;;;10452:65:54;;7473:2:103;10452:65:54;;;7455:21:103;7512:2;7492:18;;;7485:30;7551:34;7531:18;;;7524:62;-1:-1:-1;;;7602:18:103;;;7595:34;7646:19;;10452:65:54;7445:226:103;10452:65:54;10629:29;10646:1;10650:7;10629:8;:29::i;:::-;-1:-1:-1;;;;;10669:15:54;;;;;;:9;:15;;;;;:20;;10688:1;;10669:15;:20;;10688:1;;10669:20;:::i;:::-;;;;-1:-1:-1;;;;;;;10699:13:54;;;;;;:9;:13;;;;;:18;;10716:1;;10699:13;:18;;10716:1;;10699:18;:::i;:::-;;;;-1:-1:-1;;10727:16:54;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10727:21:54;-1:-1:-1;;;;;10727:21:54;;;;;;;;;10764:27;;10727:16;;10764:27;;;;;;;10802:38;3467:407;9512:406;9571:13;9587:23;9602:7;9587:14;:23::i;:::-;9571:39;;9707:29;9724:1;9728:7;9707:8;:29::i;:::-;-1:-1:-1;;;;;9747:16:54;;;;;;:9;:16;;;;;:21;;9767:1;;9747:16;:21;;9767:1;;9747:21;:::i;:::-;;;;-1:-1:-1;;9785:16:54;;;;:7;:16;;;;;;9778:23;;-1:-1:-1;;;;;;9778:23:54;;;9817:36;9793:7;;9785:16;-1:-1:-1;;;;;9817:36:54;;;;;9785:16;;9817:36;9864:47;3467:407;1359:130:41;1273:6;;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;9792:2:103;1414:68:41;;;9774:21:103;;;9811:18;;;9804:30;9870:34;9850:18;;;9843:62;9922:18;;1414:68:41;9764:182:103;2433:187:41;2525:6;;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;7908:108:54:-;7983:26;7993:2;7997:7;7983:26;;;;;;;;;;;;:9;:26::i;11266:307::-;11416:8;-1:-1:-1;;;;;11407:17:54;:5;-1:-1:-1;;;;;11407:17:54;;;11399:55;;;;-1:-1:-1;;;11399:55:54;;7878:2:103;11399:55:54;;;7860:21:103;7917:2;7897:18;;;7890:30;7956:27;7936:18;;;7929:55;8001:18;;11399:55:54;7850:175:103;11399:55:54;-1:-1:-1;;;;;11464:25:54;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11464:46:54;;;;;;;;;;11525:41;;5406::103;;;11525::54;;5379:18:103;11525:41:54;;;;;;;11266:307;;;:::o;6426:305::-;6576:28;6586:4;6592:2;6596:7;6576:9;:28::i;:::-;6622:47;6645:4;6651:2;6655:7;6664:4;6622:22;:47::i;:::-;6614:110;;;;-1:-1:-1;;;6614:110:54;;;;;;;:::i;392:703:61:-;448:13;665:10;661:51;;-1:-1:-1;691:10:61;;;;;;;;;;;;-1:-1:-1;;;691:10:61;;;;;;661:51;736:5;721:12;775:75;782:9;;775:75;;807:8;;;;:::i;:::-;;-1:-1:-1;829:10:61;;-1:-1:-1;837:2:61;829:10;;:::i;:::-;;;775:75;;;859:19;891:6;881:17;;;;;;-1:-1:-1;;;881:17:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;881:17:61;;859:39;;908:150;915:10;;908:150;;941:11;951:1;941:11;;:::i;:::-;;-1:-1:-1;1009:10:61;1017:2;1009:5;:10;:::i;:::-;996:24;;:2;:24;:::i;:::-;983:39;;966:6;973;966:14;;;;;;-1:-1:-1;;;966:14:61;;;;;;;;;;;;:56;-1:-1:-1;;;;;966:56:61;;;;;;;;-1:-1:-1;1036:11:61;1045:2;1036:11;;:::i;:::-;;;908:150;;8237:309:54;8361:18;8367:2;8371:7;8361:5;:18::i;:::-;8410:53;8441:1;8445:2;8449:7;8458:4;8410:22;:53::i;:::-;8389:150;;;;-1:-1:-1;;;8389:150:54;;;;;;;:::i;12342:831::-;12491:4;-1:-1:-1;;;;;12511:13:54;;1465:19:58;:23;12507:660:54;;12546:71;;-1:-1:-1;;;12546:71:54;;-1:-1:-1;;;;;12546:36:54;;;;;:71;;719:10:59;;12597:4:54;;12603:7;;12612:4;;12546:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12546:71:54;;;;;;;;-1:-1:-1;;12546:71:54;;;;;;;;;;;;:::i;:::-;;;12542:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12784:13:54;;12780:321;;12826:60;;-1:-1:-1;;;12826:60:54;;;;;;;:::i;12780:321::-;13053:6;13047:13;13038:6;13034:2;13030:15;13023:38;12542:573;-1:-1:-1;;;;;;12667:51:54;-1:-1:-1;;;12667:51:54;;-1:-1:-1;12660:58:54;;12507:660;-1:-1:-1;13152:4:54;12342:831;;;;;;:::o;8868:427::-;-1:-1:-1;;;;;8947:16:54;;8939:61;;;;-1:-1:-1;;;8939:61:54;;9431:2:103;8939:61:54;;;9413:21:103;;;9450:18;;;9443:30;9509:34;9489:18;;;9482:62;9561:18;;8939:61:54;9403:182:103;8939:61:54;7099:4;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:54;:30;9010:58;;;;-1:-1:-1;;;9010:58:54;;7116:2:103;9010:58:54;;;7098:21:103;7155:2;7135:18;;;7128:30;7194;7174:18;;;7167:58;7242:18;;9010:58:54;7088:178:103;9010:58:54;-1:-1:-1;;;;;9135:13:54;;;;;;:9;:13;;;;;:18;;9152:1;;9135:13;:18;;9152:1;;9135:18;:::i;:::-;;;;-1:-1:-1;;9163:16:54;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9163:21:54;-1:-1:-1;;;;;9163:21:54;;;;;;;;9200:33;;9163:16;;;9200:33;;9163:16;;9200:33;9244:44;3467:407;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:1183::-;;;;;1183:3;1171:9;1162:7;1158:23;1154:33;1151:2;;;1205:6;1197;1190:22;1151:2;1233:29;1252:9;1233:29;:::i;:::-;1223:39;;1281:38;1315:2;1304:9;1300:18;1281:38;:::i;:::-;1271:48;;1366:2;1355:9;1351:18;1338:32;1328:42;;1421:2;1410:9;1406:18;1393:32;1444:18;1485:2;1477:6;1474:14;1471:2;;;1506:6;1498;1491:22;1471:2;1549:6;1538:9;1534:22;1524:32;;1594:7;1587:4;1583:2;1579:13;1575:27;1565:2;;1621:6;1613;1606:22;1565:2;1662;1649:16;1684:2;1680;1677:10;1674:2;;;1690:18;;:::i;:::-;1765:2;1759:9;1733:2;1819:13;;-1:-1:-1;;1815:22:103;;;1839:2;1811:31;1807:40;1795:53;;;1863:18;;;1883:22;;;1860:46;1857:2;;;1909:18;;:::i;:::-;1949:10;1945:2;1938:22;1984:2;1976:6;1969:18;2024:7;2019:2;2014;2010;2006:11;2002:20;1999:33;1996:2;;;2050:6;2042;2035:22;1996:2;2111;2106;2102;2098:11;2093:2;2085:6;2081:15;2068:46;2134:15;;;2151:2;2130:24;2123:40;;;;1141:1053;;;;-1:-1:-1;1141:1053:103;;-1:-1:-1;;;;1141:1053:103:o;2199:367::-;;;2325:2;2313:9;2304:7;2300:23;2296:32;2293:2;;;2346:6;2338;2331:22;2293:2;2374:29;2393:9;2374:29;:::i;:::-;2364:39;;2453:2;2442:9;2438:18;2425:32;2500:5;2493:13;2486:21;2479:5;2476:32;2466:2;;2527:6;2519;2512:22;2466:2;2555:5;2545:15;;;2283:283;;;;;:::o;2571:264::-;;;2700:2;2688:9;2679:7;2675:23;2671:32;2668:2;;;2721:6;2713;2706:22;2668:2;2749:29;2768:9;2749:29;:::i;:::-;2739:39;2825:2;2810:18;;;;2797:32;;-1:-1:-1;;;2658:177:103:o;2840:255::-;;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2972:6;2964;2957:22;2919:2;3016:9;3003:23;3035:30;3059:5;3035:30;:::i;3100:259::-;;3222:2;3210:9;3201:7;3197:23;3193:32;3190:2;;;3243:6;3235;3228:22;3190:2;3280:9;3274:16;3299:30;3323:5;3299:30;:::i;3364:190::-;;3476:2;3464:9;3455:7;3451:23;3447:32;3444:2;;;3497:6;3489;3482:22;3444:2;-1:-1:-1;3525:23:103;;3434:120;-1:-1:-1;3434:120:103:o;3559:264::-;;;3688:2;3676:9;3667:7;3663:23;3659:32;3656:2;;;3709:6;3701;3694:22;3656:2;3750:9;3737:23;3727:33;;3779:38;3813:2;3802:9;3798:18;3779:38;:::i;3828:257::-;;3907:5;3901:12;3934:6;3929:3;3922:19;3950:63;4006:6;3999:4;3994:3;3990:14;3983:4;3976:5;3972:16;3950:63;:::i;:::-;4067:2;4046:15;-1:-1:-1;;4042:29:103;4033:39;;;;4074:4;4029:50;;3877:208;-1:-1:-1;;3877:208:103:o;4090:470::-;;4307:6;4301:13;4323:53;4369:6;4364:3;4357:4;4349:6;4345:17;4323:53;:::i;:::-;4439:13;;4398:16;;;;4461:57;4439:13;4398:16;4495:4;4483:17;;4461:57;:::i;:::-;4534:20;;4277:283;-1:-1:-1;;;;4277:283:103:o;4773:488::-;-1:-1:-1;;;;;5042:15:103;;;5024:34;;5094:15;;5089:2;5074:18;;5067:43;5141:2;5126:18;;5119:34;;;5189:3;5184:2;5169:18;;5162:31;;;4773:488;;5210:45;;5235:19;;5227:6;5210:45;:::i;:::-;5202:53;4976:285;-1:-1:-1;;;;;;4976:285:103:o;5458:219::-;;5607:2;5596:9;5589:21;5627:44;5667:2;5656:9;5652:18;5644:6;5627:44;:::i;5682:414::-;5884:2;5866:21;;;5923:2;5903:18;;;5896:30;5962:34;5957:2;5942:18;;5935:62;-1:-1:-1;;;6028:2:103;6013:18;;6006:48;6086:3;6071:19;;5856:240::o;12249:410::-;12451:2;12433:21;;;12490:2;12470:18;;;12463:30;12529:34;12524:2;12509:18;;12502:62;-1:-1:-1;;;12595:2:103;12580:18;;12573:44;12649:3;12634:19;;12423:236::o;13449:128::-;;13520:1;13516:6;13513:1;13510:13;13507:2;;;13526:18;;:::i;:::-;-1:-1:-1;13562:9:103;;13497:80::o;13582:120::-;;13648:1;13638:2;;13653:18;;:::i;:::-;-1:-1:-1;13687:9:103;;13628:74::o;13707:125::-;;13775:1;13772;13769:8;13766:2;;;13780:18;;:::i;:::-;-1:-1:-1;13817:9:103;;13756:76::o;13837:258::-;13909:1;13919:113;13933:6;13930:1;13927:13;13919:113;;;14009:11;;;14003:18;13990:11;;;13983:39;13955:2;13948:10;13919:113;;;14050:6;14047:1;14044:13;14041:2;;;-1:-1:-1;;14085:1:103;14067:16;;14060:27;13890:205::o;14100:380::-;14185:1;14175:12;;14232:1;14222:12;;;14243:2;;14297:4;14289:6;14285:17;14275:27;;14243:2;14350;14342:6;14339:14;14319:18;14316:38;14313:2;;;14396:10;14391:3;14387:20;14384:1;14377:31;14431:4;14428:1;14421:15;14459:4;14456:1;14449:15;14313:2;;14155:325;;;:::o;14485:135::-;;-1:-1:-1;;14545:17:103;;14542:2;;;14565:18;;:::i;:::-;-1:-1:-1;14612:1:103;14601:13;;14532:88::o;14625:112::-;;14683:1;14673:2;;14688:18;;:::i;:::-;-1:-1:-1;14722:9:103;;14663:74::o;14742:127::-;14803:10;14798:3;14794:20;14791:1;14784:31;14834:4;14831:1;14824:15;14858:4;14855:1;14848:15;14874:127;14935:10;14930:3;14926:20;14923:1;14916:31;14966:4;14963:1;14956:15;14990:4;14987:1;14980:15;15006:127;15067:10;15062:3;15058:20;15055:1;15048:31;15098:4;15095:1;15088:15;15122:4;15119:1;15112:15;15138:131;-1:-1:-1;;;;;;15212:32:103;;15202:43;;15192:2;;15259:1;15256;15249:12"},"methodIdentifiers":{"NAME()":"a3f4df7e","SYMBOL()":"f76f8d78","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","bundleIdForTokenId(uint256)":"6ae9d6e8","burn(uint256)":"42966c68","burned(uint256)":"23250cae","exists(uint256)":"4f558e79","getApproved(uint256)":"081812fc","getBundleId(uint256)":"29a63083","getBundleModuleAddress()":"6ae73384","isApprovedForAll(address,address)":"e985e9c5","mint(uint256,address)":"94bf804d","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setBundleModule(address)":"a38b714c","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"LogBundleTokenBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenOwner\",\"type\":\"address\"}],\"name\":\"LogBundleTokenMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYMBOL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"bundleIdForTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burned\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isBurned\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBundleModuleAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bundleModule\",\"type\":\"address\"}],\"name\":\"setBundleModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/tokens/BundleToken.sol\":\"BundleToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/tokens/RiskpoolToken.sol":{"RiskpoolToken":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:396:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"69:325:103","statements":[{"nodeType":"YulAssignment","src":"79:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"93:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"99:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"89:3:103"},"nodeType":"YulFunctionCall","src":"89:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"79:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"110:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"140:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"146:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"136:3:103"},"nodeType":"YulFunctionCall","src":"136:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"114:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"187:31:103","statements":[{"nodeType":"YulAssignment","src":"189:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"203:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"211:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"199:3:103"},"nodeType":"YulFunctionCall","src":"199:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"189:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"167:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"160:6:103"},"nodeType":"YulFunctionCall","src":"160:26:103"},"nodeType":"YulIf","src":"157:2:103"},{"body":{"nodeType":"YulBlock","src":"277:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"298:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"305:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"310:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"301:3:103"},"nodeType":"YulFunctionCall","src":"301:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"291:6:103"},"nodeType":"YulFunctionCall","src":"291:31:103"},"nodeType":"YulExpressionStatement","src":"291:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"342:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"345:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"335:6:103"},"nodeType":"YulFunctionCall","src":"335:15:103"},"nodeType":"YulExpressionStatement","src":"335:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"370:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"373:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"363:6:103"},"nodeType":"YulFunctionCall","src":"363:15:103"},"nodeType":"YulExpressionStatement","src":"363:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"233:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"256:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"264:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"253:2:103"},"nodeType":"YulFunctionCall","src":"253:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"230:2:103"},"nodeType":"YulFunctionCall","src":"230:38:103"},"nodeType":"YulIf","src":"227:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"49:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"58:6:103","type":""}],"src":"14:380:103"}]},"contents":"{\n { }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b506040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b8152506040518060400160405280600381526020016214941560ea1b815250816003908051906020019061006e92919061008a565b50805161008290600490602084019061008a565b50505061015e565b82805461009690610123565b90600052602060002090601f0160209004810192826100b857600085556100fe565b82601f106100d157805160ff19168380011785556100fe565b828001600101855582156100fe579182015b828111156100fe5782518255916020019190600101906100e3565b5061010a92915061010e565b5090565b5b8082111561010a576000815560010161010f565b60028104600182168061013757607f821691505b6020821081141561015857634e487b7160e01b600052602260045260246000fd5b50919050565b6108fc8061016d6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101a8578063a9059cbb146101bb578063dd62ed3e146101ce578063f76f8d78146101e1576100cf565b806370a082311461015c57806395d89b411461016f578063a3f4df7e14610177576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610203565b6040516100e99190610814565b60405180910390f35b6101056101003660046107eb565b610295565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107b0565b6102ad565b604051601281526020016100e9565b6101056101573660046107eb565b6102d1565b61011961016a36600461075d565b6102f3565b6100dc610312565b6100dc6040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b81525081565b6101056101b63660046107eb565b610321565b6101056101c93660046107eb565b6103a1565b6101196101dc36600461077e565b6103af565b6100dc6040518060400160405280600381526020016214941560ea1b81525081565b6060600380546102129061088b565b80601f016020809104026020016040519081016040528092919081815260200182805461023e9061088b565b801561028b5780601f106102605761010080835404028352916020019161028b565b820191906000526020600020905b81548152906001019060200180831161026e57829003601f168201915b5050505050905090565b6000336102a38185856103da565b5060019392505050565b6000336102bb8582856104fe565b6102c6858585610578565b506001949350505050565b6000336102a38185856102e483836103af565b6102ee9190610867565b6103da565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102129061088b565b6000338161032f82866103af565b9050838110156103945760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102c682868684036103da565b6000336102a3818585610578565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038b565b6001600160a01b03821661049d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061050a84846103af565b9050600019811461057257818110156105655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038b565b61057284848484036103da565b50505050565b6001600160a01b0383166105dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038b565b6001600160a01b03821661063e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038b565b6001600160a01b038316600090815260208190526040902054818110156106b65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161038b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106ed908490610867565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161073991815260200190565b60405180910390a3610572565b80356001600160a01b038116811461030d57600080fd5b60006020828403121561076e578081fd5b61077782610746565b9392505050565b60008060408385031215610790578081fd5b61079983610746565b91506107a760208401610746565b90509250929050565b6000806000606084860312156107c4578081fd5b6107cd84610746565b92506107db60208501610746565b9150604084013590509250925092565b600080604083850312156107fd578182fd5b61080683610746565b946020939093013593505050565b6000602080835283518082850152825b8181101561084057858101830151858201604001528201610824565b818111156108515783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561088657634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061089f57607f821691505b602082108114156108c057634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212200894a2a8aec7d823a7bf129c100a556aaf32c5c98f4e46c38df545cdf613f4dd64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH18 0x23A4A3102934B9B5B837B7B6102A37B5B2B7 PUSH1 0x71 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x149415 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x6E SWAP3 SWAP2 SWAP1 PUSH2 0x8A JUMP JUMPDEST POP DUP1 MLOAD PUSH2 0x82 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x8A JUMP JUMPDEST POP POP POP PUSH2 0x15E JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x96 SWAP1 PUSH2 0x123 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0xB8 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0xFE JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0xD1 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xFE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xFE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xFE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xE3 JUMP JUMPDEST POP PUSH2 0x10A SWAP3 SWAP2 POP PUSH2 0x10E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x10F JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x137 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x158 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8FC DUP1 PUSH2 0x16D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x1E1 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x177 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x814 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B0 JUMP JUMPDEST PUSH2 0x2AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x2D1 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x2F3 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x312 JUMP JUMPDEST PUSH2 0xDC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH18 0x23A4A3102934B9B5B837B7B6102A37B5B2B7 PUSH1 0x71 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x3A1 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1DC CALLDATASIZE PUSH1 0x4 PUSH2 0x77E JUMP JUMPDEST PUSH2 0x3AF JUMP JUMPDEST PUSH2 0xDC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x149415 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x212 SWAP1 PUSH2 0x88B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x23E SWAP1 PUSH2 0x88B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x28B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x260 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x28B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x26E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x3DA JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2BB DUP6 DUP3 DUP6 PUSH2 0x4FE JUMP JUMPDEST PUSH2 0x2C6 DUP6 DUP6 DUP6 PUSH2 0x578 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x2E4 DUP4 DUP4 PUSH2 0x3AF JUMP JUMPDEST PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x867 JUMP JUMPDEST PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x212 SWAP1 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x32F DUP3 DUP7 PUSH2 0x3AF JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x394 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2C6 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x578 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x43C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x49D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A DUP5 DUP5 PUSH2 0x3AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x572 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x565 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x38B JUMP JUMPDEST PUSH2 0x572 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3DA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x63E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x6ED SWAP1 DUP5 SWAP1 PUSH2 0x867 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x739 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x572 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x76E JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x777 DUP3 PUSH2 0x746 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x790 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x799 DUP4 PUSH2 0x746 JUMP JUMPDEST SWAP2 POP PUSH2 0x7A7 PUSH1 0x20 DUP5 ADD PUSH2 0x746 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7C4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7CD DUP5 PUSH2 0x746 JUMP JUMPDEST SWAP3 POP PUSH2 0x7DB PUSH1 0x20 DUP6 ADD PUSH2 0x746 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7FD JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x806 DUP4 PUSH2 0x746 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x840 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x824 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x851 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x886 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x89F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8C0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDMOD SWAP5 LOG2 0xA8 0xAE 0xC7 0xD8 0x23 0xA7 0xBF SLT SWAP13 LT EXP SSTORE PUSH11 0xAF32C5C98F4E46C38DF545 0xCD 0xF6 SGT DELEGATECALL 0xDD PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"120:199:102:-:0;;;262:55;;;;;;;;;;291:4;;;;;;;;;;;;;-1:-1:-1;;;291:4:102;;;297:6;;;;;;;;;;;;;-1:-1:-1;;;297:6:102;;;2052:5:49;2044;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;120:199:102;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;120:199:102;;;-1:-1:-1;120:199:102;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:380:103;99:1;89:12;;146:1;136:12;;;157:2;;211:4;203:6;199:17;189:27;;157:2;264;256:6;253:14;233:18;230:38;227:2;;;310:10;305:3;301:20;298:1;291:31;345:4;342:1;335:15;373:4;370:1;363:15;227:2;;69:325;;;:::o;:::-;120:199:102;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5856:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1375:92:103","statements":[{"nodeType":"YulAssignment","src":"1385:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:103"},"nodeType":"YulFunctionCall","src":"1393:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:103"},"nodeType":"YulFunctionCall","src":"1445:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:103"},"nodeType":"YulFunctionCall","src":"1438:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:103"},"nodeType":"YulFunctionCall","src":"1420:41:103"},"nodeType":"YulExpressionStatement","src":"1420:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:103","type":""}],"src":"1280:187:103"},{"body":{"nodeType":"YulBlock","src":"1593:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:103"},"nodeType":"YulFunctionCall","src":"1624:21:103"},"nodeType":"YulExpressionStatement","src":"1624:21:103"},{"nodeType":"YulVariableDeclaration","src":"1654:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:103"},"nodeType":"YulFunctionCall","src":"1668:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:103"},"nodeType":"YulFunctionCall","src":"1697:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:103"},"nodeType":"YulFunctionCall","src":"1690:34:103"},"nodeType":"YulExpressionStatement","src":"1690:34:103"},{"nodeType":"YulVariableDeclaration","src":"1733:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:103"},"nodeType":"YulFunctionCall","src":"1826:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:103"},"nodeType":"YulFunctionCall","src":"1854:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:103"},"nodeType":"YulFunctionCall","src":"1819:66:103"},"nodeType":"YulExpressionStatement","src":"1819:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:103"},"nodeType":"YulFunctionCall","src":"1763:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:103","statements":[{"nodeType":"YulAssignment","src":"1779:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:103"},"nodeType":"YulFunctionCall","src":"1784:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:103","statements":[]},"src":"1755:140:103"},{"body":{"nodeType":"YulBlock","src":"1929:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:103"},"nodeType":"YulFunctionCall","src":"1954:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:103"},"nodeType":"YulFunctionCall","src":"1950:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:103"},"nodeType":"YulFunctionCall","src":"1943:45:103"},"nodeType":"YulExpressionStatement","src":"1943:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:103"},"nodeType":"YulFunctionCall","src":"1907:13:103"},"nodeType":"YulIf","src":"1904:2:103"},{"nodeType":"YulAssignment","src":"2007:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:103"},"nodeType":"YulFunctionCall","src":"2038:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:103"},"nodeType":"YulFunctionCall","src":"2055:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:103"},"nodeType":"YulFunctionCall","src":"2019:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:103"},"nodeType":"YulFunctionCall","src":"2015:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:103","type":""}],"src":"1472:603:103"},{"body":{"nodeType":"YulBlock","src":"2254:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:103"},"nodeType":"YulFunctionCall","src":"2264:21:103"},"nodeType":"YulExpressionStatement","src":"2264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:103"},"nodeType":"YulFunctionCall","src":"2294:30:103"},"nodeType":"YulExpressionStatement","src":"2294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:62:103"},"nodeType":"YulExpressionStatement","src":"2333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:103"},"nodeType":"YulFunctionCall","src":"2411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:103"},"nodeType":"YulFunctionCall","src":"2404:33:103"},"nodeType":"YulExpressionStatement","src":"2404:33:103"},{"nodeType":"YulAssignment","src":"2446:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:103"},"nodeType":"YulFunctionCall","src":"2454:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:103","type":""}],"src":"2080:399:103"},{"body":{"nodeType":"YulBlock","src":"2658:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:103"},"nodeType":"YulFunctionCall","src":"2668:21:103"},"nodeType":"YulExpressionStatement","src":"2668:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:103"},"nodeType":"YulFunctionCall","src":"2698:30:103"},"nodeType":"YulExpressionStatement","src":"2698:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:103"},"nodeType":"YulFunctionCall","src":"2737:62:103"},"nodeType":"YulExpressionStatement","src":"2737:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:103"},"nodeType":"YulFunctionCall","src":"2815:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:103"},"nodeType":"YulFunctionCall","src":"2808:32:103"},"nodeType":"YulExpressionStatement","src":"2808:32:103"},{"nodeType":"YulAssignment","src":"2849:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:103"},"nodeType":"YulFunctionCall","src":"2857:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:103","type":""}],"src":"2484:398:103"},{"body":{"nodeType":"YulBlock","src":"3061:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:21:103"},"nodeType":"YulExpressionStatement","src":"3071:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:103"},"nodeType":"YulFunctionCall","src":"3108:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:103"},"nodeType":"YulFunctionCall","src":"3101:30:103"},"nodeType":"YulExpressionStatement","src":"3101:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:103"},"nodeType":"YulFunctionCall","src":"3140:59:103"},"nodeType":"YulExpressionStatement","src":"3140:59:103"},{"nodeType":"YulAssignment","src":"3208:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:103"},"nodeType":"YulFunctionCall","src":"3216:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:103","type":""}],"src":"2887:353:103"},{"body":{"nodeType":"YulBlock","src":"3419:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:21:103"},"nodeType":"YulExpressionStatement","src":"3429:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:103"},"nodeType":"YulFunctionCall","src":"3459:30:103"},"nodeType":"YulExpressionStatement","src":"3459:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:62:103"},"nodeType":"YulExpressionStatement","src":"3498:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:103"},"nodeType":"YulFunctionCall","src":"3569:36:103"},"nodeType":"YulExpressionStatement","src":"3569:36:103"},{"nodeType":"YulAssignment","src":"3614:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:103","type":""}],"src":"3245:402:103"},{"body":{"nodeType":"YulBlock","src":"3826:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:103"},"nodeType":"YulFunctionCall","src":"3836:21:103"},"nodeType":"YulExpressionStatement","src":"3836:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:103"},"nodeType":"YulFunctionCall","src":"3873:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:103"},"nodeType":"YulFunctionCall","src":"3866:30:103"},"nodeType":"YulExpressionStatement","src":"3866:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:103"},"nodeType":"YulFunctionCall","src":"3912:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:103"},"nodeType":"YulFunctionCall","src":"3905:62:103"},"nodeType":"YulExpressionStatement","src":"3905:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:103"},"nodeType":"YulFunctionCall","src":"3983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:35:103"},"nodeType":"YulExpressionStatement","src":"3976:35:103"},{"nodeType":"YulAssignment","src":"4020:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:103","type":""}],"src":"3652:401:103"},{"body":{"nodeType":"YulBlock","src":"4232:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:103"},"nodeType":"YulFunctionCall","src":"4242:21:103"},"nodeType":"YulExpressionStatement","src":"4242:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:103"},"nodeType":"YulFunctionCall","src":"4279:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:103"},"nodeType":"YulFunctionCall","src":"4272:30:103"},"nodeType":"YulExpressionStatement","src":"4272:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:103"},"nodeType":"YulFunctionCall","src":"4318:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:103"},"nodeType":"YulFunctionCall","src":"4311:62:103"},"nodeType":"YulExpressionStatement","src":"4311:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:103"},"nodeType":"YulFunctionCall","src":"4382:34:103"},"nodeType":"YulExpressionStatement","src":"4382:34:103"},{"nodeType":"YulAssignment","src":"4425:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:103"},"nodeType":"YulFunctionCall","src":"4433:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:103","type":""}],"src":"4058:400:103"},{"body":{"nodeType":"YulBlock","src":"4637:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:21:103"},"nodeType":"YulExpressionStatement","src":"4647:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:103"},"nodeType":"YulFunctionCall","src":"4677:30:103"},"nodeType":"YulExpressionStatement","src":"4677:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:103"},"nodeType":"YulFunctionCall","src":"4723:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:103"},"nodeType":"YulFunctionCall","src":"4716:62:103"},"nodeType":"YulExpressionStatement","src":"4716:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:103"},"nodeType":"YulFunctionCall","src":"4794:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:103"},"nodeType":"YulFunctionCall","src":"4787:35:103"},"nodeType":"YulExpressionStatement","src":"4787:35:103"},{"nodeType":"YulAssignment","src":"4831:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:103"},"nodeType":"YulFunctionCall","src":"4839:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:103","type":""}],"src":"4463:401:103"},{"body":{"nodeType":"YulBlock","src":"4970:76:103","statements":[{"nodeType":"YulAssignment","src":"4980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4988:3:103"},"nodeType":"YulFunctionCall","src":"4988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5015:6:103"},"nodeType":"YulFunctionCall","src":"5015:25:103"},"nodeType":"YulExpressionStatement","src":"5015:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4961:4:103","type":""}],"src":"4869:177:103"},{"body":{"nodeType":"YulBlock","src":"5148:87:103","statements":[{"nodeType":"YulAssignment","src":"5158:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:103"},"nodeType":"YulFunctionCall","src":"5166:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5223:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5211:3:103"},"nodeType":"YulFunctionCall","src":"5211:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:103"},"nodeType":"YulFunctionCall","src":"5193:36:103"},"nodeType":"YulExpressionStatement","src":"5193:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5117:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5128:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5139:4:103","type":""}],"src":"5051:184:103"},{"body":{"nodeType":"YulBlock","src":"5288:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"5323:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5344:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:103"},"nodeType":"YulFunctionCall","src":"5349:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:103"},"nodeType":"YulFunctionCall","src":"5337:33:103"},"nodeType":"YulExpressionStatement","src":"5337:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5390:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5393:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:103"},"nodeType":"YulFunctionCall","src":"5383:15:103"},"nodeType":"YulExpressionStatement","src":"5383:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5418:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5423:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5411:6:103"},"nodeType":"YulFunctionCall","src":"5411:17:103"},"nodeType":"YulExpressionStatement","src":"5411:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5304:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5311:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5307:3:103"},"nodeType":"YulFunctionCall","src":"5307:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5301:2:103"},"nodeType":"YulFunctionCall","src":"5301:13:103"},"nodeType":"YulIf","src":"5298:2:103"},{"nodeType":"YulAssignment","src":"5447:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5458:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5461:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:103"},"nodeType":"YulFunctionCall","src":"5454:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5447:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5271:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5274:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5280:3:103","type":""}],"src":"5240:229:103"},{"body":{"nodeType":"YulBlock","src":"5529:325:103","statements":[{"nodeType":"YulAssignment","src":"5539:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5553:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5559:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5549:3:103"},"nodeType":"YulFunctionCall","src":"5549:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5539:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5570:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5606:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5596:3:103"},"nodeType":"YulFunctionCall","src":"5596:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5574:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5647:31:103","statements":[{"nodeType":"YulAssignment","src":"5649:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5663:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5671:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5659:3:103"},"nodeType":"YulFunctionCall","src":"5659:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5649:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5627:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5620:6:103"},"nodeType":"YulFunctionCall","src":"5620:26:103"},"nodeType":"YulIf","src":"5617:2:103"},{"body":{"nodeType":"YulBlock","src":"5737:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5765:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5770:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5761:3:103"},"nodeType":"YulFunctionCall","src":"5761:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5751:6:103"},"nodeType":"YulFunctionCall","src":"5751:31:103"},"nodeType":"YulExpressionStatement","src":"5751:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5802:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5805:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5795:6:103"},"nodeType":"YulFunctionCall","src":"5795:15:103"},"nodeType":"YulExpressionStatement","src":"5795:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5833:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5823:6:103"},"nodeType":"YulFunctionCall","src":"5823:15:103"},"nodeType":"YulExpressionStatement","src":"5823:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5693:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5716:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5724:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5713:2:103"},"nodeType":"YulFunctionCall","src":"5713:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5690:2:103"},"nodeType":"YulFunctionCall","src":"5690:38:103"},"nodeType":"YulIf","src":"5687:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5509:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5518:6:103","type":""}],"src":"5474:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101a8578063a9059cbb146101bb578063dd62ed3e146101ce578063f76f8d78146101e1576100cf565b806370a082311461015c57806395d89b411461016f578063a3f4df7e14610177576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610203565b6040516100e99190610814565b60405180910390f35b6101056101003660046107eb565b610295565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107b0565b6102ad565b604051601281526020016100e9565b6101056101573660046107eb565b6102d1565b61011961016a36600461075d565b6102f3565b6100dc610312565b6100dc6040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b81525081565b6101056101b63660046107eb565b610321565b6101056101c93660046107eb565b6103a1565b6101196101dc36600461077e565b6103af565b6100dc6040518060400160405280600381526020016214941560ea1b81525081565b6060600380546102129061088b565b80601f016020809104026020016040519081016040528092919081815260200182805461023e9061088b565b801561028b5780601f106102605761010080835404028352916020019161028b565b820191906000526020600020905b81548152906001019060200180831161026e57829003601f168201915b5050505050905090565b6000336102a38185856103da565b5060019392505050565b6000336102bb8582856104fe565b6102c6858585610578565b506001949350505050565b6000336102a38185856102e483836103af565b6102ee9190610867565b6103da565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102129061088b565b6000338161032f82866103af565b9050838110156103945760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102c682868684036103da565b6000336102a3818585610578565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038b565b6001600160a01b03821661049d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061050a84846103af565b9050600019811461057257818110156105655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038b565b61057284848484036103da565b50505050565b6001600160a01b0383166105dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038b565b6001600160a01b03821661063e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038b565b6001600160a01b038316600090815260208190526040902054818110156106b65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161038b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106ed908490610867565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161073991815260200190565b60405180910390a3610572565b80356001600160a01b038116811461030d57600080fd5b60006020828403121561076e578081fd5b61077782610746565b9392505050565b60008060408385031215610790578081fd5b61079983610746565b91506107a760208401610746565b90509250929050565b6000806000606084860312156107c4578081fd5b6107cd84610746565b92506107db60208501610746565b9150604084013590509250925092565b600080604083850312156107fd578182fd5b61080683610746565b946020939093013593505050565b6000602080835283518082850152825b8181101561084057858101830151858201604001528201610824565b818111156108515783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561088657634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061089f57607f821691505b602082108114156108c057634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212200894a2a8aec7d823a7bf129c100a556aaf32c5c98f4e46c38df545cdf613f4dd64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x1E1 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x177 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x814 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B0 JUMP JUMPDEST PUSH2 0x2AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x2D1 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x2F3 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x312 JUMP JUMPDEST PUSH2 0xDC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH18 0x23A4A3102934B9B5B837B7B6102A37B5B2B7 PUSH1 0x71 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x3A1 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1DC CALLDATASIZE PUSH1 0x4 PUSH2 0x77E JUMP JUMPDEST PUSH2 0x3AF JUMP JUMPDEST PUSH2 0xDC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x149415 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x212 SWAP1 PUSH2 0x88B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x23E SWAP1 PUSH2 0x88B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x28B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x260 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x28B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x26E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x3DA JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2BB DUP6 DUP3 DUP6 PUSH2 0x4FE JUMP JUMPDEST PUSH2 0x2C6 DUP6 DUP6 DUP6 PUSH2 0x578 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x2E4 DUP4 DUP4 PUSH2 0x3AF JUMP JUMPDEST PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x867 JUMP JUMPDEST PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x212 SWAP1 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x32F DUP3 DUP7 PUSH2 0x3AF JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x394 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2C6 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x578 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x43C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x49D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A DUP5 DUP5 PUSH2 0x3AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x572 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x565 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x38B JUMP JUMPDEST PUSH2 0x572 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3DA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x63E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x6ED SWAP1 DUP5 SWAP1 PUSH2 0x867 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x739 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x572 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x76E JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x777 DUP3 PUSH2 0x746 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x790 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x799 DUP4 PUSH2 0x746 JUMP JUMPDEST SWAP2 POP PUSH2 0x7A7 PUSH1 0x20 DUP5 ADD PUSH2 0x746 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7C4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7CD DUP5 PUSH2 0x746 JUMP JUMPDEST SWAP3 POP PUSH2 0x7DB PUSH1 0x20 DUP6 ADD PUSH2 0x746 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7FD JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x806 DUP4 PUSH2 0x746 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x840 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x824 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x851 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x886 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x89F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8C0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDMOD SWAP5 LOG2 0xA8 0xAE 0xC7 0xD8 0x23 0xA7 0xBF SLT SWAP13 LT EXP SSTORE PUSH11 0xAF32C5C98F4E46C38DF545 0xCD 0xF6 SGT DELEGATECALL 0xDD PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"120:199:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:49;1375:92:103;3244:106:49;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:49;4970:76:103;5192:286:49;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:49;5148:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;162:50:102:-;;;;;;;;;;;;;;;-1:-1:-1;;;162:50:102;;;;;6594:427:49;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;218:37:102:-;;;;;;;;;;;;;;;-1:-1:-1;;;218:37:102;;;;;2156:98:49;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:49;;5192:286;-1:-1:-1;;;;5192:286:49:o;5873:234::-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;4665:2:103;6803:85:49;;;4647:21:103;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:103;;;4787:35;4839:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;4260:2:103;10233:68:49;;;4242:21:103;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:103;;;4382:34;4433:19;;10233:68:49;4232:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;2686:2:103;10311:68:49;;;2668:21:103;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:103;;;2808:32;2857:19;;10311:68:49;2658:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:103;;;10441:32:49;;4988:18:103;10441:32:49;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;3089:2:103;11010:68:49;;;3071:21:103;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:49;3061:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;3854:2:103;7593:68:49;;;3836:21:103;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:103;;;3976:35;4028:19;;7593:68:49;3826:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;2282:2:103;7671:64:49;;;2264:21:103;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:103;;;2404:33;2454:19;;7671:64:49;2254:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;3447:2:103;7842:72:49;;;3429:21:103;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:103;;;3569:36;3622:19;;7842:72:49;3419:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;5015:25:103;;5003:2;4988:18;;4970:76;8045:26:49;;;;;;;;8082:37;11786:121;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:103:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:103;2038:15;-1:-1:-1;;2034:29:103;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:103:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:103;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:103;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o"},"methodIdentifiers":{"NAME()":"a3f4df7e","SYMBOL()":"f76f8d78","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYMBOL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/tokens/RiskpoolToken.sol\":\"RiskpoolToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/tokens/RiskpoolToken.sol\":{\"keccak256\":\"0x984bcd9eaefa54e14c386e54d947afafd4d6a89d392547ea6743107d4552c50d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d4c3c94eaa0c721df43d5c2c57d5532a29b1834ec3cd5ee17c2845241b2c7963\",\"dweb:/ipfs/QmbdybfE1iWinviSTEG4n4b6VEENKjZeJGDofZoUPx5ZFR\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/contracts/Migrations.sol/Migrations.dbg.json b/artifacts/contracts/Migrations.sol/Migrations.dbg.json new file mode 100644 index 00000000..92f60070 --- /dev/null +++ b/artifacts/contracts/Migrations.sol/Migrations.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/Migrations.sol/Migrations.json b/artifacts/contracts/Migrations.sol/Migrations.json new file mode 100644 index 00000000..b2f2f321 --- /dev/null +++ b/artifacts/contracts/Migrations.sol/Migrations.json @@ -0,0 +1,68 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Migrations", + "sourceName": "contracts/Migrations.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newAddress", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101d1806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610082578063fdacd576146100ad575b600080fd5b61006461005f366004610155565b6100c0565b005b61006f60015481565b6040519081526020015b60405180910390f35b600054610095906001600160a01b031681565b6040516001600160a01b039091168152602001610079565b6100646100bb366004610183565b61013d565b6000546001600160a01b031633141561013a57600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916101069160040190815260200190565b600060405180830381600087803b15801561012057600080fd5b505af1158015610134573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031633141561013a57600155565b600060208284031215610166578081fd5b81356001600160a01b038116811461017c578182fd5b9392505050565b600060208284031215610194578081fd5b503591905056fea2646970667358221220a7ffc413689af522848c08543fae43e42c89e0f98d7b3bbedcc1c037759491e064736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610082578063fdacd576146100ad575b600080fd5b61006461005f366004610155565b6100c0565b005b61006f60015481565b6040519081526020015b60405180910390f35b600054610095906001600160a01b031681565b6040516001600160a01b039091168152602001610079565b6100646100bb366004610183565b61013d565b6000546001600160a01b031633141561013a57600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916101069160040190815260200190565b600060405180830381600087803b15801561012057600080fd5b505af1158015610134573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031633141561013a57600155565b600060208284031215610166578081fd5b81356001600160a01b038116811461017c578182fd5b9392505050565b600060208284031215610194578081fd5b503591905056fea2646970667358221220a7ffc413689af522848c08543fae43e42c89e0f98d7b3bbedcc1c037759491e064736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.dbg.json b/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.json b/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.json new file mode 100644 index 00000000..c786f0bc --- /dev/null +++ b/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.json @@ -0,0 +1,844 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AyiiOracle", + "sourceName": "contracts/examples/AyiiOracle.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_name", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_registry", + "type": "address" + }, + { + "internalType": "address", + "name": "_chainLinkToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_chainLinkOperator", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_jobId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "_payment", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "ChainlinkCancelled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "ChainlinkFulfilled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "ChainlinkRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "chainlinkRequestId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "projectId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "uaiId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "cropId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "aaay", + "type": "uint256" + } + ], + "name": "LogAyiiFulfill", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "chainlinkRequestId", + "type": "bytes32" + } + ], + "name": "LogAyiiRequest", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oracleAddress", + "type": "address" + } + ], + "name": "LogOracleCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "cancel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "chainlinkRequestId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "projectId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "uaiId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "cropId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "aaay", + "type": "uint256" + } + ], + "name": "encodeFulfillParameters", + "outputs": [ + { + "internalType": "bytes", + "name": "parameterData", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "chainlinkRequestId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "projectId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "uaiId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "cropId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "aaay", + "type": "uint256" + } + ], + "name": "fulfill", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getChainlinkJobId", + "outputs": [ + { + "internalType": "bytes32", + "name": "chainlinkJobId", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getChainlinkOperator", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getChainlinkPayment", + "outputs": [ + { + "internalType": "uint256", + "name": "paymentAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getChainlinkToken", + "outputs": [ + { + "internalType": "address", + "name": "linkTokenAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "gifRequests", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "jobId", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "payment", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "gifRequestId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "input", + "type": "bytes" + } + ], + "name": "request", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_chainLinkToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_chainLinkOperator", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_jobId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "_payment", + "type": "uint256" + } + ], + "name": "updateRequestDetails", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526001600c553480156200001657600080fd5b506040516200206d3803806200206d8339810160408190526200003991620004bc565b8585816000826200004a3362000273565b6001600160a01b038116620000b25760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000dc620002c3565b600480546001600160a01b0319166001600160a01b039290921691909117905562000106620002de565b600580546001600160a01b0319166001600160a01b0392909216919091179055620001306200030b565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200018357634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001d792909160ff82169130916101009091046001600160a01b03169062000521565b60405180910390a1505050620002036c4f7261636c655365727669636560981b6200032560201b60201c565b600780546001600160a01b0319166001600160a01b03929092169190911790556040513081527f77dee27cd265ac28cb5ba0d4f1a792ad0425ca4ae8bd0c6253b99ec26ac454109060200160405180910390a15062000267905084848484620003b3565b5050505050506200056c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620002d96541636365737360d01b62000325565b905090565b6000620002d97f436f6d706f6e656e744f776e657253657276696365000000000000000000000062000325565b6000620002d96e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200037057600080fd5b505afa15801562000385573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ab919062000498565b90505b919050565b620003bd62000422565b6001600160a01b03841615620003e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b038316156200041557600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6000546001600160a01b031633146200047e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620000a9565b565b80516001600160a01b0381168114620003ae57600080fd5b600060208284031215620004aa578081fd5b620004b58262000480565b9392505050565b60008060008060008060c08789031215620004d5578182fd5b86519550620004e76020880162000480565b9450620004f76040880162000480565b9350620005076060880162000480565b92506080870151915060a087015190509295509295509295565b84815260808101600385106200054757634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b611af1806200057c6000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063893d20e81161011a578063be169e7e116100ad578063d73cd9921161007c578063d73cd99214610319578063e0815f0d146103d8578063e8f8e1c1146103e0578063f2fde38b146103e8578063ffc79065146103fb576101fb565b8063be169e7e14610319578063c2939d97146103a9578063ca5ddcf3146103b2578063d0e0ba95146103c5576101fb565b8063a18f5ae2116100e9578063a18f5ae214610319578063b3fca9bd14610319578063b6e45ee014610399578063bd1fe5d0146103a1576101fb565b8063893d20e8146103585780638da5cb5b1461036d57806397e873e91461037e5780639a82f89014610391576101fb565b8063423b3b7a116101925780635b16d9b2116101615780635b16d9b2146103385780635d1ca63114610340578063638ce0ba14610348578063715018a614610350576101fb565b8063423b3b7a146102b857806342f6487a1461031057806359dacc6a146103195780635ab1bd5314610321576101fb565b80631b867c63116101ce5780631b867c6314610263578063258d560c1461026d5780633fb80f511461028557806340e58ee5146102a5576101fb565b806315dae03e14610200578063165d35e11461021c57806317d7de7c1461023c5780631865c57d1461024e575b600080fd5b60035460ff166040516102139190611876565b60405180910390f35b61022461040e565b6040516001600160a01b039091168152602001610213565b6001545b604051908152602001610213565b610256610427565b604051610213919061185c565b61026b6104a8565b005b610275610500565b6040519015158152602001610213565b610240610293366004611653565b600e6020526000908152604090205481565b61026b6102b3366004611653565b610530565b6103036102c6366004611696565b604080516020810196909652858101949094526060850192909252608084015260a0808401919091528151808403909101815260c0909201905290565b6040516102139190611849565b61024060105481565b61026b61053b565b61022460035461010090046001600160a01b031690565b601054610240565b600254610240565b61026b610585565b61026b6105d2565b610224600080546001600160a01b0316610422565b6000546001600160a01b0316610224565b61026b61038c366004611696565b6105e4565b610275610761565b600f54610240565b61026b610769565b610240600f5481565b61026b6103c03660046115ee565b6107b6565b61026b6103d3366004611653565b610821565b61027561086b565b610224610874565b61026b6103f63660046115b6565b610888565b61026b6104093660046116ef565b6108fe565b6000610422600a546001600160a01b031690565b905090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561047057600080fd5b505afa158015610484573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906116d0565b6104bd6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146104f65760405162461bcd60e51b81526004016104ed9061188a565b60405180910390fd5b6104fe610b0b565b565b600060025b60035460ff16600281111561052a57634e487b7160e01b600052602160045260246000fd5b14905090565b610538610b48565b50565b6105506810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105805760405162461bcd60e51b81526004016104ed9061188a565b6104fe565b61059a6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105ca5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610ba2565b6105da610b48565b6104fe6000610bcc565b6000858152600d602052604090205485906001600160a01b0316331461065d5760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084016104ed565b6000818152600d602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a26000868152600e602090815260408083205481519283018990529082018790526060820186905260808201859052919060a00160405160208183030381529060405290506106ee8282610c1c565b6000888152600e602090815260408083209290925581518481529081018a9052908101889052606081018790526080810186905260a081018590527fd3d5b0141a5d81ac8c98139f284f1b25fb3061bc81857f74de9a702e382916349060c0015b60405180910390a15050505050505050565b600080610505565b61077e6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146107ae5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610c84565b6107be610b48565b6001600160a01b038416156107e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383161561081457600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6108366810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146108665760405162461bcd60e51b81526004016104ed9061188a565b600255565b60006001610505565b6000610422600b546001600160a01b031690565b610890610b48565b6001600160a01b0381166108f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61053881610bcc565b61090f64517565727960d81b610a81565b6001600160a01b0316336001600160a01b03161461096f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e494544000000000060448201526064016104ed565b6000610985600f54306397e873e960e01b610cae565b9050600080806109978587018761166b565b9250925092506109d3604051806040016040528060098152602001681c1c9bda9958dd125960ba1b8152506109cb85610cd5565b869190610d8d565b6109fd604051806040016040528060058152602001641d585a525960da1b8152506109cb84610cd5565b610a286040518060400160405280600681526020016518dc9bdc125960d21b8152506109cb83610cd5565b6000610a3685601054610db0565b6000818152600e60209081526040918290208b905581518b81529081018390529192507f09ee0ce04d9140f363cd342b605f7aaae55e9c0d84a975c417e55ce074b49332910161074f565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0391906115d2565b90505b919050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b23610b3560025490565b60405190815260200160405180910390a1565b6000546001600160a01b031633146104fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e6610b3560025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a90610c4e90859085906004016118c1565b600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505050565b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d610b3560025490565b610cb661157b565b610cbe61157b565b610cca81868686610dd3565b9150505b9392505050565b6060610cf4604051806040016040528060008152602001600081525090565b6040516020810160405283815280602083015250610d1183610e19565b80825260009067ffffffffffffffff811115610d3d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610d67576020820181803683370190505b5090506000602082019050610d858184602001518560000151610f03565b509392505050565b6080830151610d9c9083610f7d565b6080830151610dab9082610f7d565b505050565b600b54600090610dca906001600160a01b03168484610f94565b90505b92915050565b610ddb61157b565b610deb8560800151610100611027565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b60008082610e2b576000915050610b06565b6fffffffffffffffffffffffffffffffff8316610e6057610e4d6010826118da565b9050610e5d600160801b846118f2565b92505b67ffffffffffffffff8316610e9257610e7a6008826118da565b9050610e8f68010000000000000000846118f2565b92505b63ffffffff8316610ebc57610ea86004826118da565b9050610eb9640100000000846118f2565b92505b61ffff8316610ee257610ed06002826118da565b9050610edf62010000846118f2565b92505b60ff8316610ef857610ef56001826118da565b90505b610cce816020611a39565b60208110610f3b5781518352610f1a6020846118da565b9250610f276020836118da565b9150610f34602082611a39565b9050610f03565b6000198115610f6a576001610f51836020611a39565b610f5d9061010061194c565b610f679190611a39565b90505b9151835183169219169190911790915250565b610f8a826003835161108c565b610dab82826111a7565b600c54600090610fa58160016118da565b600c55835160408086015160808701515191516000936320214ca360e11b93610fdd9386938493923092918a916001916024016117b1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061101d868386846111ce565b9695505050505050565b604080518082019091526060815260006020820152611047602083611a50565b1561106f57611057602083611a50565b611062906020611a39565b61106c90836118da565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116110b7576110b18360e0600585901b16831761133b565b50610dab565b60ff8167ffffffffffffffff16116110f5576110de836018611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166001611360565b61ffff8167ffffffffffffffff16116111345761111d836019611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166002611360565b63ffffffff8167ffffffffffffffff16116111755761115e83601a611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166004611360565b61118a83601b611fe0600586901b161761133b565b506111a18367ffffffffffffffff83166008611360565b50505050565b604080518082019091526060815260006020820152610dca83846000015151848551611386565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600d90925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600a54604051630200057560e51b81526001600160a01b0390911690634000aea09061129190889087908790600401611819565b602060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e39190611633565b610e115760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b60648201526084016104ed565b604080518082019091526060815260006020820152610dca8384600001515184611470565b604080518082019091526060815260006020820152610e118485600001515185856114cc565b60408051808201909152606081526000602082015282518211156113a957600080fd5b60208501516113b883866118da565b11156113eb576113eb856113db876020015187866113d691906118da565b61154d565b6113e6906002611a1a565b611564565b60008086518051876020830101935080888701111561140a5787860182525b505050602084015b6020841061144a57805182526114296020836118da565b91506114366020826118da565b9050611443602085611a39565b9350611412565b51815160001960208690036101000a019081169019919091161790525083949350505050565b604080518082019091526060815260006020820152836020015183106114a5576114a584856020015160026113e69190611a1a565b8351805160208583010184815350808514156114c2576001810182525b5093949350505050565b60408051808201909152606081526000602082015260208501516114f085846118da565b111561150457611504856113db86856118da565b600060016115148461010061194c565b61151e9190611a39565b90508551838682010185831982511617815250805184870111156115425783860181525b509495945050505050565b60008183111561155e575081610dcd565b50919050565b81516115708383611027565b506111a183826111a7565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000602082840312156115c7578081fd5b8135610cce81611aa6565b6000602082840312156115e3578081fd5b8151610cce81611aa6565b60008060008060808587031215611603578283fd5b843561160e81611aa6565b9350602085013561161e81611aa6565b93969395505050506040820135916060013590565b600060208284031215611644578081fd5b81518015158114610cce578182fd5b600060208284031215611664578081fd5b5035919050565b60008060006060848603121561167f578283fd5b505081359360208301359350604090920135919050565b600080600080600060a086880312156116ad578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000602082840312156116e1578081fd5b815160078110610cce578182fd5b600080600060408486031215611703578283fd5b83359250602084013567ffffffffffffffff80821115611721578384fd5b818601915086601f830112611734578384fd5b813581811115611742578485fd5b876020828501011115611753578485fd5b6020830194508093505050509250925092565b60008151808452815b8181101561178b5760208185018101518683018201520161176f565b8181111561179c5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061180a83820185611766565b9b9a5050505050505050505050565b600060018060a01b0385168252836020830152606060408301526118406060830184611766565b95945050505050565b600060208252610dca6020830184611766565b602081016007831061187057611870611a90565b91905290565b602081016003831061187057611870611a90565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260406020830152610e116040830184611766565b600082198211156118ed576118ed611a64565b500190565b60008261190157611901611a7a565b500490565b80825b60018086116119185750611943565b81870482111561192a5761192a611a64565b8086161561193757918102915b9490941c938002611909565b94509492505050565b6000610dca600019848460008261196557506001610cce565b8161197257506000610cce565b81600181146119885760028114611992576119bf565b6001915050610cce565b60ff8411156119a3576119a3611a64565b6001841b9150848211156119b9576119b9611a64565b50610cce565b5060208310610133831016604e8410600b84101617156119f2575081810a838111156119ed576119ed611a64565b610cce565b6119ff8484846001611906565b808604821115611a1157611a11611a64565b02949350505050565b6000816000190483118215151615611a3457611a34611a64565b500290565b600082821015611a4b57611a4b611a64565b500390565b600082611a5f57611a5f611a7a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038116811461053857600080fdfea264697066735822122032e1343ae3cf45cc987315ea3df5115358453bec437a4d8d956c9c7ac8dc31c064736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063893d20e81161011a578063be169e7e116100ad578063d73cd9921161007c578063d73cd99214610319578063e0815f0d146103d8578063e8f8e1c1146103e0578063f2fde38b146103e8578063ffc79065146103fb576101fb565b8063be169e7e14610319578063c2939d97146103a9578063ca5ddcf3146103b2578063d0e0ba95146103c5576101fb565b8063a18f5ae2116100e9578063a18f5ae214610319578063b3fca9bd14610319578063b6e45ee014610399578063bd1fe5d0146103a1576101fb565b8063893d20e8146103585780638da5cb5b1461036d57806397e873e91461037e5780639a82f89014610391576101fb565b8063423b3b7a116101925780635b16d9b2116101615780635b16d9b2146103385780635d1ca63114610340578063638ce0ba14610348578063715018a614610350576101fb565b8063423b3b7a146102b857806342f6487a1461031057806359dacc6a146103195780635ab1bd5314610321576101fb565b80631b867c63116101ce5780631b867c6314610263578063258d560c1461026d5780633fb80f511461028557806340e58ee5146102a5576101fb565b806315dae03e14610200578063165d35e11461021c57806317d7de7c1461023c5780631865c57d1461024e575b600080fd5b60035460ff166040516102139190611876565b60405180910390f35b61022461040e565b6040516001600160a01b039091168152602001610213565b6001545b604051908152602001610213565b610256610427565b604051610213919061185c565b61026b6104a8565b005b610275610500565b6040519015158152602001610213565b610240610293366004611653565b600e6020526000908152604090205481565b61026b6102b3366004611653565b610530565b6103036102c6366004611696565b604080516020810196909652858101949094526060850192909252608084015260a0808401919091528151808403909101815260c0909201905290565b6040516102139190611849565b61024060105481565b61026b61053b565b61022460035461010090046001600160a01b031690565b601054610240565b600254610240565b61026b610585565b61026b6105d2565b610224600080546001600160a01b0316610422565b6000546001600160a01b0316610224565b61026b61038c366004611696565b6105e4565b610275610761565b600f54610240565b61026b610769565b610240600f5481565b61026b6103c03660046115ee565b6107b6565b61026b6103d3366004611653565b610821565b61027561086b565b610224610874565b61026b6103f63660046115b6565b610888565b61026b6104093660046116ef565b6108fe565b6000610422600a546001600160a01b031690565b905090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561047057600080fd5b505afa158015610484573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906116d0565b6104bd6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146104f65760405162461bcd60e51b81526004016104ed9061188a565b60405180910390fd5b6104fe610b0b565b565b600060025b60035460ff16600281111561052a57634e487b7160e01b600052602160045260246000fd5b14905090565b610538610b48565b50565b6105506810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105805760405162461bcd60e51b81526004016104ed9061188a565b6104fe565b61059a6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105ca5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610ba2565b6105da610b48565b6104fe6000610bcc565b6000858152600d602052604090205485906001600160a01b0316331461065d5760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084016104ed565b6000818152600d602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a26000868152600e602090815260408083205481519283018990529082018790526060820186905260808201859052919060a00160405160208183030381529060405290506106ee8282610c1c565b6000888152600e602090815260408083209290925581518481529081018a9052908101889052606081018790526080810186905260a081018590527fd3d5b0141a5d81ac8c98139f284f1b25fb3061bc81857f74de9a702e382916349060c0015b60405180910390a15050505050505050565b600080610505565b61077e6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146107ae5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610c84565b6107be610b48565b6001600160a01b038416156107e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383161561081457600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6108366810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146108665760405162461bcd60e51b81526004016104ed9061188a565b600255565b60006001610505565b6000610422600b546001600160a01b031690565b610890610b48565b6001600160a01b0381166108f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61053881610bcc565b61090f64517565727960d81b610a81565b6001600160a01b0316336001600160a01b03161461096f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e494544000000000060448201526064016104ed565b6000610985600f54306397e873e960e01b610cae565b9050600080806109978587018761166b565b9250925092506109d3604051806040016040528060098152602001681c1c9bda9958dd125960ba1b8152506109cb85610cd5565b869190610d8d565b6109fd604051806040016040528060058152602001641d585a525960da1b8152506109cb84610cd5565b610a286040518060400160405280600681526020016518dc9bdc125960d21b8152506109cb83610cd5565b6000610a3685601054610db0565b6000818152600e60209081526040918290208b905581518b81529081018390529192507f09ee0ce04d9140f363cd342b605f7aaae55e9c0d84a975c417e55ce074b49332910161074f565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0391906115d2565b90505b919050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b23610b3560025490565b60405190815260200160405180910390a1565b6000546001600160a01b031633146104fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e6610b3560025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a90610c4e90859085906004016118c1565b600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505050565b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d610b3560025490565b610cb661157b565b610cbe61157b565b610cca81868686610dd3565b9150505b9392505050565b6060610cf4604051806040016040528060008152602001600081525090565b6040516020810160405283815280602083015250610d1183610e19565b80825260009067ffffffffffffffff811115610d3d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610d67576020820181803683370190505b5090506000602082019050610d858184602001518560000151610f03565b509392505050565b6080830151610d9c9083610f7d565b6080830151610dab9082610f7d565b505050565b600b54600090610dca906001600160a01b03168484610f94565b90505b92915050565b610ddb61157b565b610deb8560800151610100611027565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b60008082610e2b576000915050610b06565b6fffffffffffffffffffffffffffffffff8316610e6057610e4d6010826118da565b9050610e5d600160801b846118f2565b92505b67ffffffffffffffff8316610e9257610e7a6008826118da565b9050610e8f68010000000000000000846118f2565b92505b63ffffffff8316610ebc57610ea86004826118da565b9050610eb9640100000000846118f2565b92505b61ffff8316610ee257610ed06002826118da565b9050610edf62010000846118f2565b92505b60ff8316610ef857610ef56001826118da565b90505b610cce816020611a39565b60208110610f3b5781518352610f1a6020846118da565b9250610f276020836118da565b9150610f34602082611a39565b9050610f03565b6000198115610f6a576001610f51836020611a39565b610f5d9061010061194c565b610f679190611a39565b90505b9151835183169219169190911790915250565b610f8a826003835161108c565b610dab82826111a7565b600c54600090610fa58160016118da565b600c55835160408086015160808701515191516000936320214ca360e11b93610fdd9386938493923092918a916001916024016117b1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061101d868386846111ce565b9695505050505050565b604080518082019091526060815260006020820152611047602083611a50565b1561106f57611057602083611a50565b611062906020611a39565b61106c90836118da565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116110b7576110b18360e0600585901b16831761133b565b50610dab565b60ff8167ffffffffffffffff16116110f5576110de836018611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166001611360565b61ffff8167ffffffffffffffff16116111345761111d836019611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166002611360565b63ffffffff8167ffffffffffffffff16116111755761115e83601a611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166004611360565b61118a83601b611fe0600586901b161761133b565b506111a18367ffffffffffffffff83166008611360565b50505050565b604080518082019091526060815260006020820152610dca83846000015151848551611386565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600d90925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600a54604051630200057560e51b81526001600160a01b0390911690634000aea09061129190889087908790600401611819565b602060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e39190611633565b610e115760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b60648201526084016104ed565b604080518082019091526060815260006020820152610dca8384600001515184611470565b604080518082019091526060815260006020820152610e118485600001515185856114cc565b60408051808201909152606081526000602082015282518211156113a957600080fd5b60208501516113b883866118da565b11156113eb576113eb856113db876020015187866113d691906118da565b61154d565b6113e6906002611a1a565b611564565b60008086518051876020830101935080888701111561140a5787860182525b505050602084015b6020841061144a57805182526114296020836118da565b91506114366020826118da565b9050611443602085611a39565b9350611412565b51815160001960208690036101000a019081169019919091161790525083949350505050565b604080518082019091526060815260006020820152836020015183106114a5576114a584856020015160026113e69190611a1a565b8351805160208583010184815350808514156114c2576001810182525b5093949350505050565b60408051808201909152606081526000602082015260208501516114f085846118da565b111561150457611504856113db86856118da565b600060016115148461010061194c565b61151e9190611a39565b90508551838682010185831982511617815250805184870111156115425783860181525b509495945050505050565b60008183111561155e575081610dcd565b50919050565b81516115708383611027565b506111a183826111a7565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000602082840312156115c7578081fd5b8135610cce81611aa6565b6000602082840312156115e3578081fd5b8151610cce81611aa6565b60008060008060808587031215611603578283fd5b843561160e81611aa6565b9350602085013561161e81611aa6565b93969395505050506040820135916060013590565b600060208284031215611644578081fd5b81518015158114610cce578182fd5b600060208284031215611664578081fd5b5035919050565b60008060006060848603121561167f578283fd5b505081359360208301359350604090920135919050565b600080600080600060a086880312156116ad578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000602082840312156116e1578081fd5b815160078110610cce578182fd5b600080600060408486031215611703578283fd5b83359250602084013567ffffffffffffffff80821115611721578384fd5b818601915086601f830112611734578384fd5b813581811115611742578485fd5b876020828501011115611753578485fd5b6020830194508093505050509250925092565b60008151808452815b8181101561178b5760208185018101518683018201520161176f565b8181111561179c5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061180a83820185611766565b9b9a5050505050505050505050565b600060018060a01b0385168252836020830152606060408301526118406060830184611766565b95945050505050565b600060208252610dca6020830184611766565b602081016007831061187057611870611a90565b91905290565b602081016003831061187057611870611a90565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260406020830152610e116040830184611766565b600082198211156118ed576118ed611a64565b500190565b60008261190157611901611a7a565b500490565b80825b60018086116119185750611943565b81870482111561192a5761192a611a64565b8086161561193757918102915b9490941c938002611909565b94509492505050565b6000610dca600019848460008261196557506001610cce565b8161197257506000610cce565b81600181146119885760028114611992576119bf565b6001915050610cce565b60ff8411156119a3576119a3611a64565b6001841b9150848211156119b9576119b9611a64565b50610cce565b5060208310610133831016604e8410600b84101617156119f2575081810a838111156119ed576119ed611a64565b610cce565b6119ff8484846001611906565b808604821115611a1157611a11611a64565b02949350505050565b6000816000190483118215151615611a3457611a34611a64565b500290565b600082821015611a4b57611a4b611a64565b500390565b600082611a5f57611a5f611a7a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038116811461053857600080fdfea264697066735822122032e1343ae3cf45cc987315ea3df5115358453bec437a4d8d956c9c7ac8dc31c064736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.dbg.json b/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.json b/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.json new file mode 100644 index 00000000..99e6078f --- /dev/null +++ b/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.json @@ -0,0 +1,1972 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AyiiProduct", + "sourceName": "contracts/examples/AyiiProduct.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "productName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "registry", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "oracleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "insurer", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payoutAmount", + "type": "uint256" + } + ], + "name": "LogAyiiClaimCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payoutAmount", + "type": "uint256" + } + ], + "name": "LogAyiiPayoutCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "policyHolder", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "LogAyiiPolicyApplicationCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "policyHolder", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "LogAyiiPolicyCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + } + ], + "name": "LogAyiiPolicyProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "trigger", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "exit", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tsi", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "aph", + "type": "uint256" + } + ], + "name": "LogAyiiRiskDataAfterAdjustment", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "trigger", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "exit", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tsi", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "aph", + "type": "uint256" + } + ], + "name": "LogAyiiRiskDataBeforeAdjustment", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "productId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "uaiId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "cropId", + "type": "bytes32" + } + ], + "name": "LogAyiiRiskDataCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "aaay", + "type": "uint256" + } + ], + "name": "LogAyiiRiskDataReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "LogAyiiRiskDataRequestCancelled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "projectId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "uaiId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "cropId", + "type": "bytes32" + } + ], + "name": "LogAyiiRiskDataRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "policies", + "type": "uint256" + } + ], + "name": "LogAyiiRiskProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "productAddress", + "type": "address" + } + ], + "name": "LogProductCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "callSuccess", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "returnDataLength", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "name": "LogTransferHelperCallFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "tokenIsContract", + "type": "bool" + }, + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "LogTransferHelperInputValidation1Failed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + } + ], + "name": "LogTransferHelperInputValidation2Failed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "AAAY_MAX", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "AAAY_MIN", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "INSURER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PERCENTAGE_MULTIPLIER", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "POLICY_FLOW", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "RISK_APH_MAX", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "RISK_EXIT_MAX", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "RISK_TSI_AT_EXIT_MIN", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "expectedPremiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "adjustPremiumSumInsured", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "trigger", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "exit", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tsi", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aph", + "type": "uint256" + } + ], + "name": "adjustRisk", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "applications", + "outputs": [ + { + "internalType": "uint256", + "name": "applicationCount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "policyHolder", + "type": "address" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsured", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + } + ], + "name": "applyForPolicy", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "payoutPercentage", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "calculatePayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payoutAmount", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tsi", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "trigger", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "exit", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aph", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aaay", + "type": "uint256" + } + ], + "name": "calculatePayoutPercentage", + "outputs": [ + { + "internalType": "uint256", + "name": "payoutPercentage", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "cancelOracleRequest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + } + ], + "name": "collectPremium", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPremium", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "collectPremium", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPremium", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "projectId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "uaiId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "cropId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "trigger", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "exit", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tsi", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aph", + "type": "uint256" + } + ], + "name": "createRisk", + "outputs": [ + { + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getApplicationDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "applicationIdx", + "type": "uint256" + } + ], + "name": "getApplicationId", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getClaimDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPayoutDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPercentageMultiplier", + "outputs": [ + { + "internalType": "uint256", + "name": "multiplier", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getPolicyFlow", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "policyIdx", + "type": "uint256" + } + ], + "name": "getPolicyId", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + } + ], + "name": "getRisk", + "outputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "projectId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "uaiId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "cropId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "trigger", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "exit", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tsi", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aph", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "requestTriggered", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "responseAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aaay", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutPercentage", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct AyiiProduct.Risk", + "name": "risk", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "projectId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "uaiId", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "cropId", + "type": "bytes32" + } + ], + "name": "getRiskId", + "outputs": [ + { + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getRiskId", + "outputs": [ + { + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRiskpoolId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "responseData", + "type": "bytes" + } + ], + "name": "oracleCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + } + ], + "name": "policies", + "outputs": [ + { + "internalType": "uint256", + "name": "policyCount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "riskId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "batchSize", + "type": "uint256" + } + ], + "name": "processPoliciesForRisk", + "outputs": [ + { + "internalType": "bytes32[]", + "name": "processedPolicies", + "type": "bytes32[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + } + ], + "name": "processPolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "riskPoolCapacityCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "risks", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "triggerOracle", + "outputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "underwrite", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b50604051620049383803806200493883398101604081905262000034916200058b565b858470506f6c69637944656661756c74466c6f7760781b8488846001826200005c336200035b565b6001600160a01b038116620000c35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b606482015260840160405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000ed620003ab565b600480546001600160a01b0319166001600160a01b039290921691909117905562000117620003c6565b600580546001600160a01b0319166001600160a01b039290921691909117905562000141620003f3565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019457634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001e892909160ff82169130916101009091046001600160a01b031690620005f0565b60405180910390a15050600880546001600160a01b0319166001600160a01b0387161790555060098290556200021e836200040d565b600780546001600160a01b0319166001600160a01b03929092169190911790556200025a6d50726f647563745365727669636560901b6200040d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055620002976e496e7374616e63655365727669636560881b6200040d565b600b80546001600160a01b0319166001600160a01b03929092169190911790556040513081527fced180b842b890d77dab95dcbf4654065589a164226ef9faa91a7601fb67c4679060200160405180910390a15050600f80546001600160a01b0319166001600160a01b038916179055505050600e8390556200032360006200031d3390565b6200049b565b6200034f7ff098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955b826200049b565b5050505050506200063b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620003c16541636365737360d01b6200040d565b905090565b6000620003c17f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200040d565b6000620003c16e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200045857600080fd5b505afa1580156200046d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000493919062000567565b90505b919050565b620004a78282620004ab565b5050565b6000828152600c602090815260408083206001600160a01b038516845290915290205460ff16620004a7576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200050b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b80516001600160a01b03811681146200049657600080fd5b60006020828403121562000579578081fd5b62000584826200054f565b9392505050565b60008060008060008060c08789031215620005a4578182fd5b86519550620005b6602088016200054f565b9450620005c6604088016200054f565b93506060870151925060808701519150620005e460a088016200054f565b90509295509295509295565b84815260808101600385106200061657634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6142ed806200064b6000396000f3fe608060405234801561001057600080fd5b50600436106103fc5760003560e01c806366528c3b11610215578063b9ea8d6611610125578063e0815f0d116100b8578063f2fde38b11610087578063f2fde38b14610836578063f406460c14610849578063f4fdc1fa14610851578063f9d7ff8914610862578063ffa1ad741461086a576103fc565b8063e0815f0d146107f5578063e5d58cd8146107fd578063e9960d8a14610810578063eb80733914610823576103fc565b8063d52d2d06116100f4578063d52d2d06146107bc578063d547741f146107cf578063d73cd9921461061a578063ddbfd8ef146107e2576103fc565b8063b9ea8d6614610771578063bd1fe5d0146107a1578063be169e7e1461061a578063d0e0ba95146107a9576103fc565b806391d14854116101a8578063a18f5ae211610177578063a18f5ae21461061a578063a217fddf146105f4578063a3f4df7e1461074a578063aec8de3914610769578063b3fca9bd1461061a576103fc565b806391d14854146106f057806394f64ff4146107035780639a82f8901461072f5780639dce5ff014610737576103fc565b80637ce5e82f116101e45780637ce5e82f146106ba578063893d20e8146106c25780638da5cb5b146106d757806390e1a2ac146106e8576103fc565b806366528c3b1461068d57806370d2fe5314610697578063715018a61461069f57806378a433a5146106a7576103fc565b806336568abe1161031057806354111315116102a35780635ab1bd53116102725780635ab1bd53146106425780635d1ca631146106595780635e61aa6314610661578063637d08f414610674578063638ce0ba14610685576103fc565b806354111315146105fc578063597ee7981461060757806359dacc6a1461061a5780635a60210914610622576103fc565b8063412f91d9116102df578063412f91d9146105bb57806346b937f6146105ce5780634b6eb669146105e15780634ce9d0a7146105f4576103fc565b806336568abe1461057857806339cf5e161461058b5780633dc5f58e146105a85780633ec92bda1461058b576103fc565b80631b07b17f1161039357806321df0da71161036257806321df0da714610502578063248a9ca314610527578063258d560c1461054a5780632f2ff15d1461055257806330a73da514610565576103fc565b80631b07b17f146104bf5780631b867c63146104d25780631c3456dd146104da5780631fd358aa146104e2576103fc565b80630b228d95116103cf5780630b228d951461047a57806315dae03e1461048f57806317d7de7c146104a25780631865c57d146104aa576103fc565b806301ffc9a714610401578063056c99891461042957806306136f281461044c57806309128d831461045f575b600080fd5b61041461040f366004613b88565b610877565b60405190151581526020015b60405180910390f35b61043e60008051602061429883398151915281565b604051908152602001610420565b61043e61045a3660046139f0565b6108b0565b61043e70506f6c69637944656661756c74466c6f7760781b81565b61048d6104883660046139f0565b610a9b565b005b60035460ff166040516104209190614032565b60015461043e565b6104b2610e2c565b6040516104209190614018565b6104146104cd3660046139f0565b610eb2565b61048d610f5f565b61043e610fae565b6104f56104f0366004613b2d565b610fc0565b6040516104209190613f26565b6008546001600160a01b03165b6040516001600160a01b039091168152602001610420565b61043e6105353660046139f0565b6000908152600c602052604090206001015490565b610414611299565b61048d610560366004613a20565b6112c9565b61048d610573366004613a86565b6112f3565b61048d610586366004613a20565b61131c565b6040805160208101909152600081525b6040516104209190614046565b61043e6105b6366004613ae2565b61139a565b61043e6105c9366004613b2d565b6114ff565b61043e6105dc366004613b4e565b611520565b61043e6105ef366004613968565b6115bd565b61043e600081565b61043e630100000081565b61048d6106153660046139f0565b6117d2565b61048d611975565b6106356106303660046139f0565b6119bf565b6040516104209190614090565b61050f60035461010090046001600160a01b031690565b60025461043e565b61048d61066f366004613d80565b611b06565b6007546001600160a01b031661050f565b61048d611e02565b630100000061043e565b60095461043e565b61048d611e4f565b61048d6106b5366004613b4e565b611e61565b60135461043e565b61050f600080546001600160a01b0316610ead565b6000546001600160a01b031661050f565b61043e61202a565b6104146106fe366004613a20565b612039565b60408051808201909152601081526f2862797465733332207269736b49642960801b602082015261059b565b610414612064565b61043e610745366004613b2d565b61206c565b61043e74105c9958565a595b19125b99195e141c9bd91d58dd605a1b81565b61043e600f81565b61078461077f3660046139f0565b612087565b604080519315158452602084019290925290820152606001610420565b61048d6120bb565b61048d6107b73660046139f0565b612108565b61043e6107ca3660046139f0565b612152565b61048d6107dd366004613a20565b612187565b61043e6107f03660046139f0565b6121ac565b6104146121c3565b61078461080b366004613a4f565b6121cc565b61043e61081e366004613a86565b612269565b61043e6108313660046139f0565b6122a0565b61048d610844366004613930565b6122c3565b61043e612339565b61048d61085f3660046139f0565b50565b60105461043e565b61043e62302e3160e81b81565b60006001600160e01b03198216637965db0b60e01b14806108a857506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60006000805160206142988339815191526108ca81612348565b6000601160006108d986612352565b81526020019081526020016000209050600081600d0154116109425760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031303a5249534b5f554e444546494e45440000000060448201526064015b60405180910390fd5b600a810154156109a35760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031313a4f5241434c455f414c52454144595f5245536044820152651413d391115160d21b6064820152608401610939565b60018101546002820154600383015460408051602081019490945283019190915260608201526000906080016040516020818303038152906040529050610a1485826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600e5461237f565b6008830181905560098301805460ff1916600190811790915542600e85015583549084015460028501546003860154604080518681526020810195909552840192909252606083015260808201529094507f983570285d5bc639119bffe47fdb9708eb765c6cac55a784fd1651fbf1360c0f9060a0015b60405180910390a1505050919050565b600080516020614298833981519152610ab381612348565b6000610abe8361240a565b905060008160600151806020019051810190610ada9190613a08565b60008181526011602090815260409182902082516101e08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401526008810154610100840152600981015460ff161515610120840152600a810154610140840152600b810154610160840152600c810154610180840152600d8101546101a0840152600e01546101c0830152919250908214610be75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4159492d3033313a5249534b5f49445f494e56414c49440000006044820152606401610939565b600081610140015111610c4a5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033323a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b6000828152601260205260409020610c6290866124c4565b610cbc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033333a504f4c4943595f464f525f5249534b5f554e60448201526425a727aba760d91b6064820152608401610939565b6000828152601260205260409020610cd490866124dc565b506000610cea826101800151856040015161206c565b90506000610d088783604051806020016040528060008152506124e8565b60408051898152602081018390529081018490529091507ff3b6fa541c2fb440a7135df726575da0735a6968fa3804a462c63690d4330dbd9060600160405180910390a18115610dc95781610d5e888383612577565b6000610d7b898484604051806020016040528060008152506125e9565b9050610d878982612620565b5050604080518a8152602081018490527fe85c538af9d154780befa06f96e8c8d5ff531c715d3735732ca365e541b15ec8910160405180910390a15050610ddd565b610dd387826126b4565b610ddd878261271e565b610de687612756565b610def876127b8565b6040518781527f88873a4c738a1c855a15847c7daf779056bd64e3e5dce2a378085a56b1e65698906020015b60405180910390a150505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190613bb0565b905090565b6000600080516020614298833981519152610ecc81612348565b610ed58361240a565b50610edf836127e9565b91508115610f59576000610ef28461240a565b90506000610eff85612868565b805160208085015160408087015181518b81526001600160a01b039095169385019390935283015260608201529091507f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d190608001610a8b565b50919050565b610f746810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614610fa45760405162461bcd60e51b815260040161093990614059565b610fac6129a3565b565b610fbd6301000000600f6141ac565b81565b6060600080516020614298833981519152610fda81612348565b60008481526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a8201546101408201819052600b830154610160830152600c830154610180830152600d8301546101a0830152600e909201546101c0820152906110f35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033303a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b600085815260126020526040812061110a906129e0565b9050806111625760408051878152600060208201527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a150506040805160008152602081019091529150611292565b8461116f5780945061117c565b61117985826129ea565b94505b8467ffffffffffffffff8111156111a357634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156111cc578160200160208202803683370190505b50935060006111dc6001836141cb565b905060005b8681101561125457600088815260126020526040812061120a9061120584866141cb565b612a01565b905061121581610a9b565b8087838151811061123657634e487b7160e01b600052603260045260246000fd5b6020908102919091010152508061124c81614225565b9150506111e1565b5060408051888152602081018890527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a15050505b5092915050565b600060025b60035460ff1660028111156112c357634e487b7160e01b600052602160045260246000fd5b14905090565b6000828152600c60205260409020600101546112e481612348565b6112ee8383612a0d565b505050565b60008051602061429883398151915261130b81612348565b611316848484612a93565b50505050565b6001600160a01b038116331461138c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610939565b6113968282612ad2565b5050565b60006000805160206142988339815191526113b481612348565b6113c086868686612b39565b6113cb898989612269565b60108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018190556000818152601160205260409020600d81015491935090156114695760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3030313a5249534b5f414c52454144595f45584953546044820152605360f81b6064820152608401610939565b828155600181018a905560028101899055600381018890556004810187905560058101869055600681018590556007810184905542600d8201819055600e82015560408051848152602081018c90529081018a9052606081018990527f817b0e272a7b333532cb6439a34e3ec00922e22926032442220a69868f02d8dc9060800160405180910390a15050979650505050505050565b60008281526012602052604081206115179083612a01565b90505b92915050565b600061152c85846141ac565b61153a6301000000846141ac565b10611547575060006115b4565b61155184846141ac565b61155f6301000000846141ac565b1161156b5750846115b4565b60008361157c8463010000006141ac565b611586919061418c565b905061159285876141cb565b61159c82886141cb565b6115a690896141ac565b6115b0919061418c565b9150505b95945050505050565b60006000805160206142988339815191526115d781612348565b6000838152601160205260409020600d8101546116365760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3030343a5249534b5f554e444546494e4544000000006044820152606401610939565b6001600160a01b03871661168c5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3030353a504f4c4943595f484f4c4445525f5a45524f6044820152606401610939565b6040805160208082018352600082528251808201889052835180820390920182528301909252906116c08989898585612e43565b601380546001810182556000919091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09001819055604080518281526001600160a01b038c1660208201529081018a9052606081018990529095507fb6b5fb82ad406a44dc88433d286d201520c295308f087a476b845f907d3bd6039060800160405180910390a16000611753866127e9565b905080156117c55760008781526012602052604090206117739087612ed8565b50604080518781526001600160a01b038c1660208201529081018a9052606081018990527f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d19060800160405180910390a15b5050505050949350505050565b6000805160206142988339815191526117ea81612348565b6000601160006117f985612352565b81526020019081526020016000209050600081600d01541161185d5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031323a5249534b5f554e444546494e4544000000006044820152606401610939565b600981015460ff166118c05760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031333a4f5241434c455f524551554553545f4e4f5460448201526517d193d5539160d21b6064820152608401610939565b600a810154156119125760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3031343a4558495354494e475f43414c4c4241434b006044820152606401610939565b61191f8160080154612ee4565b60098101805460ff1916905542600e82015560088101546040805185815260208101929092527fdeeac61c3ad18e6efca12eac38425c944b5bbca5b482e39b549671e05544c3dc910160405180910390a1505050565b61198a6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146119ba5760405162461bcd60e51b815260040161093990614059565b610fac565b611a46604051806101e0016040528060008019168152602001600080191681526020016000801916815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060009081526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a820154610140820152600b820154610160820152600c820154610180820152600d8201546101a0820152600e909101546101c082015290565b611b1764517565727960d81b612921565b6001600160a01b0316336001600160a01b031614611b775760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610939565b6000808080611b8885870187613ab1565b93509350935093506000611b9b88612352565b9050611ba8858585612269565b8114611bf65760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4159492d3032303a5249534b5f49445f4d49534d4154434800006044820152606401610939565b6000818152601160205260409020600d810154611c555760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3032313a5249534b5f554e444546494e4544000000006044820152606401610939565b89816008015414611cb25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3032323a524551554553545f49445f4d49534d4154436044820152600960fb1b6064820152608401610939565b600a81015415611d045760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3032333a4558495354494e475f43414c4c4241434b006044820152606401610939565b611d13630100000060006141ac565b8310158015611d2f5750611d2c6301000000600f6141ac565b83105b611d7b5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3032343a414141595f494e56414c49440000000000006044820152606401610939565b600b81018390556006810154600482015460058301546007840154611da39392919087611520565b600c82015542600a8201819055600e820155604080518b8152602081018490529081018490527f357e32cffc9b470fe746dfc76a9dabc81e0441109f95820ff3daeabc21ca3e319060600160405180910390a150505050505050505050565b611e176810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614611e475760405162461bcd60e51b815260040161093990614059565b610fac612f15565b611e57612f3f565b610fac6000612f99565b600080516020614298833981519152611e7981612348565b611e8585858585612b39565b6000868152601160205260409020600d810154611ee45760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3030323a5249534b5f554e4b4e4f574e0000000000006044820152606401610939565b6000878152601260205260409020611efb906129e0565b15611f605760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3030333a5249534b5f574954485f504f4c494349455360448201526e5f4e4f545f41444a55535441424c4560881b6064820152608401610939565b805460048201546005830154600684015460078501546040805195865260208601949094528484019290925260608401526080830152517f5ea522f91ea45156f00d5390cfaf51dc82f9b163ae492c8d6033fcb3af773f589181900360a00190a16004810186905560058101859055600681018490556007810183905580546040805191825260208201889052810186905260608101859052608081018490527f2ef22fcf430acdb3b80e5d30364fcd07242c6081010c6cc9aa2fe4f4105f81279060a001610e1b565b610fbd6002630100000061418c565b6000918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008061129e565b6000630100000061207d83856141ac565b611517919061418c565b60008060006000805160206142988339815191526120a481612348565b6120ad85612fe9565b919790965090945092505050565b6120d06810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146121005760405162461bcd60e51b815260040161093990614059565b610fac61302f565b61211d6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b03161461214d5760405162461bcd60e51b815260040161093990614059565b600255565b60006013828154811061217557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6000828152600c60205260409020600101546121a281612348565b6112ee8383612ad2565b60008181526012602052604081206108a8906129e0565b6000600161129e565b60008060006000805160206142988339815191526121e981612348565b60006121f488612868565b905080600001516001600160a01b0316876001600160a01b03161461224c57600f548151600091612233916001600160a01b03909116908a908a613059565b90508061224a5794506000935085925061225f9050565b505b612256888761336e565b91965094509250505b5093509350939050565b6040805160208082019590955280820193909352606080840192909252805180840390920182526080909201909152805191012090565b60006010828154811061217557634e487b7160e01b600052603260045260246000fd5b6122cb612f3f565b6001600160a01b0381166123305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610939565b61085f81612f99565b610fbd6005630100000061418c565b61085f81336133f8565b60008061235e8361240a565b905080606001518060200190518101906123789190613a08565b9392505050565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f22906123b89088908890889030908990600401613f8b565b602060405180830381600087803b1580156123d257600080fd5b505af11580156123e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b49190613a08565b6124446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b15801561248857600080fd5b505afa15801561249c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613bcf565b60008181526001830160205260408120541515611517565b6000611517838361345c565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d159061251d90879087908790600401613fd4565b602060405180830381600087803b15801561253757600080fd5b505af115801561254b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256f9190613a08565b949350505050565b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f906064015b600060405180830381600087803b1580156125cc57600080fd5b505af11580156125e0573d6000803e3d6000fd5b50505050505050565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d7846906123b8908890889088908890600401613ff3565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b15801561267157600080fd5b505af1158015612685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a99190613dfb565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b15801561270257600080fd5b505af1158015612716573d6000803e3d6000fd5b505050505050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba2906044016126e8565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c6441798906024015b600060405180830381600087803b15801561279d57600080fd5b505af11580156127b1573d6000803e3d6000fd5b5050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c90602401612783565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b15801561283057600080fd5b505af1158015612844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906139a2565b6128a16040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600b5460405163296586d360e21b8152600481018490526001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156128e557600080fd5b505afa1580156128f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613c7d565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561296b57600080fd5b505afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a8919061394c565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616129cd60025490565b60405190815260200160405180910390a1565b60006108a8825490565b6000818311156129fa5781611517565b5090919050565b60006115178383613579565b612a178282612039565b611396576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a4f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064016125b2565b612adc8282612039565b15611396576000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6301000000841115612b995760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4159492d3034303a5249534b5f545249474745525f544f4f5f4c6044820152634152474560e01b6064820152608401610939565b828411612c005760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3034313a5249534b5f545249474745525f4e4f545f4c60448201526e105491d15497d512105397d1561255608a1b6064820152608401610939565b612c0f6005630100000061418c565b831115612c685760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3034323a5249534b5f455849545f544f4f5f4c4152476044820152604560f81b6064820152608401610939565b612c776002630100000061418c565b821015612cc65760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034333a5249534b5f5453495f544f4f5f534d414c4c6044820152606401610939565b6301000000821115612d1a5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034343a5249534b5f5453495f544f4f5f4c415247456044820152606401610939565b6301000000612d298484614174565b1115612d895760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4159492d3034353a5249534b5f5453495f455849545f53554d5f604482015268544f4f5f4c4152474560b81b6064820152608401610939565b60008111612de55760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4159492d3034363a5249534b5f4150485f5a45524f5f494e564160448201526213125160ea1b6064820152608401610939565b612df46301000000600f6141ac565b8111156113165760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034373a5249534b5f4150485f544f4f5f4c415247456044820152606401610939565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a90612e7c9089908990899089908990600401613edb565b602060405180830381600087803b158015612e9657600080fd5b505af1158015612eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ece9190613a08565b9695505050505050565b600061151783836135b1565b600a54604051630c054e5360e21b8152600481018390526001600160a01b0390911690633015394c90602401612783565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96129cd60025490565b6000546001600160a01b03163314610fac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610939565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080612ff885613600565b9050806020015181604001511015613027576120ad858260400151836020015161302291906141cb565b61336e565b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556129cd60025490565b6000846001600160a01b038082163b1515908616158061308057506001600160a01b038516155b80613089575080155b156130e4576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a160009250505061256f565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561312957600080fd5b505afa15801561313d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131619190613a08565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156131ae57600080fd5b505afa1580156131c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e69190613a08565b9050858210806131f557508581105b156132405760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a1600094505050505061256f565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916132a49190613e4a565b6000604051808303816000865af19150503d80600081146132e1576040519150601f19603f3d011682016040523d82523d6000602084013e6132e6565b606091505b509150915081801561331c57508051158061331c57508051602014801561331c57508080602001905181019061331c91906139a2565b965086613360577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161335793929190613f6a565b60405180910390a15b505050505050949350505050565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156133c057600080fd5b505af11580156133d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ad91906139bc565b6134028282612039565b6113965761341a816001600160a01b031660146136cd565b6134258360206136cd565b604051602001613436929190613e66565b60408051601f198184030181529082905262461bcd60e51b825261093991600401614046565b6000818152600183016020526040812054801561356f5760006134806001836141cb565b8554909150600090613494906001906141cb565b90508181146135155760008660000182815481106134c257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106134f357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061353457634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061151a565b600091505061151a565b600082600001828154811061359e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120546135f85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561151a565b50600061151a565b613650604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b15801561369557600080fd5b505afa1580156136a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190613cfb565b606060006136dc8360026141ac565b6136e7906002614174565b67ffffffffffffffff81111561370d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015613737576020820181803683370190505b509050600360fc1b8160008151811061376057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061379d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006137c18460026141ac565b6137cc906001614174565b90505b6001811115613860576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061380e57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061383257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936138598161420e565b90506137cf565b5083156115175760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610939565b805180151581146108ab57600080fd5b600082601f8301126138cf578081fd5b815167ffffffffffffffff8111156138e9576138e961426c565b6138fc601f8201601f1916602001614143565b818152846020838601011115613910578283fd5b61256f8260208301602087016141e2565b8051600381106108ab57600080fd5b600060208284031215613941578081fd5b813561151781614282565b60006020828403121561395d578081fd5b815161151781614282565b6000806000806080858703121561397d578283fd5b843561398881614282565b966020860135965060408601359560600135945092505050565b6000602082840312156139b3578081fd5b611517826138af565b6000806000606084860312156139d0578283fd5b6139d9846138af565b925060208401519150604084015190509250925092565b600060208284031215613a01578081fd5b5035919050565b600060208284031215613a19578081fd5b5051919050565b60008060408385031215613a32578182fd5b823591506020830135613a4481614282565b809150509250929050565b600080600060608486031215613a63578081fd5b833592506020840135613a7581614282565b929592945050506040919091013590565b600080600060608486031215613a9a578081fd5b505081359360208301359350604090920135919050565b60008060008060808587031215613ac6578182fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600060e0888a031215613afc578485fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215613b3f578182fd5b50508035926020909101359150565b600080600080600060a08688031215613b65578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215613b99578081fd5b81356001600160e01b031981168114611517578182fd5b600060208284031215613bc1578081fd5b815160078110611517578182fd5b600060208284031215613be0578081fd5b815167ffffffffffffffff80821115613bf7578283fd5b9083019060c08286031215613c0a578283fd5b613c1460c0614143565b825160048110613c22578485fd5b808252506020830151602082015260408301516040820152606083015182811115613c4b578485fd5b613c57878286016138bf565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613c8e578081fd5b815167ffffffffffffffff80821115613ca5578283fd5b9083019060c08286031215613cb8578283fd5b613cc260c0614143565b8251613ccd81614282565b815260208381015190820152613ce560408401613921565b6040820152606083015182811115613c4b578485fd5b6000610120808385031215613d0e578182fd5b613d1781614143565b9050613d2283613921565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215613d95578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115613dba578384fd5b818701915087601f830112613dcd578384fd5b813581811115613ddb578485fd5b886020828501011115613dec578485fd5b95989497505060200194505050565b60008060408385031215613e0d578182fd5b505080516020909101519092909150565b60008151808452613e368160208601602086016141e2565b601f01601f19169290920160200192915050565b60008251613e5c8184602087016141e2565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351613e9e8160178501602088016141e2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ecf8160288401602088016141e2565b01602801949350505050565b600060018060a01b038716825285602083015284604083015260a06060830152613f0860a0830185613e1e565b8281036080840152613f1a8185613e1e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613f5e57835183529284019291840191600101613f42565b50909695505050505050565b60008415158252836020830152606060408301526115b46060830184613e1e565b600086825260a06020830152613fa460a0830187613e1e565b8281036040840152613fb68187613e1e565b6001600160a01b039590951660608401525050608001529392505050565b6000848252836020830152606060408301526115b46060830184613e1e565b600085825284602083015283604083015260806060830152612ece6080830184613e1e565b602081016007831061402c5761402c614256565b91905290565b602081016003831061402c5761402c614256565b6000602082526115176020830184613e1e565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60006101e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516141038285018215159052565b50506101408381015190830152610160808401519083015261018080840151908301526101a080840151908301526101c092830151929091019190915290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561416c5761416c61426c565b604052919050565b6000821982111561418757614187614240565b500190565b6000826141a757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156141c6576141c6614240565b500290565b6000828210156141dd576141dd614240565b500390565b60005b838110156141fd5781810151838201526020016141e5565b838111156113165750506000910152565b60008161421d5761421d614240565b506000190190565b600060001982141561423957614239614240565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461085f57600080fdfef098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955ba26469706673582212206fbe90c5e63801ca92badc10bc72a58619457eca24171fa149899255b2d6ddb164736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103fc5760003560e01c806366528c3b11610215578063b9ea8d6611610125578063e0815f0d116100b8578063f2fde38b11610087578063f2fde38b14610836578063f406460c14610849578063f4fdc1fa14610851578063f9d7ff8914610862578063ffa1ad741461086a576103fc565b8063e0815f0d146107f5578063e5d58cd8146107fd578063e9960d8a14610810578063eb80733914610823576103fc565b8063d52d2d06116100f4578063d52d2d06146107bc578063d547741f146107cf578063d73cd9921461061a578063ddbfd8ef146107e2576103fc565b8063b9ea8d6614610771578063bd1fe5d0146107a1578063be169e7e1461061a578063d0e0ba95146107a9576103fc565b806391d14854116101a8578063a18f5ae211610177578063a18f5ae21461061a578063a217fddf146105f4578063a3f4df7e1461074a578063aec8de3914610769578063b3fca9bd1461061a576103fc565b806391d14854146106f057806394f64ff4146107035780639a82f8901461072f5780639dce5ff014610737576103fc565b80637ce5e82f116101e45780637ce5e82f146106ba578063893d20e8146106c25780638da5cb5b146106d757806390e1a2ac146106e8576103fc565b806366528c3b1461068d57806370d2fe5314610697578063715018a61461069f57806378a433a5146106a7576103fc565b806336568abe1161031057806354111315116102a35780635ab1bd53116102725780635ab1bd53146106425780635d1ca631146106595780635e61aa6314610661578063637d08f414610674578063638ce0ba14610685576103fc565b806354111315146105fc578063597ee7981461060757806359dacc6a1461061a5780635a60210914610622576103fc565b8063412f91d9116102df578063412f91d9146105bb57806346b937f6146105ce5780634b6eb669146105e15780634ce9d0a7146105f4576103fc565b806336568abe1461057857806339cf5e161461058b5780633dc5f58e146105a85780633ec92bda1461058b576103fc565b80631b07b17f1161039357806321df0da71161036257806321df0da714610502578063248a9ca314610527578063258d560c1461054a5780632f2ff15d1461055257806330a73da514610565576103fc565b80631b07b17f146104bf5780631b867c63146104d25780631c3456dd146104da5780631fd358aa146104e2576103fc565b80630b228d95116103cf5780630b228d951461047a57806315dae03e1461048f57806317d7de7c146104a25780631865c57d146104aa576103fc565b806301ffc9a714610401578063056c99891461042957806306136f281461044c57806309128d831461045f575b600080fd5b61041461040f366004613b88565b610877565b60405190151581526020015b60405180910390f35b61043e60008051602061429883398151915281565b604051908152602001610420565b61043e61045a3660046139f0565b6108b0565b61043e70506f6c69637944656661756c74466c6f7760781b81565b61048d6104883660046139f0565b610a9b565b005b60035460ff166040516104209190614032565b60015461043e565b6104b2610e2c565b6040516104209190614018565b6104146104cd3660046139f0565b610eb2565b61048d610f5f565b61043e610fae565b6104f56104f0366004613b2d565b610fc0565b6040516104209190613f26565b6008546001600160a01b03165b6040516001600160a01b039091168152602001610420565b61043e6105353660046139f0565b6000908152600c602052604090206001015490565b610414611299565b61048d610560366004613a20565b6112c9565b61048d610573366004613a86565b6112f3565b61048d610586366004613a20565b61131c565b6040805160208101909152600081525b6040516104209190614046565b61043e6105b6366004613ae2565b61139a565b61043e6105c9366004613b2d565b6114ff565b61043e6105dc366004613b4e565b611520565b61043e6105ef366004613968565b6115bd565b61043e600081565b61043e630100000081565b61048d6106153660046139f0565b6117d2565b61048d611975565b6106356106303660046139f0565b6119bf565b6040516104209190614090565b61050f60035461010090046001600160a01b031690565b60025461043e565b61048d61066f366004613d80565b611b06565b6007546001600160a01b031661050f565b61048d611e02565b630100000061043e565b60095461043e565b61048d611e4f565b61048d6106b5366004613b4e565b611e61565b60135461043e565b61050f600080546001600160a01b0316610ead565b6000546001600160a01b031661050f565b61043e61202a565b6104146106fe366004613a20565b612039565b60408051808201909152601081526f2862797465733332207269736b49642960801b602082015261059b565b610414612064565b61043e610745366004613b2d565b61206c565b61043e74105c9958565a595b19125b99195e141c9bd91d58dd605a1b81565b61043e600f81565b61078461077f3660046139f0565b612087565b604080519315158452602084019290925290820152606001610420565b61048d6120bb565b61048d6107b73660046139f0565b612108565b61043e6107ca3660046139f0565b612152565b61048d6107dd366004613a20565b612187565b61043e6107f03660046139f0565b6121ac565b6104146121c3565b61078461080b366004613a4f565b6121cc565b61043e61081e366004613a86565b612269565b61043e6108313660046139f0565b6122a0565b61048d610844366004613930565b6122c3565b61043e612339565b61048d61085f3660046139f0565b50565b60105461043e565b61043e62302e3160e81b81565b60006001600160e01b03198216637965db0b60e01b14806108a857506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60006000805160206142988339815191526108ca81612348565b6000601160006108d986612352565b81526020019081526020016000209050600081600d0154116109425760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031303a5249534b5f554e444546494e45440000000060448201526064015b60405180910390fd5b600a810154156109a35760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031313a4f5241434c455f414c52454144595f5245536044820152651413d391115160d21b6064820152608401610939565b60018101546002820154600383015460408051602081019490945283019190915260608201526000906080016040516020818303038152906040529050610a1485826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600e5461237f565b6008830181905560098301805460ff1916600190811790915542600e85015583549084015460028501546003860154604080518681526020810195909552840192909252606083015260808201529094507f983570285d5bc639119bffe47fdb9708eb765c6cac55a784fd1651fbf1360c0f9060a0015b60405180910390a1505050919050565b600080516020614298833981519152610ab381612348565b6000610abe8361240a565b905060008160600151806020019051810190610ada9190613a08565b60008181526011602090815260409182902082516101e08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401526008810154610100840152600981015460ff161515610120840152600a810154610140840152600b810154610160840152600c810154610180840152600d8101546101a0840152600e01546101c0830152919250908214610be75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4159492d3033313a5249534b5f49445f494e56414c49440000006044820152606401610939565b600081610140015111610c4a5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033323a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b6000828152601260205260409020610c6290866124c4565b610cbc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033333a504f4c4943595f464f525f5249534b5f554e60448201526425a727aba760d91b6064820152608401610939565b6000828152601260205260409020610cd490866124dc565b506000610cea826101800151856040015161206c565b90506000610d088783604051806020016040528060008152506124e8565b60408051898152602081018390529081018490529091507ff3b6fa541c2fb440a7135df726575da0735a6968fa3804a462c63690d4330dbd9060600160405180910390a18115610dc95781610d5e888383612577565b6000610d7b898484604051806020016040528060008152506125e9565b9050610d878982612620565b5050604080518a8152602081018490527fe85c538af9d154780befa06f96e8c8d5ff531c715d3735732ca365e541b15ec8910160405180910390a15050610ddd565b610dd387826126b4565b610ddd878261271e565b610de687612756565b610def876127b8565b6040518781527f88873a4c738a1c855a15847c7daf779056bd64e3e5dce2a378085a56b1e65698906020015b60405180910390a150505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190613bb0565b905090565b6000600080516020614298833981519152610ecc81612348565b610ed58361240a565b50610edf836127e9565b91508115610f59576000610ef28461240a565b90506000610eff85612868565b805160208085015160408087015181518b81526001600160a01b039095169385019390935283015260608201529091507f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d190608001610a8b565b50919050565b610f746810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614610fa45760405162461bcd60e51b815260040161093990614059565b610fac6129a3565b565b610fbd6301000000600f6141ac565b81565b6060600080516020614298833981519152610fda81612348565b60008481526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a8201546101408201819052600b830154610160830152600c830154610180830152600d8301546101a0830152600e909201546101c0820152906110f35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033303a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b600085815260126020526040812061110a906129e0565b9050806111625760408051878152600060208201527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a150506040805160008152602081019091529150611292565b8461116f5780945061117c565b61117985826129ea565b94505b8467ffffffffffffffff8111156111a357634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156111cc578160200160208202803683370190505b50935060006111dc6001836141cb565b905060005b8681101561125457600088815260126020526040812061120a9061120584866141cb565b612a01565b905061121581610a9b565b8087838151811061123657634e487b7160e01b600052603260045260246000fd5b6020908102919091010152508061124c81614225565b9150506111e1565b5060408051888152602081018890527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a15050505b5092915050565b600060025b60035460ff1660028111156112c357634e487b7160e01b600052602160045260246000fd5b14905090565b6000828152600c60205260409020600101546112e481612348565b6112ee8383612a0d565b505050565b60008051602061429883398151915261130b81612348565b611316848484612a93565b50505050565b6001600160a01b038116331461138c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610939565b6113968282612ad2565b5050565b60006000805160206142988339815191526113b481612348565b6113c086868686612b39565b6113cb898989612269565b60108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018190556000818152601160205260409020600d81015491935090156114695760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3030313a5249534b5f414c52454144595f45584953546044820152605360f81b6064820152608401610939565b828155600181018a905560028101899055600381018890556004810187905560058101869055600681018590556007810184905542600d8201819055600e82015560408051848152602081018c90529081018a9052606081018990527f817b0e272a7b333532cb6439a34e3ec00922e22926032442220a69868f02d8dc9060800160405180910390a15050979650505050505050565b60008281526012602052604081206115179083612a01565b90505b92915050565b600061152c85846141ac565b61153a6301000000846141ac565b10611547575060006115b4565b61155184846141ac565b61155f6301000000846141ac565b1161156b5750846115b4565b60008361157c8463010000006141ac565b611586919061418c565b905061159285876141cb565b61159c82886141cb565b6115a690896141ac565b6115b0919061418c565b9150505b95945050505050565b60006000805160206142988339815191526115d781612348565b6000838152601160205260409020600d8101546116365760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3030343a5249534b5f554e444546494e4544000000006044820152606401610939565b6001600160a01b03871661168c5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3030353a504f4c4943595f484f4c4445525f5a45524f6044820152606401610939565b6040805160208082018352600082528251808201889052835180820390920182528301909252906116c08989898585612e43565b601380546001810182556000919091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09001819055604080518281526001600160a01b038c1660208201529081018a9052606081018990529095507fb6b5fb82ad406a44dc88433d286d201520c295308f087a476b845f907d3bd6039060800160405180910390a16000611753866127e9565b905080156117c55760008781526012602052604090206117739087612ed8565b50604080518781526001600160a01b038c1660208201529081018a9052606081018990527f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d19060800160405180910390a15b5050505050949350505050565b6000805160206142988339815191526117ea81612348565b6000601160006117f985612352565b81526020019081526020016000209050600081600d01541161185d5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031323a5249534b5f554e444546494e4544000000006044820152606401610939565b600981015460ff166118c05760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031333a4f5241434c455f524551554553545f4e4f5460448201526517d193d5539160d21b6064820152608401610939565b600a810154156119125760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3031343a4558495354494e475f43414c4c4241434b006044820152606401610939565b61191f8160080154612ee4565b60098101805460ff1916905542600e82015560088101546040805185815260208101929092527fdeeac61c3ad18e6efca12eac38425c944b5bbca5b482e39b549671e05544c3dc910160405180910390a1505050565b61198a6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146119ba5760405162461bcd60e51b815260040161093990614059565b610fac565b611a46604051806101e0016040528060008019168152602001600080191681526020016000801916815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060009081526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a820154610140820152600b820154610160820152600c820154610180820152600d8201546101a0820152600e909101546101c082015290565b611b1764517565727960d81b612921565b6001600160a01b0316336001600160a01b031614611b775760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610939565b6000808080611b8885870187613ab1565b93509350935093506000611b9b88612352565b9050611ba8858585612269565b8114611bf65760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4159492d3032303a5249534b5f49445f4d49534d4154434800006044820152606401610939565b6000818152601160205260409020600d810154611c555760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3032313a5249534b5f554e444546494e4544000000006044820152606401610939565b89816008015414611cb25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3032323a524551554553545f49445f4d49534d4154436044820152600960fb1b6064820152608401610939565b600a81015415611d045760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3032333a4558495354494e475f43414c4c4241434b006044820152606401610939565b611d13630100000060006141ac565b8310158015611d2f5750611d2c6301000000600f6141ac565b83105b611d7b5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3032343a414141595f494e56414c49440000000000006044820152606401610939565b600b81018390556006810154600482015460058301546007840154611da39392919087611520565b600c82015542600a8201819055600e820155604080518b8152602081018490529081018490527f357e32cffc9b470fe746dfc76a9dabc81e0441109f95820ff3daeabc21ca3e319060600160405180910390a150505050505050505050565b611e176810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614611e475760405162461bcd60e51b815260040161093990614059565b610fac612f15565b611e57612f3f565b610fac6000612f99565b600080516020614298833981519152611e7981612348565b611e8585858585612b39565b6000868152601160205260409020600d810154611ee45760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3030323a5249534b5f554e4b4e4f574e0000000000006044820152606401610939565b6000878152601260205260409020611efb906129e0565b15611f605760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3030333a5249534b5f574954485f504f4c494349455360448201526e5f4e4f545f41444a55535441424c4560881b6064820152608401610939565b805460048201546005830154600684015460078501546040805195865260208601949094528484019290925260608401526080830152517f5ea522f91ea45156f00d5390cfaf51dc82f9b163ae492c8d6033fcb3af773f589181900360a00190a16004810186905560058101859055600681018490556007810183905580546040805191825260208201889052810186905260608101859052608081018490527f2ef22fcf430acdb3b80e5d30364fcd07242c6081010c6cc9aa2fe4f4105f81279060a001610e1b565b610fbd6002630100000061418c565b6000918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008061129e565b6000630100000061207d83856141ac565b611517919061418c565b60008060006000805160206142988339815191526120a481612348565b6120ad85612fe9565b919790965090945092505050565b6120d06810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146121005760405162461bcd60e51b815260040161093990614059565b610fac61302f565b61211d6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b03161461214d5760405162461bcd60e51b815260040161093990614059565b600255565b60006013828154811061217557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6000828152600c60205260409020600101546121a281612348565b6112ee8383612ad2565b60008181526012602052604081206108a8906129e0565b6000600161129e565b60008060006000805160206142988339815191526121e981612348565b60006121f488612868565b905080600001516001600160a01b0316876001600160a01b03161461224c57600f548151600091612233916001600160a01b03909116908a908a613059565b90508061224a5794506000935085925061225f9050565b505b612256888761336e565b91965094509250505b5093509350939050565b6040805160208082019590955280820193909352606080840192909252805180840390920182526080909201909152805191012090565b60006010828154811061217557634e487b7160e01b600052603260045260246000fd5b6122cb612f3f565b6001600160a01b0381166123305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610939565b61085f81612f99565b610fbd6005630100000061418c565b61085f81336133f8565b60008061235e8361240a565b905080606001518060200190518101906123789190613a08565b9392505050565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f22906123b89088908890889030908990600401613f8b565b602060405180830381600087803b1580156123d257600080fd5b505af11580156123e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b49190613a08565b6124446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b15801561248857600080fd5b505afa15801561249c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613bcf565b60008181526001830160205260408120541515611517565b6000611517838361345c565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d159061251d90879087908790600401613fd4565b602060405180830381600087803b15801561253757600080fd5b505af115801561254b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256f9190613a08565b949350505050565b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f906064015b600060405180830381600087803b1580156125cc57600080fd5b505af11580156125e0573d6000803e3d6000fd5b50505050505050565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d7846906123b8908890889088908890600401613ff3565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b15801561267157600080fd5b505af1158015612685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a99190613dfb565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b15801561270257600080fd5b505af1158015612716573d6000803e3d6000fd5b505050505050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba2906044016126e8565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c6441798906024015b600060405180830381600087803b15801561279d57600080fd5b505af11580156127b1573d6000803e3d6000fd5b5050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c90602401612783565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b15801561283057600080fd5b505af1158015612844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906139a2565b6128a16040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600b5460405163296586d360e21b8152600481018490526001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156128e557600080fd5b505afa1580156128f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613c7d565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561296b57600080fd5b505afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a8919061394c565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616129cd60025490565b60405190815260200160405180910390a1565b60006108a8825490565b6000818311156129fa5781611517565b5090919050565b60006115178383613579565b612a178282612039565b611396576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a4f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064016125b2565b612adc8282612039565b15611396576000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6301000000841115612b995760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4159492d3034303a5249534b5f545249474745525f544f4f5f4c6044820152634152474560e01b6064820152608401610939565b828411612c005760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3034313a5249534b5f545249474745525f4e4f545f4c60448201526e105491d15497d512105397d1561255608a1b6064820152608401610939565b612c0f6005630100000061418c565b831115612c685760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3034323a5249534b5f455849545f544f4f5f4c4152476044820152604560f81b6064820152608401610939565b612c776002630100000061418c565b821015612cc65760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034333a5249534b5f5453495f544f4f5f534d414c4c6044820152606401610939565b6301000000821115612d1a5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034343a5249534b5f5453495f544f4f5f4c415247456044820152606401610939565b6301000000612d298484614174565b1115612d895760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4159492d3034353a5249534b5f5453495f455849545f53554d5f604482015268544f4f5f4c4152474560b81b6064820152608401610939565b60008111612de55760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4159492d3034363a5249534b5f4150485f5a45524f5f494e564160448201526213125160ea1b6064820152608401610939565b612df46301000000600f6141ac565b8111156113165760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034373a5249534b5f4150485f544f4f5f4c415247456044820152606401610939565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a90612e7c9089908990899089908990600401613edb565b602060405180830381600087803b158015612e9657600080fd5b505af1158015612eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ece9190613a08565b9695505050505050565b600061151783836135b1565b600a54604051630c054e5360e21b8152600481018390526001600160a01b0390911690633015394c90602401612783565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96129cd60025490565b6000546001600160a01b03163314610fac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610939565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080612ff885613600565b9050806020015181604001511015613027576120ad858260400151836020015161302291906141cb565b61336e565b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556129cd60025490565b6000846001600160a01b038082163b1515908616158061308057506001600160a01b038516155b80613089575080155b156130e4576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a160009250505061256f565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561312957600080fd5b505afa15801561313d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131619190613a08565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156131ae57600080fd5b505afa1580156131c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e69190613a08565b9050858210806131f557508581105b156132405760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a1600094505050505061256f565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916132a49190613e4a565b6000604051808303816000865af19150503d80600081146132e1576040519150601f19603f3d011682016040523d82523d6000602084013e6132e6565b606091505b509150915081801561331c57508051158061331c57508051602014801561331c57508080602001905181019061331c91906139a2565b965086613360577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161335793929190613f6a565b60405180910390a15b505050505050949350505050565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156133c057600080fd5b505af11580156133d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ad91906139bc565b6134028282612039565b6113965761341a816001600160a01b031660146136cd565b6134258360206136cd565b604051602001613436929190613e66565b60408051601f198184030181529082905262461bcd60e51b825261093991600401614046565b6000818152600183016020526040812054801561356f5760006134806001836141cb565b8554909150600090613494906001906141cb565b90508181146135155760008660000182815481106134c257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106134f357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061353457634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061151a565b600091505061151a565b600082600001828154811061359e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120546135f85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561151a565b50600061151a565b613650604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b15801561369557600080fd5b505afa1580156136a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190613cfb565b606060006136dc8360026141ac565b6136e7906002614174565b67ffffffffffffffff81111561370d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015613737576020820181803683370190505b509050600360fc1b8160008151811061376057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061379d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006137c18460026141ac565b6137cc906001614174565b90505b6001811115613860576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061380e57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061383257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936138598161420e565b90506137cf565b5083156115175760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610939565b805180151581146108ab57600080fd5b600082601f8301126138cf578081fd5b815167ffffffffffffffff8111156138e9576138e961426c565b6138fc601f8201601f1916602001614143565b818152846020838601011115613910578283fd5b61256f8260208301602087016141e2565b8051600381106108ab57600080fd5b600060208284031215613941578081fd5b813561151781614282565b60006020828403121561395d578081fd5b815161151781614282565b6000806000806080858703121561397d578283fd5b843561398881614282565b966020860135965060408601359560600135945092505050565b6000602082840312156139b3578081fd5b611517826138af565b6000806000606084860312156139d0578283fd5b6139d9846138af565b925060208401519150604084015190509250925092565b600060208284031215613a01578081fd5b5035919050565b600060208284031215613a19578081fd5b5051919050565b60008060408385031215613a32578182fd5b823591506020830135613a4481614282565b809150509250929050565b600080600060608486031215613a63578081fd5b833592506020840135613a7581614282565b929592945050506040919091013590565b600080600060608486031215613a9a578081fd5b505081359360208301359350604090920135919050565b60008060008060808587031215613ac6578182fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600060e0888a031215613afc578485fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215613b3f578182fd5b50508035926020909101359150565b600080600080600060a08688031215613b65578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215613b99578081fd5b81356001600160e01b031981168114611517578182fd5b600060208284031215613bc1578081fd5b815160078110611517578182fd5b600060208284031215613be0578081fd5b815167ffffffffffffffff80821115613bf7578283fd5b9083019060c08286031215613c0a578283fd5b613c1460c0614143565b825160048110613c22578485fd5b808252506020830151602082015260408301516040820152606083015182811115613c4b578485fd5b613c57878286016138bf565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613c8e578081fd5b815167ffffffffffffffff80821115613ca5578283fd5b9083019060c08286031215613cb8578283fd5b613cc260c0614143565b8251613ccd81614282565b815260208381015190820152613ce560408401613921565b6040820152606083015182811115613c4b578485fd5b6000610120808385031215613d0e578182fd5b613d1781614143565b9050613d2283613921565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215613d95578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115613dba578384fd5b818701915087601f830112613dcd578384fd5b813581811115613ddb578485fd5b886020828501011115613dec578485fd5b95989497505060200194505050565b60008060408385031215613e0d578182fd5b505080516020909101519092909150565b60008151808452613e368160208601602086016141e2565b601f01601f19169290920160200192915050565b60008251613e5c8184602087016141e2565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351613e9e8160178501602088016141e2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ecf8160288401602088016141e2565b01602801949350505050565b600060018060a01b038716825285602083015284604083015260a06060830152613f0860a0830185613e1e565b8281036080840152613f1a8185613e1e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613f5e57835183529284019291840191600101613f42565b50909695505050505050565b60008415158252836020830152606060408301526115b46060830184613e1e565b600086825260a06020830152613fa460a0830187613e1e565b8281036040840152613fb68187613e1e565b6001600160a01b039590951660608401525050608001529392505050565b6000848252836020830152606060408301526115b46060830184613e1e565b600085825284602083015283604083015260806060830152612ece6080830184613e1e565b602081016007831061402c5761402c614256565b91905290565b602081016003831061402c5761402c614256565b6000602082526115176020830184613e1e565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60006101e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516141038285018215159052565b50506101408381015190830152610160808401519083015261018080840151908301526101a080840151908301526101c092830151929091019190915290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561416c5761416c61426c565b604052919050565b6000821982111561418757614187614240565b500190565b6000826141a757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156141c6576141c6614240565b500290565b6000828210156141dd576141dd614240565b500390565b60005b838110156141fd5781810151838201526020016141e5565b838111156113165750506000910152565b60008161421d5761421d614240565b506000190190565b600060001982141561423957614239614240565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461085f57600080fdfef098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955ba26469706673582212206fbe90c5e63801ca92badc10bc72a58619457eca24171fa149899255b2d6ddb164736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.dbg.json b/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.json b/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.json new file mode 100644 index 00000000..83a1feef --- /dev/null +++ b/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.json @@ -0,0 +1,1526 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AyiiRiskpool", + "sourceName": "contracts/examples/AyiiRiskpool.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "name", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "collateralization", + "type": "uint256" + }, + { + "internalType": "address", + "name": "erc20Token", + "type": "address" + }, + { + "internalType": "address", + "name": "wallet", + "type": "address" + }, + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "activeBundles", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "LogBasicRiskpoolBundlesAndPolicies", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "maxAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "LogBasicRiskpoolCandidateBundleAmountCheck", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolBundleCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isMatching", + "type": "bool" + } + ], + "name": "LogRiskpoolBundleMatchesPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isSecured", + "type": "bool" + } + ], + "name": "LogRiskpoolCollateralLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "LogRiskpoolCollateralReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "riskpoolAddress", + "type": "address" + } + ], + "name": "LogRiskpoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolPayoutProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolPremiumProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_FILTER_DATA_STRUCTURE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FULL_COLLATERALIZATION_LEVEL", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "INVESTOR_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "SUM_OF_SUM_INSURED_CAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "activeBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "bundle", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum IPolicy.ApplicationState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Application", + "name": "application", + "type": "tuple" + } + ], + "name": "bundleMatchesApplication", + "outputs": [ + { + "internalType": "bool", + "name": "isMatching", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "bundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "burnBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "closeBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "collateralizePolicy", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "initialAmount", + "type": "uint256" + } + ], + "name": "createBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "defundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "fundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getActiveBundleId", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getBundle", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCapacity", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getErc20Token", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFilterDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getFullCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMaximumNumberOfActiveBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSumOfSumInsuredCap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalValueLocked", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getWallet", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "investor", + "type": "address" + } + ], + "name": "grantInvestorRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "lockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPolicyPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPolicyPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "releasePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "name": "setMaximumNumberOfActiveBundles", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "unlockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526011805463ffffffff191690553480156200001e57600080fd5b5060405162003911380380620039118339810160408190526200004191620006b2565b848469d3c21bcecceda10000008585858585858585858560028262000066336200049a565b6001600160a01b038116620000ce5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000f8620004ea565b600480546001600160a01b0319166001600160a01b03929092169190911790556200012262000505565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014c62000532565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019f57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001f392909160ff82169130916101009091046001600160a01b03169062000719565b60405180910390a1505050600d85905583620002645760405162461bcd60e51b815260206004820152602960248201527f4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b6064820152608401620000c5565b600e8490556001600160a01b038316620002c15760405162461bcd60e51b815260206004820181905260248201527f4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f6044820152606401620000c5565b600c80546001600160a01b0319166001600160a01b038581169190911790915582166200033b5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401620000c5565b600b80546001600160a01b0319166001600160a01b038416179055620003736e496e7374616e63655365727669636560881b6200054c565b600780546001600160a01b0319166001600160a01b0392909216919091179055620003b06e5269736b706f6f6c5365727669636560881b6200054c565b600880546001600160a01b0319166001600160a01b0392831617905560075460408051633acd5e0f60e21b81529051919092169163eb35783c916004808301926020929190829003018186803b1580156200040a57600080fd5b505afa1580156200041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044591906200068c565b600980546001600160a01b0319166001600160a01b0392909216919091179055506200048b9a506000995062000485985062000496975050505050505050565b620005d8565b50505050506200077d565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620005006541636365737360d01b6200054c565b905090565b6000620005007f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200054c565b6000620005006e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200059757600080fd5b505afa158015620005ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d291906200068c565b92915050565b620005e48282620005e8565b5050565b60008281526012602090815260408083206001600160a01b038516845290915290205460ff16620005e45760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620006483390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000602082840312156200069e578081fd5b8151620006ab8162000764565b9392505050565b600080600080600060a08688031215620006ca578081fd5b85519450602086015193506040860151620006e58162000764565b6060870151909350620006f88162000764565b60808701519092506200070b8162000764565b809150509295509295909350565b84815260808101600385106200073f57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6001600160a01b03811681146200077a57600080fd5b50565b613184806200078d6000396000f3fe608060405234801561001057600080fd5b50600436106103af5760003560e01c80637893c7bc116101f4578063a217fddf1161011a578063d0e0ba95116100ad578063e0815f0d1161007c578063e0815f0d14610735578063f1d354d01461073d578063f2fde38b1461074b578063feb1824b1461075e576103af565b8063d0e0ba9514610707578063d547741f1461071a578063d73cd99214610462578063e00323831461072d576103af565b8063be169e7e116100e9578063be169e7e146106d3578063be61e91e146106db578063c3004c86146106ec578063c40000d4146106ff576103af565b8063a217fddf146106c3578063b26025aa146106cb578063b3fca9bd14610462578063bd1fe5d014610462576103af565b80638c483e5a116101925780639a82f890116101615780639a82f890146106a0578063a17030d5146106a8578063a18aa128146106bb578063a18f5ae214610462576103af565b80638c483e5a146106565780638da5cb5b146106695780639088c1191461067a57806391d148541461068d576103af565b806386c71288116101ce57806386c712881461061257806389002da514610628578063890fbf781461063b578063893d20e81461064e576103af565b80637893c7bc146105e15780637f3b6980146105f757806382558906146105ff576103af565b80633629c3c4116102d957806359dacc6a11610277578063652028e511610246578063652028e51461058c578063715018a61461059f57806376082a5e146105a75780637888a2ff146105ce576103af565b806359dacc6a146104625780635ab1bd53146105655780635d1ca6311461057c578063638ce0ba14610584576103af565b80634101b90c116102b35780634101b90c1461053357806345fe1c6d1461053b57806354afef631461054a578063587e59d014610552576103af565b80633629c3c4146104f057806336568abe146105035780633dcdde1714610516576103af565b80631865c57d116103515780632d0821b7116103205780632d0821b7146104975780632f2ff15d146104b7578063316c5348146104ca57806336153f3a146104dd576103af565b80631865c57d1461044d5780631b867c6314610462578063248a9ca31461046c578063258d560c1461048f576103af565b8063132996041161038d578063132996041461040557806315dae03e1461042a57806317d7de7c1461043d57806318442e6314610445576103af565b806301ffc9a7146103b45780630676cb0e146103dc57806312065fe0146103fd575b600080fd5b6103c76103c2366004612a20565b61076f565b60405190151581526020015b60405180910390f35b6103ef6103ea3660046129b8565b6107a8565b6040519081526020016103d3565b6103ef610922565b600b546001600160a01b03165b6040516001600160a01b0390911681526020016103d3565b60035460ff166040516103d39190612e3e565b6001546103ef565b600a546103ef565b6104556109b2565b6040516103d39190612e24565b61046a610a38565b005b6103ef61047a3660046129b8565b60009081526012602052604090206001015490565b6103c7610a7f565b6104aa6104a53660046129b8565b610aaf565b6040516103d39190612f0a565b61046a6104c53660046129d0565b610bc4565b61046a6104d83660046129b8565b610bee565b6103ef6104eb3660046129ff565b610d8f565b61046a6104fe3660046129ff565b610f5b565b61046a6105113660046129d0565b610fe3565b6040805160208101909152600081525b6040516103d39190612e52565b6103ef611061565b6103ef670de0b6b3a764000081565b600d546103ef565b61046a6105603660046129b8565b61109f565b61041260035461010090046001600160a01b031690565b6002546103ef565b61046a61120c565b61046a61059a3660046129b8565b611259565b61046a6112d6565b6103ef7f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93581565b6103ef6105dc366004612a48565b6112e8565b6105266040518060200160405280600081525081565b6103ef611326565b61046a61060d3660046129ff565b611364565b6103c7610620366004612c29565b506001919050565b6103ef6106363660046129ff565b6113e4565b6103c76106493660046129ff565b611558565b6104126115ef565b61046a6106643660046129b8565b611601565b6000546001600160a01b0316610412565b61046a610688366004612980565b61176e565b6103c761069b3660046129d0565b6117a3565b6103c76117ce565b61046a6106b63660046129b8565b6117d6565b600e546103ef565b6103ef600081565b6103ef611943565b61046a611981565b6103ef69d3c21bcecceda100000081565b61046a6106fa3660046129b8565b6119ce565b6103ef611a52565b61046a6107153660046129b8565b611a90565b61046a6107283660046129d0565b611ada565b6103ef611aff565b6103c7611b3c565b670de0b6b3a76400006103ef565b61046a610759366004612980565b611b45565b600c546001600160a01b0316610412565b60006001600160e01b03198216637965db0b60e01b14806107a057506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b6000806107b460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190612d23565b83106108985760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190612d23565b9392505050565b60008061092e60025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190612d23565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156109fb57600080fd5b505afa158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190612a8b565b905090565b610a4d6810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614610a7d5760405162461bcd60e51b815260040161088f90612e65565b565b600060025b60035460ff166002811115610aa957634e487b7160e01b600052602160045260246000fd5b14905090565b610ab76127de565b600a548210610b145760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b606482015260840161088f565b6000600a8381548110610b3757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b158015610b8857600080fd5b505afa158015610b9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091b9190810190612b55565b600082815260126020526040902060010154610bdf81611c3d565b610be98383611c47565b505050565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3757600080fd5b505afa158015610c4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c739190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610cb09160040190815260200190565b60206040518083038186803b158015610cc857600080fd5b505afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d00919061299c565b9050336001600160a01b03821614610d2a5760405162461bcd60e51b815260040161088f90612e9c565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e149190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610e519160040190815260200190565b60206040518083038186803b158015610e6957600080fd5b505afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061299c565b9050336001600160a01b03821614610ecb5760405162461bcd60e51b815260040161088f90612e9c565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610f1957600080fd5b505af1158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f519190612d23565b9695505050505050565b610f6b63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614610f9b5760405162461bcd60e51b815260040161088f90612ed3565b610fa58282611ccd565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b6001600160a01b03811633146110535760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161088f565b61105d8282611d4f565b5050565b60008061106d60025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240161095c565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156110e857600080fd5b505afa1580156110fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111249190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916111619160040190815260200190565b60206040518083038186803b15801561117957600080fd5b505afa15801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b1919061299c565b9050336001600160a01b038216146111db5760405162461bcd60e51b815260040161088f90612e9c565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610d57565b6112216810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146112515760405162461bcd60e51b815260040161088f90612e65565b610a7d611db6565b611261611e37565b600061126c60025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050505050565b6112de611e37565b610a7d6000611e91565b60007f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93561131481611c3d565b61131e8484611ee1565b949350505050565b60008061133260025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db328449060240161095c565b61137463141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b0316146113a45760405162461bcd60e51b815260040161088f90612ed3565b6113ae8282611fe4565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610fd7565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b15801561142d57600080fd5b505afa158015611441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114699190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916114a69160040190815260200190565b60206040518083038186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f6919061299c565b9050336001600160a01b038216146115205760405162461bcd60e51b815260040161088f90612e9c565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610eff565b600061156a63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b03161461159a5760405162461bcd60e51b815260040161088f90612ed3565b6115a48383612033565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610a33565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561164a57600080fd5b505afa15801561165e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116869190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116c39160040190815260200190565b60206040518083038186803b1580156116db57600080fd5b505afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061299c565b9050336001600160a01b0382161461173d5760405162461bcd60e51b815260040161088f90612e9c565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610d57565b611776611e37565b6117a07f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93582612436565b50565b60009182526012602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080610a84565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261185b9190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916118989160040190815260200190565b60206040518083038186803b1580156118b057600080fd5b505afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e8919061299c565b9050336001600160a01b038216146119125760405162461bcd60e51b815260040161088f90612e9c565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610d57565b60008061194f60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d92359060240161095c565b6119966810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146119c65760405162461bcd60e51b815260040161088f90612e65565b610a7d612440565b6119de63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614611a0e5760405162461bcd60e51b815260040161088f90612ed3565b6000611a1982612528565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610fd7565b600080611a5e60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f9060240161095c565b611aa56810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614611ad55760405162461bcd60e51b815260040161088f90612e65565b600255565b600082815260126020526040902060010154611af581611c3d565b610be98383611d4f565b600080611b0b60025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b03169063295609809060240161095c565b60006001610a84565b611b4d611e37565b6001600160a01b038116611bb25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088f565b6117a081611e91565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c0557600080fd5b505afa158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a0919061299c565b6117a08133612598565b611c5182826117a3565b61105d5760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611c893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611d3257600080fd5b505af1158015611d46573d6000803e3d6000fd5b50505050505050565b611d5982826117a3565b1561105d5760008281526012602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e7490611f1a90849088908890600401612df0565b602060405180830381600087803b158015611f3457600080fd5b505af1158015611f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6c9190612d23565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611d18565b60008061203e611061565b9050600061204a611aff565b90506000612056611943565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a1600083116120eb5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c455300604482015260640161088f565b80821161213a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c000000604482015260640161088f565b6121448582612ffa565b821061242d57600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561218f57600080fd5b505afa1580156121a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121cb9190810190612aaa565b6011549091506000906121e590869063ffffffff166130ca565b905060005b85811080156121f7575086155b15612429576000612207836107a8565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561225157600080fd5b505afa158015612265573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261228d9190810190612b55565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a180156124135760008260c001518360a001516122ec9190613031565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b81106123f857600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b15801561239257600080fd5b505af11580156123a6573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff169250906123d4836130a6565b91906101000a81548163ffffffff021916908363ffffffff16021790555050612411565b89612404876001612ffa565b61240e91906130ca565b95505b505b50505080806124219061308b565b9150506121ea565b5050505b50505092915050565b61105d8282611c47565b600061244b60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561249057600080fd5b505afa1580156124a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c89190612d23565b156117a05760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b606482015260840161088f565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561258457600080fd5b505af11580156108f7573d6000803e3d6000fd5b6125a282826117a3565b61105d576125ba816001600160a01b031660146125fc565b6125c58360206125fc565b6040516020016125d6929190612d7b565b60408051601f198184030181529082905262461bcd60e51b825261088f91600401612e52565b6060600061260b836002613012565b612616906002612ffa565b67ffffffffffffffff81111561263c57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612666576020820181803683370190505b509050600360fc1b8160008151811061268f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126cc57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006126f0846002613012565b6126fb906001612ffa565b90505b600181111561278f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061273d57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061276157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361278881613074565b90506126fe565b50831561091b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161088f565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561282057634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612860578081fd5b813561287361286e82612fd2565b612fa1565b818152846020838601011115612887578283fd5b816020850160208301379081016020019190915292915050565b600082601f8301126128b1578081fd5b81516128bf61286e82612fd2565b8181528460208386010111156128d3578283fd5b61131e826020830160208701613048565b80356107a381613141565b80516107a381613141565b600060c0828403121561290b578081fd5b61291560c0612fa1565b9050813561292281613141565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561295457600080fd5b61296084828501612850565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612991578081fd5b813561091b8161312c565b6000602082840312156129ad578081fd5b815161091b8161312c565b6000602082840312156129c9578081fd5b5035919050565b600080604083850312156129e2578081fd5b8235915060208301356129f48161312c565b809150509250929050565b60008060408385031215612a11578182fd5b50508035926020909101359150565b600060208284031215612a31578081fd5b81356001600160e01b03198116811461091b578182fd5b60008060408385031215612a5a578182fd5b823567ffffffffffffffff811115612a70578283fd5b612a7c85828601612850565b95602094909401359450505050565b600060208284031215612a9c578081fd5b81516007811061091b578182fd5b600060208284031215612abb578081fd5b815167ffffffffffffffff80821115612ad2578283fd5b9083019060c08286031215612ae5578283fd5b612aef60c0612fa1565b8251612afa81613141565b808252506020830151602082015260408301516040820152606083015182811115612b23578485fd5b612b2f878286016128a1565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612b66578081fd5b815167ffffffffffffffff80821115612b7d578283fd5b8184019150610140808387031215612b93578384fd5b612b9c81612fa1565b9050825181526020830151602082015260408301516040820152612bc2606084016128ef565b6060820152608083015182811115612bd8578485fd5b612be4878286016128a1565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60008060408385031215612c3b578182fd5b823567ffffffffffffffff80821115612c52578384fd5b8185019150610140808388031215612c68578485fd5b612c7181612fa1565b9050823581526020830135602082015260408301356040820152612c97606084016128e4565b6060820152608083013582811115612cad578586fd5b612cb988828601612850565b60808301525060a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250809450506020850135915080821115612d0c578283fd5b50612d19858286016128fa565b9150509250929050565b600060208284031215612d34578081fd5b5051919050565b60008151808452612d53816020860160208601613048565b601f01601f19169290920160200192915050565b60048110612d7757612d77613100565b9052565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612db3816017850160208801613048565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612de4816028840160208801613048565b01602801949350505050565b6001600160a01b0384168152606060208201819052600090612e1490830185612d3b565b9050826040830152949350505050565b6020810160078310612e3857612e38613100565b91905290565b6020810160038310612e3857612e38613100565b60006020825261091b6020830184612d3b565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612f3d6080840182612d67565b5060808301516101408060a0850152612f5a610160850183612d3b565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612fca57612fca613116565b604052919050565b600067ffffffffffffffff821115612fec57612fec613116565b50601f01601f191660200190565b6000821982111561300d5761300d6130ea565b500190565b600081600019048311821515161561302c5761302c6130ea565b500290565b600082821015613043576130436130ea565b500390565b60005b8381101561306357818101518382015260200161304b565b83811115611e315750506000910152565b600081613083576130836130ea565b506000190190565b600060001982141561309f5761309f6130ea565b5060010190565b600063ffffffff808316818114156130c0576130c06130ea565b6001019392505050565b6000826130e557634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146117a057600080fd5b600481106117a057600080fdfea26469706673582212209e8ff8b71639b58bff88d3c17bb55e56c77f9b7258fc689f49deade934a4a8be64736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103af5760003560e01c80637893c7bc116101f4578063a217fddf1161011a578063d0e0ba95116100ad578063e0815f0d1161007c578063e0815f0d14610735578063f1d354d01461073d578063f2fde38b1461074b578063feb1824b1461075e576103af565b8063d0e0ba9514610707578063d547741f1461071a578063d73cd99214610462578063e00323831461072d576103af565b8063be169e7e116100e9578063be169e7e146106d3578063be61e91e146106db578063c3004c86146106ec578063c40000d4146106ff576103af565b8063a217fddf146106c3578063b26025aa146106cb578063b3fca9bd14610462578063bd1fe5d014610462576103af565b80638c483e5a116101925780639a82f890116101615780639a82f890146106a0578063a17030d5146106a8578063a18aa128146106bb578063a18f5ae214610462576103af565b80638c483e5a146106565780638da5cb5b146106695780639088c1191461067a57806391d148541461068d576103af565b806386c71288116101ce57806386c712881461061257806389002da514610628578063890fbf781461063b578063893d20e81461064e576103af565b80637893c7bc146105e15780637f3b6980146105f757806382558906146105ff576103af565b80633629c3c4116102d957806359dacc6a11610277578063652028e511610246578063652028e51461058c578063715018a61461059f57806376082a5e146105a75780637888a2ff146105ce576103af565b806359dacc6a146104625780635ab1bd53146105655780635d1ca6311461057c578063638ce0ba14610584576103af565b80634101b90c116102b35780634101b90c1461053357806345fe1c6d1461053b57806354afef631461054a578063587e59d014610552576103af565b80633629c3c4146104f057806336568abe146105035780633dcdde1714610516576103af565b80631865c57d116103515780632d0821b7116103205780632d0821b7146104975780632f2ff15d146104b7578063316c5348146104ca57806336153f3a146104dd576103af565b80631865c57d1461044d5780631b867c6314610462578063248a9ca31461046c578063258d560c1461048f576103af565b8063132996041161038d578063132996041461040557806315dae03e1461042a57806317d7de7c1461043d57806318442e6314610445576103af565b806301ffc9a7146103b45780630676cb0e146103dc57806312065fe0146103fd575b600080fd5b6103c76103c2366004612a20565b61076f565b60405190151581526020015b60405180910390f35b6103ef6103ea3660046129b8565b6107a8565b6040519081526020016103d3565b6103ef610922565b600b546001600160a01b03165b6040516001600160a01b0390911681526020016103d3565b60035460ff166040516103d39190612e3e565b6001546103ef565b600a546103ef565b6104556109b2565b6040516103d39190612e24565b61046a610a38565b005b6103ef61047a3660046129b8565b60009081526012602052604090206001015490565b6103c7610a7f565b6104aa6104a53660046129b8565b610aaf565b6040516103d39190612f0a565b61046a6104c53660046129d0565b610bc4565b61046a6104d83660046129b8565b610bee565b6103ef6104eb3660046129ff565b610d8f565b61046a6104fe3660046129ff565b610f5b565b61046a6105113660046129d0565b610fe3565b6040805160208101909152600081525b6040516103d39190612e52565b6103ef611061565b6103ef670de0b6b3a764000081565b600d546103ef565b61046a6105603660046129b8565b61109f565b61041260035461010090046001600160a01b031690565b6002546103ef565b61046a61120c565b61046a61059a3660046129b8565b611259565b61046a6112d6565b6103ef7f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93581565b6103ef6105dc366004612a48565b6112e8565b6105266040518060200160405280600081525081565b6103ef611326565b61046a61060d3660046129ff565b611364565b6103c7610620366004612c29565b506001919050565b6103ef6106363660046129ff565b6113e4565b6103c76106493660046129ff565b611558565b6104126115ef565b61046a6106643660046129b8565b611601565b6000546001600160a01b0316610412565b61046a610688366004612980565b61176e565b6103c761069b3660046129d0565b6117a3565b6103c76117ce565b61046a6106b63660046129b8565b6117d6565b600e546103ef565b6103ef600081565b6103ef611943565b61046a611981565b6103ef69d3c21bcecceda100000081565b61046a6106fa3660046129b8565b6119ce565b6103ef611a52565b61046a6107153660046129b8565b611a90565b61046a6107283660046129d0565b611ada565b6103ef611aff565b6103c7611b3c565b670de0b6b3a76400006103ef565b61046a610759366004612980565b611b45565b600c546001600160a01b0316610412565b60006001600160e01b03198216637965db0b60e01b14806107a057506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b6000806107b460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190612d23565b83106108985760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190612d23565b9392505050565b60008061092e60025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190612d23565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156109fb57600080fd5b505afa158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190612a8b565b905090565b610a4d6810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614610a7d5760405162461bcd60e51b815260040161088f90612e65565b565b600060025b60035460ff166002811115610aa957634e487b7160e01b600052602160045260246000fd5b14905090565b610ab76127de565b600a548210610b145760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b606482015260840161088f565b6000600a8381548110610b3757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b158015610b8857600080fd5b505afa158015610b9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091b9190810190612b55565b600082815260126020526040902060010154610bdf81611c3d565b610be98383611c47565b505050565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3757600080fd5b505afa158015610c4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c739190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610cb09160040190815260200190565b60206040518083038186803b158015610cc857600080fd5b505afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d00919061299c565b9050336001600160a01b03821614610d2a5760405162461bcd60e51b815260040161088f90612e9c565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e149190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610e519160040190815260200190565b60206040518083038186803b158015610e6957600080fd5b505afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061299c565b9050336001600160a01b03821614610ecb5760405162461bcd60e51b815260040161088f90612e9c565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610f1957600080fd5b505af1158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f519190612d23565b9695505050505050565b610f6b63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614610f9b5760405162461bcd60e51b815260040161088f90612ed3565b610fa58282611ccd565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b6001600160a01b03811633146110535760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161088f565b61105d8282611d4f565b5050565b60008061106d60025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240161095c565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156110e857600080fd5b505afa1580156110fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111249190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916111619160040190815260200190565b60206040518083038186803b15801561117957600080fd5b505afa15801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b1919061299c565b9050336001600160a01b038216146111db5760405162461bcd60e51b815260040161088f90612e9c565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610d57565b6112216810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146112515760405162461bcd60e51b815260040161088f90612e65565b610a7d611db6565b611261611e37565b600061126c60025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050505050565b6112de611e37565b610a7d6000611e91565b60007f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93561131481611c3d565b61131e8484611ee1565b949350505050565b60008061133260025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db328449060240161095c565b61137463141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b0316146113a45760405162461bcd60e51b815260040161088f90612ed3565b6113ae8282611fe4565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610fd7565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b15801561142d57600080fd5b505afa158015611441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114699190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916114a69160040190815260200190565b60206040518083038186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f6919061299c565b9050336001600160a01b038216146115205760405162461bcd60e51b815260040161088f90612e9c565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610eff565b600061156a63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b03161461159a5760405162461bcd60e51b815260040161088f90612ed3565b6115a48383612033565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610a33565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561164a57600080fd5b505afa15801561165e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116869190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116c39160040190815260200190565b60206040518083038186803b1580156116db57600080fd5b505afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061299c565b9050336001600160a01b0382161461173d5760405162461bcd60e51b815260040161088f90612e9c565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610d57565b611776611e37565b6117a07f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93582612436565b50565b60009182526012602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080610a84565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261185b9190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916118989160040190815260200190565b60206040518083038186803b1580156118b057600080fd5b505afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e8919061299c565b9050336001600160a01b038216146119125760405162461bcd60e51b815260040161088f90612e9c565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610d57565b60008061194f60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d92359060240161095c565b6119966810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146119c65760405162461bcd60e51b815260040161088f90612e65565b610a7d612440565b6119de63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614611a0e5760405162461bcd60e51b815260040161088f90612ed3565b6000611a1982612528565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610fd7565b600080611a5e60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f9060240161095c565b611aa56810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614611ad55760405162461bcd60e51b815260040161088f90612e65565b600255565b600082815260126020526040902060010154611af581611c3d565b610be98383611d4f565b600080611b0b60025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b03169063295609809060240161095c565b60006001610a84565b611b4d611e37565b6001600160a01b038116611bb25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088f565b6117a081611e91565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c0557600080fd5b505afa158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a0919061299c565b6117a08133612598565b611c5182826117a3565b61105d5760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611c893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611d3257600080fd5b505af1158015611d46573d6000803e3d6000fd5b50505050505050565b611d5982826117a3565b1561105d5760008281526012602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e7490611f1a90849088908890600401612df0565b602060405180830381600087803b158015611f3457600080fd5b505af1158015611f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6c9190612d23565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611d18565b60008061203e611061565b9050600061204a611aff565b90506000612056611943565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a1600083116120eb5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c455300604482015260640161088f565b80821161213a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c000000604482015260640161088f565b6121448582612ffa565b821061242d57600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561218f57600080fd5b505afa1580156121a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121cb9190810190612aaa565b6011549091506000906121e590869063ffffffff166130ca565b905060005b85811080156121f7575086155b15612429576000612207836107a8565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561225157600080fd5b505afa158015612265573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261228d9190810190612b55565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a180156124135760008260c001518360a001516122ec9190613031565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b81106123f857600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b15801561239257600080fd5b505af11580156123a6573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff169250906123d4836130a6565b91906101000a81548163ffffffff021916908363ffffffff16021790555050612411565b89612404876001612ffa565b61240e91906130ca565b95505b505b50505080806124219061308b565b9150506121ea565b5050505b50505092915050565b61105d8282611c47565b600061244b60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561249057600080fd5b505afa1580156124a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c89190612d23565b156117a05760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b606482015260840161088f565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561258457600080fd5b505af11580156108f7573d6000803e3d6000fd5b6125a282826117a3565b61105d576125ba816001600160a01b031660146125fc565b6125c58360206125fc565b6040516020016125d6929190612d7b565b60408051601f198184030181529082905262461bcd60e51b825261088f91600401612e52565b6060600061260b836002613012565b612616906002612ffa565b67ffffffffffffffff81111561263c57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612666576020820181803683370190505b509050600360fc1b8160008151811061268f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126cc57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006126f0846002613012565b6126fb906001612ffa565b90505b600181111561278f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061273d57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061276157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361278881613074565b90506126fe565b50831561091b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161088f565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561282057634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612860578081fd5b813561287361286e82612fd2565b612fa1565b818152846020838601011115612887578283fd5b816020850160208301379081016020019190915292915050565b600082601f8301126128b1578081fd5b81516128bf61286e82612fd2565b8181528460208386010111156128d3578283fd5b61131e826020830160208701613048565b80356107a381613141565b80516107a381613141565b600060c0828403121561290b578081fd5b61291560c0612fa1565b9050813561292281613141565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561295457600080fd5b61296084828501612850565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612991578081fd5b813561091b8161312c565b6000602082840312156129ad578081fd5b815161091b8161312c565b6000602082840312156129c9578081fd5b5035919050565b600080604083850312156129e2578081fd5b8235915060208301356129f48161312c565b809150509250929050565b60008060408385031215612a11578182fd5b50508035926020909101359150565b600060208284031215612a31578081fd5b81356001600160e01b03198116811461091b578182fd5b60008060408385031215612a5a578182fd5b823567ffffffffffffffff811115612a70578283fd5b612a7c85828601612850565b95602094909401359450505050565b600060208284031215612a9c578081fd5b81516007811061091b578182fd5b600060208284031215612abb578081fd5b815167ffffffffffffffff80821115612ad2578283fd5b9083019060c08286031215612ae5578283fd5b612aef60c0612fa1565b8251612afa81613141565b808252506020830151602082015260408301516040820152606083015182811115612b23578485fd5b612b2f878286016128a1565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612b66578081fd5b815167ffffffffffffffff80821115612b7d578283fd5b8184019150610140808387031215612b93578384fd5b612b9c81612fa1565b9050825181526020830151602082015260408301516040820152612bc2606084016128ef565b6060820152608083015182811115612bd8578485fd5b612be4878286016128a1565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60008060408385031215612c3b578182fd5b823567ffffffffffffffff80821115612c52578384fd5b8185019150610140808388031215612c68578485fd5b612c7181612fa1565b9050823581526020830135602082015260408301356040820152612c97606084016128e4565b6060820152608083013582811115612cad578586fd5b612cb988828601612850565b60808301525060a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250809450506020850135915080821115612d0c578283fd5b50612d19858286016128fa565b9150509250929050565b600060208284031215612d34578081fd5b5051919050565b60008151808452612d53816020860160208601613048565b601f01601f19169290920160200192915050565b60048110612d7757612d77613100565b9052565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612db3816017850160208801613048565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612de4816028840160208801613048565b01602801949350505050565b6001600160a01b0384168152606060208201819052600090612e1490830185612d3b565b9050826040830152949350505050565b6020810160078310612e3857612e38613100565b91905290565b6020810160038310612e3857612e38613100565b60006020825261091b6020830184612d3b565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612f3d6080840182612d67565b5060808301516101408060a0850152612f5a610160850183612d3b565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612fca57612fca613116565b604052919050565b600067ffffffffffffffff821115612fec57612fec613116565b50601f01601f191660200190565b6000821982111561300d5761300d6130ea565b500190565b600081600019048311821515161561302c5761302c6130ea565b500290565b600082821015613043576130436130ea565b500390565b60005b8381101561306357818101518382015260200161304b565b83811115611e315750506000910152565b600081613083576130836130ea565b506000190190565b600060001982141561309f5761309f6130ea565b5060010190565b600063ffffffff808316818114156130c0576130c06130ea565b6001019392505050565b6000826130e557634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146117a057600080fd5b600481106117a057600080fdfea26469706673582212209e8ff8b71639b58bff88d3c17bb55e56c77f9b7258fc689f49deade934a4a8be64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.dbg.json b/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.json b/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.json new file mode 100644 index 00000000..f735f94c --- /dev/null +++ b/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.json @@ -0,0 +1,328 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ChainlinkOperator", + "sourceName": "contracts/examples/mock/ChainlinkOperator.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address[]", + "name": "senders", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "address", + "name": "changedBy", + "type": "address" + } + ], + "name": "AuthorizedSendersChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + } + ], + "name": "CancelOracleRequest", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "specId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "requester", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "callbackAddr", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes4", + "name": "callbackFunctionId", + "type": "bytes4" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "cancelExpiration", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "dataVersion", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "OracleRequest", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + } + ], + "name": "OracleResponse", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "address", + "name": "callbackAddress", + "type": "address" + }, + { + "internalType": "bytes4", + "name": "callbackFunctionId", + "type": "bytes4" + }, + { + "internalType": "uint256", + "name": "expiration", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "fulfillOracleRequest2", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getAuthorizedSenders", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getExpiryTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onTokenTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "specId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callbackAddress", + "type": "address" + }, + { + "internalType": "bytes4", + "name": "callbackFunctionId", + "type": "bytes4" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "dataVersion", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "oracleRequest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "senders", + "type": "address[]" + } + ], + "name": "setAuthorizedSenders", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fc48061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146101055780638da5cb5b1461010d578063a4c0ed3614610128578063ee56997b1461013b578063f2fde38b1461014e57610093565b80632408afaa1461009857806325cb5bc0146100b657806340429946146100cd5780636ae0bc76146100e2575b600080fd5b6100a0610161565b6040516100ad9190610ee2565b60405180910390f35b6100bf61012c81565b6040519081526020016100ad565b6100e06100db366004610b58565b6101c3565b005b6100f56100f0366004610d2a565b61022d565b60405190151581526020016100ad565b6100e061034e565b6000546040516001600160a01b0390911681526020016100ad565b6100e0610136366004610bf5565b610362565b6100e0610149366004610cbb565b61041f565b6100e061015c366004610b37565b610618565b606060028054806020026020016040519081016040528092919081815260200182805480156101b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161019b575b5050505050905090565b6000806101d48b8b8a8a8a8a610691565b91509150887fd8d7ecc4800d25fa53ce0372f13a416d98907a7ef3d8d3bdd79cf4fe75529c658c848d8f8c878c8c8c60405161021899989796959493929190610e07565b60405180910390a25050505050505050505050565b600061023e888888888860026107c7565b60405188907f9e9bc7616d42c2835d05ae617e508454e63b30b934be8aa932ebc125e0e58a6490600090a262061a805a10156102c15760405162461bcd60e51b815260206004820181905260248201527f4d7573742070726f7669646520636f6e73756d657220656e6f7567682067617360448201526064015b60405180910390fd5b6000866001600160a01b03168685856040516020016102e293929190610daa565b60408051601f19818403018152908290526102fc91610dce565b6000604051808303816000865af19150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b50909a9950505050505050505050565b6103566108cd565b6103606000610927565b565b8260248201528160448201526000306001600160a01b0316826040516103889190610dce565b600060405180830381855af49150503d80600081146103c3576040519150601f19603f3d011682016040523d82523d6000602084013e6103c8565b606091505b50509050806104195760405162461bcd60e51b815260206004820152601860248201527f556e61626c6520746f206372656174652072657175657374000000000000000060448201526064016102b8565b50505050565b610427610977565b6104735760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742073657420617574686f72697a65642073656e6465727300000060448201526064016102b8565b806104cf5760405162461bcd60e51b815260206004820152602660248201527f4d7573742068617665206174206c65617374203120617574686f72697a65642060448201526539b2b73232b960d11b60648201526084016102b8565b60025460005b8181101561054a576000600160006002848154811061050457634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061054281610f47565b9150506104d5565b5060005b828110156105ca57600180600086868581811061057b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906105909190610b37565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806105c281610f47565b91505061054e565b506105d760028484610a49565b507ff263cfb3e4298332e776194610cf9fdc09ccb3ada8b9aa39764d882e11fbf0a083833360405161060b93929190610e81565b60405180910390a1505050565b6106206108cd565b6001600160a01b0381166106855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b8565b61068e81610927565b50565b6040516bffffffffffffffffffffffff19606088901b16602082015260348101839052600090819060540160408051808303601f1901815291815281516020928301206000818152600390935291205490925060081b60ff19161561072f5760405162461bcd60e51b8152602060048201526014602482015273135d5cdd081d5cd94818481d5b9a5c5d5948125160621b60448201526064016102b8565b61073b61012c42610f2f565b9050600061074b8888888561099b565b905060405180604001604052808260ff1916815260200161076b866109f5565b60ff9081169091526000858152600360209081526040909120835181549490920151909216600160f81b0260089190911c6001600160f81b0319909316929092176001600160f81b031691909117905550965096945050505050565b60006107d58686868661099b565b60008881526003602052604090205490915060081b60ff19908116908216146108405760405162461bcd60e51b815260206004820152601e60248201527f506172616d7320646f206e6f74206d617463682072657175657374204944000060448201526064016102b8565b610849826109f5565b60008881526003602052604090205460ff918216600160f81b90910490911611156108b65760405162461bcd60e51b815260206004820152601860248201527f446174612076657273696f6e73206d757374206d61746368000000000000000060448201526064016102b8565b505050600093845250506003602052506040812055565b6000546001600160a01b031633146103605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60003361098c6000546001600160a01b031690565b6001600160a01b031614905090565b6040805160208082019690965260609490941b6bffffffffffffffffffffffff1916848201526001600160e01b03199290921660548401526058808401919091528151808403909101815260789092019052805191012090565b60006101008210610a415760405162461bcd60e51b81526020600482015260166024820152751b9d5b58995c881d1bdbc8189a59c81d1bc818d85cdd60521b60448201526064016102b8565b50805b919050565b828054828255906000526020600020908101928215610a9c579160200282015b82811115610a9c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190610a69565b50610aa8929150610aac565b5090565b5b80821115610aa85760008155600101610aad565b80356001600160a01b0381168114610a4457600080fd5b80356001600160e01b031981168114610a4457600080fd5b60008083601f840112610b01578182fd5b50813567ffffffffffffffff811115610b18578182fd5b602083019150836020828501011115610b3057600080fd5b9250929050565b600060208284031215610b48578081fd5b610b5182610ac1565b9392505050565b60008060008060008060008060006101008a8c031215610b76578485fd5b610b7f8a610ac1565b985060208a0135975060408a01359650610b9b60608b01610ac1565b9550610ba960808b01610ad8565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff811115610bd2578283fd5b610bde8c828d01610af0565b915080935050809150509295985092959850929598565b600080600060608486031215610c09578283fd5b610c1284610ac1565b925060208401359150604084013567ffffffffffffffff80821115610c35578283fd5b818601915086601f830112610c48578283fd5b813581811115610c5a57610c5a610f78565b604051601f8201601f19908116603f01168101908382118183101715610c8257610c82610f78565b81604052828152896020848701011115610c9a578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60008060208385031215610ccd578182fd5b823567ffffffffffffffff80821115610ce4578384fd5b818501915085601f830112610cf7578384fd5b813581811115610d05578485fd5b8660208083028501011115610d18578485fd5b60209290920196919550909350505050565b600080600080600080600060c0888a031215610d44578283fd5b8735965060208801359550610d5b60408901610ac1565b9450610d6960608901610ad8565b93506080880135925060a088013567ffffffffffffffff811115610d8b578283fd5b610d978a828b01610af0565b989b979a50959850939692959293505050565b6001600160e01b031984168152600082846004840137910160040190815292915050565b60008251815b81811015610dee5760208186018101518583015201610dd4565b81811115610dfc5782828501525b509190910192915050565b6001600160a01b038a81168252602082018a905260408201899052871660608201526001600160e01b03198616608082015260a0810185905260c0810184905261010060e0820181905281018290526000610120838582850137828401810191909152601f909201601f1916010198975050505050505050565b6040808252810183905260008460608301825b86811015610ec2576001600160a01b03610ead84610ac1565b16825260209283019290910190600101610e94565b506001600160a01b03949094166020939093019290925250909392505050565b6020808252825182820181905260009190848201906040850190845b81811015610f235783516001600160a01b031683529284019291840191600101610efe565b50909695505050505050565b60008219821115610f4257610f42610f62565b500190565b6000600019821415610f5b57610f5b610f62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220262e5ad4ad92d2986c722791cedda45946b31c84f2cd71f00eb573c7c470f5a364736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146101055780638da5cb5b1461010d578063a4c0ed3614610128578063ee56997b1461013b578063f2fde38b1461014e57610093565b80632408afaa1461009857806325cb5bc0146100b657806340429946146100cd5780636ae0bc76146100e2575b600080fd5b6100a0610161565b6040516100ad9190610ee2565b60405180910390f35b6100bf61012c81565b6040519081526020016100ad565b6100e06100db366004610b58565b6101c3565b005b6100f56100f0366004610d2a565b61022d565b60405190151581526020016100ad565b6100e061034e565b6000546040516001600160a01b0390911681526020016100ad565b6100e0610136366004610bf5565b610362565b6100e0610149366004610cbb565b61041f565b6100e061015c366004610b37565b610618565b606060028054806020026020016040519081016040528092919081815260200182805480156101b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161019b575b5050505050905090565b6000806101d48b8b8a8a8a8a610691565b91509150887fd8d7ecc4800d25fa53ce0372f13a416d98907a7ef3d8d3bdd79cf4fe75529c658c848d8f8c878c8c8c60405161021899989796959493929190610e07565b60405180910390a25050505050505050505050565b600061023e888888888860026107c7565b60405188907f9e9bc7616d42c2835d05ae617e508454e63b30b934be8aa932ebc125e0e58a6490600090a262061a805a10156102c15760405162461bcd60e51b815260206004820181905260248201527f4d7573742070726f7669646520636f6e73756d657220656e6f7567682067617360448201526064015b60405180910390fd5b6000866001600160a01b03168685856040516020016102e293929190610daa565b60408051601f19818403018152908290526102fc91610dce565b6000604051808303816000865af19150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b50909a9950505050505050505050565b6103566108cd565b6103606000610927565b565b8260248201528160448201526000306001600160a01b0316826040516103889190610dce565b600060405180830381855af49150503d80600081146103c3576040519150601f19603f3d011682016040523d82523d6000602084013e6103c8565b606091505b50509050806104195760405162461bcd60e51b815260206004820152601860248201527f556e61626c6520746f206372656174652072657175657374000000000000000060448201526064016102b8565b50505050565b610427610977565b6104735760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742073657420617574686f72697a65642073656e6465727300000060448201526064016102b8565b806104cf5760405162461bcd60e51b815260206004820152602660248201527f4d7573742068617665206174206c65617374203120617574686f72697a65642060448201526539b2b73232b960d11b60648201526084016102b8565b60025460005b8181101561054a576000600160006002848154811061050457634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061054281610f47565b9150506104d5565b5060005b828110156105ca57600180600086868581811061057b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906105909190610b37565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806105c281610f47565b91505061054e565b506105d760028484610a49565b507ff263cfb3e4298332e776194610cf9fdc09ccb3ada8b9aa39764d882e11fbf0a083833360405161060b93929190610e81565b60405180910390a1505050565b6106206108cd565b6001600160a01b0381166106855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b8565b61068e81610927565b50565b6040516bffffffffffffffffffffffff19606088901b16602082015260348101839052600090819060540160408051808303601f1901815291815281516020928301206000818152600390935291205490925060081b60ff19161561072f5760405162461bcd60e51b8152602060048201526014602482015273135d5cdd081d5cd94818481d5b9a5c5d5948125160621b60448201526064016102b8565b61073b61012c42610f2f565b9050600061074b8888888561099b565b905060405180604001604052808260ff1916815260200161076b866109f5565b60ff9081169091526000858152600360209081526040909120835181549490920151909216600160f81b0260089190911c6001600160f81b0319909316929092176001600160f81b031691909117905550965096945050505050565b60006107d58686868661099b565b60008881526003602052604090205490915060081b60ff19908116908216146108405760405162461bcd60e51b815260206004820152601e60248201527f506172616d7320646f206e6f74206d617463682072657175657374204944000060448201526064016102b8565b610849826109f5565b60008881526003602052604090205460ff918216600160f81b90910490911611156108b65760405162461bcd60e51b815260206004820152601860248201527f446174612076657273696f6e73206d757374206d61746368000000000000000060448201526064016102b8565b505050600093845250506003602052506040812055565b6000546001600160a01b031633146103605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60003361098c6000546001600160a01b031690565b6001600160a01b031614905090565b6040805160208082019690965260609490941b6bffffffffffffffffffffffff1916848201526001600160e01b03199290921660548401526058808401919091528151808403909101815260789092019052805191012090565b60006101008210610a415760405162461bcd60e51b81526020600482015260166024820152751b9d5b58995c881d1bdbc8189a59c81d1bc818d85cdd60521b60448201526064016102b8565b50805b919050565b828054828255906000526020600020908101928215610a9c579160200282015b82811115610a9c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190610a69565b50610aa8929150610aac565b5090565b5b80821115610aa85760008155600101610aad565b80356001600160a01b0381168114610a4457600080fd5b80356001600160e01b031981168114610a4457600080fd5b60008083601f840112610b01578182fd5b50813567ffffffffffffffff811115610b18578182fd5b602083019150836020828501011115610b3057600080fd5b9250929050565b600060208284031215610b48578081fd5b610b5182610ac1565b9392505050565b60008060008060008060008060006101008a8c031215610b76578485fd5b610b7f8a610ac1565b985060208a0135975060408a01359650610b9b60608b01610ac1565b9550610ba960808b01610ad8565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff811115610bd2578283fd5b610bde8c828d01610af0565b915080935050809150509295985092959850929598565b600080600060608486031215610c09578283fd5b610c1284610ac1565b925060208401359150604084013567ffffffffffffffff80821115610c35578283fd5b818601915086601f830112610c48578283fd5b813581811115610c5a57610c5a610f78565b604051601f8201601f19908116603f01168101908382118183101715610c8257610c82610f78565b81604052828152896020848701011115610c9a578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60008060208385031215610ccd578182fd5b823567ffffffffffffffff80821115610ce4578384fd5b818501915085601f830112610cf7578384fd5b813581811115610d05578485fd5b8660208083028501011115610d18578485fd5b60209290920196919550909350505050565b600080600080600080600060c0888a031215610d44578283fd5b8735965060208801359550610d5b60408901610ac1565b9450610d6960608901610ad8565b93506080880135925060a088013567ffffffffffffffff811115610d8b578283fd5b610d978a828b01610af0565b989b979a50959850939692959293505050565b6001600160e01b031984168152600082846004840137910160040190815292915050565b60008251815b81811015610dee5760208186018101518583015201610dd4565b81811115610dfc5782828501525b509190910192915050565b6001600160a01b038a81168252602082018a905260408201899052871660608201526001600160e01b03198616608082015260a0810185905260c0810184905261010060e0820181905281018290526000610120838582850137828401810191909152601f909201601f1916010198975050505050505050565b6040808252810183905260008460608301825b86811015610ec2576001600160a01b03610ead84610ac1565b16825260209283019290910190600101610e94565b506001600160a01b03949094166020939093019290925250909392505050565b6020808252825182820181905260009190848201906040850190845b81811015610f235783516001600160a01b031683529284019291840191600101610efe565b50909695505050505050565b60008219821115610f4257610f42610f62565b500190565b6000600019821415610f5b57610f5b610f62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220262e5ad4ad92d2986c722791cedda45946b31c84f2cd71f00eb573c7c470f5a364736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.dbg.json b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.json b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.json new file mode 100644 index 00000000..0204d325 --- /dev/null +++ b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.json @@ -0,0 +1,326 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ChainlinkToken", + "sourceName": "contracts/examples/mock/ChainlinkToken.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "supply", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "transferAndCall", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000d0338038062000d0383398101604081905262000034916200025f565b6040518060400160405280601581526020017f436861696e6c696e6b2044756d6d7920546f6b656e00000000000000000000008152506040518060400160405280600381526020016210d11560ea1b81525081600390805190602001906200009e929190620001b9565b508051620000b4906004906020840190620001b9565b505050620000c98282620000d160201b60201c565b5050620002fb565b6001600160a01b0382166200012c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000140919062000299565b90915550506001600160a01b038216600090815260208190526040812080548392906200016f90849062000299565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001c790620002be565b90600052602060002090601f016020900481019282620001eb576000855562000236565b82601f106200020657805160ff191683800117855562000236565b8280016001018555821562000236579182015b828111156200023657825182559160200191906001019062000219565b506200024492915062000248565b5090565b5b8082111562000244576000815560010162000249565b6000806040838503121562000272578182fd5b82516001600160a01b038116811462000289578283fd5b6020939093015192949293505050565b60008219821115620002b957634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680620002d357607f821691505b60208210811415620002f557634e487b7160e01b600052602260045260246000fd5b50919050565b6109f8806200030b6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80634000aea0116100715780634000aea01461014157806370a082311461015457806395d89b4114610167578063a457c2d71461016f578063a9059cbb14610182578063dd62ed3e14610195576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101a8565b6040516100ce9190610910565b60405180910390f35b6100ea6100e536600461081d565b61023a565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046107e2565b610252565b604051601281526020016100ce565b6100ea61013c36600461081d565b610276565b6100ea61014f366004610846565b610298565b6100fe61016236600461078f565b6102b8565b6100c16102d7565b6100ea61017d36600461081d565b6102e6565b6100ea61019036600461081d565b610366565b6100fe6101a33660046107b0565b610374565b6060600380546101b790610987565b80601f01602080910402602001604051908101604052809291908181526020018280546101e390610987565b80156102305780601f1061020557610100808354040283529160200191610230565b820191906000526020600020905b81548152906001019060200180831161021357829003601f168201915b5050505050905090565b60003361024881858561039f565b5060019392505050565b6000336102608582856104c3565b61026b85858561053d565b506001949350505050565b6000336102488185856102898383610374565b6102939190610963565b61039f565b60006102a48585610366565b50843b1561026b5761026b8585858561070b565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546101b790610987565b600033816102f48286610374565b9050838110156103595760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61026b828686840361039f565b60003361024881858561053d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610350565b6001600160a01b0382166104625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610350565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104cf8484610374565b90506000198114610537578181101561052a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610350565b610537848484840361039f565b50505050565b6001600160a01b0383166105a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610350565b6001600160a01b0382166106035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610350565b6001600160a01b0383166000908152602081905260409020548181101561067b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610350565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106b2908490610963565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106fe91815260200190565b60405180910390a3610537565b604051635260769b60e11b815284906001600160a01b0382169063a4c0ed369061073f9033908890889088906004016108c8565b600060405180830381600087803b15801561075957600080fd5b505af115801561076d573d6000803e3d6000fd5b505050505050505050565b80356001600160a01b03811681146102d257600080fd5b6000602082840312156107a0578081fd5b6107a982610778565b9392505050565b600080604083850312156107c2578081fd5b6107cb83610778565b91506107d960208401610778565b90509250929050565b6000806000606084860312156107f6578081fd5b6107ff84610778565b925061080d60208501610778565b9150604084013590509250925092565b6000806040838503121561082f578182fd5b61083883610778565b946020939093013593505050565b6000806000806060858703121561085b578081fd5b61086485610778565b935060208501359250604085013567ffffffffffffffff80821115610887578283fd5b818701915087601f83011261089a578283fd5b8135818111156108a8578384fd5b8860208285010111156108b9578384fd5b95989497505060200194505050565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6000602080835283518082850152825b8181101561093c57858101830151858201604001528201610920565b8181111561094d5783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561098257634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061099b57607f821691505b602082108114156109bc57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220f3d8363e9fb1f29b8d17cfb6891464862284d9a7fc6aa7fae16e70cee2835a4064736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80634000aea0116100715780634000aea01461014157806370a082311461015457806395d89b4114610167578063a457c2d71461016f578063a9059cbb14610182578063dd62ed3e14610195576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101a8565b6040516100ce9190610910565b60405180910390f35b6100ea6100e536600461081d565b61023a565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046107e2565b610252565b604051601281526020016100ce565b6100ea61013c36600461081d565b610276565b6100ea61014f366004610846565b610298565b6100fe61016236600461078f565b6102b8565b6100c16102d7565b6100ea61017d36600461081d565b6102e6565b6100ea61019036600461081d565b610366565b6100fe6101a33660046107b0565b610374565b6060600380546101b790610987565b80601f01602080910402602001604051908101604052809291908181526020018280546101e390610987565b80156102305780601f1061020557610100808354040283529160200191610230565b820191906000526020600020905b81548152906001019060200180831161021357829003601f168201915b5050505050905090565b60003361024881858561039f565b5060019392505050565b6000336102608582856104c3565b61026b85858561053d565b506001949350505050565b6000336102488185856102898383610374565b6102939190610963565b61039f565b60006102a48585610366565b50843b1561026b5761026b8585858561070b565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546101b790610987565b600033816102f48286610374565b9050838110156103595760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61026b828686840361039f565b60003361024881858561053d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610350565b6001600160a01b0382166104625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610350565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104cf8484610374565b90506000198114610537578181101561052a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610350565b610537848484840361039f565b50505050565b6001600160a01b0383166105a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610350565b6001600160a01b0382166106035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610350565b6001600160a01b0383166000908152602081905260409020548181101561067b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610350565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106b2908490610963565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106fe91815260200190565b60405180910390a3610537565b604051635260769b60e11b815284906001600160a01b0382169063a4c0ed369061073f9033908890889088906004016108c8565b600060405180830381600087803b15801561075957600080fd5b505af115801561076d573d6000803e3d6000fd5b505050505050505050565b80356001600160a01b03811681146102d257600080fd5b6000602082840312156107a0578081fd5b6107a982610778565b9392505050565b600080604083850312156107c2578081fd5b6107cb83610778565b91506107d960208401610778565b90509250929050565b6000806000606084860312156107f6578081fd5b6107ff84610778565b925061080d60208501610778565b9150604084013590509250925092565b6000806040838503121561082f578182fd5b61083883610778565b946020939093013593505050565b6000806000806060858703121561085b578081fd5b61086485610778565b935060208501359250604085013567ffffffffffffffff80821115610887578283fd5b818701915087601f83011261089a578283fd5b8135818111156108a8578384fd5b8860208285010111156108b9578384fd5b95989497505060200194505050565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6000602080835283518082850152825b8181101561093c57858101830151858201604001528201610920565b8181111561094d5783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561098257634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061099b57607f821691505b602082108114156109bc57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220f3d8363e9fb1f29b8d17cfb6891464862284d9a7fc6aa7fae16e70cee2835a4064736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.dbg.json b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.dbg.json new file mode 100644 index 00000000..58d048c6 --- /dev/null +++ b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.json b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.json new file mode 100644 index 00000000..7c9e82e7 --- /dev/null +++ b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.json @@ -0,0 +1,34 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC677Receiver", + "sourceName": "contracts/examples/mock/ChainlinkToken.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "onTokenTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/examples/strings.sol/strings.dbg.json b/artifacts/contracts/examples/strings.sol/strings.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/examples/strings.sol/strings.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/examples/strings.sol/strings.json b/artifacts/contracts/examples/strings.sol/strings.json new file mode 100644 index 00000000..ca0f7654 --- /dev/null +++ b/artifacts/contracts/examples/strings.sol/strings.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "strings", + "sourceName": "contracts/examples/strings.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a39611688c0ac4789558bf2ee98f59e4dcce4418533237488fd2a2f3474b59c064736f6c63430008020033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a39611688c0ac4789558bf2ee98f59e4dcce4418533237488fd2a2f3474b59c064736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.dbg.json b/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.json b/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.json new file mode 100644 index 00000000..0bb79287 --- /dev/null +++ b/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.json @@ -0,0 +1,509 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PolicyDefaultFlow", + "sourceName": "contracts/flows/PolicyDefaultFlow.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "expectedPremiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "adjustPremiumSumInsured", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "cancelRequest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "close", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "closeClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "collectPremium", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPremiumAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "confirmedAmount", + "type": "uint256" + } + ], + "name": "confirmClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "decline", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "declineClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "expire", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "getApplicationData", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "getClaimData", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "getContractFromRegistry", + "outputs": [ + { + "internalType": "address", + "name": "_addr", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "getPayoutData", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "metaData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "applicationData", + "type": "bytes" + } + ], + "name": "newApplication", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "newClaim", + "outputs": [ + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "newPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPayoutAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_input", + "type": "bytes" + }, + { + "internalType": "string", + "name": "_callbackMethodName", + "type": "string" + }, + { + "internalType": "address", + "name": "_callbackContractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_responsibleOracleId", + "type": "uint256" + } + ], + "name": "request", + "outputs": [ + { + "internalType": "uint256", + "name": "_requestId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "revoke", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "underwrite", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60a06040523480156200001157600080fd5b50604051620033f2380380620033f283398101604081905262000034916200004a565b60601b6001600160601b0319166080526200007a565b6000602082840312156200005c578081fd5b81516001600160a01b038116811462000073578182fd5b9392505050565b60805160601c613352620000a0600039600081816102400152611c1301526133526000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80637f29dba2116100b8578063b75c7dc61161007c578063b75c7dc6146102e1578063c46df94e146102f4578063c644179814610307578063e3ebdea51461031a578063fae43d151461034a578063fe64372b1461035d57610142565b80637f29dba21461027a5780638cc7d3d11461028d57806393b8414a146102a0578063a3f4df7e146102b3578063a5b25e71146102ce57610142565b806330a73da51161010a57806330a73da5146101dc57806339c79e0c146101ef5780634cda0de9146102025780634e02c63f14610215578063781d7846146102285780637b1039991461023b57610142565b806310b96080146101475780631b07b17f1461017057806322f86e7f146101935780632c933f22146101a65780633015394c146101c7575b600080fd5b61015a610155366004612da0565b610370565b60405161016791906131e1565b60405180910390f35b61018361017e366004612cdc565b61040e565b6040519015158152602001610167565b61015a6101a1366004612da0565b610747565b6101b96101b4366004612d0c565b6107d9565b604051908152602001610167565b6101da6101d5366004612cdc565b6109be565b005b6101da6101ea366004612e12565b610c46565b6101da6101fd366004612cdc565b610eff565b6101da610210366004612da0565b61120f565b6101da610223366004612e12565b611392565b6101b9610236366004612e3d565b611554565b6102627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610167565b6101da610288366004612da0565b611733565b6101da61029b366004612cdc565b6118b6565b6101b96102ae366004612bfb565b611a68565b6101b970506f6c69637944656661756c74466c6f7760781b81565b6102626102dc366004612cdc565b611bfa565b6101da6102ef366004612cdc565b611c9b565b61015a610302366004612cdc565b611e17565b6101da610315366004612cdc565b611eaf565b61032d610328366004612da0565b612120565b604080519315158452602084019290925290820152606001610167565b6101b9610358366004612dc1565b6124f9565b61032d61036b366004612da0565b6127cc565b6060600061037c612a9d565b60405163cef58f1360e01b815260048101869052602481018590529091506001600160a01b0382169063cef58f139060440160006040518083038186803b1580156103c657600080fd5b505afa1580156103da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612fc5565b60600151949350505050565b600081600061041b612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561046157600080fd5b505afa158015610475573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261049d9190810190612f47565b905060006104b66810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156104f857600080fd5b505afa15801561050c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105309190612cf4565b82602001511461055b5760405162461bcd60e51b815260040161055290613214565b60405180910390fd5b6000610565612ab6565b604051631b07b17f60e01b8152600481018990529091506001600160a01b03821690631b07b17f90602401602060405180830381600087803b1580156105aa57600080fd5b505af11580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e29190612c8e565b9550851561073d5760006105f4612a9d565b604051630b92aa5160e31b8152600481018a90529091506001600160a01b03821690635c95528890602401600060405180830381600087803b15801561063957600080fd5b505af115801561064d573d6000803e3d6000fd5b505060405163260a666160e11b8152600481018b90526001600160a01b0384169250634c14ccc29150602401600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505060405163a3f685f960e01b8152600481018b9052600092506001600160a01b038416915063a3f685f9906024016101206040518083038186803b1580156106ef57600080fd5b505afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610727919061303f565b9050610737898260200151612120565b50505050505b5050505050919050565b60606000610753612a9d565b604051637f22c2d960e01b815260048101869052602481018590529091506001600160a01b03821690637f22c2d99060440160006040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612e9c565b60008760006107e6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108689190810190612f47565b905060006108816810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156108c357600080fd5b505afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190612cf4565b82602001511461091d5760405162461bcd60e51b815260040161055290613214565b610925612ac8565b6001600160a01b0316632c933f228d8d8d8d8d8d8d6040518863ffffffff1660e01b815260040161095c9796959493929190613143565b602060405180830381600087803b15801561097657600080fd5b505af115801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae9190612cf4565b9c9b505050505050505050505050565b8060006109c9612ac8565b905060006109d5612ac8565b6001600160a01b0316639b04ed30846040518263ffffffff1660e01b8152600401610a0291815260200190565b60206040518083038186803b158015610a1a57600080fd5b505afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190612cf4565b90506000610a5e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae09190810190612f47565b90506000610af96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610b3b57600080fd5b505afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190612cf4565b826020015114610bd65760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5046442d3030353a5245515545535449445f50524f445543545f60448201526709a92a69a82a886960c31b6064820152608401610552565b610bde612ac8565b6001600160a01b03166340e58ee5886040518263ffffffff1660e01b8152600401610c0b91815260200190565b600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b5050505050505050505050565b826000610c51612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610c9657600080fd5b505afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce919061303f565b516002811115610cee57634e487b7160e01b600052602160045260246000fd5b1415610d3c5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b846000610d47612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dc99190810190612f47565b90506000610de26810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c9190612cf4565b826020015114610e7e5760405162461bcd60e51b815260040161055290613214565b6000610e88612a9d565b6040516330a73da560e01b8152600481018c9052602481018b9052604481018a90529091506001600160a01b038216906330a73da590606401600060405180830381600087803b158015610edb57600080fd5b505af1158015610eef573d6000803e3d6000fd5b5050505050505050505050505050565b806000610f0a612a9d565b9050600160405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610f4f57600080fd5b505afa158015610f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f87919061303f565b516002811115610fa757634e487b7160e01b600052602160045260246000fd5b14610ff45760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5046442d3030323a504f4c4943595f4e4f545f455850495245446044820152606401610552565b826000610fff612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110819190810190612f47565b9050600061109a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156110dc57600080fd5b505afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190612cf4565b8260200151146111365760405162461bcd60e51b815260040161055290613214565b6000611140612a9d565b6040516315b95b6560e31b8152600481018a90529091506001600160a01b0382169063adcadb2890602401600060405180830381600087803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b5050505060006111a7612ab6565b6040516367d42a8b60e01b8152600481018b90529091506001600160a01b038216906367d42a8b90602401600060405180830381600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b50505050505050505050505050565b81600061121a612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561126057600080fd5b505afa158015611274573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261129c9190810190612f47565b905060006112b56810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156112f757600080fd5b505afa15801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190612cf4565b8260200151146113515760405162461bcd60e51b815260040161055290613214565b600061135b612a9d565b604051634cda0de960e01b815260048101899052602481018890529091506001600160a01b03821690634cda0de990604401610c0b565b82600061139d612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156113e357600080fd5b505afa1580156113f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141f9190810190612f47565b905060006114386810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b29190612cf4565b8260200151146114d45760405162461bcd60e51b815260040161055290613214565b60006114de612a9d565b604051634e02c63f60e01b8152600481018a905260248101899052604481018890529091506001600160a01b03821690634e02c63f906064015b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050505050505050505050565b6000856000611561612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115e39190810190612f47565b905060006115fc6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116769190612cf4565b8260200151146116985760405162461bcd60e51b815260040161055290613214565b6116a0612a9d565b6001600160a01b031663db42b77b8b8b8b8b8b6040518663ffffffff1660e01b81526004016116d39594939291906131b0565b602060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117259190612cf4565b9a9950505050505050505050565b81600061173e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561178457600080fd5b505afa158015611798573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117c09190810190612f47565b905060006117d96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561181b57600080fd5b505afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118539190612cf4565b8260200151146118755760405162461bcd60e51b815260040161055290613214565b600061187f612a9d565b604051633f94edd160e11b815260048101899052602481018890529091506001600160a01b03821690637f29dba290604401610c0b565b8060006118c1612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561190757600080fd5b505afa15801561191b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119439190810190612f47565b9050600061195c6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561199e57600080fd5b505afa1580156119b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d69190612cf4565b8260200151146119f85760405162461bcd60e51b815260040161055290613214565b6000611a02612a9d565b60405163296d6c7d60e01b8152600481018890529091506001600160a01b0382169063296d6c7d906024015b600060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b50505050505050505050565b600080611a73612adb565b604051632b1c7f7360e01b81523360048201529091506000906001600160a01b03831690632b1c7f739060240160206040518083038186803b158015611ab857600080fd5b505afa158015611acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af09190612cf4565b90506000611afc612a9d565b6040516350c0a50d60e11b81529091506001600160a01b0382169063a1814a1a90611b31908e9086908d908d90600401613111565b602060405180830381600087803b158015611b4b57600080fd5b505af1158015611b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b839190612cf4565b6040516333c019b760e11b81529094506001600160a01b03821690636780336e90611bba9087908e908e908c908c906004016131b0565b600060405180830381600087803b158015611bd457600080fd5b505af1158015611be8573d6000803e3d6000fd5b50505050505050979650505050505050565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c5d57600080fd5b505afa158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190612bd8565b92915050565b806000611ca6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611cec57600080fd5b505afa158015611d00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d289190810190612f47565b90506000611d416810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015611d8357600080fd5b505afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190612cf4565b826020015114611ddd5760405162461bcd60e51b815260040161055290613214565b6000611de7612a9d565b60405163eb96cbed60e01b8152600481018890529091506001600160a01b0382169063eb96cbed90602401611a2e565b60606000611e23612a9d565b604051632f141bd960e21b8152600481018590529091506001600160a01b0382169063bc506f649060240160006040518083038186803b158015611e6657600080fd5b505afa158015611e7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ea29190810190612e9c565b606001519150505b919050565b806000611eba612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015611eff57600080fd5b505afa158015611f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f37919061303f565b516002811115611f5757634e487b7160e01b600052602160045260246000fd5b14611fa45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b826000611faf612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611ff557600080fd5b505afa158015612009573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120319190810190612f47565b9050600061204a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561208c57600080fd5b505afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190612cf4565b8260200151146120e65760405162461bcd60e51b815260040161055290613214565b60006120f0612a9d565b6040516308fc762760e31b8152600481018a90529091506001600160a01b038216906347e3b13890602401611518565b6000806000846000612130612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561217557600080fd5b505afa158015612189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ad919061303f565b5160028111156121cd57634e487b7160e01b600052602160045260246000fd5b141561221b5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b866000612226612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561226c57600080fd5b505afa158015612280573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122a89190810190612f47565b905060006122c16810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561230357600080fd5b505afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612cf4565b82602001511461235d5760405162461bcd60e51b815260040161055290613214565b6000612367612af2565b90506000612373612a9d565b6040516242104d60e31b8152600481018f9052602481018e90529091506001600160a01b03831690630210826890604401606060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f69190612ca8565b919c509a5098508a156124ea576001600160a01b03811663e3ebdea58e61241d8d8d61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801561245b57600080fd5b505af115801561246f573d6000803e3d6000fd5b50505050600061247d612ab6565b9050806001600160a01b031663021082688f8c6040518363ffffffff1660e01b81526004016124b6929190918252602082015260400190565b600060405180830381600087803b1580156124d057600080fd5b505af11580156124e4573d6000803e3d6000fd5b50505050505b50505050505050509250925092565b6000846000612506612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561254b57600080fd5b505afa15801561255f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612583919061303f565b5160028111156125a357634e487b7160e01b600052602160045260246000fd5b146125f05760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b8660006125fb612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561264157600080fd5b505afa158015612655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261267d9190810190612f47565b905060006126966810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156126d857600080fd5b505afa1580156126ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127109190612cf4565b8260200151146127325760405162461bcd60e51b815260040161055290613214565b61273a612a9d565b6001600160a01b031663ec9356688c8c8c8c6040518563ffffffff1660e01b815260040161276b9493929190613190565b602060405180830381600087803b15801561278557600080fd5b505af1158015612799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bd9190612cf4565b9b9a5050505050505050505050565b60008060008460006127dc612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561282257600080fd5b505afa158015612836573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261285e9190810190612f47565b905060006128776810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156128b957600080fd5b505afa1580156128cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f19190612cf4565b8260200151146129135760405162461bcd60e51b815260040161055290613214565b600061291d612af2565b60405163fe64372b60e01b8152600481018c9052602481018b90529091506001600160a01b0382169063fe64372b906044016040805180830381600087803b15801561296857600080fd5b505af115801561297c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a091906130c4565b909750955060006129af612a9d565b60405163fe64372b60e01b8152600481018d9052602481018c90529091506001600160a01b0382169063fe64372b90604401600060405180830381600087803b1580156129fb57600080fd5b505af1158015612a0f573d6000803e3d6000fd5b505050506000612a1d612ab6565b90506001600160a01b03811663fe64372b8d612a398c8c61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b158015612a7757600080fd5b505af1158015612a8b573d6000803e3d6000fd5b50505050505050505050509250925092565b6000612ab165506f6c69637960d01b611bfa565b905090565b6000612ab163141bdbdb60e21b611bfa565b6000612ab164517565727960d81b611bfa565b6000612ab16810dbdb5c1bdb995b9d60ba1b611bfa565b6000612ab167547265617375727960c01b611bfa565b80518015158114611eaa57600080fd5b60008083601f840112612b29578182fd5b50813567ffffffffffffffff811115612b40578182fd5b602083019150836020828501011115612b5857600080fd5b9250929050565b600082601f830112612b6f578081fd5b815167ffffffffffffffff811115612b8957612b896132e1565b612b9c601f8201601f191660200161325c565b818152846020838601011115612bb0578283fd5b612bc18260208301602087016132b1565b949350505050565b805160038110611eaa57600080fd5b600060208284031215612be9578081fd5b8151612bf4816132f7565b9392505050565b600080600080600080600060a0888a031215612c15578283fd5b8735612c20816132f7565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612c4a578485fd5b612c568b838c01612b18565b909650945060808a0135915080821115612c6e578384fd5b50612c7b8a828b01612b18565b989b979a50959850939692959293505050565b600060208284031215612c9f578081fd5b612bf482612b08565b600080600060608486031215612cbc578081fd5b612cc584612b08565b925060208401519150604084015190509250925092565b600060208284031215612ced578081fd5b5035919050565b600060208284031215612d05578081fd5b5051919050565b600080600080600080600060a0888a031215612d26578081fd5b87359650602088013567ffffffffffffffff80821115612d44578283fd5b612d508b838c01612b18565b909850965060408a0135915080821115612d68578283fd5b50612d758a828b01612b18565b9095509350506060880135612d89816132f7565b809250506080880135905092959891949750929550565b60008060408385031215612db2578182fd5b50508035926020909101359150565b60008060008060608587031215612dd6578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612dfa578283fd5b612e0687828801612b18565b95989497509550505050565b600080600060608486031215612e26578081fd5b505081359360208301359350604090920135919050565b600080600080600060808688031215612e54578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115612e7f578182fd5b612e8b88828901612b18565b969995985093965092949392505050565b600060208284031215612ead578081fd5b815167ffffffffffffffff80821115612ec4578283fd5b9083019060c08286031215612ed7578283fd5b612ee160c061325c565b8251612eec8161330f565b808252506020830151602082015260408301516040820152606083015182811115612f15578485fd5b612f2187828601612b5f565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612f58578081fd5b815167ffffffffffffffff80821115612f6f578283fd5b9083019060c08286031215612f82578283fd5b612f8c60c061325c565b8251612f97816132f7565b815260208381015190820152612faf60408401612bc9565b6040820152606083015182811115612f15578485fd5b600060208284031215612fd6578081fd5b815167ffffffffffffffff80821115612fed578283fd5b9083019060c08286031215613000578283fd5b61300a60c061325c565b8251815260208301516002811061301f578485fd5b602082015260408381015190820152606083015182811115612f15578485fd5b6000610120808385031215613052578182fd5b61305b8161325c565b905061306683612bc9565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080604083850312156130d6578182fd5b505080516020909101519092909150565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600060018060a01b0386168252846020830152606060408301526131396060830184866130e7565b9695505050505050565b600088825260a0602083015261315d60a08301888a6130e7565b82810360408401526131708187896130e7565b6001600160a01b0395909516606084015250506080015295945050505050565b6000858252846020830152606060408301526131396060830184866130e7565b6000868252856020830152846040830152608060608301526131d66080830184866130e7565b979650505050505050565b60006020825282518060208401526132008160408501602087016132b1565b601f01601f19169190910160400192915050565b60208082526028908201527f4552524f523a5046442d3030343a50524f4345535349445f50524f445543545f60408201526709a92a69a82a886960c31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613285576132856132e1565b604052919050565b600082198211156132ac57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156132cc5781810151838201526020016132b4565b838111156132db576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461330c57600080fd5b50565b6004811061330c57600080fdfea264697066735822122092c051776eb1683c4470104ec76b5b4902125ab9cd0e8ba206bb1da8cad8d51c64736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80637f29dba2116100b8578063b75c7dc61161007c578063b75c7dc6146102e1578063c46df94e146102f4578063c644179814610307578063e3ebdea51461031a578063fae43d151461034a578063fe64372b1461035d57610142565b80637f29dba21461027a5780638cc7d3d11461028d57806393b8414a146102a0578063a3f4df7e146102b3578063a5b25e71146102ce57610142565b806330a73da51161010a57806330a73da5146101dc57806339c79e0c146101ef5780634cda0de9146102025780634e02c63f14610215578063781d7846146102285780637b1039991461023b57610142565b806310b96080146101475780631b07b17f1461017057806322f86e7f146101935780632c933f22146101a65780633015394c146101c7575b600080fd5b61015a610155366004612da0565b610370565b60405161016791906131e1565b60405180910390f35b61018361017e366004612cdc565b61040e565b6040519015158152602001610167565b61015a6101a1366004612da0565b610747565b6101b96101b4366004612d0c565b6107d9565b604051908152602001610167565b6101da6101d5366004612cdc565b6109be565b005b6101da6101ea366004612e12565b610c46565b6101da6101fd366004612cdc565b610eff565b6101da610210366004612da0565b61120f565b6101da610223366004612e12565b611392565b6101b9610236366004612e3d565b611554565b6102627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610167565b6101da610288366004612da0565b611733565b6101da61029b366004612cdc565b6118b6565b6101b96102ae366004612bfb565b611a68565b6101b970506f6c69637944656661756c74466c6f7760781b81565b6102626102dc366004612cdc565b611bfa565b6101da6102ef366004612cdc565b611c9b565b61015a610302366004612cdc565b611e17565b6101da610315366004612cdc565b611eaf565b61032d610328366004612da0565b612120565b604080519315158452602084019290925290820152606001610167565b6101b9610358366004612dc1565b6124f9565b61032d61036b366004612da0565b6127cc565b6060600061037c612a9d565b60405163cef58f1360e01b815260048101869052602481018590529091506001600160a01b0382169063cef58f139060440160006040518083038186803b1580156103c657600080fd5b505afa1580156103da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612fc5565b60600151949350505050565b600081600061041b612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561046157600080fd5b505afa158015610475573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261049d9190810190612f47565b905060006104b66810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156104f857600080fd5b505afa15801561050c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105309190612cf4565b82602001511461055b5760405162461bcd60e51b815260040161055290613214565b60405180910390fd5b6000610565612ab6565b604051631b07b17f60e01b8152600481018990529091506001600160a01b03821690631b07b17f90602401602060405180830381600087803b1580156105aa57600080fd5b505af11580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e29190612c8e565b9550851561073d5760006105f4612a9d565b604051630b92aa5160e31b8152600481018a90529091506001600160a01b03821690635c95528890602401600060405180830381600087803b15801561063957600080fd5b505af115801561064d573d6000803e3d6000fd5b505060405163260a666160e11b8152600481018b90526001600160a01b0384169250634c14ccc29150602401600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505060405163a3f685f960e01b8152600481018b9052600092506001600160a01b038416915063a3f685f9906024016101206040518083038186803b1580156106ef57600080fd5b505afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610727919061303f565b9050610737898260200151612120565b50505050505b5050505050919050565b60606000610753612a9d565b604051637f22c2d960e01b815260048101869052602481018590529091506001600160a01b03821690637f22c2d99060440160006040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612e9c565b60008760006107e6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108689190810190612f47565b905060006108816810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156108c357600080fd5b505afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190612cf4565b82602001511461091d5760405162461bcd60e51b815260040161055290613214565b610925612ac8565b6001600160a01b0316632c933f228d8d8d8d8d8d8d6040518863ffffffff1660e01b815260040161095c9796959493929190613143565b602060405180830381600087803b15801561097657600080fd5b505af115801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae9190612cf4565b9c9b505050505050505050505050565b8060006109c9612ac8565b905060006109d5612ac8565b6001600160a01b0316639b04ed30846040518263ffffffff1660e01b8152600401610a0291815260200190565b60206040518083038186803b158015610a1a57600080fd5b505afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190612cf4565b90506000610a5e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae09190810190612f47565b90506000610af96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610b3b57600080fd5b505afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190612cf4565b826020015114610bd65760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5046442d3030353a5245515545535449445f50524f445543545f60448201526709a92a69a82a886960c31b6064820152608401610552565b610bde612ac8565b6001600160a01b03166340e58ee5886040518263ffffffff1660e01b8152600401610c0b91815260200190565b600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b5050505050505050505050565b826000610c51612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610c9657600080fd5b505afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce919061303f565b516002811115610cee57634e487b7160e01b600052602160045260246000fd5b1415610d3c5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b846000610d47612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dc99190810190612f47565b90506000610de26810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c9190612cf4565b826020015114610e7e5760405162461bcd60e51b815260040161055290613214565b6000610e88612a9d565b6040516330a73da560e01b8152600481018c9052602481018b9052604481018a90529091506001600160a01b038216906330a73da590606401600060405180830381600087803b158015610edb57600080fd5b505af1158015610eef573d6000803e3d6000fd5b5050505050505050505050505050565b806000610f0a612a9d565b9050600160405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610f4f57600080fd5b505afa158015610f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f87919061303f565b516002811115610fa757634e487b7160e01b600052602160045260246000fd5b14610ff45760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5046442d3030323a504f4c4943595f4e4f545f455850495245446044820152606401610552565b826000610fff612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110819190810190612f47565b9050600061109a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156110dc57600080fd5b505afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190612cf4565b8260200151146111365760405162461bcd60e51b815260040161055290613214565b6000611140612a9d565b6040516315b95b6560e31b8152600481018a90529091506001600160a01b0382169063adcadb2890602401600060405180830381600087803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b5050505060006111a7612ab6565b6040516367d42a8b60e01b8152600481018b90529091506001600160a01b038216906367d42a8b90602401600060405180830381600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b50505050505050505050505050565b81600061121a612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561126057600080fd5b505afa158015611274573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261129c9190810190612f47565b905060006112b56810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156112f757600080fd5b505afa15801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190612cf4565b8260200151146113515760405162461bcd60e51b815260040161055290613214565b600061135b612a9d565b604051634cda0de960e01b815260048101899052602481018890529091506001600160a01b03821690634cda0de990604401610c0b565b82600061139d612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156113e357600080fd5b505afa1580156113f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141f9190810190612f47565b905060006114386810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b29190612cf4565b8260200151146114d45760405162461bcd60e51b815260040161055290613214565b60006114de612a9d565b604051634e02c63f60e01b8152600481018a905260248101899052604481018890529091506001600160a01b03821690634e02c63f906064015b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050505050505050505050565b6000856000611561612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115e39190810190612f47565b905060006115fc6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116769190612cf4565b8260200151146116985760405162461bcd60e51b815260040161055290613214565b6116a0612a9d565b6001600160a01b031663db42b77b8b8b8b8b8b6040518663ffffffff1660e01b81526004016116d39594939291906131b0565b602060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117259190612cf4565b9a9950505050505050505050565b81600061173e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561178457600080fd5b505afa158015611798573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117c09190810190612f47565b905060006117d96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561181b57600080fd5b505afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118539190612cf4565b8260200151146118755760405162461bcd60e51b815260040161055290613214565b600061187f612a9d565b604051633f94edd160e11b815260048101899052602481018890529091506001600160a01b03821690637f29dba290604401610c0b565b8060006118c1612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561190757600080fd5b505afa15801561191b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119439190810190612f47565b9050600061195c6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561199e57600080fd5b505afa1580156119b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d69190612cf4565b8260200151146119f85760405162461bcd60e51b815260040161055290613214565b6000611a02612a9d565b60405163296d6c7d60e01b8152600481018890529091506001600160a01b0382169063296d6c7d906024015b600060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b50505050505050505050565b600080611a73612adb565b604051632b1c7f7360e01b81523360048201529091506000906001600160a01b03831690632b1c7f739060240160206040518083038186803b158015611ab857600080fd5b505afa158015611acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af09190612cf4565b90506000611afc612a9d565b6040516350c0a50d60e11b81529091506001600160a01b0382169063a1814a1a90611b31908e9086908d908d90600401613111565b602060405180830381600087803b158015611b4b57600080fd5b505af1158015611b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b839190612cf4565b6040516333c019b760e11b81529094506001600160a01b03821690636780336e90611bba9087908e908e908c908c906004016131b0565b600060405180830381600087803b158015611bd457600080fd5b505af1158015611be8573d6000803e3d6000fd5b50505050505050979650505050505050565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c5d57600080fd5b505afa158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190612bd8565b92915050565b806000611ca6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611cec57600080fd5b505afa158015611d00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d289190810190612f47565b90506000611d416810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015611d8357600080fd5b505afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190612cf4565b826020015114611ddd5760405162461bcd60e51b815260040161055290613214565b6000611de7612a9d565b60405163eb96cbed60e01b8152600481018890529091506001600160a01b0382169063eb96cbed90602401611a2e565b60606000611e23612a9d565b604051632f141bd960e21b8152600481018590529091506001600160a01b0382169063bc506f649060240160006040518083038186803b158015611e6657600080fd5b505afa158015611e7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ea29190810190612e9c565b606001519150505b919050565b806000611eba612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015611eff57600080fd5b505afa158015611f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f37919061303f565b516002811115611f5757634e487b7160e01b600052602160045260246000fd5b14611fa45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b826000611faf612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611ff557600080fd5b505afa158015612009573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120319190810190612f47565b9050600061204a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561208c57600080fd5b505afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190612cf4565b8260200151146120e65760405162461bcd60e51b815260040161055290613214565b60006120f0612a9d565b6040516308fc762760e31b8152600481018a90529091506001600160a01b038216906347e3b13890602401611518565b6000806000846000612130612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561217557600080fd5b505afa158015612189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ad919061303f565b5160028111156121cd57634e487b7160e01b600052602160045260246000fd5b141561221b5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b866000612226612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561226c57600080fd5b505afa158015612280573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122a89190810190612f47565b905060006122c16810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561230357600080fd5b505afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612cf4565b82602001511461235d5760405162461bcd60e51b815260040161055290613214565b6000612367612af2565b90506000612373612a9d565b6040516242104d60e31b8152600481018f9052602481018e90529091506001600160a01b03831690630210826890604401606060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f69190612ca8565b919c509a5098508a156124ea576001600160a01b03811663e3ebdea58e61241d8d8d61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801561245b57600080fd5b505af115801561246f573d6000803e3d6000fd5b50505050600061247d612ab6565b9050806001600160a01b031663021082688f8c6040518363ffffffff1660e01b81526004016124b6929190918252602082015260400190565b600060405180830381600087803b1580156124d057600080fd5b505af11580156124e4573d6000803e3d6000fd5b50505050505b50505050505050509250925092565b6000846000612506612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561254b57600080fd5b505afa15801561255f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612583919061303f565b5160028111156125a357634e487b7160e01b600052602160045260246000fd5b146125f05760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b8660006125fb612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561264157600080fd5b505afa158015612655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261267d9190810190612f47565b905060006126966810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156126d857600080fd5b505afa1580156126ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127109190612cf4565b8260200151146127325760405162461bcd60e51b815260040161055290613214565b61273a612a9d565b6001600160a01b031663ec9356688c8c8c8c6040518563ffffffff1660e01b815260040161276b9493929190613190565b602060405180830381600087803b15801561278557600080fd5b505af1158015612799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bd9190612cf4565b9b9a5050505050505050505050565b60008060008460006127dc612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561282257600080fd5b505afa158015612836573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261285e9190810190612f47565b905060006128776810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156128b957600080fd5b505afa1580156128cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f19190612cf4565b8260200151146129135760405162461bcd60e51b815260040161055290613214565b600061291d612af2565b60405163fe64372b60e01b8152600481018c9052602481018b90529091506001600160a01b0382169063fe64372b906044016040805180830381600087803b15801561296857600080fd5b505af115801561297c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a091906130c4565b909750955060006129af612a9d565b60405163fe64372b60e01b8152600481018d9052602481018c90529091506001600160a01b0382169063fe64372b90604401600060405180830381600087803b1580156129fb57600080fd5b505af1158015612a0f573d6000803e3d6000fd5b505050506000612a1d612ab6565b90506001600160a01b03811663fe64372b8d612a398c8c61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b158015612a7757600080fd5b505af1158015612a8b573d6000803e3d6000fd5b50505050505050505050509250925092565b6000612ab165506f6c69637960d01b611bfa565b905090565b6000612ab163141bdbdb60e21b611bfa565b6000612ab164517565727960d81b611bfa565b6000612ab16810dbdb5c1bdb995b9d60ba1b611bfa565b6000612ab167547265617375727960c01b611bfa565b80518015158114611eaa57600080fd5b60008083601f840112612b29578182fd5b50813567ffffffffffffffff811115612b40578182fd5b602083019150836020828501011115612b5857600080fd5b9250929050565b600082601f830112612b6f578081fd5b815167ffffffffffffffff811115612b8957612b896132e1565b612b9c601f8201601f191660200161325c565b818152846020838601011115612bb0578283fd5b612bc18260208301602087016132b1565b949350505050565b805160038110611eaa57600080fd5b600060208284031215612be9578081fd5b8151612bf4816132f7565b9392505050565b600080600080600080600060a0888a031215612c15578283fd5b8735612c20816132f7565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612c4a578485fd5b612c568b838c01612b18565b909650945060808a0135915080821115612c6e578384fd5b50612c7b8a828b01612b18565b989b979a50959850939692959293505050565b600060208284031215612c9f578081fd5b612bf482612b08565b600080600060608486031215612cbc578081fd5b612cc584612b08565b925060208401519150604084015190509250925092565b600060208284031215612ced578081fd5b5035919050565b600060208284031215612d05578081fd5b5051919050565b600080600080600080600060a0888a031215612d26578081fd5b87359650602088013567ffffffffffffffff80821115612d44578283fd5b612d508b838c01612b18565b909850965060408a0135915080821115612d68578283fd5b50612d758a828b01612b18565b9095509350506060880135612d89816132f7565b809250506080880135905092959891949750929550565b60008060408385031215612db2578182fd5b50508035926020909101359150565b60008060008060608587031215612dd6578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612dfa578283fd5b612e0687828801612b18565b95989497509550505050565b600080600060608486031215612e26578081fd5b505081359360208301359350604090920135919050565b600080600080600060808688031215612e54578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115612e7f578182fd5b612e8b88828901612b18565b969995985093965092949392505050565b600060208284031215612ead578081fd5b815167ffffffffffffffff80821115612ec4578283fd5b9083019060c08286031215612ed7578283fd5b612ee160c061325c565b8251612eec8161330f565b808252506020830151602082015260408301516040820152606083015182811115612f15578485fd5b612f2187828601612b5f565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612f58578081fd5b815167ffffffffffffffff80821115612f6f578283fd5b9083019060c08286031215612f82578283fd5b612f8c60c061325c565b8251612f97816132f7565b815260208381015190820152612faf60408401612bc9565b6040820152606083015182811115612f15578485fd5b600060208284031215612fd6578081fd5b815167ffffffffffffffff80821115612fed578283fd5b9083019060c08286031215613000578283fd5b61300a60c061325c565b8251815260208301516002811061301f578485fd5b602082015260408381015190820152606083015182811115612f15578485fd5b6000610120808385031215613052578182fd5b61305b8161325c565b905061306683612bc9565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080604083850312156130d6578182fd5b505080516020909101519092909150565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600060018060a01b0386168252846020830152606060408301526131396060830184866130e7565b9695505050505050565b600088825260a0602083015261315d60a08301888a6130e7565b82810360408401526131708187896130e7565b6001600160a01b0395909516606084015250506080015295945050505050565b6000858252846020830152606060408301526131396060830184866130e7565b6000868252856020830152846040830152608060608301526131d66080830184866130e7565b979650505050505050565b60006020825282518060208401526132008160408501602087016132b1565b601f01601f19169190910160400192915050565b60208082526028908201527f4552524f523a5046442d3030343a50524f4345535349445f50524f445543545f60408201526709a92a69a82a886960c31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613285576132856132e1565b604052919050565b600082198211156132ac57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156132cc5781810151838201526020016132b4565b838111156132db576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461330c57600080fd5b50565b6004811061330c57600080fdfea264697066735822122092c051776eb1683c4470104ec76b5b4902125ab9cd0e8ba206bb1da8cad8d51c64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/modules/AccessController.sol/AccessController.dbg.json b/artifacts/contracts/modules/AccessController.sol/AccessController.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/modules/AccessController.sol/AccessController.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/modules/AccessController.sol/AccessController.json b/artifacts/contracts/modules/AccessController.sol/AccessController.json new file mode 100644 index 00000000..8248c841 --- /dev/null +++ b/artifacts/contracts/modules/AccessController.sol/AccessController.json @@ -0,0 +1,433 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "AccessController", + "sourceName": "contracts/modules/AccessController.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ORACLE_PROVIDER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PRODUCT_OWNER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "RISKPOOL_KEEPER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "addRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getDefaultAdminRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getOracleProviderRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getProductOwnerRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getRiskpoolKeeperRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "getRoleMember", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleMemberCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "invalidateRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "defaultAdmin", + "type": "address" + } + ], + "name": "setDefaultAdminRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "validRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611548806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063775a4048116100b8578063c19010a71161007c578063c19010a714610301578063c4d66de814610314578063ca15c87314610327578063d17d02331461033a578063d49d21c01461034d578063d547741f1461037357610137565b8063775a40481461026e57806379a863f5146102945780639010d07c146102bb57806391d14854146102e6578063a217fddf146102f957610137565b806336568abe116100ff57806336568abe146101e05780633ffdd2f3146101f357806352a9c8d71461021957806368232c69146102205780636c137ea91461024757610137565b806301ffc9a71461013c57806312f9a85e14610164578063248a9ca314610187578063274b02a7146101b85780632f2ff15d146101cd575b600080fd5b61014f61014a366004611305565b610386565b60405190151581526020015b60405180910390f35b61014f61017236600461129d565b60046020526000908152604090205460ff1681565b6101aa61019536600461129d565b60009081526002602052604090206001015490565b60405190815260200161015b565b6101cb6101c636600461129d565b6103b3565b005b6101cb6101db3660046112b5565b6104ea565b6101cb6101ee3660046112b5565b61060a565b7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6101aa565b60006101aa565b6101aa7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd81565b6101aa7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd81565b7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd6101aa565b6101aa7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa281565b6102ce6102c93660046112e4565b610614565b6040516001600160a01b03909116815260200161015b565b61014f6102f43660046112b5565b610635565b6101aa600081565b6101cb61030f366004611245565b610660565b6101cb610322366004611245565b6106da565b6101aa61033536600461129d565b610909565b6101cb61034836600461129d565b610920565b7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa26101aa565b6101cb6103813660046112b5565b610a4a565b60006001600160e01b03198216635a05180f60e01b14806103ab57506103ab82610afa565b90505b919050565b6000546201000090046001600160a01b0316632ca65a796103d13390565b6040518263ffffffff1660e01b81526004016103ed91906113a2565b60206040518083038186803b15801561040557600080fd5b505afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d919061127d565b6104625760405162461bcd60e51b81526004016104599061140f565b60405180910390fd5b60008181526004602052604090205460ff16156104cf5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030333a524f4c455f4558495354494e475f414e445f604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19166001179055565b6000546201000090046001600160a01b0316632ca65a796105083390565b6040518263ffffffff1660e01b815260040161052491906113a2565b60206040518083038186803b15801561053c57600080fd5b505afa158015610550573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610574919061127d565b6105905760405162461bcd60e51b81526004016104599061140f565b60008281526004602052604090205460ff166105fc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030323a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6106068282610b2f565b5050565b6106068282610b59565b600082815260036020526040812061062c9083610bd3565b90505b92915050565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1661062c565b60055460ff16156106bf5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a41434c2d3030313a41444d494e5f524f4c455f414c524541445960448201526317d4d15560e21b6064820152608401610459565b6005805460ff191660011790556106d7600082610bdf565b50565b600054610100900460ff16158080156106fa5750600054600160ff909116105b806107145750303b158015610714575060005460ff166001145b6107775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610459565b6000805460ff19166001179055801561079a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556107cc6541636365737360d01b90565b6541636365737360d01b1461080e576107ed6541636365737360d01b610c01565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108c060046020527fef04f7ed48b33f0d9d7de17461a6b9fbfc99345543bcd1fd6722a181717386398054600160ff1991821681179092557f0d0f3851d150b47a1a07ba8d8da619d3d280e2d8c7ebd5a88c0ddf69c9320ac580548216831790557f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6000527f8ba76ee23aef2d48c27cf0a3d52ee681c660d5a027be0ef9cc9edc5ce9889bac80549091169091179055565b8015610606576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008181526003602052604081206103ab90610ce9565b6000546201000090046001600160a01b0316632ca65a7961093e3390565b6040518263ffffffff1660e01b815260040161095a91906113a2565b60206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa919061127d565b6109c65760405162461bcd60e51b81526004016104599061140f565b60008181526004602052604090205460ff16610a325760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030343a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19169055565b6000546201000090046001600160a01b0316632ca65a79610a683390565b6040518263ffffffff1660e01b8152600401610a8491906113a2565b60206040518083038186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad4919061127d565b610af05760405162461bcd60e51b81526004016104599061140f565b6106068282610cf3565b60006001600160e01b03198216637965db0b60e01b14806103ab57506301ffc9a760e01b6001600160e01b03198316146103ab565b600082815260026020526040902060010154610b4a81610d18565b610b548383610bdf565b505050565b6001600160a01b0381163314610bc95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610459565b6106068282610d22565b600061062c8383610d44565b610be98282610d7c565b6000828152600360205260409020610b549082610e02565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610c4b57600080fd5b505afa158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c839190611261565b90506001600160a01b0381166103ae5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610459565b60006103ab825490565b600082815260026020526040902060010154610d0e81610d18565b610b548383610d22565b6106d78133610e17565b610d2c8282610e7b565b6000828152600360205260409020610b549082610ee2565b6000826000018281548110610d6957634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b610d868282610635565b6106065760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610dbe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061062c836001600160a01b038416610ef7565b610e218282610635565b61060657610e39816001600160a01b03166014610f46565b610e44836020610f46565b604051602001610e5592919061132d565b60408051601f198184030181529082905262461bcd60e51b8252610459916004016113dc565b610e858282610635565b156106065760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061062c836001600160a01b038416611128565b6000818152600183016020526040812054610f3e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561062f565b50600061062f565b60606000610f5583600261146a565b610f60906002611452565b67ffffffffffffffff811115610f8657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610fb0576020820181803683370190505b509050600360fc1b81600081518110610fd957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061101657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061103a84600261146a565b611045906001611452565b90505b60018111156110d9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061108757634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106110ab57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936110d2816114d0565b9050611048565b50831561062c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610459565b6000818152600183016020526040812054801561123b57600061114c600183611489565b855490915060009061116090600190611489565b90508181146111e157600086600001828154811061118e57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106111bf57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061120057634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061062f565b600091505061062f565b600060208284031215611256578081fd5b813561062c816114fd565b600060208284031215611272578081fd5b815161062c816114fd565b60006020828403121561128e578081fd5b8151801515811461062c578182fd5b6000602082840312156112ae578081fd5b5035919050565b600080604083850312156112c7578081fd5b8235915060208301356112d9816114fd565b809150509250929050565b600080604083850312156112f6578182fd5b50508035926020909101359150565b600060208284031215611316578081fd5b81356001600160e01b03198116811461062c578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516113658160178501602088016114a0565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516113968160288401602088016114a0565b01602801949350505050565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60006020825282518060208401526113fb8160408501602087016114a0565b601f01601f19169190910160400192915050565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60008219821115611465576114656114e7565b500190565b6000816000190483118215151615611484576114846114e7565b500290565b60008282101561149b5761149b6114e7565b500390565b60005b838110156114bb5781810151838201526020016114a3565b838111156114ca576000848401525b50505050565b6000816114df576114df6114e7565b506000190190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146106d757600080fdfea26469706673582212203255f3dbbbf3b49008eb1abb30a00c8783989e7b50781a4462516e4ea3cbf87764736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063775a4048116100b8578063c19010a71161007c578063c19010a714610301578063c4d66de814610314578063ca15c87314610327578063d17d02331461033a578063d49d21c01461034d578063d547741f1461037357610137565b8063775a40481461026e57806379a863f5146102945780639010d07c146102bb57806391d14854146102e6578063a217fddf146102f957610137565b806336568abe116100ff57806336568abe146101e05780633ffdd2f3146101f357806352a9c8d71461021957806368232c69146102205780636c137ea91461024757610137565b806301ffc9a71461013c57806312f9a85e14610164578063248a9ca314610187578063274b02a7146101b85780632f2ff15d146101cd575b600080fd5b61014f61014a366004611305565b610386565b60405190151581526020015b60405180910390f35b61014f61017236600461129d565b60046020526000908152604090205460ff1681565b6101aa61019536600461129d565b60009081526002602052604090206001015490565b60405190815260200161015b565b6101cb6101c636600461129d565b6103b3565b005b6101cb6101db3660046112b5565b6104ea565b6101cb6101ee3660046112b5565b61060a565b7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6101aa565b60006101aa565b6101aa7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd81565b6101aa7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd81565b7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd6101aa565b6101aa7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa281565b6102ce6102c93660046112e4565b610614565b6040516001600160a01b03909116815260200161015b565b61014f6102f43660046112b5565b610635565b6101aa600081565b6101cb61030f366004611245565b610660565b6101cb610322366004611245565b6106da565b6101aa61033536600461129d565b610909565b6101cb61034836600461129d565b610920565b7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa26101aa565b6101cb6103813660046112b5565b610a4a565b60006001600160e01b03198216635a05180f60e01b14806103ab57506103ab82610afa565b90505b919050565b6000546201000090046001600160a01b0316632ca65a796103d13390565b6040518263ffffffff1660e01b81526004016103ed91906113a2565b60206040518083038186803b15801561040557600080fd5b505afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d919061127d565b6104625760405162461bcd60e51b81526004016104599061140f565b60405180910390fd5b60008181526004602052604090205460ff16156104cf5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030333a524f4c455f4558495354494e475f414e445f604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19166001179055565b6000546201000090046001600160a01b0316632ca65a796105083390565b6040518263ffffffff1660e01b815260040161052491906113a2565b60206040518083038186803b15801561053c57600080fd5b505afa158015610550573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610574919061127d565b6105905760405162461bcd60e51b81526004016104599061140f565b60008281526004602052604090205460ff166105fc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030323a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6106068282610b2f565b5050565b6106068282610b59565b600082815260036020526040812061062c9083610bd3565b90505b92915050565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1661062c565b60055460ff16156106bf5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a41434c2d3030313a41444d494e5f524f4c455f414c524541445960448201526317d4d15560e21b6064820152608401610459565b6005805460ff191660011790556106d7600082610bdf565b50565b600054610100900460ff16158080156106fa5750600054600160ff909116105b806107145750303b158015610714575060005460ff166001145b6107775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610459565b6000805460ff19166001179055801561079a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556107cc6541636365737360d01b90565b6541636365737360d01b1461080e576107ed6541636365737360d01b610c01565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108c060046020527fef04f7ed48b33f0d9d7de17461a6b9fbfc99345543bcd1fd6722a181717386398054600160ff1991821681179092557f0d0f3851d150b47a1a07ba8d8da619d3d280e2d8c7ebd5a88c0ddf69c9320ac580548216831790557f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6000527f8ba76ee23aef2d48c27cf0a3d52ee681c660d5a027be0ef9cc9edc5ce9889bac80549091169091179055565b8015610606576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008181526003602052604081206103ab90610ce9565b6000546201000090046001600160a01b0316632ca65a7961093e3390565b6040518263ffffffff1660e01b815260040161095a91906113a2565b60206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa919061127d565b6109c65760405162461bcd60e51b81526004016104599061140f565b60008181526004602052604090205460ff16610a325760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030343a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19169055565b6000546201000090046001600160a01b0316632ca65a79610a683390565b6040518263ffffffff1660e01b8152600401610a8491906113a2565b60206040518083038186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad4919061127d565b610af05760405162461bcd60e51b81526004016104599061140f565b6106068282610cf3565b60006001600160e01b03198216637965db0b60e01b14806103ab57506301ffc9a760e01b6001600160e01b03198316146103ab565b600082815260026020526040902060010154610b4a81610d18565b610b548383610bdf565b505050565b6001600160a01b0381163314610bc95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610459565b6106068282610d22565b600061062c8383610d44565b610be98282610d7c565b6000828152600360205260409020610b549082610e02565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610c4b57600080fd5b505afa158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c839190611261565b90506001600160a01b0381166103ae5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610459565b60006103ab825490565b600082815260026020526040902060010154610d0e81610d18565b610b548383610d22565b6106d78133610e17565b610d2c8282610e7b565b6000828152600360205260409020610b549082610ee2565b6000826000018281548110610d6957634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b610d868282610635565b6106065760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610dbe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061062c836001600160a01b038416610ef7565b610e218282610635565b61060657610e39816001600160a01b03166014610f46565b610e44836020610f46565b604051602001610e5592919061132d565b60408051601f198184030181529082905262461bcd60e51b8252610459916004016113dc565b610e858282610635565b156106065760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061062c836001600160a01b038416611128565b6000818152600183016020526040812054610f3e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561062f565b50600061062f565b60606000610f5583600261146a565b610f60906002611452565b67ffffffffffffffff811115610f8657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610fb0576020820181803683370190505b509050600360fc1b81600081518110610fd957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061101657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061103a84600261146a565b611045906001611452565b90505b60018111156110d9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061108757634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106110ab57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936110d2816114d0565b9050611048565b50831561062c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610459565b6000818152600183016020526040812054801561123b57600061114c600183611489565b855490915060009061116090600190611489565b90508181146111e157600086600001828154811061118e57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106111bf57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061120057634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061062f565b600091505061062f565b600060208284031215611256578081fd5b813561062c816114fd565b600060208284031215611272578081fd5b815161062c816114fd565b60006020828403121561128e578081fd5b8151801515811461062c578182fd5b6000602082840312156112ae578081fd5b5035919050565b600080604083850312156112c7578081fd5b8235915060208301356112d9816114fd565b809150509250929050565b600080604083850312156112f6578182fd5b50508035926020909101359150565b600060208284031215611316578081fd5b81356001600160e01b03198116811461062c578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516113658160178501602088016114a0565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516113968160288401602088016114a0565b01602801949350505050565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60006020825282518060208401526113fb8160408501602087016114a0565b601f01601f19169190910160400192915050565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60008219821115611465576114656114e7565b500190565b6000816000190483118215151615611484576114846114e7565b500290565b60008282101561149b5761149b6114e7565b500390565b60005b838110156114bb5781810151838201526020016114a3565b838111156114ca576000848401525b50505050565b6000816114df576114df6114e7565b506000190190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146106d757600080fdfea26469706673582212203255f3dbbbf3b49008eb1abb30a00c8783989e7b50781a4462516e4ea3cbf87764736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/modules/BundleController.sol/BundleController.dbg.json b/artifacts/contracts/modules/BundleController.sol/BundleController.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/modules/BundleController.sol/BundleController.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/modules/BundleController.sol/BundleController.json b/artifacts/contracts/modules/BundleController.sol/BundleController.json new file mode 100644 index 00000000..967269bc --- /dev/null +++ b/artifacts/contracts/modules/BundleController.sol/BundleController.json @@ -0,0 +1,693 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "BundleController", + "sourceName": "contracts/modules/BundleController.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "LogBundleCapitalProvided", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "LogBundleCapitalWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogBundleCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogBundlePayoutProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "LogBundlePolicyCollateralized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "LogBundlePolicyReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IBundle.BundleState", + "name": "oldState", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IBundle.BundleState", + "name": "newState", + "type": "uint8" + } + ], + "name": "LogBundleStateChanged", + "type": "event" + }, + { + "inputs": [], + "name": "bundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "close", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "collateralizePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner_", + "type": "address" + }, + { + "internalType": "uint256", + "name": "riskpoolId_", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "filter_", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "amount_", + "type": "uint256" + } + ], + "name": "create", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "defund", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "fund", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "getBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "getBundle", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "getCapacity", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "getFilter", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "getState", + "outputs": [ + { + "internalType": "enum IBundle.BundleState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getToken", + "outputs": [ + { + "internalType": "contract BundleToken", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "getTotalValueLocked", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "lock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "releasePolicy", + "outputs": [ + { + "internalType": "uint256", + "name": "remainingCollateralAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "unburntBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "unlock", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612d1180620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063a65e2cfd116100b8578063c0e714041161007c578063c0e71404146102b6578063c397ae39146102c9578063c41a360a146102dc578063c4d66de8146102ef578063c559783e14610302578063dd4670641461032257610142565b8063a65e2cfd14610257578063b299cc261461026a578063b72674201461027d578063bb540df614610290578063bcd5349f146102a357610142565b80632d0821b71161010a5780632d0821b7146101cb5780633f5d9235146101eb57806342966c68146101fe57806344c9af28146102115780634d03f9b7146102315780636198e3391461024457610142565b80630aebeb4e1461014757806318442e631461015c5780631e0104391461017357806321df0da7146101865780632c92fb99146101ab575b600080fd5b61015a610155366004612995565b610335565b005b6008545b6040519081526020015b60405180910390f35b610160610181366004612995565b610405565b6003546001600160a01b03165b6040516001600160a01b03909116815260200161016a565b6101be6101b9366004612995565b61041c565b60405161016a9190612a5f565b6101de6101d9366004612995565b610431565b60405161016a9190612ac2565b6101606101f9366004612995565b6105ed565b61015a61020c366004612995565b610602565b61022461021f366004612995565b6107ba565b60405161016a9190612a72565b61015a61023f3660046129e6565b6107cf565b61015a610252366004612995565b610c1d565b61015a6102653660046129c5565b610c73565b61015a6102783660046129e6565b610e4a565b61015a61028b3660046129e6565b611374565b61016061029e3660046129c5565b611672565b6101606102b1366004612995565b6119d6565b6101606102c43660046127d4565b6119ff565b61015a6102d73660046129c5565b611c28565b6101936102ea366004612995565b611e00565b61015a6102fd36600461279c565b611e90565b610160610310366004612995565b60009081526007602052604090205490565b61015a610330366004612995565b61200d565b6103506e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146103895760405162461bcd60e51b815260040161038090612a80565b60405180910390fd5b600081815260056020526040902054156103f75760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031353a42554e444c455f574954485f4143544956456044820152685f504f4c494349455360b81b6064820152608401610380565b61040281600261214b565b50565b600061041082610431565b60e0015190505b919050565b606061042782610431565b6080015192915050565b610439612618565b600082815260046020908152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600380820154606084019160ff9091169081111561049d57634e487b7160e01b600052602160045260246000fd5b60038111156104bc57634e487b7160e01b600052602160045260246000fd5b81526020016004820180546104d090612c44565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc90612c44565b80156105495780601f1061051e57610100808354040283529160200191610549565b820191906000526020600020905b81548152906001019060200180831161052c57829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505090506000816101000151116105e75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3036303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b92915050565b60006105f882610431565b60c0015192915050565b61061d6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461064d5760405162461bcd60e51b815260040161038090612a80565b6000818152600460205260409020600260038083015460ff169081111561068457634e487b7160e01b600052602160045260246000fd5b146106d15760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3031363a42554e444c455f4e4f545f434c4f534544006044820152606401610380565b6007810154156107235760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4255432d3031373a42554e444c455f4841535f42414c414e43456044820152606401610380565b600354604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b50505050600181810154600090815260076020526040812080549091906107a5908490612bfd565b909155506107b6905082600361214b565b5050565b60006107c582610431565b6060015192915050565b6107ea6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461081a5760405162461bcd60e51b815260040161038090612a80565b60025460405163296586d360e21b8152600481018490526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561085f57600080fd5b505afa158015610873573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089b9190810190612860565b60008581526004602052604090209091506108b46121ac565b6001600160a01b031663d229f3b083602001516040518263ffffffff1660e01b81526004016108e591815260200190565b60206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093591906129ad565b8160010154146109935760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3031393a42554e444c455f4e4f545f494e5f5249534b6044820152631413d3d360e21b6064820152608401610380565b60008160080154116109f35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3032303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff1690811115610a1c57634e487b7160e01b600052602160045260246000fd5b14610a695760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3032313a42554e444c455f4e4f545f414354495645006044820152606401610380565b828160060154610a799190612be5565b81600501541015610acc5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4255432d3032323a43415041434954595f544f4f5f4c4f5700006044820152606401610380565b600085815260066020908152604080832087845290915290205415610b595760405162461bcd60e51b815260206004820152603b60248201527f4552524f523a4255432d3032333a494e4352454d454e54414c5f434f4c4c415460448201527f4552414c495a4154494f4e5f4e4f545f494d504c454d454e54454400000000006064820152608401610380565b82816006016000828254610b6d9190612be5565b90915550504260098201556000858152600560205260408120805460019290610b97908490612be5565b9091555050600085815260066020818152604080842088855290915282208590558201546005830154610bca9190612bfd565b6040805188815260208101889052908101869052606081018290529091507fb253c82cbaad89e2bd0fb78bc565243ccc06da1ac58b640ed94469f69b64ea549060800160405180910390a1505050505050565b610c386e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610c685760405162461bcd60e51b815260040161038090612a80565b61040281600061214b565b610c8e6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610cbe5760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154610d295760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600260038083015460ff1690811115610d5257634e487b7160e01b600052602160045260246000fd5b1415610da05760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4255432d3031323a42554e444c455f434c4f53454400000000006044820152606401610380565b81816005016000828254610db49190612be5565b9250508190555081816007016000828254610dcf9190612be5565b909155505042600982015560068101546005820154600091610df091612bfd565b90507fed746f45e63100861a9a492e092018cdce2d2645b83741099a6f8ecba2af013884335b604080519283526001600160a01b03909116602083015281018590526060810183905260800160405180910390a150505050565b610e656e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610e955760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b158015610edb57600080fd5b505afa158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f139190612910565b9050600281516002811115610f3857634e487b7160e01b600052602160045260246000fd5b1415610f915760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000848152600560205260409020546110005760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3034313a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b60008481526006602090815260408083208684529091529020548211156110825760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4255432d3034323a434f4c4c41544552414c5f494e535546464960448201526f4349454e545f464f525f504f4c49435960801b6064820152608401610380565b600084815260046020526040902060088101546110ed5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3034333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff169081111561111657634e487b7160e01b600052602160045260246000fd5b14806111485750600160038083015460ff169081111561114657634e487b7160e01b600052602160045260246000fd5b145b61119f5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4255432d3034343a42554e444c455f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b82816005015410156111f35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034353a4341504954414c5f544f4f5f4c4f570000006044820152606401610380565b82816006015410156112535760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3034363a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b6064820152608401610380565b82816007015410156112a75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034373a42414c414e43455f544f4f5f4c4f570000006044820152606401610380565b6000858152600660209081526040808320878452909152812080548592906112d0908490612bfd565b92505081905550828160050160008282546112eb9190612bfd565b92505081905550828160060160008282546113069190612bfd565b92505081905550828160070160008282546113219190612bfd565b909155505042600982015560408051868152602081018690529081018490527f34ea3fe7b8e6aa959a187f606dc076e9fb02379d613a2c9356f5a556aac9508c9060600160405180910390a15050505050565b61138f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146113bf5760405162461bcd60e51b815260040161038090612a80565b6000838152600460205260409020600881015484919061142d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3030323a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b60038181015460ff168181111561145457634e487b7160e01b600052602160045260246000fd5b141580156114895750600260038083015460ff169081111561148657634e487b7160e01b600052602160045260246000fd5b14155b6114e35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4255432d3030333a42554e444c455f4255524e45445f4f525f436044820152641313d4d15160da1b6064820152608401610380565b60025460405163a3f685f960e01b8152600481018690526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561152957600080fd5b505afa15801561153d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115619190612910565b905060028151600281111561158657634e487b7160e01b600052602160045260246000fd5b14156115df5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3033303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000868152600460205260409020600881015461164a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3033313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b8481600701600082825461165e9190612be5565b909155505042600990910155505050505050565b600061168f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146116bf5760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612910565b905060028151600281111561176257634e487b7160e01b600052602160045260246000fd5b146117ba5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3035303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b600084815260046020526040902060088101546118255760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3035313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b6000858152600560205260409020546118945760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3035323a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b6000858152600660208181526040808420888552909152909120549082015481111561190e5760405162461bcd60e51b8152602060048201526024808201527f50414e49433a4255432d3035333a554e4c4f434b5f4341504954414c5f544f4f6044820152635f42494760e01b6064820152608401610380565b600086815260056020526040812080546001929061192d908490612bfd565b90915550506000868152600660208181526040808420898552909152822082905583018054839290611960908490612bfd565b90915550504260098301556006820154600583015460009161198191612bfd565b6040805189815260208101899052908101849052606081018290529091507fa7edca0329e0f25a5a213baaa606802692de7155da4cf8a007aedf326d9180759060800160405180910390a15050505092915050565b6000806119e283610431565b90508060c001518160a001516119f89190612bfd565b9392505050565b6000611a1c6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611a4c5760405162461bcd60e51b815260040161038090612a80565b600854611a5a906001612be5565b600081815260046020526040902060088101549192509015611aca5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031303a42554e444c455f414c52454144595f45584960448201526253545360e81b6064820152608401610380565b6003546040516394bf804d60e01b8152600481018490526001600160a01b03898116602483015260009216906394bf804d90604401602060405180830381600087803b158015611b1957600080fd5b505af1158015611b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5191906129ad565b838355600283018190556001830188905560038301805460ff191690559050611b7e60048301878761268a565b50600582018490556007820184905542600880840182905560098401919091558054906000611bac83612c7f565b90915550506000878152600760205260408120805491611bcb83612c7f565b90915550508154600383015460058401546040517f2a6ff62099c2d2515017f639043aef82d6293361b7cb7bdc90854eb2f026b56c93611c159390928c928e9260ff169190612b7a565b60405180910390a1505095945050505050565b611c436e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611c735760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154611cde5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b818160060154611cee9190612be5565b8160050154101580611d1157506006810154158015611d11575081816007015410155b611d6f5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031343a43415041434954595f4f525f42414c414e43604482015268455f544f4f5f4c4f5760b81b6064820152608401610380565b81816005015410611d995781816005016000828254611d8e9190612bfd565b90915550611da19050565b600060058201555b81816007016000828254611db59190612bfd565b909155505042600982015560068101546005820154600091611dd691612bfd565b90507fe3d161947307a0d06b7ac0f3a183176acbc70afff0831bba7e694ef9f47323bd8433610e16565b600080611e0c83610431565b60409081015160035491516331a9108f60e11b8152600481018290529092506001600160a01b0390911690636352211e9060240160206040518083038186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f891906127b8565b600054610100900460ff1615808015611eb05750600054600160ff909116105b80611eca5750303b158015611eca575060005460ff166001145b611f2d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610380565b6000805460ff191660011790558015611f50576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f7a600090565b6541636365737360d01b14611fbc57611f9b6541636365737360d01b612063565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611fc46121c3565b80156107b6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6120286e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146120585760405162461bcd60e51b815260040161038090612a80565b61040281600161214b565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156120ad57600080fd5b505afa1580156120c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e591906127b8565b90506001600160a01b0381166104175760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610380565b6000612156836107ba565b90506121628183612299565b61216c83836125bb565b7f0c318b62e2d75a1d66c8fa6d64604f76f84b646cf3dadfb56e336044d57061f583828460405161219f93929190612b59565b60405180910390a1505050565b60006121be63141bdbdb60e21b612063565b905090565b600054610100900460ff1661222e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610380565b61224065506f6c69637960d01b612063565b600280546001600160a01b0319166001600160a01b03929092169190911790556122776a213ab7323632aa37b5b2b760a91b612063565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008260038111156122bb57634e487b7160e01b600052602160045260246000fd5b141561236f5760018160038111156122e357634e487b7160e01b600052602160045260246000fd5b148061230e5750600281600381111561230c57634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037303a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b6107b6565b600182600381111561239157634e487b7160e01b600052602160045260246000fd5b14156124405760008160038111156123b957634e487b7160e01b600052602160045260246000fd5b14806123e4575060028160038111156123e257634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037313a4c4f434b45445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600282600381111561246257634e487b7160e01b600052602160045260246000fd5b14156124e757600381600381111561248a57634e487b7160e01b600052602160045260246000fd5b1461236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037323a434c4f5345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600382600381111561250957634e487b7160e01b600052602160045260246000fd5b14156125635760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3037333a4255524e45445f49535f46494e414c5f535460448201526241544560e81b6064820152608401610380565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a424f432d3037343a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610380565b600082815260046020526040902060039081018054839260ff199091169060019084908111156125fb57634e487b7160e01b600052602160045260246000fd5b021790555050600090815260046020526040902042600990910155565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561265a57634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461269690612c44565b90600052602060002090601f0160209004810192826126b857600085556126fe565b82601f106126d15782800160ff198235161785556126fe565b828001600101855582156126fe579182015b828111156126fe5782358255916020019190600101906126e3565b5061270a92915061270e565b5090565b5b8082111561270a576000815560010161270f565b600082601f830112612733578081fd5b815167ffffffffffffffff81111561274d5761274d612cb0565b612760601f8201601f1916602001612bb4565b818152846020838601011115612774578283fd5b612785826020830160208701612c14565b949350505050565b80516003811061041757600080fd5b6000602082840312156127ad578081fd5b81356119f881612cc6565b6000602082840312156127c9578081fd5b81516119f881612cc6565b6000806000806000608086880312156127eb578081fd5b85356127f681612cc6565b945060208601359350604086013567ffffffffffffffff80821115612819578283fd5b818801915088601f83011261282c578283fd5b81358181111561283a578384fd5b89602082850101111561284b578384fd5b96999598505060200195606001359392505050565b600060208284031215612871578081fd5b815167ffffffffffffffff80821115612888578283fd5b9083019060c0828603121561289b578283fd5b6128a560c0612bb4565b82516128b081612cc6565b8152602083810151908201526128c86040840161278d565b60408201526060830151828111156128de578485fd5b6128ea87828601612723565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215612923578182fd5b61292c81612bb4565b90506129378361278d565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6000602082840312156129a6578081fd5b5035919050565b6000602082840312156129be578081fd5b5051919050565b600080604083850312156129d7578182fd5b50508035926020909101359150565b6000806000606084860312156129fa578283fd5b505081359360208301359350604090920135919050565b60008151808452612a29816020860160208601612c14565b601f01601f19169290920160200192915050565b60048110612a5b57634e487b7160e01b600052602160045260246000fd5b9052565b6000602082526119f86020830184612a11565b602081016105e78284612a3d565b60208082526022908201527f4552524f523a4255432d3030313a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612af56080840182612a3d565b5060808301516101408060a0850152612b12610160850183612a11565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b83815260608101612b6d6020830185612a3d565b6127856040830184612a3d565b858152602081018590526001600160a01b038416604082015260a08101612ba46060830185612a3d565b8260808301529695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612bdd57612bdd612cb0565b604052919050565b60008219821115612bf857612bf8612c9a565b500190565b600082821015612c0f57612c0f612c9a565b500390565b60005b83811015612c2f578181015183820152602001612c17565b83811115612c3e576000848401525b50505050565b600281046001821680612c5857607f821691505b60208210811415612c7957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c9357612c93612c9a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040257600080fdfea26469706673582212201077787b34730b7d2a802670a61dd1edc7acf97dd1ddeccd189c2edf0833b64664736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c8063a65e2cfd116100b8578063c0e714041161007c578063c0e71404146102b6578063c397ae39146102c9578063c41a360a146102dc578063c4d66de8146102ef578063c559783e14610302578063dd4670641461032257610142565b8063a65e2cfd14610257578063b299cc261461026a578063b72674201461027d578063bb540df614610290578063bcd5349f146102a357610142565b80632d0821b71161010a5780632d0821b7146101cb5780633f5d9235146101eb57806342966c68146101fe57806344c9af28146102115780634d03f9b7146102315780636198e3391461024457610142565b80630aebeb4e1461014757806318442e631461015c5780631e0104391461017357806321df0da7146101865780632c92fb99146101ab575b600080fd5b61015a610155366004612995565b610335565b005b6008545b6040519081526020015b60405180910390f35b610160610181366004612995565b610405565b6003546001600160a01b03165b6040516001600160a01b03909116815260200161016a565b6101be6101b9366004612995565b61041c565b60405161016a9190612a5f565b6101de6101d9366004612995565b610431565b60405161016a9190612ac2565b6101606101f9366004612995565b6105ed565b61015a61020c366004612995565b610602565b61022461021f366004612995565b6107ba565b60405161016a9190612a72565b61015a61023f3660046129e6565b6107cf565b61015a610252366004612995565b610c1d565b61015a6102653660046129c5565b610c73565b61015a6102783660046129e6565b610e4a565b61015a61028b3660046129e6565b611374565b61016061029e3660046129c5565b611672565b6101606102b1366004612995565b6119d6565b6101606102c43660046127d4565b6119ff565b61015a6102d73660046129c5565b611c28565b6101936102ea366004612995565b611e00565b61015a6102fd36600461279c565b611e90565b610160610310366004612995565b60009081526007602052604090205490565b61015a610330366004612995565b61200d565b6103506e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146103895760405162461bcd60e51b815260040161038090612a80565b60405180910390fd5b600081815260056020526040902054156103f75760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031353a42554e444c455f574954485f4143544956456044820152685f504f4c494349455360b81b6064820152608401610380565b61040281600261214b565b50565b600061041082610431565b60e0015190505b919050565b606061042782610431565b6080015192915050565b610439612618565b600082815260046020908152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600380820154606084019160ff9091169081111561049d57634e487b7160e01b600052602160045260246000fd5b60038111156104bc57634e487b7160e01b600052602160045260246000fd5b81526020016004820180546104d090612c44565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc90612c44565b80156105495780601f1061051e57610100808354040283529160200191610549565b820191906000526020600020905b81548152906001019060200180831161052c57829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505090506000816101000151116105e75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3036303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b92915050565b60006105f882610431565b60c0015192915050565b61061d6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461064d5760405162461bcd60e51b815260040161038090612a80565b6000818152600460205260409020600260038083015460ff169081111561068457634e487b7160e01b600052602160045260246000fd5b146106d15760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3031363a42554e444c455f4e4f545f434c4f534544006044820152606401610380565b6007810154156107235760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4255432d3031373a42554e444c455f4841535f42414c414e43456044820152606401610380565b600354604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b50505050600181810154600090815260076020526040812080549091906107a5908490612bfd565b909155506107b6905082600361214b565b5050565b60006107c582610431565b6060015192915050565b6107ea6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461081a5760405162461bcd60e51b815260040161038090612a80565b60025460405163296586d360e21b8152600481018490526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561085f57600080fd5b505afa158015610873573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089b9190810190612860565b60008581526004602052604090209091506108b46121ac565b6001600160a01b031663d229f3b083602001516040518263ffffffff1660e01b81526004016108e591815260200190565b60206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093591906129ad565b8160010154146109935760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3031393a42554e444c455f4e4f545f494e5f5249534b6044820152631413d3d360e21b6064820152608401610380565b60008160080154116109f35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3032303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff1690811115610a1c57634e487b7160e01b600052602160045260246000fd5b14610a695760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3032313a42554e444c455f4e4f545f414354495645006044820152606401610380565b828160060154610a799190612be5565b81600501541015610acc5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4255432d3032323a43415041434954595f544f4f5f4c4f5700006044820152606401610380565b600085815260066020908152604080832087845290915290205415610b595760405162461bcd60e51b815260206004820152603b60248201527f4552524f523a4255432d3032333a494e4352454d454e54414c5f434f4c4c415460448201527f4552414c495a4154494f4e5f4e4f545f494d504c454d454e54454400000000006064820152608401610380565b82816006016000828254610b6d9190612be5565b90915550504260098201556000858152600560205260408120805460019290610b97908490612be5565b9091555050600085815260066020818152604080842088855290915282208590558201546005830154610bca9190612bfd565b6040805188815260208101889052908101869052606081018290529091507fb253c82cbaad89e2bd0fb78bc565243ccc06da1ac58b640ed94469f69b64ea549060800160405180910390a1505050505050565b610c386e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610c685760405162461bcd60e51b815260040161038090612a80565b61040281600061214b565b610c8e6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610cbe5760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154610d295760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600260038083015460ff1690811115610d5257634e487b7160e01b600052602160045260246000fd5b1415610da05760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4255432d3031323a42554e444c455f434c4f53454400000000006044820152606401610380565b81816005016000828254610db49190612be5565b9250508190555081816007016000828254610dcf9190612be5565b909155505042600982015560068101546005820154600091610df091612bfd565b90507fed746f45e63100861a9a492e092018cdce2d2645b83741099a6f8ecba2af013884335b604080519283526001600160a01b03909116602083015281018590526060810183905260800160405180910390a150505050565b610e656e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610e955760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b158015610edb57600080fd5b505afa158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f139190612910565b9050600281516002811115610f3857634e487b7160e01b600052602160045260246000fd5b1415610f915760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000848152600560205260409020546110005760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3034313a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b60008481526006602090815260408083208684529091529020548211156110825760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4255432d3034323a434f4c4c41544552414c5f494e535546464960448201526f4349454e545f464f525f504f4c49435960801b6064820152608401610380565b600084815260046020526040902060088101546110ed5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3034333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff169081111561111657634e487b7160e01b600052602160045260246000fd5b14806111485750600160038083015460ff169081111561114657634e487b7160e01b600052602160045260246000fd5b145b61119f5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4255432d3034343a42554e444c455f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b82816005015410156111f35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034353a4341504954414c5f544f4f5f4c4f570000006044820152606401610380565b82816006015410156112535760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3034363a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b6064820152608401610380565b82816007015410156112a75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034373a42414c414e43455f544f4f5f4c4f570000006044820152606401610380565b6000858152600660209081526040808320878452909152812080548592906112d0908490612bfd565b92505081905550828160050160008282546112eb9190612bfd565b92505081905550828160060160008282546113069190612bfd565b92505081905550828160070160008282546113219190612bfd565b909155505042600982015560408051868152602081018690529081018490527f34ea3fe7b8e6aa959a187f606dc076e9fb02379d613a2c9356f5a556aac9508c9060600160405180910390a15050505050565b61138f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146113bf5760405162461bcd60e51b815260040161038090612a80565b6000838152600460205260409020600881015484919061142d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3030323a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b60038181015460ff168181111561145457634e487b7160e01b600052602160045260246000fd5b141580156114895750600260038083015460ff169081111561148657634e487b7160e01b600052602160045260246000fd5b14155b6114e35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4255432d3030333a42554e444c455f4255524e45445f4f525f436044820152641313d4d15160da1b6064820152608401610380565b60025460405163a3f685f960e01b8152600481018690526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561152957600080fd5b505afa15801561153d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115619190612910565b905060028151600281111561158657634e487b7160e01b600052602160045260246000fd5b14156115df5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3033303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000868152600460205260409020600881015461164a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3033313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b8481600701600082825461165e9190612be5565b909155505042600990910155505050505050565b600061168f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146116bf5760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612910565b905060028151600281111561176257634e487b7160e01b600052602160045260246000fd5b146117ba5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3035303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b600084815260046020526040902060088101546118255760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3035313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b6000858152600560205260409020546118945760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3035323a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b6000858152600660208181526040808420888552909152909120549082015481111561190e5760405162461bcd60e51b8152602060048201526024808201527f50414e49433a4255432d3035333a554e4c4f434b5f4341504954414c5f544f4f6044820152635f42494760e01b6064820152608401610380565b600086815260056020526040812080546001929061192d908490612bfd565b90915550506000868152600660208181526040808420898552909152822082905583018054839290611960908490612bfd565b90915550504260098301556006820154600583015460009161198191612bfd565b6040805189815260208101899052908101849052606081018290529091507fa7edca0329e0f25a5a213baaa606802692de7155da4cf8a007aedf326d9180759060800160405180910390a15050505092915050565b6000806119e283610431565b90508060c001518160a001516119f89190612bfd565b9392505050565b6000611a1c6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611a4c5760405162461bcd60e51b815260040161038090612a80565b600854611a5a906001612be5565b600081815260046020526040902060088101549192509015611aca5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031303a42554e444c455f414c52454144595f45584960448201526253545360e81b6064820152608401610380565b6003546040516394bf804d60e01b8152600481018490526001600160a01b03898116602483015260009216906394bf804d90604401602060405180830381600087803b158015611b1957600080fd5b505af1158015611b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5191906129ad565b838355600283018190556001830188905560038301805460ff191690559050611b7e60048301878761268a565b50600582018490556007820184905542600880840182905560098401919091558054906000611bac83612c7f565b90915550506000878152600760205260408120805491611bcb83612c7f565b90915550508154600383015460058401546040517f2a6ff62099c2d2515017f639043aef82d6293361b7cb7bdc90854eb2f026b56c93611c159390928c928e9260ff169190612b7a565b60405180910390a1505095945050505050565b611c436e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611c735760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154611cde5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b818160060154611cee9190612be5565b8160050154101580611d1157506006810154158015611d11575081816007015410155b611d6f5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031343a43415041434954595f4f525f42414c414e43604482015268455f544f4f5f4c4f5760b81b6064820152608401610380565b81816005015410611d995781816005016000828254611d8e9190612bfd565b90915550611da19050565b600060058201555b81816007016000828254611db59190612bfd565b909155505042600982015560068101546005820154600091611dd691612bfd565b90507fe3d161947307a0d06b7ac0f3a183176acbc70afff0831bba7e694ef9f47323bd8433610e16565b600080611e0c83610431565b60409081015160035491516331a9108f60e11b8152600481018290529092506001600160a01b0390911690636352211e9060240160206040518083038186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f891906127b8565b600054610100900460ff1615808015611eb05750600054600160ff909116105b80611eca5750303b158015611eca575060005460ff166001145b611f2d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610380565b6000805460ff191660011790558015611f50576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f7a600090565b6541636365737360d01b14611fbc57611f9b6541636365737360d01b612063565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611fc46121c3565b80156107b6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6120286e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146120585760405162461bcd60e51b815260040161038090612a80565b61040281600161214b565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156120ad57600080fd5b505afa1580156120c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e591906127b8565b90506001600160a01b0381166104175760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610380565b6000612156836107ba565b90506121628183612299565b61216c83836125bb565b7f0c318b62e2d75a1d66c8fa6d64604f76f84b646cf3dadfb56e336044d57061f583828460405161219f93929190612b59565b60405180910390a1505050565b60006121be63141bdbdb60e21b612063565b905090565b600054610100900460ff1661222e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610380565b61224065506f6c69637960d01b612063565b600280546001600160a01b0319166001600160a01b03929092169190911790556122776a213ab7323632aa37b5b2b760a91b612063565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008260038111156122bb57634e487b7160e01b600052602160045260246000fd5b141561236f5760018160038111156122e357634e487b7160e01b600052602160045260246000fd5b148061230e5750600281600381111561230c57634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037303a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b6107b6565b600182600381111561239157634e487b7160e01b600052602160045260246000fd5b14156124405760008160038111156123b957634e487b7160e01b600052602160045260246000fd5b14806123e4575060028160038111156123e257634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037313a4c4f434b45445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600282600381111561246257634e487b7160e01b600052602160045260246000fd5b14156124e757600381600381111561248a57634e487b7160e01b600052602160045260246000fd5b1461236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037323a434c4f5345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600382600381111561250957634e487b7160e01b600052602160045260246000fd5b14156125635760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3037333a4255524e45445f49535f46494e414c5f535460448201526241544560e81b6064820152608401610380565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a424f432d3037343a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610380565b600082815260046020526040902060039081018054839260ff199091169060019084908111156125fb57634e487b7160e01b600052602160045260246000fd5b021790555050600090815260046020526040902042600990910155565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561265a57634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461269690612c44565b90600052602060002090601f0160209004810192826126b857600085556126fe565b82601f106126d15782800160ff198235161785556126fe565b828001600101855582156126fe579182015b828111156126fe5782358255916020019190600101906126e3565b5061270a92915061270e565b5090565b5b8082111561270a576000815560010161270f565b600082601f830112612733578081fd5b815167ffffffffffffffff81111561274d5761274d612cb0565b612760601f8201601f1916602001612bb4565b818152846020838601011115612774578283fd5b612785826020830160208701612c14565b949350505050565b80516003811061041757600080fd5b6000602082840312156127ad578081fd5b81356119f881612cc6565b6000602082840312156127c9578081fd5b81516119f881612cc6565b6000806000806000608086880312156127eb578081fd5b85356127f681612cc6565b945060208601359350604086013567ffffffffffffffff80821115612819578283fd5b818801915088601f83011261282c578283fd5b81358181111561283a578384fd5b89602082850101111561284b578384fd5b96999598505060200195606001359392505050565b600060208284031215612871578081fd5b815167ffffffffffffffff80821115612888578283fd5b9083019060c0828603121561289b578283fd5b6128a560c0612bb4565b82516128b081612cc6565b8152602083810151908201526128c86040840161278d565b60408201526060830151828111156128de578485fd5b6128ea87828601612723565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215612923578182fd5b61292c81612bb4565b90506129378361278d565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6000602082840312156129a6578081fd5b5035919050565b6000602082840312156129be578081fd5b5051919050565b600080604083850312156129d7578182fd5b50508035926020909101359150565b6000806000606084860312156129fa578283fd5b505081359360208301359350604090920135919050565b60008151808452612a29816020860160208601612c14565b601f01601f19169290920160200192915050565b60048110612a5b57634e487b7160e01b600052602160045260246000fd5b9052565b6000602082526119f86020830184612a11565b602081016105e78284612a3d565b60208082526022908201527f4552524f523a4255432d3030313a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612af56080840182612a3d565b5060808301516101408060a0850152612b12610160850183612a11565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b83815260608101612b6d6020830185612a3d565b6127856040830184612a3d565b858152602081018590526001600160a01b038416604082015260a08101612ba46060830185612a3d565b8260808301529695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612bdd57612bdd612cb0565b604052919050565b60008219821115612bf857612bf8612c9a565b500190565b600082821015612c0f57612c0f612c9a565b500390565b60005b83811015612c2f578181015183820152602001612c17565b83811115612c3e576000848401525b50505050565b600281046001821680612c5857607f821691505b60208210811415612c7957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c9357612c93612c9a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040257600080fdfea26469706673582212201077787b34730b7d2a802670a61dd1edc7acf97dd1ddeccd189c2edf0833b64664736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/modules/ComponentController.sol/ComponentController.dbg.json b/artifacts/contracts/modules/ComponentController.sol/ComponentController.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/modules/ComponentController.sol/ComponentController.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/modules/ComponentController.sol/ComponentController.json b/artifacts/contracts/modules/ComponentController.sol/ComponentController.json new file mode 100644 index 00000000..65f39967 --- /dev/null +++ b/artifacts/contracts/modules/ComponentController.sol/ComponentController.json @@ -0,0 +1,600 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ComponentController", + "sourceName": "contracts/modules/ComponentController.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "archiveFromComponentOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "archiveFromInstanceOperator", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "components", + "outputs": [ + { + "internalType": "uint256", + "name": "count", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "decline", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "exists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "getComponent", + "outputs": [ + { + "internalType": "contract IComponent", + "name": "component", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "componentAddress", + "type": "address" + } + ], + "name": "getComponentId", + "outputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "getComponentState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "componentState", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "getComponentType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getOracleId", + "outputs": [ + { + "internalType": "uint256", + "name": "oracleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + } + ], + "name": "getPolicyFlow", + "outputs": [ + { + "internalType": "address", + "name": "_policyFlow", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getProductId", + "outputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + } + ], + "name": "getRequiredRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getRiskpoolId", + "outputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "oracles", + "outputs": [ + { + "internalType": "uint256", + "name": "count", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "products", + "outputs": [ + { + "internalType": "uint256", + "name": "count", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IComponent", + "name": "component", + "type": "address" + } + ], + "name": "propose", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "resume", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "riskpools", + "outputs": [ + { + "internalType": "uint256", + "name": "count", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "suspend", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6121f980620000ee6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636bc607b3116100f9578063ba80b8ed11610097578063dd51c86a11610071578063dd51c86a146103a9578063e61ae297146103c9578063fabc1cbc146103dc578063ff3f3883146103ef576101a9565b8063ba80b8ed1461037b578063c4d66de81461038e578063c71e261f146103a1576101a9565b8063a054381f116100d3578063a054381f14610345578063a5c0f5a11461034d578063b759f95414610360578063ba62fbe414610373576101a9565b80636bc607b31461030c5780639f77a6051461031f578063a0355f4e14610332576101a9565b80633920200c116101665780634f27da18116101405780634f27da18146102735780634f558e791461029e5780635af89a47146102c95780635e966e45146102dc576101a9565b80633920200c1461023a578063414000b51461024d5780634b86584614610260576101a9565b806301267951146101ae57806309f63ed9146101c35780630f5da3a6146101eb578063136439dd146101fe5780632857373a146102115780632b1c7f7314610227575b600080fd5b6101c16101bc366004611f6e565b610402565b005b6101d66101d136600461201d565b610739565b60405190151581526020015b60405180910390f35b6101c16101f936600461201d565b61074e565b6101c161020c36600461201d565b610827565b6102196108fe565b6040519081526020016101e2565b610219610235366004611f6e565b61090f565b6101d661024836600461201d565b6109da565b6101c161025b36600461201d565b6109e7565b6101c161026e36600461201d565b610ac0565b61028661028136600461201d565b610b99565b6040516001600160a01b0390911681526020016101e2565b6101d66102ac36600461201d565b6000908152600260205260409020546001600160a01b0316151590565b6102196102d7366004611fe5565b610c09565b6102ff6102ea36600461201d565b60009081526005602052604090205460ff1690565b6040516101e29190612088565b6101c161031a36600461201d565b610e00565b61021961032d36600461201d565b610e51565b6101c161034036600461201d565b610e5e565b610219610f37565b61021961035b36600461201d565b610f43565b6101c161036e36600461201d565b610f50565b600c54610219565b6101d661038936600461201d565b6110d5565b6101c161039c366004611f6e565b6110e2565b610219611260565b6103bc6103b736600461201d565b61126c565b6040516101e29190612096565b6102866103d736600461201d565b611309565b6101c16103ea36600461201d565b61137c565b6102196103fd36600461201d565b611453565b61042374436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b03161461045c5760405162461bcd60e51b8152600401610453906120ef565b60405180910390fd5b6001600160a01b038116600090815260046020526040902054156104d15760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4343522d3030333a434f4d504f4e454e545f414c52454144595f60448201526545584953545360d01b6064820152608401610453565b60036000826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190611fcd565b8152602001908152602001600020546000146105b85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4343522d3030343a434f4d504f4e454e545f4e414d455f414c5260448201526a454144595f45584953545360a81b6064820152608401610453565b60006105c382611548565b90507fd9b3d18a6293c46c667fe6a98468c457078489f2e16e356bb4c77bb2e22d2016826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561061f57600080fd5b505afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106579190611fcd565b836001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c89190612001565b84846040516106da9493929190612059565b60405180910390a1816001600160a01b031663638ce0ba6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050505050565b6000610746600883611830565b90505b919050565b61077176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120a4565b6107ac81600661184d565b6040518181527f9e6d5f1811033619318d2fbe9ee7ec46c830175b39f7885248b51e0decb5837a9060200160405180910390a160006107ea82610b99565b9050806001600160a01b031663be169e7e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b61084874436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146108785760405162461bcd60e51b8152600401610453906120ef565b61088381600461184d565b6040518181527f45dbc7e529df39b8d70de83cc9e1d38c088e6ba21ab836e976f7310f1cbb8afd9060200160405180910390a160006108c182610b99565b9050806001600160a01b031663d73cd9926040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a60086118e7565b905090565b60006001600160a01b0382166109735760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3030363a434f4d504f4e454e545f414444524553535f6044820152635a45524f60e01b6064820152608401610453565b506001600160a01b038116600090815260046020526040902054806107495760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4343522d3030373a434f4d504f4e454e545f554e4b4e4f574e006044820152606401610453565b6000610746600683611830565b610a0a76496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610a3a5760405162461bcd60e51b8152600401610453906120a4565b610a4581600361184d565b6040518181527fd24597f0a62b78258ebd8c2fa52051cf673a5000d14d2fb619c91b1ed95c538a9060200160405180910390a16000610a8382610b99565b9050806001600160a01b031663a18f5ae26040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b610ae376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610b135760405162461bcd60e51b8152600401610453906120a4565b610b1e81600561184d565b6040518181527f55d2d8495549e354e6ee012c5aa183eb0e08ee2f256349afb0f7f74d1940f9b39060200160405180910390a16000610b5c82610b99565b9050806001600160a01b031663b3fca9bd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000818152600260205260409020546001600160a01b0316806107495760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030353a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b60006001826002811115610c2d57634e487b7160e01b600052602160045260246000fd5b1415610cc057600160009054906101000a90046001600160a01b03166001600160a01b031663775a40486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b505afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190611fcd565b9050610749565b6000826002811115610ce257634e487b7160e01b600052602160045260246000fd5b1415610d3657600160009054906101000a90046001600160a01b03166001600160a01b031663d49d21c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b6002826002811115610d5857634e487b7160e01b600052602160045260246000fd5b1415610dac57600160009054906101000a90046001600160a01b03166001600160a01b0316633ffdd2f36040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b60405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3031303a434f4d504f4e454e545f545950455f554e4b6044820152632727aba760e11b6064820152608401610453565b610e2174436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120ef565b60006107466006836118f1565b610e8176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610eb15760405162461bcd60e51b8152600401610453906120a4565b610ebc81600261184d565b6040518181527fd541b5f22e9e402fb32220d566405510c49372d27b4f47f1d0da1a153ea2007c9060200160405180910390a16000610efa82610b99565b9050806001600160a01b031663bd1fe5d06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a600a6118e7565b60006107466008836118f1565b610f7376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610fa35760405162461bcd60e51b8152600401610453906120a4565b610fae81600361184d565b6000610fb982610b99565b9050610fc4826109da565b1561106757806001600160a01b031663637d08f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190611f91565b6000838152600d6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b6040518281527ff8d33755281aa5d41b12a70ae3947ee164ef541d786400d733b0b89df719859e9060200160405180910390a1806001600160a01b0316631b867c636040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a83611830565b600054610100900460ff16158080156111025750600054600160ff909116105b8061111c5750303b15801561111c575060005460ff166001145b61117f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff1916600117905580156111a2576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111cc600090565b6541636365737360d01b1461120e576111ed6541636365737360d01b611460565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6112166118fd565b801561125c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061090a60066118e7565b6000611279600683611830565b1561128657506001610749565b611291600883611830565b1561129e57506000610749565b6112a9600a83611830565b156112b657506002610749565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030383a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b6000611314826109da565b6113605760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4343522d3031313a554e4b4e4f574e5f50524f445543545f49446044820152606401610453565b506000908152600d60205260409020546001600160a01b031690565b61139d74436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146113cd5760405162461bcd60e51b8152600401610453906120ef565b6113d881600361184d565b6040518181527f8e78ca4cc29c505d9901fd1582ba8584083396ce204151eddd3e008749a24fe09060200160405180910390a1600061141682610b99565b9050806001600160a01b03166359dacc6a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a836118f1565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156114aa57600080fd5b505afa1580156114be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e29190611f91565b90506001600160a01b0381166107495760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610453565b600c80546000918261155983612161565b9190505550600c54905061156e81600161184d565b60405163d0e0ba9560e01b8152600481018290526001600160a01b0383169063d0e0ba9590602401600060405180830381600087803b1580156115b057600080fd5b505af11580156115c4573d6000803e3d6000fd5b505050600082815260026020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516305f5f79f60e21b815291518695506003949391926317d7de7c926004808301939192829003018186803b15801561162d57600080fd5b505afa158015611641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116659190611fcd565b8152602001908152602001600020819055508060046000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663e0815f0d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116da57600080fd5b505afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190611fad565b156117285761172260068261196a565b50610749565b816001600160a01b0316639a82f8906040518163ffffffff1660e01b815260040160206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190611fad565b156117a95761172260088261196a565b816001600160a01b031663258d560c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117e257600080fd5b505afa1580156117f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181a9190611fad565b156107495761182a600a8261196a565b50919050565b600081815260018301602052604081205415155b90505b92915050565b60008281526005602052604090205460ff166118698183611976565b6000838152600560205260409020805483919060ff191660018360068111156118a257634e487b7160e01b600052602160045260246000fd5b02179055507fd2248d3e400f6333d5de6d43446115557cb942e75002aa7ad26f9cac9b105b1a8382846040516118da93929190612138565b60405180910390a1505050565b6000610746825490565b60006118448383611ee7565b600054610100900460ff166119685760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610453565b565b60006118448383611f1f565b81600681111561199657634e487b7160e01b600052602160045260246000fd5b8160068111156119b657634e487b7160e01b600052602160045260246000fd5b1415611a1c5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4343522d3032303a534f555243455f414e445f5441524745545f60448201526e14d510551157d2511153951250d053608a1b6064820152608401610453565b6000826006811115611a3e57634e487b7160e01b600052602160045260246000fd5b1415611ac9576001816006811115611a6657634e487b7160e01b600052602160045260246000fd5b14611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d3032313a435245415445445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b61125c565b6001826006811115611aeb57634e487b7160e01b600052602160045260246000fd5b1415611b9b576003816006811115611b1357634e487b7160e01b600052602160045260246000fd5b1480611b3e57506002816006811115611b3c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d32323a50524f504f5345445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b6002826006811115611bbd57634e487b7160e01b600052602160045260246000fd5b1415611c195760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4343522d3032333a4445434c494e45445f49535f46494e414c5f604482015264535441544560d81b6064820152608401610453565b6003826006811115611c3b57634e487b7160e01b600052602160045260246000fd5b1415611cea576004816006811115611c6357634e487b7160e01b600052602160045260246000fd5b1480611c8e57506005816006811115611c8c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032343a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6004826006811115611d0c57634e487b7160e01b600052602160045260246000fd5b1415611dbb576003816006811115611d3457634e487b7160e01b600052602160045260246000fd5b1480611d5f57506006816006811115611d5d57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032353a5041555345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6005826006811115611ddd57634e487b7160e01b600052602160045260246000fd5b1415611e8f576003816006811115611e0557634e487b7160e01b600052602160045260246000fd5b1480611e3057506006816006811115611e2e57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a4343522d3032363a53555350454e4445445f494e56414c49445f6044820152692a2920a729a4aa24a7a760b11b6064820152608401610453565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032373a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610453565b6000826000018281548110611f0c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054611f6657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611847565b506000611847565b600060208284031215611f7f578081fd5b8135611f8a8161219e565b9392505050565b600060208284031215611fa2578081fd5b8151611f8a8161219e565b600060208284031215611fbe578081fd5b81518015158114611f8a578182fd5b600060208284031215611fde578081fd5b5051919050565b600060208284031215611ff6578081fd5b8135611f8a816121b6565b600060208284031215612012578081fd5b8151611f8a816121b6565b60006020828403121561202e578081fd5b5035919050565b6007811061204557612045612188565b9052565b6003811061204557612045612188565b8481526080810161206d6020830186612049565b6001600160a01b039390931660408201526060015292915050565b602081016118478284612035565b602081016118478284612049565b6020808252602b908201527f4552524f523a4343522d3030323a4e4f545f494e5354414e43455f4f5045524160408201526a544f525f5345525649434560a81b606082015260800190565b60208082526029908201527f4552524f523a4343522d3030313a4e4f545f434f4d504f4e454e545f4f574e45604082015268525f5345525649434560b81b606082015260800190565b8381526060810161214c6020830185612035565b6121596040830184612035565b949350505050565b600060001982141561218157634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146121b357600080fd5b50565b600381106121b357600080fdfea26469706673582212207b6d7253c522420b015643d5d348125e0e3e34a0bb911fa3cf3939a9d465163864736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80636bc607b3116100f9578063ba80b8ed11610097578063dd51c86a11610071578063dd51c86a146103a9578063e61ae297146103c9578063fabc1cbc146103dc578063ff3f3883146103ef576101a9565b8063ba80b8ed1461037b578063c4d66de81461038e578063c71e261f146103a1576101a9565b8063a054381f116100d3578063a054381f14610345578063a5c0f5a11461034d578063b759f95414610360578063ba62fbe414610373576101a9565b80636bc607b31461030c5780639f77a6051461031f578063a0355f4e14610332576101a9565b80633920200c116101665780634f27da18116101405780634f27da18146102735780634f558e791461029e5780635af89a47146102c95780635e966e45146102dc576101a9565b80633920200c1461023a578063414000b51461024d5780634b86584614610260576101a9565b806301267951146101ae57806309f63ed9146101c35780630f5da3a6146101eb578063136439dd146101fe5780632857373a146102115780632b1c7f7314610227575b600080fd5b6101c16101bc366004611f6e565b610402565b005b6101d66101d136600461201d565b610739565b60405190151581526020015b60405180910390f35b6101c16101f936600461201d565b61074e565b6101c161020c36600461201d565b610827565b6102196108fe565b6040519081526020016101e2565b610219610235366004611f6e565b61090f565b6101d661024836600461201d565b6109da565b6101c161025b36600461201d565b6109e7565b6101c161026e36600461201d565b610ac0565b61028661028136600461201d565b610b99565b6040516001600160a01b0390911681526020016101e2565b6101d66102ac36600461201d565b6000908152600260205260409020546001600160a01b0316151590565b6102196102d7366004611fe5565b610c09565b6102ff6102ea36600461201d565b60009081526005602052604090205460ff1690565b6040516101e29190612088565b6101c161031a36600461201d565b610e00565b61021961032d36600461201d565b610e51565b6101c161034036600461201d565b610e5e565b610219610f37565b61021961035b36600461201d565b610f43565b6101c161036e36600461201d565b610f50565b600c54610219565b6101d661038936600461201d565b6110d5565b6101c161039c366004611f6e565b6110e2565b610219611260565b6103bc6103b736600461201d565b61126c565b6040516101e29190612096565b6102866103d736600461201d565b611309565b6101c16103ea36600461201d565b61137c565b6102196103fd36600461201d565b611453565b61042374436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b03161461045c5760405162461bcd60e51b8152600401610453906120ef565b60405180910390fd5b6001600160a01b038116600090815260046020526040902054156104d15760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4343522d3030333a434f4d504f4e454e545f414c52454144595f60448201526545584953545360d01b6064820152608401610453565b60036000826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190611fcd565b8152602001908152602001600020546000146105b85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4343522d3030343a434f4d504f4e454e545f4e414d455f414c5260448201526a454144595f45584953545360a81b6064820152608401610453565b60006105c382611548565b90507fd9b3d18a6293c46c667fe6a98468c457078489f2e16e356bb4c77bb2e22d2016826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561061f57600080fd5b505afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106579190611fcd565b836001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c89190612001565b84846040516106da9493929190612059565b60405180910390a1816001600160a01b031663638ce0ba6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050505050565b6000610746600883611830565b90505b919050565b61077176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120a4565b6107ac81600661184d565b6040518181527f9e6d5f1811033619318d2fbe9ee7ec46c830175b39f7885248b51e0decb5837a9060200160405180910390a160006107ea82610b99565b9050806001600160a01b031663be169e7e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b61084874436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146108785760405162461bcd60e51b8152600401610453906120ef565b61088381600461184d565b6040518181527f45dbc7e529df39b8d70de83cc9e1d38c088e6ba21ab836e976f7310f1cbb8afd9060200160405180910390a160006108c182610b99565b9050806001600160a01b031663d73cd9926040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a60086118e7565b905090565b60006001600160a01b0382166109735760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3030363a434f4d504f4e454e545f414444524553535f6044820152635a45524f60e01b6064820152608401610453565b506001600160a01b038116600090815260046020526040902054806107495760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4343522d3030373a434f4d504f4e454e545f554e4b4e4f574e006044820152606401610453565b6000610746600683611830565b610a0a76496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610a3a5760405162461bcd60e51b8152600401610453906120a4565b610a4581600361184d565b6040518181527fd24597f0a62b78258ebd8c2fa52051cf673a5000d14d2fb619c91b1ed95c538a9060200160405180910390a16000610a8382610b99565b9050806001600160a01b031663a18f5ae26040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b610ae376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610b135760405162461bcd60e51b8152600401610453906120a4565b610b1e81600561184d565b6040518181527f55d2d8495549e354e6ee012c5aa183eb0e08ee2f256349afb0f7f74d1940f9b39060200160405180910390a16000610b5c82610b99565b9050806001600160a01b031663b3fca9bd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000818152600260205260409020546001600160a01b0316806107495760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030353a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b60006001826002811115610c2d57634e487b7160e01b600052602160045260246000fd5b1415610cc057600160009054906101000a90046001600160a01b03166001600160a01b031663775a40486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b505afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190611fcd565b9050610749565b6000826002811115610ce257634e487b7160e01b600052602160045260246000fd5b1415610d3657600160009054906101000a90046001600160a01b03166001600160a01b031663d49d21c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b6002826002811115610d5857634e487b7160e01b600052602160045260246000fd5b1415610dac57600160009054906101000a90046001600160a01b03166001600160a01b0316633ffdd2f36040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b60405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3031303a434f4d504f4e454e545f545950455f554e4b6044820152632727aba760e11b6064820152608401610453565b610e2174436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120ef565b60006107466006836118f1565b610e8176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610eb15760405162461bcd60e51b8152600401610453906120a4565b610ebc81600261184d565b6040518181527fd541b5f22e9e402fb32220d566405510c49372d27b4f47f1d0da1a153ea2007c9060200160405180910390a16000610efa82610b99565b9050806001600160a01b031663bd1fe5d06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a600a6118e7565b60006107466008836118f1565b610f7376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610fa35760405162461bcd60e51b8152600401610453906120a4565b610fae81600361184d565b6000610fb982610b99565b9050610fc4826109da565b1561106757806001600160a01b031663637d08f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190611f91565b6000838152600d6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b6040518281527ff8d33755281aa5d41b12a70ae3947ee164ef541d786400d733b0b89df719859e9060200160405180910390a1806001600160a01b0316631b867c636040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a83611830565b600054610100900460ff16158080156111025750600054600160ff909116105b8061111c5750303b15801561111c575060005460ff166001145b61117f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff1916600117905580156111a2576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111cc600090565b6541636365737360d01b1461120e576111ed6541636365737360d01b611460565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6112166118fd565b801561125c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061090a60066118e7565b6000611279600683611830565b1561128657506001610749565b611291600883611830565b1561129e57506000610749565b6112a9600a83611830565b156112b657506002610749565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030383a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b6000611314826109da565b6113605760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4343522d3031313a554e4b4e4f574e5f50524f445543545f49446044820152606401610453565b506000908152600d60205260409020546001600160a01b031690565b61139d74436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146113cd5760405162461bcd60e51b8152600401610453906120ef565b6113d881600361184d565b6040518181527f8e78ca4cc29c505d9901fd1582ba8584083396ce204151eddd3e008749a24fe09060200160405180910390a1600061141682610b99565b9050806001600160a01b03166359dacc6a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a836118f1565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156114aa57600080fd5b505afa1580156114be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e29190611f91565b90506001600160a01b0381166107495760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610453565b600c80546000918261155983612161565b9190505550600c54905061156e81600161184d565b60405163d0e0ba9560e01b8152600481018290526001600160a01b0383169063d0e0ba9590602401600060405180830381600087803b1580156115b057600080fd5b505af11580156115c4573d6000803e3d6000fd5b505050600082815260026020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516305f5f79f60e21b815291518695506003949391926317d7de7c926004808301939192829003018186803b15801561162d57600080fd5b505afa158015611641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116659190611fcd565b8152602001908152602001600020819055508060046000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663e0815f0d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116da57600080fd5b505afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190611fad565b156117285761172260068261196a565b50610749565b816001600160a01b0316639a82f8906040518163ffffffff1660e01b815260040160206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190611fad565b156117a95761172260088261196a565b816001600160a01b031663258d560c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117e257600080fd5b505afa1580156117f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181a9190611fad565b156107495761182a600a8261196a565b50919050565b600081815260018301602052604081205415155b90505b92915050565b60008281526005602052604090205460ff166118698183611976565b6000838152600560205260409020805483919060ff191660018360068111156118a257634e487b7160e01b600052602160045260246000fd5b02179055507fd2248d3e400f6333d5de6d43446115557cb942e75002aa7ad26f9cac9b105b1a8382846040516118da93929190612138565b60405180910390a1505050565b6000610746825490565b60006118448383611ee7565b600054610100900460ff166119685760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610453565b565b60006118448383611f1f565b81600681111561199657634e487b7160e01b600052602160045260246000fd5b8160068111156119b657634e487b7160e01b600052602160045260246000fd5b1415611a1c5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4343522d3032303a534f555243455f414e445f5441524745545f60448201526e14d510551157d2511153951250d053608a1b6064820152608401610453565b6000826006811115611a3e57634e487b7160e01b600052602160045260246000fd5b1415611ac9576001816006811115611a6657634e487b7160e01b600052602160045260246000fd5b14611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d3032313a435245415445445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b61125c565b6001826006811115611aeb57634e487b7160e01b600052602160045260246000fd5b1415611b9b576003816006811115611b1357634e487b7160e01b600052602160045260246000fd5b1480611b3e57506002816006811115611b3c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d32323a50524f504f5345445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b6002826006811115611bbd57634e487b7160e01b600052602160045260246000fd5b1415611c195760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4343522d3032333a4445434c494e45445f49535f46494e414c5f604482015264535441544560d81b6064820152608401610453565b6003826006811115611c3b57634e487b7160e01b600052602160045260246000fd5b1415611cea576004816006811115611c6357634e487b7160e01b600052602160045260246000fd5b1480611c8e57506005816006811115611c8c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032343a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6004826006811115611d0c57634e487b7160e01b600052602160045260246000fd5b1415611dbb576003816006811115611d3457634e487b7160e01b600052602160045260246000fd5b1480611d5f57506006816006811115611d5d57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032353a5041555345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6005826006811115611ddd57634e487b7160e01b600052602160045260246000fd5b1415611e8f576003816006811115611e0557634e487b7160e01b600052602160045260246000fd5b1480611e3057506006816006811115611e2e57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a4343522d3032363a53555350454e4445445f494e56414c49445f6044820152692a2920a729a4aa24a7a760b11b6064820152608401610453565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032373a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610453565b6000826000018281548110611f0c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054611f6657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611847565b506000611847565b600060208284031215611f7f578081fd5b8135611f8a8161219e565b9392505050565b600060208284031215611fa2578081fd5b8151611f8a8161219e565b600060208284031215611fbe578081fd5b81518015158114611f8a578182fd5b600060208284031215611fde578081fd5b5051919050565b600060208284031215611ff6578081fd5b8135611f8a816121b6565b600060208284031215612012578081fd5b8151611f8a816121b6565b60006020828403121561202e578081fd5b5035919050565b6007811061204557612045612188565b9052565b6003811061204557612045612188565b8481526080810161206d6020830186612049565b6001600160a01b039390931660408201526060015292915050565b602081016118478284612035565b602081016118478284612049565b6020808252602b908201527f4552524f523a4343522d3030323a4e4f545f494e5354414e43455f4f5045524160408201526a544f525f5345525649434560a81b606082015260800190565b60208082526029908201527f4552524f523a4343522d3030313a4e4f545f434f4d504f4e454e545f4f574e45604082015268525f5345525649434560b81b606082015260800190565b8381526060810161214c6020830185612035565b6121596040830184612035565b949350505050565b600060001982141561218157634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146121b357600080fd5b50565b600381106121b357600080fdfea26469706673582212207b6d7253c522420b015643d5d348125e0e3e34a0bb911fa3cf3939a9d465163864736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/modules/LicenseController.sol/LicenseController.dbg.json b/artifacts/contracts/modules/LicenseController.sol/LicenseController.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/modules/LicenseController.sol/LicenseController.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/modules/LicenseController.sol/LicenseController.json b/artifacts/contracts/modules/LicenseController.sol/LicenseController.json new file mode 100644 index 00000000..2d72e3ad --- /dev/null +++ b/artifacts/contracts/modules/LicenseController.sol/LicenseController.json @@ -0,0 +1,66 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "LicenseController", + "sourceName": "contracts/modules/LicenseController.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "productAddress", + "type": "address" + } + ], + "name": "getAuthorizationStatus", + "outputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isAuthorized", + "type": "bool" + }, + { + "internalType": "address", + "name": "policyFlow", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b610630806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063d3e9c31414610050575b600080fd5b61004e61004936600461056c565b61008b565b005b61006361005e36600461056c565b610215565b6040805193845291151560208401526001600160a01b03169082015260600160405180910390f35b600054610100900460ff16158080156100ab5750600054600160ff909116105b806100cc57506100ba30610329565b1580156100cc575060005460ff166001145b6101345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610157576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610181600090565b6541636365737360d01b146101c3576101a26541636365737360d01b61033c565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101cb610424565b8015610211576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600254604051632b1c7f7360e01b81526001600160a01b0383811660048301526000928392839290911690632b1c7f739060240160206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029991906105ca565b92506102a4836104c6565b60025460405163e61ae29760e01b8152600481018690529193506001600160a01b03169063e61ae2979060240160206040518083038186803b1580156102e957600080fd5b505afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610321919061058f565b929491935050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061058f565b90506001600160a01b0381166103375760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161012b565b600054610100900460ff1661048f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161012b565b6104a46810dbdb5c1bdb995b9d60ba1b61033c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006003600254604051635e966e4560e01b8152600481018590526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054691906105ab565b600681111561056557634e487b7160e01b600052602160045260246000fd5b1492915050565b60006020828403121561057d578081fd5b8135610588816105e2565b9392505050565b6000602082840312156105a0578081fd5b8151610588816105e2565b6000602082840312156105bc578081fd5b815160078110610588578182fd5b6000602082840312156105db578081fd5b5051919050565b6001600160a01b03811681146105f757600080fd5b5056fea2646970667358221220cea7b50d1ccd58df7ad365e06063b9cd6fc1a8baf876def1c3f83285ceb5b10164736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063d3e9c31414610050575b600080fd5b61004e61004936600461056c565b61008b565b005b61006361005e36600461056c565b610215565b6040805193845291151560208401526001600160a01b03169082015260600160405180910390f35b600054610100900460ff16158080156100ab5750600054600160ff909116105b806100cc57506100ba30610329565b1580156100cc575060005460ff166001145b6101345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610157576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610181600090565b6541636365737360d01b146101c3576101a26541636365737360d01b61033c565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101cb610424565b8015610211576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600254604051632b1c7f7360e01b81526001600160a01b0383811660048301526000928392839290911690632b1c7f739060240160206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029991906105ca565b92506102a4836104c6565b60025460405163e61ae29760e01b8152600481018690529193506001600160a01b03169063e61ae2979060240160206040518083038186803b1580156102e957600080fd5b505afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610321919061058f565b929491935050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061058f565b90506001600160a01b0381166103375760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161012b565b600054610100900460ff1661048f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161012b565b6104a46810dbdb5c1bdb995b9d60ba1b61033c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006003600254604051635e966e4560e01b8152600481018590526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054691906105ab565b600681111561056557634e487b7160e01b600052602160045260246000fd5b1492915050565b60006020828403121561057d578081fd5b8135610588816105e2565b9392505050565b6000602082840312156105a0578081fd5b8151610588816105e2565b6000602082840312156105bc578081fd5b815160078110610588578182fd5b6000602082840312156105db578081fd5b5051919050565b6001600160a01b03811681146105f757600080fd5b5056fea2646970667358221220cea7b50d1ccd58df7ad365e06063b9cd6fc1a8baf876def1c3f83285ceb5b10164736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/modules/PolicyController.sol/PolicyController.dbg.json b/artifacts/contracts/modules/PolicyController.sol/PolicyController.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/modules/PolicyController.sol/PolicyController.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/modules/PolicyController.sol/PolicyController.json b/artifacts/contracts/modules/PolicyController.sol/PolicyController.json new file mode 100644 index 00000000..96aee761 --- /dev/null +++ b/artifacts/contracts/modules/PolicyController.sol/PolicyController.json @@ -0,0 +1,1333 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PolicyController", + "sourceName": "contracts/modules/PolicyController.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "LogApplicationCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogApplicationDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumAmountOld", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + } + ], + "name": "LogApplicationPremiumAdjusted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogApplicationRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumInsuredAmountOld", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "LogApplicationSumInsuredAdjusted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogApplicationUnderwritten", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "LogClaimClosed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "confirmedAmount", + "type": "uint256" + } + ], + "name": "LogClaimConfirmed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "LogClaimCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "LogClaimDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IPolicy.PolicyFlowState", + "name": "state", + "type": "uint8" + } + ], + "name": "LogMetadataCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IPolicy.PolicyFlowState", + "name": "state", + "type": "uint8" + } + ], + "name": "LogMetadataStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogPayoutCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "LogPayoutProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogPolicyClosed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogPolicyCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "LogPolicyExpired", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumExpectedAmountOld", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "premiumExpectedAmount", + "type": "uint256" + } + ], + "name": "LogPolicyPremiumAdjusted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogPremiumCollected", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "expectedPremiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "adjustPremiumSumInsured", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "applications", + "outputs": [ + { + "internalType": "enum IPolicy.ApplicationState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "claims", + "outputs": [ + { + "internalType": "enum IPolicy.ClaimState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "paidAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "closeClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "closePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "collectPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "confirmedAmount", + "type": "uint256" + } + ], + "name": "confirmClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "createApplication", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "createClaim", + "outputs": [ + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "createPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "createPolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "createPolicyFlow", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "declineApplication", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "declineClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "expirePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "getApplication", + "outputs": [ + { + "components": [ + { + "internalType": "enum IPolicy.ApplicationState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Application", + "name": "application", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "getClaim", + "outputs": [ + { + "components": [ + { + "internalType": "enum IPolicy.ClaimState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "paidAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Claim", + "name": "claim", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "getMetadata", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "enum IPolicy.PolicyFlowState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Metadata", + "name": "_metadata", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "getNumberOfClaims", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfClaims", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "getNumberOfPayouts", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfPayouts", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "getPayout", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "enum IPolicy.PayoutState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Payout", + "name": "payout", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "getPolicy", + "outputs": [ + { + "components": [ + { + "internalType": "enum IPolicy.PolicyState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumExpectedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premiumPaidAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "openClaimsCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutMaxAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Policy", + "name": "policy", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "metadata", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "enum IPolicy.PolicyFlowState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "payoutCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "payouts", + "outputs": [ + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "enum IPolicy.PayoutState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "policies", + "outputs": [ + { + "internalType": "enum IPolicy.PolicyState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumExpectedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premiumPaidAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "openClaimsCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutMaxAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "processIds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "revokeApplication", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "underwriteApplication", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6147c880620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063a1814a1a1161010f578063c4d66de8116100a2578063e3ebdea511610071578063e3ebdea5146104d8578063eb96cbed146104eb578063ec935668146104fe578063fe64372b14610511576101e5565b8063c4d66de814610420578063cef58f1314610433578063db42b77b14610453578063ddbfd8ef14610466576101e5565b8063adcadb28116100de578063adcadb28146103c7578063b1e25988146103da578063bc506f64146103ed578063be183b1114610400576101e5565b8063a1814a1a1461036c578063a3f685f91461037f578063a427056e1461039f578063a5961b4c146103a7576101e5565b80634e02c63f116101875780637f22c2d9116101565780637f22c2d9146103015780637f29dba21461032157806380f2122c146103345780639e81f96a14610359576101e5565b80634e02c63f146102a35780635c955288146102b65780636780336e146102c95780637122ba06146102dc576101e5565b806347e3b138116101c357806347e3b138146102455780634c14ccc2146102585780634cafa1211461026b5780634cda0de914610290576101e5565b8063296d6c7d146101ea57806330a73da5146101ff578063357f030a14610212575b600080fd5b6101fd6101f83660046141f4565b610524565b005b6101fd61020d366004614266565b6107a6565b6102326102203660046141f4565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b6101fd6102533660046141f4565b610b85565b6101fd6102663660046141f4565b610d4a565b61027e6102793660046141f4565b61104f565b60405161023c9695949392919061440e565b6101fd61029e36600461420c565b611113565b6101fd6102b1366004614266565b6113bb565b6101fd6102c43660046141f4565b611702565b6101fd6102d7366004614291565b6118c3565b6102ef6102ea3660046141f4565b611bac565b60405161023c969594939291906143a4565b61031461030f36600461420c565b611bea565b60405161023c91906144fe565b6101fd61032f36600461420c565b611db2565b61034761034236600461420c565b612157565b60405161023c96959493929190614660565b61027e61036736600461420c565b612196565b61023261037a36600461417a565b6121d5565b61039261038d3660046141f4565b612576565b60405161023c91906145f3565b600854610232565b6103ba6103b53660046141f4565b6126e0565b60405161023c9190614563565b6101fd6103d53660046141f4565b6128a6565b6102326103e83660046141f4565b612b6b565b6103146103fb3660046141f4565b612b80565b61023261040e3660046141f4565b60009081526007602052604090205490565b6101fd61042e36600461413b565b612d40565b61044661044136600461420c565b612ebe565b60405161023c91906145b0565b610232610461366004614291565b613080565b6104c36104743660046141f4565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460089097015460ff90961697949693959293919290919089565b60405161023c9998979695949392919061443c565b6101fd6104e636600461420c565b61346c565b6101fd6104f93660046141f4565b61358f565b61023261050c36600461422d565b6137fe565b6101fd61051f36600461420c565b613b0e565b65506f6c69637960d01b61053781613e6b565b6001600160a01b0316306001600160a01b0316146105705760405162461bcd60e51b815260040161056790614486565b60405180910390fd5b61058a6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146105ba5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546106275760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031393a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546106975760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032303a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff1660038111156106bd57634e487b7160e01b600052602160045260246000fd5b1461071a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032313a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff1990811660031782554260058084018290556002858101805490941617928390558401556040516000805160206147738339815191529161076491879160ff16906143f1565b60405180910390a16040518481527fd38021ec2bcd4d63a80341a60be320a74cd71c01b04a4f7aac74ef6593d8e5e3906020015b60405180910390a150505050565b65506f6c69637960d01b6107b981613e6b565b6001600160a01b0316306001600160a01b0316146107e95760405162461bcd60e51b815260040161056790614486565b6108036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146108335760405162461bcd60e51b8152600401610567906144bd565b600084815260036020526040902060048101541580159061087757506002815460ff16600381111561087557634e487b7160e01b600052602160045260246000fd5b145b6108d45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032343a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b80600201548311156109475760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f432d3032363a4150504c49434154494f4e5f53554d5f494e60448201527514d554915117d25390d4915054d157d253959053125160521b6064820152608401610567565b600085815260046020526040902060078101541580159061098b57506000815460ff16600281111561098957634e487b7160e01b600052602160045260246000fd5b145b6109e35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032373a504f4c4943595f4143434553535f494e564160448201526213125160ea1b6064820152608401610567565b6000851180156109f7575080600201548510155b8015610a0257508385105b610a605760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f432d3032353a4150504c49434154494f4e5f5052454d49556044820152681357d253959053125160ba1b6064820152608401610567565b81600201548414610acc57600282015460408051888152602081019290925281018590527fa749e55ffd0f07193966d7c449d6238c6514c6b3eb5e8ab21b3ea9d94a5c21789060600160405180910390a160028201849055426005808401829055820185905560088201555b81600101548514610b7d57600182015460408051888152602081019290925281018690527f23e948a9dc44669750ea8ea8b7ca46c359534bd0f04e9260408a7e9bf8c7a5569060600160405180910390a1600182810186905542600584015581015460408051888152602081019290925281018690527ff392e5df923d5d0b6d6c6301c53c86e1c75f58c1c637200c3193dd589e5c8a019060600160405180910390a1600181018590554260088201555b505050505050565b65506f6c69637960d01b610b9881613e6b565b6001600160a01b0316306001600160a01b031614610bc85760405162461bcd60e51b815260040161056790614486565b610be26d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610c125760405162461bcd60e51b8152600401610567906144bd565b60008281526004602052604090206007810154610c7d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032383a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff166002811115610ca357634e487b7160e01b600052602160045260246000fd5b14610d005760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032393a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660011781554260088201556040518381527ff1950800da95964fdd42242722ccdfe6d9dc13d5d4dc7eafefeab77373e3c9ec906020015b60405180910390a1505050565b65506f6c69637960d01b610d5d81613e6b565b6001600160a01b0316306001600160a01b031614610d8d5760405162461bcd60e51b815260040161056790614486565b610da76d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610dd75760405162461bcd60e51b8152600401610567906144bd565b6000828152600360208190526040808320815160c08101909252805491929091839160ff90911690811115610e1c57634e487b7160e01b600052602160045260246000fd5b6003811115610e3b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054610e63906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8f906146b8565b8015610edc5780601f10610eb157610100808354040283529160200191610edc565b820191906000526020600020905b815481529060010190602001808311610ebf57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151118015610f2f5750600281516003811115610f2d57634e487b7160e01b600052602160045260246000fd5b145b610f8c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032323a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b6000838152600460205260409020600781015415610ff85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032333a504f4c4943595f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b805460ff191681556020828101516001830155604080840151600584015542600784018190556008840155518581527f0b979eae60510a4a065f45ddd8a0c9af7ba4d241e253b17bdee3043c2fb992e99101610798565b6003602081905260009182526040909120805460018201546002830154938301805460ff9093169491939192611084906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546110b0906146b8565b80156110fd5780601f106110d2576101008083540402835291602001916110fd565b820191906000526020600020905b8154815290600101906020018083116110e057829003601f168201915b5050505050908060040154908060050154905086565b65506f6c69637960d01b61112681613e6b565b6001600160a01b0316306001600160a01b0316146111565760405162461bcd60e51b815260040161056790614486565b6111706d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146111a05760405162461bcd60e51b8152600401610567906144bd565b6000838152600460205260409020600781015461120b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3036303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116112705760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3036313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b6000848152600560209081526040808320868452909152902060048101546112e55760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3036323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561130b57634e487b7160e01b600052602160045260246000fd5b146113625760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3036333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff191660021781554260058201819055600883015560408051868152602081018690527f5ea526dbb5ca484c7716dcc966fdfc289530cc595ebc9ec7bfda25d010d1a2fc91015b60405180910390a15050505050565b65506f6c69637960d01b6113ce81613e6b565b6001600160a01b0316306001600160a01b0316146113fe5760405162461bcd60e51b815260040161056790614486565b6114186d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146114485760405162461bcd60e51b8152600401610567906144bd565b600084815260046020526040902060078101546114b35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3035303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116115185760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b806005015483826006015461152d9190614672565b111561158c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035323a5041594f55545f4d41585f414d4f554e545f604482015267115610d15151115160c21b6064820152608401610567565b6000858152600560209081526040808320878452909152902060048101546116015760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3035333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561162757634e487b7160e01b600052602160045260246000fd5b1461167e5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3035343a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff19166001908117825581018490554260058201556006820180548591906000906116ad908490614672565b909155505042600883015560408051878152602081018790529081018590527fa39b09b76ccf7db94096e2c5a058215f9b2302b85de726e37edb99efdb6fb2c6906060015b60405180910390a1505050505050565b65506f6c69637960d01b61171581613e6b565b6001600160a01b0316306001600160a01b0316146117455760405162461bcd60e51b815260040161056790614486565b61175f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461178f5760405162461bcd60e51b8152600401610567906144bd565b600082815260036020526040902060048101546117ff5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031373a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561182557634e487b7160e01b600052602160045260246000fd5b146118825760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031383a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660021781554260058201556040518381527f67f56ed3a623b73566d40f65cba052fc97ca9df8afb800a885c2a4fe0228c1f890602001610d3d565b65506f6c69637960d01b6118d681613e6b565b6001600160a01b0316306001600160a01b0316146119065760405162461bcd60e51b815260040161056790614486565b6119206d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146119505760405162461bcd60e51b8152600401610567906144bd565b600086815260026020526040902060048101546119bd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b6000878152600360205260409020600481015415611a2e5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031313a4150504c49434154494f4e5f414c52454144604482015267595f45584953545360c01b6064820152608401610567565b60008711611a885760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3031323a5052454d49554d5f414d4f554e545f5a45526044820152604f60f81b6064820152608401610567565b868611611aea5760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a504f432d3031333a53554d5f494e53555245445f414d4f554e5460448201526917d513d3d7d4d350531360b21b6064820152608401610567565b805460ff191681556001810187905560028101869055611b0e60038201868661405b565b504260048201819055600580830182905560028401805460ff1916600117908190559084019190915560405160008051602061477383398151915291611b59918b9160ff16906143f1565b60405180910390a160408051898152602081018990529081018790527f71b9122c9f32160952b44f0e76b53474f59a5cd9b98ccdfb5ff20672fcae34129060600160405180910390a15050505050505050565b600260208190526000918252604090912080546001820154928201546003830180546001600160a01b03909316949360ff90921692611084906146b8565b611c246040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600083815260056020908152604080832085845290915290819020815160c081019092528054829060ff166003811115611c6e57634e487b7160e01b600052602160045260246000fd5b6003811115611c8d57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054611cb5906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce1906146b8565b8015611d2e5780601f10611d0357610100808354040283529160200191611d2e565b820191906000526020600020905b815481529060010190602001808311611d1157829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3130333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b92915050565b65506f6c69637960d01b611dc581613e6b565b6001600160a01b0316306001600160a01b031614611df55760405162461bcd60e51b815260040161056790614486565b611e0f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614611e3f5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154611eaa5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3037303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411611f0f5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3037313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260056020908152604080832086845290915290206004810154611f845760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3037323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff166003811115611faa57634e487b7160e01b600052602160045260246000fd5b1480611fd957506002815460ff166003811115611fd757634e487b7160e01b600052602160045260246000fd5b145b61202f5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3037333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b6001815460ff16600381111561205557634e487b7160e01b600052602160045260246000fd5b148015612069575080600201548160010154145b8061209757506002815460ff16600381111561209557634e487b7160e01b600052602160045260246000fd5b145b6120f35760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3037343a434c41494d5f574954485f554e504149445f6044820152665041594f55545360c81b6064820152608401610567565b805460ff19166003178155426005820155600482018054906000612116836146a1565b909155505042600883015560408051868152602081018690527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016113ac565b60066020908152600092835260408084209091529082529020805460018201546002830154600384018054939460ff90931693919291611084906146b8565b6005602090815260009283526040808420909152908252902080546001820154600283015460038401805460ff909416949293919291611084906146b8565b600065506f6c69637960d01b6121ea81613e6b565b6001600160a01b0316306001600160a01b03161461221a5760405162461bcd60e51b815260040161056790614486565b6122346d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146122645760405162461bcd60e51b8152600401610567906144bd565b6001600160a01b0386166122ba5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a504f4c2d3030313a494e56414c49445f4f574e455200000000006044820152606401610567565b600954604051630e48080360e21b8152600481018790526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122fe57600080fd5b505afa158015612312573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233691906141d4565b6123825760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3030323a494e56414c49445f50524f445543540000006044820152606401610567565b600954604051635e966e4560e01b8152600481018790526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156123c757600080fd5b505afa1580156123db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ff91906142f0565b600681111561241e57634e487b7160e01b600052602160045260246000fd5b1461246b5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030333a50524f445543545f4e4f545f4143544956456044820152606401610567565b612473613f53565b6000818152600260205260409020600481015491935090156124e55760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3030343a4d455441444154415f414c52454144595f45604482015264584953545360d81b6064820152608401610567565b80546001600160a01b0319166001600160a01b0388161781556001810186905560028101805460ff1916905561251f60038201868661405b565b50426004820181905560058201556040517f19c55cd86637a14907bc12064e09bf8dce1ecda9e5d96cae81099f4b8ae1d3c99061256490899086908a9060009061436e565b60405180910390a15050949350505050565b6125c6604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008281526004602052604090819020815161012081019092528054829060ff16600281111561260657634e487b7160e01b600052602160045260246000fd5b600281111561262557634e487b7160e01b600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481525050905060008160e00151116126db5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130323a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b919050565b6127196040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600082815260026020818152604092839020835160c08101855281546001600160a01b0316815260018201549281019290925280830154919390929084019160ff169081111561277957634e487b7160e01b600052602160045260246000fd5b600281111561279857634e487b7160e01b600052602160045260246000fd5b81526020016003820180546127ac906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546127d8906146b8565b80156128255780601f106127fa57610100808354040283529160200191612825565b820191906000526020600020905b81548152906001019060200180831161280857829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3130303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b65506f6c69637960d01b6128b981613e6b565b6001600160a01b0316306001600160a01b0316146128e95760405162461bcd60e51b815260040161056790614486565b6129036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146129335760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546129a05760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3033303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b60008381526004602052604090206007810154612a0b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3033313a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6001815460ff166002811115612a3157634e487b7160e01b600052602160045260246000fd5b14612a895760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3033323a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610567565b600481015415612ae75760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3033333a504f4c4943595f4841535f4f50454e5f434c60448201526341494d5360e01b6064820152608401610567565b8054600260ff19918216811783554260088401819055848201805490931690911791829055600584015560405160008051602061477383398151915291612b3391879160ff16906143f1565b60405180910390a16040518481527f47682aa751cfef9683dc926c2e0547bf1f6345215278ea52b866564017ac9b9c90602001610798565b6000612b7682612576565b6060015192915050565b612bba6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600082815260036020819052604091829020825160c0810190935280549091839160ff1690811115612bfc57634e487b7160e01b600052602160045260246000fd5b6003811115612c1b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054612c43906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612c6f906146b8565b8015612cbc5780601f10612c9157610100808354040283529160200191612cbc565b820191906000526020600020905b815481529060010190602001808311612c9f57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3130313a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b600054610100900460ff1615808015612d605750600054600160ff909116105b80612d7a5750303b158015612d7a575060005460ff166001145b612ddd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610567565b6000805460ff191660011790558015612e00576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055612e2a600090565b6541636365737360d01b14612e6c57612e4b6541636365737360d01b613e6b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b612e74613fb9565b8015612eba576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b612ef86040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6000838152600660209081526040808320858452825291829020825160c0810190935280548352600180820154919284019160ff1690811115612f4b57634e487b7160e01b600052602160045260246000fd5b6001811115612f6a57634e487b7160e01b600052602160045260246000fd5b815260200160028201548152602001600382018054612f88906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612fb4906146b8565b80156130015780601f10612fd657610100808354040283529160200191613001565b820191906000526020600020905b815481529060010190602001808311612fe457829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130343a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600065506f6c69637960d01b61309581613e6b565b6001600160a01b0316306001600160a01b0316146130c55760405162461bcd60e51b815260040161056790614486565b6130df6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461310f5760405162461bcd60e51b8152600401610567906144bd565b6000878152600460205260409020600781015461317a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008881526005602090815260408083208a8452909152902060048101546131ef5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3038313a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff16600381111561321557634e487b7160e01b600052602160045260246000fd5b1461326c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3038323a434c41494d5f4e4f545f434f4e4649524d456044820152601160fa1b6064820152608401610567565b600087116132cd5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3038333a5041594f55545f414d4f554e545f5a45524f60448201526717d253959053125160c21b6064820152608401610567565b80600101548782600201546132e29190614672565b111561333c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038343a5041594f55545f414d4f554e545f544f4f5f60448201526242494760e81b6064820152608401610567565b60008981526007602090815260408083205460068352818420818552909252909120600481015491955090156133c05760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038353a5041594f55545f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b888155600281018890556133d860038201888861405b565b5060018101805460ff191690554260048201819055600582015560008a815260076020526040812080549161340c836146f3565b9091555050426008840155604080518b8152602081018b9052908101869052606081018990527f223e38f266bc310bbf02cc4e1bb6c706af5c7f9710b3edfe17a12f09e44e84a79060800160405180910390a15050505095945050505050565b600082815260046020526040902060078101546134d75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3131303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b80600101548282600201546134ec9190614672565b111561353a5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a504f432d3131313a414d4f554e545f544f4f5f424947000000006044820152606401610567565b8181600201600082825461354e9190614672565b909155505042600882015560408051848152602081018490527f9bb11018b2a92c286be2bb51bd0ed127dadef34cddc2b557270d0f81873e00569101610d3d565b65506f6c69637960d01b6135a281613e6b565b6001600160a01b0316306001600160a01b0316146135d25760405162461bcd60e51b815260040161056790614486565b6135ec6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461361c5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546136895760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031343a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546136f95760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031353a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561371f57634e487b7160e01b600052602160045260246000fd5b1461377c5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031363a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff199081166001178255426005808401829055600285810180549094161792839055840155604051600080516020614773833981519152916137c691879160ff16906143f1565b60405180910390a16040518481527fbf8b120fb15c8c02daac643f4b8d8542610c41f75bda1d3efcc3f7017c9389fc90602001610798565b600065506f6c69637960d01b61381381613e6b565b6001600160a01b0316306001600160a01b0316146138435760405162461bcd60e51b815260040161056790614486565b61385d6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461388d5760405162461bcd60e51b8152600401610567906144bd565b600086815260046020526040902060078101546138f85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3034303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff16600281111561391e57634e487b7160e01b600052602160045260246000fd5b1461396b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a504f432d3034313a504f4c4943595f4e4f545f414354495645006044820152606401610567565b80600501548682600601546139809190614672565b11156139e45760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a504f432d3034323a434c41494d5f414d4f554e545f455843454560448201526c1114d7d3505617d4105653d555609a1b6064820152608401610567565b60038101546000888152600560209081526040808320848452909152902060048101549194509015613a635760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3034333a434c41494d5f414c52454144595f45584953604482015261545360f01b6064820152608401610567565b805460ff1916815560018101879055613a8060038201878761405b565b5042600482018190556005820155600382018054906000613aa0836146f3565b9091555050600482018054906000613ab7836146f3565b909155505042600883015560408051898152602081018690529081018890527f66d0839d281a46de5ca92181ef89787fbf266333fbd1076c0728149b3a5600fa9060600160405180910390a1505050949350505050565b65506f6c69637960d01b613b2181613e6b565b6001600160a01b0316306001600160a01b031614613b515760405162461bcd60e51b815260040161056790614486565b613b6b6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614613b9b5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154613c065760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411613c6b5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3039313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260066020908152604080832086845290915290206004810154613ce15760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039323a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600060018083015460ff1690811115613d0a57634e487b7160e01b600052602160045260246000fd5b14613d635760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3039333a5041594f55545f414c52454144595f5041496044820152631113d55560e21b6064820152608401610567565b6001818101805460ff1916909117905542600582015560408051868152602081018690527f97a4f1df9bfee1535200a1be1da2c502aec16bda67fdaded9c127eaec704b71f910160405180910390a16000858152600560209081526040808320845484529091528120600280840154908201805492939192909190613de9908490614672565b9091555050426005820155600281015460018201541415610b7d57805460ff1916600317815560048301805460019190600090613e2790849061468a565b909155505042600884015581546040805188815260208101929092527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016116f2565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015613eb557600080fd5b505afa158015613ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eed919061415e565b90506001600160a01b0381166126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610567565b6008805460009182613f64836146f3565b9091555050600054600854604080514660208201526201000090930460601b6bffffffffffffffffffffffff191690830152605482015260740160405160208183030381529060405280519060200120905090565b600054610100900460ff166140245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610567565b6140396810dbdb5c1bdb995b9d60ba1b613e6b565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b828054614067906146b8565b90600052602060002090601f01602090048101928261408957600085556140cf565b82601f106140a25782800160ff198235161785556140cf565b828001600101855582156140cf579182015b828111156140cf5782358255916020019190600101906140b4565b506140db9291506140df565b5090565b5b808211156140db57600081556001016140e0565b60008083601f840112614105578182fd5b50813567ffffffffffffffff81111561411c578182fd5b60208301915083602082850101111561413457600080fd5b9250929050565b60006020828403121561414c578081fd5b81356141578161475d565b9392505050565b60006020828403121561416f578081fd5b81516141578161475d565b6000806000806060858703121561418f578283fd5b843561419a8161475d565b935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b6141c8878288016140f4565b95989497509550505050565b6000602082840312156141e5578081fd5b81518015158114614157578182fd5b600060208284031215614205578081fd5b5035919050565b6000806040838503121561421e578182fd5b50508035926020909101359150565b60008060008060608587031215614242578384fd5b8435935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b60008060006060848603121561427a578283fd5b505081359360208301359350604090920135919050565b6000806000806000608086880312156142a8578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8111156142d3578182fd5b6142df888289016140f4565b969995985093965092949392505050565b600060208284031215614301578081fd5b815160078110614157578182fd5b60008151808452815b8181101561433457602081850181015186830182015201614318565b818111156143455782602083870101525b50601f01601f19169290920160200192915050565b6002811061436a5761436a614724565b9052565b6001600160a01b03851681526020810184905260408101839052608081016143958361474d565b82606083015295945050505050565b6001600160a01b03871681526020810186905260006143c28661474d565b85604083015260c060608301526143dc60c083018661430f565b60808301949094525060a00152949350505050565b828152604081016144018361474d565b8260208301529392505050565b60006144198861473a565b87825286602083015285604083015260c060608301526143dc60c083018661430f565b610120810161444a8b61474d565b998152602081019890985260408801969096526060870194909452608086019290925260a085015260c084015260e08301526101009091015290565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825161450f8161473a565b806020840152506020830151604083015260408301516060830152606083015160c0608084015261454360e084018261430f565b9050608084015160a084015260a084015160c08401528091505092915050565b60006020825260018060a01b0383511660208301526020830151604083015260408301516145908161474d565b80606084015250606083015160c0608084015261454360e084018261430f565b6000602082528251602083015260208301516145cf604084018261435a565b5060408301516060830152606083015160c0608084015261454360e084018261430f565b81516101208201906146048161474d565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b60008782526143c2602083018861435a565b600082198211156146855761468561470e565b500190565b60008282101561469c5761469c61470e565b500390565b6000816146b0576146b061470e565b506000190190565b6002810460018216806146cc57607f821691505b602082108114156146ed57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156147075761470761470e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6004811061474a5761474a614724565b50565b6003811061474a5761474a614724565b6001600160a01b038116811461474a57600080fdfe532394c6ec703c4ecf5944bc8f02b410433362f9bdc2f25cd1d7fe45e7edfc59a2646970667358221220aab73debb705ab2b89e919dd01382f96a906dc6199287419144898b6aa0d558764736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c8063a1814a1a1161010f578063c4d66de8116100a2578063e3ebdea511610071578063e3ebdea5146104d8578063eb96cbed146104eb578063ec935668146104fe578063fe64372b14610511576101e5565b8063c4d66de814610420578063cef58f1314610433578063db42b77b14610453578063ddbfd8ef14610466576101e5565b8063adcadb28116100de578063adcadb28146103c7578063b1e25988146103da578063bc506f64146103ed578063be183b1114610400576101e5565b8063a1814a1a1461036c578063a3f685f91461037f578063a427056e1461039f578063a5961b4c146103a7576101e5565b80634e02c63f116101875780637f22c2d9116101565780637f22c2d9146103015780637f29dba21461032157806380f2122c146103345780639e81f96a14610359576101e5565b80634e02c63f146102a35780635c955288146102b65780636780336e146102c95780637122ba06146102dc576101e5565b806347e3b138116101c357806347e3b138146102455780634c14ccc2146102585780634cafa1211461026b5780634cda0de914610290576101e5565b8063296d6c7d146101ea57806330a73da5146101ff578063357f030a14610212575b600080fd5b6101fd6101f83660046141f4565b610524565b005b6101fd61020d366004614266565b6107a6565b6102326102203660046141f4565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b6101fd6102533660046141f4565b610b85565b6101fd6102663660046141f4565b610d4a565b61027e6102793660046141f4565b61104f565b60405161023c9695949392919061440e565b6101fd61029e36600461420c565b611113565b6101fd6102b1366004614266565b6113bb565b6101fd6102c43660046141f4565b611702565b6101fd6102d7366004614291565b6118c3565b6102ef6102ea3660046141f4565b611bac565b60405161023c969594939291906143a4565b61031461030f36600461420c565b611bea565b60405161023c91906144fe565b6101fd61032f36600461420c565b611db2565b61034761034236600461420c565b612157565b60405161023c96959493929190614660565b61027e61036736600461420c565b612196565b61023261037a36600461417a565b6121d5565b61039261038d3660046141f4565b612576565b60405161023c91906145f3565b600854610232565b6103ba6103b53660046141f4565b6126e0565b60405161023c9190614563565b6101fd6103d53660046141f4565b6128a6565b6102326103e83660046141f4565b612b6b565b6103146103fb3660046141f4565b612b80565b61023261040e3660046141f4565b60009081526007602052604090205490565b6101fd61042e36600461413b565b612d40565b61044661044136600461420c565b612ebe565b60405161023c91906145b0565b610232610461366004614291565b613080565b6104c36104743660046141f4565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460089097015460ff90961697949693959293919290919089565b60405161023c9998979695949392919061443c565b6101fd6104e636600461420c565b61346c565b6101fd6104f93660046141f4565b61358f565b61023261050c36600461422d565b6137fe565b6101fd61051f36600461420c565b613b0e565b65506f6c69637960d01b61053781613e6b565b6001600160a01b0316306001600160a01b0316146105705760405162461bcd60e51b815260040161056790614486565b60405180910390fd5b61058a6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146105ba5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546106275760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031393a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546106975760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032303a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff1660038111156106bd57634e487b7160e01b600052602160045260246000fd5b1461071a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032313a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff1990811660031782554260058084018290556002858101805490941617928390558401556040516000805160206147738339815191529161076491879160ff16906143f1565b60405180910390a16040518481527fd38021ec2bcd4d63a80341a60be320a74cd71c01b04a4f7aac74ef6593d8e5e3906020015b60405180910390a150505050565b65506f6c69637960d01b6107b981613e6b565b6001600160a01b0316306001600160a01b0316146107e95760405162461bcd60e51b815260040161056790614486565b6108036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146108335760405162461bcd60e51b8152600401610567906144bd565b600084815260036020526040902060048101541580159061087757506002815460ff16600381111561087557634e487b7160e01b600052602160045260246000fd5b145b6108d45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032343a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b80600201548311156109475760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f432d3032363a4150504c49434154494f4e5f53554d5f494e60448201527514d554915117d25390d4915054d157d253959053125160521b6064820152608401610567565b600085815260046020526040902060078101541580159061098b57506000815460ff16600281111561098957634e487b7160e01b600052602160045260246000fd5b145b6109e35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032373a504f4c4943595f4143434553535f494e564160448201526213125160ea1b6064820152608401610567565b6000851180156109f7575080600201548510155b8015610a0257508385105b610a605760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f432d3032353a4150504c49434154494f4e5f5052454d49556044820152681357d253959053125160ba1b6064820152608401610567565b81600201548414610acc57600282015460408051888152602081019290925281018590527fa749e55ffd0f07193966d7c449d6238c6514c6b3eb5e8ab21b3ea9d94a5c21789060600160405180910390a160028201849055426005808401829055820185905560088201555b81600101548514610b7d57600182015460408051888152602081019290925281018690527f23e948a9dc44669750ea8ea8b7ca46c359534bd0f04e9260408a7e9bf8c7a5569060600160405180910390a1600182810186905542600584015581015460408051888152602081019290925281018690527ff392e5df923d5d0b6d6c6301c53c86e1c75f58c1c637200c3193dd589e5c8a019060600160405180910390a1600181018590554260088201555b505050505050565b65506f6c69637960d01b610b9881613e6b565b6001600160a01b0316306001600160a01b031614610bc85760405162461bcd60e51b815260040161056790614486565b610be26d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610c125760405162461bcd60e51b8152600401610567906144bd565b60008281526004602052604090206007810154610c7d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032383a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff166002811115610ca357634e487b7160e01b600052602160045260246000fd5b14610d005760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032393a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660011781554260088201556040518381527ff1950800da95964fdd42242722ccdfe6d9dc13d5d4dc7eafefeab77373e3c9ec906020015b60405180910390a1505050565b65506f6c69637960d01b610d5d81613e6b565b6001600160a01b0316306001600160a01b031614610d8d5760405162461bcd60e51b815260040161056790614486565b610da76d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610dd75760405162461bcd60e51b8152600401610567906144bd565b6000828152600360208190526040808320815160c08101909252805491929091839160ff90911690811115610e1c57634e487b7160e01b600052602160045260246000fd5b6003811115610e3b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054610e63906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8f906146b8565b8015610edc5780601f10610eb157610100808354040283529160200191610edc565b820191906000526020600020905b815481529060010190602001808311610ebf57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151118015610f2f5750600281516003811115610f2d57634e487b7160e01b600052602160045260246000fd5b145b610f8c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032323a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b6000838152600460205260409020600781015415610ff85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032333a504f4c4943595f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b805460ff191681556020828101516001830155604080840151600584015542600784018190556008840155518581527f0b979eae60510a4a065f45ddd8a0c9af7ba4d241e253b17bdee3043c2fb992e99101610798565b6003602081905260009182526040909120805460018201546002830154938301805460ff9093169491939192611084906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546110b0906146b8565b80156110fd5780601f106110d2576101008083540402835291602001916110fd565b820191906000526020600020905b8154815290600101906020018083116110e057829003601f168201915b5050505050908060040154908060050154905086565b65506f6c69637960d01b61112681613e6b565b6001600160a01b0316306001600160a01b0316146111565760405162461bcd60e51b815260040161056790614486565b6111706d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146111a05760405162461bcd60e51b8152600401610567906144bd565b6000838152600460205260409020600781015461120b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3036303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116112705760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3036313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b6000848152600560209081526040808320868452909152902060048101546112e55760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3036323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561130b57634e487b7160e01b600052602160045260246000fd5b146113625760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3036333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff191660021781554260058201819055600883015560408051868152602081018690527f5ea526dbb5ca484c7716dcc966fdfc289530cc595ebc9ec7bfda25d010d1a2fc91015b60405180910390a15050505050565b65506f6c69637960d01b6113ce81613e6b565b6001600160a01b0316306001600160a01b0316146113fe5760405162461bcd60e51b815260040161056790614486565b6114186d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146114485760405162461bcd60e51b8152600401610567906144bd565b600084815260046020526040902060078101546114b35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3035303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116115185760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b806005015483826006015461152d9190614672565b111561158c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035323a5041594f55545f4d41585f414d4f554e545f604482015267115610d15151115160c21b6064820152608401610567565b6000858152600560209081526040808320878452909152902060048101546116015760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3035333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561162757634e487b7160e01b600052602160045260246000fd5b1461167e5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3035343a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff19166001908117825581018490554260058201556006820180548591906000906116ad908490614672565b909155505042600883015560408051878152602081018790529081018590527fa39b09b76ccf7db94096e2c5a058215f9b2302b85de726e37edb99efdb6fb2c6906060015b60405180910390a1505050505050565b65506f6c69637960d01b61171581613e6b565b6001600160a01b0316306001600160a01b0316146117455760405162461bcd60e51b815260040161056790614486565b61175f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461178f5760405162461bcd60e51b8152600401610567906144bd565b600082815260036020526040902060048101546117ff5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031373a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561182557634e487b7160e01b600052602160045260246000fd5b146118825760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031383a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660021781554260058201556040518381527f67f56ed3a623b73566d40f65cba052fc97ca9df8afb800a885c2a4fe0228c1f890602001610d3d565b65506f6c69637960d01b6118d681613e6b565b6001600160a01b0316306001600160a01b0316146119065760405162461bcd60e51b815260040161056790614486565b6119206d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146119505760405162461bcd60e51b8152600401610567906144bd565b600086815260026020526040902060048101546119bd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b6000878152600360205260409020600481015415611a2e5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031313a4150504c49434154494f4e5f414c52454144604482015267595f45584953545360c01b6064820152608401610567565b60008711611a885760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3031323a5052454d49554d5f414d4f554e545f5a45526044820152604f60f81b6064820152608401610567565b868611611aea5760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a504f432d3031333a53554d5f494e53555245445f414d4f554e5460448201526917d513d3d7d4d350531360b21b6064820152608401610567565b805460ff191681556001810187905560028101869055611b0e60038201868661405b565b504260048201819055600580830182905560028401805460ff1916600117908190559084019190915560405160008051602061477383398151915291611b59918b9160ff16906143f1565b60405180910390a160408051898152602081018990529081018790527f71b9122c9f32160952b44f0e76b53474f59a5cd9b98ccdfb5ff20672fcae34129060600160405180910390a15050505050505050565b600260208190526000918252604090912080546001820154928201546003830180546001600160a01b03909316949360ff90921692611084906146b8565b611c246040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600083815260056020908152604080832085845290915290819020815160c081019092528054829060ff166003811115611c6e57634e487b7160e01b600052602160045260246000fd5b6003811115611c8d57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054611cb5906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce1906146b8565b8015611d2e5780601f10611d0357610100808354040283529160200191611d2e565b820191906000526020600020905b815481529060010190602001808311611d1157829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3130333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b92915050565b65506f6c69637960d01b611dc581613e6b565b6001600160a01b0316306001600160a01b031614611df55760405162461bcd60e51b815260040161056790614486565b611e0f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614611e3f5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154611eaa5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3037303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411611f0f5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3037313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260056020908152604080832086845290915290206004810154611f845760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3037323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff166003811115611faa57634e487b7160e01b600052602160045260246000fd5b1480611fd957506002815460ff166003811115611fd757634e487b7160e01b600052602160045260246000fd5b145b61202f5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3037333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b6001815460ff16600381111561205557634e487b7160e01b600052602160045260246000fd5b148015612069575080600201548160010154145b8061209757506002815460ff16600381111561209557634e487b7160e01b600052602160045260246000fd5b145b6120f35760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3037343a434c41494d5f574954485f554e504149445f6044820152665041594f55545360c81b6064820152608401610567565b805460ff19166003178155426005820155600482018054906000612116836146a1565b909155505042600883015560408051868152602081018690527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016113ac565b60066020908152600092835260408084209091529082529020805460018201546002830154600384018054939460ff90931693919291611084906146b8565b6005602090815260009283526040808420909152908252902080546001820154600283015460038401805460ff909416949293919291611084906146b8565b600065506f6c69637960d01b6121ea81613e6b565b6001600160a01b0316306001600160a01b03161461221a5760405162461bcd60e51b815260040161056790614486565b6122346d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146122645760405162461bcd60e51b8152600401610567906144bd565b6001600160a01b0386166122ba5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a504f4c2d3030313a494e56414c49445f4f574e455200000000006044820152606401610567565b600954604051630e48080360e21b8152600481018790526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122fe57600080fd5b505afa158015612312573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233691906141d4565b6123825760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3030323a494e56414c49445f50524f445543540000006044820152606401610567565b600954604051635e966e4560e01b8152600481018790526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156123c757600080fd5b505afa1580156123db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ff91906142f0565b600681111561241e57634e487b7160e01b600052602160045260246000fd5b1461246b5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030333a50524f445543545f4e4f545f4143544956456044820152606401610567565b612473613f53565b6000818152600260205260409020600481015491935090156124e55760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3030343a4d455441444154415f414c52454144595f45604482015264584953545360d81b6064820152608401610567565b80546001600160a01b0319166001600160a01b0388161781556001810186905560028101805460ff1916905561251f60038201868661405b565b50426004820181905560058201556040517f19c55cd86637a14907bc12064e09bf8dce1ecda9e5d96cae81099f4b8ae1d3c99061256490899086908a9060009061436e565b60405180910390a15050949350505050565b6125c6604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008281526004602052604090819020815161012081019092528054829060ff16600281111561260657634e487b7160e01b600052602160045260246000fd5b600281111561262557634e487b7160e01b600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481525050905060008160e00151116126db5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130323a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b919050565b6127196040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600082815260026020818152604092839020835160c08101855281546001600160a01b0316815260018201549281019290925280830154919390929084019160ff169081111561277957634e487b7160e01b600052602160045260246000fd5b600281111561279857634e487b7160e01b600052602160045260246000fd5b81526020016003820180546127ac906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546127d8906146b8565b80156128255780601f106127fa57610100808354040283529160200191612825565b820191906000526020600020905b81548152906001019060200180831161280857829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3130303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b65506f6c69637960d01b6128b981613e6b565b6001600160a01b0316306001600160a01b0316146128e95760405162461bcd60e51b815260040161056790614486565b6129036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146129335760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546129a05760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3033303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b60008381526004602052604090206007810154612a0b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3033313a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6001815460ff166002811115612a3157634e487b7160e01b600052602160045260246000fd5b14612a895760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3033323a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610567565b600481015415612ae75760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3033333a504f4c4943595f4841535f4f50454e5f434c60448201526341494d5360e01b6064820152608401610567565b8054600260ff19918216811783554260088401819055848201805490931690911791829055600584015560405160008051602061477383398151915291612b3391879160ff16906143f1565b60405180910390a16040518481527f47682aa751cfef9683dc926c2e0547bf1f6345215278ea52b866564017ac9b9c90602001610798565b6000612b7682612576565b6060015192915050565b612bba6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600082815260036020819052604091829020825160c0810190935280549091839160ff1690811115612bfc57634e487b7160e01b600052602160045260246000fd5b6003811115612c1b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054612c43906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612c6f906146b8565b8015612cbc5780601f10612c9157610100808354040283529160200191612cbc565b820191906000526020600020905b815481529060010190602001808311612c9f57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3130313a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b600054610100900460ff1615808015612d605750600054600160ff909116105b80612d7a5750303b158015612d7a575060005460ff166001145b612ddd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610567565b6000805460ff191660011790558015612e00576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055612e2a600090565b6541636365737360d01b14612e6c57612e4b6541636365737360d01b613e6b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b612e74613fb9565b8015612eba576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b612ef86040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6000838152600660209081526040808320858452825291829020825160c0810190935280548352600180820154919284019160ff1690811115612f4b57634e487b7160e01b600052602160045260246000fd5b6001811115612f6a57634e487b7160e01b600052602160045260246000fd5b815260200160028201548152602001600382018054612f88906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612fb4906146b8565b80156130015780601f10612fd657610100808354040283529160200191613001565b820191906000526020600020905b815481529060010190602001808311612fe457829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130343a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600065506f6c69637960d01b61309581613e6b565b6001600160a01b0316306001600160a01b0316146130c55760405162461bcd60e51b815260040161056790614486565b6130df6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461310f5760405162461bcd60e51b8152600401610567906144bd565b6000878152600460205260409020600781015461317a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008881526005602090815260408083208a8452909152902060048101546131ef5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3038313a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff16600381111561321557634e487b7160e01b600052602160045260246000fd5b1461326c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3038323a434c41494d5f4e4f545f434f4e4649524d456044820152601160fa1b6064820152608401610567565b600087116132cd5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3038333a5041594f55545f414d4f554e545f5a45524f60448201526717d253959053125160c21b6064820152608401610567565b80600101548782600201546132e29190614672565b111561333c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038343a5041594f55545f414d4f554e545f544f4f5f60448201526242494760e81b6064820152608401610567565b60008981526007602090815260408083205460068352818420818552909252909120600481015491955090156133c05760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038353a5041594f55545f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b888155600281018890556133d860038201888861405b565b5060018101805460ff191690554260048201819055600582015560008a815260076020526040812080549161340c836146f3565b9091555050426008840155604080518b8152602081018b9052908101869052606081018990527f223e38f266bc310bbf02cc4e1bb6c706af5c7f9710b3edfe17a12f09e44e84a79060800160405180910390a15050505095945050505050565b600082815260046020526040902060078101546134d75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3131303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b80600101548282600201546134ec9190614672565b111561353a5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a504f432d3131313a414d4f554e545f544f4f5f424947000000006044820152606401610567565b8181600201600082825461354e9190614672565b909155505042600882015560408051848152602081018490527f9bb11018b2a92c286be2bb51bd0ed127dadef34cddc2b557270d0f81873e00569101610d3d565b65506f6c69637960d01b6135a281613e6b565b6001600160a01b0316306001600160a01b0316146135d25760405162461bcd60e51b815260040161056790614486565b6135ec6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461361c5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546136895760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031343a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546136f95760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031353a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561371f57634e487b7160e01b600052602160045260246000fd5b1461377c5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031363a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff199081166001178255426005808401829055600285810180549094161792839055840155604051600080516020614773833981519152916137c691879160ff16906143f1565b60405180910390a16040518481527fbf8b120fb15c8c02daac643f4b8d8542610c41f75bda1d3efcc3f7017c9389fc90602001610798565b600065506f6c69637960d01b61381381613e6b565b6001600160a01b0316306001600160a01b0316146138435760405162461bcd60e51b815260040161056790614486565b61385d6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461388d5760405162461bcd60e51b8152600401610567906144bd565b600086815260046020526040902060078101546138f85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3034303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff16600281111561391e57634e487b7160e01b600052602160045260246000fd5b1461396b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a504f432d3034313a504f4c4943595f4e4f545f414354495645006044820152606401610567565b80600501548682600601546139809190614672565b11156139e45760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a504f432d3034323a434c41494d5f414d4f554e545f455843454560448201526c1114d7d3505617d4105653d555609a1b6064820152608401610567565b60038101546000888152600560209081526040808320848452909152902060048101549194509015613a635760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3034333a434c41494d5f414c52454144595f45584953604482015261545360f01b6064820152608401610567565b805460ff1916815560018101879055613a8060038201878761405b565b5042600482018190556005820155600382018054906000613aa0836146f3565b9091555050600482018054906000613ab7836146f3565b909155505042600883015560408051898152602081018690529081018890527f66d0839d281a46de5ca92181ef89787fbf266333fbd1076c0728149b3a5600fa9060600160405180910390a1505050949350505050565b65506f6c69637960d01b613b2181613e6b565b6001600160a01b0316306001600160a01b031614613b515760405162461bcd60e51b815260040161056790614486565b613b6b6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614613b9b5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154613c065760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411613c6b5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3039313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260066020908152604080832086845290915290206004810154613ce15760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039323a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600060018083015460ff1690811115613d0a57634e487b7160e01b600052602160045260246000fd5b14613d635760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3039333a5041594f55545f414c52454144595f5041496044820152631113d55560e21b6064820152608401610567565b6001818101805460ff1916909117905542600582015560408051868152602081018690527f97a4f1df9bfee1535200a1be1da2c502aec16bda67fdaded9c127eaec704b71f910160405180910390a16000858152600560209081526040808320845484529091528120600280840154908201805492939192909190613de9908490614672565b9091555050426005820155600281015460018201541415610b7d57805460ff1916600317815560048301805460019190600090613e2790849061468a565b909155505042600884015581546040805188815260208101929092527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016116f2565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015613eb557600080fd5b505afa158015613ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eed919061415e565b90506001600160a01b0381166126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610567565b6008805460009182613f64836146f3565b9091555050600054600854604080514660208201526201000090930460601b6bffffffffffffffffffffffff191690830152605482015260740160405160208183030381529060405280519060200120905090565b600054610100900460ff166140245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610567565b6140396810dbdb5c1bdb995b9d60ba1b613e6b565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b828054614067906146b8565b90600052602060002090601f01602090048101928261408957600085556140cf565b82601f106140a25782800160ff198235161785556140cf565b828001600101855582156140cf579182015b828111156140cf5782358255916020019190600101906140b4565b506140db9291506140df565b5090565b5b808211156140db57600081556001016140e0565b60008083601f840112614105578182fd5b50813567ffffffffffffffff81111561411c578182fd5b60208301915083602082850101111561413457600080fd5b9250929050565b60006020828403121561414c578081fd5b81356141578161475d565b9392505050565b60006020828403121561416f578081fd5b81516141578161475d565b6000806000806060858703121561418f578283fd5b843561419a8161475d565b935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b6141c8878288016140f4565b95989497509550505050565b6000602082840312156141e5578081fd5b81518015158114614157578182fd5b600060208284031215614205578081fd5b5035919050565b6000806040838503121561421e578182fd5b50508035926020909101359150565b60008060008060608587031215614242578384fd5b8435935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b60008060006060848603121561427a578283fd5b505081359360208301359350604090920135919050565b6000806000806000608086880312156142a8578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8111156142d3578182fd5b6142df888289016140f4565b969995985093965092949392505050565b600060208284031215614301578081fd5b815160078110614157578182fd5b60008151808452815b8181101561433457602081850181015186830182015201614318565b818111156143455782602083870101525b50601f01601f19169290920160200192915050565b6002811061436a5761436a614724565b9052565b6001600160a01b03851681526020810184905260408101839052608081016143958361474d565b82606083015295945050505050565b6001600160a01b03871681526020810186905260006143c28661474d565b85604083015260c060608301526143dc60c083018661430f565b60808301949094525060a00152949350505050565b828152604081016144018361474d565b8260208301529392505050565b60006144198861473a565b87825286602083015285604083015260c060608301526143dc60c083018661430f565b610120810161444a8b61474d565b998152602081019890985260408801969096526060870194909452608086019290925260a085015260c084015260e08301526101009091015290565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825161450f8161473a565b806020840152506020830151604083015260408301516060830152606083015160c0608084015261454360e084018261430f565b9050608084015160a084015260a084015160c08401528091505092915050565b60006020825260018060a01b0383511660208301526020830151604083015260408301516145908161474d565b80606084015250606083015160c0608084015261454360e084018261430f565b6000602082528251602083015260208301516145cf604084018261435a565b5060408301516060830152606083015160c0608084015261454360e084018261430f565b81516101208201906146048161474d565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b60008782526143c2602083018861435a565b600082198211156146855761468561470e565b500190565b60008282101561469c5761469c61470e565b500390565b6000816146b0576146b061470e565b506000190190565b6002810460018216806146cc57607f821691505b602082108114156146ed57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156147075761470761470e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6004811061474a5761474a614724565b50565b6003811061474a5761474a614724565b6001600160a01b038116811461474a57600080fdfe532394c6ec703c4ecf5944bc8f02b410433362f9bdc2f25cd1d7fe45e7edfc59a2646970667358221220aab73debb705ab2b89e919dd01382f96a906dc6199287419144898b6aa0d558764736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/modules/PoolController.sol/PoolController.dbg.json b/artifacts/contracts/modules/PoolController.sol/PoolController.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/modules/PoolController.sol/PoolController.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/modules/PoolController.sol/PoolController.json b/artifacts/contracts/modules/PoolController.sol/PoolController.json new file mode 100644 index 00000000..f633fb35 --- /dev/null +++ b/artifacts/contracts/modules/PoolController.sol/PoolController.json @@ -0,0 +1,629 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "PoolController", + "sourceName": "contracts/modules/PoolController.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolCollateralReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolCollateralizationFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolCollateralizationSucceeded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "wallet", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "erc20Token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralizationLevel", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumOfSumInsuredCap", + "type": "uint256" + } + ], + "name": "LogRiskpoolRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "sumInsured", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateral", + "type": "uint256" + } + ], + "name": "LogRiskpoolRequiredCollateral", + "type": "event" + }, + { + "inputs": [], + "name": "COLLATERALIZATION_LEVEL_CAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FULL_COLLATERALIZATION_LEVEL", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "activeBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfActiveBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "addBundleIdToActiveSet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "calculateCollateral", + "outputs": [ + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "defund", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "fund", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bundleIdx", + "type": "uint256" + } + ], + "name": "getActiveBundleId", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFullCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getMaximumNumberOfActiveBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + } + ], + "name": "getRiskPoolForProduct", + "outputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getRiskpool", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "wallet", + "type": "address" + }, + { + "internalType": "address", + "name": "erc20Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralizationLevel", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumOfSumInsuredCap", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumOfSumInsuredAtRisk", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPool.Pool", + "name": "riskPool", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "wallet", + "type": "address" + }, + { + "internalType": "address", + "name": "erc20Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralizationLevel", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumOfSumInsuredCap", + "type": "uint256" + } + ], + "name": "registerRiskpool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "release", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "removeBundleIdFromActiveSet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "riskpools", + "outputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxNumberOfActiveBundles", + "type": "uint256" + } + ], + "name": "setMaximumNumberOfActiveBundles", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "setRiskpoolForProduct", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "underwrite", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61304d80620000f46000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063a65e2cfd116100c3578063eb8021141161007c578063eb802114146102ad578063ec833b0c146102cd578063edb5be30146102e0578063f1d354d0146102e8578063f93b3673146102f6578063fe64372b146103095761014d565b8063a65e2cfd14610239578063c397ae391461024c578063c4d66de81461025f578063d229f3b014610272578063d407ba0014610292578063da68771a146102a55761014d565b806367d42a8b1161011557806367d42a8b146101d25780637cdb808d146101e55780637db32844146101f8578063950be8031461020b578063a054381f1461021e578063a4266a66146102265761014d565b806302108268146101525780631b07b17f146101675780632127fd481461018f57806345fe1c6d146101a257806357419e8f146101bf575b600080fd5b610165610160366004612b08565b61031c565b005b61017a610175366004612af0565b610643565b60405190151581526020015b60405180910390f35b61016561019d366004612d4a565b610c1b565b6101b1670de0b6b3a764000081565b604051908152602001610186565b6101656101cd366004612cf9565b610ce3565b6101656101e0366004612af0565b611030565b6101b16101f3366004612d4a565b611401565b6101b1610206366004612af0565b611461565b610165610219366004612d4a565b611476565b6007546101b1565b6101b1610234366004612af0565b61154d565b610165610247366004612d4a565b61156a565b61016561025a366004612d4a565b6116bf565b61016561026d366004612a98565b611819565b6101b1610280366004612af0565b60009081526003602052604090205490565b6101656102a0366004612d4a565b611997565b6101b1611afd565b6102c06102bb366004612af0565b611b13565b6040516101869190612e98565b6101b16102db366004612d4a565b611c78565b6101b1600181565b670de0b6b3a76400006101b1565b610165610304366004612d4a565b611d07565b610165610317366004612b08565b611fa5565b63141bdbdb60e21b61032d8161245e565b6001600160a01b0316306001600160a01b0316146103665760405162461bcd60e51b815260040161035d90612e20565b60405180910390fd5b6103806d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146103b05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156103f957600080fd5b505afa15801561040d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104359190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190612b29565b60068111156104e957634e487b7160e01b600052602160045260246000fd5b146105065760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105879190810190612bf6565b9050600061059482612546565b604051630d8a70f160e21b8152600481018a9052602481018990529091506001600160a01b03821690633629c3c490604401600060405180830381600087803b1580156105e057600080fd5b505af11580156105f4573d6000803e3d6000fd5b505050506020828101516000908152600382526040808220548083526004909352812060088101805491928b9261062c908490612f65565b909155505042600a90910155505050505050505050565b600063141bdbdb60e21b6106568161245e565b6001600160a01b0316306001600160a01b0316146106865760405162461bcd60e51b815260040161035d90612e20565b6106a06d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146106d05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561071957600080fd5b505afa15801561072d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107559190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612b29565b600681111561080957634e487b7160e01b600052602160045260246000fd5b146108265760405162461bcd60e51b815260040161035d90612d5c565b600954604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a79190810190612b48565b90506000815160038111156108cc57634e487b7160e01b600052602160045260246000fd5b146109295760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f4c2d3032303a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b606482015260840161035d565b60095460405163296586d360e21b8152600481018990526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561096e57600080fd5b505afa158015610982573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109aa9190810190612bf6565b602080820151600090815260039091526040808220549085015192935091906109d38383611401565b60008c81526002602090815260409182902083905581518e81529081018590529081018290529091507f893c64de8e253703b31297be336c07a93e39fe8eaa32127e2e6fff090f0aefae9060600160405180910390a160008381526004602052604090206005810154610a47908490612f65565b81600401541015610ab25760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a504f4c2d3032323a5249534b504f4f4c5f53554d5f494e53555260448201526e115117d0d05417d15610d151511151608a1b606482015260840161035d565b6000610abd86612546565b604051631121f7ef60e31b8152600481018f9052602481018590529091506001600160a01b0382169063890fbf7890604401602060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190612ad0565b9b508b15610bc95783826005016000828254610b5d9190612f65565b9250508190555082826007016000828254610b789190612f65565b909155505042600a83015560408051868152602081018f90529081018590527f66a2033a32603d30bde9ec2b858820c3202972f4ee1c8dd2c6e18391b6bfbaeb9060600160405180910390a1610c0b565b60408051868152602081018f90529081018590527fc6e314ad1256dc0c682dc6bb53e940b53f14aa323070798a8423a7f1d965d0599060600160405180910390a15b5050505050505050505050919050565b610c366e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610c665760405162461bcd60e51b815260040161035d90612dde565b60008111610cd15760405162461bcd60e51b815260206004820152603260248201527f4552524f523a504f4c2d3033323a4d41585f4e554d4245525f4f465f41435449604482015271159157d0955391131154d7d253959053125160721b606482015260840161035d565b60009182526005602052604090912055565b610cfe6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610d2e5760405162461bcd60e51b815260040161035d90612dde565b60008581526004602090815260408083206007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018a90556005909352922055600981015415610ddc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030353a5249534b504f4f4c5f414c52454144595f526044820152681151d254d51154915160ba1b606482015260840161035d565b6001600160a01b038516610e3c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3030363a57414c4c45545f414444524553535f5a45526044820152604f60f81b606482015260840161035d565b6001600160a01b038416610e925760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030373a45524332305f414444524553535f5a45524f604482015260640161035d565b610ea5670de0b6b3a76400006002612f9d565b831115610f0b5760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a504f4c2d3030383a434f4c4c41544552414c495a4154494f4e5f60448201526d0d88aac8ad8bea89e9ebe90928e960931b606482015260840161035d565b60008211610f6d5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030393a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b606482015260840161035d565b8581556001810180546001600160a01b038781166001600160a01b031992831681179093556002840180549188169190921681179091556003830185905560048301849055600060058401819055600684018190556007840181905560088401554260098401819055600a84015560408051898152602081019390935282015260608101849052608081018390527f798f4ae5a0a1e2125e89cf9f810639cd05f69896db5bd4f928bd53e6ef3bf8b99060a00160405180910390a1505050505050565b63141bdbdb60e21b6110418161245e565b6001600160a01b0316306001600160a01b0316146110715760405162461bcd60e51b815260040161035d90612e20565b61108b6d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146110bb5760405162461bcd60e51b815260040161035d90612e57565b60095460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111399190612c74565b905060028151600281111561115e57634e487b7160e01b600052602160045260246000fd5b146111b65760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3032353a504f4c4943595f53544154455f494e56414c604482015261125160f21b606482015260840161035d565b60095460405163296586d360e21b8152600481018590526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156111fb57600080fd5b505afa15801561120f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112379190810190612bf6565b9050600061124482612546565b604051636180264360e11b8152600481018790529091506001600160a01b0382169063c3004c8690602401600060405180830381600087803b15801561128957600080fd5b505af115801561129d573d6000803e3d6000fd5b5050600954604051632f141bd960e21b815260048101899052600093506001600160a01b03909116915063bc506f649060240160006040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113249190810190612b48565b6020808501516000908152600382526040808220548083526004845281832060c08a01518c855260029095529183205494955093909261136391612fbc565b9050836040015182600501600082825461137d9190612fbc565b92505081905550808260070160008282546113989190612fbc565b909155505042600a83015560008981526002602090815260408083209290925581518581529081018b90529081018290527f4948a5a8dbd6a1190cb403d7731211af859364368aafe64e104d3f3b07e846cf9060600160405180910390a1505050505050505050565b60008061140d84611b13565b606001519050670de0b6b3a764000081141561142b5782915061145a565b801561145557670de0b6b3a76400006114448483612f9d565b61144e9190612f7d565b915061145a565b600091505b5092915050565b6000818152600560205260409020545b919050565b6114916e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146114c15760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206114d990826125bf565b6115305760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034343a42554e444c455f49445f4e4f545f494e5f53604482015261115560f21b606482015260840161035d565b600082815260066020526040902061154890826125d7565b505050565b6000818152600660205260408120611564906125e3565b92915050565b6115856e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146115b55760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116349190612b29565b600681111561165357634e487b7160e01b600052602160045260246000fd5b146116705760405162461bcd60e51b815260040161035d90612d9d565b600083815260046020526040812060068101805491928592611693908490612f65565b92505081905550828160080160008282546116ae9190612f65565b909155505042600a90910155505050565b6116da6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b03161461170a5760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561175157600080fd5b505afa158015611765573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117899190612b29565b60068111156117a857634e487b7160e01b600052602160045260246000fd5b146117c55760405162461bcd60e51b815260040161035d90612d9d565b6000838152600460205260409020600681015483116117fd57828160060160008282546117f29190612fbc565b909155506118059050565b600060068201555b828160080160008282546116ae9190612fbc565b600054610100900460ff16158080156118395750600054600160ff909116105b806118535750303b158015611853575060005460ff166001145b6118b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161035d565b6000805460ff1916600117905580156118d9576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611903600090565b6541636365737360d01b14611945576119246541636365737360d01b61245e565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61194d6125ed565b8015611993576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6119b26e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146119e25760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206119fa90826125bf565b15611a565760405162461bcd60e51b815260206004820152602660248201527f4552524f523a504f4c2d3034323a42554e444c455f49445f414c52454144595f604482015265125397d4d15560d21b606482015260840161035d565b6000828152600560209081526040808320546006909252909120611a79906125e3565b10611ae55760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f4c2d3034333a4d4158494d554d5f4e554d4245525f4f465f6044820152751050d512559157d0955391131154d7d4915050d2115160521b606482015260840161035d565b600082815260066020526040902061154890826126f3565b611b10670de0b6b3a76400006002612f9d565b81565b611b826040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506000818152600460208181526040928390208351610160810185528154815260018201546001600160a01b039081169382019390935260028201549092169382019390935260038301546060820152908201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201546101208201819052600a90920154610140820152906114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034303a5249534b504f4f4c5f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b6000828152600660205260408120611c8f906125e3565b8210611ce85760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034313a42554e444c455f4944585f544f4f5f4c4152604482015261474560f01b606482015260840161035d565b6000838152600660205260409020611d0090836126ff565b9392505050565b611d307f496e7374616e63654f70657261746f725365727669636500000000000000000061245e565b6001600160a01b0316336001600160a01b031614611d9c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f4c2d3030313a4e4f545f494e5354414e43455f4f504552416044820152622a27a960e91b606482015260840161035d565b600854604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b158015611de057600080fd5b505afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612ad0565b611e645760405162461bcd60e51b815260206004820152601960248201527f4552524f523a504f4c2d3031303a4e4f545f50524f4455435400000000000000604482015260640161035d565b60085460405163ba80b8ed60e01b8152600481018390526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611ea857600080fd5b505afa158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee09190612ad0565b611f2c5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a504f4c2d3031313a4e4f545f5249534b504f4f4c000000000000604482015260640161035d565b60008281526003602052604090205415611f935760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3031323a5249534b504f4f4c5f414c52454144595f53604482015261115560f21b606482015260840161035d565b60009182526003602052604090912055565b63141bdbdb60e21b611fb68161245e565b6001600160a01b0316306001600160a01b031614611fe65760405162461bcd60e51b815260040161035d90612e20565b6120006d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146120305760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561207957600080fd5b505afa15801561208d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120b59190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561211257600080fd5b505afa158015612126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214a9190612b29565b600681111561216957634e487b7160e01b600052602160045260246000fd5b146121865760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156121cb57600080fd5b505afa1580156121df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122079190810190612bf6565b60208082015160009081526003825260408082205480835260049093529020600981015492935090916122865760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3032363a5249534b504f4f4c5f49445f494e56414c496044820152601160fa1b606482015260840161035d565b87816006015410156122da5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032373a4341504954414c5f544f4f5f4c4f57000000604482015260640161035d565b878160070154101561233a5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3032383a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b606482015260840161035d565b878160080154101561238e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032393a42414c414e43455f544f4f5f4c4f57000000604482015260640161035d565b878160060160008282546123a29190612fbc565b92505081905550878160070160008282546123bd9190612fbc565b92505081905550878160080160008282546123d89190612fbc565b909155505042600a82015560006123ee84612546565b60405163412ac48360e11b8152600481018c9052602481018b90529091506001600160a01b03821690638255890690604401600060405180830381600087803b15801561243a57600080fd5b505af115801561244e573d6000803e3d6000fd5b5050505050505050505050505050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156124a857600080fd5b505afa1580156124bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e09190612ab4565b90506001600160a01b0381166114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b602080820151600090815260039091526040812054806125b65760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034353a5249534b504f4f4c5f444f45535f4e4f545f60448201526411561254d560da1b606482015260840161035d565b611d008161270b565b60008181526001830160205260408120541515611d00565b6000611d00838361285d565b6000611564825490565b600054610100900460ff166126585760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161035d565b61266d6810dbdb5c1bdb995b9d60ba1b61245e565b600880546001600160a01b0319166001600160a01b039290921691909117905561269f65506f6c69637960d01b61245e565b600980546001600160a01b0319166001600160a01b03929092169190911790556126d16542756e646c6560d01b61245e565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000611d00838361297a565b6000611d0083836129c9565b60085460405163ba80b8ed60e01b8152600481018390526000916001600160a01b03169063ba80b8ed9060240160206040518083038186803b15801561275057600080fd5b505afa158015612764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127889190612ad0565b6127e05760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3034363a434f4d504f4e454e545f4e4f545f5249534b6044820152631413d3d360e21b606482015260840161035d565b6008546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561282557600080fd5b505afa158015612839573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d009190612ab4565b60008181526001830160205260408120548015612970576000612881600183612fbc565b855490915060009061289590600190612fbc565b90508181146129165760008660000182815481106128c357634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106128f457634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061293557634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611564565b6000915050611564565b60008181526001830160205260408120546129c157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611564565b506000611564565b60008260000182815481106129ee57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b600082601f830112612a11578081fd5b815167ffffffffffffffff811115612a2b57612a2b612fe9565b6020612a3f601f8301601f19168201612f34565b8281528582848701011115612a52578384fd5b835b83811015612a6f578581018301518282018401528201612a54565b83811115612a7f57848385840101525b5095945050505050565b80516003811061147157600080fd5b600060208284031215612aa9578081fd5b8135611d0081612fff565b600060208284031215612ac5578081fd5b8151611d0081612fff565b600060208284031215612ae1578081fd5b81518015158114611d00578182fd5b600060208284031215612b01578081fd5b5035919050565b60008060408385031215612b1a578081fd5b50508035926020909101359150565b600060208284031215612b3a578081fd5b815160078110611d00578182fd5b600060208284031215612b59578081fd5b815167ffffffffffffffff80821115612b70578283fd5b9083019060c08286031215612b83578283fd5b612b8d60c0612f34565b825160048110612b9b578485fd5b808252506020830151602082015260408301516040820152606083015182811115612bc4578485fd5b612bd087828601612a01565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612c07578081fd5b815167ffffffffffffffff80821115612c1e578283fd5b9083019060c08286031215612c31578283fd5b612c3b60c0612f34565b8251612c4681612fff565b815260208381015190820152612c5e60408401612a89565b6040820152606083015182811115612bc4578485fd5b6000610120808385031215612c87578182fd5b612c9081612f34565b9050612c9b83612a89565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080600080600060a08688031215612d10578081fd5b853594506020860135612d2281612fff565b93506040860135612d3281612fff565b94979396509394606081013594506080013592915050565b60008060408385031215612b1a578182fd5b60208082526021908201527f4552524f523a504f4c2d3030343a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526021908201527f4552524f523a504f4c2d3030333a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526022908201527f4552524f523a504f4c2d3030323a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b81518152602080830151610160830191612ebc908401826001600160a01b03169052565b506040830151612ed760408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612f5d57612f5d612fe9565b604052919050565b60008219821115612f7857612f78612fd3565b500190565b600082612f9857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612fb757612fb7612fd3565b500290565b600082821015612fce57612fce612fd3565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461301457600080fd5b5056fea2646970667358221220c3bffcc2760e53be86521cfbd777e61c2feecb4d34921b699ff2b261b3d0a62164736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063a65e2cfd116100c3578063eb8021141161007c578063eb802114146102ad578063ec833b0c146102cd578063edb5be30146102e0578063f1d354d0146102e8578063f93b3673146102f6578063fe64372b146103095761014d565b8063a65e2cfd14610239578063c397ae391461024c578063c4d66de81461025f578063d229f3b014610272578063d407ba0014610292578063da68771a146102a55761014d565b806367d42a8b1161011557806367d42a8b146101d25780637cdb808d146101e55780637db32844146101f8578063950be8031461020b578063a054381f1461021e578063a4266a66146102265761014d565b806302108268146101525780631b07b17f146101675780632127fd481461018f57806345fe1c6d146101a257806357419e8f146101bf575b600080fd5b610165610160366004612b08565b61031c565b005b61017a610175366004612af0565b610643565b60405190151581526020015b60405180910390f35b61016561019d366004612d4a565b610c1b565b6101b1670de0b6b3a764000081565b604051908152602001610186565b6101656101cd366004612cf9565b610ce3565b6101656101e0366004612af0565b611030565b6101b16101f3366004612d4a565b611401565b6101b1610206366004612af0565b611461565b610165610219366004612d4a565b611476565b6007546101b1565b6101b1610234366004612af0565b61154d565b610165610247366004612d4a565b61156a565b61016561025a366004612d4a565b6116bf565b61016561026d366004612a98565b611819565b6101b1610280366004612af0565b60009081526003602052604090205490565b6101656102a0366004612d4a565b611997565b6101b1611afd565b6102c06102bb366004612af0565b611b13565b6040516101869190612e98565b6101b16102db366004612d4a565b611c78565b6101b1600181565b670de0b6b3a76400006101b1565b610165610304366004612d4a565b611d07565b610165610317366004612b08565b611fa5565b63141bdbdb60e21b61032d8161245e565b6001600160a01b0316306001600160a01b0316146103665760405162461bcd60e51b815260040161035d90612e20565b60405180910390fd5b6103806d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146103b05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156103f957600080fd5b505afa15801561040d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104359190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190612b29565b60068111156104e957634e487b7160e01b600052602160045260246000fd5b146105065760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105879190810190612bf6565b9050600061059482612546565b604051630d8a70f160e21b8152600481018a9052602481018990529091506001600160a01b03821690633629c3c490604401600060405180830381600087803b1580156105e057600080fd5b505af11580156105f4573d6000803e3d6000fd5b505050506020828101516000908152600382526040808220548083526004909352812060088101805491928b9261062c908490612f65565b909155505042600a90910155505050505050505050565b600063141bdbdb60e21b6106568161245e565b6001600160a01b0316306001600160a01b0316146106865760405162461bcd60e51b815260040161035d90612e20565b6106a06d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146106d05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561071957600080fd5b505afa15801561072d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107559190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612b29565b600681111561080957634e487b7160e01b600052602160045260246000fd5b146108265760405162461bcd60e51b815260040161035d90612d5c565b600954604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a79190810190612b48565b90506000815160038111156108cc57634e487b7160e01b600052602160045260246000fd5b146109295760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f4c2d3032303a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b606482015260840161035d565b60095460405163296586d360e21b8152600481018990526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561096e57600080fd5b505afa158015610982573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109aa9190810190612bf6565b602080820151600090815260039091526040808220549085015192935091906109d38383611401565b60008c81526002602090815260409182902083905581518e81529081018590529081018290529091507f893c64de8e253703b31297be336c07a93e39fe8eaa32127e2e6fff090f0aefae9060600160405180910390a160008381526004602052604090206005810154610a47908490612f65565b81600401541015610ab25760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a504f4c2d3032323a5249534b504f4f4c5f53554d5f494e53555260448201526e115117d0d05417d15610d151511151608a1b606482015260840161035d565b6000610abd86612546565b604051631121f7ef60e31b8152600481018f9052602481018590529091506001600160a01b0382169063890fbf7890604401602060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190612ad0565b9b508b15610bc95783826005016000828254610b5d9190612f65565b9250508190555082826007016000828254610b789190612f65565b909155505042600a83015560408051868152602081018f90529081018590527f66a2033a32603d30bde9ec2b858820c3202972f4ee1c8dd2c6e18391b6bfbaeb9060600160405180910390a1610c0b565b60408051868152602081018f90529081018590527fc6e314ad1256dc0c682dc6bb53e940b53f14aa323070798a8423a7f1d965d0599060600160405180910390a15b5050505050505050505050919050565b610c366e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610c665760405162461bcd60e51b815260040161035d90612dde565b60008111610cd15760405162461bcd60e51b815260206004820152603260248201527f4552524f523a504f4c2d3033323a4d41585f4e554d4245525f4f465f41435449604482015271159157d0955391131154d7d253959053125160721b606482015260840161035d565b60009182526005602052604090912055565b610cfe6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610d2e5760405162461bcd60e51b815260040161035d90612dde565b60008581526004602090815260408083206007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018a90556005909352922055600981015415610ddc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030353a5249534b504f4f4c5f414c52454144595f526044820152681151d254d51154915160ba1b606482015260840161035d565b6001600160a01b038516610e3c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3030363a57414c4c45545f414444524553535f5a45526044820152604f60f81b606482015260840161035d565b6001600160a01b038416610e925760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030373a45524332305f414444524553535f5a45524f604482015260640161035d565b610ea5670de0b6b3a76400006002612f9d565b831115610f0b5760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a504f4c2d3030383a434f4c4c41544552414c495a4154494f4e5f60448201526d0d88aac8ad8bea89e9ebe90928e960931b606482015260840161035d565b60008211610f6d5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030393a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b606482015260840161035d565b8581556001810180546001600160a01b038781166001600160a01b031992831681179093556002840180549188169190921681179091556003830185905560048301849055600060058401819055600684018190556007840181905560088401554260098401819055600a84015560408051898152602081019390935282015260608101849052608081018390527f798f4ae5a0a1e2125e89cf9f810639cd05f69896db5bd4f928bd53e6ef3bf8b99060a00160405180910390a1505050505050565b63141bdbdb60e21b6110418161245e565b6001600160a01b0316306001600160a01b0316146110715760405162461bcd60e51b815260040161035d90612e20565b61108b6d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146110bb5760405162461bcd60e51b815260040161035d90612e57565b60095460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111399190612c74565b905060028151600281111561115e57634e487b7160e01b600052602160045260246000fd5b146111b65760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3032353a504f4c4943595f53544154455f494e56414c604482015261125160f21b606482015260840161035d565b60095460405163296586d360e21b8152600481018590526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156111fb57600080fd5b505afa15801561120f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112379190810190612bf6565b9050600061124482612546565b604051636180264360e11b8152600481018790529091506001600160a01b0382169063c3004c8690602401600060405180830381600087803b15801561128957600080fd5b505af115801561129d573d6000803e3d6000fd5b5050600954604051632f141bd960e21b815260048101899052600093506001600160a01b03909116915063bc506f649060240160006040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113249190810190612b48565b6020808501516000908152600382526040808220548083526004845281832060c08a01518c855260029095529183205494955093909261136391612fbc565b9050836040015182600501600082825461137d9190612fbc565b92505081905550808260070160008282546113989190612fbc565b909155505042600a83015560008981526002602090815260408083209290925581518581529081018b90529081018290527f4948a5a8dbd6a1190cb403d7731211af859364368aafe64e104d3f3b07e846cf9060600160405180910390a1505050505050505050565b60008061140d84611b13565b606001519050670de0b6b3a764000081141561142b5782915061145a565b801561145557670de0b6b3a76400006114448483612f9d565b61144e9190612f7d565b915061145a565b600091505b5092915050565b6000818152600560205260409020545b919050565b6114916e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146114c15760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206114d990826125bf565b6115305760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034343a42554e444c455f49445f4e4f545f494e5f53604482015261115560f21b606482015260840161035d565b600082815260066020526040902061154890826125d7565b505050565b6000818152600660205260408120611564906125e3565b92915050565b6115856e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146115b55760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116349190612b29565b600681111561165357634e487b7160e01b600052602160045260246000fd5b146116705760405162461bcd60e51b815260040161035d90612d9d565b600083815260046020526040812060068101805491928592611693908490612f65565b92505081905550828160080160008282546116ae9190612f65565b909155505042600a90910155505050565b6116da6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b03161461170a5760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561175157600080fd5b505afa158015611765573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117899190612b29565b60068111156117a857634e487b7160e01b600052602160045260246000fd5b146117c55760405162461bcd60e51b815260040161035d90612d9d565b6000838152600460205260409020600681015483116117fd57828160060160008282546117f29190612fbc565b909155506118059050565b600060068201555b828160080160008282546116ae9190612fbc565b600054610100900460ff16158080156118395750600054600160ff909116105b806118535750303b158015611853575060005460ff166001145b6118b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161035d565b6000805460ff1916600117905580156118d9576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611903600090565b6541636365737360d01b14611945576119246541636365737360d01b61245e565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61194d6125ed565b8015611993576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6119b26e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146119e25760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206119fa90826125bf565b15611a565760405162461bcd60e51b815260206004820152602660248201527f4552524f523a504f4c2d3034323a42554e444c455f49445f414c52454144595f604482015265125397d4d15560d21b606482015260840161035d565b6000828152600560209081526040808320546006909252909120611a79906125e3565b10611ae55760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f4c2d3034333a4d4158494d554d5f4e554d4245525f4f465f6044820152751050d512559157d0955391131154d7d4915050d2115160521b606482015260840161035d565b600082815260066020526040902061154890826126f3565b611b10670de0b6b3a76400006002612f9d565b81565b611b826040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506000818152600460208181526040928390208351610160810185528154815260018201546001600160a01b039081169382019390935260028201549092169382019390935260038301546060820152908201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201546101208201819052600a90920154610140820152906114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034303a5249534b504f4f4c5f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b6000828152600660205260408120611c8f906125e3565b8210611ce85760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034313a42554e444c455f4944585f544f4f5f4c4152604482015261474560f01b606482015260840161035d565b6000838152600660205260409020611d0090836126ff565b9392505050565b611d307f496e7374616e63654f70657261746f725365727669636500000000000000000061245e565b6001600160a01b0316336001600160a01b031614611d9c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f4c2d3030313a4e4f545f494e5354414e43455f4f504552416044820152622a27a960e91b606482015260840161035d565b600854604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b158015611de057600080fd5b505afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612ad0565b611e645760405162461bcd60e51b815260206004820152601960248201527f4552524f523a504f4c2d3031303a4e4f545f50524f4455435400000000000000604482015260640161035d565b60085460405163ba80b8ed60e01b8152600481018390526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611ea857600080fd5b505afa158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee09190612ad0565b611f2c5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a504f4c2d3031313a4e4f545f5249534b504f4f4c000000000000604482015260640161035d565b60008281526003602052604090205415611f935760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3031323a5249534b504f4f4c5f414c52454144595f53604482015261115560f21b606482015260840161035d565b60009182526003602052604090912055565b63141bdbdb60e21b611fb68161245e565b6001600160a01b0316306001600160a01b031614611fe65760405162461bcd60e51b815260040161035d90612e20565b6120006d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146120305760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561207957600080fd5b505afa15801561208d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120b59190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561211257600080fd5b505afa158015612126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214a9190612b29565b600681111561216957634e487b7160e01b600052602160045260246000fd5b146121865760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156121cb57600080fd5b505afa1580156121df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122079190810190612bf6565b60208082015160009081526003825260408082205480835260049093529020600981015492935090916122865760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3032363a5249534b504f4f4c5f49445f494e56414c496044820152601160fa1b606482015260840161035d565b87816006015410156122da5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032373a4341504954414c5f544f4f5f4c4f57000000604482015260640161035d565b878160070154101561233a5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3032383a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b606482015260840161035d565b878160080154101561238e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032393a42414c414e43455f544f4f5f4c4f57000000604482015260640161035d565b878160060160008282546123a29190612fbc565b92505081905550878160070160008282546123bd9190612fbc565b92505081905550878160080160008282546123d89190612fbc565b909155505042600a82015560006123ee84612546565b60405163412ac48360e11b8152600481018c9052602481018b90529091506001600160a01b03821690638255890690604401600060405180830381600087803b15801561243a57600080fd5b505af115801561244e573d6000803e3d6000fd5b5050505050505050505050505050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156124a857600080fd5b505afa1580156124bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e09190612ab4565b90506001600160a01b0381166114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b602080820151600090815260039091526040812054806125b65760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034353a5249534b504f4f4c5f444f45535f4e4f545f60448201526411561254d560da1b606482015260840161035d565b611d008161270b565b60008181526001830160205260408120541515611d00565b6000611d00838361285d565b6000611564825490565b600054610100900460ff166126585760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161035d565b61266d6810dbdb5c1bdb995b9d60ba1b61245e565b600880546001600160a01b0319166001600160a01b039290921691909117905561269f65506f6c69637960d01b61245e565b600980546001600160a01b0319166001600160a01b03929092169190911790556126d16542756e646c6560d01b61245e565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000611d00838361297a565b6000611d0083836129c9565b60085460405163ba80b8ed60e01b8152600481018390526000916001600160a01b03169063ba80b8ed9060240160206040518083038186803b15801561275057600080fd5b505afa158015612764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127889190612ad0565b6127e05760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3034363a434f4d504f4e454e545f4e4f545f5249534b6044820152631413d3d360e21b606482015260840161035d565b6008546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561282557600080fd5b505afa158015612839573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d009190612ab4565b60008181526001830160205260408120548015612970576000612881600183612fbc565b855490915060009061289590600190612fbc565b90508181146129165760008660000182815481106128c357634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106128f457634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061293557634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611564565b6000915050611564565b60008181526001830160205260408120546129c157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611564565b506000611564565b60008260000182815481106129ee57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b600082601f830112612a11578081fd5b815167ffffffffffffffff811115612a2b57612a2b612fe9565b6020612a3f601f8301601f19168201612f34565b8281528582848701011115612a52578384fd5b835b83811015612a6f578581018301518282018401528201612a54565b83811115612a7f57848385840101525b5095945050505050565b80516003811061147157600080fd5b600060208284031215612aa9578081fd5b8135611d0081612fff565b600060208284031215612ac5578081fd5b8151611d0081612fff565b600060208284031215612ae1578081fd5b81518015158114611d00578182fd5b600060208284031215612b01578081fd5b5035919050565b60008060408385031215612b1a578081fd5b50508035926020909101359150565b600060208284031215612b3a578081fd5b815160078110611d00578182fd5b600060208284031215612b59578081fd5b815167ffffffffffffffff80821115612b70578283fd5b9083019060c08286031215612b83578283fd5b612b8d60c0612f34565b825160048110612b9b578485fd5b808252506020830151602082015260408301516040820152606083015182811115612bc4578485fd5b612bd087828601612a01565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612c07578081fd5b815167ffffffffffffffff80821115612c1e578283fd5b9083019060c08286031215612c31578283fd5b612c3b60c0612f34565b8251612c4681612fff565b815260208381015190820152612c5e60408401612a89565b6040820152606083015182811115612bc4578485fd5b6000610120808385031215612c87578182fd5b612c9081612f34565b9050612c9b83612a89565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080600080600060a08688031215612d10578081fd5b853594506020860135612d2281612fff565b93506040860135612d3281612fff565b94979396509394606081013594506080013592915050565b60008060408385031215612b1a578182fd5b60208082526021908201527f4552524f523a504f4c2d3030343a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526021908201527f4552524f523a504f4c2d3030333a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526022908201527f4552524f523a504f4c2d3030323a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b81518152602080830151610160830191612ebc908401826001600160a01b03169052565b506040830151612ed760408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612f5d57612f5d612fe9565b604052919050565b60008219821115612f7857612f78612fd3565b500190565b600082612f9857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612fb757612fb7612fd3565b500290565b600082821015612fce57612fce612fd3565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461301457600080fd5b5056fea2646970667358221220c3bffcc2760e53be86521cfbd777e61c2feecb4d34921b699ff2b261b3d0a62164736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/modules/QueryModule.sol/QueryModule.dbg.json b/artifacts/contracts/modules/QueryModule.sol/QueryModule.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/modules/QueryModule.sol/QueryModule.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/modules/QueryModule.sol/QueryModule.json b/artifacts/contracts/modules/QueryModule.sol/QueryModule.json new file mode 100644 index 00000000..56513b82 --- /dev/null +++ b/artifacts/contracts/modules/QueryModule.sol/QueryModule.json @@ -0,0 +1,213 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "QueryModule", + "sourceName": "contracts/modules/QueryModule.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "LogOracleCanceled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "responsibleOracleId", + "type": "uint256" + } + ], + "name": "LogOracleRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "responder", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "name": "LogOracleResponded", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "cancel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getOracleRequestCount", + "outputs": [ + { + "internalType": "uint256", + "name": "_count", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "getProcessId", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "input", + "type": "bytes" + }, + { + "internalType": "string", + "name": "callbackMethodName", + "type": "string" + }, + { + "internalType": "address", + "name": "callbackContractAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "responsibleOracleId", + "type": "uint256" + } + ], + "name": "request", + "outputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "responder", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "respond", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611844806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632c933f221461006757806338aec7cc1461008c57806340e58ee5146100945780639af8c4ba146100a95780639b04ed30146100bc578063c4d66de8146100cf575b600080fd5b61007a61007536600461149c565b6100e2565b60405190815260200160405180910390f35b60035461007a565b6100a76100a236600461156e565b61044d565b005b6100a76100b736600461159e565b61063a565b61007a6100ca36600461156e565b610b9f565b6100a76100dd36600461143d565b610dac565b600064517565727960d81b6100f681610f2a565b6001600160a01b0316306001600160a01b03161461015b5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f524147450000000060448201526064015b60405180910390fd5b6101756d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146101a55760405162461bcd60e51b815260040161015290611706565b600254604051632b1c7f7360e01b81526001600160a01b0386811660048301526000921690632b1c7f739060240160206040518083038186803b1580156101eb57600080fd5b505afa1580156101ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102239190611586565b600254604051630e48080360e21b8152600481018390529192506001600160a01b031690633920200c9060240160206040518083038186803b15801561026857600080fd5b505afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a0919061147c565b6103025760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a5155432d3031303a43414c4c4241434b5f414444524553535f4960448201526c14d7d393d517d41493d11550d5609a1b6064820152608401610152565b600380546001810180835560008381529195509091908590811061033657634e487b7160e01b600052603260045260246000fd5b600091825260209091206006909102018b81559050610359600482018b8b61131e565b5061036860038201898961131e565b506002810180546001600160a01b0319166001600160a01b0388161790556001810185905542600582015561039c85611012565b6001600160a01b031663ffc79065858c8c6040518463ffffffff1660e01b81526004016103cb93929190611771565b600060405180830381600087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b5050604080518e8152602081018890529081018890527f97e3e6ac41333a7d6e86bf69ab3f55df1e83baf81430f285faf030974809c3b19250606001905060405180910390a1505050979650505050505050565b64517565727960d81b61045f81610f2a565b6001600160a01b0316306001600160a01b0316146104bf5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f52414745000000006044820152606401610152565b6104d96d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146105095760405162461bcd60e51b815260040161015290611706565b60006003838154811061052c57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201905060008160050154116105905760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3033303a524551554553545f49445f494e56414c49446044820152606401610152565b600383815481106105b157634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b0319169055906105ea60038301826113a2565b6105f86004830160006113a2565b506000600591909101556040518381527f055856e72174cf1dcf5c10f8a1788a179a6e5c272427edc5ccc7f60becfec6899060200160405180910390a1505050565b6106536c4f7261636c655365727669636560981b610f2a565b6001600160a01b0316336001600160a01b0316146106b35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4352432d3030313a4e4f545f4f5241434c455f534552564943456044820152606401610152565b83836000600383815481106106d857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610744906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610770906117c4565b80156107bd5780601f10610792576101008083540402835291602001916107bd565b820191906000526020600020905b8154815290600101906020018083116107a057829003601f168201915b505050505081526020016004820180546107d6906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610802906117c4565b801561084f5780601f106108245761010080835404028352916020019161084f565b820191906000526020600020905b81548152906001019060200180831161083257829003601f168201915b50505050508152602001600582015481525050905060008160a00151116108b85760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3030323a524551554553545f49445f494e56414c49446044820152606401610152565b602081015160006108c882611012565b9050836001600160a01b0316816001600160a01b0316146109375760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5155432d3030333a4f5241434c455f4e4f545f524553504f4e5360448201526349424c4560e01b6064820152608401610152565b600060038a8154811061095a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602019050600081600301604051602001610980919061163e565b604051602081830303815290604052905060008260000154905060008360020160009054906101000a90046001600160a01b03166001600160a01b0316838e848e8e6040516024016109d59493929190611747565b60408051601f1981840301815290829052916109f091611622565b60408051918290039091206020830180516001600160e01b03166001600160e01b031990921691909117905251610a279190611622565b6000604051808303816000865af19150503d8060008114610a64576040519150601f19603f3d011682016040523d82523d6000602084013e610a69565b606091505b5050905080610ace5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a5155432d3032303a50524f445543545f43414c4c4241434b5f5560448201526a1394d550d0d154d4d1955360aa1b6064820152608401610152565b60038d81548110610aef57634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b031916905590610b2860038301826113a2565b610b366004830160006113a2565b5060006005919091015560408051838152602081018f90526001600160a01b038e1681830152821515606082015290517f4839cd12918767a83a4ef7b6a1abd1878ddfd2598fae0ad3b455c863cc177ad99181900360800190a150505050505050505050505050565b60008060038381548110610bc357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610c2f906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5b906117c4565b8015610ca85780601f10610c7d57610100808354040283529160200191610ca8565b820191906000526020600020905b815481529060010190602001808311610c8b57829003601f168201915b50505050508152602001600482018054610cc1906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906117c4565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b50505050508152602001600582015481525050905060008160a0015111610da35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3034303a524551554553545f49445f494e56414c49446044820152606401610152565b5190505b919050565b600054610100900460ff1615808015610dcc5750600054600160ff909116105b80610de65750303b158015610de6575060005460ff166001145b610e495760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610152565b6000805460ff191660011790558015610e6c576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610e96600090565b6541636365737360d01b14610ed857610eb76541636365737360d01b610f2a565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610ee061127c565b8015610f26576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611460565b90506001600160a01b038116610da75760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610152565b6002546040516309e4fb4360e31b81526004810183905260009182916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561105b57600080fd5b505afa15801561106f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110939190611460565b91508190506000600254604051636ea8e43560e11b8152600481018690526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156110de57600080fd5b505afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611116919061154f565b600281111561113557634e487b7160e01b600052602160045260246000fd5b1461118d5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5155432d3034313a434f4d504f4e454e545f4e4f545f4f5241436044820152614c4560f01b6064820152608401610152565b600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156111d257600080fd5b505afa1580156111e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120a9190611530565b600681111561122957634e487b7160e01b600052602160045260246000fd5b146112765760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5155432d3034323a4f5241434c455f4e4f545f414354495645006044820152606401610152565b50919050565b600054610100900460ff166112e75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610152565b6112fc6810dbdb5c1bdb995b9d60ba1b610f2a565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b82805461132a906117c4565b90600052602060002090601f01602090048101928261134c5760008555611392565b82601f106113655782800160ff19823516178555611392565b82800160010185558215611392579182015b82811115611392578235825591602001919060010190611377565b5061139e9291506113e1565b5090565b5080546113ae906117c4565b6000825580601f106113c057506113de565b601f0160209004906000526020600020908101906113de91906113e1565b50565b5b8082111561139e57600081556001016113e2565b60008083601f840112611407578182fd5b50813567ffffffffffffffff81111561141e578182fd5b60208301915083602082850101111561143657600080fd5b9250929050565b60006020828403121561144e578081fd5b8135611459816117f9565b9392505050565b600060208284031215611471578081fd5b8151611459816117f9565b60006020828403121561148d578081fd5b81518015158114611459578182fd5b600080600080600080600060a0888a0312156114b6578283fd5b87359650602088013567ffffffffffffffff808211156114d4578485fd5b6114e08b838c016113f6565b909850965060408a01359150808211156114f8578485fd5b506115058a828b016113f6565b9095509350506060880135611519816117f9565b809250506080880135905092959891949750929550565b600060208284031215611541578081fd5b815160078110611459578182fd5b600060208284031215611560578081fd5b815160038110611459578182fd5b60006020828403121561157f578081fd5b5035919050565b600060208284031215611597578081fd5b5051919050565b600080600080606085870312156115b3578384fd5b8435935060208501356115c5816117f9565b9250604085013567ffffffffffffffff8111156115e0578283fd5b6115ec878288016113f6565b95989497509550505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251611634818460208701611794565b9190910192915050565b815460009081906002810460018083168061165a57607f831692505b602080841082141561167a57634e487b7160e01b87526022600452602487fd5b81801561168e576001811461169f576116cb565b60ff198616895284890196506116cb565b60008a815260209020885b868110156116c35781548b8201529085019083016116aa565b505084890196505b5050505050506116fe817f2875696e743235362c627974657333322c627974657329000000000000000000815260170190565b949350505050565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b6000858252846020830152606060408301526117676060830184866115f8565b9695505050505050565b60008482526040602083015261178b6040830184866115f8565b95945050505050565b60005b838110156117af578181015183820152602001611797565b838111156117be576000848401525b50505050565b6002810460018216806117d857607f821691505b6020821081141561127657634e487b7160e01b600052602260045260246000fd5b6001600160a01b03811681146113de57600080fdfea264697066735822122041ed1675bdc184dac22d7618a0614577d9e87d9f88a1e8f5c79158a16aa26dc164736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80632c933f221461006757806338aec7cc1461008c57806340e58ee5146100945780639af8c4ba146100a95780639b04ed30146100bc578063c4d66de8146100cf575b600080fd5b61007a61007536600461149c565b6100e2565b60405190815260200160405180910390f35b60035461007a565b6100a76100a236600461156e565b61044d565b005b6100a76100b736600461159e565b61063a565b61007a6100ca36600461156e565b610b9f565b6100a76100dd36600461143d565b610dac565b600064517565727960d81b6100f681610f2a565b6001600160a01b0316306001600160a01b03161461015b5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f524147450000000060448201526064015b60405180910390fd5b6101756d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146101a55760405162461bcd60e51b815260040161015290611706565b600254604051632b1c7f7360e01b81526001600160a01b0386811660048301526000921690632b1c7f739060240160206040518083038186803b1580156101eb57600080fd5b505afa1580156101ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102239190611586565b600254604051630e48080360e21b8152600481018390529192506001600160a01b031690633920200c9060240160206040518083038186803b15801561026857600080fd5b505afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a0919061147c565b6103025760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a5155432d3031303a43414c4c4241434b5f414444524553535f4960448201526c14d7d393d517d41493d11550d5609a1b6064820152608401610152565b600380546001810180835560008381529195509091908590811061033657634e487b7160e01b600052603260045260246000fd5b600091825260209091206006909102018b81559050610359600482018b8b61131e565b5061036860038201898961131e565b506002810180546001600160a01b0319166001600160a01b0388161790556001810185905542600582015561039c85611012565b6001600160a01b031663ffc79065858c8c6040518463ffffffff1660e01b81526004016103cb93929190611771565b600060405180830381600087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b5050604080518e8152602081018890529081018890527f97e3e6ac41333a7d6e86bf69ab3f55df1e83baf81430f285faf030974809c3b19250606001905060405180910390a1505050979650505050505050565b64517565727960d81b61045f81610f2a565b6001600160a01b0316306001600160a01b0316146104bf5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f52414745000000006044820152606401610152565b6104d96d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146105095760405162461bcd60e51b815260040161015290611706565b60006003838154811061052c57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201905060008160050154116105905760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3033303a524551554553545f49445f494e56414c49446044820152606401610152565b600383815481106105b157634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b0319169055906105ea60038301826113a2565b6105f86004830160006113a2565b506000600591909101556040518381527f055856e72174cf1dcf5c10f8a1788a179a6e5c272427edc5ccc7f60becfec6899060200160405180910390a1505050565b6106536c4f7261636c655365727669636560981b610f2a565b6001600160a01b0316336001600160a01b0316146106b35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4352432d3030313a4e4f545f4f5241434c455f534552564943456044820152606401610152565b83836000600383815481106106d857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610744906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610770906117c4565b80156107bd5780601f10610792576101008083540402835291602001916107bd565b820191906000526020600020905b8154815290600101906020018083116107a057829003601f168201915b505050505081526020016004820180546107d6906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610802906117c4565b801561084f5780601f106108245761010080835404028352916020019161084f565b820191906000526020600020905b81548152906001019060200180831161083257829003601f168201915b50505050508152602001600582015481525050905060008160a00151116108b85760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3030323a524551554553545f49445f494e56414c49446044820152606401610152565b602081015160006108c882611012565b9050836001600160a01b0316816001600160a01b0316146109375760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5155432d3030333a4f5241434c455f4e4f545f524553504f4e5360448201526349424c4560e01b6064820152608401610152565b600060038a8154811061095a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602019050600081600301604051602001610980919061163e565b604051602081830303815290604052905060008260000154905060008360020160009054906101000a90046001600160a01b03166001600160a01b0316838e848e8e6040516024016109d59493929190611747565b60408051601f1981840301815290829052916109f091611622565b60408051918290039091206020830180516001600160e01b03166001600160e01b031990921691909117905251610a279190611622565b6000604051808303816000865af19150503d8060008114610a64576040519150601f19603f3d011682016040523d82523d6000602084013e610a69565b606091505b5050905080610ace5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a5155432d3032303a50524f445543545f43414c4c4241434b5f5560448201526a1394d550d0d154d4d1955360aa1b6064820152608401610152565b60038d81548110610aef57634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b031916905590610b2860038301826113a2565b610b366004830160006113a2565b5060006005919091015560408051838152602081018f90526001600160a01b038e1681830152821515606082015290517f4839cd12918767a83a4ef7b6a1abd1878ddfd2598fae0ad3b455c863cc177ad99181900360800190a150505050505050505050505050565b60008060038381548110610bc357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610c2f906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5b906117c4565b8015610ca85780601f10610c7d57610100808354040283529160200191610ca8565b820191906000526020600020905b815481529060010190602001808311610c8b57829003601f168201915b50505050508152602001600482018054610cc1906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906117c4565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b50505050508152602001600582015481525050905060008160a0015111610da35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3034303a524551554553545f49445f494e56414c49446044820152606401610152565b5190505b919050565b600054610100900460ff1615808015610dcc5750600054600160ff909116105b80610de65750303b158015610de6575060005460ff166001145b610e495760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610152565b6000805460ff191660011790558015610e6c576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610e96600090565b6541636365737360d01b14610ed857610eb76541636365737360d01b610f2a565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610ee061127c565b8015610f26576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611460565b90506001600160a01b038116610da75760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610152565b6002546040516309e4fb4360e31b81526004810183905260009182916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561105b57600080fd5b505afa15801561106f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110939190611460565b91508190506000600254604051636ea8e43560e11b8152600481018690526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156110de57600080fd5b505afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611116919061154f565b600281111561113557634e487b7160e01b600052602160045260246000fd5b1461118d5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5155432d3034313a434f4d504f4e454e545f4e4f545f4f5241436044820152614c4560f01b6064820152608401610152565b600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156111d257600080fd5b505afa1580156111e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120a9190611530565b600681111561122957634e487b7160e01b600052602160045260246000fd5b146112765760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5155432d3034323a4f5241434c455f4e4f545f414354495645006044820152606401610152565b50919050565b600054610100900460ff166112e75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610152565b6112fc6810dbdb5c1bdb995b9d60ba1b610f2a565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b82805461132a906117c4565b90600052602060002090601f01602090048101928261134c5760008555611392565b82601f106113655782800160ff19823516178555611392565b82800160010185558215611392579182015b82811115611392578235825591602001919060010190611377565b5061139e9291506113e1565b5090565b5080546113ae906117c4565b6000825580601f106113c057506113de565b601f0160209004906000526020600020908101906113de91906113e1565b50565b5b8082111561139e57600081556001016113e2565b60008083601f840112611407578182fd5b50813567ffffffffffffffff81111561141e578182fd5b60208301915083602082850101111561143657600080fd5b9250929050565b60006020828403121561144e578081fd5b8135611459816117f9565b9392505050565b600060208284031215611471578081fd5b8151611459816117f9565b60006020828403121561148d578081fd5b81518015158114611459578182fd5b600080600080600080600060a0888a0312156114b6578283fd5b87359650602088013567ffffffffffffffff808211156114d4578485fd5b6114e08b838c016113f6565b909850965060408a01359150808211156114f8578485fd5b506115058a828b016113f6565b9095509350506060880135611519816117f9565b809250506080880135905092959891949750929550565b600060208284031215611541578081fd5b815160078110611459578182fd5b600060208284031215611560578081fd5b815160038110611459578182fd5b60006020828403121561157f578081fd5b5035919050565b600060208284031215611597578081fd5b5051919050565b600080600080606085870312156115b3578384fd5b8435935060208501356115c5816117f9565b9250604085013567ffffffffffffffff8111156115e0578283fd5b6115ec878288016113f6565b95989497509550505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251611634818460208701611794565b9190910192915050565b815460009081906002810460018083168061165a57607f831692505b602080841082141561167a57634e487b7160e01b87526022600452602487fd5b81801561168e576001811461169f576116cb565b60ff198616895284890196506116cb565b60008a815260209020885b868110156116c35781548b8201529085019083016116aa565b505084890196505b5050505050506116fe817f2875696e743235362c627974657333322c627974657329000000000000000000815260170190565b949350505050565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b6000858252846020830152606060408301526117676060830184866115f8565b9695505050505050565b60008482526040602083015261178b6040830184866115f8565b95945050505050565b60005b838110156117af578181015183820152602001611797565b838111156117be576000848401525b50505050565b6002810460018216806117d857607f821691505b6020821081141561127657634e487b7160e01b600052602260045260246000fd5b6001600160a01b03811681146113de57600080fdfea264697066735822122041ed1675bdc184dac22d7618a0614577d9e87d9f88a1e8f5c79158a16aa26dc164736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/modules/RegistryController.sol/RegistryController.dbg.json b/artifacts/contracts/modules/RegistryController.sol/RegistryController.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/modules/RegistryController.sol/RegistryController.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/modules/RegistryController.sol/RegistryController.json b/artifacts/contracts/modules/RegistryController.sol/RegistryController.json new file mode 100644 index 00000000..23d6bc2a --- /dev/null +++ b/artifacts/contracts/modules/RegistryController.sol/RegistryController.json @@ -0,0 +1,392 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "RegistryController", + "sourceName": "contracts/modules/RegistryController.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "release", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + } + ], + "name": "LogContractDeregistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "release", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isNew", + "type": "bool" + } + ], + "name": "LogContractRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "release", + "type": "bytes32" + } + ], + "name": "LogReleasePrepared", + "type": "event" + }, + { + "inputs": [], + "name": "MAX_CONTRACTS", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "_contracts", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "_contractsInRelease", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "contractName", + "outputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "contracts", + "outputs": [ + { + "internalType": "uint256", + "name": "_numberOfContracts", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "deregister", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "deregisterInRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "ensureSender", + "outputs": [ + { + "internalType": "bool", + "name": "_senderMatches", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "getContract", + "outputs": [ + { + "internalType": "address", + "name": "_addr", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "getContractInRelease", + "outputs": [ + { + "internalType": "address", + "name": "_addr", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRelease", + "outputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_initialRelease", + "type": "bytes32" + } + ], + "name": "initializeRegistry", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_newRelease", + "type": "bytes32" + } + ], + "name": "prepareRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_contractAddress", + "type": "address" + } + ], + "name": "register", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_contractAddress", + "type": "address" + } + ], + "name": "registerInRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "release", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "startBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6116b3806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806376b707b7116100a2578063c4d66de811610071578063c4d66de814610248578063d22057a91461025b578063dc527b081461026e578063e16c7d9814610281578063f6b3e7d01461029457610116565b806376b707b71461021157806386d1a69f14610219578063893917ea14610222578063b0ef18a01461023557610116565b806348cd4cb1116100e957806348cd4cb1146101815780634a941e5e1461018a57806356bbc19d146101d657806369923515146101e95780636c0f79b61461020957610116565b80631d5e73141461011b578063208131541461013057806324042a0a146101435780632ca65a791461015e575b600080fd5b61012e61012936600461150b565b6102a7565b005b61012e61013e3660046114a3565b610368565b61014b606481565b6040519081526020015b60405180910390f35b61017161016c366004611458565b61041d565b6040519015158152602001610155565b61014b60035481565b6101be6101983660046114ea565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610155565b61012e6101e43660046114a3565b610447565b61014b6101f73660046114a3565b60056020526000908152604090205481565b61014b6105bb565b60025461014b565b61014b60025481565b61012e6102303660046114a3565b6105da565b6101be6102433660046114ea565b6107ef565b61012e610256366004611420565b610802565b61012e6102693660046114bb565b610938565b61012e61027c3660046114ea565b6109ed565b6101be61028f3660046114a3565b610a9d565b61014b6102a23660046114a3565b610ab1565b6000546201000090046001600160a01b0316632ca65a796102c53390565b6040518263ffffffff1660e01b81526004016102e19190611543565b60206040518083038186803b1580156102f957600080fd5b505afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103319190611483565b6103565760405162461bcd60e51b815260040161034d906115c5565b60405180910390fd5b6103638360008484610acc565b505050565b6000546201000090046001600160a01b0316632ca65a796103863390565b6040518263ffffffff1660e01b81526004016103a29190611543565b60206040518083038186803b1580156103ba57600080fd5b505afa1580156103ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f29190611483565b61040e5760405162461bcd60e51b815260040161034d906115c5565b61041a60025482610e86565b50565b600061042b600254836110a8565b6001600160a01b0316836001600160a01b031614905092915050565b600054610100900460ff16158080156104675750600054600160ff909116105b806104885750610476306110ce565b158015610488575060005460ff166001145b6104a45760405162461bcd60e51b815260040161034d90611577565b6000805460ff1916600117905580156104c7576000805461ff0019166101001790555b6000805462010000600160b01b03191630620100000217905560028290556104ec3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b039790971696909617909555925482526006905220610556916110e1565b506002546000908152600560205260409020600190554360035580156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b60025460009081526006602052604081206105d5906110ed565b905090565b6000546201000090046001600160a01b0316632ca65a796105f83390565b6040518263ffffffff1660e01b81526004016106149190611543565b60206040518083038186803b15801561062c57600080fd5b505afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611483565b6106805760405162461bcd60e51b815260040161034d906115c5565b600254600090815260056020526040902054806106df5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c454153450000000000604482015260640161034d565b600082815260056020526040902054156107475760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b606482015260840161034d565b60005b818110156107b957600254600090815260066020526040812061076d90836110f7565b60025460009081526004602090815260408083208484529091529020549091506107a690859060019084906001600160a01b0316610acc565b506107b2600182611608565b905061074a565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b4906020016105ae565b60006107fb83836110a8565b9392505050565b600054610100900460ff16158080156108225750600054600160ff909116105b806108435750610831306110ce565b158015610843575060005460ff166001145b61085f5760405162461bcd60e51b815260040161034d90611577565b6000805460ff191660011790558015610882576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556108ac600090565b6541636365737360d01b146108ee576108cd6541636365737360d01b611103565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108f66111eb565b80156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016105ae565b6000546201000090046001600160a01b0316632ca65a796109563390565b6040518263ffffffff1660e01b81526004016109729190611543565b60206040518083038186803b15801561098a57600080fd5b505afa15801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c29190611483565b6109de5760405162461bcd60e51b815260040161034d906115c5565b6105b760025460008484610acc565b6000546201000090046001600160a01b0316632ca65a79610a0b3390565b6040518263ffffffff1660e01b8152600401610a279190611543565b60206040518083038186803b158015610a3f57600080fd5b505afa158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a779190611483565b610a935760405162461bcd60e51b815260040161034d906115c5565b6105b78282610e86565b6000610aab600254836110a8565b92915050565b6002546000908152600660205260408120610aab90836110f7565b6000848152600660205260408120606490610ae6906110ed565b10610b3d5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b606482015260840161034d565b600085815260056020526040902054151580610b565750835b610ba25760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e000000604482015260640161034d565b82610bf95760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b606482015260840161034d565b6000858152600660205260409020610c119084611258565b1580610c6257508276496e7374616e63654f70657261746f725365727669636560481b148015610c62575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610cb95760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b606482015260840161034d565b6001600160a01b038216610d1b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b606482015260840161034d565b60008581526004602090815260408083208684529091529020546001600160a01b0316610d7f576000858152600660205260409020610d5a90846110e1565b506000858152600560205260408120805491610d7583611637565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610dc4906110ed565b60008681526005602052604090205414610e2f5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a79610ea43390565b6040518263ffffffff1660e01b8152600401610ec09190611543565b60206040518083038186803b158015610ed857600080fd5b505afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f109190611483565b610f2c5760405162461bcd60e51b815260040161034d906115c5565b6000828152600660205260409020610f449082611258565b610f905760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e0000604482015260640161034d565b6000828152600660205260409020610fa89082611270565b506000828152600560205260408120805460019290610fc8908490611620565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b031916905584835260069091529020611007906110ed565b600083815260056020526040902054146110725760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a13191016105ae565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b60006107fb838361127c565b6000610aab825490565b60006107fb83836112cb565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611185919061143c565b90506001600160a01b0381166110dc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161034d565b600054610100900460ff166112565760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161034d565b565b600081815260018301602052604081205415156107fb565b60006107fb8383611303565b60008181526001830160205260408120546112c357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610aab565b506000610aab565b60008260000182815481106112f057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120548015611416576000611327600183611620565b855490915060009061133b90600190611620565b90508181146113bc57600086600001828154811061136957634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061139a57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806113db57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610aab565b6000915050610aab565b600060208284031215611431578081fd5b81356107fb81611668565b60006020828403121561144d578081fd5b81516107fb81611668565b6000806040838503121561146a578081fd5b823561147581611668565b946020939093013593505050565b600060208284031215611494578081fd5b815180151581146107fb578182fd5b6000602082840312156114b4578081fd5b5035919050565b600080604083850312156114cd578182fd5b8235915060208301356114df81611668565b809150509250929050565b600080604083850312156114fc578182fd5b50508035926020909101359150565b60008060006060848603121561151f578081fd5b8335925060208401359150604084013561153881611668565b809150509250925092565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000821982111561161b5761161b611652565b500190565b60008282101561163257611632611652565b500390565b600060001982141561164b5761164b611652565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461041a57600080fdfea264697066735822122010fc0f128c1a977b4951f6dee77033c18bcc4363fb956c3ba337add63496ccbf64736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c806376b707b7116100a2578063c4d66de811610071578063c4d66de814610248578063d22057a91461025b578063dc527b081461026e578063e16c7d9814610281578063f6b3e7d01461029457610116565b806376b707b71461021157806386d1a69f14610219578063893917ea14610222578063b0ef18a01461023557610116565b806348cd4cb1116100e957806348cd4cb1146101815780634a941e5e1461018a57806356bbc19d146101d657806369923515146101e95780636c0f79b61461020957610116565b80631d5e73141461011b578063208131541461013057806324042a0a146101435780632ca65a791461015e575b600080fd5b61012e61012936600461150b565b6102a7565b005b61012e61013e3660046114a3565b610368565b61014b606481565b6040519081526020015b60405180910390f35b61017161016c366004611458565b61041d565b6040519015158152602001610155565b61014b60035481565b6101be6101983660046114ea565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610155565b61012e6101e43660046114a3565b610447565b61014b6101f73660046114a3565b60056020526000908152604090205481565b61014b6105bb565b60025461014b565b61014b60025481565b61012e6102303660046114a3565b6105da565b6101be6102433660046114ea565b6107ef565b61012e610256366004611420565b610802565b61012e6102693660046114bb565b610938565b61012e61027c3660046114ea565b6109ed565b6101be61028f3660046114a3565b610a9d565b61014b6102a23660046114a3565b610ab1565b6000546201000090046001600160a01b0316632ca65a796102c53390565b6040518263ffffffff1660e01b81526004016102e19190611543565b60206040518083038186803b1580156102f957600080fd5b505afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103319190611483565b6103565760405162461bcd60e51b815260040161034d906115c5565b60405180910390fd5b6103638360008484610acc565b505050565b6000546201000090046001600160a01b0316632ca65a796103863390565b6040518263ffffffff1660e01b81526004016103a29190611543565b60206040518083038186803b1580156103ba57600080fd5b505afa1580156103ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f29190611483565b61040e5760405162461bcd60e51b815260040161034d906115c5565b61041a60025482610e86565b50565b600061042b600254836110a8565b6001600160a01b0316836001600160a01b031614905092915050565b600054610100900460ff16158080156104675750600054600160ff909116105b806104885750610476306110ce565b158015610488575060005460ff166001145b6104a45760405162461bcd60e51b815260040161034d90611577565b6000805460ff1916600117905580156104c7576000805461ff0019166101001790555b6000805462010000600160b01b03191630620100000217905560028290556104ec3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b039790971696909617909555925482526006905220610556916110e1565b506002546000908152600560205260409020600190554360035580156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b60025460009081526006602052604081206105d5906110ed565b905090565b6000546201000090046001600160a01b0316632ca65a796105f83390565b6040518263ffffffff1660e01b81526004016106149190611543565b60206040518083038186803b15801561062c57600080fd5b505afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611483565b6106805760405162461bcd60e51b815260040161034d906115c5565b600254600090815260056020526040902054806106df5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c454153450000000000604482015260640161034d565b600082815260056020526040902054156107475760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b606482015260840161034d565b60005b818110156107b957600254600090815260066020526040812061076d90836110f7565b60025460009081526004602090815260408083208484529091529020549091506107a690859060019084906001600160a01b0316610acc565b506107b2600182611608565b905061074a565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b4906020016105ae565b60006107fb83836110a8565b9392505050565b600054610100900460ff16158080156108225750600054600160ff909116105b806108435750610831306110ce565b158015610843575060005460ff166001145b61085f5760405162461bcd60e51b815260040161034d90611577565b6000805460ff191660011790558015610882576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556108ac600090565b6541636365737360d01b146108ee576108cd6541636365737360d01b611103565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108f66111eb565b80156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016105ae565b6000546201000090046001600160a01b0316632ca65a796109563390565b6040518263ffffffff1660e01b81526004016109729190611543565b60206040518083038186803b15801561098a57600080fd5b505afa15801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c29190611483565b6109de5760405162461bcd60e51b815260040161034d906115c5565b6105b760025460008484610acc565b6000546201000090046001600160a01b0316632ca65a79610a0b3390565b6040518263ffffffff1660e01b8152600401610a279190611543565b60206040518083038186803b158015610a3f57600080fd5b505afa158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a779190611483565b610a935760405162461bcd60e51b815260040161034d906115c5565b6105b78282610e86565b6000610aab600254836110a8565b92915050565b6002546000908152600660205260408120610aab90836110f7565b6000848152600660205260408120606490610ae6906110ed565b10610b3d5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b606482015260840161034d565b600085815260056020526040902054151580610b565750835b610ba25760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e000000604482015260640161034d565b82610bf95760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b606482015260840161034d565b6000858152600660205260409020610c119084611258565b1580610c6257508276496e7374616e63654f70657261746f725365727669636560481b148015610c62575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610cb95760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b606482015260840161034d565b6001600160a01b038216610d1b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b606482015260840161034d565b60008581526004602090815260408083208684529091529020546001600160a01b0316610d7f576000858152600660205260409020610d5a90846110e1565b506000858152600560205260408120805491610d7583611637565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610dc4906110ed565b60008681526005602052604090205414610e2f5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a79610ea43390565b6040518263ffffffff1660e01b8152600401610ec09190611543565b60206040518083038186803b158015610ed857600080fd5b505afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f109190611483565b610f2c5760405162461bcd60e51b815260040161034d906115c5565b6000828152600660205260409020610f449082611258565b610f905760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e0000604482015260640161034d565b6000828152600660205260409020610fa89082611270565b506000828152600560205260408120805460019290610fc8908490611620565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b031916905584835260069091529020611007906110ed565b600083815260056020526040902054146110725760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a13191016105ae565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b60006107fb838361127c565b6000610aab825490565b60006107fb83836112cb565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611185919061143c565b90506001600160a01b0381166110dc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161034d565b600054610100900460ff166112565760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161034d565b565b600081815260018301602052604081205415156107fb565b60006107fb8383611303565b60008181526001830160205260408120546112c357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610aab565b506000610aab565b60008260000182815481106112f057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120548015611416576000611327600183611620565b855490915060009061133b90600190611620565b90508181146113bc57600086600001828154811061136957634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061139a57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806113db57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610aab565b6000915050610aab565b600060208284031215611431578081fd5b81356107fb81611668565b60006020828403121561144d578081fd5b81516107fb81611668565b6000806040838503121561146a578081fd5b823561147581611668565b946020939093013593505050565b600060208284031215611494578081fd5b815180151581146107fb578182fd5b6000602082840312156114b4578081fd5b5035919050565b600080604083850312156114cd578182fd5b8235915060208301356114df81611668565b809150509250929050565b600080604083850312156114fc578182fd5b50508035926020909101359150565b60008060006060848603121561151f578081fd5b8335925060208401359150604084013561153881611668565b809150509250925092565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000821982111561161b5761161b611652565b500190565b60008282101561163257611632611652565b500390565b600060001982141561164b5761164b611652565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461041a57600080fdfea264697066735822122010fc0f128c1a977b4951f6dee77033c18bcc4363fb956c3ba337add63496ccbf64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.dbg.json b/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.json b/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.json new file mode 100644 index 00000000..1893f3cb --- /dev/null +++ b/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.json @@ -0,0 +1,1022 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TreasuryModule", + "sourceName": "contracts/modules/TreasuryModule.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "callSuccess", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "returnDataLength", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "name": "LogTransferHelperCallFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "tokenIsContract", + "type": "bool" + }, + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "LogTransferHelperInputValidation1Failed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + } + ], + "name": "LogTransferHelperInputValidation2Failed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + } + ], + "name": "LogTreasuryCapitalFeesSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryCapitalProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryCapitalTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "instanceWalletAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryFeesTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "walletAddress", + "type": "address" + } + ], + "name": "LogTreasuryInstanceWalletSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryPayoutProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryPayoutTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + } + ], + "name": "LogTreasuryPremiumFeesSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryPremiumProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryPremiumTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "erc20Address", + "type": "address" + } + ], + "name": "LogTreasuryProductTokenSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "LogTreasuryResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "walletAddress", + "type": "address" + } + ], + "name": "LogTreasuryRiskpoolWalletSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "LogTreasurySuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryWithdrawalProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTreasuryWithdrawalTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "inputs": [], + "name": "FRACTIONAL_FEE_MAX", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FRACTION_FULL_UNIT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "calculateFee", + "outputs": [ + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + } + ], + "name": "createFeeSpecification", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getComponentToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getFeeSpecification", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFractionFullUnit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getInstanceWallet", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getRiskpoolWallet", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "capitalAmount", + "type": "uint256" + } + ], + "name": "processCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netCapitalAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPayoutAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPremium", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "processPremium", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPremiumAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processWithdrawal", + "outputs": [ + { + "internalType": "uint256", + "name": "feeAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resume", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "feeSpec", + "type": "tuple" + } + ], + "name": "setCapitalFees", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "instanceWalletAddress", + "type": "address" + } + ], + "name": "setInstanceWallet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "feeSpec", + "type": "tuple" + } + ], + "name": "setPremiumFees", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "erc20Address", + "type": "address" + } + ], + "name": "setProductToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + } + ], + "name": "setRiskpoolWallet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspend", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506200001c6200002f565b6001805460ff60a01b19169055620000f1565b600054610100900460ff16156200009c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000ef576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61474180620001016000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638ca946aa116100c3578063cab2504d1161007c578063cab2504d1461030d578063cc9cf8cd14610320578063d935807514610333578063e6400bbe14610346578063f964690d1461034e578063fe64372b146103565761014d565b80638ca946aa1461029c5780638ccf5ca2146102af578063a434f0ad146102c7578063a44330c4146102da578063b79f5eab146102eb578063c4d66de8146102fa5761014d565b806334e731221161011557806334e73122146101f7578063490816371461020a5780635c975abb146102335780635ecc078e1461025657806362f0ab551461026957806386039aed146102895761014d565b806301132a7f146101525780630210826814610167578063038696bb1461019c578063046f7da2146101c757806326debdaa146101cf575b600080fd5b610165610160366004613e2c565b610369565b005b61017a610175366004613d37565b6105a3565b6040805193151584526020840192909252908201526060015b60405180910390f35b6101af6101aa366004613d1f565b610aac565b6040516001600160a01b039091168152602001610193565b610165610c24565b6101e26101dd36600461405a565b610cfd565b60408051928352602083019190915201610193565b6101e261020536600461405a565b6113b4565b6101af610218366004613d1f565b6000908152600360205260409020546001600160a01b031690565b610246600154600160a01b900460ff1690565b6040519015158152602001610193565b61017a610264366004613d1f565b611438565b61027c61027736600461406c565b6115b5565b60405161019391906143cb565b61016561029736600461402b565b611825565b6101656102aa366004613e2c565b611b08565b670de0b6b3a76400005b604051908152602001610193565b61027c6102d5366004613d1f565b611d31565b6002546001600160a01b03166101af565b6102b9670de0b6b3a764000081565b610165610308366004613cc0565b611e53565b61016561031b366004613cc0565b611fcd565b61016561032e36600461402b565b612157565b6101e261034136600461405a565b6126ce565b610165612d04565b6102b9612ddd565b6101e2610364366004613d37565b612df3565b61037c600154600160a01b900460ff1690565b156103a25760405162461bcd60e51b815260040161039990614294565b60405180910390fd5b6000546201000090046001600160a01b0316632ca65a796103c03390565b6040518263ffffffff1660e01b81526004016103dc9190614160565b60206040518083038186803b1580156103f457600080fd5b505afa158015610408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042c9190613cff565b6104485760405162461bcd60e51b815260040161039990614347565b600754604051630e48080360e21b8152823560048201526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561048c57600080fd5b505afa1580156104a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c49190613cff565b6105105760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3032323a4e4f545f50524f44554354000000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290610534828261466e565b505080156105545781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527f389ab9b2665a8ef1adf5a151c45e2546c4b1ffe8cfa537dd96a5eb8046b06efe906060015b60405180910390a15050565b60008060006105bb600154600160a01b900460ff1690565b156105d85760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166106005760405162461bcd60e51b81526004016103999061424d565b8460008061060d8361333e565b90925090506001600160a01b0381166106385760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b61064d816134c9565b6001600160a01b0316306001600160a01b03161461067d5760405162461bcd60e51b8152600401610399906142c9565b6106976d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146106c75760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018b90526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561070d57600080fd5b505afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190613f8e565b9050806020015189826040015161075c9190614456565b11156107aa5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5452532d3033303a414d4f554e545f544f4f5f424947000000006044820152606401610399565b60085460405163296586d360e21b8152600481018c90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156107ef57600080fd5b505afa158015610803573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082b9190810190613e64565b905061083b81602001518b6113b4565b6020830151919950975060009061085190610aac565b8251604051636eb1769f60e11b81526001600160a01b0391821660048201523060248201529192508c919083169063dd62ed3e9060440160206040518083038186803b1580156108a057600080fd5b505afa1580156108b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190614013565b10156108ea5760009950505050610aa1565b81516002546109049183916001600160a01b03168c6135b1565b8251600254604051929c507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e9261094792916001600160a01b0316908d9061413c565b60405180910390a1896109a65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3033313a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b6000806109b28e61333e565b915091506109c6838560000151838d6135b1565b9b507f6e18cdd81334cca9a49a7b3a4305750ab3d5e62ee7fa04ab08b28f21a53486718460000151828c6040516109ff9392919061413c565b60405180910390a18b610a625760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3033323a5052454d49554d5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b604080518f8152602081018f90527fc78d1fffca4ae6e34ee8442f7e1bc6fe124bf1a3374c7a902cae38d496ced322910160405180910390a150505050505b505050509250925092565b600754604051630e48080360e21b8152600481018390526000916001600160a01b031690633920200c9060240160206040518083038186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b299190613cff565b80610bab575060075460405163ba80b8ed60e01b8152600481018490526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab9190613cff565b610c055760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3037303a4e4f545f50524f445543545f4f525f52495360448201526412d413d3d360da1b6064820152608401610399565b506000818152600560205260409020546001600160a01b03165b919050565b6000546201000090046001600160a01b0316632ca65a79610c423390565b6040518263ffffffff1660e01b8152600401610c5e9190614160565b60206040518083038186803b158015610c7657600080fd5b505afa158015610c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cae9190613cff565b610cca5760405162461bcd60e51b815260040161039990614347565b610cd26138c3565b6040517f7bd43c6857df1d4fd40c4e86f9cf80ba02adf2e9fdadf03d9e8057eb429fcc5b90600090a1565b600080610d13600154600160a01b900460ff1690565b15610d305760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316610d585760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610da157600080fd5b505afa158015610db5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ddd9190810190613d58565b905060006001600160a01b0316610e0d82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b03161415610e345760405162461bcd60e51b815260040161039990614300565b610e4f6e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b031614610e7f5760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610ec457600080fd5b505afa158015610ed8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f009190810190613d58565b60065460405163620d1b0560e11b8152600481018a90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b158015610f4a57600080fd5b505afa158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190613ce3565b90506000610f938360200151611d31565b90506000816080015111610fe95760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3035303a4645455f535045435f554e444546494e45446044820152606401610399565b6020808401516000908152600590915260409020546001600160a01b0316611011828a613918565b975061101d888a6144ad565b6040516370a0823160e01b81526001600160a01b0385811660048301529198508a918316906370a082319060240160206040518083038186803b15801561106357600080fd5b505afa158015611077573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109b9190614013565b10156110e95760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5452532d3035323a42414c414e43455f544f4f5f534d414c4c006044820152606401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190614013565b10156111d45760405162461bcd60e51b815260206004820152603260248201527f4552524f523a5452532d3035333a4341504954414c5f5452414e534645525f41604482015271131313d5d05390d157d513d3d7d4d350531360721b6064820152608401610399565b6002546000906111f190839086906001600160a01b03168c6135b1565b6002546040519192507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e916112359187916001600160a01b03909116908d9061413c565b60405180910390a1806112945760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3035343a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b60006112b986602001516000908152600360205260409020546001600160a01b031690565b90506112c78386838c6135b1565b91507f4a9a3e028031198ad78a401460c1524a9322592291fed6b5306710aae5ff6d3985828b6040516112fc9392919061413c565b60405180910390a18161135f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3035353a4341504954414c5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b602080870151604080519182529181018e90529081018c90527f855e172a7eb8b6ab1abf4014f1e3683e97000f5c207690b9d8447c9df1c00eb39060600160405180910390a150505050505050509250929050565b60008060006113c285611d31565b905060008160800151116114185760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3032343a4645455f535045435f554e444546494e45446044820152606401610399565b6114228185613918565b925061142e83856144ad565b9150509250929050565b6000806000611450600154600160a01b900460ff1690565b1561146d5760405162461bcd60e51b815260040161039990614294565b67547265617375727960c01b611482816134c9565b6001600160a01b0316306001600160a01b0316146114b25760405162461bcd60e51b8152600401610399906142c9565b6114cc6d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146114fc5760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018790526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561154257600080fd5b505afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613f8e565b90508060200151816040015110156115ac576115a4868260400151836020015161017591906144ad565b919650945092505b50509193909250565b6115ee6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600754604051630e48080360e21b8152600481018890526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561163257600080fd5b505afa158015611646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166a9190613cff565b806116ec575060075460405163ba80b8ed60e01b8152600481018890526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b1580156116b457600080fd5b505afa1580156116c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ec9190613cff565b6117495760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3032303a49445f4e4f545f50524f445543545f4f525f604482015267149254d2d413d3d360c21b6064820152608401610399565b61175c6004670de0b6b3a764000061446e565b8411156117b75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5452532d3032313a46524143494f4e414c5f4645455f544f4f5f60448201526242494760e81b6064820152608401610399565b6040518060c0016040528087815260200186815260200185815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525042602082018190526040909101529695505050505050565b611838600154600160a01b900460ff1690565b156118555760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796118733390565b6040518263ffffffff1660e01b815260040161188f9190614160565b60206040518083038186803b1580156118a757600080fd5b505afa1580156118bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118df9190613cff565b6118fb5760405162461bcd60e51b815260040161039990614347565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119789190613ce3565b60075460405163ba80b8ed60e01b8152600481018690529192506001600160a01b03169063ba80b8ed9060240160206040518083038186803b1580156119bd57600080fd5b505afa1580156119d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f59190613cff565b611a415760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3031363a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b6001600160a01b038216611aa15760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031373a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b60008381526003602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251868152918201527f347fbbd524a9e157686795820f5abf777a026670f7dbaa751f4f190abc52f3a2910160405180910390a1505050565b611b1b600154600160a01b900460ff1690565b15611b385760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a79611b563390565b6040518263ffffffff1660e01b8152600401611b729190614160565b60206040518083038186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190613cff565b611bde5760405162461bcd60e51b815260040161039990614347565b60075460405163ba80b8ed60e01b8152823560048201526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611c2257600080fd5b505afa158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a9190613cff565b611ca65760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3032333a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290611cca828261466e565b50508015611cea5781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527fc3ef28d06d8c4c14101ca058d5b1507f9710ae8e34940a185cff056c375671a990606001610597565b611d6a6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600460008381526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382018054611db690614607565b80601f0160208091040260200160405190810160405280929190818152602001828054611de290614607565b8015611e2f5780601f10611e0457610100808354040283529160200191611e2f565b820191906000526020600020905b815481529060010190602001808311611e1257829003601f168201915b50505050508152602001600482015481526020016005820154815250509050919050565b600054610100900460ff1615808015611e735750600054600160ff909116105b80611e8d5750303b158015611e8d575060005460ff166001145b611ef05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610399565b6000805460ff191660011790558015611f13576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f3d600090565b6541636365737360d01b14611f7f57611f5e6541636365737360d01b6134c9565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611f87613a1c565b8015611fc9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610597565b5050565b611fe0600154600160a01b900460ff1690565b15611ffd5760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a7961201b3390565b6040518263ffffffff1660e01b81526004016120379190614160565b60206040518083038186803b15801561204f57600080fd5b505afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190613cff565b6120a35760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166121035760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031353a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f3769187331e10b0394c677689372317cc625318f5e50b76cb4da221dbdf05ef89060200160405180910390a150565b61216a600154600160a01b900460ff1690565b156121875760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796121a53390565b6040518263ffffffff1660e01b81526004016121c19190614160565b60206040518083038186803b1580156121d957600080fd5b505afa1580156121ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122119190613cff565b61222d5760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166122835760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3031303a544f4b454e5f414444524553535f5a45524f6044820152606401610399565b600754604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ff9190613cff565b61234b5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3031313a4e4f545f50524f44554354000000000000006044820152606401610399565b6000828152600560205260409020546001600160a01b0316156123c05760405162461bcd60e51b815260206004820152602760248201527f4552524f523a5452532d3031323a50524f445543545f544f4b454e5f414c524560448201526610511657d4d15560ca1b6064820152608401610399565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561240557600080fd5b505afa158015612419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243d9190613ce3565b9050816001600160a01b0316816001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561248257600080fd5b505afa158015612496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ba9190613ce3565b6001600160a01b0316146125295760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031333a50524f445543545f544f4b454e5f4144445260448201526f4553535f4e4f545f4d41544348494e4760801b6064820152608401610399565b600954604051630d229f3b60e41b8152600481018590526000916001600160a01b03169063d229f3b09060240160206040518083038186803b15801561256e57600080fd5b505afa158015612582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a69190614013565b6000818152600560205260409020549091506001600160a01b031615806125e657506000818152600560205260409020546001600160a01b038481169116145b61264b5760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031343a5249534b504f4f4c5f544f4b454e5f41444460448201526f524553535f4e4f545f4d414348494e4760801b6064820152608401610399565b600084815260056020908152604080832080546001600160a01b0388166001600160a01b03199182168117909255858552938290208054909416811790935580518781529182018490528101919091527f78b40e42f597552da073de514ce9a92a14a8e48cb9bb12a1fae74564a0dcf3ab9060600160405180910390a150505050565b6000806126e4600154600160a01b900460ff1690565b156127015760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166127295760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561277257600080fd5b505afa158015612786573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127ae9190810190613d58565b905060006001600160a01b03166127de82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b031614156128055760405162461bcd60e51b815260040161039990614300565b6128206e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b0316146128505760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561289557600080fd5b505afa1580156128a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128d19190810190613d58565b9050858160c001516128e39190614456565b8160a00151101580612906575060c08101511580156129065750858160e0015110155b6129785760405162461bcd60e51b815260206004820152603960248201527f4552524f523a5452532d3036303a43415041434954595f4f525f42414c414e4360448201527f455f534d414c4c45525f5448414e5f5749544844524157414c000000000000006064820152608401610399565b600061299d82602001516000908152600360205260409020546001600160a01b031690565b60065460405163620d1b0560e11b8152600481018b90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b1580156129e757600080fd5b505afa1580156129fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1f9190613ce3565b602084810151600090815260059091526040908190205490516370a0823160e01b81526001600160a01b038581166004830152929350911690899082906370a082319060240160206040518083038186803b158015612a7d57600080fd5b505afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab59190614013565b1015612b1b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3036313a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b158015612b6557600080fd5b505afa158015612b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9d9190614013565b1015612c005760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a5452532d3036323a5749544844524157414c5f414c4c4f57414e60448201526b10d157d513d3d7d4d350531360a21b6064820152608401610399565b600097508896506000612c158285858b6135b1565b90507fbe5d373e2476acbcb4aa97c605f358cfe7748bebff73d2d3195f587dc61f59c384848a604051612c4a9392919061413c565b60405180910390a180612cb05760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3036333a5749544844524157414c5f5452414e5346456044820152671497d1905253115160c21b6064820152608401610399565b602080860151604080519182529181018d90529081018990527fdbb3ae752b98a0c1c3c26fe1b0a7faa343da1c6fe5e0a80624f36e8e25e22edf9060600160405180910390a1505050505050509250929050565b6000546201000090046001600160a01b0316632ca65a79612d223390565b6040518263ffffffff1660e01b8152600401612d3e9190614160565b60206040518083038186803b158015612d5657600080fd5b505afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190613cff565b612daa5760405162461bcd60e51b815260040161039990614347565b612db2613b52565b6040517f5508e022c084f2aba2d9ebf198ee0e2e205840df815b91112781505e6798bfdc90600090a1565b612df06004670de0b6b3a764000061446e565b81565b600080612e09600154600160a01b900460ff1690565b15612e265760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316612e4e5760405162461bcd60e51b81526004016103999061424d565b83600080612e5b8361333e565b90925090506001600160a01b038116612e865760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b612e9b816134c9565b6001600160a01b0316306001600160a01b031614612ecb5760405162461bcd60e51b8152600401610399906142c9565b612ee56d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b031614612f155760405162461bcd60e51b81526004016103999061438a565b60085460405163296586d360e21b8152600481018a90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015612f5a57600080fd5b505afa158015612f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f969190810190613e64565b90506000612fa78260200151610aac565b9050600080612fb58c61333e565b915091506000600860009054906101000a90046001600160a01b03166001600160a01b031663cef58f138e8e6040518363ffffffff1660e01b8152600401613007929190918252602082015260400190565b60006040518083038186803b15801561301f57600080fd5b505afa158015613033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261305b9190810190613f14565b60408082015190516370a0823160e01b81526001600160a01b03858116600483015292935090918616906370a082319060240160206040518083038186803b1580156130a657600080fd5b505afa1580156130ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130de9190614013565b10156131445760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3034323a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b6040818101519051636eb1769f60e11b81526001600160a01b03848116600483015230602483015286169063dd62ed3e9060440160206040518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190614013565b10156132275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3034333a5041594f55545f414c4c4f57414e43455f5460448201526713d3d7d4d350531360c21b6064820152608401610399565b600061323d8584886000015185604001516135b1565b6040808401518851915160009f50909d509192507f967b0d7f4806051ef2c1375d324be9be0c739a4e34845bc060210577fd677f85916132809186918f9061413c565b60405180910390a1806132e15760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5452532d3034343a5041594f55545f5452414e534645525f46416044820152631253115160e21b6064820152608401610399565b855160408381015181518781526001600160a01b03909316602084015282820152517f8b5ad77a07a1f8dbb7f91bd53d28ecf3c900534c88f13672f6f2ddcf01ec7f859181900360600190a1505050505050505050509250929050565b60085460405163296586d360e21b815260048101839052600091829182916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561338757600080fd5b505afa15801561339b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133c39190810190613e64565b6009546020820151604051630d229f3b60e41b815260048101919091529192506001600160a01b03169063d229f3b09060240160206040518083038186803b15801561340e57600080fd5b505afa158015613422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134469190614013565b9250600083116134a75760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5452532d3039323a50524f445543545f574954484f55545f524960448201526514d2d413d3d360d21b6064820152608401610399565b505060008181526003602052604090205490926001600160a01b039091169150565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561351357600080fd5b505afa158015613527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354b9190613ce3565b90506001600160a01b038116610c1f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610399565b6000846001600160a01b038082163b151590861615806135d857506001600160a01b038516155b806135e1575080155b1561363c576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a16000925050506138bb565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561368157600080fd5b505afa158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b99190614013565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b15801561370657600080fd5b505afa15801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190614013565b90508582108061374d57508581105b156137985760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a160009450505050506138bb565b6000808a6001600160a01b03166323b872dd8b8b8b6040516024016137bf9392919061413c565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516137f89190614120565b6000604051808303816000865af19150503d8060008114613835576040519150601f19603f3d011682016040523d82523d6000602084013e61383a565b606091505b50915091508180156138705750805115806138705750805160201480156138705750808060200190518101906138709190613cff565b9650866138b4577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b828251836040516138ab9392919061419a565b60405180910390a15b5050505050505b949350505050565b6138cb613b95565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b606082015151600090156139875760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3039303a4645455f43414c43554c4154494f4e5f444160448201526f151057d393d517d4d5541413d495115160821b6064820152608401610399565b5060208201516040830151156139c757670de0b6b3a76400008284604001516139b0919061448e565b6139ba919061446e565b6139c49082614456565b90505b818110613a165760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3039313a4645455f544f4f5f424947000000000000006044820152606401610399565b92915050565b600054610100900460ff16613a875760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610399565b613a996542756e646c6560d01b6134c9565b600680546001600160a01b0319166001600160a01b0392909216919091179055613ace6810dbdb5c1bdb995b9d60ba1b6134c9565b600780546001600160a01b0319166001600160a01b0392909216919091179055613b0065506f6c69637960d01b6134c9565b600880546001600160a01b0319166001600160a01b0392909216919091179055613b3063141bdbdb60e21b6134c9565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b613b5a613bed565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138fb3390565b613ba8600154600160a01b900460ff1690565b613beb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610399565b565b613c00600154600160a01b900460ff1690565b15613beb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610399565b600082601f830112613c50578081fd5b815167ffffffffffffffff811115613c6a57613c6a614658565b613c7d601f8201601f1916602001614425565b818152846020838601011115613c91578283fd5b6138bb8260208301602087016145d7565b805160048110610c1f57600080fd5b805160038110610c1f57600080fd5b600060208284031215613cd1578081fd5b8135613cdc816146f3565b9392505050565b600060208284031215613cf4578081fd5b8151613cdc816146f3565b600060208284031215613d10578081fd5b81518015158114613cdc578182fd5b600060208284031215613d30578081fd5b5035919050565b60008060408385031215613d49578081fd5b50508035926020909101359150565b600060208284031215613d69578081fd5b815167ffffffffffffffff80821115613d80578283fd5b8184019150610140808387031215613d96578384fd5b613d9f81614425565b9050825181526020830151602082015260408301516040820152613dc560608401613ca2565b6060820152608083015182811115613ddb578485fd5b613de787828601613c40565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613e3d578081fd5b813567ffffffffffffffff811115613e53578182fd5b820160c08185031215613cdc578182fd5b600060208284031215613e75578081fd5b815167ffffffffffffffff80821115613e8c578283fd5b9083019060c08286031215613e9f578283fd5b613ea960c0614425565b8251613eb4816146f3565b815260208381015190820152613ecc60408401613cb1565b6040820152606083015182811115613ee2578485fd5b613eee87828601613c40565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613f25578081fd5b815167ffffffffffffffff80821115613f3c578283fd5b9083019060c08286031215613f4f578283fd5b613f5960c0614425565b82518152602083015160028110613f6e578485fd5b602082015260408381015190820152606083015182811115613ee2578485fd5b6000610120808385031215613fa1578182fd5b613faa81614425565b9050613fb583613cb1565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060208284031215614024578081fd5b5051919050565b6000806040838503121561403d578182fd5b82359150602083013561404f816146f3565b809150509250929050565b60008060408385031215613d49578182fd5b600080600080600060808688031215614083578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff808211156140af578283fd5b818801915088601f8301126140c2578283fd5b8135818111156140d0578384fd5b8960208285010111156140e1578384fd5b9699959850939650602001949392505050565b6000815180845261410c8160208601602086016145d7565b601f01601f19169290920160200192915050565b600082516141328184602087016145d7565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60008415158252836020830152606060408301526141bb60608301846140f4565b95945050505050565b60208082526027908201527f4552524f523a5452532d3030323a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526022908201527f4552524f523a5452532d3030353a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b60208082526027908201527f4552524f523a5452532d3030313a494e5354414e43455f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b6020808252818101527f4552524f523a5452532d3030343a54524541535552595f53555350454e444544604082015260600190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526027908201527f4552524f523a5452532d3030333a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015261440560e08401826140f4565b9050608084015160a084015260a084015160c08401528091505092915050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561444e5761444e614658565b604052919050565b6000821982111561446957614469614642565b500190565b60008261448957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156144a8576144a8614642565b500290565b6000828210156144bf576144bf614642565b500390565b5b81811015611fc957600081556001016144c5565b67ffffffffffffffff8311156144f1576144f1614658565b6144fb8154614607565b600080601f8611601f84118181171561451a5760008681526020902092505b8015614549576020601f890104830160208910156145355750825b6145476020601f8801048501826144c4565b505b50806001811461457b57600094508715614564578387013594505b6002880260001960088a021c1986161786556145cd565b601f198816945082845b868110156145a55788860135825560209586019560019092019101614585565b50888610156145c257878501356000196008601f8c16021c191681555b506001600289020186555b5050505050505050565b60005b838110156145f25781810151838201526020016145da565b83811115614601576000848401525b50505050565b60028104600182168061461b57607f821691505b6020821081141561463c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8135815560208201356001820155604082013560028201556060820135601e1983360301811261469d57600080fd5b8201803567ffffffffffffffff8111156146b657600080fd5b6020820191508036038213156146cb57600080fd5b6146d98183600386016144d9565b50506080820135600482015560a082013560058201555050565b6001600160a01b038116811461470857600080fd5b5056fea26469706673582212209c6e17d64e138985579699ae8a3c6c60853f74a96d720c58205175e0cdbe5ef264736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638ca946aa116100c3578063cab2504d1161007c578063cab2504d1461030d578063cc9cf8cd14610320578063d935807514610333578063e6400bbe14610346578063f964690d1461034e578063fe64372b146103565761014d565b80638ca946aa1461029c5780638ccf5ca2146102af578063a434f0ad146102c7578063a44330c4146102da578063b79f5eab146102eb578063c4d66de8146102fa5761014d565b806334e731221161011557806334e73122146101f7578063490816371461020a5780635c975abb146102335780635ecc078e1461025657806362f0ab551461026957806386039aed146102895761014d565b806301132a7f146101525780630210826814610167578063038696bb1461019c578063046f7da2146101c757806326debdaa146101cf575b600080fd5b610165610160366004613e2c565b610369565b005b61017a610175366004613d37565b6105a3565b6040805193151584526020840192909252908201526060015b60405180910390f35b6101af6101aa366004613d1f565b610aac565b6040516001600160a01b039091168152602001610193565b610165610c24565b6101e26101dd36600461405a565b610cfd565b60408051928352602083019190915201610193565b6101e261020536600461405a565b6113b4565b6101af610218366004613d1f565b6000908152600360205260409020546001600160a01b031690565b610246600154600160a01b900460ff1690565b6040519015158152602001610193565b61017a610264366004613d1f565b611438565b61027c61027736600461406c565b6115b5565b60405161019391906143cb565b61016561029736600461402b565b611825565b6101656102aa366004613e2c565b611b08565b670de0b6b3a76400005b604051908152602001610193565b61027c6102d5366004613d1f565b611d31565b6002546001600160a01b03166101af565b6102b9670de0b6b3a764000081565b610165610308366004613cc0565b611e53565b61016561031b366004613cc0565b611fcd565b61016561032e36600461402b565b612157565b6101e261034136600461405a565b6126ce565b610165612d04565b6102b9612ddd565b6101e2610364366004613d37565b612df3565b61037c600154600160a01b900460ff1690565b156103a25760405162461bcd60e51b815260040161039990614294565b60405180910390fd5b6000546201000090046001600160a01b0316632ca65a796103c03390565b6040518263ffffffff1660e01b81526004016103dc9190614160565b60206040518083038186803b1580156103f457600080fd5b505afa158015610408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042c9190613cff565b6104485760405162461bcd60e51b815260040161039990614347565b600754604051630e48080360e21b8152823560048201526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561048c57600080fd5b505afa1580156104a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c49190613cff565b6105105760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3032323a4e4f545f50524f44554354000000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290610534828261466e565b505080156105545781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527f389ab9b2665a8ef1adf5a151c45e2546c4b1ffe8cfa537dd96a5eb8046b06efe906060015b60405180910390a15050565b60008060006105bb600154600160a01b900460ff1690565b156105d85760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166106005760405162461bcd60e51b81526004016103999061424d565b8460008061060d8361333e565b90925090506001600160a01b0381166106385760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b61064d816134c9565b6001600160a01b0316306001600160a01b03161461067d5760405162461bcd60e51b8152600401610399906142c9565b6106976d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146106c75760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018b90526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561070d57600080fd5b505afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190613f8e565b9050806020015189826040015161075c9190614456565b11156107aa5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5452532d3033303a414d4f554e545f544f4f5f424947000000006044820152606401610399565b60085460405163296586d360e21b8152600481018c90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156107ef57600080fd5b505afa158015610803573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082b9190810190613e64565b905061083b81602001518b6113b4565b6020830151919950975060009061085190610aac565b8251604051636eb1769f60e11b81526001600160a01b0391821660048201523060248201529192508c919083169063dd62ed3e9060440160206040518083038186803b1580156108a057600080fd5b505afa1580156108b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190614013565b10156108ea5760009950505050610aa1565b81516002546109049183916001600160a01b03168c6135b1565b8251600254604051929c507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e9261094792916001600160a01b0316908d9061413c565b60405180910390a1896109a65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3033313a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b6000806109b28e61333e565b915091506109c6838560000151838d6135b1565b9b507f6e18cdd81334cca9a49a7b3a4305750ab3d5e62ee7fa04ab08b28f21a53486718460000151828c6040516109ff9392919061413c565b60405180910390a18b610a625760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3033323a5052454d49554d5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b604080518f8152602081018f90527fc78d1fffca4ae6e34ee8442f7e1bc6fe124bf1a3374c7a902cae38d496ced322910160405180910390a150505050505b505050509250925092565b600754604051630e48080360e21b8152600481018390526000916001600160a01b031690633920200c9060240160206040518083038186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b299190613cff565b80610bab575060075460405163ba80b8ed60e01b8152600481018490526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab9190613cff565b610c055760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3037303a4e4f545f50524f445543545f4f525f52495360448201526412d413d3d360da1b6064820152608401610399565b506000818152600560205260409020546001600160a01b03165b919050565b6000546201000090046001600160a01b0316632ca65a79610c423390565b6040518263ffffffff1660e01b8152600401610c5e9190614160565b60206040518083038186803b158015610c7657600080fd5b505afa158015610c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cae9190613cff565b610cca5760405162461bcd60e51b815260040161039990614347565b610cd26138c3565b6040517f7bd43c6857df1d4fd40c4e86f9cf80ba02adf2e9fdadf03d9e8057eb429fcc5b90600090a1565b600080610d13600154600160a01b900460ff1690565b15610d305760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316610d585760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610da157600080fd5b505afa158015610db5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ddd9190810190613d58565b905060006001600160a01b0316610e0d82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b03161415610e345760405162461bcd60e51b815260040161039990614300565b610e4f6e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b031614610e7f5760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610ec457600080fd5b505afa158015610ed8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f009190810190613d58565b60065460405163620d1b0560e11b8152600481018a90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b158015610f4a57600080fd5b505afa158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190613ce3565b90506000610f938360200151611d31565b90506000816080015111610fe95760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3035303a4645455f535045435f554e444546494e45446044820152606401610399565b6020808401516000908152600590915260409020546001600160a01b0316611011828a613918565b975061101d888a6144ad565b6040516370a0823160e01b81526001600160a01b0385811660048301529198508a918316906370a082319060240160206040518083038186803b15801561106357600080fd5b505afa158015611077573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109b9190614013565b10156110e95760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5452532d3035323a42414c414e43455f544f4f5f534d414c4c006044820152606401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190614013565b10156111d45760405162461bcd60e51b815260206004820152603260248201527f4552524f523a5452532d3035333a4341504954414c5f5452414e534645525f41604482015271131313d5d05390d157d513d3d7d4d350531360721b6064820152608401610399565b6002546000906111f190839086906001600160a01b03168c6135b1565b6002546040519192507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e916112359187916001600160a01b03909116908d9061413c565b60405180910390a1806112945760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3035343a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b60006112b986602001516000908152600360205260409020546001600160a01b031690565b90506112c78386838c6135b1565b91507f4a9a3e028031198ad78a401460c1524a9322592291fed6b5306710aae5ff6d3985828b6040516112fc9392919061413c565b60405180910390a18161135f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3035353a4341504954414c5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b602080870151604080519182529181018e90529081018c90527f855e172a7eb8b6ab1abf4014f1e3683e97000f5c207690b9d8447c9df1c00eb39060600160405180910390a150505050505050509250929050565b60008060006113c285611d31565b905060008160800151116114185760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3032343a4645455f535045435f554e444546494e45446044820152606401610399565b6114228185613918565b925061142e83856144ad565b9150509250929050565b6000806000611450600154600160a01b900460ff1690565b1561146d5760405162461bcd60e51b815260040161039990614294565b67547265617375727960c01b611482816134c9565b6001600160a01b0316306001600160a01b0316146114b25760405162461bcd60e51b8152600401610399906142c9565b6114cc6d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146114fc5760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018790526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561154257600080fd5b505afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613f8e565b90508060200151816040015110156115ac576115a4868260400151836020015161017591906144ad565b919650945092505b50509193909250565b6115ee6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600754604051630e48080360e21b8152600481018890526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561163257600080fd5b505afa158015611646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166a9190613cff565b806116ec575060075460405163ba80b8ed60e01b8152600481018890526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b1580156116b457600080fd5b505afa1580156116c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ec9190613cff565b6117495760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3032303a49445f4e4f545f50524f445543545f4f525f604482015267149254d2d413d3d360c21b6064820152608401610399565b61175c6004670de0b6b3a764000061446e565b8411156117b75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5452532d3032313a46524143494f4e414c5f4645455f544f4f5f60448201526242494760e81b6064820152608401610399565b6040518060c0016040528087815260200186815260200185815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525042602082018190526040909101529695505050505050565b611838600154600160a01b900460ff1690565b156118555760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796118733390565b6040518263ffffffff1660e01b815260040161188f9190614160565b60206040518083038186803b1580156118a757600080fd5b505afa1580156118bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118df9190613cff565b6118fb5760405162461bcd60e51b815260040161039990614347565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119789190613ce3565b60075460405163ba80b8ed60e01b8152600481018690529192506001600160a01b03169063ba80b8ed9060240160206040518083038186803b1580156119bd57600080fd5b505afa1580156119d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f59190613cff565b611a415760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3031363a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b6001600160a01b038216611aa15760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031373a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b60008381526003602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251868152918201527f347fbbd524a9e157686795820f5abf777a026670f7dbaa751f4f190abc52f3a2910160405180910390a1505050565b611b1b600154600160a01b900460ff1690565b15611b385760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a79611b563390565b6040518263ffffffff1660e01b8152600401611b729190614160565b60206040518083038186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190613cff565b611bde5760405162461bcd60e51b815260040161039990614347565b60075460405163ba80b8ed60e01b8152823560048201526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611c2257600080fd5b505afa158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a9190613cff565b611ca65760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3032333a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290611cca828261466e565b50508015611cea5781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527fc3ef28d06d8c4c14101ca058d5b1507f9710ae8e34940a185cff056c375671a990606001610597565b611d6a6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600460008381526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382018054611db690614607565b80601f0160208091040260200160405190810160405280929190818152602001828054611de290614607565b8015611e2f5780601f10611e0457610100808354040283529160200191611e2f565b820191906000526020600020905b815481529060010190602001808311611e1257829003601f168201915b50505050508152602001600482015481526020016005820154815250509050919050565b600054610100900460ff1615808015611e735750600054600160ff909116105b80611e8d5750303b158015611e8d575060005460ff166001145b611ef05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610399565b6000805460ff191660011790558015611f13576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f3d600090565b6541636365737360d01b14611f7f57611f5e6541636365737360d01b6134c9565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611f87613a1c565b8015611fc9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610597565b5050565b611fe0600154600160a01b900460ff1690565b15611ffd5760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a7961201b3390565b6040518263ffffffff1660e01b81526004016120379190614160565b60206040518083038186803b15801561204f57600080fd5b505afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190613cff565b6120a35760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166121035760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031353a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f3769187331e10b0394c677689372317cc625318f5e50b76cb4da221dbdf05ef89060200160405180910390a150565b61216a600154600160a01b900460ff1690565b156121875760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796121a53390565b6040518263ffffffff1660e01b81526004016121c19190614160565b60206040518083038186803b1580156121d957600080fd5b505afa1580156121ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122119190613cff565b61222d5760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166122835760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3031303a544f4b454e5f414444524553535f5a45524f6044820152606401610399565b600754604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ff9190613cff565b61234b5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3031313a4e4f545f50524f44554354000000000000006044820152606401610399565b6000828152600560205260409020546001600160a01b0316156123c05760405162461bcd60e51b815260206004820152602760248201527f4552524f523a5452532d3031323a50524f445543545f544f4b454e5f414c524560448201526610511657d4d15560ca1b6064820152608401610399565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561240557600080fd5b505afa158015612419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243d9190613ce3565b9050816001600160a01b0316816001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561248257600080fd5b505afa158015612496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ba9190613ce3565b6001600160a01b0316146125295760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031333a50524f445543545f544f4b454e5f4144445260448201526f4553535f4e4f545f4d41544348494e4760801b6064820152608401610399565b600954604051630d229f3b60e41b8152600481018590526000916001600160a01b03169063d229f3b09060240160206040518083038186803b15801561256e57600080fd5b505afa158015612582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a69190614013565b6000818152600560205260409020549091506001600160a01b031615806125e657506000818152600560205260409020546001600160a01b038481169116145b61264b5760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031343a5249534b504f4f4c5f544f4b454e5f41444460448201526f524553535f4e4f545f4d414348494e4760801b6064820152608401610399565b600084815260056020908152604080832080546001600160a01b0388166001600160a01b03199182168117909255858552938290208054909416811790935580518781529182018490528101919091527f78b40e42f597552da073de514ce9a92a14a8e48cb9bb12a1fae74564a0dcf3ab9060600160405180910390a150505050565b6000806126e4600154600160a01b900460ff1690565b156127015760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166127295760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561277257600080fd5b505afa158015612786573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127ae9190810190613d58565b905060006001600160a01b03166127de82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b031614156128055760405162461bcd60e51b815260040161039990614300565b6128206e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b0316146128505760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561289557600080fd5b505afa1580156128a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128d19190810190613d58565b9050858160c001516128e39190614456565b8160a00151101580612906575060c08101511580156129065750858160e0015110155b6129785760405162461bcd60e51b815260206004820152603960248201527f4552524f523a5452532d3036303a43415041434954595f4f525f42414c414e4360448201527f455f534d414c4c45525f5448414e5f5749544844524157414c000000000000006064820152608401610399565b600061299d82602001516000908152600360205260409020546001600160a01b031690565b60065460405163620d1b0560e11b8152600481018b90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b1580156129e757600080fd5b505afa1580156129fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1f9190613ce3565b602084810151600090815260059091526040908190205490516370a0823160e01b81526001600160a01b038581166004830152929350911690899082906370a082319060240160206040518083038186803b158015612a7d57600080fd5b505afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab59190614013565b1015612b1b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3036313a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b158015612b6557600080fd5b505afa158015612b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9d9190614013565b1015612c005760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a5452532d3036323a5749544844524157414c5f414c4c4f57414e60448201526b10d157d513d3d7d4d350531360a21b6064820152608401610399565b600097508896506000612c158285858b6135b1565b90507fbe5d373e2476acbcb4aa97c605f358cfe7748bebff73d2d3195f587dc61f59c384848a604051612c4a9392919061413c565b60405180910390a180612cb05760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3036333a5749544844524157414c5f5452414e5346456044820152671497d1905253115160c21b6064820152608401610399565b602080860151604080519182529181018d90529081018990527fdbb3ae752b98a0c1c3c26fe1b0a7faa343da1c6fe5e0a80624f36e8e25e22edf9060600160405180910390a1505050505050509250929050565b6000546201000090046001600160a01b0316632ca65a79612d223390565b6040518263ffffffff1660e01b8152600401612d3e9190614160565b60206040518083038186803b158015612d5657600080fd5b505afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190613cff565b612daa5760405162461bcd60e51b815260040161039990614347565b612db2613b52565b6040517f5508e022c084f2aba2d9ebf198ee0e2e205840df815b91112781505e6798bfdc90600090a1565b612df06004670de0b6b3a764000061446e565b81565b600080612e09600154600160a01b900460ff1690565b15612e265760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316612e4e5760405162461bcd60e51b81526004016103999061424d565b83600080612e5b8361333e565b90925090506001600160a01b038116612e865760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b612e9b816134c9565b6001600160a01b0316306001600160a01b031614612ecb5760405162461bcd60e51b8152600401610399906142c9565b612ee56d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b031614612f155760405162461bcd60e51b81526004016103999061438a565b60085460405163296586d360e21b8152600481018a90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015612f5a57600080fd5b505afa158015612f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f969190810190613e64565b90506000612fa78260200151610aac565b9050600080612fb58c61333e565b915091506000600860009054906101000a90046001600160a01b03166001600160a01b031663cef58f138e8e6040518363ffffffff1660e01b8152600401613007929190918252602082015260400190565b60006040518083038186803b15801561301f57600080fd5b505afa158015613033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261305b9190810190613f14565b60408082015190516370a0823160e01b81526001600160a01b03858116600483015292935090918616906370a082319060240160206040518083038186803b1580156130a657600080fd5b505afa1580156130ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130de9190614013565b10156131445760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3034323a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b6040818101519051636eb1769f60e11b81526001600160a01b03848116600483015230602483015286169063dd62ed3e9060440160206040518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190614013565b10156132275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3034333a5041594f55545f414c4c4f57414e43455f5460448201526713d3d7d4d350531360c21b6064820152608401610399565b600061323d8584886000015185604001516135b1565b6040808401518851915160009f50909d509192507f967b0d7f4806051ef2c1375d324be9be0c739a4e34845bc060210577fd677f85916132809186918f9061413c565b60405180910390a1806132e15760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5452532d3034343a5041594f55545f5452414e534645525f46416044820152631253115160e21b6064820152608401610399565b855160408381015181518781526001600160a01b03909316602084015282820152517f8b5ad77a07a1f8dbb7f91bd53d28ecf3c900534c88f13672f6f2ddcf01ec7f859181900360600190a1505050505050505050509250929050565b60085460405163296586d360e21b815260048101839052600091829182916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561338757600080fd5b505afa15801561339b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133c39190810190613e64565b6009546020820151604051630d229f3b60e41b815260048101919091529192506001600160a01b03169063d229f3b09060240160206040518083038186803b15801561340e57600080fd5b505afa158015613422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134469190614013565b9250600083116134a75760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5452532d3039323a50524f445543545f574954484f55545f524960448201526514d2d413d3d360d21b6064820152608401610399565b505060008181526003602052604090205490926001600160a01b039091169150565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561351357600080fd5b505afa158015613527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354b9190613ce3565b90506001600160a01b038116610c1f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610399565b6000846001600160a01b038082163b151590861615806135d857506001600160a01b038516155b806135e1575080155b1561363c576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a16000925050506138bb565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561368157600080fd5b505afa158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b99190614013565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b15801561370657600080fd5b505afa15801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190614013565b90508582108061374d57508581105b156137985760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a160009450505050506138bb565b6000808a6001600160a01b03166323b872dd8b8b8b6040516024016137bf9392919061413c565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516137f89190614120565b6000604051808303816000865af19150503d8060008114613835576040519150601f19603f3d011682016040523d82523d6000602084013e61383a565b606091505b50915091508180156138705750805115806138705750805160201480156138705750808060200190518101906138709190613cff565b9650866138b4577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b828251836040516138ab9392919061419a565b60405180910390a15b5050505050505b949350505050565b6138cb613b95565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b606082015151600090156139875760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3039303a4645455f43414c43554c4154494f4e5f444160448201526f151057d393d517d4d5541413d495115160821b6064820152608401610399565b5060208201516040830151156139c757670de0b6b3a76400008284604001516139b0919061448e565b6139ba919061446e565b6139c49082614456565b90505b818110613a165760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3039313a4645455f544f4f5f424947000000000000006044820152606401610399565b92915050565b600054610100900460ff16613a875760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610399565b613a996542756e646c6560d01b6134c9565b600680546001600160a01b0319166001600160a01b0392909216919091179055613ace6810dbdb5c1bdb995b9d60ba1b6134c9565b600780546001600160a01b0319166001600160a01b0392909216919091179055613b0065506f6c69637960d01b6134c9565b600880546001600160a01b0319166001600160a01b0392909216919091179055613b3063141bdbdb60e21b6134c9565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b613b5a613bed565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138fb3390565b613ba8600154600160a01b900460ff1690565b613beb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610399565b565b613c00600154600160a01b900460ff1690565b15613beb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610399565b600082601f830112613c50578081fd5b815167ffffffffffffffff811115613c6a57613c6a614658565b613c7d601f8201601f1916602001614425565b818152846020838601011115613c91578283fd5b6138bb8260208301602087016145d7565b805160048110610c1f57600080fd5b805160038110610c1f57600080fd5b600060208284031215613cd1578081fd5b8135613cdc816146f3565b9392505050565b600060208284031215613cf4578081fd5b8151613cdc816146f3565b600060208284031215613d10578081fd5b81518015158114613cdc578182fd5b600060208284031215613d30578081fd5b5035919050565b60008060408385031215613d49578081fd5b50508035926020909101359150565b600060208284031215613d69578081fd5b815167ffffffffffffffff80821115613d80578283fd5b8184019150610140808387031215613d96578384fd5b613d9f81614425565b9050825181526020830151602082015260408301516040820152613dc560608401613ca2565b6060820152608083015182811115613ddb578485fd5b613de787828601613c40565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613e3d578081fd5b813567ffffffffffffffff811115613e53578182fd5b820160c08185031215613cdc578182fd5b600060208284031215613e75578081fd5b815167ffffffffffffffff80821115613e8c578283fd5b9083019060c08286031215613e9f578283fd5b613ea960c0614425565b8251613eb4816146f3565b815260208381015190820152613ecc60408401613cb1565b6040820152606083015182811115613ee2578485fd5b613eee87828601613c40565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613f25578081fd5b815167ffffffffffffffff80821115613f3c578283fd5b9083019060c08286031215613f4f578283fd5b613f5960c0614425565b82518152602083015160028110613f6e578485fd5b602082015260408381015190820152606083015182811115613ee2578485fd5b6000610120808385031215613fa1578182fd5b613faa81614425565b9050613fb583613cb1565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060208284031215614024578081fd5b5051919050565b6000806040838503121561403d578182fd5b82359150602083013561404f816146f3565b809150509250929050565b60008060408385031215613d49578182fd5b600080600080600060808688031215614083578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff808211156140af578283fd5b818801915088601f8301126140c2578283fd5b8135818111156140d0578384fd5b8960208285010111156140e1578384fd5b9699959850939650602001949392505050565b6000815180845261410c8160208601602086016145d7565b601f01601f19169290920160200192915050565b600082516141328184602087016145d7565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60008415158252836020830152606060408301526141bb60608301846140f4565b95945050505050565b60208082526027908201527f4552524f523a5452532d3030323a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526022908201527f4552524f523a5452532d3030353a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b60208082526027908201527f4552524f523a5452532d3030313a494e5354414e43455f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b6020808252818101527f4552524f523a5452532d3030343a54524541535552595f53555350454e444544604082015260600190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526027908201527f4552524f523a5452532d3030333a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015261440560e08401826140f4565b9050608084015160a084015260a084015160c08401528091505092915050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561444e5761444e614658565b604052919050565b6000821982111561446957614469614642565b500190565b60008261448957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156144a8576144a8614642565b500290565b6000828210156144bf576144bf614642565b500390565b5b81811015611fc957600081556001016144c5565b67ffffffffffffffff8311156144f1576144f1614658565b6144fb8154614607565b600080601f8611601f84118181171561451a5760008681526020902092505b8015614549576020601f890104830160208910156145355750825b6145476020601f8801048501826144c4565b505b50806001811461457b57600094508715614564578387013594505b6002880260001960088a021c1986161786556145cd565b601f198816945082845b868110156145a55788860135825560209586019560019092019101614585565b50888610156145c257878501356000196008601f8c16021c191681555b506001600289020186555b5050505050505050565b60005b838110156145f25781810151838201526020016145da565b83811115614601576000848401525b50505050565b60028104600182168061461b57607f821691505b6020821081141561463c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8135815560208201356001820155604082013560028201556060820135601e1983360301811261469d57600080fd5b8201803567ffffffffffffffff8111156146b657600080fd5b6020820191508036038213156146cb57600080fd5b6146d98183600386016144d9565b50506080820135600482015560a082013560058201555050565b6001600160a01b038116811461470857600080fd5b5056fea26469706673582212209c6e17d64e138985579699ae8a3c6c60853f74a96d720c58205175e0cdbe5ef264736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.dbg.json b/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.json b/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.json new file mode 100644 index 00000000..fa75c458 --- /dev/null +++ b/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.json @@ -0,0 +1,115 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ComponentOwnerService", + "sourceName": "contracts/services/ComponentOwnerService.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "archive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IComponent", + "name": "component", + "type": "address" + } + ], + "name": "propose", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "stake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6118e0806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806393c829fc1161005b57806393c829fc146100bd578063a694fc3a146100d0578063c4d66de8146100e3578063fabc1cbc146100f65761007d565b80630126795114610082578063136439dd146100975780632e1a7d4d146100aa575b600080fd5b610095610090366004611700565b610109565b005b6100956100a5366004611796565b610422565b6100956100b8366004611796565b610764565b6100956100cb366004611796565b610a94565b6100956100de366004611796565b610da1565b6100956100f1366004611700565b6110d1565b610095610104366004611796565b611256565b806000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561014557600080fd5b505afa158015610159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017d9190611723565b90506000600260009054906101000a90046001600160a01b03166001600160a01b0316635af89a47846001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101de57600080fd5b505afa1580156101f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102169190611777565b6040518263ffffffff1660e01b815260040161023291906117ae565b60206040518083038186803b15801561024a57600080fd5b505afa15801561025e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610282919061175f565b9050336001600160a01b038316146102e15760405162461bcd60e51b815260206004820152601760248201527f4552524f523a434f532d3030313a4e4f545f4f574e455200000000000000000060448201526064015b60405180910390fd5b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561032d57600080fd5b505afa158015610341573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610365919061173f565b6103bd5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030323a52455155495245445f524f4c455f4d495353604482015262494e4760e81b60648201526084016102d8565b600254604051630126795160e01b81526001600160a01b03868116600483015290911690630126795190602401600060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b5050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561046b57600080fd5b505afa15801561047f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a39190611723565b90506001600160a01b0381166104cb5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561050657600080fd5b505afa15801561051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053e9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b15801561059057600080fd5b505afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c89190611777565b6040518263ffffffff1660e01b81526004016105e491906117ae565b60206040518083038186803b1580156105fc57600080fd5b505afa158015610610573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610634919061175f565b9050336001600160a01b0383161461065e5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156106aa57600080fd5b505afa1580156106be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e2919061173f565b6106fe5760405162461bcd60e51b81526004016102d89061180d565b60025460405163136439dd60e01b8152600481018790526001600160a01b039091169063136439dd906024015b600060405180830381600087803b15801561074557600080fd5b505af1158015610759573d6000803e3d6000fd5b505050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e59190611723565b90506001600160a01b03811661080d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561084857600080fd5b505afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611777565b6040518263ffffffff1660e01b815260040161092691906117ae565b60206040518083038186803b15801561093e57600080fd5b505afa158015610952573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610976919061175f565b9050336001600160a01b038316146109a05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156109ec57600080fd5b505afa158015610a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a24919061173f565b610a405760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030373a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190611723565b90506001600160a01b038116610b3d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7857600080fd5b505afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb09190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610c0257600080fd5b505afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a9190611777565b6040518263ffffffff1660e01b8152600401610c5691906117ae565b60206040518083038186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca6919061175f565b9050336001600160a01b03831614610cd05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b158015610d1c57600080fd5b505afa158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d54919061173f565b610d705760405162461bcd60e51b81526004016102d89061180d565b600254604051636bc607b360e01b8152600481018790526001600160a01b0390911690636bc607b39060240161072b565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610dea57600080fd5b505afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e229190611723565b90506001600160a01b038116610e4a5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8557600080fd5b505afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190611777565b6040518263ffffffff1660e01b8152600401610f6391906117ae565b60206040518083038186803b158015610f7b57600080fd5b505afa158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb3919061175f565b9050336001600160a01b03831614610fdd5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611061919061173f565b61107d5760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030363a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b600054610100900460ff16158080156110f15750600054600160ff909116105b80611112575061110030611563565b158015611112575060005460ff166001145b6111755760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102d8565b6000805460ff191660011790558015611198576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111c2600090565b6541636365737360d01b14611204576111e36541636365737360d01b611576565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61120c61165e565b8015611252576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561129f57600080fd5b505afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190611723565b90506001600160a01b0381166112ff5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156113c457600080fd5b505afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc9190611777565b6040518263ffffffff1660e01b815260040161141891906117ae565b60206040518083038186803b15801561143057600080fd5b505afa158015611444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611468919061175f565b9050336001600160a01b038316146114925760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156114de57600080fd5b505afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611516919061173f565b6115325760405162461bcd60e51b81526004016102d89061180d565b600254604051633eaf072f60e21b8152600481018790526001600160a01b039091169063fabc1cbc9060240161072b565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156115c057600080fd5b505afa1580156115d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f89190611723565b90506001600160a01b0381166115715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016102d8565b600054610100900460ff166116c95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102d8565b6116de6810dbdb5c1bdb995b9d60ba1b611576565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215611711578081fd5b813561171c81611892565b9392505050565b600060208284031215611734578081fd5b815161171c81611892565b600060208284031215611750578081fd5b8151801515811461171c578182fd5b600060208284031215611770578081fd5b5051919050565b600060208284031215611788578081fd5b81516003811061171c578182fd5b6000602082840312156117a7578081fd5b5035919050565b60208101600383106117d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208082526017908201527f4552524f523a434f532d3030343a4e4f545f4f574e4552000000000000000000604082015260600190565b60208082526023908201527f4552524f523a434f532d3030353a52455155495245445f524f4c455f4d495353604082015262494e4760e81b606082015260800190565b60208082526022908201527f4552524f523a434f532d3030333a434f4d504f4e454e545f49445f494e56414c604082015261125160f21b606082015260800190565b6001600160a01b03811681146118a757600080fd5b5056fea26469706673582212204fada8cc38a6834cba510a9d1fd15248263b594551f2057738c5fe9a6731ec8e64736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806393c829fc1161005b57806393c829fc146100bd578063a694fc3a146100d0578063c4d66de8146100e3578063fabc1cbc146100f65761007d565b80630126795114610082578063136439dd146100975780632e1a7d4d146100aa575b600080fd5b610095610090366004611700565b610109565b005b6100956100a5366004611796565b610422565b6100956100b8366004611796565b610764565b6100956100cb366004611796565b610a94565b6100956100de366004611796565b610da1565b6100956100f1366004611700565b6110d1565b610095610104366004611796565b611256565b806000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561014557600080fd5b505afa158015610159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017d9190611723565b90506000600260009054906101000a90046001600160a01b03166001600160a01b0316635af89a47846001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101de57600080fd5b505afa1580156101f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102169190611777565b6040518263ffffffff1660e01b815260040161023291906117ae565b60206040518083038186803b15801561024a57600080fd5b505afa15801561025e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610282919061175f565b9050336001600160a01b038316146102e15760405162461bcd60e51b815260206004820152601760248201527f4552524f523a434f532d3030313a4e4f545f4f574e455200000000000000000060448201526064015b60405180910390fd5b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561032d57600080fd5b505afa158015610341573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610365919061173f565b6103bd5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030323a52455155495245445f524f4c455f4d495353604482015262494e4760e81b60648201526084016102d8565b600254604051630126795160e01b81526001600160a01b03868116600483015290911690630126795190602401600060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b5050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561046b57600080fd5b505afa15801561047f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a39190611723565b90506001600160a01b0381166104cb5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561050657600080fd5b505afa15801561051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053e9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b15801561059057600080fd5b505afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c89190611777565b6040518263ffffffff1660e01b81526004016105e491906117ae565b60206040518083038186803b1580156105fc57600080fd5b505afa158015610610573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610634919061175f565b9050336001600160a01b0383161461065e5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156106aa57600080fd5b505afa1580156106be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e2919061173f565b6106fe5760405162461bcd60e51b81526004016102d89061180d565b60025460405163136439dd60e01b8152600481018790526001600160a01b039091169063136439dd906024015b600060405180830381600087803b15801561074557600080fd5b505af1158015610759573d6000803e3d6000fd5b505050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e59190611723565b90506001600160a01b03811661080d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561084857600080fd5b505afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611777565b6040518263ffffffff1660e01b815260040161092691906117ae565b60206040518083038186803b15801561093e57600080fd5b505afa158015610952573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610976919061175f565b9050336001600160a01b038316146109a05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156109ec57600080fd5b505afa158015610a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a24919061173f565b610a405760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030373a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190611723565b90506001600160a01b038116610b3d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7857600080fd5b505afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb09190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610c0257600080fd5b505afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a9190611777565b6040518263ffffffff1660e01b8152600401610c5691906117ae565b60206040518083038186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca6919061175f565b9050336001600160a01b03831614610cd05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b158015610d1c57600080fd5b505afa158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d54919061173f565b610d705760405162461bcd60e51b81526004016102d89061180d565b600254604051636bc607b360e01b8152600481018790526001600160a01b0390911690636bc607b39060240161072b565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610dea57600080fd5b505afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e229190611723565b90506001600160a01b038116610e4a5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8557600080fd5b505afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190611777565b6040518263ffffffff1660e01b8152600401610f6391906117ae565b60206040518083038186803b158015610f7b57600080fd5b505afa158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb3919061175f565b9050336001600160a01b03831614610fdd5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611061919061173f565b61107d5760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030363a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b600054610100900460ff16158080156110f15750600054600160ff909116105b80611112575061110030611563565b158015611112575060005460ff166001145b6111755760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102d8565b6000805460ff191660011790558015611198576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111c2600090565b6541636365737360d01b14611204576111e36541636365737360d01b611576565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61120c61165e565b8015611252576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561129f57600080fd5b505afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190611723565b90506001600160a01b0381166112ff5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156113c457600080fd5b505afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc9190611777565b6040518263ffffffff1660e01b815260040161141891906117ae565b60206040518083038186803b15801561143057600080fd5b505afa158015611444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611468919061175f565b9050336001600160a01b038316146114925760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156114de57600080fd5b505afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611516919061173f565b6115325760405162461bcd60e51b81526004016102d89061180d565b600254604051633eaf072f60e21b8152600481018790526001600160a01b039091169063fabc1cbc9060240161072b565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156115c057600080fd5b505afa1580156115d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f89190611723565b90506001600160a01b0381166115715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016102d8565b600054610100900460ff166116c95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102d8565b6116de6810dbdb5c1bdb995b9d60ba1b611576565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215611711578081fd5b813561171c81611892565b9392505050565b600060208284031215611734578081fd5b815161171c81611892565b600060208284031215611750578081fd5b8151801515811461171c578182fd5b600060208284031215611770578081fd5b5051919050565b600060208284031215611788578081fd5b81516003811061171c578182fd5b6000602082840312156117a7578081fd5b5035919050565b60208101600383106117d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208082526017908201527f4552524f523a434f532d3030343a4e4f545f4f574e4552000000000000000000604082015260600190565b60208082526023908201527f4552524f523a434f532d3030353a52455155495245445f524f4c455f4d495353604082015262494e4760e81b606082015260800190565b60208082526022908201527f4552524f523a434f532d3030333a434f4d504f4e454e545f49445f494e56414c604082015261125160f21b606082015260800190565b6001600160a01b03811681146118a757600080fd5b5056fea26469706673582212204fada8cc38a6834cba510a9d1fd15248263b594551f2057738c5fe9a6731ec8e64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.dbg.json b/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.json b/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.json new file mode 100644 index 00000000..67f56cb0 --- /dev/null +++ b/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.json @@ -0,0 +1,556 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "InstanceOperatorService", + "sourceName": "contracts/services/InstanceOperatorService.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "adjustStakingRequirements", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "archive", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + } + ], + "name": "createFeeSpecification", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_role", + "type": "bytes32" + } + ], + "name": "createRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "decline", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "deregister", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "deregisterInRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_role", + "type": "bytes32" + } + ], + "name": "invalidateRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_newRelease", + "type": "bytes32" + } + ], + "name": "prepareRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_contractAddress", + "type": "address" + } + ], + "name": "register", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_contractAddress", + "type": "address" + } + ], + "name": "registerInRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "resume", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "feeSpec", + "type": "tuple" + } + ], + "name": "setCapitalFees", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "componentType", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "setDefaultStaking", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "walletAddress", + "type": "address" + } + ], + "name": "setInstanceWallet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fixedFee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fractionalFee", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "feeCalculationData", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct ITreasury.FeeSpecification", + "name": "feeSpec", + "type": "tuple" + } + ], + "name": "setPremiumFees", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "erc20Address", + "type": "address" + } + ], + "name": "setProductToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "riskpoolWalletAddress", + "type": "address" + } + ], + "name": "setRiskpoolWallet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "suspend", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendTreasury", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610019610027565b610022336100e7565b610139565b600054610100900460ff16156100935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611be380620001496000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063cc9cf8cd11610097578063d547741f11610071578063d547741f1461039b578063d5fe1f10146103ae578063dc527b08146103b6578063f2fde38b146103c9576101c4565b8063cc9cf8cd14610362578063d17d023314610375578063d22057a914610388576101c4565b8063b759f954116100d3578063b759f95414610316578063c42994a214610329578063c4d66de81461033c578063cab2504d1461034f576101c4565b80638da5cb5b146102d557806393c829fc146102f0578063a0355f4e14610303576101c4565b80634b8658461161016657806372beb6fb1161014057806372beb6fb1461028957806386039aed1461029c578063893917ea146102af5780638ca946aa146102c2576101c4565b80634b8658461461024557806362f0ab5514610258578063715018a614610281576101c4565b806320813154116101a257806320813154146101f95780632f2ff15d1461020c578063394c78ba1461021f578063414000b514610232576101c4565b806301132a7f146101c957806310a81c4a146101de5780631d5e7314146101e6575b600080fd5b6101dc6101d7366004611794565b6103dc565b005b6101dc610474565b6101dc6101f436600461175c565b610508565b6101dc6102073660046116f4565b6105ac565b6101dc61021a36600461170c565b61060c565b6101dc61022d36600461186c565b6106a1565b6101dc6102403660046116f4565b61071f565b6101dc6102533660046116f4565b61077a565b61026b610266366004611920565b6107d5565b6040516102789190611a82565b60405180910390f35b6101dc6108a4565b6101dc6102973660046118ef565b6108b8565b6101dc6102aa3660046118dd565b610936565b6101dc6102bd3660046116f4565b610999565b6101dc6102d0366004611794565b6109f9565b6002546040516001600160a01b039091168152602001610278565b6101dc6102fe3660046116f4565b610a53565b6101dc6103113660046116f4565b610aae565b6101dc6103243660046116f4565b610b09565b6101dc6103373660046116f4565b610d58565b6101dc61034a366004611695565b610db3565b6101dc61035d366004611695565b610f38565b6101dc6103703660046118dd565b610f94565b6101dc6103833660046116f4565b610ff7565b6101dc61039636600461170c565b611052565b6101dc6103a936600461170c565b6110bc565b6101dc61111f565b6101dc6103c436600461173b565b611199565b6101dc6103d7366004611695565b611200565b6002546001600160a01b0316331461040f5760405162461bcd60e51b8152600401610406906119a9565b60405180910390fd5b6005546040516301132a7f60e01b81526001600160a01b03909116906301132a7f9061043f9084906004016119ec565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b5050505050565b6002546001600160a01b0316331461049e5760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663046f7da26040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b50505050565b6002546001600160a01b031633146105325760405162461bcd60e51b8152600401610406906119a9565b6000546040516307579cc560e21b815260048101859052602481018490526001600160a01b0383811660448301526201000090920490911690631d5e7314906064015b600060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b50505050505050565b6002546001600160a01b031633146105d65760405162461bcd60e51b8152600401610406906119a9565b6000546040516308204c5560e21b815260048101839052620100009091046001600160a01b03169063208131549060240161043f565b6002546001600160a01b031633146106365760405162461bcd60e51b8152600401610406906119a9565b600154604051632f2ff15d60e01b8152600481018490526001600160a01b03838116602483015290911690632f2ff15d906044015b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505050565b6002546001600160a01b031633146106cb5760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031303a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146107495760405162461bcd60e51b8152600401610406906119a9565b60035460405163414000b560e01b8152600481018390526001600160a01b039091169063414000b59060240161043f565b6002546001600160a01b031633146107a45760405162461bcd60e51b8152600401610406906119a9565b6003546040516325c32c2360e11b8152600481018390526001600160a01b0390911690634b8658469060240161043f565b61080e6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b6005546040516362f0ab5560e01b81526001600160a01b03909116906362f0ab55906108469089908990899089908990600401611af4565b60006040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089a91908101906117cc565b9695505050505050565b6108ac611276565b6108b660006112d0565b565b6002546001600160a01b031633146108e25760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031313a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146109605760405162461bcd60e51b8152600401610406906119a9565b6005546040516386039aed60e01b8152600481018490526001600160a01b038381166024830152909116906386039aed9060440161066b565b6002546001600160a01b031633146109c35760405162461bcd60e51b8152600401610406906119a9565b60005460405163449c8bf560e11b815260048101839052620100009091046001600160a01b03169063893917ea9060240161043f565b6002546001600160a01b03163314610a235760405162461bcd60e51b8152600401610406906119a9565b600554604051634654a35560e11b81526001600160a01b0390911690638ca946aa9061043f9084906004016119ec565b6002546001600160a01b03163314610a7d5760405162461bcd60e51b8152600401610406906119a9565b6003546040516307aed1d360e11b8152600481018390526001600160a01b0390911690630f5da3a69060240161043f565b6002546001600160a01b03163314610ad85760405162461bcd60e51b8152600401610406906119a9565b60035460405163501aafa760e11b8152600481018390526001600160a01b039091169063a0355f4e9060240161043f565b6002546001600160a01b03163314610b335760405162461bcd60e51b8152600401610406906119a9565b600354604051632dd67e5560e21b8152600481018390526001600160a01b039091169063b759f95490602401600060405180830381600087803b158015610b7957600080fd5b505af1158015610b8d573d6000803e3d6000fd5b5050600354604051630e48080360e21b8152600481018590526001600160a01b039091169250633920200c915060240160206040518083038186803b158015610bd557600080fd5b505afa158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0d91906116d4565b15610d55576003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da189060240160206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f91906116b8565b90506000819050600460009054906101000a90046001600160a01b03166001600160a01b031663f93b367384836001600160a01b03166370d2fe536040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c91906118c5565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401610575565b50565b6002546001600160a01b03163314610d825760405162461bcd60e51b8152600401610406906119a9565b60015460405163274b02a760e01b8152600481018390526001600160a01b039091169063274b02a79060240161043f565b600054610100900460ff1615808015610dd35750600054600160ff909116105b80610df45750610de230611322565b158015610df4575060005460ff166001145b610e575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610406565b6000805460ff191660011790558015610e7a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610ea4600090565b6541636365737360d01b14610ee657610ec56541636365737360d01b611335565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610eee61141d565b8015610f34576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b03163314610f625760405162461bcd60e51b8152600401610406906119a9565b60055460405163cab2504d60e01b81526001600160a01b0383811660048301529091169063cab2504d9060240161043f565b6002546001600160a01b03163314610fbe5760405162461bcd60e51b8152600401610406906119a9565b60055460405163cc9cf8cd60e01b8152600481018490526001600160a01b0383811660248301529091169063cc9cf8cd9060440161066b565b6002546001600160a01b031633146110215760405162461bcd60e51b8152600401610406906119a9565b60015460405163d17d023360e01b8152600481018390526001600160a01b039091169063d17d02339060240161043f565b6002546001600160a01b0316331461107c5760405162461bcd60e51b8152600401610406906119a9565b60005460405163d22057a960e01b8152600481018490526001600160a01b038381166024830152620100009092049091169063d22057a99060440161066b565b6002546001600160a01b031633146110e65760405162461bcd60e51b8152600401610406906119a9565b60015460405163d547741f60e01b8152600481018490526001600160a01b0383811660248301529091169063d547741f9060440161066b565b6002546001600160a01b031633146111495760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663e6400bbe6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b6002546001600160a01b031633146111c35760405162461bcd60e51b8152600401610406906119a9565b600054604051631b8a4f6160e31b81526004810184905260248101839052620100009091046001600160a01b03169063dc527b089060440161066b565b611208611276565b6001600160a01b03811661126d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610406565b610d55816112d0565b6002546001600160a01b031633146108b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610406565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561137f57600080fd5b505afa158015611393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b791906116b8565b90506001600160a01b0381166113305760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610406565b600054610100900460ff166114885760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610406565b61149d6810dbdb5c1bdb995b9d60ba1b611335565b600380546001600160a01b0319166001600160a01b03929092169190911790556114cd63141bdbdb60e21b611335565b600480546001600160a01b0319166001600160a01b039290921691909117905561150167547265617375727960c01b611335565b600580546001600160a01b0319166001600160a01b039290921691909117905561153061152b3390565b6112d0565b611538611540565b6108b66115a1565b60006115596a213ab7323632aa37b5b2b760a91b611335565b9050600061156f6542756e646c6560d01b611335565b6040516328e2dc5360e21b81526001600160a01b0380831660048301529192509083169063a38b714c9060240161066b565b60006115b56541636365737360d01b611335565b60405163c19010a760e01b81523060048201529091506001600160a01b0382169063c19010a79060240161043f565b60008083601f8401126115f5578182fd5b50813567ffffffffffffffff81111561160c578182fd5b60208301915083602082850101111561162457600080fd5b9250929050565b600082601f83011261163b578081fd5b815167ffffffffffffffff81111561165557611655611b82565b611668601f8201601f1916602001611b25565b81815284602083860101111561167c578283fd5b61168d826020830160208701611b56565b949350505050565b6000602082840312156116a6578081fd5b81356116b181611b98565b9392505050565b6000602082840312156116c9578081fd5b81516116b181611b98565b6000602082840312156116e5578081fd5b815180151581146116b1578182fd5b600060208284031215611705578081fd5b5035919050565b6000806040838503121561171e578081fd5b82359150602083013561173081611b98565b809150509250929050565b6000806040838503121561174d578182fd5b50508035926020909101359150565b600080600060608486031215611770578081fd5b8335925060208401359150604084013561178981611b98565b809150509250925092565b6000602082840312156117a5578081fd5b813567ffffffffffffffff8111156117bb578182fd5b820160c081850312156116b1578182fd5b6000602082840312156117dd578081fd5b815167ffffffffffffffff808211156117f4578283fd5b9083019060c08286031215611807578283fd5b61181160c0611b25565b82518152602083015160208201526040830151604082015260608301518281111561183a578485fd5b6118468782860161162b565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600080600060408486031215611880578283fd5b833561ffff81168114611891578384fd5b9250602084013567ffffffffffffffff8111156118ac578283fd5b6118b8868287016115e4565b9497909650939450505050565b6000602082840312156118d6578081fd5b5051919050565b6000806040838503121561171e578182fd5b600080600060408486031215611903578081fd5b83359250602084013567ffffffffffffffff8111156118ac578182fd5b600080600080600060808688031215611937578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115611962578182fd5b61196e888289016115e4565b969995985093965092949392505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60208082526023908201527f4552524f523a494f532d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000602082528235602083015260208301356040830152604083013560608301526060830135601e19843603018112611a23578182fd5b8301803567ffffffffffffffff811115611a3b578283fd5b803603851315611a49578283fd5b60c06080850152611a6160e08501826020850161197f565b915050608084013560a084015260a084013560c08401528091505092915050565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015280518060e0850152610100611aca8282870160208601611b56565b608086015160a0868101919091529095015160c0850152601f01601f191690920190920192915050565b600086825285602083015284604083015260806060830152611b1a60808301848661197f565b979650505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611b4e57611b4e611b82565b604052919050565b60005b83811015611b71578181015183820152602001611b59565b838111156105025750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d5557600080fdfea2646970667358221220333f2e0637b224e8cc6c846170351f725e19eaaf413aa2f641b275607074212c64736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063cc9cf8cd11610097578063d547741f11610071578063d547741f1461039b578063d5fe1f10146103ae578063dc527b08146103b6578063f2fde38b146103c9576101c4565b8063cc9cf8cd14610362578063d17d023314610375578063d22057a914610388576101c4565b8063b759f954116100d3578063b759f95414610316578063c42994a214610329578063c4d66de81461033c578063cab2504d1461034f576101c4565b80638da5cb5b146102d557806393c829fc146102f0578063a0355f4e14610303576101c4565b80634b8658461161016657806372beb6fb1161014057806372beb6fb1461028957806386039aed1461029c578063893917ea146102af5780638ca946aa146102c2576101c4565b80634b8658461461024557806362f0ab5514610258578063715018a614610281576101c4565b806320813154116101a257806320813154146101f95780632f2ff15d1461020c578063394c78ba1461021f578063414000b514610232576101c4565b806301132a7f146101c957806310a81c4a146101de5780631d5e7314146101e6575b600080fd5b6101dc6101d7366004611794565b6103dc565b005b6101dc610474565b6101dc6101f436600461175c565b610508565b6101dc6102073660046116f4565b6105ac565b6101dc61021a36600461170c565b61060c565b6101dc61022d36600461186c565b6106a1565b6101dc6102403660046116f4565b61071f565b6101dc6102533660046116f4565b61077a565b61026b610266366004611920565b6107d5565b6040516102789190611a82565b60405180910390f35b6101dc6108a4565b6101dc6102973660046118ef565b6108b8565b6101dc6102aa3660046118dd565b610936565b6101dc6102bd3660046116f4565b610999565b6101dc6102d0366004611794565b6109f9565b6002546040516001600160a01b039091168152602001610278565b6101dc6102fe3660046116f4565b610a53565b6101dc6103113660046116f4565b610aae565b6101dc6103243660046116f4565b610b09565b6101dc6103373660046116f4565b610d58565b6101dc61034a366004611695565b610db3565b6101dc61035d366004611695565b610f38565b6101dc6103703660046118dd565b610f94565b6101dc6103833660046116f4565b610ff7565b6101dc61039636600461170c565b611052565b6101dc6103a936600461170c565b6110bc565b6101dc61111f565b6101dc6103c436600461173b565b611199565b6101dc6103d7366004611695565b611200565b6002546001600160a01b0316331461040f5760405162461bcd60e51b8152600401610406906119a9565b60405180910390fd5b6005546040516301132a7f60e01b81526001600160a01b03909116906301132a7f9061043f9084906004016119ec565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b5050505050565b6002546001600160a01b0316331461049e5760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663046f7da26040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b50505050565b6002546001600160a01b031633146105325760405162461bcd60e51b8152600401610406906119a9565b6000546040516307579cc560e21b815260048101859052602481018490526001600160a01b0383811660448301526201000090920490911690631d5e7314906064015b600060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b50505050505050565b6002546001600160a01b031633146105d65760405162461bcd60e51b8152600401610406906119a9565b6000546040516308204c5560e21b815260048101839052620100009091046001600160a01b03169063208131549060240161043f565b6002546001600160a01b031633146106365760405162461bcd60e51b8152600401610406906119a9565b600154604051632f2ff15d60e01b8152600481018490526001600160a01b03838116602483015290911690632f2ff15d906044015b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505050565b6002546001600160a01b031633146106cb5760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031303a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146107495760405162461bcd60e51b8152600401610406906119a9565b60035460405163414000b560e01b8152600481018390526001600160a01b039091169063414000b59060240161043f565b6002546001600160a01b031633146107a45760405162461bcd60e51b8152600401610406906119a9565b6003546040516325c32c2360e11b8152600481018390526001600160a01b0390911690634b8658469060240161043f565b61080e6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b6005546040516362f0ab5560e01b81526001600160a01b03909116906362f0ab55906108469089908990899089908990600401611af4565b60006040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089a91908101906117cc565b9695505050505050565b6108ac611276565b6108b660006112d0565b565b6002546001600160a01b031633146108e25760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031313a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146109605760405162461bcd60e51b8152600401610406906119a9565b6005546040516386039aed60e01b8152600481018490526001600160a01b038381166024830152909116906386039aed9060440161066b565b6002546001600160a01b031633146109c35760405162461bcd60e51b8152600401610406906119a9565b60005460405163449c8bf560e11b815260048101839052620100009091046001600160a01b03169063893917ea9060240161043f565b6002546001600160a01b03163314610a235760405162461bcd60e51b8152600401610406906119a9565b600554604051634654a35560e11b81526001600160a01b0390911690638ca946aa9061043f9084906004016119ec565b6002546001600160a01b03163314610a7d5760405162461bcd60e51b8152600401610406906119a9565b6003546040516307aed1d360e11b8152600481018390526001600160a01b0390911690630f5da3a69060240161043f565b6002546001600160a01b03163314610ad85760405162461bcd60e51b8152600401610406906119a9565b60035460405163501aafa760e11b8152600481018390526001600160a01b039091169063a0355f4e9060240161043f565b6002546001600160a01b03163314610b335760405162461bcd60e51b8152600401610406906119a9565b600354604051632dd67e5560e21b8152600481018390526001600160a01b039091169063b759f95490602401600060405180830381600087803b158015610b7957600080fd5b505af1158015610b8d573d6000803e3d6000fd5b5050600354604051630e48080360e21b8152600481018590526001600160a01b039091169250633920200c915060240160206040518083038186803b158015610bd557600080fd5b505afa158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0d91906116d4565b15610d55576003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da189060240160206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f91906116b8565b90506000819050600460009054906101000a90046001600160a01b03166001600160a01b031663f93b367384836001600160a01b03166370d2fe536040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c91906118c5565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401610575565b50565b6002546001600160a01b03163314610d825760405162461bcd60e51b8152600401610406906119a9565b60015460405163274b02a760e01b8152600481018390526001600160a01b039091169063274b02a79060240161043f565b600054610100900460ff1615808015610dd35750600054600160ff909116105b80610df45750610de230611322565b158015610df4575060005460ff166001145b610e575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610406565b6000805460ff191660011790558015610e7a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610ea4600090565b6541636365737360d01b14610ee657610ec56541636365737360d01b611335565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610eee61141d565b8015610f34576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b03163314610f625760405162461bcd60e51b8152600401610406906119a9565b60055460405163cab2504d60e01b81526001600160a01b0383811660048301529091169063cab2504d9060240161043f565b6002546001600160a01b03163314610fbe5760405162461bcd60e51b8152600401610406906119a9565b60055460405163cc9cf8cd60e01b8152600481018490526001600160a01b0383811660248301529091169063cc9cf8cd9060440161066b565b6002546001600160a01b031633146110215760405162461bcd60e51b8152600401610406906119a9565b60015460405163d17d023360e01b8152600481018390526001600160a01b039091169063d17d02339060240161043f565b6002546001600160a01b0316331461107c5760405162461bcd60e51b8152600401610406906119a9565b60005460405163d22057a960e01b8152600481018490526001600160a01b038381166024830152620100009092049091169063d22057a99060440161066b565b6002546001600160a01b031633146110e65760405162461bcd60e51b8152600401610406906119a9565b60015460405163d547741f60e01b8152600481018490526001600160a01b0383811660248301529091169063d547741f9060440161066b565b6002546001600160a01b031633146111495760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663e6400bbe6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b6002546001600160a01b031633146111c35760405162461bcd60e51b8152600401610406906119a9565b600054604051631b8a4f6160e31b81526004810184905260248101839052620100009091046001600160a01b03169063dc527b089060440161066b565b611208611276565b6001600160a01b03811661126d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610406565b610d55816112d0565b6002546001600160a01b031633146108b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610406565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561137f57600080fd5b505afa158015611393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b791906116b8565b90506001600160a01b0381166113305760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610406565b600054610100900460ff166114885760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610406565b61149d6810dbdb5c1bdb995b9d60ba1b611335565b600380546001600160a01b0319166001600160a01b03929092169190911790556114cd63141bdbdb60e21b611335565b600480546001600160a01b0319166001600160a01b039290921691909117905561150167547265617375727960c01b611335565b600580546001600160a01b0319166001600160a01b039290921691909117905561153061152b3390565b6112d0565b611538611540565b6108b66115a1565b60006115596a213ab7323632aa37b5b2b760a91b611335565b9050600061156f6542756e646c6560d01b611335565b6040516328e2dc5360e21b81526001600160a01b0380831660048301529192509083169063a38b714c9060240161066b565b60006115b56541636365737360d01b611335565b60405163c19010a760e01b81523060048201529091506001600160a01b0382169063c19010a79060240161043f565b60008083601f8401126115f5578182fd5b50813567ffffffffffffffff81111561160c578182fd5b60208301915083602082850101111561162457600080fd5b9250929050565b600082601f83011261163b578081fd5b815167ffffffffffffffff81111561165557611655611b82565b611668601f8201601f1916602001611b25565b81815284602083860101111561167c578283fd5b61168d826020830160208701611b56565b949350505050565b6000602082840312156116a6578081fd5b81356116b181611b98565b9392505050565b6000602082840312156116c9578081fd5b81516116b181611b98565b6000602082840312156116e5578081fd5b815180151581146116b1578182fd5b600060208284031215611705578081fd5b5035919050565b6000806040838503121561171e578081fd5b82359150602083013561173081611b98565b809150509250929050565b6000806040838503121561174d578182fd5b50508035926020909101359150565b600080600060608486031215611770578081fd5b8335925060208401359150604084013561178981611b98565b809150509250925092565b6000602082840312156117a5578081fd5b813567ffffffffffffffff8111156117bb578182fd5b820160c081850312156116b1578182fd5b6000602082840312156117dd578081fd5b815167ffffffffffffffff808211156117f4578283fd5b9083019060c08286031215611807578283fd5b61181160c0611b25565b82518152602083015160208201526040830151604082015260608301518281111561183a578485fd5b6118468782860161162b565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600080600060408486031215611880578283fd5b833561ffff81168114611891578384fd5b9250602084013567ffffffffffffffff8111156118ac578283fd5b6118b8868287016115e4565b9497909650939450505050565b6000602082840312156118d6578081fd5b5051919050565b6000806040838503121561171e578182fd5b600080600060408486031215611903578081fd5b83359250602084013567ffffffffffffffff8111156118ac578182fd5b600080600080600060808688031215611937578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115611962578182fd5b61196e888289016115e4565b969995985093965092949392505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60208082526023908201527f4552524f523a494f532d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000602082528235602083015260208301356040830152604083013560608301526060830135601e19843603018112611a23578182fd5b8301803567ffffffffffffffff811115611a3b578283fd5b803603851315611a49578283fd5b60c06080850152611a6160e08501826020850161197f565b915050608084013560a084015260a084013560c08401528091505092915050565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015280518060e0850152610100611aca8282870160208601611b56565b608086015160a0868101919091529095015160c0850152601f01601f191690920190920192915050565b600086825285602083015284604083015260806060830152611b1a60808301848661197f565b979650505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611b4e57611b4e611b82565b604052919050565b60005b83811015611b71578181015183820152602001611b59565b838111156105025750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d5557600080fdfea2646970667358221220333f2e0637b224e8cc6c846170351f725e19eaaf413aa2f641b275607074212c64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/services/InstanceService.sol/InstanceService.dbg.json b/artifacts/contracts/services/InstanceService.sol/InstanceService.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/services/InstanceService.sol/InstanceService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/services/InstanceService.sol/InstanceService.json b/artifacts/contracts/services/InstanceService.sol/InstanceService.json new file mode 100644 index 00000000..5e1a132f --- /dev/null +++ b/artifacts/contracts/services/InstanceService.sol/InstanceService.json @@ -0,0 +1,1366 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "InstanceService", + "sourceName": "contracts/services/InstanceService.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [], + "name": "BUNDLE_NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "COMPONENT_NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "COMPONENT_OWNER_SERVICE_NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "INSTANCE_OPERATOR_SERVICE_NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ORACLE_SERVICE_NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "POLICY_NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "POOL_NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PRODUCT_SERVICE_NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "RISKPOOL_SERVICE_NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "TREASURY_NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "activeBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfActiveBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "bundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "claims", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfClaims", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "contractName", + "outputs": [ + { + "internalType": "bytes32", + "name": "name", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "contracts", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfContracts", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bundleIdx", + "type": "uint256" + } + ], + "name": "getActiveBundleId", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "getApplication", + "outputs": [ + { + "components": [ + { + "internalType": "enum IPolicy.ApplicationState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Application", + "name": "application", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "balanceAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "getBundle", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "bundle", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBundleToken", + "outputs": [ + { + "internalType": "contract IBundleToken", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getCapacity", + "outputs": [ + { + "internalType": "uint256", + "name": "capacityAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "capitalAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getChainId", + "outputs": [ + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getChainName", + "outputs": [ + { + "internalType": "string", + "name": "chainName", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "getClaim", + "outputs": [ + { + "components": [ + { + "internalType": "enum IPolicy.ClaimState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "paidAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Claim", + "name": "claim", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "getComponent", + "outputs": [ + { + "internalType": "contract IComponent", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "componentAddress", + "type": "address" + } + ], + "name": "getComponentId", + "outputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getComponentOwnerService", + "outputs": [ + { + "internalType": "contract IComponentOwnerService", + "name": "service", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getComponentState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "componentState", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getComponentToken", + "outputs": [ + { + "internalType": "contract IERC20", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "getComponentType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDefaultAdminRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFeeFractionFullUnit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFullCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInstanceId", + "outputs": [ + { + "internalType": "bytes32", + "name": "instanceId", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInstanceOperator", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInstanceOperatorService", + "outputs": [ + { + "internalType": "contract IInstanceOperatorService", + "name": "service", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getInstanceWallet", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getMaximumNumberOfActiveBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "bpKey", + "type": "bytes32" + } + ], + "name": "getMetadata", + "outputs": [ + { + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + }, + { + "internalType": "enum IPolicy.PolicyFlowState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Metadata", + "name": "metadata", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getOracleId", + "outputs": [ + { + "internalType": "uint256", + "name": "oracleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOracleProviderRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOracleService", + "outputs": [ + { + "internalType": "contract IOracleService", + "name": "service", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "getPayout", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "enum IPolicy.PayoutState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Payout", + "name": "payout", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "getPolicy", + "outputs": [ + { + "components": [ + { + "internalType": "enum IPolicy.PolicyState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumExpectedAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "premiumPaidAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "openClaimsCount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutMaxAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Policy", + "name": "policy", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getProductId", + "outputs": [ + { + "internalType": "uint256", + "name": "productId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getProductOwnerRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getProductService", + "outputs": [ + { + "internalType": "contract IProductService", + "name": "service", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "service", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getRiskpool", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "address", + "name": "wallet", + "type": "address" + }, + { + "internalType": "address", + "name": "erc20Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralizationLevel", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumOfSumInsuredCap", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumOfSumInsuredAtRisk", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPool.Pool", + "name": "riskPool", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getRiskpoolId", + "outputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRiskpoolKeeperRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRiskpoolService", + "outputs": [ + { + "internalType": "contract IRiskpoolService", + "name": "service", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getRiskpoolWallet", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "getStakedAssets", + "outputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "getStakingRequirements", + "outputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "getTotalValueLocked", + "outputs": [ + { + "internalType": "uint256", + "name": "totalValueLockedAmount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTreasuryAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "principal", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oracles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "payouts", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfPayouts", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "processIds", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfProcessIds", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "products", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "riskpools", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "name": "unburntBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "numberOfUnburntBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612ebd80620000f46000396000f3fe608060405234801561001057600080fd5b50600436106103e65760003560e01c80637f22c2d91161020a578063c4d66de811610125578063e543ecb9116100b8578063ec833b0c11610087578063ec833b0c14610894578063eff0f592146108a7578063f1d354d0146108ba578063f6b3e7d0146108c2578063ff3f3883146108d5576103e6565b8063e543ecb91461083b578063e882892214610854578063eb35783c1461086c578063eb80211414610874576103e6565b8063d49d21c0116100f4578063d49d21c0146107fa578063d722b0bc14610802578063dd51c86a1461080a578063e00246041461082a576103e6565b8063c4d66de8146107aa578063c559783e146107bf578063c71e261f146107d2578063cef58f13146107da576103e6565b8063a44330c41161019d578063ab9c6ee41161016c578063ab9c6ee41461075e578063aeddb90514610771578063bc506f6414610784578063bcd5349f14610797576103e6565b8063a44330c41461071b578063a5961b4c14610723578063a5c0f5a114610743578063a7ecda3614610756576103e6565b8063a3f66bd2116101d9578063a3f66bd2146106bf578063a3f685f9146106e0578063a4266a6614610700578063a427056e14610713576103e6565b80637f22c2d91461066157806391d14854146106815780639f77a605146106a4578063a054381f146106b7576103e6565b80633ffdd2f31161030557806352b5b0ef116102985780636319112b116102675780636319112b1461062e5780636c0f79b6146106365780636fa298531461063e578063775a4048146106465780637db328441461064e576103e6565b806352b5b0ef146105c75780635ab1bd53146105e65780635e6877be146105fe5780635e966e451461060e576103e6565b80634f27da18116102d45780634f27da181461058757806350e1a19b1461059a57806351b2fb90146105ac57806352a9c8d7146105bf576103e6565b80633ffdd2f31461055c5780634288121d14610564578063442ed8171461056c5780634908163714610574576103e6565b80632898312f1161037d5780633408e4701161034c5780633408e4701461051b57806339c6fa90146105215780633a42b053146105295780633f5d923514610549576103e6565b80632898312f146104be57806329560980146104d55780632b1c7f73146104e85780632d0821b7146104fb576103e6565b806318442e63116103b957806318442e631461048b57806318ff21c3146104935780631e010439146104a35780632857373a146104b6576103e6565b8063038696bb146103eb578063091924dc1461041b5780630c131757146104235780631551100f1461043f575b600080fd5b6103fe6103f93660046125e1565b6108e8565b6040516001600160a01b0390911681526020015b60405180910390f35b6103fe61096e565b61043163141bdbdb60e21b81565b604051908152602001610412565b61043160008054604080514660208201526201000090920460601b6bffffffffffffffffffffffff19169082015260540160405160208183030381529060405280519060200120905090565b610431610998565b61043165506f6c69637960d01b81565b6104316104b13660046125e1565b610a15565b610431610a9e565b6104316c4f7261636c655365727669636560981b81565b6104316104e33660046125e1565b610ae3565b6104316104f6366004612589565b610b6b565b61050e6105093660046125e1565b610bea565b6040516104129190612b14565b46610431565b6103fe610c72565b61053c6105373660046125e1565b610d11565b6040516104129190612a75565b6104316105573660046125e1565b610d6c565b610431610df4565b6103fe610e39565b6103fe610e55565b6103fe6105823660046125e1565b610e72565b6103fe6105953660046125e1565b610ea4565b61043167547265617375727960c01b81565b6104316810dbdb5c1bdb995b9d60ba1b81565b610431610ed6565b61043174436f6d706f6e656e744f776e65725365727669636560581b81565b6103fe6000546201000090046001600160a01b031690565b6104316542756e646c6560d01b81565b61062161061c3660046125e1565b610f1b565b6040516104129190612a88565b610431610f98565b610431610fdd565b6103fe61102c565b61043161104f565b61043161065c3660046125e1565b611094565b61067461066f366004612640565b6110c6565b6040516104129190612aaf565b61069461068f366004612611565b61118c565b6040519015158152602001610412565b6104316106b23660046125e1565b611211565b610431611243565b61043176496e7374616e63654f70657261746f725365727669636560481b81565b6106f36106ee3660046125e1565b611288565b6040516104129190612c44565b61043161070e3660046125e1565b611353565b610431611385565b6103fe6113d5565b6107366107313660046125e1565b611452565b6040516104129190612bab565b6104316107513660046125e1565b611509565b6103fe61153b565b61053c61076c3660046125e1565b611556565b61043161077f3660046125e1565b6115ac565b6106746107923660046125e1565b6115e0565b6104316107a53660046125e1565b611698565b6107bd6107b8366004612589565b611730565b005b6104316107cd3660046125e1565b6118ae565b6104316118e0565b6107ed6107e8366004612640565b611925565b6040516104129190612bf8565b6104316119e4565b61053c611a29565b61081d6108183660046125e1565b611aca565b6040516104129190612aa2565b6006546001600160a01b03166103fe565b6104316e5269736b706f6f6c5365727669636560881b81565b6104316d50726f647563745365727669636560901b81565b6103fe611b47565b6108876108823660046125e1565b611bd6565b6040516104129190612cb1565b6104316108a2366004612640565b611cc2565b6104316108b53660046125e1565b611d46565b610431611d7a565b6104316108d03660046125e1565b611dbf565b6104316108e33660046125e1565b611df6565b60065460405163038696bb60e01b8152600481018390526000916001600160a01b03169063038696bb906024015b60206040518083038186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125a5565b90505b919050565b600061099376496e7374616e63654f70657261746f725365727669636560481b611e2b565b905090565b600254604080516318442e6360e01b815290516000926001600160a01b0316916318442e63916004808301926020929190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125f9565b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610a5b57600080fd5b505afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a939190612998565b610100015192915050565b6003546040805163142b9b9d60e11b815290516000926001600160a01b031691632857373a916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610b2957600080fd5b505afa158015610b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b619190612998565b60c0015192915050565b600354604051632b1c7f7360e01b81526001600160a01b0383811660048301526000921690632b1c7f73906024015b60206040518083038186803b158015610bb257600080fd5b505afa158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125f9565b610bf26123f3565b600254604051632d0821b760e01b8152600481018490526001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3657600080fd5b505afa158015610c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109669190810190612747565b600080610c9876496e7374616e63654f70657261746f725365727669636560481b611e2b565b9050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd357600080fd5b505afa158015610ce7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0b91906125a5565b91505090565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030323a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b60648201526060906084015b60405180910390fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610db257600080fd5b505afa158015610dc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dea9190612998565b60e0015192915050565b60015460408051633ffdd2f360e01b815290516000926001600160a01b031691633ffdd2f3916004808301926020929190829003018186803b1580156109dd57600080fd5b60006109936d50726f647563745365727669636560901b611e2b565b60006109936e5269736b706f6f6c5365727669636560881b611e2b565b600654604051634908163760e01b8152600481018390526000916001600160a01b031690634908163790602401610916565b6003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da1890602401610916565b600154604080516352a9c8d760e01b815290516000926001600160a01b0316916352a9c8d7916004808301926020929190829003018186803b1580156109dd57600080fd5b600354604051635e966e4560e01b8152600481018390526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610f6057600080fd5b505afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612661565b60065460408051634667ae5160e11b815290516000926001600160a01b031691638ccf5ca2916004808301926020929190829003018186803b1580156109dd57600080fd5b60008060029054906101000a90046001600160a01b03166001600160a01b0316636c0f79b66040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b600061099374436f6d706f6e656e744f776e65725365727669636560581b611e2b565b60015460408051630eeb480960e31b815290516000926001600160a01b03169163775a4048916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051631f6cca1160e21b8152600481018390526000916001600160a01b031690637db3284490602401610b9a565b6111006040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051637f22c2d960e01b8152918201859052602482018490526001600160a01b031690637f22c2d99060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611185919081019061269c565b9392505050565b600154604051632474521560e21b8152600481018490526001600160a01b03838116602483015260009216906391d148549060440160206040518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125c1565b600354604051639f77a60560e01b8152600481018390526000916001600160a01b031690639f77a60590602401610b9a565b6003546040805163a054381f60e01b815290516000926001600160a01b03169163a054381f916004808301926020929190829003018186803b1580156109dd57600080fd5b6112d8604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6004805460405163a3f685f960e01b81529182018490526001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612913565b600554604051635213353360e11b8152600481018390526000916001600160a01b03169063a4266a6690602401610b9a565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663a427056e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b60065460408051632910cc3160e21b815290516000926001600160a01b03169163a44330c4916004808301926020929190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125a5565b61148b6040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b6004805460405163296586d360e21b81529182018490526001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061281b565b60035460405163a5c0f5a160e01b8152600481018390526000916001600160a01b03169063a5c0f5a190602401610b9a565b60006109936c4f7261636c655365727669636560981b611e2b565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030313a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b6064820152606090608401610d63565b6004805460405163be183b1160e01b81529182018390526000916001600160a01b039091169063be183b1190602401610b9a565b61161a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051632f141bd960e21b81529182018490526001600160a01b03169063bc506f649060240160006040518083038186803b15801561165c57600080fd5b505afa158015611670573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061269c565b600554604051633ae0084560e21b81526004810183905260009182916001600160a01b039091169063eb802114906024016101606040518083038186803b1580156116e257600080fd5b505afa1580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a9190612998565b90508060e001518160c001516111859190612d7e565b600054610100900460ff16158080156117505750600054600160ff909116105b8061176a5750303b15801561176a575060005460ff166001145b6117cd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d63565b6000805460ff1916600117905580156117f0576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561181a600090565b6541636365737360d01b1461185c5761183b6541636365737360d01b611e2b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611864611f13565b80156118aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516362acbc1f60e11b8152600481018390526000916001600160a01b03169063c559783e90602401610b9a565b6003546040805163c71e261f60e01b815290516000926001600160a01b03169163c71e261f916004808301926020929190829003018186803b1580156109dd57600080fd5b61195f6040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6004805460405163cef58f1360e01b8152918201859052602482018490526001600160a01b03169063cef58f139060440160006040518083038186803b1580156119a857600080fd5b505afa1580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111859190810190612899565b60015460408051630352748760e61b815290516000926001600160a01b03169163d49d21c0916004808301926020929190829003018186803b1580156109dd57600080fd5b466000908152600760205260409020805460609190611a4790612dd1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7390612dd1565b8015611ac05780601f10611a9557610100808354040283529160200191611ac0565b820191906000526020600020905b815481529060010190602001808311611aa357829003601f168201915b5050505050905090565b600354604051636ea8e43560e11b8152600481018390526000916001600160a01b03169063dd51c86a9060240160206040518083038186803b158015611b0f57600080fd5b505afa158015611b23573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612680565b600080600260009054906101000a90046001600160a01b03166001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906125a5565b92915050565b611c456040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600554604051633ae0084560e21b8152600481018490526001600160a01b039091169063eb802114906024016101606040518083038186803b158015611c8a57600080fd5b505afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612998565b600554604051633b20cec360e21b815260048101849052602481018390526000916001600160a01b03169063ec833b0c9060440160206040518083038186803b158015611d0e57600080fd5b505afa158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125f9565b6004805460405163163c4b3160e31b81529182018390526000916001600160a01b039091169063b1e2598890602401610b9a565b60055460408051630f1d354d60e41b815290516000926001600160a01b03169163f1d354d0916004808301926020929190829003018186803b1580156109dd57600080fd5b60008054604051630f6b3e7d60e41b815260048101849052620100009091046001600160a01b03169063f6b3e7d090602401610b9a565b600354604051600162c0c77d60e01b03198152600481018390526000916001600160a01b03169063ff3f388390602401610b9a565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611e7557600080fd5b505afa158015611e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ead91906125a5565b90506001600160a01b0381166109695760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610d63565b600054610100900460ff16611f7e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610d63565b611f906542756e646c6560d01b611e2b565b600280546001600160a01b0319166001600160a01b0392909216919091179055611fc56810dbdb5c1bdb995b9d60ba1b611e2b565b600380546001600160a01b0319166001600160a01b0392909216919091179055611ff765506f6c69637960d01b611e2b565b600480546001600160a01b0319166001600160a01b039290921691909117905561202763141bdbdb60e21b611e2b565b600580546001600160a01b0319166001600160a01b039290921691909117905561205b67547265617375727960c01b611e2b565b600680546001600160a01b0319166001600160a01b0392909216919091179055612083612085565b565b60408051808201909152601481527308ae8d0cae4caeada409ac2d2dcdccae85e8aa8960631b602080830191825260016000526007905290516120e9917fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82891612465565b5060408051808201909152600a81526908edecae4d8d25e8aa8960b31b60208083019182526005600052600790529051612144917fbcdda56b5d08466ec462cbbe0adfa57cb0a15fcc8940ef68f702f21b787bc93591612465565b506040805180820190915260078082526647616e6163686560c81b602080840191825261053960005291909152905161219e917f96a76633116ac3161b66b4be70f114c9a245f4bbf414dc7a4d0edce8c01734cf91612465565b5060408051808201909152600b81526a476e6f7369732f7844616960a81b602080830191825260646000526007905290516121fa917f06179e496907eb3333fef2ed2194553681badbb6d717316349bf33d21ec47e1291612465565b5060408051808201909152600a815269536f6b6f6c2f53504f4160b01b6020808301918252604d600052600790529051612255917f58f3d94c4a880e721e755344405d3fe6076875bf5b3ad388d0a326a85bcabfb591612465565b50604080518082019091526015815274506f6c79676f6e204d61696e6e65742f4d4154494360581b602080830191825260896000526007905290516122bb917f65420a8d28339aeca441a0c94a464f6387b468f3f5ea5c247a6df59a5f7b886691612465565b5060408051808201909152600c81526b4d756d6261692f4d4154494360a01b6020808301918252611f41600052600790529051612319917f4d67172c71df6b75e948764b65521db84c0c61e94d5f3739b666417e9471e58491612465565b50604080518082019091526016815275082ecc2d8c2dcc6d0ca40865a86d0c2d2dc5e82ac82b60531b602080830191825261a86a600052600790529051612381917fa4356065248d86930c73e944e85f9d029fb0f52c0b8312d1a61bfbc9797ef51491612465565b5060408051808201909152601b81527f4176616c616e6368652046756a6920546573746e65742f415641580000000000602080830191825261a8696000526007905290516123f0917f57a00da22bfc0a372532b5dfacb7ddf387626f66de87422d191e09ea7493495691612465565b50565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561243557634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461247190612dd1565b90600052602060002090601f01602090048101928261249357600085556124d9565b82601f106124ac57805160ff19168380011785556124d9565b828001600101855582156124d9579182015b828111156124d95782518255916020019190600101906124be565b506124e59291506124e9565b5090565b5b808211156124e557600081556001016124ea565b805161096981612e58565b600082601f830112612519578081fd5b815167ffffffffffffffff81111561253357612533612e22565b612546601f8201601f1916602001612d4d565b81815284602083860101111561255a578283fd5b61256b826020830160208701612da1565b949350505050565b805161096981612e6d565b805161096981612e7a565b60006020828403121561259a578081fd5b813561118581612e58565b6000602082840312156125b6578081fd5b815161118581612e58565b6000602082840312156125d2578081fd5b81518015158114611185578182fd5b6000602082840312156125f2578081fd5b5035919050565b60006020828403121561260a578081fd5b5051919050565b60008060408385031215612623578081fd5b82359150602083013561263581612e58565b809150509250929050565b60008060408385031215612652578182fd5b50508035926020909101359150565b600060208284031215612672578081fd5b815160078110611185578182fd5b600060208284031215612691578081fd5b815161118581612e7a565b6000602082840312156126ad578081fd5b815167ffffffffffffffff808211156126c4578283fd5b9083019060c082860312156126d7578283fd5b6126e160c0612d4d565b82516126ec81612e6d565b808252506020830151602082015260408301516040820152606083015182811115612715578485fd5b61272187828601612509565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612758578081fd5b815167ffffffffffffffff8082111561276f578283fd5b8184019150610140808387031215612785578384fd5b61278e81612d4d565b90508251815260208301516020820152604083015160408201526127b460608401612573565b60608201526080830151828111156127ca578485fd5b6127d687828601612509565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60006020828403121561282c578081fd5b815167ffffffffffffffff80821115612843578283fd5b9083019060c08286031215612856578283fd5b61286060c0612d4d565b825161286b81612e58565b8152602083810151908201526128836040840161257e565b6040820152606083015182811115612715578485fd5b6000602082840312156128aa578081fd5b815167ffffffffffffffff808211156128c1578283fd5b9083019060c082860312156128d4578283fd5b6128de60c0612d4d565b825181526020830151600281106128f3578485fd5b602082015260408381015190820152606083015182811115612715578485fd5b6000610120808385031215612926578182fd5b61292f81612d4d565b905061293a8361257e565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006101608083850312156129ab578182fd5b6129b481612d4d565b9050825181526129c6602084016124fe565b60208201526129d7604084016124fe565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152508091505092915050565b60008151808452612a54816020860160208601612da1565b601f01601f19169290920160200192915050565b612a7181612e38565b9052565b6000602082526111856020830184612a3c565b6020810160078310612a9c57612a9c612e0c565b91905290565b60208101612a9c83612e48565b6000602082528251612ac081612e38565b806020840152506020830151604083015260408301516060830152606083015160c06080840152612af460e0840182612a3c565b9050608084015160a084015260a084015160c08401528091505092915050565b6000602082528251602083015260208301516040830152604083015160608301526060830151612b476080840182612a68565b5060808301516101408060a0850152612b64610160850183612a3c565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b60006020825260018060a01b038351166020830152602083015160408301526040830151612bd881612e48565b80606084015250606083015160c06080840152612af460e0840182612a3c565b60006020825282516020830152602083015160028110612c1a57612c1a612e0c565b8060408401525060408301516060830152606083015160c06080840152612af460e0840182612a3c565b8151610120820190612c5581612e48565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b81518152602080830151610160830191612cd5908401826001600160a01b03169052565b506040830151612cf060408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7657612d76612e22565b604052919050565b600082821015612d9c57634e487b7160e01b81526011600452602481fd5b500390565b60005b83811015612dbc578181015183820152602001612da4565b83811115612dcb576000848401525b50505050565b600281046001821680612de557607f821691505b60208210811415612e0657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600481106123f0576123f0612e0c565b600381106123f0576123f0612e0c565b6001600160a01b03811681146123f057600080fd5b600481106123f057600080fd5b600381106123f057600080fdfea26469706673582212208baa8d3664a94bfb7869664ce5bc59b2293ec35862ba4906c74e8d5f75cdd5f464736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103e65760003560e01c80637f22c2d91161020a578063c4d66de811610125578063e543ecb9116100b8578063ec833b0c11610087578063ec833b0c14610894578063eff0f592146108a7578063f1d354d0146108ba578063f6b3e7d0146108c2578063ff3f3883146108d5576103e6565b8063e543ecb91461083b578063e882892214610854578063eb35783c1461086c578063eb80211414610874576103e6565b8063d49d21c0116100f4578063d49d21c0146107fa578063d722b0bc14610802578063dd51c86a1461080a578063e00246041461082a576103e6565b8063c4d66de8146107aa578063c559783e146107bf578063c71e261f146107d2578063cef58f13146107da576103e6565b8063a44330c41161019d578063ab9c6ee41161016c578063ab9c6ee41461075e578063aeddb90514610771578063bc506f6414610784578063bcd5349f14610797576103e6565b8063a44330c41461071b578063a5961b4c14610723578063a5c0f5a114610743578063a7ecda3614610756576103e6565b8063a3f66bd2116101d9578063a3f66bd2146106bf578063a3f685f9146106e0578063a4266a6614610700578063a427056e14610713576103e6565b80637f22c2d91461066157806391d14854146106815780639f77a605146106a4578063a054381f146106b7576103e6565b80633ffdd2f31161030557806352b5b0ef116102985780636319112b116102675780636319112b1461062e5780636c0f79b6146106365780636fa298531461063e578063775a4048146106465780637db328441461064e576103e6565b806352b5b0ef146105c75780635ab1bd53146105e65780635e6877be146105fe5780635e966e451461060e576103e6565b80634f27da18116102d45780634f27da181461058757806350e1a19b1461059a57806351b2fb90146105ac57806352a9c8d7146105bf576103e6565b80633ffdd2f31461055c5780634288121d14610564578063442ed8171461056c5780634908163714610574576103e6565b80632898312f1161037d5780633408e4701161034c5780633408e4701461051b57806339c6fa90146105215780633a42b053146105295780633f5d923514610549576103e6565b80632898312f146104be57806329560980146104d55780632b1c7f73146104e85780632d0821b7146104fb576103e6565b806318442e63116103b957806318442e631461048b57806318ff21c3146104935780631e010439146104a35780632857373a146104b6576103e6565b8063038696bb146103eb578063091924dc1461041b5780630c131757146104235780631551100f1461043f575b600080fd5b6103fe6103f93660046125e1565b6108e8565b6040516001600160a01b0390911681526020015b60405180910390f35b6103fe61096e565b61043163141bdbdb60e21b81565b604051908152602001610412565b61043160008054604080514660208201526201000090920460601b6bffffffffffffffffffffffff19169082015260540160405160208183030381529060405280519060200120905090565b610431610998565b61043165506f6c69637960d01b81565b6104316104b13660046125e1565b610a15565b610431610a9e565b6104316c4f7261636c655365727669636560981b81565b6104316104e33660046125e1565b610ae3565b6104316104f6366004612589565b610b6b565b61050e6105093660046125e1565b610bea565b6040516104129190612b14565b46610431565b6103fe610c72565b61053c6105373660046125e1565b610d11565b6040516104129190612a75565b6104316105573660046125e1565b610d6c565b610431610df4565b6103fe610e39565b6103fe610e55565b6103fe6105823660046125e1565b610e72565b6103fe6105953660046125e1565b610ea4565b61043167547265617375727960c01b81565b6104316810dbdb5c1bdb995b9d60ba1b81565b610431610ed6565b61043174436f6d706f6e656e744f776e65725365727669636560581b81565b6103fe6000546201000090046001600160a01b031690565b6104316542756e646c6560d01b81565b61062161061c3660046125e1565b610f1b565b6040516104129190612a88565b610431610f98565b610431610fdd565b6103fe61102c565b61043161104f565b61043161065c3660046125e1565b611094565b61067461066f366004612640565b6110c6565b6040516104129190612aaf565b61069461068f366004612611565b61118c565b6040519015158152602001610412565b6104316106b23660046125e1565b611211565b610431611243565b61043176496e7374616e63654f70657261746f725365727669636560481b81565b6106f36106ee3660046125e1565b611288565b6040516104129190612c44565b61043161070e3660046125e1565b611353565b610431611385565b6103fe6113d5565b6107366107313660046125e1565b611452565b6040516104129190612bab565b6104316107513660046125e1565b611509565b6103fe61153b565b61053c61076c3660046125e1565b611556565b61043161077f3660046125e1565b6115ac565b6106746107923660046125e1565b6115e0565b6104316107a53660046125e1565b611698565b6107bd6107b8366004612589565b611730565b005b6104316107cd3660046125e1565b6118ae565b6104316118e0565b6107ed6107e8366004612640565b611925565b6040516104129190612bf8565b6104316119e4565b61053c611a29565b61081d6108183660046125e1565b611aca565b6040516104129190612aa2565b6006546001600160a01b03166103fe565b6104316e5269736b706f6f6c5365727669636560881b81565b6104316d50726f647563745365727669636560901b81565b6103fe611b47565b6108876108823660046125e1565b611bd6565b6040516104129190612cb1565b6104316108a2366004612640565b611cc2565b6104316108b53660046125e1565b611d46565b610431611d7a565b6104316108d03660046125e1565b611dbf565b6104316108e33660046125e1565b611df6565b60065460405163038696bb60e01b8152600481018390526000916001600160a01b03169063038696bb906024015b60206040518083038186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125a5565b90505b919050565b600061099376496e7374616e63654f70657261746f725365727669636560481b611e2b565b905090565b600254604080516318442e6360e01b815290516000926001600160a01b0316916318442e63916004808301926020929190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125f9565b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610a5b57600080fd5b505afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a939190612998565b610100015192915050565b6003546040805163142b9b9d60e11b815290516000926001600160a01b031691632857373a916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610b2957600080fd5b505afa158015610b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b619190612998565b60c0015192915050565b600354604051632b1c7f7360e01b81526001600160a01b0383811660048301526000921690632b1c7f73906024015b60206040518083038186803b158015610bb257600080fd5b505afa158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125f9565b610bf26123f3565b600254604051632d0821b760e01b8152600481018490526001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3657600080fd5b505afa158015610c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109669190810190612747565b600080610c9876496e7374616e63654f70657261746f725365727669636560481b611e2b565b9050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd357600080fd5b505afa158015610ce7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0b91906125a5565b91505090565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030323a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b60648201526060906084015b60405180910390fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610db257600080fd5b505afa158015610dc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dea9190612998565b60e0015192915050565b60015460408051633ffdd2f360e01b815290516000926001600160a01b031691633ffdd2f3916004808301926020929190829003018186803b1580156109dd57600080fd5b60006109936d50726f647563745365727669636560901b611e2b565b60006109936e5269736b706f6f6c5365727669636560881b611e2b565b600654604051634908163760e01b8152600481018390526000916001600160a01b031690634908163790602401610916565b6003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da1890602401610916565b600154604080516352a9c8d760e01b815290516000926001600160a01b0316916352a9c8d7916004808301926020929190829003018186803b1580156109dd57600080fd5b600354604051635e966e4560e01b8152600481018390526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610f6057600080fd5b505afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612661565b60065460408051634667ae5160e11b815290516000926001600160a01b031691638ccf5ca2916004808301926020929190829003018186803b1580156109dd57600080fd5b60008060029054906101000a90046001600160a01b03166001600160a01b0316636c0f79b66040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b600061099374436f6d706f6e656e744f776e65725365727669636560581b611e2b565b60015460408051630eeb480960e31b815290516000926001600160a01b03169163775a4048916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051631f6cca1160e21b8152600481018390526000916001600160a01b031690637db3284490602401610b9a565b6111006040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051637f22c2d960e01b8152918201859052602482018490526001600160a01b031690637f22c2d99060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611185919081019061269c565b9392505050565b600154604051632474521560e21b8152600481018490526001600160a01b03838116602483015260009216906391d148549060440160206040518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125c1565b600354604051639f77a60560e01b8152600481018390526000916001600160a01b031690639f77a60590602401610b9a565b6003546040805163a054381f60e01b815290516000926001600160a01b03169163a054381f916004808301926020929190829003018186803b1580156109dd57600080fd5b6112d8604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6004805460405163a3f685f960e01b81529182018490526001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612913565b600554604051635213353360e11b8152600481018390526000916001600160a01b03169063a4266a6690602401610b9a565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663a427056e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b60065460408051632910cc3160e21b815290516000926001600160a01b03169163a44330c4916004808301926020929190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125a5565b61148b6040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b6004805460405163296586d360e21b81529182018490526001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061281b565b60035460405163a5c0f5a160e01b8152600481018390526000916001600160a01b03169063a5c0f5a190602401610b9a565b60006109936c4f7261636c655365727669636560981b611e2b565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030313a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b6064820152606090608401610d63565b6004805460405163be183b1160e01b81529182018390526000916001600160a01b039091169063be183b1190602401610b9a565b61161a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051632f141bd960e21b81529182018490526001600160a01b03169063bc506f649060240160006040518083038186803b15801561165c57600080fd5b505afa158015611670573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061269c565b600554604051633ae0084560e21b81526004810183905260009182916001600160a01b039091169063eb802114906024016101606040518083038186803b1580156116e257600080fd5b505afa1580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a9190612998565b90508060e001518160c001516111859190612d7e565b600054610100900460ff16158080156117505750600054600160ff909116105b8061176a5750303b15801561176a575060005460ff166001145b6117cd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d63565b6000805460ff1916600117905580156117f0576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561181a600090565b6541636365737360d01b1461185c5761183b6541636365737360d01b611e2b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611864611f13565b80156118aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516362acbc1f60e11b8152600481018390526000916001600160a01b03169063c559783e90602401610b9a565b6003546040805163c71e261f60e01b815290516000926001600160a01b03169163c71e261f916004808301926020929190829003018186803b1580156109dd57600080fd5b61195f6040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6004805460405163cef58f1360e01b8152918201859052602482018490526001600160a01b03169063cef58f139060440160006040518083038186803b1580156119a857600080fd5b505afa1580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111859190810190612899565b60015460408051630352748760e61b815290516000926001600160a01b03169163d49d21c0916004808301926020929190829003018186803b1580156109dd57600080fd5b466000908152600760205260409020805460609190611a4790612dd1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7390612dd1565b8015611ac05780601f10611a9557610100808354040283529160200191611ac0565b820191906000526020600020905b815481529060010190602001808311611aa357829003601f168201915b5050505050905090565b600354604051636ea8e43560e11b8152600481018390526000916001600160a01b03169063dd51c86a9060240160206040518083038186803b158015611b0f57600080fd5b505afa158015611b23573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612680565b600080600260009054906101000a90046001600160a01b03166001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906125a5565b92915050565b611c456040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600554604051633ae0084560e21b8152600481018490526001600160a01b039091169063eb802114906024016101606040518083038186803b158015611c8a57600080fd5b505afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612998565b600554604051633b20cec360e21b815260048101849052602481018390526000916001600160a01b03169063ec833b0c9060440160206040518083038186803b158015611d0e57600080fd5b505afa158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125f9565b6004805460405163163c4b3160e31b81529182018390526000916001600160a01b039091169063b1e2598890602401610b9a565b60055460408051630f1d354d60e41b815290516000926001600160a01b03169163f1d354d0916004808301926020929190829003018186803b1580156109dd57600080fd5b60008054604051630f6b3e7d60e41b815260048101849052620100009091046001600160a01b03169063f6b3e7d090602401610b9a565b600354604051600162c0c77d60e01b03198152600481018390526000916001600160a01b03169063ff3f388390602401610b9a565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611e7557600080fd5b505afa158015611e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ead91906125a5565b90506001600160a01b0381166109695760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610d63565b600054610100900460ff16611f7e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610d63565b611f906542756e646c6560d01b611e2b565b600280546001600160a01b0319166001600160a01b0392909216919091179055611fc56810dbdb5c1bdb995b9d60ba1b611e2b565b600380546001600160a01b0319166001600160a01b0392909216919091179055611ff765506f6c69637960d01b611e2b565b600480546001600160a01b0319166001600160a01b039290921691909117905561202763141bdbdb60e21b611e2b565b600580546001600160a01b0319166001600160a01b039290921691909117905561205b67547265617375727960c01b611e2b565b600680546001600160a01b0319166001600160a01b0392909216919091179055612083612085565b565b60408051808201909152601481527308ae8d0cae4caeada409ac2d2dcdccae85e8aa8960631b602080830191825260016000526007905290516120e9917fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82891612465565b5060408051808201909152600a81526908edecae4d8d25e8aa8960b31b60208083019182526005600052600790529051612144917fbcdda56b5d08466ec462cbbe0adfa57cb0a15fcc8940ef68f702f21b787bc93591612465565b506040805180820190915260078082526647616e6163686560c81b602080840191825261053960005291909152905161219e917f96a76633116ac3161b66b4be70f114c9a245f4bbf414dc7a4d0edce8c01734cf91612465565b5060408051808201909152600b81526a476e6f7369732f7844616960a81b602080830191825260646000526007905290516121fa917f06179e496907eb3333fef2ed2194553681badbb6d717316349bf33d21ec47e1291612465565b5060408051808201909152600a815269536f6b6f6c2f53504f4160b01b6020808301918252604d600052600790529051612255917f58f3d94c4a880e721e755344405d3fe6076875bf5b3ad388d0a326a85bcabfb591612465565b50604080518082019091526015815274506f6c79676f6e204d61696e6e65742f4d4154494360581b602080830191825260896000526007905290516122bb917f65420a8d28339aeca441a0c94a464f6387b468f3f5ea5c247a6df59a5f7b886691612465565b5060408051808201909152600c81526b4d756d6261692f4d4154494360a01b6020808301918252611f41600052600790529051612319917f4d67172c71df6b75e948764b65521db84c0c61e94d5f3739b666417e9471e58491612465565b50604080518082019091526016815275082ecc2d8c2dcc6d0ca40865a86d0c2d2dc5e82ac82b60531b602080830191825261a86a600052600790529051612381917fa4356065248d86930c73e944e85f9d029fb0f52c0b8312d1a61bfbc9797ef51491612465565b5060408051808201909152601b81527f4176616c616e6368652046756a6920546573746e65742f415641580000000000602080830191825261a8696000526007905290516123f0917f57a00da22bfc0a372532b5dfacb7ddf387626f66de87422d191e09ea7493495691612465565b50565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561243557634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461247190612dd1565b90600052602060002090601f01602090048101928261249357600085556124d9565b82601f106124ac57805160ff19168380011785556124d9565b828001600101855582156124d9579182015b828111156124d95782518255916020019190600101906124be565b506124e59291506124e9565b5090565b5b808211156124e557600081556001016124ea565b805161096981612e58565b600082601f830112612519578081fd5b815167ffffffffffffffff81111561253357612533612e22565b612546601f8201601f1916602001612d4d565b81815284602083860101111561255a578283fd5b61256b826020830160208701612da1565b949350505050565b805161096981612e6d565b805161096981612e7a565b60006020828403121561259a578081fd5b813561118581612e58565b6000602082840312156125b6578081fd5b815161118581612e58565b6000602082840312156125d2578081fd5b81518015158114611185578182fd5b6000602082840312156125f2578081fd5b5035919050565b60006020828403121561260a578081fd5b5051919050565b60008060408385031215612623578081fd5b82359150602083013561263581612e58565b809150509250929050565b60008060408385031215612652578182fd5b50508035926020909101359150565b600060208284031215612672578081fd5b815160078110611185578182fd5b600060208284031215612691578081fd5b815161118581612e7a565b6000602082840312156126ad578081fd5b815167ffffffffffffffff808211156126c4578283fd5b9083019060c082860312156126d7578283fd5b6126e160c0612d4d565b82516126ec81612e6d565b808252506020830151602082015260408301516040820152606083015182811115612715578485fd5b61272187828601612509565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612758578081fd5b815167ffffffffffffffff8082111561276f578283fd5b8184019150610140808387031215612785578384fd5b61278e81612d4d565b90508251815260208301516020820152604083015160408201526127b460608401612573565b60608201526080830151828111156127ca578485fd5b6127d687828601612509565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60006020828403121561282c578081fd5b815167ffffffffffffffff80821115612843578283fd5b9083019060c08286031215612856578283fd5b61286060c0612d4d565b825161286b81612e58565b8152602083810151908201526128836040840161257e565b6040820152606083015182811115612715578485fd5b6000602082840312156128aa578081fd5b815167ffffffffffffffff808211156128c1578283fd5b9083019060c082860312156128d4578283fd5b6128de60c0612d4d565b825181526020830151600281106128f3578485fd5b602082015260408381015190820152606083015182811115612715578485fd5b6000610120808385031215612926578182fd5b61292f81612d4d565b905061293a8361257e565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006101608083850312156129ab578182fd5b6129b481612d4d565b9050825181526129c6602084016124fe565b60208201526129d7604084016124fe565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152508091505092915050565b60008151808452612a54816020860160208601612da1565b601f01601f19169290920160200192915050565b612a7181612e38565b9052565b6000602082526111856020830184612a3c565b6020810160078310612a9c57612a9c612e0c565b91905290565b60208101612a9c83612e48565b6000602082528251612ac081612e38565b806020840152506020830151604083015260408301516060830152606083015160c06080840152612af460e0840182612a3c565b9050608084015160a084015260a084015160c08401528091505092915050565b6000602082528251602083015260208301516040830152604083015160608301526060830151612b476080840182612a68565b5060808301516101408060a0850152612b64610160850183612a3c565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b60006020825260018060a01b038351166020830152602083015160408301526040830151612bd881612e48565b80606084015250606083015160c06080840152612af460e0840182612a3c565b60006020825282516020830152602083015160028110612c1a57612c1a612e0c565b8060408401525060408301516060830152606083015160c06080840152612af460e0840182612a3c565b8151610120820190612c5581612e48565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b81518152602080830151610160830191612cd5908401826001600160a01b03169052565b506040830151612cf060408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7657612d76612e22565b604052919050565b600082821015612d9c57634e487b7160e01b81526011600452602481fd5b500390565b60005b83811015612dbc578181015183820152602001612da4565b83811115612dcb576000848401525b50505050565b600281046001821680612de557607f821691505b60208210811415612e0657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600481106123f0576123f0612e0c565b600381106123f0576123f0612e0c565b6001600160a01b03811681146123f057600080fd5b600481106123f057600080fd5b600381106123f057600080fdfea26469706673582212208baa8d3664a94bfb7869664ce5bc59b2293ec35862ba4906c74e8d5f75cdd5f464736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/services/OracleService.sol/OracleService.dbg.json b/artifacts/contracts/services/OracleService.sol/OracleService.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/services/OracleService.sol/OracleService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/services/OracleService.sol/OracleService.json b/artifacts/contracts/services/OracleService.sol/OracleService.json new file mode 100644 index 00000000..f8358b53 --- /dev/null +++ b/artifacts/contracts/services/OracleService.sol/OracleService.json @@ -0,0 +1,55 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "OracleService", + "sourceName": "contracts/services/OracleService.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_requestId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "respond", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61053c806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063e409534a14610050575b600080fd5b61004e6100493660046103f1565b610063565b005b61004e61005e366004610430565b6101ed565b600054610100900460ff16158080156100835750600054600160ff909116105b806100a4575061009230610258565b1580156100a4575060005460ff166001145b61010c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561012f576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610159600090565b6541636365737360d01b1461019b5761017a6541636365737360d01b61026b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101a3610353565b80156101e9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b0316639af8c4ba843385856040518563ffffffff1660e01b815260040161022194939291906104a7565b600060405180830381600087803b15801561023b57600080fd5b505af115801561024f573d6000803e3d6000fd5b50505050505050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156102b557600080fd5b505afa1580156102c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ed9190610414565b90506001600160a01b0381166102665760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610103565b600054610100900460ff166103be5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610103565b6103cf64517565727960d81b61026b565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610402578081fd5b813561040d816104ee565b9392505050565b600060208284031215610425578081fd5b815161040d816104ee565b600080600060408486031215610444578182fd5b83359250602084013567ffffffffffffffff80821115610462578384fd5b818601915086601f830112610475578384fd5b813581811115610483578485fd5b876020828501011115610494578485fd5b6020830194508093505050509250925092565b8481526001600160a01b03841660208201526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6001600160a01b038116811461050357600080fd5b5056fea26469706673582212204a53d69cc77e9e0eeba3f4165d92870605fe025baa935bbfaef8c2a6955096a464736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063e409534a14610050575b600080fd5b61004e6100493660046103f1565b610063565b005b61004e61005e366004610430565b6101ed565b600054610100900460ff16158080156100835750600054600160ff909116105b806100a4575061009230610258565b1580156100a4575060005460ff166001145b61010c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561012f576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610159600090565b6541636365737360d01b1461019b5761017a6541636365737360d01b61026b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101a3610353565b80156101e9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b0316639af8c4ba843385856040518563ffffffff1660e01b815260040161022194939291906104a7565b600060405180830381600087803b15801561023b57600080fd5b505af115801561024f573d6000803e3d6000fd5b50505050505050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156102b557600080fd5b505afa1580156102c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ed9190610414565b90506001600160a01b0381166102665760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610103565b600054610100900460ff166103be5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610103565b6103cf64517565727960d81b61026b565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610402578081fd5b813561040d816104ee565b9392505050565b600060208284031215610425578081fd5b815161040d816104ee565b600080600060408486031215610444578182fd5b83359250602084013567ffffffffffffffff80821115610462578384fd5b818601915086601f830112610475578384fd5b813581811115610483578485fd5b876020828501011115610494578485fd5b6020830194508093505050509250925092565b8481526001600160a01b03841660208201526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6001600160a01b038116811461050357600080fd5b5056fea26469706673582212204a53d69cc77e9e0eeba3f4165d92870605fe025baa935bbfaef8c2a6955096a464736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/services/ProductService.sol/ProductService.dbg.json b/artifacts/contracts/services/ProductService.sol/ProductService.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/services/ProductService.sol/ProductService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/services/ProductService.sol/ProductService.json b/artifacts/contracts/services/ProductService.sol/ProductService.json new file mode 100644 index 00000000..8adbee4e --- /dev/null +++ b/artifacts/contracts/services/ProductService.sol/ProductService.json @@ -0,0 +1,71 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ProductService", + "sourceName": "contracts/services/ProductService.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "stateMutability": "nonpayable", + "type": "fallback" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "getContractFromRegistry", + "outputs": [ + { + "internalType": "address", + "name": "_addr", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60a060405234801561001057600080fd5b506040516104f03803806104f083398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c61045261009e600039600081816101a00152818161023a01526102fe01526104526000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80637b1039991461019b578063a3f4df7e146101df578063a5b25e7114610205575b60008061004c610218565b6001600160a01b031663d3e9c314336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160606040518083038186803b15801561009a57600080fd5b505afa1580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d291906103db565b9250925050816101295760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5052532d3030313a4e4f545f415554484f52495a45440000000060448201526064015b60405180910390fd5b6001600160a01b03811661018e5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5052532d3030323a504f4c4943595f464c4f575f4e4f545f524560448201526514d3d315915160d21b6064820152608401610120565b610197816102c1565b5050005b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f76d50726f647563745365727669636560901b81565b6040519081526020016101d6565b6101c26102133660046103c3565b6102e5565b604051631c2d8fb360e31b8152664c6963656e736560c81b60048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561028457600080fd5b505afa158015610298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bc91906103a2565b905090565b3660008037600080366000845af43d6000803e8080156102e0573d6000f35b3d6000fd5b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561034857600080fd5b505afa15801561035c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038091906103a2565b92915050565b80516001600160a01b038116811461039d57600080fd5b919050565b6000602082840312156103b3578081fd5b6103bc82610386565b9392505050565b6000602082840312156103d4578081fd5b5035919050565b6000806000606084860312156103ef578182fd5b8351925060208401518015158114610405578283fd5b915061041360408501610386565b9050925092509256fea26469706673582212207b859cebd9125a360f4471ca57be175d7287894fb1de6366e38c493b36feefb564736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80637b1039991461019b578063a3f4df7e146101df578063a5b25e7114610205575b60008061004c610218565b6001600160a01b031663d3e9c314336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160606040518083038186803b15801561009a57600080fd5b505afa1580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d291906103db565b9250925050816101295760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5052532d3030313a4e4f545f415554484f52495a45440000000060448201526064015b60405180910390fd5b6001600160a01b03811661018e5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5052532d3030323a504f4c4943595f464c4f575f4e4f545f524560448201526514d3d315915160d21b6064820152608401610120565b610197816102c1565b5050005b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f76d50726f647563745365727669636560901b81565b6040519081526020016101d6565b6101c26102133660046103c3565b6102e5565b604051631c2d8fb360e31b8152664c6963656e736560c81b60048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561028457600080fd5b505afa158015610298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bc91906103a2565b905090565b3660008037600080366000845af43d6000803e8080156102e0573d6000f35b3d6000fd5b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561034857600080fd5b505afa15801561035c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038091906103a2565b92915050565b80516001600160a01b038116811461039d57600080fd5b919050565b6000602082840312156103b3578081fd5b6103bc82610386565b9392505050565b6000602082840312156103d4578081fd5b5035919050565b6000806000606084860312156103ef578182fd5b8351925060208401518015158114610405578283fd5b915061041360408501610386565b9050925092509256fea26469706673582212207b859cebd9125a360f4471ca57be175d7287894fb1de6366e38c493b36feefb564736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.dbg.json b/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.json b/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.json new file mode 100644 index 00000000..ebf86a3d --- /dev/null +++ b/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.json @@ -0,0 +1,318 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "RiskpoolService", + "sourceName": "contracts/services/RiskpoolService.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [], + "name": "RISKPOOL_NAME", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "burnBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "closeBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "collateralizePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "initialCapital", + "type": "uint256" + } + ], + "name": "createBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "defundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "fundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "lockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "wallet", + "type": "address" + }, + { + "internalType": "address", + "name": "erc20Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "collateralizationLevel", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumOfSumInsuredCap", + "type": "uint256" + } + ], + "name": "registerRiskpool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "releasePolicy", + "outputs": [ + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxNumberOfActiveBundles", + "type": "uint256" + } + ], + "name": "setMaximumNumberOfActiveBundles", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "unlockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b613f9c80620000f46000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806389002da511610097578063b726742011610066578063b7267420146101de578063bb540df6146101f1578063bf2e354614610204578063c4d66de814610217576100f5565b806389002da5146101925780638c483e5a146101a5578063a17030d5146101b8578063b299cc26146101cb576100f5565b8063316c5348116100d3578063316c53481461014657806336153f3a146101595780634d03f9b71461016c578063587e59d01461017f576100f5565b806304f5f96e146100fa57806315fc1e741461011e5780632127fd4814610131575b600080fd5b61010c67149a5cdadc1bdbdb60c21b81565b60405190815260200160405180910390f35b61010c61012c366004613b9d565b61022a565b61014461013f366004613d7f565b61078a565b005b610144610154366004613d4f565b610a8c565b61010c610167366004613d7f565b610ea5565b61014461017a366004613da0565b611419565b61014461018d366004613d4f565b611749565b61010c6101a0366004613d7f565b611cbf565b6101446101b3366004613d4f565b6121d8565b6101446101c6366004613d4f565b612657565b6101446101d9366004613da0565b612a3a565b6101446101ec366004613da0565b612d32565b61010c6101ff366004613d7f565b61302a565b610144610212366004613b58565b613375565b610144610225366004613b19565b6136ca565b60025460009081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561028057600080fd5b505afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156102ff57600080fd5b505afa158015610313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103379190613c5c565b600281111561035657634e487b7160e01b600052602160045260246000fd5b146103b25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030333a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084015b60405180910390fd5b600254604051635e966e4560e01b8152600481018390526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156103f757600080fd5b505afa15801561040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042f9190613c3d565b600681111561044e57634e487b7160e01b600052602160045260246000fd5b146104a55760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030343a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156104f957600080fd5b505afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190613d67565b600354604051633039c50160e21b81529192506001600160a01b03169063c0e714049061056b908a9085908b908b90600090600401613dee565b602060405180830381600087803b15801561058557600080fd5b505af1158015610599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bd9190613d67565b60048054604051626a03dd60e91b81529295506001600160a01b03169163d407ba00916105f7918591889101918252602082015260400190565b600060405180830381600087803b15801561061157600080fd5b505af1158015610625573d6000803e3d6000fd5b505060055460405163136f5ed560e11b81526004810187905260248101889052600093508392506001600160a01b03909116906326debdaa906044016040805180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190613dcb565b60035460405163a65e2cfd60e01b815260048101899052602481018390529294509092506001600160a01b03169063a65e2cfd90604401600060405180830381600087803b15801561070357600080fd5b505af1158015610717573d6000803e3d6000fd5b50506004805460405163a65e2cfd60e01b8152918201879052602482018590526001600160a01b0316925063a65e2cfd9150604401600060405180830381600087803b15801561076657600080fd5b505af115801561077a573d6000803e3d6000fd5b5050505050505050949350505050565b60025482906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156107e357600080fd5b505afa1580156107f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081b9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c9190613c5c565b60028111156108bb57634e487b7160e01b600052602160045260246000fd5b1490508080156108ca57508382145b6109275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3030383a53454e4445525f4e4f545f4f574e494e475f604482015267149254d2d413d3d360c21b60648201526084016103a9565b8215610a2057600254604051635e966e4560e01b8152600481018490526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa9190613c3d565b60068111156109c957634e487b7160e01b600052602160045260246000fd5b14610a205760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030393a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b60048054604051630424ffa960e31b8152918201889052602482018790526001600160a01b031690632127fd48906044015b600060405180830381600087803b158015610a6c57600080fd5b505af1158015610a80573d6000803e3d6000fd5b50505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ae557600080fd5b505afa158015610af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1d9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610b6657600080fd5b505afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190613c5c565b6002811115610bbd57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c449190810190613c7b565b905081610c635760405162461bcd60e51b81526004016103a990613e3f565b80602001518314610c865760405162461bcd60e51b81526004016103a990613ec1565b8315610d4557600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d099190613c3d565b6006811115610d2857634e487b7160e01b600052602160045260246000fd5b14610d455760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610d9957600080fd5b505afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190613d67565b60048054604051626a03dd60e91b81529293506001600160a01b03169163d407ba0091610e0b9185918c9101918252602082015260400190565b600060405180830381600087803b158015610e2557600080fd5b505af1158015610e39573d6000803e3d6000fd5b5050600354604051636198e33960e01b8152600481018b90526001600160a01b039091169250636198e33991506024015b600060405180830381600087803b158015610e8457600080fd5b505af1158015610e98573d6000803e3d6000fd5b5050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f389190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190613c5c565b6002811115610fd857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561102357600080fd5b505afa158015611037573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261105f9190810190613c7b565b90508161107e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146110a15760405162461bcd60e51b81526004016103a990613ec1565b831561116057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156110ec57600080fd5b505afa158015611100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111249190613c3d565b600681111561114357634e487b7160e01b600052602160045260246000fd5b146111605760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156111a557600080fd5b505afa1580156111b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111e19190810190613c7b565b905060038160600151600381111561120957634e487b7160e01b600052602160045260246000fd5b14156112575760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5250532d3031313a42554e444c455f4255524e4544000000000060448201526064016103a9565b60055460405163d935807560e01b8152600481018b9052602481018a90526000916001600160a01b03169063d9358075906044016040805180830381600087803b1580156112a457600080fd5b505af11580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190613dcb565b985090508888146113405760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3031333a554e45585045435445445f4645455f5355426044820152672a2920a1aa24a7a760c11b60648201526084016103a9565b60035460405163c397ae3960e01b8152600481018c9052602481018b90526001600160a01b039091169063c397ae3990604401600060405180830381600087803b15801561138d57600080fd5b505af11580156113a1573d6000803e3d6000fd5b505060048054602086015160405163c397ae3960e01b815292830152602482018c90526001600160a01b0316925063c397ae3991506044015b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050505050505050505092915050565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561147257600080fd5b505afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156114f357600080fd5b505afa158015611507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152b9190613c5c565b600281111561154a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561159557600080fd5b505afa1580156115a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115d19190810190613c7b565b9050816115f05760405162461bcd60e51b81526004016103a990613e3f565b806020015183146116135760405162461bcd60e51b81526004016103a990613ec1565b83156116d257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561165e57600080fd5b505afa158015611672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116969190613c3d565b60068111156116b557634e487b7160e01b600052602160045260246000fd5b146116d25760405162461bcd60e51b81526004016103a990613e80565b600354604051634d03f9b760e01b8152600481018a905260248101899052604481018890526001600160a01b0390911690634d03f9b7906064015b600060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b505050505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156117a257600080fd5b505afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b9190613c5c565b600281111561187a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156118c557600080fd5b505afa1580156118d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119019190810190613c7b565b9050816119205760405162461bcd60e51b81526004016103a990613e3f565b806020015183146119435760405162461bcd60e51b81526004016103a990613ec1565b8315611a0257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561198e57600080fd5b505afa1580156119a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c69190613c3d565b60068111156119e557634e487b7160e01b600052602160045260246000fd5b14611a025760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a839190810190613c7b565b9050600281606001516003811115611aab57634e487b7160e01b600052602160045260246000fd5b14611af85760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5250532d3032303a42554e444c455f4e4f545f434c4f5345440060448201526064016103a9565b60055460e082015160405163d935807560e01b8152600481018a9052602481019190915260009182916001600160a01b039091169063d9358075906044016040805180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b879190613dcb565b60035460405163c397ae3960e01b8152600481018d9052602481018390529294509092506001600160a01b03169063c397ae3990604401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505060048054602087015160405163c397ae3960e01b815292830152602482018590526001600160a01b0316925063c397ae399150604401600060405180830381600087803b158015611c3e57600080fd5b505af1158015611c52573d6000803e3d6000fd5b5050600354604051630852cd8d60e31b8152600481018d90526001600160a01b0390911692506342966c689150602401600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b50505050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015611d1a57600080fd5b505afa158015611d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d529190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd39190613c5c565b6002811115611df257634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611e3d57600080fd5b505afa158015611e51573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e799190810190613c7b565b905081611e985760405162461bcd60e51b81526004016103a990613e3f565b80602001518314611ebb5760405162461bcd60e51b81526004016103a990613ec1565b8315611f7a57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e9190613c3d565b6006811115611f5d57634e487b7160e01b600052602160045260246000fd5b14611f7a5760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611fbf57600080fd5b505afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb9190810190613c7b565b905060028160600151600381111561202357634e487b7160e01b600052602160045260246000fd5b14158015612055575060038160600151600381111561205257634e487b7160e01b600052602160045260246000fd5b14155b6120af5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5250532d3031303a42554e444c455f434c4f5345445f4f525f42604482015264155493915160da1b60648201526084016103a9565b60055460405163136f5ed560e11b8152600481018b9052602481018a90526000916001600160a01b0316906326debdaa906044016040805180830381600087803b1580156120fc57600080fd5b505af1158015612110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121349190613dcb565b60035460405163a65e2cfd60e01b8152600481018e905260248101839052919a509192506001600160a01b039091169063a65e2cfd90604401600060405180830381600087803b15801561218757600080fd5b505af115801561219b573d6000803e3d6000fd5b505060048054602086015160405163a65e2cfd60e01b815292830152602482018c90526001600160a01b0316925063a65e2cfd91506044016113da565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561223157600080fd5b505afa158015612245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122699190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156122b257600080fd5b505afa1580156122c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ea9190613c5c565b600281111561230957634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561235457600080fd5b505afa158015612368573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123909190810190613c7b565b9050816123af5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146123d25760405162461bcd60e51b81526004016103a990613ec1565b831561249157600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190613c3d565b600681111561247457634e487b7160e01b600052602160045260246000fd5b146124915760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156124e557600080fd5b505afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190613d67565b9050600060035460405163089935e560e31b8152600481018a90526001600160a01b03909116906344c9af289060240160206040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d9190613c23565b60038111156125bc57634e487b7160e01b600052602160045260246000fd5b1415612626576004805460405163950be80360e01b8152918201839052602482018990526001600160a01b03169063950be80390604401600060405180830381600087803b15801561260d57600080fd5b505af1158015612621573d6000803e3d6000fd5b505050505b600354604051630575f5a760e11b8152600481018990526001600160a01b0390911690630aebeb4e90602401610e6a565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156126b057600080fd5b505afa1580156126c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e89190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561273157600080fd5b505afa158015612745573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127699190613c5c565b600281111561278857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156127d357600080fd5b505afa1580156127e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261280f9190810190613c7b565b90508161282e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146128515760405162461bcd60e51b81526004016103a990613ec1565b831561291057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561289c57600080fd5b505afa1580156128b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d49190613c3d565b60068111156128f357634e487b7160e01b600052602160045260246000fd5b146129105760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561296457600080fd5b505afa158015612978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299c9190613d67565b6004805460405163950be80360e01b81529293506001600160a01b03169163950be803916129d79185918c9101918252602082015260400190565b600060405180830381600087803b1580156129f157600080fd5b505af1158015612a05573d6000803e3d6000fd5b50506003546040516337519c1960e21b8152600481018b90526001600160a01b03909116925063dd4670649150602401610e6a565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612a9357600080fd5b505afa158015612aa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acb9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612b1457600080fd5b505afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4c9190613c5c565b6002811115612b6b57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612bb657600080fd5b505afa158015612bca573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bf29190810190613c7b565b905081612c115760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612c345760405162461bcd60e51b81526004016103a990613ec1565b8315612cf357600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612c7f57600080fd5b505afa158015612c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb79190613c3d565b6006811115612cd657634e487b7160e01b600052602160045260246000fd5b14612cf35760405162461bcd60e51b81526004016103a990613e80565b60035460405163594ce61360e11b8152600481018a905260248101899052604481018890526001600160a01b039091169063b299cc269060640161170d565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612d8b57600080fd5b505afa158015612d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc39190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612e0c57600080fd5b505afa158015612e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e449190613c5c565b6002811115612e6357634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612eae57600080fd5b505afa158015612ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612eea9190810190613c7b565b905081612f095760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612f2c5760405162461bcd60e51b81526004016103a990613ec1565b8315612feb57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612f7757600080fd5b505afa158015612f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612faf9190613c3d565b6006811115612fce57634e487b7160e01b600052602160045260246000fd5b14612feb5760405162461bcd60e51b81526004016103a990613e80565b6003546040516305b933a160e51b8152600481018a905260248101899052604481018890526001600160a01b039091169063b72674209060640161170d565b6002546000908390829081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561308457600080fd5b505afa158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561310557600080fd5b505afa158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d9190613c5c565b600281111561315c57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156131a757600080fd5b505afa1580156131bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131e39190810190613c7b565b9050816132025760405162461bcd60e51b81526004016103a990613e3f565b806020015183146132255760405162461bcd60e51b81526004016103a990613ec1565b83156132e457600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561327057600080fd5b505afa158015613284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a89190613c3d565b60068111156132c757634e487b7160e01b600052602160045260246000fd5b146132e45760405162461bcd60e51b81526004016103a990613e80565b600354604051635daa06fb60e11b8152600481018a9052602481018990526001600160a01b039091169063bb540df690604401602060405180830381600087803b15801561333157600080fd5b505af1158015613345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133699190613d67565b98975050505050505050565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156133c957600080fd5b505afa1580156133dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134019190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134809190613c5c565b600281111561349f57634e487b7160e01b600052602160045260246000fd5b146134f65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030313a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084016103a9565b600254604051635e966e4560e01b8152600481018390526001916001600160a01b031690635e966e459060240160206040518083038186803b15801561353b57600080fd5b505afa15801561354f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135739190613c3d565b600681111561359257634e487b7160e01b600052602160045260246000fd5b146135eb5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5250532d3030323a5249534b504f4f4c5f4e4f545f50524f504f60448201526214d15160ea1b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561363f57600080fd5b505afa158015613653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136779190613d67565b600480546040516357419e8f60e01b81529182018390526001600160a01b0389811660248401528881166044840152606483018890526084830187905292935091909116906357419e8f9060a401610a52565b600054610100900460ff16158080156136ea5750600054600160ff909116105b8061370b57506136f93061384f565b15801561370b575060005460ff166001145b61376e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a9565b6000805460ff191660011790558015613791576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556137bb600090565b6541636365737360d01b146137fd576137dc6541636365737360d01b613862565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61380561394a565b801561384b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156138ac57600080fd5b505afa1580156138c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e49190613b3c565b90506001600160a01b03811661385d5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166139b55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b6139c76542756e646c6560d01b613862565b600380546001600160a01b0319166001600160a01b03929092169190911790556139fc6810dbdb5c1bdb995b9d60ba1b613862565b600280546001600160a01b0319166001600160a01b0392909216919091179055613a2c63141bdbdb60e21b613862565b600480546001600160a01b0319166001600160a01b0392909216919091179055613a6067547265617375727960c01b613862565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b600082601f830112613a92578081fd5b815167ffffffffffffffff811115613aac57613aac613f38565b6020613ac0601f8301601f19168201613f07565b8281528582848701011115613ad3578384fd5b835b83811015613af0578581018301518282018401528201613ad5565b83811115613b0057848385840101525b5095945050505050565b80516004811061385d57600080fd5b600060208284031215613b2a578081fd5b8135613b3581613f4e565b9392505050565b600060208284031215613b4d578081fd5b8151613b3581613f4e565b60008060008060808587031215613b6d578283fd5b8435613b7881613f4e565b93506020850135613b8881613f4e565b93969395505050506040820135916060013590565b60008060008060608587031215613bb2578384fd5b8435613bbd81613f4e565b9350602085013567ffffffffffffffff80821115613bd9578485fd5b818701915087601f830112613bec578485fd5b813581811115613bfa578586fd5b886020828501011115613c0b578586fd5b95986020929092019750949560400135945092505050565b600060208284031215613c34578081fd5b613b3582613b0a565b600060208284031215613c4e578081fd5b815160078110613b35578182fd5b600060208284031215613c6d578081fd5b815160038110613b35578182fd5b600060208284031215613c8c578081fd5b815167ffffffffffffffff80821115613ca3578283fd5b8184019150610140808387031215613cb9578384fd5b613cc281613f07565b9050825181526020830151602082015260408301516040820152613ce860608401613b0a565b6060820152608083015182811115613cfe578485fd5b613d0a87828601613a82565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613d60578081fd5b5035919050565b600060208284031215613d78578081fd5b5051919050565b60008060408385031215613d91578182fd5b50508035926020909101359150565b600080600060608486031215613db4578283fd5b505081359360208301359350604090920135919050565b60008060408385031215613ddd578182fd5b505080516020909101519092909150565b6001600160a01b03861681526020810185905260806040820181905281018390526000838560a08401378060a0858401015260a0601f19601f86011683010190508260608301529695505050505050565b60208082526021908201527f4552524f523a5250532d3030353a53454e4445525f4e4f545f5249534b504f4f6040820152601360fa1b606082015260800190565b60208082526021908201527f4552524f523a5250532d3030373a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526026908201527f4552524f523a5250532d3030363a42554e444c455f5249534b504f4f4c5f4d496040820152650a69a82a886960d31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f3057613f30613f38565b604052919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114613f6357600080fd5b5056fea26469706673582212209a54242b6373dab5b01e37d770361bdd347dbf612e95820001979e25479ba64464736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806389002da511610097578063b726742011610066578063b7267420146101de578063bb540df6146101f1578063bf2e354614610204578063c4d66de814610217576100f5565b806389002da5146101925780638c483e5a146101a5578063a17030d5146101b8578063b299cc26146101cb576100f5565b8063316c5348116100d3578063316c53481461014657806336153f3a146101595780634d03f9b71461016c578063587e59d01461017f576100f5565b806304f5f96e146100fa57806315fc1e741461011e5780632127fd4814610131575b600080fd5b61010c67149a5cdadc1bdbdb60c21b81565b60405190815260200160405180910390f35b61010c61012c366004613b9d565b61022a565b61014461013f366004613d7f565b61078a565b005b610144610154366004613d4f565b610a8c565b61010c610167366004613d7f565b610ea5565b61014461017a366004613da0565b611419565b61014461018d366004613d4f565b611749565b61010c6101a0366004613d7f565b611cbf565b6101446101b3366004613d4f565b6121d8565b6101446101c6366004613d4f565b612657565b6101446101d9366004613da0565b612a3a565b6101446101ec366004613da0565b612d32565b61010c6101ff366004613d7f565b61302a565b610144610212366004613b58565b613375565b610144610225366004613b19565b6136ca565b60025460009081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561028057600080fd5b505afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156102ff57600080fd5b505afa158015610313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103379190613c5c565b600281111561035657634e487b7160e01b600052602160045260246000fd5b146103b25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030333a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084015b60405180910390fd5b600254604051635e966e4560e01b8152600481018390526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156103f757600080fd5b505afa15801561040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042f9190613c3d565b600681111561044e57634e487b7160e01b600052602160045260246000fd5b146104a55760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030343a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156104f957600080fd5b505afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190613d67565b600354604051633039c50160e21b81529192506001600160a01b03169063c0e714049061056b908a9085908b908b90600090600401613dee565b602060405180830381600087803b15801561058557600080fd5b505af1158015610599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bd9190613d67565b60048054604051626a03dd60e91b81529295506001600160a01b03169163d407ba00916105f7918591889101918252602082015260400190565b600060405180830381600087803b15801561061157600080fd5b505af1158015610625573d6000803e3d6000fd5b505060055460405163136f5ed560e11b81526004810187905260248101889052600093508392506001600160a01b03909116906326debdaa906044016040805180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190613dcb565b60035460405163a65e2cfd60e01b815260048101899052602481018390529294509092506001600160a01b03169063a65e2cfd90604401600060405180830381600087803b15801561070357600080fd5b505af1158015610717573d6000803e3d6000fd5b50506004805460405163a65e2cfd60e01b8152918201879052602482018590526001600160a01b0316925063a65e2cfd9150604401600060405180830381600087803b15801561076657600080fd5b505af115801561077a573d6000803e3d6000fd5b5050505050505050949350505050565b60025482906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156107e357600080fd5b505afa1580156107f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081b9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c9190613c5c565b60028111156108bb57634e487b7160e01b600052602160045260246000fd5b1490508080156108ca57508382145b6109275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3030383a53454e4445525f4e4f545f4f574e494e475f604482015267149254d2d413d3d360c21b60648201526084016103a9565b8215610a2057600254604051635e966e4560e01b8152600481018490526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa9190613c3d565b60068111156109c957634e487b7160e01b600052602160045260246000fd5b14610a205760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030393a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b60048054604051630424ffa960e31b8152918201889052602482018790526001600160a01b031690632127fd48906044015b600060405180830381600087803b158015610a6c57600080fd5b505af1158015610a80573d6000803e3d6000fd5b50505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ae557600080fd5b505afa158015610af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1d9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610b6657600080fd5b505afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190613c5c565b6002811115610bbd57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c449190810190613c7b565b905081610c635760405162461bcd60e51b81526004016103a990613e3f565b80602001518314610c865760405162461bcd60e51b81526004016103a990613ec1565b8315610d4557600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d099190613c3d565b6006811115610d2857634e487b7160e01b600052602160045260246000fd5b14610d455760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610d9957600080fd5b505afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190613d67565b60048054604051626a03dd60e91b81529293506001600160a01b03169163d407ba0091610e0b9185918c9101918252602082015260400190565b600060405180830381600087803b158015610e2557600080fd5b505af1158015610e39573d6000803e3d6000fd5b5050600354604051636198e33960e01b8152600481018b90526001600160a01b039091169250636198e33991506024015b600060405180830381600087803b158015610e8457600080fd5b505af1158015610e98573d6000803e3d6000fd5b5050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f389190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190613c5c565b6002811115610fd857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561102357600080fd5b505afa158015611037573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261105f9190810190613c7b565b90508161107e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146110a15760405162461bcd60e51b81526004016103a990613ec1565b831561116057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156110ec57600080fd5b505afa158015611100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111249190613c3d565b600681111561114357634e487b7160e01b600052602160045260246000fd5b146111605760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156111a557600080fd5b505afa1580156111b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111e19190810190613c7b565b905060038160600151600381111561120957634e487b7160e01b600052602160045260246000fd5b14156112575760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5250532d3031313a42554e444c455f4255524e4544000000000060448201526064016103a9565b60055460405163d935807560e01b8152600481018b9052602481018a90526000916001600160a01b03169063d9358075906044016040805180830381600087803b1580156112a457600080fd5b505af11580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190613dcb565b985090508888146113405760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3031333a554e45585045435445445f4645455f5355426044820152672a2920a1aa24a7a760c11b60648201526084016103a9565b60035460405163c397ae3960e01b8152600481018c9052602481018b90526001600160a01b039091169063c397ae3990604401600060405180830381600087803b15801561138d57600080fd5b505af11580156113a1573d6000803e3d6000fd5b505060048054602086015160405163c397ae3960e01b815292830152602482018c90526001600160a01b0316925063c397ae3991506044015b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050505050505050505092915050565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561147257600080fd5b505afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156114f357600080fd5b505afa158015611507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152b9190613c5c565b600281111561154a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561159557600080fd5b505afa1580156115a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115d19190810190613c7b565b9050816115f05760405162461bcd60e51b81526004016103a990613e3f565b806020015183146116135760405162461bcd60e51b81526004016103a990613ec1565b83156116d257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561165e57600080fd5b505afa158015611672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116969190613c3d565b60068111156116b557634e487b7160e01b600052602160045260246000fd5b146116d25760405162461bcd60e51b81526004016103a990613e80565b600354604051634d03f9b760e01b8152600481018a905260248101899052604481018890526001600160a01b0390911690634d03f9b7906064015b600060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b505050505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156117a257600080fd5b505afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b9190613c5c565b600281111561187a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156118c557600080fd5b505afa1580156118d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119019190810190613c7b565b9050816119205760405162461bcd60e51b81526004016103a990613e3f565b806020015183146119435760405162461bcd60e51b81526004016103a990613ec1565b8315611a0257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561198e57600080fd5b505afa1580156119a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c69190613c3d565b60068111156119e557634e487b7160e01b600052602160045260246000fd5b14611a025760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a839190810190613c7b565b9050600281606001516003811115611aab57634e487b7160e01b600052602160045260246000fd5b14611af85760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5250532d3032303a42554e444c455f4e4f545f434c4f5345440060448201526064016103a9565b60055460e082015160405163d935807560e01b8152600481018a9052602481019190915260009182916001600160a01b039091169063d9358075906044016040805180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b879190613dcb565b60035460405163c397ae3960e01b8152600481018d9052602481018390529294509092506001600160a01b03169063c397ae3990604401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505060048054602087015160405163c397ae3960e01b815292830152602482018590526001600160a01b0316925063c397ae399150604401600060405180830381600087803b158015611c3e57600080fd5b505af1158015611c52573d6000803e3d6000fd5b5050600354604051630852cd8d60e31b8152600481018d90526001600160a01b0390911692506342966c689150602401600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b50505050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015611d1a57600080fd5b505afa158015611d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d529190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd39190613c5c565b6002811115611df257634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611e3d57600080fd5b505afa158015611e51573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e799190810190613c7b565b905081611e985760405162461bcd60e51b81526004016103a990613e3f565b80602001518314611ebb5760405162461bcd60e51b81526004016103a990613ec1565b8315611f7a57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e9190613c3d565b6006811115611f5d57634e487b7160e01b600052602160045260246000fd5b14611f7a5760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611fbf57600080fd5b505afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb9190810190613c7b565b905060028160600151600381111561202357634e487b7160e01b600052602160045260246000fd5b14158015612055575060038160600151600381111561205257634e487b7160e01b600052602160045260246000fd5b14155b6120af5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5250532d3031303a42554e444c455f434c4f5345445f4f525f42604482015264155493915160da1b60648201526084016103a9565b60055460405163136f5ed560e11b8152600481018b9052602481018a90526000916001600160a01b0316906326debdaa906044016040805180830381600087803b1580156120fc57600080fd5b505af1158015612110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121349190613dcb565b60035460405163a65e2cfd60e01b8152600481018e905260248101839052919a509192506001600160a01b039091169063a65e2cfd90604401600060405180830381600087803b15801561218757600080fd5b505af115801561219b573d6000803e3d6000fd5b505060048054602086015160405163a65e2cfd60e01b815292830152602482018c90526001600160a01b0316925063a65e2cfd91506044016113da565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561223157600080fd5b505afa158015612245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122699190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156122b257600080fd5b505afa1580156122c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ea9190613c5c565b600281111561230957634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561235457600080fd5b505afa158015612368573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123909190810190613c7b565b9050816123af5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146123d25760405162461bcd60e51b81526004016103a990613ec1565b831561249157600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190613c3d565b600681111561247457634e487b7160e01b600052602160045260246000fd5b146124915760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156124e557600080fd5b505afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190613d67565b9050600060035460405163089935e560e31b8152600481018a90526001600160a01b03909116906344c9af289060240160206040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d9190613c23565b60038111156125bc57634e487b7160e01b600052602160045260246000fd5b1415612626576004805460405163950be80360e01b8152918201839052602482018990526001600160a01b03169063950be80390604401600060405180830381600087803b15801561260d57600080fd5b505af1158015612621573d6000803e3d6000fd5b505050505b600354604051630575f5a760e11b8152600481018990526001600160a01b0390911690630aebeb4e90602401610e6a565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156126b057600080fd5b505afa1580156126c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e89190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561273157600080fd5b505afa158015612745573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127699190613c5c565b600281111561278857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156127d357600080fd5b505afa1580156127e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261280f9190810190613c7b565b90508161282e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146128515760405162461bcd60e51b81526004016103a990613ec1565b831561291057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561289c57600080fd5b505afa1580156128b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d49190613c3d565b60068111156128f357634e487b7160e01b600052602160045260246000fd5b146129105760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561296457600080fd5b505afa158015612978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299c9190613d67565b6004805460405163950be80360e01b81529293506001600160a01b03169163950be803916129d79185918c9101918252602082015260400190565b600060405180830381600087803b1580156129f157600080fd5b505af1158015612a05573d6000803e3d6000fd5b50506003546040516337519c1960e21b8152600481018b90526001600160a01b03909116925063dd4670649150602401610e6a565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612a9357600080fd5b505afa158015612aa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acb9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612b1457600080fd5b505afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4c9190613c5c565b6002811115612b6b57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612bb657600080fd5b505afa158015612bca573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bf29190810190613c7b565b905081612c115760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612c345760405162461bcd60e51b81526004016103a990613ec1565b8315612cf357600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612c7f57600080fd5b505afa158015612c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb79190613c3d565b6006811115612cd657634e487b7160e01b600052602160045260246000fd5b14612cf35760405162461bcd60e51b81526004016103a990613e80565b60035460405163594ce61360e11b8152600481018a905260248101899052604481018890526001600160a01b039091169063b299cc269060640161170d565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612d8b57600080fd5b505afa158015612d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc39190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612e0c57600080fd5b505afa158015612e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e449190613c5c565b6002811115612e6357634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612eae57600080fd5b505afa158015612ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612eea9190810190613c7b565b905081612f095760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612f2c5760405162461bcd60e51b81526004016103a990613ec1565b8315612feb57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612f7757600080fd5b505afa158015612f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612faf9190613c3d565b6006811115612fce57634e487b7160e01b600052602160045260246000fd5b14612feb5760405162461bcd60e51b81526004016103a990613e80565b6003546040516305b933a160e51b8152600481018a905260248101899052604481018890526001600160a01b039091169063b72674209060640161170d565b6002546000908390829081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561308457600080fd5b505afa158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561310557600080fd5b505afa158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d9190613c5c565b600281111561315c57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156131a757600080fd5b505afa1580156131bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131e39190810190613c7b565b9050816132025760405162461bcd60e51b81526004016103a990613e3f565b806020015183146132255760405162461bcd60e51b81526004016103a990613ec1565b83156132e457600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561327057600080fd5b505afa158015613284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a89190613c3d565b60068111156132c757634e487b7160e01b600052602160045260246000fd5b146132e45760405162461bcd60e51b81526004016103a990613e80565b600354604051635daa06fb60e11b8152600481018a9052602481018990526001600160a01b039091169063bb540df690604401602060405180830381600087803b15801561333157600080fd5b505af1158015613345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133699190613d67565b98975050505050505050565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156133c957600080fd5b505afa1580156133dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134019190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134809190613c5c565b600281111561349f57634e487b7160e01b600052602160045260246000fd5b146134f65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030313a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084016103a9565b600254604051635e966e4560e01b8152600481018390526001916001600160a01b031690635e966e459060240160206040518083038186803b15801561353b57600080fd5b505afa15801561354f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135739190613c3d565b600681111561359257634e487b7160e01b600052602160045260246000fd5b146135eb5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5250532d3030323a5249534b504f4f4c5f4e4f545f50524f504f60448201526214d15160ea1b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561363f57600080fd5b505afa158015613653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136779190613d67565b600480546040516357419e8f60e01b81529182018390526001600160a01b0389811660248401528881166044840152606483018890526084830187905292935091909116906357419e8f9060a401610a52565b600054610100900460ff16158080156136ea5750600054600160ff909116105b8061370b57506136f93061384f565b15801561370b575060005460ff166001145b61376e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a9565b6000805460ff191660011790558015613791576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556137bb600090565b6541636365737360d01b146137fd576137dc6541636365737360d01b613862565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61380561394a565b801561384b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156138ac57600080fd5b505afa1580156138c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e49190613b3c565b90506001600160a01b03811661385d5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166139b55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b6139c76542756e646c6560d01b613862565b600380546001600160a01b0319166001600160a01b03929092169190911790556139fc6810dbdb5c1bdb995b9d60ba1b613862565b600280546001600160a01b0319166001600160a01b0392909216919091179055613a2c63141bdbdb60e21b613862565b600480546001600160a01b0319166001600160a01b0392909216919091179055613a6067547265617375727960c01b613862565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b600082601f830112613a92578081fd5b815167ffffffffffffffff811115613aac57613aac613f38565b6020613ac0601f8301601f19168201613f07565b8281528582848701011115613ad3578384fd5b835b83811015613af0578581018301518282018401528201613ad5565b83811115613b0057848385840101525b5095945050505050565b80516004811061385d57600080fd5b600060208284031215613b2a578081fd5b8135613b3581613f4e565b9392505050565b600060208284031215613b4d578081fd5b8151613b3581613f4e565b60008060008060808587031215613b6d578283fd5b8435613b7881613f4e565b93506020850135613b8881613f4e565b93969395505050506040820135916060013590565b60008060008060608587031215613bb2578384fd5b8435613bbd81613f4e565b9350602085013567ffffffffffffffff80821115613bd9578485fd5b818701915087601f830112613bec578485fd5b813581811115613bfa578586fd5b886020828501011115613c0b578586fd5b95986020929092019750949560400135945092505050565b600060208284031215613c34578081fd5b613b3582613b0a565b600060208284031215613c4e578081fd5b815160078110613b35578182fd5b600060208284031215613c6d578081fd5b815160038110613b35578182fd5b600060208284031215613c8c578081fd5b815167ffffffffffffffff80821115613ca3578283fd5b8184019150610140808387031215613cb9578384fd5b613cc281613f07565b9050825181526020830151602082015260408301516040820152613ce860608401613b0a565b6060820152608083015182811115613cfe578485fd5b613d0a87828601613a82565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613d60578081fd5b5035919050565b600060208284031215613d78578081fd5b5051919050565b60008060408385031215613d91578182fd5b50508035926020909101359150565b600080600060608486031215613db4578283fd5b505081359360208301359350604090920135919050565b60008060408385031215613ddd578182fd5b505080516020909101519092909150565b6001600160a01b03861681526020810185905260806040820181905281018390526000838560a08401378060a0858401015260a0601f19601f86011683010190508260608301529695505050505050565b60208082526021908201527f4552524f523a5250532d3030353a53454e4445525f4e4f545f5249534b504f4f6040820152601360fa1b606082015260800190565b60208082526021908201527f4552524f523a5250532d3030373a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526026908201527f4552524f523a5250532d3030363a42554e444c455f5249534b504f4f4c5f4d496040820152650a69a82a886960d31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f3057613f30613f38565b604052919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114613f6357600080fd5b5056fea26469706673582212209a54242b6373dab5b01e37d770361bdd347dbf612e95820001979e25479ba64464736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/shared/CoreController.sol/CoreController.dbg.json b/artifacts/contracts/shared/CoreController.sol/CoreController.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/shared/CoreController.sol/CoreController.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/shared/CoreController.sol/CoreController.json b/artifacts/contracts/shared/CoreController.sol/CoreController.json new file mode 100644 index 00000000..0c6dbb32 --- /dev/null +++ b/artifacts/contracts/shared/CoreController.sol/CoreController.json @@ -0,0 +1,42 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "CoreController", + "sourceName": "contracts/shared/CoreController.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6103c0806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c4d66de814610030575b600080fd5b61004361003e366004610337565b610045565b005b600054610100900460ff16158080156100655750600054600160ff909116105b806100865750610074306101cf565b158015610086575060005460ff166001145b6100ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610111576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561013b600090565b6541636365737360d01b1461017d5761015c6541636365737360d01b6101e2565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101856102ca565b80156101cb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561022c57600080fd5b505afa158015610240573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610264919061035a565b90506001600160a01b0381166101dd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016100e5565b600054610100900460ff166103355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016100e5565b565b600060208284031215610348578081fd5b813561035381610372565b9392505050565b60006020828403121561036b578081fd5b8151610353815b6001600160a01b038116811461038757600080fd5b5056fea26469706673582212207a5000e854af590ede146fd80aeb1020a519941888a6dccd93415a3d32e7307364736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c4d66de814610030575b600080fd5b61004361003e366004610337565b610045565b005b600054610100900460ff16158080156100655750600054600160ff909116105b806100865750610074306101cf565b158015610086575060005460ff166001145b6100ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610111576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561013b600090565b6541636365737360d01b1461017d5761015c6541636365737360d01b6101e2565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101856102ca565b80156101cb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561022c57600080fd5b505afa158015610240573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610264919061035a565b90506001600160a01b0381166101dd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016100e5565b600054610100900460ff166103355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016100e5565b565b600060208284031215610348578081fd5b813561035381610372565b9392505050565b60006020828403121561036b578081fd5b8151610353815b6001600160a01b038116811461038757600080fd5b5056fea26469706673582212207a5000e854af590ede146fd80aeb1020a519941888a6dccd93415a3d32e7307364736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.dbg.json b/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.json b/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.json new file mode 100644 index 00000000..f83cbc82 --- /dev/null +++ b/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.json @@ -0,0 +1,130 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "CoreProxy", + "sourceName": "contracts/shared/CoreProxy.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_controller", + "type": "address" + }, + { + "internalType": "bytes", + "name": "encoded_initializer", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oldImplementation", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newImplemntation", + "type": "address" + } + ], + "name": "LogCoreContractUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "inputs": [], + "name": "implementation", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000c0c38038062000c0c83398101604081905262000034916200043b565b818162000044828260006200005a565b506200005290503362000097565b5050620005a9565b6200006583620000f2565b600082511180620000735750805b1562000092576200009083836200013460201b620001ae1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c262000163565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ef816200019c565b50565b620000fd8162000251565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015c838360405180606001604052806027815260200162000be56027913962000305565b9392505050565b60006200018d60008051602062000bc583398151915260001b620003eb60201b620001da1760201c565b546001600160a01b0316905090565b6001600160a01b038116620002075760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200023060008051602062000bc583398151915260001b620003eb60201b620001da1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200026781620003ee60201b620001dd1760201c565b620002cb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001fe565b80620002307f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003eb60201b620001da1760201c565b60606001600160a01b0384163b6200036f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001fe565b600080856001600160a01b0316856040516200038c919062000511565b600060405180830381855af49150503d8060008114620003c9576040519150601f19603f3d011682016040523d82523d6000602084013e620003ce565b606091505b509092509050620003e1828286620003fd565b9695505050505050565b90565b6001600160a01b03163b151590565b606083156200040e5750816200015c565b8251156200041f5782518084602001fd5b8160405162461bcd60e51b8152600401620001fe91906200052f565b600080604083850312156200044e578182fd5b82516001600160a01b038116811462000465578283fd5b60208401519092506001600160401b038082111562000482578283fd5b818501915085601f83011262000496578283fd5b815181811115620004ab57620004ab62000593565b604051601f8201601f19908116603f01168101908382118183101715620004d657620004d662000593565b81604052828152886020848701011115620004ef578586fd5b6200050283602083016020880162000564565b80955050505050509250929050565b600082516200052581846020870162000564565b9190910192915050565b60006020825282518060208401526200055081604085016020870162000564565b601f01601f19169190910160400192915050565b60005b838110156200058157818101518382015260200162000567565b83811115620000905750506000910152565b634e487b7160e01b600052604160045260246000fd5b61060c80620005b96000396000f3fe60806040526004361061002d5760003560e01c80634f1ef286146100445780635c60da1b146100575761003c565b3661003c5761003a610088565b005b61003a610088565b61003a6100523660046104a9565b61009a565b34801561006357600080fd5b5061006c61019f565b6040516001600160a01b03909116815260200160405180910390f35b6100986100936101ec565b6101f6565b565b6100a261021f565b6001600160a01b0316336001600160a01b0316146101075760405162461bcd60e51b815260206004820152601760248201527f4552524f523a4352502d3030313a4e4f545f41444d494e00000000000000000060448201526064015b60405180910390fd5b60006101116101ec565b90506101568484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610252915050565b604080516001600160a01b038084168252861660208201527faca1087105eb43beb9d5a0283455ab4c7fc8e7412810dca909839c8c2f8be7b5910160405180910390a150505050565b60006101a96101ec565b905090565b60606101d383836040518060600160405280602781526020016105b06027913961027d565b9392505050565b90565b6001600160a01b03163b151590565b60006101a961035a565b3660008037600080366000845af43d6000803e808015610215573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b61025b83610382565b6000825111806102685750805b1561021a5761027783836101ae565b50505050565b60606001600160a01b0384163b6102e55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016100fe565b600080856001600160a01b0316856040516103009190610534565b600060405180830381855af49150503d806000811461033b576040519150601f19603f3d011682016040523d82523d6000602084013e610340565b606091505b50915091506103508282866103c2565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610243565b61038b816103fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156103d15750816101d3565b8251156103e15782518084602001fd5b8160405162461bcd60e51b81526004016100fe9190610550565b6001600160a01b0381163b6104685760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100fe565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000604084860312156104bd578283fd5b83356001600160a01b03811681146104d3578384fd5b9250602084013567ffffffffffffffff808211156104ef578384fd5b818601915086601f830112610502578384fd5b813581811115610510578485fd5b876020828501011115610521578485fd5b6020830194508093505050509250925092565b60008251610546818460208701610583565b9190910192915050565b600060208252825180602084015261056f816040850160208701610583565b601f01601f19169190910160400192915050565b60005b8381101561059e578181015183820152602001610586565b83811115610277575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1938722abe7a1266a6059456b8e2596f1ccd82ddbf52882350a27c535c239964736f6c63430008020033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "deployedBytecode": "0x60806040526004361061002d5760003560e01c80634f1ef286146100445780635c60da1b146100575761003c565b3661003c5761003a610088565b005b61003a610088565b61003a6100523660046104a9565b61009a565b34801561006357600080fd5b5061006c61019f565b6040516001600160a01b03909116815260200160405180910390f35b6100986100936101ec565b6101f6565b565b6100a261021f565b6001600160a01b0316336001600160a01b0316146101075760405162461bcd60e51b815260206004820152601760248201527f4552524f523a4352502d3030313a4e4f545f41444d494e00000000000000000060448201526064015b60405180910390fd5b60006101116101ec565b90506101568484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610252915050565b604080516001600160a01b038084168252861660208201527faca1087105eb43beb9d5a0283455ab4c7fc8e7412810dca909839c8c2f8be7b5910160405180910390a150505050565b60006101a96101ec565b905090565b60606101d383836040518060600160405280602781526020016105b06027913961027d565b9392505050565b90565b6001600160a01b03163b151590565b60006101a961035a565b3660008037600080366000845af43d6000803e808015610215573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b61025b83610382565b6000825111806102685750805b1561021a5761027783836101ae565b50505050565b60606001600160a01b0384163b6102e55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016100fe565b600080856001600160a01b0316856040516103009190610534565b600060405180830381855af49150503d806000811461033b576040519150601f19603f3d011682016040523d82523d6000602084013e610340565b606091505b50915091506103508282866103c2565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610243565b61038b816103fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156103d15750816101d3565b8251156103e15782518084602001fd5b8160405162461bcd60e51b81526004016100fe9190610550565b6001600160a01b0381163b6104685760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100fe565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000604084860312156104bd578283fd5b83356001600160a01b03811681146104d3578384fd5b9250602084013567ffffffffffffffff808211156104ef578384fd5b818601915086601f830112610502578384fd5b813581811115610510578485fd5b876020828501011115610521578485fd5b6020830194508093505050509250925092565b60008251610546818460208701610583565b9190910192915050565b600060208252825180602084015261056f816040850160208701610583565b601f01601f19169190910160400192915050565b60005b8381101561059e578181015183820152602001610586565b83811115610277575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1938722abe7a1266a6059456b8e2596f1ccd82ddbf52882350a27c535c239964736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.dbg.json b/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.json b/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.json new file mode 100644 index 00000000..629f94c3 --- /dev/null +++ b/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.json @@ -0,0 +1,80 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TransferHelper", + "sourceName": "contracts/shared/TransferHelper.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "callSuccess", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "returnDataLength", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "name": "LogTransferHelperCallFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "tokenIsContract", + "type": "bool" + }, + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "LogTransferHelperInputValidation1Failed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + } + ], + "name": "LogTransferHelperInputValidation2Failed", + "type": "event" + } + ], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd7fbdf31ee1e4bfbfa5b4bef9f2c1150e2a776badabfd872b32c5ef7a2de43a64736f6c63430008020033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd7fbdf31ee1e4bfbfa5b4bef9f2c1150e2a776badabfd872b32c5ef7a2de43a64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.dbg.json b/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.json b/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.json new file mode 100644 index 00000000..76d71942 --- /dev/null +++ b/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.json @@ -0,0 +1,54 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "WithRegistry", + "sourceName": "contracts/shared/WithRegistry.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "getContractFromRegistry", + "outputs": [ + { + "internalType": "address", + "name": "_addr", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60a060405234801561001057600080fd5b5060405161023e38038061023e83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6101a9610095600039600081816040015260a501526101a96000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063a5b25e711461007e575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61006261008c36600461015b565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b1580156100ef57600080fd5b505afa158015610103573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610127919061012d565b92915050565b60006020828403121561013e578081fd5b81516001600160a01b0381168114610154578182fd5b9392505050565b60006020828403121561016c578081fd5b503591905056fea264697066735822122073f6d3467796894695daf3d0106c32b32e072c548ba560293d99c61a987563a964736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063a5b25e711461007e575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61006261008c36600461015b565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b1580156100ef57600080fd5b505afa158015610103573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610127919061012d565b92915050565b60006020828403121561013e578081fd5b81516001600160a01b0381168114610154578182fd5b9392505050565b60006020828403121561016c578081fd5b503591905056fea264697066735822122073f6d3467796894695daf3d0106c32b32e072c548ba560293d99c61a987563a964736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/test/TestCoin.sol/TestCoin.dbg.json b/artifacts/contracts/test/TestCoin.sol/TestCoin.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/test/TestCoin.sol/TestCoin.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/test/TestCoin.sol/TestCoin.json b/artifacts/contracts/test/TestCoin.sol/TestCoin.json new file mode 100644 index 00000000..7a6df342 --- /dev/null +++ b/artifacts/contracts/test/TestCoin.sol/TestCoin.json @@ -0,0 +1,325 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TestCoin", + "sourceName": "contracts/test/TestCoin.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "INITIAL_SUPPLY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "SYMBOL", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a815260200169546573742044756d6d7960b01b8152506040518060400160405280600381526020016254445960e81b81525081600390805190602001906200006992919062000199565b5080516200007f90600490602084019062000199565b505050620000a762000096620000ad60201b60201c565b69d3c21bcecceda1000000620000b1565b620002a1565b3390565b6001600160a01b0382166200010c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012091906200023f565b90915550506001600160a01b038216600090815260208190526040812080548392906200014f9084906200023f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001a79062000264565b90600052602060002090601f016020900481019282620001cb576000855562000216565b82601f10620001e657805160ff191683800117855562000216565b8280016001018555821562000216579182015b8281111562000216578251825591602001919060010190620001f9565b506200022492915062000228565b5090565b5b8082111562000224576000815560010162000229565b600082198211156200025f57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200027957607f821691505b602082108114156200029b57634e487b7160e01b600052602260045260246000fd5b50919050565b61092080620002b16000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101cc578063a9059cbb146101df578063dd62ed3e146101f2578063f76f8d7814610205576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610227565b6040516101049190610838565b60405180910390f35b61012061011b36600461080f565b6102b9565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d4565b6102d1565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461080f565b6102f5565b610134610196366004610781565b610317565b6100f7610336565b6100f76040518060400160405280600a815260200169546573742044756d6d7960b01b81525081565b6101206101da36600461080f565b610345565b6101206101ed36600461080f565b6103c5565b6101346102003660046107a2565b6103d3565b6100f76040518060400160405280600381526020016254445960e81b81525081565b606060038054610236906108af565b80601f0160208091040260200160405190810160405280929190818152602001828054610262906108af565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000336102c78185856103fe565b5060019392505050565b6000336102df858285610522565b6102ea85858561059c565b506001949350505050565b6000336102c781858561030883836103d3565b610312919061088b565b6103fe565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610236906108af565b6000338161035382866103d3565b9050838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ea82868684036103fe565b6000336102c781858561059c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166104c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052e84846103d3565b9050600019811461059657818110156105895760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b61059684848484036103fe565b50505050565b6001600160a01b0383166106005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b0382166106625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156106da5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071190849061088b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075d91815260200190565b60405180910390a3610596565b80356001600160a01b038116811461033157600080fd5b600060208284031215610792578081fd5b61079b8261076a565b9392505050565b600080604083850312156107b4578081fd5b6107bd8361076a565b91506107cb6020840161076a565b90509250929050565b6000806000606084860312156107e8578081fd5b6107f18461076a565b92506107ff6020850161076a565b9150604084013590509250925092565b60008060408385031215610821578182fd5b61082a8361076a565b946020939093013593505050565b6000602080835283518082850152825b8181101561086457858101830151858201604001528201610848565b818111156108755783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108aa57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c357607f821691505b602082108114156108e457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220bc4a89f4c007a366f56184c546e091f3566d682752848dd871a3ce1c929429d464736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101cc578063a9059cbb146101df578063dd62ed3e146101f2578063f76f8d7814610205576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610227565b6040516101049190610838565b60405180910390f35b61012061011b36600461080f565b6102b9565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d4565b6102d1565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461080f565b6102f5565b610134610196366004610781565b610317565b6100f7610336565b6100f76040518060400160405280600a815260200169546573742044756d6d7960b01b81525081565b6101206101da36600461080f565b610345565b6101206101ed36600461080f565b6103c5565b6101346102003660046107a2565b6103d3565b6100f76040518060400160405280600381526020016254445960e81b81525081565b606060038054610236906108af565b80601f0160208091040260200160405190810160405280929190818152602001828054610262906108af565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000336102c78185856103fe565b5060019392505050565b6000336102df858285610522565b6102ea85858561059c565b506001949350505050565b6000336102c781858561030883836103d3565b610312919061088b565b6103fe565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610236906108af565b6000338161035382866103d3565b9050838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ea82868684036103fe565b6000336102c781858561059c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166104c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052e84846103d3565b9050600019811461059657818110156105895760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b61059684848484036103fe565b50505050565b6001600160a01b0383166106005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b0382166106625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156106da5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071190849061088b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075d91815260200190565b60405180910390a3610596565b80356001600160a01b038116811461033157600080fd5b600060208284031215610792578081fd5b61079b8261076a565b9392505050565b600080604083850312156107b4578081fd5b6107bd8361076a565b91506107cb6020840161076a565b90509250929050565b6000806000606084860312156107e8578081fd5b6107f18461076a565b92506107ff6020850161076a565b9150604084013590509250925092565b60008060408385031215610821578182fd5b61082a8361076a565b946020939093013593505050565b6000602080835283518082850152825b8181101561086457858101830151858201604001528201610848565b818111156108755783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108aa57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c357607f821691505b602082108114156108e457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220bc4a89f4c007a366f56184c546e091f3566d682752848dd871a3ce1c929429d464736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/test/TestCoin.sol/TestCoinX.dbg.json b/artifacts/contracts/test/TestCoin.sol/TestCoinX.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/test/TestCoin.sol/TestCoinX.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/test/TestCoin.sol/TestCoinX.json b/artifacts/contracts/test/TestCoin.sol/TestCoinX.json new file mode 100644 index 00000000..9c14defd --- /dev/null +++ b/artifacts/contracts/test/TestCoin.sol/TestCoinX.json @@ -0,0 +1,325 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TestCoinX", + "sourceName": "contracts/test/TestCoin.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "INITIAL_SUPPLY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "SYMBOL", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b815250604051806040016040528060038152602001620a888b60eb1b81525081600390805190602001906200006b9291906200019b565b508051620000819060049060208401906200019b565b505050620000a962000098620000af60201b60201c565b69d3c21bcecceda1000000620000b3565b620002a3565b3390565b6001600160a01b0382166200010e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000122919062000241565b90915550506001600160a01b038216600090815260208190526040812080548392906200015190849062000241565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001a99062000266565b90600052602060002090601f016020900481019282620001cd576000855562000218565b82601f10620001e857805160ff191683800117855562000218565b8280016001018555821562000218579182015b8281111562000218578251825591602001919060010190620001fb565b50620002269291506200022a565b5090565b5b808211156200022657600081556001016200022b565b600082198211156200026157634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200027b57607f821691505b602082108114156200029d57634e487b7160e01b600052602260045260246000fd5b50919050565b61092280620002b36000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101ce578063a9059cbb146101e1578063dd62ed3e146101f4578063f76f8d7814610207576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610229565b604051610104919061083a565b60405180910390f35b61012061011b366004610811565b6102bb565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d6565b6102d3565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b610120610183366004610811565b6102f7565b610134610196366004610783565b610319565b6100f7610338565b6100f76040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b81525081565b6101206101dc366004610811565b610347565b6101206101ef366004610811565b6103c7565b6101346102023660046107a4565b6103d5565b6100f7604051806040016040528060038152602001620a888b60eb1b81525081565b606060038054610238906108b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906108b1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b5050505050905090565b6000336102c9818585610400565b5060019392505050565b6000336102e1858285610524565b6102ec85858561059e565b506001949350505050565b6000336102c981858561030a83836103d5565b610314919061088d565b610400565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610238906108b1565b6000338161035582866103d5565b9050838110156103ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ec8286868403610400565b6000336102c981858561059e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b1565b6001600160a01b0382166104c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053084846103d5565b90506000198114610598578181101561058b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103b1565b6105988484848403610400565b50505050565b6001600160a01b0383166106025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b1565b6001600160a01b0382166106645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b1565b6001600160a01b038316600090815260208190526040902054818110156106dc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103b1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071390849061088d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075f91815260200190565b60405180910390a3610598565b80356001600160a01b038116811461033357600080fd5b600060208284031215610794578081fd5b61079d8261076c565b9392505050565b600080604083850312156107b6578081fd5b6107bf8361076c565b91506107cd6020840161076c565b90509250929050565b6000806000606084860312156107ea578081fd5b6107f38461076c565b92506108016020850161076c565b9150604084013590509250925092565b60008060408385031215610823578182fd5b61082c8361076c565b946020939093013593505050565b6000602080835283518082850152825b818110156108665785810183015185820160400152820161084a565b818111156108775783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108ac57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c557607f821691505b602082108114156108e657634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202a8e76e1b4e5b8026b2d39aa0fb86dd6fc4365a817df004296a5841464fe79a864736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101ce578063a9059cbb146101e1578063dd62ed3e146101f4578063f76f8d7814610207576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610229565b604051610104919061083a565b60405180910390f35b61012061011b366004610811565b6102bb565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d6565b6102d3565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b610120610183366004610811565b6102f7565b610134610196366004610783565b610319565b6100f7610338565b6100f76040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b81525081565b6101206101dc366004610811565b610347565b6101206101ef366004610811565b6103c7565b6101346102023660046107a4565b6103d5565b6100f7604051806040016040528060038152602001620a888b60eb1b81525081565b606060038054610238906108b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906108b1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b5050505050905090565b6000336102c9818585610400565b5060019392505050565b6000336102e1858285610524565b6102ec85858561059e565b506001949350505050565b6000336102c981858561030a83836103d5565b610314919061088d565b610400565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610238906108b1565b6000338161035582866103d5565b9050838110156103ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ec8286868403610400565b6000336102c981858561059e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b1565b6001600160a01b0382166104c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053084846103d5565b90506000198114610598578181101561058b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103b1565b6105988484848403610400565b50505050565b6001600160a01b0383166106025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b1565b6001600160a01b0382166106645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b1565b6001600160a01b038316600090815260208190526040902054818110156106dc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103b1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071390849061088d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075f91815260200190565b60405180910390a3610598565b80356001600160a01b038116811461033357600080fd5b600060208284031215610794578081fd5b61079d8261076c565b9392505050565b600080604083850312156107b6578081fd5b6107bf8361076c565b91506107cd6020840161076c565b90509250929050565b6000806000606084860312156107ea578081fd5b6107f38461076c565b92506108016020850161076c565b9150604084013590509250925092565b60008060408385031215610823578182fd5b61082c8361076c565b946020939093013593505050565b6000602080835283518082850152825b818110156108665785810183015185820160400152820161084a565b818111156108775783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108ac57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c557607f821691505b602082108114156108e657634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202a8e76e1b4e5b8026b2d39aa0fb86dd6fc4365a817df004296a5841464fe79a864736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.dbg.json b/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.json b/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.json new file mode 100644 index 00000000..d950ea81 --- /dev/null +++ b/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.json @@ -0,0 +1,325 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TestCoinAlternativeImplementation", + "sourceName": "contracts/test/TestCoinAlternativeImplementation.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "INITIAL_SUPPLY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "SYMBOL", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_from", + "type": "address" + }, + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280601581526020017f5465737420416c7465726e617469766520436f696e00000000000000000000008152506040518060400160405280600381526020016254414360e81b81525081600390805190602001906200007c929190620001ac565b50805162000092906004906020840190620001ac565b505050620000ba620000a9620000c060201b60201c565b69d3c21bcecceda1000000620000c4565b620002b4565b3390565b6001600160a01b0382166200011f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000133919062000252565b90915550506001600160a01b038216600090815260208190526040812080548392906200016290849062000252565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001ba9062000277565b90600052602060002090601f016020900481019282620001de576000855562000229565b82601f10620001f957805160ff191683800117855562000229565b8280016001018555821562000229579182015b82811115620002295782518255916020019190600101906200020c565b50620002379291506200023b565b5090565b5b808211156200023757600081556001016200023c565b600082198211156200027257634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200028c57607f821691505b60208210811415620002ae57634e487b7160e01b600052602260045260246000fd5b50919050565b6109b080620002c46000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101d7578063a9059cbb146101ea578063dd62ed3e146101fd578063f76f8d7814610210576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610232565b60405161010491906108c8565b60405180910390f35b61012061011b36600461089f565b6102c4565b6040519015158152602001610104565b6002545b604051908152602001610104565b610120610150366004610864565b6102dc565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461089f565b610370565b610134610196366004610818565b610392565b6100f76103b1565b6100f7604051806040016040528060158152602001742a32b9ba1020b63a32b93730ba34bb329021b7b4b760591b81525081565b6101206101e536600461089f565b6103c0565b6101206101f836600461089f565b61044b565b61013461020b366004610832565b610459565b6100f76040518060400160405280600381526020016254414360e81b81525081565b6060600380546102419061093f565b80601f016020809104026020016040519081016040528092919081815260200182805461026d9061093f565b80156102ba5780601f1061028f576101008083540402835291602001916102ba565b820191906000526020600020905b81548152906001019060200180831161029d57829003601f168201915b5050505050905090565b6000336102d2818585610484565b5060019392505050565b6000816102e885610392565b101580156102ff5750816102fc8533610459565b10155b8015610326575061030f83610392565b8261031985610392565b610323919061091b565b10155b801561033a57506001600160a01b03841615155b801561034e57506001600160a01b03831615155b156103655761035e8484846105a8565b9050610369565b5060005b9392505050565b6000336102d28185856103838383610459565b61038d919061091b565b610484565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102419061093f565b600033816103ce8286610459565b9050838110156104335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6104408286868403610484565b506001949350505050565b6000336102d28185856105bd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161042a565b6001600160a01b0382166105475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161042a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000336105b685828561078d565b6104408585855b6001600160a01b0383166106215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161042a565b6001600160a01b0382166106835760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161042a565b6001600160a01b038316600090815260208190526040902054818110156106fb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161042a565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061073290849061091b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161077e91815260200190565b60405180910390a35b50505050565b60006107998484610459565b9050600019811461078757818110156107f45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161042a565b6107878484848403610484565b80356001600160a01b03811681146103ac57600080fd5b600060208284031215610829578081fd5b61036982610801565b60008060408385031215610844578081fd5b61084d83610801565b915061085b60208401610801565b90509250929050565b600080600060608486031215610878578081fd5b61088184610801565b925061088f60208501610801565b9150604084013590509250925092565b600080604083850312156108b1578182fd5b6108ba83610801565b946020939093013593505050565b6000602080835283518082850152825b818110156108f4578581018301518582016040015282016108d8565b818111156109055783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561093a57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061095357607f821691505b6020821081141561097457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220fe54507b3ea268ebc7a74b0b506365823cec572537e192781708c94b808aa2e464736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101d7578063a9059cbb146101ea578063dd62ed3e146101fd578063f76f8d7814610210576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610232565b60405161010491906108c8565b60405180910390f35b61012061011b36600461089f565b6102c4565b6040519015158152602001610104565b6002545b604051908152602001610104565b610120610150366004610864565b6102dc565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461089f565b610370565b610134610196366004610818565b610392565b6100f76103b1565b6100f7604051806040016040528060158152602001742a32b9ba1020b63a32b93730ba34bb329021b7b4b760591b81525081565b6101206101e536600461089f565b6103c0565b6101206101f836600461089f565b61044b565b61013461020b366004610832565b610459565b6100f76040518060400160405280600381526020016254414360e81b81525081565b6060600380546102419061093f565b80601f016020809104026020016040519081016040528092919081815260200182805461026d9061093f565b80156102ba5780601f1061028f576101008083540402835291602001916102ba565b820191906000526020600020905b81548152906001019060200180831161029d57829003601f168201915b5050505050905090565b6000336102d2818585610484565b5060019392505050565b6000816102e885610392565b101580156102ff5750816102fc8533610459565b10155b8015610326575061030f83610392565b8261031985610392565b610323919061091b565b10155b801561033a57506001600160a01b03841615155b801561034e57506001600160a01b03831615155b156103655761035e8484846105a8565b9050610369565b5060005b9392505050565b6000336102d28185856103838383610459565b61038d919061091b565b610484565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102419061093f565b600033816103ce8286610459565b9050838110156104335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6104408286868403610484565b506001949350505050565b6000336102d28185856105bd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161042a565b6001600160a01b0382166105475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161042a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000336105b685828561078d565b6104408585855b6001600160a01b0383166106215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161042a565b6001600160a01b0382166106835760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161042a565b6001600160a01b038316600090815260208190526040902054818110156106fb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161042a565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061073290849061091b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161077e91815260200190565b60405180910390a35b50505050565b60006107998484610459565b9050600019811461078757818110156107f45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161042a565b6107878484848403610484565b80356001600160a01b03811681146103ac57600080fd5b600060208284031215610829578081fd5b61036982610801565b60008060408385031215610844578081fd5b61084d83610801565b915061085b60208401610801565b90509250929050565b600080600060608486031215610878578081fd5b61088184610801565b925061088f60208501610801565b9150604084013590509250925092565b600080604083850312156108b1578182fd5b6108ba83610801565b946020939093013593505050565b6000602080835283518082850152825b818110156108f4578581018301518582016040015282016108d8565b818111156109055783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561093a57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061095357607f821691505b6020821081141561097457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220fe54507b3ea268ebc7a74b0b506365823cec572537e192781708c94b808aa2e464736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.dbg.json b/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.json b/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.json new file mode 100644 index 00000000..206a3f4f --- /dev/null +++ b/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.json @@ -0,0 +1,545 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TestCompromisedProduct", + "sourceName": "contracts/test/TestCompromisedProduct.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "fakeProductName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "fakeComponentId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fakeRiskpoolId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "productAddress", + "type": "address" + } + ], + "name": "LogProductCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "FAKE_STATE", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "POLICY_FLOW", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsured", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "metaData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "applicationData", + "type": "bytes" + } + ], + "name": "applyForPolicy", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + } + ], + "name": "collectPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getApplicationDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getClaimDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPayoutDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPolicyFlow", + "outputs": [ + { + "internalType": "address", + "name": "policyFlow", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRiskpoolId", + "outputs": [ + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getToken", + "outputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "riskPoolCapacityCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "submitClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b50604051620014f0380380620014f0833981016040819052620000349162000306565b6200003f3362000171565b6001859055600280546001600160a01b038087166001600160a01b03199283161790925560038590556004849055600580549284169290911691909117905562000088620001c1565b600680546001600160a01b0319166001600160a01b0392909216919091179055620000b2620001dc565b600780546001600160a01b0319166001600160a01b0392909216919091179055620000dc62000209565b600880546001600160a01b0319166001600160a01b03929092169190911790556200011b70506f6c69637944656661756c74466c6f7760781b62000223565b600980546001600160a01b0319166001600160a01b039290921691909117905562000145620002ac565b600a80546001600160a01b0319166001600160a01b0392909216919091179055506200035a9350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620001d76541636365737360d01b62000223565b905090565b6000620001d77f436f6d706f6e656e744f776e657253657276696365000000000000000000000062000223565b6000620001d76e496e7374616e63655365727669636560881b5b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200026957600080fd5b505afa1580156200027e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a49190620002e2565b90505b919050565b6000620001d76d50726f647563745365727669636560901b62000223565b80516001600160a01b0381168114620002a757600080fd5b600060208284031215620002f4578081fd5b620002ff82620002ca565b9392505050565b600080600080600060a086880312156200031e578081fd5b855194506200033060208701620002ca565b935060408601519250606086015191506200034e60808701620002ca565b90509295509295909350565b611186806200036a6000396000f3fe6080604052600436106101ee5760003560e01c806370d2fe531161010d578063b9ea8d66116100a0578063d73cd9921161006f578063d73cd9921461027c578063e0815f0d1461042a578063e6f95edd1461043e578063f2fde38b14610451578063f4fdc1fa1461040c576101ee565b8063b9ea8d66146103ec578063bd1fe5d01461027c578063be169e7e1461027c578063d0e0ba951461040c576101ee565b806394f64ff4116100dc57806394f64ff4146102fe5780639a82f890146102be578063a18f5ae21461027c578063b3fca9bd1461027c576101ee565b806370d2fe5314610382578063715018a614610397578063893d20e8146103ac5780638da5cb5b146103ce576101ee565b806339cf5e16116101855780635ab1bd53116101545780635ab1bd531461033a5780635d1ca63114610358578063637d08f41461036d578063638ce0ba1461027c576101ee565b806339cf5e16146102fe5780633b5284b6146103255780633ec92bda146102fe57806359dacc6a1461027c576101ee565b80631b867c63116101c15780631b867c631461027c57806321df0da71461028c578063258d560c146102be5780632b677841146102de576101ee565b806309128d83146101f357806315dae03e1461022e57806317d7de7c1461024a5780631865c57d1461025f575b600080fd5b3480156101ff57600080fd5b5061021b70506f6c69637944656661756c74466c6f7760781b81565b6040519081526020015b60405180910390f35b34801561023a57600080fd5b5060016040516102259190611063565b34801561025657600080fd5b5060015461021b565b34801561026b57600080fd5b5060035b6040516102259190611049565b34801561028857600080fd5b505b005b34801561029857600080fd5b506002546001600160a01b03165b6040516001600160a01b039091168152602001610225565b3480156102ca57600080fd5b5060005b6040519015158152602001610225565b3480156102ea57600080fd5b5061028a6102f9366004610d54565b610473565b34801561030a57600080fd5b50604080516020810182526000815290516102259190611077565b34801561033157600080fd5b5061026f600381565b34801561034657600080fd5b506005546001600160a01b03166102a6565b34801561036457600080fd5b5060035461021b565b34801561037957600080fd5b506102a66107bd565b34801561038e57600080fd5b5060045461021b565b3480156103a357600080fd5b5061028a6107e1565b3480156103b857600080fd5b506102a6600080546001600160a01b03166107dc565b3480156103da57600080fd5b506000546001600160a01b03166102a6565b3480156103f857600080fd5b5061028a610407366004610d24565b6107f3565b34801561041857600080fd5b5061028a610427366004610d24565b50565b34801561043657600080fd5b5060016102ce565b61021b61044c366004610ecd565b610904565b34801561045d57600080fd5b5061028a61046c366004610c97565b610a22565b565b60085460405163296586d360e21b81526004810184905283916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104f89190810190610d75565b519050336001600160a01b038216146105645760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5443502d313a494e56414c49445f504f4c4943595f4f525f484f604482015263262222a960e11b60648201526084015b60405180910390fd5b6001600c600082825461057791906110bb565b9091555050600a546040805160006020808301829052835180840390910181528284019384905263fae43d1560e01b909352926001600160a01b03169163fae43d15916105cb918991899190604401610ff2565b602060405180830381600087803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061d9190610d3c565b600a54604051634e02c63f60e01b81526004810188905260248101839052604481018790529192506001600160a01b031690634e02c63f90606401600060405180830381600087803b15801561067257600080fd5b505af1158015610686573d6000803e3d6000fd5b5050600a5460408051600060208083018290528351808403909101815282840193849052633c0ebc2360e11b90935294506001600160a01b03909216925063781d7846916106dc918a9187918b9160440161101a565b602060405180830381600087803b1580156106f657600080fd5b505af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e9190610d3c565b600a5460405163fe64372b60e01b815260048101899052602481018390529192506001600160a01b03169063fe64372b906044016040805180830381600087803b15801561077b57600080fd5b505af115801561078f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b39190610eaa565b5050505050505050565b60006107dc70506f6c69637944656661756c74466c6f7760781b610a98565b905090565b6107e9610b1d565b6104716000610b77565b60085460405163a3f685f960e01b8152600481018390526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190610e25565b600a54602082015160405163e3ebdea560e01b81526004810186905260248101919091529192506001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fd9190610cf0565b5050505050565b60008033600a546040516349dc20a560e11b81529192506001600160a01b0316906393b8414a906109459084908c908c908c908c908c908c90600401610fa3565b602060405180830381600087803b15801561095f57600080fd5b505af1158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190610d3c565b600a54604051631b07b17f60e01b8152600481018390529193506001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190610cd6565b50509695505050505050565b610a2a610b1d565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055b565b61042781610b77565b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190610cba565b90505b919050565b6000546001600160a01b031633146104715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80518015158114610b1857600080fd5b60008083601f840112610be8578182fd5b50813567ffffffffffffffff811115610bff578182fd5b602083019150836020828501011115610c1757600080fd5b9250929050565b600082601f830112610c2e578081fd5b815167ffffffffffffffff811115610c4857610c48611125565b610c5b601f8201601f191660200161108a565b818152846020838601011115610c6f578283fd5b610c808260208301602087016110df565b949350505050565b805160038110610b1857600080fd5b600060208284031215610ca8578081fd5b8135610cb38161113b565b9392505050565b600060208284031215610ccb578081fd5b8151610cb38161113b565b600060208284031215610ce7578081fd5b610cb382610bc7565b600080600060608486031215610d04578182fd5b610d0d84610bc7565b925060208401519150604084015190509250925092565b600060208284031215610d35578081fd5b5035919050565b600060208284031215610d4d578081fd5b5051919050565b60008060408385031215610d66578182fd5b50508035926020909101359150565b600060208284031215610d86578081fd5b815167ffffffffffffffff80821115610d9d578283fd5b9083019060c08286031215610db0578283fd5b610dba60c061108a565b8251610dc58161113b565b815260208381015190820152610ddd60408401610c88565b6040820152606083015182811115610df3578485fd5b610dff87828601610c1e565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215610e38578182fd5b610e418161108a565b9050610e4c83610c88565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060408385031215610ebc578182fd5b505080516020909101519092909150565b60008060008060008060808789031215610ee5578384fd5b8635955060208701359450604087013567ffffffffffffffff80821115610f0a578586fd5b610f168a838b01610bd7565b90965094506060890135915080821115610f2e578384fd5b50610f3b89828a01610bd7565b979a9699509497509295939492505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452610f8f8160208601602086016110df565b601f01601f19169290920160200192915050565b600060018060a01b038916825287602083015286604083015260a06060830152610fd160a083018688610f4d565b8281036080840152610fe4818587610f4d565b9a9950505050505050505050565b6000848252836020830152606060408301526110116060830184610f77565b95945050505050565b60008582528460208301528360408301526080606083015261103f6080830184610f77565b9695505050505050565b602081016007831061105d5761105d61110f565b91905290565b602081016003831061105d5761105d61110f565b600060208252610cb36020830184610f77565b604051601f8201601f1916810167ffffffffffffffff811182821017156110b3576110b3611125565b604052919050565b600082198211156110da57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156110fa5781810151838201526020016110e2565b83811115611109576000848401525b50505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461042757600080fdfea2646970667358221220d035e3de5b3a00e05b9cb799c298a86d18cc827ca95856c5337177a97dceacf664736f6c63430008020033", + "deployedBytecode": "0x6080604052600436106101ee5760003560e01c806370d2fe531161010d578063b9ea8d66116100a0578063d73cd9921161006f578063d73cd9921461027c578063e0815f0d1461042a578063e6f95edd1461043e578063f2fde38b14610451578063f4fdc1fa1461040c576101ee565b8063b9ea8d66146103ec578063bd1fe5d01461027c578063be169e7e1461027c578063d0e0ba951461040c576101ee565b806394f64ff4116100dc57806394f64ff4146102fe5780639a82f890146102be578063a18f5ae21461027c578063b3fca9bd1461027c576101ee565b806370d2fe5314610382578063715018a614610397578063893d20e8146103ac5780638da5cb5b146103ce576101ee565b806339cf5e16116101855780635ab1bd53116101545780635ab1bd531461033a5780635d1ca63114610358578063637d08f41461036d578063638ce0ba1461027c576101ee565b806339cf5e16146102fe5780633b5284b6146103255780633ec92bda146102fe57806359dacc6a1461027c576101ee565b80631b867c63116101c15780631b867c631461027c57806321df0da71461028c578063258d560c146102be5780632b677841146102de576101ee565b806309128d83146101f357806315dae03e1461022e57806317d7de7c1461024a5780631865c57d1461025f575b600080fd5b3480156101ff57600080fd5b5061021b70506f6c69637944656661756c74466c6f7760781b81565b6040519081526020015b60405180910390f35b34801561023a57600080fd5b5060016040516102259190611063565b34801561025657600080fd5b5060015461021b565b34801561026b57600080fd5b5060035b6040516102259190611049565b34801561028857600080fd5b505b005b34801561029857600080fd5b506002546001600160a01b03165b6040516001600160a01b039091168152602001610225565b3480156102ca57600080fd5b5060005b6040519015158152602001610225565b3480156102ea57600080fd5b5061028a6102f9366004610d54565b610473565b34801561030a57600080fd5b50604080516020810182526000815290516102259190611077565b34801561033157600080fd5b5061026f600381565b34801561034657600080fd5b506005546001600160a01b03166102a6565b34801561036457600080fd5b5060035461021b565b34801561037957600080fd5b506102a66107bd565b34801561038e57600080fd5b5060045461021b565b3480156103a357600080fd5b5061028a6107e1565b3480156103b857600080fd5b506102a6600080546001600160a01b03166107dc565b3480156103da57600080fd5b506000546001600160a01b03166102a6565b3480156103f857600080fd5b5061028a610407366004610d24565b6107f3565b34801561041857600080fd5b5061028a610427366004610d24565b50565b34801561043657600080fd5b5060016102ce565b61021b61044c366004610ecd565b610904565b34801561045d57600080fd5b5061028a61046c366004610c97565b610a22565b565b60085460405163296586d360e21b81526004810184905283916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104f89190810190610d75565b519050336001600160a01b038216146105645760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5443502d313a494e56414c49445f504f4c4943595f4f525f484f604482015263262222a960e11b60648201526084015b60405180910390fd5b6001600c600082825461057791906110bb565b9091555050600a546040805160006020808301829052835180840390910181528284019384905263fae43d1560e01b909352926001600160a01b03169163fae43d15916105cb918991899190604401610ff2565b602060405180830381600087803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061d9190610d3c565b600a54604051634e02c63f60e01b81526004810188905260248101839052604481018790529192506001600160a01b031690634e02c63f90606401600060405180830381600087803b15801561067257600080fd5b505af1158015610686573d6000803e3d6000fd5b5050600a5460408051600060208083018290528351808403909101815282840193849052633c0ebc2360e11b90935294506001600160a01b03909216925063781d7846916106dc918a9187918b9160440161101a565b602060405180830381600087803b1580156106f657600080fd5b505af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e9190610d3c565b600a5460405163fe64372b60e01b815260048101899052602481018390529192506001600160a01b03169063fe64372b906044016040805180830381600087803b15801561077b57600080fd5b505af115801561078f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b39190610eaa565b5050505050505050565b60006107dc70506f6c69637944656661756c74466c6f7760781b610a98565b905090565b6107e9610b1d565b6104716000610b77565b60085460405163a3f685f960e01b8152600481018390526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190610e25565b600a54602082015160405163e3ebdea560e01b81526004810186905260248101919091529192506001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fd9190610cf0565b5050505050565b60008033600a546040516349dc20a560e11b81529192506001600160a01b0316906393b8414a906109459084908c908c908c908c908c908c90600401610fa3565b602060405180830381600087803b15801561095f57600080fd5b505af1158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190610d3c565b600a54604051631b07b17f60e01b8152600481018390529193506001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190610cd6565b50509695505050505050565b610a2a610b1d565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055b565b61042781610b77565b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190610cba565b90505b919050565b6000546001600160a01b031633146104715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80518015158114610b1857600080fd5b60008083601f840112610be8578182fd5b50813567ffffffffffffffff811115610bff578182fd5b602083019150836020828501011115610c1757600080fd5b9250929050565b600082601f830112610c2e578081fd5b815167ffffffffffffffff811115610c4857610c48611125565b610c5b601f8201601f191660200161108a565b818152846020838601011115610c6f578283fd5b610c808260208301602087016110df565b949350505050565b805160038110610b1857600080fd5b600060208284031215610ca8578081fd5b8135610cb38161113b565b9392505050565b600060208284031215610ccb578081fd5b8151610cb38161113b565b600060208284031215610ce7578081fd5b610cb382610bc7565b600080600060608486031215610d04578182fd5b610d0d84610bc7565b925060208401519150604084015190509250925092565b600060208284031215610d35578081fd5b5035919050565b600060208284031215610d4d578081fd5b5051919050565b60008060408385031215610d66578182fd5b50508035926020909101359150565b600060208284031215610d86578081fd5b815167ffffffffffffffff80821115610d9d578283fd5b9083019060c08286031215610db0578283fd5b610dba60c061108a565b8251610dc58161113b565b815260208381015190820152610ddd60408401610c88565b6040820152606083015182811115610df3578485fd5b610dff87828601610c1e565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215610e38578182fd5b610e418161108a565b9050610e4c83610c88565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060408385031215610ebc578182fd5b505080516020909101519092909150565b60008060008060008060808789031215610ee5578384fd5b8635955060208701359450604087013567ffffffffffffffff80821115610f0a578586fd5b610f168a838b01610bd7565b90965094506060890135915080821115610f2e578384fd5b50610f3b89828a01610bd7565b979a9699509497509295939492505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452610f8f8160208601602086016110df565b601f01601f19169290920160200192915050565b600060018060a01b038916825287602083015286604083015260a06060830152610fd160a083018688610f4d565b8281036080840152610fe4818587610f4d565b9a9950505050505050505050565b6000848252836020830152606060408301526110116060830184610f77565b95945050505050565b60008582528460208301528360408301526080606083015261103f6080830184610f77565b9695505050505050565b602081016007831061105d5761105d61110f565b91905290565b602081016003831061105d5761105d61110f565b600060208252610cb36020830184610f77565b604051601f8201601f1916810167ffffffffffffffff811182821017156110b3576110b3611125565b604052919050565b600082198211156110da57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156110fa5781810151838201526020016110e2565b83811115611109576000848401525b50505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461042757600080fdfea2646970667358221220d035e3de5b3a00e05b9cb799c298a86d18cc827ca95856c5337177a97dceacf664736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/test/TestOracle.sol/TestOracle.dbg.json b/artifacts/contracts/test/TestOracle.sol/TestOracle.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/test/TestOracle.sol/TestOracle.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/test/TestOracle.sol/TestOracle.json b/artifacts/contracts/test/TestOracle.sol/TestOracle.json new file mode 100644 index 00000000..215c6aa8 --- /dev/null +++ b/artifacts/contracts/test/TestOracle.sol/TestOracle.json @@ -0,0 +1,544 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TestOracle", + "sourceName": "contracts/test/TestOracle.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "oracleName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "oracleAddress", + "type": "address" + } + ], + "name": "LogOracleCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogOracleProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "name": "cancel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "input", + "type": "bytes" + } + ], + "name": "request", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isLossEvent", + "type": "bool" + } + ], + "name": "respond", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000f6138038062000f618339810160408190526200003491620003d6565b81818160008262000045336200025a565b6001600160a01b038116620000ac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b606482015260840160405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000d6620002aa565b600480546001600160a01b0319166001600160a01b039290921691909117905562000100620002c5565b600580546001600160a01b0319166001600160a01b03929092169190911790556200012a620002f2565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200017d57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001d192909160ff82169130916101009091046001600160a01b03169062000404565b60405180910390a1505050620001fd6c4f7261636c655365727669636560981b6200030c60201b60201c565b600780546001600160a01b0319166001600160a01b03929092169190911790556040513081527f77dee27cd265ac28cb5ba0d4f1a792ad0425ca4ae8bd0c6253b99ec26ac454109060200160405180910390a1505050506200044f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620002c06541636365737360d01b6200030c565b905090565b6000620002c07f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200030c565b6000620002c06e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200035757600080fd5b505afa1580156200036c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003929190620003b2565b90505b919050565b80516001600160a01b03811681146200039557600080fd5b600060208284031215620003c4578081fd5b620003cf826200039a565b9392505050565b60008060408385031215620003e9578081fd5b82519150620003fb602084016200039a565b90509250929050565b84815260808101600385106200042a57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b610b02806200045f6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063be169e7e1161007c578063be169e7e146101d5578063d0e0ba951461026d578063d73cd992146101d5578063e0815f0d14610280578063f2fde38b14610288578063ffc790651461029b57610158565b80638da5cb5b146102395780639a82f8901461024a578063a18f5ae2146101d5578063a9c577c514610252578063b3fca9bd146101d5578063bd1fe5d01461026557610158565b806359dacc6a1161011557806359dacc6a146101d55780635ab1bd53146101dd5780635d1ca6311461020c578063638ce0ba14610214578063715018a61461021c578063893d20e81461022457610158565b806315dae03e1461015d57806317d7de7c146101795780631865c57d1461018b5780631b867c63146101a0578063258d560c146101aa57806340e58ee5146101c2575b600080fd5b60035460ff1660405161017091906109db565b60405180910390f35b6001545b604051908152602001610170565b6101936102ae565b60405161017091906109c1565b6101a8610334565b005b6101b261038c565b6040519015158152602001610170565b6101a86101d03660046108ff565b6103bc565b6101a86103c7565b6101f460035461010090046001600160a01b031690565b6040516001600160a01b039091168152602001610170565b60025461017d565b6101a8610411565b6101a861045e565b6101f4600080546001600160a01b031661032f565b6000546001600160a01b03166101f4565b6101b2610470565b6101a8610260366004610917565b610478565b6101a86104a8565b6101a861027b3660046108ff565b6104f5565b6101b261053f565b6101a86102963660046108a1565b610548565b6101a86102a936600461094a565b6105be565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156102f757600080fd5b505afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906108e0565b905090565b6103496810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146103825760405162461bcd60e51b8152600401610379906109ef565b60405180910390fd5b61038a6106f0565b565b600060025b60035460ff1660028111156103b657634e487b7160e01b600052602160045260246000fd5b14905090565b6103c461072d565b50565b6103dc6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461040c5760405162461bcd60e51b8152600401610379906109ef565b61038a565b6104266810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104565760405162461bcd60e51b8152600401610379906109ef565b61038a610787565b61046661072d565b61038a60006107b1565b600080610391565b6040805182151560208201526000910160405160208183030381529060405290506104a38382610801565b505050565b6104bd6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104ed5760405162461bcd60e51b8152600401610379906109ef565b61038a610861565b61050a6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461053a5760405162461bcd60e51b8152600401610379906109ef565b600255565b60006001610391565b61055061072d565b6001600160a01b0381166105b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610379565b6103c4816107b1565b6105cf64517565727960d81b610668565b6001600160a01b0316336001600160a01b03161461062f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e49454400000000006044820152606401610379565b60008061063e83850185610917565b9150915080156106615760006106538361088b565b905061065f8682610478565b505b5050505050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea91906108c4565b92915050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b2361071a60025490565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461038a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610379565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e661071a60025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a906108339085908590600401610a26565b600060405180830381600087803b15801561084d57600080fd5b505af115801561065f573d6000803e3d6000fd5b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d61071a60025490565b6000610898600283610a81565b60011492915050565b6000602082840312156108b2578081fd5b81356108bd81610ab7565b9392505050565b6000602082840312156108d5578081fd5b81516108bd81610ab7565b6000602082840312156108f1578081fd5b8151600781106108bd578182fd5b600060208284031215610910578081fd5b5035919050565b60008060408385031215610929578081fd5b823591506020830135801515811461093f578182fd5b809150509250929050565b60008060006040848603121561095e578081fd5b83359250602084013567ffffffffffffffff8082111561097c578283fd5b818601915086601f83011261098f578283fd5b81358181111561099d578384fd5b8760208285010111156109ae578384fd5b6020830194508093505050509250925092565b60208101600783106109d5576109d5610aa1565b91905290565b60208101600383106109d5576109d5610aa1565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260206040818401528351806040850152825b81811015610a5957858101830151858201606001528201610a3d565b81811115610a6a5783606083870101525b50601f01601f191692909201606001949350505050565b600082610a9c57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146103c457600080fdfea26469706673582212207cdbbd98d4220fcfcf29de531380c5e9d77ba0bb75aa63d715c0b748d14b43e964736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063be169e7e1161007c578063be169e7e146101d5578063d0e0ba951461026d578063d73cd992146101d5578063e0815f0d14610280578063f2fde38b14610288578063ffc790651461029b57610158565b80638da5cb5b146102395780639a82f8901461024a578063a18f5ae2146101d5578063a9c577c514610252578063b3fca9bd146101d5578063bd1fe5d01461026557610158565b806359dacc6a1161011557806359dacc6a146101d55780635ab1bd53146101dd5780635d1ca6311461020c578063638ce0ba14610214578063715018a61461021c578063893d20e81461022457610158565b806315dae03e1461015d57806317d7de7c146101795780631865c57d1461018b5780631b867c63146101a0578063258d560c146101aa57806340e58ee5146101c2575b600080fd5b60035460ff1660405161017091906109db565b60405180910390f35b6001545b604051908152602001610170565b6101936102ae565b60405161017091906109c1565b6101a8610334565b005b6101b261038c565b6040519015158152602001610170565b6101a86101d03660046108ff565b6103bc565b6101a86103c7565b6101f460035461010090046001600160a01b031690565b6040516001600160a01b039091168152602001610170565b60025461017d565b6101a8610411565b6101a861045e565b6101f4600080546001600160a01b031661032f565b6000546001600160a01b03166101f4565b6101b2610470565b6101a8610260366004610917565b610478565b6101a86104a8565b6101a861027b3660046108ff565b6104f5565b6101b261053f565b6101a86102963660046108a1565b610548565b6101a86102a936600461094a565b6105be565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156102f757600080fd5b505afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906108e0565b905090565b6103496810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146103825760405162461bcd60e51b8152600401610379906109ef565b60405180910390fd5b61038a6106f0565b565b600060025b60035460ff1660028111156103b657634e487b7160e01b600052602160045260246000fd5b14905090565b6103c461072d565b50565b6103dc6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461040c5760405162461bcd60e51b8152600401610379906109ef565b61038a565b6104266810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104565760405162461bcd60e51b8152600401610379906109ef565b61038a610787565b61046661072d565b61038a60006107b1565b600080610391565b6040805182151560208201526000910160405160208183030381529060405290506104a38382610801565b505050565b6104bd6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104ed5760405162461bcd60e51b8152600401610379906109ef565b61038a610861565b61050a6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461053a5760405162461bcd60e51b8152600401610379906109ef565b600255565b60006001610391565b61055061072d565b6001600160a01b0381166105b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610379565b6103c4816107b1565b6105cf64517565727960d81b610668565b6001600160a01b0316336001600160a01b03161461062f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e49454400000000006044820152606401610379565b60008061063e83850185610917565b9150915080156106615760006106538361088b565b905061065f8682610478565b505b5050505050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea91906108c4565b92915050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b2361071a60025490565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461038a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610379565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e661071a60025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a906108339085908590600401610a26565b600060405180830381600087803b15801561084d57600080fd5b505af115801561065f573d6000803e3d6000fd5b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d61071a60025490565b6000610898600283610a81565b60011492915050565b6000602082840312156108b2578081fd5b81356108bd81610ab7565b9392505050565b6000602082840312156108d5578081fd5b81516108bd81610ab7565b6000602082840312156108f1578081fd5b8151600781106108bd578182fd5b600060208284031215610910578081fd5b5035919050565b60008060408385031215610929578081fd5b823591506020830135801515811461093f578182fd5b809150509250929050565b60008060006040848603121561095e578081fd5b83359250602084013567ffffffffffffffff8082111561097c578283fd5b818601915086601f83011261098f578283fd5b81358181111561099d578384fd5b8760208285010111156109ae578384fd5b6020830194508093505050509250925092565b60208101600783106109d5576109d5610aa1565b91905290565b60208101600383106109d5576109d5610aa1565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260206040818401528351806040850152825b81811015610a5957858101830151858201606001528201610a3d565b81811115610a6a5783606083870101525b50601f01601f191692909201606001949350505050565b600082610a9c57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146103c457600080fdfea26469706673582212207cdbbd98d4220fcfcf29de531380c5e9d77ba0bb75aa63d715c0b748d14b43e964736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json b/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/test/TestProduct.sol/TestProduct.json b/artifacts/contracts/test/TestProduct.sol/TestProduct.json new file mode 100644 index 00000000..ae16c77a --- /dev/null +++ b/artifacts/contracts/test/TestProduct.sol/TestProduct.json @@ -0,0 +1,1246 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TestProduct", + "sourceName": "contracts/test/TestProduct.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "productName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "capitalOwner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "oracleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "productAddress", + "type": "address" + } + ], + "name": "LogProductCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "componentId", + "type": "uint256" + } + ], + "name": "LogProductProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "response", + "type": "bytes" + } + ], + "name": "LogTestOracleCallbackReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogTestProductFundingReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "ORACLE_CALLBACK_METHOD_NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "POLICY_FLOW", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "expectedPremiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + } + ], + "name": "adjustPremiumSumInsured", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "applications", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address payable", + "name": "policyHolder", + "type": "address" + }, + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsured", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "metaData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "applicationData", + "type": "bytes" + } + ], + "name": "applyForPolicy", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsured", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "metaData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "applicationData", + "type": "bytes" + } + ], + "name": "applyForPolicy", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claims", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + } + ], + "name": "close", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "closeClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + } + ], + "name": "collectPremium", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPremium", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "collectPremium", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "fee", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "netPremium", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "confirmedAmount", + "type": "uint256" + } + ], + "name": "confirmClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutAmount", + "type": "uint256" + } + ], + "name": "createPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "decline", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "name": "declineClaim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + } + ], + "name": "expire", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getApplicationDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getClaimDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + } + ], + "name": "getClaimId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPayoutDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "dataStructure", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + } + ], + "name": "getPayoutId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPolicyFlow", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRiskpoolId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "premium", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsured", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "metaData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "applicationData", + "type": "bytes" + } + ], + "name": "newAppliation", + "outputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "payoutAmount", + "type": "uint256" + } + ], + "name": "newPayout", + "outputs": [ + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "responseData", + "type": "bytes" + } + ], + "name": "oracleCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "policies", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "payoutId", + "type": "uint256" + } + ], + "name": "processPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "revoke", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "capacity", + "type": "uint256" + } + ], + "name": "riskPoolCapacityCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "submitClaim", + "outputs": [ + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "submitClaimNoOracle", + "outputs": [ + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "policyId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "claimAmount", + "type": "uint256" + } + ], + "name": "submitClaimWithDeferredResponse", + "outputs": [ + { + "internalType": "uint256", + "name": "claimId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "requestId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "underwrite", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162002eff38038062002eff8339810160408190526200003491620004f5565b858570506f6c69637944656661756c74466c6f7760781b8484846001826200005c3362000379565b6001600160a01b038116620000c45760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000ee620003c9565b600480546001600160a01b0319166001600160a01b039290921691909117905562000118620003e4565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014262000411565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019557634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001e992909160ff82169130916101009091046001600160a01b0316906200055a565b60405180910390a15050600880546001600160a01b0319166001600160a01b0387161790555060098290556200021f836200042b565b600780546001600160a01b0319166001600160a01b03929092169190911790556200025b6d50726f647563745365727669636560901b6200042b565b600a80546001600160a01b0319166001600160a01b0392909216919091179055620002986e496e7374616e63655365727669636560881b6200042b565b600b80546001600160a01b0319166001600160a01b03929092169190911790556040513081527fced180b842b890d77dab95dcbf4654065589a164226ef9faa91a7601fb67c4679060200160405180910390a150505050506001600160a01b038516620003485760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a54492d323a544f4b454e5f414444524553535f5a45524f0000006044820152606401620000bb565b50600c80546001600160a01b0319166001600160a01b039490941693909317909255600d55600e5550620005a59050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620003df6541636365737360d01b6200042b565b905090565b6000620003df7f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200042b565b6000620003df6e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200047657600080fd5b505afa1580156200048b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b19190620004d1565b90505b919050565b80516001600160a01b0381168114620004b457600080fd5b600060208284031215620004e3578081fd5b620004ee82620004b9565b9392505050565b60008060008060008060c087890312156200050e578182fd5b865195506200052060208801620004b9565b94506200053060408801620004b9565b935060608701519250608087015191506200054e60a08801620004b9565b90509295509295509295565b84815260808101600385106200058057634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b61294a80620005b56000396000f3fe60806040526004361061036b5760003560e01c806370d2fe53116101c6578063b9ea8d66116100f7578063e0815f0d11610095578063ec8b4a9a1161006f578063ec8b4a9a146108f7578063f2fde38b1461092c578063f4fdc1fa1461094c578063fe64372b1461096a5761036b565b8063e0815f0d146108af578063e3ebdea5146108c4578063e6f95edd146108e45761036b565b8063c6441798116100d1578063c64417981461085a578063d0e0ba951461087a578063d73cd9921461061e578063dcc59b6f1461089a5761036b565b8063b9ea8d6614610808578063bd1fe5d014610845578063be169e7e1461061e5761036b565b80638da5cb5b11610164578063a18f5ae21161013e578063a18f5ae21461061e578063ab72c4e1146107bb578063b3fca9bd1461061e578063b75c7dc6146107e85761036b565b80638da5cb5b1461078857806394f64ff41461058a5780639a82f890146107a65761036b565b80637ce5e82f116101a05780637ce5e82f1461071e5780637f29dba214610733578063893d20e8146107535780638cc7d3d1146107685761036b565b806370d2fe53146106d4578063715018a6146106e957806379ed5209146106fe5761036b565b806339c79e0c116102a057806359dacc6a1161023e5780635e61aa63116102185780635e61aa631461066c578063637d08f41461068c578063638ce0ba146106aa578063702e7e1f146106bf5761036b565b806359dacc6a1461061e5780635ab1bd53146106335780635d1ca631146106575761036b565b80633ec92bda1161027a5780633ec92bda1461058a5780634703dc8d146105be5780634cda0de9146105de5780634e02c63f146105fe5761036b565b806339c79e0c1461056a57806339cf5e161461058a5780633dcabeab146105ab5761036b565b806321df0da71161030d57806329abdbd7116102e757806329abdbd7146104ea5780632b1994ba1461050a5780632b6778411461052a57806330a73da51461054a5761036b565b806321df0da71461044c578063232d346a1461047e578063258d560c146104c55761036b565b806317d7de7c1161034957806317d7de7c146103de5780631865c57d146103f35780631b07b17f146104155780631b867c63146104375761036b565b806303f0ac1a1461037057806309128d831461039657806315dae03e146103be575b600080fd5b61038361037e366004612594565b61098a565b6040519081526020015b60405180910390f35b3480156103a257600080fd5b5061038370506f6c69637944656661756c74466c6f7760781b81565b3480156103ca57600080fd5b5060035460ff1660405161038d9190612732565b3480156103ea57600080fd5b50600154610383565b3480156103ff57600080fd5b50610408610a47565b60405161038d9190612718565b34801561042157600080fd5b506104356104303660046122d7565b610acd565b005b34801561044357600080fd5b50610435610b22565b34801561045857600080fd5b506008546001600160a01b03165b6040516001600160a01b03909116815260200161038d565b34801561048a57600080fd5b506104b86040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b81525081565b60405161038d9190612746565b3480156104d157600080fd5b506104da610b7a565b604051901515815260200161038d565b3480156104f657600080fd5b506103836105053660046122d7565b610baa565b34801561051657600080fd5b50610383610525366004612328565b610bbf565b34801561053657600080fd5b50610383610545366004612307565b610bfc565b34801561055657600080fd5b50610435610565366004612328565b610d56565b34801561057657600080fd5b506104356105853660046122d7565b610d66565b34801561059657600080fd5b506040805160208101909152600081526104b8565b6103836105b93660046121d6565b610d77565b3480156105ca57600080fd5b506103836105d9366004612328565b610e79565b3480156105ea57600080fd5b506104356105f9366004612307565b610eb3565b34801561060a57600080fd5b50610435610619366004612328565b610ec5565b34801561062a57600080fd5b50610435610ed8565b34801561063f57600080fd5b5061046660035461010090046001600160a01b031690565b34801561066357600080fd5b50600254610383565b34801561067857600080fd5b50610435610687366004612520565b610f22565b34801561069857600080fd5b506007546001600160a01b0316610466565b3480156106b657600080fd5b50610435611086565b3480156106cb57600080fd5b50601054610383565b3480156106e057600080fd5b50600954610383565b3480156106f557600080fd5b506104356110d3565b34801561070a57600080fd5b50610383610719366004612307565b6110e5565b34801561072a57600080fd5b50600f54610383565b34801561073f57600080fd5b5061043561074e366004612307565b6111df565b34801561075f57600080fd5b506104666111f1565b34801561077457600080fd5b506104356107833660046122d7565b611203565b34801561079457600080fd5b506000546001600160a01b0316610466565b3480156107b257600080fd5b506104da611214565b3480156107c757600080fd5b506103836107d63660046122d7565b60009081526012602052604090205490565b3480156107f457600080fd5b506104356108033660046122d7565b61121c565b34801561081457600080fd5b506108286108233660046122d7565b6112d5565b60408051931515845260208401929092529082015260600161038d565b34801561085157600080fd5b506104356112f8565b34801561086657600080fd5b506104356108753660046122d7565b611345565b34801561088657600080fd5b506104356108953660046122d7565b611356565b3480156108a657600080fd5b50601154610383565b3480156108bb57600080fd5b506104da6113a0565b3480156108d057600080fd5b506108286108df366004612307565b6113a9565b6103836108f2366004612594565b6113ce565b34801561090357600080fd5b50610917610912366004612307565b6114d4565b6040805192835260208301919091520161038d565b34801561093857600080fd5b5061043561094736600461219e565b611634565b34801561095857600080fd5b506104356109673660046122d7565b50565b34801561097657600080fd5b50610435610985366004612307565b6116aa565b600080339050610a0681898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f80546001810182556000919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020181905598975050505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190612353565b905090565b610ad5611757565b6000610ae0826117b1565b90508015610b1e57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b5050565b610b376810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610b705760405162461bcd60e51b8152600401610b6790612759565b60405180910390fd5b610b786118b8565b565b600060025b60035460ff166002811115610ba457634e487b7160e01b600052602160045260246000fd5b14905090565b6000818152601360205260409020545b919050565b6000610bc9611757565b6040805160006020820152610bf491869186918691015b6040516020818303038152906040526118f5565b949350505050565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c81919081019061241d565b519050336001600160a01b03821614610cac5760405162461bcd60e51b8152600401610b6790612790565b60118054906000610cbc83612887565b9190505550610cdb858560405180602001604052806000815250611987565b600086815260126020908152604080832084905560115481519283015260019082018190529295506060016040516020818303038152906040529050610d4b87826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b505050505092915050565b610d61838383611a47565b505050565b610d6e611757565b61096781611ab9565b6000610def88888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a91508990819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80201829055909150610e2f826117b1565b90508015610e6d57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b50979650505050505050565b6000610e83611757565b6040805160006020820152610e9e9186918691869101610be0565b9050610eaa8482611b1b565b50509392505050565b610ebb611757565b610b1e8282611baf565b610ecd611757565b610d61838383611c11565b610eed6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610f1d5760405162461bcd60e51b8152600401610b6790612759565b610b78565b610f3364517565727960d81b611836565b6001600160a01b0316336001600160a01b031614610f935760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610b67565b7f76f1662da8419575225dd3addaf14184129f5230097a533de445a2d5688a399e84848484604051610fc894939291906127d6565b60405180910390a16000610fde82840184612269565b600085815260126020526040902054909150811561107457610fff85611c50565b50600061100c8683611d0a565b602081015190915061101f878483611c11565b604080516000602080830182905283518084039091018152918301909252829161104b8a8785856118f5565b60008b815260136020526040902081905590506110688a82611b1b565b5050505050505061107e565b61107e8582611baf565b505050505050565b61109b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b0316146110cb5760405162461bcd60e51b8152600401610b6790612759565b610b78611dd2565b6110db611757565b610b786000611dfc565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116a919081019061241d565b519050336001600160a01b038216146111955760405162461bcd60e51b8152600401610b6790612790565b601180549060006111a583612887565b91905055506111c4858560405180602001604052806000815250611987565b60009586526012602052604090952085905550929392505050565b6111e7611757565b610b1e8282611e4c565b600080546001600160a01b0316610ac8565b61120b611757565b61096781611e84565b600080610b7f565b600b5460405163296586d360e21b81526004810183905282916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561126557600080fd5b505afa158015611279573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112a1919081019061241d565b519050336001600160a01b038216146112cc5760405162461bcd60e51b8152600401610b6790612790565b610d6183611eb5565b60008060006112e2611757565b6112eb84611ee6565b9196909550909350915050565b61130d6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461133d5760405162461bcd60e51b8152600401610b6790612759565b610b78611f34565b61134d611757565b61096781611f5e565b61136b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461139b5760405162461bcd60e51b8152600401610b6790612759565b600255565b60006001610b7f565b60008060006113b6611757565b6113c08585611f8f565b919790965090945092505050565b60008033905061144a81898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020182905590925061148a836117b1565b905080156114c857601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018390555b50509695505050505050565b600b5460405163296586d360e21b8152600481018490526000918291859183916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561152157600080fd5b505afa158015611535573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261155d919081019061241d565b519050336001600160a01b038216146115885760405162461bcd60e51b8152600401610b6790612790565b6011805490600061159883612887565b91905055506115b7868660405180602001604052806000815250611987565b60008781526012602090815260408083208490556011548151928301528101829052919550908190606001604051602081830303815290604052905061162788826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b9450505050509250929050565b61163c611757565b6001600160a01b0381166116a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b67565b61096781611dfc565b6116b2611757565b6116bc8282611b1b565b50505050565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a906116fb9089908990899089908990600401612640565b602060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d91906122ef565b9695505050505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b67565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156117f857600080fd5b505af115801561180c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118309190612285565b92915050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561188057600080fd5b505afa158015611894573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183091906121ba565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616118e260025490565b60405190815260200160405180910390a1565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d78469061192c9088908890889088906004016126f3565b602060405180830381600087803b15801561194657600080fd5b505af115801561195a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197e91906122ef565b95945050505050565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d15906119bc908790879087906004016126d4565b602060405180830381600087803b1580156119d657600080fd5b505af11580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf491906122ef565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f229061192c908890889088903090899060040161268b565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064015b600060405180830381600087803b158015611a9c57600080fd5b505af1158015611ab0573d6000803e3d6000fd5b50505050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c906024015b600060405180830381600087803b158015611b0057600080fd5b505af1158015611b14573d6000803e3d6000fd5b5050505050565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b158015611b6c57600080fd5b505af1158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190612571565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b158015611bfd57600080fd5b505af115801561107e573d6000803e3d6000fd5b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f90606401611a82565b611c8a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118309190810190612372565b611d446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051637f22c2d960e01b815260048101859052602481018490526001600160a01b0390911690637f22c2d99060440160006040518083038186803b158015611d8f57600080fd5b505afa158015611da3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dcb9190810190612372565b9392505050565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96118e260025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba290604401611be3565b600a54604051638cc7d3d160e01b8152600481018390526001600160a01b0390911690638cc7d3d190602401611ae6565b600a54604051635bae3ee360e11b8152600481018390526001600160a01b039091169063b75c7dc690602401611ae6565b600080600080611ef585612019565b9050806020015181604001511015611f2c57611f248582604001518360200151611f1f9190612844565b611f8f565b919550935091505b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556118e260025490565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c644179890602401611ae6565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b158015611fe157600080fd5b505af1158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c091906122a1565b612069604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b1580156120ae57600080fd5b505afa1580156120c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611830919061249b565b60008083601f8401126120f7578182fd5b50813567ffffffffffffffff81111561210e578182fd5b60208301915083602082850101111561212657600080fd5b9250929050565b600082601f83011261213d578081fd5b815167ffffffffffffffff811115612157576121576128ce565b61216a601f8201601f1916602001612813565b81815284602083860101111561217e578283fd5b610bf482602083016020870161285b565b805160038110610bba57600080fd5b6000602082840312156121af578081fd5b8135611dcb816128e4565b6000602082840312156121cb578081fd5b8151611dcb816128e4565b600080600080600080600060a0888a0312156121f0578283fd5b87356121fb816128e4565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612225578485fd5b6122318b838c016120e6565b909650945060808a0135915080821115612249578384fd5b506122568a828b016120e6565b989b979a50959850939692959293505050565b60006020828403121561227a578081fd5b8135611dcb816128f9565b600060208284031215612296578081fd5b8151611dcb816128f9565b6000806000606084860312156122b5578081fd5b83516122c0816128f9565b602085015160409095015190969495509392505050565b6000602082840312156122e8578081fd5b5035919050565b600060208284031215612300578081fd5b5051919050565b60008060408385031215612319578182fd5b50508035926020909101359150565b60008060006060848603121561233c578081fd5b505081359360208301359350604090920135919050565b600060208284031215612364578081fd5b815160078110611dcb578182fd5b600060208284031215612383578081fd5b815167ffffffffffffffff8082111561239a578283fd5b9083019060c082860312156123ad578283fd5b6123b760c0612813565b82516123c281612907565b8082525060208301516020820152604083015160408201526060830151828111156123eb578485fd5b6123f78782860161212d565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561242e578081fd5b815167ffffffffffffffff80821115612445578283fd5b9083019060c08286031215612458578283fd5b61246260c0612813565b825161246d816128e4565b8152602083810151908201526124856040840161218f565b60408201526060830151828111156123eb578485fd5b60006101208083850312156124ae578182fd5b6124b781612813565b90506124c28361218f565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215612535578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612559578283fd5b612565878288016120e6565b95989497509550505050565b60008060408385031215612583578182fd5b505080516020909101519092909150565b600080600080600080608087890312156125ac578384fd5b8635955060208701359450604087013567ffffffffffffffff808211156125d1578586fd5b6125dd8a838b016120e6565b909650945060608901359150808211156125f5578384fd5b5061260289828a016120e6565b979a9699509497509295939492505050565b6000815180845261262c81602086016020860161285b565b601f01601f19169290920160200192915050565b600060018060a01b038716825285602083015284604083015260a0606083015261266d60a0830185612614565b828103608084015261267f8185612614565b98975050505050505050565b600086825260a060208301526126a460a0830187612614565b82810360408401526126b68187612614565b6001600160a01b039590951660608401525050608001529392505050565b60008482528360208301526060604083015261197e6060830184612614565b60008582528460208301528360408301526080606083015261174d6080830184612614565b602081016007831061272c5761272c6128b8565b91905290565b602081016003831061272c5761272c6128b8565b600060208252611dcb6020830184612614565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60208082526026908201527f4552524f523a5052442d3030313a504f4c4943595f4f525f484f4c4445525f4960408201526513959053125160d21b606082015260800190565b60008582528460208301526060604083015282606083015282846080840137818301608090810191909152601f909201601f191601019392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561283c5761283c6128ce565b604052919050565b600082821015612856576128566128a2565b500390565b60005b8381101561287657818101518382015260200161285e565b838111156116bc5750506000910152565b600060001982141561289b5761289b6128a2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096757600080fd5b801515811461096757600080fd5b6004811061096757600080fdfea2646970667358221220c8724aa3eebe95b1d2b318ce70a883306561edfcdce90d9ce1e8ee50df556e2864736f6c63430008020033", + "deployedBytecode": "0x60806040526004361061036b5760003560e01c806370d2fe53116101c6578063b9ea8d66116100f7578063e0815f0d11610095578063ec8b4a9a1161006f578063ec8b4a9a146108f7578063f2fde38b1461092c578063f4fdc1fa1461094c578063fe64372b1461096a5761036b565b8063e0815f0d146108af578063e3ebdea5146108c4578063e6f95edd146108e45761036b565b8063c6441798116100d1578063c64417981461085a578063d0e0ba951461087a578063d73cd9921461061e578063dcc59b6f1461089a5761036b565b8063b9ea8d6614610808578063bd1fe5d014610845578063be169e7e1461061e5761036b565b80638da5cb5b11610164578063a18f5ae21161013e578063a18f5ae21461061e578063ab72c4e1146107bb578063b3fca9bd1461061e578063b75c7dc6146107e85761036b565b80638da5cb5b1461078857806394f64ff41461058a5780639a82f890146107a65761036b565b80637ce5e82f116101a05780637ce5e82f1461071e5780637f29dba214610733578063893d20e8146107535780638cc7d3d1146107685761036b565b806370d2fe53146106d4578063715018a6146106e957806379ed5209146106fe5761036b565b806339c79e0c116102a057806359dacc6a1161023e5780635e61aa63116102185780635e61aa631461066c578063637d08f41461068c578063638ce0ba146106aa578063702e7e1f146106bf5761036b565b806359dacc6a1461061e5780635ab1bd53146106335780635d1ca631146106575761036b565b80633ec92bda1161027a5780633ec92bda1461058a5780634703dc8d146105be5780634cda0de9146105de5780634e02c63f146105fe5761036b565b806339c79e0c1461056a57806339cf5e161461058a5780633dcabeab146105ab5761036b565b806321df0da71161030d57806329abdbd7116102e757806329abdbd7146104ea5780632b1994ba1461050a5780632b6778411461052a57806330a73da51461054a5761036b565b806321df0da71461044c578063232d346a1461047e578063258d560c146104c55761036b565b806317d7de7c1161034957806317d7de7c146103de5780631865c57d146103f35780631b07b17f146104155780631b867c63146104375761036b565b806303f0ac1a1461037057806309128d831461039657806315dae03e146103be575b600080fd5b61038361037e366004612594565b61098a565b6040519081526020015b60405180910390f35b3480156103a257600080fd5b5061038370506f6c69637944656661756c74466c6f7760781b81565b3480156103ca57600080fd5b5060035460ff1660405161038d9190612732565b3480156103ea57600080fd5b50600154610383565b3480156103ff57600080fd5b50610408610a47565b60405161038d9190612718565b34801561042157600080fd5b506104356104303660046122d7565b610acd565b005b34801561044357600080fd5b50610435610b22565b34801561045857600080fd5b506008546001600160a01b03165b6040516001600160a01b03909116815260200161038d565b34801561048a57600080fd5b506104b86040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b81525081565b60405161038d9190612746565b3480156104d157600080fd5b506104da610b7a565b604051901515815260200161038d565b3480156104f657600080fd5b506103836105053660046122d7565b610baa565b34801561051657600080fd5b50610383610525366004612328565b610bbf565b34801561053657600080fd5b50610383610545366004612307565b610bfc565b34801561055657600080fd5b50610435610565366004612328565b610d56565b34801561057657600080fd5b506104356105853660046122d7565b610d66565b34801561059657600080fd5b506040805160208101909152600081526104b8565b6103836105b93660046121d6565b610d77565b3480156105ca57600080fd5b506103836105d9366004612328565b610e79565b3480156105ea57600080fd5b506104356105f9366004612307565b610eb3565b34801561060a57600080fd5b50610435610619366004612328565b610ec5565b34801561062a57600080fd5b50610435610ed8565b34801561063f57600080fd5b5061046660035461010090046001600160a01b031690565b34801561066357600080fd5b50600254610383565b34801561067857600080fd5b50610435610687366004612520565b610f22565b34801561069857600080fd5b506007546001600160a01b0316610466565b3480156106b657600080fd5b50610435611086565b3480156106cb57600080fd5b50601054610383565b3480156106e057600080fd5b50600954610383565b3480156106f557600080fd5b506104356110d3565b34801561070a57600080fd5b50610383610719366004612307565b6110e5565b34801561072a57600080fd5b50600f54610383565b34801561073f57600080fd5b5061043561074e366004612307565b6111df565b34801561075f57600080fd5b506104666111f1565b34801561077457600080fd5b506104356107833660046122d7565b611203565b34801561079457600080fd5b506000546001600160a01b0316610466565b3480156107b257600080fd5b506104da611214565b3480156107c757600080fd5b506103836107d63660046122d7565b60009081526012602052604090205490565b3480156107f457600080fd5b506104356108033660046122d7565b61121c565b34801561081457600080fd5b506108286108233660046122d7565b6112d5565b60408051931515845260208401929092529082015260600161038d565b34801561085157600080fd5b506104356112f8565b34801561086657600080fd5b506104356108753660046122d7565b611345565b34801561088657600080fd5b506104356108953660046122d7565b611356565b3480156108a657600080fd5b50601154610383565b3480156108bb57600080fd5b506104da6113a0565b3480156108d057600080fd5b506108286108df366004612307565b6113a9565b6103836108f2366004612594565b6113ce565b34801561090357600080fd5b50610917610912366004612307565b6114d4565b6040805192835260208301919091520161038d565b34801561093857600080fd5b5061043561094736600461219e565b611634565b34801561095857600080fd5b506104356109673660046122d7565b50565b34801561097657600080fd5b50610435610985366004612307565b6116aa565b600080339050610a0681898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f80546001810182556000919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020181905598975050505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190612353565b905090565b610ad5611757565b6000610ae0826117b1565b90508015610b1e57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b5050565b610b376810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610b705760405162461bcd60e51b8152600401610b6790612759565b60405180910390fd5b610b786118b8565b565b600060025b60035460ff166002811115610ba457634e487b7160e01b600052602160045260246000fd5b14905090565b6000818152601360205260409020545b919050565b6000610bc9611757565b6040805160006020820152610bf491869186918691015b6040516020818303038152906040526118f5565b949350505050565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c81919081019061241d565b519050336001600160a01b03821614610cac5760405162461bcd60e51b8152600401610b6790612790565b60118054906000610cbc83612887565b9190505550610cdb858560405180602001604052806000815250611987565b600086815260126020908152604080832084905560115481519283015260019082018190529295506060016040516020818303038152906040529050610d4b87826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b505050505092915050565b610d61838383611a47565b505050565b610d6e611757565b61096781611ab9565b6000610def88888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a91508990819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80201829055909150610e2f826117b1565b90508015610e6d57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b50979650505050505050565b6000610e83611757565b6040805160006020820152610e9e9186918691869101610be0565b9050610eaa8482611b1b565b50509392505050565b610ebb611757565b610b1e8282611baf565b610ecd611757565b610d61838383611c11565b610eed6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610f1d5760405162461bcd60e51b8152600401610b6790612759565b610b78565b610f3364517565727960d81b611836565b6001600160a01b0316336001600160a01b031614610f935760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610b67565b7f76f1662da8419575225dd3addaf14184129f5230097a533de445a2d5688a399e84848484604051610fc894939291906127d6565b60405180910390a16000610fde82840184612269565b600085815260126020526040902054909150811561107457610fff85611c50565b50600061100c8683611d0a565b602081015190915061101f878483611c11565b604080516000602080830182905283518084039091018152918301909252829161104b8a8785856118f5565b60008b815260136020526040902081905590506110688a82611b1b565b5050505050505061107e565b61107e8582611baf565b505050505050565b61109b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b0316146110cb5760405162461bcd60e51b8152600401610b6790612759565b610b78611dd2565b6110db611757565b610b786000611dfc565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116a919081019061241d565b519050336001600160a01b038216146111955760405162461bcd60e51b8152600401610b6790612790565b601180549060006111a583612887565b91905055506111c4858560405180602001604052806000815250611987565b60009586526012602052604090952085905550929392505050565b6111e7611757565b610b1e8282611e4c565b600080546001600160a01b0316610ac8565b61120b611757565b61096781611e84565b600080610b7f565b600b5460405163296586d360e21b81526004810183905282916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561126557600080fd5b505afa158015611279573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112a1919081019061241d565b519050336001600160a01b038216146112cc5760405162461bcd60e51b8152600401610b6790612790565b610d6183611eb5565b60008060006112e2611757565b6112eb84611ee6565b9196909550909350915050565b61130d6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461133d5760405162461bcd60e51b8152600401610b6790612759565b610b78611f34565b61134d611757565b61096781611f5e565b61136b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461139b5760405162461bcd60e51b8152600401610b6790612759565b600255565b60006001610b7f565b60008060006113b6611757565b6113c08585611f8f565b919790965090945092505050565b60008033905061144a81898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020182905590925061148a836117b1565b905080156114c857601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018390555b50509695505050505050565b600b5460405163296586d360e21b8152600481018490526000918291859183916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561152157600080fd5b505afa158015611535573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261155d919081019061241d565b519050336001600160a01b038216146115885760405162461bcd60e51b8152600401610b6790612790565b6011805490600061159883612887565b91905055506115b7868660405180602001604052806000815250611987565b60008781526012602090815260408083208490556011548151928301528101829052919550908190606001604051602081830303815290604052905061162788826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b9450505050509250929050565b61163c611757565b6001600160a01b0381166116a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b67565b61096781611dfc565b6116b2611757565b6116bc8282611b1b565b50505050565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a906116fb9089908990899089908990600401612640565b602060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d91906122ef565b9695505050505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b67565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156117f857600080fd5b505af115801561180c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118309190612285565b92915050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561188057600080fd5b505afa158015611894573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183091906121ba565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616118e260025490565b60405190815260200160405180910390a1565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d78469061192c9088908890889088906004016126f3565b602060405180830381600087803b15801561194657600080fd5b505af115801561195a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197e91906122ef565b95945050505050565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d15906119bc908790879087906004016126d4565b602060405180830381600087803b1580156119d657600080fd5b505af11580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf491906122ef565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f229061192c908890889088903090899060040161268b565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064015b600060405180830381600087803b158015611a9c57600080fd5b505af1158015611ab0573d6000803e3d6000fd5b50505050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c906024015b600060405180830381600087803b158015611b0057600080fd5b505af1158015611b14573d6000803e3d6000fd5b5050505050565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b158015611b6c57600080fd5b505af1158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190612571565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b158015611bfd57600080fd5b505af115801561107e573d6000803e3d6000fd5b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f90606401611a82565b611c8a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118309190810190612372565b611d446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051637f22c2d960e01b815260048101859052602481018490526001600160a01b0390911690637f22c2d99060440160006040518083038186803b158015611d8f57600080fd5b505afa158015611da3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dcb9190810190612372565b9392505050565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96118e260025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba290604401611be3565b600a54604051638cc7d3d160e01b8152600481018390526001600160a01b0390911690638cc7d3d190602401611ae6565b600a54604051635bae3ee360e11b8152600481018390526001600160a01b039091169063b75c7dc690602401611ae6565b600080600080611ef585612019565b9050806020015181604001511015611f2c57611f248582604001518360200151611f1f9190612844565b611f8f565b919550935091505b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556118e260025490565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c644179890602401611ae6565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b158015611fe157600080fd5b505af1158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c091906122a1565b612069604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b1580156120ae57600080fd5b505afa1580156120c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611830919061249b565b60008083601f8401126120f7578182fd5b50813567ffffffffffffffff81111561210e578182fd5b60208301915083602082850101111561212657600080fd5b9250929050565b600082601f83011261213d578081fd5b815167ffffffffffffffff811115612157576121576128ce565b61216a601f8201601f1916602001612813565b81815284602083860101111561217e578283fd5b610bf482602083016020870161285b565b805160038110610bba57600080fd5b6000602082840312156121af578081fd5b8135611dcb816128e4565b6000602082840312156121cb578081fd5b8151611dcb816128e4565b600080600080600080600060a0888a0312156121f0578283fd5b87356121fb816128e4565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612225578485fd5b6122318b838c016120e6565b909650945060808a0135915080821115612249578384fd5b506122568a828b016120e6565b989b979a50959850939692959293505050565b60006020828403121561227a578081fd5b8135611dcb816128f9565b600060208284031215612296578081fd5b8151611dcb816128f9565b6000806000606084860312156122b5578081fd5b83516122c0816128f9565b602085015160409095015190969495509392505050565b6000602082840312156122e8578081fd5b5035919050565b600060208284031215612300578081fd5b5051919050565b60008060408385031215612319578182fd5b50508035926020909101359150565b60008060006060848603121561233c578081fd5b505081359360208301359350604090920135919050565b600060208284031215612364578081fd5b815160078110611dcb578182fd5b600060208284031215612383578081fd5b815167ffffffffffffffff8082111561239a578283fd5b9083019060c082860312156123ad578283fd5b6123b760c0612813565b82516123c281612907565b8082525060208301516020820152604083015160408201526060830151828111156123eb578485fd5b6123f78782860161212d565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561242e578081fd5b815167ffffffffffffffff80821115612445578283fd5b9083019060c08286031215612458578283fd5b61246260c0612813565b825161246d816128e4565b8152602083810151908201526124856040840161218f565b60408201526060830151828111156123eb578485fd5b60006101208083850312156124ae578182fd5b6124b781612813565b90506124c28361218f565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215612535578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612559578283fd5b612565878288016120e6565b95989497509550505050565b60008060408385031215612583578182fd5b505080516020909101519092909150565b600080600080600080608087890312156125ac578384fd5b8635955060208701359450604087013567ffffffffffffffff808211156125d1578586fd5b6125dd8a838b016120e6565b909650945060608901359150808211156125f5578384fd5b5061260289828a016120e6565b979a9699509497509295939492505050565b6000815180845261262c81602086016020860161285b565b601f01601f19169290920160200192915050565b600060018060a01b038716825285602083015284604083015260a0606083015261266d60a0830185612614565b828103608084015261267f8185612614565b98975050505050505050565b600086825260a060208301526126a460a0830187612614565b82810360408401526126b68187612614565b6001600160a01b039590951660608401525050608001529392505050565b60008482528360208301526060604083015261197e6060830184612614565b60008582528460208301528360408301526080606083015261174d6080830184612614565b602081016007831061272c5761272c6128b8565b91905290565b602081016003831061272c5761272c6128b8565b600060208252611dcb6020830184612614565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60208082526026908201527f4552524f523a5052442d3030313a504f4c4943595f4f525f484f4c4445525f4960408201526513959053125160d21b606082015260800190565b60008582528460208301526060604083015282606083015282846080840137818301608090810191909152601f909201601f191601019392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561283c5761283c6128ce565b604052919050565b600082821015612856576128566128a2565b500390565b60005b8381101561287657818101518382015260200161285e565b838111156116bc5750506000910152565b600060001982141561289b5761289b6128a2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096757600080fd5b801515811461096757600080fd5b6004811061096757600080fdfea2646970667358221220c8724aa3eebe95b1d2b318ce70a883306561edfcdce90d9ce1e8ee50df556e2864736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.dbg.json b/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.json b/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.json new file mode 100644 index 00000000..968b92b1 --- /dev/null +++ b/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.json @@ -0,0 +1,93 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TestRegistryCompromisedController", + "sourceName": "contracts/test/TestRegistryCompromisedController.sol", + "abi": [ + { + "inputs": [], + "name": "POLICY", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "QUERY", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "contracts", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + } + ], + "name": "getContract", + "outputs": [ + { + "internalType": "address", + "name": "moduleAddress", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "compromisedPolicyModuleAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "originalQueryModuleAddress", + "type": "address" + } + ], + "name": "upgradeToV2", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610223806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea26469706673582212200a56ef5fcc359265f1d34843e958bb8fae6aa679c1a712a74bb7703e4ce8270864736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea26469706673582212200a56ef5fcc359265f1d34843e958bb8fae6aa679c1a712a74bb7703e4ce8270864736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.dbg.json b/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.json b/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.json new file mode 100644 index 00000000..3fade88d --- /dev/null +++ b/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.json @@ -0,0 +1,431 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TestRegistryControllerUpdated", + "sourceName": "contracts/test/TestRegistryControllerUpdated.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "release", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + } + ], + "name": "LogContractDeregistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "release", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "contractName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isNew", + "type": "bool" + } + ], + "name": "LogContractRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "release", + "type": "bytes32" + } + ], + "name": "LogReleasePrepared", + "type": "event" + }, + { + "inputs": [], + "name": "MAX_CONTRACTS", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "_contracts", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "_contractsInRelease", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "contractName", + "outputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "contracts", + "outputs": [ + { + "internalType": "uint256", + "name": "_numberOfContracts", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "deregister", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "deregisterInRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "ensureSender", + "outputs": [ + { + "internalType": "bool", + "name": "_senderMatches", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "getContract", + "outputs": [ + { + "internalType": "address", + "name": "_addr", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + } + ], + "name": "getContractInRelease", + "outputs": [ + { + "internalType": "address", + "name": "_addr", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMessage", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRelease", + "outputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_initialRelease", + "type": "bytes32" + } + ], + "name": "initializeRegistry", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_newRelease", + "type": "bytes32" + } + ], + "name": "prepareRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_contractAddress", + "type": "address" + } + ], + "name": "register", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_release", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_contractName", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_contractAddress", + "type": "address" + } + ], + "name": "registerInRelease", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "release", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_message", + "type": "string" + } + ], + "name": "setMessage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "startBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_message", + "type": "string" + } + ], + "name": "upgradeToV2", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611aad806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80636c0f79b6116100b8578063c4d66de81161007c578063c4d66de81461028f578063ce6d41de146102a2578063d22057a9146102b7578063dc527b08146102ca578063e16c7d98146102dd578063f6b3e7d0146102f057610137565b80636c0f79b61461025057806376b707b71461025857806386d1a69f14610260578063893917ea14610269578063b0ef18a01461027c57610137565b8063368b8772116100ff578063368b8772146101b557806348cd4cb1146101c85780634a941e5e146101d157806356bbc19d1461021d578063699235151461023057610137565b80631d5e73141461013c578063208131541461015157806324042a0a146101645780632b34378a1461017f5780632ca65a7914610192575b600080fd5b61014f61014a3660046117b7565b610303565b005b61014f61015f36600461174f565b6103c4565b61016c606481565b6040519081526020015b60405180910390f35b61014f61018d3660046117ef565b610479565b6101a56101a0366004611704565b6104e2565b6040519015158152602001610176565b61014f6101c33660046117ef565b61050c565b61016c60035481565b6102056101df366004611796565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61014f61022b36600461174f565b6105c9565b61016c61023e36600461174f565b60056020526000908152604090205481565b61016c61073c565b60025461016c565b61016c60025481565b61014f61027736600461174f565b61075b565b61020561028a366004611796565b610970565b61014f61029d3660046116cc565b610983565b6102aa610ab9565b60405161017691906118cd565b61014f6102c5366004611767565b610b4b565b61014f6102d8366004611796565b610c00565b6102056102eb36600461174f565b610cb0565b61016c6102fe36600461174f565b610cc4565b6000546201000090046001600160a01b0316632ca65a796103213390565b6040518263ffffffff1660e01b815260040161033d9190611899565b60206040518083038186803b15801561035557600080fd5b505afa158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d919061172f565b6103b25760405162461bcd60e51b81526004016103a99061196e565b60405180910390fd5b6103bf8360008484610cdf565b505050565b6000546201000090046001600160a01b0316632ca65a796103e23390565b6040518263ffffffff1660e01b81526004016103fe9190611899565b60206040518083038186803b15801561041657600080fd5b505afa15801561042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044e919061172f565b61046a5760405162461bcd60e51b81526004016103a99061196e565b61047660025482611099565b50565b60085460ff16156104cc5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5245432d3130323a555047524144455f4f4e43455f4f4d4c590060448201526064016103a9565b6008805460ff191660011790556104768161050c565b60006104f0600254836112bb565b6001600160a01b0316836001600160a01b031614905092915050565b6000546201000090046001600160a01b0316632ca65a7961052a3390565b6040518263ffffffff1660e01b81526004016105469190611899565b60206040518083038186803b15801561055e57600080fd5b505afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610596919061172f565b6105b25760405162461bcd60e51b81526004016103a99061196e565b80516105c5906007906020840190611633565b5050565b600054610100900460ff16158080156105e95750600054600160ff909116105b8061060a57506105f8306112e1565b15801561060a575060005460ff166001145b6106265760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610649576000805461ff0019166101001790555b6000805462010000600160b01b031916306201000002179055600282905561066e3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b0397909716969096179095559254825260069052206106d8916112f4565b506002546000908152600560205260409020600190554360035580156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b600254600090815260066020526040812061075690611300565b905090565b6000546201000090046001600160a01b0316632ca65a796107793390565b6040518263ffffffff1660e01b81526004016107959190611899565b60206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e5919061172f565b6108015760405162461bcd60e51b81526004016103a99061196e565b600254600090815260056020526040902054806108605760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c45415345000000000060448201526064016103a9565b600082815260056020526040902054156108c85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b60648201526084016103a9565b60005b8181101561093a5760025460009081526006602052604081206108ee908361130a565b600254600090815260046020908152604080832084845290915290205490915061092790859060019084906001600160a01b0316610cdf565b506109336001826119b1565b90506108cb565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b490602001610730565b600061097c83836112bb565b9392505050565b600054610100900460ff16158080156109a35750600054600160ff909116105b806109c457506109b2306112e1565b1580156109c4575060005460ff166001145b6109e05760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610a03576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610a2d600090565b6541636365737360d01b14610a6f57610a4e6541636365737360d01b611316565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610a776113fe565b80156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610730565b606060078054610ac8906119e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610af4906119e0565b8015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b5050505050905090565b6000546201000090046001600160a01b0316632ca65a79610b693390565b6040518263ffffffff1660e01b8152600401610b859190611899565b60206040518083038186803b158015610b9d57600080fd5b505afa158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd5919061172f565b610bf15760405162461bcd60e51b81526004016103a99061196e565b6105c560025460008484610cdf565b6000546201000090046001600160a01b0316632ca65a79610c1e3390565b6040518263ffffffff1660e01b8152600401610c3a9190611899565b60206040518083038186803b158015610c5257600080fd5b505afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a919061172f565b610ca65760405162461bcd60e51b81526004016103a99061196e565b6105c58282611099565b6000610cbe600254836112bb565b92915050565b6002546000908152600660205260408120610cbe908361130a565b6000848152600660205260408120606490610cf990611300565b10610d505760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b60648201526084016103a9565b600085815260056020526040902054151580610d695750835b610db55760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e00000060448201526064016103a9565b82610e0c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b60648201526084016103a9565b6000858152600660205260409020610e24908461146b565b1580610e7557508276496e7374616e63654f70657261746f725365727669636560481b148015610e75575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610ecc5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b60648201526084016103a9565b6001600160a01b038216610f2e5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b60648201526084016103a9565b60008581526004602090815260408083208684529091529020546001600160a01b0316610f92576000858152600660205260409020610f6d90846112f4565b506000858152600560205260408120805491610f8883611a1b565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610fd790611300565b600086815260056020526040902054146110425760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a796110b73390565b6040518263ffffffff1660e01b81526004016110d39190611899565b60206040518083038186803b1580156110eb57600080fd5b505afa1580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611123919061172f565b61113f5760405162461bcd60e51b81526004016103a99061196e565b6000828152600660205260409020611157908261146b565b6111a35760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e000060448201526064016103a9565b60008281526006602052604090206111bb9082611483565b5060008281526005602052604081208054600192906111db9084906119c9565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b03191690558483526006909152902061121a90611300565b600083815260056020526040902054146112855760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a1319101610730565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b600061097c838361148f565b6000610cbe825490565b600061097c83836114de565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561136057600080fd5b505afa158015611374573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139891906116e8565b90506001600160a01b0381166112ef5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166114695760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b565b6000818152600183016020526040812054151561097c565b600061097c8383611516565b60008181526001830160205260408120546114d657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cbe565b506000610cbe565b600082600001828154811061150357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054801561162957600061153a6001836119c9565b855490915060009061154e906001906119c9565b90508181146115cf57600086600001828154811061157c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106115ad57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115ee57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cbe565b6000915050610cbe565b82805461163f906119e0565b90600052602060002090601f01602090048101928261166157600085556116a7565b82601f1061167a57805160ff19168380011785556116a7565b828001600101855582156116a7579182015b828111156116a757825182559160200191906001019061168c565b506116b39291506116b7565b5090565b5b808211156116b357600081556001016116b8565b6000602082840312156116dd578081fd5b813561097c81611a62565b6000602082840312156116f9578081fd5b815161097c81611a62565b60008060408385031215611716578081fd5b823561172181611a62565b946020939093013593505050565b600060208284031215611740578081fd5b8151801515811461097c578182fd5b600060208284031215611760578081fd5b5035919050565b60008060408385031215611779578182fd5b82359150602083013561178b81611a62565b809150509250929050565b600080604083850312156117a8578182fd5b50508035926020909101359150565b6000806000606084860312156117cb578081fd5b833592506020840135915060408401356117e481611a62565b809150509250925092565b600060208284031215611800578081fd5b813567ffffffffffffffff80821115611817578283fd5b818401915084601f83011261182a578283fd5b81358181111561183c5761183c611a4c565b604051601f8201601f19908116603f0116810190838211818310171561186457611864611a4c565b8160405282815287602084870101111561187c578586fd5b826020860160208301379182016020019490945295945050505050565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6000602080835283518082850152825b818110156118f9578581018301518582016040015282016118dd565b8181111561190a5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b600082198211156119c4576119c4611a36565b500190565b6000828210156119db576119db611a36565b500390565b6002810460018216806119f457607f821691505b60208210811415611a1557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611a2f57611a2f611a36565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461047657600080fdfea26469706673582212204c7f94f441c1f862908cff0be31a75f685e50b915477a4cbe46f145ab6d61f9264736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80636c0f79b6116100b8578063c4d66de81161007c578063c4d66de81461028f578063ce6d41de146102a2578063d22057a9146102b7578063dc527b08146102ca578063e16c7d98146102dd578063f6b3e7d0146102f057610137565b80636c0f79b61461025057806376b707b71461025857806386d1a69f14610260578063893917ea14610269578063b0ef18a01461027c57610137565b8063368b8772116100ff578063368b8772146101b557806348cd4cb1146101c85780634a941e5e146101d157806356bbc19d1461021d578063699235151461023057610137565b80631d5e73141461013c578063208131541461015157806324042a0a146101645780632b34378a1461017f5780632ca65a7914610192575b600080fd5b61014f61014a3660046117b7565b610303565b005b61014f61015f36600461174f565b6103c4565b61016c606481565b6040519081526020015b60405180910390f35b61014f61018d3660046117ef565b610479565b6101a56101a0366004611704565b6104e2565b6040519015158152602001610176565b61014f6101c33660046117ef565b61050c565b61016c60035481565b6102056101df366004611796565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61014f61022b36600461174f565b6105c9565b61016c61023e36600461174f565b60056020526000908152604090205481565b61016c61073c565b60025461016c565b61016c60025481565b61014f61027736600461174f565b61075b565b61020561028a366004611796565b610970565b61014f61029d3660046116cc565b610983565b6102aa610ab9565b60405161017691906118cd565b61014f6102c5366004611767565b610b4b565b61014f6102d8366004611796565b610c00565b6102056102eb36600461174f565b610cb0565b61016c6102fe36600461174f565b610cc4565b6000546201000090046001600160a01b0316632ca65a796103213390565b6040518263ffffffff1660e01b815260040161033d9190611899565b60206040518083038186803b15801561035557600080fd5b505afa158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d919061172f565b6103b25760405162461bcd60e51b81526004016103a99061196e565b60405180910390fd5b6103bf8360008484610cdf565b505050565b6000546201000090046001600160a01b0316632ca65a796103e23390565b6040518263ffffffff1660e01b81526004016103fe9190611899565b60206040518083038186803b15801561041657600080fd5b505afa15801561042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044e919061172f565b61046a5760405162461bcd60e51b81526004016103a99061196e565b61047660025482611099565b50565b60085460ff16156104cc5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5245432d3130323a555047524144455f4f4e43455f4f4d4c590060448201526064016103a9565b6008805460ff191660011790556104768161050c565b60006104f0600254836112bb565b6001600160a01b0316836001600160a01b031614905092915050565b6000546201000090046001600160a01b0316632ca65a7961052a3390565b6040518263ffffffff1660e01b81526004016105469190611899565b60206040518083038186803b15801561055e57600080fd5b505afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610596919061172f565b6105b25760405162461bcd60e51b81526004016103a99061196e565b80516105c5906007906020840190611633565b5050565b600054610100900460ff16158080156105e95750600054600160ff909116105b8061060a57506105f8306112e1565b15801561060a575060005460ff166001145b6106265760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610649576000805461ff0019166101001790555b6000805462010000600160b01b031916306201000002179055600282905561066e3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b0397909716969096179095559254825260069052206106d8916112f4565b506002546000908152600560205260409020600190554360035580156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b600254600090815260066020526040812061075690611300565b905090565b6000546201000090046001600160a01b0316632ca65a796107793390565b6040518263ffffffff1660e01b81526004016107959190611899565b60206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e5919061172f565b6108015760405162461bcd60e51b81526004016103a99061196e565b600254600090815260056020526040902054806108605760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c45415345000000000060448201526064016103a9565b600082815260056020526040902054156108c85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b60648201526084016103a9565b60005b8181101561093a5760025460009081526006602052604081206108ee908361130a565b600254600090815260046020908152604080832084845290915290205490915061092790859060019084906001600160a01b0316610cdf565b506109336001826119b1565b90506108cb565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b490602001610730565b600061097c83836112bb565b9392505050565b600054610100900460ff16158080156109a35750600054600160ff909116105b806109c457506109b2306112e1565b1580156109c4575060005460ff166001145b6109e05760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610a03576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610a2d600090565b6541636365737360d01b14610a6f57610a4e6541636365737360d01b611316565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610a776113fe565b80156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610730565b606060078054610ac8906119e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610af4906119e0565b8015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b5050505050905090565b6000546201000090046001600160a01b0316632ca65a79610b693390565b6040518263ffffffff1660e01b8152600401610b859190611899565b60206040518083038186803b158015610b9d57600080fd5b505afa158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd5919061172f565b610bf15760405162461bcd60e51b81526004016103a99061196e565b6105c560025460008484610cdf565b6000546201000090046001600160a01b0316632ca65a79610c1e3390565b6040518263ffffffff1660e01b8152600401610c3a9190611899565b60206040518083038186803b158015610c5257600080fd5b505afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a919061172f565b610ca65760405162461bcd60e51b81526004016103a99061196e565b6105c58282611099565b6000610cbe600254836112bb565b92915050565b6002546000908152600660205260408120610cbe908361130a565b6000848152600660205260408120606490610cf990611300565b10610d505760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b60648201526084016103a9565b600085815260056020526040902054151580610d695750835b610db55760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e00000060448201526064016103a9565b82610e0c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b60648201526084016103a9565b6000858152600660205260409020610e24908461146b565b1580610e7557508276496e7374616e63654f70657261746f725365727669636560481b148015610e75575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610ecc5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b60648201526084016103a9565b6001600160a01b038216610f2e5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b60648201526084016103a9565b60008581526004602090815260408083208684529091529020546001600160a01b0316610f92576000858152600660205260409020610f6d90846112f4565b506000858152600560205260408120805491610f8883611a1b565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610fd790611300565b600086815260056020526040902054146110425760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a796110b73390565b6040518263ffffffff1660e01b81526004016110d39190611899565b60206040518083038186803b1580156110eb57600080fd5b505afa1580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611123919061172f565b61113f5760405162461bcd60e51b81526004016103a99061196e565b6000828152600660205260409020611157908261146b565b6111a35760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e000060448201526064016103a9565b60008281526006602052604090206111bb9082611483565b5060008281526005602052604081208054600192906111db9084906119c9565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b03191690558483526006909152902061121a90611300565b600083815260056020526040902054146112855760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a1319101610730565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b600061097c838361148f565b6000610cbe825490565b600061097c83836114de565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561136057600080fd5b505afa158015611374573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139891906116e8565b90506001600160a01b0381166112ef5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166114695760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b565b6000818152600183016020526040812054151561097c565b600061097c8383611516565b60008181526001830160205260408120546114d657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cbe565b506000610cbe565b600082600001828154811061150357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054801561162957600061153a6001836119c9565b855490915060009061154e906001906119c9565b90508181146115cf57600086600001828154811061157c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106115ad57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115ee57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cbe565b6000915050610cbe565b82805461163f906119e0565b90600052602060002090601f01602090048101928261166157600085556116a7565b82601f1061167a57805160ff19168380011785556116a7565b828001600101855582156116a7579182015b828111156116a757825182559160200191906001019061168c565b506116b39291506116b7565b5090565b5b808211156116b357600081556001016116b8565b6000602082840312156116dd578081fd5b813561097c81611a62565b6000602082840312156116f9578081fd5b815161097c81611a62565b60008060408385031215611716578081fd5b823561172181611a62565b946020939093013593505050565b600060208284031215611740578081fd5b8151801515811461097c578182fd5b600060208284031215611760578081fd5b5035919050565b60008060408385031215611779578182fd5b82359150602083013561178b81611a62565b809150509250929050565b600080604083850312156117a8578182fd5b50508035926020909101359150565b6000806000606084860312156117cb578081fd5b833592506020840135915060408401356117e481611a62565b809150509250925092565b600060208284031215611800578081fd5b813567ffffffffffffffff80821115611817578283fd5b818401915084601f83011261182a578283fd5b81358181111561183c5761183c611a4c565b604051601f8201601f19908116603f0116810190838211818310171561186457611864611a4c565b8160405282815287602084870101111561187c578586fd5b826020860160208301379182016020019490945295945050505050565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6000602080835283518082850152825b818110156118f9578581018301518582016040015282016118dd565b8181111561190a5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b600082198211156119c4576119c4611a36565b500190565b6000828210156119db576119db611a36565b500390565b6002810460018216806119f457607f821691505b60208210811415611a1557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611a2f57611a2f611a36565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461047657600080fdfea26469706673582212204c7f94f441c1f862908cff0be31a75f685e50b915477a4cbe46f145ab6d61f9264736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.dbg.json b/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.json b/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.json new file mode 100644 index 00000000..ac336919 --- /dev/null +++ b/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.json @@ -0,0 +1,1296 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TestRiskpool", + "sourceName": "contracts/test/TestRiskpool.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "name", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "collateralization", + "type": "uint256" + }, + { + "internalType": "address", + "name": "erc20Token", + "type": "address" + }, + { + "internalType": "address", + "name": "wallet", + "type": "address" + }, + { + "internalType": "address", + "name": "registry", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "activeBundles", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "LogBasicRiskpoolBundlesAndPolicies", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "maxAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "LogBasicRiskpoolCandidateBundleAmountCheck", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentArchived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "registryAddress", + "type": "address" + } + ], + "name": "LogComponentCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentPaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "componentName", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentType", + "name": "componentType", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "address", + "name": "componentAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentResumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateOld", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "enum IComponent.ComponentState", + "name": "stateNew", + "type": "uint8" + } + ], + "name": "LogComponentStateChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentSuspended", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogComponentUnpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolBundleCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isMatching", + "type": "bool" + } + ], + "name": "LogRiskpoolBundleMatchesPolicy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isSecured", + "type": "bool" + } + ], + "name": "LogRiskpoolCollateralLocked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "LogRiskpoolCollateralReleased", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "riskpoolAddress", + "type": "address" + } + ], + "name": "LogRiskpoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolDeclined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolPayoutProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LogRiskpoolPremiumProcessed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "LogRiskpoolProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_FILTER_DATA_STRUCTURE", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "FULL_COLLATERALIZATION_LEVEL", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "SUM_OF_SUM_INSURED_CAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "activeBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "approvalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "archiveCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "bundle", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "enum IPolicy.ApplicationState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "premiumAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "sumInsuredAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IPolicy.Application", + "name": "application", + "type": "tuple" + } + ], + "name": "bundleMatchesApplication", + "outputs": [ + { + "internalType": "bool", + "name": "isMatching", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "bundles", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "burnBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "closeBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "collateralAmount", + "type": "uint256" + } + ], + "name": "collateralizePolicy", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "initialAmount", + "type": "uint256" + } + ], + "name": "createBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "declineCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "defundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "fundBundle", + "outputs": [ + { + "internalType": "uint256", + "name": "netAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getActiveBundleId", + "outputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idx", + "type": "uint256" + } + ], + "name": "getBundle", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "riskpoolId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "enum IBundle.BundleState", + "name": "state", + "type": "uint8" + }, + { + "internalType": "bytes", + "name": "filter", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "capital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lockedCapital", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAt", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "updatedAt", + "type": "uint256" + } + ], + "internalType": "struct IBundle.Bundle", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCapacity", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getErc20Token", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getFilterDataStructure", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getFullCollateralizationLevel", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMaximumNumberOfActiveBundles", + "outputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getName", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract IRegistry", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getState", + "outputs": [ + { + "internalType": "enum IComponent.ComponentState", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSumOfSumInsuredCap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalValueLocked", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getType", + "outputs": [ + { + "internalType": "enum IComponent.ComponentType", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getWallet", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isOracle", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isProduct", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "isRiskpool", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "lockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPolicyPayout", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "processPolicyPremium", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proposalCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "processId", + "type": "bytes32" + } + ], + "name": "releasePolicy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "resumeCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "setId", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "maximumNumberOfActiveBundles", + "type": "uint256" + } + ], + "name": "setMaximumNumberOfActiveBundles", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "suspendCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + } + ], + "name": "unlockBundle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpauseCallback", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040526011805463ffffffff191690553480156200001e57600080fd5b5060405162003118380380620031188339810160408190526200004191620005e1565b848469d3c21bcecceda10000008585858585858585858560028262000066336200047d565b6001600160a01b038116620000ce5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000f8620004cd565b600480546001600160a01b0319166001600160a01b039290921691909117905562000122620004e8565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014c62000515565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019f57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001f392909160ff82169130916101009091046001600160a01b03169062000648565b60405180910390a1505050600d85905583620002645760405162461bcd60e51b815260206004820152602960248201527f4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b6064820152608401620000c5565b600e8490556001600160a01b038316620002c15760405162461bcd60e51b815260206004820181905260248201527f4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f6044820152606401620000c5565b600c80546001600160a01b0319166001600160a01b038581169190911790915582166200033b5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401620000c5565b600b80546001600160a01b0319166001600160a01b038416179055620003736e496e7374616e63655365727669636560881b6200052f565b600780546001600160a01b0319166001600160a01b0392909216919091179055620003b06e5269736b706f6f6c5365727669636560881b6200052f565b600880546001600160a01b0319166001600160a01b0392831617905560075460408051633acd5e0f60e21b81529051919092169163eb35783c916004808301926020929190829003018186803b1580156200040a57600080fd5b505afa1580156200041f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004459190620005bb565b600980546001600160a01b0319166001600160a01b039290921691909117905550620006ac9f50505050505050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620004e36541636365737360d01b6200052f565b905090565b6000620004e37f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200052f565b6000620004e36e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200057a57600080fd5b505afa1580156200058f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005b59190620005bb565b92915050565b600060208284031215620005cd578081fd5b8151620005da8162000693565b9392505050565b600080600080600060a08688031215620005f9578081fd5b85519450602086015193506040860151620006148162000693565b6060870151909350620006278162000693565b60808701519092506200063a8162000693565b809150509295509295909350565b84815260808101600385106200066e57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6001600160a01b0381168114620006a957600080fd5b50565b612a5c80620006bc6000396000f3fe608060405234801561001057600080fd5b506004361061030c5760003560e01c80637f3b69801161019d578063b3fca9bd116100e9578063d0e0ba95116100a2578063e0815f0d1161007c578063e0815f0d146105ce578063f1d354d0146105d6578063f2fde38b146105e4578063feb1824b146105f75761030c565b8063d0e0ba95146105b3578063d73cd9921461039c578063e0032383146105c65761030c565b8063b3fca9bd1461039c578063bd1fe5d01461039c578063be169e7e1461057f578063be61e91e14610587578063c3004c8614610598578063c40000d4146105ab5761030c565b80638c483e5a11610156578063a17030d511610130578063a17030d51461055c578063a18aa1281461056f578063a18f5ae21461039c578063b26025aa146105775761030c565b80638c483e5a146105305780638da5cb5b146105435780639a82f890146105545761030c565b80637f3b6980146104d157806382558906146104d957806386c71288146104ec57806389002da514610502578063890fbf7814610515578063893d20e8146105285761030c565b80633dcdde171161025c5780635ab1bd5311610215578063652028e5116101ef578063652028e51461048d578063715018a6146104a05780637888a2ff146104a85780637893c7bc146104bb5761030c565b80635ab1bd53146104665780635d1ca6311461047d578063638ce0ba146104855761030c565b80633dcdde17146104175780634101b90c1461043457806345fe1c6d1461043c57806354afef631461044b578063587e59d01461045357806359dacc6a1461039c5761030c565b80631865c57d116102c95780632d0821b7116102a35780632d0821b7146103be578063316c5348146103de57806336153f3a146103f15780633629c3c4146104045761030c565b80631865c57d146103875780631b867c631461039c578063258d560c146103a65761030c565b80630676cb0e1461031157806312065fe014610337578063132996041461033f57806315dae03e1461036457806317d7de7c1461037757806318442e631461037f575b600080fd5b61032461031f366004612380565b610608565b6040519081526020015b60405180910390f35b610324610784565b600b546001600160a01b03165b6040516001600160a01b03909116815260200161032e565b60035460ff1660405161032e919061274c565b600154610324565b600a54610324565b61038f610814565b60405161032e9190612732565b6103a461089a565b005b6103ae6108e1565b604051901515815260200161032e565b6103d16103cc366004612380565b610911565b60405161032e9190612818565b6103a46103ec366004612380565b610a26565b6103246103ff3660046126ac565b610bc7565b6103a4610412366004612398565b610d93565b6040805160208101909152600081525b60405161032e9190612760565b610324610e1b565b610324670de0b6b3a764000081565b600d54610324565b6103a4610461366004612380565b610e59565b61034c60035461010090046001600160a01b031690565b600254610324565b6103a4610fc6565b6103a461049b366004612380565b611013565b6103a4611090565b6103246104b63660046123b9565b6110a2565b6104276040518060200160405280600081525081565b6103246111a5565b6103a46104e7366004612398565b6111e3565b6103ae6104fa36600461259a565b506001919050565b6103246105103660046126ac565b611263565b6103ae610523366004612398565b6113d7565b61034c61146e565b6103a461053e366004612380565b611480565b6000546001600160a01b031661034c565b6103ae6115ed565b6103a461056a366004612380565b6115f5565b600e54610324565b610324611762565b6103a46117a0565b61032469d3c21bcecceda100000081565b6103a46105a6366004612380565b6117ed565b610324611871565b6103a46105c1366004612380565b6118af565b6103246118f9565b6103ae611936565b670de0b6b3a7640000610324565b6103a46105f2366004612341565b61193f565b600c546001600160a01b031661034c565b60008061061460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190612694565b83106106f85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190612694565b9150505b919050565b60008061079060025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b1580156107d657600080fd5b505afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e9190612694565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561085d57600080fd5b505afa158015610871573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089591906123fc565b905090565b6108af6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146108df5760405162461bcd60e51b81526004016106ef90612773565b565b600060025b60035460ff16600281111561090b57634e487b7160e01b600052602160045260246000fd5b14905090565b610919612197565b600a5482106109765760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b60648201526084016106ef565b6000600a838154811061099957634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b1580156109ea57600080fd5b505afa1580156109fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077b91908101906124c6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aab91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610ae89160040190815260200190565b60206040518083038186803b158015610b0057600080fd5b505afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190612364565b9050336001600160a01b03821614610b625760405162461bcd60e51b81526004016106ef906127aa565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c4c91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610c899160040190815260200190565b60206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612364565b9050336001600160a01b03821614610d035760405162461bcd60e51b81526004016106ef906127aa565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610d5157600080fd5b505af1158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190612694565b9695505050505050565b610da363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b031614610dd35760405162461bcd60e51b81526004016106ef906127e1565b610ddd8282611a40565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b600080610e2760025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a66906024016107be565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ede91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610f1b9160040190815260200190565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612364565b9050336001600160a01b03821614610f955760405162461bcd60e51b81526004016106ef906127aa565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610b8f565b610fdb6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b03161461100b5760405162461bcd60e51b81526004016106ef90612773565b6108df611ac2565b61101b611b43565b600061102660025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505050505050565b611098611b43565b6108df6000611b9d565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e74906110db908490889088906004016126fe565b602060405180830381600087803b1580156110f557600080fd5b505af1158015611109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112d9190612694565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000806111b160025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db32844906024016107be565b6111f363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146112235760405162461bcd60e51b81526004016106ef906127e1565b61122d8282611bed565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610e0f565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b1580156112ac57600080fd5b505afa1580156112c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e891908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916113259160040190815260200190565b60206040518083038186803b15801561133d57600080fd5b505afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190612364565b9050336001600160a01b0382161461139f5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610d37565b60006113e963141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146114195760405162461bcd60e51b81526004016106ef906127e1565b6114238383611c3c565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610895565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156114c957600080fd5b505afa1580156114dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150591908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916115429160040190815260200190565b60206040518083038186803b15801561155a57600080fd5b505afa15801561156e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115929190612364565b9050336001600160a01b038216146115bc5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610b8f565b6000806108e6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261167a91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116b79160040190815260200190565b60206040518083038186803b1580156116cf57600080fd5b505afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190612364565b9050336001600160a01b038216146117315760405162461bcd60e51b81526004016106ef906127aa565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610b8f565b60008061176e60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d9235906024016107be565b6117b56810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146117e55760405162461bcd60e51b81526004016106ef90612773565b6108df61203f565b6117fd63141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b03161461182d5760405162461bcd60e51b81526004016106ef906127e1565b600061183882612127565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610e0f565b60008061187d60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f906024016107be565b6118c46810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146118f45760405162461bcd60e51b81526004016106ef90612773565b600255565b60008061190560025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b0316906329560980906024016107be565b600060016108e6565b611947611b43565b6001600160a01b0381166119ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ef565b6119b581611b9d565b50565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611a0257600080fd5b505afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190612364565b92915050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611aa557600080fd5b505af1158015611ab9573d6000803e3d6000fd5b50505050505050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146108df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ef565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611a8b565b600080611c47610e1b565b90506000611c536118f9565b90506000611c5f611762565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a160008311611cf45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c45530060448201526064016106ef565b808211611d435760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c00000060448201526064016106ef565b611d4d8582612908565b821061203657600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b158015611d9857600080fd5b505afa158015611dac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd4919081019061241b565b601154909150600090611dee90869063ffffffff166129a2565b905060005b8581108015611e00575086155b15612032576000611e1083610608565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015611e5a57600080fd5b505afa158015611e6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9691908101906124c6565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a1801561201c5760008260c001518360a00151611ef59190612920565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b811061200157600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b158015611f9b57600080fd5b505af1158015611faf573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff16925090611fdd8361297e565b91906101000a81548163ffffffff021916908363ffffffff1602179055505061201a565b8961200d876001612908565b61201791906129a2565b95505b505b505050808061202a90612963565b915050611df3565b5050505b50505092915050565b600061204a60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561208f57600080fd5b505afa1580156120a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c79190612694565b156119b55760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b60648201526084016106ef565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561218357600080fd5b505af1158015610757573d6000803e3d6000fd5b604051806101400160405280600081526020016000815260200160008152602001600060038111156121d957634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612219578081fd5b813561222c612227826128e0565b6128af565b818152846020838601011115612240578283fd5b816020850160208301379081016020019190915292915050565b600082601f83011261226a578081fd5b8151612278612227826128e0565b81815284602083860101111561228c578283fd5b61229d826020830160208701612937565b949350505050565b803561077f81612a19565b805161077f81612a19565b600060c082840312156122cc578081fd5b6122d660c06128af565b905081356122e381612a19565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561231557600080fd5b61232184828501612209565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612352578081fd5b813561235d81612a04565b9392505050565b600060208284031215612375578081fd5b815161235d81612a04565b600060208284031215612391578081fd5b5035919050565b600080604083850312156123aa578081fd5b50508035926020909101359150565b600080604083850312156123cb578182fd5b823567ffffffffffffffff8111156123e1578283fd5b6123ed85828601612209565b95602094909401359450505050565b60006020828403121561240d578081fd5b81516007811061235d578182fd5b60006020828403121561242c578081fd5b815167ffffffffffffffff80821115612443578283fd5b9083019060c08286031215612456578283fd5b61246060c06128af565b825161246b81612a19565b808252506020830151602082015260408301516040820152606083015182811115612494578485fd5b6124a08782860161225a565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000602082840312156124d7578081fd5b815167ffffffffffffffff808211156124ee578283fd5b8184019150610140808387031215612504578384fd5b61250d816128af565b9050825181526020830151602082015260408301516040820152612533606084016122b0565b6060820152608083015182811115612549578485fd5b6125558782860161225a565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600080604083850312156125ac578182fd5b823567ffffffffffffffff808211156125c3578384fd5b81850191506101408083880312156125d9578485fd5b6125e2816128af565b9050823581526020830135602082015260408301356040820152612608606084016122a5565b606082015260808301358281111561261e578586fd5b61262a88828601612209565b60808301525060a083013560a082015260c083013560c082015260e083013560e082015261010080840135818301525061012080840135818301525080945050602085013591508082111561267d578283fd5b5061268a858286016122bb565b9150509250929050565b6000602082840312156126a5578081fd5b5051919050565b600080604083850312156123aa578182fd5b600081518084526126d6816020860160208601612937565b601f01601f19169290920160200192915050565b600481106126fa576126fa6129d8565b9052565b6001600160a01b0384168152606060208201819052600090612722908301856126be565b9050826040830152949350505050565b6020810160078310612746576127466129d8565b91905290565b6020810160038310612746576127466129d8565b60006020825261235d60208301846126be565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b600060208252825160208301526020830151604083015260408301516060830152606083015161284b60808401826126ea565b5060808301516101408060a08501526128686101608501836126be565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128d8576128d86129ee565b604052919050565b600067ffffffffffffffff8211156128fa576128fa6129ee565b50601f01601f191660200190565b6000821982111561291b5761291b6129c2565b500190565b600082821015612932576129326129c2565b500390565b60005b8381101561295257818101518382015260200161293a565b83811115611b3d5750506000910152565b6000600019821415612977576129776129c2565b5060010190565b600063ffffffff80831681811415612998576129986129c2565b6001019392505050565b6000826129bd57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146119b557600080fd5b600481106119b557600080fdfea264697066735822122027465eb2540f515511bab31c2e975b912c7cb02ee862dca2d6d9395445502f7364736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061030c5760003560e01c80637f3b69801161019d578063b3fca9bd116100e9578063d0e0ba95116100a2578063e0815f0d1161007c578063e0815f0d146105ce578063f1d354d0146105d6578063f2fde38b146105e4578063feb1824b146105f75761030c565b8063d0e0ba95146105b3578063d73cd9921461039c578063e0032383146105c65761030c565b8063b3fca9bd1461039c578063bd1fe5d01461039c578063be169e7e1461057f578063be61e91e14610587578063c3004c8614610598578063c40000d4146105ab5761030c565b80638c483e5a11610156578063a17030d511610130578063a17030d51461055c578063a18aa1281461056f578063a18f5ae21461039c578063b26025aa146105775761030c565b80638c483e5a146105305780638da5cb5b146105435780639a82f890146105545761030c565b80637f3b6980146104d157806382558906146104d957806386c71288146104ec57806389002da514610502578063890fbf7814610515578063893d20e8146105285761030c565b80633dcdde171161025c5780635ab1bd5311610215578063652028e5116101ef578063652028e51461048d578063715018a6146104a05780637888a2ff146104a85780637893c7bc146104bb5761030c565b80635ab1bd53146104665780635d1ca6311461047d578063638ce0ba146104855761030c565b80633dcdde17146104175780634101b90c1461043457806345fe1c6d1461043c57806354afef631461044b578063587e59d01461045357806359dacc6a1461039c5761030c565b80631865c57d116102c95780632d0821b7116102a35780632d0821b7146103be578063316c5348146103de57806336153f3a146103f15780633629c3c4146104045761030c565b80631865c57d146103875780631b867c631461039c578063258d560c146103a65761030c565b80630676cb0e1461031157806312065fe014610337578063132996041461033f57806315dae03e1461036457806317d7de7c1461037757806318442e631461037f575b600080fd5b61032461031f366004612380565b610608565b6040519081526020015b60405180910390f35b610324610784565b600b546001600160a01b03165b6040516001600160a01b03909116815260200161032e565b60035460ff1660405161032e919061274c565b600154610324565b600a54610324565b61038f610814565b60405161032e9190612732565b6103a461089a565b005b6103ae6108e1565b604051901515815260200161032e565b6103d16103cc366004612380565b610911565b60405161032e9190612818565b6103a46103ec366004612380565b610a26565b6103246103ff3660046126ac565b610bc7565b6103a4610412366004612398565b610d93565b6040805160208101909152600081525b60405161032e9190612760565b610324610e1b565b610324670de0b6b3a764000081565b600d54610324565b6103a4610461366004612380565b610e59565b61034c60035461010090046001600160a01b031690565b600254610324565b6103a4610fc6565b6103a461049b366004612380565b611013565b6103a4611090565b6103246104b63660046123b9565b6110a2565b6104276040518060200160405280600081525081565b6103246111a5565b6103a46104e7366004612398565b6111e3565b6103ae6104fa36600461259a565b506001919050565b6103246105103660046126ac565b611263565b6103ae610523366004612398565b6113d7565b61034c61146e565b6103a461053e366004612380565b611480565b6000546001600160a01b031661034c565b6103ae6115ed565b6103a461056a366004612380565b6115f5565b600e54610324565b610324611762565b6103a46117a0565b61032469d3c21bcecceda100000081565b6103a46105a6366004612380565b6117ed565b610324611871565b6103a46105c1366004612380565b6118af565b6103246118f9565b6103ae611936565b670de0b6b3a7640000610324565b6103a46105f2366004612341565b61193f565b600c546001600160a01b031661034c565b60008061061460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190612694565b83106106f85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190612694565b9150505b919050565b60008061079060025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b1580156107d657600080fd5b505afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e9190612694565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561085d57600080fd5b505afa158015610871573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089591906123fc565b905090565b6108af6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146108df5760405162461bcd60e51b81526004016106ef90612773565b565b600060025b60035460ff16600281111561090b57634e487b7160e01b600052602160045260246000fd5b14905090565b610919612197565b600a5482106109765760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b60648201526084016106ef565b6000600a838154811061099957634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b1580156109ea57600080fd5b505afa1580156109fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077b91908101906124c6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aab91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610ae89160040190815260200190565b60206040518083038186803b158015610b0057600080fd5b505afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190612364565b9050336001600160a01b03821614610b625760405162461bcd60e51b81526004016106ef906127aa565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c4c91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610c899160040190815260200190565b60206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612364565b9050336001600160a01b03821614610d035760405162461bcd60e51b81526004016106ef906127aa565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610d5157600080fd5b505af1158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190612694565b9695505050505050565b610da363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b031614610dd35760405162461bcd60e51b81526004016106ef906127e1565b610ddd8282611a40565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b600080610e2760025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a66906024016107be565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ede91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610f1b9160040190815260200190565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612364565b9050336001600160a01b03821614610f955760405162461bcd60e51b81526004016106ef906127aa565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610b8f565b610fdb6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b03161461100b5760405162461bcd60e51b81526004016106ef90612773565b6108df611ac2565b61101b611b43565b600061102660025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505050505050565b611098611b43565b6108df6000611b9d565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e74906110db908490889088906004016126fe565b602060405180830381600087803b1580156110f557600080fd5b505af1158015611109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112d9190612694565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000806111b160025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db32844906024016107be565b6111f363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146112235760405162461bcd60e51b81526004016106ef906127e1565b61122d8282611bed565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610e0f565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b1580156112ac57600080fd5b505afa1580156112c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e891908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916113259160040190815260200190565b60206040518083038186803b15801561133d57600080fd5b505afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190612364565b9050336001600160a01b0382161461139f5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610d37565b60006113e963141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146114195760405162461bcd60e51b81526004016106ef906127e1565b6114238383611c3c565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610895565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156114c957600080fd5b505afa1580156114dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150591908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916115429160040190815260200190565b60206040518083038186803b15801561155a57600080fd5b505afa15801561156e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115929190612364565b9050336001600160a01b038216146115bc5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610b8f565b6000806108e6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261167a91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116b79160040190815260200190565b60206040518083038186803b1580156116cf57600080fd5b505afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190612364565b9050336001600160a01b038216146117315760405162461bcd60e51b81526004016106ef906127aa565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610b8f565b60008061176e60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d9235906024016107be565b6117b56810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146117e55760405162461bcd60e51b81526004016106ef90612773565b6108df61203f565b6117fd63141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b03161461182d5760405162461bcd60e51b81526004016106ef906127e1565b600061183882612127565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610e0f565b60008061187d60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f906024016107be565b6118c46810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146118f45760405162461bcd60e51b81526004016106ef90612773565b600255565b60008061190560025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b0316906329560980906024016107be565b600060016108e6565b611947611b43565b6001600160a01b0381166119ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ef565b6119b581611b9d565b50565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611a0257600080fd5b505afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190612364565b92915050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611aa557600080fd5b505af1158015611ab9573d6000803e3d6000fd5b50505050505050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146108df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ef565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611a8b565b600080611c47610e1b565b90506000611c536118f9565b90506000611c5f611762565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a160008311611cf45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c45530060448201526064016106ef565b808211611d435760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c00000060448201526064016106ef565b611d4d8582612908565b821061203657600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b158015611d9857600080fd5b505afa158015611dac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd4919081019061241b565b601154909150600090611dee90869063ffffffff166129a2565b905060005b8581108015611e00575086155b15612032576000611e1083610608565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015611e5a57600080fd5b505afa158015611e6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9691908101906124c6565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a1801561201c5760008260c001518360a00151611ef59190612920565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b811061200157600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b158015611f9b57600080fd5b505af1158015611faf573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff16925090611fdd8361297e565b91906101000a81548163ffffffff021916908363ffffffff1602179055505061201a565b8961200d876001612908565b61201791906129a2565b95505b505b505050808061202a90612963565b915050611df3565b5050505b50505092915050565b600061204a60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561208f57600080fd5b505afa1580156120a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c79190612694565b156119b55760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b60648201526084016106ef565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561218357600080fd5b505af1158015610757573d6000803e3d6000fd5b604051806101400160405280600081526020016000815260200160008152602001600060038111156121d957634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612219578081fd5b813561222c612227826128e0565b6128af565b818152846020838601011115612240578283fd5b816020850160208301379081016020019190915292915050565b600082601f83011261226a578081fd5b8151612278612227826128e0565b81815284602083860101111561228c578283fd5b61229d826020830160208701612937565b949350505050565b803561077f81612a19565b805161077f81612a19565b600060c082840312156122cc578081fd5b6122d660c06128af565b905081356122e381612a19565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561231557600080fd5b61232184828501612209565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612352578081fd5b813561235d81612a04565b9392505050565b600060208284031215612375578081fd5b815161235d81612a04565b600060208284031215612391578081fd5b5035919050565b600080604083850312156123aa578081fd5b50508035926020909101359150565b600080604083850312156123cb578182fd5b823567ffffffffffffffff8111156123e1578283fd5b6123ed85828601612209565b95602094909401359450505050565b60006020828403121561240d578081fd5b81516007811061235d578182fd5b60006020828403121561242c578081fd5b815167ffffffffffffffff80821115612443578283fd5b9083019060c08286031215612456578283fd5b61246060c06128af565b825161246b81612a19565b808252506020830151602082015260408301516040820152606083015182811115612494578485fd5b6124a08782860161225a565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000602082840312156124d7578081fd5b815167ffffffffffffffff808211156124ee578283fd5b8184019150610140808387031215612504578384fd5b61250d816128af565b9050825181526020830151602082015260408301516040820152612533606084016122b0565b6060820152608083015182811115612549578485fd5b6125558782860161225a565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600080604083850312156125ac578182fd5b823567ffffffffffffffff808211156125c3578384fd5b81850191506101408083880312156125d9578485fd5b6125e2816128af565b9050823581526020830135602082015260408301356040820152612608606084016122a5565b606082015260808301358281111561261e578586fd5b61262a88828601612209565b60808301525060a083013560a082015260c083013560c082015260e083013560e082015261010080840135818301525061012080840135818301525080945050602085013591508082111561267d578283fd5b5061268a858286016122bb565b9150509250929050565b6000602082840312156126a5578081fd5b5051919050565b600080604083850312156123aa578182fd5b600081518084526126d6816020860160208601612937565b601f01601f19169290920160200192915050565b600481106126fa576126fa6129d8565b9052565b6001600160a01b0384168152606060208201819052600090612722908301856126be565b9050826040830152949350505050565b6020810160078310612746576127466129d8565b91905290565b6020810160038310612746576127466129d8565b60006020825261235d60208301846126be565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b600060208252825160208301526020830151604083015260408301516060830152606083015161284b60808401826126ea565b5060808301516101408060a08501526128686101608501836126be565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128d8576128d86129ee565b604052919050565b600067ffffffffffffffff8211156128fa576128fa6129ee565b50601f01601f191660200190565b6000821982111561291b5761291b6129c2565b500190565b600082821015612932576129326129c2565b500390565b60005b8381101561295257818101518382015260200161293a565b83811115611b3d5750506000910152565b6000600019821415612977576129776129c2565b5060010190565b600063ffffffff80831681811415612998576129986129c2565b6001019392505050565b6000826129bd57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146119b557600080fd5b600481106119b557600080fdfea264697066735822122027465eb2540f515511bab31c2e975b912c7cb02ee862dca2d6d9395445502f7364736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.dbg.json b/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.json b/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.json new file mode 100644 index 00000000..d9f99be2 --- /dev/null +++ b/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.json @@ -0,0 +1,114 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "TestTransferFrom", + "sourceName": "contracts/test/TestTransferFrom.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "callSuccess", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "returnDataLength", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "name": "LogTransferHelperCallFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "tokenIsContract", + "type": "bool" + }, + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "LogTransferHelperInputValidation1Failed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + } + ], + "name": "LogTransferHelperInputValidation2Failed", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "contract IERC20", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "unifiedTransferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506104f1806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806386aa75d714610030575b600080fd5b61004361003e3660046103ac565b610057565b604051901515815260200160405180910390f35b600061006585858585610070565b90505b949350505050565b6000846001600160a01b038082163b1515908616158061009757506001600160a01b038516155b806100a0575080155b156100fb576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a1600092505050610068565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561014057600080fd5b505afa158015610154573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017891906103fc565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156101c557600080fd5b505afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906103fc565b90508582108061020c57508581105b156102575760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a16000945050505050610068565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916102bb9190610414565b6000604051808303816000865af19150503d80600081146102f8576040519150601f19603f3d011682016040523d82523d6000602084013e6102fd565b606091505b50915091508180156103335750805115806103335750805160201480156103335750808060200190518101906103339190610385565b965086610377577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161036e93929190610430565b60405180910390a15b505050505050949350505050565b600060208284031215610396578081fd5b815180151581146103a5578182fd5b9392505050565b600080600080608085870312156103c1578283fd5b84356103cc816104a3565b935060208501356103dc816104a3565b925060408501356103ec816104a3565b9396929550929360600135925050565b60006020828403121561040d578081fd5b5051919050565b60008251610426818460208701610473565b9190910192915050565b6000841515825283602083015260606040830152825180606084015261045d816080850160208701610473565b601f01601f191691909101608001949350505050565b60005b8381101561048e578181015183820152602001610476565b8381111561049d576000848401525b50505050565b6001600160a01b03811681146104b857600080fd5b5056fea26469706673582212204cd47de7139602c38bd878e742df2f0bda2fca7a0fe902f95fd7daa762c597cd64736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c806386aa75d714610030575b600080fd5b61004361003e3660046103ac565b610057565b604051901515815260200160405180910390f35b600061006585858585610070565b90505b949350505050565b6000846001600160a01b038082163b1515908616158061009757506001600160a01b038516155b806100a0575080155b156100fb576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a1600092505050610068565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561014057600080fd5b505afa158015610154573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017891906103fc565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156101c557600080fd5b505afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906103fc565b90508582108061020c57508581105b156102575760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a16000945050505050610068565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916102bb9190610414565b6000604051808303816000865af19150503d80600081146102f8576040519150601f19603f3d011682016040523d82523d6000602084013e6102fd565b606091505b50915091508180156103335750805115806103335750805160201480156103335750808060200190518101906103339190610385565b965086610377577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161036e93929190610430565b60405180910390a15b505050505050949350505050565b600060208284031215610396578081fd5b815180151581146103a5578182fd5b9392505050565b600080600080608085870312156103c1578283fd5b84356103cc816104a3565b935060208501356103dc816104a3565b925060408501356103ec816104a3565b9396929550929360600135925050565b60006020828403121561040d578081fd5b5051919050565b60008251610426818460208701610473565b9190910192915050565b6000841515825283602083015260606040830152825180606084015261045d816080850160208701610473565b601f01601f191691909101608001949350505050565b60005b8381101561048e578181015183820152602001610476565b8381111561049d576000848401525b50505050565b6001600160a01b03811681146104b857600080fd5b5056fea26469706673582212204cd47de7139602c38bd878e742df2f0bda2fca7a0fe902f95fd7daa762c597cd64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/tokens/BundleToken.sol/BundleToken.dbg.json b/artifacts/contracts/tokens/BundleToken.sol/BundleToken.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/tokens/BundleToken.sol/BundleToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/tokens/BundleToken.sol/BundleToken.json b/artifacts/contracts/tokens/BundleToken.sol/BundleToken.json new file mode 100644 index 00000000..fc8fd87c --- /dev/null +++ b/artifacts/contracts/tokens/BundleToken.sol/BundleToken.json @@ -0,0 +1,620 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "BundleToken", + "sourceName": "contracts/tokens/BundleToken.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "LogBundleTokenBurned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "tokenOwner", + "type": "address" + } + ], + "name": "LogBundleTokenMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "SYMBOL", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "bundleIdForTokenId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "burned", + "outputs": [ + { + "internalType": "bool", + "name": "isBurned", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "exists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getBundleId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getBundleModuleAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "bundleId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "bundleModule", + "type": "address" + } + ], + "name": "setBundleModule", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenCount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252601081526f23a4a310213ab7323632902a37b5b2b760811b60208083019182528351808501909452600384526242544b60e81b9084015281519192916200006591600091620000f4565b5080516200007b906001906020840190620000f4565b50505062000098620000926200009e60201b60201c565b620000a2565b620001d7565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b82805462000102906200019a565b90600052602060002090601f01602090048101928262000126576000855562000171565b82601f106200014157805160ff191683800117855562000171565b8280016001018555821562000171579182015b828111156200017157825182559160200191906001019062000154565b506200017f92915062000183565b5090565b5b808211156200017f576000815560010162000184565b600281046001821680620001af57607f821691505b60208210811415620001d157634e487b7160e01b600052602260045260246000fd5b50919050565b611aa580620001e76000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636ae9d6e8116100f9578063a38b714c11610097578063c87b56dd11610071578063c87b56dd146103b2578063e985e9c5146103c5578063f2fde38b14610401578063f76f8d7814610414576101a9565b8063a38b714c1461035d578063a3f4df7e14610370578063b88d4fde1461039f576101a9565b80638da5cb5b116100d35780638da5cb5b1461031e57806394bf804d1461032f57806395d89b4114610342578063a22cb4651461034a576101a9565b80636ae9d6e8146102e357806370a0823114610303578063715018a614610316576101a9565b806323b872dd1161016657806342966c681161014057806342966c68146102965780634f558e79146102a95780636352211e146102bf5780636ae73384146102d2576101a9565b806323b872dd1461025057806329a630831461026357806342842e0e14610283576101a9565b806301ffc9a7146101ae57806306fdde03146101d6578063081812fc146101eb578063095ea7b31461021657806318160ddd1461022b57806323250cae1461023d575b600080fd5b6101c16101bc366004611781565b610436565b60405190151581526020015b60405180910390f35b6101de61048a565b6040516101cd919061188b565b6101fe6101f93660046117b9565b61051c565b6040516001600160a01b0390911681526020016101cd565b610229610224366004611758565b610543565b005b6009545b6040519081526020016101cd565b6101c161024b3660046117b9565b61065e565b61022961025e36600461160e565b61068a565b61022f6102713660046117b9565b60009081526007602052604090205490565b61022961029136600461160e565b6106bb565b6102296102a43660046117b9565b6106d6565b6101c16102b73660046117b9565b600954101590565b6101fe6102cd3660046117b9565b61084a565b6008546001600160a01b03166101fe565b61022f6102f13660046117b9565b60076020526000908152604090205481565b61022f6103113660046115c2565b6108aa565b610229610930565b6006546001600160a01b03166101fe565b61022f61033d3660046117d1565b610944565b6101de610a85565b61022961035836600461171e565b610a94565b61022961036b3660046115c2565b610aa3565b6101de6040518060400160405280601081526020016f23a4a310213ab7323632902a37b5b2b760811b81525081565b6102296103ad366004611649565b610b9c565b6101de6103c03660046117b9565b610bd4565b6101c16103d33660046115dc565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61022961040f3660046115c2565b610c48565b6101de6040518060400160405280600381526020016242544b60e81b81525081565b60006001600160e01b031982166380ac58cd60e01b148061046757506001600160e01b03198216635b5e139f60e01b145b8061048257506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b606060008054610499906119ad565b80601f01602080910402602001604051908101604052809291908181526020018280546104c5906119ad565b80156105125780601f106104e757610100808354040283529160200191610512565b820191906000526020600020905b8154815290600101906020018083116104f557829003601f168201915b5050505050905090565b600061052782610cc1565b506000908152600460205260409020546001600160a01b031690565b600061054e8261084a565b9050806001600160a01b0316836001600160a01b031614156105c15760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105dd57506105dd81336103d3565b61064f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016105b8565b6106598383610d20565b505050565b600060095482111580156104825750506000908152600260205260409020546001600160a01b03161590565b6106943382610d8e565b6106b05760405162461bcd60e51b81526004016105b8906118f0565b610659838383610e0d565b61065983838360405180602001604052806000815250610b9c565b6008546001600160a01b031661072e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b0316146107915760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b6000818152600260205260409020546001600160a01b03166107f55760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42544b2d3030353a544f4b454e5f49445f494e56414c4944000060448201526064016105b8565b6107fe81610fa9565b6000818152600760209081526040918290205482519081529081018390527f9b94bd6eee531d53aaede5ff8a93d142b0afb2cf7fbbce1135a75efd7f29cb55910160405180910390a150565b6000818152600260205260408120546001600160a01b0316806104825760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b60006001600160a01b0382166109145760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105b8565b506001600160a01b031660009081526003602052604090205490565b610938611045565b610942600061109f565b565b6008546000906001600160a01b031661099f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b031614610a025760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b60098054906000610a12836119e8565b909155505060095460008181526007602052604090208490559050610a3782826110f1565b60408051848152602081018390526001600160a01b0384168183015290517ffd51d5a3232267986482b6be627e03dabfb0a2ce2025276823100423b5f558679181900360600190a192915050565b606060018054610499906119ad565b610a9f33838361110b565b5050565b6008546001600160a01b031615610b105760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030333a42554e444c455f4d4f44554c455f414c524560448201526a10511657d111519253915160aa1b60648201526084016105b8565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030343a494e56414c49445f42554e444c455f4d4f4460448201526a554c455f4144445245535360a81b60648201526084016105b8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610ba63383610d8e565b610bc25760405162461bcd60e51b81526004016105b8906118f0565b610bce848484846111da565b50505050565b6060610bdf82610cc1565b6000610bf660408051602081019091526000815290565b90506000815111610c165760405180602001604052806000815250610c41565b80610c208461120d565b604051602001610c3192919061181f565b6040516020818303038152906040525b9392505050565b610c50611045565b6001600160a01b038116610cb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b8565b610cbe8161109f565b50565b6000818152600260205260409020546001600160a01b0316610cbe5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610d558261084a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d9a8361084a565b9050806001600160a01b0316846001600160a01b03161480610de157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610e055750836001600160a01b0316610dfa8461051c565b6001600160a01b0316145b949350505050565b826001600160a01b0316610e208261084a565b6001600160a01b031614610e845760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016105b8565b6001600160a01b038216610ee65760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105b8565b610ef1600082610d20565b6001600160a01b0383166000908152600360205260408120805460019290610f1a90849061196a565b90915550506001600160a01b0382166000908152600360205260408120805460019290610f4890849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4610659565b6000610fb48261084a565b9050610fc1600083610d20565b6001600160a01b0381166000908152600360205260408120805460019290610fea90849061196a565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4610a9f565b6006546001600160a01b031633146109425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b8565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610a9f828260405180602001604052806000815250611328565b816001600160a01b0316836001600160a01b0316141561116d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105b8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6111e5848484610e0d565b6111f18484848461135b565b610bce5760405162461bcd60e51b81526004016105b89061189e565b60608161123257506040805180820190915260018152600360fc1b6020820152610485565b8160005b811561125c5780611246816119e8565b91506112559050600a83611956565b9150611236565b60008167ffffffffffffffff81111561128557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112af576020820181803683370190505b5090505b8415610e05576112c460018361196a565b91506112d1600a86611a03565b6112dc90603061193e565b60f81b8183815181106112ff57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611321600a86611956565b94506112b3565b6113328383611468565b61133f600084848461135b565b6106595760405162461bcd60e51b81526004016105b89061189e565b60006001600160a01b0384163b1561145d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061139f90339089908890889060040161184e565b602060405180830381600087803b1580156113b957600080fd5b505af19250505080156113e9575060408051601f3d908101601f191682019092526113e69181019061179d565b60015b611443573d808015611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50805161143b5760405162461bcd60e51b81526004016105b89061189e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610e05565b506001949350505050565b6001600160a01b0382166114be5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105b8565b6000818152600260205260409020546001600160a01b0316156115235760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105b8565b6001600160a01b038216600090815260036020526040812080546001929061154c90849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4610a9f565b80356001600160a01b038116811461048557600080fd5b6000602082840312156115d3578081fd5b610c41826115ab565b600080604083850312156115ee578081fd5b6115f7836115ab565b9150611605602084016115ab565b90509250929050565b600080600060608486031215611622578081fd5b61162b846115ab565b9250611639602085016115ab565b9150604084013590509250925092565b6000806000806080858703121561165e578081fd5b611667856115ab565b9350611675602086016115ab565b925060408501359150606085013567ffffffffffffffff80821115611698578283fd5b818701915087601f8301126116ab578283fd5b8135818111156116bd576116bd611a43565b604051601f8201601f19908116603f011681019083821181831017156116e5576116e5611a43565b816040528281528a60208487010111156116fd578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215611730578182fd5b611739836115ab565b91506020830135801515811461174d578182fd5b809150509250929050565b6000806040838503121561176a578182fd5b611773836115ab565b946020939093013593505050565b600060208284031215611792578081fd5b8135610c4181611a59565b6000602082840312156117ae578081fd5b8151610c4181611a59565b6000602082840312156117ca578081fd5b5035919050565b600080604083850312156117e3578182fd5b82359150611605602084016115ab565b6000815180845261180b816020860160208601611981565b601f01601f19169290920160200192915050565b60008351611831818460208801611981565b835190830190611845818360208801611981565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611881908301846117f3565b9695505050505050565b600060208252610c4160208301846117f3565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000821982111561195157611951611a17565b500190565b60008261196557611965611a2d565b500490565b60008282101561197c5761197c611a17565b500390565b60005b8381101561199c578181015183820152602001611984565b83811115610bce5750506000910152565b6002810460018216806119c157607f821691505b602082108114156119e257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119fc576119fc611a17565b5060010190565b600082611a1257611a12611a2d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610cbe57600080fdfea264697066735822122032918e0ae1816ccf1a3674eda3a468fbc7e9aedcee3910edd8f9f7aeb8199bcb64736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80636ae9d6e8116100f9578063a38b714c11610097578063c87b56dd11610071578063c87b56dd146103b2578063e985e9c5146103c5578063f2fde38b14610401578063f76f8d7814610414576101a9565b8063a38b714c1461035d578063a3f4df7e14610370578063b88d4fde1461039f576101a9565b80638da5cb5b116100d35780638da5cb5b1461031e57806394bf804d1461032f57806395d89b4114610342578063a22cb4651461034a576101a9565b80636ae9d6e8146102e357806370a0823114610303578063715018a614610316576101a9565b806323b872dd1161016657806342966c681161014057806342966c68146102965780634f558e79146102a95780636352211e146102bf5780636ae73384146102d2576101a9565b806323b872dd1461025057806329a630831461026357806342842e0e14610283576101a9565b806301ffc9a7146101ae57806306fdde03146101d6578063081812fc146101eb578063095ea7b31461021657806318160ddd1461022b57806323250cae1461023d575b600080fd5b6101c16101bc366004611781565b610436565b60405190151581526020015b60405180910390f35b6101de61048a565b6040516101cd919061188b565b6101fe6101f93660046117b9565b61051c565b6040516001600160a01b0390911681526020016101cd565b610229610224366004611758565b610543565b005b6009545b6040519081526020016101cd565b6101c161024b3660046117b9565b61065e565b61022961025e36600461160e565b61068a565b61022f6102713660046117b9565b60009081526007602052604090205490565b61022961029136600461160e565b6106bb565b6102296102a43660046117b9565b6106d6565b6101c16102b73660046117b9565b600954101590565b6101fe6102cd3660046117b9565b61084a565b6008546001600160a01b03166101fe565b61022f6102f13660046117b9565b60076020526000908152604090205481565b61022f6103113660046115c2565b6108aa565b610229610930565b6006546001600160a01b03166101fe565b61022f61033d3660046117d1565b610944565b6101de610a85565b61022961035836600461171e565b610a94565b61022961036b3660046115c2565b610aa3565b6101de6040518060400160405280601081526020016f23a4a310213ab7323632902a37b5b2b760811b81525081565b6102296103ad366004611649565b610b9c565b6101de6103c03660046117b9565b610bd4565b6101c16103d33660046115dc565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61022961040f3660046115c2565b610c48565b6101de6040518060400160405280600381526020016242544b60e81b81525081565b60006001600160e01b031982166380ac58cd60e01b148061046757506001600160e01b03198216635b5e139f60e01b145b8061048257506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b606060008054610499906119ad565b80601f01602080910402602001604051908101604052809291908181526020018280546104c5906119ad565b80156105125780601f106104e757610100808354040283529160200191610512565b820191906000526020600020905b8154815290600101906020018083116104f557829003601f168201915b5050505050905090565b600061052782610cc1565b506000908152600460205260409020546001600160a01b031690565b600061054e8261084a565b9050806001600160a01b0316836001600160a01b031614156105c15760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105dd57506105dd81336103d3565b61064f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016105b8565b6106598383610d20565b505050565b600060095482111580156104825750506000908152600260205260409020546001600160a01b03161590565b6106943382610d8e565b6106b05760405162461bcd60e51b81526004016105b8906118f0565b610659838383610e0d565b61065983838360405180602001604052806000815250610b9c565b6008546001600160a01b031661072e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b0316146107915760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b6000818152600260205260409020546001600160a01b03166107f55760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42544b2d3030353a544f4b454e5f49445f494e56414c4944000060448201526064016105b8565b6107fe81610fa9565b6000818152600760209081526040918290205482519081529081018390527f9b94bd6eee531d53aaede5ff8a93d142b0afb2cf7fbbce1135a75efd7f29cb55910160405180910390a150565b6000818152600260205260408120546001600160a01b0316806104825760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b60006001600160a01b0382166109145760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105b8565b506001600160a01b031660009081526003602052604090205490565b610938611045565b610942600061109f565b565b6008546000906001600160a01b031661099f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b031614610a025760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b60098054906000610a12836119e8565b909155505060095460008181526007602052604090208490559050610a3782826110f1565b60408051848152602081018390526001600160a01b0384168183015290517ffd51d5a3232267986482b6be627e03dabfb0a2ce2025276823100423b5f558679181900360600190a192915050565b606060018054610499906119ad565b610a9f33838361110b565b5050565b6008546001600160a01b031615610b105760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030333a42554e444c455f4d4f44554c455f414c524560448201526a10511657d111519253915160aa1b60648201526084016105b8565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030343a494e56414c49445f42554e444c455f4d4f4460448201526a554c455f4144445245535360a81b60648201526084016105b8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610ba63383610d8e565b610bc25760405162461bcd60e51b81526004016105b8906118f0565b610bce848484846111da565b50505050565b6060610bdf82610cc1565b6000610bf660408051602081019091526000815290565b90506000815111610c165760405180602001604052806000815250610c41565b80610c208461120d565b604051602001610c3192919061181f565b6040516020818303038152906040525b9392505050565b610c50611045565b6001600160a01b038116610cb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b8565b610cbe8161109f565b50565b6000818152600260205260409020546001600160a01b0316610cbe5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610d558261084a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d9a8361084a565b9050806001600160a01b0316846001600160a01b03161480610de157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610e055750836001600160a01b0316610dfa8461051c565b6001600160a01b0316145b949350505050565b826001600160a01b0316610e208261084a565b6001600160a01b031614610e845760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016105b8565b6001600160a01b038216610ee65760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105b8565b610ef1600082610d20565b6001600160a01b0383166000908152600360205260408120805460019290610f1a90849061196a565b90915550506001600160a01b0382166000908152600360205260408120805460019290610f4890849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4610659565b6000610fb48261084a565b9050610fc1600083610d20565b6001600160a01b0381166000908152600360205260408120805460019290610fea90849061196a565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4610a9f565b6006546001600160a01b031633146109425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b8565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610a9f828260405180602001604052806000815250611328565b816001600160a01b0316836001600160a01b0316141561116d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105b8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6111e5848484610e0d565b6111f18484848461135b565b610bce5760405162461bcd60e51b81526004016105b89061189e565b60608161123257506040805180820190915260018152600360fc1b6020820152610485565b8160005b811561125c5780611246816119e8565b91506112559050600a83611956565b9150611236565b60008167ffffffffffffffff81111561128557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112af576020820181803683370190505b5090505b8415610e05576112c460018361196a565b91506112d1600a86611a03565b6112dc90603061193e565b60f81b8183815181106112ff57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611321600a86611956565b94506112b3565b6113328383611468565b61133f600084848461135b565b6106595760405162461bcd60e51b81526004016105b89061189e565b60006001600160a01b0384163b1561145d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061139f90339089908890889060040161184e565b602060405180830381600087803b1580156113b957600080fd5b505af19250505080156113e9575060408051601f3d908101601f191682019092526113e69181019061179d565b60015b611443573d808015611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50805161143b5760405162461bcd60e51b81526004016105b89061189e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610e05565b506001949350505050565b6001600160a01b0382166114be5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105b8565b6000818152600260205260409020546001600160a01b0316156115235760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105b8565b6001600160a01b038216600090815260036020526040812080546001929061154c90849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4610a9f565b80356001600160a01b038116811461048557600080fd5b6000602082840312156115d3578081fd5b610c41826115ab565b600080604083850312156115ee578081fd5b6115f7836115ab565b9150611605602084016115ab565b90509250929050565b600080600060608486031215611622578081fd5b61162b846115ab565b9250611639602085016115ab565b9150604084013590509250925092565b6000806000806080858703121561165e578081fd5b611667856115ab565b9350611675602086016115ab565b925060408501359150606085013567ffffffffffffffff80821115611698578283fd5b818701915087601f8301126116ab578283fd5b8135818111156116bd576116bd611a43565b604051601f8201601f19908116603f011681019083821181831017156116e5576116e5611a43565b816040528281528a60208487010111156116fd578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215611730578182fd5b611739836115ab565b91506020830135801515811461174d578182fd5b809150509250929050565b6000806040838503121561176a578182fd5b611773836115ab565b946020939093013593505050565b600060208284031215611792578081fd5b8135610c4181611a59565b6000602082840312156117ae578081fd5b8151610c4181611a59565b6000602082840312156117ca578081fd5b5035919050565b600080604083850312156117e3578182fd5b82359150611605602084016115ab565b6000815180845261180b816020860160208601611981565b601f01601f19169290920160200192915050565b60008351611831818460208801611981565b835190830190611845818360208801611981565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611881908301846117f3565b9695505050505050565b600060208252610c4160208301846117f3565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000821982111561195157611951611a17565b500190565b60008261196557611965611a2d565b500490565b60008282101561197c5761197c611a17565b500390565b60005b8381101561199c578181015183820152602001611984565b83811115610bce5750506000910152565b6002810460018216806119c157607f821691505b602082108114156119e257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119fc576119fc611a17565b5060010190565b600082611a1257611a12611a2d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610cbe57600080fdfea264697066735822122032918e0ae1816ccf1a3674eda3a468fbc7e9aedcee3910edd8f9f7aeb8199bcb64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.dbg.json b/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.dbg.json new file mode 100644 index 00000000..bc9529ca --- /dev/null +++ b/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" +} diff --git a/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.json b/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.json new file mode 100644 index 00000000..99609cfa --- /dev/null +++ b/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.json @@ -0,0 +1,312 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "RiskpoolToken", + "sourceName": "contracts/tokens/RiskpoolToken.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "SYMBOL", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b8152506040518060400160405280600381526020016214941560ea1b815250816003908051906020019061006e92919061008a565b50805161008290600490602084019061008a565b50505061015e565b82805461009690610123565b90600052602060002090601f0160209004810192826100b857600085556100fe565b82601f106100d157805160ff19168380011785556100fe565b828001600101855582156100fe579182015b828111156100fe5782518255916020019190600101906100e3565b5061010a92915061010e565b5090565b5b8082111561010a576000815560010161010f565b60028104600182168061013757607f821691505b6020821081141561015857634e487b7160e01b600052602260045260246000fd5b50919050565b6108fc8061016d6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101a8578063a9059cbb146101bb578063dd62ed3e146101ce578063f76f8d78146101e1576100cf565b806370a082311461015c57806395d89b411461016f578063a3f4df7e14610177576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610203565b6040516100e99190610814565b60405180910390f35b6101056101003660046107eb565b610295565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107b0565b6102ad565b604051601281526020016100e9565b6101056101573660046107eb565b6102d1565b61011961016a36600461075d565b6102f3565b6100dc610312565b6100dc6040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b81525081565b6101056101b63660046107eb565b610321565b6101056101c93660046107eb565b6103a1565b6101196101dc36600461077e565b6103af565b6100dc6040518060400160405280600381526020016214941560ea1b81525081565b6060600380546102129061088b565b80601f016020809104026020016040519081016040528092919081815260200182805461023e9061088b565b801561028b5780601f106102605761010080835404028352916020019161028b565b820191906000526020600020905b81548152906001019060200180831161026e57829003601f168201915b5050505050905090565b6000336102a38185856103da565b5060019392505050565b6000336102bb8582856104fe565b6102c6858585610578565b506001949350505050565b6000336102a38185856102e483836103af565b6102ee9190610867565b6103da565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102129061088b565b6000338161032f82866103af565b9050838110156103945760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102c682868684036103da565b6000336102a3818585610578565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038b565b6001600160a01b03821661049d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061050a84846103af565b9050600019811461057257818110156105655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038b565b61057284848484036103da565b50505050565b6001600160a01b0383166105dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038b565b6001600160a01b03821661063e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038b565b6001600160a01b038316600090815260208190526040902054818110156106b65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161038b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106ed908490610867565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161073991815260200190565b60405180910390a3610572565b80356001600160a01b038116811461030d57600080fd5b60006020828403121561076e578081fd5b61077782610746565b9392505050565b60008060408385031215610790578081fd5b61079983610746565b91506107a760208401610746565b90509250929050565b6000806000606084860312156107c4578081fd5b6107cd84610746565b92506107db60208501610746565b9150604084013590509250925092565b600080604083850312156107fd578182fd5b61080683610746565b946020939093013593505050565b6000602080835283518082850152825b8181101561084057858101830151858201604001528201610824565b818111156108515783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561088657634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061089f57607f821691505b602082108114156108c057634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212200894a2a8aec7d823a7bf129c100a556aaf32c5c98f4e46c38df545cdf613f4dd64736f6c63430008020033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101a8578063a9059cbb146101bb578063dd62ed3e146101ce578063f76f8d78146101e1576100cf565b806370a082311461015c57806395d89b411461016f578063a3f4df7e14610177576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610203565b6040516100e99190610814565b60405180910390f35b6101056101003660046107eb565b610295565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107b0565b6102ad565b604051601281526020016100e9565b6101056101573660046107eb565b6102d1565b61011961016a36600461075d565b6102f3565b6100dc610312565b6100dc6040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b81525081565b6101056101b63660046107eb565b610321565b6101056101c93660046107eb565b6103a1565b6101196101dc36600461077e565b6103af565b6100dc6040518060400160405280600381526020016214941560ea1b81525081565b6060600380546102129061088b565b80601f016020809104026020016040519081016040528092919081815260200182805461023e9061088b565b801561028b5780601f106102605761010080835404028352916020019161028b565b820191906000526020600020905b81548152906001019060200180831161026e57829003601f168201915b5050505050905090565b6000336102a38185856103da565b5060019392505050565b6000336102bb8582856104fe565b6102c6858585610578565b506001949350505050565b6000336102a38185856102e483836103af565b6102ee9190610867565b6103da565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102129061088b565b6000338161032f82866103af565b9050838110156103945760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102c682868684036103da565b6000336102a3818585610578565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038b565b6001600160a01b03821661049d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061050a84846103af565b9050600019811461057257818110156105655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038b565b61057284848484036103da565b50505050565b6001600160a01b0383166105dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038b565b6001600160a01b03821661063e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038b565b6001600160a01b038316600090815260208190526040902054818110156106b65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161038b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106ed908490610867565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161073991815260200190565b60405180910390a3610572565b80356001600160a01b038116811461030d57600080fd5b60006020828403121561076e578081fd5b61077782610746565b9392505050565b60008060408385031215610790578081fd5b61079983610746565b91506107a760208401610746565b90509250929050565b6000806000606084860312156107c4578081fd5b6107cd84610746565b92506107db60208501610746565b9150604084013590509250925092565b600080604083850312156107fd578182fd5b61080683610746565b946020939093013593505050565b6000602080835283518082850152825b8181101561084057858101830151858201604001528201610824565b818111156108515783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561088657634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061089f57607f821691505b602082108114156108c057634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212200894a2a8aec7d823a7bf129c100a556aaf32c5c98f4e46c38df545cdf613f4dd64736f6c63430008020033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/cache/solidity-files-cache.json b/cache/solidity-files-cache.json new file mode 100644 index 00000000..11d1ddbe --- /dev/null +++ b/cache/solidity-files-cache.json @@ -0,0 +1,3950 @@ +{ + "_format": "hh-sol-cache-2", + "files": { + "/workspace/contracts/Migrations.sol": { + "lastModificationDate": 1685691172854, + "contentHash": "dd7886c3a085090224dfd91887342aa7", + "sourceName": "contracts/Migrations.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "Migrations" + ] + }, + "/workspace/contracts/examples/AyiiOracle.sol": { + "lastModificationDate": 1685691172867, + "contentHash": "4094bc4bc448fe52882ca53b04cb5d97", + "sourceName": "contracts/examples/AyiiOracle.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./strings.sol", + "@chainlink/contracts/src/v0.8/ChainlinkClient.sol", + "@etherisc/gif-interface/contracts/components/Oracle.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "AyiiOracle" + ] + }, + "/workspace/contracts/examples/strings.sol": { + "lastModificationDate": 1685691172908, + "contentHash": "1e92544a0daa9986f1391c2185095e10", + "sourceName": "contracts/examples/strings.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "strings" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/components/Oracle.sol": { + "lastModificationDate": 1686152143966, + "contentHash": "8845391b0944f24146e94f7ba6a88173", + "sourceName": "@etherisc/gif-interface/contracts/components/Oracle.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IOracle.sol", + "./Component.sol", + "./IComponent.sol", + "../services/IOracleService.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "Oracle" + ] + }, + "/workspace/node_modules/@chainlink/contracts/src/v0.8/ChainlinkClient.sol": { + "lastModificationDate": 1686152162803, + "contentHash": "6af479cbde42f1a7225c9cebc6e32239", + "sourceName": "@chainlink/contracts/src/v0.8/ChainlinkClient.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./Chainlink.sol", + "./interfaces/ENSInterface.sol", + "./interfaces/LinkTokenInterface.sol", + "./interfaces/ChainlinkRequestInterface.sol", + "./interfaces/OperatorInterface.sol", + "./interfaces/PointerInterface.sol", + "./vendor/ENSResolver.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "ChainlinkClient" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IOracleService.sol": { + "lastModificationDate": 1686152144102, + "contentHash": "fafbfcf6481ef628ff7094ba0169e9bb", + "sourceName": "@etherisc/gif-interface/contracts/services/IOracleService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IOracleService" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/components/IOracle.sol": { + "lastModificationDate": 1686152143935, + "contentHash": "b557f1ac025a960e6ff4eae868fc5efc", + "sourceName": "@etherisc/gif-interface/contracts/components/IOracle.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IComponent.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IOracle" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/components/IComponent.sol": { + "lastModificationDate": 1686152143927, + "contentHash": "aba57dc8a7e66095134609a0102d35a4", + "sourceName": "@etherisc/gif-interface/contracts/components/IComponent.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../modules/IRegistry.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IComponent" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/components/Component.sol": { + "lastModificationDate": 1686152143920, + "contentHash": "62c9ddd68e91ca675321451c29b8845c", + "sourceName": "@etherisc/gif-interface/contracts/components/Component.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IComponent.sol", + "../modules/IAccess.sol", + "../modules/IComponentEvents.sol", + "../modules/IRegistry.sol", + "../services/IComponentOwnerService.sol", + "../services/IInstanceService.sol", + "@openzeppelin/contracts/access/Ownable.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "Component" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IRegistry.sol": { + "lastModificationDate": 1686152144055, + "contentHash": "dd8885b8654b3ed9f6ae9f7bc7f8d084", + "sourceName": "@etherisc/gif-interface/contracts/modules/IRegistry.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IRegistry" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IAccess.sol": { + "lastModificationDate": 1686152143999, + "contentHash": "5aa52f48a8bb052c193b37cb0af2353a", + "sourceName": "@etherisc/gif-interface/contracts/modules/IAccess.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IAccess" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol": { + "lastModificationDate": 1686152144014, + "contentHash": "d5e239641a931cb9a11e3a01f7cde62e", + "sourceName": "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../components/IComponent.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IComponentEvents" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol": { + "lastModificationDate": 1686152144077, + "contentHash": "083f2d58c53804afa075d8307f2cab00", + "sourceName": "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../components/IComponent.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IComponentOwnerService" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IInstanceService.sol": { + "lastModificationDate": 1686152144092, + "contentHash": "5abe0bc29bff7930f1c43cdb0f8a0ad1", + "sourceName": "@etherisc/gif-interface/contracts/services/IInstanceService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../components/IComponent.sol", + "../modules/IBundle.sol", + "../modules/IPolicy.sol", + "../modules/IPool.sol", + "../tokens/IBundleToken.sol", + "./IComponentOwnerService.sol", + "./IInstanceOperatorService.sol", + "./IOracleService.sol", + "./IProductService.sol", + "./IRiskpoolService.sol", + "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "@openzeppelin/contracts/token/ERC721/IERC721.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IInstanceService" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/access/Ownable.sol": { + "lastModificationDate": 1686152165020, + "contentHash": "e436cea06129be2c73cda4b1acc848b5", + "sourceName": "@openzeppelin/contracts/access/Ownable.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../utils/Context.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "Ownable" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IBundle.sol": { + "lastModificationDate": 1686152144006, + "contentHash": "68677aea5cb845c2b76fa976e52f25dd", + "sourceName": "@etherisc/gif-interface/contracts/modules/IBundle.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IBundle" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IPolicy.sol": { + "lastModificationDate": 1686152144029, + "contentHash": "9d8eef00dfe8a413df123a07f77e0395", + "sourceName": "@etherisc/gif-interface/contracts/modules/IPolicy.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IPolicy" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IPool.sol": { + "lastModificationDate": 1686152144041, + "contentHash": "ef91535350407e9f818768413d0401ad", + "sourceName": "@etherisc/gif-interface/contracts/modules/IPool.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IPool" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IProductService.sol": { + "lastModificationDate": 1686152144110, + "contentHash": "4e3074ac5571daac82c55274be1029b8", + "sourceName": "@etherisc/gif-interface/contracts/services/IProductService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IProductService" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol": { + "lastModificationDate": 1686152144117, + "contentHash": "5f28936f93c0fcd0f218c5be38e49472", + "sourceName": "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IRiskpoolService" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "lastModificationDate": 1686152165849, + "contentHash": "ad7c2d0af148c8f9f097d65deeb4da6b", + "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "IERC20" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol": { + "lastModificationDate": 1686152144085, + "contentHash": "6d934357002162b8be5598668dd37383", + "sourceName": "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../modules/ITreasury.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IInstanceOperatorService" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { + "lastModificationDate": 1686152165853, + "contentHash": "ec99d946db3685a3630554aa6055bd7f", + "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../../utils/introspection/IERC165.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "IERC721" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol": { + "lastModificationDate": 1686152144149, + "contentHash": "965b1a51e2cadca848708cdcc34ce336", + "sourceName": "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/token/ERC721/IERC721.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IBundleToken" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/ITreasury.sol": { + "lastModificationDate": 1686152144063, + "contentHash": "f06406e9faad6d764ad7a4f1a1c0e13f", + "sourceName": "@etherisc/gif-interface/contracts/modules/ITreasury.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/token/ERC20/IERC20.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "ITreasury" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "lastModificationDate": 1686152165868, + "contentHash": "03e6768535ac4da0e9756f1d8a4a018a", + "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "IERC165" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/utils/Context.sol": { + "lastModificationDate": 1686152086681, + "contentHash": "5f2c5c4b6af2dd4551027144797bc8be", + "sourceName": "@openzeppelin/contracts/utils/Context.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "Context" + ] + }, + "/workspace/node_modules/@chainlink/contracts/src/v0.8/Chainlink.sol": { + "lastModificationDate": 1686152162795, + "contentHash": "9dc050539cdf1579d5650d41d0df9ec2", + "sourceName": "@chainlink/contracts/src/v0.8/Chainlink.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./vendor/CBORChainlink.sol", + "./vendor/BufferChainlink.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "Chainlink" + ] + }, + "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol": { + "lastModificationDate": 1686152163798, + "contentHash": "06b6aefcae95de6d1597ad8e1d73a08b", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "ENSInterface" + ] + }, + "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol": { + "lastModificationDate": 1686152163859, + "contentHash": "da5a0c3bd86c896f6a407f909c57edf3", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "LinkTokenInterface" + ] + }, + "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol": { + "lastModificationDate": 1686152163894, + "contentHash": "27da4b2007d200dd5afff31dbf31ac99", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "PointerInterface" + ] + }, + "/workspace/node_modules/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol": { + "lastModificationDate": 1686152164994, + "contentHash": "24a98b0606654e662097eed9ffa91a11", + "sourceName": "@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "ENSResolver" + ] + }, + "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol": { + "lastModificationDate": 1686152163869, + "contentHash": "e1822c36361fc3a26b5a68df3ddab15d", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./OracleInterface.sol", + "./ChainlinkRequestInterface.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "OperatorInterface" + ] + }, + "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol": { + "lastModificationDate": 1686152163790, + "contentHash": "14407a6ead15cff8a0e0a7f8037c68f5", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "ChainlinkRequestInterface" + ] + }, + "/workspace/node_modules/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol": { + "lastModificationDate": 1686152164969, + "contentHash": "52ac6f99fb0635751ae4ed11139878fd", + "sourceName": "@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "BufferChainlink" + ] + }, + "/workspace/node_modules/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol": { + "lastModificationDate": 1686152164978, + "contentHash": "99b3ee2c29bc0d1a5cba583d9e8d835e", + "sourceName": "@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./BufferChainlink.sol" + ], + "versionPragmas": [ + ">=0.4.19" + ], + "artifacts": [ + "CBORChainlink" + ] + }, + "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol": { + "lastModificationDate": 1686152163876, + "contentHash": "6283e42024961596926c2b5015eef8e0", + "sourceName": "@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "OracleInterface" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": { + "lastModificationDate": 1686152165852, + "contentHash": "79ff1a7eb801a525aa315fb7a679eede", + "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IERC721.sol", + "./IERC721Receiver.sol", + "./extensions/IERC721Metadata.sol", + "../../utils/Address.sol", + "../../utils/Context.sol", + "../../utils/Strings.sol", + "../../utils/introspection/ERC165.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "ERC721" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/utils/Strings.sol": { + "lastModificationDate": 1686152165865, + "contentHash": "cf46906c4035f51639a22265066a9e78", + "sourceName": "@openzeppelin/contracts/utils/Strings.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "Strings" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/utils/Address.sol": { + "lastModificationDate": 1686152086476, + "contentHash": "c476b3895a94798b88a4bb97399e6dfe", + "sourceName": "@openzeppelin/contracts/utils/Address.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.1" + ], + "artifacts": [ + "Address" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "lastModificationDate": 1686152087503, + "contentHash": "0e7db055ce108f9da7bb6686a00287c0", + "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IERC165.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "ERC165" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { + "lastModificationDate": 1686152165853, + "contentHash": "c22d4395e33763de693fd440c6fd10e1", + "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "IERC721Receiver" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { + "lastModificationDate": 1686152165858, + "contentHash": "efbc0d15b80a74e34dbe8da0f3e879bb", + "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../IERC721.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "IERC721Metadata" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/components/Riskpool.sol": { + "lastModificationDate": 1686152143985, + "contentHash": "52955296d8bbf5fa605af49491f8bfa8", + "sourceName": "@etherisc/gif-interface/contracts/components/Riskpool.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IRiskpool.sol", + "./Component.sol", + "../modules/IBundle.sol", + "../modules/IPolicy.sol", + "../services/IInstanceService.sol", + "../services/IRiskpoolService.sol", + "@openzeppelin/contracts/token/ERC721/IERC721.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "Riskpool" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/components/IRiskpool.sol": { + "lastModificationDate": 1686152143958, + "contentHash": "df0fcac87a1e8b01750df89e04eda7e1", + "sourceName": "@etherisc/gif-interface/contracts/components/IRiskpool.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IComponent.sol", + "../modules/IBundle.sol", + "../modules/IPolicy.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IRiskpool" + ] + }, + "/workspace/contracts/tokens/BundleToken.sol": { + "lastModificationDate": 1685691173419, + "contentHash": "d0b3e0e55790c8a71fbf2bf78613d8ab", + "sourceName": "contracts/tokens/BundleToken.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/access/Ownable.sol", + "@openzeppelin/contracts/token/ERC721/ERC721.sol", + "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "BundleToken" + ] + }, + "/workspace/contracts/services/InstanceOperatorService.sol": { + "lastModificationDate": 1685691173016, + "contentHash": "54dc55ef1cdadcde99d42137b2a59b31", + "sourceName": "contracts/services/InstanceOperatorService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../modules/AccessController.sol", + "../modules/BundleController.sol", + "../modules/ComponentController.sol", + "../modules/PoolController.sol", + "../modules/TreasuryModule.sol", + "../shared/CoreController.sol", + "../test/TestProduct.sol", + "../tokens/BundleToken.sol", + "@etherisc/gif-interface/contracts/components/IComponent.sol", + "@etherisc/gif-interface/contracts/components/IProduct.sol", + "@etherisc/gif-interface/contracts/modules/IQuery.sol", + "@etherisc/gif-interface/contracts/modules/ITreasury.sol", + "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol", + "@openzeppelin/contracts/access/Ownable.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "InstanceOperatorService" + ] + }, + "/workspace/contracts/modules/AccessController.sol": { + "lastModificationDate": 1685974557692, + "contentHash": "e1bf81e63e9c9646fddef72da550d35b", + "sourceName": "contracts/modules/AccessController.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../shared/CoreController.sol", + "@etherisc/gif-interface/contracts/modules/IAccess.sol", + "@openzeppelin/contracts/access/AccessControlEnumerable.sol", + "@openzeppelin/contracts/proxy/utils/Initializable.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "AccessController" + ] + }, + "/workspace/contracts/modules/BundleController.sol": { + "lastModificationDate": 1685974557692, + "contentHash": "b12640f4102845ee376d08cf576de4a1", + "sourceName": "contracts/modules/BundleController.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./PolicyController.sol", + "../shared/CoreController.sol", + "../tokens/BundleToken.sol", + "@etherisc/gif-interface/contracts/components/IProduct.sol", + "@etherisc/gif-interface/contracts/modules/IBundle.sol", + "./PoolController.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "BundleController" + ] + }, + "/workspace/contracts/modules/ComponentController.sol": { + "lastModificationDate": 1685974557686, + "contentHash": "75c0db517fde09239e9f0b2946e00425", + "sourceName": "contracts/modules/ComponentController.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../shared/CoreController.sol", + "@etherisc/gif-interface/contracts/components/IComponent.sol", + "@etherisc/gif-interface/contracts/components/IOracle.sol", + "@etherisc/gif-interface/contracts/components/IProduct.sol", + "@etherisc/gif-interface/contracts/components/IRiskpool.sol", + "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol", + "@openzeppelin/contracts/utils/structs/EnumerableSet.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "ComponentController" + ] + }, + "/workspace/contracts/modules/PoolController.sol": { + "lastModificationDate": 1685974557684, + "contentHash": "cdb8a42a7a94b769ecc8346e6f219630", + "sourceName": "contracts/modules/PoolController.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./ComponentController.sol", + "./PolicyController.sol", + "./BundleController.sol", + "../shared/CoreController.sol", + "@etherisc/gif-interface/contracts/modules/IPool.sol", + "@etherisc/gif-interface/contracts/components/IComponent.sol", + "@etherisc/gif-interface/contracts/components/IRiskpool.sol", + "@openzeppelin/contracts/utils/structs/EnumerableSet.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "PoolController" + ] + }, + "/workspace/contracts/modules/TreasuryModule.sol": { + "lastModificationDate": 1685974550325, + "contentHash": "a93b37ea3d91b871c695395937bbd030", + "sourceName": "contracts/modules/TreasuryModule.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./ComponentController.sol", + "./PolicyController.sol", + "./BundleController.sol", + "./PoolController.sol", + "../shared/CoreController.sol", + "../shared/TransferHelper.sol", + "@etherisc/gif-interface/contracts/components/IComponent.sol", + "@etherisc/gif-interface/contracts/components/IProduct.sol", + "@etherisc/gif-interface/contracts/modules/IPolicy.sol", + "@etherisc/gif-interface/contracts/modules/ITreasury.sol", + "@openzeppelin/contracts/security/Pausable.sol", + "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "@openzeppelin/contracts/utils/Strings.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "TreasuryModule" + ] + }, + "/workspace/contracts/shared/CoreController.sol": { + "lastModificationDate": 1685691173055, + "contentHash": "5ac3ddac3490982db6a3fc511bc50baf", + "sourceName": "contracts/shared/CoreController.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@etherisc/gif-interface/contracts/modules/IAccess.sol", + "@etherisc/gif-interface/contracts/modules/IRegistry.sol", + "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "@openzeppelin/contracts/utils/Context.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "CoreController" + ] + }, + "/workspace/contracts/test/TestProduct.sol": { + "lastModificationDate": 1685691173364, + "contentHash": "f17128df8cd849c356e65fb1eea0f930", + "sourceName": "contracts/test/TestProduct.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@etherisc/gif-interface/contracts/modules/IPolicy.sol", + "@etherisc/gif-interface/contracts/services/IProductService.sol", + "@etherisc/gif-interface/contracts/services/IInstanceService.sol", + "@etherisc/gif-interface/contracts/components/Product.sol", + "@openzeppelin/contracts/token/ERC20/ERC20.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "TestProduct" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/components/IProduct.sol": { + "lastModificationDate": 1686152143949, + "contentHash": "401ac666ff832f2cf481662f82a21267", + "sourceName": "@etherisc/gif-interface/contracts/components/IProduct.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IComponent.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IProduct" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IQuery.sol": { + "lastModificationDate": 1686152144047, + "contentHash": "b4bf82c9ae7eca2d28c04fcb1e61c641", + "sourceName": "@etherisc/gif-interface/contracts/modules/IQuery.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "IQuery" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol": { + "lastModificationDate": 1686152086457, + "contentHash": "b6d9b165dc57e9ad8153bdca05c783a4", + "sourceName": "@openzeppelin/contracts/access/AccessControlEnumerable.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IAccessControlEnumerable.sol", + "./AccessControl.sol", + "../utils/structs/EnumerableSet.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "AccessControlEnumerable" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol": { + "lastModificationDate": 1686152165442, + "contentHash": "bcba485bbfd0aab6b8875b58224f6330", + "sourceName": "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../../utils/Address.sol" + ], + "versionPragmas": [ + "^0.8.2" + ], + "artifacts": [ + "Initializable" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/access/AccessControl.sol": { + "lastModificationDate": 1686152086407, + "contentHash": "e6ef731d275b1e7b2995f00fa56d9dab", + "sourceName": "@openzeppelin/contracts/access/AccessControl.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IAccessControl.sol", + "../utils/Context.sol", + "../utils/Strings.sol", + "../utils/introspection/ERC165.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "AccessControl" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol": { + "lastModificationDate": 1686152087253, + "contentHash": "aec6e37069dfaa5e3d5fd66ef2274b0c", + "sourceName": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "EnumerableSet" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol": { + "lastModificationDate": 1686152165020, + "contentHash": "4e71cc90682e109e999ce2bd329f6572", + "sourceName": "@openzeppelin/contracts/access/IAccessControlEnumerable.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IAccessControl.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "IAccessControlEnumerable" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/access/IAccessControl.sol": { + "lastModificationDate": 1686152165018, + "contentHash": "57c84298234411cea19c7c284d86be8b", + "sourceName": "@openzeppelin/contracts/access/IAccessControl.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "IAccessControl" + ] + }, + "/workspace/contracts/modules/PolicyController.sol": { + "lastModificationDate": 1685974557684, + "contentHash": "faa619da5dc0d3245cc15038464574ca", + "sourceName": "contracts/modules/PolicyController.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../shared/CoreController.sol", + "./ComponentController.sol", + "@etherisc/gif-interface/contracts/modules/IPolicy.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "PolicyController" + ] + }, + "/workspace/contracts/shared/TransferHelper.sol": { + "lastModificationDate": 1685691173070, + "contentHash": "cb902ec2d825572ff94e90275d92a4f9", + "sourceName": "contracts/shared/TransferHelper.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/token/ERC20/IERC20.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "TransferHelper" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/security/Pausable.sol": { + "lastModificationDate": 1686152165544, + "contentHash": "25c8108f36fdd472bc78d4c4af240c11", + "sourceName": "@openzeppelin/contracts/security/Pausable.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../utils/Context.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "Pausable" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "lastModificationDate": 1686152087703, + "contentHash": "af7bd64e1cfefbf6cb07f2adc1a25392", + "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IERC20.sol", + "./extensions/IERC20Metadata.sol", + "../../utils/Context.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "ERC20" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/components/Product.sol": { + "lastModificationDate": 1686152143973, + "contentHash": "d69df660fe6a66b68f6de5492eb6e3fe", + "sourceName": "@etherisc/gif-interface/contracts/components/Product.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./IProduct.sol", + "./Component.sol", + "../modules/IPolicy.sol", + "../services/IInstanceService.sol", + "../services/IProductService.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "Product" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "lastModificationDate": 1686152165850, + "contentHash": "909ab67fc5c25033fe6cd364f8c056f9", + "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../IERC20.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "IERC20Metadata" + ] + }, + "/workspace/contracts/services/InstanceService.sol": { + "lastModificationDate": 1685691173023, + "contentHash": "53633366c46da099c167e69e453f519f", + "sourceName": "contracts/services/InstanceService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../modules/ComponentController.sol", + "../modules/BundleController.sol", + "../modules/PolicyController.sol", + "../modules/PoolController.sol", + "../modules/TreasuryModule.sol", + "../shared/CoreController.sol", + "../services/InstanceOperatorService.sol", + "@etherisc/gif-interface/contracts/components/IComponent.sol", + "@etherisc/gif-interface/contracts/components/IOracle.sol", + "@etherisc/gif-interface/contracts/components/IProduct.sol", + "@etherisc/gif-interface/contracts/components/IRiskpool.sol", + "@etherisc/gif-interface/contracts/modules/IPolicy.sol", + "@etherisc/gif-interface/contracts/modules/IRegistry.sol", + "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol", + "@etherisc/gif-interface/contracts/services/IInstanceService.sol", + "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol", + "@etherisc/gif-interface/contracts/services/IOracleService.sol", + "@etherisc/gif-interface/contracts/services/IProductService.sol", + "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol", + "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol", + "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "@openzeppelin/contracts/token/ERC721/IERC721.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "InstanceService" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol": { + "lastModificationDate": 1686152143912, + "contentHash": "c40a38ffa47bb6f5d4d9b1e3e77e67de", + "sourceName": "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./Riskpool.sol", + "../modules/IBundle.sol", + "../modules/IPolicy.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "BasicRiskpool" + ] + }, + "/workspace/contracts/test/TestRiskpool.sol": { + "lastModificationDate": 1685691173402, + "contentHash": "a71e64f20da33e890c411d56c14115a9", + "sourceName": "contracts/test/TestRiskpool.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol", + "@etherisc/gif-interface/contracts/modules/IBundle.sol", + "@etherisc/gif-interface/contracts/modules/IPolicy.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "TestRiskpool" + ] + }, + "/workspace/contracts/services/RiskpoolService.sol": { + "lastModificationDate": 1685691173043, + "contentHash": "8629073d8ff486b69e1c12d09affa31a", + "sourceName": "contracts/services/RiskpoolService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../modules/BundleController.sol", + "../modules/ComponentController.sol", + "../modules/TreasuryModule.sol", + "../shared/CoreController.sol", + "@etherisc/gif-interface/contracts/components/IComponent.sol", + "@etherisc/gif-interface/contracts/modules/IBundle.sol", + "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "RiskpoolService" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol": { + "lastModificationDate": 1686152087650, + "contentHash": "6baa887a798e95b14f34e093f117e9b2", + "sourceName": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../beacon/IBeacon.sol", + "../../interfaces/draft-IERC1822.sol", + "../../utils/Address.sol", + "../../utils/StorageSlot.sol" + ], + "versionPragmas": [ + "^0.8.2" + ], + "artifacts": [ + "ERC1967Upgrade" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": { + "lastModificationDate": 1686152165865, + "contentHash": "f993f8f50186952a59ee5e3a30b68222", + "sourceName": "@openzeppelin/contracts/utils/StorageSlot.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "StorageSlot" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": { + "lastModificationDate": 1686152087112, + "contentHash": "2858d98e74e67987ec81b39605230b74", + "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC1822.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "IERC1822Proxiable" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { + "lastModificationDate": 1686152165439, + "contentHash": "b6bd23bf19e90b771337037706470933", + "sourceName": "@openzeppelin/contracts/proxy/beacon/IBeacon.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "IBeacon" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol": { + "lastModificationDate": 1686152087623, + "contentHash": "3fc3c7c0a2956f36e766691bb9473b06", + "sourceName": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../Proxy.sol", + "./ERC1967Upgrade.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "ERC1967Proxy" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/proxy/Proxy.sol": { + "lastModificationDate": 1686152165439, + "contentHash": "40b3d81a836d50ff47e03893dcaaf204", + "sourceName": "@openzeppelin/contracts/proxy/Proxy.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "Proxy" + ] + }, + "/workspace/contracts/shared/CoreProxy.sol": { + "lastModificationDate": 1685691173063, + "contentHash": "6c9f1c28205936ec0b1b752c1385cde2", + "sourceName": "contracts/shared/CoreProxy.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@etherisc/gif-interface/contracts/shared/ICoreProxy.sol", + "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "CoreProxy" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol": { + "lastModificationDate": 1686152144130, + "contentHash": "eae75573fa598f626a54b6ebe69c867e", + "sourceName": "@etherisc/gif-interface/contracts/shared/ICoreProxy.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "ICoreProxy" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { + "lastModificationDate": 1686152165851, + "contentHash": "3a843b05b85a270e9455e3d2e804e633", + "sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../IERC20.sol", + "../extensions/draft-IERC20Permit.sol", + "../../../utils/Address.sol" + ], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "SafeERC20" + ] + }, + "/workspace/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": { + "lastModificationDate": 1686152087116, + "contentHash": "fb77f144244b9ab12533aa6ce85ef8c5", + "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "^0.8.0" + ], + "artifacts": [ + "IERC20Permit" + ] + }, + "/workspace/contracts/tokens/RiskpoolToken.sol": { + "lastModificationDate": 1685691173427, + "contentHash": "44916e05e084c1996105b26019a87161", + "sourceName": "contracts/tokens/RiskpoolToken.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/token/ERC20/ERC20.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "RiskpoolToken" + ] + }, + "/workspace/contracts/test/TestCompromisedProduct.sol": { + "lastModificationDate": 1685691173343, + "contentHash": "b77f34d647b284bb67f783c2b2d47e74", + "sourceName": "contracts/test/TestCompromisedProduct.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@etherisc/gif-interface/contracts/components/IComponent.sol", + "@etherisc/gif-interface/contracts/components/IProduct.sol", + "@etherisc/gif-interface/contracts/modules/IAccess.sol", + "@etherisc/gif-interface/contracts/modules/IPolicy.sol", + "@etherisc/gif-interface/contracts/modules/IRegistry.sol", + "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol", + "@etherisc/gif-interface/contracts/services/IProductService.sol", + "@etherisc/gif-interface/contracts/services/IInstanceService.sol", + "@openzeppelin/contracts/access/Ownable.sol", + "@openzeppelin/contracts/token/ERC20/ERC20.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "TestCompromisedProduct" + ] + }, + "/workspace/contracts/modules/LicenseController.sol": { + "lastModificationDate": 1685974557686, + "contentHash": "b6dc729091fceba3bf112ea71ca4aee1", + "sourceName": "contracts/modules/LicenseController.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./ComponentController.sol", + "../shared/CoreController.sol", + "@etherisc/gif-interface/contracts/components/IComponent.sol", + "@etherisc/gif-interface/contracts/components/IProduct.sol", + "@etherisc/gif-interface/contracts/modules/ILicense.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "LicenseController" + ] + }, + "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/ILicense.sol": { + "lastModificationDate": 1686152144022, + "contentHash": "fd028b7b240f0e7770453bcb456a1f6a", + "sourceName": "@etherisc/gif-interface/contracts/modules/ILicense.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "ILicense" + ] + }, + "/workspace/contracts/services/ProductService.sol": { + "lastModificationDate": 1685691173037, + "contentHash": "77556c2e86106abb18f7c199cc55d639", + "sourceName": "contracts/services/ProductService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../shared/WithRegistry.sol", + "@etherisc/gif-interface/contracts/modules/ILicense.sol", + "@openzeppelin/contracts/utils/Context.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "ProductService" + ] + }, + "/workspace/contracts/shared/WithRegistry.sol": { + "lastModificationDate": 1685691173076, + "contentHash": "96d8022e284d1acc65f0ea6eccd98f86", + "sourceName": "contracts/shared/WithRegistry.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@etherisc/gif-interface/contracts/modules/IRegistry.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "WithRegistry" + ] + }, + "/workspace/contracts/modules/RegistryController.sol": { + "lastModificationDate": 1685974557684, + "contentHash": "d3b4702df833a7d9a29d696683f5d970", + "sourceName": "contracts/modules/RegistryController.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../shared/CoreController.sol", + "@etherisc/gif-interface/contracts/modules/IRegistry.sol", + "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "@openzeppelin/contracts/utils/Strings.sol", + "@openzeppelin/contracts/utils/structs/EnumerableSet.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "RegistryController" + ] + }, + "/workspace/contracts/test/TestRegistryControllerUpdated.sol": { + "lastModificationDate": 1685691173394, + "contentHash": "70d6f19fd189b4d624f75d21732926be", + "sourceName": "contracts/test/TestRegistryControllerUpdated.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../modules/RegistryController.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "TestRegistryControllerUpdated" + ] + }, + "/workspace/contracts/services/ComponentOwnerService.sol": { + "lastModificationDate": 1685691173009, + "contentHash": "12e2008b93e92eb60ad5a259a0bb59db", + "sourceName": "contracts/services/ComponentOwnerService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../modules/ComponentController.sol", + "../modules/PoolController.sol", + "../shared/CoreController.sol", + "@etherisc/gif-interface/contracts/components/IComponent.sol", + "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "ComponentOwnerService" + ] + }, + "/workspace/contracts/modules/QueryModule.sol": { + "lastModificationDate": 1685974557684, + "contentHash": "5dbf2342023d4243e94b5f427b4eaa85", + "sourceName": "contracts/modules/QueryModule.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "./ComponentController.sol", + "../shared/CoreController.sol", + "@etherisc/gif-interface/contracts/components/IComponent.sol", + "@etherisc/gif-interface/contracts/components/IOracle.sol", + "@etherisc/gif-interface/contracts/modules/IQuery.sol", + "@etherisc/gif-interface/contracts/services/IInstanceService.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "QueryModule" + ] + }, + "/workspace/contracts/services/OracleService.sol": { + "lastModificationDate": 1685691173030, + "contentHash": "9e124d6210e6987368c5ab3a205a34d1", + "sourceName": "contracts/services/OracleService.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../shared/CoreController.sol", + "@etherisc/gif-interface/contracts/modules/IQuery.sol", + "@etherisc/gif-interface/contracts/services/IOracleService.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "OracleService" + ] + }, + "/workspace/contracts/flows/PolicyDefaultFlow.sol": { + "lastModificationDate": 1685691172920, + "contentHash": "cf1ef988b68981752230674e53236069", + "sourceName": "contracts/flows/PolicyDefaultFlow.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../modules/ComponentController.sol", + "../modules/PoolController.sol", + "../modules/PolicyController.sol", + "../modules/QueryModule.sol", + "../modules/TreasuryModule.sol", + "../shared/WithRegistry.sol", + "@etherisc/gif-interface/contracts/modules/IPolicy.sol", + "@etherisc/gif-interface/contracts/modules/IRegistry.sol", + "@etherisc/gif-interface/contracts/modules/IPool.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "PolicyDefaultFlow" + ] + }, + "/workspace/contracts/examples/AyiiProduct.sol": { + "lastModificationDate": 1685691172873, + "contentHash": "155f3ed8fd66fd6a2a5c6c0e51441a31", + "sourceName": "contracts/examples/AyiiProduct.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../shared/TransferHelper.sol", + "@openzeppelin/contracts/access/AccessControl.sol", + "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", + "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "@etherisc/gif-interface/contracts/components/Product.sol", + "../modules/PolicyController.sol", + "../modules/AccessController.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "AyiiProduct" + ] + }, + "/workspace/contracts/test/TestTransferFrom.sol": { + "lastModificationDate": 1685691173408, + "contentHash": "aaf2320b5d86f71e8e41426cf9d46d12", + "sourceName": "contracts/test/TestTransferFrom.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "../shared/TransferHelper.sol", + "@openzeppelin/contracts/token/ERC20/IERC20.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "TestTransferFrom" + ] + }, + "/workspace/contracts/examples/AyiiRiskpool.sol": { + "lastModificationDate": 1685691172880, + "contentHash": "e35f9566cbdfa3ef4e131fdab285abc0", + "sourceName": "contracts/examples/AyiiRiskpool.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/access/AccessControl.sol", + "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol", + "@etherisc/gif-interface/contracts/modules/IBundle.sol", + "@etherisc/gif-interface/contracts/modules/IPolicy.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "AyiiRiskpool" + ] + }, + "/workspace/contracts/test/TestCoinAlternativeImplementation.sol": { + "lastModificationDate": 1685691173336, + "contentHash": "0c0817956ec384e8d04d23460f176547", + "sourceName": "contracts/test/TestCoinAlternativeImplementation.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/token/ERC20/ERC20.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "TestCoinAlternativeImplementation" + ] + }, + "/workspace/contracts/test/TestCoin.sol": { + "lastModificationDate": 1685691173103, + "contentHash": "bfd23922a01d38809a98b2123ddf3d1a", + "sourceName": "contracts/test/TestCoin.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/token/ERC20/ERC20.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "TestCoin", + "TestCoinX" + ] + }, + "/workspace/contracts/examples/mock/ChainlinkToken.sol": { + "lastModificationDate": 1685691172901, + "contentHash": "77acf2ef516bcd8fca65283919b259f3", + "sourceName": "contracts/examples/mock/ChainlinkToken.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/token/ERC20/ERC20.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "ChainlinkToken", + "ERC677Receiver" + ] + }, + "/workspace/contracts/examples/mock/ChainlinkOperator.sol": { + "lastModificationDate": 1685691172892, + "contentHash": "39f2a5b7862445bfc6b0be5438776f25", + "sourceName": "contracts/examples/mock/ChainlinkOperator.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/access/Ownable.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "ChainlinkOperator" + ] + }, + "/workspace/contracts/test/TestOracle.sol": { + "lastModificationDate": 1685691173356, + "contentHash": "557d61d4001a6a3d913622280bd02c65", + "sourceName": "contracts/test/TestOracle.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [ + "@etherisc/gif-interface/contracts/components/Oracle.sol" + ], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "TestOracle" + ] + }, + "/workspace/contracts/test/TestRegistryCompromisedController.sol": { + "lastModificationDate": 1685691173371, + "contentHash": "544c77171322d2602d52889d353186c6", + "sourceName": "contracts/test/TestRegistryCompromisedController.sol", + "solcConfig": { + "version": "0.8.2", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "imports": [], + "versionPragmas": [ + "0.8.2" + ], + "artifacts": [ + "TestRegistryCompromisedController" + ] + } + } +} diff --git a/docs/antora.yml b/docs/antora.yml new file mode 100644 index 00000000..3c6dbe13 --- /dev/null +++ b/docs/antora.yml @@ -0,0 +1,6 @@ +name: contracts +title: Contracts +version: 2.x +nav: + - modules/ROOT/nav.adoc + - modules/api/nav.adoc diff --git a/docs/config.js b/docs/config.js new file mode 100644 index 00000000..fbea3e2d --- /dev/null +++ b/docs/config.js @@ -0,0 +1,22 @@ +const path = require('path'); +const fs = require('fs'); + +/** @type import('solidity-docgen/dist/config').UserConfig */ +module.exports = { + outputDir: 'docs/modules/api/pages', + templates: 'docs/templates', + exclude: ['mocks'], + pageExtension: '.adoc', + pages: (_, file, config) => { + // For each contract file, find the closest README.adoc and return its location as the output page path. + const sourcesDir = path.resolve(config.root, config.sourcesDir); + let dir = path.resolve(config.root, file.absolutePath); + while (dir.startsWith(sourcesDir)) { + dir = path.dirname(dir); + if (fs.existsSync(path.join(dir, 'README.adoc'))) { + const result = path.relative(sourcesDir, dir) + config.pageExtension; + return result; + } + } + }, +}; diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc new file mode 100644 index 00000000..6e115007 --- /dev/null +++ b/docs/modules/ROOT/nav.adoc @@ -0,0 +1,21 @@ +* xref:index.adoc[Overview] +//// +* xref:extending-contracts.adoc[Extending Contracts] +* xref:upgradeable.adoc[Using with Upgrades] + +* xref:releases-stability.adoc[Releases & Stability] + +* xref:access-control.adoc[Access Control] + +* xref:tokens.adoc[Tokens] +** xref:erc20.adoc[ERC20] +*** xref:erc20-supply.adoc[Creating Supply] +** xref:erc721.adoc[ERC721] +** xref:erc777.adoc[ERC777] +** xref:erc1155.adoc[ERC1155] + +* xref:gsn.adoc[Gas Station Network] +** xref:gsn-strategies.adoc[Strategies] + +* xref:utilities.adoc[Utilities] +//// \ No newline at end of file diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc new file mode 100644 index 00000000..3106b163 --- /dev/null +++ b/docs/modules/ROOT/pages/index.adoc @@ -0,0 +1,73 @@ += GIF Contracts + +*Secure and audited smart contracts to develop decentralized insurance applications.* + + * GIF Contracts is a library of smart contracts for decentralized insurance applications. + + + +== Overview + +[[install]] +=== Installation + +```console +$ npm install @etherisc/gif-contracts +``` + +Etherisc GIF Contracts features a xref:releases-stability.adoc#api-stability[stable API], which means your contracts won't break unexpectedly when upgrading to a newer minor version. + +[[usage]] +=== Usage + +Once installed, you can use the contracts in the library by importing them: + +[source,solidity] +---- +// contracts/MyProduct.sol +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.2; + +import "@etherisc/gif-interface/contracts/components/Product.sol"; + +contract MyProduct is Product { + + bytes32 public constant POLICY_FLOW = "PolicyDefaultFlow"; + + constructor( + bytes32 productName, + address token, + address registry, + uint256 riskpoolId, + ) + Product(productName, token, POLICY_FLOW, riskpoolId, registry) + { + } +} +---- + +TIP: If you're new to smart contract development, head to ... +// TODO: Add resource here +to learn about creating a new project and compiling your contracts. + +To keep your system secure, you should **always** use the installed code as-is, and neither copy-paste it from online sources, nor modify it yourself. The library is designed so that only the contracts and functions you use are deployed, so you don't need to worry about it needlessly increasing gas costs. + +[[next-steps]] +== Learn More + +The guides in the sidebar will teach about different concepts, and how to use the related contracts that GIF Contracts provides: + +//// +* xref:access-control.adoc[Access Control]: decide who can perform each of the actions on your system. +* xref:tokens.adoc[Tokens]: create tradable assets or collectibles, like the well known xref:erc20.adoc[ERC20] and xref:erc721.adoc[ERC721] standards. +* xref:gsn.adoc[Gas Station Network]: let your users interact with your contracts without having to pay for gas themselves. +* xref:utilities.adoc[Utilities]: generic useful tools, including non-overflowing math, signature verification, and trustless paying systems. + +The xref:api:token/ERC20.adoc[full API] is also thoroughly documented, and serves as a great reference when developing your smart contract application. You can also ask for help or follow Contracts' development in the https://forum.openzeppelin.com[community forum]. + +Finally, you may want to take a look at the https://blog.openzeppelin.com/guides/[guides on our blog], which cover several common use cases and good practices.. The following articles provide great background reading, though please note, some of the referenced tools have changed as the tooling in the ecosystem continues to rapidly evolve. + +* https://blog.openzeppelin.com/the-hitchhikers-guide-to-smart-contracts-in-ethereum-848f08001f05[The Hitchhiker’s Guide to Smart Contracts in Ethereum] will help you get an overview of the various tools available for smart contract development, and help you set up your environment. +* https://blog.openzeppelin.com/a-gentle-introduction-to-ethereum-programming-part-1-783cc7796094[A Gentle Introduction to Ethereum Programming, Part 1] provides very useful information on an introductory level, including many basic concepts from the Ethereum platform. +* For a more in-depth dive, you may read the guide https://blog.openzeppelin.com/designing-the-architecture-for-your-ethereum-application-9cec086f8317[Designing the architecture for your Ethereum application], which discusses how to better structure your application and its relationship to the real world. +//// diff --git a/docs/modules/api/nav.adoc b/docs/modules/api/nav.adoc new file mode 100644 index 00000000..1191f469 --- /dev/null +++ b/docs/modules/api/nav.adoc @@ -0,0 +1,7 @@ +.API +* xref:flows.adoc[Flows] +* xref:modules.adoc[Modules] +* xref:services.adoc[Services] +* xref:shared.adoc[Shared] +* xref:test.adoc[Test] +* xref:tokens.adoc[Tokens] diff --git a/docs/modules/api/pages/flows.adoc b/docs/modules/api/pages/flows.adoc new file mode 100644 index 00000000..a744f41d --- /dev/null +++ b/docs/modules/api/pages/flows.adoc @@ -0,0 +1,299 @@ +:github-icon: pass:[] +:xref-PolicyDefaultFlow-onlyActivePolicy-bytes32-: xref:flows.adoc#PolicyDefaultFlow-onlyActivePolicy-bytes32- +:xref-PolicyDefaultFlow-onlyExpiredPolicy-bytes32-: xref:flows.adoc#PolicyDefaultFlow-onlyExpiredPolicy-bytes32- +:xref-PolicyDefaultFlow-notClosedPolicy-bytes32-: xref:flows.adoc#PolicyDefaultFlow-notClosedPolicy-bytes32- +:xref-PolicyDefaultFlow-onlyResponsibleProduct-bytes32-: xref:flows.adoc#PolicyDefaultFlow-onlyResponsibleProduct-bytes32- +:xref-PolicyDefaultFlow-onlyMatchingProduct-uint256-: xref:flows.adoc#PolicyDefaultFlow-onlyMatchingProduct-uint256- +:xref-PolicyDefaultFlow-constructor-address-: xref:flows.adoc#PolicyDefaultFlow-constructor-address- +:xref-PolicyDefaultFlow-newApplication-address-uint256-uint256-bytes-bytes-: xref:flows.adoc#PolicyDefaultFlow-newApplication-address-uint256-uint256-bytes-bytes- +:xref-PolicyDefaultFlow-revoke-bytes32-: xref:flows.adoc#PolicyDefaultFlow-revoke-bytes32- +:xref-PolicyDefaultFlow-underwrite-bytes32-: xref:flows.adoc#PolicyDefaultFlow-underwrite-bytes32- +:xref-PolicyDefaultFlow-collectPremium-bytes32-uint256-: xref:flows.adoc#PolicyDefaultFlow-collectPremium-bytes32-uint256- +:xref-PolicyDefaultFlow-adjustPremiumSumInsured-bytes32-uint256-uint256-: xref:flows.adoc#PolicyDefaultFlow-adjustPremiumSumInsured-bytes32-uint256-uint256- +:xref-PolicyDefaultFlow-decline-bytes32-: xref:flows.adoc#PolicyDefaultFlow-decline-bytes32- +:xref-PolicyDefaultFlow-expire-bytes32-: xref:flows.adoc#PolicyDefaultFlow-expire-bytes32- +:xref-PolicyDefaultFlow-close-bytes32-: xref:flows.adoc#PolicyDefaultFlow-close-bytes32- +:xref-PolicyDefaultFlow-newClaim-bytes32-uint256-bytes-: xref:flows.adoc#PolicyDefaultFlow-newClaim-bytes32-uint256-bytes- +:xref-PolicyDefaultFlow-confirmClaim-bytes32-uint256-uint256-: xref:flows.adoc#PolicyDefaultFlow-confirmClaim-bytes32-uint256-uint256- +:xref-PolicyDefaultFlow-declineClaim-bytes32-uint256-: xref:flows.adoc#PolicyDefaultFlow-declineClaim-bytes32-uint256- +:xref-PolicyDefaultFlow-closeClaim-bytes32-uint256-: xref:flows.adoc#PolicyDefaultFlow-closeClaim-bytes32-uint256- +:xref-PolicyDefaultFlow-newPayout-bytes32-uint256-uint256-bytes-: xref:flows.adoc#PolicyDefaultFlow-newPayout-bytes32-uint256-uint256-bytes- +:xref-PolicyDefaultFlow-processPayout-bytes32-uint256-: xref:flows.adoc#PolicyDefaultFlow-processPayout-bytes32-uint256- +:xref-PolicyDefaultFlow-request-bytes32-bytes-string-address-uint256-: xref:flows.adoc#PolicyDefaultFlow-request-bytes32-bytes-string-address-uint256- +:xref-PolicyDefaultFlow-cancelRequest-uint256-: xref:flows.adoc#PolicyDefaultFlow-cancelRequest-uint256- +:xref-PolicyDefaultFlow-getApplicationData-bytes32-: xref:flows.adoc#PolicyDefaultFlow-getApplicationData-bytes32- +:xref-PolicyDefaultFlow-getClaimData-bytes32-uint256-: xref:flows.adoc#PolicyDefaultFlow-getClaimData-bytes32-uint256- +:xref-PolicyDefaultFlow-getPayoutData-bytes32-uint256-: xref:flows.adoc#PolicyDefaultFlow-getPayoutData-bytes32-uint256- +:xref-PolicyDefaultFlow-getComponentContract--: xref:flows.adoc#PolicyDefaultFlow-getComponentContract-- +:xref-PolicyDefaultFlow-getPoolContract--: xref:flows.adoc#PolicyDefaultFlow-getPoolContract-- +:xref-PolicyDefaultFlow-getPolicyContract--: xref:flows.adoc#PolicyDefaultFlow-getPolicyContract-- +:xref-PolicyDefaultFlow-getQueryContract--: xref:flows.adoc#PolicyDefaultFlow-getQueryContract-- +:xref-PolicyDefaultFlow-getTreasuryContract--: xref:flows.adoc#PolicyDefaultFlow-getTreasuryContract-- +:xref-WithRegistry-getContractFromRegistry-bytes32-: xref:shared.adoc#WithRegistry-getContractFromRegistry-bytes32- +:xref-WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32-: xref:shared.adoc#WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32- +:xref-WithRegistry-getReleaseFromRegistry--: xref:shared.adoc#WithRegistry-getReleaseFromRegistry-- += Flows + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/flows + +== Contracts + +:NAME: pass:normal[xref:#PolicyDefaultFlow-NAME-bytes32[`++NAME++`]] +:onlyActivePolicy: pass:normal[xref:#PolicyDefaultFlow-onlyActivePolicy-bytes32-[`++onlyActivePolicy++`]] +:onlyExpiredPolicy: pass:normal[xref:#PolicyDefaultFlow-onlyExpiredPolicy-bytes32-[`++onlyExpiredPolicy++`]] +:notClosedPolicy: pass:normal[xref:#PolicyDefaultFlow-notClosedPolicy-bytes32-[`++notClosedPolicy++`]] +:onlyResponsibleProduct: pass:normal[xref:#PolicyDefaultFlow-onlyResponsibleProduct-bytes32-[`++onlyResponsibleProduct++`]] +:onlyMatchingProduct: pass:normal[xref:#PolicyDefaultFlow-onlyMatchingProduct-uint256-[`++onlyMatchingProduct++`]] +:constructor: pass:normal[xref:#PolicyDefaultFlow-constructor-address-[`++constructor++`]] +:newApplication: pass:normal[xref:#PolicyDefaultFlow-newApplication-address-uint256-uint256-bytes-bytes-[`++newApplication++`]] +:revoke: pass:normal[xref:#PolicyDefaultFlow-revoke-bytes32-[`++revoke++`]] +:underwrite: pass:normal[xref:#PolicyDefaultFlow-underwrite-bytes32-[`++underwrite++`]] +:collectPremium: pass:normal[xref:#PolicyDefaultFlow-collectPremium-bytes32-uint256-[`++collectPremium++`]] +:adjustPremiumSumInsured: pass:normal[xref:#PolicyDefaultFlow-adjustPremiumSumInsured-bytes32-uint256-uint256-[`++adjustPremiumSumInsured++`]] +:decline: pass:normal[xref:#PolicyDefaultFlow-decline-bytes32-[`++decline++`]] +:expire: pass:normal[xref:#PolicyDefaultFlow-expire-bytes32-[`++expire++`]] +:close: pass:normal[xref:#PolicyDefaultFlow-close-bytes32-[`++close++`]] +:newClaim: pass:normal[xref:#PolicyDefaultFlow-newClaim-bytes32-uint256-bytes-[`++newClaim++`]] +:confirmClaim: pass:normal[xref:#PolicyDefaultFlow-confirmClaim-bytes32-uint256-uint256-[`++confirmClaim++`]] +:declineClaim: pass:normal[xref:#PolicyDefaultFlow-declineClaim-bytes32-uint256-[`++declineClaim++`]] +:closeClaim: pass:normal[xref:#PolicyDefaultFlow-closeClaim-bytes32-uint256-[`++closeClaim++`]] +:newPayout: pass:normal[xref:#PolicyDefaultFlow-newPayout-bytes32-uint256-uint256-bytes-[`++newPayout++`]] +:processPayout: pass:normal[xref:#PolicyDefaultFlow-processPayout-bytes32-uint256-[`++processPayout++`]] +:request: pass:normal[xref:#PolicyDefaultFlow-request-bytes32-bytes-string-address-uint256-[`++request++`]] +:cancelRequest: pass:normal[xref:#PolicyDefaultFlow-cancelRequest-uint256-[`++cancelRequest++`]] +:getApplicationData: pass:normal[xref:#PolicyDefaultFlow-getApplicationData-bytes32-[`++getApplicationData++`]] +:getClaimData: pass:normal[xref:#PolicyDefaultFlow-getClaimData-bytes32-uint256-[`++getClaimData++`]] +:getPayoutData: pass:normal[xref:#PolicyDefaultFlow-getPayoutData-bytes32-uint256-[`++getPayoutData++`]] +:getComponentContract: pass:normal[xref:#PolicyDefaultFlow-getComponentContract--[`++getComponentContract++`]] +:getPoolContract: pass:normal[xref:#PolicyDefaultFlow-getPoolContract--[`++getPoolContract++`]] +:getPolicyContract: pass:normal[xref:#PolicyDefaultFlow-getPolicyContract--[`++getPolicyContract++`]] +:getQueryContract: pass:normal[xref:#PolicyDefaultFlow-getQueryContract--[`++getQueryContract++`]] +:getTreasuryContract: pass:normal[xref:#PolicyDefaultFlow-getTreasuryContract--[`++getTreasuryContract++`]] + +[.contract] +[[PolicyDefaultFlow]] +=== `++PolicyDefaultFlow++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/flows/PolicyDefaultFlow.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/flows/PolicyDefaultFlow.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-PolicyDefaultFlow-onlyActivePolicy-bytes32-}[`++onlyActivePolicy(processId)++`] +* {xref-PolicyDefaultFlow-onlyExpiredPolicy-bytes32-}[`++onlyExpiredPolicy(processId)++`] +* {xref-PolicyDefaultFlow-notClosedPolicy-bytes32-}[`++notClosedPolicy(processId)++`] +* {xref-PolicyDefaultFlow-onlyResponsibleProduct-bytes32-}[`++onlyResponsibleProduct(processId)++`] +* {xref-PolicyDefaultFlow-onlyMatchingProduct-uint256-}[`++onlyMatchingProduct(requestId)++`] +-- + +[.contract-index] +.Functions +-- +* {xref-PolicyDefaultFlow-constructor-address-}[`++constructor(_registry)++`] +* {xref-PolicyDefaultFlow-newApplication-address-uint256-uint256-bytes-bytes-}[`++newApplication(owner, premiumAmount, sumInsuredAmount, metaData, applicationData)++`] +* {xref-PolicyDefaultFlow-revoke-bytes32-}[`++revoke(processId)++`] +* {xref-PolicyDefaultFlow-underwrite-bytes32-}[`++underwrite(processId)++`] +* {xref-PolicyDefaultFlow-collectPremium-bytes32-uint256-}[`++collectPremium(processId, amount)++`] +* {xref-PolicyDefaultFlow-adjustPremiumSumInsured-bytes32-uint256-uint256-}[`++adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount)++`] +* {xref-PolicyDefaultFlow-decline-bytes32-}[`++decline(processId)++`] +* {xref-PolicyDefaultFlow-expire-bytes32-}[`++expire(processId)++`] +* {xref-PolicyDefaultFlow-close-bytes32-}[`++close(processId)++`] +* {xref-PolicyDefaultFlow-newClaim-bytes32-uint256-bytes-}[`++newClaim(processId, claimAmount, data)++`] +* {xref-PolicyDefaultFlow-confirmClaim-bytes32-uint256-uint256-}[`++confirmClaim(processId, claimId, confirmedAmount)++`] +* {xref-PolicyDefaultFlow-declineClaim-bytes32-uint256-}[`++declineClaim(processId, claimId)++`] +* {xref-PolicyDefaultFlow-closeClaim-bytes32-uint256-}[`++closeClaim(processId, claimId)++`] +* {xref-PolicyDefaultFlow-newPayout-bytes32-uint256-uint256-bytes-}[`++newPayout(processId, claimId, amount, data)++`] +* {xref-PolicyDefaultFlow-processPayout-bytes32-uint256-}[`++processPayout(processId, payoutId)++`] +* {xref-PolicyDefaultFlow-request-bytes32-bytes-string-address-uint256-}[`++request(processId, _input, _callbackMethodName, _callbackContractAddress, _responsibleOracleId)++`] +* {xref-PolicyDefaultFlow-cancelRequest-uint256-}[`++cancelRequest(requestId)++`] +* {xref-PolicyDefaultFlow-getApplicationData-bytes32-}[`++getApplicationData(processId)++`] +* {xref-PolicyDefaultFlow-getClaimData-bytes32-uint256-}[`++getClaimData(processId, claimId)++`] +* {xref-PolicyDefaultFlow-getPayoutData-bytes32-uint256-}[`++getPayoutData(processId, payoutId)++`] +* {xref-PolicyDefaultFlow-getComponentContract--}[`++getComponentContract()++`] +* {xref-PolicyDefaultFlow-getPoolContract--}[`++getPoolContract()++`] +* {xref-PolicyDefaultFlow-getPolicyContract--}[`++getPolicyContract()++`] +* {xref-PolicyDefaultFlow-getQueryContract--}[`++getQueryContract()++`] +* {xref-PolicyDefaultFlow-getTreasuryContract--}[`++getTreasuryContract()++`] + +[.contract-subindex-inherited] +.WithRegistry +* {xref-WithRegistry-getContractFromRegistry-bytes32-}[`++getContractFromRegistry(_contractName)++`] +* {xref-WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32-}[`++getContractInReleaseFromRegistry(_release, _contractName)++`] +* {xref-WithRegistry-getReleaseFromRegistry--}[`++getReleaseFromRegistry()++`] + +-- + +[.contract-item] +[[PolicyDefaultFlow-onlyActivePolicy-bytes32-]] +==== `[.contract-item-name]#++onlyActivePolicy++#++(bytes32 processId)++` [.item-kind]#modifier# + +[.contract-item] +[[PolicyDefaultFlow-onlyExpiredPolicy-bytes32-]] +==== `[.contract-item-name]#++onlyExpiredPolicy++#++(bytes32 processId)++` [.item-kind]#modifier# + +[.contract-item] +[[PolicyDefaultFlow-notClosedPolicy-bytes32-]] +==== `[.contract-item-name]#++notClosedPolicy++#++(bytes32 processId)++` [.item-kind]#modifier# + +[.contract-item] +[[PolicyDefaultFlow-onlyResponsibleProduct-bytes32-]] +==== `[.contract-item-name]#++onlyResponsibleProduct++#++(bytes32 processId)++` [.item-kind]#modifier# + +[.contract-item] +[[PolicyDefaultFlow-onlyMatchingProduct-uint256-]] +==== `[.contract-item-name]#++onlyMatchingProduct++#++(uint256 requestId)++` [.item-kind]#modifier# + +[.contract-item] +[[PolicyDefaultFlow-constructor-address-]] +==== `[.contract-item-name]#++constructor++#++(address _registry)++` [.item-kind]#public# + +Constructor function that initializes the contract with a given registry address. + +[.contract-item] +[[PolicyDefaultFlow-newApplication-address-uint256-uint256-bytes-bytes-]] +==== `[.contract-item-name]#++newApplication++#++(address owner, uint256 premiumAmount, uint256 sumInsuredAmount, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# + +Creates a new insurance application and returns the process ID. + +[.contract-item] +[[PolicyDefaultFlow-revoke-bytes32-]] +==== `[.contract-item-name]#++revoke++#++(bytes32 processId)++` [.item-kind]#external# + +Revokes an application for a specific processId. + +[.contract-item] +[[PolicyDefaultFlow-underwrite-bytes32-]] +==== `[.contract-item-name]#++underwrite++#++(bytes32 processId) → bool success++` [.item-kind]#external# + +Attempts to get the collateral to secure the policy. + +[.contract-item] +[[PolicyDefaultFlow-collectPremium-bytes32-uint256-]] +==== `[.contract-item-name]#++collectPremium++#++(bytes32 processId, uint256 amount) → bool success, uint256 feeAmount, uint256 netPremiumAmount++` [.item-kind]#public# + +Collects the premium for a given policy and updates the book keeping of the policy and the risk pool. + +[.contract-item] +[[PolicyDefaultFlow-adjustPremiumSumInsured-bytes32-uint256-uint256-]] +==== `[.contract-item-name]#++adjustPremiumSumInsured++#++(bytes32 processId, uint256 expectedPremiumAmount, uint256 sumInsuredAmount)++` [.item-kind]#external# + +Adjusts the premium and sum insured amounts of a policy. + +[.contract-item] +[[PolicyDefaultFlow-decline-bytes32-]] +==== `[.contract-item-name]#++decline++#++(bytes32 processId)++` [.item-kind]#external# + +Allows the responsible product to decline an application for a policy. + +[.contract-item] +[[PolicyDefaultFlow-expire-bytes32-]] +==== `[.contract-item-name]#++expire++#++(bytes32 processId)++` [.item-kind]#external# + +Expire the policy identified by the given process ID. + +[.contract-item] +[[PolicyDefaultFlow-close-bytes32-]] +==== `[.contract-item-name]#++close++#++(bytes32 processId)++` [.item-kind]#external# + +Closes a policy and releases the corresponding funds from the pool. + +[.contract-item] +[[PolicyDefaultFlow-newClaim-bytes32-uint256-bytes-]] +==== `[.contract-item-name]#++newClaim++#++(bytes32 processId, uint256 claimAmount, bytes data) → uint256 claimId++` [.item-kind]#external# + +Creates a new claim for a given process ID, claim amount and data. + +[.contract-item] +[[PolicyDefaultFlow-confirmClaim-bytes32-uint256-uint256-]] +==== `[.contract-item-name]#++confirmClaim++#++(bytes32 processId, uint256 claimId, uint256 confirmedAmount)++` [.item-kind]#external# + +Confirms a claim for a specific process and claim ID, updating the confirmed amount. + +[.contract-item] +[[PolicyDefaultFlow-declineClaim-bytes32-uint256-]] +==== `[.contract-item-name]#++declineClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# + +Allows the responsible product to decline a claim. + +[.contract-item] +[[PolicyDefaultFlow-closeClaim-bytes32-uint256-]] +==== `[.contract-item-name]#++closeClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# + +Closes a claim for a specific process and claim ID. + +[.contract-item] +[[PolicyDefaultFlow-newPayout-bytes32-uint256-uint256-bytes-]] +==== `[.contract-item-name]#++newPayout++#++(bytes32 processId, uint256 claimId, uint256 amount, bytes data) → uint256 payoutId++` [.item-kind]#external# + +Creates a new payout for a specific claim. + +[.contract-item] +[[PolicyDefaultFlow-processPayout-bytes32-uint256-]] +==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 payoutId) → bool success, uint256 feeAmount, uint256 netPayoutAmount++` [.item-kind]#external# + +Processes a payout for a specific process and payout ID. + +[.contract-item] +[[PolicyDefaultFlow-request-bytes32-bytes-string-address-uint256-]] +==== `[.contract-item-name]#++request++#++(bytes32 processId, bytes _input, string _callbackMethodName, address _callbackContractAddress, uint256 _responsibleOracleId) → uint256 _requestId++` [.item-kind]#external# + +Sends a request to the query contract to initiate a new process. + +[.contract-item] +[[PolicyDefaultFlow-cancelRequest-uint256-]] +==== `[.contract-item-name]#++cancelRequest++#++(uint256 requestId)++` [.item-kind]#external# + +Cancels a request with the given requestId. + +[.contract-item] +[[PolicyDefaultFlow-getApplicationData-bytes32-]] +==== `[.contract-item-name]#++getApplicationData++#++(bytes32 processId) → bytes++` [.item-kind]#external# + +Returns the application data associated with the given process ID. + +[.contract-item] +[[PolicyDefaultFlow-getClaimData-bytes32-uint256-]] +==== `[.contract-item-name]#++getClaimData++#++(bytes32 processId, uint256 claimId) → bytes++` [.item-kind]#external# + +Returns the claim data of a specific claim for a given process ID. + +[.contract-item] +[[PolicyDefaultFlow-getPayoutData-bytes32-uint256-]] +==== `[.contract-item-name]#++getPayoutData++#++(bytes32 processId, uint256 payoutId) → bytes++` [.item-kind]#external# + +Returns the payout data for a given process and payout ID. + +[.contract-item] +[[PolicyDefaultFlow-getComponentContract--]] +==== `[.contract-item-name]#++getComponentContract++#++() → contract ComponentController++` [.item-kind]#internal# + +Returns the ComponentController contract instance. + +[.contract-item] +[[PolicyDefaultFlow-getPoolContract--]] +==== `[.contract-item-name]#++getPoolContract++#++() → contract PoolController++` [.item-kind]#internal# + +Returns the PoolController contract instance from the registry. + +[.contract-item] +[[PolicyDefaultFlow-getPolicyContract--]] +==== `[.contract-item-name]#++getPolicyContract++#++() → contract PolicyController++` [.item-kind]#internal# + +Returns the PolicyController contract instance from the registry. + +[.contract-item] +[[PolicyDefaultFlow-getQueryContract--]] +==== `[.contract-item-name]#++getQueryContract++#++() → contract QueryModule++` [.item-kind]#internal# + +Returns the QueryModule contract instance from the registry. + +[.contract-item] +[[PolicyDefaultFlow-getTreasuryContract--]] +==== `[.contract-item-name]#++getTreasuryContract++#++() → contract TreasuryModule++` [.item-kind]#internal# + +Retrieves the TreasuryModule contract instance. + diff --git a/docs/modules/api/pages/modules.adoc b/docs/modules/api/pages/modules.adoc new file mode 100644 index 00000000..fbc56911 --- /dev/null +++ b/docs/modules/api/pages/modules.adoc @@ -0,0 +1,2229 @@ +:github-icon: pass:[] +:xref-AccessController-_afterInitialize--: xref:modules.adoc#AccessController-_afterInitialize-- +:xref-AccessController-_getName--: xref:modules.adoc#AccessController-_getName-- +:xref-AccessController-setDefaultAdminRole-address-: xref:modules.adoc#AccessController-setDefaultAdminRole-address- +:xref-AccessController-grantRole-bytes32-address-: xref:modules.adoc#AccessController-grantRole-bytes32-address- +:xref-AccessController-revokeRole-bytes32-address-: xref:modules.adoc#AccessController-revokeRole-bytes32-address- +:xref-AccessController-renounceRole-bytes32-address-: xref:modules.adoc#AccessController-renounceRole-bytes32-address- +:xref-AccessController-addRole-bytes32-: xref:modules.adoc#AccessController-addRole-bytes32- +:xref-AccessController-invalidateRole-bytes32-: xref:modules.adoc#AccessController-invalidateRole-bytes32- +:xref-AccessController-hasRole-bytes32-address-: xref:modules.adoc#AccessController-hasRole-bytes32-address- +:xref-AccessController-getDefaultAdminRole--: xref:modules.adoc#AccessController-getDefaultAdminRole-- +:xref-AccessController-getProductOwnerRole--: xref:modules.adoc#AccessController-getProductOwnerRole-- +:xref-AccessController-getOracleProviderRole--: xref:modules.adoc#AccessController-getOracleProviderRole-- +:xref-AccessController-getRiskpoolKeeperRole--: xref:modules.adoc#AccessController-getRiskpoolKeeperRole-- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-BundleController-onlyRiskpoolService--: xref:modules.adoc#BundleController-onlyRiskpoolService-- +:xref-BundleController-onlyFundableBundle-uint256-: xref:modules.adoc#BundleController-onlyFundableBundle-uint256- +:xref-BundleController-_afterInitialize--: xref:modules.adoc#BundleController-_afterInitialize-- +:xref-BundleController-create-address-uint256-bytes-uint256-: xref:modules.adoc#BundleController-create-address-uint256-bytes-uint256- +:xref-BundleController-fund-uint256-uint256-: xref:modules.adoc#BundleController-fund-uint256-uint256- +:xref-BundleController-defund-uint256-uint256-: xref:modules.adoc#BundleController-defund-uint256-uint256- +:xref-BundleController-lock-uint256-: xref:modules.adoc#BundleController-lock-uint256- +:xref-BundleController-unlock-uint256-: xref:modules.adoc#BundleController-unlock-uint256- +:xref-BundleController-close-uint256-: xref:modules.adoc#BundleController-close-uint256- +:xref-BundleController-burn-uint256-: xref:modules.adoc#BundleController-burn-uint256- +:xref-BundleController-collateralizePolicy-uint256-bytes32-uint256-: xref:modules.adoc#BundleController-collateralizePolicy-uint256-bytes32-uint256- +:xref-BundleController-processPremium-uint256-bytes32-uint256-: xref:modules.adoc#BundleController-processPremium-uint256-bytes32-uint256- +:xref-BundleController-processPayout-uint256-bytes32-uint256-: xref:modules.adoc#BundleController-processPayout-uint256-bytes32-uint256- +:xref-BundleController-releasePolicy-uint256-bytes32-: xref:modules.adoc#BundleController-releasePolicy-uint256-bytes32- +:xref-BundleController-getOwner-uint256-: xref:modules.adoc#BundleController-getOwner-uint256- +:xref-BundleController-getState-uint256-: xref:modules.adoc#BundleController-getState-uint256- +:xref-BundleController-getFilter-uint256-: xref:modules.adoc#BundleController-getFilter-uint256- +:xref-BundleController-getCapacity-uint256-: xref:modules.adoc#BundleController-getCapacity-uint256- +:xref-BundleController-getTotalValueLocked-uint256-: xref:modules.adoc#BundleController-getTotalValueLocked-uint256- +:xref-BundleController-getBalance-uint256-: xref:modules.adoc#BundleController-getBalance-uint256- +:xref-BundleController-getToken--: xref:modules.adoc#BundleController-getToken-- +:xref-BundleController-getBundle-uint256-: xref:modules.adoc#BundleController-getBundle-uint256- +:xref-BundleController-bundles--: xref:modules.adoc#BundleController-bundles-- +:xref-BundleController-unburntBundles-uint256-: xref:modules.adoc#BundleController-unburntBundles-uint256- +:xref-BundleController-_getPoolController--: xref:modules.adoc#BundleController-_getPoolController-- +:xref-BundleController-_changeState-uint256-enum-IBundle-BundleState-: xref:modules.adoc#BundleController-_changeState-uint256-enum-IBundle-BundleState- +:xref-BundleController-_setState-uint256-enum-IBundle-BundleState-: xref:modules.adoc#BundleController-_setState-uint256-enum-IBundle-BundleState- +:xref-BundleController-_checkStateTransition-enum-IBundle-BundleState-enum-IBundle-BundleState-: xref:modules.adoc#BundleController-_checkStateTransition-enum-IBundle-BundleState-enum-IBundle-BundleState- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-ComponentController-onlyComponentOwnerService--: xref:modules.adoc#ComponentController-onlyComponentOwnerService-- +:xref-ComponentController-onlyInstanceOperatorService--: xref:modules.adoc#ComponentController-onlyInstanceOperatorService-- +:xref-ComponentController-propose-contract-IComponent-: xref:modules.adoc#ComponentController-propose-contract-IComponent- +:xref-ComponentController-_persistComponent-contract-IComponent-: xref:modules.adoc#ComponentController-_persistComponent-contract-IComponent- +:xref-ComponentController-exists-uint256-: xref:modules.adoc#ComponentController-exists-uint256- +:xref-ComponentController-approve-uint256-: xref:modules.adoc#ComponentController-approve-uint256- +:xref-ComponentController-decline-uint256-: xref:modules.adoc#ComponentController-decline-uint256- +:xref-ComponentController-suspend-uint256-: xref:modules.adoc#ComponentController-suspend-uint256- +:xref-ComponentController-resume-uint256-: xref:modules.adoc#ComponentController-resume-uint256- +:xref-ComponentController-pause-uint256-: xref:modules.adoc#ComponentController-pause-uint256- +:xref-ComponentController-unpause-uint256-: xref:modules.adoc#ComponentController-unpause-uint256- +:xref-ComponentController-archiveFromComponentOwner-uint256-: xref:modules.adoc#ComponentController-archiveFromComponentOwner-uint256- +:xref-ComponentController-archiveFromInstanceOperator-uint256-: xref:modules.adoc#ComponentController-archiveFromInstanceOperator-uint256- +:xref-ComponentController-getComponent-uint256-: xref:modules.adoc#ComponentController-getComponent-uint256- +:xref-ComponentController-getComponentId-address-: xref:modules.adoc#ComponentController-getComponentId-address- +:xref-ComponentController-getComponentType-uint256-: xref:modules.adoc#ComponentController-getComponentType-uint256- +:xref-ComponentController-getComponentState-uint256-: xref:modules.adoc#ComponentController-getComponentState-uint256- +:xref-ComponentController-getOracleId-uint256-: xref:modules.adoc#ComponentController-getOracleId-uint256- +:xref-ComponentController-getRiskpoolId-uint256-: xref:modules.adoc#ComponentController-getRiskpoolId-uint256- +:xref-ComponentController-getProductId-uint256-: xref:modules.adoc#ComponentController-getProductId-uint256- +:xref-ComponentController-getRequiredRole-enum-IComponent-ComponentType-: xref:modules.adoc#ComponentController-getRequiredRole-enum-IComponent-ComponentType- +:xref-ComponentController-components--: xref:modules.adoc#ComponentController-components-- +:xref-ComponentController-products--: xref:modules.adoc#ComponentController-products-- +:xref-ComponentController-oracles--: xref:modules.adoc#ComponentController-oracles-- +:xref-ComponentController-riskpools--: xref:modules.adoc#ComponentController-riskpools-- +:xref-ComponentController-isProduct-uint256-: xref:modules.adoc#ComponentController-isProduct-uint256- +:xref-ComponentController-isOracle-uint256-: xref:modules.adoc#ComponentController-isOracle-uint256- +:xref-ComponentController-isRiskpool-uint256-: xref:modules.adoc#ComponentController-isRiskpool-uint256- +:xref-ComponentController-getPolicyFlow-uint256-: xref:modules.adoc#ComponentController-getPolicyFlow-uint256- +:xref-ComponentController-_changeState-uint256-enum-IComponent-ComponentState-: xref:modules.adoc#ComponentController-_changeState-uint256-enum-IComponent-ComponentState- +:xref-ComponentController-_checkStateTransition-enum-IComponent-ComponentState-enum-IComponent-ComponentState-: xref:modules.adoc#ComponentController-_checkStateTransition-enum-IComponent-ComponentState-enum-IComponent-ComponentState- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_afterInitialize--: xref:shared.adoc#CoreController-_afterInitialize-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-LicenseController-_afterInitialize--: xref:modules.adoc#LicenseController-_afterInitialize-- +:xref-LicenseController-getAuthorizationStatus-address-: xref:modules.adoc#LicenseController-getAuthorizationStatus-address- +:xref-LicenseController-_isValidCall-uint256-: xref:modules.adoc#LicenseController-_isValidCall-uint256- +:xref-LicenseController-_getProduct-uint256-: xref:modules.adoc#LicenseController-_getProduct-uint256- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-PolicyController-_afterInitialize--: xref:modules.adoc#PolicyController-_afterInitialize-- +:xref-PolicyController-createPolicyFlow-address-uint256-bytes-: xref:modules.adoc#PolicyController-createPolicyFlow-address-uint256-bytes- +:xref-PolicyController-createApplication-bytes32-uint256-uint256-bytes-: xref:modules.adoc#PolicyController-createApplication-bytes32-uint256-uint256-bytes- +:xref-PolicyController-collectPremium-bytes32-uint256-: xref:modules.adoc#PolicyController-collectPremium-bytes32-uint256- +:xref-PolicyController-revokeApplication-bytes32-: xref:modules.adoc#PolicyController-revokeApplication-bytes32- +:xref-PolicyController-underwriteApplication-bytes32-: xref:modules.adoc#PolicyController-underwriteApplication-bytes32- +:xref-PolicyController-declineApplication-bytes32-: xref:modules.adoc#PolicyController-declineApplication-bytes32- +:xref-PolicyController-createPolicy-bytes32-: xref:modules.adoc#PolicyController-createPolicy-bytes32- +:xref-PolicyController-adjustPremiumSumInsured-bytes32-uint256-uint256-: xref:modules.adoc#PolicyController-adjustPremiumSumInsured-bytes32-uint256-uint256- +:xref-PolicyController-expirePolicy-bytes32-: xref:modules.adoc#PolicyController-expirePolicy-bytes32- +:xref-PolicyController-closePolicy-bytes32-: xref:modules.adoc#PolicyController-closePolicy-bytes32- +:xref-PolicyController-createClaim-bytes32-uint256-bytes-: xref:modules.adoc#PolicyController-createClaim-bytes32-uint256-bytes- +:xref-PolicyController-confirmClaim-bytes32-uint256-uint256-: xref:modules.adoc#PolicyController-confirmClaim-bytes32-uint256-uint256- +:xref-PolicyController-declineClaim-bytes32-uint256-: xref:modules.adoc#PolicyController-declineClaim-bytes32-uint256- +:xref-PolicyController-closeClaim-bytes32-uint256-: xref:modules.adoc#PolicyController-closeClaim-bytes32-uint256- +:xref-PolicyController-createPayout-bytes32-uint256-uint256-bytes-: xref:modules.adoc#PolicyController-createPayout-bytes32-uint256-uint256-bytes- +:xref-PolicyController-processPayout-bytes32-uint256-: xref:modules.adoc#PolicyController-processPayout-bytes32-uint256- +:xref-PolicyController-getMetadata-bytes32-: xref:modules.adoc#PolicyController-getMetadata-bytes32- +:xref-PolicyController-getApplication-bytes32-: xref:modules.adoc#PolicyController-getApplication-bytes32- +:xref-PolicyController-getNumberOfClaims-bytes32-: xref:modules.adoc#PolicyController-getNumberOfClaims-bytes32- +:xref-PolicyController-getNumberOfPayouts-bytes32-: xref:modules.adoc#PolicyController-getNumberOfPayouts-bytes32- +:xref-PolicyController-getPolicy-bytes32-: xref:modules.adoc#PolicyController-getPolicy-bytes32- +:xref-PolicyController-getClaim-bytes32-uint256-: xref:modules.adoc#PolicyController-getClaim-bytes32-uint256- +:xref-PolicyController-getPayout-bytes32-uint256-: xref:modules.adoc#PolicyController-getPayout-bytes32-uint256- +:xref-PolicyController-processIds--: xref:modules.adoc#PolicyController-processIds-- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-PoolController-onlyInstanceOperatorService--: xref:modules.adoc#PoolController-onlyInstanceOperatorService-- +:xref-PoolController-onlyRiskpoolService--: xref:modules.adoc#PoolController-onlyRiskpoolService-- +:xref-PoolController-onlyActivePool-uint256-: xref:modules.adoc#PoolController-onlyActivePool-uint256- +:xref-PoolController-onlyActivePoolForProcess-bytes32-: xref:modules.adoc#PoolController-onlyActivePoolForProcess-bytes32- +:xref-PoolController-_afterInitialize--: xref:modules.adoc#PoolController-_afterInitialize-- +:xref-PoolController-registerRiskpool-uint256-address-address-uint256-uint256-: xref:modules.adoc#PoolController-registerRiskpool-uint256-address-address-uint256-uint256- +:xref-PoolController-setRiskpoolForProduct-uint256-uint256-: xref:modules.adoc#PoolController-setRiskpoolForProduct-uint256-uint256- +:xref-PoolController-fund-uint256-uint256-: xref:modules.adoc#PoolController-fund-uint256-uint256- +:xref-PoolController-defund-uint256-uint256-: xref:modules.adoc#PoolController-defund-uint256-uint256- +:xref-PoolController-underwrite-bytes32-: xref:modules.adoc#PoolController-underwrite-bytes32- +:xref-PoolController-calculateCollateral-uint256-uint256-: xref:modules.adoc#PoolController-calculateCollateral-uint256-uint256- +:xref-PoolController-processPremium-bytes32-uint256-: xref:modules.adoc#PoolController-processPremium-bytes32-uint256- +:xref-PoolController-processPayout-bytes32-uint256-: xref:modules.adoc#PoolController-processPayout-bytes32-uint256- +:xref-PoolController-release-bytes32-: xref:modules.adoc#PoolController-release-bytes32- +:xref-PoolController-setMaximumNumberOfActiveBundles-uint256-uint256-: xref:modules.adoc#PoolController-setMaximumNumberOfActiveBundles-uint256-uint256- +:xref-PoolController-getMaximumNumberOfActiveBundles-uint256-: xref:modules.adoc#PoolController-getMaximumNumberOfActiveBundles-uint256- +:xref-PoolController-riskpools--: xref:modules.adoc#PoolController-riskpools-- +:xref-PoolController-getRiskpool-uint256-: xref:modules.adoc#PoolController-getRiskpool-uint256- +:xref-PoolController-getRiskPoolForProduct-uint256-: xref:modules.adoc#PoolController-getRiskPoolForProduct-uint256- +:xref-PoolController-activeBundles-uint256-: xref:modules.adoc#PoolController-activeBundles-uint256- +:xref-PoolController-getActiveBundleId-uint256-uint256-: xref:modules.adoc#PoolController-getActiveBundleId-uint256-uint256- +:xref-PoolController-addBundleIdToActiveSet-uint256-uint256-: xref:modules.adoc#PoolController-addBundleIdToActiveSet-uint256-uint256- +:xref-PoolController-removeBundleIdFromActiveSet-uint256-uint256-: xref:modules.adoc#PoolController-removeBundleIdFromActiveSet-uint256-uint256- +:xref-PoolController-getFullCollateralizationLevel--: xref:modules.adoc#PoolController-getFullCollateralizationLevel-- +:xref-PoolController-_getRiskpoolComponent-struct-IPolicy-Metadata-: xref:modules.adoc#PoolController-_getRiskpoolComponent-struct-IPolicy-Metadata- +:xref-PoolController-_getRiskpoolForId-uint256-: xref:modules.adoc#PoolController-_getRiskpoolForId-uint256- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-QueryModule-onlyOracleService--: xref:modules.adoc#QueryModule-onlyOracleService-- +:xref-QueryModule-onlyResponsibleOracle-uint256-address-: xref:modules.adoc#QueryModule-onlyResponsibleOracle-uint256-address- +:xref-QueryModule-_afterInitialize--: xref:modules.adoc#QueryModule-_afterInitialize-- +:xref-QueryModule-request-bytes32-bytes-string-address-uint256-: xref:modules.adoc#QueryModule-request-bytes32-bytes-string-address-uint256- +:xref-QueryModule-respond-uint256-address-bytes-: xref:modules.adoc#QueryModule-respond-uint256-address-bytes- +:xref-QueryModule-cancel-uint256-: xref:modules.adoc#QueryModule-cancel-uint256- +:xref-QueryModule-getProcessId-uint256-: xref:modules.adoc#QueryModule-getProcessId-uint256- +:xref-QueryModule-getOracleRequestCount--: xref:modules.adoc#QueryModule-getOracleRequestCount-- +:xref-QueryModule-_getOracle-uint256-: xref:modules.adoc#QueryModule-_getOracle-uint256- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-RegistryController-initializeRegistry-bytes32-: xref:modules.adoc#RegistryController-initializeRegistry-bytes32- +:xref-RegistryController-ensureSender-address-bytes32-: xref:modules.adoc#RegistryController-ensureSender-address-bytes32- +:xref-RegistryController-getRelease--: xref:modules.adoc#RegistryController-getRelease-- +:xref-RegistryController-getContract-bytes32-: xref:modules.adoc#RegistryController-getContract-bytes32- +:xref-RegistryController-register-bytes32-address-: xref:modules.adoc#RegistryController-register-bytes32-address- +:xref-RegistryController-deregister-bytes32-: xref:modules.adoc#RegistryController-deregister-bytes32- +:xref-RegistryController-getContractInRelease-bytes32-bytes32-: xref:modules.adoc#RegistryController-getContractInRelease-bytes32-bytes32- +:xref-RegistryController-registerInRelease-bytes32-bytes32-address-: xref:modules.adoc#RegistryController-registerInRelease-bytes32-bytes32-address- +:xref-RegistryController-deregisterInRelease-bytes32-bytes32-: xref:modules.adoc#RegistryController-deregisterInRelease-bytes32-bytes32- +:xref-RegistryController-prepareRelease-bytes32-: xref:modules.adoc#RegistryController-prepareRelease-bytes32- +:xref-RegistryController-contracts--: xref:modules.adoc#RegistryController-contracts-- +:xref-RegistryController-contractName-uint256-: xref:modules.adoc#RegistryController-contractName-uint256- +:xref-RegistryController-_getContractInRelease-bytes32-bytes32-: xref:modules.adoc#RegistryController-_getContractInRelease-bytes32-bytes32- +:xref-RegistryController-_registerInRelease-bytes32-bool-bytes32-address-: xref:modules.adoc#RegistryController-_registerInRelease-bytes32-bool-bytes32-address- +:xref-RegistryController-_deregisterInRelease-bytes32-bytes32-: xref:modules.adoc#RegistryController-_deregisterInRelease-bytes32-bytes32- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_afterInitialize--: xref:shared.adoc#CoreController-_afterInitialize-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-TreasuryModule-instanceWalletDefined--: xref:modules.adoc#TreasuryModule-instanceWalletDefined-- +:xref-TreasuryModule-riskpoolWalletDefinedForProcess-bytes32-: xref:modules.adoc#TreasuryModule-riskpoolWalletDefinedForProcess-bytes32- +:xref-TreasuryModule-riskpoolWalletDefinedForBundle-uint256-: xref:modules.adoc#TreasuryModule-riskpoolWalletDefinedForBundle-uint256- +:xref-TreasuryModule-whenNotSuspended--: xref:modules.adoc#TreasuryModule-whenNotSuspended-- +:xref-TreasuryModule-onlyRiskpoolService--: xref:modules.adoc#TreasuryModule-onlyRiskpoolService-- +:xref-TreasuryModule-_afterInitialize--: xref:modules.adoc#TreasuryModule-_afterInitialize-- +:xref-TreasuryModule-suspend--: xref:modules.adoc#TreasuryModule-suspend-- +:xref-TreasuryModule-resume--: xref:modules.adoc#TreasuryModule-resume-- +:xref-TreasuryModule-setProductToken-uint256-address-: xref:modules.adoc#TreasuryModule-setProductToken-uint256-address- +:xref-TreasuryModule-setInstanceWallet-address-: xref:modules.adoc#TreasuryModule-setInstanceWallet-address- +:xref-TreasuryModule-setRiskpoolWallet-uint256-address-: xref:modules.adoc#TreasuryModule-setRiskpoolWallet-uint256-address- +:xref-TreasuryModule-createFeeSpecification-uint256-uint256-uint256-bytes-: xref:modules.adoc#TreasuryModule-createFeeSpecification-uint256-uint256-uint256-bytes- +:xref-TreasuryModule-setPremiumFees-struct-ITreasury-FeeSpecification-: xref:modules.adoc#TreasuryModule-setPremiumFees-struct-ITreasury-FeeSpecification- +:xref-TreasuryModule-setCapitalFees-struct-ITreasury-FeeSpecification-: xref:modules.adoc#TreasuryModule-setCapitalFees-struct-ITreasury-FeeSpecification- +:xref-TreasuryModule-calculateFee-uint256-uint256-: xref:modules.adoc#TreasuryModule-calculateFee-uint256-uint256- +:xref-TreasuryModule-processPremium-bytes32-: xref:modules.adoc#TreasuryModule-processPremium-bytes32- +:xref-TreasuryModule-processPremium-bytes32-uint256-: xref:modules.adoc#TreasuryModule-processPremium-bytes32-uint256- +:xref-TreasuryModule-processPayout-bytes32-uint256-: xref:modules.adoc#TreasuryModule-processPayout-bytes32-uint256- +:xref-TreasuryModule-processCapital-uint256-uint256-: xref:modules.adoc#TreasuryModule-processCapital-uint256-uint256- +:xref-TreasuryModule-processWithdrawal-uint256-uint256-: xref:modules.adoc#TreasuryModule-processWithdrawal-uint256-uint256- +:xref-TreasuryModule-getComponentToken-uint256-: xref:modules.adoc#TreasuryModule-getComponentToken-uint256- +:xref-TreasuryModule-getFeeSpecification-uint256-: xref:modules.adoc#TreasuryModule-getFeeSpecification-uint256- +:xref-TreasuryModule-getFractionFullUnit--: xref:modules.adoc#TreasuryModule-getFractionFullUnit-- +:xref-TreasuryModule-getInstanceWallet--: xref:modules.adoc#TreasuryModule-getInstanceWallet-- +:xref-TreasuryModule-getRiskpoolWallet-uint256-: xref:modules.adoc#TreasuryModule-getRiskpoolWallet-uint256- +:xref-TreasuryModule-_calculatePremiumFee-struct-ITreasury-FeeSpecification-bytes32-: xref:modules.adoc#TreasuryModule-_calculatePremiumFee-struct-ITreasury-FeeSpecification-bytes32- +:xref-TreasuryModule-_calculateFee-struct-ITreasury-FeeSpecification-uint256-: xref:modules.adoc#TreasuryModule-_calculateFee-struct-ITreasury-FeeSpecification-uint256- +:xref-TreasuryModule-_getRiskpoolWallet-bytes32-: xref:modules.adoc#TreasuryModule-_getRiskpoolWallet-bytes32- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-TreasuryModule-LogTransferHelperInputValidation1Failed-bool-address-address-: xref:modules.adoc#TreasuryModule-LogTransferHelperInputValidation1Failed-bool-address-address- +:xref-TreasuryModule-LogTransferHelperInputValidation2Failed-uint256-uint256-: xref:modules.adoc#TreasuryModule-LogTransferHelperInputValidation2Failed-uint256-uint256- +:xref-TreasuryModule-LogTransferHelperCallFailed-bool-uint256-bytes-: xref:modules.adoc#TreasuryModule-LogTransferHelperCallFailed-bool-uint256-bytes- += Modules + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/modules + +== Contracts + +:PRODUCT_OWNER_ROLE: pass:normal[xref:#AccessController-PRODUCT_OWNER_ROLE-bytes32[`++PRODUCT_OWNER_ROLE++`]] +:ORACLE_PROVIDER_ROLE: pass:normal[xref:#AccessController-ORACLE_PROVIDER_ROLE-bytes32[`++ORACLE_PROVIDER_ROLE++`]] +:RISKPOOL_KEEPER_ROLE: pass:normal[xref:#AccessController-RISKPOOL_KEEPER_ROLE-bytes32[`++RISKPOOL_KEEPER_ROLE++`]] +:validRole: pass:normal[xref:#AccessController-validRole-mapping-bytes32----bool-[`++validRole++`]] +:_afterInitialize: pass:normal[xref:#AccessController-_afterInitialize--[`++_afterInitialize++`]] +:_getName: pass:normal[xref:#AccessController-_getName--[`++_getName++`]] +:setDefaultAdminRole: pass:normal[xref:#AccessController-setDefaultAdminRole-address-[`++setDefaultAdminRole++`]] +:grantRole: pass:normal[xref:#AccessController-grantRole-bytes32-address-[`++grantRole++`]] +:revokeRole: pass:normal[xref:#AccessController-revokeRole-bytes32-address-[`++revokeRole++`]] +:renounceRole: pass:normal[xref:#AccessController-renounceRole-bytes32-address-[`++renounceRole++`]] +:addRole: pass:normal[xref:#AccessController-addRole-bytes32-[`++addRole++`]] +:invalidateRole: pass:normal[xref:#AccessController-invalidateRole-bytes32-[`++invalidateRole++`]] +:hasRole: pass:normal[xref:#AccessController-hasRole-bytes32-address-[`++hasRole++`]] +:getDefaultAdminRole: pass:normal[xref:#AccessController-getDefaultAdminRole--[`++getDefaultAdminRole++`]] +:getProductOwnerRole: pass:normal[xref:#AccessController-getProductOwnerRole--[`++getProductOwnerRole++`]] +:getOracleProviderRole: pass:normal[xref:#AccessController-getOracleProviderRole--[`++getOracleProviderRole++`]] +:getRiskpoolKeeperRole: pass:normal[xref:#AccessController-getRiskpoolKeeperRole--[`++getRiskpoolKeeperRole++`]] + +[.contract] +[[AccessController]] +=== `++AccessController++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/modules/AccessController.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/modules/AccessController.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-AccessController-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-AccessController-_getName--}[`++_getName()++`] +* {xref-AccessController-setDefaultAdminRole-address-}[`++setDefaultAdminRole(defaultAdmin)++`] +* {xref-AccessController-grantRole-bytes32-address-}[`++grantRole(role, principal)++`] +* {xref-AccessController-revokeRole-bytes32-address-}[`++revokeRole(role, principal)++`] +* {xref-AccessController-renounceRole-bytes32-address-}[`++renounceRole(role, principal)++`] +* {xref-AccessController-addRole-bytes32-}[`++addRole(role)++`] +* {xref-AccessController-invalidateRole-bytes32-}[`++invalidateRole(role)++`] +* {xref-AccessController-hasRole-bytes32-address-}[`++hasRole(role, principal)++`] +* {xref-AccessController-getDefaultAdminRole--}[`++getDefaultAdminRole()++`] +* {xref-AccessController-getProductOwnerRole--}[`++getProductOwnerRole()++`] +* {xref-AccessController-getOracleProviderRole--}[`++getOracleProviderRole()++`] +* {xref-AccessController-getRiskpoolKeeperRole--}[`++getRiskpoolKeeperRole()++`] + +[.contract-subindex-inherited] +.AccessControlEnumerable +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControlEnumerable-supportsInterface-bytes4-[`++supportsInterface(interfaceId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControlEnumerable-getRoleMember-bytes32-uint256-[`++getRoleMember(role, index)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControlEnumerable-getRoleMemberCount-bytes32-[`++getRoleMemberCount(role)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControlEnumerable-_grantRole-bytes32-address-[`++_grantRole(role, account)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControlEnumerable-_revokeRole-bytes32-address-[`++_revokeRole(role, account)++`] + +[.contract-subindex-inherited] +.AccessControl +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControl-hasRole-bytes32-address-[`++hasRole(role, account)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControl-_checkRole-bytes32-[`++_checkRole(role)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControl-_checkRole-bytes32-address-[`++_checkRole(role, account)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControl-getRoleAdmin-bytes32-[`++getRoleAdmin(role)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControl-grantRole-bytes32-address-[`++grantRole(role, account)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControl-revokeRole-bytes32-address-[`++revokeRole(role, account)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControl-renounceRole-bytes32-address-[`++renounceRole(role, account)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControl-_setupRole-bytes32-address-[`++_setupRole(role, account)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#AccessControl-_setRoleAdmin-bytes32-bytes32-[`++_setRoleAdmin(role, adminRole)++`] + +[.contract-subindex-inherited] +.ERC165 + +[.contract-subindex-inherited] +.IERC165 + +[.contract-subindex-inherited] +.IAccessControlEnumerable + +[.contract-subindex-inherited] +.IAccessControl + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IAccess + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.AccessControlEnumerable + +[.contract-subindex-inherited] +.AccessControl + +[.contract-subindex-inherited] +.ERC165 + +[.contract-subindex-inherited] +.IERC165 + +[.contract-subindex-inherited] +.IAccessControlEnumerable + +[.contract-subindex-inherited] +.IAccessControl +* https://docs.openzeppelin.com/contracts/3.x/api/access#IAccessControl-RoleAdminChanged-bytes32-bytes32-bytes32-[`++RoleAdminChanged(role, previousAdminRole, newAdminRole)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#IAccessControl-RoleGranted-bytes32-address-address-[`++RoleGranted(role, account, sender)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#IAccessControl-RoleRevoked-bytes32-address-address-[`++RoleRevoked(role, account, sender)++`] + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IAccess + +-- + +[.contract-item] +[[AccessController-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +This function is called after contract initialization and adds the product owner, oracle provider, and riskpool keeper roles. + +[.contract-item] +[[AccessController-_getName--]] +==== `[.contract-item-name]#++_getName++#++() → bytes32++` [.item-kind]#internal# + +Returns the name of the contract. + +[.contract-item] +[[AccessController-setDefaultAdminRole-address-]] +==== `[.contract-item-name]#++setDefaultAdminRole++#++(address defaultAdmin)++` [.item-kind]#external# + +Sets the default admin role for the Access Control List (ACL). + +[.contract-item] +[[AccessController-grantRole-bytes32-address-]] +==== `[.contract-item-name]#++grantRole++#++(bytes32 role, address principal)++` [.item-kind]#public# + +Grants a role to a principal. + +[.contract-item] +[[AccessController-revokeRole-bytes32-address-]] +==== `[.contract-item-name]#++revokeRole++#++(bytes32 role, address principal)++` [.item-kind]#public# + +Revokes the specified role from the specified principal. + +[.contract-item] +[[AccessController-renounceRole-bytes32-address-]] +==== `[.contract-item-name]#++renounceRole++#++(bytes32 role, address principal)++` [.item-kind]#public# + +Removes the specified `principal` from the `role` in the access control list (ACL) of the contract. + +[.contract-item] +[[AccessController-addRole-bytes32-]] +==== `[.contract-item-name]#++addRole++#++(bytes32 role)++` [.item-kind]#public# + +Adds a new role to the Access Control List. + +[.contract-item] +[[AccessController-invalidateRole-bytes32-]] +==== `[.contract-item-name]#++invalidateRole++#++(bytes32 role)++` [.item-kind]#public# + +Invalidates a role. + +[.contract-item] +[[AccessController-hasRole-bytes32-address-]] +==== `[.contract-item-name]#++hasRole++#++(bytes32 role, address principal) → bool++` [.item-kind]#public# + +Checks if a given principal has a specific role. + +[.contract-item] +[[AccessController-getDefaultAdminRole--]] +==== `[.contract-item-name]#++getDefaultAdminRole++#++() → bytes32++` [.item-kind]#public# + +Returns the default admin role. + +[.contract-item] +[[AccessController-getProductOwnerRole--]] +==== `[.contract-item-name]#++getProductOwnerRole++#++() → bytes32++` [.item-kind]#public# + +Returns the bytes32 value of the PRODUCT_OWNER_ROLE. + +[.contract-item] +[[AccessController-getOracleProviderRole--]] +==== `[.contract-item-name]#++getOracleProviderRole++#++() → bytes32++` [.item-kind]#public# + +Returns the bytes32 identifier of the Oracle Provider role. + +[.contract-item] +[[AccessController-getRiskpoolKeeperRole--]] +==== `[.contract-item-name]#++getRiskpoolKeeperRole++#++() → bytes32++` [.item-kind]#public# + +Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. + +:onlyRiskpoolService: pass:normal[xref:#BundleController-onlyRiskpoolService--[`++onlyRiskpoolService++`]] +:onlyFundableBundle: pass:normal[xref:#BundleController-onlyFundableBundle-uint256-[`++onlyFundableBundle++`]] +:_afterInitialize: pass:normal[xref:#BundleController-_afterInitialize--[`++_afterInitialize++`]] +:create: pass:normal[xref:#BundleController-create-address-uint256-bytes-uint256-[`++create++`]] +:fund: pass:normal[xref:#BundleController-fund-uint256-uint256-[`++fund++`]] +:defund: pass:normal[xref:#BundleController-defund-uint256-uint256-[`++defund++`]] +:lock: pass:normal[xref:#BundleController-lock-uint256-[`++lock++`]] +:unlock: pass:normal[xref:#BundleController-unlock-uint256-[`++unlock++`]] +:close: pass:normal[xref:#BundleController-close-uint256-[`++close++`]] +:burn: pass:normal[xref:#BundleController-burn-uint256-[`++burn++`]] +:collateralizePolicy: pass:normal[xref:#BundleController-collateralizePolicy-uint256-bytes32-uint256-[`++collateralizePolicy++`]] +:processPremium: pass:normal[xref:#BundleController-processPremium-uint256-bytes32-uint256-[`++processPremium++`]] +:processPayout: pass:normal[xref:#BundleController-processPayout-uint256-bytes32-uint256-[`++processPayout++`]] +:releasePolicy: pass:normal[xref:#BundleController-releasePolicy-uint256-bytes32-[`++releasePolicy++`]] +:getOwner: pass:normal[xref:#BundleController-getOwner-uint256-[`++getOwner++`]] +:getState: pass:normal[xref:#BundleController-getState-uint256-[`++getState++`]] +:getFilter: pass:normal[xref:#BundleController-getFilter-uint256-[`++getFilter++`]] +:getCapacity: pass:normal[xref:#BundleController-getCapacity-uint256-[`++getCapacity++`]] +:getTotalValueLocked: pass:normal[xref:#BundleController-getTotalValueLocked-uint256-[`++getTotalValueLocked++`]] +:getBalance: pass:normal[xref:#BundleController-getBalance-uint256-[`++getBalance++`]] +:getToken: pass:normal[xref:#BundleController-getToken--[`++getToken++`]] +:getBundle: pass:normal[xref:#BundleController-getBundle-uint256-[`++getBundle++`]] +:bundles: pass:normal[xref:#BundleController-bundles--[`++bundles++`]] +:unburntBundles: pass:normal[xref:#BundleController-unburntBundles-uint256-[`++unburntBundles++`]] +:_getPoolController: pass:normal[xref:#BundleController-_getPoolController--[`++_getPoolController++`]] +:_changeState: pass:normal[xref:#BundleController-_changeState-uint256-enum-IBundle-BundleState-[`++_changeState++`]] +:_setState: pass:normal[xref:#BundleController-_setState-uint256-enum-IBundle-BundleState-[`++_setState++`]] +:_checkStateTransition: pass:normal[xref:#BundleController-_checkStateTransition-enum-IBundle-BundleState-enum-IBundle-BundleState-[`++_checkStateTransition++`]] + +[.contract] +[[BundleController]] +=== `++BundleController++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/modules/BundleController.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/modules/BundleController.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-BundleController-onlyRiskpoolService--}[`++onlyRiskpoolService()++`] +* {xref-BundleController-onlyFundableBundle-uint256-}[`++onlyFundableBundle(bundleId)++`] +-- + +[.contract-index] +.Functions +-- +* {xref-BundleController-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-BundleController-create-address-uint256-bytes-uint256-}[`++create(owner_, riskpoolId_, filter_, amount_)++`] +* {xref-BundleController-fund-uint256-uint256-}[`++fund(bundleId, amount)++`] +* {xref-BundleController-defund-uint256-uint256-}[`++defund(bundleId, amount)++`] +* {xref-BundleController-lock-uint256-}[`++lock(bundleId)++`] +* {xref-BundleController-unlock-uint256-}[`++unlock(bundleId)++`] +* {xref-BundleController-close-uint256-}[`++close(bundleId)++`] +* {xref-BundleController-burn-uint256-}[`++burn(bundleId)++`] +* {xref-BundleController-collateralizePolicy-uint256-bytes32-uint256-}[`++collateralizePolicy(bundleId, processId, amount)++`] +* {xref-BundleController-processPremium-uint256-bytes32-uint256-}[`++processPremium(bundleId, processId, amount)++`] +* {xref-BundleController-processPayout-uint256-bytes32-uint256-}[`++processPayout(bundleId, processId, amount)++`] +* {xref-BundleController-releasePolicy-uint256-bytes32-}[`++releasePolicy(bundleId, processId)++`] +* {xref-BundleController-getOwner-uint256-}[`++getOwner(bundleId)++`] +* {xref-BundleController-getState-uint256-}[`++getState(bundleId)++`] +* {xref-BundleController-getFilter-uint256-}[`++getFilter(bundleId)++`] +* {xref-BundleController-getCapacity-uint256-}[`++getCapacity(bundleId)++`] +* {xref-BundleController-getTotalValueLocked-uint256-}[`++getTotalValueLocked(bundleId)++`] +* {xref-BundleController-getBalance-uint256-}[`++getBalance(bundleId)++`] +* {xref-BundleController-getToken--}[`++getToken()++`] +* {xref-BundleController-getBundle-uint256-}[`++getBundle(bundleId)++`] +* {xref-BundleController-bundles--}[`++bundles()++`] +* {xref-BundleController-unburntBundles-uint256-}[`++unburntBundles(riskpoolId)++`] +* {xref-BundleController-_getPoolController--}[`++_getPoolController()++`] +* {xref-BundleController-_changeState-uint256-enum-IBundle-BundleState-}[`++_changeState(bundleId, newState)++`] +* {xref-BundleController-_setState-uint256-enum-IBundle-BundleState-}[`++_setState(bundleId, newState)++`] +* {xref-BundleController-_checkStateTransition-enum-IBundle-BundleState-enum-IBundle-BundleState-}[`++_checkStateTransition(oldState, newState)++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IBundle + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IBundle +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IBundle.sol[`++LogBundleCreated(bundleId, riskpoolId, owner, state, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IBundle.sol[`++LogBundleStateChanged(bundleId, oldState, newState)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IBundle.sol[`++LogBundleCapitalProvided(bundleId, sender, amount, capacity)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IBundle.sol[`++LogBundleCapitalWithdrawn(bundleId, recipient, amount, capacity)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IBundle.sol[`++LogBundlePolicyCollateralized(bundleId, processId, amount, capacity)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IBundle.sol[`++LogBundlePayoutProcessed(bundleId, processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IBundle.sol[`++LogBundlePolicyReleased(bundleId, processId, amount, capacity)++`] + +-- + +[.contract-item] +[[BundleController-onlyRiskpoolService--]] +==== `[.contract-item-name]#++onlyRiskpoolService++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[BundleController-onlyFundableBundle-uint256-]] +==== `[.contract-item-name]#++onlyFundableBundle++#++(uint256 bundleId)++` [.item-kind]#modifier# + +[.contract-item] +[[BundleController-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +Performs internal operations after the contract initialization. + +[.contract-item] +[[BundleController-create-address-uint256-bytes-uint256-]] +==== `[.contract-item-name]#++create++#++(address owner_, uint256 riskpoolId_, bytes filter_, uint256 amount_) → uint256 bundleId++` [.item-kind]#external# + +Creates a new bundle and mints a corresponding NFT token. Only callable by the RiskpoolService contract. + +[.contract-item] +[[BundleController-fund-uint256-uint256-]] +==== `[.contract-item-name]#++fund++#++(uint256 bundleId, uint256 amount)++` [.item-kind]#external# + +Adds funds to a bundle's capital and balance. + +[.contract-item] +[[BundleController-defund-uint256-uint256-]] +==== `[.contract-item-name]#++defund++#++(uint256 bundleId, uint256 amount)++` [.item-kind]#external# + +Allows the Riskpool service to withdraw `amount` from the `bundleId` Bundle. + +[.contract-item] +[[BundleController-lock-uint256-]] +==== `[.contract-item-name]#++lock++#++(uint256 bundleId)++` [.item-kind]#external# + +Locks a bundle of assets. + +[.contract-item] +[[BundleController-unlock-uint256-]] +==== `[.contract-item-name]#++unlock++#++(uint256 bundleId)++` [.item-kind]#external# + +Unlocks a bundle, changing its state to active. + +[.contract-item] +[[BundleController-close-uint256-]] +==== `[.contract-item-name]#++close++#++(uint256 bundleId)++` [.item-kind]#external# + +Closes a bundle of policies. + +[.contract-item] +[[BundleController-burn-uint256-]] +==== `[.contract-item-name]#++burn++#++(uint256 bundleId)++` [.item-kind]#external# + +Burns a bundle and changes its state to Burned. + +[.contract-item] +[[BundleController-collateralizePolicy-uint256-bytes32-uint256-]] +==== `[.contract-item-name]#++collateralizePolicy++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# + +Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. + +[.contract-item] +[[BundleController-processPremium-uint256-bytes32-uint256-]] +==== `[.contract-item-name]#++processPremium++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# + +Process the premium payment for a given bundle and update its balance. + +[.contract-item] +[[BundleController-processPayout-uint256-bytes32-uint256-]] +==== `[.contract-item-name]#++processPayout++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# + +Processes a payout for a policy from a bundle. + +[.contract-item] +[[BundleController-releasePolicy-uint256-bytes32-]] +==== `[.contract-item-name]#++releasePolicy++#++(uint256 bundleId, bytes32 processId) → uint256 remainingCollateralAmount++` [.item-kind]#external# + +Release a policy and update the bundle capital. + +[.contract-item] +[[BundleController-getOwner-uint256-]] +==== `[.contract-item-name]#++getOwner++#++(uint256 bundleId) → address++` [.item-kind]#public# + +Returns the address of the owner of the token associated with the given bundle ID. + +[.contract-item] +[[BundleController-getState-uint256-]] +==== `[.contract-item-name]#++getState++#++(uint256 bundleId) → enum IBundle.BundleState++` [.item-kind]#public# + +Returns the state of the bundle with the given ID. + +[.contract-item] +[[BundleController-getFilter-uint256-]] +==== `[.contract-item-name]#++getFilter++#++(uint256 bundleId) → bytes++` [.item-kind]#public# + +Returns the filter of a given bundle. + +[.contract-item] +[[BundleController-getCapacity-uint256-]] +==== `[.contract-item-name]#++getCapacity++#++(uint256 bundleId) → uint256++` [.item-kind]#public# + +Returns the available capacity of a bundle. + +[.contract-item] +[[BundleController-getTotalValueLocked-uint256-]] +==== `[.contract-item-name]#++getTotalValueLocked++#++(uint256 bundleId) → uint256++` [.item-kind]#public# + +Returns the total value locked in a particular bundle. + +[.contract-item] +[[BundleController-getBalance-uint256-]] +==== `[.contract-item-name]#++getBalance++#++(uint256 bundleId) → uint256++` [.item-kind]#public# + +Returns the balance of a specific bundle. + +[.contract-item] +[[BundleController-getToken--]] +==== `[.contract-item-name]#++getToken++#++() → contract BundleToken++` [.item-kind]#external# + +Returns the BundleToken contract instance. + +[.contract-item] +[[BundleController-getBundle-uint256-]] +==== `[.contract-item-name]#++getBundle++#++(uint256 bundleId) → struct IBundle.Bundle++` [.item-kind]#public# + +Returns the bundle with the specified bundle ID. + +[.contract-item] +[[BundleController-bundles--]] +==== `[.contract-item-name]#++bundles++#++() → uint256++` [.item-kind]#public# + +Returns the number of bundles created. + +[.contract-item] +[[BundleController-unburntBundles-uint256-]] +==== `[.contract-item-name]#++unburntBundles++#++(uint256 riskpoolId) → uint256++` [.item-kind]#external# + +Returns the number of unburnt bundles for a given riskpool ID. + +[.contract-item] +[[BundleController-_getPoolController--]] +==== `[.contract-item-name]#++_getPoolController++#++() → contract PoolController _poolController++` [.item-kind]#internal# + +Returns the pool controller contract instance. + +[.contract-item] +[[BundleController-_changeState-uint256-enum-IBundle-BundleState-]] +==== `[.contract-item-name]#++_changeState++#++(uint256 bundleId, enum IBundle.BundleState newState)++` [.item-kind]#internal# + +Changes the state of a bundle. + +[.contract-item] +[[BundleController-_setState-uint256-enum-IBundle-BundleState-]] +==== `[.contract-item-name]#++_setState++#++(uint256 bundleId, enum IBundle.BundleState newState)++` [.item-kind]#internal# + +Sets the state and updated timestamp of a given bundle. + +[.contract-item] +[[BundleController-_checkStateTransition-enum-IBundle-BundleState-enum-IBundle-BundleState-]] +==== `[.contract-item-name]#++_checkStateTransition++#++(enum IBundle.BundleState oldState, enum IBundle.BundleState newState)++` [.item-kind]#internal# + +Checks if a state transition is valid. + +:onlyComponentOwnerService: pass:normal[xref:#ComponentController-onlyComponentOwnerService--[`++onlyComponentOwnerService++`]] +:onlyInstanceOperatorService: pass:normal[xref:#ComponentController-onlyInstanceOperatorService--[`++onlyInstanceOperatorService++`]] +:propose: pass:normal[xref:#ComponentController-propose-contract-IComponent-[`++propose++`]] +:_persistComponent: pass:normal[xref:#ComponentController-_persistComponent-contract-IComponent-[`++_persistComponent++`]] +:exists: pass:normal[xref:#ComponentController-exists-uint256-[`++exists++`]] +:approve: pass:normal[xref:#ComponentController-approve-uint256-[`++approve++`]] +:decline: pass:normal[xref:#ComponentController-decline-uint256-[`++decline++`]] +:suspend: pass:normal[xref:#ComponentController-suspend-uint256-[`++suspend++`]] +:resume: pass:normal[xref:#ComponentController-resume-uint256-[`++resume++`]] +:pause: pass:normal[xref:#ComponentController-pause-uint256-[`++pause++`]] +:unpause: pass:normal[xref:#ComponentController-unpause-uint256-[`++unpause++`]] +:archiveFromComponentOwner: pass:normal[xref:#ComponentController-archiveFromComponentOwner-uint256-[`++archiveFromComponentOwner++`]] +:archiveFromInstanceOperator: pass:normal[xref:#ComponentController-archiveFromInstanceOperator-uint256-[`++archiveFromInstanceOperator++`]] +:getComponent: pass:normal[xref:#ComponentController-getComponent-uint256-[`++getComponent++`]] +:getComponentId: pass:normal[xref:#ComponentController-getComponentId-address-[`++getComponentId++`]] +:getComponentType: pass:normal[xref:#ComponentController-getComponentType-uint256-[`++getComponentType++`]] +:getComponentState: pass:normal[xref:#ComponentController-getComponentState-uint256-[`++getComponentState++`]] +:getOracleId: pass:normal[xref:#ComponentController-getOracleId-uint256-[`++getOracleId++`]] +:getRiskpoolId: pass:normal[xref:#ComponentController-getRiskpoolId-uint256-[`++getRiskpoolId++`]] +:getProductId: pass:normal[xref:#ComponentController-getProductId-uint256-[`++getProductId++`]] +:getRequiredRole: pass:normal[xref:#ComponentController-getRequiredRole-enum-IComponent-ComponentType-[`++getRequiredRole++`]] +:components: pass:normal[xref:#ComponentController-components--[`++components++`]] +:products: pass:normal[xref:#ComponentController-products--[`++products++`]] +:oracles: pass:normal[xref:#ComponentController-oracles--[`++oracles++`]] +:riskpools: pass:normal[xref:#ComponentController-riskpools--[`++riskpools++`]] +:isProduct: pass:normal[xref:#ComponentController-isProduct-uint256-[`++isProduct++`]] +:isOracle: pass:normal[xref:#ComponentController-isOracle-uint256-[`++isOracle++`]] +:isRiskpool: pass:normal[xref:#ComponentController-isRiskpool-uint256-[`++isRiskpool++`]] +:getPolicyFlow: pass:normal[xref:#ComponentController-getPolicyFlow-uint256-[`++getPolicyFlow++`]] +:_changeState: pass:normal[xref:#ComponentController-_changeState-uint256-enum-IComponent-ComponentState-[`++_changeState++`]] +:_checkStateTransition: pass:normal[xref:#ComponentController-_checkStateTransition-enum-IComponent-ComponentState-enum-IComponent-ComponentState-[`++_checkStateTransition++`]] + +[.contract] +[[ComponentController]] +=== `++ComponentController++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/modules/ComponentController.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/modules/ComponentController.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-ComponentController-onlyComponentOwnerService--}[`++onlyComponentOwnerService()++`] +* {xref-ComponentController-onlyInstanceOperatorService--}[`++onlyInstanceOperatorService()++`] +-- + +[.contract-index] +.Functions +-- +* {xref-ComponentController-propose-contract-IComponent-}[`++propose(component)++`] +* {xref-ComponentController-_persistComponent-contract-IComponent-}[`++_persistComponent(component)++`] +* {xref-ComponentController-exists-uint256-}[`++exists(id)++`] +* {xref-ComponentController-approve-uint256-}[`++approve(id)++`] +* {xref-ComponentController-decline-uint256-}[`++decline(id)++`] +* {xref-ComponentController-suspend-uint256-}[`++suspend(id)++`] +* {xref-ComponentController-resume-uint256-}[`++resume(id)++`] +* {xref-ComponentController-pause-uint256-}[`++pause(id)++`] +* {xref-ComponentController-unpause-uint256-}[`++unpause(id)++`] +* {xref-ComponentController-archiveFromComponentOwner-uint256-}[`++archiveFromComponentOwner(id)++`] +* {xref-ComponentController-archiveFromInstanceOperator-uint256-}[`++archiveFromInstanceOperator(id)++`] +* {xref-ComponentController-getComponent-uint256-}[`++getComponent(id)++`] +* {xref-ComponentController-getComponentId-address-}[`++getComponentId(componentAddress)++`] +* {xref-ComponentController-getComponentType-uint256-}[`++getComponentType(id)++`] +* {xref-ComponentController-getComponentState-uint256-}[`++getComponentState(id)++`] +* {xref-ComponentController-getOracleId-uint256-}[`++getOracleId(idx)++`] +* {xref-ComponentController-getRiskpoolId-uint256-}[`++getRiskpoolId(idx)++`] +* {xref-ComponentController-getProductId-uint256-}[`++getProductId(idx)++`] +* {xref-ComponentController-getRequiredRole-enum-IComponent-ComponentType-}[`++getRequiredRole(componentType)++`] +* {xref-ComponentController-components--}[`++components()++`] +* {xref-ComponentController-products--}[`++products()++`] +* {xref-ComponentController-oracles--}[`++oracles()++`] +* {xref-ComponentController-riskpools--}[`++riskpools()++`] +* {xref-ComponentController-isProduct-uint256-}[`++isProduct(id)++`] +* {xref-ComponentController-isOracle-uint256-}[`++isOracle(id)++`] +* {xref-ComponentController-isRiskpool-uint256-}[`++isRiskpool(id)++`] +* {xref-ComponentController-getPolicyFlow-uint256-}[`++getPolicyFlow(productId)++`] +* {xref-ComponentController-_changeState-uint256-enum-IComponent-ComponentState-}[`++_changeState(componentId, newState)++`] +* {xref-ComponentController-_checkStateTransition-enum-IComponent-ComponentState-enum-IComponent-ComponentState-}[`++_checkStateTransition(oldState, newState)++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IComponentEvents + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IComponentEvents +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentProposed(componentName, componentType, componentAddress, id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentApproved(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentDeclined(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentSuspended(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentResumed(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentPaused(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentUnpaused(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentArchived(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentStateChanged(id, stateOld, stateNew)++`] + +-- + +[.contract-item] +[[ComponentController-onlyComponentOwnerService--]] +==== `[.contract-item-name]#++onlyComponentOwnerService++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[ComponentController-onlyInstanceOperatorService--]] +==== `[.contract-item-name]#++onlyInstanceOperatorService++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[ComponentController-propose-contract-IComponent-]] +==== `[.contract-item-name]#++propose++#++(contract IComponent component)++` [.item-kind]#external# + +Proposes a new component to the system. + +[.contract-item] +[[ComponentController-_persistComponent-contract-IComponent-]] +==== `[.contract-item-name]#++_persistComponent++#++(contract IComponent component) → uint256 id++` [.item-kind]#internal# + +Persists a new component into the system. + +[.contract-item] +[[ComponentController-exists-uint256-]] +==== `[.contract-item-name]#++exists++#++(uint256 id) → bool++` [.item-kind]#public# + +Checks if a component with the given ID exists. + +[.contract-item] +[[ComponentController-approve-uint256-]] +==== `[.contract-item-name]#++approve++#++(uint256 id)++` [.item-kind]#external# + +Approves a component with the given id. + +[.contract-item] +[[ComponentController-decline-uint256-]] +==== `[.contract-item-name]#++decline++#++(uint256 id)++` [.item-kind]#external# + +Changes the state of a component with the given ID to "Declined" and emits a LogComponentDeclined event. + Calls the declineCallback function of the component with the given ID. + +[.contract-item] +[[ComponentController-suspend-uint256-]] +==== `[.contract-item-name]#++suspend++#++(uint256 id)++` [.item-kind]#external# + +Suspends a component with the given ID. + +[.contract-item] +[[ComponentController-resume-uint256-]] +==== `[.contract-item-name]#++resume++#++(uint256 id)++` [.item-kind]#external# + +Resumes a component by changing its state to Active and emitting an event. + It also calls the resumeCallback() function of the component to inform it about the resuming. + +[.contract-item] +[[ComponentController-pause-uint256-]] +==== `[.contract-item-name]#++pause++#++(uint256 id)++` [.item-kind]#external# + +Pauses the component with the given ID. + +[.contract-item] +[[ComponentController-unpause-uint256-]] +==== `[.contract-item-name]#++unpause++#++(uint256 id)++` [.item-kind]#external# + +Unpauses a component with the given id. + +[.contract-item] +[[ComponentController-archiveFromComponentOwner-uint256-]] +==== `[.contract-item-name]#++archiveFromComponentOwner++#++(uint256 id)++` [.item-kind]#external# + +Archives a component with the given ID, changing its state to "Archived" and emitting a LogComponentArchived event. + Also calls the archiveCallback function of the component with the given ID, informing it about the archiving. + +[.contract-item] +[[ComponentController-archiveFromInstanceOperator-uint256-]] +==== `[.contract-item-name]#++archiveFromInstanceOperator++#++(uint256 id)++` [.item-kind]#external# + +Archives a component instance with the given ID. + +[.contract-item] +[[ComponentController-getComponent-uint256-]] +==== `[.contract-item-name]#++getComponent++#++(uint256 id) → contract IComponent component++` [.item-kind]#public# + +Returns the component with the given ID. + +[.contract-item] +[[ComponentController-getComponentId-address-]] +==== `[.contract-item-name]#++getComponentId++#++(address componentAddress) → uint256 id++` [.item-kind]#public# + +Returns the ID of a registered component given its address. + +[.contract-item] +[[ComponentController-getComponentType-uint256-]] +==== `[.contract-item-name]#++getComponentType++#++(uint256 id) → enum IComponent.ComponentType componentType++` [.item-kind]#public# + +Returns the component type of a given component ID. + +[.contract-item] +[[ComponentController-getComponentState-uint256-]] +==== `[.contract-item-name]#++getComponentState++#++(uint256 id) → enum IComponent.ComponentState componentState++` [.item-kind]#public# + +Returns the state of the component with the given ID. + +[.contract-item] +[[ComponentController-getOracleId-uint256-]] +==== `[.contract-item-name]#++getOracleId++#++(uint256 idx) → uint256 oracleId++` [.item-kind]#public# + +Returns the oracle ID at the given index. + +[.contract-item] +[[ComponentController-getRiskpoolId-uint256-]] +==== `[.contract-item-name]#++getRiskpoolId++#++(uint256 idx) → uint256 riskpoolId++` [.item-kind]#public# + +Returns the riskpool ID at the specified index. + +[.contract-item] +[[ComponentController-getProductId-uint256-]] +==== `[.contract-item-name]#++getProductId++#++(uint256 idx) → uint256 productId++` [.item-kind]#public# + +Returns the product ID at the given index in the _products set. + +[.contract-item] +[[ComponentController-getRequiredRole-enum-IComponent-ComponentType-]] +==== `[.contract-item-name]#++getRequiredRole++#++(enum IComponent.ComponentType componentType) → bytes32++` [.item-kind]#external# + +Returns the required role for a given component type. + +[.contract-item] +[[ComponentController-components--]] +==== `[.contract-item-name]#++components++#++() → uint256 count++` [.item-kind]#public# + +Returns the number of components currently stored in the contract. + +[.contract-item] +[[ComponentController-products--]] +==== `[.contract-item-name]#++products++#++() → uint256 count++` [.item-kind]#public# + +Returns the number of products in the set '_products'. + +[.contract-item] +[[ComponentController-oracles--]] +==== `[.contract-item-name]#++oracles++#++() → uint256 count++` [.item-kind]#public# + +Returns the number of oracles registered in the _oracles set. + +[.contract-item] +[[ComponentController-riskpools--]] +==== `[.contract-item-name]#++riskpools++#++() → uint256 count++` [.item-kind]#public# + +Returns the number of risk pools in the EnumerableSet. + +[.contract-item] +[[ComponentController-isProduct-uint256-]] +==== `[.contract-item-name]#++isProduct++#++(uint256 id) → bool++` [.item-kind]#public# + +Check if a product exists in the set of products. + +[.contract-item] +[[ComponentController-isOracle-uint256-]] +==== `[.contract-item-name]#++isOracle++#++(uint256 id) → bool++` [.item-kind]#public# + +Checks if an oracle with a given ID exists. + +[.contract-item] +[[ComponentController-isRiskpool-uint256-]] +==== `[.contract-item-name]#++isRiskpool++#++(uint256 id) → bool++` [.item-kind]#public# + +Checks if a given ID is a riskpool. + +[.contract-item] +[[ComponentController-getPolicyFlow-uint256-]] +==== `[.contract-item-name]#++getPolicyFlow++#++(uint256 productId) → address _policyFlow++` [.item-kind]#public# + +Returns the address of the policy flow for a given product ID. + +[.contract-item] +[[ComponentController-_changeState-uint256-enum-IComponent-ComponentState-]] +==== `[.contract-item-name]#++_changeState++#++(uint256 componentId, enum IComponent.ComponentState newState)++` [.item-kind]#internal# + +Changes the state of a component. + +[.contract-item] +[[ComponentController-_checkStateTransition-enum-IComponent-ComponentState-enum-IComponent-ComponentState-]] +==== `[.contract-item-name]#++_checkStateTransition++#++(enum IComponent.ComponentState oldState, enum IComponent.ComponentState newState)++` [.item-kind]#internal# + +Checks if the state transition is valid. +Throws an error if the newState is the same as the oldState. +Throws an error if the transition from Created state is not to Proposed state. +Throws an error if the transition from Proposed state is not to Active or Declined state. +Throws an error if the transition from Declined state is attempted. +Throws an error if the transition from Active state is not to Paused or Suspended state. +Throws an error if the transition from Paused state is not to Active or Archived state. +Throws an error if the transition from Suspended state is not to Active or Archived state. +Throws an error if the initial state is not handled. + +:_afterInitialize: pass:normal[xref:#LicenseController-_afterInitialize--[`++_afterInitialize++`]] +:getAuthorizationStatus: pass:normal[xref:#LicenseController-getAuthorizationStatus-address-[`++getAuthorizationStatus++`]] +:_isValidCall: pass:normal[xref:#LicenseController-_isValidCall-uint256-[`++_isValidCall++`]] +:_getProduct: pass:normal[xref:#LicenseController-_getProduct-uint256-[`++_getProduct++`]] + +[.contract] +[[LicenseController]] +=== `++LicenseController++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/modules/LicenseController.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/modules/LicenseController.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-LicenseController-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-LicenseController-getAuthorizationStatus-address-}[`++getAuthorizationStatus(productAddress)++`] +* {xref-LicenseController-_isValidCall-uint256-}[`++_isValidCall(productId)++`] +* {xref-LicenseController-_getProduct-uint256-}[`++_getProduct(id)++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.ILicense + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.ILicense + +-- + +[.contract-item] +[[LicenseController-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +This function is called after the contract is initialized and sets the `_component` variable to the address of the `ComponentController` contract. + +[.contract-item] +[[LicenseController-getAuthorizationStatus-address-]] +==== `[.contract-item-name]#++getAuthorizationStatus++#++(address productAddress) → uint256 productId, bool isAuthorized, address policyFlow++` [.item-kind]#public# + +Returns the authorization status of a given product address. + +[.contract-item] +[[LicenseController-_isValidCall-uint256-]] +==== `[.contract-item-name]#++_isValidCall++#++(uint256 productId) → bool++` [.item-kind]#internal# + +Checks if a product is currently active. + +[.contract-item] +[[LicenseController-_getProduct-uint256-]] +==== `[.contract-item-name]#++_getProduct++#++(uint256 id) → contract IProduct product++` [.item-kind]#internal# + +Returns the product associated with the given ID. + +:metadata: pass:normal[xref:#PolicyController-metadata-mapping-bytes32----struct-IPolicy-Metadata-[`++metadata++`]] +:applications: pass:normal[xref:#PolicyController-applications-mapping-bytes32----struct-IPolicy-Application-[`++applications++`]] +:policies: pass:normal[xref:#PolicyController-policies-mapping-bytes32----struct-IPolicy-Policy-[`++policies++`]] +:claims: pass:normal[xref:#PolicyController-claims-mapping-bytes32----mapping-uint256----struct-IPolicy-Claim--[`++claims++`]] +:payouts: pass:normal[xref:#PolicyController-payouts-mapping-bytes32----mapping-uint256----struct-IPolicy-Payout--[`++payouts++`]] +:payoutCount: pass:normal[xref:#PolicyController-payoutCount-mapping-bytes32----uint256-[`++payoutCount++`]] +:_afterInitialize: pass:normal[xref:#PolicyController-_afterInitialize--[`++_afterInitialize++`]] +:createPolicyFlow: pass:normal[xref:#PolicyController-createPolicyFlow-address-uint256-bytes-[`++createPolicyFlow++`]] +:createApplication: pass:normal[xref:#PolicyController-createApplication-bytes32-uint256-uint256-bytes-[`++createApplication++`]] +:collectPremium: pass:normal[xref:#PolicyController-collectPremium-bytes32-uint256-[`++collectPremium++`]] +:revokeApplication: pass:normal[xref:#PolicyController-revokeApplication-bytes32-[`++revokeApplication++`]] +:underwriteApplication: pass:normal[xref:#PolicyController-underwriteApplication-bytes32-[`++underwriteApplication++`]] +:declineApplication: pass:normal[xref:#PolicyController-declineApplication-bytes32-[`++declineApplication++`]] +:createPolicy: pass:normal[xref:#PolicyController-createPolicy-bytes32-[`++createPolicy++`]] +:adjustPremiumSumInsured: pass:normal[xref:#PolicyController-adjustPremiumSumInsured-bytes32-uint256-uint256-[`++adjustPremiumSumInsured++`]] +:expirePolicy: pass:normal[xref:#PolicyController-expirePolicy-bytes32-[`++expirePolicy++`]] +:closePolicy: pass:normal[xref:#PolicyController-closePolicy-bytes32-[`++closePolicy++`]] +:createClaim: pass:normal[xref:#PolicyController-createClaim-bytes32-uint256-bytes-[`++createClaim++`]] +:confirmClaim: pass:normal[xref:#PolicyController-confirmClaim-bytes32-uint256-uint256-[`++confirmClaim++`]] +:declineClaim: pass:normal[xref:#PolicyController-declineClaim-bytes32-uint256-[`++declineClaim++`]] +:closeClaim: pass:normal[xref:#PolicyController-closeClaim-bytes32-uint256-[`++closeClaim++`]] +:createPayout: pass:normal[xref:#PolicyController-createPayout-bytes32-uint256-uint256-bytes-[`++createPayout++`]] +:processPayout: pass:normal[xref:#PolicyController-processPayout-bytes32-uint256-[`++processPayout++`]] +:getMetadata: pass:normal[xref:#PolicyController-getMetadata-bytes32-[`++getMetadata++`]] +:getApplication: pass:normal[xref:#PolicyController-getApplication-bytes32-[`++getApplication++`]] +:getNumberOfClaims: pass:normal[xref:#PolicyController-getNumberOfClaims-bytes32-[`++getNumberOfClaims++`]] +:getNumberOfPayouts: pass:normal[xref:#PolicyController-getNumberOfPayouts-bytes32-[`++getNumberOfPayouts++`]] +:getPolicy: pass:normal[xref:#PolicyController-getPolicy-bytes32-[`++getPolicy++`]] +:getClaim: pass:normal[xref:#PolicyController-getClaim-bytes32-uint256-[`++getClaim++`]] +:getPayout: pass:normal[xref:#PolicyController-getPayout-bytes32-uint256-[`++getPayout++`]] +:processIds: pass:normal[xref:#PolicyController-processIds--[`++processIds++`]] + +[.contract] +[[PolicyController]] +=== `++PolicyController++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/modules/PolicyController.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/modules/PolicyController.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-PolicyController-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-PolicyController-createPolicyFlow-address-uint256-bytes-}[`++createPolicyFlow(owner, productId, data)++`] +* {xref-PolicyController-createApplication-bytes32-uint256-uint256-bytes-}[`++createApplication(processId, premiumAmount, sumInsuredAmount, data)++`] +* {xref-PolicyController-collectPremium-bytes32-uint256-}[`++collectPremium(processId, amount)++`] +* {xref-PolicyController-revokeApplication-bytes32-}[`++revokeApplication(processId)++`] +* {xref-PolicyController-underwriteApplication-bytes32-}[`++underwriteApplication(processId)++`] +* {xref-PolicyController-declineApplication-bytes32-}[`++declineApplication(processId)++`] +* {xref-PolicyController-createPolicy-bytes32-}[`++createPolicy(processId)++`] +* {xref-PolicyController-adjustPremiumSumInsured-bytes32-uint256-uint256-}[`++adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount)++`] +* {xref-PolicyController-expirePolicy-bytes32-}[`++expirePolicy(processId)++`] +* {xref-PolicyController-closePolicy-bytes32-}[`++closePolicy(processId)++`] +* {xref-PolicyController-createClaim-bytes32-uint256-bytes-}[`++createClaim(processId, claimAmount, data)++`] +* {xref-PolicyController-confirmClaim-bytes32-uint256-uint256-}[`++confirmClaim(processId, claimId, confirmedAmount)++`] +* {xref-PolicyController-declineClaim-bytes32-uint256-}[`++declineClaim(processId, claimId)++`] +* {xref-PolicyController-closeClaim-bytes32-uint256-}[`++closeClaim(processId, claimId)++`] +* {xref-PolicyController-createPayout-bytes32-uint256-uint256-bytes-}[`++createPayout(processId, claimId, payoutAmount, data)++`] +* {xref-PolicyController-processPayout-bytes32-uint256-}[`++processPayout(processId, payoutId)++`] +* {xref-PolicyController-getMetadata-bytes32-}[`++getMetadata(processId)++`] +* {xref-PolicyController-getApplication-bytes32-}[`++getApplication(processId)++`] +* {xref-PolicyController-getNumberOfClaims-bytes32-}[`++getNumberOfClaims(processId)++`] +* {xref-PolicyController-getNumberOfPayouts-bytes32-}[`++getNumberOfPayouts(processId)++`] +* {xref-PolicyController-getPolicy-bytes32-}[`++getPolicy(processId)++`] +* {xref-PolicyController-getClaim-bytes32-uint256-}[`++getClaim(processId, claimId)++`] +* {xref-PolicyController-getPayout-bytes32-uint256-}[`++getPayout(processId, payoutId)++`] +* {xref-PolicyController-processIds--}[`++processIds()++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IPolicy + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IPolicy +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogMetadataCreated(owner, processId, productId, state)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogMetadataStateChanged(processId, state)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogApplicationCreated(processId, premiumAmount, sumInsuredAmount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogApplicationRevoked(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogApplicationUnderwritten(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogApplicationDeclined(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogPolicyCreated(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogPolicyExpired(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogPolicyClosed(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogPremiumCollected(processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogApplicationSumInsuredAdjusted(processId, sumInsuredAmountOld, sumInsuredAmount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogApplicationPremiumAdjusted(processId, premiumAmountOld, premiumAmount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogPolicyPremiumAdjusted(processId, premiumExpectedAmountOld, premiumExpectedAmount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogClaimCreated(processId, claimId, claimAmount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogClaimConfirmed(processId, claimId, confirmedAmount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogClaimDeclined(processId, claimId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogClaimClosed(processId, claimId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogPayoutCreated(processId, claimId, payoutId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPolicy.sol[`++LogPayoutProcessed(processId, payoutId)++`] + +-- + +[.contract-item] +[[PolicyController-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +Internal function that sets the _component variable to the address of the ComponentController contract. + +[.contract-item] +[[PolicyController-createPolicyFlow-address-uint256-bytes-]] +==== `[.contract-item-name]#++createPolicyFlow++#++(address owner, uint256 productId, bytes data) → bytes32 processId++` [.item-kind]#external# + +Creates a new policy flow for a given owner and product. + +[.contract-item] +[[PolicyController-createApplication-bytes32-uint256-uint256-bytes-]] +==== `[.contract-item-name]#++createApplication++#++(bytes32 processId, uint256 premiumAmount, uint256 sumInsuredAmount, bytes data)++` [.item-kind]#external# + +Creates a new insurance application for a given process ID. + +[.contract-item] +[[PolicyController-collectPremium-bytes32-uint256-]] +==== `[.contract-item-name]#++collectPremium++#++(bytes32 processId, uint256 amount)++` [.item-kind]#external# + +Collects premium for a policy. + +[.contract-item] +[[PolicyController-revokeApplication-bytes32-]] +==== `[.contract-item-name]#++revokeApplication++#++(bytes32 processId)++` [.item-kind]#external# + +Revokes an application with the given process ID. + +[.contract-item] +[[PolicyController-underwriteApplication-bytes32-]] +==== `[.contract-item-name]#++underwriteApplication++#++(bytes32 processId)++` [.item-kind]#external# + +Changes the state of an application to underwritten. + +[.contract-item] +[[PolicyController-declineApplication-bytes32-]] +==== `[.contract-item-name]#++declineApplication++#++(bytes32 processId)++` [.item-kind]#external# + +Declines an application for a policy flow. + +[.contract-item] +[[PolicyController-createPolicy-bytes32-]] +==== `[.contract-item-name]#++createPolicy++#++(bytes32 processId)++` [.item-kind]#external# + +Creates a new policy for a given application process ID. + +[.contract-item] +[[PolicyController-adjustPremiumSumInsured-bytes32-uint256-uint256-]] +==== `[.contract-item-name]#++adjustPremiumSumInsured++#++(bytes32 processId, uint256 expectedPremiumAmount, uint256 sumInsuredAmount)++` [.item-kind]#external# + +This function adjusts the premium and sum insured amount of an insurance policy application. + +[.contract-item] +[[PolicyController-expirePolicy-bytes32-]] +==== `[.contract-item-name]#++expirePolicy++#++(bytes32 processId)++` [.item-kind]#external# + +This function expires a policy with the given process ID. + +[.contract-item] +[[PolicyController-closePolicy-bytes32-]] +==== `[.contract-item-name]#++closePolicy++#++(bytes32 processId)++` [.item-kind]#external# + +Closes a policy that has expired and has no open claims. + +[.contract-item] +[[PolicyController-createClaim-bytes32-uint256-bytes-]] +==== `[.contract-item-name]#++createClaim++#++(bytes32 processId, uint256 claimAmount, bytes data) → uint256 claimId++` [.item-kind]#external# + +Creates a new claim for a given policy. + +[.contract-item] +[[PolicyController-confirmClaim-bytes32-uint256-uint256-]] +==== `[.contract-item-name]#++confirmClaim++#++(bytes32 processId, uint256 claimId, uint256 confirmedAmount)++` [.item-kind]#external# + +Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. + +[.contract-item] +[[PolicyController-declineClaim-bytes32-uint256-]] +==== `[.contract-item-name]#++declineClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# + +This function allows the Policy contract to decline a claim. + +[.contract-item] +[[PolicyController-closeClaim-bytes32-uint256-]] +==== `[.contract-item-name]#++closeClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# + +Closes a claim for a given policy. + +[.contract-item] +[[PolicyController-createPayout-bytes32-uint256-uint256-bytes-]] +==== `[.contract-item-name]#++createPayout++#++(bytes32 processId, uint256 claimId, uint256 payoutAmount, bytes data) → uint256 payoutId++` [.item-kind]#external# + +Creates a new payout for a confirmed claim in a policy. + +[.contract-item] +[[PolicyController-processPayout-bytes32-uint256-]] +==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 payoutId)++` [.item-kind]#external# + +Processes a payout for a policy and claim. + +[.contract-item] +[[PolicyController-getMetadata-bytes32-]] +==== `[.contract-item-name]#++getMetadata++#++(bytes32 processId) → struct IPolicy.Metadata _metadata++` [.item-kind]#public# + +Returns the metadata for the given process ID. + +[.contract-item] +[[PolicyController-getApplication-bytes32-]] +==== `[.contract-item-name]#++getApplication++#++(bytes32 processId) → struct IPolicy.Application application++` [.item-kind]#public# + +Returns the application associated with the provided process ID. + +[.contract-item] +[[PolicyController-getNumberOfClaims-bytes32-]] +==== `[.contract-item-name]#++getNumberOfClaims++#++(bytes32 processId) → uint256 numberOfClaims++` [.item-kind]#external# + +Returns the number of claims associated with a given process ID. + +[.contract-item] +[[PolicyController-getNumberOfPayouts-bytes32-]] +==== `[.contract-item-name]#++getNumberOfPayouts++#++(bytes32 processId) → uint256 numberOfPayouts++` [.item-kind]#external# + +Returns the number of payouts for a given process ID. + +[.contract-item] +[[PolicyController-getPolicy-bytes32-]] +==== `[.contract-item-name]#++getPolicy++#++(bytes32 processId) → struct IPolicy.Policy policy++` [.item-kind]#public# + +Returns the policy associated with the given process ID. + +[.contract-item] +[[PolicyController-getClaim-bytes32-uint256-]] +==== `[.contract-item-name]#++getClaim++#++(bytes32 processId, uint256 claimId) → struct IPolicy.Claim claim++` [.item-kind]#public# + +Returns the claim with the given ID for the specified process. + +[.contract-item] +[[PolicyController-getPayout-bytes32-uint256-]] +==== `[.contract-item-name]#++getPayout++#++(bytes32 processId, uint256 payoutId) → struct IPolicy.Payout payout++` [.item-kind]#public# + +Retrieves a specific payout from a process. + +[.contract-item] +[[PolicyController-processIds--]] +==== `[.contract-item-name]#++processIds++#++() → uint256++` [.item-kind]#external# + +Returns the number of process IDs that have been assigned. + +:FULL_COLLATERALIZATION_LEVEL: pass:normal[xref:#PoolController-FULL_COLLATERALIZATION_LEVEL-uint256[`++FULL_COLLATERALIZATION_LEVEL++`]] +:COLLATERALIZATION_LEVEL_CAP: pass:normal[xref:#PoolController-COLLATERALIZATION_LEVEL_CAP-uint256[`++COLLATERALIZATION_LEVEL_CAP++`]] +:DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES: pass:normal[xref:#PoolController-DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES-uint256[`++DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES++`]] +:onlyInstanceOperatorService: pass:normal[xref:#PoolController-onlyInstanceOperatorService--[`++onlyInstanceOperatorService++`]] +:onlyRiskpoolService: pass:normal[xref:#PoolController-onlyRiskpoolService--[`++onlyRiskpoolService++`]] +:onlyActivePool: pass:normal[xref:#PoolController-onlyActivePool-uint256-[`++onlyActivePool++`]] +:onlyActivePoolForProcess: pass:normal[xref:#PoolController-onlyActivePoolForProcess-bytes32-[`++onlyActivePoolForProcess++`]] +:_afterInitialize: pass:normal[xref:#PoolController-_afterInitialize--[`++_afterInitialize++`]] +:registerRiskpool: pass:normal[xref:#PoolController-registerRiskpool-uint256-address-address-uint256-uint256-[`++registerRiskpool++`]] +:setRiskpoolForProduct: pass:normal[xref:#PoolController-setRiskpoolForProduct-uint256-uint256-[`++setRiskpoolForProduct++`]] +:fund: pass:normal[xref:#PoolController-fund-uint256-uint256-[`++fund++`]] +:defund: pass:normal[xref:#PoolController-defund-uint256-uint256-[`++defund++`]] +:underwrite: pass:normal[xref:#PoolController-underwrite-bytes32-[`++underwrite++`]] +:calculateCollateral: pass:normal[xref:#PoolController-calculateCollateral-uint256-uint256-[`++calculateCollateral++`]] +:processPremium: pass:normal[xref:#PoolController-processPremium-bytes32-uint256-[`++processPremium++`]] +:processPayout: pass:normal[xref:#PoolController-processPayout-bytes32-uint256-[`++processPayout++`]] +:release: pass:normal[xref:#PoolController-release-bytes32-[`++release++`]] +:setMaximumNumberOfActiveBundles: pass:normal[xref:#PoolController-setMaximumNumberOfActiveBundles-uint256-uint256-[`++setMaximumNumberOfActiveBundles++`]] +:getMaximumNumberOfActiveBundles: pass:normal[xref:#PoolController-getMaximumNumberOfActiveBundles-uint256-[`++getMaximumNumberOfActiveBundles++`]] +:riskpools: pass:normal[xref:#PoolController-riskpools--[`++riskpools++`]] +:getRiskpool: pass:normal[xref:#PoolController-getRiskpool-uint256-[`++getRiskpool++`]] +:getRiskPoolForProduct: pass:normal[xref:#PoolController-getRiskPoolForProduct-uint256-[`++getRiskPoolForProduct++`]] +:activeBundles: pass:normal[xref:#PoolController-activeBundles-uint256-[`++activeBundles++`]] +:getActiveBundleId: pass:normal[xref:#PoolController-getActiveBundleId-uint256-uint256-[`++getActiveBundleId++`]] +:addBundleIdToActiveSet: pass:normal[xref:#PoolController-addBundleIdToActiveSet-uint256-uint256-[`++addBundleIdToActiveSet++`]] +:removeBundleIdFromActiveSet: pass:normal[xref:#PoolController-removeBundleIdFromActiveSet-uint256-uint256-[`++removeBundleIdFromActiveSet++`]] +:getFullCollateralizationLevel: pass:normal[xref:#PoolController-getFullCollateralizationLevel--[`++getFullCollateralizationLevel++`]] +:_getRiskpoolComponent: pass:normal[xref:#PoolController-_getRiskpoolComponent-struct-IPolicy-Metadata-[`++_getRiskpoolComponent++`]] +:_getRiskpoolForId: pass:normal[xref:#PoolController-_getRiskpoolForId-uint256-[`++_getRiskpoolForId++`]] + +[.contract] +[[PoolController]] +=== `++PoolController++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/modules/PoolController.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/modules/PoolController.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-PoolController-onlyInstanceOperatorService--}[`++onlyInstanceOperatorService()++`] +* {xref-PoolController-onlyRiskpoolService--}[`++onlyRiskpoolService()++`] +* {xref-PoolController-onlyActivePool-uint256-}[`++onlyActivePool(riskpoolId)++`] +* {xref-PoolController-onlyActivePoolForProcess-bytes32-}[`++onlyActivePoolForProcess(processId)++`] +-- + +[.contract-index] +.Functions +-- +* {xref-PoolController-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-PoolController-registerRiskpool-uint256-address-address-uint256-uint256-}[`++registerRiskpool(riskpoolId, wallet, erc20Token, collateralizationLevel, sumOfSumInsuredCap)++`] +* {xref-PoolController-setRiskpoolForProduct-uint256-uint256-}[`++setRiskpoolForProduct(productId, riskpoolId)++`] +* {xref-PoolController-fund-uint256-uint256-}[`++fund(riskpoolId, amount)++`] +* {xref-PoolController-defund-uint256-uint256-}[`++defund(riskpoolId, amount)++`] +* {xref-PoolController-underwrite-bytes32-}[`++underwrite(processId)++`] +* {xref-PoolController-calculateCollateral-uint256-uint256-}[`++calculateCollateral(riskpoolId, sumInsuredAmount)++`] +* {xref-PoolController-processPremium-bytes32-uint256-}[`++processPremium(processId, amount)++`] +* {xref-PoolController-processPayout-bytes32-uint256-}[`++processPayout(processId, amount)++`] +* {xref-PoolController-release-bytes32-}[`++release(processId)++`] +* {xref-PoolController-setMaximumNumberOfActiveBundles-uint256-uint256-}[`++setMaximumNumberOfActiveBundles(riskpoolId, maxNumberOfActiveBundles)++`] +* {xref-PoolController-getMaximumNumberOfActiveBundles-uint256-}[`++getMaximumNumberOfActiveBundles(riskpoolId)++`] +* {xref-PoolController-riskpools--}[`++riskpools()++`] +* {xref-PoolController-getRiskpool-uint256-}[`++getRiskpool(riskpoolId)++`] +* {xref-PoolController-getRiskPoolForProduct-uint256-}[`++getRiskPoolForProduct(productId)++`] +* {xref-PoolController-activeBundles-uint256-}[`++activeBundles(riskpoolId)++`] +* {xref-PoolController-getActiveBundleId-uint256-uint256-}[`++getActiveBundleId(riskpoolId, bundleIdx)++`] +* {xref-PoolController-addBundleIdToActiveSet-uint256-uint256-}[`++addBundleIdToActiveSet(riskpoolId, bundleId)++`] +* {xref-PoolController-removeBundleIdFromActiveSet-uint256-uint256-}[`++removeBundleIdFromActiveSet(riskpoolId, bundleId)++`] +* {xref-PoolController-getFullCollateralizationLevel--}[`++getFullCollateralizationLevel()++`] +* {xref-PoolController-_getRiskpoolComponent-struct-IPolicy-Metadata-}[`++_getRiskpoolComponent(metadata)++`] +* {xref-PoolController-_getRiskpoolForId-uint256-}[`++_getRiskpoolForId(riskpoolId)++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IPool + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IPool +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPool.sol[`++LogRiskpoolRegistered(riskpoolId, wallet, erc20Token, collateralizationLevel, sumOfSumInsuredCap)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPool.sol[`++LogRiskpoolRequiredCollateral(processId, sumInsured, collateral)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPool.sol[`++LogRiskpoolCollateralizationFailed(riskpoolId, processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPool.sol[`++LogRiskpoolCollateralizationSucceeded(riskpoolId, processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IPool.sol[`++LogRiskpoolCollateralReleased(riskpoolId, processId, amount)++`] + +-- + +[.contract-item] +[[PoolController-onlyInstanceOperatorService--]] +==== `[.contract-item-name]#++onlyInstanceOperatorService++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[PoolController-onlyRiskpoolService--]] +==== `[.contract-item-name]#++onlyRiskpoolService++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[PoolController-onlyActivePool-uint256-]] +==== `[.contract-item-name]#++onlyActivePool++#++(uint256 riskpoolId)++` [.item-kind]#modifier# + +[.contract-item] +[[PoolController-onlyActivePoolForProcess-bytes32-]] +==== `[.contract-item-name]#++onlyActivePoolForProcess++#++(bytes32 processId)++` [.item-kind]#modifier# + +[.contract-item] +[[PoolController-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +This function is called after the contract is initialized and sets the addresses of the ComponentController, PolicyController, and BundleController contracts. + +[.contract-item] +[[PoolController-registerRiskpool-uint256-address-address-uint256-uint256-]] +==== `[.contract-item-name]#++registerRiskpool++#++(uint256 riskpoolId, address wallet, address erc20Token, uint256 collateralizationLevel, uint256 sumOfSumInsuredCap)++` [.item-kind]#external# + +Registers a new riskpool with the given parameters. + +[.contract-item] +[[PoolController-setRiskpoolForProduct-uint256-uint256-]] +==== `[.contract-item-name]#++setRiskpoolForProduct++#++(uint256 productId, uint256 riskpoolId)++` [.item-kind]#external# + +Sets the riskpool ID for a given product ID. + +[.contract-item] +[[PoolController-fund-uint256-uint256-]] +==== `[.contract-item-name]#++fund++#++(uint256 riskpoolId, uint256 amount)++` [.item-kind]#external# + +Adds funds to a specific riskpool. + +[.contract-item] +[[PoolController-defund-uint256-uint256-]] +==== `[.contract-item-name]#++defund++#++(uint256 riskpoolId, uint256 amount)++` [.item-kind]#external# + +Allows the Riskpool service to defund the specified Riskpool by the given amount. + +[.contract-item] +[[PoolController-underwrite-bytes32-]] +==== `[.contract-item-name]#++underwrite++#++(bytes32 processId) → bool success++` [.item-kind]#external# + +Underwrites a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. + +[.contract-item] +[[PoolController-calculateCollateral-uint256-uint256-]] +==== `[.contract-item-name]#++calculateCollateral++#++(uint256 riskpoolId, uint256 sumInsuredAmount) → uint256 collateralAmount++` [.item-kind]#public# + +Calculates the required collateral amount for a given riskpool and sum insured amount. + +[.contract-item] +[[PoolController-processPremium-bytes32-uint256-]] +==== `[.contract-item-name]#++processPremium++#++(bytes32 processId, uint256 amount)++` [.item-kind]#external# + +Processes the premium payment for a policy. + +[.contract-item] +[[PoolController-processPayout-bytes32-uint256-]] +==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 amount)++` [.item-kind]#external# + +Process a payout for a policy flow in the Pool. + +[.contract-item] +[[PoolController-release-bytes32-]] +==== `[.contract-item-name]#++release++#++(bytes32 processId)++` [.item-kind]#external# + +Releases a policy's collateral from the riskpool. + +[.contract-item] +[[PoolController-setMaximumNumberOfActiveBundles-uint256-uint256-]] +==== `[.contract-item-name]#++setMaximumNumberOfActiveBundles++#++(uint256 riskpoolId, uint256 maxNumberOfActiveBundles)++` [.item-kind]#external# + +Sets the maximum number of active bundles for a given riskpool ID. + +[.contract-item] +[[PoolController-getMaximumNumberOfActiveBundles-uint256-]] +==== `[.contract-item-name]#++getMaximumNumberOfActiveBundles++#++(uint256 riskpoolId) → uint256 maximumNumberOfActiveBundles++` [.item-kind]#public# + +Returns the maximum number of active bundles for a given riskpool ID. + +[.contract-item] +[[PoolController-riskpools--]] +==== `[.contract-item-name]#++riskpools++#++() → uint256 idx++` [.item-kind]#external# + +Returns the number of risk pools created. + +[.contract-item] +[[PoolController-getRiskpool-uint256-]] +==== `[.contract-item-name]#++getRiskpool++#++(uint256 riskpoolId) → struct IPool.Pool riskPool++` [.item-kind]#public# + +Returns the risk pool data for a given risk pool ID. + +[.contract-item] +[[PoolController-getRiskPoolForProduct-uint256-]] +==== `[.contract-item-name]#++getRiskPoolForProduct++#++(uint256 productId) → uint256 riskpoolId++` [.item-kind]#external# + +Returns the risk pool ID associated with the given product ID. + +[.contract-item] +[[PoolController-activeBundles-uint256-]] +==== `[.contract-item-name]#++activeBundles++#++(uint256 riskpoolId) → uint256 numberOfActiveBundles++` [.item-kind]#external# + +Returns the number of active bundles for a given risk pool ID. + +[.contract-item] +[[PoolController-getActiveBundleId-uint256-uint256-]] +==== `[.contract-item-name]#++getActiveBundleId++#++(uint256 riskpoolId, uint256 bundleIdx) → uint256 bundleId++` [.item-kind]#external# + +Returns the active bundle ID at the specified index for the given risk pool ID. + +[.contract-item] +[[PoolController-addBundleIdToActiveSet-uint256-uint256-]] +==== `[.contract-item-name]#++addBundleIdToActiveSet++#++(uint256 riskpoolId, uint256 bundleId)++` [.item-kind]#external# + +Adds a bundle ID to the active set for a specific riskpool ID. + +[.contract-item] +[[PoolController-removeBundleIdFromActiveSet-uint256-uint256-]] +==== `[.contract-item-name]#++removeBundleIdFromActiveSet++#++(uint256 riskpoolId, uint256 bundleId)++` [.item-kind]#external# + +Removes a bundle ID from the active set for a given risk pool ID. + +[.contract-item] +[[PoolController-getFullCollateralizationLevel--]] +==== `[.contract-item-name]#++getFullCollateralizationLevel++#++() → uint256++` [.item-kind]#external# + +Returns the full collateralization level of the contract. + +[.contract-item] +[[PoolController-_getRiskpoolComponent-struct-IPolicy-Metadata-]] +==== `[.contract-item-name]#++_getRiskpoolComponent++#++(struct IPolicy.Metadata metadata) → contract IRiskpool riskpool++` [.item-kind]#internal# + +Returns the Riskpool contract instance associated with the given policy metadata. + +[.contract-item] +[[PoolController-_getRiskpoolForId-uint256-]] +==== `[.contract-item-name]#++_getRiskpoolForId++#++(uint256 riskpoolId) → contract IRiskpool riskpool++` [.item-kind]#internal# + +Returns the Riskpool contract instance for a given riskpoolId. + +:onlyOracleService: pass:normal[xref:#QueryModule-onlyOracleService--[`++onlyOracleService++`]] +:onlyResponsibleOracle: pass:normal[xref:#QueryModule-onlyResponsibleOracle-uint256-address-[`++onlyResponsibleOracle++`]] +:_afterInitialize: pass:normal[xref:#QueryModule-_afterInitialize--[`++_afterInitialize++`]] +:request: pass:normal[xref:#QueryModule-request-bytes32-bytes-string-address-uint256-[`++request++`]] +:respond: pass:normal[xref:#QueryModule-respond-uint256-address-bytes-[`++respond++`]] +:cancel: pass:normal[xref:#QueryModule-cancel-uint256-[`++cancel++`]] +:getProcessId: pass:normal[xref:#QueryModule-getProcessId-uint256-[`++getProcessId++`]] +:getOracleRequestCount: pass:normal[xref:#QueryModule-getOracleRequestCount--[`++getOracleRequestCount++`]] +:_getOracle: pass:normal[xref:#QueryModule-_getOracle-uint256-[`++_getOracle++`]] + +[.contract] +[[QueryModule]] +=== `++QueryModule++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/modules/QueryModule.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/modules/QueryModule.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-QueryModule-onlyOracleService--}[`++onlyOracleService()++`] +* {xref-QueryModule-onlyResponsibleOracle-uint256-address-}[`++onlyResponsibleOracle(requestId, responder)++`] +-- + +[.contract-index] +.Functions +-- +* {xref-QueryModule-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-QueryModule-request-bytes32-bytes-string-address-uint256-}[`++request(processId, input, callbackMethodName, callbackContractAddress, responsibleOracleId)++`] +* {xref-QueryModule-respond-uint256-address-bytes-}[`++respond(requestId, responder, data)++`] +* {xref-QueryModule-cancel-uint256-}[`++cancel(requestId)++`] +* {xref-QueryModule-getProcessId-uint256-}[`++getProcessId(requestId)++`] +* {xref-QueryModule-getOracleRequestCount--}[`++getOracleRequestCount()++`] +* {xref-QueryModule-_getOracle-uint256-}[`++_getOracle(id)++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IQuery + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IQuery +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IQuery.sol[`++LogOracleRequested(processId, requestId, responsibleOracleId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IQuery.sol[`++LogOracleResponded(processId, requestId, responder, success)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IQuery.sol[`++LogOracleCanceled(requestId)++`] + +-- + +[.contract-item] +[[QueryModule-onlyOracleService--]] +==== `[.contract-item-name]#++onlyOracleService++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[QueryModule-onlyResponsibleOracle-uint256-address-]] +==== `[.contract-item-name]#++onlyResponsibleOracle++#++(uint256 requestId, address responder)++` [.item-kind]#modifier# + +[.contract-item] +[[QueryModule-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +Internal function that sets the `_component` variable to the `ComponentController` contract address. + +[.contract-item] +[[QueryModule-request-bytes32-bytes-string-address-uint256-]] +==== `[.contract-item-name]#++request++#++(bytes32 processId, bytes input, string callbackMethodName, address callbackContractAddress, uint256 responsibleOracleId) → uint256 requestId++` [.item-kind]#external# + +Creates a new oracle request for a given process with the specified input data and callback information. + +[.contract-item] +[[QueryModule-respond-uint256-address-bytes-]] +==== `[.contract-item-name]#++respond++#++(uint256 requestId, address responder, bytes data)++` [.item-kind]#external# + +Responds to an oracle request with the given requestId, responder address, and data. + +[.contract-item] +[[QueryModule-cancel-uint256-]] +==== `[.contract-item-name]#++cancel++#++(uint256 requestId)++` [.item-kind]#external# + +Cancels an oracle request. + +[.contract-item] +[[QueryModule-getProcessId-uint256-]] +==== `[.contract-item-name]#++getProcessId++#++(uint256 requestId) → bytes32 processId++` [.item-kind]#external# + +Returns the process ID associated with a given request ID. + +[.contract-item] +[[QueryModule-getOracleRequestCount--]] +==== `[.contract-item-name]#++getOracleRequestCount++#++() → uint256 _count++` [.item-kind]#public# + +Returns the number of oracle requests made. + +[.contract-item] +[[QueryModule-_getOracle-uint256-]] +==== `[.contract-item-name]#++_getOracle++#++(uint256 id) → contract IOracle oracle++` [.item-kind]#internal# + +Returns the Oracle component with the specified ID. + +:MAX_CONTRACTS: pass:normal[xref:#RegistryController-MAX_CONTRACTS-uint256[`++MAX_CONTRACTS++`]] +:release: pass:normal[xref:#RegistryController-release-bytes32[`++release++`]] +:startBlock: pass:normal[xref:#RegistryController-startBlock-uint256[`++startBlock++`]] +:_contracts: pass:normal[xref:#RegistryController-_contracts-mapping-bytes32----mapping-bytes32----address--[`++_contracts++`]] +:_contractsInRelease: pass:normal[xref:#RegistryController-_contractsInRelease-mapping-bytes32----uint256-[`++_contractsInRelease++`]] +:initializeRegistry: pass:normal[xref:#RegistryController-initializeRegistry-bytes32-[`++initializeRegistry++`]] +:ensureSender: pass:normal[xref:#RegistryController-ensureSender-address-bytes32-[`++ensureSender++`]] +:getRelease: pass:normal[xref:#RegistryController-getRelease--[`++getRelease++`]] +:getContract: pass:normal[xref:#RegistryController-getContract-bytes32-[`++getContract++`]] +:register: pass:normal[xref:#RegistryController-register-bytes32-address-[`++register++`]] +:deregister: pass:normal[xref:#RegistryController-deregister-bytes32-[`++deregister++`]] +:getContractInRelease: pass:normal[xref:#RegistryController-getContractInRelease-bytes32-bytes32-[`++getContractInRelease++`]] +:registerInRelease: pass:normal[xref:#RegistryController-registerInRelease-bytes32-bytes32-address-[`++registerInRelease++`]] +:deregisterInRelease: pass:normal[xref:#RegistryController-deregisterInRelease-bytes32-bytes32-[`++deregisterInRelease++`]] +:prepareRelease: pass:normal[xref:#RegistryController-prepareRelease-bytes32-[`++prepareRelease++`]] +:contracts: pass:normal[xref:#RegistryController-contracts--[`++contracts++`]] +:contractName: pass:normal[xref:#RegistryController-contractName-uint256-[`++contractName++`]] +:_getContractInRelease: pass:normal[xref:#RegistryController-_getContractInRelease-bytes32-bytes32-[`++_getContractInRelease++`]] +:_registerInRelease: pass:normal[xref:#RegistryController-_registerInRelease-bytes32-bool-bytes32-address-[`++_registerInRelease++`]] +:_deregisterInRelease: pass:normal[xref:#RegistryController-_deregisterInRelease-bytes32-bytes32-[`++_deregisterInRelease++`]] + +[.contract] +[[RegistryController]] +=== `++RegistryController++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/modules/RegistryController.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/modules/RegistryController.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-RegistryController-initializeRegistry-bytes32-}[`++initializeRegistry(_initialRelease)++`] +* {xref-RegistryController-ensureSender-address-bytes32-}[`++ensureSender(sender, _contractName)++`] +* {xref-RegistryController-getRelease--}[`++getRelease()++`] +* {xref-RegistryController-getContract-bytes32-}[`++getContract(_contractName)++`] +* {xref-RegistryController-register-bytes32-address-}[`++register(_contractName, _contractAddress)++`] +* {xref-RegistryController-deregister-bytes32-}[`++deregister(_contractName)++`] +* {xref-RegistryController-getContractInRelease-bytes32-bytes32-}[`++getContractInRelease(_release, _contractName)++`] +* {xref-RegistryController-registerInRelease-bytes32-bytes32-address-}[`++registerInRelease(_release, _contractName, _contractAddress)++`] +* {xref-RegistryController-deregisterInRelease-bytes32-bytes32-}[`++deregisterInRelease(_release, _contractName)++`] +* {xref-RegistryController-prepareRelease-bytes32-}[`++prepareRelease(_newRelease)++`] +* {xref-RegistryController-contracts--}[`++contracts()++`] +* {xref-RegistryController-contractName-uint256-}[`++contractName(idx)++`] +* {xref-RegistryController-_getContractInRelease-bytes32-bytes32-}[`++_getContractInRelease(_release, _contractName)++`] +* {xref-RegistryController-_registerInRelease-bytes32-bool-bytes32-address-}[`++_registerInRelease(_release, isNewRelease, _contractName, _contractAddress)++`] +* {xref-RegistryController-_deregisterInRelease-bytes32-bytes32-}[`++_deregisterInRelease(_release, _contractName)++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IRegistry + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IRegistry +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IRegistry.sol[`++LogContractRegistered(release, contractName, contractAddress, isNew)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IRegistry.sol[`++LogContractDeregistered(release, contractName)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IRegistry.sol[`++LogReleasePrepared(release)++`] + +-- + +[.contract-item] +[[RegistryController-initializeRegistry-bytes32-]] +==== `[.contract-item-name]#++initializeRegistry++#++(bytes32 _initialRelease)++` [.item-kind]#public# + +Initializes the GIF registry with an initial release and sets the deployment block for reading logs. + +[.contract-item] +[[RegistryController-ensureSender-address-bytes32-]] +==== `[.contract-item-name]#++ensureSender++#++(address sender, bytes32 _contractName) → bool _senderMatches++` [.item-kind]#external# + +Verifies if the provided 'sender' address matches the address of the contract with the given '_contractName' in the current release. + +[.contract-item] +[[RegistryController-getRelease--]] +==== `[.contract-item-name]#++getRelease++#++() → bytes32 _release++` [.item-kind]#external# + +Returns the current release identifier. + +[.contract-item] +[[RegistryController-getContract-bytes32-]] +==== `[.contract-item-name]#++getContract++#++(bytes32 _contractName) → address _addr++` [.item-kind]#public# + +Returns the address of a contract by its name. + +[.contract-item] +[[RegistryController-register-bytes32-address-]] +==== `[.contract-item-name]#++register++#++(bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# + +Registers a contract with a given name and address. + +[.contract-item] +[[RegistryController-deregister-bytes32-]] +==== `[.contract-item-name]#++deregister++#++(bytes32 _contractName)++` [.item-kind]#external# + +Deregisters a contract from the current release. + +[.contract-item] +[[RegistryController-getContractInRelease-bytes32-bytes32-]] +==== `[.contract-item-name]#++getContractInRelease++#++(bytes32 _release, bytes32 _contractName) → address _addr++` [.item-kind]#external# + +Returns the address of a specific contract within a given release. + +[.contract-item] +[[RegistryController-registerInRelease-bytes32-bytes32-address-]] +==== `[.contract-item-name]#++registerInRelease++#++(bytes32 _release, bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# + +Registers a contract in a specific release. + +[.contract-item] +[[RegistryController-deregisterInRelease-bytes32-bytes32-]] +==== `[.contract-item-name]#++deregisterInRelease++#++(bytes32 _release, bytes32 _contractName)++` [.item-kind]#external# + +Deregisters a contract name from a specific release. + +[.contract-item] +[[RegistryController-prepareRelease-bytes32-]] +==== `[.contract-item-name]#++prepareRelease++#++(bytes32 _newRelease)++` [.item-kind]#external# + +Prepares a new release by copying all contracts from the current release to the new one. + +[.contract-item] +[[RegistryController-contracts--]] +==== `[.contract-item-name]#++contracts++#++() → uint256 _numberOfContracts++` [.item-kind]#external# + +Returns the number of contracts in the current release. + +[.contract-item] +[[RegistryController-contractName-uint256-]] +==== `[.contract-item-name]#++contractName++#++(uint256 idx) → bytes32 _contractName++` [.item-kind]#external# + +Returns the name of the contract at the specified index in the contractNames set. + +[.contract-item] +[[RegistryController-_getContractInRelease-bytes32-bytes32-]] +==== `[.contract-item-name]#++_getContractInRelease++#++(bytes32 _release, bytes32 _contractName) → address _addr++` [.item-kind]#internal# + +Returns the address of a contract in a specific release. + +[.contract-item] +[[RegistryController-_registerInRelease-bytes32-bool-bytes32-address-]] +==== `[.contract-item-name]#++_registerInRelease++#++(bytes32 _release, bool isNewRelease, bytes32 _contractName, address _contractAddress)++` [.item-kind]#internal# + +Registers a contract in a release. + +[.contract-item] +[[RegistryController-_deregisterInRelease-bytes32-bytes32-]] +==== `[.contract-item-name]#++_deregisterInRelease++#++(bytes32 _release, bytes32 _contractName)++` [.item-kind]#internal# + +Internal function to deregister a contract in a specific release. + +:FRACTION_FULL_UNIT: pass:normal[xref:#TreasuryModule-FRACTION_FULL_UNIT-uint256[`++FRACTION_FULL_UNIT++`]] +:FRACTIONAL_FEE_MAX: pass:normal[xref:#TreasuryModule-FRACTIONAL_FEE_MAX-uint256[`++FRACTIONAL_FEE_MAX++`]] +:LogTransferHelperInputValidation1Failed: pass:normal[xref:#TreasuryModule-LogTransferHelperInputValidation1Failed-bool-address-address-[`++LogTransferHelperInputValidation1Failed++`]] +:LogTransferHelperInputValidation2Failed: pass:normal[xref:#TreasuryModule-LogTransferHelperInputValidation2Failed-uint256-uint256-[`++LogTransferHelperInputValidation2Failed++`]] +:LogTransferHelperCallFailed: pass:normal[xref:#TreasuryModule-LogTransferHelperCallFailed-bool-uint256-bytes-[`++LogTransferHelperCallFailed++`]] +:instanceWalletDefined: pass:normal[xref:#TreasuryModule-instanceWalletDefined--[`++instanceWalletDefined++`]] +:riskpoolWalletDefinedForProcess: pass:normal[xref:#TreasuryModule-riskpoolWalletDefinedForProcess-bytes32-[`++riskpoolWalletDefinedForProcess++`]] +:riskpoolWalletDefinedForBundle: pass:normal[xref:#TreasuryModule-riskpoolWalletDefinedForBundle-uint256-[`++riskpoolWalletDefinedForBundle++`]] +:whenNotSuspended: pass:normal[xref:#TreasuryModule-whenNotSuspended--[`++whenNotSuspended++`]] +:onlyRiskpoolService: pass:normal[xref:#TreasuryModule-onlyRiskpoolService--[`++onlyRiskpoolService++`]] +:_afterInitialize: pass:normal[xref:#TreasuryModule-_afterInitialize--[`++_afterInitialize++`]] +:suspend: pass:normal[xref:#TreasuryModule-suspend--[`++suspend++`]] +:resume: pass:normal[xref:#TreasuryModule-resume--[`++resume++`]] +:setProductToken: pass:normal[xref:#TreasuryModule-setProductToken-uint256-address-[`++setProductToken++`]] +:setInstanceWallet: pass:normal[xref:#TreasuryModule-setInstanceWallet-address-[`++setInstanceWallet++`]] +:setRiskpoolWallet: pass:normal[xref:#TreasuryModule-setRiskpoolWallet-uint256-address-[`++setRiskpoolWallet++`]] +:createFeeSpecification: pass:normal[xref:#TreasuryModule-createFeeSpecification-uint256-uint256-uint256-bytes-[`++createFeeSpecification++`]] +:setPremiumFees: pass:normal[xref:#TreasuryModule-setPremiumFees-struct-ITreasury-FeeSpecification-[`++setPremiumFees++`]] +:setCapitalFees: pass:normal[xref:#TreasuryModule-setCapitalFees-struct-ITreasury-FeeSpecification-[`++setCapitalFees++`]] +:calculateFee: pass:normal[xref:#TreasuryModule-calculateFee-uint256-uint256-[`++calculateFee++`]] +:processPremium: pass:normal[xref:#TreasuryModule-processPremium-bytes32-[`++processPremium++`]] +:processPremium: pass:normal[xref:#TreasuryModule-processPremium-bytes32-uint256-[`++processPremium++`]] +:processPayout: pass:normal[xref:#TreasuryModule-processPayout-bytes32-uint256-[`++processPayout++`]] +:processCapital: pass:normal[xref:#TreasuryModule-processCapital-uint256-uint256-[`++processCapital++`]] +:processWithdrawal: pass:normal[xref:#TreasuryModule-processWithdrawal-uint256-uint256-[`++processWithdrawal++`]] +:getComponentToken: pass:normal[xref:#TreasuryModule-getComponentToken-uint256-[`++getComponentToken++`]] +:getFeeSpecification: pass:normal[xref:#TreasuryModule-getFeeSpecification-uint256-[`++getFeeSpecification++`]] +:getFractionFullUnit: pass:normal[xref:#TreasuryModule-getFractionFullUnit--[`++getFractionFullUnit++`]] +:getInstanceWallet: pass:normal[xref:#TreasuryModule-getInstanceWallet--[`++getInstanceWallet++`]] +:getRiskpoolWallet: pass:normal[xref:#TreasuryModule-getRiskpoolWallet-uint256-[`++getRiskpoolWallet++`]] +:_calculatePremiumFee: pass:normal[xref:#TreasuryModule-_calculatePremiumFee-struct-ITreasury-FeeSpecification-bytes32-[`++_calculatePremiumFee++`]] +:_calculateFee: pass:normal[xref:#TreasuryModule-_calculateFee-struct-ITreasury-FeeSpecification-uint256-[`++_calculateFee++`]] +:_getRiskpoolWallet: pass:normal[xref:#TreasuryModule-_getRiskpoolWallet-bytes32-[`++_getRiskpoolWallet++`]] + +[.contract] +[[TreasuryModule]] +=== `++TreasuryModule++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/modules/TreasuryModule.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/modules/TreasuryModule.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-TreasuryModule-instanceWalletDefined--}[`++instanceWalletDefined()++`] +* {xref-TreasuryModule-riskpoolWalletDefinedForProcess-bytes32-}[`++riskpoolWalletDefinedForProcess(processId)++`] +* {xref-TreasuryModule-riskpoolWalletDefinedForBundle-uint256-}[`++riskpoolWalletDefinedForBundle(bundleId)++`] +* {xref-TreasuryModule-whenNotSuspended--}[`++whenNotSuspended()++`] +* {xref-TreasuryModule-onlyRiskpoolService--}[`++onlyRiskpoolService()++`] +-- + +[.contract-index] +.Functions +-- +* {xref-TreasuryModule-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-TreasuryModule-suspend--}[`++suspend()++`] +* {xref-TreasuryModule-resume--}[`++resume()++`] +* {xref-TreasuryModule-setProductToken-uint256-address-}[`++setProductToken(productId, erc20Address)++`] +* {xref-TreasuryModule-setInstanceWallet-address-}[`++setInstanceWallet(instanceWalletAddress)++`] +* {xref-TreasuryModule-setRiskpoolWallet-uint256-address-}[`++setRiskpoolWallet(riskpoolId, riskpoolWalletAddress)++`] +* {xref-TreasuryModule-createFeeSpecification-uint256-uint256-uint256-bytes-}[`++createFeeSpecification(componentId, fixedFee, fractionalFee, feeCalculationData)++`] +* {xref-TreasuryModule-setPremiumFees-struct-ITreasury-FeeSpecification-}[`++setPremiumFees(feeSpec)++`] +* {xref-TreasuryModule-setCapitalFees-struct-ITreasury-FeeSpecification-}[`++setCapitalFees(feeSpec)++`] +* {xref-TreasuryModule-calculateFee-uint256-uint256-}[`++calculateFee(componentId, amount)++`] +* {xref-TreasuryModule-processPremium-bytes32-}[`++processPremium(processId)++`] +* {xref-TreasuryModule-processPremium-bytes32-uint256-}[`++processPremium(processId, amount)++`] +* {xref-TreasuryModule-processPayout-bytes32-uint256-}[`++processPayout(processId, payoutId)++`] +* {xref-TreasuryModule-processCapital-uint256-uint256-}[`++processCapital(bundleId, capitalAmount)++`] +* {xref-TreasuryModule-processWithdrawal-uint256-uint256-}[`++processWithdrawal(bundleId, amount)++`] +* {xref-TreasuryModule-getComponentToken-uint256-}[`++getComponentToken(componentId)++`] +* {xref-TreasuryModule-getFeeSpecification-uint256-}[`++getFeeSpecification(componentId)++`] +* {xref-TreasuryModule-getFractionFullUnit--}[`++getFractionFullUnit()++`] +* {xref-TreasuryModule-getInstanceWallet--}[`++getInstanceWallet()++`] +* {xref-TreasuryModule-getRiskpoolWallet-uint256-}[`++getRiskpoolWallet(riskpoolId)++`] +* {xref-TreasuryModule-_calculatePremiumFee-struct-ITreasury-FeeSpecification-bytes32-}[`++_calculatePremiumFee(feeSpec, processId)++`] +* {xref-TreasuryModule-_calculateFee-struct-ITreasury-FeeSpecification-uint256-}[`++_calculateFee(feeSpec, amount)++`] +* {xref-TreasuryModule-_getRiskpoolWallet-bytes32-}[`++_getRiskpoolWallet(processId)++`] + +[.contract-subindex-inherited] +.Pausable +* https://docs.openzeppelin.com/contracts/3.x/api/security#Pausable-paused--[`++paused()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/security#Pausable-_requireNotPaused--[`++_requireNotPaused()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/security#Pausable-_requirePaused--[`++_requirePaused()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/security#Pausable-_pause--[`++_pause()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/security#Pausable-_unpause--[`++_unpause()++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.ITreasury + +-- + +[.contract-index] +.Events +-- +* {xref-TreasuryModule-LogTransferHelperInputValidation1Failed-bool-address-address-}[`++LogTransferHelperInputValidation1Failed(tokenIsContract, from, to)++`] +* {xref-TreasuryModule-LogTransferHelperInputValidation2Failed-uint256-uint256-}[`++LogTransferHelperInputValidation2Failed(balance, allowance)++`] +* {xref-TreasuryModule-LogTransferHelperCallFailed-bool-uint256-bytes-}[`++LogTransferHelperCallFailed(callSuccess, returnDataLength, returnData)++`] + +[.contract-subindex-inherited] +.Pausable +* https://docs.openzeppelin.com/contracts/3.x/api/security#Pausable-Paused-address-[`++Paused(account)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/security#Pausable-Unpaused-address-[`++Unpaused(account)++`] + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.ITreasury +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasurySuspended()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryResumed()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryProductTokenSet(productId, riskpoolId, erc20Address)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryInstanceWalletSet(walletAddress)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryRiskpoolWalletSet(riskpoolId, walletAddress)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryPremiumFeesSet(productId, fixedFee, fractionalFee)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryCapitalFeesSet(riskpoolId, fixedFee, fractionalFee)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryPremiumTransferred(from, riskpoolWalletAddress, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryPayoutTransferred(riskpoolWalletAddress, to, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryCapitalTransferred(from, riskpoolWalletAddress, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryFeesTransferred(from, instanceWalletAddress, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryWithdrawalTransferred(riskpoolWalletAddress, to, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryPremiumProcessed(processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryPayoutProcessed(riskpoolId, to, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryCapitalProcessed(riskpoolId, bundleId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/ITreasury.sol[`++LogTreasuryWithdrawalProcessed(riskpoolId, bundleId, amount)++`] + +-- + +[.contract-item] +[[TreasuryModule-instanceWalletDefined--]] +==== `[.contract-item-name]#++instanceWalletDefined++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[TreasuryModule-riskpoolWalletDefinedForProcess-bytes32-]] +==== `[.contract-item-name]#++riskpoolWalletDefinedForProcess++#++(bytes32 processId)++` [.item-kind]#modifier# + +[.contract-item] +[[TreasuryModule-riskpoolWalletDefinedForBundle-uint256-]] +==== `[.contract-item-name]#++riskpoolWalletDefinedForBundle++#++(uint256 bundleId)++` [.item-kind]#modifier# + +[.contract-item] +[[TreasuryModule-whenNotSuspended--]] +==== `[.contract-item-name]#++whenNotSuspended++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[TreasuryModule-onlyRiskpoolService--]] +==== `[.contract-item-name]#++onlyRiskpoolService++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[TreasuryModule-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +Sets the addresses of the BundleController, ComponentController, PolicyController, and PoolController contracts. + +[.contract-item] +[[TreasuryModule-suspend--]] +==== `[.contract-item-name]#++suspend++#++()++` [.item-kind]#external# + +Suspends the treasury contract, preventing any further transfers or withdrawals. + Can only be called by the instance operator. + +[.contract-item] +[[TreasuryModule-resume--]] +==== `[.contract-item-name]#++resume++#++()++` [.item-kind]#external# + +Resumes the treasury contract after it has been paused. + +[.contract-item] +[[TreasuryModule-setProductToken-uint256-address-]] +==== `[.contract-item-name]#++setProductToken++#++(uint256 productId, address erc20Address)++` [.item-kind]#external# + +Sets the ERC20 token address for a given product ID and its associated risk pool. + +[.contract-item] +[[TreasuryModule-setInstanceWallet-address-]] +==== `[.contract-item-name]#++setInstanceWallet++#++(address instanceWalletAddress)++` [.item-kind]#external# + +Sets the address of the instance wallet. + +[.contract-item] +[[TreasuryModule-setRiskpoolWallet-uint256-address-]] +==== `[.contract-item-name]#++setRiskpoolWallet++#++(uint256 riskpoolId, address riskpoolWalletAddress)++` [.item-kind]#external# + +Sets the wallet address for a specific riskpool. + +[.contract-item] +[[TreasuryModule-createFeeSpecification-uint256-uint256-uint256-bytes-]] +==== `[.contract-item-name]#++createFeeSpecification++#++(uint256 componentId, uint256 fixedFee, uint256 fractionalFee, bytes feeCalculationData) → struct ITreasury.FeeSpecification++` [.item-kind]#external# + +Creates a fee specification for a given component. + +[.contract-item] +[[TreasuryModule-setPremiumFees-struct-ITreasury-FeeSpecification-]] +==== `[.contract-item-name]#++setPremiumFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# + +Sets the premium fees for a specific component. + +[.contract-item] +[[TreasuryModule-setCapitalFees-struct-ITreasury-FeeSpecification-]] +==== `[.contract-item-name]#++setCapitalFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# + +Sets the fee specification for a given component, which includes the fixed and fractional fees. + +[.contract-item] +[[TreasuryModule-calculateFee-uint256-uint256-]] +==== `[.contract-item-name]#++calculateFee++#++(uint256 componentId, uint256 amount) → uint256 feeAmount, uint256 netAmount++` [.item-kind]#public# + +Calculates the fee amount and net amount for a given component ID and amount. + +[.contract-item] +[[TreasuryModule-processPremium-bytes32-]] +==== `[.contract-item-name]#++processPremium++#++(bytes32 processId) → bool success, uint256 feeAmount, uint256 netPremiumAmount++` [.item-kind]#external# + +Processes the premium for a given policy process ID. + +[.contract-item] +[[TreasuryModule-processPremium-bytes32-uint256-]] +==== `[.contract-item-name]#++processPremium++#++(bytes32 processId, uint256 amount) → bool success, uint256 feeAmount, uint256 netAmount++` [.item-kind]#public# + +Processes a premium payment for a policy. + +[.contract-item] +[[TreasuryModule-processPayout-bytes32-uint256-]] +==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 payoutId) → uint256 feeAmount, uint256 netPayoutAmount++` [.item-kind]#external# + +Processes a payout for a specific process and payout ID. + +[.contract-item] +[[TreasuryModule-processCapital-uint256-uint256-]] +==== `[.contract-item-name]#++processCapital++#++(uint256 bundleId, uint256 capitalAmount) → uint256 feeAmount, uint256 netCapitalAmount++` [.item-kind]#external# + +Processes capital for a given bundle ID and calculates fees. Transfers fees to the instance wallet and net capital to the riskpool wallet. + +[.contract-item] +[[TreasuryModule-processWithdrawal-uint256-uint256-]] +==== `[.contract-item-name]#++processWithdrawal++#++(uint256 bundleId, uint256 amount) → uint256 feeAmount, uint256 netAmount++` [.item-kind]#external# + +Processes a withdrawal of a specified amount from a bundle, transferring the funds to the bundle owner's wallet. + +[.contract-item] +[[TreasuryModule-getComponentToken-uint256-]] +==== `[.contract-item-name]#++getComponentToken++#++(uint256 componentId) → contract IERC20 token++` [.item-kind]#public# + +Returns the ERC20 token address associated with the given component ID. + +[.contract-item] +[[TreasuryModule-getFeeSpecification-uint256-]] +==== `[.contract-item-name]#++getFeeSpecification++#++(uint256 componentId) → struct ITreasury.FeeSpecification++` [.item-kind]#public# + +Returns the fee specification of a given component. + +[.contract-item] +[[TreasuryModule-getFractionFullUnit--]] +==== `[.contract-item-name]#++getFractionFullUnit++#++() → uint256++` [.item-kind]#public# + +Returns the value of the constant FRACTION_FULL_UNIT. + +[.contract-item] +[[TreasuryModule-getInstanceWallet--]] +==== `[.contract-item-name]#++getInstanceWallet++#++() → address++` [.item-kind]#public# + +Returns the address of the instance wallet. + +[.contract-item] +[[TreasuryModule-getRiskpoolWallet-uint256-]] +==== `[.contract-item-name]#++getRiskpoolWallet++#++(uint256 riskpoolId) → address++` [.item-kind]#public# + +Returns the wallet address of the specified risk pool. + +[.contract-item] +[[TreasuryModule-_calculatePremiumFee-struct-ITreasury-FeeSpecification-bytes32-]] +==== `[.contract-item-name]#++_calculatePremiumFee++#++(struct ITreasury.FeeSpecification feeSpec, bytes32 processId) → struct IPolicy.Application application, uint256 feeAmount++` [.item-kind]#internal# + +Calculates the premium fee for a given fee specification and process ID. + +[.contract-item] +[[TreasuryModule-_calculateFee-struct-ITreasury-FeeSpecification-uint256-]] +==== `[.contract-item-name]#++_calculateFee++#++(struct ITreasury.FeeSpecification feeSpec, uint256 amount) → uint256 feeAmount++` [.item-kind]#internal# + +Calculates the fee amount based on the given fee specification and the transaction amount. + +[.contract-item] +[[TreasuryModule-_getRiskpoolWallet-bytes32-]] +==== `[.contract-item-name]#++_getRiskpoolWallet++#++(bytes32 processId) → uint256 riskpoolId, address riskpoolWalletAddress++` [.item-kind]#internal# + +Returns the riskpool ID and wallet address for a given process ID. + +[.contract-item] +[[TreasuryModule-LogTransferHelperInputValidation1Failed-bool-address-address-]] +==== `[.contract-item-name]#++LogTransferHelperInputValidation1Failed++#++(bool tokenIsContract, address from, address to)++` [.item-kind]#event# + +[.contract-item] +[[TreasuryModule-LogTransferHelperInputValidation2Failed-uint256-uint256-]] +==== `[.contract-item-name]#++LogTransferHelperInputValidation2Failed++#++(uint256 balance, uint256 allowance)++` [.item-kind]#event# + +[.contract-item] +[[TreasuryModule-LogTransferHelperCallFailed-bool-uint256-bytes-]] +==== `[.contract-item-name]#++LogTransferHelperCallFailed++#++(bool callSuccess, uint256 returnDataLength, bytes returnData)++` [.item-kind]#event# + diff --git a/docs/modules/api/pages/services.adoc b/docs/modules/api/pages/services.adoc new file mode 100644 index 00000000..923835ba --- /dev/null +++ b/docs/modules/api/pages/services.adoc @@ -0,0 +1,1352 @@ +:github-icon: pass:[] +:xref-ComponentOwnerService-onlyOwnerWithRoleFromComponent-contract-IComponent-: xref:services.adoc#ComponentOwnerService-onlyOwnerWithRoleFromComponent-contract-IComponent- +:xref-ComponentOwnerService-onlyOwnerWithRole-uint256-: xref:services.adoc#ComponentOwnerService-onlyOwnerWithRole-uint256- +:xref-ComponentOwnerService-_afterInitialize--: xref:services.adoc#ComponentOwnerService-_afterInitialize-- +:xref-ComponentOwnerService-propose-contract-IComponent-: xref:services.adoc#ComponentOwnerService-propose-contract-IComponent- +:xref-ComponentOwnerService-stake-uint256-: xref:services.adoc#ComponentOwnerService-stake-uint256- +:xref-ComponentOwnerService-withdraw-uint256-: xref:services.adoc#ComponentOwnerService-withdraw-uint256- +:xref-ComponentOwnerService-pause-uint256-: xref:services.adoc#ComponentOwnerService-pause-uint256- +:xref-ComponentOwnerService-unpause-uint256-: xref:services.adoc#ComponentOwnerService-unpause-uint256- +:xref-ComponentOwnerService-archive-uint256-: xref:services.adoc#ComponentOwnerService-archive-uint256- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-InstanceOperatorService-onlyInstanceOperatorAddress--: xref:services.adoc#InstanceOperatorService-onlyInstanceOperatorAddress-- +:xref-InstanceOperatorService-_afterInitialize--: xref:services.adoc#InstanceOperatorService-_afterInitialize-- +:xref-InstanceOperatorService-prepareRelease-bytes32-: xref:services.adoc#InstanceOperatorService-prepareRelease-bytes32- +:xref-InstanceOperatorService-register-bytes32-address-: xref:services.adoc#InstanceOperatorService-register-bytes32-address- +:xref-InstanceOperatorService-deregister-bytes32-: xref:services.adoc#InstanceOperatorService-deregister-bytes32- +:xref-InstanceOperatorService-registerInRelease-bytes32-bytes32-address-: xref:services.adoc#InstanceOperatorService-registerInRelease-bytes32-bytes32-address- +:xref-InstanceOperatorService-deregisterInRelease-bytes32-bytes32-: xref:services.adoc#InstanceOperatorService-deregisterInRelease-bytes32-bytes32- +:xref-InstanceOperatorService-createRole-bytes32-: xref:services.adoc#InstanceOperatorService-createRole-bytes32- +:xref-InstanceOperatorService-invalidateRole-bytes32-: xref:services.adoc#InstanceOperatorService-invalidateRole-bytes32- +:xref-InstanceOperatorService-grantRole-bytes32-address-: xref:services.adoc#InstanceOperatorService-grantRole-bytes32-address- +:xref-InstanceOperatorService-revokeRole-bytes32-address-: xref:services.adoc#InstanceOperatorService-revokeRole-bytes32-address- +:xref-InstanceOperatorService-approve-uint256-: xref:services.adoc#InstanceOperatorService-approve-uint256- +:xref-InstanceOperatorService-decline-uint256-: xref:services.adoc#InstanceOperatorService-decline-uint256- +:xref-InstanceOperatorService-suspend-uint256-: xref:services.adoc#InstanceOperatorService-suspend-uint256- +:xref-InstanceOperatorService-resume-uint256-: xref:services.adoc#InstanceOperatorService-resume-uint256- +:xref-InstanceOperatorService-archive-uint256-: xref:services.adoc#InstanceOperatorService-archive-uint256- +:xref-InstanceOperatorService-setDefaultStaking-uint16-bytes-: xref:services.adoc#InstanceOperatorService-setDefaultStaking-uint16-bytes- +:xref-InstanceOperatorService-adjustStakingRequirements-uint256-bytes-: xref:services.adoc#InstanceOperatorService-adjustStakingRequirements-uint256-bytes- +:xref-InstanceOperatorService-suspendTreasury--: xref:services.adoc#InstanceOperatorService-suspendTreasury-- +:xref-InstanceOperatorService-resumeTreasury--: xref:services.adoc#InstanceOperatorService-resumeTreasury-- +:xref-InstanceOperatorService-setInstanceWallet-address-: xref:services.adoc#InstanceOperatorService-setInstanceWallet-address- +:xref-InstanceOperatorService-setRiskpoolWallet-uint256-address-: xref:services.adoc#InstanceOperatorService-setRiskpoolWallet-uint256-address- +:xref-InstanceOperatorService-setProductToken-uint256-address-: xref:services.adoc#InstanceOperatorService-setProductToken-uint256-address- +:xref-InstanceOperatorService-createFeeSpecification-uint256-uint256-uint256-bytes-: xref:services.adoc#InstanceOperatorService-createFeeSpecification-uint256-uint256-uint256-bytes- +:xref-InstanceOperatorService-setPremiumFees-struct-ITreasury-FeeSpecification-: xref:services.adoc#InstanceOperatorService-setPremiumFees-struct-ITreasury-FeeSpecification- +:xref-InstanceOperatorService-setCapitalFees-struct-ITreasury-FeeSpecification-: xref:services.adoc#InstanceOperatorService-setCapitalFees-struct-ITreasury-FeeSpecification- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-InstanceService-_afterInitialize--: xref:services.adoc#InstanceService-_afterInitialize-- +:xref-InstanceService-_setChainNames--: xref:services.adoc#InstanceService-_setChainNames-- +:xref-InstanceService-getChainId--: xref:services.adoc#InstanceService-getChainId-- +:xref-InstanceService-getChainName--: xref:services.adoc#InstanceService-getChainName-- +:xref-InstanceService-getInstanceId--: xref:services.adoc#InstanceService-getInstanceId-- +:xref-InstanceService-getInstanceOperator--: xref:services.adoc#InstanceService-getInstanceOperator-- +:xref-InstanceService-getComponentOwnerService--: xref:services.adoc#InstanceService-getComponentOwnerService-- +:xref-InstanceService-getInstanceOperatorService--: xref:services.adoc#InstanceService-getInstanceOperatorService-- +:xref-InstanceService-getOracleService--: xref:services.adoc#InstanceService-getOracleService-- +:xref-InstanceService-getProductService--: xref:services.adoc#InstanceService-getProductService-- +:xref-InstanceService-getRiskpoolService--: xref:services.adoc#InstanceService-getRiskpoolService-- +:xref-InstanceService-getRegistry--: xref:services.adoc#InstanceService-getRegistry-- +:xref-InstanceService-contracts--: xref:services.adoc#InstanceService-contracts-- +:xref-InstanceService-contractName-uint256-: xref:services.adoc#InstanceService-contractName-uint256- +:xref-InstanceService-getDefaultAdminRole--: xref:services.adoc#InstanceService-getDefaultAdminRole-- +:xref-InstanceService-getProductOwnerRole--: xref:services.adoc#InstanceService-getProductOwnerRole-- +:xref-InstanceService-getOracleProviderRole--: xref:services.adoc#InstanceService-getOracleProviderRole-- +:xref-InstanceService-getRiskpoolKeeperRole--: xref:services.adoc#InstanceService-getRiskpoolKeeperRole-- +:xref-InstanceService-hasRole-bytes32-address-: xref:services.adoc#InstanceService-hasRole-bytes32-address- +:xref-InstanceService-products--: xref:services.adoc#InstanceService-products-- +:xref-InstanceService-oracles--: xref:services.adoc#InstanceService-oracles-- +:xref-InstanceService-riskpools--: xref:services.adoc#InstanceService-riskpools-- +:xref-InstanceService-getComponentId-address-: xref:services.adoc#InstanceService-getComponentId-address- +:xref-InstanceService-getComponentType-uint256-: xref:services.adoc#InstanceService-getComponentType-uint256- +:xref-InstanceService-getComponentState-uint256-: xref:services.adoc#InstanceService-getComponentState-uint256- +:xref-InstanceService-getComponent-uint256-: xref:services.adoc#InstanceService-getComponent-uint256- +:xref-InstanceService-getOracleId-uint256-: xref:services.adoc#InstanceService-getOracleId-uint256- +:xref-InstanceService-getRiskpoolId-uint256-: xref:services.adoc#InstanceService-getRiskpoolId-uint256- +:xref-InstanceService-getProductId-uint256-: xref:services.adoc#InstanceService-getProductId-uint256- +:xref-InstanceService-getStakingRequirements-uint256-: xref:services.adoc#InstanceService-getStakingRequirements-uint256- +:xref-InstanceService-getStakedAssets-uint256-: xref:services.adoc#InstanceService-getStakedAssets-uint256- +:xref-InstanceService-processIds--: xref:services.adoc#InstanceService-processIds-- +:xref-InstanceService-getMetadata-bytes32-: xref:services.adoc#InstanceService-getMetadata-bytes32- +:xref-InstanceService-getApplication-bytes32-: xref:services.adoc#InstanceService-getApplication-bytes32- +:xref-InstanceService-getPolicy-bytes32-: xref:services.adoc#InstanceService-getPolicy-bytes32- +:xref-InstanceService-claims-bytes32-: xref:services.adoc#InstanceService-claims-bytes32- +:xref-InstanceService-payouts-bytes32-: xref:services.adoc#InstanceService-payouts-bytes32- +:xref-InstanceService-getClaim-bytes32-uint256-: xref:services.adoc#InstanceService-getClaim-bytes32-uint256- +:xref-InstanceService-getPayout-bytes32-uint256-: xref:services.adoc#InstanceService-getPayout-bytes32-uint256- +:xref-InstanceService-getRiskpool-uint256-: xref:services.adoc#InstanceService-getRiskpool-uint256- +:xref-InstanceService-getFullCollateralizationLevel--: xref:services.adoc#InstanceService-getFullCollateralizationLevel-- +:xref-InstanceService-getCapital-uint256-: xref:services.adoc#InstanceService-getCapital-uint256- +:xref-InstanceService-getTotalValueLocked-uint256-: xref:services.adoc#InstanceService-getTotalValueLocked-uint256- +:xref-InstanceService-getCapacity-uint256-: xref:services.adoc#InstanceService-getCapacity-uint256- +:xref-InstanceService-getBalance-uint256-: xref:services.adoc#InstanceService-getBalance-uint256- +:xref-InstanceService-activeBundles-uint256-: xref:services.adoc#InstanceService-activeBundles-uint256- +:xref-InstanceService-getActiveBundleId-uint256-uint256-: xref:services.adoc#InstanceService-getActiveBundleId-uint256-uint256- +:xref-InstanceService-getMaximumNumberOfActiveBundles-uint256-: xref:services.adoc#InstanceService-getMaximumNumberOfActiveBundles-uint256- +:xref-InstanceService-getBundleToken--: xref:services.adoc#InstanceService-getBundleToken-- +:xref-InstanceService-getBundle-uint256-: xref:services.adoc#InstanceService-getBundle-uint256- +:xref-InstanceService-bundles--: xref:services.adoc#InstanceService-bundles-- +:xref-InstanceService-unburntBundles-uint256-: xref:services.adoc#InstanceService-unburntBundles-uint256- +:xref-InstanceService-getTreasuryAddress--: xref:services.adoc#InstanceService-getTreasuryAddress-- +:xref-InstanceService-getInstanceWallet--: xref:services.adoc#InstanceService-getInstanceWallet-- +:xref-InstanceService-getRiskpoolWallet-uint256-: xref:services.adoc#InstanceService-getRiskpoolWallet-uint256- +:xref-InstanceService-getComponentToken-uint256-: xref:services.adoc#InstanceService-getComponentToken-uint256- +:xref-InstanceService-getFeeFractionFullUnit--: xref:services.adoc#InstanceService-getFeeFractionFullUnit-- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-OracleService-_afterInitialize--: xref:services.adoc#OracleService-_afterInitialize-- +:xref-OracleService-respond-uint256-bytes-: xref:services.adoc#OracleService-respond-uint256-bytes- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-ProductService-constructor-address-: xref:services.adoc#ProductService-constructor-address- +:xref-ProductService-fallback--: xref:services.adoc#ProductService-fallback-- +:xref-ProductService-_delegate-address-: xref:services.adoc#ProductService-_delegate-address- +:xref-ProductService-_license--: xref:services.adoc#ProductService-_license-- +:xref-WithRegistry-getContractFromRegistry-bytes32-: xref:shared.adoc#WithRegistry-getContractFromRegistry-bytes32- +:xref-WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32-: xref:shared.adoc#WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32- +:xref-WithRegistry-getReleaseFromRegistry--: xref:shared.adoc#WithRegistry-getReleaseFromRegistry-- +:xref-RiskpoolService-onlyProposedRiskpool--: xref:services.adoc#RiskpoolService-onlyProposedRiskpool-- +:xref-RiskpoolService-onlyActiveRiskpool--: xref:services.adoc#RiskpoolService-onlyActiveRiskpool-- +:xref-RiskpoolService-onlyOwningRiskpool-uint256-bool-: xref:services.adoc#RiskpoolService-onlyOwningRiskpool-uint256-bool- +:xref-RiskpoolService-onlyOwningRiskpoolId-uint256-bool-: xref:services.adoc#RiskpoolService-onlyOwningRiskpoolId-uint256-bool- +:xref-RiskpoolService-_afterInitialize--: xref:services.adoc#RiskpoolService-_afterInitialize-- +:xref-RiskpoolService-registerRiskpool-address-address-uint256-uint256-: xref:services.adoc#RiskpoolService-registerRiskpool-address-address-uint256-uint256- +:xref-RiskpoolService-createBundle-address-bytes-uint256-: xref:services.adoc#RiskpoolService-createBundle-address-bytes-uint256- +:xref-RiskpoolService-fundBundle-uint256-uint256-: xref:services.adoc#RiskpoolService-fundBundle-uint256-uint256- +:xref-RiskpoolService-defundBundle-uint256-uint256-: xref:services.adoc#RiskpoolService-defundBundle-uint256-uint256- +:xref-RiskpoolService-lockBundle-uint256-: xref:services.adoc#RiskpoolService-lockBundle-uint256- +:xref-RiskpoolService-unlockBundle-uint256-: xref:services.adoc#RiskpoolService-unlockBundle-uint256- +:xref-RiskpoolService-closeBundle-uint256-: xref:services.adoc#RiskpoolService-closeBundle-uint256- +:xref-RiskpoolService-burnBundle-uint256-: xref:services.adoc#RiskpoolService-burnBundle-uint256- +:xref-RiskpoolService-collateralizePolicy-uint256-bytes32-uint256-: xref:services.adoc#RiskpoolService-collateralizePolicy-uint256-bytes32-uint256- +:xref-RiskpoolService-processPremium-uint256-bytes32-uint256-: xref:services.adoc#RiskpoolService-processPremium-uint256-bytes32-uint256- +:xref-RiskpoolService-processPayout-uint256-bytes32-uint256-: xref:services.adoc#RiskpoolService-processPayout-uint256-bytes32-uint256- +:xref-RiskpoolService-releasePolicy-uint256-bytes32-: xref:services.adoc#RiskpoolService-releasePolicy-uint256-bytes32- +:xref-RiskpoolService-setMaximumNumberOfActiveBundles-uint256-uint256-: xref:services.adoc#RiskpoolService-setMaximumNumberOfActiveBundles-uint256-uint256- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- += Services + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/services + +== Contracts + +:onlyOwnerWithRoleFromComponent: pass:normal[xref:#ComponentOwnerService-onlyOwnerWithRoleFromComponent-contract-IComponent-[`++onlyOwnerWithRoleFromComponent++`]] +:onlyOwnerWithRole: pass:normal[xref:#ComponentOwnerService-onlyOwnerWithRole-uint256-[`++onlyOwnerWithRole++`]] +:_afterInitialize: pass:normal[xref:#ComponentOwnerService-_afterInitialize--[`++_afterInitialize++`]] +:propose: pass:normal[xref:#ComponentOwnerService-propose-contract-IComponent-[`++propose++`]] +:stake: pass:normal[xref:#ComponentOwnerService-stake-uint256-[`++stake++`]] +:withdraw: pass:normal[xref:#ComponentOwnerService-withdraw-uint256-[`++withdraw++`]] +:pause: pass:normal[xref:#ComponentOwnerService-pause-uint256-[`++pause++`]] +:unpause: pass:normal[xref:#ComponentOwnerService-unpause-uint256-[`++unpause++`]] +:archive: pass:normal[xref:#ComponentOwnerService-archive-uint256-[`++archive++`]] + +[.contract] +[[ComponentOwnerService]] +=== `++ComponentOwnerService++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/services/ComponentOwnerService.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/services/ComponentOwnerService.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-ComponentOwnerService-onlyOwnerWithRoleFromComponent-contract-IComponent-}[`++onlyOwnerWithRoleFromComponent(component)++`] +* {xref-ComponentOwnerService-onlyOwnerWithRole-uint256-}[`++onlyOwnerWithRole(id)++`] +-- + +[.contract-index] +.Functions +-- +* {xref-ComponentOwnerService-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-ComponentOwnerService-propose-contract-IComponent-}[`++propose(component)++`] +* {xref-ComponentOwnerService-stake-uint256-}[`++stake(id)++`] +* {xref-ComponentOwnerService-withdraw-uint256-}[`++withdraw(id)++`] +* {xref-ComponentOwnerService-pause-uint256-}[`++pause(id)++`] +* {xref-ComponentOwnerService-unpause-uint256-}[`++unpause(id)++`] +* {xref-ComponentOwnerService-archive-uint256-}[`++archive(id)++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IComponentOwnerService + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IComponentOwnerService + +-- + +[.contract-item] +[[ComponentOwnerService-onlyOwnerWithRoleFromComponent-contract-IComponent-]] +==== `[.contract-item-name]#++onlyOwnerWithRoleFromComponent++#++(contract IComponent component)++` [.item-kind]#modifier# + +[.contract-item] +[[ComponentOwnerService-onlyOwnerWithRole-uint256-]] +==== `[.contract-item-name]#++onlyOwnerWithRole++#++(uint256 id)++` [.item-kind]#modifier# + +[.contract-item] +[[ComponentOwnerService-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +This function is called after the contract is initialized and can only be called once. It sets the component controller contract address. + +[.contract-item] +[[ComponentOwnerService-propose-contract-IComponent-]] +==== `[.contract-item-name]#++propose++#++(contract IComponent component)++` [.item-kind]#external# + +Propose a new component to be added to the system. + +[.contract-item] +[[ComponentOwnerService-stake-uint256-]] +==== `[.contract-item-name]#++stake++#++(uint256 id)++` [.item-kind]#external# + +Stake function allows the owner to stake a specific id. + +[.contract-item] +[[ComponentOwnerService-withdraw-uint256-]] +==== `[.contract-item-name]#++withdraw++#++(uint256 id)++` [.item-kind]#external# + +Allows the owner to withdraw a specific asset by its ID. + +[.contract-item] +[[ComponentOwnerService-pause-uint256-]] +==== `[.contract-item-name]#++pause++#++(uint256 id)++` [.item-kind]#external# + +Pauses a specific component with the given ID. + +[.contract-item] +[[ComponentOwnerService-unpause-uint256-]] +==== `[.contract-item-name]#++unpause++#++(uint256 id)++` [.item-kind]#external# + +Unpauses a component with the specified ID. + +[.contract-item] +[[ComponentOwnerService-archive-uint256-]] +==== `[.contract-item-name]#++archive++#++(uint256 id)++` [.item-kind]#external# + +Archives a component with the given ID from the component owner's inventory. + +:onlyInstanceOperatorAddress: pass:normal[xref:#InstanceOperatorService-onlyInstanceOperatorAddress--[`++onlyInstanceOperatorAddress++`]] +:_afterInitialize: pass:normal[xref:#InstanceOperatorService-_afterInitialize--[`++_afterInitialize++`]] +:prepareRelease: pass:normal[xref:#InstanceOperatorService-prepareRelease-bytes32-[`++prepareRelease++`]] +:register: pass:normal[xref:#InstanceOperatorService-register-bytes32-address-[`++register++`]] +:deregister: pass:normal[xref:#InstanceOperatorService-deregister-bytes32-[`++deregister++`]] +:registerInRelease: pass:normal[xref:#InstanceOperatorService-registerInRelease-bytes32-bytes32-address-[`++registerInRelease++`]] +:deregisterInRelease: pass:normal[xref:#InstanceOperatorService-deregisterInRelease-bytes32-bytes32-[`++deregisterInRelease++`]] +:createRole: pass:normal[xref:#InstanceOperatorService-createRole-bytes32-[`++createRole++`]] +:invalidateRole: pass:normal[xref:#InstanceOperatorService-invalidateRole-bytes32-[`++invalidateRole++`]] +:grantRole: pass:normal[xref:#InstanceOperatorService-grantRole-bytes32-address-[`++grantRole++`]] +:revokeRole: pass:normal[xref:#InstanceOperatorService-revokeRole-bytes32-address-[`++revokeRole++`]] +:approve: pass:normal[xref:#InstanceOperatorService-approve-uint256-[`++approve++`]] +:decline: pass:normal[xref:#InstanceOperatorService-decline-uint256-[`++decline++`]] +:suspend: pass:normal[xref:#InstanceOperatorService-suspend-uint256-[`++suspend++`]] +:resume: pass:normal[xref:#InstanceOperatorService-resume-uint256-[`++resume++`]] +:archive: pass:normal[xref:#InstanceOperatorService-archive-uint256-[`++archive++`]] +:setDefaultStaking: pass:normal[xref:#InstanceOperatorService-setDefaultStaking-uint16-bytes-[`++setDefaultStaking++`]] +:adjustStakingRequirements: pass:normal[xref:#InstanceOperatorService-adjustStakingRequirements-uint256-bytes-[`++adjustStakingRequirements++`]] +:suspendTreasury: pass:normal[xref:#InstanceOperatorService-suspendTreasury--[`++suspendTreasury++`]] +:resumeTreasury: pass:normal[xref:#InstanceOperatorService-resumeTreasury--[`++resumeTreasury++`]] +:setInstanceWallet: pass:normal[xref:#InstanceOperatorService-setInstanceWallet-address-[`++setInstanceWallet++`]] +:setRiskpoolWallet: pass:normal[xref:#InstanceOperatorService-setRiskpoolWallet-uint256-address-[`++setRiskpoolWallet++`]] +:setProductToken: pass:normal[xref:#InstanceOperatorService-setProductToken-uint256-address-[`++setProductToken++`]] +:createFeeSpecification: pass:normal[xref:#InstanceOperatorService-createFeeSpecification-uint256-uint256-uint256-bytes-[`++createFeeSpecification++`]] +:setPremiumFees: pass:normal[xref:#InstanceOperatorService-setPremiumFees-struct-ITreasury-FeeSpecification-[`++setPremiumFees++`]] +:setCapitalFees: pass:normal[xref:#InstanceOperatorService-setCapitalFees-struct-ITreasury-FeeSpecification-[`++setCapitalFees++`]] + +[.contract] +[[InstanceOperatorService]] +=== `++InstanceOperatorService++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/services/InstanceOperatorService.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/services/InstanceOperatorService.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-InstanceOperatorService-onlyInstanceOperatorAddress--}[`++onlyInstanceOperatorAddress()++`] +-- + +[.contract-index] +.Functions +-- +* {xref-InstanceOperatorService-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-InstanceOperatorService-prepareRelease-bytes32-}[`++prepareRelease(_newRelease)++`] +* {xref-InstanceOperatorService-register-bytes32-address-}[`++register(_contractName, _contractAddress)++`] +* {xref-InstanceOperatorService-deregister-bytes32-}[`++deregister(_contractName)++`] +* {xref-InstanceOperatorService-registerInRelease-bytes32-bytes32-address-}[`++registerInRelease(_release, _contractName, _contractAddress)++`] +* {xref-InstanceOperatorService-deregisterInRelease-bytes32-bytes32-}[`++deregisterInRelease(_release, _contractName)++`] +* {xref-InstanceOperatorService-createRole-bytes32-}[`++createRole(_role)++`] +* {xref-InstanceOperatorService-invalidateRole-bytes32-}[`++invalidateRole(_role)++`] +* {xref-InstanceOperatorService-grantRole-bytes32-address-}[`++grantRole(role, principal)++`] +* {xref-InstanceOperatorService-revokeRole-bytes32-address-}[`++revokeRole(role, principal)++`] +* {xref-InstanceOperatorService-approve-uint256-}[`++approve(id)++`] +* {xref-InstanceOperatorService-decline-uint256-}[`++decline(id)++`] +* {xref-InstanceOperatorService-suspend-uint256-}[`++suspend(id)++`] +* {xref-InstanceOperatorService-resume-uint256-}[`++resume(id)++`] +* {xref-InstanceOperatorService-archive-uint256-}[`++archive(id)++`] +* {xref-InstanceOperatorService-setDefaultStaking-uint16-bytes-}[`++setDefaultStaking(componentType, data)++`] +* {xref-InstanceOperatorService-adjustStakingRequirements-uint256-bytes-}[`++adjustStakingRequirements(id, data)++`] +* {xref-InstanceOperatorService-suspendTreasury--}[`++suspendTreasury()++`] +* {xref-InstanceOperatorService-resumeTreasury--}[`++resumeTreasury()++`] +* {xref-InstanceOperatorService-setInstanceWallet-address-}[`++setInstanceWallet(walletAddress)++`] +* {xref-InstanceOperatorService-setRiskpoolWallet-uint256-address-}[`++setRiskpoolWallet(riskpoolId, riskpoolWalletAddress)++`] +* {xref-InstanceOperatorService-setProductToken-uint256-address-}[`++setProductToken(productId, erc20Address)++`] +* {xref-InstanceOperatorService-createFeeSpecification-uint256-uint256-uint256-bytes-}[`++createFeeSpecification(componentId, fixedFee, fractionalFee, feeCalculationData)++`] +* {xref-InstanceOperatorService-setPremiumFees-struct-ITreasury-FeeSpecification-}[`++setPremiumFees(feeSpec)++`] +* {xref-InstanceOperatorService-setCapitalFees-struct-ITreasury-FeeSpecification-}[`++setCapitalFees(feeSpec)++`] + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-owner--[`++owner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_checkOwner--[`++_checkOwner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-renounceOwnership--[`++renounceOwnership()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-transferOwnership-address-[`++transferOwnership(newOwner)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_transferOwnership-address-[`++_transferOwnership(newOwner)++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IInstanceOperatorService + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-OwnershipTransferred-address-address-[`++OwnershipTransferred(previousOwner, newOwner)++`] + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IInstanceOperatorService + +-- + +[.contract-item] +[[InstanceOperatorService-onlyInstanceOperatorAddress--]] +==== `[.contract-item-name]#++onlyInstanceOperatorAddress++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[InstanceOperatorService-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +Performs the necessary setup after contract initialization. + - Sets the component, pool, and treasury contracts. + - Transfers ownership to the message sender. + - Links the bundle module to the bundle token. + - Sets the default admin role. + +[.contract-item] +[[InstanceOperatorService-prepareRelease-bytes32-]] +==== `[.contract-item-name]#++prepareRelease++#++(bytes32 _newRelease)++` [.item-kind]#external# + +Prepares a new release by calling the prepareRelease function from the Registry contract. + +[.contract-item] +[[InstanceOperatorService-register-bytes32-address-]] +==== `[.contract-item-name]#++register++#++(bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# + +Registers a contract in the registry. + +[.contract-item] +[[InstanceOperatorService-deregister-bytes32-]] +==== `[.contract-item-name]#++deregister++#++(bytes32 _contractName)++` [.item-kind]#external# + +Deregisters a contract from the registry. + +[.contract-item] +[[InstanceOperatorService-registerInRelease-bytes32-bytes32-address-]] +==== `[.contract-item-name]#++registerInRelease++#++(bytes32 _release, bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# + +Registers a contract in a specific release. + +[.contract-item] +[[InstanceOperatorService-deregisterInRelease-bytes32-bytes32-]] +==== `[.contract-item-name]#++deregisterInRelease++#++(bytes32 _release, bytes32 _contractName)++` [.item-kind]#external# + +Deregisters a contract from a specific release in the registry. + +[.contract-item] +[[InstanceOperatorService-createRole-bytes32-]] +==== `[.contract-item-name]#++createRole++#++(bytes32 _role)++` [.item-kind]#external# + +Adds a new role to the access control contract. + +[.contract-item] +[[InstanceOperatorService-invalidateRole-bytes32-]] +==== `[.contract-item-name]#++invalidateRole++#++(bytes32 _role)++` [.item-kind]#external# + +Invalidates a role. + +[.contract-item] +[[InstanceOperatorService-grantRole-bytes32-address-]] +==== `[.contract-item-name]#++grantRole++#++(bytes32 role, address principal)++` [.item-kind]#external# + +Grants a role to a principal. + +[.contract-item] +[[InstanceOperatorService-revokeRole-bytes32-address-]] +==== `[.contract-item-name]#++revokeRole++#++(bytes32 role, address principal)++` [.item-kind]#external# + +Revokes a role from a principal. + +[.contract-item] +[[InstanceOperatorService-approve-uint256-]] +==== `[.contract-item-name]#++approve++#++(uint256 id)++` [.item-kind]#external# + +Approves a component with the given ID and sets its corresponding riskpool ID in the pool contract. + +[.contract-item] +[[InstanceOperatorService-decline-uint256-]] +==== `[.contract-item-name]#++decline++#++(uint256 id)++` [.item-kind]#external# + +Declines a component with the specified ID. + +[.contract-item] +[[InstanceOperatorService-suspend-uint256-]] +==== `[.contract-item-name]#++suspend++#++(uint256 id)++` [.item-kind]#external# + +Suspends the component with the given ID. + +[.contract-item] +[[InstanceOperatorService-resume-uint256-]] +==== `[.contract-item-name]#++resume++#++(uint256 id)++` [.item-kind]#external# + +Resumes the execution of a paused component instance. + +[.contract-item] +[[InstanceOperatorService-archive-uint256-]] +==== `[.contract-item-name]#++archive++#++(uint256 id)++` [.item-kind]#external# + +Archives a component with the given ID from the instance operator's address. + +[.contract-item] +[[InstanceOperatorService-setDefaultStaking-uint16-bytes-]] +==== `[.contract-item-name]#++setDefaultStaking++#++(uint16 componentType, bytes data)++` [.item-kind]#external# + +Sets the default staking for a specific component type. + +[.contract-item] +[[InstanceOperatorService-adjustStakingRequirements-uint256-bytes-]] +==== `[.contract-item-name]#++adjustStakingRequirements++#++(uint256 id, bytes data)++` [.item-kind]#external# + +Adjusts the staking requirements for a specific instance operator by providing the operator ID and the new staking requirements. + +[.contract-item] +[[InstanceOperatorService-suspendTreasury--]] +==== `[.contract-item-name]#++suspendTreasury++#++()++` [.item-kind]#external# + +Suspends the treasury functionality. + +[.contract-item] +[[InstanceOperatorService-resumeTreasury--]] +==== `[.contract-item-name]#++resumeTreasury++#++()++` [.item-kind]#external# + +Resumes the treasury contract. + +[.contract-item] +[[InstanceOperatorService-setInstanceWallet-address-]] +==== `[.contract-item-name]#++setInstanceWallet++#++(address walletAddress)++` [.item-kind]#external# + +Sets the wallet address of the instance operator. + +[.contract-item] +[[InstanceOperatorService-setRiskpoolWallet-uint256-address-]] +==== `[.contract-item-name]#++setRiskpoolWallet++#++(uint256 riskpoolId, address riskpoolWalletAddress)++` [.item-kind]#external# + +Sets the wallet address for a specific risk pool. + +[.contract-item] +[[InstanceOperatorService-setProductToken-uint256-address-]] +==== `[.contract-item-name]#++setProductToken++#++(uint256 productId, address erc20Address)++` [.item-kind]#external# + +Sets the ERC20 token address for a given product ID. + +[.contract-item] +[[InstanceOperatorService-createFeeSpecification-uint256-uint256-uint256-bytes-]] +==== `[.contract-item-name]#++createFeeSpecification++#++(uint256 componentId, uint256 fixedFee, uint256 fractionalFee, bytes feeCalculationData) → struct ITreasury.FeeSpecification++` [.item-kind]#external# + +Returns a FeeSpecification object created with the given parameters. + +[.contract-item] +[[InstanceOperatorService-setPremiumFees-struct-ITreasury-FeeSpecification-]] +==== `[.contract-item-name]#++setPremiumFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# + +Sets the premium fees for the treasury. + +[.contract-item] +[[InstanceOperatorService-setCapitalFees-struct-ITreasury-FeeSpecification-]] +==== `[.contract-item-name]#++setCapitalFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# + +Sets the fee specification for capital fees in the treasury contract. + +:BUNDLE_NAME: pass:normal[xref:#InstanceService-BUNDLE_NAME-bytes32[`++BUNDLE_NAME++`]] +:COMPONENT_NAME: pass:normal[xref:#InstanceService-COMPONENT_NAME-bytes32[`++COMPONENT_NAME++`]] +:POLICY_NAME: pass:normal[xref:#InstanceService-POLICY_NAME-bytes32[`++POLICY_NAME++`]] +:POOL_NAME: pass:normal[xref:#InstanceService-POOL_NAME-bytes32[`++POOL_NAME++`]] +:TREASURY_NAME: pass:normal[xref:#InstanceService-TREASURY_NAME-bytes32[`++TREASURY_NAME++`]] +:COMPONENT_OWNER_SERVICE_NAME: pass:normal[xref:#InstanceService-COMPONENT_OWNER_SERVICE_NAME-bytes32[`++COMPONENT_OWNER_SERVICE_NAME++`]] +:INSTANCE_OPERATOR_SERVICE_NAME: pass:normal[xref:#InstanceService-INSTANCE_OPERATOR_SERVICE_NAME-bytes32[`++INSTANCE_OPERATOR_SERVICE_NAME++`]] +:ORACLE_SERVICE_NAME: pass:normal[xref:#InstanceService-ORACLE_SERVICE_NAME-bytes32[`++ORACLE_SERVICE_NAME++`]] +:PRODUCT_SERVICE_NAME: pass:normal[xref:#InstanceService-PRODUCT_SERVICE_NAME-bytes32[`++PRODUCT_SERVICE_NAME++`]] +:RISKPOOL_SERVICE_NAME: pass:normal[xref:#InstanceService-RISKPOOL_SERVICE_NAME-bytes32[`++RISKPOOL_SERVICE_NAME++`]] +:_bundle: pass:normal[xref:#InstanceService-_bundle-contract-BundleController[`++_bundle++`]] +:_component: pass:normal[xref:#InstanceService-_component-contract-ComponentController[`++_component++`]] +:_policy: pass:normal[xref:#InstanceService-_policy-contract-PolicyController[`++_policy++`]] +:_pool: pass:normal[xref:#InstanceService-_pool-contract-PoolController[`++_pool++`]] +:_afterInitialize: pass:normal[xref:#InstanceService-_afterInitialize--[`++_afterInitialize++`]] +:_setChainNames: pass:normal[xref:#InstanceService-_setChainNames--[`++_setChainNames++`]] +:getChainId: pass:normal[xref:#InstanceService-getChainId--[`++getChainId++`]] +:getChainName: pass:normal[xref:#InstanceService-getChainName--[`++getChainName++`]] +:getInstanceId: pass:normal[xref:#InstanceService-getInstanceId--[`++getInstanceId++`]] +:getInstanceOperator: pass:normal[xref:#InstanceService-getInstanceOperator--[`++getInstanceOperator++`]] +:getComponentOwnerService: pass:normal[xref:#InstanceService-getComponentOwnerService--[`++getComponentOwnerService++`]] +:getInstanceOperatorService: pass:normal[xref:#InstanceService-getInstanceOperatorService--[`++getInstanceOperatorService++`]] +:getOracleService: pass:normal[xref:#InstanceService-getOracleService--[`++getOracleService++`]] +:getProductService: pass:normal[xref:#InstanceService-getProductService--[`++getProductService++`]] +:getRiskpoolService: pass:normal[xref:#InstanceService-getRiskpoolService--[`++getRiskpoolService++`]] +:getRegistry: pass:normal[xref:#InstanceService-getRegistry--[`++getRegistry++`]] +:contracts: pass:normal[xref:#InstanceService-contracts--[`++contracts++`]] +:contractName: pass:normal[xref:#InstanceService-contractName-uint256-[`++contractName++`]] +:getDefaultAdminRole: pass:normal[xref:#InstanceService-getDefaultAdminRole--[`++getDefaultAdminRole++`]] +:getProductOwnerRole: pass:normal[xref:#InstanceService-getProductOwnerRole--[`++getProductOwnerRole++`]] +:getOracleProviderRole: pass:normal[xref:#InstanceService-getOracleProviderRole--[`++getOracleProviderRole++`]] +:getRiskpoolKeeperRole: pass:normal[xref:#InstanceService-getRiskpoolKeeperRole--[`++getRiskpoolKeeperRole++`]] +:hasRole: pass:normal[xref:#InstanceService-hasRole-bytes32-address-[`++hasRole++`]] +:products: pass:normal[xref:#InstanceService-products--[`++products++`]] +:oracles: pass:normal[xref:#InstanceService-oracles--[`++oracles++`]] +:riskpools: pass:normal[xref:#InstanceService-riskpools--[`++riskpools++`]] +:getComponentId: pass:normal[xref:#InstanceService-getComponentId-address-[`++getComponentId++`]] +:getComponentType: pass:normal[xref:#InstanceService-getComponentType-uint256-[`++getComponentType++`]] +:getComponentState: pass:normal[xref:#InstanceService-getComponentState-uint256-[`++getComponentState++`]] +:getComponent: pass:normal[xref:#InstanceService-getComponent-uint256-[`++getComponent++`]] +:getOracleId: pass:normal[xref:#InstanceService-getOracleId-uint256-[`++getOracleId++`]] +:getRiskpoolId: pass:normal[xref:#InstanceService-getRiskpoolId-uint256-[`++getRiskpoolId++`]] +:getProductId: pass:normal[xref:#InstanceService-getProductId-uint256-[`++getProductId++`]] +:getStakingRequirements: pass:normal[xref:#InstanceService-getStakingRequirements-uint256-[`++getStakingRequirements++`]] +:getStakedAssets: pass:normal[xref:#InstanceService-getStakedAssets-uint256-[`++getStakedAssets++`]] +:processIds: pass:normal[xref:#InstanceService-processIds--[`++processIds++`]] +:getMetadata: pass:normal[xref:#InstanceService-getMetadata-bytes32-[`++getMetadata++`]] +:getApplication: pass:normal[xref:#InstanceService-getApplication-bytes32-[`++getApplication++`]] +:getPolicy: pass:normal[xref:#InstanceService-getPolicy-bytes32-[`++getPolicy++`]] +:claims: pass:normal[xref:#InstanceService-claims-bytes32-[`++claims++`]] +:payouts: pass:normal[xref:#InstanceService-payouts-bytes32-[`++payouts++`]] +:getClaim: pass:normal[xref:#InstanceService-getClaim-bytes32-uint256-[`++getClaim++`]] +:getPayout: pass:normal[xref:#InstanceService-getPayout-bytes32-uint256-[`++getPayout++`]] +:getRiskpool: pass:normal[xref:#InstanceService-getRiskpool-uint256-[`++getRiskpool++`]] +:getFullCollateralizationLevel: pass:normal[xref:#InstanceService-getFullCollateralizationLevel--[`++getFullCollateralizationLevel++`]] +:getCapital: pass:normal[xref:#InstanceService-getCapital-uint256-[`++getCapital++`]] +:getTotalValueLocked: pass:normal[xref:#InstanceService-getTotalValueLocked-uint256-[`++getTotalValueLocked++`]] +:getCapacity: pass:normal[xref:#InstanceService-getCapacity-uint256-[`++getCapacity++`]] +:getBalance: pass:normal[xref:#InstanceService-getBalance-uint256-[`++getBalance++`]] +:activeBundles: pass:normal[xref:#InstanceService-activeBundles-uint256-[`++activeBundles++`]] +:getActiveBundleId: pass:normal[xref:#InstanceService-getActiveBundleId-uint256-uint256-[`++getActiveBundleId++`]] +:getMaximumNumberOfActiveBundles: pass:normal[xref:#InstanceService-getMaximumNumberOfActiveBundles-uint256-[`++getMaximumNumberOfActiveBundles++`]] +:getBundleToken: pass:normal[xref:#InstanceService-getBundleToken--[`++getBundleToken++`]] +:getBundle: pass:normal[xref:#InstanceService-getBundle-uint256-[`++getBundle++`]] +:bundles: pass:normal[xref:#InstanceService-bundles--[`++bundles++`]] +:unburntBundles: pass:normal[xref:#InstanceService-unburntBundles-uint256-[`++unburntBundles++`]] +:getTreasuryAddress: pass:normal[xref:#InstanceService-getTreasuryAddress--[`++getTreasuryAddress++`]] +:getInstanceWallet: pass:normal[xref:#InstanceService-getInstanceWallet--[`++getInstanceWallet++`]] +:getRiskpoolWallet: pass:normal[xref:#InstanceService-getRiskpoolWallet-uint256-[`++getRiskpoolWallet++`]] +:getComponentToken: pass:normal[xref:#InstanceService-getComponentToken-uint256-[`++getComponentToken++`]] +:getFeeFractionFullUnit: pass:normal[xref:#InstanceService-getFeeFractionFullUnit--[`++getFeeFractionFullUnit++`]] + +[.contract] +[[InstanceService]] +=== `++InstanceService++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/services/InstanceService.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/services/InstanceService.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-InstanceService-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-InstanceService-_setChainNames--}[`++_setChainNames()++`] +* {xref-InstanceService-getChainId--}[`++getChainId()++`] +* {xref-InstanceService-getChainName--}[`++getChainName()++`] +* {xref-InstanceService-getInstanceId--}[`++getInstanceId()++`] +* {xref-InstanceService-getInstanceOperator--}[`++getInstanceOperator()++`] +* {xref-InstanceService-getComponentOwnerService--}[`++getComponentOwnerService()++`] +* {xref-InstanceService-getInstanceOperatorService--}[`++getInstanceOperatorService()++`] +* {xref-InstanceService-getOracleService--}[`++getOracleService()++`] +* {xref-InstanceService-getProductService--}[`++getProductService()++`] +* {xref-InstanceService-getRiskpoolService--}[`++getRiskpoolService()++`] +* {xref-InstanceService-getRegistry--}[`++getRegistry()++`] +* {xref-InstanceService-contracts--}[`++contracts()++`] +* {xref-InstanceService-contractName-uint256-}[`++contractName(idx)++`] +* {xref-InstanceService-getDefaultAdminRole--}[`++getDefaultAdminRole()++`] +* {xref-InstanceService-getProductOwnerRole--}[`++getProductOwnerRole()++`] +* {xref-InstanceService-getOracleProviderRole--}[`++getOracleProviderRole()++`] +* {xref-InstanceService-getRiskpoolKeeperRole--}[`++getRiskpoolKeeperRole()++`] +* {xref-InstanceService-hasRole-bytes32-address-}[`++hasRole(role, principal)++`] +* {xref-InstanceService-products--}[`++products()++`] +* {xref-InstanceService-oracles--}[`++oracles()++`] +* {xref-InstanceService-riskpools--}[`++riskpools()++`] +* {xref-InstanceService-getComponentId-address-}[`++getComponentId(componentAddress)++`] +* {xref-InstanceService-getComponentType-uint256-}[`++getComponentType(componentId)++`] +* {xref-InstanceService-getComponentState-uint256-}[`++getComponentState(componentId)++`] +* {xref-InstanceService-getComponent-uint256-}[`++getComponent(id)++`] +* {xref-InstanceService-getOracleId-uint256-}[`++getOracleId(idx)++`] +* {xref-InstanceService-getRiskpoolId-uint256-}[`++getRiskpoolId(idx)++`] +* {xref-InstanceService-getProductId-uint256-}[`++getProductId(idx)++`] +* {xref-InstanceService-getStakingRequirements-uint256-}[`++getStakingRequirements(id)++`] +* {xref-InstanceService-getStakedAssets-uint256-}[`++getStakedAssets(id)++`] +* {xref-InstanceService-processIds--}[`++processIds()++`] +* {xref-InstanceService-getMetadata-bytes32-}[`++getMetadata(bpKey)++`] +* {xref-InstanceService-getApplication-bytes32-}[`++getApplication(processId)++`] +* {xref-InstanceService-getPolicy-bytes32-}[`++getPolicy(processId)++`] +* {xref-InstanceService-claims-bytes32-}[`++claims(processId)++`] +* {xref-InstanceService-payouts-bytes32-}[`++payouts(processId)++`] +* {xref-InstanceService-getClaim-bytes32-uint256-}[`++getClaim(processId, claimId)++`] +* {xref-InstanceService-getPayout-bytes32-uint256-}[`++getPayout(processId, payoutId)++`] +* {xref-InstanceService-getRiskpool-uint256-}[`++getRiskpool(riskpoolId)++`] +* {xref-InstanceService-getFullCollateralizationLevel--}[`++getFullCollateralizationLevel()++`] +* {xref-InstanceService-getCapital-uint256-}[`++getCapital(riskpoolId)++`] +* {xref-InstanceService-getTotalValueLocked-uint256-}[`++getTotalValueLocked(riskpoolId)++`] +* {xref-InstanceService-getCapacity-uint256-}[`++getCapacity(riskpoolId)++`] +* {xref-InstanceService-getBalance-uint256-}[`++getBalance(riskpoolId)++`] +* {xref-InstanceService-activeBundles-uint256-}[`++activeBundles(riskpoolId)++`] +* {xref-InstanceService-getActiveBundleId-uint256-uint256-}[`++getActiveBundleId(riskpoolId, bundleIdx)++`] +* {xref-InstanceService-getMaximumNumberOfActiveBundles-uint256-}[`++getMaximumNumberOfActiveBundles(riskpoolId)++`] +* {xref-InstanceService-getBundleToken--}[`++getBundleToken()++`] +* {xref-InstanceService-getBundle-uint256-}[`++getBundle(bundleId)++`] +* {xref-InstanceService-bundles--}[`++bundles()++`] +* {xref-InstanceService-unburntBundles-uint256-}[`++unburntBundles(riskpoolId)++`] +* {xref-InstanceService-getTreasuryAddress--}[`++getTreasuryAddress()++`] +* {xref-InstanceService-getInstanceWallet--}[`++getInstanceWallet()++`] +* {xref-InstanceService-getRiskpoolWallet-uint256-}[`++getRiskpoolWallet(riskpoolId)++`] +* {xref-InstanceService-getComponentToken-uint256-}[`++getComponentToken(componentId)++`] +* {xref-InstanceService-getFeeFractionFullUnit--}[`++getFeeFractionFullUnit()++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IInstanceService + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IInstanceService + +-- + +[.contract-item] +[[InstanceService-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +Internal function that is called after initialization is complete. It sets the bundle, component, policy, pool, and treasury controllers by retrieving their contract addresses. It also sets the chain names. + +[.contract-item] +[[InstanceService-_setChainNames--]] +==== `[.contract-item-name]#++_setChainNames++#++()++` [.item-kind]#internal# + +Sets the names for several blockchain networks by assigning them to their respective chain IDs. + +Sets the names for the Ethereum Mainnet/ETH, Goerli/ETH, Ganache, Gnosis/xDai, Sokol/SPOA, Polygon Mainnet/MATIC, Mumbai/MATIC, Avalanche C-Chain/AVAX and Avalanche Fuji Testnet/AVAX blockchain networks by assigning them to their respective chain IDs. + +[.contract-item] +[[InstanceService-getChainId--]] +==== `[.contract-item-name]#++getChainId++#++() → uint256 chainId++` [.item-kind]#public# + +Returns the chain ID of the current blockchain. + +[.contract-item] +[[InstanceService-getChainName--]] +==== `[.contract-item-name]#++getChainName++#++() → string chainName++` [.item-kind]#public# + +Returns the name of the chain based on its ID. + +[.contract-item] +[[InstanceService-getInstanceId--]] +==== `[.contract-item-name]#++getInstanceId++#++() → bytes32 instanceId++` [.item-kind]#public# + +Returns the instance ID of the contract, which is a hash of the chain ID and the registry address. + +[.contract-item] +[[InstanceService-getInstanceOperator--]] +==== `[.contract-item-name]#++getInstanceOperator++#++() → address++` [.item-kind]#external# + +Returns the address of the current instance operator. + +[.contract-item] +[[InstanceService-getComponentOwnerService--]] +==== `[.contract-item-name]#++getComponentOwnerService++#++() → contract IComponentOwnerService service++` [.item-kind]#external# + +Returns the address of the Component Owner Service contract. + +[.contract-item] +[[InstanceService-getInstanceOperatorService--]] +==== `[.contract-item-name]#++getInstanceOperatorService++#++() → contract IInstanceOperatorService service++` [.item-kind]#external# + +Returns the instance operator service contract address. + +[.contract-item] +[[InstanceService-getOracleService--]] +==== `[.contract-item-name]#++getOracleService++#++() → contract IOracleService service++` [.item-kind]#external# + +Returns the Oracle Service contract instance. + +[.contract-item] +[[InstanceService-getProductService--]] +==== `[.contract-item-name]#++getProductService++#++() → contract IProductService service++` [.item-kind]#external# + +Returns the address of the Product Service contract. + +[.contract-item] +[[InstanceService-getRiskpoolService--]] +==== `[.contract-item-name]#++getRiskpoolService++#++() → contract IRiskpoolService service++` [.item-kind]#external# + +Returns the IRiskpoolService contract instance. + +[.contract-item] +[[InstanceService-getRegistry--]] +==== `[.contract-item-name]#++getRegistry++#++() → contract IRegistry service++` [.item-kind]#external# + +Returns the current instance of the IRegistry contract. + +[.contract-item] +[[InstanceService-contracts--]] +==== `[.contract-item-name]#++contracts++#++() → uint256 numberOfContracts++` [.item-kind]#external# + +Returns the number of contracts registered in the registry. + +[.contract-item] +[[InstanceService-contractName-uint256-]] +==== `[.contract-item-name]#++contractName++#++(uint256 idx) → bytes32 name++` [.item-kind]#external# + +Returns the name of the contract at the specified index in the registry. + +[.contract-item] +[[InstanceService-getDefaultAdminRole--]] +==== `[.contract-item-name]#++getDefaultAdminRole++#++() → bytes32++` [.item-kind]#external# + +Returns the default admin role for the AccessControl contract. + +[.contract-item] +[[InstanceService-getProductOwnerRole--]] +==== `[.contract-item-name]#++getProductOwnerRole++#++() → bytes32++` [.item-kind]#external# + +Returns the role identifier of the product owner role. + +[.contract-item] +[[InstanceService-getOracleProviderRole--]] +==== `[.contract-item-name]#++getOracleProviderRole++#++() → bytes32++` [.item-kind]#external# + +Returns the role identifier for the oracle provider role. + +[.contract-item] +[[InstanceService-getRiskpoolKeeperRole--]] +==== `[.contract-item-name]#++getRiskpoolKeeperRole++#++() → bytes32++` [.item-kind]#external# + +Returns the role identifier for the Riskpool Keeper role. + +[.contract-item] +[[InstanceService-hasRole-bytes32-address-]] +==== `[.contract-item-name]#++hasRole++#++(bytes32 role, address principal) → bool++` [.item-kind]#external# + +Checks if an address has a specific role. + +[.contract-item] +[[InstanceService-products--]] +==== `[.contract-item-name]#++products++#++() → uint256++` [.item-kind]#external# + +Returns the number of products in the component contract. + +[.contract-item] +[[InstanceService-oracles--]] +==== `[.contract-item-name]#++oracles++#++() → uint256++` [.item-kind]#external# + +Returns the number of oracles registered in the component. + +[.contract-item] +[[InstanceService-riskpools--]] +==== `[.contract-item-name]#++riskpools++#++() → uint256++` [.item-kind]#external# + +Returns the number of risk pools in the component. + +[.contract-item] +[[InstanceService-getComponentId-address-]] +==== `[.contract-item-name]#++getComponentId++#++(address componentAddress) → uint256 componentId++` [.item-kind]#external# + +Returns the component ID of a given component address. + +[.contract-item] +[[InstanceService-getComponentType-uint256-]] +==== `[.contract-item-name]#++getComponentType++#++(uint256 componentId) → enum IComponent.ComponentType componentType++` [.item-kind]#external# + +Returns the type of a component given its ID. + +[.contract-item] +[[InstanceService-getComponentState-uint256-]] +==== `[.contract-item-name]#++getComponentState++#++(uint256 componentId) → enum IComponent.ComponentState componentState++` [.item-kind]#external# + +Returns the current state of a specific component. + +[.contract-item] +[[InstanceService-getComponent-uint256-]] +==== `[.contract-item-name]#++getComponent++#++(uint256 id) → contract IComponent++` [.item-kind]#external# + +Returns the component with the specified ID. + +[.contract-item] +[[InstanceService-getOracleId-uint256-]] +==== `[.contract-item-name]#++getOracleId++#++(uint256 idx) → uint256 oracleId++` [.item-kind]#public# + +Returns the oracle ID at the specified index. + +[.contract-item] +[[InstanceService-getRiskpoolId-uint256-]] +==== `[.contract-item-name]#++getRiskpoolId++#++(uint256 idx) → uint256 riskpoolId++` [.item-kind]#public# + +Returns the riskpool ID for the given index. + +[.contract-item] +[[InstanceService-getProductId-uint256-]] +==== `[.contract-item-name]#++getProductId++#++(uint256 idx) → uint256 productId++` [.item-kind]#public# + +Returns the product ID of the component at the given index. + +[.contract-item] +[[InstanceService-getStakingRequirements-uint256-]] +==== `[.contract-item-name]#++getStakingRequirements++#++(uint256 id) → bytes data++` [.item-kind]#external# + +Returns the staking requirements for a specific ID. + +[.contract-item] +[[InstanceService-getStakedAssets-uint256-]] +==== `[.contract-item-name]#++getStakedAssets++#++(uint256 id) → bytes data++` [.item-kind]#external# + +Returns the staked assets for a given ID. + +[.contract-item] +[[InstanceService-processIds--]] +==== `[.contract-item-name]#++processIds++#++() → uint256 numberOfProcessIds++` [.item-kind]#external# + +Returns the number of process IDs in the policy contract. + +[.contract-item] +[[InstanceService-getMetadata-bytes32-]] +==== `[.contract-item-name]#++getMetadata++#++(bytes32 bpKey) → struct IPolicy.Metadata metadata++` [.item-kind]#external# + +Returns the metadata associated with a given business process key. + +[.contract-item] +[[InstanceService-getApplication-bytes32-]] +==== `[.contract-item-name]#++getApplication++#++(bytes32 processId) → struct IPolicy.Application application++` [.item-kind]#external# + +Returns the application data associated with the given process ID. + +[.contract-item] +[[InstanceService-getPolicy-bytes32-]] +==== `[.contract-item-name]#++getPolicy++#++(bytes32 processId) → struct IPolicy.Policy policy++` [.item-kind]#external# + +Returns the policy associated with the given process ID. + +[.contract-item] +[[InstanceService-claims-bytes32-]] +==== `[.contract-item-name]#++claims++#++(bytes32 processId) → uint256 numberOfClaims++` [.item-kind]#external# + +Returns the number of claims associated with a given process ID. + +[.contract-item] +[[InstanceService-payouts-bytes32-]] +==== `[.contract-item-name]#++payouts++#++(bytes32 processId) → uint256 numberOfPayouts++` [.item-kind]#external# + +Returns the number of payouts for a given processId. + +[.contract-item] +[[InstanceService-getClaim-bytes32-uint256-]] +==== `[.contract-item-name]#++getClaim++#++(bytes32 processId, uint256 claimId) → struct IPolicy.Claim claim++` [.item-kind]#external# + +Returns the claim with the given claimId for the specified processId. + +[.contract-item] +[[InstanceService-getPayout-bytes32-uint256-]] +==== `[.contract-item-name]#++getPayout++#++(bytes32 processId, uint256 payoutId) → struct IPolicy.Payout payout++` [.item-kind]#external# + +Returns the information of a specific payout. + +[.contract-item] +[[InstanceService-getRiskpool-uint256-]] +==== `[.contract-item-name]#++getRiskpool++#++(uint256 riskpoolId) → struct IPool.Pool riskPool++` [.item-kind]#external# + +Returns the risk pool with the given ID. + +[.contract-item] +[[InstanceService-getFullCollateralizationLevel--]] +==== `[.contract-item-name]#++getFullCollateralizationLevel++#++() → uint256++` [.item-kind]#external# + +Returns the full collateralization level of the pool. + +[.contract-item] +[[InstanceService-getCapital-uint256-]] +==== `[.contract-item-name]#++getCapital++#++(uint256 riskpoolId) → uint256 capitalAmount++` [.item-kind]#external# + +Returns the capital amount of a given risk pool. + +[.contract-item] +[[InstanceService-getTotalValueLocked-uint256-]] +==== `[.contract-item-name]#++getTotalValueLocked++#++(uint256 riskpoolId) → uint256 totalValueLockedAmount++` [.item-kind]#external# + +Returns the total value locked in a specific risk pool. + +[.contract-item] +[[InstanceService-getCapacity-uint256-]] +==== `[.contract-item-name]#++getCapacity++#++(uint256 riskpoolId) → uint256 capacityAmount++` [.item-kind]#external# + +Returns the available capacity of a risk pool. + +[.contract-item] +[[InstanceService-getBalance-uint256-]] +==== `[.contract-item-name]#++getBalance++#++(uint256 riskpoolId) → uint256 balanceAmount++` [.item-kind]#external# + +Returns the balance amount of a specific risk pool. + +[.contract-item] +[[InstanceService-activeBundles-uint256-]] +==== `[.contract-item-name]#++activeBundles++#++(uint256 riskpoolId) → uint256 numberOfActiveBundles++` [.item-kind]#external# + +Returns the number of active bundles for a given risk pool. + +[.contract-item] +[[InstanceService-getActiveBundleId-uint256-uint256-]] +==== `[.contract-item-name]#++getActiveBundleId++#++(uint256 riskpoolId, uint256 bundleIdx) → uint256 bundleId++` [.item-kind]#external# + +Returns the active bundle ID for a given risk pool and bundle index. + +[.contract-item] +[[InstanceService-getMaximumNumberOfActiveBundles-uint256-]] +==== `[.contract-item-name]#++getMaximumNumberOfActiveBundles++#++(uint256 riskpoolId) → uint256 maximumNumberOfActiveBundles++` [.item-kind]#external# + +Returns the maximum number of active bundles for a given risk pool ID. + +[.contract-item] +[[InstanceService-getBundleToken--]] +==== `[.contract-item-name]#++getBundleToken++#++() → contract IBundleToken token++` [.item-kind]#external# + +Returns the bundle token contract address. + +[.contract-item] +[[InstanceService-getBundle-uint256-]] +==== `[.contract-item-name]#++getBundle++#++(uint256 bundleId) → struct IBundle.Bundle bundle++` [.item-kind]#external# + +Returns the bundle with the given ID. + +[.contract-item] +[[InstanceService-bundles--]] +==== `[.contract-item-name]#++bundles++#++() → uint256++` [.item-kind]#external# + +Returns the number of bundles in the `_bundle` contract. + +[.contract-item] +[[InstanceService-unburntBundles-uint256-]] +==== `[.contract-item-name]#++unburntBundles++#++(uint256 riskpoolId) → uint256 numberOfUnburntBundles++` [.item-kind]#external# + +Returns the number of unburnt bundles for a given risk pool ID. + +[.contract-item] +[[InstanceService-getTreasuryAddress--]] +==== `[.contract-item-name]#++getTreasuryAddress++#++() → address++` [.item-kind]#external# + +Returns the address of the treasury contract. + +[.contract-item] +[[InstanceService-getInstanceWallet--]] +==== `[.contract-item-name]#++getInstanceWallet++#++() → address++` [.item-kind]#external# + +Returns the address of the instance wallet associated with the treasury. + +[.contract-item] +[[InstanceService-getRiskpoolWallet-uint256-]] +==== `[.contract-item-name]#++getRiskpoolWallet++#++(uint256 riskpoolId) → address++` [.item-kind]#external# + +Returns the wallet address of the specified riskpool. + +[.contract-item] +[[InstanceService-getComponentToken-uint256-]] +==== `[.contract-item-name]#++getComponentToken++#++(uint256 componentId) → contract IERC20++` [.item-kind]#external# + +Returns the IERC20 token associated with the given component ID. + +[.contract-item] +[[InstanceService-getFeeFractionFullUnit--]] +==== `[.contract-item-name]#++getFeeFractionFullUnit++#++() → uint256++` [.item-kind]#external# + +Returns the fraction of the treasury fee expressed in full units. + +:_afterInitialize: pass:normal[xref:#OracleService-_afterInitialize--[`++_afterInitialize++`]] +:respond: pass:normal[xref:#OracleService-respond-uint256-bytes-[`++respond++`]] + +[.contract] +[[OracleService]] +=== `++OracleService++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/services/OracleService.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/services/OracleService.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-OracleService-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-OracleService-respond-uint256-bytes-}[`++respond(_requestId, _data)++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IOracleService + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IOracleService + +-- + +[.contract-item] +[[OracleService-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +Sets the `_query` variable to an instance of the `IQuery` contract. + +[.contract-item] +[[OracleService-respond-uint256-bytes-]] +==== `[.contract-item-name]#++respond++#++(uint256 _requestId, bytes _data)++` [.item-kind]#external# + +Allows a registered oracle to respond to a data request. + +:NAME: pass:normal[xref:#ProductService-NAME-bytes32[`++NAME++`]] +:constructor: pass:normal[xref:#ProductService-constructor-address-[`++constructor++`]] +:fallback: pass:normal[xref:#ProductService-fallback--[`++fallback++`]] +:_delegate: pass:normal[xref:#ProductService-_delegate-address-[`++_delegate++`]] +:_license: pass:normal[xref:#ProductService-_license--[`++_license++`]] + +[.contract] +[[ProductService]] +=== `++ProductService++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/services/ProductService.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/services/ProductService.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-ProductService-constructor-address-}[`++constructor(_registry)++`] +* {xref-ProductService-fallback--}[`++fallback()++`] +* {xref-ProductService-_delegate-address-}[`++_delegate(implementation)++`] +* {xref-ProductService-_license--}[`++_license()++`] + +[.contract-subindex-inherited] +.WithRegistry +* {xref-WithRegistry-getContractFromRegistry-bytes32-}[`++getContractFromRegistry(_contractName)++`] +* {xref-WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32-}[`++getContractInReleaseFromRegistry(_release, _contractName)++`] +* {xref-WithRegistry-getReleaseFromRegistry--}[`++getReleaseFromRegistry()++`] + +-- + +[.contract-item] +[[ProductService-constructor-address-]] +==== `[.contract-item-name]#++constructor++#++(address _registry)++` [.item-kind]#public# + +Constructor function that initializes the contract with a registry address. + +[.contract-item] +[[ProductService-fallback--]] +==== `[.contract-item-name]#++fallback++#++()++` [.item-kind]#external# + +Fallback function that ensures the caller is a registered product and authorized to execute the delegated policy flow. + +[.contract-item] +[[ProductService-_delegate-address-]] +==== `[.contract-item-name]#++_delegate++#++(address implementation)++` [.item-kind]#internal# + +Delegates the current call to `implementation`. + +[.contract-item] +[[ProductService-_license--]] +==== `[.contract-item-name]#++_license++#++() → contract ILicense++` [.item-kind]#internal# + +Returns the instance of the License contract. + +:RISKPOOL_NAME: pass:normal[xref:#RiskpoolService-RISKPOOL_NAME-bytes32[`++RISKPOOL_NAME++`]] +:onlyProposedRiskpool: pass:normal[xref:#RiskpoolService-onlyProposedRiskpool--[`++onlyProposedRiskpool++`]] +:onlyActiveRiskpool: pass:normal[xref:#RiskpoolService-onlyActiveRiskpool--[`++onlyActiveRiskpool++`]] +:onlyOwningRiskpool: pass:normal[xref:#RiskpoolService-onlyOwningRiskpool-uint256-bool-[`++onlyOwningRiskpool++`]] +:onlyOwningRiskpoolId: pass:normal[xref:#RiskpoolService-onlyOwningRiskpoolId-uint256-bool-[`++onlyOwningRiskpoolId++`]] +:_afterInitialize: pass:normal[xref:#RiskpoolService-_afterInitialize--[`++_afterInitialize++`]] +:registerRiskpool: pass:normal[xref:#RiskpoolService-registerRiskpool-address-address-uint256-uint256-[`++registerRiskpool++`]] +:createBundle: pass:normal[xref:#RiskpoolService-createBundle-address-bytes-uint256-[`++createBundle++`]] +:fundBundle: pass:normal[xref:#RiskpoolService-fundBundle-uint256-uint256-[`++fundBundle++`]] +:defundBundle: pass:normal[xref:#RiskpoolService-defundBundle-uint256-uint256-[`++defundBundle++`]] +:lockBundle: pass:normal[xref:#RiskpoolService-lockBundle-uint256-[`++lockBundle++`]] +:unlockBundle: pass:normal[xref:#RiskpoolService-unlockBundle-uint256-[`++unlockBundle++`]] +:closeBundle: pass:normal[xref:#RiskpoolService-closeBundle-uint256-[`++closeBundle++`]] +:burnBundle: pass:normal[xref:#RiskpoolService-burnBundle-uint256-[`++burnBundle++`]] +:collateralizePolicy: pass:normal[xref:#RiskpoolService-collateralizePolicy-uint256-bytes32-uint256-[`++collateralizePolicy++`]] +:processPremium: pass:normal[xref:#RiskpoolService-processPremium-uint256-bytes32-uint256-[`++processPremium++`]] +:processPayout: pass:normal[xref:#RiskpoolService-processPayout-uint256-bytes32-uint256-[`++processPayout++`]] +:releasePolicy: pass:normal[xref:#RiskpoolService-releasePolicy-uint256-bytes32-[`++releasePolicy++`]] +:setMaximumNumberOfActiveBundles: pass:normal[xref:#RiskpoolService-setMaximumNumberOfActiveBundles-uint256-uint256-[`++setMaximumNumberOfActiveBundles++`]] + +[.contract] +[[RiskpoolService]] +=== `++RiskpoolService++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/services/RiskpoolService.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/services/RiskpoolService.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-RiskpoolService-onlyProposedRiskpool--}[`++onlyProposedRiskpool()++`] +* {xref-RiskpoolService-onlyActiveRiskpool--}[`++onlyActiveRiskpool()++`] +* {xref-RiskpoolService-onlyOwningRiskpool-uint256-bool-}[`++onlyOwningRiskpool(bundleId, mustBeActive)++`] +* {xref-RiskpoolService-onlyOwningRiskpoolId-uint256-bool-}[`++onlyOwningRiskpoolId(riskpoolId, mustBeActive)++`] +-- + +[.contract-index] +.Functions +-- +* {xref-RiskpoolService-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-RiskpoolService-registerRiskpool-address-address-uint256-uint256-}[`++registerRiskpool(wallet, erc20Token, collateralizationLevel, sumOfSumInsuredCap)++`] +* {xref-RiskpoolService-createBundle-address-bytes-uint256-}[`++createBundle(owner, filter, initialCapital)++`] +* {xref-RiskpoolService-fundBundle-uint256-uint256-}[`++fundBundle(bundleId, amount)++`] +* {xref-RiskpoolService-defundBundle-uint256-uint256-}[`++defundBundle(bundleId, amount)++`] +* {xref-RiskpoolService-lockBundle-uint256-}[`++lockBundle(bundleId)++`] +* {xref-RiskpoolService-unlockBundle-uint256-}[`++unlockBundle(bundleId)++`] +* {xref-RiskpoolService-closeBundle-uint256-}[`++closeBundle(bundleId)++`] +* {xref-RiskpoolService-burnBundle-uint256-}[`++burnBundle(bundleId)++`] +* {xref-RiskpoolService-collateralizePolicy-uint256-bytes32-uint256-}[`++collateralizePolicy(bundleId, processId, collateralAmount)++`] +* {xref-RiskpoolService-processPremium-uint256-bytes32-uint256-}[`++processPremium(bundleId, processId, amount)++`] +* {xref-RiskpoolService-processPayout-uint256-bytes32-uint256-}[`++processPayout(bundleId, processId, amount)++`] +* {xref-RiskpoolService-releasePolicy-uint256-bytes32-}[`++releasePolicy(bundleId, processId)++`] +* {xref-RiskpoolService-setMaximumNumberOfActiveBundles-uint256-uint256-}[`++setMaximumNumberOfActiveBundles(riskpoolId, maxNumberOfActiveBundles)++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IRiskpoolService + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IRiskpoolService + +-- + +[.contract-item] +[[RiskpoolService-onlyProposedRiskpool--]] +==== `[.contract-item-name]#++onlyProposedRiskpool++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[RiskpoolService-onlyActiveRiskpool--]] +==== `[.contract-item-name]#++onlyActiveRiskpool++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[RiskpoolService-onlyOwningRiskpool-uint256-bool-]] +==== `[.contract-item-name]#++onlyOwningRiskpool++#++(uint256 bundleId, bool mustBeActive)++` [.item-kind]#modifier# + +[.contract-item] +[[RiskpoolService-onlyOwningRiskpoolId-uint256-bool-]] +==== `[.contract-item-name]#++onlyOwningRiskpoolId++#++(uint256 riskpoolId, bool mustBeActive)++` [.item-kind]#modifier# + +[.contract-item] +[[RiskpoolService-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +Sets the addresses of the BundleController, ComponentController, PoolController, and TreasuryModule contracts. + +[.contract-item] +[[RiskpoolService-registerRiskpool-address-address-uint256-uint256-]] +==== `[.contract-item-name]#++registerRiskpool++#++(address wallet, address erc20Token, uint256 collateralizationLevel, uint256 sumOfSumInsuredCap)++` [.item-kind]#external# + +Registers a new risk pool with the given parameters. + +[.contract-item] +[[RiskpoolService-createBundle-address-bytes-uint256-]] +==== `[.contract-item-name]#++createBundle++#++(address owner, bytes filter, uint256 initialCapital) → uint256 bundleId++` [.item-kind]#external# + +Creates a new bundle with the given parameters and adds it to the active set of the riskpool. + +[.contract-item] +[[RiskpoolService-fundBundle-uint256-uint256-]] +==== `[.contract-item-name]#++fundBundle++#++(uint256 bundleId, uint256 amount) → uint256 netAmount++` [.item-kind]#external# + +This function allows a user to fund a bundle with a specified amount. + +[.contract-item] +[[RiskpoolService-defundBundle-uint256-uint256-]] +==== `[.contract-item-name]#++defundBundle++#++(uint256 bundleId, uint256 amount) → uint256 netAmount++` [.item-kind]#external# + +Defunds a bundle by withdrawing a specified amount of tokens from it. + +[.contract-item] +[[RiskpoolService-lockBundle-uint256-]] +==== `[.contract-item-name]#++lockBundle++#++(uint256 bundleId)++` [.item-kind]#external# + +Locks a bundle, preventing it from being traded or redeemed. + +[.contract-item] +[[RiskpoolService-unlockBundle-uint256-]] +==== `[.contract-item-name]#++unlockBundle++#++(uint256 bundleId)++` [.item-kind]#external# + +Unlocks a bundle for trading by adding its ID to the active set of a risk pool and unlocking the bundle. + +[.contract-item] +[[RiskpoolService-closeBundle-uint256-]] +==== `[.contract-item-name]#++closeBundle++#++(uint256 bundleId)++` [.item-kind]#external# + +Closes a bundle and removes it from the active set of the owning riskpool. + +[.contract-item] +[[RiskpoolService-burnBundle-uint256-]] +==== `[.contract-item-name]#++burnBundle++#++(uint256 bundleId)++` [.item-kind]#external# + +Burns a closed bundle, withdrawing its remaining balance and defunding it from the riskpool and the pool. + +[.contract-item] +[[RiskpoolService-collateralizePolicy-uint256-bytes32-uint256-]] +==== `[.contract-item-name]#++collateralizePolicy++#++(uint256 bundleId, bytes32 processId, uint256 collateralAmount)++` [.item-kind]#external# + +Collateralizes a policy by locking a specified amount of collateral for a given bundle and process ID. + +[.contract-item] +[[RiskpoolService-processPremium-uint256-bytes32-uint256-]] +==== `[.contract-item-name]#++processPremium++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# + +Processes a premium payment for a specific bundle. + +[.contract-item] +[[RiskpoolService-processPayout-uint256-bytes32-uint256-]] +==== `[.contract-item-name]#++processPayout++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# + +Processes a payout for a specific bundle. + +[.contract-item] +[[RiskpoolService-releasePolicy-uint256-bytes32-]] +==== `[.contract-item-name]#++releasePolicy++#++(uint256 bundleId, bytes32 processId) → uint256 collateralAmount++` [.item-kind]#external# + +Releases a policy for a given bundle and process ID. + +[.contract-item] +[[RiskpoolService-setMaximumNumberOfActiveBundles-uint256-uint256-]] +==== `[.contract-item-name]#++setMaximumNumberOfActiveBundles++#++(uint256 riskpoolId, uint256 maxNumberOfActiveBundles)++` [.item-kind]#external# + +Sets the maximum number of active bundles for a given riskpool. + diff --git a/docs/modules/api/pages/shared.adoc b/docs/modules/api/pages/shared.adoc new file mode 100644 index 00000000..2b07069d --- /dev/null +++ b/docs/modules/api/pages/shared.adoc @@ -0,0 +1,345 @@ +:github-icon: pass:[] +:xref-CoreController-onlyInstanceOperator--: xref:shared.adoc#CoreController-onlyInstanceOperator-- +:xref-CoreController-onlyPolicyFlow-bytes32-: xref:shared.adoc#CoreController-onlyPolicyFlow-bytes32- +:xref-CoreController-constructor--: xref:shared.adoc#CoreController-constructor-- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_afterInitialize--: xref:shared.adoc#CoreController-_afterInitialize-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-CoreProxy-onlyAdmin--: xref:shared.adoc#CoreProxy-onlyAdmin-- +:xref-CoreProxy-constructor-address-bytes-: xref:shared.adoc#CoreProxy-constructor-address-bytes- +:xref-CoreProxy-implementation--: xref:shared.adoc#CoreProxy-implementation-- +:xref-CoreProxy-upgradeToAndCall-address-bytes-: xref:shared.adoc#CoreProxy-upgradeToAndCall-address-bytes- +:xref-TransferHelper-unifiedTransferFrom-contract-IERC20-address-address-uint256-: xref:shared.adoc#TransferHelper-unifiedTransferFrom-contract-IERC20-address-address-uint256- +:xref-TransferHelper-LogTransferHelperInputValidation1Failed-bool-address-address-: xref:shared.adoc#TransferHelper-LogTransferHelperInputValidation1Failed-bool-address-address- +:xref-TransferHelper-LogTransferHelperInputValidation2Failed-uint256-uint256-: xref:shared.adoc#TransferHelper-LogTransferHelperInputValidation2Failed-uint256-uint256- +:xref-TransferHelper-LogTransferHelperCallFailed-bool-uint256-bytes-: xref:shared.adoc#TransferHelper-LogTransferHelperCallFailed-bool-uint256-bytes- +:xref-WithRegistry-onlyInstanceOperator--: xref:shared.adoc#WithRegistry-onlyInstanceOperator-- +:xref-WithRegistry-onlyOracleService--: xref:shared.adoc#WithRegistry-onlyOracleService-- +:xref-WithRegistry-onlyOracleOwner--: xref:shared.adoc#WithRegistry-onlyOracleOwner-- +:xref-WithRegistry-onlyProductOwner--: xref:shared.adoc#WithRegistry-onlyProductOwner-- +:xref-WithRegistry-constructor-address-: xref:shared.adoc#WithRegistry-constructor-address- +:xref-WithRegistry-getContractFromRegistry-bytes32-: xref:shared.adoc#WithRegistry-getContractFromRegistry-bytes32- +:xref-WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32-: xref:shared.adoc#WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32- +:xref-WithRegistry-getReleaseFromRegistry--: xref:shared.adoc#WithRegistry-getReleaseFromRegistry-- += Shared + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/shared + +== Contracts + +:_registry: pass:normal[xref:#CoreController-_registry-contract-IRegistry[`++_registry++`]] +:_access: pass:normal[xref:#CoreController-_access-contract-IAccess[`++_access++`]] +:constructor: pass:normal[xref:#CoreController-constructor--[`++constructor++`]] +:onlyInstanceOperator: pass:normal[xref:#CoreController-onlyInstanceOperator--[`++onlyInstanceOperator++`]] +:onlyPolicyFlow: pass:normal[xref:#CoreController-onlyPolicyFlow-bytes32-[`++onlyPolicyFlow++`]] +:initialize: pass:normal[xref:#CoreController-initialize-address-[`++initialize++`]] +:_getName: pass:normal[xref:#CoreController-_getName--[`++_getName++`]] +:_afterInitialize: pass:normal[xref:#CoreController-_afterInitialize--[`++_afterInitialize++`]] +:_getContractAddress: pass:normal[xref:#CoreController-_getContractAddress-bytes32-[`++_getContractAddress++`]] + +[.contract] +[[CoreController]] +=== `++CoreController++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/shared/CoreController.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/shared/CoreController.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-CoreController-onlyInstanceOperator--}[`++onlyInstanceOperator()++`] +* {xref-CoreController-onlyPolicyFlow-bytes32-}[`++onlyPolicyFlow(module)++`] +-- + +[.contract-index] +.Functions +-- +* {xref-CoreController-constructor--}[`++constructor()++`] +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +-- + +[.contract-item] +[[CoreController-onlyInstanceOperator--]] +==== `[.contract-item-name]#++onlyInstanceOperator++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[CoreController-onlyPolicyFlow-bytes32-]] +==== `[.contract-item-name]#++onlyPolicyFlow++#++(bytes32 module)++` [.item-kind]#modifier# + +[.contract-item] +[[CoreController-constructor--]] +==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# + +Constructor function that disables initializers. + +[.contract-item] +[[CoreController-initialize-address-]] +==== `[.contract-item-name]#++initialize++#++(address registry)++` [.item-kind]#public# + +Initializes the contract with the provided registry address. + +[.contract-item] +[[CoreController-_getName--]] +==== `[.contract-item-name]#++_getName++#++() → bytes32++` [.item-kind]#internal# + +Returns the name of the contract. + +[.contract-item] +[[CoreController-_afterInitialize--]] +==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# + +This function is called after the contract is initialized and can be used to perform additional setup. + +[.contract-item] +[[CoreController-_getContractAddress-bytes32-]] +==== `[.contract-item-name]#++_getContractAddress++#++(bytes32 contractName) → address contractAddress++` [.item-kind]#internal# + +Returns the address of a registered contract by its name. + +:onlyAdmin: pass:normal[xref:#CoreProxy-onlyAdmin--[`++onlyAdmin++`]] +:constructor: pass:normal[xref:#CoreProxy-constructor-address-bytes-[`++constructor++`]] +:implementation: pass:normal[xref:#CoreProxy-implementation--[`++implementation++`]] +:upgradeToAndCall: pass:normal[xref:#CoreProxy-upgradeToAndCall-address-bytes-[`++upgradeToAndCall++`]] + +[.contract] +[[CoreProxy]] +=== `++CoreProxy++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/shared/CoreProxy.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/shared/CoreProxy.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-CoreProxy-onlyAdmin--}[`++onlyAdmin()++`] +-- + +[.contract-index] +.Functions +-- +* {xref-CoreProxy-constructor-address-bytes-}[`++constructor(_controller, encoded_initializer)++`] +* {xref-CoreProxy-implementation--}[`++implementation()++`] +* {xref-CoreProxy-upgradeToAndCall-address-bytes-}[`++upgradeToAndCall(newImplementation, data)++`] + +[.contract-subindex-inherited] +.ERC1967Proxy +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Proxy-_implementation--[`++_implementation()++`] + +[.contract-subindex-inherited] +.ERC1967Upgrade +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Upgrade-_getImplementation--[`++_getImplementation()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Upgrade-_upgradeTo-address-[`++_upgradeTo(newImplementation)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Upgrade-_upgradeToAndCall-address-bytes-bool-[`++_upgradeToAndCall(newImplementation, data, forceCall)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Upgrade-_upgradeToAndCallUUPS-address-bytes-bool-[`++_upgradeToAndCallUUPS(newImplementation, data, forceCall)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Upgrade-_getAdmin--[`++_getAdmin()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Upgrade-_changeAdmin-address-[`++_changeAdmin(newAdmin)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Upgrade-_getBeacon--[`++_getBeacon()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Upgrade-_upgradeBeaconToAndCall-address-bytes-bool-[`++_upgradeBeaconToAndCall(newBeacon, data, forceCall)++`] + +[.contract-subindex-inherited] +.Proxy +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Proxy-_delegate-address-[`++_delegate(implementation)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Proxy-_fallback--[`++_fallback()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Proxy-fallback--[`++fallback()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Proxy-receive--[`++receive()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Proxy-_beforeFallback--[`++_beforeFallback()++`] + +[.contract-subindex-inherited] +.ICoreProxy + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.ERC1967Proxy + +[.contract-subindex-inherited] +.ERC1967Upgrade +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Upgrade-Upgraded-address-[`++Upgraded(implementation)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Upgrade-AdminChanged-address-address-[`++AdminChanged(previousAdmin, newAdmin)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#ERC1967Upgrade-BeaconUpgraded-address-[`++BeaconUpgraded(beacon)++`] + +[.contract-subindex-inherited] +.Proxy + +[.contract-subindex-inherited] +.ICoreProxy +* https://github.com/etherisc/gif-interface/blob/develop/contracts/shared/ICoreProxy.sol[`++LogCoreContractUpgraded(oldImplementation, newImplemntation)++`] + +-- + +[.contract-item] +[[CoreProxy-onlyAdmin--]] +==== `[.contract-item-name]#++onlyAdmin++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[CoreProxy-constructor-address-bytes-]] +==== `[.contract-item-name]#++constructor++#++(address _controller, bytes encoded_initializer)++` [.item-kind]#public# + +Constructor function that creates a new instance of the contract. + +[.contract-item] +[[CoreProxy-implementation--]] +==== `[.contract-item-name]#++implementation++#++() → address++` [.item-kind]#external# + +Returns the address of the current implementation contract. + +[.contract-item] +[[CoreProxy-upgradeToAndCall-address-bytes-]] +==== `[.contract-item-name]#++upgradeToAndCall++#++(address newImplementation, bytes data)++` [.item-kind]#external# + +Upgrades the contract to a new implementation and forwards a function call to it. + +:LogTransferHelperInputValidation1Failed: pass:normal[xref:#TransferHelper-LogTransferHelperInputValidation1Failed-bool-address-address-[`++LogTransferHelperInputValidation1Failed++`]] +:LogTransferHelperInputValidation2Failed: pass:normal[xref:#TransferHelper-LogTransferHelperInputValidation2Failed-uint256-uint256-[`++LogTransferHelperInputValidation2Failed++`]] +:LogTransferHelperCallFailed: pass:normal[xref:#TransferHelper-LogTransferHelperCallFailed-bool-uint256-bytes-[`++LogTransferHelperCallFailed++`]] +:unifiedTransferFrom: pass:normal[xref:#TransferHelper-unifiedTransferFrom-contract-IERC20-address-address-uint256-[`++unifiedTransferFrom++`]] + +[.contract] +[[TransferHelper]] +=== `++TransferHelper++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/shared/TransferHelper.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/shared/TransferHelper.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-TransferHelper-unifiedTransferFrom-contract-IERC20-address-address-uint256-}[`++unifiedTransferFrom(token, from, to, value)++`] + +-- + +[.contract-index] +.Events +-- +* {xref-TransferHelper-LogTransferHelperInputValidation1Failed-bool-address-address-}[`++LogTransferHelperInputValidation1Failed(tokenIsContract, from, to)++`] +* {xref-TransferHelper-LogTransferHelperInputValidation2Failed-uint256-uint256-}[`++LogTransferHelperInputValidation2Failed(balance, allowance)++`] +* {xref-TransferHelper-LogTransferHelperCallFailed-bool-uint256-bytes-}[`++LogTransferHelperCallFailed(callSuccess, returnDataLength, returnData)++`] + +-- + +[.contract-item] +[[TransferHelper-unifiedTransferFrom-contract-IERC20-address-address-uint256-]] +==== `[.contract-item-name]#++unifiedTransferFrom++#++(contract IERC20 token, address from, address to, uint256 value) → bool success++` [.item-kind]#internal# + +Executes a transferFrom function call on an ERC20 token contract, after performing input validation. + +[.contract-item] +[[TransferHelper-LogTransferHelperInputValidation1Failed-bool-address-address-]] +==== `[.contract-item-name]#++LogTransferHelperInputValidation1Failed++#++(bool tokenIsContract, address from, address to)++` [.item-kind]#event# + +[.contract-item] +[[TransferHelper-LogTransferHelperInputValidation2Failed-uint256-uint256-]] +==== `[.contract-item-name]#++LogTransferHelperInputValidation2Failed++#++(uint256 balance, uint256 allowance)++` [.item-kind]#event# + +[.contract-item] +[[TransferHelper-LogTransferHelperCallFailed-bool-uint256-bytes-]] +==== `[.contract-item-name]#++LogTransferHelperCallFailed++#++(bool callSuccess, uint256 returnDataLength, bytes returnData)++` [.item-kind]#event# + +:registry: pass:normal[xref:#WithRegistry-registry-contract-IRegistry[`++registry++`]] +:onlyInstanceOperator: pass:normal[xref:#WithRegistry-onlyInstanceOperator--[`++onlyInstanceOperator++`]] +:onlyOracleService: pass:normal[xref:#WithRegistry-onlyOracleService--[`++onlyOracleService++`]] +:onlyOracleOwner: pass:normal[xref:#WithRegistry-onlyOracleOwner--[`++onlyOracleOwner++`]] +:onlyProductOwner: pass:normal[xref:#WithRegistry-onlyProductOwner--[`++onlyProductOwner++`]] +:constructor: pass:normal[xref:#WithRegistry-constructor-address-[`++constructor++`]] +:getContractFromRegistry: pass:normal[xref:#WithRegistry-getContractFromRegistry-bytes32-[`++getContractFromRegistry++`]] +:getContractInReleaseFromRegistry: pass:normal[xref:#WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32-[`++getContractInReleaseFromRegistry++`]] +:getReleaseFromRegistry: pass:normal[xref:#WithRegistry-getReleaseFromRegistry--[`++getReleaseFromRegistry++`]] + +[.contract] +[[WithRegistry]] +=== `++WithRegistry++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/shared/WithRegistry.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/shared/WithRegistry.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-WithRegistry-onlyInstanceOperator--}[`++onlyInstanceOperator()++`] +* {xref-WithRegistry-onlyOracleService--}[`++onlyOracleService()++`] +* {xref-WithRegistry-onlyOracleOwner--}[`++onlyOracleOwner()++`] +* {xref-WithRegistry-onlyProductOwner--}[`++onlyProductOwner()++`] +-- + +[.contract-index] +.Functions +-- +* {xref-WithRegistry-constructor-address-}[`++constructor(_registry)++`] +* {xref-WithRegistry-getContractFromRegistry-bytes32-}[`++getContractFromRegistry(_contractName)++`] +* {xref-WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32-}[`++getContractInReleaseFromRegistry(_release, _contractName)++`] +* {xref-WithRegistry-getReleaseFromRegistry--}[`++getReleaseFromRegistry()++`] + +-- + +[.contract-item] +[[WithRegistry-onlyInstanceOperator--]] +==== `[.contract-item-name]#++onlyInstanceOperator++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[WithRegistry-onlyOracleService--]] +==== `[.contract-item-name]#++onlyOracleService++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[WithRegistry-onlyOracleOwner--]] +==== `[.contract-item-name]#++onlyOracleOwner++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[WithRegistry-onlyProductOwner--]] +==== `[.contract-item-name]#++onlyProductOwner++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[WithRegistry-constructor-address-]] +==== `[.contract-item-name]#++constructor++#++(address _registry)++` [.item-kind]#public# + +Constructor function that sets the address of the registry contract. + +[.contract-item] +[[WithRegistry-getContractFromRegistry-bytes32-]] +==== `[.contract-item-name]#++getContractFromRegistry++#++(bytes32 _contractName) → address _addr++` [.item-kind]#public# + +Returns the address of a contract registered in the registry by its name. + +[.contract-item] +[[WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32-]] +==== `[.contract-item-name]#++getContractInReleaseFromRegistry++#++(bytes32 _release, bytes32 _contractName) → address _addr++` [.item-kind]#internal# + +Returns the address of a contract with a given name in a specific release of the registry. + +[.contract-item] +[[WithRegistry-getReleaseFromRegistry--]] +==== `[.contract-item-name]#++getReleaseFromRegistry++#++() → bytes32 _release++` [.item-kind]#internal# + +Returns the current release identifier from the registry. + diff --git a/docs/modules/api/pages/test.adoc b/docs/modules/api/pages/test.adoc new file mode 100644 index 00000000..932f3cbd --- /dev/null +++ b/docs/modules/api/pages/test.adoc @@ -0,0 +1,1419 @@ +:github-icon: pass:[] +:xref-TestCoin-constructor--: xref:test.adoc#TestCoin-constructor-- +:xref-TestCoinAlternativeImplementation-constructor--: xref:test.adoc#TestCoinAlternativeImplementation-constructor-- +:xref-TestCoinAlternativeImplementation-transferFrom-address-address-uint256-: xref:test.adoc#TestCoinAlternativeImplementation-transferFrom-address-address-uint256- +:xref-TestCompromisedProduct-onlyPolicyHolder-bytes32-: xref:test.adoc#TestCompromisedProduct-onlyPolicyHolder-bytes32- +:xref-TestCompromisedProduct-constructor-bytes32-address-uint256-uint256-address-: xref:test.adoc#TestCompromisedProduct-constructor-bytes32-address-uint256-uint256-address- +:xref-TestCompromisedProduct-applyForPolicy-uint256-uint256-bytes-bytes-: xref:test.adoc#TestCompromisedProduct-applyForPolicy-uint256-uint256-bytes-bytes- +:xref-TestCompromisedProduct-collectPremium-bytes32-: xref:test.adoc#TestCompromisedProduct-collectPremium-bytes32- +:xref-TestCompromisedProduct-submitClaim-bytes32-uint256-: xref:test.adoc#TestCompromisedProduct-submitClaim-bytes32-uint256- +:xref-TestCompromisedProduct-getToken--: xref:test.adoc#TestCompromisedProduct-getToken-- +:xref-TestCompromisedProduct-getPolicyFlow--: xref:test.adoc#TestCompromisedProduct-getPolicyFlow-- +:xref-TestCompromisedProduct-getRiskpoolId--: xref:test.adoc#TestCompromisedProduct-getRiskpoolId-- +:xref-TestCompromisedProduct-getApplicationDataStructure--: xref:test.adoc#TestCompromisedProduct-getApplicationDataStructure-- +:xref-TestCompromisedProduct-getClaimDataStructure--: xref:test.adoc#TestCompromisedProduct-getClaimDataStructure-- +:xref-TestCompromisedProduct-getPayoutDataStructure--: xref:test.adoc#TestCompromisedProduct-getPayoutDataStructure-- +:xref-TestCompromisedProduct-riskPoolCapacityCallback-uint256-: xref:test.adoc#TestCompromisedProduct-riskPoolCapacityCallback-uint256- +:xref-TestCompromisedProduct-setId-uint256-: xref:test.adoc#TestCompromisedProduct-setId-uint256- +:xref-TestCompromisedProduct-getName--: xref:test.adoc#TestCompromisedProduct-getName-- +:xref-TestCompromisedProduct-getId--: xref:test.adoc#TestCompromisedProduct-getId-- +:xref-TestCompromisedProduct-getType--: xref:test.adoc#TestCompromisedProduct-getType-- +:xref-TestCompromisedProduct-getState--: xref:test.adoc#TestCompromisedProduct-getState-- +:xref-TestCompromisedProduct-getOwner--: xref:test.adoc#TestCompromisedProduct-getOwner-- +:xref-TestCompromisedProduct-getRegistry--: xref:test.adoc#TestCompromisedProduct-getRegistry-- +:xref-TestCompromisedProduct-isProduct--: xref:test.adoc#TestCompromisedProduct-isProduct-- +:xref-TestCompromisedProduct-isOracle--: xref:test.adoc#TestCompromisedProduct-isOracle-- +:xref-TestCompromisedProduct-isRiskpool--: xref:test.adoc#TestCompromisedProduct-isRiskpool-- +:xref-TestCompromisedProduct-proposalCallback--: xref:test.adoc#TestCompromisedProduct-proposalCallback-- +:xref-TestCompromisedProduct-approvalCallback--: xref:test.adoc#TestCompromisedProduct-approvalCallback-- +:xref-TestCompromisedProduct-declineCallback--: xref:test.adoc#TestCompromisedProduct-declineCallback-- +:xref-TestCompromisedProduct-suspendCallback--: xref:test.adoc#TestCompromisedProduct-suspendCallback-- +:xref-TestCompromisedProduct-resumeCallback--: xref:test.adoc#TestCompromisedProduct-resumeCallback-- +:xref-TestCompromisedProduct-pauseCallback--: xref:test.adoc#TestCompromisedProduct-pauseCallback-- +:xref-TestCompromisedProduct-unpauseCallback--: xref:test.adoc#TestCompromisedProduct-unpauseCallback-- +:xref-TestCompromisedProduct-archiveCallback--: xref:test.adoc#TestCompromisedProduct-archiveCallback-- +:xref-TestOracle-constructor-bytes32-address-: xref:test.adoc#TestOracle-constructor-bytes32-address- +:xref-TestOracle-request-uint256-bytes-: xref:test.adoc#TestOracle-request-uint256-bytes- +:xref-TestOracle-cancel-uint256-: xref:test.adoc#TestOracle-cancel-uint256- +:xref-TestOracle-respond-uint256-bool-: xref:test.adoc#TestOracle-respond-uint256-bool- +:xref-TestOracle-_oracleCalculation-uint256-: xref:test.adoc#TestOracle-_oracleCalculation-uint256- +:xref-TestProduct-constructor-bytes32-address-address-uint256-uint256-address-: xref:test.adoc#TestProduct-constructor-bytes32-address-address-uint256-uint256-address- +:xref-TestProduct-applyForPolicy-uint256-uint256-bytes-bytes-: xref:test.adoc#TestProduct-applyForPolicy-uint256-uint256-bytes-bytes- +:xref-TestProduct-applyForPolicy-address-payable-uint256-uint256-bytes-bytes-: xref:test.adoc#TestProduct-applyForPolicy-address-payable-uint256-uint256-bytes-bytes- +:xref-TestProduct-newAppliation-uint256-uint256-bytes-bytes-: xref:test.adoc#TestProduct-newAppliation-uint256-uint256-bytes-bytes- +:xref-TestProduct-revoke-bytes32-: xref:test.adoc#TestProduct-revoke-bytes32- +:xref-TestProduct-decline-bytes32-: xref:test.adoc#TestProduct-decline-bytes32- +:xref-TestProduct-underwrite-bytes32-: xref:test.adoc#TestProduct-underwrite-bytes32- +:xref-TestProduct-collectPremium-bytes32-: xref:test.adoc#TestProduct-collectPremium-bytes32- +:xref-TestProduct-collectPremium-bytes32-uint256-: xref:test.adoc#TestProduct-collectPremium-bytes32-uint256- +:xref-TestProduct-adjustPremiumSumInsured-bytes32-uint256-uint256-: xref:test.adoc#TestProduct-adjustPremiumSumInsured-bytes32-uint256-uint256- +:xref-TestProduct-expire-bytes32-: xref:test.adoc#TestProduct-expire-bytes32- +:xref-TestProduct-close-bytes32-: xref:test.adoc#TestProduct-close-bytes32- +:xref-TestProduct-submitClaim-bytes32-uint256-: xref:test.adoc#TestProduct-submitClaim-bytes32-uint256- +:xref-TestProduct-submitClaimNoOracle-bytes32-uint256-: xref:test.adoc#TestProduct-submitClaimNoOracle-bytes32-uint256- +:xref-TestProduct-submitClaimWithDeferredResponse-bytes32-uint256-: xref:test.adoc#TestProduct-submitClaimWithDeferredResponse-bytes32-uint256- +:xref-TestProduct-confirmClaim-bytes32-uint256-uint256-: xref:test.adoc#TestProduct-confirmClaim-bytes32-uint256-uint256- +:xref-TestProduct-declineClaim-bytes32-uint256-: xref:test.adoc#TestProduct-declineClaim-bytes32-uint256- +:xref-TestProduct-closeClaim-bytes32-uint256-: xref:test.adoc#TestProduct-closeClaim-bytes32-uint256- +:xref-TestProduct-createPayout-bytes32-uint256-uint256-: xref:test.adoc#TestProduct-createPayout-bytes32-uint256-uint256- +:xref-TestProduct-newPayout-bytes32-uint256-uint256-: xref:test.adoc#TestProduct-newPayout-bytes32-uint256-uint256- +:xref-TestProduct-processPayout-bytes32-uint256-: xref:test.adoc#TestProduct-processPayout-bytes32-uint256- +:xref-TestProduct-oracleCallback-uint256-bytes32-bytes-: xref:test.adoc#TestProduct-oracleCallback-uint256-bytes32-bytes- +:xref-TestProduct-getClaimId-bytes32-: xref:test.adoc#TestProduct-getClaimId-bytes32- +:xref-TestProduct-getPayoutId-bytes32-: xref:test.adoc#TestProduct-getPayoutId-bytes32- +:xref-TestProduct-applications--: xref:test.adoc#TestProduct-applications-- +:xref-TestProduct-policies--: xref:test.adoc#TestProduct-policies-- +:xref-TestProduct-claims--: xref:test.adoc#TestProduct-claims-- +:xref-TestProduct-LogTestProductFundingReceived-address-uint256-: xref:test.adoc#TestProduct-LogTestProductFundingReceived-address-uint256- +:xref-TestProduct-LogTestOracleCallbackReceived-uint256-bytes32-bytes-: xref:test.adoc#TestProduct-LogTestOracleCallbackReceived-uint256-bytes32-bytes- +:xref-TestRegistryCompromisedController-getContract-bytes32-: xref:test.adoc#TestRegistryCompromisedController-getContract-bytes32- +:xref-TestRegistryCompromisedController-upgradeToV2-address-address-: xref:test.adoc#TestRegistryCompromisedController-upgradeToV2-address-address- +:xref-TestRegistryControllerUpdated-setMessage-string-: xref:test.adoc#TestRegistryControllerUpdated-setMessage-string- +:xref-TestRegistryControllerUpdated-getMessage--: xref:test.adoc#TestRegistryControllerUpdated-getMessage-- +:xref-TestRegistryControllerUpdated-upgradeToV2-string-: xref:test.adoc#TestRegistryControllerUpdated-upgradeToV2-string- +:xref-RegistryController-initializeRegistry-bytes32-: xref:modules.adoc#RegistryController-initializeRegistry-bytes32- +:xref-RegistryController-ensureSender-address-bytes32-: xref:modules.adoc#RegistryController-ensureSender-address-bytes32- +:xref-RegistryController-getRelease--: xref:modules.adoc#RegistryController-getRelease-- +:xref-RegistryController-getContract-bytes32-: xref:modules.adoc#RegistryController-getContract-bytes32- +:xref-RegistryController-register-bytes32-address-: xref:modules.adoc#RegistryController-register-bytes32-address- +:xref-RegistryController-deregister-bytes32-: xref:modules.adoc#RegistryController-deregister-bytes32- +:xref-RegistryController-getContractInRelease-bytes32-bytes32-: xref:modules.adoc#RegistryController-getContractInRelease-bytes32-bytes32- +:xref-RegistryController-registerInRelease-bytes32-bytes32-address-: xref:modules.adoc#RegistryController-registerInRelease-bytes32-bytes32-address- +:xref-RegistryController-deregisterInRelease-bytes32-bytes32-: xref:modules.adoc#RegistryController-deregisterInRelease-bytes32-bytes32- +:xref-RegistryController-prepareRelease-bytes32-: xref:modules.adoc#RegistryController-prepareRelease-bytes32- +:xref-RegistryController-contracts--: xref:modules.adoc#RegistryController-contracts-- +:xref-RegistryController-contractName-uint256-: xref:modules.adoc#RegistryController-contractName-uint256- +:xref-RegistryController-_getContractInRelease-bytes32-bytes32-: xref:modules.adoc#RegistryController-_getContractInRelease-bytes32-bytes32- +:xref-RegistryController-_registerInRelease-bytes32-bool-bytes32-address-: xref:modules.adoc#RegistryController-_registerInRelease-bytes32-bool-bytes32-address- +:xref-RegistryController-_deregisterInRelease-bytes32-bytes32-: xref:modules.adoc#RegistryController-_deregisterInRelease-bytes32-bytes32- +:xref-CoreController-initialize-address-: xref:shared.adoc#CoreController-initialize-address- +:xref-CoreController-_getName--: xref:shared.adoc#CoreController-_getName-- +:xref-CoreController-_afterInitialize--: xref:shared.adoc#CoreController-_afterInitialize-- +:xref-CoreController-_getContractAddress-bytes32-: xref:shared.adoc#CoreController-_getContractAddress-bytes32- +:xref-TestRiskpool-constructor-bytes32-uint256-address-address-address-: xref:test.adoc#TestRiskpool-constructor-bytes32-uint256-address-address-address- +:xref-TestRiskpool-bundleMatchesApplication-struct-IBundle-Bundle-struct-IPolicy-Application-: xref:test.adoc#TestRiskpool-bundleMatchesApplication-struct-IBundle-Bundle-struct-IPolicy-Application- +:xref-TestTransferFrom-unifiedTransferFrom-contract-IERC20-address-address-uint256-: xref:test.adoc#TestTransferFrom-unifiedTransferFrom-contract-IERC20-address-address-uint256- +:xref-TestTransferFrom-LogTransferHelperInputValidation1Failed-bool-address-address-: xref:test.adoc#TestTransferFrom-LogTransferHelperInputValidation1Failed-bool-address-address- +:xref-TestTransferFrom-LogTransferHelperInputValidation2Failed-uint256-uint256-: xref:test.adoc#TestTransferFrom-LogTransferHelperInputValidation2Failed-uint256-uint256- +:xref-TestTransferFrom-LogTransferHelperCallFailed-bool-uint256-bytes-: xref:test.adoc#TestTransferFrom-LogTransferHelperCallFailed-bool-uint256-bytes- += Test + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/test + +== Contracts + +:NAME: pass:normal[xref:#TestCoin-NAME-string[`++NAME++`]] +:SYMBOL: pass:normal[xref:#TestCoin-SYMBOL-string[`++SYMBOL++`]] +:INITIAL_SUPPLY: pass:normal[xref:#TestCoin-INITIAL_SUPPLY-uint256[`++INITIAL_SUPPLY++`]] +:constructor: pass:normal[xref:#TestCoin-constructor--[`++constructor++`]] + +[.contract] +[[TestCoin]] +=== `++TestCoin++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/test/TestCoin.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/test/TestCoin.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-TestCoin-constructor--}[`++constructor()++`] + +[.contract-subindex-inherited] +.ERC20 +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-name--[`++name()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-symbol--[`++symbol()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-decimals--[`++decimals()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-totalSupply--[`++totalSupply()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-balanceOf-address-[`++balanceOf(account)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-transfer-address-uint256-[`++transfer(to, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-allowance-address-address-[`++allowance(owner, spender)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-approve-address-uint256-[`++approve(spender, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-transferFrom-address-address-uint256-[`++transferFrom(from, to, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-increaseAllowance-address-uint256-[`++increaseAllowance(spender, addedValue)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-decreaseAllowance-address-uint256-[`++decreaseAllowance(spender, subtractedValue)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_transfer-address-address-uint256-[`++_transfer(from, to, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_mint-address-uint256-[`++_mint(account, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_burn-address-uint256-[`++_burn(account, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_approve-address-address-uint256-[`++_approve(owner, spender, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_spendAllowance-address-address-uint256-[`++_spendAllowance(owner, spender, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_beforeTokenTransfer-address-address-uint256-[`++_beforeTokenTransfer(from, to, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_afterTokenTransfer-address-address-uint256-[`++_afterTokenTransfer(from, to, amount)++`] + +[.contract-subindex-inherited] +.IERC20Metadata + +[.contract-subindex-inherited] +.IERC20 + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.ERC20 + +[.contract-subindex-inherited] +.IERC20Metadata + +[.contract-subindex-inherited] +.IERC20 +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#IERC20-Transfer-address-address-uint256-[`++Transfer(from, to, value)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#IERC20-Approval-address-address-uint256-[`++Approval(owner, spender, value)++`] + +-- + +[.contract-item] +[[TestCoin-constructor--]] +==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# + +Constructor function that initializes the ERC20 token with a given name, symbol, and initial supply. + +:NAME: pass:normal[xref:#TestCoinAlternativeImplementation-NAME-string[`++NAME++`]] +:SYMBOL: pass:normal[xref:#TestCoinAlternativeImplementation-SYMBOL-string[`++SYMBOL++`]] +:INITIAL_SUPPLY: pass:normal[xref:#TestCoinAlternativeImplementation-INITIAL_SUPPLY-uint256[`++INITIAL_SUPPLY++`]] +:constructor: pass:normal[xref:#TestCoinAlternativeImplementation-constructor--[`++constructor++`]] +:transferFrom: pass:normal[xref:#TestCoinAlternativeImplementation-transferFrom-address-address-uint256-[`++transferFrom++`]] + +[.contract] +[[TestCoinAlternativeImplementation]] +=== `++TestCoinAlternativeImplementation++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/test/TestCoinAlternativeImplementation.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/test/TestCoinAlternativeImplementation.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-TestCoinAlternativeImplementation-constructor--}[`++constructor()++`] +* {xref-TestCoinAlternativeImplementation-transferFrom-address-address-uint256-}[`++transferFrom(_from, _to, _value)++`] + +[.contract-subindex-inherited] +.ERC20 +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-name--[`++name()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-symbol--[`++symbol()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-decimals--[`++decimals()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-totalSupply--[`++totalSupply()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-balanceOf-address-[`++balanceOf(account)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-transfer-address-uint256-[`++transfer(to, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-allowance-address-address-[`++allowance(owner, spender)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-approve-address-uint256-[`++approve(spender, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-increaseAllowance-address-uint256-[`++increaseAllowance(spender, addedValue)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-decreaseAllowance-address-uint256-[`++decreaseAllowance(spender, subtractedValue)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_transfer-address-address-uint256-[`++_transfer(from, to, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_mint-address-uint256-[`++_mint(account, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_burn-address-uint256-[`++_burn(account, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_approve-address-address-uint256-[`++_approve(owner, spender, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_spendAllowance-address-address-uint256-[`++_spendAllowance(owner, spender, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_beforeTokenTransfer-address-address-uint256-[`++_beforeTokenTransfer(from, to, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_afterTokenTransfer-address-address-uint256-[`++_afterTokenTransfer(from, to, amount)++`] + +[.contract-subindex-inherited] +.IERC20Metadata + +[.contract-subindex-inherited] +.IERC20 + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.ERC20 + +[.contract-subindex-inherited] +.IERC20Metadata + +[.contract-subindex-inherited] +.IERC20 +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#IERC20-Transfer-address-address-uint256-[`++Transfer(from, to, value)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#IERC20-Approval-address-address-uint256-[`++Approval(owner, spender, value)++`] + +-- + +[.contract-item] +[[TestCoinAlternativeImplementation-constructor--]] +==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# + +Constructor function that creates a new ERC20 token with the given name and symbol, and mints the initial supply to the sender. + +[.contract-item] +[[TestCoinAlternativeImplementation-transferFrom-address-address-uint256-]] +==== `[.contract-item-name]#++transferFrom++#++(address _from, address _to, uint256 _value) → bool++` [.item-kind]#public# + +Transfer tokens from one address to another. + +:FAKE_STATE: pass:normal[xref:#TestCompromisedProduct-FAKE_STATE-enum-IComponent-ComponentState[`++FAKE_STATE++`]] +:POLICY_FLOW: pass:normal[xref:#TestCompromisedProduct-POLICY_FLOW-bytes32[`++POLICY_FLOW++`]] +:onlyPolicyHolder: pass:normal[xref:#TestCompromisedProduct-onlyPolicyHolder-bytes32-[`++onlyPolicyHolder++`]] +:constructor: pass:normal[xref:#TestCompromisedProduct-constructor-bytes32-address-uint256-uint256-address-[`++constructor++`]] +:applyForPolicy: pass:normal[xref:#TestCompromisedProduct-applyForPolicy-uint256-uint256-bytes-bytes-[`++applyForPolicy++`]] +:collectPremium: pass:normal[xref:#TestCompromisedProduct-collectPremium-bytes32-[`++collectPremium++`]] +:submitClaim: pass:normal[xref:#TestCompromisedProduct-submitClaim-bytes32-uint256-[`++submitClaim++`]] +:getToken: pass:normal[xref:#TestCompromisedProduct-getToken--[`++getToken++`]] +:getPolicyFlow: pass:normal[xref:#TestCompromisedProduct-getPolicyFlow--[`++getPolicyFlow++`]] +:getRiskpoolId: pass:normal[xref:#TestCompromisedProduct-getRiskpoolId--[`++getRiskpoolId++`]] +:getApplicationDataStructure: pass:normal[xref:#TestCompromisedProduct-getApplicationDataStructure--[`++getApplicationDataStructure++`]] +:getClaimDataStructure: pass:normal[xref:#TestCompromisedProduct-getClaimDataStructure--[`++getClaimDataStructure++`]] +:getPayoutDataStructure: pass:normal[xref:#TestCompromisedProduct-getPayoutDataStructure--[`++getPayoutDataStructure++`]] +:riskPoolCapacityCallback: pass:normal[xref:#TestCompromisedProduct-riskPoolCapacityCallback-uint256-[`++riskPoolCapacityCallback++`]] +:setId: pass:normal[xref:#TestCompromisedProduct-setId-uint256-[`++setId++`]] +:getName: pass:normal[xref:#TestCompromisedProduct-getName--[`++getName++`]] +:getId: pass:normal[xref:#TestCompromisedProduct-getId--[`++getId++`]] +:getType: pass:normal[xref:#TestCompromisedProduct-getType--[`++getType++`]] +:getState: pass:normal[xref:#TestCompromisedProduct-getState--[`++getState++`]] +:getOwner: pass:normal[xref:#TestCompromisedProduct-getOwner--[`++getOwner++`]] +:getRegistry: pass:normal[xref:#TestCompromisedProduct-getRegistry--[`++getRegistry++`]] +:isProduct: pass:normal[xref:#TestCompromisedProduct-isProduct--[`++isProduct++`]] +:isOracle: pass:normal[xref:#TestCompromisedProduct-isOracle--[`++isOracle++`]] +:isRiskpool: pass:normal[xref:#TestCompromisedProduct-isRiskpool--[`++isRiskpool++`]] +:proposalCallback: pass:normal[xref:#TestCompromisedProduct-proposalCallback--[`++proposalCallback++`]] +:approvalCallback: pass:normal[xref:#TestCompromisedProduct-approvalCallback--[`++approvalCallback++`]] +:declineCallback: pass:normal[xref:#TestCompromisedProduct-declineCallback--[`++declineCallback++`]] +:suspendCallback: pass:normal[xref:#TestCompromisedProduct-suspendCallback--[`++suspendCallback++`]] +:resumeCallback: pass:normal[xref:#TestCompromisedProduct-resumeCallback--[`++resumeCallback++`]] +:pauseCallback: pass:normal[xref:#TestCompromisedProduct-pauseCallback--[`++pauseCallback++`]] +:unpauseCallback: pass:normal[xref:#TestCompromisedProduct-unpauseCallback--[`++unpauseCallback++`]] +:archiveCallback: pass:normal[xref:#TestCompromisedProduct-archiveCallback--[`++archiveCallback++`]] + +[.contract] +[[TestCompromisedProduct]] +=== `++TestCompromisedProduct++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/test/TestCompromisedProduct.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/test/TestCompromisedProduct.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-TestCompromisedProduct-onlyPolicyHolder-bytes32-}[`++onlyPolicyHolder(policyId)++`] +-- + +[.contract-index] +.Functions +-- +* {xref-TestCompromisedProduct-constructor-bytes32-address-uint256-uint256-address-}[`++constructor(fakeProductName, tokenAddress, fakeComponentId, fakeRiskpoolId, registryAddress)++`] +* {xref-TestCompromisedProduct-applyForPolicy-uint256-uint256-bytes-bytes-}[`++applyForPolicy(premium, sumInsured, metaData, applicationData)++`] +* {xref-TestCompromisedProduct-collectPremium-bytes32-}[`++collectPremium(policyId)++`] +* {xref-TestCompromisedProduct-submitClaim-bytes32-uint256-}[`++submitClaim(policyId, claimAmount)++`] +* {xref-TestCompromisedProduct-getToken--}[`++getToken()++`] +* {xref-TestCompromisedProduct-getPolicyFlow--}[`++getPolicyFlow()++`] +* {xref-TestCompromisedProduct-getRiskpoolId--}[`++getRiskpoolId()++`] +* {xref-TestCompromisedProduct-getApplicationDataStructure--}[`++getApplicationDataStructure()++`] +* {xref-TestCompromisedProduct-getClaimDataStructure--}[`++getClaimDataStructure()++`] +* {xref-TestCompromisedProduct-getPayoutDataStructure--}[`++getPayoutDataStructure()++`] +* {xref-TestCompromisedProduct-riskPoolCapacityCallback-uint256-}[`++riskPoolCapacityCallback(capacity)++`] +* {xref-TestCompromisedProduct-setId-uint256-}[`++setId(id)++`] +* {xref-TestCompromisedProduct-getName--}[`++getName()++`] +* {xref-TestCompromisedProduct-getId--}[`++getId()++`] +* {xref-TestCompromisedProduct-getType--}[`++getType()++`] +* {xref-TestCompromisedProduct-getState--}[`++getState()++`] +* {xref-TestCompromisedProduct-getOwner--}[`++getOwner()++`] +* {xref-TestCompromisedProduct-getRegistry--}[`++getRegistry()++`] +* {xref-TestCompromisedProduct-isProduct--}[`++isProduct()++`] +* {xref-TestCompromisedProduct-isOracle--}[`++isOracle()++`] +* {xref-TestCompromisedProduct-isRiskpool--}[`++isRiskpool()++`] +* {xref-TestCompromisedProduct-proposalCallback--}[`++proposalCallback()++`] +* {xref-TestCompromisedProduct-approvalCallback--}[`++approvalCallback()++`] +* {xref-TestCompromisedProduct-declineCallback--}[`++declineCallback()++`] +* {xref-TestCompromisedProduct-suspendCallback--}[`++suspendCallback()++`] +* {xref-TestCompromisedProduct-resumeCallback--}[`++resumeCallback()++`] +* {xref-TestCompromisedProduct-pauseCallback--}[`++pauseCallback()++`] +* {xref-TestCompromisedProduct-unpauseCallback--}[`++unpauseCallback()++`] +* {xref-TestCompromisedProduct-archiveCallback--}[`++archiveCallback()++`] + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-owner--[`++owner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_checkOwner--[`++_checkOwner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-renounceOwnership--[`++renounceOwnership()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-transferOwnership-address-[`++transferOwnership(newOwner)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_transferOwnership-address-[`++_transferOwnership(newOwner)++`] + +[.contract-subindex-inherited] +.IProduct + +[.contract-subindex-inherited] +.IComponent + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-OwnershipTransferred-address-address-[`++OwnershipTransferred(previousOwner, newOwner)++`] + +[.contract-subindex-inherited] +.IProduct +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IProduct.sol[`++LogProductCreated(productAddress)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IProduct.sol[`++LogProductProposed(componentId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IProduct.sol[`++LogProductApproved(componentId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IProduct.sol[`++LogProductDeclined(componentId)++`] + +[.contract-subindex-inherited] +.IComponent +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IComponent.sol[`++LogComponentCreated(componentName, componentType, componentAddress, registryAddress)++`] + +-- + +[.contract-item] +[[TestCompromisedProduct-onlyPolicyHolder-bytes32-]] +==== `[.contract-item-name]#++onlyPolicyHolder++#++(bytes32 policyId)++` [.item-kind]#modifier# + +[.contract-item] +[[TestCompromisedProduct-constructor-bytes32-address-uint256-uint256-address-]] +==== `[.contract-item-name]#++constructor++#++(bytes32 fakeProductName, address tokenAddress, uint256 fakeComponentId, uint256 fakeRiskpoolId, address registryAddress)++` [.item-kind]#public# + +Constructor function to initialize the component with the given parameters. + +[.contract-item] +[[TestCompromisedProduct-applyForPolicy-uint256-uint256-bytes-bytes-]] +==== `[.contract-item-name]#++applyForPolicy++#++(uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# + +Allows a policy holder to apply for a new policy by submitting an application with the specified premium, sum insured, metaData, and applicationData. + +[.contract-item] +[[TestCompromisedProduct-collectPremium-bytes32-]] +==== `[.contract-item-name]#++collectPremium++#++(bytes32 policyId)++` [.item-kind]#external# + +Collects the premium for a given policy. + +[.contract-item] +[[TestCompromisedProduct-submitClaim-bytes32-uint256-]] +==== `[.contract-item-name]#++submitClaim++#++(bytes32 policyId, uint256 claimAmount)++` [.item-kind]#external# + +Allows a policy holder to submit a claim for the specified policy. + +[.contract-item] +[[TestCompromisedProduct-getToken--]] +==== `[.contract-item-name]#++getToken++#++() → address token++` [.item-kind]#external# + +Returns the address of the token used by this contract. + +[.contract-item] +[[TestCompromisedProduct-getPolicyFlow--]] +==== `[.contract-item-name]#++getPolicyFlow++#++() → address policyFlow++` [.item-kind]#external# + +Returns the address of the policy flow contract. + +[.contract-item] +[[TestCompromisedProduct-getRiskpoolId--]] +==== `[.contract-item-name]#++getRiskpoolId++#++() → uint256 riskpoolId++` [.item-kind]#external# + +Returns the ID of the risk pool. + +[.contract-item] +[[TestCompromisedProduct-getApplicationDataStructure--]] +==== `[.contract-item-name]#++getApplicationDataStructure++#++() → string dataStructure++` [.item-kind]#external# + +Returns the data structure of the application. + +[.contract-item] +[[TestCompromisedProduct-getClaimDataStructure--]] +==== `[.contract-item-name]#++getClaimDataStructure++#++() → string dataStructure++` [.item-kind]#external# + +Returns the data structure of the claim data. + +[.contract-item] +[[TestCompromisedProduct-getPayoutDataStructure--]] +==== `[.contract-item-name]#++getPayoutDataStructure++#++() → string dataStructure++` [.item-kind]#external# + +Returns the data structure of the payout information. + +[.contract-item] +[[TestCompromisedProduct-riskPoolCapacityCallback-uint256-]] +==== `[.contract-item-name]#++riskPoolCapacityCallback++#++(uint256 capacity)++` [.item-kind]#external# + +Callback function to update the risk pool's capacity. + +[.contract-item] +[[TestCompromisedProduct-setId-uint256-]] +==== `[.contract-item-name]#++setId++#++(uint256 id)++` [.item-kind]#external# + +Sets the ID of the contract. + +[.contract-item] +[[TestCompromisedProduct-getName--]] +==== `[.contract-item-name]#++getName++#++() → bytes32++` [.item-kind]#external# + +Returns the name of the component. + +[.contract-item] +[[TestCompromisedProduct-getId--]] +==== `[.contract-item-name]#++getId++#++() → uint256++` [.item-kind]#external# + +Returns the ID of the component. + +[.contract-item] +[[TestCompromisedProduct-getType--]] +==== `[.contract-item-name]#++getType++#++() → enum IComponent.ComponentType++` [.item-kind]#external# + +Returns the ComponentType of the product. + +[.contract-item] +[[TestCompromisedProduct-getState--]] +==== `[.contract-item-name]#++getState++#++() → enum IComponent.ComponentState++` [.item-kind]#external# + +Returns the current state of the component. + +[.contract-item] +[[TestCompromisedProduct-getOwner--]] +==== `[.contract-item-name]#++getOwner++#++() → address++` [.item-kind]#external# + +Returns the address of the contract owner. + +[.contract-item] +[[TestCompromisedProduct-getRegistry--]] +==== `[.contract-item-name]#++getRegistry++#++() → contract IRegistry++` [.item-kind]#external# + +Returns the current registry contract instance. + +[.contract-item] +[[TestCompromisedProduct-isProduct--]] +==== `[.contract-item-name]#++isProduct++#++() → bool++` [.item-kind]#public# + +Checks if the contract is a product. + +[.contract-item] +[[TestCompromisedProduct-isOracle--]] +==== `[.contract-item-name]#++isOracle++#++() → bool++` [.item-kind]#public# + +Returns a boolean value indicating whether the contract is an oracle. + +[.contract-item] +[[TestCompromisedProduct-isRiskpool--]] +==== `[.contract-item-name]#++isRiskpool++#++() → bool++` [.item-kind]#public# + +Check if the contract is a risk pool. + +[.contract-item] +[[TestCompromisedProduct-proposalCallback--]] +==== `[.contract-item-name]#++proposalCallback++#++()++` [.item-kind]#external# + +This function is a callback function for proposals. + +Returns: None + +[.contract-item] +[[TestCompromisedProduct-approvalCallback--]] +==== `[.contract-item-name]#++approvalCallback++#++()++` [.item-kind]#external# + +This function is a callback function that is called after an approval has been made. + +[.contract-item] +[[TestCompromisedProduct-declineCallback--]] +==== `[.contract-item-name]#++declineCallback++#++()++` [.item-kind]#external# + +This function is called when a user declines a transaction in the dApp. + +[.contract-item] +[[TestCompromisedProduct-suspendCallback--]] +==== `[.contract-item-name]#++suspendCallback++#++()++` [.item-kind]#external# + +Suspends the callback function. + +[.contract-item] +[[TestCompromisedProduct-resumeCallback--]] +==== `[.contract-item-name]#++resumeCallback++#++()++` [.item-kind]#external# + +This function is a callback function that is triggered when a paused contract is resumed. + +[.contract-item] +[[TestCompromisedProduct-pauseCallback--]] +==== `[.contract-item-name]#++pauseCallback++#++()++` [.item-kind]#external# + +Callback function that is called when the contract is paused. This function does not take any parameters. + +[.contract-item] +[[TestCompromisedProduct-unpauseCallback--]] +==== `[.contract-item-name]#++unpauseCallback++#++()++` [.item-kind]#external# + +This function is called by the owner of the contract to unpause the contract after it has been paused. + +[.contract-item] +[[TestCompromisedProduct-archiveCallback--]] +==== `[.contract-item-name]#++archiveCallback++#++()++` [.item-kind]#external# + +This function is a callback function that is executed when a contract is archived. + +:constructor: pass:normal[xref:#TestOracle-constructor-bytes32-address-[`++constructor++`]] +:request: pass:normal[xref:#TestOracle-request-uint256-bytes-[`++request++`]] +:cancel: pass:normal[xref:#TestOracle-cancel-uint256-[`++cancel++`]] +:respond: pass:normal[xref:#TestOracle-respond-uint256-bool-[`++respond++`]] +:_oracleCalculation: pass:normal[xref:#TestOracle-_oracleCalculation-uint256-[`++_oracleCalculation++`]] + +[.contract] +[[TestOracle]] +=== `++TestOracle++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/test/TestOracle.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/test/TestOracle.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-TestOracle-constructor-bytes32-address-}[`++constructor(oracleName, registry)++`] +* {xref-TestOracle-request-uint256-bytes-}[`++request(requestId, input)++`] +* {xref-TestOracle-cancel-uint256-}[`++cancel(requestId)++`] +* {xref-TestOracle-respond-uint256-bool-}[`++respond(requestId, isLossEvent)++`] +* {xref-TestOracle-_oracleCalculation-uint256-}[`++_oracleCalculation(counter)++`] + +[.contract-subindex-inherited] +.Oracle +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Oracle.sol[`++_afterApprove()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Oracle.sol[`++_afterPropose()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Oracle.sol[`++_afterDecline()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Oracle.sol[`++_respond(requestId, data)++`] + +[.contract-subindex-inherited] +.Component +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++setId(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getName()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getId()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getType()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getState()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getOwner()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++isProduct()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++isOracle()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++isRiskpool()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getRegistry()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++proposalCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++approvalCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++declineCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++suspendCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++resumeCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++pauseCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++unpauseCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++archiveCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterSuspend()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterResume()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterPause()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterUnpause()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterArchive()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getAccess()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getInstanceService()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getComponentOwnerService()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-owner--[`++owner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_checkOwner--[`++_checkOwner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-renounceOwnership--[`++renounceOwnership()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-transferOwnership-address-[`++transferOwnership(newOwner)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_transferOwnership-address-[`++_transferOwnership(newOwner)++`] + +[.contract-subindex-inherited] +.IComponentEvents + +[.contract-subindex-inherited] +.IOracle + +[.contract-subindex-inherited] +.IComponent + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.Oracle + +[.contract-subindex-inherited] +.Component + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-OwnershipTransferred-address-address-[`++OwnershipTransferred(previousOwner, newOwner)++`] + +[.contract-subindex-inherited] +.IComponentEvents +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentProposed(componentName, componentType, componentAddress, id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentApproved(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentDeclined(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentSuspended(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentResumed(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentPaused(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentUnpaused(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentArchived(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentStateChanged(id, stateOld, stateNew)++`] + +[.contract-subindex-inherited] +.IOracle +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IOracle.sol[`++LogOracleCreated(oracleAddress)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IOracle.sol[`++LogOracleProposed(componentId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IOracle.sol[`++LogOracleApproved(componentId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IOracle.sol[`++LogOracleDeclined(componentId)++`] + +[.contract-subindex-inherited] +.IComponent +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IComponent.sol[`++LogComponentCreated(componentName, componentType, componentAddress, registryAddress)++`] + +-- + +[.contract-item] +[[TestOracle-constructor-bytes32-address-]] +==== `[.contract-item-name]#++constructor++#++(bytes32 oracleName, address registry)++` [.item-kind]#public# + +Constructor function for creating an Oracle contract. + +[.contract-item] +[[TestOracle-request-uint256-bytes-]] +==== `[.contract-item-name]#++request++#++(uint256 requestId, bytes input)++` [.item-kind]#external# + +Requests data from the oracle contract. + +[.contract-item] +[[TestOracle-cancel-uint256-]] +==== `[.contract-item-name]#++cancel++#++(uint256 requestId)++` [.item-kind]#external# + +Cancels a Chainlink request. + +[.contract-item] +[[TestOracle-respond-uint256-bool-]] +==== `[.contract-item-name]#++respond++#++(uint256 requestId, bool isLossEvent)++` [.item-kind]#public# + +Responds to an oracle request with a boolean value indicating whether a loss event occurred. + +[.contract-item] +[[TestOracle-_oracleCalculation-uint256-]] +==== `[.contract-item-name]#++_oracleCalculation++#++(uint256 counter) → bool isLossEvent++` [.item-kind]#internal# + +Performs an oracle calculation to determine if a loss event occurred. + +:POLICY_FLOW: pass:normal[xref:#TestProduct-POLICY_FLOW-bytes32[`++POLICY_FLOW++`]] +:ORACLE_CALLBACK_METHOD_NAME: pass:normal[xref:#TestProduct-ORACLE_CALLBACK_METHOD_NAME-string[`++ORACLE_CALLBACK_METHOD_NAME++`]] +:LogTestProductFundingReceived: pass:normal[xref:#TestProduct-LogTestProductFundingReceived-address-uint256-[`++LogTestProductFundingReceived++`]] +:LogTestOracleCallbackReceived: pass:normal[xref:#TestProduct-LogTestOracleCallbackReceived-uint256-bytes32-bytes-[`++LogTestOracleCallbackReceived++`]] +:constructor: pass:normal[xref:#TestProduct-constructor-bytes32-address-address-uint256-uint256-address-[`++constructor++`]] +:applyForPolicy: pass:normal[xref:#TestProduct-applyForPolicy-uint256-uint256-bytes-bytes-[`++applyForPolicy++`]] +:applyForPolicy: pass:normal[xref:#TestProduct-applyForPolicy-address-payable-uint256-uint256-bytes-bytes-[`++applyForPolicy++`]] +:newAppliation: pass:normal[xref:#TestProduct-newAppliation-uint256-uint256-bytes-bytes-[`++newAppliation++`]] +:revoke: pass:normal[xref:#TestProduct-revoke-bytes32-[`++revoke++`]] +:decline: pass:normal[xref:#TestProduct-decline-bytes32-[`++decline++`]] +:underwrite: pass:normal[xref:#TestProduct-underwrite-bytes32-[`++underwrite++`]] +:collectPremium: pass:normal[xref:#TestProduct-collectPremium-bytes32-[`++collectPremium++`]] +:collectPremium: pass:normal[xref:#TestProduct-collectPremium-bytes32-uint256-[`++collectPremium++`]] +:adjustPremiumSumInsured: pass:normal[xref:#TestProduct-adjustPremiumSumInsured-bytes32-uint256-uint256-[`++adjustPremiumSumInsured++`]] +:expire: pass:normal[xref:#TestProduct-expire-bytes32-[`++expire++`]] +:close: pass:normal[xref:#TestProduct-close-bytes32-[`++close++`]] +:submitClaim: pass:normal[xref:#TestProduct-submitClaim-bytes32-uint256-[`++submitClaim++`]] +:submitClaimNoOracle: pass:normal[xref:#TestProduct-submitClaimNoOracle-bytes32-uint256-[`++submitClaimNoOracle++`]] +:submitClaimWithDeferredResponse: pass:normal[xref:#TestProduct-submitClaimWithDeferredResponse-bytes32-uint256-[`++submitClaimWithDeferredResponse++`]] +:confirmClaim: pass:normal[xref:#TestProduct-confirmClaim-bytes32-uint256-uint256-[`++confirmClaim++`]] +:declineClaim: pass:normal[xref:#TestProduct-declineClaim-bytes32-uint256-[`++declineClaim++`]] +:closeClaim: pass:normal[xref:#TestProduct-closeClaim-bytes32-uint256-[`++closeClaim++`]] +:createPayout: pass:normal[xref:#TestProduct-createPayout-bytes32-uint256-uint256-[`++createPayout++`]] +:newPayout: pass:normal[xref:#TestProduct-newPayout-bytes32-uint256-uint256-[`++newPayout++`]] +:processPayout: pass:normal[xref:#TestProduct-processPayout-bytes32-uint256-[`++processPayout++`]] +:oracleCallback: pass:normal[xref:#TestProduct-oracleCallback-uint256-bytes32-bytes-[`++oracleCallback++`]] +:getClaimId: pass:normal[xref:#TestProduct-getClaimId-bytes32-[`++getClaimId++`]] +:getPayoutId: pass:normal[xref:#TestProduct-getPayoutId-bytes32-[`++getPayoutId++`]] +:applications: pass:normal[xref:#TestProduct-applications--[`++applications++`]] +:policies: pass:normal[xref:#TestProduct-policies--[`++policies++`]] +:claims: pass:normal[xref:#TestProduct-claims--[`++claims++`]] + +[.contract] +[[TestProduct]] +=== `++TestProduct++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/test/TestProduct.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/test/TestProduct.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-TestProduct-constructor-bytes32-address-address-uint256-uint256-address-}[`++constructor(productName, tokenAddress, capitalOwner, oracleId, riskpoolId, registryAddress)++`] +* {xref-TestProduct-applyForPolicy-uint256-uint256-bytes-bytes-}[`++applyForPolicy(premium, sumInsured, metaData, applicationData)++`] +* {xref-TestProduct-applyForPolicy-address-payable-uint256-uint256-bytes-bytes-}[`++applyForPolicy(policyHolder, premium, sumInsured, metaData, applicationData)++`] +* {xref-TestProduct-newAppliation-uint256-uint256-bytes-bytes-}[`++newAppliation(premium, sumInsured, metaData, applicationData)++`] +* {xref-TestProduct-revoke-bytes32-}[`++revoke(processId)++`] +* {xref-TestProduct-decline-bytes32-}[`++decline(processId)++`] +* {xref-TestProduct-underwrite-bytes32-}[`++underwrite(processId)++`] +* {xref-TestProduct-collectPremium-bytes32-}[`++collectPremium(policyId)++`] +* {xref-TestProduct-collectPremium-bytes32-uint256-}[`++collectPremium(policyId, amount)++`] +* {xref-TestProduct-adjustPremiumSumInsured-bytes32-uint256-uint256-}[`++adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount)++`] +* {xref-TestProduct-expire-bytes32-}[`++expire(policyId)++`] +* {xref-TestProduct-close-bytes32-}[`++close(policyId)++`] +* {xref-TestProduct-submitClaim-bytes32-uint256-}[`++submitClaim(policyId, claimAmount)++`] +* {xref-TestProduct-submitClaimNoOracle-bytes32-uint256-}[`++submitClaimNoOracle(policyId, claimAmount)++`] +* {xref-TestProduct-submitClaimWithDeferredResponse-bytes32-uint256-}[`++submitClaimWithDeferredResponse(policyId, claimAmount)++`] +* {xref-TestProduct-confirmClaim-bytes32-uint256-uint256-}[`++confirmClaim(policyId, claimId, confirmedAmount)++`] +* {xref-TestProduct-declineClaim-bytes32-uint256-}[`++declineClaim(policyId, claimId)++`] +* {xref-TestProduct-closeClaim-bytes32-uint256-}[`++closeClaim(policyId, claimId)++`] +* {xref-TestProduct-createPayout-bytes32-uint256-uint256-}[`++createPayout(policyId, claimId, payoutAmount)++`] +* {xref-TestProduct-newPayout-bytes32-uint256-uint256-}[`++newPayout(policyId, claimId, payoutAmount)++`] +* {xref-TestProduct-processPayout-bytes32-uint256-}[`++processPayout(policyId, payoutId)++`] +* {xref-TestProduct-oracleCallback-uint256-bytes32-bytes-}[`++oracleCallback(requestId, policyId, responseData)++`] +* {xref-TestProduct-getClaimId-bytes32-}[`++getClaimId(policyId)++`] +* {xref-TestProduct-getPayoutId-bytes32-}[`++getPayoutId(policyId)++`] +* {xref-TestProduct-applications--}[`++applications()++`] +* {xref-TestProduct-policies--}[`++policies()++`] +* {xref-TestProduct-claims--}[`++claims()++`] + +[.contract-subindex-inherited] +.Product +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++getToken()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++getPolicyFlow()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++getRiskpoolId()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_afterApprove()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_afterPropose()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_afterDecline()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_newApplication(applicationOwner, premiumAmount, sumInsuredAmount, metaData, applicationData)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_collectPremium(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_collectPremium(processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_revoke(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_underwrite(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_decline(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_expire(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_close(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_newClaim(processId, claimAmount, data)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_confirmClaim(processId, claimId, payoutAmount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_declineClaim(processId, claimId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_closeClaim(processId, claimId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_newPayout(processId, claimId, amount, data)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_processPayout(processId, payoutId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_request(processId, input, callbackMethodName, responsibleOracleId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_cancelRequest(requestId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_getMetadata(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_getApplication(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_getPolicy(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_getClaim(processId, claimId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++_getPayout(processId, payoutId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++getApplicationDataStructure()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++getClaimDataStructure()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++getPayoutDataStructure()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Product.sol[`++riskPoolCapacityCallback(capacity)++`] + +[.contract-subindex-inherited] +.Component +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++setId(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getName()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getId()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getType()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getState()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getOwner()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++isProduct()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++isOracle()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++isRiskpool()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getRegistry()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++proposalCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++approvalCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++declineCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++suspendCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++resumeCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++pauseCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++unpauseCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++archiveCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterSuspend()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterResume()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterPause()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterUnpause()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterArchive()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getAccess()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getInstanceService()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getComponentOwnerService()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-owner--[`++owner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_checkOwner--[`++_checkOwner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-renounceOwnership--[`++renounceOwnership()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-transferOwnership-address-[`++transferOwnership(newOwner)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_transferOwnership-address-[`++_transferOwnership(newOwner)++`] + +[.contract-subindex-inherited] +.IComponentEvents + +[.contract-subindex-inherited] +.IProduct + +[.contract-subindex-inherited] +.IComponent + +-- + +[.contract-index] +.Events +-- +* {xref-TestProduct-LogTestProductFundingReceived-address-uint256-}[`++LogTestProductFundingReceived(sender, amount)++`] +* {xref-TestProduct-LogTestOracleCallbackReceived-uint256-bytes32-bytes-}[`++LogTestOracleCallbackReceived(requestId, policyId, response)++`] + +[.contract-subindex-inherited] +.Product + +[.contract-subindex-inherited] +.Component + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-OwnershipTransferred-address-address-[`++OwnershipTransferred(previousOwner, newOwner)++`] + +[.contract-subindex-inherited] +.IComponentEvents +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentProposed(componentName, componentType, componentAddress, id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentApproved(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentDeclined(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentSuspended(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentResumed(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentPaused(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentUnpaused(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentArchived(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentStateChanged(id, stateOld, stateNew)++`] + +[.contract-subindex-inherited] +.IProduct +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IProduct.sol[`++LogProductCreated(productAddress)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IProduct.sol[`++LogProductProposed(componentId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IProduct.sol[`++LogProductApproved(componentId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IProduct.sol[`++LogProductDeclined(componentId)++`] + +[.contract-subindex-inherited] +.IComponent +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IComponent.sol[`++LogComponentCreated(componentName, componentType, componentAddress, registryAddress)++`] + +-- + +[.contract-item] +[[TestProduct-constructor-bytes32-address-address-uint256-uint256-address-]] +==== `[.contract-item-name]#++constructor++#++(bytes32 productName, address tokenAddress, address capitalOwner, uint256 oracleId, uint256 riskpoolId, address registryAddress)++` [.item-kind]#public# + +Constructor function for creating a new instance of the Product contract. + +[.contract-item] +[[TestProduct-applyForPolicy-uint256-uint256-bytes-bytes-]] +==== `[.contract-item-name]#++applyForPolicy++#++(uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# + +Allows a policy holder to apply for a new insurance policy by submitting an application with the specified premium, sum insured, metadata and application data. + +[.contract-item] +[[TestProduct-applyForPolicy-address-payable-uint256-uint256-bytes-bytes-]] +==== `[.contract-item-name]#++applyForPolicy++#++(address payable policyHolder, uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# + +Creates a new insurance application and underwrites it if possible. + +[.contract-item] +[[TestProduct-newAppliation-uint256-uint256-bytes-bytes-]] +==== `[.contract-item-name]#++newAppliation++#++(uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# + +Creates a new insurance application. + +[.contract-item] +[[TestProduct-revoke-bytes32-]] +==== `[.contract-item-name]#++revoke++#++(bytes32 processId)++` [.item-kind]#external# + +Revokes a process identified by its processId. Only the policy holder can revoke a process. + +[.contract-item] +[[TestProduct-decline-bytes32-]] +==== `[.contract-item-name]#++decline++#++(bytes32 processId)++` [.item-kind]#external# + +Declines a specific process by its ID. + +[.contract-item] +[[TestProduct-underwrite-bytes32-]] +==== `[.contract-item-name]#++underwrite++#++(bytes32 processId)++` [.item-kind]#external# + +Underwrites a policy for a given process ID. + +[.contract-item] +[[TestProduct-collectPremium-bytes32-]] +==== `[.contract-item-name]#++collectPremium++#++(bytes32 policyId) → bool success, uint256 fee, uint256 netPremium++` [.item-kind]#external# + +Collects the premium for a specific policy. + +[.contract-item] +[[TestProduct-collectPremium-bytes32-uint256-]] +==== `[.contract-item-name]#++collectPremium++#++(bytes32 policyId, uint256 amount) → bool success, uint256 fee, uint256 netPremium++` [.item-kind]#external# + +Collects the premium for a specific policy. + +[.contract-item] +[[TestProduct-adjustPremiumSumInsured-bytes32-uint256-uint256-]] +==== `[.contract-item-name]#++adjustPremiumSumInsured++#++(bytes32 processId, uint256 expectedPremiumAmount, uint256 sumInsuredAmount)++` [.item-kind]#external# + +Adjusts the premium and sum insured amounts for a given process ID. + +[.contract-item] +[[TestProduct-expire-bytes32-]] +==== `[.contract-item-name]#++expire++#++(bytes32 policyId)++` [.item-kind]#external# + +Expire a policy by its ID. + +[.contract-item] +[[TestProduct-close-bytes32-]] +==== `[.contract-item-name]#++close++#++(bytes32 policyId)++` [.item-kind]#external# + +Closes a policy with the given ID. + +[.contract-item] +[[TestProduct-submitClaim-bytes32-uint256-]] +==== `[.contract-item-name]#++submitClaim++#++(bytes32 policyId, uint256 claimAmount) → uint256 claimId++` [.item-kind]#external# + +Allows a policy holder to submit a claim for a specific policy. + +[.contract-item] +[[TestProduct-submitClaimNoOracle-bytes32-uint256-]] +==== `[.contract-item-name]#++submitClaimNoOracle++#++(bytes32 policyId, uint256 claimAmount) → uint256 claimId++` [.item-kind]#external# + +Allows a policy holder to submit a claim without the need for an oracle. + +[.contract-item] +[[TestProduct-submitClaimWithDeferredResponse-bytes32-uint256-]] +==== `[.contract-item-name]#++submitClaimWithDeferredResponse++#++(bytes32 policyId, uint256 claimAmount) → uint256 claimId, uint256 requestId++` [.item-kind]#external# + +Submits a claim for a specific policy with a deferred response from the oracle. +Increases the claims counter and creates a new claim application. +Then, requests a response from the oracle via an external call with encoded query data. + +[.contract-item] +[[TestProduct-confirmClaim-bytes32-uint256-uint256-]] +==== `[.contract-item-name]#++confirmClaim++#++(bytes32 policyId, uint256 claimId, uint256 confirmedAmount)++` [.item-kind]#external# + +Confirms the amount to be paid out for a specific claim. + +[.contract-item] +[[TestProduct-declineClaim-bytes32-uint256-]] +==== `[.contract-item-name]#++declineClaim++#++(bytes32 policyId, uint256 claimId)++` [.item-kind]#external# + +Allows the owner of the contract to decline a claim. + +[.contract-item] +[[TestProduct-closeClaim-bytes32-uint256-]] +==== `[.contract-item-name]#++closeClaim++#++(bytes32 policyId, uint256 claimId)++` [.item-kind]#external# + +Closes a specific claim for a given policy. + +[.contract-item] +[[TestProduct-createPayout-bytes32-uint256-uint256-]] +==== `[.contract-item-name]#++createPayout++#++(bytes32 policyId, uint256 claimId, uint256 payoutAmount) → uint256 payoutId++` [.item-kind]#external# + +Creates a new payout for a specific policy and claim. + +[.contract-item] +[[TestProduct-newPayout-bytes32-uint256-uint256-]] +==== `[.contract-item-name]#++newPayout++#++(bytes32 policyId, uint256 claimId, uint256 payoutAmount) → uint256 payoutId++` [.item-kind]#external# + +Creates a new payout for a claim under a policy. + +[.contract-item] +[[TestProduct-processPayout-bytes32-uint256-]] +==== `[.contract-item-name]#++processPayout++#++(bytes32 policyId, uint256 payoutId)++` [.item-kind]#external# + +Processes a payout for a specific policy. + +[.contract-item] +[[TestProduct-oracleCallback-uint256-bytes32-bytes-]] +==== `[.contract-item-name]#++oracleCallback++#++(uint256 requestId, bytes32 policyId, bytes responseData)++` [.item-kind]#external# + +This function is called by the oracle to provide the response data for a specified policy ID and request ID. + +[.contract-item] +[[TestProduct-getClaimId-bytes32-]] +==== `[.contract-item-name]#++getClaimId++#++(bytes32 policyId) → uint256++` [.item-kind]#external# + +Returns the claim ID associated with a given policy ID. + +[.contract-item] +[[TestProduct-getPayoutId-bytes32-]] +==== `[.contract-item-name]#++getPayoutId++#++(bytes32 policyId) → uint256++` [.item-kind]#external# + +Returns the payout ID associated with a given policy ID. + +[.contract-item] +[[TestProduct-applications--]] +==== `[.contract-item-name]#++applications++#++() → uint256++` [.item-kind]#external# + +Returns the number of applications that have been submitted. + +[.contract-item] +[[TestProduct-policies--]] +==== `[.contract-item-name]#++policies++#++() → uint256++` [.item-kind]#external# + +Returns the number of policies in the _policies array. + +[.contract-item] +[[TestProduct-claims--]] +==== `[.contract-item-name]#++claims++#++() → uint256++` [.item-kind]#external# + +Returns the number of claims made by users. + +[.contract-item] +[[TestProduct-LogTestProductFundingReceived-address-uint256-]] +==== `[.contract-item-name]#++LogTestProductFundingReceived++#++(address sender, uint256 amount)++` [.item-kind]#event# + +[.contract-item] +[[TestProduct-LogTestOracleCallbackReceived-uint256-bytes32-bytes-]] +==== `[.contract-item-name]#++LogTestOracleCallbackReceived++#++(uint256 requestId, bytes32 policyId, bytes response)++` [.item-kind]#event# + +:POLICY: pass:normal[xref:#TestRegistryCompromisedController-POLICY-bytes32[`++POLICY++`]] +:QUERY: pass:normal[xref:#TestRegistryCompromisedController-QUERY-bytes32[`++QUERY++`]] +:contracts: pass:normal[xref:#TestRegistryCompromisedController-contracts-mapping-bytes32----address-[`++contracts++`]] +:getContract: pass:normal[xref:#TestRegistryCompromisedController-getContract-bytes32-[`++getContract++`]] +:upgradeToV2: pass:normal[xref:#TestRegistryCompromisedController-upgradeToV2-address-address-[`++upgradeToV2++`]] + +[.contract] +[[TestRegistryCompromisedController]] +=== `++TestRegistryCompromisedController++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/test/TestRegistryCompromisedController.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/test/TestRegistryCompromisedController.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-TestRegistryCompromisedController-getContract-bytes32-}[`++getContract(contractName)++`] +* {xref-TestRegistryCompromisedController-upgradeToV2-address-address-}[`++upgradeToV2(compromisedPolicyModuleAddress, originalQueryModuleAddress)++`] + +-- + +[.contract-item] +[[TestRegistryCompromisedController-getContract-bytes32-]] +==== `[.contract-item-name]#++getContract++#++(bytes32 contractName) → address moduleAddress++` [.item-kind]#external# + +Returns the address of a registered contract. + +[.contract-item] +[[TestRegistryCompromisedController-upgradeToV2-address-address-]] +==== `[.contract-item-name]#++upgradeToV2++#++(address compromisedPolicyModuleAddress, address originalQueryModuleAddress)++` [.item-kind]#public# + +Upgrades the Policy Manager contract to version 2. + +:message: pass:normal[xref:#TestRegistryControllerUpdated-message-string[`++message++`]] +:upgradeV2: pass:normal[xref:#TestRegistryControllerUpdated-upgradeV2-bool[`++upgradeV2++`]] +:setMessage: pass:normal[xref:#TestRegistryControllerUpdated-setMessage-string-[`++setMessage++`]] +:getMessage: pass:normal[xref:#TestRegistryControllerUpdated-getMessage--[`++getMessage++`]] +:upgradeToV2: pass:normal[xref:#TestRegistryControllerUpdated-upgradeToV2-string-[`++upgradeToV2++`]] + +[.contract] +[[TestRegistryControllerUpdated]] +=== `++TestRegistryControllerUpdated++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/test/TestRegistryControllerUpdated.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/test/TestRegistryControllerUpdated.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-TestRegistryControllerUpdated-setMessage-string-}[`++setMessage(_message)++`] +* {xref-TestRegistryControllerUpdated-getMessage--}[`++getMessage()++`] +* {xref-TestRegistryControllerUpdated-upgradeToV2-string-}[`++upgradeToV2(_message)++`] + +[.contract-subindex-inherited] +.RegistryController +* {xref-RegistryController-initializeRegistry-bytes32-}[`++initializeRegistry(_initialRelease)++`] +* {xref-RegistryController-ensureSender-address-bytes32-}[`++ensureSender(sender, _contractName)++`] +* {xref-RegistryController-getRelease--}[`++getRelease()++`] +* {xref-RegistryController-getContract-bytes32-}[`++getContract(_contractName)++`] +* {xref-RegistryController-register-bytes32-address-}[`++register(_contractName, _contractAddress)++`] +* {xref-RegistryController-deregister-bytes32-}[`++deregister(_contractName)++`] +* {xref-RegistryController-getContractInRelease-bytes32-bytes32-}[`++getContractInRelease(_release, _contractName)++`] +* {xref-RegistryController-registerInRelease-bytes32-bytes32-address-}[`++registerInRelease(_release, _contractName, _contractAddress)++`] +* {xref-RegistryController-deregisterInRelease-bytes32-bytes32-}[`++deregisterInRelease(_release, _contractName)++`] +* {xref-RegistryController-prepareRelease-bytes32-}[`++prepareRelease(_newRelease)++`] +* {xref-RegistryController-contracts--}[`++contracts()++`] +* {xref-RegistryController-contractName-uint256-}[`++contractName(idx)++`] +* {xref-RegistryController-_getContractInRelease-bytes32-bytes32-}[`++_getContractInRelease(_release, _contractName)++`] +* {xref-RegistryController-_registerInRelease-bytes32-bool-bytes32-address-}[`++_registerInRelease(_release, isNewRelease, _contractName, _contractAddress)++`] +* {xref-RegistryController-_deregisterInRelease-bytes32-bytes32-}[`++_deregisterInRelease(_release, _contractName)++`] + +[.contract-subindex-inherited] +.CoreController +* {xref-CoreController-initialize-address-}[`++initialize(registry)++`] +* {xref-CoreController-_getName--}[`++_getName()++`] +* {xref-CoreController-_afterInitialize--}[`++_afterInitialize()++`] +* {xref-CoreController-_getContractAddress-bytes32-}[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-_disableInitializers--[`++_disableInitializers()++`] + +[.contract-subindex-inherited] +.IRegistry + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.RegistryController + +[.contract-subindex-inherited] +.CoreController + +[.contract-subindex-inherited] +.Initializable +* https://docs.openzeppelin.com/contracts/3.x/api/proxy#Initializable-Initialized-uint8-[`++Initialized(version)++`] + +[.contract-subindex-inherited] +.IRegistry +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IRegistry.sol[`++LogContractRegistered(release, contractName, contractAddress, isNew)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IRegistry.sol[`++LogContractDeregistered(release, contractName)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IRegistry.sol[`++LogReleasePrepared(release)++`] + +-- + +[.contract-item] +[[TestRegistryControllerUpdated-setMessage-string-]] +==== `[.contract-item-name]#++setMessage++#++(string _message)++` [.item-kind]#public# + +Sets the message variable to a given string. + +[.contract-item] +[[TestRegistryControllerUpdated-getMessage--]] +==== `[.contract-item-name]#++getMessage++#++() → string++` [.item-kind]#public# + +Returns the current message stored in the contract. + +[.contract-item] +[[TestRegistryControllerUpdated-upgradeToV2-string-]] +==== `[.contract-item-name]#++upgradeToV2++#++(string _message)++` [.item-kind]#public# + +Upgrades the contract to version 2. + +:SUM_OF_SUM_INSURED_CAP: pass:normal[xref:#TestRiskpool-SUM_OF_SUM_INSURED_CAP-uint256[`++SUM_OF_SUM_INSURED_CAP++`]] +:constructor: pass:normal[xref:#TestRiskpool-constructor-bytes32-uint256-address-address-address-[`++constructor++`]] +:bundleMatchesApplication: pass:normal[xref:#TestRiskpool-bundleMatchesApplication-struct-IBundle-Bundle-struct-IPolicy-Application-[`++bundleMatchesApplication++`]] + +[.contract] +[[TestRiskpool]] +=== `++TestRiskpool++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/test/TestRiskpool.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/test/TestRiskpool.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-TestRiskpool-constructor-bytes32-uint256-address-address-address-}[`++constructor(name, collateralization, erc20Token, wallet, registry)++`] +* {xref-TestRiskpool-bundleMatchesApplication-struct-IBundle-Bundle-struct-IPolicy-Application-}[`++bundleMatchesApplication(bundle, application)++`] + +[.contract-subindex-inherited] +.BasicRiskpool +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/BasicRiskpool.sol[`++_lockCollateral(processId, collateralAmount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/BasicRiskpool.sol[`++_processPayout(processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/BasicRiskpool.sol[`++_processPremium(processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/BasicRiskpool.sol[`++_releaseCollateral(processId)++`] + +[.contract-subindex-inherited] +.Riskpool +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++_afterPropose()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++createBundle(filter, initialAmount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++fundBundle(bundleId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++defundBundle(bundleId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++lockBundle(bundleId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++unlockBundle(bundleId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++closeBundle(bundleId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++burnBundle(bundleId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++collateralizePolicy(processId, collateralAmount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++processPolicyPayout(processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++processPolicyPremium(processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++releasePolicy(processId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++setMaximumNumberOfActiveBundles(maximumNumberOfActiveBundles)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getMaximumNumberOfActiveBundles()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getWallet()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getErc20Token()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getSumOfSumInsuredCap()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getFullCollateralizationLevel()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getCollateralizationLevel()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++bundles()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getBundle(idx)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++activeBundles()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getActiveBundleId(idx)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getFilterDataStructure()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getCapital()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getTotalValueLocked()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getCapacity()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++getBalance()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Riskpool.sol[`++_afterArchive()++`] + +[.contract-subindex-inherited] +.Component +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++setId(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getName()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getId()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getType()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getState()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getOwner()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++isProduct()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++isOracle()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++isRiskpool()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++getRegistry()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++proposalCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++approvalCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++declineCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++suspendCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++resumeCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++pauseCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++unpauseCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++archiveCallback()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterApprove()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterDecline()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterSuspend()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterResume()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterPause()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_afterUnpause()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getAccess()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getInstanceService()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getComponentOwnerService()++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/Component.sol[`++_getContractAddress(contractName)++`] + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-owner--[`++owner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_checkOwner--[`++_checkOwner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-renounceOwnership--[`++renounceOwnership()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-transferOwnership-address-[`++transferOwnership(newOwner)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_transferOwnership-address-[`++_transferOwnership(newOwner)++`] + +[.contract-subindex-inherited] +.IComponentEvents + +[.contract-subindex-inherited] +.IRiskpool + +[.contract-subindex-inherited] +.IComponent + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.BasicRiskpool +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/BasicRiskpool.sol[`++LogBasicRiskpoolBundlesAndPolicies(activeBundles, bundleId)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/BasicRiskpool.sol[`++LogBasicRiskpoolCandidateBundleAmountCheck(index, bundleId, maxAmount, collateralAmount)++`] + +[.contract-subindex-inherited] +.Riskpool + +[.contract-subindex-inherited] +.Component + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-OwnershipTransferred-address-address-[`++OwnershipTransferred(previousOwner, newOwner)++`] + +[.contract-subindex-inherited] +.IComponentEvents +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentProposed(componentName, componentType, componentAddress, id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentApproved(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentDeclined(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentSuspended(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentResumed(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentPaused(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentUnpaused(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentArchived(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/modules/IComponentEvents.sol[`++LogComponentStateChanged(id, stateOld, stateNew)++`] + +[.contract-subindex-inherited] +.IRiskpool +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IRiskpool.sol[`++LogRiskpoolCreated(riskpoolAddress)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IRiskpool.sol[`++LogRiskpoolProposed(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IRiskpool.sol[`++LogRiskpoolApproved(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IRiskpool.sol[`++LogRiskpoolDeclined(id)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IRiskpool.sol[`++LogRiskpoolBundleCreated(bundleId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IRiskpool.sol[`++LogRiskpoolBundleMatchesPolicy(bundleId, isMatching)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IRiskpool.sol[`++LogRiskpoolCollateralLocked(processId, collateralAmount, isSecured)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IRiskpool.sol[`++LogRiskpoolPremiumProcessed(processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IRiskpool.sol[`++LogRiskpoolPayoutProcessed(processId, amount)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IRiskpool.sol[`++LogRiskpoolCollateralReleased(processId, collateralAmount)++`] + +[.contract-subindex-inherited] +.IComponent +* https://github.com/etherisc/gif-interface/blob/develop/contracts/components/IComponent.sol[`++LogComponentCreated(componentName, componentType, componentAddress, registryAddress)++`] + +-- + +[.contract-item] +[[TestRiskpool-constructor-bytes32-uint256-address-address-address-]] +==== `[.contract-item-name]#++constructor++#++(bytes32 name, uint256 collateralization, address erc20Token, address wallet, address registry)++` [.item-kind]#public# + +Constructor function for the Riskpool contract. + +[.contract-item] +[[TestRiskpool-bundleMatchesApplication-struct-IBundle-Bundle-struct-IPolicy-Application-]] +==== `[.contract-item-name]#++bundleMatchesApplication++#++(struct IBundle.Bundle bundle, struct IPolicy.Application application) → bool isMatching++` [.item-kind]#public# + +This function checks if a given bundle matches a given application. + +:LogTransferHelperInputValidation1Failed: pass:normal[xref:#TestTransferFrom-LogTransferHelperInputValidation1Failed-bool-address-address-[`++LogTransferHelperInputValidation1Failed++`]] +:LogTransferHelperInputValidation2Failed: pass:normal[xref:#TestTransferFrom-LogTransferHelperInputValidation2Failed-uint256-uint256-[`++LogTransferHelperInputValidation2Failed++`]] +:LogTransferHelperCallFailed: pass:normal[xref:#TestTransferFrom-LogTransferHelperCallFailed-bool-uint256-bytes-[`++LogTransferHelperCallFailed++`]] +:unifiedTransferFrom: pass:normal[xref:#TestTransferFrom-unifiedTransferFrom-contract-IERC20-address-address-uint256-[`++unifiedTransferFrom++`]] + +[.contract] +[[TestTransferFrom]] +=== `++TestTransferFrom++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/test/TestTransferFrom.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/test/TestTransferFrom.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-TestTransferFrom-unifiedTransferFrom-contract-IERC20-address-address-uint256-}[`++unifiedTransferFrom(token, from, to, amount)++`] + +-- + +[.contract-index] +.Events +-- +* {xref-TestTransferFrom-LogTransferHelperInputValidation1Failed-bool-address-address-}[`++LogTransferHelperInputValidation1Failed(tokenIsContract, from, to)++`] +* {xref-TestTransferFrom-LogTransferHelperInputValidation2Failed-uint256-uint256-}[`++LogTransferHelperInputValidation2Failed(balance, allowance)++`] +* {xref-TestTransferFrom-LogTransferHelperCallFailed-bool-uint256-bytes-}[`++LogTransferHelperCallFailed(callSuccess, returnDataLength, returnData)++`] + +-- + +[.contract-item] +[[TestTransferFrom-unifiedTransferFrom-contract-IERC20-address-address-uint256-]] +==== `[.contract-item-name]#++unifiedTransferFrom++#++(contract IERC20 token, address from, address to, uint256 amount) → bool++` [.item-kind]#external# + +Transfers tokens from a specified address to another specified address using the TransferHelper library. + +[.contract-item] +[[TestTransferFrom-LogTransferHelperInputValidation1Failed-bool-address-address-]] +==== `[.contract-item-name]#++LogTransferHelperInputValidation1Failed++#++(bool tokenIsContract, address from, address to)++` [.item-kind]#event# + +[.contract-item] +[[TestTransferFrom-LogTransferHelperInputValidation2Failed-uint256-uint256-]] +==== `[.contract-item-name]#++LogTransferHelperInputValidation2Failed++#++(uint256 balance, uint256 allowance)++` [.item-kind]#event# + +[.contract-item] +[[TestTransferFrom-LogTransferHelperCallFailed-bool-uint256-bytes-]] +==== `[.contract-item-name]#++LogTransferHelperCallFailed++#++(bool callSuccess, uint256 returnDataLength, bytes returnData)++` [.item-kind]#event# + diff --git a/docs/modules/api/pages/tokens.adoc b/docs/modules/api/pages/tokens.adoc new file mode 100644 index 00000000..f9a54584 --- /dev/null +++ b/docs/modules/api/pages/tokens.adoc @@ -0,0 +1,277 @@ +:github-icon: pass:[] +:xref-BundleToken-onlyBundleModule--: xref:tokens.adoc#BundleToken-onlyBundleModule-- +:xref-BundleToken-constructor--: xref:tokens.adoc#BundleToken-constructor-- +:xref-BundleToken-setBundleModule-address-: xref:tokens.adoc#BundleToken-setBundleModule-address- +:xref-BundleToken-mint-uint256-address-: xref:tokens.adoc#BundleToken-mint-uint256-address- +:xref-BundleToken-burn-uint256-: xref:tokens.adoc#BundleToken-burn-uint256- +:xref-BundleToken-burned-uint256-: xref:tokens.adoc#BundleToken-burned-uint256- +:xref-BundleToken-getBundleId-uint256-: xref:tokens.adoc#BundleToken-getBundleId-uint256- +:xref-BundleToken-getBundleModuleAddress--: xref:tokens.adoc#BundleToken-getBundleModuleAddress-- +:xref-BundleToken-exists-uint256-: xref:tokens.adoc#BundleToken-exists-uint256- +:xref-BundleToken-totalSupply--: xref:tokens.adoc#BundleToken-totalSupply-- +:xref-RiskpoolToken-constructor--: xref:tokens.adoc#RiskpoolToken-constructor-- += Tokens + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/tokens + +== Contracts + +:NAME: pass:normal[xref:#BundleToken-NAME-string[`++NAME++`]] +:SYMBOL: pass:normal[xref:#BundleToken-SYMBOL-string[`++SYMBOL++`]] +:bundleIdForTokenId: pass:normal[xref:#BundleToken-bundleIdForTokenId-mapping-uint256----uint256-[`++bundleIdForTokenId++`]] +:onlyBundleModule: pass:normal[xref:#BundleToken-onlyBundleModule--[`++onlyBundleModule++`]] +:constructor: pass:normal[xref:#BundleToken-constructor--[`++constructor++`]] +:setBundleModule: pass:normal[xref:#BundleToken-setBundleModule-address-[`++setBundleModule++`]] +:mint: pass:normal[xref:#BundleToken-mint-uint256-address-[`++mint++`]] +:burn: pass:normal[xref:#BundleToken-burn-uint256-[`++burn++`]] +:burned: pass:normal[xref:#BundleToken-burned-uint256-[`++burned++`]] +:getBundleId: pass:normal[xref:#BundleToken-getBundleId-uint256-[`++getBundleId++`]] +:getBundleModuleAddress: pass:normal[xref:#BundleToken-getBundleModuleAddress--[`++getBundleModuleAddress++`]] +:exists: pass:normal[xref:#BundleToken-exists-uint256-[`++exists++`]] +:totalSupply: pass:normal[xref:#BundleToken-totalSupply--[`++totalSupply++`]] + +[.contract] +[[BundleToken]] +=== `++BundleToken++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/tokens/BundleToken.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/tokens/BundleToken.sol"; +``` + +[.contract-index] +.Modifiers +-- +* {xref-BundleToken-onlyBundleModule--}[`++onlyBundleModule()++`] +-- + +[.contract-index] +.Functions +-- +* {xref-BundleToken-constructor--}[`++constructor()++`] +* {xref-BundleToken-setBundleModule-address-}[`++setBundleModule(bundleModule)++`] +* {xref-BundleToken-mint-uint256-address-}[`++mint(bundleId, to)++`] +* {xref-BundleToken-burn-uint256-}[`++burn(tokenId)++`] +* {xref-BundleToken-burned-uint256-}[`++burned(tokenId)++`] +* {xref-BundleToken-getBundleId-uint256-}[`++getBundleId(tokenId)++`] +* {xref-BundleToken-getBundleModuleAddress--}[`++getBundleModuleAddress()++`] +* {xref-BundleToken-exists-uint256-}[`++exists(tokenId)++`] +* {xref-BundleToken-totalSupply--}[`++totalSupply()++`] + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-owner--[`++owner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_checkOwner--[`++_checkOwner()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-renounceOwnership--[`++renounceOwnership()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-transferOwnership-address-[`++transferOwnership(newOwner)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-_transferOwnership-address-[`++_transferOwnership(newOwner)++`] + +[.contract-subindex-inherited] +.ERC721 +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-supportsInterface-bytes4-[`++supportsInterface(interfaceId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-balanceOf-address-[`++balanceOf(owner)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-ownerOf-uint256-[`++ownerOf(tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-name--[`++name()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-symbol--[`++symbol()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-tokenURI-uint256-[`++tokenURI(tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_baseURI--[`++_baseURI()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-approve-address-uint256-[`++approve(to, tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-getApproved-uint256-[`++getApproved(tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-setApprovalForAll-address-bool-[`++setApprovalForAll(operator, approved)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-isApprovedForAll-address-address-[`++isApprovedForAll(owner, operator)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-transferFrom-address-address-uint256-[`++transferFrom(from, to, tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-safeTransferFrom-address-address-uint256-[`++safeTransferFrom(from, to, tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-safeTransferFrom-address-address-uint256-bytes-[`++safeTransferFrom(from, to, tokenId, data)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_safeTransfer-address-address-uint256-bytes-[`++_safeTransfer(from, to, tokenId, data)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_exists-uint256-[`++_exists(tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_isApprovedOrOwner-address-uint256-[`++_isApprovedOrOwner(spender, tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_safeMint-address-uint256-[`++_safeMint(to, tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_safeMint-address-uint256-bytes-[`++_safeMint(to, tokenId, data)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_mint-address-uint256-[`++_mint(to, tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_burn-uint256-[`++_burn(tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_transfer-address-address-uint256-[`++_transfer(from, to, tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_approve-address-uint256-[`++_approve(to, tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_setApprovalForAll-address-address-bool-[`++_setApprovalForAll(owner, operator, approved)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_requireMinted-uint256-[`++_requireMinted(tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_beforeTokenTransfer-address-address-uint256-[`++_beforeTokenTransfer(from, to, tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#ERC721-_afterTokenTransfer-address-address-uint256-[`++_afterTokenTransfer(from, to, tokenId)++`] + +[.contract-subindex-inherited] +.IERC721Metadata + +[.contract-subindex-inherited] +.IBundleToken + +[.contract-subindex-inherited] +.IERC721 + +[.contract-subindex-inherited] +.ERC165 + +[.contract-subindex-inherited] +.IERC165 + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.Ownable +* https://docs.openzeppelin.com/contracts/3.x/api/access#Ownable-OwnershipTransferred-address-address-[`++OwnershipTransferred(previousOwner, newOwner)++`] + +[.contract-subindex-inherited] +.ERC721 + +[.contract-subindex-inherited] +.IERC721Metadata + +[.contract-subindex-inherited] +.IBundleToken +* https://github.com/etherisc/gif-interface/blob/develop/contracts/tokens/IBundleToken.sol[`++LogBundleTokenMinted(bundleId, tokenId, tokenOwner)++`] +* https://github.com/etherisc/gif-interface/blob/develop/contracts/tokens/IBundleToken.sol[`++LogBundleTokenBurned(bundleId, tokenId)++`] + +[.contract-subindex-inherited] +.IERC721 +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#IERC721-Transfer-address-address-uint256-[`++Transfer(from, to, tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#IERC721-Approval-address-address-uint256-[`++Approval(owner, approved, tokenId)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC721#IERC721-ApprovalForAll-address-address-bool-[`++ApprovalForAll(owner, operator, approved)++`] + +[.contract-subindex-inherited] +.ERC165 + +[.contract-subindex-inherited] +.IERC165 + +-- + +[.contract-item] +[[BundleToken-onlyBundleModule--]] +==== `[.contract-item-name]#++onlyBundleModule++#++()++` [.item-kind]#modifier# + +[.contract-item] +[[BundleToken-constructor--]] +==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# + +Constructor function for the ERC721 token contract. It sets the name and symbol of the token and initializes the Ownable contract. + +[.contract-item] +[[BundleToken-setBundleModule-address-]] +==== `[.contract-item-name]#++setBundleModule++#++(address bundleModule)++` [.item-kind]#external# + +Sets the bundle module address. + +[.contract-item] +[[BundleToken-mint-uint256-address-]] +==== `[.contract-item-name]#++mint++#++(uint256 bundleId, address to) → uint256 tokenId++` [.item-kind]#external# + +Mints a new bundle token and assigns ownership to the specified address. + +[.contract-item] +[[BundleToken-burn-uint256-]] +==== `[.contract-item-name]#++burn++#++(uint256 tokenId)++` [.item-kind]#external# + +Burns a bundle token. + +[.contract-item] +[[BundleToken-burned-uint256-]] +==== `[.contract-item-name]#++burned++#++(uint256 tokenId) → bool isBurned++` [.item-kind]#external# + +Checks if a token has been burned. + +[.contract-item] +[[BundleToken-getBundleId-uint256-]] +==== `[.contract-item-name]#++getBundleId++#++(uint256 tokenId) → uint256++` [.item-kind]#external# + +Returns the bundle ID associated with a given token ID. + +[.contract-item] +[[BundleToken-getBundleModuleAddress--]] +==== `[.contract-item-name]#++getBundleModuleAddress++#++() → address++` [.item-kind]#external# + +Returns the address of the bundle module. + +[.contract-item] +[[BundleToken-exists-uint256-]] +==== `[.contract-item-name]#++exists++#++(uint256 tokenId) → bool++` [.item-kind]#external# + +Checks if a given token ID exists. + +[.contract-item] +[[BundleToken-totalSupply--]] +==== `[.contract-item-name]#++totalSupply++#++() → uint256 tokenCount++` [.item-kind]#external# + +Returns the total number of tokens in circulation. + +:NAME: pass:normal[xref:#RiskpoolToken-NAME-string[`++NAME++`]] +:SYMBOL: pass:normal[xref:#RiskpoolToken-SYMBOL-string[`++SYMBOL++`]] +:constructor: pass:normal[xref:#RiskpoolToken-constructor--[`++constructor++`]] + +[.contract] +[[RiskpoolToken]] +=== `++RiskpoolToken++` link:https://github.com/etherisc/gif-contracts/blob/release-v2.0.0-rc.1-0/contracts/tokens/RiskpoolToken.sol[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/contracts/tokens/RiskpoolToken.sol"; +``` + +[.contract-index] +.Functions +-- +* {xref-RiskpoolToken-constructor--}[`++constructor()++`] + +[.contract-subindex-inherited] +.ERC20 +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-name--[`++name()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-symbol--[`++symbol()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-decimals--[`++decimals()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-totalSupply--[`++totalSupply()++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-balanceOf-address-[`++balanceOf(account)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-transfer-address-uint256-[`++transfer(to, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-allowance-address-address-[`++allowance(owner, spender)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-approve-address-uint256-[`++approve(spender, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-transferFrom-address-address-uint256-[`++transferFrom(from, to, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-increaseAllowance-address-uint256-[`++increaseAllowance(spender, addedValue)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-decreaseAllowance-address-uint256-[`++decreaseAllowance(spender, subtractedValue)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_transfer-address-address-uint256-[`++_transfer(from, to, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_mint-address-uint256-[`++_mint(account, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_burn-address-uint256-[`++_burn(account, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_approve-address-address-uint256-[`++_approve(owner, spender, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_spendAllowance-address-address-uint256-[`++_spendAllowance(owner, spender, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_beforeTokenTransfer-address-address-uint256-[`++_beforeTokenTransfer(from, to, amount)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#ERC20-_afterTokenTransfer-address-address-uint256-[`++_afterTokenTransfer(from, to, amount)++`] + +[.contract-subindex-inherited] +.IERC20Metadata + +[.contract-subindex-inherited] +.IERC20 + +-- + +[.contract-index] +.Events +-- + +[.contract-subindex-inherited] +.ERC20 + +[.contract-subindex-inherited] +.IERC20Metadata + +[.contract-subindex-inherited] +.IERC20 +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#IERC20-Transfer-address-address-uint256-[`++Transfer(from, to, value)++`] +* https://docs.openzeppelin.com/contracts/3.x/api/token/ERC20#IERC20-Approval-address-address-uint256-[`++Approval(owner, spender, value)++`] + +-- + +[.contract-item] +[[RiskpoolToken-constructor--]] +==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# + +Constructor function that sets the name and symbol of the ERC20 token. + diff --git a/docs/package.json b/docs/package.json deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/templates/contract.hbs b/docs/templates/contract.hbs new file mode 100644 index 00000000..dd34a520 --- /dev/null +++ b/docs/templates/contract.hbs @@ -0,0 +1,93 @@ +{{#each items}} +:{{name}}: pass:normal[xref:#{{anchor}}[`++{{name}}++`]] +{{/each}} + +[.contract] +[[{{anchor}}]] +=== `++{{name}}++` link:https://github.com/etherisc/gif-contracts/blob/release-v{{gif-version}}/{{__item_context.file.absolutePath}}[{github-icon},role=heading-link] + +[.hljs-theme-light.nopadding] +```solidity +import "@etherisc/gif-contracts/{{__item_context.file.absolutePath}}"; +``` + +{{{natspec.dev}}} + +{{#if modifiers}} +[.contract-index] +.Modifiers +-- +{{#each modifiers}} +* {xref-{{anchor~}} }[`++{{name}}({{names params}})++`] +{{/each}} +-- +{{/if}} + +{{#if has-functions}} +[.contract-index] +.Functions +-- +{{#each inherited-functions}} +{{#unless @first}} +[.contract-subindex-inherited] +.{{contract.name}} +{{/unless}} +{{#each functions}} +{{#if isInternal}} +* {xref-{{anchor~}} }[`++{{name}}({{names params}})++`] +{{else}} +* {{externalLink~}} [`++{{name}}({{names params}})++`] +{{/if}} +{{/each}} + +{{/each}} +-- +{{/if}} + +{{#if has-events}} +[.contract-index] +.Events +-- +{{#each inheritance}} +{{#unless @first}} +[.contract-subindex-inherited] +.{{name}} +{{/unless}} +{{#each events}} +{{#if isInternal}} +* {xref-{{anchor~}} }[`++{{name}}({{names params}})++`] +{{else}} +* {{externalLink~}} [`++{{name}}({{names params}})++`] +{{/if}} +{{/each}} + +{{/each}} +-- +{{/if}} + +{{#each modifiers}} +[.contract-item] +[[{{anchor}}]] +==== `[.contract-item-name]#++{{name}}++#++({{typed-params params}})++` [.item-kind]#modifier# + +{{{natspec.dev}}} + +{{/each}} + +{{#each functions}} +[.contract-item] +[[{{anchor}}]] +==== `[.contract-item-name]#++{{name}}++#++({{typed-params params}}){{#if returns}} → {{typed-params returns}}{{/if}}++` [.item-kind]#{{visibility}}# + +{{{natspec.dev}}} + +{{/each}} + +{{#each events}} +[.contract-item] +[[{{anchor}}]] +==== `[.contract-item-name]#++{{name}}++#++({{typed-params params}})++` [.item-kind]#event# + +{{{natspec.dev}}} + +{{/each}} \ No newline at end of file diff --git a/docs/templates/helpers.js b/docs/templates/helpers.js new file mode 100644 index 00000000..dda19673 --- /dev/null +++ b/docs/templates/helpers.js @@ -0,0 +1,47 @@ +const { version } = require('../../package.json'); + +module.exports['gif-version'] = () => version; + +module.exports['readme-path'] = (opts) => { + return 'contracts/' + opts.data.root.id.replace(/\.adoc$/, '') + '/README.adoc'; +}; + +module.exports.names = (params) => params.map(p => p.name).join(', '); + +module.exports['typed-params'] = (params) => { + return params?.map(p => `${p.type}${p.indexed ? ' indexed' : ''}${p.name ? ' ' + p.name : ''}`).join(', '); +}; + +const slug = module.exports.slug = (str) => { + if (str === undefined) { + throw new Error('Missing argument'); + } + return str.replace(/\W/g, '-'); +}; + +const linksCache = new WeakMap(); + +function getAllLinks(items) { + if (linksCache.has(items)) { + return linksCache.get(items); + } + const res = {}; + linksCache.set(items, res); + for (const item of items) { + res[`xref-${item.anchor}`] = `xref:${item.__item_context.page}#${item.anchor}`; + res[slug(item.fullName)] = `pass:normal[xref:${item.__item_context.page}#${item.anchor}[\`${item.fullName}\`]]`; + } + return res; +} + +module.exports['with-prelude'] = (opts) => { + const links = getAllLinks(opts.data.site.items); + const contents = opts.fn(); + const match = contents.match(/\{[-._a-z0-9]+\}/ig) + if (!match) return contents; + const neededLinks = match + .map(m => m.replace(/^\{(.+)\}$/, '$1')) + .filter(k => k in links); + const prelude = neededLinks.map(k => `:${k}: ${links[k]}`).join('\n'); + return prelude + '\n' + contents; +}; \ No newline at end of file diff --git a/docs/templates/page.hbs b/docs/templates/page.hbs new file mode 100644 index 00000000..68e59957 --- /dev/null +++ b/docs/templates/page.hbs @@ -0,0 +1,4 @@ +:github-icon: pass:[] +{{#with-prelude}} +{{readme (readme-path)}} +{{/with-prelude}} \ No newline at end of file diff --git a/docs/templates/properties.js b/docs/templates/properties.js new file mode 100644 index 00000000..c8116afc --- /dev/null +++ b/docs/templates/properties.js @@ -0,0 +1,81 @@ +const { isNodeType } = require('solidity-ast/utils'); +const { slug } = require('./helpers'); + +module.exports.anchor = function anchor({ item, contract }) { + let res = ''; + if (contract) { + res += contract.name + '-'; + } + res += item.name; + if ('parameters' in item) { + const signature = item.parameters.parameters.map(v => v.typeName.typeDescriptions.typeString).join(','); + res += slug('(' + signature + ')'); + } + if (isNodeType('VariableDeclaration', item)) { + res += '-' + slug(item.typeName.typeDescriptions.typeString); + } + return res; +}; + +module.exports.externalLink = function ({ item, contract }) { + + const anchor = module.exports.anchor({ item, contract }); + // TODO: exchange this against links to the actual docs + const links = { + '@etherisc/gif-interface': 'https://github.com/etherisc/gif-interface/blob/develop', + '@openzeppelin': 'https://docs.openzeppelin.com/contracts/3.x/api' + }; + + const path = item.__item_context.file.absolutePath; + for (const [key, value] of Object.entries(links)) { + if (path.startsWith(key)) { + if (key === '@openzeppelin') { + const s1 = /contracts\/([^\/]+)\/.*$/; + const s2 = /contracts\/(.*)\/.*$/; + const mod1 = path.match(s1)[1]; + const mod2 = path.match(s2)[1]; + console.log(path, mod1, mod2) + return value + '/' + (mod1 === 'token' ? mod2 : mod1) + '#' + anchor; + } else { + return value + path.slice(key.length); + } + } + } + return ""; +}; + +module.exports.isInternal = function ({ item, contract }) { + return module.exports.externalLink({ item, contract }) === ""; +} + +module.exports.inheritance = function ({ item, build }) { + if (!isNodeType('ContractDefinition', item)) { + throw new Error('used inherited-items on non-contract'); + } + + return item.linearizedBaseContracts + .map(id => build.deref('ContractDefinition', id)) + .filter((c, i) => c.name !== 'Context' || i === 0); +}; + +module.exports['has-functions'] = function ({ item }) { + // console.log(item.inheritance) + return item.inheritance.some(c => c.functions.length > 0); +}; + +module.exports['has-events'] = function ({ item }) { + return item.inheritance.some(c => c.events.length > 0); +}; + +module.exports['inherited-functions'] = function ({ item }) { + const { inheritance } = item; + const baseFunctions = new Set( + inheritance.flatMap(c => c.functions.flatMap(f => f.baseFunctions ?? [])), + ); + return inheritance.map((contract, i) => ({ + contract, + functions: contract.functions.filter(f => + !baseFunctions.has(f.id) && (f.name !== 'constructor' || i === 0), + ), + })); +}; \ No newline at end of file diff --git a/hardhat.config.js b/hardhat.config.js new file mode 100644 index 00000000..13011b17 --- /dev/null +++ b/hardhat.config.js @@ -0,0 +1,19 @@ +// Minimum Hardhat config for solidity-docgen to work + +require('solidity-docgen'); + +/** + * @type import('hardhat/config').HardhatUserConfig + */ +module.exports = { + solidity: { + version: "0.8.2", + settings: { + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, + docgen: require('./docs/config'), +}; diff --git a/package-lock.json b/package-lock.json index 18ea5ab4..20f99e03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,18 @@ { "name": "@etherisc/gif-contracts", - "version": "2.0.0-rc.1", + "version": "2.0.0-rc.1-0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@etherisc/gif-contracts", - "version": "2.0.0-rc.1", + "version": "2.0.0-rc.1-0", "license": "Apache-2.0", "dependencies": { "@chainlink/contracts": "0.4.1", "@etherisc/gif-interface": "2.0.0-rc.1-0", - "@openzeppelin/contracts": "4.7.3" + "@openzeppelin/contracts": "4.7.3", + "solidity-docgen": "^0.6.0-beta.35" } }, "node_modules/@chainlink/contracts": { @@ -19,6 +20,32 @@ "resolved": "https://registry.npmjs.org/@chainlink/contracts/-/contracts-0.4.1.tgz", "integrity": "sha512-eC8biY6Ks8k9kZKVt5305veCP3z57yyiy6Os5aR6auta6Bp34xWQ/s4qvrifcW4FNgWw1HJPwMPXDGfiehcLjg==" }, + "node_modules/@chainsafe/as-sha256": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", + "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==", + "peer": true + }, + "node_modules/@chainsafe/persistent-merkle-tree": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz", + "integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==", + "peer": true, + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1" + } + }, + "node_modules/@chainsafe/ssz": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz", + "integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==", + "peer": true, + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1", + "@chainsafe/persistent-merkle-tree": "^0.4.2", + "case": "^1.6.3" + } + }, "node_modules/@etherisc/gif-interface": { "version": "2.0.0-rc.1-0", "resolved": "https://registry.npmjs.org/@etherisc/gif-interface/-/gif-interface-2.0.0-rc.1-0.tgz", @@ -27,30 +54,7694 @@ "@openzeppelin/contracts": "4.7.3" } }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "peer": true, + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true + }, + "node_modules/@nomicfoundation/ethereumjs-block": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.1.tgz", + "integrity": "sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw==", + "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-trie": "6.0.1", + "@nomicfoundation/ethereumjs-tx": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "ethereum-cryptography": "0.1.3", + "ethers": "^5.7.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-block/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-blockchain": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.1.tgz", + "integrity": "sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A==", + "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-block": "5.0.1", + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-ethash": "3.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-trie": "6.0.1", + "@nomicfoundation/ethereumjs-tx": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "abstract-level": "^1.0.3", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "level": "^8.0.0", + "lru-cache": "^5.1.1", + "memory-level": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-blockchain/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-common": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.1.tgz", + "integrity": "sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g==", + "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-util": "9.0.1", + "crc-32": "^1.2.0" + } + }, + "node_modules/@nomicfoundation/ethereumjs-ethash": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.1.tgz", + "integrity": "sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w==", + "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-block": "5.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "abstract-level": "^1.0.3", + "bigint-crypto-utils": "^3.0.23", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-ethash/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-evm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.1.tgz", + "integrity": "sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ==", + "peer": true, + "dependencies": { + "@ethersproject/providers": "^5.7.1", + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-tx": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-evm/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-rlp": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.1.tgz", + "integrity": "sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ==", + "peer": true, + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-statemanager": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.1.tgz", + "integrity": "sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ==", + "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "ethers": "^5.7.1", + "js-sdsl": "^4.1.4" + } + }, + "node_modules/@nomicfoundation/ethereumjs-statemanager/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-trie": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.1.tgz", + "integrity": "sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA==", + "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "@types/readable-stream": "^2.3.13", + "ethereum-cryptography": "0.1.3", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-trie/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.1.tgz", + "integrity": "sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w==", + "peer": true, + "dependencies": { + "@chainsafe/ssz": "^0.9.2", + "@ethersproject/providers": "^5.7.2", + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-tx/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.1.tgz", + "integrity": "sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA==", + "peer": true, + "dependencies": { + "@chainsafe/ssz": "^0.10.0", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "ethereum-cryptography": "0.1.3" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/persistent-merkle-tree": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz", + "integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==", + "peer": true, + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/@chainsafe/ssz": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz", + "integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==", + "peer": true, + "dependencies": { + "@chainsafe/as-sha256": "^0.3.1", + "@chainsafe/persistent-merkle-tree": "^0.5.0" + } + }, + "node_modules/@nomicfoundation/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/ethereumjs-vm": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.1.tgz", + "integrity": "sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ==", + "peer": true, + "dependencies": { + "@nomicfoundation/ethereumjs-block": "5.0.1", + "@nomicfoundation/ethereumjs-blockchain": "7.0.1", + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-evm": "2.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-statemanager": "2.0.1", + "@nomicfoundation/ethereumjs-trie": "6.0.1", + "@nomicfoundation/ethereumjs-tx": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@nomicfoundation/ethereumjs-vm/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", + "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "peer": true, + "engines": { + "node": ">= 12" + }, + "optionalDependencies": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", + "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-freebsd-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", + "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", + "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", + "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", + "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", + "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", + "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", + "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", + "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, "node_modules/@openzeppelin/contracts": { "version": "4.7.3", "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.7.3.tgz", "integrity": "sha512-dGRS0agJzu8ybo44pCIf3xBaPQN/65AIXNgK8+4gzKd5kbvlqyxryUYVLJv7fK98Seyd2hDZzVEHSWAh0Bt1Yw==" - } - }, - "dependencies": { - "@chainlink/contracts": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@chainlink/contracts/-/contracts-0.4.1.tgz", - "integrity": "sha512-eC8biY6Ks8k9kZKVt5305veCP3z57yyiy6Os5aR6auta6Bp34xWQ/s4qvrifcW4FNgWw1HJPwMPXDGfiehcLjg==" }, - "@etherisc/gif-interface": { - "version": "2.0.0-rc.1-0", - "resolved": "https://registry.npmjs.org/@etherisc/gif-interface/-/gif-interface-2.0.0-rc.1-0.tgz", - "integrity": "sha512-KECt8o+M22Ov6r3j3gLb9bjPtjvqWxdNVx2cSP+dMdXHKEol081+QsiIGbE0bluo+ICgOA9J/F/F+f2FZtGQxg==", - "requires": { - "@openzeppelin/contracts": "4.7.3" + "node_modules/@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true + }, + "node_modules/@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true, + "dependencies": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" } }, - "@openzeppelin/contracts": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.7.3.tgz", - "integrity": "sha512-dGRS0agJzu8ybo44pCIf3xBaPQN/65AIXNgK8+4gzKd5kbvlqyxryUYVLJv7fK98Seyd2hDZzVEHSWAh0Bt1Yw==" + "node_modules/@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true, + "dependencies": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "peer": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "peer": true, + "dependencies": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "peer": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "peer": true, + "dependencies": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "peer": true, + "dependencies": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "peer": true, + "dependencies": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "peer": true + }, + "node_modules/@types/node": { + "version": "20.2.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", + "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", + "peer": true + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/readable-stream": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", + "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "peer": true, + "dependencies": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "peer": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/abstract-level": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", + "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "peer": true, + "dependencies": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "peer": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "peer": true + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "peer": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "peer": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "peer": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "peer": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "peer": true + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "peer": true + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "peer": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "peer": true + }, + "node_modules/bigint-crypto-utils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.2.2.tgz", + "integrity": "sha512-U1RbE3aX9ayCUVcIPHuPDPKcK3SFOXf93J1UK/iHlJuQB7bhagPIX06/CLpLEsDThJ7KA4Dhrnzynl+d2weTiw==", + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "peer": true + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "peer": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "peer": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "peer": true + }, + "node_modules/browser-level": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", + "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "peer": true, + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.1", + "module-error": "^1.0.2", + "run-parallel-limit": "^1.1.0" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "peer": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "peer": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "peer": true, + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "peer": true, + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "peer": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "peer": true + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "peer": true, + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "peer": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/case": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", + "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", + "peer": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/catering": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", + "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "peer": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "peer": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "peer": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/classic-level": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", + "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", + "hasInstallScript": true, + "peer": true, + "dependencies": { + "abstract-level": "^1.0.2", + "catering": "^2.1.0", + "module-error": "^1.0.1", + "napi-macros": "^2.2.2", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "node_modules/command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "peer": true + }, + "node_modules/commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "peer": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "peer": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "peer": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "peer": true, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "peer": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "peer": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "peer": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "peer": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "peer": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "peer": true + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "peer": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "peer": true, + "dependencies": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "peer": true, + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + }, + "node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "peer": true, + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "peer": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + }, + "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "peer": true, + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "peer": true, + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "peer": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "peer": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "peer": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "peer": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "peer": true, + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "peer": true + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "peer": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "peer": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "peer": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "peer": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "peer": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "peer": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "peer": true + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/hardhat": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.14.1.tgz", + "integrity": "sha512-H3Qp/UKyQGmPDDBSfMoSyH18rRnac90rsb0LNer+sKe6at6rxLe4D5j+M+1icqZQF02iLPjNRwc/PA8OPf757A==", + "peer": true, + "dependencies": { + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/ethereumjs-block": "5.0.1", + "@nomicfoundation/ethereumjs-blockchain": "7.0.1", + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-evm": "2.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-statemanager": "2.0.1", + "@nomicfoundation/ethereumjs-trie": "6.0.1", + "@nomicfoundation/ethereumjs-tx": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "@nomicfoundation/ethereumjs-vm": "7.0.1", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "abort-controller": "^3.0.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "qs": "^6.7.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.7.3", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" + }, + "bin": { + "hardhat": "internal/cli/bootstrap.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "ts-node": "*", + "typescript": "*" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "peer": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "peer": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "peer": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "peer": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "peer": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "peer": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "peer": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "peer": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "peer": true + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "peer": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "peer": true + }, + "node_modules/io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "peer": true, + "dependencies": { + "fp-ts": "^1.0.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "peer": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "peer": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "peer": true, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "peer": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-sdsl": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.1.tgz", + "integrity": "sha512-6Gsx8R0RucyePbWqPssR8DyfuXmLBooYN5cZFZKjHGnQuaf7pEzhtpceagJxVu4LqhYY5EYA7nko3FmeHZ1KbA==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "peer": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "peer": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keccak": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", + "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", + "hasInstallScript": true, + "peer": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/level": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", + "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", + "peer": true, + "dependencies": { + "browser-level": "^1.0.1", + "classic-level": "^1.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/level" + } + }, + "node_modules/level-supports": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", + "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/level-transcoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", + "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", + "peer": true, + "dependencies": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "peer": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "peer": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "peer": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "peer": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/mcl-wasm": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", + "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", + "peer": true, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "peer": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/memory-level": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", + "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", + "peer": true, + "dependencies": { + "abstract-level": "^1.0.0", + "functional-red-black-tree": "^1.0.1", + "module-error": "^1.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "peer": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "peer": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "peer": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "peer": true, + "dependencies": { + "obliterator": "^2.0.0" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "peer": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "peer": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "peer": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "peer": true + }, + "node_modules/mocha/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "peer": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "peer": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/module-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", + "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-macros": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", + "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==", + "peer": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "peer": true + }, + "node_modules/node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "peer": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "peer": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "peer": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "peer": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "peer": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "peer": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "peer": true + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "peer": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "peer": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "peer": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "peer": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "peer": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "peer": true, + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "peer": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "peer": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "peer": true, + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/run-parallel-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", + "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "peer": true + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "peer": true + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "peer": true + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "peer": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "peer": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "peer": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "peer": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "peer": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/solc": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", + "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "peer": true, + "dependencies": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solcjs" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/solc/node_modules/fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "node_modules/solc/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "peer": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/solidity-ast": { + "version": "0.4.49", + "resolved": "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.49.tgz", + "integrity": "sha512-Pr5sCAj1SFqzwFZw1HPKSq0PehlQNdM8GwKyAVYh2DOn7/cCK8LUKD1HeHnKtTgBW7hi9h4nnnan7hpAg5RhWQ==" + }, + "node_modules/solidity-docgen": { + "version": "0.6.0-beta.35", + "resolved": "https://registry.npmjs.org/solidity-docgen/-/solidity-docgen-0.6.0-beta.35.tgz", + "integrity": "sha512-9QdwK1THk/MWIdq1PEW/6dvtND0pUqpFTsbKwwU9YQIMYuRhH1lek9SsgnsGGYtdJ0VTrXXcVT30q20a8Y610A==", + "dependencies": { + "handlebars": "^4.7.7", + "solidity-ast": "^0.4.38" + }, + "peerDependencies": { + "hardhat": "^2.8.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "peer": true, + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stacktrace-parser/node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "peer": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "peer": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "peer": true, + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "peer": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "peer": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "peer": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "peer": true + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "peer": true + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "peer": true + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undici": { + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz", + "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==", + "peer": true, + "dependencies": { + "busboy": "^1.6.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "peer": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "peer": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "peer": true + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "peer": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "peer": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "peer": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "peer": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@chainlink/contracts": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@chainlink/contracts/-/contracts-0.4.1.tgz", + "integrity": "sha512-eC8biY6Ks8k9kZKVt5305veCP3z57yyiy6Os5aR6auta6Bp34xWQ/s4qvrifcW4FNgWw1HJPwMPXDGfiehcLjg==" + }, + "@chainsafe/as-sha256": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", + "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==", + "peer": true + }, + "@chainsafe/persistent-merkle-tree": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz", + "integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==", + "peer": true, + "requires": { + "@chainsafe/as-sha256": "^0.3.1" + } + }, + "@chainsafe/ssz": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz", + "integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==", + "peer": true, + "requires": { + "@chainsafe/as-sha256": "^0.3.1", + "@chainsafe/persistent-merkle-tree": "^0.4.2", + "case": "^1.6.3" + } + }, + "@etherisc/gif-interface": { + "version": "2.0.0-rc.1-0", + "resolved": "https://registry.npmjs.org/@etherisc/gif-interface/-/gif-interface-2.0.0-rc.1-0.tgz", + "integrity": "sha512-KECt8o+M22Ov6r3j3gLb9bjPtjvqWxdNVx2cSP+dMdXHKEol081+QsiIGbE0bluo+ICgOA9J/F/F+f2FZtGQxg==", + "requires": { + "@openzeppelin/contracts": "4.7.3" + } + }, + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "peer": true, + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "peer": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "peer": true, + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "peer": true, + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "peer": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "peer": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "peer": true, + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "peer": true + }, + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "peer": true, + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "peer": true, + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "peer": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + }, + "dependencies": { + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "peer": true, + "requires": {} + } + } + }, + "@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "peer": true, + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "peer": true, + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "peer": true, + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "peer": true, + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "peer": true, + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "peer": true, + "requires": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + } + }, + "@noble/hashes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "peer": true + }, + "@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "peer": true + }, + "@nomicfoundation/ethereumjs-block": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.1.tgz", + "integrity": "sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw==", + "peer": true, + "requires": { + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-trie": "6.0.1", + "@nomicfoundation/ethereumjs-tx": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "ethereum-cryptography": "0.1.3", + "ethers": "^5.7.1" + }, + "dependencies": { + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + } + } + }, + "@nomicfoundation/ethereumjs-blockchain": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.1.tgz", + "integrity": "sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A==", + "peer": true, + "requires": { + "@nomicfoundation/ethereumjs-block": "5.0.1", + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-ethash": "3.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-trie": "6.0.1", + "@nomicfoundation/ethereumjs-tx": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "abstract-level": "^1.0.3", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "level": "^8.0.0", + "lru-cache": "^5.1.1", + "memory-level": "^1.0.0" + }, + "dependencies": { + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + } + } + }, + "@nomicfoundation/ethereumjs-common": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.1.tgz", + "integrity": "sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g==", + "peer": true, + "requires": { + "@nomicfoundation/ethereumjs-util": "9.0.1", + "crc-32": "^1.2.0" + } + }, + "@nomicfoundation/ethereumjs-ethash": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.1.tgz", + "integrity": "sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w==", + "peer": true, + "requires": { + "@nomicfoundation/ethereumjs-block": "5.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "abstract-level": "^1.0.3", + "bigint-crypto-utils": "^3.0.23", + "ethereum-cryptography": "0.1.3" + }, + "dependencies": { + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + } + } + }, + "@nomicfoundation/ethereumjs-evm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.1.tgz", + "integrity": "sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ==", + "peer": true, + "requires": { + "@ethersproject/providers": "^5.7.1", + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-tx": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "dependencies": { + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + } + } + }, + "@nomicfoundation/ethereumjs-rlp": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.1.tgz", + "integrity": "sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ==", + "peer": true + }, + "@nomicfoundation/ethereumjs-statemanager": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.1.tgz", + "integrity": "sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ==", + "peer": true, + "requires": { + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "ethers": "^5.7.1", + "js-sdsl": "^4.1.4" + }, + "dependencies": { + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + } + } + }, + "@nomicfoundation/ethereumjs-trie": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.1.tgz", + "integrity": "sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA==", + "peer": true, + "requires": { + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "@types/readable-stream": "^2.3.13", + "ethereum-cryptography": "0.1.3", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + } + } + }, + "@nomicfoundation/ethereumjs-tx": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.1.tgz", + "integrity": "sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w==", + "peer": true, + "requires": { + "@chainsafe/ssz": "^0.9.2", + "@ethersproject/providers": "^5.7.2", + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "ethereum-cryptography": "0.1.3" + }, + "dependencies": { + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + } + } + }, + "@nomicfoundation/ethereumjs-util": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.1.tgz", + "integrity": "sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA==", + "peer": true, + "requires": { + "@chainsafe/ssz": "^0.10.0", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "ethereum-cryptography": "0.1.3" + }, + "dependencies": { + "@chainsafe/persistent-merkle-tree": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz", + "integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==", + "peer": true, + "requires": { + "@chainsafe/as-sha256": "^0.3.1" + } + }, + "@chainsafe/ssz": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz", + "integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==", + "peer": true, + "requires": { + "@chainsafe/as-sha256": "^0.3.1", + "@chainsafe/persistent-merkle-tree": "^0.5.0" + } + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + } + } + }, + "@nomicfoundation/ethereumjs-vm": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.1.tgz", + "integrity": "sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ==", + "peer": true, + "requires": { + "@nomicfoundation/ethereumjs-block": "5.0.1", + "@nomicfoundation/ethereumjs-blockchain": "7.0.1", + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-evm": "2.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-statemanager": "2.0.1", + "@nomicfoundation/ethereumjs-trie": "6.0.1", + "@nomicfoundation/ethereumjs-tx": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "debug": "^4.3.3", + "ethereum-cryptography": "0.1.3", + "mcl-wasm": "^0.7.1", + "rustbn.js": "~0.2.0" + }, + "dependencies": { + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + } + } + }, + "@nomicfoundation/solidity-analyzer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", + "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "peer": true, + "requires": { + "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", + "@nomicfoundation/solidity-analyzer-darwin-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-freebsd-x64": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": "0.1.1", + "@nomicfoundation/solidity-analyzer-linux-x64-musl": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": "0.1.1", + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": "0.1.1" + } + }, + "@nomicfoundation/solidity-analyzer-darwin-arm64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", + "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", + "optional": true, + "peer": true + }, + "@nomicfoundation/solidity-analyzer-darwin-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", + "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", + "optional": true, + "peer": true + }, + "@nomicfoundation/solidity-analyzer-freebsd-x64": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", + "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", + "optional": true, + "peer": true + }, + "@nomicfoundation/solidity-analyzer-linux-arm64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", + "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", + "optional": true, + "peer": true + }, + "@nomicfoundation/solidity-analyzer-linux-arm64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", + "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", + "optional": true, + "peer": true + }, + "@nomicfoundation/solidity-analyzer-linux-x64-gnu": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", + "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", + "optional": true, + "peer": true + }, + "@nomicfoundation/solidity-analyzer-linux-x64-musl": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", + "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", + "optional": true, + "peer": true + }, + "@nomicfoundation/solidity-analyzer-win32-arm64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", + "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", + "optional": true, + "peer": true + }, + "@nomicfoundation/solidity-analyzer-win32-ia32-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", + "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", + "optional": true, + "peer": true + }, + "@nomicfoundation/solidity-analyzer-win32-x64-msvc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", + "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", + "optional": true, + "peer": true + }, + "@openzeppelin/contracts": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.7.3.tgz", + "integrity": "sha512-dGRS0agJzu8ybo44pCIf3xBaPQN/65AIXNgK8+4gzKd5kbvlqyxryUYVLJv7fK98Seyd2hDZzVEHSWAh0Bt1Yw==" + }, + "@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", + "peer": true + }, + "@scure/bip32": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", + "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "peer": true, + "requires": { + "@noble/hashes": "~1.2.0", + "@noble/secp256k1": "~1.7.0", + "@scure/base": "~1.1.0" + } + }, + "@scure/bip39": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", + "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "peer": true, + "requires": { + "@noble/hashes": "~1.2.0", + "@scure/base": "~1.1.0" + } + }, + "@sentry/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", + "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "peer": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/hub": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", + "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "peer": true, + "requires": { + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/minimal": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", + "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "peer": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/node": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", + "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "peer": true, + "requires": { + "@sentry/core": "5.30.0", + "@sentry/hub": "5.30.0", + "@sentry/tracing": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + } + }, + "@sentry/tracing": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", + "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "peer": true, + "requires": { + "@sentry/hub": "5.30.0", + "@sentry/minimal": "5.30.0", + "@sentry/types": "5.30.0", + "@sentry/utils": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@sentry/types": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", + "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "peer": true + }, + "@sentry/utils": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", + "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "peer": true, + "requires": { + "@sentry/types": "5.30.0", + "tslib": "^1.9.3" + } + }, + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "peer": true, + "requires": { + "@types/node": "*" + } + }, + "@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "peer": true + }, + "@types/node": { + "version": "20.2.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", + "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", + "peer": true + }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "peer": true, + "requires": { + "@types/node": "*" + } + }, + "@types/readable-stream": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", + "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "peer": true, + "requires": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } + }, + "@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "peer": true, + "requires": { + "@types/node": "*" + } + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "peer": true, + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "abstract-level": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", + "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "peer": true, + "requires": { + "buffer": "^6.0.3", + "catering": "^2.1.0", + "is-buffer": "^2.0.5", + "level-supports": "^4.0.0", + "level-transcoder": "^1.0.1", + "module-error": "^1.0.1", + "queue-microtask": "^1.2.3" + } + }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "peer": true + }, + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "peer": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "peer": true, + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "peer": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "peer": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "peer": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "peer": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "peer": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "peer": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "peer": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "peer": true + }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "peer": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "peer": true + }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "peer": true + }, + "bigint-crypto-utils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.2.2.tgz", + "integrity": "sha512-U1RbE3aX9ayCUVcIPHuPDPKcK3SFOXf93J1UK/iHlJuQB7bhagPIX06/CLpLEsDThJ7KA4Dhrnzynl+d2weTiw==", + "peer": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "peer": true + }, + "blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "peer": true + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "peer": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "peer": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "peer": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "peer": true + }, + "browser-level": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", + "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "peer": true, + "requires": { + "abstract-level": "^1.0.2", + "catering": "^2.1.1", + "module-error": "^1.0.2", + "run-parallel-limit": "^1.1.0" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "peer": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "peer": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "peer": true, + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "peer": true, + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "peer": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "peer": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "peer": true + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "peer": true, + "requires": { + "streamsearch": "^1.1.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "peer": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "peer": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "peer": true + }, + "case": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", + "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", + "peer": true + }, + "catering": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", + "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "peer": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "peer": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "peer": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "peer": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "peer": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "classic-level": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", + "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", + "peer": true, + "requires": { + "abstract-level": "^1.0.2", + "catering": "^2.1.0", + "module-error": "^1.0.1", + "napi-macros": "^2.2.2", + "node-gyp-build": "^4.3.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "peer": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "peer": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "peer": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "peer": true + }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "peer": true + }, + "commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "peer": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "peer": true + }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "peer": true + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "peer": true + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "peer": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "peer": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "peer": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "peer": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "peer": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "peer": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "peer": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "peer": true + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "peer": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "peer": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "peer": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "peer": true + }, + "ethereum-cryptography": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", + "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "peer": true, + "requires": { + "@noble/hashes": "1.2.0", + "@noble/secp256k1": "1.7.1", + "@scure/bip32": "1.1.5", + "@scure/bip39": "1.1.1" + } + }, + "ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "peer": true, + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + } + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "peer": true, + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + }, + "dependencies": { + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "peer": true, + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "peer": true, + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + } + } + }, + "ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "peer": true, + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "peer": true, + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "peer": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "peer": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "peer": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "peer": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "peer": true + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "peer": true + }, + "fp-ts": { + "version": "1.19.3", + "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", + "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "peer": true + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "peer": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true, + "peer": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "peer": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "peer": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "peer": true + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "peer": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "peer": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "peer": true + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + } + }, + "hardhat": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.14.1.tgz", + "integrity": "sha512-H3Qp/UKyQGmPDDBSfMoSyH18rRnac90rsb0LNer+sKe6at6rxLe4D5j+M+1icqZQF02iLPjNRwc/PA8OPf757A==", + "peer": true, + "requires": { + "@ethersproject/abi": "^5.1.2", + "@metamask/eth-sig-util": "^4.0.0", + "@nomicfoundation/ethereumjs-block": "5.0.1", + "@nomicfoundation/ethereumjs-blockchain": "7.0.1", + "@nomicfoundation/ethereumjs-common": "4.0.1", + "@nomicfoundation/ethereumjs-evm": "2.0.1", + "@nomicfoundation/ethereumjs-rlp": "5.0.1", + "@nomicfoundation/ethereumjs-statemanager": "2.0.1", + "@nomicfoundation/ethereumjs-trie": "6.0.1", + "@nomicfoundation/ethereumjs-tx": "5.0.1", + "@nomicfoundation/ethereumjs-util": "9.0.1", + "@nomicfoundation/ethereumjs-vm": "7.0.1", + "@nomicfoundation/solidity-analyzer": "^0.1.0", + "@sentry/node": "^5.18.1", + "@types/bn.js": "^5.1.0", + "@types/lru-cache": "^5.1.0", + "abort-controller": "^3.0.0", + "adm-zip": "^0.4.16", + "aggregate-error": "^3.0.0", + "ansi-escapes": "^4.3.0", + "chalk": "^2.4.2", + "chokidar": "^3.4.0", + "ci-info": "^2.0.0", + "debug": "^4.1.1", + "enquirer": "^2.3.0", + "env-paths": "^2.2.0", + "ethereum-cryptography": "^1.0.3", + "ethereumjs-abi": "^0.6.8", + "find-up": "^2.1.0", + "fp-ts": "1.19.3", + "fs-extra": "^7.0.1", + "glob": "7.2.0", + "immutable": "^4.0.0-rc.12", + "io-ts": "1.10.4", + "keccak": "^3.0.2", + "lodash": "^4.17.11", + "mnemonist": "^0.38.0", + "mocha": "^10.0.0", + "p-map": "^4.0.0", + "qs": "^6.7.0", + "raw-body": "^2.4.1", + "resolve": "1.17.0", + "semver": "^6.3.0", + "solc": "0.7.3", + "source-map-support": "^0.5.13", + "stacktrace-parser": "^0.1.10", + "tsort": "0.0.1", + "undici": "^5.14.0", + "uuid": "^8.3.2", + "ws": "^7.4.6" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "peer": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "peer": true + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "peer": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "peer": true + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "peer": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "peer": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "peer": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "peer": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "peer": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "peer": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "peer": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "peer": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "peer": true + }, + "immutable": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", + "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "peer": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "peer": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "peer": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "peer": true + }, + "io-ts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", + "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "peer": true, + "requires": { + "fp-ts": "^1.0.0" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "peer": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "peer": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "peer": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "peer": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "peer": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "peer": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "peer": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "peer": true + }, + "js-sdsl": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.1.tgz", + "integrity": "sha512-6Gsx8R0RucyePbWqPssR8DyfuXmLBooYN5cZFZKjHGnQuaf7pEzhtpceagJxVu4LqhYY5EYA7nko3FmeHZ1KbA==", + "peer": true + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "peer": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "peer": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "keccak": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", + "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", + "peer": true, + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "level": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", + "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", + "peer": true, + "requires": { + "browser-level": "^1.0.1", + "classic-level": "^1.2.0" + } + }, + "level-supports": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", + "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", + "peer": true + }, + "level-transcoder": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", + "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", + "peer": true, + "requires": { + "buffer": "^6.0.3", + "module-error": "^1.0.1" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "peer": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "peer": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "peer": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "peer": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "peer": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "mcl-wasm": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", + "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", + "peer": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "peer": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "memory-level": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", + "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", + "peer": true, + "requires": { + "abstract-level": "^1.0.0", + "functional-red-black-tree": "^1.0.1", + "module-error": "^1.0.1" + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "peer": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "peer": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "peer": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mnemonist": { + "version": "0.38.5", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", + "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "peer": true, + "requires": { + "obliterator": "^2.0.0" + } + }, + "mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "peer": true, + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "peer": true + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "peer": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "peer": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "peer": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "peer": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "peer": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "peer": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "peer": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "peer": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "peer": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "module-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", + "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", + "peer": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "peer": true + }, + "napi-macros": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", + "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==", + "peer": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "peer": true + }, + "node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "peer": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "peer": true + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "peer": true + }, + "obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "peer": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "peer": true, + "requires": { + "wrappy": "1" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "peer": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "peer": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "peer": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "peer": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "peer": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "peer": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "peer": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "peer": true + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "peer": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "peer": true + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "peer": true, + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "peer": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "peer": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "peer": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "peer": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "peer": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "peer": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "peer": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "peer": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "peer": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "peer": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "peer": true, + "requires": { + "bn.js": "^5.2.0" + } + }, + "run-parallel-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", + "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", + "peer": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rustbn.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", + "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "peer": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "peer": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "peer": true + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "peer": true + }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "peer": true, + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "peer": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "peer": true + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "peer": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "peer": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "peer": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "solc": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", + "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "peer": true, + "requires": { + "command-exists": "^1.2.8", + "commander": "3.0.2", + "follow-redirects": "^1.12.1", + "fs-extra": "^0.30.0", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "peer": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "peer": true + } + } + }, + "solidity-ast": { + "version": "0.4.49", + "resolved": "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.49.tgz", + "integrity": "sha512-Pr5sCAj1SFqzwFZw1HPKSq0PehlQNdM8GwKyAVYh2DOn7/cCK8LUKD1HeHnKtTgBW7hi9h4nnnan7hpAg5RhWQ==" + }, + "solidity-docgen": { + "version": "0.6.0-beta.35", + "resolved": "https://registry.npmjs.org/solidity-docgen/-/solidity-docgen-0.6.0-beta.35.tgz", + "integrity": "sha512-9QdwK1THk/MWIdq1PEW/6dvtND0pUqpFTsbKwwU9YQIMYuRhH1lek9SsgnsGGYtdJ0VTrXXcVT30q20a8Y610A==", + "requires": { + "handlebars": "^4.7.7", + "solidity-ast": "^0.4.38" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "peer": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "stacktrace-parser": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", + "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "peer": true, + "requires": { + "type-fest": "^0.7.1" + }, + "dependencies": { + "type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "peer": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "peer": true + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "peer": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "peer": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "peer": true + } + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "peer": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "peer": true, + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "peer": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "peer": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "peer": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "peer": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "peer": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "peer": true + }, + "tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "peer": true + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "peer": true + }, + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "peer": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "peer": true + }, + "uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "optional": true + }, + "undici": { + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz", + "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==", + "peer": true, + "requires": { + "busboy": "^1.6.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "peer": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "peer": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "peer": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "peer": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "peer": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "peer": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "peer": true + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "peer": true, + "requires": {} + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "peer": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "peer": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "peer": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "peer": true + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "peer": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "peer": true } } } diff --git a/package.json b/package.json index 3dc572dd..12a9eeaa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "dependencies": { "@chainlink/contracts": "0.4.1", "@etherisc/gif-interface": "2.0.0-rc.1-0", - "@openzeppelin/contracts": "4.7.3" + "@openzeppelin/contracts": "4.7.3", + "solidity-docgen": "^0.6.0-beta.35" } } From 99de8cd3b0e78d5e407710909c971e0c8600e665 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Wed, 7 Jun 2023 17:54:30 +0200 Subject: [PATCH 05/29] add artifacts to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 354cbe22..af40c2ed 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ __pycache__ .history .hypothesis/ build/ +artifacts/ reports/ dump_sources/ node_modules From bf74a77895f7699f44d1b1e599e9aa3a634fc2ab Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Wed, 7 Jun 2023 15:58:23 +0000 Subject: [PATCH 06/29] remove artifacts from git --- .../src/v0.8/Chainlink.sol/Chainlink.dbg.json | 4 - .../src/v0.8/Chainlink.sol/Chainlink.json | 10 - .../ChainlinkClient.dbg.json | 4 - .../ChainlinkClient.sol/ChainlinkClient.json | 50 - .../ChainlinkRequestInterface.dbg.json | 4 - .../ChainlinkRequestInterface.json | 87 - .../ENSInterface.sol/ENSInterface.dbg.json | 4 - .../ENSInterface.sol/ENSInterface.json | 227 -- .../LinkTokenInterface.dbg.json | 4 - .../LinkTokenInterface.json | 254 --- .../OperatorInterface.dbg.json | 4 - .../OperatorInterface.json | 354 --- .../OracleInterface.dbg.json | 4 - .../OracleInterface.sol/OracleInterface.json | 105 - .../PointerInterface.dbg.json | 4 - .../PointerInterface.json | 24 - .../BufferChainlink.dbg.json | 4 - .../BufferChainlink.sol/BufferChainlink.json | 10 - .../CBORChainlink.sol/CBORChainlink.dbg.json | 4 - .../CBORChainlink.sol/CBORChainlink.json | 10 - .../ENSResolver.sol/ENSResolver.dbg.json | 4 - .../vendor/ENSResolver.sol/ENSResolver.json | 30 - .../BasicRiskpool.sol/BasicRiskpool.dbg.json | 4 - .../BasicRiskpool.sol/BasicRiskpool.json | 1252 ----------- .../Component.sol/Component.dbg.json | 4 - .../components/Component.sol/Component.json | 427 ---- .../IComponent.sol/IComponent.dbg.json | 4 - .../components/IComponent.sol/IComponent.json | 228 -- .../components/IOracle.sol/IOracle.dbg.json | 4 - .../components/IOracle.sol/IOracle.json | 311 --- .../components/IProduct.sol/IProduct.dbg.json | 4 - .../components/IProduct.sol/IProduct.json | 371 ---- .../IRiskpool.sol/IRiskpool.dbg.json | 4 - .../components/IRiskpool.sol/IRiskpool.json | 977 -------- .../components/Oracle.sol/Oracle.dbg.json | 4 - .../components/Oracle.sol/Oracle.json | 510 ----- .../components/Product.sol/Product.dbg.json | 4 - .../components/Product.sol/Product.json | 570 ----- .../components/Riskpool.sol/Riskpool.dbg.json | 4 - .../components/Riskpool.sol/Riskpool.json | 1202 ---------- .../modules/IAccess.sol/IAccess.dbg.json | 4 - .../modules/IAccess.sol/IAccess.json | 167 -- .../modules/IBundle.sol/IBundle.dbg.json | 4 - .../modules/IBundle.sol/IBundle.json | 437 ---- .../IComponentEvents.dbg.json | 4 - .../IComponentEvents.json | 158 -- .../modules/ILicense.sol/ILicense.dbg.json | 4 - .../modules/ILicense.sol/ILicense.json | 40 - .../modules/IPolicy.sol/IPolicy.dbg.json | 4 - .../modules/IPolicy.sol/IPolicy.json | 712 ------ .../modules/IPool.sol/IPool.dbg.json | 4 - .../contracts/modules/IPool.sol/IPool.json | 267 --- .../modules/IQuery.sol/IQuery.dbg.json | 4 - .../contracts/modules/IQuery.sol/IQuery.json | 155 -- .../modules/IRegistry.sol/IRegistry.dbg.json | 4 - .../modules/IRegistry.sol/IRegistry.json | 271 --- .../modules/ITreasury.sol/ITreasury.dbg.json | 4 - .../modules/ITreasury.sol/ITreasury.json | 819 ------- .../IComponentOwnerService.dbg.json | 4 - .../IComponentOwnerService.json | 89 - .../IInstanceOperatorService.dbg.json | 4 - .../IInstanceOperatorService.json | 478 ---- .../IInstanceService.dbg.json | 4 - .../IInstanceService.json | 1140 ---------- .../IOracleService.dbg.json | 4 - .../IOracleService.sol/IOracleService.json | 29 - .../IProductService.dbg.json | 4 - .../IProductService.sol/IProductService.json | 381 ---- .../IRiskpoolService.dbg.json | 4 - .../IRiskpoolService.json | 279 --- .../shared/ICoreProxy.sol/ICoreProxy.dbg.json | 4 - .../shared/ICoreProxy.sol/ICoreProxy.json | 30 - .../IBundleToken.sol/IBundleToken.dbg.json | 4 - .../tokens/IBundleToken.sol/IBundleToken.json | 410 ---- .../AccessControl.sol/AccessControl.dbg.json | 4 - .../AccessControl.sol/AccessControl.json | 215 -- .../AccessControlEnumerable.dbg.json | 4 - .../AccessControlEnumerable.json | 258 --- .../IAccessControl.dbg.json | 4 - .../IAccessControl.sol/IAccessControl.json | 183 -- .../IAccessControlEnumerable.dbg.json | 4 - .../IAccessControlEnumerable.json | 226 -- .../access/Ownable.sol/Ownable.dbg.json | 4 - .../contracts/access/Ownable.sol/Ownable.json | 63 - .../IERC1822Proxiable.dbg.json | 4 - .../draft-IERC1822.sol/IERC1822Proxiable.json | 24 - .../ERC1967Proxy.sol/ERC1967Proxy.dbg.json | 4 - .../ERC1967Proxy.sol/ERC1967Proxy.json | 80 - .../ERC1967Upgrade.dbg.json | 4 - .../ERC1967Upgrade.sol/ERC1967Upgrade.json | 56 - .../contracts/proxy/Proxy.sol/Proxy.dbg.json | 4 - .../contracts/proxy/Proxy.sol/Proxy.json | 19 - .../proxy/beacon/IBeacon.sol/IBeacon.dbg.json | 4 - .../proxy/beacon/IBeacon.sol/IBeacon.json | 24 - .../Initializable.sol/Initializable.dbg.json | 4 - .../Initializable.sol/Initializable.json | 24 - .../security/Pausable.sol/Pausable.dbg.json | 4 - .../security/Pausable.sol/Pausable.json | 50 - .../token/ERC20/ERC20.sol/ERC20.dbg.json | 4 - .../token/ERC20/ERC20.sol/ERC20.json | 297 --- .../token/ERC20/IERC20.sol/IERC20.dbg.json | 4 - .../token/ERC20/IERC20.sol/IERC20.json | 194 -- .../IERC20Metadata.dbg.json | 4 - .../IERC20Metadata.sol/IERC20Metadata.json | 233 -- .../IERC20Permit.dbg.json | 4 - .../draft-IERC20Permit.sol/IERC20Permit.json | 86 - .../utils/SafeERC20.sol/SafeERC20.dbg.json | 4 - .../ERC20/utils/SafeERC20.sol/SafeERC20.json | 10 - .../token/ERC721/ERC721.sol/ERC721.dbg.json | 4 - .../token/ERC721/ERC721.sol/ERC721.json | 357 --- .../token/ERC721/IERC721.sol/IERC721.dbg.json | 4 - .../token/ERC721/IERC721.sol/IERC721.json | 296 --- .../IERC721Receiver.dbg.json | 4 - .../IERC721Receiver.sol/IERC721Receiver.json | 45 - .../IERC721Metadata.dbg.json | 4 - .../IERC721Metadata.sol/IERC721Metadata.json | 341 --- .../utils/Address.sol/Address.dbg.json | 4 - .../contracts/utils/Address.sol/Address.json | 10 - .../utils/Context.sol/Context.dbg.json | 4 - .../contracts/utils/Context.sol/Context.json | 10 - .../StorageSlot.sol/StorageSlot.dbg.json | 4 - .../utils/StorageSlot.sol/StorageSlot.json | 10 - .../utils/Strings.sol/Strings.dbg.json | 4 - .../contracts/utils/Strings.sol/Strings.json | 10 - .../introspection/ERC165.sol/ERC165.dbg.json | 4 - .../introspection/ERC165.sol/ERC165.json | 30 - .../IERC165.sol/IERC165.dbg.json | 4 - .../introspection/IERC165.sol/IERC165.json | 30 - .../EnumerableSet.sol/EnumerableSet.dbg.json | 4 - .../EnumerableSet.sol/EnumerableSet.json | 10 - .../599ab32d9f05fdb89405f0e2d60efa8c.json | 1 - .../Migrations.sol/Migrations.dbg.json | 4 - .../contracts/Migrations.sol/Migrations.json | 68 - .../AyiiOracle.sol/AyiiOracle.dbg.json | 4 - .../examples/AyiiOracle.sol/AyiiOracle.json | 844 ------- .../AyiiProduct.sol/AyiiProduct.dbg.json | 4 - .../examples/AyiiProduct.sol/AyiiProduct.json | 1972 ----------------- .../AyiiRiskpool.sol/AyiiRiskpool.dbg.json | 4 - .../AyiiRiskpool.sol/AyiiRiskpool.json | 1526 ------------- .../ChainlinkOperator.dbg.json | 4 - .../ChainlinkOperator.json | 328 --- .../ChainlinkToken.dbg.json | 4 - .../ChainlinkToken.sol/ChainlinkToken.json | 326 --- .../ERC677Receiver.dbg.json | 4 - .../ChainlinkToken.sol/ERC677Receiver.json | 34 - .../examples/strings.sol/strings.dbg.json | 4 - .../examples/strings.sol/strings.json | 10 - .../PolicyDefaultFlow.dbg.json | 4 - .../PolicyDefaultFlow.json | 509 ----- .../AccessController.dbg.json | 4 - .../AccessController.json | 433 ---- .../BundleController.dbg.json | 4 - .../BundleController.json | 693 ------ .../ComponentController.dbg.json | 4 - .../ComponentController.json | 600 ----- .../LicenseController.dbg.json | 4 - .../LicenseController.json | 66 - .../PolicyController.dbg.json | 4 - .../PolicyController.json | 1333 ----------- .../PoolController.dbg.json | 4 - .../PoolController.sol/PoolController.json | 629 ------ .../QueryModule.sol/QueryModule.dbg.json | 4 - .../modules/QueryModule.sol/QueryModule.json | 213 -- .../RegistryController.dbg.json | 4 - .../RegistryController.json | 392 ---- .../TreasuryModule.dbg.json | 4 - .../TreasuryModule.sol/TreasuryModule.json | 1022 --------- .../ComponentOwnerService.dbg.json | 4 - .../ComponentOwnerService.json | 115 - .../InstanceOperatorService.dbg.json | 4 - .../InstanceOperatorService.json | 556 ----- .../InstanceService.dbg.json | 4 - .../InstanceService.sol/InstanceService.json | 1366 ------------ .../OracleService.sol/OracleService.dbg.json | 4 - .../OracleService.sol/OracleService.json | 55 - .../ProductService.dbg.json | 4 - .../ProductService.sol/ProductService.json | 71 - .../RiskpoolService.dbg.json | 4 - .../RiskpoolService.sol/RiskpoolService.json | 318 --- .../CoreController.dbg.json | 4 - .../CoreController.sol/CoreController.json | 42 - .../shared/CoreProxy.sol/CoreProxy.dbg.json | 4 - .../shared/CoreProxy.sol/CoreProxy.json | 130 -- .../TransferHelper.dbg.json | 4 - .../TransferHelper.sol/TransferHelper.json | 80 - .../WithRegistry.sol/WithRegistry.dbg.json | 4 - .../shared/WithRegistry.sol/WithRegistry.json | 54 - .../test/TestCoin.sol/TestCoin.dbg.json | 4 - .../contracts/test/TestCoin.sol/TestCoin.json | 325 --- .../test/TestCoin.sol/TestCoinX.dbg.json | 4 - .../test/TestCoin.sol/TestCoinX.json | 325 --- ...TestCoinAlternativeImplementation.dbg.json | 4 - .../TestCoinAlternativeImplementation.json | 325 --- .../TestCompromisedProduct.dbg.json | 4 - .../TestCompromisedProduct.json | 545 ----- .../test/TestOracle.sol/TestOracle.dbg.json | 4 - .../test/TestOracle.sol/TestOracle.json | 544 ----- .../test/TestProduct.sol/TestProduct.dbg.json | 4 - .../test/TestProduct.sol/TestProduct.json | 1246 ----------- ...TestRegistryCompromisedController.dbg.json | 4 - .../TestRegistryCompromisedController.json | 93 - .../TestRegistryControllerUpdated.dbg.json | 4 - .../TestRegistryControllerUpdated.json | 431 ---- .../TestRiskpool.sol/TestRiskpool.dbg.json | 4 - .../test/TestRiskpool.sol/TestRiskpool.json | 1296 ----------- .../TestTransferFrom.dbg.json | 4 - .../TestTransferFrom.json | 114 - .../BundleToken.sol/BundleToken.dbg.json | 4 - .../tokens/BundleToken.sol/BundleToken.json | 620 ------ .../RiskpoolToken.sol/RiskpoolToken.dbg.json | 4 - .../RiskpoolToken.sol/RiskpoolToken.json | 312 --- 211 files changed, 36444 deletions(-) delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.dbg.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.dbg.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.dbg.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.dbg.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.dbg.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.dbg.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.dbg.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.dbg.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.dbg.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.dbg.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.dbg.json delete mode 100644 artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.dbg.json delete mode 100644 artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.json delete mode 100644 artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json delete mode 100644 artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.json delete mode 100644 artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json delete mode 100644 artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.json delete mode 100644 artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json delete mode 100644 artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json delete mode 100644 artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json delete mode 100644 artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json delete mode 100644 artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json delete mode 100644 artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json delete mode 100644 artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json delete mode 100644 artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json delete mode 100644 artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json delete mode 100644 artifacts/build-info/599ab32d9f05fdb89405f0e2d60efa8c.json delete mode 100644 artifacts/contracts/Migrations.sol/Migrations.dbg.json delete mode 100644 artifacts/contracts/Migrations.sol/Migrations.json delete mode 100644 artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.dbg.json delete mode 100644 artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.json delete mode 100644 artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.dbg.json delete mode 100644 artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.json delete mode 100644 artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.dbg.json delete mode 100644 artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.json delete mode 100644 artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.dbg.json delete mode 100644 artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.json delete mode 100644 artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.dbg.json delete mode 100644 artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.json delete mode 100644 artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.dbg.json delete mode 100644 artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.json delete mode 100644 artifacts/contracts/examples/strings.sol/strings.dbg.json delete mode 100644 artifacts/contracts/examples/strings.sol/strings.json delete mode 100644 artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.dbg.json delete mode 100644 artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.json delete mode 100644 artifacts/contracts/modules/AccessController.sol/AccessController.dbg.json delete mode 100644 artifacts/contracts/modules/AccessController.sol/AccessController.json delete mode 100644 artifacts/contracts/modules/BundleController.sol/BundleController.dbg.json delete mode 100644 artifacts/contracts/modules/BundleController.sol/BundleController.json delete mode 100644 artifacts/contracts/modules/ComponentController.sol/ComponentController.dbg.json delete mode 100644 artifacts/contracts/modules/ComponentController.sol/ComponentController.json delete mode 100644 artifacts/contracts/modules/LicenseController.sol/LicenseController.dbg.json delete mode 100644 artifacts/contracts/modules/LicenseController.sol/LicenseController.json delete mode 100644 artifacts/contracts/modules/PolicyController.sol/PolicyController.dbg.json delete mode 100644 artifacts/contracts/modules/PolicyController.sol/PolicyController.json delete mode 100644 artifacts/contracts/modules/PoolController.sol/PoolController.dbg.json delete mode 100644 artifacts/contracts/modules/PoolController.sol/PoolController.json delete mode 100644 artifacts/contracts/modules/QueryModule.sol/QueryModule.dbg.json delete mode 100644 artifacts/contracts/modules/QueryModule.sol/QueryModule.json delete mode 100644 artifacts/contracts/modules/RegistryController.sol/RegistryController.dbg.json delete mode 100644 artifacts/contracts/modules/RegistryController.sol/RegistryController.json delete mode 100644 artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.dbg.json delete mode 100644 artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.json delete mode 100644 artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.dbg.json delete mode 100644 artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.json delete mode 100644 artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.dbg.json delete mode 100644 artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.json delete mode 100644 artifacts/contracts/services/InstanceService.sol/InstanceService.dbg.json delete mode 100644 artifacts/contracts/services/InstanceService.sol/InstanceService.json delete mode 100644 artifacts/contracts/services/OracleService.sol/OracleService.dbg.json delete mode 100644 artifacts/contracts/services/OracleService.sol/OracleService.json delete mode 100644 artifacts/contracts/services/ProductService.sol/ProductService.dbg.json delete mode 100644 artifacts/contracts/services/ProductService.sol/ProductService.json delete mode 100644 artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.dbg.json delete mode 100644 artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.json delete mode 100644 artifacts/contracts/shared/CoreController.sol/CoreController.dbg.json delete mode 100644 artifacts/contracts/shared/CoreController.sol/CoreController.json delete mode 100644 artifacts/contracts/shared/CoreProxy.sol/CoreProxy.dbg.json delete mode 100644 artifacts/contracts/shared/CoreProxy.sol/CoreProxy.json delete mode 100644 artifacts/contracts/shared/TransferHelper.sol/TransferHelper.dbg.json delete mode 100644 artifacts/contracts/shared/TransferHelper.sol/TransferHelper.json delete mode 100644 artifacts/contracts/shared/WithRegistry.sol/WithRegistry.dbg.json delete mode 100644 artifacts/contracts/shared/WithRegistry.sol/WithRegistry.json delete mode 100644 artifacts/contracts/test/TestCoin.sol/TestCoin.dbg.json delete mode 100644 artifacts/contracts/test/TestCoin.sol/TestCoin.json delete mode 100644 artifacts/contracts/test/TestCoin.sol/TestCoinX.dbg.json delete mode 100644 artifacts/contracts/test/TestCoin.sol/TestCoinX.json delete mode 100644 artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.dbg.json delete mode 100644 artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.json delete mode 100644 artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.dbg.json delete mode 100644 artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.json delete mode 100644 artifacts/contracts/test/TestOracle.sol/TestOracle.dbg.json delete mode 100644 artifacts/contracts/test/TestOracle.sol/TestOracle.json delete mode 100644 artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json delete mode 100644 artifacts/contracts/test/TestProduct.sol/TestProduct.json delete mode 100644 artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.dbg.json delete mode 100644 artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.json delete mode 100644 artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.dbg.json delete mode 100644 artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.json delete mode 100644 artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.dbg.json delete mode 100644 artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.json delete mode 100644 artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.dbg.json delete mode 100644 artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.json delete mode 100644 artifacts/contracts/tokens/BundleToken.sol/BundleToken.dbg.json delete mode 100644 artifacts/contracts/tokens/BundleToken.sol/BundleToken.json delete mode 100644 artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.dbg.json delete mode 100644 artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.json diff --git a/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.json b/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.json deleted file mode 100644 index 7d009103..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/Chainlink.sol/Chainlink.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Chainlink", - "sourceName": "@chainlink/contracts/src/v0.8/Chainlink.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f21ad28c31b9d80a1984a2000941e273e3b3b71fe3fcff419a8ea3c0893efa8164736f6c63430008020033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f21ad28c31b9d80a1984a2000941e273e3b3b71fe3fcff419a8ea3c0893efa8164736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.json b/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.json deleted file mode 100644 index 9a01882e..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/ChainlinkClient.sol/ChainlinkClient.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ChainlinkClient", - "sourceName": "@chainlink/contracts/src/v0.8/ChainlinkClient.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - } - ], - "name": "ChainlinkCancelled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - } - ], - "name": "ChainlinkFulfilled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - } - ], - "name": "ChainlinkRequested", - "type": "event" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.json deleted file mode 100644 index fb34c695..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol/ChainlinkRequestInterface.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ChainlinkRequestInterface", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "requestId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "bytes4", - "name": "callbackFunctionId", - "type": "bytes4" - }, - { - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - } - ], - "name": "cancelOracleRequest", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "requestPrice", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "serviceAgreementID", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "callbackAddress", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "callbackFunctionId", - "type": "bytes4" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "dataVersion", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "oracleRequest", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.json deleted file mode 100644 index 3add3c2c..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol/ENSInterface.json +++ /dev/null @@ -1,227 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ENSInterface", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "label", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "NewOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "resolver", - "type": "address" - } - ], - "name": "NewResolver", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "ttl", - "type": "uint64" - } - ], - "name": "NewTTL", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - } - ], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - } - ], - "name": "resolver", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "setOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "resolver", - "type": "address" - } - ], - "name": "setResolver", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "label", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "setSubnodeOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - }, - { - "internalType": "uint64", - "name": "ttl", - "type": "uint64" - } - ], - "name": "setTTL", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - } - ], - "name": "ttl", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.json deleted file mode 100644 index 20eb8e3c..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol/LinkTokenInterface.json +++ /dev/null @@ -1,254 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "LinkTokenInterface", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "remaining", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "decimalPlaces", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "decreaseApproval", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "increaseApproval", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "tokenName", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "tokenSymbol", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "totalTokensIssued", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "transferAndCall", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.json deleted file mode 100644 index 8480fd94..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol/OperatorInterface.json +++ /dev/null @@ -1,354 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OperatorInterface", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "requestId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "bytes4", - "name": "callbackFunctionId", - "type": "bytes4" - }, - { - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - } - ], - "name": "cancelOracleRequest", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address payable[]", - "name": "receivers", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "amounts", - "type": "uint256[]" - } - ], - "name": "distributeFunds", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "requestId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "address", - "name": "callbackAddress", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "callbackFunctionId", - "type": "bytes4" - }, - { - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "data", - "type": "bytes32" - } - ], - "name": "fulfillOracleRequest", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "requestId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "address", - "name": "callbackAddress", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "callbackFunctionId", - "type": "bytes4" - }, - { - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "fulfillOracleRequest2", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getAuthorizedSenders", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getForwarder", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "node", - "type": "address" - } - ], - "name": "isAuthorizedSender", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "specId", - "type": "bytes32" - }, - { - "internalType": "bytes4", - "name": "callbackFunctionId", - "type": "bytes4" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "dataVersion", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "operatorRequest", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "requestPrice", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "serviceAgreementID", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "callbackAddress", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "callbackFunctionId", - "type": "bytes4" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "dataVersion", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "oracleRequest", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "ownerTransferAndCall", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "senders", - "type": "address[]" - } - ], - "name": "setAuthorizedSenders", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "withdrawable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.json deleted file mode 100644 index 3a32f82d..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol/OracleInterface.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OracleInterface", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "requestId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "address", - "name": "callbackAddress", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "callbackFunctionId", - "type": "bytes4" - }, - { - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "data", - "type": "bytes32" - } - ], - "name": "fulfillOracleRequest", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "node", - "type": "address" - } - ], - "name": "isAuthorizedSender", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "withdrawable", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.json b/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.json deleted file mode 100644 index 6f6d6604..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol/PointerInterface.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "PointerInterface", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol", - "abi": [ - { - "inputs": [], - "name": "getAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.json deleted file mode 100644 index dd3f6555..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol/BufferChainlink.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BufferChainlink", - "sourceName": "@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b90e44a5e48e43208418560358cef9c2b18e25770097989023282478f541b8d64736f6c63430008020033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b90e44a5e48e43208418560358cef9c2b18e25770097989023282478f541b8d64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.json deleted file mode 100644 index eacbfa8f..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol/CBORChainlink.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "CBORChainlink", - "sourceName": "@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0cc11b5be072f7d7cbc8fdc042eb6f7ea573a98370f597573bece0637c51ec564736f6c63430008020033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0cc11b5be072f7d7cbc8fdc042eb6f7ea573a98370f597573bece0637c51ec564736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.dbg.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.json b/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.json deleted file mode 100644 index 039147c2..00000000 --- a/artifacts/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol/ENSResolver.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ENSResolver", - "sourceName": "@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "node", - "type": "bytes32" - } - ], - "name": "addr", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.json b/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.json deleted file mode 100644 index bc02c18b..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol/BasicRiskpool.json +++ /dev/null @@ -1,1252 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BasicRiskpool", - "sourceName": "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "activeBundles", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "LogBasicRiskpoolBundlesAndPolicies", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "index", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maxAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "LogBasicRiskpoolCandidateBundleAmountCheck", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolBundleCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isMatching", - "type": "bool" - } - ], - "name": "LogRiskpoolBundleMatchesPolicy", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isSecured", - "type": "bool" - } - ], - "name": "LogRiskpoolCollateralLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "LogRiskpoolCollateralReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "riskpoolAddress", - "type": "address" - } - ], - "name": "LogRiskpoolCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolPayoutProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolPremiumProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_FILTER_DATA_STRUCTURE", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "FULL_COLLATERALIZATION_LEVEL", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "activeBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "bundle", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum IPolicy.ApplicationState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Application", - "name": "application", - "type": "tuple" - } - ], - "name": "bundleMatchesApplication", - "outputs": [ - { - "internalType": "bool", - "name": "isMatching", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "bundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "burnBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "closeBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "collateralizePolicy", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "initialAmount", - "type": "uint256" - } - ], - "name": "createBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "defundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "fundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getActiveBundleId", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getBundle", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCapacity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCapital", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getErc20Token", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFilterDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getFullCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaximumNumberOfActiveBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getSumOfSumInsuredCap", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalValueLocked", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getWallet", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "lockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPolicyPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPolicyPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "releasePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "name": "setMaximumNumberOfActiveBundles", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "unlockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.json b/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.json deleted file mode 100644 index 326bbbda..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/Component.sol/Component.json +++ /dev/null @@ -1,427 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Component", - "sourceName": "@etherisc/gif-interface/contracts/components/Component.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.json b/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.json deleted file mode 100644 index 1d0bd67f..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/IComponent.sol/IComponent.json +++ /dev/null @@ -1,228 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IComponent", - "sourceName": "@etherisc/gif-interface/contracts/components/IComponent.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.json b/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.json deleted file mode 100644 index 18fcfdc3..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/IOracle.sol/IOracle.json +++ /dev/null @@ -1,311 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IOracle", - "sourceName": "@etherisc/gif-interface/contracts/components/IOracle.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "oracleAddress", - "type": "address" - } - ], - "name": "LogOracleCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleProposed", - "type": "event" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "cancel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "input", - "type": "bytes" - } - ], - "name": "request", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.json b/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.json deleted file mode 100644 index defd7cef..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/IProduct.sol/IProduct.json +++ /dev/null @@ -1,371 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IProduct", - "sourceName": "@etherisc/gif-interface/contracts/components/IProduct.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "productAddress", - "type": "address" - } - ], - "name": "LogProductCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductProposed", - "type": "event" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getApplicationDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getClaimDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPayoutDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPolicyFlow", - "outputs": [ - { - "internalType": "address", - "name": "policyFlow", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRiskpoolId", - "outputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getToken", - "outputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "riskPoolCapacityCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.json b/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.json deleted file mode 100644 index 55be82d3..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/IRiskpool.sol/IRiskpool.json +++ /dev/null @@ -1,977 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IRiskpool", - "sourceName": "@etherisc/gif-interface/contracts/components/IRiskpool.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolBundleCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isMatching", - "type": "bool" - } - ], - "name": "LogRiskpoolBundleMatchesPolicy", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isSecured", - "type": "bool" - } - ], - "name": "LogRiskpoolCollateralLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "LogRiskpoolCollateralReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "riskpoolAddress", - "type": "address" - } - ], - "name": "LogRiskpoolCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolPayoutProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolPremiumProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolProposed", - "type": "event" - }, - { - "inputs": [], - "name": "activeBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "bundle", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum IPolicy.ApplicationState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Application", - "name": "application", - "type": "tuple" - } - ], - "name": "bundleMatchesApplication", - "outputs": [ - { - "internalType": "bool", - "name": "isMatching", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "bundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "burnBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "closeBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "collateralizePolicy", - "outputs": [ - { - "internalType": "bool", - "name": "isSecured", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "initialAmount", - "type": "uint256" - } - ], - "name": "createBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "defundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "fundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getActiveBundleId", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getBundle", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCapacity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCapital", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getErc20Token", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFilterDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFullCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaximumNumberOfActiveBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getSumOfSumInsuredCap", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalValueLocked", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getWallet", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "lockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPolicyPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPolicyPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "releasePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "name": "setMaximumNumberOfActiveBundles", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "unlockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.json b/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.json deleted file mode 100644 index 057e9b36..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/Oracle.sol/Oracle.json +++ /dev/null @@ -1,510 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Oracle", - "sourceName": "@etherisc/gif-interface/contracts/components/Oracle.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "oracleAddress", - "type": "address" - } - ], - "name": "LogOracleCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "cancel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "input", - "type": "bytes" - } - ], - "name": "request", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.json b/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.json deleted file mode 100644 index 7c6a3d2c..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/Product.sol/Product.json +++ /dev/null @@ -1,570 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Product", - "sourceName": "@etherisc/gif-interface/contracts/components/Product.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "productAddress", - "type": "address" - } - ], - "name": "LogProductCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getApplicationDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getClaimDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPayoutDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPolicyFlow", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRiskpoolId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "riskPoolCapacityCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.dbg.json b/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.json b/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.json deleted file mode 100644 index 33874590..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/components/Riskpool.sol/Riskpool.json +++ /dev/null @@ -1,1202 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Riskpool", - "sourceName": "@etherisc/gif-interface/contracts/components/Riskpool.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolBundleCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isMatching", - "type": "bool" - } - ], - "name": "LogRiskpoolBundleMatchesPolicy", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isSecured", - "type": "bool" - } - ], - "name": "LogRiskpoolCollateralLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "LogRiskpoolCollateralReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "riskpoolAddress", - "type": "address" - } - ], - "name": "LogRiskpoolCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolPayoutProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolPremiumProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_FILTER_DATA_STRUCTURE", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "FULL_COLLATERALIZATION_LEVEL", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "activeBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "bundle", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum IPolicy.ApplicationState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Application", - "name": "application", - "type": "tuple" - } - ], - "name": "bundleMatchesApplication", - "outputs": [ - { - "internalType": "bool", - "name": "isMatching", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "bundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "burnBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "closeBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "collateralizePolicy", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "initialAmount", - "type": "uint256" - } - ], - "name": "createBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "defundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "fundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getActiveBundleId", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getBundle", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCapacity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCapital", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getErc20Token", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFilterDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getFullCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaximumNumberOfActiveBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getSumOfSumInsuredCap", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalValueLocked", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getWallet", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "lockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPolicyPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPolicyPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "releasePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "name": "setMaximumNumberOfActiveBundles", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "unlockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.json b/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.json deleted file mode 100644 index 892f447e..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IAccess.sol/IAccess.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IAccess", - "sourceName": "@etherisc/gif-interface/contracts/modules/IAccess.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "addRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getDefaultAdminRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOracleProviderRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProductOwnerRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRiskpoolKeeperRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "invalidateRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.json b/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.json deleted file mode 100644 index 94d1efbb..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IBundle.sol/IBundle.json +++ /dev/null @@ -1,437 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IBundle", - "sourceName": "@etherisc/gif-interface/contracts/modules/IBundle.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "LogBundleCapitalProvided", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "LogBundleCapitalWithdrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogBundleCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogBundlePayoutProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "LogBundlePolicyCollateralized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "LogBundlePolicyReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IBundle.BundleState", - "name": "oldState", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IBundle.BundleState", - "name": "newState", - "type": "uint8" - } - ], - "name": "LogBundleStateChanged", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "close", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "collateralizePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner_", - "type": "address" - }, - { - "internalType": "uint256", - "name": "riskpoolId_", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "filter_", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount_", - "type": "uint256" - } - ], - "name": "create", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "defund", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "fund", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "lock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "releasePolicy", - "outputs": [ - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "unlock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.json b/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.json deleted file mode 100644 index 83e56a27..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol/IComponentEvents.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IComponentEvents", - "sourceName": "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.json b/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.json deleted file mode 100644 index 43ab10c6..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/ILicense.sol/ILicense.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ILicense", - "sourceName": "@etherisc/gif-interface/contracts/modules/ILicense.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - } - ], - "name": "getAuthorizationStatus", - "outputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "isAuthorized", - "type": "bool" - }, - { - "internalType": "address", - "name": "policyFlow", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.json b/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.json deleted file mode 100644 index 60e1a892..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IPolicy.sol/IPolicy.json +++ /dev/null @@ -1,712 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IPolicy", - "sourceName": "@etherisc/gif-interface/contracts/modules/IPolicy.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "LogApplicationCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogApplicationDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumAmountOld", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - } - ], - "name": "LogApplicationPremiumAdjusted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogApplicationRevoked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumInsuredAmountOld", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "LogApplicationSumInsuredAdjusted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogApplicationUnderwritten", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "LogClaimClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "confirmedAmount", - "type": "uint256" - } - ], - "name": "LogClaimConfirmed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - } - ], - "name": "LogClaimCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "LogClaimDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IPolicy.PolicyFlowState", - "name": "state", - "type": "uint8" - } - ], - "name": "LogMetadataCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IPolicy.PolicyFlowState", - "name": "state", - "type": "uint8" - } - ], - "name": "LogMetadataStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogPayoutCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "LogPayoutProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogPolicyClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogPolicyCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogPolicyExpired", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumExpectedAmountOld", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumExpectedAmount", - "type": "uint256" - } - ], - "name": "LogPolicyPremiumAdjusted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogPremiumCollected", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "expectedPremiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "adjustPremiumSumInsured", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "closeClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "closePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "collectPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "confirmedAmount", - "type": "uint256" - } - ], - "name": "confirmClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "createApplication", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "createClaim", - "outputs": [ - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "createPayout", - "outputs": [ - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "createPolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "createPolicyFlow", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "declineApplication", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "declineClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "expirePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "revokeApplication", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "underwriteApplication", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.json b/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.json deleted file mode 100644 index 3c1a3eaa..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IPool.sol/IPool.json +++ /dev/null @@ -1,267 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IPool", - "sourceName": "@etherisc/gif-interface/contracts/modules/IPool.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolCollateralReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolCollateralizationFailed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolCollateralizationSucceeded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "erc20Token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralizationLevel", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumOfSumInsuredCap", - "type": "uint256" - } - ], - "name": "LogRiskpoolRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumInsured", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateral", - "type": "uint256" - } - ], - "name": "LogRiskpoolRequiredCollateral", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "address", - "name": "erc20Token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "collateralizationLevel", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumOfSumInsuredCap", - "type": "uint256" - } - ], - "name": "registerRiskpool", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "release", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "setRiskpoolForProduct", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "underwrite", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.json b/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.json deleted file mode 100644 index 4faf4172..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IQuery.sol/IQuery.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IQuery", - "sourceName": "@etherisc/gif-interface/contracts/modules/IQuery.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "LogOracleCanceled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "responsibleOracleId", - "type": "uint256" - } - ], - "name": "LogOracleRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "responder", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "name": "LogOracleResponded", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "cancel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "input", - "type": "bytes" - }, - { - "internalType": "string", - "name": "callbackMethodName", - "type": "string" - }, - { - "internalType": "address", - "name": "callbackContractAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "responsibleOracleId", - "type": "uint256" - } - ], - "name": "request", - "outputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "responder", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "respond", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.json b/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.json deleted file mode 100644 index 3e11e848..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/IRegistry.sol/IRegistry.json +++ /dev/null @@ -1,271 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IRegistry", - "sourceName": "@etherisc/gif-interface/contracts/modules/IRegistry.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "release", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "contractName", - "type": "bytes32" - } - ], - "name": "LogContractDeregistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "release", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "contractName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isNew", - "type": "bool" - } - ], - "name": "LogContractRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "release", - "type": "bytes32" - } - ], - "name": "LogReleasePrepared", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "contractName", - "outputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "contracts", - "outputs": [ - { - "internalType": "uint256", - "name": "_numberOfContracts", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "deregister", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "deregisterInRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "ensureSender", - "outputs": [ - { - "internalType": "bool", - "name": "_senderMatches", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "getContract", - "outputs": [ - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "getContractInRelease", - "outputs": [ - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRelease", - "outputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_newRelease", - "type": "bytes32" - } - ], - "name": "prepareRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "name": "registerInRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.dbg.json b/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.json b/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.json deleted file mode 100644 index 8d0d469b..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/modules/ITreasury.sol/ITreasury.json +++ /dev/null @@ -1,819 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ITreasury", - "sourceName": "@etherisc/gif-interface/contracts/modules/ITreasury.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - } - ], - "name": "LogTreasuryCapitalFeesSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryCapitalProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryCapitalTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "instanceWalletAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryFeesTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "walletAddress", - "type": "address" - } - ], - "name": "LogTreasuryInstanceWalletSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryPayoutProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryPayoutTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - } - ], - "name": "LogTreasuryPremiumFeesSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryPremiumProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryPremiumTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "erc20Address", - "type": "address" - } - ], - "name": "LogTreasuryProductTokenSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "LogTreasuryResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "walletAddress", - "type": "address" - } - ], - "name": "LogTreasuryRiskpoolWalletSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "LogTreasurySuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryWithdrawalProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryWithdrawalTransferred", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - } - ], - "name": "createFeeSpecification", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "feeSpec", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getComponentToken", - "outputs": [ - { - "internalType": "contract IERC20", - "name": "token", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getFeeSpecification", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "feeSpecification", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFractionFullUnit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getInstanceWallet", - "outputs": [ - { - "internalType": "address", - "name": "instanceWalletAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getRiskpoolWallet", - "outputs": [ - { - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "capitalAmount", - "type": "uint256" - } - ], - "name": "processCapital", - "outputs": [ - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netCapitalAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [ - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPayoutAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPremium", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPremiumAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "processPremium", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPremiumAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processWithdrawal", - "outputs": [ - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "feeSpec", - "type": "tuple" - } - ], - "name": "setCapitalFees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instanceWalletAddress", - "type": "address" - } - ], - "name": "setInstanceWallet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "feeSpec", - "type": "tuple" - } - ], - "name": "setPremiumFees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "erc20Address", - "type": "address" - } - ], - "name": "setProductToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - } - ], - "name": "setRiskpoolWallet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.json b/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.json deleted file mode 100644 index 9d13e670..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol/IComponentOwnerService.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IComponentOwnerService", - "sourceName": "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "archive", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IComponent", - "name": "component", - "type": "address" - } - ], - "name": "propose", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.json b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.json deleted file mode 100644 index a9bd2a9b..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol/IInstanceOperatorService.json +++ /dev/null @@ -1,478 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IInstanceOperatorService", - "sourceName": "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "adjustStakingRequirements", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "archive", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - } - ], - "name": "createFeeSpecification", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "createRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "decline", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "contractName", - "type": "bytes32" - } - ], - "name": "deregister", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "contractName", - "type": "bytes32" - } - ], - "name": "deregisterInRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "invalidateRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "newRelease", - "type": "bytes32" - } - ], - "name": "prepareRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "contractName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "contractName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "contractAddress", - "type": "address" - } - ], - "name": "registerInRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "resume", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeTreasury", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "feeSpec", - "type": "tuple" - } - ], - "name": "setCapitalFees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint16", - "name": "componentType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "setDefaultStaking", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "walletAddress", - "type": "address" - } - ], - "name": "setInstanceWallet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "feeSpec", - "type": "tuple" - } - ], - "name": "setPremiumFees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "erc20Address", - "type": "address" - } - ], - "name": "setProductToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "walletAddress", - "type": "address" - } - ], - "name": "setRiskpoolWallet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "suspend", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendTreasury", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.json b/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.json deleted file mode 100644 index ca369446..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IInstanceService.sol/IInstanceService.json +++ /dev/null @@ -1,1140 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IInstanceService", - "sourceName": "@etherisc/gif-interface/contracts/services/IInstanceService.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "activeBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfActiveBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "bundles", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "claims", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfClaims", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "contractName", - "outputs": [ - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "contracts", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfContracts", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bundleIdx", - "type": "uint256" - } - ], - "name": "getActiveBundleId", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "getApplication", - "outputs": [ - { - "components": [ - { - "internalType": "enum IPolicy.ApplicationState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Application", - "name": "application", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "balanceAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "getBundle", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "bundle", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBundleToken", - "outputs": [ - { - "internalType": "contract IBundleToken", - "name": "token", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getCapacity", - "outputs": [ - { - "internalType": "uint256", - "name": "capacityAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getCapital", - "outputs": [ - { - "internalType": "uint256", - "name": "capitalAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getChainId", - "outputs": [ - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getChainName", - "outputs": [ - { - "internalType": "string", - "name": "chainName", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "getClaim", - "outputs": [ - { - "components": [ - { - "internalType": "enum IPolicy.ClaimState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paidAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Claim", - "name": "claim", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getComponent", - "outputs": [ - { - "internalType": "contract IComponent", - "name": "component", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "componentAddress", - "type": "address" - } - ], - "name": "getComponentId", - "outputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getComponentOwnerService", - "outputs": [ - { - "internalType": "contract IComponentOwnerService", - "name": "service", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getComponentState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "componentState", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getComponentToken", - "outputs": [ - { - "internalType": "contract IERC20", - "name": "token", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getComponentType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDefaultAdminRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFeeFractionFullUnit", - "outputs": [ - { - "internalType": "uint256", - "name": "fullUnit", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFullCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getInstanceId", - "outputs": [ - { - "internalType": "bytes32", - "name": "instanceId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getInstanceOperator", - "outputs": [ - { - "internalType": "address", - "name": "instanceOperator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getInstanceOperatorService", - "outputs": [ - { - "internalType": "contract IInstanceOperatorService", - "name": "service", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getInstanceWallet", - "outputs": [ - { - "internalType": "address", - "name": "walletAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getMaximumNumberOfActiveBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "getMetadata", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "enum IPolicy.PolicyFlowState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Metadata", - "name": "metadata", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOracleProviderRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOracleService", - "outputs": [ - { - "internalType": "contract IOracleService", - "name": "service", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "getPayout", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "enum IPolicy.PayoutState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Payout", - "name": "payout", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "getPolicy", - "outputs": [ - { - "components": [ - { - "internalType": "enum IPolicy.PolicyState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumExpectedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "premiumPaidAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "claimsCount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "openClaimsCount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutMaxAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Policy", - "name": "policy", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProductOwnerRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProductService", - "outputs": [ - { - "internalType": "contract IProductService", - "name": "service", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getRiskpool", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "address", - "name": "erc20Token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "collateralizationLevel", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumOfSumInsuredCap", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumOfSumInsuredAtRisk", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPool.Pool", - "name": "riskPool", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRiskpoolKeeperRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRiskpoolService", - "outputs": [ - { - "internalType": "contract IRiskpoolService", - "name": "service", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getRiskpoolWallet", - "outputs": [ - { - "internalType": "address", - "name": "walletAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getStakedAssets", - "outputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getStakingRequirements", - "outputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getTotalValueLocked", - "outputs": [ - { - "internalType": "uint256", - "name": "totalValueLockedAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTreasuryAddress", - "outputs": [ - { - "internalType": "address", - "name": "treasuryAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "roleIsAssigned", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oracles", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfOracles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "payouts", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfPayouts", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "processIds", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfProcessIds", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "products", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfProducts", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "riskpools", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfRiskpools", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "unburntBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfUnburntBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.json b/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.json deleted file mode 100644 index f873c318..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IOracleService.sol/IOracleService.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IOracleService", - "sourceName": "@etherisc/gif-interface/contracts/services/IOracleService.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "respond", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.json b/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.json deleted file mode 100644 index 2b9d1f7d..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IProductService.sol/IProductService.json +++ /dev/null @@ -1,381 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IProductService", - "sourceName": "@etherisc/gif-interface/contracts/services/IProductService.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "expectedPremiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "adjustPremiumSumInsured", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "cancelRequest", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "close", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "closeClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "collectPremium", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPremiumAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "confirmedAmount", - "type": "uint256" - } - ], - "name": "confirmClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "decline", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "declineClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "expire", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "metaData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "applicationData", - "type": "bytes" - } - ], - "name": "newApplication", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "newClaim", - "outputs": [ - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "newPayout", - "outputs": [ - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [ - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPayoutAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "string", - "name": "callbackMethodName", - "type": "string" - }, - { - "internalType": "address", - "name": "callbackContractAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "responsibleOracleId", - "type": "uint256" - } - ], - "name": "request", - "outputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "revoke", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "underwrite", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.dbg.json b/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.json b/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.json deleted file mode 100644 index d7606db3..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol/IRiskpoolService.json +++ /dev/null @@ -1,279 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IRiskpoolService", - "sourceName": "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "burnBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "closeBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "collateralizePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner_", - "type": "address" - }, - { - "internalType": "bytes", - "name": "filter_", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount_", - "type": "uint256" - } - ], - "name": "createBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "defundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "fundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "lockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "address", - "name": "erc20Token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "collateralization", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumOfSumInsuredCap", - "type": "uint256" - } - ], - "name": "registerRiskpool", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "releasePolicy", - "outputs": [ - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxNumberOfActiveBundles", - "type": "uint256" - } - ], - "name": "setMaximumNumberOfActiveBundles", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "unlockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.dbg.json b/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.json b/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.json deleted file mode 100644 index f2ccef85..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol/ICoreProxy.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ICoreProxy", - "sourceName": "@etherisc/gif-interface/contracts/shared/ICoreProxy.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "oldImplementation", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newImplemntation", - "type": "address" - } - ], - "name": "LogCoreContractUpgraded", - "type": "event" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.dbg.json b/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.json b/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.json deleted file mode 100644 index 2e182b87..00000000 --- a/artifacts/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol/IBundleToken.json +++ /dev/null @@ -1,410 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IBundleToken", - "sourceName": "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "LogBundleTokenBurned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "tokenOwner", - "type": "address" - } - ], - "name": "LogBundleTokenMinted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "burned", - "outputs": [ - { - "internalType": "bool", - "name": "isBurned", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "exists", - "outputs": [ - { - "internalType": "bool", - "name": "doesExist", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getBundleId", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "_approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenCount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json b/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json b/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json deleted file mode 100644 index 17181da3..00000000 --- a/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "AccessControl", - "sourceName": "@openzeppelin/contracts/access/AccessControl.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.dbg.json b/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.json b/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.json deleted file mode 100644 index 480660e3..00000000 --- a/artifacts/@openzeppelin/contracts/access/AccessControlEnumerable.sol/AccessControlEnumerable.json +++ /dev/null @@ -1,258 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "AccessControlEnumerable", - "sourceName": "@openzeppelin/contracts/access/AccessControlEnumerable.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json b/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json b/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json deleted file mode 100644 index 0e26587c..00000000 --- a/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +++ /dev/null @@ -1,183 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IAccessControl", - "sourceName": "@openzeppelin/contracts/access/IAccessControl.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.dbg.json b/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.json b/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.json deleted file mode 100644 index 4d09b9f3..00000000 --- a/artifacts/@openzeppelin/contracts/access/IAccessControlEnumerable.sol/IAccessControlEnumerable.json +++ /dev/null @@ -1,226 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IAccessControlEnumerable", - "sourceName": "@openzeppelin/contracts/access/IAccessControlEnumerable.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json b/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json b/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json deleted file mode 100644 index 33254f2e..00000000 --- a/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Ownable", - "sourceName": "@openzeppelin/contracts/access/Ownable.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json b/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json deleted file mode 100644 index e9576bf3..00000000 --- a/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC1822Proxiable", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC1822.sol", - "abi": [ - { - "inputs": [], - "name": "proxiableUUID", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json deleted file mode 100644 index 1d0a3335..00000000 --- a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC1967Proxy", - "sourceName": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_logic", - "type": "address" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beacon", - "type": "address" - } - ], - "name": "BeaconUpgraded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x608060405260405161071c38038061071c833981016040819052610022916102d2565b61002e82826000610035565b505061042c565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d083836040518060600160405280602781526020016106f5602791396101a9565b9392505050565b6100ea8161028760201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61029660201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606001600160a01b0384163b6102115760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610148565b600080856001600160a01b03168560405161022c919061039b565b600060405180830381855af49150503d8060008114610267576040519150601f19603f3d011682016040523d82523d6000602084013e61026c565b606091505b50909250905061027d828286610299565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a85750816100d0565b8251156102b85782518084602001fd5b8160405162461bcd60e51b815260040161014891906103b7565b600080604083850312156102e4578182fd5b82516001600160a01b03811681146102fa578283fd5b60208401519092506001600160401b0380821115610316578283fd5b818501915085601f830112610329578283fd5b81518181111561033b5761033b610416565b604051601f8201601f19908116603f0116810190838211818310171561036357610363610416565b8160405282815288602084870101111561037b578586fd5b61038c8360208301602088016103ea565b80955050505050509250929050565b600082516103ad8184602087016103ea565b9190910192915050565b60006020825282518060208401526103d68160408501602087016103ea565b601f01601f19169190910160400192915050565b60005b838110156104055781810151838201526020016103ed565b838111156100645750506000910152565b634e487b7160e01b600052604160045260246000fd5b6102ba8061043b6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b600060208252825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122055fbdb05f8012342ff5abfb4313f870083fb64d5b287fdd8f992499369cccd7764736f6c63430008020033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "deployedBytecode": "0x60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b600060208252825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122055fbdb05f8012342ff5abfb4313f870083fb64d5b287fdd8f992499369cccd7764736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json b/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json deleted file mode 100644 index 11a1efea..00000000 --- a/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC1967Upgrade", - "sourceName": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beacon", - "type": "address" - } - ], - "name": "BeaconUpgraded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json b/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json b/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json deleted file mode 100644 index 89b7ade9..00000000 --- a/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Proxy", - "sourceName": "@openzeppelin/contracts/proxy/Proxy.sol", - "abi": [ - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json b/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json b/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json deleted file mode 100644 index 9ff0f137..00000000 --- a/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IBeacon", - "sourceName": "@openzeppelin/contracts/proxy/beacon/IBeacon.sol", - "abi": [ - { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json b/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json b/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json deleted file mode 100644 index 8d7c499d..00000000 --- a/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Initializable", - "sourceName": "@openzeppelin/contracts/proxy/utils/Initializable.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json b/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.json b/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.json deleted file mode 100644 index c930cfec..00000000 --- a/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Pausable", - "sourceName": "@openzeppelin/contracts/security/Pausable.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json b/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json deleted file mode 100644 index 6a90f49a..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +++ /dev/null @@ -1,297 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000b0e38038062000b0e8339810160408190526200003491620001c1565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b6002810460018216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610883806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b4114610149578063a457c2d714610151578063a9059cbb14610164578063dd62ed3e14610177576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b661018a565b6040516100c3919061079b565b60405180910390f35b6100df6100da366004610772565b61021c565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610737565b610234565b604051601281526020016100c3565b6100df610131366004610772565b610258565b6100f36101443660046106e4565b61027a565b6100b6610299565b6100df61015f366004610772565b6102a8565b6100df610172366004610772565b610328565b6100f3610185366004610705565b610336565b60606003805461019990610812565b80601f01602080910402602001604051908101604052809291908181526020018280546101c590610812565b80156102125780601f106101e757610100808354040283529160200191610212565b820191906000526020600020905b8154815290600101906020018083116101f557829003601f168201915b5050505050905090565b60003361022a818585610361565b5060019392505050565b600033610242858285610485565b61024d8585856104ff565b506001949350505050565b60003361022a81858561026b8383610336565b61027591906107ee565b610361565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461019990610812565b600033816102b68286610336565b90508381101561031b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61024d8286868403610361565b60003361022a8185856104ff565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103c35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610312565b6001600160a01b0382166104245760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610312565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104918484610336565b905060001981146104f957818110156104ec5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610312565b6104f98484848403610361565b50505050565b6001600160a01b0383166105635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610312565b6001600160a01b0382166105c55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610312565b6001600160a01b0383166000908152602081905260409020548181101561063d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610312565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106749084906107ee565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c091815260200190565b60405180910390a36104f9565b80356001600160a01b038116811461029457600080fd5b6000602082840312156106f5578081fd5b6106fe826106cd565b9392505050565b60008060408385031215610717578081fd5b610720836106cd565b915061072e602084016106cd565b90509250929050565b60008060006060848603121561074b578081fd5b610754846106cd565b9250610762602085016106cd565b9150604084013590509250925092565b60008060408385031215610784578182fd5b61078d836106cd565b946020939093013593505050565b6000602080835283518082850152825b818110156107c7578581018301518582016040015282016107ab565b818111156107d85783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561080d57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061082657607f821691505b6020821081141561084757634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122002edc58f2c0158e1ceaba74717f5f4f309ad6aaf007f846f016f8485f4f0fc4b64736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b4114610149578063a457c2d714610151578063a9059cbb14610164578063dd62ed3e14610177576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b661018a565b6040516100c3919061079b565b60405180910390f35b6100df6100da366004610772565b61021c565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610737565b610234565b604051601281526020016100c3565b6100df610131366004610772565b610258565b6100f36101443660046106e4565b61027a565b6100b6610299565b6100df61015f366004610772565b6102a8565b6100df610172366004610772565b610328565b6100f3610185366004610705565b610336565b60606003805461019990610812565b80601f01602080910402602001604051908101604052809291908181526020018280546101c590610812565b80156102125780601f106101e757610100808354040283529160200191610212565b820191906000526020600020905b8154815290600101906020018083116101f557829003601f168201915b5050505050905090565b60003361022a818585610361565b5060019392505050565b600033610242858285610485565b61024d8585856104ff565b506001949350505050565b60003361022a81858561026b8383610336565b61027591906107ee565b610361565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461019990610812565b600033816102b68286610336565b90508381101561031b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61024d8286868403610361565b60003361022a8185856104ff565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103c35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610312565b6001600160a01b0382166104245760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610312565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104918484610336565b905060001981146104f957818110156104ec5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610312565b6104f98484848403610361565b50505050565b6001600160a01b0383166105635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610312565b6001600160a01b0382166105c55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610312565b6001600160a01b0383166000908152602081905260409020548181101561063d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610312565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106749084906107ee565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c091815260200190565b60405180910390a36104f9565b80356001600160a01b038116811461029457600080fd5b6000602082840312156106f5578081fd5b6106fe826106cd565b9392505050565b60008060408385031215610717578081fd5b610720836106cd565b915061072e602084016106cd565b90509250929050565b60008060006060848603121561074b578081fd5b610754846106cd565b9250610762602085016106cd565b9150604084013590509250925092565b60008060408385031215610784578182fd5b61078d836106cd565b946020939093013593505050565b6000602080835283518082850152825b818110156107c7578581018301518582016040015282016107ab565b818111156107d85783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561080d57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061082657607f821691505b6020821081141561084757634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122002edc58f2c0158e1ceaba74717f5f4f309ad6aaf007f846f016f8485f4f0fc4b64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json b/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json deleted file mode 100644 index 76b073c0..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json deleted file mode 100644 index 0436b925..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20Metadata", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json b/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json deleted file mode 100644 index 483a3e1a..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol/IERC20Permit.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20Permit", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", - "abi": [ - { - "inputs": [], - "name": "DOMAIN_SEPARATOR", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "nonces", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint8", - "name": "v", - "type": "uint8" - }, - { - "internalType": "bytes32", - "name": "r", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "permit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json b/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json deleted file mode 100644 index 13704c2f..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SafeERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f2265fee8809f20a3a7d891c578673c85c3f0b5665433b90b90fcc918d4e46b764736f6c63430008020033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f2265fee8809f20a3a7d891c578673c85c3f0b5665433b90b90fcc918d4e46b764736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json b/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json deleted file mode 100644 index 622e2bd0..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +++ /dev/null @@ -1,357 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC721", - "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620013c4380380620013c48339810160408190526200003491620001c1565b81516200004990600090602085019062000068565b5080516200005f90600190602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b6002810460018216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b611139806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610e37565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190610f1f565b61012461011f366004610e6f565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610e0e565b610335565b005b61014f61015f366004610cc4565b610450565b61014f610172366004610cc4565b610481565b610124610185366004610e6f565b61049c565b61019d610198366004610c78565b6104fc565b6040519081526020016100f3565b610104610582565b61014f6101c1366004610dd4565b610591565b61014f6101d4366004610cff565b6105a0565b6101046101e7366004610e6f565b6105d8565b6100e76101fa366004610c92565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606000805461028b90611041565b80601f01602080910402602001604051908101604052809291908181526020018280546102b790611041565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b60006103198261064c565b506000908152600460205260409020546001600160a01b031690565b60006103408261049c565b9050806001600160a01b0316836001600160a01b031614156103b35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103cf57506103cf81336101fa565b6104415760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016103aa565b61044b83836106ae565b505050565b61045a338261071c565b6104765760405162461bcd60e51b81526004016103aa90610f84565b61044b83838361079b565b61044b838383604051806020016040528060008152506105a0565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b60006001600160a01b0382166105665760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103aa565b506001600160a01b031660009081526003602052604090205490565b60606001805461028b90611041565b61059c338383610937565b5050565b6105aa338361071c565b6105c65760405162461bcd60e51b81526004016103aa90610f84565b6105d284848484610a06565b50505050565b60606105e38261064c565b60006105fa60408051602081019091526000815290565b9050600081511161061a5760405180602001604052806000815250610645565b8061062484610a39565b604051602001610635929190610eb3565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166106ab5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e38261049c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806107288361049c565b9050806001600160a01b0316846001600160a01b0316148061076f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107935750836001600160a01b03166107888461030e565b6001600160a01b0316145b949350505050565b826001600160a01b03166107ae8261049c565b6001600160a01b0316146108125760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103aa565b6001600160a01b0382166108745760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103aa565b61087f6000826106ae565b6001600160a01b03831660009081526003602052604081208054600192906108a8908490610ffe565b90915550506001600160a01b03821660009081526003602052604081208054600192906108d6908490610fd2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a461044b565b816001600160a01b0316836001600160a01b031614156109995760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103aa565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a1184848461079b565b610a1d84848484610b54565b6105d25760405162461bcd60e51b81526004016103aa90610f32565b606081610a5e57506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610a885780610a728161107c565b9150610a819050600a83610fea565b9150610a62565b60008167ffffffffffffffff811115610ab157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610adb576020820181803683370190505b5090505b841561079357610af0600183610ffe565b9150610afd600a86611097565b610b08906030610fd2565b60f81b818381518110610b2b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610b4d600a86610fea565b9450610adf565b60006001600160a01b0384163b15610c5657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b98903390899088908890600401610ee2565b602060405180830381600087803b158015610bb257600080fd5b505af1925050508015610be2575060408051601f3d908101601f19168201909252610bdf91810190610e53565b60015b610c3c573d808015610c10576040519150601f19603f3d011682016040523d82523d6000602084013e610c15565b606091505b508051610c345760405162461bcd60e51b81526004016103aa90610f32565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610793565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610c89578081fd5b61064582610c61565b60008060408385031215610ca4578081fd5b610cad83610c61565b9150610cbb60208401610c61565b90509250929050565b600080600060608486031215610cd8578081fd5b610ce184610c61565b9250610cef60208501610c61565b9150604084013590509250925092565b60008060008060808587031215610d14578081fd5b610d1d85610c61565b9350610d2b60208601610c61565b925060408501359150606085013567ffffffffffffffff80821115610d4e578283fd5b818701915087601f830112610d61578283fd5b813581811115610d7357610d736110d7565b604051601f8201601f19908116603f01168101908382118183101715610d9b57610d9b6110d7565b816040528281528a6020848701011115610db3578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610de6578182fd5b610def83610c61565b915060208301358015158114610e03578182fd5b809150509250929050565b60008060408385031215610e20578182fd5b610e2983610c61565b946020939093013593505050565b600060208284031215610e48578081fd5b8135610645816110ed565b600060208284031215610e64578081fd5b8151610645816110ed565b600060208284031215610e80578081fd5b5035919050565b60008151808452610e9f816020860160208601611015565b601f01601f19169290920160200192915050565b60008351610ec5818460208801611015565b835190830190610ed9818360208801611015565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1590830184610e87565b9695505050505050565b6000602082526106456020830184610e87565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008219821115610fe557610fe56110ab565b500190565b600082610ff957610ff96110c1565b500490565b600082821015611010576110106110ab565b500390565b60005b83811015611030578181015183820152602001611018565b838111156105d25750506000910152565b60028104600182168061105557607f821691505b6020821081141561107657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611090576110906110ab565b5060010190565b6000826110a6576110a66110c1565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146106ab57600080fdfea2646970667358221220c015f1e648d0c91113d9455457bb32b225c6c39cb166f630dc2dbc2e5f163c5564736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610e37565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190610f1f565b61012461011f366004610e6f565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610e0e565b610335565b005b61014f61015f366004610cc4565b610450565b61014f610172366004610cc4565b610481565b610124610185366004610e6f565b61049c565b61019d610198366004610c78565b6104fc565b6040519081526020016100f3565b610104610582565b61014f6101c1366004610dd4565b610591565b61014f6101d4366004610cff565b6105a0565b6101046101e7366004610e6f565b6105d8565b6100e76101fa366004610c92565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606000805461028b90611041565b80601f01602080910402602001604051908101604052809291908181526020018280546102b790611041565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b60006103198261064c565b506000908152600460205260409020546001600160a01b031690565b60006103408261049c565b9050806001600160a01b0316836001600160a01b031614156103b35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103cf57506103cf81336101fa565b6104415760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016103aa565b61044b83836106ae565b505050565b61045a338261071c565b6104765760405162461bcd60e51b81526004016103aa90610f84565b61044b83838361079b565b61044b838383604051806020016040528060008152506105a0565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b60006001600160a01b0382166105665760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103aa565b506001600160a01b031660009081526003602052604090205490565b60606001805461028b90611041565b61059c338383610937565b5050565b6105aa338361071c565b6105c65760405162461bcd60e51b81526004016103aa90610f84565b6105d284848484610a06565b50505050565b60606105e38261064c565b60006105fa60408051602081019091526000815290565b9050600081511161061a5760405180602001604052806000815250610645565b8061062484610a39565b604051602001610635929190610eb3565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166106ab5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e38261049c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806107288361049c565b9050806001600160a01b0316846001600160a01b0316148061076f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107935750836001600160a01b03166107888461030e565b6001600160a01b0316145b949350505050565b826001600160a01b03166107ae8261049c565b6001600160a01b0316146108125760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103aa565b6001600160a01b0382166108745760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103aa565b61087f6000826106ae565b6001600160a01b03831660009081526003602052604081208054600192906108a8908490610ffe565b90915550506001600160a01b03821660009081526003602052604081208054600192906108d6908490610fd2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a461044b565b816001600160a01b0316836001600160a01b031614156109995760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103aa565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a1184848461079b565b610a1d84848484610b54565b6105d25760405162461bcd60e51b81526004016103aa90610f32565b606081610a5e57506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610a885780610a728161107c565b9150610a819050600a83610fea565b9150610a62565b60008167ffffffffffffffff811115610ab157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610adb576020820181803683370190505b5090505b841561079357610af0600183610ffe565b9150610afd600a86611097565b610b08906030610fd2565b60f81b818381518110610b2b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610b4d600a86610fea565b9450610adf565b60006001600160a01b0384163b15610c5657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b98903390899088908890600401610ee2565b602060405180830381600087803b158015610bb257600080fd5b505af1925050508015610be2575060408051601f3d908101601f19168201909252610bdf91810190610e53565b60015b610c3c573d808015610c10576040519150601f19603f3d011682016040523d82523d6000602084013e610c15565b606091505b508051610c345760405162461bcd60e51b81526004016103aa90610f32565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610793565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610c89578081fd5b61064582610c61565b60008060408385031215610ca4578081fd5b610cad83610c61565b9150610cbb60208401610c61565b90509250929050565b600080600060608486031215610cd8578081fd5b610ce184610c61565b9250610cef60208501610c61565b9150604084013590509250925092565b60008060008060808587031215610d14578081fd5b610d1d85610c61565b9350610d2b60208601610c61565b925060408501359150606085013567ffffffffffffffff80821115610d4e578283fd5b818701915087601f830112610d61578283fd5b813581811115610d7357610d736110d7565b604051601f8201601f19908116603f01168101908382118183101715610d9b57610d9b6110d7565b816040528281528a6020848701011115610db3578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610de6578182fd5b610def83610c61565b915060208301358015158114610e03578182fd5b809150509250929050565b60008060408385031215610e20578182fd5b610e2983610c61565b946020939093013593505050565b600060208284031215610e48578081fd5b8135610645816110ed565b600060208284031215610e64578081fd5b8151610645816110ed565b600060208284031215610e80578081fd5b5035919050565b60008151808452610e9f816020860160208601611015565b601f01601f19169290920160200192915050565b60008351610ec5818460208801611015565b835190830190610ed9818360208801611015565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1590830184610e87565b9695505050505050565b6000602082526106456020830184610e87565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008219821115610fe557610fe56110ab565b500190565b600082610ff957610ff96110c1565b500490565b600082821015611010576110106110ab565b500390565b60005b83811015611030578181015183820152602001611018565b838111156105d25750506000910152565b60028104600182168061105557607f821691505b6020821081141561107657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611090576110906110ab565b5060010190565b6000826110a6576110a66110c1565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146106ab57600080fdfea2646970667358221220c015f1e648d0c91113d9455457bb32b225c6c39cb166f630dc2dbc2e5f163c5564736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json deleted file mode 100644 index 3f0fc3af..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +++ /dev/null @@ -1,296 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "_approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json b/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json deleted file mode 100644 index e91c7b08..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721Receiver", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json deleted file mode 100644 index f80371f9..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json b/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json deleted file mode 100644 index 3fe38668..00000000 --- a/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json +++ /dev/null @@ -1,341 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721Metadata", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "_approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json b/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json b/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json deleted file mode 100644 index 8d82d360..00000000 --- a/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Address", - "sourceName": "@openzeppelin/contracts/utils/Address.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200fa1e693094ebf84cad290be5d43cf4715f087d620c601634c4648a02e72ace864736f6c63430008020033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200fa1e693094ebf84cad290be5d43cf4715f087d620c601634c4648a02e72ace864736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json b/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json b/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json deleted file mode 100644 index 8fe86fc7..00000000 --- a/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Context", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "abi": [], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json b/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json b/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json deleted file mode 100644 index bb66c4f5..00000000 --- a/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "StorageSlot", - "sourceName": "@openzeppelin/contracts/utils/StorageSlot.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220548b09ac82e45b33b1735c483f99cdd694f65e585c1b1c385f7804aee5ecef8064736f6c63430008020033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220548b09ac82e45b33b1735c483f99cdd694f65e585c1b1c385f7804aee5ecef8064736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json b/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json deleted file mode 100644 index 76297600..00000000 --- a/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Strings", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202855554d9d2f6e99da4b2b0abb5e45eda5c155eb156924975fd14aa04152e65964736f6c63430008020033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202855554d9d2f6e99da4b2b0abb5e45eda5c155eb156924975fd14aa04152e65964736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json b/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json b/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json deleted file mode 100644 index 1304472c..00000000 --- a/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC165", - "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json b/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json b/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json deleted file mode 100644 index ff87f91e..00000000 --- a/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC165", - "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json b/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json deleted file mode 100644 index f31d9de5..00000000 --- a/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json b/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json deleted file mode 100644 index 7f55d076..00000000 --- a/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "EnumerableSet", - "sourceName": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f5d74db21ef8a5bf17d7feea4a3de1c4cbcd77c6f2ba54e1031ce853bf59487f64736f6c63430008020033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f5d74db21ef8a5bf17d7feea4a3de1c4cbcd77c6f2ba54e1031ce853bf59487f64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/build-info/599ab32d9f05fdb89405f0e2d60efa8c.json b/artifacts/build-info/599ab32d9f05fdb89405f0e2d60efa8c.json deleted file mode 100644 index 931587b6..00000000 --- a/artifacts/build-info/599ab32d9f05fdb89405f0e2d60efa8c.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"599ab32d9f05fdb89405f0e2d60efa8c","_format":"hh-sol-build-info-1","solcVersion":"0.8.2","solcLongVersion":"0.8.2+commit.661d1103","input":{"language":"Solidity","sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {CBORChainlink} from \"./vendor/CBORChainlink.sol\";\nimport {BufferChainlink} from \"./vendor/BufferChainlink.sol\";\n\n/**\n * @title Library for common Chainlink functions\n * @dev Uses imported CBOR library for encoding to buffer\n */\nlibrary Chainlink {\n uint256 internal constant defaultBufferSize = 256; // solhint-disable-line const-name-snakecase\n\n using CBORChainlink for BufferChainlink.buffer;\n\n struct Request {\n bytes32 id;\n address callbackAddress;\n bytes4 callbackFunctionId;\n uint256 nonce;\n BufferChainlink.buffer buf;\n }\n\n /**\n * @notice Initializes a Chainlink request\n * @dev Sets the ID, callback address, and callback function signature on the request\n * @param self The uninitialized request\n * @param jobId The Job Specification ID\n * @param callbackAddr The callback address\n * @param callbackFunc The callback function signature\n * @return The initialized request\n */\n function initialize(\n Request memory self,\n bytes32 jobId,\n address callbackAddr,\n bytes4 callbackFunc\n ) internal pure returns (Chainlink.Request memory) {\n BufferChainlink.init(self.buf, defaultBufferSize);\n self.id = jobId;\n self.callbackAddress = callbackAddr;\n self.callbackFunctionId = callbackFunc;\n return self;\n }\n\n /**\n * @notice Sets the data for the buffer without encoding CBOR on-chain\n * @dev CBOR can be closed with curly-brackets {} or they can be left off\n * @param self The initialized request\n * @param data The CBOR data\n */\n function setBuffer(Request memory self, bytes memory data) internal pure {\n BufferChainlink.init(self.buf, data.length);\n BufferChainlink.append(self.buf, data);\n }\n\n /**\n * @notice Adds a string value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The string value to add\n */\n function add(\n Request memory self,\n string memory key,\n string memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeString(value);\n }\n\n /**\n * @notice Adds a bytes value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The bytes value to add\n */\n function addBytes(\n Request memory self,\n string memory key,\n bytes memory value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeBytes(value);\n }\n\n /**\n * @notice Adds a int256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The int256 value to add\n */\n function addInt(\n Request memory self,\n string memory key,\n int256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeInt(value);\n }\n\n /**\n * @notice Adds a uint256 value to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param value The uint256 value to add\n */\n function addUint(\n Request memory self,\n string memory key,\n uint256 value\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.encodeUInt(value);\n }\n\n /**\n * @notice Adds an array of strings to the request with a given key name\n * @param self The initialized request\n * @param key The name of the key\n * @param values The array of string values to add\n */\n function addStringArray(\n Request memory self,\n string memory key,\n string[] memory values\n ) internal pure {\n self.buf.encodeString(key);\n self.buf.startArray();\n for (uint256 i = 0; i < values.length; i++) {\n self.buf.encodeString(values[i]);\n }\n self.buf.endSequence();\n }\n}\n"},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./Chainlink.sol\";\nimport \"./interfaces/ENSInterface.sol\";\nimport \"./interfaces/LinkTokenInterface.sol\";\nimport \"./interfaces/ChainlinkRequestInterface.sol\";\nimport \"./interfaces/OperatorInterface.sol\";\nimport \"./interfaces/PointerInterface.sol\";\nimport {ENSResolver as ENSResolver_Chainlink} from \"./vendor/ENSResolver.sol\";\n\n/**\n * @title The ChainlinkClient contract\n * @notice Contract writers can inherit this contract in order to create requests for the\n * Chainlink network\n */\nabstract contract ChainlinkClient {\n using Chainlink for Chainlink.Request;\n\n uint256 internal constant LINK_DIVISIBILITY = 10**18;\n uint256 private constant AMOUNT_OVERRIDE = 0;\n address private constant SENDER_OVERRIDE = address(0);\n uint256 private constant ORACLE_ARGS_VERSION = 1;\n uint256 private constant OPERATOR_ARGS_VERSION = 2;\n bytes32 private constant ENS_TOKEN_SUBNAME = keccak256(\"link\");\n bytes32 private constant ENS_ORACLE_SUBNAME = keccak256(\"oracle\");\n address private constant LINK_TOKEN_POINTER = 0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571;\n\n ENSInterface private s_ens;\n bytes32 private s_ensNode;\n LinkTokenInterface private s_link;\n OperatorInterface private s_oracle;\n uint256 private s_requestCount = 1;\n mapping(bytes32 => address) private s_pendingRequests;\n\n event ChainlinkRequested(bytes32 indexed id);\n event ChainlinkFulfilled(bytes32 indexed id);\n event ChainlinkCancelled(bytes32 indexed id);\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackAddr address to operate the callback on\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildChainlinkRequest(\n bytes32 specId,\n address callbackAddr,\n bytes4 callbackFunctionSignature\n ) internal pure returns (Chainlink.Request memory) {\n Chainlink.Request memory req;\n return req.initialize(specId, callbackAddr, callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a request that can hold additional parameters\n * @param specId The Job Specification ID that the request will be created for\n * @param callbackFunctionSignature function signature to use for the callback\n * @return A Chainlink Request struct in memory\n */\n function buildOperatorRequest(bytes32 specId, bytes4 callbackFunctionSignature)\n internal\n view\n returns (Chainlink.Request memory)\n {\n Chainlink.Request memory req;\n return req.initialize(specId, address(this), callbackFunctionSignature);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev Calls `chainlinkRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendChainlinkRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendChainlinkRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n ChainlinkRequestInterface.oracleRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n address(this),\n req.callbackFunctionId,\n nonce,\n ORACLE_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Creates a Chainlink request to the stored oracle address\n * @dev This function supports multi-word response\n * @dev Calls `sendOperatorRequestTo` with the stored oracle address\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequest(Chainlink.Request memory req, uint256 payment) internal returns (bytes32) {\n return sendOperatorRequestTo(address(s_oracle), req, payment);\n }\n\n /**\n * @notice Creates a Chainlink request to the specified oracle address\n * @dev This function supports multi-word response\n * @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n * send LINK which creates a request on the target oracle contract.\n * Emits ChainlinkRequested event.\n * @param oracleAddress The address of the oracle for the request\n * @param req The initialized Chainlink Request\n * @param payment The amount of LINK to send for the request\n * @return requestId The request ID\n */\n function sendOperatorRequestTo(\n address oracleAddress,\n Chainlink.Request memory req,\n uint256 payment\n ) internal returns (bytes32 requestId) {\n uint256 nonce = s_requestCount;\n s_requestCount = nonce + 1;\n bytes memory encodedRequest = abi.encodeWithSelector(\n OperatorInterface.operatorRequest.selector,\n SENDER_OVERRIDE, // Sender value - overridden by onTokenTransfer by the requesting contract's address\n AMOUNT_OVERRIDE, // Amount value - overridden by onTokenTransfer by the actual amount of LINK sent\n req.id,\n req.callbackFunctionId,\n nonce,\n OPERATOR_ARGS_VERSION,\n req.buf.buf\n );\n return _rawRequest(oracleAddress, nonce, payment, encodedRequest);\n }\n\n /**\n * @notice Make a request to an oracle\n * @param oracleAddress The address of the oracle for the request\n * @param nonce used to generate the request ID\n * @param payment The amount of LINK to send for the request\n * @param encodedRequest data encoded for request type specific format\n * @return requestId The request ID\n */\n function _rawRequest(\n address oracleAddress,\n uint256 nonce,\n uint256 payment,\n bytes memory encodedRequest\n ) private returns (bytes32 requestId) {\n requestId = keccak256(abi.encodePacked(this, nonce));\n s_pendingRequests[requestId] = oracleAddress;\n emit ChainlinkRequested(requestId);\n require(s_link.transferAndCall(oracleAddress, payment, encodedRequest), \"unable to transferAndCall to oracle\");\n }\n\n /**\n * @notice Allows a request to be cancelled if it has not been fulfilled\n * @dev Requires keeping track of the expiration value emitted from the oracle contract.\n * Deletes the request from the `pendingRequests` mapping.\n * Emits ChainlinkCancelled event.\n * @param requestId The request ID\n * @param payment The amount of LINK sent for the request\n * @param callbackFunc The callback function specified for the request\n * @param expiration The time of the expiration for the request\n */\n function cancelChainlinkRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunc,\n uint256 expiration\n ) internal {\n OperatorInterface requested = OperatorInterface(s_pendingRequests[requestId]);\n delete s_pendingRequests[requestId];\n emit ChainlinkCancelled(requestId);\n requested.cancelOracleRequest(requestId, payment, callbackFunc, expiration);\n }\n\n /**\n * @notice the next request count to be used in generating a nonce\n * @dev starts at 1 in order to ensure consistent gas cost\n * @return returns the next request count to be used in a nonce\n */\n function getNextRequestCount() internal view returns (uint256) {\n return s_requestCount;\n }\n\n /**\n * @notice Sets the stored oracle address\n * @param oracleAddress The address of the oracle contract\n */\n function setChainlinkOracle(address oracleAddress) internal {\n s_oracle = OperatorInterface(oracleAddress);\n }\n\n /**\n * @notice Sets the LINK token address\n * @param linkAddress The address of the LINK token contract\n */\n function setChainlinkToken(address linkAddress) internal {\n s_link = LinkTokenInterface(linkAddress);\n }\n\n /**\n * @notice Sets the Chainlink token address for the public\n * network as given by the Pointer contract\n */\n function setPublicChainlinkToken() internal {\n setChainlinkToken(PointerInterface(LINK_TOKEN_POINTER).getAddress());\n }\n\n /**\n * @notice Retrieves the stored address of the LINK token\n * @return The address of the LINK token\n */\n function chainlinkTokenAddress() internal view returns (address) {\n return address(s_link);\n }\n\n /**\n * @notice Retrieves the stored address of the oracle contract\n * @return The address of the oracle contract\n */\n function chainlinkOracleAddress() internal view returns (address) {\n return address(s_oracle);\n }\n\n /**\n * @notice Allows for a request which was created on another contract to be fulfilled\n * on this contract\n * @param oracleAddress The address of the oracle contract that will fulfill the request\n * @param requestId The request ID used for the response\n */\n function addChainlinkExternalRequest(address oracleAddress, bytes32 requestId) internal notPendingRequest(requestId) {\n s_pendingRequests[requestId] = oracleAddress;\n }\n\n /**\n * @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n * @dev Accounts for subnodes having different resolvers\n * @param ensAddress The address of the ENS contract\n * @param node The ENS node hash\n */\n function useChainlinkWithENS(address ensAddress, bytes32 node) internal {\n s_ens = ENSInterface(ensAddress);\n s_ensNode = node;\n bytes32 linkSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_TOKEN_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(linkSubnode));\n setChainlinkToken(resolver.addr(linkSubnode));\n updateChainlinkOracleWithENS();\n }\n\n /**\n * @notice Sets the stored oracle contract with the address resolved by ENS\n * @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously\n */\n function updateChainlinkOracleWithENS() internal {\n bytes32 oracleSubnode = keccak256(abi.encodePacked(s_ensNode, ENS_ORACLE_SUBNAME));\n ENSResolver_Chainlink resolver = ENSResolver_Chainlink(s_ens.resolver(oracleSubnode));\n setChainlinkOracle(resolver.addr(oracleSubnode));\n }\n\n /**\n * @notice Ensures that the fulfillment is valid for this contract\n * @dev Use if the contract developer prefers methods instead of modifiers for validation\n * @param requestId The request ID for fulfillment\n */\n function validateChainlinkCallback(bytes32 requestId)\n internal\n recordChainlinkFulfillment(requestId)\n // solhint-disable-next-line no-empty-blocks\n {\n\n }\n\n /**\n * @dev Reverts if the sender is not the oracle of the request.\n * Emits ChainlinkFulfilled event.\n * @param requestId The request ID for fulfillment\n */\n modifier recordChainlinkFulfillment(bytes32 requestId) {\n require(msg.sender == s_pendingRequests[requestId], \"Source must be the oracle of the request\");\n delete s_pendingRequests[requestId];\n emit ChainlinkFulfilled(requestId);\n _;\n }\n\n /**\n * @dev Reverts if the request is already pending\n * @param requestId The request ID for fulfillment\n */\n modifier notPendingRequest(bytes32 requestId) {\n require(s_pendingRequests[requestId] == address(0), \"Request is already pending\");\n _;\n }\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ChainlinkRequestInterface {\n function oracleRequest(\n address sender,\n uint256 requestPrice,\n bytes32 serviceAgreementID,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function cancelOracleRequest(\n bytes32 requestId,\n uint256 payment,\n bytes4 callbackFunctionId,\n uint256 expiration\n ) external;\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface ENSInterface {\n // Logged when the owner of a node assigns a new owner to a subnode.\n event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);\n\n // Logged when the owner of a node transfers ownership to a new account.\n event Transfer(bytes32 indexed node, address owner);\n\n // Logged when the resolver for a node changes.\n event NewResolver(bytes32 indexed node, address resolver);\n\n // Logged when the TTL of a node changes\n event NewTTL(bytes32 indexed node, uint64 ttl);\n\n function setSubnodeOwner(\n bytes32 node,\n bytes32 label,\n address owner\n ) external;\n\n function setResolver(bytes32 node, address resolver) external;\n\n function setOwner(bytes32 node, address owner) external;\n\n function setTTL(bytes32 node, uint64 ttl) external;\n\n function owner(bytes32 node) external view returns (address);\n\n function resolver(bytes32 node) external view returns (address);\n\n function ttl(bytes32 node) external view returns (uint64);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface LinkTokenInterface {\n function allowance(address owner, address spender) external view returns (uint256 remaining);\n\n function approve(address spender, uint256 value) external returns (bool success);\n\n function balanceOf(address owner) external view returns (uint256 balance);\n\n function decimals() external view returns (uint8 decimalPlaces);\n\n function decreaseApproval(address spender, uint256 addedValue) external returns (bool success);\n\n function increaseApproval(address spender, uint256 subtractedValue) external;\n\n function name() external view returns (string memory tokenName);\n\n function symbol() external view returns (string memory tokenSymbol);\n\n function totalSupply() external view returns (uint256 totalTokensIssued);\n\n function transfer(address to, uint256 value) external returns (bool success);\n\n function transferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool success);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport \"./OracleInterface.sol\";\nimport \"./ChainlinkRequestInterface.sol\";\n\ninterface OperatorInterface is OracleInterface, ChainlinkRequestInterface {\n function operatorRequest(\n address sender,\n uint256 payment,\n bytes32 specId,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n ) external;\n\n function fulfillOracleRequest2(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes calldata data\n ) external returns (bool);\n\n function ownerTransferAndCall(\n address to,\n uint256 value,\n bytes calldata data\n ) external returns (bool success);\n\n function distributeFunds(address payable[] calldata receivers, uint256[] calldata amounts) external payable;\n\n function getAuthorizedSenders() external returns (address[] memory);\n\n function setAuthorizedSenders(address[] calldata senders) external;\n\n function getForwarder() external returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface OracleInterface {\n function fulfillOracleRequest(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes32 data\n ) external returns (bool);\n\n function isAuthorizedSender(address node) external view returns (bool);\n\n function withdraw(address recipient, uint256 amount) external;\n\n function withdrawable() external view returns (uint256);\n}\n"},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ninterface PointerInterface {\n function getAddress() external view returns (address);\n}\n"},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/**\n * @dev A library for working with mutable byte buffers in Solidity.\n *\n * Byte buffers are mutable and expandable, and provide a variety of primitives\n * for writing to them. At any time you can fetch a bytes object containing the\n * current contents of the buffer. The bytes object should not be stored between\n * operations, as it may change due to resizing of the buffer.\n */\nlibrary BufferChainlink {\n /**\n * @dev Represents a mutable buffer. Buffers have a current value (buf) and\n * a capacity. The capacity may be longer than the current value, in\n * which case it can be extended without the need to allocate more memory.\n */\n struct buffer {\n bytes buf;\n uint256 capacity;\n }\n\n /**\n * @dev Initializes a buffer with an initial capacity.\n * @param buf The buffer to initialize.\n * @param capacity The number of bytes of space to allocate the buffer.\n * @return The buffer, for chaining.\n */\n function init(buffer memory buf, uint256 capacity) internal pure returns (buffer memory) {\n if (capacity % 32 != 0) {\n capacity += 32 - (capacity % 32);\n }\n // Allocate space for the buffer data\n buf.capacity = capacity;\n assembly {\n let ptr := mload(0x40)\n mstore(buf, ptr)\n mstore(ptr, 0)\n mstore(0x40, add(32, add(ptr, capacity)))\n }\n return buf;\n }\n\n /**\n * @dev Initializes a new buffer from an existing bytes object.\n * Changes to the buffer may mutate the original value.\n * @param b The bytes object to initialize the buffer with.\n * @return A new buffer.\n */\n function fromBytes(bytes memory b) internal pure returns (buffer memory) {\n buffer memory buf;\n buf.buf = b;\n buf.capacity = b.length;\n return buf;\n }\n\n function resize(buffer memory buf, uint256 capacity) private pure {\n bytes memory oldbuf = buf.buf;\n init(buf, capacity);\n append(buf, oldbuf);\n }\n\n function max(uint256 a, uint256 b) private pure returns (uint256) {\n if (a > b) {\n return a;\n }\n return b;\n }\n\n /**\n * @dev Sets buffer length to 0.\n * @param buf The buffer to truncate.\n * @return The original buffer, for chaining..\n */\n function truncate(buffer memory buf) internal pure returns (buffer memory) {\n assembly {\n let bufptr := mload(buf)\n mstore(bufptr, 0)\n }\n return buf;\n }\n\n /**\n * @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The start offset to write to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n require(len <= data.length);\n\n if (off + len > buf.capacity) {\n resize(buf, max(buf.capacity, len + off) * 2);\n }\n\n uint256 dest;\n uint256 src;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Start address = buffer address + offset + sizeof(buffer length)\n dest := add(add(bufptr, 32), off)\n // Update buffer length if we're extending it\n if gt(add(len, off), buflen) {\n mstore(bufptr, add(len, off))\n }\n src := add(data, 32)\n }\n\n // Copy word-length chunks while possible\n for (; len >= 32; len -= 32) {\n assembly {\n mstore(dest, mload(src))\n }\n dest += 32;\n src += 32;\n }\n\n // Copy remaining bytes\n unchecked {\n uint256 mask = (256**(32 - len)) - 1;\n assembly {\n let srcpart := and(mload(src), not(mask))\n let destpart := and(mload(dest), mask)\n mstore(dest, or(destpart, srcpart))\n }\n }\n\n return buf;\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @param len The number of bytes to copy.\n * @return The original buffer, for chaining.\n */\n function append(\n buffer memory buf,\n bytes memory data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, len);\n }\n\n /**\n * @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function append(buffer memory buf, bytes memory data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, data.length);\n }\n\n /**\n * @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write the byte at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeUint8(\n buffer memory buf,\n uint256 off,\n uint8 data\n ) internal pure returns (buffer memory) {\n if (off >= buf.capacity) {\n resize(buf, buf.capacity * 2);\n }\n\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Length of existing buffer data\n let buflen := mload(bufptr)\n // Address = buffer address + sizeof(buffer length) + off\n let dest := add(add(bufptr, off), 32)\n mstore8(dest, data)\n // Update buffer length if we extended it\n if eq(off, buflen) {\n mstore(bufptr, add(buflen, 1))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendUint8(buffer memory buf, uint8 data) internal pure returns (buffer memory) {\n return writeUint8(buf, buf.buf.length, data);\n }\n\n /**\n * @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (left-aligned).\n * @return The original buffer, for chaining.\n */\n function write(\n buffer memory buf,\n uint256 off,\n bytes32 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n unchecked {\n uint256 mask = (256**len) - 1;\n // Right-align data\n data = data >> (8 * (32 - len));\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + sizeof(buffer length) + off + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n }\n return buf;\n }\n\n /**\n * @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n * capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function writeBytes20(\n buffer memory buf,\n uint256 off,\n bytes20 data\n ) internal pure returns (buffer memory) {\n return write(buf, off, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chhaining.\n */\n function appendBytes20(buffer memory buf, bytes20 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, bytes32(data), 20);\n }\n\n /**\n * @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer, for chaining.\n */\n function appendBytes32(buffer memory buf, bytes32 data) internal pure returns (buffer memory) {\n return write(buf, buf.buf.length, data, 32);\n }\n\n /**\n * @dev Writes an integer to the buffer. Resizes if doing so would exceed\n * the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param off The offset to write at.\n * @param data The data to append.\n * @param len The number of bytes to write (right-aligned).\n * @return The original buffer, for chaining.\n */\n function writeInt(\n buffer memory buf,\n uint256 off,\n uint256 data,\n uint256 len\n ) private pure returns (buffer memory) {\n if (len + off > buf.capacity) {\n resize(buf, (len + off) * 2);\n }\n\n uint256 mask = (256**len) - 1;\n assembly {\n // Memory address of the buffer data\n let bufptr := mload(buf)\n // Address = buffer address + off + sizeof(buffer length) + len\n let dest := add(add(bufptr, off), len)\n mstore(dest, or(and(mload(dest), not(mask)), data))\n // Update buffer length if we extended it\n if gt(add(off, len), mload(bufptr)) {\n mstore(bufptr, add(off, len))\n }\n }\n return buf;\n }\n\n /**\n * @dev Appends a byte to the end of the buffer. Resizes if doing so would\n * exceed the capacity of the buffer.\n * @param buf The buffer to append to.\n * @param data The data to append.\n * @return The original buffer.\n */\n function appendInt(\n buffer memory buf,\n uint256 data,\n uint256 len\n ) internal pure returns (buffer memory) {\n return writeInt(buf, buf.buf.length, data, len);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.4.19;\n\nimport {BufferChainlink} from \"./BufferChainlink.sol\";\n\nlibrary CBORChainlink {\n using BufferChainlink for BufferChainlink.buffer;\n\n uint8 private constant MAJOR_TYPE_INT = 0;\n uint8 private constant MAJOR_TYPE_NEGATIVE_INT = 1;\n uint8 private constant MAJOR_TYPE_BYTES = 2;\n uint8 private constant MAJOR_TYPE_STRING = 3;\n uint8 private constant MAJOR_TYPE_ARRAY = 4;\n uint8 private constant MAJOR_TYPE_MAP = 5;\n uint8 private constant MAJOR_TYPE_TAG = 6;\n uint8 private constant MAJOR_TYPE_CONTENT_FREE = 7;\n\n uint8 private constant TAG_TYPE_BIGNUM = 2;\n uint8 private constant TAG_TYPE_NEGATIVE_BIGNUM = 3;\n\n function encodeFixedNumeric(BufferChainlink.buffer memory buf, uint8 major, uint64 value) private pure {\n if(value <= 23) {\n buf.appendUint8(uint8((major << 5) | value));\n } else if (value <= 0xFF) {\n buf.appendUint8(uint8((major << 5) | 24));\n buf.appendInt(value, 1);\n } else if (value <= 0xFFFF) {\n buf.appendUint8(uint8((major << 5) | 25));\n buf.appendInt(value, 2);\n } else if (value <= 0xFFFFFFFF) {\n buf.appendUint8(uint8((major << 5) | 26));\n buf.appendInt(value, 4);\n } else {\n buf.appendUint8(uint8((major << 5) | 27));\n buf.appendInt(value, 8);\n }\n }\n\n function encodeIndefiniteLengthType(BufferChainlink.buffer memory buf, uint8 major) private pure {\n buf.appendUint8(uint8((major << 5) | 31));\n }\n\n function encodeUInt(BufferChainlink.buffer memory buf, uint value) internal pure {\n if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, value);\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(value));\n }\n }\n\n function encodeInt(BufferChainlink.buffer memory buf, int value) internal pure {\n if(value < -0x10000000000000000) {\n encodeSignedBigNum(buf, value);\n } else if(value > 0xFFFFFFFFFFFFFFFF) {\n encodeBigNum(buf, uint(value));\n } else if(value >= 0) {\n encodeFixedNumeric(buf, MAJOR_TYPE_INT, uint64(uint256(value)));\n } else {\n encodeFixedNumeric(buf, MAJOR_TYPE_NEGATIVE_INT, uint64(uint256(-1 - value)));\n }\n }\n\n function encodeBytes(BufferChainlink.buffer memory buf, bytes memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_BYTES, uint64(value.length));\n buf.append(value);\n }\n\n function encodeBigNum(BufferChainlink.buffer memory buf, uint value) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_BIGNUM));\n encodeBytes(buf, abi.encode(value));\n }\n\n function encodeSignedBigNum(BufferChainlink.buffer memory buf, int input) internal pure {\n buf.appendUint8(uint8((MAJOR_TYPE_TAG << 5) | TAG_TYPE_NEGATIVE_BIGNUM));\n encodeBytes(buf, abi.encode(uint256(-1 - input)));\n }\n\n function encodeString(BufferChainlink.buffer memory buf, string memory value) internal pure {\n encodeFixedNumeric(buf, MAJOR_TYPE_STRING, uint64(bytes(value).length));\n buf.append(bytes(value));\n }\n\n function startArray(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_ARRAY);\n }\n\n function startMap(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_MAP);\n }\n\n function endSequence(BufferChainlink.buffer memory buf) internal pure {\n encodeIndefiniteLengthType(buf, MAJOR_TYPE_CONTENT_FREE);\n }\n}\n"},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nabstract contract ENSResolver {\n function addr(bytes32 node) public view virtual returns (address);\n}\n"},"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"./Riskpool.sol\";\r\nimport \"../modules/IBundle.sol\";\r\nimport \"../modules/IPolicy.sol\";\r\n\r\n// basic riskpool always collateralizes one application using exactly one bundle\r\nabstract contract BasicRiskpool is Riskpool {\r\n\r\n event LogBasicRiskpoolBundlesAndPolicies(uint256 activeBundles, uint256 bundleId);\r\n event LogBasicRiskpoolCandidateBundleAmountCheck(uint256 index, uint256 bundleId, uint256 maxAmount, uint256 collateralAmount);\r\n\r\n // remember bundleId for each processId\r\n // approach only works for basic risk pool where a\r\n // policy is collateralized by exactly one bundle\r\n mapping(bytes32 /* processId */ => uint256 /** bundleId */) internal _collateralizedBy;\r\n uint32 private _policiesCounter = 0;\r\n\r\n constructor(\r\n bytes32 name,\r\n uint256 collateralization,\r\n uint256 sumOfSumInsuredCap,\r\n address erc20Token,\r\n address wallet,\r\n address registry\r\n )\r\n Riskpool(name, collateralization, sumOfSumInsuredCap, erc20Token, wallet, registry)\r\n { }\r\n\r\n \r\n\r\n // needs to remember which bundles helped to cover ther risk\r\n // simple (retail) approach: single policy covered by single bundle\r\n // first bundle with a match and sufficient capacity wins\r\n // Component <- Riskpool <- BasicRiskpool <- TestRiskpool\r\n // complex (wholesale) approach: single policy covered by many bundles\r\n // Component <- Riskpool <- AdvancedRiskpool <- TestRiskpool\r\n function _lockCollateral(bytes32 processId, uint256 collateralAmount) \r\n internal override\r\n returns(bool success) \r\n {\r\n uint256 activeBundles = activeBundles();\r\n uint256 capital = getCapital();\r\n uint256 lockedCapital = getTotalValueLocked();\r\n\r\n emit LogBasicRiskpoolBundlesAndPolicies(activeBundles, _policiesCounter);\r\n require(activeBundles > 0, \"ERROR:BRP-001:NO_ACTIVE_BUNDLES\");\r\n require(capital > lockedCapital, \"ERROR:BRP-002:NO_FREE_CAPITAL\");\r\n\r\n // ensure there is a chance to find the collateral\r\n if(capital >= lockedCapital + collateralAmount) {\r\n IPolicy.Application memory application = _instanceService.getApplication(processId);\r\n\r\n // initialize bundle idx with round robin based on active bundles\r\n uint idx = _policiesCounter % activeBundles;\r\n \r\n // basic riskpool implementation: policy coverage by single bundle only/\r\n // the initial bundle is selected via round robin based on the policies counter.\r\n // If a bundle does not match (application not matching or insufficient funds for collateral) the next one is tried. \r\n // This is continued until all bundles have been tried once. If no bundle matches the policy is rejected.\r\n for (uint256 i = 0; i < activeBundles && !success; i++) {\r\n uint256 bundleId = getActiveBundleId(idx);\r\n IBundle.Bundle memory bundle = _instanceService.getBundle(bundleId);\r\n bool isMatching = bundleMatchesApplication(bundle, application);\r\n emit LogRiskpoolBundleMatchesPolicy(bundleId, isMatching);\r\n\r\n if (isMatching) {\r\n uint256 maxAmount = bundle.capital - bundle.lockedCapital;\r\n emit LogBasicRiskpoolCandidateBundleAmountCheck(idx, bundleId, maxAmount, collateralAmount);\r\n\r\n if (maxAmount >= collateralAmount) {\r\n _riskpoolService.collateralizePolicy(bundleId, processId, collateralAmount);\r\n _collateralizedBy[processId] = bundleId;\r\n success = true;\r\n _policiesCounter++;\r\n } else {\r\n idx = (idx + 1) % activeBundles;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function _processPayout(bytes32 processId, uint256 amount)\r\n internal override\r\n {\r\n uint256 bundleId = _collateralizedBy[processId];\r\n _riskpoolService.processPayout(bundleId, processId, amount);\r\n }\r\n\r\n function _processPremium(bytes32 processId, uint256 amount)\r\n internal override\r\n {\r\n uint256 bundleId = _collateralizedBy[processId];\r\n _riskpoolService.processPremium(bundleId, processId, amount);\r\n }\r\n\r\n function _releaseCollateral(bytes32 processId) \r\n internal override\r\n returns(uint256 collateralAmount) \r\n { \r\n uint256 bundleId = _collateralizedBy[processId];\r\n collateralAmount = _riskpoolService.releasePolicy(bundleId, processId);\r\n }\r\n}"},"@etherisc/gif-interface/contracts/components/Component.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"./IComponent.sol\";\r\nimport \"../modules/IAccess.sol\";\r\nimport \"../modules/IComponentEvents.sol\";\r\nimport \"../modules/IRegistry.sol\";\r\nimport \"../services/IComponentOwnerService.sol\";\r\nimport \"../services/IInstanceService.sol\";\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\n\r\n\r\n// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/GUIDELINES.md#style-guidelines\r\nabstract contract Component is \r\n IComponent,\r\n IComponentEvents,\r\n Ownable \r\n{\r\n bytes32 private _componentName;\r\n uint256 private _componentId;\r\n IComponent.ComponentType private _componentType;\r\n\r\n IRegistry private _registry;\r\n IAccess private _access;\r\n IComponentOwnerService private _componentOwnerService;\r\n IInstanceService private _instanceService;\r\n\r\n modifier onlyInstanceOperatorService() {\r\n require(\r\n _msgSender() == _getContractAddress(\"InstanceOperatorService\"),\r\n \"ERROR:CMP-001:NOT_INSTANCE_OPERATOR_SERVICE\");\r\n _;\r\n }\r\n\r\n modifier onlyComponent() {\r\n require(\r\n _msgSender() == _getContractAddress(\"Component\"),\r\n \"ERROR:CMP-002:NOT_COMPONENT\");\r\n _;\r\n }\r\n\r\n modifier onlyComponentOwnerService() {\r\n require(\r\n _msgSender() == address(_componentOwnerService),\r\n \"ERROR:CMP-003:NOT_COMPONENT_OWNER_SERVICE\");\r\n _;\r\n }\r\n\r\n constructor(\r\n bytes32 name,\r\n IComponent.ComponentType componentType,\r\n address registry\r\n )\r\n Ownable()\r\n {\r\n require(registry != address(0), \"ERROR:CMP-004:REGISTRY_ADDRESS_ZERO\");\r\n\r\n _registry = IRegistry(registry);\r\n _access = _getAccess();\r\n _componentOwnerService = _getComponentOwnerService();\r\n _instanceService = _getInstanceService();\r\n\r\n _componentName = name;\r\n _componentType = componentType;\r\n\r\n emit LogComponentCreated(\r\n _componentName, \r\n _componentType, \r\n address(this), \r\n address(_registry));\r\n }\r\n\r\n function setId(uint256 id) external override onlyComponent { _componentId = id; }\r\n\r\n function getName() public override view returns(bytes32) { return _componentName; }\r\n function getId() public override view returns(uint256) { return _componentId; }\r\n function getType() public override view returns(IComponent.ComponentType) { return _componentType; }\r\n function getState() public override view returns(IComponent.ComponentState) { return _instanceService.getComponentState(_componentId); }\r\n function getOwner() public override view returns(address) { return owner(); }\r\n\r\n function isProduct() public override view returns(bool) { return _componentType == IComponent.ComponentType.Product; }\r\n function isOracle() public override view returns(bool) { return _componentType == IComponent.ComponentType.Oracle; }\r\n function isRiskpool() public override view returns(bool) { return _componentType == IComponent.ComponentType.Riskpool; }\r\n\r\n function getRegistry() external override view returns(IRegistry) { return _registry; }\r\n\r\n function proposalCallback() public override onlyComponent { _afterPropose(); }\r\n function approvalCallback() public override onlyComponent { _afterApprove(); }\r\n function declineCallback() public override onlyComponent { _afterDecline(); }\r\n function suspendCallback() public override onlyComponent { _afterSuspend(); }\r\n function resumeCallback() public override onlyComponent { _afterResume(); }\r\n function pauseCallback() public override onlyComponent { _afterPause(); }\r\n function unpauseCallback() public override onlyComponent { _afterUnpause(); }\r\n function archiveCallback() public override onlyComponent { _afterArchive(); }\r\n \r\n // these functions are intended to be overwritten to implement\r\n // component specific notification handling\r\n function _afterPropose() internal virtual {}\r\n function _afterApprove() internal virtual {}\r\n function _afterDecline() internal virtual {}\r\n function _afterSuspend() internal virtual {}\r\n function _afterResume() internal virtual {}\r\n function _afterPause() internal virtual {}\r\n function _afterUnpause() internal virtual {}\r\n function _afterArchive() internal virtual {}\r\n\r\n function _getAccess() internal view returns (IAccess) {\r\n return IAccess(_getContractAddress(\"Access\")); \r\n }\r\n\r\n function _getInstanceService() internal view returns (IInstanceService) {\r\n return IInstanceService(_getContractAddress(\"InstanceService\")); \r\n }\r\n\r\n function _getComponentOwnerService() internal view returns (IComponentOwnerService) {\r\n return IComponentOwnerService(_getContractAddress(\"ComponentOwnerService\")); \r\n }\r\n\r\n function _getContractAddress(bytes32 contractName) internal view returns (address) { \r\n return _registry.getContract(contractName);\r\n }\r\n\r\n}\r\n"},"@etherisc/gif-interface/contracts/components/IComponent.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../modules/IRegistry.sol\";\r\n\r\ninterface IComponent {\r\n\r\n enum ComponentType {\r\n Oracle,\r\n Product,\r\n Riskpool\r\n }\r\n\r\n enum ComponentState {\r\n Created,\r\n Proposed,\r\n Declined,\r\n Active,\r\n Paused,\r\n Suspended,\r\n Archived\r\n }\r\n\r\n event LogComponentCreated (\r\n bytes32 componentName,\r\n IComponent.ComponentType componentType,\r\n address componentAddress,\r\n address registryAddress);\r\n\r\n function setId(uint256 id) external;\r\n\r\n function getName() external view returns(bytes32);\r\n function getId() external view returns(uint256);\r\n function getType() external view returns(ComponentType);\r\n function getState() external view returns(ComponentState);\r\n function getOwner() external view returns(address);\r\n\r\n function isProduct() external view returns(bool);\r\n function isOracle() external view returns(bool);\r\n function isRiskpool() external view returns(bool);\r\n\r\n function getRegistry() external view returns(IRegistry);\r\n\r\n function proposalCallback() external;\r\n function approvalCallback() external; \r\n function declineCallback() external;\r\n function suspendCallback() external;\r\n function resumeCallback() external;\r\n function pauseCallback() external;\r\n function unpauseCallback() external;\r\n function archiveCallback() external;\r\n}"},"@etherisc/gif-interface/contracts/components/IOracle.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./IComponent.sol\";\n\ninterface IOracle is IComponent {\n \n event LogOracleCreated (address oracleAddress);\n event LogOracleProposed (uint256 componentId);\n event LogOracleApproved (uint256 componentId);\n event LogOracleDeclined (uint256 componentId);\n \n function request(uint256 requestId, bytes calldata input) external;\n function cancel(uint256 requestId) external;\n}\n"},"@etherisc/gif-interface/contracts/components/IProduct.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./IComponent.sol\";\n\ninterface IProduct is IComponent {\n\n event LogProductCreated (address productAddress);\n event LogProductProposed (uint256 componentId);\n event LogProductApproved (uint256 componentId);\n event LogProductDeclined (uint256 componentId);\n\n function getToken() external view returns(address token);\n function getPolicyFlow() external view returns(address policyFlow);\n function getRiskpoolId() external view returns(uint256 riskpoolId);\n\n function getApplicationDataStructure() external view returns(string memory dataStructure);\n function getClaimDataStructure() external view returns(string memory dataStructure);\n function getPayoutDataStructure() external view returns(string memory dataStructure);\n\n function riskPoolCapacityCallback(uint256 capacity) external;\n}\n"},"@etherisc/gif-interface/contracts/components/IRiskpool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./IComponent.sol\";\nimport \"../modules/IBundle.sol\";\nimport \"../modules/IPolicy.sol\";\n\ninterface IRiskpool is IComponent {\n\n event LogRiskpoolCreated (address riskpoolAddress);\n event LogRiskpoolProposed (uint256 id);\n event LogRiskpoolApproved (uint256 id);\n event LogRiskpoolDeclined (uint256 id);\n\n event LogRiskpoolBundleCreated(uint256 bundleId, uint256 amount);\n event LogRiskpoolBundleMatchesPolicy(uint256 bundleId, bool isMatching);\n event LogRiskpoolCollateralLocked(bytes32 processId, uint256 collateralAmount, bool isSecured);\n\n event LogRiskpoolPremiumProcessed(bytes32 processId, uint256 amount);\n event LogRiskpoolPayoutProcessed(bytes32 processId, uint256 amount);\n event LogRiskpoolCollateralReleased(bytes32 processId, uint256 collateralAmount);\n\n\n function createBundle(bytes memory filter, uint256 initialAmount) external returns(uint256 bundleId);\n function fundBundle(uint256 bundleId, uint256 amount) external returns(uint256 netAmount);\n function defundBundle(uint256 bundleId, uint256 amount) external returns(uint256 netAmount);\n\n function lockBundle(uint256 bundleId) external;\n function unlockBundle(uint256 bundleId) external;\n function closeBundle(uint256 bundleId) external;\n function burnBundle(uint256 bundleId) external;\n\n function collateralizePolicy(bytes32 processId, uint256 collateralAmount) external returns(bool isSecured);\n function processPolicyPremium(bytes32 processId, uint256 amount) external;\n function processPolicyPayout(bytes32 processId, uint256 amount) external;\n function releasePolicy(bytes32 processId) external;\n\n function getCollateralizationLevel() external view returns (uint256);\n function getFullCollateralizationLevel() external view returns (uint256);\n\n function bundleMatchesApplication(\n IBundle.Bundle memory bundle, \n IPolicy.Application memory application\n ) \n external view returns(bool isMatching); \n \n function getFilterDataStructure() external view returns(string memory);\n\n function bundles() external view returns(uint256);\n function getBundle(uint256 idx) external view returns(IBundle.Bundle memory);\n\n function activeBundles() external view returns(uint256);\n function getActiveBundleId(uint256 idx) external view returns(uint256 bundleId);\n\n function getWallet() external view returns(address);\n function getErc20Token() external view returns(address);\n\n function getSumOfSumInsuredCap() external view returns (uint256);\n function getCapital() external view returns(uint256);\n function getTotalValueLocked() external view returns(uint256); \n function getCapacity() external view returns(uint256); \n function getBalance() external view returns(uint256); \n\n function setMaximumNumberOfActiveBundles(uint256 maximumNumberOfActiveBundles) external; \n function getMaximumNumberOfActiveBundles() external view returns(uint256 maximumNumberOfActiveBundles);\n}\n"},"@etherisc/gif-interface/contracts/components/Oracle.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"./IOracle.sol\";\r\nimport \"./Component.sol\";\r\nimport \"./IComponent.sol\";\r\nimport \"../services/IOracleService.sol\";\r\n\r\nabstract contract Oracle is\r\n IOracle, \r\n Component \r\n{ \r\n IOracleService private _oracleService;\r\n\r\n modifier onlyQuery {\r\n require(\r\n _msgSender() == _getContractAddress(\"Query\"),\r\n \"ERROR:ORA-001:ACCESS_DENIED\"\r\n );\r\n _;\r\n }\r\n\r\n constructor(\r\n bytes32 name,\r\n address registry\r\n )\r\n Component(name, ComponentType.Oracle, registry)\r\n {\r\n _oracleService = IOracleService(_getContractAddress(\"OracleService\"));\r\n emit LogOracleCreated(address(this));\r\n }\r\n\r\n // default callback function implementations\r\n function _afterApprove() internal override { \r\n emit LogOracleApproved(getId()); \r\n }\r\n\r\n function _afterPropose() internal override { emit LogOracleProposed(getId()); }\r\n function _afterDecline() internal override { emit LogOracleDeclined(getId()); }\r\n\r\n function _respond(uint256 requestId, bytes memory data) internal {\r\n _oracleService.respond(requestId, data);\r\n } \r\n}\r\n"},"@etherisc/gif-interface/contracts/components/Product.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./IProduct.sol\";\nimport \"./Component.sol\";\nimport \"../modules/IPolicy.sol\";\nimport \"../services/IInstanceService.sol\";\nimport \"../services/IProductService.sol\";\n\nabstract contract Product is\n IProduct, \n Component \n{ \n address private _policyFlow; // policy flow contract to use for this procut\n address private _token; // erc20 token to use for this product\n uint256 private _riskpoolId; // id of riskpool responsible for this product\n\n IProductService internal _productService;\n IInstanceService internal _instanceService;\n\n modifier onlyPolicyHolder(bytes32 policyId) {\n address policyHolder = _instanceService.getMetadata(policyId).owner;\n require(\n _msgSender() == policyHolder, \n \"ERROR:PRD-001:POLICY_OR_HOLDER_INVALID\"\n );\n _;\n }\n\n modifier onlyLicence {\n require(\n _msgSender() == _getContractAddress(\"Licence\"),\n \"ERROR:PRD-002:ACCESS_DENIED\"\n );\n _;\n }\n\n modifier onlyOracle {\n require(\n _msgSender() == _getContractAddress(\"Query\"),\n \"ERROR:PRD-003:ACCESS_DENIED\"\n );\n _;\n }\n\n constructor(\n bytes32 name,\n address token,\n bytes32 policyFlow,\n uint256 riskpoolId,\n address registry\n )\n Component(name, ComponentType.Product, registry)\n {\n _token = token;\n _riskpoolId = riskpoolId;\n\n // TODO add validation for policy flow\n _policyFlow = _getContractAddress(policyFlow);\n _productService = IProductService(_getContractAddress(\"ProductService\"));\n _instanceService = IInstanceService(_getContractAddress(\"InstanceService\"));\n\n emit LogProductCreated(address(this));\n }\n\n function getToken() public override view returns(address) {\n return _token;\n }\n\n function getPolicyFlow() public view override returns(address) {\n return _policyFlow;\n }\n\n function getRiskpoolId() public override view returns(uint256) {\n return _riskpoolId;\n }\n\n // default callback function implementations\n function _afterApprove() internal override { emit LogProductApproved(getId()); }\n\n function _afterPropose() internal override { emit LogProductProposed(getId()); }\n function _afterDecline() internal override { emit LogProductDeclined(getId()); }\n\n function _newApplication(\n address applicationOwner,\n uint256 premiumAmount,\n uint256 sumInsuredAmount,\n bytes memory metaData, \n bytes memory applicationData \n )\n internal\n returns(bytes32 processId)\n {\n processId = _productService.newApplication(\n applicationOwner, \n premiumAmount, \n sumInsuredAmount, \n metaData, \n applicationData);\n }\n\n function _collectPremium(bytes32 processId) \n internal\n returns(\n bool success,\n uint256 feeAmount,\n uint256 netAmount\n )\n {\n IPolicy.Policy memory policy = _getPolicy(processId);\n\n if (policy.premiumPaidAmount < policy.premiumExpectedAmount) {\n (success, feeAmount, netAmount) \n = _collectPremium(\n processId, \n policy.premiumExpectedAmount - policy.premiumPaidAmount\n );\n }\n }\n\n function _collectPremium(\n bytes32 processId,\n uint256 amount\n )\n internal\n returns(\n bool success,\n uint256 feeAmount,\n uint256 netAmount\n )\n {\n (success, feeAmount, netAmount) = _productService.collectPremium(processId, amount);\n }\n\n function _adjustPremiumSumInsured(\n bytes32 processId,\n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n ) internal {\n _productService.adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount);\n }\n\n function _revoke(bytes32 processId) internal {\n _productService.revoke(processId);\n }\n\n function _underwrite(bytes32 processId) internal returns(bool success) {\n success = _productService.underwrite(processId);\n }\n\n function _decline(bytes32 processId) internal {\n _productService.decline(processId);\n }\n\n function _expire(bytes32 processId) internal {\n _productService.expire(processId);\n }\n\n function _close(bytes32 processId) internal {\n _productService.close(processId);\n }\n\n function _newClaim(\n bytes32 processId, \n uint256 claimAmount,\n bytes memory data\n ) \n internal\n returns (uint256 claimId)\n {\n claimId = _productService.newClaim(\n processId, \n claimAmount, \n data);\n }\n\n function _confirmClaim(\n bytes32 processId,\n uint256 claimId,\n uint256 payoutAmount\n )\n internal\n {\n _productService.confirmClaim(\n processId, \n claimId, \n payoutAmount);\n }\n\n function _declineClaim(bytes32 processId, uint256 claimId) internal {\n _productService.declineClaim(processId, claimId);\n }\n\n function _closeClaim(bytes32 processId, uint256 claimId) internal {\n _productService.closeClaim(processId, claimId);\n }\n\n function _newPayout(\n bytes32 processId,\n uint256 claimId,\n uint256 amount,\n bytes memory data\n )\n internal\n returns(uint256 payoutId)\n {\n payoutId = _productService.newPayout(processId, claimId, amount, data);\n }\n\n function _processPayout(\n bytes32 processId,\n uint256 payoutId\n )\n internal\n returns(\n uint256 feeAmount,\n uint256 netPayoutAmount\n )\n {\n (\n feeAmount,\n netPayoutAmount\n ) = _productService.processPayout(processId, payoutId);\n }\n\n function _request(\n bytes32 processId,\n bytes memory input,\n string memory callbackMethodName,\n uint256 responsibleOracleId\n )\n internal\n returns (uint256 requestId)\n {\n requestId = _productService.request(\n processId,\n input,\n callbackMethodName,\n address(this),\n responsibleOracleId\n );\n }\n\n function _cancelRequest(uint256 requestId)\n internal\n {\n _productService.cancelRequest(requestId);\n }\n\n function _getMetadata(bytes32 processId) \n internal \n view \n returns (IPolicy.Metadata memory metadata) \n {\n return _instanceService.getMetadata(processId);\n }\n\n function _getApplication(bytes32 processId) \n internal \n view \n returns (IPolicy.Application memory application) \n {\n return _instanceService.getApplication(processId);\n }\n\n function _getPolicy(bytes32 processId) \n internal \n view \n returns (IPolicy.Policy memory policy) \n {\n return _instanceService.getPolicy(processId);\n }\n\n function _getClaim(bytes32 processId, uint256 claimId) \n internal \n view \n returns (IPolicy.Claim memory claim) \n {\n return _instanceService.getClaim(processId, claimId);\n }\n\n function _getPayout(bytes32 processId, uint256 payoutId) \n internal \n view \n returns (IPolicy.Payout memory payout) \n {\n return _instanceService.getPayout(processId, payoutId);\n }\n\n function getApplicationDataStructure() external override virtual view returns(string memory dataStructure) {\n return \"\";\n }\n\n function getClaimDataStructure() external override virtual view returns(string memory dataStructure) {\n return \"\";\n } \n function getPayoutDataStructure() external override virtual view returns(string memory dataStructure) {\n return \"\";\n }\n\n function riskPoolCapacityCallback(uint256 capacity) external override virtual { }\n}\n"},"@etherisc/gif-interface/contracts/components/Riskpool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"./IRiskpool.sol\";\r\nimport \"./Component.sol\";\r\n\r\nimport \"../modules/IBundle.sol\";\r\nimport \"../modules/IPolicy.sol\";\r\nimport \"../services/IInstanceService.sol\";\r\nimport \"../services/IRiskpoolService.sol\";\r\n\r\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\r\n\r\nabstract contract Riskpool is \r\n IRiskpool, \r\n Component \r\n{ \r\n // used for representation of collateralization\r\n // collateralization between 0 and 1 (1=100%) \r\n // value might be larger when overcollateralization\r\n uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10**18;\r\n string public constant DEFAULT_FILTER_DATA_STRUCTURE = \"\";\r\n\r\n IInstanceService internal _instanceService; \r\n IRiskpoolService internal _riskpoolService;\r\n IERC721 internal _bundleToken;\r\n \r\n // keep track of bundles associated with this riskpool\r\n uint256 [] internal _bundleIds;\r\n\r\n address private _wallet;\r\n address private _erc20Token;\r\n uint256 private _collateralization;\r\n uint256 private _sumOfSumInsuredCap;\r\n uint256 private _maxNumberOfActiveBundles;\r\n\r\n modifier onlyPool {\r\n require(\r\n _msgSender() == _getContractAddress(\"Pool\"),\r\n \"ERROR:RPL-001:ACCESS_DENIED\"\r\n );\r\n _;\r\n }\r\n\r\n modifier onlyBundleOwner(uint256 bundleId) {\r\n IBundle.Bundle memory bundle = _instanceService.getBundle(bundleId);\r\n address bundleOwner = _bundleToken.ownerOf(bundle.tokenId);\r\n\r\n require(\r\n _msgSender() == bundleOwner,\r\n \"ERROR:BUC-001:NOT_BUNDLE_OWNER\"\r\n );\r\n _;\r\n }\r\n\r\n constructor(\r\n bytes32 name,\r\n uint256 collateralization,\r\n uint256 sumOfSumInsuredCap,\r\n address erc20Token,\r\n address wallet,\r\n address registry\r\n )\r\n Component(name, ComponentType.Riskpool, registry)\r\n { \r\n _collateralization = collateralization;\r\n\r\n require(sumOfSumInsuredCap != 0, \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\");\r\n _sumOfSumInsuredCap = sumOfSumInsuredCap;\r\n\r\n require(erc20Token != address(0), \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\");\r\n _erc20Token = erc20Token;\r\n\r\n require(wallet != address(0), \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\");\r\n _wallet = wallet;\r\n\r\n _instanceService = IInstanceService(_getContractAddress(\"InstanceService\")); \r\n _riskpoolService = IRiskpoolService(_getContractAddress(\"RiskpoolService\"));\r\n _bundleToken = _instanceService.getBundleToken();\r\n }\r\n\r\n function _afterPropose() internal override virtual {\r\n _riskpoolService.registerRiskpool(\r\n _wallet,\r\n _erc20Token, \r\n _collateralization,\r\n _sumOfSumInsuredCap\r\n );\r\n }\r\n\r\n function createBundle(bytes memory filter, uint256 initialAmount) \r\n public virtual override\r\n returns(uint256 bundleId)\r\n {\r\n address bundleOwner = _msgSender();\r\n bundleId = _riskpoolService.createBundle(bundleOwner, filter, initialAmount);\r\n _bundleIds.push(bundleId);\r\n\r\n emit LogRiskpoolBundleCreated(bundleId, initialAmount);\r\n }\r\n\r\n function fundBundle(uint256 bundleId, uint256 amount) \r\n external override\r\n onlyBundleOwner(bundleId)\r\n returns(uint256 netAmount)\r\n {\r\n netAmount = _riskpoolService.fundBundle(bundleId, amount);\r\n }\r\n\r\n function defundBundle(uint256 bundleId, uint256 amount)\r\n external override\r\n onlyBundleOwner(bundleId)\r\n returns(uint256 netAmount)\r\n {\r\n netAmount = _riskpoolService.defundBundle(bundleId, amount);\r\n }\r\n\r\n function lockBundle(uint256 bundleId)\r\n external override\r\n onlyBundleOwner(bundleId)\r\n {\r\n _riskpoolService.lockBundle(bundleId);\r\n }\r\n\r\n function unlockBundle(uint256 bundleId)\r\n external override\r\n onlyBundleOwner(bundleId)\r\n {\r\n _riskpoolService.unlockBundle(bundleId);\r\n }\r\n\r\n function closeBundle(uint256 bundleId)\r\n external override\r\n onlyBundleOwner(bundleId)\r\n {\r\n _riskpoolService.closeBundle(bundleId);\r\n }\r\n\r\n function burnBundle(uint256 bundleId)\r\n external override\r\n onlyBundleOwner(bundleId)\r\n {\r\n _riskpoolService.burnBundle(bundleId);\r\n }\r\n\r\n function collateralizePolicy(bytes32 processId, uint256 collateralAmount) \r\n external override\r\n onlyPool\r\n returns(bool success) \r\n {\r\n success = _lockCollateral(processId, collateralAmount);\r\n emit LogRiskpoolCollateralLocked(processId, collateralAmount, success);\r\n }\r\n\r\n function processPolicyPayout(bytes32 processId, uint256 amount)\r\n external override\r\n onlyPool\r\n {\r\n _processPayout(processId, amount);\r\n emit LogRiskpoolPayoutProcessed(processId, amount);\r\n }\r\n\r\n function processPolicyPremium(bytes32 processId, uint256 amount)\r\n external override\r\n onlyPool\r\n {\r\n _processPremium(processId, amount);\r\n emit LogRiskpoolPremiumProcessed(processId, amount);\r\n }\r\n\r\n function releasePolicy(bytes32 processId) \r\n external override\r\n onlyPool\r\n {\r\n uint256 collateralAmount = _releaseCollateral(processId);\r\n emit LogRiskpoolCollateralReleased(processId, collateralAmount);\r\n }\r\n\r\n function setMaximumNumberOfActiveBundles(uint256 maximumNumberOfActiveBundles)\r\n external override\r\n onlyOwner\r\n {\r\n uint256 riskpoolId = getId();\r\n _riskpoolService.setMaximumNumberOfActiveBundles(riskpoolId, maximumNumberOfActiveBundles);\r\n }\r\n\r\n function getMaximumNumberOfActiveBundles()\r\n public view override\r\n returns(uint256 maximumNumberOfActiveBundles)\r\n {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.getMaximumNumberOfActiveBundles(riskpoolId);\r\n }\r\n\r\n function getWallet() public view override returns(address) {\r\n return _wallet;\r\n }\r\n\r\n function getErc20Token() public view override returns(address) {\r\n return _erc20Token;\r\n }\r\n\r\n function getSumOfSumInsuredCap() public view override returns (uint256) {\r\n return _sumOfSumInsuredCap;\r\n }\r\n\r\n function getFullCollateralizationLevel() public pure override returns (uint256) {\r\n return FULL_COLLATERALIZATION_LEVEL;\r\n }\r\n\r\n function getCollateralizationLevel() public view override returns (uint256) {\r\n return _collateralization;\r\n }\r\n\r\n function bundles() public override view returns(uint256) {\r\n return _bundleIds.length;\r\n }\r\n\r\n function getBundle(uint256 idx) public override view returns(IBundle.Bundle memory) {\r\n require(idx < _bundleIds.length, \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\");\r\n\r\n uint256 bundleIdx = _bundleIds[idx];\r\n return _instanceService.getBundle(bundleIdx);\r\n }\r\n\r\n function activeBundles() public override view returns(uint256) {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.activeBundles(riskpoolId);\r\n }\r\n\r\n function getActiveBundleId(uint256 idx) public override view returns(uint256 bundleId) {\r\n uint256 riskpoolId = getId();\r\n require(idx < _instanceService.activeBundles(riskpoolId), \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\");\r\n\r\n return _instanceService.getActiveBundleId(riskpoolId, idx);\r\n }\r\n\r\n function getFilterDataStructure() external override pure returns(string memory) {\r\n return DEFAULT_FILTER_DATA_STRUCTURE;\r\n }\r\n\r\n function getCapital() public override view returns(uint256) {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.getCapital(riskpoolId);\r\n }\r\n\r\n function getTotalValueLocked() public override view returns(uint256) {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.getTotalValueLocked(riskpoolId);\r\n }\r\n\r\n function getCapacity() public override view returns(uint256) {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.getCapacity(riskpoolId);\r\n }\r\n\r\n function getBalance() public override view returns(uint256) {\r\n uint256 riskpoolId = getId();\r\n return _instanceService.getBalance(riskpoolId);\r\n }\r\n\r\n function bundleMatchesApplication(\r\n IBundle.Bundle memory bundle, \r\n IPolicy.Application memory application\r\n ) public override view virtual returns(bool isMatching);\r\n\r\n function _afterArchive() internal view override { \r\n uint256 riskpoolId = getId();\r\n require(\r\n _instanceService.unburntBundles(riskpoolId) == 0, \r\n \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\"\r\n );\r\n }\r\n\r\n function _lockCollateral(bytes32 processId, uint256 collateralAmount) internal virtual returns(bool success);\r\n function _processPremium(bytes32 processId, uint256 amount) internal virtual;\r\n function _processPayout(bytes32 processId, uint256 amount) internal virtual;\r\n function _releaseCollateral(bytes32 processId) internal virtual returns(uint256 collateralAmount);\r\n\r\n}"},"@etherisc/gif-interface/contracts/modules/IAccess.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IAccess {\n function getDefaultAdminRole() external view returns(bytes32 role);\n function getProductOwnerRole() external view returns(bytes32 role);\n function getOracleProviderRole() external view returns(bytes32 role);\n function getRiskpoolKeeperRole() external view returns(bytes32 role);\n function hasRole(bytes32 role, address principal) external view returns(bool);\n\n function grantRole(bytes32 role, address principal) external;\n function revokeRole(bytes32 role, address principal) external;\n function renounceRole(bytes32 role, address principal) external;\n \n function addRole(bytes32 role) external;\n function invalidateRole(bytes32 role) external;\n}\n"},"@etherisc/gif-interface/contracts/modules/IBundle.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IBundle {\n\n event LogBundleCreated(\n uint256 bundleId, \n uint256 riskpoolId, \n address owner,\n BundleState state,\n uint256 amount\n );\n\n event LogBundleStateChanged(uint256 bundleId, BundleState oldState, BundleState newState);\n\n event LogBundleCapitalProvided(uint256 bundleId, address sender, uint256 amount, uint256 capacity);\n event LogBundleCapitalWithdrawn(uint256 bundleId, address recipient, uint256 amount, uint256 capacity);\n\n event LogBundlePolicyCollateralized(uint256 bundleId, bytes32 processId, uint256 amount, uint256 capacity);\n event LogBundlePayoutProcessed(uint256 bundleId, bytes32 processId, uint256 amount);\n event LogBundlePolicyReleased(uint256 bundleId, bytes32 processId, uint256 amount, uint256 capacity);\n\n enum BundleState {\n Active,\n Locked,\n Closed,\n Burned\n }\n\n struct Bundle {\n uint256 id;\n uint256 riskpoolId;\n uint256 tokenId;\n BundleState state;\n bytes filter; // required conditions for applications to be considered for collateralization by this bundle\n uint256 capital; // net investment capital amount (<= balance)\n uint256 lockedCapital; // capital amount linked to collateralizaion of non-closed policies (<= capital)\n uint256 balance; // total amount of funds: net investment capital + net premiums - payouts\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n function create(address owner_, uint256 riskpoolId_, bytes calldata filter_, uint256 amount_) external returns(uint256 bundleId);\n function fund(uint256 bundleId, uint256 amount) external;\n function defund(uint256 bundleId, uint256 amount) external;\n\n function lock(uint256 bundleId) external;\n function unlock(uint256 bundleId) external;\n function close(uint256 bundleId) external;\n function burn(uint256 bundleId) external;\n\n function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 collateralAmount) external;\n function processPremium(uint256 bundleId, bytes32 processId, uint256 amount) external;\n function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) external;\n function releasePolicy(uint256 bundleId, bytes32 processId) external returns(uint256 collateralAmount);\n}\n"},"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../components/IComponent.sol\";\n\ninterface IComponentEvents {\n\n event LogComponentProposed (\n bytes32 componentName,\n IComponent.ComponentType componentType,\n address componentAddress,\n uint256 id);\n \n event LogComponentApproved (uint256 id);\n event LogComponentDeclined (uint256 id);\n\n event LogComponentSuspended (uint256 id);\n event LogComponentResumed (uint256 id);\n\n event LogComponentPaused (uint256 id);\n event LogComponentUnpaused (uint256 id);\n\n event LogComponentArchived (uint256 id);\n\n event LogComponentStateChanged (\n uint256 id, \n IComponent.ComponentState stateOld, \n IComponent.ComponentState stateNew);\n}\n"},"@etherisc/gif-interface/contracts/modules/ILicense.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface ILicense {\n\n function getAuthorizationStatus(address _sender)\n external\n view\n returns (uint256 productId, bool isAuthorized, address policyFlow);\n}\n"},"@etherisc/gif-interface/contracts/modules/IPolicy.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IPolicy {\n\n // Events\n event LogMetadataCreated(\n address owner,\n bytes32 processId,\n uint256 productId, \n PolicyFlowState state\n );\n\n event LogMetadataStateChanged(\n bytes32 processId, \n PolicyFlowState state\n );\n\n event LogApplicationCreated(\n bytes32 processId, \n uint256 premiumAmount, \n uint256 sumInsuredAmount\n );\n\n event LogApplicationRevoked(bytes32 processId);\n event LogApplicationUnderwritten(bytes32 processId);\n event LogApplicationDeclined(bytes32 processId);\n\n event LogPolicyCreated(bytes32 processId);\n event LogPolicyExpired(bytes32 processId);\n event LogPolicyClosed(bytes32 processId);\n\n event LogPremiumCollected(bytes32 processId, uint256 amount);\n \n event LogApplicationSumInsuredAdjusted(bytes32 processId, uint256 sumInsuredAmountOld, uint256 sumInsuredAmount);\n event LogApplicationPremiumAdjusted(bytes32 processId, uint256 premiumAmountOld, uint256 premiumAmount);\n event LogPolicyPremiumAdjusted(bytes32 processId, uint256 premiumExpectedAmountOld, uint256 premiumExpectedAmount);\n\n event LogClaimCreated(bytes32 processId, uint256 claimId, uint256 claimAmount);\n event LogClaimConfirmed(bytes32 processId, uint256 claimId, uint256 confirmedAmount);\n event LogClaimDeclined(bytes32 processId, uint256 claimId);\n event LogClaimClosed(bytes32 processId, uint256 claimId);\n\n event LogPayoutCreated(\n bytes32 processId,\n uint256 claimId,\n uint256 payoutId,\n uint256 amount\n );\n\n event LogPayoutProcessed(\n bytes32 processId, \n uint256 payoutId\n );\n\n // States\n enum PolicyFlowState {Started, Active, Finished}\n enum ApplicationState {Applied, Revoked, Underwritten, Declined}\n enum PolicyState {Active, Expired, Closed}\n enum ClaimState {Applied, Confirmed, Declined, Closed}\n enum PayoutState {Expected, PaidOut}\n\n // Objects\n struct Metadata {\n address owner;\n uint256 productId;\n PolicyFlowState state;\n bytes data;\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n struct Application {\n ApplicationState state;\n uint256 premiumAmount;\n uint256 sumInsuredAmount;\n bytes data; \n uint256 createdAt;\n uint256 updatedAt;\n }\n\n struct Policy {\n PolicyState state;\n uint256 premiumExpectedAmount;\n uint256 premiumPaidAmount;\n uint256 claimsCount;\n uint256 openClaimsCount;\n uint256 payoutMaxAmount;\n uint256 payoutAmount;\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n struct Claim {\n ClaimState state;\n uint256 claimAmount;\n uint256 paidAmount;\n bytes data;\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n struct Payout {\n uint256 claimId;\n PayoutState state;\n uint256 amount;\n bytes data;\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n function createPolicyFlow(\n address owner,\n uint256 productId, \n bytes calldata data\n ) external returns(bytes32 processId);\n\n function createApplication(\n bytes32 processId, \n uint256 premiumAmount,\n uint256 sumInsuredAmount,\n bytes calldata data\n ) external;\n\n function revokeApplication(bytes32 processId) external;\n function underwriteApplication(bytes32 processId) external;\n function declineApplication(bytes32 processId) external;\n\n function collectPremium(bytes32 processId, uint256 amount) external;\n\n function adjustPremiumSumInsured(\n bytes32 processId, \n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n ) external;\n\n function createPolicy(bytes32 processId) external;\n function expirePolicy(bytes32 processId) external;\n function closePolicy(bytes32 processId) external;\n\n function createClaim(\n bytes32 processId, \n uint256 claimAmount, \n bytes calldata data\n ) external returns (uint256 claimId);\n\n function confirmClaim(\n bytes32 processId, \n uint256 claimId, \n uint256 confirmedAmount\n ) external;\n\n function declineClaim(bytes32 processId, uint256 claimId) external;\n function closeClaim(bytes32 processId, uint256 claimId) external;\n\n function createPayout(\n bytes32 processId,\n uint256 claimId,\n uint256 payoutAmount,\n bytes calldata data\n ) external returns (uint256 payoutId);\n\n function processPayout(\n bytes32 processId,\n uint256 payoutId\n ) external;\n}\n"},"@etherisc/gif-interface/contracts/modules/IPool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IPool {\n\n event LogRiskpoolRegistered(\n uint256 riskpoolId, \n address wallet,\n address erc20Token, \n uint256 collateralizationLevel, \n uint256 sumOfSumInsuredCap\n );\n \n event LogRiskpoolRequiredCollateral(bytes32 processId, uint256 sumInsured, uint256 collateral);\n event LogRiskpoolCollateralizationFailed(uint256 riskpoolId, bytes32 processId, uint256 amount);\n event LogRiskpoolCollateralizationSucceeded(uint256 riskpoolId, bytes32 processId, uint256 amount);\n event LogRiskpoolCollateralReleased(uint256 riskpoolId, bytes32 processId, uint256 amount);\n\n struct Pool {\n uint256 id; // matches component id of riskpool\n address wallet; // riskpool wallet\n address erc20Token; // the value token of the riskpool\n uint256 collateralizationLevel; // required collateralization level to cover new policies \n uint256 sumOfSumInsuredCap; // max sum of sum insured the pool is allowed to secure\n uint256 sumOfSumInsuredAtRisk; // current sum of sum insured at risk in this pool\n uint256 capital; // net investment capital amount (<= balance)\n uint256 lockedCapital; // capital amount linked to collateralizaion of non-closed policies (<= capital)\n uint256 balance; // total amount of funds: net investment capital + net premiums - payouts\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n function registerRiskpool(\n uint256 riskpoolId, \n address wallet,\n address erc20Token,\n uint256 collateralizationLevel, \n uint256 sumOfSumInsuredCap\n ) external;\n\n function setRiskpoolForProduct(uint256 productId, uint256 riskpoolId) external;\n\n function underwrite(bytes32 processId) external returns(bool success);\n function processPremium(bytes32 processId, uint256 amount) external;\n function processPayout(bytes32 processId, uint256 amount) external;\n function release(bytes32 processId) external; \n}\n"},"@etherisc/gif-interface/contracts/modules/IQuery.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IQuery {\n\n struct OracleRequest {\n bytes32 processId;\n uint256 responsibleOracleId;\n address callbackContractAddress;\n string callbackMethodName;\n bytes data;\n uint256 createdAt;\n }\n\n event LogOracleRequested(\n bytes32 processId,\n uint256 requestId,\n uint256 responsibleOracleId\n );\n\n event LogOracleResponded(\n bytes32 processId,\n uint256 requestId,\n address responder,\n bool success\n );\n\n event LogOracleCanceled(\n uint256 requestId\n );\n\n function request(\n bytes32 processId,\n bytes calldata input,\n string calldata callbackMethodName,\n address callbackContractAddress,\n uint256 responsibleOracleId\n ) external returns (uint256 requestId);\n\n function respond(\n uint256 requestId,\n address responder,\n bytes calldata data\n ) external;\n\n function cancel(uint256 requestId) external;\n\n}\n"},"@etherisc/gif-interface/contracts/modules/IRegistry.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IRegistry {\n\n event LogContractRegistered(\n bytes32 release,\n bytes32 contractName,\n address contractAddress,\n bool isNew\n );\n\n event LogContractDeregistered(bytes32 release, bytes32 contractName);\n\n event LogReleasePrepared(bytes32 release);\n\n function registerInRelease(\n bytes32 _release,\n bytes32 _contractName,\n address _contractAddress\n ) external;\n\n function register(bytes32 _contractName, address _contractAddress) external;\n\n function deregisterInRelease(bytes32 _release, bytes32 _contractName)\n external;\n\n function deregister(bytes32 _contractName) external;\n\n function prepareRelease(bytes32 _newRelease) external;\n\n function getContractInRelease(bytes32 _release, bytes32 _contractName)\n external\n view\n returns (address _contractAddress);\n\n function getContract(bytes32 _contractName)\n external\n view\n returns (address _contractAddress);\n\n function getRelease() external view returns (bytes32 _release);\n\n function ensureSender(address sender, bytes32 _contractName) external view returns(bool _senderMatches);\n\n function contracts() external view returns (uint256 _numberOfContracts);\n\n function contractName(uint256 idx) external view returns (bytes32 _contractName);\n\n}\n"},"@etherisc/gif-interface/contracts/modules/ITreasury.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ninterface ITreasury {\n\n event LogTreasurySuspended();\n event LogTreasuryResumed();\n\n event LogTreasuryProductTokenSet(uint256 productId, uint256 riskpoolId, address erc20Address);\n event LogTreasuryInstanceWalletSet(address walletAddress);\n event LogTreasuryRiskpoolWalletSet(uint256 riskpoolId, address walletAddress);\n\n event LogTreasuryPremiumFeesSet(uint256 productId, uint256 fixedFee, uint256 fractionalFee);\n event LogTreasuryCapitalFeesSet(uint256 riskpoolId, uint256 fixedFee, uint256 fractionalFee);\n\n event LogTreasuryPremiumTransferred(address from, address riskpoolWalletAddress, uint256 amount);\n event LogTreasuryPayoutTransferred(address riskpoolWalletAddress, address to, uint256 amount);\n event LogTreasuryCapitalTransferred(address from, address riskpoolWalletAddress, uint256 amount);\n event LogTreasuryFeesTransferred(address from, address instanceWalletAddress, uint256 amount);\n event LogTreasuryWithdrawalTransferred(address riskpoolWalletAddress, address to, uint256 amount);\n\n event LogTreasuryPremiumProcessed(bytes32 processId, uint256 amount);\n event LogTreasuryPayoutProcessed(uint256 riskpoolId, address to, uint256 amount);\n event LogTreasuryCapitalProcessed(uint256 riskpoolId, uint256 bundleId, uint256 amount);\n event LogTreasuryWithdrawalProcessed(uint256 riskpoolId, uint256 bundleId, uint256 amount);\n\n struct FeeSpecification {\n uint256 componentId;\n uint256 fixedFee;\n uint256 fractionalFee;\n bytes feeCalculationData;\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n function setProductToken(uint256 productId, address erc20Address) external;\n\n function setInstanceWallet(address instanceWalletAddress) external;\n function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) external;\n\n function createFeeSpecification(\n uint256 componentId,\n uint256 fixedFee,\n uint256 fractionalFee,\n bytes calldata feeCalculationData\n )\n external view returns(FeeSpecification memory feeSpec);\n \n function setPremiumFees(FeeSpecification calldata feeSpec) external;\n function setCapitalFees(FeeSpecification calldata feeSpec) external;\n \n function processPremium(bytes32 processId) external \n returns(\n bool success,\n uint256 feeAmount,\n uint256 netPremiumAmount\n );\n \n function processPremium(bytes32 processId, uint256 amount) external \n returns(\n bool success,\n uint256 feeAmount,\n uint256 netPremiumAmount\n );\n \n function processPayout(bytes32 processId, uint256 payoutId) external \n returns(\n uint256 feeAmount,\n uint256 netPayoutAmount\n );\n \n function processCapital(uint256 bundleId, uint256 capitalAmount) external \n returns(\n uint256 feeAmount,\n uint256 netCapitalAmount\n );\n\n function processWithdrawal(uint256 bundleId, uint256 amount) external\n returns(\n uint256 feeAmount,\n uint256 netAmount\n );\n\n function getComponentToken(uint256 componentId) external view returns(IERC20 token);\n function getFeeSpecification(uint256 componentId) external view returns(FeeSpecification memory feeSpecification);\n\n function getFractionFullUnit() external view returns(uint256);\n function getInstanceWallet() external view returns(address instanceWalletAddress);\n function getRiskpoolWallet(uint256 riskpoolId) external view returns(address riskpoolWalletAddress);\n\n}\n"},"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../components/IComponent.sol\";\r\n\r\ninterface IComponentOwnerService {\r\n\r\n function propose(IComponent component) external;\r\n\r\n function stake(uint256 id) external;\r\n function withdraw(uint256 id) external;\r\n\r\n function pause(uint256 id) external; \r\n function unpause(uint256 id) external;\r\n\r\n function archive(uint256 id) external;\r\n}"},"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../modules/ITreasury.sol\";\n\ninterface IInstanceOperatorService {\n\n // registry\n function prepareRelease(bytes32 newRelease) external;\n function register(bytes32 contractName, address contractAddress) external;\n function deregister(bytes32 contractName) external;\n function registerInRelease(bytes32 release, bytes32 contractName, address contractAddress) external;\n function deregisterInRelease(bytes32 release, bytes32 contractName) external;\n\n // access\n function createRole(bytes32 role) external;\n function invalidateRole(bytes32 role) external;\n function grantRole(bytes32 role, address principal) external;\n function revokeRole(bytes32 role, address principal) external;\n\n // component\n function approve(uint256 id) external;\n function decline(uint256 id) external;\n function suspend(uint256 id) external;\n function resume(uint256 id) external;\n function archive(uint256 id) external;\n \n // service staking\n function setDefaultStaking(uint16 componentType, bytes calldata data) external;\n function adjustStakingRequirements(uint256 id, bytes calldata data) external;\n\n // treasury\n function suspendTreasury() external;\n function resumeTreasury() external;\n \n function setInstanceWallet(address walletAddress) external;\n function setRiskpoolWallet(uint256 riskpoolId, address walletAddress) external; \n function setProductToken(uint256 productId, address erc20Address) external; \n\n function setPremiumFees(ITreasury.FeeSpecification calldata feeSpec) external;\n function setCapitalFees(ITreasury.FeeSpecification calldata feeSpec) external;\n \n function createFeeSpecification(\n uint256 componentId,\n uint256 fixedFee,\n uint256 fractionalFee,\n bytes calldata feeCalculationData\n ) external view returns(ITreasury.FeeSpecification memory);\n\n\n}\n"},"@etherisc/gif-interface/contracts/services/IInstanceService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../components/IComponent.sol\";\nimport \"../modules/IBundle.sol\";\nimport \"../modules/IPolicy.sol\";\nimport \"../modules/IPool.sol\";\nimport \"../tokens/IBundleToken.sol\";\nimport \"./IComponentOwnerService.sol\";\nimport \"./IInstanceOperatorService.sol\";\nimport \"./IOracleService.sol\";\nimport \"./IProductService.sol\";\nimport \"./IRiskpoolService.sol\";\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\ninterface IInstanceService {\n\n // instance\n function getChainId() external view returns(uint256 chainId);\n function getChainName() external view returns(string memory chainName);\n function getInstanceId() external view returns(bytes32 instanceId);\n function getInstanceOperator() external view returns(address instanceOperator);\n\n // registry\n function getComponentOwnerService() external view returns(IComponentOwnerService service);\n function getInstanceOperatorService() external view returns(IInstanceOperatorService service);\n function getOracleService() external view returns(IOracleService service);\n function getProductService() external view returns(IProductService service);\n function getRiskpoolService() external view returns(IRiskpoolService service);\n function contracts() external view returns (uint256 numberOfContracts);\n function contractName(uint256 idx) external view returns (bytes32 name);\n\n // access\n function getDefaultAdminRole() external view returns(bytes32 role);\n function getProductOwnerRole() external view returns(bytes32 role);\n function getOracleProviderRole() external view returns(bytes32 role);\n function getRiskpoolKeeperRole() external view returns(bytes32 role);\n function hasRole(bytes32 role, address principal) external view returns (bool roleIsAssigned); \n\n // component\n function products() external view returns(uint256 numberOfProducts);\n function oracles() external view returns(uint256 numberOfOracles);\n function riskpools() external view returns(uint256 numberOfRiskpools);\n\n function getComponentId(address componentAddress) external view returns(uint256 componentId);\n function getComponent(uint256 componentId) external view returns(IComponent component);\n function getComponentType(uint256 componentId) external view returns(IComponent.ComponentType componentType);\n function getComponentState(uint256 componentId) external view returns(IComponent.ComponentState componentState);\n\n // service staking\n function getStakingRequirements(uint256 componentId) external view returns(bytes memory data);\n function getStakedAssets(uint256 componentId) external view returns(bytes memory data);\n\n // riskpool\n function getRiskpool(uint256 riskpoolId) external view returns(IPool.Pool memory riskPool);\n function getFullCollateralizationLevel() external view returns (uint256);\n function getCapital(uint256 riskpoolId) external view returns(uint256 capitalAmount);\n function getTotalValueLocked(uint256 riskpoolId) external view returns(uint256 totalValueLockedAmount);\n function getCapacity(uint256 riskpoolId) external view returns(uint256 capacityAmount);\n function getBalance(uint256 riskpoolId) external view returns(uint256 balanceAmount);\n\n function activeBundles(uint256 riskpoolId) external view returns(uint256 numberOfActiveBundles);\n function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external view returns(uint256 bundleId);\n function getMaximumNumberOfActiveBundles(uint256 riskpoolId) external view returns(uint256 maximumNumberOfActiveBundles);\n\n // bundles\n function getBundleToken() external view returns(IBundleToken token);\n function bundles() external view returns(uint256 numberOfBundles);\n function getBundle(uint256 bundleId) external view returns(IBundle.Bundle memory bundle);\n function unburntBundles(uint256 riskpoolId) external view returns(uint256 numberOfUnburntBundles);\n\n // policy\n function processIds() external view returns(uint256 numberOfProcessIds);\n function getMetadata(bytes32 processId) external view returns(IPolicy.Metadata memory metadata);\n function getApplication(bytes32 processId) external view returns(IPolicy.Application memory application);\n function getPolicy(bytes32 processId) external view returns(IPolicy.Policy memory policy);\n function claims(bytes32 processId) external view returns(uint256 numberOfClaims);\n function payouts(bytes32 processId) external view returns(uint256 numberOfPayouts);\n\n function getClaim(bytes32 processId, uint256 claimId) external view returns (IPolicy.Claim memory claim);\n function getPayout(bytes32 processId, uint256 payoutId) external view returns (IPolicy.Payout memory payout);\n\n // treasury\n function getTreasuryAddress() external view returns(address treasuryAddress);\n \n function getInstanceWallet() external view returns(address walletAddress);\n function getRiskpoolWallet(uint256 riskpoolId) external view returns(address walletAddress);\n \n function getComponentToken(uint256 componentId) external view returns(IERC20 token);\n function getFeeFractionFullUnit() external view returns(uint256 fullUnit);\n\n}\n"},"@etherisc/gif-interface/contracts/services/IOracleService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IOracleService {\n\n function respond(uint256 requestId, bytes calldata data) external;\n}\n"},"@etherisc/gif-interface/contracts/services/IProductService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IProductService {\n\n function newApplication(\n address owner,\n uint256 premiumAmount,\n uint256 sumInsuredAmount,\n bytes calldata metaData, \n bytes calldata applicationData \n ) external returns(bytes32 processId);\n\n function collectPremium(bytes32 processId, uint256 amount) external\n returns(\n bool success,\n uint256 feeAmount,\n uint256 netPremiumAmount\n );\n \n function adjustPremiumSumInsured(\n bytes32 processId, \n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n ) external;\n\n function revoke(bytes32 processId) external;\n function underwrite(bytes32 processId) external returns(bool success);\n function decline(bytes32 processId) external;\n function expire(bytes32 processId) external;\n function close(bytes32 processId) external;\n\n function newClaim(\n bytes32 processId, \n uint256 claimAmount,\n bytes calldata data\n ) external returns(uint256 claimId);\n\n function confirmClaim(\n bytes32 processId, \n uint256 claimId, \n uint256 confirmedAmount\n ) external;\n\n function declineClaim(bytes32 processId, uint256 claimId) external;\n function closeClaim(bytes32 processId, uint256 claimId) external;\n\n function newPayout(\n bytes32 processId, \n uint256 claimId, \n uint256 amount,\n bytes calldata data\n ) external returns(uint256 payoutId);\n\n function processPayout(bytes32 processId, uint256 payoutId) external\n returns(\n uint256 feeAmount,\n uint256 netPayoutAmount\n );\n\n function request(\n bytes32 processId,\n bytes calldata data,\n string calldata callbackMethodName,\n address callbackContractAddress,\n uint256 responsibleOracleId\n ) external returns(uint256 requestId);\n\n function cancelRequest(uint256 requestId) external;\n}\n"},"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IRiskpoolService {\n\n function registerRiskpool(\n address wallet,\n address erc20Token,\n uint256 collateralization, \n uint256 sumOfSumInsuredCap\n ) external;\n\n function createBundle(address owner_, bytes calldata filter_, uint256 amount_) external returns(uint256 bundleId);\n function fundBundle(uint256 bundleId, uint256 amount) external returns(uint256 netAmount);\n function defundBundle(uint256 bundleId, uint256 amount) external returns(uint256 netAmount);\n\n function lockBundle(uint256 bundleId) external;\n function unlockBundle(uint256 bundleId) external;\n function closeBundle(uint256 bundleId) external;\n function burnBundle(uint256 bundleId) external;\n\n function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 collateralAmount) external;\n function processPremium(uint256 bundleId, bytes32 processId, uint256 amount) external;\n function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) external;\n function releasePolicy(uint256 bundleId, bytes32 processId) external returns(uint256 collateralAmount);\n\n function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles) external;\n}\n\n"},"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\ninterface ICoreProxy {\r\n\r\n event LogCoreContractUpgraded (\r\n address oldImplementation, \r\n address newImplemntation\r\n );\r\n\r\n}\r\n"},"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\ninterface IBundleToken is\n IERC721\n{\n event LogBundleTokenMinted(uint256 bundleId, uint256 tokenId, address tokenOwner);\n event LogBundleTokenBurned(uint256 bundleId, uint256 tokenId); \n\n function burned(uint tokenId) external view returns(bool isBurned);\n function exists(uint256 tokenId) external view returns(bool doesExist);\n function getBundleId(uint256 tokenId) external view returns(uint256 bundleId);\n function totalSupply() external view returns(uint256 tokenCount);\n}\n"},"@openzeppelin/contracts/access/AccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\nimport \"../utils/Context.sol\";\nimport \"../utils/Strings.sol\";\nimport \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n struct RoleData {\n mapping(address => bool) members;\n bytes32 adminRole;\n }\n\n mapping(bytes32 => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Modifier that checks that an account has a specific role. Reverts\n * with a standardized message including the required role.\n *\n * The format of the revert reason is given by the following regular expression:\n *\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n *\n * _Available since v4.1._\n */\n modifier onlyRole(bytes32 role) {\n _checkRole(role);\n _;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view virtual override returns (bool) {\n return _roles[role].members[account];\n }\n\n /**\n * @dev Revert with a standard message if `_msgSender()` is missing `role`.\n * Overriding this function changes the behavior of the {onlyRole} modifier.\n *\n * Format of the revert message is described in {_checkRole}.\n *\n * _Available since v4.6._\n */\n function _checkRole(bytes32 role) internal view virtual {\n _checkRole(role, _msgSender());\n }\n\n /**\n * @dev Revert with a standard message if `account` is missing `role`.\n *\n * The format of the revert reason is given by the following regular expression:\n *\n * /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n */\n function _checkRole(bytes32 role, address account) internal view virtual {\n if (!hasRole(role, account)) {\n revert(\n string(\n abi.encodePacked(\n \"AccessControl: account \",\n Strings.toHexString(uint160(account), 20),\n \" is missing role \",\n Strings.toHexString(uint256(role), 32)\n )\n )\n );\n }\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view virtual override returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleGranted} event.\n */\n function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleRevoked} event.\n */\n function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) {\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n *\n * May emit a {RoleRevoked} event.\n */\n function renounceRole(bytes32 role, address account) public virtual override {\n require(account == _msgSender(), \"AccessControl: can only renounce roles for self\");\n\n _revokeRole(role, account);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event. Note that unlike {grantRole}, this function doesn't perform any\n * checks on the calling account.\n *\n * May emit a {RoleGranted} event.\n *\n * [WARNING]\n * ====\n * This function should only be called from the constructor when setting\n * up the initial roles for the system.\n *\n * Using this function in any other way is effectively circumventing the admin\n * system imposed by {AccessControl}.\n * ====\n *\n * NOTE: This function is deprecated in favor of {_grantRole}.\n */\n function _setupRole(bytes32 role, address account) internal virtual {\n _grantRole(role, account);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n bytes32 previousAdminRole = getRoleAdmin(role);\n _roles[role].adminRole = adminRole;\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleGranted} event.\n */\n function _grantRole(bytes32 role, address account) internal virtual {\n if (!hasRole(role, account)) {\n _roles[role].members[account] = true;\n emit RoleGranted(role, account, _msgSender());\n }\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleRevoked} event.\n */\n function _revokeRole(bytes32 role, address account) internal virtual {\n if (hasRole(role, account)) {\n _roles[role].members[account] = false;\n emit RoleRevoked(role, account, _msgSender());\n }\n }\n}\n"},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControlEnumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControlEnumerable.sol\";\nimport \"./AccessControl.sol\";\nimport \"../utils/structs/EnumerableSet.sol\";\n\n/**\n * @dev Extension of {AccessControl} that allows enumerating the members of each role.\n */\nabstract contract AccessControlEnumerable is IAccessControlEnumerable, AccessControl {\n using EnumerableSet for EnumerableSet.AddressSet;\n\n mapping(bytes32 => EnumerableSet.AddressSet) private _roleMembers;\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControlEnumerable).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns one of the accounts that have `role`. `index` must be a\n * value between 0 and {getRoleMemberCount}, non-inclusive.\n *\n * Role bearers are not sorted in any particular way, and their ordering may\n * change at any point.\n *\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n * you perform all queries on the same block. See the following\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n * for more information.\n */\n function getRoleMember(bytes32 role, uint256 index) public view virtual override returns (address) {\n return _roleMembers[role].at(index);\n }\n\n /**\n * @dev Returns the number of accounts that have `role`. Can be used\n * together with {getRoleMember} to enumerate all bearers of a role.\n */\n function getRoleMemberCount(bytes32 role) public view virtual override returns (uint256) {\n return _roleMembers[role].length();\n }\n\n /**\n * @dev Overload {_grantRole} to track enumerable memberships\n */\n function _grantRole(bytes32 role, address account) internal virtual override {\n super._grantRole(role, account);\n _roleMembers[role].add(account);\n }\n\n /**\n * @dev Overload {_revokeRole} to track enumerable memberships\n */\n function _revokeRole(bytes32 role, address account) internal virtual override {\n super._revokeRole(role, account);\n _roleMembers[role].remove(account);\n }\n}\n"},"@openzeppelin/contracts/access/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControl.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev External interface of AccessControl declared to support ERC165 detection.\n */\ninterface IAccessControl {\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n *\n * _Available since v3.1._\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call, an admin role\n * bearer except when using {AccessControl-_setupRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) external view returns (bool);\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `account`.\n */\n function renounceRole(bytes32 role, address account) external;\n}\n"},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (access/IAccessControlEnumerable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IAccessControl.sol\";\n\n/**\n * @dev External interface of AccessControlEnumerable declared to support ERC165 detection.\n */\ninterface IAccessControlEnumerable is IAccessControl {\n /**\n * @dev Returns one of the accounts that have `role`. `index` must be a\n * value between 0 and {getRoleMemberCount}, non-inclusive.\n *\n * Role bearers are not sorted in any particular way, and their ordering may\n * change at any point.\n *\n * WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n * you perform all queries on the same block. See the following\n * https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n * for more information.\n */\n function getRoleMember(bytes32 role, uint256 index) external view returns (address);\n\n /**\n * @dev Returns the number of accounts that have `role`. Can be used\n * together with {getRoleMember} to enumerate all bearers of a role.\n */\n function getRoleMemberCount(bytes32 role) external view returns (uint256);\n}\n"},"@openzeppelin/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor() {\n _transferOwnership(_msgSender());\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"},"@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n * proxy whose upgrades are fully controlled by the current implementation.\n */\ninterface IERC1822Proxiable {\n /**\n * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n * address.\n *\n * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n * function revert if invoked through a proxy.\n */\n function proxiableUUID() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This is the interface that {BeaconProxy} expects of its beacon.\n */\ninterface IBeacon {\n /**\n * @dev Must return an address that can be used as a delegate call target.\n *\n * {BeaconProxy} will check that this address is a contract.\n */\n function implementation() external view returns (address);\n}\n"},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Proxy.sol\";\nimport \"./ERC1967Upgrade.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\n /**\n * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n *\n * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n * function call, and allows initializing the storage of the proxy like a Solidity constructor.\n */\n constructor(address _logic, bytes memory _data) payable {\n _upgradeToAndCall(_logic, _data, false);\n }\n\n /**\n * @dev Returns the current implementation address.\n */\n function _implementation() internal view virtual override returns (address impl) {\n return ERC1967Upgrade._getImplementation();\n }\n}\n"},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.5.0) (proxy/ERC1967/ERC1967Upgrade.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../beacon/IBeacon.sol\";\nimport \"../../interfaces/draft-IERC1822.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/StorageSlot.sol\";\n\n/**\n * @dev This abstract contract provides getters and event emitting update functions for\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n *\n * _Available since v4.1._\n *\n * @custom:oz-upgrades-unsafe-allow delegatecall\n */\nabstract contract ERC1967Upgrade {\n // This is the keccak-256 hash of \"eip1967.proxy.rollback\" subtracted by 1\n bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143;\n\n /**\n * @dev Storage slot with the address of the current implementation.\n * This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n * validated in the constructor.\n */\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n\n /**\n * @dev Emitted when the implementation is upgraded.\n */\n event Upgraded(address indexed implementation);\n\n /**\n * @dev Returns the current implementation address.\n */\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 implementation slot.\n */\n function _setImplementation(address newImplementation) private {\n require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n\n /**\n * @dev Perform implementation upgrade\n *\n * Emits an {Upgraded} event.\n */\n function _upgradeTo(address newImplementation) internal {\n _setImplementation(newImplementation);\n emit Upgraded(newImplementation);\n }\n\n /**\n * @dev Perform implementation upgrade with additional setup call.\n *\n * Emits an {Upgraded} event.\n */\n function _upgradeToAndCall(\n address newImplementation,\n bytes memory data,\n bool forceCall\n ) internal {\n _upgradeTo(newImplementation);\n if (data.length > 0 || forceCall) {\n Address.functionDelegateCall(newImplementation, data);\n }\n }\n\n /**\n * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n *\n * Emits an {Upgraded} event.\n */\n function _upgradeToAndCallUUPS(\n address newImplementation,\n bytes memory data,\n bool forceCall\n ) internal {\n // Upgrades from old implementations will perform a rollback test. This test requires the new\n // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing\n // this special case will break upgrade paths from old UUPS implementation to new ones.\n if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) {\n _setImplementation(newImplementation);\n } else {\n try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) {\n require(slot == _IMPLEMENTATION_SLOT, \"ERC1967Upgrade: unsupported proxiableUUID\");\n } catch {\n revert(\"ERC1967Upgrade: new implementation is not UUPS\");\n }\n _upgradeToAndCall(newImplementation, data, forceCall);\n }\n }\n\n /**\n * @dev Storage slot with the admin of the contract.\n * This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n * validated in the constructor.\n */\n bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;\n\n /**\n * @dev Emitted when the admin account has changed.\n */\n event AdminChanged(address previousAdmin, address newAdmin);\n\n /**\n * @dev Returns the current admin.\n */\n function _getAdmin() internal view returns (address) {\n return StorageSlot.getAddressSlot(_ADMIN_SLOT).value;\n }\n\n /**\n * @dev Stores a new address in the EIP1967 admin slot.\n */\n function _setAdmin(address newAdmin) private {\n require(newAdmin != address(0), \"ERC1967: new admin is the zero address\");\n StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin;\n }\n\n /**\n * @dev Changes the admin of the proxy.\n *\n * Emits an {AdminChanged} event.\n */\n function _changeAdmin(address newAdmin) internal {\n emit AdminChanged(_getAdmin(), newAdmin);\n _setAdmin(newAdmin);\n }\n\n /**\n * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\n */\n bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50;\n\n /**\n * @dev Emitted when the beacon is upgraded.\n */\n event BeaconUpgraded(address indexed beacon);\n\n /**\n * @dev Returns the current beacon.\n */\n function _getBeacon() internal view returns (address) {\n return StorageSlot.getAddressSlot(_BEACON_SLOT).value;\n }\n\n /**\n * @dev Stores a new beacon in the EIP1967 beacon slot.\n */\n function _setBeacon(address newBeacon) private {\n require(Address.isContract(newBeacon), \"ERC1967: new beacon is not a contract\");\n require(\n Address.isContract(IBeacon(newBeacon).implementation()),\n \"ERC1967: beacon implementation is not a contract\"\n );\n StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\n }\n\n /**\n * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n *\n * Emits a {BeaconUpgraded} event.\n */\n function _upgradeBeaconToAndCall(\n address newBeacon,\n bytes memory data,\n bool forceCall\n ) internal {\n _setBeacon(newBeacon);\n emit BeaconUpgraded(newBeacon);\n if (data.length > 0 || forceCall) {\n Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data);\n }\n }\n}\n"},"@openzeppelin/contracts/proxy/Proxy.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n * be specified by overriding the virtual {_implementation} function.\n *\n * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n * different contract through the {_delegate} function.\n *\n * The success and return data of the delegated call will be returned back to the caller of the proxy.\n */\nabstract contract Proxy {\n /**\n * @dev Delegates the current call to `implementation`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n */\n function _delegate(address implementation) internal virtual {\n assembly {\n // Copy msg.data. We take full control of memory in this inline assembly\n // block because it will not return to Solidity code. We overwrite the\n // Solidity scratch pad at memory position 0.\n calldatacopy(0, 0, calldatasize())\n\n // Call the implementation.\n // out and outsize are 0 because we don't know the size yet.\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n // Copy the returned data.\n returndatacopy(0, 0, returndatasize())\n\n switch result\n // delegatecall returns 0 on error.\n case 0 {\n revert(0, returndatasize())\n }\n default {\n return(0, returndatasize())\n }\n }\n }\n\n /**\n * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function\n * and {_fallback} should delegate.\n */\n function _implementation() internal view virtual returns (address);\n\n /**\n * @dev Delegates the current call to the address returned by `_implementation()`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n */\n function _fallback() internal virtual {\n _beforeFallback();\n _delegate(_implementation());\n }\n\n /**\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n * function in the contract matches the call data.\n */\n fallback() external payable virtual {\n _fallback();\n }\n\n /**\n * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n * is empty.\n */\n receive() external payable virtual {\n _fallback();\n }\n\n /**\n * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n * call, or as part of the Solidity `fallback` or `receive` functions.\n *\n * If overridden should call `super._beforeFallback()`.\n */\n function _beforeFallback() internal virtual {}\n}\n"},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.2;\n\nimport \"../../utils/Address.sol\";\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * contract MyToken is ERC20Upgradeable {\n * function initialize() initializer public {\n * __ERC20_init(\"MyToken\", \"MTK\");\n * }\n * }\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n * function initializeV2() reinitializer(2) public {\n * __ERC20Permit_init(\"MyToken\");\n * }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n * _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Indicates that the contract has been initialized.\n * @custom:oz-retyped-from bool\n */\n uint8 private _initialized;\n\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool private _initializing;\n\n /**\n * @dev Triggered when the contract has been initialized or reinitialized.\n */\n event Initialized(uint8 version);\n\n /**\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n * `onlyInitializing` functions can be used to initialize parent contracts. Equivalent to `reinitializer(1)`.\n */\n modifier initializer() {\n bool isTopLevelCall = !_initializing;\n require(\n (isTopLevelCall && _initialized < 1) || (!Address.isContract(address(this)) && _initialized == 1),\n \"Initializable: contract is already initialized\"\n );\n _initialized = 1;\n if (isTopLevelCall) {\n _initializing = true;\n }\n _;\n if (isTopLevelCall) {\n _initializing = false;\n emit Initialized(1);\n }\n }\n\n /**\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n * used to initialize parent contracts.\n *\n * `initializer` is equivalent to `reinitializer(1)`, so a reinitializer may be used after the original\n * initialization step. This is essential to configure modules that are added through upgrades and that require\n * initialization.\n *\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n * a contract, executing them in the right order is up to the developer or operator.\n */\n modifier reinitializer(uint8 version) {\n require(!_initializing && _initialized < version, \"Initializable: contract is already initialized\");\n _initialized = version;\n _initializing = true;\n _;\n _initializing = false;\n emit Initialized(version);\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\n */\n modifier onlyInitializing() {\n require(_initializing, \"Initializable: contract is not initializing\");\n _;\n }\n\n /**\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n * through proxies.\n */\n function _disableInitializers() internal virtual {\n require(!_initializing, \"Initializable: contract is initializing\");\n if (_initialized < type(uint8).max) {\n _initialized = type(uint8).max;\n emit Initialized(type(uint8).max);\n }\n }\n}\n"},"@openzeppelin/contracts/security/Pausable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\nabstract contract Pausable is Context {\n /**\n * @dev Emitted when the pause is triggered by `account`.\n */\n event Paused(address account);\n\n /**\n * @dev Emitted when the pause is lifted by `account`.\n */\n event Unpaused(address account);\n\n bool private _paused;\n\n /**\n * @dev Initializes the contract in unpaused state.\n */\n constructor() {\n _paused = false;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is not paused.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n modifier whenNotPaused() {\n _requireNotPaused();\n _;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is paused.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n modifier whenPaused() {\n _requirePaused();\n _;\n }\n\n /**\n * @dev Returns true if the contract is paused, and false otherwise.\n */\n function paused() public view virtual returns (bool) {\n return _paused;\n }\n\n /**\n * @dev Throws if the contract is paused.\n */\n function _requireNotPaused() internal view virtual {\n require(!paused(), \"Pausable: paused\");\n }\n\n /**\n * @dev Throws if the contract is not paused.\n */\n function _requirePaused() internal view virtual {\n require(paused(), \"Pausable: not paused\");\n }\n\n /**\n * @dev Triggers stopped state.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n function _pause() internal virtual whenNotPaused {\n _paused = true;\n emit Paused(_msgSender());\n }\n\n /**\n * @dev Returns to normal state.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n function _unpause() internal virtual whenPaused {\n _paused = false;\n emit Unpaused(_msgSender());\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC20.sol\";\nimport \"./extensions/IERC20Metadata.sol\";\nimport \"../../utils/Context.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20PresetMinterPauser}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20, IERC20Metadata {\n mapping(address => uint256) private _balances;\n\n mapping(address => mapping(address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * The default value of {decimals} is 18. To select a different value for\n * {decimals} you should overload it.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the value {ERC20} uses, unless this function is\n * overridden;\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual override returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual override returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address to, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual override returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public virtual override returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `amount`.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public virtual override returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, amount);\n _transfer(from, to, amount);\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, allowance(owner, spender) + addedValue);\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {\n address owner = _msgSender();\n uint256 currentAllowance = allowance(owner, spender);\n require(currentAllowance >= subtractedValue, \"ERC20: decreased allowance below zero\");\n unchecked {\n _approve(owner, spender, currentAllowance - subtractedValue);\n }\n\n return true;\n }\n\n /**\n * @dev Moves `amount` of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `from` must have a balance of at least `amount`.\n */\n function _transfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {\n require(from != address(0), \"ERC20: transfer from the zero address\");\n require(to != address(0), \"ERC20: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, amount);\n\n uint256 fromBalance = _balances[from];\n require(fromBalance >= amount, \"ERC20: transfer amount exceeds balance\");\n unchecked {\n _balances[from] = fromBalance - amount;\n }\n _balances[to] += amount;\n\n emit Transfer(from, to, amount);\n\n _afterTokenTransfer(from, to, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _beforeTokenTransfer(address(0), account, amount);\n\n _totalSupply += amount;\n _balances[account] += amount;\n emit Transfer(address(0), account, amount);\n\n _afterTokenTransfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements:\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal virtual {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _beforeTokenTransfer(account, address(0), amount);\n\n uint256 accountBalance = _balances[account];\n require(accountBalance >= amount, \"ERC20: burn amount exceeds balance\");\n unchecked {\n _balances[account] = accountBalance - amount;\n }\n _totalSupply -= amount;\n\n emit Transfer(account, address(0), amount);\n\n _afterTokenTransfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n *\n * Does not update the allowance amount in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Might emit an {Approval} event.\n */\n function _spendAllowance(\n address owner,\n address spender,\n uint256 amount\n ) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n require(currentAllowance >= amount, \"ERC20: insufficient allowance\");\n unchecked {\n _approve(owner, spender, currentAllowance - amount);\n }\n }\n }\n\n /**\n * @dev Hook that is called before any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * will be transferred to `to`.\n * - when `from` is zero, `amount` tokens will be minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n * has been transferred to `to`.\n * - when `from` is zero, `amount` tokens have been minted for `to`.\n * - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 amount\n ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n *\n * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n * need to send a transaction, and thus is not required to hold Ether at all.\n */\ninterface IERC20Permit {\n /**\n * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n * given ``owner``'s signed approval.\n *\n * IMPORTANT: The same issues {IERC20-approve} has related to transaction\n * ordering also apply here.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `deadline` must be a timestamp in the future.\n * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n * over the EIP712-formatted function arguments.\n * - the signature must use ``owner``'s current nonce (see {nonces}).\n *\n * For more information on the signature format, see the\n * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n * section].\n */\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n /**\n * @dev Returns the current nonce for `owner`. This value must be\n * included whenever a signature is generated for {permit}.\n *\n * Every successful call to {permit} increases ``owner``'s nonce by one. This\n * prevents a signature from being used multiple times.\n */\n function nonces(address owner) external view returns (uint256);\n\n /**\n * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\n */\n // solhint-disable-next-line func-name-mixedcase\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n *\n * _Available since v4.1._\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `from` to `to` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) external returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/utils/SafeERC20.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC20.sol\";\nimport \"../extensions/draft-IERC20Permit.sol\";\nimport \"../../../utils/Address.sol\";\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using Address for address;\n\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n require(\n (value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n }\n\n function safeIncreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n uint256 newAllowance = token.allowance(address(this), spender) + value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n function safeDecreaseAllowance(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n unchecked {\n uint256 oldAllowance = token.allowance(address(this), spender);\n require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n uint256 newAllowance = oldAllowance - value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n }\n\n function safePermit(\n IERC20Permit token,\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal {\n uint256 nonceBefore = token.nonces(owner);\n token.permit(owner, spender, value, deadline, v, r, s);\n uint256 nonceAfter = token.nonces(owner);\n require(nonceAfter == nonceBefore + 1, \"SafeERC20: permit did not succeed\");\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n if (returndata.length > 0) {\n // Return data is optional\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/ERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC721.sol\";\nimport \"./IERC721Receiver.sol\";\nimport \"./extensions/IERC721Metadata.sol\";\nimport \"../../utils/Address.sol\";\nimport \"../../utils/Context.sol\";\nimport \"../../utils/Strings.sol\";\nimport \"../../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n * the Metadata extension, but not including the Enumerable extension, which is available separately as\n * {ERC721Enumerable}.\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata {\n using Address for address;\n using Strings for uint256;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Mapping from token ID to owner address\n mapping(uint256 => address) private _owners;\n\n // Mapping owner address to token count\n mapping(address => uint256) private _balances;\n\n // Mapping from token ID to approved address\n mapping(uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {\n return\n interfaceId == type(IERC721).interfaceId ||\n interfaceId == type(IERC721Metadata).interfaceId ||\n super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: address zero is not a valid owner\");\n return _balances[owner];\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n address owner = _owners[tokenId];\n require(owner != address(0), \"ERC721: invalid token ID\");\n return owner;\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n _requireMinted(tokenId);\n\n string memory baseURI = _baseURI();\n return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : \"\";\n }\n\n /**\n * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n * token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n * by default, can be overridden in child contracts.\n */\n function _baseURI() internal view virtual returns (string memory) {\n return \"\";\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(\n _msgSender() == owner || isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not token owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n _requireMinted(tokenId);\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n _setApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: caller is not token owner nor approved\");\n _safeTransfer(from, to, tokenId, data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _owners[tokenId] != address(0);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(\n address to,\n uint256 tokenId,\n bytes memory data\n ) internal virtual {\n _mint(to, tokenId);\n require(\n _checkOnERC721Received(address(0), to, tokenId, data),\n \"ERC721: transfer to non ERC721Receiver implementer\"\n );\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _balances[to] += 1;\n _owners[tokenId] = to;\n\n emit Transfer(address(0), to, tokenId);\n\n _afterTokenTransfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId);\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n _balances[owner] -= 1;\n delete _owners[tokenId];\n\n emit Transfer(owner, address(0), tokenId);\n\n _afterTokenTransfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer from incorrect owner\");\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _balances[from] -= 1;\n _balances[to] += 1;\n _owners[tokenId] = to;\n\n emit Transfer(from, to, tokenId);\n\n _afterTokenTransfer(from, to, tokenId);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId);\n }\n\n /**\n * @dev Approve `operator` to operate on all of `owner` tokens\n *\n * Emits an {ApprovalForAll} event.\n */\n function _setApprovalForAll(\n address owner,\n address operator,\n bool approved\n ) internal virtual {\n require(owner != operator, \"ERC721: approve to caller\");\n _operatorApprovals[owner][operator] = approved;\n emit ApprovalForAll(owner, operator, approved);\n }\n\n /**\n * @dev Reverts if the `tokenId` has not been minted yet.\n */\n function _requireMinted(uint256 tokenId) internal view virtual {\n require(_exists(tokenId), \"ERC721: invalid token ID\");\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(\n address from,\n address to,\n uint256 tokenId,\n bytes memory data\n ) private returns (bool) {\n if (to.isContract()) {\n try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {\n return retval == IERC721Receiver.onERC721Received.selector;\n } catch (bytes memory reason) {\n if (reason.length == 0) {\n revert(\"ERC721: transfer to non ERC721Receiver implementer\");\n } else {\n /// @solidity memory-safe-assembly\n assembly {\n revert(add(32, reason), mload(reason))\n }\n }\n }\n } else {\n return true;\n }\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {}\n\n /**\n * @dev Hook that is called after any transfer of tokens. This includes\n * minting and burning.\n *\n * Calling conditions:\n *\n * - when `from` and `to` are both non-zero.\n * - `from` and `to` are never both zero.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _afterTokenTransfer(\n address from,\n address to,\n uint256 tokenId\n ) internal virtual {}\n}\n"},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../IERC721.sol\";\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../../utils/introspection/IERC165.sol\";\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId,\n bytes calldata data\n ) external;\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address from,\n address to,\n uint256 tokenId\n ) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n}\n"},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\n */\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external returns (bytes4);\n}\n"},"@openzeppelin/contracts/utils/Address.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol)\n\npragma solidity ^0.8.1;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n *\n * [IMPORTANT]\n * ====\n * You shouldn't rely on `isContract` to protect against flash loan attacks!\n *\n * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n * constructor.\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize/address.code.length, which returns 0\n // for contracts in construction, since the code is only stored at the end\n // of the constructor execution.\n\n return account.code.length > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n (bool success, ) = recipient.call{value: amount}(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain `call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value\n ) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(\n address target,\n bytes memory data,\n uint256 value,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n (bool success, bytes memory returndata) = target.call{value: value}(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n (bool success, bytes memory returndata) = target.staticcall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(\n address target,\n bytes memory data,\n string memory errorMessage\n ) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n * revert reason using the provided one.\n *\n * _Available since v4.3._\n */\n function verifyCallResult(\n bool success,\n bytes memory returndata,\n string memory errorMessage\n ) internal pure returns (bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n /// @solidity memory-safe-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n *\n * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n"},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n"},"@openzeppelin/contracts/utils/StorageSlot.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/StorageSlot.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC1967 implementation slot:\n * ```\n * contract ERC1967 {\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n *\n * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n /// @solidity memory-safe-assembly\n assembly {\n r.slot := slot\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant _HEX_SYMBOLS = \"0123456789abcdef\";\n uint8 private constant _ADDRESS_LENGTH = 20;\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n while (value != 0) {\n digits -= 1;\n buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\n value /= 10;\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n if (value == 0) {\n return \"0x00\";\n }\n uint256 temp = value;\n uint256 length = 0;\n while (temp != 0) {\n length++;\n temp >>= 8;\n }\n return toHexString(value, length);\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = _HEX_SYMBOLS[value & 0xf];\n value >>= 4;\n }\n require(value == 0, \"Strings: hex length insufficient\");\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);\n }\n}\n"},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (utils/structs/EnumerableSet.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n *\n * [WARNING]\n * ====\n * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable.\n * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n *\n * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet.\n * ====\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping(bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) {\n // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n if (lastIndex != toDeleteIndex) {\n bytes32 lastValue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastValue;\n // Update the index for the moved value\n set._indexes[lastValue] = valueIndex; // Replace lastValue's index to valueIndex\n }\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n return set._values[index];\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function _values(Set storage set) private view returns (bytes32[] memory) {\n return set._values;\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {\n return _values(set._inner);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(AddressSet storage set) internal view returns (address[] memory) {\n bytes32[] memory store = _values(set._inner);\n address[] memory result;\n\n /// @solidity memory-safe-assembly\n assembly {\n result := store\n }\n\n return result;\n }\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(UintSet storage set) internal view returns (uint256[] memory) {\n bytes32[] memory store = _values(set._inner);\n uint256[] memory result;\n\n /// @solidity memory-safe-assembly\n assembly {\n result := store\n }\n\n return result;\n }\n}\n"},"contracts/examples/AyiiOracle.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.2;\n\nimport \"./strings.sol\";\n\nimport \"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\";\nimport \"@etherisc/gif-interface/contracts/components/Oracle.sol\";\n\ncontract AyiiOracle is \n Oracle, ChainlinkClient \n{\n using strings for bytes32;\n using Chainlink for Chainlink.Request;\n\n mapping(bytes32 /* Chainlink request ID */ => uint256 /* GIF request ID */) public gifRequests;\n bytes32 public jobId;\n uint256 public payment;\n\n event LogAyiiRequest(uint256 requestId, bytes32 chainlinkRequestId);\n \n event LogAyiiFulfill(\n uint256 requestId, \n bytes32 chainlinkRequestId, \n bytes32 projectId,\n bytes32 uaiId,\n bytes32 cropId,\n uint256 aaay\n );\n\n constructor(\n bytes32 _name,\n address _registry,\n address _chainLinkToken,\n address _chainLinkOperator,\n bytes32 _jobId,\n uint256 _payment\n )\n Oracle(_name, _registry)\n {\n updateRequestDetails(\n _chainLinkToken, \n _chainLinkOperator, \n _jobId, \n _payment);\n }\n\n function updateRequestDetails(\n address _chainLinkToken,\n address _chainLinkOperator,\n bytes32 _jobId,\n uint256 _payment\n ) \n public \n onlyOwner \n {\n if (_chainLinkToken != address(0)) { setChainlinkToken(_chainLinkToken); }\n if (_chainLinkOperator != address(0)) { setChainlinkOracle(_chainLinkOperator); }\n \n jobId = _jobId;\n payment = _payment;\n }\n\n function request(uint256 gifRequestId, bytes calldata input)\n external override\n onlyQuery\n {\n Chainlink.Request memory request_ = buildChainlinkRequest(\n jobId,\n address(this),\n this.fulfill.selector\n );\n\n (\n bytes32 projectId, \n bytes32 uaiId, \n bytes32 cropId\n ) = abi.decode(input, (bytes32, bytes32, bytes32));\n\n request_.add(\"projectId\", projectId.toB32String());\n request_.add(\"uaiId\", uaiId.toB32String());\n request_.add(\"cropId\", cropId.toB32String());\n\n bytes32 chainlinkRequestId = sendChainlinkRequest(request_, payment);\n\n gifRequests[chainlinkRequestId] = gifRequestId;\n emit LogAyiiRequest(gifRequestId, chainlinkRequestId);\n }\n\n function fulfill(\n bytes32 chainlinkRequestId, \n bytes32 projectId, \n bytes32 uaiId, \n bytes32 cropId, \n uint256 aaay\n )\n public recordChainlinkFulfillment(chainlinkRequestId) \n {\n uint256 gifRequest = gifRequests[chainlinkRequestId];\n bytes memory data = abi.encode(projectId, uaiId, cropId, aaay); \n _respond(gifRequest, data);\n\n delete gifRequests[chainlinkRequestId];\n emit LogAyiiFulfill(gifRequest, chainlinkRequestId, projectId, uaiId, cropId, aaay);\n }\n\n function cancel(uint256 requestId)\n external override\n onlyOwner\n {\n // TODO mid/low priority\n // cancelChainlinkRequest(_requestId, _payment, _callbackFunctionId, _expiration);\n }\n\n // only used for testing of chainlink operator\n function encodeFulfillParameters(\n bytes32 chainlinkRequestId, \n bytes32 projectId, \n bytes32 uaiId, \n bytes32 cropId, \n uint256 aaay\n ) \n external\n pure\n returns(bytes memory parameterData)\n {\n return abi.encode(\n chainlinkRequestId, \n projectId, \n uaiId, \n cropId, \n aaay\n );\n }\n\n function getChainlinkJobId() external view returns(bytes32 chainlinkJobId) {\n return jobId;\n }\n\n function getChainlinkPayment() external view returns(uint256 paymentAmount) {\n return payment;\n }\n\n function getChainlinkToken() external view returns(address linkTokenAddress) {\n return chainlinkTokenAddress();\n }\n\n function getChainlinkOperator() external view returns(address operator) {\n return chainlinkOracleAddress();\n }\n}\n\n"},"contracts/examples/AyiiProduct.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.2;\n\nimport \"../shared/TransferHelper.sol\";\n\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/Product.sol\";\nimport \"../modules/PolicyController.sol\";\n\nimport \"../modules/AccessController.sol\";\n\ncontract AyiiProduct is \n Product, \n AccessControl,\n Initializable\n{\n using EnumerableSet for EnumerableSet.Bytes32Set;\n\n bytes32 public constant NAME = \"AreaYieldIndexProduct\";\n bytes32 public constant VERSION = \"0.1\";\n bytes32 public constant POLICY_FLOW = \"PolicyDefaultFlow\";\n\n bytes32 public constant INSURER_ROLE = keccak256(\"INSURER\");\n\n uint256 public constant PERCENTAGE_MULTIPLIER = 2**24;\n\n uint256 public constant AAAY_MIN = 0;\n uint256 public constant AAAY_MAX = 15;\n\n uint256 public constant RISK_APH_MAX = 15 * PERCENTAGE_MULTIPLIER;\n uint256 public constant RISK_EXIT_MAX = PERCENTAGE_MULTIPLIER / 5;\n uint256 public constant RISK_TSI_AT_EXIT_MIN = PERCENTAGE_MULTIPLIER / 2;\n\n // group policy data structure\n struct Risk {\n bytes32 id; // hash over projectId, uaiId, cropId\n bytes32 projectId; // assumption: this makes risk unique over aggregarors/customers/seasons\n bytes32 uaiId; // region id\n bytes32 cropId; // crop id\n uint256 trigger; // at and above this harvest ratio no payout is made \n uint256 exit; // at and below this harvest ration the max payout is made\n uint256 tsi; // total sum insured at exit: max . payout percentage at exit\n uint256 aph; // average historical area yield for this crop and region\n uint256 requestId; \n bool requestTriggered;\n uint256 responseAt;\n uint256 aaay; // average area yield for current season for this crop and region\n uint256 payoutPercentage; // payout percentage for this year for this crop and region\n uint256 createdAt;\n uint256 updatedAt;\n }\n\n uint256 private _oracleId;\n IERC20 private _token;\n\n bytes32 [] private _riskIds;\n mapping(bytes32 /* riskId */ => Risk) private _risks;\n mapping(bytes32 /* riskId */ => EnumerableSet.Bytes32Set /* processIds */) private _policies;\n bytes32 [] private _applications; // useful for debugging, might need to get rid of this\n\n event LogAyiiPolicyApplicationCreated(bytes32 policyId, address policyHolder, uint256 premiumAmount, uint256 sumInsuredAmount);\n event LogAyiiPolicyCreated(bytes32 policyId, address policyHolder, uint256 premiumAmount, uint256 sumInsuredAmount);\n event LogAyiiRiskDataCreated(bytes32 riskId, bytes32 productId, bytes32 uaiId, bytes32 cropId);\n event LogAyiiRiskDataBeforeAdjustment(bytes32 riskId, uint256 trigger, uint256 exit, uint256 tsi, uint aph);\n event LogAyiiRiskDataAfterAdjustment(bytes32 riskId, uint256 trigger, uint256 exit, uint256 tsi, uint aph);\n event LogAyiiRiskDataRequested(uint256 requestId, bytes32 riskId, bytes32 projectId, bytes32 uaiId, bytes32 cropId);\n event LogAyiiRiskDataReceived(uint256 requestId, bytes32 riskId, uint256 aaay);\n event LogAyiiRiskDataRequestCancelled(bytes32 processId, uint256 requestId);\n event LogAyiiRiskProcessed(bytes32 riskId, uint256 policies);\n event LogAyiiPolicyProcessed(bytes32 policyId);\n event LogAyiiClaimCreated(bytes32 policyId, uint256 claimId, uint256 payoutAmount);\n event LogAyiiPayoutCreated(bytes32 policyId, uint256 payoutAmount);\n\n event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to);\n event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance);\n event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData);\n\n constructor(\n bytes32 productName,\n address registry,\n address token,\n uint256 oracleId,\n uint256 riskpoolId,\n address insurer\n )\n Product(productName, token, POLICY_FLOW, riskpoolId, registry)\n {\n _token = IERC20(token);\n _oracleId = oracleId;\n\n _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());\n _setupRole(INSURER_ROLE, insurer);\n }\n\n function createRisk(\n bytes32 projectId,\n bytes32 uaiId,\n bytes32 cropId,\n uint256 trigger,\n uint256 exit,\n uint256 tsi,\n uint256 aph\n )\n external\n onlyRole(INSURER_ROLE)\n returns(bytes32 riskId)\n {\n _validateRiskParameters(trigger, exit, tsi, aph);\n\n riskId = getRiskId(projectId, uaiId, cropId);\n _riskIds.push(riskId);\n\n Risk storage risk = _risks[riskId];\n require(risk.createdAt == 0, \"ERROR:AYI-001:RISK_ALREADY_EXISTS\");\n\n risk.id = riskId;\n risk.projectId = projectId;\n risk.uaiId = uaiId;\n risk.cropId = cropId;\n risk.trigger = trigger;\n risk.exit = exit;\n risk.tsi = tsi;\n risk.aph = aph;\n risk.createdAt = block.timestamp; // solhint-disable-line\n risk.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogAyiiRiskDataCreated(\n risk.id, \n risk.projectId,\n risk.uaiId, \n risk.cropId);\n }\n\n function adjustRisk(\n bytes32 riskId,\n uint256 trigger,\n uint256 exit,\n uint256 tsi,\n uint256 aph\n )\n external\n onlyRole(INSURER_ROLE)\n {\n _validateRiskParameters(trigger, exit, tsi, aph);\n\n Risk storage risk = _risks[riskId];\n require(risk.createdAt > 0, \"ERROR:AYI-002:RISK_UNKNOWN\");\n require(EnumerableSet.length(_policies[riskId]) == 0, \"ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE\");\n\n emit LogAyiiRiskDataBeforeAdjustment(\n risk.id, \n risk.trigger,\n risk.exit, \n risk.tsi,\n risk.aph);\n \n risk.trigger = trigger;\n risk.exit = exit;\n risk.tsi = tsi;\n risk.aph = aph;\n\n emit LogAyiiRiskDataAfterAdjustment(\n risk.id, \n risk.trigger,\n risk.exit, \n risk.tsi,\n risk.aph);\n }\n\n function getRiskId(\n bytes32 projectId,\n bytes32 uaiId,\n bytes32 cropId\n )\n public\n pure\n returns(bytes32 riskId)\n {\n riskId = keccak256(abi.encode(projectId, uaiId, cropId));\n }\n\n\n function applyForPolicy(\n address policyHolder, \n uint256 premium, \n uint256 sumInsured,\n bytes32 riskId\n ) \n external \n onlyRole(INSURER_ROLE)\n returns(bytes32 processId)\n {\n Risk storage risk = _risks[riskId];\n require(risk.createdAt > 0, \"ERROR:AYI-004:RISK_UNDEFINED\");\n require(policyHolder != address(0), \"ERROR:AYI-005:POLICY_HOLDER_ZERO\");\n\n bytes memory metaData = \"\";\n bytes memory applicationData = abi.encode(riskId);\n\n processId = _newApplication(\n policyHolder, \n premium, \n sumInsured,\n metaData,\n applicationData);\n\n _applications.push(processId);\n\n emit LogAyiiPolicyApplicationCreated(\n processId, \n policyHolder, \n premium, \n sumInsured);\n\n bool success = _underwrite(processId);\n\n if (success) {\n EnumerableSet.add(_policies[riskId], processId);\n \n emit LogAyiiPolicyCreated(\n processId, \n policyHolder, \n premium, \n sumInsured);\n }\n }\n\n function underwrite(\n bytes32 processId\n ) \n external \n onlyRole(INSURER_ROLE)\n returns(bool success)\n {\n // ensure the application for processId exists\n _getApplication(processId);\n success = _underwrite(processId);\n\n if (success) {\n IPolicy.Application memory application = _getApplication(processId);\n IPolicy.Metadata memory metadata = _getMetadata(processId);\n emit LogAyiiPolicyCreated(\n processId, \n metadata.owner, \n application.premiumAmount, \n application.sumInsuredAmount);\n }\n }\n\n function collectPremium(bytes32 policyId) \n external\n onlyRole(INSURER_ROLE)\n returns(bool success, uint256 fee, uint256 netPremium)\n {\n (success, fee, netPremium) = _collectPremium(policyId);\n }\n\n /* premium collection always moves funds from the customers wallet to the riskpool wallet.\n * to stick to this principle: this method implements a two part transferFrom. \n * the 1st transfer moves the specified amount from the 'from' sender address to the customer\n * the 2nd transfer transfers the amount from the customer to the riskpool wallet (and some \n * fees to the instance wallet)\n */ \n function collectPremium(bytes32 policyId, address from, uint256 amount) \n external\n onlyRole(INSURER_ROLE)\n returns(bool success, uint256 fee, uint256 netPremium)\n {\n IPolicy.Metadata memory metadata = _getMetadata(policyId);\n\n if (from != metadata.owner) {\n bool transferSuccessful = TransferHelper.unifiedTransferFrom(_token, from, metadata.owner, amount);\n\n if (!transferSuccessful) {\n return (transferSuccessful, 0, amount);\n }\n }\n\n (success, fee, netPremium) = _collectPremium(policyId, amount);\n }\n\n function adjustPremiumSumInsured(\n bytes32 processId,\n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n )\n external\n onlyRole(INSURER_ROLE)\n {\n _adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount);\n }\n\n function triggerOracle(bytes32 processId) \n external\n onlyRole(INSURER_ROLE)\n returns(uint256 requestId)\n {\n Risk storage risk = _risks[_getRiskId(processId)];\n require(risk.createdAt > 0, \"ERROR:AYI-010:RISK_UNDEFINED\");\n require(risk.responseAt == 0, \"ERROR:AYI-011:ORACLE_ALREADY_RESPONDED\");\n\n bytes memory queryData = abi.encode(\n risk.projectId,\n risk.uaiId,\n risk.cropId\n );\n\n requestId = _request(\n processId, \n queryData,\n \"oracleCallback\",\n _oracleId\n );\n\n risk.requestId = requestId;\n risk.requestTriggered = true;\n risk.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogAyiiRiskDataRequested(\n risk.requestId, \n risk.id, \n risk.projectId, \n risk.uaiId, \n risk.cropId);\n } \n\n function cancelOracleRequest(bytes32 processId) \n external\n onlyRole(INSURER_ROLE)\n {\n Risk storage risk = _risks[_getRiskId(processId)];\n require(risk.createdAt > 0, \"ERROR:AYI-012:RISK_UNDEFINED\");\n require(risk.requestTriggered, \"ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND\");\n require(risk.responseAt == 0, \"ERROR:AYI-014:EXISTING_CALLBACK\");\n\n _cancelRequest(risk.requestId);\n\n // reset request id to allow to trigger again\n risk.requestTriggered = false;\n risk.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogAyiiRiskDataRequestCancelled(processId, risk.requestId);\n } \n\n function oracleCallback(\n uint256 requestId, \n bytes32 processId, \n bytes calldata responseData\n ) \n external \n onlyOracle\n {\n (\n bytes32 projectId, \n bytes32 uaiId, \n bytes32 cropId, \n uint256 aaay\n ) = abi.decode(responseData, (bytes32, bytes32, bytes32, uint256));\n\n bytes32 riskId = _getRiskId(processId);\n require(riskId == getRiskId(projectId, uaiId, cropId), \"ERROR:AYI-020:RISK_ID_MISMATCH\");\n\n Risk storage risk = _risks[riskId];\n require(risk.createdAt > 0, \"ERROR:AYI-021:RISK_UNDEFINED\");\n require(risk.requestId == requestId, \"ERROR:AYI-022:REQUEST_ID_MISMATCH\");\n require(risk.responseAt == 0, \"ERROR:AYI-023:EXISTING_CALLBACK\");\n\n require(aaay >= (AAAY_MIN * PERCENTAGE_MULTIPLIER) \n && aaay < (AAAY_MAX * PERCENTAGE_MULTIPLIER), \n \"ERROR:AYI-024:AAAY_INVALID\");\n\n // update risk using aaay info\n risk.aaay = aaay;\n risk.payoutPercentage = calculatePayoutPercentage(\n risk.tsi,\n risk.trigger,\n risk.exit,\n risk.aph,\n risk.aaay\n );\n\n risk.responseAt = block.timestamp; // solhint-disable-line\n risk.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogAyiiRiskDataReceived(\n requestId, \n riskId,\n aaay);\n }\n\n function processPoliciesForRisk(bytes32 riskId, uint256 batchSize)\n external\n onlyRole(INSURER_ROLE)\n returns(bytes32 [] memory processedPolicies)\n {\n Risk memory risk = _risks[riskId];\n require(risk.responseAt > 0, \"ERROR:AYI-030:ORACLE_RESPONSE_MISSING\");\n\n uint256 elements = EnumerableSet.length(_policies[riskId]);\n if (elements == 0) {\n emit LogAyiiRiskProcessed(riskId, 0);\n return new bytes32[](0);\n }\n\n if (batchSize == 0) { batchSize = elements; } \n else { batchSize = min(batchSize, elements); }\n\n processedPolicies = new bytes32[](batchSize);\n uint256 elementIdx = elements - 1;\n\n for (uint256 i = 0; i < batchSize; i++) {\n // grab and process the last policy\n bytes32 policyId = EnumerableSet.at(_policies[riskId], elementIdx - i);\n processPolicy(policyId);\n processedPolicies[i] = policyId;\n }\n\n emit LogAyiiRiskProcessed(riskId, batchSize);\n }\n\n function processPolicy(bytes32 policyId)\n public\n onlyRole(INSURER_ROLE)\n {\n IPolicy.Application memory application = _getApplication(policyId);\n bytes32 riskId = abi.decode(application.data, (bytes32));\n Risk memory risk = _risks[riskId];\n\n require(risk.id == riskId, \"ERROR:AYI-031:RISK_ID_INVALID\");\n require(risk.responseAt > 0, \"ERROR:AYI-032:ORACLE_RESPONSE_MISSING\");\n require(EnumerableSet.contains(_policies[riskId], policyId), \"ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN\");\n\n EnumerableSet.remove(_policies[riskId], policyId);\n\n\n uint256 claimAmount = calculatePayout(\n risk.payoutPercentage, \n application.sumInsuredAmount);\n \n uint256 claimId = _newClaim(policyId, claimAmount, \"\");\n emit LogAyiiClaimCreated(policyId, claimId, claimAmount);\n\n if (claimAmount > 0) {\n uint256 payoutAmount = claimAmount;\n _confirmClaim(policyId, claimId, payoutAmount);\n\n uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, \"\");\n _processPayout(policyId, payoutId);\n\n emit LogAyiiPayoutCreated(policyId, payoutAmount);\n }\n else {\n _declineClaim(policyId, claimId);\n _closeClaim(policyId, claimId);\n }\n\n _expire(policyId);\n _close(policyId);\n\n emit LogAyiiPolicyProcessed(policyId);\n }\n\n function calculatePayout(uint256 payoutPercentage, uint256 sumInsuredAmount)\n public\n pure\n returns(uint256 payoutAmount)\n {\n payoutAmount = payoutPercentage * sumInsuredAmount / PERCENTAGE_MULTIPLIER;\n }\n\n function calculatePayoutPercentage(\n uint256 tsi, // max payout percentage\n uint256 trigger,// at and above this harvest ratio no payout is made \n uint256 exit, // at and below this harvest ration the max payout is made\n uint256 aph, // average historical yield\n uint256 aaay // this season's yield\n )\n public\n pure\n returns(uint256 payoutPercentage)\n {\n // this year's harvest at or above threshold for any payouts\n if (aaay * PERCENTAGE_MULTIPLIER >= aph * trigger) {\n return 0;\n }\n\n // this year's harvest at or below threshold for maximal payout\n if (aaay * PERCENTAGE_MULTIPLIER <= aph * exit) {\n return tsi;\n }\n\n // calculated payout between exit and trigger\n uint256 harvestRatio = PERCENTAGE_MULTIPLIER * aaay / aph;\n payoutPercentage = tsi * (trigger - harvestRatio) / (trigger - exit);\n }\n\n function getPercentageMultiplier() external pure returns(uint256 multiplier) {\n return PERCENTAGE_MULTIPLIER;\n }\n\n function min(uint256 a, uint256 b) private pure returns (uint256) {\n return a <= b ? a : b;\n }\n\n\n function risks() external view returns(uint256) { return _riskIds.length; }\n function getRiskId(uint256 idx) external view returns(bytes32 riskId) { return _riskIds[idx]; }\n function getRisk(bytes32 riskId) external view returns(Risk memory risk) { return _risks[riskId]; }\n\n function applications() external view returns(uint256 applicationCount) {\n return _applications.length;\n }\n\n function getApplicationId(uint256 applicationIdx) external view returns(bytes32 processId) {\n return _applications[applicationIdx];\n }\n\n function policies(bytes32 riskId) external view returns(uint256 policyCount) {\n return EnumerableSet.length(_policies[riskId]);\n }\n\n function getPolicyId(bytes32 riskId, uint256 policyIdx) external view returns(bytes32 processId) {\n return EnumerableSet.at(_policies[riskId], policyIdx);\n }\n\n function getApplicationDataStructure() external override pure returns(string memory dataStructure) {\n return \"(bytes32 riskId)\";\n }\n\n\n function _validateRiskParameters(\n uint256 trigger, \n uint256 exit,\n uint256 tsi,\n uint256 aph\n )\n internal\n {\n require(trigger <= PERCENTAGE_MULTIPLIER, \"ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE\");\n require(trigger > exit, \"ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT\");\n require(exit <= RISK_EXIT_MAX, \"ERROR:AYI-042:RISK_EXIT_TOO_LARGE\");\n require(tsi >= RISK_TSI_AT_EXIT_MIN , \"ERROR:AYI-043:RISK_TSI_TOO_SMALL\");\n require(tsi <= PERCENTAGE_MULTIPLIER , \"ERROR:AYI-044:RISK_TSI_TOO_LARGE\");\n require(tsi + exit <= PERCENTAGE_MULTIPLIER, \"ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE\");\n require(aph > 0, \"ERROR:AYI-046:RISK_APH_ZERO_INVALID\");\n require(aph <= RISK_APH_MAX, \"ERROR:AYI-047:RISK_APH_TOO_LARGE\");\n }\n\n function _processPolicy(bytes32 policyId, Risk memory risk)\n internal\n {\n IPolicy.Application memory application \n = _getApplication(policyId);\n\n uint256 claimAmount = calculatePayout(\n risk.payoutPercentage, \n application.sumInsuredAmount);\n \n uint256 claimId = _newClaim(policyId, claimAmount, \"\");\n emit LogAyiiClaimCreated(policyId, claimId, claimAmount);\n\n if (claimAmount > 0) {\n uint256 payoutAmount = claimAmount;\n _confirmClaim(policyId, claimId, payoutAmount);\n\n uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, \"\");\n _processPayout(policyId, payoutId);\n\n emit LogAyiiPayoutCreated(policyId, payoutAmount);\n }\n else {\n _declineClaim(policyId, claimId);\n _closeClaim(policyId, claimId);\n }\n\n emit LogAyiiPolicyProcessed(policyId);\n }\n\n function _getRiskId(bytes32 processId) private view returns(bytes32 riskId) {\n IPolicy.Application memory application = _getApplication(processId);\n (riskId) = abi.decode(application.data, (bytes32));\n }\n}"},"contracts/examples/AyiiRiskpool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\r\n\r\nimport \"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IBundle.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\r\n\r\ncontract AyiiRiskpool is \r\n BasicRiskpool,\r\n AccessControl\r\n{\r\n // 0x5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d935\r\n bytes32 public constant INVESTOR_ROLE = keccak256(\"INVESTOR\");\r\n\r\n // restricts the maximal sum of sum insured that are secured by gthe riskpool\r\n uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24;\r\n\r\n constructor(\r\n bytes32 name,\r\n uint256 collateralization,\r\n address erc20Token,\r\n address wallet,\r\n address registry\r\n )\r\n BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry)\r\n {\r\n\r\n _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());\r\n }\r\n\r\n\r\n function grantInvestorRole(address investor)\r\n external\r\n onlyOwner\r\n {\r\n _setupRole(INVESTOR_ROLE, investor);\r\n }\r\n\r\n\r\n function createBundle(bytes memory filter, uint256 initialAmount) \r\n public override\r\n onlyRole(INVESTOR_ROLE)\r\n returns(uint256 bundleId)\r\n {\r\n bundleId = super.createBundle(filter, initialAmount);\r\n }\r\n\r\n\r\n // trivial implementation that matches every application\r\n function bundleMatchesApplication(\r\n IBundle.Bundle memory bundle, \r\n IPolicy.Application memory application\r\n ) \r\n public override\r\n pure\r\n returns(bool isMatching) \r\n {\r\n isMatching = true;\r\n }\r\n\r\n}"},"contracts/examples/mock/ChainlinkOperator.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract ChainlinkOperator is \n Ownable\n{\n\n struct Commitment {\n bytes31 paramsHash;\n uint8 dataVersion;\n }\n\n uint256 public constant getExpiryTime = 5 minutes;\n uint256 private constant MAXIMUM_DATA_VERSION = 256;\n uint256 private constant MINIMUM_CONSUMER_GAS_LIMIT = 400000;\n\n event AuthorizedSendersChanged(address[] senders, address changedBy);\n\n event OracleRequest(\n bytes32 indexed specId,\n address requester,\n bytes32 requestId,\n uint256 payment,\n address callbackAddr,\n bytes4 callbackFunctionId,\n uint256 cancelExpiration,\n uint256 dataVersion,\n bytes data\n );\n\n event CancelOracleRequest(bytes32 indexed requestId);\n\n event OracleResponse(bytes32 indexed requestId);\n\n // contract variables\n mapping(address => bool) private s_authorizedSenders;\n address[] private s_authorizedSenderList;\n\n mapping(bytes32 => Commitment) private s_commitments;\n\n /**\n * @notice prevents non-authorized addresses from calling this method\n */\n modifier validateAuthorizedSenderSetter() {\n require(_canSetAuthorizedSenders(), \"Cannot set authorized senders\");\n _;\n }\n\n constructor() Ownable() { }\n\n /**\n * @notice Sets the fulfillment permission for a given node. Use `true` to allow, `false` to disallow.\n * @param senders The addresses of the authorized Chainlink node\n */\n function setAuthorizedSenders(address[] calldata senders)\n external \n validateAuthorizedSenderSetter \n {\n require(senders.length > 0, \"Must have at least 1 authorized sender\");\n // Set previous authorized senders to false\n uint256 authorizedSendersLength = s_authorizedSenderList.length;\n for (uint256 i = 0; i < authorizedSendersLength; i++) {\n s_authorizedSenders[s_authorizedSenderList[i]] = false;\n }\n // Set new to true\n for (uint256 i = 0; i < senders.length; i++) {\n s_authorizedSenders[senders[i]] = true;\n }\n // Replace list\n s_authorizedSenderList = senders;\n emit AuthorizedSendersChanged(senders, msg.sender);\n }\n\n\n function getAuthorizedSenders()\n external \n view\n returns(address [] memory)\n {\n return s_authorizedSenderList;\n }\n\n /**\n * @notice Called when LINK is sent to the contract via `transferAndCall`\n * @dev The data payload's first 2 words will be overwritten by the `sender` and `amount`\n * values to ensure correctness. Calls oracleRequest.\n * @param sender Address of the sender\n * @param amount Amount of LINK sent (specified in wei)\n * @param data Payload of the transaction\n */\n function onTokenTransfer(\n address sender,\n uint256 amount,\n bytes memory data\n )\n public \n // validateFromLINK \n // permittedFunctionsForLINK(data) \n {\n assembly {\n // solhint-disable-next-line avoid-low-level-calls\n mstore(add(data, 36), sender) // ensure correct sender is passed\n // solhint-disable-next-line avoid-low-level-calls\n mstore(add(data, 68), amount) // ensure correct amount is passed\n }\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, ) = address(this).delegatecall(data); // calls oracleRequest\n require(success, \"Unable to create request\");\n }\n\n\n /**\n * @notice Creates the Chainlink request. This is a backwards compatible API\n * with the Oracle.sol contract, but the behavior changes because\n * callbackAddress is assumed to be the same as the request sender.\n * @param callbackAddress The consumer of the request\n * @param payment The amount of payment given (specified in wei)\n * @param specId The Job Specification ID\n * @param callbackAddress The address the oracle data will be sent to\n * @param callbackFunctionId The callback function ID for the response\n * @param nonce The nonce sent by the requester\n * @param dataVersion The specified data version\n * @param data The extra request parameters\n */\n function oracleRequest(\n address sender,\n uint256 payment,\n bytes32 specId,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion,\n bytes calldata data\n )\n external \n // override \n // validateFromLINK \n {\n (bytes32 requestId, uint256 expiration) = _verifyAndProcessOracleRequest(\n sender,\n payment,\n callbackAddress,\n callbackFunctionId,\n nonce,\n dataVersion\n );\n emit OracleRequest(specId, sender, requestId, payment, sender, callbackFunctionId, expiration, dataVersion, data);\n }\n\n\n /**\n * @notice Called by the Chainlink node to fulfill requests with multi-word support\n * @dev Given params must hash back to the commitment stored from `oracleRequest`.\n * Will call the callback address' callback function without bubbling up error\n * checking in a `require` so that the node can get paid.\n * @param requestId The fulfillment request ID that must match the requester's\n * @param payment The payment amount that will be released for the oracle (specified in wei)\n * @param callbackAddress The callback address to call for fulfillment\n * @param callbackFunctionId The callback function ID to use for fulfillment\n * @param expiration The expiration that the node should respond by before the requester can cancel\n * @param data The data to return to the consuming contract\n * @return Status if the external call was successful\n */\n function fulfillOracleRequest2(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n bytes calldata data\n )\n external\n // override\n // validateAuthorizedSender\n // validateRequestId(requestId)\n // validateCallbackAddress(callbackAddress)\n // validateMultiWordResponseId(requestId, data)\n returns (bool)\n {\n _verifyOracleRequestAndProcessPayment(requestId, payment, callbackAddress, callbackFunctionId, expiration, 2);\n\n emit OracleResponse(requestId);\n require(gasleft() >= MINIMUM_CONSUMER_GAS_LIMIT, \"Must provide consumer enough gas\");\n\n // All updates to the oracle's fulfillment should come before calling the\n // callback(addr+functionId) as it is untrusted.\n // See: https://solidity.readthedocs.io/en/develop/security-considerations.html#use-the-checks-effects-interactions-pattern\n (bool success, ) = callbackAddress.call(abi.encodePacked(callbackFunctionId, data)); // solhint-disable-line avoid-low-level-calls\n return success;\n }\n\n\n /**\n * @notice Verify the Oracle Request and record necessary information\n * @param sender The sender of the request\n * @param payment The amount of payment given (specified in wei)\n * @param callbackAddress The callback address for the response\n * @param callbackFunctionId The callback function ID for the response\n * @param nonce The nonce sent by the requester\n */\n function _verifyAndProcessOracleRequest(\n address sender,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 nonce,\n uint256 dataVersion\n ) \n private \n // validateNotToLINK(callbackAddress) \n returns (bytes32 requestId, uint256 expiration) \n {\n requestId = keccak256(abi.encodePacked(sender, nonce));\n require(s_commitments[requestId].paramsHash == 0, \"Must use a unique ID\");\n // solhint-disable-next-line not-rely-on-time\n // expiration = block.timestamp.add(getExpiryTime);\n expiration = block.timestamp + getExpiryTime;\n bytes31 paramsHash = _buildParamsHash(payment, callbackAddress, callbackFunctionId, expiration);\n s_commitments[requestId] = Commitment(paramsHash, _safeCastToUint8(dataVersion));\n // s_tokensInEscrow = s_tokensInEscrow.add(payment);\n return (requestId, expiration);\n }\n\n\n /**\n * @notice Verify the Oracle request and unlock escrowed payment\n * @param requestId The fulfillment request ID that must match the requester's\n * @param payment The payment amount that will be released for the oracle (specified in wei)\n * @param callbackAddress The callback address to call for fulfillment\n * @param callbackFunctionId The callback function ID to use for fulfillment\n * @param expiration The expiration that the node should respond by before the requester can cancel\n */\n function _verifyOracleRequestAndProcessPayment(\n bytes32 requestId,\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration,\n uint256 dataVersion\n )\n internal\n {\n bytes31 paramsHash = _buildParamsHash(payment, callbackAddress, callbackFunctionId, expiration);\n require(s_commitments[requestId].paramsHash == paramsHash, \"Params do not match request ID\");\n require(s_commitments[requestId].dataVersion <= _safeCastToUint8(dataVersion), \"Data versions must match\");\n // s_tokensInEscrow = s_tokensInEscrow.sub(payment);\n delete s_commitments[requestId];\n }\n\n\n /**\n * @notice Build the bytes31 hash from the payment, callback and expiration.\n * @param payment The payment amount that will be released for the oracle (specified in wei)\n * @param callbackAddress The callback address to call for fulfillment\n * @param callbackFunctionId The callback function ID to use for fulfillment\n * @param expiration The expiration that the node should respond by before the requester can cancel\n * @return hash bytes31\n */\n function _buildParamsHash(\n uint256 payment,\n address callbackAddress,\n bytes4 callbackFunctionId,\n uint256 expiration\n ) internal pure returns (bytes31) {\n return bytes31(keccak256(abi.encodePacked(payment, callbackAddress, callbackFunctionId, expiration)));\n }\n\n\n /**\n * @notice Safely cast uint256 to uint8\n * @param number uint256\n * @return uint8 number\n */\n function _safeCastToUint8(uint256 number) internal pure returns (uint8) {\n require(number < MAXIMUM_DATA_VERSION, \"number too big to cast\");\n return uint8(number);\n }\n\n /**\n * @notice concrete implementation of AuthorizedReceiver\n * @return bool of whether sender is authorized\n */\n function _canSetAuthorizedSenders() internal view returns (bool) {\n return owner() == msg.sender;\n }\n\n}\n"},"contracts/examples/mock/ChainlinkToken.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\nabstract contract ERC677Receiver {\n function onTokenTransfer (address _sender, uint _value, bytes calldata _data) public virtual;\n}\n\ncontract ChainlinkToken is ERC20 {\n constructor(address owner, uint256 supply) ERC20(\"Chainlink Dummy Token\", \"CDT\"){\n _mint(owner, supply);\n }\n\n function transferAndCall(address _to, uint _value, bytes calldata _data) public returns (bool success){\n super.transfer(_to, _value);\n // Transfer(msg.sender, _to, _value, _data);\n if (isContract(_to)) {\n contractFallback(_to, _value, _data);\n }\n return true;\n }\n\n function contractFallback(address _to, uint _value, bytes calldata _data) private {\n ERC677Receiver receiver = ERC677Receiver(_to);\n receiver.onTokenTransfer(msg.sender, _value, _data);\n }\n\n function isContract(address _addr) private view returns (bool hasCode) {\n uint length;\n assembly { length := extcodesize(_addr) }\n return length > 0;\n }\n}\n"},"contracts/examples/strings.sol":{"content":"// SPDX-License-Identifier: Apache2\r\n\r\n// source: https://github.com/Arachnid/solidity-stringutils\r\n/*\r\n * @title String & slice utility library for Solidity contracts.\r\n * @author Nick Johnson \r\n *\r\n * @dev Functionality in this library is largely implemented using an\r\n * abstraction called a 'slice'. A slice represents a part of a string -\r\n * anything from the entire string to a single character, or even no\r\n * characters at all (a 0-length slice). Since a slice only has to specify\r\n * an offset and a length, copying and manipulating slices is a lot less\r\n * expensive than copying and manipulating the strings they reference.\r\n *\r\n * To further reduce gas costs, most functions on slice that need to return\r\n * a slice modify the original one instead of allocating a new one; for\r\n * instance, `s.split(\".\")` will return the text up to the first '.',\r\n * modifying s to only contain the remainder of the string after the '.'.\r\n * In situations where you do not want to modify the original slice, you\r\n * can make a copy first with `.copy()`, for example:\r\n * `s.copy().split(\".\")`. Try and avoid using this idiom in loops; since\r\n * Solidity has no memory management, it will result in allocating many\r\n * short-lived slices that are later discarded.\r\n *\r\n * Functions that return two slices come in two versions: a non-allocating\r\n * version that takes the second slice as an argument, modifying it in\r\n * place, and an allocating version that allocates and returns the second\r\n * slice; see `nextRune` for example.\r\n *\r\n * Functions that have to copy string data will return strings rather than\r\n * slices; these can be cast back to slices for further processing if\r\n * required.\r\n *\r\n * For convenience, some functions are provided with non-modifying\r\n * variants that create a new slice and return both; for instance,\r\n * `s.splitNew('.')` leaves s unmodified, and returns two values\r\n * corresponding to the left and right parts of the string.\r\n */\r\npragma solidity 0.8.2;\r\n\r\nlibrary strings {\r\n\r\n struct slice {\r\n uint _len;\r\n uint _ptr;\r\n }\r\n\r\n function memcpy(uint dest, uint src, uint len_) private pure {\r\n // Copy word-length chunks while possible\r\n for(; len_ >= 32; len_ -= 32) {\r\n assembly {\r\n mstore(dest, mload(src))\r\n }\r\n dest += 32;\r\n src += 32;\r\n }\r\n\r\n // Copy remaining bytes\r\n uint mask = type(uint).max;\r\n if (len_ > 0) {\r\n mask = 256 ** (32 - len_) - 1;\r\n }\r\n assembly {\r\n let srcpart := and(mload(src), not(mask))\r\n let destpart := and(mload(dest), mask)\r\n mstore(dest, or(destpart, srcpart))\r\n }\r\n }\r\n\r\n /*\r\n * @dev Returns the length of a null-terminated bytes32 string.\r\n * @param self The value to find the length of.\r\n * @return The length of the string, from 0 to 32.\r\n */\r\n function len(bytes32 self) internal pure returns (uint) {\r\n uint ret;\r\n if (self == 0)\r\n return 0;\r\n if (uint(self) & type(uint128).max == 0) {\r\n ret += 16;\r\n self = bytes32(uint(self) / 0x100000000000000000000000000000000);\r\n }\r\n if (uint(self) & type(uint64).max == 0) {\r\n ret += 8;\r\n self = bytes32(uint(self) / 0x10000000000000000);\r\n }\r\n if (uint(self) & type(uint32).max == 0) {\r\n ret += 4;\r\n self = bytes32(uint(self) / 0x100000000);\r\n }\r\n if (uint(self) & type(uint16).max == 0) {\r\n ret += 2;\r\n self = bytes32(uint(self) / 0x10000);\r\n }\r\n if (uint(self) & type(uint8).max == 0) {\r\n ret += 1;\r\n }\r\n return 32 - ret;\r\n }\r\n\r\n // merge of toSliceB32 and toString of strings library\r\n function toB32String(bytes32 self) internal pure returns (string memory) {\r\n slice memory slc;\r\n assembly {\r\n let ptr := mload(0x40)\r\n mstore(0x40, add(ptr, 0x20))\r\n mstore(ptr, self)\r\n mstore(add(slc, 0x20), ptr)\r\n }\r\n slc._len = len(self);\r\n\r\n string memory ret = new string(slc._len);\r\n uint retptr;\r\n assembly { retptr := add(ret, 32) }\r\n memcpy(retptr, slc._ptr, slc._len);\r\n return ret;\r\n }\r\n}"},"contracts/flows/PolicyDefaultFlow.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../modules/ComponentController.sol\";\nimport \"../modules/PoolController.sol\";\nimport \"../modules/PolicyController.sol\";\nimport \"../modules/QueryModule.sol\";\nimport \"../modules/TreasuryModule.sol\";\nimport \"../shared/WithRegistry.sol\";\n\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\n// import \"@etherisc/gif-interface/contracts/modules/IQuery.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IPool.sol\";\n\n\ncontract PolicyDefaultFlow is \n WithRegistry \n{\n bytes32 public constant NAME = \"PolicyDefaultFlow\";\n\n modifier onlyActivePolicy(bytes32 processId) {\n PolicyController policy = getPolicyContract();\n require(\n policy.getPolicy(processId).state == IPolicy.PolicyState.Active,\n \"ERROR:PFD-001:POLICY_NOT_ACTIVE\"\n );\n _;\n }\n\n modifier onlyExpiredPolicy(bytes32 processId) {\n PolicyController policy = getPolicyContract();\n require(\n policy.getPolicy(processId).state == IPolicy.PolicyState.Expired,\n \"ERROR:PFD-002:POLICY_NOT_EXPIRED\"\n );\n _;\n }\n\n modifier notClosedPolicy(bytes32 processId) {\n PolicyController policy = getPolicyContract();\n require(\n policy.getPolicy(processId).state != IPolicy.PolicyState.Closed,\n \"ERROR:PFD-003:POLICY_CLOSED\"\n );\n _;\n }\n\n modifier onlyResponsibleProduct(bytes32 processId) {\n PolicyController policy = getPolicyContract();\n IPolicy.Metadata memory metadata = policy.getMetadata(processId);\n ComponentController component = ComponentController(getContractFromRegistry(\"Component\"));\n require(metadata.productId == component.getComponentId(address(msg.sender)), \"ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH\");\n _;\n }\n\n modifier onlyMatchingProduct(uint256 requestId) {\n QueryModule query = getQueryContract();\n bytes32 processId = getQueryContract().getProcessId(requestId);\n PolicyController policy = getPolicyContract();\n IPolicy.Metadata memory metadata = policy.getMetadata(processId);\n ComponentController component = ComponentController(getContractFromRegistry(\"Component\"));\n require(metadata.productId == component.getComponentId(address(msg.sender)), \"ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH\");\n _;\n }\n\n // ComponentController private _component;\n\n // solhint-disable-next-line no-empty-blocks\n constructor(address _registry) \n WithRegistry(_registry) \n { \n }\n\n function newApplication(\n address owner,\n uint256 premiumAmount,\n uint256 sumInsuredAmount,\n bytes calldata metaData, \n bytes calldata applicationData \n )\n external \n returns(bytes32 processId)\n {\n ComponentController component = getComponentContract();\n uint256 productId = component.getComponentId(msg.sender);\n\n IPolicy policy = getPolicyContract();\n processId = policy.createPolicyFlow(owner, productId, metaData);\n policy.createApplication(\n processId, \n premiumAmount, \n sumInsuredAmount, \n applicationData);\n }\n\n function revoke(bytes32 processId)\n external \n onlyResponsibleProduct(processId)\n {\n IPolicy policy = getPolicyContract();\n policy.revokeApplication(processId);\n }\n\n /* success implies the successful creation of a policy */\n function underwrite(bytes32 processId) \n external \n onlyResponsibleProduct(processId)\n returns(bool success) \n {\n // attempt to get the collateral to secure the policy\n PoolController pool = getPoolContract();\n success = pool.underwrite(processId);\n\n // TODO remove premium collection part below\n // this should be implemented on the prduct level\n // it's too much magic in the platform and not transparent enough\n // also, bad naming: the function name is 'underwrite? and not\n // 'underwriteAndIfSuccessfulCollectPremiumToo'\n if (success) {\n PolicyController policyController = getPolicyContract();\n policyController.underwriteApplication(processId);\n policyController.createPolicy(processId);\n\n // transfer premium amount\n IPolicy.Policy memory policy = policyController.getPolicy(processId);\n collectPremium(processId, policy.premiumExpectedAmount);\n }\n }\n\n /* success implies the successful collection of the amount for the policy.\n * valid amounts need to be > 0 up to the full premium amount\n * if no fee structure is defined for the policy, this call will revert. \n */\n function collectPremium(bytes32 processId, uint256 amount) \n public \n notClosedPolicy(processId)\n onlyResponsibleProduct(processId)\n returns(\n bool success, \n uint256 feeAmount, \n uint256 netPremiumAmount\n ) \n {\n TreasuryModule treasury = getTreasuryContract();\n PolicyController policy = getPolicyContract();\n\n (success, feeAmount, netPremiumAmount) = treasury.processPremium(processId, amount);\n\n // if premium collected: update book keeping of policy and riskpool\n if (success) {\n policy.collectPremium(processId, netPremiumAmount + feeAmount);\n\n PoolController pool = getPoolContract();\n pool.processPremium(processId, netPremiumAmount);\n }\n }\n \n function adjustPremiumSumInsured(\n bytes32 processId, \n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n )\n external\n notClosedPolicy(processId)\n onlyResponsibleProduct(processId)\n {\n PolicyController policy = getPolicyContract();\n policy.adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount);\n }\n\n\n function decline(bytes32 processId) \n onlyResponsibleProduct(processId)\n external \n {\n IPolicy policy = getPolicyContract();\n policy.declineApplication(processId);\n }\n\n function expire(bytes32 processId) \n external\n onlyActivePolicy(processId)\n onlyResponsibleProduct(processId)\n {\n IPolicy policy = getPolicyContract();\n policy.expirePolicy(processId);\n }\n\n function close(bytes32 processId) \n external\n onlyExpiredPolicy(processId)\n onlyResponsibleProduct(processId)\n {\n IPolicy policy = getPolicyContract();\n policy.closePolicy(processId);\n\n IPool pool = getPoolContract();\n pool.release(processId);\n }\n\n function newClaim(\n bytes32 processId, \n uint256 claimAmount,\n bytes calldata data\n )\n external\n onlyActivePolicy(processId)\n onlyResponsibleProduct(processId)\n returns (uint256 claimId)\n {\n claimId = getPolicyContract().createClaim(\n processId, \n claimAmount,\n data);\n }\n\n function confirmClaim(\n bytes32 processId,\n uint256 claimId,\n uint256 confirmedAmount\n ) \n external\n onlyResponsibleProduct(processId) \n {\n PolicyController policy = getPolicyContract();\n policy.confirmClaim(processId, claimId, confirmedAmount);\n }\n\n function declineClaim(bytes32 processId, uint256 claimId) \n external \n onlyResponsibleProduct(processId)\n {\n PolicyController policy = getPolicyContract();\n policy.declineClaim(processId, claimId);\n }\n\n function closeClaim(bytes32 processId, uint256 claimId) \n external \n onlyResponsibleProduct(processId)\n {\n PolicyController policy = getPolicyContract();\n policy.closeClaim(processId, claimId);\n }\n\n function newPayout(\n bytes32 processId,\n uint256 claimId,\n uint256 amount,\n bytes calldata data\n ) \n external \n onlyResponsibleProduct(processId)\n returns(uint256 payoutId)\n {\n payoutId = getPolicyContract()\n .createPayout(processId, claimId, amount, data);\n }\n\n function processPayout(\n bytes32 processId,\n uint256 payoutId\n )\n external \n onlyResponsibleProduct(processId)\n returns(\n bool success,\n uint256 feeAmount,\n uint256 netPayoutAmount\n )\n {\n TreasuryModule treasury = getTreasuryContract();\n (feeAmount, netPayoutAmount) = treasury.processPayout(processId, payoutId);\n\n // if payout successful: update book keeping of policy and riskpool\n IPolicy policy = getPolicyContract();\n policy.processPayout(processId, payoutId);\n\n PoolController pool = getPoolContract();\n pool.processPayout(processId, netPayoutAmount + feeAmount);\n }\n\n function request(\n bytes32 processId,\n bytes calldata _input,\n string calldata _callbackMethodName,\n address _callbackContractAddress,\n uint256 _responsibleOracleId\n ) \n external \n onlyResponsibleProduct(processId)\n returns (uint256 _requestId) \n {\n _requestId = getQueryContract().request(\n processId,\n _input,\n _callbackMethodName,\n _callbackContractAddress,\n _responsibleOracleId\n );\n }\n\n function cancelRequest(\n uint256 requestId\n ) \n external \n onlyMatchingProduct(requestId)\n {\n getQueryContract().cancel(requestId);\n }\n\n function getApplicationData(bytes32 processId)\n external\n view\n returns (bytes memory)\n {\n PolicyController policy = getPolicyContract();\n return policy.getApplication(processId).data;\n }\n\n function getClaimData(bytes32 processId, uint256 claimId)\n external\n view\n returns (bytes memory)\n {\n PolicyController policy = getPolicyContract();\n return policy.getClaim(processId, claimId).data;\n }\n\n function getPayoutData(bytes32 processId, uint256 payoutId)\n external\n view\n returns (bytes memory)\n {\n PolicyController policy = getPolicyContract();\n return policy.getPayout(processId, payoutId).data;\n }\n\n function getComponentContract() internal view returns (ComponentController) {\n return ComponentController(getContractFromRegistry(\"Component\"));\n }\n\n function getPoolContract() internal view returns (PoolController) {\n return PoolController(getContractFromRegistry(\"Pool\"));\n }\n\n function getPolicyContract() internal view returns (PolicyController) {\n return PolicyController(getContractFromRegistry(\"Policy\"));\n }\n\n function getQueryContract() internal view returns (QueryModule) {\n return QueryModule(getContractFromRegistry(\"Query\"));\n }\n\n function getTreasuryContract() internal view returns (TreasuryModule) {\n return TreasuryModule(getContractFromRegistry(\"Treasury\"));\n }\n}\n"},"contracts/Migrations.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ncontract Migrations {\n address public owner;\n uint256 public last_completed_migration; // solhint-disable-line\n\n constructor() {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint256 _completed) public restricted {\n last_completed_migration = _completed;\n }\n\n function upgrade(address _newAddress) public restricted {\n Migrations upgraded = Migrations(_newAddress);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n"},"contracts/modules/AccessController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../shared/CoreController.sol\";\r\n\r\nimport \"@etherisc/gif-interface/contracts/modules/IAccess.sol\";\r\n\r\nimport \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\r\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\r\n\r\n/**\r\nThe provided smart contract is called \"AccessController\" and is written in Solidity. It implements the \"IAccess\" interface and inherits from the \"CoreController\" contract and the \"AccessControlEnumerable\" contract. The contract provides functionalities for access control and role management.\r\n\r\nRoles:\r\nThe contract defines three role identifiers as bytes32 constants:\r\n1. PRODUCT_OWNER_ROLE: Represents the role of a product owner.\r\n2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider.\r\n3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper.\r\n\r\nState Variables:\r\n- `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid.\r\n- `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set.\r\n\r\nFunctions:\r\n- `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function.\r\n- `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value.\r\n- `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event.\r\n- `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract.\r\n- `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract.\r\n- `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract.\r\n- `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping.\r\n- `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping.\r\n- `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role.\r\n- `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE.\r\n- `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE.\r\n- `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE.\r\n- `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE.\r\n- `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true.\r\n\r\nModifiers:\r\n- `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators.\r\n\r\nOverall, the contract provides a flexible access control mechanism by defining roles and allowing the assignment, revocation, and validation of roles by instance operators. It also sets a default admin role and manages the validity of roles through the `validRole` mapping.\r\n*/\r\n\r\n\r\ncontract AccessController is \r\n IAccess, \r\n CoreController,\r\n AccessControlEnumerable\r\n {\r\n\r\n // 0xe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd\r\n bytes32 public constant PRODUCT_OWNER_ROLE = keccak256(\"PRODUCT_OWNER_ROLE\");\r\n\r\n // 0xd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa2\r\n bytes32 public constant ORACLE_PROVIDER_ROLE = keccak256(\"ORACLE_PROVIDER_ROLE\");\r\n\r\n // 0x3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd\r\n bytes32 public constant RISKPOOL_KEEPER_ROLE = keccak256(\"RISKPOOL_KEEPER_ROLE\");\r\n\r\n mapping(bytes32 => bool) public validRole;\r\n\r\n bool private _defaultAdminSet;\r\n\r\n function _afterInitialize() internal override {\r\n // add product owner, oracle provider and riskpool keeper roles\r\n _populateValidRoles();\r\n }\r\n\r\n function _getName() internal override pure returns(bytes32) { return \"Access\"; }\r\n\r\n // IMPORTANT check the setting of the default admin role\r\n // after the deployment of a GIF instance.\r\n // this method is called in the deployment of\r\n // the instance operator proxy/controller \r\n function setDefaultAdminRole(address defaultAdmin) \r\n external \r\n {\r\n require(!_defaultAdminSet, \"ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET\");\r\n _defaultAdminSet = true;\r\n\r\n _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);\r\n }\r\n\r\n //--- manage role ownership ---------------------------------------------//\r\n function grantRole(bytes32 role, address principal) \r\n public \r\n override(IAccessControl, IAccess) \r\n onlyInstanceOperator \r\n {\r\n require(validRole[role], \"ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID\");\r\n AccessControl.grantRole(role, principal);\r\n }\r\n\r\n function revokeRole(bytes32 role, address principal) \r\n public \r\n override(IAccessControl, IAccess) \r\n onlyInstanceOperator \r\n {\r\n AccessControl.revokeRole(role, principal);\r\n }\r\n\r\n function renounceRole(bytes32 role, address principal) \r\n public \r\n override(IAccessControl, IAccess) \r\n {\r\n AccessControl.renounceRole(role, principal);\r\n }\r\n \r\n //--- manage roles ------------------------------------------------------//\r\n function addRole(bytes32 role) \r\n public override\r\n onlyInstanceOperator \r\n {\r\n require(!validRole[role], \"ERROR:ACL-003:ROLE_EXISTING_AND_VALID\");\r\n validRole[role] = true;\r\n }\r\n\r\n function invalidateRole(bytes32 role)\r\n public override\r\n onlyInstanceOperator \r\n {\r\n require(validRole[role], \"ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID\");\r\n validRole[role] = false;\r\n }\r\n\r\n function hasRole(bytes32 role, address principal) \r\n public view \r\n override(IAccessControl, IAccess) \r\n returns(bool)\r\n {\r\n return super.hasRole(role, principal);\r\n }\r\n\r\n function getDefaultAdminRole() public pure override returns(bytes32) {\r\n return DEFAULT_ADMIN_ROLE;\r\n }\r\n\r\n function getProductOwnerRole() public pure override returns(bytes32) {\r\n return PRODUCT_OWNER_ROLE;\r\n }\r\n\r\n function getOracleProviderRole() public pure override returns(bytes32) {\r\n return ORACLE_PROVIDER_ROLE;\r\n }\r\n\r\n function getRiskpoolKeeperRole() public pure override returns(bytes32) {\r\n return RISKPOOL_KEEPER_ROLE;\r\n }\r\n\r\n function _populateValidRoles() private {\r\n validRole[PRODUCT_OWNER_ROLE] = true;\r\n validRole[ORACLE_PROVIDER_ROLE] = true;\r\n validRole[RISKPOOL_KEEPER_ROLE] = true;\r\n }\r\n}\r\n"},"contracts/modules/BundleController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./PolicyController.sol\";\nimport \"../shared/CoreController.sol\";\nimport \"../tokens/BundleToken.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IBundle.sol\";\nimport \"./PoolController.sol\";\n\n/**\nThe smart contract is used to manage bundles, which are collections of policies.\n\n- The contract imports other Solidity contracts such as `PolicyController.sol`, `CoreController.sol`, and `BundleToken.sol`.\n- The contract implements the `IBundle` interface and extends the `CoreController` contract.\n- It defines several mappings to store information about bundles, active policies, locked capital per policy, and the number of unburt bundles for each risk pool.\n- There is a private variable `_bundleCount` to keep track of the number of bundles created.\n- The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`.\n\nFunctions: \n- `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment.\n- `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token.\n- `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance.\n- `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle.\n- `lock()`: Locks a bundle of assets by changing its state to \"Locked.\"\n- `unlock()`: Unlocks a bundle, changing its state back to \"Active.\"\n- `close()`: Closes a bundle of policies.\n- `burn()`: Burns a bundle, changing its state to \"Burned.\"\n- `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle.\n- `processPremium()`: Processes the premium payment for a given bundle and updates its balance.\n- `processPayout()`: Processes a payout for a policy from a bundle.\n- `releasePolicy()`: Releases a policy and updates the bundle's capital.\n\nThe contract includes various modifiers and event emitters to enforce access control and emit relevant events.\nOverall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle.\n */\n\n\ncontract BundleController is \n IBundle,\n CoreController\n{\n\n PolicyController private _policy;\n BundleToken private _token; \n\n mapping(uint256 /* bundleId */ => Bundle /* Bundle */) private _bundles;\n mapping(uint256 /* bundleId */ => uint256 /* activePolicyCount */) private _activePolicies;\n mapping(uint256 /* bundleId */ => mapping(bytes32 /* processId */ => uint256 /* lockedCapitalAmount */)) private _valueLockedPerPolicy;\n mapping(uint256 /* riskpoolId */ => uint256 /* numberOfUnburntBundles */) private _unburntBundlesForRiskpoolId;\n \n\n uint256 private _bundleCount;\n\n modifier onlyRiskpoolService() {\n require(\n _msgSender() == _getContractAddress(\"RiskpoolService\"),\n \"ERROR:BUC-001:NOT_RISKPOOL_SERVICE\"\n );\n _;\n }\n\n modifier onlyFundableBundle(uint256 bundleId) {\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST\");\n require(\n bundle.state != IBundle.BundleState.Burned \n && bundle.state != IBundle.BundleState.Closed, \"ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED\"\n );\n _;\n }\n\n function _afterInitialize() internal override onlyInitializing {\n _policy = PolicyController(_getContractAddress(\"Policy\"));\n _token = BundleToken(_getContractAddress(\"BundleToken\"));\n }\n\n function create(address owner_, uint riskpoolId_, bytes calldata filter_, uint256 amount_) \n external override\n onlyRiskpoolService\n returns(uint256 bundleId)\n { \n // will start with bundleId 1.\n // this helps in maps where a bundleId equals a non-existing entry\n bundleId = _bundleCount + 1;\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt == 0, \"ERROR:BUC-010:BUNDLE_ALREADY_EXISTS\");\n\n // mint corresponding nft with bundleId as nft\n uint256 tokenId = _token.mint(bundleId, owner_);\n\n bundle.id = bundleId;\n bundle.tokenId = tokenId;\n bundle.riskpoolId = riskpoolId_;\n bundle.state = BundleState.Active;\n bundle.filter = filter_;\n bundle.capital = amount_;\n bundle.balance = amount_;\n bundle.createdAt = block.timestamp;\n bundle.updatedAt = block.timestamp;\n\n // update bundle count\n _bundleCount++;\n _unburntBundlesForRiskpoolId[riskpoolId_]++;\n\n emit LogBundleCreated(bundle.id, riskpoolId_, owner_, bundle.state, bundle.capital);\n }\n\n\n function fund(uint256 bundleId, uint256 amount)\n external override \n onlyRiskpoolService\n {\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST\");\n require(bundle.state != IBundle.BundleState.Closed, \"ERROR:BUC-012:BUNDLE_CLOSED\");\n\n bundle.capital += amount;\n bundle.balance += amount;\n bundle.updatedAt = block.timestamp;\n\n uint256 capacityAmount = bundle.capital - bundle.lockedCapital;\n emit LogBundleCapitalProvided(bundleId, _msgSender(), amount, capacityAmount);\n }\n\n\n function defund(uint256 bundleId, uint256 amount) \n external override \n onlyRiskpoolService\n {\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST\");\n require(\n bundle.capital >= bundle.lockedCapital + amount\n || (bundle.lockedCapital == 0 && bundle.balance >= amount),\n \"ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW\"\n );\n\n if (bundle.capital >= amount) { bundle.capital -= amount; } \n else { bundle.capital = 0; }\n\n bundle.balance -= amount;\n bundle.updatedAt = block.timestamp;\n\n uint256 capacityAmount = bundle.capital - bundle.lockedCapital;\n emit LogBundleCapitalWithdrawn(bundleId, _msgSender(), amount, capacityAmount);\n }\n\n function lock(uint256 bundleId)\n external override\n onlyRiskpoolService\n {\n _changeState(bundleId, BundleState.Locked);\n }\n\n function unlock(uint256 bundleId)\n external override\n onlyRiskpoolService\n {\n _changeState(bundleId, BundleState.Active);\n }\n\n function close(uint256 bundleId)\n external override\n onlyRiskpoolService\n {\n require(_activePolicies[bundleId] == 0, \"ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES\");\n _changeState(bundleId, BundleState.Closed);\n }\n\n function burn(uint256 bundleId) \n external override\n onlyRiskpoolService\n {\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.state == BundleState.Closed, \"ERROR:BUC-016:BUNDLE_NOT_CLOSED\");\n require(bundle.balance == 0, \"ERROR:BUC-017:BUNDLE_HAS_BALANCE\");\n\n // burn corresponding nft -> as a result bundle looses its owner\n _token.burn(bundleId);\n _unburntBundlesForRiskpoolId[bundle.riskpoolId] -= 1;\n\n _changeState(bundleId, BundleState.Burned);\n }\n\n function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 amount)\n external override \n onlyRiskpoolService\n {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.riskpoolId == _getPoolController().getRiskPoolForProduct(metadata.productId), \"ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL\");\n require(bundle.createdAt > 0, \"ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST\");\n require(bundle.state == IBundle.BundleState.Active, \"ERROR:BUC-021:BUNDLE_NOT_ACTIVE\"); \n require(bundle.capital >= bundle.lockedCapital + amount, \"ERROR:BUC-022:CAPACITY_TOO_LOW\");\n\n // might need to be added in a future relase\n require(_valueLockedPerPolicy[bundleId][processId] == 0, \"ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED\");\n\n bundle.lockedCapital += amount;\n bundle.updatedAt = block.timestamp;\n\n _activePolicies[bundleId] += 1;\n _valueLockedPerPolicy[bundleId][processId] = amount;\n\n uint256 capacityAmount = bundle.capital - bundle.lockedCapital;\n emit LogBundlePolicyCollateralized(bundleId, processId, amount, capacityAmount);\n }\n\n\n function processPremium(uint256 bundleId, bytes32 processId, uint256 amount)\n external override\n onlyRiskpoolService\n onlyFundableBundle(bundleId)\n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n require(\n policy.state != IPolicy.PolicyState.Closed,\n \"ERROR:POL-030:POLICY_STATE_INVALID\"\n );\n\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST\");\n \n bundle.balance += amount;\n bundle.updatedAt = block.timestamp; // solhint-disable-line\n }\n\n\n function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) \n external override \n onlyRiskpoolService\n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n require(\n policy.state != IPolicy.PolicyState.Closed,\n \"ERROR:POL-040:POLICY_STATE_INVALID\"\n );\n\n // check there are policies and there is sufficient locked capital for policy\n require(_activePolicies[bundleId] > 0, \"ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE\");\n require(_valueLockedPerPolicy[bundleId][processId] >= amount, \"ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY\");\n\n // make sure bundle exists and is not yet closed\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST\");\n require(\n bundle.state == IBundle.BundleState.Active\n || bundle.state == IBundle.BundleState.Locked, \n \"ERROR:BUC-044:BUNDLE_STATE_INVALID\");\n require(bundle.capital >= amount, \"ERROR:BUC-045:CAPITAL_TOO_LOW\");\n require(bundle.lockedCapital >= amount, \"ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW\");\n require(bundle.balance >= amount, \"ERROR:BUC-047:BALANCE_TOO_LOW\");\n\n _valueLockedPerPolicy[bundleId][processId] -= amount;\n bundle.capital -= amount;\n bundle.lockedCapital -= amount;\n bundle.balance -= amount;\n bundle.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogBundlePayoutProcessed(bundleId, processId, amount);\n }\n\n\n function releasePolicy(uint256 bundleId, bytes32 processId) \n external override \n onlyRiskpoolService\n returns(uint256 remainingCollateralAmount)\n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n require(\n policy.state == IPolicy.PolicyState.Closed,\n \"ERROR:POL-050:POLICY_STATE_INVALID\"\n );\n\n // make sure bundle exists and is not yet closed\n Bundle storage bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST\");\n require(_activePolicies[bundleId] > 0, \"ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE\");\n\n uint256 lockedForPolicyAmount = _valueLockedPerPolicy[bundleId][processId];\n // this should never ever fail ...\n require(\n bundle.lockedCapital >= lockedForPolicyAmount,\n \"PANIC:BUC-053:UNLOCK_CAPITAL_TOO_BIG\"\n );\n\n // policy no longer relevant for bundle\n _activePolicies[bundleId] -= 1;\n delete _valueLockedPerPolicy[bundleId][processId];\n\n // update bundle capital\n bundle.lockedCapital -= lockedForPolicyAmount;\n bundle.updatedAt = block.timestamp; // solhint-disable-line\n\n uint256 capacityAmount = bundle.capital - bundle.lockedCapital;\n emit LogBundlePolicyReleased(bundleId, processId, lockedForPolicyAmount, capacityAmount);\n }\n\n function getOwner(uint256 bundleId) public view returns(address) { \n uint256 tokenId = getBundle(bundleId).tokenId;\n return _token.ownerOf(tokenId); \n }\n\n function getState(uint256 bundleId) public view returns(BundleState) {\n return getBundle(bundleId).state; \n }\n\n function getFilter(uint256 bundleId) public view returns(bytes memory) {\n return getBundle(bundleId).filter;\n } \n\n function getCapacity(uint256 bundleId) public view returns(uint256) {\n Bundle memory bundle = getBundle(bundleId);\n return bundle.capital - bundle.lockedCapital;\n }\n\n function getTotalValueLocked(uint256 bundleId) public view returns(uint256) {\n return getBundle(bundleId).lockedCapital; \n }\n\n function getBalance(uint256 bundleId) public view returns(uint256) {\n return getBundle(bundleId).balance; \n }\n\n function getToken() external view returns(BundleToken) {\n return _token;\n }\n\n function getBundle(uint256 bundleId) public view returns(Bundle memory) {\n Bundle memory bundle = _bundles[bundleId];\n require(bundle.createdAt > 0, \"ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST\");\n return bundle;\n }\n\n function bundles() public view returns(uint256) {\n return _bundleCount;\n }\n\n function unburntBundles(uint256 riskpoolId) external view returns(uint256) {\n return _unburntBundlesForRiskpoolId[riskpoolId];\n }\n\n function _getPoolController() internal view returns (PoolController _poolController) {\n _poolController = PoolController(_getContractAddress(\"Pool\"));\n }\n\n function _changeState(uint256 bundleId, BundleState newState) internal {\n BundleState oldState = getState(bundleId);\n\n _checkStateTransition(oldState, newState);\n _setState(bundleId, newState);\n\n // log entry for successful state change\n emit LogBundleStateChanged(bundleId, oldState, newState);\n }\n\n function _setState(uint256 bundleId, BundleState newState) internal {\n _bundles[bundleId].state = newState;\n _bundles[bundleId].updatedAt = block.timestamp;\n }\n\n function _checkStateTransition(BundleState oldState, BundleState newState) \n internal \n pure \n {\n if (oldState == BundleState.Active) {\n require(\n newState == BundleState.Locked || newState == BundleState.Closed, \n \"ERROR:BUC-070:ACTIVE_INVALID_TRANSITION\"\n );\n } else if (oldState == BundleState.Locked) {\n require(\n newState == BundleState.Active || newState == BundleState.Closed, \n \"ERROR:BUC-071:LOCKED_INVALID_TRANSITION\"\n );\n } else if (oldState == BundleState.Closed) {\n require(\n newState == BundleState.Burned, \n \"ERROR:BUC-072:CLOSED_INVALID_TRANSITION\"\n );\n } else if (oldState == BundleState.Burned) {\n revert(\"ERROR:BUC-073:BURNED_IS_FINAL_STATE\");\n } else {\n revert(\"ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED\");\n }\n }\n}\n"},"contracts/modules/ComponentController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../shared/CoreController.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/IOracle.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/IRiskpool.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\";\r\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\r\n\r\n/**\r\nThe smart contract provides functionality to manage and control components in a system.\r\nThe contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types.\r\nIt also includes modifiers to restrict access to certain functions based on the caller's role.\r\n\r\nFunctions:\r\n- `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal.\r\n- `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets.\r\n- `exists()`: Checks if a component with the given ID exists in the system.\r\n- `approve()`: Approves a component with the given ID, changing its state to \"Active\" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping.\r\n- `decline()`: Changes the state of a component with the given ID to \"Declined\" and emits an event. It also calls the `declineCallback` function of the component.\r\n- `suspend()`: Suspends a component with the given ID by changing its state to \"Suspended\" and emitting an event. It also calls the `suspendCallback` function of the component.\r\n- `resume()`: Resumes a component with the given ID by changing its state to \"Active\" and emitting an event. It also calls the `resumeCallback` function of the component.\r\n- `pause()`: Pauses a component with the given ID by changing its state to \"Paused\" and emitting an event. It also calls the `pauseCallback` function of the component.\r\n- `unpause()`: Unpauses a component with the given ID by changing its state to \"Active\" and emitting an event. It also calls the `unpauseCallback` function of the component.\r\n- `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to \"Archived\" and emitting an event. It also calls the `archiveCallback` function of the component.\r\n- `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to \"Archived\" and emitting an event. It also calls the `archiveCallback` function of the component.\r\n- `getComponent()`: Retrieves the component with the given ID.\r\n- `getComponentId()`: Retrieves the ID of a registered component given its address.\r\n- `getComponentType()`: Retrieves the component type of a given component ID.\r\n- `getComponentState()`: Retrieves the state of the component with the given ID.\r\n- `getOracleId()`: Retrieves the oracle ID at the specified index.\r\n- `getRiskpoolId()`: Retrieves the risk pool ID at the specified index.\r\n- `getProductId()`: Retrieves the product ID at the specified index.\r\n- `getRequiredRole()`: Retrieves the required role for a given component type.\r\n- `components()`: Returns the number of components currently stored in the contract.\r\n- `products()`: Returns the number of products in the `_products` set.\r\n- `oracles()`: Returns the number of oracles registered in the `_oracles` set.\r\n- `riskpools()`: Returns the number of risk pools in the set.\r\n\r\nThe contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions.\r\n\r\nThe contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations.\r\n */\r\n\r\ncontract ComponentController is\r\n IComponentEvents,\r\n CoreController \r\n {\r\n using EnumerableSet for EnumerableSet.UintSet;\r\n\r\n mapping(uint256 => IComponent) private _componentById;\r\n mapping(bytes32 => uint256) private _componentIdByName;\r\n mapping(address => uint256) private _componentIdByAddress;\r\n\r\n mapping(uint256 => IComponent.ComponentState) private _componentState;\r\n\r\n EnumerableSet.UintSet private _products;\r\n EnumerableSet.UintSet private _oracles;\r\n EnumerableSet.UintSet private _riskpools;\r\n uint256 private _componentCount;\r\n\r\n mapping(uint256 /* product id */ => address /* policy flow address */) private _policyFlowByProductId;\r\n\r\n modifier onlyComponentOwnerService() {\r\n require(\r\n _msgSender() == _getContractAddress(\"ComponentOwnerService\"),\r\n \"ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE\");\r\n _;\r\n }\r\n\r\n modifier onlyInstanceOperatorService() {\r\n require(\r\n _msgSender() == _getContractAddress(\"InstanceOperatorService\"),\r\n \"ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE\");\r\n _;\r\n }\r\n\r\n function propose(IComponent component) \r\n external\r\n onlyComponentOwnerService \r\n {\r\n // input validation\r\n require(_componentIdByAddress[address(component)] == 0, \"ERROR:CCR-003:COMPONENT_ALREADY_EXISTS\");\r\n require(_componentIdByName[component.getName()] == 0, \"ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS\");\r\n\r\n // assigning id and persisting component\r\n uint256 id = _persistComponent(component);\r\n\r\n // log entry for successful proposal\r\n emit LogComponentProposed(\r\n component.getName(),\r\n component.getType(),\r\n address(component),\r\n id);\r\n \r\n // inform component about successful proposal\r\n component.proposalCallback();\r\n }\r\n\r\n function _persistComponent(IComponent component) \r\n internal\r\n returns(uint256 id)\r\n {\r\n // fetch next component id\r\n _componentCount++;\r\n id = _componentCount;\r\n\r\n // update component state\r\n _changeState(id, IComponent.ComponentState.Proposed);\r\n component.setId(id);\r\n\r\n // update controller book keeping\r\n _componentById[id] = component;\r\n _componentIdByName[component.getName()] = id;\r\n _componentIdByAddress[address(component)] = id;\r\n\r\n // type specific book keeping\r\n if (component.isProduct()) { EnumerableSet.add(_products, id); }\r\n else if (component.isOracle()) { EnumerableSet.add(_oracles, id); }\r\n else if (component.isRiskpool()) { EnumerableSet.add(_riskpools, id); }\r\n }\r\n\r\n function exists(uint256 id) public view returns(bool) {\r\n IComponent component = _componentById[id];\r\n return (address(component) != address(0));\r\n }\r\n\r\n function approve(uint256 id) \r\n external\r\n onlyInstanceOperatorService \r\n {\r\n _changeState(id, IComponent.ComponentState.Active);\r\n IComponent component = getComponent(id);\r\n\r\n if (isProduct(id)) {\r\n _policyFlowByProductId[id] = IProduct(address(component)).getPolicyFlow();\r\n }\r\n\r\n emit LogComponentApproved(id);\r\n \r\n // inform component about successful approval\r\n component.approvalCallback();\r\n }\r\n\r\n function decline(uint256 id) \r\n external\r\n onlyInstanceOperatorService \r\n {\r\n _changeState(id, IComponent.ComponentState.Declined);\r\n emit LogComponentDeclined(id);\r\n \r\n // inform component about decline\r\n IComponent component = getComponent(id);\r\n component.declineCallback();\r\n }\r\n\r\n function suspend(uint256 id) \r\n external \r\n onlyInstanceOperatorService \r\n {\r\n _changeState(id, IComponent.ComponentState.Suspended);\r\n emit LogComponentSuspended(id);\r\n \r\n // inform component about suspending\r\n IComponent component = getComponent(id);\r\n component.suspendCallback();\r\n }\r\n\r\n function resume(uint256 id) \r\n external \r\n onlyInstanceOperatorService \r\n {\r\n _changeState(id, IComponent.ComponentState.Active);\r\n emit LogComponentResumed(id);\r\n \r\n // inform component about resuming\r\n IComponent component = getComponent(id);\r\n component.resumeCallback();\r\n }\r\n\r\n function pause(uint256 id) \r\n external \r\n onlyComponentOwnerService \r\n {\r\n _changeState(id, IComponent.ComponentState.Paused);\r\n emit LogComponentPaused(id);\r\n \r\n // inform component about pausing\r\n IComponent component = getComponent(id);\r\n component.pauseCallback();\r\n }\r\n\r\n function unpause(uint256 id) \r\n external \r\n onlyComponentOwnerService \r\n {\r\n _changeState(id, IComponent.ComponentState.Active);\r\n emit LogComponentUnpaused(id);\r\n \r\n // inform component about unpausing\r\n IComponent component = getComponent(id);\r\n component.unpauseCallback();\r\n }\r\n\r\n function archiveFromComponentOwner(uint256 id) \r\n external \r\n onlyComponentOwnerService \r\n {\r\n _changeState(id, IComponent.ComponentState.Archived);\r\n emit LogComponentArchived(id);\r\n \r\n // inform component about archiving\r\n IComponent component = getComponent(id);\r\n component.archiveCallback();\r\n }\r\n\r\n function archiveFromInstanceOperator(uint256 id) \r\n external \r\n onlyInstanceOperatorService \r\n {\r\n _changeState(id, IComponent.ComponentState.Archived);\r\n emit LogComponentArchived(id);\r\n \r\n // inform component about archiving\r\n IComponent component = getComponent(id);\r\n component.archiveCallback();\r\n }\r\n\r\n function getComponent(uint256 id) public view returns (IComponent component) {\r\n component = _componentById[id];\r\n require(address(component) != address(0), \"ERROR:CCR-005:INVALID_COMPONENT_ID\");\r\n }\r\n\r\n function getComponentId(address componentAddress) public view returns (uint256 id) {\r\n require(componentAddress != address(0), \"ERROR:CCR-006:COMPONENT_ADDRESS_ZERO\");\r\n id = _componentIdByAddress[componentAddress];\r\n\r\n require(id > 0, \"ERROR:CCR-007:COMPONENT_UNKNOWN\");\r\n }\r\n\r\n function getComponentType(uint256 id) public view returns (IComponent.ComponentType componentType) {\r\n if (EnumerableSet.contains(_products, id)) {\r\n return IComponent.ComponentType.Product;\r\n } else if (EnumerableSet.contains(_oracles, id)) {\r\n return IComponent.ComponentType.Oracle;\r\n } else if (EnumerableSet.contains(_riskpools, id)) {\r\n return IComponent.ComponentType.Riskpool;\r\n } else {\r\n revert(\"ERROR:CCR-008:INVALID_COMPONENT_ID\");\r\n }\r\n }\r\n\r\n function getComponentState(uint256 id) public view returns (IComponent.ComponentState componentState) {\r\n return _componentState[id];\r\n }\r\n\r\n function getOracleId(uint256 idx) public view returns (uint256 oracleId) {\r\n return EnumerableSet.at(_oracles, idx);\r\n }\r\n\r\n function getRiskpoolId(uint256 idx) public view returns (uint256 riskpoolId) {\r\n return EnumerableSet.at(_riskpools, idx);\r\n }\r\n\r\n function getProductId(uint256 idx) public view returns (uint256 productId) {\r\n return EnumerableSet.at(_products, idx);\r\n }\r\n\r\n function getRequiredRole(IComponent.ComponentType componentType) external view returns (bytes32) {\r\n if (componentType == IComponent.ComponentType.Product) { return _access.getProductOwnerRole(); }\r\n else if (componentType == IComponent.ComponentType.Oracle) { return _access.getOracleProviderRole(); }\r\n else if (componentType == IComponent.ComponentType.Riskpool) { return _access.getRiskpoolKeeperRole(); }\r\n else { revert(\"ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN\"); }\r\n }\r\n\r\n function components() public view returns (uint256 count) { return _componentCount; }\r\n function products() public view returns (uint256 count) { return EnumerableSet.length(_products); }\r\n function oracles() public view returns (uint256 count) { return EnumerableSet.length(_oracles); }\r\n function riskpools() public view returns (uint256 count) { return EnumerableSet.length(_riskpools); }\r\n\r\n function isProduct(uint256 id) public view returns (bool) { return EnumerableSet.contains(_products, id); }\r\n\r\n function isOracle(uint256 id) public view returns (bool) { return EnumerableSet.contains(_oracles, id); }\r\n\r\n function isRiskpool(uint256 id) public view returns (bool) { return EnumerableSet.contains(_riskpools, id); }\r\n\r\n function getPolicyFlow(uint256 productId) public view returns (address _policyFlow) {\r\n require(isProduct(productId), \"ERROR:CCR-011:UNKNOWN_PRODUCT_ID\");\r\n _policyFlow = _policyFlowByProductId[productId];\r\n }\r\n\r\n function _changeState(uint256 componentId, IComponent.ComponentState newState) internal {\r\n IComponent.ComponentState oldState = _componentState[componentId];\r\n\r\n _checkStateTransition(oldState, newState);\r\n _componentState[componentId] = newState;\r\n\r\n // log entry for successful component state change\r\n emit LogComponentStateChanged(componentId, oldState, newState);\r\n }\r\n\r\n function _checkStateTransition(\r\n IComponent.ComponentState oldState, \r\n IComponent.ComponentState newState\r\n ) \r\n internal \r\n pure \r\n {\r\n require(newState != oldState, \r\n \"ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL\");\r\n \r\n if (oldState == IComponent.ComponentState.Created) {\r\n require(newState == IComponent.ComponentState.Proposed, \r\n \"ERROR:CCR-021:CREATED_INVALID_TRANSITION\");\r\n } else if (oldState == IComponent.ComponentState.Proposed) {\r\n require(newState == IComponent.ComponentState.Active \r\n || newState == IComponent.ComponentState.Declined, \r\n \"ERROR:CCR-22:PROPOSED_INVALID_TRANSITION\");\r\n } else if (oldState == IComponent.ComponentState.Declined) {\r\n revert(\"ERROR:CCR-023:DECLINED_IS_FINAL_STATE\");\r\n } else if (oldState == IComponent.ComponentState.Active) {\r\n require(newState == IComponent.ComponentState.Paused \r\n || newState == IComponent.ComponentState.Suspended, \r\n \"ERROR:CCR-024:ACTIVE_INVALID_TRANSITION\");\r\n } else if (oldState == IComponent.ComponentState.Paused) {\r\n require(newState == IComponent.ComponentState.Active\r\n || newState == IComponent.ComponentState.Archived, \r\n \"ERROR:CCR-025:PAUSED_INVALID_TRANSITION\");\r\n } else if (oldState == IComponent.ComponentState.Suspended) {\r\n require(newState == IComponent.ComponentState.Active\r\n || newState == IComponent.ComponentState.Archived, \r\n \"ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION\");\r\n } else {\r\n revert(\"ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED\");\r\n }\r\n }\r\n}\r\n"},"contracts/modules/LicenseController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./ComponentController.sol\";\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/ILicense.sol\";\n\n/**\nThe smart contract serves as a controller contract for managing licenses related to products in an insurance ecosystem.\nThe contract implements the `ILicense` interface and extends the `CoreController` contract.\n\nThe contract imports two other contracts: `ComponentController.sol` and `CoreController.sol`, which are expected to be located in specific file paths.\nIt also imports several interfaces from the \"etherisc/gif-interface\" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`.\nThe contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract.\n\nFunctions:\n- `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract.\n- `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function.\n- `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`.\n- `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`.\n\nOverall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem.\n */\n\n\ncontract LicenseController is\n ILicense, \n CoreController\n{\n\n ComponentController private _component;\n\n function _afterInitialize() internal override onlyInitializing {\n _component = ComponentController(_getContractAddress(\"Component\"));\n }\n\n // ensures that calling component (productAddress) is a product\n function getAuthorizationStatus(address productAddress)\n public override\n view\n returns (uint256 productId, bool isAuthorized, address policyFlow)\n {\n productId = _component.getComponentId(productAddress);\n isAuthorized = _isValidCall(productId);\n policyFlow = _component.getPolicyFlow(productId);\n }\n\n function _isValidCall(uint256 productId) internal view returns (bool) {\n return _component.getComponentState(productId) == IComponent.ComponentState.Active;\n }\n\n function _getProduct(uint256 id) internal view returns (IProduct product) {\n require(_component.isProduct(id), \"ERROR:LIC-001:COMPONENT_NOT_PRODUCT\");\n IComponent cmp = _component.getComponent(id);\n product = IProduct(address(cmp));\n }\n}\n"},"contracts/modules/PolicyController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../shared/CoreController.sol\";\nimport \"./ComponentController.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\n\n/**\nThe smart contract implements functions for policy operations, including creation, update, cancellation, and retrieval.\nIt also provides functions for claim creation, confirmation, decline, closure, and payout creation.\nAdditionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy.\nThe contract inherits from the `IPolicy` interface and the `CoreController` contract.\n\n1. State Variables:\n- `metadata`: A mapping that stores metadata associated with policy flows.\n- `applications`: A mapping that stores insurance applications associated with policy flows.\n- `policies`: A mapping that stores policies associated with policy flows.\n- `claims`: A nested mapping that stores claims associated with policies.\n- `payouts`: A nested mapping that stores payouts associated with policies.\n- `payoutCount`: A mapping that stores the count of payouts for each policy flow.\n- `_assigendProcessIds`: A counter variable for assigning unique process IDs.\n- `_component`: A reference to the `ComponentController` contract.\n\n2. Functions:\n- `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization.\n- `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data.\n- `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data.\n- `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount.\n- `revokeApplication()`: Revokes an application for a policy flow.\n- `underwriteApplication()`: Changes the state of an application to \"Underwritten\".\n- `declineApplication()`: Declines an application for a policy flow.\n- `createPolicy()`: Creates a new policy for a given application process ID.\n- `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application.\n- `expirePolicy()`: Expires a policy with the given process ID.\n- `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims.\n- `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event.\n- `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event.\n- `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event.\n- `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event.\n- `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event.\n- `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event.\n- `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists.\n- `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists.\n- `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function.\n- `getNumberOfPayouts()`: Returns the number of payouts for a given process ID.\n\nOverall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract.\n */\n\ncontract PolicyController is \n IPolicy, \n CoreController\n{\n // bytes32 public constant NAME = \"PolicyController\";\n\n // Metadata\n mapping(bytes32 /* processId */ => Metadata) public metadata;\n\n // Applications\n mapping(bytes32 /* processId */ => Application) public applications;\n\n // Policies\n mapping(bytes32 /* processId */ => Policy) public policies;\n\n // Claims\n mapping(bytes32 /* processId */ => mapping(uint256 /* claimId */ => Claim)) public claims;\n\n // Payouts\n mapping(bytes32 /* processId */ => mapping(uint256 /* payoutId */ => Payout)) public payouts;\n mapping(bytes32 /* processId */ => uint256) public payoutCount;\n\n // counter for assigned processIds, used to ensure unique processIds\n uint256 private _assigendProcessIds;\n\n ComponentController private _component;\n\n function _afterInitialize() internal override onlyInitializing {\n _component = ComponentController(_getContractAddress(\"Component\"));\n }\n\n /* Metadata */\n function createPolicyFlow(\n address owner,\n uint256 productId,\n bytes calldata data\n )\n external override\n onlyPolicyFlow(\"Policy\")\n returns(bytes32 processId)\n {\n require(owner != address(0), \"ERROR:POL-001:INVALID_OWNER\");\n\n require(_component.isProduct(productId), \"ERROR:POL-002:INVALID_PRODUCT\");\n require(_component.getComponentState(productId) == IComponent.ComponentState.Active, \"ERROR:POL-003:PRODUCT_NOT_ACTIVE\");\n \n processId = _generateNextProcessId();\n Metadata storage meta = metadata[processId];\n require(meta.createdAt == 0, \"ERROR:POC-004:METADATA_ALREADY_EXISTS\");\n\n meta.owner = owner;\n meta.productId = productId;\n meta.state = PolicyFlowState.Started;\n meta.data = data;\n meta.createdAt = block.timestamp; // solhint-disable-line\n meta.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogMetadataCreated(owner, processId, productId, PolicyFlowState.Started);\n }\n\n /* Application */\n function createApplication(\n bytes32 processId, \n uint256 premiumAmount,\n uint256 sumInsuredAmount,\n bytes calldata data\n )\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Metadata storage meta = metadata[processId];\n require(meta.createdAt > 0, \"ERROR:POC-010:METADATA_DOES_NOT_EXIST\");\n\n Application storage application = applications[processId];\n require(application.createdAt == 0, \"ERROR:POC-011:APPLICATION_ALREADY_EXISTS\");\n\n require(premiumAmount > 0, \"ERROR:POC-012:PREMIUM_AMOUNT_ZERO\");\n require(sumInsuredAmount > premiumAmount, \"ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL\");\n\n application.state = ApplicationState.Applied;\n application.premiumAmount = premiumAmount;\n application.sumInsuredAmount = sumInsuredAmount;\n application.data = data;\n application.createdAt = block.timestamp; // solhint-disable-line\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n meta.state = PolicyFlowState.Active;\n meta.updatedAt = block.timestamp; // solhint-disable-line\n emit LogMetadataStateChanged(processId, meta.state);\n\n emit LogApplicationCreated(processId, premiumAmount, sumInsuredAmount);\n }\n\n function collectPremium(bytes32 processId, uint256 amount) \n external override\n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-110:POLICY_DOES_NOT_EXIST\");\n require(policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, \"ERROR:POC-111:AMOUNT_TOO_BIG\");\n\n policy.premiumPaidAmount += amount;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n \n emit LogPremiumCollected(processId, amount);\n }\n \n function revokeApplication(bytes32 processId)\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Metadata storage meta = metadata[processId];\n require(meta.createdAt > 0, \"ERROR:POC-014:METADATA_DOES_NOT_EXIST\");\n\n Application storage application = applications[processId];\n require(application.createdAt > 0, \"ERROR:POC-015:APPLICATION_DOES_NOT_EXIST\");\n require(application.state == ApplicationState.Applied, \"ERROR:POC-016:APPLICATION_STATE_INVALID\");\n\n application.state = ApplicationState.Revoked;\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n meta.state = PolicyFlowState.Finished;\n meta.updatedAt = block.timestamp; // solhint-disable-line\n emit LogMetadataStateChanged(processId, meta.state);\n\n emit LogApplicationRevoked(processId);\n }\n\n function underwriteApplication(bytes32 processId)\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Application storage application = applications[processId];\n require(application.createdAt > 0, \"ERROR:POC-017:APPLICATION_DOES_NOT_EXIST\");\n require(application.state == ApplicationState.Applied, \"ERROR:POC-018:APPLICATION_STATE_INVALID\");\n\n application.state = ApplicationState.Underwritten;\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogApplicationUnderwritten(processId);\n }\n\n function declineApplication(bytes32 processId)\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Metadata storage meta = metadata[processId];\n require(meta.createdAt > 0, \"ERROR:POC-019:METADATA_DOES_NOT_EXIST\");\n\n Application storage application = applications[processId];\n require(application.createdAt > 0, \"ERROR:POC-020:APPLICATION_DOES_NOT_EXIST\");\n require(application.state == ApplicationState.Applied, \"ERROR:POC-021:APPLICATION_STATE_INVALID\");\n\n application.state = ApplicationState.Declined;\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n meta.state = PolicyFlowState.Finished;\n meta.updatedAt = block.timestamp; // solhint-disable-line\n emit LogMetadataStateChanged(processId, meta.state);\n\n emit LogApplicationDeclined(processId);\n }\n\n /* Policy */\n function createPolicy(bytes32 processId) \n external override \n onlyPolicyFlow(\"Policy\")\n {\n Application memory application = applications[processId];\n require(application.createdAt > 0 && application.state == ApplicationState.Underwritten, \"ERROR:POC-022:APPLICATION_ACCESS_INVALID\");\n\n Policy storage policy = policies[processId];\n require(policy.createdAt == 0, \"ERROR:POC-023:POLICY_ALREADY_EXISTS\");\n\n policy.state = PolicyState.Active;\n policy.premiumExpectedAmount = application.premiumAmount;\n policy.payoutMaxAmount = application.sumInsuredAmount;\n policy.createdAt = block.timestamp; // solhint-disable-line\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogPolicyCreated(processId);\n }\n\n function adjustPremiumSumInsured(\n bytes32 processId, \n uint256 expectedPremiumAmount,\n uint256 sumInsuredAmount\n )\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Application storage application = applications[processId];\n require(\n application.createdAt > 0 \n && application.state == ApplicationState.Underwritten, \n \"ERROR:POC-024:APPLICATION_ACCESS_INVALID\");\n\n require(\n sumInsuredAmount <= application.sumInsuredAmount, \n \"ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID\");\n\n Policy storage policy = policies[processId];\n require(\n policy.createdAt > 0 \n && policy.state == IPolicy.PolicyState.Active, \n \"ERROR:POC-027:POLICY_ACCESS_INVALID\");\n \n require(\n expectedPremiumAmount > 0 \n && expectedPremiumAmount >= policy.premiumPaidAmount\n && expectedPremiumAmount < sumInsuredAmount, \n \"ERROR:POC-025:APPLICATION_PREMIUM_INVALID\");\n\n if (sumInsuredAmount != application.sumInsuredAmount) {\n emit LogApplicationSumInsuredAdjusted(processId, application.sumInsuredAmount, sumInsuredAmount);\n application.sumInsuredAmount = sumInsuredAmount;\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n policy.payoutMaxAmount = sumInsuredAmount;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n }\n\n if (expectedPremiumAmount != application.premiumAmount) {\n emit LogApplicationPremiumAdjusted(processId, application.premiumAmount, expectedPremiumAmount);\n application.premiumAmount = expectedPremiumAmount;\n application.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogPolicyPremiumAdjusted(processId, policy.premiumExpectedAmount, expectedPremiumAmount);\n policy.premiumExpectedAmount = expectedPremiumAmount;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n }\n }\n\n function expirePolicy(bytes32 processId)\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-028:POLICY_DOES_NOT_EXIST\");\n require(policy.state == PolicyState.Active, \"ERROR:POC-029:APPLICATION_STATE_INVALID\");\n\n policy.state = PolicyState.Expired;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogPolicyExpired(processId);\n }\n\n function closePolicy(bytes32 processId)\n external override\n onlyPolicyFlow(\"Policy\")\n {\n Metadata storage meta = metadata[processId];\n require(meta.createdAt > 0, \"ERROR:POC-030:METADATA_DOES_NOT_EXIST\");\n\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-031:POLICY_DOES_NOT_EXIST\");\n require(policy.state == PolicyState.Expired, \"ERROR:POC-032:POLICY_STATE_INVALID\");\n require(policy.openClaimsCount == 0, \"ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS\");\n\n policy.state = PolicyState.Closed;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n meta.state = PolicyFlowState.Finished;\n meta.updatedAt = block.timestamp; // solhint-disable-line\n emit LogMetadataStateChanged(processId, meta.state);\n\n emit LogPolicyClosed(processId);\n }\n\n /* Claim */\n function createClaim(\n bytes32 processId, \n uint256 claimAmount,\n bytes calldata data\n )\n external override\n onlyPolicyFlow(\"Policy\")\n returns (uint256 claimId)\n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-040:POLICY_DOES_NOT_EXIST\");\n require(policy.state == IPolicy.PolicyState.Active, \"ERROR:POC-041:POLICY_NOT_ACTIVE\");\n // no validation of claimAmount > 0 here to explicitly allow claims with amount 0. This can be useful for parametric insurance \n // to have proof that the claim calculation was executed without entitlement to payment.\n require(policy.payoutAmount + claimAmount <= policy.payoutMaxAmount, \"ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT\");\n\n claimId = policy.claimsCount;\n Claim storage claim = claims[processId][claimId];\n require(claim.createdAt == 0, \"ERROR:POC-043:CLAIM_ALREADY_EXISTS\");\n\n claim.state = ClaimState.Applied;\n claim.claimAmount = claimAmount;\n claim.data = data;\n claim.createdAt = block.timestamp; // solhint-disable-line\n claim.updatedAt = block.timestamp; // solhint-disable-line\n\n policy.claimsCount++;\n policy.openClaimsCount++;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogClaimCreated(processId, claimId, claimAmount);\n }\n\n function confirmClaim(\n bytes32 processId,\n uint256 claimId,\n uint256 confirmedAmount\n ) \n external override\n onlyPolicyFlow(\"Policy\") \n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-050:POLICY_DOES_NOT_EXIST\");\n require(policy.openClaimsCount > 0, \"ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS\");\n // no validation of claimAmount > 0 here as is it possible to have claims with amount 0 (see createClaim()). \n require(policy.payoutAmount + confirmedAmount <= policy.payoutMaxAmount, \"ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED\");\n\n Claim storage claim = claims[processId][claimId];\n require(claim.createdAt > 0, \"ERROR:POC-053:CLAIM_DOES_NOT_EXIST\");\n require(claim.state == ClaimState.Applied, \"ERROR:POC-054:CLAIM_STATE_INVALID\");\n\n claim.state = ClaimState.Confirmed;\n claim.claimAmount = confirmedAmount;\n claim.updatedAt = block.timestamp; // solhint-disable-line\n\n policy.payoutAmount += confirmedAmount;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogClaimConfirmed(processId, claimId, confirmedAmount);\n }\n\n function declineClaim(bytes32 processId, uint256 claimId)\n external override\n onlyPolicyFlow(\"Policy\") \n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-060:POLICY_DOES_NOT_EXIST\");\n require(policy.openClaimsCount > 0, \"ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS\");\n\n Claim storage claim = claims[processId][claimId];\n require(claim.createdAt > 0, \"ERROR:POC-062:CLAIM_DOES_NOT_EXIST\");\n require(claim.state == ClaimState.Applied, \"ERROR:POC-063:CLAIM_STATE_INVALID\");\n\n claim.state = ClaimState.Declined;\n claim.updatedAt = block.timestamp; // solhint-disable-line\n\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogClaimDeclined(processId, claimId);\n }\n\n function closeClaim(bytes32 processId, uint256 claimId)\n external override\n onlyPolicyFlow(\"Policy\") \n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-070:POLICY_DOES_NOT_EXIST\");\n require(policy.openClaimsCount > 0, \"ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS\");\n\n Claim storage claim = claims[processId][claimId];\n require(claim.createdAt > 0, \"ERROR:POC-072:CLAIM_DOES_NOT_EXIST\");\n require(\n claim.state == ClaimState.Confirmed \n || claim.state == ClaimState.Declined, \n \"ERROR:POC-073:CLAIM_STATE_INVALID\");\n\n require(\n (claim.state == ClaimState.Confirmed && claim.claimAmount == claim.paidAmount) \n || (claim.state == ClaimState.Declined), \n \"ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS\"\n );\n\n claim.state = ClaimState.Closed;\n claim.updatedAt = block.timestamp; // solhint-disable-line\n\n policy.openClaimsCount--;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogClaimClosed(processId, claimId);\n }\n\n /* Payout */\n function createPayout(\n bytes32 processId,\n uint256 claimId,\n uint256 payoutAmount,\n bytes calldata data\n )\n external override \n onlyPolicyFlow(\"Policy\") \n returns (uint256 payoutId)\n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-080:POLICY_DOES_NOT_EXIST\");\n\n Claim storage claim = claims[processId][claimId];\n require(claim.createdAt > 0, \"ERROR:POC-081:CLAIM_DOES_NOT_EXIST\");\n require(claim.state == IPolicy.ClaimState.Confirmed, \"ERROR:POC-082:CLAIM_NOT_CONFIRMED\");\n require(payoutAmount > 0, \"ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID\");\n require(\n claim.paidAmount + payoutAmount <= claim.claimAmount,\n \"ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG\"\n );\n\n payoutId = payoutCount[processId];\n Payout storage payout = payouts[processId][payoutId];\n require(payout.createdAt == 0, \"ERROR:POC-085:PAYOUT_ALREADY_EXISTS\");\n\n payout.claimId = claimId;\n payout.amount = payoutAmount;\n payout.data = data;\n payout.state = PayoutState.Expected;\n payout.createdAt = block.timestamp; // solhint-disable-line\n payout.updatedAt = block.timestamp; // solhint-disable-line\n\n payoutCount[processId]++;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogPayoutCreated(processId, claimId, payoutId, payoutAmount);\n }\n\n function processPayout(\n bytes32 processId,\n uint256 payoutId\n )\n external override \n onlyPolicyFlow(\"Policy\")\n {\n Policy storage policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-090:POLICY_DOES_NOT_EXIST\");\n require(policy.openClaimsCount > 0, \"ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS\");\n\n Payout storage payout = payouts[processId][payoutId];\n require(payout.createdAt > 0, \"ERROR:POC-092:PAYOUT_DOES_NOT_EXIST\");\n require(payout.state == PayoutState.Expected, \"ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT\");\n\n payout.state = IPolicy.PayoutState.PaidOut;\n payout.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogPayoutProcessed(processId, payoutId);\n\n Claim storage claim = claims[processId][payout.claimId];\n claim.paidAmount += payout.amount;\n claim.updatedAt = block.timestamp; // solhint-disable-line\n\n // check if claim can be closed\n if (claim.claimAmount == claim.paidAmount) {\n claim.state = IPolicy.ClaimState.Closed;\n\n policy.openClaimsCount -= 1;\n policy.updatedAt = block.timestamp; // solhint-disable-line\n\n emit LogClaimClosed(processId, payout.claimId);\n }\n }\n\n function getMetadata(bytes32 processId)\n public\n view\n returns (IPolicy.Metadata memory _metadata)\n {\n _metadata = metadata[processId];\n require(_metadata.createdAt > 0, \"ERROR:POC-100:METADATA_DOES_NOT_EXIST\");\n }\n\n function getApplication(bytes32 processId)\n public\n view\n returns (IPolicy.Application memory application)\n {\n application = applications[processId];\n require(application.createdAt > 0, \"ERROR:POC-101:APPLICATION_DOES_NOT_EXIST\"); \n }\n\n function getNumberOfClaims(bytes32 processId) external view returns(uint256 numberOfClaims) {\n numberOfClaims = getPolicy(processId).claimsCount;\n }\n \n function getNumberOfPayouts(bytes32 processId) external view returns(uint256 numberOfPayouts) {\n numberOfPayouts = payoutCount[processId];\n }\n\n function getPolicy(bytes32 processId)\n public\n view\n returns (IPolicy.Policy memory policy)\n {\n policy = policies[processId];\n require(policy.createdAt > 0, \"ERROR:POC-102:POLICY_DOES_NOT_EXIST\"); \n }\n\n function getClaim(bytes32 processId, uint256 claimId)\n public\n view\n returns (IPolicy.Claim memory claim)\n {\n claim = claims[processId][claimId];\n require(claim.createdAt > 0, \"ERROR:POC-103:CLAIM_DOES_NOT_EXIST\"); \n }\n\n function getPayout(bytes32 processId, uint256 payoutId)\n public\n view\n returns (IPolicy.Payout memory payout)\n {\n payout = payouts[processId][payoutId];\n require(payout.createdAt > 0, \"ERROR:POC-104:PAYOUT_DOES_NOT_EXIST\"); \n }\n\n function processIds() external view returns (uint256) {\n return _assigendProcessIds;\n }\n\n function _generateNextProcessId() private returns(bytes32 processId) {\n _assigendProcessIds++;\n\n processId = keccak256(\n abi.encodePacked(\n block.chainid, \n address(_registry),\n _assigendProcessIds\n )\n );\n } \n}\n"},"contracts/modules/PoolController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./ComponentController.sol\";\nimport \"./PolicyController.sol\";\nimport \"./BundleController.sol\";\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/modules/IPool.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IRiskpool.sol\";\n\n\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\n\n/**\nThe smart contract manages riskpools, their registration, funding, defunding, collateralization, and other related operations.\n\n- The contract implements the IPool interface and extends the CoreController contract.\n- It imports other contracts such as ComponentController, PolicyController, BundleController, and CoreController.\n- It uses the EnumerableSet library from OpenZeppelin for managing sets of bundle IDs.\n- The contract defines constants for full collateralization level, collateralization level cap, and default maximum number of active bundles.\n- It maintains mappings to store riskpool information, riskpool IDs for products, maximum number of active bundles for riskpools, and active bundle IDs for riskpools.\n- The contract has a private array to store riskpool IDs.\n- It has references to other contracts: ComponentController, PolicyController, and BundleController.\n- The contract defines modifiers for access control to specific functions.\n\nFunctions:\n- `_afterInitialize()`: Called after contract initialization to set addresses of other contracts.\n- `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration.\n- `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID.\n- `fund()`: Adds funds to a specific riskpool.\n- `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount.\n- `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure.\n- `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount.\n- `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract.\n- `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout.\n- `release()`: Releases a policy's collateral from the riskpool.\n\nOverall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations.\n */\n\ncontract PoolController is\n IPool,\n CoreController\n{\n\n using EnumerableSet for EnumerableSet.UintSet;\n\n // used for representation of collateralization\n // collateralization between 0 and 1 (1=100%) \n // value might be larger when overcollateralization\n uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10**18;\n\n // upper limit for overcollateralization at 200% \n uint256 public constant COLLATERALIZATION_LEVEL_CAP = 2 * FULL_COLLATERALIZATION_LEVEL;\n\n uint256 public constant DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES = 1;\n\n mapping(bytes32 /* processId */ => uint256 /* collateralAmount*/ ) private _collateralAmount;\n\n mapping(uint256 /* productId */ => uint256 /* riskpoolId */) private _riskpoolIdForProductId;\n\n mapping(uint256 /* riskpoolId */ => IPool.Pool) private _riskpools;\n\n mapping(uint256 /* riskpoolId */ => uint256 /* maxmimumNumberOfActiveBundles */) private _maxmimumNumberOfActiveBundlesForRiskpoolId;\n\n mapping(uint256 /* riskpoolId */ => EnumerableSet.UintSet /* active bundle id set */) private _activeBundleIdsForRiskpoolId;\n \n uint256 [] private _riskpoolIds;\n\n ComponentController private _component;\n PolicyController private _policy;\n BundleController private _bundle;\n\n modifier onlyInstanceOperatorService() {\n require(\n _msgSender() == _getContractAddress(\"InstanceOperatorService\"),\n \"ERROR:POL-001:NOT_INSTANCE_OPERATOR\"\n );\n _;\n }\n\n modifier onlyRiskpoolService() {\n require(\n _msgSender() == _getContractAddress(\"RiskpoolService\"),\n \"ERROR:POL-002:NOT_RISKPOOL_SERVICE\"\n );\n _;\n }\n\n modifier onlyActivePool(uint256 riskpoolId) {\n require(\n _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, \n \"ERROR:POL-003:RISKPOOL_NOT_ACTIVE\"\n );\n _;\n }\n\n modifier onlyActivePoolForProcess(bytes32 processId) {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n require(\n _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, \n \"ERROR:POL-004:RISKPOOL_NOT_ACTIVE\"\n );\n _;\n }\n\n function _afterInitialize() internal override onlyInitializing {\n _component = ComponentController(_getContractAddress(\"Component\"));\n _policy = PolicyController(_getContractAddress(\"Policy\"));\n _bundle = BundleController(_getContractAddress(\"Bundle\"));\n }\n\n\n function registerRiskpool(\n uint256 riskpoolId, \n address wallet,\n address erc20Token,\n uint256 collateralizationLevel, \n uint256 sumOfSumInsuredCap\n )\n external override\n onlyRiskpoolService\n {\n IPool.Pool storage pool = _riskpools[riskpoolId];\n _riskpoolIds.push(riskpoolId);\n _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES;\n \n require(pool.createdAt == 0, \"ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED\");\n\n require(wallet != address(0), \"ERROR:POL-006:WALLET_ADDRESS_ZERO\");\n require(erc20Token != address(0), \"ERROR:POL-007:ERC20_ADDRESS_ZERO\");\n require(collateralizationLevel <= COLLATERALIZATION_LEVEL_CAP, \"ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH\");\n require(sumOfSumInsuredCap > 0, \"ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO\");\n\n pool.id = riskpoolId; \n pool.wallet = wallet; \n pool.erc20Token = erc20Token; \n pool.collateralizationLevel = collateralizationLevel;\n pool.sumOfSumInsuredCap = sumOfSumInsuredCap;\n\n pool.sumOfSumInsuredAtRisk = 0;\n pool.capital = 0;\n pool.lockedCapital = 0;\n pool.balance = 0;\n\n pool.createdAt = block.timestamp;\n pool.updatedAt = block.timestamp;\n\n emit LogRiskpoolRegistered(riskpoolId, wallet, erc20Token, collateralizationLevel, sumOfSumInsuredCap);\n }\n\n function setRiskpoolForProduct(uint256 productId, uint256 riskpoolId) \n external override\n onlyInstanceOperatorService\n {\n require(_component.isProduct(productId), \"ERROR:POL-010:NOT_PRODUCT\");\n require(_component.isRiskpool(riskpoolId), \"ERROR:POL-011:NOT_RISKPOOL\");\n require(_riskpoolIdForProductId[productId] == 0, \"ERROR:POL-012:RISKPOOL_ALREADY_SET\");\n \n _riskpoolIdForProductId[productId] = riskpoolId;\n }\n\n function fund(uint256 riskpoolId, uint256 amount) \n external\n onlyRiskpoolService\n onlyActivePool(riskpoolId)\n {\n IPool.Pool storage pool = _riskpools[riskpoolId];\n pool.capital += amount;\n pool.balance += amount;\n pool.updatedAt = block.timestamp;\n }\n\n function defund(uint256 riskpoolId, uint256 amount) \n external\n onlyRiskpoolService\n onlyActivePool(riskpoolId)\n {\n IPool.Pool storage pool = _riskpools[riskpoolId];\n\n if (pool.capital >= amount) { pool.capital -= amount; }\n else { pool.capital = 0; }\n\n pool.balance -= amount;\n pool.updatedAt = block.timestamp;\n }\n\n function underwrite(bytes32 processId) \n external override \n onlyPolicyFlow(\"Pool\")\n onlyActivePoolForProcess(processId)\n returns(bool success)\n {\n // check that application is in applied state\n IPolicy.Application memory application = _policy.getApplication(processId);\n require(\n application.state == IPolicy.ApplicationState.Applied,\n \"ERROR:POL-020:APPLICATION_STATE_INVALID\"\n );\n\n // determine riskpool responsible for application\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n\n // calculate required collateral amount\n uint256 sumInsuredAmount = application.sumInsuredAmount;\n uint256 collateralAmount = calculateCollateral(riskpoolId, sumInsuredAmount);\n _collateralAmount[processId] = collateralAmount;\n\n emit LogRiskpoolRequiredCollateral(processId, sumInsuredAmount, collateralAmount);\n\n // check that riskpool stays inside sum insured cap when underwriting this application \n IPool.Pool storage pool = _riskpools[riskpoolId];\n require(\n pool.sumOfSumInsuredCap >= pool.sumOfSumInsuredAtRisk + sumInsuredAmount,\n \"ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED\"\n );\n\n // ask riskpool to secure application\n IRiskpool riskpool = _getRiskpoolComponent(metadata);\n success = riskpool.collateralizePolicy(processId, collateralAmount);\n\n if (success) {\n pool.sumOfSumInsuredAtRisk += sumInsuredAmount;\n pool.lockedCapital += collateralAmount;\n pool.updatedAt = block.timestamp;\n\n emit LogRiskpoolCollateralizationSucceeded(riskpoolId, processId, sumInsuredAmount);\n } else {\n emit LogRiskpoolCollateralizationFailed(riskpoolId, processId, sumInsuredAmount);\n }\n }\n\n\n function calculateCollateral(uint256 riskpoolId, uint256 sumInsuredAmount) \n public\n view \n returns (uint256 collateralAmount) \n {\n uint256 collateralization = getRiskpool(riskpoolId).collateralizationLevel;\n\n // fully collateralized case\n if (collateralization == FULL_COLLATERALIZATION_LEVEL) {\n collateralAmount = sumInsuredAmount;\n // over or under collateralized case\n } else if (collateralization > 0) {\n collateralAmount = (collateralization * sumInsuredAmount) / FULL_COLLATERALIZATION_LEVEL;\n }\n // collateralization == 0, eg complete risk coverd by re insurance outside gif\n else {\n collateralAmount = 0;\n }\n }\n\n\n function processPremium(bytes32 processId, uint256 amount) \n external override\n onlyPolicyFlow(\"Pool\")\n onlyActivePoolForProcess(processId)\n {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n IRiskpool riskpool = _getRiskpoolComponent(metadata);\n riskpool.processPolicyPremium(processId, amount);\n\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n IPool.Pool storage pool = _riskpools[riskpoolId];\n pool.balance += amount;\n pool.updatedAt = block.timestamp;\n }\n\n\n function processPayout(bytes32 processId, uint256 amount) \n external override\n onlyPolicyFlow(\"Pool\")\n onlyActivePoolForProcess(processId)\n {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n IPool.Pool storage pool = _riskpools[riskpoolId];\n require(pool.createdAt > 0, \"ERROR:POL-026:RISKPOOL_ID_INVALID\");\n require(pool.capital >= amount, \"ERROR:POL-027:CAPITAL_TOO_LOW\");\n require(pool.lockedCapital >= amount, \"ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW\");\n require(pool.balance >= amount, \"ERROR:POL-029:BALANCE_TOO_LOW\");\n\n pool.capital -= amount;\n pool.lockedCapital -= amount;\n pool.balance -= amount;\n pool.updatedAt = block.timestamp; // solhint-disable-line\n\n IRiskpool riskpool = _getRiskpoolComponent(metadata);\n riskpool.processPolicyPayout(processId, amount);\n }\n\n\n function release(bytes32 processId) \n external override\n onlyPolicyFlow(\"Pool\")\n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n require(\n policy.state == IPolicy.PolicyState.Closed,\n \"ERROR:POL-025:POLICY_STATE_INVALID\"\n );\n\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n IRiskpool riskpool = _getRiskpoolComponent(metadata);\n riskpool.releasePolicy(processId);\n\n IPolicy.Application memory application = _policy.getApplication(processId);\n\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n IPool.Pool storage pool = _riskpools[riskpoolId];\n uint256 remainingCollateralAmount = _collateralAmount[processId] - policy.payoutAmount;\n\n pool.sumOfSumInsuredAtRisk -= application.sumInsuredAmount;\n pool.lockedCapital -= remainingCollateralAmount;\n pool.updatedAt = block.timestamp; // solhint-disable-line\n\n // free memory\n delete _collateralAmount[processId];\n emit LogRiskpoolCollateralReleased(riskpoolId, processId, remainingCollateralAmount);\n }\n\n function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles)\n external \n onlyRiskpoolService\n {\n require(maxNumberOfActiveBundles > 0, \"ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID\");\n _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = maxNumberOfActiveBundles;\n }\n\n function getMaximumNumberOfActiveBundles(uint256 riskpoolId) public view returns(uint256 maximumNumberOfActiveBundles) {\n return _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId];\n }\n \n function riskpools() external view returns(uint256 idx) { return _riskpoolIds.length; }\n\n\n function getRiskpool(uint256 riskpoolId) public view returns(IPool.Pool memory riskPool) {\n riskPool = _riskpools[riskpoolId];\n require(riskPool.createdAt > 0, \"ERROR:POL-040:RISKPOOL_NOT_REGISTERED\");\n }\n\n function getRiskPoolForProduct(uint256 productId) external view returns (uint256 riskpoolId) {\n return _riskpoolIdForProductId[productId];\n }\n\n function activeBundles(uint256 riskpoolId) external view returns(uint256 numberOfActiveBundles) {\n return EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]);\n }\n\n function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external view returns(uint256 bundleId) {\n require(\n bundleIdx < EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]),\n \"ERROR:POL-041:BUNDLE_IDX_TOO_LARGE\"\n );\n\n return EnumerableSet.at(_activeBundleIdsForRiskpoolId[riskpoolId], bundleIdx);\n }\n\n function addBundleIdToActiveSet(uint256 riskpoolId, uint256 bundleId) \n external\n onlyRiskpoolService\n {\n require(\n !EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), \n \"ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET\"\n );\n require(\n EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]) < _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId], \n \"ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED\"\n );\n\n EnumerableSet.add(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId);\n }\n\n function removeBundleIdFromActiveSet(uint256 riskpoolId, uint256 bundleId) \n external\n onlyRiskpoolService\n {\n require(\n EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), \n \"ERROR:POL-044:BUNDLE_ID_NOT_IN_SET\"\n );\n\n EnumerableSet.remove(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId);\n }\n\n function getFullCollateralizationLevel() external pure returns (uint256) {\n return FULL_COLLATERALIZATION_LEVEL;\n }\n\n function _getRiskpoolComponent(IPolicy.Metadata memory metadata) internal view returns (IRiskpool riskpool) {\n uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId];\n require(riskpoolId > 0, \"ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST\");\n\n riskpool = _getRiskpoolForId(riskpoolId);\n }\n\n function _getRiskpoolForId(uint256 riskpoolId) internal view returns (IRiskpool riskpool) {\n require(_component.isRiskpool(riskpoolId), \"ERROR:POL-046:COMPONENT_NOT_RISKPOOL\");\n \n IComponent cmp = _component.getComponent(riskpoolId);\n riskpool = IRiskpool(address(cmp));\n }\n}\n"},"contracts/modules/QueryModule.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./ComponentController.sol\";\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IOracle.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IQuery.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IInstanceService.sol\";\n\n/**\nThe smart contract implements the \"IQuery\" interface and extends the \"CoreController\" contract.\nThe contract imports several external contracts from the \"etherisc/gif-interface\" repository, including \"IComponent.sol\", \"IOracle.sol\", \"IQuery.sol\", and \"IInstanceService.sol\".\nIt also imports two local contracts, \"ComponentController.sol\" and \"CoreController.sol\".\n\nThe contract defines a private variable `_component` of type \"ComponentController\" and an array `_oracleRequests` of type \"OracleRequest[]\".\n\nThe contract includes two modifiers:\n1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the \"OracleService\" contract address stored in the CoreController.\n2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`.\n\nThe contract provides the following functions:\n- `_afterInitialize()`: Sets the `_component` variable to the address of the \"ComponentController\" contract. It is called after contract initialization and only during the initialization phase.\n- `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the \"Query\" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event.\n- `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the \"OracleService\" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event.\n- `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the \"Query\" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event.\n- `getProcessId()`: Returns the process ID associated with a given `requestId`.\n- `getOracleRequestCount()`: Returns the number of oracle requests made.\n- `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component.\n\nThe contract emits the following events:\n1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID.\n2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status.\n3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID.\n */\n\n\ncontract QueryModule is \n IQuery, \n CoreController\n{\n ComponentController private _component;\n OracleRequest[] private _oracleRequests;\n\n modifier onlyOracleService() {\n require(\n _msgSender() == _getContractAddress(\"OracleService\"),\n \"ERROR:CRC-001:NOT_ORACLE_SERVICE\"\n );\n _;\n }\n\n modifier onlyResponsibleOracle(uint256 requestId, address responder) {\n OracleRequest memory oracleRequest = _oracleRequests[requestId];\n\n require(\n oracleRequest.createdAt > 0,\n \"ERROR:QUC-002:REQUEST_ID_INVALID\"\n );\n\n uint256 oracleId = oracleRequest.responsibleOracleId;\n address oracleAddress = address(_getOracle(oracleId));\n require(\n oracleAddress == responder,\n \"ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE\"\n );\n _;\n }\n\n function _afterInitialize() internal override onlyInitializing {\n _component = ComponentController(_getContractAddress(\"Component\"));\n }\n\n /* Oracle Request */\n // request only works for active oracles\n // function call _getOracle reverts if oracle is not active\n // as a result all request call on oracles that are not active will revert\n function request(\n bytes32 processId,\n bytes calldata input,\n string calldata callbackMethodName,\n address callbackContractAddress,\n uint256 responsibleOracleId\n ) \n external\n override \n onlyPolicyFlow(\"Query\") \n returns (uint256 requestId) \n {\n uint256 componentId = _component.getComponentId(callbackContractAddress);\n require(\n _component.isProduct(componentId),\n \"ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT\"\n );\n \n requestId = _oracleRequests.length;\n _oracleRequests.push();\n\n // TODO: get token from product\n\n OracleRequest storage req = _oracleRequests[requestId];\n req.processId = processId;\n req.data = input;\n req.callbackMethodName = callbackMethodName;\n req.callbackContractAddress = callbackContractAddress;\n req.responsibleOracleId = responsibleOracleId;\n req.createdAt = block.timestamp; // solhint-disable-line\n\n _getOracle(responsibleOracleId).request(\n requestId,\n input\n );\n\n emit LogOracleRequested(processId, requestId, responsibleOracleId);\n }\n\n /* Oracle Response */\n // respond only works for active oracles\n // modifier onlyResponsibleOracle contains a function call to _getOracle \n // which reverts if oracle is not active\n // as a result, all response calls by oracles that are not active will revert\n function respond(\n uint256 requestId,\n address responder,\n bytes calldata data\n ) \n external override \n onlyOracleService \n onlyResponsibleOracle(requestId, responder) \n {\n OracleRequest storage req = _oracleRequests[requestId];\n string memory functionSignature = string(\n abi.encodePacked(\n req.callbackMethodName,\n \"(uint256,bytes32,bytes)\"\n ));\n bytes32 processId = req.processId;\n\n (bool success, ) =\n req.callbackContractAddress.call(\n abi.encodeWithSignature(\n functionSignature,\n requestId,\n processId,\n data\n )\n );\n\n require(success, \"ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL\");\n delete _oracleRequests[requestId];\n\n // TODO implement reward payment\n\n emit LogOracleResponded(processId, requestId, responder, success);\n }\n\n function cancel(uint256 requestId) \n external override \n onlyPolicyFlow(\"Query\") \n {\n OracleRequest storage oracleRequest = _oracleRequests[requestId];\n require(oracleRequest.createdAt > 0, \"ERROR:QUC-030:REQUEST_ID_INVALID\");\n delete _oracleRequests[requestId];\n emit LogOracleCanceled(requestId);\n }\n\n\n function getProcessId(uint256 requestId)\n external\n view\n returns(bytes32 processId)\n {\n OracleRequest memory oracleRequest = _oracleRequests[requestId];\n require(oracleRequest.createdAt > 0, \"ERROR:QUC-040:REQUEST_ID_INVALID\");\n return oracleRequest.processId;\n }\n\n\n function getOracleRequestCount() public view returns (uint256 _count) {\n return _oracleRequests.length;\n }\n\n function _getOracle(uint256 id) internal view returns (IOracle oracle) {\n IComponent cmp = _component.getComponent(id);\n oracle = IOracle(address(cmp));\n\n require(\n _component.getComponentType(id) == IComponent.ComponentType.Oracle, \n \"ERROR:QUC-041:COMPONENT_NOT_ORACLE\"\n );\n\n require(\n _component.getComponentState(id) == IComponent.ComponentState.Active, \n \"ERROR:QUC-042:ORACLE_NOT_ACTIVE\"\n );\n }\n}\n"},"contracts/modules/RegistryController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\n\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\n\n/**\nThe smart contract implements the `IRegistry` interface and inherits from the `CoreController` contract.\nThe contract provides functionality for registering, deregistering, and accessing contracts within different releases. It maintains mappings and sets to store contract names and addresses in different releases.\n\n- `MAX_CONTRACTS`: A constant variable set to 100, representing the maximum number of contracts allowed in a release.\n- `release`: A bytes32 variable representing the current release identifier.\n- `startBlock`: An unsigned integer storing the block number at which the contract was deployed.\n- `_contracts`: A nested mapping that stores contract addresses based on the release and contract name.\n- `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release.\n- `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release.\n\nFunctions:\n- `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs.\n- `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release.\n- `getRelease()`: Returns the current release identifier.\n- `getContract()`: Returns the address of a contract by its name in the current release.\n- `register()`: Registers a contract with a given name and address in the current release.\n- `deregister()`: Deregisters a contract from the current release.\n- `getContractInRelease()`: Returns the address of a specific contract within a given release.\n- `registerInRelease()`: Registers a contract in a specific release.\n- `deregisterInRelease()`: Deregisters a contract name from a specific release.\n- `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one.\n- `contracts()`: Returns the number of contracts in the current release.\n- `contractName()`: Returns the name of the contract at the specified index in the contractNames set.\n\nInternal functions:\n- `_getContractInRelease()`: Returns the address of a contract in a specific release.\n- `_registerInRelease()`: Registers a contract in a release.\n- `_deregisterInRelease()`: Deregisters a contract in a specific release.\n\nThe contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered.\n\nOverall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts.\n */\n\n\ncontract RegistryController is\n IRegistry,\n CoreController\n{\n using EnumerableSet for EnumerableSet.Bytes32Set;\n\n /**\n * @dev Save number of items to iterate through\n * Currently we have < 20 contracts.\n */\n uint256 public constant MAX_CONTRACTS = 100;\n\n /**\n * @dev Current release\n * We use semantic versioning.\n */\n bytes32 public release;\n \n uint256 public startBlock;\n\n mapping(bytes32 /* release */ => mapping(bytes32 /* contract name */ => address /* contract address */)) public _contracts;\n mapping(bytes32 /* release */ => uint256 /* number of contracts in release */) public _contractsInRelease;\n mapping(bytes32 /* release */ => EnumerableSet.Bytes32Set /* contract names */) private _contractNames;\n\n function initializeRegistry(bytes32 _initialRelease) public initializer {\n // _setupRegistry(address(this));\n _registry = this;\n\n // this is a temporary assignment and must only be used\n // during the intial setup of a gif instance\n // at execution time _msgSender is the address of the \n // registry proxy.\n release = _initialRelease;\n _contracts[release][\"InstanceOperatorService\"] = _msgSender();\n EnumerableSet.add(_contractNames[release], \"InstanceOperatorService\");\n _contractsInRelease[release] = 1;\n\n\n // register the deployment block for reading logs\n startBlock = block.number;\n }\n\n function ensureSender(address sender, bytes32 _contractName) \n external view override \n returns(bool _senderMatches) \n {\n _senderMatches = (sender == _getContractInRelease(release, _contractName));\n }\n\n /**\n * @dev get current release\n */\n function getRelease() \n external override view \n returns (bytes32 _release) \n {\n _release = release;\n }\n\n /**\n * @dev Get contract's address in the current release\n */\n function getContract(bytes32 _contractName)\n public override view\n returns (address _addr)\n {\n _addr = _getContractInRelease(release, _contractName);\n }\n\n /**\n * @dev Register contract in the current release\n */\n function register(bytes32 _contractName, address _contractAddress)\n external override\n onlyInstanceOperator\n {\n _registerInRelease(release, false, _contractName, _contractAddress);\n }\n\n /**\n * @dev Deregister contract in the current release\n */\n function deregister(bytes32 _contractName) \n external override \n onlyInstanceOperator \n {\n _deregisterInRelease(release, _contractName);\n }\n\n /**\n * @dev Get contract's address in certain release\n */\n function getContractInRelease(bytes32 _release, bytes32 _contractName)\n external override view\n returns (address _addr)\n {\n _addr = _getContractInRelease(_release, _contractName);\n }\n\n /**\n * @dev Register contract in certain release\n */\n function registerInRelease(bytes32 _release, bytes32 _contractName, address _contractAddress) \n external override \n onlyInstanceOperator\n {\n _registerInRelease(_release, false, _contractName, _contractAddress);\n }\n\n function deregisterInRelease(bytes32 _release, bytes32 _contractName)\n external override\n onlyInstanceOperator\n {\n _deregisterInRelease(_release, _contractName);\n }\n\n /**\n * @dev Create new release, copy contracts from previous release\n */\n function prepareRelease(bytes32 _newRelease) \n external override \n onlyInstanceOperator \n {\n uint256 countContracts = _contractsInRelease[release];\n\n require(countContracts > 0, \"ERROR:REC-001:EMPTY_RELEASE\");\n require(\n _contractsInRelease[_newRelease] == 0,\n \"ERROR:REC-002:NEW_RELEASE_NOT_EMPTY\"\n );\n\n // TODO think about how to avoid this loop\n for (uint256 i = 0; i < countContracts; i += 1) {\n bytes32 name = EnumerableSet.at(_contractNames[release], i);\n _registerInRelease(\n _newRelease,\n true,\n name,\n _contracts[release][name]\n );\n }\n\n release = _newRelease;\n\n emit LogReleasePrepared(release);\n }\n\n function contracts() external override view returns (uint256 _numberOfContracts) {\n _numberOfContracts = EnumerableSet.length(_contractNames[release]);\n }\n\n function contractName(uint256 idx) external override view returns (bytes32 _contractName) {\n _contractName = EnumerableSet.at(_contractNames[release], idx);\n }\n\n /**\n * @dev Get contract's address in certain release\n */\n function _getContractInRelease(bytes32 _release, bytes32 _contractName)\n internal view\n returns (address _addr)\n {\n _addr = _contracts[_release][_contractName];\n }\n\n /**\n * @dev Register contract in certain release\n */\n function _registerInRelease(\n bytes32 _release,\n bool isNewRelease,\n bytes32 _contractName,\n address _contractAddress\n ) \n internal\n {\n bool isNew = false;\n\n require(\n EnumerableSet.length(_contractNames[_release]) < MAX_CONTRACTS,\n \"ERROR:REC-010:MAX_CONTRACTS_LIMIT\"\n );\n\n // during `prepareRelease` the _release is not yet known, so check should not fail in this case \n require(_contractsInRelease[_release] > 0 || isNewRelease, \"ERROR:REC-011:RELEASE_UNKNOWN\");\n require(_contractName != 0x00, \"ERROR:REC-012:CONTRACT_NAME_EMPTY\");\n require(\n (! EnumerableSet.contains(_contractNames[_release], _contractName) )\n // the contract 'InstanceOperatorService' is initially registered with the owner address (see method initializeRegistry()); \n // due to this this special check is required\n || (_contractName == \"InstanceOperatorService\" && _contracts[_release][_contractName] == _msgSender()), \n \"ERROR:REC-013:CONTRACT_NAME_EXISTS\");\n require(_contractAddress != address(0), \"ERROR:REC-014:CONTRACT_ADDRESS_ZERO\");\n\n if (_contracts[_release][_contractName] == address(0)) {\n EnumerableSet.add(_contractNames[_release], _contractName);\n _contractsInRelease[_release]++;\n isNew = true;\n }\n\n _contracts[_release][_contractName] = _contractAddress;\n require(\n _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]),\n \"ERROR:REC-015:CONTRACT_NUMBER_MISMATCH\"\n );\n\n emit LogContractRegistered(\n _release,\n _contractName,\n _contractAddress,\n isNew\n );\n }\n\n\n /**\n * @dev Deregister contract in certain release\n */\n function _deregisterInRelease(bytes32 _release, bytes32 _contractName)\n internal\n onlyInstanceOperator\n {\n require(EnumerableSet.contains(_contractNames[_release], _contractName), \"ERROR:REC-020:CONTRACT_UNKNOWN\");\n\n EnumerableSet.remove(_contractNames[_release], _contractName);\n\n _contractsInRelease[_release] -= 1;\n delete _contracts[_release][_contractName];\n \n require(\n _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]),\n \"ERROR:REC-021:CONTRACT_NUMBER_MISMATCH\");\n emit LogContractDeregistered(_release, _contractName); \n }\n}\n"},"contracts/modules/TreasuryModule.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./ComponentController.sol\";\nimport \"./PolicyController.sol\";\nimport \"./BundleController.sol\";\nimport \"./PoolController.sol\";\nimport \"../shared/CoreController.sol\";\nimport \"../shared/TransferHelper.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/ITreasury.sol\";\n\nimport \"@openzeppelin/contracts/security/Pausable.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\n\n/**\nThe smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts.\nThe contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the \"etherisc/gif-interface\" and \"openzeppelin/contracts\" libraries.\n\nThe contract defines several state variables, including:\n- FRACTION_FULL_UNIT: a constant representing the full unit value (10^18).\n- FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%).\n- event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation.\n- event LogTransferHelperInputValidation2Failed: an event that logs a failed input validation.\n- event LogTransferHelperCallFailed: an event that logs a failed external call.\n- _instanceWalletAddress: a private variable representing the address of the instance wallet.\n- _riskpoolWallet: a mapping of riskpool IDs to wallet addresses.\n- _fees: a mapping of component IDs to FeeSpecification structs.\n- _componentToken: a mapping of product IDs/riskpool IDs to ERC20 token addresses.\n- _bundle: an instance of the BundleController contract.\n- _component: an instance of the ComponentController contract.\n- _policy: an instance of the PolicyController contract.\n- _pool: an instance of the PoolController contract.\n\nThe contract includes several modifiers that enforce certain conditions on function execution, such as the instanceWalletDefined modifier, which requires the instance wallet address to be defined;\nthe riskpoolWalletDefinedForProcess modifier, which requires the riskpool wallet address to be defined for a given process ID;\nthe riskpoolWalletDefinedForBundle modifier, which requires the riskpool wallet address to be defined for a given bundle ID;\nthe whenNotSuspended modifier, which requires the contract to not be paused; and the onlyRiskpoolService modifier, which restricts access to the RiskpoolService contract.\n\nThe contract contains various functions for managing the treasury, such as setting the product token address, setting the instance wallet address, setting the riskpool wallet address, creating fee specifications, and setting premium and capital fees for components.\nThere are also functions for suspending and resuming the treasury contract.\n\nThe contract includes a function to calculate the fee amount and net amount for a given component ID and amount.\nIt also includes functions to process premium payments for policies, either for the remaining premium amount or for a specific amount.\n\nOverall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system.\n */\n\ncontract TreasuryModule is \n ITreasury,\n CoreController,\n Pausable\n{\n uint256 public constant FRACTION_FULL_UNIT = 10**18;\n uint256 public constant FRACTIONAL_FEE_MAX = FRACTION_FULL_UNIT / 4; // max frctional fee is 25%\n\n event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to);\n event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance);\n event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData);\n\n address private _instanceWalletAddress;\n mapping(uint256 => address) private _riskpoolWallet; // riskpoolId => walletAddress\n mapping(uint256 => FeeSpecification) private _fees; // componentId => fee specification\n mapping(uint256 => IERC20) private _componentToken; // productId/riskpoolId => erc20Address\n\n BundleController private _bundle;\n ComponentController private _component;\n PolicyController private _policy;\n PoolController private _pool;\n\n modifier instanceWalletDefined() {\n require(\n _instanceWalletAddress != address(0),\n \"ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED\");\n _;\n }\n\n modifier riskpoolWalletDefinedForProcess(bytes32 processId) {\n (uint256 riskpoolId, address walletAddress) = _getRiskpoolWallet(processId);\n require(\n walletAddress != address(0),\n \"ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED\");\n _;\n }\n\n modifier riskpoolWalletDefinedForBundle(uint256 bundleId) {\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(\n getRiskpoolWallet(bundle.riskpoolId) != address(0),\n \"ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED\");\n _;\n }\n\n // surrogate modifier for whenNotPaused to create treasury specific error message\n modifier whenNotSuspended() {\n require(!paused(), \"ERROR:TRS-004:TREASURY_SUSPENDED\");\n _;\n }\n\n modifier onlyRiskpoolService() {\n require(\n _msgSender() == _getContractAddress(\"RiskpoolService\"),\n \"ERROR:TRS-005:NOT_RISKPOOL_SERVICE\"\n );\n _;\n }\n\n function _afterInitialize() internal override onlyInitializing {\n _bundle = BundleController(_getContractAddress(\"Bundle\"));\n _component = ComponentController(_getContractAddress(\"Component\"));\n _policy = PolicyController(_getContractAddress(\"Policy\"));\n _pool = PoolController(_getContractAddress(\"Pool\"));\n }\n\n function suspend() \n external \n onlyInstanceOperator\n {\n _pause();\n emit LogTreasurySuspended();\n }\n\n function resume() \n external \n onlyInstanceOperator\n {\n _unpause();\n emit LogTreasuryResumed();\n }\n\n function setProductToken(uint256 productId, address erc20Address)\n external override\n whenNotSuspended\n onlyInstanceOperator\n {\n require(erc20Address != address(0), \"ERROR:TRS-010:TOKEN_ADDRESS_ZERO\");\n\n require(_component.isProduct(productId), \"ERROR:TRS-011:NOT_PRODUCT\");\n require(address(_componentToken[productId]) == address(0), \"ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET\"); \n \n IComponent component = _component.getComponent(productId);\n require(address(IProduct(address(component)).getToken()) == erc20Address, \"ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING\");\n\n uint256 riskpoolId = _pool.getRiskPoolForProduct(productId);\n\n // require if riskpool token is already set and product token does match riskpool token\n require(address(_componentToken[riskpoolId]) == address(0)\n || address(_componentToken[riskpoolId]) == erc20Address, \n \"ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING\");\n \n _componentToken[productId] = IERC20(erc20Address);\n _componentToken[riskpoolId] = IERC20(erc20Address);\n\n emit LogTreasuryProductTokenSet(productId, riskpoolId, erc20Address);\n }\n\n function setInstanceWallet(address instanceWalletAddress) \n external override\n whenNotSuspended\n onlyInstanceOperator\n {\n require(instanceWalletAddress != address(0), \"ERROR:TRS-015:WALLET_ADDRESS_ZERO\");\n _instanceWalletAddress = instanceWalletAddress;\n\n emit LogTreasuryInstanceWalletSet (instanceWalletAddress);\n }\n\n function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) \n external override\n whenNotSuspended\n onlyInstanceOperator\n {\n IComponent component = _component.getComponent(riskpoolId);\n require(_component.isRiskpool(riskpoolId), \"ERROR:TRS-016:NOT_RISKPOOL\");\n require(riskpoolWalletAddress != address(0), \"ERROR:TRS-017:WALLET_ADDRESS_ZERO\");\n _riskpoolWallet[riskpoolId] = riskpoolWalletAddress;\n\n emit LogTreasuryRiskpoolWalletSet (riskpoolId, riskpoolWalletAddress);\n }\n\n function createFeeSpecification(\n uint256 componentId,\n uint256 fixedFee,\n uint256 fractionalFee,\n bytes calldata feeCalculationData\n )\n external override\n view \n returns(FeeSpecification memory)\n {\n require(_component.isProduct(componentId) || _component.isRiskpool(componentId), \"ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL\");\n require(fractionalFee <= FRACTIONAL_FEE_MAX, \"ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG\");\n\n return FeeSpecification(\n componentId,\n fixedFee,\n fractionalFee,\n feeCalculationData,\n block.timestamp, // solhint-disable-line\n block.timestamp // solhint-disable-line\n ); \n }\n\n function setPremiumFees(FeeSpecification calldata feeSpec) \n external override\n whenNotSuspended\n onlyInstanceOperator\n {\n require(_component.isProduct(feeSpec.componentId), \"ERROR:TRS-022:NOT_PRODUCT\");\n \n // record original creation timestamp \n uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt;\n _fees[feeSpec.componentId] = feeSpec;\n\n // set original creation timestamp if fee spec already existed\n if (originalCreatedAt > 0) {\n _fees[feeSpec.componentId].createdAt = originalCreatedAt;\n }\n\n emit LogTreasuryPremiumFeesSet (\n feeSpec.componentId,\n feeSpec.fixedFee, \n feeSpec.fractionalFee);\n }\n\n\n function setCapitalFees(FeeSpecification calldata feeSpec) \n external override\n whenNotSuspended\n onlyInstanceOperator\n {\n require(_component.isRiskpool(feeSpec.componentId), \"ERROR:TRS-023:NOT_RISKPOOL\");\n\n // record original creation timestamp \n uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt;\n _fees[feeSpec.componentId] = feeSpec;\n\n // set original creation timestamp if fee spec already existed\n if (originalCreatedAt > 0) {\n _fees[feeSpec.componentId].createdAt = originalCreatedAt;\n }\n\n emit LogTreasuryCapitalFeesSet (\n feeSpec.componentId,\n feeSpec.fixedFee, \n feeSpec.fractionalFee);\n }\n\n\n function calculateFee(uint256 componentId, uint256 amount)\n public \n view\n returns(uint256 feeAmount, uint256 netAmount)\n {\n FeeSpecification memory feeSpec = getFeeSpecification(componentId);\n require(feeSpec.createdAt > 0, \"ERROR:TRS-024:FEE_SPEC_UNDEFINED\");\n feeAmount = _calculateFee(feeSpec, amount);\n netAmount = amount - feeAmount;\n }\n \n\n /*\n * Process the remaining premium by calculating the remaining amount, the fees for that amount and \n * then transfering the fees to the instance wallet and the net premium remaining to the riskpool. \n * This will revert if no fee structure is defined. \n */\n function processPremium(bytes32 processId) \n external override \n whenNotSuspended\n onlyPolicyFlow(\"Treasury\")\n returns(\n bool success, \n uint256 feeAmount, \n uint256 netPremiumAmount\n ) \n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n\n if (policy.premiumPaidAmount < policy.premiumExpectedAmount) {\n (success, feeAmount, netPremiumAmount) \n = processPremium(processId, policy.premiumExpectedAmount - policy.premiumPaidAmount);\n }\n }\n\n /*\n * Process the premium by calculating the fees for the amount and \n * then transfering the fees to the instance wallet and the net premium to the riskpool. \n * This will revert if no fee structure is defined. \n */\n function processPremium(bytes32 processId, uint256 amount) \n public override \n whenNotSuspended\n instanceWalletDefined\n riskpoolWalletDefinedForProcess(processId)\n onlyPolicyFlow(\"Treasury\")\n returns(\n bool success, \n uint256 feeAmount, \n uint256 netAmount\n ) \n {\n IPolicy.Policy memory policy = _policy.getPolicy(processId);\n require(\n policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, \n \"ERROR:TRS-030:AMOUNT_TOO_BIG\"\n );\n\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n (feeAmount, netAmount) \n = calculateFee(metadata.productId, amount);\n\n // check if allowance covers requested amount\n IERC20 token = getComponentToken(metadata.productId);\n if (token.allowance(metadata.owner, address(this)) < amount) {\n success = false;\n return (success, feeAmount, netAmount);\n }\n\n // collect premium fees\n success = TransferHelper.unifiedTransferFrom(token, metadata.owner, _instanceWalletAddress, feeAmount);\n emit LogTreasuryFeesTransferred(metadata.owner, _instanceWalletAddress, feeAmount);\n require(success, \"ERROR:TRS-031:FEE_TRANSFER_FAILED\");\n\n // transfer premium net amount to riskpool for product\n // actual transfer of net premium to riskpool\n (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId);\n success = TransferHelper.unifiedTransferFrom(token, metadata.owner, riskpoolWalletAddress, netAmount);\n\n emit LogTreasuryPremiumTransferred(metadata.owner, riskpoolWalletAddress, netAmount);\n require(success, \"ERROR:TRS-032:PREMIUM_TRANSFER_FAILED\");\n\n emit LogTreasuryPremiumProcessed(processId, amount);\n }\n\n\n function processPayout(bytes32 processId, uint256 payoutId) \n external override\n whenNotSuspended\n instanceWalletDefined\n riskpoolWalletDefinedForProcess(processId)\n onlyPolicyFlow(\"Treasury\")\n returns(\n uint256 feeAmount,\n uint256 netPayoutAmount\n )\n {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n IERC20 token = getComponentToken(metadata.productId);\n (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId);\n\n IPolicy.Payout memory payout = _policy.getPayout(processId, payoutId);\n require(\n token.balanceOf(riskpoolWalletAddress) >= payout.amount, \n \"ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL\"\n );\n require(\n token.allowance(riskpoolWalletAddress, address(this)) >= payout.amount, \n \"ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL\"\n );\n\n // actual payout to policy holder\n bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWalletAddress, metadata.owner, payout.amount);\n feeAmount = 0;\n netPayoutAmount = payout.amount;\n\n emit LogTreasuryPayoutTransferred(riskpoolWalletAddress, metadata.owner, payout.amount);\n require(success, \"ERROR:TRS-044:PAYOUT_TRANSFER_FAILED\");\n\n emit LogTreasuryPayoutProcessed(riskpoolId, metadata.owner, payout.amount);\n }\n\n function processCapital(uint256 bundleId, uint256 capitalAmount) \n external override \n whenNotSuspended\n instanceWalletDefined\n riskpoolWalletDefinedForBundle(bundleId)\n onlyRiskpoolService\n returns(\n uint256 feeAmount,\n uint256 netCapitalAmount\n )\n {\n // obtain relevant fee specification\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n address bundleOwner = _bundle.getOwner(bundleId);\n\n FeeSpecification memory feeSpec = getFeeSpecification(bundle.riskpoolId);\n require(feeSpec.createdAt > 0, \"ERROR:TRS-050:FEE_SPEC_UNDEFINED\");\n\n // obtain relevant token for product/riskpool pair\n IERC20 token = _componentToken[bundle.riskpoolId];\n\n // calculate fees and net capital\n feeAmount = _calculateFee(feeSpec, capitalAmount);\n netCapitalAmount = capitalAmount - feeAmount;\n\n // check balance and allowance before starting any transfers\n require(token.balanceOf(bundleOwner) >= capitalAmount, \"ERROR:TRS-052:BALANCE_TOO_SMALL\");\n require(token.allowance(bundleOwner, address(this)) >= capitalAmount, \"ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL\");\n\n bool success = TransferHelper.unifiedTransferFrom(token, bundleOwner, _instanceWalletAddress, feeAmount);\n\n emit LogTreasuryFeesTransferred(bundleOwner, _instanceWalletAddress, feeAmount);\n require(success, \"ERROR:TRS-054:FEE_TRANSFER_FAILED\");\n\n // transfer net capital\n address riskpoolWallet = getRiskpoolWallet(bundle.riskpoolId);\n success = TransferHelper.unifiedTransferFrom(token, bundleOwner, riskpoolWallet, netCapitalAmount);\n\n emit LogTreasuryCapitalTransferred(bundleOwner, riskpoolWallet, netCapitalAmount);\n require(success, \"ERROR:TRS-055:CAPITAL_TRANSFER_FAILED\");\n\n emit LogTreasuryCapitalProcessed(bundle.riskpoolId, bundleId, capitalAmount);\n }\n\n function processWithdrawal(uint256 bundleId, uint256 amount) \n external override\n whenNotSuspended\n instanceWalletDefined\n riskpoolWalletDefinedForBundle(bundleId)\n onlyRiskpoolService\n returns(\n uint256 feeAmount,\n uint256 netAmount\n )\n {\n // obtain relevant bundle info\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(\n bundle.capital >= bundle.lockedCapital + amount\n || (bundle.lockedCapital == 0 && bundle.balance >= amount),\n \"ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL\"\n );\n\n // obtain relevant token for product/riskpool pair\n address riskpoolWallet = getRiskpoolWallet(bundle.riskpoolId);\n address bundleOwner = _bundle.getOwner(bundleId);\n IERC20 token = _componentToken[bundle.riskpoolId];\n\n require(\n token.balanceOf(riskpoolWallet) >= amount, \n \"ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL\"\n );\n require(\n token.allowance(riskpoolWallet, address(this)) >= amount, \n \"ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL\"\n );\n\n // TODO consider to introduce withdrawal fees\n // ideally symmetrical reusing capital fee spec for riskpool\n feeAmount = 0;\n netAmount = amount;\n bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWallet, bundleOwner, netAmount);\n\n emit LogTreasuryWithdrawalTransferred(riskpoolWallet, bundleOwner, netAmount);\n require(success, \"ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED\");\n\n emit LogTreasuryWithdrawalProcessed(bundle.riskpoolId, bundleId, netAmount);\n }\n\n\n function getComponentToken(uint256 componentId) \n public override\n view\n returns(IERC20 token) \n {\n require(_component.isProduct(componentId) || _component.isRiskpool(componentId), \"ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL\");\n return _componentToken[componentId];\n }\n\n function getFeeSpecification(uint256 componentId) public override view returns(FeeSpecification memory) {\n return _fees[componentId];\n }\n\n function getFractionFullUnit() public override pure returns(uint256) { \n return FRACTION_FULL_UNIT; \n }\n\n function getInstanceWallet() public override view returns(address) { \n return _instanceWalletAddress; \n }\n\n function getRiskpoolWallet(uint256 riskpoolId) public override view returns(address) {\n return _riskpoolWallet[riskpoolId];\n }\n\n\n function _calculatePremiumFee(\n FeeSpecification memory feeSpec, \n bytes32 processId\n )\n internal\n view\n returns (\n IPolicy.Application memory application, \n uint256 feeAmount\n )\n {\n application = _policy.getApplication(processId);\n feeAmount = _calculateFee(feeSpec, application.premiumAmount);\n } \n\n\n function _calculateFee(\n FeeSpecification memory feeSpec, \n uint256 amount\n )\n internal\n pure\n returns (uint256 feeAmount)\n {\n if (feeSpec.feeCalculationData.length > 0) {\n revert(\"ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED\");\n }\n\n // start with fixed fee\n feeAmount = feeSpec.fixedFee;\n\n // add fractional fee on top\n if (feeSpec.fractionalFee > 0) {\n feeAmount += (feeSpec.fractionalFee * amount) / FRACTION_FULL_UNIT;\n }\n\n // require that fee is smaller than amount\n require(feeAmount < amount, \"ERROR:TRS-091:FEE_TOO_BIG\");\n } \n\n function _getRiskpoolWallet(bytes32 processId)\n internal\n view\n returns(uint256 riskpoolId, address riskpoolWalletAddress)\n {\n IPolicy.Metadata memory metadata = _policy.getMetadata(processId);\n riskpoolId = _pool.getRiskPoolForProduct(metadata.productId);\n require(riskpoolId > 0, \"ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL\");\n riskpoolWalletAddress = _riskpoolWallet[riskpoolId];\n }\n}\n"},"contracts/services/ComponentOwnerService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../modules/ComponentController.sol\";\r\n// TODO ComponentOwnerService should not know of the PoolController - if we have a better idea how to build this, it should be changed. \r\nimport \"../modules/PoolController.sol\";\r\nimport \"../shared/CoreController.sol\";\r\n\r\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\r\nimport \"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\";\r\n\r\ncontract ComponentOwnerService is \r\n IComponentOwnerService,\r\n CoreController\r\n{\r\n ComponentController private _component;\r\n\r\n modifier onlyOwnerWithRoleFromComponent(IComponent component) {\r\n address owner = component.getOwner();\r\n bytes32 requiredRole = _component.getRequiredRole(component.getType());\r\n require(_msgSender() == owner, \"ERROR:COS-001:NOT_OWNER\");\r\n require(_access.hasRole(requiredRole, owner), \"ERROR:COS-002:REQUIRED_ROLE_MISSING\");\r\n _;\r\n }\r\n\r\n modifier onlyOwnerWithRole(uint256 id) {\r\n IComponent component = _component.getComponent(id);\r\n require(address(component) != address(0), \"ERROR:COS-003:COMPONENT_ID_INVALID\");\r\n\r\n address owner = component.getOwner();\r\n bytes32 requiredRole = _component.getRequiredRole(_component.getComponentType(id));\r\n\r\n require(_msgSender() == owner, \"ERROR:COS-004:NOT_OWNER\");\r\n require(_access.hasRole(requiredRole, owner), \"ERROR:COS-005:REQUIRED_ROLE_MISSING\");\r\n _;\r\n }\r\n\r\n function _afterInitialize() internal override onlyInitializing {\r\n _component = ComponentController(_getContractAddress(\"Component\"));\r\n }\r\n\r\n function propose(IComponent component) \r\n external override\r\n onlyOwnerWithRoleFromComponent(component) \r\n {\r\n _component.propose(component);\r\n }\r\n\r\n function stake(uint256 id) \r\n external override \r\n onlyOwnerWithRole(id) \r\n {\r\n revert(\"ERROR:COS-006:IMPLEMENATION_MISSING\");\r\n }\r\n\r\n function withdraw(uint256 id) \r\n external override\r\n onlyOwnerWithRole(id) \r\n {\r\n revert(\"ERROR:COS-007:IMPLEMENATION_MISSING\");\r\n }\r\n \r\n\r\n function pause(uint256 id) \r\n external override\r\n onlyOwnerWithRole(id) \r\n {\r\n _component.pause(id);\r\n }\r\n\r\n function unpause(uint256 id) \r\n external override \r\n onlyOwnerWithRole(id) \r\n {\r\n _component.unpause(id);\r\n }\r\n\r\n function archive(uint256 id) \r\n external override \r\n onlyOwnerWithRole(id) \r\n {\r\n _component.archiveFromComponentOwner(id);\r\n }\r\n}"},"contracts/services/InstanceOperatorService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../modules/AccessController.sol\";\nimport \"../modules/BundleController.sol\";\nimport \"../modules/ComponentController.sol\";\nimport \"../modules/PoolController.sol\";\nimport \"../modules/TreasuryModule.sol\";\nimport \"../shared/CoreController.sol\";\nimport \"../test/TestProduct.sol\";\nimport \"../tokens/BundleToken.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IQuery.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/ITreasury.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\";\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract InstanceOperatorService is \n IInstanceOperatorService, \n CoreController, \n Ownable \n{\n ComponentController private _component;\n PoolController private _pool;\n TreasuryModule private _treasury;\n\n modifier onlyInstanceOperatorAddress() {\n require(owner() == _msgSender(), \"ERROR:IOS-001:NOT_INSTANCE_OPERATOR\");\n _;\n }\n\n function _afterInitialize() internal override onlyInitializing {\n _component = ComponentController(_getContractAddress(\"Component\"));\n _pool = PoolController(_getContractAddress(\"Pool\"));\n _treasury = TreasuryModule(_getContractAddress(\"Treasury\"));\n\n _transferOwnership(_msgSender());\n _linkBundleModuleToBundleToken();\n _setDefaultAdminRole();\n }\n\n function _setDefaultAdminRole() private {\n AccessController access = AccessController(_getContractAddress(\"Access\"));\n access.setDefaultAdminRole(address(this));\n }\n\n function _linkBundleModuleToBundleToken() private {\n BundleToken token = BundleToken(_getContractAddress(\"BundleToken\"));\n address bundleAddress = _getContractAddress(\"Bundle\");\n token.setBundleModule(bundleAddress);\n }\n\n /* registry */\n function prepareRelease(bytes32 _newRelease) \n external override \n onlyInstanceOperatorAddress \n {\n _registry.prepareRelease(_newRelease);\n }\n\n function register(bytes32 _contractName, address _contractAddress)\n external override\n onlyInstanceOperatorAddress\n {\n _registry.register(_contractName, _contractAddress);\n }\n\n function deregister(bytes32 _contractName) \n external override \n onlyInstanceOperatorAddress \n {\n _registry.deregister(_contractName);\n }\n\n function registerInRelease(\n bytes32 _release,\n bytes32 _contractName,\n address _contractAddress\n ) \n external override \n onlyInstanceOperatorAddress \n {\n _registry.registerInRelease(_release, _contractName, _contractAddress);\n }\n\n function deregisterInRelease(bytes32 _release, bytes32 _contractName)\n external override\n onlyInstanceOperatorAddress\n {\n _registry.deregisterInRelease(_release, _contractName);\n }\n \n /* access */\n function createRole(bytes32 _role) \n external override\n onlyInstanceOperatorAddress \n {\n _access.addRole(_role);\n }\n\n function invalidateRole(bytes32 _role) \n external override\n onlyInstanceOperatorAddress \n {\n _access.invalidateRole(_role);\n }\n\n function grantRole(bytes32 role, address principal)\n external override\n onlyInstanceOperatorAddress\n {\n _access.grantRole(role, principal);\n }\n\n function revokeRole(bytes32 role, address principal) \n external override \n onlyInstanceOperatorAddress \n {\n _access.revokeRole(role, principal);\n }\n\n /* component */\n function approve(uint256 id)\n external override \n onlyInstanceOperatorAddress \n {\n _component.approve(id);\n\n if (_component.isProduct(id)) {\n IComponent component = _component.getComponent(id);\n IProduct product = IProduct(address(component));\n\n _pool.setRiskpoolForProduct(\n id,\n product.getRiskpoolId());\n }\n }\n\n function decline(uint256 id) \n external override \n onlyInstanceOperatorAddress \n {\n _component.decline(id);\n }\n\n function suspend(uint256 id) \n external override \n onlyInstanceOperatorAddress \n {\n _component.suspend(id);\n }\n\n function resume(uint256 id) \n external override \n onlyInstanceOperatorAddress \n {\n _component.resume(id);\n }\n\n function archive(uint256 id) \n external override \n onlyInstanceOperatorAddress \n {\n _component.archiveFromInstanceOperator(id);\n }\n\n // service staking\n // TODO implement setDefaultStaking staking\n function setDefaultStaking(\n uint16 componentType, \n bytes calldata data\n )\n external override\n onlyInstanceOperatorAddress\n {\n revert(\"ERROR:IOS-010:IMPLEMENATION_MISSING\");\n }\n\n // TODO implement adjustStakingRequirements staking\n function adjustStakingRequirements(\n uint256 id, \n bytes calldata data\n )\n external override\n onlyInstanceOperatorAddress\n {\n revert(\"ERROR:IOS-011:IMPLEMENATION_MISSING\");\n }\n\n /* treasury */\n function suspendTreasury() \n external override\n onlyInstanceOperatorAddress\n { \n _treasury.suspend();\n }\n\n function resumeTreasury() \n external override\n onlyInstanceOperatorAddress\n { \n _treasury.resume();\n }\n\n function setInstanceWallet(address walletAddress) \n external override\n onlyInstanceOperatorAddress\n {\n _treasury.setInstanceWallet(walletAddress);\n }\n\n function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) \n external override\n onlyInstanceOperatorAddress\n {\n _treasury.setRiskpoolWallet(riskpoolId, riskpoolWalletAddress);\n }\n\n function setProductToken(uint256 productId, address erc20Address) \n external override\n onlyInstanceOperatorAddress\n {\n _treasury.setProductToken(productId, erc20Address);\n }\n\n function createFeeSpecification(\n uint256 componentId,\n uint256 fixedFee,\n uint256 fractionalFee,\n bytes calldata feeCalculationData\n )\n external override\n view \n returns(ITreasury.FeeSpecification memory)\n {\n return _treasury.createFeeSpecification(\n componentId,\n fixedFee,\n fractionalFee,\n feeCalculationData\n );\n }\n \n function setPremiumFees(ITreasury.FeeSpecification calldata feeSpec) \n external override\n onlyInstanceOperatorAddress\n {\n _treasury.setPremiumFees(feeSpec);\n }\n\n function setCapitalFees(ITreasury.FeeSpecification calldata feeSpec) \n external override\n onlyInstanceOperatorAddress\n {\n _treasury.setCapitalFees(feeSpec);\n }\n}\n"},"contracts/services/InstanceService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../modules/ComponentController.sol\";\nimport \"../modules/BundleController.sol\";\nimport \"../modules/PolicyController.sol\";\nimport \"../modules/PoolController.sol\";\nimport \"../modules/TreasuryModule.sol\";\nimport \"../shared/CoreController.sol\";\nimport \"../services/InstanceOperatorService.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IOracle.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\nimport \"@etherisc/gif-interface/contracts/components/IRiskpool.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IInstanceService.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IOracleService.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IProductService.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\";\nimport \"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\";\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\ncontract InstanceService is \n IInstanceService, \n CoreController\n{\n bytes32 public constant BUNDLE_NAME = \"Bundle\";\n bytes32 public constant COMPONENT_NAME = \"Component\";\n bytes32 public constant POLICY_NAME = \"Policy\";\n bytes32 public constant POOL_NAME = \"Pool\";\n bytes32 public constant TREASURY_NAME = \"Treasury\";\n\n bytes32 public constant COMPONENT_OWNER_SERVICE_NAME = \"ComponentOwnerService\";\n bytes32 public constant INSTANCE_OPERATOR_SERVICE_NAME = \"InstanceOperatorService\";\n bytes32 public constant ORACLE_SERVICE_NAME = \"OracleService\";\n bytes32 public constant PRODUCT_SERVICE_NAME = \"ProductService\";\n bytes32 public constant RISKPOOL_SERVICE_NAME = \"RiskpoolService\";\n\n BundleController _bundle;\n ComponentController _component;\n PolicyController _policy;\n PoolController _pool;\n TreasuryModule private _treasury;\n\n mapping(uint256 /* chain id */ => string /* chain name */) private _chainName;\n\n function _afterInitialize() internal override onlyInitializing {\n _bundle = BundleController(_getContractAddress(BUNDLE_NAME));\n _component = ComponentController(_getContractAddress(COMPONENT_NAME));\n _policy = PolicyController(_getContractAddress(POLICY_NAME));\n _pool = PoolController(_getContractAddress(POOL_NAME));\n _treasury = TreasuryModule(_getContractAddress(TREASURY_NAME));\n\n _setChainNames();\n }\n\n function _setChainNames() internal {\n _chainName[1] = \"Ethereum Mainnet/ETH\"; \n _chainName[5] = \"Goerli/ETH\"; \n _chainName[1337] = \"Ganache\"; \n _chainName[100] = \"Gnosis/xDai\"; \n _chainName[77] = \"Sokol/SPOA\"; \n _chainName[137] = \"Polygon Mainnet/MATIC\"; \n _chainName[8001] = \"Mumbai/MATIC\"; \n _chainName[43114] = \"Avalanche C-Chain/AVAX\"; \n _chainName[43113] = \"Avalanche Fuji Testnet/AVAX\"; \n }\n\n /* instance service */\n function getChainId() public override view returns(uint256 chainId) {\n chainId = block.chainid;\n }\n\n function getChainName() public override view returns(string memory chainName) {\n chainName = _chainName[block.chainid];\n }\n\n function getInstanceId() public override view returns(bytes32 instanceId) {\n instanceId = keccak256(\n abi.encodePacked(\n block.chainid, \n address(_registry)));\n }\n\n function getInstanceOperator() external override view returns(address) {\n InstanceOperatorService ios = InstanceOperatorService(_getContractAddress(INSTANCE_OPERATOR_SERVICE_NAME));\n return ios.owner();\n }\n \n /* registry */\n function getComponentOwnerService() external override view returns(IComponentOwnerService service) {\n return IComponentOwnerService(_getContractAddress(COMPONENT_OWNER_SERVICE_NAME));\n }\n\n function getInstanceOperatorService() external override view returns(IInstanceOperatorService service) {\n return IInstanceOperatorService(_getContractAddress(INSTANCE_OPERATOR_SERVICE_NAME));\n }\n\n function getOracleService() external override view returns(IOracleService service) {\n return IOracleService(_getContractAddress(ORACLE_SERVICE_NAME));\n }\n\n function getProductService() external override view returns(IProductService service) {\n return IProductService(_getContractAddress(PRODUCT_SERVICE_NAME));\n }\n\n function getRiskpoolService() external override view returns(IRiskpoolService service) {\n return IRiskpoolService(_getContractAddress(RISKPOOL_SERVICE_NAME));\n }\n\n /* registry */\n function getRegistry() external view returns(IRegistry service) {\n return _registry;\n }\n\n function contracts() external view override returns (uint256 numberOfContracts) {\n numberOfContracts = _registry.contracts();\n }\n \n function contractName(uint256 idx) external view override returns (bytes32 name) {\n name = _registry.contractName(idx);\n }\n\n /* access */\n function getDefaultAdminRole() external override view returns(bytes32) {\n return _access.getDefaultAdminRole();\n }\n\n function getProductOwnerRole() external override view returns(bytes32) {\n return _access.getProductOwnerRole();\n }\n\n function getOracleProviderRole() external override view returns(bytes32) {\n return _access.getOracleProviderRole();\n }\n\n function getRiskpoolKeeperRole() external override view returns(bytes32) {\n return _access.getRiskpoolKeeperRole();\n }\n\n function hasRole(bytes32 role, address principal)\n external override view \n returns(bool)\n {\n return _access.hasRole(role, principal);\n }\n\n /* component */\n function products() external override view returns(uint256) {\n return _component.products();\n }\n\n function oracles() external override view returns(uint256) {\n return _component.oracles();\n }\n\n function riskpools() external override view returns(uint256) {\n return _component.riskpools();\n }\n\n function getComponentId(address componentAddress) external override view returns(uint256 componentId) {\n return _component.getComponentId(componentAddress);\n }\n\n function getComponentType(uint256 componentId)\n external override \n view \n returns(IComponent.ComponentType componentType)\n {\n return _component.getComponentType(componentId);\n }\n\n function getComponentState(uint256 componentId) \n external override\n view \n returns(IComponent.ComponentState componentState)\n {\n componentState = _component.getComponentState(componentId);\n }\n\n function getComponent(uint256 id) external override view returns(IComponent) {\n return _component.getComponent(id);\n }\n\n function getOracleId(uint256 idx) public view returns (uint256 oracleId) {\n return _component.getOracleId(idx);\n }\n\n function getRiskpoolId(uint256 idx) public view returns (uint256 riskpoolId) {\n return _component.getRiskpoolId(idx);\n }\n\n function getProductId(uint256 idx) public view returns (uint256 productId) {\n return _component.getProductId(idx);\n }\n\n /* service staking */\n function getStakingRequirements(uint256 id) \n external override \n pure \n returns(bytes memory data) \n {\n revert(\"ERROR:IS-001:IMPLEMENATION_MISSING\");\n }\n\n function getStakedAssets(uint256 id)\n external override \n pure \n returns(bytes memory data) \n {\n revert(\"ERROR:IS-002:IMPLEMENATION_MISSING\");\n }\n\n /* policy */\n function processIds() external override view returns(uint256 numberOfProcessIds) {\n numberOfProcessIds = _policy.processIds();\n }\n\n function getMetadata(bytes32 bpKey) external override view returns(IPolicy.Metadata memory metadata) {\n metadata = _policy.getMetadata(bpKey);\n }\n\n function getApplication(bytes32 processId) external override view returns(IPolicy.Application memory application) {\n application = _policy.getApplication(processId);\n }\n\n function getPolicy(bytes32 processId) external override view returns(IPolicy.Policy memory policy) {\n policy = _policy.getPolicy(processId);\n }\n \n function claims(bytes32 processId) external override view returns(uint256 numberOfClaims) {\n numberOfClaims = _policy.getNumberOfClaims(processId);\n }\n \n function payouts(bytes32 processId) external override view returns(uint256 numberOfPayouts) {\n numberOfPayouts = _policy.getNumberOfPayouts(processId);\n }\n \n function getClaim(bytes32 processId, uint256 claimId) external override view returns (IPolicy.Claim memory claim) {\n claim = _policy.getClaim(processId, claimId);\n }\n \n function getPayout(bytes32 processId, uint256 payoutId) external override view returns (IPolicy.Payout memory payout) {\n payout = _policy.getPayout(processId, payoutId);\n }\n\n /* riskpool */\n function getRiskpool(uint256 riskpoolId) external override view returns(IPool.Pool memory riskPool) {\n return _pool.getRiskpool(riskpoolId);\n }\n\n function getFullCollateralizationLevel() external override view returns (uint256) {\n return _pool.getFullCollateralizationLevel();\n }\n\n function getCapital(uint256 riskpoolId) external override view returns(uint256 capitalAmount) {\n return _pool.getRiskpool(riskpoolId).capital;\n }\n\n function getTotalValueLocked(uint256 riskpoolId) external override view returns(uint256 totalValueLockedAmount) {\n return _pool.getRiskpool(riskpoolId).lockedCapital;\n }\n\n function getCapacity(uint256 riskpoolId) external override view returns(uint256 capacityAmount) {\n IPool.Pool memory pool = _pool.getRiskpool(riskpoolId);\n return pool.capital - pool.lockedCapital;\n }\n\n function getBalance(uint256 riskpoolId) external override view returns(uint256 balanceAmount) {\n return _pool.getRiskpool(riskpoolId).balance;\n }\n\n function activeBundles(uint256 riskpoolId) external override view returns(uint256 numberOfActiveBundles) {\n return _pool.activeBundles(riskpoolId);\n }\n\n function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external override view returns(uint256 bundleId) {\n return _pool.getActiveBundleId(riskpoolId, bundleIdx);\n }\n function getMaximumNumberOfActiveBundles(uint256 riskpoolId) external override view returns(uint256 maximumNumberOfActiveBundles) {\n return _pool.getMaximumNumberOfActiveBundles(riskpoolId);\n }\n\n /* bundle */\n function getBundleToken() external override view returns(IBundleToken token) {\n BundleToken bundleToken = _bundle.getToken();\n token = IBundleToken(bundleToken);\n }\n \n function getBundle(uint256 bundleId) external override view returns (IBundle.Bundle memory bundle) {\n bundle = _bundle.getBundle(bundleId);\n }\n\n function bundles() external override view returns (uint256) {\n return _bundle.bundles();\n }\n\n function unburntBundles(uint256 riskpoolId) external override view returns(uint256 numberOfUnburntBundles) {\n numberOfUnburntBundles = _bundle.unburntBundles(riskpoolId);\n }\n\n /* treasury */\n function getTreasuryAddress() external override view returns(address) { \n return address(_treasury);\n }\n\n function getInstanceWallet() external override view returns(address) { \n return _treasury.getInstanceWallet();\n }\n\n function getRiskpoolWallet(uint256 riskpoolId) external override view returns(address) { \n return _treasury.getRiskpoolWallet(riskpoolId);\n }\n\n function getComponentToken(uint256 componentId) external override view returns(IERC20) { \n return _treasury.getComponentToken(componentId);\n }\n\n function getFeeFractionFullUnit() external override view returns(uint256) {\n return _treasury.getFractionFullUnit();\n }\n}\n"},"contracts/services/OracleService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/modules/IQuery.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IOracleService.sol\";\n\n\ncontract OracleService is \n IOracleService, \n CoreController\n{\n IQuery private _query;\n\n function _afterInitialize() internal override onlyInitializing {\n _query = IQuery(_getContractAddress(\"Query\"));\n }\n\n function respond(uint256 _requestId, bytes calldata _data) external override {\n // function below enforces msg.sender to be a registered oracle\n _query.respond(_requestId, _msgSender(), _data);\n }\n}\n"},"contracts/services/ProductService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../shared/WithRegistry.sol\";\n// import \"../shared/CoreController.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/ILicense.sol\";\n\nimport \"@openzeppelin/contracts/utils/Context.sol\";\n\ncontract ProductService is\n WithRegistry,\n // CoreController\n Context\n {\n bytes32 public constant NAME = \"ProductService\";\n\n // solhint-disable-next-line no-empty-blocks\n constructor(address _registry) WithRegistry(_registry) {}\n\n fallback() external {\n // getAuthorizationStatus enforces msg.sender to be a registered product\n (,bool isAuthorized, address policyFlow) = _license().getAuthorizationStatus(_msgSender());\n\n require(isAuthorized, \"ERROR:PRS-001:NOT_AUTHORIZED\");\n require(policyFlow != address(0),\"ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED\");\n\n _delegate(policyFlow);\n }\n\n\n /**\n * @dev Delegates the current call to `implementation`.\n *\n * This function does not return to its internal call site, it will return directly to the external caller.\n * This function is a 1:1 copy of _delegate from\n * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.6/contracts/proxy/Proxy.sol\n */\n function _delegate(address implementation) internal {\n assembly {\n // Copy msg.data. We take full control of memory in this inline assembly\n // block because it will not return to Solidity code. We overwrite the\n // Solidity scratch pad at memory position 0.\n calldatacopy(0, 0, calldatasize())\n\n // Call the implementation.\n // out and outsize are 0 because we don't know the size yet.\n let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)\n\n // Copy the returned data.\n returndatacopy(0, 0, returndatasize())\n\n switch result\n // delegatecall returns 0 on error.\n case 0 {\n revert(0, returndatasize())\n }\n default {\n return(0, returndatasize())\n }\n }\n }\n\n function _license() internal view returns (ILicense) {\n return ILicense(registry.getContract(\"License\"));\n }\n\n}\n"},"contracts/services/RiskpoolService.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../modules/BundleController.sol\";\nimport \"../modules/ComponentController.sol\";\nimport \"../modules/TreasuryModule.sol\";\nimport \"../shared/CoreController.sol\";\n\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IBundle.sol\";\nimport \"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\";\n\ncontract RiskpoolService is\n IRiskpoolService, \n CoreController\n{\n bytes32 public constant RISKPOOL_NAME = \"Riskpool\";\n\n ComponentController private _component;\n BundleController private _bundle;\n PoolController private _pool;\n TreasuryModule private _treasury;\n\n modifier onlyProposedRiskpool() {\n uint256 componentId = _component.getComponentId(_msgSender());\n require(\n _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool,\n \"ERROR:RPS-001:SENDER_NOT_RISKPOOL\"\n );\n require(\n _component.getComponentState(componentId) == IComponent.ComponentState.Proposed,\n \"ERROR:RPS-002:RISKPOOL_NOT_PROPOSED\"\n );\n _;\n }\n\n modifier onlyActiveRiskpool() {\n uint256 componentId = _component.getComponentId(_msgSender());\n require(\n _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool,\n \"ERROR:RPS-003:SENDER_NOT_RISKPOOL\"\n );\n require(\n _component.getComponentState(componentId) == IComponent.ComponentState.Active,\n \"ERROR:RPS-004:RISKPOOL_NOT_ACTIVE\"\n );\n _;\n }\n\n modifier onlyOwningRiskpool(uint256 bundleId, bool mustBeActive) {\n uint256 componentId = _component.getComponentId(_msgSender());\n bool isRiskpool = _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool;\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(\n isRiskpool,\n \"ERROR:RPS-005:SENDER_NOT_RISKPOOL\"\n );\n require(\n componentId == bundle.riskpoolId,\n \"ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH\"\n );\n if (mustBeActive) {\n require(\n _component.getComponentState(componentId) == IComponent.ComponentState.Active,\n \"ERROR:RPS-007:RISKPOOL_NOT_ACTIVE\"\n );\n }\n _;\n }\n\n modifier onlyOwningRiskpoolId(uint256 riskpoolId, bool mustBeActive) {\n uint256 componentId = _component.getComponentId(_msgSender());\n bool isRiskpool = _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool;\n require(\n isRiskpool && componentId == riskpoolId,\n \"ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL\"\n );\n if (mustBeActive) {\n require(\n _component.getComponentState(componentId) == IComponent.ComponentState.Active,\n \"ERROR:RPS-009:RISKPOOL_NOT_ACTIVE\"\n );\n }\n _;\n }\n\n\n function _afterInitialize() \n internal override \n onlyInitializing \n {\n _bundle = BundleController(_getContractAddress(\"Bundle\"));\n _component = ComponentController(_getContractAddress(\"Component\"));\n _pool = PoolController(_getContractAddress(\"Pool\"));\n _treasury = TreasuryModule(_getContractAddress(\"Treasury\"));\n }\n\n\n function registerRiskpool(\n address wallet,\n address erc20Token,\n uint256 collateralizationLevel, \n uint256 sumOfSumInsuredCap\n )\n external override\n onlyProposedRiskpool\n {\n uint256 riskpoolId = _component.getComponentId(_msgSender());\n _pool.registerRiskpool(\n riskpoolId, \n wallet,\n erc20Token,\n collateralizationLevel, \n sumOfSumInsuredCap\n );\n }\n\n function createBundle(\n address owner, \n bytes calldata filter, \n uint256 initialCapital\n ) \n external override\n onlyActiveRiskpool\n returns(uint256 bundleId)\n {\n uint256 riskpoolId = _component.getComponentId(_msgSender());\n bundleId = _bundle.create(owner, riskpoolId, filter, 0);\n \n _pool.addBundleIdToActiveSet(riskpoolId, bundleId);\n\n (uint256 fee, uint256 netCapital) = _treasury.processCapital(bundleId, initialCapital);\n\n _bundle.fund(bundleId, netCapital);\n _pool.fund(riskpoolId, netCapital);\n }\n\n\n function fundBundle(uint256 bundleId, uint256 amount)\n external override\n onlyOwningRiskpool(bundleId, true)\n returns( uint256 netAmount)\n {\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(\n bundle.state != IBundle.BundleState.Closed\n && bundle.state != IBundle.BundleState.Burned, \n \"ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED\"\n );\n\n uint256 feeAmount;\n (feeAmount, netAmount) = _treasury.processCapital(bundleId, amount);\n\n _bundle.fund(bundleId, netAmount);\n _pool.fund(bundle.riskpoolId, netAmount);\n }\n\n\n function defundBundle(uint256 bundleId, uint256 amount)\n external override\n onlyOwningRiskpool(bundleId, true)\n returns(uint256 netAmount)\n {\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(\n bundle.state != IBundle.BundleState.Burned, \n \"ERROR:RPS-011:BUNDLE_BURNED\"\n );\n\n uint256 feeAmount;\n (feeAmount, netAmount) = _treasury.processWithdrawal(bundleId, amount);\n require(netAmount == amount, \"ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION\");\n\n _bundle.defund(bundleId, amount);\n _pool.defund(bundle.riskpoolId, netAmount);\n }\n\n\n function lockBundle(uint256 bundleId)\n external override\n onlyOwningRiskpool(bundleId, true)\n {\n uint256 riskpoolId = _component.getComponentId(_msgSender());\n _pool.removeBundleIdFromActiveSet(riskpoolId, bundleId);\n _bundle.lock(bundleId);\n }\n\n\n function unlockBundle(uint256 bundleId)\n external override\n onlyOwningRiskpool(bundleId, true) \n {\n uint256 riskpoolId = _component.getComponentId(_msgSender());\n _pool.addBundleIdToActiveSet(riskpoolId, bundleId);\n _bundle.unlock(bundleId);\n }\n\n\n function closeBundle(uint256 bundleId)\n external override\n onlyOwningRiskpool(bundleId, true) \n {\n uint256 riskpoolId = _component.getComponentId(_msgSender());\n\n if (_bundle.getState(bundleId) == IBundle.BundleState.Active) {\n _pool.removeBundleIdFromActiveSet(riskpoolId, bundleId);\n }\n\n _bundle.close(bundleId);\n }\n\n function burnBundle(uint256 bundleId)\n external override\n onlyOwningRiskpool(bundleId, true) \n {\n // ensure bundle is closed\n IBundle.Bundle memory bundle = _bundle.getBundle(bundleId);\n require(bundle.state == IBundle.BundleState.Closed, \"ERROR:RPS-020:BUNDLE_NOT_CLOSED\");\n\n // withdraw remaining balance\n (uint256 feeAmount, uint256 netAmount) = _treasury.processWithdrawal(bundleId, bundle.balance);\n \n _bundle.defund(bundleId, netAmount);\n _pool.defund(bundle.riskpoolId, netAmount);\n\n _bundle.burn(bundleId);\n }\n \n function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 collateralAmount) \n external override\n onlyOwningRiskpool(bundleId, true) \n {\n _bundle.collateralizePolicy(bundleId, processId, collateralAmount);\n }\n\n function processPremium(uint256 bundleId, bytes32 processId, uint256 amount)\n external override\n onlyOwningRiskpool(bundleId, true)\n { \n _bundle.processPremium(bundleId, processId, amount);\n }\n\n function processPayout(uint256 bundleId, bytes32 processId, uint256 amount)\n external override\n onlyOwningRiskpool(bundleId, true) \n {\n _bundle.processPayout(bundleId, processId, amount);\n }\n\n function releasePolicy(uint256 bundleId, bytes32 processId)\n external override\n onlyOwningRiskpool(bundleId, false) \n returns(uint256 collateralAmount)\n {\n collateralAmount = _bundle.releasePolicy(bundleId, processId);\n }\n\n function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles)\n external override\n onlyOwningRiskpoolId(riskpoolId, true)\n {\n _pool.setMaximumNumberOfActiveBundles(riskpoolId, maxNumberOfActiveBundles);\n } \n}\n"},"contracts/shared/CoreController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@etherisc/gif-interface/contracts/modules/IAccess.sol\";\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\n\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport \"@openzeppelin/contracts/utils/Context.sol\";\n\ncontract CoreController is\n Context,\n Initializable \n{\n IRegistry internal _registry;\n IAccess internal _access;\n\n constructor () {\n _disableInitializers();\n }\n\n modifier onlyInstanceOperator() {\n require(\n _registry.ensureSender(_msgSender(), \"InstanceOperatorService\"),\n \"ERROR:CRC-001:NOT_INSTANCE_OPERATOR\");\n _;\n }\n\n modifier onlyPolicyFlow(bytes32 module) {\n // Allow only from delegator\n require(\n address(this) == _getContractAddress(module),\n \"ERROR:CRC-002:NOT_ON_STORAGE\"\n );\n\n // Allow only ProductService (it delegates to PolicyFlow)\n require(\n _msgSender() == _getContractAddress(\"ProductService\"),\n \"ERROR:CRC-003:NOT_PRODUCT_SERVICE\"\n );\n _;\n }\n\n function initialize(address registry) public initializer {\n _registry = IRegistry(registry);\n if (_getName() != \"Access\") { _access = IAccess(_getContractAddress(\"Access\")); }\n \n _afterInitialize();\n }\n\n function _getName() internal virtual pure returns(bytes32) { return \"\"; }\n\n function _afterInitialize() internal virtual onlyInitializing {}\n\n function _getContractAddress(bytes32 contractName) internal view returns (address contractAddress) { \n contractAddress = _registry.getContract(contractName);\n require(\n contractAddress != address(0),\n \"ERROR:CRC-004:CONTRACT_NOT_REGISTERED\"\n );\n }\n}\n"},"contracts/shared/CoreProxy.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\n\r\nimport \"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol\";\r\nimport \"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\";\r\n\r\ncontract CoreProxy is \r\n ICoreProxy, \r\n ERC1967Proxy\r\n{\r\n\r\n modifier onlyAdmin() {\r\n require(\r\n msg.sender == _getAdmin(),\r\n \"ERROR:CRP-001:NOT_ADMIN\");\r\n _;\r\n }\r\n\r\n constructor(address _controller, bytes memory encoded_initializer) \r\n ERC1967Proxy(_controller, encoded_initializer) \r\n {\r\n _changeAdmin(msg.sender);\r\n }\r\n\r\n function implementation() external view returns (address) {\r\n return _implementation();\r\n }\r\n\r\n function upgradeToAndCall(address newImplementation, bytes calldata data) \r\n external\r\n payable\r\n onlyAdmin\r\n {\r\n address oldImplementation = _implementation();\r\n\r\n _upgradeToAndCall(newImplementation, data, true);\r\n\r\n emit LogCoreContractUpgraded(\r\n oldImplementation, \r\n newImplementation);\r\n } \r\n}\r\n"},"contracts/shared/TransferHelper.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\n// inspired/informed by\n// https://soliditydeveloper.com/safe-erc20\n// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/token/ERC20/ERC20.sol\n// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/token/ERC20/utils/SafeERC20.sol\n// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/utils/Address.sol\n// https://github.com/Uniswap/solidity-lib/blob/master/contracts/libraries/TransferHelper.sol\nlibrary TransferHelper {\n\n event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to);\n event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance);\n event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData);\n\n function unifiedTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n )\n internal\n returns(bool success)\n {\n // input validation step 1\n address tokenAddress = address(token);\n bool tokenIsContract = (tokenAddress.code.length > 0);\n if (from == address(0) || to == address (0) || !tokenIsContract) {\n emit LogTransferHelperInputValidation1Failed(tokenIsContract, from, to);\n return false;\n }\n \n // input validation step 2\n uint256 balance = token.balanceOf(from);\n uint256 allowance = token.allowance(from, address(this));\n if (balance < value || allowance < value) {\n emit LogTransferHelperInputValidation2Failed(balance, allowance);\n return false;\n }\n\n // low-level call to transferFrom\n // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));\n (bool callSuccess, bytes memory data) = address(token).call(\n abi.encodeWithSelector(\n 0x23b872dd, \n from, \n to, \n value));\n\n success = callSuccess && (false\n || data.length == 0 \n || (data.length == 32 && abi.decode(data, (bool))));\n\n if (!success) {\n emit LogTransferHelperCallFailed(callSuccess, data.length, data);\n }\n }\n}"},"contracts/shared/WithRegistry.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\n\ncontract WithRegistry {\n\n/*\n * We can consider the registry address as immutable here as it contains the\n * root data structure for the whole GIF Instance.\n * We can therefore ensure that a policy flow cannot overwrite the address\n * neither by chance nor by intention.\n */\n IRegistry public immutable registry;\n\n modifier onlyInstanceOperator() {\n require(\n msg.sender == getContractFromRegistry(\"InstanceOperatorService\"),\n \"ERROR:ACM-001:NOT_INSTANCE_OPERATOR\"\n );\n _;\n }\n\n modifier onlyOracleService() {\n require(\n msg.sender == getContractFromRegistry(\"OracleService\"),\n \"ERROR:ACM-004:NOT_ORACLE_SERVICE\"\n );\n _;\n }\n\n modifier onlyOracleOwner() {\n require(\n msg.sender == getContractFromRegistry(\"OracleOwnerService\"),\n \"ERROR:ACM-005:NOT_ORACLE_OWNER\"\n );\n _;\n }\n\n modifier onlyProductOwner() {\n require(\n msg.sender == getContractFromRegistry(\"ProductOwnerService\"),\n \"ERROR:ACM-006:NOT_PRODUCT_OWNER\"\n );\n _;\n }\n\n constructor(address _registry) {\n registry = IRegistry(_registry);\n }\n\n function getContractFromRegistry(bytes32 _contractName)\n public\n // override\n view\n returns (address _addr)\n {\n _addr = registry.getContract(_contractName);\n }\n\n function getContractInReleaseFromRegistry(bytes32 _release, bytes32 _contractName)\n internal\n view\n returns (address _addr)\n {\n _addr = registry.getContractInRelease(_release, _contractName);\n }\n\n function getReleaseFromRegistry() internal view returns (bytes32 _release) {\n _release = registry.getRelease();\n }\n}\n"},"contracts/test/TestCoin.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract TestCoin is ERC20 {\r\n\r\n string public constant NAME = \"Test Dummy\";\r\n string public constant SYMBOL = \"TDY\";\r\n\r\n uint256 public constant INITIAL_SUPPLY = 10**24;\r\n\r\n constructor()\r\n ERC20(NAME, SYMBOL)\r\n {\r\n _mint(\r\n _msgSender(),\r\n INITIAL_SUPPLY\r\n );\r\n }\r\n}\r\n\r\ncontract TestCoinX is ERC20 {\r\n\r\n string public constant NAME = \"Test Dummy X\";\r\n string public constant SYMBOL = \"TDX\";\r\n\r\n uint256 public constant INITIAL_SUPPLY = 10**24;\r\n\r\n constructor()\r\n ERC20(NAME, SYMBOL)\r\n {\r\n _mint(\r\n _msgSender(),\r\n INITIAL_SUPPLY\r\n );\r\n }\r\n}\r\n"},"contracts/test/TestCoinAlternativeImplementation.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract TestCoinAlternativeImplementation is ERC20 {\r\n\r\n string public constant NAME = \"Test Alternative Coin\";\r\n string public constant SYMBOL = \"TAC\";\r\n\r\n uint256 public constant INITIAL_SUPPLY = 10**24;\r\n\r\n constructor()\r\n ERC20(NAME, SYMBOL)\r\n {\r\n _mint(\r\n _msgSender(),\r\n INITIAL_SUPPLY\r\n );\r\n }\r\n\r\n // inspired by ZRX transfer implementation\r\n // see https://soliditydeveloper.com/safe-erc20\r\n function transferFrom(address _from, address _to, uint _value)\r\n public virtual override returns (bool) \r\n {\r\n if (balanceOf(_from) >= _value // check sufficient balance\r\n && allowance(_from, msg.sender) >= _value // check sufficient allowance\r\n && balanceOf(_to) + _value >= balanceOf(_to) // check overflow\r\n && _from != address(0) // sender not zero address\r\n && _to != address(0)) // recipient not zero address\r\n {\r\n return super.transferFrom(_from, _to, _value); // should never fail now\r\n } else { \r\n return false; \r\n }\r\n }\r\n}\r\n"},"contracts/test/TestCompromisedProduct.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@etherisc/gif-interface/contracts/components/IComponent.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/IProduct.sol\";\r\n\r\nimport \"@etherisc/gif-interface/contracts/modules/IAccess.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IRegistry.sol\";\r\n\r\nimport \"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\";\r\nimport \"@etherisc/gif-interface/contracts/services/IProductService.sol\";\r\nimport \"@etherisc/gif-interface/contracts/services/IInstanceService.sol\";\r\n\r\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\n/* \r\nthe TestCompromisedProduct claims to be an existing product that connects to an existing \r\nriskpool with the goal to create fraud claims that lead to fraud payouts whith the intention\r\nto drain the riskpool.\r\n\r\nfor this the compromised product claims\r\n- to be a product\r\n- to be in state active (independent of an approval step by the instance operator)\r\n*/\r\ncontract TestCompromisedProduct is \r\n IProduct,\r\n Ownable \r\n{\r\n IComponent.ComponentState public constant FAKE_STATE = IComponent.ComponentState.Active;\r\n \r\n bytes32 public constant POLICY_FLOW = \"PolicyDefaultFlow\";\r\n\r\n bytes32 private _componentName;\r\n address private _tokenAddress;\r\n uint256 private _componentId;\r\n uint256 private _riskpoolId;\r\n \r\n IRegistry private _registry;\r\n IAccess private _access;\r\n IComponentOwnerService private _componentOwnerService;\r\n IInstanceService private _instanceService;\r\n address private _policyFlow;\r\n IProductService private _productService;\r\n\r\n uint256 private _policies;\r\n uint256 private _claims;\r\n\r\n modifier onlyPolicyHolder(bytes32 policyId) {\r\n address policyHolder = _instanceService.getMetadata(policyId).owner;\r\n require(\r\n _msgSender() == policyHolder, \r\n \"ERROR:TCP-1:INVALID_POLICY_OR_HOLDER\"\r\n );\r\n _;\r\n }\r\n\r\n constructor(\r\n bytes32 fakeProductName,\r\n address tokenAddress,\r\n uint256 fakeComponentId,\r\n uint256 fakeRiskpoolId,\r\n address registryAddress\r\n )\r\n Ownable()\r\n { \r\n _componentName = fakeProductName;\r\n _tokenAddress = tokenAddress;\r\n _componentId = fakeComponentId;\r\n _riskpoolId = fakeRiskpoolId;\r\n\r\n _registry = IRegistry(registryAddress);\r\n _access = _getAccess();\r\n _componentOwnerService = _getComponentOwnerService();\r\n _instanceService = _getInstanceService();\r\n _policyFlow = _getContractAddress(POLICY_FLOW);\r\n _productService = _getProductService();\r\n }\r\n\r\n function applyForPolicy(\r\n uint256 premium, \r\n uint256 sumInsured,\r\n bytes calldata metaData,\r\n bytes calldata applicationData\r\n ) \r\n external \r\n payable \r\n returns (bytes32 processId) \r\n {\r\n address payable policyHolder = payable(_msgSender());\r\n\r\n // Create and underwrite new application\r\n processId = _productService.newApplication(\r\n policyHolder, \r\n premium, \r\n sumInsured, \r\n metaData, \r\n applicationData);\r\n\r\n _productService.underwrite(processId);\r\n }\r\n\r\n function collectPremium(bytes32 policyId) \r\n external \r\n {\r\n IPolicy.Policy memory policy = _instanceService.getPolicy(policyId);\r\n _productService.collectPremium(policyId, policy.premiumExpectedAmount);\r\n }\r\n\r\n function submitClaim(bytes32 policyId, uint256 claimAmount) \r\n external\r\n onlyPolicyHolder(policyId)\r\n {\r\n // increase claims counter\r\n _claims += 1;\r\n \r\n // create claim and confirm it\r\n uint256 claimId = _productService.newClaim(policyId, claimAmount, abi.encode(0));\r\n _productService.confirmClaim(policyId, claimId, claimAmount);\r\n\r\n // create payout record\r\n uint256 payoutId = _productService.newPayout(policyId, claimId, claimAmount, abi.encode(0));\r\n _productService.processPayout(policyId, payoutId);\r\n }\r\n\r\n //--- product service access --------------------------------------------//\r\n\r\n //--- iproduct ----------------------------------------------------------//\r\n function getToken() external override view returns(address token) { return _tokenAddress; }\r\n function getPolicyFlow() external override view returns(address policyFlow) { return _getContractAddress(POLICY_FLOW); }\r\n function getRiskpoolId() external override view returns(uint256 riskpoolId) { return _riskpoolId; }\r\n\r\n function getApplicationDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\r\n function getClaimDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\r\n function getPayoutDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\r\n\r\n function riskPoolCapacityCallback(uint256 capacity) external override {}\r\n\r\n //--- icomponent --------------------------------------------------------//\r\n function setId(uint256 id) external override {} // does not care about id\r\n\r\n function getName() external override view returns(bytes32) { return _componentName; }\r\n function getId() external override view returns(uint256) { return _componentId; }\r\n function getType() external override view returns(ComponentType) { return IComponent.ComponentType.Product; }\r\n function getState() external override view returns(ComponentState) { return IComponent.ComponentState.Active; }\r\n function getOwner() external override view returns(address) { return owner(); }\r\n function getRegistry() external override view returns(IRegistry) { return _registry; }\r\n\r\n function isProduct() public override view returns(bool) { return true; }\r\n function isOracle() public override view returns(bool) { return false; }\r\n function isRiskpool() public override view returns(bool) { return false; }\r\n\r\n function proposalCallback() external override {}\r\n function approvalCallback() external override {} \r\n function declineCallback() external override {}\r\n function suspendCallback() external override {}\r\n function resumeCallback() external override {}\r\n function pauseCallback() external override {}\r\n function unpauseCallback() external override {}\r\n function archiveCallback() external override {}\r\n\r\n function _getAccess() private view returns (IAccess) {\r\n return IAccess(_getContractAddress(\"Access\")); \r\n }\r\n\r\n function _getInstanceService() private view returns (IInstanceService) {\r\n return IInstanceService(_getContractAddress(\"InstanceService\")); \r\n }\r\n\r\n function _getComponentOwnerService() private view returns (IComponentOwnerService) {\r\n return IComponentOwnerService(_getContractAddress(\"ComponentOwnerService\")); \r\n }\r\n\r\n function _getProductService() private view returns (IProductService) {\r\n return IProductService(_getContractAddress(\"ProductService\")); \r\n }\r\n\r\n function _getContractAddress(bytes32 contractName) private view returns (address) { \r\n return _registry.getContract(contractName);\r\n }\r\n\r\n}"},"contracts/test/TestOracle.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@etherisc/gif-interface/contracts/components/Oracle.sol\";\r\n\r\ncontract TestOracle is Oracle {\r\n\r\n constructor(\r\n bytes32 oracleName,\r\n address registry\r\n )\r\n Oracle(oracleName, registry)\r\n { }\r\n\r\n function request(uint256 requestId, bytes calldata input) external override onlyQuery {\r\n // decode oracle input data\r\n (uint256 counter, bool immediateResponse) = abi.decode(input, (uint256, bool));\r\n\r\n if (immediateResponse) {\r\n // obtain data from oracle given the request data (counter)\r\n // for off chain oracles this happens outside the request\r\n // call in a separate asynchronous transaction\r\n bool isLossEvent = _oracleCalculation(counter);\r\n respond(requestId, isLossEvent);\r\n }\r\n }\r\n\r\n function cancel(uint256 requestId)\r\n external override\r\n onlyOwner\r\n {\r\n // TODO mid/low priority\r\n // cancelChainlinkRequest(_requestId, _payment, _callbackFunctionId, _expiration);\r\n }\r\n\r\n // usually called by off-chain oracle (and not internally) \r\n // in which case the function modifier should be changed \r\n // to external\r\n function respond(uint256 requestId, bool isLossEvent) \r\n public\r\n {\r\n // encode data obtained from oracle\r\n bytes memory output = abi.encode(bool(isLossEvent));\r\n\r\n // trigger inherited response handling\r\n _respond(requestId, output);\r\n }\r\n\r\n // dummy implementation\r\n // \"real\" oracles will get the output from some off-chain\r\n // component providing the outcome of the business logic\r\n function _oracleCalculation(uint256 counter) internal returns (bool isLossEvent) {\r\n isLossEvent = (counter % 2 == 1);\r\n } \r\n}"},"contracts/test/TestProduct.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\r\nimport \"@etherisc/gif-interface/contracts/services/IProductService.sol\";\r\nimport \"@etherisc/gif-interface/contracts/services/IInstanceService.sol\";\r\nimport \"@etherisc/gif-interface/contracts/components/Product.sol\";\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract TestProduct is \r\n Product \r\n{\r\n bytes32 public constant POLICY_FLOW = \"PolicyDefaultFlow\";\r\n string public constant ORACLE_CALLBACK_METHOD_NAME = \"oracleCallback\";\r\n\r\n address private _capitalOwner;\r\n uint256 private _testOracleId;\r\n uint256 private _testRiskpoolId;\r\n\r\n bytes32 [] private _applications;\r\n bytes32 [] private _policies;\r\n uint256 private _claims;\r\n\r\n mapping(bytes32 => uint256) private _policyIdToClaimId;\r\n mapping(bytes32 => uint256) private _policyIdToPayoutId;\r\n\r\n event LogTestProductFundingReceived(address sender, uint256 amount);\r\n event LogTestOracleCallbackReceived(uint256 requestId, bytes32 policyId, bytes response);\r\n\r\n constructor(\r\n bytes32 productName,\r\n address tokenAddress,\r\n address capitalOwner,\r\n uint256 oracleId,\r\n uint256 riskpoolId,\r\n address registryAddress\r\n )\r\n Product(productName, tokenAddress, POLICY_FLOW, riskpoolId, registryAddress)\r\n {\r\n require(tokenAddress != address(0), \"ERROR:TI-2:TOKEN_ADDRESS_ZERO\");\r\n _capitalOwner = capitalOwner;\r\n _testOracleId = oracleId;\r\n _testRiskpoolId = riskpoolId;\r\n }\r\n\r\n function applyForPolicy(\r\n uint256 premium, \r\n uint256 sumInsured,\r\n bytes calldata metaData,\r\n bytes calldata applicationData\r\n ) \r\n external \r\n payable \r\n returns (bytes32 processId) \r\n {\r\n address payable policyHolder = payable(_msgSender());\r\n\r\n processId = _newApplication(\r\n policyHolder,\r\n premium, \r\n sumInsured,\r\n metaData,\r\n applicationData);\r\n\r\n _applications.push(processId);\r\n\r\n bool success = _underwrite(processId);\r\n if (success) {\r\n _policies.push(processId);\r\n }\r\n }\r\n\r\n function applyForPolicy(\r\n address payable policyHolder,\r\n uint256 premium, \r\n uint256 sumInsured,\r\n bytes calldata metaData,\r\n bytes calldata applicationData\r\n ) \r\n external \r\n payable \r\n returns (bytes32 processId) \r\n {\r\n processId = _newApplication(\r\n policyHolder,\r\n premium, \r\n sumInsured,\r\n metaData,\r\n applicationData);\r\n\r\n _applications.push(processId);\r\n\r\n bool success = _underwrite(processId);\r\n if (success) {\r\n _policies.push(processId);\r\n }\r\n }\r\n\r\n\r\n function newAppliation(\r\n uint256 premium, \r\n uint256 sumInsured,\r\n bytes calldata metaData,\r\n bytes calldata applicationData\r\n ) \r\n external \r\n payable \r\n returns (bytes32 processId) \r\n {\r\n address payable policyHolder = payable(_msgSender());\r\n\r\n processId = _newApplication(\r\n policyHolder,\r\n premium, \r\n sumInsured,\r\n metaData,\r\n applicationData);\r\n\r\n _applications.push(processId);\r\n }\r\n\r\n\r\n function revoke(bytes32 processId) external onlyPolicyHolder(processId) { \r\n _revoke(processId);\r\n }\r\n\r\n function decline(bytes32 processId) external onlyOwner { \r\n _decline(processId);\r\n }\r\n\r\n function underwrite(bytes32 processId) external onlyOwner { \r\n bool success = _underwrite(processId);\r\n if (success) {\r\n _policies.push(processId);\r\n }\r\n }\r\n\r\n function collectPremium(bytes32 policyId) \r\n external onlyOwner\r\n returns(bool success, uint256 fee, uint256 netPremium)\r\n {\r\n (success, fee, netPremium) = _collectPremium(policyId);\r\n }\r\n\r\n function collectPremium(bytes32 policyId, uint256 amount) \r\n external onlyOwner\r\n returns(bool success, uint256 fee, uint256 netPremium)\r\n {\r\n (success, fee, netPremium) = _collectPremium(policyId, amount);\r\n }\r\n\r\n function adjustPremiumSumInsured(\r\n bytes32 processId,\r\n uint256 expectedPremiumAmount,\r\n uint256 sumInsuredAmount\r\n )\r\n external\r\n {\r\n _adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount);\r\n }\r\n\r\n function expire(bytes32 policyId) external onlyOwner {\r\n _expire(policyId);\r\n }\r\n\r\n function close(bytes32 policyId) external onlyOwner {\r\n _close(policyId);\r\n }\r\n\r\n function submitClaim(bytes32 policyId, uint256 claimAmount) \r\n external\r\n onlyPolicyHolder(policyId)\r\n returns(uint256 claimId)\r\n {\r\n\r\n // increase claims counter\r\n // the oracle business logic will use this counter value \r\n // to determine if the claim is linked to a loss event or not\r\n _claims++;\r\n \r\n // claim application\r\n claimId = _newClaim(policyId, claimAmount, \"\");\r\n _policyIdToClaimId[policyId] = claimId;\r\n\r\n // Request response to greeting via oracle call\r\n bool immediateResponse = true;\r\n bytes memory queryData = abi.encode(_claims, immediateResponse);\r\n _request(\r\n policyId,\r\n queryData,\r\n ORACLE_CALLBACK_METHOD_NAME,\r\n _testOracleId\r\n );\r\n }\r\n\r\n function submitClaimNoOracle(bytes32 policyId, uint256 claimAmount) \r\n external\r\n onlyPolicyHolder(policyId)\r\n returns(uint256 claimId)\r\n {\r\n\r\n // increase claims counter\r\n // the oracle business logic will use this counter value \r\n // to determine if the claim is linked to a loss event or not\r\n _claims++;\r\n \r\n // claim application\r\n claimId = _newClaim(policyId, claimAmount, \"\");\r\n _policyIdToClaimId[policyId] = claimId;\r\n }\r\n \r\n function submitClaimWithDeferredResponse(bytes32 policyId, uint256 claimAmount) \r\n external\r\n onlyPolicyHolder(policyId)\r\n returns(uint256 claimId, uint256 requestId)\r\n {\r\n\r\n // increase claims counter\r\n // the oracle business logic will use this counter value \r\n // to determine if the claim is linked to a loss event or not\r\n _claims++;\r\n \r\n // claim application\r\n claimId = _newClaim(policyId, claimAmount, \"\");\r\n _policyIdToClaimId[policyId] = claimId;\r\n\r\n // Request response to greeting via oracle call\r\n bool immediateResponse = false;\r\n bytes memory queryData = abi.encode(_claims, immediateResponse);\r\n requestId = _request(\r\n policyId,\r\n queryData,\r\n ORACLE_CALLBACK_METHOD_NAME,\r\n _testOracleId\r\n );\r\n }\r\n\r\n function confirmClaim(\r\n bytes32 policyId, \r\n uint256 claimId, \r\n uint256 confirmedAmount\r\n ) \r\n external\r\n onlyOwner\r\n {\r\n _confirmClaim(policyId, claimId, confirmedAmount);\r\n }\r\n\r\n function declineClaim(\r\n bytes32 policyId, \r\n uint256 claimId\r\n ) \r\n external\r\n onlyOwner\r\n {\r\n _declineClaim(policyId, claimId);\r\n }\r\n\r\n function closeClaim(\r\n bytes32 policyId, \r\n uint256 claimId\r\n ) \r\n external\r\n onlyOwner\r\n {\r\n _closeClaim(policyId, claimId);\r\n }\r\n\r\n function createPayout(\r\n bytes32 policyId, \r\n uint256 claimId, \r\n uint256 payoutAmount\r\n ) \r\n external\r\n onlyOwner\r\n returns(uint256 payoutId)\r\n {\r\n payoutId = _newPayout(\r\n policyId, \r\n claimId, \r\n payoutAmount, \r\n abi.encode(0));\r\n \r\n _processPayout(policyId, payoutId);\r\n }\r\n\r\n function newPayout(\r\n bytes32 policyId, \r\n uint256 claimId, \r\n uint256 payoutAmount\r\n ) \r\n external\r\n onlyOwner\r\n returns(uint256 payoutId)\r\n {\r\n payoutId = _newPayout(\r\n policyId, \r\n claimId, \r\n payoutAmount, \r\n abi.encode(0));\r\n }\r\n\r\n function processPayout(\r\n bytes32 policyId, \r\n uint256 payoutId\r\n ) \r\n external\r\n onlyOwner\r\n {\r\n _processPayout(policyId, payoutId);\r\n }\r\n\r\n function oracleCallback(\r\n uint256 requestId, \r\n bytes32 policyId, \r\n bytes calldata responseData\r\n )\r\n external\r\n onlyOracle\r\n {\r\n emit LogTestOracleCallbackReceived(requestId, policyId, responseData);\r\n\r\n // get oracle response data\r\n (bool isLossEvent) = abi.decode(responseData, (bool));\r\n uint256 claimId = _policyIdToClaimId[policyId];\r\n\r\n // claim handling if there is a loss\r\n if (isLossEvent) {\r\n // get policy and claims info for oracle response\r\n _getApplication(policyId);\r\n\r\n IPolicy.Claim memory claim \r\n = _getClaim(policyId, claimId);\r\n\r\n // specify payout data\r\n uint256 confirmedAmount = claim.claimAmount;\r\n _confirmClaim(policyId, claimId, confirmedAmount);\r\n\r\n // create payout record\r\n uint256 payoutAmount = confirmedAmount;\r\n bytes memory payoutData = abi.encode(0);\r\n uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, payoutData);\r\n _policyIdToPayoutId[policyId] = payoutId;\r\n\r\n _processPayout(policyId, payoutId);\r\n\r\n // TODO refactor to payout using erc-20 token\r\n // actual transfer of funds for payout of claim\r\n // failing requires not visible when called via .call in querycontroller\r\n // policyHolder.transfer(payoutAmount);\r\n } else {\r\n _declineClaim(policyId, claimId);\r\n }\r\n }\r\n\r\n function getClaimId(bytes32 policyId) external view returns (uint256) { return _policyIdToClaimId[policyId]; }\r\n function getPayoutId(bytes32 policyId) external view returns (uint256) { return _policyIdToPayoutId[policyId]; }\r\n function applications() external view returns (uint256) { return _applications.length; }\r\n function policies() external view returns (uint256) { return _policies.length; }\r\n function claims() external view returns (uint256) { return _claims; }\r\n}"},"contracts/test/TestRegistryCompromisedController.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\ncontract TestRegistryCompromisedController {\r\n\r\n bytes32 public constant POLICY = bytes32(\"Policy\");\r\n bytes32 public constant QUERY = bytes32(\"Query\");\r\n\r\n mapping(bytes32 => address) public contracts;\r\n\r\n function getContract(bytes32 contractName)\r\n external\r\n view\r\n returns (address moduleAddress)\r\n {\r\n moduleAddress = contracts[contractName];\r\n }\r\n\r\n function upgradeToV2(\r\n address compromisedPolicyModuleAddress, \r\n address originalQueryModuleAddress\r\n ) \r\n public \r\n { \r\n contracts[POLICY] = compromisedPolicyModuleAddress;\r\n contracts[QUERY] = originalQueryModuleAddress;\r\n }\r\n}\r\n"},"contracts/test/TestRegistryControllerUpdated.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../modules/RegistryController.sol\";\r\n\r\n\r\ncontract TestRegistryControllerUpdated is RegistryController {\r\n\r\n string message;\r\n bool upgradeV2;\r\n\r\n function setMessage(string memory _message) public onlyInstanceOperator { message = _message; }\r\n function getMessage() public view returns (string memory) { return message; }\r\n\r\n function upgradeToV2(string memory _message) public { \r\n require(!upgradeV2, \"ERROR:REC-102:UPGRADE_ONCE_OMLY\");\r\n upgradeV2 = true;\r\n\r\n setMessage(_message); \r\n }\r\n}\r\n"},"contracts/test/TestRiskpool.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IBundle.sol\";\r\nimport \"@etherisc/gif-interface/contracts/modules/IPolicy.sol\";\r\n\r\ncontract TestRiskpool is BasicRiskpool {\r\n\r\n uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24;\r\n\r\n constructor(\r\n bytes32 name,\r\n uint256 collateralization,\r\n address erc20Token,\r\n address wallet,\r\n address registry\r\n )\r\n BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry)\r\n { }\r\n\r\n // trivial implementation that matches every application\r\n function bundleMatchesApplication(\r\n IBundle.Bundle memory bundle, \r\n IPolicy.Application memory application\r\n ) \r\n public override\r\n pure\r\n returns(bool isMatching) \r\n {\r\n isMatching = true;\r\n }\r\n\r\n}"},"contracts/test/TestTransferFrom.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\r\npragma solidity 0.8.2;\r\n\r\nimport \"../shared/TransferHelper.sol\";\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\n\r\ncontract TestTransferFrom {\r\n\r\n event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to);\r\n event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance);\r\n event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData);\r\n\r\n function unifiedTransferFrom(\r\n IERC20 token, \r\n address from, \r\n address to, \r\n uint256 amount\r\n ) \r\n external \r\n returns(bool)\r\n {\r\n return TransferHelper.unifiedTransferFrom(token, from, to, amount);\r\n }\r\n\r\n}\r\n"},"contracts/tokens/BundleToken.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/ERC721.sol\";\n\nimport \"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\";\n\ncontract BundleToken is \n IBundleToken,\n ERC721,\n Ownable\n{\n string public constant NAME = \"GIF Bundle Token\";\n string public constant SYMBOL = \"BTK\";\n\n mapping(uint256 /** tokenId */ => uint256 /** bundleId */) public bundleIdForTokenId;\n address private _bundleModule;\n uint256 private _totalSupply;\n\n modifier onlyBundleModule() {\n require(_bundleModule != address(0), \"ERROR:BTK-001:NOT_INITIALIZED\");\n require(_msgSender() == _bundleModule, \"ERROR:BTK-002:NOT_BUNDLE_MODULE\");\n _;\n }\n\n constructor() ERC721(NAME, SYMBOL) Ownable() { }\n\n function setBundleModule(address bundleModule)\n external\n {\n require(_bundleModule == address(0), \"ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED\");\n require(bundleModule != address(0), \"ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS\");\n _bundleModule = bundleModule;\n }\n\n\n function mint(uint256 bundleId, address to) \n external\n onlyBundleModule\n returns(uint256 tokenId)\n {\n _totalSupply++;\n tokenId = _totalSupply;\n bundleIdForTokenId[tokenId] = bundleId; \n \n _safeMint(to, tokenId);\n \n emit LogBundleTokenMinted(bundleId, tokenId, to); \n }\n\n\n function burn(uint256 tokenId) \n external\n onlyBundleModule\n {\n require(_exists(tokenId), \"ERROR:BTK-005:TOKEN_ID_INVALID\"); \n _burn(tokenId);\n \n emit LogBundleTokenBurned(bundleIdForTokenId[tokenId], tokenId); \n }\n\n function burned(uint tokenId) \n external override\n view \n returns(bool isBurned)\n {\n isBurned = tokenId <= _totalSupply && !_exists(tokenId);\n }\n\n function getBundleId(uint256 tokenId) external override view returns(uint256) { return bundleIdForTokenId[tokenId]; }\n function getBundleModuleAddress() external view returns(address) { return _bundleModule; }\n\n function exists(uint256 tokenId) external override view returns(bool) { return tokenId <= _totalSupply; }\n function totalSupply() external override view returns(uint256 tokenCount) { return _totalSupply; }\n}\n"},"contracts/tokens/RiskpoolToken.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\n\ncontract RiskpoolToken is\n ERC20\n{\n string public constant NAME = \"GIF Riskpool Token\";\n string public constant SYMBOL = \"RPT\";\n\n constructor() \n ERC20(NAME, SYMBOL)\n {\n\n }\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"8760","formattedMessage":"Warning: This declaration has the same name as another declaration.\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:20:5:\n |\n20 | address owner\n | ^^^^^^^^^^^^^\nNote: The other declaration is here:\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:29:3:\n |\n29 | function owner(bytes32 node) external view returns (address);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This declaration has the same name as another declaration.","secondarySourceLocations":[{"end":911,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","message":"The other declaration is here:","start":850}],"severity":"warning","sourceLocation":{"end":651,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","start":638},"type":"Warning"},{"component":"general","errorCode":"8760","formattedMessage":"Warning: This declaration has the same name as another declaration.\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:23:38:\n |\n23 | function setResolver(bytes32 node, address resolver) external;\n | ^^^^^^^^^^^^^^^^\nNote: The other declaration is here:\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:31:3:\n |\n31 | function resolver(bytes32 node) external view returns (address);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This declaration has the same name as another declaration.","secondarySourceLocations":[{"end":979,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","message":"The other declaration is here:","start":915}],"severity":"warning","sourceLocation":{"end":720,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","start":704},"type":"Warning"},{"component":"general","errorCode":"8760","formattedMessage":"Warning: This declaration has the same name as another declaration.\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:25:35:\n |\n25 | function setOwner(bytes32 node, address owner) external;\n | ^^^^^^^^^^^^^\nNote: The other declaration is here:\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:29:3:\n |\n29 | function owner(bytes32 node) external view returns (address);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This declaration has the same name as another declaration.","secondarySourceLocations":[{"end":911,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","message":"The other declaration is here:","start":850}],"severity":"warning","sourceLocation":{"end":780,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","start":767},"type":"Warning"},{"component":"general","errorCode":"8760","formattedMessage":"Warning: This declaration has the same name as another declaration.\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:27:33:\n |\n27 | function setTTL(bytes32 node, uint64 ttl) external;\n | ^^^^^^^^^^\nNote: The other declaration is here:\n --> @chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol:33:3:\n |\n33 | function ttl(bytes32 node) external view returns (uint64);\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"This declaration has the same name as another declaration.","secondarySourceLocations":[{"end":1041,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","message":"The other declaration is here:","start":983}],"severity":"warning","sourceLocation":{"end":835,"file":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","start":825},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/examples/AyiiRiskpool.sol:53:9:\n |\n53 | IBundle.Bundle memory bundle, \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1571,"file":"contracts/examples/AyiiRiskpool.sol","start":1543},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/examples/AyiiRiskpool.sol:54:9:\n |\n54 | IPolicy.Application memory application\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1621,"file":"contracts/examples/AyiiRiskpool.sol","start":1583},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/modules/BundleController.sol:269:17:\n |\n269 | returns(uint256 remainingCollateralAmount)\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":11110,"file":"contracts/modules/BundleController.sol","start":11077},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/modules/TreasuryModule.sol:177:9:\n |\n177 | IComponent component = _component.getComponent(riskpoolId);\n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":8127,"file":"contracts/modules/TreasuryModule.sol","start":8107},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/modules/TreasuryModule.sol:330:10:\n |\n330 | (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId);\n | ^^^^^^^^^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":13709,"file":"contracts/modules/TreasuryModule.sol","start":13691},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/flows/PolicyDefaultFlow.sol:267:13:\n |\n267 | bool success,\n | ^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":8487,"file":"contracts/flows/PolicyDefaultFlow.sol","start":8475},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceOperatorService.sol:173:9:\n |\n173 | uint16 componentType, \n | ^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":4901,"file":"contracts/services/InstanceOperatorService.sol","start":4881},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceOperatorService.sol:174:9:\n |\n174 | bytes calldata data\n | ^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":4931,"file":"contracts/services/InstanceOperatorService.sol","start":4912},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceOperatorService.sol:184:9:\n |\n184 | uint256 id, \n | ^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":5182,"file":"contracts/services/InstanceOperatorService.sol","start":5172},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceOperatorService.sol:185:9:\n |\n185 | bytes calldata data\n | ^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":5212,"file":"contracts/services/InstanceOperatorService.sol","start":5193},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceService.sol:204:37:\n |\n204 | function getStakingRequirements(uint256 id) \n | ^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":7688,"file":"contracts/services/InstanceService.sol","start":7678},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceService.sol:207:17:\n |\n207 | returns(bytes memory data) \n | ^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":7765,"file":"contracts/services/InstanceService.sol","start":7748},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceService.sol:212:30:\n |\n212 | function getStakedAssets(uint256 id)\n | ^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":7874,"file":"contracts/services/InstanceService.sol","start":7864},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/services/InstanceService.sol:215:17:\n |\n215 | returns(bytes memory data) \n | ^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":7950,"file":"contracts/services/InstanceService.sol","start":7933},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/services/RiskpoolService.sol:132:10:\n |\n132 | (uint256 fee, uint256 netCapital) = _treasury.processCapital(bundleId, initialCapital);\n | ^^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":4350,"file":"contracts/services/RiskpoolService.sol","start":4339},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/services/RiskpoolService.sol:221:10:\n |\n221 | (uint256 feeAmount, uint256 netAmount) = _treasury.processWithdrawal(bundleId, bundle.balance);\n | ^^^^^^^^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":7175,"file":"contracts/services/RiskpoolService.sol","start":7158},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/test/TestRiskpool.sol:24:9:\n |\n24 | IBundle.Bundle memory bundle, \n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":795,"file":"contracts/test/TestRiskpool.sol","start":767},"type":"Warning"},{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/test/TestRiskpool.sol:25:9:\n |\n25 | IPolicy.Application memory application\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":845,"file":"contracts/test/TestRiskpool.sol","start":807},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/examples/AyiiProduct.sol:536:5:\n |\n536 | function _validateRiskParameters(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":18909,"file":"contracts/examples/AyiiProduct.sol","start":18095},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to view\n --> contracts/services/ComponentOwnerService.sol:49:5:\n |\n49 | function stake(uint256 id) \n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to view","severity":"warning","sourceLocation":{"end":2026,"file":"contracts/services/ComponentOwnerService.sol","start":1869},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to view\n --> contracts/services/ComponentOwnerService.sol:56:5:\n |\n56 | function withdraw(uint256 id) \n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to view","severity":"warning","sourceLocation":{"end":2193,"file":"contracts/services/ComponentOwnerService.sol","start":2034},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to view\n --> contracts/services/InstanceOperatorService.sol:172:5:\n |\n172 | function setDefaultStaking(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to view","severity":"warning","sourceLocation":{"end":5066,"file":"contracts/services/InstanceOperatorService.sol","start":4845},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to view\n --> contracts/services/InstanceOperatorService.sol:183:5:\n |\n183 | function adjustStakingRequirements(\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to view","severity":"warning","sourceLocation":{"end":5347,"file":"contracts/services/InstanceOperatorService.sol","start":5128},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:134:5:\n |\n134 | function getApplicationDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":4851,"file":"contracts/test/TestCompromisedProduct.sol","start":4738},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:135:5:\n |\n135 | function getClaimDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":4964,"file":"contracts/test/TestCompromisedProduct.sol","start":4857},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:136:5:\n |\n136 | function getPayoutDataStructure() external override view returns(string memory dataStructure) { return \"\"; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":5078,"file":"contracts/test/TestCompromisedProduct.sol","start":4970},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:145:5:\n |\n145 | function getType() external override view returns(ComponentType) { return IComponent.ComponentType.Product; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":5615,"file":"contracts/test/TestCompromisedProduct.sol","start":5506},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:146:5:\n |\n146 | function getState() external override view returns(ComponentState) { return IComponent.ComponentState.Active; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":5732,"file":"contracts/test/TestCompromisedProduct.sol","start":5621},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:150:5:\n |\n150 | function isProduct() public override view returns(bool) { return true; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":5989,"file":"contracts/test/TestCompromisedProduct.sol","start":5917},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:151:5:\n |\n151 | function isOracle() public override view returns(bool) { return false; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":6067,"file":"contracts/test/TestCompromisedProduct.sol","start":5995},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestCompromisedProduct.sol:152:5:\n |\n152 | function isRiskpool() public override view returns(bool) { return false; }\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":6147,"file":"contracts/test/TestCompromisedProduct.sol","start":6073},"type":"Warning"},{"component":"general","errorCode":"2018","formattedMessage":"Warning: Function state mutability can be restricted to pure\n --> contracts/test/TestOracle.sol:52:5:\n |\n52 | function _oracleCalculation(uint256 counter) internal returns (bool isLossEvent) {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n","message":"Function state mutability can be restricted to pure","severity":"warning","sourceLocation":{"end":1838,"file":"contracts/test/TestOracle.sol","start":1706},"type":"Warning"}],"sources":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","exportedSymbols":{"BufferChainlink":[1718],"CBORChainlink":[2165],"Chainlink":[268]},"id":269,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:0"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","file":"./vendor/CBORChainlink.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":2166,"src":"57:57:0","symbolAliases":[{"foreign":{"id":2,"name":"CBORChainlink","nodeType":"Identifier","overloadedDeclarations":[],"src":"65:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./vendor/BufferChainlink.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":269,"sourceUnit":1719,"src":"115:61:0","symbolAliases":[{"foreign":{"id":4,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"src":"123:15:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"178:114:0","text":" @title Library for common Chainlink functions\n @dev Uses imported CBOR library for encoding to buffer"},"fullyImplemented":true,"id":268,"linearizedBaseContracts":[268],"name":"Chainlink","nameLocation":"301:9:0","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":9,"mutability":"constant","name":"defaultBufferSize","nameLocation":"341:17:0","nodeType":"VariableDeclaration","scope":268,"src":"315:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"323536","id":8,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"361:3:0","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"internal"},{"id":13,"libraryName":{"id":10,"name":"CBORChainlink","nodeType":"IdentifierPath","referencedDeclaration":2165,"src":"420:13:0"},"nodeType":"UsingForDirective","src":"414:47:0","typeName":{"id":12,"nodeType":"UserDefinedTypeName","pathNode":{"id":11,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"438:22:0"},"referencedDeclaration":1204,"src":"438:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"canonicalName":"Chainlink.Request","id":25,"members":[{"constant":false,"id":15,"mutability":"mutable","name":"id","nameLocation":"494:2:0","nodeType":"VariableDeclaration","scope":25,"src":"486:10:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14,"name":"bytes32","nodeType":"ElementaryTypeName","src":"486:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":17,"mutability":"mutable","name":"callbackAddress","nameLocation":"510:15:0","nodeType":"VariableDeclaration","scope":25,"src":"502:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"502:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"538:18:0","nodeType":"VariableDeclaration","scope":25,"src":"531:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":18,"name":"bytes4","nodeType":"ElementaryTypeName","src":"531:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"nonce","nameLocation":"570:5:0","nodeType":"VariableDeclaration","scope":25,"src":"562:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24,"mutability":"mutable","name":"buf","nameLocation":"604:3:0","nodeType":"VariableDeclaration","scope":25,"src":"581:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":23,"nodeType":"UserDefinedTypeName","pathNode":{"id":22,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"581:22:0"},"referencedDeclaration":1204,"src":"581:22:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"name":"Request","nameLocation":"472:7:0","nodeType":"StructDefinition","scope":268,"src":"465:147:0","visibility":"public"},{"body":{"id":69,"nodeType":"Block","src":"1155:183:0","statements":[{"expression":{"arguments":[{"expression":{"id":44,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1182:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":45,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1182:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":46,"name":"defaultBufferSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9,"src":"1192:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":41,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"1161:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1718_$","typeString":"type(library BufferChainlink)"}},"id":43,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"1161:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1161:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":48,"nodeType":"ExpressionStatement","src":"1161:49:0"},{"expression":{"id":53,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1216:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":51,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"1216:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31,"src":"1226:5:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1216:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54,"nodeType":"ExpressionStatement","src":"1216:15:0"},{"expression":{"id":59,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":55,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1237:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":57,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbackAddress","nodeType":"MemberAccess","referencedDeclaration":17,"src":"1237:20:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":58,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"1260:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1237:35:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":60,"nodeType":"ExpressionStatement","src":"1237:35:0"},{"expression":{"id":65,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":61,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1278:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":63,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"1278:23:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":64,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"1304:12:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1278:38:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":66,"nodeType":"ExpressionStatement","src":"1278:38:0"},{"expression":{"id":67,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29,"src":"1329:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":40,"id":68,"nodeType":"Return","src":"1322:11:0"}]},"documentation":{"id":26,"nodeType":"StructuredDocumentation","src":"616:368:0","text":" @notice Initializes a Chainlink request\n @dev Sets the ID, callback address, and callback function signature on the request\n @param self The uninitialized request\n @param jobId The Job Specification ID\n @param callbackAddr The callback address\n @param callbackFunc The callback function signature\n @return The initialized request"},"id":70,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"996:10:0","nodeType":"FunctionDefinition","parameters":{"id":36,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29,"mutability":"mutable","name":"self","nameLocation":"1027:4:0","nodeType":"VariableDeclaration","scope":70,"src":"1012:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":28,"nodeType":"UserDefinedTypeName","pathNode":{"id":27,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1012:7:0"},"referencedDeclaration":25,"src":"1012:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":31,"mutability":"mutable","name":"jobId","nameLocation":"1045:5:0","nodeType":"VariableDeclaration","scope":70,"src":"1037:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":30,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1037:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":33,"mutability":"mutable","name":"callbackAddr","nameLocation":"1064:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1056:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35,"mutability":"mutable","name":"callbackFunc","nameLocation":"1089:12:0","nodeType":"VariableDeclaration","scope":70,"src":"1082:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":34,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1082:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1006:99:0"},"returnParameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70,"src":"1129:24:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":38,"nodeType":"UserDefinedTypeName","pathNode":{"id":37,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1129:17:0"},"referencedDeclaration":25,"src":"1129:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1128:26:0"},"scope":268,"src":"987:351:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":96,"nodeType":"Block","src":"1648:98:0","statements":[{"expression":{"arguments":[{"expression":{"id":82,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1675:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":83,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1675:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"id":84,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1685:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":85,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1685:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"1654:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1718_$","typeString":"type(library BufferChainlink)"}},"id":81,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"init","nodeType":"MemberAccess","referencedDeclaration":1242,"src":"1654:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":86,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1654:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":87,"nodeType":"ExpressionStatement","src":"1654:43:0"},{"expression":{"arguments":[{"expression":{"id":91,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"1726:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":92,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"1726:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":93,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1736:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":88,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1718,"src":"1703:15:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BufferChainlink_$1718_$","typeString":"type(library BufferChainlink)"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1461,"src":"1703:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1703:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":95,"nodeType":"ExpressionStatement","src":"1703:38:0"}]},"documentation":{"id":71,"nodeType":"StructuredDocumentation","src":"1342:230:0","text":" @notice Sets the data for the buffer without encoding CBOR on-chain\n @dev CBOR can be closed with curly-brackets {} or they can be left off\n @param self The initialized request\n @param data The CBOR data"},"id":97,"implemented":true,"kind":"function","modifiers":[],"name":"setBuffer","nameLocation":"1584:9:0","nodeType":"FunctionDefinition","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"self","nameLocation":"1609:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1594:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":73,"nodeType":"UserDefinedTypeName","pathNode":{"id":72,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1594:7:0"},"referencedDeclaration":25,"src":"1594:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":76,"mutability":"mutable","name":"data","nameLocation":"1628:4:0","nodeType":"VariableDeclaration","scope":97,"src":"1615:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75,"name":"bytes","nodeType":"ElementaryTypeName","src":"1615:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1593:40:0"},"returnParameters":{"id":78,"nodeType":"ParameterList","parameters":[],"src":"1648:0:0"},"scope":268,"src":"1575:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":124,"nodeType":"Block","src":"2055:71:0","statements":[{"expression":{"arguments":[{"id":113,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2083:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":108,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2061:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2061:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":112,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"2061:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2061:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":115,"nodeType":"ExpressionStatement","src":"2061:26:0"},{"expression":{"arguments":[{"id":121,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":105,"src":"2115:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":116,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2093:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2093:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"2093:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2093:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":123,"nodeType":"ExpressionStatement","src":"2093:28:0"}]},"documentation":{"id":98,"nodeType":"StructuredDocumentation","src":"1750:198:0","text":" @notice Adds a string value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The string value to add"},"id":125,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"1960:3:0","nodeType":"FunctionDefinition","parameters":{"id":106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"self","nameLocation":"1984:4:0","nodeType":"VariableDeclaration","scope":125,"src":"1969:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":100,"nodeType":"UserDefinedTypeName","pathNode":{"id":99,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1969:7:0"},"referencedDeclaration":25,"src":"1969:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":103,"mutability":"mutable","name":"key","nameLocation":"2008:3:0","nodeType":"VariableDeclaration","scope":125,"src":"1994:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":102,"name":"string","nodeType":"ElementaryTypeName","src":"1994:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":105,"mutability":"mutable","name":"value","nameLocation":"2031:5:0","nodeType":"VariableDeclaration","scope":125,"src":"2017:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":104,"name":"string","nodeType":"ElementaryTypeName","src":"2017:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1963:77:0"},"returnParameters":{"id":107,"nodeType":"ParameterList","parameters":[],"src":"2055:0:0"},"scope":268,"src":"1951:175:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":152,"nodeType":"Block","src":"2437:70:0","statements":[{"expression":{"arguments":[{"id":141,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"2465:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":136,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2443:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2443:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"2443:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2443:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":143,"nodeType":"ExpressionStatement","src":"2443:26:0"},{"expression":{"arguments":[{"id":149,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"2496:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":144,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"2475:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2475:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeBytes","nodeType":"MemberAccess","referencedDeclaration":2029,"src":"2475:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2475:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":151,"nodeType":"ExpressionStatement","src":"2475:27:0"}]},"documentation":{"id":126,"nodeType":"StructuredDocumentation","src":"2130:196:0","text":" @notice Adds a bytes value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The bytes value to add"},"id":153,"implemented":true,"kind":"function","modifiers":[],"name":"addBytes","nameLocation":"2338:8:0","nodeType":"FunctionDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"self","nameLocation":"2367:4:0","nodeType":"VariableDeclaration","scope":153,"src":"2352:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":128,"nodeType":"UserDefinedTypeName","pathNode":{"id":127,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2352:7:0"},"referencedDeclaration":25,"src":"2352:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":131,"mutability":"mutable","name":"key","nameLocation":"2391:3:0","nodeType":"VariableDeclaration","scope":153,"src":"2377:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":130,"name":"string","nodeType":"ElementaryTypeName","src":"2377:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"value","nameLocation":"2413:5:0","nodeType":"VariableDeclaration","scope":153,"src":"2400:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":132,"name":"bytes","nodeType":"ElementaryTypeName","src":"2400:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2346:76:0"},"returnParameters":{"id":135,"nodeType":"ParameterList","parameters":[],"src":"2437:0:0"},"scope":268,"src":"2329:178:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":180,"nodeType":"Block","src":"2812:68:0","statements":[{"expression":{"arguments":[{"id":169,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":159,"src":"2840:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":164,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2818:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2818:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"2818:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2818:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":171,"nodeType":"ExpressionStatement","src":"2818:26:0"},{"expression":{"arguments":[{"id":177,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"2869:5:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"expression":{"id":172,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":157,"src":"2850:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"2850:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeInt","nodeType":"MemberAccess","referencedDeclaration":2004,"src":"2850:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_int256_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2850:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":179,"nodeType":"ExpressionStatement","src":"2850:25:0"}]},"documentation":{"id":154,"nodeType":"StructuredDocumentation","src":"2511:198:0","text":" @notice Adds a int256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The int256 value to add"},"id":181,"implemented":true,"kind":"function","modifiers":[],"name":"addInt","nameLocation":"2721:6:0","nodeType":"FunctionDefinition","parameters":{"id":162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":157,"mutability":"mutable","name":"self","nameLocation":"2748:4:0","nodeType":"VariableDeclaration","scope":181,"src":"2733:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":156,"nodeType":"UserDefinedTypeName","pathNode":{"id":155,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2733:7:0"},"referencedDeclaration":25,"src":"2733:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":159,"mutability":"mutable","name":"key","nameLocation":"2772:3:0","nodeType":"VariableDeclaration","scope":181,"src":"2758:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":158,"name":"string","nodeType":"ElementaryTypeName","src":"2758:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":161,"mutability":"mutable","name":"value","nameLocation":"2788:5:0","nodeType":"VariableDeclaration","scope":181,"src":"2781:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":160,"name":"int256","nodeType":"ElementaryTypeName","src":"2781:6:0","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2727:70:0"},"returnParameters":{"id":163,"nodeType":"ParameterList","parameters":[],"src":"2812:0:0"},"scope":268,"src":"2712:168:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":208,"nodeType":"Block","src":"3189:69:0","statements":[{"expression":{"arguments":[{"id":197,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":187,"src":"3217:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":192,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3195:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3195:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"3195:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3195:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":199,"nodeType":"ExpressionStatement","src":"3195:26:0"},{"expression":{"arguments":[{"id":205,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"3247:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":185,"src":"3227:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3227:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeUInt","nodeType":"MemberAccess","referencedDeclaration":1938,"src":"3227:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3227:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":207,"nodeType":"ExpressionStatement","src":"3227:26:0"}]},"documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"2884:200:0","text":" @notice Adds a uint256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The uint256 value to add"},"id":209,"implemented":true,"kind":"function","modifiers":[],"name":"addUint","nameLocation":"3096:7:0","nodeType":"FunctionDefinition","parameters":{"id":190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"self","nameLocation":"3124:4:0","nodeType":"VariableDeclaration","scope":209,"src":"3109:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":184,"nodeType":"UserDefinedTypeName","pathNode":{"id":183,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3109:7:0"},"referencedDeclaration":25,"src":"3109:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":187,"mutability":"mutable","name":"key","nameLocation":"3148:3:0","nodeType":"VariableDeclaration","scope":209,"src":"3134:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":186,"name":"string","nodeType":"ElementaryTypeName","src":"3134:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":189,"mutability":"mutable","name":"value","nameLocation":"3165:5:0","nodeType":"VariableDeclaration","scope":209,"src":"3157:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":188,"name":"uint256","nodeType":"ElementaryTypeName","src":"3157:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3103:71:0"},"returnParameters":{"id":191,"nodeType":"ParameterList","parameters":[],"src":"3189:0:0"},"scope":268,"src":"3087:171:0","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":266,"nodeType":"Block","src":"3597:188:0","statements":[{"expression":{"arguments":[{"id":226,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":215,"src":"3625:3:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":221,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3603:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3603:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"3603:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3603:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":228,"nodeType":"ExpressionStatement","src":"3603:26:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":229,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3635:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3635:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startArray","nodeType":"MemberAccess","referencedDeclaration":2140,"src":"3635:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3635:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":235,"nodeType":"ExpressionStatement","src":"3635:21:0"},{"body":{"id":257,"nodeType":"Block","src":"3706:47:0","statements":[{"expression":{"arguments":[{"baseExpression":{"id":252,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3736:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":254,"indexExpression":{"id":253,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3743:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3736:9:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"expression":{"id":247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3714:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3714:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"encodeString","nodeType":"MemberAccess","referencedDeclaration":2128,"src":"3714:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,string memory) pure"}},"id":255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3714:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":256,"nodeType":"ExpressionStatement","src":"3714:32:0"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3682:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":241,"name":"values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"3686:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3686:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3682:17:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":258,"initializationExpression":{"assignments":[237],"declarations":[{"constant":false,"id":237,"mutability":"mutable","name":"i","nameLocation":"3675:1:0","nodeType":"VariableDeclaration","scope":258,"src":"3667:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":236,"name":"uint256","nodeType":"ElementaryTypeName","src":"3667:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":239,"initialValue":{"hexValue":"30","id":238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3679:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3667:13:0"},"loopExpression":{"expression":{"id":245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3701:3:0","subExpression":{"id":244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":237,"src":"3701:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":246,"nodeType":"ExpressionStatement","src":"3701:3:0"},"nodeType":"ForStatement","src":"3662:91:0"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":259,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":213,"src":"3758:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"3758:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endSequence","nodeType":"MemberAccess","referencedDeclaration":2164,"src":"3758:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory) pure"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3758:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":265,"nodeType":"ExpressionStatement","src":"3758:22:0"}]},"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"3262:214:0","text":" @notice Adds an array of strings to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param values The array of string values to add"},"id":267,"implemented":true,"kind":"function","modifiers":[],"name":"addStringArray","nameLocation":"3488:14:0","nodeType":"FunctionDefinition","parameters":{"id":219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":213,"mutability":"mutable","name":"self","nameLocation":"3523:4:0","nodeType":"VariableDeclaration","scope":267,"src":"3508:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":212,"nodeType":"UserDefinedTypeName","pathNode":{"id":211,"name":"Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3508:7:0"},"referencedDeclaration":25,"src":"3508:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":215,"mutability":"mutable","name":"key","nameLocation":"3547:3:0","nodeType":"VariableDeclaration","scope":267,"src":"3533:17:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":214,"name":"string","nodeType":"ElementaryTypeName","src":"3533:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":218,"mutability":"mutable","name":"values","nameLocation":"3572:6:0","nodeType":"VariableDeclaration","scope":267,"src":"3556:22:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":216,"name":"string","nodeType":"ElementaryTypeName","src":"3556:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":217,"nodeType":"ArrayTypeName","src":"3556:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"3502:80:0"},"returnParameters":{"id":220,"nodeType":"ParameterList","parameters":[],"src":"3597:0:0"},"scope":268,"src":"3479:306:0","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":269,"src":"293:3494:0"}],"src":"32:3756:0"},"id":0},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","exportedSymbols":{"BufferChainlink":[1718],"CBORChainlink":[2165],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[894],"ENSInterface":[974],"ENSResolver_Chainlink":[2175],"LinkTokenInterface":[1069],"OperatorInterface":[1149],"OracleInterface":[1188],"PointerInterface":[1196]},"id":862,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":270,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:1"},{"absolutePath":"@chainlink/contracts/src/v0.8/Chainlink.sol","file":"./Chainlink.sol","id":271,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":269,"src":"57:25:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","file":"./interfaces/ENSInterface.sol","id":272,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":975,"src":"83:39:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","file":"./interfaces/LinkTokenInterface.sol","id":273,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1070,"src":"123:45:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./interfaces/ChainlinkRequestInterface.sol","id":274,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":895,"src":"169:52:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","file":"./interfaces/OperatorInterface.sol","id":275,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1150,"src":"222:44:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","file":"./interfaces/PointerInterface.sol","id":276,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":1197,"src":"267:43:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","file":"./vendor/ENSResolver.sol","id":278,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":862,"sourceUnit":2176,"src":"311:78:1","symbolAliases":[{"foreign":{"id":277,"name":"ENSResolver","nodeType":"Identifier","overloadedDeclarations":[],"src":"319:11:1","typeDescriptions":{}},"local":"ENSResolver_Chainlink","nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":279,"nodeType":"StructuredDocumentation","src":"391:157:1","text":" @title The ChainlinkClient contract\n @notice Contract writers can inherit this contract in order to create requests for the\n Chainlink network"},"fullyImplemented":true,"id":861,"linearizedBaseContracts":[861],"name":"ChainlinkClient","nameLocation":"567:15:1","nodeType":"ContractDefinition","nodes":[{"id":283,"libraryName":{"id":280,"name":"Chainlink","nodeType":"IdentifierPath","referencedDeclaration":268,"src":"593:9:1"},"nodeType":"UsingForDirective","src":"587:38:1","typeName":{"id":282,"nodeType":"UserDefinedTypeName","pathNode":{"id":281,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"607:17:1"},"referencedDeclaration":25,"src":"607:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"constant":true,"id":288,"mutability":"constant","name":"LINK_DIVISIBILITY","nameLocation":"655:17:1","nodeType":"VariableDeclaration","scope":861,"src":"629:52:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":284,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"675:2:1","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"679:2:1","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"675:6:1","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"internal"},{"constant":true,"id":291,"mutability":"constant","name":"AMOUNT_OVERRIDE","nameLocation":"710:15:1","nodeType":"VariableDeclaration","scope":861,"src":"685:44:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":289,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"728:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":297,"mutability":"constant","name":"SENDER_OVERRIDE","nameLocation":"758:15:1","nodeType":"VariableDeclaration","scope":861,"src":"733:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":292,"name":"address","nodeType":"ElementaryTypeName","src":"733:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"30","id":295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"784:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"776:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":293,"name":"address","nodeType":"ElementaryTypeName","src":"776:7:1","typeDescriptions":{}}},"id":296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"776:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":true,"id":300,"mutability":"constant","name":"ORACLE_ARGS_VERSION","nameLocation":"815:19:1","nodeType":"VariableDeclaration","scope":861,"src":"790:48:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":298,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":303,"mutability":"constant","name":"OPERATOR_ARGS_VERSION","nameLocation":"867:21:1","nodeType":"VariableDeclaration","scope":861,"src":"842:50:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint256","nodeType":"ElementaryTypeName","src":"842:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"891:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":308,"mutability":"constant","name":"ENS_TOKEN_SUBNAME","nameLocation":"921:17:1","nodeType":"VariableDeclaration","scope":861,"src":"896:62:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"896:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6c696e6b","id":306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"951:6:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""},"value":"link"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90430203e2d9ce04f00738d355173358b054545ecb52218de9c6fb01cbd9aeaf","typeString":"literal_string \"link\""}],"id":305,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"941:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"941:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":313,"mutability":"constant","name":"ENS_ORACLE_SUBNAME","nameLocation":"987:18:1","nodeType":"VariableDeclaration","scope":861,"src":"962:65:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"962:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"6f7261636c65","id":311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1018:8:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""},"value":"oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89cbf5af14e0328a3cd3a734f92c3832d729d431da79b7873a62cbeebd37beb6","typeString":"literal_string \"oracle\""}],"id":310,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"1008:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1008:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":true,"id":316,"mutability":"constant","name":"LINK_TOKEN_POINTER","nameLocation":"1056:18:1","nodeType":"VariableDeclaration","scope":861,"src":"1031:88:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":314,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307843383962443445313633324433413433434230334141416435323632636265343033384263353731","id":315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:42:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571"},"visibility":"private"},{"constant":false,"id":319,"mutability":"mutable","name":"s_ens","nameLocation":"1145:5:1","nodeType":"VariableDeclaration","scope":861,"src":"1124:26:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"},"typeName":{"id":318,"nodeType":"UserDefinedTypeName","pathNode":{"id":317,"name":"ENSInterface","nodeType":"IdentifierPath","referencedDeclaration":974,"src":"1124:12:1"},"referencedDeclaration":974,"src":"1124:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"visibility":"private"},{"constant":false,"id":321,"mutability":"mutable","name":"s_ensNode","nameLocation":"1170:9:1","nodeType":"VariableDeclaration","scope":861,"src":"1154:25:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1154:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":324,"mutability":"mutable","name":"s_link","nameLocation":"1210:6:1","nodeType":"VariableDeclaration","scope":861,"src":"1183:33:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"},"typeName":{"id":323,"nodeType":"UserDefinedTypeName","pathNode":{"id":322,"name":"LinkTokenInterface","nodeType":"IdentifierPath","referencedDeclaration":1069,"src":"1183:18:1"},"referencedDeclaration":1069,"src":"1183:18:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}},"visibility":"private"},{"constant":false,"id":327,"mutability":"mutable","name":"s_oracle","nameLocation":"1246:8:1","nodeType":"VariableDeclaration","scope":861,"src":"1220:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"},"typeName":{"id":326,"nodeType":"UserDefinedTypeName","pathNode":{"id":325,"name":"OperatorInterface","nodeType":"IdentifierPath","referencedDeclaration":1149,"src":"1220:17:1"},"referencedDeclaration":1149,"src":"1220:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"visibility":"private"},{"constant":false,"id":330,"mutability":"mutable","name":"s_requestCount","nameLocation":"1274:14:1","nodeType":"VariableDeclaration","scope":861,"src":"1258:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":328,"name":"uint256","nodeType":"ElementaryTypeName","src":"1258:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1291:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":false,"id":334,"mutability":"mutable","name":"s_pendingRequests","nameLocation":"1332:17:1","nodeType":"VariableDeclaration","scope":861,"src":"1296:53:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":333,"keyType":{"id":331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1304:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1296:27:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":332,"name":"address","nodeType":"ElementaryTypeName","src":"1315:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"anonymous":false,"id":338,"name":"ChainlinkRequested","nameLocation":"1360:18:1","nodeType":"EventDefinition","parameters":{"id":337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":336,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1395:2:1","nodeType":"VariableDeclaration","scope":338,"src":"1379:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1379:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1378:20:1"},"src":"1354:45:1"},{"anonymous":false,"id":342,"name":"ChainlinkFulfilled","nameLocation":"1408:18:1","nodeType":"EventDefinition","parameters":{"id":341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":340,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1443:2:1","nodeType":"VariableDeclaration","scope":342,"src":"1427:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1427:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1426:20:1"},"src":"1402:45:1"},{"anonymous":false,"id":346,"name":"ChainlinkCancelled","nameLocation":"1456:18:1","nodeType":"EventDefinition","parameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":344,"indexed":true,"mutability":"mutable","name":"id","nameLocation":"1491:2:1","nodeType":"VariableDeclaration","scope":346,"src":"1475:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1475:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1474:20:1"},"src":"1450:45:1"},{"body":{"id":372,"nodeType":"Block","src":"2018:115:1","statements":[{"assignments":[363],"declarations":[{"constant":false,"id":363,"mutability":"mutable","name":"req","nameLocation":"2049:3:1","nodeType":"VariableDeclaration","scope":372,"src":"2024:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":362,"nodeType":"UserDefinedTypeName","pathNode":{"id":361,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2024:17:1"},"referencedDeclaration":25,"src":"2024:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":364,"nodeType":"VariableDeclarationStatement","src":"2024:28:1"},{"expression":{"arguments":[{"id":367,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"2080:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":368,"name":"callbackAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"2088:12:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":369,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":353,"src":"2102:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":365,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"2065:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2065:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2065:63:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":358,"id":371,"nodeType":"Return","src":"2058:70:1"}]},"documentation":{"id":347,"nodeType":"StructuredDocumentation","src":"1499:348:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackAddr address to operate the callback on\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":373,"implemented":true,"kind":"function","modifiers":[],"name":"buildChainlinkRequest","nameLocation":"1859:21:1","nodeType":"FunctionDefinition","parameters":{"id":354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":349,"mutability":"mutable","name":"specId","nameLocation":"1894:6:1","nodeType":"VariableDeclaration","scope":373,"src":"1886:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1886:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":351,"mutability":"mutable","name":"callbackAddr","nameLocation":"1914:12:1","nodeType":"VariableDeclaration","scope":373,"src":"1906:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":350,"name":"address","nodeType":"ElementaryTypeName","src":"1906:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":353,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"1939:25:1","nodeType":"VariableDeclaration","scope":373,"src":"1932:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":352,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1932:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1880:88:1"},"returnParameters":{"id":358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":373,"src":"1992:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":356,"nodeType":"UserDefinedTypeName","pathNode":{"id":355,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1992:17:1"},"referencedDeclaration":25,"src":"1992:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"1991:26:1"},"scope":861,"src":"1850:283:1","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":400,"nodeType":"Block","src":"2571:116:1","statements":[{"assignments":[388],"declarations":[{"constant":false,"id":388,"mutability":"mutable","name":"req","nameLocation":"2602:3:1","nodeType":"VariableDeclaration","scope":400,"src":"2577:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":387,"nodeType":"UserDefinedTypeName","pathNode":{"id":386,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2577:17:1"},"referencedDeclaration":25,"src":"2577:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":389,"nodeType":"VariableDeclarationStatement","src":"2577:28:1"},{"expression":{"arguments":[{"id":392,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":376,"src":"2633:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":395,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"2649:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2641:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":393,"name":"address","nodeType":"ElementaryTypeName","src":"2641:7:1","typeDescriptions":{}}},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2641:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":397,"name":"callbackFunctionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"2656:25:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":390,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"2618:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":70,"src":"2618:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2618:64:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"functionReturnParameters":383,"id":399,"nodeType":"Return","src":"2611:71:1"}]},"documentation":{"id":374,"nodeType":"StructuredDocumentation","src":"2137:288:1","text":" @notice Creates a request that can hold additional parameters\n @param specId The Job Specification ID that the request will be created for\n @param callbackFunctionSignature function signature to use for the callback\n @return A Chainlink Request struct in memory"},"id":401,"implemented":true,"kind":"function","modifiers":[],"name":"buildOperatorRequest","nameLocation":"2437:20:1","nodeType":"FunctionDefinition","parameters":{"id":379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":376,"mutability":"mutable","name":"specId","nameLocation":"2466:6:1","nodeType":"VariableDeclaration","scope":401,"src":"2458:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2458:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":378,"mutability":"mutable","name":"callbackFunctionSignature","nameLocation":"2481:25:1","nodeType":"VariableDeclaration","scope":401,"src":"2474:32:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":377,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2474:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2457:50:1"},"returnParameters":{"id":383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":401,"src":"2543:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":381,"nodeType":"UserDefinedTypeName","pathNode":{"id":380,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"2543:17:1"},"referencedDeclaration":25,"src":"2543:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"src":"2542:26:1"},"scope":861,"src":"2428:259:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":421,"nodeType":"Block","src":"3096:73:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":415,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"3140:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}],"id":414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3132:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":413,"name":"address","nodeType":"ElementaryTypeName","src":"3132:7:1","typeDescriptions":{}}},"id":416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3132:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":417,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":405,"src":"3151:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":418,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":407,"src":"3156:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":412,"name":"sendChainlinkRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":477,"src":"3109:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3109:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":411,"id":420,"nodeType":"Return","src":"3102:62:1"}]},"documentation":{"id":402,"nodeType":"StructuredDocumentation","src":"2691:298:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev Calls `chainlinkRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":422,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequest","nameLocation":"3001:20:1","nodeType":"FunctionDefinition","parameters":{"id":408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":405,"mutability":"mutable","name":"req","nameLocation":"3047:3:1","nodeType":"VariableDeclaration","scope":422,"src":"3022:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":404,"nodeType":"UserDefinedTypeName","pathNode":{"id":403,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3022:17:1"},"referencedDeclaration":25,"src":"3022:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":407,"mutability":"mutable","name":"payment","nameLocation":"3060:7:1","nodeType":"VariableDeclaration","scope":422,"src":"3052:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":406,"name":"uint256","nodeType":"ElementaryTypeName","src":"3052:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:47:1"},"returnParameters":{"id":411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":422,"src":"3087:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3087:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3086:9:1"},"scope":861,"src":"2992:177:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":476,"nodeType":"Block","src":"3842:601:1","statements":[{"assignments":[436],"declarations":[{"constant":false,"id":436,"mutability":"mutable","name":"nonce","nameLocation":"3856:5:1","nodeType":"VariableDeclaration","scope":476,"src":"3848:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3848:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":438,"initialValue":{"id":437,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3864:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3848:30:1"},{"expression":{"id":443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":439,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3884:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":440,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"3901:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3909:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3901:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3884:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":444,"nodeType":"ExpressionStatement","src":"3884:26:1"},{"assignments":[446],"declarations":[{"constant":false,"id":446,"mutability":"mutable","name":"encodedRequest","nameLocation":"3929:14:1","nodeType":"VariableDeclaration","scope":476,"src":"3916:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":445,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":468,"initialValue":{"arguments":[{"expression":{"expression":{"id":449,"name":"ChainlinkRequestInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":894,"src":"3976:25:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ChainlinkRequestInterface_$894_$","typeString":"type(contract ChainlinkRequestInterface)"}},"id":450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"oracleRequest","nodeType":"MemberAccess","referencedDeclaration":882,"src":"3976:39:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function ChainlinkRequestInterface.oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes calldata)"}},"id":451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"3976:48:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":452,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"4032:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":453,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"4140:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":454,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4245:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"4245:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":458,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"4267:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}],"id":457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4259:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":456,"name":"address","nodeType":"ElementaryTypeName","src":"4259:7:1","typeDescriptions":{}}},"id":459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4259:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":460,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4280:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"4280:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":462,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4310:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":463,"name":"ORACLE_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":300,"src":"4323:19:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":464,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"4350:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"4350:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"4350:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3946:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3946:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3946:421:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3916:451:1"},{"expression":{"arguments":[{"id":470,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"4392:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":471,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4407:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":472,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"4414:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":473,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"4423:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":469,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"4380:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4380:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":434,"id":475,"nodeType":"Return","src":"4373:65:1"}]},"documentation":{"id":423,"nodeType":"StructuredDocumentation","src":"3173:511:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":477,"implemented":true,"kind":"function","modifiers":[],"name":"sendChainlinkRequestTo","nameLocation":"3696:22:1","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":425,"mutability":"mutable","name":"oracleAddress","nameLocation":"3732:13:1","nodeType":"VariableDeclaration","scope":477,"src":"3724:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":424,"name":"address","nodeType":"ElementaryTypeName","src":"3724:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":428,"mutability":"mutable","name":"req","nameLocation":"3776:3:1","nodeType":"VariableDeclaration","scope":477,"src":"3751:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":427,"nodeType":"UserDefinedTypeName","pathNode":{"id":426,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"3751:17:1"},"referencedDeclaration":25,"src":"3751:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"payment","nameLocation":"3793:7:1","nodeType":"VariableDeclaration","scope":477,"src":"3785:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":429,"name":"uint256","nodeType":"ElementaryTypeName","src":"3785:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3718:86:1"},"returnParameters":{"id":434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":433,"mutability":"mutable","name":"requestId","nameLocation":"3831:9:1","nodeType":"VariableDeclaration","scope":477,"src":"3823:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3823:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3822:19:1"},"scope":861,"src":"3687:756:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":497,"nodeType":"Block","src":"4907:72:1","statements":[{"expression":{"arguments":[{"arguments":[{"id":491,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"4950:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}],"id":490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4942:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":489,"name":"address","nodeType":"ElementaryTypeName","src":"4942:7:1","typeDescriptions":{}}},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4942:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":493,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"4961:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":494,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":483,"src":"4966:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":488,"name":"sendOperatorRequestTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":549,"src":"4920:21:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4920:54:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":487,"id":496,"nodeType":"Return","src":"4913:61:1"}]},"documentation":{"id":478,"nodeType":"StructuredDocumentation","src":"4447:354:1","text":" @notice Creates a Chainlink request to the stored oracle address\n @dev This function supports multi-word response\n @dev Calls `sendOperatorRequestTo` with the stored oracle address\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":498,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequest","nameLocation":"4813:19:1","nodeType":"FunctionDefinition","parameters":{"id":484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"req","nameLocation":"4858:3:1","nodeType":"VariableDeclaration","scope":498,"src":"4833:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":480,"nodeType":"UserDefinedTypeName","pathNode":{"id":479,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"4833:17:1"},"referencedDeclaration":25,"src":"4833:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":483,"mutability":"mutable","name":"payment","nameLocation":"4871:7:1","nodeType":"VariableDeclaration","scope":498,"src":"4863:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":482,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4832:47:1"},"returnParameters":{"id":487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":498,"src":"4898:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4898:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4897:9:1"},"scope":861,"src":"4804:175:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":548,"nodeType":"Block","src":"5704:576:1","statements":[{"assignments":[512],"declarations":[{"constant":false,"id":512,"mutability":"mutable","name":"nonce","nameLocation":"5718:5:1","nodeType":"VariableDeclaration","scope":548,"src":"5710:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":511,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":514,"initialValue":{"id":513,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5726:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5710:30:1"},{"expression":{"id":519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":515,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"5746:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":516,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"5763:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5771:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5763:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5746:26:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":520,"nodeType":"ExpressionStatement","src":"5746:26:1"},{"assignments":[522],"declarations":[{"constant":false,"id":522,"mutability":"mutable","name":"encodedRequest","nameLocation":"5791:14:1","nodeType":"VariableDeclaration","scope":548,"src":"5778:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":521,"name":"bytes","nodeType":"ElementaryTypeName","src":"5778:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":540,"initialValue":{"arguments":[{"expression":{"expression":{"id":525,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"5838:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1149_$","typeString":"type(contract OperatorInterface)"}},"id":526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"operatorRequest","nodeType":"MemberAccess","referencedDeclaration":1094,"src":"5838:33:1","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function OperatorInterface.operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes calldata)"}},"id":527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"5838:42:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":528,"name":"SENDER_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":297,"src":"5888:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":529,"name":"AMOUNT_OVERRIDE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"5996:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":530,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6101:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":15,"src":"6101:6:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":532,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6115:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbackFunctionId","nodeType":"MemberAccess","referencedDeclaration":19,"src":"6115:22:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":534,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6145:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":535,"name":"OPERATOR_ARGS_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":303,"src":"6158:21:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":536,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":504,"src":"6187:3:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":24,"src":"6187:7:1","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"6187:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":523,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"5808:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"5808:22:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5808:396:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5778:426:1"},{"expression":{"arguments":[{"id":542,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":501,"src":"6229:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":543,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":512,"src":"6244:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":544,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":506,"src":"6251:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":545,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":522,"src":"6260:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":541,"name":"_rawRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":594,"src":"6217:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bytes32)"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6217:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":510,"id":547,"nodeType":"Return","src":"6210:65:1"}]},"documentation":{"id":499,"nodeType":"StructuredDocumentation","src":"4983:564:1","text":" @notice Creates a Chainlink request to the specified oracle address\n @dev This function supports multi-word response\n @dev Generates and stores a request ID, increments the local nonce, and uses `transferAndCall` to\n send LINK which creates a request on the target oracle contract.\n Emits ChainlinkRequested event.\n @param oracleAddress The address of the oracle for the request\n @param req The initialized Chainlink Request\n @param payment The amount of LINK to send for the request\n @return requestId The request ID"},"id":549,"implemented":true,"kind":"function","modifiers":[],"name":"sendOperatorRequestTo","nameLocation":"5559:21:1","nodeType":"FunctionDefinition","parameters":{"id":507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":501,"mutability":"mutable","name":"oracleAddress","nameLocation":"5594:13:1","nodeType":"VariableDeclaration","scope":549,"src":"5586:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":500,"name":"address","nodeType":"ElementaryTypeName","src":"5586:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":504,"mutability":"mutable","name":"req","nameLocation":"5638:3:1","nodeType":"VariableDeclaration","scope":549,"src":"5613:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":503,"nodeType":"UserDefinedTypeName","pathNode":{"id":502,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"5613:17:1"},"referencedDeclaration":25,"src":"5613:17:1","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"},{"constant":false,"id":506,"mutability":"mutable","name":"payment","nameLocation":"5655:7:1","nodeType":"VariableDeclaration","scope":549,"src":"5647:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":505,"name":"uint256","nodeType":"ElementaryTypeName","src":"5647:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5580:86:1"},"returnParameters":{"id":510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":509,"mutability":"mutable","name":"requestId","nameLocation":"5693:9:1","nodeType":"VariableDeclaration","scope":549,"src":"5685:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5685:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5684:19:1"},"scope":861,"src":"5550:730:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":593,"nodeType":"Block","src":"6790:269:1","statements":[{"expression":{"id":571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":563,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6796:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":567,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"6835:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"}},{"id":568,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":554,"src":"6841:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkClient_$861","typeString":"contract ChainlinkClient"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":565,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6818:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"6818:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6818:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":564,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"6808:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6808:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6796:52:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":572,"nodeType":"ExpressionStatement","src":"6796:52:1"},{"expression":{"id":577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":573,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"6854:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":575,"indexExpression":{"id":574,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6872:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6854:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":576,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6885:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6854:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":578,"nodeType":"ExpressionStatement","src":"6854:44:1"},{"eventCall":{"arguments":[{"id":580,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"6928:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":579,"name":"ChainlinkRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"6909:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6909:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":582,"nodeType":"EmitStatement","src":"6904:34:1"},{"expression":{"arguments":[{"arguments":[{"id":586,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":552,"src":"6975:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":587,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"6990:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":588,"name":"encodedRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":558,"src":"6999:14:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":584,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"6952:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferAndCall","nodeType":"MemberAccess","referencedDeclaration":1057,"src":"6952:22:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,bytes memory) external returns (bool)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6952:62:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c65","id":590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7016:37:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""},"value":"unable to transferAndCall to oracle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96","typeString":"literal_string \"unable to transferAndCall to oracle\""}],"id":583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6944:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6944:110:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":592,"nodeType":"ExpressionStatement","src":"6944:110:1"}]},"documentation":{"id":550,"nodeType":"StructuredDocumentation","src":"6284:342:1","text":" @notice Make a request to an oracle\n @param oracleAddress The address of the oracle for the request\n @param nonce used to generate the request ID\n @param payment The amount of LINK to send for the request\n @param encodedRequest data encoded for request type specific format\n @return requestId The request ID"},"id":594,"implemented":true,"kind":"function","modifiers":[],"name":"_rawRequest","nameLocation":"6638:11:1","nodeType":"FunctionDefinition","parameters":{"id":559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":552,"mutability":"mutable","name":"oracleAddress","nameLocation":"6663:13:1","nodeType":"VariableDeclaration","scope":594,"src":"6655:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":551,"name":"address","nodeType":"ElementaryTypeName","src":"6655:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":554,"mutability":"mutable","name":"nonce","nameLocation":"6690:5:1","nodeType":"VariableDeclaration","scope":594,"src":"6682:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":553,"name":"uint256","nodeType":"ElementaryTypeName","src":"6682:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":556,"mutability":"mutable","name":"payment","nameLocation":"6709:7:1","nodeType":"VariableDeclaration","scope":594,"src":"6701:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":555,"name":"uint256","nodeType":"ElementaryTypeName","src":"6701:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":558,"mutability":"mutable","name":"encodedRequest","nameLocation":"6735:14:1","nodeType":"VariableDeclaration","scope":594,"src":"6722:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":557,"name":"bytes","nodeType":"ElementaryTypeName","src":"6722:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6649:104:1"},"returnParameters":{"id":562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":561,"mutability":"mutable","name":"requestId","nameLocation":"6779:9:1","nodeType":"VariableDeclaration","scope":594,"src":"6771:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6771:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6770:19:1"},"scope":861,"src":"6629:430:1","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":633,"nodeType":"Block","src":"7713:250:1","statements":[{"assignments":[608],"declarations":[{"constant":false,"id":608,"mutability":"mutable","name":"requested","nameLocation":"7737:9:1","nodeType":"VariableDeclaration","scope":633,"src":"7719:27:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"},"typeName":{"id":607,"nodeType":"UserDefinedTypeName","pathNode":{"id":606,"name":"OperatorInterface","nodeType":"IdentifierPath","referencedDeclaration":1149,"src":"7719:17:1"},"referencedDeclaration":1149,"src":"7719:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"visibility":"internal"}],"id":614,"initialValue":{"arguments":[{"baseExpression":{"id":610,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7767:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":612,"indexExpression":{"id":611,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7785:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7767:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":609,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"7749:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1149_$","typeString":"type(contract OperatorInterface)"}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7749:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"nodeType":"VariableDeclarationStatement","src":"7719:77:1"},{"expression":{"id":618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7802:35:1","subExpression":{"baseExpression":{"id":615,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"7809:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":617,"indexExpression":{"id":616,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7827:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7809:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":619,"nodeType":"ExpressionStatement","src":"7802:35:1"},{"eventCall":{"arguments":[{"id":621,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7867:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":620,"name":"ChainlinkCancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"7848:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7848:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":623,"nodeType":"EmitStatement","src":"7843:34:1"},{"expression":{"arguments":[{"id":627,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":597,"src":"7913:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":628,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":599,"src":"7924:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":629,"name":"callbackFunc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":601,"src":"7933:12:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":630,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":603,"src":"7947:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":624,"name":"requested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"7883:9:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"id":626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"cancelOracleRequest","nodeType":"MemberAccess","referencedDeclaration":893,"src":"7883:29:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes4_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,bytes4,uint256) external"}},"id":631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7883:75:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":632,"nodeType":"ExpressionStatement","src":"7883:75:1"}]},"documentation":{"id":595,"nodeType":"StructuredDocumentation","src":"7063:509:1","text":" @notice Allows a request to be cancelled if it has not been fulfilled\n @dev Requires keeping track of the expiration value emitted from the oracle contract.\n Deletes the request from the `pendingRequests` mapping.\n Emits ChainlinkCancelled event.\n @param requestId The request ID\n @param payment The amount of LINK sent for the request\n @param callbackFunc The callback function specified for the request\n @param expiration The time of the expiration for the request"},"id":634,"implemented":true,"kind":"function","modifiers":[],"name":"cancelChainlinkRequest","nameLocation":"7584:22:1","nodeType":"FunctionDefinition","parameters":{"id":604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":597,"mutability":"mutable","name":"requestId","nameLocation":"7620:9:1","nodeType":"VariableDeclaration","scope":634,"src":"7612:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7612:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":599,"mutability":"mutable","name":"payment","nameLocation":"7643:7:1","nodeType":"VariableDeclaration","scope":634,"src":"7635:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":598,"name":"uint256","nodeType":"ElementaryTypeName","src":"7635:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":601,"mutability":"mutable","name":"callbackFunc","nameLocation":"7663:12:1","nodeType":"VariableDeclaration","scope":634,"src":"7656:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":600,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7656:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":603,"mutability":"mutable","name":"expiration","nameLocation":"7689:10:1","nodeType":"VariableDeclaration","scope":634,"src":"7681:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":602,"name":"uint256","nodeType":"ElementaryTypeName","src":"7681:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7606:97:1"},"returnParameters":{"id":605,"nodeType":"ParameterList","parameters":[],"src":"7713:0:1"},"scope":861,"src":"7575:388:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":642,"nodeType":"Block","src":"8238:32:1","statements":[{"expression":{"id":640,"name":"s_requestCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"8251:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":639,"id":641,"nodeType":"Return","src":"8244:21:1"}]},"documentation":{"id":635,"nodeType":"StructuredDocumentation","src":"7967:205:1","text":" @notice the next request count to be used in generating a nonce\n @dev starts at 1 in order to ensure consistent gas cost\n @return returns the next request count to be used in a nonce"},"id":643,"implemented":true,"kind":"function","modifiers":[],"name":"getNextRequestCount","nameLocation":"8184:19:1","nodeType":"FunctionDefinition","parameters":{"id":636,"nodeType":"ParameterList","parameters":[],"src":"8203:2:1"},"returnParameters":{"id":639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":638,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":643,"src":"8229:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":637,"name":"uint256","nodeType":"ElementaryTypeName","src":"8229:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8228:9:1"},"scope":861,"src":"8175:95:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":655,"nodeType":"Block","src":"8451:54:1","statements":[{"expression":{"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":649,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"8457:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":651,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"8486:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":650,"name":"OperatorInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1149,"src":"8468:17:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OperatorInterface_$1149_$","typeString":"type(contract OperatorInterface)"}},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8468:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"src":"8457:43:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}},"id":654,"nodeType":"ExpressionStatement","src":"8457:43:1"}]},"documentation":{"id":644,"nodeType":"StructuredDocumentation","src":"8274:114:1","text":" @notice Sets the stored oracle address\n @param oracleAddress The address of the oracle contract"},"id":656,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkOracle","nameLocation":"8400:18:1","nodeType":"FunctionDefinition","parameters":{"id":647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":646,"mutability":"mutable","name":"oracleAddress","nameLocation":"8427:13:1","nodeType":"VariableDeclaration","scope":656,"src":"8419:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":645,"name":"address","nodeType":"ElementaryTypeName","src":"8419:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8418:23:1"},"returnParameters":{"id":648,"nodeType":"ParameterList","parameters":[],"src":"8451:0:1"},"scope":861,"src":"8391:114:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":668,"nodeType":"Block","src":"8682:51:1","statements":[{"expression":{"id":666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":662,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"8688:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":664,"name":"linkAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"8716:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":663,"name":"LinkTokenInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"8697:18:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_LinkTokenInterface_$1069_$","typeString":"type(contract LinkTokenInterface)"}},"id":665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8697:31:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}},"src":"8688:40:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}},"id":667,"nodeType":"ExpressionStatement","src":"8688:40:1"}]},"documentation":{"id":657,"nodeType":"StructuredDocumentation","src":"8509:113:1","text":" @notice Sets the LINK token address\n @param linkAddress The address of the LINK token contract"},"id":669,"implemented":true,"kind":"function","modifiers":[],"name":"setChainlinkToken","nameLocation":"8634:17:1","nodeType":"FunctionDefinition","parameters":{"id":660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":659,"mutability":"mutable","name":"linkAddress","nameLocation":"8660:11:1","nodeType":"VariableDeclaration","scope":669,"src":"8652:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":658,"name":"address","nodeType":"ElementaryTypeName","src":"8652:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8651:21:1"},"returnParameters":{"id":661,"nodeType":"ParameterList","parameters":[],"src":"8682:0:1"},"scope":861,"src":"8625:108:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":681,"nodeType":"Block","src":"8900:79:1","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":675,"name":"LINK_TOKEN_POINTER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"8941:18:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":674,"name":"PointerInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1196,"src":"8924:16:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PointerInterface_$1196_$","typeString":"type(contract PointerInterface)"}},"id":676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8924:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PointerInterface_$1196","typeString":"contract PointerInterface"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":1195,"src":"8924:47:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8924:49:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":673,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"8906:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8906:68:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":680,"nodeType":"ExpressionStatement","src":"8906:68:1"}]},"documentation":{"id":670,"nodeType":"StructuredDocumentation","src":"8737:116:1","text":" @notice Sets the Chainlink token address for the public\n network as given by the Pointer contract"},"id":682,"implemented":true,"kind":"function","modifiers":[],"name":"setPublicChainlinkToken","nameLocation":"8865:23:1","nodeType":"FunctionDefinition","parameters":{"id":671,"nodeType":"ParameterList","parameters":[],"src":"8888:2:1"},"returnParameters":{"id":672,"nodeType":"ParameterList","parameters":[],"src":"8900:0:1"},"scope":861,"src":"8856:123:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":693,"nodeType":"Block","src":"9163:33:1","statements":[{"expression":{"arguments":[{"id":690,"name":"s_link","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":324,"src":"9184:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LinkTokenInterface_$1069","typeString":"contract LinkTokenInterface"}],"id":689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9176:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":688,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:1","typeDescriptions":{}}},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9176:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":687,"id":692,"nodeType":"Return","src":"9169:22:1"}]},"documentation":{"id":683,"nodeType":"StructuredDocumentation","src":"8983:112:1","text":" @notice Retrieves the stored address of the LINK token\n @return The address of the LINK token"},"id":694,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkTokenAddress","nameLocation":"9107:21:1","nodeType":"FunctionDefinition","parameters":{"id":684,"nodeType":"ParameterList","parameters":[],"src":"9128:2:1"},"returnParameters":{"id":687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":694,"src":"9154:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":685,"name":"address","nodeType":"ElementaryTypeName","src":"9154:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9153:9:1"},"scope":861,"src":"9098:98:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":705,"nodeType":"Block","src":"9391:35:1","statements":[{"expression":{"arguments":[{"id":702,"name":"s_oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"9412:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OperatorInterface_$1149","typeString":"contract OperatorInterface"}],"id":701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9404:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"9404:7:1","typeDescriptions":{}}},"id":703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9404:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":699,"id":704,"nodeType":"Return","src":"9397:24:1"}]},"documentation":{"id":695,"nodeType":"StructuredDocumentation","src":"9200:122:1","text":" @notice Retrieves the stored address of the oracle contract\n @return The address of the oracle contract"},"id":706,"implemented":true,"kind":"function","modifiers":[],"name":"chainlinkOracleAddress","nameLocation":"9334:22:1","nodeType":"FunctionDefinition","parameters":{"id":696,"nodeType":"ParameterList","parameters":[],"src":"9356:2:1"},"returnParameters":{"id":699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":698,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":706,"src":"9382:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":697,"name":"address","nodeType":"ElementaryTypeName","src":"9382:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9381:9:1"},"scope":861,"src":"9325:101:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":723,"nodeType":"Block","src":"9819:55:1","statements":[{"expression":{"id":721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":717,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"9825:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":719,"indexExpression":{"id":718,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9843:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9825:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":720,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":709,"src":"9856:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9825:44:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":722,"nodeType":"ExpressionStatement","src":"9825:44:1"}]},"documentation":{"id":707,"nodeType":"StructuredDocumentation","src":"9430:269:1","text":" @notice Allows for a request which was created on another contract to be fulfilled\n on this contract\n @param oracleAddress The address of the oracle contract that will fulfill the request\n @param requestId The request ID used for the response"},"id":724,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":714,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"9808:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":715,"modifierName":{"id":713,"name":"notPendingRequest","nodeType":"IdentifierPath","referencedDeclaration":860,"src":"9790:17:1"},"nodeType":"ModifierInvocation","src":"9790:28:1"}],"name":"addChainlinkExternalRequest","nameLocation":"9711:27:1","nodeType":"FunctionDefinition","parameters":{"id":712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":709,"mutability":"mutable","name":"oracleAddress","nameLocation":"9747:13:1","nodeType":"VariableDeclaration","scope":724,"src":"9739:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":708,"name":"address","nodeType":"ElementaryTypeName","src":"9739:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":711,"mutability":"mutable","name":"requestId","nameLocation":"9770:9:1","nodeType":"VariableDeclaration","scope":724,"src":"9762:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9762:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9738:42:1"},"returnParameters":{"id":716,"nodeType":"ParameterList","parameters":[],"src":"9819:0:1"},"scope":861,"src":"9702:172:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":772,"nodeType":"Block","src":"10207:326:1","statements":[{"expression":{"id":736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":732,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10213:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":734,"name":"ensAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"10234:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":733,"name":"ENSInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"10221:12:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSInterface_$974_$","typeString":"type(contract ENSInterface)"}},"id":735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10221:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"src":"10213:32:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"id":737,"nodeType":"ExpressionStatement","src":"10213:32:1"},{"expression":{"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":738,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10251:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":739,"name":"node","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":729,"src":"10263:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10251:16:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":741,"nodeType":"ExpressionStatement","src":"10251:16:1"},{"assignments":[743],"declarations":[{"constant":false,"id":743,"mutability":"mutable","name":"linkSubnode","nameLocation":"10281:11:1","nodeType":"VariableDeclaration","scope":772,"src":"10273:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10273:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":751,"initialValue":{"arguments":[{"arguments":[{"id":747,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10322:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":748,"name":"ENS_TOKEN_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":308,"src":"10333:17:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":745,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"10305:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"10305:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10305:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":744,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"10295:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10295:57:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10273:79:1"},{"assignments":[754],"declarations":[{"constant":false,"id":754,"mutability":"mutable","name":"resolver","nameLocation":"10380:8:1","nodeType":"VariableDeclaration","scope":772,"src":"10358:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"},"typeName":{"id":753,"nodeType":"UserDefinedTypeName","pathNode":{"id":752,"name":"ENSResolver_Chainlink","nodeType":"IdentifierPath","referencedDeclaration":2175,"src":"10358:21:1"},"referencedDeclaration":2175,"src":"10358:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":761,"initialValue":{"arguments":[{"arguments":[{"id":758,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10428:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":756,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10413:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":966,"src":"10413:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10413:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":755,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2175,"src":"10391:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2175_$","typeString":"type(contract ENSResolver)"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10391:50:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10358:83:1"},{"expression":{"arguments":[{"arguments":[{"id":765,"name":"linkSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":743,"src":"10479:11:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":763,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":754,"src":"10465:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2174,"src":"10465:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10465:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":762,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"10447:17:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10447:45:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":768,"nodeType":"ExpressionStatement","src":"10447:45:1"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":769,"name":"updateChainlinkOracleWithENS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"10498:28:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10498:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":771,"nodeType":"ExpressionStatement","src":"10498:30:1"}]},"documentation":{"id":725,"nodeType":"StructuredDocumentation","src":"9878:254:1","text":" @notice Sets the stored oracle and LINK token contracts with the addresses resolved by ENS\n @dev Accounts for subnodes having different resolvers\n @param ensAddress The address of the ENS contract\n @param node The ENS node hash"},"id":773,"implemented":true,"kind":"function","modifiers":[],"name":"useChainlinkWithENS","nameLocation":"10144:19:1","nodeType":"FunctionDefinition","parameters":{"id":730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":727,"mutability":"mutable","name":"ensAddress","nameLocation":"10172:10:1","nodeType":"VariableDeclaration","scope":773,"src":"10164:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":726,"name":"address","nodeType":"ElementaryTypeName","src":"10164:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":729,"mutability":"mutable","name":"node","nameLocation":"10192:4:1","nodeType":"VariableDeclaration","scope":773,"src":"10184:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10184:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10163:34:1"},"returnParameters":{"id":731,"nodeType":"ParameterList","parameters":[],"src":"10207:0:1"},"scope":861,"src":"10135:398:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":804,"nodeType":"Block","src":"10776:238:1","statements":[{"assignments":[778],"declarations":[{"constant":false,"id":778,"mutability":"mutable","name":"oracleSubnode","nameLocation":"10790:13:1","nodeType":"VariableDeclaration","scope":804,"src":"10782:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10782:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":786,"initialValue":{"arguments":[{"arguments":[{"id":782,"name":"s_ensNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"10833:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":783,"name":"ENS_ORACLE_SUBNAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":313,"src":"10844:18:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"10816:3:1","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"10816:16:1","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10816:47:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":779,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"10806:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10806:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10782:82:1"},{"assignments":[789],"declarations":[{"constant":false,"id":789,"mutability":"mutable","name":"resolver","nameLocation":"10892:8:1","nodeType":"VariableDeclaration","scope":804,"src":"10870:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"},"typeName":{"id":788,"nodeType":"UserDefinedTypeName","pathNode":{"id":787,"name":"ENSResolver_Chainlink","nodeType":"IdentifierPath","referencedDeclaration":2175,"src":"10870:21:1"},"referencedDeclaration":2175,"src":"10870:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"visibility":"internal"}],"id":796,"initialValue":{"arguments":[{"arguments":[{"id":793,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10940:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":791,"name":"s_ens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":319,"src":"10925:5:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSInterface_$974","typeString":"contract ENSInterface"}},"id":792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":966,"src":"10925:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10925:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":790,"name":"ENSResolver_Chainlink","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2175,"src":"10903:21:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ENSResolver_$2175_$","typeString":"type(contract ENSResolver)"}},"id":795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10903:52:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"nodeType":"VariableDeclarationStatement","src":"10870:85:1"},{"expression":{"arguments":[{"arguments":[{"id":800,"name":"oracleSubnode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"10994:13:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":798,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":789,"src":"10980:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_ENSResolver_$2175","typeString":"contract ENSResolver"}},"id":799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":2174,"src":"10980:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10980:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":797,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"10961:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10961:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":803,"nodeType":"ExpressionStatement","src":"10961:48:1"}]},"documentation":{"id":774,"nodeType":"StructuredDocumentation","src":"10537:187:1","text":" @notice Sets the stored oracle contract with the address resolved by ENS\n @dev This may be called on its own as long as `useChainlinkWithENS` has been called previously"},"id":805,"implemented":true,"kind":"function","modifiers":[],"name":"updateChainlinkOracleWithENS","nameLocation":"10736:28:1","nodeType":"FunctionDefinition","parameters":{"id":775,"nodeType":"ParameterList","parameters":[],"src":"10764:2:1"},"returnParameters":{"id":776,"nodeType":"ParameterList","parameters":[],"src":"10776:0:1"},"scope":861,"src":"10727:287:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":814,"nodeType":"Block","src":"11402:6:1","statements":[]},"documentation":{"id":806,"nodeType":"StructuredDocumentation","src":"11018:223:1","text":" @notice Ensures that the fulfillment is valid for this contract\n @dev Use if the contract developer prefers methods instead of modifiers for validation\n @param requestId The request ID for fulfillment"},"id":815,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":811,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":808,"src":"11342:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":812,"modifierName":{"id":810,"name":"recordChainlinkFulfillment","nodeType":"IdentifierPath","referencedDeclaration":841,"src":"11315:26:1"},"nodeType":"ModifierInvocation","src":"11315:37:1"}],"name":"validateChainlinkCallback","nameLocation":"11253:25:1","nodeType":"FunctionDefinition","parameters":{"id":809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":808,"mutability":"mutable","name":"requestId","nameLocation":"11287:9:1","nodeType":"VariableDeclaration","scope":815,"src":"11279:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11279:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11278:19:1"},"returnParameters":{"id":813,"nodeType":"ParameterList","parameters":[],"src":"11402:0:1"},"scope":861,"src":"11244:164:1","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":840,"nodeType":"Block","src":"11635:194:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":821,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"11649:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"11649:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":823,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11663:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":825,"indexExpression":{"id":824,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11681:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11663:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11649:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374","id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11693:42:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""},"value":"Source must be the oracle of the request"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4","typeString":"literal_string \"Source must be the oracle of the request\""}],"id":820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11641:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11641:95:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":829,"nodeType":"ExpressionStatement","src":"11641:95:1"},{"expression":{"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11742:35:1","subExpression":{"baseExpression":{"id":830,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"11749:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":832,"indexExpression":{"id":831,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11767:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11749:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":834,"nodeType":"ExpressionStatement","src":"11742:35:1"},{"eventCall":{"arguments":[{"id":836,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"11807:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":835,"name":"ChainlinkFulfilled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"11788:18:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11788:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":838,"nodeType":"EmitStatement","src":"11783:34:1"},{"id":839,"nodeType":"PlaceholderStatement","src":"11823:1:1"}]},"documentation":{"id":816,"nodeType":"StructuredDocumentation","src":"11412:165:1","text":" @dev Reverts if the sender is not the oracle of the request.\n Emits ChainlinkFulfilled event.\n @param requestId The request ID for fulfillment"},"id":841,"name":"recordChainlinkFulfillment","nameLocation":"11589:26:1","nodeType":"ModifierDefinition","parameters":{"id":819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":818,"mutability":"mutable","name":"requestId","nameLocation":"11624:9:1","nodeType":"VariableDeclaration","scope":841,"src":"11616:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11616:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11615:19:1"},"src":"11580:249:1","virtual":false,"visibility":"internal"},{"body":{"id":859,"nodeType":"Block","src":"11996:99:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":847,"name":"s_pendingRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":334,"src":"12010:17:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":849,"indexExpression":{"id":848,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":844,"src":"12028:9:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12010:28:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12050:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12042:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":850,"name":"address","nodeType":"ElementaryTypeName","src":"12042:7:1","typeDescriptions":{}}},"id":853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12042:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12010:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5265717565737420697320616c72656164792070656e64696e67","id":855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12054:28:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""},"value":"Request is already pending"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_efa688de2ca2442cd2f76ca864c7a15bdcb24ac77ed3de01d4cf9f6afd58c7aa","typeString":"literal_string \"Request is already pending\""}],"id":846,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12002:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12002:81:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":857,"nodeType":"ExpressionStatement","src":"12002:81:1"},{"id":858,"nodeType":"PlaceholderStatement","src":"12089:1:1"}]},"documentation":{"id":842,"nodeType":"StructuredDocumentation","src":"11833:114:1","text":" @dev Reverts if the request is already pending\n @param requestId The request ID for fulfillment"},"id":860,"name":"notPendingRequest","nameLocation":"11959:17:1","nodeType":"ModifierDefinition","parameters":{"id":845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":844,"mutability":"mutable","name":"requestId","nameLocation":"11985:9:1","nodeType":"VariableDeclaration","scope":860,"src":"11977:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11977:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11976:19:1"},"src":"11950:145:1","virtual":false,"visibility":"internal"}],"scope":862,"src":"549:11548:1"}],"src":"32:12066:1"},"id":1},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[894]},"id":895,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":863,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:2"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":894,"linearizedBaseContracts":[894],"name":"ChainlinkRequestInterface","nameLocation":"67:25:2","nodeType":"ContractDefinition","nodes":[{"functionSelector":"40429946","id":882,"implemented":false,"kind":"function","modifiers":[],"name":"oracleRequest","nameLocation":"106:13:2","nodeType":"FunctionDefinition","parameters":{"id":880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":865,"mutability":"mutable","name":"sender","nameLocation":"133:6:2","nodeType":"VariableDeclaration","scope":882,"src":"125:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":864,"name":"address","nodeType":"ElementaryTypeName","src":"125:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":867,"mutability":"mutable","name":"requestPrice","nameLocation":"153:12:2","nodeType":"VariableDeclaration","scope":882,"src":"145:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":866,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":869,"mutability":"mutable","name":"serviceAgreementID","nameLocation":"179:18:2","nodeType":"VariableDeclaration","scope":882,"src":"171:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":871,"mutability":"mutable","name":"callbackAddress","nameLocation":"211:15:2","nodeType":"VariableDeclaration","scope":882,"src":"203:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":870,"name":"address","nodeType":"ElementaryTypeName","src":"203:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":873,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"239:18:2","nodeType":"VariableDeclaration","scope":882,"src":"232:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":872,"name":"bytes4","nodeType":"ElementaryTypeName","src":"232:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":875,"mutability":"mutable","name":"nonce","nameLocation":"271:5:2","nodeType":"VariableDeclaration","scope":882,"src":"263:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":874,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":877,"mutability":"mutable","name":"dataVersion","nameLocation":"290:11:2","nodeType":"VariableDeclaration","scope":882,"src":"282:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":876,"name":"uint256","nodeType":"ElementaryTypeName","src":"282:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":879,"mutability":"mutable","name":"data","nameLocation":"322:4:2","nodeType":"VariableDeclaration","scope":882,"src":"307:19:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":878,"name":"bytes","nodeType":"ElementaryTypeName","src":"307:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"119:211:2"},"returnParameters":{"id":881,"nodeType":"ParameterList","parameters":[],"src":"339:0:2"},"scope":894,"src":"97:243:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ee4d553","id":893,"implemented":false,"kind":"function","modifiers":[],"name":"cancelOracleRequest","nameLocation":"353:19:2","nodeType":"FunctionDefinition","parameters":{"id":891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":884,"mutability":"mutable","name":"requestId","nameLocation":"386:9:2","nodeType":"VariableDeclaration","scope":893,"src":"378:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":886,"mutability":"mutable","name":"payment","nameLocation":"409:7:2","nodeType":"VariableDeclaration","scope":893,"src":"401:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":885,"name":"uint256","nodeType":"ElementaryTypeName","src":"401:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":888,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"429:18:2","nodeType":"VariableDeclaration","scope":893,"src":"422:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":887,"name":"bytes4","nodeType":"ElementaryTypeName","src":"422:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":890,"mutability":"mutable","name":"expiration","nameLocation":"461:10:2","nodeType":"VariableDeclaration","scope":893,"src":"453:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":889,"name":"uint256","nodeType":"ElementaryTypeName","src":"453:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"372:103:2"},"returnParameters":{"id":892,"nodeType":"ParameterList","parameters":[],"src":"484:0:2"},"scope":894,"src":"344:141:2","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":895,"src":"57:430:2"}],"src":"32:456:2"},"id":2},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol","exportedSymbols":{"ENSInterface":[974]},"id":975,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":896,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:3"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":974,"linearizedBaseContracts":[974],"name":"ENSInterface","nameLocation":"67:12:3","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":904,"name":"NewOwner","nameLocation":"161:8:3","nodeType":"EventDefinition","parameters":{"id":903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":898,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"186:4:3","nodeType":"VariableDeclaration","scope":904,"src":"170:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":897,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":900,"indexed":true,"mutability":"mutable","name":"label","nameLocation":"208:5:3","nodeType":"VariableDeclaration","scope":904,"src":"192:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":902,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"223:5:3","nodeType":"VariableDeclaration","scope":904,"src":"215:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":901,"name":"address","nodeType":"ElementaryTypeName","src":"215:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"169:60:3"},"src":"155:75:3"},{"anonymous":false,"id":910,"name":"Transfer","nameLocation":"315:8:3","nodeType":"EventDefinition","parameters":{"id":909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":906,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"340:4:3","nodeType":"VariableDeclaration","scope":910,"src":"324:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":905,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":908,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"354:5:3","nodeType":"VariableDeclaration","scope":910,"src":"346:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":907,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"323:37:3"},"src":"309:52:3"},{"anonymous":false,"id":916,"name":"NewResolver","nameLocation":"421:11:3","nodeType":"EventDefinition","parameters":{"id":915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":912,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"449:4:3","nodeType":"VariableDeclaration","scope":916,"src":"433:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":911,"name":"bytes32","nodeType":"ElementaryTypeName","src":"433:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":914,"indexed":false,"mutability":"mutable","name":"resolver","nameLocation":"463:8:3","nodeType":"VariableDeclaration","scope":916,"src":"455:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":913,"name":"address","nodeType":"ElementaryTypeName","src":"455:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"432:40:3"},"src":"415:58:3"},{"anonymous":false,"id":922,"name":"NewTTL","nameLocation":"526:6:3","nodeType":"EventDefinition","parameters":{"id":921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":918,"indexed":true,"mutability":"mutable","name":"node","nameLocation":"549:4:3","nodeType":"VariableDeclaration","scope":922,"src":"533:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"533:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":920,"indexed":false,"mutability":"mutable","name":"ttl","nameLocation":"562:3:3","nodeType":"VariableDeclaration","scope":922,"src":"555:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":919,"name":"uint64","nodeType":"ElementaryTypeName","src":"555:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"532:34:3"},"src":"520:47:3"},{"functionSelector":"06ab5923","id":931,"implemented":false,"kind":"function","modifiers":[],"name":"setSubnodeOwner","nameLocation":"580:15:3","nodeType":"FunctionDefinition","parameters":{"id":929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":924,"mutability":"mutable","name":"node","nameLocation":"609:4:3","nodeType":"VariableDeclaration","scope":931,"src":"601:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"601:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":926,"mutability":"mutable","name":"label","nameLocation":"627:5:3","nodeType":"VariableDeclaration","scope":931,"src":"619:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":925,"name":"bytes32","nodeType":"ElementaryTypeName","src":"619:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":928,"mutability":"mutable","name":"owner","nameLocation":"646:5:3","nodeType":"VariableDeclaration","scope":931,"src":"638:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":927,"name":"address","nodeType":"ElementaryTypeName","src":"638:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"595:60:3"},"returnParameters":{"id":930,"nodeType":"ParameterList","parameters":[],"src":"664:0:3"},"scope":974,"src":"571:94:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1896f70a","id":938,"implemented":false,"kind":"function","modifiers":[],"name":"setResolver","nameLocation":"678:11:3","nodeType":"FunctionDefinition","parameters":{"id":936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":933,"mutability":"mutable","name":"node","nameLocation":"698:4:3","nodeType":"VariableDeclaration","scope":938,"src":"690:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"690:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":935,"mutability":"mutable","name":"resolver","nameLocation":"712:8:3","nodeType":"VariableDeclaration","scope":938,"src":"704:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":934,"name":"address","nodeType":"ElementaryTypeName","src":"704:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"689:32:3"},"returnParameters":{"id":937,"nodeType":"ParameterList","parameters":[],"src":"730:0:3"},"scope":974,"src":"669:62:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5b0fc9c3","id":945,"implemented":false,"kind":"function","modifiers":[],"name":"setOwner","nameLocation":"744:8:3","nodeType":"FunctionDefinition","parameters":{"id":943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":940,"mutability":"mutable","name":"node","nameLocation":"761:4:3","nodeType":"VariableDeclaration","scope":945,"src":"753:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":939,"name":"bytes32","nodeType":"ElementaryTypeName","src":"753:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":942,"mutability":"mutable","name":"owner","nameLocation":"775:5:3","nodeType":"VariableDeclaration","scope":945,"src":"767:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":941,"name":"address","nodeType":"ElementaryTypeName","src":"767:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:29:3"},"returnParameters":{"id":944,"nodeType":"ParameterList","parameters":[],"src":"790:0:3"},"scope":974,"src":"735:56:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"14ab9038","id":952,"implemented":false,"kind":"function","modifiers":[],"name":"setTTL","nameLocation":"804:6:3","nodeType":"FunctionDefinition","parameters":{"id":950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":947,"mutability":"mutable","name":"node","nameLocation":"819:4:3","nodeType":"VariableDeclaration","scope":952,"src":"811:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"811:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":949,"mutability":"mutable","name":"ttl","nameLocation":"832:3:3","nodeType":"VariableDeclaration","scope":952,"src":"825:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":948,"name":"uint64","nodeType":"ElementaryTypeName","src":"825:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"810:26:3"},"returnParameters":{"id":951,"nodeType":"ParameterList","parameters":[],"src":"845:0:3"},"scope":974,"src":"795:51:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"02571be3","id":959,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"859:5:3","nodeType":"FunctionDefinition","parameters":{"id":955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":954,"mutability":"mutable","name":"node","nameLocation":"873:4:3","nodeType":"VariableDeclaration","scope":959,"src":"865:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":953,"name":"bytes32","nodeType":"ElementaryTypeName","src":"865:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"864:14:3"},"returnParameters":{"id":958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":959,"src":"902:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":956,"name":"address","nodeType":"ElementaryTypeName","src":"902:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"901:9:3"},"scope":974,"src":"850:61:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0178b8bf","id":966,"implemented":false,"kind":"function","modifiers":[],"name":"resolver","nameLocation":"924:8:3","nodeType":"FunctionDefinition","parameters":{"id":962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":961,"mutability":"mutable","name":"node","nameLocation":"941:4:3","nodeType":"VariableDeclaration","scope":966,"src":"933:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"933:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"932:14:3"},"returnParameters":{"id":965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":966,"src":"970:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":963,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"969:9:3"},"scope":974,"src":"915:64:3","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"16a25cbd","id":973,"implemented":false,"kind":"function","modifiers":[],"name":"ttl","nameLocation":"992:3:3","nodeType":"FunctionDefinition","parameters":{"id":969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":968,"mutability":"mutable","name":"node","nameLocation":"1004:4:3","nodeType":"VariableDeclaration","scope":973,"src":"996:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"996:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"995:14:3"},"returnParameters":{"id":972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":971,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":973,"src":"1033:6:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":970,"name":"uint64","nodeType":"ElementaryTypeName","src":"1033:6:3","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"1032:8:3"},"scope":974,"src":"983:58:3","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":975,"src":"57:986:3"}],"src":"32:1012:3"},"id":3},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol","exportedSymbols":{"LinkTokenInterface":[1069]},"id":1070,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":976,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:4"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1069,"linearizedBaseContracts":[1069],"name":"LinkTokenInterface","nameLocation":"67:18:4","nodeType":"ContractDefinition","nodes":[{"functionSelector":"dd62ed3e","id":985,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"99:9:4","nodeType":"FunctionDefinition","parameters":{"id":981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":978,"mutability":"mutable","name":"owner","nameLocation":"117:5:4","nodeType":"VariableDeclaration","scope":985,"src":"109:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":977,"name":"address","nodeType":"ElementaryTypeName","src":"109:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":980,"mutability":"mutable","name":"spender","nameLocation":"132:7:4","nodeType":"VariableDeclaration","scope":985,"src":"124:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":979,"name":"address","nodeType":"ElementaryTypeName","src":"124:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"108:32:4"},"returnParameters":{"id":984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":983,"mutability":"mutable","name":"remaining","nameLocation":"172:9:4","nodeType":"VariableDeclaration","scope":985,"src":"164:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":982,"name":"uint256","nodeType":"ElementaryTypeName","src":"164:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"163:19:4"},"scope":1069,"src":"90:93:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"095ea7b3","id":994,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"196:7:4","nodeType":"FunctionDefinition","parameters":{"id":990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":987,"mutability":"mutable","name":"spender","nameLocation":"212:7:4","nodeType":"VariableDeclaration","scope":994,"src":"204:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":986,"name":"address","nodeType":"ElementaryTypeName","src":"204:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":989,"mutability":"mutable","name":"value","nameLocation":"229:5:4","nodeType":"VariableDeclaration","scope":994,"src":"221:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":988,"name":"uint256","nodeType":"ElementaryTypeName","src":"221:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"203:32:4"},"returnParameters":{"id":993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":992,"mutability":"mutable","name":"success","nameLocation":"259:7:4","nodeType":"VariableDeclaration","scope":994,"src":"254:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":991,"name":"bool","nodeType":"ElementaryTypeName","src":"254:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"253:14:4"},"scope":1069,"src":"187:81:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"70a08231","id":1001,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"281:9:4","nodeType":"FunctionDefinition","parameters":{"id":997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":996,"mutability":"mutable","name":"owner","nameLocation":"299:5:4","nodeType":"VariableDeclaration","scope":1001,"src":"291:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":995,"name":"address","nodeType":"ElementaryTypeName","src":"291:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"290:15:4"},"returnParameters":{"id":1000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":999,"mutability":"mutable","name":"balance","nameLocation":"337:7:4","nodeType":"VariableDeclaration","scope":1001,"src":"329:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":998,"name":"uint256","nodeType":"ElementaryTypeName","src":"329:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"328:17:4"},"scope":1069,"src":"272:74:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"313ce567","id":1006,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"359:8:4","nodeType":"FunctionDefinition","parameters":{"id":1002,"nodeType":"ParameterList","parameters":[],"src":"367:2:4"},"returnParameters":{"id":1005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1004,"mutability":"mutable","name":"decimalPlaces","nameLocation":"399:13:4","nodeType":"VariableDeclaration","scope":1006,"src":"393:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1003,"name":"uint8","nodeType":"ElementaryTypeName","src":"393:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"392:21:4"},"scope":1069,"src":"350:64:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"66188463","id":1015,"implemented":false,"kind":"function","modifiers":[],"name":"decreaseApproval","nameLocation":"427:16:4","nodeType":"FunctionDefinition","parameters":{"id":1011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1008,"mutability":"mutable","name":"spender","nameLocation":"452:7:4","nodeType":"VariableDeclaration","scope":1015,"src":"444:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1007,"name":"address","nodeType":"ElementaryTypeName","src":"444:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1010,"mutability":"mutable","name":"addedValue","nameLocation":"469:10:4","nodeType":"VariableDeclaration","scope":1015,"src":"461:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1009,"name":"uint256","nodeType":"ElementaryTypeName","src":"461:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"443:37:4"},"returnParameters":{"id":1014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1013,"mutability":"mutable","name":"success","nameLocation":"504:7:4","nodeType":"VariableDeclaration","scope":1015,"src":"499:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1012,"name":"bool","nodeType":"ElementaryTypeName","src":"499:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"498:14:4"},"scope":1069,"src":"418:95:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d73dd623","id":1022,"implemented":false,"kind":"function","modifiers":[],"name":"increaseApproval","nameLocation":"526:16:4","nodeType":"FunctionDefinition","parameters":{"id":1020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1017,"mutability":"mutable","name":"spender","nameLocation":"551:7:4","nodeType":"VariableDeclaration","scope":1022,"src":"543:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1016,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1019,"mutability":"mutable","name":"subtractedValue","nameLocation":"568:15:4","nodeType":"VariableDeclaration","scope":1022,"src":"560:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1018,"name":"uint256","nodeType":"ElementaryTypeName","src":"560:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"542:42:4"},"returnParameters":{"id":1021,"nodeType":"ParameterList","parameters":[],"src":"593:0:4"},"scope":1069,"src":"517:77:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"06fdde03","id":1027,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"607:4:4","nodeType":"FunctionDefinition","parameters":{"id":1023,"nodeType":"ParameterList","parameters":[],"src":"611:2:4"},"returnParameters":{"id":1026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1025,"mutability":"mutable","name":"tokenName","nameLocation":"651:9:4","nodeType":"VariableDeclaration","scope":1027,"src":"637:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1024,"name":"string","nodeType":"ElementaryTypeName","src":"637:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"636:25:4"},"scope":1069,"src":"598:64:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"95d89b41","id":1032,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"675:6:4","nodeType":"FunctionDefinition","parameters":{"id":1028,"nodeType":"ParameterList","parameters":[],"src":"681:2:4"},"returnParameters":{"id":1031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1030,"mutability":"mutable","name":"tokenSymbol","nameLocation":"721:11:4","nodeType":"VariableDeclaration","scope":1032,"src":"707:25:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1029,"name":"string","nodeType":"ElementaryTypeName","src":"707:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"706:27:4"},"scope":1069,"src":"666:68:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":1037,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"747:11:4","nodeType":"FunctionDefinition","parameters":{"id":1033,"nodeType":"ParameterList","parameters":[],"src":"758:2:4"},"returnParameters":{"id":1036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1035,"mutability":"mutable","name":"totalTokensIssued","nameLocation":"792:17:4","nodeType":"VariableDeclaration","scope":1037,"src":"784:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1034,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"783:27:4"},"scope":1069,"src":"738:73:4","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a9059cbb","id":1046,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"824:8:4","nodeType":"FunctionDefinition","parameters":{"id":1042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1039,"mutability":"mutable","name":"to","nameLocation":"841:2:4","nodeType":"VariableDeclaration","scope":1046,"src":"833:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1038,"name":"address","nodeType":"ElementaryTypeName","src":"833:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1041,"mutability":"mutable","name":"value","nameLocation":"853:5:4","nodeType":"VariableDeclaration","scope":1046,"src":"845:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1040,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"832:27:4"},"returnParameters":{"id":1045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1044,"mutability":"mutable","name":"success","nameLocation":"883:7:4","nodeType":"VariableDeclaration","scope":1046,"src":"878:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1043,"name":"bool","nodeType":"ElementaryTypeName","src":"878:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"877:14:4"},"scope":1069,"src":"815:77:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4000aea0","id":1057,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"905:15:4","nodeType":"FunctionDefinition","parameters":{"id":1053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1048,"mutability":"mutable","name":"to","nameLocation":"934:2:4","nodeType":"VariableDeclaration","scope":1057,"src":"926:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1047,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1050,"mutability":"mutable","name":"value","nameLocation":"950:5:4","nodeType":"VariableDeclaration","scope":1057,"src":"942:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1049,"name":"uint256","nodeType":"ElementaryTypeName","src":"942:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1052,"mutability":"mutable","name":"data","nameLocation":"976:4:4","nodeType":"VariableDeclaration","scope":1057,"src":"961:19:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1051,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"920:64:4"},"returnParameters":{"id":1056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1055,"mutability":"mutable","name":"success","nameLocation":"1008:7:4","nodeType":"VariableDeclaration","scope":1057,"src":"1003:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1054,"name":"bool","nodeType":"ElementaryTypeName","src":"1003:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1002:14:4"},"scope":1069,"src":"896:121:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"23b872dd","id":1068,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1030:12:4","nodeType":"FunctionDefinition","parameters":{"id":1064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1059,"mutability":"mutable","name":"from","nameLocation":"1056:4:4","nodeType":"VariableDeclaration","scope":1068,"src":"1048:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1058,"name":"address","nodeType":"ElementaryTypeName","src":"1048:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1061,"mutability":"mutable","name":"to","nameLocation":"1074:2:4","nodeType":"VariableDeclaration","scope":1068,"src":"1066:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1060,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1063,"mutability":"mutable","name":"value","nameLocation":"1090:5:4","nodeType":"VariableDeclaration","scope":1068,"src":"1082:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1062,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1042:57:4"},"returnParameters":{"id":1067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1066,"mutability":"mutable","name":"success","nameLocation":"1123:7:4","nodeType":"VariableDeclaration","scope":1068,"src":"1118:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1065,"name":"bool","nodeType":"ElementaryTypeName","src":"1118:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1117:14:4"},"scope":1069,"src":"1021:111:4","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1070,"src":"57:1077:4"}],"src":"32:1103:4"},"id":4},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol","exportedSymbols":{"ChainlinkRequestInterface":[894],"OperatorInterface":[1149],"OracleInterface":[1188]},"id":1150,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1071,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:5"},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","file":"./OracleInterface.sol","id":1072,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1150,"sourceUnit":1189,"src":"57:31:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol","file":"./ChainlinkRequestInterface.sol","id":1073,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1150,"sourceUnit":895,"src":"89:41:5","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1074,"name":"OracleInterface","nodeType":"IdentifierPath","referencedDeclaration":1188,"src":"163:15:5"},"id":1075,"nodeType":"InheritanceSpecifier","src":"163:15:5"},{"baseName":{"id":1076,"name":"ChainlinkRequestInterface","nodeType":"IdentifierPath","referencedDeclaration":894,"src":"180:25:5"},"id":1077,"nodeType":"InheritanceSpecifier","src":"180:25:5"}],"contractDependencies":[894,1188],"contractKind":"interface","fullyImplemented":false,"id":1149,"linearizedBaseContracts":[1149,894,1188],"name":"OperatorInterface","nameLocation":"142:17:5","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3c6d41b9","id":1094,"implemented":false,"kind":"function","modifiers":[],"name":"operatorRequest","nameLocation":"219:15:5","nodeType":"FunctionDefinition","parameters":{"id":1092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1079,"mutability":"mutable","name":"sender","nameLocation":"248:6:5","nodeType":"VariableDeclaration","scope":1094,"src":"240:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1078,"name":"address","nodeType":"ElementaryTypeName","src":"240:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1081,"mutability":"mutable","name":"payment","nameLocation":"268:7:5","nodeType":"VariableDeclaration","scope":1094,"src":"260:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1080,"name":"uint256","nodeType":"ElementaryTypeName","src":"260:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1083,"mutability":"mutable","name":"specId","nameLocation":"289:6:5","nodeType":"VariableDeclaration","scope":1094,"src":"281:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"281:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1085,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"308:18:5","nodeType":"VariableDeclaration","scope":1094,"src":"301:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1084,"name":"bytes4","nodeType":"ElementaryTypeName","src":"301:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1087,"mutability":"mutable","name":"nonce","nameLocation":"340:5:5","nodeType":"VariableDeclaration","scope":1094,"src":"332:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1086,"name":"uint256","nodeType":"ElementaryTypeName","src":"332:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1089,"mutability":"mutable","name":"dataVersion","nameLocation":"359:11:5","nodeType":"VariableDeclaration","scope":1094,"src":"351:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1088,"name":"uint256","nodeType":"ElementaryTypeName","src":"351:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1091,"mutability":"mutable","name":"data","nameLocation":"391:4:5","nodeType":"VariableDeclaration","scope":1094,"src":"376:19:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1090,"name":"bytes","nodeType":"ElementaryTypeName","src":"376:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"234:165:5"},"returnParameters":{"id":1093,"nodeType":"ParameterList","parameters":[],"src":"408:0:5"},"scope":1149,"src":"210:199:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6ae0bc76","id":1111,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest2","nameLocation":"422:21:5","nodeType":"FunctionDefinition","parameters":{"id":1107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1096,"mutability":"mutable","name":"requestId","nameLocation":"457:9:5","nodeType":"VariableDeclaration","scope":1111,"src":"449:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"449:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1098,"mutability":"mutable","name":"payment","nameLocation":"480:7:5","nodeType":"VariableDeclaration","scope":1111,"src":"472:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1097,"name":"uint256","nodeType":"ElementaryTypeName","src":"472:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1100,"mutability":"mutable","name":"callbackAddress","nameLocation":"501:15:5","nodeType":"VariableDeclaration","scope":1111,"src":"493:23:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1099,"name":"address","nodeType":"ElementaryTypeName","src":"493:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1102,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"529:18:5","nodeType":"VariableDeclaration","scope":1111,"src":"522:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1101,"name":"bytes4","nodeType":"ElementaryTypeName","src":"522:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1104,"mutability":"mutable","name":"expiration","nameLocation":"561:10:5","nodeType":"VariableDeclaration","scope":1111,"src":"553:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1103,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1106,"mutability":"mutable","name":"data","nameLocation":"592:4:5","nodeType":"VariableDeclaration","scope":1111,"src":"577:19:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1105,"name":"bytes","nodeType":"ElementaryTypeName","src":"577:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"443:157:5"},"returnParameters":{"id":1110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1111,"src":"619:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1108,"name":"bool","nodeType":"ElementaryTypeName","src":"619:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"618:6:5"},"scope":1149,"src":"413:212:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"902fc370","id":1122,"implemented":false,"kind":"function","modifiers":[],"name":"ownerTransferAndCall","nameLocation":"638:20:5","nodeType":"FunctionDefinition","parameters":{"id":1118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1113,"mutability":"mutable","name":"to","nameLocation":"672:2:5","nodeType":"VariableDeclaration","scope":1122,"src":"664:10:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1112,"name":"address","nodeType":"ElementaryTypeName","src":"664:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1115,"mutability":"mutable","name":"value","nameLocation":"688:5:5","nodeType":"VariableDeclaration","scope":1122,"src":"680:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1114,"name":"uint256","nodeType":"ElementaryTypeName","src":"680:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1117,"mutability":"mutable","name":"data","nameLocation":"714:4:5","nodeType":"VariableDeclaration","scope":1122,"src":"699:19:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1116,"name":"bytes","nodeType":"ElementaryTypeName","src":"699:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"658:64:5"},"returnParameters":{"id":1121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1120,"mutability":"mutable","name":"success","nameLocation":"746:7:5","nodeType":"VariableDeclaration","scope":1122,"src":"741:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1119,"name":"bool","nodeType":"ElementaryTypeName","src":"741:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"740:14:5"},"scope":1149,"src":"629:126:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6bd59ec0","id":1131,"implemented":false,"kind":"function","modifiers":[],"name":"distributeFunds","nameLocation":"768:15:5","nodeType":"FunctionDefinition","parameters":{"id":1129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1125,"mutability":"mutable","name":"receivers","nameLocation":"811:9:5","nodeType":"VariableDeclaration","scope":1131,"src":"784:36:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_calldata_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":1123,"name":"address","nodeType":"ElementaryTypeName","src":"784:15:5","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1124,"nodeType":"ArrayTypeName","src":"784:17:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"},{"constant":false,"id":1128,"mutability":"mutable","name":"amounts","nameLocation":"841:7:5","nodeType":"VariableDeclaration","scope":1131,"src":"822:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1126,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1127,"nodeType":"ArrayTypeName","src":"822:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"783:66:5"},"returnParameters":{"id":1130,"nodeType":"ParameterList","parameters":[],"src":"866:0:5"},"scope":1149,"src":"759:108:5","stateMutability":"payable","virtual":false,"visibility":"external"},{"functionSelector":"2408afaa","id":1137,"implemented":false,"kind":"function","modifiers":[],"name":"getAuthorizedSenders","nameLocation":"880:20:5","nodeType":"FunctionDefinition","parameters":{"id":1132,"nodeType":"ParameterList","parameters":[],"src":"900:2:5"},"returnParameters":{"id":1136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1135,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1137,"src":"921:16:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1133,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1134,"nodeType":"ArrayTypeName","src":"921:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"920:18:5"},"scope":1149,"src":"871:68:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ee56997b","id":1143,"implemented":false,"kind":"function","modifiers":[],"name":"setAuthorizedSenders","nameLocation":"952:20:5","nodeType":"FunctionDefinition","parameters":{"id":1141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1140,"mutability":"mutable","name":"senders","nameLocation":"992:7:5","nodeType":"VariableDeclaration","scope":1143,"src":"973:26:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1138,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1139,"nodeType":"ArrayTypeName","src":"973:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"972:28:5"},"returnParameters":{"id":1142,"nodeType":"ParameterList","parameters":[],"src":"1009:0:5"},"scope":1149,"src":"943:67:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a0042526","id":1148,"implemented":false,"kind":"function","modifiers":[],"name":"getForwarder","nameLocation":"1023:12:5","nodeType":"FunctionDefinition","parameters":{"id":1144,"nodeType":"ParameterList","parameters":[],"src":"1035:2:5"},"returnParameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1148,"src":"1056:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"1056:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1055:9:5"},"scope":1149,"src":"1014:51:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":1150,"src":"132:935:5"}],"src":"32:1036:5"},"id":5},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol","exportedSymbols":{"OracleInterface":[1188]},"id":1189,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1151,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:6"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1188,"linearizedBaseContracts":[1188],"name":"OracleInterface","nameLocation":"67:15:6","nodeType":"ContractDefinition","nodes":[{"functionSelector":"4ab0d190","id":1168,"implemented":false,"kind":"function","modifiers":[],"name":"fulfillOracleRequest","nameLocation":"96:20:6","nodeType":"FunctionDefinition","parameters":{"id":1164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"requestId","nameLocation":"130:9:6","nodeType":"VariableDeclaration","scope":1168,"src":"122:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1155,"mutability":"mutable","name":"payment","nameLocation":"153:7:6","nodeType":"VariableDeclaration","scope":1168,"src":"145:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1154,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1157,"mutability":"mutable","name":"callbackAddress","nameLocation":"174:15:6","nodeType":"VariableDeclaration","scope":1168,"src":"166:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1156,"name":"address","nodeType":"ElementaryTypeName","src":"166:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1159,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"202:18:6","nodeType":"VariableDeclaration","scope":1168,"src":"195:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1158,"name":"bytes4","nodeType":"ElementaryTypeName","src":"195:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1161,"mutability":"mutable","name":"expiration","nameLocation":"234:10:6","nodeType":"VariableDeclaration","scope":1168,"src":"226:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1160,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1163,"mutability":"mutable","name":"data","nameLocation":"258:4:6","nodeType":"VariableDeclaration","scope":1168,"src":"250:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"116:150:6"},"returnParameters":{"id":1167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1166,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1168,"src":"285:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1165,"name":"bool","nodeType":"ElementaryTypeName","src":"285:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"284:6:6"},"scope":1188,"src":"87:204:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fa00763a","id":1175,"implemented":false,"kind":"function","modifiers":[],"name":"isAuthorizedSender","nameLocation":"304:18:6","nodeType":"FunctionDefinition","parameters":{"id":1171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1170,"mutability":"mutable","name":"node","nameLocation":"331:4:6","nodeType":"VariableDeclaration","scope":1175,"src":"323:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1169,"name":"address","nodeType":"ElementaryTypeName","src":"323:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322:14:6"},"returnParameters":{"id":1174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1175,"src":"360:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1172,"name":"bool","nodeType":"ElementaryTypeName","src":"360:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"359:6:6"},"scope":1188,"src":"295:71:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f3fef3a3","id":1182,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"379:8:6","nodeType":"FunctionDefinition","parameters":{"id":1180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1177,"mutability":"mutable","name":"recipient","nameLocation":"396:9:6","nodeType":"VariableDeclaration","scope":1182,"src":"388:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1176,"name":"address","nodeType":"ElementaryTypeName","src":"388:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1179,"mutability":"mutable","name":"amount","nameLocation":"415:6:6","nodeType":"VariableDeclaration","scope":1182,"src":"407:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1178,"name":"uint256","nodeType":"ElementaryTypeName","src":"407:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"387:35:6"},"returnParameters":{"id":1181,"nodeType":"ParameterList","parameters":[],"src":"431:0:6"},"scope":1188,"src":"370:62:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"50188301","id":1187,"implemented":false,"kind":"function","modifiers":[],"name":"withdrawable","nameLocation":"445:12:6","nodeType":"FunctionDefinition","parameters":{"id":1183,"nodeType":"ParameterList","parameters":[],"src":"457:2:6"},"returnParameters":{"id":1186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1185,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1187,"src":"483:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1184,"name":"uint256","nodeType":"ElementaryTypeName","src":"483:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"482:9:6"},"scope":1188,"src":"436:56:6","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1189,"src":"57:437:6"}],"src":"32:463:6"},"id":6},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol","exportedSymbols":{"PointerInterface":[1196]},"id":1197,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1190,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:7"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":1196,"linearizedBaseContracts":[1196],"name":"PointerInterface","nameLocation":"67:16:7","nodeType":"ContractDefinition","nodes":[{"functionSelector":"38cc4831","id":1195,"implemented":false,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"97:10:7","nodeType":"FunctionDefinition","parameters":{"id":1191,"nodeType":"ParameterList","parameters":[],"src":"107:2:7"},"returnParameters":{"id":1194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1195,"src":"133:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1192,"name":"address","nodeType":"ElementaryTypeName","src":"133:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"132:9:7"},"scope":1196,"src":"88:54:7","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1197,"src":"57:87:7"}],"src":"32:113:7"},"id":7},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","exportedSymbols":{"BufferChainlink":[1718]},"id":1719,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1198,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:8"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":1199,"nodeType":"StructuredDocumentation","src":"57:383:8","text":" @dev A library for working with mutable byte buffers in Solidity.\n Byte buffers are mutable and expandable, and provide a variety of primitives\n for writing to them. At any time you can fetch a bytes object containing the\n current contents of the buffer. The bytes object should not be stored between\n operations, as it may change due to resizing of the buffer."},"fullyImplemented":true,"id":1718,"linearizedBaseContracts":[1718],"name":"BufferChainlink","nameLocation":"449:15:8","nodeType":"ContractDefinition","nodes":[{"canonicalName":"BufferChainlink.buffer","id":1204,"members":[{"constant":false,"id":1201,"mutability":"mutable","name":"buf","nameLocation":"743:3:8","nodeType":"VariableDeclaration","scope":1204,"src":"737:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1200,"name":"bytes","nodeType":"ElementaryTypeName","src":"737:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1203,"mutability":"mutable","name":"capacity","nameLocation":"760:8:8","nodeType":"VariableDeclaration","scope":1204,"src":"752:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1202,"name":"uint256","nodeType":"ElementaryTypeName","src":"752:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"buffer","nameLocation":"724:6:8","nodeType":"StructDefinition","scope":1718,"src":"717:56:8","visibility":"public"},{"body":{"id":1241,"nodeType":"Block","src":"1090:310:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1216,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"1100:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1100:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1117:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1100:18:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1231,"nodeType":"IfStatement","src":"1096:71:8","trueBody":{"id":1230,"nodeType":"Block","src":"1120:47:8","statements":[{"expression":{"id":1228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1221,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"1128:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1140:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1223,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"1146:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3332","id":1224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1157:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1146:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1226,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1145:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1140:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1128:32:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1229,"nodeType":"ExpressionStatement","src":"1128:32:8"}]}},{"expression":{"id":1236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1232,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"1214:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"1214:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1235,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1210,"src":"1229:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1214:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1237,"nodeType":"ExpressionStatement","src":"1214:23:8"},{"AST":{"nodeType":"YulBlock","src":"1252:128:8","statements":[{"nodeType":"YulVariableDeclaration","src":"1260:22:8","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1277:4:8","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1271:5:8"},"nodeType":"YulFunctionCall","src":"1271:11:8"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"1264:3:8","type":""}]},{"expression":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"1296:3:8"},{"name":"ptr","nodeType":"YulIdentifier","src":"1301:3:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1289:6:8"},"nodeType":"YulFunctionCall","src":"1289:16:8"},"nodeType":"YulExpressionStatement","src":"1289:16:8"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1319:3:8"},{"kind":"number","nodeType":"YulLiteral","src":"1324:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1312:6:8"},"nodeType":"YulFunctionCall","src":"1312:14:8"},"nodeType":"YulExpressionStatement","src":"1312:14:8"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1340:4:8","type":"","value":"0x40"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1350:2:8","type":"","value":"32"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1358:3:8"},{"name":"capacity","nodeType":"YulIdentifier","src":"1363:8:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1354:3:8"},"nodeType":"YulFunctionCall","src":"1354:18:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1346:3:8"},"nodeType":"YulFunctionCall","src":"1346:27:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:8"},"nodeType":"YulFunctionCall","src":"1333:41:8"},"nodeType":"YulExpressionStatement","src":"1333:41:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1208,"isOffset":false,"isSlot":false,"src":"1296:3:8","valueSize":1},{"declaration":1210,"isOffset":false,"isSlot":false,"src":"1363:8:8","valueSize":1}],"id":1238,"nodeType":"InlineAssembly","src":"1243:137:8"},{"expression":{"id":1239,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"1392:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1215,"id":1240,"nodeType":"Return","src":"1385:10:8"}]},"documentation":{"id":1205,"nodeType":"StructuredDocumentation","src":"777:221:8","text":" @dev Initializes a buffer with an initial capacity.\n @param buf The buffer to initialize.\n @param capacity The number of bytes of space to allocate the buffer.\n @return The buffer, for chaining."},"id":1242,"implemented":true,"kind":"function","modifiers":[],"name":"init","nameLocation":"1010:4:8","nodeType":"FunctionDefinition","parameters":{"id":1211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1208,"mutability":"mutable","name":"buf","nameLocation":"1029:3:8","nodeType":"VariableDeclaration","scope":1242,"src":"1015:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1207,"nodeType":"UserDefinedTypeName","pathNode":{"id":1206,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1015:6:8"},"referencedDeclaration":1204,"src":"1015:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1210,"mutability":"mutable","name":"capacity","nameLocation":"1042:8:8","nodeType":"VariableDeclaration","scope":1242,"src":"1034:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1209,"name":"uint256","nodeType":"ElementaryTypeName","src":"1034:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:37:8"},"returnParameters":{"id":1215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1242,"src":"1075:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1213,"nodeType":"UserDefinedTypeName","pathNode":{"id":1212,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1075:6:8"},"referencedDeclaration":1204,"src":"1075:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1074:15:8"},"scope":1718,"src":"1001:399:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1270,"nodeType":"Block","src":"1707:90:8","statements":[{"assignments":[1253],"declarations":[{"constant":false,"id":1253,"mutability":"mutable","name":"buf","nameLocation":"1727:3:8","nodeType":"VariableDeclaration","scope":1270,"src":"1713:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1252,"nodeType":"UserDefinedTypeName","pathNode":{"id":1251,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1713:6:8"},"referencedDeclaration":1204,"src":"1713:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"id":1254,"nodeType":"VariableDeclarationStatement","src":"1713:17:8"},{"expression":{"id":1259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1255,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"1736:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"1736:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1258,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"1746:1:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"1736:11:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1260,"nodeType":"ExpressionStatement","src":"1736:11:8"},{"expression":{"id":1266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1261,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"1753:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"1753:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":1264,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"1768:1:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1768:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1753:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1267,"nodeType":"ExpressionStatement","src":"1753:23:8"},{"expression":{"id":1268,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1253,"src":"1789:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1250,"id":1269,"nodeType":"Return","src":"1782:10:8"}]},"documentation":{"id":1243,"nodeType":"StructuredDocumentation","src":"1404:227:8","text":" @dev Initializes a new buffer from an existing bytes object.\n Changes to the buffer may mutate the original value.\n @param b The bytes object to initialize the buffer with.\n @return A new buffer."},"id":1271,"implemented":true,"kind":"function","modifiers":[],"name":"fromBytes","nameLocation":"1643:9:8","nodeType":"FunctionDefinition","parameters":{"id":1246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1245,"mutability":"mutable","name":"b","nameLocation":"1666:1:8","nodeType":"VariableDeclaration","scope":1271,"src":"1653:14:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1244,"name":"bytes","nodeType":"ElementaryTypeName","src":"1653:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1652:16:8"},"returnParameters":{"id":1250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1249,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1271,"src":"1692:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1248,"nodeType":"UserDefinedTypeName","pathNode":{"id":1247,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1692:6:8"},"referencedDeclaration":1204,"src":"1692:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"1691:15:8"},"scope":1718,"src":"1634:163:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1294,"nodeType":"Block","src":"1867:90:8","statements":[{"assignments":[1280],"declarations":[{"constant":false,"id":1280,"mutability":"mutable","name":"oldbuf","nameLocation":"1886:6:8","nodeType":"VariableDeclaration","scope":1294,"src":"1873:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1279,"name":"bytes","nodeType":"ElementaryTypeName","src":"1873:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1283,"initialValue":{"expression":{"id":1281,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"1895:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"1895:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1873:29:8"},{"expression":{"arguments":[{"id":1285,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"1913:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1286,"name":"capacity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1276,"src":"1918:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1284,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1242,"src":"1908:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1908:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1288,"nodeType":"ExpressionStatement","src":"1908:19:8"},{"expression":{"arguments":[{"id":1290,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"1940:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1291,"name":"oldbuf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1280,"src":"1945:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1289,"name":"append","nodeType":"Identifier","overloadedDeclarations":[1438,1461],"referencedDeclaration":1461,"src":"1933:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":1292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1933:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1293,"nodeType":"ExpressionStatement","src":"1933:19:8"}]},"id":1295,"implemented":true,"kind":"function","modifiers":[],"name":"resize","nameLocation":"1810:6:8","nodeType":"FunctionDefinition","parameters":{"id":1277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1274,"mutability":"mutable","name":"buf","nameLocation":"1831:3:8","nodeType":"VariableDeclaration","scope":1295,"src":"1817:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1273,"nodeType":"UserDefinedTypeName","pathNode":{"id":1272,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1817:6:8"},"referencedDeclaration":1204,"src":"1817:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1276,"mutability":"mutable","name":"capacity","nameLocation":"1844:8:8","nodeType":"VariableDeclaration","scope":1295,"src":"1836:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1275,"name":"uint256","nodeType":"ElementaryTypeName","src":"1836:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1816:37:8"},"returnParameters":{"id":1278,"nodeType":"ParameterList","parameters":[],"src":"1867:0:8"},"scope":1718,"src":"1801:156:8","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1313,"nodeType":"Block","src":"2027:58:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1304,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"2037:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1305,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"2041:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2037:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1310,"nodeType":"IfStatement","src":"2033:34:8","trueBody":{"id":1309,"nodeType":"Block","src":"2044:23:8","statements":[{"expression":{"id":1307,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"2059:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1303,"id":1308,"nodeType":"Return","src":"2052:8:8"}]}},{"expression":{"id":1311,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"2079:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1303,"id":1312,"nodeType":"Return","src":"2072:8:8"}]},"id":1314,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"1970:3:8","nodeType":"FunctionDefinition","parameters":{"id":1300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1297,"mutability":"mutable","name":"a","nameLocation":"1982:1:8","nodeType":"VariableDeclaration","scope":1314,"src":"1974:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1296,"name":"uint256","nodeType":"ElementaryTypeName","src":"1974:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1299,"mutability":"mutable","name":"b","nameLocation":"1993:1:8","nodeType":"VariableDeclaration","scope":1314,"src":"1985:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1298,"name":"uint256","nodeType":"ElementaryTypeName","src":"1985:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1973:22:8"},"returnParameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1302,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1314,"src":"2018:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1301,"name":"uint256","nodeType":"ElementaryTypeName","src":"2018:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2017:9:8"},"scope":1718,"src":"1961:124:8","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1327,"nodeType":"Block","src":"2300:97:8","statements":[{"AST":{"nodeType":"YulBlock","src":"2315:62:8","statements":[{"nodeType":"YulVariableDeclaration","src":"2323:24:8","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"2343:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2337:5:8"},"nodeType":"YulFunctionCall","src":"2337:10:8"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"2327:6:8","type":""}]},{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"2361:6:8"},{"kind":"number","nodeType":"YulLiteral","src":"2369:1:8","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2354:6:8"},"nodeType":"YulFunctionCall","src":"2354:17:8"},"nodeType":"YulExpressionStatement","src":"2354:17:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1318,"isOffset":false,"isSlot":false,"src":"2343:3:8","valueSize":1}],"id":1324,"nodeType":"InlineAssembly","src":"2306:71:8"},{"expression":{"id":1325,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1318,"src":"2389:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1323,"id":1326,"nodeType":"Return","src":"2382:10:8"}]},"documentation":{"id":1315,"nodeType":"StructuredDocumentation","src":"2089:133:8","text":" @dev Sets buffer length to 0.\n @param buf The buffer to truncate.\n @return The original buffer, for chaining.."},"id":1328,"implemented":true,"kind":"function","modifiers":[],"name":"truncate","nameLocation":"2234:8:8","nodeType":"FunctionDefinition","parameters":{"id":1319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1318,"mutability":"mutable","name":"buf","nameLocation":"2257:3:8","nodeType":"VariableDeclaration","scope":1328,"src":"2243:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1317,"nodeType":"UserDefinedTypeName","pathNode":{"id":1316,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2243:6:8"},"referencedDeclaration":1204,"src":"2243:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2242:19:8"},"returnParameters":{"id":1323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1328,"src":"2285:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1321,"nodeType":"UserDefinedTypeName","pathNode":{"id":1320,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2285:6:8"},"referencedDeclaration":1204,"src":"2285:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2284:15:8"},"scope":1718,"src":"2225:172:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1413,"nodeType":"Block","src":"2882:1073:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1345,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"2896:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":1346,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1336,"src":"2903:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2903:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2896:18:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1344,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2888:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2888:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1350,"nodeType":"ExpressionStatement","src":"2888:27:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1351,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"2926:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1352,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"2932:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1354,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2938:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"2938:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2926:24:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1371,"nodeType":"IfStatement","src":"2922:90:8","trueBody":{"id":1370,"nodeType":"Block","src":"2952:60:8","statements":[{"expression":{"arguments":[{"id":1358,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2967:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":1360,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2976:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"2976:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1362,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"2990:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1363,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"2996:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2990:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1359,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1314,"src":"2972:3:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2972:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3003:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2972:32:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1357,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1295,"src":"2960:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2960:45:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1369,"nodeType":"ExpressionStatement","src":"2960:45:8"}]}},{"assignments":[1373],"declarations":[{"constant":false,"id":1373,"mutability":"mutable","name":"dest","nameLocation":"3026:4:8","nodeType":"VariableDeclaration","scope":1413,"src":"3018:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1372,"name":"uint256","nodeType":"ElementaryTypeName","src":"3018:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1374,"nodeType":"VariableDeclarationStatement","src":"3018:12:8"},{"assignments":[1376],"declarations":[{"constant":false,"id":1376,"mutability":"mutable","name":"src","nameLocation":"3044:3:8","nodeType":"VariableDeclaration","scope":1413,"src":"3036:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1375,"name":"uint256","nodeType":"ElementaryTypeName","src":"3036:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1377,"nodeType":"VariableDeclarationStatement","src":"3036:11:8"},{"AST":{"nodeType":"YulBlock","src":"3062:430:8","statements":[{"nodeType":"YulVariableDeclaration","src":"3113:24:8","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"3133:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3127:5:8"},"nodeType":"YulFunctionCall","src":"3127:10:8"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"3117:6:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3184:27:8","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3204:6:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3198:5:8"},"nodeType":"YulFunctionCall","src":"3198:13:8"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"3188:6:8","type":""}]},{"nodeType":"YulAssignment","src":"3291:33:8","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3307:6:8"},{"kind":"number","nodeType":"YulLiteral","src":"3315:2:8","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3303:3:8"},"nodeType":"YulFunctionCall","src":"3303:15:8"},{"name":"off","nodeType":"YulIdentifier","src":"3320:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3299:3:8"},"nodeType":"YulFunctionCall","src":"3299:25:8"},"variableNames":[{"name":"dest","nodeType":"YulIdentifier","src":"3291:4:8"}]},{"body":{"nodeType":"YulBlock","src":"3412:47:8","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"3429:6:8"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3441:3:8"},{"name":"off","nodeType":"YulIdentifier","src":"3446:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3437:3:8"},"nodeType":"YulFunctionCall","src":"3437:13:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3422:6:8"},"nodeType":"YulFunctionCall","src":"3422:29:8"},"nodeType":"YulExpressionStatement","src":"3422:29:8"}]},"condition":{"arguments":[{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"3393:3:8"},{"name":"off","nodeType":"YulIdentifier","src":"3398:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3389:3:8"},"nodeType":"YulFunctionCall","src":"3389:13:8"},{"name":"buflen","nodeType":"YulIdentifier","src":"3404:6:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3386:2:8"},"nodeType":"YulFunctionCall","src":"3386:25:8"},"nodeType":"YulIf","src":"3383:2:8"},{"nodeType":"YulAssignment","src":"3466:20:8","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3477:4:8"},{"kind":"number","nodeType":"YulLiteral","src":"3483:2:8","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3473:3:8"},"nodeType":"YulFunctionCall","src":"3473:13:8"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"3466:3:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1332,"isOffset":false,"isSlot":false,"src":"3133:3:8","valueSize":1},{"declaration":1336,"isOffset":false,"isSlot":false,"src":"3477:4:8","valueSize":1},{"declaration":1373,"isOffset":false,"isSlot":false,"src":"3291:4:8","valueSize":1},{"declaration":1338,"isOffset":false,"isSlot":false,"src":"3393:3:8","valueSize":1},{"declaration":1338,"isOffset":false,"isSlot":false,"src":"3441:3:8","valueSize":1},{"declaration":1334,"isOffset":false,"isSlot":false,"src":"3320:3:8","valueSize":1},{"declaration":1334,"isOffset":false,"isSlot":false,"src":"3398:3:8","valueSize":1},{"declaration":1334,"isOffset":false,"isSlot":false,"src":"3446:3:8","valueSize":1},{"declaration":1376,"isOffset":false,"isSlot":false,"src":"3466:3:8","valueSize":1}],"id":1378,"nodeType":"InlineAssembly","src":"3053:439:8"},{"body":{"id":1395,"nodeType":"Block","src":"3573:100:8","statements":[{"AST":{"nodeType":"YulBlock","src":"3590:42:8","statements":[{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3607:4:8"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3619:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3613:5:8"},"nodeType":"YulFunctionCall","src":"3613:10:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3600:6:8"},"nodeType":"YulFunctionCall","src":"3600:24:8"},"nodeType":"YulExpressionStatement","src":"3600:24:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1373,"isOffset":false,"isSlot":false,"src":"3607:4:8","valueSize":1},{"declaration":1376,"isOffset":false,"isSlot":false,"src":"3619:3:8","valueSize":1}],"id":1386,"nodeType":"InlineAssembly","src":"3581:51:8"},{"expression":{"id":1389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1387,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1373,"src":"3639:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3647:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3639:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1390,"nodeType":"ExpressionStatement","src":"3639:10:8"},{"expression":{"id":1393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1391,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"3657:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":1392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3664:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3657:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1394,"nodeType":"ExpressionStatement","src":"3657:9:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1379,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"3551:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":1380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3558:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3551:9:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1396,"loopExpression":{"expression":{"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1382,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"3562:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":1383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3569:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3562:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1385,"nodeType":"ExpressionStatement","src":"3562:9:8"},"nodeType":"ForStatement","src":"3544:129:8"},{"id":1410,"nodeType":"UncheckedBlock","src":"3707:227:8","statements":[{"assignments":[1398],"declarations":[{"constant":false,"id":1398,"mutability":"mutable","name":"mask","nameLocation":"3733:4:8","nodeType":"VariableDeclaration","scope":1410,"src":"3725:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1397,"name":"uint256","nodeType":"ElementaryTypeName","src":"3725:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1408,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3741:3:8","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3747:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1401,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"3752:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3747:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1403,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3746:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3741:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3740:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3760:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3740:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3725:36:8"},{"AST":{"nodeType":"YulBlock","src":"3778:150:8","statements":[{"nodeType":"YulVariableDeclaration","src":"3788:41:8","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3813:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3807:5:8"},"nodeType":"YulFunctionCall","src":"3807:10:8"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"3823:4:8"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3819:3:8"},"nodeType":"YulFunctionCall","src":"3819:9:8"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3803:3:8"},"nodeType":"YulFunctionCall","src":"3803:26:8"},"variables":[{"name":"srcpart","nodeType":"YulTypedName","src":"3792:7:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3838:38:8","value":{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3864:4:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3858:5:8"},"nodeType":"YulFunctionCall","src":"3858:11:8"},{"name":"mask","nodeType":"YulIdentifier","src":"3871:4:8"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3854:3:8"},"nodeType":"YulFunctionCall","src":"3854:22:8"},"variables":[{"name":"destpart","nodeType":"YulTypedName","src":"3842:8:8","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"3892:4:8"},{"arguments":[{"name":"destpart","nodeType":"YulIdentifier","src":"3901:8:8"},{"name":"srcpart","nodeType":"YulIdentifier","src":"3911:7:8"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"3898:2:8"},"nodeType":"YulFunctionCall","src":"3898:21:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3885:6:8"},"nodeType":"YulFunctionCall","src":"3885:35:8"},"nodeType":"YulExpressionStatement","src":"3885:35:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1373,"isOffset":false,"isSlot":false,"src":"3864:4:8","valueSize":1},{"declaration":1373,"isOffset":false,"isSlot":false,"src":"3892:4:8","valueSize":1},{"declaration":1398,"isOffset":false,"isSlot":false,"src":"3823:4:8","valueSize":1},{"declaration":1398,"isOffset":false,"isSlot":false,"src":"3871:4:8","valueSize":1},{"declaration":1376,"isOffset":false,"isSlot":false,"src":"3813:3:8","valueSize":1}],"id":1409,"nodeType":"InlineAssembly","src":"3769:159:8"}]},{"expression":{"id":1411,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"3947:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1343,"id":1412,"nodeType":"Return","src":"3940:10:8"}]},"documentation":{"id":1329,"nodeType":"StructuredDocumentation","src":"2401:341:8","text":" @dev Writes a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The start offset to write to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1414,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"2754:5:8","nodeType":"FunctionDefinition","parameters":{"id":1339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1332,"mutability":"mutable","name":"buf","nameLocation":"2779:3:8","nodeType":"VariableDeclaration","scope":1414,"src":"2765:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1331,"nodeType":"UserDefinedTypeName","pathNode":{"id":1330,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2765:6:8"},"referencedDeclaration":1204,"src":"2765:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1334,"mutability":"mutable","name":"off","nameLocation":"2796:3:8","nodeType":"VariableDeclaration","scope":1414,"src":"2788:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1333,"name":"uint256","nodeType":"ElementaryTypeName","src":"2788:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1336,"mutability":"mutable","name":"data","nameLocation":"2818:4:8","nodeType":"VariableDeclaration","scope":1414,"src":"2805:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1335,"name":"bytes","nodeType":"ElementaryTypeName","src":"2805:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1338,"mutability":"mutable","name":"len","nameLocation":"2836:3:8","nodeType":"VariableDeclaration","scope":1414,"src":"2828:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1337,"name":"uint256","nodeType":"ElementaryTypeName","src":"2828:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2759:84:8"},"returnParameters":{"id":1343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1414,"src":"2867:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1341,"nodeType":"UserDefinedTypeName","pathNode":{"id":1340,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2867:6:8"},"referencedDeclaration":1204,"src":"2867:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"2866:15:8"},"scope":1718,"src":"2745:1210:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1437,"nodeType":"Block","src":"4379:55:8","statements":[{"expression":{"arguments":[{"id":1429,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1418,"src":"4398:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1430,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1418,"src":"4403:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"4403:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4403:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1433,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1420,"src":"4419:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1434,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"4425:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1428,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1414,1574],"referencedDeclaration":1414,"src":"4392:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4392:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1427,"id":1436,"nodeType":"Return","src":"4385:44:8"}]},"documentation":{"id":1415,"nodeType":"StructuredDocumentation","src":"3959:296:8","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @param len The number of bytes to copy.\n @return The original buffer, for chaining."},"id":1438,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4267:6:8","nodeType":"FunctionDefinition","parameters":{"id":1423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1418,"mutability":"mutable","name":"buf","nameLocation":"4293:3:8","nodeType":"VariableDeclaration","scope":1438,"src":"4279:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1417,"nodeType":"UserDefinedTypeName","pathNode":{"id":1416,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"4279:6:8"},"referencedDeclaration":1204,"src":"4279:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1420,"mutability":"mutable","name":"data","nameLocation":"4315:4:8","nodeType":"VariableDeclaration","scope":1438,"src":"4302:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1419,"name":"bytes","nodeType":"ElementaryTypeName","src":"4302:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1422,"mutability":"mutable","name":"len","nameLocation":"4333:3:8","nodeType":"VariableDeclaration","scope":1438,"src":"4325:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1421,"name":"uint256","nodeType":"ElementaryTypeName","src":"4325:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4273:67:8"},"returnParameters":{"id":1427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1438,"src":"4364:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1425,"nodeType":"UserDefinedTypeName","pathNode":{"id":1424,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"4364:6:8"},"referencedDeclaration":1204,"src":"4364:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4363:15:8"},"scope":1718,"src":"4258:176:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1460,"nodeType":"Block","src":"4784:63:8","statements":[{"expression":{"arguments":[{"id":1451,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1442,"src":"4803:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1452,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1442,"src":"4808:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"4808:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4808:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1455,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1444,"src":"4824:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":1456,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1444,"src":"4830:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4830:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1450,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1414,1574],"referencedDeclaration":1414,"src":"4797:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes memory,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4797:45:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1449,"id":1459,"nodeType":"Return","src":"4790:52:8"}]},"documentation":{"id":1439,"nodeType":"StructuredDocumentation","src":"4438:251:8","text":" @dev Appends a byte string to a buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1461,"implemented":true,"kind":"function","modifiers":[],"name":"append","nameLocation":"4701:6:8","nodeType":"FunctionDefinition","parameters":{"id":1445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1442,"mutability":"mutable","name":"buf","nameLocation":"4722:3:8","nodeType":"VariableDeclaration","scope":1461,"src":"4708:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1441,"nodeType":"UserDefinedTypeName","pathNode":{"id":1440,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"4708:6:8"},"referencedDeclaration":1204,"src":"4708:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1444,"mutability":"mutable","name":"data","nameLocation":"4740:4:8","nodeType":"VariableDeclaration","scope":1461,"src":"4727:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1443,"name":"bytes","nodeType":"ElementaryTypeName","src":"4727:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4707:38:8"},"returnParameters":{"id":1449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1461,"src":"4769:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1447,"nodeType":"UserDefinedTypeName","pathNode":{"id":1446,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"4769:6:8"},"referencedDeclaration":1204,"src":"4769:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"4768:15:8"},"scope":1718,"src":"4692:155:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1492,"nodeType":"Block","src":"5266:521:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1475,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1467,"src":"5276:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":1476,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"5283:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"5283:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5276:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1488,"nodeType":"IfStatement","src":"5272:69:8","trueBody":{"id":1487,"nodeType":"Block","src":"5297:44:8","statements":[{"expression":{"arguments":[{"id":1480,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"5312:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1481,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"5317:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"5317:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5332:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"5317:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1479,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1295,"src":"5305:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5305:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1486,"nodeType":"ExpressionStatement","src":"5305:29:8"}]}},{"AST":{"nodeType":"YulBlock","src":"5356:411:8","statements":[{"nodeType":"YulVariableDeclaration","src":"5407:24:8","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"5427:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5421:5:8"},"nodeType":"YulFunctionCall","src":"5421:10:8"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"5411:6:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5478:27:8","value":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5498:6:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5492:5:8"},"nodeType":"YulFunctionCall","src":"5492:13:8"},"variables":[{"name":"buflen","nodeType":"YulTypedName","src":"5482:6:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5576:37:8","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5596:6:8"},{"name":"off","nodeType":"YulIdentifier","src":"5604:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5592:3:8"},"nodeType":"YulFunctionCall","src":"5592:16:8"},{"kind":"number","nodeType":"YulLiteral","src":"5610:2:8","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5588:3:8"},"nodeType":"YulFunctionCall","src":"5588:25:8"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"5580:4:8","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"5628:4:8"},{"name":"data","nodeType":"YulIdentifier","src":"5634:4:8"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"5620:7:8"},"nodeType":"YulFunctionCall","src":"5620:19:8"},"nodeType":"YulExpressionStatement","src":"5620:19:8"},{"body":{"nodeType":"YulBlock","src":"5713:48:8","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"5730:6:8"},{"arguments":[{"name":"buflen","nodeType":"YulIdentifier","src":"5742:6:8"},{"kind":"number","nodeType":"YulLiteral","src":"5750:1:8","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5738:3:8"},"nodeType":"YulFunctionCall","src":"5738:14:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5723:6:8"},"nodeType":"YulFunctionCall","src":"5723:30:8"},"nodeType":"YulExpressionStatement","src":"5723:30:8"}]},"condition":{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"5700:3:8"},{"name":"buflen","nodeType":"YulIdentifier","src":"5705:6:8"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5697:2:8"},"nodeType":"YulFunctionCall","src":"5697:15:8"},"nodeType":"YulIf","src":"5694:2:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1465,"isOffset":false,"isSlot":false,"src":"5427:3:8","valueSize":1},{"declaration":1469,"isOffset":false,"isSlot":false,"src":"5634:4:8","valueSize":1},{"declaration":1467,"isOffset":false,"isSlot":false,"src":"5604:3:8","valueSize":1},{"declaration":1467,"isOffset":false,"isSlot":false,"src":"5700:3:8","valueSize":1}],"id":1489,"nodeType":"InlineAssembly","src":"5347:420:8"},{"expression":{"id":1490,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"5779:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1474,"id":1491,"nodeType":"Return","src":"5772:10:8"}]},"documentation":{"id":1462,"nodeType":"StructuredDocumentation","src":"4851:294:8","text":" @dev Writes a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write the byte at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1493,"implemented":true,"kind":"function","modifiers":[],"name":"writeUint8","nameLocation":"5157:10:8","nodeType":"FunctionDefinition","parameters":{"id":1470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1465,"mutability":"mutable","name":"buf","nameLocation":"5187:3:8","nodeType":"VariableDeclaration","scope":1493,"src":"5173:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1464,"nodeType":"UserDefinedTypeName","pathNode":{"id":1463,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"5173:6:8"},"referencedDeclaration":1204,"src":"5173:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1467,"mutability":"mutable","name":"off","nameLocation":"5204:3:8","nodeType":"VariableDeclaration","scope":1493,"src":"5196:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1466,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1469,"mutability":"mutable","name":"data","nameLocation":"5219:4:8","nodeType":"VariableDeclaration","scope":1493,"src":"5213:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1468,"name":"uint8","nodeType":"ElementaryTypeName","src":"5213:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5167:60:8"},"returnParameters":{"id":1474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1493,"src":"5251:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1472,"nodeType":"UserDefinedTypeName","pathNode":{"id":1471,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"5251:6:8"},"referencedDeclaration":1204,"src":"5251:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"5250:15:8"},"scope":1718,"src":"5148:639:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1513,"nodeType":"Block","src":"6130:55:8","statements":[{"expression":{"arguments":[{"id":1506,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"6154:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1507,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1497,"src":"6159:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"6159:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6159:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1510,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1499,"src":"6175:4:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1505,"name":"writeUint8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"6143:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6143:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1504,"id":1512,"nodeType":"Return","src":"6136:44:8"}]},"documentation":{"id":1494,"nodeType":"StructuredDocumentation","src":"5791:246:8","text":" @dev Appends a byte to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1514,"implemented":true,"kind":"function","modifiers":[],"name":"appendUint8","nameLocation":"6049:11:8","nodeType":"FunctionDefinition","parameters":{"id":1500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1497,"mutability":"mutable","name":"buf","nameLocation":"6075:3:8","nodeType":"VariableDeclaration","scope":1514,"src":"6061:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1496,"nodeType":"UserDefinedTypeName","pathNode":{"id":1495,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"6061:6:8"},"referencedDeclaration":1204,"src":"6061:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1499,"mutability":"mutable","name":"data","nameLocation":"6086:4:8","nodeType":"VariableDeclaration","scope":1514,"src":"6080:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1498,"name":"uint8","nodeType":"ElementaryTypeName","src":"6080:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6060:31:8"},"returnParameters":{"id":1504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1503,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1514,"src":"6115:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1502,"nodeType":"UserDefinedTypeName","pathNode":{"id":1501,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"6115:6:8"},"referencedDeclaration":1204,"src":"6115:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6114:15:8"},"scope":1718,"src":"6040:145:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1573,"nodeType":"Block","src":"6677:652:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1530,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"6687:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1531,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"6693:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1533,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1518,"src":"6699:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"6699:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6687:24:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1547,"nodeType":"IfStatement","src":"6683:73:8","trueBody":{"id":1546,"nodeType":"Block","src":"6713:43:8","statements":[{"expression":{"arguments":[{"id":1537,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1518,"src":"6728:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1538,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"6734:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1539,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"6740:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6734:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1541,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6733:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6747:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6733:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1536,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1295,"src":"6721:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6721:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1545,"nodeType":"ExpressionStatement","src":"6721:28:8"}]}},{"id":1570,"nodeType":"UncheckedBlock","src":"6762:547:8","statements":[{"assignments":[1549],"declarations":[{"constant":false,"id":1549,"mutability":"mutable","name":"mask","nameLocation":"6788:4:8","nodeType":"VariableDeclaration","scope":1570,"src":"6780:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1548,"name":"uint256","nodeType":"ElementaryTypeName","src":"6780:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1556,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6796:3:8","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1551,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"6801:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6796:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1553,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6795:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6808:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6795:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6780:29:8"},{"expression":{"id":1567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1557,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"6843:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1558,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"6850:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"38","id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6859:1:8","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":1560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6864:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1561,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"6869:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6864:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1563,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6863:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6859:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1565,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6858:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6850:24:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6843:31:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1568,"nodeType":"ExpressionStatement","src":"6843:31:8"},{"AST":{"nodeType":"YulBlock","src":"6891:412:8","statements":[{"nodeType":"YulVariableDeclaration","src":"6946:24:8","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"6966:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6960:5:8"},"nodeType":"YulFunctionCall","src":"6960:10:8"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"6950:6:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7051:38:8","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7071:6:8"},{"name":"off","nodeType":"YulIdentifier","src":"7079:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7067:3:8"},"nodeType":"YulFunctionCall","src":"7067:16:8"},{"name":"len","nodeType":"YulIdentifier","src":"7085:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7063:3:8"},"nodeType":"YulFunctionCall","src":"7063:26:8"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"7055:4:8","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7105:4:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"7124:4:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7118:5:8"},"nodeType":"YulFunctionCall","src":"7118:11:8"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"7135:4:8"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7131:3:8"},"nodeType":"YulFunctionCall","src":"7131:9:8"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7114:3:8"},"nodeType":"YulFunctionCall","src":"7114:27:8"},{"name":"data","nodeType":"YulIdentifier","src":"7143:4:8"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7111:2:8"},"nodeType":"YulFunctionCall","src":"7111:37:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7098:6:8"},"nodeType":"YulFunctionCall","src":"7098:51:8"},"nodeType":"YulExpressionStatement","src":"7098:51:8"},{"body":{"nodeType":"YulBlock","src":"7244:51:8","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7263:6:8"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7275:3:8"},{"name":"len","nodeType":"YulIdentifier","src":"7280:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7271:3:8"},"nodeType":"YulFunctionCall","src":"7271:13:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7256:6:8"},"nodeType":"YulFunctionCall","src":"7256:29:8"},"nodeType":"YulExpressionStatement","src":"7256:29:8"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"7218:3:8"},{"name":"len","nodeType":"YulIdentifier","src":"7223:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7214:3:8"},"nodeType":"YulFunctionCall","src":"7214:13:8"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"7235:6:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7229:5:8"},"nodeType":"YulFunctionCall","src":"7229:13:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7211:2:8"},"nodeType":"YulFunctionCall","src":"7211:32:8"},"nodeType":"YulIf","src":"7208:2:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1518,"isOffset":false,"isSlot":false,"src":"6966:3:8","valueSize":1},{"declaration":1522,"isOffset":false,"isSlot":false,"src":"7143:4:8","valueSize":1},{"declaration":1524,"isOffset":false,"isSlot":false,"src":"7085:3:8","valueSize":1},{"declaration":1524,"isOffset":false,"isSlot":false,"src":"7223:3:8","valueSize":1},{"declaration":1524,"isOffset":false,"isSlot":false,"src":"7280:3:8","valueSize":1},{"declaration":1549,"isOffset":false,"isSlot":false,"src":"7135:4:8","valueSize":1},{"declaration":1520,"isOffset":false,"isSlot":false,"src":"7079:3:8","valueSize":1},{"declaration":1520,"isOffset":false,"isSlot":false,"src":"7218:3:8","valueSize":1},{"declaration":1520,"isOffset":false,"isSlot":false,"src":"7275:3:8","valueSize":1}],"id":1569,"nodeType":"InlineAssembly","src":"6882:421:8"}]},{"expression":{"id":1571,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1518,"src":"7321:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1529,"id":1572,"nodeType":"Return","src":"7314:10:8"}]},"documentation":{"id":1515,"nodeType":"StructuredDocumentation","src":"6189:354:8","text":" @dev Writes up to 32 bytes to the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (left-aligned).\n @return The original buffer, for chaining."},"id":1574,"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"6555:5:8","nodeType":"FunctionDefinition","parameters":{"id":1525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1518,"mutability":"mutable","name":"buf","nameLocation":"6580:3:8","nodeType":"VariableDeclaration","scope":1574,"src":"6566:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1517,"nodeType":"UserDefinedTypeName","pathNode":{"id":1516,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"6566:6:8"},"referencedDeclaration":1204,"src":"6566:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1520,"mutability":"mutable","name":"off","nameLocation":"6597:3:8","nodeType":"VariableDeclaration","scope":1574,"src":"6589:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1519,"name":"uint256","nodeType":"ElementaryTypeName","src":"6589:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1522,"mutability":"mutable","name":"data","nameLocation":"6614:4:8","nodeType":"VariableDeclaration","scope":1574,"src":"6606:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6606:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1524,"mutability":"mutable","name":"len","nameLocation":"6632:3:8","nodeType":"VariableDeclaration","scope":1574,"src":"6624:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1523,"name":"uint256","nodeType":"ElementaryTypeName","src":"6624:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6560:79:8"},"returnParameters":{"id":1529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1528,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1574,"src":"6662:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1527,"nodeType":"UserDefinedTypeName","pathNode":{"id":1526,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"6662:6:8"},"referencedDeclaration":1204,"src":"6662:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"6661:15:8"},"scope":1718,"src":"6546:783:8","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1598,"nodeType":"Block","src":"7746:52:8","statements":[{"expression":{"arguments":[{"id":1589,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1578,"src":"7765:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1590,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1580,"src":"7770:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1593,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1582,"src":"7783:4:8","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7775:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7775:7:8","typeDescriptions":{}}},"id":1594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7775:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7790:2:8","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1588,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1414,1574],"referencedDeclaration":1574,"src":"7759:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7759:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1587,"id":1597,"nodeType":"Return","src":"7752:41:8"}]},"documentation":{"id":1575,"nodeType":"StructuredDocumentation","src":"7333:288:8","text":" @dev Writes a bytes20 to the buffer. Resizes if doing so would exceed the\n capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1599,"implemented":true,"kind":"function","modifiers":[],"name":"writeBytes20","nameLocation":"7633:12:8","nodeType":"FunctionDefinition","parameters":{"id":1583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1578,"mutability":"mutable","name":"buf","nameLocation":"7665:3:8","nodeType":"VariableDeclaration","scope":1599,"src":"7651:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1577,"nodeType":"UserDefinedTypeName","pathNode":{"id":1576,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"7651:6:8"},"referencedDeclaration":1204,"src":"7651:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1580,"mutability":"mutable","name":"off","nameLocation":"7682:3:8","nodeType":"VariableDeclaration","scope":1599,"src":"7674:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1579,"name":"uint256","nodeType":"ElementaryTypeName","src":"7674:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1582,"mutability":"mutable","name":"data","nameLocation":"7699:4:8","nodeType":"VariableDeclaration","scope":1599,"src":"7691:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1581,"name":"bytes20","nodeType":"ElementaryTypeName","src":"7691:7:8","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"7645:62:8"},"returnParameters":{"id":1587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1599,"src":"7731:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1585,"nodeType":"UserDefinedTypeName","pathNode":{"id":1584,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"7731:6:8"},"referencedDeclaration":1204,"src":"7731:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"7730:15:8"},"scope":1718,"src":"7624:174:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1623,"nodeType":"Block","src":"8149:63:8","statements":[{"expression":{"arguments":[{"id":1612,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1603,"src":"8168:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1613,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1603,"src":"8173:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"8173:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8173:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":1618,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1605,"src":"8197:4:8","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"id":1617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8189:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8189:7:8","typeDescriptions":{}}},"id":1619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8189:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3230","id":1620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8204:2:8","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"id":1611,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1414,1574],"referencedDeclaration":1574,"src":"8162:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8162:45:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1610,"id":1622,"nodeType":"Return","src":"8155:52:8"}]},"documentation":{"id":1600,"nodeType":"StructuredDocumentation","src":"7802:250:8","text":" @dev Appends a bytes20 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chhaining."},"id":1624,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes20","nameLocation":"8064:13:8","nodeType":"FunctionDefinition","parameters":{"id":1606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1603,"mutability":"mutable","name":"buf","nameLocation":"8092:3:8","nodeType":"VariableDeclaration","scope":1624,"src":"8078:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1602,"nodeType":"UserDefinedTypeName","pathNode":{"id":1601,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"8078:6:8"},"referencedDeclaration":1204,"src":"8078:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1605,"mutability":"mutable","name":"data","nameLocation":"8105:4:8","nodeType":"VariableDeclaration","scope":1624,"src":"8097:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":1604,"name":"bytes20","nodeType":"ElementaryTypeName","src":"8097:7:8","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"8077:33:8"},"returnParameters":{"id":1610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1624,"src":"8134:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1608,"nodeType":"UserDefinedTypeName","pathNode":{"id":1607,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"8134:6:8"},"referencedDeclaration":1204,"src":"8134:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8133:15:8"},"scope":1718,"src":"8055:157:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1645,"nodeType":"Block","src":"8562:54:8","statements":[{"expression":{"arguments":[{"id":1637,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1628,"src":"8581:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1638,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1628,"src":"8586:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"8586:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"8586:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1641,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1630,"src":"8602:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"3332","id":1642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8608:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"id":1636,"name":"write","nodeType":"Identifier","overloadedDeclarations":[1414,1574],"referencedDeclaration":1574,"src":"8575:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,bytes32,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8575:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1635,"id":1644,"nodeType":"Return","src":"8568:43:8"}]},"documentation":{"id":1625,"nodeType":"StructuredDocumentation","src":"8216:249:8","text":" @dev Appends a bytes32 to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer, for chaining."},"id":1646,"implemented":true,"kind":"function","modifiers":[],"name":"appendBytes32","nameLocation":"8477:13:8","nodeType":"FunctionDefinition","parameters":{"id":1631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1628,"mutability":"mutable","name":"buf","nameLocation":"8505:3:8","nodeType":"VariableDeclaration","scope":1646,"src":"8491:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1627,"nodeType":"UserDefinedTypeName","pathNode":{"id":1626,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"8491:6:8"},"referencedDeclaration":1204,"src":"8491:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1630,"mutability":"mutable","name":"data","nameLocation":"8518:4:8","nodeType":"VariableDeclaration","scope":1646,"src":"8510:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8510:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8490:33:8"},"returnParameters":{"id":1635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1646,"src":"8547:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1633,"nodeType":"UserDefinedTypeName","pathNode":{"id":1632,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"8547:6:8"},"referencedDeclaration":1204,"src":"8547:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"8546:15:8"},"scope":1718,"src":"8468:148:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1692,"nodeType":"Block","src":"9108:541:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1662,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"9118:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1663,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"9124:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":1665,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1650,"src":"9130:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capacity","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"9130:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9118:24:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1679,"nodeType":"IfStatement","src":"9114:73:8","trueBody":{"id":1678,"nodeType":"Block","src":"9144:43:8","statements":[{"expression":{"arguments":[{"id":1669,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1650,"src":"9159:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1670,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"9165:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1671,"name":"off","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"9171:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9165:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1673,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9164:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":1674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9178:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9164:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1668,"name":"resize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1295,"src":"9152:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9152:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1677,"nodeType":"ExpressionStatement","src":"9152:28:8"}]}},{"assignments":[1681],"declarations":[{"constant":false,"id":1681,"mutability":"mutable","name":"mask","nameLocation":"9201:4:8","nodeType":"VariableDeclaration","scope":1692,"src":"9193:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1680,"name":"uint256","nodeType":"ElementaryTypeName","src":"9193:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1688,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":1682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9209:3:8","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":1683,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"9214:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9209:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1685,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9208:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9221:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9208:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9193:29:8"},{"AST":{"nodeType":"YulBlock","src":"9237:392:8","statements":[{"nodeType":"YulVariableDeclaration","src":"9288:24:8","value":{"arguments":[{"name":"buf","nodeType":"YulIdentifier","src":"9308:3:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9302:5:8"},"nodeType":"YulFunctionCall","src":"9302:10:8"},"variables":[{"name":"bufptr","nodeType":"YulTypedName","src":"9292:6:8","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9389:38:8","value":{"arguments":[{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9409:6:8"},{"name":"off","nodeType":"YulIdentifier","src":"9417:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9405:3:8"},"nodeType":"YulFunctionCall","src":"9405:16:8"},{"name":"len","nodeType":"YulIdentifier","src":"9423:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9401:3:8"},"nodeType":"YulFunctionCall","src":"9401:26:8"},"variables":[{"name":"dest","nodeType":"YulTypedName","src":"9393:4:8","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9441:4:8"},{"arguments":[{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"9460:4:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9454:5:8"},"nodeType":"YulFunctionCall","src":"9454:11:8"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"9471:4:8"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9467:3:8"},"nodeType":"YulFunctionCall","src":"9467:9:8"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9450:3:8"},"nodeType":"YulFunctionCall","src":"9450:27:8"},{"name":"data","nodeType":"YulIdentifier","src":"9479:4:8"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"9447:2:8"},"nodeType":"YulFunctionCall","src":"9447:37:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9434:6:8"},"nodeType":"YulFunctionCall","src":"9434:51:8"},"nodeType":"YulExpressionStatement","src":"9434:51:8"},{"body":{"nodeType":"YulBlock","src":"9576:47:8","statements":[{"expression":{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9593:6:8"},{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9605:3:8"},{"name":"len","nodeType":"YulIdentifier","src":"9610:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9601:3:8"},"nodeType":"YulFunctionCall","src":"9601:13:8"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9586:6:8"},"nodeType":"YulFunctionCall","src":"9586:29:8"},"nodeType":"YulExpressionStatement","src":"9586:29:8"}]},"condition":{"arguments":[{"arguments":[{"name":"off","nodeType":"YulIdentifier","src":"9550:3:8"},{"name":"len","nodeType":"YulIdentifier","src":"9555:3:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9546:3:8"},"nodeType":"YulFunctionCall","src":"9546:13:8"},{"arguments":[{"name":"bufptr","nodeType":"YulIdentifier","src":"9567:6:8"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9561:5:8"},"nodeType":"YulFunctionCall","src":"9561:13:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9543:2:8"},"nodeType":"YulFunctionCall","src":"9543:32:8"},"nodeType":"YulIf","src":"9540:2:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1650,"isOffset":false,"isSlot":false,"src":"9308:3:8","valueSize":1},{"declaration":1654,"isOffset":false,"isSlot":false,"src":"9479:4:8","valueSize":1},{"declaration":1656,"isOffset":false,"isSlot":false,"src":"9423:3:8","valueSize":1},{"declaration":1656,"isOffset":false,"isSlot":false,"src":"9555:3:8","valueSize":1},{"declaration":1656,"isOffset":false,"isSlot":false,"src":"9610:3:8","valueSize":1},{"declaration":1681,"isOffset":false,"isSlot":false,"src":"9471:4:8","valueSize":1},{"declaration":1652,"isOffset":false,"isSlot":false,"src":"9417:3:8","valueSize":1},{"declaration":1652,"isOffset":false,"isSlot":false,"src":"9550:3:8","valueSize":1},{"declaration":1652,"isOffset":false,"isSlot":false,"src":"9605:3:8","valueSize":1}],"id":1689,"nodeType":"InlineAssembly","src":"9228:401:8"},{"expression":{"id":1690,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1650,"src":"9641:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1661,"id":1691,"nodeType":"Return","src":"9634:10:8"}]},"documentation":{"id":1647,"nodeType":"StructuredDocumentation","src":"8620:351:8","text":" @dev Writes an integer to the buffer. Resizes if doing so would exceed\n the capacity of the buffer.\n @param buf The buffer to append to.\n @param off The offset to write at.\n @param data The data to append.\n @param len The number of bytes to write (right-aligned).\n @return The original buffer, for chaining."},"id":1693,"implemented":true,"kind":"function","modifiers":[],"name":"writeInt","nameLocation":"8983:8:8","nodeType":"FunctionDefinition","parameters":{"id":1657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1650,"mutability":"mutable","name":"buf","nameLocation":"9011:3:8","nodeType":"VariableDeclaration","scope":1693,"src":"8997:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1649,"nodeType":"UserDefinedTypeName","pathNode":{"id":1648,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"8997:6:8"},"referencedDeclaration":1204,"src":"8997:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1652,"mutability":"mutable","name":"off","nameLocation":"9028:3:8","nodeType":"VariableDeclaration","scope":1693,"src":"9020:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1651,"name":"uint256","nodeType":"ElementaryTypeName","src":"9020:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1654,"mutability":"mutable","name":"data","nameLocation":"9045:4:8","nodeType":"VariableDeclaration","scope":1693,"src":"9037:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1653,"name":"uint256","nodeType":"ElementaryTypeName","src":"9037:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1656,"mutability":"mutable","name":"len","nameLocation":"9063:3:8","nodeType":"VariableDeclaration","scope":1693,"src":"9055:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1655,"name":"uint256","nodeType":"ElementaryTypeName","src":"9055:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8991:79:8"},"returnParameters":{"id":1661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1693,"src":"9093:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1659,"nodeType":"UserDefinedTypeName","pathNode":{"id":1658,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"9093:6:8"},"referencedDeclaration":1204,"src":"9093:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9092:15:8"},"scope":1718,"src":"8974:675:8","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1716,"nodeType":"Block","src":"10013:58:8","statements":[{"expression":{"arguments":[{"id":1708,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"10035:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"expression":{"expression":{"id":1709,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"10040:3:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buf","nodeType":"MemberAccess","referencedDeclaration":1201,"src":"10040:7:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10040:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1712,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"10056:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1713,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"10062:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1707,"name":"writeInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1693,"src":"10026:8:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10026:40:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"functionReturnParameters":1706,"id":1715,"nodeType":"Return","src":"10019:47:8"}]},"documentation":{"id":1694,"nodeType":"StructuredDocumentation","src":"9653:238:8","text":" @dev Appends a byte to the end of the buffer. Resizes if doing so would\n exceed the capacity of the buffer.\n @param buf The buffer to append to.\n @param data The data to append.\n @return The original buffer."},"id":1717,"implemented":true,"kind":"function","modifiers":[],"name":"appendInt","nameLocation":"9903:9:8","nodeType":"FunctionDefinition","parameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1697,"mutability":"mutable","name":"buf","nameLocation":"9932:3:8","nodeType":"VariableDeclaration","scope":1717,"src":"9918:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1696,"nodeType":"UserDefinedTypeName","pathNode":{"id":1695,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"9918:6:8"},"referencedDeclaration":1204,"src":"9918:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1699,"mutability":"mutable","name":"data","nameLocation":"9949:4:8","nodeType":"VariableDeclaration","scope":1717,"src":"9941:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1698,"name":"uint256","nodeType":"ElementaryTypeName","src":"9941:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1701,"mutability":"mutable","name":"len","nameLocation":"9967:3:8","nodeType":"VariableDeclaration","scope":1717,"src":"9959:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1700,"name":"uint256","nodeType":"ElementaryTypeName","src":"9959:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9912:62:8"},"returnParameters":{"id":1706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1717,"src":"9998:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1704,"nodeType":"UserDefinedTypeName","pathNode":{"id":1703,"name":"buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"9998:6:8"},"referencedDeclaration":1204,"src":"9998:6:8","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"9997:15:8"},"scope":1718,"src":"9894:177:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1719,"src":"441:9632:8"}],"src":"32:10042:8"},"id":8},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol","exportedSymbols":{"BufferChainlink":[1718],"CBORChainlink":[2165]},"id":2166,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1720,"literals":["solidity",">=","0.4",".19"],"nodeType":"PragmaDirective","src":"32:25:9"},{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol","file":"./BufferChainlink.sol","id":1722,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2166,"sourceUnit":1719,"src":"59:54:9","symbolAliases":[{"foreign":{"id":1721,"name":"BufferChainlink","nodeType":"Identifier","overloadedDeclarations":[],"src":"67:15:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2165,"linearizedBaseContracts":[2165],"name":"CBORChainlink","nameLocation":"123:13:9","nodeType":"ContractDefinition","nodes":[{"id":1726,"libraryName":{"id":1723,"name":"BufferChainlink","nodeType":"IdentifierPath","referencedDeclaration":1718,"src":"147:15:9"},"nodeType":"UsingForDirective","src":"141:49:9","typeName":{"id":1725,"nodeType":"UserDefinedTypeName","pathNode":{"id":1724,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"167:22:9"},"referencedDeclaration":1204,"src":"167:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}}},{"constant":true,"id":1729,"mutability":"constant","name":"MAJOR_TYPE_INT","nameLocation":"217:14:9","nodeType":"VariableDeclaration","scope":2165,"src":"194:41:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1727,"name":"uint8","nodeType":"ElementaryTypeName","src":"194:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":1728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"234:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"constant":true,"id":1732,"mutability":"constant","name":"MAJOR_TYPE_NEGATIVE_INT","nameLocation":"262:23:9","nodeType":"VariableDeclaration","scope":2165,"src":"239:50:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1730,"name":"uint8","nodeType":"ElementaryTypeName","src":"239:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"31","id":1731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"constant":true,"id":1735,"mutability":"constant","name":"MAJOR_TYPE_BYTES","nameLocation":"316:16:9","nodeType":"VariableDeclaration","scope":2165,"src":"293:43:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1733,"name":"uint8","nodeType":"ElementaryTypeName","src":"293:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"335:1:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1738,"mutability":"constant","name":"MAJOR_TYPE_STRING","nameLocation":"363:17:9","nodeType":"VariableDeclaration","scope":2165,"src":"340:44:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1736,"name":"uint8","nodeType":"ElementaryTypeName","src":"340:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"383:1:9","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"constant":true,"id":1741,"mutability":"constant","name":"MAJOR_TYPE_ARRAY","nameLocation":"411:16:9","nodeType":"VariableDeclaration","scope":2165,"src":"388:43:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1739,"name":"uint8","nodeType":"ElementaryTypeName","src":"388:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"34","id":1740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"430:1:9","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"private"},{"constant":true,"id":1744,"mutability":"constant","name":"MAJOR_TYPE_MAP","nameLocation":"458:14:9","nodeType":"VariableDeclaration","scope":2165,"src":"435:41:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1742,"name":"uint8","nodeType":"ElementaryTypeName","src":"435:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"35","id":1743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"475:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"visibility":"private"},{"constant":true,"id":1747,"mutability":"constant","name":"MAJOR_TYPE_TAG","nameLocation":"503:14:9","nodeType":"VariableDeclaration","scope":2165,"src":"480:41:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1745,"name":"uint8","nodeType":"ElementaryTypeName","src":"480:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"36","id":1746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"520:1:9","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"visibility":"private"},{"constant":true,"id":1750,"mutability":"constant","name":"MAJOR_TYPE_CONTENT_FREE","nameLocation":"548:23:9","nodeType":"VariableDeclaration","scope":2165,"src":"525:50:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1748,"name":"uint8","nodeType":"ElementaryTypeName","src":"525:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"37","id":1749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"574:1:9","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"private"},{"constant":true,"id":1753,"mutability":"constant","name":"TAG_TYPE_BIGNUM","nameLocation":"603:15:9","nodeType":"VariableDeclaration","scope":2165,"src":"580:42:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1751,"name":"uint8","nodeType":"ElementaryTypeName","src":"580:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"32","id":1752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"621:1:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"private"},{"constant":true,"id":1756,"mutability":"constant","name":"TAG_TYPE_NEGATIVE_BIGNUM","nameLocation":"649:24:9","nodeType":"VariableDeclaration","scope":2165,"src":"626:51:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1754,"name":"uint8","nodeType":"ElementaryTypeName","src":"626:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"33","id":1755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"676:1:9","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"private"},{"body":{"id":1885,"nodeType":"Block","src":"785:522:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1766,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"794:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3233","id":1767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"803:2:9","typeDescriptions":{"typeIdentifier":"t_rational_23_by_1","typeString":"int_const 23"},"value":"23"},"src":"794:11:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1784,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"876:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646","id":1785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"885:4:9","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"876:13:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1809,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"988:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"307846464646","id":1810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"997:6:9","typeDescriptions":{"typeIdentifier":"t_rational_65535_by_1","typeString":"int_const 65535"},"value":"0xFFFF"},"src":"988:15:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1834,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"1102:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30784646464646464646","id":1835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:10:9","typeDescriptions":{"typeIdentifier":"t_rational_4294967295_by_1","typeString":"int_const 4294967295"},"value":"0xFFFFFFFF"},"src":"1102:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1880,"nodeType":"Block","src":"1216:87:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1864,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"1247:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1256:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1247:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1867,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1246:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3237","id":1868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:2:9","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"1246:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1240:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1862,"name":"uint8","nodeType":"ElementaryTypeName","src":"1240:5:9","typeDescriptions":{}}},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1240:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1859,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1224:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"1224:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1224:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1872,"nodeType":"ExpressionStatement","src":"1224:41:9"},{"expression":{"arguments":[{"id":1876,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"1287:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"38","id":1877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1294:1:9","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"expression":{"id":1873,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1273:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1717,"src":"1273:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1273:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1879,"nodeType":"ExpressionStatement","src":"1273:23:9"}]},"id":1881,"nodeType":"IfStatement","src":"1098:205:9","trueBody":{"id":1858,"nodeType":"Block","src":"1123:87:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1842,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"1154:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1163:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1154:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1845,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1153:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3236","id":1846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1168:2:9","typeDescriptions":{"typeIdentifier":"t_rational_26_by_1","typeString":"int_const 26"},"value":"26"},"src":"1153:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1147:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1840,"name":"uint8","nodeType":"ElementaryTypeName","src":"1147:5:9","typeDescriptions":{}}},"id":1848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1147:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1837,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1131:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"1131:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1131:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1850,"nodeType":"ExpressionStatement","src":"1131:41:9"},{"expression":{"arguments":[{"id":1854,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"1194:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"34","id":1855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1201:1:9","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"expression":{"id":1851,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1180:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1717,"src":"1180:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1180:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1857,"nodeType":"ExpressionStatement","src":"1180:23:9"}]}},"id":1882,"nodeType":"IfStatement","src":"984:319:9","trueBody":{"id":1833,"nodeType":"Block","src":"1005:87:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1817,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"1036:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1036:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1820,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1035:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3235","id":1821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:2:9","typeDescriptions":{"typeIdentifier":"t_rational_25_by_1","typeString":"int_const 25"},"value":"25"},"src":"1035:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1029:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1815,"name":"uint8","nodeType":"ElementaryTypeName","src":"1029:5:9","typeDescriptions":{}}},"id":1823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1029:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1812,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1013:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"1013:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1013:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1825,"nodeType":"ExpressionStatement","src":"1013:41:9"},{"expression":{"arguments":[{"id":1829,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"1076:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"32","id":1830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1083:1:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":1826,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"1062:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1717,"src":"1062:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1062:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1832,"nodeType":"ExpressionStatement","src":"1062:23:9"}]}},"id":1883,"nodeType":"IfStatement","src":"872:431:9","trueBody":{"id":1808,"nodeType":"Block","src":"891:87:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1792,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"922:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"922:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1795,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"921:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3234","id":1796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:2:9","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"921:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"915:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1790,"name":"uint8","nodeType":"ElementaryTypeName","src":"915:5:9","typeDescriptions":{}}},"id":1798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"915:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1787,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"899:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"899:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"899:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1800,"nodeType":"ExpressionStatement","src":"899:41:9"},{"expression":{"arguments":[{"id":1804,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"962:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"hexValue":"31","id":1805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"969:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":1801,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"948:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendInt","nodeType":"MemberAccess","referencedDeclaration":1717,"src":"948:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint256,uint256) pure returns (struct BufferChainlink.buffer memory)"}},"id":1806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"948:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1807,"nodeType":"ExpressionStatement","src":"948:23:9"}]}},"id":1884,"nodeType":"IfStatement","src":"791:512:9","trueBody":{"id":1783,"nodeType":"Block","src":"807:59:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":1779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1774,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"838:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"847:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"838:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1777,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"837:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":1778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1763,"src":"852:5:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"837:20:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"831:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1772,"name":"uint8","nodeType":"ElementaryTypeName","src":"831:5:9","typeDescriptions":{}}},"id":1780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"831:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1769,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"815:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"815:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"815:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1782,"nodeType":"ExpressionStatement","src":"815:44:9"}]}}]},"id":1886,"implemented":true,"kind":"function","modifiers":[],"name":"encodeFixedNumeric","nameLocation":"691:18:9","nodeType":"FunctionDefinition","parameters":{"id":1764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1759,"mutability":"mutable","name":"buf","nameLocation":"740:3:9","nodeType":"VariableDeclaration","scope":1886,"src":"710:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1758,"nodeType":"UserDefinedTypeName","pathNode":{"id":1757,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"710:22:9"},"referencedDeclaration":1204,"src":"710:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1761,"mutability":"mutable","name":"major","nameLocation":"751:5:9","nodeType":"VariableDeclaration","scope":1886,"src":"745:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1760,"name":"uint8","nodeType":"ElementaryTypeName","src":"745:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1763,"mutability":"mutable","name":"value","nameLocation":"765:5:9","nodeType":"VariableDeclaration","scope":1886,"src":"758:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1762,"name":"uint64","nodeType":"ElementaryTypeName","src":"758:6:9","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"709:62:9"},"returnParameters":{"id":1765,"nodeType":"ParameterList","parameters":[],"src":"785:0:9"},"scope":2165,"src":"682:625:9","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1908,"nodeType":"Block","src":"1408:52:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1899,"name":"major","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1891,"src":"1437:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":1900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1446:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1437:10:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1902,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1436:12:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"hexValue":"3331","id":1903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1451:2:9","typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"src":"1436:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1430:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1897,"name":"uint8","nodeType":"ElementaryTypeName","src":"1430:5:9","typeDescriptions":{}}},"id":1905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1430:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":1894,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1889,"src":"1414:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"1414:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:41:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":1907,"nodeType":"ExpressionStatement","src":"1414:41:9"}]},"id":1909,"implemented":true,"kind":"function","modifiers":[],"name":"encodeIndefiniteLengthType","nameLocation":"1320:26:9","nodeType":"FunctionDefinition","parameters":{"id":1892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1889,"mutability":"mutable","name":"buf","nameLocation":"1377:3:9","nodeType":"VariableDeclaration","scope":1909,"src":"1347:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1888,"nodeType":"UserDefinedTypeName","pathNode":{"id":1887,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1347:22:9"},"referencedDeclaration":1204,"src":"1347:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1891,"mutability":"mutable","name":"major","nameLocation":"1388:5:9","nodeType":"VariableDeclaration","scope":1909,"src":"1382:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1890,"name":"uint8","nodeType":"ElementaryTypeName","src":"1382:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1346:48:9"},"returnParameters":{"id":1893,"nodeType":"ParameterList","parameters":[],"src":"1408:0:9"},"scope":2165,"src":"1311:149:9","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":1937,"nodeType":"Block","src":"1545:155:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1917,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1914,"src":"1554:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":1918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1562:18:9","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1554:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1935,"nodeType":"Block","src":"1627:69:9","statements":[{"expression":{"arguments":[{"id":1927,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1912,"src":"1654:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1928,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1729,"src":"1659:14:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"id":1931,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1914,"src":"1682:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1675:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1929,"name":"uint64","nodeType":"ElementaryTypeName","src":"1675:6:9","typeDescriptions":{}}},"id":1932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1675:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1926,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1886,"src":"1635:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":1933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1635:54:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1934,"nodeType":"ExpressionStatement","src":"1635:54:9"}]},"id":1936,"nodeType":"IfStatement","src":"1551:145:9","trueBody":{"id":1925,"nodeType":"Block","src":"1582:39:9","statements":[{"expression":{"arguments":[{"id":1921,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1912,"src":"1603:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1922,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1914,"src":"1608:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1920,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"1590:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1590:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1924,"nodeType":"ExpressionStatement","src":"1590:24:9"}]}}]},"id":1938,"implemented":true,"kind":"function","modifiers":[],"name":"encodeUInt","nameLocation":"1473:10:9","nodeType":"FunctionDefinition","parameters":{"id":1915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1912,"mutability":"mutable","name":"buf","nameLocation":"1514:3:9","nodeType":"VariableDeclaration","scope":1938,"src":"1484:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1911,"nodeType":"UserDefinedTypeName","pathNode":{"id":1910,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1484:22:9"},"referencedDeclaration":1204,"src":"1484:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1914,"mutability":"mutable","name":"value","nameLocation":"1524:5:9","nodeType":"VariableDeclaration","scope":1938,"src":"1519:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1913,"name":"uint","nodeType":"ElementaryTypeName","src":"1519:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1483:47:9"},"returnParameters":{"id":1916,"nodeType":"ParameterList","parameters":[],"src":"1545:0:9"},"scope":2165,"src":"1464:236:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2003,"nodeType":"Block","src":"1783:367:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1946,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"1792:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1800:20:9","subExpression":{"hexValue":"30783130303030303030303030303030303030","id":1947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1801:19:9","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_18446744073709551616_by_1","typeString":"int_const -18446744073709551616"}},"src":"1792:28:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1956,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"1876:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307846464646464646464646464646464646","id":1957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1884:18:9","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551615_by_1","typeString":"int_const 18446744073709551615"},"value":"0xFFFFFFFFFFFFFFFF"},"src":"1876:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1968,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"1958:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":1969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1967:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1958:10:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1999,"nodeType":"Block","src":"2054:92:9","statements":[{"expression":{"arguments":[{"id":1985,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1941,"src":"2081:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1986,"name":"MAJOR_TYPE_NEGATIVE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1732,"src":"2086:23:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2126:2:9","subExpression":{"hexValue":"31","id":1991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2127:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1993,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"2131:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2126:10:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2118:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1989,"name":"uint256","nodeType":"ElementaryTypeName","src":"2118:7:9","typeDescriptions":{}}},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2118:19:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2111:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1987,"name":"uint64","nodeType":"ElementaryTypeName","src":"2111:6:9","typeDescriptions":{}}},"id":1996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2111:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1984,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1886,"src":"2062:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":1997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2062:77:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1998,"nodeType":"ExpressionStatement","src":"2062:77:9"}]},"id":2000,"nodeType":"IfStatement","src":"1955:191:9","trueBody":{"id":1983,"nodeType":"Block","src":"1970:78:9","statements":[{"expression":{"arguments":[{"id":1972,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1941,"src":"1997:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1973,"name":"MAJOR_TYPE_INT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1729,"src":"2002:14:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"arguments":[{"id":1978,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"2033:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2025:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1976,"name":"uint256","nodeType":"ElementaryTypeName","src":"2025:7:9","typeDescriptions":{}}},"id":1979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2025:14:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2018:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":1974,"name":"uint64","nodeType":"ElementaryTypeName","src":"2018:6:9","typeDescriptions":{}}},"id":1980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2018:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":1971,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1886,"src":"1978:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":1981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1978:63:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1982,"nodeType":"ExpressionStatement","src":"1978:63:9"}]}},"id":2001,"nodeType":"IfStatement","src":"1873:273:9","trueBody":{"id":1967,"nodeType":"Block","src":"1904:45:9","statements":[{"expression":{"arguments":[{"id":1960,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1941,"src":"1925:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":1963,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"1935:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1930:4:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1961,"name":"uint","nodeType":"ElementaryTypeName","src":"1930:4:9","typeDescriptions":{}}},"id":1964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1930:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1959,"name":"encodeBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"1912:12:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint256) pure"}},"id":1965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1912:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1966,"nodeType":"ExpressionStatement","src":"1912:30:9"}]}},"id":2002,"nodeType":"IfStatement","src":"1789:357:9","trueBody":{"id":1955,"nodeType":"Block","src":"1822:45:9","statements":[{"expression":{"arguments":[{"id":1951,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1941,"src":"1849:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":1952,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1943,"src":"1854:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1950,"name":"encodeSignedBigNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2097,"src":"1830:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_int256_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,int256) pure"}},"id":1953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1830:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1954,"nodeType":"ExpressionStatement","src":"1830:30:9"}]}}]},"id":2004,"implemented":true,"kind":"function","modifiers":[],"name":"encodeInt","nameLocation":"1713:9:9","nodeType":"FunctionDefinition","parameters":{"id":1944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1941,"mutability":"mutable","name":"buf","nameLocation":"1753:3:9","nodeType":"VariableDeclaration","scope":2004,"src":"1723:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":1940,"nodeType":"UserDefinedTypeName","pathNode":{"id":1939,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1723:22:9"},"referencedDeclaration":1204,"src":"1723:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":1943,"mutability":"mutable","name":"value","nameLocation":"1762:5:9","nodeType":"VariableDeclaration","scope":2004,"src":"1758:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1942,"name":"int","nodeType":"ElementaryTypeName","src":"1758:3:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1722:46:9"},"returnParameters":{"id":1945,"nodeType":"ParameterList","parameters":[],"src":"1783:0:9"},"scope":2165,"src":"1704:446:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2028,"nodeType":"Block","src":"2244:97:9","statements":[{"expression":{"arguments":[{"id":2013,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2007,"src":"2269:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2014,"name":"MAJOR_TYPE_BYTES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1735,"src":"2274:16:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"id":2017,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2009,"src":"2299:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2299:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2016,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2292:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2015,"name":"uint64","nodeType":"ElementaryTypeName","src":"2292:6:9","typeDescriptions":{}}},"id":2019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2292:20:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2012,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1886,"src":"2250:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2250:63:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2021,"nodeType":"ExpressionStatement","src":"2250:63:9"},{"expression":{"arguments":[{"id":2025,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2009,"src":"2330:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2022,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2007,"src":"2319:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1461,"src":"2319:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2319:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2027,"nodeType":"ExpressionStatement","src":"2319:17:9"}]},"id":2029,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBytes","nameLocation":"2163:11:9","nodeType":"FunctionDefinition","parameters":{"id":2010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2007,"mutability":"mutable","name":"buf","nameLocation":"2205:3:9","nodeType":"VariableDeclaration","scope":2029,"src":"2175:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2006,"nodeType":"UserDefinedTypeName","pathNode":{"id":2005,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2175:22:9"},"referencedDeclaration":1204,"src":"2175:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2009,"mutability":"mutable","name":"value","nameLocation":"2223:5:9","nodeType":"VariableDeclaration","scope":2029,"src":"2210:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2008,"name":"bytes","nodeType":"ElementaryTypeName","src":"2210:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2174:55:9"},"returnParameters":{"id":2011,"nodeType":"ParameterList","parameters":[],"src":"2244:0:9"},"scope":2165,"src":"2154:187:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2059,"nodeType":"Block","src":"2428:115:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2042,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"2457:14:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2475:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2457:19:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2456:21:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2046,"name":"TAG_TYPE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1753,"src":"2480:15:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2456:39:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2450:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2040,"name":"uint8","nodeType":"ElementaryTypeName","src":"2450:5:9","typeDescriptions":{}}},"id":2048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2450:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2037,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2032,"src":"2434:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"2434:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2434:63:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2050,"nodeType":"ExpressionStatement","src":"2434:63:9"},{"expression":{"arguments":[{"id":2052,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2032,"src":"2515:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"id":2055,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2034,"src":"2531:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2053,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2520:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2520:10:9","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2520:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2051,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"2503:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2503:35:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2058,"nodeType":"ExpressionStatement","src":"2503:35:9"}]},"id":2060,"implemented":true,"kind":"function","modifiers":[],"name":"encodeBigNum","nameLocation":"2354:12:9","nodeType":"FunctionDefinition","parameters":{"id":2035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2032,"mutability":"mutable","name":"buf","nameLocation":"2397:3:9","nodeType":"VariableDeclaration","scope":2060,"src":"2367:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2031,"nodeType":"UserDefinedTypeName","pathNode":{"id":2030,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2367:22:9"},"referencedDeclaration":1204,"src":"2367:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2034,"mutability":"mutable","name":"value","nameLocation":"2407:5:9","nodeType":"VariableDeclaration","scope":2060,"src":"2402:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2033,"name":"uint","nodeType":"ElementaryTypeName","src":"2402:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2366:47:9"},"returnParameters":{"id":2036,"nodeType":"ParameterList","parameters":[],"src":"2428:0:9"},"scope":2165,"src":"2345:198:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2096,"nodeType":"Block","src":"2635:138:9","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":2073,"name":"MAJOR_TYPE_TAG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"2664:14:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"35","id":2074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2682:1:9","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"2664:19:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2076,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2663:21:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"id":2077,"name":"TAG_TYPE_NEGATIVE_BIGNUM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1756,"src":"2687:24:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2663:48:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2657:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2071,"name":"uint8","nodeType":"ElementaryTypeName","src":"2657:5:9","typeDescriptions":{}}},"id":2079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2657:55:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":2068,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2063,"src":"2641:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"appendUint8","nodeType":"MemberAccess","referencedDeclaration":1514,"src":"2641:15:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure returns (struct BufferChainlink.buffer memory)"}},"id":2080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2641:72:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2081,"nodeType":"ExpressionStatement","src":"2641:72:9"},{"expression":{"arguments":[{"id":2083,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2063,"src":"2731:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2755:2:9","subExpression":{"hexValue":"31","id":2088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2756:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2090,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2065,"src":"2760:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2755:10:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2086,"name":"uint256","nodeType":"ElementaryTypeName","src":"2747:7:9","typeDescriptions":{}}},"id":2092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2747:19:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2084,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2736:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2736:10:9","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2736:31:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2082,"name":"encodeBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"2719:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure"}},"id":2094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2719:49:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2095,"nodeType":"ExpressionStatement","src":"2719:49:9"}]},"id":2097,"implemented":true,"kind":"function","modifiers":[],"name":"encodeSignedBigNum","nameLocation":"2556:18:9","nodeType":"FunctionDefinition","parameters":{"id":2066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2063,"mutability":"mutable","name":"buf","nameLocation":"2605:3:9","nodeType":"VariableDeclaration","scope":2097,"src":"2575:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2062,"nodeType":"UserDefinedTypeName","pathNode":{"id":2061,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2575:22:9"},"referencedDeclaration":1204,"src":"2575:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2065,"mutability":"mutable","name":"input","nameLocation":"2614:5:9","nodeType":"VariableDeclaration","scope":2097,"src":"2610:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2064,"name":"int","nodeType":"ElementaryTypeName","src":"2610:3:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2574:46:9"},"returnParameters":{"id":2067,"nodeType":"ParameterList","parameters":[],"src":"2635:0:9"},"scope":2165,"src":"2547:226:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2127,"nodeType":"Block","src":"2869:112:9","statements":[{"expression":{"arguments":[{"id":2106,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2100,"src":"2894:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2107,"name":"MAJOR_TYPE_STRING","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1738,"src":"2899:17:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"expression":{"arguments":[{"id":2112,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2102,"src":"2931:5:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2925:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2110,"name":"bytes","nodeType":"ElementaryTypeName","src":"2925:5:9","typeDescriptions":{}}},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2925:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2925:19:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2918:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2108,"name":"uint64","nodeType":"ElementaryTypeName","src":"2918:6:9","typeDescriptions":{}}},"id":2115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2918:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2105,"name":"encodeFixedNumeric","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1886,"src":"2875:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$_t_uint64_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8,uint64) pure"}},"id":2116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2875:71:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2117,"nodeType":"ExpressionStatement","src":"2875:71:9"},{"expression":{"arguments":[{"arguments":[{"id":2123,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2102,"src":"2969:5:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2963:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2121,"name":"bytes","nodeType":"ElementaryTypeName","src":"2963:5:9","typeDescriptions":{}}},"id":2124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2963:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2118,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2100,"src":"2952:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"append","nodeType":"MemberAccess","referencedDeclaration":1461,"src":"2952:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$1204_memory_ptr_$bound_to$_t_struct$_buffer_$1204_memory_ptr_$","typeString":"function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"}},"id":2125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2952:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},"id":2126,"nodeType":"ExpressionStatement","src":"2952:24:9"}]},"id":2128,"implemented":true,"kind":"function","modifiers":[],"name":"encodeString","nameLocation":"2786:12:9","nodeType":"FunctionDefinition","parameters":{"id":2103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2100,"mutability":"mutable","name":"buf","nameLocation":"2829:3:9","nodeType":"VariableDeclaration","scope":2128,"src":"2799:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2099,"nodeType":"UserDefinedTypeName","pathNode":{"id":2098,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"2799:22:9"},"referencedDeclaration":1204,"src":"2799:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"},{"constant":false,"id":2102,"mutability":"mutable","name":"value","nameLocation":"2848:5:9","nodeType":"VariableDeclaration","scope":2128,"src":"2834:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2101,"name":"string","nodeType":"ElementaryTypeName","src":"2834:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2798:56:9"},"returnParameters":{"id":2104,"nodeType":"ParameterList","parameters":[],"src":"2869:0:9"},"scope":2165,"src":"2777:204:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2139,"nodeType":"Block","src":"3054:60:9","statements":[{"expression":{"arguments":[{"id":2135,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"3087:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2136,"name":"MAJOR_TYPE_ARRAY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1741,"src":"3092:16:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2134,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"3060:26:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3060:49:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2138,"nodeType":"ExpressionStatement","src":"3060:49:9"}]},"id":2140,"implemented":true,"kind":"function","modifiers":[],"name":"startArray","nameLocation":"2994:10:9","nodeType":"FunctionDefinition","parameters":{"id":2132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2131,"mutability":"mutable","name":"buf","nameLocation":"3035:3:9","nodeType":"VariableDeclaration","scope":2140,"src":"3005:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2130,"nodeType":"UserDefinedTypeName","pathNode":{"id":2129,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"3005:22:9"},"referencedDeclaration":1204,"src":"3005:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3004:35:9"},"returnParameters":{"id":2133,"nodeType":"ParameterList","parameters":[],"src":"3054:0:9"},"scope":2165,"src":"2985:129:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2151,"nodeType":"Block","src":"3185:58:9","statements":[{"expression":{"arguments":[{"id":2147,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"3218:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2148,"name":"MAJOR_TYPE_MAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1744,"src":"3223:14:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2146,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"3191:26:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3191:47:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2150,"nodeType":"ExpressionStatement","src":"3191:47:9"}]},"id":2152,"implemented":true,"kind":"function","modifiers":[],"name":"startMap","nameLocation":"3127:8:9","nodeType":"FunctionDefinition","parameters":{"id":2144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2143,"mutability":"mutable","name":"buf","nameLocation":"3166:3:9","nodeType":"VariableDeclaration","scope":2152,"src":"3136:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2142,"nodeType":"UserDefinedTypeName","pathNode":{"id":2141,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"3136:22:9"},"referencedDeclaration":1204,"src":"3136:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3135:35:9"},"returnParameters":{"id":2145,"nodeType":"ParameterList","parameters":[],"src":"3185:0:9"},"scope":2165,"src":"3118:125:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2163,"nodeType":"Block","src":"3317:67:9","statements":[{"expression":{"arguments":[{"id":2159,"name":"buf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"3350:3:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"}},{"id":2160,"name":"MAJOR_TYPE_CONTENT_FREE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1750,"src":"3355:23:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2158,"name":"encodeIndefiniteLengthType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1909,"src":"3323:26:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_buffer_$1204_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (struct BufferChainlink.buffer memory,uint8) pure"}},"id":2161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3323:56:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2162,"nodeType":"ExpressionStatement","src":"3323:56:9"}]},"id":2164,"implemented":true,"kind":"function","modifiers":[],"name":"endSequence","nameLocation":"3256:11:9","nodeType":"FunctionDefinition","parameters":{"id":2156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2155,"mutability":"mutable","name":"buf","nameLocation":"3298:3:9","nodeType":"VariableDeclaration","scope":2164,"src":"3268:33:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_memory_ptr","typeString":"struct BufferChainlink.buffer"},"typeName":{"id":2154,"nodeType":"UserDefinedTypeName","pathNode":{"id":2153,"name":"BufferChainlink.buffer","nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"3268:22:9"},"referencedDeclaration":1204,"src":"3268:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_buffer_$1204_storage_ptr","typeString":"struct BufferChainlink.buffer"}},"visibility":"internal"}],"src":"3267:35:9"},"returnParameters":{"id":2157,"nodeType":"ParameterList","parameters":[],"src":"3317:0:9"},"scope":2165,"src":"3247:137:9","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2166,"src":"115:3271:9"}],"src":"32:3355:9"},"id":9},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ast":{"absolutePath":"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol","exportedSymbols":{"ENSResolver":[2175]},"id":2176,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2167,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"32:23:10"},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":2175,"linearizedBaseContracts":[2175],"name":"ENSResolver","nameLocation":"75:11:10","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3b3b57de","id":2174,"implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"100:4:10","nodeType":"FunctionDefinition","parameters":{"id":2170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2169,"mutability":"mutable","name":"node","nameLocation":"113:4:10","nodeType":"VariableDeclaration","scope":2174,"src":"105:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"104:14:10"},"returnParameters":{"id":2173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2174,"src":"148:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2171,"name":"address","nodeType":"ElementaryTypeName","src":"148:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"147:9:10"},"scope":2175,"src":"91:66:10","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":2176,"src":"57:102:10"}],"src":"32:128:10"},"id":10},"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol","exportedSymbols":{"BasicRiskpool":[2464],"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Riskpool":[4773]},"id":2465,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":2177,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:11"},{"absolutePath":"@etherisc/gif-interface/contracts/components/Riskpool.sol","file":"./Riskpool.sol","id":2178,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2465,"sourceUnit":4774,"src":"66:24:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"../modules/IBundle.sol","id":2179,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2465,"sourceUnit":5021,"src":"92:32:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"../modules/IPolicy.sol","id":2180,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2465,"sourceUnit":5434,"src":"126:32:11","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2181,"name":"Riskpool","nodeType":"IdentifierPath","referencedDeclaration":4773,"src":"279:8:11"},"id":2182,"nodeType":"InheritanceSpecifier","src":"279:8:11"}],"contractDependencies":[2884,2988,3312,4773,5073,7481,10518],"contractKind":"contract","fullyImplemented":false,"id":2464,"linearizedBaseContracts":[2464,4773,2884,7481,10518,5073,3312,2988],"name":"BasicRiskpool","nameLocation":"262:13:11","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":2188,"name":"LogBasicRiskpoolBundlesAndPolicies","nameLocation":"303:34:11","nodeType":"EventDefinition","parameters":{"id":2187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2184,"indexed":false,"mutability":"mutable","name":"activeBundles","nameLocation":"346:13:11","nodeType":"VariableDeclaration","scope":2188,"src":"338:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2183,"name":"uint256","nodeType":"ElementaryTypeName","src":"338:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2186,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"369:8:11","nodeType":"VariableDeclaration","scope":2188,"src":"361:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2185,"name":"uint256","nodeType":"ElementaryTypeName","src":"361:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"337:41:11"},"src":"297:82:11"},{"anonymous":false,"id":2198,"name":"LogBasicRiskpoolCandidateBundleAmountCheck","nameLocation":"391:42:11","nodeType":"EventDefinition","parameters":{"id":2197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2190,"indexed":false,"mutability":"mutable","name":"index","nameLocation":"442:5:11","nodeType":"VariableDeclaration","scope":2198,"src":"434:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2189,"name":"uint256","nodeType":"ElementaryTypeName","src":"434:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2192,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"457:8:11","nodeType":"VariableDeclaration","scope":2198,"src":"449:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2191,"name":"uint256","nodeType":"ElementaryTypeName","src":"449:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2194,"indexed":false,"mutability":"mutable","name":"maxAmount","nameLocation":"475:9:11","nodeType":"VariableDeclaration","scope":2198,"src":"467:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2193,"name":"uint256","nodeType":"ElementaryTypeName","src":"467:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2196,"indexed":false,"mutability":"mutable","name":"collateralAmount","nameLocation":"494:16:11","nodeType":"VariableDeclaration","scope":2198,"src":"486:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2195,"name":"uint256","nodeType":"ElementaryTypeName","src":"486:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"433:78:11"},"src":"385:127:11"},{"constant":false,"id":2202,"mutability":"mutable","name":"_collateralizedBy","nameLocation":"745:17:11","nodeType":"VariableDeclaration","scope":2464,"src":"676:86:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":2201,"keyType":{"id":2199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"684:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"676:59:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":2200,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":2205,"mutability":"mutable","name":"_policiesCounter","nameLocation":"784:16:11","nodeType":"VariableDeclaration","scope":2464,"src":"769:35:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":2203,"name":"uint32","nodeType":"ElementaryTypeName","src":"769:6:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"value":{"hexValue":"30","id":2204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"803:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"body":{"id":2228,"nodeType":"Block","src":"1107:3:11","statements":[]},"id":2229,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":2220,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2207,"src":"1027:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2221,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2209,"src":"1033:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2222,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2211,"src":"1052:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2223,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2213,"src":"1072:10:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2224,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2215,"src":"1084:6:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2225,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2217,"src":"1092:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":2226,"modifierName":{"id":2219,"name":"Riskpool","nodeType":"IdentifierPath","referencedDeclaration":4773,"src":"1018:8:11"},"nodeType":"ModifierInvocation","src":"1018:83:11"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2207,"mutability":"mutable","name":"name","nameLocation":"843:4:11","nodeType":"VariableDeclaration","scope":2229,"src":"835:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"835:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2209,"mutability":"mutable","name":"collateralization","nameLocation":"866:17:11","nodeType":"VariableDeclaration","scope":2229,"src":"858:25:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2208,"name":"uint256","nodeType":"ElementaryTypeName","src":"858:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2211,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"902:18:11","nodeType":"VariableDeclaration","scope":2229,"src":"894:26:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2210,"name":"uint256","nodeType":"ElementaryTypeName","src":"894:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2213,"mutability":"mutable","name":"erc20Token","nameLocation":"939:10:11","nodeType":"VariableDeclaration","scope":2229,"src":"931:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2212,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2215,"mutability":"mutable","name":"wallet","nameLocation":"968:6:11","nodeType":"VariableDeclaration","scope":2229,"src":"960:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2214,"name":"address","nodeType":"ElementaryTypeName","src":"960:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2217,"mutability":"mutable","name":"registry","nameLocation":"993:8:11","nodeType":"VariableDeclaration","scope":2229,"src":"985:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2216,"name":"address","nodeType":"ElementaryTypeName","src":"985:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"824:184:11"},"returnParameters":{"id":2227,"nodeType":"ParameterList","parameters":[],"src":"1107:0:11"},"scope":2464,"src":"813:297:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4751],"body":{"id":2393,"nodeType":"Block","src":"1668:2266:11","statements":[{"assignments":[2240],"declarations":[{"constant":false,"id":2240,"mutability":"mutable","name":"activeBundles","nameLocation":"1687:13:11","nodeType":"VariableDeclaration","scope":2393,"src":"1679:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1679:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2243,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2241,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4603,"src":"1703:13:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1703:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1679:39:11"},{"assignments":[2245],"declarations":[{"constant":false,"id":2245,"mutability":"mutable","name":"capital","nameLocation":"1737:7:11","nodeType":"VariableDeclaration","scope":2393,"src":"1729:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2244,"name":"uint256","nodeType":"ElementaryTypeName","src":"1729:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2248,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2246,"name":"getCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4659,"src":"1747:10:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1747:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1729:30:11"},{"assignments":[2250],"declarations":[{"constant":false,"id":2250,"mutability":"mutable","name":"lockedCapital","nameLocation":"1778:13:11","nodeType":"VariableDeclaration","scope":2393,"src":"1770:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2249,"name":"uint256","nodeType":"ElementaryTypeName","src":"1770:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2253,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":2251,"name":"getTotalValueLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4676,"src":"1794:19:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":2252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1794:21:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1770:45:11"},{"eventCall":{"arguments":[{"id":2255,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2240,"src":"1868:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2256,"name":"_policiesCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"1883:16:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":2254,"name":"LogBasicRiskpoolBundlesAndPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"1833:34:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":2257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1833:67:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2258,"nodeType":"EmitStatement","src":"1828:72:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2260,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2240,"src":"1919:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1935:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1919:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c4553","id":2263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1938:33:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08","typeString":"literal_string \"ERROR:BRP-001:NO_ACTIVE_BUNDLES\""},"value":"ERROR:BRP-001:NO_ACTIVE_BUNDLES"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08","typeString":"literal_string \"ERROR:BRP-001:NO_ACTIVE_BUNDLES\""}],"id":2259,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1911:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1911:61:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2265,"nodeType":"ExpressionStatement","src":"1911:61:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2267,"name":"capital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"1991:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2268,"name":"lockedCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"2001:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1991:23:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c","id":2270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2016:31:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a","typeString":"literal_string \"ERROR:BRP-002:NO_FREE_CAPITAL\""},"value":"ERROR:BRP-002:NO_FREE_CAPITAL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a","typeString":"literal_string \"ERROR:BRP-002:NO_FREE_CAPITAL\""}],"id":2266,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1983:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1983:65:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2272,"nodeType":"ExpressionStatement","src":"1983:65:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2273,"name":"capital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"2124:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2274,"name":"lockedCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"2135:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2275,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2233,"src":"2151:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2135:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2124:43:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2392,"nodeType":"IfStatement","src":"2121:1806:11","trueBody":{"id":2391,"nodeType":"Block","src":"2169:1758:11","statements":[{"assignments":[2282],"declarations":[{"constant":false,"id":2282,"mutability":"mutable","name":"application","nameLocation":"2211:11:11","nodeType":"VariableDeclaration","scope":2391,"src":"2184:38:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":2281,"nodeType":"UserDefinedTypeName","pathNode":{"id":2280,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"2184:19:11"},"referencedDeclaration":5262,"src":"2184:19:11","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":2287,"initialValue":{"arguments":[{"id":2285,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"2257:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2283,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"2225:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":6436,"src":"2225:31:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":2286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2225:42:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"2184:83:11"},{"assignments":[2289],"declarations":[{"constant":false,"id":2289,"mutability":"mutable","name":"idx","nameLocation":"2368:3:11","nodeType":"VariableDeclaration","scope":2391,"src":"2363:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2288,"name":"uint","nodeType":"ElementaryTypeName","src":"2363:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2293,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2290,"name":"_policiesCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"2374:16:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":2291,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2240,"src":"2393:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2374:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2363:43:11"},{"body":{"id":2389,"nodeType":"Block","src":"2921:995:11","statements":[{"assignments":[2308],"declarations":[{"constant":false,"id":2308,"mutability":"mutable","name":"bundleId","nameLocation":"2948:8:11","nodeType":"VariableDeclaration","scope":2389,"src":"2940:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2307,"name":"uint256","nodeType":"ElementaryTypeName","src":"2940:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2312,"initialValue":{"arguments":[{"id":2310,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"2977:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2309,"name":"getActiveBundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4633,"src":"2959:17:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":2311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2959:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2940:41:11"},{"assignments":[2317],"declarations":[{"constant":false,"id":2317,"mutability":"mutable","name":"bundle","nameLocation":"3022:6:11","nodeType":"VariableDeclaration","scope":2389,"src":"3000:28:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":2316,"nodeType":"UserDefinedTypeName","pathNode":{"id":2315,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"3000:14:11"},"referencedDeclaration":4936,"src":"3000:14:11","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":2322,"initialValue":{"arguments":[{"id":2320,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"3058:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2318,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"3031:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":2319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":6408,"src":"3031:26:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":2321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3031:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"3000:67:11"},{"assignments":[2324],"declarations":[{"constant":false,"id":2324,"mutability":"mutable","name":"isMatching","nameLocation":"3091:10:11","nodeType":"VariableDeclaration","scope":2389,"src":"3086:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2323,"name":"bool","nodeType":"ElementaryTypeName","src":"3086:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2329,"initialValue":{"arguments":[{"id":2326,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"3129:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},{"id":2327,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2282,"src":"3137:11:11","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"},{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}],"id":2325,"name":"bundleMatchesApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4722,"src":"3104:24:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bundle_$4936_memory_ptr_$_t_struct$_Application_$5262_memory_ptr_$returns$_t_bool_$","typeString":"function (struct IBundle.Bundle memory,struct IPolicy.Application memory) view returns (bool)"}},"id":2328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3104:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3086:63:11"},{"eventCall":{"arguments":[{"id":2331,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"3204:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2332,"name":"isMatching","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"3214:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2330,"name":"LogRiskpoolBundleMatchesPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3114,"src":"3173:30:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":2333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3173:52:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2334,"nodeType":"EmitStatement","src":"3168:57:11"},{"condition":{"id":2335,"name":"isMatching","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"3250:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2388,"nodeType":"IfStatement","src":"3246:655:11","trueBody":{"id":2387,"nodeType":"Block","src":"3262:639:11","statements":[{"assignments":[2337],"declarations":[{"constant":false,"id":2337,"mutability":"mutable","name":"maxAmount","nameLocation":"3293:9:11","nodeType":"VariableDeclaration","scope":2387,"src":"3285:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2336,"name":"uint256","nodeType":"ElementaryTypeName","src":"3285:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2343,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2338,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"3305:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":2339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"3305:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":2340,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"3322:6:11","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":2341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"3322:20:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3305:37:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3285:57:11"},{"eventCall":{"arguments":[{"id":2345,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"3413:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2346,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"3418:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2347,"name":"maxAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"3428:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2348,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2233,"src":"3439:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2344,"name":"LogBasicRiskpoolCandidateBundleAmountCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2198,"src":"3370:42:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":2349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3370:86:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2350,"nodeType":"EmitStatement","src":"3365:91:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2351,"name":"maxAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2337,"src":"3485:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":2352,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2233,"src":"3498:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3485:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2385,"nodeType":"Block","src":"3800:82:11","statements":[{"expression":{"id":2383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2376,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"3827:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2377,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2289,"src":"3834:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3840:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3834:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2380,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3833:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":2381,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2240,"src":"3845:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3833:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3827:31:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2384,"nodeType":"ExpressionStatement","src":"3827:31:11"}]},"id":2386,"nodeType":"IfStatement","src":"3481:401:11","trueBody":{"id":2375,"nodeType":"Block","src":"3516:278:11","statements":[{"expression":{"arguments":[{"id":2357,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"3580:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2358,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"3590:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2359,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2233,"src":"3601:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2354,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3543:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":2356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collateralizePolicy","nodeType":"MemberAccess","referencedDeclaration":6735,"src":"3543:36:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":2360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3543:75:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2361,"nodeType":"ExpressionStatement","src":"3543:75:11"},{"expression":{"id":2366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2362,"name":"_collateralizedBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"3645:17:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2364,"indexExpression":{"id":2363,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2231,"src":"3663:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3645:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2365,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"3676:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3645:39:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2367,"nodeType":"ExpressionStatement","src":"3645:39:11"},{"expression":{"id":2370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2368,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"3711:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3721:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3711:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2371,"nodeType":"ExpressionStatement","src":"3711:14:11"},{"expression":{"id":2373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3752:18:11","subExpression":{"id":2372,"name":"_policiesCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"3752:16:11","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":2374,"nodeType":"ExpressionStatement","src":"3752:18:11"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2298,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"2885:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2299,"name":"activeBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2240,"src":"2889:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2885:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":2302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2906:8:11","subExpression":{"id":2301,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"2907:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2885:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2390,"initializationExpression":{"assignments":[2295],"declarations":[{"constant":false,"id":2295,"mutability":"mutable","name":"i","nameLocation":"2878:1:11","nodeType":"VariableDeclaration","scope":2390,"src":"2870:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2294,"name":"uint256","nodeType":"ElementaryTypeName","src":"2870:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2297,"initialValue":{"hexValue":"30","id":2296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2882:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2870:13:11"},"loopExpression":{"expression":{"id":2305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2916:3:11","subExpression":{"id":2304,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"2916:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2306,"nodeType":"ExpressionStatement","src":"2916:3:11"},"nodeType":"ForStatement","src":"2865:1051:11"}]}}]},"id":2394,"implemented":true,"kind":"function","modifiers":[],"name":"_lockCollateral","nameLocation":"1542:15:11","nodeType":"FunctionDefinition","overrides":{"id":2235,"nodeType":"OverrideSpecifier","overrides":[],"src":"1622:8:11"},"parameters":{"id":2234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2231,"mutability":"mutable","name":"processId","nameLocation":"1566:9:11","nodeType":"VariableDeclaration","scope":2394,"src":"1558:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2230,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1558:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2233,"mutability":"mutable","name":"collateralAmount","nameLocation":"1585:16:11","nodeType":"VariableDeclaration","scope":2394,"src":"1577:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2232,"name":"uint256","nodeType":"ElementaryTypeName","src":"1577:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1557:45:11"},"returnParameters":{"id":2238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2237,"mutability":"mutable","name":"success","nameLocation":"1653:7:11","nodeType":"VariableDeclaration","scope":2394,"src":"1648:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2236,"name":"bool","nodeType":"ElementaryTypeName","src":"1648:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1647:14:11"},"scope":2464,"src":"1533:2401:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4765],"body":{"id":2416,"nodeType":"Block","src":"4033:136:11","statements":[{"assignments":[2403],"declarations":[{"constant":false,"id":2403,"mutability":"mutable","name":"bundleId","nameLocation":"4052:8:11","nodeType":"VariableDeclaration","scope":2416,"src":"4044:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2402,"name":"uint256","nodeType":"ElementaryTypeName","src":"4044:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2407,"initialValue":{"baseExpression":{"id":2404,"name":"_collateralizedBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"4063:17:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2406,"indexExpression":{"id":2405,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"4081:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4063:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4044:47:11"},{"expression":{"arguments":[{"id":2411,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"4133:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2412,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"4143:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2413,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2398,"src":"4154:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2408,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"4102:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":2410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":6753,"src":"4102:30:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4102:59:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2415,"nodeType":"ExpressionStatement","src":"4102:59:11"}]},"id":2417,"implemented":true,"kind":"function","modifiers":[],"name":"_processPayout","nameLocation":"3951:14:11","nodeType":"FunctionDefinition","overrides":{"id":2400,"nodeType":"OverrideSpecifier","overrides":[],"src":"4019:8:11"},"parameters":{"id":2399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2396,"mutability":"mutable","name":"processId","nameLocation":"3974:9:11","nodeType":"VariableDeclaration","scope":2417,"src":"3966:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3966:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2398,"mutability":"mutable","name":"amount","nameLocation":"3993:6:11","nodeType":"VariableDeclaration","scope":2417,"src":"3985:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2397,"name":"uint256","nodeType":"ElementaryTypeName","src":"3985:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3965:35:11"},"returnParameters":{"id":2401,"nodeType":"ParameterList","parameters":[],"src":"4033:0:11"},"scope":2464,"src":"3942:227:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4758],"body":{"id":2439,"nodeType":"Block","src":"4269:137:11","statements":[{"assignments":[2426],"declarations":[{"constant":false,"id":2426,"mutability":"mutable","name":"bundleId","nameLocation":"4288:8:11","nodeType":"VariableDeclaration","scope":2439,"src":"4280:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2425,"name":"uint256","nodeType":"ElementaryTypeName","src":"4280:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2430,"initialValue":{"baseExpression":{"id":2427,"name":"_collateralizedBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"4299:17:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2429,"indexExpression":{"id":2428,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2419,"src":"4317:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4299:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4280:47:11"},{"expression":{"arguments":[{"id":2434,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2426,"src":"4370:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2435,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2419,"src":"4380:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2436,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"4391:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2431,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"4338:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":2433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPremium","nodeType":"MemberAccess","referencedDeclaration":6744,"src":"4338:31:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":2437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4338:60:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2438,"nodeType":"ExpressionStatement","src":"4338:60:11"}]},"id":2440,"implemented":true,"kind":"function","modifiers":[],"name":"_processPremium","nameLocation":"4186:15:11","nodeType":"FunctionDefinition","overrides":{"id":2423,"nodeType":"OverrideSpecifier","overrides":[],"src":"4255:8:11"},"parameters":{"id":2422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2419,"mutability":"mutable","name":"processId","nameLocation":"4210:9:11","nodeType":"VariableDeclaration","scope":2440,"src":"4202:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4202:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2421,"mutability":"mutable","name":"amount","nameLocation":"4229:6:11","nodeType":"VariableDeclaration","scope":2440,"src":"4221:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2420,"name":"uint256","nodeType":"ElementaryTypeName","src":"4221:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4201:35:11"},"returnParameters":{"id":2424,"nodeType":"ParameterList","parameters":[],"src":"4269:0:11"},"scope":2464,"src":"4177:229:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4772],"body":{"id":2462,"nodeType":"Block","src":"4538:155:11","statements":[{"assignments":[2449],"declarations":[{"constant":false,"id":2449,"mutability":"mutable","name":"bundleId","nameLocation":"4565:8:11","nodeType":"VariableDeclaration","scope":2462,"src":"4557:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2448,"name":"uint256","nodeType":"ElementaryTypeName","src":"4557:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2453,"initialValue":{"baseExpression":{"id":2450,"name":"_collateralizedBy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"4576:17:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":2452,"indexExpression":{"id":2451,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2442,"src":"4594:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4576:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4557:47:11"},{"expression":{"id":2460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2454,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2446,"src":"4615:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2457,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2449,"src":"4665:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2458,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2442,"src":"4675:9:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2455,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"4634:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":2456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"releasePolicy","nodeType":"MemberAccess","referencedDeclaration":6762,"src":"4634:30:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (uint256,bytes32) external returns (uint256)"}},"id":2459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4634:51:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4615:70:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2461,"nodeType":"ExpressionStatement","src":"4615:70:11"}]},"id":2463,"implemented":true,"kind":"function","modifiers":[],"name":"_releaseCollateral","nameLocation":"4423:18:11","nodeType":"FunctionDefinition","overrides":{"id":2444,"nodeType":"OverrideSpecifier","overrides":[],"src":"4480:8:11"},"parameters":{"id":2443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2442,"mutability":"mutable","name":"processId","nameLocation":"4450:9:11","nodeType":"VariableDeclaration","scope":2463,"src":"4442:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4442:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4441:19:11"},"returnParameters":{"id":2447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2446,"mutability":"mutable","name":"collateralAmount","nameLocation":"4514:16:11","nodeType":"VariableDeclaration","scope":2463,"src":"4506:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2445,"name":"uint256","nodeType":"ElementaryTypeName","src":"4506:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4505:26:11"},"scope":2464,"src":"4414:279:11","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":2465,"src":"244:4452:11"}],"src":"40:4656:11"},"id":11},"@etherisc/gif-interface/contracts/components/Component.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/Component.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481]},"id":2885,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":2466,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:12"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"./IComponent.sol","id":2467,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":2989,"src":"66:26:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IAccess.sol","file":"../modules/IAccess.sol","id":2468,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":4837,"src":"94:32:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol","file":"../modules/IComponentEvents.sol","id":2469,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":5074,"src":"128:41:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"../modules/IRegistry.sol","id":2470,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":5715,"src":"171:34:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","file":"../services/IComponentOwnerService.sol","id":2471,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":6010,"src":"207:48:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"../services/IInstanceService.sol","id":2472,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":6510,"src":"257:42:12","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":2473,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2885,"sourceUnit":7482,"src":"301:52:12","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":2474,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"498:10:12"},"id":2475,"nodeType":"InheritanceSpecifier","src":"498:10:12"},{"baseName":{"id":2476,"name":"IComponentEvents","nodeType":"IdentifierPath","referencedDeclaration":5073,"src":"515:16:12"},"id":2477,"nodeType":"InheritanceSpecifier","src":"515:16:12"},{"baseName":{"id":2478,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"538:7:12"},"id":2479,"nodeType":"InheritanceSpecifier","src":"538:7:12"}],"contractDependencies":[2988,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":2884,"linearizedBaseContracts":[2884,7481,10518,5073,2988],"name":"Component","nameLocation":"479:9:12","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":2481,"mutability":"mutable","name":"_componentName","nameLocation":"571:14:12","nodeType":"VariableDeclaration","scope":2884,"src":"555:30:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"555:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":2483,"mutability":"mutable","name":"_componentId","nameLocation":"608:12:12","nodeType":"VariableDeclaration","scope":2884,"src":"592:28:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2482,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":2486,"mutability":"mutable","name":"_componentType","nameLocation":"660:14:12","nodeType":"VariableDeclaration","scope":2884,"src":"627:47:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":2485,"nodeType":"UserDefinedTypeName","pathNode":{"id":2484,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"627:24:12"},"referencedDeclaration":2891,"src":"627:24:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"private"},{"constant":false,"id":2489,"mutability":"mutable","name":"_registry","nameLocation":"701:9:12","nodeType":"VariableDeclaration","scope":2884,"src":"683:27:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":2488,"nodeType":"UserDefinedTypeName","pathNode":{"id":2487,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"683:9:12"},"referencedDeclaration":5714,"src":"683:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"private"},{"constant":false,"id":2492,"mutability":"mutable","name":"_access","nameLocation":"733:7:12","nodeType":"VariableDeclaration","scope":2884,"src":"717:23:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"},"typeName":{"id":2491,"nodeType":"UserDefinedTypeName","pathNode":{"id":2490,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"717:7:12"},"referencedDeclaration":4836,"src":"717:7:12","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"visibility":"private"},{"constant":false,"id":2495,"mutability":"mutable","name":"_componentOwnerService","nameLocation":"778:22:12","nodeType":"VariableDeclaration","scope":2884,"src":"747:53:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":2494,"nodeType":"UserDefinedTypeName","pathNode":{"id":2493,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"747:22:12"},"referencedDeclaration":6009,"src":"747:22:12","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"private"},{"constant":false,"id":2498,"mutability":"mutable","name":"_instanceService","nameLocation":"832:16:12","nodeType":"VariableDeclaration","scope":2884,"src":"807:41:12","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":2497,"nodeType":"UserDefinedTypeName","pathNode":{"id":2496,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"807:16:12"},"referencedDeclaration":6509,"src":"807:16:12","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"private"},{"body":{"id":2511,"nodeType":"Block","src":"896:177:12","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2501,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"930:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"930:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":2504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"966:25:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"id":2503,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"946:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"946:46:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"930:62:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434d502d3030313a4e4f545f494e5354414e43455f4f50455241544f525f53455256494345","id":2507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1007:45:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cf129911f5ea89264cf2d932a66d14be63649422912365886718bb28b51326b","typeString":"literal_string \"ERROR:CMP-001:NOT_INSTANCE_OPERATOR_SERVICE\""},"value":"ERROR:CMP-001:NOT_INSTANCE_OPERATOR_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0cf129911f5ea89264cf2d932a66d14be63649422912365886718bb28b51326b","typeString":"literal_string \"ERROR:CMP-001:NOT_INSTANCE_OPERATOR_SERVICE\""}],"id":2500,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"907:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"907:146:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2509,"nodeType":"ExpressionStatement","src":"907:146:12"},{"id":2510,"nodeType":"PlaceholderStatement","src":"1064:1:12"}]},"id":2512,"name":"onlyInstanceOperatorService","nameLocation":"866:27:12","nodeType":"ModifierDefinition","parameters":{"id":2499,"nodeType":"ParameterList","parameters":[],"src":"893:2:12"},"src":"857:216:12","virtual":false,"visibility":"internal"},{"body":{"id":2525,"nodeType":"Block","src":"1106:147:12","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2515,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1140:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1140:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"436f6d706f6e656e74","id":2518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1176:11:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":2517,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1156:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":2519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1156:32:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1140:48:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e54","id":2521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1203:29:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a","typeString":"literal_string \"ERROR:CMP-002:NOT_COMPONENT\""},"value":"ERROR:CMP-002:NOT_COMPONENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a","typeString":"literal_string \"ERROR:CMP-002:NOT_COMPONENT\""}],"id":2514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1117:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1117:116:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2523,"nodeType":"ExpressionStatement","src":"1117:116:12"},{"id":2524,"nodeType":"PlaceholderStatement","src":"1244:1:12"}]},"id":2526,"name":"onlyComponent","nameLocation":"1090:13:12","nodeType":"ModifierDefinition","parameters":{"id":2513,"nodeType":"ParameterList","parameters":[],"src":"1103:2:12"},"src":"1081:172:12","virtual":false,"visibility":"internal"},{"body":{"id":2540,"nodeType":"Block","src":"1298:160:12","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2529,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1332:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1332:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":2533,"name":"_componentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"1356:22:12","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}],"id":2532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1348:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2531,"name":"address","nodeType":"ElementaryTypeName","src":"1348:7:12","typeDescriptions":{}}},"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1348:31:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1332:47:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434d502d3030333a4e4f545f434f4d504f4e454e545f4f574e45525f53455256494345","id":2536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1394:43:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a42b6523909db0c3f07c7fc4301f658eda0aaaedcec4492e9f126a1a0b351bc","typeString":"literal_string \"ERROR:CMP-003:NOT_COMPONENT_OWNER_SERVICE\""},"value":"ERROR:CMP-003:NOT_COMPONENT_OWNER_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a42b6523909db0c3f07c7fc4301f658eda0aaaedcec4492e9f126a1a0b351bc","typeString":"literal_string \"ERROR:CMP-003:NOT_COMPONENT_OWNER_SERVICE\""}],"id":2528,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1309:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1309:129:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2538,"nodeType":"ExpressionStatement","src":"1309:129:12"},{"id":2539,"nodeType":"PlaceholderStatement","src":"1449:1:12"}]},"id":2541,"name":"onlyComponentOwnerService","nameLocation":"1270:25:12","nodeType":"ModifierDefinition","parameters":{"id":2527,"nodeType":"ParameterList","parameters":[],"src":"1295:2:12"},"src":"1261:197:12","virtual":false,"visibility":"internal"},{"body":{"id":2605,"nodeType":"Block","src":"1608:515:12","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2554,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2548,"src":"1627:8:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1647:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1639:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2555,"name":"address","nodeType":"ElementaryTypeName","src":"1639:7:12","typeDescriptions":{}}},"id":2558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1639:10:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1627:22:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434d502d3030343a52454749535452595f414444524553535f5a45524f","id":2560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1651:37:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc","typeString":"literal_string \"ERROR:CMP-004:REGISTRY_ADDRESS_ZERO\""},"value":"ERROR:CMP-004:REGISTRY_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc","typeString":"literal_string \"ERROR:CMP-004:REGISTRY_ADDRESS_ZERO\""}],"id":2553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1619:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1619:70:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2562,"nodeType":"ExpressionStatement","src":"1619:70:12"},{"expression":{"id":2567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2563,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"1702:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2565,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2548,"src":"1724:8:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2564,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"1714:9:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$5714_$","typeString":"type(contract IRegistry)"}},"id":2566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1714:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"src":"1702:31:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":2568,"nodeType":"ExpressionStatement","src":"1702:31:12"},{"expression":{"id":2572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2569,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2492,"src":"1744:7:12","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":2570,"name":"_getAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"1754:10:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IAccess_$4836_$","typeString":"function () view returns (contract IAccess)"}},"id":2571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1754:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"src":"1744:22:12","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":2573,"nodeType":"ExpressionStatement","src":"1744:22:12"},{"expression":{"id":2577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2574,"name":"_componentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"1777:22:12","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":2575,"name":"_getComponentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2870,"src":"1802:25:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IComponentOwnerService_$6009_$","typeString":"function () view returns (contract IComponentOwnerService)"}},"id":2576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1802:27:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"src":"1777:52:12","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"id":2578,"nodeType":"ExpressionStatement","src":"1777:52:12"},{"expression":{"id":2582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2579,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2498,"src":"1840:16:12","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":2580,"name":"_getInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2857,"src":"1859:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IInstanceService_$6509_$","typeString":"function () view returns (contract IInstanceService)"}},"id":2581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1859:21:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"src":"1840:40:12","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":2583,"nodeType":"ExpressionStatement","src":"1840:40:12"},{"expression":{"id":2586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2584,"name":"_componentName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"1893:14:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2585,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2543,"src":"1910:4:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1893:21:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2587,"nodeType":"ExpressionStatement","src":"1893:21:12"},{"expression":{"id":2590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2588,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"1925:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2589,"name":"componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2546,"src":"1942:13:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"1925:30:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"id":2591,"nodeType":"ExpressionStatement","src":"1925:30:12"},{"eventCall":{"arguments":[{"id":2593,"name":"_componentName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"2007:14:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2594,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"2037:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},{"arguments":[{"id":2597,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"2075:4:12","typeDescriptions":{"typeIdentifier":"t_contract$_Component_$2884","typeString":"contract Component"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Component_$2884","typeString":"contract Component"}],"id":2596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2067:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2595,"name":"address","nodeType":"ElementaryTypeName","src":"2067:7:12","typeDescriptions":{}}},"id":2598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2067:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":2601,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"2104:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}],"id":2600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2096:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2599,"name":"address","nodeType":"ElementaryTypeName","src":"2096:7:12","typeDescriptions":{}}},"id":2602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2096:18:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2592,"name":"LogComponentCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"1973:19:12","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_ComponentType_$2891_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,enum IComponent.ComponentType,address,address)"}},"id":2603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1973:142:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2604,"nodeType":"EmitStatement","src":"1968:147:12"}]},"id":2606,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":2551,"modifierName":{"id":2550,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"1593:7:12"},"nodeType":"ModifierInvocation","src":"1593:9:12"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2543,"mutability":"mutable","name":"name","nameLocation":"1496:4:12","nodeType":"VariableDeclaration","scope":2606,"src":"1488:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1488:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2546,"mutability":"mutable","name":"componentType","nameLocation":"1536:13:12","nodeType":"VariableDeclaration","scope":2606,"src":"1511:38:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":2545,"nodeType":"UserDefinedTypeName","pathNode":{"id":2544,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"1511:24:12"},"referencedDeclaration":2891,"src":"1511:24:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"},{"constant":false,"id":2548,"mutability":"mutable","name":"registry","nameLocation":"1568:8:12","nodeType":"VariableDeclaration","scope":2606,"src":"1560:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2547,"name":"address","nodeType":"ElementaryTypeName","src":"1560:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1477:106:12"},"returnParameters":{"id":2552,"nodeType":"ParameterList","parameters":[],"src":"1608:0:12"},"scope":2884,"src":"1466:657:12","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2915],"body":{"id":2618,"nodeType":"Block","src":"2190:22:12","statements":[{"expression":{"id":2616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2614,"name":"_componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2192:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2615,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"2207:2:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2192:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2617,"nodeType":"ExpressionStatement","src":"2192:17:12"}]},"functionSelector":"d0e0ba95","id":2619,"implemented":true,"kind":"function","modifiers":[{"id":2612,"modifierName":{"id":2611,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"2176:13:12"},"nodeType":"ModifierInvocation","src":"2176:13:12"}],"name":"setId","nameLocation":"2140:5:12","nodeType":"FunctionDefinition","overrides":{"id":2610,"nodeType":"OverrideSpecifier","overrides":[],"src":"2167:8:12"},"parameters":{"id":2609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2608,"mutability":"mutable","name":"id","nameLocation":"2154:2:12","nodeType":"VariableDeclaration","scope":2619,"src":"2146:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2607,"name":"uint256","nodeType":"ElementaryTypeName","src":"2146:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2145:12:12"},"returnParameters":{"id":2613,"nodeType":"ParameterList","parameters":[],"src":"2190:0:12"},"scope":2884,"src":"2131:81:12","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2920],"body":{"id":2627,"nodeType":"Block","src":"2277:26:12","statements":[{"expression":{"id":2625,"name":"_componentName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"2286:14:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2624,"id":2626,"nodeType":"Return","src":"2279:21:12"}]},"functionSelector":"17d7de7c","id":2628,"implemented":true,"kind":"function","modifiers":[],"name":"getName","nameLocation":"2229:7:12","nodeType":"FunctionDefinition","overrides":{"id":2621,"nodeType":"OverrideSpecifier","overrides":[],"src":"2246:8:12"},"parameters":{"id":2620,"nodeType":"ParameterList","parameters":[],"src":"2236:2:12"},"returnParameters":{"id":2624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2628,"src":"2268:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2268:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2267:9:12"},"scope":2884,"src":"2220:83:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2925],"body":{"id":2636,"nodeType":"Block","src":"2364:24:12","statements":[{"expression":{"id":2634,"name":"_componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2373:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2633,"id":2635,"nodeType":"Return","src":"2366:19:12"}]},"functionSelector":"5d1ca631","id":2637,"implemented":true,"kind":"function","modifiers":[],"name":"getId","nameLocation":"2318:5:12","nodeType":"FunctionDefinition","overrides":{"id":2630,"nodeType":"OverrideSpecifier","overrides":[],"src":"2333:8:12"},"parameters":{"id":2629,"nodeType":"ParameterList","parameters":[],"src":"2323:2:12"},"returnParameters":{"id":2633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2637,"src":"2355:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2631,"name":"uint256","nodeType":"ElementaryTypeName","src":"2355:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2354:9:12"},"scope":2884,"src":"2309:79:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2931],"body":{"id":2646,"nodeType":"Block","src":"2468:26:12","statements":[{"expression":{"id":2644,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"2477:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":2643,"id":2645,"nodeType":"Return","src":"2470:21:12"}]},"functionSelector":"15dae03e","id":2647,"implemented":true,"kind":"function","modifiers":[],"name":"getType","nameLocation":"2403:7:12","nodeType":"FunctionDefinition","overrides":{"id":2639,"nodeType":"OverrideSpecifier","overrides":[],"src":"2420:8:12"},"parameters":{"id":2638,"nodeType":"ParameterList","parameters":[],"src":"2410:2:12"},"returnParameters":{"id":2643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2647,"src":"2442:24:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":2641,"nodeType":"UserDefinedTypeName","pathNode":{"id":2640,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"2442:24:12"},"referencedDeclaration":2891,"src":"2442:24:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"2441:26:12"},"scope":2884,"src":"2394:100:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2937],"body":{"id":2659,"nodeType":"Block","src":"2576:60:12","statements":[{"expression":{"arguments":[{"id":2656,"name":"_componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"2620:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2654,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2498,"src":"2585:16:12","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":2655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":6311,"src":"2585:34:12","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2585:48:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"functionReturnParameters":2653,"id":2658,"nodeType":"Return","src":"2578:55:12"}]},"functionSelector":"1865c57d","id":2660,"implemented":true,"kind":"function","modifiers":[],"name":"getState","nameLocation":"2509:8:12","nodeType":"FunctionDefinition","overrides":{"id":2649,"nodeType":"OverrideSpecifier","overrides":[],"src":"2527:8:12"},"parameters":{"id":2648,"nodeType":"ParameterList","parameters":[],"src":"2517:2:12"},"returnParameters":{"id":2653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2660,"src":"2549:25:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":2651,"nodeType":"UserDefinedTypeName","pathNode":{"id":2650,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"2549:25:12"},"referencedDeclaration":2899,"src":"2549:25:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"2548:27:12"},"scope":2884,"src":"2500:136:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2942],"body":{"id":2669,"nodeType":"Block","src":"2700:19:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2666,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"2709:5:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":2667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2709:7:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2665,"id":2668,"nodeType":"Return","src":"2702:14:12"}]},"functionSelector":"893d20e8","id":2670,"implemented":true,"kind":"function","modifiers":[],"name":"getOwner","nameLocation":"2651:8:12","nodeType":"FunctionDefinition","overrides":{"id":2662,"nodeType":"OverrideSpecifier","overrides":[],"src":"2669:8:12"},"parameters":{"id":2661,"nodeType":"ParameterList","parameters":[],"src":"2659:2:12"},"returnParameters":{"id":2665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2670,"src":"2691:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2663,"name":"address","nodeType":"ElementaryTypeName","src":"2691:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2690:9:12"},"scope":2884,"src":"2642:77:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2947],"body":{"id":2682,"nodeType":"Block","src":"2783:62:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":2680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2676,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"2792:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":2677,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"2810:10:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":2678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"2810:24:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":2679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Product","nodeType":"MemberAccess","referencedDeclaration":2889,"src":"2810:32:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"2792:50:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2675,"id":2681,"nodeType":"Return","src":"2785:57:12"}]},"functionSelector":"e0815f0d","id":2683,"implemented":true,"kind":"function","modifiers":[],"name":"isProduct","nameLocation":"2736:9:12","nodeType":"FunctionDefinition","overrides":{"id":2672,"nodeType":"OverrideSpecifier","overrides":[],"src":"2755:8:12"},"parameters":{"id":2671,"nodeType":"ParameterList","parameters":[],"src":"2745:2:12"},"returnParameters":{"id":2675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2683,"src":"2777:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2673,"name":"bool","nodeType":"ElementaryTypeName","src":"2777:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2776:6:12"},"scope":2884,"src":"2727:118:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2952],"body":{"id":2695,"nodeType":"Block","src":"2906:61:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":2693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2689,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"2915:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":2690,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"2933:10:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":2691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"2933:24:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":2692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Oracle","nodeType":"MemberAccess","referencedDeclaration":2888,"src":"2933:31:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"2915:49:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2688,"id":2694,"nodeType":"Return","src":"2908:56:12"}]},"functionSelector":"9a82f890","id":2696,"implemented":true,"kind":"function","modifiers":[],"name":"isOracle","nameLocation":"2860:8:12","nodeType":"FunctionDefinition","overrides":{"id":2685,"nodeType":"OverrideSpecifier","overrides":[],"src":"2878:8:12"},"parameters":{"id":2684,"nodeType":"ParameterList","parameters":[],"src":"2868:2:12"},"returnParameters":{"id":2688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2696,"src":"2900:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2686,"name":"bool","nodeType":"ElementaryTypeName","src":"2900:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2899:6:12"},"scope":2884,"src":"2851:116:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2957],"body":{"id":2708,"nodeType":"Block","src":"3030:63:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":2706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2702,"name":"_componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2486,"src":"3039:14:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":2703,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"3057:10:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":2704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"3057:24:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":2705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"3057:33:12","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"3039:51:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2701,"id":2707,"nodeType":"Return","src":"3032:58:12"}]},"functionSelector":"258d560c","id":2709,"implemented":true,"kind":"function","modifiers":[],"name":"isRiskpool","nameLocation":"2982:10:12","nodeType":"FunctionDefinition","overrides":{"id":2698,"nodeType":"OverrideSpecifier","overrides":[],"src":"3002:8:12"},"parameters":{"id":2697,"nodeType":"ParameterList","parameters":[],"src":"2992:2:12"},"returnParameters":{"id":2701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2709,"src":"3024:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2699,"name":"bool","nodeType":"ElementaryTypeName","src":"3024:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3023:6:12"},"scope":2884,"src":"2973:120:12","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2963],"body":{"id":2718,"nodeType":"Block","src":"3166:21:12","statements":[{"expression":{"id":2716,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"3175:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"functionReturnParameters":2715,"id":2717,"nodeType":"Return","src":"3168:16:12"}]},"functionSelector":"5ab1bd53","id":2719,"implemented":true,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"3110:11:12","nodeType":"FunctionDefinition","overrides":{"id":2711,"nodeType":"OverrideSpecifier","overrides":[],"src":"3133:8:12"},"parameters":{"id":2710,"nodeType":"ParameterList","parameters":[],"src":"3121:2:12"},"returnParameters":{"id":2715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2719,"src":"3155:9:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":2713,"nodeType":"UserDefinedTypeName","pathNode":{"id":2712,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"3155:9:12"},"referencedDeclaration":5714,"src":"3155:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"3154:11:12"},"scope":2884,"src":"3101:86:12","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2966],"body":{"id":2728,"nodeType":"Block","src":"3253:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2725,"name":"_afterPropose","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2803,"src":"3255:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3255:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2727,"nodeType":"ExpressionStatement","src":"3255:15:12"}]},"functionSelector":"638ce0ba","id":2729,"implemented":true,"kind":"function","modifiers":[{"id":2723,"modifierName":{"id":2722,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3239:13:12"},"nodeType":"ModifierInvocation","src":"3239:13:12"}],"name":"proposalCallback","nameLocation":"3204:16:12","nodeType":"FunctionDefinition","overrides":{"id":2721,"nodeType":"OverrideSpecifier","overrides":[],"src":"3230:8:12"},"parameters":{"id":2720,"nodeType":"ParameterList","parameters":[],"src":"3220:2:12"},"returnParameters":{"id":2724,"nodeType":"ParameterList","parameters":[],"src":"3253:0:12"},"scope":2884,"src":"3195:78:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2969],"body":{"id":2738,"nodeType":"Block","src":"3337:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2735,"name":"_afterApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2807,"src":"3339:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3339:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2737,"nodeType":"ExpressionStatement","src":"3339:15:12"}]},"functionSelector":"1b867c63","id":2739,"implemented":true,"kind":"function","modifiers":[{"id":2733,"modifierName":{"id":2732,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3323:13:12"},"nodeType":"ModifierInvocation","src":"3323:13:12"}],"name":"approvalCallback","nameLocation":"3288:16:12","nodeType":"FunctionDefinition","overrides":{"id":2731,"nodeType":"OverrideSpecifier","overrides":[],"src":"3314:8:12"},"parameters":{"id":2730,"nodeType":"ParameterList","parameters":[],"src":"3304:2:12"},"returnParameters":{"id":2734,"nodeType":"ParameterList","parameters":[],"src":"3337:0:12"},"scope":2884,"src":"3279:78:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2972],"body":{"id":2748,"nodeType":"Block","src":"3420:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2745,"name":"_afterDecline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2811,"src":"3422:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3422:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2747,"nodeType":"ExpressionStatement","src":"3422:15:12"}]},"functionSelector":"bd1fe5d0","id":2749,"implemented":true,"kind":"function","modifiers":[{"id":2743,"modifierName":{"id":2742,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3406:13:12"},"nodeType":"ModifierInvocation","src":"3406:13:12"}],"name":"declineCallback","nameLocation":"3372:15:12","nodeType":"FunctionDefinition","overrides":{"id":2741,"nodeType":"OverrideSpecifier","overrides":[],"src":"3397:8:12"},"parameters":{"id":2740,"nodeType":"ParameterList","parameters":[],"src":"3387:2:12"},"returnParameters":{"id":2744,"nodeType":"ParameterList","parameters":[],"src":"3420:0:12"},"scope":2884,"src":"3363:77:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2975],"body":{"id":2758,"nodeType":"Block","src":"3503:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2755,"name":"_afterSuspend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"3505:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3505:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2757,"nodeType":"ExpressionStatement","src":"3505:15:12"}]},"functionSelector":"b3fca9bd","id":2759,"implemented":true,"kind":"function","modifiers":[{"id":2753,"modifierName":{"id":2752,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3489:13:12"},"nodeType":"ModifierInvocation","src":"3489:13:12"}],"name":"suspendCallback","nameLocation":"3455:15:12","nodeType":"FunctionDefinition","overrides":{"id":2751,"nodeType":"OverrideSpecifier","overrides":[],"src":"3480:8:12"},"parameters":{"id":2750,"nodeType":"ParameterList","parameters":[],"src":"3470:2:12"},"returnParameters":{"id":2754,"nodeType":"ParameterList","parameters":[],"src":"3503:0:12"},"scope":2884,"src":"3446:77:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2978],"body":{"id":2768,"nodeType":"Block","src":"3585:19:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2765,"name":"_afterResume","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2819,"src":"3587:12:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3587:14:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2767,"nodeType":"ExpressionStatement","src":"3587:14:12"}]},"functionSelector":"a18f5ae2","id":2769,"implemented":true,"kind":"function","modifiers":[{"id":2763,"modifierName":{"id":2762,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3571:13:12"},"nodeType":"ModifierInvocation","src":"3571:13:12"}],"name":"resumeCallback","nameLocation":"3538:14:12","nodeType":"FunctionDefinition","overrides":{"id":2761,"nodeType":"OverrideSpecifier","overrides":[],"src":"3562:8:12"},"parameters":{"id":2760,"nodeType":"ParameterList","parameters":[],"src":"3552:2:12"},"returnParameters":{"id":2764,"nodeType":"ParameterList","parameters":[],"src":"3585:0:12"},"scope":2884,"src":"3529:75:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2981],"body":{"id":2778,"nodeType":"Block","src":"3665:18:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2775,"name":"_afterPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2823,"src":"3667:11:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3667:13:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2777,"nodeType":"ExpressionStatement","src":"3667:13:12"}]},"functionSelector":"d73cd992","id":2779,"implemented":true,"kind":"function","modifiers":[{"id":2773,"modifierName":{"id":2772,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3651:13:12"},"nodeType":"ModifierInvocation","src":"3651:13:12"}],"name":"pauseCallback","nameLocation":"3619:13:12","nodeType":"FunctionDefinition","overrides":{"id":2771,"nodeType":"OverrideSpecifier","overrides":[],"src":"3642:8:12"},"parameters":{"id":2770,"nodeType":"ParameterList","parameters":[],"src":"3632:2:12"},"returnParameters":{"id":2774,"nodeType":"ParameterList","parameters":[],"src":"3665:0:12"},"scope":2884,"src":"3610:73:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2984],"body":{"id":2788,"nodeType":"Block","src":"3746:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2785,"name":"_afterUnpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2827,"src":"3748:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3748:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2787,"nodeType":"ExpressionStatement","src":"3748:15:12"}]},"functionSelector":"59dacc6a","id":2789,"implemented":true,"kind":"function","modifiers":[{"id":2783,"modifierName":{"id":2782,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3732:13:12"},"nodeType":"ModifierInvocation","src":"3732:13:12"}],"name":"unpauseCallback","nameLocation":"3698:15:12","nodeType":"FunctionDefinition","overrides":{"id":2781,"nodeType":"OverrideSpecifier","overrides":[],"src":"3723:8:12"},"parameters":{"id":2780,"nodeType":"ParameterList","parameters":[],"src":"3713:2:12"},"returnParameters":{"id":2784,"nodeType":"ParameterList","parameters":[],"src":"3746:0:12"},"scope":2884,"src":"3689:77:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[2987],"body":{"id":2798,"nodeType":"Block","src":"3829:20:12","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2795,"name":"_afterArchive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2831,"src":"3831:13:12","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3831:15:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2797,"nodeType":"ExpressionStatement","src":"3831:15:12"}]},"functionSelector":"be169e7e","id":2799,"implemented":true,"kind":"function","modifiers":[{"id":2793,"modifierName":{"id":2792,"name":"onlyComponent","nodeType":"IdentifierPath","referencedDeclaration":2526,"src":"3815:13:12"},"nodeType":"ModifierInvocation","src":"3815:13:12"}],"name":"archiveCallback","nameLocation":"3781:15:12","nodeType":"FunctionDefinition","overrides":{"id":2791,"nodeType":"OverrideSpecifier","overrides":[],"src":"3806:8:12"},"parameters":{"id":2790,"nodeType":"ParameterList","parameters":[],"src":"3796:2:12"},"returnParameters":{"id":2794,"nodeType":"ParameterList","parameters":[],"src":"3829:0:12"},"scope":2884,"src":"3772:77:12","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":2802,"nodeType":"Block","src":"4020:2:12","statements":[]},"id":2803,"implemented":true,"kind":"function","modifiers":[],"name":"_afterPropose","nameLocation":"3987:13:12","nodeType":"FunctionDefinition","parameters":{"id":2800,"nodeType":"ParameterList","parameters":[],"src":"4000:2:12"},"returnParameters":{"id":2801,"nodeType":"ParameterList","parameters":[],"src":"4020:0:12"},"scope":2884,"src":"3978:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2806,"nodeType":"Block","src":"4070:2:12","statements":[]},"id":2807,"implemented":true,"kind":"function","modifiers":[],"name":"_afterApprove","nameLocation":"4037:13:12","nodeType":"FunctionDefinition","parameters":{"id":2804,"nodeType":"ParameterList","parameters":[],"src":"4050:2:12"},"returnParameters":{"id":2805,"nodeType":"ParameterList","parameters":[],"src":"4070:0:12"},"scope":2884,"src":"4028:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2810,"nodeType":"Block","src":"4120:2:12","statements":[]},"id":2811,"implemented":true,"kind":"function","modifiers":[],"name":"_afterDecline","nameLocation":"4087:13:12","nodeType":"FunctionDefinition","parameters":{"id":2808,"nodeType":"ParameterList","parameters":[],"src":"4100:2:12"},"returnParameters":{"id":2809,"nodeType":"ParameterList","parameters":[],"src":"4120:0:12"},"scope":2884,"src":"4078:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2814,"nodeType":"Block","src":"4170:2:12","statements":[]},"id":2815,"implemented":true,"kind":"function","modifiers":[],"name":"_afterSuspend","nameLocation":"4137:13:12","nodeType":"FunctionDefinition","parameters":{"id":2812,"nodeType":"ParameterList","parameters":[],"src":"4150:2:12"},"returnParameters":{"id":2813,"nodeType":"ParameterList","parameters":[],"src":"4170:0:12"},"scope":2884,"src":"4128:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2818,"nodeType":"Block","src":"4219:2:12","statements":[]},"id":2819,"implemented":true,"kind":"function","modifiers":[],"name":"_afterResume","nameLocation":"4187:12:12","nodeType":"FunctionDefinition","parameters":{"id":2816,"nodeType":"ParameterList","parameters":[],"src":"4199:2:12"},"returnParameters":{"id":2817,"nodeType":"ParameterList","parameters":[],"src":"4219:0:12"},"scope":2884,"src":"4178:43:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2822,"nodeType":"Block","src":"4267:2:12","statements":[]},"id":2823,"implemented":true,"kind":"function","modifiers":[],"name":"_afterPause","nameLocation":"4236:11:12","nodeType":"FunctionDefinition","parameters":{"id":2820,"nodeType":"ParameterList","parameters":[],"src":"4247:2:12"},"returnParameters":{"id":2821,"nodeType":"ParameterList","parameters":[],"src":"4267:0:12"},"scope":2884,"src":"4227:42:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2826,"nodeType":"Block","src":"4317:2:12","statements":[]},"id":2827,"implemented":true,"kind":"function","modifiers":[],"name":"_afterUnpause","nameLocation":"4284:13:12","nodeType":"FunctionDefinition","parameters":{"id":2824,"nodeType":"ParameterList","parameters":[],"src":"4297:2:12"},"returnParameters":{"id":2825,"nodeType":"ParameterList","parameters":[],"src":"4317:0:12"},"scope":2884,"src":"4275:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2830,"nodeType":"Block","src":"4367:2:12","statements":[]},"id":2831,"implemented":true,"kind":"function","modifiers":[],"name":"_afterArchive","nameLocation":"4334:13:12","nodeType":"FunctionDefinition","parameters":{"id":2828,"nodeType":"ParameterList","parameters":[],"src":"4347:2:12"},"returnParameters":{"id":2829,"nodeType":"ParameterList","parameters":[],"src":"4367:0:12"},"scope":2884,"src":"4325:44:12","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2843,"nodeType":"Block","src":"4431:72:12","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"416363657373","id":2839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4477:8:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""}],"id":2838,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"4457:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4457:29:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2837,"name":"IAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"4449:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccess_$4836_$","typeString":"type(contract IAccess)"}},"id":2841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4449:38:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"functionReturnParameters":2836,"id":2842,"nodeType":"Return","src":"4442:45:12"}]},"id":2844,"implemented":true,"kind":"function","modifiers":[],"name":"_getAccess","nameLocation":"4386:10:12","nodeType":"FunctionDefinition","parameters":{"id":2832,"nodeType":"ParameterList","parameters":[],"src":"4396:2:12"},"returnParameters":{"id":2836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2835,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2844,"src":"4422:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"},"typeName":{"id":2834,"nodeType":"UserDefinedTypeName","pathNode":{"id":2833,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"4422:7:12"},"referencedDeclaration":4836,"src":"4422:7:12","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"visibility":"internal"}],"src":"4421:9:12"},"scope":2884,"src":"4377:126:12","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2856,"nodeType":"Block","src":"4583:90:12","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"496e7374616e636553657276696365","id":2852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4638:17:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""},"value":"InstanceService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""}],"id":2851,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"4618:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":2853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4618:38:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2850,"name":"IInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"4601:16:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IInstanceService_$6509_$","typeString":"type(contract IInstanceService)"}},"id":2854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4601:56:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"functionReturnParameters":2849,"id":2855,"nodeType":"Return","src":"4594:63:12"}]},"id":2857,"implemented":true,"kind":"function","modifiers":[],"name":"_getInstanceService","nameLocation":"4520:19:12","nodeType":"FunctionDefinition","parameters":{"id":2845,"nodeType":"ParameterList","parameters":[],"src":"4539:2:12"},"returnParameters":{"id":2849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2848,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2857,"src":"4565:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":2847,"nodeType":"UserDefinedTypeName","pathNode":{"id":2846,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"4565:16:12"},"referencedDeclaration":6509,"src":"4565:16:12","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"internal"}],"src":"4564:18:12"},"scope":2884,"src":"4511:162:12","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2869,"nodeType":"Block","src":"4765:102:12","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e744f776e657253657276696365","id":2865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4826:23:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""},"value":"ComponentOwnerService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""}],"id":2864,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"4806:19:12","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":2866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4806:44:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2863,"name":"IComponentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6009,"src":"4783:22:12","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponentOwnerService_$6009_$","typeString":"type(contract IComponentOwnerService)"}},"id":2867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4783:68:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"functionReturnParameters":2862,"id":2868,"nodeType":"Return","src":"4776:75:12"}]},"id":2870,"implemented":true,"kind":"function","modifiers":[],"name":"_getComponentOwnerService","nameLocation":"4690:25:12","nodeType":"FunctionDefinition","parameters":{"id":2858,"nodeType":"ParameterList","parameters":[],"src":"4715:2:12"},"returnParameters":{"id":2862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2870,"src":"4741:22:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":2860,"nodeType":"UserDefinedTypeName","pathNode":{"id":2859,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"4741:22:12"},"referencedDeclaration":6009,"src":"4741:22:12","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"internal"}],"src":"4740:24:12"},"scope":2884,"src":"4681:186:12","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2882,"nodeType":"Block","src":"4958:62:12","statements":[{"expression":{"arguments":[{"id":2879,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2872,"src":"4999:12:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2877,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2489,"src":"4977:9:12","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":2878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContract","nodeType":"MemberAccess","referencedDeclaration":5687,"src":"4977:21:12","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":2880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4977:35:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":2876,"id":2881,"nodeType":"Return","src":"4970:42:12"}]},"id":2883,"implemented":true,"kind":"function","modifiers":[],"name":"_getContractAddress","nameLocation":"4884:19:12","nodeType":"FunctionDefinition","parameters":{"id":2873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2872,"mutability":"mutable","name":"contractName","nameLocation":"4912:12:12","nodeType":"VariableDeclaration","scope":2883,"src":"4904:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4904:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4903:22:12"},"returnParameters":{"id":2876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2875,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2883,"src":"4949:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2874,"name":"address","nodeType":"ElementaryTypeName","src":"4949:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4948:9:12"},"scope":2884,"src":"4875:145:12","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":2885,"src":"461:4564:12"}],"src":"40:4987:12"},"id":12},"@etherisc/gif-interface/contracts/components/IComponent.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","exportedSymbols":{"IComponent":[2988],"IRegistry":[5714]},"id":2989,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":2886,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:13"},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"../modules/IRegistry.sol","id":2887,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2989,"sourceUnit":5715,"src":"66:34:13","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":2988,"linearizedBaseContracts":[2988],"name":"IComponent","nameLocation":"114:10:13","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IComponent.ComponentType","id":2891,"members":[{"id":2888,"name":"Oracle","nameLocation":"164:6:13","nodeType":"EnumValue","src":"164:6:13"},{"id":2889,"name":"Product","nameLocation":"181:7:13","nodeType":"EnumValue","src":"181:7:13"},{"id":2890,"name":"Riskpool","nameLocation":"199:8:13","nodeType":"EnumValue","src":"199:8:13"}],"name":"ComponentType","nameLocation":"139:13:13","nodeType":"EnumDefinition","src":"134:80:13"},{"canonicalName":"IComponent.ComponentState","id":2899,"members":[{"id":2892,"name":"Created","nameLocation":"253:7:13","nodeType":"EnumValue","src":"253:7:13"},{"id":2893,"name":"Proposed","nameLocation":"271:8:13","nodeType":"EnumValue","src":"271:8:13"},{"id":2894,"name":"Declined","nameLocation":"290:8:13","nodeType":"EnumValue","src":"290:8:13"},{"id":2895,"name":"Active","nameLocation":"309:6:13","nodeType":"EnumValue","src":"309:6:13"},{"id":2896,"name":"Paused","nameLocation":"326:6:13","nodeType":"EnumValue","src":"326:6:13"},{"id":2897,"name":"Suspended","nameLocation":"343:9:13","nodeType":"EnumValue","src":"343:9:13"},{"id":2898,"name":"Archived","nameLocation":"363:8:13","nodeType":"EnumValue","src":"363:8:13"}],"name":"ComponentState","nameLocation":"227:14:13","nodeType":"EnumDefinition","src":"222:156:13"},{"anonymous":false,"id":2910,"name":"LogComponentCreated","nameLocation":"392:19:13","nodeType":"EventDefinition","parameters":{"id":2909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2901,"indexed":false,"mutability":"mutable","name":"componentName","nameLocation":"431:13:13","nodeType":"VariableDeclaration","scope":2910,"src":"423:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2900,"name":"bytes32","nodeType":"ElementaryTypeName","src":"423:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2904,"indexed":false,"mutability":"mutable","name":"componentType","nameLocation":"480:13:13","nodeType":"VariableDeclaration","scope":2910,"src":"455:38:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":2903,"nodeType":"UserDefinedTypeName","pathNode":{"id":2902,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"455:24:13"},"referencedDeclaration":2891,"src":"455:24:13","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"},{"constant":false,"id":2906,"indexed":false,"mutability":"mutable","name":"componentAddress","nameLocation":"512:16:13","nodeType":"VariableDeclaration","scope":2910,"src":"504:24:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2905,"name":"address","nodeType":"ElementaryTypeName","src":"504:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2908,"indexed":false,"mutability":"mutable","name":"registryAddress","nameLocation":"547:15:13","nodeType":"VariableDeclaration","scope":2910,"src":"539:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2907,"name":"address","nodeType":"ElementaryTypeName","src":"539:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"412:151:13"},"src":"386:178:13"},{"functionSelector":"d0e0ba95","id":2915,"implemented":false,"kind":"function","modifiers":[],"name":"setId","nameLocation":"581:5:13","nodeType":"FunctionDefinition","parameters":{"id":2913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2912,"mutability":"mutable","name":"id","nameLocation":"595:2:13","nodeType":"VariableDeclaration","scope":2915,"src":"587:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2911,"name":"uint256","nodeType":"ElementaryTypeName","src":"587:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"586:12:13"},"returnParameters":{"id":2914,"nodeType":"ParameterList","parameters":[],"src":"607:0:13"},"scope":2988,"src":"572:36:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"17d7de7c","id":2920,"implemented":false,"kind":"function","modifiers":[],"name":"getName","nameLocation":"625:7:13","nodeType":"FunctionDefinition","parameters":{"id":2916,"nodeType":"ParameterList","parameters":[],"src":"632:2:13"},"returnParameters":{"id":2919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2920,"src":"657:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"657:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"656:9:13"},"scope":2988,"src":"616:50:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5d1ca631","id":2925,"implemented":false,"kind":"function","modifiers":[],"name":"getId","nameLocation":"681:5:13","nodeType":"FunctionDefinition","parameters":{"id":2921,"nodeType":"ParameterList","parameters":[],"src":"686:2:13"},"returnParameters":{"id":2924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2925,"src":"711:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2922,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"710:9:13"},"scope":2988,"src":"672:48:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"15dae03e","id":2931,"implemented":false,"kind":"function","modifiers":[],"name":"getType","nameLocation":"735:7:13","nodeType":"FunctionDefinition","parameters":{"id":2926,"nodeType":"ParameterList","parameters":[],"src":"742:2:13"},"returnParameters":{"id":2930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2931,"src":"767:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":2928,"nodeType":"UserDefinedTypeName","pathNode":{"id":2927,"name":"ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"767:13:13"},"referencedDeclaration":2891,"src":"767:13:13","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"766:15:13"},"scope":2988,"src":"726:56:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1865c57d","id":2937,"implemented":false,"kind":"function","modifiers":[],"name":"getState","nameLocation":"797:8:13","nodeType":"FunctionDefinition","parameters":{"id":2932,"nodeType":"ParameterList","parameters":[],"src":"805:2:13"},"returnParameters":{"id":2936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2937,"src":"830:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":2934,"nodeType":"UserDefinedTypeName","pathNode":{"id":2933,"name":"ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"830:14:13"},"referencedDeclaration":2899,"src":"830:14:13","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"829:16:13"},"scope":2988,"src":"788:58:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"893d20e8","id":2942,"implemented":false,"kind":"function","modifiers":[],"name":"getOwner","nameLocation":"861:8:13","nodeType":"FunctionDefinition","parameters":{"id":2938,"nodeType":"ParameterList","parameters":[],"src":"869:2:13"},"returnParameters":{"id":2941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2942,"src":"894:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2939,"name":"address","nodeType":"ElementaryTypeName","src":"894:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"893:9:13"},"scope":2988,"src":"852:51:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e0815f0d","id":2947,"implemented":false,"kind":"function","modifiers":[],"name":"isProduct","nameLocation":"920:9:13","nodeType":"FunctionDefinition","parameters":{"id":2943,"nodeType":"ParameterList","parameters":[],"src":"929:2:13"},"returnParameters":{"id":2946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2947,"src":"954:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2944,"name":"bool","nodeType":"ElementaryTypeName","src":"954:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"953:6:13"},"scope":2988,"src":"911:49:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"9a82f890","id":2952,"implemented":false,"kind":"function","modifiers":[],"name":"isOracle","nameLocation":"975:8:13","nodeType":"FunctionDefinition","parameters":{"id":2948,"nodeType":"ParameterList","parameters":[],"src":"983:2:13"},"returnParameters":{"id":2951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2950,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2952,"src":"1008:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2949,"name":"bool","nodeType":"ElementaryTypeName","src":"1008:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1007:6:13"},"scope":2988,"src":"966:48:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"258d560c","id":2957,"implemented":false,"kind":"function","modifiers":[],"name":"isRiskpool","nameLocation":"1029:10:13","nodeType":"FunctionDefinition","parameters":{"id":2953,"nodeType":"ParameterList","parameters":[],"src":"1039:2:13"},"returnParameters":{"id":2956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2957,"src":"1064:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2954,"name":"bool","nodeType":"ElementaryTypeName","src":"1064:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1063:6:13"},"scope":2988,"src":"1020:50:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5ab1bd53","id":2963,"implemented":false,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"1087:11:13","nodeType":"FunctionDefinition","parameters":{"id":2958,"nodeType":"ParameterList","parameters":[],"src":"1098:2:13"},"returnParameters":{"id":2962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2963,"src":"1123:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":2960,"nodeType":"UserDefinedTypeName","pathNode":{"id":2959,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"1123:9:13"},"referencedDeclaration":5714,"src":"1123:9:13","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"1122:11:13"},"scope":2988,"src":"1078:56:13","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"638ce0ba","id":2966,"implemented":false,"kind":"function","modifiers":[],"name":"proposalCallback","nameLocation":"1151:16:13","nodeType":"FunctionDefinition","parameters":{"id":2964,"nodeType":"ParameterList","parameters":[],"src":"1167:2:13"},"returnParameters":{"id":2965,"nodeType":"ParameterList","parameters":[],"src":"1178:0:13"},"scope":2988,"src":"1142:37:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1b867c63","id":2969,"implemented":false,"kind":"function","modifiers":[],"name":"approvalCallback","nameLocation":"1194:16:13","nodeType":"FunctionDefinition","parameters":{"id":2967,"nodeType":"ParameterList","parameters":[],"src":"1210:2:13"},"returnParameters":{"id":2968,"nodeType":"ParameterList","parameters":[],"src":"1221:0:13"},"scope":2988,"src":"1185:37:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"bd1fe5d0","id":2972,"implemented":false,"kind":"function","modifiers":[],"name":"declineCallback","nameLocation":"1238:15:13","nodeType":"FunctionDefinition","parameters":{"id":2970,"nodeType":"ParameterList","parameters":[],"src":"1253:2:13"},"returnParameters":{"id":2971,"nodeType":"ParameterList","parameters":[],"src":"1264:0:13"},"scope":2988,"src":"1229:36:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b3fca9bd","id":2975,"implemented":false,"kind":"function","modifiers":[],"name":"suspendCallback","nameLocation":"1280:15:13","nodeType":"FunctionDefinition","parameters":{"id":2973,"nodeType":"ParameterList","parameters":[],"src":"1295:2:13"},"returnParameters":{"id":2974,"nodeType":"ParameterList","parameters":[],"src":"1306:0:13"},"scope":2988,"src":"1271:36:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a18f5ae2","id":2978,"implemented":false,"kind":"function","modifiers":[],"name":"resumeCallback","nameLocation":"1322:14:13","nodeType":"FunctionDefinition","parameters":{"id":2976,"nodeType":"ParameterList","parameters":[],"src":"1336:2:13"},"returnParameters":{"id":2977,"nodeType":"ParameterList","parameters":[],"src":"1347:0:13"},"scope":2988,"src":"1313:35:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d73cd992","id":2981,"implemented":false,"kind":"function","modifiers":[],"name":"pauseCallback","nameLocation":"1363:13:13","nodeType":"FunctionDefinition","parameters":{"id":2979,"nodeType":"ParameterList","parameters":[],"src":"1376:2:13"},"returnParameters":{"id":2980,"nodeType":"ParameterList","parameters":[],"src":"1387:0:13"},"scope":2988,"src":"1354:34:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"59dacc6a","id":2984,"implemented":false,"kind":"function","modifiers":[],"name":"unpauseCallback","nameLocation":"1403:15:13","nodeType":"FunctionDefinition","parameters":{"id":2982,"nodeType":"ParameterList","parameters":[],"src":"1418:2:13"},"returnParameters":{"id":2983,"nodeType":"ParameterList","parameters":[],"src":"1429:0:13"},"scope":2988,"src":"1394:36:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"be169e7e","id":2987,"implemented":false,"kind":"function","modifiers":[],"name":"archiveCallback","nameLocation":"1445:15:13","nodeType":"FunctionDefinition","parameters":{"id":2985,"nodeType":"ParameterList","parameters":[],"src":"1460:2:13"},"returnParameters":{"id":2986,"nodeType":"ParameterList","parameters":[],"src":"1471:0:13"},"scope":2988,"src":"1436:36:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":2989,"src":"104:1371:13"}],"src":"40:1435:13"},"id":13},"@etherisc/gif-interface/contracts/components/IOracle.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/IOracle.sol","exportedSymbols":{"IComponent":[2988],"IOracle":[3022],"IRegistry":[5714]},"id":3023,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":2990,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:14"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"./IComponent.sol","id":2991,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3023,"sourceUnit":2989,"src":"63:26:14","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":2992,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"112:10:14"},"id":2993,"nodeType":"InheritanceSpecifier","src":"112:10:14"}],"contractDependencies":[2988],"contractKind":"interface","fullyImplemented":false,"id":3022,"linearizedBaseContracts":[3022,2988],"name":"IOracle","nameLocation":"101:7:14","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":2997,"name":"LogOracleCreated","nameLocation":"140:16:14","nodeType":"EventDefinition","parameters":{"id":2996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2995,"indexed":false,"mutability":"mutable","name":"oracleAddress","nameLocation":"166:13:14","nodeType":"VariableDeclaration","scope":2997,"src":"158:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2994,"name":"address","nodeType":"ElementaryTypeName","src":"158:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"157:23:14"},"src":"134:47:14"},{"anonymous":false,"id":3001,"name":"LogOracleProposed","nameLocation":"192:17:14","nodeType":"EventDefinition","parameters":{"id":3000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2999,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"219:11:14","nodeType":"VariableDeclaration","scope":3001,"src":"211:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2998,"name":"uint256","nodeType":"ElementaryTypeName","src":"211:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"210:21:14"},"src":"186:46:14"},{"anonymous":false,"id":3005,"name":"LogOracleApproved","nameLocation":"243:17:14","nodeType":"EventDefinition","parameters":{"id":3004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3003,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"270:11:14","nodeType":"VariableDeclaration","scope":3005,"src":"262:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3002,"name":"uint256","nodeType":"ElementaryTypeName","src":"262:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"261:21:14"},"src":"237:46:14"},{"anonymous":false,"id":3009,"name":"LogOracleDeclined","nameLocation":"294:17:14","nodeType":"EventDefinition","parameters":{"id":3008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3007,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"321:11:14","nodeType":"VariableDeclaration","scope":3009,"src":"313:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3006,"name":"uint256","nodeType":"ElementaryTypeName","src":"313:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"312:21:14"},"src":"288:46:14"},{"functionSelector":"ffc79065","id":3016,"implemented":false,"kind":"function","modifiers":[],"name":"request","nameLocation":"353:7:14","nodeType":"FunctionDefinition","parameters":{"id":3014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3011,"mutability":"mutable","name":"requestId","nameLocation":"369:9:14","nodeType":"VariableDeclaration","scope":3016,"src":"361:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3010,"name":"uint256","nodeType":"ElementaryTypeName","src":"361:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3013,"mutability":"mutable","name":"input","nameLocation":"395:5:14","nodeType":"VariableDeclaration","scope":3016,"src":"380:20:14","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3012,"name":"bytes","nodeType":"ElementaryTypeName","src":"380:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"360:41:14"},"returnParameters":{"id":3015,"nodeType":"ParameterList","parameters":[],"src":"410:0:14"},"scope":3022,"src":"344:67:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"40e58ee5","id":3021,"implemented":false,"kind":"function","modifiers":[],"name":"cancel","nameLocation":"425:6:14","nodeType":"FunctionDefinition","parameters":{"id":3019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3018,"mutability":"mutable","name":"requestId","nameLocation":"440:9:14","nodeType":"VariableDeclaration","scope":3021,"src":"432:17:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3017,"name":"uint256","nodeType":"ElementaryTypeName","src":"432:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"431:19:14"},"returnParameters":{"id":3020,"nodeType":"ParameterList","parameters":[],"src":"459:0:14"},"scope":3022,"src":"416:44:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3023,"src":"91:371:14"}],"src":"39:424:14"},"id":14},"@etherisc/gif-interface/contracts/components/IProduct.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","exportedSymbols":{"IComponent":[2988],"IProduct":[3079],"IRegistry":[5714]},"id":3080,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3024,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:15"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"./IComponent.sol","id":3025,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3080,"sourceUnit":2989,"src":"63:26:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3026,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"113:10:15"},"id":3027,"nodeType":"InheritanceSpecifier","src":"113:10:15"}],"contractDependencies":[2988],"contractKind":"interface","fullyImplemented":false,"id":3079,"linearizedBaseContracts":[3079,2988],"name":"IProduct","nameLocation":"101:8:15","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":3031,"name":"LogProductCreated","nameLocation":"137:17:15","nodeType":"EventDefinition","parameters":{"id":3030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3029,"indexed":false,"mutability":"mutable","name":"productAddress","nameLocation":"164:14:15","nodeType":"VariableDeclaration","scope":3031,"src":"156:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3028,"name":"address","nodeType":"ElementaryTypeName","src":"156:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"155:24:15"},"src":"131:49:15"},{"anonymous":false,"id":3035,"name":"LogProductProposed","nameLocation":"191:18:15","nodeType":"EventDefinition","parameters":{"id":3034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3033,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"219:11:15","nodeType":"VariableDeclaration","scope":3035,"src":"211:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3032,"name":"uint256","nodeType":"ElementaryTypeName","src":"211:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"210:21:15"},"src":"185:47:15"},{"anonymous":false,"id":3039,"name":"LogProductApproved","nameLocation":"243:18:15","nodeType":"EventDefinition","parameters":{"id":3038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3037,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"271:11:15","nodeType":"VariableDeclaration","scope":3039,"src":"263:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3036,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"262:21:15"},"src":"237:47:15"},{"anonymous":false,"id":3043,"name":"LogProductDeclined","nameLocation":"295:18:15","nodeType":"EventDefinition","parameters":{"id":3042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3041,"indexed":false,"mutability":"mutable","name":"componentId","nameLocation":"323:11:15","nodeType":"VariableDeclaration","scope":3043,"src":"315:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3040,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"314:21:15"},"src":"289:47:15"},{"functionSelector":"21df0da7","id":3048,"implemented":false,"kind":"function","modifiers":[],"name":"getToken","nameLocation":"351:8:15","nodeType":"FunctionDefinition","parameters":{"id":3044,"nodeType":"ParameterList","parameters":[],"src":"359:2:15"},"returnParameters":{"id":3047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3046,"mutability":"mutable","name":"token","nameLocation":"392:5:15","nodeType":"VariableDeclaration","scope":3048,"src":"384:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3045,"name":"address","nodeType":"ElementaryTypeName","src":"384:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"383:15:15"},"scope":3079,"src":"342:57:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"637d08f4","id":3053,"implemented":false,"kind":"function","modifiers":[],"name":"getPolicyFlow","nameLocation":"413:13:15","nodeType":"FunctionDefinition","parameters":{"id":3049,"nodeType":"ParameterList","parameters":[],"src":"426:2:15"},"returnParameters":{"id":3052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3051,"mutability":"mutable","name":"policyFlow","nameLocation":"459:10:15","nodeType":"VariableDeclaration","scope":3053,"src":"451:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3050,"name":"address","nodeType":"ElementaryTypeName","src":"451:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"450:20:15"},"scope":3079,"src":"404:67:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"70d2fe53","id":3058,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolId","nameLocation":"485:13:15","nodeType":"FunctionDefinition","parameters":{"id":3054,"nodeType":"ParameterList","parameters":[],"src":"498:2:15"},"returnParameters":{"id":3057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3056,"mutability":"mutable","name":"riskpoolId","nameLocation":"531:10:15","nodeType":"VariableDeclaration","scope":3058,"src":"523:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3055,"name":"uint256","nodeType":"ElementaryTypeName","src":"523:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"522:20:15"},"scope":3079,"src":"476:67:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"94f64ff4","id":3063,"implemented":false,"kind":"function","modifiers":[],"name":"getApplicationDataStructure","nameLocation":"558:27:15","nodeType":"FunctionDefinition","parameters":{"id":3059,"nodeType":"ParameterList","parameters":[],"src":"585:2:15"},"returnParameters":{"id":3062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3061,"mutability":"mutable","name":"dataStructure","nameLocation":"624:13:15","nodeType":"VariableDeclaration","scope":3063,"src":"610:27:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3060,"name":"string","nodeType":"ElementaryTypeName","src":"610:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"609:29:15"},"scope":3079,"src":"549:90:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3ec92bda","id":3068,"implemented":false,"kind":"function","modifiers":[],"name":"getClaimDataStructure","nameLocation":"653:21:15","nodeType":"FunctionDefinition","parameters":{"id":3064,"nodeType":"ParameterList","parameters":[],"src":"674:2:15"},"returnParameters":{"id":3067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3066,"mutability":"mutable","name":"dataStructure","nameLocation":"713:13:15","nodeType":"VariableDeclaration","scope":3068,"src":"699:27:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3065,"name":"string","nodeType":"ElementaryTypeName","src":"699:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"698:29:15"},"scope":3079,"src":"644:84:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"39cf5e16","id":3073,"implemented":false,"kind":"function","modifiers":[],"name":"getPayoutDataStructure","nameLocation":"742:22:15","nodeType":"FunctionDefinition","parameters":{"id":3069,"nodeType":"ParameterList","parameters":[],"src":"764:2:15"},"returnParameters":{"id":3072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3071,"mutability":"mutable","name":"dataStructure","nameLocation":"803:13:15","nodeType":"VariableDeclaration","scope":3073,"src":"789:27:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3070,"name":"string","nodeType":"ElementaryTypeName","src":"789:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"788:29:15"},"scope":3079,"src":"733:85:15","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f4fdc1fa","id":3078,"implemented":false,"kind":"function","modifiers":[],"name":"riskPoolCapacityCallback","nameLocation":"833:24:15","nodeType":"FunctionDefinition","parameters":{"id":3076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3075,"mutability":"mutable","name":"capacity","nameLocation":"866:8:15","nodeType":"VariableDeclaration","scope":3078,"src":"858:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3074,"name":"uint256","nodeType":"ElementaryTypeName","src":"858:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"857:18:15"},"returnParameters":{"id":3077,"nodeType":"ParameterList","parameters":[],"src":"884:0:15"},"scope":3079,"src":"824:61:15","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3080,"src":"91:796:15"}],"src":"39:849:15"},"id":15},"@etherisc/gif-interface/contracts/components/IRiskpool.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","exportedSymbols":{"IBundle":[5020],"IComponent":[2988],"IPolicy":[5433],"IRegistry":[5714],"IRiskpool":[3312]},"id":3313,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3081,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:16"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"./IComponent.sol","id":3082,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3313,"sourceUnit":2989,"src":"63:26:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"../modules/IBundle.sol","id":3083,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3313,"sourceUnit":5021,"src":"90:32:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"../modules/IPolicy.sol","id":3084,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3313,"sourceUnit":5434,"src":"123:32:16","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3085,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"180:10:16"},"id":3086,"nodeType":"InheritanceSpecifier","src":"180:10:16"}],"contractDependencies":[2988],"contractKind":"interface","fullyImplemented":false,"id":3312,"linearizedBaseContracts":[3312,2988],"name":"IRiskpool","nameLocation":"167:9:16","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":3090,"name":"LogRiskpoolCreated","nameLocation":"204:18:16","nodeType":"EventDefinition","parameters":{"id":3089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3088,"indexed":false,"mutability":"mutable","name":"riskpoolAddress","nameLocation":"232:15:16","nodeType":"VariableDeclaration","scope":3090,"src":"224:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3087,"name":"address","nodeType":"ElementaryTypeName","src":"224:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"223:25:16"},"src":"198:51:16"},{"anonymous":false,"id":3094,"name":"LogRiskpoolProposed","nameLocation":"260:19:16","nodeType":"EventDefinition","parameters":{"id":3093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3092,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"289:2:16","nodeType":"VariableDeclaration","scope":3094,"src":"281:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3091,"name":"uint256","nodeType":"ElementaryTypeName","src":"281:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"280:12:16"},"src":"254:39:16"},{"anonymous":false,"id":3098,"name":"LogRiskpoolApproved","nameLocation":"304:19:16","nodeType":"EventDefinition","parameters":{"id":3097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3096,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"333:2:16","nodeType":"VariableDeclaration","scope":3098,"src":"325:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3095,"name":"uint256","nodeType":"ElementaryTypeName","src":"325:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"324:12:16"},"src":"298:39:16"},{"anonymous":false,"id":3102,"name":"LogRiskpoolDeclined","nameLocation":"348:19:16","nodeType":"EventDefinition","parameters":{"id":3101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3100,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"377:2:16","nodeType":"VariableDeclaration","scope":3102,"src":"369:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3099,"name":"uint256","nodeType":"ElementaryTypeName","src":"369:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"368:12:16"},"src":"342:39:16"},{"anonymous":false,"id":3108,"name":"LogRiskpoolBundleCreated","nameLocation":"393:24:16","nodeType":"EventDefinition","parameters":{"id":3107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3104,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"426:8:16","nodeType":"VariableDeclaration","scope":3108,"src":"418:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3103,"name":"uint256","nodeType":"ElementaryTypeName","src":"418:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3106,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"444:6:16","nodeType":"VariableDeclaration","scope":3108,"src":"436:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3105,"name":"uint256","nodeType":"ElementaryTypeName","src":"436:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"417:34:16"},"src":"387:65:16"},{"anonymous":false,"id":3114,"name":"LogRiskpoolBundleMatchesPolicy","nameLocation":"463:30:16","nodeType":"EventDefinition","parameters":{"id":3113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3110,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"502:8:16","nodeType":"VariableDeclaration","scope":3114,"src":"494:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3109,"name":"uint256","nodeType":"ElementaryTypeName","src":"494:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3112,"indexed":false,"mutability":"mutable","name":"isMatching","nameLocation":"517:10:16","nodeType":"VariableDeclaration","scope":3114,"src":"512:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3111,"name":"bool","nodeType":"ElementaryTypeName","src":"512:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"493:35:16"},"src":"457:72:16"},{"anonymous":false,"id":3122,"name":"LogRiskpoolCollateralLocked","nameLocation":"540:27:16","nodeType":"EventDefinition","parameters":{"id":3121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3116,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"576:9:16","nodeType":"VariableDeclaration","scope":3122,"src":"568:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3115,"name":"bytes32","nodeType":"ElementaryTypeName","src":"568:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3118,"indexed":false,"mutability":"mutable","name":"collateralAmount","nameLocation":"595:16:16","nodeType":"VariableDeclaration","scope":3122,"src":"587:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3117,"name":"uint256","nodeType":"ElementaryTypeName","src":"587:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3120,"indexed":false,"mutability":"mutable","name":"isSecured","nameLocation":"618:9:16","nodeType":"VariableDeclaration","scope":3122,"src":"613:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3119,"name":"bool","nodeType":"ElementaryTypeName","src":"613:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"567:61:16"},"src":"534:95:16"},{"anonymous":false,"id":3128,"name":"LogRiskpoolPremiumProcessed","nameLocation":"641:27:16","nodeType":"EventDefinition","parameters":{"id":3127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3124,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"677:9:16","nodeType":"VariableDeclaration","scope":3128,"src":"669:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"669:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3126,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"696:6:16","nodeType":"VariableDeclaration","scope":3128,"src":"688:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3125,"name":"uint256","nodeType":"ElementaryTypeName","src":"688:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"668:35:16"},"src":"635:69:16"},{"anonymous":false,"id":3134,"name":"LogRiskpoolPayoutProcessed","nameLocation":"715:26:16","nodeType":"EventDefinition","parameters":{"id":3133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3130,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"750:9:16","nodeType":"VariableDeclaration","scope":3134,"src":"742:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3129,"name":"bytes32","nodeType":"ElementaryTypeName","src":"742:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3132,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"769:6:16","nodeType":"VariableDeclaration","scope":3134,"src":"761:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3131,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"741:35:16"},"src":"709:68:16"},{"anonymous":false,"id":3140,"name":"LogRiskpoolCollateralReleased","nameLocation":"788:29:16","nodeType":"EventDefinition","parameters":{"id":3139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3136,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"826:9:16","nodeType":"VariableDeclaration","scope":3140,"src":"818:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"818:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3138,"indexed":false,"mutability":"mutable","name":"collateralAmount","nameLocation":"845:16:16","nodeType":"VariableDeclaration","scope":3140,"src":"837:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3137,"name":"uint256","nodeType":"ElementaryTypeName","src":"837:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"817:45:16"},"src":"782:81:16"},{"functionSelector":"7888a2ff","id":3149,"implemented":false,"kind":"function","modifiers":[],"name":"createBundle","nameLocation":"879:12:16","nodeType":"FunctionDefinition","parameters":{"id":3145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3142,"mutability":"mutable","name":"filter","nameLocation":"905:6:16","nodeType":"VariableDeclaration","scope":3149,"src":"892:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3141,"name":"bytes","nodeType":"ElementaryTypeName","src":"892:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3144,"mutability":"mutable","name":"initialAmount","nameLocation":"921:13:16","nodeType":"VariableDeclaration","scope":3149,"src":"913:21:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3143,"name":"uint256","nodeType":"ElementaryTypeName","src":"913:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"891:44:16"},"returnParameters":{"id":3148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3147,"mutability":"mutable","name":"bundleId","nameLocation":"961:8:16","nodeType":"VariableDeclaration","scope":3149,"src":"953:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3146,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"952:18:16"},"scope":3312,"src":"870:101:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"89002da5","id":3158,"implemented":false,"kind":"function","modifiers":[],"name":"fundBundle","nameLocation":"985:10:16","nodeType":"FunctionDefinition","parameters":{"id":3154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3151,"mutability":"mutable","name":"bundleId","nameLocation":"1004:8:16","nodeType":"VariableDeclaration","scope":3158,"src":"996:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3150,"name":"uint256","nodeType":"ElementaryTypeName","src":"996:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3153,"mutability":"mutable","name":"amount","nameLocation":"1022:6:16","nodeType":"VariableDeclaration","scope":3158,"src":"1014:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3152,"name":"uint256","nodeType":"ElementaryTypeName","src":"1014:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"995:34:16"},"returnParameters":{"id":3157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3156,"mutability":"mutable","name":"netAmount","nameLocation":"1055:9:16","nodeType":"VariableDeclaration","scope":3158,"src":"1047:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3155,"name":"uint256","nodeType":"ElementaryTypeName","src":"1047:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1046:19:16"},"scope":3312,"src":"976:90:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"36153f3a","id":3167,"implemented":false,"kind":"function","modifiers":[],"name":"defundBundle","nameLocation":"1080:12:16","nodeType":"FunctionDefinition","parameters":{"id":3163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3160,"mutability":"mutable","name":"bundleId","nameLocation":"1101:8:16","nodeType":"VariableDeclaration","scope":3167,"src":"1093:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3159,"name":"uint256","nodeType":"ElementaryTypeName","src":"1093:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3162,"mutability":"mutable","name":"amount","nameLocation":"1119:6:16","nodeType":"VariableDeclaration","scope":3167,"src":"1111:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3161,"name":"uint256","nodeType":"ElementaryTypeName","src":"1111:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1092:34:16"},"returnParameters":{"id":3166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3165,"mutability":"mutable","name":"netAmount","nameLocation":"1152:9:16","nodeType":"VariableDeclaration","scope":3167,"src":"1144:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3164,"name":"uint256","nodeType":"ElementaryTypeName","src":"1144:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1143:19:16"},"scope":3312,"src":"1071:92:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a17030d5","id":3172,"implemented":false,"kind":"function","modifiers":[],"name":"lockBundle","nameLocation":"1178:10:16","nodeType":"FunctionDefinition","parameters":{"id":3170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3169,"mutability":"mutable","name":"bundleId","nameLocation":"1197:8:16","nodeType":"VariableDeclaration","scope":3172,"src":"1189:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3168,"name":"uint256","nodeType":"ElementaryTypeName","src":"1189:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1188:18:16"},"returnParameters":{"id":3171,"nodeType":"ParameterList","parameters":[],"src":"1215:0:16"},"scope":3312,"src":"1169:47:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"316c5348","id":3177,"implemented":false,"kind":"function","modifiers":[],"name":"unlockBundle","nameLocation":"1230:12:16","nodeType":"FunctionDefinition","parameters":{"id":3175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3174,"mutability":"mutable","name":"bundleId","nameLocation":"1251:8:16","nodeType":"VariableDeclaration","scope":3177,"src":"1243:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3173,"name":"uint256","nodeType":"ElementaryTypeName","src":"1243:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1242:18:16"},"returnParameters":{"id":3176,"nodeType":"ParameterList","parameters":[],"src":"1269:0:16"},"scope":3312,"src":"1221:49:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8c483e5a","id":3182,"implemented":false,"kind":"function","modifiers":[],"name":"closeBundle","nameLocation":"1284:11:16","nodeType":"FunctionDefinition","parameters":{"id":3180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3179,"mutability":"mutable","name":"bundleId","nameLocation":"1304:8:16","nodeType":"VariableDeclaration","scope":3182,"src":"1296:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3178,"name":"uint256","nodeType":"ElementaryTypeName","src":"1296:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1295:18:16"},"returnParameters":{"id":3181,"nodeType":"ParameterList","parameters":[],"src":"1322:0:16"},"scope":3312,"src":"1275:48:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"587e59d0","id":3187,"implemented":false,"kind":"function","modifiers":[],"name":"burnBundle","nameLocation":"1337:10:16","nodeType":"FunctionDefinition","parameters":{"id":3185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3184,"mutability":"mutable","name":"bundleId","nameLocation":"1356:8:16","nodeType":"VariableDeclaration","scope":3187,"src":"1348:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3183,"name":"uint256","nodeType":"ElementaryTypeName","src":"1348:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1347:18:16"},"returnParameters":{"id":3186,"nodeType":"ParameterList","parameters":[],"src":"1374:0:16"},"scope":3312,"src":"1328:47:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"890fbf78","id":3196,"implemented":false,"kind":"function","modifiers":[],"name":"collateralizePolicy","nameLocation":"1390:19:16","nodeType":"FunctionDefinition","parameters":{"id":3192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3189,"mutability":"mutable","name":"processId","nameLocation":"1418:9:16","nodeType":"VariableDeclaration","scope":3196,"src":"1410:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1410:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3191,"mutability":"mutable","name":"collateralAmount","nameLocation":"1437:16:16","nodeType":"VariableDeclaration","scope":3196,"src":"1429:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3190,"name":"uint256","nodeType":"ElementaryTypeName","src":"1429:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1409:45:16"},"returnParameters":{"id":3195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3194,"mutability":"mutable","name":"isSecured","nameLocation":"1477:9:16","nodeType":"VariableDeclaration","scope":3196,"src":"1472:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3193,"name":"bool","nodeType":"ElementaryTypeName","src":"1472:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1471:16:16"},"scope":3312,"src":"1381:107:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3629c3c4","id":3203,"implemented":false,"kind":"function","modifiers":[],"name":"processPolicyPremium","nameLocation":"1502:20:16","nodeType":"FunctionDefinition","parameters":{"id":3201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3198,"mutability":"mutable","name":"processId","nameLocation":"1531:9:16","nodeType":"VariableDeclaration","scope":3203,"src":"1523:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3197,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1523:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3200,"mutability":"mutable","name":"amount","nameLocation":"1550:6:16","nodeType":"VariableDeclaration","scope":3203,"src":"1542:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3199,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1522:35:16"},"returnParameters":{"id":3202,"nodeType":"ParameterList","parameters":[],"src":"1566:0:16"},"scope":3312,"src":"1493:74:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"82558906","id":3210,"implemented":false,"kind":"function","modifiers":[],"name":"processPolicyPayout","nameLocation":"1581:19:16","nodeType":"FunctionDefinition","parameters":{"id":3208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3205,"mutability":"mutable","name":"processId","nameLocation":"1609:9:16","nodeType":"VariableDeclaration","scope":3210,"src":"1601:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1601:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3207,"mutability":"mutable","name":"amount","nameLocation":"1628:6:16","nodeType":"VariableDeclaration","scope":3210,"src":"1620:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3206,"name":"uint256","nodeType":"ElementaryTypeName","src":"1620:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1600:35:16"},"returnParameters":{"id":3209,"nodeType":"ParameterList","parameters":[],"src":"1644:0:16"},"scope":3312,"src":"1572:73:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c3004c86","id":3215,"implemented":false,"kind":"function","modifiers":[],"name":"releasePolicy","nameLocation":"1659:13:16","nodeType":"FunctionDefinition","parameters":{"id":3213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3212,"mutability":"mutable","name":"processId","nameLocation":"1681:9:16","nodeType":"VariableDeclaration","scope":3215,"src":"1673:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1673:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1672:19:16"},"returnParameters":{"id":3214,"nodeType":"ParameterList","parameters":[],"src":"1700:0:16"},"scope":3312,"src":"1650:51:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"54afef63","id":3220,"implemented":false,"kind":"function","modifiers":[],"name":"getCollateralizationLevel","nameLocation":"1716:25:16","nodeType":"FunctionDefinition","parameters":{"id":3216,"nodeType":"ParameterList","parameters":[],"src":"1741:2:16"},"returnParameters":{"id":3219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3218,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3220,"src":"1767:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3217,"name":"uint256","nodeType":"ElementaryTypeName","src":"1767:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1766:9:16"},"scope":3312,"src":"1707:69:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f1d354d0","id":3225,"implemented":false,"kind":"function","modifiers":[],"name":"getFullCollateralizationLevel","nameLocation":"1790:29:16","nodeType":"FunctionDefinition","parameters":{"id":3221,"nodeType":"ParameterList","parameters":[],"src":"1819:2:16"},"returnParameters":{"id":3224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3225,"src":"1845:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3222,"name":"uint256","nodeType":"ElementaryTypeName","src":"1845:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1844:9:16"},"scope":3312,"src":"1781:73:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"86c71288","id":3236,"implemented":false,"kind":"function","modifiers":[],"name":"bundleMatchesApplication","nameLocation":"1869:24:16","nodeType":"FunctionDefinition","parameters":{"id":3232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3228,"mutability":"mutable","name":"bundle","nameLocation":"1925:6:16","nodeType":"VariableDeclaration","scope":3236,"src":"1903:28:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":3227,"nodeType":"UserDefinedTypeName","pathNode":{"id":3226,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"1903:14:16"},"referencedDeclaration":4936,"src":"1903:14:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"},{"constant":false,"id":3231,"mutability":"mutable","name":"application","nameLocation":"1969:11:16","nodeType":"VariableDeclaration","scope":3236,"src":"1942:38:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":3230,"nodeType":"UserDefinedTypeName","pathNode":{"id":3229,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"1942:19:16"},"referencedDeclaration":5262,"src":"1942:19:16","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"1893:93:16"},"returnParameters":{"id":3235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3234,"mutability":"mutable","name":"isMatching","nameLocation":"2023:10:16","nodeType":"VariableDeclaration","scope":3236,"src":"2018:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3233,"name":"bool","nodeType":"ElementaryTypeName","src":"2018:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2017:17:16"},"scope":3312,"src":"1860:175:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3dcdde17","id":3241,"implemented":false,"kind":"function","modifiers":[],"name":"getFilterDataStructure","nameLocation":"2057:22:16","nodeType":"FunctionDefinition","parameters":{"id":3237,"nodeType":"ParameterList","parameters":[],"src":"2079:2:16"},"returnParameters":{"id":3240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3239,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3241,"src":"2104:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3238,"name":"string","nodeType":"ElementaryTypeName","src":"2104:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2103:15:16"},"scope":3312,"src":"2048:71:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18442e63","id":3246,"implemented":false,"kind":"function","modifiers":[],"name":"bundles","nameLocation":"2134:7:16","nodeType":"FunctionDefinition","parameters":{"id":3242,"nodeType":"ParameterList","parameters":[],"src":"2141:2:16"},"returnParameters":{"id":3245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3244,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3246,"src":"2166:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3243,"name":"uint256","nodeType":"ElementaryTypeName","src":"2166:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2165:9:16"},"scope":3312,"src":"2125:50:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2d0821b7","id":3254,"implemented":false,"kind":"function","modifiers":[],"name":"getBundle","nameLocation":"2189:9:16","nodeType":"FunctionDefinition","parameters":{"id":3249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3248,"mutability":"mutable","name":"idx","nameLocation":"2207:3:16","nodeType":"VariableDeclaration","scope":3254,"src":"2199:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3247,"name":"uint256","nodeType":"ElementaryTypeName","src":"2199:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2198:13:16"},"returnParameters":{"id":3253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3254,"src":"2234:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":3251,"nodeType":"UserDefinedTypeName","pathNode":{"id":3250,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"2234:14:16"},"referencedDeclaration":4936,"src":"2234:14:16","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"src":"2233:23:16"},"scope":3312,"src":"2180:77:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4101b90c","id":3259,"implemented":false,"kind":"function","modifiers":[],"name":"activeBundles","nameLocation":"2272:13:16","nodeType":"FunctionDefinition","parameters":{"id":3255,"nodeType":"ParameterList","parameters":[],"src":"2285:2:16"},"returnParameters":{"id":3258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3259,"src":"2310:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3256,"name":"uint256","nodeType":"ElementaryTypeName","src":"2310:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2309:9:16"},"scope":3312,"src":"2263:56:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0676cb0e","id":3266,"implemented":false,"kind":"function","modifiers":[],"name":"getActiveBundleId","nameLocation":"2333:17:16","nodeType":"FunctionDefinition","parameters":{"id":3262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3261,"mutability":"mutable","name":"idx","nameLocation":"2359:3:16","nodeType":"VariableDeclaration","scope":3266,"src":"2351:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3260,"name":"uint256","nodeType":"ElementaryTypeName","src":"2351:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2350:13:16"},"returnParameters":{"id":3265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3264,"mutability":"mutable","name":"bundleId","nameLocation":"2394:8:16","nodeType":"VariableDeclaration","scope":3266,"src":"2386:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3263,"name":"uint256","nodeType":"ElementaryTypeName","src":"2386:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2385:18:16"},"scope":3312,"src":"2324:80:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"13299604","id":3271,"implemented":false,"kind":"function","modifiers":[],"name":"getWallet","nameLocation":"2419:9:16","nodeType":"FunctionDefinition","parameters":{"id":3267,"nodeType":"ParameterList","parameters":[],"src":"2428:2:16"},"returnParameters":{"id":3270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3271,"src":"2453:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3268,"name":"address","nodeType":"ElementaryTypeName","src":"2453:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2452:9:16"},"scope":3312,"src":"2410:52:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"feb1824b","id":3276,"implemented":false,"kind":"function","modifiers":[],"name":"getErc20Token","nameLocation":"2476:13:16","nodeType":"FunctionDefinition","parameters":{"id":3272,"nodeType":"ParameterList","parameters":[],"src":"2489:2:16"},"returnParameters":{"id":3275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3276,"src":"2514:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3273,"name":"address","nodeType":"ElementaryTypeName","src":"2514:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2513:9:16"},"scope":3312,"src":"2467:56:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a18aa128","id":3281,"implemented":false,"kind":"function","modifiers":[],"name":"getSumOfSumInsuredCap","nameLocation":"2538:21:16","nodeType":"FunctionDefinition","parameters":{"id":3277,"nodeType":"ParameterList","parameters":[],"src":"2559:2:16"},"returnParameters":{"id":3280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3281,"src":"2585:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3278,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2584:9:16"},"scope":3312,"src":"2529:65:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e0032383","id":3286,"implemented":false,"kind":"function","modifiers":[],"name":"getCapital","nameLocation":"2608:10:16","nodeType":"FunctionDefinition","parameters":{"id":3282,"nodeType":"ParameterList","parameters":[],"src":"2618:2:16"},"returnParameters":{"id":3285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3286,"src":"2643:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3283,"name":"uint256","nodeType":"ElementaryTypeName","src":"2643:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2642:9:16"},"scope":3312,"src":"2599:53:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"b26025aa","id":3291,"implemented":false,"kind":"function","modifiers":[],"name":"getTotalValueLocked","nameLocation":"2666:19:16","nodeType":"FunctionDefinition","parameters":{"id":3287,"nodeType":"ParameterList","parameters":[],"src":"2685:2:16"},"returnParameters":{"id":3290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3291,"src":"2710:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3288,"name":"uint256","nodeType":"ElementaryTypeName","src":"2710:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2709:9:16"},"scope":3312,"src":"2657:62:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c40000d4","id":3296,"implemented":false,"kind":"function","modifiers":[],"name":"getCapacity","nameLocation":"2734:11:16","nodeType":"FunctionDefinition","parameters":{"id":3292,"nodeType":"ParameterList","parameters":[],"src":"2745:2:16"},"returnParameters":{"id":3295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3296,"src":"2770:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3293,"name":"uint256","nodeType":"ElementaryTypeName","src":"2770:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2769:9:16"},"scope":3312,"src":"2725:54:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"12065fe0","id":3301,"implemented":false,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"2794:10:16","nodeType":"FunctionDefinition","parameters":{"id":3297,"nodeType":"ParameterList","parameters":[],"src":"2804:2:16"},"returnParameters":{"id":3300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3301,"src":"2829:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3298,"name":"uint256","nodeType":"ElementaryTypeName","src":"2829:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2828:9:16"},"scope":3312,"src":"2785:53:16","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"652028e5","id":3306,"implemented":false,"kind":"function","modifiers":[],"name":"setMaximumNumberOfActiveBundles","nameLocation":"2854:31:16","nodeType":"FunctionDefinition","parameters":{"id":3304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3303,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"2894:28:16","nodeType":"VariableDeclaration","scope":3306,"src":"2886:36:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3302,"name":"uint256","nodeType":"ElementaryTypeName","src":"2886:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2885:38:16"},"returnParameters":{"id":3305,"nodeType":"ParameterList","parameters":[],"src":"2932:0:16"},"scope":3312,"src":"2845:88:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7f3b6980","id":3311,"implemented":false,"kind":"function","modifiers":[],"name":"getMaximumNumberOfActiveBundles","nameLocation":"2948:31:16","nodeType":"FunctionDefinition","parameters":{"id":3307,"nodeType":"ParameterList","parameters":[],"src":"2979:2:16"},"returnParameters":{"id":3310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3309,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"3012:28:16","nodeType":"VariableDeclaration","scope":3311,"src":"3004:36:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3308,"name":"uint256","nodeType":"ElementaryTypeName","src":"3004:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3003:38:16"},"scope":3312,"src":"2939:103:16","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3313,"src":"157:2887:16"}],"src":"39:3006:16"},"id":16},"@etherisc/gif-interface/contracts/components/Oracle.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/Oracle.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Oracle":[3414],"Ownable":[7481]},"id":3415,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3314,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:17"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IOracle.sol","file":"./IOracle.sol","id":3315,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3415,"sourceUnit":3023,"src":"66:23:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Component.sol","file":"./Component.sol","id":3316,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3415,"sourceUnit":2885,"src":"91:25:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"./IComponent.sol","id":3317,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3415,"sourceUnit":2989,"src":"118:26:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IOracleService.sol","file":"../services/IOracleService.sol","id":3318,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3415,"sourceUnit":6520,"src":"146:40:17","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3319,"name":"IOracle","nodeType":"IdentifierPath","referencedDeclaration":3022,"src":"223:7:17"},"id":3320,"nodeType":"InheritanceSpecifier","src":"223:7:17"},{"baseName":{"id":3321,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"238:9:17"},"id":3322,"nodeType":"InheritanceSpecifier","src":"238:9:17"}],"contractDependencies":[2884,2988,3022,5073,7481,10518],"contractKind":"contract","fullyImplemented":false,"id":3414,"linearizedBaseContracts":[3414,2884,7481,10518,5073,3022,2988],"name":"Oracle","nameLocation":"208:6:17","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3325,"mutability":"mutable","name":"_oracleService","nameLocation":"283:14:17","nodeType":"VariableDeclaration","scope":3414,"src":"260:37:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"},"typeName":{"id":3324,"nodeType":"UserDefinedTypeName","pathNode":{"id":3323,"name":"IOracleService","nodeType":"IdentifierPath","referencedDeclaration":6519,"src":"260:14:17"},"referencedDeclaration":6519,"src":"260:14:17","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"visibility":"private"},{"body":{"id":3338,"nodeType":"Block","src":"325:153:17","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3328,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"359:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"359:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"5175657279","id":3331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"395:7:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""}],"id":3330,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"375:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"375:28:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"359:44:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4f52412d3030313a4143434553535f44454e494544","id":3334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"418:29:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0","typeString":"literal_string \"ERROR:ORA-001:ACCESS_DENIED\""},"value":"ERROR:ORA-001:ACCESS_DENIED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0","typeString":"literal_string \"ERROR:ORA-001:ACCESS_DENIED\""}],"id":3327,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"336:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"336:122:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3336,"nodeType":"ExpressionStatement","src":"336:122:17"},{"id":3337,"nodeType":"PlaceholderStatement","src":"469:1:17"}]},"id":3339,"name":"onlyQuery","nameLocation":"315:9:17","nodeType":"ModifierDefinition","parameters":{"id":3326,"nodeType":"ParameterList","parameters":[],"src":"325:0:17"},"src":"306:172:17","virtual":false,"visibility":"internal"},{"body":{"id":3367,"nodeType":"Block","src":"617:135:17","statements":[{"expression":{"id":3358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3352,"name":"_oracleService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3325,"src":"628:14:17","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"4f7261636c6553657276696365","id":3355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"680:15:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""},"value":"OracleService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""}],"id":3354,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"660:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"660:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3353,"name":"IOracleService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"645:14:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOracleService_$6519_$","typeString":"type(contract IOracleService)"}},"id":3357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"645:52:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"src":"628:69:17","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"id":3359,"nodeType":"ExpressionStatement","src":"628:69:17"},{"eventCall":{"arguments":[{"arguments":[{"id":3363,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"738:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_Oracle_$3414","typeString":"contract Oracle"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Oracle_$3414","typeString":"contract Oracle"}],"id":3362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"730:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3361,"name":"address","nodeType":"ElementaryTypeName","src":"730:7:17","typeDescriptions":{}}},"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"730:13:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3360,"name":"LogOracleCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2997,"src":"713:16:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"713:31:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3366,"nodeType":"EmitStatement","src":"708:36:17"}]},"id":3368,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3346,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"574:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3347,"name":"ComponentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"580:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":3348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Oracle","nodeType":"MemberAccess","referencedDeclaration":2888,"src":"580:20:17","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},{"id":3349,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"602:8:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3350,"modifierName":{"id":3345,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"564:9:17"},"nodeType":"ModifierInvocation","src":"564:47:17"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3341,"mutability":"mutable","name":"name","nameLocation":"516:4:17","nodeType":"VariableDeclaration","scope":3368,"src":"508:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"508:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3343,"mutability":"mutable","name":"registry","nameLocation":"539:8:17","nodeType":"VariableDeclaration","scope":3368,"src":"531:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3342,"name":"address","nodeType":"ElementaryTypeName","src":"531:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"497:57:17"},"returnParameters":{"id":3351,"nodeType":"ParameterList","parameters":[],"src":"617:0:17"},"scope":3414,"src":"486:266:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2807],"body":{"id":3377,"nodeType":"Block","src":"853:52:17","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3373,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"888:5:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"888:7:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3372,"name":"LogOracleApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"870:17:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"870:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3376,"nodeType":"EmitStatement","src":"865:31:17"}]},"id":3378,"implemented":true,"kind":"function","modifiers":[],"name":"_afterApprove","nameLocation":"819:13:17","nodeType":"FunctionDefinition","overrides":{"id":3370,"nodeType":"OverrideSpecifier","overrides":[],"src":"844:8:17"},"parameters":{"id":3369,"nodeType":"ParameterList","parameters":[],"src":"832:2:17"},"returnParameters":{"id":3371,"nodeType":"ParameterList","parameters":[],"src":"853:0:17"},"scope":3414,"src":"810:95:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2803],"body":{"id":3387,"nodeType":"Block","src":"956:36:17","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3383,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"981:5:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"981:7:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3382,"name":"LogOracleProposed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"963:17:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"963:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3386,"nodeType":"EmitStatement","src":"958:31:17"}]},"id":3388,"implemented":true,"kind":"function","modifiers":[],"name":"_afterPropose","nameLocation":"922:13:17","nodeType":"FunctionDefinition","overrides":{"id":3380,"nodeType":"OverrideSpecifier","overrides":[],"src":"947:8:17"},"parameters":{"id":3379,"nodeType":"ParameterList","parameters":[],"src":"935:2:17"},"returnParameters":{"id":3381,"nodeType":"ParameterList","parameters":[],"src":"956:0:17"},"scope":3414,"src":"913:79:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2811],"body":{"id":3397,"nodeType":"Block","src":"1041:36:17","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3393,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"1066:5:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1066:7:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3392,"name":"LogOracleDeclined","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3009,"src":"1048:17:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1048:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3396,"nodeType":"EmitStatement","src":"1043:31:17"}]},"id":3398,"implemented":true,"kind":"function","modifiers":[],"name":"_afterDecline","nameLocation":"1007:13:17","nodeType":"FunctionDefinition","overrides":{"id":3390,"nodeType":"OverrideSpecifier","overrides":[],"src":"1032:8:17"},"parameters":{"id":3389,"nodeType":"ParameterList","parameters":[],"src":"1020:2:17"},"returnParameters":{"id":3391,"nodeType":"ParameterList","parameters":[],"src":"1041:0:17"},"scope":3414,"src":"998:79:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3412,"nodeType":"Block","src":"1150:58:17","statements":[{"expression":{"arguments":[{"id":3408,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"1184:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3409,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3402,"src":"1195:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3405,"name":"_oracleService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3325,"src":"1161:14:17","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"id":3407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"respond","nodeType":"MemberAccess","referencedDeclaration":6518,"src":"1161:22:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":3410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1161:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3411,"nodeType":"ExpressionStatement","src":"1161:39:17"}]},"id":3413,"implemented":true,"kind":"function","modifiers":[],"name":"_respond","nameLocation":"1094:8:17","nodeType":"FunctionDefinition","parameters":{"id":3403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3400,"mutability":"mutable","name":"requestId","nameLocation":"1111:9:17","nodeType":"VariableDeclaration","scope":3413,"src":"1103:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3399,"name":"uint256","nodeType":"ElementaryTypeName","src":"1103:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3402,"mutability":"mutable","name":"data","nameLocation":"1135:4:17","nodeType":"VariableDeclaration","scope":3413,"src":"1122:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3401,"name":"bytes","nodeType":"ElementaryTypeName","src":"1122:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1102:38:17"},"returnParameters":{"id":3404,"nodeType":"ParameterList","parameters":[],"src":"1150:0:17"},"scope":3414,"src":"1085:123:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":3415,"src":"190:1025:17"}],"src":"40:1177:17"},"id":17},"@etherisc/gif-interface/contracts/components/Product.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/Product.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Product":[4042]},"id":4043,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3416,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:18"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"./IProduct.sol","id":3417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4043,"sourceUnit":3080,"src":"63:24:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Component.sol","file":"./Component.sol","id":3418,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4043,"sourceUnit":2885,"src":"88:25:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"../modules/IPolicy.sol","id":3419,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4043,"sourceUnit":5434,"src":"114:32:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"../services/IInstanceService.sol","id":3420,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4043,"sourceUnit":6510,"src":"147:42:18","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","file":"../services/IProductService.sol","id":3421,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4043,"sourceUnit":6665,"src":"190:41:18","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3422,"name":"IProduct","nodeType":"IdentifierPath","referencedDeclaration":3079,"src":"266:8:18"},"id":3423,"nodeType":"InheritanceSpecifier","src":"266:8:18"},{"baseName":{"id":3424,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"281:9:18"},"id":3425,"nodeType":"InheritanceSpecifier","src":"281:9:18"}],"contractDependencies":[2884,2988,3079,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":4042,"linearizedBaseContracts":[4042,2884,7481,10518,5073,3079,2988],"name":"Product","nameLocation":"251:7:18","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3427,"mutability":"mutable","name":"_policyFlow","nameLocation":"318:11:18","nodeType":"VariableDeclaration","scope":4042,"src":"302:27:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3426,"name":"address","nodeType":"ElementaryTypeName","src":"302:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":3429,"mutability":"mutable","name":"_token","nameLocation":"398:6:18","nodeType":"VariableDeclaration","scope":4042,"src":"382:22:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3428,"name":"address","nodeType":"ElementaryTypeName","src":"382:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":3431,"mutability":"mutable","name":"_riskpoolId","nameLocation":"465:11:18","nodeType":"VariableDeclaration","scope":4042,"src":"449:27:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3430,"name":"uint256","nodeType":"ElementaryTypeName","src":"449:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":3434,"mutability":"mutable","name":"_productService","nameLocation":"555:15:18","nodeType":"VariableDeclaration","scope":4042,"src":"530:40:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"},"typeName":{"id":3433,"nodeType":"UserDefinedTypeName","pathNode":{"id":3432,"name":"IProductService","nodeType":"IdentifierPath","referencedDeclaration":6664,"src":"530:15:18"},"referencedDeclaration":6664,"src":"530:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"visibility":"internal"},{"constant":false,"id":3437,"mutability":"mutable","name":"_instanceService","nameLocation":"602:16:18","nodeType":"VariableDeclaration","scope":4042,"src":"576:42:18","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":3436,"nodeType":"UserDefinedTypeName","pathNode":{"id":3435,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"576:16:18"},"referencedDeclaration":6509,"src":"576:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"internal"},{"body":{"id":3458,"nodeType":"Block","src":"669:219:18","statements":[{"assignments":[3442],"declarations":[{"constant":false,"id":3442,"mutability":"mutable","name":"policyHolder","nameLocation":"687:12:18","nodeType":"VariableDeclaration","scope":3458,"src":"679:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3441,"name":"address","nodeType":"ElementaryTypeName","src":"679:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3448,"initialValue":{"expression":{"arguments":[{"id":3445,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"731:8:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3443,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"702:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":6428,"src":"702:28:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":3446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"702:38:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":3447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"702:44:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"679:67:18"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3450,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"777:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"777:12:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3452,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3442,"src":"793:12:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"777:28:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5052442d3030313a504f4c4943595f4f525f484f4c4445525f494e56414c4944","id":3454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"820:40:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c751e03794b568011bdacc7506cfc24e9e6da1a04bd63102218013a02fcc8b2","typeString":"literal_string \"ERROR:PRD-001:POLICY_OR_HOLDER_INVALID\""},"value":"ERROR:PRD-001:POLICY_OR_HOLDER_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8c751e03794b568011bdacc7506cfc24e9e6da1a04bd63102218013a02fcc8b2","typeString":"literal_string \"ERROR:PRD-001:POLICY_OR_HOLDER_INVALID\""}],"id":3449,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"756:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"756:114:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3456,"nodeType":"ExpressionStatement","src":"756:114:18"},{"id":3457,"nodeType":"PlaceholderStatement","src":"880:1:18"}]},"id":3459,"name":"onlyPolicyHolder","nameLocation":"634:16:18","nodeType":"ModifierDefinition","parameters":{"id":3440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3439,"mutability":"mutable","name":"policyId","nameLocation":"659:8:18","nodeType":"VariableDeclaration","scope":3459,"src":"651:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"651:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"650:18:18"},"src":"625:263:18","virtual":false,"visibility":"internal"},{"body":{"id":3472,"nodeType":"Block","src":"915:149:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3462,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"947:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"947:12:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"4c6963656e6365","id":3465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"983:9:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ca2c06beb422d975cd2070710bcde13ae6539489c77a2eac3d019f18f8a11bd","typeString":"literal_string \"Licence\""},"value":"Licence"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6ca2c06beb422d975cd2070710bcde13ae6539489c77a2eac3d019f18f8a11bd","typeString":"literal_string \"Licence\""}],"id":3464,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"963:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"963:30:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"947:46:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5052442d3030323a4143434553535f44454e494544","id":3468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1007:29:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c303e58a1c0410c1101cc429b23d15274514a5237e202175e3c0976550224f8a","typeString":"literal_string \"ERROR:PRD-002:ACCESS_DENIED\""},"value":"ERROR:PRD-002:ACCESS_DENIED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c303e58a1c0410c1101cc429b23d15274514a5237e202175e3c0976550224f8a","typeString":"literal_string \"ERROR:PRD-002:ACCESS_DENIED\""}],"id":3461,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"925:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"925:121:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3470,"nodeType":"ExpressionStatement","src":"925:121:18"},{"id":3471,"nodeType":"PlaceholderStatement","src":"1056:1:18"}]},"id":3473,"name":"onlyLicence","nameLocation":"903:11:18","nodeType":"ModifierDefinition","parameters":{"id":3460,"nodeType":"ParameterList","parameters":[],"src":"915:0:18"},"src":"894:170:18","virtual":false,"visibility":"internal"},{"body":{"id":3486,"nodeType":"Block","src":"1090:147:18","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3476,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1122:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":3477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1122:12:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"5175657279","id":3479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1158:7:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""}],"id":3478,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1138:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1138:28:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1122:44:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5052442d3030333a4143434553535f44454e494544","id":3482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1180:29:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f","typeString":"literal_string \"ERROR:PRD-003:ACCESS_DENIED\""},"value":"ERROR:PRD-003:ACCESS_DENIED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f","typeString":"literal_string \"ERROR:PRD-003:ACCESS_DENIED\""}],"id":3475,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1100:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1100:119:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3484,"nodeType":"ExpressionStatement","src":"1100:119:18"},{"id":3485,"nodeType":"PlaceholderStatement","src":"1229:1:18"}]},"id":3487,"name":"onlyOracle","nameLocation":"1079:10:18","nodeType":"ModifierDefinition","parameters":{"id":3474,"nodeType":"ParameterList","parameters":[],"src":"1090:0:18"},"src":"1070:167:18","virtual":false,"visibility":"internal"},{"body":{"id":3543,"nodeType":"Block","src":"1449:383:18","statements":[{"expression":{"id":3508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3506,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3429,"src":"1459:6:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3507,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3491,"src":"1468:5:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1459:14:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3509,"nodeType":"ExpressionStatement","src":"1459:14:18"},{"expression":{"id":3512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3510,"name":"_riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"1483:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3511,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3495,"src":"1497:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1483:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3513,"nodeType":"ExpressionStatement","src":"1483:24:18"},{"expression":{"id":3518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3514,"name":"_policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"1565:11:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3516,"name":"policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3493,"src":"1599:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3515,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1579:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1579:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1565:45:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3519,"nodeType":"ExpressionStatement","src":"1565:45:18"},{"expression":{"id":3526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3520,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"1620:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"50726f6475637453657276696365","id":3523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1674:16:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""},"value":"ProductService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""}],"id":3522,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1654:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1654:37:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3521,"name":"IProductService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6664,"src":"1638:15:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProductService_$6664_$","typeString":"type(contract IProductService)"}},"id":3525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1638:54:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"src":"1620:72:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3527,"nodeType":"ExpressionStatement","src":"1620:72:18"},{"expression":{"id":3534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3528,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"1702:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"496e7374616e636553657276696365","id":3531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1758:17:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""},"value":"InstanceService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""}],"id":3530,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1738:19:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":3532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1738:38:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3529,"name":"IInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"1721:16:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IInstanceService_$6509_$","typeString":"type(contract IInstanceService)"}},"id":3533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1721:56:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"src":"1702:75:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3535,"nodeType":"ExpressionStatement","src":"1702:75:18"},{"eventCall":{"arguments":[{"arguments":[{"id":3539,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1819:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_Product_$4042","typeString":"contract Product"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Product_$4042","typeString":"contract Product"}],"id":3538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1811:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3537,"name":"address","nodeType":"ElementaryTypeName","src":"1811:7:18","typeDescriptions":{}}},"id":3540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1811:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3536,"name":"LogProductCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"1793:17:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1793:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3542,"nodeType":"EmitStatement","src":"1788:37:18"}]},"id":3544,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3500,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3489,"src":"1406:4:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3501,"name":"ComponentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"1412:13:18","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":3502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Product","nodeType":"MemberAccess","referencedDeclaration":2889,"src":"1412:21:18","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},{"id":3503,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3497,"src":"1435:8:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3504,"modifierName":{"id":3499,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"1396:9:18"},"nodeType":"ModifierInvocation","src":"1396:48:18"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3489,"mutability":"mutable","name":"name","nameLocation":"1272:4:18","nodeType":"VariableDeclaration","scope":3544,"src":"1264:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1264:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3491,"mutability":"mutable","name":"token","nameLocation":"1294:5:18","nodeType":"VariableDeclaration","scope":3544,"src":"1286:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3490,"name":"address","nodeType":"ElementaryTypeName","src":"1286:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3493,"mutability":"mutable","name":"policyFlow","nameLocation":"1317:10:18","nodeType":"VariableDeclaration","scope":3544,"src":"1309:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1309:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3495,"mutability":"mutable","name":"riskpoolId","nameLocation":"1345:10:18","nodeType":"VariableDeclaration","scope":3544,"src":"1337:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1337:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3497,"mutability":"mutable","name":"registry","nameLocation":"1373:8:18","nodeType":"VariableDeclaration","scope":3544,"src":"1365:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3496,"name":"address","nodeType":"ElementaryTypeName","src":"1365:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1254:133:18"},"returnParameters":{"id":3505,"nodeType":"ParameterList","parameters":[],"src":"1449:0:18"},"scope":4042,"src":"1243:589:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[3048],"body":{"id":3552,"nodeType":"Block","src":"1896:30:18","statements":[{"expression":{"id":3550,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3429,"src":"1913:6:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3549,"id":3551,"nodeType":"Return","src":"1906:13:18"}]},"functionSelector":"21df0da7","id":3553,"implemented":true,"kind":"function","modifiers":[],"name":"getToken","nameLocation":"1847:8:18","nodeType":"FunctionDefinition","overrides":{"id":3546,"nodeType":"OverrideSpecifier","overrides":[],"src":"1865:8:18"},"parameters":{"id":3545,"nodeType":"ParameterList","parameters":[],"src":"1855:2:18"},"returnParameters":{"id":3549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3553,"src":"1887:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3547,"name":"address","nodeType":"ElementaryTypeName","src":"1887:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1886:9:18"},"scope":4042,"src":"1838:88:18","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3053],"body":{"id":3561,"nodeType":"Block","src":"1995:35:18","statements":[{"expression":{"id":3559,"name":"_policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"2012:11:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3558,"id":3560,"nodeType":"Return","src":"2005:18:18"}]},"functionSelector":"637d08f4","id":3562,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyFlow","nameLocation":"1941:13:18","nodeType":"FunctionDefinition","overrides":{"id":3555,"nodeType":"OverrideSpecifier","overrides":[],"src":"1969:8:18"},"parameters":{"id":3554,"nodeType":"ParameterList","parameters":[],"src":"1954:2:18"},"returnParameters":{"id":3558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3557,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3562,"src":"1986:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3556,"name":"address","nodeType":"ElementaryTypeName","src":"1986:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1985:9:18"},"scope":4042,"src":"1932:98:18","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3058],"body":{"id":3570,"nodeType":"Block","src":"2099:35:18","statements":[{"expression":{"id":3568,"name":"_riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"2116:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3567,"id":3569,"nodeType":"Return","src":"2109:18:18"}]},"functionSelector":"70d2fe53","id":3571,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolId","nameLocation":"2045:13:18","nodeType":"FunctionDefinition","overrides":{"id":3564,"nodeType":"OverrideSpecifier","overrides":[],"src":"2068:8:18"},"parameters":{"id":3563,"nodeType":"ParameterList","parameters":[],"src":"2058:2:18"},"returnParameters":{"id":3567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3566,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3571,"src":"2090:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2090:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2089:9:18"},"scope":4042,"src":"2036:98:18","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2807],"body":{"id":3580,"nodeType":"Block","src":"2232:37:18","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3576,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"2258:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2258:7:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3575,"name":"LogProductApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3039,"src":"2239:18:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2239:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3579,"nodeType":"EmitStatement","src":"2234:32:18"}]},"id":3581,"implemented":true,"kind":"function","modifiers":[],"name":"_afterApprove","nameLocation":"2198:13:18","nodeType":"FunctionDefinition","overrides":{"id":3573,"nodeType":"OverrideSpecifier","overrides":[],"src":"2223:8:18"},"parameters":{"id":3572,"nodeType":"ParameterList","parameters":[],"src":"2211:2:18"},"returnParameters":{"id":3574,"nodeType":"ParameterList","parameters":[],"src":"2232:0:18"},"scope":4042,"src":"2189:80:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2803],"body":{"id":3590,"nodeType":"Block","src":"2318:37:18","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3586,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"2344:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2344:7:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3585,"name":"LogProductProposed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3035,"src":"2325:18:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2325:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3589,"nodeType":"EmitStatement","src":"2320:32:18"}]},"id":3591,"implemented":true,"kind":"function","modifiers":[],"name":"_afterPropose","nameLocation":"2284:13:18","nodeType":"FunctionDefinition","overrides":{"id":3583,"nodeType":"OverrideSpecifier","overrides":[],"src":"2309:8:18"},"parameters":{"id":3582,"nodeType":"ParameterList","parameters":[],"src":"2297:2:18"},"returnParameters":{"id":3584,"nodeType":"ParameterList","parameters":[],"src":"2318:0:18"},"scope":4042,"src":"2275:80:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2811],"body":{"id":3600,"nodeType":"Block","src":"2403:37:18","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":3596,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"2429:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":3597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2429:7:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3595,"name":"LogProductDeclined","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3043,"src":"2410:18:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":3598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2410:27:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3599,"nodeType":"EmitStatement","src":"2405:32:18"}]},"id":3601,"implemented":true,"kind":"function","modifiers":[],"name":"_afterDecline","nameLocation":"2369:13:18","nodeType":"FunctionDefinition","overrides":{"id":3593,"nodeType":"OverrideSpecifier","overrides":[],"src":"2394:8:18"},"parameters":{"id":3592,"nodeType":"ParameterList","parameters":[],"src":"2382:2:18"},"returnParameters":{"id":3594,"nodeType":"ParameterList","parameters":[],"src":"2403:0:18"},"scope":4042,"src":"2360:80:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3627,"nodeType":"Block","src":"2703:202:18","statements":[{"expression":{"id":3625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3616,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3614,"src":"2713:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3619,"name":"applicationOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3603,"src":"2769:16:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3620,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"2800:13:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3621,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3607,"src":"2828:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3622,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3609,"src":"2859:8:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3623,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3611,"src":"2882:15:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3617,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"2725:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newApplication","nodeType":"MemberAccess","referencedDeclaration":6536,"src":"2725:30:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) external returns (bytes32)"}},"id":3624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2725:173:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2713:185:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3626,"nodeType":"ExpressionStatement","src":"2713:185:18"}]},"id":3628,"implemented":true,"kind":"function","modifiers":[],"name":"_newApplication","nameLocation":"2455:15:18","nodeType":"FunctionDefinition","parameters":{"id":3612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3603,"mutability":"mutable","name":"applicationOwner","nameLocation":"2488:16:18","nodeType":"VariableDeclaration","scope":3628,"src":"2480:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3602,"name":"address","nodeType":"ElementaryTypeName","src":"2480:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3605,"mutability":"mutable","name":"premiumAmount","nameLocation":"2522:13:18","nodeType":"VariableDeclaration","scope":3628,"src":"2514:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3604,"name":"uint256","nodeType":"ElementaryTypeName","src":"2514:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3607,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"2553:16:18","nodeType":"VariableDeclaration","scope":3628,"src":"2545:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3606,"name":"uint256","nodeType":"ElementaryTypeName","src":"2545:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3609,"mutability":"mutable","name":"metaData","nameLocation":"2592:8:18","nodeType":"VariableDeclaration","scope":3628,"src":"2579:21:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3608,"name":"bytes","nodeType":"ElementaryTypeName","src":"2579:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3611,"mutability":"mutable","name":"applicationData","nameLocation":"2624:15:18","nodeType":"VariableDeclaration","scope":3628,"src":"2611:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3610,"name":"bytes","nodeType":"ElementaryTypeName","src":"2611:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2470:176:18"},"returnParameters":{"id":3615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3614,"mutability":"mutable","name":"processId","nameLocation":"2688:9:18","nodeType":"VariableDeclaration","scope":3628,"src":"2680:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2680:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2679:19:18"},"scope":4042,"src":"2446:459:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3669,"nodeType":"Block","src":"3091:358:18","statements":[{"assignments":[3643],"declarations":[{"constant":false,"id":3643,"mutability":"mutable","name":"policy","nameLocation":"3123:6:18","nodeType":"VariableDeclaration","scope":3669,"src":"3101:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":3642,"nodeType":"UserDefinedTypeName","pathNode":{"id":3641,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"3101:14:18"},"referencedDeclaration":5282,"src":"3101:14:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":3647,"initialValue":{"arguments":[{"id":3645,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3630,"src":"3143:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3644,"name":"_getPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3973,"src":"3132:10:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Policy memory)"}},"id":3646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3132:21:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"3101:52:18"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3648,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"3168:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":3649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"3168:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":3650,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"3195:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":3651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"3195:28:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3168:55:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3668,"nodeType":"IfStatement","src":"3164:279:18","trueBody":{"id":3667,"nodeType":"Block","src":"3225:218:18","statements":[{"expression":{"id":3665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3653,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"3240:7:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3654,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3635,"src":"3249:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3655,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3637,"src":"3260:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3656,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3239:31:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3658,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3630,"src":"3327:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3659,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"3359:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":3660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"3359:28:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":3661,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3643,"src":"3390:6:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":3662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"3390:24:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3359:55:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3657,"name":"_collectPremium","nodeType":"Identifier","overloadedDeclarations":[3670,3695],"referencedDeclaration":3695,"src":"3290:15:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (bool,uint256,uint256)"}},"id":3664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3290:142:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"3239:193:18","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3666,"nodeType":"ExpressionStatement","src":"3239:193:18"}]}}]},"id":3670,"implemented":true,"kind":"function","modifiers":[],"name":"_collectPremium","nameLocation":"2920:15:18","nodeType":"FunctionDefinition","parameters":{"id":3631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3630,"mutability":"mutable","name":"processId","nameLocation":"2944:9:18","nodeType":"VariableDeclaration","scope":3670,"src":"2936:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2936:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2935:19:18"},"returnParameters":{"id":3638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3633,"mutability":"mutable","name":"success","nameLocation":"3007:7:18","nodeType":"VariableDeclaration","scope":3670,"src":"3002:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3632,"name":"bool","nodeType":"ElementaryTypeName","src":"3002:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3635,"mutability":"mutable","name":"feeAmount","nameLocation":"3036:9:18","nodeType":"VariableDeclaration","scope":3670,"src":"3028:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3634,"name":"uint256","nodeType":"ElementaryTypeName","src":"3028:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3637,"mutability":"mutable","name":"netAmount","nameLocation":"3067:9:18","nodeType":"VariableDeclaration","scope":3670,"src":"3059:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3636,"name":"uint256","nodeType":"ElementaryTypeName","src":"3059:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2988:98:18"},"scope":4042,"src":"2911:538:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3694,"nodeType":"Block","src":"3672:100:18","statements":[{"expression":{"id":3692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3683,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3677,"src":"3683:7:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3684,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"3692:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3685,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3681,"src":"3703:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3686,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3682:31:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3689,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3672,"src":"3747:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3690,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3674,"src":"3758:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3687,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"3716:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collectPremium","nodeType":"MemberAccess","referencedDeclaration":6549,"src":"3716:30:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (bool,uint256,uint256)"}},"id":3691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3716:49:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"3682:83:18","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3693,"nodeType":"ExpressionStatement","src":"3682:83:18"}]},"id":3695,"implemented":true,"kind":"function","modifiers":[],"name":"_collectPremium","nameLocation":"3464:15:18","nodeType":"FunctionDefinition","parameters":{"id":3675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3672,"mutability":"mutable","name":"processId","nameLocation":"3497:9:18","nodeType":"VariableDeclaration","scope":3695,"src":"3489:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3489:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3674,"mutability":"mutable","name":"amount","nameLocation":"3524:6:18","nodeType":"VariableDeclaration","scope":3695,"src":"3516:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3673,"name":"uint256","nodeType":"ElementaryTypeName","src":"3516:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3479:57:18"},"returnParameters":{"id":3682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3677,"mutability":"mutable","name":"success","nameLocation":"3588:7:18","nodeType":"VariableDeclaration","scope":3695,"src":"3583:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3676,"name":"bool","nodeType":"ElementaryTypeName","src":"3583:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3679,"mutability":"mutable","name":"feeAmount","nameLocation":"3617:9:18","nodeType":"VariableDeclaration","scope":3695,"src":"3609:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3678,"name":"uint256","nodeType":"ElementaryTypeName","src":"3609:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3681,"mutability":"mutable","name":"netAmount","nameLocation":"3648:9:18","nodeType":"VariableDeclaration","scope":3695,"src":"3640:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3680,"name":"uint256","nodeType":"ElementaryTypeName","src":"3640:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3569:98:18"},"scope":4042,"src":"3455:317:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3712,"nodeType":"Block","src":"3927:108:18","statements":[{"expression":{"arguments":[{"id":3707,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3697,"src":"3977:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3708,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3699,"src":"3988:21:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3709,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3701,"src":"4011:16:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3704,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"3937:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"adjustPremiumSumInsured","nodeType":"MemberAccess","referencedDeclaration":6558,"src":"3937:39:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256) external"}},"id":3710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3937:91:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3711,"nodeType":"ExpressionStatement","src":"3937:91:18"}]},"id":3713,"implemented":true,"kind":"function","modifiers":[],"name":"_adjustPremiumSumInsured","nameLocation":"3787:24:18","nodeType":"FunctionDefinition","parameters":{"id":3702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3697,"mutability":"mutable","name":"processId","nameLocation":"3829:9:18","nodeType":"VariableDeclaration","scope":3713,"src":"3821:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3696,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3821:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3699,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"3856:21:18","nodeType":"VariableDeclaration","scope":3713,"src":"3848:29:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3698,"name":"uint256","nodeType":"ElementaryTypeName","src":"3848:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3701,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"3895:16:18","nodeType":"VariableDeclaration","scope":3713,"src":"3887:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3700,"name":"uint256","nodeType":"ElementaryTypeName","src":"3887:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3811:106:18"},"returnParameters":{"id":3703,"nodeType":"ParameterList","parameters":[],"src":"3927:0:18"},"scope":4042,"src":"3778:257:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3724,"nodeType":"Block","src":"4086:50:18","statements":[{"expression":{"arguments":[{"id":3721,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3715,"src":"4119:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3718,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4096:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"revoke","nodeType":"MemberAccess","referencedDeclaration":6563,"src":"4096:22:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":3722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4096:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3723,"nodeType":"ExpressionStatement","src":"4096:33:18"}]},"id":3725,"implemented":true,"kind":"function","modifiers":[],"name":"_revoke","nameLocation":"4050:7:18","nodeType":"FunctionDefinition","parameters":{"id":3716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3715,"mutability":"mutable","name":"processId","nameLocation":"4066:9:18","nodeType":"VariableDeclaration","scope":3725,"src":"4058:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4058:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4057:19:18"},"returnParameters":{"id":3717,"nodeType":"ParameterList","parameters":[],"src":"4086:0:18"},"scope":4042,"src":"4041:95:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3739,"nodeType":"Block","src":"4213:64:18","statements":[{"expression":{"id":3737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3732,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3730,"src":"4223:7:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3735,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"4260:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3733,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4233:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"underwrite","nodeType":"MemberAccess","referencedDeclaration":6570,"src":"4233:26:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) external returns (bool)"}},"id":3736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4233:37:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4223:47:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3738,"nodeType":"ExpressionStatement","src":"4223:47:18"}]},"id":3740,"implemented":true,"kind":"function","modifiers":[],"name":"_underwrite","nameLocation":"4151:11:18","nodeType":"FunctionDefinition","parameters":{"id":3728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3727,"mutability":"mutable","name":"processId","nameLocation":"4171:9:18","nodeType":"VariableDeclaration","scope":3740,"src":"4163:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4163:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4162:19:18"},"returnParameters":{"id":3731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3730,"mutability":"mutable","name":"success","nameLocation":"4204:7:18","nodeType":"VariableDeclaration","scope":3740,"src":"4199:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3729,"name":"bool","nodeType":"ElementaryTypeName","src":"4199:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4198:14:18"},"scope":4042,"src":"4142:135:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3751,"nodeType":"Block","src":"4329:51:18","statements":[{"expression":{"arguments":[{"id":3748,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"4363:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3745,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4339:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decline","nodeType":"MemberAccess","referencedDeclaration":6575,"src":"4339:23:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":3749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4339:34:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3750,"nodeType":"ExpressionStatement","src":"4339:34:18"}]},"id":3752,"implemented":true,"kind":"function","modifiers":[],"name":"_decline","nameLocation":"4292:8:18","nodeType":"FunctionDefinition","parameters":{"id":3743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3742,"mutability":"mutable","name":"processId","nameLocation":"4309:9:18","nodeType":"VariableDeclaration","scope":3752,"src":"4301:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4301:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4300:19:18"},"returnParameters":{"id":3744,"nodeType":"ParameterList","parameters":[],"src":"4329:0:18"},"scope":4042,"src":"4283:97:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3763,"nodeType":"Block","src":"4431:50:18","statements":[{"expression":{"arguments":[{"id":3760,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3754,"src":"4464:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3757,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4441:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"expire","nodeType":"MemberAccess","referencedDeclaration":6580,"src":"4441:22:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":3761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4441:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3762,"nodeType":"ExpressionStatement","src":"4441:33:18"}]},"id":3764,"implemented":true,"kind":"function","modifiers":[],"name":"_expire","nameLocation":"4395:7:18","nodeType":"FunctionDefinition","parameters":{"id":3755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3754,"mutability":"mutable","name":"processId","nameLocation":"4411:9:18","nodeType":"VariableDeclaration","scope":3764,"src":"4403:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4403:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4402:19:18"},"returnParameters":{"id":3756,"nodeType":"ParameterList","parameters":[],"src":"4431:0:18"},"scope":4042,"src":"4386:95:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3775,"nodeType":"Block","src":"4531:49:18","statements":[{"expression":{"arguments":[{"id":3772,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3766,"src":"4563:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3769,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4541:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"close","nodeType":"MemberAccess","referencedDeclaration":6585,"src":"4541:21:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":3773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4541:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3774,"nodeType":"ExpressionStatement","src":"4541:32:18"}]},"id":3776,"implemented":true,"kind":"function","modifiers":[],"name":"_close","nameLocation":"4496:6:18","nodeType":"FunctionDefinition","parameters":{"id":3767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3766,"mutability":"mutable","name":"processId","nameLocation":"4511:9:18","nodeType":"VariableDeclaration","scope":3776,"src":"4503:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4503:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4502:19:18"},"returnParameters":{"id":3768,"nodeType":"ParameterList","parameters":[],"src":"4531:0:18"},"scope":4042,"src":"4487:93:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3796,"nodeType":"Block","src":"4751:120:18","statements":[{"expression":{"id":3794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3787,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3785,"src":"4761:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3790,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3778,"src":"4809:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3791,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3780,"src":"4833:11:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3792,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"4859:4:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3788,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"4771:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newClaim","nodeType":"MemberAccess","referencedDeclaration":6596,"src":"4771:24:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) external returns (uint256)"}},"id":3793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4771:93:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4761:103:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3795,"nodeType":"ExpressionStatement","src":"4761:103:18"}]},"id":3797,"implemented":true,"kind":"function","modifiers":[],"name":"_newClaim","nameLocation":"4595:9:18","nodeType":"FunctionDefinition","parameters":{"id":3783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3778,"mutability":"mutable","name":"processId","nameLocation":"4622:9:18","nodeType":"VariableDeclaration","scope":3797,"src":"4614:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4614:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3780,"mutability":"mutable","name":"claimAmount","nameLocation":"4650:11:18","nodeType":"VariableDeclaration","scope":3797,"src":"4642:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3779,"name":"uint256","nodeType":"ElementaryTypeName","src":"4642:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3782,"mutability":"mutable","name":"data","nameLocation":"4684:4:18","nodeType":"VariableDeclaration","scope":3797,"src":"4671:17:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3781,"name":"bytes","nodeType":"ElementaryTypeName","src":"4671:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4604:90:18"},"returnParameters":{"id":3786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3785,"mutability":"mutable","name":"claimId","nameLocation":"4738:7:18","nodeType":"VariableDeclaration","scope":3797,"src":"4730:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3784,"name":"uint256","nodeType":"ElementaryTypeName","src":"4730:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4729:17:18"},"scope":4042,"src":"4586:285:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3814,"nodeType":"Block","src":"5009:118:18","statements":[{"expression":{"arguments":[{"id":3809,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"5061:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3810,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3801,"src":"5085:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3811,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3803,"src":"5107:12:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3806,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"5019:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"confirmClaim","nodeType":"MemberAccess","referencedDeclaration":6605,"src":"5019:28:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256) external"}},"id":3812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5019:101:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3813,"nodeType":"ExpressionStatement","src":"5019:101:18"}]},"id":3815,"implemented":true,"kind":"function","modifiers":[],"name":"_confirmClaim","nameLocation":"4886:13:18","nodeType":"FunctionDefinition","parameters":{"id":3804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3799,"mutability":"mutable","name":"processId","nameLocation":"4917:9:18","nodeType":"VariableDeclaration","scope":3815,"src":"4909:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4909:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3801,"mutability":"mutable","name":"claimId","nameLocation":"4944:7:18","nodeType":"VariableDeclaration","scope":3815,"src":"4936:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3800,"name":"uint256","nodeType":"ElementaryTypeName","src":"4936:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3803,"mutability":"mutable","name":"payoutAmount","nameLocation":"4969:12:18","nodeType":"VariableDeclaration","scope":3815,"src":"4961:20:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3802,"name":"uint256","nodeType":"ElementaryTypeName","src":"4961:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4899:88:18"},"returnParameters":{"id":3805,"nodeType":"ParameterList","parameters":[],"src":"5009:0:18"},"scope":4042,"src":"4877:250:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3829,"nodeType":"Block","src":"5201:65:18","statements":[{"expression":{"arguments":[{"id":3825,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3817,"src":"5240:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3826,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3819,"src":"5251:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3822,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"5211:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"declineClaim","nodeType":"MemberAccess","referencedDeclaration":6612,"src":"5211:28:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5211:48:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3828,"nodeType":"ExpressionStatement","src":"5211:48:18"}]},"id":3830,"implemented":true,"kind":"function","modifiers":[],"name":"_declineClaim","nameLocation":"5142:13:18","nodeType":"FunctionDefinition","parameters":{"id":3820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3817,"mutability":"mutable","name":"processId","nameLocation":"5164:9:18","nodeType":"VariableDeclaration","scope":3830,"src":"5156:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5156:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3819,"mutability":"mutable","name":"claimId","nameLocation":"5183:7:18","nodeType":"VariableDeclaration","scope":3830,"src":"5175:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3818,"name":"uint256","nodeType":"ElementaryTypeName","src":"5175:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5155:36:18"},"returnParameters":{"id":3821,"nodeType":"ParameterList","parameters":[],"src":"5201:0:18"},"scope":4042,"src":"5133:133:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3844,"nodeType":"Block","src":"5338:63:18","statements":[{"expression":{"arguments":[{"id":3840,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3832,"src":"5375:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3841,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3834,"src":"5386:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3837,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"5348:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"closeClaim","nodeType":"MemberAccess","referencedDeclaration":6619,"src":"5348:26:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":3842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5348:46:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3843,"nodeType":"ExpressionStatement","src":"5348:46:18"}]},"id":3845,"implemented":true,"kind":"function","modifiers":[],"name":"_closeClaim","nameLocation":"5281:11:18","nodeType":"FunctionDefinition","parameters":{"id":3835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3832,"mutability":"mutable","name":"processId","nameLocation":"5301:9:18","nodeType":"VariableDeclaration","scope":3845,"src":"5293:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5293:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3834,"mutability":"mutable","name":"claimId","nameLocation":"5320:7:18","nodeType":"VariableDeclaration","scope":3845,"src":"5312:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3833,"name":"uint256","nodeType":"ElementaryTypeName","src":"5312:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5292:36:18"},"returnParameters":{"id":3836,"nodeType":"ParameterList","parameters":[],"src":"5338:0:18"},"scope":4042,"src":"5272:129:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3868,"nodeType":"Block","src":"5591:87:18","statements":[{"expression":{"id":3866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3858,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3856,"src":"5601:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3861,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3847,"src":"5638:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3862,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3849,"src":"5649:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3863,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3851,"src":"5658:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3864,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3853,"src":"5666:4:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3859,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"5612:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newPayout","nodeType":"MemberAccess","referencedDeclaration":6632,"src":"5612:25:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) external returns (uint256)"}},"id":3865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5612:59:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5601:70:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3867,"nodeType":"ExpressionStatement","src":"5601:70:18"}]},"id":3869,"implemented":true,"kind":"function","modifiers":[],"name":"_newPayout","nameLocation":"5416:10:18","nodeType":"FunctionDefinition","parameters":{"id":3854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3847,"mutability":"mutable","name":"processId","nameLocation":"5444:9:18","nodeType":"VariableDeclaration","scope":3869,"src":"5436:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5436:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3849,"mutability":"mutable","name":"claimId","nameLocation":"5471:7:18","nodeType":"VariableDeclaration","scope":3869,"src":"5463:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3848,"name":"uint256","nodeType":"ElementaryTypeName","src":"5463:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3851,"mutability":"mutable","name":"amount","nameLocation":"5496:6:18","nodeType":"VariableDeclaration","scope":3869,"src":"5488:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3850,"name":"uint256","nodeType":"ElementaryTypeName","src":"5488:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3853,"mutability":"mutable","name":"data","nameLocation":"5525:4:18","nodeType":"VariableDeclaration","scope":3869,"src":"5512:17:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3852,"name":"bytes","nodeType":"ElementaryTypeName","src":"5512:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5426:109:18"},"returnParameters":{"id":3857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3856,"mutability":"mutable","name":"payoutId","nameLocation":"5577:8:18","nodeType":"VariableDeclaration","scope":3869,"src":"5569:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3855,"name":"uint256","nodeType":"ElementaryTypeName","src":"5569:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5568:18:18"},"scope":4042,"src":"5407:271:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3890,"nodeType":"Block","src":"5882:132:18","statements":[{"expression":{"id":3888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3880,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3876,"src":"5906:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3881,"name":"netPayoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3878,"src":"5929:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3882,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5892:62:18","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3885,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3871,"src":"5987:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3886,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3873,"src":"5998:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3883,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"5957:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":6643,"src":"5957:29:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (uint256,uint256)"}},"id":3887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5957:50:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"5892:115:18","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3889,"nodeType":"ExpressionStatement","src":"5892:115:18"}]},"id":3891,"implemented":true,"kind":"function","modifiers":[],"name":"_processPayout","nameLocation":"5693:14:18","nodeType":"FunctionDefinition","parameters":{"id":3874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3871,"mutability":"mutable","name":"processId","nameLocation":"5725:9:18","nodeType":"VariableDeclaration","scope":3891,"src":"5717:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3870,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5717:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3873,"mutability":"mutable","name":"payoutId","nameLocation":"5752:8:18","nodeType":"VariableDeclaration","scope":3891,"src":"5744:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3872,"name":"uint256","nodeType":"ElementaryTypeName","src":"5744:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5707:59:18"},"returnParameters":{"id":3879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3876,"mutability":"mutable","name":"feeAmount","nameLocation":"5821:9:18","nodeType":"VariableDeclaration","scope":3891,"src":"5813:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3875,"name":"uint256","nodeType":"ElementaryTypeName","src":"5813:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3878,"mutability":"mutable","name":"netPayoutAmount","nameLocation":"5852:15:18","nodeType":"VariableDeclaration","scope":3891,"src":"5844:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3877,"name":"uint256","nodeType":"ElementaryTypeName","src":"5844:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5799:78:18"},"scope":4042,"src":"5684:330:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3918,"nodeType":"Block","src":"6235:196:18","statements":[{"expression":{"id":3916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3904,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"6245:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3907,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3893,"src":"6294:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3908,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3895,"src":"6317:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3909,"name":"callbackMethodName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3897,"src":"6336:18:18","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":3912,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"6376:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_Product_$4042","typeString":"contract Product"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Product_$4042","typeString":"contract Product"}],"id":3911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6368:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3910,"name":"address","nodeType":"ElementaryTypeName","src":"6368:7:18","typeDescriptions":{}}},"id":3913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6368:13:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3914,"name":"responsibleOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"6395:19:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3905,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"6257:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"request","nodeType":"MemberAccess","referencedDeclaration":6658,"src":"6257:23:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,bytes memory,string memory,address,uint256) external returns (uint256)"}},"id":3915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6257:167:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6245:179:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3917,"nodeType":"ExpressionStatement","src":"6245:179:18"}]},"id":3919,"implemented":true,"kind":"function","modifiers":[],"name":"_request","nameLocation":"6029:8:18","nodeType":"FunctionDefinition","parameters":{"id":3900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3893,"mutability":"mutable","name":"processId","nameLocation":"6055:9:18","nodeType":"VariableDeclaration","scope":3919,"src":"6047:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6047:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3895,"mutability":"mutable","name":"input","nameLocation":"6087:5:18","nodeType":"VariableDeclaration","scope":3919,"src":"6074:18:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3894,"name":"bytes","nodeType":"ElementaryTypeName","src":"6074:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3897,"mutability":"mutable","name":"callbackMethodName","nameLocation":"6116:18:18","nodeType":"VariableDeclaration","scope":3919,"src":"6102:32:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3896,"name":"string","nodeType":"ElementaryTypeName","src":"6102:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3899,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"6152:19:18","nodeType":"VariableDeclaration","scope":3919,"src":"6144:27:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3898,"name":"uint256","nodeType":"ElementaryTypeName","src":"6144:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6037:140:18"},"returnParameters":{"id":3903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3902,"mutability":"mutable","name":"requestId","nameLocation":"6220:9:18","nodeType":"VariableDeclaration","scope":3919,"src":"6212:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3901,"name":"uint256","nodeType":"ElementaryTypeName","src":"6212:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6211:19:18"},"scope":4042,"src":"6020:411:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3930,"nodeType":"Block","src":"6501:57:18","statements":[{"expression":{"arguments":[{"id":3927,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3921,"src":"6541:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3924,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3434,"src":"6511:15:18","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":3926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"cancelRequest","nodeType":"MemberAccess","referencedDeclaration":6663,"src":"6511:29:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":3928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6511:40:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3929,"nodeType":"ExpressionStatement","src":"6511:40:18"}]},"id":3931,"implemented":true,"kind":"function","modifiers":[],"name":"_cancelRequest","nameLocation":"6446:14:18","nodeType":"FunctionDefinition","parameters":{"id":3922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3921,"mutability":"mutable","name":"requestId","nameLocation":"6469:9:18","nodeType":"VariableDeclaration","scope":3931,"src":"6461:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3920,"name":"uint256","nodeType":"ElementaryTypeName","src":"6461:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6460:19:18"},"returnParameters":{"id":3923,"nodeType":"ParameterList","parameters":[],"src":"6501:0:18"},"scope":4042,"src":"6437:121:18","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3944,"nodeType":"Block","src":"6694:63:18","statements":[{"expression":{"arguments":[{"id":3941,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3933,"src":"6740:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3939,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"6711:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":6428,"src":"6711:28:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6711:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"functionReturnParameters":3938,"id":3943,"nodeType":"Return","src":"6704:46:18"}]},"id":3945,"implemented":true,"kind":"function","modifiers":[],"name":"_getMetadata","nameLocation":"6573:12:18","nodeType":"FunctionDefinition","parameters":{"id":3934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3933,"mutability":"mutable","name":"processId","nameLocation":"6594:9:18","nodeType":"VariableDeclaration","scope":3945,"src":"6586:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6586:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6585:19:18"},"returnParameters":{"id":3938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3937,"mutability":"mutable","name":"metadata","nameLocation":"6679:8:18","nodeType":"VariableDeclaration","scope":3945,"src":"6655:32:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":3936,"nodeType":"UserDefinedTypeName","pathNode":{"id":3935,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"6655:16:18"},"referencedDeclaration":5248,"src":"6655:16:18","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"src":"6654:34:18"},"scope":4042,"src":"6564:193:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3958,"nodeType":"Block","src":"6902:66:18","statements":[{"expression":{"arguments":[{"id":3955,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"6951:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3953,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"6919:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":6436,"src":"6919:31:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":3956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6919:42:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"functionReturnParameters":3952,"id":3957,"nodeType":"Return","src":"6912:49:18"}]},"id":3959,"implemented":true,"kind":"function","modifiers":[],"name":"_getApplication","nameLocation":"6772:15:18","nodeType":"FunctionDefinition","parameters":{"id":3948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3947,"mutability":"mutable","name":"processId","nameLocation":"6796:9:18","nodeType":"VariableDeclaration","scope":3959,"src":"6788:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6788:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6787:19:18"},"returnParameters":{"id":3952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3951,"mutability":"mutable","name":"application","nameLocation":"6884:11:18","nodeType":"VariableDeclaration","scope":3959,"src":"6857:38:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":3950,"nodeType":"UserDefinedTypeName","pathNode":{"id":3949,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"6857:19:18"},"referencedDeclaration":5262,"src":"6857:19:18","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"6856:40:18"},"scope":4042,"src":"6763:205:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3972,"nodeType":"Block","src":"7098:61:18","statements":[{"expression":{"arguments":[{"id":3969,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3961,"src":"7142:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3967,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"7115:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":6444,"src":"7115:26:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":3970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7115:37:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"functionReturnParameters":3966,"id":3971,"nodeType":"Return","src":"7108:44:18"}]},"id":3973,"implemented":true,"kind":"function","modifiers":[],"name":"_getPolicy","nameLocation":"6983:10:18","nodeType":"FunctionDefinition","parameters":{"id":3962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3961,"mutability":"mutable","name":"processId","nameLocation":"7002:9:18","nodeType":"VariableDeclaration","scope":3973,"src":"6994:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6994:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6993:19:18"},"returnParameters":{"id":3966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3965,"mutability":"mutable","name":"policy","nameLocation":"7085:6:18","nodeType":"VariableDeclaration","scope":3973,"src":"7063:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":3964,"nodeType":"UserDefinedTypeName","pathNode":{"id":3963,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"7063:14:18"},"referencedDeclaration":5282,"src":"7063:14:18","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"src":"7062:30:18"},"scope":4042,"src":"6974:185:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3989,"nodeType":"Block","src":"7303:69:18","statements":[{"expression":{"arguments":[{"id":3985,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3975,"src":"7346:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3986,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3977,"src":"7357:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3983,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"7320:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":3984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getClaim","nodeType":"MemberAccess","referencedDeclaration":6468,"src":"7320:25:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Claim_$5296_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Claim memory)"}},"id":3987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7320:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"functionReturnParameters":3982,"id":3988,"nodeType":"Return","src":"7313:52:18"}]},"id":3990,"implemented":true,"kind":"function","modifiers":[],"name":"_getClaim","nameLocation":"7174:9:18","nodeType":"FunctionDefinition","parameters":{"id":3978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3975,"mutability":"mutable","name":"processId","nameLocation":"7192:9:18","nodeType":"VariableDeclaration","scope":3990,"src":"7184:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3974,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7184:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3977,"mutability":"mutable","name":"claimId","nameLocation":"7211:7:18","nodeType":"VariableDeclaration","scope":3990,"src":"7203:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3976,"name":"uint256","nodeType":"ElementaryTypeName","src":"7203:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7183:36:18"},"returnParameters":{"id":3982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3981,"mutability":"mutable","name":"claim","nameLocation":"7291:5:18","nodeType":"VariableDeclaration","scope":3990,"src":"7270:26:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":3980,"nodeType":"UserDefinedTypeName","pathNode":{"id":3979,"name":"IPolicy.Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"7270:13:18"},"referencedDeclaration":5296,"src":"7270:13:18","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"src":"7269:28:18"},"scope":4042,"src":"7165:207:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4006,"nodeType":"Block","src":"7520:71:18","statements":[{"expression":{"arguments":[{"id":4002,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3992,"src":"7564:9:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4003,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3994,"src":"7575:8:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4000,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3437,"src":"7537:16:18","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPayout","nodeType":"MemberAccess","referencedDeclaration":6478,"src":"7537:26:18","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Payout_$5310_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Payout memory)"}},"id":4004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7537:47:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"functionReturnParameters":3999,"id":4005,"nodeType":"Return","src":"7530:54:18"}]},"id":4007,"implemented":true,"kind":"function","modifiers":[],"name":"_getPayout","nameLocation":"7387:10:18","nodeType":"FunctionDefinition","parameters":{"id":3995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3992,"mutability":"mutable","name":"processId","nameLocation":"7406:9:18","nodeType":"VariableDeclaration","scope":4007,"src":"7398:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3991,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7398:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3994,"mutability":"mutable","name":"payoutId","nameLocation":"7425:8:18","nodeType":"VariableDeclaration","scope":4007,"src":"7417:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3993,"name":"uint256","nodeType":"ElementaryTypeName","src":"7417:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7397:37:18"},"returnParameters":{"id":3999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3998,"mutability":"mutable","name":"payout","nameLocation":"7507:6:18","nodeType":"VariableDeclaration","scope":4007,"src":"7485:28:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":3997,"nodeType":"UserDefinedTypeName","pathNode":{"id":3996,"name":"IPolicy.Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"7485:14:18"},"referencedDeclaration":5310,"src":"7485:14:18","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"src":"7484:30:18"},"scope":4042,"src":"7378:213:18","stateMutability":"view","virtual":false,"visibility":"internal"},{"baseFunctions":[3063],"body":{"id":4015,"nodeType":"Block","src":"7704:26:18","statements":[{"expression":{"hexValue":"","id":4013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7721:2:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":4012,"id":4014,"nodeType":"Return","src":"7714:9:18"}]},"functionSelector":"94f64ff4","id":4016,"implemented":true,"kind":"function","modifiers":[],"name":"getApplicationDataStructure","nameLocation":"7606:27:18","nodeType":"FunctionDefinition","overrides":{"id":4009,"nodeType":"OverrideSpecifier","overrides":[],"src":"7645:8:18"},"parameters":{"id":4008,"nodeType":"ParameterList","parameters":[],"src":"7633:2:18"},"returnParameters":{"id":4012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4011,"mutability":"mutable","name":"dataStructure","nameLocation":"7689:13:18","nodeType":"VariableDeclaration","scope":4016,"src":"7675:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4010,"name":"string","nodeType":"ElementaryTypeName","src":"7675:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7674:29:18"},"scope":4042,"src":"7597:133:18","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[3068],"body":{"id":4024,"nodeType":"Block","src":"7837:26:18","statements":[{"expression":{"hexValue":"","id":4022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7854:2:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":4021,"id":4023,"nodeType":"Return","src":"7847:9:18"}]},"functionSelector":"3ec92bda","id":4025,"implemented":true,"kind":"function","modifiers":[],"name":"getClaimDataStructure","nameLocation":"7745:21:18","nodeType":"FunctionDefinition","overrides":{"id":4018,"nodeType":"OverrideSpecifier","overrides":[],"src":"7778:8:18"},"parameters":{"id":4017,"nodeType":"ParameterList","parameters":[],"src":"7766:2:18"},"returnParameters":{"id":4021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4020,"mutability":"mutable","name":"dataStructure","nameLocation":"7822:13:18","nodeType":"VariableDeclaration","scope":4025,"src":"7808:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4019,"name":"string","nodeType":"ElementaryTypeName","src":"7808:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7807:29:18"},"scope":4042,"src":"7736:127:18","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[3073],"body":{"id":4033,"nodeType":"Block","src":"7974:26:18","statements":[{"expression":{"hexValue":"","id":4031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7991:2:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":4030,"id":4032,"nodeType":"Return","src":"7984:9:18"}]},"functionSelector":"39cf5e16","id":4034,"implemented":true,"kind":"function","modifiers":[],"name":"getPayoutDataStructure","nameLocation":"7881:22:18","nodeType":"FunctionDefinition","overrides":{"id":4027,"nodeType":"OverrideSpecifier","overrides":[],"src":"7915:8:18"},"parameters":{"id":4026,"nodeType":"ParameterList","parameters":[],"src":"7903:2:18"},"returnParameters":{"id":4030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4029,"mutability":"mutable","name":"dataStructure","nameLocation":"7959:13:18","nodeType":"VariableDeclaration","scope":4034,"src":"7945:27:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4028,"name":"string","nodeType":"ElementaryTypeName","src":"7945:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7944:29:18"},"scope":4042,"src":"7872:128:18","stateMutability":"view","virtual":true,"visibility":"external"},{"baseFunctions":[3078],"body":{"id":4040,"nodeType":"Block","src":"8084:3:18","statements":[]},"functionSelector":"f4fdc1fa","id":4041,"implemented":true,"kind":"function","modifiers":[],"name":"riskPoolCapacityCallback","nameLocation":"8015:24:18","nodeType":"FunctionDefinition","overrides":{"id":4038,"nodeType":"OverrideSpecifier","overrides":[],"src":"8067:8:18"},"parameters":{"id":4037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4036,"mutability":"mutable","name":"capacity","nameLocation":"8048:8:18","nodeType":"VariableDeclaration","scope":4041,"src":"8040:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4035,"name":"uint256","nodeType":"ElementaryTypeName","src":"8040:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8039:18:18"},"returnParameters":{"id":4039,"nodeType":"ParameterList","parameters":[],"src":"8084:0:18"},"scope":4042,"src":"8006:81:18","stateMutability":"nonpayable","virtual":true,"visibility":"external"}],"scope":4043,"src":"233:7856:18"}],"src":"39:8051:18"},"id":18},"@etherisc/gif-interface/contracts/components/Riskpool.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/components/Riskpool.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Riskpool":[4773]},"id":4774,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":4044,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:19"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","file":"./IRiskpool.sol","id":4045,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":3313,"src":"66:25:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Component.sol","file":"./Component.sol","id":4046,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":2885,"src":"93:25:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"../modules/IBundle.sol","id":4047,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":5021,"src":"122:32:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"../modules/IPolicy.sol","id":4048,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":5434,"src":"156:32:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"../services/IInstanceService.sol","id":4049,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":6510,"src":"190:42:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","file":"../services/IRiskpoolService.sol","id":4050,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":6771,"src":"234:42:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":4051,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4774,"sourceUnit":10157,"src":"280:58:19","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":4052,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"378:9:19"},"id":4053,"nodeType":"InheritanceSpecifier","src":"378:9:19"},{"baseName":{"id":4054,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"395:9:19"},"id":4055,"nodeType":"InheritanceSpecifier","src":"395:9:19"}],"contractDependencies":[2884,2988,3312,5073,7481,10518],"contractKind":"contract","fullyImplemented":false,"id":4773,"linearizedBaseContracts":[4773,2884,7481,10518,5073,3312,2988],"name":"Riskpool","nameLocation":"360:8:19","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"45fe1c6d","id":4060,"mutability":"constant","name":"FULL_COLLATERALIZATION_LEVEL","nameLocation":"604:28:19","nodeType":"VariableDeclaration","scope":4773,"src":"580:61:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4056,"name":"uint256","nodeType":"ElementaryTypeName","src":"580:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":4059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":4057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"635:2:19","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":4058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"639:2:19","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"635:6:19","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"public"},{"constant":true,"functionSelector":"7893c7bc","id":4063,"mutability":"constant","name":"DEFAULT_FILTER_DATA_STRUCTURE","nameLocation":"671:29:19","nodeType":"VariableDeclaration","scope":4773,"src":"648:57:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4061,"name":"string","nodeType":"ElementaryTypeName","src":"648:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"","id":4062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"703:2:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"visibility":"public"},{"constant":false,"id":4066,"mutability":"mutable","name":"_instanceService","nameLocation":"740:16:19","nodeType":"VariableDeclaration","scope":4773,"src":"714:42:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":4065,"nodeType":"UserDefinedTypeName","pathNode":{"id":4064,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"714:16:19"},"referencedDeclaration":6509,"src":"714:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"internal"},{"constant":false,"id":4069,"mutability":"mutable","name":"_riskpoolService","nameLocation":"790:16:19","nodeType":"VariableDeclaration","scope":4773,"src":"764:42:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"},"typeName":{"id":4068,"nodeType":"UserDefinedTypeName","pathNode":{"id":4067,"name":"IRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":6770,"src":"764:16:19"},"referencedDeclaration":6770,"src":"764:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"visibility":"internal"},{"constant":false,"id":4072,"mutability":"mutable","name":"_bundleToken","nameLocation":"830:12:19","nodeType":"VariableDeclaration","scope":4773,"src":"813:29:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$10156","typeString":"contract IERC721"},"typeName":{"id":4071,"nodeType":"UserDefinedTypeName","pathNode":{"id":4070,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":10156,"src":"813:7:19"},"referencedDeclaration":10156,"src":"813:7:19","typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$10156","typeString":"contract IERC721"}},"visibility":"internal"},{"constant":false,"id":4075,"mutability":"mutable","name":"_bundleIds","nameLocation":"935:10:19","nodeType":"VariableDeclaration","scope":4773,"src":"915:30:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":4073,"name":"uint256","nodeType":"ElementaryTypeName","src":"915:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4074,"nodeType":"ArrayTypeName","src":"915:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":4077,"mutability":"mutable","name":"_wallet","nameLocation":"970:7:19","nodeType":"VariableDeclaration","scope":4773,"src":"954:23:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4076,"name":"address","nodeType":"ElementaryTypeName","src":"954:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":4079,"mutability":"mutable","name":"_erc20Token","nameLocation":"1000:11:19","nodeType":"VariableDeclaration","scope":4773,"src":"984:27:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4078,"name":"address","nodeType":"ElementaryTypeName","src":"984:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":4081,"mutability":"mutable","name":"_collateralization","nameLocation":"1034:18:19","nodeType":"VariableDeclaration","scope":4773,"src":"1018:34:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4080,"name":"uint256","nodeType":"ElementaryTypeName","src":"1018:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":4083,"mutability":"mutable","name":"_sumOfSumInsuredCap","nameLocation":"1075:19:19","nodeType":"VariableDeclaration","scope":4773,"src":"1059:35:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4082,"name":"uint256","nodeType":"ElementaryTypeName","src":"1059:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":4085,"mutability":"mutable","name":"_maxNumberOfActiveBundles","nameLocation":"1117:25:19","nodeType":"VariableDeclaration","scope":4773,"src":"1101:41:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4084,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":4098,"nodeType":"Block","src":"1169:151:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4088,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1202:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1202:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"506f6f6c","id":4091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1238:6:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":4090,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"1218:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":4092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1218:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1202:43:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030313a4143434553535f44454e494544","id":4094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1260:29:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4","typeString":"literal_string \"ERROR:RPL-001:ACCESS_DENIED\""},"value":"ERROR:RPL-001:ACCESS_DENIED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4","typeString":"literal_string \"ERROR:RPL-001:ACCESS_DENIED\""}],"id":4087,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1180:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1180:120:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4096,"nodeType":"ExpressionStatement","src":"1180:120:19"},{"id":4097,"nodeType":"PlaceholderStatement","src":"1311:1:19"}]},"id":4099,"name":"onlyPool","nameLocation":"1160:8:19","nodeType":"ModifierDefinition","parameters":{"id":4086,"nodeType":"ParameterList","parameters":[],"src":"1169:0:19"},"src":"1151:169:19","virtual":false,"visibility":"internal"},{"body":{"id":4130,"nodeType":"Block","src":"1371:287:19","statements":[{"assignments":[4107],"declarations":[{"constant":false,"id":4107,"mutability":"mutable","name":"bundle","nameLocation":"1404:6:19","nodeType":"VariableDeclaration","scope":4130,"src":"1382:28:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":4106,"nodeType":"UserDefinedTypeName","pathNode":{"id":4105,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"1382:14:19"},"referencedDeclaration":4936,"src":"1382:14:19","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":4112,"initialValue":{"arguments":[{"id":4110,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4101,"src":"1440:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4108,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"1413:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":6408,"src":"1413:26:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":4111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1413:36:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"1382:67:19"},{"assignments":[4114],"declarations":[{"constant":false,"id":4114,"mutability":"mutable","name":"bundleOwner","nameLocation":"1468:11:19","nodeType":"VariableDeclaration","scope":4130,"src":"1460:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4113,"name":"address","nodeType":"ElementaryTypeName","src":"1460:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4120,"initialValue":{"arguments":[{"expression":{"id":4117,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4107,"src":"1503:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":4118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4920,"src":"1503:14:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4115,"name":"_bundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"1482:12:19","typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$10156","typeString":"contract IERC721"}},"id":4116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":10089,"src":"1482:20:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":4119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1482:36:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1460:58:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4122,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1553:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1553:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4124,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"1569:11:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1553:27:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e4552","id":4126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1595:32:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22","typeString":"literal_string \"ERROR:BUC-001:NOT_BUNDLE_OWNER\""},"value":"ERROR:BUC-001:NOT_BUNDLE_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22","typeString":"literal_string \"ERROR:BUC-001:NOT_BUNDLE_OWNER\""}],"id":4121,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1531:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1531:107:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4128,"nodeType":"ExpressionStatement","src":"1531:107:19"},{"id":4129,"nodeType":"PlaceholderStatement","src":"1649:1:19"}]},"id":4131,"name":"onlyBundleOwner","nameLocation":"1337:15:19","nodeType":"ModifierDefinition","parameters":{"id":4102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4101,"mutability":"mutable","name":"bundleId","nameLocation":"1361:8:19","nodeType":"VariableDeclaration","scope":4131,"src":"1353:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4100,"name":"uint256","nodeType":"ElementaryTypeName","src":"1353:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1352:18:19"},"src":"1328:330:19","virtual":false,"visibility":"internal"},{"body":{"id":4217,"nodeType":"Block","src":"1926:656:19","statements":[{"expression":{"id":4154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4152,"name":"_collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4081,"src":"1938:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4153,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4135,"src":"1959:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1938:38:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4155,"nodeType":"ExpressionStatement","src":"1938:38:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4157,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4137,"src":"1997:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":4158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2019:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1997:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245445f4341505f5a45524f","id":4160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2022:43:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992","typeString":"literal_string \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\""},"value":"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992","typeString":"literal_string \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\""}],"id":4156,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1989:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1989:77:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4162,"nodeType":"ExpressionStatement","src":"1989:77:19"},{"expression":{"id":4165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4163,"name":"_sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4083,"src":"2077:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4164,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4137,"src":"2099:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2077:40:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4166,"nodeType":"ExpressionStatement","src":"2077:40:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4168,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4139,"src":"2138:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2160:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2152:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4169,"name":"address","nodeType":"ElementaryTypeName","src":"2152:7:19","typeDescriptions":{}}},"id":4172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2152:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2138:24:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f","id":4174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2164:34:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6","typeString":"literal_string \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\""},"value":"ERROR:RPL-003:ERC20_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6","typeString":"literal_string \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\""}],"id":4167,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2130:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2130:69:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4176,"nodeType":"ExpressionStatement","src":"2130:69:19"},{"expression":{"id":4179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4177,"name":"_erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4079,"src":"2210:11:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4178,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4139,"src":"2224:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2210:24:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4180,"nodeType":"ExpressionStatement","src":"2210:24:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4182,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4141,"src":"2255:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2273:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2265:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4183,"name":"address","nodeType":"ElementaryTypeName","src":"2265:7:19","typeDescriptions":{}}},"id":4186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2265:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2255:20:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45524f","id":4188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2277:35:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a","typeString":"literal_string \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\""},"value":"ERROR:RPL-004:WALLET_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a","typeString":"literal_string \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\""}],"id":4181,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2247:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2247:66:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4190,"nodeType":"ExpressionStatement","src":"2247:66:19"},{"expression":{"id":4193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4191,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"2324:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4192,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4141,"src":"2334:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2324:16:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4194,"nodeType":"ExpressionStatement","src":"2324:16:19"},{"expression":{"id":4201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4195,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"2353:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"496e7374616e636553657276696365","id":4198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2409:17:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""},"value":"InstanceService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""}],"id":4197,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"2389:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":4199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2389:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4196,"name":"IInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"2372:16:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IInstanceService_$6509_$","typeString":"type(contract IInstanceService)"}},"id":4200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2372:56:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"src":"2353:75:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4202,"nodeType":"ExpressionStatement","src":"2353:75:19"},{"expression":{"id":4209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4203,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"2440:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"5269736b706f6f6c53657276696365","id":4206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2496:17:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""},"value":"RiskpoolService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""}],"id":4205,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2883,"src":"2476:19:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":4207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2476:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4204,"name":"IRiskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6770,"src":"2459:16:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskpoolService_$6770_$","typeString":"type(contract IRiskpoolService)"}},"id":4208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2459:56:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"src":"2440:75:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4210,"nodeType":"ExpressionStatement","src":"2440:75:19"},{"expression":{"id":4215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4211,"name":"_bundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4072,"src":"2526:12:19","typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$10156","typeString":"contract IERC721"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4212,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"2541:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundleToken","nodeType":"MemberAccess","referencedDeclaration":6395,"src":"2541:31:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IBundleToken_$6825_$","typeString":"function () view external returns (contract IBundleToken)"}},"id":4214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2541:33:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"src":"2526:48:19","typeDescriptions":{"typeIdentifier":"t_contract$_IERC721_$10156","typeString":"contract IERC721"}},"id":4216,"nodeType":"ExpressionStatement","src":"2526:48:19"}]},"id":4218,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":4146,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4133,"src":"1881:4:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":4147,"name":"ComponentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"1887:13:19","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":4148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"1887:22:19","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},{"id":4149,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4143,"src":"1911:8:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":4150,"modifierName":{"id":4145,"name":"Component","nodeType":"IdentifierPath","referencedDeclaration":2884,"src":"1871:9:19"},"nodeType":"ModifierInvocation","src":"1871:49:19"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4133,"mutability":"mutable","name":"name","nameLocation":"1696:4:19","nodeType":"VariableDeclaration","scope":4218,"src":"1688:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1688:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4135,"mutability":"mutable","name":"collateralization","nameLocation":"1719:17:19","nodeType":"VariableDeclaration","scope":4218,"src":"1711:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4134,"name":"uint256","nodeType":"ElementaryTypeName","src":"1711:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4137,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"1755:18:19","nodeType":"VariableDeclaration","scope":4218,"src":"1747:26:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4136,"name":"uint256","nodeType":"ElementaryTypeName","src":"1747:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4139,"mutability":"mutable","name":"erc20Token","nameLocation":"1792:10:19","nodeType":"VariableDeclaration","scope":4218,"src":"1784:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4138,"name":"address","nodeType":"ElementaryTypeName","src":"1784:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4141,"mutability":"mutable","name":"wallet","nameLocation":"1821:6:19","nodeType":"VariableDeclaration","scope":4218,"src":"1813:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4140,"name":"address","nodeType":"ElementaryTypeName","src":"1813:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4143,"mutability":"mutable","name":"registry","nameLocation":"1846:8:19","nodeType":"VariableDeclaration","scope":4218,"src":"1838:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4142,"name":"address","nodeType":"ElementaryTypeName","src":"1838:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1677:184:19"},"returnParameters":{"id":4151,"nodeType":"ParameterList","parameters":[],"src":"1926:0:19"},"scope":4773,"src":"1666:916:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[2803],"body":{"id":4231,"nodeType":"Block","src":"2641:179:19","statements":[{"expression":{"arguments":[{"id":4225,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"2700:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4226,"name":"_erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4079,"src":"2722:11:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4227,"name":"_collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4081,"src":"2749:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4228,"name":"_sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4083,"src":"2782:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4222,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"2652:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerRiskpool","nodeType":"MemberAccess","referencedDeclaration":6677,"src":"2652:33:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256) external"}},"id":4229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2652:160:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4230,"nodeType":"ExpressionStatement","src":"2652:160:19"}]},"id":4232,"implemented":true,"kind":"function","modifiers":[],"name":"_afterPropose","nameLocation":"2599:13:19","nodeType":"FunctionDefinition","overrides":{"id":4220,"nodeType":"OverrideSpecifier","overrides":[],"src":"2624:8:19"},"parameters":{"id":4219,"nodeType":"ParameterList","parameters":[],"src":"2612:2:19"},"returnParameters":{"id":4221,"nodeType":"ParameterList","parameters":[],"src":"2641:0:19"},"scope":4773,"src":"2590:230:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[3149],"body":{"id":4267,"nodeType":"Block","src":"2968:243:19","statements":[{"assignments":[4243],"declarations":[{"constant":false,"id":4243,"mutability":"mutable","name":"bundleOwner","nameLocation":"2987:11:19","nodeType":"VariableDeclaration","scope":4267,"src":"2979:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4242,"name":"address","nodeType":"ElementaryTypeName","src":"2979:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4246,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4244,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3001:10:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":4245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3001:12:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2979:34:19"},{"expression":{"id":4254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4247,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"3024:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4250,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4243,"src":"3065:11:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4251,"name":"filter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4234,"src":"3078:6:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4252,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4236,"src":"3086:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4248,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3035:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createBundle","nodeType":"MemberAccess","referencedDeclaration":6688,"src":"3035:29:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,bytes memory,uint256) external returns (uint256)"}},"id":4253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3035:65:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3024:76:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4255,"nodeType":"ExpressionStatement","src":"3024:76:19"},{"expression":{"arguments":[{"id":4259,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"3127:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4256,"name":"_bundleIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"3111:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"3111:15:19","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":4260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3111:25:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4261,"nodeType":"ExpressionStatement","src":"3111:25:19"},{"eventCall":{"arguments":[{"id":4263,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4240,"src":"3179:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4264,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4236,"src":"3189:13:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4262,"name":"LogRiskpoolBundleCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"3154:24:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":4265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3154:49:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4266,"nodeType":"EmitStatement","src":"3149:54:19"}]},"functionSelector":"7888a2ff","id":4268,"implemented":true,"kind":"function","modifiers":[],"name":"createBundle","nameLocation":"2837:12:19","nodeType":"FunctionDefinition","overrides":{"id":4238,"nodeType":"OverrideSpecifier","overrides":[],"src":"2919:8:19"},"parameters":{"id":4237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4234,"mutability":"mutable","name":"filter","nameLocation":"2863:6:19","nodeType":"VariableDeclaration","scope":4268,"src":"2850:19:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4233,"name":"bytes","nodeType":"ElementaryTypeName","src":"2850:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4236,"mutability":"mutable","name":"initialAmount","nameLocation":"2879:13:19","nodeType":"VariableDeclaration","scope":4268,"src":"2871:21:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4235,"name":"uint256","nodeType":"ElementaryTypeName","src":"2871:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2849:44:19"},"returnParameters":{"id":4241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4240,"mutability":"mutable","name":"bundleId","nameLocation":"2953:8:19","nodeType":"VariableDeclaration","scope":4268,"src":"2945:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4239,"name":"uint256","nodeType":"ElementaryTypeName","src":"2945:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2944:18:19"},"scope":4773,"src":"2828:383:19","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[3158],"body":{"id":4289,"nodeType":"Block","src":"3377:76:19","statements":[{"expression":{"id":4287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4281,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4279,"src":"3388:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4284,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4270,"src":"3428:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4285,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4272,"src":"3438:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4282,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3400:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fundBundle","nodeType":"MemberAccess","referencedDeclaration":6697,"src":"3400:27:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256)"}},"id":4286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3400:45:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3388:57:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4288,"nodeType":"ExpressionStatement","src":"3388:57:19"}]},"functionSelector":"89002da5","id":4290,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4276,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4270,"src":"3326:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4277,"modifierName":{"id":4275,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"3310:15:19"},"nodeType":"ModifierInvocation","src":"3310:25:19"}],"name":"fundBundle","nameLocation":"3228:10:19","nodeType":"FunctionDefinition","overrides":{"id":4274,"nodeType":"OverrideSpecifier","overrides":[],"src":"3292:8:19"},"parameters":{"id":4273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4270,"mutability":"mutable","name":"bundleId","nameLocation":"3247:8:19","nodeType":"VariableDeclaration","scope":4290,"src":"3239:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4269,"name":"uint256","nodeType":"ElementaryTypeName","src":"3239:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4272,"mutability":"mutable","name":"amount","nameLocation":"3265:6:19","nodeType":"VariableDeclaration","scope":4290,"src":"3257:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4271,"name":"uint256","nodeType":"ElementaryTypeName","src":"3257:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3238:34:19"},"returnParameters":{"id":4280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4279,"mutability":"mutable","name":"netAmount","nameLocation":"3361:9:19","nodeType":"VariableDeclaration","scope":4290,"src":"3353:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4278,"name":"uint256","nodeType":"ElementaryTypeName","src":"3353:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3352:19:19"},"scope":4773,"src":"3219:234:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3167],"body":{"id":4311,"nodeType":"Block","src":"3620:78:19","statements":[{"expression":{"id":4309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4303,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4301,"src":"3631:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4306,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4292,"src":"3673:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4307,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294,"src":"3683:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4304,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3643:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"defundBundle","nodeType":"MemberAccess","referencedDeclaration":6706,"src":"3643:29:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256)"}},"id":4308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3643:47:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3631:59:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4310,"nodeType":"ExpressionStatement","src":"3631:59:19"}]},"functionSelector":"36153f3a","id":4312,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4298,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4292,"src":"3569:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4299,"modifierName":{"id":4297,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"3553:15:19"},"nodeType":"ModifierInvocation","src":"3553:25:19"}],"name":"defundBundle","nameLocation":"3470:12:19","nodeType":"FunctionDefinition","overrides":{"id":4296,"nodeType":"OverrideSpecifier","overrides":[],"src":"3535:8:19"},"parameters":{"id":4295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4292,"mutability":"mutable","name":"bundleId","nameLocation":"3491:8:19","nodeType":"VariableDeclaration","scope":4312,"src":"3483:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4291,"name":"uint256","nodeType":"ElementaryTypeName","src":"3483:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4294,"mutability":"mutable","name":"amount","nameLocation":"3509:6:19","nodeType":"VariableDeclaration","scope":4312,"src":"3501:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4293,"name":"uint256","nodeType":"ElementaryTypeName","src":"3501:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3482:34:19"},"returnParameters":{"id":4302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4301,"mutability":"mutable","name":"netAmount","nameLocation":"3604:9:19","nodeType":"VariableDeclaration","scope":4312,"src":"3596:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4300,"name":"uint256","nodeType":"ElementaryTypeName","src":"3596:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3595:19:19"},"scope":4773,"src":"3461:237:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3172],"body":{"id":4327,"nodeType":"Block","src":"3811:56:19","statements":[{"expression":{"arguments":[{"id":4324,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4314,"src":"3850:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4321,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3822:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lockBundle","nodeType":"MemberAccess","referencedDeclaration":6711,"src":"3822:27:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3822:37:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4326,"nodeType":"ExpressionStatement","src":"3822:37:19"}]},"functionSelector":"a17030d5","id":4328,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4318,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4314,"src":"3796:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4319,"modifierName":{"id":4317,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"3780:15:19"},"nodeType":"ModifierInvocation","src":"3780:25:19"}],"name":"lockBundle","nameLocation":"3715:10:19","nodeType":"FunctionDefinition","overrides":{"id":4316,"nodeType":"OverrideSpecifier","overrides":[],"src":"3762:8:19"},"parameters":{"id":4315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4314,"mutability":"mutable","name":"bundleId","nameLocation":"3734:8:19","nodeType":"VariableDeclaration","scope":4328,"src":"3726:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4313,"name":"uint256","nodeType":"ElementaryTypeName","src":"3726:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3725:18:19"},"returnParameters":{"id":4320,"nodeType":"ParameterList","parameters":[],"src":"3811:0:19"},"scope":4773,"src":"3706:161:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3177],"body":{"id":4343,"nodeType":"Block","src":"3982:58:19","statements":[{"expression":{"arguments":[{"id":4340,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4330,"src":"4023:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4337,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"3993:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unlockBundle","nodeType":"MemberAccess","referencedDeclaration":6716,"src":"3993:29:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3993:39:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4342,"nodeType":"ExpressionStatement","src":"3993:39:19"}]},"functionSelector":"316c5348","id":4344,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4334,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4330,"src":"3967:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4335,"modifierName":{"id":4333,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"3951:15:19"},"nodeType":"ModifierInvocation","src":"3951:25:19"}],"name":"unlockBundle","nameLocation":"3884:12:19","nodeType":"FunctionDefinition","overrides":{"id":4332,"nodeType":"OverrideSpecifier","overrides":[],"src":"3933:8:19"},"parameters":{"id":4331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4330,"mutability":"mutable","name":"bundleId","nameLocation":"3905:8:19","nodeType":"VariableDeclaration","scope":4344,"src":"3897:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4329,"name":"uint256","nodeType":"ElementaryTypeName","src":"3897:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3896:18:19"},"returnParameters":{"id":4336,"nodeType":"ParameterList","parameters":[],"src":"3982:0:19"},"scope":4773,"src":"3875:165:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3182],"body":{"id":4359,"nodeType":"Block","src":"4154:57:19","statements":[{"expression":{"arguments":[{"id":4356,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4346,"src":"4194:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4353,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"4165:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"closeBundle","nodeType":"MemberAccess","referencedDeclaration":6721,"src":"4165:28:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4165:38:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4358,"nodeType":"ExpressionStatement","src":"4165:38:19"}]},"functionSelector":"8c483e5a","id":4360,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4350,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4346,"src":"4139:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4351,"modifierName":{"id":4349,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"4123:15:19"},"nodeType":"ModifierInvocation","src":"4123:25:19"}],"name":"closeBundle","nameLocation":"4057:11:19","nodeType":"FunctionDefinition","overrides":{"id":4348,"nodeType":"OverrideSpecifier","overrides":[],"src":"4105:8:19"},"parameters":{"id":4347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4346,"mutability":"mutable","name":"bundleId","nameLocation":"4077:8:19","nodeType":"VariableDeclaration","scope":4360,"src":"4069:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4345,"name":"uint256","nodeType":"ElementaryTypeName","src":"4069:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4068:18:19"},"returnParameters":{"id":4352,"nodeType":"ParameterList","parameters":[],"src":"4154:0:19"},"scope":4773,"src":"4048:163:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3187],"body":{"id":4375,"nodeType":"Block","src":"4324:56:19","statements":[{"expression":{"arguments":[{"id":4372,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4362,"src":"4363:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4369,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"4335:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnBundle","nodeType":"MemberAccess","referencedDeclaration":6726,"src":"4335:27:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":4373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4335:37:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4374,"nodeType":"ExpressionStatement","src":"4335:37:19"}]},"functionSelector":"587e59d0","id":4376,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":4366,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4362,"src":"4309:8:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4367,"modifierName":{"id":4365,"name":"onlyBundleOwner","nodeType":"IdentifierPath","referencedDeclaration":4131,"src":"4293:15:19"},"nodeType":"ModifierInvocation","src":"4293:25:19"}],"name":"burnBundle","nameLocation":"4228:10:19","nodeType":"FunctionDefinition","overrides":{"id":4364,"nodeType":"OverrideSpecifier","overrides":[],"src":"4275:8:19"},"parameters":{"id":4363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4362,"mutability":"mutable","name":"bundleId","nameLocation":"4247:8:19","nodeType":"VariableDeclaration","scope":4376,"src":"4239:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4361,"name":"uint256","nodeType":"ElementaryTypeName","src":"4239:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4238:18:19"},"returnParameters":{"id":4368,"nodeType":"ParameterList","parameters":[],"src":"4324:0:19"},"scope":4773,"src":"4219:161:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3196],"body":{"id":4401,"nodeType":"Block","src":"4545:154:19","statements":[{"expression":{"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4388,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4386,"src":"4556:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4390,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"4582:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4391,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4380,"src":"4593:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4389,"name":"_lockCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4751,"src":"4566:15:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$","typeString":"function (bytes32,uint256) returns (bool)"}},"id":4392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4566:44:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4556:54:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4394,"nodeType":"ExpressionStatement","src":"4556:54:19"},{"eventCall":{"arguments":[{"id":4396,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"4654:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4397,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4380,"src":"4665:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4398,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4386,"src":"4683:7:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":4395,"name":"LogRiskpoolCollateralLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3122,"src":"4626:27:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (bytes32,uint256,bool)"}},"id":4399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4626:65:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4400,"nodeType":"EmitStatement","src":"4621:70:19"}]},"functionSelector":"890fbf78","id":4402,"implemented":true,"kind":"function","modifiers":[{"id":4384,"modifierName":{"id":4383,"name":"onlyPool","nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"4499:8:19"},"nodeType":"ModifierInvocation","src":"4499:8:19"}],"name":"collateralizePolicy","nameLocation":"4397:19:19","nodeType":"FunctionDefinition","overrides":{"id":4382,"nodeType":"OverrideSpecifier","overrides":[],"src":"4481:8:19"},"parameters":{"id":4381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4378,"mutability":"mutable","name":"processId","nameLocation":"4425:9:19","nodeType":"VariableDeclaration","scope":4402,"src":"4417:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4417:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4380,"mutability":"mutable","name":"collateralAmount","nameLocation":"4444:16:19","nodeType":"VariableDeclaration","scope":4402,"src":"4436:24:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4379,"name":"uint256","nodeType":"ElementaryTypeName","src":"4436:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4416:45:19"},"returnParameters":{"id":4387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4386,"mutability":"mutable","name":"success","nameLocation":"4530:7:19","nodeType":"VariableDeclaration","scope":4402,"src":"4525:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4385,"name":"bool","nodeType":"ElementaryTypeName","src":"4525:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4524:14:19"},"scope":4773,"src":"4388:311:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3210],"body":{"id":4422,"nodeType":"Block","src":"4821:113:19","statements":[{"expression":{"arguments":[{"id":4413,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4404,"src":"4847:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4414,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4406,"src":"4858:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4412,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4765,"src":"4832:14:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4832:33:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4416,"nodeType":"ExpressionStatement","src":"4832:33:19"},{"eventCall":{"arguments":[{"id":4418,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4404,"src":"4908:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4419,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4406,"src":"4919:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4417,"name":"LogRiskpoolPayoutProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3134,"src":"4881:26:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4881:45:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4421,"nodeType":"EmitStatement","src":"4876:50:19"}]},"functionSelector":"82558906","id":4423,"implemented":true,"kind":"function","modifiers":[{"id":4410,"modifierName":{"id":4409,"name":"onlyPool","nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"4807:8:19"},"nodeType":"ModifierInvocation","src":"4807:8:19"}],"name":"processPolicyPayout","nameLocation":"4716:19:19","nodeType":"FunctionDefinition","overrides":{"id":4408,"nodeType":"OverrideSpecifier","overrides":[],"src":"4789:8:19"},"parameters":{"id":4407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4404,"mutability":"mutable","name":"processId","nameLocation":"4744:9:19","nodeType":"VariableDeclaration","scope":4423,"src":"4736:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4403,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4736:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4406,"mutability":"mutable","name":"amount","nameLocation":"4763:6:19","nodeType":"VariableDeclaration","scope":4423,"src":"4755:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4405,"name":"uint256","nodeType":"ElementaryTypeName","src":"4755:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4735:35:19"},"returnParameters":{"id":4411,"nodeType":"ParameterList","parameters":[],"src":"4821:0:19"},"scope":4773,"src":"4707:227:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3203],"body":{"id":4443,"nodeType":"Block","src":"5057:115:19","statements":[{"expression":{"arguments":[{"id":4434,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4425,"src":"5084:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4435,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4427,"src":"5095:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4433,"name":"_processPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4758,"src":"5068:15:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5068:34:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4437,"nodeType":"ExpressionStatement","src":"5068:34:19"},{"eventCall":{"arguments":[{"id":4439,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4425,"src":"5146:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4440,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4427,"src":"5157:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4438,"name":"LogRiskpoolPremiumProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3128,"src":"5118:27:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5118:46:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4442,"nodeType":"EmitStatement","src":"5113:51:19"}]},"functionSelector":"3629c3c4","id":4444,"implemented":true,"kind":"function","modifiers":[{"id":4431,"modifierName":{"id":4430,"name":"onlyPool","nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"5043:8:19"},"nodeType":"ModifierInvocation","src":"5043:8:19"}],"name":"processPolicyPremium","nameLocation":"4951:20:19","nodeType":"FunctionDefinition","overrides":{"id":4429,"nodeType":"OverrideSpecifier","overrides":[],"src":"5025:8:19"},"parameters":{"id":4428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4425,"mutability":"mutable","name":"processId","nameLocation":"4980:9:19","nodeType":"VariableDeclaration","scope":4444,"src":"4972:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4972:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4427,"mutability":"mutable","name":"amount","nameLocation":"4999:6:19","nodeType":"VariableDeclaration","scope":4444,"src":"4991:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4426,"name":"uint256","nodeType":"ElementaryTypeName","src":"4991:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4971:35:19"},"returnParameters":{"id":4432,"nodeType":"ParameterList","parameters":[],"src":"5057:0:19"},"scope":4773,"src":"4942:230:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3215],"body":{"id":4463,"nodeType":"Block","src":"5273:149:19","statements":[{"assignments":[4453],"declarations":[{"constant":false,"id":4453,"mutability":"mutable","name":"collateralAmount","nameLocation":"5292:16:19","nodeType":"VariableDeclaration","scope":4463,"src":"5284:24:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4452,"name":"uint256","nodeType":"ElementaryTypeName","src":"5284:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4457,"initialValue":{"arguments":[{"id":4455,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4446,"src":"5330:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4454,"name":"_releaseCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4772,"src":"5311:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) returns (uint256)"}},"id":4456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5311:29:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5284:56:19"},{"eventCall":{"arguments":[{"id":4459,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4446,"src":"5386:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4460,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4453,"src":"5397:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4458,"name":"LogRiskpoolCollateralReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3140,"src":"5356:29:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":4461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5356:58:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4462,"nodeType":"EmitStatement","src":"5351:63:19"}]},"functionSelector":"c3004c86","id":4464,"implemented":true,"kind":"function","modifiers":[{"id":4450,"modifierName":{"id":4449,"name":"onlyPool","nodeType":"IdentifierPath","referencedDeclaration":4099,"src":"5259:8:19"},"nodeType":"ModifierInvocation","src":"5259:8:19"}],"name":"releasePolicy","nameLocation":"5189:13:19","nodeType":"FunctionDefinition","overrides":{"id":4448,"nodeType":"OverrideSpecifier","overrides":[],"src":"5241:8:19"},"parameters":{"id":4447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4446,"mutability":"mutable","name":"processId","nameLocation":"5211:9:19","nodeType":"VariableDeclaration","scope":4464,"src":"5203:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5203:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5202:19:19"},"returnParameters":{"id":4451,"nodeType":"ParameterList","parameters":[],"src":"5273:0:19"},"scope":4773,"src":"5180:242:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3306],"body":{"id":4484,"nodeType":"Block","src":"5560:148:19","statements":[{"assignments":[4473],"declarations":[{"constant":false,"id":4473,"mutability":"mutable","name":"riskpoolId","nameLocation":"5579:10:19","nodeType":"VariableDeclaration","scope":4484,"src":"5571:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4472,"name":"uint256","nodeType":"ElementaryTypeName","src":"5571:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4476,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4474,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"5592:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5592:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5571:28:19"},{"expression":{"arguments":[{"id":4480,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4473,"src":"5659:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4481,"name":"maximumNumberOfActiveBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4466,"src":"5671:28:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4477,"name":"_riskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"5610:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"id":4479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setMaximumNumberOfActiveBundles","nodeType":"MemberAccess","referencedDeclaration":6769,"src":"5610:48:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":4482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5610:90:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4483,"nodeType":"ExpressionStatement","src":"5610:90:19"}]},"functionSelector":"652028e5","id":4485,"implemented":true,"kind":"function","modifiers":[{"id":4470,"modifierName":{"id":4469,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"5545:9:19"},"nodeType":"ModifierInvocation","src":"5545:9:19"}],"name":"setMaximumNumberOfActiveBundles","nameLocation":"5439:31:19","nodeType":"FunctionDefinition","overrides":{"id":4468,"nodeType":"OverrideSpecifier","overrides":[],"src":"5527:8:19"},"parameters":{"id":4467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4466,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"5479:28:19","nodeType":"VariableDeclaration","scope":4485,"src":"5471:36:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4465,"name":"uint256","nodeType":"ElementaryTypeName","src":"5471:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5470:38:19"},"returnParameters":{"id":4471,"nodeType":"ParameterList","parameters":[],"src":"5560:0:19"},"scope":4773,"src":"5430:278:19","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3311],"body":{"id":4501,"nodeType":"Block","src":"5849:125:19","statements":[{"assignments":[4492],"declarations":[{"constant":false,"id":4492,"mutability":"mutable","name":"riskpoolId","nameLocation":"5868:10:19","nodeType":"VariableDeclaration","scope":4501,"src":"5860:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4491,"name":"uint256","nodeType":"ElementaryTypeName","src":"5860:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4495,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4493,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"5881:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5881:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5860:28:19"},{"expression":{"arguments":[{"id":4498,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4492,"src":"5955:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4496,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"5906:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMaximumNumberOfActiveBundles","nodeType":"MemberAccess","referencedDeclaration":6389,"src":"5906:48:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5906:60:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4490,"id":4500,"nodeType":"Return","src":"5899:67:19"}]},"functionSelector":"7f3b6980","id":4502,"implemented":true,"kind":"function","modifiers":[],"name":"getMaximumNumberOfActiveBundles","nameLocation":"5725:31:19","nodeType":"FunctionDefinition","overrides":{"id":4487,"nodeType":"OverrideSpecifier","overrides":[],"src":"5780:8:19"},"parameters":{"id":4486,"nodeType":"ParameterList","parameters":[],"src":"5756:2:19"},"returnParameters":{"id":4490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4489,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"5814:28:19","nodeType":"VariableDeclaration","scope":4502,"src":"5806:36:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4488,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5805:38:19"},"scope":4773,"src":"5716:258:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3271],"body":{"id":4510,"nodeType":"Block","src":"6041:33:19","statements":[{"expression":{"id":4508,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"6059:7:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4507,"id":4509,"nodeType":"Return","src":"6052:14:19"}]},"functionSelector":"13299604","id":4511,"implemented":true,"kind":"function","modifiers":[],"name":"getWallet","nameLocation":"5991:9:19","nodeType":"FunctionDefinition","overrides":{"id":4504,"nodeType":"OverrideSpecifier","overrides":[],"src":"6015:8:19"},"parameters":{"id":4503,"nodeType":"ParameterList","parameters":[],"src":"6000:2:19"},"returnParameters":{"id":4507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4511,"src":"6032:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4505,"name":"address","nodeType":"ElementaryTypeName","src":"6032:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6031:9:19"},"scope":4773,"src":"5982:92:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3276],"body":{"id":4519,"nodeType":"Block","src":"6145:37:19","statements":[{"expression":{"id":4517,"name":"_erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4079,"src":"6163:11:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4516,"id":4518,"nodeType":"Return","src":"6156:18:19"}]},"functionSelector":"feb1824b","id":4520,"implemented":true,"kind":"function","modifiers":[],"name":"getErc20Token","nameLocation":"6091:13:19","nodeType":"FunctionDefinition","overrides":{"id":4513,"nodeType":"OverrideSpecifier","overrides":[],"src":"6119:8:19"},"parameters":{"id":4512,"nodeType":"ParameterList","parameters":[],"src":"6104:2:19"},"returnParameters":{"id":4516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4520,"src":"6136:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4514,"name":"address","nodeType":"ElementaryTypeName","src":"6136:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6135:9:19"},"scope":4773,"src":"6082:100:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3281],"body":{"id":4528,"nodeType":"Block","src":"6262:45:19","statements":[{"expression":{"id":4526,"name":"_sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4083,"src":"6280:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4525,"id":4527,"nodeType":"Return","src":"6273:26:19"}]},"functionSelector":"a18aa128","id":4529,"implemented":true,"kind":"function","modifiers":[],"name":"getSumOfSumInsuredCap","nameLocation":"6199:21:19","nodeType":"FunctionDefinition","overrides":{"id":4522,"nodeType":"OverrideSpecifier","overrides":[],"src":"6235:8:19"},"parameters":{"id":4521,"nodeType":"ParameterList","parameters":[],"src":"6220:2:19"},"returnParameters":{"id":4525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4529,"src":"6253:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4523,"name":"uint256","nodeType":"ElementaryTypeName","src":"6253:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6252:9:19"},"scope":4773,"src":"6190:117:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3225],"body":{"id":4537,"nodeType":"Block","src":"6395:54:19","statements":[{"expression":{"id":4535,"name":"FULL_COLLATERALIZATION_LEVEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4060,"src":"6413:28:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4534,"id":4536,"nodeType":"Return","src":"6406:35:19"}]},"functionSelector":"f1d354d0","id":4538,"implemented":true,"kind":"function","modifiers":[],"name":"getFullCollateralizationLevel","nameLocation":"6324:29:19","nodeType":"FunctionDefinition","overrides":{"id":4531,"nodeType":"OverrideSpecifier","overrides":[],"src":"6368:8:19"},"parameters":{"id":4530,"nodeType":"ParameterList","parameters":[],"src":"6353:2:19"},"returnParameters":{"id":4534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4538,"src":"6386:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4532,"name":"uint256","nodeType":"ElementaryTypeName","src":"6386:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6385:9:19"},"scope":4773,"src":"6315:134:19","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[3220],"body":{"id":4546,"nodeType":"Block","src":"6533:44:19","statements":[{"expression":{"id":4544,"name":"_collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4081,"src":"6551:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4543,"id":4545,"nodeType":"Return","src":"6544:25:19"}]},"functionSelector":"54afef63","id":4547,"implemented":true,"kind":"function","modifiers":[],"name":"getCollateralizationLevel","nameLocation":"6466:25:19","nodeType":"FunctionDefinition","overrides":{"id":4540,"nodeType":"OverrideSpecifier","overrides":[],"src":"6506:8:19"},"parameters":{"id":4539,"nodeType":"ParameterList","parameters":[],"src":"6491:2:19"},"returnParameters":{"id":4543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4542,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4547,"src":"6524:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4541,"name":"uint256","nodeType":"ElementaryTypeName","src":"6524:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6523:9:19"},"scope":4773,"src":"6457:120:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3246],"body":{"id":4556,"nodeType":"Block","src":"6642:43:19","statements":[{"expression":{"expression":{"id":4553,"name":"_bundleIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"6660:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6660:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4552,"id":4555,"nodeType":"Return","src":"6653:24:19"}]},"functionSelector":"18442e63","id":4557,"implemented":true,"kind":"function","modifiers":[],"name":"bundles","nameLocation":"6594:7:19","nodeType":"FunctionDefinition","overrides":{"id":4549,"nodeType":"OverrideSpecifier","overrides":[],"src":"6611:8:19"},"parameters":{"id":4548,"nodeType":"ParameterList","parameters":[],"src":"6601:2:19"},"returnParameters":{"id":4552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4557,"src":"6633:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4550,"name":"uint256","nodeType":"ElementaryTypeName","src":"6633:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6632:9:19"},"scope":4773,"src":"6585:100:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3254],"body":{"id":4585,"nodeType":"Block","src":"6777:194:19","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4567,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4559,"src":"6796:3:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4568,"name":"_bundleIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"6802:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6802:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6796:23:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c41524745","id":4571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6821:38:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac","typeString":"literal_string \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\""},"value":"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac","typeString":"literal_string \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\""}],"id":4566,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6788:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6788:72:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4573,"nodeType":"ExpressionStatement","src":"6788:72:19"},{"assignments":[4575],"declarations":[{"constant":false,"id":4575,"mutability":"mutable","name":"bundleIdx","nameLocation":"6881:9:19","nodeType":"VariableDeclaration","scope":4585,"src":"6873:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4574,"name":"uint256","nodeType":"ElementaryTypeName","src":"6873:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4579,"initialValue":{"baseExpression":{"id":4576,"name":"_bundleIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4075,"src":"6893:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":4578,"indexExpression":{"id":4577,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4559,"src":"6904:3:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6893:15:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6873:35:19"},{"expression":{"arguments":[{"id":4582,"name":"bundleIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4575,"src":"6953:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4580,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"6926:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":6408,"src":"6926:26:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":4583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6926:37:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"functionReturnParameters":4565,"id":4584,"nodeType":"Return","src":"6919:44:19"}]},"functionSelector":"2d0821b7","id":4586,"implemented":true,"kind":"function","modifiers":[],"name":"getBundle","nameLocation":"6702:9:19","nodeType":"FunctionDefinition","overrides":{"id":4561,"nodeType":"OverrideSpecifier","overrides":[],"src":"6732:8:19"},"parameters":{"id":4560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4559,"mutability":"mutable","name":"idx","nameLocation":"6720:3:19","nodeType":"VariableDeclaration","scope":4586,"src":"6712:11:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4558,"name":"uint256","nodeType":"ElementaryTypeName","src":"6712:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6711:13:19"},"returnParameters":{"id":4565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4586,"src":"6754:21:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":4563,"nodeType":"UserDefinedTypeName","pathNode":{"id":4562,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"6754:14:19"},"referencedDeclaration":4936,"src":"6754:14:19","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"src":"6753:23:19"},"scope":4773,"src":"6693:278:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3259],"body":{"id":4602,"nodeType":"Block","src":"7042:107:19","statements":[{"assignments":[4593],"declarations":[{"constant":false,"id":4593,"mutability":"mutable","name":"riskpoolId","nameLocation":"7061:10:19","nodeType":"VariableDeclaration","scope":4602,"src":"7053:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4592,"name":"uint256","nodeType":"ElementaryTypeName","src":"7053:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4596,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4594,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"7074:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7074:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7053:28:19"},{"expression":{"arguments":[{"id":4599,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"7130:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4597,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"7099:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"activeBundles","nodeType":"MemberAccess","referencedDeclaration":6373,"src":"7099:30:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7099:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4591,"id":4601,"nodeType":"Return","src":"7092:49:19"}]},"functionSelector":"4101b90c","id":4603,"implemented":true,"kind":"function","modifiers":[],"name":"activeBundles","nameLocation":"6988:13:19","nodeType":"FunctionDefinition","overrides":{"id":4588,"nodeType":"OverrideSpecifier","overrides":[],"src":"7011:8:19"},"parameters":{"id":4587,"nodeType":"ParameterList","parameters":[],"src":"7001:2:19"},"returnParameters":{"id":4591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4603,"src":"7033:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4589,"name":"uint256","nodeType":"ElementaryTypeName","src":"7033:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7032:9:19"},"scope":4773,"src":"6979:170:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3266],"body":{"id":4632,"nodeType":"Block","src":"7244:233:19","statements":[{"assignments":[4612],"declarations":[{"constant":false,"id":4612,"mutability":"mutable","name":"riskpoolId","nameLocation":"7263:10:19","nodeType":"VariableDeclaration","scope":4632,"src":"7255:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4611,"name":"uint256","nodeType":"ElementaryTypeName","src":"7255:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4615,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4613,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"7276:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7276:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7255:28:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4617,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4605,"src":"7302:3:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"id":4620,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"7339:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4618,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"7308:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"activeBundles","nodeType":"MemberAccess","referencedDeclaration":6373,"src":"7308:30:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7308:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7302:48:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e4445585f544f4f5f4c41524745","id":4623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7352:45:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9","typeString":"literal_string \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\""},"value":"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9","typeString":"literal_string \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\""}],"id":4616,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7294:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7294:104:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4625,"nodeType":"ExpressionStatement","src":"7294:104:19"},{"expression":{"arguments":[{"id":4628,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4612,"src":"7453:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4629,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4605,"src":"7465:3:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4626,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"7418:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getActiveBundleId","nodeType":"MemberAccess","referencedDeclaration":6382,"src":"7418:34:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256)"}},"id":4630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7418:51:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4610,"id":4631,"nodeType":"Return","src":"7411:58:19"}]},"functionSelector":"0676cb0e","id":4633,"implemented":true,"kind":"function","modifiers":[],"name":"getActiveBundleId","nameLocation":"7166:17:19","nodeType":"FunctionDefinition","overrides":{"id":4607,"nodeType":"OverrideSpecifier","overrides":[],"src":"7204:8:19"},"parameters":{"id":4606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4605,"mutability":"mutable","name":"idx","nameLocation":"7192:3:19","nodeType":"VariableDeclaration","scope":4633,"src":"7184:11:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4604,"name":"uint256","nodeType":"ElementaryTypeName","src":"7184:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7183:13:19"},"returnParameters":{"id":4610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4609,"mutability":"mutable","name":"bundleId","nameLocation":"7234:8:19","nodeType":"VariableDeclaration","scope":4633,"src":"7226:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4608,"name":"uint256","nodeType":"ElementaryTypeName","src":"7226:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7225:18:19"},"scope":4773,"src":"7157:320:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3241],"body":{"id":4641,"nodeType":"Block","src":"7565:55:19","statements":[{"expression":{"id":4639,"name":"DEFAULT_FILTER_DATA_STRUCTURE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"7583:29:19","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4638,"id":4640,"nodeType":"Return","src":"7576:36:19"}]},"functionSelector":"3dcdde17","id":4642,"implemented":true,"kind":"function","modifiers":[],"name":"getFilterDataStructure","nameLocation":"7494:22:19","nodeType":"FunctionDefinition","overrides":{"id":4635,"nodeType":"OverrideSpecifier","overrides":[],"src":"7528:8:19"},"parameters":{"id":4634,"nodeType":"ParameterList","parameters":[],"src":"7516:2:19"},"returnParameters":{"id":4638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4642,"src":"7550:13:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4636,"name":"string","nodeType":"ElementaryTypeName","src":"7550:6:19","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7549:15:19"},"scope":4773,"src":"7485:135:19","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[3286],"body":{"id":4658,"nodeType":"Block","src":"7688:104:19","statements":[{"assignments":[4649],"declarations":[{"constant":false,"id":4649,"mutability":"mutable","name":"riskpoolId","nameLocation":"7707:10:19","nodeType":"VariableDeclaration","scope":4658,"src":"7699:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4648,"name":"uint256","nodeType":"ElementaryTypeName","src":"7699:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4652,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4650,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"7720:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7720:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7699:28:19"},{"expression":{"arguments":[{"id":4655,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4649,"src":"7773:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4653,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"7745:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getCapital","nodeType":"MemberAccess","referencedDeclaration":6345,"src":"7745:27:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7745:39:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4647,"id":4657,"nodeType":"Return","src":"7738:46:19"}]},"functionSelector":"e0032383","id":4659,"implemented":true,"kind":"function","modifiers":[],"name":"getCapital","nameLocation":"7637:10:19","nodeType":"FunctionDefinition","overrides":{"id":4644,"nodeType":"OverrideSpecifier","overrides":[],"src":"7657:8:19"},"parameters":{"id":4643,"nodeType":"ParameterList","parameters":[],"src":"7647:2:19"},"returnParameters":{"id":4647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4659,"src":"7679:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4645,"name":"uint256","nodeType":"ElementaryTypeName","src":"7679:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7678:9:19"},"scope":4773,"src":"7628:164:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3291],"body":{"id":4675,"nodeType":"Block","src":"7869:113:19","statements":[{"assignments":[4666],"declarations":[{"constant":false,"id":4666,"mutability":"mutable","name":"riskpoolId","nameLocation":"7888:10:19","nodeType":"VariableDeclaration","scope":4675,"src":"7880:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4665,"name":"uint256","nodeType":"ElementaryTypeName","src":"7880:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4669,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4667,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"7901:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7901:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7880:28:19"},{"expression":{"arguments":[{"id":4672,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4666,"src":"7963:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4670,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"7926:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTotalValueLocked","nodeType":"MemberAccess","referencedDeclaration":6352,"src":"7926:36:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7926:48:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4664,"id":4674,"nodeType":"Return","src":"7919:55:19"}]},"functionSelector":"b26025aa","id":4676,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalValueLocked","nameLocation":"7809:19:19","nodeType":"FunctionDefinition","overrides":{"id":4661,"nodeType":"OverrideSpecifier","overrides":[],"src":"7838:8:19"},"parameters":{"id":4660,"nodeType":"ParameterList","parameters":[],"src":"7828:2:19"},"returnParameters":{"id":4664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4676,"src":"7860:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4662,"name":"uint256","nodeType":"ElementaryTypeName","src":"7860:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7859:9:19"},"scope":4773,"src":"7800:182:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3296],"body":{"id":4692,"nodeType":"Block","src":"8051:105:19","statements":[{"assignments":[4683],"declarations":[{"constant":false,"id":4683,"mutability":"mutable","name":"riskpoolId","nameLocation":"8070:10:19","nodeType":"VariableDeclaration","scope":4692,"src":"8062:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4682,"name":"uint256","nodeType":"ElementaryTypeName","src":"8062:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4686,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4684,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"8083:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8083:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8062:28:19"},{"expression":{"arguments":[{"id":4689,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4683,"src":"8137:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4687,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"8108:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getCapacity","nodeType":"MemberAccess","referencedDeclaration":6359,"src":"8108:28:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8108:40:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4681,"id":4691,"nodeType":"Return","src":"8101:47:19"}]},"functionSelector":"c40000d4","id":4693,"implemented":true,"kind":"function","modifiers":[],"name":"getCapacity","nameLocation":"7999:11:19","nodeType":"FunctionDefinition","overrides":{"id":4678,"nodeType":"OverrideSpecifier","overrides":[],"src":"8020:8:19"},"parameters":{"id":4677,"nodeType":"ParameterList","parameters":[],"src":"8010:2:19"},"returnParameters":{"id":4681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4680,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4693,"src":"8042:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4679,"name":"uint256","nodeType":"ElementaryTypeName","src":"8042:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8041:9:19"},"scope":4773,"src":"7990:166:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3301],"body":{"id":4709,"nodeType":"Block","src":"8224:104:19","statements":[{"assignments":[4700],"declarations":[{"constant":false,"id":4700,"mutability":"mutable","name":"riskpoolId","nameLocation":"8243:10:19","nodeType":"VariableDeclaration","scope":4709,"src":"8235:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4699,"name":"uint256","nodeType":"ElementaryTypeName","src":"8235:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4703,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4701,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"8256:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8256:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8235:28:19"},{"expression":{"arguments":[{"id":4706,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4700,"src":"8309:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4704,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"8281:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBalance","nodeType":"MemberAccess","referencedDeclaration":6366,"src":"8281:27:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8281:39:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4698,"id":4708,"nodeType":"Return","src":"8274:46:19"}]},"functionSelector":"12065fe0","id":4710,"implemented":true,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"8173:10:19","nodeType":"FunctionDefinition","overrides":{"id":4695,"nodeType":"OverrideSpecifier","overrides":[],"src":"8193:8:19"},"parameters":{"id":4694,"nodeType":"ParameterList","parameters":[],"src":"8183:2:19"},"returnParameters":{"id":4698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4710,"src":"8215:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4696,"name":"uint256","nodeType":"ElementaryTypeName","src":"8215:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8214:9:19"},"scope":4773,"src":"8164:164:19","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[3236],"functionSelector":"86c71288","id":4722,"implemented":false,"kind":"function","modifiers":[],"name":"bundleMatchesApplication","nameLocation":"8345:24:19","nodeType":"FunctionDefinition","overrides":{"id":4718,"nodeType":"OverrideSpecifier","overrides":[],"src":"8473:8:19"},"parameters":{"id":4717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4713,"mutability":"mutable","name":"bundle","nameLocation":"8402:6:19","nodeType":"VariableDeclaration","scope":4722,"src":"8380:28:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":4712,"nodeType":"UserDefinedTypeName","pathNode":{"id":4711,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"8380:14:19"},"referencedDeclaration":4936,"src":"8380:14:19","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"},{"constant":false,"id":4716,"mutability":"mutable","name":"application","nameLocation":"8447:11:19","nodeType":"VariableDeclaration","scope":4722,"src":"8420:38:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":4715,"nodeType":"UserDefinedTypeName","pathNode":{"id":4714,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"8420:19:19"},"referencedDeclaration":5262,"src":"8420:19:19","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"8369:96:19"},"returnParameters":{"id":4721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4720,"mutability":"mutable","name":"isMatching","nameLocation":"8508:10:19","nodeType":"VariableDeclaration","scope":4722,"src":"8503:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4719,"name":"bool","nodeType":"ElementaryTypeName","src":"8503:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8502:17:19"},"scope":4773,"src":"8336:184:19","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[2831],"body":{"id":4741,"nodeType":"Block","src":"8576:204:19","statements":[{"assignments":[4727],"declarations":[{"constant":false,"id":4727,"mutability":"mutable","name":"riskpoolId","nameLocation":"8596:10:19","nodeType":"VariableDeclaration","scope":4741,"src":"8588:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4726,"name":"uint256","nodeType":"ElementaryTypeName","src":"8588:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4730,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4728,"name":"getId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2637,"src":"8609:5:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8609:7:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8588:28:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4734,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"8681:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4732,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4066,"src":"8649:16:19","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":4733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unburntBundles","nodeType":"MemberAccess","referencedDeclaration":6415,"src":"8649:31:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":4735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8649:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":4736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8696:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8649:48:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255524e545f42554e444c4553","id":4738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8713:44:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a","typeString":"literal_string \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\""},"value":"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a","typeString":"literal_string \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\""}],"id":4731,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8627:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8627:145:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4740,"nodeType":"ExpressionStatement","src":"8627:145:19"}]},"id":4742,"implemented":true,"kind":"function","modifiers":[],"name":"_afterArchive","nameLocation":"8537:13:19","nodeType":"FunctionDefinition","overrides":{"id":4724,"nodeType":"OverrideSpecifier","overrides":[],"src":"8567:8:19"},"parameters":{"id":4723,"nodeType":"ParameterList","parameters":[],"src":"8550:2:19"},"returnParameters":{"id":4725,"nodeType":"ParameterList","parameters":[],"src":"8576:0:19"},"scope":4773,"src":"8528:252:19","stateMutability":"view","virtual":false,"visibility":"internal"},{"id":4751,"implemented":false,"kind":"function","modifiers":[],"name":"_lockCollateral","nameLocation":"8797:15:19","nodeType":"FunctionDefinition","parameters":{"id":4747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4744,"mutability":"mutable","name":"processId","nameLocation":"8821:9:19","nodeType":"VariableDeclaration","scope":4751,"src":"8813:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8813:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4746,"mutability":"mutable","name":"collateralAmount","nameLocation":"8840:16:19","nodeType":"VariableDeclaration","scope":4751,"src":"8832:24:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4745,"name":"uint256","nodeType":"ElementaryTypeName","src":"8832:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8812:45:19"},"returnParameters":{"id":4750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4749,"mutability":"mutable","name":"success","nameLocation":"8888:7:19","nodeType":"VariableDeclaration","scope":4751,"src":"8883:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4748,"name":"bool","nodeType":"ElementaryTypeName","src":"8883:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8882:14:19"},"scope":4773,"src":"8788:109:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4758,"implemented":false,"kind":"function","modifiers":[],"name":"_processPremium","nameLocation":"8912:15:19","nodeType":"FunctionDefinition","parameters":{"id":4756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4753,"mutability":"mutable","name":"processId","nameLocation":"8936:9:19","nodeType":"VariableDeclaration","scope":4758,"src":"8928:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8928:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4755,"mutability":"mutable","name":"amount","nameLocation":"8955:6:19","nodeType":"VariableDeclaration","scope":4758,"src":"8947:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4754,"name":"uint256","nodeType":"ElementaryTypeName","src":"8947:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8927:35:19"},"returnParameters":{"id":4757,"nodeType":"ParameterList","parameters":[],"src":"8979:0:19"},"scope":4773,"src":"8903:77:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4765,"implemented":false,"kind":"function","modifiers":[],"name":"_processPayout","nameLocation":"8995:14:19","nodeType":"FunctionDefinition","parameters":{"id":4763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4760,"mutability":"mutable","name":"processId","nameLocation":"9018:9:19","nodeType":"VariableDeclaration","scope":4765,"src":"9010:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9010:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4762,"mutability":"mutable","name":"amount","nameLocation":"9037:6:19","nodeType":"VariableDeclaration","scope":4765,"src":"9029:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4761,"name":"uint256","nodeType":"ElementaryTypeName","src":"9029:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9009:35:19"},"returnParameters":{"id":4764,"nodeType":"ParameterList","parameters":[],"src":"9061:0:19"},"scope":4773,"src":"8986:76:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4772,"implemented":false,"kind":"function","modifiers":[],"name":"_releaseCollateral","nameLocation":"9077:18:19","nodeType":"FunctionDefinition","parameters":{"id":4768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4767,"mutability":"mutable","name":"processId","nameLocation":"9104:9:19","nodeType":"VariableDeclaration","scope":4772,"src":"9096:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9096:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9095:19:19"},"returnParameters":{"id":4771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4770,"mutability":"mutable","name":"collateralAmount","nameLocation":"9148:16:19","nodeType":"VariableDeclaration","scope":4772,"src":"9140:24:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4769,"name":"uint256","nodeType":"ElementaryTypeName","src":"9140:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9139:26:19"},"scope":4773,"src":"9068:98:19","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":4774,"src":"342:8829:19"}],"src":"40:9131:19"},"id":19},"@etherisc/gif-interface/contracts/modules/IAccess.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IAccess.sol","exportedSymbols":{"IAccess":[4836]},"id":4837,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":4775,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:20"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":4836,"linearizedBaseContracts":[4836],"name":"IAccess","nameLocation":"73:7:20","nodeType":"ContractDefinition","nodes":[{"functionSelector":"52a9c8d7","id":4780,"implemented":false,"kind":"function","modifiers":[],"name":"getDefaultAdminRole","nameLocation":"96:19:20","nodeType":"FunctionDefinition","parameters":{"id":4776,"nodeType":"ParameterList","parameters":[],"src":"115:2:20"},"returnParameters":{"id":4779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4778,"mutability":"mutable","name":"role","nameLocation":"148:4:20","nodeType":"VariableDeclaration","scope":4780,"src":"140:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"140:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"139:14:20"},"scope":4836,"src":"87:67:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"775a4048","id":4785,"implemented":false,"kind":"function","modifiers":[],"name":"getProductOwnerRole","nameLocation":"168:19:20","nodeType":"FunctionDefinition","parameters":{"id":4781,"nodeType":"ParameterList","parameters":[],"src":"187:2:20"},"returnParameters":{"id":4784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4783,"mutability":"mutable","name":"role","nameLocation":"220:4:20","nodeType":"VariableDeclaration","scope":4785,"src":"212:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"212:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"211:14:20"},"scope":4836,"src":"159:67:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d49d21c0","id":4790,"implemented":false,"kind":"function","modifiers":[],"name":"getOracleProviderRole","nameLocation":"240:21:20","nodeType":"FunctionDefinition","parameters":{"id":4786,"nodeType":"ParameterList","parameters":[],"src":"261:2:20"},"returnParameters":{"id":4789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4788,"mutability":"mutable","name":"role","nameLocation":"294:4:20","nodeType":"VariableDeclaration","scope":4790,"src":"286:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"286:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"285:14:20"},"scope":4836,"src":"231:69:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3ffdd2f3","id":4795,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolKeeperRole","nameLocation":"314:21:20","nodeType":"FunctionDefinition","parameters":{"id":4791,"nodeType":"ParameterList","parameters":[],"src":"335:2:20"},"returnParameters":{"id":4794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4793,"mutability":"mutable","name":"role","nameLocation":"368:4:20","nodeType":"VariableDeclaration","scope":4795,"src":"360:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4792,"name":"bytes32","nodeType":"ElementaryTypeName","src":"360:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"359:14:20"},"scope":4836,"src":"305:69:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"91d14854","id":4804,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"388:7:20","nodeType":"FunctionDefinition","parameters":{"id":4800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4797,"mutability":"mutable","name":"role","nameLocation":"404:4:20","nodeType":"VariableDeclaration","scope":4804,"src":"396:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4796,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4799,"mutability":"mutable","name":"principal","nameLocation":"418:9:20","nodeType":"VariableDeclaration","scope":4804,"src":"410:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4798,"name":"address","nodeType":"ElementaryTypeName","src":"410:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"395:33:20"},"returnParameters":{"id":4803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4802,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4804,"src":"451:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4801,"name":"bool","nodeType":"ElementaryTypeName","src":"451:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"450:6:20"},"scope":4836,"src":"379:78:20","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2f2ff15d","id":4811,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"472:9:20","nodeType":"FunctionDefinition","parameters":{"id":4809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4806,"mutability":"mutable","name":"role","nameLocation":"490:4:20","nodeType":"VariableDeclaration","scope":4811,"src":"482:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"482:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4808,"mutability":"mutable","name":"principal","nameLocation":"504:9:20","nodeType":"VariableDeclaration","scope":4811,"src":"496:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4807,"name":"address","nodeType":"ElementaryTypeName","src":"496:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"481:33:20"},"returnParameters":{"id":4810,"nodeType":"ParameterList","parameters":[],"src":"523:0:20"},"scope":4836,"src":"463:61:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d547741f","id":4818,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"538:10:20","nodeType":"FunctionDefinition","parameters":{"id":4816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4813,"mutability":"mutable","name":"role","nameLocation":"557:4:20","nodeType":"VariableDeclaration","scope":4818,"src":"549:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"549:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4815,"mutability":"mutable","name":"principal","nameLocation":"571:9:20","nodeType":"VariableDeclaration","scope":4818,"src":"563:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4814,"name":"address","nodeType":"ElementaryTypeName","src":"563:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"548:33:20"},"returnParameters":{"id":4817,"nodeType":"ParameterList","parameters":[],"src":"590:0:20"},"scope":4836,"src":"529:62:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"36568abe","id":4825,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"605:12:20","nodeType":"FunctionDefinition","parameters":{"id":4823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4820,"mutability":"mutable","name":"role","nameLocation":"626:4:20","nodeType":"VariableDeclaration","scope":4825,"src":"618:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"618:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4822,"mutability":"mutable","name":"principal","nameLocation":"640:9:20","nodeType":"VariableDeclaration","scope":4825,"src":"632:17:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4821,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"617:33:20"},"returnParameters":{"id":4824,"nodeType":"ParameterList","parameters":[],"src":"659:0:20"},"scope":4836,"src":"596:64:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"274b02a7","id":4830,"implemented":false,"kind":"function","modifiers":[],"name":"addRole","nameLocation":"679:7:20","nodeType":"FunctionDefinition","parameters":{"id":4828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4827,"mutability":"mutable","name":"role","nameLocation":"695:4:20","nodeType":"VariableDeclaration","scope":4830,"src":"687:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"687:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"686:14:20"},"returnParameters":{"id":4829,"nodeType":"ParameterList","parameters":[],"src":"709:0:20"},"scope":4836,"src":"670:40:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d17d0233","id":4835,"implemented":false,"kind":"function","modifiers":[],"name":"invalidateRole","nameLocation":"724:14:20","nodeType":"FunctionDefinition","parameters":{"id":4833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4832,"mutability":"mutable","name":"role","nameLocation":"747:4:20","nodeType":"VariableDeclaration","scope":4835,"src":"739:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"739:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"738:14:20"},"returnParameters":{"id":4834,"nodeType":"ParameterList","parameters":[],"src":"761:0:20"},"scope":4836,"src":"715:47:20","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":4837,"src":"63:701:20"}],"src":"39:726:20"},"id":20},"@etherisc/gif-interface/contracts/modules/IBundle.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","exportedSymbols":{"IBundle":[5020]},"id":5021,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":4838,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:21"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5020,"linearizedBaseContracts":[5020],"name":"IBundle","nameLocation":"73:7:21","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":4851,"name":"LogBundleCreated","nameLocation":"94:16:21","nodeType":"EventDefinition","parameters":{"id":4850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4840,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"128:8:21","nodeType":"VariableDeclaration","scope":4851,"src":"120:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4839,"name":"uint256","nodeType":"ElementaryTypeName","src":"120:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4842,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"155:10:21","nodeType":"VariableDeclaration","scope":4851,"src":"147:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4841,"name":"uint256","nodeType":"ElementaryTypeName","src":"147:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4844,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"184:5:21","nodeType":"VariableDeclaration","scope":4851,"src":"176:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4843,"name":"address","nodeType":"ElementaryTypeName","src":"176:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4847,"indexed":false,"mutability":"mutable","name":"state","nameLocation":"211:5:21","nodeType":"VariableDeclaration","scope":4851,"src":"199:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":4846,"nodeType":"UserDefinedTypeName","pathNode":{"id":4845,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"199:11:21"},"referencedDeclaration":4914,"src":"199:11:21","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"},{"constant":false,"id":4849,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"234:6:21","nodeType":"VariableDeclaration","scope":4851,"src":"226:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4848,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"110:136:21"},"src":"88:159:21"},{"anonymous":false,"id":4861,"name":"LogBundleStateChanged","nameLocation":"259:21:21","nodeType":"EventDefinition","parameters":{"id":4860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4853,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"289:8:21","nodeType":"VariableDeclaration","scope":4861,"src":"281:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4852,"name":"uint256","nodeType":"ElementaryTypeName","src":"281:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4856,"indexed":false,"mutability":"mutable","name":"oldState","nameLocation":"311:8:21","nodeType":"VariableDeclaration","scope":4861,"src":"299:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":4855,"nodeType":"UserDefinedTypeName","pathNode":{"id":4854,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"299:11:21"},"referencedDeclaration":4914,"src":"299:11:21","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"},{"constant":false,"id":4859,"indexed":false,"mutability":"mutable","name":"newState","nameLocation":"333:8:21","nodeType":"VariableDeclaration","scope":4861,"src":"321:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":4858,"nodeType":"UserDefinedTypeName","pathNode":{"id":4857,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"321:11:21"},"referencedDeclaration":4914,"src":"321:11:21","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"src":"280:62:21"},"src":"253:90:21"},{"anonymous":false,"id":4871,"name":"LogBundleCapitalProvided","nameLocation":"355:24:21","nodeType":"EventDefinition","parameters":{"id":4870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4863,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"388:8:21","nodeType":"VariableDeclaration","scope":4871,"src":"380:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4862,"name":"uint256","nodeType":"ElementaryTypeName","src":"380:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4865,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"406:6:21","nodeType":"VariableDeclaration","scope":4871,"src":"398:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4864,"name":"address","nodeType":"ElementaryTypeName","src":"398:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4867,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"422:6:21","nodeType":"VariableDeclaration","scope":4871,"src":"414:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4866,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4869,"indexed":false,"mutability":"mutable","name":"capacity","nameLocation":"438:8:21","nodeType":"VariableDeclaration","scope":4871,"src":"430:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4868,"name":"uint256","nodeType":"ElementaryTypeName","src":"430:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"379:68:21"},"src":"349:99:21"},{"anonymous":false,"id":4881,"name":"LogBundleCapitalWithdrawn","nameLocation":"459:25:21","nodeType":"EventDefinition","parameters":{"id":4880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4873,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"493:8:21","nodeType":"VariableDeclaration","scope":4881,"src":"485:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4872,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4875,"indexed":false,"mutability":"mutable","name":"recipient","nameLocation":"511:9:21","nodeType":"VariableDeclaration","scope":4881,"src":"503:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4874,"name":"address","nodeType":"ElementaryTypeName","src":"503:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4877,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"530:6:21","nodeType":"VariableDeclaration","scope":4881,"src":"522:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4876,"name":"uint256","nodeType":"ElementaryTypeName","src":"522:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4879,"indexed":false,"mutability":"mutable","name":"capacity","nameLocation":"546:8:21","nodeType":"VariableDeclaration","scope":4881,"src":"538:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4878,"name":"uint256","nodeType":"ElementaryTypeName","src":"538:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"484:71:21"},"src":"453:103:21"},{"anonymous":false,"id":4891,"name":"LogBundlePolicyCollateralized","nameLocation":"568:29:21","nodeType":"EventDefinition","parameters":{"id":4890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4883,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"606:8:21","nodeType":"VariableDeclaration","scope":4891,"src":"598:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4882,"name":"uint256","nodeType":"ElementaryTypeName","src":"598:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4885,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"624:9:21","nodeType":"VariableDeclaration","scope":4891,"src":"616:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"616:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4887,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"643:6:21","nodeType":"VariableDeclaration","scope":4891,"src":"635:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4886,"name":"uint256","nodeType":"ElementaryTypeName","src":"635:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4889,"indexed":false,"mutability":"mutable","name":"capacity","nameLocation":"659:8:21","nodeType":"VariableDeclaration","scope":4891,"src":"651:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4888,"name":"uint256","nodeType":"ElementaryTypeName","src":"651:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"597:71:21"},"src":"562:107:21"},{"anonymous":false,"id":4899,"name":"LogBundlePayoutProcessed","nameLocation":"680:24:21","nodeType":"EventDefinition","parameters":{"id":4898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4893,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"713:8:21","nodeType":"VariableDeclaration","scope":4899,"src":"705:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4892,"name":"uint256","nodeType":"ElementaryTypeName","src":"705:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4895,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"731:9:21","nodeType":"VariableDeclaration","scope":4899,"src":"723:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"723:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4897,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"750:6:21","nodeType":"VariableDeclaration","scope":4899,"src":"742:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4896,"name":"uint256","nodeType":"ElementaryTypeName","src":"742:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"704:53:21"},"src":"674:84:21"},{"anonymous":false,"id":4909,"name":"LogBundlePolicyReleased","nameLocation":"769:23:21","nodeType":"EventDefinition","parameters":{"id":4908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4901,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"801:8:21","nodeType":"VariableDeclaration","scope":4909,"src":"793:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4900,"name":"uint256","nodeType":"ElementaryTypeName","src":"793:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4903,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"819:9:21","nodeType":"VariableDeclaration","scope":4909,"src":"811:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"811:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4905,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"838:6:21","nodeType":"VariableDeclaration","scope":4909,"src":"830:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4904,"name":"uint256","nodeType":"ElementaryTypeName","src":"830:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4907,"indexed":false,"mutability":"mutable","name":"capacity","nameLocation":"854:8:21","nodeType":"VariableDeclaration","scope":4909,"src":"846:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4906,"name":"uint256","nodeType":"ElementaryTypeName","src":"846:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"792:71:21"},"src":"763:101:21"},{"canonicalName":"IBundle.BundleState","id":4914,"members":[{"id":4910,"name":"Active","nameLocation":"897:6:21","nodeType":"EnumValue","src":"897:6:21"},{"id":4911,"name":"Locked","nameLocation":"913:6:21","nodeType":"EnumValue","src":"913:6:21"},{"id":4912,"name":"Closed","nameLocation":"929:6:21","nodeType":"EnumValue","src":"929:6:21"},{"id":4913,"name":"Burned","nameLocation":"945:6:21","nodeType":"EnumValue","src":"945:6:21"}],"name":"BundleState","nameLocation":"875:11:21","nodeType":"EnumDefinition","src":"870:87:21"},{"canonicalName":"IBundle.Bundle","id":4936,"members":[{"constant":false,"id":4916,"mutability":"mutable","name":"id","nameLocation":"995:2:21","nodeType":"VariableDeclaration","scope":4936,"src":"987:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4915,"name":"uint256","nodeType":"ElementaryTypeName","src":"987:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4918,"mutability":"mutable","name":"riskpoolId","nameLocation":"1015:10:21","nodeType":"VariableDeclaration","scope":4936,"src":"1007:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4917,"name":"uint256","nodeType":"ElementaryTypeName","src":"1007:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4920,"mutability":"mutable","name":"tokenId","nameLocation":"1043:7:21","nodeType":"VariableDeclaration","scope":4936,"src":"1035:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4919,"name":"uint256","nodeType":"ElementaryTypeName","src":"1035:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4923,"mutability":"mutable","name":"state","nameLocation":"1072:5:21","nodeType":"VariableDeclaration","scope":4936,"src":"1060:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":4922,"nodeType":"UserDefinedTypeName","pathNode":{"id":4921,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"1060:11:21"},"referencedDeclaration":4914,"src":"1060:11:21","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"},{"constant":false,"id":4925,"mutability":"mutable","name":"filter","nameLocation":"1093:6:21","nodeType":"VariableDeclaration","scope":4936,"src":"1087:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":4924,"name":"bytes","nodeType":"ElementaryTypeName","src":"1087:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4927,"mutability":"mutable","name":"capital","nameLocation":"1211:7:21","nodeType":"VariableDeclaration","scope":4936,"src":"1203:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4926,"name":"uint256","nodeType":"ElementaryTypeName","src":"1203:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4929,"mutability":"mutable","name":"lockedCapital","nameLocation":"1282:13:21","nodeType":"VariableDeclaration","scope":4936,"src":"1274:21:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4928,"name":"uint256","nodeType":"ElementaryTypeName","src":"1274:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4931,"mutability":"mutable","name":"balance","nameLocation":"1394:7:21","nodeType":"VariableDeclaration","scope":4936,"src":"1386:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4930,"name":"uint256","nodeType":"ElementaryTypeName","src":"1386:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4933,"mutability":"mutable","name":"createdAt","nameLocation":"1493:9:21","nodeType":"VariableDeclaration","scope":4936,"src":"1485:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4932,"name":"uint256","nodeType":"ElementaryTypeName","src":"1485:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4935,"mutability":"mutable","name":"updatedAt","nameLocation":"1520:9:21","nodeType":"VariableDeclaration","scope":4936,"src":"1512:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4934,"name":"uint256","nodeType":"ElementaryTypeName","src":"1512:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Bundle","nameLocation":"970:6:21","nodeType":"StructDefinition","scope":5020,"src":"963:573:21","visibility":"public"},{"functionSelector":"c0e71404","id":4949,"implemented":false,"kind":"function","modifiers":[],"name":"create","nameLocation":"1551:6:21","nodeType":"FunctionDefinition","parameters":{"id":4945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4938,"mutability":"mutable","name":"owner_","nameLocation":"1566:6:21","nodeType":"VariableDeclaration","scope":4949,"src":"1558:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4937,"name":"address","nodeType":"ElementaryTypeName","src":"1558:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4940,"mutability":"mutable","name":"riskpoolId_","nameLocation":"1582:11:21","nodeType":"VariableDeclaration","scope":4949,"src":"1574:19:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4939,"name":"uint256","nodeType":"ElementaryTypeName","src":"1574:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4942,"mutability":"mutable","name":"filter_","nameLocation":"1610:7:21","nodeType":"VariableDeclaration","scope":4949,"src":"1595:22:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4941,"name":"bytes","nodeType":"ElementaryTypeName","src":"1595:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4944,"mutability":"mutable","name":"amount_","nameLocation":"1627:7:21","nodeType":"VariableDeclaration","scope":4949,"src":"1619:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4943,"name":"uint256","nodeType":"ElementaryTypeName","src":"1619:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1557:78:21"},"returnParameters":{"id":4948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4947,"mutability":"mutable","name":"bundleId","nameLocation":"1661:8:21","nodeType":"VariableDeclaration","scope":4949,"src":"1653:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4946,"name":"uint256","nodeType":"ElementaryTypeName","src":"1653:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1652:18:21"},"scope":5020,"src":"1542:129:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a65e2cfd","id":4956,"implemented":false,"kind":"function","modifiers":[],"name":"fund","nameLocation":"1685:4:21","nodeType":"FunctionDefinition","parameters":{"id":4954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4951,"mutability":"mutable","name":"bundleId","nameLocation":"1698:8:21","nodeType":"VariableDeclaration","scope":4956,"src":"1690:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4950,"name":"uint256","nodeType":"ElementaryTypeName","src":"1690:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4953,"mutability":"mutable","name":"amount","nameLocation":"1716:6:21","nodeType":"VariableDeclaration","scope":4956,"src":"1708:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4952,"name":"uint256","nodeType":"ElementaryTypeName","src":"1708:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1689:34:21"},"returnParameters":{"id":4955,"nodeType":"ParameterList","parameters":[],"src":"1732:0:21"},"scope":5020,"src":"1676:57:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c397ae39","id":4963,"implemented":false,"kind":"function","modifiers":[],"name":"defund","nameLocation":"1747:6:21","nodeType":"FunctionDefinition","parameters":{"id":4961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4958,"mutability":"mutable","name":"bundleId","nameLocation":"1762:8:21","nodeType":"VariableDeclaration","scope":4963,"src":"1754:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4957,"name":"uint256","nodeType":"ElementaryTypeName","src":"1754:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4960,"mutability":"mutable","name":"amount","nameLocation":"1780:6:21","nodeType":"VariableDeclaration","scope":4963,"src":"1772:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4959,"name":"uint256","nodeType":"ElementaryTypeName","src":"1772:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1753:34:21"},"returnParameters":{"id":4962,"nodeType":"ParameterList","parameters":[],"src":"1796:0:21"},"scope":5020,"src":"1738:59:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"dd467064","id":4968,"implemented":false,"kind":"function","modifiers":[],"name":"lock","nameLocation":"1812:4:21","nodeType":"FunctionDefinition","parameters":{"id":4966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4965,"mutability":"mutable","name":"bundleId","nameLocation":"1825:8:21","nodeType":"VariableDeclaration","scope":4968,"src":"1817:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4964,"name":"uint256","nodeType":"ElementaryTypeName","src":"1817:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1816:18:21"},"returnParameters":{"id":4967,"nodeType":"ParameterList","parameters":[],"src":"1843:0:21"},"scope":5020,"src":"1803:41:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6198e339","id":4973,"implemented":false,"kind":"function","modifiers":[],"name":"unlock","nameLocation":"1858:6:21","nodeType":"FunctionDefinition","parameters":{"id":4971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4970,"mutability":"mutable","name":"bundleId","nameLocation":"1873:8:21","nodeType":"VariableDeclaration","scope":4973,"src":"1865:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4969,"name":"uint256","nodeType":"ElementaryTypeName","src":"1865:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1864:18:21"},"returnParameters":{"id":4972,"nodeType":"ParameterList","parameters":[],"src":"1891:0:21"},"scope":5020,"src":"1849:43:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"0aebeb4e","id":4978,"implemented":false,"kind":"function","modifiers":[],"name":"close","nameLocation":"1906:5:21","nodeType":"FunctionDefinition","parameters":{"id":4976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4975,"mutability":"mutable","name":"bundleId","nameLocation":"1920:8:21","nodeType":"VariableDeclaration","scope":4978,"src":"1912:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4974,"name":"uint256","nodeType":"ElementaryTypeName","src":"1912:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1911:18:21"},"returnParameters":{"id":4977,"nodeType":"ParameterList","parameters":[],"src":"1938:0:21"},"scope":5020,"src":"1897:42:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"42966c68","id":4983,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1953:4:21","nodeType":"FunctionDefinition","parameters":{"id":4981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4980,"mutability":"mutable","name":"bundleId","nameLocation":"1966:8:21","nodeType":"VariableDeclaration","scope":4983,"src":"1958:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4979,"name":"uint256","nodeType":"ElementaryTypeName","src":"1958:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1957:18:21"},"returnParameters":{"id":4982,"nodeType":"ParameterList","parameters":[],"src":"1984:0:21"},"scope":5020,"src":"1944:41:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4d03f9b7","id":4992,"implemented":false,"kind":"function","modifiers":[],"name":"collateralizePolicy","nameLocation":"2000:19:21","nodeType":"FunctionDefinition","parameters":{"id":4990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4985,"mutability":"mutable","name":"bundleId","nameLocation":"2028:8:21","nodeType":"VariableDeclaration","scope":4992,"src":"2020:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4984,"name":"uint256","nodeType":"ElementaryTypeName","src":"2020:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4987,"mutability":"mutable","name":"processId","nameLocation":"2046:9:21","nodeType":"VariableDeclaration","scope":4992,"src":"2038:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2038:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4989,"mutability":"mutable","name":"collateralAmount","nameLocation":"2065:16:21","nodeType":"VariableDeclaration","scope":4992,"src":"2057:24:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4988,"name":"uint256","nodeType":"ElementaryTypeName","src":"2057:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2019:63:21"},"returnParameters":{"id":4991,"nodeType":"ParameterList","parameters":[],"src":"2091:0:21"},"scope":5020,"src":"1991:101:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b7267420","id":5001,"implemented":false,"kind":"function","modifiers":[],"name":"processPremium","nameLocation":"2106:14:21","nodeType":"FunctionDefinition","parameters":{"id":4999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4994,"mutability":"mutable","name":"bundleId","nameLocation":"2129:8:21","nodeType":"VariableDeclaration","scope":5001,"src":"2121:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4993,"name":"uint256","nodeType":"ElementaryTypeName","src":"2121:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4996,"mutability":"mutable","name":"processId","nameLocation":"2147:9:21","nodeType":"VariableDeclaration","scope":5001,"src":"2139:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2139:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4998,"mutability":"mutable","name":"amount","nameLocation":"2166:6:21","nodeType":"VariableDeclaration","scope":5001,"src":"2158:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4997,"name":"uint256","nodeType":"ElementaryTypeName","src":"2158:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2120:53:21"},"returnParameters":{"id":5000,"nodeType":"ParameterList","parameters":[],"src":"2182:0:21"},"scope":5020,"src":"2097:86:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b299cc26","id":5010,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"2197:13:21","nodeType":"FunctionDefinition","parameters":{"id":5008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5003,"mutability":"mutable","name":"bundleId","nameLocation":"2219:8:21","nodeType":"VariableDeclaration","scope":5010,"src":"2211:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5002,"name":"uint256","nodeType":"ElementaryTypeName","src":"2211:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5005,"mutability":"mutable","name":"processId","nameLocation":"2237:9:21","nodeType":"VariableDeclaration","scope":5010,"src":"2229:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2229:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5007,"mutability":"mutable","name":"amount","nameLocation":"2256:6:21","nodeType":"VariableDeclaration","scope":5010,"src":"2248:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5006,"name":"uint256","nodeType":"ElementaryTypeName","src":"2248:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2210:53:21"},"returnParameters":{"id":5009,"nodeType":"ParameterList","parameters":[],"src":"2272:0:21"},"scope":5020,"src":"2188:85:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"bb540df6","id":5019,"implemented":false,"kind":"function","modifiers":[],"name":"releasePolicy","nameLocation":"2287:13:21","nodeType":"FunctionDefinition","parameters":{"id":5015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5012,"mutability":"mutable","name":"bundleId","nameLocation":"2309:8:21","nodeType":"VariableDeclaration","scope":5019,"src":"2301:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5011,"name":"uint256","nodeType":"ElementaryTypeName","src":"2301:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5014,"mutability":"mutable","name":"processId","nameLocation":"2327:9:21","nodeType":"VariableDeclaration","scope":5019,"src":"2319:17:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2319:7:21","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2300:37:21"},"returnParameters":{"id":5018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5017,"mutability":"mutable","name":"collateralAmount","nameLocation":"2363:16:21","nodeType":"VariableDeclaration","scope":5019,"src":"2355:24:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5016,"name":"uint256","nodeType":"ElementaryTypeName","src":"2355:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2354:26:21"},"scope":5020,"src":"2278:103:21","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5021,"src":"63:2320:21"}],"src":"39:2345:21"},"id":21},"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol","exportedSymbols":{"IComponent":[2988],"IComponentEvents":[5073],"IRegistry":[5714]},"id":5074,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5022,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:22"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"../components/IComponent.sol","id":5023,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5074,"sourceUnit":2989,"src":"63:38:22","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":true,"id":5073,"linearizedBaseContracts":[5073],"name":"IComponentEvents","nameLocation":"113:16:22","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":5034,"name":"LogComponentProposed","nameLocation":"143:20:22","nodeType":"EventDefinition","parameters":{"id":5033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5025,"indexed":false,"mutability":"mutable","name":"componentName","nameLocation":"182:13:22","nodeType":"VariableDeclaration","scope":5034,"src":"174:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5024,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5028,"indexed":false,"mutability":"mutable","name":"componentType","nameLocation":"230:13:22","nodeType":"VariableDeclaration","scope":5034,"src":"205:38:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":5027,"nodeType":"UserDefinedTypeName","pathNode":{"id":5026,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"205:24:22"},"referencedDeclaration":2891,"src":"205:24:22","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"},{"constant":false,"id":5030,"indexed":false,"mutability":"mutable","name":"componentAddress","nameLocation":"261:16:22","nodeType":"VariableDeclaration","scope":5034,"src":"253:24:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5029,"name":"address","nodeType":"ElementaryTypeName","src":"253:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5032,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"295:2:22","nodeType":"VariableDeclaration","scope":5034,"src":"287:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5031,"name":"uint256","nodeType":"ElementaryTypeName","src":"287:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"164:134:22"},"src":"137:162:22"},{"anonymous":false,"id":5038,"name":"LogComponentApproved","nameLocation":"315:20:22","nodeType":"EventDefinition","parameters":{"id":5037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5036,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"345:2:22","nodeType":"VariableDeclaration","scope":5038,"src":"337:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5035,"name":"uint256","nodeType":"ElementaryTypeName","src":"337:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"336:12:22"},"src":"309:40:22"},{"anonymous":false,"id":5042,"name":"LogComponentDeclined","nameLocation":"360:20:22","nodeType":"EventDefinition","parameters":{"id":5041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5040,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"390:2:22","nodeType":"VariableDeclaration","scope":5042,"src":"382:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5039,"name":"uint256","nodeType":"ElementaryTypeName","src":"382:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"381:12:22"},"src":"354:40:22"},{"anonymous":false,"id":5046,"name":"LogComponentSuspended","nameLocation":"406:21:22","nodeType":"EventDefinition","parameters":{"id":5045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5044,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"437:2:22","nodeType":"VariableDeclaration","scope":5046,"src":"429:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5043,"name":"uint256","nodeType":"ElementaryTypeName","src":"429:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"428:12:22"},"src":"400:41:22"},{"anonymous":false,"id":5050,"name":"LogComponentResumed","nameLocation":"452:19:22","nodeType":"EventDefinition","parameters":{"id":5049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5048,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"481:2:22","nodeType":"VariableDeclaration","scope":5050,"src":"473:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5047,"name":"uint256","nodeType":"ElementaryTypeName","src":"473:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"472:12:22"},"src":"446:39:22"},{"anonymous":false,"id":5054,"name":"LogComponentPaused","nameLocation":"497:18:22","nodeType":"EventDefinition","parameters":{"id":5053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5052,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"525:2:22","nodeType":"VariableDeclaration","scope":5054,"src":"517:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5051,"name":"uint256","nodeType":"ElementaryTypeName","src":"517:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"516:12:22"},"src":"491:38:22"},{"anonymous":false,"id":5058,"name":"LogComponentUnpaused","nameLocation":"540:20:22","nodeType":"EventDefinition","parameters":{"id":5057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5056,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"570:2:22","nodeType":"VariableDeclaration","scope":5058,"src":"562:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5055,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"561:12:22"},"src":"534:40:22"},{"anonymous":false,"id":5062,"name":"LogComponentArchived","nameLocation":"586:20:22","nodeType":"EventDefinition","parameters":{"id":5061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5060,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"616:2:22","nodeType":"VariableDeclaration","scope":5062,"src":"608:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5059,"name":"uint256","nodeType":"ElementaryTypeName","src":"608:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"607:12:22"},"src":"580:40:22"},{"anonymous":false,"id":5072,"name":"LogComponentStateChanged","nameLocation":"632:24:22","nodeType":"EventDefinition","parameters":{"id":5071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5064,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"675:2:22","nodeType":"VariableDeclaration","scope":5072,"src":"667:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5063,"name":"uint256","nodeType":"ElementaryTypeName","src":"667:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5067,"indexed":false,"mutability":"mutable","name":"stateOld","nameLocation":"714:8:22","nodeType":"VariableDeclaration","scope":5072,"src":"688:34:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":5066,"nodeType":"UserDefinedTypeName","pathNode":{"id":5065,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"688:25:22"},"referencedDeclaration":2899,"src":"688:25:22","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"},{"constant":false,"id":5070,"indexed":false,"mutability":"mutable","name":"stateNew","nameLocation":"759:8:22","nodeType":"VariableDeclaration","scope":5072,"src":"733:34:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":5069,"nodeType":"UserDefinedTypeName","pathNode":{"id":5068,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"733:25:22"},"referencedDeclaration":2899,"src":"733:25:22","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"657:111:22"},"src":"626:143:22"}],"scope":5074,"src":"103:668:22"}],"src":"39:733:22"},"id":22},"@etherisc/gif-interface/contracts/modules/ILicense.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/ILicense.sol","exportedSymbols":{"ILicense":[5087]},"id":5088,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5075,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:23"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5087,"linearizedBaseContracts":[5087],"name":"ILicense","nameLocation":"73:8:23","nodeType":"ContractDefinition","nodes":[{"functionSelector":"d3e9c314","id":5086,"implemented":false,"kind":"function","modifiers":[],"name":"getAuthorizationStatus","nameLocation":"98:22:23","nodeType":"FunctionDefinition","parameters":{"id":5078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5077,"mutability":"mutable","name":"_sender","nameLocation":"129:7:23","nodeType":"VariableDeclaration","scope":5086,"src":"121:15:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5076,"name":"address","nodeType":"ElementaryTypeName","src":"121:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"120:17:23"},"returnParameters":{"id":5085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5080,"mutability":"mutable","name":"productId","nameLocation":"193:9:23","nodeType":"VariableDeclaration","scope":5086,"src":"185:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5079,"name":"uint256","nodeType":"ElementaryTypeName","src":"185:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5082,"mutability":"mutable","name":"isAuthorized","nameLocation":"209:12:23","nodeType":"VariableDeclaration","scope":5086,"src":"204:17:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5081,"name":"bool","nodeType":"ElementaryTypeName","src":"204:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5084,"mutability":"mutable","name":"policyFlow","nameLocation":"231:10:23","nodeType":"VariableDeclaration","scope":5086,"src":"223:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5083,"name":"address","nodeType":"ElementaryTypeName","src":"223:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"184:58:23"},"scope":5087,"src":"89:154:23","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5088,"src":"63:182:23"}],"src":"39:207:23"},"id":23},"@etherisc/gif-interface/contracts/modules/IPolicy.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","exportedSymbols":{"IPolicy":[5433]},"id":5434,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5089,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:24"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5433,"linearizedBaseContracts":[5433],"name":"IPolicy","nameLocation":"73:7:24","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":5100,"name":"LogMetadataCreated","nameLocation":"108:18:24","nodeType":"EventDefinition","parameters":{"id":5099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5091,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"144:5:24","nodeType":"VariableDeclaration","scope":5100,"src":"136:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5090,"name":"address","nodeType":"ElementaryTypeName","src":"136:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5093,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"167:9:24","nodeType":"VariableDeclaration","scope":5100,"src":"159:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5092,"name":"bytes32","nodeType":"ElementaryTypeName","src":"159:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5095,"indexed":false,"mutability":"mutable","name":"productId","nameLocation":"194:9:24","nodeType":"VariableDeclaration","scope":5100,"src":"186:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5094,"name":"uint256","nodeType":"ElementaryTypeName","src":"186:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5098,"indexed":false,"mutability":"mutable","name":"state","nameLocation":"230:5:24","nodeType":"VariableDeclaration","scope":5100,"src":"214:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"},"typeName":{"id":5097,"nodeType":"UserDefinedTypeName","pathNode":{"id":5096,"name":"PolicyFlowState","nodeType":"IdentifierPath","referencedDeclaration":5217,"src":"214:15:24"},"referencedDeclaration":5217,"src":"214:15:24","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"visibility":"internal"}],"src":"126:115:24"},"src":"102:140:24"},{"anonymous":false,"id":5107,"name":"LogMetadataStateChanged","nameLocation":"254:23:24","nodeType":"EventDefinition","parameters":{"id":5106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5102,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"295:9:24","nodeType":"VariableDeclaration","scope":5107,"src":"287:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5101,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5105,"indexed":false,"mutability":"mutable","name":"state","nameLocation":"331:5:24","nodeType":"VariableDeclaration","scope":5107,"src":"315:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"},"typeName":{"id":5104,"nodeType":"UserDefinedTypeName","pathNode":{"id":5103,"name":"PolicyFlowState","nodeType":"IdentifierPath","referencedDeclaration":5217,"src":"315:15:24"},"referencedDeclaration":5217,"src":"315:15:24","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"visibility":"internal"}],"src":"277:65:24"},"src":"248:95:24"},{"anonymous":false,"id":5115,"name":"LogApplicationCreated","nameLocation":"355:21:24","nodeType":"EventDefinition","parameters":{"id":5114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5109,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"394:9:24","nodeType":"VariableDeclaration","scope":5115,"src":"386:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5111,"indexed":false,"mutability":"mutable","name":"premiumAmount","nameLocation":"422:13:24","nodeType":"VariableDeclaration","scope":5115,"src":"414:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5110,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5113,"indexed":false,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"454:16:24","nodeType":"VariableDeclaration","scope":5115,"src":"446:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5112,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"376:100:24"},"src":"349:128:24"},{"anonymous":false,"id":5119,"name":"LogApplicationRevoked","nameLocation":"489:21:24","nodeType":"EventDefinition","parameters":{"id":5118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5117,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"519:9:24","nodeType":"VariableDeclaration","scope":5119,"src":"511:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"511:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"510:19:24"},"src":"483:47:24"},{"anonymous":false,"id":5123,"name":"LogApplicationUnderwritten","nameLocation":"541:26:24","nodeType":"EventDefinition","parameters":{"id":5122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5121,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"576:9:24","nodeType":"VariableDeclaration","scope":5123,"src":"568:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"568:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"567:19:24"},"src":"535:52:24"},{"anonymous":false,"id":5127,"name":"LogApplicationDeclined","nameLocation":"598:22:24","nodeType":"EventDefinition","parameters":{"id":5126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5125,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"629:9:24","nodeType":"VariableDeclaration","scope":5127,"src":"621:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"621:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"620:19:24"},"src":"592:48:24"},{"anonymous":false,"id":5131,"name":"LogPolicyCreated","nameLocation":"652:16:24","nodeType":"EventDefinition","parameters":{"id":5130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5129,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"677:9:24","nodeType":"VariableDeclaration","scope":5131,"src":"669:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"669:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"668:19:24"},"src":"646:42:24"},{"anonymous":false,"id":5135,"name":"LogPolicyExpired","nameLocation":"699:16:24","nodeType":"EventDefinition","parameters":{"id":5134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5133,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"724:9:24","nodeType":"VariableDeclaration","scope":5135,"src":"716:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"716:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"715:19:24"},"src":"693:42:24"},{"anonymous":false,"id":5139,"name":"LogPolicyClosed","nameLocation":"746:15:24","nodeType":"EventDefinition","parameters":{"id":5138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5137,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"770:9:24","nodeType":"VariableDeclaration","scope":5139,"src":"762:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"762:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"761:19:24"},"src":"740:41:24"},{"anonymous":false,"id":5145,"name":"LogPremiumCollected","nameLocation":"793:19:24","nodeType":"EventDefinition","parameters":{"id":5144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5141,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"821:9:24","nodeType":"VariableDeclaration","scope":5145,"src":"813:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"813:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5143,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"840:6:24","nodeType":"VariableDeclaration","scope":5145,"src":"832:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5142,"name":"uint256","nodeType":"ElementaryTypeName","src":"832:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"812:35:24"},"src":"787:61:24"},{"anonymous":false,"id":5153,"name":"LogApplicationSumInsuredAdjusted","nameLocation":"864:32:24","nodeType":"EventDefinition","parameters":{"id":5152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5147,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"905:9:24","nodeType":"VariableDeclaration","scope":5153,"src":"897:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"897:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5149,"indexed":false,"mutability":"mutable","name":"sumInsuredAmountOld","nameLocation":"924:19:24","nodeType":"VariableDeclaration","scope":5153,"src":"916:27:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5148,"name":"uint256","nodeType":"ElementaryTypeName","src":"916:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5151,"indexed":false,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"953:16:24","nodeType":"VariableDeclaration","scope":5153,"src":"945:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5150,"name":"uint256","nodeType":"ElementaryTypeName","src":"945:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"896:74:24"},"src":"858:113:24"},{"anonymous":false,"id":5161,"name":"LogApplicationPremiumAdjusted","nameLocation":"982:29:24","nodeType":"EventDefinition","parameters":{"id":5160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5155,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1020:9:24","nodeType":"VariableDeclaration","scope":5161,"src":"1012:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5154,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1012:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5157,"indexed":false,"mutability":"mutable","name":"premiumAmountOld","nameLocation":"1039:16:24","nodeType":"VariableDeclaration","scope":5161,"src":"1031:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5156,"name":"uint256","nodeType":"ElementaryTypeName","src":"1031:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5159,"indexed":false,"mutability":"mutable","name":"premiumAmount","nameLocation":"1065:13:24","nodeType":"VariableDeclaration","scope":5161,"src":"1057:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5158,"name":"uint256","nodeType":"ElementaryTypeName","src":"1057:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1011:68:24"},"src":"976:104:24"},{"anonymous":false,"id":5169,"name":"LogPolicyPremiumAdjusted","nameLocation":"1091:24:24","nodeType":"EventDefinition","parameters":{"id":5168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5163,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1124:9:24","nodeType":"VariableDeclaration","scope":5169,"src":"1116:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1116:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5165,"indexed":false,"mutability":"mutable","name":"premiumExpectedAmountOld","nameLocation":"1143:24:24","nodeType":"VariableDeclaration","scope":5169,"src":"1135:32:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5164,"name":"uint256","nodeType":"ElementaryTypeName","src":"1135:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5167,"indexed":false,"mutability":"mutable","name":"premiumExpectedAmount","nameLocation":"1177:21:24","nodeType":"VariableDeclaration","scope":5169,"src":"1169:29:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5166,"name":"uint256","nodeType":"ElementaryTypeName","src":"1169:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1115:84:24"},"src":"1085:115:24"},{"anonymous":false,"id":5177,"name":"LogClaimCreated","nameLocation":"1212:15:24","nodeType":"EventDefinition","parameters":{"id":5176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5171,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1236:9:24","nodeType":"VariableDeclaration","scope":5177,"src":"1228:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1228:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5173,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"1255:7:24","nodeType":"VariableDeclaration","scope":5177,"src":"1247:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1247:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5175,"indexed":false,"mutability":"mutable","name":"claimAmount","nameLocation":"1272:11:24","nodeType":"VariableDeclaration","scope":5177,"src":"1264:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5174,"name":"uint256","nodeType":"ElementaryTypeName","src":"1264:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1227:57:24"},"src":"1206:79:24"},{"anonymous":false,"id":5185,"name":"LogClaimConfirmed","nameLocation":"1296:17:24","nodeType":"EventDefinition","parameters":{"id":5184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5179,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1322:9:24","nodeType":"VariableDeclaration","scope":5185,"src":"1314:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5178,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1314:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5181,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"1341:7:24","nodeType":"VariableDeclaration","scope":5185,"src":"1333:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5180,"name":"uint256","nodeType":"ElementaryTypeName","src":"1333:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5183,"indexed":false,"mutability":"mutable","name":"confirmedAmount","nameLocation":"1358:15:24","nodeType":"VariableDeclaration","scope":5185,"src":"1350:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5182,"name":"uint256","nodeType":"ElementaryTypeName","src":"1350:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1313:61:24"},"src":"1290:85:24"},{"anonymous":false,"id":5191,"name":"LogClaimDeclined","nameLocation":"1386:16:24","nodeType":"EventDefinition","parameters":{"id":5190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5187,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1411:9:24","nodeType":"VariableDeclaration","scope":5191,"src":"1403:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1403:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5189,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"1430:7:24","nodeType":"VariableDeclaration","scope":5191,"src":"1422:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5188,"name":"uint256","nodeType":"ElementaryTypeName","src":"1422:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1402:36:24"},"src":"1380:59:24"},{"anonymous":false,"id":5197,"name":"LogClaimClosed","nameLocation":"1450:14:24","nodeType":"EventDefinition","parameters":{"id":5196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5193,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1473:9:24","nodeType":"VariableDeclaration","scope":5197,"src":"1465:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5192,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1465:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5195,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"1492:7:24","nodeType":"VariableDeclaration","scope":5197,"src":"1484:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5194,"name":"uint256","nodeType":"ElementaryTypeName","src":"1484:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1464:36:24"},"src":"1444:57:24"},{"anonymous":false,"id":5207,"name":"LogPayoutCreated","nameLocation":"1513:16:24","nodeType":"EventDefinition","parameters":{"id":5206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5199,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1547:9:24","nodeType":"VariableDeclaration","scope":5207,"src":"1539:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1539:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5201,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"1574:7:24","nodeType":"VariableDeclaration","scope":5207,"src":"1566:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5200,"name":"uint256","nodeType":"ElementaryTypeName","src":"1566:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5203,"indexed":false,"mutability":"mutable","name":"payoutId","nameLocation":"1599:8:24","nodeType":"VariableDeclaration","scope":5207,"src":"1591:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5202,"name":"uint256","nodeType":"ElementaryTypeName","src":"1591:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5205,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1625:6:24","nodeType":"VariableDeclaration","scope":5207,"src":"1617:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5204,"name":"uint256","nodeType":"ElementaryTypeName","src":"1617:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1529:108:24"},"src":"1507:131:24"},{"anonymous":false,"id":5213,"name":"LogPayoutProcessed","nameLocation":"1650:18:24","nodeType":"EventDefinition","parameters":{"id":5212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5209,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1686:9:24","nodeType":"VariableDeclaration","scope":5213,"src":"1678:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1678:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5211,"indexed":false,"mutability":"mutable","name":"payoutId","nameLocation":"1714:8:24","nodeType":"VariableDeclaration","scope":5213,"src":"1706:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5210,"name":"uint256","nodeType":"ElementaryTypeName","src":"1706:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1668:60:24"},"src":"1644:85:24"},{"canonicalName":"IPolicy.PolicyFlowState","id":5217,"members":[{"id":5214,"name":"Started","nameLocation":"1771:7:24","nodeType":"EnumValue","src":"1771:7:24"},{"id":5215,"name":"Active","nameLocation":"1780:6:24","nodeType":"EnumValue","src":"1780:6:24"},{"id":5216,"name":"Finished","nameLocation":"1788:8:24","nodeType":"EnumValue","src":"1788:8:24"}],"name":"PolicyFlowState","nameLocation":"1754:15:24","nodeType":"EnumDefinition","src":"1749:48:24"},{"canonicalName":"IPolicy.ApplicationState","id":5222,"members":[{"id":5218,"name":"Applied","nameLocation":"1825:7:24","nodeType":"EnumValue","src":"1825:7:24"},{"id":5219,"name":"Revoked","nameLocation":"1834:7:24","nodeType":"EnumValue","src":"1834:7:24"},{"id":5220,"name":"Underwritten","nameLocation":"1843:12:24","nodeType":"EnumValue","src":"1843:12:24"},{"id":5221,"name":"Declined","nameLocation":"1857:8:24","nodeType":"EnumValue","src":"1857:8:24"}],"name":"ApplicationState","nameLocation":"1807:16:24","nodeType":"EnumDefinition","src":"1802:64:24"},{"canonicalName":"IPolicy.PolicyState","id":5226,"members":[{"id":5223,"name":"Active","nameLocation":"1889:6:24","nodeType":"EnumValue","src":"1889:6:24"},{"id":5224,"name":"Expired","nameLocation":"1897:7:24","nodeType":"EnumValue","src":"1897:7:24"},{"id":5225,"name":"Closed","nameLocation":"1906:6:24","nodeType":"EnumValue","src":"1906:6:24"}],"name":"PolicyState","nameLocation":"1876:11:24","nodeType":"EnumDefinition","src":"1871:42:24"},{"canonicalName":"IPolicy.ClaimState","id":5231,"members":[{"id":5227,"name":"Applied","nameLocation":"1935:7:24","nodeType":"EnumValue","src":"1935:7:24"},{"id":5228,"name":"Confirmed","nameLocation":"1944:9:24","nodeType":"EnumValue","src":"1944:9:24"},{"id":5229,"name":"Declined","nameLocation":"1955:8:24","nodeType":"EnumValue","src":"1955:8:24"},{"id":5230,"name":"Closed","nameLocation":"1965:6:24","nodeType":"EnumValue","src":"1965:6:24"}],"name":"ClaimState","nameLocation":"1923:10:24","nodeType":"EnumDefinition","src":"1918:54:24"},{"canonicalName":"IPolicy.PayoutState","id":5234,"members":[{"id":5232,"name":"Expected","nameLocation":"1995:8:24","nodeType":"EnumValue","src":"1995:8:24"},{"id":5233,"name":"PaidOut","nameLocation":"2005:7:24","nodeType":"EnumValue","src":"2005:7:24"}],"name":"PayoutState","nameLocation":"1982:11:24","nodeType":"EnumDefinition","src":"1977:36:24"},{"canonicalName":"IPolicy.Metadata","id":5248,"members":[{"constant":false,"id":5236,"mutability":"mutable","name":"owner","nameLocation":"2068:5:24","nodeType":"VariableDeclaration","scope":5248,"src":"2060:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5235,"name":"address","nodeType":"ElementaryTypeName","src":"2060:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5238,"mutability":"mutable","name":"productId","nameLocation":"2091:9:24","nodeType":"VariableDeclaration","scope":5248,"src":"2083:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5237,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5241,"mutability":"mutable","name":"state","nameLocation":"2126:5:24","nodeType":"VariableDeclaration","scope":5248,"src":"2110:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"},"typeName":{"id":5240,"nodeType":"UserDefinedTypeName","pathNode":{"id":5239,"name":"PolicyFlowState","nodeType":"IdentifierPath","referencedDeclaration":5217,"src":"2110:15:24"},"referencedDeclaration":5217,"src":"2110:15:24","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"visibility":"internal"},{"constant":false,"id":5243,"mutability":"mutable","name":"data","nameLocation":"2147:4:24","nodeType":"VariableDeclaration","scope":5248,"src":"2141:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5242,"name":"bytes","nodeType":"ElementaryTypeName","src":"2141:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5245,"mutability":"mutable","name":"createdAt","nameLocation":"2169:9:24","nodeType":"VariableDeclaration","scope":5248,"src":"2161:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5244,"name":"uint256","nodeType":"ElementaryTypeName","src":"2161:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5247,"mutability":"mutable","name":"updatedAt","nameLocation":"2196:9:24","nodeType":"VariableDeclaration","scope":5248,"src":"2188:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5246,"name":"uint256","nodeType":"ElementaryTypeName","src":"2188:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Metadata","nameLocation":"2041:8:24","nodeType":"StructDefinition","scope":5433,"src":"2034:178:24","visibility":"public"},{"canonicalName":"IPolicy.Application","id":5262,"members":[{"constant":false,"id":5251,"mutability":"mutable","name":"state","nameLocation":"2264:5:24","nodeType":"VariableDeclaration","scope":5262,"src":"2247:22:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"typeName":{"id":5250,"nodeType":"UserDefinedTypeName","pathNode":{"id":5249,"name":"ApplicationState","nodeType":"IdentifierPath","referencedDeclaration":5222,"src":"2247:16:24"},"referencedDeclaration":5222,"src":"2247:16:24","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"visibility":"internal"},{"constant":false,"id":5253,"mutability":"mutable","name":"premiumAmount","nameLocation":"2287:13:24","nodeType":"VariableDeclaration","scope":5262,"src":"2279:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5252,"name":"uint256","nodeType":"ElementaryTypeName","src":"2279:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5255,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"2318:16:24","nodeType":"VariableDeclaration","scope":5262,"src":"2310:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5254,"name":"uint256","nodeType":"ElementaryTypeName","src":"2310:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5257,"mutability":"mutable","name":"data","nameLocation":"2350:4:24","nodeType":"VariableDeclaration","scope":5262,"src":"2344:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5256,"name":"bytes","nodeType":"ElementaryTypeName","src":"2344:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5259,"mutability":"mutable","name":"createdAt","nameLocation":"2373:9:24","nodeType":"VariableDeclaration","scope":5262,"src":"2365:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5258,"name":"uint256","nodeType":"ElementaryTypeName","src":"2365:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5261,"mutability":"mutable","name":"updatedAt","nameLocation":"2400:9:24","nodeType":"VariableDeclaration","scope":5262,"src":"2392:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5260,"name":"uint256","nodeType":"ElementaryTypeName","src":"2392:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Application","nameLocation":"2225:11:24","nodeType":"StructDefinition","scope":5433,"src":"2218:198:24","visibility":"public"},{"canonicalName":"IPolicy.Policy","id":5282,"members":[{"constant":false,"id":5265,"mutability":"mutable","name":"state","nameLocation":"2458:5:24","nodeType":"VariableDeclaration","scope":5282,"src":"2446:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"typeName":{"id":5264,"nodeType":"UserDefinedTypeName","pathNode":{"id":5263,"name":"PolicyState","nodeType":"IdentifierPath","referencedDeclaration":5226,"src":"2446:11:24"},"referencedDeclaration":5226,"src":"2446:11:24","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"visibility":"internal"},{"constant":false,"id":5267,"mutability":"mutable","name":"premiumExpectedAmount","nameLocation":"2481:21:24","nodeType":"VariableDeclaration","scope":5282,"src":"2473:29:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5266,"name":"uint256","nodeType":"ElementaryTypeName","src":"2473:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5269,"mutability":"mutable","name":"premiumPaidAmount","nameLocation":"2520:17:24","nodeType":"VariableDeclaration","scope":5282,"src":"2512:25:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5268,"name":"uint256","nodeType":"ElementaryTypeName","src":"2512:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5271,"mutability":"mutable","name":"claimsCount","nameLocation":"2555:11:24","nodeType":"VariableDeclaration","scope":5282,"src":"2547:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5270,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5273,"mutability":"mutable","name":"openClaimsCount","nameLocation":"2584:15:24","nodeType":"VariableDeclaration","scope":5282,"src":"2576:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5272,"name":"uint256","nodeType":"ElementaryTypeName","src":"2576:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5275,"mutability":"mutable","name":"payoutMaxAmount","nameLocation":"2617:15:24","nodeType":"VariableDeclaration","scope":5282,"src":"2609:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5274,"name":"uint256","nodeType":"ElementaryTypeName","src":"2609:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5277,"mutability":"mutable","name":"payoutAmount","nameLocation":"2650:12:24","nodeType":"VariableDeclaration","scope":5282,"src":"2642:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5276,"name":"uint256","nodeType":"ElementaryTypeName","src":"2642:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5279,"mutability":"mutable","name":"createdAt","nameLocation":"2680:9:24","nodeType":"VariableDeclaration","scope":5282,"src":"2672:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5278,"name":"uint256","nodeType":"ElementaryTypeName","src":"2672:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5281,"mutability":"mutable","name":"updatedAt","nameLocation":"2707:9:24","nodeType":"VariableDeclaration","scope":5282,"src":"2699:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5280,"name":"uint256","nodeType":"ElementaryTypeName","src":"2699:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Policy","nameLocation":"2429:6:24","nodeType":"StructDefinition","scope":5433,"src":"2422:301:24","visibility":"public"},{"canonicalName":"IPolicy.Claim","id":5296,"members":[{"constant":false,"id":5285,"mutability":"mutable","name":"state","nameLocation":"2763:5:24","nodeType":"VariableDeclaration","scope":5296,"src":"2752:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"typeName":{"id":5284,"nodeType":"UserDefinedTypeName","pathNode":{"id":5283,"name":"ClaimState","nodeType":"IdentifierPath","referencedDeclaration":5231,"src":"2752:10:24"},"referencedDeclaration":5231,"src":"2752:10:24","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"visibility":"internal"},{"constant":false,"id":5287,"mutability":"mutable","name":"claimAmount","nameLocation":"2786:11:24","nodeType":"VariableDeclaration","scope":5296,"src":"2778:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5286,"name":"uint256","nodeType":"ElementaryTypeName","src":"2778:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5289,"mutability":"mutable","name":"paidAmount","nameLocation":"2815:10:24","nodeType":"VariableDeclaration","scope":5296,"src":"2807:18:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5288,"name":"uint256","nodeType":"ElementaryTypeName","src":"2807:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5291,"mutability":"mutable","name":"data","nameLocation":"2841:4:24","nodeType":"VariableDeclaration","scope":5296,"src":"2835:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5290,"name":"bytes","nodeType":"ElementaryTypeName","src":"2835:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5293,"mutability":"mutable","name":"createdAt","nameLocation":"2863:9:24","nodeType":"VariableDeclaration","scope":5296,"src":"2855:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5292,"name":"uint256","nodeType":"ElementaryTypeName","src":"2855:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5295,"mutability":"mutable","name":"updatedAt","nameLocation":"2890:9:24","nodeType":"VariableDeclaration","scope":5296,"src":"2882:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5294,"name":"uint256","nodeType":"ElementaryTypeName","src":"2882:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Claim","nameLocation":"2736:5:24","nodeType":"StructDefinition","scope":5433,"src":"2729:177:24","visibility":"public"},{"canonicalName":"IPolicy.Payout","id":5310,"members":[{"constant":false,"id":5298,"mutability":"mutable","name":"claimId","nameLocation":"2944:7:24","nodeType":"VariableDeclaration","scope":5310,"src":"2936:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5297,"name":"uint256","nodeType":"ElementaryTypeName","src":"2936:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5301,"mutability":"mutable","name":"state","nameLocation":"2973:5:24","nodeType":"VariableDeclaration","scope":5310,"src":"2961:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"},"typeName":{"id":5300,"nodeType":"UserDefinedTypeName","pathNode":{"id":5299,"name":"PayoutState","nodeType":"IdentifierPath","referencedDeclaration":5234,"src":"2961:11:24"},"referencedDeclaration":5234,"src":"2961:11:24","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"visibility":"internal"},{"constant":false,"id":5303,"mutability":"mutable","name":"amount","nameLocation":"2996:6:24","nodeType":"VariableDeclaration","scope":5310,"src":"2988:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5302,"name":"uint256","nodeType":"ElementaryTypeName","src":"2988:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5305,"mutability":"mutable","name":"data","nameLocation":"3018:4:24","nodeType":"VariableDeclaration","scope":5310,"src":"3012:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5304,"name":"bytes","nodeType":"ElementaryTypeName","src":"3012:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5307,"mutability":"mutable","name":"createdAt","nameLocation":"3040:9:24","nodeType":"VariableDeclaration","scope":5310,"src":"3032:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5306,"name":"uint256","nodeType":"ElementaryTypeName","src":"3032:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5309,"mutability":"mutable","name":"updatedAt","nameLocation":"3067:9:24","nodeType":"VariableDeclaration","scope":5310,"src":"3059:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5308,"name":"uint256","nodeType":"ElementaryTypeName","src":"3059:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Payout","nameLocation":"2919:6:24","nodeType":"StructDefinition","scope":5433,"src":"2912:171:24","visibility":"public"},{"functionSelector":"a1814a1a","id":5321,"implemented":false,"kind":"function","modifiers":[],"name":"createPolicyFlow","nameLocation":"3098:16:24","nodeType":"FunctionDefinition","parameters":{"id":5317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5312,"mutability":"mutable","name":"owner","nameLocation":"3132:5:24","nodeType":"VariableDeclaration","scope":5321,"src":"3124:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5311,"name":"address","nodeType":"ElementaryTypeName","src":"3124:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5314,"mutability":"mutable","name":"productId","nameLocation":"3155:9:24","nodeType":"VariableDeclaration","scope":5321,"src":"3147:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5313,"name":"uint256","nodeType":"ElementaryTypeName","src":"3147:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5316,"mutability":"mutable","name":"data","nameLocation":"3190:4:24","nodeType":"VariableDeclaration","scope":5321,"src":"3175:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5315,"name":"bytes","nodeType":"ElementaryTypeName","src":"3175:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3114:86:24"},"returnParameters":{"id":5320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5319,"mutability":"mutable","name":"processId","nameLocation":"3226:9:24","nodeType":"VariableDeclaration","scope":5321,"src":"3218:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3218:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3217:19:24"},"scope":5433,"src":"3089:148:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"6780336e","id":5332,"implemented":false,"kind":"function","modifiers":[],"name":"createApplication","nameLocation":"3252:17:24","nodeType":"FunctionDefinition","parameters":{"id":5330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5323,"mutability":"mutable","name":"processId","nameLocation":"3287:9:24","nodeType":"VariableDeclaration","scope":5332,"src":"3279:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3279:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5325,"mutability":"mutable","name":"premiumAmount","nameLocation":"3315:13:24","nodeType":"VariableDeclaration","scope":5332,"src":"3307:21:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5324,"name":"uint256","nodeType":"ElementaryTypeName","src":"3307:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5327,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"3346:16:24","nodeType":"VariableDeclaration","scope":5332,"src":"3338:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5326,"name":"uint256","nodeType":"ElementaryTypeName","src":"3338:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5329,"mutability":"mutable","name":"data","nameLocation":"3387:4:24","nodeType":"VariableDeclaration","scope":5332,"src":"3372:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5328,"name":"bytes","nodeType":"ElementaryTypeName","src":"3372:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3269:128:24"},"returnParameters":{"id":5331,"nodeType":"ParameterList","parameters":[],"src":"3406:0:24"},"scope":5433,"src":"3243:164:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"eb96cbed","id":5337,"implemented":false,"kind":"function","modifiers":[],"name":"revokeApplication","nameLocation":"3422:17:24","nodeType":"FunctionDefinition","parameters":{"id":5335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5334,"mutability":"mutable","name":"processId","nameLocation":"3448:9:24","nodeType":"VariableDeclaration","scope":5337,"src":"3440:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3440:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3439:19:24"},"returnParameters":{"id":5336,"nodeType":"ParameterList","parameters":[],"src":"3467:0:24"},"scope":5433,"src":"3413:55:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5c955288","id":5342,"implemented":false,"kind":"function","modifiers":[],"name":"underwriteApplication","nameLocation":"3482:21:24","nodeType":"FunctionDefinition","parameters":{"id":5340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5339,"mutability":"mutable","name":"processId","nameLocation":"3512:9:24","nodeType":"VariableDeclaration","scope":5342,"src":"3504:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3504:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3503:19:24"},"returnParameters":{"id":5341,"nodeType":"ParameterList","parameters":[],"src":"3531:0:24"},"scope":5433,"src":"3473:59:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"296d6c7d","id":5347,"implemented":false,"kind":"function","modifiers":[],"name":"declineApplication","nameLocation":"3546:18:24","nodeType":"FunctionDefinition","parameters":{"id":5345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5344,"mutability":"mutable","name":"processId","nameLocation":"3573:9:24","nodeType":"VariableDeclaration","scope":5347,"src":"3565:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3565:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3564:19:24"},"returnParameters":{"id":5346,"nodeType":"ParameterList","parameters":[],"src":"3592:0:24"},"scope":5433,"src":"3537:56:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e3ebdea5","id":5354,"implemented":false,"kind":"function","modifiers":[],"name":"collectPremium","nameLocation":"3608:14:24","nodeType":"FunctionDefinition","parameters":{"id":5352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5349,"mutability":"mutable","name":"processId","nameLocation":"3631:9:24","nodeType":"VariableDeclaration","scope":5354,"src":"3623:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3623:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5351,"mutability":"mutable","name":"amount","nameLocation":"3650:6:24","nodeType":"VariableDeclaration","scope":5354,"src":"3642:14:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5350,"name":"uint256","nodeType":"ElementaryTypeName","src":"3642:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3622:35:24"},"returnParameters":{"id":5353,"nodeType":"ParameterList","parameters":[],"src":"3666:0:24"},"scope":5433,"src":"3599:68:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"30a73da5","id":5363,"implemented":false,"kind":"function","modifiers":[],"name":"adjustPremiumSumInsured","nameLocation":"3682:23:24","nodeType":"FunctionDefinition","parameters":{"id":5361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5356,"mutability":"mutable","name":"processId","nameLocation":"3723:9:24","nodeType":"VariableDeclaration","scope":5363,"src":"3715:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3715:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5358,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"3751:21:24","nodeType":"VariableDeclaration","scope":5363,"src":"3743:29:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5357,"name":"uint256","nodeType":"ElementaryTypeName","src":"3743:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5360,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"3790:16:24","nodeType":"VariableDeclaration","scope":5363,"src":"3782:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5359,"name":"uint256","nodeType":"ElementaryTypeName","src":"3782:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3705:107:24"},"returnParameters":{"id":5362,"nodeType":"ParameterList","parameters":[],"src":"3821:0:24"},"scope":5433,"src":"3673:149:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4c14ccc2","id":5368,"implemented":false,"kind":"function","modifiers":[],"name":"createPolicy","nameLocation":"3837:12:24","nodeType":"FunctionDefinition","parameters":{"id":5366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5365,"mutability":"mutable","name":"processId","nameLocation":"3858:9:24","nodeType":"VariableDeclaration","scope":5368,"src":"3850:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5364,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3850:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3849:19:24"},"returnParameters":{"id":5367,"nodeType":"ParameterList","parameters":[],"src":"3877:0:24"},"scope":5433,"src":"3828:50:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"47e3b138","id":5373,"implemented":false,"kind":"function","modifiers":[],"name":"expirePolicy","nameLocation":"3892:12:24","nodeType":"FunctionDefinition","parameters":{"id":5371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5370,"mutability":"mutable","name":"processId","nameLocation":"3913:9:24","nodeType":"VariableDeclaration","scope":5373,"src":"3905:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3905:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3904:19:24"},"returnParameters":{"id":5372,"nodeType":"ParameterList","parameters":[],"src":"3932:0:24"},"scope":5433,"src":"3883:50:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"adcadb28","id":5378,"implemented":false,"kind":"function","modifiers":[],"name":"closePolicy","nameLocation":"3947:11:24","nodeType":"FunctionDefinition","parameters":{"id":5376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5375,"mutability":"mutable","name":"processId","nameLocation":"3967:9:24","nodeType":"VariableDeclaration","scope":5378,"src":"3959:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3959:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3958:19:24"},"returnParameters":{"id":5377,"nodeType":"ParameterList","parameters":[],"src":"3986:0:24"},"scope":5433,"src":"3938:49:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"ec935668","id":5389,"implemented":false,"kind":"function","modifiers":[],"name":"createClaim","nameLocation":"4002:11:24","nodeType":"FunctionDefinition","parameters":{"id":5385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5380,"mutability":"mutable","name":"processId","nameLocation":"4031:9:24","nodeType":"VariableDeclaration","scope":5389,"src":"4023:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4023:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5382,"mutability":"mutable","name":"claimAmount","nameLocation":"4059:11:24","nodeType":"VariableDeclaration","scope":5389,"src":"4051:19:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5381,"name":"uint256","nodeType":"ElementaryTypeName","src":"4051:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5384,"mutability":"mutable","name":"data","nameLocation":"4096:4:24","nodeType":"VariableDeclaration","scope":5389,"src":"4081:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5383,"name":"bytes","nodeType":"ElementaryTypeName","src":"4081:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4013:93:24"},"returnParameters":{"id":5388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5387,"mutability":"mutable","name":"claimId","nameLocation":"4133:7:24","nodeType":"VariableDeclaration","scope":5389,"src":"4125:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5386,"name":"uint256","nodeType":"ElementaryTypeName","src":"4125:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4124:17:24"},"scope":5433,"src":"3993:149:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4e02c63f","id":5398,"implemented":false,"kind":"function","modifiers":[],"name":"confirmClaim","nameLocation":"4157:12:24","nodeType":"FunctionDefinition","parameters":{"id":5396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5391,"mutability":"mutable","name":"processId","nameLocation":"4187:9:24","nodeType":"VariableDeclaration","scope":5398,"src":"4179:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5390,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4179:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5393,"mutability":"mutable","name":"claimId","nameLocation":"4215:7:24","nodeType":"VariableDeclaration","scope":5398,"src":"4207:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5392,"name":"uint256","nodeType":"ElementaryTypeName","src":"4207:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5395,"mutability":"mutable","name":"confirmedAmount","nameLocation":"4241:15:24","nodeType":"VariableDeclaration","scope":5398,"src":"4233:23:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5394,"name":"uint256","nodeType":"ElementaryTypeName","src":"4233:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4169:93:24"},"returnParameters":{"id":5397,"nodeType":"ParameterList","parameters":[],"src":"4271:0:24"},"scope":5433,"src":"4148:124:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4cda0de9","id":5405,"implemented":false,"kind":"function","modifiers":[],"name":"declineClaim","nameLocation":"4287:12:24","nodeType":"FunctionDefinition","parameters":{"id":5403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5400,"mutability":"mutable","name":"processId","nameLocation":"4308:9:24","nodeType":"VariableDeclaration","scope":5405,"src":"4300:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4300:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5402,"mutability":"mutable","name":"claimId","nameLocation":"4327:7:24","nodeType":"VariableDeclaration","scope":5405,"src":"4319:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5401,"name":"uint256","nodeType":"ElementaryTypeName","src":"4319:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4299:36:24"},"returnParameters":{"id":5404,"nodeType":"ParameterList","parameters":[],"src":"4344:0:24"},"scope":5433,"src":"4278:67:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7f29dba2","id":5412,"implemented":false,"kind":"function","modifiers":[],"name":"closeClaim","nameLocation":"4359:10:24","nodeType":"FunctionDefinition","parameters":{"id":5410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5407,"mutability":"mutable","name":"processId","nameLocation":"4378:9:24","nodeType":"VariableDeclaration","scope":5412,"src":"4370:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5406,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4370:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5409,"mutability":"mutable","name":"claimId","nameLocation":"4397:7:24","nodeType":"VariableDeclaration","scope":5412,"src":"4389:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5408,"name":"uint256","nodeType":"ElementaryTypeName","src":"4389:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4369:36:24"},"returnParameters":{"id":5411,"nodeType":"ParameterList","parameters":[],"src":"4414:0:24"},"scope":5433,"src":"4350:65:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"db42b77b","id":5425,"implemented":false,"kind":"function","modifiers":[],"name":"createPayout","nameLocation":"4430:12:24","nodeType":"FunctionDefinition","parameters":{"id":5421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5414,"mutability":"mutable","name":"processId","nameLocation":"4460:9:24","nodeType":"VariableDeclaration","scope":5425,"src":"4452:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4452:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5416,"mutability":"mutable","name":"claimId","nameLocation":"4487:7:24","nodeType":"VariableDeclaration","scope":5425,"src":"4479:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5415,"name":"uint256","nodeType":"ElementaryTypeName","src":"4479:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5418,"mutability":"mutable","name":"payoutAmount","nameLocation":"4512:12:24","nodeType":"VariableDeclaration","scope":5425,"src":"4504:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5417,"name":"uint256","nodeType":"ElementaryTypeName","src":"4504:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5420,"mutability":"mutable","name":"data","nameLocation":"4549:4:24","nodeType":"VariableDeclaration","scope":5425,"src":"4534:19:24","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5419,"name":"bytes","nodeType":"ElementaryTypeName","src":"4534:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4442:117:24"},"returnParameters":{"id":5424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5423,"mutability":"mutable","name":"payoutId","nameLocation":"4586:8:24","nodeType":"VariableDeclaration","scope":5425,"src":"4578:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5422,"name":"uint256","nodeType":"ElementaryTypeName","src":"4578:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4577:18:24"},"scope":5433,"src":"4421:175:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fe64372b","id":5432,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"4611:13:24","nodeType":"FunctionDefinition","parameters":{"id":5430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5427,"mutability":"mutable","name":"processId","nameLocation":"4642:9:24","nodeType":"VariableDeclaration","scope":5432,"src":"4634:17:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4634:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5429,"mutability":"mutable","name":"payoutId","nameLocation":"4669:8:24","nodeType":"VariableDeclaration","scope":5432,"src":"4661:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5428,"name":"uint256","nodeType":"ElementaryTypeName","src":"4661:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4624:59:24"},"returnParameters":{"id":5431,"nodeType":"ParameterList","parameters":[],"src":"4692:0:24"},"scope":5433,"src":"4602:91:24","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5434,"src":"63:4632:24"}],"src":"39:4657:24"},"id":24},"@etherisc/gif-interface/contracts/modules/IPool.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPool.sol","exportedSymbols":{"IPool":[5549]},"id":5550,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5435,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:25"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5549,"linearizedBaseContracts":[5549],"name":"IPool","nameLocation":"73:5:25","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":5447,"name":"LogRiskpoolRegistered","nameLocation":"92:21:25","nodeType":"EventDefinition","parameters":{"id":5446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5437,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"131:10:25","nodeType":"VariableDeclaration","scope":5447,"src":"123:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5436,"name":"uint256","nodeType":"ElementaryTypeName","src":"123:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5439,"indexed":false,"mutability":"mutable","name":"wallet","nameLocation":"160:6:25","nodeType":"VariableDeclaration","scope":5447,"src":"152:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5438,"name":"address","nodeType":"ElementaryTypeName","src":"152:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5441,"indexed":false,"mutability":"mutable","name":"erc20Token","nameLocation":"184:10:25","nodeType":"VariableDeclaration","scope":5447,"src":"176:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5440,"name":"address","nodeType":"ElementaryTypeName","src":"176:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5443,"indexed":false,"mutability":"mutable","name":"collateralizationLevel","nameLocation":"213:22:25","nodeType":"VariableDeclaration","scope":5447,"src":"205:30:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5442,"name":"uint256","nodeType":"ElementaryTypeName","src":"205:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5445,"indexed":false,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"254:18:25","nodeType":"VariableDeclaration","scope":5447,"src":"246:26:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5444,"name":"uint256","nodeType":"ElementaryTypeName","src":"246:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"113:165:25"},"src":"86:193:25"},{"anonymous":false,"id":5455,"name":"LogRiskpoolRequiredCollateral","nameLocation":"295:29:25","nodeType":"EventDefinition","parameters":{"id":5454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5449,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"333:9:25","nodeType":"VariableDeclaration","scope":5455,"src":"325:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"325:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5451,"indexed":false,"mutability":"mutable","name":"sumInsured","nameLocation":"352:10:25","nodeType":"VariableDeclaration","scope":5455,"src":"344:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5450,"name":"uint256","nodeType":"ElementaryTypeName","src":"344:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5453,"indexed":false,"mutability":"mutable","name":"collateral","nameLocation":"372:10:25","nodeType":"VariableDeclaration","scope":5455,"src":"364:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5452,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"324:59:25"},"src":"289:95:25"},{"anonymous":false,"id":5463,"name":"LogRiskpoolCollateralizationFailed","nameLocation":"395:34:25","nodeType":"EventDefinition","parameters":{"id":5462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5457,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"438:10:25","nodeType":"VariableDeclaration","scope":5463,"src":"430:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5456,"name":"uint256","nodeType":"ElementaryTypeName","src":"430:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5459,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"458:9:25","nodeType":"VariableDeclaration","scope":5463,"src":"450:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"450:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5461,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"477:6:25","nodeType":"VariableDeclaration","scope":5463,"src":"469:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5460,"name":"uint256","nodeType":"ElementaryTypeName","src":"469:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"429:55:25"},"src":"389:96:25"},{"anonymous":false,"id":5471,"name":"LogRiskpoolCollateralizationSucceeded","nameLocation":"496:37:25","nodeType":"EventDefinition","parameters":{"id":5470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5465,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"542:10:25","nodeType":"VariableDeclaration","scope":5471,"src":"534:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5464,"name":"uint256","nodeType":"ElementaryTypeName","src":"534:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5467,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"562:9:25","nodeType":"VariableDeclaration","scope":5471,"src":"554:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5466,"name":"bytes32","nodeType":"ElementaryTypeName","src":"554:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5469,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"581:6:25","nodeType":"VariableDeclaration","scope":5471,"src":"573:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5468,"name":"uint256","nodeType":"ElementaryTypeName","src":"573:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"533:55:25"},"src":"490:99:25"},{"anonymous":false,"id":5479,"name":"LogRiskpoolCollateralReleased","nameLocation":"600:29:25","nodeType":"EventDefinition","parameters":{"id":5478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5473,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"638:10:25","nodeType":"VariableDeclaration","scope":5479,"src":"630:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5472,"name":"uint256","nodeType":"ElementaryTypeName","src":"630:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5475,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"658:9:25","nodeType":"VariableDeclaration","scope":5479,"src":"650:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5474,"name":"bytes32","nodeType":"ElementaryTypeName","src":"650:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5477,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"677:6:25","nodeType":"VariableDeclaration","scope":5479,"src":"669:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5476,"name":"uint256","nodeType":"ElementaryTypeName","src":"669:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"629:55:25"},"src":"594:91:25"},{"canonicalName":"IPool.Pool","id":5502,"members":[{"constant":false,"id":5481,"mutability":"mutable","name":"id","nameLocation":"721:2:25","nodeType":"VariableDeclaration","scope":5502,"src":"713:10:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5480,"name":"uint256","nodeType":"ElementaryTypeName","src":"713:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5483,"mutability":"mutable","name":"wallet","nameLocation":"777:6:25","nodeType":"VariableDeclaration","scope":5502,"src":"769:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5482,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5485,"mutability":"mutable","name":"erc20Token","nameLocation":"820:10:25","nodeType":"VariableDeclaration","scope":5502,"src":"812:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5484,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5487,"mutability":"mutable","name":"collateralizationLevel","nameLocation":"883:22:25","nodeType":"VariableDeclaration","scope":5502,"src":"875:30:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5486,"name":"uint256","nodeType":"ElementaryTypeName","src":"875:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5489,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"982:18:25","nodeType":"VariableDeclaration","scope":5502,"src":"974:26:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5488,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5491,"mutability":"mutable","name":"sumOfSumInsuredAtRisk","nameLocation":"1074:21:25","nodeType":"VariableDeclaration","scope":5502,"src":"1066:29:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5490,"name":"uint256","nodeType":"ElementaryTypeName","src":"1066:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5493,"mutability":"mutable","name":"capital","nameLocation":"1164:7:25","nodeType":"VariableDeclaration","scope":5502,"src":"1156:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5492,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5495,"mutability":"mutable","name":"lockedCapital","nameLocation":"1235:13:25","nodeType":"VariableDeclaration","scope":5502,"src":"1227:21:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1227:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5497,"mutability":"mutable","name":"balance","nameLocation":"1347:7:25","nodeType":"VariableDeclaration","scope":5502,"src":"1339:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5496,"name":"uint256","nodeType":"ElementaryTypeName","src":"1339:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5499,"mutability":"mutable","name":"createdAt","nameLocation":"1446:9:25","nodeType":"VariableDeclaration","scope":5502,"src":"1438:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5498,"name":"uint256","nodeType":"ElementaryTypeName","src":"1438:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5501,"mutability":"mutable","name":"updatedAt","nameLocation":"1473:9:25","nodeType":"VariableDeclaration","scope":5502,"src":"1465:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5500,"name":"uint256","nodeType":"ElementaryTypeName","src":"1465:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Pool","nameLocation":"698:4:25","nodeType":"StructDefinition","scope":5549,"src":"691:798:25","visibility":"public"},{"functionSelector":"57419e8f","id":5515,"implemented":false,"kind":"function","modifiers":[],"name":"registerRiskpool","nameLocation":"1504:16:25","nodeType":"FunctionDefinition","parameters":{"id":5513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5504,"mutability":"mutable","name":"riskpoolId","nameLocation":"1538:10:25","nodeType":"VariableDeclaration","scope":5515,"src":"1530:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1530:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5506,"mutability":"mutable","name":"wallet","nameLocation":"1567:6:25","nodeType":"VariableDeclaration","scope":5515,"src":"1559:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5505,"name":"address","nodeType":"ElementaryTypeName","src":"1559:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5508,"mutability":"mutable","name":"erc20Token","nameLocation":"1591:10:25","nodeType":"VariableDeclaration","scope":5515,"src":"1583:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5507,"name":"address","nodeType":"ElementaryTypeName","src":"1583:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5510,"mutability":"mutable","name":"collateralizationLevel","nameLocation":"1619:22:25","nodeType":"VariableDeclaration","scope":5515,"src":"1611:30:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5509,"name":"uint256","nodeType":"ElementaryTypeName","src":"1611:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5512,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"1660:18:25","nodeType":"VariableDeclaration","scope":5515,"src":"1652:26:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5511,"name":"uint256","nodeType":"ElementaryTypeName","src":"1652:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1520:164:25"},"returnParameters":{"id":5514,"nodeType":"ParameterList","parameters":[],"src":"1693:0:25"},"scope":5549,"src":"1495:199:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"f93b3673","id":5522,"implemented":false,"kind":"function","modifiers":[],"name":"setRiskpoolForProduct","nameLocation":"1709:21:25","nodeType":"FunctionDefinition","parameters":{"id":5520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5517,"mutability":"mutable","name":"productId","nameLocation":"1739:9:25","nodeType":"VariableDeclaration","scope":5522,"src":"1731:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1731:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5519,"mutability":"mutable","name":"riskpoolId","nameLocation":"1758:10:25","nodeType":"VariableDeclaration","scope":5522,"src":"1750:18:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5518,"name":"uint256","nodeType":"ElementaryTypeName","src":"1750:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1730:39:25"},"returnParameters":{"id":5521,"nodeType":"ParameterList","parameters":[],"src":"1778:0:25"},"scope":5549,"src":"1700:79:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1b07b17f","id":5529,"implemented":false,"kind":"function","modifiers":[],"name":"underwrite","nameLocation":"1794:10:25","nodeType":"FunctionDefinition","parameters":{"id":5525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5524,"mutability":"mutable","name":"processId","nameLocation":"1813:9:25","nodeType":"VariableDeclaration","scope":5529,"src":"1805:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1805:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1804:19:25"},"returnParameters":{"id":5528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5527,"mutability":"mutable","name":"success","nameLocation":"1846:7:25","nodeType":"VariableDeclaration","scope":5529,"src":"1841:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5526,"name":"bool","nodeType":"ElementaryTypeName","src":"1841:4:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1840:14:25"},"scope":5549,"src":"1785:70:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"02108268","id":5536,"implemented":false,"kind":"function","modifiers":[],"name":"processPremium","nameLocation":"1869:14:25","nodeType":"FunctionDefinition","parameters":{"id":5534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5531,"mutability":"mutable","name":"processId","nameLocation":"1892:9:25","nodeType":"VariableDeclaration","scope":5536,"src":"1884:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1884:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5533,"mutability":"mutable","name":"amount","nameLocation":"1911:6:25","nodeType":"VariableDeclaration","scope":5536,"src":"1903:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5532,"name":"uint256","nodeType":"ElementaryTypeName","src":"1903:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1883:35:25"},"returnParameters":{"id":5535,"nodeType":"ParameterList","parameters":[],"src":"1927:0:25"},"scope":5549,"src":"1860:68:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fe64372b","id":5543,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"1942:13:25","nodeType":"FunctionDefinition","parameters":{"id":5541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5538,"mutability":"mutable","name":"processId","nameLocation":"1964:9:25","nodeType":"VariableDeclaration","scope":5543,"src":"1956:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1956:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5540,"mutability":"mutable","name":"amount","nameLocation":"1983:6:25","nodeType":"VariableDeclaration","scope":5543,"src":"1975:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5539,"name":"uint256","nodeType":"ElementaryTypeName","src":"1975:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1955:35:25"},"returnParameters":{"id":5542,"nodeType":"ParameterList","parameters":[],"src":"1999:0:25"},"scope":5549,"src":"1933:67:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"67d42a8b","id":5548,"implemented":false,"kind":"function","modifiers":[],"name":"release","nameLocation":"2014:7:25","nodeType":"FunctionDefinition","parameters":{"id":5546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5545,"mutability":"mutable","name":"processId","nameLocation":"2030:9:25","nodeType":"VariableDeclaration","scope":5548,"src":"2022:17:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2022:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2021:19:25"},"returnParameters":{"id":5547,"nodeType":"ParameterList","parameters":[],"src":"2049:0:25"},"scope":5549,"src":"2005:45:25","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5550,"src":"63:1990:25"}],"src":"39:2015:25"},"id":25},"@etherisc/gif-interface/contracts/modules/IQuery.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IQuery.sol","exportedSymbols":{"IQuery":[5616]},"id":5617,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5551,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:26"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5616,"linearizedBaseContracts":[5616],"name":"IQuery","nameLocation":"73:6:26","nodeType":"ContractDefinition","nodes":[{"canonicalName":"IQuery.OracleRequest","id":5564,"members":[{"constant":false,"id":5553,"mutability":"mutable","name":"processId","nameLocation":"126:9:26","nodeType":"VariableDeclaration","scope":5564,"src":"118:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"118:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5555,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"153:19:26","nodeType":"VariableDeclaration","scope":5564,"src":"145:27:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5554,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5557,"mutability":"mutable","name":"callbackContractAddress","nameLocation":"190:23:26","nodeType":"VariableDeclaration","scope":5564,"src":"182:31:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5556,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5559,"mutability":"mutable","name":"callbackMethodName","nameLocation":"230:18:26","nodeType":"VariableDeclaration","scope":5564,"src":"223:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":5558,"name":"string","nodeType":"ElementaryTypeName","src":"223:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5561,"mutability":"mutable","name":"data","nameLocation":"264:4:26","nodeType":"VariableDeclaration","scope":5564,"src":"258:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5560,"name":"bytes","nodeType":"ElementaryTypeName","src":"258:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5563,"mutability":"mutable","name":"createdAt","nameLocation":"286:9:26","nodeType":"VariableDeclaration","scope":5564,"src":"278:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5562,"name":"uint256","nodeType":"ElementaryTypeName","src":"278:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"OracleRequest","nameLocation":"94:13:26","nodeType":"StructDefinition","scope":5616,"src":"87:215:26","visibility":"public"},{"anonymous":false,"id":5572,"name":"LogOracleRequested","nameLocation":"314:18:26","nodeType":"EventDefinition","parameters":{"id":5571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5566,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"350:9:26","nodeType":"VariableDeclaration","scope":5572,"src":"342:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5568,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"377:9:26","nodeType":"VariableDeclaration","scope":5572,"src":"369:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5567,"name":"uint256","nodeType":"ElementaryTypeName","src":"369:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5570,"indexed":false,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"404:19:26","nodeType":"VariableDeclaration","scope":5572,"src":"396:27:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5569,"name":"uint256","nodeType":"ElementaryTypeName","src":"396:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"332:97:26"},"src":"308:122:26"},{"anonymous":false,"id":5582,"name":"LogOracleResponded","nameLocation":"442:18:26","nodeType":"EventDefinition","parameters":{"id":5581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5574,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"478:9:26","nodeType":"VariableDeclaration","scope":5582,"src":"470:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"470:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5576,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"505:9:26","nodeType":"VariableDeclaration","scope":5582,"src":"497:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5575,"name":"uint256","nodeType":"ElementaryTypeName","src":"497:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5578,"indexed":false,"mutability":"mutable","name":"responder","nameLocation":"532:9:26","nodeType":"VariableDeclaration","scope":5582,"src":"524:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5577,"name":"address","nodeType":"ElementaryTypeName","src":"524:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5580,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"556:7:26","nodeType":"VariableDeclaration","scope":5582,"src":"551:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5579,"name":"bool","nodeType":"ElementaryTypeName","src":"551:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"460:109:26"},"src":"436:134:26"},{"anonymous":false,"id":5586,"name":"LogOracleCanceled","nameLocation":"582:17:26","nodeType":"EventDefinition","parameters":{"id":5585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5584,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"617:9:26","nodeType":"VariableDeclaration","scope":5586,"src":"609:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5583,"name":"uint256","nodeType":"ElementaryTypeName","src":"609:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"599:33:26"},"src":"576:57:26"},{"functionSelector":"2c933f22","id":5601,"implemented":false,"kind":"function","modifiers":[],"name":"request","nameLocation":"648:7:26","nodeType":"FunctionDefinition","parameters":{"id":5597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5588,"mutability":"mutable","name":"processId","nameLocation":"673:9:26","nodeType":"VariableDeclaration","scope":5601,"src":"665:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"665:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5590,"mutability":"mutable","name":"input","nameLocation":"707:5:26","nodeType":"VariableDeclaration","scope":5601,"src":"692:20:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5589,"name":"bytes","nodeType":"ElementaryTypeName","src":"692:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5592,"mutability":"mutable","name":"callbackMethodName","nameLocation":"738:18:26","nodeType":"VariableDeclaration","scope":5601,"src":"722:34:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":5591,"name":"string","nodeType":"ElementaryTypeName","src":"722:6:26","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5594,"mutability":"mutable","name":"callbackContractAddress","nameLocation":"774:23:26","nodeType":"VariableDeclaration","scope":5601,"src":"766:31:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5593,"name":"address","nodeType":"ElementaryTypeName","src":"766:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5596,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"815:19:26","nodeType":"VariableDeclaration","scope":5601,"src":"807:27:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5595,"name":"uint256","nodeType":"ElementaryTypeName","src":"807:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"655:185:26"},"returnParameters":{"id":5600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5599,"mutability":"mutable","name":"requestId","nameLocation":"867:9:26","nodeType":"VariableDeclaration","scope":5601,"src":"859:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5598,"name":"uint256","nodeType":"ElementaryTypeName","src":"859:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"858:19:26"},"scope":5616,"src":"639:239:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"9af8c4ba","id":5610,"implemented":false,"kind":"function","modifiers":[],"name":"respond","nameLocation":"893:7:26","nodeType":"FunctionDefinition","parameters":{"id":5608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5603,"mutability":"mutable","name":"requestId","nameLocation":"918:9:26","nodeType":"VariableDeclaration","scope":5610,"src":"910:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5602,"name":"uint256","nodeType":"ElementaryTypeName","src":"910:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5605,"mutability":"mutable","name":"responder","nameLocation":"945:9:26","nodeType":"VariableDeclaration","scope":5610,"src":"937:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5604,"name":"address","nodeType":"ElementaryTypeName","src":"937:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5607,"mutability":"mutable","name":"data","nameLocation":"979:4:26","nodeType":"VariableDeclaration","scope":5610,"src":"964:19:26","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5606,"name":"bytes","nodeType":"ElementaryTypeName","src":"964:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"900:89:26"},"returnParameters":{"id":5609,"nodeType":"ParameterList","parameters":[],"src":"998:0:26"},"scope":5616,"src":"884:115:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"40e58ee5","id":5615,"implemented":false,"kind":"function","modifiers":[],"name":"cancel","nameLocation":"1014:6:26","nodeType":"FunctionDefinition","parameters":{"id":5613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5612,"mutability":"mutable","name":"requestId","nameLocation":"1029:9:26","nodeType":"VariableDeclaration","scope":5615,"src":"1021:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1020:19:26"},"returnParameters":{"id":5614,"nodeType":"ParameterList","parameters":[],"src":"1048:0:26"},"scope":5616,"src":"1005:44:26","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":5617,"src":"63:989:26"}],"src":"39:1014:26"},"id":26},"@etherisc/gif-interface/contracts/modules/IRegistry.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","exportedSymbols":{"IRegistry":[5714]},"id":5715,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5618,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:27"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5714,"linearizedBaseContracts":[5714],"name":"IRegistry","nameLocation":"73:9:27","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":5628,"name":"LogContractRegistered","nameLocation":"96:21:27","nodeType":"EventDefinition","parameters":{"id":5627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5620,"indexed":false,"mutability":"mutable","name":"release","nameLocation":"135:7:27","nodeType":"VariableDeclaration","scope":5628,"src":"127:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"127:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5622,"indexed":false,"mutability":"mutable","name":"contractName","nameLocation":"160:12:27","nodeType":"VariableDeclaration","scope":5628,"src":"152:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"152:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5624,"indexed":false,"mutability":"mutable","name":"contractAddress","nameLocation":"190:15:27","nodeType":"VariableDeclaration","scope":5628,"src":"182:23:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5623,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5626,"indexed":false,"mutability":"mutable","name":"isNew","nameLocation":"220:5:27","nodeType":"VariableDeclaration","scope":5628,"src":"215:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5625,"name":"bool","nodeType":"ElementaryTypeName","src":"215:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"117:114:27"},"src":"90:142:27"},{"anonymous":false,"id":5634,"name":"LogContractDeregistered","nameLocation":"244:23:27","nodeType":"EventDefinition","parameters":{"id":5633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5630,"indexed":false,"mutability":"mutable","name":"release","nameLocation":"276:7:27","nodeType":"VariableDeclaration","scope":5634,"src":"268:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5632,"indexed":false,"mutability":"mutable","name":"contractName","nameLocation":"293:12:27","nodeType":"VariableDeclaration","scope":5634,"src":"285:20:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"267:39:27"},"src":"238:69:27"},{"anonymous":false,"id":5638,"name":"LogReleasePrepared","nameLocation":"319:18:27","nodeType":"EventDefinition","parameters":{"id":5637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5636,"indexed":false,"mutability":"mutable","name":"release","nameLocation":"346:7:27","nodeType":"VariableDeclaration","scope":5638,"src":"338:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"338:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"337:17:27"},"src":"313:42:27"},{"functionSelector":"1d5e7314","id":5647,"implemented":false,"kind":"function","modifiers":[],"name":"registerInRelease","nameLocation":"370:17:27","nodeType":"FunctionDefinition","parameters":{"id":5645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5640,"mutability":"mutable","name":"_release","nameLocation":"405:8:27","nodeType":"VariableDeclaration","scope":5647,"src":"397:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"397:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5642,"mutability":"mutable","name":"_contractName","nameLocation":"431:13:27","nodeType":"VariableDeclaration","scope":5647,"src":"423:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"423:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5644,"mutability":"mutable","name":"_contractAddress","nameLocation":"462:16:27","nodeType":"VariableDeclaration","scope":5647,"src":"454:24:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5643,"name":"address","nodeType":"ElementaryTypeName","src":"454:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"387:97:27"},"returnParameters":{"id":5646,"nodeType":"ParameterList","parameters":[],"src":"493:0:27"},"scope":5714,"src":"361:133:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d22057a9","id":5654,"implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"509:8:27","nodeType":"FunctionDefinition","parameters":{"id":5652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5649,"mutability":"mutable","name":"_contractName","nameLocation":"526:13:27","nodeType":"VariableDeclaration","scope":5654,"src":"518:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"518:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5651,"mutability":"mutable","name":"_contractAddress","nameLocation":"549:16:27","nodeType":"VariableDeclaration","scope":5654,"src":"541:24:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5650,"name":"address","nodeType":"ElementaryTypeName","src":"541:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"517:49:27"},"returnParameters":{"id":5653,"nodeType":"ParameterList","parameters":[],"src":"575:0:27"},"scope":5714,"src":"500:76:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"dc527b08","id":5661,"implemented":false,"kind":"function","modifiers":[],"name":"deregisterInRelease","nameLocation":"591:19:27","nodeType":"FunctionDefinition","parameters":{"id":5659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5656,"mutability":"mutable","name":"_release","nameLocation":"619:8:27","nodeType":"VariableDeclaration","scope":5661,"src":"611:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"611:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5658,"mutability":"mutable","name":"_contractName","nameLocation":"637:13:27","nodeType":"VariableDeclaration","scope":5661,"src":"629:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5657,"name":"bytes32","nodeType":"ElementaryTypeName","src":"629:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"610:41:27"},"returnParameters":{"id":5660,"nodeType":"ParameterList","parameters":[],"src":"668:0:27"},"scope":5714,"src":"582:87:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"20813154","id":5666,"implemented":false,"kind":"function","modifiers":[],"name":"deregister","nameLocation":"684:10:27","nodeType":"FunctionDefinition","parameters":{"id":5664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5663,"mutability":"mutable","name":"_contractName","nameLocation":"703:13:27","nodeType":"VariableDeclaration","scope":5666,"src":"695:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"695:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"694:23:27"},"returnParameters":{"id":5665,"nodeType":"ParameterList","parameters":[],"src":"726:0:27"},"scope":5714,"src":"675:52:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"893917ea","id":5671,"implemented":false,"kind":"function","modifiers":[],"name":"prepareRelease","nameLocation":"742:14:27","nodeType":"FunctionDefinition","parameters":{"id":5669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5668,"mutability":"mutable","name":"_newRelease","nameLocation":"765:11:27","nodeType":"VariableDeclaration","scope":5671,"src":"757:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"757:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"756:21:27"},"returnParameters":{"id":5670,"nodeType":"ParameterList","parameters":[],"src":"786:0:27"},"scope":5714,"src":"733:54:27","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b0ef18a0","id":5680,"implemented":false,"kind":"function","modifiers":[],"name":"getContractInRelease","nameLocation":"802:20:27","nodeType":"FunctionDefinition","parameters":{"id":5676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5673,"mutability":"mutable","name":"_release","nameLocation":"831:8:27","nodeType":"VariableDeclaration","scope":5680,"src":"823:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"823:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5675,"mutability":"mutable","name":"_contractName","nameLocation":"849:13:27","nodeType":"VariableDeclaration","scope":5680,"src":"841:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"841:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"822:41:27"},"returnParameters":{"id":5679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5678,"mutability":"mutable","name":"_contractAddress","nameLocation":"919:16:27","nodeType":"VariableDeclaration","scope":5680,"src":"911:24:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5677,"name":"address","nodeType":"ElementaryTypeName","src":"911:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"910:26:27"},"scope":5714,"src":"793:144:27","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e16c7d98","id":5687,"implemented":false,"kind":"function","modifiers":[],"name":"getContract","nameLocation":"952:11:27","nodeType":"FunctionDefinition","parameters":{"id":5683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5682,"mutability":"mutable","name":"_contractName","nameLocation":"972:13:27","nodeType":"VariableDeclaration","scope":5687,"src":"964:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5681,"name":"bytes32","nodeType":"ElementaryTypeName","src":"964:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"963:23:27"},"returnParameters":{"id":5686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5685,"mutability":"mutable","name":"_contractAddress","nameLocation":"1042:16:27","nodeType":"VariableDeclaration","scope":5687,"src":"1034:24:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5684,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1033:26:27"},"scope":5714,"src":"943:117:27","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"76b707b7","id":5692,"implemented":false,"kind":"function","modifiers":[],"name":"getRelease","nameLocation":"1075:10:27","nodeType":"FunctionDefinition","parameters":{"id":5688,"nodeType":"ParameterList","parameters":[],"src":"1085:2:27"},"returnParameters":{"id":5691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5690,"mutability":"mutable","name":"_release","nameLocation":"1119:8:27","nodeType":"VariableDeclaration","scope":5692,"src":"1111:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1111:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1110:18:27"},"scope":5714,"src":"1066:63:27","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2ca65a79","id":5701,"implemented":false,"kind":"function","modifiers":[],"name":"ensureSender","nameLocation":"1144:12:27","nodeType":"FunctionDefinition","parameters":{"id":5697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5694,"mutability":"mutable","name":"sender","nameLocation":"1165:6:27","nodeType":"VariableDeclaration","scope":5701,"src":"1157:14:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5693,"name":"address","nodeType":"ElementaryTypeName","src":"1157:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5696,"mutability":"mutable","name":"_contractName","nameLocation":"1181:13:27","nodeType":"VariableDeclaration","scope":5701,"src":"1173:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1173:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1156:39:27"},"returnParameters":{"id":5700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5699,"mutability":"mutable","name":"_senderMatches","nameLocation":"1223:14:27","nodeType":"VariableDeclaration","scope":5701,"src":"1218:19:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5698,"name":"bool","nodeType":"ElementaryTypeName","src":"1218:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1217:21:27"},"scope":5714,"src":"1135:104:27","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6c0f79b6","id":5706,"implemented":false,"kind":"function","modifiers":[],"name":"contracts","nameLocation":"1254:9:27","nodeType":"FunctionDefinition","parameters":{"id":5702,"nodeType":"ParameterList","parameters":[],"src":"1263:2:27"},"returnParameters":{"id":5705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5704,"mutability":"mutable","name":"_numberOfContracts","nameLocation":"1297:18:27","nodeType":"VariableDeclaration","scope":5706,"src":"1289:26:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5703,"name":"uint256","nodeType":"ElementaryTypeName","src":"1289:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1288:28:27"},"scope":5714,"src":"1245:72:27","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f6b3e7d0","id":5713,"implemented":false,"kind":"function","modifiers":[],"name":"contractName","nameLocation":"1332:12:27","nodeType":"FunctionDefinition","parameters":{"id":5709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5708,"mutability":"mutable","name":"idx","nameLocation":"1353:3:27","nodeType":"VariableDeclaration","scope":5713,"src":"1345:11:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5707,"name":"uint256","nodeType":"ElementaryTypeName","src":"1345:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1344:13:27"},"returnParameters":{"id":5712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5711,"mutability":"mutable","name":"_contractName","nameLocation":"1389:13:27","nodeType":"VariableDeclaration","scope":5713,"src":"1381:21:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1381:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1380:23:27"},"scope":5714,"src":"1323:81:27","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5715,"src":"63:1344:27"}],"src":"39:1369:27"},"id":27},"@etherisc/gif-interface/contracts/modules/ITreasury.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","exportedSymbols":{"IERC20":[8831],"ITreasury":[5974]},"id":5975,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5716,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:28"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":5717,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":5975,"sourceUnit":8832,"src":"62:56:28","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":5974,"linearizedBaseContracts":[5974],"name":"ITreasury","nameLocation":"130:9:28","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":5719,"name":"LogTreasurySuspended","nameLocation":"153:20:28","nodeType":"EventDefinition","parameters":{"id":5718,"nodeType":"ParameterList","parameters":[],"src":"173:2:28"},"src":"147:29:28"},{"anonymous":false,"id":5721,"name":"LogTreasuryResumed","nameLocation":"187:18:28","nodeType":"EventDefinition","parameters":{"id":5720,"nodeType":"ParameterList","parameters":[],"src":"205:2:28"},"src":"181:27:28"},{"anonymous":false,"id":5729,"name":"LogTreasuryProductTokenSet","nameLocation":"220:26:28","nodeType":"EventDefinition","parameters":{"id":5728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5723,"indexed":false,"mutability":"mutable","name":"productId","nameLocation":"255:9:28","nodeType":"VariableDeclaration","scope":5729,"src":"247:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5722,"name":"uint256","nodeType":"ElementaryTypeName","src":"247:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5725,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"274:10:28","nodeType":"VariableDeclaration","scope":5729,"src":"266:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5724,"name":"uint256","nodeType":"ElementaryTypeName","src":"266:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5727,"indexed":false,"mutability":"mutable","name":"erc20Address","nameLocation":"294:12:28","nodeType":"VariableDeclaration","scope":5729,"src":"286:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5726,"name":"address","nodeType":"ElementaryTypeName","src":"286:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"246:61:28"},"src":"214:94:28"},{"anonymous":false,"id":5733,"name":"LogTreasuryInstanceWalletSet","nameLocation":"319:28:28","nodeType":"EventDefinition","parameters":{"id":5732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5731,"indexed":false,"mutability":"mutable","name":"walletAddress","nameLocation":"356:13:28","nodeType":"VariableDeclaration","scope":5733,"src":"348:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5730,"name":"address","nodeType":"ElementaryTypeName","src":"348:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"347:23:28"},"src":"313:58:28"},{"anonymous":false,"id":5739,"name":"LogTreasuryRiskpoolWalletSet","nameLocation":"382:28:28","nodeType":"EventDefinition","parameters":{"id":5738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5735,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"419:10:28","nodeType":"VariableDeclaration","scope":5739,"src":"411:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5734,"name":"uint256","nodeType":"ElementaryTypeName","src":"411:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5737,"indexed":false,"mutability":"mutable","name":"walletAddress","nameLocation":"439:13:28","nodeType":"VariableDeclaration","scope":5739,"src":"431:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5736,"name":"address","nodeType":"ElementaryTypeName","src":"431:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"410:43:28"},"src":"376:78:28"},{"anonymous":false,"id":5747,"name":"LogTreasuryPremiumFeesSet","nameLocation":"466:25:28","nodeType":"EventDefinition","parameters":{"id":5746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5741,"indexed":false,"mutability":"mutable","name":"productId","nameLocation":"500:9:28","nodeType":"VariableDeclaration","scope":5747,"src":"492:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5740,"name":"uint256","nodeType":"ElementaryTypeName","src":"492:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5743,"indexed":false,"mutability":"mutable","name":"fixedFee","nameLocation":"519:8:28","nodeType":"VariableDeclaration","scope":5747,"src":"511:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5742,"name":"uint256","nodeType":"ElementaryTypeName","src":"511:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5745,"indexed":false,"mutability":"mutable","name":"fractionalFee","nameLocation":"537:13:28","nodeType":"VariableDeclaration","scope":5747,"src":"529:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5744,"name":"uint256","nodeType":"ElementaryTypeName","src":"529:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"491:60:28"},"src":"460:92:28"},{"anonymous":false,"id":5755,"name":"LogTreasuryCapitalFeesSet","nameLocation":"563:25:28","nodeType":"EventDefinition","parameters":{"id":5754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5749,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"597:10:28","nodeType":"VariableDeclaration","scope":5755,"src":"589:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5748,"name":"uint256","nodeType":"ElementaryTypeName","src":"589:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5751,"indexed":false,"mutability":"mutable","name":"fixedFee","nameLocation":"617:8:28","nodeType":"VariableDeclaration","scope":5755,"src":"609:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5750,"name":"uint256","nodeType":"ElementaryTypeName","src":"609:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5753,"indexed":false,"mutability":"mutable","name":"fractionalFee","nameLocation":"635:13:28","nodeType":"VariableDeclaration","scope":5755,"src":"627:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5752,"name":"uint256","nodeType":"ElementaryTypeName","src":"627:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"588:61:28"},"src":"557:93:28"},{"anonymous":false,"id":5763,"name":"LogTreasuryPremiumTransferred","nameLocation":"662:29:28","nodeType":"EventDefinition","parameters":{"id":5762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5757,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"700:4:28","nodeType":"VariableDeclaration","scope":5763,"src":"692:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5756,"name":"address","nodeType":"ElementaryTypeName","src":"692:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5759,"indexed":false,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"714:21:28","nodeType":"VariableDeclaration","scope":5763,"src":"706:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5758,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5761,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"745:6:28","nodeType":"VariableDeclaration","scope":5763,"src":"737:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5760,"name":"uint256","nodeType":"ElementaryTypeName","src":"737:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"691:61:28"},"src":"656:97:28"},{"anonymous":false,"id":5771,"name":"LogTreasuryPayoutTransferred","nameLocation":"764:28:28","nodeType":"EventDefinition","parameters":{"id":5770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5765,"indexed":false,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"801:21:28","nodeType":"VariableDeclaration","scope":5771,"src":"793:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5764,"name":"address","nodeType":"ElementaryTypeName","src":"793:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5767,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"832:2:28","nodeType":"VariableDeclaration","scope":5771,"src":"824:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5766,"name":"address","nodeType":"ElementaryTypeName","src":"824:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5769,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"844:6:28","nodeType":"VariableDeclaration","scope":5771,"src":"836:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5768,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"792:59:28"},"src":"758:94:28"},{"anonymous":false,"id":5779,"name":"LogTreasuryCapitalTransferred","nameLocation":"863:29:28","nodeType":"EventDefinition","parameters":{"id":5778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5773,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"901:4:28","nodeType":"VariableDeclaration","scope":5779,"src":"893:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5772,"name":"address","nodeType":"ElementaryTypeName","src":"893:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5775,"indexed":false,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"915:21:28","nodeType":"VariableDeclaration","scope":5779,"src":"907:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5774,"name":"address","nodeType":"ElementaryTypeName","src":"907:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5777,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"946:6:28","nodeType":"VariableDeclaration","scope":5779,"src":"938:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5776,"name":"uint256","nodeType":"ElementaryTypeName","src":"938:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"892:61:28"},"src":"857:97:28"},{"anonymous":false,"id":5787,"name":"LogTreasuryFeesTransferred","nameLocation":"965:26:28","nodeType":"EventDefinition","parameters":{"id":5786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5781,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"1000:4:28","nodeType":"VariableDeclaration","scope":5787,"src":"992:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5780,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5783,"indexed":false,"mutability":"mutable","name":"instanceWalletAddress","nameLocation":"1014:21:28","nodeType":"VariableDeclaration","scope":5787,"src":"1006:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5782,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5785,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1045:6:28","nodeType":"VariableDeclaration","scope":5787,"src":"1037:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5784,"name":"uint256","nodeType":"ElementaryTypeName","src":"1037:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"991:61:28"},"src":"959:94:28"},{"anonymous":false,"id":5795,"name":"LogTreasuryWithdrawalTransferred","nameLocation":"1064:32:28","nodeType":"EventDefinition","parameters":{"id":5794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5789,"indexed":false,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"1105:21:28","nodeType":"VariableDeclaration","scope":5795,"src":"1097:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5788,"name":"address","nodeType":"ElementaryTypeName","src":"1097:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5791,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"1136:2:28","nodeType":"VariableDeclaration","scope":5795,"src":"1128:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5790,"name":"address","nodeType":"ElementaryTypeName","src":"1128:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5793,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1148:6:28","nodeType":"VariableDeclaration","scope":5795,"src":"1140:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5792,"name":"uint256","nodeType":"ElementaryTypeName","src":"1140:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1096:59:28"},"src":"1058:98:28"},{"anonymous":false,"id":5801,"name":"LogTreasuryPremiumProcessed","nameLocation":"1168:27:28","nodeType":"EventDefinition","parameters":{"id":5800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5797,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"1204:9:28","nodeType":"VariableDeclaration","scope":5801,"src":"1196:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5796,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1196:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5799,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1223:6:28","nodeType":"VariableDeclaration","scope":5801,"src":"1215:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5798,"name":"uint256","nodeType":"ElementaryTypeName","src":"1215:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1195:35:28"},"src":"1162:69:28"},{"anonymous":false,"id":5809,"name":"LogTreasuryPayoutProcessed","nameLocation":"1242:26:28","nodeType":"EventDefinition","parameters":{"id":5808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5803,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"1277:10:28","nodeType":"VariableDeclaration","scope":5809,"src":"1269:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5802,"name":"uint256","nodeType":"ElementaryTypeName","src":"1269:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5805,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"1297:2:28","nodeType":"VariableDeclaration","scope":5809,"src":"1289:10:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5804,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5807,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1309:6:28","nodeType":"VariableDeclaration","scope":5809,"src":"1301:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5806,"name":"uint256","nodeType":"ElementaryTypeName","src":"1301:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1268:48:28"},"src":"1236:81:28"},{"anonymous":false,"id":5817,"name":"LogTreasuryCapitalProcessed","nameLocation":"1328:27:28","nodeType":"EventDefinition","parameters":{"id":5816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5811,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"1364:10:28","nodeType":"VariableDeclaration","scope":5817,"src":"1356:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5810,"name":"uint256","nodeType":"ElementaryTypeName","src":"1356:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5813,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"1384:8:28","nodeType":"VariableDeclaration","scope":5817,"src":"1376:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5812,"name":"uint256","nodeType":"ElementaryTypeName","src":"1376:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5815,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1402:6:28","nodeType":"VariableDeclaration","scope":5817,"src":"1394:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5814,"name":"uint256","nodeType":"ElementaryTypeName","src":"1394:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1355:54:28"},"src":"1322:88:28"},{"anonymous":false,"id":5825,"name":"LogTreasuryWithdrawalProcessed","nameLocation":"1421:30:28","nodeType":"EventDefinition","parameters":{"id":5824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5819,"indexed":false,"mutability":"mutable","name":"riskpoolId","nameLocation":"1460:10:28","nodeType":"VariableDeclaration","scope":5825,"src":"1452:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5818,"name":"uint256","nodeType":"ElementaryTypeName","src":"1452:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5821,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"1480:8:28","nodeType":"VariableDeclaration","scope":5825,"src":"1472:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5820,"name":"uint256","nodeType":"ElementaryTypeName","src":"1472:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5823,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1498:6:28","nodeType":"VariableDeclaration","scope":5825,"src":"1490:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5822,"name":"uint256","nodeType":"ElementaryTypeName","src":"1490:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1451:54:28"},"src":"1415:91:28"},{"canonicalName":"ITreasury.FeeSpecification","id":5838,"members":[{"constant":false,"id":5827,"mutability":"mutable","name":"componentId","nameLocation":"1554:11:28","nodeType":"VariableDeclaration","scope":5838,"src":"1546:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5826,"name":"uint256","nodeType":"ElementaryTypeName","src":"1546:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5829,"mutability":"mutable","name":"fixedFee","nameLocation":"1583:8:28","nodeType":"VariableDeclaration","scope":5838,"src":"1575:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5828,"name":"uint256","nodeType":"ElementaryTypeName","src":"1575:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5831,"mutability":"mutable","name":"fractionalFee","nameLocation":"1609:13:28","nodeType":"VariableDeclaration","scope":5838,"src":"1601:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5830,"name":"uint256","nodeType":"ElementaryTypeName","src":"1601:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5833,"mutability":"mutable","name":"feeCalculationData","nameLocation":"1638:18:28","nodeType":"VariableDeclaration","scope":5838,"src":"1632:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":5832,"name":"bytes","nodeType":"ElementaryTypeName","src":"1632:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5835,"mutability":"mutable","name":"createdAt","nameLocation":"1674:9:28","nodeType":"VariableDeclaration","scope":5838,"src":"1666:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5834,"name":"uint256","nodeType":"ElementaryTypeName","src":"1666:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5837,"mutability":"mutable","name":"updatedAt","nameLocation":"1701:9:28","nodeType":"VariableDeclaration","scope":5838,"src":"1693:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5836,"name":"uint256","nodeType":"ElementaryTypeName","src":"1693:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"FeeSpecification","nameLocation":"1519:16:28","nodeType":"StructDefinition","scope":5974,"src":"1512:205:28","visibility":"public"},{"functionSelector":"cc9cf8cd","id":5845,"implemented":false,"kind":"function","modifiers":[],"name":"setProductToken","nameLocation":"1732:15:28","nodeType":"FunctionDefinition","parameters":{"id":5843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5840,"mutability":"mutable","name":"productId","nameLocation":"1756:9:28","nodeType":"VariableDeclaration","scope":5845,"src":"1748:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5839,"name":"uint256","nodeType":"ElementaryTypeName","src":"1748:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5842,"mutability":"mutable","name":"erc20Address","nameLocation":"1775:12:28","nodeType":"VariableDeclaration","scope":5845,"src":"1767:20:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5841,"name":"address","nodeType":"ElementaryTypeName","src":"1767:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1747:41:28"},"returnParameters":{"id":5844,"nodeType":"ParameterList","parameters":[],"src":"1797:0:28"},"scope":5974,"src":"1723:75:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"cab2504d","id":5850,"implemented":false,"kind":"function","modifiers":[],"name":"setInstanceWallet","nameLocation":"1813:17:28","nodeType":"FunctionDefinition","parameters":{"id":5848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5847,"mutability":"mutable","name":"instanceWalletAddress","nameLocation":"1839:21:28","nodeType":"VariableDeclaration","scope":5850,"src":"1831:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5846,"name":"address","nodeType":"ElementaryTypeName","src":"1831:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1830:31:28"},"returnParameters":{"id":5849,"nodeType":"ParameterList","parameters":[],"src":"1870:0:28"},"scope":5974,"src":"1804:67:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"86039aed","id":5857,"implemented":false,"kind":"function","modifiers":[],"name":"setRiskpoolWallet","nameLocation":"1885:17:28","nodeType":"FunctionDefinition","parameters":{"id":5855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5852,"mutability":"mutable","name":"riskpoolId","nameLocation":"1911:10:28","nodeType":"VariableDeclaration","scope":5857,"src":"1903:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5851,"name":"uint256","nodeType":"ElementaryTypeName","src":"1903:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5854,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"1931:21:28","nodeType":"VariableDeclaration","scope":5857,"src":"1923:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5853,"name":"address","nodeType":"ElementaryTypeName","src":"1923:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1902:51:28"},"returnParameters":{"id":5856,"nodeType":"ParameterList","parameters":[],"src":"1962:0:28"},"scope":5974,"src":"1876:87:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"62f0ab55","id":5871,"implemented":false,"kind":"function","modifiers":[],"name":"createFeeSpecification","nameLocation":"1978:22:28","nodeType":"FunctionDefinition","parameters":{"id":5866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5859,"mutability":"mutable","name":"componentId","nameLocation":"2018:11:28","nodeType":"VariableDeclaration","scope":5871,"src":"2010:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5858,"name":"uint256","nodeType":"ElementaryTypeName","src":"2010:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5861,"mutability":"mutable","name":"fixedFee","nameLocation":"2047:8:28","nodeType":"VariableDeclaration","scope":5871,"src":"2039:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5860,"name":"uint256","nodeType":"ElementaryTypeName","src":"2039:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5863,"mutability":"mutable","name":"fractionalFee","nameLocation":"2073:13:28","nodeType":"VariableDeclaration","scope":5871,"src":"2065:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5862,"name":"uint256","nodeType":"ElementaryTypeName","src":"2065:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5865,"mutability":"mutable","name":"feeCalculationData","nameLocation":"2111:18:28","nodeType":"VariableDeclaration","scope":5871,"src":"2096:33:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5864,"name":"bytes","nodeType":"ElementaryTypeName","src":"2096:5:28","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2000:135:28"},"returnParameters":{"id":5870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5869,"mutability":"mutable","name":"feeSpec","nameLocation":"2190:7:28","nodeType":"VariableDeclaration","scope":5871,"src":"2166:31:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":5868,"nodeType":"UserDefinedTypeName","pathNode":{"id":5867,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"2166:16:28"},"referencedDeclaration":5838,"src":"2166:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"2165:33:28"},"scope":5974,"src":"1969:230:28","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"01132a7f","id":5877,"implemented":false,"kind":"function","modifiers":[],"name":"setPremiumFees","nameLocation":"2218:14:28","nodeType":"FunctionDefinition","parameters":{"id":5875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5874,"mutability":"mutable","name":"feeSpec","nameLocation":"2259:7:28","nodeType":"VariableDeclaration","scope":5877,"src":"2233:33:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":5873,"nodeType":"UserDefinedTypeName","pathNode":{"id":5872,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"2233:16:28"},"referencedDeclaration":5838,"src":"2233:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"2232:35:28"},"returnParameters":{"id":5876,"nodeType":"ParameterList","parameters":[],"src":"2276:0:28"},"scope":5974,"src":"2209:68:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8ca946aa","id":5883,"implemented":false,"kind":"function","modifiers":[],"name":"setCapitalFees","nameLocation":"2291:14:28","nodeType":"FunctionDefinition","parameters":{"id":5881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5880,"mutability":"mutable","name":"feeSpec","nameLocation":"2332:7:28","nodeType":"VariableDeclaration","scope":5883,"src":"2306:33:28","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":5879,"nodeType":"UserDefinedTypeName","pathNode":{"id":5878,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"2306:16:28"},"referencedDeclaration":5838,"src":"2306:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"2305:35:28"},"returnParameters":{"id":5882,"nodeType":"ParameterList","parameters":[],"src":"2349:0:28"},"scope":5974,"src":"2282:68:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5ecc078e","id":5894,"implemented":false,"kind":"function","modifiers":[],"name":"processPremium","nameLocation":"2369:14:28","nodeType":"FunctionDefinition","parameters":{"id":5886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5885,"mutability":"mutable","name":"processId","nameLocation":"2392:9:28","nodeType":"VariableDeclaration","scope":5894,"src":"2384:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2384:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2383:19:28"},"returnParameters":{"id":5893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5888,"mutability":"mutable","name":"success","nameLocation":"2447:7:28","nodeType":"VariableDeclaration","scope":5894,"src":"2442:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5887,"name":"bool","nodeType":"ElementaryTypeName","src":"2442:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5890,"mutability":"mutable","name":"feeAmount","nameLocation":"2476:9:28","nodeType":"VariableDeclaration","scope":5894,"src":"2468:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5889,"name":"uint256","nodeType":"ElementaryTypeName","src":"2468:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5892,"mutability":"mutable","name":"netPremiumAmount","nameLocation":"2507:16:28","nodeType":"VariableDeclaration","scope":5894,"src":"2499:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5891,"name":"uint256","nodeType":"ElementaryTypeName","src":"2499:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2428:105:28"},"scope":5974,"src":"2360:174:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"02108268","id":5907,"implemented":false,"kind":"function","modifiers":[],"name":"processPremium","nameLocation":"2553:14:28","nodeType":"FunctionDefinition","parameters":{"id":5899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5896,"mutability":"mutable","name":"processId","nameLocation":"2576:9:28","nodeType":"VariableDeclaration","scope":5907,"src":"2568:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2568:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5898,"mutability":"mutable","name":"amount","nameLocation":"2595:6:28","nodeType":"VariableDeclaration","scope":5907,"src":"2587:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5897,"name":"uint256","nodeType":"ElementaryTypeName","src":"2587:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2567:35:28"},"returnParameters":{"id":5906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5901,"mutability":"mutable","name":"success","nameLocation":"2647:7:28","nodeType":"VariableDeclaration","scope":5907,"src":"2642:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5900,"name":"bool","nodeType":"ElementaryTypeName","src":"2642:4:28","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5903,"mutability":"mutable","name":"feeAmount","nameLocation":"2676:9:28","nodeType":"VariableDeclaration","scope":5907,"src":"2668:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5902,"name":"uint256","nodeType":"ElementaryTypeName","src":"2668:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5905,"mutability":"mutable","name":"netPremiumAmount","nameLocation":"2707:16:28","nodeType":"VariableDeclaration","scope":5907,"src":"2699:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5904,"name":"uint256","nodeType":"ElementaryTypeName","src":"2699:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2628:105:28"},"scope":5974,"src":"2544:190:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fe64372b","id":5918,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"2753:13:28","nodeType":"FunctionDefinition","parameters":{"id":5912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5909,"mutability":"mutable","name":"processId","nameLocation":"2775:9:28","nodeType":"VariableDeclaration","scope":5918,"src":"2767:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2767:7:28","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5911,"mutability":"mutable","name":"payoutId","nameLocation":"2794:8:28","nodeType":"VariableDeclaration","scope":5918,"src":"2786:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5910,"name":"uint256","nodeType":"ElementaryTypeName","src":"2786:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2766:37:28"},"returnParameters":{"id":5917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5914,"mutability":"mutable","name":"feeAmount","nameLocation":"2851:9:28","nodeType":"VariableDeclaration","scope":5918,"src":"2843:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5913,"name":"uint256","nodeType":"ElementaryTypeName","src":"2843:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5916,"mutability":"mutable","name":"netPayoutAmount","nameLocation":"2882:15:28","nodeType":"VariableDeclaration","scope":5918,"src":"2874:23:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5915,"name":"uint256","nodeType":"ElementaryTypeName","src":"2874:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2829:78:28"},"scope":5974,"src":"2744:164:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"26debdaa","id":5929,"implemented":false,"kind":"function","modifiers":[],"name":"processCapital","nameLocation":"2927:14:28","nodeType":"FunctionDefinition","parameters":{"id":5923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5920,"mutability":"mutable","name":"bundleId","nameLocation":"2950:8:28","nodeType":"VariableDeclaration","scope":5929,"src":"2942:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5919,"name":"uint256","nodeType":"ElementaryTypeName","src":"2942:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5922,"mutability":"mutable","name":"capitalAmount","nameLocation":"2968:13:28","nodeType":"VariableDeclaration","scope":5929,"src":"2960:21:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5921,"name":"uint256","nodeType":"ElementaryTypeName","src":"2960:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2941:41:28"},"returnParameters":{"id":5928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5925,"mutability":"mutable","name":"feeAmount","nameLocation":"3030:9:28","nodeType":"VariableDeclaration","scope":5929,"src":"3022:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5924,"name":"uint256","nodeType":"ElementaryTypeName","src":"3022:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5927,"mutability":"mutable","name":"netCapitalAmount","nameLocation":"3061:16:28","nodeType":"VariableDeclaration","scope":5929,"src":"3053:24:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5926,"name":"uint256","nodeType":"ElementaryTypeName","src":"3053:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3008:79:28"},"scope":5974,"src":"2918:170:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d9358075","id":5940,"implemented":false,"kind":"function","modifiers":[],"name":"processWithdrawal","nameLocation":"3103:17:28","nodeType":"FunctionDefinition","parameters":{"id":5934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5931,"mutability":"mutable","name":"bundleId","nameLocation":"3129:8:28","nodeType":"VariableDeclaration","scope":5940,"src":"3121:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5930,"name":"uint256","nodeType":"ElementaryTypeName","src":"3121:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5933,"mutability":"mutable","name":"amount","nameLocation":"3147:6:28","nodeType":"VariableDeclaration","scope":5940,"src":"3139:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5932,"name":"uint256","nodeType":"ElementaryTypeName","src":"3139:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3120:34:28"},"returnParameters":{"id":5939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5936,"mutability":"mutable","name":"feeAmount","nameLocation":"3201:9:28","nodeType":"VariableDeclaration","scope":5940,"src":"3193:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5935,"name":"uint256","nodeType":"ElementaryTypeName","src":"3193:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5938,"mutability":"mutable","name":"netAmount","nameLocation":"3232:9:28","nodeType":"VariableDeclaration","scope":5940,"src":"3224:17:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5937,"name":"uint256","nodeType":"ElementaryTypeName","src":"3224:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3179:72:28"},"scope":5974,"src":"3094:158:28","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"038696bb","id":5948,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentToken","nameLocation":"3267:17:28","nodeType":"FunctionDefinition","parameters":{"id":5943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5942,"mutability":"mutable","name":"componentId","nameLocation":"3293:11:28","nodeType":"VariableDeclaration","scope":5948,"src":"3285:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5941,"name":"uint256","nodeType":"ElementaryTypeName","src":"3285:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3284:21:28"},"returnParameters":{"id":5947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5946,"mutability":"mutable","name":"token","nameLocation":"3335:5:28","nodeType":"VariableDeclaration","scope":5948,"src":"3328:12:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":5945,"nodeType":"UserDefinedTypeName","pathNode":{"id":5944,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"3328:6:28"},"referencedDeclaration":8831,"src":"3328:6:28","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"3327:14:28"},"scope":5974,"src":"3258:84:28","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a434f0ad","id":5956,"implemented":false,"kind":"function","modifiers":[],"name":"getFeeSpecification","nameLocation":"3356:19:28","nodeType":"FunctionDefinition","parameters":{"id":5951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5950,"mutability":"mutable","name":"componentId","nameLocation":"3384:11:28","nodeType":"VariableDeclaration","scope":5956,"src":"3376:19:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5949,"name":"uint256","nodeType":"ElementaryTypeName","src":"3376:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3375:21:28"},"returnParameters":{"id":5955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5954,"mutability":"mutable","name":"feeSpecification","nameLocation":"3443:16:28","nodeType":"VariableDeclaration","scope":5956,"src":"3419:40:28","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":5953,"nodeType":"UserDefinedTypeName","pathNode":{"id":5952,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"3419:16:28"},"referencedDeclaration":5838,"src":"3419:16:28","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"3418:42:28"},"scope":5974,"src":"3347:114:28","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"8ccf5ca2","id":5961,"implemented":false,"kind":"function","modifiers":[],"name":"getFractionFullUnit","nameLocation":"3476:19:28","nodeType":"FunctionDefinition","parameters":{"id":5957,"nodeType":"ParameterList","parameters":[],"src":"3495:2:28"},"returnParameters":{"id":5960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5959,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5961,"src":"3520:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5958,"name":"uint256","nodeType":"ElementaryTypeName","src":"3520:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3519:9:28"},"scope":5974,"src":"3467:62:28","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a44330c4","id":5966,"implemented":false,"kind":"function","modifiers":[],"name":"getInstanceWallet","nameLocation":"3543:17:28","nodeType":"FunctionDefinition","parameters":{"id":5962,"nodeType":"ParameterList","parameters":[],"src":"3560:2:28"},"returnParameters":{"id":5965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5964,"mutability":"mutable","name":"instanceWalletAddress","nameLocation":"3593:21:28","nodeType":"VariableDeclaration","scope":5966,"src":"3585:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5963,"name":"address","nodeType":"ElementaryTypeName","src":"3585:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3584:31:28"},"scope":5974,"src":"3534:82:28","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"49081637","id":5973,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolWallet","nameLocation":"3630:17:28","nodeType":"FunctionDefinition","parameters":{"id":5969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5968,"mutability":"mutable","name":"riskpoolId","nameLocation":"3656:10:28","nodeType":"VariableDeclaration","scope":5973,"src":"3648:18:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5967,"name":"uint256","nodeType":"ElementaryTypeName","src":"3648:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3647:20:28"},"returnParameters":{"id":5972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5971,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"3698:21:28","nodeType":"VariableDeclaration","scope":5973,"src":"3690:29:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5970,"name":"address","nodeType":"ElementaryTypeName","src":"3690:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3689:31:28"},"scope":5974,"src":"3621:100:28","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":5975,"src":"120:3604:28"}],"src":"39:3686:28"},"id":28},"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","exportedSymbols":{"IComponent":[2988],"IComponentOwnerService":[6009],"IRegistry":[5714]},"id":6010,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":5976,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:29"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"../components/IComponent.sol","id":5977,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6010,"sourceUnit":2989,"src":"66:38:29","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6009,"linearizedBaseContracts":[6009],"name":"IComponentOwnerService","nameLocation":"118:22:29","nodeType":"ContractDefinition","nodes":[{"functionSelector":"01267951","id":5983,"implemented":false,"kind":"function","modifiers":[],"name":"propose","nameLocation":"159:7:29","nodeType":"FunctionDefinition","parameters":{"id":5981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5980,"mutability":"mutable","name":"component","nameLocation":"178:9:29","nodeType":"VariableDeclaration","scope":5983,"src":"167:20:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":5979,"nodeType":"UserDefinedTypeName","pathNode":{"id":5978,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"167:10:29"},"referencedDeclaration":2988,"src":"167:10:29","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"166:22:29"},"returnParameters":{"id":5982,"nodeType":"ParameterList","parameters":[],"src":"197:0:29"},"scope":6009,"src":"150:48:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a694fc3a","id":5988,"implemented":false,"kind":"function","modifiers":[],"name":"stake","nameLocation":"215:5:29","nodeType":"FunctionDefinition","parameters":{"id":5986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5985,"mutability":"mutable","name":"id","nameLocation":"229:2:29","nodeType":"VariableDeclaration","scope":5988,"src":"221:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5984,"name":"uint256","nodeType":"ElementaryTypeName","src":"221:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"220:12:29"},"returnParameters":{"id":5987,"nodeType":"ParameterList","parameters":[],"src":"241:0:29"},"scope":6009,"src":"206:36:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2e1a7d4d","id":5993,"implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"257:8:29","nodeType":"FunctionDefinition","parameters":{"id":5991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5990,"mutability":"mutable","name":"id","nameLocation":"274:2:29","nodeType":"VariableDeclaration","scope":5993,"src":"266:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5989,"name":"uint256","nodeType":"ElementaryTypeName","src":"266:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"265:12:29"},"returnParameters":{"id":5992,"nodeType":"ParameterList","parameters":[],"src":"286:0:29"},"scope":6009,"src":"248:39:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"136439dd","id":5998,"implemented":false,"kind":"function","modifiers":[],"name":"pause","nameLocation":"304:5:29","nodeType":"FunctionDefinition","parameters":{"id":5996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5995,"mutability":"mutable","name":"id","nameLocation":"318:2:29","nodeType":"VariableDeclaration","scope":5998,"src":"310:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5994,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"309:12:29"},"returnParameters":{"id":5997,"nodeType":"ParameterList","parameters":[],"src":"330:0:29"},"scope":6009,"src":"295:36:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fabc1cbc","id":6003,"implemented":false,"kind":"function","modifiers":[],"name":"unpause","nameLocation":"347:7:29","nodeType":"FunctionDefinition","parameters":{"id":6001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6000,"mutability":"mutable","name":"id","nameLocation":"363:2:29","nodeType":"VariableDeclaration","scope":6003,"src":"355:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5999,"name":"uint256","nodeType":"ElementaryTypeName","src":"355:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"354:12:29"},"returnParameters":{"id":6002,"nodeType":"ParameterList","parameters":[],"src":"375:0:29"},"scope":6009,"src":"338:38:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"93c829fc","id":6008,"implemented":false,"kind":"function","modifiers":[],"name":"archive","nameLocation":"393:7:29","nodeType":"FunctionDefinition","parameters":{"id":6006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6005,"mutability":"mutable","name":"id","nameLocation":"409:2:29","nodeType":"VariableDeclaration","scope":6008,"src":"401:10:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6004,"name":"uint256","nodeType":"ElementaryTypeName","src":"401:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"400:12:29"},"returnParameters":{"id":6007,"nodeType":"ParameterList","parameters":[],"src":"421:0:29"},"scope":6009,"src":"384:38:29","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6010,"src":"108:317:29"}],"src":"40:385:29"},"id":29},"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","exportedSymbols":{"IERC20":[8831],"IInstanceOperatorService":[6160],"ITreasury":[5974]},"id":6161,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6011,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:30"},{"absolutePath":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","file":"../modules/ITreasury.sol","id":6012,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6161,"sourceUnit":5975,"src":"63:34:30","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6160,"linearizedBaseContracts":[6160],"name":"IInstanceOperatorService","nameLocation":"109:24:30","nodeType":"ContractDefinition","nodes":[{"functionSelector":"893917ea","id":6017,"implemented":false,"kind":"function","modifiers":[],"name":"prepareRelease","nameLocation":"166:14:30","nodeType":"FunctionDefinition","parameters":{"id":6015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6014,"mutability":"mutable","name":"newRelease","nameLocation":"189:10:30","nodeType":"VariableDeclaration","scope":6017,"src":"181:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"181:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"180:20:30"},"returnParameters":{"id":6016,"nodeType":"ParameterList","parameters":[],"src":"209:0:30"},"scope":6160,"src":"157:53:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d22057a9","id":6024,"implemented":false,"kind":"function","modifiers":[],"name":"register","nameLocation":"224:8:30","nodeType":"FunctionDefinition","parameters":{"id":6022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6019,"mutability":"mutable","name":"contractName","nameLocation":"241:12:30","nodeType":"VariableDeclaration","scope":6024,"src":"233:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"233:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6021,"mutability":"mutable","name":"contractAddress","nameLocation":"263:15:30","nodeType":"VariableDeclaration","scope":6024,"src":"255:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6020,"name":"address","nodeType":"ElementaryTypeName","src":"255:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"232:47:30"},"returnParameters":{"id":6023,"nodeType":"ParameterList","parameters":[],"src":"288:0:30"},"scope":6160,"src":"215:74:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"20813154","id":6029,"implemented":false,"kind":"function","modifiers":[],"name":"deregister","nameLocation":"303:10:30","nodeType":"FunctionDefinition","parameters":{"id":6027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6026,"mutability":"mutable","name":"contractName","nameLocation":"322:12:30","nodeType":"VariableDeclaration","scope":6029,"src":"314:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"314:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"313:22:30"},"returnParameters":{"id":6028,"nodeType":"ParameterList","parameters":[],"src":"344:0:30"},"scope":6160,"src":"294:51:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1d5e7314","id":6038,"implemented":false,"kind":"function","modifiers":[],"name":"registerInRelease","nameLocation":"359:17:30","nodeType":"FunctionDefinition","parameters":{"id":6036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6031,"mutability":"mutable","name":"release","nameLocation":"385:7:30","nodeType":"VariableDeclaration","scope":6038,"src":"377:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"377:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6033,"mutability":"mutable","name":"contractName","nameLocation":"402:12:30","nodeType":"VariableDeclaration","scope":6038,"src":"394:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6032,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6035,"mutability":"mutable","name":"contractAddress","nameLocation":"424:15:30","nodeType":"VariableDeclaration","scope":6038,"src":"416:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6034,"name":"address","nodeType":"ElementaryTypeName","src":"416:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"376:64:30"},"returnParameters":{"id":6037,"nodeType":"ParameterList","parameters":[],"src":"449:0:30"},"scope":6160,"src":"350:100:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"dc527b08","id":6045,"implemented":false,"kind":"function","modifiers":[],"name":"deregisterInRelease","nameLocation":"464:19:30","nodeType":"FunctionDefinition","parameters":{"id":6043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6040,"mutability":"mutable","name":"release","nameLocation":"492:7:30","nodeType":"VariableDeclaration","scope":6045,"src":"484:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"484:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6042,"mutability":"mutable","name":"contractName","nameLocation":"509:12:30","nodeType":"VariableDeclaration","scope":6045,"src":"501:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"501:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"483:39:30"},"returnParameters":{"id":6044,"nodeType":"ParameterList","parameters":[],"src":"531:0:30"},"scope":6160,"src":"455:77:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c42994a2","id":6050,"implemented":false,"kind":"function","modifiers":[],"name":"createRole","nameLocation":"561:10:30","nodeType":"FunctionDefinition","parameters":{"id":6048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6047,"mutability":"mutable","name":"role","nameLocation":"580:4:30","nodeType":"VariableDeclaration","scope":6050,"src":"572:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"572:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"571:14:30"},"returnParameters":{"id":6049,"nodeType":"ParameterList","parameters":[],"src":"594:0:30"},"scope":6160,"src":"552:43:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d17d0233","id":6055,"implemented":false,"kind":"function","modifiers":[],"name":"invalidateRole","nameLocation":"609:14:30","nodeType":"FunctionDefinition","parameters":{"id":6053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6052,"mutability":"mutable","name":"role","nameLocation":"632:4:30","nodeType":"VariableDeclaration","scope":6055,"src":"624:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6051,"name":"bytes32","nodeType":"ElementaryTypeName","src":"624:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"623:14:30"},"returnParameters":{"id":6054,"nodeType":"ParameterList","parameters":[],"src":"646:0:30"},"scope":6160,"src":"600:47:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2f2ff15d","id":6062,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"661:9:30","nodeType":"FunctionDefinition","parameters":{"id":6060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6057,"mutability":"mutable","name":"role","nameLocation":"679:4:30","nodeType":"VariableDeclaration","scope":6062,"src":"671:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"671:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6059,"mutability":"mutable","name":"principal","nameLocation":"693:9:30","nodeType":"VariableDeclaration","scope":6062,"src":"685:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6058,"name":"address","nodeType":"ElementaryTypeName","src":"685:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"670:33:30"},"returnParameters":{"id":6061,"nodeType":"ParameterList","parameters":[],"src":"712:0:30"},"scope":6160,"src":"652:61:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d547741f","id":6069,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"727:10:30","nodeType":"FunctionDefinition","parameters":{"id":6067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6064,"mutability":"mutable","name":"role","nameLocation":"746:4:30","nodeType":"VariableDeclaration","scope":6069,"src":"738:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"738:7:30","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6066,"mutability":"mutable","name":"principal","nameLocation":"760:9:30","nodeType":"VariableDeclaration","scope":6069,"src":"752:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6065,"name":"address","nodeType":"ElementaryTypeName","src":"752:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"737:33:30"},"returnParameters":{"id":6068,"nodeType":"ParameterList","parameters":[],"src":"779:0:30"},"scope":6160,"src":"718:62:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b759f954","id":6074,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"812:7:30","nodeType":"FunctionDefinition","parameters":{"id":6072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6071,"mutability":"mutable","name":"id","nameLocation":"828:2:30","nodeType":"VariableDeclaration","scope":6074,"src":"820:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6070,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:12:30"},"returnParameters":{"id":6073,"nodeType":"ParameterList","parameters":[],"src":"840:0:30"},"scope":6160,"src":"803:38:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a0355f4e","id":6079,"implemented":false,"kind":"function","modifiers":[],"name":"decline","nameLocation":"855:7:30","nodeType":"FunctionDefinition","parameters":{"id":6077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6076,"mutability":"mutable","name":"id","nameLocation":"871:2:30","nodeType":"VariableDeclaration","scope":6079,"src":"863:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6075,"name":"uint256","nodeType":"ElementaryTypeName","src":"863:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"862:12:30"},"returnParameters":{"id":6078,"nodeType":"ParameterList","parameters":[],"src":"883:0:30"},"scope":6160,"src":"846:38:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4b865846","id":6084,"implemented":false,"kind":"function","modifiers":[],"name":"suspend","nameLocation":"898:7:30","nodeType":"FunctionDefinition","parameters":{"id":6082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6081,"mutability":"mutable","name":"id","nameLocation":"914:2:30","nodeType":"VariableDeclaration","scope":6084,"src":"906:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6080,"name":"uint256","nodeType":"ElementaryTypeName","src":"906:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"905:12:30"},"returnParameters":{"id":6083,"nodeType":"ParameterList","parameters":[],"src":"926:0:30"},"scope":6160,"src":"889:38:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"414000b5","id":6089,"implemented":false,"kind":"function","modifiers":[],"name":"resume","nameLocation":"941:6:30","nodeType":"FunctionDefinition","parameters":{"id":6087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6086,"mutability":"mutable","name":"id","nameLocation":"956:2:30","nodeType":"VariableDeclaration","scope":6089,"src":"948:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6085,"name":"uint256","nodeType":"ElementaryTypeName","src":"948:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"947:12:30"},"returnParameters":{"id":6088,"nodeType":"ParameterList","parameters":[],"src":"968:0:30"},"scope":6160,"src":"932:37:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"93c829fc","id":6094,"implemented":false,"kind":"function","modifiers":[],"name":"archive","nameLocation":"983:7:30","nodeType":"FunctionDefinition","parameters":{"id":6092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6091,"mutability":"mutable","name":"id","nameLocation":"999:2:30","nodeType":"VariableDeclaration","scope":6094,"src":"991:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6090,"name":"uint256","nodeType":"ElementaryTypeName","src":"991:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"990:12:30"},"returnParameters":{"id":6093,"nodeType":"ParameterList","parameters":[],"src":"1011:0:30"},"scope":6160,"src":"974:38:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"394c78ba","id":6101,"implemented":false,"kind":"function","modifiers":[],"name":"setDefaultStaking","nameLocation":"1054:17:30","nodeType":"FunctionDefinition","parameters":{"id":6099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6096,"mutability":"mutable","name":"componentType","nameLocation":"1079:13:30","nodeType":"VariableDeclaration","scope":6101,"src":"1072:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":6095,"name":"uint16","nodeType":"ElementaryTypeName","src":"1072:6:30","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":6098,"mutability":"mutable","name":"data","nameLocation":"1109:4:30","nodeType":"VariableDeclaration","scope":6101,"src":"1094:19:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6097,"name":"bytes","nodeType":"ElementaryTypeName","src":"1094:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1071:43:30"},"returnParameters":{"id":6100,"nodeType":"ParameterList","parameters":[],"src":"1123:0:30"},"scope":6160,"src":"1045:79:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"72beb6fb","id":6108,"implemented":false,"kind":"function","modifiers":[],"name":"adjustStakingRequirements","nameLocation":"1138:25:30","nodeType":"FunctionDefinition","parameters":{"id":6106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6103,"mutability":"mutable","name":"id","nameLocation":"1172:2:30","nodeType":"VariableDeclaration","scope":6108,"src":"1164:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6102,"name":"uint256","nodeType":"ElementaryTypeName","src":"1164:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6105,"mutability":"mutable","name":"data","nameLocation":"1191:4:30","nodeType":"VariableDeclaration","scope":6108,"src":"1176:19:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6104,"name":"bytes","nodeType":"ElementaryTypeName","src":"1176:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1163:33:30"},"returnParameters":{"id":6107,"nodeType":"ParameterList","parameters":[],"src":"1205:0:30"},"scope":6160,"src":"1129:77:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"d5fe1f10","id":6111,"implemented":false,"kind":"function","modifiers":[],"name":"suspendTreasury","nameLocation":"1237:15:30","nodeType":"FunctionDefinition","parameters":{"id":6109,"nodeType":"ParameterList","parameters":[],"src":"1252:2:30"},"returnParameters":{"id":6110,"nodeType":"ParameterList","parameters":[],"src":"1263:0:30"},"scope":6160,"src":"1228:36:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"10a81c4a","id":6114,"implemented":false,"kind":"function","modifiers":[],"name":"resumeTreasury","nameLocation":"1278:14:30","nodeType":"FunctionDefinition","parameters":{"id":6112,"nodeType":"ParameterList","parameters":[],"src":"1292:2:30"},"returnParameters":{"id":6113,"nodeType":"ParameterList","parameters":[],"src":"1303:0:30"},"scope":6160,"src":"1269:35:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"cab2504d","id":6119,"implemented":false,"kind":"function","modifiers":[],"name":"setInstanceWallet","nameLocation":"1323:17:30","nodeType":"FunctionDefinition","parameters":{"id":6117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6116,"mutability":"mutable","name":"walletAddress","nameLocation":"1349:13:30","nodeType":"VariableDeclaration","scope":6119,"src":"1341:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6115,"name":"address","nodeType":"ElementaryTypeName","src":"1341:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1340:23:30"},"returnParameters":{"id":6118,"nodeType":"ParameterList","parameters":[],"src":"1372:0:30"},"scope":6160,"src":"1314:59:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"86039aed","id":6126,"implemented":false,"kind":"function","modifiers":[],"name":"setRiskpoolWallet","nameLocation":"1387:17:30","nodeType":"FunctionDefinition","parameters":{"id":6124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6121,"mutability":"mutable","name":"riskpoolId","nameLocation":"1413:10:30","nodeType":"VariableDeclaration","scope":6126,"src":"1405:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6120,"name":"uint256","nodeType":"ElementaryTypeName","src":"1405:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6123,"mutability":"mutable","name":"walletAddress","nameLocation":"1433:13:30","nodeType":"VariableDeclaration","scope":6126,"src":"1425:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6122,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1404:43:30"},"returnParameters":{"id":6125,"nodeType":"ParameterList","parameters":[],"src":"1456:0:30"},"scope":6160,"src":"1378:79:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"cc9cf8cd","id":6133,"implemented":false,"kind":"function","modifiers":[],"name":"setProductToken","nameLocation":"1473:15:30","nodeType":"FunctionDefinition","parameters":{"id":6131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6128,"mutability":"mutable","name":"productId","nameLocation":"1497:9:30","nodeType":"VariableDeclaration","scope":6133,"src":"1489:17:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6127,"name":"uint256","nodeType":"ElementaryTypeName","src":"1489:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6130,"mutability":"mutable","name":"erc20Address","nameLocation":"1516:12:30","nodeType":"VariableDeclaration","scope":6133,"src":"1508:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6129,"name":"address","nodeType":"ElementaryTypeName","src":"1508:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1488:41:30"},"returnParameters":{"id":6132,"nodeType":"ParameterList","parameters":[],"src":"1538:0:30"},"scope":6160,"src":"1464:75:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"01132a7f","id":6139,"implemented":false,"kind":"function","modifiers":[],"name":"setPremiumFees","nameLocation":"1555:14:30","nodeType":"FunctionDefinition","parameters":{"id":6137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6136,"mutability":"mutable","name":"feeSpec","nameLocation":"1606:7:30","nodeType":"VariableDeclaration","scope":6139,"src":"1570:43:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":6135,"nodeType":"UserDefinedTypeName","pathNode":{"id":6134,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"1570:26:30"},"referencedDeclaration":5838,"src":"1570:26:30","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"1569:45:30"},"returnParameters":{"id":6138,"nodeType":"ParameterList","parameters":[],"src":"1623:0:30"},"scope":6160,"src":"1546:78:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8ca946aa","id":6145,"implemented":false,"kind":"function","modifiers":[],"name":"setCapitalFees","nameLocation":"1638:14:30","nodeType":"FunctionDefinition","parameters":{"id":6143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6142,"mutability":"mutable","name":"feeSpec","nameLocation":"1689:7:30","nodeType":"VariableDeclaration","scope":6145,"src":"1653:43:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":6141,"nodeType":"UserDefinedTypeName","pathNode":{"id":6140,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"1653:26:30"},"referencedDeclaration":5838,"src":"1653:26:30","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"1652:45:30"},"returnParameters":{"id":6144,"nodeType":"ParameterList","parameters":[],"src":"1706:0:30"},"scope":6160,"src":"1629:78:30","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"62f0ab55","id":6159,"implemented":false,"kind":"function","modifiers":[],"name":"createFeeSpecification","nameLocation":"1726:22:30","nodeType":"FunctionDefinition","parameters":{"id":6154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6147,"mutability":"mutable","name":"componentId","nameLocation":"1766:11:30","nodeType":"VariableDeclaration","scope":6159,"src":"1758:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6146,"name":"uint256","nodeType":"ElementaryTypeName","src":"1758:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6149,"mutability":"mutable","name":"fixedFee","nameLocation":"1795:8:30","nodeType":"VariableDeclaration","scope":6159,"src":"1787:16:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6148,"name":"uint256","nodeType":"ElementaryTypeName","src":"1787:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6151,"mutability":"mutable","name":"fractionalFee","nameLocation":"1821:13:30","nodeType":"VariableDeclaration","scope":6159,"src":"1813:21:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6150,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6153,"mutability":"mutable","name":"feeCalculationData","nameLocation":"1859:18:30","nodeType":"VariableDeclaration","scope":6159,"src":"1844:33:30","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6152,"name":"bytes","nodeType":"ElementaryTypeName","src":"1844:5:30","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1748:135:30"},"returnParameters":{"id":6158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6159,"src":"1906:33:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":6156,"nodeType":"UserDefinedTypeName","pathNode":{"id":6155,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"1906:26:30"},"referencedDeclaration":5838,"src":"1906:26:30","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"1905:35:30"},"scope":6160,"src":"1717:224:30","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6161,"src":"99:1846:30"}],"src":"39:1907:30"},"id":30},"@etherisc/gif-interface/contracts/services/IInstanceService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","exportedSymbols":{"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974]},"id":6510,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6162,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:31"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"../components/IComponent.sol","id":6163,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":2989,"src":"63:38:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"../modules/IBundle.sol","id":6164,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":5021,"src":"102:32:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"../modules/IPolicy.sol","id":6165,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":5434,"src":"135:32:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPool.sol","file":"../modules/IPool.sol","id":6166,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":5550,"src":"168:30:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","file":"../tokens/IBundleToken.sol","id":6167,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6826,"src":"199:36:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","file":"./IComponentOwnerService.sol","id":6168,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6010,"src":"236:38:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","file":"./IInstanceOperatorService.sol","id":6169,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6161,"src":"275:40:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IOracleService.sol","file":"./IOracleService.sol","id":6170,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6520,"src":"316:30:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","file":"./IProductService.sol","id":6171,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6665,"src":"347:31:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","file":"./IRiskpoolService.sol","id":6172,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":6771,"src":"379:32:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":6173,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":8832,"src":"413:56:31","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":6174,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6510,"sourceUnit":10157,"src":"470:58:31","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6509,"linearizedBaseContracts":[6509],"name":"IInstanceService","nameLocation":"540:16:31","nodeType":"ContractDefinition","nodes":[{"functionSelector":"3408e470","id":6179,"implemented":false,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"589:10:31","nodeType":"FunctionDefinition","parameters":{"id":6175,"nodeType":"ParameterList","parameters":[],"src":"599:2:31"},"returnParameters":{"id":6178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6177,"mutability":"mutable","name":"chainId","nameLocation":"632:7:31","nodeType":"VariableDeclaration","scope":6179,"src":"624:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6176,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"623:17:31"},"scope":6509,"src":"580:61:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d722b0bc","id":6184,"implemented":false,"kind":"function","modifiers":[],"name":"getChainName","nameLocation":"655:12:31","nodeType":"FunctionDefinition","parameters":{"id":6180,"nodeType":"ParameterList","parameters":[],"src":"667:2:31"},"returnParameters":{"id":6183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6182,"mutability":"mutable","name":"chainName","nameLocation":"706:9:31","nodeType":"VariableDeclaration","scope":6184,"src":"692:23:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6181,"name":"string","nodeType":"ElementaryTypeName","src":"692:6:31","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"691:25:31"},"scope":6509,"src":"646:71:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1551100f","id":6189,"implemented":false,"kind":"function","modifiers":[],"name":"getInstanceId","nameLocation":"731:13:31","nodeType":"FunctionDefinition","parameters":{"id":6185,"nodeType":"ParameterList","parameters":[],"src":"744:2:31"},"returnParameters":{"id":6188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6187,"mutability":"mutable","name":"instanceId","nameLocation":"777:10:31","nodeType":"VariableDeclaration","scope":6189,"src":"769:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"769:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"768:20:31"},"scope":6509,"src":"722:67:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"39c6fa90","id":6194,"implemented":false,"kind":"function","modifiers":[],"name":"getInstanceOperator","nameLocation":"803:19:31","nodeType":"FunctionDefinition","parameters":{"id":6190,"nodeType":"ParameterList","parameters":[],"src":"822:2:31"},"returnParameters":{"id":6193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6192,"mutability":"mutable","name":"instanceOperator","nameLocation":"855:16:31","nodeType":"VariableDeclaration","scope":6194,"src":"847:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6191,"name":"address","nodeType":"ElementaryTypeName","src":"847:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"846:26:31"},"scope":6509,"src":"794:79:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6fa29853","id":6200,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentOwnerService","nameLocation":"904:24:31","nodeType":"FunctionDefinition","parameters":{"id":6195,"nodeType":"ParameterList","parameters":[],"src":"928:2:31"},"returnParameters":{"id":6199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6198,"mutability":"mutable","name":"service","nameLocation":"976:7:31","nodeType":"VariableDeclaration","scope":6200,"src":"953:30:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":6197,"nodeType":"UserDefinedTypeName","pathNode":{"id":6196,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"953:22:31"},"referencedDeclaration":6009,"src":"953:22:31","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"internal"}],"src":"952:32:31"},"scope":6509,"src":"895:90:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"091924dc","id":6206,"implemented":false,"kind":"function","modifiers":[],"name":"getInstanceOperatorService","nameLocation":"999:26:31","nodeType":"FunctionDefinition","parameters":{"id":6201,"nodeType":"ParameterList","parameters":[],"src":"1025:2:31"},"returnParameters":{"id":6205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6204,"mutability":"mutable","name":"service","nameLocation":"1075:7:31","nodeType":"VariableDeclaration","scope":6206,"src":"1050:32:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceOperatorService_$6160","typeString":"contract IInstanceOperatorService"},"typeName":{"id":6203,"nodeType":"UserDefinedTypeName","pathNode":{"id":6202,"name":"IInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":6160,"src":"1050:24:31"},"referencedDeclaration":6160,"src":"1050:24:31","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceOperatorService_$6160","typeString":"contract IInstanceOperatorService"}},"visibility":"internal"}],"src":"1049:34:31"},"scope":6509,"src":"990:94:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a7ecda36","id":6212,"implemented":false,"kind":"function","modifiers":[],"name":"getOracleService","nameLocation":"1098:16:31","nodeType":"FunctionDefinition","parameters":{"id":6207,"nodeType":"ParameterList","parameters":[],"src":"1114:2:31"},"returnParameters":{"id":6211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6210,"mutability":"mutable","name":"service","nameLocation":"1154:7:31","nodeType":"VariableDeclaration","scope":6212,"src":"1139:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"},"typeName":{"id":6209,"nodeType":"UserDefinedTypeName","pathNode":{"id":6208,"name":"IOracleService","nodeType":"IdentifierPath","referencedDeclaration":6519,"src":"1139:14:31"},"referencedDeclaration":6519,"src":"1139:14:31","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"visibility":"internal"}],"src":"1138:24:31"},"scope":6509,"src":"1089:74:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4288121d","id":6218,"implemented":false,"kind":"function","modifiers":[],"name":"getProductService","nameLocation":"1177:17:31","nodeType":"FunctionDefinition","parameters":{"id":6213,"nodeType":"ParameterList","parameters":[],"src":"1194:2:31"},"returnParameters":{"id":6217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6216,"mutability":"mutable","name":"service","nameLocation":"1235:7:31","nodeType":"VariableDeclaration","scope":6218,"src":"1219:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"},"typeName":{"id":6215,"nodeType":"UserDefinedTypeName","pathNode":{"id":6214,"name":"IProductService","nodeType":"IdentifierPath","referencedDeclaration":6664,"src":"1219:15:31"},"referencedDeclaration":6664,"src":"1219:15:31","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"visibility":"internal"}],"src":"1218:25:31"},"scope":6509,"src":"1168:76:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"442ed817","id":6224,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolService","nameLocation":"1258:18:31","nodeType":"FunctionDefinition","parameters":{"id":6219,"nodeType":"ParameterList","parameters":[],"src":"1276:2:31"},"returnParameters":{"id":6223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6222,"mutability":"mutable","name":"service","nameLocation":"1318:7:31","nodeType":"VariableDeclaration","scope":6224,"src":"1301:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"},"typeName":{"id":6221,"nodeType":"UserDefinedTypeName","pathNode":{"id":6220,"name":"IRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":6770,"src":"1301:16:31"},"referencedDeclaration":6770,"src":"1301:16:31","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"visibility":"internal"}],"src":"1300:26:31"},"scope":6509,"src":"1249:78:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6c0f79b6","id":6229,"implemented":false,"kind":"function","modifiers":[],"name":"contracts","nameLocation":"1341:9:31","nodeType":"FunctionDefinition","parameters":{"id":6225,"nodeType":"ParameterList","parameters":[],"src":"1350:2:31"},"returnParameters":{"id":6228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6227,"mutability":"mutable","name":"numberOfContracts","nameLocation":"1384:17:31","nodeType":"VariableDeclaration","scope":6229,"src":"1376:25:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6226,"name":"uint256","nodeType":"ElementaryTypeName","src":"1376:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1375:27:31"},"scope":6509,"src":"1332:71:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f6b3e7d0","id":6236,"implemented":false,"kind":"function","modifiers":[],"name":"contractName","nameLocation":"1417:12:31","nodeType":"FunctionDefinition","parameters":{"id":6232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6231,"mutability":"mutable","name":"idx","nameLocation":"1438:3:31","nodeType":"VariableDeclaration","scope":6236,"src":"1430:11:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6230,"name":"uint256","nodeType":"ElementaryTypeName","src":"1430:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1429:13:31"},"returnParameters":{"id":6235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6234,"mutability":"mutable","name":"name","nameLocation":"1474:4:31","nodeType":"VariableDeclaration","scope":6236,"src":"1466:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6233,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1466:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1465:14:31"},"scope":6509,"src":"1408:72:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"52a9c8d7","id":6241,"implemented":false,"kind":"function","modifiers":[],"name":"getDefaultAdminRole","nameLocation":"1509:19:31","nodeType":"FunctionDefinition","parameters":{"id":6237,"nodeType":"ParameterList","parameters":[],"src":"1528:2:31"},"returnParameters":{"id":6240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6239,"mutability":"mutable","name":"role","nameLocation":"1561:4:31","nodeType":"VariableDeclaration","scope":6241,"src":"1553:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1553:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1552:14:31"},"scope":6509,"src":"1500:67:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"775a4048","id":6246,"implemented":false,"kind":"function","modifiers":[],"name":"getProductOwnerRole","nameLocation":"1581:19:31","nodeType":"FunctionDefinition","parameters":{"id":6242,"nodeType":"ParameterList","parameters":[],"src":"1600:2:31"},"returnParameters":{"id":6245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6244,"mutability":"mutable","name":"role","nameLocation":"1633:4:31","nodeType":"VariableDeclaration","scope":6246,"src":"1625:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1625:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1624:14:31"},"scope":6509,"src":"1572:67:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"d49d21c0","id":6251,"implemented":false,"kind":"function","modifiers":[],"name":"getOracleProviderRole","nameLocation":"1653:21:31","nodeType":"FunctionDefinition","parameters":{"id":6247,"nodeType":"ParameterList","parameters":[],"src":"1674:2:31"},"returnParameters":{"id":6250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6249,"mutability":"mutable","name":"role","nameLocation":"1707:4:31","nodeType":"VariableDeclaration","scope":6251,"src":"1699:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6248,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1699:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1698:14:31"},"scope":6509,"src":"1644:69:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3ffdd2f3","id":6256,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolKeeperRole","nameLocation":"1727:21:31","nodeType":"FunctionDefinition","parameters":{"id":6252,"nodeType":"ParameterList","parameters":[],"src":"1748:2:31"},"returnParameters":{"id":6255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6254,"mutability":"mutable","name":"role","nameLocation":"1781:4:31","nodeType":"VariableDeclaration","scope":6256,"src":"1773:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1773:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1772:14:31"},"scope":6509,"src":"1718:69:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"91d14854","id":6265,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1801:7:31","nodeType":"FunctionDefinition","parameters":{"id":6261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6258,"mutability":"mutable","name":"role","nameLocation":"1817:4:31","nodeType":"VariableDeclaration","scope":6265,"src":"1809:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1809:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6260,"mutability":"mutable","name":"principal","nameLocation":"1831:9:31","nodeType":"VariableDeclaration","scope":6265,"src":"1823:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6259,"name":"address","nodeType":"ElementaryTypeName","src":"1823:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1808:33:31"},"returnParameters":{"id":6264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6263,"mutability":"mutable","name":"roleIsAssigned","nameLocation":"1870:14:31","nodeType":"VariableDeclaration","scope":6265,"src":"1865:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6262,"name":"bool","nodeType":"ElementaryTypeName","src":"1865:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1864:21:31"},"scope":6509,"src":"1792:94:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c71e261f","id":6270,"implemented":false,"kind":"function","modifiers":[],"name":"products","nameLocation":"1922:8:31","nodeType":"FunctionDefinition","parameters":{"id":6266,"nodeType":"ParameterList","parameters":[],"src":"1930:2:31"},"returnParameters":{"id":6269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6268,"mutability":"mutable","name":"numberOfProducts","nameLocation":"1963:16:31","nodeType":"VariableDeclaration","scope":6270,"src":"1955:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6267,"name":"uint256","nodeType":"ElementaryTypeName","src":"1955:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1954:26:31"},"scope":6509,"src":"1913:68:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2857373a","id":6275,"implemented":false,"kind":"function","modifiers":[],"name":"oracles","nameLocation":"1995:7:31","nodeType":"FunctionDefinition","parameters":{"id":6271,"nodeType":"ParameterList","parameters":[],"src":"2002:2:31"},"returnParameters":{"id":6274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6273,"mutability":"mutable","name":"numberOfOracles","nameLocation":"2035:15:31","nodeType":"VariableDeclaration","scope":6275,"src":"2027:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6272,"name":"uint256","nodeType":"ElementaryTypeName","src":"2027:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2026:25:31"},"scope":6509,"src":"1986:66:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a054381f","id":6280,"implemented":false,"kind":"function","modifiers":[],"name":"riskpools","nameLocation":"2066:9:31","nodeType":"FunctionDefinition","parameters":{"id":6276,"nodeType":"ParameterList","parameters":[],"src":"2075:2:31"},"returnParameters":{"id":6279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6278,"mutability":"mutable","name":"numberOfRiskpools","nameLocation":"2108:17:31","nodeType":"VariableDeclaration","scope":6280,"src":"2100:25:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6277,"name":"uint256","nodeType":"ElementaryTypeName","src":"2100:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2099:27:31"},"scope":6509,"src":"2057:70:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2b1c7f73","id":6287,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentId","nameLocation":"2142:14:31","nodeType":"FunctionDefinition","parameters":{"id":6283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6282,"mutability":"mutable","name":"componentAddress","nameLocation":"2165:16:31","nodeType":"VariableDeclaration","scope":6287,"src":"2157:24:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6281,"name":"address","nodeType":"ElementaryTypeName","src":"2157:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2156:26:31"},"returnParameters":{"id":6286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6285,"mutability":"mutable","name":"componentId","nameLocation":"2213:11:31","nodeType":"VariableDeclaration","scope":6287,"src":"2205:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6284,"name":"uint256","nodeType":"ElementaryTypeName","src":"2205:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2204:21:31"},"scope":6509,"src":"2133:93:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4f27da18","id":6295,"implemented":false,"kind":"function","modifiers":[],"name":"getComponent","nameLocation":"2240:12:31","nodeType":"FunctionDefinition","parameters":{"id":6290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6289,"mutability":"mutable","name":"componentId","nameLocation":"2261:11:31","nodeType":"VariableDeclaration","scope":6295,"src":"2253:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6288,"name":"uint256","nodeType":"ElementaryTypeName","src":"2253:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2252:21:31"},"returnParameters":{"id":6294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6293,"mutability":"mutable","name":"component","nameLocation":"2307:9:31","nodeType":"VariableDeclaration","scope":6295,"src":"2296:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":6292,"nodeType":"UserDefinedTypeName","pathNode":{"id":6291,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"2296:10:31"},"referencedDeclaration":2988,"src":"2296:10:31","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"2295:22:31"},"scope":6509,"src":"2231:87:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"dd51c86a","id":6303,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentType","nameLocation":"2332:16:31","nodeType":"FunctionDefinition","parameters":{"id":6298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6297,"mutability":"mutable","name":"componentId","nameLocation":"2357:11:31","nodeType":"VariableDeclaration","scope":6303,"src":"2349:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6296,"name":"uint256","nodeType":"ElementaryTypeName","src":"2349:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2348:21:31"},"returnParameters":{"id":6302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6301,"mutability":"mutable","name":"componentType","nameLocation":"2417:13:31","nodeType":"VariableDeclaration","scope":6303,"src":"2392:38:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":6300,"nodeType":"UserDefinedTypeName","pathNode":{"id":6299,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"2392:24:31"},"referencedDeclaration":2891,"src":"2392:24:31","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"2391:40:31"},"scope":6509,"src":"2323:109:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"5e966e45","id":6311,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentState","nameLocation":"2446:17:31","nodeType":"FunctionDefinition","parameters":{"id":6306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6305,"mutability":"mutable","name":"componentId","nameLocation":"2472:11:31","nodeType":"VariableDeclaration","scope":6311,"src":"2464:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6304,"name":"uint256","nodeType":"ElementaryTypeName","src":"2464:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2463:21:31"},"returnParameters":{"id":6310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6309,"mutability":"mutable","name":"componentState","nameLocation":"2533:14:31","nodeType":"VariableDeclaration","scope":6311,"src":"2507:40:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":6308,"nodeType":"UserDefinedTypeName","pathNode":{"id":6307,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"2507:25:31"},"referencedDeclaration":2899,"src":"2507:25:31","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"2506:42:31"},"scope":6509,"src":"2437:112:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ab9c6ee4","id":6318,"implemented":false,"kind":"function","modifiers":[],"name":"getStakingRequirements","nameLocation":"2587:22:31","nodeType":"FunctionDefinition","parameters":{"id":6314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6313,"mutability":"mutable","name":"componentId","nameLocation":"2618:11:31","nodeType":"VariableDeclaration","scope":6318,"src":"2610:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6312,"name":"uint256","nodeType":"ElementaryTypeName","src":"2610:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2609:21:31"},"returnParameters":{"id":6317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6316,"mutability":"mutable","name":"data","nameLocation":"2666:4:31","nodeType":"VariableDeclaration","scope":6318,"src":"2653:17:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6315,"name":"bytes","nodeType":"ElementaryTypeName","src":"2653:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2652:19:31"},"scope":6509,"src":"2578:94:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3a42b053","id":6325,"implemented":false,"kind":"function","modifiers":[],"name":"getStakedAssets","nameLocation":"2686:15:31","nodeType":"FunctionDefinition","parameters":{"id":6321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6320,"mutability":"mutable","name":"componentId","nameLocation":"2710:11:31","nodeType":"VariableDeclaration","scope":6325,"src":"2702:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6319,"name":"uint256","nodeType":"ElementaryTypeName","src":"2702:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2701:21:31"},"returnParameters":{"id":6324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6323,"mutability":"mutable","name":"data","nameLocation":"2758:4:31","nodeType":"VariableDeclaration","scope":6325,"src":"2745:17:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6322,"name":"bytes","nodeType":"ElementaryTypeName","src":"2745:5:31","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2744:19:31"},"scope":6509,"src":"2677:87:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"eb802114","id":6333,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpool","nameLocation":"2795:11:31","nodeType":"FunctionDefinition","parameters":{"id":6328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6327,"mutability":"mutable","name":"riskpoolId","nameLocation":"2815:10:31","nodeType":"VariableDeclaration","scope":6333,"src":"2807:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6326,"name":"uint256","nodeType":"ElementaryTypeName","src":"2807:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2806:20:31"},"returnParameters":{"id":6332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6331,"mutability":"mutable","name":"riskPool","nameLocation":"2867:8:31","nodeType":"VariableDeclaration","scope":6333,"src":"2849:26:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":6330,"nodeType":"UserDefinedTypeName","pathNode":{"id":6329,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"2849:10:31"},"referencedDeclaration":5502,"src":"2849:10:31","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"src":"2848:28:31"},"scope":6509,"src":"2786:91:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"f1d354d0","id":6338,"implemented":false,"kind":"function","modifiers":[],"name":"getFullCollateralizationLevel","nameLocation":"2891:29:31","nodeType":"FunctionDefinition","parameters":{"id":6334,"nodeType":"ParameterList","parameters":[],"src":"2920:2:31"},"returnParameters":{"id":6337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6338,"src":"2946:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6335,"name":"uint256","nodeType":"ElementaryTypeName","src":"2946:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2945:9:31"},"scope":6509,"src":"2882:73:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"29560980","id":6345,"implemented":false,"kind":"function","modifiers":[],"name":"getCapital","nameLocation":"2969:10:31","nodeType":"FunctionDefinition","parameters":{"id":6341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6340,"mutability":"mutable","name":"riskpoolId","nameLocation":"2988:10:31","nodeType":"VariableDeclaration","scope":6345,"src":"2980:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6339,"name":"uint256","nodeType":"ElementaryTypeName","src":"2980:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2979:20:31"},"returnParameters":{"id":6344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6343,"mutability":"mutable","name":"capitalAmount","nameLocation":"3030:13:31","nodeType":"VariableDeclaration","scope":6345,"src":"3022:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6342,"name":"uint256","nodeType":"ElementaryTypeName","src":"3022:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3021:23:31"},"scope":6509,"src":"2960:85:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"3f5d9235","id":6352,"implemented":false,"kind":"function","modifiers":[],"name":"getTotalValueLocked","nameLocation":"3059:19:31","nodeType":"FunctionDefinition","parameters":{"id":6348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6347,"mutability":"mutable","name":"riskpoolId","nameLocation":"3087:10:31","nodeType":"VariableDeclaration","scope":6352,"src":"3079:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6346,"name":"uint256","nodeType":"ElementaryTypeName","src":"3079:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3078:20:31"},"returnParameters":{"id":6351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6350,"mutability":"mutable","name":"totalValueLockedAmount","nameLocation":"3129:22:31","nodeType":"VariableDeclaration","scope":6352,"src":"3121:30:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6349,"name":"uint256","nodeType":"ElementaryTypeName","src":"3121:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3120:32:31"},"scope":6509,"src":"3050:103:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"bcd5349f","id":6359,"implemented":false,"kind":"function","modifiers":[],"name":"getCapacity","nameLocation":"3167:11:31","nodeType":"FunctionDefinition","parameters":{"id":6355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6354,"mutability":"mutable","name":"riskpoolId","nameLocation":"3187:10:31","nodeType":"VariableDeclaration","scope":6359,"src":"3179:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6353,"name":"uint256","nodeType":"ElementaryTypeName","src":"3179:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3178:20:31"},"returnParameters":{"id":6358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6357,"mutability":"mutable","name":"capacityAmount","nameLocation":"3229:14:31","nodeType":"VariableDeclaration","scope":6359,"src":"3221:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6356,"name":"uint256","nodeType":"ElementaryTypeName","src":"3221:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3220:24:31"},"scope":6509,"src":"3158:87:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"1e010439","id":6366,"implemented":false,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"3259:10:31","nodeType":"FunctionDefinition","parameters":{"id":6362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6361,"mutability":"mutable","name":"riskpoolId","nameLocation":"3278:10:31","nodeType":"VariableDeclaration","scope":6366,"src":"3270:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6360,"name":"uint256","nodeType":"ElementaryTypeName","src":"3270:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3269:20:31"},"returnParameters":{"id":6365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6364,"mutability":"mutable","name":"balanceAmount","nameLocation":"3320:13:31","nodeType":"VariableDeclaration","scope":6366,"src":"3312:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6363,"name":"uint256","nodeType":"ElementaryTypeName","src":"3312:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3311:23:31"},"scope":6509,"src":"3250:85:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a4266a66","id":6373,"implemented":false,"kind":"function","modifiers":[],"name":"activeBundles","nameLocation":"3350:13:31","nodeType":"FunctionDefinition","parameters":{"id":6369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6368,"mutability":"mutable","name":"riskpoolId","nameLocation":"3372:10:31","nodeType":"VariableDeclaration","scope":6373,"src":"3364:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6367,"name":"uint256","nodeType":"ElementaryTypeName","src":"3364:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3363:20:31"},"returnParameters":{"id":6372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6371,"mutability":"mutable","name":"numberOfActiveBundles","nameLocation":"3414:21:31","nodeType":"VariableDeclaration","scope":6373,"src":"3406:29:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6370,"name":"uint256","nodeType":"ElementaryTypeName","src":"3406:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3405:31:31"},"scope":6509,"src":"3341:96:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ec833b0c","id":6382,"implemented":false,"kind":"function","modifiers":[],"name":"getActiveBundleId","nameLocation":"3451:17:31","nodeType":"FunctionDefinition","parameters":{"id":6378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6375,"mutability":"mutable","name":"riskpoolId","nameLocation":"3477:10:31","nodeType":"VariableDeclaration","scope":6382,"src":"3469:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6374,"name":"uint256","nodeType":"ElementaryTypeName","src":"3469:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6377,"mutability":"mutable","name":"bundleIdx","nameLocation":"3497:9:31","nodeType":"VariableDeclaration","scope":6382,"src":"3489:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6376,"name":"uint256","nodeType":"ElementaryTypeName","src":"3489:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3468:39:31"},"returnParameters":{"id":6381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6380,"mutability":"mutable","name":"bundleId","nameLocation":"3538:8:31","nodeType":"VariableDeclaration","scope":6382,"src":"3530:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6379,"name":"uint256","nodeType":"ElementaryTypeName","src":"3530:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3529:18:31"},"scope":6509,"src":"3442:106:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7db32844","id":6389,"implemented":false,"kind":"function","modifiers":[],"name":"getMaximumNumberOfActiveBundles","nameLocation":"3562:31:31","nodeType":"FunctionDefinition","parameters":{"id":6385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6384,"mutability":"mutable","name":"riskpoolId","nameLocation":"3602:10:31","nodeType":"VariableDeclaration","scope":6389,"src":"3594:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6383,"name":"uint256","nodeType":"ElementaryTypeName","src":"3594:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3593:20:31"},"returnParameters":{"id":6388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6387,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"3644:28:31","nodeType":"VariableDeclaration","scope":6389,"src":"3636:36:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6386,"name":"uint256","nodeType":"ElementaryTypeName","src":"3636:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3635:38:31"},"scope":6509,"src":"3553:121:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"eb35783c","id":6395,"implemented":false,"kind":"function","modifiers":[],"name":"getBundleToken","nameLocation":"3704:14:31","nodeType":"FunctionDefinition","parameters":{"id":6390,"nodeType":"ParameterList","parameters":[],"src":"3718:2:31"},"returnParameters":{"id":6394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6393,"mutability":"mutable","name":"token","nameLocation":"3756:5:31","nodeType":"VariableDeclaration","scope":6395,"src":"3743:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"},"typeName":{"id":6392,"nodeType":"UserDefinedTypeName","pathNode":{"id":6391,"name":"IBundleToken","nodeType":"IdentifierPath","referencedDeclaration":6825,"src":"3743:12:31"},"referencedDeclaration":6825,"src":"3743:12:31","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"visibility":"internal"}],"src":"3742:20:31"},"scope":6509,"src":"3695:68:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18442e63","id":6400,"implemented":false,"kind":"function","modifiers":[],"name":"bundles","nameLocation":"3777:7:31","nodeType":"FunctionDefinition","parameters":{"id":6396,"nodeType":"ParameterList","parameters":[],"src":"3784:2:31"},"returnParameters":{"id":6399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6398,"mutability":"mutable","name":"numberOfBundles","nameLocation":"3817:15:31","nodeType":"VariableDeclaration","scope":6400,"src":"3809:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6397,"name":"uint256","nodeType":"ElementaryTypeName","src":"3809:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3808:25:31"},"scope":6509,"src":"3768:66:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"2d0821b7","id":6408,"implemented":false,"kind":"function","modifiers":[],"name":"getBundle","nameLocation":"3848:9:31","nodeType":"FunctionDefinition","parameters":{"id":6403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6402,"mutability":"mutable","name":"bundleId","nameLocation":"3866:8:31","nodeType":"VariableDeclaration","scope":6408,"src":"3858:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6401,"name":"uint256","nodeType":"ElementaryTypeName","src":"3858:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3857:18:31"},"returnParameters":{"id":6407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6406,"mutability":"mutable","name":"bundle","nameLocation":"3920:6:31","nodeType":"VariableDeclaration","scope":6408,"src":"3898:28:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":6405,"nodeType":"UserDefinedTypeName","pathNode":{"id":6404,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"3898:14:31"},"referencedDeclaration":4936,"src":"3898:14:31","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"src":"3897:30:31"},"scope":6509,"src":"3839:89:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"c559783e","id":6415,"implemented":false,"kind":"function","modifiers":[],"name":"unburntBundles","nameLocation":"3942:14:31","nodeType":"FunctionDefinition","parameters":{"id":6411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6410,"mutability":"mutable","name":"riskpoolId","nameLocation":"3965:10:31","nodeType":"VariableDeclaration","scope":6415,"src":"3957:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6409,"name":"uint256","nodeType":"ElementaryTypeName","src":"3957:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3956:20:31"},"returnParameters":{"id":6414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6413,"mutability":"mutable","name":"numberOfUnburntBundles","nameLocation":"4007:22:31","nodeType":"VariableDeclaration","scope":6415,"src":"3999:30:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6412,"name":"uint256","nodeType":"ElementaryTypeName","src":"3999:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3998:32:31"},"scope":6509,"src":"3933:98:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a427056e","id":6420,"implemented":false,"kind":"function","modifiers":[],"name":"processIds","nameLocation":"4060:10:31","nodeType":"FunctionDefinition","parameters":{"id":6416,"nodeType":"ParameterList","parameters":[],"src":"4070:2:31"},"returnParameters":{"id":6419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6418,"mutability":"mutable","name":"numberOfProcessIds","nameLocation":"4103:18:31","nodeType":"VariableDeclaration","scope":6420,"src":"4095:26:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6417,"name":"uint256","nodeType":"ElementaryTypeName","src":"4095:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4094:28:31"},"scope":6509,"src":"4051:72:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a5961b4c","id":6428,"implemented":false,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"4137:11:31","nodeType":"FunctionDefinition","parameters":{"id":6423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6422,"mutability":"mutable","name":"processId","nameLocation":"4157:9:31","nodeType":"VariableDeclaration","scope":6428,"src":"4149:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4149:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4148:19:31"},"returnParameters":{"id":6427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6426,"mutability":"mutable","name":"metadata","nameLocation":"4214:8:31","nodeType":"VariableDeclaration","scope":6428,"src":"4190:32:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":6425,"nodeType":"UserDefinedTypeName","pathNode":{"id":6424,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"4190:16:31"},"referencedDeclaration":5248,"src":"4190:16:31","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"src":"4189:34:31"},"scope":6509,"src":"4128:96:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"bc506f64","id":6436,"implemented":false,"kind":"function","modifiers":[],"name":"getApplication","nameLocation":"4238:14:31","nodeType":"FunctionDefinition","parameters":{"id":6431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6430,"mutability":"mutable","name":"processId","nameLocation":"4261:9:31","nodeType":"VariableDeclaration","scope":6436,"src":"4253:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4253:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4252:19:31"},"returnParameters":{"id":6435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6434,"mutability":"mutable","name":"application","nameLocation":"4321:11:31","nodeType":"VariableDeclaration","scope":6436,"src":"4294:38:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":6433,"nodeType":"UserDefinedTypeName","pathNode":{"id":6432,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"4294:19:31"},"referencedDeclaration":5262,"src":"4294:19:31","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"4293:40:31"},"scope":6509,"src":"4229:105:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a3f685f9","id":6444,"implemented":false,"kind":"function","modifiers":[],"name":"getPolicy","nameLocation":"4348:9:31","nodeType":"FunctionDefinition","parameters":{"id":6439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6438,"mutability":"mutable","name":"processId","nameLocation":"4366:9:31","nodeType":"VariableDeclaration","scope":6444,"src":"4358:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4358:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4357:19:31"},"returnParameters":{"id":6443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6442,"mutability":"mutable","name":"policy","nameLocation":"4421:6:31","nodeType":"VariableDeclaration","scope":6444,"src":"4399:28:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":6441,"nodeType":"UserDefinedTypeName","pathNode":{"id":6440,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"4399:14:31"},"referencedDeclaration":5282,"src":"4399:14:31","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"src":"4398:30:31"},"scope":6509,"src":"4339:90:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"eff0f592","id":6451,"implemented":false,"kind":"function","modifiers":[],"name":"claims","nameLocation":"4443:6:31","nodeType":"FunctionDefinition","parameters":{"id":6447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6446,"mutability":"mutable","name":"processId","nameLocation":"4458:9:31","nodeType":"VariableDeclaration","scope":6451,"src":"4450:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4450:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4449:19:31"},"returnParameters":{"id":6450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6449,"mutability":"mutable","name":"numberOfClaims","nameLocation":"4499:14:31","nodeType":"VariableDeclaration","scope":6451,"src":"4491:22:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6448,"name":"uint256","nodeType":"ElementaryTypeName","src":"4491:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4490:24:31"},"scope":6509,"src":"4434:81:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"aeddb905","id":6458,"implemented":false,"kind":"function","modifiers":[],"name":"payouts","nameLocation":"4529:7:31","nodeType":"FunctionDefinition","parameters":{"id":6454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6453,"mutability":"mutable","name":"processId","nameLocation":"4545:9:31","nodeType":"VariableDeclaration","scope":6458,"src":"4537:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4537:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4536:19:31"},"returnParameters":{"id":6457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6456,"mutability":"mutable","name":"numberOfPayouts","nameLocation":"4586:15:31","nodeType":"VariableDeclaration","scope":6458,"src":"4578:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6455,"name":"uint256","nodeType":"ElementaryTypeName","src":"4578:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4577:25:31"},"scope":6509,"src":"4520:83:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"7f22c2d9","id":6468,"implemented":false,"kind":"function","modifiers":[],"name":"getClaim","nameLocation":"4618:8:31","nodeType":"FunctionDefinition","parameters":{"id":6463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6460,"mutability":"mutable","name":"processId","nameLocation":"4635:9:31","nodeType":"VariableDeclaration","scope":6468,"src":"4627:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4627:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6462,"mutability":"mutable","name":"claimId","nameLocation":"4654:7:31","nodeType":"VariableDeclaration","scope":6468,"src":"4646:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6461,"name":"uint256","nodeType":"ElementaryTypeName","src":"4646:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4626:36:31"},"returnParameters":{"id":6467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6466,"mutability":"mutable","name":"claim","nameLocation":"4707:5:31","nodeType":"VariableDeclaration","scope":6468,"src":"4686:26:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":6465,"nodeType":"UserDefinedTypeName","pathNode":{"id":6464,"name":"IPolicy.Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"4686:13:31"},"referencedDeclaration":5296,"src":"4686:13:31","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"src":"4685:28:31"},"scope":6509,"src":"4609:105:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"cef58f13","id":6478,"implemented":false,"kind":"function","modifiers":[],"name":"getPayout","nameLocation":"4728:9:31","nodeType":"FunctionDefinition","parameters":{"id":6473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6470,"mutability":"mutable","name":"processId","nameLocation":"4746:9:31","nodeType":"VariableDeclaration","scope":6478,"src":"4738:17:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4738:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6472,"mutability":"mutable","name":"payoutId","nameLocation":"4765:8:31","nodeType":"VariableDeclaration","scope":6478,"src":"4757:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6471,"name":"uint256","nodeType":"ElementaryTypeName","src":"4757:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4737:37:31"},"returnParameters":{"id":6477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6476,"mutability":"mutable","name":"payout","nameLocation":"4820:6:31","nodeType":"VariableDeclaration","scope":6478,"src":"4798:28:31","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":6475,"nodeType":"UserDefinedTypeName","pathNode":{"id":6474,"name":"IPolicy.Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"4798:14:31"},"referencedDeclaration":5310,"src":"4798:14:31","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"src":"4797:30:31"},"scope":6509,"src":"4719:109:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"e0024604","id":6483,"implemented":false,"kind":"function","modifiers":[],"name":"getTreasuryAddress","nameLocation":"4859:18:31","nodeType":"FunctionDefinition","parameters":{"id":6479,"nodeType":"ParameterList","parameters":[],"src":"4877:2:31"},"returnParameters":{"id":6482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6481,"mutability":"mutable","name":"treasuryAddress","nameLocation":"4910:15:31","nodeType":"VariableDeclaration","scope":6483,"src":"4902:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6480,"name":"address","nodeType":"ElementaryTypeName","src":"4902:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4901:25:31"},"scope":6509,"src":"4850:77:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"a44330c4","id":6488,"implemented":false,"kind":"function","modifiers":[],"name":"getInstanceWallet","nameLocation":"4943:17:31","nodeType":"FunctionDefinition","parameters":{"id":6484,"nodeType":"ParameterList","parameters":[],"src":"4960:2:31"},"returnParameters":{"id":6487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6486,"mutability":"mutable","name":"walletAddress","nameLocation":"4993:13:31","nodeType":"VariableDeclaration","scope":6488,"src":"4985:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6485,"name":"address","nodeType":"ElementaryTypeName","src":"4985:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4984:23:31"},"scope":6509,"src":"4934:74:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"49081637","id":6495,"implemented":false,"kind":"function","modifiers":[],"name":"getRiskpoolWallet","nameLocation":"5022:17:31","nodeType":"FunctionDefinition","parameters":{"id":6491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6490,"mutability":"mutable","name":"riskpoolId","nameLocation":"5048:10:31","nodeType":"VariableDeclaration","scope":6495,"src":"5040:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6489,"name":"uint256","nodeType":"ElementaryTypeName","src":"5040:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5039:20:31"},"returnParameters":{"id":6494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6493,"mutability":"mutable","name":"walletAddress","nameLocation":"5090:13:31","nodeType":"VariableDeclaration","scope":6495,"src":"5082:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6492,"name":"address","nodeType":"ElementaryTypeName","src":"5082:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5081:23:31"},"scope":6509,"src":"5013:92:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"038696bb","id":6503,"implemented":false,"kind":"function","modifiers":[],"name":"getComponentToken","nameLocation":"5121:17:31","nodeType":"FunctionDefinition","parameters":{"id":6498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6497,"mutability":"mutable","name":"componentId","nameLocation":"5147:11:31","nodeType":"VariableDeclaration","scope":6503,"src":"5139:19:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6496,"name":"uint256","nodeType":"ElementaryTypeName","src":"5139:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5138:21:31"},"returnParameters":{"id":6502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6501,"mutability":"mutable","name":"token","nameLocation":"5189:5:31","nodeType":"VariableDeclaration","scope":6503,"src":"5182:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":6500,"nodeType":"UserDefinedTypeName","pathNode":{"id":6499,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"5182:6:31"},"referencedDeclaration":8831,"src":"5182:6:31","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"5181:14:31"},"scope":6509,"src":"5112:84:31","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"6319112b","id":6508,"implemented":false,"kind":"function","modifiers":[],"name":"getFeeFractionFullUnit","nameLocation":"5210:22:31","nodeType":"FunctionDefinition","parameters":{"id":6504,"nodeType":"ParameterList","parameters":[],"src":"5232:2:31"},"returnParameters":{"id":6507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6506,"mutability":"mutable","name":"fullUnit","nameLocation":"5265:8:31","nodeType":"VariableDeclaration","scope":6508,"src":"5257:16:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6505,"name":"uint256","nodeType":"ElementaryTypeName","src":"5257:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5256:18:31"},"scope":6509,"src":"5201:74:31","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6510,"src":"530:4748:31"}],"src":"39:5240:31"},"id":31},"@etherisc/gif-interface/contracts/services/IOracleService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IOracleService.sol","exportedSymbols":{"IOracleService":[6519]},"id":6520,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6511,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:32"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6519,"linearizedBaseContracts":[6519],"name":"IOracleService","nameLocation":"73:14:32","nodeType":"ContractDefinition","nodes":[{"functionSelector":"e409534a","id":6518,"implemented":false,"kind":"function","modifiers":[],"name":"respond","nameLocation":"104:7:32","nodeType":"FunctionDefinition","parameters":{"id":6516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6513,"mutability":"mutable","name":"requestId","nameLocation":"120:9:32","nodeType":"VariableDeclaration","scope":6518,"src":"112:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6512,"name":"uint256","nodeType":"ElementaryTypeName","src":"112:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6515,"mutability":"mutable","name":"data","nameLocation":"146:4:32","nodeType":"VariableDeclaration","scope":6518,"src":"131:19:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6514,"name":"bytes","nodeType":"ElementaryTypeName","src":"131:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"111:40:32"},"returnParameters":{"id":6517,"nodeType":"ParameterList","parameters":[],"src":"160:0:32"},"scope":6519,"src":"95:66:32","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6520,"src":"63:100:32"}],"src":"39:125:32"},"id":32},"@etherisc/gif-interface/contracts/services/IProductService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","exportedSymbols":{"IProductService":[6664]},"id":6665,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6521,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:33"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6664,"linearizedBaseContracts":[6664],"name":"IProductService","nameLocation":"73:15:33","nodeType":"ContractDefinition","nodes":[{"functionSelector":"93b8414a","id":6536,"implemented":false,"kind":"function","modifiers":[],"name":"newApplication","nameLocation":"105:14:33","nodeType":"FunctionDefinition","parameters":{"id":6532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6523,"mutability":"mutable","name":"owner","nameLocation":"137:5:33","nodeType":"VariableDeclaration","scope":6536,"src":"129:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6522,"name":"address","nodeType":"ElementaryTypeName","src":"129:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6525,"mutability":"mutable","name":"premiumAmount","nameLocation":"160:13:33","nodeType":"VariableDeclaration","scope":6536,"src":"152:21:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6524,"name":"uint256","nodeType":"ElementaryTypeName","src":"152:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6527,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"191:16:33","nodeType":"VariableDeclaration","scope":6536,"src":"183:24:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6526,"name":"uint256","nodeType":"ElementaryTypeName","src":"183:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6529,"mutability":"mutable","name":"metaData","nameLocation":"232:8:33","nodeType":"VariableDeclaration","scope":6536,"src":"217:23:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6528,"name":"bytes","nodeType":"ElementaryTypeName","src":"217:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6531,"mutability":"mutable","name":"applicationData","nameLocation":"266:15:33","nodeType":"VariableDeclaration","scope":6536,"src":"251:30:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6530,"name":"bytes","nodeType":"ElementaryTypeName","src":"251:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"119:169:33"},"returnParameters":{"id":6535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6534,"mutability":"mutable","name":"processId","nameLocation":"314:9:33","nodeType":"VariableDeclaration","scope":6536,"src":"306:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"305:19:33"},"scope":6664,"src":"96:229:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"e3ebdea5","id":6549,"implemented":false,"kind":"function","modifiers":[],"name":"collectPremium","nameLocation":"340:14:33","nodeType":"FunctionDefinition","parameters":{"id":6541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6538,"mutability":"mutable","name":"processId","nameLocation":"363:9:33","nodeType":"VariableDeclaration","scope":6549,"src":"355:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"355:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6540,"mutability":"mutable","name":"amount","nameLocation":"382:6:33","nodeType":"VariableDeclaration","scope":6549,"src":"374:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6539,"name":"uint256","nodeType":"ElementaryTypeName","src":"374:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"354:35:33"},"returnParameters":{"id":6548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6543,"mutability":"mutable","name":"success","nameLocation":"433:7:33","nodeType":"VariableDeclaration","scope":6549,"src":"428:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6542,"name":"bool","nodeType":"ElementaryTypeName","src":"428:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6545,"mutability":"mutable","name":"feeAmount","nameLocation":"462:9:33","nodeType":"VariableDeclaration","scope":6549,"src":"454:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6544,"name":"uint256","nodeType":"ElementaryTypeName","src":"454:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6547,"mutability":"mutable","name":"netPremiumAmount","nameLocation":"493:16:33","nodeType":"VariableDeclaration","scope":6549,"src":"485:24:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6546,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"414:105:33"},"scope":6664,"src":"331:189:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"30a73da5","id":6558,"implemented":false,"kind":"function","modifiers":[],"name":"adjustPremiumSumInsured","nameLocation":"539:23:33","nodeType":"FunctionDefinition","parameters":{"id":6556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6551,"mutability":"mutable","name":"processId","nameLocation":"580:9:33","nodeType":"VariableDeclaration","scope":6558,"src":"572:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"572:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6553,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"608:21:33","nodeType":"VariableDeclaration","scope":6558,"src":"600:29:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6552,"name":"uint256","nodeType":"ElementaryTypeName","src":"600:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6555,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"647:16:33","nodeType":"VariableDeclaration","scope":6558,"src":"639:24:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6554,"name":"uint256","nodeType":"ElementaryTypeName","src":"639:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"562:107:33"},"returnParameters":{"id":6557,"nodeType":"ParameterList","parameters":[],"src":"678:0:33"},"scope":6664,"src":"530:149:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b75c7dc6","id":6563,"implemented":false,"kind":"function","modifiers":[],"name":"revoke","nameLocation":"694:6:33","nodeType":"FunctionDefinition","parameters":{"id":6561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6560,"mutability":"mutable","name":"processId","nameLocation":"709:9:33","nodeType":"VariableDeclaration","scope":6563,"src":"701:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"701:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"700:19:33"},"returnParameters":{"id":6562,"nodeType":"ParameterList","parameters":[],"src":"728:0:33"},"scope":6664,"src":"685:44:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"1b07b17f","id":6570,"implemented":false,"kind":"function","modifiers":[],"name":"underwrite","nameLocation":"743:10:33","nodeType":"FunctionDefinition","parameters":{"id":6566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6565,"mutability":"mutable","name":"processId","nameLocation":"762:9:33","nodeType":"VariableDeclaration","scope":6570,"src":"754:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"754:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"753:19:33"},"returnParameters":{"id":6569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6568,"mutability":"mutable","name":"success","nameLocation":"795:7:33","nodeType":"VariableDeclaration","scope":6570,"src":"790:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6567,"name":"bool","nodeType":"ElementaryTypeName","src":"790:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"789:14:33"},"scope":6664,"src":"734:70:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8cc7d3d1","id":6575,"implemented":false,"kind":"function","modifiers":[],"name":"decline","nameLocation":"818:7:33","nodeType":"FunctionDefinition","parameters":{"id":6573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6572,"mutability":"mutable","name":"processId","nameLocation":"834:9:33","nodeType":"VariableDeclaration","scope":6575,"src":"826:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6571,"name":"bytes32","nodeType":"ElementaryTypeName","src":"826:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"825:19:33"},"returnParameters":{"id":6574,"nodeType":"ParameterList","parameters":[],"src":"853:0:33"},"scope":6664,"src":"809:45:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"c6441798","id":6580,"implemented":false,"kind":"function","modifiers":[],"name":"expire","nameLocation":"868:6:33","nodeType":"FunctionDefinition","parameters":{"id":6578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6577,"mutability":"mutable","name":"processId","nameLocation":"883:9:33","nodeType":"VariableDeclaration","scope":6580,"src":"875:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6576,"name":"bytes32","nodeType":"ElementaryTypeName","src":"875:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"874:19:33"},"returnParameters":{"id":6579,"nodeType":"ParameterList","parameters":[],"src":"902:0:33"},"scope":6664,"src":"859:44:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"39c79e0c","id":6585,"implemented":false,"kind":"function","modifiers":[],"name":"close","nameLocation":"917:5:33","nodeType":"FunctionDefinition","parameters":{"id":6583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6582,"mutability":"mutable","name":"processId","nameLocation":"931:9:33","nodeType":"VariableDeclaration","scope":6585,"src":"923:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"923:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"922:19:33"},"returnParameters":{"id":6584,"nodeType":"ParameterList","parameters":[],"src":"950:0:33"},"scope":6664,"src":"908:43:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fae43d15","id":6596,"implemented":false,"kind":"function","modifiers":[],"name":"newClaim","nameLocation":"966:8:33","nodeType":"FunctionDefinition","parameters":{"id":6592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6587,"mutability":"mutable","name":"processId","nameLocation":"992:9:33","nodeType":"VariableDeclaration","scope":6596,"src":"984:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6586,"name":"bytes32","nodeType":"ElementaryTypeName","src":"984:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6589,"mutability":"mutable","name":"claimAmount","nameLocation":"1020:11:33","nodeType":"VariableDeclaration","scope":6596,"src":"1012:19:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6588,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6591,"mutability":"mutable","name":"data","nameLocation":"1056:4:33","nodeType":"VariableDeclaration","scope":6596,"src":"1041:19:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6590,"name":"bytes","nodeType":"ElementaryTypeName","src":"1041:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"974:92:33"},"returnParameters":{"id":6595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6594,"mutability":"mutable","name":"claimId","nameLocation":"1092:7:33","nodeType":"VariableDeclaration","scope":6596,"src":"1084:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6593,"name":"uint256","nodeType":"ElementaryTypeName","src":"1084:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1083:17:33"},"scope":6664,"src":"957:144:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4e02c63f","id":6605,"implemented":false,"kind":"function","modifiers":[],"name":"confirmClaim","nameLocation":"1116:12:33","nodeType":"FunctionDefinition","parameters":{"id":6603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6598,"mutability":"mutable","name":"processId","nameLocation":"1146:9:33","nodeType":"VariableDeclaration","scope":6605,"src":"1138:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1138:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6600,"mutability":"mutable","name":"claimId","nameLocation":"1174:7:33","nodeType":"VariableDeclaration","scope":6605,"src":"1166:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6599,"name":"uint256","nodeType":"ElementaryTypeName","src":"1166:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6602,"mutability":"mutable","name":"confirmedAmount","nameLocation":"1200:15:33","nodeType":"VariableDeclaration","scope":6605,"src":"1192:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6601,"name":"uint256","nodeType":"ElementaryTypeName","src":"1192:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1128:93:33"},"returnParameters":{"id":6604,"nodeType":"ParameterList","parameters":[],"src":"1230:0:33"},"scope":6664,"src":"1107:124:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4cda0de9","id":6612,"implemented":false,"kind":"function","modifiers":[],"name":"declineClaim","nameLocation":"1246:12:33","nodeType":"FunctionDefinition","parameters":{"id":6610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6607,"mutability":"mutable","name":"processId","nameLocation":"1267:9:33","nodeType":"VariableDeclaration","scope":6612,"src":"1259:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1259:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6609,"mutability":"mutable","name":"claimId","nameLocation":"1286:7:33","nodeType":"VariableDeclaration","scope":6612,"src":"1278:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6608,"name":"uint256","nodeType":"ElementaryTypeName","src":"1278:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1258:36:33"},"returnParameters":{"id":6611,"nodeType":"ParameterList","parameters":[],"src":"1303:0:33"},"scope":6664,"src":"1237:67:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"7f29dba2","id":6619,"implemented":false,"kind":"function","modifiers":[],"name":"closeClaim","nameLocation":"1318:10:33","nodeType":"FunctionDefinition","parameters":{"id":6617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6614,"mutability":"mutable","name":"processId","nameLocation":"1337:9:33","nodeType":"VariableDeclaration","scope":6619,"src":"1329:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1329:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6616,"mutability":"mutable","name":"claimId","nameLocation":"1356:7:33","nodeType":"VariableDeclaration","scope":6619,"src":"1348:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6615,"name":"uint256","nodeType":"ElementaryTypeName","src":"1348:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1328:36:33"},"returnParameters":{"id":6618,"nodeType":"ParameterList","parameters":[],"src":"1373:0:33"},"scope":6664,"src":"1309:65:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"781d7846","id":6632,"implemented":false,"kind":"function","modifiers":[],"name":"newPayout","nameLocation":"1389:9:33","nodeType":"FunctionDefinition","parameters":{"id":6628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6621,"mutability":"mutable","name":"processId","nameLocation":"1416:9:33","nodeType":"VariableDeclaration","scope":6632,"src":"1408:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1408:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6623,"mutability":"mutable","name":"claimId","nameLocation":"1444:7:33","nodeType":"VariableDeclaration","scope":6632,"src":"1436:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6622,"name":"uint256","nodeType":"ElementaryTypeName","src":"1436:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6625,"mutability":"mutable","name":"amount","nameLocation":"1470:6:33","nodeType":"VariableDeclaration","scope":6632,"src":"1462:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6624,"name":"uint256","nodeType":"ElementaryTypeName","src":"1462:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6627,"mutability":"mutable","name":"data","nameLocation":"1501:4:33","nodeType":"VariableDeclaration","scope":6632,"src":"1486:19:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6626,"name":"bytes","nodeType":"ElementaryTypeName","src":"1486:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1398:113:33"},"returnParameters":{"id":6631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6630,"mutability":"mutable","name":"payoutId","nameLocation":"1537:8:33","nodeType":"VariableDeclaration","scope":6632,"src":"1529:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6629,"name":"uint256","nodeType":"ElementaryTypeName","src":"1529:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1528:18:33"},"scope":6664,"src":"1380:167:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"fe64372b","id":6643,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"1562:13:33","nodeType":"FunctionDefinition","parameters":{"id":6637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6634,"mutability":"mutable","name":"processId","nameLocation":"1584:9:33","nodeType":"VariableDeclaration","scope":6643,"src":"1576:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6633,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1576:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6636,"mutability":"mutable","name":"payoutId","nameLocation":"1603:8:33","nodeType":"VariableDeclaration","scope":6643,"src":"1595:16:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6635,"name":"uint256","nodeType":"ElementaryTypeName","src":"1595:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1575:37:33"},"returnParameters":{"id":6642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6639,"mutability":"mutable","name":"feeAmount","nameLocation":"1659:9:33","nodeType":"VariableDeclaration","scope":6643,"src":"1651:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6638,"name":"uint256","nodeType":"ElementaryTypeName","src":"1651:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6641,"mutability":"mutable","name":"netPayoutAmount","nameLocation":"1690:15:33","nodeType":"VariableDeclaration","scope":6643,"src":"1682:23:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6640,"name":"uint256","nodeType":"ElementaryTypeName","src":"1682:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1637:78:33"},"scope":6664,"src":"1553:163:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2c933f22","id":6658,"implemented":false,"kind":"function","modifiers":[],"name":"request","nameLocation":"1731:7:33","nodeType":"FunctionDefinition","parameters":{"id":6654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6645,"mutability":"mutable","name":"processId","nameLocation":"1756:9:33","nodeType":"VariableDeclaration","scope":6658,"src":"1748:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1748:7:33","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6647,"mutability":"mutable","name":"data","nameLocation":"1790:4:33","nodeType":"VariableDeclaration","scope":6658,"src":"1775:19:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6646,"name":"bytes","nodeType":"ElementaryTypeName","src":"1775:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6649,"mutability":"mutable","name":"callbackMethodName","nameLocation":"1820:18:33","nodeType":"VariableDeclaration","scope":6658,"src":"1804:34:33","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":6648,"name":"string","nodeType":"ElementaryTypeName","src":"1804:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6651,"mutability":"mutable","name":"callbackContractAddress","nameLocation":"1856:23:33","nodeType":"VariableDeclaration","scope":6658,"src":"1848:31:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6650,"name":"address","nodeType":"ElementaryTypeName","src":"1848:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6653,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"1897:19:33","nodeType":"VariableDeclaration","scope":6658,"src":"1889:27:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6652,"name":"uint256","nodeType":"ElementaryTypeName","src":"1889:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1738:184:33"},"returnParameters":{"id":6657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6656,"mutability":"mutable","name":"requestId","nameLocation":"1948:9:33","nodeType":"VariableDeclaration","scope":6658,"src":"1940:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6655,"name":"uint256","nodeType":"ElementaryTypeName","src":"1940:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1939:19:33"},"scope":6664,"src":"1722:237:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"3015394c","id":6663,"implemented":false,"kind":"function","modifiers":[],"name":"cancelRequest","nameLocation":"1974:13:33","nodeType":"FunctionDefinition","parameters":{"id":6661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6660,"mutability":"mutable","name":"requestId","nameLocation":"1996:9:33","nodeType":"VariableDeclaration","scope":6663,"src":"1988:17:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6659,"name":"uint256","nodeType":"ElementaryTypeName","src":"1988:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1987:19:33"},"returnParameters":{"id":6662,"nodeType":"ParameterList","parameters":[],"src":"2015:0:33"},"scope":6664,"src":"1965:51:33","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6665,"src":"63:1955:33"}],"src":"39:1980:33"},"id":33},"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","exportedSymbols":{"IRiskpoolService":[6770]},"id":6771,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6666,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:34"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":6770,"linearizedBaseContracts":[6770],"name":"IRiskpoolService","nameLocation":"73:16:34","nodeType":"ContractDefinition","nodes":[{"functionSelector":"bf2e3546","id":6677,"implemented":false,"kind":"function","modifiers":[],"name":"registerRiskpool","nameLocation":"106:16:34","nodeType":"FunctionDefinition","parameters":{"id":6675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6668,"mutability":"mutable","name":"wallet","nameLocation":"140:6:34","nodeType":"VariableDeclaration","scope":6677,"src":"132:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6667,"name":"address","nodeType":"ElementaryTypeName","src":"132:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6670,"mutability":"mutable","name":"erc20Token","nameLocation":"164:10:34","nodeType":"VariableDeclaration","scope":6677,"src":"156:18:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6669,"name":"address","nodeType":"ElementaryTypeName","src":"156:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6672,"mutability":"mutable","name":"collateralization","nameLocation":"192:17:34","nodeType":"VariableDeclaration","scope":6677,"src":"184:25:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6671,"name":"uint256","nodeType":"ElementaryTypeName","src":"184:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6674,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"228:18:34","nodeType":"VariableDeclaration","scope":6677,"src":"220:26:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6673,"name":"uint256","nodeType":"ElementaryTypeName","src":"220:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"122:130:34"},"returnParameters":{"id":6676,"nodeType":"ParameterList","parameters":[],"src":"261:0:34"},"scope":6770,"src":"97:165:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"15fc1e74","id":6688,"implemented":false,"kind":"function","modifiers":[],"name":"createBundle","nameLocation":"277:12:34","nodeType":"FunctionDefinition","parameters":{"id":6684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6679,"mutability":"mutable","name":"owner_","nameLocation":"298:6:34","nodeType":"VariableDeclaration","scope":6688,"src":"290:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6678,"name":"address","nodeType":"ElementaryTypeName","src":"290:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6681,"mutability":"mutable","name":"filter_","nameLocation":"321:7:34","nodeType":"VariableDeclaration","scope":6688,"src":"306:22:34","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6680,"name":"bytes","nodeType":"ElementaryTypeName","src":"306:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6683,"mutability":"mutable","name":"amount_","nameLocation":"338:7:34","nodeType":"VariableDeclaration","scope":6688,"src":"330:15:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6682,"name":"uint256","nodeType":"ElementaryTypeName","src":"330:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"289:57:34"},"returnParameters":{"id":6687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6686,"mutability":"mutable","name":"bundleId","nameLocation":"372:8:34","nodeType":"VariableDeclaration","scope":6688,"src":"364:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6685,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"363:18:34"},"scope":6770,"src":"268:114:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"89002da5","id":6697,"implemented":false,"kind":"function","modifiers":[],"name":"fundBundle","nameLocation":"396:10:34","nodeType":"FunctionDefinition","parameters":{"id":6693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6690,"mutability":"mutable","name":"bundleId","nameLocation":"415:8:34","nodeType":"VariableDeclaration","scope":6697,"src":"407:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6689,"name":"uint256","nodeType":"ElementaryTypeName","src":"407:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6692,"mutability":"mutable","name":"amount","nameLocation":"433:6:34","nodeType":"VariableDeclaration","scope":6697,"src":"425:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6691,"name":"uint256","nodeType":"ElementaryTypeName","src":"425:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"406:34:34"},"returnParameters":{"id":6696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6695,"mutability":"mutable","name":"netAmount","nameLocation":"466:9:34","nodeType":"VariableDeclaration","scope":6697,"src":"458:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6694,"name":"uint256","nodeType":"ElementaryTypeName","src":"458:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"457:19:34"},"scope":6770,"src":"387:90:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"36153f3a","id":6706,"implemented":false,"kind":"function","modifiers":[],"name":"defundBundle","nameLocation":"491:12:34","nodeType":"FunctionDefinition","parameters":{"id":6702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6699,"mutability":"mutable","name":"bundleId","nameLocation":"512:8:34","nodeType":"VariableDeclaration","scope":6706,"src":"504:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6698,"name":"uint256","nodeType":"ElementaryTypeName","src":"504:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6701,"mutability":"mutable","name":"amount","nameLocation":"530:6:34","nodeType":"VariableDeclaration","scope":6706,"src":"522:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6700,"name":"uint256","nodeType":"ElementaryTypeName","src":"522:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"503:34:34"},"returnParameters":{"id":6705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6704,"mutability":"mutable","name":"netAmount","nameLocation":"563:9:34","nodeType":"VariableDeclaration","scope":6706,"src":"555:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6703,"name":"uint256","nodeType":"ElementaryTypeName","src":"555:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"554:19:34"},"scope":6770,"src":"482:92:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"a17030d5","id":6711,"implemented":false,"kind":"function","modifiers":[],"name":"lockBundle","nameLocation":"589:10:34","nodeType":"FunctionDefinition","parameters":{"id":6709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6708,"mutability":"mutable","name":"bundleId","nameLocation":"608:8:34","nodeType":"VariableDeclaration","scope":6711,"src":"600:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6707,"name":"uint256","nodeType":"ElementaryTypeName","src":"600:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"599:18:34"},"returnParameters":{"id":6710,"nodeType":"ParameterList","parameters":[],"src":"626:0:34"},"scope":6770,"src":"580:47:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"316c5348","id":6716,"implemented":false,"kind":"function","modifiers":[],"name":"unlockBundle","nameLocation":"641:12:34","nodeType":"FunctionDefinition","parameters":{"id":6714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6713,"mutability":"mutable","name":"bundleId","nameLocation":"662:8:34","nodeType":"VariableDeclaration","scope":6716,"src":"654:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6712,"name":"uint256","nodeType":"ElementaryTypeName","src":"654:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"653:18:34"},"returnParameters":{"id":6715,"nodeType":"ParameterList","parameters":[],"src":"680:0:34"},"scope":6770,"src":"632:49:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"8c483e5a","id":6721,"implemented":false,"kind":"function","modifiers":[],"name":"closeBundle","nameLocation":"695:11:34","nodeType":"FunctionDefinition","parameters":{"id":6719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6718,"mutability":"mutable","name":"bundleId","nameLocation":"715:8:34","nodeType":"VariableDeclaration","scope":6721,"src":"707:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6717,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"706:18:34"},"returnParameters":{"id":6720,"nodeType":"ParameterList","parameters":[],"src":"733:0:34"},"scope":6770,"src":"686:48:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"587e59d0","id":6726,"implemented":false,"kind":"function","modifiers":[],"name":"burnBundle","nameLocation":"748:10:34","nodeType":"FunctionDefinition","parameters":{"id":6724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6723,"mutability":"mutable","name":"bundleId","nameLocation":"767:8:34","nodeType":"VariableDeclaration","scope":6726,"src":"759:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6722,"name":"uint256","nodeType":"ElementaryTypeName","src":"759:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"758:18:34"},"returnParameters":{"id":6725,"nodeType":"ParameterList","parameters":[],"src":"785:0:34"},"scope":6770,"src":"739:47:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"4d03f9b7","id":6735,"implemented":false,"kind":"function","modifiers":[],"name":"collateralizePolicy","nameLocation":"801:19:34","nodeType":"FunctionDefinition","parameters":{"id":6733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6728,"mutability":"mutable","name":"bundleId","nameLocation":"829:8:34","nodeType":"VariableDeclaration","scope":6735,"src":"821:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6727,"name":"uint256","nodeType":"ElementaryTypeName","src":"821:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6730,"mutability":"mutable","name":"processId","nameLocation":"847:9:34","nodeType":"VariableDeclaration","scope":6735,"src":"839:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"839:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6732,"mutability":"mutable","name":"collateralAmount","nameLocation":"866:16:34","nodeType":"VariableDeclaration","scope":6735,"src":"858:24:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6731,"name":"uint256","nodeType":"ElementaryTypeName","src":"858:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"820:63:34"},"returnParameters":{"id":6734,"nodeType":"ParameterList","parameters":[],"src":"892:0:34"},"scope":6770,"src":"792:101:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b7267420","id":6744,"implemented":false,"kind":"function","modifiers":[],"name":"processPremium","nameLocation":"907:14:34","nodeType":"FunctionDefinition","parameters":{"id":6742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6737,"mutability":"mutable","name":"bundleId","nameLocation":"930:8:34","nodeType":"VariableDeclaration","scope":6744,"src":"922:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6736,"name":"uint256","nodeType":"ElementaryTypeName","src":"922:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6739,"mutability":"mutable","name":"processId","nameLocation":"948:9:34","nodeType":"VariableDeclaration","scope":6744,"src":"940:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6738,"name":"bytes32","nodeType":"ElementaryTypeName","src":"940:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6741,"mutability":"mutable","name":"amount","nameLocation":"967:6:34","nodeType":"VariableDeclaration","scope":6744,"src":"959:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6740,"name":"uint256","nodeType":"ElementaryTypeName","src":"959:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"921:53:34"},"returnParameters":{"id":6743,"nodeType":"ParameterList","parameters":[],"src":"983:0:34"},"scope":6770,"src":"898:86:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"b299cc26","id":6753,"implemented":false,"kind":"function","modifiers":[],"name":"processPayout","nameLocation":"998:13:34","nodeType":"FunctionDefinition","parameters":{"id":6751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6746,"mutability":"mutable","name":"bundleId","nameLocation":"1020:8:34","nodeType":"VariableDeclaration","scope":6753,"src":"1012:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6745,"name":"uint256","nodeType":"ElementaryTypeName","src":"1012:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6748,"mutability":"mutable","name":"processId","nameLocation":"1038:9:34","nodeType":"VariableDeclaration","scope":6753,"src":"1030:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6747,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1030:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6750,"mutability":"mutable","name":"amount","nameLocation":"1057:6:34","nodeType":"VariableDeclaration","scope":6753,"src":"1049:14:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6749,"name":"uint256","nodeType":"ElementaryTypeName","src":"1049:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1011:53:34"},"returnParameters":{"id":6752,"nodeType":"ParameterList","parameters":[],"src":"1073:0:34"},"scope":6770,"src":"989:85:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"bb540df6","id":6762,"implemented":false,"kind":"function","modifiers":[],"name":"releasePolicy","nameLocation":"1088:13:34","nodeType":"FunctionDefinition","parameters":{"id":6758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6755,"mutability":"mutable","name":"bundleId","nameLocation":"1110:8:34","nodeType":"VariableDeclaration","scope":6762,"src":"1102:16:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6754,"name":"uint256","nodeType":"ElementaryTypeName","src":"1102:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6757,"mutability":"mutable","name":"processId","nameLocation":"1128:9:34","nodeType":"VariableDeclaration","scope":6762,"src":"1120:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1120:7:34","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1101:37:34"},"returnParameters":{"id":6761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6760,"mutability":"mutable","name":"collateralAmount","nameLocation":"1164:16:34","nodeType":"VariableDeclaration","scope":6762,"src":"1156:24:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6759,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1155:26:34"},"scope":6770,"src":"1079:103:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"2127fd48","id":6769,"implemented":false,"kind":"function","modifiers":[],"name":"setMaximumNumberOfActiveBundles","nameLocation":"1197:31:34","nodeType":"FunctionDefinition","parameters":{"id":6767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6764,"mutability":"mutable","name":"riskpoolId","nameLocation":"1237:10:34","nodeType":"VariableDeclaration","scope":6769,"src":"1229:18:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6763,"name":"uint256","nodeType":"ElementaryTypeName","src":"1229:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6766,"mutability":"mutable","name":"maxNumberOfActiveBundles","nameLocation":"1257:24:34","nodeType":"VariableDeclaration","scope":6769,"src":"1249:32:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6765,"name":"uint256","nodeType":"ElementaryTypeName","src":"1249:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1228:54:34"},"returnParameters":{"id":6768,"nodeType":"ParameterList","parameters":[],"src":"1291:0:34"},"scope":6770,"src":"1188:104:34","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":6771,"src":"63:1231:34"}],"src":"39:1257:34"},"id":34},"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol","exportedSymbols":{"ICoreProxy":[6779]},"id":6780,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6772,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:35"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","fullyImplemented":true,"id":6779,"linearizedBaseContracts":[6779],"name":"ICoreProxy","nameLocation":"76:10:35","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":6778,"name":"LogCoreContractUpgraded","nameLocation":"102:23:35","nodeType":"EventDefinition","parameters":{"id":6777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6774,"indexed":false,"mutability":"mutable","name":"oldImplementation","nameLocation":"145:17:35","nodeType":"VariableDeclaration","scope":6778,"src":"137:25:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6773,"name":"address","nodeType":"ElementaryTypeName","src":"137:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6776,"indexed":false,"mutability":"mutable","name":"newImplemntation","nameLocation":"182:16:35","nodeType":"VariableDeclaration","scope":6778,"src":"174:24:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6775,"name":"address","nodeType":"ElementaryTypeName","src":"174:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"126:79:35"},"src":"96:110:35"}],"scope":6780,"src":"66:145:35"}],"src":"40:173:35"},"id":35},"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol":{"ast":{"absolutePath":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","exportedSymbols":{"IBundleToken":[6825],"IERC165":[10840],"IERC721":[10156]},"id":6826,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":6781,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:36"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":6782,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":6826,"sourceUnit":10157,"src":"63:58:36","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":6783,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":10156,"src":"153:7:36"},"id":6784,"nodeType":"InheritanceSpecifier","src":"153:7:36"}],"contractDependencies":[10156,10840],"contractKind":"interface","fullyImplemented":false,"id":6825,"linearizedBaseContracts":[6825,10156,10840],"name":"IBundleToken","nameLocation":"133:12:36","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":6792,"name":"LogBundleTokenMinted","nameLocation":"173:20:36","nodeType":"EventDefinition","parameters":{"id":6791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6786,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"202:8:36","nodeType":"VariableDeclaration","scope":6792,"src":"194:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6785,"name":"uint256","nodeType":"ElementaryTypeName","src":"194:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6788,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"220:7:36","nodeType":"VariableDeclaration","scope":6792,"src":"212:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6787,"name":"uint256","nodeType":"ElementaryTypeName","src":"212:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6790,"indexed":false,"mutability":"mutable","name":"tokenOwner","nameLocation":"237:10:36","nodeType":"VariableDeclaration","scope":6792,"src":"229:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6789,"name":"address","nodeType":"ElementaryTypeName","src":"229:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"193:55:36"},"src":"167:82:36"},{"anonymous":false,"id":6798,"name":"LogBundleTokenBurned","nameLocation":"260:20:36","nodeType":"EventDefinition","parameters":{"id":6797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6794,"indexed":false,"mutability":"mutable","name":"bundleId","nameLocation":"289:8:36","nodeType":"VariableDeclaration","scope":6798,"src":"281:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6793,"name":"uint256","nodeType":"ElementaryTypeName","src":"281:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6796,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"307:7:36","nodeType":"VariableDeclaration","scope":6798,"src":"299:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6795,"name":"uint256","nodeType":"ElementaryTypeName","src":"299:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"280:35:36"},"src":"254:62:36"},{"functionSelector":"23250cae","id":6805,"implemented":false,"kind":"function","modifiers":[],"name":"burned","nameLocation":"334:6:36","nodeType":"FunctionDefinition","parameters":{"id":6801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6800,"mutability":"mutable","name":"tokenId","nameLocation":"346:7:36","nodeType":"VariableDeclaration","scope":6805,"src":"341:12:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6799,"name":"uint","nodeType":"ElementaryTypeName","src":"341:4:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"340:14:36"},"returnParameters":{"id":6804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6803,"mutability":"mutable","name":"isBurned","nameLocation":"382:8:36","nodeType":"VariableDeclaration","scope":6805,"src":"377:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6802,"name":"bool","nodeType":"ElementaryTypeName","src":"377:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"376:15:36"},"scope":6825,"src":"325:67:36","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"4f558e79","id":6812,"implemented":false,"kind":"function","modifiers":[],"name":"exists","nameLocation":"406:6:36","nodeType":"FunctionDefinition","parameters":{"id":6808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6807,"mutability":"mutable","name":"tokenId","nameLocation":"421:7:36","nodeType":"VariableDeclaration","scope":6812,"src":"413:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6806,"name":"uint256","nodeType":"ElementaryTypeName","src":"413:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"412:17:36"},"returnParameters":{"id":6811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6810,"mutability":"mutable","name":"doesExist","nameLocation":"457:9:36","nodeType":"VariableDeclaration","scope":6812,"src":"452:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6809,"name":"bool","nodeType":"ElementaryTypeName","src":"452:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"451:16:36"},"scope":6825,"src":"397:71:36","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"29a63083","id":6819,"implemented":false,"kind":"function","modifiers":[],"name":"getBundleId","nameLocation":"482:11:36","nodeType":"FunctionDefinition","parameters":{"id":6815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6814,"mutability":"mutable","name":"tokenId","nameLocation":"502:7:36","nodeType":"VariableDeclaration","scope":6819,"src":"494:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6813,"name":"uint256","nodeType":"ElementaryTypeName","src":"494:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"493:17:36"},"returnParameters":{"id":6818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6817,"mutability":"mutable","name":"bundleId","nameLocation":"541:8:36","nodeType":"VariableDeclaration","scope":6819,"src":"533:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6816,"name":"uint256","nodeType":"ElementaryTypeName","src":"533:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"532:18:36"},"scope":6825,"src":"473:78:36","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"18160ddd","id":6824,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"565:11:36","nodeType":"FunctionDefinition","parameters":{"id":6820,"nodeType":"ParameterList","parameters":[],"src":"576:2:36"},"returnParameters":{"id":6823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6822,"mutability":"mutable","name":"tokenCount","nameLocation":"609:10:36","nodeType":"VariableDeclaration","scope":6824,"src":"601:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6821,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:20:36"},"scope":6825,"src":"556:65:36","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":6826,"src":"123:500:36"}],"src":"39:585:36"},"id":36},"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[7145],"Context":[10518],"ERC165":[10828],"IAccessControl":[7343],"IERC165":[10840],"Strings":[10804]},"id":7146,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":6827,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:37"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":6828,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7146,"sourceUnit":7344,"src":"133:30:37","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":6829,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7146,"sourceUnit":10519,"src":"164:30:37","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../utils/Strings.sol","id":6830,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7146,"sourceUnit":10805,"src":"195:30:37","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":6831,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7146,"sourceUnit":10829,"src":"226:43:37","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":6833,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"1841:7:37"},"id":6834,"nodeType":"InheritanceSpecifier","src":"1841:7:37"},{"baseName":{"id":6835,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"1850:14:37"},"id":6836,"nodeType":"InheritanceSpecifier","src":"1850:14:37"},{"baseName":{"id":6837,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":10828,"src":"1866:6:37"},"id":6838,"nodeType":"InheritanceSpecifier","src":"1866:6:37"}],"contractDependencies":[7343,10518,10828,10840],"contractKind":"contract","documentation":{"id":6832,"nodeType":"StructuredDocumentation","src":"271:1534:37","text":" @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it."},"fullyImplemented":true,"id":7145,"linearizedBaseContracts":[7145,10828,10840,7343,10518],"name":"AccessControl","nameLocation":"1824:13:37","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":6845,"members":[{"constant":false,"id":6842,"mutability":"mutable","name":"members","nameLocation":"1930:7:37","nodeType":"VariableDeclaration","scope":6845,"src":"1905:32:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":6841,"keyType":{"id":6839,"name":"address","nodeType":"ElementaryTypeName","src":"1913:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1905:24:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":6840,"name":"bool","nodeType":"ElementaryTypeName","src":"1924:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":6844,"mutability":"mutable","name":"adminRole","nameLocation":"1955:9:37","nodeType":"VariableDeclaration","scope":6845,"src":"1947:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1947:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"1886:8:37","nodeType":"StructDefinition","scope":7145,"src":"1879:92:37","visibility":"public"},{"constant":false,"id":6850,"mutability":"mutable","name":"_roles","nameLocation":"2014:6:37","nodeType":"VariableDeclaration","scope":7145,"src":"1977:43:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":6849,"keyType":{"id":6846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1985:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1977:28:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueType":{"id":6848,"nodeType":"UserDefinedTypeName","pathNode":{"id":6847,"name":"RoleData","nodeType":"IdentifierPath","referencedDeclaration":6845,"src":"1996:8:37"},"referencedDeclaration":6845,"src":"1996:8:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":6853,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2051:18:37","nodeType":"VariableDeclaration","scope":7145,"src":"2027:49:37","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2027:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":6852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:4:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":6863,"nodeType":"Block","src":"2495:44:37","statements":[{"expression":{"arguments":[{"id":6859,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6856,"src":"2516:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6858,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[6918,6961],"referencedDeclaration":6918,"src":"2505:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":6860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2505:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6861,"nodeType":"ExpressionStatement","src":"2505:16:37"},{"id":6862,"nodeType":"PlaceholderStatement","src":"2531:1:37"}]},"documentation":{"id":6854,"nodeType":"StructuredDocumentation","src":"2083:375:37","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with a standardized message including the required role.\n The format of the revert reason is given by the following regular expression:\n /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/\n _Available since v4.1._"},"id":6864,"name":"onlyRole","nameLocation":"2472:8:37","nodeType":"ModifierDefinition","parameters":{"id":6857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6856,"mutability":"mutable","name":"role","nameLocation":"2489:4:37","nodeType":"VariableDeclaration","scope":6864,"src":"2481:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2481:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2480:14:37"},"src":"2463:76:37","virtual":false,"visibility":"internal"},{"baseFunctions":[10827],"body":{"id":6885,"nodeType":"Block","src":"2697:111:37","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":6878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6873,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"2714:11:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":6875,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"2734:14:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$7343_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$7343_$","typeString":"type(contract IAccessControl)"}],"id":6874,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"2729:4:37","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":6876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2729:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$7343","typeString":"type(contract IAccessControl)"}},"id":6877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"2729:32:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2714:47:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":6881,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6867,"src":"2789:11:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":6879,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"2765:5:37","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$7145_$","typeString":"type(contract super AccessControl)"}},"id":6880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":10827,"src":"2765:23:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":6882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2765:36:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2714:87:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6872,"id":6884,"nodeType":"Return","src":"2707:94:37"}]},"documentation":{"id":6865,"nodeType":"StructuredDocumentation","src":"2545:56:37","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":6886,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2615:17:37","nodeType":"FunctionDefinition","overrides":{"id":6869,"nodeType":"OverrideSpecifier","overrides":[],"src":"2673:8:37"},"parameters":{"id":6868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6867,"mutability":"mutable","name":"interfaceId","nameLocation":"2640:11:37","nodeType":"VariableDeclaration","scope":6886,"src":"2633:18:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":6866,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2633:6:37","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2632:20:37"},"returnParameters":{"id":6872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6871,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6886,"src":"2691:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6870,"name":"bool","nodeType":"ElementaryTypeName","src":"2691:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2690:6:37"},"scope":7145,"src":"2606:202:37","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7310],"body":{"id":6904,"nodeType":"Block","src":"2987:53:37","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":6897,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"3004:6:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":6899,"indexExpression":{"id":6898,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6889,"src":"3011:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:12:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":6900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":6842,"src":"3004:20:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6902,"indexExpression":{"id":6901,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6891,"src":"3025:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3004:29:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6896,"id":6903,"nodeType":"Return","src":"2997:36:37"}]},"documentation":{"id":6887,"nodeType":"StructuredDocumentation","src":"2814:76:37","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":6905,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"2904:7:37","nodeType":"FunctionDefinition","overrides":{"id":6893,"nodeType":"OverrideSpecifier","overrides":[],"src":"2963:8:37"},"parameters":{"id":6892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6889,"mutability":"mutable","name":"role","nameLocation":"2920:4:37","nodeType":"VariableDeclaration","scope":6905,"src":"2912:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6888,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2912:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6891,"mutability":"mutable","name":"account","nameLocation":"2934:7:37","nodeType":"VariableDeclaration","scope":6905,"src":"2926:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6890,"name":"address","nodeType":"ElementaryTypeName","src":"2926:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2911:31:37"},"returnParameters":{"id":6896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6905,"src":"2981:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6894,"name":"bool","nodeType":"ElementaryTypeName","src":"2981:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2980:6:37"},"scope":7145,"src":"2895:145:37","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":6917,"nodeType":"Block","src":"3390:47:37","statements":[{"expression":{"arguments":[{"id":6912,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"3411:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":6913,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3417:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":6914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3417:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6911,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[6918,6961],"referencedDeclaration":6961,"src":"3400:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":6915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3400:30:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6916,"nodeType":"ExpressionStatement","src":"3400:30:37"}]},"documentation":{"id":6906,"nodeType":"StructuredDocumentation","src":"3046:283:37","text":" @dev Revert with a standard message if `_msgSender()` is missing `role`.\n Overriding this function changes the behavior of the {onlyRole} modifier.\n Format of the revert message is described in {_checkRole}.\n _Available since v4.6._"},"id":6918,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3343:10:37","nodeType":"FunctionDefinition","parameters":{"id":6909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6908,"mutability":"mutable","name":"role","nameLocation":"3362:4:37","nodeType":"VariableDeclaration","scope":6918,"src":"3354:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3354:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3353:14:37"},"returnParameters":{"id":6910,"nodeType":"ParameterList","parameters":[],"src":"3390:0:37"},"scope":7145,"src":"3334:103:37","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":6960,"nodeType":"Block","src":"3791:419:37","statements":[{"condition":{"id":6930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3805:23:37","subExpression":{"arguments":[{"id":6927,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6921,"src":"3814:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6928,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6923,"src":"3820:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6926,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"3806:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":6929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3806:22:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6959,"nodeType":"IfStatement","src":"3801:403:37","trueBody":{"id":6958,"nodeType":"Block","src":"3830:374:37","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"416363657373436f6e74726f6c3a206163636f756e7420","id":6936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3938:25:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},"value":"AccessControl: account "},{"arguments":[{"arguments":[{"id":6941,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6923,"src":"4017:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4009:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":6939,"name":"uint160","nodeType":"ElementaryTypeName","src":"4009:7:37","typeDescriptions":{}}},"id":6942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4009:16:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"hexValue":"3230","id":6943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4027:2:37","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"expression":{"id":6937,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10804,"src":"3989:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$10804_$","typeString":"type(library Strings)"}},"id":6938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":10783,"src":"3989:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":6944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3989:41:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206973206d697373696e6720726f6c6520","id":6945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4056:19:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},"value":" is missing role "},{"arguments":[{"arguments":[{"id":6950,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6921,"src":"4129:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4121:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6948,"name":"uint256","nodeType":"ElementaryTypeName","src":"4121:7:37","typeDescriptions":{}}},"id":6951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4121:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":6952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4136:2:37","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"}],"expression":{"id":6946,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10804,"src":"4101:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$10804_$","typeString":"type(library Strings)"}},"id":6947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":10783,"src":"4101:19:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":6953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4101:38:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874","typeString":"literal_string \"AccessControl: account \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69","typeString":"literal_string \" is missing role \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6934,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3896:3:37","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3896:16:37","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3896:265:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3868:6:37","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":6932,"name":"string","nodeType":"ElementaryTypeName","src":"3868:6:37","typeDescriptions":{}}},"id":6955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3868:311:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":6931,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"3844:6:37","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":6956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3844:349:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6957,"nodeType":"ExpressionStatement","src":"3844:349:37"}]}}]},"documentation":{"id":6919,"nodeType":"StructuredDocumentation","src":"3443:270:37","text":" @dev Revert with a standard message if `account` is missing `role`.\n The format of the revert reason is given by the following regular expression:\n /^AccessControl: account (0x[0-9a-f]{40}) is missing role (0x[0-9a-f]{64})$/"},"id":6961,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3727:10:37","nodeType":"FunctionDefinition","parameters":{"id":6924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6921,"mutability":"mutable","name":"role","nameLocation":"3746:4:37","nodeType":"VariableDeclaration","scope":6961,"src":"3738:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3738:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6923,"mutability":"mutable","name":"account","nameLocation":"3760:7:37","nodeType":"VariableDeclaration","scope":6961,"src":"3752:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6922,"name":"address","nodeType":"ElementaryTypeName","src":"3752:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3737:31:37"},"returnParameters":{"id":6925,"nodeType":"ParameterList","parameters":[],"src":"3791:0:37"},"scope":7145,"src":"3718:492:37","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[7318],"body":{"id":6975,"nodeType":"Block","src":"4474:46:37","statements":[{"expression":{"expression":{"baseExpression":{"id":6970,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"4491:6:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":6972,"indexExpression":{"id":6971,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6964,"src":"4498:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4491:12:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":6973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":6844,"src":"4491:22:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":6969,"id":6974,"nodeType":"Return","src":"4484:29:37"}]},"documentation":{"id":6962,"nodeType":"StructuredDocumentation","src":"4216:170:37","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}."},"functionSelector":"248a9ca3","id":6976,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"4400:12:37","nodeType":"FunctionDefinition","overrides":{"id":6966,"nodeType":"OverrideSpecifier","overrides":[],"src":"4447:8:37"},"parameters":{"id":6965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6964,"mutability":"mutable","name":"role","nameLocation":"4421:4:37","nodeType":"VariableDeclaration","scope":6976,"src":"4413:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6963,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4413:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4412:14:37"},"returnParameters":{"id":6969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6976,"src":"4465:7:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4465:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4464:9:37"},"scope":7145,"src":"4391:129:37","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7326],"body":{"id":6995,"nodeType":"Block","src":"4919:42:37","statements":[{"expression":{"arguments":[{"id":6991,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"4940:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":6992,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"4946:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6990,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7113,"src":"4929:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":6993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4929:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6994,"nodeType":"ExpressionStatement","src":"4929:25:37"}]},"documentation":{"id":6977,"nodeType":"StructuredDocumentation","src":"4526:285:37","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event."},"functionSelector":"2f2ff15d","id":6996,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":6986,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"4912:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6985,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"4899:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":6987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4899:18:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":6988,"modifierName":{"id":6984,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"4890:8:37"},"nodeType":"ModifierInvocation","src":"4890:28:37"}],"name":"grantRole","nameLocation":"4825:9:37","nodeType":"FunctionDefinition","overrides":{"id":6983,"nodeType":"OverrideSpecifier","overrides":[],"src":"4881:8:37"},"parameters":{"id":6982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6979,"mutability":"mutable","name":"role","nameLocation":"4843:4:37","nodeType":"VariableDeclaration","scope":6996,"src":"4835:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6978,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4835:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6981,"mutability":"mutable","name":"account","nameLocation":"4857:7:37","nodeType":"VariableDeclaration","scope":6996,"src":"4849:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6980,"name":"address","nodeType":"ElementaryTypeName","src":"4849:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4834:31:37"},"returnParameters":{"id":6989,"nodeType":"ParameterList","parameters":[],"src":"4919:0:37"},"scope":7145,"src":"4816:145:37","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7334],"body":{"id":7015,"nodeType":"Block","src":"5345:43:37","statements":[{"expression":{"arguments":[{"id":7011,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6999,"src":"5367:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7012,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7001,"src":"5373:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7010,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7144,"src":"5355:11:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5355:26:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7014,"nodeType":"ExpressionStatement","src":"5355:26:37"}]},"documentation":{"id":6997,"nodeType":"StructuredDocumentation","src":"4967:269:37","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event."},"functionSelector":"d547741f","id":7016,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":7006,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6999,"src":"5338:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7005,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"5325:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":7007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5325:18:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7008,"modifierName":{"id":7004,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"5316:8:37"},"nodeType":"ModifierInvocation","src":"5316:28:37"}],"name":"revokeRole","nameLocation":"5250:10:37","nodeType":"FunctionDefinition","overrides":{"id":7003,"nodeType":"OverrideSpecifier","overrides":[],"src":"5307:8:37"},"parameters":{"id":7002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6999,"mutability":"mutable","name":"role","nameLocation":"5269:4:37","nodeType":"VariableDeclaration","scope":7016,"src":"5261:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5261:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7001,"mutability":"mutable","name":"account","nameLocation":"5283:7:37","nodeType":"VariableDeclaration","scope":7016,"src":"5275:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7000,"name":"address","nodeType":"ElementaryTypeName","src":"5275:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5260:31:37"},"returnParameters":{"id":7009,"nodeType":"ParameterList","parameters":[],"src":"5345:0:37"},"scope":7145,"src":"5241:147:37","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[7342],"body":{"id":7038,"nodeType":"Block","src":"6002:137:37","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7026,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7021,"src":"6020:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7027,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"6031:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6031:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6020:23:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66","id":7030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6045:49:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""},"value":"AccessControl: can only renounce roles for self"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b","typeString":"literal_string \"AccessControl: can only renounce roles for self\""}],"id":7025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6012:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6012:83:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7032,"nodeType":"ExpressionStatement","src":"6012:83:37"},{"expression":{"arguments":[{"id":7034,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"6118:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7035,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7021,"src":"6124:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7033,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7144,"src":"6106:11:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6106:26:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7037,"nodeType":"ExpressionStatement","src":"6106:26:37"}]},"documentation":{"id":7017,"nodeType":"StructuredDocumentation","src":"5394:526:37","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`.\n May emit a {RoleRevoked} event."},"functionSelector":"36568abe","id":7039,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5934:12:37","nodeType":"FunctionDefinition","overrides":{"id":7023,"nodeType":"OverrideSpecifier","overrides":[],"src":"5993:8:37"},"parameters":{"id":7022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7019,"mutability":"mutable","name":"role","nameLocation":"5955:4:37","nodeType":"VariableDeclaration","scope":7039,"src":"5947:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5947:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7021,"mutability":"mutable","name":"account","nameLocation":"5969:7:37","nodeType":"VariableDeclaration","scope":7039,"src":"5961:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7020,"name":"address","nodeType":"ElementaryTypeName","src":"5961:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5946:31:37"},"returnParameters":{"id":7024,"nodeType":"ParameterList","parameters":[],"src":"6002:0:37"},"scope":7145,"src":"5925:214:37","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7052,"nodeType":"Block","src":"6892:42:37","statements":[{"expression":{"arguments":[{"id":7048,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7042,"src":"6913:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7049,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7044,"src":"6919:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7047,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7113,"src":"6902:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6902:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7051,"nodeType":"ExpressionStatement","src":"6902:25:37"}]},"documentation":{"id":7040,"nodeType":"StructuredDocumentation","src":"6145:674:37","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event. Note that unlike {grantRole}, this function doesn't perform any\n checks on the calling account.\n May emit a {RoleGranted} event.\n [WARNING]\n ====\n This function should only be called from the constructor when setting\n up the initial roles for the system.\n Using this function in any other way is effectively circumventing the admin\n system imposed by {AccessControl}.\n ====\n NOTE: This function is deprecated in favor of {_grantRole}."},"id":7053,"implemented":true,"kind":"function","modifiers":[],"name":"_setupRole","nameLocation":"6833:10:37","nodeType":"FunctionDefinition","parameters":{"id":7045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7042,"mutability":"mutable","name":"role","nameLocation":"6852:4:37","nodeType":"VariableDeclaration","scope":7053,"src":"6844:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6844:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7044,"mutability":"mutable","name":"account","nameLocation":"6866:7:37","nodeType":"VariableDeclaration","scope":7053,"src":"6858:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7043,"name":"address","nodeType":"ElementaryTypeName","src":"6858:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6843:31:37"},"returnParameters":{"id":7046,"nodeType":"ParameterList","parameters":[],"src":"6892:0:37"},"scope":7145,"src":"6824:110:37","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7080,"nodeType":"Block","src":"7132:174:37","statements":[{"assignments":[7062],"declarations":[{"constant":false,"id":7062,"mutability":"mutable","name":"previousAdminRole","nameLocation":"7150:17:37","nodeType":"VariableDeclaration","scope":7080,"src":"7142:25:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7142:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7066,"initialValue":{"arguments":[{"id":7064,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7056,"src":"7183:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7063,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6976,"src":"7170:12:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":7065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7170:18:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7142:46:37"},{"expression":{"id":7072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":7067,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"7198:6:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":7069,"indexExpression":{"id":7068,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7056,"src":"7205:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7198:12:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":7070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":6844,"src":"7198:22:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7071,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"7223:9:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7198:34:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7073,"nodeType":"ExpressionStatement","src":"7198:34:37"},{"eventCall":{"arguments":[{"id":7075,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7056,"src":"7264:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7076,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7062,"src":"7270:17:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7077,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7058,"src":"7289:9:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7074,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7282,"src":"7247:16:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":7078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7247:52:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7079,"nodeType":"EmitStatement","src":"7242:57:37"}]},"documentation":{"id":7054,"nodeType":"StructuredDocumentation","src":"6940:114:37","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":7081,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"7068:13:37","nodeType":"FunctionDefinition","parameters":{"id":7059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7056,"mutability":"mutable","name":"role","nameLocation":"7090:4:37","nodeType":"VariableDeclaration","scope":7081,"src":"7082:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7082:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7058,"mutability":"mutable","name":"adminRole","nameLocation":"7104:9:37","nodeType":"VariableDeclaration","scope":7081,"src":"7096:17:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7096:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7081:33:37"},"returnParameters":{"id":7060,"nodeType":"ParameterList","parameters":[],"src":"7132:0:37"},"scope":7145,"src":"7059:247:37","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7112,"nodeType":"Block","src":"7542:165:37","statements":[{"condition":{"id":7093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7556:23:37","subExpression":{"arguments":[{"id":7090,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"7565:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7091,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7086,"src":"7571:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7089,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"7557:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":7092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7557:22:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7111,"nodeType":"IfStatement","src":"7552:149:37","trueBody":{"id":7110,"nodeType":"Block","src":"7581:120:37","statements":[{"expression":{"id":7101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":7094,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"7595:6:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":7096,"indexExpression":{"id":7095,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"7602:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7595:12:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":7097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":6842,"src":"7595:20:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7099,"indexExpression":{"id":7098,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7086,"src":"7616:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7595:29:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7627:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7595:36:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7102,"nodeType":"ExpressionStatement","src":"7595:36:37"},{"eventCall":{"arguments":[{"id":7104,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7084,"src":"7662:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7105,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7086,"src":"7668:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":7106,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"7677:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7677:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7103,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7291,"src":"7650:11:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":7108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7650:40:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7109,"nodeType":"EmitStatement","src":"7645:45:37"}]}}]},"documentation":{"id":7082,"nodeType":"StructuredDocumentation","src":"7312:157:37","text":" @dev Grants `role` to `account`.\n Internal function without access restriction.\n May emit a {RoleGranted} event."},"id":7113,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"7483:10:37","nodeType":"FunctionDefinition","parameters":{"id":7087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7084,"mutability":"mutable","name":"role","nameLocation":"7502:4:37","nodeType":"VariableDeclaration","scope":7113,"src":"7494:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7494:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7086,"mutability":"mutable","name":"account","nameLocation":"7516:7:37","nodeType":"VariableDeclaration","scope":7113,"src":"7508:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7085,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7493:31:37"},"returnParameters":{"id":7088,"nodeType":"ParameterList","parameters":[],"src":"7542:0:37"},"scope":7145,"src":"7474:233:37","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7143,"nodeType":"Block","src":"7947:165:37","statements":[{"condition":{"arguments":[{"id":7122,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7116,"src":"7969:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7123,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7118,"src":"7975:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7121,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6905,"src":"7961:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":7124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7961:22:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7142,"nodeType":"IfStatement","src":"7957:149:37","trueBody":{"id":7141,"nodeType":"Block","src":"7985:121:37","statements":[{"expression":{"id":7132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":7125,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6850,"src":"7999:6:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$6845_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":7127,"indexExpression":{"id":7126,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7116,"src":"8006:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7999:12:37","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$6845_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":7128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"members","nodeType":"MemberAccess","referencedDeclaration":6842,"src":"7999:20:37","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":7130,"indexExpression":{"id":7129,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7118,"src":"8020:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7999:29:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":7131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8031:5:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"7999:37:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7133,"nodeType":"ExpressionStatement","src":"7999:37:37"},{"eventCall":{"arguments":[{"id":7135,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7116,"src":"8067:4:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7136,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7118,"src":"8073:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":7137,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"8082:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8082:12:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7134,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7300,"src":"8055:11:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":7139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8055:40:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7140,"nodeType":"EmitStatement","src":"8050:45:37"}]}}]},"documentation":{"id":7114,"nodeType":"StructuredDocumentation","src":"7713:160:37","text":" @dev Revokes `role` from `account`.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":7144,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"7887:11:37","nodeType":"FunctionDefinition","parameters":{"id":7119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7116,"mutability":"mutable","name":"role","nameLocation":"7907:4:37","nodeType":"VariableDeclaration","scope":7144,"src":"7899:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7115,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7899:7:37","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7118,"mutability":"mutable","name":"account","nameLocation":"7921:7:37","nodeType":"VariableDeclaration","scope":7144,"src":"7913:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7117,"name":"address","nodeType":"ElementaryTypeName","src":"7913:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7898:31:37"},"returnParameters":{"id":7120,"nodeType":"ParameterList","parameters":[],"src":"7947:0:37"},"scope":7145,"src":"7878:234:37","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7146,"src":"1806:6308:37"}],"src":"108:8007:37"},"id":37},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","exportedSymbols":{"AccessControl":[7145],"AccessControlEnumerable":[7270],"Context":[10518],"ERC165":[10828],"EnumerableSet":[11439],"IAccessControl":[7343],"IAccessControlEnumerable":[7368],"IERC165":[10840],"Strings":[10804]},"id":7271,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7147,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"118:23:38"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControlEnumerable.sol","file":"./IAccessControlEnumerable.sol","id":7148,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7271,"sourceUnit":7369,"src":"143:40:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"./AccessControl.sol","id":7149,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7271,"sourceUnit":7146,"src":"184:29:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"../utils/structs/EnumerableSet.sol","id":7150,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7271,"sourceUnit":11440,"src":"214:44:38","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7152,"name":"IAccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":7368,"src":"400:24:38"},"id":7153,"nodeType":"InheritanceSpecifier","src":"400:24:38"},{"baseName":{"id":7154,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":7145,"src":"426:13:38"},"id":7155,"nodeType":"InheritanceSpecifier","src":"426:13:38"}],"contractDependencies":[7145,7343,7368,10518,10828,10840],"contractKind":"contract","documentation":{"id":7151,"nodeType":"StructuredDocumentation","src":"260:94:38","text":" @dev Extension of {AccessControl} that allows enumerating the members of each role."},"fullyImplemented":true,"id":7270,"linearizedBaseContracts":[7270,7145,10828,10840,7368,7343,10518],"name":"AccessControlEnumerable","nameLocation":"373:23:38","nodeType":"ContractDefinition","nodes":[{"id":7159,"libraryName":{"id":7156,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":11439,"src":"452:13:38"},"nodeType":"UsingForDirective","src":"446:49:38","typeName":{"id":7158,"nodeType":"UserDefinedTypeName","pathNode":{"id":7157,"name":"EnumerableSet.AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"470:24:38"},"referencedDeclaration":11152,"src":"470:24:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"constant":false,"id":7164,"mutability":"mutable","name":"_roleMembers","nameLocation":"554:12:38","nodeType":"VariableDeclaration","scope":7270,"src":"501:65:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet)"},"typeName":{"id":7163,"keyType":{"id":7160,"name":"bytes32","nodeType":"ElementaryTypeName","src":"509:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"501:44:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet)"},"valueType":{"id":7162,"nodeType":"UserDefinedTypeName","pathNode":{"id":7161,"name":"EnumerableSet.AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"520:24:38"},"referencedDeclaration":11152,"src":"520:24:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"private"},{"baseFunctions":[6886],"body":{"id":7185,"nodeType":"Block","src":"725:121:38","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":7178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7173,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7167,"src":"742:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":7175,"name":"IAccessControlEnumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7368,"src":"762:24:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControlEnumerable_$7368_$","typeString":"type(contract IAccessControlEnumerable)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControlEnumerable_$7368_$","typeString":"type(contract IAccessControlEnumerable)"}],"id":7174,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"757:4:38","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":7176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"757:30:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControlEnumerable_$7368","typeString":"type(contract IAccessControlEnumerable)"}},"id":7177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"757:42:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"742:57:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":7181,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7167,"src":"827:11:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":7179,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"803:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$7270_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":7180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":6886,"src":"803:23:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":7182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"803:36:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"742:97:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7172,"id":7184,"nodeType":"Return","src":"735:104:38"}]},"documentation":{"id":7165,"nodeType":"StructuredDocumentation","src":"573:56:38","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":7186,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"643:17:38","nodeType":"FunctionDefinition","overrides":{"id":7169,"nodeType":"OverrideSpecifier","overrides":[],"src":"701:8:38"},"parameters":{"id":7168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7167,"mutability":"mutable","name":"interfaceId","nameLocation":"668:11:38","nodeType":"VariableDeclaration","scope":7186,"src":"661:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7166,"name":"bytes4","nodeType":"ElementaryTypeName","src":"661:6:38","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"660:20:38"},"returnParameters":{"id":7172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7186,"src":"719:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7170,"name":"bool","nodeType":"ElementaryTypeName","src":"719:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"718:6:38"},"scope":7270,"src":"634:212:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7359],"body":{"id":7204,"nodeType":"Block","src":"1530:52:38","statements":[{"expression":{"arguments":[{"id":7201,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7191,"src":"1569:5:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":7197,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7164,"src":"1547:12:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":7199,"indexExpression":{"id":7198,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7189,"src":"1560:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1547:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":7200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11275,"src":"1547:21:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$11152_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_AddressSet_$11152_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,uint256) view returns (address)"}},"id":7202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1547:28:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7196,"id":7203,"nodeType":"Return","src":"1540:35:38"}]},"documentation":{"id":7187,"nodeType":"StructuredDocumentation","src":"852:574:38","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information."},"functionSelector":"9010d07c","id":7205,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"1440:13:38","nodeType":"FunctionDefinition","overrides":{"id":7193,"nodeType":"OverrideSpecifier","overrides":[],"src":"1503:8:38"},"parameters":{"id":7192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7189,"mutability":"mutable","name":"role","nameLocation":"1462:4:38","nodeType":"VariableDeclaration","scope":7205,"src":"1454:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1454:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7191,"mutability":"mutable","name":"index","nameLocation":"1476:5:38","nodeType":"VariableDeclaration","scope":7205,"src":"1468:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7190,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1453:29:38"},"returnParameters":{"id":7196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7205,"src":"1521:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7194,"name":"address","nodeType":"ElementaryTypeName","src":"1521:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1520:9:38"},"scope":7270,"src":"1431:151:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7367],"body":{"id":7220,"nodeType":"Block","src":"1839:51:38","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":7214,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7164,"src":"1856:12:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":7216,"indexExpression":{"id":7215,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7208,"src":"1869:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1856:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":7217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11248,"src":"1856:25:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$11152_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_AddressSet_$11152_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":7218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1856:27:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7213,"id":7219,"nodeType":"Return","src":"1849:34:38"}]},"documentation":{"id":7206,"nodeType":"StructuredDocumentation","src":"1588:157:38","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":7221,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"1759:18:38","nodeType":"FunctionDefinition","overrides":{"id":7210,"nodeType":"OverrideSpecifier","overrides":[],"src":"1812:8:38"},"parameters":{"id":7209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7208,"mutability":"mutable","name":"role","nameLocation":"1786:4:38","nodeType":"VariableDeclaration","scope":7221,"src":"1778:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1778:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1777:14:38"},"returnParameters":{"id":7213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7221,"src":"1830:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7211,"name":"uint256","nodeType":"ElementaryTypeName","src":"1830:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1829:9:38"},"scope":7270,"src":"1750:140:38","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[7113],"body":{"id":7244,"nodeType":"Block","src":"2055:89:38","statements":[{"expression":{"arguments":[{"id":7233,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"2082:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7234,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7226,"src":"2088:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7230,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"2065:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$7270_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_grantRole","nodeType":"MemberAccess","referencedDeclaration":7113,"src":"2065:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2065:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7236,"nodeType":"ExpressionStatement","src":"2065:31:38"},{"expression":{"arguments":[{"id":7241,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7226,"src":"2129:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":7237,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7164,"src":"2106:12:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":7239,"indexExpression":{"id":7238,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7224,"src":"2119:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2106:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":7240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11179,"src":"2106:22:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$11152_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$11152_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":7242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2106:31:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7243,"nodeType":"ExpressionStatement","src":"2106:31:38"}]},"documentation":{"id":7222,"nodeType":"StructuredDocumentation","src":"1896:77:38","text":" @dev Overload {_grantRole} to track enumerable memberships"},"id":7245,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"1987:10:38","nodeType":"FunctionDefinition","overrides":{"id":7228,"nodeType":"OverrideSpecifier","overrides":[],"src":"2046:8:38"},"parameters":{"id":7227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7224,"mutability":"mutable","name":"role","nameLocation":"2006:4:38","nodeType":"VariableDeclaration","scope":7245,"src":"1998:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7223,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1998:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7226,"mutability":"mutable","name":"account","nameLocation":"2020:7:38","nodeType":"VariableDeclaration","scope":7245,"src":"2012:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7225,"name":"address","nodeType":"ElementaryTypeName","src":"2012:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1997:31:38"},"returnParameters":{"id":7229,"nodeType":"ParameterList","parameters":[],"src":"2055:0:38"},"scope":7270,"src":"1978:166:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"baseFunctions":[7144],"body":{"id":7268,"nodeType":"Block","src":"2311:93:38","statements":[{"expression":{"arguments":[{"id":7257,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7248,"src":"2339:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7258,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7250,"src":"2345:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7254,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"2321:5:38","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControlEnumerable_$7270_$","typeString":"type(contract super AccessControlEnumerable)"}},"id":7256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_revokeRole","nodeType":"MemberAccess","referencedDeclaration":7144,"src":"2321:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":7259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2321:32:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7260,"nodeType":"ExpressionStatement","src":"2321:32:38"},{"expression":{"arguments":[{"id":7265,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7250,"src":"2389:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":7261,"name":"_roleMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7164,"src":"2363:12:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_AddressSet_$11152_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.AddressSet storage ref)"}},"id":7263,"indexExpression":{"id":7262,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7248,"src":"2376:4:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2363:18:38","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":7264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":11206,"src":"2363:25:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$11152_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_AddressSet_$11152_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":7266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2363:34:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7267,"nodeType":"ExpressionStatement","src":"2363:34:38"}]},"documentation":{"id":7246,"nodeType":"StructuredDocumentation","src":"2150:78:38","text":" @dev Overload {_revokeRole} to track enumerable memberships"},"id":7269,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"2242:11:38","nodeType":"FunctionDefinition","overrides":{"id":7252,"nodeType":"OverrideSpecifier","overrides":[],"src":"2302:8:38"},"parameters":{"id":7251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7248,"mutability":"mutable","name":"role","nameLocation":"2262:4:38","nodeType":"VariableDeclaration","scope":7269,"src":"2254:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2254:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7250,"mutability":"mutable","name":"account","nameLocation":"2276:7:38","nodeType":"VariableDeclaration","scope":7269,"src":"2268:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7249,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2253:31:38"},"returnParameters":{"id":7253,"nodeType":"ParameterList","parameters":[],"src":"2311:0:38"},"scope":7270,"src":"2233:171:38","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7271,"src":"355:2051:38"}],"src":"118:2289:38"},"id":38},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[7343]},"id":7344,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7272,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"94:23:39"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":7273,"nodeType":"StructuredDocumentation","src":"119:89:39","text":" @dev External interface of AccessControl declared to support ERC165 detection."},"fullyImplemented":false,"id":7343,"linearizedBaseContracts":[7343],"name":"IAccessControl","nameLocation":"219:14:39","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":7274,"nodeType":"StructuredDocumentation","src":"240:292:39","text":" @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this.\n _Available since v3.1._"},"id":7282,"name":"RoleAdminChanged","nameLocation":"543:16:39","nodeType":"EventDefinition","parameters":{"id":7281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7276,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"576:4:39","nodeType":"VariableDeclaration","scope":7282,"src":"560:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7278,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"598:17:39","nodeType":"VariableDeclaration","scope":7282,"src":"582:33:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7277,"name":"bytes32","nodeType":"ElementaryTypeName","src":"582:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7280,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"633:12:39","nodeType":"VariableDeclaration","scope":7282,"src":"617:28:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"617:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"559:87:39"},"src":"537:110:39"},{"anonymous":false,"documentation":{"id":7283,"nodeType":"StructuredDocumentation","src":"653:212:39","text":" @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call, an admin role\n bearer except when using {AccessControl-_setupRole}."},"id":7291,"name":"RoleGranted","nameLocation":"876:11:39","nodeType":"EventDefinition","parameters":{"id":7290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7285,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"904:4:39","nodeType":"VariableDeclaration","scope":7291,"src":"888:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"888:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7287,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"926:7:39","nodeType":"VariableDeclaration","scope":7291,"src":"910:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7286,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7289,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"951:6:39","nodeType":"VariableDeclaration","scope":7291,"src":"935:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7288,"name":"address","nodeType":"ElementaryTypeName","src":"935:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"887:71:39"},"src":"870:89:39"},{"anonymous":false,"documentation":{"id":7292,"nodeType":"StructuredDocumentation","src":"965:275:39","text":" @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)"},"id":7300,"name":"RoleRevoked","nameLocation":"1251:11:39","nodeType":"EventDefinition","parameters":{"id":7299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7294,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1279:4:39","nodeType":"VariableDeclaration","scope":7300,"src":"1263:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1263:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7296,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1301:7:39","nodeType":"VariableDeclaration","scope":7300,"src":"1285:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7295,"name":"address","nodeType":"ElementaryTypeName","src":"1285:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7298,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1326:6:39","nodeType":"VariableDeclaration","scope":7300,"src":"1310:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7297,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1262:71:39"},"src":"1245:89:39"},{"documentation":{"id":7301,"nodeType":"StructuredDocumentation","src":"1340:76:39","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":7310,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1430:7:39","nodeType":"FunctionDefinition","parameters":{"id":7306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7303,"mutability":"mutable","name":"role","nameLocation":"1446:4:39","nodeType":"VariableDeclaration","scope":7310,"src":"1438:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1438:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7305,"mutability":"mutable","name":"account","nameLocation":"1460:7:39","nodeType":"VariableDeclaration","scope":7310,"src":"1452:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7304,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1437:31:39"},"returnParameters":{"id":7309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7310,"src":"1492:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7307,"name":"bool","nodeType":"ElementaryTypeName","src":"1492:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1491:6:39"},"scope":7343,"src":"1421:77:39","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7311,"nodeType":"StructuredDocumentation","src":"1504:184:39","text":" @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}."},"functionSelector":"248a9ca3","id":7318,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"1702:12:39","nodeType":"FunctionDefinition","parameters":{"id":7314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7313,"mutability":"mutable","name":"role","nameLocation":"1723:4:39","nodeType":"VariableDeclaration","scope":7318,"src":"1715:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1715:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1714:14:39"},"returnParameters":{"id":7317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7318,"src":"1752:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1752:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1751:9:39"},"scope":7343,"src":"1693:68:39","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7319,"nodeType":"StructuredDocumentation","src":"1767:239:39","text":" @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"2f2ff15d","id":7326,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2020:9:39","nodeType":"FunctionDefinition","parameters":{"id":7324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7321,"mutability":"mutable","name":"role","nameLocation":"2038:4:39","nodeType":"VariableDeclaration","scope":7326,"src":"2030:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7323,"mutability":"mutable","name":"account","nameLocation":"2052:7:39","nodeType":"VariableDeclaration","scope":7326,"src":"2044:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7322,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2029:31:39"},"returnParameters":{"id":7325,"nodeType":"ParameterList","parameters":[],"src":"2069:0:39"},"scope":7343,"src":"2011:59:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7327,"nodeType":"StructuredDocumentation","src":"2076:223:39","text":" @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role."},"functionSelector":"d547741f","id":7334,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2313:10:39","nodeType":"FunctionDefinition","parameters":{"id":7332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7329,"mutability":"mutable","name":"role","nameLocation":"2332:4:39","nodeType":"VariableDeclaration","scope":7334,"src":"2324:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2324:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7331,"mutability":"mutable","name":"account","nameLocation":"2346:7:39","nodeType":"VariableDeclaration","scope":7334,"src":"2338:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7330,"name":"address","nodeType":"ElementaryTypeName","src":"2338:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2323:31:39"},"returnParameters":{"id":7333,"nodeType":"ParameterList","parameters":[],"src":"2363:0:39"},"scope":7343,"src":"2304:60:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":7335,"nodeType":"StructuredDocumentation","src":"2370:480:39","text":" @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `account`."},"functionSelector":"36568abe","id":7342,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"2864:12:39","nodeType":"FunctionDefinition","parameters":{"id":7340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7337,"mutability":"mutable","name":"role","nameLocation":"2885:4:39","nodeType":"VariableDeclaration","scope":7342,"src":"2877:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2877:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7339,"mutability":"mutable","name":"account","nameLocation":"2899:7:39","nodeType":"VariableDeclaration","scope":7342,"src":"2891:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7338,"name":"address","nodeType":"ElementaryTypeName","src":"2891:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2876:31:39"},"returnParameters":{"id":7341,"nodeType":"ParameterList","parameters":[],"src":"2916:0:39"},"scope":7343,"src":"2855:62:39","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":7344,"src":"209:2710:39"}],"src":"94:2826:39"},"id":39},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControlEnumerable.sol","exportedSymbols":{"IAccessControl":[7343],"IAccessControlEnumerable":[7368]},"id":7369,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7345,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"104:23:40"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":7346,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7369,"sourceUnit":7344,"src":"129:30:40","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7348,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"299:14:40"},"id":7349,"nodeType":"InheritanceSpecifier","src":"299:14:40"}],"contractDependencies":[7343],"contractKind":"interface","documentation":{"id":7347,"nodeType":"StructuredDocumentation","src":"161:99:40","text":" @dev External interface of AccessControlEnumerable declared to support ERC165 detection."},"fullyImplemented":false,"id":7368,"linearizedBaseContracts":[7368,7343],"name":"IAccessControlEnumerable","nameLocation":"271:24:40","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7350,"nodeType":"StructuredDocumentation","src":"320:574:40","text":" @dev Returns one of the accounts that have `role`. `index` must be a\n value between 0 and {getRoleMemberCount}, non-inclusive.\n Role bearers are not sorted in any particular way, and their ordering may\n change at any point.\n WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure\n you perform all queries on the same block. See the following\n https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post]\n for more information."},"functionSelector":"9010d07c","id":7359,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleMember","nameLocation":"908:13:40","nodeType":"FunctionDefinition","parameters":{"id":7355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7352,"mutability":"mutable","name":"role","nameLocation":"930:4:40","nodeType":"VariableDeclaration","scope":7359,"src":"922:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"922:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7354,"mutability":"mutable","name":"index","nameLocation":"944:5:40","nodeType":"VariableDeclaration","scope":7359,"src":"936:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7353,"name":"uint256","nodeType":"ElementaryTypeName","src":"936:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"921:29:40"},"returnParameters":{"id":7358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7359,"src":"974:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7356,"name":"address","nodeType":"ElementaryTypeName","src":"974:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"973:9:40"},"scope":7368,"src":"899:84:40","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":7360,"nodeType":"StructuredDocumentation","src":"989:157:40","text":" @dev Returns the number of accounts that have `role`. Can be used\n together with {getRoleMember} to enumerate all bearers of a role."},"functionSelector":"ca15c873","id":7367,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleMemberCount","nameLocation":"1160:18:40","nodeType":"FunctionDefinition","parameters":{"id":7363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7362,"mutability":"mutable","name":"role","nameLocation":"1187:4:40","nodeType":"VariableDeclaration","scope":7367,"src":"1179:12:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1179:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1178:14:40"},"returnParameters":{"id":7366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7367,"src":"1216:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7364,"name":"uint256","nodeType":"ElementaryTypeName","src":"1216:7:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1215:9:40"},"scope":7368,"src":"1151:74:40","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7369,"src":"261:966:40"}],"src":"104:1124:40"},"id":40},"@openzeppelin/contracts/access/Ownable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","exportedSymbols":{"Context":[10518],"Ownable":[7481]},"id":7482,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7370,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"102:23:41"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":7371,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7482,"sourceUnit":10519,"src":"127:30:41","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":7373,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"683:7:41"},"id":7374,"nodeType":"InheritanceSpecifier","src":"683:7:41"}],"contractDependencies":[10518],"contractKind":"contract","documentation":{"id":7372,"nodeType":"StructuredDocumentation","src":"159:494:41","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"id":7481,"linearizedBaseContracts":[7481,10518],"name":"Ownable","nameLocation":"672:7:41","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":7376,"mutability":"mutable","name":"_owner","nameLocation":"713:6:41","nodeType":"VariableDeclaration","scope":7481,"src":"697:22:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7375,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"anonymous":false,"id":7382,"name":"OwnershipTransferred","nameLocation":"732:20:41","nodeType":"EventDefinition","parameters":{"id":7381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7378,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:41","nodeType":"VariableDeclaration","scope":7382,"src":"753:29:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7377,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7380,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:41","nodeType":"VariableDeclaration","scope":7382,"src":"784:24:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7379,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:41"},"src":"726:84:41"},{"body":{"id":7391,"nodeType":"Block","src":"926:49:41","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7387,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"955:10:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:12:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7386,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"936:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"936:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7390,"nodeType":"ExpressionStatement","src":"936:32:41"}]},"documentation":{"id":7383,"nodeType":"StructuredDocumentation","src":"816:91:41","text":" @dev Initializes the contract setting the deployer as the initial owner."},"id":7392,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7384,"nodeType":"ParameterList","parameters":[],"src":"923:2:41"},"returnParameters":{"id":7385,"nodeType":"ParameterList","parameters":[],"src":"926:0:41"},"scope":7481,"src":"912:63:41","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7399,"nodeType":"Block","src":"1084:41:41","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7395,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7423,"src":"1094:11:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":7396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1094:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7397,"nodeType":"ExpressionStatement","src":"1094:13:41"},{"id":7398,"nodeType":"PlaceholderStatement","src":"1117:1:41"}]},"documentation":{"id":7393,"nodeType":"StructuredDocumentation","src":"981:77:41","text":" @dev Throws if called by any account other than the owner."},"id":7400,"name":"onlyOwner","nameLocation":"1072:9:41","nodeType":"ModifierDefinition","parameters":{"id":7394,"nodeType":"ParameterList","parameters":[],"src":"1081:2:41"},"src":"1063:62:41","virtual":false,"visibility":"internal"},{"body":{"id":7408,"nodeType":"Block","src":"1256:30:41","statements":[{"expression":{"id":7406,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7376,"src":"1273:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7405,"id":7407,"nodeType":"Return","src":"1266:13:41"}]},"documentation":{"id":7401,"nodeType":"StructuredDocumentation","src":"1131:65:41","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":7409,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:41","nodeType":"FunctionDefinition","parameters":{"id":7402,"nodeType":"ParameterList","parameters":[],"src":"1215:2:41"},"returnParameters":{"id":7405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7409,"src":"1247:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7403,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:41"},"scope":7481,"src":"1201:85:41","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":7422,"nodeType":"Block","src":"1404:85:41","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7414,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"1422:5:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1422:7:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":7416,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1433:10:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1433:12:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":7419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":7413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1414:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:68:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7421,"nodeType":"ExpressionStatement","src":"1414:68:41"}]},"documentation":{"id":7410,"nodeType":"StructuredDocumentation","src":"1292:62:41","text":" @dev Throws if the sender is not the owner."},"id":7423,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:41","nodeType":"FunctionDefinition","parameters":{"id":7411,"nodeType":"ParameterList","parameters":[],"src":"1379:2:41"},"returnParameters":{"id":7412,"nodeType":"ParameterList","parameters":[],"src":"1404:0:41"},"scope":7481,"src":"1359:130:41","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7436,"nodeType":"Block","src":"1885:47:41","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":7432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7430,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:41","typeDescriptions":{}}},"id":7433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1914:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7429,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"1895:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1895:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7435,"nodeType":"ExpressionStatement","src":"1895:30:41"}]},"documentation":{"id":7424,"nodeType":"StructuredDocumentation","src":"1495:331:41","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","id":7437,"implemented":true,"kind":"function","modifiers":[{"id":7427,"modifierName":{"id":7426,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"1875:9:41"},"nodeType":"ModifierInvocation","src":"1875:9:41"}],"name":"renounceOwnership","nameLocation":"1840:17:41","nodeType":"FunctionDefinition","parameters":{"id":7425,"nodeType":"ParameterList","parameters":[],"src":"1857:2:41"},"returnParameters":{"id":7428,"nodeType":"ParameterList","parameters":[],"src":"1885:0:41"},"scope":7481,"src":"1831:101:41","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7459,"nodeType":"Block","src":"2151:128:41","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7446,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7440,"src":"2169:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:41","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7447,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:41","typeDescriptions":{}}},"id":7450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2181:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":7452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:40:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":7445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2161:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2161:73:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7454,"nodeType":"ExpressionStatement","src":"2161:73:41"},{"expression":{"arguments":[{"id":7456,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7440,"src":"2263:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7455,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"2244:18:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2244:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7458,"nodeType":"ExpressionStatement","src":"2244:28:41"}]},"documentation":{"id":7438,"nodeType":"StructuredDocumentation","src":"1938:138:41","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":7460,"implemented":true,"kind":"function","modifiers":[{"id":7443,"modifierName":{"id":7442,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"2141:9:41"},"nodeType":"ModifierInvocation","src":"2141:9:41"}],"name":"transferOwnership","nameLocation":"2090:17:41","nodeType":"FunctionDefinition","parameters":{"id":7441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7440,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:41","nodeType":"VariableDeclaration","scope":7460,"src":"2108:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7439,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:41"},"returnParameters":{"id":7444,"nodeType":"ParameterList","parameters":[],"src":"2151:0:41"},"scope":7481,"src":"2081:198:41","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":7479,"nodeType":"Block","src":"2496:124:41","statements":[{"assignments":[7467],"declarations":[{"constant":false,"id":7467,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:41","nodeType":"VariableDeclaration","scope":7479,"src":"2506:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7466,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7469,"initialValue":{"id":7468,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7376,"src":"2525:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:41"},{"expression":{"id":7472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7470,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7376,"src":"2541:6:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7471,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"2550:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7473,"nodeType":"ExpressionStatement","src":"2541:17:41"},{"eventCall":{"arguments":[{"id":7475,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7467,"src":"2594:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7476,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"2604:8:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7474,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7382,"src":"2573:20:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":7477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:40:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7478,"nodeType":"EmitStatement","src":"2568:45:41"}]},"documentation":{"id":7461,"nodeType":"StructuredDocumentation","src":"2285:143:41","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"id":7480,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:41","nodeType":"FunctionDefinition","parameters":{"id":7464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7463,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:41","nodeType":"VariableDeclaration","scope":7480,"src":"2461:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7462,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:41"},"returnParameters":{"id":7465,"nodeType":"ParameterList","parameters":[],"src":"2496:0:41"},"scope":7481,"src":"2433:187:41","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7482,"src":"654:1968:41"}],"src":"102:2521:41"},"id":41},"@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC1822.sol","exportedSymbols":{"IERC1822Proxiable":[7491]},"id":7492,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7483,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"113:23:42"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":7484,"nodeType":"StructuredDocumentation","src":"138:203:42","text":" @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n proxy whose upgrades are fully controlled by the current implementation."},"fullyImplemented":false,"id":7491,"linearizedBaseContracts":[7491],"name":"IERC1822Proxiable","nameLocation":"352:17:42","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7485,"nodeType":"StructuredDocumentation","src":"376:438:42","text":" @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n address.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy."},"functionSelector":"52d1902d","id":7490,"implemented":false,"kind":"function","modifiers":[],"name":"proxiableUUID","nameLocation":"828:13:42","nodeType":"FunctionDefinition","parameters":{"id":7486,"nodeType":"ParameterList","parameters":[],"src":"841:2:42"},"returnParameters":{"id":7489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7490,"src":"867:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"867:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"866:9:42"},"scope":7491,"src":"819:57:42","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7492,"src":"342:536:42"}],"src":"113:766:42"},"id":42},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","exportedSymbols":{"Address":[10496],"ERC1967Proxy":[7528],"ERC1967Upgrade":[7846],"IBeacon":[7908],"IERC1822Proxiable":[7491],"Proxy":[7898],"StorageSlot":[10578]},"id":7529,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7493,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"114:23:43"},{"absolutePath":"@openzeppelin/contracts/proxy/Proxy.sol","file":"../Proxy.sol","id":7494,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7529,"sourceUnit":7899,"src":"139:22:43","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol","file":"./ERC1967Upgrade.sol","id":7495,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7529,"sourceUnit":7847,"src":"162:30:43","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":7497,"name":"Proxy","nodeType":"IdentifierPath","referencedDeclaration":7898,"src":"592:5:43"},"id":7498,"nodeType":"InheritanceSpecifier","src":"592:5:43"},{"baseName":{"id":7499,"name":"ERC1967Upgrade","nodeType":"IdentifierPath","referencedDeclaration":7846,"src":"599:14:43"},"id":7500,"nodeType":"InheritanceSpecifier","src":"599:14:43"}],"contractDependencies":[7846,7898],"contractKind":"contract","documentation":{"id":7496,"nodeType":"StructuredDocumentation","src":"194:372:43","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"id":7528,"linearizedBaseContracts":[7528,7846,7898],"name":"ERC1967Proxy","nameLocation":"576:12:43","nodeType":"ContractDefinition","nodes":[{"body":{"id":7514,"nodeType":"Block","src":"1014:56:43","statements":[{"expression":{"arguments":[{"id":7509,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7503,"src":"1042:6:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7510,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7505,"src":"1050:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":7511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1057:5:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7508,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7629,"src":"1024:17:43","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":7512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1024:39:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7513,"nodeType":"ExpressionStatement","src":"1024:39:43"}]},"documentation":{"id":7501,"nodeType":"StructuredDocumentation","src":"620:333:43","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n function call, and allows initializing the storage of the proxy like a Solidity constructor."},"id":7515,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7503,"mutability":"mutable","name":"_logic","nameLocation":"978:6:43","nodeType":"VariableDeclaration","scope":7515,"src":"970:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7502,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7505,"mutability":"mutable","name":"_data","nameLocation":"999:5:43","nodeType":"VariableDeclaration","scope":7515,"src":"986:18:43","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7504,"name":"bytes","nodeType":"ElementaryTypeName","src":"986:5:43","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"969:36:43"},"returnParameters":{"id":7507,"nodeType":"ParameterList","parameters":[],"src":"1014:0:43"},"scope":7528,"src":"958:112:43","stateMutability":"payable","virtual":false,"visibility":"public"},{"baseFunctions":[7863],"body":{"id":7526,"nodeType":"Block","src":"1229:59:43","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7522,"name":"ERC1967Upgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7846,"src":"1246:14:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Upgrade_$7846_$","typeString":"type(contract ERC1967Upgrade)"}},"id":7523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_getImplementation","nodeType":"MemberAccess","referencedDeclaration":7560,"src":"1246:33:43","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1246:35:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7521,"id":7525,"nodeType":"Return","src":"1239:42:43"}]},"documentation":{"id":7516,"nodeType":"StructuredDocumentation","src":"1076:67:43","text":" @dev Returns the current implementation address."},"id":7527,"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1157:15:43","nodeType":"FunctionDefinition","overrides":{"id":7518,"nodeType":"OverrideSpecifier","overrides":[],"src":"1197:8:43"},"parameters":{"id":7517,"nodeType":"ParameterList","parameters":[],"src":"1172:2:43"},"returnParameters":{"id":7521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7520,"mutability":"mutable","name":"impl","nameLocation":"1223:4:43","nodeType":"VariableDeclaration","scope":7527,"src":"1215:12:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7519,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1214:14:43"},"scope":7528,"src":"1148:140:43","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":7529,"src":"567:723:43"}],"src":"114:1177:43"},"id":43},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol","exportedSymbols":{"Address":[10496],"ERC1967Upgrade":[7846],"IBeacon":[7908],"IERC1822Proxiable":[7491],"StorageSlot":[10578]},"id":7847,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7530,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"116:23:44"},{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","id":7531,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7847,"sourceUnit":7909,"src":"141:31:44","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC1822.sol","file":"../../interfaces/draft-IERC1822.sol","id":7532,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7847,"sourceUnit":7492,"src":"173:45:44","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":7533,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7847,"sourceUnit":10497,"src":"219:33:44","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","id":7534,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":7847,"sourceUnit":10579,"src":"253:37:44","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":7535,"nodeType":"StructuredDocumentation","src":"292:236:44","text":" @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n _Available since v4.1._\n @custom:oz-upgrades-unsafe-allow delegatecall"},"fullyImplemented":true,"id":7846,"linearizedBaseContracts":[7846],"name":"ERC1967Upgrade","nameLocation":"547:14:44","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":7538,"mutability":"constant","name":"_ROLLBACK_SLOT","nameLocation":"672:14:44","nodeType":"VariableDeclaration","scope":7846,"src":"647:108:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"647:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834393130666466613136666564333236306564306537313437663763633664613131613630323038623562393430366431326136333536313466666439313433","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"689:66:44","typeDescriptions":{"typeIdentifier":"t_rational_33048860383849004559742813297059419343339852917517107368639918720169455489347_by_1","typeString":"int_const 3304...(69 digits omitted)...9347"},"value":"0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"},"visibility":"private"},{"constant":true,"documentation":{"id":7539,"nodeType":"StructuredDocumentation","src":"762:214:44","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n validated in the constructor."},"id":7542,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","nameLocation":"1007:20:44","nodeType":"VariableDeclaration","scope":7846,"src":"981:115:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"981:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":7541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1030:66:44","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":7543,"nodeType":"StructuredDocumentation","src":"1103:68:44","text":" @dev Emitted when the implementation is upgraded."},"id":7547,"name":"Upgraded","nameLocation":"1182:8:44","nodeType":"EventDefinition","parameters":{"id":7546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7545,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"1207:14:44","nodeType":"VariableDeclaration","scope":7547,"src":"1191:30:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7544,"name":"address","nodeType":"ElementaryTypeName","src":"1191:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1190:32:44"},"src":"1176:47:44"},{"body":{"id":7559,"nodeType":"Block","src":"1363:78:44","statements":[{"expression":{"expression":{"arguments":[{"id":7555,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"1407:20:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7553,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"1380:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"1380:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1380:48:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"1380:54:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7552,"id":7558,"nodeType":"Return","src":"1373:61:44"}]},"documentation":{"id":7548,"nodeType":"StructuredDocumentation","src":"1229:67:44","text":" @dev Returns the current implementation address."},"id":7560,"implemented":true,"kind":"function","modifiers":[],"name":"_getImplementation","nameLocation":"1310:18:44","nodeType":"FunctionDefinition","parameters":{"id":7549,"nodeType":"ParameterList","parameters":[],"src":"1328:2:44"},"returnParameters":{"id":7552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7560,"src":"1354:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7550,"name":"address","nodeType":"ElementaryTypeName","src":"1354:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1353:9:44"},"scope":7846,"src":"1301:140:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7583,"nodeType":"Block","src":"1595:196:44","statements":[{"expression":{"arguments":[{"arguments":[{"id":7569,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7563,"src":"1632:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7567,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"1613:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10219,"src":"1613:18:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1613:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":7571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1652:47:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":7566,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1605:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1605:95:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7573,"nodeType":"ExpressionStatement","src":"1605:95:44"},{"expression":{"id":7581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":7577,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"1737:20:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7574,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"1710:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"1710:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1710:48:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"1710:54:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7580,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7563,"src":"1767:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1710:74:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7582,"nodeType":"ExpressionStatement","src":"1710:74:44"}]},"documentation":{"id":7561,"nodeType":"StructuredDocumentation","src":"1447:80:44","text":" @dev Stores a new address in the EIP1967 implementation slot."},"id":7584,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1541:18:44","nodeType":"FunctionDefinition","parameters":{"id":7564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7563,"mutability":"mutable","name":"newImplementation","nameLocation":"1568:17:44","nodeType":"VariableDeclaration","scope":7584,"src":"1560:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7562,"name":"address","nodeType":"ElementaryTypeName","src":"1560:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1559:27:44"},"returnParameters":{"id":7565,"nodeType":"ParameterList","parameters":[],"src":"1595:0:44"},"scope":7846,"src":"1532:259:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7598,"nodeType":"Block","src":"1953:96:44","statements":[{"expression":{"arguments":[{"id":7591,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7587,"src":"1982:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7590,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7584,"src":"1963:18:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1963:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7593,"nodeType":"ExpressionStatement","src":"1963:37:44"},{"eventCall":{"arguments":[{"id":7595,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7587,"src":"2024:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7594,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7547,"src":"2015:8:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2015:27:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7597,"nodeType":"EmitStatement","src":"2010:32:44"}]},"documentation":{"id":7585,"nodeType":"StructuredDocumentation","src":"1797:95:44","text":" @dev Perform implementation upgrade\n Emits an {Upgraded} event."},"id":7599,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeTo","nameLocation":"1906:10:44","nodeType":"FunctionDefinition","parameters":{"id":7588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7587,"mutability":"mutable","name":"newImplementation","nameLocation":"1925:17:44","nodeType":"VariableDeclaration","scope":7599,"src":"1917:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7586,"name":"address","nodeType":"ElementaryTypeName","src":"1917:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1916:27:44"},"returnParameters":{"id":7589,"nodeType":"ParameterList","parameters":[],"src":"1953:0:44"},"scope":7846,"src":"1897:152:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7628,"nodeType":"Block","src":"2311:167:44","statements":[{"expression":{"arguments":[{"id":7610,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7602,"src":"2332:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7609,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7599,"src":"2321:10:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2321:29:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7612,"nodeType":"ExpressionStatement","src":"2321:29:44"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7613,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7604,"src":"2364:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2364:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2378:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2364:15:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":7617,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7606,"src":"2383:9:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2364:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7627,"nodeType":"IfStatement","src":"2360:112:44","trueBody":{"id":7626,"nodeType":"Block","src":"2394:78:44","statements":[{"expression":{"arguments":[{"id":7622,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7602,"src":"2437:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7623,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7604,"src":"2456:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7619,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"2408:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":10429,"src":"2408:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":7624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2408:53:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7625,"nodeType":"ExpressionStatement","src":"2408:53:44"}]}}]},"documentation":{"id":7600,"nodeType":"StructuredDocumentation","src":"2055:123:44","text":" @dev Perform implementation upgrade with additional setup call.\n Emits an {Upgraded} event."},"id":7629,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","nameLocation":"2192:17:44","nodeType":"FunctionDefinition","parameters":{"id":7607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7602,"mutability":"mutable","name":"newImplementation","nameLocation":"2227:17:44","nodeType":"VariableDeclaration","scope":7629,"src":"2219:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7601,"name":"address","nodeType":"ElementaryTypeName","src":"2219:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7604,"mutability":"mutable","name":"data","nameLocation":"2267:4:44","nodeType":"VariableDeclaration","scope":7629,"src":"2254:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7603,"name":"bytes","nodeType":"ElementaryTypeName","src":"2254:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7606,"mutability":"mutable","name":"forceCall","nameLocation":"2286:9:44","nodeType":"VariableDeclaration","scope":7629,"src":"2281:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7605,"name":"bool","nodeType":"ElementaryTypeName","src":"2281:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2209:92:44"},"returnParameters":{"id":7608,"nodeType":"ParameterList","parameters":[],"src":"2311:0:44"},"scope":7846,"src":"2183:295:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":7681,"nodeType":"Block","src":"2782:820:44","statements":[{"condition":{"expression":{"arguments":[{"id":7641,"name":"_ROLLBACK_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7538,"src":"3123:14:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7639,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"3096:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBooleanSlot","nodeType":"MemberAccess","referencedDeclaration":10555,"src":"3096:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_BooleanSlot_$10527_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.BooleanSlot storage pointer)"}},"id":7642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3096:42:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10527_storage_ptr","typeString":"struct StorageSlot.BooleanSlot storage pointer"}},"id":7643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10526,"src":"3096:48:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7679,"nodeType":"Block","src":"3214:382:44","statements":[{"clauses":[{"block":{"id":7664,"nodeType":"Block","src":"3308:115:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7658,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"3334:4:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7659,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7542,"src":"3342:20:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3334:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f786961626c6555554944","id":7661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3364:43:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""},"value":"ERC1967Upgrade: unsupported proxiableUUID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""}],"id":7657,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3326:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3326:82:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7663,"nodeType":"ExpressionStatement","src":"3326:82:44"}]},"errorName":"","id":7665,"nodeType":"TryCatchClause","parameters":{"id":7656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7655,"mutability":"mutable","name":"slot","nameLocation":"3302:4:44","nodeType":"VariableDeclaration","scope":7665,"src":"3294:12:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3294:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3293:14:44"},"src":"3285:138:44"},{"block":{"id":7670,"nodeType":"Block","src":"3430:89:44","statements":[{"expression":{"arguments":[{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e746174696f6e206973206e6f742055555053","id":7667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3455:48:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""},"value":"ERC1967Upgrade: new implementation is not UUPS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""}],"id":7666,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"3448:6:44","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3448:56:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7669,"nodeType":"ExpressionStatement","src":"3448:56:44"}]},"errorName":"","id":7671,"nodeType":"TryCatchClause","src":"3424:95:44"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":7650,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"3250:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7649,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7491,"src":"3232:17:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822Proxiable_$7491_$","typeString":"type(contract IERC1822Proxiable)"}},"id":7651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3232:36:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822Proxiable_$7491","typeString":"contract IERC1822Proxiable"}},"id":7652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":7490,"src":"3232:50:44","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":7653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3232:52:44","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7672,"nodeType":"TryStatement","src":"3228:291:44"},{"expression":{"arguments":[{"id":7674,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"3550:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7675,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7634,"src":"3569:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7676,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7636,"src":"3575:9:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7673,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7629,"src":"3532:17:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":7677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3532:53:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7678,"nodeType":"ExpressionStatement","src":"3532:53:44"}]},"id":7680,"nodeType":"IfStatement","src":"3092:504:44","trueBody":{"id":7648,"nodeType":"Block","src":"3146:62:44","statements":[{"expression":{"arguments":[{"id":7645,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"3179:17:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7644,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7584,"src":"3160:18:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3160:37:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7647,"nodeType":"ExpressionStatement","src":"3160:37:44"}]}}]},"documentation":{"id":7630,"nodeType":"StructuredDocumentation","src":"2484:161:44","text":" @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n Emits an {Upgraded} event."},"id":7682,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"2659:21:44","nodeType":"FunctionDefinition","parameters":{"id":7637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7632,"mutability":"mutable","name":"newImplementation","nameLocation":"2698:17:44","nodeType":"VariableDeclaration","scope":7682,"src":"2690:25:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7631,"name":"address","nodeType":"ElementaryTypeName","src":"2690:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7634,"mutability":"mutable","name":"data","nameLocation":"2738:4:44","nodeType":"VariableDeclaration","scope":7682,"src":"2725:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7633,"name":"bytes","nodeType":"ElementaryTypeName","src":"2725:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7636,"mutability":"mutable","name":"forceCall","nameLocation":"2757:9:44","nodeType":"VariableDeclaration","scope":7682,"src":"2752:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7635,"name":"bool","nodeType":"ElementaryTypeName","src":"2752:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2680:92:44"},"returnParameters":{"id":7638,"nodeType":"ParameterList","parameters":[],"src":"2782:0:44"},"scope":7846,"src":"2650:952:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":7683,"nodeType":"StructuredDocumentation","src":"3608:189:44","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n validated in the constructor."},"id":7686,"mutability":"constant","name":"_ADMIN_SLOT","nameLocation":"3828:11:44","nodeType":"VariableDeclaration","scope":7846,"src":"3802:106:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7684,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3802:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":7685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3842:66:44","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":7687,"nodeType":"StructuredDocumentation","src":"3915:67:44","text":" @dev Emitted when the admin account has changed."},"id":7693,"name":"AdminChanged","nameLocation":"3993:12:44","nodeType":"EventDefinition","parameters":{"id":7692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7689,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"4014:13:44","nodeType":"VariableDeclaration","scope":7693,"src":"4006:21:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7688,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7691,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"4037:8:44","nodeType":"VariableDeclaration","scope":7693,"src":"4029:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7690,"name":"address","nodeType":"ElementaryTypeName","src":"4029:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4005:41:44"},"src":"3987:60:44"},{"body":{"id":7705,"nodeType":"Block","src":"4161:69:44","statements":[{"expression":{"expression":{"arguments":[{"id":7701,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7686,"src":"4205:11:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7699,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"4178:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"4178:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4178:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"4178:45:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7698,"id":7704,"nodeType":"Return","src":"4171:52:44"}]},"documentation":{"id":7694,"nodeType":"StructuredDocumentation","src":"4053:50:44","text":" @dev Returns the current admin."},"id":7706,"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"4117:9:44","nodeType":"FunctionDefinition","parameters":{"id":7695,"nodeType":"ParameterList","parameters":[],"src":"4126:2:44"},"returnParameters":{"id":7698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7706,"src":"4152:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7696,"name":"address","nodeType":"ElementaryTypeName","src":"4152:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4151:9:44"},"scope":7846,"src":"4108:122:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7731,"nodeType":"Block","src":"4357:156:44","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":7718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7713,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7709,"src":"4375:8:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":7716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4395:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4387:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7714,"name":"address","nodeType":"ElementaryTypeName","src":"4387:7:44","typeDescriptions":{}}},"id":7717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4387:10:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4375:22:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061646472657373","id":7719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4399:40:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""},"value":"ERC1967: new admin is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""}],"id":7712,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4367:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4367:73:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7721,"nodeType":"ExpressionStatement","src":"4367:73:44"},{"expression":{"id":7729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":7725,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7686,"src":"4477:11:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7722,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"4450:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"4450:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4450:39:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"4450:45:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7728,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7709,"src":"4498:8:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4450:56:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7730,"nodeType":"ExpressionStatement","src":"4450:56:44"}]},"documentation":{"id":7707,"nodeType":"StructuredDocumentation","src":"4236:71:44","text":" @dev Stores a new address in the EIP1967 admin slot."},"id":7732,"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"4321:9:44","nodeType":"FunctionDefinition","parameters":{"id":7710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7709,"mutability":"mutable","name":"newAdmin","nameLocation":"4339:8:44","nodeType":"VariableDeclaration","scope":7732,"src":"4331:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7708,"name":"address","nodeType":"ElementaryTypeName","src":"4331:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4330:18:44"},"returnParameters":{"id":7711,"nodeType":"ParameterList","parameters":[],"src":"4357:0:44"},"scope":7846,"src":"4312:201:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7748,"nodeType":"Block","src":"4673:86:44","statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7739,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7706,"src":"4701:9:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4701:11:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7741,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7735,"src":"4714:8:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":7738,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"4688:12:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":7742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4688:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7743,"nodeType":"EmitStatement","src":"4683:40:44"},{"expression":{"arguments":[{"id":7745,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7735,"src":"4743:8:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7744,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7732,"src":"4733:9:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4733:19:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7747,"nodeType":"ExpressionStatement","src":"4733:19:44"}]},"documentation":{"id":7733,"nodeType":"StructuredDocumentation","src":"4519:100:44","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event."},"id":7749,"implemented":true,"kind":"function","modifiers":[],"name":"_changeAdmin","nameLocation":"4633:12:44","nodeType":"FunctionDefinition","parameters":{"id":7736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7735,"mutability":"mutable","name":"newAdmin","nameLocation":"4654:8:44","nodeType":"VariableDeclaration","scope":7749,"src":"4646:16:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7734,"name":"address","nodeType":"ElementaryTypeName","src":"4646:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4645:18:44"},"returnParameters":{"id":7737,"nodeType":"ParameterList","parameters":[],"src":"4673:0:44"},"scope":7846,"src":"4624:135:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":true,"documentation":{"id":7750,"nodeType":"StructuredDocumentation","src":"4765:232:44","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"id":7753,"mutability":"constant","name":"_BEACON_SLOT","nameLocation":"5028:12:44","nodeType":"VariableDeclaration","scope":7846,"src":"5002:107:44","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5002:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":7752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5043:66:44","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":7754,"nodeType":"StructuredDocumentation","src":"5116:60:44","text":" @dev Emitted when the beacon is upgraded."},"id":7758,"name":"BeaconUpgraded","nameLocation":"5187:14:44","nodeType":"EventDefinition","parameters":{"id":7757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7756,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"5218:6:44","nodeType":"VariableDeclaration","scope":7758,"src":"5202:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7755,"name":"address","nodeType":"ElementaryTypeName","src":"5202:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5201:24:44"},"src":"5181:45:44"},{"body":{"id":7770,"nodeType":"Block","src":"5342:70:44","statements":[{"expression":{"expression":{"arguments":[{"id":7766,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7753,"src":"5386:12:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7764,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"5359:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"5359:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5359:40:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"5359:46:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":7763,"id":7769,"nodeType":"Return","src":"5352:53:44"}]},"documentation":{"id":7759,"nodeType":"StructuredDocumentation","src":"5232:51:44","text":" @dev Returns the current beacon."},"id":7771,"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"5297:10:44","nodeType":"FunctionDefinition","parameters":{"id":7760,"nodeType":"ParameterList","parameters":[],"src":"5307:2:44"},"returnParameters":{"id":7763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7771,"src":"5333:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7761,"name":"address","nodeType":"ElementaryTypeName","src":"5333:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5332:9:44"},"scope":7846,"src":"5288:124:44","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":7806,"nodeType":"Block","src":"5541:324:44","statements":[{"expression":{"arguments":[{"arguments":[{"id":7780,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7774,"src":"5578:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7778,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"5559:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10219,"src":"5559:18:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5559:29:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720626561636f6e206973206e6f74206120636f6e7472616374","id":7782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5590:39:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""},"value":"ERC1967: new beacon is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""}],"id":7777,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5551:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5551:79:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7784,"nodeType":"ExpressionStatement","src":"5551:79:44"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":7789,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7774,"src":"5688:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7788,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7908,"src":"5680:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$7908_$","typeString":"type(contract IBeacon)"}},"id":7790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5680:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$7908","typeString":"contract IBeacon"}},"id":7791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":7907,"src":"5680:33:44","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":7792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5680:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7786,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"5661:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10219,"src":"5661:18:44","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5661:55:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a20626561636f6e20696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":7794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5730:50:44","typeDescriptions":{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""},"value":"ERC1967: beacon implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""}],"id":7785,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5640:7:44","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5640:150:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7796,"nodeType":"ExpressionStatement","src":"5640:150:44"},{"expression":{"id":7804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":7800,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7753,"src":"5827:12:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7797,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10578,"src":"5800:11:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$10578_$","typeString":"type(library StorageSlot)"}},"id":7799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":10544,"src":"5800:26:44","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$10524_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":7801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5800:40:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":7802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":10523,"src":"5800:46:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7803,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7774,"src":"5849:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5800:58:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7805,"nodeType":"ExpressionStatement","src":"5800:58:44"}]},"documentation":{"id":7772,"nodeType":"StructuredDocumentation","src":"5418:71:44","text":" @dev Stores a new beacon in the EIP1967 beacon slot."},"id":7807,"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"5503:10:44","nodeType":"FunctionDefinition","parameters":{"id":7775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7774,"mutability":"mutable","name":"newBeacon","nameLocation":"5522:9:44","nodeType":"VariableDeclaration","scope":7807,"src":"5514:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7773,"name":"address","nodeType":"ElementaryTypeName","src":"5514:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5513:19:44"},"returnParameters":{"id":7776,"nodeType":"ParameterList","parameters":[],"src":"5541:0:44"},"scope":7846,"src":"5494:371:44","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":7844,"nodeType":"Block","src":"6294:217:44","statements":[{"expression":{"arguments":[{"id":7818,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6315:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7817,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7807,"src":"6304:10:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6304:21:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7820,"nodeType":"ExpressionStatement","src":"6304:21:44"},{"eventCall":{"arguments":[{"id":7822,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6355:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7821,"name":"BeaconUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7758,"src":"6340:14:44","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6340:25:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7824,"nodeType":"EmitStatement","src":"6335:30:44"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7825,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7812,"src":"6379:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"6379:11:44","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6393:1:44","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6379:15:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":7829,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7814,"src":"6398:9:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6379:28:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7843,"nodeType":"IfStatement","src":"6375:130:44","trueBody":{"id":7842,"nodeType":"Block","src":"6409:96:44","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":7835,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6460:9:44","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7834,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7908,"src":"6452:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$7908_$","typeString":"type(contract IBeacon)"}},"id":7836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6452:18:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$7908","typeString":"contract IBeacon"}},"id":7837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":7907,"src":"6452:33:44","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":7838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6452:35:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7839,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7812,"src":"6489:4:44","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7831,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"6423:7:44","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":10429,"src":"6423:28:44","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":7840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6423:71:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":7841,"nodeType":"ExpressionStatement","src":"6423:71:44"}]}}]},"documentation":{"id":7808,"nodeType":"StructuredDocumentation","src":"5871:292:44","text":" @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n Emits a {BeaconUpgraded} event."},"id":7845,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeBeaconToAndCall","nameLocation":"6177:23:44","nodeType":"FunctionDefinition","parameters":{"id":7815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7810,"mutability":"mutable","name":"newBeacon","nameLocation":"6218:9:44","nodeType":"VariableDeclaration","scope":7845,"src":"6210:17:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7809,"name":"address","nodeType":"ElementaryTypeName","src":"6210:7:44","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7812,"mutability":"mutable","name":"data","nameLocation":"6250:4:44","nodeType":"VariableDeclaration","scope":7845,"src":"6237:17:44","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7811,"name":"bytes","nodeType":"ElementaryTypeName","src":"6237:5:44","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":7814,"mutability":"mutable","name":"forceCall","nameLocation":"6269:9:44","nodeType":"VariableDeclaration","scope":7845,"src":"6264:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7813,"name":"bool","nodeType":"ElementaryTypeName","src":"6264:4:44","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6200:84:44"},"returnParameters":{"id":7816,"nodeType":"ParameterList","parameters":[],"src":"6294:0:44"},"scope":7846,"src":"6168:343:44","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":7847,"src":"529:5984:44"}],"src":"116:6398:44"},"id":44},"@openzeppelin/contracts/proxy/Proxy.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/Proxy.sol","exportedSymbols":{"Proxy":[7898]},"id":7899,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7848,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:45"},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":7849,"nodeType":"StructuredDocumentation","src":"124:598:45","text":" @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":false,"id":7898,"linearizedBaseContracts":[7898],"name":"Proxy","nameLocation":"741:5:45","nodeType":"ContractDefinition","nodes":[{"body":{"id":7856,"nodeType":"Block","src":"1008:835:45","statements":[{"AST":{"nodeType":"YulBlock","src":"1027:810:45","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1280:1:45","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1283:1:45","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1286:12:45"},"nodeType":"YulFunctionCall","src":"1286:14:45"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1267:12:45"},"nodeType":"YulFunctionCall","src":"1267:34:45"},"nodeType":"YulExpressionStatement","src":"1267:34:45"},{"nodeType":"YulVariableDeclaration","src":"1428:74:45","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"1455:3:45"},"nodeType":"YulFunctionCall","src":"1455:5:45"},{"name":"implementation","nodeType":"YulIdentifier","src":"1462:14:45"},{"kind":"number","nodeType":"YulLiteral","src":"1478:1:45","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1481:12:45"},"nodeType":"YulFunctionCall","src":"1481:14:45"},{"kind":"number","nodeType":"YulLiteral","src":"1497:1:45","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1500:1:45","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"1442:12:45"},"nodeType":"YulFunctionCall","src":"1442:60:45"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"1432:6:45","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1570:1:45","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1573:1:45","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1576:14:45"},"nodeType":"YulFunctionCall","src":"1576:16:45"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"1555:14:45"},"nodeType":"YulFunctionCall","src":"1555:38:45"},"nodeType":"YulExpressionStatement","src":"1555:38:45"},{"cases":[{"body":{"nodeType":"YulBlock","src":"1688:59:45","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1713:1:45","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1716:14:45"},"nodeType":"YulFunctionCall","src":"1716:16:45"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1706:6:45"},"nodeType":"YulFunctionCall","src":"1706:27:45"},"nodeType":"YulExpressionStatement","src":"1706:27:45"}]},"nodeType":"YulCase","src":"1681:66:45","value":{"kind":"number","nodeType":"YulLiteral","src":"1686:1:45","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"1768:59:45","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1793:1:45","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1796:14:45"},"nodeType":"YulFunctionCall","src":"1796:16:45"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1786:6:45"},"nodeType":"YulFunctionCall","src":"1786:27:45"},"nodeType":"YulExpressionStatement","src":"1786:27:45"}]},"nodeType":"YulCase","src":"1760:67:45","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"1614:6:45"},"nodeType":"YulSwitch","src":"1607:220:45"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":7852,"isOffset":false,"isSlot":false,"src":"1462:14:45","valueSize":1}],"id":7855,"nodeType":"InlineAssembly","src":"1018:819:45"}]},"documentation":{"id":7850,"nodeType":"StructuredDocumentation","src":"753:190:45","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":7857,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"957:9:45","nodeType":"FunctionDefinition","parameters":{"id":7853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7852,"mutability":"mutable","name":"implementation","nameLocation":"975:14:45","nodeType":"VariableDeclaration","scope":7857,"src":"967:22:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7851,"name":"address","nodeType":"ElementaryTypeName","src":"967:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"966:24:45"},"returnParameters":{"id":7854,"nodeType":"ParameterList","parameters":[],"src":"1008:0:45"},"scope":7898,"src":"948:895:45","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"documentation":{"id":7858,"nodeType":"StructuredDocumentation","src":"1849:173:45","text":" @dev This is a virtual function that should be overridden so it returns the address to which the fallback function\n and {_fallback} should delegate."},"id":7863,"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2036:15:45","nodeType":"FunctionDefinition","parameters":{"id":7859,"nodeType":"ParameterList","parameters":[],"src":"2051:2:45"},"returnParameters":{"id":7862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7861,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7863,"src":"2085:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7860,"name":"address","nodeType":"ElementaryTypeName","src":"2085:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2084:9:45"},"scope":7898,"src":"2027:67:45","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":7875,"nodeType":"Block","src":"2360:72:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7867,"name":"_beforeFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7897,"src":"2370:15:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":7868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2370:17:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7869,"nodeType":"ExpressionStatement","src":"2370:17:45"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":7871,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7863,"src":"2407:15:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":7872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2407:17:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7870,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7857,"src":"2397:9:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":7873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2397:28:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7874,"nodeType":"ExpressionStatement","src":"2397:28:45"}]},"documentation":{"id":7864,"nodeType":"StructuredDocumentation","src":"2100:217:45","text":" @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internal call site, it will return directly to the external caller."},"id":7876,"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2331:9:45","nodeType":"FunctionDefinition","parameters":{"id":7865,"nodeType":"ParameterList","parameters":[],"src":"2340:2:45"},"returnParameters":{"id":7866,"nodeType":"ParameterList","parameters":[],"src":"2360:0:45"},"scope":7898,"src":"2322:110:45","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":7883,"nodeType":"Block","src":"2665:28:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7880,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"2675:9:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":7881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2675:11:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7882,"nodeType":"ExpressionStatement","src":"2675:11:45"}]},"documentation":{"id":7877,"nodeType":"StructuredDocumentation","src":"2438:186:45","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data."},"id":7884,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7878,"nodeType":"ParameterList","parameters":[],"src":"2637:2:45"},"returnParameters":{"id":7879,"nodeType":"ParameterList","parameters":[],"src":"2665:0:45"},"scope":7898,"src":"2629:64:45","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":7891,"nodeType":"Block","src":"2888:28:45","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":7888,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"2898:9:45","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":7889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2898:11:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7890,"nodeType":"ExpressionStatement","src":"2898:11:45"}]},"documentation":{"id":7885,"nodeType":"StructuredDocumentation","src":"2699:149:45","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n is empty."},"id":7892,"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":7886,"nodeType":"ParameterList","parameters":[],"src":"2860:2:45"},"returnParameters":{"id":7887,"nodeType":"ParameterList","parameters":[],"src":"2888:0:45"},"scope":7898,"src":"2853:63:45","stateMutability":"payable","virtual":true,"visibility":"external"},{"body":{"id":7896,"nodeType":"Block","src":"3242:2:45","statements":[]},"documentation":{"id":7893,"nodeType":"StructuredDocumentation","src":"2922:271:45","text":" @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n call, or as part of the Solidity `fallback` or `receive` functions.\n If overridden should call `super._beforeFallback()`."},"id":7897,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"3207:15:45","nodeType":"FunctionDefinition","parameters":{"id":7894,"nodeType":"ParameterList","parameters":[],"src":"3222:2:45"},"returnParameters":{"id":7895,"nodeType":"ParameterList","parameters":[],"src":"3242:0:45"},"scope":7898,"src":"3198:46:45","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":7899,"src":"723:2523:45"}],"src":"99:3148:45"},"id":45},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/beacon/IBeacon.sol","exportedSymbols":{"IBeacon":[7908]},"id":7909,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7900,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"93:23:46"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":7901,"nodeType":"StructuredDocumentation","src":"118:79:46","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"id":7908,"linearizedBaseContracts":[7908],"name":"IBeacon","nameLocation":"208:7:46","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":7902,"nodeType":"StructuredDocumentation","src":"222:162:46","text":" @dev Must return an address that can be used as a delegate call target.\n {BeaconProxy} will check that this address is a contract."},"functionSelector":"5c60da1b","id":7907,"implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"398:14:46","nodeType":"FunctionDefinition","parameters":{"id":7903,"nodeType":"ParameterList","parameters":[],"src":"412:2:46"},"returnParameters":{"id":7906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7907,"src":"438:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7904,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"437:9:46"},"scope":7908,"src":"389:58:46","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":7909,"src":"198:251:46"}],"src":"93:357:46"},"id":46},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","exportedSymbols":{"Address":[10496],"Initializable":[8059]},"id":8060,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":7910,"literals":["solidity","^","0.8",".2"],"nodeType":"PragmaDirective","src":"113:23:47"},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":7911,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8060,"sourceUnit":10497,"src":"138:33:47","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":7912,"nodeType":"StructuredDocumentation","src":"173:2198:47","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":8059,"linearizedBaseContracts":[8059],"name":"Initializable","nameLocation":"2390:13:47","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":7913,"nodeType":"StructuredDocumentation","src":"2410:109:47","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"id":7915,"mutability":"mutable","name":"_initialized","nameLocation":"2538:12:47","nodeType":"VariableDeclaration","scope":8059,"src":"2524:26:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7914,"name":"uint8","nodeType":"ElementaryTypeName","src":"2524:5:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"constant":false,"documentation":{"id":7916,"nodeType":"StructuredDocumentation","src":"2557:91:47","text":" @dev Indicates that the contract is in the process of being initialized."},"id":7918,"mutability":"mutable","name":"_initializing","nameLocation":"2666:13:47","nodeType":"VariableDeclaration","scope":8059,"src":"2653:26:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7917,"name":"bool","nodeType":"ElementaryTypeName","src":"2653:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"anonymous":false,"documentation":{"id":7919,"nodeType":"StructuredDocumentation","src":"2686:90:47","text":" @dev Triggered when the contract has been initialized or reinitialized."},"id":7923,"name":"Initialized","nameLocation":"2787:11:47","nodeType":"EventDefinition","parameters":{"id":7922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7921,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2805:7:47","nodeType":"VariableDeclaration","scope":7923,"src":"2799:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7920,"name":"uint8","nodeType":"ElementaryTypeName","src":"2799:5:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2798:15:47"},"src":"2781:33:47"},{"body":{"id":7978,"nodeType":"Block","src":"3090:472:47","statements":[{"assignments":[7927],"declarations":[{"constant":false,"id":7927,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3105:14:47","nodeType":"VariableDeclaration","scope":7978,"src":"3100:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7926,"name":"bool","nodeType":"ElementaryTypeName","src":"3100:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7930,"initialValue":{"id":7929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3122:14:47","subExpression":{"id":7928,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"3123:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3100:36:47"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7932,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"3168:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7933,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"3186:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":7934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3201:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3186:16:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3168:34:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7937,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3167:36:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3208:34:47","subExpression":{"arguments":[{"arguments":[{"id":7942,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"3236:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$8059","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$8059","typeString":"contract Initializable"}],"id":7941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3228:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7940,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:47","typeDescriptions":{}}},"id":7943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3228:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7938,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"3209:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$10496_$","typeString":"type(library Address)"}},"id":7939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10219,"src":"3209:18:47","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":7944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3209:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7946,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"3246:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":7947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3262:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3246:17:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3208:55:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7950,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3207:57:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3167:97:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":7952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3278:48:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":7931,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3146:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3146:190:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7954,"nodeType":"ExpressionStatement","src":"3146:190:47"},{"expression":{"id":7957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7955,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"3346:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":7956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3361:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3346:16:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":7958,"nodeType":"ExpressionStatement","src":"3346:16:47"},{"condition":{"id":7959,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"3376:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7965,"nodeType":"IfStatement","src":"3372:65:47","trueBody":{"id":7964,"nodeType":"Block","src":"3392:45:47","statements":[{"expression":{"id":7962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7960,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"3406:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3422:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3406:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7963,"nodeType":"ExpressionStatement","src":"3406:20:47"}]}},{"id":7966,"nodeType":"PlaceholderStatement","src":"3446:1:47"},{"condition":{"id":7967,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7927,"src":"3461:14:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7977,"nodeType":"IfStatement","src":"3457:99:47","trueBody":{"id":7976,"nodeType":"Block","src":"3477:79:47","statements":[{"expression":{"id":7970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7968,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"3491:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":7969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3507:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3491:21:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7971,"nodeType":"ExpressionStatement","src":"3491:21:47"},{"eventCall":{"arguments":[{"hexValue":"31","id":7973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3543:1:47","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":7972,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7923,"src":"3531:11:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":7974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3531:14:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7975,"nodeType":"EmitStatement","src":"3526:19:47"}]}}]},"documentation":{"id":7924,"nodeType":"StructuredDocumentation","src":"2820:242:47","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts. Equivalent to `reinitializer(1)`."},"id":7979,"name":"initializer","nameLocation":"3076:11:47","nodeType":"ModifierDefinition","parameters":{"id":7925,"nodeType":"ParameterList","parameters":[],"src":"3087:2:47"},"src":"3067:495:47","virtual":false,"visibility":"internal"},{"body":{"id":8011,"nodeType":"Block","src":"4377:255:47","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4395:14:47","subExpression":{"id":7985,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"4396:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":7989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7987,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"4413:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":7988,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7982,"src":"4428:7:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4413:22:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4395:40:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":7991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4437:48:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":7984,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4387:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4387:99:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7993,"nodeType":"ExpressionStatement","src":"4387:99:47"},{"expression":{"id":7996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7994,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"4496:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":7995,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7982,"src":"4511:7:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4496:22:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":7997,"nodeType":"ExpressionStatement","src":"4496:22:47"},{"expression":{"id":8000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":7998,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"4528:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":7999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4544:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4528:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8001,"nodeType":"ExpressionStatement","src":"4528:20:47"},{"id":8002,"nodeType":"PlaceholderStatement","src":"4558:1:47"},{"expression":{"id":8005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8003,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"4569:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":8004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4585:5:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4569:21:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8006,"nodeType":"ExpressionStatement","src":"4569:21:47"},{"eventCall":{"arguments":[{"id":8008,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7982,"src":"4617:7:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8007,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7923,"src":"4605:11:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":8009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4605:20:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8010,"nodeType":"EmitStatement","src":"4600:25:47"}]},"documentation":{"id":7980,"nodeType":"StructuredDocumentation","src":"3568:766:47","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n `initializer` is equivalent to `reinitializer(1)`, so a reinitializer may be used after the original\n initialization step. This is essential to configure modules that are added through upgrades and that require\n initialization.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator."},"id":8012,"name":"reinitializer","nameLocation":"4348:13:47","nodeType":"ModifierDefinition","parameters":{"id":7983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7982,"mutability":"mutable","name":"version","nameLocation":"4368:7:47","nodeType":"VariableDeclaration","scope":8012,"src":"4362:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":7981,"name":"uint8","nodeType":"ElementaryTypeName","src":"4362:5:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4361:15:47"},"src":"4339:293:47","virtual":false,"visibility":"internal"},{"body":{"id":8021,"nodeType":"Block","src":"4870:97:47","statements":[{"expression":{"arguments":[{"id":8016,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"4888:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":8017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4903:45:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""},"value":"Initializable: contract is not initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""}],"id":8015,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4880:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4880:69:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8019,"nodeType":"ExpressionStatement","src":"4880:69:47"},{"id":8020,"nodeType":"PlaceholderStatement","src":"4959:1:47"}]},"documentation":{"id":8013,"nodeType":"StructuredDocumentation","src":"4638:199:47","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":8022,"name":"onlyInitializing","nameLocation":"4851:16:47","nodeType":"ModifierDefinition","parameters":{"id":8014,"nodeType":"ParameterList","parameters":[],"src":"4867:2:47"},"src":"4842:125:47","virtual":false,"visibility":"internal"},{"body":{"id":8057,"nodeType":"Block","src":"5415:230:47","statements":[{"expression":{"arguments":[{"id":8028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5433:14:47","subExpression":{"id":8027,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"5434:13:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":8029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5449:41:47","typeDescriptions":{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""},"value":"Initializable: contract is initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""}],"id":8026,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5425:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5425:66:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8031,"nodeType":"ExpressionStatement","src":"5425:66:47"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":8038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8032,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"5505:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":8035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5525:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8034,"name":"uint8","nodeType":"ElementaryTypeName","src":"5525:5:47","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":8033,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"5520:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5520:11:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":8037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5520:15:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5505:30:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8056,"nodeType":"IfStatement","src":"5501:138:47","trueBody":{"id":8055,"nodeType":"Block","src":"5537:102:47","statements":[{"expression":{"id":8045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8039,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7915,"src":"5551:12:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":8042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5571:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8041,"name":"uint8","nodeType":"ElementaryTypeName","src":"5571:5:47","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":8040,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"5566:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5566:11:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":8044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5566:15:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5551:30:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":8046,"nodeType":"ExpressionStatement","src":"5551:30:47"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":8050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5617:5:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":8049,"name":"uint8","nodeType":"ElementaryTypeName","src":"5617:5:47","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":8048,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"5612:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5612:11:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":8052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5612:15:47","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":8047,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7923,"src":"5600:11:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":8053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5600:28:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8054,"nodeType":"EmitStatement","src":"5595:33:47"}]}}]},"documentation":{"id":8023,"nodeType":"StructuredDocumentation","src":"4973:388:47","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies."},"id":8058,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5375:20:47","nodeType":"FunctionDefinition","parameters":{"id":8024,"nodeType":"ParameterList","parameters":[],"src":"5395:2:47"},"returnParameters":{"id":8025,"nodeType":"ParameterList","parameters":[],"src":"5415:0:47"},"scope":8059,"src":"5366:279:47","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8060,"src":"2372:3275:47"}],"src":"113:5535:47"},"id":47},"@openzeppelin/contracts/security/Pausable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","exportedSymbols":{"Context":[10518],"Pausable":[8167]},"id":8168,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8061,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:48"},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":8062,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8168,"sourceUnit":10519,"src":"130:30:48","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":8064,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"632:7:48"},"id":8065,"nodeType":"InheritanceSpecifier","src":"632:7:48"}],"contractDependencies":[10518],"contractKind":"contract","documentation":{"id":8063,"nodeType":"StructuredDocumentation","src":"162:439:48","text":" @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place."},"fullyImplemented":true,"id":8167,"linearizedBaseContracts":[8167,10518],"name":"Pausable","nameLocation":"620:8:48","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":8066,"nodeType":"StructuredDocumentation","src":"646:73:48","text":" @dev Emitted when the pause is triggered by `account`."},"id":8070,"name":"Paused","nameLocation":"730:6:48","nodeType":"EventDefinition","parameters":{"id":8069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8068,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"745:7:48","nodeType":"VariableDeclaration","scope":8070,"src":"737:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8067,"name":"address","nodeType":"ElementaryTypeName","src":"737:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"736:17:48"},"src":"724:30:48"},{"anonymous":false,"documentation":{"id":8071,"nodeType":"StructuredDocumentation","src":"760:70:48","text":" @dev Emitted when the pause is lifted by `account`."},"id":8075,"name":"Unpaused","nameLocation":"841:8:48","nodeType":"EventDefinition","parameters":{"id":8074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8073,"indexed":false,"mutability":"mutable","name":"account","nameLocation":"858:7:48","nodeType":"VariableDeclaration","scope":8075,"src":"850:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8072,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"849:17:48"},"src":"835:32:48"},{"constant":false,"id":8077,"mutability":"mutable","name":"_paused","nameLocation":"886:7:48","nodeType":"VariableDeclaration","scope":8167,"src":"873:20:48","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8076,"name":"bool","nodeType":"ElementaryTypeName","src":"873:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"body":{"id":8085,"nodeType":"Block","src":"986:32:48","statements":[{"expression":{"id":8083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8081,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"996:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":8082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1006:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"996:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8084,"nodeType":"ExpressionStatement","src":"996:15:48"}]},"documentation":{"id":8078,"nodeType":"StructuredDocumentation","src":"900:67:48","text":" @dev Initializes the contract in unpaused state."},"id":8086,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8079,"nodeType":"ParameterList","parameters":[],"src":"983:2:48"},"returnParameters":{"id":8080,"nodeType":"ParameterList","parameters":[],"src":"986:0:48"},"scope":8167,"src":"972:46:48","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8093,"nodeType":"Block","src":"1229:47:48","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":8089,"name":"_requireNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"1239:17:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":8090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1239:19:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8091,"nodeType":"ExpressionStatement","src":"1239:19:48"},{"id":8092,"nodeType":"PlaceholderStatement","src":"1268:1:48"}]},"documentation":{"id":8087,"nodeType":"StructuredDocumentation","src":"1024:175:48","text":" @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused."},"id":8094,"name":"whenNotPaused","nameLocation":"1213:13:48","nodeType":"ModifierDefinition","parameters":{"id":8088,"nodeType":"ParameterList","parameters":[],"src":"1226:2:48"},"src":"1204:72:48","virtual":false,"visibility":"internal"},{"body":{"id":8101,"nodeType":"Block","src":"1476:44:48","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":8097,"name":"_requirePaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8134,"src":"1486:14:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":8098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1486:16:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8099,"nodeType":"ExpressionStatement","src":"1486:16:48"},{"id":8100,"nodeType":"PlaceholderStatement","src":"1512:1:48"}]},"documentation":{"id":8095,"nodeType":"StructuredDocumentation","src":"1282:167:48","text":" @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused."},"id":8102,"name":"whenPaused","nameLocation":"1463:10:48","nodeType":"ModifierDefinition","parameters":{"id":8096,"nodeType":"ParameterList","parameters":[],"src":"1473:2:48"},"src":"1454:66:48","virtual":false,"visibility":"internal"},{"body":{"id":8110,"nodeType":"Block","src":"1668:31:48","statements":[{"expression":{"id":8108,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"1685:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":8107,"id":8109,"nodeType":"Return","src":"1678:14:48"}]},"documentation":{"id":8103,"nodeType":"StructuredDocumentation","src":"1526:84:48","text":" @dev Returns true if the contract is paused, and false otherwise."},"functionSelector":"5c975abb","id":8111,"implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"1624:6:48","nodeType":"FunctionDefinition","parameters":{"id":8104,"nodeType":"ParameterList","parameters":[],"src":"1630:2:48"},"returnParameters":{"id":8107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8111,"src":"1662:4:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8105,"name":"bool","nodeType":"ElementaryTypeName","src":"1662:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1661:6:48"},"scope":8167,"src":"1615:84:48","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":8122,"nodeType":"Block","src":"1818:55:48","statements":[{"expression":{"arguments":[{"id":8118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1836:9:48","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":8116,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8111,"src":"1837:6:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":8117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1837:8:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a20706175736564","id":8119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1847:18:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""},"value":"Pausable: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a","typeString":"literal_string \"Pausable: paused\""}],"id":8115,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1828:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1828:38:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8121,"nodeType":"ExpressionStatement","src":"1828:38:48"}]},"documentation":{"id":8112,"nodeType":"StructuredDocumentation","src":"1705:57:48","text":" @dev Throws if the contract is paused."},"id":8123,"implemented":true,"kind":"function","modifiers":[],"name":"_requireNotPaused","nameLocation":"1776:17:48","nodeType":"FunctionDefinition","parameters":{"id":8113,"nodeType":"ParameterList","parameters":[],"src":"1793:2:48"},"returnParameters":{"id":8114,"nodeType":"ParameterList","parameters":[],"src":"1818:0:48"},"scope":8167,"src":"1767:106:48","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8133,"nodeType":"Block","src":"1993:58:48","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8128,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8111,"src":"2011:6:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":8129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2011:8:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5061757361626c653a206e6f7420706175736564","id":8130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2021:22:48","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""},"value":"Pausable: not paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a","typeString":"literal_string \"Pausable: not paused\""}],"id":8127,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2003:7:48","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2003:41:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8132,"nodeType":"ExpressionStatement","src":"2003:41:48"}]},"documentation":{"id":8124,"nodeType":"StructuredDocumentation","src":"1879:61:48","text":" @dev Throws if the contract is not paused."},"id":8134,"implemented":true,"kind":"function","modifiers":[],"name":"_requirePaused","nameLocation":"1954:14:48","nodeType":"FunctionDefinition","parameters":{"id":8125,"nodeType":"ParameterList","parameters":[],"src":"1968:2:48"},"returnParameters":{"id":8126,"nodeType":"ParameterList","parameters":[],"src":"1993:0:48"},"scope":8167,"src":"1945:106:48","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":8149,"nodeType":"Block","src":"2235:66:48","statements":[{"expression":{"id":8142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8140,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"2245:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2255:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2245:14:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8143,"nodeType":"ExpressionStatement","src":"2245:14:48"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8145,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"2281:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2281:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8144,"name":"Paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8070,"src":"2274:6:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2274:20:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8148,"nodeType":"EmitStatement","src":"2269:25:48"}]},"documentation":{"id":8135,"nodeType":"StructuredDocumentation","src":"2057:124:48","text":" @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused."},"id":8150,"implemented":true,"kind":"function","modifiers":[{"id":8138,"modifierName":{"id":8137,"name":"whenNotPaused","nodeType":"IdentifierPath","referencedDeclaration":8094,"src":"2221:13:48"},"nodeType":"ModifierInvocation","src":"2221:13:48"}],"name":"_pause","nameLocation":"2195:6:48","nodeType":"FunctionDefinition","parameters":{"id":8136,"nodeType":"ParameterList","parameters":[],"src":"2201:2:48"},"returnParameters":{"id":8139,"nodeType":"ParameterList","parameters":[],"src":"2235:0:48"},"scope":8167,"src":"2186:115:48","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8165,"nodeType":"Block","src":"2481:69:48","statements":[{"expression":{"id":8158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8156,"name":"_paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"2491:7:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":8157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2501:5:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2491:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8159,"nodeType":"ExpressionStatement","src":"2491:15:48"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":8161,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"2530:10:48","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2530:12:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8160,"name":"Unpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8075,"src":"2521:8:48","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2521:22:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8164,"nodeType":"EmitStatement","src":"2516:27:48"}]},"documentation":{"id":8151,"nodeType":"StructuredDocumentation","src":"2307:121:48","text":" @dev Returns to normal state.\n Requirements:\n - The contract must be paused."},"id":8166,"implemented":true,"kind":"function","modifiers":[{"id":8154,"modifierName":{"id":8153,"name":"whenPaused","nodeType":"IdentifierPath","referencedDeclaration":8102,"src":"2470:10:48"},"nodeType":"ModifierInvocation","src":"2470:10:48"}],"name":"_unpause","nameLocation":"2442:8:48","nodeType":"FunctionDefinition","parameters":{"id":8152,"nodeType":"ParameterList","parameters":[],"src":"2450:2:48"},"returnParameters":{"id":8155,"nodeType":"ParameterList","parameters":[],"src":"2481:0:48"},"scope":8167,"src":"2433:117:48","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8168,"src":"602:1950:48"}],"src":"105:2448:48"},"id":48},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[10518],"ERC20":[8753],"IERC20":[8831],"IERC20Metadata":[8856]},"id":8754,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8169,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:49"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":8170,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8754,"sourceUnit":8832,"src":"130:22:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":8171,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8754,"sourceUnit":8857,"src":"153:41:49","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":8172,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8754,"sourceUnit":10519,"src":"195:33:49","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8174,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"1421:7:49"},"id":8175,"nodeType":"InheritanceSpecifier","src":"1421:7:49"},{"baseName":{"id":8176,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"1430:6:49"},"id":8177,"nodeType":"InheritanceSpecifier","src":"1430:6:49"},{"baseName":{"id":8178,"name":"IERC20Metadata","nodeType":"IdentifierPath","referencedDeclaration":8856,"src":"1438:14:49"},"id":8179,"nodeType":"InheritanceSpecifier","src":"1438:14:49"}],"contractDependencies":[8831,8856,10518],"contractKind":"contract","documentation":{"id":8173,"nodeType":"StructuredDocumentation","src":"230:1172:49","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"id":8753,"linearizedBaseContracts":[8753,8856,8831,10518],"name":"ERC20","nameLocation":"1412:5:49","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8183,"mutability":"mutable","name":"_balances","nameLocation":"1495:9:49","nodeType":"VariableDeclaration","scope":8753,"src":"1459:45:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":8182,"keyType":{"id":8180,"name":"address","nodeType":"ElementaryTypeName","src":"1467:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1459:27:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":8181,"name":"uint256","nodeType":"ElementaryTypeName","src":"1478:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":8189,"mutability":"mutable","name":"_allowances","nameLocation":"1567:11:49","nodeType":"VariableDeclaration","scope":8753,"src":"1511:67:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":8188,"keyType":{"id":8184,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1511:47:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":8187,"keyType":{"id":8185,"name":"address","nodeType":"ElementaryTypeName","src":"1538:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1530:27:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":8186,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":8191,"mutability":"mutable","name":"_totalSupply","nameLocation":"1601:12:49","nodeType":"VariableDeclaration","scope":8753,"src":"1585:28:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8190,"name":"uint256","nodeType":"ElementaryTypeName","src":"1585:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":8193,"mutability":"mutable","name":"_name","nameLocation":"1635:5:49","nodeType":"VariableDeclaration","scope":8753,"src":"1620:20:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":8192,"name":"string","nodeType":"ElementaryTypeName","src":"1620:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":8195,"mutability":"mutable","name":"_symbol","nameLocation":"1661:7:49","nodeType":"VariableDeclaration","scope":8753,"src":"1646:22:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":8194,"name":"string","nodeType":"ElementaryTypeName","src":"1646:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":8211,"nodeType":"Block","src":"2034:57:49","statements":[{"expression":{"id":8205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8203,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8193,"src":"2044:5:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8204,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8198,"src":"2052:5:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2044:13:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8206,"nodeType":"ExpressionStatement","src":"2044:13:49"},{"expression":{"id":8209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8207,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"2067:7:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8208,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8200,"src":"2077:7:49","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2067:17:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8210,"nodeType":"ExpressionStatement","src":"2067:17:49"}]},"documentation":{"id":8196,"nodeType":"StructuredDocumentation","src":"1675:298:49","text":" @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction."},"id":8212,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":8201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8198,"mutability":"mutable","name":"name_","nameLocation":"2004:5:49","nodeType":"VariableDeclaration","scope":8212,"src":"1990:19:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8197,"name":"string","nodeType":"ElementaryTypeName","src":"1990:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8200,"mutability":"mutable","name":"symbol_","nameLocation":"2025:7:49","nodeType":"VariableDeclaration","scope":8212,"src":"2011:21:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8199,"name":"string","nodeType":"ElementaryTypeName","src":"2011:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1989:44:49"},"returnParameters":{"id":8202,"nodeType":"ParameterList","parameters":[],"src":"2034:0:49"},"scope":8753,"src":"1978:113:49","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8843],"body":{"id":8221,"nodeType":"Block","src":"2225:29:49","statements":[{"expression":{"id":8219,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8193,"src":"2242:5:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":8218,"id":8220,"nodeType":"Return","src":"2235:12:49"}]},"documentation":{"id":8213,"nodeType":"StructuredDocumentation","src":"2097:54:49","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":8222,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2165:4:49","nodeType":"FunctionDefinition","overrides":{"id":8215,"nodeType":"OverrideSpecifier","overrides":[],"src":"2192:8:49"},"parameters":{"id":8214,"nodeType":"ParameterList","parameters":[],"src":"2169:2:49"},"returnParameters":{"id":8218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8222,"src":"2210:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8216,"name":"string","nodeType":"ElementaryTypeName","src":"2210:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2209:15:49"},"scope":8753,"src":"2156:98:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8849],"body":{"id":8231,"nodeType":"Block","src":"2438:31:49","statements":[{"expression":{"id":8229,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8195,"src":"2455:7:49","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":8228,"id":8230,"nodeType":"Return","src":"2448:14:49"}]},"documentation":{"id":8223,"nodeType":"StructuredDocumentation","src":"2260:102:49","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":8232,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2376:6:49","nodeType":"FunctionDefinition","overrides":{"id":8225,"nodeType":"OverrideSpecifier","overrides":[],"src":"2405:8:49"},"parameters":{"id":8224,"nodeType":"ParameterList","parameters":[],"src":"2382:2:49"},"returnParameters":{"id":8228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8227,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8232,"src":"2423:13:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8226,"name":"string","nodeType":"ElementaryTypeName","src":"2423:6:49","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2422:15:49"},"scope":8753,"src":"2367:102:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8855],"body":{"id":8241,"nodeType":"Block","src":"3158:26:49","statements":[{"expression":{"hexValue":"3138","id":8239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3175:2:49","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":8238,"id":8240,"nodeType":"Return","src":"3168:9:49"}]},"documentation":{"id":8233,"nodeType":"StructuredDocumentation","src":"2475:613:49","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overridden;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":8242,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3102:8:49","nodeType":"FunctionDefinition","overrides":{"id":8235,"nodeType":"OverrideSpecifier","overrides":[],"src":"3133:8:49"},"parameters":{"id":8234,"nodeType":"ParameterList","parameters":[],"src":"3110:2:49"},"returnParameters":{"id":8238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8242,"src":"3151:5:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8236,"name":"uint8","nodeType":"ElementaryTypeName","src":"3151:5:49","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3150:7:49"},"scope":8753,"src":"3093:91:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8780],"body":{"id":8251,"nodeType":"Block","src":"3314:36:49","statements":[{"expression":{"id":8249,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8191,"src":"3331:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8248,"id":8250,"nodeType":"Return","src":"3324:19:49"}]},"documentation":{"id":8243,"nodeType":"StructuredDocumentation","src":"3190:49:49","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":8252,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3253:11:49","nodeType":"FunctionDefinition","overrides":{"id":8245,"nodeType":"OverrideSpecifier","overrides":[],"src":"3287:8:49"},"parameters":{"id":8244,"nodeType":"ParameterList","parameters":[],"src":"3264:2:49"},"returnParameters":{"id":8248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8252,"src":"3305:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8246,"name":"uint256","nodeType":"ElementaryTypeName","src":"3305:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3304:9:49"},"scope":8753,"src":"3244:106:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8788],"body":{"id":8265,"nodeType":"Block","src":"3491:42:49","statements":[{"expression":{"baseExpression":{"id":8261,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"3508:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8263,"indexExpression":{"id":8262,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8255,"src":"3518:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3508:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8260,"id":8264,"nodeType":"Return","src":"3501:25:49"}]},"documentation":{"id":8253,"nodeType":"StructuredDocumentation","src":"3356:47:49","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":8266,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3417:9:49","nodeType":"FunctionDefinition","overrides":{"id":8257,"nodeType":"OverrideSpecifier","overrides":[],"src":"3464:8:49"},"parameters":{"id":8256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8255,"mutability":"mutable","name":"account","nameLocation":"3435:7:49","nodeType":"VariableDeclaration","scope":8266,"src":"3427:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8254,"name":"address","nodeType":"ElementaryTypeName","src":"3427:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3426:17:49"},"returnParameters":{"id":8260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8266,"src":"3482:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8258,"name":"uint256","nodeType":"ElementaryTypeName","src":"3482:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3481:9:49"},"scope":8753,"src":"3408:125:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8798],"body":{"id":8290,"nodeType":"Block","src":"3814:104:49","statements":[{"assignments":[8278],"declarations":[{"constant":false,"id":8278,"mutability":"mutable","name":"owner","nameLocation":"3832:5:49","nodeType":"VariableDeclaration","scope":8290,"src":"3824:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8277,"name":"address","nodeType":"ElementaryTypeName","src":"3824:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8281,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8279,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3840:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3840:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3824:28:49"},{"expression":{"arguments":[{"id":8283,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8278,"src":"3872:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8284,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8269,"src":"3879:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8285,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8271,"src":"3883:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8282,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"3862:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3862:28:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8287,"nodeType":"ExpressionStatement","src":"3862:28:49"},{"expression":{"hexValue":"74727565","id":8288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3907:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8276,"id":8289,"nodeType":"Return","src":"3900:11:49"}]},"documentation":{"id":8267,"nodeType":"StructuredDocumentation","src":"3539:185:49","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","id":8291,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3738:8:49","nodeType":"FunctionDefinition","overrides":{"id":8273,"nodeType":"OverrideSpecifier","overrides":[],"src":"3790:8:49"},"parameters":{"id":8272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8269,"mutability":"mutable","name":"to","nameLocation":"3755:2:49","nodeType":"VariableDeclaration","scope":8291,"src":"3747:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8268,"name":"address","nodeType":"ElementaryTypeName","src":"3747:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8271,"mutability":"mutable","name":"amount","nameLocation":"3767:6:49","nodeType":"VariableDeclaration","scope":8291,"src":"3759:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8270,"name":"uint256","nodeType":"ElementaryTypeName","src":"3759:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3746:28:49"},"returnParameters":{"id":8276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8291,"src":"3808:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8274,"name":"bool","nodeType":"ElementaryTypeName","src":"3808:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3807:6:49"},"scope":8753,"src":"3729:189:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[8808],"body":{"id":8308,"nodeType":"Block","src":"4074:51:49","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":8302,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"4091:11:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":8304,"indexExpression":{"id":8303,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8294,"src":"4103:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:18:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8306,"indexExpression":{"id":8305,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8296,"src":"4110:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8301,"id":8307,"nodeType":"Return","src":"4084:34:49"}]},"documentation":{"id":8292,"nodeType":"StructuredDocumentation","src":"3924:47:49","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":8309,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3985:9:49","nodeType":"FunctionDefinition","overrides":{"id":8298,"nodeType":"OverrideSpecifier","overrides":[],"src":"4047:8:49"},"parameters":{"id":8297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8294,"mutability":"mutable","name":"owner","nameLocation":"4003:5:49","nodeType":"VariableDeclaration","scope":8309,"src":"3995:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8293,"name":"address","nodeType":"ElementaryTypeName","src":"3995:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8296,"mutability":"mutable","name":"spender","nameLocation":"4018:7:49","nodeType":"VariableDeclaration","scope":8309,"src":"4010:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8295,"name":"address","nodeType":"ElementaryTypeName","src":"4010:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3994:32:49"},"returnParameters":{"id":8301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8309,"src":"4065:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8299,"name":"uint256","nodeType":"ElementaryTypeName","src":"4065:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4064:9:49"},"scope":8753,"src":"3976:149:49","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[8818],"body":{"id":8333,"nodeType":"Block","src":"4522:108:49","statements":[{"assignments":[8321],"declarations":[{"constant":false,"id":8321,"mutability":"mutable","name":"owner","nameLocation":"4540:5:49","nodeType":"VariableDeclaration","scope":8333,"src":"4532:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8320,"name":"address","nodeType":"ElementaryTypeName","src":"4532:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8324,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8322,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4548:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4548:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4532:28:49"},{"expression":{"arguments":[{"id":8326,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8321,"src":"4579:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8327,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8312,"src":"4586:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8328,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8314,"src":"4595:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8325,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8687,"src":"4570:8:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4570:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8330,"nodeType":"ExpressionStatement","src":"4570:32:49"},{"expression":{"hexValue":"74727565","id":8331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4619:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8319,"id":8332,"nodeType":"Return","src":"4612:11:49"}]},"documentation":{"id":8310,"nodeType":"StructuredDocumentation","src":"4131:297:49","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":8334,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4442:7:49","nodeType":"FunctionDefinition","overrides":{"id":8316,"nodeType":"OverrideSpecifier","overrides":[],"src":"4498:8:49"},"parameters":{"id":8315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8312,"mutability":"mutable","name":"spender","nameLocation":"4458:7:49","nodeType":"VariableDeclaration","scope":8334,"src":"4450:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8311,"name":"address","nodeType":"ElementaryTypeName","src":"4450:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8314,"mutability":"mutable","name":"amount","nameLocation":"4475:6:49","nodeType":"VariableDeclaration","scope":8334,"src":"4467:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8313,"name":"uint256","nodeType":"ElementaryTypeName","src":"4467:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4449:33:49"},"returnParameters":{"id":8319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8334,"src":"4516:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8317,"name":"bool","nodeType":"ElementaryTypeName","src":"4516:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4515:6:49"},"scope":8753,"src":"4433:197:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[8830],"body":{"id":8366,"nodeType":"Block","src":"5325:153:49","statements":[{"assignments":[8348],"declarations":[{"constant":false,"id":8348,"mutability":"mutable","name":"spender","nameLocation":"5343:7:49","nodeType":"VariableDeclaration","scope":8366,"src":"5335:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8347,"name":"address","nodeType":"ElementaryTypeName","src":"5335:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8351,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8349,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5353:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5353:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5335:30:49"},{"expression":{"arguments":[{"id":8353,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8337,"src":"5391:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8354,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8348,"src":"5397:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8355,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"5406:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8352,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8730,"src":"5375:15:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5375:38:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8357,"nodeType":"ExpressionStatement","src":"5375:38:49"},{"expression":{"arguments":[{"id":8359,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8337,"src":"5433:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8360,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8339,"src":"5439:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8361,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8341,"src":"5443:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8358,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"5423:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5423:27:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8363,"nodeType":"ExpressionStatement","src":"5423:27:49"},{"expression":{"hexValue":"74727565","id":8364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5467:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8346,"id":8365,"nodeType":"Return","src":"5460:11:49"}]},"documentation":{"id":8335,"nodeType":"StructuredDocumentation","src":"4636:551:49","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","id":8367,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5201:12:49","nodeType":"FunctionDefinition","overrides":{"id":8343,"nodeType":"OverrideSpecifier","overrides":[],"src":"5301:8:49"},"parameters":{"id":8342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8337,"mutability":"mutable","name":"from","nameLocation":"5231:4:49","nodeType":"VariableDeclaration","scope":8367,"src":"5223:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8336,"name":"address","nodeType":"ElementaryTypeName","src":"5223:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8339,"mutability":"mutable","name":"to","nameLocation":"5253:2:49","nodeType":"VariableDeclaration","scope":8367,"src":"5245:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8338,"name":"address","nodeType":"ElementaryTypeName","src":"5245:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8341,"mutability":"mutable","name":"amount","nameLocation":"5273:6:49","nodeType":"VariableDeclaration","scope":8367,"src":"5265:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8340,"name":"uint256","nodeType":"ElementaryTypeName","src":"5265:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5213:72:49"},"returnParameters":{"id":8346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8367,"src":"5319:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8344,"name":"bool","nodeType":"ElementaryTypeName","src":"5319:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5318:6:49"},"scope":8753,"src":"5192:286:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8395,"nodeType":"Block","src":"5967:140:49","statements":[{"assignments":[8378],"declarations":[{"constant":false,"id":8378,"mutability":"mutable","name":"owner","nameLocation":"5985:5:49","nodeType":"VariableDeclaration","scope":8395,"src":"5977:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8377,"name":"address","nodeType":"ElementaryTypeName","src":"5977:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8381,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8379,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5993:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5993:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5977:28:49"},{"expression":{"arguments":[{"id":8383,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"6024:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8384,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8370,"src":"6031:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8386,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"6050:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8387,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8370,"src":"6057:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8385,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"6040:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":8388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6040:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8389,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8372,"src":"6068:10:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6040:38:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8382,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8687,"src":"6015:8:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6015:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8392,"nodeType":"ExpressionStatement","src":"6015:64:49"},{"expression":{"hexValue":"74727565","id":8393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6096:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8376,"id":8394,"nodeType":"Return","src":"6089:11:49"}]},"documentation":{"id":8368,"nodeType":"StructuredDocumentation","src":"5484:384:49","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","id":8396,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5882:17:49","nodeType":"FunctionDefinition","parameters":{"id":8373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8370,"mutability":"mutable","name":"spender","nameLocation":"5908:7:49","nodeType":"VariableDeclaration","scope":8396,"src":"5900:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8369,"name":"address","nodeType":"ElementaryTypeName","src":"5900:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8372,"mutability":"mutable","name":"addedValue","nameLocation":"5925:10:49","nodeType":"VariableDeclaration","scope":8396,"src":"5917:18:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8371,"name":"uint256","nodeType":"ElementaryTypeName","src":"5917:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5899:37:49"},"returnParameters":{"id":8376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8396,"src":"5961:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8374,"name":"bool","nodeType":"ElementaryTypeName","src":"5961:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5960:6:49"},"scope":8753,"src":"5873:234:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8436,"nodeType":"Block","src":"6693:328:49","statements":[{"assignments":[8407],"declarations":[{"constant":false,"id":8407,"mutability":"mutable","name":"owner","nameLocation":"6711:5:49","nodeType":"VariableDeclaration","scope":8436,"src":"6703:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8406,"name":"address","nodeType":"ElementaryTypeName","src":"6703:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8410,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":8408,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"6719:10:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":8409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6719:12:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6703:28:49"},{"assignments":[8412],"declarations":[{"constant":false,"id":8412,"mutability":"mutable","name":"currentAllowance","nameLocation":"6749:16:49","nodeType":"VariableDeclaration","scope":8436,"src":"6741:24:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8411,"name":"uint256","nodeType":"ElementaryTypeName","src":"6741:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8417,"initialValue":{"arguments":[{"id":8414,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8407,"src":"6778:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8415,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8399,"src":"6785:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8413,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"6768:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":8416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6768:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6741:52:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8419,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8412,"src":"6811:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8420,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8401,"src":"6831:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6811:35:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":8422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6848:39:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":8418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6803:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6803:85:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8424,"nodeType":"ExpressionStatement","src":"6803:85:49"},{"id":8433,"nodeType":"UncheckedBlock","src":"6898:95:49","statements":[{"expression":{"arguments":[{"id":8426,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8407,"src":"6931:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8427,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8399,"src":"6938:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8428,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8412,"src":"6947:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8429,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8401,"src":"6966:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6947:34:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8425,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8687,"src":"6922:8:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6922:60:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8432,"nodeType":"ExpressionStatement","src":"6922:60:49"}]},{"expression":{"hexValue":"74727565","id":8434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7010:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8405,"id":8435,"nodeType":"Return","src":"7003:11:49"}]},"documentation":{"id":8397,"nodeType":"StructuredDocumentation","src":"6113:476:49","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","id":8437,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6603:17:49","nodeType":"FunctionDefinition","parameters":{"id":8402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8399,"mutability":"mutable","name":"spender","nameLocation":"6629:7:49","nodeType":"VariableDeclaration","scope":8437,"src":"6621:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8398,"name":"address","nodeType":"ElementaryTypeName","src":"6621:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8401,"mutability":"mutable","name":"subtractedValue","nameLocation":"6646:15:49","nodeType":"VariableDeclaration","scope":8437,"src":"6638:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8400,"name":"uint256","nodeType":"ElementaryTypeName","src":"6638:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6620:42:49"},"returnParameters":{"id":8405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8437,"src":"6687:4:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8403,"name":"bool","nodeType":"ElementaryTypeName","src":"6687:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6686:6:49"},"scope":8753,"src":"6594:427:49","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":8513,"nodeType":"Block","src":"7583:543:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8448,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"7601:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7617:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7609:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8449,"name":"address","nodeType":"ElementaryTypeName","src":"7609:7:49","typeDescriptions":{}}},"id":8452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7609:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7601:18:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":8454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7621:39:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":8447,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7593:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7593:68:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8456,"nodeType":"ExpressionStatement","src":"7593:68:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8458,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"7679:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7693:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7685:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8459,"name":"address","nodeType":"ElementaryTypeName","src":"7685:7:49","typeDescriptions":{}}},"id":8462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7685:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7679:16:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":8464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7697:37:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":8457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7671:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7671:64:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8466,"nodeType":"ExpressionStatement","src":"7671:64:49"},{"expression":{"arguments":[{"id":8468,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"7767:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8469,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"7773:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8470,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"7777:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8467,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8741,"src":"7746:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7746:38:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8472,"nodeType":"ExpressionStatement","src":"7746:38:49"},{"assignments":[8474],"declarations":[{"constant":false,"id":8474,"mutability":"mutable","name":"fromBalance","nameLocation":"7803:11:49","nodeType":"VariableDeclaration","scope":8513,"src":"7795:19:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8473,"name":"uint256","nodeType":"ElementaryTypeName","src":"7795:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8478,"initialValue":{"baseExpression":{"id":8475,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"7817:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8477,"indexExpression":{"id":8476,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"7827:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7817:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7795:37:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8480,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"7850:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8481,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"7865:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:21:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":8483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7873:40:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":8479,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7842:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7842:72:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8485,"nodeType":"ExpressionStatement","src":"7842:72:49"},{"id":8494,"nodeType":"UncheckedBlock","src":"7924:73:49","statements":[{"expression":{"id":8492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8486,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"7948:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8488,"indexExpression":{"id":8487,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"7958:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7948:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8489,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"7966:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8490,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"7980:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7966:20:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:38:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8493,"nodeType":"ExpressionStatement","src":"7948:38:49"}]},{"expression":{"id":8499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8495,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"8006:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8497,"indexExpression":{"id":8496,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"8016:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8006:13:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":8498,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"8023:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8006:23:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8500,"nodeType":"ExpressionStatement","src":"8006:23:49"},{"eventCall":{"arguments":[{"id":8502,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"8054:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8503,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"8060:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8504,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"8064:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8501,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8765,"src":"8045:8:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8045:26:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8506,"nodeType":"EmitStatement","src":"8040:31:49"},{"expression":{"arguments":[{"id":8508,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"8102:4:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8509,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8442,"src":"8108:2:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8510,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8444,"src":"8112:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8507,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8752,"src":"8082:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8082:37:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8512,"nodeType":"ExpressionStatement","src":"8082:37:49"}]},"documentation":{"id":8438,"nodeType":"StructuredDocumentation","src":"7027:443:49","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"id":8514,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7484:9:49","nodeType":"FunctionDefinition","parameters":{"id":8445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8440,"mutability":"mutable","name":"from","nameLocation":"7511:4:49","nodeType":"VariableDeclaration","scope":8514,"src":"7503:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8439,"name":"address","nodeType":"ElementaryTypeName","src":"7503:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8442,"mutability":"mutable","name":"to","nameLocation":"7533:2:49","nodeType":"VariableDeclaration","scope":8514,"src":"7525:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8441,"name":"address","nodeType":"ElementaryTypeName","src":"7525:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8444,"mutability":"mutable","name":"amount","nameLocation":"7553:6:49","nodeType":"VariableDeclaration","scope":8514,"src":"7545:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8443,"name":"uint256","nodeType":"ElementaryTypeName","src":"7545:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7493:72:49"},"returnParameters":{"id":8446,"nodeType":"ParameterList","parameters":[],"src":"7583:0:49"},"scope":8753,"src":"7475:651:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8569,"nodeType":"Block","src":"8467:324:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8523,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"8485:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8504:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8496:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8524,"name":"address","nodeType":"ElementaryTypeName","src":"8496:7:49","typeDescriptions":{}}},"id":8527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8496:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8485:21:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":8529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8508:33:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":8522,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8477:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8477:65:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8531,"nodeType":"ExpressionStatement","src":"8477:65:49"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8582:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8574:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8533,"name":"address","nodeType":"ElementaryTypeName","src":"8574:7:49","typeDescriptions":{}}},"id":8536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8574:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8537,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"8586:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8538,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8519,"src":"8595:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8532,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8741,"src":"8553:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8553:49:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8540,"nodeType":"ExpressionStatement","src":"8553:49:49"},{"expression":{"id":8543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8541,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8191,"src":"8613:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":8542,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8519,"src":"8629:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8613:22:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8544,"nodeType":"ExpressionStatement","src":"8613:22:49"},{"expression":{"id":8549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8545,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"8645:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8547,"indexExpression":{"id":8546,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"8655:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8645:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":8548,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8519,"src":"8667:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8645:28:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8550,"nodeType":"ExpressionStatement","src":"8645:28:49"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":8554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8705:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8697:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8552,"name":"address","nodeType":"ElementaryTypeName","src":"8697:7:49","typeDescriptions":{}}},"id":8555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8697:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8556,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"8709:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8557,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8519,"src":"8718:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8551,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8765,"src":"8688:8:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8688:37:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8559,"nodeType":"EmitStatement","src":"8683:42:49"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":8563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8764:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8756:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8561,"name":"address","nodeType":"ElementaryTypeName","src":"8756:7:49","typeDescriptions":{}}},"id":8564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8756:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8565,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8517,"src":"8768:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8566,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8519,"src":"8777:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8560,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8752,"src":"8736:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8736:48:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8568,"nodeType":"ExpressionStatement","src":"8736:48:49"}]},"documentation":{"id":8515,"nodeType":"StructuredDocumentation","src":"8132:265:49","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"id":8570,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8411:5:49","nodeType":"FunctionDefinition","parameters":{"id":8520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8517,"mutability":"mutable","name":"account","nameLocation":"8425:7:49","nodeType":"VariableDeclaration","scope":8570,"src":"8417:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8516,"name":"address","nodeType":"ElementaryTypeName","src":"8417:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8519,"mutability":"mutable","name":"amount","nameLocation":"8442:6:49","nodeType":"VariableDeclaration","scope":8570,"src":"8434:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8518,"name":"uint256","nodeType":"ElementaryTypeName","src":"8434:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8416:33:49"},"returnParameters":{"id":8521,"nodeType":"ParameterList","parameters":[],"src":"8467:0:49"},"scope":8753,"src":"8402:389:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8641,"nodeType":"Block","src":"9176:511:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8579,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9194:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9213:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9205:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8580,"name":"address","nodeType":"ElementaryTypeName","src":"9205:7:49","typeDescriptions":{}}},"id":8583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9205:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9194:21:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":8585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9217:35:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":8578,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9186:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9186:67:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8587,"nodeType":"ExpressionStatement","src":"9186:67:49"},{"expression":{"arguments":[{"id":8589,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9285:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9302:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9294:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8590,"name":"address","nodeType":"ElementaryTypeName","src":"9294:7:49","typeDescriptions":{}}},"id":8593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9294:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8594,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9306:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8588,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8741,"src":"9264:20:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9264:49:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8596,"nodeType":"ExpressionStatement","src":"9264:49:49"},{"assignments":[8598],"declarations":[{"constant":false,"id":8598,"mutability":"mutable","name":"accountBalance","nameLocation":"9332:14:49","nodeType":"VariableDeclaration","scope":8641,"src":"9324:22:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8597,"name":"uint256","nodeType":"ElementaryTypeName","src":"9324:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8602,"initialValue":{"baseExpression":{"id":8599,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"9349:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8601,"indexExpression":{"id":8600,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9359:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9349:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9324:43:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8604,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8598,"src":"9385:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8605,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9403:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9385:24:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":8607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9411:36:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":8603,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9377:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9377:71:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8609,"nodeType":"ExpressionStatement","src":"9377:71:49"},{"id":8618,"nodeType":"UncheckedBlock","src":"9458:79:49","statements":[{"expression":{"id":8616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":8610,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8183,"src":"9482:9:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8612,"indexExpression":{"id":8611,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9492:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9482:18:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8613,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8598,"src":"9503:14:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8614,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9520:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9503:23:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9482:44:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8617,"nodeType":"ExpressionStatement","src":"9482:44:49"}]},{"expression":{"id":8621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8619,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8191,"src":"9546:12:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":8620,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9562:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9546:22:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8622,"nodeType":"ExpressionStatement","src":"9546:22:49"},{"eventCall":{"arguments":[{"id":8624,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9593:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9610:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9602:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8625,"name":"address","nodeType":"ElementaryTypeName","src":"9602:7:49","typeDescriptions":{}}},"id":8628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9602:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8629,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9614:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8623,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8765,"src":"9584:8:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9584:37:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8631,"nodeType":"EmitStatement","src":"9579:42:49"},{"expression":{"arguments":[{"id":8633,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8573,"src":"9652:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":8636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9669:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9661:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8634,"name":"address","nodeType":"ElementaryTypeName","src":"9661:7:49","typeDescriptions":{}}},"id":8637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9661:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8638,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8575,"src":"9673:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8632,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8752,"src":"9632:19:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9632:48:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8640,"nodeType":"ExpressionStatement","src":"9632:48:49"}]},"documentation":{"id":8571,"nodeType":"StructuredDocumentation","src":"8797:309:49","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"id":8642,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9120:5:49","nodeType":"FunctionDefinition","parameters":{"id":8576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8573,"mutability":"mutable","name":"account","nameLocation":"9134:7:49","nodeType":"VariableDeclaration","scope":8642,"src":"9126:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8572,"name":"address","nodeType":"ElementaryTypeName","src":"9126:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8575,"mutability":"mutable","name":"amount","nameLocation":"9151:6:49","nodeType":"VariableDeclaration","scope":8642,"src":"9143:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8574,"name":"uint256","nodeType":"ElementaryTypeName","src":"9143:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9125:33:49"},"returnParameters":{"id":8577,"nodeType":"ParameterList","parameters":[],"src":"9176:0:49"},"scope":8753,"src":"9111:576:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8686,"nodeType":"Block","src":"10223:257:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8653,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8645,"src":"10241:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10258:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10250:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8654,"name":"address","nodeType":"ElementaryTypeName","src":"10250:7:49","typeDescriptions":{}}},"id":8657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10250:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10241:19:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":8659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10262:38:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":8652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10233:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10233:68:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8661,"nodeType":"ExpressionStatement","src":"10233:68:49"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8663,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8647,"src":"10319:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":8666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10338:1:49","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10330:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8664,"name":"address","nodeType":"ElementaryTypeName","src":"10330:7:49","typeDescriptions":{}}},"id":8667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10330:10:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10319:21:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":8669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10342:36:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":8662,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10311:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10311:68:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8671,"nodeType":"ExpressionStatement","src":"10311:68:49"},{"expression":{"id":8678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":8672,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8189,"src":"10390:11:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":8675,"indexExpression":{"id":8673,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8645,"src":"10402:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10390:18:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8676,"indexExpression":{"id":8674,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8647,"src":"10409:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10390:27:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8677,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8649,"src":"10420:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10390:36:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8679,"nodeType":"ExpressionStatement","src":"10390:36:49"},{"eventCall":{"arguments":[{"id":8681,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8645,"src":"10450:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8682,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8647,"src":"10457:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8683,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8649,"src":"10466:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8680,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8774,"src":"10441:8:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10441:32:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8685,"nodeType":"EmitStatement","src":"10436:37:49"}]},"documentation":{"id":8643,"nodeType":"StructuredDocumentation","src":"9693:412:49","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"id":8687,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10119:8:49","nodeType":"FunctionDefinition","parameters":{"id":8650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8645,"mutability":"mutable","name":"owner","nameLocation":"10145:5:49","nodeType":"VariableDeclaration","scope":8687,"src":"10137:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8644,"name":"address","nodeType":"ElementaryTypeName","src":"10137:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8647,"mutability":"mutable","name":"spender","nameLocation":"10168:7:49","nodeType":"VariableDeclaration","scope":8687,"src":"10160:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8646,"name":"address","nodeType":"ElementaryTypeName","src":"10160:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8649,"mutability":"mutable","name":"amount","nameLocation":"10193:6:49","nodeType":"VariableDeclaration","scope":8687,"src":"10185:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8648,"name":"uint256","nodeType":"ElementaryTypeName","src":"10185:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10127:78:49"},"returnParameters":{"id":8651,"nodeType":"ParameterList","parameters":[],"src":"10223:0:49"},"scope":8753,"src":"10110:370:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8729,"nodeType":"Block","src":"10881:321:49","statements":[{"assignments":[8698],"declarations":[{"constant":false,"id":8698,"mutability":"mutable","name":"currentAllowance","nameLocation":"10899:16:49","nodeType":"VariableDeclaration","scope":8729,"src":"10891:24:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8697,"name":"uint256","nodeType":"ElementaryTypeName","src":"10891:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8703,"initialValue":{"arguments":[{"id":8700,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8690,"src":"10928:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8701,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8692,"src":"10935:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":8699,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"10918:9:49","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":8702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10918:25:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10891:52:49"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8704,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"10957:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":8707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10982:7:49","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8706,"name":"uint256","nodeType":"ElementaryTypeName","src":"10982:7:49","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":8705,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"10977:4:49","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":8708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10977:13:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":8709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"10977:17:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10957:37:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8728,"nodeType":"IfStatement","src":"10953:243:49","trueBody":{"id":8727,"nodeType":"Block","src":"10996:200:49","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8712,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"11018:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":8713,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"11038:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11018:26:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":8715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11046:31:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":8711,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11010:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11010:68:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8717,"nodeType":"ExpressionStatement","src":"11010:68:49"},{"id":8726,"nodeType":"UncheckedBlock","src":"11092:94:49","statements":[{"expression":{"arguments":[{"id":8719,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8690,"src":"11129:5:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8720,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8692,"src":"11136:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8721,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"11145:16:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8722,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8694,"src":"11164:6:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11145:25:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8718,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8687,"src":"11120:8:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11120:51:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8725,"nodeType":"ExpressionStatement","src":"11120:51:49"}]}]}}]},"documentation":{"id":8688,"nodeType":"StructuredDocumentation","src":"10486:270:49","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"id":8730,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"10770:15:49","nodeType":"FunctionDefinition","parameters":{"id":8695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8690,"mutability":"mutable","name":"owner","nameLocation":"10803:5:49","nodeType":"VariableDeclaration","scope":8730,"src":"10795:13:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8689,"name":"address","nodeType":"ElementaryTypeName","src":"10795:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8692,"mutability":"mutable","name":"spender","nameLocation":"10826:7:49","nodeType":"VariableDeclaration","scope":8730,"src":"10818:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8691,"name":"address","nodeType":"ElementaryTypeName","src":"10818:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8694,"mutability":"mutable","name":"amount","nameLocation":"10851:6:49","nodeType":"VariableDeclaration","scope":8730,"src":"10843:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8693,"name":"uint256","nodeType":"ElementaryTypeName","src":"10843:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10785:78:49"},"returnParameters":{"id":8696,"nodeType":"ParameterList","parameters":[],"src":"10881:0:49"},"scope":8753,"src":"10761:441:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8740,"nodeType":"Block","src":"11905:2:49","statements":[]},"documentation":{"id":8731,"nodeType":"StructuredDocumentation","src":"11208:573:49","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":8741,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"11795:20:49","nodeType":"FunctionDefinition","parameters":{"id":8738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8733,"mutability":"mutable","name":"from","nameLocation":"11833:4:49","nodeType":"VariableDeclaration","scope":8741,"src":"11825:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8732,"name":"address","nodeType":"ElementaryTypeName","src":"11825:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8735,"mutability":"mutable","name":"to","nameLocation":"11855:2:49","nodeType":"VariableDeclaration","scope":8741,"src":"11847:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8734,"name":"address","nodeType":"ElementaryTypeName","src":"11847:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8737,"mutability":"mutable","name":"amount","nameLocation":"11875:6:49","nodeType":"VariableDeclaration","scope":8741,"src":"11867:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8736,"name":"uint256","nodeType":"ElementaryTypeName","src":"11867:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11815:72:49"},"returnParameters":{"id":8739,"nodeType":"ParameterList","parameters":[],"src":"11905:0:49"},"scope":8753,"src":"11786:121:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":8751,"nodeType":"Block","src":"12613:2:49","statements":[]},"documentation":{"id":8742,"nodeType":"StructuredDocumentation","src":"11913:577:49","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":8752,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12504:19:49","nodeType":"FunctionDefinition","parameters":{"id":8749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8744,"mutability":"mutable","name":"from","nameLocation":"12541:4:49","nodeType":"VariableDeclaration","scope":8752,"src":"12533:12:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8743,"name":"address","nodeType":"ElementaryTypeName","src":"12533:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8746,"mutability":"mutable","name":"to","nameLocation":"12563:2:49","nodeType":"VariableDeclaration","scope":8752,"src":"12555:10:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8745,"name":"address","nodeType":"ElementaryTypeName","src":"12555:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8748,"mutability":"mutable","name":"amount","nameLocation":"12583:6:49","nodeType":"VariableDeclaration","scope":8752,"src":"12575:14:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8747,"name":"uint256","nodeType":"ElementaryTypeName","src":"12575:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12523:72:49"},"returnParameters":{"id":8750,"nodeType":"ParameterList","parameters":[],"src":"12613:0:49"},"scope":8753,"src":"12495:120:49","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":8754,"src":"1403:11214:49"}],"src":"105:12513:49"},"id":49},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[8831]},"id":8832,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8755,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"106:23:50"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":8756,"nodeType":"StructuredDocumentation","src":"131:70:50","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":8831,"linearizedBaseContracts":[8831],"name":"IERC20","nameLocation":"212:6:50","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":8757,"nodeType":"StructuredDocumentation","src":"225:158:50","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"id":8765,"name":"Transfer","nameLocation":"394:8:50","nodeType":"EventDefinition","parameters":{"id":8764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8759,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:50","nodeType":"VariableDeclaration","scope":8765,"src":"403:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8758,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8761,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:50","nodeType":"VariableDeclaration","scope":8765,"src":"425:18:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8760,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8763,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:50","nodeType":"VariableDeclaration","scope":8765,"src":"445:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8762,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:50"},"src":"388:72:50"},{"anonymous":false,"documentation":{"id":8766,"nodeType":"StructuredDocumentation","src":"466:148:50","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"id":8774,"name":"Approval","nameLocation":"625:8:50","nodeType":"EventDefinition","parameters":{"id":8773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8768,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:50","nodeType":"VariableDeclaration","scope":8774,"src":"634:21:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8767,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8770,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:50","nodeType":"VariableDeclaration","scope":8774,"src":"657:23:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8769,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8772,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:50","nodeType":"VariableDeclaration","scope":8774,"src":"682:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8771,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:50"},"src":"619:78:50"},{"documentation":{"id":8775,"nodeType":"StructuredDocumentation","src":"703:66:50","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","id":8780,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:50","nodeType":"FunctionDefinition","parameters":{"id":8776,"nodeType":"ParameterList","parameters":[],"src":"794:2:50"},"returnParameters":{"id":8779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8778,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8780,"src":"820:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8777,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:50"},"scope":8831,"src":"774:55:50","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8781,"nodeType":"StructuredDocumentation","src":"835:72:50","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","id":8788,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:50","nodeType":"FunctionDefinition","parameters":{"id":8784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8783,"mutability":"mutable","name":"account","nameLocation":"939:7:50","nodeType":"VariableDeclaration","scope":8788,"src":"931:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8782,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:50"},"returnParameters":{"id":8787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8788,"src":"971:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8785,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:50"},"scope":8831,"src":"912:68:50","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8789,"nodeType":"StructuredDocumentation","src":"986:202:50","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":8798,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:50","nodeType":"FunctionDefinition","parameters":{"id":8794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8791,"mutability":"mutable","name":"to","nameLocation":"1219:2:50","nodeType":"VariableDeclaration","scope":8798,"src":"1211:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8790,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8793,"mutability":"mutable","name":"amount","nameLocation":"1231:6:50","nodeType":"VariableDeclaration","scope":8798,"src":"1223:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8792,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:50"},"returnParameters":{"id":8797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8798,"src":"1257:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8795,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:50"},"scope":8831,"src":"1193:70:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":8799,"nodeType":"StructuredDocumentation","src":"1269:264:50","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":8808,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:50","nodeType":"FunctionDefinition","parameters":{"id":8804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8801,"mutability":"mutable","name":"owner","nameLocation":"1565:5:50","nodeType":"VariableDeclaration","scope":8808,"src":"1557:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8800,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8803,"mutability":"mutable","name":"spender","nameLocation":"1580:7:50","nodeType":"VariableDeclaration","scope":8808,"src":"1572:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8802,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:50"},"returnParameters":{"id":8807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8806,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8808,"src":"1612:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8805,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:50"},"scope":8831,"src":"1538:83:50","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8809,"nodeType":"StructuredDocumentation","src":"1627:642:50","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":8818,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:50","nodeType":"FunctionDefinition","parameters":{"id":8814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8811,"mutability":"mutable","name":"spender","nameLocation":"2299:7:50","nodeType":"VariableDeclaration","scope":8818,"src":"2291:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8810,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8813,"mutability":"mutable","name":"amount","nameLocation":"2316:6:50","nodeType":"VariableDeclaration","scope":8818,"src":"2308:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8812,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:50"},"returnParameters":{"id":8817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8816,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8818,"src":"2342:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8815,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:50"},"scope":8831,"src":"2274:74:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":8819,"nodeType":"StructuredDocumentation","src":"2354:287:50","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":8830,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:50","nodeType":"FunctionDefinition","parameters":{"id":8826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8821,"mutability":"mutable","name":"from","nameLocation":"2685:4:50","nodeType":"VariableDeclaration","scope":8830,"src":"2677:12:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8820,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8823,"mutability":"mutable","name":"to","nameLocation":"2707:2:50","nodeType":"VariableDeclaration","scope":8830,"src":"2699:10:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8822,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8825,"mutability":"mutable","name":"amount","nameLocation":"2727:6:50","nodeType":"VariableDeclaration","scope":8830,"src":"2719:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8824,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:50"},"returnParameters":{"id":8829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8828,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8830,"src":"2758:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8827,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:50"},"scope":8831,"src":"2646:118:50","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":8832,"src":"202:2564:50"}],"src":"106:2661:50"},"id":50},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[8831],"IERC20Metadata":[8856]},"id":8857,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8833,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"110:23:51"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":8834,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":8857,"sourceUnit":8832,"src":"135:23:51","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":8836,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"305:6:51"},"id":8837,"nodeType":"InheritanceSpecifier","src":"305:6:51"}],"contractDependencies":[8831],"contractKind":"interface","documentation":{"id":8835,"nodeType":"StructuredDocumentation","src":"160:116:51","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"id":8856,"linearizedBaseContracts":[8856,8831],"name":"IERC20Metadata","nameLocation":"287:14:51","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8838,"nodeType":"StructuredDocumentation","src":"318:54:51","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":8843,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:51","nodeType":"FunctionDefinition","parameters":{"id":8839,"nodeType":"ParameterList","parameters":[],"src":"390:2:51"},"returnParameters":{"id":8842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8843,"src":"416:13:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8840,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:51"},"scope":8856,"src":"377:54:51","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8844,"nodeType":"StructuredDocumentation","src":"437:56:51","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":8849,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:51","nodeType":"FunctionDefinition","parameters":{"id":8845,"nodeType":"ParameterList","parameters":[],"src":"513:2:51"},"returnParameters":{"id":8848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8849,"src":"539:13:51","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8846,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:51","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:51"},"scope":8856,"src":"498:56:51","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8850,"nodeType":"StructuredDocumentation","src":"560:65:51","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":8855,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:51","nodeType":"FunctionDefinition","parameters":{"id":8851,"nodeType":"ParameterList","parameters":[],"src":"647:2:51"},"returnParameters":{"id":8854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8855,"src":"673:5:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8852,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:51"},"scope":8856,"src":"630:50:51","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8857,"src":"277:405:51"}],"src":"110:573:51"},"id":51},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","exportedSymbols":{"IERC20Permit":[8892]},"id":8893,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8858,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"114:23:52"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":8859,"nodeType":"StructuredDocumentation","src":"139:480:52","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"id":8892,"linearizedBaseContracts":[8892],"name":"IERC20Permit","nameLocation":"630:12:52","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":8860,"nodeType":"StructuredDocumentation","src":"649:792:52","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","id":8877,"implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1455:6:52","nodeType":"FunctionDefinition","parameters":{"id":8875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8862,"mutability":"mutable","name":"owner","nameLocation":"1479:5:52","nodeType":"VariableDeclaration","scope":8877,"src":"1471:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8861,"name":"address","nodeType":"ElementaryTypeName","src":"1471:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8864,"mutability":"mutable","name":"spender","nameLocation":"1502:7:52","nodeType":"VariableDeclaration","scope":8877,"src":"1494:15:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8863,"name":"address","nodeType":"ElementaryTypeName","src":"1494:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8866,"mutability":"mutable","name":"value","nameLocation":"1527:5:52","nodeType":"VariableDeclaration","scope":8877,"src":"1519:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8865,"name":"uint256","nodeType":"ElementaryTypeName","src":"1519:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8868,"mutability":"mutable","name":"deadline","nameLocation":"1550:8:52","nodeType":"VariableDeclaration","scope":8877,"src":"1542:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8867,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8870,"mutability":"mutable","name":"v","nameLocation":"1574:1:52","nodeType":"VariableDeclaration","scope":8877,"src":"1568:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":8869,"name":"uint8","nodeType":"ElementaryTypeName","src":"1568:5:52","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":8872,"mutability":"mutable","name":"r","nameLocation":"1593:1:52","nodeType":"VariableDeclaration","scope":8877,"src":"1585:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1585:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8874,"mutability":"mutable","name":"s","nameLocation":"1612:1:52","nodeType":"VariableDeclaration","scope":8877,"src":"1604:9:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1604:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1461:158:52"},"returnParameters":{"id":8876,"nodeType":"ParameterList","parameters":[],"src":"1628:0:52"},"scope":8892,"src":"1446:183:52","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":8878,"nodeType":"StructuredDocumentation","src":"1635:294:52","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","id":8885,"implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1943:6:52","nodeType":"FunctionDefinition","parameters":{"id":8881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8880,"mutability":"mutable","name":"owner","nameLocation":"1958:5:52","nodeType":"VariableDeclaration","scope":8885,"src":"1950:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8879,"name":"address","nodeType":"ElementaryTypeName","src":"1950:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1949:15:52"},"returnParameters":{"id":8884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8883,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8885,"src":"1988:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8882,"name":"uint256","nodeType":"ElementaryTypeName","src":"1988:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1987:9:52"},"scope":8892,"src":"1934:63:52","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":8886,"nodeType":"StructuredDocumentation","src":"2003:128:52","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","id":8891,"implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2198:16:52","nodeType":"FunctionDefinition","parameters":{"id":8887,"nodeType":"ParameterList","parameters":[],"src":"2214:2:52"},"returnParameters":{"id":8890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8889,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8891,"src":"2240:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8888,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2240:7:52","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2239:9:52"},"scope":8892,"src":"2189:60:52","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":8893,"src":"620:1631:52"}],"src":"114:2138:52"},"id":52},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","exportedSymbols":{"Address":[10496],"IERC20":[8831],"IERC20Permit":[8892],"SafeERC20":[9173]},"id":9174,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":8894,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:53"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":8895,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9174,"sourceUnit":8832,"src":"140:23:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol","file":"../extensions/draft-IERC20Permit.sol","id":8896,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9174,"sourceUnit":8893,"src":"164:46:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../../utils/Address.sol","id":8897,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":9174,"sourceUnit":10497,"src":"211:36:53","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":8898,"nodeType":"StructuredDocumentation","src":"249:457:53","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"id":9173,"linearizedBaseContracts":[9173],"name":"SafeERC20","nameLocation":"715:9:53","nodeType":"ContractDefinition","nodes":[{"id":8901,"libraryName":{"id":8899,"name":"Address","nodeType":"IdentifierPath","referencedDeclaration":10496,"src":"737:7:53"},"nodeType":"UsingForDirective","src":"731:26:53","typeName":{"id":8900,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"body":{"id":8923,"nodeType":"Block","src":"865:103:53","statements":[{"expression":{"arguments":[{"id":8912,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8904,"src":"895:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":8915,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8904,"src":"925:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":8916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":8798,"src":"925:14:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":8917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"925:23:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":8918,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8906,"src":"950:2:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8919,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8908,"src":"954:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8913,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"902:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"902:22:53","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":8920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"902:58:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8911,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"875:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":8921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"875:86:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8922,"nodeType":"ExpressionStatement","src":"875:86:53"}]},"id":8924,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"772:12:53","nodeType":"FunctionDefinition","parameters":{"id":8909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8904,"mutability":"mutable","name":"token","nameLocation":"801:5:53","nodeType":"VariableDeclaration","scope":8924,"src":"794:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":8903,"nodeType":"UserDefinedTypeName","pathNode":{"id":8902,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"794:6:53"},"referencedDeclaration":8831,"src":"794:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":8906,"mutability":"mutable","name":"to","nameLocation":"824:2:53","nodeType":"VariableDeclaration","scope":8924,"src":"816:10:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8905,"name":"address","nodeType":"ElementaryTypeName","src":"816:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8908,"mutability":"mutable","name":"value","nameLocation":"844:5:53","nodeType":"VariableDeclaration","scope":8924,"src":"836:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8907,"name":"uint256","nodeType":"ElementaryTypeName","src":"836:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"784:71:53"},"returnParameters":{"id":8910,"nodeType":"ParameterList","parameters":[],"src":"865:0:53"},"scope":9173,"src":"763:205:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8949,"nodeType":"Block","src":"1102:113:53","statements":[{"expression":{"arguments":[{"id":8937,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8927,"src":"1132:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":8940,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8927,"src":"1162:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":8941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":8830,"src":"1162:18:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":8942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1162:27:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":8943,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8929,"src":"1191:4:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8944,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8931,"src":"1197:2:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8945,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8933,"src":"1201:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"1139:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1139:22:53","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":8946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1139:68:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8936,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"1112:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":8947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1112:96:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8948,"nodeType":"ExpressionStatement","src":"1112:96:53"}]},"id":8950,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"983:16:53","nodeType":"FunctionDefinition","parameters":{"id":8934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8927,"mutability":"mutable","name":"token","nameLocation":"1016:5:53","nodeType":"VariableDeclaration","scope":8950,"src":"1009:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":8926,"nodeType":"UserDefinedTypeName","pathNode":{"id":8925,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"1009:6:53"},"referencedDeclaration":8831,"src":"1009:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":8929,"mutability":"mutable","name":"from","nameLocation":"1039:4:53","nodeType":"VariableDeclaration","scope":8950,"src":"1031:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8928,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8931,"mutability":"mutable","name":"to","nameLocation":"1061:2:53","nodeType":"VariableDeclaration","scope":8950,"src":"1053:10:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8930,"name":"address","nodeType":"ElementaryTypeName","src":"1053:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8933,"mutability":"mutable","name":"value","nameLocation":"1081:5:53","nodeType":"VariableDeclaration","scope":8950,"src":"1073:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8932,"name":"uint256","nodeType":"ElementaryTypeName","src":"1073:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"999:93:53"},"returnParameters":{"id":8935,"nodeType":"ParameterList","parameters":[],"src":"1102:0:53"},"scope":9173,"src":"974:241:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":8993,"nodeType":"Block","src":"1581:497:53","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8962,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8958,"src":"1830:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1839:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1830:10:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":8965,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1829:12:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":8970,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1870:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}],"id":8969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1862:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8968,"name":"address","nodeType":"ElementaryTypeName","src":"1862:7:53","typeDescriptions":{}}},"id":8971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1862:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8972,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8956,"src":"1877:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8966,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8954,"src":"1846:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":8967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"1846:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":8973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1846:39:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1846:44:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":8976,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1845:46:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1829:62:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":8978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1905:56:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":8961,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1808:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1808:163:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8980,"nodeType":"ExpressionStatement","src":"1808:163:53"},{"expression":{"arguments":[{"id":8982,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8954,"src":"2001:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":8985,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8954,"src":"2031:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":8986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":8818,"src":"2031:13:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":8987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2031:22:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":8988,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8956,"src":"2055:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8989,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8958,"src":"2064:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8983,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2008:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2008:22:53","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":8990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2008:62:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8981,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"1981:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":8991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1981:90:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8992,"nodeType":"ExpressionStatement","src":"1981:90:53"}]},"documentation":{"id":8951,"nodeType":"StructuredDocumentation","src":"1221:249:53","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"id":8994,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1484:11:53","nodeType":"FunctionDefinition","parameters":{"id":8959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8954,"mutability":"mutable","name":"token","nameLocation":"1512:5:53","nodeType":"VariableDeclaration","scope":8994,"src":"1505:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":8953,"nodeType":"UserDefinedTypeName","pathNode":{"id":8952,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"1505:6:53"},"referencedDeclaration":8831,"src":"1505:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":8956,"mutability":"mutable","name":"spender","nameLocation":"1535:7:53","nodeType":"VariableDeclaration","scope":8994,"src":"1527:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8955,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8958,"mutability":"mutable","name":"value","nameLocation":"1560:5:53","nodeType":"VariableDeclaration","scope":8994,"src":"1552:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8957,"name":"uint256","nodeType":"ElementaryTypeName","src":"1552:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1495:76:53"},"returnParameters":{"id":8960,"nodeType":"ParameterList","parameters":[],"src":"1581:0:53"},"scope":9173,"src":"1475:603:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9029,"nodeType":"Block","src":"2200:194:53","statements":[{"assignments":[9005],"declarations":[{"constant":false,"id":9005,"mutability":"mutable","name":"newAllowance","nameLocation":"2218:12:53","nodeType":"VariableDeclaration","scope":9029,"src":"2210:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9004,"name":"uint256","nodeType":"ElementaryTypeName","src":"2210:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9016,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":9010,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"2257:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}],"id":9009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2249:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9008,"name":"address","nodeType":"ElementaryTypeName","src":"2249:7:53","typeDescriptions":{}}},"id":9011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2249:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9012,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"2264:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9006,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"2233:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":9007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"2233:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":9013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2233:39:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":9014,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9001,"src":"2275:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2233:47:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2210:70:53"},{"expression":{"arguments":[{"id":9018,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"2310:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":9021,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"2340:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":9022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":8818,"src":"2340:13:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":9023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2340:22:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":9024,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"2364:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9025,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"2373:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9019,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2317:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2317:22:53","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":9026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2317:69:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9017,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"2290:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":9027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2290:97:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9028,"nodeType":"ExpressionStatement","src":"2290:97:53"}]},"id":9030,"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2093:21:53","nodeType":"FunctionDefinition","parameters":{"id":9002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8997,"mutability":"mutable","name":"token","nameLocation":"2131:5:53","nodeType":"VariableDeclaration","scope":9030,"src":"2124:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":8996,"nodeType":"UserDefinedTypeName","pathNode":{"id":8995,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"2124:6:53"},"referencedDeclaration":8831,"src":"2124:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":8999,"mutability":"mutable","name":"spender","nameLocation":"2154:7:53","nodeType":"VariableDeclaration","scope":9030,"src":"2146:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8998,"name":"address","nodeType":"ElementaryTypeName","src":"2146:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9001,"mutability":"mutable","name":"value","nameLocation":"2179:5:53","nodeType":"VariableDeclaration","scope":9030,"src":"2171:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9000,"name":"uint256","nodeType":"ElementaryTypeName","src":"2171:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2114:76:53"},"returnParameters":{"id":9003,"nodeType":"ParameterList","parameters":[],"src":"2200:0:53"},"scope":9173,"src":"2084:310:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9077,"nodeType":"Block","src":"2516:370:53","statements":[{"id":9076,"nodeType":"UncheckedBlock","src":"2526:354:53","statements":[{"assignments":[9041],"declarations":[{"constant":false,"id":9041,"mutability":"mutable","name":"oldAllowance","nameLocation":"2558:12:53","nodeType":"VariableDeclaration","scope":9076,"src":"2550:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9040,"name":"uint256","nodeType":"ElementaryTypeName","src":"2550:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9050,"initialValue":{"arguments":[{"arguments":[{"id":9046,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"2597:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$9173","typeString":"library SafeERC20"}],"id":9045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2589:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9044,"name":"address","nodeType":"ElementaryTypeName","src":"2589:7:53","typeDescriptions":{}}},"id":9047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2589:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9048,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9035,"src":"2604:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9042,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9033,"src":"2573:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":9043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"2573:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":9049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2573:39:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2550:62:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9052,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"2634:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":9053,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9037,"src":"2650:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2634:21:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":9055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2657:43:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":9051,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2626:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2626:75:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9057,"nodeType":"ExpressionStatement","src":"2626:75:53"},{"assignments":[9059],"declarations":[{"constant":false,"id":9059,"mutability":"mutable","name":"newAllowance","nameLocation":"2723:12:53","nodeType":"VariableDeclaration","scope":9076,"src":"2715:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9058,"name":"uint256","nodeType":"ElementaryTypeName","src":"2715:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9063,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9060,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"2738:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":9061,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9037,"src":"2753:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2738:20:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2715:43:53"},{"expression":{"arguments":[{"id":9065,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9033,"src":"2792:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":9068,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9033,"src":"2822:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":9069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":8818,"src":"2822:13:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":9070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"2822:22:53","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":9071,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9035,"src":"2846:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9072,"name":"newAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9059,"src":"2855:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2799:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2799:22:53","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":9073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2799:69:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9064,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9172,"src":"2772:19:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":9074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2772:97:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9075,"nodeType":"ExpressionStatement","src":"2772:97:53"}]}]},"id":9078,"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"2409:21:53","nodeType":"FunctionDefinition","parameters":{"id":9038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9033,"mutability":"mutable","name":"token","nameLocation":"2447:5:53","nodeType":"VariableDeclaration","scope":9078,"src":"2440:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":9032,"nodeType":"UserDefinedTypeName","pathNode":{"id":9031,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"2440:6:53"},"referencedDeclaration":8831,"src":"2440:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":9035,"mutability":"mutable","name":"spender","nameLocation":"2470:7:53","nodeType":"VariableDeclaration","scope":9078,"src":"2462:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9034,"name":"address","nodeType":"ElementaryTypeName","src":"2462:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9037,"mutability":"mutable","name":"value","nameLocation":"2495:5:53","nodeType":"VariableDeclaration","scope":9078,"src":"2487:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9036,"name":"uint256","nodeType":"ElementaryTypeName","src":"2487:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:76:53"},"returnParameters":{"id":9039,"nodeType":"ParameterList","parameters":[],"src":"2516:0:53"},"scope":9173,"src":"2400:486:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9133,"nodeType":"Block","src":"3107:257:53","statements":[{"assignments":[9099],"declarations":[{"constant":false,"id":9099,"mutability":"mutable","name":"nonceBefore","nameLocation":"3125:11:53","nodeType":"VariableDeclaration","scope":9133,"src":"3117:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9098,"name":"uint256","nodeType":"ElementaryTypeName","src":"3117:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9104,"initialValue":{"arguments":[{"id":9102,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9083,"src":"3152:5:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9100,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9081,"src":"3139:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$8892","typeString":"contract IERC20Permit"}},"id":9101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":8885,"src":"3139:12:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":9103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3139:19:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3117:41:53"},{"expression":{"arguments":[{"id":9108,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9083,"src":"3181:5:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9109,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9085,"src":"3188:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9110,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9087,"src":"3197:5:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9111,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9089,"src":"3204:8:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9112,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9091,"src":"3214:1:53","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":9113,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9093,"src":"3217:1:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9114,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9095,"src":"3220:1:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9105,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9081,"src":"3168:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$8892","typeString":"contract IERC20Permit"}},"id":9107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":8877,"src":"3168:12:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":9115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3168:54:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9116,"nodeType":"ExpressionStatement","src":"3168:54:53"},{"assignments":[9118],"declarations":[{"constant":false,"id":9118,"mutability":"mutable","name":"nonceAfter","nameLocation":"3240:10:53","nodeType":"VariableDeclaration","scope":9133,"src":"3232:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9117,"name":"uint256","nodeType":"ElementaryTypeName","src":"3232:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9123,"initialValue":{"arguments":[{"id":9121,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9083,"src":"3266:5:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9119,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9081,"src":"3253:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$8892","typeString":"contract IERC20Permit"}},"id":9120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":8885,"src":"3253:12:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":9122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3253:19:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3232:40:53"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9125,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9118,"src":"3290:10:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9126,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9099,"src":"3304:11:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":9127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3318:1:53","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3304:15:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3290:29:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":9130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3321:35:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":9124,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3282:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3282:75:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9132,"nodeType":"ExpressionStatement","src":"3282:75:53"}]},"id":9134,"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"2901:10:53","nodeType":"FunctionDefinition","parameters":{"id":9096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9081,"mutability":"mutable","name":"token","nameLocation":"2934:5:53","nodeType":"VariableDeclaration","scope":9134,"src":"2921:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$8892","typeString":"contract IERC20Permit"},"typeName":{"id":9080,"nodeType":"UserDefinedTypeName","pathNode":{"id":9079,"name":"IERC20Permit","nodeType":"IdentifierPath","referencedDeclaration":8892,"src":"2921:12:53"},"referencedDeclaration":8892,"src":"2921:12:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$8892","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":9083,"mutability":"mutable","name":"owner","nameLocation":"2957:5:53","nodeType":"VariableDeclaration","scope":9134,"src":"2949:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9082,"name":"address","nodeType":"ElementaryTypeName","src":"2949:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9085,"mutability":"mutable","name":"spender","nameLocation":"2980:7:53","nodeType":"VariableDeclaration","scope":9134,"src":"2972:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9084,"name":"address","nodeType":"ElementaryTypeName","src":"2972:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9087,"mutability":"mutable","name":"value","nameLocation":"3005:5:53","nodeType":"VariableDeclaration","scope":9134,"src":"2997:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9086,"name":"uint256","nodeType":"ElementaryTypeName","src":"2997:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9089,"mutability":"mutable","name":"deadline","nameLocation":"3028:8:53","nodeType":"VariableDeclaration","scope":9134,"src":"3020:16:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9088,"name":"uint256","nodeType":"ElementaryTypeName","src":"3020:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9091,"mutability":"mutable","name":"v","nameLocation":"3052:1:53","nodeType":"VariableDeclaration","scope":9134,"src":"3046:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":9090,"name":"uint8","nodeType":"ElementaryTypeName","src":"3046:5:53","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":9093,"mutability":"mutable","name":"r","nameLocation":"3071:1:53","nodeType":"VariableDeclaration","scope":9134,"src":"3063:9:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9092,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3063:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":9095,"mutability":"mutable","name":"s","nameLocation":"3090:1:53","nodeType":"VariableDeclaration","scope":9134,"src":"3082:9:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9094,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3082:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2911:186:53"},"returnParameters":{"id":9097,"nodeType":"ParameterList","parameters":[],"src":"3107:0:53"},"scope":9173,"src":"2892:472:53","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":9171,"nodeType":"Block","src":"3817:636:53","statements":[{"assignments":[9144],"declarations":[{"constant":false,"id":9144,"mutability":"mutable","name":"returndata","nameLocation":"4179:10:53","nodeType":"VariableDeclaration","scope":9171,"src":"4166:23:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9143,"name":"bytes","nodeType":"ElementaryTypeName","src":"4166:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9153,"initialValue":{"arguments":[{"id":9150,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9140,"src":"4220:4:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":9151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4226:34:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":9147,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9138,"src":"4200:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":9146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4192:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9145,"name":"address","nodeType":"ElementaryTypeName","src":"4192:7:53","typeDescriptions":{}}},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4192:14:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":10290,"src":"4192:27:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":9152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4192:69:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4166:95:53"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9154,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9144,"src":"4275:10:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4275:17:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4295:1:53","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4275:21:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9170,"nodeType":"IfStatement","src":"4271:176:53","trueBody":{"id":9169,"nodeType":"Block","src":"4298:149:53","statements":[{"expression":{"arguments":[{"arguments":[{"id":9161,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9144,"src":"4370:10:53","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":9163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4383:4:53","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":9162,"name":"bool","nodeType":"ElementaryTypeName","src":"4383:4:53","typeDescriptions":{}}}],"id":9164,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4382:6:53","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":9159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"4359:3:53","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"4359:10:53","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":9165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4359:30:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":9166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4391:44:53","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":9158,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4351:7:53","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4351:85:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9168,"nodeType":"ExpressionStatement","src":"4351:85:53"}]}}]},"documentation":{"id":9135,"nodeType":"StructuredDocumentation","src":"3370:372:53","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"id":9172,"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"3756:19:53","nodeType":"FunctionDefinition","parameters":{"id":9141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9138,"mutability":"mutable","name":"token","nameLocation":"3783:5:53","nodeType":"VariableDeclaration","scope":9172,"src":"3776:12:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":9137,"nodeType":"UserDefinedTypeName","pathNode":{"id":9136,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"3776:6:53"},"referencedDeclaration":8831,"src":"3776:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":9140,"mutability":"mutable","name":"data","nameLocation":"3803:4:53","nodeType":"VariableDeclaration","scope":9172,"src":"3790:17:53","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9139,"name":"bytes","nodeType":"ElementaryTypeName","src":"3790:5:53","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3775:33:53"},"returnParameters":{"id":9142,"nodeType":"ParameterList","parameters":[],"src":"3817:0:53"},"scope":9173,"src":"3747:706:53","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":9174,"src":"707:3748:53"}],"src":"115:4341:53"},"id":53},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","exportedSymbols":{"Address":[10496],"Context":[10518],"ERC165":[10828],"ERC721":[10040],"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"Strings":[10804]},"id":10041,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":9175,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"107:23:54"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"./IERC721.sol","id":9176,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10157,"src":"132:23:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","file":"./IERC721Receiver.sol","id":9177,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10175,"src":"156:31:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","file":"./extensions/IERC721Metadata.sol","id":9178,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10202,"src":"188:42:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","file":"../../utils/Address.sol","id":9179,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10497,"src":"231:33:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":9180,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10519,"src":"265:33:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../../utils/Strings.sol","id":9181,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10805,"src":"299:33:54","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../../utils/introspection/ERC165.sol","id":9182,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10041,"sourceUnit":10829,"src":"333:46:54","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":9184,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"647:7:54"},"id":9185,"nodeType":"InheritanceSpecifier","src":"647:7:54"},{"baseName":{"id":9186,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":10828,"src":"656:6:54"},"id":9187,"nodeType":"InheritanceSpecifier","src":"656:6:54"},{"baseName":{"id":9188,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":10156,"src":"664:7:54"},"id":9189,"nodeType":"InheritanceSpecifier","src":"664:7:54"},{"baseName":{"id":9190,"name":"IERC721Metadata","nodeType":"IdentifierPath","referencedDeclaration":10201,"src":"673:15:54"},"id":9191,"nodeType":"InheritanceSpecifier","src":"673:15:54"}],"contractDependencies":[10156,10201,10518,10828,10840],"contractKind":"contract","documentation":{"id":9183,"nodeType":"StructuredDocumentation","src":"381:246:54","text":" @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}."},"fullyImplemented":true,"id":10040,"linearizedBaseContracts":[10040,10201,10156,10828,10840,10518],"name":"ERC721","nameLocation":"637:6:54","nodeType":"ContractDefinition","nodes":[{"id":9194,"libraryName":{"id":9192,"name":"Address","nodeType":"IdentifierPath","referencedDeclaration":10496,"src":"701:7:54"},"nodeType":"UsingForDirective","src":"695:26:54","typeName":{"id":9193,"name":"address","nodeType":"ElementaryTypeName","src":"713:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":9197,"libraryName":{"id":9195,"name":"Strings","nodeType":"IdentifierPath","referencedDeclaration":10804,"src":"732:7:54"},"nodeType":"UsingForDirective","src":"726:26:54","typeName":{"id":9196,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":9199,"mutability":"mutable","name":"_name","nameLocation":"791:5:54","nodeType":"VariableDeclaration","scope":10040,"src":"776:20:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9198,"name":"string","nodeType":"ElementaryTypeName","src":"776:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":9201,"mutability":"mutable","name":"_symbol","nameLocation":"838:7:54","nodeType":"VariableDeclaration","scope":10040,"src":"823:22:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":9200,"name":"string","nodeType":"ElementaryTypeName","src":"823:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":9205,"mutability":"mutable","name":"_owners","nameLocation":"934:7:54","nodeType":"VariableDeclaration","scope":10040,"src":"898:43:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":9204,"keyType":{"id":9202,"name":"uint256","nodeType":"ElementaryTypeName","src":"906:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"898:27:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":9203,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":9209,"mutability":"mutable","name":"_balances","nameLocation":"1028:9:54","nodeType":"VariableDeclaration","scope":10040,"src":"992:45:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":9208,"keyType":{"id":9206,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"992:27:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":9207,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":9213,"mutability":"mutable","name":"_tokenApprovals","nameLocation":"1129:15:54","nodeType":"VariableDeclaration","scope":10040,"src":"1093:51:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":9212,"keyType":{"id":9210,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1093:27:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":9211,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":9219,"mutability":"mutable","name":"_operatorApprovals","nameLocation":"1252:18:54","nodeType":"VariableDeclaration","scope":10040,"src":"1199:71:54","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":9218,"keyType":{"id":9214,"name":"address","nodeType":"ElementaryTypeName","src":"1207:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1199:44:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":9217,"keyType":{"id":9215,"name":"address","nodeType":"ElementaryTypeName","src":"1226:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1218:24:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":9216,"name":"bool","nodeType":"ElementaryTypeName","src":"1237:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"private"},{"body":{"id":9235,"nodeType":"Block","src":"1446:57:54","statements":[{"expression":{"id":9229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9227,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"1456:5:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9228,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9222,"src":"1464:5:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1456:13:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9230,"nodeType":"ExpressionStatement","src":"1456:13:54"},{"expression":{"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":9231,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9201,"src":"1479:7:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9232,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9224,"src":"1489:7:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1479:17:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":9234,"nodeType":"ExpressionStatement","src":"1479:17:54"}]},"documentation":{"id":9220,"nodeType":"StructuredDocumentation","src":"1277:108:54","text":" @dev Initializes the contract by setting a `name` and a `symbol` to the token collection."},"id":9236,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":9225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9222,"mutability":"mutable","name":"name_","nameLocation":"1416:5:54","nodeType":"VariableDeclaration","scope":9236,"src":"1402:19:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9221,"name":"string","nodeType":"ElementaryTypeName","src":"1402:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9224,"mutability":"mutable","name":"symbol_","nameLocation":"1437:7:54","nodeType":"VariableDeclaration","scope":9236,"src":"1423:21:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9223,"name":"string","nodeType":"ElementaryTypeName","src":"1423:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1401:44:54"},"returnParameters":{"id":9226,"nodeType":"ParameterList","parameters":[],"src":"1446:0:54"},"scope":10040,"src":"1390:113:54","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[10827,10839],"body":{"id":9266,"nodeType":"Block","src":"1678:192:54","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9247,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9239,"src":"1707:11:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":9249,"name":"IERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10156,"src":"1727:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721_$10156_$","typeString":"type(contract IERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721_$10156_$","typeString":"type(contract IERC721)"}],"id":9248,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"1722:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1722:13:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721_$10156","typeString":"type(contract IERC721)"}},"id":9251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1722:25:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1707:40:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9253,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9239,"src":"1763:11:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":9255,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10201,"src":"1783:15:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$10201_$","typeString":"type(contract IERC721Metadata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC721Metadata_$10201_$","typeString":"type(contract IERC721Metadata)"}],"id":9254,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"1778:4:54","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":9256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1778:21:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC721Metadata_$10201","typeString":"type(contract IERC721Metadata)"}},"id":9257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"1778:33:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"1763:48:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:104:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":9262,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9239,"src":"1851:11:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":9260,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"1827:5:54","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ERC721_$10040_$","typeString":"type(contract super ERC721)"}},"id":9261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":10827,"src":"1827:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":9263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1827:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1707:156:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9246,"id":9265,"nodeType":"Return","src":"1688:175:54"}]},"documentation":{"id":9237,"nodeType":"StructuredDocumentation","src":"1509:56:54","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":9267,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"1579:17:54","nodeType":"FunctionDefinition","overrides":{"id":9243,"nodeType":"OverrideSpecifier","overrides":[{"id":9241,"name":"ERC165","nodeType":"IdentifierPath","referencedDeclaration":10828,"src":"1646:6:54"},{"id":9242,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":10840,"src":"1654:7:54"}],"src":"1637:25:54"},"parameters":{"id":9240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9239,"mutability":"mutable","name":"interfaceId","nameLocation":"1604:11:54","nodeType":"VariableDeclaration","scope":9267,"src":"1597:18:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9238,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1597:6:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1596:20:54"},"returnParameters":{"id":9246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9267,"src":"1672:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9244,"name":"bool","nodeType":"ElementaryTypeName","src":"1672:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1671:6:54"},"scope":10040,"src":"1570:300:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10081],"body":{"id":9290,"nodeType":"Block","src":"2010:123:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9277,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9270,"src":"2028:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2045:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2037:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9278,"name":"address","nodeType":"ElementaryTypeName","src":"2037:7:54","typeDescriptions":{}}},"id":9281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2037:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2028:19:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572","id":9283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2049:43:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""},"value":"ERC721: address zero is not a valid owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159","typeString":"literal_string \"ERC721: address zero is not a valid owner\""}],"id":9276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2020:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2020:73:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9285,"nodeType":"ExpressionStatement","src":"2020:73:54"},{"expression":{"baseExpression":{"id":9286,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"2110:9:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9288,"indexExpression":{"id":9287,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9270,"src":"2120:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2110:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9275,"id":9289,"nodeType":"Return","src":"2103:23:54"}]},"documentation":{"id":9268,"nodeType":"StructuredDocumentation","src":"1876:48:54","text":" @dev See {IERC721-balanceOf}."},"functionSelector":"70a08231","id":9291,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1938:9:54","nodeType":"FunctionDefinition","overrides":{"id":9272,"nodeType":"OverrideSpecifier","overrides":[],"src":"1983:8:54"},"parameters":{"id":9271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9270,"mutability":"mutable","name":"owner","nameLocation":"1956:5:54","nodeType":"VariableDeclaration","scope":9291,"src":"1948:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9269,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1947:15:54"},"returnParameters":{"id":9275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9291,"src":"2001:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9273,"name":"uint256","nodeType":"ElementaryTypeName","src":"2001:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2000:9:54"},"scope":10040,"src":"1929:204:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10089],"body":{"id":9318,"nodeType":"Block","src":"2271:137:54","statements":[{"assignments":[9301],"declarations":[{"constant":false,"id":9301,"mutability":"mutable","name":"owner","nameLocation":"2289:5:54","nodeType":"VariableDeclaration","scope":9318,"src":"2281:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9300,"name":"address","nodeType":"ElementaryTypeName","src":"2281:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9305,"initialValue":{"baseExpression":{"id":9302,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"2297:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9304,"indexExpression":{"id":9303,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9294,"src":"2305:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2297:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2281:32:54"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9307,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9301,"src":"2331:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2348:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2340:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9308,"name":"address","nodeType":"ElementaryTypeName","src":"2340:7:54","typeDescriptions":{}}},"id":9311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2340:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2331:19:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":9313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2352:26:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":9306,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2323:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2323:56:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9315,"nodeType":"ExpressionStatement","src":"2323:56:54"},{"expression":{"id":9316,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9301,"src":"2396:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9299,"id":9317,"nodeType":"Return","src":"2389:12:54"}]},"documentation":{"id":9292,"nodeType":"StructuredDocumentation","src":"2139:46:54","text":" @dev See {IERC721-ownerOf}."},"functionSelector":"6352211e","id":9319,"implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2199:7:54","nodeType":"FunctionDefinition","overrides":{"id":9296,"nodeType":"OverrideSpecifier","overrides":[],"src":"2244:8:54"},"parameters":{"id":9295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9294,"mutability":"mutable","name":"tokenId","nameLocation":"2215:7:54","nodeType":"VariableDeclaration","scope":9319,"src":"2207:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9293,"name":"uint256","nodeType":"ElementaryTypeName","src":"2207:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2206:17:54"},"returnParameters":{"id":9299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9298,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9319,"src":"2262:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9297,"name":"address","nodeType":"ElementaryTypeName","src":"2262:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2261:9:54"},"scope":10040,"src":"2190:218:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10186],"body":{"id":9328,"nodeType":"Block","src":"2539:29:54","statements":[{"expression":{"id":9326,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9199,"src":"2556:5:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9325,"id":9327,"nodeType":"Return","src":"2549:12:54"}]},"documentation":{"id":9320,"nodeType":"StructuredDocumentation","src":"2414:51:54","text":" @dev See {IERC721Metadata-name}."},"functionSelector":"06fdde03","id":9329,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2479:4:54","nodeType":"FunctionDefinition","overrides":{"id":9322,"nodeType":"OverrideSpecifier","overrides":[],"src":"2506:8:54"},"parameters":{"id":9321,"nodeType":"ParameterList","parameters":[],"src":"2483:2:54"},"returnParameters":{"id":9325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9324,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9329,"src":"2524:13:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9323,"name":"string","nodeType":"ElementaryTypeName","src":"2524:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2523:15:54"},"scope":10040,"src":"2470:98:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10192],"body":{"id":9338,"nodeType":"Block","src":"2703:31:54","statements":[{"expression":{"id":9336,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9201,"src":"2720:7:54","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":9335,"id":9337,"nodeType":"Return","src":"2713:14:54"}]},"documentation":{"id":9330,"nodeType":"StructuredDocumentation","src":"2574:53:54","text":" @dev See {IERC721Metadata-symbol}."},"functionSelector":"95d89b41","id":9339,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2641:6:54","nodeType":"FunctionDefinition","overrides":{"id":9332,"nodeType":"OverrideSpecifier","overrides":[],"src":"2670:8:54"},"parameters":{"id":9331,"nodeType":"ParameterList","parameters":[],"src":"2647:2:54"},"returnParameters":{"id":9335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9339,"src":"2688:13:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9333,"name":"string","nodeType":"ElementaryTypeName","src":"2688:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2687:15:54"},"scope":10040,"src":"2632:102:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10200],"body":{"id":9377,"nodeType":"Block","src":"2888:188:54","statements":[{"expression":{"arguments":[{"id":9349,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9342,"src":"2913:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9348,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9955,"src":"2898:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":9350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2898:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9351,"nodeType":"ExpressionStatement","src":"2898:23:54"},{"assignments":[9353],"declarations":[{"constant":false,"id":9353,"mutability":"mutable","name":"baseURI","nameLocation":"2946:7:54","nodeType":"VariableDeclaration","scope":9377,"src":"2932:21:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9352,"name":"string","nodeType":"ElementaryTypeName","src":"2932:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":9356,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":9354,"name":"_baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9387,"src":"2956:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view returns (string memory)"}},"id":9355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2956:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2932:34:54"},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":9359,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9353,"src":"2989:7:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2983:5:54","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":9357,"name":"bytes","nodeType":"ElementaryTypeName","src":"2983:5:54","typeDescriptions":{}}},"id":9360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2983:14:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2983:21:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3007:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2983:25:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":9374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3067:2:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":9375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2983:86:54","trueExpression":{"arguments":[{"arguments":[{"id":9368,"name":"baseURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9353,"src":"3035:7:54","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9369,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9342,"src":"3044:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":10666,"src":"3044:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":9371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3044:18:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3018:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3018:16:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3018:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3011:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":9364,"name":"string","nodeType":"ElementaryTypeName","src":"3011:6:54","typeDescriptions":{}}},"id":9373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3011:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9347,"id":9376,"nodeType":"Return","src":"2976:93:54"}]},"documentation":{"id":9340,"nodeType":"StructuredDocumentation","src":"2740:55:54","text":" @dev See {IERC721Metadata-tokenURI}."},"functionSelector":"c87b56dd","id":9378,"implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"2809:8:54","nodeType":"FunctionDefinition","overrides":{"id":9344,"nodeType":"OverrideSpecifier","overrides":[],"src":"2855:8:54"},"parameters":{"id":9343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9342,"mutability":"mutable","name":"tokenId","nameLocation":"2826:7:54","nodeType":"VariableDeclaration","scope":9378,"src":"2818:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9341,"name":"uint256","nodeType":"ElementaryTypeName","src":"2818:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2817:17:54"},"returnParameters":{"id":9347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9346,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9378,"src":"2873:13:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9345,"name":"string","nodeType":"ElementaryTypeName","src":"2873:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2872:15:54"},"scope":10040,"src":"2800:276:54","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":9386,"nodeType":"Block","src":"3384:26:54","statements":[{"expression":{"hexValue":"","id":9384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3401:2:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":9383,"id":9385,"nodeType":"Return","src":"3394:9:54"}]},"documentation":{"id":9379,"nodeType":"StructuredDocumentation","src":"3082:231:54","text":" @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts."},"id":9387,"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"3327:8:54","nodeType":"FunctionDefinition","parameters":{"id":9380,"nodeType":"ParameterList","parameters":[],"src":"3335:2:54"},"returnParameters":{"id":9383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9387,"src":"3369:13:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9381,"name":"string","nodeType":"ElementaryTypeName","src":"3369:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3368:15:54"},"scope":10040,"src":"3318:92:54","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[10129],"body":{"id":9429,"nodeType":"Block","src":"3537:337:54","statements":[{"assignments":[9397],"declarations":[{"constant":false,"id":9397,"mutability":"mutable","name":"owner","nameLocation":"3555:5:54","nodeType":"VariableDeclaration","scope":9429,"src":"3547:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9396,"name":"address","nodeType":"ElementaryTypeName","src":"3547:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9402,"initialValue":{"arguments":[{"id":9400,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9392,"src":"3578:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9398,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"3563:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$10040_$","typeString":"type(contract ERC721)"}},"id":9399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"3563:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3563:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3547:39:54"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9404,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"3604:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9405,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9397,"src":"3610:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3604:11:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572","id":9407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3617:35:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""},"value":"ERC721: approval to current owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942","typeString":"literal_string \"ERC721: approval to current owner\""}],"id":9403,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3596:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3596:57:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9409,"nodeType":"ExpressionStatement","src":"3596:57:54"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":9411,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3685:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3685:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9413,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9397,"src":"3701:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3685:21:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":9416,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9397,"src":"3727:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":9417,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3734:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3734:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9415,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"3710:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":9419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3710:37:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3685:62:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c","id":9421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3761:64:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304","typeString":"literal_string \"ERC721: approve caller is not token owner nor approved for all\""},"value":"ERC721: approve caller is not token owner nor approved for all"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304","typeString":"literal_string \"ERC721: approve caller is not token owner nor approved for all\""}],"id":9410,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3664:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3664:171:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9423,"nodeType":"ExpressionStatement","src":"3664:171:54"},{"expression":{"arguments":[{"id":9425,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"3855:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9426,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9392,"src":"3859:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9424,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"3846:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3846:21:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9428,"nodeType":"ExpressionStatement","src":"3846:21:54"}]},"documentation":{"id":9388,"nodeType":"StructuredDocumentation","src":"3416:46:54","text":" @dev See {IERC721-approve}."},"functionSelector":"095ea7b3","id":9430,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3476:7:54","nodeType":"FunctionDefinition","overrides":{"id":9394,"nodeType":"OverrideSpecifier","overrides":[],"src":"3528:8:54"},"parameters":{"id":9393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9390,"mutability":"mutable","name":"to","nameLocation":"3492:2:54","nodeType":"VariableDeclaration","scope":9430,"src":"3484:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9389,"name":"address","nodeType":"ElementaryTypeName","src":"3484:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9392,"mutability":"mutable","name":"tokenId","nameLocation":"3504:7:54","nodeType":"VariableDeclaration","scope":9430,"src":"3496:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9391,"name":"uint256","nodeType":"ElementaryTypeName","src":"3496:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3483:29:54"},"returnParameters":{"id":9395,"nodeType":"ParameterList","parameters":[],"src":"3537:0:54"},"scope":10040,"src":"3467:407:54","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[10145],"body":{"id":9447,"nodeType":"Block","src":"4020:82:54","statements":[{"expression":{"arguments":[{"id":9440,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9433,"src":"4045:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9439,"name":"_requireMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9955,"src":"4030:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":9441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4030:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9442,"nodeType":"ExpressionStatement","src":"4030:23:54"},{"expression":{"baseExpression":{"id":9443,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9213,"src":"4071:15:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9445,"indexExpression":{"id":9444,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9433,"src":"4087:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4071:24:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9438,"id":9446,"nodeType":"Return","src":"4064:31:54"}]},"documentation":{"id":9431,"nodeType":"StructuredDocumentation","src":"3880:50:54","text":" @dev See {IERC721-getApproved}."},"functionSelector":"081812fc","id":9448,"implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"3944:11:54","nodeType":"FunctionDefinition","overrides":{"id":9435,"nodeType":"OverrideSpecifier","overrides":[],"src":"3993:8:54"},"parameters":{"id":9434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9433,"mutability":"mutable","name":"tokenId","nameLocation":"3964:7:54","nodeType":"VariableDeclaration","scope":9448,"src":"3956:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9432,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3955:17:54"},"returnParameters":{"id":9438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9448,"src":"4011:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9436,"name":"address","nodeType":"ElementaryTypeName","src":"4011:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4010:9:54"},"scope":10040,"src":"3935:167:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10137],"body":{"id":9464,"nodeType":"Block","src":"4253:69:54","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9458,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4282:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4282:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9460,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9451,"src":"4296:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9461,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9453,"src":"4306:8:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9457,"name":"_setApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9941,"src":"4263:18:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":9462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4263:52:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9463,"nodeType":"ExpressionStatement","src":"4263:52:54"}]},"documentation":{"id":9449,"nodeType":"StructuredDocumentation","src":"4108:56:54","text":" @dev See {IERC721-setApprovalForAll}."},"functionSelector":"a22cb465","id":9465,"implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4178:17:54","nodeType":"FunctionDefinition","overrides":{"id":9455,"nodeType":"OverrideSpecifier","overrides":[],"src":"4244:8:54"},"parameters":{"id":9454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9451,"mutability":"mutable","name":"operator","nameLocation":"4204:8:54","nodeType":"VariableDeclaration","scope":9465,"src":"4196:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9450,"name":"address","nodeType":"ElementaryTypeName","src":"4196:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9453,"mutability":"mutable","name":"approved","nameLocation":"4219:8:54","nodeType":"VariableDeclaration","scope":9465,"src":"4214:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9452,"name":"bool","nodeType":"ElementaryTypeName","src":"4214:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4195:33:54"},"returnParameters":{"id":9456,"nodeType":"ParameterList","parameters":[],"src":"4253:0:54"},"scope":10040,"src":"4169:153:54","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[10155],"body":{"id":9482,"nodeType":"Block","src":"4491:59:54","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":9476,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"4508:18:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":9478,"indexExpression":{"id":9477,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9468,"src":"4527:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:25:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":9480,"indexExpression":{"id":9479,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9470,"src":"4534:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4508:35:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9475,"id":9481,"nodeType":"Return","src":"4501:42:54"}]},"documentation":{"id":9466,"nodeType":"StructuredDocumentation","src":"4328:55:54","text":" @dev See {IERC721-isApprovedForAll}."},"functionSelector":"e985e9c5","id":9483,"implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4397:16:54","nodeType":"FunctionDefinition","overrides":{"id":9472,"nodeType":"OverrideSpecifier","overrides":[],"src":"4467:8:54"},"parameters":{"id":9471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9468,"mutability":"mutable","name":"owner","nameLocation":"4422:5:54","nodeType":"VariableDeclaration","scope":9483,"src":"4414:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9467,"name":"address","nodeType":"ElementaryTypeName","src":"4414:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9470,"mutability":"mutable","name":"operator","nameLocation":"4437:8:54","nodeType":"VariableDeclaration","scope":9483,"src":"4429:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9469,"name":"address","nodeType":"ElementaryTypeName","src":"4429:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4413:33:54"},"returnParameters":{"id":9475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9483,"src":"4485:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9473,"name":"bool","nodeType":"ElementaryTypeName","src":"4485:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4484:6:54"},"scope":10040,"src":"4388:162:54","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[10121],"body":{"id":9509,"nodeType":"Block","src":"4731:208:54","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9496,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4820:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4820:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9498,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"4834:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9495,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9640,"src":"4801:18:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":9499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4801:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564","id":9500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4844:48:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""},"value":"ERC721: caller is not token owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""}],"id":9494,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4793:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4793:100:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9502,"nodeType":"ExpressionStatement","src":"4793:100:54"},{"expression":{"arguments":[{"id":9504,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"4914:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9505,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9488,"src":"4920:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9506,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9490,"src":"4924:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9503,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9885,"src":"4904:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4904:28:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9508,"nodeType":"ExpressionStatement","src":"4904:28:54"}]},"documentation":{"id":9484,"nodeType":"StructuredDocumentation","src":"4556:51:54","text":" @dev See {IERC721-transferFrom}."},"functionSelector":"23b872dd","id":9510,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4621:12:54","nodeType":"FunctionDefinition","overrides":{"id":9492,"nodeType":"OverrideSpecifier","overrides":[],"src":"4722:8:54"},"parameters":{"id":9491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9486,"mutability":"mutable","name":"from","nameLocation":"4651:4:54","nodeType":"VariableDeclaration","scope":9510,"src":"4643:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9485,"name":"address","nodeType":"ElementaryTypeName","src":"4643:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9488,"mutability":"mutable","name":"to","nameLocation":"4673:2:54","nodeType":"VariableDeclaration","scope":9510,"src":"4665:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9487,"name":"address","nodeType":"ElementaryTypeName","src":"4665:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9490,"mutability":"mutable","name":"tokenId","nameLocation":"4693:7:54","nodeType":"VariableDeclaration","scope":9510,"src":"4685:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9489,"name":"uint256","nodeType":"ElementaryTypeName","src":"4685:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4633:73:54"},"returnParameters":{"id":9493,"nodeType":"ParameterList","parameters":[],"src":"4731:0:54"},"scope":10040,"src":"4612:327:54","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[10111],"body":{"id":9528,"nodeType":"Block","src":"5128:56:54","statements":[{"expression":{"arguments":[{"id":9522,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9513,"src":"5155:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9523,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9515,"src":"5161:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9524,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9517,"src":"5165:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":9525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5174:2:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":9521,"name":"safeTransferFrom","nodeType":"Identifier","overloadedDeclarations":[9529,9559],"referencedDeclaration":9559,"src":"5138:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":9526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5138:39:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9527,"nodeType":"ExpressionStatement","src":"5138:39:54"}]},"documentation":{"id":9511,"nodeType":"StructuredDocumentation","src":"4945:55:54","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"42842e0e","id":9529,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5014:16:54","nodeType":"FunctionDefinition","overrides":{"id":9519,"nodeType":"OverrideSpecifier","overrides":[],"src":"5119:8:54"},"parameters":{"id":9518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9513,"mutability":"mutable","name":"from","nameLocation":"5048:4:54","nodeType":"VariableDeclaration","scope":9529,"src":"5040:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9512,"name":"address","nodeType":"ElementaryTypeName","src":"5040:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9515,"mutability":"mutable","name":"to","nameLocation":"5070:2:54","nodeType":"VariableDeclaration","scope":9529,"src":"5062:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9514,"name":"address","nodeType":"ElementaryTypeName","src":"5062:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9517,"mutability":"mutable","name":"tokenId","nameLocation":"5090:7:54","nodeType":"VariableDeclaration","scope":9529,"src":"5082:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9516,"name":"uint256","nodeType":"ElementaryTypeName","src":"5082:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5030:73:54"},"returnParameters":{"id":9520,"nodeType":"ParameterList","parameters":[],"src":"5128:0:54"},"scope":10040,"src":"5005:179:54","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[10101],"body":{"id":9558,"nodeType":"Block","src":"5400:165:54","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9544,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5437:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5437:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9546,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"5451:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9543,"name":"_isApprovedOrOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9640,"src":"5418:18:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) view returns (bool)"}},"id":9547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5418:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206e6f7220617070726f766564","id":9548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5461:48:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""},"value":"ERC721: caller is not token owner nor approved"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b","typeString":"literal_string \"ERC721: caller is not token owner nor approved\""}],"id":9542,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5410:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5410:100:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9550,"nodeType":"ExpressionStatement","src":"5410:100:54"},{"expression":{"arguments":[{"id":9552,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9532,"src":"5534:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9553,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9534,"src":"5540:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9554,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"5544:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9555,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9538,"src":"5553:4:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9551,"name":"_safeTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9588,"src":"5520:13:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory)"}},"id":9556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5520:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9557,"nodeType":"ExpressionStatement","src":"5520:38:54"}]},"documentation":{"id":9530,"nodeType":"StructuredDocumentation","src":"5190:55:54","text":" @dev See {IERC721-safeTransferFrom}."},"functionSelector":"b88d4fde","id":9559,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"5259:16:54","nodeType":"FunctionDefinition","overrides":{"id":9540,"nodeType":"OverrideSpecifier","overrides":[],"src":"5391:8:54"},"parameters":{"id":9539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9532,"mutability":"mutable","name":"from","nameLocation":"5293:4:54","nodeType":"VariableDeclaration","scope":9559,"src":"5285:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9531,"name":"address","nodeType":"ElementaryTypeName","src":"5285:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9534,"mutability":"mutable","name":"to","nameLocation":"5315:2:54","nodeType":"VariableDeclaration","scope":9559,"src":"5307:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9533,"name":"address","nodeType":"ElementaryTypeName","src":"5307:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9536,"mutability":"mutable","name":"tokenId","nameLocation":"5335:7:54","nodeType":"VariableDeclaration","scope":9559,"src":"5327:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9535,"name":"uint256","nodeType":"ElementaryTypeName","src":"5327:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9538,"mutability":"mutable","name":"data","nameLocation":"5365:4:54","nodeType":"VariableDeclaration","scope":9559,"src":"5352:17:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9537,"name":"bytes","nodeType":"ElementaryTypeName","src":"5352:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5275:100:54"},"returnParameters":{"id":9541,"nodeType":"ParameterList","parameters":[],"src":"5400:0:54"},"scope":10040,"src":"5250:315:54","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":9587,"nodeType":"Block","src":"6566:165:54","statements":[{"expression":{"arguments":[{"id":9572,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9562,"src":"6586:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9573,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9564,"src":"6592:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9574,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9566,"src":"6596:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9571,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9885,"src":"6576:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6576:28:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9576,"nodeType":"ExpressionStatement","src":"6576:28:54"},{"expression":{"arguments":[{"arguments":[{"id":9579,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9562,"src":"6645:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9580,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9564,"src":"6651:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9581,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9566,"src":"6655:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9582,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9568,"src":"6664:4:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9578,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10017,"src":"6622:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":9583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6622:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":9584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6671:52:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":9577,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6614:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6614:110:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9586,"nodeType":"ExpressionStatement","src":"6614:110:54"}]},"documentation":{"id":9560,"nodeType":"StructuredDocumentation","src":"5571:850:54","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":9588,"implemented":true,"kind":"function","modifiers":[],"name":"_safeTransfer","nameLocation":"6435:13:54","nodeType":"FunctionDefinition","parameters":{"id":9569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9562,"mutability":"mutable","name":"from","nameLocation":"6466:4:54","nodeType":"VariableDeclaration","scope":9588,"src":"6458:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9561,"name":"address","nodeType":"ElementaryTypeName","src":"6458:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9564,"mutability":"mutable","name":"to","nameLocation":"6488:2:54","nodeType":"VariableDeclaration","scope":9588,"src":"6480:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9563,"name":"address","nodeType":"ElementaryTypeName","src":"6480:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9566,"mutability":"mutable","name":"tokenId","nameLocation":"6508:7:54","nodeType":"VariableDeclaration","scope":9588,"src":"6500:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9565,"name":"uint256","nodeType":"ElementaryTypeName","src":"6500:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9568,"mutability":"mutable","name":"data","nameLocation":"6538:4:54","nodeType":"VariableDeclaration","scope":9588,"src":"6525:17:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9567,"name":"bytes","nodeType":"ElementaryTypeName","src":"6525:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6448:100:54"},"returnParameters":{"id":9570,"nodeType":"ParameterList","parameters":[],"src":"6566:0:54"},"scope":10040,"src":"6426:305:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9605,"nodeType":"Block","src":"7105:54:54","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":9596,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"7122:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9598,"indexExpression":{"id":9597,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9591,"src":"7130:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7122:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7150:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7142:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9599,"name":"address","nodeType":"ElementaryTypeName","src":"7142:7:54","typeDescriptions":{}}},"id":9602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7142:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7122:30:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9595,"id":9604,"nodeType":"Return","src":"7115:37:54"}]},"documentation":{"id":9589,"nodeType":"StructuredDocumentation","src":"6737:292:54","text":" @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)."},"id":9606,"implemented":true,"kind":"function","modifiers":[],"name":"_exists","nameLocation":"7043:7:54","nodeType":"FunctionDefinition","parameters":{"id":9592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9591,"mutability":"mutable","name":"tokenId","nameLocation":"7059:7:54","nodeType":"VariableDeclaration","scope":9606,"src":"7051:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9590,"name":"uint256","nodeType":"ElementaryTypeName","src":"7051:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7050:17:54"},"returnParameters":{"id":9595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9594,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9606,"src":"7099:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9593,"name":"bool","nodeType":"ElementaryTypeName","src":"7099:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7098:6:54"},"scope":10040,"src":"7034:125:54","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9639,"nodeType":"Block","src":"7416:162:54","statements":[{"assignments":[9617],"declarations":[{"constant":false,"id":9617,"mutability":"mutable","name":"owner","nameLocation":"7434:5:54","nodeType":"VariableDeclaration","scope":9639,"src":"7426:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9616,"name":"address","nodeType":"ElementaryTypeName","src":"7426:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9622,"initialValue":{"arguments":[{"id":9620,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9611,"src":"7457:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9618,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"7442:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$10040_$","typeString":"type(contract ERC721)"}},"id":9619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"7442:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7442:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"7426:39:54"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9623,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9609,"src":"7483:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9624,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9617,"src":"7494:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7483:16:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":9627,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9617,"src":"7520:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9628,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9609,"src":"7527:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":9626,"name":"isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9483,"src":"7503:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":9629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7503:32:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7483:52:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9632,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9611,"src":"7551:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9631,"name":"getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9448,"src":"7539:11:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7539:20:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9634,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9609,"src":"7563:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7539:31:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7483:87:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9637,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7482:89:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9615,"id":9638,"nodeType":"Return","src":"7475:96:54"}]},"documentation":{"id":9607,"nodeType":"StructuredDocumentation","src":"7165:147:54","text":" @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist."},"id":9640,"implemented":true,"kind":"function","modifiers":[],"name":"_isApprovedOrOwner","nameLocation":"7326:18:54","nodeType":"FunctionDefinition","parameters":{"id":9612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9609,"mutability":"mutable","name":"spender","nameLocation":"7353:7:54","nodeType":"VariableDeclaration","scope":9640,"src":"7345:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9608,"name":"address","nodeType":"ElementaryTypeName","src":"7345:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9611,"mutability":"mutable","name":"tokenId","nameLocation":"7370:7:54","nodeType":"VariableDeclaration","scope":9640,"src":"7362:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9610,"name":"uint256","nodeType":"ElementaryTypeName","src":"7362:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7344:34:54"},"returnParameters":{"id":9615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9640,"src":"7410:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9613,"name":"bool","nodeType":"ElementaryTypeName","src":"7410:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7409:6:54"},"scope":10040,"src":"7317:261:54","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":9654,"nodeType":"Block","src":"7973:43:54","statements":[{"expression":{"arguments":[{"id":9649,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9643,"src":"7993:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9650,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9645,"src":"7997:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":9651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8006:2:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":9648,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[9655,9684],"referencedDeclaration":9684,"src":"7983:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":9652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7983:26:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9653,"nodeType":"ExpressionStatement","src":"7983:26:54"}]},"documentation":{"id":9641,"nodeType":"StructuredDocumentation","src":"7584:319:54","text":" @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"id":9655,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"7917:9:54","nodeType":"FunctionDefinition","parameters":{"id":9646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9643,"mutability":"mutable","name":"to","nameLocation":"7935:2:54","nodeType":"VariableDeclaration","scope":9655,"src":"7927:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9642,"name":"address","nodeType":"ElementaryTypeName","src":"7927:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9645,"mutability":"mutable","name":"tokenId","nameLocation":"7947:7:54","nodeType":"VariableDeclaration","scope":9655,"src":"7939:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9644,"name":"uint256","nodeType":"ElementaryTypeName","src":"7939:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7926:29:54"},"returnParameters":{"id":9647,"nodeType":"ParameterList","parameters":[],"src":"7973:0:54"},"scope":10040,"src":"7908:108:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9683,"nodeType":"Block","src":"8351:195:54","statements":[{"expression":{"arguments":[{"id":9666,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9658,"src":"8367:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9667,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9660,"src":"8371:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9665,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9750,"src":"8361:5:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8361:18:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9669,"nodeType":"ExpressionStatement","src":"8361:18:54"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":9674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8441:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8433:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9672,"name":"address","nodeType":"ElementaryTypeName","src":"8433:7:54","typeDescriptions":{}}},"id":9675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8433:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9676,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9658,"src":"8445:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9677,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9660,"src":"8449:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9678,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9662,"src":"8458:4:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9671,"name":"_checkOnERC721Received","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10017,"src":"8410:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,address,uint256,bytes memory) returns (bool)"}},"id":9679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8410:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":9680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8477:52:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":9670,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8389:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8389:150:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9682,"nodeType":"ExpressionStatement","src":"8389:150:54"}]},"documentation":{"id":9656,"nodeType":"StructuredDocumentation","src":"8022:210:54","text":" @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients."},"id":9684,"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"8246:9:54","nodeType":"FunctionDefinition","parameters":{"id":9663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9658,"mutability":"mutable","name":"to","nameLocation":"8273:2:54","nodeType":"VariableDeclaration","scope":9684,"src":"8265:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9657,"name":"address","nodeType":"ElementaryTypeName","src":"8265:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9660,"mutability":"mutable","name":"tokenId","nameLocation":"8293:7:54","nodeType":"VariableDeclaration","scope":9684,"src":"8285:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9659,"name":"uint256","nodeType":"ElementaryTypeName","src":"8285:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9662,"mutability":"mutable","name":"data","nameLocation":"8323:4:54","nodeType":"VariableDeclaration","scope":9684,"src":"8310:17:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9661,"name":"bytes","nodeType":"ElementaryTypeName","src":"8310:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8255:78:54"},"returnParameters":{"id":9664,"nodeType":"ParameterList","parameters":[],"src":"8351:0:54"},"scope":10040,"src":"8237:309:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9749,"nodeType":"Block","src":"8929:366:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9693,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"8947:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8961:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8953:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9694,"name":"address","nodeType":"ElementaryTypeName","src":"8953:7:54","typeDescriptions":{}}},"id":9697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8953:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8947:16:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a206d696e7420746f20746865207a65726f2061646472657373","id":9699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8965:34:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""},"value":"ERC721: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6","typeString":"literal_string \"ERC721: mint to the zero address\""}],"id":9692,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8939:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8939:61:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9701,"nodeType":"ExpressionStatement","src":"8939:61:54"},{"expression":{"arguments":[{"id":9706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9018:17:54","subExpression":{"arguments":[{"id":9704,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"9027:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9703,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9606,"src":"9019:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":9705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9019:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20746f6b656e20616c7265616479206d696e746564","id":9707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9037:30:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""},"value":"ERC721: token already minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57","typeString":"literal_string \"ERC721: token already minted\""}],"id":9702,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9010:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9010:58:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9709,"nodeType":"ExpressionStatement","src":"9010:58:54"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9108:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9100:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9711,"name":"address","nodeType":"ElementaryTypeName","src":"9100:7:54","typeDescriptions":{}}},"id":9714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9100:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9715,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"9112:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9716,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"9116:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9710,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"9079:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9079:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9718,"nodeType":"ExpressionStatement","src":"9079:45:54"},{"expression":{"id":9723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9719,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"9135:9:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9721,"indexExpression":{"id":9720,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"9145:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9135:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":9722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9152:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9135:18:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9724,"nodeType":"ExpressionStatement","src":"9135:18:54"},{"expression":{"id":9729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9725,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"9163:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9727,"indexExpression":{"id":9726,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"9171:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9163:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9728,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"9182:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9163:21:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9730,"nodeType":"ExpressionStatement","src":"9163:21:54"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":9734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9217:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9209:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9732,"name":"address","nodeType":"ElementaryTypeName","src":"9209:7:54","typeDescriptions":{}}},"id":9735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9209:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9736,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"9221:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9737,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"9225:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9731,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10055,"src":"9200:8:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9200:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9739,"nodeType":"EmitStatement","src":"9195:38:54"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9264:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9741,"name":"address","nodeType":"ElementaryTypeName","src":"9264:7:54","typeDescriptions":{}}},"id":9744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9264:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9745,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"9276:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9746,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"9280:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9740,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10039,"src":"9244:19:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9244:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9748,"nodeType":"ExpressionStatement","src":"9244:44:54"}]},"documentation":{"id":9685,"nodeType":"StructuredDocumentation","src":"8552:311:54","text":" @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event."},"id":9750,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8877:5:54","nodeType":"FunctionDefinition","parameters":{"id":9690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9687,"mutability":"mutable","name":"to","nameLocation":"8891:2:54","nodeType":"VariableDeclaration","scope":9750,"src":"8883:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9686,"name":"address","nodeType":"ElementaryTypeName","src":"8883:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9689,"mutability":"mutable","name":"tokenId","nameLocation":"8903:7:54","nodeType":"VariableDeclaration","scope":9750,"src":"8895:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9688,"name":"uint256","nodeType":"ElementaryTypeName","src":"8895:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8882:29:54"},"returnParameters":{"id":9691,"nodeType":"ParameterList","parameters":[],"src":"8929:0:54"},"scope":10040,"src":"8868:427:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9809,"nodeType":"Block","src":"9561:357:54","statements":[{"assignments":[9757],"declarations":[{"constant":false,"id":9757,"mutability":"mutable","name":"owner","nameLocation":"9579:5:54","nodeType":"VariableDeclaration","scope":9809,"src":"9571:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9756,"name":"address","nodeType":"ElementaryTypeName","src":"9571:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9762,"initialValue":{"arguments":[{"id":9760,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9602:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9758,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"9587:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$10040_$","typeString":"type(contract ERC721)"}},"id":9759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"9587:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9587:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9571:39:54"},{"expression":{"arguments":[{"id":9764,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"9642:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9657:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9649:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9765,"name":"address","nodeType":"ElementaryTypeName","src":"9649:7:54","typeDescriptions":{}}},"id":9768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9649:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9769,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9661:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9763,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"9621:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9621:48:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9771,"nodeType":"ExpressionStatement","src":"9621:48:54"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9724:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9774,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9716:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9773,"name":"address","nodeType":"ElementaryTypeName","src":"9716:7:54","typeDescriptions":{}}},"id":9776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9716:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9777,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9728:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9772,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"9707:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9707:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9779,"nodeType":"ExpressionStatement","src":"9707:29:54"},{"expression":{"id":9784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9780,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"9747:9:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9782,"indexExpression":{"id":9781,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"9757:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9747:16:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":9783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9767:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9747:21:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9785,"nodeType":"ExpressionStatement","src":"9747:21:54"},{"expression":{"id":9789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9778:23:54","subExpression":{"baseExpression":{"id":9786,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"9785:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9788,"indexExpression":{"id":9787,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9793:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9785:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9790,"nodeType":"ExpressionStatement","src":"9778:23:54"},{"eventCall":{"arguments":[{"id":9792,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"9826:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9841:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9793,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:54","typeDescriptions":{}}},"id":9796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9833:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9797,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9845:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9791,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10055,"src":"9817:8:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9817:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9799,"nodeType":"EmitStatement","src":"9812:41:54"},{"expression":{"arguments":[{"id":9801,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9757,"src":"9884:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":9804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9899:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9891:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9802,"name":"address","nodeType":"ElementaryTypeName","src":"9891:7:54","typeDescriptions":{}}},"id":9805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9891:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9806,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9753,"src":"9903:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9800,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10039,"src":"9864:19:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9864:47:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9808,"nodeType":"ExpressionStatement","src":"9864:47:54"}]},"documentation":{"id":9751,"nodeType":"StructuredDocumentation","src":"9301:206:54","text":" @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event."},"id":9810,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9521:5:54","nodeType":"FunctionDefinition","parameters":{"id":9754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9753,"mutability":"mutable","name":"tokenId","nameLocation":"9535:7:54","nodeType":"VariableDeclaration","scope":9810,"src":"9527:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9752,"name":"uint256","nodeType":"ElementaryTypeName","src":"9527:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9526:17:54"},"returnParameters":{"id":9755,"nodeType":"ParameterList","parameters":[],"src":"9561:0:54"},"scope":10040,"src":"9512:406:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9884,"nodeType":"Block","src":"10351:496:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9823,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10384:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9821,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"10369:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$10040_$","typeString":"type(contract ERC721)"}},"id":9822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"10369:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10369:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":9825,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9813,"src":"10396:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10369:31:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572","id":9827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10402:39:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""},"value":"ERC721: transfer from incorrect owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48","typeString":"literal_string \"ERC721: transfer from incorrect owner\""}],"id":9820,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10361:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10361:81:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9829,"nodeType":"ExpressionStatement","src":"10361:81:54"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9831,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10460:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":9834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10474:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10466:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9832,"name":"address","nodeType":"ElementaryTypeName","src":"10466:7:54","typeDescriptions":{}}},"id":9835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10466:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10460:16:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373","id":9837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10478:38:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""},"value":"ERC721: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4","typeString":"literal_string \"ERC721: transfer to the zero address\""}],"id":9830,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10452:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10452:65:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9839,"nodeType":"ExpressionStatement","src":"10452:65:54"},{"expression":{"arguments":[{"id":9841,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9813,"src":"10549:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9842,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10555:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9843,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10559:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9840,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10028,"src":"10528:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10528:39:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9845,"nodeType":"ExpressionStatement","src":"10528:39:54"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":9849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10646:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":9848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10638:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9847,"name":"address","nodeType":"ElementaryTypeName","src":"10638:7:54","typeDescriptions":{}}},"id":9850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10638:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9851,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10650:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9846,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9909,"src":"10629:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10629:29:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9853,"nodeType":"ExpressionStatement","src":"10629:29:54"},{"expression":{"id":9858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9854,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"10669:9:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9856,"indexExpression":{"id":9855,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9813,"src":"10679:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10669:15:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":9857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10688:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10669:20:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9859,"nodeType":"ExpressionStatement","src":"10669:20:54"},{"expression":{"id":9864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9860,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"10699:9:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":9862,"indexExpression":{"id":9861,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10709:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10699:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":9863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10716:1:54","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10699:18:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9865,"nodeType":"ExpressionStatement","src":"10699:18:54"},{"expression":{"id":9870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9866,"name":"_owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9205,"src":"10727:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9868,"indexExpression":{"id":9867,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10735:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10727:16:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9869,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10746:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10727:21:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9871,"nodeType":"ExpressionStatement","src":"10727:21:54"},{"eventCall":{"arguments":[{"id":9873,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9813,"src":"10773:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9874,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10779:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9875,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10783:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9872,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10055,"src":"10764:8:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10764:27:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9877,"nodeType":"EmitStatement","src":"10759:32:54"},{"expression":{"arguments":[{"id":9879,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9813,"src":"10822:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9880,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9815,"src":"10828:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9881,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"10832:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9878,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10039,"src":"10802:19:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10802:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9883,"nodeType":"ExpressionStatement","src":"10802:38:54"}]},"documentation":{"id":9811,"nodeType":"StructuredDocumentation","src":"9924:313:54","text":" @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event."},"id":9885,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"10251:9:54","nodeType":"FunctionDefinition","parameters":{"id":9818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9813,"mutability":"mutable","name":"from","nameLocation":"10278:4:54","nodeType":"VariableDeclaration","scope":9885,"src":"10270:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9812,"name":"address","nodeType":"ElementaryTypeName","src":"10270:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9815,"mutability":"mutable","name":"to","nameLocation":"10300:2:54","nodeType":"VariableDeclaration","scope":9885,"src":"10292:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9814,"name":"address","nodeType":"ElementaryTypeName","src":"10292:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9817,"mutability":"mutable","name":"tokenId","nameLocation":"10320:7:54","nodeType":"VariableDeclaration","scope":9885,"src":"10312:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9816,"name":"uint256","nodeType":"ElementaryTypeName","src":"10312:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10260:73:54"},"returnParameters":{"id":9819,"nodeType":"ParameterList","parameters":[],"src":"10351:0:54"},"scope":10040,"src":"10242:605:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9908,"nodeType":"Block","src":"11023:107:54","statements":[{"expression":{"id":9897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":9893,"name":"_tokenApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9213,"src":"11033:15:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":9895,"indexExpression":{"id":9894,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9890,"src":"11049:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11033:24:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9896,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"11060:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11033:29:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9898,"nodeType":"ExpressionStatement","src":"11033:29:54"},{"eventCall":{"arguments":[{"arguments":[{"id":9902,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9890,"src":"11101:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9900,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10040,"src":"11086:6:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC721_$10040_$","typeString":"type(contract ERC721)"}},"id":9901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"11086:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":9903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11086:23:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9904,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"11111:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9905,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9890,"src":"11115:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9899,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10064,"src":"11077:8:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":9906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11077:46:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9907,"nodeType":"EmitStatement","src":"11072:51:54"}]},"documentation":{"id":9886,"nodeType":"StructuredDocumentation","src":"10853:101:54","text":" @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event."},"id":9909,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10968:8:54","nodeType":"FunctionDefinition","parameters":{"id":9891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9888,"mutability":"mutable","name":"to","nameLocation":"10985:2:54","nodeType":"VariableDeclaration","scope":9909,"src":"10977:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9887,"name":"address","nodeType":"ElementaryTypeName","src":"10977:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9890,"mutability":"mutable","name":"tokenId","nameLocation":"10997:7:54","nodeType":"VariableDeclaration","scope":9909,"src":"10989:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9889,"name":"uint256","nodeType":"ElementaryTypeName","src":"10989:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10976:29:54"},"returnParameters":{"id":9892,"nodeType":"ParameterList","parameters":[],"src":"11023:0:54"},"scope":10040,"src":"10959:171:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9940,"nodeType":"Block","src":"11389:184:54","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":9922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9920,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9912,"src":"11407:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9921,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"11416:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11407:17:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20617070726f766520746f2063616c6c6572","id":9923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11426:27:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""},"value":"ERC721: approve to caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05","typeString":"literal_string \"ERC721: approve to caller\""}],"id":9919,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11399:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11399:55:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9925,"nodeType":"ExpressionStatement","src":"11399:55:54"},{"expression":{"id":9932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":9926,"name":"_operatorApprovals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9219,"src":"11464:18:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":9929,"indexExpression":{"id":9927,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9912,"src":"11483:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11464:25:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":9930,"indexExpression":{"id":9928,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"11490:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11464:35:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":9931,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9916,"src":"11502:8:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11464:46:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9933,"nodeType":"ExpressionStatement","src":"11464:46:54"},{"eventCall":{"arguments":[{"id":9935,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9912,"src":"11540:5:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9936,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9914,"src":"11547:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9937,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9916,"src":"11557:8:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9934,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10073,"src":"11525:14:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":9938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11525:41:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9939,"nodeType":"EmitStatement","src":"11520:46:54"}]},"documentation":{"id":9910,"nodeType":"StructuredDocumentation","src":"11136:125:54","text":" @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event."},"id":9941,"implemented":true,"kind":"function","modifiers":[],"name":"_setApprovalForAll","nameLocation":"11275:18:54","nodeType":"FunctionDefinition","parameters":{"id":9917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9912,"mutability":"mutable","name":"owner","nameLocation":"11311:5:54","nodeType":"VariableDeclaration","scope":9941,"src":"11303:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9911,"name":"address","nodeType":"ElementaryTypeName","src":"11303:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9914,"mutability":"mutable","name":"operator","nameLocation":"11334:8:54","nodeType":"VariableDeclaration","scope":9941,"src":"11326:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9913,"name":"address","nodeType":"ElementaryTypeName","src":"11326:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9916,"mutability":"mutable","name":"approved","nameLocation":"11357:8:54","nodeType":"VariableDeclaration","scope":9941,"src":"11352:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9915,"name":"bool","nodeType":"ElementaryTypeName","src":"11352:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11293:78:54"},"returnParameters":{"id":9918,"nodeType":"ParameterList","parameters":[],"src":"11389:0:54"},"scope":10040,"src":"11266:307:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":9954,"nodeType":"Block","src":"11720:70:54","statements":[{"expression":{"arguments":[{"arguments":[{"id":9949,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9944,"src":"11746:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9948,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9606,"src":"11738:7:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":9950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11738:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732313a20696e76616c696420746f6b656e204944","id":9951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11756:26:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""},"value":"ERC721: invalid token ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f","typeString":"literal_string \"ERC721: invalid token ID\""}],"id":9947,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11730:7:54","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11730:53:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9953,"nodeType":"ExpressionStatement","src":"11730:53:54"}]},"documentation":{"id":9942,"nodeType":"StructuredDocumentation","src":"11579:73:54","text":" @dev Reverts if the `tokenId` has not been minted yet."},"id":9955,"implemented":true,"kind":"function","modifiers":[],"name":"_requireMinted","nameLocation":"11666:14:54","nodeType":"FunctionDefinition","parameters":{"id":9945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9944,"mutability":"mutable","name":"tokenId","nameLocation":"11689:7:54","nodeType":"VariableDeclaration","scope":9955,"src":"11681:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9943,"name":"uint256","nodeType":"ElementaryTypeName","src":"11681:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11680:17:54"},"returnParameters":{"id":9946,"nodeType":"ParameterList","parameters":[],"src":"11720:0:54"},"scope":10040,"src":"11657:133:54","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":10016,"nodeType":"Block","src":"12497:676:54","statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":9969,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9960,"src":"12511:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":10219,"src":"12511:13:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":9971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12511:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10014,"nodeType":"Block","src":"13131:36:54","statements":[{"expression":{"hexValue":"74727565","id":10012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13152:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9968,"id":10013,"nodeType":"Return","src":"13145:11:54"}]},"id":10015,"nodeType":"IfStatement","src":"12507:660:54","trueBody":{"id":10011,"nodeType":"Block","src":"12528:597:54","statements":[{"clauses":[{"block":{"id":9991,"nodeType":"Block","src":"12642:91:54","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":9989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9985,"name":"retval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9983,"src":"12667:6:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":9986,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10174,"src":"12677:15:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$10174_$","typeString":"type(contract IERC721Receiver)"}},"id":9987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":10173,"src":"12677:32:54","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":9988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"12677:41:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"12667:51:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9968,"id":9990,"nodeType":"Return","src":"12660:58:54"}]},"errorName":"","id":9992,"nodeType":"TryCatchClause","parameters":{"id":9984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9983,"mutability":"mutable","name":"retval","nameLocation":"12634:6:54","nodeType":"VariableDeclaration","scope":9992,"src":"12627:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9982,"name":"bytes4","nodeType":"ElementaryTypeName","src":"12627:6:54","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"12626:15:54"},"src":"12618:115:54"},{"block":{"id":10008,"nodeType":"Block","src":"12762:353:54","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9996,"name":"reason","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9994,"src":"12784:6:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":9997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"12784:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":9998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12801:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12784:18:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10006,"nodeType":"Block","src":"12911:190:54","statements":[{"AST":{"nodeType":"YulBlock","src":"12997:86:54","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13034:2:54","type":"","value":"32"},{"name":"reason","nodeType":"YulIdentifier","src":"13038:6:54"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13030:3:54"},"nodeType":"YulFunctionCall","src":"13030:15:54"},{"arguments":[{"name":"reason","nodeType":"YulIdentifier","src":"13053:6:54"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13047:5:54"},"nodeType":"YulFunctionCall","src":"13047:13:54"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13023:6:54"},"nodeType":"YulFunctionCall","src":"13023:38:54"},"nodeType":"YulExpressionStatement","src":"13023:38:54"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":9994,"isOffset":false,"isSlot":false,"src":"13038:6:54","valueSize":1},{"declaration":9994,"isOffset":false,"isSlot":false,"src":"13053:6:54","valueSize":1}],"id":10005,"nodeType":"InlineAssembly","src":"12988:95:54"}]},"id":10007,"nodeType":"IfStatement","src":"12780:321:54","trueBody":{"id":10004,"nodeType":"Block","src":"12804:101:54","statements":[{"expression":{"arguments":[{"hexValue":"4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572","id":10001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12833:52:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""},"value":"ERC721: transfer to non ERC721Receiver implementer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e","typeString":"literal_string \"ERC721: transfer to non ERC721Receiver implementer\""}],"id":10000,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"12826:6:54","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":10002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12826:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10003,"nodeType":"ExpressionStatement","src":"12826:60:54"}]}}]},"errorName":"","id":10009,"nodeType":"TryCatchClause","parameters":{"id":9995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9994,"mutability":"mutable","name":"reason","nameLocation":"12754:6:54","nodeType":"VariableDeclaration","scope":10009,"src":"12741:19:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9993,"name":"bytes","nodeType":"ElementaryTypeName","src":"12741:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12740:21:54"},"src":"12734:381:54"}],"externalCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":9976,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"12583:10:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":9977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12583:12:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9978,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9958,"src":"12597:4:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9979,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9962,"src":"12603:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9980,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9964,"src":"12612:4:54","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":9973,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9960,"src":"12562:2:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9972,"name":"IERC721Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10174,"src":"12546:15:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721Receiver_$10174_$","typeString":"type(contract IERC721Receiver)"}},"id":9974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12546:19:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721Receiver_$10174","typeString":"contract IERC721Receiver"}},"id":9975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":10173,"src":"12546:36:54","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":9981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12546:71:54","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":10010,"nodeType":"TryStatement","src":"12542:573:54"}]}}]},"documentation":{"id":9956,"nodeType":"StructuredDocumentation","src":"11796:541:54","text":" @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value"},"id":10017,"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnERC721Received","nameLocation":"12351:22:54","nodeType":"FunctionDefinition","parameters":{"id":9965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9958,"mutability":"mutable","name":"from","nameLocation":"12391:4:54","nodeType":"VariableDeclaration","scope":10017,"src":"12383:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9957,"name":"address","nodeType":"ElementaryTypeName","src":"12383:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9960,"mutability":"mutable","name":"to","nameLocation":"12413:2:54","nodeType":"VariableDeclaration","scope":10017,"src":"12405:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9959,"name":"address","nodeType":"ElementaryTypeName","src":"12405:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9962,"mutability":"mutable","name":"tokenId","nameLocation":"12433:7:54","nodeType":"VariableDeclaration","scope":10017,"src":"12425:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9961,"name":"uint256","nodeType":"ElementaryTypeName","src":"12425:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9964,"mutability":"mutable","name":"data","nameLocation":"12463:4:54","nodeType":"VariableDeclaration","scope":10017,"src":"12450:17:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9963,"name":"bytes","nodeType":"ElementaryTypeName","src":"12450:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12373:100:54"},"returnParameters":{"id":9968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9967,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10017,"src":"12491:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9966,"name":"bool","nodeType":"ElementaryTypeName","src":"12491:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12490:6:54"},"scope":10040,"src":"12342:831:54","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10027,"nodeType":"Block","src":"13849:2:54","statements":[]},"documentation":{"id":10018,"nodeType":"StructuredDocumentation","src":"13179:545:54","text":" @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":10028,"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"13738:20:54","nodeType":"FunctionDefinition","parameters":{"id":10025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10020,"mutability":"mutable","name":"from","nameLocation":"13776:4:54","nodeType":"VariableDeclaration","scope":10028,"src":"13768:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10019,"name":"address","nodeType":"ElementaryTypeName","src":"13768:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10022,"mutability":"mutable","name":"to","nameLocation":"13798:2:54","nodeType":"VariableDeclaration","scope":10028,"src":"13790:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10021,"name":"address","nodeType":"ElementaryTypeName","src":"13790:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10024,"mutability":"mutable","name":"tokenId","nameLocation":"13818:7:54","nodeType":"VariableDeclaration","scope":10028,"src":"13810:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10023,"name":"uint256","nodeType":"ElementaryTypeName","src":"13810:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13758:73:54"},"returnParameters":{"id":10026,"nodeType":"ParameterList","parameters":[],"src":"13849:0:54"},"scope":10040,"src":"13729:122:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":10038,"nodeType":"Block","src":"14342:2:54","statements":[]},"documentation":{"id":10029,"nodeType":"StructuredDocumentation","src":"13857:361:54","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"id":10039,"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"14232:19:54","nodeType":"FunctionDefinition","parameters":{"id":10036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10031,"mutability":"mutable","name":"from","nameLocation":"14269:4:54","nodeType":"VariableDeclaration","scope":10039,"src":"14261:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10030,"name":"address","nodeType":"ElementaryTypeName","src":"14261:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10033,"mutability":"mutable","name":"to","nameLocation":"14291:2:54","nodeType":"VariableDeclaration","scope":10039,"src":"14283:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10032,"name":"address","nodeType":"ElementaryTypeName","src":"14283:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10035,"mutability":"mutable","name":"tokenId","nameLocation":"14311:7:54","nodeType":"VariableDeclaration","scope":10039,"src":"14303:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10034,"name":"uint256","nodeType":"ElementaryTypeName","src":"14303:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14251:73:54"},"returnParameters":{"id":10037,"nodeType":"ParameterList","parameters":[],"src":"14342:0:54"},"scope":10040,"src":"14223:121:54","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":10041,"src":"628:13718:54"}],"src":"107:14240:54"},"id":54},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","exportedSymbols":{"IERC165":[10840],"IERC721":[10156]},"id":10157,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10042,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"108:23:55"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"../../utils/introspection/IERC165.sol","id":10043,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10157,"sourceUnit":10841,"src":"133:47:55","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10045,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":10840,"src":"271:7:55"},"id":10046,"nodeType":"InheritanceSpecifier","src":"271:7:55"}],"contractDependencies":[10840],"contractKind":"interface","documentation":{"id":10044,"nodeType":"StructuredDocumentation","src":"182:67:55","text":" @dev Required interface of an ERC721 compliant contract."},"fullyImplemented":false,"id":10156,"linearizedBaseContracts":[10156,10840],"name":"IERC721","nameLocation":"260:7:55","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":10047,"nodeType":"StructuredDocumentation","src":"285:88:55","text":" @dev Emitted when `tokenId` token is transferred from `from` to `to`."},"id":10055,"name":"Transfer","nameLocation":"384:8:55","nodeType":"EventDefinition","parameters":{"id":10054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10049,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"409:4:55","nodeType":"VariableDeclaration","scope":10055,"src":"393:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10048,"name":"address","nodeType":"ElementaryTypeName","src":"393:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10051,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"431:2:55","nodeType":"VariableDeclaration","scope":10055,"src":"415:18:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10050,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10053,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"451:7:55","nodeType":"VariableDeclaration","scope":10055,"src":"435:23:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10052,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"392:67:55"},"src":"378:82:55"},{"anonymous":false,"documentation":{"id":10056,"nodeType":"StructuredDocumentation","src":"466:94:55","text":" @dev Emitted when `owner` enables `approved` to manage the `tokenId` token."},"id":10064,"name":"Approval","nameLocation":"571:8:55","nodeType":"EventDefinition","parameters":{"id":10063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10058,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"596:5:55","nodeType":"VariableDeclaration","scope":10064,"src":"580:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10057,"name":"address","nodeType":"ElementaryTypeName","src":"580:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10060,"indexed":true,"mutability":"mutable","name":"approved","nameLocation":"619:8:55","nodeType":"VariableDeclaration","scope":10064,"src":"603:24:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10059,"name":"address","nodeType":"ElementaryTypeName","src":"603:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10062,"indexed":true,"mutability":"mutable","name":"tokenId","nameLocation":"645:7:55","nodeType":"VariableDeclaration","scope":10064,"src":"629:23:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10061,"name":"uint256","nodeType":"ElementaryTypeName","src":"629:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"579:74:55"},"src":"565:89:55"},{"anonymous":false,"documentation":{"id":10065,"nodeType":"StructuredDocumentation","src":"660:117:55","text":" @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets."},"id":10073,"name":"ApprovalForAll","nameLocation":"788:14:55","nodeType":"EventDefinition","parameters":{"id":10072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10067,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"819:5:55","nodeType":"VariableDeclaration","scope":10073,"src":"803:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10066,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10069,"indexed":true,"mutability":"mutable","name":"operator","nameLocation":"842:8:55","nodeType":"VariableDeclaration","scope":10073,"src":"826:24:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10068,"name":"address","nodeType":"ElementaryTypeName","src":"826:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10071,"indexed":false,"mutability":"mutable","name":"approved","nameLocation":"857:8:55","nodeType":"VariableDeclaration","scope":10073,"src":"852:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10070,"name":"bool","nodeType":"ElementaryTypeName","src":"852:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"802:64:55"},"src":"782:85:55"},{"documentation":{"id":10074,"nodeType":"StructuredDocumentation","src":"873:76:55","text":" @dev Returns the number of tokens in ``owner``'s account."},"functionSelector":"70a08231","id":10081,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"963:9:55","nodeType":"FunctionDefinition","parameters":{"id":10077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10076,"mutability":"mutable","name":"owner","nameLocation":"981:5:55","nodeType":"VariableDeclaration","scope":10081,"src":"973:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10075,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"972:15:55"},"returnParameters":{"id":10080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10079,"mutability":"mutable","name":"balance","nameLocation":"1019:7:55","nodeType":"VariableDeclaration","scope":10081,"src":"1011:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10078,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1010:17:55"},"scope":10156,"src":"954:74:55","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10082,"nodeType":"StructuredDocumentation","src":"1034:131:55","text":" @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"6352211e","id":10089,"implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1179:7:55","nodeType":"FunctionDefinition","parameters":{"id":10085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10084,"mutability":"mutable","name":"tokenId","nameLocation":"1195:7:55","nodeType":"VariableDeclaration","scope":10089,"src":"1187:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10083,"name":"uint256","nodeType":"ElementaryTypeName","src":"1187:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1186:17:55"},"returnParameters":{"id":10088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10087,"mutability":"mutable","name":"owner","nameLocation":"1235:5:55","nodeType":"VariableDeclaration","scope":10089,"src":"1227:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10086,"name":"address","nodeType":"ElementaryTypeName","src":"1227:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1226:15:55"},"scope":10156,"src":"1170:72:55","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10090,"nodeType":"StructuredDocumentation","src":"1248:556:55","text":" @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"b88d4fde","id":10101,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1818:16:55","nodeType":"FunctionDefinition","parameters":{"id":10099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10092,"mutability":"mutable","name":"from","nameLocation":"1852:4:55","nodeType":"VariableDeclaration","scope":10101,"src":"1844:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10091,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10094,"mutability":"mutable","name":"to","nameLocation":"1874:2:55","nodeType":"VariableDeclaration","scope":10101,"src":"1866:10:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10093,"name":"address","nodeType":"ElementaryTypeName","src":"1866:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10096,"mutability":"mutable","name":"tokenId","nameLocation":"1894:7:55","nodeType":"VariableDeclaration","scope":10101,"src":"1886:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10098,"mutability":"mutable","name":"data","nameLocation":"1926:4:55","nodeType":"VariableDeclaration","scope":10101,"src":"1911:19:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10097,"name":"bytes","nodeType":"ElementaryTypeName","src":"1911:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1834:102:55"},"returnParameters":{"id":10100,"nodeType":"ParameterList","parameters":[],"src":"1945:0:55"},"scope":10156,"src":"1809:137:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":10102,"nodeType":"StructuredDocumentation","src":"1952:687:55","text":" @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event."},"functionSelector":"42842e0e","id":10111,"implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2653:16:55","nodeType":"FunctionDefinition","parameters":{"id":10109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10104,"mutability":"mutable","name":"from","nameLocation":"2687:4:55","nodeType":"VariableDeclaration","scope":10111,"src":"2679:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10103,"name":"address","nodeType":"ElementaryTypeName","src":"2679:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10106,"mutability":"mutable","name":"to","nameLocation":"2709:2:55","nodeType":"VariableDeclaration","scope":10111,"src":"2701:10:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10105,"name":"address","nodeType":"ElementaryTypeName","src":"2701:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10108,"mutability":"mutable","name":"tokenId","nameLocation":"2729:7:55","nodeType":"VariableDeclaration","scope":10111,"src":"2721:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10107,"name":"uint256","nodeType":"ElementaryTypeName","src":"2721:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2669:73:55"},"returnParameters":{"id":10110,"nodeType":"ParameterList","parameters":[],"src":"2751:0:55"},"scope":10156,"src":"2644:108:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":10112,"nodeType":"StructuredDocumentation","src":"2758:504:55","text":" @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":10121,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3276:12:55","nodeType":"FunctionDefinition","parameters":{"id":10119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10114,"mutability":"mutable","name":"from","nameLocation":"3306:4:55","nodeType":"VariableDeclaration","scope":10121,"src":"3298:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10113,"name":"address","nodeType":"ElementaryTypeName","src":"3298:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10116,"mutability":"mutable","name":"to","nameLocation":"3328:2:55","nodeType":"VariableDeclaration","scope":10121,"src":"3320:10:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10115,"name":"address","nodeType":"ElementaryTypeName","src":"3320:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10118,"mutability":"mutable","name":"tokenId","nameLocation":"3348:7:55","nodeType":"VariableDeclaration","scope":10121,"src":"3340:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10117,"name":"uint256","nodeType":"ElementaryTypeName","src":"3340:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3288:73:55"},"returnParameters":{"id":10120,"nodeType":"ParameterList","parameters":[],"src":"3370:0:55"},"scope":10156,"src":"3267:104:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":10122,"nodeType":"StructuredDocumentation","src":"3377:452:55","text":" @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":10129,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3843:7:55","nodeType":"FunctionDefinition","parameters":{"id":10127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10124,"mutability":"mutable","name":"to","nameLocation":"3859:2:55","nodeType":"VariableDeclaration","scope":10129,"src":"3851:10:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10123,"name":"address","nodeType":"ElementaryTypeName","src":"3851:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10126,"mutability":"mutable","name":"tokenId","nameLocation":"3871:7:55","nodeType":"VariableDeclaration","scope":10129,"src":"3863:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10125,"name":"uint256","nodeType":"ElementaryTypeName","src":"3863:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3850:29:55"},"returnParameters":{"id":10128,"nodeType":"ParameterList","parameters":[],"src":"3888:0:55"},"scope":10156,"src":"3834:55:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":10130,"nodeType":"StructuredDocumentation","src":"3895:309:55","text":" @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event."},"functionSelector":"a22cb465","id":10137,"implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4218:17:55","nodeType":"FunctionDefinition","parameters":{"id":10135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10132,"mutability":"mutable","name":"operator","nameLocation":"4244:8:55","nodeType":"VariableDeclaration","scope":10137,"src":"4236:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10131,"name":"address","nodeType":"ElementaryTypeName","src":"4236:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10134,"mutability":"mutable","name":"_approved","nameLocation":"4259:9:55","nodeType":"VariableDeclaration","scope":10137,"src":"4254:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10133,"name":"bool","nodeType":"ElementaryTypeName","src":"4254:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4235:34:55"},"returnParameters":{"id":10136,"nodeType":"ParameterList","parameters":[],"src":"4278:0:55"},"scope":10156,"src":"4209:70:55","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":10138,"nodeType":"StructuredDocumentation","src":"4285:139:55","text":" @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist."},"functionSelector":"081812fc","id":10145,"implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"4438:11:55","nodeType":"FunctionDefinition","parameters":{"id":10141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10140,"mutability":"mutable","name":"tokenId","nameLocation":"4458:7:55","nodeType":"VariableDeclaration","scope":10145,"src":"4450:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10139,"name":"uint256","nodeType":"ElementaryTypeName","src":"4450:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4449:17:55"},"returnParameters":{"id":10144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10143,"mutability":"mutable","name":"operator","nameLocation":"4498:8:55","nodeType":"VariableDeclaration","scope":10145,"src":"4490:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10142,"name":"address","nodeType":"ElementaryTypeName","src":"4490:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4489:18:55"},"scope":10156,"src":"4429:79:55","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10146,"nodeType":"StructuredDocumentation","src":"4514:138:55","text":" @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}"},"functionSelector":"e985e9c5","id":10155,"implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"4666:16:55","nodeType":"FunctionDefinition","parameters":{"id":10151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10148,"mutability":"mutable","name":"owner","nameLocation":"4691:5:55","nodeType":"VariableDeclaration","scope":10155,"src":"4683:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10147,"name":"address","nodeType":"ElementaryTypeName","src":"4683:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10150,"mutability":"mutable","name":"operator","nameLocation":"4706:8:55","nodeType":"VariableDeclaration","scope":10155,"src":"4698:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10149,"name":"address","nodeType":"ElementaryTypeName","src":"4698:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4682:33:55"},"returnParameters":{"id":10154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10155,"src":"4739:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10152,"name":"bool","nodeType":"ElementaryTypeName","src":"4739:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4738:6:55"},"scope":10156,"src":"4657:88:55","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":10157,"src":"250:4497:55"}],"src":"108:4640:55"},"id":55},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol","exportedSymbols":{"IERC721Receiver":[10174]},"id":10175,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10158,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"116:23:56"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":10159,"nodeType":"StructuredDocumentation","src":"141:152:56","text":" @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."},"fullyImplemented":false,"id":10174,"linearizedBaseContracts":[10174],"name":"IERC721Receiver","nameLocation":"304:15:56","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10160,"nodeType":"StructuredDocumentation","src":"326:493:56","text":" @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."},"functionSelector":"150b7a02","id":10173,"implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"833:16:56","nodeType":"FunctionDefinition","parameters":{"id":10169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10162,"mutability":"mutable","name":"operator","nameLocation":"867:8:56","nodeType":"VariableDeclaration","scope":10173,"src":"859:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10161,"name":"address","nodeType":"ElementaryTypeName","src":"859:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10164,"mutability":"mutable","name":"from","nameLocation":"893:4:56","nodeType":"VariableDeclaration","scope":10173,"src":"885:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10163,"name":"address","nodeType":"ElementaryTypeName","src":"885:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10166,"mutability":"mutable","name":"tokenId","nameLocation":"915:7:56","nodeType":"VariableDeclaration","scope":10173,"src":"907:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10165,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10168,"mutability":"mutable","name":"data","nameLocation":"947:4:56","nodeType":"VariableDeclaration","scope":10173,"src":"932:19:56","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10167,"name":"bytes","nodeType":"ElementaryTypeName","src":"932:5:56","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"849:108:56"},"returnParameters":{"id":10172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10173,"src":"976:6:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10170,"name":"bytes4","nodeType":"ElementaryTypeName","src":"976:6:56","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"975:8:56"},"scope":10174,"src":"824:160:56","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":10175,"src":"294:692:56"}],"src":"116:871:56"},"id":56},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol","exportedSymbols":{"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201]},"id":10202,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10176,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"112:23:57"},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"../IERC721.sol","id":10177,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10202,"sourceUnit":10157,"src":"137:24:57","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":10179,"name":"IERC721","nodeType":"IdentifierPath","referencedDeclaration":10156,"src":"326:7:57"},"id":10180,"nodeType":"InheritanceSpecifier","src":"326:7:57"}],"contractDependencies":[10156,10840],"contractKind":"interface","documentation":{"id":10178,"nodeType":"StructuredDocumentation","src":"163:133:57","text":" @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721"},"fullyImplemented":false,"id":10201,"linearizedBaseContracts":[10201,10156,10840],"name":"IERC721Metadata","nameLocation":"307:15:57","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10181,"nodeType":"StructuredDocumentation","src":"340:58:57","text":" @dev Returns the token collection name."},"functionSelector":"06fdde03","id":10186,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"412:4:57","nodeType":"FunctionDefinition","parameters":{"id":10182,"nodeType":"ParameterList","parameters":[],"src":"416:2:57"},"returnParameters":{"id":10185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10186,"src":"442:13:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10183,"name":"string","nodeType":"ElementaryTypeName","src":"442:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"441:15:57"},"scope":10201,"src":"403:54:57","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10187,"nodeType":"StructuredDocumentation","src":"463:60:57","text":" @dev Returns the token collection symbol."},"functionSelector":"95d89b41","id":10192,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"537:6:57","nodeType":"FunctionDefinition","parameters":{"id":10188,"nodeType":"ParameterList","parameters":[],"src":"543:2:57"},"returnParameters":{"id":10191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10190,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10192,"src":"569:13:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10189,"name":"string","nodeType":"ElementaryTypeName","src":"569:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"568:15:57"},"scope":10201,"src":"528:56:57","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":10193,"nodeType":"StructuredDocumentation","src":"590:90:57","text":" @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"functionSelector":"c87b56dd","id":10200,"implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"694:8:57","nodeType":"FunctionDefinition","parameters":{"id":10196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10195,"mutability":"mutable","name":"tokenId","nameLocation":"711:7:57","nodeType":"VariableDeclaration","scope":10200,"src":"703:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10194,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:17:57"},"returnParameters":{"id":10199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10200,"src":"743:13:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10197,"name":"string","nodeType":"ElementaryTypeName","src":"743:6:57","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"742:15:57"},"scope":10201,"src":"685:73:57","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":10202,"src":"297:463:57"}],"src":"112:649:57"},"id":57},"@openzeppelin/contracts/utils/Address.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Address.sol","exportedSymbols":{"Address":[10496]},"id":10497,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10203,"literals":["solidity","^","0.8",".1"],"nodeType":"PragmaDirective","src":"101:23:58"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":10204,"nodeType":"StructuredDocumentation","src":"126:67:58","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"id":10496,"linearizedBaseContracts":[10496],"name":"Address","nameLocation":"202:7:58","nodeType":"ContractDefinition","nodes":[{"body":{"id":10218,"nodeType":"Block","src":"1241:254:58","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10212,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10207,"src":"1465:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1465:12:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1465:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1465:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10211,"id":10217,"nodeType":"Return","src":"1458:30:58"}]},"documentation":{"id":10205,"nodeType":"StructuredDocumentation","src":"216:954:58","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"id":10219,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1184:10:58","nodeType":"FunctionDefinition","parameters":{"id":10208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10207,"mutability":"mutable","name":"account","nameLocation":"1203:7:58","nodeType":"VariableDeclaration","scope":10219,"src":"1195:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10206,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:17:58"},"returnParameters":{"id":10211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10219,"src":"1235:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10209,"name":"bool","nodeType":"ElementaryTypeName","src":"1235:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:6:58"},"scope":10496,"src":"1175:320:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10252,"nodeType":"Block","src":"2483:241:58","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":10230,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"2509:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$10496","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$10496","typeString":"library Address"}],"id":10229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2501:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10228,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:58","typeDescriptions":{}}},"id":10231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2501:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"2501:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":10233,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10224,"src":"2526:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2501:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":10235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2534:31:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":10227,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2493:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2493:73:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10237,"nodeType":"ExpressionStatement","src":"2493:73:58"},{"assignments":[10239,null],"declarations":[{"constant":false,"id":10239,"mutability":"mutable","name":"success","nameLocation":"2583:7:58","nodeType":"VariableDeclaration","scope":10252,"src":"2578:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10238,"name":"bool","nodeType":"ElementaryTypeName","src":"2578:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":10246,"initialValue":{"arguments":[{"hexValue":"","id":10244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2626:2:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":10240,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10222,"src":"2596:9:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":10241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"2596:14:58","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":10243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":10242,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10224,"src":"2618:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2596:29:58","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":10245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2596:33:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2577:52:58"},{"expression":{"arguments":[{"id":10248,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10239,"src":"2647:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":10249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2656:60:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":10247,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2639:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2639:78:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10251,"nodeType":"ExpressionStatement","src":"2639:78:58"}]},"documentation":{"id":10220,"nodeType":"StructuredDocumentation","src":"1501:906:58","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"id":10253,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2421:9:58","nodeType":"FunctionDefinition","parameters":{"id":10225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10222,"mutability":"mutable","name":"recipient","nameLocation":"2447:9:58","nodeType":"VariableDeclaration","scope":10253,"src":"2431:25:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":10221,"name":"address","nodeType":"ElementaryTypeName","src":"2431:15:58","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":10224,"mutability":"mutable","name":"amount","nameLocation":"2466:6:58","nodeType":"VariableDeclaration","scope":10253,"src":"2458:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10223,"name":"uint256","nodeType":"ElementaryTypeName","src":"2458:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:43:58"},"returnParameters":{"id":10226,"nodeType":"ParameterList","parameters":[],"src":"2483:0:58"},"scope":10496,"src":"2412:312:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10269,"nodeType":"Block","src":"3555:84:58","statements":[{"expression":{"arguments":[{"id":10264,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10256,"src":"3585:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10265,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10258,"src":"3593:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":10266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3599:32:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":10263,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[10270,10290],"referencedDeclaration":10290,"src":"3572:12:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":10267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3572:60:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10262,"id":10268,"nodeType":"Return","src":"3565:67:58"}]},"documentation":{"id":10254,"nodeType":"StructuredDocumentation","src":"2730:731:58","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"id":10270,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3475:12:58","nodeType":"FunctionDefinition","parameters":{"id":10259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10256,"mutability":"mutable","name":"target","nameLocation":"3496:6:58","nodeType":"VariableDeclaration","scope":10270,"src":"3488:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10255,"name":"address","nodeType":"ElementaryTypeName","src":"3488:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10258,"mutability":"mutable","name":"data","nameLocation":"3517:4:58","nodeType":"VariableDeclaration","scope":10270,"src":"3504:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10257,"name":"bytes","nodeType":"ElementaryTypeName","src":"3504:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3487:35:58"},"returnParameters":{"id":10262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10270,"src":"3541:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10260,"name":"bytes","nodeType":"ElementaryTypeName","src":"3541:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:14:58"},"scope":10496,"src":"3466:173:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10289,"nodeType":"Block","src":"4008:76:58","statements":[{"expression":{"arguments":[{"id":10283,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10273,"src":"4047:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10284,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10275,"src":"4055:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":10285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4061:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":10286,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10277,"src":"4064:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10282,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[10310,10360],"referencedDeclaration":10360,"src":"4025:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":10287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4025:52:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10281,"id":10288,"nodeType":"Return","src":"4018:59:58"}]},"documentation":{"id":10271,"nodeType":"StructuredDocumentation","src":"3645:211:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":10290,"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3870:12:58","nodeType":"FunctionDefinition","parameters":{"id":10278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10273,"mutability":"mutable","name":"target","nameLocation":"3900:6:58","nodeType":"VariableDeclaration","scope":10290,"src":"3892:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10272,"name":"address","nodeType":"ElementaryTypeName","src":"3892:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10275,"mutability":"mutable","name":"data","nameLocation":"3929:4:58","nodeType":"VariableDeclaration","scope":10290,"src":"3916:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10274,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10277,"mutability":"mutable","name":"errorMessage","nameLocation":"3957:12:58","nodeType":"VariableDeclaration","scope":10290,"src":"3943:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10276,"name":"string","nodeType":"ElementaryTypeName","src":"3943:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3882:93:58"},"returnParameters":{"id":10281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10290,"src":"3994:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10279,"name":"bytes","nodeType":"ElementaryTypeName","src":"3994:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3993:14:58"},"scope":10496,"src":"3861:223:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10309,"nodeType":"Block","src":"4589:111:58","statements":[{"expression":{"arguments":[{"id":10303,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10293,"src":"4628:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10304,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10295,"src":"4636:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10305,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10297,"src":"4642:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":10306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4649:43:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":10302,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[10310,10360],"referencedDeclaration":10360,"src":"4606:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":10307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4606:87:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10301,"id":10308,"nodeType":"Return","src":"4599:94:58"}]},"documentation":{"id":10291,"nodeType":"StructuredDocumentation","src":"4090:351:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"id":10310,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4455:21:58","nodeType":"FunctionDefinition","parameters":{"id":10298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10293,"mutability":"mutable","name":"target","nameLocation":"4494:6:58","nodeType":"VariableDeclaration","scope":10310,"src":"4486:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10292,"name":"address","nodeType":"ElementaryTypeName","src":"4486:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10295,"mutability":"mutable","name":"data","nameLocation":"4523:4:58","nodeType":"VariableDeclaration","scope":10310,"src":"4510:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10294,"name":"bytes","nodeType":"ElementaryTypeName","src":"4510:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10297,"mutability":"mutable","name":"value","nameLocation":"4545:5:58","nodeType":"VariableDeclaration","scope":10310,"src":"4537:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10296,"name":"uint256","nodeType":"ElementaryTypeName","src":"4537:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4476:80:58"},"returnParameters":{"id":10301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10310,"src":"4575:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10299,"name":"bytes","nodeType":"ElementaryTypeName","src":"4575:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4574:14:58"},"scope":10496,"src":"4446:254:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10359,"nodeType":"Block","src":"5127:320:58","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":10327,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"5153:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$10496","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$10496","typeString":"library Address"}],"id":10326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5145:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10325,"name":"address","nodeType":"ElementaryTypeName","src":"5145:7:58","typeDescriptions":{}}},"id":10328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5145:13:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","src":"5145:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":10330,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10317,"src":"5170:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5145:30:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":10332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5177:40:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":10324,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5137:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5137:81:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10334,"nodeType":"ExpressionStatement","src":"5137:81:58"},{"expression":{"arguments":[{"arguments":[{"id":10337,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10313,"src":"5247:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10336,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10219,"src":"5236:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":10338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5236:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":10339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5256:31:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":10335,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5228:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5228:60:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10341,"nodeType":"ExpressionStatement","src":"5228:60:58"},{"assignments":[10343,10345],"declarations":[{"constant":false,"id":10343,"mutability":"mutable","name":"success","nameLocation":"5305:7:58","nodeType":"VariableDeclaration","scope":10359,"src":"5300:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10342,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10345,"mutability":"mutable","name":"returndata","nameLocation":"5327:10:58","nodeType":"VariableDeclaration","scope":10359,"src":"5314:23:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10344,"name":"bytes","nodeType":"ElementaryTypeName","src":"5314:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10352,"initialValue":{"arguments":[{"id":10350,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10315,"src":"5367:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10346,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10313,"src":"5341:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"5341:11:58","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":10348,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10317,"src":"5360:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5341:25:58","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":10351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5341:31:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5299:73:58"},{"expression":{"arguments":[{"id":10354,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10343,"src":"5406:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10355,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10345,"src":"5415:10:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10356,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10319,"src":"5427:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10353,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10495,"src":"5389:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":10357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5389:51:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10323,"id":10358,"nodeType":"Return","src":"5382:58:58"}]},"documentation":{"id":10311,"nodeType":"StructuredDocumentation","src":"4706:237:58","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"id":10360,"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4957:21:58","nodeType":"FunctionDefinition","parameters":{"id":10320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10313,"mutability":"mutable","name":"target","nameLocation":"4996:6:58","nodeType":"VariableDeclaration","scope":10360,"src":"4988:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10312,"name":"address","nodeType":"ElementaryTypeName","src":"4988:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10315,"mutability":"mutable","name":"data","nameLocation":"5025:4:58","nodeType":"VariableDeclaration","scope":10360,"src":"5012:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10314,"name":"bytes","nodeType":"ElementaryTypeName","src":"5012:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10317,"mutability":"mutable","name":"value","nameLocation":"5047:5:58","nodeType":"VariableDeclaration","scope":10360,"src":"5039:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10316,"name":"uint256","nodeType":"ElementaryTypeName","src":"5039:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10319,"mutability":"mutable","name":"errorMessage","nameLocation":"5076:12:58","nodeType":"VariableDeclaration","scope":10360,"src":"5062:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10318,"name":"string","nodeType":"ElementaryTypeName","src":"5062:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4978:116:58"},"returnParameters":{"id":10323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10360,"src":"5113:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10321,"name":"bytes","nodeType":"ElementaryTypeName","src":"5113:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5112:14:58"},"scope":10496,"src":"4948:499:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10376,"nodeType":"Block","src":"5724:97:58","statements":[{"expression":{"arguments":[{"id":10371,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10363,"src":"5760:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10372,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10365,"src":"5768:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":10373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5774:39:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":10370,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[10377,10412],"referencedDeclaration":10412,"src":"5741:18:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":10374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5741:73:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10369,"id":10375,"nodeType":"Return","src":"5734:80:58"}]},"documentation":{"id":10361,"nodeType":"StructuredDocumentation","src":"5453:166:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":10377,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5633:18:58","nodeType":"FunctionDefinition","parameters":{"id":10366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10363,"mutability":"mutable","name":"target","nameLocation":"5660:6:58","nodeType":"VariableDeclaration","scope":10377,"src":"5652:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10362,"name":"address","nodeType":"ElementaryTypeName","src":"5652:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10365,"mutability":"mutable","name":"data","nameLocation":"5681:4:58","nodeType":"VariableDeclaration","scope":10377,"src":"5668:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10364,"name":"bytes","nodeType":"ElementaryTypeName","src":"5668:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5651:35:58"},"returnParameters":{"id":10369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10377,"src":"5710:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10367,"name":"bytes","nodeType":"ElementaryTypeName","src":"5710:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5709:14:58"},"scope":10496,"src":"5624:197:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10411,"nodeType":"Block","src":"6163:228:58","statements":[{"expression":{"arguments":[{"arguments":[{"id":10391,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10380,"src":"6192:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10390,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10219,"src":"6181:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":10392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6181:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":10393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6201:38:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""},"value":"Address: static call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""}],"id":10389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6173:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6173:67:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10395,"nodeType":"ExpressionStatement","src":"6173:67:58"},{"assignments":[10397,10399],"declarations":[{"constant":false,"id":10397,"mutability":"mutable","name":"success","nameLocation":"6257:7:58","nodeType":"VariableDeclaration","scope":10411,"src":"6252:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10396,"name":"bool","nodeType":"ElementaryTypeName","src":"6252:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10399,"mutability":"mutable","name":"returndata","nameLocation":"6279:10:58","nodeType":"VariableDeclaration","scope":10411,"src":"6266:23:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10398,"name":"bytes","nodeType":"ElementaryTypeName","src":"6266:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10404,"initialValue":{"arguments":[{"id":10402,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10382,"src":"6311:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10400,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10380,"src":"6293:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staticcall","nodeType":"MemberAccess","src":"6293:17:58","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":10403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6293:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6251:65:58"},{"expression":{"arguments":[{"id":10406,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10397,"src":"6350:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10407,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10399,"src":"6359:10:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10408,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10384,"src":"6371:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10405,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10495,"src":"6333:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":10409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6333:51:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10388,"id":10410,"nodeType":"Return","src":"6326:58:58"}]},"documentation":{"id":10378,"nodeType":"StructuredDocumentation","src":"5827:173:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"id":10412,"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6014:18:58","nodeType":"FunctionDefinition","parameters":{"id":10385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10380,"mutability":"mutable","name":"target","nameLocation":"6050:6:58","nodeType":"VariableDeclaration","scope":10412,"src":"6042:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10379,"name":"address","nodeType":"ElementaryTypeName","src":"6042:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10382,"mutability":"mutable","name":"data","nameLocation":"6079:4:58","nodeType":"VariableDeclaration","scope":10412,"src":"6066:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10381,"name":"bytes","nodeType":"ElementaryTypeName","src":"6066:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10384,"mutability":"mutable","name":"errorMessage","nameLocation":"6107:12:58","nodeType":"VariableDeclaration","scope":10412,"src":"6093:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10383,"name":"string","nodeType":"ElementaryTypeName","src":"6093:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6032:93:58"},"returnParameters":{"id":10388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10412,"src":"6149:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10386,"name":"bytes","nodeType":"ElementaryTypeName","src":"6149:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6148:14:58"},"scope":10496,"src":"6005:386:58","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":10428,"nodeType":"Block","src":"6667:101:58","statements":[{"expression":{"arguments":[{"id":10423,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10415,"src":"6705:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10424,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10417,"src":"6713:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":10425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6719:41:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":10422,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[10429,10464],"referencedDeclaration":10464,"src":"6684:20:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":10426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6684:77:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10421,"id":10427,"nodeType":"Return","src":"6677:84:58"}]},"documentation":{"id":10413,"nodeType":"StructuredDocumentation","src":"6397:168:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":10429,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6579:20:58","nodeType":"FunctionDefinition","parameters":{"id":10418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10415,"mutability":"mutable","name":"target","nameLocation":"6608:6:58","nodeType":"VariableDeclaration","scope":10429,"src":"6600:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10414,"name":"address","nodeType":"ElementaryTypeName","src":"6600:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10417,"mutability":"mutable","name":"data","nameLocation":"6629:4:58","nodeType":"VariableDeclaration","scope":10429,"src":"6616:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10416,"name":"bytes","nodeType":"ElementaryTypeName","src":"6616:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6599:35:58"},"returnParameters":{"id":10421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10429,"src":"6653:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10419,"name":"bytes","nodeType":"ElementaryTypeName","src":"6653:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6652:14:58"},"scope":10496,"src":"6570:198:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10463,"nodeType":"Block","src":"7109:232:58","statements":[{"expression":{"arguments":[{"arguments":[{"id":10443,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10432,"src":"7138:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10442,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10219,"src":"7127:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":10444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7127:18:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":10445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7147:40:58","typeDescriptions":{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""},"value":"Address: delegate call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""}],"id":10441,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7119:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7119:69:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10447,"nodeType":"ExpressionStatement","src":"7119:69:58"},{"assignments":[10449,10451],"declarations":[{"constant":false,"id":10449,"mutability":"mutable","name":"success","nameLocation":"7205:7:58","nodeType":"VariableDeclaration","scope":10463,"src":"7200:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10448,"name":"bool","nodeType":"ElementaryTypeName","src":"7200:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10451,"mutability":"mutable","name":"returndata","nameLocation":"7227:10:58","nodeType":"VariableDeclaration","scope":10463,"src":"7214:23:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10450,"name":"bytes","nodeType":"ElementaryTypeName","src":"7214:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10456,"initialValue":{"arguments":[{"id":10454,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10434,"src":"7261:4:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10452,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10432,"src":"7241:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"7241:19:58","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":10455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7241:25:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7199:67:58"},{"expression":{"arguments":[{"id":10458,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10449,"src":"7300:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10459,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10451,"src":"7309:10:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":10460,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10436,"src":"7321:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10457,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10495,"src":"7283:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":10461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7283:51:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10440,"id":10462,"nodeType":"Return","src":"7276:58:58"}]},"documentation":{"id":10430,"nodeType":"StructuredDocumentation","src":"6774:175:58","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"id":10464,"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6963:20:58","nodeType":"FunctionDefinition","parameters":{"id":10437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10432,"mutability":"mutable","name":"target","nameLocation":"7001:6:58","nodeType":"VariableDeclaration","scope":10464,"src":"6993:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10431,"name":"address","nodeType":"ElementaryTypeName","src":"6993:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10434,"mutability":"mutable","name":"data","nameLocation":"7030:4:58","nodeType":"VariableDeclaration","scope":10464,"src":"7017:17:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10433,"name":"bytes","nodeType":"ElementaryTypeName","src":"7017:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10436,"mutability":"mutable","name":"errorMessage","nameLocation":"7058:12:58","nodeType":"VariableDeclaration","scope":10464,"src":"7044:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10435,"name":"string","nodeType":"ElementaryTypeName","src":"7044:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6983:93:58"},"returnParameters":{"id":10440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10464,"src":"7095:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10438,"name":"bytes","nodeType":"ElementaryTypeName","src":"7095:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7094:14:58"},"scope":10496,"src":"6954:387:58","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":10494,"nodeType":"Block","src":"7721:582:58","statements":[{"condition":{"id":10476,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10467,"src":"7735:7:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10492,"nodeType":"Block","src":"7792:505:58","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":10480,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10469,"src":"7876:10:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7876:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":10482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:1:58","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7876:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10490,"nodeType":"Block","src":"8234:53:58","statements":[{"expression":{"arguments":[{"id":10487,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10471,"src":"8259:12:58","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10486,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"8252:6:58","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":10488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8252:20:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10489,"nodeType":"ExpressionStatement","src":"8252:20:58"}]},"id":10491,"nodeType":"IfStatement","src":"7872:415:58","trueBody":{"id":10485,"nodeType":"Block","src":"7899:329:58","statements":[{"AST":{"nodeType":"YulBlock","src":"8069:145:58","statements":[{"nodeType":"YulVariableDeclaration","src":"8091:40:58","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"8120:10:58"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8114:5:58"},"nodeType":"YulFunctionCall","src":"8114:17:58"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"8095:15:58","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8163:2:58","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"8167:10:58"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8159:3:58"},"nodeType":"YulFunctionCall","src":"8159:19:58"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"8180:15:58"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8152:6:58"},"nodeType":"YulFunctionCall","src":"8152:44:58"},"nodeType":"YulExpressionStatement","src":"8152:44:58"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":10469,"isOffset":false,"isSlot":false,"src":"8120:10:58","valueSize":1},{"declaration":10469,"isOffset":false,"isSlot":false,"src":"8167:10:58","valueSize":1}],"id":10484,"nodeType":"InlineAssembly","src":"8060:154:58"}]}}]},"id":10493,"nodeType":"IfStatement","src":"7731:566:58","trueBody":{"id":10479,"nodeType":"Block","src":"7744:42:58","statements":[{"expression":{"id":10477,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10469,"src":"7765:10:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10475,"id":10478,"nodeType":"Return","src":"7758:17:58"}]}}]},"documentation":{"id":10465,"nodeType":"StructuredDocumentation","src":"7347:209:58","text":" @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason using the provided one.\n _Available since v4.3._"},"id":10495,"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7570:16:58","nodeType":"FunctionDefinition","parameters":{"id":10472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10467,"mutability":"mutable","name":"success","nameLocation":"7601:7:58","nodeType":"VariableDeclaration","scope":10495,"src":"7596:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10466,"name":"bool","nodeType":"ElementaryTypeName","src":"7596:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10469,"mutability":"mutable","name":"returndata","nameLocation":"7631:10:58","nodeType":"VariableDeclaration","scope":10495,"src":"7618:23:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10468,"name":"bytes","nodeType":"ElementaryTypeName","src":"7618:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":10471,"mutability":"mutable","name":"errorMessage","nameLocation":"7665:12:58","nodeType":"VariableDeclaration","scope":10495,"src":"7651:26:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10470,"name":"string","nodeType":"ElementaryTypeName","src":"7651:6:58","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7586:97:58"},"returnParameters":{"id":10475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10495,"src":"7707:12:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10473,"name":"bytes","nodeType":"ElementaryTypeName","src":"7707:5:58","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7706:14:58"},"scope":10496,"src":"7561:742:58","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10497,"src":"194:8111:58"}],"src":"101:8205:58"},"id":58},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[10518]},"id":10519,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10498,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"86:23:59"},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":10499,"nodeType":"StructuredDocumentation","src":"111:496:59","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"id":10518,"linearizedBaseContracts":[10518],"name":"Context","nameLocation":"626:7:59","nodeType":"ContractDefinition","nodes":[{"body":{"id":10507,"nodeType":"Block","src":"702:34:59","statements":[{"expression":{"expression":{"id":10504,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"719:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"719:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10503,"id":10506,"nodeType":"Return","src":"712:17:59"}]},"id":10508,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:59","nodeType":"FunctionDefinition","parameters":{"id":10500,"nodeType":"ParameterList","parameters":[],"src":"659:2:59"},"returnParameters":{"id":10503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10508,"src":"693:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10501,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:59"},"scope":10518,"src":"640:96:59","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":10516,"nodeType":"Block","src":"809:32:59","statements":[{"expression":{"expression":{"id":10513,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"826:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","src":"826:8:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":10512,"id":10515,"nodeType":"Return","src":"819:15:59"}]},"id":10517,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:59","nodeType":"FunctionDefinition","parameters":{"id":10509,"nodeType":"ParameterList","parameters":[],"src":"759:2:59"},"returnParameters":{"id":10512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10517,"src":"793:14:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":10510,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:59"},"scope":10518,"src":"742:99:59","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":10519,"src":"608:235:59"}],"src":"86:758:59"},"id":59},"@openzeppelin/contracts/utils/StorageSlot.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/StorageSlot.sol","exportedSymbols":{"StorageSlot":[10578]},"id":10579,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10520,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"105:23:60"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":10521,"nodeType":"StructuredDocumentation","src":"130:1148:60","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```\n contract ERC1967 {\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```\n _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._"},"fullyImplemented":true,"id":10578,"linearizedBaseContracts":[10578],"name":"StorageSlot","nameLocation":"1287:11:60","nodeType":"ContractDefinition","nodes":[{"canonicalName":"StorageSlot.AddressSlot","id":10524,"members":[{"constant":false,"id":10523,"mutability":"mutable","name":"value","nameLocation":"1342:5:60","nodeType":"VariableDeclaration","scope":10524,"src":"1334:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10522,"name":"address","nodeType":"ElementaryTypeName","src":"1334:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1312:11:60","nodeType":"StructDefinition","scope":10578,"src":"1305:49:60","visibility":"public"},{"canonicalName":"StorageSlot.BooleanSlot","id":10527,"members":[{"constant":false,"id":10526,"mutability":"mutable","name":"value","nameLocation":"1394:5:60","nodeType":"VariableDeclaration","scope":10527,"src":"1389:10:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10525,"name":"bool","nodeType":"ElementaryTypeName","src":"1389:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1367:11:60","nodeType":"StructDefinition","scope":10578,"src":"1360:46:60","visibility":"public"},{"canonicalName":"StorageSlot.Bytes32Slot","id":10530,"members":[{"constant":false,"id":10529,"mutability":"mutable","name":"value","nameLocation":"1449:5:60","nodeType":"VariableDeclaration","scope":10530,"src":"1441:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1441:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1419:11:60","nodeType":"StructDefinition","scope":10578,"src":"1412:49:60","visibility":"public"},{"canonicalName":"StorageSlot.Uint256Slot","id":10533,"members":[{"constant":false,"id":10532,"mutability":"mutable","name":"value","nameLocation":"1504:5:60","nodeType":"VariableDeclaration","scope":10533,"src":"1496:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10531,"name":"uint256","nodeType":"ElementaryTypeName","src":"1496:7:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1474:11:60","nodeType":"StructDefinition","scope":10578,"src":"1467:49:60","visibility":"public"},{"body":{"id":10543,"nodeType":"Block","src":"1698:106:60","statements":[{"AST":{"nodeType":"YulBlock","src":"1760:38:60","statements":[{"nodeType":"YulAssignment","src":"1774:14:60","value":{"name":"slot","nodeType":"YulIdentifier","src":"1784:4:60"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"1774:6:60"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":10540,"isOffset":false,"isSlot":true,"src":"1774:6:60","suffix":"slot","valueSize":1},{"declaration":10536,"isOffset":false,"isSlot":false,"src":"1784:4:60","valueSize":1}],"id":10542,"nodeType":"InlineAssembly","src":"1751:47:60"}]},"documentation":{"id":10534,"nodeType":"StructuredDocumentation","src":"1522:87:60","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"id":10544,"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1623:14:60","nodeType":"FunctionDefinition","parameters":{"id":10537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10536,"mutability":"mutable","name":"slot","nameLocation":"1646:4:60","nodeType":"VariableDeclaration","scope":10544,"src":"1638:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10535,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1638:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1637:14:60"},"returnParameters":{"id":10541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10540,"mutability":"mutable","name":"r","nameLocation":"1695:1:60","nodeType":"VariableDeclaration","scope":10544,"src":"1675:21:60","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":10539,"nodeType":"UserDefinedTypeName","pathNode":{"id":10538,"name":"AddressSlot","nodeType":"IdentifierPath","referencedDeclaration":10524,"src":"1675:11:60"},"referencedDeclaration":10524,"src":"1675:11:60","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$10524_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1674:23:60"},"scope":10578,"src":"1614:190:60","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10554,"nodeType":"Block","src":"1986:106:60","statements":[{"AST":{"nodeType":"YulBlock","src":"2048:38:60","statements":[{"nodeType":"YulAssignment","src":"2062:14:60","value":{"name":"slot","nodeType":"YulIdentifier","src":"2072:4:60"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2062:6:60"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":10551,"isOffset":false,"isSlot":true,"src":"2062:6:60","suffix":"slot","valueSize":1},{"declaration":10547,"isOffset":false,"isSlot":false,"src":"2072:4:60","valueSize":1}],"id":10553,"nodeType":"InlineAssembly","src":"2039:47:60"}]},"documentation":{"id":10545,"nodeType":"StructuredDocumentation","src":"1810:87:60","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"id":10555,"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"1911:14:60","nodeType":"FunctionDefinition","parameters":{"id":10548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10547,"mutability":"mutable","name":"slot","nameLocation":"1934:4:60","nodeType":"VariableDeclaration","scope":10555,"src":"1926:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1926:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1925:14:60"},"returnParameters":{"id":10552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10551,"mutability":"mutable","name":"r","nameLocation":"1983:1:60","nodeType":"VariableDeclaration","scope":10555,"src":"1963:21:60","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10527_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":10550,"nodeType":"UserDefinedTypeName","pathNode":{"id":10549,"name":"BooleanSlot","nodeType":"IdentifierPath","referencedDeclaration":10527,"src":"1963:11:60"},"referencedDeclaration":10527,"src":"1963:11:60","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$10527_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"1962:23:60"},"scope":10578,"src":"1902:190:60","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10565,"nodeType":"Block","src":"2274:106:60","statements":[{"AST":{"nodeType":"YulBlock","src":"2336:38:60","statements":[{"nodeType":"YulAssignment","src":"2350:14:60","value":{"name":"slot","nodeType":"YulIdentifier","src":"2360:4:60"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2350:6:60"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":10562,"isOffset":false,"isSlot":true,"src":"2350:6:60","suffix":"slot","valueSize":1},{"declaration":10558,"isOffset":false,"isSlot":false,"src":"2360:4:60","valueSize":1}],"id":10564,"nodeType":"InlineAssembly","src":"2327:47:60"}]},"documentation":{"id":10556,"nodeType":"StructuredDocumentation","src":"2098:87:60","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"id":10566,"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2199:14:60","nodeType":"FunctionDefinition","parameters":{"id":10559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10558,"mutability":"mutable","name":"slot","nameLocation":"2222:4:60","nodeType":"VariableDeclaration","scope":10566,"src":"2214:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2214:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2213:14:60"},"returnParameters":{"id":10563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10562,"mutability":"mutable","name":"r","nameLocation":"2271:1:60","nodeType":"VariableDeclaration","scope":10566,"src":"2251:21:60","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$10530_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":10561,"nodeType":"UserDefinedTypeName","pathNode":{"id":10560,"name":"Bytes32Slot","nodeType":"IdentifierPath","referencedDeclaration":10530,"src":"2251:11:60"},"referencedDeclaration":10530,"src":"2251:11:60","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$10530_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2250:23:60"},"scope":10578,"src":"2190:190:60","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10576,"nodeType":"Block","src":"2562:106:60","statements":[{"AST":{"nodeType":"YulBlock","src":"2624:38:60","statements":[{"nodeType":"YulAssignment","src":"2638:14:60","value":{"name":"slot","nodeType":"YulIdentifier","src":"2648:4:60"},"variableNames":[{"name":"r.slot","nodeType":"YulIdentifier","src":"2638:6:60"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":10573,"isOffset":false,"isSlot":true,"src":"2638:6:60","suffix":"slot","valueSize":1},{"declaration":10569,"isOffset":false,"isSlot":false,"src":"2648:4:60","valueSize":1}],"id":10575,"nodeType":"InlineAssembly","src":"2615:47:60"}]},"documentation":{"id":10567,"nodeType":"StructuredDocumentation","src":"2386:87:60","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"id":10577,"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2487:14:60","nodeType":"FunctionDefinition","parameters":{"id":10570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10569,"mutability":"mutable","name":"slot","nameLocation":"2510:4:60","nodeType":"VariableDeclaration","scope":10577,"src":"2502:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10568,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2502:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2501:14:60"},"returnParameters":{"id":10574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10573,"mutability":"mutable","name":"r","nameLocation":"2559:1:60","nodeType":"VariableDeclaration","scope":10577,"src":"2539:21:60","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$10533_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":10572,"nodeType":"UserDefinedTypeName","pathNode":{"id":10571,"name":"Uint256Slot","nodeType":"IdentifierPath","referencedDeclaration":10533,"src":"2539:11:60"},"referencedDeclaration":10533,"src":"2539:11:60","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$10533_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2538:23:60"},"scope":10578,"src":"2478:190:60","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10579,"src":"1279:1391:60"}],"src":"105:2566:60"},"id":60},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Strings":[10804]},"id":10805,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10580,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"101:23:61"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":10581,"nodeType":"StructuredDocumentation","src":"126:34:61","text":" @dev String operations."},"fullyImplemented":true,"id":10804,"linearizedBaseContracts":[10804],"name":"Strings","nameLocation":"169:7:61","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":10584,"mutability":"constant","name":"_HEX_SYMBOLS","nameLocation":"208:12:61","nodeType":"VariableDeclaration","scope":10804,"src":"183:58:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":10582,"name":"bytes16","nodeType":"ElementaryTypeName","src":"183:7:61","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":10583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"223:18:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":10587,"mutability":"constant","name":"_ADDRESS_LENGTH","nameLocation":"270:15:61","nodeType":"VariableDeclaration","scope":10804,"src":"247:43:61","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":10585,"name":"uint8","nodeType":"ElementaryTypeName","src":"247:5:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":10586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288:2:61","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"body":{"id":10665,"nodeType":"Block","src":"463:632:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10595,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"665:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"674:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"665:10:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10601,"nodeType":"IfStatement","src":"661:51:61","trueBody":{"id":10600,"nodeType":"Block","src":"677:35:61","statements":[{"expression":{"hexValue":"30","id":10598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"698:3:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":10594,"id":10599,"nodeType":"Return","src":"691:10:61"}]}},{"assignments":[10603],"declarations":[{"constant":false,"id":10603,"mutability":"mutable","name":"temp","nameLocation":"729:4:61","nodeType":"VariableDeclaration","scope":10665,"src":"721:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10602,"name":"uint256","nodeType":"ElementaryTypeName","src":"721:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10605,"initialValue":{"id":10604,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"736:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"721:20:61"},{"assignments":[10607],"declarations":[{"constant":false,"id":10607,"mutability":"mutable","name":"digits","nameLocation":"759:6:61","nodeType":"VariableDeclaration","scope":10665,"src":"751:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10606,"name":"uint256","nodeType":"ElementaryTypeName","src":"751:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10608,"nodeType":"VariableDeclarationStatement","src":"751:14:61"},{"body":{"id":10619,"nodeType":"Block","src":"793:57:61","statements":[{"expression":{"id":10613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"807:8:61","subExpression":{"id":10612,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"807:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10614,"nodeType":"ExpressionStatement","src":"807:8:61"},{"expression":{"id":10617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10615,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10603,"src":"829:4:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":10616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:2:61","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"829:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10618,"nodeType":"ExpressionStatement","src":"829:10:61"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10609,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10603,"src":"782:4:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"790:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"782:9:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10620,"nodeType":"WhileStatement","src":"775:75:61"},{"assignments":[10622],"declarations":[{"constant":false,"id":10622,"mutability":"mutable","name":"buffer","nameLocation":"872:6:61","nodeType":"VariableDeclaration","scope":10665,"src":"859:19:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10621,"name":"bytes","nodeType":"ElementaryTypeName","src":"859:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10627,"initialValue":{"arguments":[{"id":10625,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"891:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"881:9:61","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":10623,"name":"bytes","nodeType":"ElementaryTypeName","src":"885:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":10626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"881:17:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"859:39:61"},{"body":{"id":10658,"nodeType":"Block","src":"927:131:61","statements":[{"expression":{"id":10633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10631,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"941:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":10632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"951:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"941:11:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10634,"nodeType":"ExpressionStatement","src":"941:11:61"},{"expression":{"id":10652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10635,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10622,"src":"966:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10637,"indexExpression":{"id":10636,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"973:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"966:14:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":10642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"996:2:61","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10645,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"1009:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":10646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1017:2:61","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1009:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1001:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10643,"name":"uint256","nodeType":"ElementaryTypeName","src":"1001:7:61","typeDescriptions":{}}},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1001:19:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"996:24:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"990:5:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":10640,"name":"uint8","nodeType":"ElementaryTypeName","src":"990:5:61","typeDescriptions":{}}},"id":10650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"990:31:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":10639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"983:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":10638,"name":"bytes1","nodeType":"ElementaryTypeName","src":"983:6:61","typeDescriptions":{}}},"id":10651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"983:39:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"966:56:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":10653,"nodeType":"ExpressionStatement","src":"966:56:61"},{"expression":{"id":10656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10654,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"1036:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":10655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1045:2:61","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1036:11:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10657,"nodeType":"ExpressionStatement","src":"1036:11:61"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10628,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"915:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"924:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"915:10:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10659,"nodeType":"WhileStatement","src":"908:150:61"},{"expression":{"arguments":[{"id":10662,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10622,"src":"1081:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1074:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":10660,"name":"string","nodeType":"ElementaryTypeName","src":"1074:6:61","typeDescriptions":{}}},"id":10663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1074:14:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10594,"id":10664,"nodeType":"Return","src":"1067:21:61"}]},"documentation":{"id":10588,"nodeType":"StructuredDocumentation","src":"297:90:61","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":10666,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"401:8:61","nodeType":"FunctionDefinition","parameters":{"id":10591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10590,"mutability":"mutable","name":"value","nameLocation":"418:5:61","nodeType":"VariableDeclaration","scope":10666,"src":"410:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10589,"name":"uint256","nodeType":"ElementaryTypeName","src":"410:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"409:15:61"},"returnParameters":{"id":10594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10666,"src":"448:13:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10592,"name":"string","nodeType":"ElementaryTypeName","src":"448:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"447:15:61"},"scope":10804,"src":"392:703:61","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10706,"nodeType":"Block","src":"1274:255:61","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10674,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10669,"src":"1288:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1288:10:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10680,"nodeType":"IfStatement","src":"1284:54:61","trueBody":{"id":10679,"nodeType":"Block","src":"1300:38:61","statements":[{"expression":{"hexValue":"30783030","id":10677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1321:6:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_27489e20a0060b723a1748bdff5e44570ee9fae64141728105692eac6031e8a4","typeString":"literal_string \"0x00\""},"value":"0x00"},"functionReturnParameters":10673,"id":10678,"nodeType":"Return","src":"1314:13:61"}]}},{"assignments":[10682],"declarations":[{"constant":false,"id":10682,"mutability":"mutable","name":"temp","nameLocation":"1355:4:61","nodeType":"VariableDeclaration","scope":10706,"src":"1347:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10681,"name":"uint256","nodeType":"ElementaryTypeName","src":"1347:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10684,"initialValue":{"id":10683,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10669,"src":"1362:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1347:20:61"},{"assignments":[10686],"declarations":[{"constant":false,"id":10686,"mutability":"mutable","name":"length","nameLocation":"1385:6:61","nodeType":"VariableDeclaration","scope":10706,"src":"1377:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10685,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10688,"initialValue":{"hexValue":"30","id":10687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1394:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1377:18:61"},{"body":{"id":10699,"nodeType":"Block","src":"1423:57:61","statements":[{"expression":{"id":10693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1437:8:61","subExpression":{"id":10692,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10686,"src":"1437:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10694,"nodeType":"ExpressionStatement","src":"1437:8:61"},{"expression":{"id":10697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10695,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10682,"src":"1459:4:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":10696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1468:1:61","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1459:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10698,"nodeType":"ExpressionStatement","src":"1459:10:61"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10689,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10682,"src":"1412:4:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1420:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1412:9:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10700,"nodeType":"WhileStatement","src":"1405:75:61"},{"expression":{"arguments":[{"id":10702,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10669,"src":"1508:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10703,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10686,"src":"1515:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10701,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[10707,10783,10803],"referencedDeclaration":10783,"src":"1496:11:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":10704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1496:26:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10673,"id":10705,"nodeType":"Return","src":"1489:33:61"}]},"documentation":{"id":10667,"nodeType":"StructuredDocumentation","src":"1101:94:61","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":10707,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1209:11:61","nodeType":"FunctionDefinition","parameters":{"id":10670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10669,"mutability":"mutable","name":"value","nameLocation":"1229:5:61","nodeType":"VariableDeclaration","scope":10707,"src":"1221:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10668,"name":"uint256","nodeType":"ElementaryTypeName","src":"1221:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:15:61"},"returnParameters":{"id":10673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10707,"src":"1259:13:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10671,"name":"string","nodeType":"ElementaryTypeName","src":"1259:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1258:15:61"},"scope":10804,"src":"1200:329:61","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10782,"nodeType":"Block","src":"1742:351:61","statements":[{"assignments":[10718],"declarations":[{"constant":false,"id":10718,"mutability":"mutable","name":"buffer","nameLocation":"1765:6:61","nodeType":"VariableDeclaration","scope":10782,"src":"1752:19:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10717,"name":"bytes","nodeType":"ElementaryTypeName","src":"1752:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":10727,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":10721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1784:1:61","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10722,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10712,"src":"1788:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":10724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1797:1:61","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1784:14:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1774:9:61","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":10719,"name":"bytes","nodeType":"ElementaryTypeName","src":"1778:5:61","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":10726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1774:25:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1752:47:61"},{"expression":{"id":10732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10728,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10718,"src":"1809:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10730,"indexExpression":{"hexValue":"30","id":10729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1816:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1809:9:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":10731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1821:3:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"1809:15:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":10733,"nodeType":"ExpressionStatement","src":"1809:15:61"},{"expression":{"id":10738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10734,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10718,"src":"1834:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10736,"indexExpression":{"hexValue":"31","id":10735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1841:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1834:9:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":10737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1846:3:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"1834:15:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":10739,"nodeType":"ExpressionStatement","src":"1834:15:61"},{"body":{"id":10768,"nodeType":"Block","src":"1904:87:61","statements":[{"expression":{"id":10762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":10754,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10718,"src":"1918:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":10756,"indexExpression":{"id":10755,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10741,"src":"1925:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1918:9:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":10757,"name":"_HEX_SYMBOLS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"1930:12:61","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":10761,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10758,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10710,"src":"1943:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":10759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1951:3:61","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1943:11:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1930:25:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1918:37:61","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":10763,"nodeType":"ExpressionStatement","src":"1918:37:61"},{"expression":{"id":10766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":10764,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10710,"src":"1969:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":10765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:1:61","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1969:11:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10767,"nodeType":"ExpressionStatement","src":"1969:11:61"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10748,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10741,"src":"1892:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":10749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1896:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1892:5:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10769,"initializationExpression":{"assignments":[10741],"declarations":[{"constant":false,"id":10741,"mutability":"mutable","name":"i","nameLocation":"1872:1:61","nodeType":"VariableDeclaration","scope":10769,"src":"1864:9:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10740,"name":"uint256","nodeType":"ElementaryTypeName","src":"1864:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10747,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":10742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1876:1:61","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":10743,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10712,"src":"1880:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1876:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":10745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1876:14:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1864:26:61"},"loopExpression":{"expression":{"id":10752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"1899:3:61","subExpression":{"id":10751,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10741,"src":"1901:1:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10753,"nodeType":"ExpressionStatement","src":"1899:3:61"},"nodeType":"ForStatement","src":"1859:132:61"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10771,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10710,"src":"2008:5:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":10772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2017:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2008:10:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":10774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2020:34:61","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":10770,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2000:7:61","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2000:55:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10776,"nodeType":"ExpressionStatement","src":"2000:55:61"},{"expression":{"arguments":[{"id":10779,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10718,"src":"2079:6:61","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2072:6:61","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":10777,"name":"string","nodeType":"ElementaryTypeName","src":"2072:6:61","typeDescriptions":{}}},"id":10780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2072:14:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10716,"id":10781,"nodeType":"Return","src":"2065:21:61"}]},"documentation":{"id":10708,"nodeType":"StructuredDocumentation","src":"1535:112:61","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":10783,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1661:11:61","nodeType":"FunctionDefinition","parameters":{"id":10713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10710,"mutability":"mutable","name":"value","nameLocation":"1681:5:61","nodeType":"VariableDeclaration","scope":10783,"src":"1673:13:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10709,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10712,"mutability":"mutable","name":"length","nameLocation":"1696:6:61","nodeType":"VariableDeclaration","scope":10783,"src":"1688:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10711,"name":"uint256","nodeType":"ElementaryTypeName","src":"1688:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1672:31:61"},"returnParameters":{"id":10716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10783,"src":"1727:13:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10714,"name":"string","nodeType":"ElementaryTypeName","src":"1727:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1726:15:61"},"scope":10804,"src":"1652:441:61","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10802,"nodeType":"Block","src":"2318:76:61","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":10796,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10786,"src":"2363:4:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2355:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10794,"name":"uint160","nodeType":"ElementaryTypeName","src":"2355:7:61","typeDescriptions":{}}},"id":10797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2355:13:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2347:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10792,"name":"uint256","nodeType":"ElementaryTypeName","src":"2347:7:61","typeDescriptions":{}}},"id":10798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2347:22:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10799,"name":"_ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10587,"src":"2371:15:61","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":10791,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[10707,10783,10803],"referencedDeclaration":10783,"src":"2335:11:61","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":10800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2335:52:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10790,"id":10801,"nodeType":"Return","src":"2328:59:61"}]},"documentation":{"id":10784,"nodeType":"StructuredDocumentation","src":"2099:141:61","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation."},"id":10803,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2254:11:61","nodeType":"FunctionDefinition","parameters":{"id":10787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10786,"mutability":"mutable","name":"addr","nameLocation":"2274:4:61","nodeType":"VariableDeclaration","scope":10803,"src":"2266:12:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10785,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:61","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2265:14:61"},"returnParameters":{"id":10790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10803,"src":"2303:13:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10788,"name":"string","nodeType":"ElementaryTypeName","src":"2303:6:61","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2302:15:61"},"scope":10804,"src":"2245:149:61","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":10805,"src":"161:2235:61"}],"src":"101:2296:61"},"id":61},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[10828],"IERC165":[10840]},"id":10829,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10806,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"99:23:62"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":10807,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":10829,"sourceUnit":10841,"src":"124:23:62","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":10809,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":10840,"src":"754:7:62"},"id":10810,"nodeType":"InheritanceSpecifier","src":"754:7:62"}],"contractDependencies":[10840],"contractKind":"contract","documentation":{"id":10808,"nodeType":"StructuredDocumentation","src":"149:576:62","text":" @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."},"fullyImplemented":true,"id":10828,"linearizedBaseContracts":[10828,10840],"name":"ERC165","nameLocation":"744:6:62","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[10839],"body":{"id":10826,"nodeType":"Block","src":"920:64:62","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":10824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10819,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10813,"src":"937:11:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":10821,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10840,"src":"957:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$10840_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$10840_$","typeString":"type(contract IERC165)"}],"id":10820,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"952:4:62","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":10822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"952:13:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$10840","typeString":"type(contract IERC165)"}},"id":10823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"952:25:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"937:40:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10818,"id":10825,"nodeType":"Return","src":"930:47:62"}]},"documentation":{"id":10811,"nodeType":"StructuredDocumentation","src":"768:56:62","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","id":10827,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"838:17:62","nodeType":"FunctionDefinition","overrides":{"id":10815,"nodeType":"OverrideSpecifier","overrides":[],"src":"896:8:62"},"parameters":{"id":10814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10813,"mutability":"mutable","name":"interfaceId","nameLocation":"863:11:62","nodeType":"VariableDeclaration","scope":10827,"src":"856:18:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10812,"name":"bytes4","nodeType":"ElementaryTypeName","src":"856:6:62","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"855:20:62"},"returnParameters":{"id":10818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10827,"src":"914:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10816,"name":"bool","nodeType":"ElementaryTypeName","src":"914:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"913:6:62"},"scope":10828,"src":"829:155:62","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":10829,"src":"726:260:62"}],"src":"99:888:62"},"id":62},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[10840]},"id":10841,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10830,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"100:23:63"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":10831,"nodeType":"StructuredDocumentation","src":"125:279:63","text":" @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."},"fullyImplemented":false,"id":10840,"linearizedBaseContracts":[10840],"name":"IERC165","nameLocation":"415:7:63","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":10832,"nodeType":"StructuredDocumentation","src":"429:340:63","text":" @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."},"functionSelector":"01ffc9a7","id":10839,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"783:17:63","nodeType":"FunctionDefinition","parameters":{"id":10835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10834,"mutability":"mutable","name":"interfaceId","nameLocation":"808:11:63","nodeType":"VariableDeclaration","scope":10839,"src":"801:18:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":10833,"name":"bytes4","nodeType":"ElementaryTypeName","src":"801:6:63","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"800:20:63"},"returnParameters":{"id":10838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10837,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10839,"src":"844:4:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10836,"name":"bool","nodeType":"ElementaryTypeName","src":"844:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"843:6:63"},"scope":10840,"src":"774:76:63","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":10841,"src":"405:447:63"}],"src":"100:753:63"},"id":63},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","exportedSymbols":{"EnumerableSet":[11439]},"id":11440,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":10842,"literals":["solidity","^","0.8",".0"],"nodeType":"PragmaDirective","src":"115:23:64"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":10843,"nodeType":"StructuredDocumentation","src":"140:1087:64","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet.\n ===="},"fullyImplemented":true,"id":11439,"linearizedBaseContracts":[11439],"name":"EnumerableSet","nameLocation":"1236:13:64","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSet.Set","id":10851,"members":[{"constant":false,"id":10846,"mutability":"mutable","name":"_values","nameLocation":"1760:7:64","nodeType":"VariableDeclaration","scope":10851,"src":"1750:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":10844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1750:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10845,"nodeType":"ArrayTypeName","src":"1750:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":10850,"mutability":"mutable","name":"_indexes","nameLocation":"1928:8:64","nodeType":"VariableDeclaration","scope":10851,"src":"1900:36:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":10849,"keyType":{"id":10847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1908:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1900:27:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":10848,"name":"uint256","nodeType":"ElementaryTypeName","src":"1919:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1703:3:64","nodeType":"StructDefinition","scope":11439,"src":"1696:247:64","visibility":"public"},{"body":{"id":10892,"nodeType":"Block","src":"2182:335:64","statements":[{"condition":{"id":10866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2196:22:64","subExpression":{"arguments":[{"id":10863,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10855,"src":"2207:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":10864,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"2212:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10862,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10996,"src":"2197:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":10865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2197:21:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10890,"nodeType":"Block","src":"2474:37:64","statements":[{"expression":{"hexValue":"66616c7365","id":10888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2495:5:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":10861,"id":10889,"nodeType":"Return","src":"2488:12:64"}]},"id":10891,"nodeType":"IfStatement","src":"2192:319:64","trueBody":{"id":10887,"nodeType":"Block","src":"2220:248:64","statements":[{"expression":{"arguments":[{"id":10872,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"2251:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":10867,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10855,"src":"2234:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"2234:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2234:16:64","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":10873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2234:23:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10874,"nodeType":"ExpressionStatement","src":"2234:23:64"},{"expression":{"id":10883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10875,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10855,"src":"2392:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10850,"src":"2392:12:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10879,"indexExpression":{"id":10877,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10857,"src":"2405:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2392:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":10880,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10855,"src":"2414:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"2414:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2414:18:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2392:40:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10884,"nodeType":"ExpressionStatement","src":"2392:40:64"},{"expression":{"hexValue":"74727565","id":10885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2453:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":10861,"id":10886,"nodeType":"Return","src":"2446:11:64"}]}}]},"documentation":{"id":10852,"nodeType":"StructuredDocumentation","src":"1949:159:64","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":10893,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2122:4:64","nodeType":"FunctionDefinition","parameters":{"id":10858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10855,"mutability":"mutable","name":"set","nameLocation":"2139:3:64","nodeType":"VariableDeclaration","scope":10893,"src":"2127:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10854,"nodeType":"UserDefinedTypeName","pathNode":{"id":10853,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"2127:3:64"},"referencedDeclaration":10851,"src":"2127:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10857,"mutability":"mutable","name":"value","nameLocation":"2152:5:64","nodeType":"VariableDeclaration","scope":10893,"src":"2144:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2144:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2126:32:64"},"returnParameters":{"id":10861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10860,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10893,"src":"2176:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10859,"name":"bool","nodeType":"ElementaryTypeName","src":"2176:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2175:6:64"},"scope":11439,"src":"2113:404:64","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10976,"nodeType":"Block","src":"2757:1316:64","statements":[{"assignments":[10905],"declarations":[{"constant":false,"id":10905,"mutability":"mutable","name":"valueIndex","nameLocation":"2875:10:64","nodeType":"VariableDeclaration","scope":10976,"src":"2867:18:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10904,"name":"uint256","nodeType":"ElementaryTypeName","src":"2867:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10910,"initialValue":{"baseExpression":{"expression":{"id":10906,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"2888:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10850,"src":"2888:12:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10909,"indexExpression":{"id":10908,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10899,"src":"2901:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2888:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2867:40:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10911,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10905,"src":"2922:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2936:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2922:15:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10974,"nodeType":"Block","src":"4030:37:64","statements":[{"expression":{"hexValue":"66616c7365","id":10972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4051:5:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":10903,"id":10973,"nodeType":"Return","src":"4044:12:64"}]},"id":10975,"nodeType":"IfStatement","src":"2918:1149:64","trueBody":{"id":10971,"nodeType":"Block","src":"2939:1085:64","statements":[{"assignments":[10915],"declarations":[{"constant":false,"id":10915,"mutability":"mutable","name":"toDeleteIndex","nameLocation":"3299:13:64","nodeType":"VariableDeclaration","scope":10971,"src":"3291:21:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10914,"name":"uint256","nodeType":"ElementaryTypeName","src":"3291:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10919,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10916,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10905,"src":"3315:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3328:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3315:14:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3291:38:64"},{"assignments":[10921],"declarations":[{"constant":false,"id":10921,"mutability":"mutable","name":"lastIndex","nameLocation":"3351:9:64","nodeType":"VariableDeclaration","scope":10971,"src":"3343:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10920,"name":"uint256","nodeType":"ElementaryTypeName","src":"3343:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":10927,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":10922,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3363:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"3363:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3363:18:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":10925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3384:1:64","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3363:22:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3343:42:64"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":10928,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10921,"src":"3404:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":10929,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10915,"src":"3417:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3404:26:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10955,"nodeType":"IfStatement","src":"3400:398:64","trueBody":{"id":10954,"nodeType":"Block","src":"3432:366:64","statements":[{"assignments":[10932],"declarations":[{"constant":false,"id":10932,"mutability":"mutable","name":"lastValue","nameLocation":"3458:9:64","nodeType":"VariableDeclaration","scope":10954,"src":"3450:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3450:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":10937,"initialValue":{"baseExpression":{"expression":{"id":10933,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3470:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"3470:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10936,"indexExpression":{"id":10935,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10921,"src":"3482:9:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3470:22:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3450:42:64"},{"expression":{"id":10944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10938,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3592:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"3592:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10942,"indexExpression":{"id":10940,"name":"toDeleteIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10915,"src":"3604:13:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3592:26:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10943,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10932,"src":"3621:9:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3592:38:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10945,"nodeType":"ExpressionStatement","src":"3592:38:64"},{"expression":{"id":10952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":10946,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3704:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10850,"src":"3704:12:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10950,"indexExpression":{"id":10948,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10932,"src":"3717:9:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3704:23:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":10951,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10905,"src":"3730:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3704:36:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10953,"nodeType":"ExpressionStatement","src":"3704:36:64"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":10956,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3876:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"3876:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":10960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pop","nodeType":"MemberAccess","src":"3876:15:64","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":10961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3876:17:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10962,"nodeType":"ExpressionStatement","src":"3876:17:64"},{"expression":{"id":10967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3961:26:64","subExpression":{"baseExpression":{"expression":{"id":10963,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10897,"src":"3968:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10850,"src":"3968:12:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10966,"indexExpression":{"id":10965,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10899,"src":"3981:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3968:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10968,"nodeType":"ExpressionStatement","src":"3961:26:64"},{"expression":{"hexValue":"74727565","id":10969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4009:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":10903,"id":10970,"nodeType":"Return","src":"4002:11:64"}]}}]},"documentation":{"id":10894,"nodeType":"StructuredDocumentation","src":"2523:157:64","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":10977,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2694:7:64","nodeType":"FunctionDefinition","parameters":{"id":10900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10897,"mutability":"mutable","name":"set","nameLocation":"2714:3:64","nodeType":"VariableDeclaration","scope":10977,"src":"2702:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10896,"nodeType":"UserDefinedTypeName","pathNode":{"id":10895,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"2702:3:64"},"referencedDeclaration":10851,"src":"2702:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10899,"mutability":"mutable","name":"value","nameLocation":"2727:5:64","nodeType":"VariableDeclaration","scope":10977,"src":"2719:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10898,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2719:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2701:32:64"},"returnParameters":{"id":10903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10902,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10977,"src":"2751:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10901,"name":"bool","nodeType":"ElementaryTypeName","src":"2751:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2750:6:64"},"scope":11439,"src":"2685:1388:64","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":10995,"nodeType":"Block","src":"4233:48:64","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":10988,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"4250:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":10989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_indexes","nodeType":"MemberAccess","referencedDeclaration":10850,"src":"4250:12:64","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":10991,"indexExpression":{"id":10990,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10983,"src":"4263:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4250:19:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":10992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4273:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4250:24:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10987,"id":10994,"nodeType":"Return","src":"4243:31:64"}]},"documentation":{"id":10978,"nodeType":"StructuredDocumentation","src":"4079:70:64","text":" @dev Returns true if the value is in the set. O(1)."},"id":10996,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4163:9:64","nodeType":"FunctionDefinition","parameters":{"id":10984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10981,"mutability":"mutable","name":"set","nameLocation":"4185:3:64","nodeType":"VariableDeclaration","scope":10996,"src":"4173:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10980,"nodeType":"UserDefinedTypeName","pathNode":{"id":10979,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"4173:3:64"},"referencedDeclaration":10851,"src":"4173:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":10983,"mutability":"mutable","name":"value","nameLocation":"4198:5:64","nodeType":"VariableDeclaration","scope":10996,"src":"4190:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10982,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4190:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4172:32:64"},"returnParameters":{"id":10987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10986,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10996,"src":"4227:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10985,"name":"bool","nodeType":"ElementaryTypeName","src":"4227:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4226:6:64"},"scope":11439,"src":"4154:127:64","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":11009,"nodeType":"Block","src":"4427:42:64","statements":[{"expression":{"expression":{"expression":{"id":11005,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11000,"src":"4444:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":11006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"4444:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":11007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"4444:18:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11004,"id":11008,"nodeType":"Return","src":"4437:25:64"}]},"documentation":{"id":10997,"nodeType":"StructuredDocumentation","src":"4287:70:64","text":" @dev Returns the number of values on the set. O(1)."},"id":11010,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4371:7:64","nodeType":"FunctionDefinition","parameters":{"id":11001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11000,"mutability":"mutable","name":"set","nameLocation":"4391:3:64","nodeType":"VariableDeclaration","scope":11010,"src":"4379:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":10999,"nodeType":"UserDefinedTypeName","pathNode":{"id":10998,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"4379:3:64"},"referencedDeclaration":10851,"src":"4379:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4378:17:64"},"returnParameters":{"id":11004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11003,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11010,"src":"4418:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11002,"name":"uint256","nodeType":"ElementaryTypeName","src":"4418:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4417:9:64"},"scope":11439,"src":"4362:107:64","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":11026,"nodeType":"Block","src":"4887:42:64","statements":[{"expression":{"baseExpression":{"expression":{"id":11021,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"4904:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":11022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"4904:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":11024,"indexExpression":{"id":11023,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11016,"src":"4916:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4904:18:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11020,"id":11025,"nodeType":"Return","src":"4897:25:64"}]},"documentation":{"id":11011,"nodeType":"StructuredDocumentation","src":"4475:331:64","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":11027,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4820:3:64","nodeType":"FunctionDefinition","parameters":{"id":11017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11014,"mutability":"mutable","name":"set","nameLocation":"4836:3:64","nodeType":"VariableDeclaration","scope":11027,"src":"4824:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":11013,"nodeType":"UserDefinedTypeName","pathNode":{"id":11012,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"4824:3:64"},"referencedDeclaration":10851,"src":"4824:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":11016,"mutability":"mutable","name":"index","nameLocation":"4849:5:64","nodeType":"VariableDeclaration","scope":11027,"src":"4841:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11015,"name":"uint256","nodeType":"ElementaryTypeName","src":"4841:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4823:32:64"},"returnParameters":{"id":11020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11027,"src":"4878:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4878:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4877:9:64"},"scope":11439,"src":"4811:118:64","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":11040,"nodeType":"Block","src":"5543:35:64","statements":[{"expression":{"expression":{"id":11037,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11031,"src":"5560:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":11038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":10846,"src":"5560:11:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":11036,"id":11039,"nodeType":"Return","src":"5553:18:64"}]},"documentation":{"id":11028,"nodeType":"StructuredDocumentation","src":"4935:529:64","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":11041,"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5478:7:64","nodeType":"FunctionDefinition","parameters":{"id":11032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11031,"mutability":"mutable","name":"set","nameLocation":"5498:3:64","nodeType":"VariableDeclaration","scope":11041,"src":"5486:15:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":11030,"nodeType":"UserDefinedTypeName","pathNode":{"id":11029,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"5486:3:64"},"referencedDeclaration":10851,"src":"5486:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5485:17:64"},"returnParameters":{"id":11036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11035,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11041,"src":"5525:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5525:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11034,"nodeType":"ArrayTypeName","src":"5525:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5524:18:64"},"scope":11439,"src":"5469:109:64","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSet.Bytes32Set","id":11045,"members":[{"constant":false,"id":11044,"mutability":"mutable","name":"_inner","nameLocation":"5635:6:64","nodeType":"VariableDeclaration","scope":11045,"src":"5631:10:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":11043,"nodeType":"UserDefinedTypeName","pathNode":{"id":11042,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"5631:3:64"},"referencedDeclaration":10851,"src":"5631:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5610:10:64","nodeType":"StructDefinition","scope":11439,"src":"5603:45:64","visibility":"public"},{"body":{"id":11062,"nodeType":"Block","src":"5894:47:64","statements":[{"expression":{"arguments":[{"expression":{"id":11057,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11049,"src":"5916:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"5916:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11059,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11051,"src":"5928:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11056,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10893,"src":"5911:4:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5911:23:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11055,"id":11061,"nodeType":"Return","src":"5904:30:64"}]},"documentation":{"id":11046,"nodeType":"StructuredDocumentation","src":"5654:159:64","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":11063,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5827:3:64","nodeType":"FunctionDefinition","parameters":{"id":11052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11049,"mutability":"mutable","name":"set","nameLocation":"5850:3:64","nodeType":"VariableDeclaration","scope":11063,"src":"5831:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11048,"nodeType":"UserDefinedTypeName","pathNode":{"id":11047,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"5831:10:64"},"referencedDeclaration":11045,"src":"5831:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":11051,"mutability":"mutable","name":"value","nameLocation":"5863:5:64","nodeType":"VariableDeclaration","scope":11063,"src":"5855:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5855:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5830:39:64"},"returnParameters":{"id":11055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11054,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11063,"src":"5888:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11053,"name":"bool","nodeType":"ElementaryTypeName","src":"5888:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5887:6:64"},"scope":11439,"src":"5818:123:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11080,"nodeType":"Block","src":"6188:50:64","statements":[{"expression":{"arguments":[{"expression":{"id":11075,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11067,"src":"6213:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"6213:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11077,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11069,"src":"6225:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11074,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"6205:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6205:26:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11073,"id":11079,"nodeType":"Return","src":"6198:33:64"}]},"documentation":{"id":11064,"nodeType":"StructuredDocumentation","src":"5947:157:64","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":11081,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6118:6:64","nodeType":"FunctionDefinition","parameters":{"id":11070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11067,"mutability":"mutable","name":"set","nameLocation":"6144:3:64","nodeType":"VariableDeclaration","scope":11081,"src":"6125:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11066,"nodeType":"UserDefinedTypeName","pathNode":{"id":11065,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"6125:10:64"},"referencedDeclaration":11045,"src":"6125:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":11069,"mutability":"mutable","name":"value","nameLocation":"6157:5:64","nodeType":"VariableDeclaration","scope":11081,"src":"6149:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6149:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6124:39:64"},"returnParameters":{"id":11073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11081,"src":"6182:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11071,"name":"bool","nodeType":"ElementaryTypeName","src":"6182:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6181:6:64"},"scope":11439,"src":"6109:129:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11098,"nodeType":"Block","src":"6405:52:64","statements":[{"expression":{"arguments":[{"expression":{"id":11093,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11085,"src":"6432:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"6432:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11095,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11087,"src":"6444:5:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11092,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10996,"src":"6422:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":11096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6422:28:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11091,"id":11097,"nodeType":"Return","src":"6415:35:64"}]},"documentation":{"id":11082,"nodeType":"StructuredDocumentation","src":"6244:70:64","text":" @dev Returns true if the value is in the set. O(1)."},"id":11099,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6328:8:64","nodeType":"FunctionDefinition","parameters":{"id":11088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11085,"mutability":"mutable","name":"set","nameLocation":"6356:3:64","nodeType":"VariableDeclaration","scope":11099,"src":"6337:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11084,"nodeType":"UserDefinedTypeName","pathNode":{"id":11083,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"6337:10:64"},"referencedDeclaration":11045,"src":"6337:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":11087,"mutability":"mutable","name":"value","nameLocation":"6369:5:64","nodeType":"VariableDeclaration","scope":11099,"src":"6361:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6361:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6336:39:64"},"returnParameters":{"id":11091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11090,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11099,"src":"6399:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11089,"name":"bool","nodeType":"ElementaryTypeName","src":"6399:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6398:6:64"},"scope":11439,"src":"6319:138:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11113,"nodeType":"Block","src":"6610:43:64","statements":[{"expression":{"arguments":[{"expression":{"id":11109,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11103,"src":"6635:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"6635:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11108,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"6627:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":11111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6627:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11107,"id":11112,"nodeType":"Return","src":"6620:26:64"}]},"documentation":{"id":11100,"nodeType":"StructuredDocumentation","src":"6463:70:64","text":" @dev Returns the number of values in the set. O(1)."},"id":11114,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6547:6:64","nodeType":"FunctionDefinition","parameters":{"id":11104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11103,"mutability":"mutable","name":"set","nameLocation":"6573:3:64","nodeType":"VariableDeclaration","scope":11114,"src":"6554:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11102,"nodeType":"UserDefinedTypeName","pathNode":{"id":11101,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"6554:10:64"},"referencedDeclaration":11045,"src":"6554:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"6553:24:64"},"returnParameters":{"id":11107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11114,"src":"6601:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11105,"name":"uint256","nodeType":"ElementaryTypeName","src":"6601:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6600:9:64"},"scope":11439,"src":"6538:115:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11131,"nodeType":"Block","src":"7078:46:64","statements":[{"expression":{"arguments":[{"expression":{"id":11126,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11118,"src":"7099:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"7099:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11128,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11120,"src":"7111:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11125,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11027,"src":"7095:3:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":11129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7095:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11124,"id":11130,"nodeType":"Return","src":"7088:29:64"}]},"documentation":{"id":11115,"nodeType":"StructuredDocumentation","src":"6659:331:64","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":11132,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7004:2:64","nodeType":"FunctionDefinition","parameters":{"id":11121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11118,"mutability":"mutable","name":"set","nameLocation":"7026:3:64","nodeType":"VariableDeclaration","scope":11132,"src":"7007:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11117,"nodeType":"UserDefinedTypeName","pathNode":{"id":11116,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"7007:10:64"},"referencedDeclaration":11045,"src":"7007:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":11120,"mutability":"mutable","name":"index","nameLocation":"7039:5:64","nodeType":"VariableDeclaration","scope":11132,"src":"7031:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11119,"name":"uint256","nodeType":"ElementaryTypeName","src":"7031:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7006:39:64"},"returnParameters":{"id":11124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11123,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11132,"src":"7069:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11122,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7069:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7068:9:64"},"scope":11439,"src":"6995:129:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11147,"nodeType":"Block","src":"7745:43:64","statements":[{"expression":{"arguments":[{"expression":{"id":11143,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11136,"src":"7770:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":11144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11044,"src":"7770:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11142,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11041,"src":"7762:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":11145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7762:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":11141,"id":11146,"nodeType":"Return","src":"7755:26:64"}]},"documentation":{"id":11133,"nodeType":"StructuredDocumentation","src":"7130:529:64","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":11148,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7673:6:64","nodeType":"FunctionDefinition","parameters":{"id":11137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11136,"mutability":"mutable","name":"set","nameLocation":"7699:3:64","nodeType":"VariableDeclaration","scope":11148,"src":"7680:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":11135,"nodeType":"UserDefinedTypeName","pathNode":{"id":11134,"name":"Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"7680:10:64"},"referencedDeclaration":11045,"src":"7680:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"7679:24:64"},"returnParameters":{"id":11141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11148,"src":"7727:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11138,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7727:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11139,"nodeType":"ArrayTypeName","src":"7727:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7726:18:64"},"scope":11439,"src":"7664:124:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.AddressSet","id":11152,"members":[{"constant":false,"id":11151,"mutability":"mutable","name":"_inner","nameLocation":"7845:6:64","nodeType":"VariableDeclaration","scope":11152,"src":"7841:10:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":11150,"nodeType":"UserDefinedTypeName","pathNode":{"id":11149,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"7841:3:64"},"referencedDeclaration":10851,"src":"7841:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"7820:10:64","nodeType":"StructDefinition","scope":11439,"src":"7813:45:64","visibility":"public"},{"body":{"id":11178,"nodeType":"Block","src":"8104:74:64","statements":[{"expression":{"arguments":[{"expression":{"id":11164,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11156,"src":"8126:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"8126:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":11172,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11158,"src":"8162:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8154:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11170,"name":"uint160","nodeType":"ElementaryTypeName","src":"8154:7:64","typeDescriptions":{}}},"id":11173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8154:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8146:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11168,"name":"uint256","nodeType":"ElementaryTypeName","src":"8146:7:64","typeDescriptions":{}}},"id":11174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8146:23:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8138:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8138:7:64","typeDescriptions":{}}},"id":11175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8138:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11163,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10893,"src":"8121:4:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8121:50:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11162,"id":11177,"nodeType":"Return","src":"8114:57:64"}]},"documentation":{"id":11153,"nodeType":"StructuredDocumentation","src":"7864:159:64","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":11179,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8037:3:64","nodeType":"FunctionDefinition","parameters":{"id":11159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11156,"mutability":"mutable","name":"set","nameLocation":"8060:3:64","nodeType":"VariableDeclaration","scope":11179,"src":"8041:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11155,"nodeType":"UserDefinedTypeName","pathNode":{"id":11154,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"8041:10:64"},"referencedDeclaration":11152,"src":"8041:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":11158,"mutability":"mutable","name":"value","nameLocation":"8073:5:64","nodeType":"VariableDeclaration","scope":11179,"src":"8065:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11157,"name":"address","nodeType":"ElementaryTypeName","src":"8065:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8040:39:64"},"returnParameters":{"id":11162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11161,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11179,"src":"8098:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11160,"name":"bool","nodeType":"ElementaryTypeName","src":"8098:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8097:6:64"},"scope":11439,"src":"8028:150:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11205,"nodeType":"Block","src":"8425:77:64","statements":[{"expression":{"arguments":[{"expression":{"id":11191,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11183,"src":"8450:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"8450:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":11199,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11185,"src":"8486:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8478:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11197,"name":"uint160","nodeType":"ElementaryTypeName","src":"8478:7:64","typeDescriptions":{}}},"id":11200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8478:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8470:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11195,"name":"uint256","nodeType":"ElementaryTypeName","src":"8470:7:64","typeDescriptions":{}}},"id":11201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8470:23:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8462:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8462:7:64","typeDescriptions":{}}},"id":11202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8462:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11190,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"8442:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8442:53:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11189,"id":11204,"nodeType":"Return","src":"8435:60:64"}]},"documentation":{"id":11180,"nodeType":"StructuredDocumentation","src":"8184:157:64","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":11206,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8355:6:64","nodeType":"FunctionDefinition","parameters":{"id":11186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11183,"mutability":"mutable","name":"set","nameLocation":"8381:3:64","nodeType":"VariableDeclaration","scope":11206,"src":"8362:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11182,"nodeType":"UserDefinedTypeName","pathNode":{"id":11181,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"8362:10:64"},"referencedDeclaration":11152,"src":"8362:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":11185,"mutability":"mutable","name":"value","nameLocation":"8394:5:64","nodeType":"VariableDeclaration","scope":11206,"src":"8386:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11184,"name":"address","nodeType":"ElementaryTypeName","src":"8386:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8361:39:64"},"returnParameters":{"id":11189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11188,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11206,"src":"8419:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11187,"name":"bool","nodeType":"ElementaryTypeName","src":"8419:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8418:6:64"},"scope":11439,"src":"8346:156:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11232,"nodeType":"Block","src":"8669:79:64","statements":[{"expression":{"arguments":[{"expression":{"id":11218,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11210,"src":"8696:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"8696:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":11226,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11212,"src":"8732:5:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8724:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11224,"name":"uint160","nodeType":"ElementaryTypeName","src":"8724:7:64","typeDescriptions":{}}},"id":11227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8724:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11223,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8716:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11222,"name":"uint256","nodeType":"ElementaryTypeName","src":"8716:7:64","typeDescriptions":{}}},"id":11228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8716:23:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8708:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8708:7:64","typeDescriptions":{}}},"id":11229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8708:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11217,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10996,"src":"8686:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":11230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8686:55:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11216,"id":11231,"nodeType":"Return","src":"8679:62:64"}]},"documentation":{"id":11207,"nodeType":"StructuredDocumentation","src":"8508:70:64","text":" @dev Returns true if the value is in the set. O(1)."},"id":11233,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8592:8:64","nodeType":"FunctionDefinition","parameters":{"id":11213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11210,"mutability":"mutable","name":"set","nameLocation":"8620:3:64","nodeType":"VariableDeclaration","scope":11233,"src":"8601:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11209,"nodeType":"UserDefinedTypeName","pathNode":{"id":11208,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"8601:10:64"},"referencedDeclaration":11152,"src":"8601:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":11212,"mutability":"mutable","name":"value","nameLocation":"8633:5:64","nodeType":"VariableDeclaration","scope":11233,"src":"8625:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11211,"name":"address","nodeType":"ElementaryTypeName","src":"8625:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8600:39:64"},"returnParameters":{"id":11216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11215,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11233,"src":"8663:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11214,"name":"bool","nodeType":"ElementaryTypeName","src":"8663:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8662:6:64"},"scope":11439,"src":"8583:165:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11247,"nodeType":"Block","src":"8901:43:64","statements":[{"expression":{"arguments":[{"expression":{"id":11243,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11237,"src":"8926:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"8926:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11242,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"8918:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":11245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8918:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11241,"id":11246,"nodeType":"Return","src":"8911:26:64"}]},"documentation":{"id":11234,"nodeType":"StructuredDocumentation","src":"8754:70:64","text":" @dev Returns the number of values in the set. O(1)."},"id":11248,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"8838:6:64","nodeType":"FunctionDefinition","parameters":{"id":11238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11237,"mutability":"mutable","name":"set","nameLocation":"8864:3:64","nodeType":"VariableDeclaration","scope":11248,"src":"8845:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11236,"nodeType":"UserDefinedTypeName","pathNode":{"id":11235,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"8845:10:64"},"referencedDeclaration":11152,"src":"8845:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"8844:24:64"},"returnParameters":{"id":11241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11248,"src":"8892:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11239,"name":"uint256","nodeType":"ElementaryTypeName","src":"8892:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8891:9:64"},"scope":11439,"src":"8829:115:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11274,"nodeType":"Block","src":"9369:73:64","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":11266,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11252,"src":"9414:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11267,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"9414:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11268,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11254,"src":"9426:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11265,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11027,"src":"9410:3:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":11269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9410:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9402:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11263,"name":"uint256","nodeType":"ElementaryTypeName","src":"9402:7:64","typeDescriptions":{}}},"id":11270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9402:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9394:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11261,"name":"uint160","nodeType":"ElementaryTypeName","src":"9394:7:64","typeDescriptions":{}}},"id":11271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9394:40:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9386:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11259,"name":"address","nodeType":"ElementaryTypeName","src":"9386:7:64","typeDescriptions":{}}},"id":11272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9386:49:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11258,"id":11273,"nodeType":"Return","src":"9379:56:64"}]},"documentation":{"id":11249,"nodeType":"StructuredDocumentation","src":"8950:331:64","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":11275,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9295:2:64","nodeType":"FunctionDefinition","parameters":{"id":11255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11252,"mutability":"mutable","name":"set","nameLocation":"9317:3:64","nodeType":"VariableDeclaration","scope":11275,"src":"9298:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11251,"nodeType":"UserDefinedTypeName","pathNode":{"id":11250,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"9298:10:64"},"referencedDeclaration":11152,"src":"9298:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":11254,"mutability":"mutable","name":"index","nameLocation":"9330:5:64","nodeType":"VariableDeclaration","scope":11275,"src":"9322:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11253,"name":"uint256","nodeType":"ElementaryTypeName","src":"9322:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9297:39:64"},"returnParameters":{"id":11258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11275,"src":"9360:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11256,"name":"address","nodeType":"ElementaryTypeName","src":"9360:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9359:9:64"},"scope":11439,"src":"9286:156:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11304,"nodeType":"Block","src":"10063:219:64","statements":[{"assignments":[11289],"declarations":[{"constant":false,"id":11289,"mutability":"mutable","name":"store","nameLocation":"10090:5:64","nodeType":"VariableDeclaration","scope":11304,"src":"10073:22:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10073:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11288,"nodeType":"ArrayTypeName","src":"10073:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":11294,"initialValue":{"arguments":[{"expression":{"id":11291,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11279,"src":"10106:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":11292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11151,"src":"10106:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11290,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11041,"src":"10098:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":11293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10098:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10073:44:64"},{"assignments":[11299],"declarations":[{"constant":false,"id":11299,"mutability":"mutable","name":"result","nameLocation":"10144:6:64","nodeType":"VariableDeclaration","scope":11304,"src":"10127:23:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11297,"name":"address","nodeType":"ElementaryTypeName","src":"10127:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11298,"nodeType":"ArrayTypeName","src":"10127:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":11300,"nodeType":"VariableDeclarationStatement","src":"10127:23:64"},{"AST":{"nodeType":"YulBlock","src":"10213:39:64","statements":[{"nodeType":"YulAssignment","src":"10227:15:64","value":{"name":"store","nodeType":"YulIdentifier","src":"10237:5:64"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10227:6:64"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":11299,"isOffset":false,"isSlot":false,"src":"10227:6:64","valueSize":1},{"declaration":11289,"isOffset":false,"isSlot":false,"src":"10237:5:64","valueSize":1}],"id":11301,"nodeType":"InlineAssembly","src":"10204:48:64"},{"expression":{"id":11302,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11299,"src":"10269:6:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":11284,"id":11303,"nodeType":"Return","src":"10262:13:64"}]},"documentation":{"id":11276,"nodeType":"StructuredDocumentation","src":"9448:529:64","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":11305,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"9991:6:64","nodeType":"FunctionDefinition","parameters":{"id":11280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11279,"mutability":"mutable","name":"set","nameLocation":"10017:3:64","nodeType":"VariableDeclaration","scope":11305,"src":"9998:22:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":11278,"nodeType":"UserDefinedTypeName","pathNode":{"id":11277,"name":"AddressSet","nodeType":"IdentifierPath","referencedDeclaration":11152,"src":"9998:10:64"},"referencedDeclaration":11152,"src":"9998:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$11152_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"9997:24:64"},"returnParameters":{"id":11284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11283,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11305,"src":"10045:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11281,"name":"address","nodeType":"ElementaryTypeName","src":"10045:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11282,"nodeType":"ArrayTypeName","src":"10045:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10044:18:64"},"scope":11439,"src":"9982:300:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.UintSet","id":11309,"members":[{"constant":false,"id":11308,"mutability":"mutable","name":"_inner","nameLocation":"10333:6:64","nodeType":"VariableDeclaration","scope":11309,"src":"10329:10:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":11307,"nodeType":"UserDefinedTypeName","pathNode":{"id":11306,"name":"Set","nodeType":"IdentifierPath","referencedDeclaration":10851,"src":"10329:3:64"},"referencedDeclaration":10851,"src":"10329:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10311:7:64","nodeType":"StructDefinition","scope":11439,"src":"10304:42:64","visibility":"public"},{"body":{"id":11329,"nodeType":"Block","src":"10589:56:64","statements":[{"expression":{"arguments":[{"expression":{"id":11321,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11313,"src":"10611:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"10611:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":11325,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11315,"src":"10631:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10623:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10623:7:64","typeDescriptions":{}}},"id":11326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10623:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11320,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10893,"src":"10606:4:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10606:32:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11319,"id":11328,"nodeType":"Return","src":"10599:39:64"}]},"documentation":{"id":11310,"nodeType":"StructuredDocumentation","src":"10352:159:64","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":11330,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10525:3:64","nodeType":"FunctionDefinition","parameters":{"id":11316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11313,"mutability":"mutable","name":"set","nameLocation":"10545:3:64","nodeType":"VariableDeclaration","scope":11330,"src":"10529:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11312,"nodeType":"UserDefinedTypeName","pathNode":{"id":11311,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"10529:7:64"},"referencedDeclaration":11309,"src":"10529:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":11315,"mutability":"mutable","name":"value","nameLocation":"10558:5:64","nodeType":"VariableDeclaration","scope":11330,"src":"10550:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11314,"name":"uint256","nodeType":"ElementaryTypeName","src":"10550:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10528:36:64"},"returnParameters":{"id":11319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11330,"src":"10583:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11317,"name":"bool","nodeType":"ElementaryTypeName","src":"10583:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10582:6:64"},"scope":11439,"src":"10516:129:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11350,"nodeType":"Block","src":"10889:59:64","statements":[{"expression":{"arguments":[{"expression":{"id":11342,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11334,"src":"10914:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"10914:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":11346,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11336,"src":"10934:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10926:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10926:7:64","typeDescriptions":{}}},"id":11347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10926:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11341,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"10906:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":11348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10906:35:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11340,"id":11349,"nodeType":"Return","src":"10899:42:64"}]},"documentation":{"id":11331,"nodeType":"StructuredDocumentation","src":"10651:157:64","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":11351,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"10822:6:64","nodeType":"FunctionDefinition","parameters":{"id":11337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11334,"mutability":"mutable","name":"set","nameLocation":"10845:3:64","nodeType":"VariableDeclaration","scope":11351,"src":"10829:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11333,"nodeType":"UserDefinedTypeName","pathNode":{"id":11332,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"10829:7:64"},"referencedDeclaration":11309,"src":"10829:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":11336,"mutability":"mutable","name":"value","nameLocation":"10858:5:64","nodeType":"VariableDeclaration","scope":11351,"src":"10850:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11335,"name":"uint256","nodeType":"ElementaryTypeName","src":"10850:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10828:36:64"},"returnParameters":{"id":11340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11339,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11351,"src":"10883:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11338,"name":"bool","nodeType":"ElementaryTypeName","src":"10883:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10882:6:64"},"scope":11439,"src":"10813:135:64","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":11371,"nodeType":"Block","src":"11112:61:64","statements":[{"expression":{"arguments":[{"expression":{"id":11363,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11355,"src":"11139:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"11139:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":11367,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11357,"src":"11159:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11151:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11151:7:64","typeDescriptions":{}}},"id":11368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11151:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11362,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10996,"src":"11129:9:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":11369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11129:37:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11361,"id":11370,"nodeType":"Return","src":"11122:44:64"}]},"documentation":{"id":11352,"nodeType":"StructuredDocumentation","src":"10954:70:64","text":" @dev Returns true if the value is in the set. O(1)."},"id":11372,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11038:8:64","nodeType":"FunctionDefinition","parameters":{"id":11358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11355,"mutability":"mutable","name":"set","nameLocation":"11063:3:64","nodeType":"VariableDeclaration","scope":11372,"src":"11047:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11354,"nodeType":"UserDefinedTypeName","pathNode":{"id":11353,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"11047:7:64"},"referencedDeclaration":11309,"src":"11047:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":11357,"mutability":"mutable","name":"value","nameLocation":"11076:5:64","nodeType":"VariableDeclaration","scope":11372,"src":"11068:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11356,"name":"uint256","nodeType":"ElementaryTypeName","src":"11068:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11046:36:64"},"returnParameters":{"id":11361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11372,"src":"11106:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11359,"name":"bool","nodeType":"ElementaryTypeName","src":"11106:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11105:6:64"},"scope":11439,"src":"11029:144:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11386,"nodeType":"Block","src":"11323:43:64","statements":[{"expression":{"arguments":[{"expression":{"id":11382,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11376,"src":"11348:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"11348:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11381,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11010,"src":"11340:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":11384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11340:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11380,"id":11385,"nodeType":"Return","src":"11333:26:64"}]},"documentation":{"id":11373,"nodeType":"StructuredDocumentation","src":"11179:70:64","text":" @dev Returns the number of values on the set. O(1)."},"id":11387,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11263:6:64","nodeType":"FunctionDefinition","parameters":{"id":11377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11376,"mutability":"mutable","name":"set","nameLocation":"11286:3:64","nodeType":"VariableDeclaration","scope":11387,"src":"11270:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11375,"nodeType":"UserDefinedTypeName","pathNode":{"id":11374,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"11270:7:64"},"referencedDeclaration":11309,"src":"11270:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"11269:21:64"},"returnParameters":{"id":11380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11379,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11387,"src":"11314:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11378,"name":"uint256","nodeType":"ElementaryTypeName","src":"11314:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11313:9:64"},"scope":11439,"src":"11254:112:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11407,"nodeType":"Block","src":"11788:55:64","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":11401,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11391,"src":"11817:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"11817:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":11403,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11393,"src":"11829:5:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11400,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11027,"src":"11813:3:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":11404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11813:22:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11805:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11398,"name":"uint256","nodeType":"ElementaryTypeName","src":"11805:7:64","typeDescriptions":{}}},"id":11405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11805:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11397,"id":11406,"nodeType":"Return","src":"11798:38:64"}]},"documentation":{"id":11388,"nodeType":"StructuredDocumentation","src":"11372:331:64","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":11408,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"11717:2:64","nodeType":"FunctionDefinition","parameters":{"id":11394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11391,"mutability":"mutable","name":"set","nameLocation":"11736:3:64","nodeType":"VariableDeclaration","scope":11408,"src":"11720:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11390,"nodeType":"UserDefinedTypeName","pathNode":{"id":11389,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"11720:7:64"},"referencedDeclaration":11309,"src":"11720:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":11393,"mutability":"mutable","name":"index","nameLocation":"11749:5:64","nodeType":"VariableDeclaration","scope":11408,"src":"11741:13:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11392,"name":"uint256","nodeType":"ElementaryTypeName","src":"11741:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11719:36:64"},"returnParameters":{"id":11397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11396,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11408,"src":"11779:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11395,"name":"uint256","nodeType":"ElementaryTypeName","src":"11779:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11778:9:64"},"scope":11439,"src":"11708:135:64","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":11437,"nodeType":"Block","src":"12461:219:64","statements":[{"assignments":[11422],"declarations":[{"constant":false,"id":11422,"mutability":"mutable","name":"store","nameLocation":"12488:5:64","nodeType":"VariableDeclaration","scope":11437,"src":"12471:22:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12471:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11421,"nodeType":"ArrayTypeName","src":"12471:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":11427,"initialValue":{"arguments":[{"expression":{"id":11424,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11412,"src":"12504:3:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":11425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":11308,"src":"12504:10:64","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$10851_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":11423,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11041,"src":"12496:7:64","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$10851_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":11426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12496:19:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12471:44:64"},{"assignments":[11432],"declarations":[{"constant":false,"id":11432,"mutability":"mutable","name":"result","nameLocation":"12542:6:64","nodeType":"VariableDeclaration","scope":11437,"src":"12525:23:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11430,"name":"uint256","nodeType":"ElementaryTypeName","src":"12525:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11431,"nodeType":"ArrayTypeName","src":"12525:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":11433,"nodeType":"VariableDeclarationStatement","src":"12525:23:64"},{"AST":{"nodeType":"YulBlock","src":"12611:39:64","statements":[{"nodeType":"YulAssignment","src":"12625:15:64","value":{"name":"store","nodeType":"YulIdentifier","src":"12635:5:64"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12625:6:64"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"istanbul","externalReferences":[{"declaration":11432,"isOffset":false,"isSlot":false,"src":"12625:6:64","valueSize":1},{"declaration":11422,"isOffset":false,"isSlot":false,"src":"12635:5:64","valueSize":1}],"id":11434,"nodeType":"InlineAssembly","src":"12602:48:64"},{"expression":{"id":11435,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11432,"src":"12667:6:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":11417,"id":11436,"nodeType":"Return","src":"12660:13:64"}]},"documentation":{"id":11409,"nodeType":"StructuredDocumentation","src":"11849:529:64","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":11438,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12392:6:64","nodeType":"FunctionDefinition","parameters":{"id":11413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11412,"mutability":"mutable","name":"set","nameLocation":"12415:3:64","nodeType":"VariableDeclaration","scope":11438,"src":"12399:19:64","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":11411,"nodeType":"UserDefinedTypeName","pathNode":{"id":11410,"name":"UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"12399:7:64"},"referencedDeclaration":11309,"src":"12399:7:64","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"12398:21:64"},"returnParameters":{"id":11417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11438,"src":"12443:16:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11414,"name":"uint256","nodeType":"ElementaryTypeName","src":"12443:7:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11415,"nodeType":"ArrayTypeName","src":"12443:9:64","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12442:18:64"},"scope":11439,"src":"12383:297:64","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":11440,"src":"1228:11454:64"}],"src":"115:12568:64"},"id":64},"contracts/Migrations.sol":{"ast":{"absolutePath":"contracts/Migrations.sol","exportedSymbols":{"Migrations":[11497]},"id":11498,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":11441,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:65"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":11497,"linearizedBaseContracts":[11497],"name":"Migrations","nameLocation":"72:10:65","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"8da5cb5b","id":11443,"mutability":"mutable","name":"owner","nameLocation":"104:5:65","nodeType":"VariableDeclaration","scope":11497,"src":"89:20:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11442,"name":"address","nodeType":"ElementaryTypeName","src":"89:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"constant":false,"functionSelector":"445df0ac","id":11445,"mutability":"mutable","name":"last_completed_migration","nameLocation":"130:24:65","nodeType":"VariableDeclaration","scope":11497,"src":"115:39:65","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11444,"name":"uint256","nodeType":"ElementaryTypeName","src":"115:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"body":{"id":11453,"nodeType":"Block","src":"199:35:65","statements":[{"expression":{"id":11451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11448,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11443,"src":"209:5:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":11449,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"217:3:65","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"217:10:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"209:18:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11452,"nodeType":"ExpressionStatement","src":"209:18:65"}]},"id":11454,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11446,"nodeType":"ParameterList","parameters":[],"src":"196:2:65"},"returnParameters":{"id":11447,"nodeType":"ParameterList","parameters":[],"src":"199:0:65"},"scope":11497,"src":"185:49:65","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11462,"nodeType":"Block","src":"262:43:65","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11456,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"276:3:65","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"276:10:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":11458,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11443,"src":"290:5:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"276:19:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11461,"nodeType":"IfStatement","src":"272:26:65","trueBody":{"id":11460,"nodeType":"PlaceholderStatement","src":"297:1:65"}}]},"id":11463,"name":"restricted","nameLocation":"249:10:65","nodeType":"ModifierDefinition","parameters":{"id":11455,"nodeType":"ParameterList","parameters":[],"src":"259:2:65"},"src":"240:65:65","virtual":false,"visibility":"internal"},{"body":{"id":11474,"nodeType":"Block","src":"371:54:65","statements":[{"expression":{"id":11472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11470,"name":"last_completed_migration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11445,"src":"381:24:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11471,"name":"_completed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11465,"src":"408:10:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"381:37:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11473,"nodeType":"ExpressionStatement","src":"381:37:65"}]},"functionSelector":"fdacd576","id":11475,"implemented":true,"kind":"function","modifiers":[{"id":11468,"modifierName":{"id":11467,"name":"restricted","nodeType":"IdentifierPath","referencedDeclaration":11463,"src":"360:10:65"},"nodeType":"ModifierInvocation","src":"360:10:65"}],"name":"setCompleted","nameLocation":"320:12:65","nodeType":"FunctionDefinition","parameters":{"id":11466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11465,"mutability":"mutable","name":"_completed","nameLocation":"341:10:65","nodeType":"VariableDeclaration","scope":11475,"src":"333:18:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11464,"name":"uint256","nodeType":"ElementaryTypeName","src":"333:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"332:20:65"},"returnParameters":{"id":11469,"nodeType":"ParameterList","parameters":[],"src":"371:0:65"},"scope":11497,"src":"311:114:65","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11495,"nodeType":"Block","src":"487:119:65","statements":[{"assignments":[11484],"declarations":[{"constant":false,"id":11484,"mutability":"mutable","name":"upgraded","nameLocation":"508:8:65","nodeType":"VariableDeclaration","scope":11495,"src":"497:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$11497","typeString":"contract Migrations"},"typeName":{"id":11483,"nodeType":"UserDefinedTypeName","pathNode":{"id":11482,"name":"Migrations","nodeType":"IdentifierPath","referencedDeclaration":11497,"src":"497:10:65"},"referencedDeclaration":11497,"src":"497:10:65","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$11497","typeString":"contract Migrations"}},"visibility":"internal"}],"id":11488,"initialValue":{"arguments":[{"id":11486,"name":"_newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11477,"src":"530:11:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11485,"name":"Migrations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11497,"src":"519:10:65","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Migrations_$11497_$","typeString":"type(contract Migrations)"}},"id":11487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"519:23:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$11497","typeString":"contract Migrations"}},"nodeType":"VariableDeclarationStatement","src":"497:45:65"},{"expression":{"arguments":[{"id":11492,"name":"last_completed_migration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11445,"src":"574:24:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11489,"name":"upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11484,"src":"552:8:65","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$11497","typeString":"contract Migrations"}},"id":11491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setCompleted","nodeType":"MemberAccess","referencedDeclaration":11475,"src":"552:21:65","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":11493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"552:47:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11494,"nodeType":"ExpressionStatement","src":"552:47:65"}]},"functionSelector":"0900f010","id":11496,"implemented":true,"kind":"function","modifiers":[{"id":11480,"modifierName":{"id":11479,"name":"restricted","nodeType":"IdentifierPath","referencedDeclaration":11463,"src":"476:10:65"},"nodeType":"ModifierInvocation","src":"476:10:65"}],"name":"upgrade","nameLocation":"440:7:65","nodeType":"FunctionDefinition","parameters":{"id":11478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11477,"mutability":"mutable","name":"_newAddress","nameLocation":"456:11:65","nodeType":"VariableDeclaration","scope":11496,"src":"448:19:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11476,"name":"address","nodeType":"ElementaryTypeName","src":"448:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"447:21:65"},"returnParameters":{"id":11481,"nodeType":"ParameterList","parameters":[],"src":"487:0:65"},"scope":11497,"src":"431:175:65","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":11498,"src":"63:545:65"}],"src":"39:570:65"},"id":65},"contracts/examples/AyiiOracle.sol":{"ast":{"absolutePath":"contracts/examples/AyiiOracle.sol","exportedSymbols":{"AyiiOracle":[11825],"BufferChainlink":[1718],"CBORChainlink":[2165],"Chainlink":[268],"ChainlinkClient":[861],"ChainlinkRequestInterface":[894],"Component":[2884],"Context":[10518],"ENSInterface":[974],"ENSResolver_Chainlink":[2175],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"LinkTokenInterface":[1069],"OperatorInterface":[1149],"Oracle":[3414],"OracleInterface":[1188],"Ownable":[7481],"PointerInterface":[1196],"strings":[14536]},"id":11826,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11499,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"32:22:66"},{"absolutePath":"contracts/examples/strings.sol","file":"./strings.sol","id":11500,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11826,"sourceUnit":14537,"src":"56:23:66","symbolAliases":[],"unitAlias":""},{"absolutePath":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","file":"@chainlink/contracts/src/v0.8/ChainlinkClient.sol","id":11501,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11826,"sourceUnit":862,"src":"81:59:66","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Oracle.sol","file":"@etherisc/gif-interface/contracts/components/Oracle.sol","id":11502,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":11826,"sourceUnit":3415,"src":"141:65:66","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11503,"name":"Oracle","nodeType":"IdentifierPath","referencedDeclaration":3414,"src":"236:6:66"},"id":11504,"nodeType":"InheritanceSpecifier","src":"236:6:66"},{"baseName":{"id":11505,"name":"ChainlinkClient","nodeType":"IdentifierPath","referencedDeclaration":861,"src":"244:15:66"},"id":11506,"nodeType":"InheritanceSpecifier","src":"244:15:66"}],"contractDependencies":[861,2884,2988,3022,3414,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":11825,"linearizedBaseContracts":[11825,861,3414,2884,7481,10518,5073,3022,2988],"name":"AyiiOracle","nameLocation":"217:10:66","nodeType":"ContractDefinition","nodes":[{"id":11509,"libraryName":{"id":11507,"name":"strings","nodeType":"IdentifierPath","referencedDeclaration":14536,"src":"273:7:66"},"nodeType":"UsingForDirective","src":"267:26:66","typeName":{"id":11508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":11513,"libraryName":{"id":11510,"name":"Chainlink","nodeType":"IdentifierPath","referencedDeclaration":268,"src":"304:9:66"},"nodeType":"UsingForDirective","src":"298:38:66","typeName":{"id":11512,"nodeType":"UserDefinedTypeName","pathNode":{"id":11511,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"318:17:66"},"referencedDeclaration":25,"src":"318:17:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}}},{"constant":false,"functionSelector":"3fb80f51","id":11517,"mutability":"mutable","name":"gifRequests","nameLocation":"425:11:66","nodeType":"VariableDeclaration","scope":11825,"src":"342:94:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":11516,"keyType":{"id":11514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"350:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"342:75:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":11515,"name":"uint256","nodeType":"ElementaryTypeName","src":"388:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"functionSelector":"c2939d97","id":11519,"mutability":"mutable","name":"jobId","nameLocation":"457:5:66","nodeType":"VariableDeclaration","scope":11825,"src":"442:20:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"442:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"42f6487a","id":11521,"mutability":"mutable","name":"payment","nameLocation":"483:7:66","nodeType":"VariableDeclaration","scope":11825,"src":"468:22:66","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11520,"name":"uint256","nodeType":"ElementaryTypeName","src":"468:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"id":11527,"name":"LogAyiiRequest","nameLocation":"503:14:66","nodeType":"EventDefinition","parameters":{"id":11526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11523,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"526:9:66","nodeType":"VariableDeclaration","scope":11527,"src":"518:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11522,"name":"uint256","nodeType":"ElementaryTypeName","src":"518:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11525,"indexed":false,"mutability":"mutable","name":"chainlinkRequestId","nameLocation":"545:18:66","nodeType":"VariableDeclaration","scope":11527,"src":"537:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"537:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"517:47:66"},"src":"497:68:66"},{"anonymous":false,"id":11541,"name":"LogAyiiFulfill","nameLocation":"581:14:66","nodeType":"EventDefinition","parameters":{"id":11540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11529,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"613:9:66","nodeType":"VariableDeclaration","scope":11541,"src":"605:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11528,"name":"uint256","nodeType":"ElementaryTypeName","src":"605:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11531,"indexed":false,"mutability":"mutable","name":"chainlinkRequestId","nameLocation":"641:18:66","nodeType":"VariableDeclaration","scope":11541,"src":"633:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"633:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11533,"indexed":false,"mutability":"mutable","name":"projectId","nameLocation":"678:9:66","nodeType":"VariableDeclaration","scope":11541,"src":"670:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11532,"name":"bytes32","nodeType":"ElementaryTypeName","src":"670:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11535,"indexed":false,"mutability":"mutable","name":"uaiId","nameLocation":"705:5:66","nodeType":"VariableDeclaration","scope":11541,"src":"697:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11534,"name":"bytes32","nodeType":"ElementaryTypeName","src":"697:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11537,"indexed":false,"mutability":"mutable","name":"cropId","nameLocation":"728:6:66","nodeType":"VariableDeclaration","scope":11541,"src":"720:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"720:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11539,"indexed":false,"mutability":"mutable","name":"aaay","nameLocation":"752:4:66","nodeType":"VariableDeclaration","scope":11541,"src":"744:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11538,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"595:167:66"},"src":"575:188:66"},{"body":{"id":11567,"nodeType":"Block","src":"993:144:66","statements":[{"expression":{"arguments":[{"id":11561,"name":"_chainLinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11547,"src":"1037:15:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11562,"name":"_chainLinkOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11549,"src":"1067:18:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11563,"name":"_jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"1100:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11564,"name":"_payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11553,"src":"1121:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11560,"name":"updateRequestDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11614,"src":"1003:20:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (address,address,bytes32,uint256)"}},"id":11565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1003:127:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11566,"nodeType":"ExpressionStatement","src":"1003:127:66"}]},"id":11568,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":11556,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11543,"src":"971:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11557,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11545,"src":"978:9:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":11558,"modifierName":{"id":11555,"name":"Oracle","nodeType":"IdentifierPath","referencedDeclaration":3414,"src":"964:6:66"},"nodeType":"ModifierInvocation","src":"964:24:66"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":11554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11543,"mutability":"mutable","name":"_name","nameLocation":"798:5:66","nodeType":"VariableDeclaration","scope":11568,"src":"790:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"790:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11545,"mutability":"mutable","name":"_registry","nameLocation":"821:9:66","nodeType":"VariableDeclaration","scope":11568,"src":"813:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11544,"name":"address","nodeType":"ElementaryTypeName","src":"813:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11547,"mutability":"mutable","name":"_chainLinkToken","nameLocation":"848:15:66","nodeType":"VariableDeclaration","scope":11568,"src":"840:23:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11546,"name":"address","nodeType":"ElementaryTypeName","src":"840:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11549,"mutability":"mutable","name":"_chainLinkOperator","nameLocation":"881:18:66","nodeType":"VariableDeclaration","scope":11568,"src":"873:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11548,"name":"address","nodeType":"ElementaryTypeName","src":"873:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11551,"mutability":"mutable","name":"_jobId","nameLocation":"917:6:66","nodeType":"VariableDeclaration","scope":11568,"src":"909:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"909:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11553,"mutability":"mutable","name":"_payment","nameLocation":"941:8:66","nodeType":"VariableDeclaration","scope":11568,"src":"933:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11552,"name":"uint256","nodeType":"ElementaryTypeName","src":"933:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"780:175:66"},"returnParameters":{"id":11559,"nodeType":"ParameterList","parameters":[],"src":"993:0:66"},"scope":11825,"src":"769:368:66","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":11613,"nodeType":"Block","src":"1338:241:66","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11581,"name":"_chainLinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11570,"src":"1352:15:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1379:1:66","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1371:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11582,"name":"address","nodeType":"ElementaryTypeName","src":"1371:7:66","typeDescriptions":{}}},"id":11585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1371:10:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1352:29:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11592,"nodeType":"IfStatement","src":"1348:74:66","trueBody":{"id":11591,"nodeType":"Block","src":"1383:39:66","statements":[{"expression":{"arguments":[{"id":11588,"name":"_chainLinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11570,"src":"1403:15:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11587,"name":"setChainlinkToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":669,"src":"1385:17:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1385:34:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11590,"nodeType":"ExpressionStatement","src":"1385:34:66"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11593,"name":"_chainLinkOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11572,"src":"1435:18:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":11596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1465:1:66","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1457:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11594,"name":"address","nodeType":"ElementaryTypeName","src":"1457:7:66","typeDescriptions":{}}},"id":11597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1457:10:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1435:32:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11604,"nodeType":"IfStatement","src":"1431:81:66","trueBody":{"id":11603,"nodeType":"Block","src":"1469:43:66","statements":[{"expression":{"arguments":[{"id":11600,"name":"_chainLinkOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11572,"src":"1490:18:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11599,"name":"setChainlinkOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":656,"src":"1471:18:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1471:38:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11602,"nodeType":"ExpressionStatement","src":"1471:38:66"}]}},{"expression":{"id":11607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11605,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11519,"src":"1530:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11606,"name":"_jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11574,"src":"1538:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1530:14:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11608,"nodeType":"ExpressionStatement","src":"1530:14:66"},{"expression":{"id":11611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11609,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11521,"src":"1554:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11610,"name":"_payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11576,"src":"1564:8:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1554:18:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11612,"nodeType":"ExpressionStatement","src":"1554:18:66"}]},"functionSelector":"ca5ddcf3","id":11614,"implemented":true,"kind":"function","modifiers":[{"id":11579,"modifierName":{"id":11578,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"1323:9:66"},"nodeType":"ModifierInvocation","src":"1323:9:66"}],"name":"updateRequestDetails","nameLocation":"1152:20:66","nodeType":"FunctionDefinition","parameters":{"id":11577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11570,"mutability":"mutable","name":"_chainLinkToken","nameLocation":"1190:15:66","nodeType":"VariableDeclaration","scope":11614,"src":"1182:23:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11569,"name":"address","nodeType":"ElementaryTypeName","src":"1182:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11572,"mutability":"mutable","name":"_chainLinkOperator","nameLocation":"1223:18:66","nodeType":"VariableDeclaration","scope":11614,"src":"1215:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11571,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11574,"mutability":"mutable","name":"_jobId","nameLocation":"1259:6:66","nodeType":"VariableDeclaration","scope":11614,"src":"1251:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1251:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11576,"mutability":"mutable","name":"_payment","nameLocation":"1283:8:66","nodeType":"VariableDeclaration","scope":11614,"src":"1275:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11575,"name":"uint256","nodeType":"ElementaryTypeName","src":"1275:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1172:125:66"},"returnParameters":{"id":11580,"nodeType":"ParameterList","parameters":[],"src":"1338:0:66"},"scope":11825,"src":"1143:436:66","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3016],"body":{"id":11703,"nodeType":"Block","src":"1694:689:66","statements":[{"assignments":[11628],"declarations":[{"constant":false,"id":11628,"mutability":"mutable","name":"request_","nameLocation":"1729:8:66","nodeType":"VariableDeclaration","scope":11703,"src":"1704:33:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request"},"typeName":{"id":11627,"nodeType":"UserDefinedTypeName","pathNode":{"id":11626,"name":"Chainlink.Request","nodeType":"IdentifierPath","referencedDeclaration":25,"src":"1704:17:66"},"referencedDeclaration":25,"src":"1704:17:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_storage_ptr","typeString":"struct Chainlink.Request"}},"visibility":"internal"}],"id":11639,"initialValue":{"arguments":[{"id":11630,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11519,"src":"1775:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":11633,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1802:4:66","typeDescriptions":{"typeIdentifier":"t_contract$_AyiiOracle_$11825","typeString":"contract AyiiOracle"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AyiiOracle_$11825","typeString":"contract AyiiOracle"}],"id":11632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1794:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11631,"name":"address","nodeType":"ElementaryTypeName","src":"1794:7:66","typeDescriptions":{}}},"id":11634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1794:13:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":11635,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1821:4:66","typeDescriptions":{"typeIdentifier":"t_contract$_AyiiOracle_$11825","typeString":"contract AyiiOracle"}},"id":11636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fulfill","nodeType":"MemberAccess","referencedDeclaration":11756,"src":"1821:12:66","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,bytes32,bytes32,bytes32,uint256) external"}},"id":11637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"1821:21:66","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":11629,"name":"buildChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":373,"src":"1740:21:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (bytes32,address,bytes4) pure returns (struct Chainlink.Request memory)"}},"id":11638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1740:112:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"nodeType":"VariableDeclarationStatement","src":"1704:148:66"},{"assignments":[11641,11643,11645],"declarations":[{"constant":false,"id":11641,"mutability":"mutable","name":"projectId","nameLocation":"1885:9:66","nodeType":"VariableDeclaration","scope":11703,"src":"1877:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1877:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11643,"mutability":"mutable","name":"uaiId","nameLocation":"1917:5:66","nodeType":"VariableDeclaration","scope":11703,"src":"1909:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11642,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1909:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11645,"mutability":"mutable","name":"cropId","nameLocation":"1945:6:66","nodeType":"VariableDeclaration","scope":11703,"src":"1937:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1937:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":11657,"initialValue":{"arguments":[{"id":11648,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11618,"src":"1975:5:66","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":11650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1983:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1983:7:66","typeDescriptions":{}}},{"id":11652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1992:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1992:7:66","typeDescriptions":{}}},{"id":11654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2001:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":11653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2001:7:66","typeDescriptions":{}}}],"id":11655,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1982:27:66","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$","typeString":"tuple(type(bytes32),type(bytes32),type(bytes32))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$","typeString":"tuple(type(bytes32),type(bytes32),type(bytes32))"}],"expression":{"id":11646,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"1964:3:66","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"1964:10:66","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1964:46:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bytes32,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"1863:147:66"},{"expression":{"arguments":[{"hexValue":"70726f6a6563744964","id":11661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2034:11:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3989a83e7d482cb46944f4c209ce200abaa1eb584ebc069499f3707b0fb4481","typeString":"literal_string \"projectId\""},"value":"projectId"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11662,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11641,"src":"2047:9:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toB32String","nodeType":"MemberAccess","referencedDeclaration":14535,"src":"2047:21:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (string memory)"}},"id":11664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2047:23:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3989a83e7d482cb46944f4c209ce200abaa1eb584ebc069499f3707b0fb4481","typeString":"literal_string \"projectId\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11658,"name":"request_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11628,"src":"2021:8:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":11660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2021:12:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":11665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2021:50:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11666,"nodeType":"ExpressionStatement","src":"2021:50:66"},{"expression":{"arguments":[{"hexValue":"7561694964","id":11670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2094:7:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4af39283dc3c3c13d6fb420f27a96bed4e967523e3951b8ecac1586b38448a9","typeString":"literal_string \"uaiId\""},"value":"uaiId"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11671,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11643,"src":"2103:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toB32String","nodeType":"MemberAccess","referencedDeclaration":14535,"src":"2103:17:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (string memory)"}},"id":11673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2103:19:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d4af39283dc3c3c13d6fb420f27a96bed4e967523e3951b8ecac1586b38448a9","typeString":"literal_string \"uaiId\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11667,"name":"request_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11628,"src":"2081:8:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":11669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2081:12:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":11674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2081:42:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11675,"nodeType":"ExpressionStatement","src":"2081:42:66"},{"expression":{"arguments":[{"hexValue":"63726f704964","id":11679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2146:8:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_050a9125cf739a9606a9786e5c369a46a13cc1cd0532f1c114f2245d13d3fd1d","typeString":"literal_string \"cropId\""},"value":"cropId"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":11680,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11645,"src":"2156:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toB32String","nodeType":"MemberAccess","referencedDeclaration":14535,"src":"2156:18:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (string memory)"}},"id":11682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2156:20:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_050a9125cf739a9606a9786e5c369a46a13cc1cd0532f1c114f2245d13d3fd1d","typeString":"literal_string \"cropId\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11676,"name":"request_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11628,"src":"2133:8:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},"id":11678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":125,"src":"2133:12:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Request_$25_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_Request_$25_memory_ptr_$","typeString":"function (struct Chainlink.Request memory,string memory,string memory) pure"}},"id":11683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2133:44:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11684,"nodeType":"ExpressionStatement","src":"2133:44:66"},{"assignments":[11686],"declarations":[{"constant":false,"id":11686,"mutability":"mutable","name":"chainlinkRequestId","nameLocation":"2196:18:66","nodeType":"VariableDeclaration","scope":11703,"src":"2188:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11685,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2188:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":11691,"initialValue":{"arguments":[{"id":11688,"name":"request_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11628,"src":"2238:8:66","typeDescriptions":{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"}},{"id":11689,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11521,"src":"2248:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Request_$25_memory_ptr","typeString":"struct Chainlink.Request memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11687,"name":"sendChainlinkRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"2217:20:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Request_$25_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct Chainlink.Request memory,uint256) returns (bytes32)"}},"id":11690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2217:39:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2188:68:66"},{"expression":{"id":11696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11692,"name":"gifRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"2267:11:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":11694,"indexExpression":{"id":11693,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11686,"src":"2279:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2267:31:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":11695,"name":"gifRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11616,"src":"2301:12:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2267:46:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11697,"nodeType":"ExpressionStatement","src":"2267:46:66"},{"eventCall":{"arguments":[{"id":11699,"name":"gifRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11616,"src":"2343:12:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11700,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11686,"src":"2357:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11698,"name":"LogAyiiRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11527,"src":"2328:14:66","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32)"}},"id":11701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2328:48:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11702,"nodeType":"EmitStatement","src":"2323:53:66"}]},"functionSelector":"ffc79065","id":11704,"implemented":true,"kind":"function","modifiers":[{"id":11622,"modifierName":{"id":11621,"name":"onlyQuery","nodeType":"IdentifierPath","referencedDeclaration":3339,"src":"1680:9:66"},"nodeType":"ModifierInvocation","src":"1680:9:66"}],"name":"request","nameLocation":"1594:7:66","nodeType":"FunctionDefinition","overrides":{"id":11620,"nodeType":"OverrideSpecifier","overrides":[],"src":"1663:8:66"},"parameters":{"id":11619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11616,"mutability":"mutable","name":"gifRequestId","nameLocation":"1610:12:66","nodeType":"VariableDeclaration","scope":11704,"src":"1602:20:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11615,"name":"uint256","nodeType":"ElementaryTypeName","src":"1602:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11618,"mutability":"mutable","name":"input","nameLocation":"1639:5:66","nodeType":"VariableDeclaration","scope":11704,"src":"1624:20:66","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":11617,"name":"bytes","nodeType":"ElementaryTypeName","src":"1624:5:66","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1601:44:66"},"returnParameters":{"id":11623,"nodeType":"ParameterList","parameters":[],"src":"1694:0:66"},"scope":11825,"src":"1585:798:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11755,"nodeType":"Block","src":"2615:328:66","statements":[{"assignments":[11721],"declarations":[{"constant":false,"id":11721,"mutability":"mutable","name":"gifRequest","nameLocation":"2633:10:66","nodeType":"VariableDeclaration","scope":11755,"src":"2625:18:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11720,"name":"uint256","nodeType":"ElementaryTypeName","src":"2625:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11725,"initialValue":{"baseExpression":{"id":11722,"name":"gifRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"2646:11:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":11724,"indexExpression":{"id":11723,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"2658:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2646:31:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2625:52:66"},{"assignments":[11727],"declarations":[{"constant":false,"id":11727,"mutability":"mutable","name":"data","nameLocation":"2700:4:66","nodeType":"VariableDeclaration","scope":11755,"src":"2687:17:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11726,"name":"bytes","nodeType":"ElementaryTypeName","src":"2687:5:66","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":11735,"initialValue":{"arguments":[{"id":11730,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11708,"src":"2719:9:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11731,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11710,"src":"2730:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11732,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11712,"src":"2737:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11733,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"2745:4:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11728,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2708:3:66","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"2708:10:66","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2708:42:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2687:63:66"},{"expression":{"arguments":[{"id":11737,"name":"gifRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11721,"src":"2777:10:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11738,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11727,"src":"2789:4:66","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11736,"name":"_respond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"2768:8:66","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory)"}},"id":11739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2768:26:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11740,"nodeType":"ExpressionStatement","src":"2768:26:66"},{"expression":{"id":11744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2805:38:66","subExpression":{"baseExpression":{"id":11741,"name":"gifRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"2812:11:66","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":11743,"indexExpression":{"id":11742,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"2824:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2812:31:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11745,"nodeType":"ExpressionStatement","src":"2805:38:66"},{"eventCall":{"arguments":[{"id":11747,"name":"gifRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11721,"src":"2873:10:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11748,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"2885:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11749,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11708,"src":"2905:9:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11750,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11710,"src":"2916:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11751,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11712,"src":"2923:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11752,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11714,"src":"2931:4:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11746,"name":"LogAyiiFulfill","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11541,"src":"2858:14:66","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,bytes32,bytes32,bytes32,uint256)"}},"id":11753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2858:78:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11754,"nodeType":"EmitStatement","src":"2853:83:66"}]},"functionSelector":"97e873e9","id":11756,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":11717,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11706,"src":"2590:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":11718,"modifierName":{"id":11716,"name":"recordChainlinkFulfillment","nodeType":"IdentifierPath","referencedDeclaration":841,"src":"2563:26:66"},"nodeType":"ModifierInvocation","src":"2563:46:66"}],"name":"fulfill","nameLocation":"2398:7:66","nodeType":"FunctionDefinition","parameters":{"id":11715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11706,"mutability":"mutable","name":"chainlinkRequestId","nameLocation":"2423:18:66","nodeType":"VariableDeclaration","scope":11756,"src":"2415:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2415:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11708,"mutability":"mutable","name":"projectId","nameLocation":"2460:9:66","nodeType":"VariableDeclaration","scope":11756,"src":"2452:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11707,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2452:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11710,"mutability":"mutable","name":"uaiId","nameLocation":"2488:5:66","nodeType":"VariableDeclaration","scope":11756,"src":"2480:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2480:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11712,"mutability":"mutable","name":"cropId","nameLocation":"2512:6:66","nodeType":"VariableDeclaration","scope":11756,"src":"2504:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11711,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2504:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11714,"mutability":"mutable","name":"aaay","nameLocation":"2537:4:66","nodeType":"VariableDeclaration","scope":11756,"src":"2529:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11713,"name":"uint256","nodeType":"ElementaryTypeName","src":"2529:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2405:142:66"},"returnParameters":{"id":11719,"nodeType":"ParameterList","parameters":[],"src":"2615:0:66"},"scope":11825,"src":"2389:554:66","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3021],"body":{"id":11764,"nodeType":"Block","src":"3032:131:66","statements":[]},"functionSelector":"40e58ee5","id":11765,"implemented":true,"kind":"function","modifiers":[{"id":11762,"modifierName":{"id":11761,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"3018:9:66"},"nodeType":"ModifierInvocation","src":"3018:9:66"}],"name":"cancel","nameLocation":"2958:6:66","nodeType":"FunctionDefinition","overrides":{"id":11760,"nodeType":"OverrideSpecifier","overrides":[],"src":"3001:8:66"},"parameters":{"id":11759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11758,"mutability":"mutable","name":"requestId","nameLocation":"2973:9:66","nodeType":"VariableDeclaration","scope":11765,"src":"2965:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11757,"name":"uint256","nodeType":"ElementaryTypeName","src":"2965:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2964:19:66"},"returnParameters":{"id":11763,"nodeType":"ParameterList","parameters":[],"src":"3032:0:66"},"scope":11825,"src":"2949:214:66","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":11789,"nodeType":"Block","src":"3474:160:66","statements":[{"expression":{"arguments":[{"id":11782,"name":"chainlinkRequestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11767,"src":"3515:18:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11783,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11769,"src":"3548:9:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11784,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"3572:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11785,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11773,"src":"3592:6:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11786,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11775,"src":"3613:4:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3491:3:66","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3491:10:66","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3491:136:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":11779,"id":11788,"nodeType":"Return","src":"3484:143:66"}]},"functionSelector":"423b3b7a","id":11790,"implemented":true,"kind":"function","modifiers":[],"name":"encodeFulfillParameters","nameLocation":"3229:23:66","nodeType":"FunctionDefinition","parameters":{"id":11776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11767,"mutability":"mutable","name":"chainlinkRequestId","nameLocation":"3270:18:66","nodeType":"VariableDeclaration","scope":11790,"src":"3262:26:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3262:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11769,"mutability":"mutable","name":"projectId","nameLocation":"3307:9:66","nodeType":"VariableDeclaration","scope":11790,"src":"3299:17:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3299:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11771,"mutability":"mutable","name":"uaiId","nameLocation":"3335:5:66","nodeType":"VariableDeclaration","scope":11790,"src":"3327:13:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3327:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11773,"mutability":"mutable","name":"cropId","nameLocation":"3359:6:66","nodeType":"VariableDeclaration","scope":11790,"src":"3351:14:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3351:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11775,"mutability":"mutable","name":"aaay","nameLocation":"3384:4:66","nodeType":"VariableDeclaration","scope":11790,"src":"3376:12:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11774,"name":"uint256","nodeType":"ElementaryTypeName","src":"3376:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3252:142:66"},"returnParameters":{"id":11779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11778,"mutability":"mutable","name":"parameterData","nameLocation":"3455:13:66","nodeType":"VariableDeclaration","scope":11790,"src":"3442:26:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11777,"name":"bytes","nodeType":"ElementaryTypeName","src":"3442:5:66","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3441:28:66"},"scope":11825,"src":"3220:414:66","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":11797,"nodeType":"Block","src":"3715:29:66","statements":[{"expression":{"id":11795,"name":"jobId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11519,"src":"3732:5:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11794,"id":11796,"nodeType":"Return","src":"3725:12:66"}]},"functionSelector":"b6e45ee0","id":11798,"implemented":true,"kind":"function","modifiers":[],"name":"getChainlinkJobId","nameLocation":"3649:17:66","nodeType":"FunctionDefinition","parameters":{"id":11791,"nodeType":"ParameterList","parameters":[],"src":"3666:2:66"},"returnParameters":{"id":11794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11793,"mutability":"mutable","name":"chainlinkJobId","nameLocation":"3699:14:66","nodeType":"VariableDeclaration","scope":11798,"src":"3691:22:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11792,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3691:7:66","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3690:24:66"},"scope":11825,"src":"3640:104:66","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11805,"nodeType":"Block","src":"3826:31:66","statements":[{"expression":{"id":11803,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11521,"src":"3843:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11802,"id":11804,"nodeType":"Return","src":"3836:14:66"}]},"functionSelector":"5b16d9b2","id":11806,"implemented":true,"kind":"function","modifiers":[],"name":"getChainlinkPayment","nameLocation":"3759:19:66","nodeType":"FunctionDefinition","parameters":{"id":11799,"nodeType":"ParameterList","parameters":[],"src":"3778:2:66"},"returnParameters":{"id":11802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11801,"mutability":"mutable","name":"paymentAmount","nameLocation":"3811:13:66","nodeType":"VariableDeclaration","scope":11806,"src":"3803:21:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11800,"name":"uint256","nodeType":"ElementaryTypeName","src":"3803:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3802:23:66"},"scope":11825,"src":"3750:107:66","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11814,"nodeType":"Block","src":"3940:47:66","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11811,"name":"chainlinkTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"3957:21:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3957:23:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11810,"id":11813,"nodeType":"Return","src":"3950:30:66"}]},"functionSelector":"165d35e1","id":11815,"implemented":true,"kind":"function","modifiers":[],"name":"getChainlinkToken","nameLocation":"3872:17:66","nodeType":"FunctionDefinition","parameters":{"id":11807,"nodeType":"ParameterList","parameters":[],"src":"3889:2:66"},"returnParameters":{"id":11810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11809,"mutability":"mutable","name":"linkTokenAddress","nameLocation":"3922:16:66","nodeType":"VariableDeclaration","scope":11815,"src":"3914:24:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11808,"name":"address","nodeType":"ElementaryTypeName","src":"3914:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3913:26:66"},"scope":11825,"src":"3863:124:66","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":11823,"nodeType":"Block","src":"4065:48:66","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":11820,"name":"chainlinkOracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":706,"src":"4082:22:66","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":11821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4082:24:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11819,"id":11822,"nodeType":"Return","src":"4075:31:66"}]},"functionSelector":"e8f8e1c1","id":11824,"implemented":true,"kind":"function","modifiers":[],"name":"getChainlinkOperator","nameLocation":"4002:20:66","nodeType":"FunctionDefinition","parameters":{"id":11816,"nodeType":"ParameterList","parameters":[],"src":"4022:2:66"},"returnParameters":{"id":11819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11818,"mutability":"mutable","name":"operator","nameLocation":"4055:8:66","nodeType":"VariableDeclaration","scope":11824,"src":"4047:16:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11817,"name":"address","nodeType":"ElementaryTypeName","src":"4047:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4046:18:66"},"scope":11825,"src":"3993:120:66","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":11826,"src":"208:3907:66"}],"src":"32:4085:66"},"id":66},"contracts/examples/AyiiProduct.sol":{"ast":{"absolutePath":"contracts/examples/AyiiProduct.sol","exportedSymbols":{"AccessControl":[7145],"AccessControlEnumerable":[7270],"AccessController":[15687],"Address":[10496],"AyiiProduct":[13585],"Component":[2884],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"EnumerableSet":[11439],"IAccess":[4836],"IAccessControl":[7343],"IAccessControlEnumerable":[7368],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC20Permit":[8892],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"Ownable":[7481],"PolicyController":[19974],"Product":[4042],"SafeERC20":[9173],"Strings":[10804],"TransferHelper":[26659]},"id":13586,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":11827,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"32:22:67"},{"absolutePath":"contracts/shared/TransferHelper.sol","file":"../shared/TransferHelper.sol","id":11828,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":26660,"src":"56:38:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":11829,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":7146,"src":"96:58:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":11830,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":8060,"src":"155:63:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":11831,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":8832,"src":"219:56:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","id":11832,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":9174,"src":"276:65:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":11833,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":11440,"src":"342:65:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Product.sol","file":"@etherisc/gif-interface/contracts/components/Product.sol","id":11834,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":4043,"src":"409:66:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PolicyController.sol","file":"../modules/PolicyController.sol","id":11835,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":19975,"src":"476:41:67","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/AccessController.sol","file":"../modules/AccessController.sol","id":11836,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13586,"sourceUnit":15688,"src":"519:41:67","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":11837,"name":"Product","nodeType":"IdentifierPath","referencedDeclaration":4042,"src":"591:7:67"},"id":11838,"nodeType":"InheritanceSpecifier","src":"591:7:67"},{"baseName":{"id":11839,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":7145,"src":"605:13:67"},"id":11840,"nodeType":"InheritanceSpecifier","src":"605:13:67"},{"baseName":{"id":11841,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":8059,"src":"624:13:67"},"id":11842,"nodeType":"InheritanceSpecifier","src":"624:13:67"}],"contractDependencies":[2884,2988,3079,4042,5073,7145,7343,7481,8059,10518,10828,10840],"contractKind":"contract","fullyImplemented":true,"id":13585,"linearizedBaseContracts":[13585,8059,7145,10828,10840,7343,4042,2884,7481,10518,5073,3079,2988],"name":"AyiiProduct","nameLocation":"571:11:67","nodeType":"ContractDefinition","nodes":[{"id":11846,"libraryName":{"id":11843,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":11439,"src":"650:13:67"},"nodeType":"UsingForDirective","src":"644:49:67","typeName":{"id":11845,"nodeType":"UserDefinedTypeName","pathNode":{"id":11844,"name":"EnumerableSet.Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"668:24:67"},"referencedDeclaration":11045,"src":"668:24:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}}},{"constant":true,"functionSelector":"a3f4df7e","id":11849,"mutability":"constant","name":"NAME","nameLocation":"723:4:67","nodeType":"VariableDeclaration","scope":13585,"src":"699:54:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"699:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"417265615969656c64496e64657850726f64756374","id":11848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"730:23:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1414827468bdb7b8062360f5946dc483957c4d919d7d4e20c17058c424be6ef","typeString":"literal_string \"AreaYieldIndexProduct\""},"value":"AreaYieldIndexProduct"},"visibility":"public"},{"constant":true,"functionSelector":"ffa1ad74","id":11852,"mutability":"constant","name":"VERSION","nameLocation":"783:7:67","nodeType":"VariableDeclaration","scope":13585,"src":"759:39:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"759:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"302e31","id":11851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"793:5:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cd160c72d102a6747abd189ac21d4a1f802e3fcc1bb8fc78cc4d558df0c7c21","typeString":"literal_string \"0.1\""},"value":"0.1"},"visibility":"public"},{"constant":true,"functionSelector":"09128d83","id":11855,"mutability":"constant","name":"POLICY_FLOW","nameLocation":"828:11:67","nodeType":"VariableDeclaration","scope":13585,"src":"804:57:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11853,"name":"bytes32","nodeType":"ElementaryTypeName","src":"804:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6c69637944656661756c74466c6f77","id":11854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"842:19:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c6194c52a3447410e4616772f780a88c4ac5f0b731d2fc7e7979c603182714e","typeString":"literal_string \"PolicyDefaultFlow\""},"value":"PolicyDefaultFlow"},"visibility":"public"},{"constant":true,"functionSelector":"056c9989","id":11860,"mutability":"constant","name":"INSURER_ROLE","nameLocation":"892:12:67","nodeType":"VariableDeclaration","scope":13585,"src":"868:59:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"868:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"494e5355524552","id":11858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"917:9:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_f098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955b","typeString":"literal_string \"INSURER\""},"value":"INSURER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955b","typeString":"literal_string \"INSURER\""}],"id":11857,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"907:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"907:20:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"54111315","id":11865,"mutability":"constant","name":"PERCENTAGE_MULTIPLIER","nameLocation":"958:21:67","nodeType":"VariableDeclaration","scope":13585,"src":"934:53:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11861,"name":"uint256","nodeType":"ElementaryTypeName","src":"934:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"},"id":11864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":11862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"982:1:67","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":11863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"985:2:67","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"982:5:67","typeDescriptions":{"typeIdentifier":"t_rational_16777216_by_1","typeString":"int_const 16777216"}},"visibility":"public"},{"constant":true,"functionSelector":"4ce9d0a7","id":11868,"mutability":"constant","name":"AAAY_MIN","nameLocation":"1018:8:67","nodeType":"VariableDeclaration","scope":13585,"src":"994:36:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11866,"name":"uint256","nodeType":"ElementaryTypeName","src":"994:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":11867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1029:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"constant":true,"functionSelector":"aec8de39","id":11871,"mutability":"constant","name":"AAAY_MAX","nameLocation":"1060:8:67","nodeType":"VariableDeclaration","scope":13585,"src":"1036:37:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11869,"name":"uint256","nodeType":"ElementaryTypeName","src":"1036:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3135","id":11870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1071:2:67","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"visibility":"public"},{"constant":true,"functionSelector":"1c3456dd","id":11876,"mutability":"constant","name":"RISK_APH_MAX","nameLocation":"1104:12:67","nodeType":"VariableDeclaration","scope":13585,"src":"1080:65:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11872,"name":"uint256","nodeType":"ElementaryTypeName","src":"1080:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3135","id":11873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1119:2:67","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":11874,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"1124:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1119:26:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":true,"functionSelector":"f406460c","id":11881,"mutability":"constant","name":"RISK_EXIT_MAX","nameLocation":"1175:13:67","nodeType":"VariableDeclaration","scope":13585,"src":"1151:65:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11877,"name":"uint256","nodeType":"ElementaryTypeName","src":"1151:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11878,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"1191:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"35","id":11879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1215:1:67","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"1191:25:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":true,"functionSelector":"90e1a2ac","id":11886,"mutability":"constant","name":"RISK_TSI_AT_EXIT_MIN","nameLocation":"1246:20:67","nodeType":"VariableDeclaration","scope":13585,"src":"1222:72:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11882,"name":"uint256","nodeType":"ElementaryTypeName","src":"1222:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11883,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"1269:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":11884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1293:1:67","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1269:25:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"canonicalName":"AyiiProduct.Risk","id":11917,"members":[{"constant":false,"id":11888,"mutability":"mutable","name":"id","nameLocation":"1366:2:67","nodeType":"VariableDeclaration","scope":11917,"src":"1358:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11887,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1358:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11890,"mutability":"mutable","name":"projectId","nameLocation":"1424:9:67","nodeType":"VariableDeclaration","scope":11917,"src":"1416:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1416:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11892,"mutability":"mutable","name":"uaiId","nameLocation":"1524:5:67","nodeType":"VariableDeclaration","scope":11917,"src":"1516:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11891,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1516:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11894,"mutability":"mutable","name":"cropId","nameLocation":"1560:6:67","nodeType":"VariableDeclaration","scope":11917,"src":"1552:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1552:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11896,"mutability":"mutable","name":"trigger","nameLocation":"1595:7:67","nodeType":"VariableDeclaration","scope":11917,"src":"1587:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11895,"name":"uint256","nodeType":"ElementaryTypeName","src":"1587:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11898,"mutability":"mutable","name":"exit","nameLocation":"1674:4:67","nodeType":"VariableDeclaration","scope":11917,"src":"1666:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11897,"name":"uint256","nodeType":"ElementaryTypeName","src":"1666:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11900,"mutability":"mutable","name":"tsi","nameLocation":"1755:3:67","nodeType":"VariableDeclaration","scope":11917,"src":"1747:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11899,"name":"uint256","nodeType":"ElementaryTypeName","src":"1747:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11902,"mutability":"mutable","name":"aph","nameLocation":"1838:3:67","nodeType":"VariableDeclaration","scope":11917,"src":"1830:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11901,"name":"uint256","nodeType":"ElementaryTypeName","src":"1830:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11904,"mutability":"mutable","name":"requestId","nameLocation":"1917:9:67","nodeType":"VariableDeclaration","scope":11917,"src":"1909:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11903,"name":"uint256","nodeType":"ElementaryTypeName","src":"1909:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11906,"mutability":"mutable","name":"requestTriggered","nameLocation":"1942:16:67","nodeType":"VariableDeclaration","scope":11917,"src":"1937:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11905,"name":"bool","nodeType":"ElementaryTypeName","src":"1937:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11908,"mutability":"mutable","name":"responseAt","nameLocation":"1976:10:67","nodeType":"VariableDeclaration","scope":11917,"src":"1968:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11907,"name":"uint256","nodeType":"ElementaryTypeName","src":"1968:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11910,"mutability":"mutable","name":"aaay","nameLocation":"2004:4:67","nodeType":"VariableDeclaration","scope":11917,"src":"1996:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11909,"name":"uint256","nodeType":"ElementaryTypeName","src":"1996:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11912,"mutability":"mutable","name":"payoutPercentage","nameLocation":"2092:16:67","nodeType":"VariableDeclaration","scope":11917,"src":"2084:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11911,"name":"uint256","nodeType":"ElementaryTypeName","src":"2084:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11914,"mutability":"mutable","name":"createdAt","nameLocation":"2186:9:67","nodeType":"VariableDeclaration","scope":11917,"src":"2178:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11913,"name":"uint256","nodeType":"ElementaryTypeName","src":"2178:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11916,"mutability":"mutable","name":"updatedAt","nameLocation":"2213:9:67","nodeType":"VariableDeclaration","scope":11917,"src":"2205:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11915,"name":"uint256","nodeType":"ElementaryTypeName","src":"2205:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Risk","nameLocation":"1343:4:67","nodeType":"StructDefinition","scope":13585,"src":"1336:893:67","visibility":"public"},{"constant":false,"id":11919,"mutability":"mutable","name":"_oracleId","nameLocation":"2251:9:67","nodeType":"VariableDeclaration","scope":13585,"src":"2235:25:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11918,"name":"uint256","nodeType":"ElementaryTypeName","src":"2235:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":11922,"mutability":"mutable","name":"_token","nameLocation":"2281:6:67","nodeType":"VariableDeclaration","scope":13585,"src":"2266:21:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":11921,"nodeType":"UserDefinedTypeName","pathNode":{"id":11920,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"2266:6:67"},"referencedDeclaration":8831,"src":"2266:6:67","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"private"},{"constant":false,"id":11925,"mutability":"mutable","name":"_riskIds","nameLocation":"2313:8:67","nodeType":"VariableDeclaration","scope":13585,"src":"2294:27:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2294:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11924,"nodeType":"ArrayTypeName","src":"2294:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"constant":false,"id":11930,"mutability":"mutable","name":"_risks","nameLocation":"2373:6:67","nodeType":"VariableDeclaration","scope":13585,"src":"2327:52:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk)"},"typeName":{"id":11929,"keyType":{"id":11926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2335:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2327:37:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk)"},"valueType":{"id":11928,"nodeType":"UserDefinedTypeName","pathNode":{"id":11927,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"2359:4:67"},"referencedDeclaration":11917,"src":"2359:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}}},"visibility":"private"},{"constant":false,"id":11935,"mutability":"mutable","name":"_policies","nameLocation":"2468:9:67","nodeType":"VariableDeclaration","scope":13585,"src":"2385:92:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set)"},"typeName":{"id":11934,"keyType":{"id":11931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2393:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2385:74:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set)"},"valueType":{"id":11933,"nodeType":"UserDefinedTypeName","pathNode":{"id":11932,"name":"EnumerableSet.Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"2417:24:67"},"referencedDeclaration":11045,"src":"2417:24:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}}},"visibility":"private"},{"constant":false,"id":11938,"mutability":"mutable","name":"_applications","nameLocation":"2502:13:67","nodeType":"VariableDeclaration","scope":13585,"src":"2483:32:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11936,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2483:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11937,"nodeType":"ArrayTypeName","src":"2483:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"anonymous":false,"id":11948,"name":"LogAyiiPolicyApplicationCreated","nameLocation":"2583:31:67","nodeType":"EventDefinition","parameters":{"id":11947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11940,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"2623:8:67","nodeType":"VariableDeclaration","scope":11948,"src":"2615:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11939,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2615:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11942,"indexed":false,"mutability":"mutable","name":"policyHolder","nameLocation":"2641:12:67","nodeType":"VariableDeclaration","scope":11948,"src":"2633:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11941,"name":"address","nodeType":"ElementaryTypeName","src":"2633:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11944,"indexed":false,"mutability":"mutable","name":"premiumAmount","nameLocation":"2663:13:67","nodeType":"VariableDeclaration","scope":11948,"src":"2655:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11943,"name":"uint256","nodeType":"ElementaryTypeName","src":"2655:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11946,"indexed":false,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"2686:16:67","nodeType":"VariableDeclaration","scope":11948,"src":"2678:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11945,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2614:89:67"},"src":"2577:127:67"},{"anonymous":false,"id":11958,"name":"LogAyiiPolicyCreated","nameLocation":"2715:20:67","nodeType":"EventDefinition","parameters":{"id":11957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11950,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"2744:8:67","nodeType":"VariableDeclaration","scope":11958,"src":"2736:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11949,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2736:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11952,"indexed":false,"mutability":"mutable","name":"policyHolder","nameLocation":"2762:12:67","nodeType":"VariableDeclaration","scope":11958,"src":"2754:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11951,"name":"address","nodeType":"ElementaryTypeName","src":"2754:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11954,"indexed":false,"mutability":"mutable","name":"premiumAmount","nameLocation":"2784:13:67","nodeType":"VariableDeclaration","scope":11958,"src":"2776:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11953,"name":"uint256","nodeType":"ElementaryTypeName","src":"2776:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11956,"indexed":false,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"2807:16:67","nodeType":"VariableDeclaration","scope":11958,"src":"2799:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11955,"name":"uint256","nodeType":"ElementaryTypeName","src":"2799:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2735:89:67"},"src":"2709:116:67"},{"anonymous":false,"id":11968,"name":"LogAyiiRiskDataCreated","nameLocation":"2836:22:67","nodeType":"EventDefinition","parameters":{"id":11967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11960,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"2867:6:67","nodeType":"VariableDeclaration","scope":11968,"src":"2859:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11959,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2859:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11962,"indexed":false,"mutability":"mutable","name":"productId","nameLocation":"2883:9:67","nodeType":"VariableDeclaration","scope":11968,"src":"2875:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11961,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2875:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11964,"indexed":false,"mutability":"mutable","name":"uaiId","nameLocation":"2902:5:67","nodeType":"VariableDeclaration","scope":11968,"src":"2894:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11963,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2894:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11966,"indexed":false,"mutability":"mutable","name":"cropId","nameLocation":"2917:6:67","nodeType":"VariableDeclaration","scope":11968,"src":"2909:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11965,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2909:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2858:66:67"},"src":"2830:95:67"},{"anonymous":false,"id":11980,"name":"LogAyiiRiskDataBeforeAdjustment","nameLocation":"2936:31:67","nodeType":"EventDefinition","parameters":{"id":11979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11970,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"2976:6:67","nodeType":"VariableDeclaration","scope":11980,"src":"2968:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2968:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11972,"indexed":false,"mutability":"mutable","name":"trigger","nameLocation":"2992:7:67","nodeType":"VariableDeclaration","scope":11980,"src":"2984:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11971,"name":"uint256","nodeType":"ElementaryTypeName","src":"2984:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11974,"indexed":false,"mutability":"mutable","name":"exit","nameLocation":"3009:4:67","nodeType":"VariableDeclaration","scope":11980,"src":"3001:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11973,"name":"uint256","nodeType":"ElementaryTypeName","src":"3001:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11976,"indexed":false,"mutability":"mutable","name":"tsi","nameLocation":"3023:3:67","nodeType":"VariableDeclaration","scope":11980,"src":"3015:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11975,"name":"uint256","nodeType":"ElementaryTypeName","src":"3015:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11978,"indexed":false,"mutability":"mutable","name":"aph","nameLocation":"3033:3:67","nodeType":"VariableDeclaration","scope":11980,"src":"3028:8:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11977,"name":"uint","nodeType":"ElementaryTypeName","src":"3028:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2967:70:67"},"src":"2930:108:67"},{"anonymous":false,"id":11992,"name":"LogAyiiRiskDataAfterAdjustment","nameLocation":"3049:30:67","nodeType":"EventDefinition","parameters":{"id":11991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11982,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"3088:6:67","nodeType":"VariableDeclaration","scope":11992,"src":"3080:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3080:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11984,"indexed":false,"mutability":"mutable","name":"trigger","nameLocation":"3104:7:67","nodeType":"VariableDeclaration","scope":11992,"src":"3096:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11983,"name":"uint256","nodeType":"ElementaryTypeName","src":"3096:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11986,"indexed":false,"mutability":"mutable","name":"exit","nameLocation":"3121:4:67","nodeType":"VariableDeclaration","scope":11992,"src":"3113:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11985,"name":"uint256","nodeType":"ElementaryTypeName","src":"3113:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11988,"indexed":false,"mutability":"mutable","name":"tsi","nameLocation":"3135:3:67","nodeType":"VariableDeclaration","scope":11992,"src":"3127:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11987,"name":"uint256","nodeType":"ElementaryTypeName","src":"3127:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11990,"indexed":false,"mutability":"mutable","name":"aph","nameLocation":"3145:3:67","nodeType":"VariableDeclaration","scope":11992,"src":"3140:8:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11989,"name":"uint","nodeType":"ElementaryTypeName","src":"3140:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3079:70:67"},"src":"3043:107:67"},{"anonymous":false,"id":12004,"name":"LogAyiiRiskDataRequested","nameLocation":"3161:24:67","nodeType":"EventDefinition","parameters":{"id":12003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11994,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"3194:9:67","nodeType":"VariableDeclaration","scope":12004,"src":"3186:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11993,"name":"uint256","nodeType":"ElementaryTypeName","src":"3186:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11996,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"3213:6:67","nodeType":"VariableDeclaration","scope":12004,"src":"3205:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3205:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11998,"indexed":false,"mutability":"mutable","name":"projectId","nameLocation":"3229:9:67","nodeType":"VariableDeclaration","scope":12004,"src":"3221:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11997,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3221:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12000,"indexed":false,"mutability":"mutable","name":"uaiId","nameLocation":"3248:5:67","nodeType":"VariableDeclaration","scope":12004,"src":"3240:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3240:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12002,"indexed":false,"mutability":"mutable","name":"cropId","nameLocation":"3263:6:67","nodeType":"VariableDeclaration","scope":12004,"src":"3255:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3255:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3185:85:67"},"src":"3155:116:67"},{"anonymous":false,"id":12012,"name":"LogAyiiRiskDataReceived","nameLocation":"3282:23:67","nodeType":"EventDefinition","parameters":{"id":12011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12006,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"3314:9:67","nodeType":"VariableDeclaration","scope":12012,"src":"3306:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12005,"name":"uint256","nodeType":"ElementaryTypeName","src":"3306:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12008,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"3333:6:67","nodeType":"VariableDeclaration","scope":12012,"src":"3325:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3325:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12010,"indexed":false,"mutability":"mutable","name":"aaay","nameLocation":"3349:4:67","nodeType":"VariableDeclaration","scope":12012,"src":"3341:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12009,"name":"uint256","nodeType":"ElementaryTypeName","src":"3341:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3305:49:67"},"src":"3276:79:67"},{"anonymous":false,"id":12018,"name":"LogAyiiRiskDataRequestCancelled","nameLocation":"3366:31:67","nodeType":"EventDefinition","parameters":{"id":12017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12014,"indexed":false,"mutability":"mutable","name":"processId","nameLocation":"3406:9:67","nodeType":"VariableDeclaration","scope":12018,"src":"3398:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3398:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12016,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"3425:9:67","nodeType":"VariableDeclaration","scope":12018,"src":"3417:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12015,"name":"uint256","nodeType":"ElementaryTypeName","src":"3417:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3397:38:67"},"src":"3360:76:67"},{"anonymous":false,"id":12024,"name":"LogAyiiRiskProcessed","nameLocation":"3447:20:67","nodeType":"EventDefinition","parameters":{"id":12023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12020,"indexed":false,"mutability":"mutable","name":"riskId","nameLocation":"3476:6:67","nodeType":"VariableDeclaration","scope":12024,"src":"3468:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3468:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12022,"indexed":false,"mutability":"mutable","name":"policies","nameLocation":"3492:8:67","nodeType":"VariableDeclaration","scope":12024,"src":"3484:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12021,"name":"uint256","nodeType":"ElementaryTypeName","src":"3484:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3467:34:67"},"src":"3441:61:67"},{"anonymous":false,"id":12028,"name":"LogAyiiPolicyProcessed","nameLocation":"3513:22:67","nodeType":"EventDefinition","parameters":{"id":12027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12026,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"3544:8:67","nodeType":"VariableDeclaration","scope":12028,"src":"3536:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3536:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3535:18:67"},"src":"3507:47:67"},{"anonymous":false,"id":12036,"name":"LogAyiiClaimCreated","nameLocation":"3565:19:67","nodeType":"EventDefinition","parameters":{"id":12035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12030,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"3593:8:67","nodeType":"VariableDeclaration","scope":12036,"src":"3585:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3585:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12032,"indexed":false,"mutability":"mutable","name":"claimId","nameLocation":"3611:7:67","nodeType":"VariableDeclaration","scope":12036,"src":"3603:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12031,"name":"uint256","nodeType":"ElementaryTypeName","src":"3603:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12034,"indexed":false,"mutability":"mutable","name":"payoutAmount","nameLocation":"3628:12:67","nodeType":"VariableDeclaration","scope":12036,"src":"3620:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12033,"name":"uint256","nodeType":"ElementaryTypeName","src":"3620:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3584:57:67"},"src":"3559:83:67"},{"anonymous":false,"id":12042,"name":"LogAyiiPayoutCreated","nameLocation":"3653:20:67","nodeType":"EventDefinition","parameters":{"id":12041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12038,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"3682:8:67","nodeType":"VariableDeclaration","scope":12042,"src":"3674:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3674:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12040,"indexed":false,"mutability":"mutable","name":"payoutAmount","nameLocation":"3700:12:67","nodeType":"VariableDeclaration","scope":12042,"src":"3692:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12039,"name":"uint256","nodeType":"ElementaryTypeName","src":"3692:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3673:40:67"},"src":"3647:67:67"},{"anonymous":false,"id":12050,"name":"LogTransferHelperInputValidation1Failed","nameLocation":"3726:39:67","nodeType":"EventDefinition","parameters":{"id":12049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12044,"indexed":false,"mutability":"mutable","name":"tokenIsContract","nameLocation":"3771:15:67","nodeType":"VariableDeclaration","scope":12050,"src":"3766:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12043,"name":"bool","nodeType":"ElementaryTypeName","src":"3766:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12046,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"3796:4:67","nodeType":"VariableDeclaration","scope":12050,"src":"3788:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12045,"name":"address","nodeType":"ElementaryTypeName","src":"3788:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12048,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"3810:2:67","nodeType":"VariableDeclaration","scope":12050,"src":"3802:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12047,"name":"address","nodeType":"ElementaryTypeName","src":"3802:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3765:48:67"},"src":"3720:94:67"},{"anonymous":false,"id":12056,"name":"LogTransferHelperInputValidation2Failed","nameLocation":"3825:39:67","nodeType":"EventDefinition","parameters":{"id":12055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12052,"indexed":false,"mutability":"mutable","name":"balance","nameLocation":"3873:7:67","nodeType":"VariableDeclaration","scope":12056,"src":"3865:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12051,"name":"uint256","nodeType":"ElementaryTypeName","src":"3865:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12054,"indexed":false,"mutability":"mutable","name":"allowance","nameLocation":"3890:9:67","nodeType":"VariableDeclaration","scope":12056,"src":"3882:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12053,"name":"uint256","nodeType":"ElementaryTypeName","src":"3882:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3864:36:67"},"src":"3819:82:67"},{"anonymous":false,"id":12064,"name":"LogTransferHelperCallFailed","nameLocation":"3912:27:67","nodeType":"EventDefinition","parameters":{"id":12063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12058,"indexed":false,"mutability":"mutable","name":"callSuccess","nameLocation":"3945:11:67","nodeType":"VariableDeclaration","scope":12064,"src":"3940:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12057,"name":"bool","nodeType":"ElementaryTypeName","src":"3940:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12060,"indexed":false,"mutability":"mutable","name":"returnDataLength","nameLocation":"3966:16:67","nodeType":"VariableDeclaration","scope":12064,"src":"3958:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12059,"name":"uint256","nodeType":"ElementaryTypeName","src":"3958:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12062,"indexed":false,"mutability":"mutable","name":"returnData","nameLocation":"3990:10:67","nodeType":"VariableDeclaration","scope":12064,"src":"3984:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12061,"name":"bytes","nodeType":"ElementaryTypeName","src":"3984:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3939:62:67"},"src":"3906:96:67"},{"body":{"id":12107,"nodeType":"Block","src":"4258:167:67","statements":[{"expression":{"id":12090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12086,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11922,"src":"4268:6:67","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12088,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12070,"src":"4284:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12087,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8831,"src":"4277:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$8831_$","typeString":"type(contract IERC20)"}},"id":12089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4277:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"src":"4268:22:67","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":12091,"nodeType":"ExpressionStatement","src":"4268:22:67"},{"expression":{"id":12094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12092,"name":"_oracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11919,"src":"4300:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12093,"name":"oracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12072,"src":"4312:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4300:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12095,"nodeType":"ExpressionStatement","src":"4300:20:67"},{"expression":{"arguments":[{"id":12097,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"4342:18:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":12098,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4362:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":12099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4362:12:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12096,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7053,"src":"4331:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":12100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4331:44:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12101,"nodeType":"ExpressionStatement","src":"4331:44:67"},{"expression":{"arguments":[{"id":12103,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"4396:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12104,"name":"insurer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12076,"src":"4410:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12102,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7053,"src":"4385:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":12105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4385:33:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12106,"nodeType":"ExpressionStatement","src":"4385:33:67"}]},"id":12108,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":12079,"name":"productName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12066,"src":"4199:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12080,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12070,"src":"4212:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12081,"name":"POLICY_FLOW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11855,"src":"4219:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12082,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12074,"src":"4232:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12083,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12068,"src":"4244:8:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":12084,"modifierName":{"id":12078,"name":"Product","nodeType":"IdentifierPath","referencedDeclaration":4042,"src":"4191:7:67"},"nodeType":"ModifierInvocation","src":"4191:62:67"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":12077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12066,"mutability":"mutable","name":"productName","nameLocation":"4037:11:67","nodeType":"VariableDeclaration","scope":12108,"src":"4029:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4029:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12068,"mutability":"mutable","name":"registry","nameLocation":"4066:8:67","nodeType":"VariableDeclaration","scope":12108,"src":"4058:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12067,"name":"address","nodeType":"ElementaryTypeName","src":"4058:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12070,"mutability":"mutable","name":"token","nameLocation":"4092:5:67","nodeType":"VariableDeclaration","scope":12108,"src":"4084:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12069,"name":"address","nodeType":"ElementaryTypeName","src":"4084:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12072,"mutability":"mutable","name":"oracleId","nameLocation":"4115:8:67","nodeType":"VariableDeclaration","scope":12108,"src":"4107:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12071,"name":"uint256","nodeType":"ElementaryTypeName","src":"4107:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12074,"mutability":"mutable","name":"riskpoolId","nameLocation":"4141:10:67","nodeType":"VariableDeclaration","scope":12108,"src":"4133:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12073,"name":"uint256","nodeType":"ElementaryTypeName","src":"4133:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12076,"mutability":"mutable","name":"insurer","nameLocation":"4169:7:67","nodeType":"VariableDeclaration","scope":12108,"src":"4161:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12075,"name":"address","nodeType":"ElementaryTypeName","src":"4161:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4019:163:67"},"returnParameters":{"id":12085,"nodeType":"ParameterList","parameters":[],"src":"4258:0:67"},"scope":13585,"src":"4008:417:67","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":12239,"nodeType":"Block","src":"4704:769:67","statements":[{"expression":{"arguments":[{"id":12131,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12116,"src":"4738:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12132,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12118,"src":"4747:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12133,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12120,"src":"4753:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12134,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12122,"src":"4758:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12130,"name":"_validateRiskParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13465,"src":"4714:23:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":12135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4714:48:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12136,"nodeType":"ExpressionStatement","src":"4714:48:67"},{"expression":{"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12137,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12128,"src":"4773:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12139,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12110,"src":"4792:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12140,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12112,"src":"4803:5:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12141,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12114,"src":"4810:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12138,"name":"getRiskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12364,"src":"4782:9:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":12142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4782:35:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4773:44:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12144,"nodeType":"ExpressionStatement","src":"4773:44:67"},{"expression":{"arguments":[{"id":12148,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12128,"src":"4841:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12145,"name":"_riskIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11925,"src":"4827:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"4827:13:67","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":12149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4827:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12150,"nodeType":"ExpressionStatement","src":"4827:21:67"},{"assignments":[12153],"declarations":[{"constant":false,"id":12153,"mutability":"mutable","name":"risk","nameLocation":"4872:4:67","nodeType":"VariableDeclaration","scope":12239,"src":"4859:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12152,"nodeType":"UserDefinedTypeName","pathNode":{"id":12151,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"4859:4:67"},"referencedDeclaration":11917,"src":"4859:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12157,"initialValue":{"baseExpression":{"id":12154,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"4879:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12156,"indexExpression":{"id":12155,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12128,"src":"4886:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4879:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4859:34:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12159,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"4911:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"4911:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4929:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4911:19:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3030313a5249534b5f414c52454144595f455849535453","id":12163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4932:35:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1a84a551284060b76b600a286108f6c04d1bc2ac8241df44449fd27fa94a00a","typeString":"literal_string \"ERROR:AYI-001:RISK_ALREADY_EXISTS\""},"value":"ERROR:AYI-001:RISK_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e1a84a551284060b76b600a286108f6c04d1bc2ac8241df44449fd27fa94a00a","typeString":"literal_string \"ERROR:AYI-001:RISK_ALREADY_EXISTS\""}],"id":12158,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4903:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4903:65:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12165,"nodeType":"ExpressionStatement","src":"4903:65:67"},{"expression":{"id":12170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12166,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"4979:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"4979:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12169,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12128,"src":"4989:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4979:16:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12171,"nodeType":"ExpressionStatement","src":"4979:16:67"},{"expression":{"id":12176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12172,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5005:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"projectId","nodeType":"MemberAccess","referencedDeclaration":11890,"src":"5005:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12175,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12110,"src":"5022:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5005:26:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12177,"nodeType":"ExpressionStatement","src":"5005:26:67"},{"expression":{"id":12182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12178,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5041:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"uaiId","nodeType":"MemberAccess","referencedDeclaration":11892,"src":"5041:10:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12181,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12112,"src":"5054:5:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5041:18:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12183,"nodeType":"ExpressionStatement","src":"5041:18:67"},{"expression":{"id":12188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12184,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5069:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"cropId","nodeType":"MemberAccess","referencedDeclaration":11894,"src":"5069:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12187,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12114,"src":"5083:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5069:20:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12189,"nodeType":"ExpressionStatement","src":"5069:20:67"},{"expression":{"id":12194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12190,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5099:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"trigger","nodeType":"MemberAccess","referencedDeclaration":11896,"src":"5099:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12193,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12116,"src":"5114:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5099:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12195,"nodeType":"ExpressionStatement","src":"5099:22:67"},{"expression":{"id":12200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12196,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5131:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"exit","nodeType":"MemberAccess","referencedDeclaration":11898,"src":"5131:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12199,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12118,"src":"5143:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5131:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12201,"nodeType":"ExpressionStatement","src":"5131:16:67"},{"expression":{"id":12206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12202,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5157:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tsi","nodeType":"MemberAccess","referencedDeclaration":11900,"src":"5157:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12205,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12120,"src":"5168:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5157:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12207,"nodeType":"ExpressionStatement","src":"5157:14:67"},{"expression":{"id":12212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12208,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5181:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"aph","nodeType":"MemberAccess","referencedDeclaration":11902,"src":"5181:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12211,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12122,"src":"5192:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5181:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12213,"nodeType":"ExpressionStatement","src":"5181:14:67"},{"expression":{"id":12219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12214,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5205:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"5205:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12217,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"5222:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5222:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5205:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12220,"nodeType":"ExpressionStatement","src":"5205:32:67"},{"expression":{"id":12226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12221,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5271:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":11916,"src":"5271:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12224,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"5288:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5288:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5271:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12227,"nodeType":"ExpressionStatement","src":"5271:32:67"},{"eventCall":{"arguments":[{"expression":{"id":12229,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5379:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"5379:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12231,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5401:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"projectId","nodeType":"MemberAccess","referencedDeclaration":11890,"src":"5401:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12233,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5429:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"uaiId","nodeType":"MemberAccess","referencedDeclaration":11892,"src":"5429:10:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12235,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12153,"src":"5454:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"cropId","nodeType":"MemberAccess","referencedDeclaration":11894,"src":"5454:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12228,"name":"LogAyiiRiskDataCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11968,"src":"5343:22:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32,bytes32)"}},"id":12237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5343:123:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12238,"nodeType":"EmitStatement","src":"5338:128:67"}]},"functionSelector":"3dc5f58e","id":12240,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12125,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"4654:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12126,"modifierName":{"id":12124,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"4645:8:67"},"nodeType":"ModifierInvocation","src":"4645:22:67"}],"name":"createRisk","nameLocation":"4440:10:67","nodeType":"FunctionDefinition","parameters":{"id":12123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12110,"mutability":"mutable","name":"projectId","nameLocation":"4468:9:67","nodeType":"VariableDeclaration","scope":12240,"src":"4460:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4460:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12112,"mutability":"mutable","name":"uaiId","nameLocation":"4495:5:67","nodeType":"VariableDeclaration","scope":12240,"src":"4487:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4487:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12114,"mutability":"mutable","name":"cropId","nameLocation":"4518:6:67","nodeType":"VariableDeclaration","scope":12240,"src":"4510:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4510:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12116,"mutability":"mutable","name":"trigger","nameLocation":"4542:7:67","nodeType":"VariableDeclaration","scope":12240,"src":"4534:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12115,"name":"uint256","nodeType":"ElementaryTypeName","src":"4534:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12118,"mutability":"mutable","name":"exit","nameLocation":"4567:4:67","nodeType":"VariableDeclaration","scope":12240,"src":"4559:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12117,"name":"uint256","nodeType":"ElementaryTypeName","src":"4559:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12120,"mutability":"mutable","name":"tsi","nameLocation":"4589:3:67","nodeType":"VariableDeclaration","scope":12240,"src":"4581:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4581:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12122,"mutability":"mutable","name":"aph","nameLocation":"4610:3:67","nodeType":"VariableDeclaration","scope":12240,"src":"4602:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12121,"name":"uint256","nodeType":"ElementaryTypeName","src":"4602:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4450:169:67"},"returnParameters":{"id":12129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12128,"mutability":"mutable","name":"riskId","nameLocation":"4692:6:67","nodeType":"VariableDeclaration","scope":12240,"src":"4684:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12127,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4684:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4683:16:67"},"scope":13585,"src":"4431:1042:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12340,"nodeType":"Block","src":"5670:733:67","statements":[{"expression":{"arguments":[{"id":12257,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12244,"src":"5704:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12258,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"5713:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12259,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12248,"src":"5719:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12260,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12250,"src":"5724:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12256,"name":"_validateRiskParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13465,"src":"5680:23:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":12261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5680:48:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12262,"nodeType":"ExpressionStatement","src":"5680:48:67"},{"assignments":[12265],"declarations":[{"constant":false,"id":12265,"mutability":"mutable","name":"risk","nameLocation":"5752:4:67","nodeType":"VariableDeclaration","scope":12340,"src":"5739:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12264,"nodeType":"UserDefinedTypeName","pathNode":{"id":12263,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"5739:4:67"},"referencedDeclaration":11917,"src":"5739:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12269,"initialValue":{"baseExpression":{"id":12266,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"5759:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12268,"indexExpression":{"id":12267,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12242,"src":"5766:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5759:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5739:34:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12271,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"5791:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"5791:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5808:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5791:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3030323a5249534b5f554e4b4e4f574e","id":12275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5811:28:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_e50d6e107b97b06a6b4ebbb835c4ac409d87bd844c914bf49d6502833d8ba34e","typeString":"literal_string \"ERROR:AYI-002:RISK_UNKNOWN\""},"value":"ERROR:AYI-002:RISK_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e50d6e107b97b06a6b4ebbb835c4ac409d87bd844c914bf49d6502833d8ba34e","typeString":"literal_string \"ERROR:AYI-002:RISK_UNKNOWN\""}],"id":12270,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5783:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5783:57:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12277,"nodeType":"ExpressionStatement","src":"5783:57:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":12281,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"5879:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":12283,"indexExpression":{"id":12282,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12242,"src":"5889:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5879:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":12279,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"5858:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":12280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"5858:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":12284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5858:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5901:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5858:44:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3030333a5249534b5f574954485f504f4c49434945535f4e4f545f41444a55535441424c45","id":12287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5904:49:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_f422cac3b534a9ed752cfd161d8b473b386119366ac0d8f2b3a828e1526d99f3","typeString":"literal_string \"ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE\""},"value":"ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f422cac3b534a9ed752cfd161d8b473b386119366ac0d8f2b3a828e1526d99f3","typeString":"literal_string \"ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE\""}],"id":12278,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5850:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5850:104:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12289,"nodeType":"ExpressionStatement","src":"5850:104:67"},{"eventCall":{"arguments":[{"expression":{"id":12291,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6015:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"6015:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12293,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6037:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"trigger","nodeType":"MemberAccess","referencedDeclaration":11896,"src":"6037:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12295,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6063:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exit","nodeType":"MemberAccess","referencedDeclaration":11898,"src":"6063:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12297,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6087:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tsi","nodeType":"MemberAccess","referencedDeclaration":11900,"src":"6087:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12299,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6109:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"aph","nodeType":"MemberAccess","referencedDeclaration":11902,"src":"6109:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12290,"name":"LogAyiiRiskDataBeforeAdjustment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11980,"src":"5970:31:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256,uint256,uint256)"}},"id":12301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5970:148:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12302,"nodeType":"EmitStatement","src":"5965:153:67"},{"expression":{"id":12307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12303,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6137:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"trigger","nodeType":"MemberAccess","referencedDeclaration":11896,"src":"6137:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12306,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12244,"src":"6152:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6137:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12308,"nodeType":"ExpressionStatement","src":"6137:22:67"},{"expression":{"id":12313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12309,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6169:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"exit","nodeType":"MemberAccess","referencedDeclaration":11898,"src":"6169:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12312,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"6181:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6169:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12314,"nodeType":"ExpressionStatement","src":"6169:16:67"},{"expression":{"id":12319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12315,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6195:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tsi","nodeType":"MemberAccess","referencedDeclaration":11900,"src":"6195:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12318,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12248,"src":"6206:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6195:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12320,"nodeType":"ExpressionStatement","src":"6195:14:67"},{"expression":{"id":12325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12321,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6219:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"aph","nodeType":"MemberAccess","referencedDeclaration":11902,"src":"6219:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12324,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12250,"src":"6230:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6219:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12326,"nodeType":"ExpressionStatement","src":"6219:14:67"},{"eventCall":{"arguments":[{"expression":{"id":12328,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6293:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"6293:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12330,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6315:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"trigger","nodeType":"MemberAccess","referencedDeclaration":11896,"src":"6315:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12332,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6341:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exit","nodeType":"MemberAccess","referencedDeclaration":11898,"src":"6341:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12334,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6365:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tsi","nodeType":"MemberAccess","referencedDeclaration":11900,"src":"6365:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12336,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"6387:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"aph","nodeType":"MemberAccess","referencedDeclaration":11902,"src":"6387:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12327,"name":"LogAyiiRiskDataAfterAdjustment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11992,"src":"6249:30:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256,uint256,uint256)"}},"id":12338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6249:147:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12339,"nodeType":"EmitStatement","src":"6244:152:67"}]},"functionSelector":"78a433a5","id":12341,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12253,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"5652:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12254,"modifierName":{"id":12252,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"5643:8:67"},"nodeType":"ModifierInvocation","src":"5643:22:67"}],"name":"adjustRisk","nameLocation":"5488:10:67","nodeType":"FunctionDefinition","parameters":{"id":12251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12242,"mutability":"mutable","name":"riskId","nameLocation":"5516:6:67","nodeType":"VariableDeclaration","scope":12341,"src":"5508:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5508:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12244,"mutability":"mutable","name":"trigger","nameLocation":"5540:7:67","nodeType":"VariableDeclaration","scope":12341,"src":"5532:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12243,"name":"uint256","nodeType":"ElementaryTypeName","src":"5532:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12246,"mutability":"mutable","name":"exit","nameLocation":"5565:4:67","nodeType":"VariableDeclaration","scope":12341,"src":"5557:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12245,"name":"uint256","nodeType":"ElementaryTypeName","src":"5557:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12248,"mutability":"mutable","name":"tsi","nameLocation":"5587:3:67","nodeType":"VariableDeclaration","scope":12341,"src":"5579:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12247,"name":"uint256","nodeType":"ElementaryTypeName","src":"5579:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12250,"mutability":"mutable","name":"aph","nameLocation":"5608:3:67","nodeType":"VariableDeclaration","scope":12341,"src":"5600:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12249,"name":"uint256","nodeType":"ElementaryTypeName","src":"5600:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5498:119:67"},"returnParameters":{"id":12255,"nodeType":"ParameterList","parameters":[],"src":"5670:0:67"},"scope":13585,"src":"5479:924:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12363,"nodeType":"Block","src":"6572:73:67","statements":[{"expression":{"id":12361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12352,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12350,"src":"6582:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":12356,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"6612:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12357,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12345,"src":"6623:5:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12358,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12347,"src":"6630:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6601:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"6601:10:67","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6601:36:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12353,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"6591:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6591:47:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6582:56:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12362,"nodeType":"ExpressionStatement","src":"6582:56:67"}]},"functionSelector":"e9960d8a","id":12364,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskId","nameLocation":"6418:9:67","nodeType":"FunctionDefinition","parameters":{"id":12348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12343,"mutability":"mutable","name":"projectId","nameLocation":"6445:9:67","nodeType":"VariableDeclaration","scope":12364,"src":"6437:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6437:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12345,"mutability":"mutable","name":"uaiId","nameLocation":"6472:5:67","nodeType":"VariableDeclaration","scope":12364,"src":"6464:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6464:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12347,"mutability":"mutable","name":"cropId","nameLocation":"6495:6:67","nodeType":"VariableDeclaration","scope":12364,"src":"6487:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12346,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6487:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6427:80:67"},"returnParameters":{"id":12351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12350,"mutability":"mutable","name":"riskId","nameLocation":"6560:6:67","nodeType":"VariableDeclaration","scope":12364,"src":"6552:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6552:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6551:16:67"},"scope":13585,"src":"6409:236:67","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":12464,"nodeType":"Block","src":"6880:945:67","statements":[{"assignments":[12382],"declarations":[{"constant":false,"id":12382,"mutability":"mutable","name":"risk","nameLocation":"6903:4:67","nodeType":"VariableDeclaration","scope":12464,"src":"6890:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12381,"nodeType":"UserDefinedTypeName","pathNode":{"id":12380,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"6890:4:67"},"referencedDeclaration":11917,"src":"6890:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12386,"initialValue":{"baseExpression":{"id":12383,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"6910:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12385,"indexExpression":{"id":12384,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12372,"src":"6917:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6910:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6890:34:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12388,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"6942:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"6942:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6959:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6942:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3030343a5249534b5f554e444546494e4544","id":12392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6962:30:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd75e4d2b94b2d8ff6b0403850d1167c5b6fa118aa13973f47a4b7f7d7ee5f5f","typeString":"literal_string \"ERROR:AYI-004:RISK_UNDEFINED\""},"value":"ERROR:AYI-004:RISK_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd75e4d2b94b2d8ff6b0403850d1167c5b6fa118aa13973f47a4b7f7d7ee5f5f","typeString":"literal_string \"ERROR:AYI-004:RISK_UNDEFINED\""}],"id":12387,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6934:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6934:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12394,"nodeType":"ExpressionStatement","src":"6934:59:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12396,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12366,"src":"7011:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":12399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7035:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7027:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":12397,"name":"address","nodeType":"ElementaryTypeName","src":"7027:7:67","typeDescriptions":{}}},"id":12400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7027:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7011:26:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3030353a504f4c4943595f484f4c4445525f5a45524f","id":12402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7039:34:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_74007f953b79ec853cb87103ec9504ec665b2c9164be7516bbc8c84925b56cec","typeString":"literal_string \"ERROR:AYI-005:POLICY_HOLDER_ZERO\""},"value":"ERROR:AYI-005:POLICY_HOLDER_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74007f953b79ec853cb87103ec9504ec665b2c9164be7516bbc8c84925b56cec","typeString":"literal_string \"ERROR:AYI-005:POLICY_HOLDER_ZERO\""}],"id":12395,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7003:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7003:71:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12404,"nodeType":"ExpressionStatement","src":"7003:71:67"},{"assignments":[12406],"declarations":[{"constant":false,"id":12406,"mutability":"mutable","name":"metaData","nameLocation":"7098:8:67","nodeType":"VariableDeclaration","scope":12464,"src":"7085:21:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12405,"name":"bytes","nodeType":"ElementaryTypeName","src":"7085:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12408,"initialValue":{"hexValue":"","id":12407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7109:2:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"nodeType":"VariableDeclarationStatement","src":"7085:26:67"},{"assignments":[12410],"declarations":[{"constant":false,"id":12410,"mutability":"mutable","name":"applicationData","nameLocation":"7134:15:67","nodeType":"VariableDeclaration","scope":12464,"src":"7121:28:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12409,"name":"bytes","nodeType":"ElementaryTypeName","src":"7121:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12415,"initialValue":{"arguments":[{"id":12413,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12372,"src":"7163:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"7152:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"7152:10:67","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7152:18:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7121:49:67"},{"expression":{"id":12424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12416,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7181:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12418,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12366,"src":"7222:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12419,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12368,"src":"7249:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12420,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12370,"src":"7271:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12421,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12406,"src":"7295:8:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":12422,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12410,"src":"7317:15:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12417,"name":"_newApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"7193:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) returns (bytes32)"}},"id":12423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7193:140:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7181:152:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12425,"nodeType":"ExpressionStatement","src":"7181:152:67"},{"expression":{"arguments":[{"id":12429,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7363:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12426,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11938,"src":"7344:13:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":12428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"7344:18:67","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":12430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7344:29:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12431,"nodeType":"ExpressionStatement","src":"7344:29:67"},{"eventCall":{"arguments":[{"id":12433,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7434:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12434,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12366,"src":"7458:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12435,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12368,"src":"7485:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12436,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12370,"src":"7507:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12432,"name":"LogAyiiPolicyApplicationCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11948,"src":"7389:31:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":12437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7389:129:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12438,"nodeType":"EmitStatement","src":"7384:134:67"},{"assignments":[12440],"declarations":[{"constant":false,"id":12440,"mutability":"mutable","name":"success","nameLocation":"7534:7:67","nodeType":"VariableDeclaration","scope":12464,"src":"7529:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12439,"name":"bool","nodeType":"ElementaryTypeName","src":"7529:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":12444,"initialValue":{"arguments":[{"id":12442,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7556:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12441,"name":"_underwrite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"7544:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":12443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7544:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"7529:37:67"},{"condition":{"id":12445,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12440,"src":"7581:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12463,"nodeType":"IfStatement","src":"7577:242:67","trueBody":{"id":12462,"nodeType":"Block","src":"7590:229:67","statements":[{"expression":{"arguments":[{"baseExpression":{"id":12449,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"7622:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":12451,"indexExpression":{"id":12450,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12372,"src":"7632:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7622:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":12452,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7641:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12446,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"7604:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":12448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11063,"src":"7604:17:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":12453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7604:47:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12454,"nodeType":"ExpressionStatement","src":"7604:47:67"},{"eventCall":{"arguments":[{"id":12456,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"7712:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12457,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12366,"src":"7740:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12458,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12368,"src":"7771:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12459,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12370,"src":"7797:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12455,"name":"LogAyiiPolicyCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11958,"src":"7674:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":12460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7674:134:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12461,"nodeType":"EmitStatement","src":"7669:139:67"}]}}]},"functionSelector":"4b6eb669","id":12465,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12375,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"6827:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12376,"modifierName":{"id":12374,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"6818:8:67"},"nodeType":"ModifierInvocation","src":"6818:22:67"}],"name":"applyForPolicy","nameLocation":"6661:14:67","nodeType":"FunctionDefinition","parameters":{"id":12373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12366,"mutability":"mutable","name":"policyHolder","nameLocation":"6693:12:67","nodeType":"VariableDeclaration","scope":12465,"src":"6685:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12365,"name":"address","nodeType":"ElementaryTypeName","src":"6685:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12368,"mutability":"mutable","name":"premium","nameLocation":"6724:7:67","nodeType":"VariableDeclaration","scope":12465,"src":"6716:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12367,"name":"uint256","nodeType":"ElementaryTypeName","src":"6716:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12370,"mutability":"mutable","name":"sumInsured","nameLocation":"6750:10:67","nodeType":"VariableDeclaration","scope":12465,"src":"6742:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12369,"name":"uint256","nodeType":"ElementaryTypeName","src":"6742:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12372,"mutability":"mutable","name":"riskId","nameLocation":"6778:6:67","nodeType":"VariableDeclaration","scope":12465,"src":"6770:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6770:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6675:115:67"},"returnParameters":{"id":12379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12378,"mutability":"mutable","name":"processId","nameLocation":"6865:9:67","nodeType":"VariableDeclaration","scope":12465,"src":"6857:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6857:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6856:19:67"},"scope":13585,"src":"6652:1173:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12516,"nodeType":"Block","src":"7968:518:67","statements":[{"expression":{"arguments":[{"id":12476,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12467,"src":"8049:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12475,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"8033:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":12477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8033:26:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":12478,"nodeType":"ExpressionStatement","src":"8033:26:67"},{"expression":{"id":12483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12479,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12473,"src":"8069:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12481,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12467,"src":"8091:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12480,"name":"_underwrite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"8079:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":12482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8079:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8069:32:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12484,"nodeType":"ExpressionStatement","src":"8069:32:67"},{"condition":{"id":12485,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12473,"src":"8116:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12515,"nodeType":"IfStatement","src":"8112:368:67","trueBody":{"id":12514,"nodeType":"Block","src":"8125:355:67","statements":[{"assignments":[12490],"declarations":[{"constant":false,"id":12490,"mutability":"mutable","name":"application","nameLocation":"8166:11:67","nodeType":"VariableDeclaration","scope":12514,"src":"8139:38:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":12489,"nodeType":"UserDefinedTypeName","pathNode":{"id":12488,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"8139:19:67"},"referencedDeclaration":5262,"src":"8139:19:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":12494,"initialValue":{"arguments":[{"id":12492,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12467,"src":"8196:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12491,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"8180:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":12493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8180:26:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"8139:67:67"},{"assignments":[12499],"declarations":[{"constant":false,"id":12499,"mutability":"mutable","name":"metadata","nameLocation":"8244:8:67","nodeType":"VariableDeclaration","scope":12514,"src":"8220:32:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":12498,"nodeType":"UserDefinedTypeName","pathNode":{"id":12497,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"8220:16:67"},"referencedDeclaration":5248,"src":"8220:16:67","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":12503,"initialValue":{"arguments":[{"id":12501,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12467,"src":"8268:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12500,"name":"_getMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"8255:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Metadata memory)"}},"id":12502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8255:23:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"8220:58:67"},{"eventCall":{"arguments":[{"id":12505,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12467,"src":"8335:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12506,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12499,"src":"8363:8:67","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":12507,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"8363:14:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":12508,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12490,"src":"8396:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":12509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"8396:25:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12510,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12490,"src":"8440:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":12511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"8440:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12504,"name":"LogAyiiPolicyCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11958,"src":"8297:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":12512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8297:172:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12513,"nodeType":"EmitStatement","src":"8292:177:67"}]}}]},"functionSelector":"1b07b17f","id":12517,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12470,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"7920:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12471,"modifierName":{"id":12469,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"7911:8:67"},"nodeType":"ModifierInvocation","src":"7911:22:67"}],"name":"underwrite","nameLocation":"7840:10:67","nodeType":"FunctionDefinition","parameters":{"id":12468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12467,"mutability":"mutable","name":"processId","nameLocation":"7868:9:67","nodeType":"VariableDeclaration","scope":12517,"src":"7860:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12466,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7860:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7850:33:67"},"returnParameters":{"id":12474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12473,"mutability":"mutable","name":"success","nameLocation":"7955:7:67","nodeType":"VariableDeclaration","scope":12517,"src":"7950:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12472,"name":"bool","nodeType":"ElementaryTypeName","src":"7950:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7949:14:67"},"scope":13585,"src":"7831:655:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12540,"nodeType":"Block","src":"8650:71:67","statements":[{"expression":{"id":12538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":12531,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12525,"src":"8661:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12532,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12527,"src":"8670:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12533,"name":"netPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12529,"src":"8675:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12534,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"8660:26:67","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12536,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12519,"src":"8705:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12535,"name":"_collectPremium","nodeType":"Identifier","overloadedDeclarations":[3670,3695],"referencedDeclaration":3670,"src":"8689:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32) returns (bool,uint256,uint256)"}},"id":12537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8689:25:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"8660:54:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12539,"nodeType":"ExpressionStatement","src":"8660:54:67"}]},"functionSelector":"b9ea8d66","id":12541,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12522,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"8569:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12523,"modifierName":{"id":12521,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"8560:8:67"},"nodeType":"ModifierInvocation","src":"8560:22:67"}],"name":"collectPremium","nameLocation":"8501:14:67","nodeType":"FunctionDefinition","parameters":{"id":12520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12519,"mutability":"mutable","name":"policyId","nameLocation":"8524:8:67","nodeType":"VariableDeclaration","scope":12541,"src":"8516:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8516:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8515:18:67"},"returnParameters":{"id":12530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12525,"mutability":"mutable","name":"success","nameLocation":"8604:7:67","nodeType":"VariableDeclaration","scope":12541,"src":"8599:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12524,"name":"bool","nodeType":"ElementaryTypeName","src":"8599:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12527,"mutability":"mutable","name":"fee","nameLocation":"8621:3:67","nodeType":"VariableDeclaration","scope":12541,"src":"8613:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12526,"name":"uint256","nodeType":"ElementaryTypeName","src":"8613:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12529,"mutability":"mutable","name":"netPremium","nameLocation":"8634:10:67","nodeType":"VariableDeclaration","scope":12541,"src":"8626:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12528,"name":"uint256","nodeType":"ElementaryTypeName","src":"8626:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8598:47:67"},"scope":13585,"src":"8492:229:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12604,"nodeType":"Block","src":"9334:418:67","statements":[{"assignments":[12563],"declarations":[{"constant":false,"id":12563,"mutability":"mutable","name":"metadata","nameLocation":"9368:8:67","nodeType":"VariableDeclaration","scope":12604,"src":"9344:32:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":12562,"nodeType":"UserDefinedTypeName","pathNode":{"id":12561,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"9344:16:67"},"referencedDeclaration":5248,"src":"9344:16:67","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":12567,"initialValue":{"arguments":[{"id":12565,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12543,"src":"9392:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12564,"name":"_getMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"9379:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Metadata memory)"}},"id":12566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9379:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"9344:57:67"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12568,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12545,"src":"9416:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":12569,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12563,"src":"9424:8:67","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":12570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"9424:14:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9416:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12593,"nodeType":"IfStatement","src":"9412:261:67","trueBody":{"id":12592,"nodeType":"Block","src":"9440:233:67","statements":[{"assignments":[12573],"declarations":[{"constant":false,"id":12573,"mutability":"mutable","name":"transferSuccessful","nameLocation":"9459:18:67","nodeType":"VariableDeclaration","scope":12592,"src":"9454:23:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12572,"name":"bool","nodeType":"ElementaryTypeName","src":"9454:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":12582,"initialValue":{"arguments":[{"id":12576,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11922,"src":"9515:6:67","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":12577,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12545,"src":"9523:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":12578,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12563,"src":"9529:8:67","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":12579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"9529:14:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12547,"src":"9545:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12574,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"9480:14:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":12575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"9480:34:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":12581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9480:72:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9454:98:67"},{"condition":{"id":12584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9571:19:67","subExpression":{"id":12583,"name":"transferSuccessful","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12573,"src":"9572:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12591,"nodeType":"IfStatement","src":"9567:96:67","trueBody":{"id":12590,"nodeType":"Block","src":"9592:71:67","statements":[{"expression":{"components":[{"id":12585,"name":"transferSuccessful","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12573,"src":"9618:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"30","id":12586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9638:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":12587,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12547,"src":"9641:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12588,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9617:31:67","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$_t_uint256_$","typeString":"tuple(bool,int_const 0,uint256)"}},"functionReturnParameters":12558,"id":12589,"nodeType":"Return","src":"9610:38:67"}]}}]}},{"expression":{"id":12602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":12594,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12553,"src":"9684:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12595,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12555,"src":"9693:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12596,"name":"netPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12557,"src":"9698:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12597,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"9683:26:67","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12599,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12543,"src":"9728:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12600,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12547,"src":"9738:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12598,"name":"_collectPremium","nodeType":"Identifier","overloadedDeclarations":[3670,3695],"referencedDeclaration":3695,"src":"9712:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (bool,uint256,uint256)"}},"id":12601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9712:33:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"9683:62:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12603,"nodeType":"ExpressionStatement","src":"9683:62:67"}]},"functionSelector":"e5d58cd8","id":12605,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12550,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"9253:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12551,"modifierName":{"id":12549,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"9244:8:67"},"nodeType":"ModifierInvocation","src":"9244:22:67"}],"name":"collectPremium","nameLocation":"9155:14:67","nodeType":"FunctionDefinition","parameters":{"id":12548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12543,"mutability":"mutable","name":"policyId","nameLocation":"9178:8:67","nodeType":"VariableDeclaration","scope":12605,"src":"9170:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9170:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12545,"mutability":"mutable","name":"from","nameLocation":"9196:4:67","nodeType":"VariableDeclaration","scope":12605,"src":"9188:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12544,"name":"address","nodeType":"ElementaryTypeName","src":"9188:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12547,"mutability":"mutable","name":"amount","nameLocation":"9210:6:67","nodeType":"VariableDeclaration","scope":12605,"src":"9202:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12546,"name":"uint256","nodeType":"ElementaryTypeName","src":"9202:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9169:48:67"},"returnParameters":{"id":12558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12553,"mutability":"mutable","name":"success","nameLocation":"9288:7:67","nodeType":"VariableDeclaration","scope":12605,"src":"9283:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12552,"name":"bool","nodeType":"ElementaryTypeName","src":"9283:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12555,"mutability":"mutable","name":"fee","nameLocation":"9305:3:67","nodeType":"VariableDeclaration","scope":12605,"src":"9297:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12554,"name":"uint256","nodeType":"ElementaryTypeName","src":"9297:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12557,"mutability":"mutable","name":"netPremium","nameLocation":"9318:10:67","nodeType":"VariableDeclaration","scope":12605,"src":"9310:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12556,"name":"uint256","nodeType":"ElementaryTypeName","src":"9310:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9282:47:67"},"scope":13585,"src":"9146:606:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12623,"nodeType":"Block","src":"9949:93:67","statements":[{"expression":{"arguments":[{"id":12618,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12607,"src":"9984:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12619,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12609,"src":"9995:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12620,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12611,"src":"10018:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12617,"name":"_adjustPremiumSumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3713,"src":"9959:24:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":12621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9959:76:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12622,"nodeType":"ExpressionStatement","src":"9959:76:67"}]},"functionSelector":"30a73da5","id":12624,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12614,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"9931:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12615,"modifierName":{"id":12613,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"9922:8:67"},"nodeType":"ModifierInvocation","src":"9922:22:67"}],"name":"adjustPremiumSumInsured","nameLocation":"9767:23:67","nodeType":"FunctionDefinition","parameters":{"id":12612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12607,"mutability":"mutable","name":"processId","nameLocation":"9808:9:67","nodeType":"VariableDeclaration","scope":12624,"src":"9800:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9800:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12609,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"9835:21:67","nodeType":"VariableDeclaration","scope":12624,"src":"9827:29:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12608,"name":"uint256","nodeType":"ElementaryTypeName","src":"9827:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12611,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"9874:16:67","nodeType":"VariableDeclaration","scope":12624,"src":"9866:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12610,"name":"uint256","nodeType":"ElementaryTypeName","src":"9866:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9790:106:67"},"returnParameters":{"id":12616,"nodeType":"ParameterList","parameters":[],"src":"9949:0:67"},"scope":13585,"src":"9758:284:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12712,"nodeType":"Block","src":"10178:822:67","statements":[{"assignments":[12636],"declarations":[{"constant":false,"id":12636,"mutability":"mutable","name":"risk","nameLocation":"10201:4:67","nodeType":"VariableDeclaration","scope":12712,"src":"10188:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12635,"nodeType":"UserDefinedTypeName","pathNode":{"id":12634,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"10188:4:67"},"referencedDeclaration":11917,"src":"10188:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12642,"initialValue":{"baseExpression":{"id":12637,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"10208:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12641,"indexExpression":{"arguments":[{"id":12639,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12626,"src":"10226:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12638,"name":"_getRiskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13584,"src":"10215:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":12640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10215:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10208:29:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10188:49:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12644,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10255:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"10255:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10272:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10255:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3031303a5249534b5f554e444546494e4544","id":12648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10275:30:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_28015aff36bbf8cb89a7d6ca21c217883599d0a9d34ab709c871c948f0fded56","typeString":"literal_string \"ERROR:AYI-010:RISK_UNDEFINED\""},"value":"ERROR:AYI-010:RISK_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28015aff36bbf8cb89a7d6ca21c217883599d0a9d34ab709c871c948f0fded56","typeString":"literal_string \"ERROR:AYI-010:RISK_UNDEFINED\""}],"id":12643,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10247:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10247:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12650,"nodeType":"ExpressionStatement","src":"10247:59:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12652,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10324:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"10324:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10343:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10324:20:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3031313a4f5241434c455f414c52454144595f524553504f4e444544","id":12656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10346:40:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_6fc284dd3ef5c0a4e0102afbb048ee6a2068822573dadf296d595b1f0508f960","typeString":"literal_string \"ERROR:AYI-011:ORACLE_ALREADY_RESPONDED\""},"value":"ERROR:AYI-011:ORACLE_ALREADY_RESPONDED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6fc284dd3ef5c0a4e0102afbb048ee6a2068822573dadf296d595b1f0508f960","typeString":"literal_string \"ERROR:AYI-011:ORACLE_ALREADY_RESPONDED\""}],"id":12651,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10316:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10316:71:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12658,"nodeType":"ExpressionStatement","src":"10316:71:67"},{"assignments":[12660],"declarations":[{"constant":false,"id":12660,"mutability":"mutable","name":"queryData","nameLocation":"10411:9:67","nodeType":"VariableDeclaration","scope":12712,"src":"10398:22:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12659,"name":"bytes","nodeType":"ElementaryTypeName","src":"10398:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":12670,"initialValue":{"arguments":[{"expression":{"id":12663,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10447:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"projectId","nodeType":"MemberAccess","referencedDeclaration":11890,"src":"10447:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12665,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10475:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"uaiId","nodeType":"MemberAccess","referencedDeclaration":11892,"src":"10475:10:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12667,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10499:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"cropId","nodeType":"MemberAccess","referencedDeclaration":11894,"src":"10499:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":12661,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"10423:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"10423:10:67","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10423:97:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10398:122:67"},{"expression":{"id":12678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12671,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12632,"src":"10531:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12673,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12626,"src":"10569:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12674,"name":"queryData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12660,"src":"10597:9:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"6f7261636c6543616c6c6261636b","id":12675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10624:16:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_2aafc7d392265772ce577bc392adfed2dc64b60acfcc2d5e2ce66fbfe088b79b","typeString":"literal_string \"oracleCallback\""},"value":"oracleCallback"},{"id":12676,"name":"_oracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11919,"src":"10658:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_2aafc7d392265772ce577bc392adfed2dc64b60acfcc2d5e2ce66fbfe088b79b","typeString":"literal_string \"oracleCallback\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12672,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3919,"src":"10543:8:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,bytes memory,string memory,uint256) returns (uint256)"}},"id":12677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10543:138:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10531:150:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12679,"nodeType":"ExpressionStatement","src":"10531:150:67"},{"expression":{"id":12684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12680,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10692:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"requestId","nodeType":"MemberAccess","referencedDeclaration":11904,"src":"10692:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12683,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12632,"src":"10709:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10692:26:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12685,"nodeType":"ExpressionStatement","src":"10692:26:67"},{"expression":{"id":12690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12686,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10728:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"requestTriggered","nodeType":"MemberAccess","referencedDeclaration":11906,"src":"10728:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":12689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10752:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10728:28:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12691,"nodeType":"ExpressionStatement","src":"10728:28:67"},{"expression":{"id":12697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12692,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10766:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":11916,"src":"10766:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12695,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"10783:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10783:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10766:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12698,"nodeType":"ExpressionStatement","src":"10766:32:67"},{"eventCall":{"arguments":[{"expression":{"id":12700,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10876:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"requestId","nodeType":"MemberAccess","referencedDeclaration":11904,"src":"10876:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12702,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10905:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"10905:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12704,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10927:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"projectId","nodeType":"MemberAccess","referencedDeclaration":11890,"src":"10927:14:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12706,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10956:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"uaiId","nodeType":"MemberAccess","referencedDeclaration":11892,"src":"10956:10:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12708,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12636,"src":"10981:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"cropId","nodeType":"MemberAccess","referencedDeclaration":11894,"src":"10981:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12699,"name":"LogAyiiRiskDataRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12004,"src":"10838:24:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32,bytes32,bytes32,bytes32)"}},"id":12710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10838:155:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12711,"nodeType":"EmitStatement","src":"10833:160:67"}]},"functionSelector":"06136f28","id":12713,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12629,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"10125:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12630,"modifierName":{"id":12628,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"10116:8:67"},"nodeType":"ModifierInvocation","src":"10116:22:67"}],"name":"triggerOracle","nameLocation":"10057:13:67","nodeType":"FunctionDefinition","parameters":{"id":12627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12626,"mutability":"mutable","name":"processId","nameLocation":"10079:9:67","nodeType":"VariableDeclaration","scope":12713,"src":"10071:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10071:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10070:19:67"},"returnParameters":{"id":12633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12632,"mutability":"mutable","name":"requestId","nameLocation":"10163:9:67","nodeType":"VariableDeclaration","scope":12713,"src":"10155:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12631,"name":"uint256","nodeType":"ElementaryTypeName","src":"10155:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10154:19:67"},"scope":13585,"src":"10048:952:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12776,"nodeType":"Block","src":"11111:566:67","statements":[{"assignments":[12723],"declarations":[{"constant":false,"id":12723,"mutability":"mutable","name":"risk","nameLocation":"11134:4:67","nodeType":"VariableDeclaration","scope":12776,"src":"11121:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12722,"nodeType":"UserDefinedTypeName","pathNode":{"id":12721,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"11121:4:67"},"referencedDeclaration":11917,"src":"11121:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12729,"initialValue":{"baseExpression":{"id":12724,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"11141:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12728,"indexExpression":{"arguments":[{"id":12726,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12715,"src":"11159:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12725,"name":"_getRiskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13584,"src":"11148:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":12727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11148:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11141:29:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11121:49:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12731,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11188:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"11188:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11205:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11188:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3031323a5249534b5f554e444546494e4544","id":12735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11208:30:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_dcbc40a3d8c26349e10dd7f08a6b7b007d7052eecfaccb2cc208ecaf8fccefd5","typeString":"literal_string \"ERROR:AYI-012:RISK_UNDEFINED\""},"value":"ERROR:AYI-012:RISK_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dcbc40a3d8c26349e10dd7f08a6b7b007d7052eecfaccb2cc208ecaf8fccefd5","typeString":"literal_string \"ERROR:AYI-012:RISK_UNDEFINED\""}],"id":12730,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11180:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11180:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12737,"nodeType":"ExpressionStatement","src":"11180:59:67"},{"expression":{"arguments":[{"expression":{"id":12739,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11257:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"requestTriggered","nodeType":"MemberAccess","referencedDeclaration":11906,"src":"11257:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3031333a4f5241434c455f524551554553545f4e4f545f464f554e44","id":12741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11280:40:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e5824abd539e2def691cf0401224fac97337998f0fa26de7535423fdaff387e","typeString":"literal_string \"ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND\""},"value":"ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e5824abd539e2def691cf0401224fac97337998f0fa26de7535423fdaff387e","typeString":"literal_string \"ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND\""}],"id":12738,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11249:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11249:72:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12743,"nodeType":"ExpressionStatement","src":"11249:72:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12745,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11339:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"11339:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11358:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11339:20:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3031343a4558495354494e475f43414c4c4241434b","id":12749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11361:33:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_aaf8ccfcadbad9421342ffd1299722ec5af1e410a95732101efa8995983950fc","typeString":"literal_string \"ERROR:AYI-014:EXISTING_CALLBACK\""},"value":"ERROR:AYI-014:EXISTING_CALLBACK"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aaf8ccfcadbad9421342ffd1299722ec5af1e410a95732101efa8995983950fc","typeString":"literal_string \"ERROR:AYI-014:EXISTING_CALLBACK\""}],"id":12744,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11331:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11331:64:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12751,"nodeType":"ExpressionStatement","src":"11331:64:67"},{"expression":{"arguments":[{"expression":{"id":12753,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11421:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"requestId","nodeType":"MemberAccess","referencedDeclaration":11904,"src":"11421:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12752,"name":"_cancelRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3931,"src":"11406:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":12755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11406:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12756,"nodeType":"ExpressionStatement","src":"11406:30:67"},{"expression":{"id":12761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12757,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11501:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"requestTriggered","nodeType":"MemberAccess","referencedDeclaration":11906,"src":"11501:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":12760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11525:5:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"11501:29:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12762,"nodeType":"ExpressionStatement","src":"11501:29:67"},{"expression":{"id":12768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12763,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11540:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":11916,"src":"11540:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12766,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"11557:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11557:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11540:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12769,"nodeType":"ExpressionStatement","src":"11540:32:67"},{"eventCall":{"arguments":[{"id":12771,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12715,"src":"11644:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":12772,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"11655:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"requestId","nodeType":"MemberAccess","referencedDeclaration":11904,"src":"11655:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12770,"name":"LogAyiiRiskDataRequestCancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12018,"src":"11612:31:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":12774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11612:58:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12775,"nodeType":"EmitStatement","src":"11607:63:67"}]},"functionSelector":"597ee798","id":12777,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12718,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"11093:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12719,"modifierName":{"id":12717,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"11084:8:67"},"nodeType":"ModifierInvocation","src":"11084:22:67"}],"name":"cancelOracleRequest","nameLocation":"11019:19:67","nodeType":"FunctionDefinition","parameters":{"id":12716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12715,"mutability":"mutable","name":"processId","nameLocation":"11047:9:67","nodeType":"VariableDeclaration","scope":12777,"src":"11039:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11039:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11038:19:67"},"returnParameters":{"id":12720,"nodeType":"ParameterList","parameters":[],"src":"11111:0:67"},"scope":13585,"src":"11010:667:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":12918,"nodeType":"Block","src":"11852:1283:67","statements":[{"assignments":[12789,12791,12793,12795],"declarations":[{"constant":false,"id":12789,"mutability":"mutable","name":"projectId","nameLocation":"11884:9:67","nodeType":"VariableDeclaration","scope":12918,"src":"11876:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11876:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12791,"mutability":"mutable","name":"uaiId","nameLocation":"11916:5:67","nodeType":"VariableDeclaration","scope":12918,"src":"11908:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11908:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12793,"mutability":"mutable","name":"cropId","nameLocation":"11944:6:67","nodeType":"VariableDeclaration","scope":12918,"src":"11936:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12792,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11936:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12795,"mutability":"mutable","name":"aaay","nameLocation":"11973:4:67","nodeType":"VariableDeclaration","scope":12918,"src":"11965:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12794,"name":"uint256","nodeType":"ElementaryTypeName","src":"11965:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12809,"initialValue":{"arguments":[{"id":12798,"name":"responseData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12783,"src":"12001:12:67","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":12800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12016:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12016:7:67","typeDescriptions":{}}},{"id":12802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12025:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12025:7:67","typeDescriptions":{}}},{"id":12804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12034:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":12803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12034:7:67","typeDescriptions":{}}},{"id":12806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12043:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12805,"name":"uint256","nodeType":"ElementaryTypeName","src":"12043:7:67","typeDescriptions":{}}}],"id":12807,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12015:36:67","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes32),type(bytes32),type(bytes32),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_bytes32_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(bytes32),type(bytes32),type(bytes32),type(uint256))"}],"expression":{"id":12796,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"11990:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"11990:10:67","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":12808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11990:62:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$","typeString":"tuple(bytes32,bytes32,bytes32,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"11862:190:67"},{"assignments":[12811],"declarations":[{"constant":false,"id":12811,"mutability":"mutable","name":"riskId","nameLocation":"12071:6:67","nodeType":"VariableDeclaration","scope":12918,"src":"12063:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12810,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12063:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":12815,"initialValue":{"arguments":[{"id":12813,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12781,"src":"12091:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12812,"name":"_getRiskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13584,"src":"12080:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":12814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12080:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12063:38:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":12823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12817,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"12119:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":12819,"name":"projectId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12789,"src":"12139:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12820,"name":"uaiId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12791,"src":"12150:5:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12821,"name":"cropId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12793,"src":"12157:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12818,"name":"getRiskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12364,"src":"12129:9:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":12822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12129:35:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12119:45:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3032303a5249534b5f49445f4d49534d41544348","id":12824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12166:32:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbaf1d726096478fb0eb96544569fd8fa4d575484c98caef0bd74861bf86ac57","typeString":"literal_string \"ERROR:AYI-020:RISK_ID_MISMATCH\""},"value":"ERROR:AYI-020:RISK_ID_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbaf1d726096478fb0eb96544569fd8fa4d575484c98caef0bd74861bf86ac57","typeString":"literal_string \"ERROR:AYI-020:RISK_ID_MISMATCH\""}],"id":12816,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12111:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12111:88:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12826,"nodeType":"ExpressionStatement","src":"12111:88:67"},{"assignments":[12829],"declarations":[{"constant":false,"id":12829,"mutability":"mutable","name":"risk","nameLocation":"12223:4:67","nodeType":"VariableDeclaration","scope":12918,"src":"12210:17:67","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12828,"nodeType":"UserDefinedTypeName","pathNode":{"id":12827,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"12210:4:67"},"referencedDeclaration":11917,"src":"12210:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12833,"initialValue":{"baseExpression":{"id":12830,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"12230:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12832,"indexExpression":{"id":12831,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"12237:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12230:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12210:34:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12835,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12262:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":11914,"src":"12262:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12279:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12262:18:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3032313a5249534b5f554e444546494e4544","id":12839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12282:30:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_6ee02cfa0248fa86db9a11f735c32c1ff1a44fc0b1601b5b7ff4563f745477c9","typeString":"literal_string \"ERROR:AYI-021:RISK_UNDEFINED\""},"value":"ERROR:AYI-021:RISK_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6ee02cfa0248fa86db9a11f735c32c1ff1a44fc0b1601b5b7ff4563f745477c9","typeString":"literal_string \"ERROR:AYI-021:RISK_UNDEFINED\""}],"id":12834,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12254:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12254:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12841,"nodeType":"ExpressionStatement","src":"12254:59:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12843,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12331:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"requestId","nodeType":"MemberAccess","referencedDeclaration":11904,"src":"12331:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":12845,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12779,"src":"12349:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12331:27:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3032323a524551554553545f49445f4d49534d41544348","id":12847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12360:35:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6dbb8dbd57bcf301752f2cf8b3847b57c719884a8d0c8570c19052a9efb7ef6","typeString":"literal_string \"ERROR:AYI-022:REQUEST_ID_MISMATCH\""},"value":"ERROR:AYI-022:REQUEST_ID_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6dbb8dbd57bcf301752f2cf8b3847b57c719884a8d0c8570c19052a9efb7ef6","typeString":"literal_string \"ERROR:AYI-022:REQUEST_ID_MISMATCH\""}],"id":12842,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12323:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12323:73:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12849,"nodeType":"ExpressionStatement","src":"12323:73:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12851,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12414:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"12414:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12433:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12414:20:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3032333a4558495354494e475f43414c4c4241434b","id":12855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12436:33:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_aaec2461ff204fc73d428d95c0f4cb5267531886babbeecda241ecff60dc08cf","typeString":"literal_string \"ERROR:AYI-023:EXISTING_CALLBACK\""},"value":"ERROR:AYI-023:EXISTING_CALLBACK"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aaec2461ff204fc73d428d95c0f4cb5267531886babbeecda241ecff60dc08cf","typeString":"literal_string \"ERROR:AYI-023:EXISTING_CALLBACK\""}],"id":12850,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12406:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12406:64:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12857,"nodeType":"ExpressionStatement","src":"12406:64:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12859,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"12489:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":12860,"name":"AAAY_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11868,"src":"12498:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12861,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"12509:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12498:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12863,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12497:34:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12489:42:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12865,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"12552:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":12866,"name":"AAAY_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11871,"src":"12560:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":12867,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"12571:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12560:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":12869,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12559:34:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12552:41:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12489:104:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3032343a414141595f494e56414c4944","id":12872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12612:28:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_1933cf92e854516d33fae263dace7298dd28dda3cb0e72fbef894e917a93a275","typeString":"literal_string \"ERROR:AYI-024:AAAY_INVALID\""},"value":"ERROR:AYI-024:AAAY_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1933cf92e854516d33fae263dace7298dd28dda3cb0e72fbef894e917a93a275","typeString":"literal_string \"ERROR:AYI-024:AAAY_INVALID\""}],"id":12858,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12481:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12481:160:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12874,"nodeType":"ExpressionStatement","src":"12481:160:67"},{"expression":{"id":12879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12875,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12691:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"aaay","nodeType":"MemberAccess","referencedDeclaration":11910,"src":"12691:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12878,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"12703:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12691:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12880,"nodeType":"ExpressionStatement","src":"12691:16:67"},{"expression":{"id":12896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12881,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12717:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payoutPercentage","nodeType":"MemberAccess","referencedDeclaration":11912,"src":"12717:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":12885,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12780:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tsi","nodeType":"MemberAccess","referencedDeclaration":11900,"src":"12780:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12887,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12802:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"trigger","nodeType":"MemberAccess","referencedDeclaration":11896,"src":"12802:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12889,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12828:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exit","nodeType":"MemberAccess","referencedDeclaration":11898,"src":"12828:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12891,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12851:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"aph","nodeType":"MemberAccess","referencedDeclaration":11902,"src":"12851:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":12893,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12873:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"aaay","nodeType":"MemberAccess","referencedDeclaration":11910,"src":"12873:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12884,"name":"calculatePayoutPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13273,"src":"12741:25:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":12895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12741:151:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12717:175:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12897,"nodeType":"ExpressionStatement","src":"12717:175:67"},{"expression":{"id":12903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12898,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12903:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"12903:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12901,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12921:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12921:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12903:33:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12904,"nodeType":"ExpressionStatement","src":"12903:33:67"},{"expression":{"id":12910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":12905,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12829,"src":"12970:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk storage pointer"}},"id":12907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":11916,"src":"12970:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":12908,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12987:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12987:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12970:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12911,"nodeType":"ExpressionStatement","src":"12970:32:67"},{"eventCall":{"arguments":[{"id":12913,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12779,"src":"13079:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12914,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12811,"src":"13103:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":12915,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12795,"src":"13123:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12912,"name":"LogAyiiRiskDataReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12012,"src":"13042:23:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256)"}},"id":12916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13042:86:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12917,"nodeType":"EmitStatement","src":"13037:91:67"}]},"functionSelector":"5e61aa63","id":12919,"implemented":true,"kind":"function","modifiers":[{"id":12786,"modifierName":{"id":12785,"name":"onlyOracle","nodeType":"IdentifierPath","referencedDeclaration":3487,"src":"11837:10:67"},"nodeType":"ModifierInvocation","src":"11837:10:67"}],"name":"oracleCallback","nameLocation":"11696:14:67","nodeType":"FunctionDefinition","parameters":{"id":12784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12779,"mutability":"mutable","name":"requestId","nameLocation":"11728:9:67","nodeType":"VariableDeclaration","scope":12919,"src":"11720:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12778,"name":"uint256","nodeType":"ElementaryTypeName","src":"11720:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12781,"mutability":"mutable","name":"processId","nameLocation":"11756:9:67","nodeType":"VariableDeclaration","scope":12919,"src":"11748:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11748:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12783,"mutability":"mutable","name":"responseData","nameLocation":"11791:12:67","nodeType":"VariableDeclaration","scope":12919,"src":"11776:27:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12782,"name":"bytes","nodeType":"ElementaryTypeName","src":"11776:5:67","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11710:99:67"},"returnParameters":{"id":12787,"nodeType":"ParameterList","parameters":[],"src":"11852:0:67"},"scope":13585,"src":"11687:1448:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13042,"nodeType":"Block","src":"13313:879:67","statements":[{"assignments":[12934],"declarations":[{"constant":false,"id":12934,"mutability":"mutable","name":"risk","nameLocation":"13335:4:67","nodeType":"VariableDeclaration","scope":13042,"src":"13323:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":12933,"nodeType":"UserDefinedTypeName","pathNode":{"id":12932,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"13323:4:67"},"referencedDeclaration":11917,"src":"13323:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":12938,"initialValue":{"baseExpression":{"id":12935,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"13342:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":12937,"indexExpression":{"id":12936,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12921,"src":"13349:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13342:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13323:33:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":12940,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12934,"src":"13374:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk memory"}},"id":12941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"13374:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":12942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13392:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13374:19:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3033303a4f5241434c455f524553504f4e53455f4d495353494e47","id":12944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13395:39:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_58676a06b2a15eeef19d847ad905241c221bcfc99304360d668ec70c06b294c9","typeString":"literal_string \"ERROR:AYI-030:ORACLE_RESPONSE_MISSING\""},"value":"ERROR:AYI-030:ORACLE_RESPONSE_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_58676a06b2a15eeef19d847ad905241c221bcfc99304360d668ec70c06b294c9","typeString":"literal_string \"ERROR:AYI-030:ORACLE_RESPONSE_MISSING\""}],"id":12939,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13366:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13366:69:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12946,"nodeType":"ExpressionStatement","src":"13366:69:67"},{"assignments":[12948],"declarations":[{"constant":false,"id":12948,"mutability":"mutable","name":"elements","nameLocation":"13454:8:67","nodeType":"VariableDeclaration","scope":13042,"src":"13446:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12947,"name":"uint256","nodeType":"ElementaryTypeName","src":"13446:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":12955,"initialValue":{"arguments":[{"baseExpression":{"id":12951,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"13486:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":12953,"indexExpression":{"id":12952,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12921,"src":"13496:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13486:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":12949,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"13465:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":12950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"13465:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":12954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13465:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13446:58:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12956,"name":"elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12948,"src":"13518:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13530:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13518:13:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12971,"nodeType":"IfStatement","src":"13514:117:67","trueBody":{"id":12970,"nodeType":"Block","src":"13533:98:67","statements":[{"eventCall":{"arguments":[{"id":12960,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12921,"src":"13573:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":12961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13581:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12959,"name":"LogAyiiRiskProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"13552:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":12962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13552:31:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12963,"nodeType":"EmitStatement","src":"13547:36:67"},{"expression":{"arguments":[{"hexValue":"30","id":12967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13618:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":12966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13604:13:67","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":12964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13608:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12965,"nodeType":"ArrayTypeName","src":"13608:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":12968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13604:16:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":12931,"id":12969,"nodeType":"Return","src":"13597:23:67"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12972,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13645:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":12973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13658:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13645:14:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":12987,"nodeType":"Block","src":"13717:41:67","statements":[{"expression":{"id":12985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12980,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13719:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12982,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13735:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12983,"name":"elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12948,"src":"13746:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12981,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13298,"src":"13731:3:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13731:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13719:36:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12986,"nodeType":"ExpressionStatement","src":"13719:36:67"}]},"id":12988,"nodeType":"IfStatement","src":"13641:117:67","trueBody":{"id":12979,"nodeType":"Block","src":"13661:25:67","statements":[{"expression":{"id":12977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12975,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13663:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":12976,"name":"elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12948,"src":"13675:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13663:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12978,"nodeType":"ExpressionStatement","src":"13663:20:67"}]}},{"expression":{"id":12995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":12989,"name":"processedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12930,"src":"13768:17:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":12993,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13802:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13788:13:67","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":12990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13792:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12991,"nodeType":"ArrayTypeName","src":"13792:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":12994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13788:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"13768:44:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":12996,"nodeType":"ExpressionStatement","src":"13768:44:67"},{"assignments":[12998],"declarations":[{"constant":false,"id":12998,"mutability":"mutable","name":"elementIdx","nameLocation":"13830:10:67","nodeType":"VariableDeclaration","scope":13042,"src":"13822:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12997,"name":"uint256","nodeType":"ElementaryTypeName","src":"13822:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13002,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":12999,"name":"elements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12948,"src":"13843:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":13000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13854:1:67","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13843:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13822:33:67"},{"body":{"id":13035,"nodeType":"Block","src":"13906:225:67","statements":[{"assignments":[13014],"declarations":[{"constant":false,"id":13014,"mutability":"mutable","name":"policyId","nameLocation":"13976:8:67","nodeType":"VariableDeclaration","scope":13035,"src":"13968:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13968:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13024,"initialValue":{"arguments":[{"baseExpression":{"id":13017,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"14004:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":13019,"indexExpression":{"id":13018,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12921,"src":"14014:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14004:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13020,"name":"elementIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12998,"src":"14023:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13004,"src":"14036:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14023:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13015,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"13987:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":13016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11132,"src":"13987:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":13023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13987:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13968:70:67"},{"expression":{"arguments":[{"id":13026,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13014,"src":"14066:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13025,"name":"processPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13195,"src":"14052:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14052:23:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13028,"nodeType":"ExpressionStatement","src":"14052:23:67"},{"expression":{"id":13033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13029,"name":"processedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12930,"src":"14089:17:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":13031,"indexExpression":{"id":13030,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13004,"src":"14107:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14089:20:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13032,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13014,"src":"14112:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14089:31:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13034,"nodeType":"ExpressionStatement","src":"14089:31:67"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13007,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13004,"src":"13886:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13008,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"13890:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13886:13:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13036,"initializationExpression":{"assignments":[13004],"declarations":[{"constant":false,"id":13004,"mutability":"mutable","name":"i","nameLocation":"13879:1:67","nodeType":"VariableDeclaration","scope":13036,"src":"13871:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13003,"name":"uint256","nodeType":"ElementaryTypeName","src":"13871:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13006,"initialValue":{"hexValue":"30","id":13005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13883:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13871:13:67"},"loopExpression":{"expression":{"id":13011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13901:3:67","subExpression":{"id":13010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13004,"src":"13901:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13012,"nodeType":"ExpressionStatement","src":"13901:3:67"},"nodeType":"ForStatement","src":"13866:265:67"},{"eventCall":{"arguments":[{"id":13038,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12921,"src":"14167:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13039,"name":"batchSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12923,"src":"14175:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13037,"name":"LogAyiiRiskProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"14146:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14146:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13041,"nodeType":"EmitStatement","src":"14141:44:67"}]},"functionSelector":"1fd358aa","id":13043,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":12926,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"13242:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12927,"modifierName":{"id":12925,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"13233:8:67"},"nodeType":"ModifierInvocation","src":"13233:22:67"}],"name":"processPoliciesForRisk","nameLocation":"13150:22:67","nodeType":"FunctionDefinition","parameters":{"id":12924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12921,"mutability":"mutable","name":"riskId","nameLocation":"13181:6:67","nodeType":"VariableDeclaration","scope":13043,"src":"13173:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13173:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12923,"mutability":"mutable","name":"batchSize","nameLocation":"13197:9:67","nodeType":"VariableDeclaration","scope":13043,"src":"13189:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12922,"name":"uint256","nodeType":"ElementaryTypeName","src":"13189:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13172:35:67"},"returnParameters":{"id":12931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12930,"mutability":"mutable","name":"processedPolicies","nameLocation":"13290:17:67","nodeType":"VariableDeclaration","scope":13043,"src":"13272:35:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13272:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12929,"nodeType":"ArrayTypeName","src":"13272:10:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"13271:37:67"},"scope":13585,"src":"13141:1051:67","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13194,"nodeType":"Block","src":"14289:1339:67","statements":[{"assignments":[13055],"declarations":[{"constant":false,"id":13055,"mutability":"mutable","name":"application","nameLocation":"14326:11:67","nodeType":"VariableDeclaration","scope":13194,"src":"14299:38:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":13054,"nodeType":"UserDefinedTypeName","pathNode":{"id":13053,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"14299:19:67"},"referencedDeclaration":5262,"src":"14299:19:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":13059,"initialValue":{"arguments":[{"id":13057,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"14356:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13056,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"14340:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":13058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14340:25:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"14299:66:67"},{"assignments":[13061],"declarations":[{"constant":false,"id":13061,"mutability":"mutable","name":"riskId","nameLocation":"14383:6:67","nodeType":"VariableDeclaration","scope":13194,"src":"14375:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14375:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":13070,"initialValue":{"arguments":[{"expression":{"id":13064,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13055,"src":"14403:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":13065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"14403:16:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14422:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13066,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14422:7:67","typeDescriptions":{}}}],"id":13068,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14421:9:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":13062,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"14392:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"14392:10:67","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14392:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14375:56:67"},{"assignments":[13073],"declarations":[{"constant":false,"id":13073,"mutability":"mutable","name":"risk","nameLocation":"14453:4:67","nodeType":"VariableDeclaration","scope":13194,"src":"14441:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":13072,"nodeType":"UserDefinedTypeName","pathNode":{"id":13071,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"14441:4:67"},"referencedDeclaration":11917,"src":"14441:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"id":13077,"initialValue":{"baseExpression":{"id":13074,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"14460:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":13076,"indexExpression":{"id":13075,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13061,"src":"14467:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14460:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14441:33:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":13082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13079,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13073,"src":"14493:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk memory"}},"id":13080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":11888,"src":"14493:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":13081,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13061,"src":"14504:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14493:17:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3033313a5249534b5f49445f494e56414c4944","id":13083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14512:31:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8bfdecb7e2ed493ac22e973378473f67d79eabfa3ec87a5ca0db9597fe32dc2","typeString":"literal_string \"ERROR:AYI-031:RISK_ID_INVALID\""},"value":"ERROR:AYI-031:RISK_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8bfdecb7e2ed493ac22e973378473f67d79eabfa3ec87a5ca0db9597fe32dc2","typeString":"literal_string \"ERROR:AYI-031:RISK_ID_INVALID\""}],"id":13078,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14485:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14485:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13085,"nodeType":"ExpressionStatement","src":"14485:59:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13087,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13073,"src":"14562:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk memory"}},"id":13088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responseAt","nodeType":"MemberAccess","referencedDeclaration":11908,"src":"14562:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14580:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14562:19:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3033323a4f5241434c455f524553504f4e53455f4d495353494e47","id":13091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14583:39:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f27b73d87657a4223eeda0e62929018b09601be0c30975a8a78bf41dfdbaaa2","typeString":"literal_string \"ERROR:AYI-032:ORACLE_RESPONSE_MISSING\""},"value":"ERROR:AYI-032:ORACLE_RESPONSE_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f27b73d87657a4223eeda0e62929018b09601be0c30975a8a78bf41dfdbaaa2","typeString":"literal_string \"ERROR:AYI-032:ORACLE_RESPONSE_MISSING\""}],"id":13086,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14554:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14554:69:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13093,"nodeType":"ExpressionStatement","src":"14554:69:67"},{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":13097,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"14664:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":13099,"indexExpression":{"id":13098,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13061,"src":"14674:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14664:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":13100,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"14683:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13095,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"14641:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":13096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11099,"src":"14641:22:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) view returns (bool)"}},"id":13101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14641:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3033333a504f4c4943595f464f525f5249534b5f554e4b4e4f574e","id":13102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14694:39:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_fafa31ad4244029644c90b6f5cee740910ee69364e793eab36c7c37db6e32ff4","typeString":"literal_string \"ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN\""},"value":"ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fafa31ad4244029644c90b6f5cee740910ee69364e793eab36c7c37db6e32ff4","typeString":"literal_string \"ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN\""}],"id":13094,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14633:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14633:101:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13104,"nodeType":"ExpressionStatement","src":"14633:101:67"},{"expression":{"arguments":[{"baseExpression":{"id":13108,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"14766:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":13110,"indexExpression":{"id":13109,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13061,"src":"14776:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14766:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":13111,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"14785:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":13105,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"14745:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":13107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"14745:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":13112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14745:49:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13113,"nodeType":"ExpressionStatement","src":"14745:49:67"},{"assignments":[13115],"declarations":[{"constant":false,"id":13115,"mutability":"mutable","name":"claimAmount","nameLocation":"14814:11:67","nodeType":"VariableDeclaration","scope":13194,"src":"14806:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13114,"name":"uint256","nodeType":"ElementaryTypeName","src":"14806:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13122,"initialValue":{"arguments":[{"expression":{"id":13117,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13073,"src":"14857:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk memory"}},"id":13118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutPercentage","nodeType":"MemberAccess","referencedDeclaration":11912,"src":"14857:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13119,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13055,"src":"14893:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":13120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"14893:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13116,"name":"calculatePayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13213,"src":"14828:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14828:94:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14806:116:67"},{"assignments":[13124],"declarations":[{"constant":false,"id":13124,"mutability":"mutable","name":"claimId","nameLocation":"14949:7:67","nodeType":"VariableDeclaration","scope":13194,"src":"14941:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13123,"name":"uint256","nodeType":"ElementaryTypeName","src":"14941:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13130,"initialValue":{"arguments":[{"id":13126,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"14969:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13127,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13115,"src":"14979:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":13128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14992:2:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":13125,"name":"_newClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"14959:9:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) returns (uint256)"}},"id":13129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14959:36:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14941:54:67"},{"eventCall":{"arguments":[{"id":13132,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15030:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13133,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"15040:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13134,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13115,"src":"15049:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13131,"name":"LogAyiiClaimCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12036,"src":"15010:19:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":13135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15010:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13136,"nodeType":"EmitStatement","src":"15005:56:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13137,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13115,"src":"15076:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15090:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15076:15:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13180,"nodeType":"Block","src":"15419:101:67","statements":[{"expression":{"arguments":[{"id":13171,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15447:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13172,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"15457:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13170,"name":"_declineClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"15433:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15433:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13174,"nodeType":"ExpressionStatement","src":"15433:32:67"},{"expression":{"arguments":[{"id":13176,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15491:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13177,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"15501:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13175,"name":"_closeClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3845,"src":"15479:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15479:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13179,"nodeType":"ExpressionStatement","src":"15479:30:67"}]},"id":13181,"nodeType":"IfStatement","src":"15072:448:67","trueBody":{"id":13169,"nodeType":"Block","src":"15093:312:67","statements":[{"assignments":[13141],"declarations":[{"constant":false,"id":13141,"mutability":"mutable","name":"payoutAmount","nameLocation":"15115:12:67","nodeType":"VariableDeclaration","scope":13169,"src":"15107:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13140,"name":"uint256","nodeType":"ElementaryTypeName","src":"15107:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13143,"initialValue":{"id":13142,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13115,"src":"15130:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15107:34:67"},{"expression":{"arguments":[{"id":13145,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15169:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13146,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"15179:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13147,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13141,"src":"15188:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13144,"name":"_confirmClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"15155:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":13148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15155:46:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13149,"nodeType":"ExpressionStatement","src":"15155:46:67"},{"assignments":[13151],"declarations":[{"constant":false,"id":13151,"mutability":"mutable","name":"payoutId","nameLocation":"15224:8:67","nodeType":"VariableDeclaration","scope":13169,"src":"15216:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13150,"name":"uint256","nodeType":"ElementaryTypeName","src":"15216:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13158,"initialValue":{"arguments":[{"id":13153,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15246:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13154,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13124,"src":"15256:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13155,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13141,"src":"15265:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":13156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15279:2:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":13152,"name":"_newPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"15235:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) returns (uint256)"}},"id":13157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15235:47:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15216:66:67"},{"expression":{"arguments":[{"id":13160,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15311:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13161,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13151,"src":"15321:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13159,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"15296:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (uint256,uint256)"}},"id":13162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15296:34:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":13163,"nodeType":"ExpressionStatement","src":"15296:34:67"},{"eventCall":{"arguments":[{"id":13165,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15371:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13166,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13141,"src":"15381:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13164,"name":"LogAyiiPayoutCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12042,"src":"15350:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15350:44:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13168,"nodeType":"EmitStatement","src":"15345:49:67"}]}},{"expression":{"arguments":[{"id":13183,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15538:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13182,"name":"_expire","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3764,"src":"15530:7:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15530:17:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13185,"nodeType":"ExpressionStatement","src":"15530:17:67"},{"expression":{"arguments":[{"id":13187,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15564:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13186,"name":"_close","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"15557:6:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15557:16:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13189,"nodeType":"ExpressionStatement","src":"15557:16:67"},{"eventCall":{"arguments":[{"id":13191,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13045,"src":"15612:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13190,"name":"LogAyiiPolicyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"15589:22:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15589:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13193,"nodeType":"EmitStatement","src":"15584:37:67"}]},"functionSelector":"0b228d95","id":13195,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13048,"name":"INSURER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11860,"src":"14271:12:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13049,"modifierName":{"id":13047,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"14262:8:67"},"nodeType":"ModifierInvocation","src":"14262:22:67"}],"name":"processPolicy","nameLocation":"14207:13:67","nodeType":"FunctionDefinition","parameters":{"id":13046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13045,"mutability":"mutable","name":"policyId","nameLocation":"14229:8:67","nodeType":"VariableDeclaration","scope":13195,"src":"14221:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13044,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14221:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14220:18:67"},"returnParameters":{"id":13050,"nodeType":"ParameterList","parameters":[],"src":"14289:0:67"},"scope":13585,"src":"14198:1430:67","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":13212,"nodeType":"Block","src":"15781:91:67","statements":[{"expression":{"id":13210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13204,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13202,"src":"15791:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13205,"name":"payoutPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13197,"src":"15806:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13206,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13199,"src":"15825:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15806:35:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13208,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"15844:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15806:59:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15791:74:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13211,"nodeType":"ExpressionStatement","src":"15791:74:67"}]},"functionSelector":"9dce5ff0","id":13213,"implemented":true,"kind":"function","modifiers":[],"name":"calculatePayout","nameLocation":"15643:15:67","nodeType":"FunctionDefinition","parameters":{"id":13200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13197,"mutability":"mutable","name":"payoutPercentage","nameLocation":"15667:16:67","nodeType":"VariableDeclaration","scope":13213,"src":"15659:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13196,"name":"uint256","nodeType":"ElementaryTypeName","src":"15659:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13199,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"15693:16:67","nodeType":"VariableDeclaration","scope":13213,"src":"15685:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13198,"name":"uint256","nodeType":"ElementaryTypeName","src":"15685:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15658:52:67"},"returnParameters":{"id":13203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13202,"mutability":"mutable","name":"payoutAmount","nameLocation":"15763:12:67","nodeType":"VariableDeclaration","scope":13213,"src":"15755:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13201,"name":"uint256","nodeType":"ElementaryTypeName","src":"15755:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15754:22:67"},"scope":13585,"src":"15634:238:67","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":13272,"nodeType":"Block","src":"16292:534:67","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13228,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13223,"src":"16375:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13229,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"16382:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16375:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13231,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"16407:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13232,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13217,"src":"16413:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16407:13:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16375:45:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13238,"nodeType":"IfStatement","src":"16371:84:67","trueBody":{"id":13237,"nodeType":"Block","src":"16422:33:67","statements":[{"expression":{"hexValue":"30","id":13235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16443:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":13227,"id":13236,"nodeType":"Return","src":"16436:8:67"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13239,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13223,"src":"16541:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13240,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"16548:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16541:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13242,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"16573:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13243,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13219,"src":"16579:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16573:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16541:42:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13249,"nodeType":"IfStatement","src":"16537:83:67","trueBody":{"id":13248,"nodeType":"Block","src":"16585:35:67","statements":[{"expression":{"id":13246,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"16606:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13227,"id":13247,"nodeType":"Return","src":"16599:10:67"}]}},{"assignments":[13251],"declarations":[{"constant":false,"id":13251,"mutability":"mutable","name":"harvestRatio","nameLocation":"16692:12:67","nodeType":"VariableDeclaration","scope":13272,"src":"16684:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13250,"name":"uint256","nodeType":"ElementaryTypeName","src":"16684:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13257,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13252,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"16707:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":13253,"name":"aaay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13223,"src":"16731:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16707:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":13255,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13221,"src":"16738:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16707:34:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16684:57:67"},{"expression":{"id":13270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13258,"name":"payoutPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13226,"src":"16751:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13259,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13215,"src":"16770:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13260,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13217,"src":"16777:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13261,"name":"harvestRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13251,"src":"16787:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16777:22:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13263,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16776:24:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16770:30:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13265,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13217,"src":"16804:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":13266,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13219,"src":"16814:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16804:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13268,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16803:16:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16770:49:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16751:68:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13271,"nodeType":"ExpressionStatement","src":"16751:68:67"}]},"functionSelector":"46b937f6","id":13273,"implemented":true,"kind":"function","modifiers":[],"name":"calculatePayoutPercentage","nameLocation":"15887:25:67","nodeType":"FunctionDefinition","parameters":{"id":13224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13215,"mutability":"mutable","name":"tsi","nameLocation":"15930:3:67","nodeType":"VariableDeclaration","scope":13273,"src":"15922:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13214,"name":"uint256","nodeType":"ElementaryTypeName","src":"15922:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13217,"mutability":"mutable","name":"trigger","nameLocation":"15976:7:67","nodeType":"VariableDeclaration","scope":13273,"src":"15968:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13216,"name":"uint256","nodeType":"ElementaryTypeName","src":"15968:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13219,"mutability":"mutable","name":"exit","nameLocation":"16054:4:67","nodeType":"VariableDeclaration","scope":13273,"src":"16046:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13218,"name":"uint256","nodeType":"ElementaryTypeName","src":"16046:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13221,"mutability":"mutable","name":"aph","nameLocation":"16135:3:67","nodeType":"VariableDeclaration","scope":13273,"src":"16127:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13220,"name":"uint256","nodeType":"ElementaryTypeName","src":"16127:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13223,"mutability":"mutable","name":"aaay","nameLocation":"16184:4:67","nodeType":"VariableDeclaration","scope":13273,"src":"16176:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13222,"name":"uint256","nodeType":"ElementaryTypeName","src":"16176:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15912:305:67"},"returnParameters":{"id":13227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13226,"mutability":"mutable","name":"payoutPercentage","nameLocation":"16270:16:67","nodeType":"VariableDeclaration","scope":13273,"src":"16262:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13225,"name":"uint256","nodeType":"ElementaryTypeName","src":"16262:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16261:26:67"},"scope":13585,"src":"15878:948:67","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":13280,"nodeType":"Block","src":"16909:45:67","statements":[{"expression":{"id":13278,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"16926:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13277,"id":13279,"nodeType":"Return","src":"16919:28:67"}]},"functionSelector":"66528c3b","id":13281,"implemented":true,"kind":"function","modifiers":[],"name":"getPercentageMultiplier","nameLocation":"16841:23:67","nodeType":"FunctionDefinition","parameters":{"id":13274,"nodeType":"ParameterList","parameters":[],"src":"16864:2:67"},"returnParameters":{"id":13277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13276,"mutability":"mutable","name":"multiplier","nameLocation":"16897:10:67","nodeType":"VariableDeclaration","scope":13281,"src":"16889:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13275,"name":"uint256","nodeType":"ElementaryTypeName","src":"16889:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16888:20:67"},"scope":13585,"src":"16832:122:67","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":13297,"nodeType":"Block","src":"17026:38:67","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13290,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"17043:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13291,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13285,"src":"17048:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17043:6:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":13294,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13285,"src":"17056:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"17043:14:67","trueExpression":{"id":13293,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13283,"src":"17052:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13289,"id":13296,"nodeType":"Return","src":"17036:21:67"}]},"id":13298,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"16969:3:67","nodeType":"FunctionDefinition","parameters":{"id":13286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13283,"mutability":"mutable","name":"a","nameLocation":"16981:1:67","nodeType":"VariableDeclaration","scope":13298,"src":"16973:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13282,"name":"uint256","nodeType":"ElementaryTypeName","src":"16973:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13285,"mutability":"mutable","name":"b","nameLocation":"16992:1:67","nodeType":"VariableDeclaration","scope":13298,"src":"16984:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13284,"name":"uint256","nodeType":"ElementaryTypeName","src":"16984:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16972:22:67"},"returnParameters":{"id":13289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13288,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13298,"src":"17017:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13287,"name":"uint256","nodeType":"ElementaryTypeName","src":"17017:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17016:9:67"},"scope":13585,"src":"16960:104:67","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":13306,"nodeType":"Block","src":"17119:27:67","statements":[{"expression":{"expression":{"id":13303,"name":"_riskIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11925,"src":"17128:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"17128:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13302,"id":13305,"nodeType":"Return","src":"17121:22:67"}]},"functionSelector":"f9d7ff89","id":13307,"implemented":true,"kind":"function","modifiers":[],"name":"risks","nameLocation":"17080:5:67","nodeType":"FunctionDefinition","parameters":{"id":13299,"nodeType":"ParameterList","parameters":[],"src":"17085:2:67"},"returnParameters":{"id":13302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13307,"src":"17110:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13300,"name":"uint256","nodeType":"ElementaryTypeName","src":"17110:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17109:9:67"},"scope":13585,"src":"17071:75:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13318,"nodeType":"Block","src":"17221:25:67","statements":[{"expression":{"baseExpression":{"id":13314,"name":"_riskIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11925,"src":"17230:8:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13316,"indexExpression":{"id":13315,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13309,"src":"17239:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17230:13:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13313,"id":13317,"nodeType":"Return","src":"17223:20:67"}]},"functionSelector":"eb807339","id":13319,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskId","nameLocation":"17160:9:67","nodeType":"FunctionDefinition","parameters":{"id":13310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13309,"mutability":"mutable","name":"idx","nameLocation":"17178:3:67","nodeType":"VariableDeclaration","scope":13319,"src":"17170:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13308,"name":"uint256","nodeType":"ElementaryTypeName","src":"17170:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17169:13:67"},"returnParameters":{"id":13313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13312,"mutability":"mutable","name":"riskId","nameLocation":"17213:6:67","nodeType":"VariableDeclaration","scope":13319,"src":"17205:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17205:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17204:16:67"},"scope":13585,"src":"17151:95:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13331,"nodeType":"Block","src":"17324:26:67","statements":[{"expression":{"baseExpression":{"id":13327,"name":"_risks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11930,"src":"17333:6:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Risk_$11917_storage_$","typeString":"mapping(bytes32 => struct AyiiProduct.Risk storage ref)"}},"id":13329,"indexExpression":{"id":13328,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"17340:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17333:14:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage","typeString":"struct AyiiProduct.Risk storage ref"}},"functionReturnParameters":13326,"id":13330,"nodeType":"Return","src":"17326:21:67"}]},"functionSelector":"5a602109","id":13332,"implemented":true,"kind":"function","modifiers":[],"name":"getRisk","nameLocation":"17260:7:67","nodeType":"FunctionDefinition","parameters":{"id":13322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13321,"mutability":"mutable","name":"riskId","nameLocation":"17276:6:67","nodeType":"VariableDeclaration","scope":13332,"src":"17268:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17268:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17267:16:67"},"returnParameters":{"id":13326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13325,"mutability":"mutable","name":"risk","nameLocation":"17318:4:67","nodeType":"VariableDeclaration","scope":13332,"src":"17306:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":13324,"nodeType":"UserDefinedTypeName","pathNode":{"id":13323,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"17306:4:67"},"referencedDeclaration":11917,"src":"17306:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"src":"17305:18:67"},"scope":13585,"src":"17251:99:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13340,"nodeType":"Block","src":"17428:44:67","statements":[{"expression":{"expression":{"id":13337,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11938,"src":"17445:13:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"17445:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13336,"id":13339,"nodeType":"Return","src":"17438:27:67"}]},"functionSelector":"7ce5e82f","id":13341,"implemented":true,"kind":"function","modifiers":[],"name":"applications","nameLocation":"17365:12:67","nodeType":"FunctionDefinition","parameters":{"id":13333,"nodeType":"ParameterList","parameters":[],"src":"17377:2:67"},"returnParameters":{"id":13336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13335,"mutability":"mutable","name":"applicationCount","nameLocation":"17410:16:67","nodeType":"VariableDeclaration","scope":13341,"src":"17402:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13334,"name":"uint256","nodeType":"ElementaryTypeName","src":"17402:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17401:26:67"},"scope":13585,"src":"17356:116:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13352,"nodeType":"Block","src":"17569:53:67","statements":[{"expression":{"baseExpression":{"id":13348,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11938,"src":"17586:13:67","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":13350,"indexExpression":{"id":13349,"name":"applicationIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13343,"src":"17600:14:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17586:29:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13347,"id":13351,"nodeType":"Return","src":"17579:36:67"}]},"functionSelector":"d52d2d06","id":13353,"implemented":true,"kind":"function","modifiers":[],"name":"getApplicationId","nameLocation":"17487:16:67","nodeType":"FunctionDefinition","parameters":{"id":13344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13343,"mutability":"mutable","name":"applicationIdx","nameLocation":"17512:14:67","nodeType":"VariableDeclaration","scope":13353,"src":"17504:22:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13342,"name":"uint256","nodeType":"ElementaryTypeName","src":"17504:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17503:24:67"},"returnParameters":{"id":13347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13346,"mutability":"mutable","name":"processId","nameLocation":"17558:9:67","nodeType":"VariableDeclaration","scope":13353,"src":"17550:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17550:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17549:19:67"},"scope":13585,"src":"17478:144:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13367,"nodeType":"Block","src":"17705:63:67","statements":[{"expression":{"arguments":[{"baseExpression":{"id":13362,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"17743:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":13364,"indexExpression":{"id":13363,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13355,"src":"17753:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17743:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":13360,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"17722:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":13361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"17722:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":13365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17722:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":13359,"id":13366,"nodeType":"Return","src":"17715:46:67"}]},"functionSelector":"ddbfd8ef","id":13368,"implemented":true,"kind":"function","modifiers":[],"name":"policies","nameLocation":"17637:8:67","nodeType":"FunctionDefinition","parameters":{"id":13356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13355,"mutability":"mutable","name":"riskId","nameLocation":"17654:6:67","nodeType":"VariableDeclaration","scope":13368,"src":"17646:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13354,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17646:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17645:16:67"},"returnParameters":{"id":13359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13358,"mutability":"mutable","name":"policyCount","nameLocation":"17692:11:67","nodeType":"VariableDeclaration","scope":13368,"src":"17684:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13357,"name":"uint256","nodeType":"ElementaryTypeName","src":"17684:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17683:21:67"},"scope":13585,"src":"17628:140:67","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13385,"nodeType":"Block","src":"17871:70:67","statements":[{"expression":{"arguments":[{"baseExpression":{"id":13379,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11935,"src":"17905:9:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":13381,"indexExpression":{"id":13380,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13370,"src":"17915:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17905:17:67","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":13382,"name":"policyIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13372,"src":"17924:9:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13377,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"17888:13:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":13378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11132,"src":"17888:16:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":13383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17888:46:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13376,"id":13384,"nodeType":"Return","src":"17881:53:67"}]},"functionSelector":"412f91d9","id":13386,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyId","nameLocation":"17783:11:67","nodeType":"FunctionDefinition","parameters":{"id":13373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13370,"mutability":"mutable","name":"riskId","nameLocation":"17803:6:67","nodeType":"VariableDeclaration","scope":13386,"src":"17795:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17795:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13372,"mutability":"mutable","name":"policyIdx","nameLocation":"17819:9:67","nodeType":"VariableDeclaration","scope":13386,"src":"17811:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13371,"name":"uint256","nodeType":"ElementaryTypeName","src":"17811:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17794:35:67"},"returnParameters":{"id":13376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13375,"mutability":"mutable","name":"processId","nameLocation":"17860:9:67","nodeType":"VariableDeclaration","scope":13386,"src":"17852:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17852:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17851:19:67"},"scope":13585,"src":"17774:167:67","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[4016],"body":{"id":13394,"nodeType":"Block","src":"18046:42:67","statements":[{"expression":{"hexValue":"2862797465733332207269736b496429","id":13392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18063:18:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_613854e3af38a6d6c072065806f5de3534172b4dc44e1a9acd5e25f6a8ee3fa9","typeString":"literal_string \"(bytes32 riskId)\""},"value":"(bytes32 riskId)"},"functionReturnParameters":13391,"id":13393,"nodeType":"Return","src":"18056:25:67"}]},"functionSelector":"94f64ff4","id":13395,"implemented":true,"kind":"function","modifiers":[],"name":"getApplicationDataStructure","nameLocation":"17956:27:67","nodeType":"FunctionDefinition","overrides":{"id":13388,"nodeType":"OverrideSpecifier","overrides":[],"src":"17995:8:67"},"parameters":{"id":13387,"nodeType":"ParameterList","parameters":[],"src":"17983:2:67"},"returnParameters":{"id":13391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13390,"mutability":"mutable","name":"dataStructure","nameLocation":"18031:13:67","nodeType":"VariableDeclaration","scope":13395,"src":"18017:27:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13389,"name":"string","nodeType":"ElementaryTypeName","src":"18017:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18016:29:67"},"scope":13585,"src":"17947:141:67","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":13464,"nodeType":"Block","src":"18245:664:67","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13407,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13397,"src":"18263:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13408,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"18274:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18263:32:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034303a5249534b5f545249474745525f544f4f5f4c41524745","id":13410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18297:38:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_d25b01973080c85f3d4c19010fc1d88672bc6d17cea35996204c37425ae4f136","typeString":"literal_string \"ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE\""},"value":"ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d25b01973080c85f3d4c19010fc1d88672bc6d17cea35996204c37425ae4f136","typeString":"literal_string \"ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE\""}],"id":13406,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18255:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18255:81:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13412,"nodeType":"ExpressionStatement","src":"18255:81:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13414,"name":"trigger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13397,"src":"18354:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":13415,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13399,"src":"18364:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18354:14:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034313a5249534b5f545249474745525f4e4f545f4c41524745525f5448414e5f45584954","id":13417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18370:49:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_412e0dd059ff5ee1474516ff048f71840a3a2965c87e0ba7efd8312e11193f6b","typeString":"literal_string \"ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT\""},"value":"ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_412e0dd059ff5ee1474516ff048f71840a3a2965c87e0ba7efd8312e11193f6b","typeString":"literal_string \"ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT\""}],"id":13413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18346:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18346:74:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13419,"nodeType":"ExpressionStatement","src":"18346:74:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13421,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13399,"src":"18438:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13422,"name":"RISK_EXIT_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11881,"src":"18446:13:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18438:21:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034323a5249534b5f455849545f544f4f5f4c41524745","id":13424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18461:35:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_2498ce872169b7763abec28f7059d4a97ac70a016e3a78c66a9f5c7740b38ef8","typeString":"literal_string \"ERROR:AYI-042:RISK_EXIT_TOO_LARGE\""},"value":"ERROR:AYI-042:RISK_EXIT_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2498ce872169b7763abec28f7059d4a97ac70a016e3a78c66a9f5c7740b38ef8","typeString":"literal_string \"ERROR:AYI-042:RISK_EXIT_TOO_LARGE\""}],"id":13420,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18430:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18430:67:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13426,"nodeType":"ExpressionStatement","src":"18430:67:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13428,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"18515:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":13429,"name":"RISK_TSI_AT_EXIT_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11886,"src":"18522:20:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18515:27:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034333a5249534b5f5453495f544f4f5f534d414c4c","id":13431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18545:34:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_ac82fb86fd21de21f78be2f637e9fab58b40e12b4a4583436526b5f1f92f6037","typeString":"literal_string \"ERROR:AYI-043:RISK_TSI_TOO_SMALL\""},"value":"ERROR:AYI-043:RISK_TSI_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ac82fb86fd21de21f78be2f637e9fab58b40e12b4a4583436526b5f1f92f6037","typeString":"literal_string \"ERROR:AYI-043:RISK_TSI_TOO_SMALL\""}],"id":13427,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18507:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18507:73:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13433,"nodeType":"ExpressionStatement","src":"18507:73:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13435,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"18598:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13436,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"18605:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18598:28:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034343a5249534b5f5453495f544f4f5f4c41524745","id":13438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18629:34:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c593a3453eafb148b39dbe11ea4cd77edd7d3bf9c49913b3d86cf2b2ad158ac6","typeString":"literal_string \"ERROR:AYI-044:RISK_TSI_TOO_LARGE\""},"value":"ERROR:AYI-044:RISK_TSI_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c593a3453eafb148b39dbe11ea4cd77edd7d3bf9c49913b3d86cf2b2ad158ac6","typeString":"literal_string \"ERROR:AYI-044:RISK_TSI_TOO_LARGE\""}],"id":13434,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18590:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18590:74:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13440,"nodeType":"ExpressionStatement","src":"18590:74:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13442,"name":"tsi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13401,"src":"18682:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":13443,"name":"exit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13399,"src":"18688:4:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18682:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13445,"name":"PERCENTAGE_MULTIPLIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11865,"src":"18696:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18682:35:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034353a5249534b5f5453495f455849545f53554d5f544f4f5f4c41524745","id":13447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18719:43:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_722b7f7e542cc90fba74057b4a362428bdd9a3b53029c438d846a79f1ac5a7d3","typeString":"literal_string \"ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE\""},"value":"ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_722b7f7e542cc90fba74057b4a362428bdd9a3b53029c438d846a79f1ac5a7d3","typeString":"literal_string \"ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE\""}],"id":13441,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18674:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18674:89:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13449,"nodeType":"ExpressionStatement","src":"18674:89:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13451,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13403,"src":"18781:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18787:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18781:7:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034363a5249534b5f4150485f5a45524f5f494e56414c4944","id":13454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18790:37:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_0a4d1e7ee13d3e1c186b0c5039ac828c21427604ef12eb5f13ec178f7b5ae702","typeString":"literal_string \"ERROR:AYI-046:RISK_APH_ZERO_INVALID\""},"value":"ERROR:AYI-046:RISK_APH_ZERO_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0a4d1e7ee13d3e1c186b0c5039ac828c21427604ef12eb5f13ec178f7b5ae702","typeString":"literal_string \"ERROR:AYI-046:RISK_APH_ZERO_INVALID\""}],"id":13450,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18773:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18773:55:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13456,"nodeType":"ExpressionStatement","src":"18773:55:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13458,"name":"aph","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13403,"src":"18846:3:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":13459,"name":"RISK_APH_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11876,"src":"18853:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18846:19:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4159492d3034373a5249534b5f4150485f544f4f5f4c41524745","id":13461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18867:34:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_41a8e910e497c53c0ffe6a8d374e9ceae17e46879b937ab53f2189842ece12cd","typeString":"literal_string \"ERROR:AYI-047:RISK_APH_TOO_LARGE\""},"value":"ERROR:AYI-047:RISK_APH_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_41a8e910e497c53c0ffe6a8d374e9ceae17e46879b937ab53f2189842ece12cd","typeString":"literal_string \"ERROR:AYI-047:RISK_APH_TOO_LARGE\""}],"id":13457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18838:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18838:64:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13463,"nodeType":"ExpressionStatement","src":"18838:64:67"}]},"id":13465,"implemented":true,"kind":"function","modifiers":[],"name":"_validateRiskParameters","nameLocation":"18104:23:67","nodeType":"FunctionDefinition","parameters":{"id":13404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13397,"mutability":"mutable","name":"trigger","nameLocation":"18145:7:67","nodeType":"VariableDeclaration","scope":13465,"src":"18137:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13396,"name":"uint256","nodeType":"ElementaryTypeName","src":"18137:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13399,"mutability":"mutable","name":"exit","nameLocation":"18171:4:67","nodeType":"VariableDeclaration","scope":13465,"src":"18163:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13398,"name":"uint256","nodeType":"ElementaryTypeName","src":"18163:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13401,"mutability":"mutable","name":"tsi","nameLocation":"18193:3:67","nodeType":"VariableDeclaration","scope":13465,"src":"18185:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13400,"name":"uint256","nodeType":"ElementaryTypeName","src":"18185:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13403,"mutability":"mutable","name":"aph","nameLocation":"18214:3:67","nodeType":"VariableDeclaration","scope":13465,"src":"18206:11:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13402,"name":"uint256","nodeType":"ElementaryTypeName","src":"18206:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18127:96:67"},"returnParameters":{"id":13405,"nodeType":"ParameterList","parameters":[],"src":"18245:0:67"},"scope":13585,"src":"18095:814:67","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13554,"nodeType":"Block","src":"18996:868:67","statements":[{"assignments":[13477],"declarations":[{"constant":false,"id":13477,"mutability":"mutable","name":"application","nameLocation":"19033:11:67","nodeType":"VariableDeclaration","scope":13554,"src":"19006:38:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":13476,"nodeType":"UserDefinedTypeName","pathNode":{"id":13475,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"19006:19:67"},"referencedDeclaration":5262,"src":"19006:19:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":13481,"initialValue":{"arguments":[{"id":13479,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19076:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13478,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"19060:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":13480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19060:25:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"19006:79:67"},{"assignments":[13483],"declarations":[{"constant":false,"id":13483,"mutability":"mutable","name":"claimAmount","nameLocation":"19104:11:67","nodeType":"VariableDeclaration","scope":13554,"src":"19096:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13482,"name":"uint256","nodeType":"ElementaryTypeName","src":"19096:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13490,"initialValue":{"arguments":[{"expression":{"id":13485,"name":"risk","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13470,"src":"19147:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk memory"}},"id":13486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutPercentage","nodeType":"MemberAccess","referencedDeclaration":11912,"src":"19147:21:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":13487,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13477,"src":"19183:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":13488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"19183:28:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13484,"name":"calculatePayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13213,"src":"19118:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":13489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19118:94:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19096:116:67"},{"assignments":[13492],"declarations":[{"constant":false,"id":13492,"mutability":"mutable","name":"claimId","nameLocation":"19239:7:67","nodeType":"VariableDeclaration","scope":13554,"src":"19231:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13491,"name":"uint256","nodeType":"ElementaryTypeName","src":"19231:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13498,"initialValue":{"arguments":[{"id":13494,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19259:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13495,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"19269:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":13496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19282:2:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":13493,"name":"_newClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"19249:9:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) returns (uint256)"}},"id":13497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19249:36:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19231:54:67"},{"eventCall":{"arguments":[{"id":13500,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19320:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13501,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"19330:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13502,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"19339:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13499,"name":"LogAyiiClaimCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12036,"src":"19300:19:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":13503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19300:51:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13504,"nodeType":"EmitStatement","src":"19295:56:67"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13505,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"19366:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19380:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19366:15:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":13548,"nodeType":"Block","src":"19709:101:67","statements":[{"expression":{"arguments":[{"id":13539,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19737:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13540,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"19747:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13538,"name":"_declineClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"19723:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19723:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13542,"nodeType":"ExpressionStatement","src":"19723:32:67"},{"expression":{"arguments":[{"id":13544,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19781:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13545,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"19791:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13543,"name":"_closeClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3845,"src":"19769:11:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19769:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13547,"nodeType":"ExpressionStatement","src":"19769:30:67"}]},"id":13549,"nodeType":"IfStatement","src":"19362:448:67","trueBody":{"id":13537,"nodeType":"Block","src":"19383:312:67","statements":[{"assignments":[13509],"declarations":[{"constant":false,"id":13509,"mutability":"mutable","name":"payoutAmount","nameLocation":"19405:12:67","nodeType":"VariableDeclaration","scope":13537,"src":"19397:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13508,"name":"uint256","nodeType":"ElementaryTypeName","src":"19397:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13511,"initialValue":{"id":13510,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13483,"src":"19420:11:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19397:34:67"},{"expression":{"arguments":[{"id":13513,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19459:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13514,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"19469:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13515,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13509,"src":"19478:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13512,"name":"_confirmClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"19445:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":13516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19445:46:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13517,"nodeType":"ExpressionStatement","src":"19445:46:67"},{"assignments":[13519],"declarations":[{"constant":false,"id":13519,"mutability":"mutable","name":"payoutId","nameLocation":"19514:8:67","nodeType":"VariableDeclaration","scope":13537,"src":"19506:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13518,"name":"uint256","nodeType":"ElementaryTypeName","src":"19506:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13526,"initialValue":{"arguments":[{"id":13521,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19536:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13522,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13492,"src":"19546:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13523,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13509,"src":"19555:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":13524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19569:2:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":13520,"name":"_newPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"19525:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) returns (uint256)"}},"id":13525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19525:47:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19506:66:67"},{"expression":{"arguments":[{"id":13528,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19601:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13529,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13519,"src":"19611:8:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13527,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"19586:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (uint256,uint256)"}},"id":13530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19586:34:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":13531,"nodeType":"ExpressionStatement","src":"19586:34:67"},{"eventCall":{"arguments":[{"id":13533,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19661:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13534,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13509,"src":"19671:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13532,"name":"LogAyiiPayoutCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12042,"src":"19640:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":13535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19640:44:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13536,"nodeType":"EmitStatement","src":"19635:49:67"}]}},{"eventCall":{"arguments":[{"id":13551,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"19848:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13550,"name":"LogAyiiPolicyProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"19825:22:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19825:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13553,"nodeType":"EmitStatement","src":"19820:37:67"}]},"id":13555,"implemented":true,"kind":"function","modifiers":[],"name":"_processPolicy","nameLocation":"18924:14:67","nodeType":"FunctionDefinition","parameters":{"id":13471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13467,"mutability":"mutable","name":"policyId","nameLocation":"18947:8:67","nodeType":"VariableDeclaration","scope":13555,"src":"18939:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13466,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18939:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13470,"mutability":"mutable","name":"risk","nameLocation":"18969:4:67","nodeType":"VariableDeclaration","scope":13555,"src":"18957:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_memory_ptr","typeString":"struct AyiiProduct.Risk"},"typeName":{"id":13469,"nodeType":"UserDefinedTypeName","pathNode":{"id":13468,"name":"Risk","nodeType":"IdentifierPath","referencedDeclaration":11917,"src":"18957:4:67"},"referencedDeclaration":11917,"src":"18957:4:67","typeDescriptions":{"typeIdentifier":"t_struct$_Risk_$11917_storage_ptr","typeString":"struct AyiiProduct.Risk"}},"visibility":"internal"}],"src":"18938:36:67"},"returnParameters":{"id":13472,"nodeType":"ParameterList","parameters":[],"src":"18996:0:67"},"scope":13585,"src":"18915:949:67","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":13583,"nodeType":"Block","src":"19946:144:67","statements":[{"assignments":[13566],"declarations":[{"constant":false,"id":13566,"mutability":"mutable","name":"application","nameLocation":"19983:11:67","nodeType":"VariableDeclaration","scope":13583,"src":"19956:38:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":13565,"nodeType":"UserDefinedTypeName","pathNode":{"id":13564,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"19956:19:67"},"referencedDeclaration":5262,"src":"19956:19:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":13570,"initialValue":{"arguments":[{"id":13568,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13557,"src":"20013:9:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13567,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"19997:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":13569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19997:26:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"19956:67:67"},{"expression":{"id":13581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":13571,"name":"riskId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13560,"src":"20034:6:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13572,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"20033:8:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":13575,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13566,"src":"20055:11:67","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":13576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"20055:16:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":13578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20074:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":13577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20074:7:67","typeDescriptions":{}}}],"id":13579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20073:9:67","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":13573,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"20044:3:67","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"20044:10:67","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":13580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20044:39:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"20033:50:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13582,"nodeType":"ExpressionStatement","src":"20033:50:67"}]},"id":13584,"implemented":true,"kind":"function","modifiers":[],"name":"_getRiskId","nameLocation":"19879:10:67","nodeType":"FunctionDefinition","parameters":{"id":13558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13557,"mutability":"mutable","name":"processId","nameLocation":"19898:9:67","nodeType":"VariableDeclaration","scope":13584,"src":"19890:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19890:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19889:19:67"},"returnParameters":{"id":13561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13560,"mutability":"mutable","name":"riskId","nameLocation":"19938:6:67","nodeType":"VariableDeclaration","scope":13584,"src":"19930:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19930:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19929:16:67"},"scope":13585,"src":"19870:220:67","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":13586,"src":"562:19530:67"}],"src":"32:20060:67"},"id":67},"contracts/examples/AyiiRiskpool.sol":{"ast":{"absolutePath":"contracts/examples/AyiiRiskpool.sol","exportedSymbols":{"AccessControl":[7145],"AyiiRiskpool":[13686],"BasicRiskpool":[2464],"Component":[2884],"Context":[10518],"ERC165":[10828],"IAccess":[4836],"IAccessControl":[7343],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Riskpool":[4773],"Strings":[10804]},"id":13687,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":13587,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:68"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":13588,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13687,"sourceUnit":7146,"src":"66:58:68","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol","file":"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol","id":13589,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13687,"sourceUnit":2465,"src":"128:72:68","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"@etherisc/gif-interface/contracts/modules/IBundle.sol","id":13590,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13687,"sourceUnit":5021,"src":"202:63:68","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":13591,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":13687,"sourceUnit":5434,"src":"267:63:68","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13592,"name":"BasicRiskpool","nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"365:13:68"},"id":13593,"nodeType":"InheritanceSpecifier","src":"365:13:68"},{"baseName":{"id":13594,"name":"AccessControl","nodeType":"IdentifierPath","referencedDeclaration":7145,"src":"385:13:68"},"id":13595,"nodeType":"InheritanceSpecifier","src":"385:13:68"}],"contractDependencies":[2464,2884,2988,3312,4773,5073,7145,7343,7481,10518,10828,10840],"contractKind":"contract","fullyImplemented":true,"id":13686,"linearizedBaseContracts":[13686,7145,10828,10840,7343,2464,4773,2884,7481,10518,5073,3312,2988],"name":"AyiiRiskpool","nameLocation":"343:12:68","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"76082a5e","id":13600,"mutability":"constant","name":"INVESTOR_ROLE","nameLocation":"506:13:68","nodeType":"VariableDeclaration","scope":13686,"src":"482:61:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"482:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"494e564553544f52","id":13598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"532:10:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d935","typeString":"literal_string \"INVESTOR\""},"value":"INVESTOR"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d935","typeString":"literal_string \"INVESTOR\""}],"id":13597,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"522:9:68","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"522:21:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"be61e91e","id":13605,"mutability":"constant","name":"SUM_OF_SUM_INSURED_CAP","nameLocation":"659:22:68","nodeType":"VariableDeclaration","scope":13686,"src":"635:55:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13601,"name":"uint256","nodeType":"ElementaryTypeName","src":"635:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"},"id":13604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":13602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"684:2:68","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":13603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"688:2:68","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"684:6:68","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"}},"visibility":"public"},{"body":{"id":13632,"nodeType":"Block","src":"965:65:68","statements":[{"expression":{"arguments":[{"id":13627,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"989:18:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":13628,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1009:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":13629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1009:12:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13626,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7053,"src":"978:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":13630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"978:44:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13631,"nodeType":"ExpressionStatement","src":"978:44:68"}]},"id":13633,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":13618,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13607,"src":"881:4:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13619,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13609,"src":"887:17:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13620,"name":"SUM_OF_SUM_INSURED_CAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13605,"src":"906:22:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13621,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13611,"src":"930:10:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13622,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13613,"src":"942:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13623,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13615,"src":"950:8:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":13624,"modifierName":{"id":13617,"name":"BasicRiskpool","nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"867:13:68"},"nodeType":"ModifierInvocation","src":"867:92:68"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13607,"mutability":"mutable","name":"name","nameLocation":"729:4:68","nodeType":"VariableDeclaration","scope":13633,"src":"721:12:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"721:7:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13609,"mutability":"mutable","name":"collateralization","nameLocation":"752:17:68","nodeType":"VariableDeclaration","scope":13633,"src":"744:25:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13608,"name":"uint256","nodeType":"ElementaryTypeName","src":"744:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13611,"mutability":"mutable","name":"erc20Token","nameLocation":"788:10:68","nodeType":"VariableDeclaration","scope":13633,"src":"780:18:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13610,"name":"address","nodeType":"ElementaryTypeName","src":"780:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13613,"mutability":"mutable","name":"wallet","nameLocation":"817:6:68","nodeType":"VariableDeclaration","scope":13633,"src":"809:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13612,"name":"address","nodeType":"ElementaryTypeName","src":"809:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13615,"mutability":"mutable","name":"registry","nameLocation":"842:8:68","nodeType":"VariableDeclaration","scope":13633,"src":"834:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13614,"name":"address","nodeType":"ElementaryTypeName","src":"834:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"710:147:68"},"returnParameters":{"id":13625,"nodeType":"ParameterList","parameters":[],"src":"965:0:68"},"scope":13686,"src":"699:331:68","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":13645,"nodeType":"Block","src":"1127:54:68","statements":[{"expression":{"arguments":[{"id":13641,"name":"INVESTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13600,"src":"1149:13:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13642,"name":"investor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13635,"src":"1164:8:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13640,"name":"_setupRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7053,"src":"1138:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":13643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1138:35:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13644,"nodeType":"ExpressionStatement","src":"1138:35:68"}]},"functionSelector":"9088c119","id":13646,"implemented":true,"kind":"function","modifiers":[{"id":13638,"modifierName":{"id":13637,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"1112:9:68"},"nodeType":"ModifierInvocation","src":"1112:9:68"}],"name":"grantInvestorRole","nameLocation":"1049:17:68","nodeType":"FunctionDefinition","parameters":{"id":13636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13635,"mutability":"mutable","name":"investor","nameLocation":"1075:8:68","nodeType":"VariableDeclaration","scope":13646,"src":"1067:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13634,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1066:18:68"},"returnParameters":{"id":13639,"nodeType":"ParameterList","parameters":[],"src":"1127:0:68"},"scope":13686,"src":"1040:141:68","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4268],"body":{"id":13667,"nodeType":"Block","src":"1356:71:68","statements":[{"expression":{"id":13665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13659,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13657,"src":"1367:8:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":13662,"name":"filter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13648,"src":"1397:6:68","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":13663,"name":"initialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13650,"src":"1405:13:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":13660,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"1378:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AyiiRiskpool_$13686_$","typeString":"type(contract super AyiiRiskpool)"}},"id":13661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createBundle","nodeType":"MemberAccess","referencedDeclaration":4268,"src":"1378:18:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes memory,uint256) returns (uint256)"}},"id":13664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1378:41:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1367:52:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13666,"nodeType":"ExpressionStatement","src":"1367:52:68"}]},"functionSelector":"7888a2ff","id":13668,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":13654,"name":"INVESTOR_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13600,"src":"1301:13:68","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13655,"modifierName":{"id":13653,"name":"onlyRole","nodeType":"IdentifierPath","referencedDeclaration":6864,"src":"1292:8:68"},"nodeType":"ModifierInvocation","src":"1292:23:68"}],"name":"createBundle","nameLocation":"1200:12:68","nodeType":"FunctionDefinition","overrides":{"id":13652,"nodeType":"OverrideSpecifier","overrides":[],"src":"1274:8:68"},"parameters":{"id":13651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13648,"mutability":"mutable","name":"filter","nameLocation":"1226:6:68","nodeType":"VariableDeclaration","scope":13668,"src":"1213:19:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13647,"name":"bytes","nodeType":"ElementaryTypeName","src":"1213:5:68","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13650,"mutability":"mutable","name":"initialAmount","nameLocation":"1242:13:68","nodeType":"VariableDeclaration","scope":13668,"src":"1234:21:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13649,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1212:44:68"},"returnParameters":{"id":13658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13657,"mutability":"mutable","name":"bundleId","nameLocation":"1341:8:68","nodeType":"VariableDeclaration","scope":13668,"src":"1333:16:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13656,"name":"uint256","nodeType":"ElementaryTypeName","src":"1333:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1332:18:68"},"scope":13686,"src":"1191:236:68","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4722],"body":{"id":13684,"nodeType":"Block","src":"1709:36:68","statements":[{"expression":{"id":13682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13680,"name":"isMatching","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13678,"src":"1720:10:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1733:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1720:17:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13683,"nodeType":"ExpressionStatement","src":"1720:17:68"}]},"functionSelector":"86c71288","id":13685,"implemented":true,"kind":"function","modifiers":[],"name":"bundleMatchesApplication","nameLocation":"1508:24:68","nodeType":"FunctionDefinition","overrides":{"id":13676,"nodeType":"OverrideSpecifier","overrides":[],"src":"1646:8:68"},"parameters":{"id":13675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13671,"mutability":"mutable","name":"bundle","nameLocation":"1565:6:68","nodeType":"VariableDeclaration","scope":13685,"src":"1543:28:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":13670,"nodeType":"UserDefinedTypeName","pathNode":{"id":13669,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"1543:14:68"},"referencedDeclaration":4936,"src":"1543:14:68","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"},{"constant":false,"id":13674,"mutability":"mutable","name":"application","nameLocation":"1610:11:68","nodeType":"VariableDeclaration","scope":13685,"src":"1583:38:68","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":13673,"nodeType":"UserDefinedTypeName","pathNode":{"id":13672,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"1583:19:68"},"referencedDeclaration":5262,"src":"1583:19:68","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"1532:96:68"},"returnParameters":{"id":13679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13678,"mutability":"mutable","name":"isMatching","nameLocation":"1691:10:68","nodeType":"VariableDeclaration","scope":13685,"src":"1686:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13677,"name":"bool","nodeType":"ElementaryTypeName","src":"1686:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1685:17:68"},"scope":13686,"src":"1499:246:68","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":13687,"src":"334:1416:68"}],"src":"40:1710:68"},"id":68},"contracts/examples/mock/ChainlinkOperator.sol":{"ast":{"absolutePath":"contracts/examples/mock/ChainlinkOperator.sol","exportedSymbols":{"ChainlinkOperator":[14166],"Context":[10518],"Ownable":[7481]},"id":14167,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":13688,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"32:22:69"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":13689,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14167,"sourceUnit":7482,"src":"56:52:69","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":13690,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"145:7:69"},"id":13691,"nodeType":"InheritanceSpecifier","src":"145:7:69"}],"contractDependencies":[7481,10518],"contractKind":"contract","fullyImplemented":true,"id":14166,"linearizedBaseContracts":[14166,7481,10518],"name":"ChainlinkOperator","nameLocation":"119:17:69","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ChainlinkOperator.Commitment","id":13696,"members":[{"constant":false,"id":13693,"mutability":"mutable","name":"paramsHash","nameLocation":"196:10:69","nodeType":"VariableDeclaration","scope":13696,"src":"188:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":13692,"name":"bytes31","nodeType":"ElementaryTypeName","src":"188:7:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"},{"constant":false,"id":13695,"mutability":"mutable","name":"dataVersion","nameLocation":"222:11:69","nodeType":"VariableDeclaration","scope":13696,"src":"216:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":13694,"name":"uint8","nodeType":"ElementaryTypeName","src":"216:5:69","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"name":"Commitment","nameLocation":"167:10:69","nodeType":"StructDefinition","scope":14166,"src":"160:80:69","visibility":"public"},{"constant":true,"functionSelector":"25cb5bc0","id":13699,"mutability":"constant","name":"getExpiryTime","nameLocation":"270:13:69","nodeType":"VariableDeclaration","scope":14166,"src":"246:49:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13697,"name":"uint256","nodeType":"ElementaryTypeName","src":"246:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35","id":13698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"286:9:69","subdenomination":"minutes","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"5"},"visibility":"public"},{"constant":true,"id":13702,"mutability":"constant","name":"MAXIMUM_DATA_VERSION","nameLocation":"326:20:69","nodeType":"VariableDeclaration","scope":14166,"src":"301:51:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13700,"name":"uint256","nodeType":"ElementaryTypeName","src":"301:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"323536","id":13701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"349:3:69","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"private"},{"constant":true,"id":13705,"mutability":"constant","name":"MINIMUM_CONSUMER_GAS_LIMIT","nameLocation":"383:26:69","nodeType":"VariableDeclaration","scope":14166,"src":"358:60:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13703,"name":"uint256","nodeType":"ElementaryTypeName","src":"358:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"343030303030","id":13704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"412:6:69","typeDescriptions":{"typeIdentifier":"t_rational_400000_by_1","typeString":"int_const 400000"},"value":"400000"},"visibility":"private"},{"anonymous":false,"id":13712,"name":"AuthorizedSendersChanged","nameLocation":"431:24:69","nodeType":"EventDefinition","parameters":{"id":13711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13708,"indexed":false,"mutability":"mutable","name":"senders","nameLocation":"466:7:69","nodeType":"VariableDeclaration","scope":13712,"src":"456:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13706,"name":"address","nodeType":"ElementaryTypeName","src":"456:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13707,"nodeType":"ArrayTypeName","src":"456:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13710,"indexed":false,"mutability":"mutable","name":"changedBy","nameLocation":"483:9:69","nodeType":"VariableDeclaration","scope":13712,"src":"475:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13709,"name":"address","nodeType":"ElementaryTypeName","src":"475:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"455:38:69"},"src":"425:69:69"},{"anonymous":false,"id":13732,"name":"OracleRequest","nameLocation":"506:13:69","nodeType":"EventDefinition","parameters":{"id":13731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13714,"indexed":true,"mutability":"mutable","name":"specId","nameLocation":"545:6:69","nodeType":"VariableDeclaration","scope":13732,"src":"529:22:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"529:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13716,"indexed":false,"mutability":"mutable","name":"requester","nameLocation":"569:9:69","nodeType":"VariableDeclaration","scope":13732,"src":"561:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13715,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13718,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"596:9:69","nodeType":"VariableDeclaration","scope":13732,"src":"588:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"588:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13720,"indexed":false,"mutability":"mutable","name":"payment","nameLocation":"623:7:69","nodeType":"VariableDeclaration","scope":13732,"src":"615:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13719,"name":"uint256","nodeType":"ElementaryTypeName","src":"615:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13722,"indexed":false,"mutability":"mutable","name":"callbackAddr","nameLocation":"648:12:69","nodeType":"VariableDeclaration","scope":13732,"src":"640:20:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13721,"name":"address","nodeType":"ElementaryTypeName","src":"640:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13724,"indexed":false,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"677:18:69","nodeType":"VariableDeclaration","scope":13732,"src":"670:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13723,"name":"bytes4","nodeType":"ElementaryTypeName","src":"670:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":13726,"indexed":false,"mutability":"mutable","name":"cancelExpiration","nameLocation":"713:16:69","nodeType":"VariableDeclaration","scope":13732,"src":"705:24:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13725,"name":"uint256","nodeType":"ElementaryTypeName","src":"705:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13728,"indexed":false,"mutability":"mutable","name":"dataVersion","nameLocation":"747:11:69","nodeType":"VariableDeclaration","scope":13732,"src":"739:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13727,"name":"uint256","nodeType":"ElementaryTypeName","src":"739:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13730,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"774:4:69","nodeType":"VariableDeclaration","scope":13732,"src":"768:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13729,"name":"bytes","nodeType":"ElementaryTypeName","src":"768:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"519:265:69"},"src":"500:285:69"},{"anonymous":false,"id":13736,"name":"CancelOracleRequest","nameLocation":"797:19:69","nodeType":"EventDefinition","parameters":{"id":13735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13734,"indexed":true,"mutability":"mutable","name":"requestId","nameLocation":"833:9:69","nodeType":"VariableDeclaration","scope":13736,"src":"817:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13733,"name":"bytes32","nodeType":"ElementaryTypeName","src":"817:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"816:27:69"},"src":"791:53:69"},{"anonymous":false,"id":13740,"name":"OracleResponse","nameLocation":"856:14:69","nodeType":"EventDefinition","parameters":{"id":13739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13738,"indexed":true,"mutability":"mutable","name":"requestId","nameLocation":"887:9:69","nodeType":"VariableDeclaration","scope":13740,"src":"871:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"871:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"870:27:69"},"src":"850:48:69"},{"constant":false,"id":13744,"mutability":"mutable","name":"s_authorizedSenders","nameLocation":"963:19:69","nodeType":"VariableDeclaration","scope":14166,"src":"930:52:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13743,"keyType":{"id":13741,"name":"address","nodeType":"ElementaryTypeName","src":"938:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"930:24:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":13742,"name":"bool","nodeType":"ElementaryTypeName","src":"949:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"constant":false,"id":13747,"mutability":"mutable","name":"s_authorizedSenderList","nameLocation":"1006:22:69","nodeType":"VariableDeclaration","scope":14166,"src":"988:40:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":13745,"name":"address","nodeType":"ElementaryTypeName","src":"988:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13746,"nodeType":"ArrayTypeName","src":"988:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"private"},{"constant":false,"id":13752,"mutability":"mutable","name":"s_commitments","nameLocation":"1074:13:69","nodeType":"VariableDeclaration","scope":14166,"src":"1035:52:69","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment)"},"typeName":{"id":13751,"keyType":{"id":13748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1043:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1035:30:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment)"},"valueType":{"id":13750,"nodeType":"UserDefinedTypeName","pathNode":{"id":13749,"name":"Commitment","nodeType":"IdentifierPath","referencedDeclaration":13696,"src":"1054:10:69"},"referencedDeclaration":13696,"src":"1054:10:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage_ptr","typeString":"struct ChainlinkOperator.Commitment"}}},"visibility":"private"},{"body":{"id":13762,"nodeType":"Block","src":"1224:96:69","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":13756,"name":"_canSetAuthorizedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14165,"src":"1242:24:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":13757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1242:26:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e6e6f742073657420617574686f72697a65642073656e64657273","id":13758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1270:31:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_337562cc5e507e68e993a2940bfc6a29858c6f26ee0c10db449328584e3eb567","typeString":"literal_string \"Cannot set authorized senders\""},"value":"Cannot set authorized senders"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_337562cc5e507e68e993a2940bfc6a29858c6f26ee0c10db449328584e3eb567","typeString":"literal_string \"Cannot set authorized senders\""}],"id":13755,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1234:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1234:68:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13760,"nodeType":"ExpressionStatement","src":"1234:68:69"},{"id":13761,"nodeType":"PlaceholderStatement","src":"1312:1:69"}]},"documentation":{"id":13753,"nodeType":"StructuredDocumentation","src":"1094:83:69","text":" @notice prevents non-authorized addresses from calling this method"},"id":13763,"name":"validateAuthorizedSenderSetter","nameLocation":"1191:30:69","nodeType":"ModifierDefinition","parameters":{"id":13754,"nodeType":"ParameterList","parameters":[],"src":"1221:2:69"},"src":"1182:138:69","virtual":false,"visibility":"internal"},{"body":{"id":13768,"nodeType":"Block","src":"1350:3:69","statements":[]},"id":13769,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":13766,"modifierName":{"id":13765,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"1340:7:69"},"nodeType":"ModifierInvocation","src":"1340:9:69"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":13764,"nodeType":"ParameterList","parameters":[],"src":"1337:2:69"},"returnParameters":{"id":13767,"nodeType":"ParameterList","parameters":[],"src":"1350:0:69"},"scope":14166,"src":"1326:27:69","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":13842,"nodeType":"Block","src":"1668:623:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":13779,"name":"senders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13773,"src":"1686:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1686:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":13781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1703:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1686:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742068617665206174206c65617374203120617574686f72697a65642073656e646572","id":13783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1706:40:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_14acbd13c311ce77adbf2abb2c29118807e2efa37eb8080b0a33366f8bd4c4af","typeString":"literal_string \"Must have at least 1 authorized sender\""},"value":"Must have at least 1 authorized sender"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_14acbd13c311ce77adbf2abb2c29118807e2efa37eb8080b0a33366f8bd4c4af","typeString":"literal_string \"Must have at least 1 authorized sender\""}],"id":13778,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1678:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1678:69:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13785,"nodeType":"ExpressionStatement","src":"1678:69:69"},{"assignments":[13787],"declarations":[{"constant":false,"id":13787,"mutability":"mutable","name":"authorizedSendersLength","nameLocation":"1817:23:69","nodeType":"VariableDeclaration","scope":13842,"src":"1809:31:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13786,"name":"uint256","nodeType":"ElementaryTypeName","src":"1809:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13790,"initialValue":{"expression":{"id":13788,"name":"s_authorizedSenderList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13747,"src":"1843:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1843:29:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1809:63:69"},{"body":{"id":13809,"nodeType":"Block","src":"1936:79:69","statements":[{"expression":{"id":13807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13801,"name":"s_authorizedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13744,"src":"1950:19:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13805,"indexExpression":{"baseExpression":{"id":13802,"name":"s_authorizedSenderList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13747,"src":"1970:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13804,"indexExpression":{"id":13803,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13792,"src":"1993:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1970:25:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1950:46:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":13806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1999:5:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1950:54:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13808,"nodeType":"ExpressionStatement","src":"1950:54:69"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13792,"src":"1902:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":13796,"name":"authorizedSendersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13787,"src":"1906:23:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1902:27:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13810,"initializationExpression":{"assignments":[13792],"declarations":[{"constant":false,"id":13792,"mutability":"mutable","name":"i","nameLocation":"1895:1:69","nodeType":"VariableDeclaration","scope":13810,"src":"1887:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13791,"name":"uint256","nodeType":"ElementaryTypeName","src":"1887:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13794,"initialValue":{"hexValue":"30","id":13793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1899:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1887:13:69"},"loopExpression":{"expression":{"id":13799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1931:3:69","subExpression":{"id":13798,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13792,"src":"1931:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13800,"nodeType":"ExpressionStatement","src":"1931:3:69"},"nodeType":"ForStatement","src":"1882:133:69"},{"body":{"id":13830,"nodeType":"Block","src":"2096:63:69","statements":[{"expression":{"id":13828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":13822,"name":"s_authorizedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13744,"src":"2110:19:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13826,"indexExpression":{"baseExpression":{"id":13823,"name":"senders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13773,"src":"2130:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13825,"indexExpression":{"id":13824,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13812,"src":"2138:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2130:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2110:31:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":13827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2144:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2110:38:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13829,"nodeType":"ExpressionStatement","src":"2110:38:69"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":13815,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13812,"src":"2071:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":13816,"name":"senders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13773,"src":"2075:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":13817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2075:14:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2071:18:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13831,"initializationExpression":{"assignments":[13812],"declarations":[{"constant":false,"id":13812,"mutability":"mutable","name":"i","nameLocation":"2064:1:69","nodeType":"VariableDeclaration","scope":13831,"src":"2056:9:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13811,"name":"uint256","nodeType":"ElementaryTypeName","src":"2056:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13814,"initialValue":{"hexValue":"30","id":13813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2068:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2056:13:69"},"loopExpression":{"expression":{"id":13820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2091:3:69","subExpression":{"id":13819,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13812,"src":"2091:1:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13821,"nodeType":"ExpressionStatement","src":"2091:3:69"},"nodeType":"ForStatement","src":"2051:108:69"},{"expression":{"id":13834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13832,"name":"s_authorizedSenderList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13747,"src":"2192:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":13833,"name":"senders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13773,"src":"2217:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"src":"2192:32:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":13835,"nodeType":"ExpressionStatement","src":"2192:32:69"},{"eventCall":{"arguments":[{"id":13837,"name":"senders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13773,"src":"2264:7:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":13838,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"2273:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2273:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13836,"name":"AuthorizedSendersChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13712,"src":"2239:24:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$__$","typeString":"function (address[] memory,address)"}},"id":13840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2239:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13841,"nodeType":"EmitStatement","src":"2234:50:69"}]},"documentation":{"id":13770,"nodeType":"StructuredDocumentation","src":"1359:184:69","text":" @notice Sets the fulfillment permission for a given node. Use `true` to allow, `false` to disallow.\n @param senders The addresses of the authorized Chainlink node"},"functionSelector":"ee56997b","id":13843,"implemented":true,"kind":"function","modifiers":[{"id":13776,"modifierName":{"id":13775,"name":"validateAuthorizedSenderSetter","nodeType":"IdentifierPath","referencedDeclaration":13763,"src":"1632:30:69"},"nodeType":"ModifierInvocation","src":"1632:30:69"}],"name":"setAuthorizedSenders","nameLocation":"1557:20:69","nodeType":"FunctionDefinition","parameters":{"id":13774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13773,"mutability":"mutable","name":"senders","nameLocation":"1597:7:69","nodeType":"VariableDeclaration","scope":13843,"src":"1578:26:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13771,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13772,"nodeType":"ArrayTypeName","src":"1578:9:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1577:28:69"},"returnParameters":{"id":13777,"nodeType":"ParameterList","parameters":[],"src":"1668:0:69"},"scope":14166,"src":"1548:743:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13851,"nodeType":"Block","src":"2400:46:69","statements":[{"expression":{"id":13849,"name":"s_authorizedSenderList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13747,"src":"2417:22:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":13848,"id":13850,"nodeType":"Return","src":"2410:29:69"}]},"functionSelector":"2408afaa","id":13852,"implemented":true,"kind":"function","modifiers":[],"name":"getAuthorizedSenders","nameLocation":"2307:20:69","nodeType":"FunctionDefinition","parameters":{"id":13844,"nodeType":"ParameterList","parameters":[],"src":"2327:2:69"},"returnParameters":{"id":13848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13852,"src":"2377:17:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13845,"name":"address","nodeType":"ElementaryTypeName","src":"2377:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13846,"nodeType":"ArrayTypeName","src":"2377:10:69","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2376:19:69"},"scope":14166,"src":"2298:148:69","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":13878,"nodeType":"Block","src":"3039:513:69","statements":[{"AST":{"nodeType":"YulBlock","src":"3058:291:69","statements":[{"expression":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3146:4:69"},{"kind":"number","nodeType":"YulLiteral","src":"3152:2:69","type":"","value":"36"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3142:3:69"},"nodeType":"YulFunctionCall","src":"3142:13:69"},{"name":"sender","nodeType":"YulIdentifier","src":"3157:6:69"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3135:6:69"},"nodeType":"YulFunctionCall","src":"3135:29:69"},"nodeType":"YulExpressionStatement","src":"3135:29:69"},{"expression":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"3286:4:69"},{"kind":"number","nodeType":"YulLiteral","src":"3292:2:69","type":"","value":"68"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3282:3:69"},"nodeType":"YulFunctionCall","src":"3282:13:69"},{"name":"amount","nodeType":"YulIdentifier","src":"3297:6:69"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3275:6:69"},"nodeType":"YulFunctionCall","src":"3275:29:69"},"nodeType":"YulExpressionStatement","src":"3275:29:69"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":13857,"isOffset":false,"isSlot":false,"src":"3297:6:69","valueSize":1},{"declaration":13859,"isOffset":false,"isSlot":false,"src":"3146:4:69","valueSize":1},{"declaration":13859,"isOffset":false,"isSlot":false,"src":"3286:4:69","valueSize":1},{"declaration":13855,"isOffset":false,"isSlot":false,"src":"3157:6:69","valueSize":1}],"id":13862,"nodeType":"InlineAssembly","src":"3049:300:69"},{"assignments":[13864,null],"declarations":[{"constant":false,"id":13864,"mutability":"mutable","name":"success","nameLocation":"3423:7:69","nodeType":"VariableDeclaration","scope":13878,"src":"3418:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13863,"name":"bool","nodeType":"ElementaryTypeName","src":"3418:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":13872,"initialValue":{"arguments":[{"id":13870,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13859,"src":"3463:4:69","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":13867,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"3444:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_ChainlinkOperator_$14166","typeString":"contract ChainlinkOperator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ChainlinkOperator_$14166","typeString":"contract ChainlinkOperator"}],"id":13866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3436:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":13865,"name":"address","nodeType":"ElementaryTypeName","src":"3436:7:69","typeDescriptions":{}}},"id":13868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3436:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","src":"3436:26:69","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":13871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3436:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3417:51:69"},{"expression":{"arguments":[{"id":13874,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13864,"src":"3509:7:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e61626c6520746f206372656174652072657175657374","id":13875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3518:26:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c77c8323757c7c6dd2b21d1591cb61b26bb567563048742ae07b24e5b659c50","typeString":"literal_string \"Unable to create request\""},"value":"Unable to create request"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7c77c8323757c7c6dd2b21d1591cb61b26bb567563048742ae07b24e5b659c50","typeString":"literal_string \"Unable to create request\""}],"id":13873,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3501:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3501:44:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13877,"nodeType":"ExpressionStatement","src":"3501:44:69"}]},"documentation":{"id":13853,"nodeType":"StructuredDocumentation","src":"2452:383:69","text":" @notice Called when LINK is sent to the contract via `transferAndCall`\n @dev The data payload's first 2 words will be overwritten by the `sender` and `amount`\n values to ensure correctness. Calls oracleRequest.\n @param sender Address of the sender\n @param amount Amount of LINK sent (specified in wei)\n @param data Payload of the transaction"},"functionSelector":"a4c0ed36","id":13879,"implemented":true,"kind":"function","modifiers":[],"name":"onTokenTransfer","nameLocation":"2849:15:69","nodeType":"FunctionDefinition","parameters":{"id":13860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13855,"mutability":"mutable","name":"sender","nameLocation":"2882:6:69","nodeType":"VariableDeclaration","scope":13879,"src":"2874:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13854,"name":"address","nodeType":"ElementaryTypeName","src":"2874:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13857,"mutability":"mutable","name":"amount","nameLocation":"2906:6:69","nodeType":"VariableDeclaration","scope":13879,"src":"2898:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13856,"name":"uint256","nodeType":"ElementaryTypeName","src":"2898:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13859,"mutability":"mutable","name":"data","nameLocation":"2935:4:69","nodeType":"VariableDeclaration","scope":13879,"src":"2922:17:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13858,"name":"bytes","nodeType":"ElementaryTypeName","src":"2922:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2864:81:69"},"returnParameters":{"id":13861,"nodeType":"ParameterList","parameters":[],"src":"3039:0:69"},"scope":14166,"src":"2840:712:69","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":13924,"nodeType":"Block","src":"4584:368:69","statements":[{"assignments":[13900,13902],"declarations":[{"constant":false,"id":13900,"mutability":"mutable","name":"requestId","nameLocation":"4603:9:69","nodeType":"VariableDeclaration","scope":13924,"src":"4595:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4595:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13902,"mutability":"mutable","name":"expiration","nameLocation":"4622:10:69","nodeType":"VariableDeclaration","scope":13924,"src":"4614:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13901,"name":"uint256","nodeType":"ElementaryTypeName","src":"4614:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":13911,"initialValue":{"arguments":[{"id":13904,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13882,"src":"4680:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13905,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13884,"src":"4700:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13906,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13888,"src":"4721:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13907,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13890,"src":"4750:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":13908,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13892,"src":"4782:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13909,"name":"dataVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13894,"src":"4801:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":13903,"name":"_verifyAndProcessOracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14050,"src":"4636:30:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$_t_uint256_$","typeString":"function (address,uint256,address,bytes4,uint256,uint256) returns (bytes32,uint256)"}},"id":13910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4636:186:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint256_$","typeString":"tuple(bytes32,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4594:228:69"},{"eventCall":{"arguments":[{"id":13913,"name":"specId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13886,"src":"4851:6:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13914,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13882,"src":"4859:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13915,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13900,"src":"4867:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13916,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13884,"src":"4878:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13917,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13882,"src":"4887:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13918,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13890,"src":"4895:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":13919,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13902,"src":"4915:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13920,"name":"dataVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13894,"src":"4927:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13921,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13896,"src":"4940:4:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":13912,"name":"OracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13732,"src":"4837:13:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,address,bytes32,uint256,address,bytes4,uint256,uint256,bytes memory)"}},"id":13922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4837:108:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13923,"nodeType":"EmitStatement","src":"4832:113:69"}]},"documentation":{"id":13880,"nodeType":"StructuredDocumentation","src":"3559:697:69","text":" @notice Creates the Chainlink request. This is a backwards compatible API\n with the Oracle.sol contract, but the behavior changes because\n callbackAddress is assumed to be the same as the request sender.\n @param callbackAddress The consumer of the request\n @param payment The amount of payment given (specified in wei)\n @param specId The Job Specification ID\n @param callbackAddress The address the oracle data will be sent to\n @param callbackFunctionId The callback function ID for the response\n @param nonce The nonce sent by the requester\n @param dataVersion The specified data version\n @param data The extra request parameters"},"functionSelector":"40429946","id":13925,"implemented":true,"kind":"function","modifiers":[],"name":"oracleRequest","nameLocation":"4270:13:69","nodeType":"FunctionDefinition","parameters":{"id":13897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13882,"mutability":"mutable","name":"sender","nameLocation":"4301:6:69","nodeType":"VariableDeclaration","scope":13925,"src":"4293:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13881,"name":"address","nodeType":"ElementaryTypeName","src":"4293:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13884,"mutability":"mutable","name":"payment","nameLocation":"4325:7:69","nodeType":"VariableDeclaration","scope":13925,"src":"4317:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13883,"name":"uint256","nodeType":"ElementaryTypeName","src":"4317:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13886,"mutability":"mutable","name":"specId","nameLocation":"4350:6:69","nodeType":"VariableDeclaration","scope":13925,"src":"4342:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13885,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4342:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13888,"mutability":"mutable","name":"callbackAddress","nameLocation":"4374:15:69","nodeType":"VariableDeclaration","scope":13925,"src":"4366:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13887,"name":"address","nodeType":"ElementaryTypeName","src":"4366:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13890,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"4406:18:69","nodeType":"VariableDeclaration","scope":13925,"src":"4399:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13889,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4399:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":13892,"mutability":"mutable","name":"nonce","nameLocation":"4442:5:69","nodeType":"VariableDeclaration","scope":13925,"src":"4434:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13891,"name":"uint256","nodeType":"ElementaryTypeName","src":"4434:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13894,"mutability":"mutable","name":"dataVersion","nameLocation":"4465:11:69","nodeType":"VariableDeclaration","scope":13925,"src":"4457:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13893,"name":"uint256","nodeType":"ElementaryTypeName","src":"4457:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13896,"mutability":"mutable","name":"data","nameLocation":"4501:4:69","nodeType":"VariableDeclaration","scope":13925,"src":"4486:19:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13895,"name":"bytes","nodeType":"ElementaryTypeName","src":"4486:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4283:228:69"},"returnParameters":{"id":13898,"nodeType":"ParameterList","parameters":[],"src":"4584:0:69"},"scope":14166,"src":"4261:691:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":13977,"nodeType":"Block","src":"6307:696:69","statements":[{"expression":{"arguments":[{"id":13944,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13928,"src":"6355:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":13945,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13930,"src":"6366:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":13946,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13932,"src":"6375:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":13947,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13934,"src":"6392:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":13948,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13936,"src":"6412:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":13949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6424:1:69","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":13943,"name":"_verifyOracleRequestAndProcessPayment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14103,"src":"6317:37:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes4_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,address,bytes4,uint256,uint256)"}},"id":13950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6317:109:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13951,"nodeType":"ExpressionStatement","src":"6317:109:69"},{"eventCall":{"arguments":[{"id":13953,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13928,"src":"6457:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13952,"name":"OracleResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13740,"src":"6442:14:69","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":13954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6442:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13955,"nodeType":"EmitStatement","src":"6437:30:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":13957,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967289,"src":"6485:7:69","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":13958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6485:9:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":13959,"name":"MINIMUM_CONSUMER_GAS_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13705,"src":"6498:26:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6485:39:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742070726f7669646520636f6e73756d657220656e6f75676820676173","id":13961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6526:34:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_e41e236f8c707f430128aec8d4f13fd0193750a557f2c094e8feda34850363f4","typeString":"literal_string \"Must provide consumer enough gas\""},"value":"Must provide consumer enough gas"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e41e236f8c707f430128aec8d4f13fd0193750a557f2c094e8feda34850363f4","typeString":"literal_string \"Must provide consumer enough gas\""}],"id":13956,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6477:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6477:84:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13963,"nodeType":"ExpressionStatement","src":"6477:84:69"},{"assignments":[13965,null],"declarations":[{"constant":false,"id":13965,"mutability":"mutable","name":"success","nameLocation":"6849:7:69","nodeType":"VariableDeclaration","scope":13977,"src":"6844:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13964,"name":"bool","nodeType":"ElementaryTypeName","src":"6844:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":13974,"initialValue":{"arguments":[{"arguments":[{"id":13970,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13934,"src":"6900:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":13971,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13938,"src":"6920:4:69","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":13968,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6883:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"6883:16:69","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6883:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":13966,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13932,"src":"6862:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"6862:20:69","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":13973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6862:64:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6843:83:69"},{"expression":{"id":13975,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13965,"src":"6989:7:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":13942,"id":13976,"nodeType":"Return","src":"6982:14:69"}]},"documentation":{"id":13926,"nodeType":"StructuredDocumentation","src":"4959:881:69","text":" @notice Called by the Chainlink node to fulfill requests with multi-word support\n @dev Given params must hash back to the commitment stored from `oracleRequest`.\n Will call the callback address' callback function without bubbling up error\n checking in a `require` so that the node can get paid.\n @param requestId The fulfillment request ID that must match the requester's\n @param payment The payment amount that will be released for the oracle (specified in wei)\n @param callbackAddress The callback address to call for fulfillment\n @param callbackFunctionId The callback function ID to use for fulfillment\n @param expiration The expiration that the node should respond by before the requester can cancel\n @param data The data to return to the consuming contract\n @return Status if the external call was successful"},"functionSelector":"6ae0bc76","id":13978,"implemented":true,"kind":"function","modifiers":[],"name":"fulfillOracleRequest2","nameLocation":"5854:21:69","nodeType":"FunctionDefinition","parameters":{"id":13939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13928,"mutability":"mutable","name":"requestId","nameLocation":"5893:9:69","nodeType":"VariableDeclaration","scope":13978,"src":"5885:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13927,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5885:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13930,"mutability":"mutable","name":"payment","nameLocation":"5920:7:69","nodeType":"VariableDeclaration","scope":13978,"src":"5912:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13929,"name":"uint256","nodeType":"ElementaryTypeName","src":"5912:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13932,"mutability":"mutable","name":"callbackAddress","nameLocation":"5945:15:69","nodeType":"VariableDeclaration","scope":13978,"src":"5937:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13931,"name":"address","nodeType":"ElementaryTypeName","src":"5937:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13934,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"5977:18:69","nodeType":"VariableDeclaration","scope":13978,"src":"5970:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13933,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5970:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":13936,"mutability":"mutable","name":"expiration","nameLocation":"6013:10:69","nodeType":"VariableDeclaration","scope":13978,"src":"6005:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13935,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13938,"mutability":"mutable","name":"data","nameLocation":"6048:4:69","nodeType":"VariableDeclaration","scope":13978,"src":"6033:19:69","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13937,"name":"bytes","nodeType":"ElementaryTypeName","src":"6033:5:69","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5875:183:69"},"returnParameters":{"id":13942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13941,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13978,"src":"6297:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13940,"name":"bool","nodeType":"ElementaryTypeName","src":"6297:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6296:6:69"},"scope":14166,"src":"5845:1158:69","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14049,"nodeType":"Block","src":"7745:618:69","statements":[{"expression":{"id":14006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":13998,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"7755:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":14002,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13981,"src":"7794:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14003,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13989,"src":"7802:5:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"7777:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"7777:16:69","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7777:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13999,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"7767:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7767:42:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7755:54:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14007,"nodeType":"ExpressionStatement","src":"7755:54:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"id":14014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":14009,"name":"s_commitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"7827:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment storage ref)"}},"id":14011,"indexExpression":{"id":14010,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"7841:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7827:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"id":14012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":13693,"src":"7827:35:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7866:1:69","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7827:40:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d75737420757365206120756e69717565204944","id":14015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7869:22:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_da89408418f1aa3860811d2e64085e2b94d33f2815f2070010f4d0def719e723","typeString":"literal_string \"Must use a unique ID\""},"value":"Must use a unique ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_da89408418f1aa3860811d2e64085e2b94d33f2815f2070010f4d0def719e723","typeString":"literal_string \"Must use a unique ID\""}],"id":14008,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7819:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7819:73:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14017,"nodeType":"ExpressionStatement","src":"7819:73:69"},{"expression":{"id":14023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14018,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13996,"src":"8016:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14019,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"8029:5:69","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8029:15:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":14021,"name":"getExpiryTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13699,"src":"8047:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8029:31:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8016:44:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14024,"nodeType":"ExpressionStatement","src":"8016:44:69"},{"assignments":[14026],"declarations":[{"constant":false,"id":14026,"mutability":"mutable","name":"paramsHash","nameLocation":"8078:10:69","nodeType":"VariableDeclaration","scope":14049,"src":"8070:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":14025,"name":"bytes31","nodeType":"ElementaryTypeName","src":"8070:7:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"id":14033,"initialValue":{"arguments":[{"id":14028,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13983,"src":"8108:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14029,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13985,"src":"8117:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14030,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13987,"src":"8134:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":14031,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13996,"src":"8154:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14027,"name":"_buildParamsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14131,"src":"8091:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$_t_bytes4_$_t_uint256_$returns$_t_bytes31_$","typeString":"function (uint256,address,bytes4,uint256) pure returns (bytes31)"}},"id":14032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8091:74:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"nodeType":"VariableDeclarationStatement","src":"8070:95:69"},{"expression":{"id":14043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":14034,"name":"s_commitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"8175:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment storage ref)"}},"id":14036,"indexExpression":{"id":14035,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"8189:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8175:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14038,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14026,"src":"8213:10:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},{"arguments":[{"id":14040,"name":"dataVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13991,"src":"8242:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14039,"name":"_safeCastToUint8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14152,"src":"8225:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":14041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8225:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes31","typeString":"bytes31"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":14037,"name":"Commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13696,"src":"8202:10:69","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Commitment_$13696_storage_ptr_$","typeString":"type(struct ChainlinkOperator.Commitment storage pointer)"}},"id":14042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8202:53:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_memory_ptr","typeString":"struct ChainlinkOperator.Commitment memory"}},"src":"8175:80:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"id":14044,"nodeType":"ExpressionStatement","src":"8175:80:69"},{"expression":{"components":[{"id":14045,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13994,"src":"8334:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14046,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13996,"src":"8345:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14047,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8333:23:69","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint256_$","typeString":"tuple(bytes32,uint256)"}},"functionReturnParameters":13997,"id":14048,"nodeType":"Return","src":"8326:30:69"}]},"documentation":{"id":13979,"nodeType":"StructuredDocumentation","src":"7010:389:69","text":" @notice Verify the Oracle Request and record necessary information\n @param sender The sender of the request\n @param payment The amount of payment given (specified in wei)\n @param callbackAddress The callback address for the response\n @param callbackFunctionId The callback function ID for the response\n @param nonce The nonce sent by the requester"},"id":14050,"implemented":true,"kind":"function","modifiers":[],"name":"_verifyAndProcessOracleRequest","nameLocation":"7413:30:69","nodeType":"FunctionDefinition","parameters":{"id":13992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13981,"mutability":"mutable","name":"sender","nameLocation":"7461:6:69","nodeType":"VariableDeclaration","scope":14050,"src":"7453:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13980,"name":"address","nodeType":"ElementaryTypeName","src":"7453:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13983,"mutability":"mutable","name":"payment","nameLocation":"7485:7:69","nodeType":"VariableDeclaration","scope":14050,"src":"7477:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13982,"name":"uint256","nodeType":"ElementaryTypeName","src":"7477:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13985,"mutability":"mutable","name":"callbackAddress","nameLocation":"7510:15:69","nodeType":"VariableDeclaration","scope":14050,"src":"7502:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13984,"name":"address","nodeType":"ElementaryTypeName","src":"7502:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13987,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"7542:18:69","nodeType":"VariableDeclaration","scope":14050,"src":"7535:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":13986,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7535:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":13989,"mutability":"mutable","name":"nonce","nameLocation":"7578:5:69","nodeType":"VariableDeclaration","scope":14050,"src":"7570:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13988,"name":"uint256","nodeType":"ElementaryTypeName","src":"7570:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13991,"mutability":"mutable","name":"dataVersion","nameLocation":"7601:11:69","nodeType":"VariableDeclaration","scope":14050,"src":"7593:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13990,"name":"uint256","nodeType":"ElementaryTypeName","src":"7593:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7443:175:69"},"returnParameters":{"id":13997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13994,"mutability":"mutable","name":"requestId","nameLocation":"7709:9:69","nodeType":"VariableDeclaration","scope":14050,"src":"7701:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7701:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13996,"mutability":"mutable","name":"expiration","nameLocation":"7728:10:69","nodeType":"VariableDeclaration","scope":14050,"src":"7720:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13995,"name":"uint256","nodeType":"ElementaryTypeName","src":"7720:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7700:39:69"},"scope":14166,"src":"7404:959:69","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":14102,"nodeType":"Block","src":"9139:432:69","statements":[{"assignments":[14067],"declarations":[{"constant":false,"id":14067,"mutability":"mutable","name":"paramsHash","nameLocation":"9157:10:69","nodeType":"VariableDeclaration","scope":14102,"src":"9149:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":14066,"name":"bytes31","nodeType":"ElementaryTypeName","src":"9149:7:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"id":14074,"initialValue":{"arguments":[{"id":14069,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14055,"src":"9187:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14070,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14057,"src":"9196:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14071,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14059,"src":"9213:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":14072,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14061,"src":"9233:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14068,"name":"_buildParamsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14131,"src":"9170:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$_t_bytes4_$_t_uint256_$returns$_t_bytes31_$","typeString":"function (uint256,address,bytes4,uint256) pure returns (bytes31)"}},"id":14073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9170:74:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"nodeType":"VariableDeclarationStatement","src":"9149:95:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"id":14081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":14076,"name":"s_commitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"9262:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment storage ref)"}},"id":14078,"indexExpression":{"id":14077,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14053,"src":"9276:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9262:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"id":14079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":13693,"src":"9262:35:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":14080,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14067,"src":"9301:10:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"src":"9262:49:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506172616d7320646f206e6f74206d617463682072657175657374204944","id":14082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9313:32:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_e12b50eea9311b443c52ff0775ecb76e354715072acf3c2225436432557396ee","typeString":"literal_string \"Params do not match request ID\""},"value":"Params do not match request ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e12b50eea9311b443c52ff0775ecb76e354715072acf3c2225436432557396ee","typeString":"literal_string \"Params do not match request ID\""}],"id":14075,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9254:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9254:92:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14084,"nodeType":"ExpressionStatement","src":"9254:92:69"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":14093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":14086,"name":"s_commitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"9364:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment storage ref)"}},"id":14088,"indexExpression":{"id":14087,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14053,"src":"9378:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9364:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"id":14089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"dataVersion","nodeType":"MemberAccess","referencedDeclaration":13695,"src":"9364:36:69","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":14091,"name":"dataVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14063,"src":"9421:11:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14090,"name":"_safeCastToUint8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14152,"src":"9404:16:69","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":14092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9404:29:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9364:69:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"446174612076657273696f6e73206d757374206d61746368","id":14094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9435:26:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_53dd8c2d44f916f031150a73e1eba6048d8d6f765952814af0ca50ecb04aba23","typeString":"literal_string \"Data versions must match\""},"value":"Data versions must match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_53dd8c2d44f916f031150a73e1eba6048d8d6f765952814af0ca50ecb04aba23","typeString":"literal_string \"Data versions must match\""}],"id":14085,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9356:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9356:106:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14096,"nodeType":"ExpressionStatement","src":"9356:106:69"},{"expression":{"id":14100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9533:31:69","subExpression":{"baseExpression":{"id":14097,"name":"s_commitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13752,"src":"9540:13:69","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Commitment_$13696_storage_$","typeString":"mapping(bytes32 => struct ChainlinkOperator.Commitment storage ref)"}},"id":14099,"indexExpression":{"id":14098,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14053,"src":"9554:9:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9540:24:69","typeDescriptions":{"typeIdentifier":"t_struct$_Commitment_$13696_storage","typeString":"struct ChainlinkOperator.Commitment storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14101,"nodeType":"ExpressionStatement","src":"9533:31:69"}]},"documentation":{"id":14051,"nodeType":"StructuredDocumentation","src":"8370:513:69","text":" @notice Verify the Oracle request and unlock escrowed payment\n @param requestId The fulfillment request ID that must match the requester's\n @param payment The payment amount that will be released for the oracle (specified in wei)\n @param callbackAddress The callback address to call for fulfillment\n @param callbackFunctionId The callback function ID to use for fulfillment\n @param expiration The expiration that the node should respond by before the requester can cancel"},"id":14103,"implemented":true,"kind":"function","modifiers":[],"name":"_verifyOracleRequestAndProcessPayment","nameLocation":"8897:37:69","nodeType":"FunctionDefinition","parameters":{"id":14064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14053,"mutability":"mutable","name":"requestId","nameLocation":"8952:9:69","nodeType":"VariableDeclaration","scope":14103,"src":"8944:17:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8944:7:69","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14055,"mutability":"mutable","name":"payment","nameLocation":"8979:7:69","nodeType":"VariableDeclaration","scope":14103,"src":"8971:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14054,"name":"uint256","nodeType":"ElementaryTypeName","src":"8971:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14057,"mutability":"mutable","name":"callbackAddress","nameLocation":"9004:15:69","nodeType":"VariableDeclaration","scope":14103,"src":"8996:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14056,"name":"address","nodeType":"ElementaryTypeName","src":"8996:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14059,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"9036:18:69","nodeType":"VariableDeclaration","scope":14103,"src":"9029:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14058,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9029:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":14061,"mutability":"mutable","name":"expiration","nameLocation":"9072:10:69","nodeType":"VariableDeclaration","scope":14103,"src":"9064:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14060,"name":"uint256","nodeType":"ElementaryTypeName","src":"9064:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14063,"mutability":"mutable","name":"dataVersion","nameLocation":"9100:11:69","nodeType":"VariableDeclaration","scope":14103,"src":"9092:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14062,"name":"uint256","nodeType":"ElementaryTypeName","src":"9092:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8934:183:69"},"returnParameters":{"id":14065,"nodeType":"ParameterList","parameters":[],"src":"9139:0:69"},"scope":14166,"src":"8888:683:69","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":14130,"nodeType":"Block","src":"10238:118:69","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":14122,"name":"payment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"10290:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14123,"name":"callbackAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"10299:15:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14124,"name":"callbackFunctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14110,"src":"10316:18:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":14125,"name":"expiration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14112,"src":"10336:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14120,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"10273:3:69","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":14121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"10273:16:69","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":14126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10273:74:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":14119,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"10263:9:69","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":14127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10263:85:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10255:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes31_$","typeString":"type(bytes31)"},"typeName":{"id":14117,"name":"bytes31","nodeType":"ElementaryTypeName","src":"10255:7:69","typeDescriptions":{}}},"id":14128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10255:94:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"functionReturnParameters":14116,"id":14129,"nodeType":"Return","src":"10248:101:69"}]},"documentation":{"id":14104,"nodeType":"StructuredDocumentation","src":"9578:470:69","text":" @notice Build the bytes31 hash from the payment, callback and expiration.\n @param payment The payment amount that will be released for the oracle (specified in wei)\n @param callbackAddress The callback address to call for fulfillment\n @param callbackFunctionId The callback function ID to use for fulfillment\n @param expiration The expiration that the node should respond by before the requester can cancel\n @return hash bytes31"},"id":14131,"implemented":true,"kind":"function","modifiers":[],"name":"_buildParamsHash","nameLocation":"10062:16:69","nodeType":"FunctionDefinition","parameters":{"id":14113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14106,"mutability":"mutable","name":"payment","nameLocation":"10096:7:69","nodeType":"VariableDeclaration","scope":14131,"src":"10088:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14105,"name":"uint256","nodeType":"ElementaryTypeName","src":"10088:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14108,"mutability":"mutable","name":"callbackAddress","nameLocation":"10121:15:69","nodeType":"VariableDeclaration","scope":14131,"src":"10113:23:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14107,"name":"address","nodeType":"ElementaryTypeName","src":"10113:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14110,"mutability":"mutable","name":"callbackFunctionId","nameLocation":"10153:18:69","nodeType":"VariableDeclaration","scope":14131,"src":"10146:25:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":14109,"name":"bytes4","nodeType":"ElementaryTypeName","src":"10146:6:69","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":14112,"mutability":"mutable","name":"expiration","nameLocation":"10189:10:69","nodeType":"VariableDeclaration","scope":14131,"src":"10181:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14111,"name":"uint256","nodeType":"ElementaryTypeName","src":"10181:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10078:127:69"},"returnParameters":{"id":14116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14131,"src":"10229:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":14114,"name":"bytes31","nodeType":"ElementaryTypeName","src":"10229:7:69","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"10228:9:69"},"scope":14166,"src":"10053:303:69","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14151,"nodeType":"Block","src":"10548:111:69","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14140,"name":"number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14134,"src":"10566:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":14141,"name":"MAXIMUM_DATA_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13702,"src":"10575:20:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10566:29:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"6e756d62657220746f6f2062696720746f2063617374","id":14143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10597:24:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef169b566e22a9ea10ec54af0f17be495060a51a062291400ead41912ab09c45","typeString":"literal_string \"number too big to cast\""},"value":"number too big to cast"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef169b566e22a9ea10ec54af0f17be495060a51a062291400ead41912ab09c45","typeString":"literal_string \"number too big to cast\""}],"id":14139,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10558:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10558:64:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14145,"nodeType":"ExpressionStatement","src":"10558:64:69"},{"expression":{"arguments":[{"id":14148,"name":"number","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14134,"src":"10645:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10639:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":14146,"name":"uint8","nodeType":"ElementaryTypeName","src":"10639:5:69","typeDescriptions":{}}},"id":14149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10639:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":14138,"id":14150,"nodeType":"Return","src":"10632:20:69"}]},"documentation":{"id":14132,"nodeType":"StructuredDocumentation","src":"10363:108:69","text":" @notice Safely cast uint256 to uint8\n @param number uint256\n @return uint8 number"},"id":14152,"implemented":true,"kind":"function","modifiers":[],"name":"_safeCastToUint8","nameLocation":"10485:16:69","nodeType":"FunctionDefinition","parameters":{"id":14135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14134,"mutability":"mutable","name":"number","nameLocation":"10510:6:69","nodeType":"VariableDeclaration","scope":14152,"src":"10502:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14133,"name":"uint256","nodeType":"ElementaryTypeName","src":"10502:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10501:16:69"},"returnParameters":{"id":14138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14152,"src":"10541:5:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14136,"name":"uint8","nodeType":"ElementaryTypeName","src":"10541:5:69","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"10540:7:69"},"scope":14166,"src":"10476:183:69","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14164,"nodeType":"Block","src":"10856:45:69","statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":14162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":14158,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"10873:5:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":14159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10873:7:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":14160,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"10884:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"10884:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10873:21:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14157,"id":14163,"nodeType":"Return","src":"10866:28:69"}]},"documentation":{"id":14153,"nodeType":"StructuredDocumentation","src":"10665:121:69","text":" @notice concrete implementation of AuthorizedReceiver\n @return bool of whether sender is authorized"},"id":14165,"implemented":true,"kind":"function","modifiers":[],"name":"_canSetAuthorizedSenders","nameLocation":"10800:24:69","nodeType":"FunctionDefinition","parameters":{"id":14154,"nodeType":"ParameterList","parameters":[],"src":"10824:2:69"},"returnParameters":{"id":14157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14156,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14165,"src":"10850:4:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14155,"name":"bool","nodeType":"ElementaryTypeName","src":"10850:4:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10849:6:69"},"scope":14166,"src":"10791:110:69","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":14167,"src":"110:10794:69"}],"src":"32:10873:69"},"id":69},"contracts/examples/mock/ChainlinkToken.sol":{"ast":{"absolutePath":"contracts/examples/mock/ChainlinkToken.sol","exportedSymbols":{"ChainlinkToken":[14273],"Context":[10518],"ERC20":[8753],"ERC677Receiver":[14179],"IERC20":[8831],"IERC20Metadata":[8856]},"id":14274,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":14168,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"32:22:70"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":14169,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":14274,"sourceUnit":8754,"src":"56:55:70","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"id":14179,"linearizedBaseContracts":[14179],"name":"ERC677Receiver","nameLocation":"131:14:70","nodeType":"ContractDefinition","nodes":[{"functionSelector":"a4c0ed36","id":14178,"implemented":false,"kind":"function","modifiers":[],"name":"onTokenTransfer","nameLocation":"161:15:70","nodeType":"FunctionDefinition","parameters":{"id":14176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14171,"mutability":"mutable","name":"_sender","nameLocation":"186:7:70","nodeType":"VariableDeclaration","scope":14178,"src":"178:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14170,"name":"address","nodeType":"ElementaryTypeName","src":"178:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14173,"mutability":"mutable","name":"_value","nameLocation":"200:6:70","nodeType":"VariableDeclaration","scope":14178,"src":"195:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14172,"name":"uint","nodeType":"ElementaryTypeName","src":"195:4:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14175,"mutability":"mutable","name":"_data","nameLocation":"223:5:70","nodeType":"VariableDeclaration","scope":14178,"src":"208:20:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14174,"name":"bytes","nodeType":"ElementaryTypeName","src":"208:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"177:52:70"},"returnParameters":{"id":14177,"nodeType":"ParameterList","parameters":[],"src":"244:0:70"},"scope":14179,"src":"152:93:70","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":14274,"src":"113:134:70"},{"abstract":false,"baseContracts":[{"baseName":{"id":14180,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"276:5:70"},"id":14181,"nodeType":"InheritanceSpecifier","src":"276:5:70"}],"contractDependencies":[8753,8831,8856,10518],"contractKind":"contract","fullyImplemented":true,"id":14273,"linearizedBaseContracts":[14273,8753,8856,8831,10518],"name":"ChainlinkToken","nameLocation":"258:14:70","nodeType":"ContractDefinition","nodes":[{"body":{"id":14197,"nodeType":"Block","src":"368:37:70","statements":[{"expression":{"arguments":[{"id":14193,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14183,"src":"384:5:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14194,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14185,"src":"391:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14192,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"378:5:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"378:20:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14196,"nodeType":"ExpressionStatement","src":"378:20:70"}]},"id":14198,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"436861696e6c696e6b2044756d6d7920546f6b656e","id":14188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"337:23:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5764680349dd2c79b01e0cc34a69b8d81e7e56e2e2af1d9f48762f21bfc38ec","typeString":"literal_string \"Chainlink Dummy Token\""},"value":"Chainlink Dummy Token"},{"hexValue":"434454","id":14189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"362:5:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_434eb163d5d83d0f1ffd9839d5b9c74759647f334d007a0d4510797d38b7e519","typeString":"literal_string \"CDT\""},"value":"CDT"}],"id":14190,"modifierName":{"id":14187,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"331:5:70"},"nodeType":"ModifierInvocation","src":"331:37:70"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14183,"mutability":"mutable","name":"owner","nameLocation":"308:5:70","nodeType":"VariableDeclaration","scope":14198,"src":"300:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14182,"name":"address","nodeType":"ElementaryTypeName","src":"300:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14185,"mutability":"mutable","name":"supply","nameLocation":"323:6:70","nodeType":"VariableDeclaration","scope":14198,"src":"315:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14184,"name":"uint256","nodeType":"ElementaryTypeName","src":"315:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"299:31:70"},"returnParameters":{"id":14191,"nodeType":"ParameterList","parameters":[],"src":"368:0:70"},"scope":14273,"src":"288:117:70","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14229,"nodeType":"Block","src":"513:210:70","statements":[{"expression":{"arguments":[{"id":14212,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14200,"src":"538:3:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14213,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14202,"src":"543:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14209,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"523:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_ChainlinkToken_$14273_$","typeString":"type(contract super ChainlinkToken)"}},"id":14211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":8291,"src":"523:14:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":14214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"523:27:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14215,"nodeType":"ExpressionStatement","src":"523:27:70"},{"condition":{"arguments":[{"id":14217,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14200,"src":"629:3:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14216,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14272,"src":"618:10:70","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":14218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"618:15:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14226,"nodeType":"IfStatement","src":"614:82:70","trueBody":{"id":14225,"nodeType":"Block","src":"635:61:70","statements":[{"expression":{"arguments":[{"id":14220,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14200,"src":"666:3:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14221,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14202,"src":"671:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14222,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14204,"src":"679:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":14219,"name":"contractFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14256,"src":"649:16:70","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,uint256,bytes calldata)"}},"id":14223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"649:36:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14224,"nodeType":"ExpressionStatement","src":"649:36:70"}]}},{"expression":{"hexValue":"74727565","id":14227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"712:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14208,"id":14228,"nodeType":"Return","src":"705:11:70"}]},"functionSelector":"4000aea0","id":14230,"implemented":true,"kind":"function","modifiers":[],"name":"transferAndCall","nameLocation":"420:15:70","nodeType":"FunctionDefinition","parameters":{"id":14205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14200,"mutability":"mutable","name":"_to","nameLocation":"444:3:70","nodeType":"VariableDeclaration","scope":14230,"src":"436:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14199,"name":"address","nodeType":"ElementaryTypeName","src":"436:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14202,"mutability":"mutable","name":"_value","nameLocation":"454:6:70","nodeType":"VariableDeclaration","scope":14230,"src":"449:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14201,"name":"uint","nodeType":"ElementaryTypeName","src":"449:4:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14204,"mutability":"mutable","name":"_data","nameLocation":"477:5:70","nodeType":"VariableDeclaration","scope":14230,"src":"462:20:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14203,"name":"bytes","nodeType":"ElementaryTypeName","src":"462:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"435:48:70"},"returnParameters":{"id":14208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14207,"mutability":"mutable","name":"success","nameLocation":"505:7:70","nodeType":"VariableDeclaration","scope":14230,"src":"500:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14206,"name":"bool","nodeType":"ElementaryTypeName","src":"500:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"499:14:70"},"scope":14273,"src":"411:312:70","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14255,"nodeType":"Block","src":"811:123:70","statements":[{"assignments":[14241],"declarations":[{"constant":false,"id":14241,"mutability":"mutable","name":"receiver","nameLocation":"836:8:70","nodeType":"VariableDeclaration","scope":14255,"src":"821:23:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC677Receiver_$14179","typeString":"contract ERC677Receiver"},"typeName":{"id":14240,"nodeType":"UserDefinedTypeName","pathNode":{"id":14239,"name":"ERC677Receiver","nodeType":"IdentifierPath","referencedDeclaration":14179,"src":"821:14:70"},"referencedDeclaration":14179,"src":"821:14:70","typeDescriptions":{"typeIdentifier":"t_contract$_ERC677Receiver_$14179","typeString":"contract ERC677Receiver"}},"visibility":"internal"}],"id":14245,"initialValue":{"arguments":[{"id":14243,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14232,"src":"862:3:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14242,"name":"ERC677Receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14179,"src":"847:14:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC677Receiver_$14179_$","typeString":"type(contract ERC677Receiver)"}},"id":14244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"847:19:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC677Receiver_$14179","typeString":"contract ERC677Receiver"}},"nodeType":"VariableDeclarationStatement","src":"821:45:70"},{"expression":{"arguments":[{"expression":{"id":14249,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"901:3:70","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"901:10:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14251,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14234,"src":"913:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14252,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14236,"src":"921:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":14246,"name":"receiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14241,"src":"876:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_ERC677Receiver_$14179","typeString":"contract ERC677Receiver"}},"id":14248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"onTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":14178,"src":"876:24:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory) external"}},"id":14253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"876:51:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14254,"nodeType":"ExpressionStatement","src":"876:51:70"}]},"id":14256,"implemented":true,"kind":"function","modifiers":[],"name":"contractFallback","nameLocation":"738:16:70","nodeType":"FunctionDefinition","parameters":{"id":14237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14232,"mutability":"mutable","name":"_to","nameLocation":"763:3:70","nodeType":"VariableDeclaration","scope":14256,"src":"755:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14231,"name":"address","nodeType":"ElementaryTypeName","src":"755:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14234,"mutability":"mutable","name":"_value","nameLocation":"773:6:70","nodeType":"VariableDeclaration","scope":14256,"src":"768:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14233,"name":"uint","nodeType":"ElementaryTypeName","src":"768:4:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14236,"mutability":"mutable","name":"_data","nameLocation":"796:5:70","nodeType":"VariableDeclaration","scope":14256,"src":"781:20:70","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14235,"name":"bytes","nodeType":"ElementaryTypeName","src":"781:5:70","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"754:48:70"},"returnParameters":{"id":14238,"nodeType":"ParameterList","parameters":[],"src":"811:0:70"},"scope":14273,"src":"729:205:70","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":14271,"nodeType":"Block","src":"1011:105:70","statements":[{"assignments":[14264],"declarations":[{"constant":false,"id":14264,"mutability":"mutable","name":"length","nameLocation":"1026:6:70","nodeType":"VariableDeclaration","scope":14271,"src":"1021:11:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14263,"name":"uint","nodeType":"ElementaryTypeName","src":"1021:4:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14265,"nodeType":"VariableDeclarationStatement","src":"1021:11:70"},{"AST":{"nodeType":"YulBlock","src":"1051:32:70","statements":[{"nodeType":"YulAssignment","src":"1053:28:70","value":{"arguments":[{"name":"_addr","nodeType":"YulIdentifier","src":"1075:5:70"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"1063:11:70"},"nodeType":"YulFunctionCall","src":"1063:18:70"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1053:6:70"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":14258,"isOffset":false,"isSlot":false,"src":"1075:5:70","valueSize":1},{"declaration":14264,"isOffset":false,"isSlot":false,"src":"1053:6:70","valueSize":1}],"id":14266,"nodeType":"InlineAssembly","src":"1042:41:70"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14267,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14264,"src":"1099:6:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1108:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1099:10:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14262,"id":14270,"nodeType":"Return","src":"1092:17:70"}]},"id":14272,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"949:10:70","nodeType":"FunctionDefinition","parameters":{"id":14259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14258,"mutability":"mutable","name":"_addr","nameLocation":"968:5:70","nodeType":"VariableDeclaration","scope":14272,"src":"960:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14257,"name":"address","nodeType":"ElementaryTypeName","src":"960:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"959:15:70"},"returnParameters":{"id":14262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14261,"mutability":"mutable","name":"hasCode","nameLocation":"1002:7:70","nodeType":"VariableDeclaration","scope":14272,"src":"997:12:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14260,"name":"bool","nodeType":"ElementaryTypeName","src":"997:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"996:14:70"},"scope":14273,"src":"940:176:70","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":14274,"src":"249:869:70"}],"src":"32:1087:70"},"id":70},"contracts/examples/strings.sol":{"ast":{"absolutePath":"contracts/examples/strings.sol","exportedSymbols":{"strings":[14536]},"id":14537,"license":"Apache2","nodeType":"SourceUnit","nodes":[{"id":14275,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"2111:22:71"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":14536,"linearizedBaseContracts":[14536],"name":"strings","nameLocation":"2145:7:71","nodeType":"ContractDefinition","nodes":[{"canonicalName":"strings.slice","id":14280,"members":[{"constant":false,"id":14277,"mutability":"mutable","name":"_len","nameLocation":"2191:4:71","nodeType":"VariableDeclaration","scope":14280,"src":"2186:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14276,"name":"uint","nodeType":"ElementaryTypeName","src":"2186:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14279,"mutability":"mutable","name":"_ptr","nameLocation":"2211:4:71","nodeType":"VariableDeclaration","scope":14280,"src":"2206:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14278,"name":"uint","nodeType":"ElementaryTypeName","src":"2206:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"slice","nameLocation":"2169:5:71","nodeType":"StructDefinition","scope":14536,"src":"2162:61:71","visibility":"public"},{"body":{"id":14332,"nodeType":"Block","src":"2292:580:71","statements":[{"body":{"id":14305,"nodeType":"Block","src":"2384:142:71","statements":[{"AST":{"nodeType":"YulBlock","src":"2408:58:71","statements":[{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"2434:4:71"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2446:3:71"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2440:5:71"},"nodeType":"YulFunctionCall","src":"2440:10:71"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2427:6:71"},"nodeType":"YulFunctionCall","src":"2427:24:71"},"nodeType":"YulExpressionStatement","src":"2427:24:71"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":14282,"isOffset":false,"isSlot":false,"src":"2434:4:71","valueSize":1},{"declaration":14284,"isOffset":false,"isSlot":false,"src":"2446:3:71","valueSize":1}],"id":14296,"nodeType":"InlineAssembly","src":"2399:67:71"},{"expression":{"id":14299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14297,"name":"dest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14282,"src":"2480:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":14298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2488:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2480:10:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14300,"nodeType":"ExpressionStatement","src":"2480:10:71"},{"expression":{"id":14303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14301,"name":"src","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14284,"src":"2505:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":14302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2512:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2505:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14304,"nodeType":"ExpressionStatement","src":"2505:9:71"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14289,"name":"len_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"2360:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3332","id":14290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2368:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2360:10:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14306,"loopExpression":{"expression":{"id":14294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14292,"name":"len_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"2372:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":14293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2380:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2372:10:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14295,"nodeType":"ExpressionStatement","src":"2372:10:71"},"nodeType":"ForStatement","src":"2354:172:71"},{"assignments":[14308],"declarations":[{"constant":false,"id":14308,"mutability":"mutable","name":"mask","nameLocation":"2576:4:71","nodeType":"VariableDeclaration","scope":14332,"src":"2571:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14307,"name":"uint","nodeType":"ElementaryTypeName","src":"2571:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14314,"initialValue":{"expression":{"arguments":[{"id":14311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2588:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14310,"name":"uint","nodeType":"ElementaryTypeName","src":"2588:4:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":14309,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"2583:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2583:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":14313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2583:14:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2571:26:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14315,"name":"len_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"2612:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":14316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2619:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2612:8:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14330,"nodeType":"IfStatement","src":"2608:70:71","trueBody":{"id":14329,"nodeType":"Block","src":"2622:56:71","statements":[{"expression":{"id":14327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14318,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14308,"src":"2637:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":14319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2644:3:71","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":14320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2652:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":14321,"name":"len_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14286,"src":"2657:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2652:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14323,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2651:11:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2644:18:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":14325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2665:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2644:22:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2637:29:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14328,"nodeType":"ExpressionStatement","src":"2637:29:71"}]}},{"AST":{"nodeType":"YulBlock","src":"2697:168:71","statements":[{"nodeType":"YulVariableDeclaration","src":"2712:41:71","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2737:3:71"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2731:5:71"},"nodeType":"YulFunctionCall","src":"2731:10:71"},{"arguments":[{"name":"mask","nodeType":"YulIdentifier","src":"2747:4:71"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2743:3:71"},"nodeType":"YulFunctionCall","src":"2743:9:71"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2727:3:71"},"nodeType":"YulFunctionCall","src":"2727:26:71"},"variables":[{"name":"srcpart","nodeType":"YulTypedName","src":"2716:7:71","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2767:38:71","value":{"arguments":[{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"2793:4:71"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2787:5:71"},"nodeType":"YulFunctionCall","src":"2787:11:71"},{"name":"mask","nodeType":"YulIdentifier","src":"2800:4:71"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2783:3:71"},"nodeType":"YulFunctionCall","src":"2783:22:71"},"variables":[{"name":"destpart","nodeType":"YulTypedName","src":"2771:8:71","type":""}]},{"expression":{"arguments":[{"name":"dest","nodeType":"YulIdentifier","src":"2826:4:71"},{"arguments":[{"name":"destpart","nodeType":"YulIdentifier","src":"2835:8:71"},{"name":"srcpart","nodeType":"YulIdentifier","src":"2845:7:71"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2832:2:71"},"nodeType":"YulFunctionCall","src":"2832:21:71"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2819:6:71"},"nodeType":"YulFunctionCall","src":"2819:35:71"},"nodeType":"YulExpressionStatement","src":"2819:35:71"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":14282,"isOffset":false,"isSlot":false,"src":"2793:4:71","valueSize":1},{"declaration":14282,"isOffset":false,"isSlot":false,"src":"2826:4:71","valueSize":1},{"declaration":14308,"isOffset":false,"isSlot":false,"src":"2747:4:71","valueSize":1},{"declaration":14308,"isOffset":false,"isSlot":false,"src":"2800:4:71","valueSize":1},{"declaration":14284,"isOffset":false,"isSlot":false,"src":"2737:3:71","valueSize":1}],"id":14331,"nodeType":"InlineAssembly","src":"2688:177:71"}]},"id":14333,"implemented":true,"kind":"function","modifiers":[],"name":"memcpy","nameLocation":"2240:6:71","nodeType":"FunctionDefinition","parameters":{"id":14287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14282,"mutability":"mutable","name":"dest","nameLocation":"2252:4:71","nodeType":"VariableDeclaration","scope":14333,"src":"2247:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14281,"name":"uint","nodeType":"ElementaryTypeName","src":"2247:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14284,"mutability":"mutable","name":"src","nameLocation":"2263:3:71","nodeType":"VariableDeclaration","scope":14333,"src":"2258:8:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14283,"name":"uint","nodeType":"ElementaryTypeName","src":"2258:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14286,"mutability":"mutable","name":"len_","nameLocation":"2273:4:71","nodeType":"VariableDeclaration","scope":14333,"src":"2268:9:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14285,"name":"uint","nodeType":"ElementaryTypeName","src":"2268:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2246:32:71"},"returnParameters":{"id":14288,"nodeType":"ParameterList","parameters":[],"src":"2292:0:71"},"scope":14536,"src":"2231:641:71","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":14491,"nodeType":"Block","src":"3131:774:71","statements":[{"assignments":[14341],"declarations":[{"constant":false,"id":14341,"mutability":"mutable","name":"ret","nameLocation":"3147:3:71","nodeType":"VariableDeclaration","scope":14491,"src":"3142:8:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14340,"name":"uint","nodeType":"ElementaryTypeName","src":"3142:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14342,"nodeType":"VariableDeclarationStatement","src":"3142:8:71"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":14345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14343,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3165:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3173:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3165:9:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14348,"nodeType":"IfStatement","src":"3161:36:71","trueBody":{"expression":{"hexValue":"30","id":14346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3196:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14339,"id":14347,"nodeType":"Return","src":"3189:8:71"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14351,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3217:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3212:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14349,"name":"uint","nodeType":"ElementaryTypeName","src":"3212:4:71","typeDescriptions":{}}},"id":14352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3212:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3230:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":14354,"name":"uint128","nodeType":"ElementaryTypeName","src":"3230:7:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":14353,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"3225:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3225:13:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":14357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3225:17:71","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3212:30:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3246:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3212:35:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14378,"nodeType":"IfStatement","src":"3208:156:71","trueBody":{"id":14377,"nodeType":"Block","src":"3249:115:71","statements":[{"expression":{"id":14363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14361,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3264:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":14362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3271:2:71","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"3264:9:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14364,"nodeType":"ExpressionStatement","src":"3264:9:71"},{"expression":{"id":14375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14365,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3288:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14370,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3308:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3303:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14368,"name":"uint","nodeType":"ElementaryTypeName","src":"3303:4:71","typeDescriptions":{}}},"id":14371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3303:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":14372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3316:35:71","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"src":"3303:48:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3295:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3295:7:71","typeDescriptions":{}}},"id":14374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3295:57:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3288:64:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14376,"nodeType":"ExpressionStatement","src":"3288:64:71"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3383:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3378:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14379,"name":"uint","nodeType":"ElementaryTypeName","src":"3378:4:71","typeDescriptions":{}}},"id":14382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3378:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3396:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":14384,"name":"uint64","nodeType":"ElementaryTypeName","src":"3396:6:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":14383,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"3391:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3391:12:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":14387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3391:16:71","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3378:29:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3411:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3378:34:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14408,"nodeType":"IfStatement","src":"3374:138:71","trueBody":{"id":14407,"nodeType":"Block","src":"3414:98:71","statements":[{"expression":{"id":14393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14391,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3429:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":14392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3436:1:71","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"3429:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14394,"nodeType":"ExpressionStatement","src":"3429:8:71"},{"expression":{"id":14405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14395,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3452:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14400,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3472:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3467:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14398,"name":"uint","nodeType":"ElementaryTypeName","src":"3467:4:71","typeDescriptions":{}}},"id":14401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3467:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"30783130303030303030303030303030303030","id":14402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3480:19:71","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"src":"3467:32:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3459:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3459:7:71","typeDescriptions":{}}},"id":14404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3459:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3452:48:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14406,"nodeType":"ExpressionStatement","src":"3452:48:71"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14411,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3531:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3526:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14409,"name":"uint","nodeType":"ElementaryTypeName","src":"3526:4:71","typeDescriptions":{}}},"id":14412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3526:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3544:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":14414,"name":"uint32","nodeType":"ElementaryTypeName","src":"3544:6:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":14413,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"3539:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3539:12:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":14417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3539:16:71","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"3526:29:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3559:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3526:34:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14438,"nodeType":"IfStatement","src":"3522:130:71","trueBody":{"id":14437,"nodeType":"Block","src":"3562:90:71","statements":[{"expression":{"id":14423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14421,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3577:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":14422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3584:1:71","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3577:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14424,"nodeType":"ExpressionStatement","src":"3577:8:71"},{"expression":{"id":14435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14425,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3600:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14430,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3620:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3615:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14428,"name":"uint","nodeType":"ElementaryTypeName","src":"3615:4:71","typeDescriptions":{}}},"id":14431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3615:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3078313030303030303030","id":14432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3628:11:71","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"value":"0x100000000"},"src":"3615:24:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3607:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3607:7:71","typeDescriptions":{}}},"id":14434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3607:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3600:40:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14436,"nodeType":"ExpressionStatement","src":"3600:40:71"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14441,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3671:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3666:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14439,"name":"uint","nodeType":"ElementaryTypeName","src":"3666:4:71","typeDescriptions":{}}},"id":14442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3666:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3684:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":14444,"name":"uint16","nodeType":"ElementaryTypeName","src":"3684:6:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":14443,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"3679:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3679:12:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":14447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3679:16:71","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3666:29:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3699:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3666:34:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14468,"nodeType":"IfStatement","src":"3662:126:71","trueBody":{"id":14467,"nodeType":"Block","src":"3702:86:71","statements":[{"expression":{"id":14453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14451,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3717:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":14452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3724:1:71","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3717:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14454,"nodeType":"ExpressionStatement","src":"3717:8:71"},{"expression":{"id":14465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14455,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3740:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14460,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3760:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3755:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14458,"name":"uint","nodeType":"ElementaryTypeName","src":"3755:4:71","typeDescriptions":{}}},"id":14461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3755:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"30783130303030","id":14462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3768:7:71","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"value":"0x10000"},"src":"3755:20:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3747:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":14456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3747:7:71","typeDescriptions":{}}},"id":14464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3747:29:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3740:36:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14466,"nodeType":"ExpressionStatement","src":"3740:36:71"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":14471,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14335,"src":"3807:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3802:4:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":14469,"name":"uint","nodeType":"ElementaryTypeName","src":"3802:4:71","typeDescriptions":{}}},"id":14472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3802:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":14475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3820:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":14474,"name":"uint8","nodeType":"ElementaryTypeName","src":"3820:5:71","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":14473,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967269,"src":"3815:4:71","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":14476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3815:11:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":14477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3815:15:71","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3802:28:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":14479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3834:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3802:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14486,"nodeType":"IfStatement","src":"3798:74:71","trueBody":{"id":14485,"nodeType":"Block","src":"3837:35:71","statements":[{"expression":{"id":14483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14481,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3852:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":14482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3859:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3852:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14484,"nodeType":"ExpressionStatement","src":"3852:8:71"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":14487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3889:2:71","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":14488,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14341,"src":"3894:3:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3889:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14339,"id":14490,"nodeType":"Return","src":"3882:15:71"}]},"id":14492,"implemented":true,"kind":"function","modifiers":[],"name":"len","nameLocation":"3084:3:71","nodeType":"FunctionDefinition","parameters":{"id":14336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14335,"mutability":"mutable","name":"self","nameLocation":"3096:4:71","nodeType":"VariableDeclaration","scope":14492,"src":"3088:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3088:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3087:14:71"},"returnParameters":{"id":14339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14492,"src":"3125:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14337,"name":"uint","nodeType":"ElementaryTypeName","src":"3125:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3124:6:71"},"scope":14536,"src":"3075:830:71","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":14534,"nodeType":"Block","src":"4046:433:71","statements":[{"assignments":[14501],"declarations":[{"constant":false,"id":14501,"mutability":"mutable","name":"slc","nameLocation":"4070:3:71","nodeType":"VariableDeclaration","scope":14534,"src":"4057:16:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_memory_ptr","typeString":"struct strings.slice"},"typeName":{"id":14500,"nodeType":"UserDefinedTypeName","pathNode":{"id":14499,"name":"slice","nodeType":"IdentifierPath","referencedDeclaration":14280,"src":"4057:5:71"},"referencedDeclaration":14280,"src":"4057:5:71","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_storage_ptr","typeString":"struct strings.slice"}},"visibility":"internal"}],"id":14502,"nodeType":"VariableDeclarationStatement","src":"4057:16:71"},{"AST":{"nodeType":"YulBlock","src":"4093:162:71","statements":[{"nodeType":"YulVariableDeclaration","src":"4108:22:71","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4125:4:71","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4119:5:71"},"nodeType":"YulFunctionCall","src":"4119:11:71"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"4112:3:71","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4151:4:71","type":"","value":"0x40"},{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4161:3:71"},{"kind":"number","nodeType":"YulLiteral","src":"4166:4:71","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4157:3:71"},"nodeType":"YulFunctionCall","src":"4157:14:71"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4144:6:71"},"nodeType":"YulFunctionCall","src":"4144:28:71"},"nodeType":"YulExpressionStatement","src":"4144:28:71"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4193:3:71"},{"name":"self","nodeType":"YulIdentifier","src":"4198:4:71"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4186:6:71"},"nodeType":"YulFunctionCall","src":"4186:17:71"},"nodeType":"YulExpressionStatement","src":"4186:17:71"},{"expression":{"arguments":[{"arguments":[{"name":"slc","nodeType":"YulIdentifier","src":"4228:3:71"},{"kind":"number","nodeType":"YulLiteral","src":"4233:4:71","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4224:3:71"},"nodeType":"YulFunctionCall","src":"4224:14:71"},{"name":"ptr","nodeType":"YulIdentifier","src":"4240:3:71"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4217:6:71"},"nodeType":"YulFunctionCall","src":"4217:27:71"},"nodeType":"YulExpressionStatement","src":"4217:27:71"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":14494,"isOffset":false,"isSlot":false,"src":"4198:4:71","valueSize":1},{"declaration":14501,"isOffset":false,"isSlot":false,"src":"4228:3:71","valueSize":1}],"id":14503,"nodeType":"InlineAssembly","src":"4084:171:71"},{"expression":{"id":14510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":14504,"name":"slc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"4265:3:71","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_memory_ptr","typeString":"struct strings.slice memory"}},"id":14506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14277,"src":"4265:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14508,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14494,"src":"4280:4:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":14507,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14492,"src":"4276:3:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) pure returns (uint256)"}},"id":14509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4276:9:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4265:20:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14511,"nodeType":"ExpressionStatement","src":"4265:20:71"},{"assignments":[14513],"declarations":[{"constant":false,"id":14513,"mutability":"mutable","name":"ret","nameLocation":"4312:3:71","nodeType":"VariableDeclaration","scope":14534,"src":"4298:17:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14512,"name":"string","nodeType":"ElementaryTypeName","src":"4298:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":14519,"initialValue":{"arguments":[{"expression":{"id":14516,"name":"slc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"4329:3:71","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_memory_ptr","typeString":"struct strings.slice memory"}},"id":14517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14277,"src":"4329:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4318:10:71","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":14514,"name":"string","nodeType":"ElementaryTypeName","src":"4322:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":14518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4318:20:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"4298:40:71"},{"assignments":[14521],"declarations":[{"constant":false,"id":14521,"mutability":"mutable","name":"retptr","nameLocation":"4354:6:71","nodeType":"VariableDeclaration","scope":14534,"src":"4349:11:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14520,"name":"uint","nodeType":"ElementaryTypeName","src":"4349:4:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14522,"nodeType":"VariableDeclarationStatement","src":"4349:11:71"},{"AST":{"nodeType":"YulBlock","src":"4380:26:71","statements":[{"nodeType":"YulAssignment","src":"4382:22:71","value":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"4396:3:71"},{"kind":"number","nodeType":"YulLiteral","src":"4401:2:71","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4392:3:71"},"nodeType":"YulFunctionCall","src":"4392:12:71"},"variableNames":[{"name":"retptr","nodeType":"YulIdentifier","src":"4382:6:71"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":14513,"isOffset":false,"isSlot":false,"src":"4396:3:71","valueSize":1},{"declaration":14521,"isOffset":false,"isSlot":false,"src":"4382:6:71","valueSize":1}],"id":14523,"nodeType":"InlineAssembly","src":"4371:35:71"},{"expression":{"arguments":[{"id":14525,"name":"retptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14521,"src":"4423:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14526,"name":"slc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"4431:3:71","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_memory_ptr","typeString":"struct strings.slice memory"}},"id":14527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_ptr","nodeType":"MemberAccess","referencedDeclaration":14279,"src":"4431:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":14528,"name":"slc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"4441:3:71","typeDescriptions":{"typeIdentifier":"t_struct$_slice_$14280_memory_ptr","typeString":"struct strings.slice memory"}},"id":14529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"_len","nodeType":"MemberAccess","referencedDeclaration":14277,"src":"4441:8:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14524,"name":"memcpy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14333,"src":"4416:6:71","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":14530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4416:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14531,"nodeType":"ExpressionStatement","src":"4416:34:71"},{"expression":{"id":14532,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14513,"src":"4468:3:71","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":14498,"id":14533,"nodeType":"Return","src":"4461:10:71"}]},"id":14535,"implemented":true,"kind":"function","modifiers":[],"name":"toB32String","nameLocation":"3982:11:71","nodeType":"FunctionDefinition","parameters":{"id":14495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14494,"mutability":"mutable","name":"self","nameLocation":"4002:4:71","nodeType":"VariableDeclaration","scope":14535,"src":"3994:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3994:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3993:14:71"},"returnParameters":{"id":14498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14497,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14535,"src":"4031:13:71","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14496,"name":"string","nodeType":"ElementaryTypeName","src":"4031:6:71","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4030:15:71"},"scope":14536,"src":"3973:506:71","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":14537,"src":"2137:2345:71"}],"src":"2111:2371:71"},"id":71},"contracts/flows/PolicyDefaultFlow.sol":{"ast":{"absolutePath":"contracts/flows/PolicyDefaultFlow.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IQuery":[5616],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"Ownable":[7481],"Pausable":[8167],"PolicyController":[19974],"PolicyDefaultFlow":[15427],"PoolController":[21207],"QueryModule":[21595],"Strings":[10804],"TransferHelper":[26659],"TreasuryModule":[23615],"WithRegistry":[26779]},"id":15428,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":14538,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:72"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"../modules/ComponentController.sol","id":14539,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":17948,"src":"63:44:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"../modules/PoolController.sol","id":14540,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":21208,"src":"108:39:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PolicyController.sol","file":"../modules/PolicyController.sol","id":14541,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":19975,"src":"148:41:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/QueryModule.sol","file":"../modules/QueryModule.sol","id":14542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":21596,"src":"190:36:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/TreasuryModule.sol","file":"../modules/TreasuryModule.sol","id":14543,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":23616,"src":"227:39:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/WithRegistry.sol","file":"../shared/WithRegistry.sol","id":14544,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":26780,"src":"267:36:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":14545,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":5434,"src":"305:63:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":14546,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":5715,"src":"435:65:72","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPool.sol","file":"@etherisc/gif-interface/contracts/modules/IPool.sol","id":14547,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15428,"sourceUnit":5550,"src":"501:61:72","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":14548,"name":"WithRegistry","nodeType":"IdentifierPath","referencedDeclaration":26779,"src":"600:12:72"},"id":14549,"nodeType":"InheritanceSpecifier","src":"600:12:72"}],"contractDependencies":[26779],"contractKind":"contract","fullyImplemented":true,"id":15427,"linearizedBaseContracts":[15427,26779],"name":"PolicyDefaultFlow","nameLocation":"574:17:72","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":14552,"mutability":"constant","name":"NAME","nameLocation":"644:4:72","nodeType":"VariableDeclaration","scope":15427,"src":"620:50:72","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"620:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6c69637944656661756c74466c6f77","id":14551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"651:19:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c6194c52a3447410e4616772f780a88c4ac5f0b731d2fc7e7979c603182714e","typeString":"literal_string \"PolicyDefaultFlow\""},"value":"PolicyDefaultFlow"},"visibility":"public"},{"body":{"id":14576,"nodeType":"Block","src":"722:224:72","statements":[{"assignments":[14558],"declarations":[{"constant":false,"id":14558,"mutability":"mutable","name":"policy","nameLocation":"749:6:72","nodeType":"VariableDeclaration","scope":14576,"src":"732:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14557,"nodeType":"UserDefinedTypeName","pathNode":{"id":14556,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"732:16:72"},"referencedDeclaration":19974,"src":"732:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14561,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14559,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"758:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"758:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"732:45:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":14571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":14565,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14554,"src":"825:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14563,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"808:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"808:16:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":14566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"808:27:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":14567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"808:33:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":14568,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"845:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":14569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"845:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":14570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5223,"src":"845:26:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"808:63:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645","id":14572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"885:33:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b1cef90b481c0b75b84bee986adfe33e860c5dd41a12fda22045023a52d80d2","typeString":"literal_string \"ERROR:PFD-001:POLICY_NOT_ACTIVE\""},"value":"ERROR:PFD-001:POLICY_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b1cef90b481c0b75b84bee986adfe33e860c5dd41a12fda22045023a52d80d2","typeString":"literal_string \"ERROR:PFD-001:POLICY_NOT_ACTIVE\""}],"id":14562,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"787:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"787:141:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14574,"nodeType":"ExpressionStatement","src":"787:141:72"},{"id":14575,"nodeType":"PlaceholderStatement","src":"938:1:72"}]},"id":14577,"name":"onlyActivePolicy","nameLocation":"686:16:72","nodeType":"ModifierDefinition","parameters":{"id":14555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14554,"mutability":"mutable","name":"processId","nameLocation":"711:9:72","nodeType":"VariableDeclaration","scope":14577,"src":"703:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"703:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"702:19:72"},"src":"677:269:72","virtual":false,"visibility":"internal"},{"body":{"id":14601,"nodeType":"Block","src":"998:226:72","statements":[{"assignments":[14583],"declarations":[{"constant":false,"id":14583,"mutability":"mutable","name":"policy","nameLocation":"1025:6:72","nodeType":"VariableDeclaration","scope":14601,"src":"1008:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14582,"nodeType":"UserDefinedTypeName","pathNode":{"id":14581,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"1008:16:72"},"referencedDeclaration":19974,"src":"1008:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14586,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14584,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"1034:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1034:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"1008:45:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":14596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":14590,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14579,"src":"1101:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14588,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14583,"src":"1084:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"1084:16:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":14591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1084:27:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":14592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"1084:33:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":14593,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"1121:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":14594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"1121:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":14595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":5224,"src":"1121:27:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"1084:64:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5046442d3030323a504f4c4943595f4e4f545f45585049524544","id":14597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1162:34:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_18e20048df1336701316840c9034a9ef82a2e25efaf59ab47262e1bc60a26085","typeString":"literal_string \"ERROR:PFD-002:POLICY_NOT_EXPIRED\""},"value":"ERROR:PFD-002:POLICY_NOT_EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18e20048df1336701316840c9034a9ef82a2e25efaf59ab47262e1bc60a26085","typeString":"literal_string \"ERROR:PFD-002:POLICY_NOT_EXPIRED\""}],"id":14587,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1063:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1063:143:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14599,"nodeType":"ExpressionStatement","src":"1063:143:72"},{"id":14600,"nodeType":"PlaceholderStatement","src":"1216:1:72"}]},"id":14602,"name":"onlyExpiredPolicy","nameLocation":"961:17:72","nodeType":"ModifierDefinition","parameters":{"id":14580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14579,"mutability":"mutable","name":"processId","nameLocation":"987:9:72","nodeType":"VariableDeclaration","scope":14602,"src":"979:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"979:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"978:19:72"},"src":"952:272:72","virtual":false,"visibility":"internal"},{"body":{"id":14626,"nodeType":"Block","src":"1274:220:72","statements":[{"assignments":[14608],"declarations":[{"constant":false,"id":14608,"mutability":"mutable","name":"policy","nameLocation":"1301:6:72","nodeType":"VariableDeclaration","scope":14626,"src":"1284:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14607,"nodeType":"UserDefinedTypeName","pathNode":{"id":14606,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"1284:16:72"},"referencedDeclaration":19974,"src":"1284:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14611,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14609,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"1310:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1310:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"1284:45:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":14621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":14615,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14604,"src":"1377:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14613,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14608,"src":"1360:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"1360:16:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":14616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1360:27:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":14617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"1360:33:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":14618,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"1397:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":14619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"1397:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":14620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"1397:26:72","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"1360:63:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5046442d3030333a504f4c4943595f434c4f534544","id":14622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1437:29:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_fe1653e6a7be49437891bef0c146fde88ff09a38abe7e0ab716b9121e8b59650","typeString":"literal_string \"ERROR:PFD-003:POLICY_CLOSED\""},"value":"ERROR:PFD-003:POLICY_CLOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fe1653e6a7be49437891bef0c146fde88ff09a38abe7e0ab716b9121e8b59650","typeString":"literal_string \"ERROR:PFD-003:POLICY_CLOSED\""}],"id":14612,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1339:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1339:137:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14624,"nodeType":"ExpressionStatement","src":"1339:137:72"},{"id":14625,"nodeType":"PlaceholderStatement","src":"1486:1:72"}]},"id":14627,"name":"notClosedPolicy","nameLocation":"1239:15:72","nodeType":"ModifierDefinition","parameters":{"id":14605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14604,"mutability":"mutable","name":"processId","nameLocation":"1263:9:72","nodeType":"VariableDeclaration","scope":14627,"src":"1255:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1255:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1254:19:72"},"src":"1230:264:72","virtual":false,"visibility":"internal"},{"body":{"id":14672,"nodeType":"Block","src":"1551:376:72","statements":[{"assignments":[14633],"declarations":[{"constant":false,"id":14633,"mutability":"mutable","name":"policy","nameLocation":"1578:6:72","nodeType":"VariableDeclaration","scope":14672,"src":"1561:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14632,"nodeType":"UserDefinedTypeName","pathNode":{"id":14631,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"1561:16:72"},"referencedDeclaration":19974,"src":"1561:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14636,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14634,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"1587:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1587:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"1561:45:72"},{"assignments":[14641],"declarations":[{"constant":false,"id":14641,"mutability":"mutable","name":"metadata","nameLocation":"1640:8:72","nodeType":"VariableDeclaration","scope":14672,"src":"1616:32:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":14640,"nodeType":"UserDefinedTypeName","pathNode":{"id":14639,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"1616:16:72"},"referencedDeclaration":5248,"src":"1616:16:72","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":14646,"initialValue":{"arguments":[{"id":14644,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14629,"src":"1670:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14642,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14633,"src":"1651:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"1651:18:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":14645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1651:29:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"1616:64:72"},{"assignments":[14649],"declarations":[{"constant":false,"id":14649,"mutability":"mutable","name":"component","nameLocation":"1710:9:72","nodeType":"VariableDeclaration","scope":14672,"src":"1690:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":14648,"nodeType":"UserDefinedTypeName","pathNode":{"id":14647,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"1690:19:72"},"referencedDeclaration":17947,"src":"1690:19:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"internal"}],"id":14655,"initialValue":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":14652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1766:11:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":14651,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"1742:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":14653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1742:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14650,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"1722:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":14654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1722:57:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"VariableDeclarationStatement","src":"1690:89:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14657,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14641,"src":"1797:8:72","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":14658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"1797:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":14663,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"1852:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1852:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1844:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14661,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:72","typeDescriptions":{}}},"id":14665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1844:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14659,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14649,"src":"1819:9:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":14660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"1819:24:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1819:45:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1797:67:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5046442d3030343a50524f4345535349445f50524f445543545f4d49534d41544348","id":14668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1866:42:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_136fc3ad7c83d07b4d40caf713cd67bed82ca2b892762c2adbae1fe6fe0dcfb3","typeString":"literal_string \"ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH\""},"value":"ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_136fc3ad7c83d07b4d40caf713cd67bed82ca2b892762c2adbae1fe6fe0dcfb3","typeString":"literal_string \"ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH\""}],"id":14656,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1789:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1789:120:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14670,"nodeType":"ExpressionStatement","src":"1789:120:72"},{"id":14671,"nodeType":"PlaceholderStatement","src":"1919:1:72"}]},"id":14673,"name":"onlyResponsibleProduct","nameLocation":"1509:22:72","nodeType":"ModifierDefinition","parameters":{"id":14630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14629,"mutability":"mutable","name":"processId","nameLocation":"1540:9:72","nodeType":"VariableDeclaration","scope":14673,"src":"1532:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1532:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1531:19:72"},"src":"1500:427:72","virtual":false,"visibility":"internal"},{"body":{"id":14732,"nodeType":"Block","src":"1981:496:72","statements":[{"assignments":[14679],"declarations":[{"constant":false,"id":14679,"mutability":"mutable","name":"query","nameLocation":"2003:5:72","nodeType":"VariableDeclaration","scope":14732,"src":"1991:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"},"typeName":{"id":14678,"nodeType":"UserDefinedTypeName","pathNode":{"id":14677,"name":"QueryModule","nodeType":"IdentifierPath","referencedDeclaration":21595,"src":"1991:11:72"},"referencedDeclaration":21595,"src":"1991:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"visibility":"internal"}],"id":14682,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14680,"name":"getQueryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"2011:16:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_QueryModule_$21595_$","typeString":"function () view returns (contract QueryModule)"}},"id":14681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2011:18:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"nodeType":"VariableDeclarationStatement","src":"1991:38:72"},{"assignments":[14684],"declarations":[{"constant":false,"id":14684,"mutability":"mutable","name":"processId","nameLocation":"2047:9:72","nodeType":"VariableDeclaration","scope":14732,"src":"2039:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2039:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":14690,"initialValue":{"arguments":[{"id":14688,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14675,"src":"2091:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":14685,"name":"getQueryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"2059:16:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_QueryModule_$21595_$","typeString":"function () view returns (contract QueryModule)"}},"id":14686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2059:18:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"id":14687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProcessId","nodeType":"MemberAccess","referencedDeclaration":21535,"src":"2059:31:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view external returns (bytes32)"}},"id":14689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2059:42:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2039:62:72"},{"assignments":[14693],"declarations":[{"constant":false,"id":14693,"mutability":"mutable","name":"policy","nameLocation":"2128:6:72","nodeType":"VariableDeclaration","scope":14732,"src":"2111:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14692,"nodeType":"UserDefinedTypeName","pathNode":{"id":14691,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"2111:16:72"},"referencedDeclaration":19974,"src":"2111:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14696,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14694,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"2137:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2137:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"2111:45:72"},{"assignments":[14701],"declarations":[{"constant":false,"id":14701,"mutability":"mutable","name":"metadata","nameLocation":"2190:8:72","nodeType":"VariableDeclaration","scope":14732,"src":"2166:32:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":14700,"nodeType":"UserDefinedTypeName","pathNode":{"id":14699,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"2166:16:72"},"referencedDeclaration":5248,"src":"2166:16:72","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":14706,"initialValue":{"arguments":[{"id":14704,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14684,"src":"2220:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14702,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14693,"src":"2201:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"2201:18:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":14705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2201:29:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"2166:64:72"},{"assignments":[14709],"declarations":[{"constant":false,"id":14709,"mutability":"mutable","name":"component","nameLocation":"2260:9:72","nodeType":"VariableDeclaration","scope":14732,"src":"2240:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":14708,"nodeType":"UserDefinedTypeName","pathNode":{"id":14707,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"2240:19:72"},"referencedDeclaration":17947,"src":"2240:19:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"internal"}],"id":14715,"initialValue":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":14712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2316:11:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":14711,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"2292:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":14713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2292:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14710,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"2272:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":14714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2272:57:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"VariableDeclarationStatement","src":"2240:89:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":14717,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14701,"src":"2347:8:72","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":14718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"2347:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":14723,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"2402:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2402:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2394:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":14721,"name":"address","nodeType":"ElementaryTypeName","src":"2394:7:72","typeDescriptions":{}}},"id":14725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2394:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14719,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14709,"src":"2369:9:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":14720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"2369:24:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2369:45:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2347:67:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5046442d3030353a5245515545535449445f50524f445543545f4d49534d41544348","id":14728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2416:42:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0e68ed3ce2670c36485c8c12aea21dfa09249d8122b89624db20258a17e2536","typeString":"literal_string \"ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH\""},"value":"ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d0e68ed3ce2670c36485c8c12aea21dfa09249d8122b89624db20258a17e2536","typeString":"literal_string \"ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH\""}],"id":14716,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2339:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2339:120:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14730,"nodeType":"ExpressionStatement","src":"2339:120:72"},{"id":14731,"nodeType":"PlaceholderStatement","src":"2469:1:72"}]},"id":14733,"name":"onlyMatchingProduct","nameLocation":"1942:19:72","nodeType":"ModifierDefinition","parameters":{"id":14676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14675,"mutability":"mutable","name":"requestId","nameLocation":"1970:9:72","nodeType":"VariableDeclaration","scope":14733,"src":"1962:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14674,"name":"uint256","nodeType":"ElementaryTypeName","src":"1962:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1961:19:72"},"src":"1933:544:72","virtual":false,"visibility":"internal"},{"body":{"id":14741,"nodeType":"Block","src":"2649:8:72","statements":[]},"id":14742,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":14738,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14735,"src":"2633:9:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":14739,"modifierName":{"id":14737,"name":"WithRegistry","nodeType":"IdentifierPath","referencedDeclaration":26779,"src":"2620:12:72"},"nodeType":"ModifierInvocation","src":"2620:23:72"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":14736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14735,"mutability":"mutable","name":"_registry","nameLocation":"2600:9:72","nodeType":"VariableDeclaration","scope":14742,"src":"2592:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14734,"name":"address","nodeType":"ElementaryTypeName","src":"2592:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2591:19:72"},"returnParameters":{"id":14740,"nodeType":"ParameterList","parameters":[],"src":"2649:0:72"},"scope":15427,"src":"2580:77:72","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14795,"nodeType":"Block","src":"2913:404:72","statements":[{"assignments":[14759],"declarations":[{"constant":false,"id":14759,"mutability":"mutable","name":"component","nameLocation":"2943:9:72","nodeType":"VariableDeclaration","scope":14795,"src":"2923:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":14758,"nodeType":"UserDefinedTypeName","pathNode":{"id":14757,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"2923:19:72"},"referencedDeclaration":17947,"src":"2923:19:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"internal"}],"id":14762,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14760,"name":"getComponentContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15374,"src":"2955:20:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_ComponentController_$17947_$","typeString":"function () view returns (contract ComponentController)"}},"id":14761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2955:22:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"VariableDeclarationStatement","src":"2923:54:72"},{"assignments":[14764],"declarations":[{"constant":false,"id":14764,"mutability":"mutable","name":"productId","nameLocation":"2995:9:72","nodeType":"VariableDeclaration","scope":14795,"src":"2987:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14763,"name":"uint256","nodeType":"ElementaryTypeName","src":"2987:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":14770,"initialValue":{"arguments":[{"expression":{"id":14767,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"3032:3:72","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3032:10:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":14765,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14759,"src":"3007:9:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":14766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"3007:24:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3007:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2987:56:72"},{"assignments":[14773],"declarations":[{"constant":false,"id":14773,"mutability":"mutable","name":"policy","nameLocation":"3062:6:72","nodeType":"VariableDeclaration","scope":14795,"src":"3054:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":14772,"nodeType":"UserDefinedTypeName","pathNode":{"id":14771,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"3054:7:72"},"referencedDeclaration":5433,"src":"3054:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":14776,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14774,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"3071:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3071:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"3054:36:72"},{"expression":{"id":14784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14777,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14755,"src":"3100:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14780,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14744,"src":"3136:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":14781,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14764,"src":"3143:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14782,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14750,"src":"3154:8:72","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":14778,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14773,"src":"3112:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":14779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createPolicyFlow","nodeType":"MemberAccess","referencedDeclaration":5321,"src":"3112:23:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes memory) external returns (bytes32)"}},"id":14783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3112:51:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3100:63:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14785,"nodeType":"ExpressionStatement","src":"3100:63:72"},{"expression":{"arguments":[{"id":14789,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14755,"src":"3211:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14790,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14746,"src":"3235:13:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14791,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14748,"src":"3263:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14792,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14752,"src":"3294:15:72","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":14786,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14773,"src":"3173:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":14788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createApplication","nodeType":"MemberAccess","referencedDeclaration":5332,"src":"3173:24:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,uint256,uint256,bytes memory) external"}},"id":14793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3173:137:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14794,"nodeType":"ExpressionStatement","src":"3173:137:72"}]},"functionSelector":"93b8414a","id":14796,"implemented":true,"kind":"function","modifiers":[],"name":"newApplication","nameLocation":"2672:14:72","nodeType":"FunctionDefinition","parameters":{"id":14753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14744,"mutability":"mutable","name":"owner","nameLocation":"2704:5:72","nodeType":"VariableDeclaration","scope":14796,"src":"2696:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14743,"name":"address","nodeType":"ElementaryTypeName","src":"2696:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14746,"mutability":"mutable","name":"premiumAmount","nameLocation":"2727:13:72","nodeType":"VariableDeclaration","scope":14796,"src":"2719:21:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14745,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14748,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"2758:16:72","nodeType":"VariableDeclaration","scope":14796,"src":"2750:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14747,"name":"uint256","nodeType":"ElementaryTypeName","src":"2750:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14750,"mutability":"mutable","name":"metaData","nameLocation":"2799:8:72","nodeType":"VariableDeclaration","scope":14796,"src":"2784:23:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14749,"name":"bytes","nodeType":"ElementaryTypeName","src":"2784:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14752,"mutability":"mutable","name":"applicationData","nameLocation":"2833:15:72","nodeType":"VariableDeclaration","scope":14796,"src":"2818:30:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14751,"name":"bytes","nodeType":"ElementaryTypeName","src":"2818:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2686:169:72"},"returnParameters":{"id":14756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14755,"mutability":"mutable","name":"processId","nameLocation":"2898:9:72","nodeType":"VariableDeclaration","scope":14796,"src":"2890:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2890:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2889:19:72"},"scope":15427,"src":"2663:654:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14816,"nodeType":"Block","src":"3422:98:72","statements":[{"assignments":[14806],"declarations":[{"constant":false,"id":14806,"mutability":"mutable","name":"policy","nameLocation":"3440:6:72","nodeType":"VariableDeclaration","scope":14816,"src":"3432:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":14805,"nodeType":"UserDefinedTypeName","pathNode":{"id":14804,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"3432:7:72"},"referencedDeclaration":5433,"src":"3432:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":14809,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14807,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"3449:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3449:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"3432:36:72"},{"expression":{"arguments":[{"id":14813,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14798,"src":"3503:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14810,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14806,"src":"3478:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":14812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"revokeApplication","nodeType":"MemberAccess","referencedDeclaration":5337,"src":"3478:24:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":14814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3478:35:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14815,"nodeType":"ExpressionStatement","src":"3478:35:72"}]},"functionSelector":"b75c7dc6","id":14817,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14801,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14798,"src":"3407:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14802,"modifierName":{"id":14800,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"3384:22:72"},"nodeType":"ModifierInvocation","src":"3384:33:72"}],"name":"revoke","nameLocation":"3332:6:72","nodeType":"FunctionDefinition","parameters":{"id":14799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14798,"mutability":"mutable","name":"processId","nameLocation":"3347:9:72","nodeType":"VariableDeclaration","scope":14817,"src":"3339:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14797,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3339:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3338:19:72"},"returnParameters":{"id":14803,"nodeType":"ParameterList","parameters":[],"src":"3422:0:72"},"scope":15427,"src":"3323:197:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14877,"nodeType":"Block","src":"3723:887:72","statements":[{"assignments":[14829],"declarations":[{"constant":false,"id":14829,"mutability":"mutable","name":"pool","nameLocation":"3810:4:72","nodeType":"VariableDeclaration","scope":14877,"src":"3795:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":14828,"nodeType":"UserDefinedTypeName","pathNode":{"id":14827,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"3795:14:72"},"referencedDeclaration":21207,"src":"3795:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"}],"id":14832,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14830,"name":"getPoolContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15387,"src":"3817:15:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PoolController_$21207_$","typeString":"function () view returns (contract PoolController)"}},"id":14831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3817:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"VariableDeclarationStatement","src":"3795:39:72"},{"expression":{"id":14838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":14833,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14825,"src":"3844:7:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14836,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"3870:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14834,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14829,"src":"3854:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":14835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"underwrite","nodeType":"MemberAccess","referencedDeclaration":20591,"src":"3854:15:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) external returns (bool)"}},"id":14837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3854:26:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3844:36:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14839,"nodeType":"ExpressionStatement","src":"3844:36:72"},{"condition":{"id":14840,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14825,"src":"4207:7:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14876,"nodeType":"IfStatement","src":"4203:401:72","trueBody":{"id":14875,"nodeType":"Block","src":"4216:388:72","statements":[{"assignments":[14843],"declarations":[{"constant":false,"id":14843,"mutability":"mutable","name":"policyController","nameLocation":"4247:16:72","nodeType":"VariableDeclaration","scope":14875,"src":"4230:33:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14842,"nodeType":"UserDefinedTypeName","pathNode":{"id":14841,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"4230:16:72"},"referencedDeclaration":19974,"src":"4230:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14846,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14844,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"4266:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4266:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"4230:55:72"},{"expression":{"arguments":[{"id":14850,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"4338:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14847,"name":"policyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14843,"src":"4299:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"underwriteApplication","nodeType":"MemberAccess","referencedDeclaration":18555,"src":"4299:38:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":14851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4299:49:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14852,"nodeType":"ExpressionStatement","src":"4299:49:72"},{"expression":{"arguments":[{"id":14856,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"4392:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14853,"name":"policyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14843,"src":"4362:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createPolicy","nodeType":"MemberAccess","referencedDeclaration":18727,"src":"4362:29:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":14857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4362:40:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14858,"nodeType":"ExpressionStatement","src":"4362:40:72"},{"assignments":[14863],"declarations":[{"constant":false,"id":14863,"mutability":"mutable","name":"policy","nameLocation":"4478:6:72","nodeType":"VariableDeclaration","scope":14875,"src":"4456:28:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":14862,"nodeType":"UserDefinedTypeName","pathNode":{"id":14861,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"4456:14:72"},"referencedDeclaration":5282,"src":"4456:14:72","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":14868,"initialValue":{"arguments":[{"id":14866,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"4514:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14864,"name":"policyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14843,"src":"4487:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"4487:26:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":14867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4487:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"4456:68:72"},{"expression":{"arguments":[{"id":14870,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"4553:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":14871,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14863,"src":"4564:6:72","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":14872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"4564:28:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14869,"name":"collectPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14946,"src":"4538:14:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (bool,uint256,uint256)"}},"id":14873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4538:55:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"id":14874,"nodeType":"ExpressionStatement","src":"4538:55:72"}]}}]},"functionSelector":"1b07b17f","id":14878,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14822,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14819,"src":"3677:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14823,"modifierName":{"id":14821,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"3654:22:72"},"nodeType":"ModifierInvocation","src":"3654:33:72"}],"name":"underwrite","nameLocation":"3597:10:72","nodeType":"FunctionDefinition","parameters":{"id":14820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14819,"mutability":"mutable","name":"processId","nameLocation":"3616:9:72","nodeType":"VariableDeclaration","scope":14878,"src":"3608:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14818,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3608:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3607:19:72"},"returnParameters":{"id":14826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14825,"mutability":"mutable","name":"success","nameLocation":"3709:7:72","nodeType":"VariableDeclaration","scope":14878,"src":"3704:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14824,"name":"bool","nodeType":"ElementaryTypeName","src":"3704:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3703:14:72"},"scope":15427,"src":"3588:1022:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14945,"nodeType":"Block","src":"5128:515:72","statements":[{"assignments":[14899],"declarations":[{"constant":false,"id":14899,"mutability":"mutable","name":"treasury","nameLocation":"5153:8:72","nodeType":"VariableDeclaration","scope":14945,"src":"5138:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":14898,"nodeType":"UserDefinedTypeName","pathNode":{"id":14897,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"5138:14:72"},"referencedDeclaration":23615,"src":"5138:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"internal"}],"id":14902,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14900,"name":"getTreasuryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15426,"src":"5164:19:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_TreasuryModule_$23615_$","typeString":"function () view returns (contract TreasuryModule)"}},"id":14901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5164:21:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"nodeType":"VariableDeclarationStatement","src":"5138:47:72"},{"assignments":[14905],"declarations":[{"constant":false,"id":14905,"mutability":"mutable","name":"policy","nameLocation":"5212:6:72","nodeType":"VariableDeclaration","scope":14945,"src":"5195:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14904,"nodeType":"UserDefinedTypeName","pathNode":{"id":14903,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"5195:16:72"},"referencedDeclaration":19974,"src":"5195:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14908,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14906,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"5221:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5221:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"5195:45:72"},{"expression":{"id":14918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":14909,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14891,"src":"5252:7:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":14910,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14893,"src":"5261:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14911,"name":"netPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14895,"src":"5272:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14912,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5251:38:72","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":14915,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14880,"src":"5316:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14916,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14882,"src":"5327:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14913,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14899,"src":"5292:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":14914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPremium","nodeType":"MemberAccess","referencedDeclaration":23002,"src":"5292:23:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (bool,uint256,uint256)"}},"id":14917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5292:42:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"5251:83:72","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14919,"nodeType":"ExpressionStatement","src":"5251:83:72"},{"condition":{"id":14920,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14891,"src":"5425:7:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14944,"nodeType":"IfStatement","src":"5421:216:72","trueBody":{"id":14943,"nodeType":"Block","src":"5434:203:72","statements":[{"expression":{"arguments":[{"id":14924,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14880,"src":"5470:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":14925,"name":"netPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14895,"src":"5481:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":14926,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14893,"src":"5500:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5481:28:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14921,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14905,"src":"5448:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collectPremium","nodeType":"MemberAccess","referencedDeclaration":18416,"src":"5448:21:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":14928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5448:62:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14929,"nodeType":"ExpressionStatement","src":"5448:62:72"},{"assignments":[14932],"declarations":[{"constant":false,"id":14932,"mutability":"mutable","name":"pool","nameLocation":"5540:4:72","nodeType":"VariableDeclaration","scope":14943,"src":"5525:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":14931,"nodeType":"UserDefinedTypeName","pathNode":{"id":14930,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"5525:14:72"},"referencedDeclaration":21207,"src":"5525:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"}],"id":14935,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14933,"name":"getPoolContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15387,"src":"5547:15:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PoolController_$21207_$","typeString":"function () view returns (contract PoolController)"}},"id":14934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5547:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"VariableDeclarationStatement","src":"5525:39:72"},{"expression":{"arguments":[{"id":14939,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14880,"src":"5598:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14940,"name":"netPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14895,"src":"5609:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14936,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14932,"src":"5578:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":14938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPremium","nodeType":"MemberAccess","referencedDeclaration":20704,"src":"5578:19:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":14941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5578:48:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14942,"nodeType":"ExpressionStatement","src":"5578:48:72"}]}}]},"functionSelector":"e3ebdea5","id":14946,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14885,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14880,"src":"4947:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14886,"modifierName":{"id":14884,"name":"notClosedPolicy","nodeType":"IdentifierPath","referencedDeclaration":14627,"src":"4931:15:72"},"nodeType":"ModifierInvocation","src":"4931:26:72"},{"arguments":[{"id":14888,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14880,"src":"4989:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14889,"modifierName":{"id":14887,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"4966:22:72"},"nodeType":"ModifierInvocation","src":"4966:33:72"}],"name":"collectPremium","nameLocation":"4856:14:72","nodeType":"FunctionDefinition","parameters":{"id":14883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14880,"mutability":"mutable","name":"processId","nameLocation":"4879:9:72","nodeType":"VariableDeclaration","scope":14946,"src":"4871:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4871:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14882,"mutability":"mutable","name":"amount","nameLocation":"4898:6:72","nodeType":"VariableDeclaration","scope":14946,"src":"4890:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14881,"name":"uint256","nodeType":"ElementaryTypeName","src":"4890:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4870:35:72"},"returnParameters":{"id":14896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14891,"mutability":"mutable","name":"success","nameLocation":"5034:7:72","nodeType":"VariableDeclaration","scope":14946,"src":"5029:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14890,"name":"bool","nodeType":"ElementaryTypeName","src":"5029:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14893,"mutability":"mutable","name":"feeAmount","nameLocation":"5064:9:72","nodeType":"VariableDeclaration","scope":14946,"src":"5056:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14892,"name":"uint256","nodeType":"ElementaryTypeName","src":"5056:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14895,"mutability":"mutable","name":"netPremiumAmount","nameLocation":"5096:16:72","nodeType":"VariableDeclaration","scope":14946,"src":"5088:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14894,"name":"uint256","nodeType":"ElementaryTypeName","src":"5088:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5015:107:72"},"scope":15427,"src":"4847:796:72","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":14975,"nodeType":"Block","src":"5891:154:72","statements":[{"assignments":[14963],"declarations":[{"constant":false,"id":14963,"mutability":"mutable","name":"policy","nameLocation":"5918:6:72","nodeType":"VariableDeclaration","scope":14975,"src":"5901:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":14962,"nodeType":"UserDefinedTypeName","pathNode":{"id":14961,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"5901:16:72"},"referencedDeclaration":19974,"src":"5901:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":14966,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14964,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"5927:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5927:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"5901:45:72"},{"expression":{"arguments":[{"id":14970,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14948,"src":"5987:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":14971,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14950,"src":"5998:21:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":14972,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14952,"src":"6021:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":14967,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14963,"src":"5956:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":14969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"adjustPremiumSumInsured","nodeType":"MemberAccess","referencedDeclaration":18893,"src":"5956:30:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256) external"}},"id":14973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5956:82:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14974,"nodeType":"ExpressionStatement","src":"5956:82:72"}]},"functionSelector":"30a73da5","id":14976,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14955,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14948,"src":"5834:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14956,"modifierName":{"id":14954,"name":"notClosedPolicy","nodeType":"IdentifierPath","referencedDeclaration":14627,"src":"5818:15:72"},"nodeType":"ModifierInvocation","src":"5818:26:72"},{"arguments":[{"id":14958,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14948,"src":"5876:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14959,"modifierName":{"id":14957,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"5853:22:72"},"nodeType":"ModifierInvocation","src":"5853:33:72"}],"name":"adjustPremiumSumInsured","nameLocation":"5662:23:72","nodeType":"FunctionDefinition","parameters":{"id":14953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14948,"mutability":"mutable","name":"processId","nameLocation":"5703:9:72","nodeType":"VariableDeclaration","scope":14976,"src":"5695:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14947,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5695:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14950,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"5731:21:72","nodeType":"VariableDeclaration","scope":14976,"src":"5723:29:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14949,"name":"uint256","nodeType":"ElementaryTypeName","src":"5723:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14952,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"5770:16:72","nodeType":"VariableDeclaration","scope":14976,"src":"5762:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14951,"name":"uint256","nodeType":"ElementaryTypeName","src":"5762:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5685:107:72"},"returnParameters":{"id":14960,"nodeType":"ParameterList","parameters":[],"src":"5891:0:72"},"scope":15427,"src":"5653:392:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":14996,"nodeType":"Block","src":"6153:99:72","statements":[{"assignments":[14986],"declarations":[{"constant":false,"id":14986,"mutability":"mutable","name":"policy","nameLocation":"6171:6:72","nodeType":"VariableDeclaration","scope":14996,"src":"6163:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":14985,"nodeType":"UserDefinedTypeName","pathNode":{"id":14984,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"6163:7:72"},"referencedDeclaration":5433,"src":"6163:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":14989,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":14987,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"6180:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":14988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6180:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"6163:36:72"},{"expression":{"arguments":[{"id":14993,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14978,"src":"6235:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":14990,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14986,"src":"6209:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":14992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"declineApplication","nodeType":"MemberAccess","referencedDeclaration":5347,"src":"6209:25:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":14994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6209:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14995,"nodeType":"ExpressionStatement","src":"6209:36:72"}]},"functionSelector":"8cc7d3d1","id":14997,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":14981,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14978,"src":"6120:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14982,"modifierName":{"id":14980,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"6097:22:72"},"nodeType":"ModifierInvocation","src":"6097:33:72"}],"name":"decline","nameLocation":"6061:7:72","nodeType":"FunctionDefinition","parameters":{"id":14979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14978,"mutability":"mutable","name":"processId","nameLocation":"6077:9:72","nodeType":"VariableDeclaration","scope":14997,"src":"6069:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6069:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6068:19:72"},"returnParameters":{"id":14983,"nodeType":"ParameterList","parameters":[],"src":"6153:0:72"},"scope":15427,"src":"6052:200:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15020,"nodeType":"Block","src":"6393:93:72","statements":[{"assignments":[15010],"declarations":[{"constant":false,"id":15010,"mutability":"mutable","name":"policy","nameLocation":"6411:6:72","nodeType":"VariableDeclaration","scope":15020,"src":"6403:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":15009,"nodeType":"UserDefinedTypeName","pathNode":{"id":15008,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"6403:7:72"},"referencedDeclaration":5433,"src":"6403:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":15013,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15011,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"6420:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6420:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"6403:36:72"},{"expression":{"arguments":[{"id":15017,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14999,"src":"6469:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15014,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15010,"src":"6449:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":15016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"expirePolicy","nodeType":"MemberAccess","referencedDeclaration":5373,"src":"6449:19:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":15018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6449:30:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15019,"nodeType":"ExpressionStatement","src":"6449:30:72"}]},"functionSelector":"c6441798","id":15021,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15002,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14999,"src":"6336:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15003,"modifierName":{"id":15001,"name":"onlyActivePolicy","nodeType":"IdentifierPath","referencedDeclaration":14577,"src":"6319:16:72"},"nodeType":"ModifierInvocation","src":"6319:27:72"},{"arguments":[{"id":15005,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14999,"src":"6378:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15006,"modifierName":{"id":15004,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"6355:22:72"},"nodeType":"ModifierInvocation","src":"6355:33:72"}],"name":"expire","nameLocation":"6267:6:72","nodeType":"FunctionDefinition","parameters":{"id":15000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14999,"mutability":"mutable","name":"processId","nameLocation":"6282:9:72","nodeType":"VariableDeclaration","scope":15021,"src":"6274:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6274:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6273:19:72"},"returnParameters":{"id":15007,"nodeType":"ParameterList","parameters":[],"src":"6393:0:72"},"scope":15427,"src":"6258:228:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15056,"nodeType":"Block","src":"6627:166:72","statements":[{"assignments":[15034],"declarations":[{"constant":false,"id":15034,"mutability":"mutable","name":"policy","nameLocation":"6645:6:72","nodeType":"VariableDeclaration","scope":15056,"src":"6637:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":15033,"nodeType":"UserDefinedTypeName","pathNode":{"id":15032,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"6637:7:72"},"referencedDeclaration":5433,"src":"6637:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":15037,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15035,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"6654:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6654:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"6637:36:72"},{"expression":{"arguments":[{"id":15041,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15023,"src":"6702:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15038,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15034,"src":"6683:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":15040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"closePolicy","nodeType":"MemberAccess","referencedDeclaration":5378,"src":"6683:18:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":15042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6683:29:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15043,"nodeType":"ExpressionStatement","src":"6683:29:72"},{"assignments":[15046],"declarations":[{"constant":false,"id":15046,"mutability":"mutable","name":"pool","nameLocation":"6729:4:72","nodeType":"VariableDeclaration","scope":15056,"src":"6723:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPool_$5549","typeString":"contract IPool"},"typeName":{"id":15045,"nodeType":"UserDefinedTypeName","pathNode":{"id":15044,"name":"IPool","nodeType":"IdentifierPath","referencedDeclaration":5549,"src":"6723:5:72"},"referencedDeclaration":5549,"src":"6723:5:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPool_$5549","typeString":"contract IPool"}},"visibility":"internal"}],"id":15049,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15047,"name":"getPoolContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15387,"src":"6736:15:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PoolController_$21207_$","typeString":"function () view returns (contract PoolController)"}},"id":15048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6736:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"VariableDeclarationStatement","src":"6723:30:72"},{"expression":{"arguments":[{"id":15053,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15023,"src":"6776:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15050,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15046,"src":"6763:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPool_$5549","typeString":"contract IPool"}},"id":15052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"release","nodeType":"MemberAccess","referencedDeclaration":5548,"src":"6763:12:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":15054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6763:23:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15055,"nodeType":"ExpressionStatement","src":"6763:23:72"}]},"functionSelector":"39c79e0c","id":15057,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15026,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15023,"src":"6570:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15027,"modifierName":{"id":15025,"name":"onlyExpiredPolicy","nodeType":"IdentifierPath","referencedDeclaration":14602,"src":"6552:17:72"},"nodeType":"ModifierInvocation","src":"6552:28:72"},{"arguments":[{"id":15029,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15023,"src":"6612:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15030,"modifierName":{"id":15028,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"6589:22:72"},"nodeType":"ModifierInvocation","src":"6589:33:72"}],"name":"close","nameLocation":"6501:5:72","nodeType":"FunctionDefinition","parameters":{"id":15024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15023,"mutability":"mutable","name":"processId","nameLocation":"6515:9:72","nodeType":"VariableDeclaration","scope":15057,"src":"6507:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6507:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6506:19:72"},"returnParameters":{"id":15031,"nodeType":"ParameterList","parameters":[],"src":"6627:0:72"},"scope":15427,"src":"6492:301:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15084,"nodeType":"Block","src":"7042:126:72","statements":[{"expression":{"id":15082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15074,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15072,"src":"7052:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15078,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"7107:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15079,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15061,"src":"7131:11:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15080,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15063,"src":"7156:4:72","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15075,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"7062:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7062:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createClaim","nodeType":"MemberAccess","referencedDeclaration":19170,"src":"7062:31:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) external returns (uint256)"}},"id":15081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7062:99:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7052:109:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15083,"nodeType":"ExpressionStatement","src":"7052:109:72"}]},"functionSelector":"fae43d15","id":15085,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15066,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"6951:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15067,"modifierName":{"id":15065,"name":"onlyActivePolicy","nodeType":"IdentifierPath","referencedDeclaration":14577,"src":"6934:16:72"},"nodeType":"ModifierInvocation","src":"6934:27:72"},{"arguments":[{"id":15069,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15059,"src":"6993:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15070,"modifierName":{"id":15068,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"6970:22:72"},"nodeType":"ModifierInvocation","src":"6970:33:72"}],"name":"newClaim","nameLocation":"6808:8:72","nodeType":"FunctionDefinition","parameters":{"id":15064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15059,"mutability":"mutable","name":"processId","nameLocation":"6834:9:72","nodeType":"VariableDeclaration","scope":15085,"src":"6826:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6826:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15061,"mutability":"mutable","name":"claimAmount","nameLocation":"6862:11:72","nodeType":"VariableDeclaration","scope":15085,"src":"6854:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15060,"name":"uint256","nodeType":"ElementaryTypeName","src":"6854:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15063,"mutability":"mutable","name":"data","nameLocation":"6898:4:72","nodeType":"VariableDeclaration","scope":15085,"src":"6883:19:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15062,"name":"bytes","nodeType":"ElementaryTypeName","src":"6883:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6816:92:72"},"returnParameters":{"id":15073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15072,"mutability":"mutable","name":"claimId","nameLocation":"7029:7:72","nodeType":"VariableDeclaration","scope":15085,"src":"7021:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15071,"name":"uint256","nodeType":"ElementaryTypeName","src":"7021:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7020:17:72"},"scope":15427,"src":"6799:369:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15111,"nodeType":"Block","src":"7352:128:72","statements":[{"assignments":[15099],"declarations":[{"constant":false,"id":15099,"mutability":"mutable","name":"policy","nameLocation":"7379:6:72","nodeType":"VariableDeclaration","scope":15111,"src":"7362:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15098,"nodeType":"UserDefinedTypeName","pathNode":{"id":15097,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"7362:16:72"},"referencedDeclaration":19974,"src":"7362:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15102,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15100,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"7388:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7388:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"7362:45:72"},{"expression":{"arguments":[{"id":15106,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15087,"src":"7437:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15107,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15089,"src":"7448:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15108,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15091,"src":"7457:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15103,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15099,"src":"7417:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"confirmClaim","nodeType":"MemberAccess","referencedDeclaration":19283,"src":"7417:19:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256) external"}},"id":15109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7417:56:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15110,"nodeType":"ExpressionStatement","src":"7417:56:72"}]},"functionSelector":"4e02c63f","id":15112,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15094,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15087,"src":"7336:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15095,"modifierName":{"id":15093,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"7313:22:72"},"nodeType":"ModifierInvocation","src":"7313:33:72"}],"name":"confirmClaim","nameLocation":"7183:12:72","nodeType":"FunctionDefinition","parameters":{"id":15092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15087,"mutability":"mutable","name":"processId","nameLocation":"7213:9:72","nodeType":"VariableDeclaration","scope":15112,"src":"7205:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7205:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15089,"mutability":"mutable","name":"claimId","nameLocation":"7240:7:72","nodeType":"VariableDeclaration","scope":15112,"src":"7232:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15088,"name":"uint256","nodeType":"ElementaryTypeName","src":"7232:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15091,"mutability":"mutable","name":"confirmedAmount","nameLocation":"7265:15:72","nodeType":"VariableDeclaration","scope":15112,"src":"7257:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15090,"name":"uint256","nodeType":"ElementaryTypeName","src":"7257:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7195:91:72"},"returnParameters":{"id":15096,"nodeType":"ParameterList","parameters":[],"src":"7352:0:72"},"scope":15427,"src":"7174:306:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15135,"nodeType":"Block","src":"7609:111:72","statements":[{"assignments":[15124],"declarations":[{"constant":false,"id":15124,"mutability":"mutable","name":"policy","nameLocation":"7636:6:72","nodeType":"VariableDeclaration","scope":15135,"src":"7619:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15123,"nodeType":"UserDefinedTypeName","pathNode":{"id":15122,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"7619:16:72"},"referencedDeclaration":19974,"src":"7619:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15127,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15125,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"7645:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7645:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"7619:45:72"},{"expression":{"arguments":[{"id":15131,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15114,"src":"7694:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15132,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15116,"src":"7705:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15128,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15124,"src":"7674:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"declineClaim","nodeType":"MemberAccess","referencedDeclaration":19370,"src":"7674:19:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":15133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7674:39:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15134,"nodeType":"ExpressionStatement","src":"7674:39:72"}]},"functionSelector":"4cda0de9","id":15136,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15119,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15114,"src":"7594:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15120,"modifierName":{"id":15118,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"7571:22:72"},"nodeType":"ModifierInvocation","src":"7571:33:72"}],"name":"declineClaim","nameLocation":"7495:12:72","nodeType":"FunctionDefinition","parameters":{"id":15117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15114,"mutability":"mutable","name":"processId","nameLocation":"7516:9:72","nodeType":"VariableDeclaration","scope":15136,"src":"7508:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7508:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15116,"mutability":"mutable","name":"claimId","nameLocation":"7535:7:72","nodeType":"VariableDeclaration","scope":15136,"src":"7527:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15115,"name":"uint256","nodeType":"ElementaryTypeName","src":"7527:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7507:36:72"},"returnParameters":{"id":15121,"nodeType":"ParameterList","parameters":[],"src":"7609:0:72"},"scope":15427,"src":"7486:234:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15159,"nodeType":"Block","src":"7847:109:72","statements":[{"assignments":[15148],"declarations":[{"constant":false,"id":15148,"mutability":"mutable","name":"policy","nameLocation":"7874:6:72","nodeType":"VariableDeclaration","scope":15159,"src":"7857:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15147,"nodeType":"UserDefinedTypeName","pathNode":{"id":15146,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"7857:16:72"},"referencedDeclaration":19974,"src":"7857:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15151,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15149,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"7883:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7883:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"7857:45:72"},{"expression":{"arguments":[{"id":15155,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15138,"src":"7930:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15156,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15140,"src":"7941:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15152,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15148,"src":"7912:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"closeClaim","nodeType":"MemberAccess","referencedDeclaration":19491,"src":"7912:17:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":15157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7912:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15158,"nodeType":"ExpressionStatement","src":"7912:37:72"}]},"functionSelector":"7f29dba2","id":15160,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15143,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15138,"src":"7832:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15144,"modifierName":{"id":15142,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"7809:22:72"},"nodeType":"ModifierInvocation","src":"7809:33:72"}],"name":"closeClaim","nameLocation":"7735:10:72","nodeType":"FunctionDefinition","parameters":{"id":15141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15138,"mutability":"mutable","name":"processId","nameLocation":"7754:9:72","nodeType":"VariableDeclaration","scope":15160,"src":"7746:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7746:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15140,"mutability":"mutable","name":"claimId","nameLocation":"7773:7:72","nodeType":"VariableDeclaration","scope":15160,"src":"7765:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15139,"name":"uint256","nodeType":"ElementaryTypeName","src":"7765:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7745:36:72"},"returnParameters":{"id":15145,"nodeType":"ParameterList","parameters":[],"src":"7847:0:72"},"scope":15427,"src":"7726:230:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15187,"nodeType":"Block","src":"8191:107:72","statements":[{"expression":{"id":15185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15176,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15174,"src":"8201:8:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15180,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15162,"src":"8258:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15181,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15164,"src":"8269:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15182,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15166,"src":"8278:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15183,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15168,"src":"8286:4:72","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15177,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"8212:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8212:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createPayout","nodeType":"MemberAccess","referencedDeclaration":19650,"src":"8212:45:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) external returns (uint256)"}},"id":15184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8212:79:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8201:90:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15186,"nodeType":"ExpressionStatement","src":"8201:90:72"}]},"functionSelector":"781d7846","id":15188,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15171,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15162,"src":"8142:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15172,"modifierName":{"id":15170,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"8119:22:72"},"nodeType":"ModifierInvocation","src":"8119:33:72"}],"name":"newPayout","nameLocation":"7971:9:72","nodeType":"FunctionDefinition","parameters":{"id":15169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15162,"mutability":"mutable","name":"processId","nameLocation":"7998:9:72","nodeType":"VariableDeclaration","scope":15188,"src":"7990:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7990:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15164,"mutability":"mutable","name":"claimId","nameLocation":"8025:7:72","nodeType":"VariableDeclaration","scope":15188,"src":"8017:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15163,"name":"uint256","nodeType":"ElementaryTypeName","src":"8017:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15166,"mutability":"mutable","name":"amount","nameLocation":"8050:6:72","nodeType":"VariableDeclaration","scope":15188,"src":"8042:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15165,"name":"uint256","nodeType":"ElementaryTypeName","src":"8042:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15168,"mutability":"mutable","name":"data","nameLocation":"8081:4:72","nodeType":"VariableDeclaration","scope":15188,"src":"8066:19:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15167,"name":"bytes","nodeType":"ElementaryTypeName","src":"8066:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7980:111:72"},"returnParameters":{"id":15175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15174,"mutability":"mutable","name":"payoutId","nameLocation":"8177:8:72","nodeType":"VariableDeclaration","scope":15188,"src":"8169:16:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15173,"name":"uint256","nodeType":"ElementaryTypeName","src":"8169:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8168:18:72"},"scope":15427,"src":"7962:336:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15248,"nodeType":"Block","src":"8570:440:72","statements":[{"assignments":[15206],"declarations":[{"constant":false,"id":15206,"mutability":"mutable","name":"treasury","nameLocation":"8595:8:72","nodeType":"VariableDeclaration","scope":15248,"src":"8580:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":15205,"nodeType":"UserDefinedTypeName","pathNode":{"id":15204,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"8580:14:72"},"referencedDeclaration":23615,"src":"8580:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"internal"}],"id":15209,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15207,"name":"getTreasuryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15426,"src":"8606:19:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_TreasuryModule_$23615_$","typeString":"function () view returns (contract TreasuryModule)"}},"id":15208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8606:21:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"nodeType":"VariableDeclarationStatement","src":"8580:47:72"},{"expression":{"id":15218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":15210,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15200,"src":"8638:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15211,"name":"netPayoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15202,"src":"8649:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15212,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"8637:28:72","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15215,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15190,"src":"8691:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15216,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15192,"src":"8702:8:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15213,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15206,"src":"8668:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":15214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":23130,"src":"8668:22:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (uint256,uint256)"}},"id":15217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8668:43:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"8637:74:72","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15219,"nodeType":"ExpressionStatement","src":"8637:74:72"},{"assignments":[15222],"declarations":[{"constant":false,"id":15222,"mutability":"mutable","name":"policy","nameLocation":"8806:6:72","nodeType":"VariableDeclaration","scope":15248,"src":"8798:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"},"typeName":{"id":15221,"nodeType":"UserDefinedTypeName","pathNode":{"id":15220,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"8798:7:72"},"referencedDeclaration":5433,"src":"8798:7:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"visibility":"internal"}],"id":15225,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15223,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"8815:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8815:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"8798:36:72"},{"expression":{"arguments":[{"id":15229,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15190,"src":"8865:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15230,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15192,"src":"8876:8:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15226,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15222,"src":"8844:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicy_$5433","typeString":"contract IPolicy"}},"id":15228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":5432,"src":"8844:20:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":15231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8844:41:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15232,"nodeType":"ExpressionStatement","src":"8844:41:72"},{"assignments":[15235],"declarations":[{"constant":false,"id":15235,"mutability":"mutable","name":"pool","nameLocation":"8911:4:72","nodeType":"VariableDeclaration","scope":15248,"src":"8896:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":15234,"nodeType":"UserDefinedTypeName","pathNode":{"id":15233,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"8896:14:72"},"referencedDeclaration":21207,"src":"8896:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"}],"id":15238,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15236,"name":"getPoolContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15387,"src":"8918:15:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PoolController_$21207_$","typeString":"function () view returns (contract PoolController)"}},"id":15237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8918:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"VariableDeclarationStatement","src":"8896:39:72"},{"expression":{"arguments":[{"id":15242,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15190,"src":"8964:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15243,"name":"netPayoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15202,"src":"8975:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":15244,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15200,"src":"8993:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8975:27:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15239,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15235,"src":"8945:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":15241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":20816,"src":"8945:18:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":15246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8945:58:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15247,"nodeType":"ExpressionStatement","src":"8945:58:72"}]},"functionSelector":"fe64372b","id":15249,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15195,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15190,"src":"8435:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15196,"modifierName":{"id":15194,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"8412:22:72"},"nodeType":"ModifierInvocation","src":"8412:33:72"}],"name":"processPayout","nameLocation":"8313:13:72","nodeType":"FunctionDefinition","parameters":{"id":15193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15190,"mutability":"mutable","name":"processId","nameLocation":"8344:9:72","nodeType":"VariableDeclaration","scope":15249,"src":"8336:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8336:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15192,"mutability":"mutable","name":"payoutId","nameLocation":"8371:8:72","nodeType":"VariableDeclaration","scope":15249,"src":"8363:16:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15191,"name":"uint256","nodeType":"ElementaryTypeName","src":"8363:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8326:59:72"},"returnParameters":{"id":15203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15198,"mutability":"mutable","name":"success","nameLocation":"8480:7:72","nodeType":"VariableDeclaration","scope":15249,"src":"8475:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15197,"name":"bool","nodeType":"ElementaryTypeName","src":"8475:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15200,"mutability":"mutable","name":"feeAmount","nameLocation":"8509:9:72","nodeType":"VariableDeclaration","scope":15249,"src":"8501:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15199,"name":"uint256","nodeType":"ElementaryTypeName","src":"8501:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15202,"mutability":"mutable","name":"netPayoutAmount","nameLocation":"8540:15:72","nodeType":"VariableDeclaration","scope":15249,"src":"8532:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15201,"name":"uint256","nodeType":"ElementaryTypeName","src":"8532:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8461:104:72"},"scope":15427,"src":"8304:706:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15279,"nodeType":"Block","src":"9325:214:72","statements":[{"expression":{"id":15277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15267,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15265,"src":"9335:10:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":15271,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15251,"src":"9388:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15272,"name":"_input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15253,"src":"9411:6:72","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":15273,"name":"_callbackMethodName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15255,"src":"9431:19:72","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":15274,"name":"_callbackContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15257,"src":"9464:24:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15275,"name":"_responsibleOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15259,"src":"9502:20:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15268,"name":"getQueryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"9348:16:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_QueryModule_$21595_$","typeString":"function () view returns (contract QueryModule)"}},"id":15269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9348:18:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"id":15270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"request","nodeType":"MemberAccess","referencedDeclaration":21403,"src":"9348:26:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,bytes memory,string memory,address,uint256) external returns (uint256)"}},"id":15276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9348:184:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9335:197:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15278,"nodeType":"ExpressionStatement","src":"9335:197:72"}]},"functionSelector":"2c933f22","id":15280,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15262,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15251,"src":"9272:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":15263,"modifierName":{"id":15261,"name":"onlyResponsibleProduct","nodeType":"IdentifierPath","referencedDeclaration":14673,"src":"9249:22:72"},"nodeType":"ModifierInvocation","src":"9249:33:72"}],"name":"request","nameLocation":"9025:7:72","nodeType":"FunctionDefinition","parameters":{"id":15260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15251,"mutability":"mutable","name":"processId","nameLocation":"9050:9:72","nodeType":"VariableDeclaration","scope":15280,"src":"9042:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9042:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15253,"mutability":"mutable","name":"_input","nameLocation":"9084:6:72","nodeType":"VariableDeclaration","scope":15280,"src":"9069:21:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15252,"name":"bytes","nodeType":"ElementaryTypeName","src":"9069:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15255,"mutability":"mutable","name":"_callbackMethodName","nameLocation":"9116:19:72","nodeType":"VariableDeclaration","scope":15280,"src":"9100:35:72","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15254,"name":"string","nodeType":"ElementaryTypeName","src":"9100:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15257,"mutability":"mutable","name":"_callbackContractAddress","nameLocation":"9153:24:72","nodeType":"VariableDeclaration","scope":15280,"src":"9145:32:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15256,"name":"address","nodeType":"ElementaryTypeName","src":"9145:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15259,"mutability":"mutable","name":"_responsibleOracleId","nameLocation":"9195:20:72","nodeType":"VariableDeclaration","scope":15280,"src":"9187:28:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15258,"name":"uint256","nodeType":"ElementaryTypeName","src":"9187:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9032:189:72"},"returnParameters":{"id":15266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15265,"mutability":"mutable","name":"_requestId","nameLocation":"9308:10:72","nodeType":"VariableDeclaration","scope":15280,"src":"9300:18:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15264,"name":"uint256","nodeType":"ElementaryTypeName","src":"9300:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9299:20:72"},"scope":15427,"src":"9016:523:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15294,"nodeType":"Block","src":"9663:53:72","statements":[{"expression":{"arguments":[{"id":15291,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15282,"src":"9699:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15288,"name":"getQueryContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"9673:16:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_QueryModule_$21595_$","typeString":"function () view returns (contract QueryModule)"}},"id":15289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9673:18:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"id":15290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"cancel","nodeType":"MemberAccess","referencedDeclaration":21509,"src":"9673:25:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":15292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9673:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15293,"nodeType":"ExpressionStatement","src":"9673:36:72"}]},"functionSelector":"3015394c","id":15295,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":15285,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15282,"src":"9648:9:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15286,"modifierName":{"id":15284,"name":"onlyMatchingProduct","nodeType":"IdentifierPath","referencedDeclaration":14733,"src":"9628:19:72"},"nodeType":"ModifierInvocation","src":"9628:30:72"}],"name":"cancelRequest","nameLocation":"9554:13:72","nodeType":"FunctionDefinition","parameters":{"id":15283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15282,"mutability":"mutable","name":"requestId","nameLocation":"9585:9:72","nodeType":"VariableDeclaration","scope":15295,"src":"9577:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15281,"name":"uint256","nodeType":"ElementaryTypeName","src":"9577:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9567:33:72"},"returnParameters":{"id":15287,"nodeType":"ParameterList","parameters":[],"src":"9663:0:72"},"scope":15427,"src":"9545:171:72","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":15314,"nodeType":"Block","src":"9834:116:72","statements":[{"assignments":[15304],"declarations":[{"constant":false,"id":15304,"mutability":"mutable","name":"policy","nameLocation":"9861:6:72","nodeType":"VariableDeclaration","scope":15314,"src":"9844:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15303,"nodeType":"UserDefinedTypeName","pathNode":{"id":15302,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"9844:16:72"},"referencedDeclaration":19974,"src":"9844:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15307,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15305,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"9870:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9870:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"9844:45:72"},{"expression":{"expression":{"arguments":[{"id":15310,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15297,"src":"9928:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":15308,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15304,"src":"9906:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":19835,"src":"9906:21:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":15311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9906:32:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":15312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"9906:37:72","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":15301,"id":15313,"nodeType":"Return","src":"9899:44:72"}]},"functionSelector":"c46df94e","id":15315,"implemented":true,"kind":"function","modifiers":[],"name":"getApplicationData","nameLocation":"9731:18:72","nodeType":"FunctionDefinition","parameters":{"id":15298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15297,"mutability":"mutable","name":"processId","nameLocation":"9758:9:72","nodeType":"VariableDeclaration","scope":15315,"src":"9750:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9750:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9749:19:72"},"returnParameters":{"id":15301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15315,"src":"9816:12:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15299,"name":"bytes","nodeType":"ElementaryTypeName","src":"9816:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9815:14:72"},"scope":15427,"src":"9722:228:72","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":15337,"nodeType":"Block","src":"10079:119:72","statements":[{"assignments":[15326],"declarations":[{"constant":false,"id":15326,"mutability":"mutable","name":"policy","nameLocation":"10106:6:72","nodeType":"VariableDeclaration","scope":15337,"src":"10089:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15325,"nodeType":"UserDefinedTypeName","pathNode":{"id":15324,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"10089:16:72"},"referencedDeclaration":19974,"src":"10089:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15329,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15327,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"10115:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10115:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"10089:45:72"},{"expression":{"expression":{"arguments":[{"id":15332,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15317,"src":"10167:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15333,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15319,"src":"10178:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15330,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15326,"src":"10151:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getClaim","nodeType":"MemberAccess","referencedDeclaration":19914,"src":"10151:15:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Claim_$5296_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Claim memory)"}},"id":15334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10151:35:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"id":15335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5291,"src":"10151:40:72","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":15323,"id":15336,"nodeType":"Return","src":"10144:47:72"}]},"functionSelector":"22f86e7f","id":15338,"implemented":true,"kind":"function","modifiers":[],"name":"getClaimData","nameLocation":"9965:12:72","nodeType":"FunctionDefinition","parameters":{"id":15320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15317,"mutability":"mutable","name":"processId","nameLocation":"9986:9:72","nodeType":"VariableDeclaration","scope":15338,"src":"9978:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9978:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15319,"mutability":"mutable","name":"claimId","nameLocation":"10005:7:72","nodeType":"VariableDeclaration","scope":15338,"src":"9997:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15318,"name":"uint256","nodeType":"ElementaryTypeName","src":"9997:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9977:36:72"},"returnParameters":{"id":15323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15338,"src":"10061:12:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15321,"name":"bytes","nodeType":"ElementaryTypeName","src":"10061:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10060:14:72"},"scope":15427,"src":"9956:242:72","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":15360,"nodeType":"Block","src":"10329:121:72","statements":[{"assignments":[15349],"declarations":[{"constant":false,"id":15349,"mutability":"mutable","name":"policy","nameLocation":"10356:6:72","nodeType":"VariableDeclaration","scope":15360,"src":"10339:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15348,"nodeType":"UserDefinedTypeName","pathNode":{"id":15347,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"10339:16:72"},"referencedDeclaration":19974,"src":"10339:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"id":15352,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":15350,"name":"getPolicyContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15400,"src":"10365:17:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PolicyController_$19974_$","typeString":"function () view returns (contract PolicyController)"}},"id":15351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10365:19:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"VariableDeclarationStatement","src":"10339:45:72"},{"expression":{"expression":{"arguments":[{"id":15355,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15340,"src":"10418:9:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15356,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15342,"src":"10429:8:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15353,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15349,"src":"10401:6:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPayout","nodeType":"MemberAccess","referencedDeclaration":19941,"src":"10401:16:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Payout_$5310_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Payout memory)"}},"id":15357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10401:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":15358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5305,"src":"10401:42:72","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":15346,"id":15359,"nodeType":"Return","src":"10394:49:72"}]},"functionSelector":"10b96080","id":15361,"implemented":true,"kind":"function","modifiers":[],"name":"getPayoutData","nameLocation":"10213:13:72","nodeType":"FunctionDefinition","parameters":{"id":15343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15340,"mutability":"mutable","name":"processId","nameLocation":"10235:9:72","nodeType":"VariableDeclaration","scope":15361,"src":"10227:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10227:7:72","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15342,"mutability":"mutable","name":"payoutId","nameLocation":"10254:8:72","nodeType":"VariableDeclaration","scope":15361,"src":"10246:16:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15341,"name":"uint256","nodeType":"ElementaryTypeName","src":"10246:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10226:37:72"},"returnParameters":{"id":15346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15361,"src":"10311:12:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15344,"name":"bytes","nodeType":"ElementaryTypeName","src":"10311:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10310:14:72"},"scope":15427,"src":"10204:246:72","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":15373,"nodeType":"Block","src":"10532:81:72","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":15369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10593:11:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":15368,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"10569:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10569:36:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15367,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"10549:19:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":15371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10549:57:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"functionReturnParameters":15366,"id":15372,"nodeType":"Return","src":"10542:64:72"}]},"id":15374,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentContract","nameLocation":"10465:20:72","nodeType":"FunctionDefinition","parameters":{"id":15362,"nodeType":"ParameterList","parameters":[],"src":"10485:2:72"},"returnParameters":{"id":15366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15374,"src":"10511:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":15364,"nodeType":"UserDefinedTypeName","pathNode":{"id":15363,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"10511:19:72"},"referencedDeclaration":17947,"src":"10511:19:72","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"internal"}],"src":"10510:21:72"},"scope":15427,"src":"10456:157:72","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15386,"nodeType":"Block","src":"10685:71:72","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"506f6f6c","id":15382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10741:6:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":15381,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"10717:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10717:31:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15380,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"10702:14:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":15384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10702:47:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"functionReturnParameters":15379,"id":15385,"nodeType":"Return","src":"10695:54:72"}]},"id":15387,"implemented":true,"kind":"function","modifiers":[],"name":"getPoolContract","nameLocation":"10628:15:72","nodeType":"FunctionDefinition","parameters":{"id":15375,"nodeType":"ParameterList","parameters":[],"src":"10643:2:72"},"returnParameters":{"id":15379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15387,"src":"10669:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":15377,"nodeType":"UserDefinedTypeName","pathNode":{"id":15376,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"10669:14:72"},"referencedDeclaration":21207,"src":"10669:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"}],"src":"10668:16:72"},"scope":15427,"src":"10619:137:72","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15399,"nodeType":"Block","src":"10832:75:72","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"506f6c696379","id":15395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10890:8:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""}],"id":15394,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"10866:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10866:33:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15393,"name":"PolicyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"10849:16:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PolicyController_$19974_$","typeString":"type(contract PolicyController)"}},"id":15397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10849:51:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"functionReturnParameters":15392,"id":15398,"nodeType":"Return","src":"10842:58:72"}]},"id":15400,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyContract","nameLocation":"10771:17:72","nodeType":"FunctionDefinition","parameters":{"id":15388,"nodeType":"ParameterList","parameters":[],"src":"10788:2:72"},"returnParameters":{"id":15392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15400,"src":"10814:16:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15390,"nodeType":"UserDefinedTypeName","pathNode":{"id":15389,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"10814:16:72"},"referencedDeclaration":19974,"src":"10814:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"}],"src":"10813:18:72"},"scope":15427,"src":"10762:145:72","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15412,"nodeType":"Block","src":"10977:69:72","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"5175657279","id":15408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11030:7:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""}],"id":15407,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"11006:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11006:32:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15406,"name":"QueryModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21595,"src":"10994:11:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_QueryModule_$21595_$","typeString":"type(contract QueryModule)"}},"id":15410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10994:45:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"functionReturnParameters":15405,"id":15411,"nodeType":"Return","src":"10987:52:72"}]},"id":15413,"implemented":true,"kind":"function","modifiers":[],"name":"getQueryContract","nameLocation":"10922:16:72","nodeType":"FunctionDefinition","parameters":{"id":15401,"nodeType":"ParameterList","parameters":[],"src":"10938:2:72"},"returnParameters":{"id":15405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15413,"src":"10964:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"},"typeName":{"id":15403,"nodeType":"UserDefinedTypeName","pathNode":{"id":15402,"name":"QueryModule","nodeType":"IdentifierPath","referencedDeclaration":21595,"src":"10964:11:72"},"referencedDeclaration":21595,"src":"10964:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_QueryModule_$21595","typeString":"contract QueryModule"}},"visibility":"internal"}],"src":"10963:13:72"},"scope":15427,"src":"10913:133:72","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":15425,"nodeType":"Block","src":"11122:75:72","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"5472656173757279","id":15421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11178:10:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""}],"id":15420,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"11154:23:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11154:35:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15419,"name":"TreasuryModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23615,"src":"11139:14:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TreasuryModule_$23615_$","typeString":"type(contract TreasuryModule)"}},"id":15423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11139:51:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"functionReturnParameters":15418,"id":15424,"nodeType":"Return","src":"11132:58:72"}]},"id":15426,"implemented":true,"kind":"function","modifiers":[],"name":"getTreasuryContract","nameLocation":"11061:19:72","nodeType":"FunctionDefinition","parameters":{"id":15414,"nodeType":"ParameterList","parameters":[],"src":"11080:2:72"},"returnParameters":{"id":15418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15417,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15426,"src":"11106:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":15416,"nodeType":"UserDefinedTypeName","pathNode":{"id":15415,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"11106:14:72"},"referencedDeclaration":23615,"src":"11106:14:72","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"internal"}],"src":"11105:16:72"},"scope":15427,"src":"11052:145:72","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":15428,"src":"565:10634:72"}],"src":"39:11161:72"},"id":72},"contracts/modules/AccessController.sol":{"ast":{"absolutePath":"contracts/modules/AccessController.sol","exportedSymbols":{"AccessControl":[7145],"AccessControlEnumerable":[7270],"AccessController":[15687],"Address":[10496],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"EnumerableSet":[11439],"IAccess":[4836],"IAccessControl":[7343],"IAccessControlEnumerable":[7368],"IERC165":[10840],"IRegistry":[5714],"Initializable":[8059],"Strings":[10804]},"id":15688,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":15429,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:73"},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":15430,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15688,"sourceUnit":26414,"src":"66:38:73","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IAccess.sol","file":"@etherisc/gif-interface/contracts/modules/IAccess.sol","id":15431,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15688,"sourceUnit":4837,"src":"108:63:73","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","file":"@openzeppelin/contracts/access/AccessControlEnumerable.sol","id":15432,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15688,"sourceUnit":7271,"src":"175:68:73","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":15433,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":15688,"sourceUnit":8060,"src":"245:63:73","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15435,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"3896:7:73"},"id":15436,"nodeType":"InheritanceSpecifier","src":"3896:7:73"},{"baseName":{"id":15437,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"3911:14:73"},"id":15438,"nodeType":"InheritanceSpecifier","src":"3911:14:73"},{"baseName":{"id":15439,"name":"AccessControlEnumerable","nodeType":"IdentifierPath","referencedDeclaration":7270,"src":"3932:23:73"},"id":15440,"nodeType":"InheritanceSpecifier","src":"3932:23:73"}],"contractDependencies":[4836,7145,7270,7343,7368,8059,10518,10828,10840,26413],"contractKind":"contract","documentation":{"id":15434,"nodeType":"StructuredDocumentation","src":"312:3543:73","text":"The provided smart contract is called \"AccessController\" and is written in Solidity. It implements the \"IAccess\" interface and inherits from the \"CoreController\" contract and the \"AccessControlEnumerable\" contract. The contract provides functionalities for access control and role management.\nRoles:\nThe contract defines three role identifiers as bytes32 constants:\n1. PRODUCT_OWNER_ROLE: Represents the role of a product owner.\n2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider.\n3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper.\nState Variables:\n- `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid.\n- `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set.\nFunctions:\n- `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function.\n- `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value.\n- `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event.\n- `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract.\n- `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract.\n- `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract.\n- `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping.\n- `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping.\n- `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role.\n- `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE.\n- `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE.\n- `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE.\n- `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE.\n- `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true.\nModifiers:\n- `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators.\nOverall, the contract provides a flexible access control mechanism by defining roles and allowing the assignment, revocation, and validation of roles by instance operators. It also sets a default admin role and manages the validity of roles through the `validRole` mapping."},"fullyImplemented":true,"id":15687,"linearizedBaseContracts":[15687,7270,7145,10828,10840,7368,7343,26413,8059,10518,4836],"name":"AccessController","nameLocation":"3870:16:73","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"6c137ea9","id":15445,"mutability":"constant","name":"PRODUCT_OWNER_ROLE","nameLocation":"4066:18:73","nodeType":"VariableDeclaration","scope":15687,"src":"4042:76:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4042:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"50524f445543545f4f574e45525f524f4c45","id":15443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4097:20:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_e984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd","typeString":"literal_string \"PRODUCT_OWNER_ROLE\""},"value":"PRODUCT_OWNER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd","typeString":"literal_string \"PRODUCT_OWNER_ROLE\""}],"id":15442,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"4087:9:73","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4087:31:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"79a863f5","id":15450,"mutability":"constant","name":"ORACLE_PROVIDER_ROLE","nameLocation":"4226:20:73","nodeType":"VariableDeclaration","scope":15687,"src":"4202:80:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4202:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4f5241434c455f50524f56494445525f524f4c45","id":15448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4259:22:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_d26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa2","typeString":"literal_string \"ORACLE_PROVIDER_ROLE\""},"value":"ORACLE_PROVIDER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa2","typeString":"literal_string \"ORACLE_PROVIDER_ROLE\""}],"id":15447,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"4249:9:73","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4249:33:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"68232c69","id":15455,"mutability":"constant","name":"RISKPOOL_KEEPER_ROLE","nameLocation":"4390:20:73","nodeType":"VariableDeclaration","scope":15687,"src":"4366:80:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15451,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4366:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5249534b504f4f4c5f4b45455045525f524f4c45","id":15453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4423:22:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd","typeString":"literal_string \"RISKPOOL_KEEPER_ROLE\""},"value":"RISKPOOL_KEEPER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd","typeString":"literal_string \"RISKPOOL_KEEPER_ROLE\""}],"id":15452,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"4413:9:73","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4413:33:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"12f9a85e","id":15459,"mutability":"mutable","name":"validRole","nameLocation":"4487:9:73","nodeType":"VariableDeclaration","scope":15687,"src":"4455:41:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":15458,"keyType":{"id":15456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4463:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4455:24:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":15457,"name":"bool","nodeType":"ElementaryTypeName","src":"4474:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"constant":false,"id":15461,"mutability":"mutable","name":"_defaultAdminSet","nameLocation":"4518:16:73","nodeType":"VariableDeclaration","scope":15687,"src":"4505:29:73","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15460,"name":"bool","nodeType":"ElementaryTypeName","src":"4505:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"baseFunctions":[26387],"body":{"id":15468,"nodeType":"Block","src":"4589:113:73","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":15465,"name":"_populateValidRoles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15686,"src":"4673:19:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":15466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4673:21:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15467,"nodeType":"ExpressionStatement","src":"4673:21:73"}]},"id":15469,"implemented":true,"kind":"function","modifiers":[],"name":"_afterInitialize","nameLocation":"4552:16:73","nodeType":"FunctionDefinition","overrides":{"id":15463,"nodeType":"OverrideSpecifier","overrides":[],"src":"4580:8:73"},"parameters":{"id":15462,"nodeType":"ParameterList","parameters":[],"src":"4568:2:73"},"returnParameters":{"id":15464,"nodeType":"ParameterList","parameters":[],"src":"4589:0:73"},"scope":15687,"src":"4543:159:73","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[26381],"body":{"id":15477,"nodeType":"Block","src":"4770:20:73","statements":[{"expression":{"hexValue":"416363657373","id":15475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4779:8:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"},"functionReturnParameters":15474,"id":15476,"nodeType":"Return","src":"4772:15:73"}]},"id":15478,"implemented":true,"kind":"function","modifiers":[],"name":"_getName","nameLocation":"4719:8:73","nodeType":"FunctionDefinition","overrides":{"id":15471,"nodeType":"OverrideSpecifier","overrides":[],"src":"4739:8:73"},"parameters":{"id":15470,"nodeType":"ParameterList","parameters":[],"src":"4727:2:73"},"returnParameters":{"id":15474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15478,"src":"4761:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4761:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4760:9:73"},"scope":15687,"src":"4710:80:73","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":15498,"nodeType":"Block","src":"5083:176:73","statements":[{"expression":{"arguments":[{"id":15485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5102:17:73","subExpression":{"id":15484,"name":"_defaultAdminSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"5103:16:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434c2d3030313a41444d494e5f524f4c455f414c52454144595f534554","id":15486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5121:38:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f9877d18dbbe1b61e60abbc0b78cf763130d8a58767ec78a5fe18c4bab672fb","typeString":"literal_string \"ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET\""},"value":"ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f9877d18dbbe1b61e60abbc0b78cf763130d8a58767ec78a5fe18c4bab672fb","typeString":"literal_string \"ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET\""}],"id":15483,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5094:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5094:66:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15488,"nodeType":"ExpressionStatement","src":"5094:66:73"},{"expression":{"id":15491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15489,"name":"_defaultAdminSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"5171:16:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5190:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5171:23:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15492,"nodeType":"ExpressionStatement","src":"5171:23:73"},{"expression":{"arguments":[{"id":15494,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"5218:18:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15495,"name":"defaultAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15480,"src":"5238:12:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":15493,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[7245],"referencedDeclaration":7245,"src":"5207:10:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":15496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5207:44:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15497,"nodeType":"ExpressionStatement","src":"5207:44:73"}]},"functionSelector":"c19010a7","id":15499,"implemented":true,"kind":"function","modifiers":[],"name":"setDefaultAdminRole","nameLocation":"5016:19:73","nodeType":"FunctionDefinition","parameters":{"id":15481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15480,"mutability":"mutable","name":"defaultAdmin","nameLocation":"5044:12:73","nodeType":"VariableDeclaration","scope":15499,"src":"5036:20:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15479,"name":"address","nodeType":"ElementaryTypeName","src":"5036:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5035:22:73"},"returnParameters":{"id":15482,"nodeType":"ParameterList","parameters":[],"src":"5083:0:73"},"scope":15687,"src":"5007:252:73","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4811,7326],"body":{"id":15525,"nodeType":"Block","src":"5498:135:73","statements":[{"expression":{"arguments":[{"baseExpression":{"id":15512,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"5517:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15514,"indexExpression":{"id":15513,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15501,"src":"5527:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5517:15:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434c2d3030323a524f4c455f554e4b4e4f574e5f4f525f494e56414c4944","id":15515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5534:39:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_b44ca75bdc42e96be4c16ee432e64fdbf40464ed8da793481d44f5ac59f98005","typeString":"literal_string \"ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID\""},"value":"ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b44ca75bdc42e96be4c16ee432e64fdbf40464ed8da793481d44f5ac59f98005","typeString":"literal_string \"ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID\""}],"id":15511,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5509:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5509:65:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15517,"nodeType":"ExpressionStatement","src":"5509:65:73"},{"expression":{"arguments":[{"id":15521,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15501,"src":"5609:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15522,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15503,"src":"5615:9:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15518,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7145,"src":"5585:13:73","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AccessControl_$7145_$","typeString":"type(contract AccessControl)"}},"id":15520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"grantRole","nodeType":"MemberAccess","referencedDeclaration":6996,"src":"5585:23:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":15523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5585:40:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15524,"nodeType":"ExpressionStatement","src":"5585:40:73"}]},"functionSelector":"2f2ff15d","id":15526,"implemented":true,"kind":"function","modifiers":[{"id":15509,"modifierName":{"id":15508,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"5471:20:73"},"nodeType":"ModifierInvocation","src":"5471:20:73"}],"name":"grantRole","nameLocation":"5357:9:73","nodeType":"FunctionDefinition","overrides":{"id":15507,"nodeType":"OverrideSpecifier","overrides":[{"id":15505,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"5436:14:73"},{"id":15506,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"5452:7:73"}],"src":"5427:33:73"},"parameters":{"id":15504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15501,"mutability":"mutable","name":"role","nameLocation":"5375:4:73","nodeType":"VariableDeclaration","scope":15526,"src":"5367:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5367:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15503,"mutability":"mutable","name":"principal","nameLocation":"5389:9:73","nodeType":"VariableDeclaration","scope":15526,"src":"5381:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15502,"name":"address","nodeType":"ElementaryTypeName","src":"5381:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5366:33:73"},"returnParameters":{"id":15510,"nodeType":"ParameterList","parameters":[],"src":"5498:0:73"},"scope":15687,"src":"5348:285:73","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4818,7334],"body":{"id":15545,"nodeType":"Block","src":"5792:60:73","statements":[{"expression":{"arguments":[{"id":15541,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15528,"src":"5828:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15542,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15530,"src":"5834:9:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15538,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7145,"src":"5803:13:73","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AccessControl_$7145_$","typeString":"type(contract AccessControl)"}},"id":15540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"revokeRole","nodeType":"MemberAccess","referencedDeclaration":7016,"src":"5803:24:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":15543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5803:41:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15544,"nodeType":"ExpressionStatement","src":"5803:41:73"}]},"functionSelector":"d547741f","id":15546,"implemented":true,"kind":"function","modifiers":[{"id":15536,"modifierName":{"id":15535,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"5765:20:73"},"nodeType":"ModifierInvocation","src":"5765:20:73"}],"name":"revokeRole","nameLocation":"5650:10:73","nodeType":"FunctionDefinition","overrides":{"id":15534,"nodeType":"OverrideSpecifier","overrides":[{"id":15532,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"5730:14:73"},{"id":15533,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"5746:7:73"}],"src":"5721:33:73"},"parameters":{"id":15531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15528,"mutability":"mutable","name":"role","nameLocation":"5669:4:73","nodeType":"VariableDeclaration","scope":15546,"src":"5661:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5661:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15530,"mutability":"mutable","name":"principal","nameLocation":"5683:9:73","nodeType":"VariableDeclaration","scope":15546,"src":"5675:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15529,"name":"address","nodeType":"ElementaryTypeName","src":"5675:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5660:33:73"},"returnParameters":{"id":15537,"nodeType":"ParameterList","parameters":[],"src":"5792:0:73"},"scope":15687,"src":"5641:211:73","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4825,7342],"body":{"id":15563,"nodeType":"Block","src":"5982:62:73","statements":[{"expression":{"arguments":[{"id":15559,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"6020:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15560,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15550,"src":"6026:9:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15556,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7145,"src":"5993:13:73","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AccessControl_$7145_$","typeString":"type(contract AccessControl)"}},"id":15558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"renounceRole","nodeType":"MemberAccess","referencedDeclaration":7039,"src":"5993:26:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":15561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5993:43:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15562,"nodeType":"ExpressionStatement","src":"5993:43:73"}]},"functionSelector":"36568abe","id":15564,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5869:12:73","nodeType":"FunctionDefinition","overrides":{"id":15554,"nodeType":"OverrideSpecifier","overrides":[{"id":15552,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"5951:14:73"},{"id":15553,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"5967:7:73"}],"src":"5942:33:73"},"parameters":{"id":15551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15548,"mutability":"mutable","name":"role","nameLocation":"5890:4:73","nodeType":"VariableDeclaration","scope":15564,"src":"5882:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5882:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15550,"mutability":"mutable","name":"principal","nameLocation":"5904:9:73","nodeType":"VariableDeclaration","scope":15564,"src":"5896:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15549,"name":"address","nodeType":"ElementaryTypeName","src":"5896:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5881:33:73"},"returnParameters":{"id":15555,"nodeType":"ParameterList","parameters":[],"src":"5982:0:73"},"scope":15687,"src":"5860:184:73","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4830],"body":{"id":15586,"nodeType":"Block","src":"6230:118:73","statements":[{"expression":{"arguments":[{"id":15576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6249:16:73","subExpression":{"baseExpression":{"id":15573,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"6250:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15575,"indexExpression":{"id":15574,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15566,"src":"6260:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6250:15:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434c2d3030333a524f4c455f4558495354494e475f414e445f56414c4944","id":15577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6267:39:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee0f5f51d1b211cfb0cb0e99e7ae5223d02dd767fa6a6f61a7de5feac9760754","typeString":"literal_string \"ERROR:ACL-003:ROLE_EXISTING_AND_VALID\""},"value":"ERROR:ACL-003:ROLE_EXISTING_AND_VALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ee0f5f51d1b211cfb0cb0e99e7ae5223d02dd767fa6a6f61a7de5feac9760754","typeString":"literal_string \"ERROR:ACL-003:ROLE_EXISTING_AND_VALID\""}],"id":15572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6241:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6241:66:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15579,"nodeType":"ExpressionStatement","src":"6241:66:73"},{"expression":{"id":15584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15580,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"6318:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15582,"indexExpression":{"id":15581,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15566,"src":"6328:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6318:15:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6336:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6318:22:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15585,"nodeType":"ExpressionStatement","src":"6318:22:73"}]},"functionSelector":"274b02a7","id":15587,"implemented":true,"kind":"function","modifiers":[{"id":15570,"modifierName":{"id":15569,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6203:20:73"},"nodeType":"ModifierInvocation","src":"6203:20:73"}],"name":"addRole","nameLocation":"6146:7:73","nodeType":"FunctionDefinition","overrides":{"id":15568,"nodeType":"OverrideSpecifier","overrides":[],"src":"6185:8:73"},"parameters":{"id":15567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15566,"mutability":"mutable","name":"role","nameLocation":"6162:4:73","nodeType":"VariableDeclaration","scope":15587,"src":"6154:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6154:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6153:14:73"},"returnParameters":{"id":15571,"nodeType":"ParameterList","parameters":[],"src":"6230:0:73"},"scope":15687,"src":"6137:211:73","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4835],"body":{"id":15608,"nodeType":"Block","src":"6455:118:73","statements":[{"expression":{"arguments":[{"baseExpression":{"id":15596,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"6474:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15598,"indexExpression":{"id":15597,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"6484:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6474:15:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434c2d3030343a524f4c455f554e4b4e4f574e5f4f525f494e56414c4944","id":15599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6491:39:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_a62f7cd2c33f4a0b1b1970f9fec462b3e3054faeb7b054bebcfcfab7f5ebf5bb","typeString":"literal_string \"ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID\""},"value":"ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a62f7cd2c33f4a0b1b1970f9fec462b3e3054faeb7b054bebcfcfab7f5ebf5bb","typeString":"literal_string \"ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID\""}],"id":15595,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6466:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6466:65:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15601,"nodeType":"ExpressionStatement","src":"6466:65:73"},{"expression":{"id":15606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15602,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"6542:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15604,"indexExpression":{"id":15603,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15589,"src":"6552:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6542:15:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":15605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6560:5:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6542:23:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15607,"nodeType":"ExpressionStatement","src":"6542:23:73"}]},"functionSelector":"d17d0233","id":15609,"implemented":true,"kind":"function","modifiers":[{"id":15593,"modifierName":{"id":15592,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6428:20:73"},"nodeType":"ModifierInvocation","src":"6428:20:73"}],"name":"invalidateRole","nameLocation":"6365:14:73","nodeType":"FunctionDefinition","overrides":{"id":15591,"nodeType":"OverrideSpecifier","overrides":[],"src":"6410:8:73"},"parameters":{"id":15590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15589,"mutability":"mutable","name":"role","nameLocation":"6388:4:73","nodeType":"VariableDeclaration","scope":15609,"src":"6380:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15588,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6380:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6379:14:73"},"returnParameters":{"id":15594,"nodeType":"ParameterList","parameters":[],"src":"6455:0:73"},"scope":15687,"src":"6356:217:73","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4804,7310],"body":{"id":15627,"nodeType":"Block","src":"6726:56:73","statements":[{"expression":{"arguments":[{"id":15623,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15611,"src":"6758:4:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":15624,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15613,"src":"6764:9:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15621,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"6744:5:73","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessController_$15687_$","typeString":"type(contract super AccessController)"}},"id":15622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":6905,"src":"6744:13:73","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":15625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6744:30:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15620,"id":15626,"nodeType":"Return","src":"6737:37:73"}]},"functionSelector":"91d14854","id":15628,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"6590:7:73","nodeType":"FunctionDefinition","overrides":{"id":15617,"nodeType":"OverrideSpecifier","overrides":[{"id":15615,"name":"IAccessControl","nodeType":"IdentifierPath","referencedDeclaration":7343,"src":"6672:14:73"},{"id":15616,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"6688:7:73"}],"src":"6663:33:73"},"parameters":{"id":15614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15611,"mutability":"mutable","name":"role","nameLocation":"6606:4:73","nodeType":"VariableDeclaration","scope":15628,"src":"6598:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6598:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15613,"mutability":"mutable","name":"principal","nameLocation":"6620:9:73","nodeType":"VariableDeclaration","scope":15628,"src":"6612:17:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15612,"name":"address","nodeType":"ElementaryTypeName","src":"6612:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6597:33:73"},"returnParameters":{"id":15620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15628,"src":"6715:4:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15618,"name":"bool","nodeType":"ElementaryTypeName","src":"6715:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6714:6:73"},"scope":15687,"src":"6581:201:73","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[4780],"body":{"id":15636,"nodeType":"Block","src":"6859:44:73","statements":[{"expression":{"id":15634,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"6877:18:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15633,"id":15635,"nodeType":"Return","src":"6870:25:73"}]},"functionSelector":"52a9c8d7","id":15637,"implemented":true,"kind":"function","modifiers":[],"name":"getDefaultAdminRole","nameLocation":"6799:19:73","nodeType":"FunctionDefinition","overrides":{"id":15630,"nodeType":"OverrideSpecifier","overrides":[],"src":"6833:8:73"},"parameters":{"id":15629,"nodeType":"ParameterList","parameters":[],"src":"6818:2:73"},"returnParameters":{"id":15633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15637,"src":"6850:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6850:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6849:9:73"},"scope":15687,"src":"6790:113:73","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[4785],"body":{"id":15645,"nodeType":"Block","src":"6980:44:73","statements":[{"expression":{"id":15643,"name":"PRODUCT_OWNER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15445,"src":"6998:18:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15642,"id":15644,"nodeType":"Return","src":"6991:25:73"}]},"functionSelector":"775a4048","id":15646,"implemented":true,"kind":"function","modifiers":[],"name":"getProductOwnerRole","nameLocation":"6920:19:73","nodeType":"FunctionDefinition","overrides":{"id":15639,"nodeType":"OverrideSpecifier","overrides":[],"src":"6954:8:73"},"parameters":{"id":15638,"nodeType":"ParameterList","parameters":[],"src":"6939:2:73"},"returnParameters":{"id":15642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15641,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15646,"src":"6971:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6971:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6970:9:73"},"scope":15687,"src":"6911:113:73","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[4790],"body":{"id":15654,"nodeType":"Block","src":"7103:46:73","statements":[{"expression":{"id":15652,"name":"ORACLE_PROVIDER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"7121:20:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15651,"id":15653,"nodeType":"Return","src":"7114:27:73"}]},"functionSelector":"d49d21c0","id":15655,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleProviderRole","nameLocation":"7041:21:73","nodeType":"FunctionDefinition","overrides":{"id":15648,"nodeType":"OverrideSpecifier","overrides":[],"src":"7077:8:73"},"parameters":{"id":15647,"nodeType":"ParameterList","parameters":[],"src":"7062:2:73"},"returnParameters":{"id":15651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15655,"src":"7094:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7094:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7093:9:73"},"scope":15687,"src":"7032:117:73","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[4795],"body":{"id":15663,"nodeType":"Block","src":"7228:46:73","statements":[{"expression":{"id":15661,"name":"RISKPOOL_KEEPER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15455,"src":"7246:20:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15660,"id":15662,"nodeType":"Return","src":"7239:27:73"}]},"functionSelector":"3ffdd2f3","id":15664,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolKeeperRole","nameLocation":"7166:21:73","nodeType":"FunctionDefinition","overrides":{"id":15657,"nodeType":"OverrideSpecifier","overrides":[],"src":"7202:8:73"},"parameters":{"id":15656,"nodeType":"ParameterList","parameters":[],"src":"7187:2:73"},"returnParameters":{"id":15660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15664,"src":"7219:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15658,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7219:7:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7218:9:73"},"scope":15687,"src":"7157:117:73","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":15685,"nodeType":"Block","src":"7321:153:73","statements":[{"expression":{"id":15671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15667,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"7332:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15669,"indexExpression":{"id":15668,"name":"PRODUCT_OWNER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15445,"src":"7342:18:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7332:29:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7364:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7332:36:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15672,"nodeType":"ExpressionStatement","src":"7332:36:73"},{"expression":{"id":15677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15673,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"7379:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15675,"indexExpression":{"id":15674,"name":"ORACLE_PROVIDER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15450,"src":"7389:20:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7379:31:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7413:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7379:38:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15678,"nodeType":"ExpressionStatement","src":"7379:38:73"},{"expression":{"id":15683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":15679,"name":"validRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15459,"src":"7428:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":15681,"indexExpression":{"id":15680,"name":"RISKPOOL_KEEPER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15455,"src":"7438:20:73","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7428:31:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":15682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7462:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7428:38:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15684,"nodeType":"ExpressionStatement","src":"7428:38:73"}]},"id":15686,"implemented":true,"kind":"function","modifiers":[],"name":"_populateValidRoles","nameLocation":"7291:19:73","nodeType":"FunctionDefinition","parameters":{"id":15665,"nodeType":"ParameterList","parameters":[],"src":"7310:2:73"},"returnParameters":{"id":15666,"nodeType":"ParameterList","parameters":[],"src":"7321:0:73"},"scope":15687,"src":"7282:192:73","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":15688,"src":"3861:3616:73"}],"src":"40:7439:73"},"id":73},"contracts/modules/BundleController.sol":{"ast":{"absolutePath":"contracts/modules/BundleController.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IOracle":[3022],"IPolicy":[5433],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059],"Ownable":[7481],"PolicyController":[19974],"PoolController":[21207],"Strings":[10804]},"id":16947,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":15689,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:74"},{"absolutePath":"contracts/modules/PolicyController.sol","file":"./PolicyController.sol","id":15690,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":19975,"src":"63:32:74","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":15691,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":26414,"src":"96:38:74","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/tokens/BundleToken.sol","file":"../tokens/BundleToken.sol","id":15692,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":28752,"src":"135:35:74","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":15693,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":3080,"src":"172:67:74","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"@etherisc/gif-interface/contracts/modules/IBundle.sol","id":15694,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":5021,"src":"240:63:74","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"./PoolController.sol","id":15695,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":16947,"sourceUnit":21208,"src":"304:30:74","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15697,"name":"IBundle","nodeType":"IdentifierPath","referencedDeclaration":5020,"src":"2434:7:74"},"id":15698,"nodeType":"InheritanceSpecifier","src":"2434:7:74"},{"baseName":{"id":15699,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"2447:14:74"},"id":15700,"nodeType":"InheritanceSpecifier","src":"2447:14:74"}],"contractDependencies":[5020,8059,10518,26413],"contractKind":"contract","documentation":{"id":15696,"nodeType":"StructuredDocumentation","src":"336:2061:74","text":"The smart contract is used to manage bundles, which are collections of policies.\n- The contract imports other Solidity contracts such as `PolicyController.sol`, `CoreController.sol`, and `BundleToken.sol`.\n- The contract implements the `IBundle` interface and extends the `CoreController` contract.\n- It defines several mappings to store information about bundles, active policies, locked capital per policy, and the number of unburt bundles for each risk pool.\n- There is a private variable `_bundleCount` to keep track of the number of bundles created.\n- The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`.\nFunctions: \n- `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment.\n- `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token.\n- `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance.\n- `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle.\n- `lock()`: Locks a bundle of assets by changing its state to \"Locked.\"\n- `unlock()`: Unlocks a bundle, changing its state back to \"Active.\"\n- `close()`: Closes a bundle of policies.\n- `burn()`: Burns a bundle, changing its state to \"Burned.\"\n- `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle.\n- `processPremium()`: Processes the premium payment for a given bundle and updates its balance.\n- `processPayout()`: Processes a payout for a policy from a bundle.\n- `releasePolicy()`: Releases a policy and updates the bundle's capital.\nThe contract includes various modifiers and event emitters to enforce access control and emit relevant events.\nOverall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle."},"fullyImplemented":true,"id":16946,"linearizedBaseContracts":[16946,26413,8059,10518,5020],"name":"BundleController","nameLocation":"2409:16:74","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":15703,"mutability":"mutable","name":"_policy","nameLocation":"2494:7:74","nodeType":"VariableDeclaration","scope":16946,"src":"2469:32:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":15702,"nodeType":"UserDefinedTypeName","pathNode":{"id":15701,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"2469:16:74"},"referencedDeclaration":19974,"src":"2469:16:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"private"},{"constant":false,"id":15706,"mutability":"mutable","name":"_token","nameLocation":"2527:6:74","nodeType":"VariableDeclaration","scope":16946,"src":"2507:26:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"},"typeName":{"id":15705,"nodeType":"UserDefinedTypeName","pathNode":{"id":15704,"name":"BundleToken","nodeType":"IdentifierPath","referencedDeclaration":28751,"src":"2507:11:74"},"referencedDeclaration":28751,"src":"2507:11:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"visibility":"private"},{"constant":false,"id":15711,"mutability":"mutable","name":"_bundles","nameLocation":"2604:8:74","nodeType":"VariableDeclaration","scope":16946,"src":"2541:71:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle)"},"typeName":{"id":15710,"keyType":{"id":15707,"name":"uint256","nodeType":"ElementaryTypeName","src":"2549:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2541:54:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle)"},"valueType":{"id":15709,"nodeType":"UserDefinedTypeName","pathNode":{"id":15708,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"2575:6:74"},"referencedDeclaration":4936,"src":"2575:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}}},"visibility":"private"},{"constant":false,"id":15715,"mutability":"mutable","name":"_activePolicies","nameLocation":"2693:15:74","nodeType":"VariableDeclaration","scope":16946,"src":"2618:90:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":15714,"keyType":{"id":15712,"name":"uint256","nodeType":"ElementaryTypeName","src":"2626:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2618:66:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":15713,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":15721,"mutability":"mutable","name":"_valueLockedPerPolicy","nameLocation":"2827:21:74","nodeType":"VariableDeclaration","scope":16946,"src":"2714:134:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"},"typeName":{"id":15720,"keyType":{"id":15716,"name":"uint256","nodeType":"ElementaryTypeName","src":"2722:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2714:104:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"},"valueType":{"id":15719,"keyType":{"id":15717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2756:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2748:69:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":15718,"name":"uint256","nodeType":"ElementaryTypeName","src":"2783:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":15725,"mutability":"mutable","name":"_unburntBundlesForRiskpoolId","nameLocation":"2936:28:74","nodeType":"VariableDeclaration","scope":16946,"src":"2854:110:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":15724,"keyType":{"id":15722,"name":"uint256","nodeType":"ElementaryTypeName","src":"2862:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2854:73:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":15723,"name":"uint256","nodeType":"ElementaryTypeName","src":"2890:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":15727,"mutability":"mutable","name":"_bundleCount","nameLocation":"2992:12:74","nodeType":"VariableDeclaration","scope":16946,"src":"2976:28:74","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15726,"name":"uint256","nodeType":"ElementaryTypeName","src":"2976:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":15740,"nodeType":"Block","src":"3042:163:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":15735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":15730,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3073:10:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":15731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3073:12:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"5269736b706f6f6c53657276696365","id":15733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3109:17:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""},"value":"RiskpoolService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""}],"id":15732,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3089:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3089:38:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3073:54:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3030313a4e4f545f5249534b504f4f4c5f53455256494345","id":15736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3141:36:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_476d7bdb29f083f2ebfc1b7face76d9f76a751b84204921dae4a5245b351756d","typeString":"literal_string \"ERROR:BUC-001:NOT_RISKPOOL_SERVICE\""},"value":"ERROR:BUC-001:NOT_RISKPOOL_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_476d7bdb29f083f2ebfc1b7face76d9f76a751b84204921dae4a5245b351756d","typeString":"literal_string \"ERROR:BUC-001:NOT_RISKPOOL_SERVICE\""}],"id":15729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3052:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3052:135:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15738,"nodeType":"ExpressionStatement","src":"3052:135:74"},{"id":15739,"nodeType":"PlaceholderStatement","src":"3197:1:74"}]},"id":15741,"name":"onlyRiskpoolService","nameLocation":"3020:19:74","nodeType":"ModifierDefinition","parameters":{"id":15728,"nodeType":"ParameterList","parameters":[],"src":"3039:2:74"},"src":"3011:194:74","virtual":false,"visibility":"internal"},{"body":{"id":15778,"nodeType":"Block","src":"3257:331:74","statements":[{"assignments":[15747],"declarations":[{"constant":false,"id":15747,"mutability":"mutable","name":"bundle","nameLocation":"3282:6:74","nodeType":"VariableDeclaration","scope":15778,"src":"3267:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":15746,"nodeType":"UserDefinedTypeName","pathNode":{"id":15745,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"3267:6:74"},"referencedDeclaration":4936,"src":"3267:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":15751,"initialValue":{"baseExpression":{"id":15748,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"3291:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":15750,"indexExpression":{"id":15749,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15743,"src":"3300:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3291:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3267:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15753,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15747,"src":"3327:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"3327:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3346:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3327:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3030323a42554e444c455f444f45535f4e4f545f4558495354","id":15757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3349:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_4194f84ab3a903bd197fb67924a3a7daa9e6613ff1e3b7fc1fb4fffc1258eed5","typeString":"literal_string \"ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4194f84ab3a903bd197fb67924a3a7daa9e6613ff1e3b7fc1fb4fffc1258eed5","typeString":"literal_string \"ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST\""}],"id":15752,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3319:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3319:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15759,"nodeType":"ExpressionStatement","src":"3319:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":15766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15761,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15747,"src":"3418:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"3418:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":15763,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"3434:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":15764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"3434:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":15765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"3434:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"3418:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":15772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15767,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15747,"src":"3477:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"3477:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":15769,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"3493:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":15770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"3493:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":15771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"3493:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"3477:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3418:101:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3030333a42554e444c455f4255524e45445f4f525f434c4f534544","id":15774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3521:39:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc49a30c0f34e650ca8a70d3c57306b681ae1a5988f74df68b029f46527aaa14","typeString":"literal_string \"ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED\""},"value":"ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dc49a30c0f34e650ca8a70d3c57306b681ae1a5988f74df68b029f46527aaa14","typeString":"literal_string \"ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED\""}],"id":15760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3397:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3397:173:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15776,"nodeType":"ExpressionStatement","src":"3397:173:74"},{"id":15777,"nodeType":"PlaceholderStatement","src":"3580:1:74"}]},"id":15779,"name":"onlyFundableBundle","nameLocation":"3220:18:74","nodeType":"ModifierDefinition","parameters":{"id":15744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15743,"mutability":"mutable","name":"bundleId","nameLocation":"3247:8:74","nodeType":"VariableDeclaration","scope":15779,"src":"3239:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15742,"name":"uint256","nodeType":"ElementaryTypeName","src":"3239:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3238:18:74"},"src":"3211:377:74","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":15801,"nodeType":"Block","src":"3657:140:74","statements":[{"expression":{"id":15791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15785,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"3667:7:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6c696379","id":15788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3714:8:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""}],"id":15787,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3694:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3694:29:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15786,"name":"PolicyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"3677:16:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PolicyController_$19974_$","typeString":"type(contract PolicyController)"}},"id":15790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3677:47:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"src":"3667:57:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":15792,"nodeType":"ExpressionStatement","src":"3667:57:74"},{"expression":{"id":15799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15793,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"3734:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"42756e646c65546f6b656e","id":15796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3775:13:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_49971d9abb6528cf70ffd04b9f4808a4d05dcff6326ec72b1165dc2f6e11a039","typeString":"literal_string \"BundleToken\""},"value":"BundleToken"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_49971d9abb6528cf70ffd04b9f4808a4d05dcff6326ec72b1165dc2f6e11a039","typeString":"literal_string \"BundleToken\""}],"id":15795,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3755:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":15797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3755:34:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15794,"name":"BundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28751,"src":"3743:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleToken_$28751_$","typeString":"type(contract BundleToken)"}},"id":15798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3743:47:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"src":"3734:56:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"id":15800,"nodeType":"ExpressionStatement","src":"3734:56:74"}]},"id":15802,"implemented":true,"kind":"function","modifiers":[{"id":15783,"modifierName":{"id":15782,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"3640:16:74"},"nodeType":"ModifierInvocation","src":"3640:16:74"}],"name":"_afterInitialize","nameLocation":"3603:16:74","nodeType":"FunctionDefinition","overrides":{"id":15781,"nodeType":"OverrideSpecifier","overrides":[],"src":"3631:8:74"},"parameters":{"id":15780,"nodeType":"ParameterList","parameters":[],"src":"3619:2:74"},"returnParameters":{"id":15784,"nodeType":"ParameterList","parameters":[],"src":"3657:0:74"},"scope":16946,"src":"3594:203:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[4949],"body":{"id":15923,"nodeType":"Block","src":"3987:946:74","statements":[{"expression":{"id":15822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":15818,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15816,"src":"4114:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":15819,"name":"_bundleCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"4125:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":15820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4140:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4125:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4114:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15823,"nodeType":"ExpressionStatement","src":"4114:27:74"},{"assignments":[15826],"declarations":[{"constant":false,"id":15826,"mutability":"mutable","name":"bundle","nameLocation":"4166:6:74","nodeType":"VariableDeclaration","scope":15923,"src":"4151:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":15825,"nodeType":"UserDefinedTypeName","pathNode":{"id":15824,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"4151:6:74"},"referencedDeclaration":4936,"src":"4151:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":15830,"initialValue":{"baseExpression":{"id":15827,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"4175:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":15829,"indexExpression":{"id":15828,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15816,"src":"4184:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4175:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4151:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15832,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4211:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"4211:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":15834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4231:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4211:21:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031303a42554e444c455f414c52454144595f455849535453","id":15836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4234:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6af89170a905e726a8cbfa86235e1ceb54481c43b365eb980d838bfae76a56c","typeString":"literal_string \"ERROR:BUC-010:BUNDLE_ALREADY_EXISTS\""},"value":"ERROR:BUC-010:BUNDLE_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a6af89170a905e726a8cbfa86235e1ceb54481c43b365eb980d838bfae76a56c","typeString":"literal_string \"ERROR:BUC-010:BUNDLE_ALREADY_EXISTS\""}],"id":15831,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4203:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4203:69:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15838,"nodeType":"ExpressionStatement","src":"4203:69:74"},{"assignments":[15840],"declarations":[{"constant":false,"id":15840,"mutability":"mutable","name":"tokenId","nameLocation":"4346:7:74","nodeType":"VariableDeclaration","scope":15923,"src":"4338:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15839,"name":"uint256","nodeType":"ElementaryTypeName","src":"4338:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15846,"initialValue":{"arguments":[{"id":15843,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15816,"src":"4368:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15844,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15804,"src":"4378:6:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15841,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"4356:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"id":15842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":28661,"src":"4356:11:74","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) external returns (uint256)"}},"id":15845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4356:29:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4338:47:74"},{"expression":{"id":15851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15847,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4396:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":4916,"src":"4396:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15850,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15816,"src":"4408:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4396:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15852,"nodeType":"ExpressionStatement","src":"4396:20:74"},{"expression":{"id":15857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15853,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4426:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4920,"src":"4426:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15856,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15840,"src":"4443:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4426:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15858,"nodeType":"ExpressionStatement","src":"4426:24:74"},{"expression":{"id":15863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15859,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4460:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"4460:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15862,"name":"riskpoolId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15806,"src":"4480:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4460:31:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15864,"nodeType":"ExpressionStatement","src":"4460:31:74"},{"expression":{"id":15870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15865,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4501:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"4501:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15868,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"4516:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":15869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"4516:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"4501:33:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"id":15871,"nodeType":"ExpressionStatement","src":"4501:33:74"},{"expression":{"id":15876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15872,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4544:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"filter","nodeType":"MemberAccess","referencedDeclaration":4925,"src":"4544:13:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15875,"name":"filter_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15808,"src":"4560:7:74","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"4544:23:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":15877,"nodeType":"ExpressionStatement","src":"4544:23:74"},{"expression":{"id":15882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15878,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4577:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"4577:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15881,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15810,"src":"4594:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4577:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15883,"nodeType":"ExpressionStatement","src":"4577:24:74"},{"expression":{"id":15888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15884,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4611:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"4611:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":15887,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15810,"src":"4628:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4611:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15889,"nodeType":"ExpressionStatement","src":"4611:24:74"},{"expression":{"id":15895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15890,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4645:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"4645:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15893,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"4664:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4664:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4645:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15896,"nodeType":"ExpressionStatement","src":"4645:34:74"},{"expression":{"id":15902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15897,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4689:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"4689:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15900,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"4708:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"4708:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4689:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15903,"nodeType":"ExpressionStatement","src":"4689:34:74"},{"expression":{"id":15905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4765:14:74","subExpression":{"id":15904,"name":"_bundleCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"4765:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15906,"nodeType":"ExpressionStatement","src":"4765:14:74"},{"expression":{"id":15910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4789:43:74","subExpression":{"baseExpression":{"id":15907,"name":"_unburntBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"4789:28:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":15909,"indexExpression":{"id":15908,"name":"riskpoolId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15806,"src":"4818:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4789:41:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15911,"nodeType":"ExpressionStatement","src":"4789:43:74"},{"eventCall":{"arguments":[{"expression":{"id":15913,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4865:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":4916,"src":"4865:9:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15915,"name":"riskpoolId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15806,"src":"4876:11:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15916,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15804,"src":"4889:6:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":15917,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4897:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"4897:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},{"expression":{"id":15919,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15826,"src":"4911:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"4911:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15912,"name":"LogBundleCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4851,"src":"4848:16:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_enum$_BundleState_$4914_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,address,enum IBundle.BundleState,uint256)"}},"id":15921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4848:78:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15922,"nodeType":"EmitStatement","src":"4843:83:74"}]},"functionSelector":"c0e71404","id":15924,"implemented":true,"kind":"function","modifiers":[{"id":15814,"modifierName":{"id":15813,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"3929:19:74"},"nodeType":"ModifierInvocation","src":"3929:19:74"}],"name":"create","nameLocation":"3812:6:74","nodeType":"FunctionDefinition","overrides":{"id":15812,"nodeType":"OverrideSpecifier","overrides":[],"src":"3912:8:74"},"parameters":{"id":15811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15804,"mutability":"mutable","name":"owner_","nameLocation":"3827:6:74","nodeType":"VariableDeclaration","scope":15924,"src":"3819:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15803,"name":"address","nodeType":"ElementaryTypeName","src":"3819:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15806,"mutability":"mutable","name":"riskpoolId_","nameLocation":"3840:11:74","nodeType":"VariableDeclaration","scope":15924,"src":"3835:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15805,"name":"uint","nodeType":"ElementaryTypeName","src":"3835:4:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15808,"mutability":"mutable","name":"filter_","nameLocation":"3868:7:74","nodeType":"VariableDeclaration","scope":15924,"src":"3853:22:74","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15807,"name":"bytes","nodeType":"ElementaryTypeName","src":"3853:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15810,"mutability":"mutable","name":"amount_","nameLocation":"3885:7:74","nodeType":"VariableDeclaration","scope":15924,"src":"3877:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15809,"name":"uint256","nodeType":"ElementaryTypeName","src":"3877:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3818:75:74"},"returnParameters":{"id":15817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15816,"mutability":"mutable","name":"bundleId","nameLocation":"3973:8:74","nodeType":"VariableDeclaration","scope":15924,"src":"3965:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15815,"name":"uint256","nodeType":"ElementaryTypeName","src":"3965:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3964:18:74"},"scope":16946,"src":"3803:1130:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4956],"body":{"id":15994,"nodeType":"Block","src":"5047:502:74","statements":[{"assignments":[15936],"declarations":[{"constant":false,"id":15936,"mutability":"mutable","name":"bundle","nameLocation":"5072:6:74","nodeType":"VariableDeclaration","scope":15994,"src":"5057:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":15935,"nodeType":"UserDefinedTypeName","pathNode":{"id":15934,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"5057:6:74"},"referencedDeclaration":4936,"src":"5057:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":15940,"initialValue":{"baseExpression":{"id":15937,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"5081:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":15939,"indexExpression":{"id":15938,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15926,"src":"5090:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5081:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5057:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15942,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5117:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"5117:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":15944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5136:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5117:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031313a42554e444c455f444f45535f4e4f545f4558495354","id":15946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5139:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf35f3e2266f9a8bf680e348616bdf722a2b950e229c31f4953b03b62eef75ef","typeString":"literal_string \"ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cf35f3e2266f9a8bf680e348616bdf722a2b950e229c31f4953b03b62eef75ef","typeString":"literal_string \"ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST\""}],"id":15941,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5109:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5109:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15948,"nodeType":"ExpressionStatement","src":"5109:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":15955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15950,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5195:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"5195:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":15952,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"5211:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":15953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"5211:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":15954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"5211:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"5195:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031323a42554e444c455f434c4f534544","id":15956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5239:29:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_51098105866c55020f052d2f0c7132465beb1923abe3fed4a93163d00ae443f5","typeString":"literal_string \"ERROR:BUC-012:BUNDLE_CLOSED\""},"value":"ERROR:BUC-012:BUNDLE_CLOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51098105866c55020f052d2f0c7132465beb1923abe3fed4a93163d00ae443f5","typeString":"literal_string \"ERROR:BUC-012:BUNDLE_CLOSED\""}],"id":15949,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5187:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5187:82:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15958,"nodeType":"ExpressionStatement","src":"5187:82:74"},{"expression":{"id":15963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15959,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5280:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"5280:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":15962,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15928,"src":"5298:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5280:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15964,"nodeType":"ExpressionStatement","src":"5280:24:74"},{"expression":{"id":15969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15965,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5314:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"5314:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":15968,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15928,"src":"5332:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5314:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15970,"nodeType":"ExpressionStatement","src":"5314:24:74"},{"expression":{"id":15976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":15971,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5348:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"5348:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":15974,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"5367:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5367:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5348:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15977,"nodeType":"ExpressionStatement","src":"5348:34:74"},{"assignments":[15979],"declarations":[{"constant":false,"id":15979,"mutability":"mutable","name":"capacityAmount","nameLocation":"5401:14:74","nodeType":"VariableDeclaration","scope":15994,"src":"5393:22:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15978,"name":"uint256","nodeType":"ElementaryTypeName","src":"5393:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15985,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":15980,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5418:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"5418:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":15982,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15936,"src":"5435:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":15983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"5435:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5418:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5393:62:74"},{"eventCall":{"arguments":[{"id":15987,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15926,"src":"5495:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":15988,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5505:10:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":15989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5505:12:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":15990,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15928,"src":"5519:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":15991,"name":"capacityAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15979,"src":"5527:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15986,"name":"LogBundleCapitalProvided","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"5470:24:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":15992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5470:72:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15993,"nodeType":"EmitStatement","src":"5465:77:74"}]},"functionSelector":"a65e2cfd","id":15995,"implemented":true,"kind":"function","modifiers":[{"id":15932,"modifierName":{"id":15931,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"5023:19:74"},"nodeType":"ModifierInvocation","src":"5023:19:74"}],"name":"fund","nameLocation":"4949:4:74","nodeType":"FunctionDefinition","overrides":{"id":15930,"nodeType":"OverrideSpecifier","overrides":[],"src":"5005:8:74"},"parameters":{"id":15929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15926,"mutability":"mutable","name":"bundleId","nameLocation":"4962:8:74","nodeType":"VariableDeclaration","scope":15995,"src":"4954:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15925,"name":"uint256","nodeType":"ElementaryTypeName","src":"4954:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15928,"mutability":"mutable","name":"amount","nameLocation":"4980:6:74","nodeType":"VariableDeclaration","scope":15995,"src":"4972:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15927,"name":"uint256","nodeType":"ElementaryTypeName","src":"4972:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4953:34:74"},"returnParameters":{"id":15933,"nodeType":"ParameterList","parameters":[],"src":"5047:0:74"},"scope":16946,"src":"4940:609:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4963],"body":{"id":16090,"nodeType":"Block","src":"5666:725:74","statements":[{"assignments":[16007],"declarations":[{"constant":false,"id":16007,"mutability":"mutable","name":"bundle","nameLocation":"5691:6:74","nodeType":"VariableDeclaration","scope":16090,"src":"5676:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16006,"nodeType":"UserDefinedTypeName","pathNode":{"id":16005,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"5676:6:74"},"referencedDeclaration":4936,"src":"5676:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16011,"initialValue":{"baseExpression":{"id":16008,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"5700:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16010,"indexExpression":{"id":16009,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15997,"src":"5709:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5700:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5676:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16013,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"5736:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16014,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"5736:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5755:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5736:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031333a42554e444c455f444f45535f4e4f545f4558495354","id":16017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5758:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_750d48e8d1549f6e00eaa45d8b819215fd3f4c5e8b847763cb675c2a72ed0664","typeString":"literal_string \"ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_750d48e8d1549f6e00eaa45d8b819215fd3f4c5e8b847763cb675c2a72ed0664","typeString":"literal_string \"ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST\""}],"id":16012,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5728:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5728:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16019,"nodeType":"ExpressionStatement","src":"5728:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16021,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"5827:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"5827:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16023,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"5845:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"5845:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":16025,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"5868:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5845:29:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5827:47:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16028,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"5891:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"5891:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5915:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5891:25:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16032,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"5920:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"5920:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16034,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"5938:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5920:24:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5891:53:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":16037,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5890:55:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5827:118:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031343a43415041434954595f4f525f42414c414e43455f544f4f5f4c4f57","id":16039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5959:43:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_21c208e0ee80cc3a94bf9c14b14ba802f5415c77d896f3678d2b2e4e18a9fdeb","typeString":"literal_string \"ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW\""},"value":"ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_21c208e0ee80cc3a94bf9c14b14ba802f5415c77d896f3678d2b2e4e18a9fdeb","typeString":"literal_string \"ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW\""}],"id":16020,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5806:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5806:206:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16041,"nodeType":"ExpressionStatement","src":"5806:206:74"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16042,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6027:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"6027:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16044,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"6045:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6027:24:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16059,"nodeType":"Block","src":"6122:23:74","statements":[{"expression":{"id":16057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16053,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6124:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"6124:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":16056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6141:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6124:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16058,"nodeType":"ExpressionStatement","src":"6124:18:74"}]},"id":16060,"nodeType":"IfStatement","src":"6023:122:74","trueBody":{"id":16052,"nodeType":"Block","src":"6053:29:74","statements":[{"expression":{"id":16050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16046,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6055:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"6055:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16049,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"6073:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6055:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16051,"nodeType":"ExpressionStatement","src":"6055:24:74"}]}},{"expression":{"id":16065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16061,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6155:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"6155:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16064,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"6173:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6155:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16066,"nodeType":"ExpressionStatement","src":"6155:24:74"},{"expression":{"id":16072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16067,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6189:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"6189:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16070,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"6208:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6208:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6189:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16073,"nodeType":"ExpressionStatement","src":"6189:34:74"},{"assignments":[16075],"declarations":[{"constant":false,"id":16075,"mutability":"mutable","name":"capacityAmount","nameLocation":"6242:14:74","nodeType":"VariableDeclaration","scope":16090,"src":"6234:22:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16074,"name":"uint256","nodeType":"ElementaryTypeName","src":"6234:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16081,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16076,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6259:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"6259:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16078,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16007,"src":"6276:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"6276:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6259:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6234:62:74"},{"eventCall":{"arguments":[{"id":16083,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15997,"src":"6337:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":16084,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"6347:10:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":16085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6347:12:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16086,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15999,"src":"6361:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16087,"name":"capacityAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16075,"src":"6369:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16082,"name":"LogBundleCapitalWithdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"6311:25:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":16088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6311:73:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16089,"nodeType":"EmitStatement","src":"6306:78:74"}]},"functionSelector":"c397ae39","id":16091,"implemented":true,"kind":"function","modifiers":[{"id":16003,"modifierName":{"id":16002,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"5642:19:74"},"nodeType":"ModifierInvocation","src":"5642:19:74"}],"name":"defund","nameLocation":"5565:6:74","nodeType":"FunctionDefinition","overrides":{"id":16001,"nodeType":"OverrideSpecifier","overrides":[],"src":"5624:8:74"},"parameters":{"id":16000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15997,"mutability":"mutable","name":"bundleId","nameLocation":"5580:8:74","nodeType":"VariableDeclaration","scope":16091,"src":"5572:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15996,"name":"uint256","nodeType":"ElementaryTypeName","src":"5572:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15999,"mutability":"mutable","name":"amount","nameLocation":"5598:6:74","nodeType":"VariableDeclaration","scope":16091,"src":"5590:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15998,"name":"uint256","nodeType":"ElementaryTypeName","src":"5590:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5571:34:74"},"returnParameters":{"id":16004,"nodeType":"ParameterList","parameters":[],"src":"5666:0:74"},"scope":16946,"src":"5556:835:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4968],"body":{"id":16105,"nodeType":"Block","src":"6487:59:74","statements":[{"expression":{"arguments":[{"id":16100,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16093,"src":"6510:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16101,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"6520:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Locked","nodeType":"MemberAccess","referencedDeclaration":4911,"src":"6520:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16099,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16844,"src":"6497:12:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState)"}},"id":16103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6497:42:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16104,"nodeType":"ExpressionStatement","src":"6497:42:74"}]},"functionSelector":"dd467064","id":16106,"implemented":true,"kind":"function","modifiers":[{"id":16097,"modifierName":{"id":16096,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"6463:19:74"},"nodeType":"ModifierInvocation","src":"6463:19:74"}],"name":"lock","nameLocation":"6406:4:74","nodeType":"FunctionDefinition","overrides":{"id":16095,"nodeType":"OverrideSpecifier","overrides":[],"src":"6446:8:74"},"parameters":{"id":16094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16093,"mutability":"mutable","name":"bundleId","nameLocation":"6419:8:74","nodeType":"VariableDeclaration","scope":16106,"src":"6411:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16092,"name":"uint256","nodeType":"ElementaryTypeName","src":"6411:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6410:18:74"},"returnParameters":{"id":16098,"nodeType":"ParameterList","parameters":[],"src":"6487:0:74"},"scope":16946,"src":"6397:149:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4973],"body":{"id":16120,"nodeType":"Block","src":"6644:59:74","statements":[{"expression":{"arguments":[{"id":16115,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16108,"src":"6667:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16116,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"6677:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"6677:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16114,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16844,"src":"6654:12:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState)"}},"id":16118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6654:42:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16119,"nodeType":"ExpressionStatement","src":"6654:42:74"}]},"functionSelector":"6198e339","id":16121,"implemented":true,"kind":"function","modifiers":[{"id":16112,"modifierName":{"id":16111,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"6620:19:74"},"nodeType":"ModifierInvocation","src":"6620:19:74"}],"name":"unlock","nameLocation":"6561:6:74","nodeType":"FunctionDefinition","overrides":{"id":16110,"nodeType":"OverrideSpecifier","overrides":[],"src":"6603:8:74"},"parameters":{"id":16109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16108,"mutability":"mutable","name":"bundleId","nameLocation":"6576:8:74","nodeType":"VariableDeclaration","scope":16121,"src":"6568:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16107,"name":"uint256","nodeType":"ElementaryTypeName","src":"6568:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6567:18:74"},"returnParameters":{"id":16113,"nodeType":"ParameterList","parameters":[],"src":"6644:0:74"},"scope":16946,"src":"6552:151:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4978],"body":{"id":16144,"nodeType":"Block","src":"6800:153:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16130,"name":"_activePolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15715,"src":"6818:15:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16132,"indexExpression":{"id":16131,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"6834:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6818:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6847:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6818:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031353a42554e444c455f574954485f4143544956455f504f4c4943494553","id":16135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6850:43:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfee2d08a237128ef26128bb3ed2c011ce3e51b3f04253c27af0b6459a36cf46","typeString":"literal_string \"ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES\""},"value":"ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dfee2d08a237128ef26128bb3ed2c011ce3e51b3f04253c27af0b6459a36cf46","typeString":"literal_string \"ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES\""}],"id":16129,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6810:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6810:84:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16137,"nodeType":"ExpressionStatement","src":"6810:84:74"},{"expression":{"arguments":[{"id":16139,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16123,"src":"6917:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16140,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"6927:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"6927:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16138,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16844,"src":"6904:12:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState)"}},"id":16142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6904:42:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16143,"nodeType":"ExpressionStatement","src":"6904:42:74"}]},"functionSelector":"0aebeb4e","id":16145,"implemented":true,"kind":"function","modifiers":[{"id":16127,"modifierName":{"id":16126,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"6776:19:74"},"nodeType":"ModifierInvocation","src":"6776:19:74"}],"name":"close","nameLocation":"6718:5:74","nodeType":"FunctionDefinition","overrides":{"id":16125,"nodeType":"OverrideSpecifier","overrides":[],"src":"6759:8:74"},"parameters":{"id":16124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16123,"mutability":"mutable","name":"bundleId","nameLocation":"6732:8:74","nodeType":"VariableDeclaration","scope":16145,"src":"6724:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16122,"name":"uint256","nodeType":"ElementaryTypeName","src":"6724:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6723:18:74"},"returnParameters":{"id":16128,"nodeType":"ParameterList","parameters":[],"src":"6800:0:74"},"scope":16946,"src":"6709:244:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4983],"body":{"id":16196,"nodeType":"Block","src":"7053:441:74","statements":[{"assignments":[16155],"declarations":[{"constant":false,"id":16155,"mutability":"mutable","name":"bundle","nameLocation":"7078:6:74","nodeType":"VariableDeclaration","scope":16196,"src":"7063:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16154,"nodeType":"UserDefinedTypeName","pathNode":{"id":16153,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"7063:6:74"},"referencedDeclaration":4936,"src":"7063:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16159,"initialValue":{"baseExpression":{"id":16156,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"7087:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16158,"indexExpression":{"id":16157,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16147,"src":"7096:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7087:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7063:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16161,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"7123:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"7123:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16163,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7139:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"7139:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"7123:34:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031363a42554e444c455f4e4f545f434c4f534544","id":16166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7159:33:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_e68c04cdb41f689d8d2e6a5d0c4084a8393fecccce8f7b586a8a6e10213866a8","typeString":"literal_string \"ERROR:BUC-016:BUNDLE_NOT_CLOSED\""},"value":"ERROR:BUC-016:BUNDLE_NOT_CLOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e68c04cdb41f689d8d2e6a5d0c4084a8393fecccce8f7b586a8a6e10213866a8","typeString":"literal_string \"ERROR:BUC-016:BUNDLE_NOT_CLOSED\""}],"id":16160,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7115:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7115:78:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16168,"nodeType":"ExpressionStatement","src":"7115:78:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16170,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"7211:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"7211:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7229:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7211:19:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031373a42554e444c455f4841535f42414c414e4345","id":16174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7232:34:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e3999515467d51db7d3efc320b4632f965fd637f4434d0cd56865c0258932e1","typeString":"literal_string \"ERROR:BUC-017:BUNDLE_HAS_BALANCE\""},"value":"ERROR:BUC-017:BUNDLE_HAS_BALANCE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4e3999515467d51db7d3efc320b4632f965fd637f4434d0cd56865c0258932e1","typeString":"literal_string \"ERROR:BUC-017:BUNDLE_HAS_BALANCE\""}],"id":16169,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7203:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7203:64:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16176,"nodeType":"ExpressionStatement","src":"7203:64:74"},{"expression":{"arguments":[{"id":16180,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16147,"src":"7363:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16177,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"7351:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"id":16179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":28687,"src":"7351:11:74","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":16181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7351:21:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16182,"nodeType":"ExpressionStatement","src":"7351:21:74"},{"expression":{"id":16188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16183,"name":"_unburntBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"7382:28:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16186,"indexExpression":{"expression":{"id":16184,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"7411:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"7411:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7382:47:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":16187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7433:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7382:52:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16189,"nodeType":"ExpressionStatement","src":"7382:52:74"},{"expression":{"arguments":[{"id":16191,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16147,"src":"7458:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":16192,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7468:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"7468:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16190,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16844,"src":"7445:12:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState)"}},"id":16194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7445:42:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16195,"nodeType":"ExpressionStatement","src":"7445:42:74"}]},"functionSelector":"42966c68","id":16197,"implemented":true,"kind":"function","modifiers":[{"id":16151,"modifierName":{"id":16150,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"7029:19:74"},"nodeType":"ModifierInvocation","src":"7029:19:74"}],"name":"burn","nameLocation":"6968:4:74","nodeType":"FunctionDefinition","overrides":{"id":16149,"nodeType":"OverrideSpecifier","overrides":[],"src":"7012:8:74"},"parameters":{"id":16148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16147,"mutability":"mutable","name":"bundleId","nameLocation":"6981:8:74","nodeType":"VariableDeclaration","scope":16197,"src":"6973:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16146,"name":"uint256","nodeType":"ElementaryTypeName","src":"6973:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6972:18:74"},"returnParameters":{"id":16152,"nodeType":"ParameterList","parameters":[],"src":"7053:0:74"},"scope":16946,"src":"6959:535:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[4992],"body":{"id":16321,"nodeType":"Block","src":"7641:1090:74","statements":[{"assignments":[16213],"declarations":[{"constant":false,"id":16213,"mutability":"mutable","name":"metadata","nameLocation":"7675:8:74","nodeType":"VariableDeclaration","scope":16321,"src":"7651:32:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":16212,"nodeType":"UserDefinedTypeName","pathNode":{"id":16211,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"7651:16:74"},"referencedDeclaration":5248,"src":"7651:16:74","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":16218,"initialValue":{"arguments":[{"id":16216,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16201,"src":"7706:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16214,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"7686:7:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":16215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"7686:19:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":16217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7686:30:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"7651:65:74"},{"assignments":[16221],"declarations":[{"constant":false,"id":16221,"mutability":"mutable","name":"bundle","nameLocation":"7741:6:74","nodeType":"VariableDeclaration","scope":16321,"src":"7726:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16220,"nodeType":"UserDefinedTypeName","pathNode":{"id":16219,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"7726:6:74"},"referencedDeclaration":4936,"src":"7726:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16225,"initialValue":{"baseExpression":{"id":16222,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"7750:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16224,"indexExpression":{"id":16223,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"7759:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7750:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7726:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16227,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"7786:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"7786:17:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"expression":{"id":16232,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16213,"src":"7850:8:74","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":16233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"7850:18:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":16229,"name":"_getPoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16812,"src":"7807:18:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_PoolController_$21207_$","typeString":"function () view returns (contract PoolController)"}},"id":16230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7807:20:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":16231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskPoolForProduct","nodeType":"MemberAccess","referencedDeclaration":21014,"src":"7807:42:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":16234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7807:62:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7786:83:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3031393a42554e444c455f4e4f545f494e5f5249534b504f4f4c","id":16236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7871:38:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_7856d8fb31306adef57d12943b55496b08db0cef49b61216ad67a8afc716e628","typeString":"literal_string \"ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL\""},"value":"ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7856d8fb31306adef57d12943b55496b08db0cef49b61216ad67a8afc716e628","typeString":"literal_string \"ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL\""}],"id":16226,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7778:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7778:132:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16238,"nodeType":"ExpressionStatement","src":"7778:132:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16240,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"7928:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16241,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"7928:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7947:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7928:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3032303a42554e444c455f444f45535f4e4f545f4558495354","id":16244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7950:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_23c15b355ac659e6efa849a6211bec479f57808999aa963c7b0feaa5cc832745","typeString":"literal_string \"ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_23c15b355ac659e6efa849a6211bec479f57808999aa963c7b0feaa5cc832745","typeString":"literal_string \"ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST\""}],"id":16239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7920:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7920:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16246,"nodeType":"ExpressionStatement","src":"7920:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16248,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8006:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"8006:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":16250,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"8022:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":16251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"8022:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"8022:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"8006:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3032313a42554e444c455f4e4f545f414354495645","id":16254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8050:33:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_ea3e85c9558b3cb99a10a739823ff71f730cd0abf0b8a1db4cbcca809539be50","typeString":"literal_string \"ERROR:BUC-021:BUNDLE_NOT_ACTIVE\""},"value":"ERROR:BUC-021:BUNDLE_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea3e85c9558b3cb99a10a739823ff71f730cd0abf0b8a1db4cbcca809539be50","typeString":"literal_string \"ERROR:BUC-021:BUNDLE_NOT_ACTIVE\""}],"id":16247,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7998:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7998:86:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16256,"nodeType":"ExpressionStatement","src":"7998:86:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16258,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8110:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"8110:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16260,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8128:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"8128:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":16262,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"8151:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8128:29:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8110:47:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3032323a43415041434954595f544f4f5f4c4f57","id":16265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8159:32:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f0e986b57b056403cfa995705a568caff60bf8952514def6e4e10f0b8be0363","typeString":"literal_string \"ERROR:BUC-022:CAPACITY_TOO_LOW\""},"value":"ERROR:BUC-022:CAPACITY_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1f0e986b57b056403cfa995705a568caff60bf8952514def6e4e10f0b8be0363","typeString":"literal_string \"ERROR:BUC-022:CAPACITY_TOO_LOW\""}],"id":16257,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8102:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8102:90:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16267,"nodeType":"ExpressionStatement","src":"8102:90:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":16269,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"8264:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16271,"indexExpression":{"id":16270,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"8286:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8264:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16273,"indexExpression":{"id":16272,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16201,"src":"8296:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8264:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":16274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8310:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8264:47:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3032333a494e4352454d454e54414c5f434f4c4c41544552414c495a4154494f4e5f4e4f545f494d504c454d454e544544","id":16276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8313:61:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f7e878f103e4e81471a67c70bb5acfc513b47b809c34428480adee650fd472b","typeString":"literal_string \"ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED\""},"value":"ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f7e878f103e4e81471a67c70bb5acfc513b47b809c34428480adee650fd472b","typeString":"literal_string \"ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED\""}],"id":16268,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8256:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8256:119:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16278,"nodeType":"ExpressionStatement","src":"8256:119:74"},{"expression":{"id":16283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16279,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8386:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"8386:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":16282,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"8410:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8386:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16284,"nodeType":"ExpressionStatement","src":"8386:30:74"},{"expression":{"id":16290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16285,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8426:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"8426:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16288,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"8445:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8445:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8426:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16291,"nodeType":"ExpressionStatement","src":"8426:34:74"},{"expression":{"id":16296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16292,"name":"_activePolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15715,"src":"8471:15:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16294,"indexExpression":{"id":16293,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"8487:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8471:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":16295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8500:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8471:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16297,"nodeType":"ExpressionStatement","src":"8471:30:74"},{"expression":{"id":16304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":16298,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"8511:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16301,"indexExpression":{"id":16299,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"8533:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8511:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16302,"indexExpression":{"id":16300,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16201,"src":"8543:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8511:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16303,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"8556:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8511:51:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16305,"nodeType":"ExpressionStatement","src":"8511:51:74"},{"assignments":[16307],"declarations":[{"constant":false,"id":16307,"mutability":"mutable","name":"capacityAmount","nameLocation":"8581:14:74","nodeType":"VariableDeclaration","scope":16321,"src":"8573:22:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16306,"name":"uint256","nodeType":"ElementaryTypeName","src":"8573:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16313,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16308,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8598:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"8598:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16310,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16221,"src":"8615:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"8615:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8598:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8573:62:74"},{"eventCall":{"arguments":[{"id":16315,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"8680:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16316,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16201,"src":"8690:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16317,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16203,"src":"8701:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16318,"name":"capacityAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16307,"src":"8709:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16314,"name":"LogBundlePolicyCollateralized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"8650:29:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256,uint256)"}},"id":16319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8650:74:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16320,"nodeType":"EmitStatement","src":"8645:79:74"}]},"functionSelector":"4d03f9b7","id":16322,"implemented":true,"kind":"function","modifiers":[{"id":16207,"modifierName":{"id":16206,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"7617:19:74"},"nodeType":"ModifierInvocation","src":"7617:19:74"}],"name":"collateralizePolicy","nameLocation":"7509:19:74","nodeType":"FunctionDefinition","overrides":{"id":16205,"nodeType":"OverrideSpecifier","overrides":[],"src":"7599:8:74"},"parameters":{"id":16204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16199,"mutability":"mutable","name":"bundleId","nameLocation":"7537:8:74","nodeType":"VariableDeclaration","scope":16322,"src":"7529:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16198,"name":"uint256","nodeType":"ElementaryTypeName","src":"7529:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16201,"mutability":"mutable","name":"processId","nameLocation":"7555:9:74","nodeType":"VariableDeclaration","scope":16322,"src":"7547:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7547:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16203,"mutability":"mutable","name":"amount","nameLocation":"7574:6:74","nodeType":"VariableDeclaration","scope":16322,"src":"7566:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16202,"name":"uint256","nodeType":"ElementaryTypeName","src":"7566:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7528:53:74"},"returnParameters":{"id":16208,"nodeType":"ParameterList","parameters":[],"src":"7641:0:74"},"scope":16946,"src":"7500:1231:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5001],"body":{"id":16385,"nodeType":"Block","src":"8910:451:74","statements":[{"assignments":[16341],"declarations":[{"constant":false,"id":16341,"mutability":"mutable","name":"policy","nameLocation":"8942:6:74","nodeType":"VariableDeclaration","scope":16385,"src":"8920:28:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":16340,"nodeType":"UserDefinedTypeName","pathNode":{"id":16339,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"8920:14:74"},"referencedDeclaration":5282,"src":"8920:14:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":16346,"initialValue":{"arguments":[{"id":16344,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16326,"src":"8969:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16342,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"8951:7:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":16343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"8951:17:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":16345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8951:28:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"8920:59:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":16353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16348,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16341,"src":"9010:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":16349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"9010:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":16350,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"9026:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":16351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"9026:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":16352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"9026:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"9010:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3033303a504f4c4943595f53544154455f494e56414c4944","id":16354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9066:36:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_ac05a7c756dadc02ca183d94e2630362537ab1a69f8694bcb1ec098e9c430dea","typeString":"literal_string \"ERROR:POL-030:POLICY_STATE_INVALID\""},"value":"ERROR:POL-030:POLICY_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ac05a7c756dadc02ca183d94e2630362537ab1a69f8694bcb1ec098e9c430dea","typeString":"literal_string \"ERROR:POL-030:POLICY_STATE_INVALID\""}],"id":16347,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8989:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8989:123:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16356,"nodeType":"ExpressionStatement","src":"8989:123:74"},{"assignments":[16359],"declarations":[{"constant":false,"id":16359,"mutability":"mutable","name":"bundle","nameLocation":"9138:6:74","nodeType":"VariableDeclaration","scope":16385,"src":"9123:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16358,"nodeType":"UserDefinedTypeName","pathNode":{"id":16357,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"9123:6:74"},"referencedDeclaration":4936,"src":"9123:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16363,"initialValue":{"baseExpression":{"id":16360,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"9147:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16362,"indexExpression":{"id":16361,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16324,"src":"9156:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9147:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9123:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16365,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16359,"src":"9183:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"9183:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9202:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9183:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3033313a42554e444c455f444f45535f4e4f545f4558495354","id":16369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9205:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d1cfb4ee24f94379bee7fbfee2e22d90b6f0f63a5a71e7d9fe32723d1e19a2b","typeString":"literal_string \"ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9d1cfb4ee24f94379bee7fbfee2e22d90b6f0f63a5a71e7d9fe32723d1e19a2b","typeString":"literal_string \"ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST\""}],"id":16364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9175:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9175:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16371,"nodeType":"ExpressionStatement","src":"9175:68:74"},{"expression":{"id":16376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16372,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16359,"src":"9262:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"9262:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":16375,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16328,"src":"9280:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9262:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16377,"nodeType":"ExpressionStatement","src":"9262:24:74"},{"expression":{"id":16383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16378,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16359,"src":"9296:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"9296:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16381,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9315:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9315:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9296:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16384,"nodeType":"ExpressionStatement","src":"9296:34:74"}]},"functionSelector":"b7267420","id":16386,"implemented":true,"kind":"function","modifiers":[{"id":16332,"modifierName":{"id":16331,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"8849:19:74"},"nodeType":"ModifierInvocation","src":"8849:19:74"},{"arguments":[{"id":16334,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16324,"src":"8896:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16335,"modifierName":{"id":16333,"name":"onlyFundableBundle","nodeType":"IdentifierPath","referencedDeclaration":15779,"src":"8877:18:74"},"nodeType":"ModifierInvocation","src":"8877:28:74"}],"name":"processPremium","nameLocation":"8747:14:74","nodeType":"FunctionDefinition","overrides":{"id":16330,"nodeType":"OverrideSpecifier","overrides":[],"src":"8832:8:74"},"parameters":{"id":16329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16324,"mutability":"mutable","name":"bundleId","nameLocation":"8770:8:74","nodeType":"VariableDeclaration","scope":16386,"src":"8762:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16323,"name":"uint256","nodeType":"ElementaryTypeName","src":"8762:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16326,"mutability":"mutable","name":"processId","nameLocation":"8788:9:74","nodeType":"VariableDeclaration","scope":16386,"src":"8780:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8780:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16328,"mutability":"mutable","name":"amount","nameLocation":"8807:6:74","nodeType":"VariableDeclaration","scope":16386,"src":"8799:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16327,"name":"uint256","nodeType":"ElementaryTypeName","src":"8799:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8761:53:74"},"returnParameters":{"id":16336,"nodeType":"ParameterList","parameters":[],"src":"8910:0:74"},"scope":16946,"src":"8738:623:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5010],"body":{"id":16533,"nodeType":"Block","src":"9504:1434:74","statements":[{"assignments":[16402],"declarations":[{"constant":false,"id":16402,"mutability":"mutable","name":"policy","nameLocation":"9536:6:74","nodeType":"VariableDeclaration","scope":16533,"src":"9514:28:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":16401,"nodeType":"UserDefinedTypeName","pathNode":{"id":16400,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"9514:14:74"},"referencedDeclaration":5282,"src":"9514:14:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":16407,"initialValue":{"arguments":[{"id":16405,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9563:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16403,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"9545:7:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":16404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"9545:17:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":16406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9545:28:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"9514:59:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":16414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16409,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16402,"src":"9604:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":16410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"9604:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":16411,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"9620:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":16412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"9620:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":16413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"9620:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"9604:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034303a504f4c4943595f53544154455f494e56414c4944","id":16415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9660:36:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c08561cf5ac792dc91430b2a3972e02263132349f58eb870b4f81b5de7584fa","typeString":"literal_string \"ERROR:POL-040:POLICY_STATE_INVALID\""},"value":"ERROR:POL-040:POLICY_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7c08561cf5ac792dc91430b2a3972e02263132349f58eb870b4f81b5de7584fa","typeString":"literal_string \"ERROR:POL-040:POLICY_STATE_INVALID\""}],"id":16408,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9583:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9583:123:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16417,"nodeType":"ExpressionStatement","src":"9583:123:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16419,"name":"_activePolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15715,"src":"9811:15:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16421,"indexExpression":{"id":16420,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"9827:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9811:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9839:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9811:29:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034313a4e4f5f4143544956455f504f4c49434945535f464f525f42554e444c45","id":16424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9842:45:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_b68fc49ffba85900fde950c14ac8951edad3f3436a673f461dc8a21fb7f4b182","typeString":"literal_string \"ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE\""},"value":"ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b68fc49ffba85900fde950c14ac8951edad3f3436a673f461dc8a21fb7f4b182","typeString":"literal_string \"ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE\""}],"id":16418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9803:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9803:85:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16426,"nodeType":"ExpressionStatement","src":"9803:85:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":16428,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"9906:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16430,"indexExpression":{"id":16429,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"9928:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9906:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16432,"indexExpression":{"id":16431,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9938:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9906:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16433,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"9952:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9906:52:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034323a434f4c4c41544552414c5f494e53554646494349454e545f464f525f504f4c494359","id":16435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9960:50:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_34c2d809984edcd3108df93e41438c107c75d7c168211713e77a185c157022f0","typeString":"literal_string \"ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY\""},"value":"ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_34c2d809984edcd3108df93e41438c107c75d7c168211713e77a185c157022f0","typeString":"literal_string \"ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY\""}],"id":16427,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9898:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9898:113:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16437,"nodeType":"ExpressionStatement","src":"9898:113:74"},{"assignments":[16440],"declarations":[{"constant":false,"id":16440,"mutability":"mutable","name":"bundle","nameLocation":"10094:6:74","nodeType":"VariableDeclaration","scope":16533,"src":"10079:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16439,"nodeType":"UserDefinedTypeName","pathNode":{"id":16438,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"10079:6:74"},"referencedDeclaration":4936,"src":"10079:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16444,"initialValue":{"baseExpression":{"id":16441,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"10103:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16443,"indexExpression":{"id":16442,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"10112:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10103:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10079:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16446,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10139:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"10139:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10158:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10139:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034333a42554e444c455f444f45535f4e4f545f4558495354","id":16450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10161:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_677000cd6030ee367c696ca46253760a7b00f48b537add2d4517030ec068929f","typeString":"literal_string \"ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_677000cd6030ee367c696ca46253760a7b00f48b537add2d4517030ec068929f","typeString":"literal_string \"ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST\""}],"id":16445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10131:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10131:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16452,"nodeType":"ExpressionStatement","src":"10131:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16454,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10230:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"10230:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":16456,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"10246:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":16457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"10246:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"10246:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"10230:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16460,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10288:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"10288:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":16462,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"10304:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":16463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"10304:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Locked","nodeType":"MemberAccess","referencedDeclaration":4911,"src":"10304:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"10288:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10230:100:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034343a42554e444c455f53544154455f494e56414c4944","id":16467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10345:36:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dddbb0de5d7844609928e43cf681e6d3461371d25dd2fe6e10bde5404e8a51c","typeString":"literal_string \"ERROR:BUC-044:BUNDLE_STATE_INVALID\""},"value":"ERROR:BUC-044:BUNDLE_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dddbb0de5d7844609928e43cf681e6d3461371d25dd2fe6e10bde5404e8a51c","typeString":"literal_string \"ERROR:BUC-044:BUNDLE_STATE_INVALID\""}],"id":16453,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10209:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10209:173:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16469,"nodeType":"ExpressionStatement","src":"10209:173:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16471,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10400:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"10400:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16473,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10418:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10400:24:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034353a4341504954414c5f544f4f5f4c4f57","id":16475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10426:31:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_03e06f22613c7e93a2c0293d2431263b515ac3c8de79433e162399c9d978c6da","typeString":"literal_string \"ERROR:BUC-045:CAPITAL_TOO_LOW\""},"value":"ERROR:BUC-045:CAPITAL_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_03e06f22613c7e93a2c0293d2431263b515ac3c8de79433e162399c9d978c6da","typeString":"literal_string \"ERROR:BUC-045:CAPITAL_TOO_LOW\""}],"id":16470,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10392:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10392:66:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16477,"nodeType":"ExpressionStatement","src":"10392:66:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16479,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10476:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"10476:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16481,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10500:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10476:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034363a4c4f434b45445f4341504954414c5f544f4f5f4c4f57","id":16483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10508:38:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_476d68cd1c40602068b3ee7843f94973d1216d46b2eed8d0cd41db8cb728d4b0","typeString":"literal_string \"ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW\""},"value":"ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_476d68cd1c40602068b3ee7843f94973d1216d46b2eed8d0cd41db8cb728d4b0","typeString":"literal_string \"ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW\""}],"id":16478,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10468:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10468:79:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16485,"nodeType":"ExpressionStatement","src":"10468:79:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16487,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10565:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"10565:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16489,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10583:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10565:24:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3034373a42414c414e43455f544f4f5f4c4f57","id":16491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10591:31:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_2e1494ff589237f5b43eee9b5f76fa574bdf53755720949c3bbf80d7f7047647","typeString":"literal_string \"ERROR:BUC-047:BALANCE_TOO_LOW\""},"value":"ERROR:BUC-047:BALANCE_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2e1494ff589237f5b43eee9b5f76fa574bdf53755720949c3bbf80d7f7047647","typeString":"literal_string \"ERROR:BUC-047:BALANCE_TOO_LOW\""}],"id":16486,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10557:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10557:66:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16493,"nodeType":"ExpressionStatement","src":"10557:66:74"},{"expression":{"id":16500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":16494,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"10634:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16497,"indexExpression":{"id":16495,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"10656:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10634:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16498,"indexExpression":{"id":16496,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"10666:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10634:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16499,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10680:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10634:52:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16501,"nodeType":"ExpressionStatement","src":"10634:52:74"},{"expression":{"id":16506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16502,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10696:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"10696:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16505,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10714:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10696:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16507,"nodeType":"ExpressionStatement","src":"10696:24:74"},{"expression":{"id":16512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16508,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10730:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"10730:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16511,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10754:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10730:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16513,"nodeType":"ExpressionStatement","src":"10730:30:74"},{"expression":{"id":16518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16514,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10770:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"10770:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16517,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10788:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10770:24:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16519,"nodeType":"ExpressionStatement","src":"10770:24:74"},{"expression":{"id":16525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16520,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16440,"src":"10804:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"10804:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16523,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"10823:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10823:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10804:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16526,"nodeType":"ExpressionStatement","src":"10804:34:74"},{"eventCall":{"arguments":[{"id":16528,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"10903:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16529,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"10913:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16530,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16392,"src":"10924:6:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16527,"name":"LogBundlePayoutProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4899,"src":"10878:24:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256)"}},"id":16531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10878:53:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16532,"nodeType":"EmitStatement","src":"10873:58:74"}]},"functionSelector":"b299cc26","id":16534,"implemented":true,"kind":"function","modifiers":[{"id":16396,"modifierName":{"id":16395,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"9480:19:74"},"nodeType":"ModifierInvocation","src":"9480:19:74"}],"name":"processPayout","nameLocation":"9377:13:74","nodeType":"FunctionDefinition","overrides":{"id":16394,"nodeType":"OverrideSpecifier","overrides":[],"src":"9462:8:74"},"parameters":{"id":16393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16388,"mutability":"mutable","name":"bundleId","nameLocation":"9399:8:74","nodeType":"VariableDeclaration","scope":16534,"src":"9391:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16387,"name":"uint256","nodeType":"ElementaryTypeName","src":"9391:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16390,"mutability":"mutable","name":"processId","nameLocation":"9417:9:74","nodeType":"VariableDeclaration","scope":16534,"src":"9409:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9409:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":16392,"mutability":"mutable","name":"amount","nameLocation":"9436:6:74","nodeType":"VariableDeclaration","scope":16534,"src":"9428:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16391,"name":"uint256","nodeType":"ElementaryTypeName","src":"9428:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9390:53:74"},"returnParameters":{"id":16397,"nodeType":"ParameterList","parameters":[],"src":"9504:0:74"},"scope":16946,"src":"9368:1570:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5019],"body":{"id":16647,"nodeType":"Block","src":"11116:1234:74","statements":[{"assignments":[16550],"declarations":[{"constant":false,"id":16550,"mutability":"mutable","name":"policy","nameLocation":"11148:6:74","nodeType":"VariableDeclaration","scope":16647,"src":"11126:28:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":16549,"nodeType":"UserDefinedTypeName","pathNode":{"id":16548,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"11126:14:74"},"referencedDeclaration":5282,"src":"11126:14:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":16555,"initialValue":{"arguments":[{"id":16553,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16538,"src":"11175:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16551,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15703,"src":"11157:7:74","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":16552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"11157:17:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":16554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11157:28:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"11126:59:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":16562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16557,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16550,"src":"11216:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":16558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"11216:12:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":16559,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"11232:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":16560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"11232:19:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":16561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"11232:26:74","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"11216:42:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3035303a504f4c4943595f53544154455f494e56414c4944","id":16563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11272:36:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_d17247b62deb77899a03f5965413c2eceeaf10a19dd096fa96404e4c4e56e423","typeString":"literal_string \"ERROR:POL-050:POLICY_STATE_INVALID\""},"value":"ERROR:POL-050:POLICY_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d17247b62deb77899a03f5965413c2eceeaf10a19dd096fa96404e4c4e56e423","typeString":"literal_string \"ERROR:POL-050:POLICY_STATE_INVALID\""}],"id":16556,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11195:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11195:123:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16565,"nodeType":"ExpressionStatement","src":"11195:123:74"},{"assignments":[16568],"declarations":[{"constant":false,"id":16568,"mutability":"mutable","name":"bundle","nameLocation":"11401:6:74","nodeType":"VariableDeclaration","scope":16647,"src":"11386:21:74","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16567,"nodeType":"UserDefinedTypeName","pathNode":{"id":16566,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"11386:6:74"},"referencedDeclaration":4936,"src":"11386:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16572,"initialValue":{"baseExpression":{"id":16569,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"11410:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16571,"indexExpression":{"id":16570,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"11419:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11410:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11386:42:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16574,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"11446:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"11446:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11465:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11446:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3035313a42554e444c455f444f45535f4e4f545f4558495354","id":16578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11468:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c8d28aba0b55c77dc14995621b19dd76d0dd4fc213e18d9e4f16eec0d3302e7","typeString":"literal_string \"ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4c8d28aba0b55c77dc14995621b19dd76d0dd4fc213e18d9e4f16eec0d3302e7","typeString":"literal_string \"ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST\""}],"id":16573,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11438:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11438:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16580,"nodeType":"ExpressionStatement","src":"11438:68:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":16582,"name":"_activePolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15715,"src":"11524:15:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16584,"indexExpression":{"id":16583,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"11540:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11524:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11552:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11524:29:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3035323a4e4f5f4143544956455f504f4c49434945535f464f525f42554e444c45","id":16587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11555:45:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d874023565b14265edd0c1a472831bbc0639816bd2e3c506af5ca79b37f4994","typeString":"literal_string \"ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE\""},"value":"ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8d874023565b14265edd0c1a472831bbc0639816bd2e3c506af5ca79b37f4994","typeString":"literal_string \"ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE\""}],"id":16581,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11516:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11516:85:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16589,"nodeType":"ExpressionStatement","src":"11516:85:74"},{"assignments":[16591],"declarations":[{"constant":false,"id":16591,"mutability":"mutable","name":"lockedForPolicyAmount","nameLocation":"11620:21:74","nodeType":"VariableDeclaration","scope":16647,"src":"11612:29:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16590,"name":"uint256","nodeType":"ElementaryTypeName","src":"11612:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16597,"initialValue":{"baseExpression":{"baseExpression":{"id":16592,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"11644:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16594,"indexExpression":{"id":16593,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"11666:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11644:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16596,"indexExpression":{"id":16595,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16538,"src":"11676:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11644:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11612:74:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16599,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"11760:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"11760:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":16601,"name":"lockedForPolicyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16591,"src":"11784:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11760:45:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"50414e49433a4255432d3035333a554e4c4f434b5f4341504954414c5f544f4f5f424947","id":16603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11819:38:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_77814e7a28acd311f6561f4571dfa56fd4af89762a0ef5863e6c33e0835c7391","typeString":"literal_string \"PANIC:BUC-053:UNLOCK_CAPITAL_TOO_BIG\""},"value":"PANIC:BUC-053:UNLOCK_CAPITAL_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_77814e7a28acd311f6561f4571dfa56fd4af89762a0ef5863e6c33e0835c7391","typeString":"literal_string \"PANIC:BUC-053:UNLOCK_CAPITAL_TOO_BIG\""}],"id":16598,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11739:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11739:128:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16605,"nodeType":"ExpressionStatement","src":"11739:128:74"},{"expression":{"id":16610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":16606,"name":"_activePolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15715,"src":"11926:15:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16608,"indexExpression":{"id":16607,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"11942:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11926:25:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":16609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11955:1:74","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11926:30:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16611,"nodeType":"ExpressionStatement","src":"11926:30:74"},{"expression":{"id":16617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11966:49:74","subExpression":{"baseExpression":{"baseExpression":{"id":16612,"name":"_valueLockedPerPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15721,"src":"11973:21:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_bytes32_$_t_uint256_$_$","typeString":"mapping(uint256 => mapping(bytes32 => uint256))"}},"id":16614,"indexExpression":{"id":16613,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"11995:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11973:31:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":16616,"indexExpression":{"id":16615,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16538,"src":"12005:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11973:42:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16618,"nodeType":"ExpressionStatement","src":"11966:49:74"},{"expression":{"id":16623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16619,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"12059:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"12059:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":16622,"name":"lockedForPolicyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16591,"src":"12083:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12059:45:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16624,"nodeType":"ExpressionStatement","src":"12059:45:74"},{"expression":{"id":16630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":16625,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"12114:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"12114:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16628,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12133:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12133:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12114:34:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16631,"nodeType":"ExpressionStatement","src":"12114:34:74"},{"assignments":[16633],"declarations":[{"constant":false,"id":16633,"mutability":"mutable","name":"capacityAmount","nameLocation":"12191:14:74","nodeType":"VariableDeclaration","scope":16647,"src":"12183:22:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16632,"name":"uint256","nodeType":"ElementaryTypeName","src":"12183:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16639,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16634,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"12208:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"12208:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16636,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16568,"src":"12225:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle storage pointer"}},"id":16637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"12225:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12208:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12183:62:74"},{"eventCall":{"arguments":[{"id":16641,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"12284:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16642,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16538,"src":"12294:9:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":16643,"name":"lockedForPolicyAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16591,"src":"12305:21:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16644,"name":"capacityAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16633,"src":"12328:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16640,"name":"LogBundlePolicyReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4909,"src":"12260:23:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256,uint256)"}},"id":16645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12260:83:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16646,"nodeType":"EmitStatement","src":"12255:88:74"}]},"functionSelector":"bb540df6","id":16648,"implemented":true,"kind":"function","modifiers":[{"id":16542,"modifierName":{"id":16541,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":15741,"src":"11041:19:74"},"nodeType":"ModifierInvocation","src":"11041:19:74"}],"name":"releasePolicy","nameLocation":"10954:13:74","nodeType":"FunctionDefinition","overrides":{"id":16540,"nodeType":"OverrideSpecifier","overrides":[],"src":"11023:8:74"},"parameters":{"id":16539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16536,"mutability":"mutable","name":"bundleId","nameLocation":"10976:8:74","nodeType":"VariableDeclaration","scope":16648,"src":"10968:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16535,"name":"uint256","nodeType":"ElementaryTypeName","src":"10968:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16538,"mutability":"mutable","name":"processId","nameLocation":"10994:9:74","nodeType":"VariableDeclaration","scope":16648,"src":"10986:17:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10986:7:74","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10967:37:74"},"returnParameters":{"id":16545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16544,"mutability":"mutable","name":"remainingCollateralAmount","nameLocation":"11085:25:74","nodeType":"VariableDeclaration","scope":16648,"src":"11077:33:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16543,"name":"uint256","nodeType":"ElementaryTypeName","src":"11077:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11076:35:74"},"scope":16946,"src":"10945:1405:74","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":16667,"nodeType":"Block","src":"12421:104:74","statements":[{"assignments":[16656],"declarations":[{"constant":false,"id":16656,"mutability":"mutable","name":"tokenId","nameLocation":"12440:7:74","nodeType":"VariableDeclaration","scope":16667,"src":"12432:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16655,"name":"uint256","nodeType":"ElementaryTypeName","src":"12432:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":16661,"initialValue":{"expression":{"arguments":[{"id":16658,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16650,"src":"12460:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16657,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"12450:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12450:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4920,"src":"12450:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12432:45:74"},{"expression":{"arguments":[{"id":16664,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16656,"src":"12509:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16662,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"12494:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"id":16663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":9319,"src":"12494:14:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":16665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12494:23:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":16654,"id":16666,"nodeType":"Return","src":"12487:30:74"}]},"functionSelector":"c41a360a","id":16668,"implemented":true,"kind":"function","modifiers":[],"name":"getOwner","nameLocation":"12365:8:74","nodeType":"FunctionDefinition","parameters":{"id":16651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16650,"mutability":"mutable","name":"bundleId","nameLocation":"12382:8:74","nodeType":"VariableDeclaration","scope":16668,"src":"12374:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16649,"name":"uint256","nodeType":"ElementaryTypeName","src":"12374:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12373:18:74"},"returnParameters":{"id":16654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16668,"src":"12412:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16652,"name":"address","nodeType":"ElementaryTypeName","src":"12412:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12411:9:74"},"scope":16946,"src":"12356:169:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16681,"nodeType":"Block","src":"12600:52:74","statements":[{"expression":{"expression":{"arguments":[{"id":16677,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16670,"src":"12627:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16676,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"12617:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12617:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"12617:25:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"functionReturnParameters":16675,"id":16680,"nodeType":"Return","src":"12610:32:74"}]},"functionSelector":"44c9af28","id":16682,"implemented":true,"kind":"function","modifiers":[],"name":"getState","nameLocation":"12540:8:74","nodeType":"FunctionDefinition","parameters":{"id":16671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16670,"mutability":"mutable","name":"bundleId","nameLocation":"12557:8:74","nodeType":"VariableDeclaration","scope":16682,"src":"12549:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16669,"name":"uint256","nodeType":"ElementaryTypeName","src":"12549:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12548:18:74"},"returnParameters":{"id":16675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16682,"src":"12587:11:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16673,"nodeType":"UserDefinedTypeName","pathNode":{"id":16672,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"12587:11:74"},"referencedDeclaration":4914,"src":"12587:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"src":"12586:13:74"},"scope":16946,"src":"12531:121:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16694,"nodeType":"Block","src":"12729:50:74","statements":[{"expression":{"expression":{"arguments":[{"id":16690,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16684,"src":"12756:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16689,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"12746:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12746:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"filter","nodeType":"MemberAccess","referencedDeclaration":4925,"src":"12746:26:74","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":16688,"id":16693,"nodeType":"Return","src":"12739:33:74"}]},"functionSelector":"2c92fb99","id":16695,"implemented":true,"kind":"function","modifiers":[],"name":"getFilter","nameLocation":"12667:9:74","nodeType":"FunctionDefinition","parameters":{"id":16685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16684,"mutability":"mutable","name":"bundleId","nameLocation":"12685:8:74","nodeType":"VariableDeclaration","scope":16695,"src":"12677:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16683,"name":"uint256","nodeType":"ElementaryTypeName","src":"12677:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12676:18:74"},"returnParameters":{"id":16688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16695,"src":"12715:12:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":16686,"name":"bytes","nodeType":"ElementaryTypeName","src":"12715:5:74","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12714:14:74"},"scope":16946,"src":"12658:121:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16715,"nodeType":"Block","src":"12856:113:74","statements":[{"assignments":[16704],"declarations":[{"constant":false,"id":16704,"mutability":"mutable","name":"bundle","nameLocation":"12880:6:74","nodeType":"VariableDeclaration","scope":16715,"src":"12866:20:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16703,"nodeType":"UserDefinedTypeName","pathNode":{"id":16702,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"12866:6:74"},"referencedDeclaration":4936,"src":"12866:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16708,"initialValue":{"arguments":[{"id":16706,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16697,"src":"12899:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16705,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"12889:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12889:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"12866:42:74"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16709,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16704,"src":"12925:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"12925:14:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":16711,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16704,"src":"12942:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"12942:20:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12925:37:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16701,"id":16714,"nodeType":"Return","src":"12918:44:74"}]},"functionSelector":"bcd5349f","id":16716,"implemented":true,"kind":"function","modifiers":[],"name":"getCapacity","nameLocation":"12797:11:74","nodeType":"FunctionDefinition","parameters":{"id":16698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16697,"mutability":"mutable","name":"bundleId","nameLocation":"12817:8:74","nodeType":"VariableDeclaration","scope":16716,"src":"12809:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16696,"name":"uint256","nodeType":"ElementaryTypeName","src":"12809:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12808:18:74"},"returnParameters":{"id":16701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16716,"src":"12847:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16699,"name":"uint256","nodeType":"ElementaryTypeName","src":"12847:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12846:9:74"},"scope":16946,"src":"12788:181:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16728,"nodeType":"Block","src":"13051:60:74","statements":[{"expression":{"expression":{"arguments":[{"id":16724,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16718,"src":"13078:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16723,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"13068:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13068:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"13068:33:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16722,"id":16727,"nodeType":"Return","src":"13061:40:74"}]},"functionSelector":"3f5d9235","id":16729,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalValueLocked","nameLocation":"12984:19:74","nodeType":"FunctionDefinition","parameters":{"id":16719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16718,"mutability":"mutable","name":"bundleId","nameLocation":"13012:8:74","nodeType":"VariableDeclaration","scope":16729,"src":"13004:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16717,"name":"uint256","nodeType":"ElementaryTypeName","src":"13004:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13003:18:74"},"returnParameters":{"id":16722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16721,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16729,"src":"13042:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16720,"name":"uint256","nodeType":"ElementaryTypeName","src":"13042:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13041:9:74"},"scope":16946,"src":"12975:136:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16741,"nodeType":"Block","src":"13184:54:74","statements":[{"expression":{"expression":{"arguments":[{"id":16737,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16731,"src":"13211:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16736,"name":"getBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16777,"src":"13201:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view returns (struct IBundle.Bundle memory)"}},"id":16738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13201:19:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"13201:27:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16735,"id":16740,"nodeType":"Return","src":"13194:34:74"}]},"functionSelector":"1e010439","id":16742,"implemented":true,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"13126:10:74","nodeType":"FunctionDefinition","parameters":{"id":16732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16731,"mutability":"mutable","name":"bundleId","nameLocation":"13145:8:74","nodeType":"VariableDeclaration","scope":16742,"src":"13137:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16730,"name":"uint256","nodeType":"ElementaryTypeName","src":"13137:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13136:18:74"},"returnParameters":{"id":16735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16734,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16742,"src":"13175:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16733,"name":"uint256","nodeType":"ElementaryTypeName","src":"13175:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13174:9:74"},"scope":16946,"src":"13117:121:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16750,"nodeType":"Block","src":"13299:30:74","statements":[{"expression":{"id":16748,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15706,"src":"13316:6:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"functionReturnParameters":16747,"id":16749,"nodeType":"Return","src":"13309:13:74"}]},"functionSelector":"21df0da7","id":16751,"implemented":true,"kind":"function","modifiers":[],"name":"getToken","nameLocation":"13253:8:74","nodeType":"FunctionDefinition","parameters":{"id":16743,"nodeType":"ParameterList","parameters":[],"src":"13261:2:74"},"returnParameters":{"id":16747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16746,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16751,"src":"13286:11:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"},"typeName":{"id":16745,"nodeType":"UserDefinedTypeName","pathNode":{"id":16744,"name":"BundleToken","nodeType":"IdentifierPath","referencedDeclaration":28751,"src":"13286:11:74"},"referencedDeclaration":28751,"src":"13286:11:74","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"visibility":"internal"}],"src":"13285:13:74"},"scope":16946,"src":"13244:85:74","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16776,"nodeType":"Block","src":"13407:159:74","statements":[{"assignments":[16761],"declarations":[{"constant":false,"id":16761,"mutability":"mutable","name":"bundle","nameLocation":"13431:6:74","nodeType":"VariableDeclaration","scope":16776,"src":"13417:20:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16760,"nodeType":"UserDefinedTypeName","pathNode":{"id":16759,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"13417:6:74"},"referencedDeclaration":4936,"src":"13417:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":16765,"initialValue":{"baseExpression":{"id":16762,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"13440:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16764,"indexExpression":{"id":16763,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16753,"src":"13449:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13440:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13417:41:74"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":16767,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16761,"src":"13476:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":16768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":4933,"src":"13476:16:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":16769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13495:1:74","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13476:20:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3036303a42554e444c455f444f45535f4e4f545f4558495354","id":16771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13498:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_18e88bfd32eca027f106fb862d7e55871ea316361090327a612bfb4dfe3f0755","typeString":"literal_string \"ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST\""},"value":"ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18e88bfd32eca027f106fb862d7e55871ea316361090327a612bfb4dfe3f0755","typeString":"literal_string \"ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST\""}],"id":16766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13468:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13468:68:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16773,"nodeType":"ExpressionStatement","src":"13468:68:74"},{"expression":{"id":16774,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16761,"src":"13553:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"functionReturnParameters":16758,"id":16775,"nodeType":"Return","src":"13546:13:74"}]},"functionSelector":"2d0821b7","id":16777,"implemented":true,"kind":"function","modifiers":[],"name":"getBundle","nameLocation":"13344:9:74","nodeType":"FunctionDefinition","parameters":{"id":16754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16753,"mutability":"mutable","name":"bundleId","nameLocation":"13362:8:74","nodeType":"VariableDeclaration","scope":16777,"src":"13354:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16752,"name":"uint256","nodeType":"ElementaryTypeName","src":"13354:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13353:18:74"},"returnParameters":{"id":16758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16777,"src":"13392:13:74","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":16756,"nodeType":"UserDefinedTypeName","pathNode":{"id":16755,"name":"Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"13392:6:74"},"referencedDeclaration":4936,"src":"13392:6:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"src":"13391:15:74"},"scope":16946,"src":"13335:231:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16784,"nodeType":"Block","src":"13620:36:74","statements":[{"expression":{"id":16782,"name":"_bundleCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15727,"src":"13637:12:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16781,"id":16783,"nodeType":"Return","src":"13630:19:74"}]},"functionSelector":"18442e63","id":16785,"implemented":true,"kind":"function","modifiers":[],"name":"bundles","nameLocation":"13581:7:74","nodeType":"FunctionDefinition","parameters":{"id":16778,"nodeType":"ParameterList","parameters":[],"src":"13588:2:74"},"returnParameters":{"id":16781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16780,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16785,"src":"13611:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16779,"name":"uint256","nodeType":"ElementaryTypeName","src":"13611:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13610:9:74"},"scope":16946,"src":"13572:84:74","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":16796,"nodeType":"Block","src":"13737:64:74","statements":[{"expression":{"baseExpression":{"id":16792,"name":"_unburntBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15725,"src":"13754:28:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16794,"indexExpression":{"id":16793,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16787,"src":"13783:10:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13754:40:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16791,"id":16795,"nodeType":"Return","src":"13747:47:74"}]},"functionSelector":"c559783e","id":16797,"implemented":true,"kind":"function","modifiers":[],"name":"unburntBundles","nameLocation":"13671:14:74","nodeType":"FunctionDefinition","parameters":{"id":16788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16787,"mutability":"mutable","name":"riskpoolId","nameLocation":"13694:10:74","nodeType":"VariableDeclaration","scope":16797,"src":"13686:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16786,"name":"uint256","nodeType":"ElementaryTypeName","src":"13686:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13685:20:74"},"returnParameters":{"id":16791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":16797,"src":"13728:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16789,"name":"uint256","nodeType":"ElementaryTypeName","src":"13728:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13727:9:74"},"scope":16946,"src":"13662:139:74","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":16811,"nodeType":"Block","src":"13892:78:74","statements":[{"expression":{"id":16809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":16803,"name":"_poolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16801,"src":"13902:15:74","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6f6c","id":16806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13955:6:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":16805,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"13935:19:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":16807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13935:27:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16804,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"13920:14:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":16808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13920:43:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"src":"13902:61:74","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":16810,"nodeType":"ExpressionStatement","src":"13902:61:74"}]},"id":16812,"implemented":true,"kind":"function","modifiers":[],"name":"_getPoolController","nameLocation":"13816:18:74","nodeType":"FunctionDefinition","parameters":{"id":16798,"nodeType":"ParameterList","parameters":[],"src":"13834:2:74"},"returnParameters":{"id":16802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16801,"mutability":"mutable","name":"_poolController","nameLocation":"13875:15:74","nodeType":"VariableDeclaration","scope":16812,"src":"13860:30:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":16800,"nodeType":"UserDefinedTypeName","pathNode":{"id":16799,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"13860:14:74"},"referencedDeclaration":21207,"src":"13860:14:74","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"}],"src":"13859:32:74"},"scope":16946,"src":"13807:163:74","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":16843,"nodeType":"Block","src":"14047:265:74","statements":[{"assignments":[16822],"declarations":[{"constant":false,"id":16822,"mutability":"mutable","name":"oldState","nameLocation":"14069:8:74","nodeType":"VariableDeclaration","scope":16843,"src":"14057:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16821,"nodeType":"UserDefinedTypeName","pathNode":{"id":16820,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"14057:11:74"},"referencedDeclaration":4914,"src":"14057:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"id":16826,"initialValue":{"arguments":[{"id":16824,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16814,"src":"14089:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16823,"name":"getState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16682,"src":"14080:8:74","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_enum$_BundleState_$4914_$","typeString":"function (uint256) view returns (enum IBundle.BundleState)"}},"id":16825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14080:18:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"VariableDeclarationStatement","src":"14057:41:74"},{"expression":{"arguments":[{"id":16828,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16822,"src":"14131:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},{"id":16829,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16817,"src":"14141:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16827,"name":"_checkStateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16945,"src":"14109:21:74","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_BundleState_$4914_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (enum IBundle.BundleState,enum IBundle.BundleState) pure"}},"id":16830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14109:41:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16831,"nodeType":"ExpressionStatement","src":"14109:41:74"},{"expression":{"arguments":[{"id":16833,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16814,"src":"14170:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16834,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16817,"src":"14180:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16832,"name":"_setState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16868,"src":"14160:9:74","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState)"}},"id":16835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14160:29:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16836,"nodeType":"ExpressionStatement","src":"14160:29:74"},{"eventCall":{"arguments":[{"id":16838,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16814,"src":"14276:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16839,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16822,"src":"14286:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},{"id":16840,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16817,"src":"14296:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}],"id":16837,"name":"LogBundleStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4861,"src":"14254:21:74","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_enum$_BundleState_$4914_$_t_enum$_BundleState_$4914_$returns$__$","typeString":"function (uint256,enum IBundle.BundleState,enum IBundle.BundleState)"}},"id":16841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14254:51:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16842,"nodeType":"EmitStatement","src":"14249:56:74"}]},"id":16844,"implemented":true,"kind":"function","modifiers":[],"name":"_changeState","nameLocation":"13985:12:74","nodeType":"FunctionDefinition","parameters":{"id":16818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16814,"mutability":"mutable","name":"bundleId","nameLocation":"14006:8:74","nodeType":"VariableDeclaration","scope":16844,"src":"13998:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16813,"name":"uint256","nodeType":"ElementaryTypeName","src":"13998:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16817,"mutability":"mutable","name":"newState","nameLocation":"14028:8:74","nodeType":"VariableDeclaration","scope":16844,"src":"14016:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16816,"nodeType":"UserDefinedTypeName","pathNode":{"id":16815,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"14016:11:74"},"referencedDeclaration":4914,"src":"14016:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"src":"13997:40:74"},"returnParameters":{"id":16819,"nodeType":"ParameterList","parameters":[],"src":"14047:0:74"},"scope":16946,"src":"13976:336:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16867,"nodeType":"Block","src":"14386:108:74","statements":[{"expression":{"id":16857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":16852,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"14396:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16854,"indexExpression":{"id":16853,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16846,"src":"14405:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14396:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"id":16855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"14396:24:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":16856,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"14423:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14396:35:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"id":16858,"nodeType":"ExpressionStatement","src":"14396:35:74"},{"expression":{"id":16865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":16859,"name":"_bundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15711,"src":"14441:8:74","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Bundle_$4936_storage_$","typeString":"mapping(uint256 => struct IBundle.Bundle storage ref)"}},"id":16861,"indexExpression":{"id":16860,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16846,"src":"14450:8:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14441:18:74","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage","typeString":"struct IBundle.Bundle storage ref"}},"id":16862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":4935,"src":"14441:28:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":16863,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"14472:5:74","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":16864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"14472:15:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14441:46:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16866,"nodeType":"ExpressionStatement","src":"14441:46:74"}]},"id":16868,"implemented":true,"kind":"function","modifiers":[],"name":"_setState","nameLocation":"14327:9:74","nodeType":"FunctionDefinition","parameters":{"id":16850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16846,"mutability":"mutable","name":"bundleId","nameLocation":"14345:8:74","nodeType":"VariableDeclaration","scope":16868,"src":"14337:16:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16845,"name":"uint256","nodeType":"ElementaryTypeName","src":"14337:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16849,"mutability":"mutable","name":"newState","nameLocation":"14367:8:74","nodeType":"VariableDeclaration","scope":16868,"src":"14355:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16848,"nodeType":"UserDefinedTypeName","pathNode":{"id":16847,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"14355:11:74"},"referencedDeclaration":4914,"src":"14355:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"src":"14336:40:74"},"returnParameters":{"id":16851,"nodeType":"ParameterList","parameters":[],"src":"14386:0:74"},"scope":16946,"src":"14318:176:74","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":16944,"nodeType":"Block","src":"14612:858:74","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16877,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16871,"src":"14626:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16878,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14638:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"14638:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14626:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16895,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16871,"src":"14856:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16896,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14868:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Locked","nodeType":"MemberAccess","referencedDeclaration":4911,"src":"14868:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14856:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16913,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16871,"src":"15086:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16914,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"15098:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"15098:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"15086:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16926,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16871,"src":"15282:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16927,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"15294:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"15294:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"15282:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16939,"nodeType":"Block","src":"15390:74:74","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a424f432d3037343a494e495449414c5f53544154455f4e4f545f48414e444c4544","id":16936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15411:41:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_90b0055e92488337515434f01755801bd01b043fd63366b1e22203e0ea972548","typeString":"literal_string \"ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED\""},"value":"ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90b0055e92488337515434f01755801bd01b043fd63366b1e22203e0ea972548","typeString":"literal_string \"ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED\""}],"id":16935,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"15404:6:74","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":16937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15404:49:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16938,"nodeType":"ExpressionStatement","src":"15404:49:74"}]},"id":16940,"nodeType":"IfStatement","src":"15278:186:74","trueBody":{"id":16934,"nodeType":"Block","src":"15314:70:74","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a4255432d3037333a4255524e45445f49535f46494e414c5f5354415445","id":16931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15335:37:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_b2dda52bf0283d27e4ffc8f6319b7fb1aa100314af58bb09bcaaf538af49aecd","typeString":"literal_string \"ERROR:BUC-073:BURNED_IS_FINAL_STATE\""},"value":"ERROR:BUC-073:BURNED_IS_FINAL_STATE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b2dda52bf0283d27e4ffc8f6319b7fb1aa100314af58bb09bcaaf538af49aecd","typeString":"literal_string \"ERROR:BUC-073:BURNED_IS_FINAL_STATE\""}],"id":16930,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"15328:6:74","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":16932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15328:45:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16933,"nodeType":"ExpressionStatement","src":"15328:45:74"}]}},"id":16941,"nodeType":"IfStatement","src":"15082:382:74","trueBody":{"id":16925,"nodeType":"Block","src":"15118:154:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16918,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"15157:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16919,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"15169:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"15169:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"15157:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3037323a434c4f5345445f494e56414c49445f5452414e534954494f4e","id":16922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15206:41:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6f938bbd1284ec77e45bef46484f59fa0bcba98ae32543cf1059a51f233eec0","typeString":"literal_string \"ERROR:BUC-072:CLOSED_INVALID_TRANSITION\""},"value":"ERROR:BUC-072:CLOSED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6f938bbd1284ec77e45bef46484f59fa0bcba98ae32543cf1059a51f233eec0","typeString":"literal_string \"ERROR:BUC-072:CLOSED_INVALID_TRANSITION\""}],"id":16917,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15132:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15132:129:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16924,"nodeType":"ExpressionStatement","src":"15132:129:74"}]}},"id":16942,"nodeType":"IfStatement","src":"14852:612:74","trueBody":{"id":16912,"nodeType":"Block","src":"14888:188:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16900,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"14927:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16901,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14939:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"14939:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14927:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16904,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"14961:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16905,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14973:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"14973:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14961:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14927:64:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3037313a4c4f434b45445f494e56414c49445f5452414e534954494f4e","id":16909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15010:41:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5c1965b929932d1ff278545ca669b4260ba119d29824ba96b9562d9415628fa","typeString":"literal_string \"ERROR:BUC-071:LOCKED_INVALID_TRANSITION\""},"value":"ERROR:BUC-071:LOCKED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5c1965b929932d1ff278545ca669b4260ba119d29824ba96b9562d9415628fa","typeString":"literal_string \"ERROR:BUC-071:LOCKED_INVALID_TRANSITION\""}],"id":16899,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14902:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14902:163:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16911,"nodeType":"ExpressionStatement","src":"14902:163:74"}]}},"id":16943,"nodeType":"IfStatement","src":"14622:842:74","trueBody":{"id":16894,"nodeType":"Block","src":"14658:188:74","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16882,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"14697:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16883,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14709:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Locked","nodeType":"MemberAccess","referencedDeclaration":4911,"src":"14709:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14697:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":16889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":16886,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"14731:8:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":16887,"name":"BundleState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"14743:11:74","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":16888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"14743:18:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"14731:30:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14697:64:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4255432d3037303a4143544956455f494e56414c49445f5452414e534954494f4e","id":16891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14780:41:74","typeDescriptions":{"typeIdentifier":"t_stringliteral_57e2fa2e1f46bf1826c5847f0b8b0e2dfce8ed4b21dd5b3ef33697380369b0d0","typeString":"literal_string \"ERROR:BUC-070:ACTIVE_INVALID_TRANSITION\""},"value":"ERROR:BUC-070:ACTIVE_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_57e2fa2e1f46bf1826c5847f0b8b0e2dfce8ed4b21dd5b3ef33697380369b0d0","typeString":"literal_string \"ERROR:BUC-070:ACTIVE_INVALID_TRANSITION\""}],"id":16881,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14672:7:74","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14672:163:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16893,"nodeType":"ExpressionStatement","src":"14672:163:74"}]}}]},"id":16945,"implemented":true,"kind":"function","modifiers":[],"name":"_checkStateTransition","nameLocation":"14509:21:74","nodeType":"FunctionDefinition","parameters":{"id":16875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16871,"mutability":"mutable","name":"oldState","nameLocation":"14543:8:74","nodeType":"VariableDeclaration","scope":16945,"src":"14531:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16870,"nodeType":"UserDefinedTypeName","pathNode":{"id":16869,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"14531:11:74"},"referencedDeclaration":4914,"src":"14531:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"},{"constant":false,"id":16874,"mutability":"mutable","name":"newState","nameLocation":"14565:8:74","nodeType":"VariableDeclaration","scope":16945,"src":"14553:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"typeName":{"id":16873,"nodeType":"UserDefinedTypeName","pathNode":{"id":16872,"name":"BundleState","nodeType":"IdentifierPath","referencedDeclaration":4914,"src":"14553:11:74"},"referencedDeclaration":4914,"src":"14553:11:74","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"visibility":"internal"}],"src":"14530:44:74"},"returnParameters":{"id":16876,"nodeType":"ParameterList","parameters":[],"src":"14612:0:74"},"scope":16946,"src":"14500:970:74","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":16947,"src":"2400:13072:74"}],"src":"39:15434:74"},"id":74},"contracts/modules/ComponentController.sol":{"ast":{"absolutePath":"contracts/modules/ComponentController.sol","exportedSymbols":{"Address":[10496],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IComponent":[2988],"IComponentEvents":[5073],"IOracle":[3022],"IPolicy":[5433],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059]},"id":17948,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":16948,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:75"},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":16949,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":26414,"src":"66:38:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":16950,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":2989,"src":"106:69:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IOracle.sol","file":"@etherisc/gif-interface/contracts/components/IOracle.sol","id":16951,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":3023,"src":"177:66:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":16952,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":3080,"src":"245:67:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","file":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","id":16953,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":3313,"src":"314:68:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol","file":"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol","id":16954,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":5074,"src":"384:72:75","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":16955,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":17948,"sourceUnit":11440,"src":"458:65:75","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":16957,"name":"IComponentEvents","nodeType":"IdentifierPath","referencedDeclaration":5073,"src":"4050:16:75"},"id":16958,"nodeType":"InheritanceSpecifier","src":"4050:16:75"},{"baseName":{"id":16959,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"4073:14:75"},"id":16960,"nodeType":"InheritanceSpecifier","src":"4073:14:75"}],"contractDependencies":[5073,8059,10518,26413],"contractKind":"contract","documentation":{"id":16956,"nodeType":"StructuredDocumentation","src":"527:3482:75","text":"The smart contract provides functionality to manage and control components in a system.\nThe contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types.\nIt also includes modifiers to restrict access to certain functions based on the caller's role.\nFunctions:\n- `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal.\n- `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets.\n- `exists()`: Checks if a component with the given ID exists in the system.\n- `approve()`: Approves a component with the given ID, changing its state to \"Active\" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping.\n- `decline()`: Changes the state of a component with the given ID to \"Declined\" and emits an event. It also calls the `declineCallback` function of the component.\n- `suspend()`: Suspends a component with the given ID by changing its state to \"Suspended\" and emitting an event. It also calls the `suspendCallback` function of the component.\n- `resume()`: Resumes a component with the given ID by changing its state to \"Active\" and emitting an event. It also calls the `resumeCallback` function of the component.\n- `pause()`: Pauses a component with the given ID by changing its state to \"Paused\" and emitting an event. It also calls the `pauseCallback` function of the component.\n- `unpause()`: Unpauses a component with the given ID by changing its state to \"Active\" and emitting an event. It also calls the `unpauseCallback` function of the component.\n- `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to \"Archived\" and emitting an event. It also calls the `archiveCallback` function of the component.\n- `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to \"Archived\" and emitting an event. It also calls the `archiveCallback` function of the component.\n- `getComponent()`: Retrieves the component with the given ID.\n- `getComponentId()`: Retrieves the ID of a registered component given its address.\n- `getComponentType()`: Retrieves the component type of a given component ID.\n- `getComponentState()`: Retrieves the state of the component with the given ID.\n- `getOracleId()`: Retrieves the oracle ID at the specified index.\n- `getRiskpoolId()`: Retrieves the risk pool ID at the specified index.\n- `getProductId()`: Retrieves the product ID at the specified index.\n- `getRequiredRole()`: Retrieves the required role for a given component type.\n- `components()`: Returns the number of components currently stored in the contract.\n- `products()`: Returns the number of products in the `_products` set.\n- `oracles()`: Returns the number of oracles registered in the `_oracles` set.\n- `riskpools()`: Returns the number of risk pools in the set.\nThe contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions.\nThe contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations."},"fullyImplemented":true,"id":17947,"linearizedBaseContracts":[17947,26413,8059,10518,5073],"name":"ComponentController","nameLocation":"4022:19:75","nodeType":"ContractDefinition","nodes":[{"id":16964,"libraryName":{"id":16961,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":11439,"src":"4104:13:75"},"nodeType":"UsingForDirective","src":"4098:46:75","typeName":{"id":16963,"nodeType":"UserDefinedTypeName","pathNode":{"id":16962,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"4122:21:75"},"referencedDeclaration":11309,"src":"4122:21:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"constant":false,"id":16969,"mutability":"mutable","name":"_componentById","nameLocation":"4191:14:75","nodeType":"VariableDeclaration","scope":17947,"src":"4152:53:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IComponent_$2988_$","typeString":"mapping(uint256 => contract IComponent)"},"typeName":{"id":16968,"keyType":{"id":16965,"name":"uint256","nodeType":"ElementaryTypeName","src":"4160:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4152:30:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IComponent_$2988_$","typeString":"mapping(uint256 => contract IComponent)"},"valueType":{"id":16967,"nodeType":"UserDefinedTypeName","pathNode":{"id":16966,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"4171:10:75"},"referencedDeclaration":2988,"src":"4171:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}},"visibility":"private"},{"constant":false,"id":16973,"mutability":"mutable","name":"_componentIdByName","nameLocation":"4248:18:75","nodeType":"VariableDeclaration","scope":17947,"src":"4212:54:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":16972,"keyType":{"id":16970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4220:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4212:27:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":16971,"name":"uint256","nodeType":"ElementaryTypeName","src":"4231:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":16977,"mutability":"mutable","name":"_componentIdByAddress","nameLocation":"4309:21:75","nodeType":"VariableDeclaration","scope":17947,"src":"4273:57:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":16976,"keyType":{"id":16974,"name":"address","nodeType":"ElementaryTypeName","src":"4281:7:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4273:27:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":16975,"name":"uint256","nodeType":"ElementaryTypeName","src":"4292:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":16982,"mutability":"mutable","name":"_componentState","nameLocation":"4393:15:75","nodeType":"VariableDeclaration","scope":17947,"src":"4339:69:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_enum$_ComponentState_$2899_$","typeString":"mapping(uint256 => enum IComponent.ComponentState)"},"typeName":{"id":16981,"keyType":{"id":16978,"name":"uint256","nodeType":"ElementaryTypeName","src":"4347:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4339:45:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_enum$_ComponentState_$2899_$","typeString":"mapping(uint256 => enum IComponent.ComponentState)"},"valueType":{"id":16980,"nodeType":"UserDefinedTypeName","pathNode":{"id":16979,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"4358:25:75"},"referencedDeclaration":2899,"src":"4358:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}},"visibility":"private"},{"constant":false,"id":16985,"mutability":"mutable","name":"_products","nameLocation":"4447:9:75","nodeType":"VariableDeclaration","scope":17947,"src":"4417:39:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":16984,"nodeType":"UserDefinedTypeName","pathNode":{"id":16983,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"4417:21:75"},"referencedDeclaration":11309,"src":"4417:21:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"private"},{"constant":false,"id":16988,"mutability":"mutable","name":"_oracles","nameLocation":"4493:8:75","nodeType":"VariableDeclaration","scope":17947,"src":"4463:38:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":16987,"nodeType":"UserDefinedTypeName","pathNode":{"id":16986,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"4463:21:75"},"referencedDeclaration":11309,"src":"4463:21:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"private"},{"constant":false,"id":16991,"mutability":"mutable","name":"_riskpools","nameLocation":"4538:10:75","nodeType":"VariableDeclaration","scope":17947,"src":"4508:40:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":16990,"nodeType":"UserDefinedTypeName","pathNode":{"id":16989,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"4508:21:75"},"referencedDeclaration":11309,"src":"4508:21:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"private"},{"constant":false,"id":16993,"mutability":"mutable","name":"_componentCount","nameLocation":"4571:15:75","nodeType":"VariableDeclaration","scope":17947,"src":"4555:31:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16992,"name":"uint256","nodeType":"ElementaryTypeName","src":"4555:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":16997,"mutability":"mutable","name":"_policyFlowByProductId","nameLocation":"4674:22:75","nodeType":"VariableDeclaration","scope":17947,"src":"4595:101:75","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":16996,"keyType":{"id":16994,"name":"uint256","nodeType":"ElementaryTypeName","src":"4603:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4595:70:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":16995,"name":"address","nodeType":"ElementaryTypeName","src":"4631:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"body":{"id":17010,"nodeType":"Block","src":"4742:172:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":17000,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4775:10:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4775:12:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"436f6d706f6e656e744f776e657253657276696365","id":17003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4811:23:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""},"value":"ComponentOwnerService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""}],"id":17002,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4791:19:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":17004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4791:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4775:60:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030313a4e4f545f434f4d504f4e454e545f4f574e45525f53455256494345","id":17006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4850:43:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b163f71e59f0a392de25481a553757716afafc14f2c0ddf4ef8779c20751707","typeString":"literal_string \"ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE\""},"value":"ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2b163f71e59f0a392de25481a553757716afafc14f2c0ddf4ef8779c20751707","typeString":"literal_string \"ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE\""}],"id":16999,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4753:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4753:141:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17008,"nodeType":"ExpressionStatement","src":"4753:141:75"},{"id":17009,"nodeType":"PlaceholderStatement","src":"4905:1:75"}]},"id":17011,"name":"onlyComponentOwnerService","nameLocation":"4714:25:75","nodeType":"ModifierDefinition","parameters":{"id":16998,"nodeType":"ParameterList","parameters":[],"src":"4739:2:75"},"src":"4705:209:75","virtual":false,"visibility":"internal"},{"body":{"id":17024,"nodeType":"Block","src":"4961:176:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":17014,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4994:10:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":17015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4994:12:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":17017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5030:25:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"id":17016,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5010:19:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":17018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5010:46:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4994:62:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030323a4e4f545f494e5354414e43455f4f50455241544f525f53455256494345","id":17020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5071:45:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_130007efea4d49cc157bd5faf2f1c80f98e50627fe669a9a215b28142c1ee23f","typeString":"literal_string \"ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE\""},"value":"ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_130007efea4d49cc157bd5faf2f1c80f98e50627fe669a9a215b28142c1ee23f","typeString":"literal_string \"ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE\""}],"id":17013,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4972:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4972:145:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17022,"nodeType":"ExpressionStatement","src":"4972:145:75"},{"id":17023,"nodeType":"PlaceholderStatement","src":"5128:1:75"}]},"id":17025,"name":"onlyInstanceOperatorService","nameLocation":"4931:27:75","nodeType":"ModifierDefinition","parameters":{"id":17012,"nodeType":"ParameterList","parameters":[],"src":"4958:2:75"},"src":"4922:215:75","virtual":false,"visibility":"internal"},{"body":{"id":17081,"nodeType":"Block","src":"5244:667:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":17034,"name":"_componentIdByAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16977,"src":"5292:21:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17039,"indexExpression":{"arguments":[{"id":17037,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5322:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5314:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17035,"name":"address","nodeType":"ElementaryTypeName","src":"5314:7:75","typeDescriptions":{}}},"id":17038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5314:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5292:41:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5337:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5292:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030333a434f4d504f4e454e545f414c52454144595f455849535453","id":17042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5340:40:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ae3a1e2de2af7e4b795f54ca41064c73c9d3d29ac084b6bc16d97b27e04e8c5","typeString":"literal_string \"ERROR:CCR-003:COMPONENT_ALREADY_EXISTS\""},"value":"ERROR:CCR-003:COMPONENT_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5ae3a1e2de2af7e4b795f54ca41064c73c9d3d29ac084b6bc16d97b27e04e8c5","typeString":"literal_string \"ERROR:CCR-003:COMPONENT_ALREADY_EXISTS\""}],"id":17033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5284:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5284:97:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17044,"nodeType":"ExpressionStatement","src":"5284:97:75"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":17046,"name":"_componentIdByName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16973,"src":"5400:18:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":17050,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17047,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5419:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getName","nodeType":"MemberAccess","referencedDeclaration":2920,"src":"5419:17:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5419:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5400:39:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":17051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5443:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5400:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030343a434f4d504f4e454e545f4e414d455f414c52454144595f455849535453","id":17053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5446:45:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_db0e727d540281d778747629fde13ba11de87883dd7bb058b220298f1d595860","typeString":"literal_string \"ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS\""},"value":"ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_db0e727d540281d778747629fde13ba11de87883dd7bb058b220298f1d595860","typeString":"literal_string \"ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS\""}],"id":17045,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5392:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5392:100:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17055,"nodeType":"ExpressionStatement","src":"5392:100:75"},{"assignments":[17057],"declarations":[{"constant":false,"id":17057,"mutability":"mutable","name":"id","nameLocation":"5563:2:75","nodeType":"VariableDeclaration","scope":17081,"src":"5555:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17056,"name":"uint256","nodeType":"ElementaryTypeName","src":"5555:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":17061,"initialValue":{"arguments":[{"id":17059,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5586:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17058,"name":"_persistComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17170,"src":"5568:17:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IComponent_$2988_$returns$_t_uint256_$","typeString":"function (contract IComponent) returns (uint256)"}},"id":17060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5568:28:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5555:41:75"},{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17063,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5695:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getName","nodeType":"MemberAccess","referencedDeclaration":2920,"src":"5695:17:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5695:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17066,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5729:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getType","nodeType":"MemberAccess","referencedDeclaration":2931,"src":"5729:17:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_enum$_ComponentType_$2891_$","typeString":"function () view external returns (enum IComponent.ComponentType)"}},"id":17068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5729:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},{"arguments":[{"id":17071,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5771:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5763:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17069,"name":"address","nodeType":"ElementaryTypeName","src":"5763:7:75","typeDescriptions":{}}},"id":17072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5763:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17073,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17057,"src":"5796:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17062,"name":"LogComponentProposed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5034,"src":"5660:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_ComponentType_$2891_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,enum IComponent.ComponentType,address,uint256)"}},"id":17074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5660:139:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17075,"nodeType":"EmitStatement","src":"5655:144:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17076,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17028,"src":"5875:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proposalCallback","nodeType":"MemberAccess","referencedDeclaration":2966,"src":"5875:26:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5875:28:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17080,"nodeType":"ExpressionStatement","src":"5875:28:75"}]},"functionSelector":"01267951","id":17082,"implemented":true,"kind":"function","modifiers":[{"id":17031,"modifierName":{"id":17030,"name":"onlyComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":17011,"src":"5212:25:75"},"nodeType":"ModifierInvocation","src":"5212:25:75"}],"name":"propose","nameLocation":"5154:7:75","nodeType":"FunctionDefinition","parameters":{"id":17029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17028,"mutability":"mutable","name":"component","nameLocation":"5173:9:75","nodeType":"VariableDeclaration","scope":17082,"src":"5162:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17027,"nodeType":"UserDefinedTypeName","pathNode":{"id":17026,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"5162:10:75"},"referencedDeclaration":2988,"src":"5162:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"5161:22:75"},"returnParameters":{"id":17032,"nodeType":"ParameterList","parameters":[],"src":"5244:0:75"},"scope":17947,"src":"5145:766:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17169,"nodeType":"Block","src":"6021:704:75","statements":[{"expression":{"id":17091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6068:17:75","subExpression":{"id":17090,"name":"_componentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16993,"src":"6068:15:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17092,"nodeType":"ExpressionStatement","src":"6068:17:75"},{"expression":{"id":17095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17093,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6096:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17094,"name":"_componentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16993,"src":"6101:15:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6096:20:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17096,"nodeType":"ExpressionStatement","src":"6096:20:75"},{"expression":{"arguments":[{"id":17098,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6177:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17099,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"6181:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"6181:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Proposed","nodeType":"MemberAccess","referencedDeclaration":2893,"src":"6181:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17097,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"6164:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6164:52:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17103,"nodeType":"ExpressionStatement","src":"6164:52:75"},{"expression":{"arguments":[{"id":17107,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6243:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17104,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6227:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setId","nodeType":"MemberAccess","referencedDeclaration":2915,"src":"6227:15:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":17108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6227:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17109,"nodeType":"ExpressionStatement","src":"6227:19:75"},{"expression":{"id":17114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17110,"name":"_componentById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16969,"src":"6302:14:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IComponent_$2988_$","typeString":"mapping(uint256 => contract IComponent)"}},"id":17112,"indexExpression":{"id":17111,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6317:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6302:18:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17113,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6323:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"src":"6302:30:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17115,"nodeType":"ExpressionStatement","src":"6302:30:75"},{"expression":{"id":17122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17116,"name":"_componentIdByName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16973,"src":"6343:18:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":17120,"indexExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17117,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6362:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getName","nodeType":"MemberAccess","referencedDeclaration":2920,"src":"6362:17:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6362:19:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6343:39:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17121,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6385:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6343:44:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17123,"nodeType":"ExpressionStatement","src":"6343:44:75"},{"expression":{"id":17131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17124,"name":"_componentIdByAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16977,"src":"6398:21:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17129,"indexExpression":{"arguments":[{"id":17127,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6428:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6420:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17125,"name":"address","nodeType":"ElementaryTypeName","src":"6420:7:75","typeDescriptions":{}}},"id":17128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6420:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6398:41:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17130,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6442:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6398:46:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17132,"nodeType":"ExpressionStatement","src":"6398:46:75"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17133,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6500:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":2947,"src":"6500:19:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":17135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6500:21:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17144,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6579:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isOracle","nodeType":"MemberAccess","referencedDeclaration":2952,"src":"6579:18:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":17146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6579:20:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17155,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17085,"src":"6656:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":2957,"src":"6656:20:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":17157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6656:22:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17166,"nodeType":"IfStatement","src":"6652:66:75","trueBody":{"id":17165,"nodeType":"Block","src":"6680:38:75","statements":[{"expression":{"arguments":[{"id":17161,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16991,"src":"6700:10:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17162,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6712:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17158,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"6682:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11330,"src":"6682:17:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":17163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6682:33:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17164,"nodeType":"ExpressionStatement","src":"6682:33:75"}]}},"id":17167,"nodeType":"IfStatement","src":"6575:143:75","trueBody":{"id":17154,"nodeType":"Block","src":"6601:36:75","statements":[{"expression":{"arguments":[{"id":17150,"name":"_oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"6621:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17151,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6631:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17147,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"6603:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11330,"src":"6603:17:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":17152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6603:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17153,"nodeType":"ExpressionStatement","src":"6603:31:75"}]}},"id":17168,"nodeType":"IfStatement","src":"6496:222:75","trueBody":{"id":17143,"nodeType":"Block","src":"6523:37:75","statements":[{"expression":{"arguments":[{"id":17139,"name":"_products","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"6543:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17140,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17088,"src":"6554:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17136,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"6525:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11330,"src":"6525:17:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":17141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6525:32:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17142,"nodeType":"ExpressionStatement","src":"6525:32:75"}]}}]},"id":17170,"implemented":true,"kind":"function","modifiers":[],"name":"_persistComponent","nameLocation":"5928:17:75","nodeType":"FunctionDefinition","parameters":{"id":17086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17085,"mutability":"mutable","name":"component","nameLocation":"5957:9:75","nodeType":"VariableDeclaration","scope":17170,"src":"5946:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17084,"nodeType":"UserDefinedTypeName","pathNode":{"id":17083,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"5946:10:75"},"referencedDeclaration":2988,"src":"5946:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"5945:22:75"},"returnParameters":{"id":17089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17088,"mutability":"mutable","name":"id","nameLocation":"6012:2:75","nodeType":"VariableDeclaration","scope":17170,"src":"6004:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17087,"name":"uint256","nodeType":"ElementaryTypeName","src":"6004:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6003:12:75"},"scope":17947,"src":"5919:806:75","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17195,"nodeType":"Block","src":"6787:112:75","statements":[{"assignments":[17179],"declarations":[{"constant":false,"id":17179,"mutability":"mutable","name":"component","nameLocation":"6809:9:75","nodeType":"VariableDeclaration","scope":17195,"src":"6798:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17178,"nodeType":"UserDefinedTypeName","pathNode":{"id":17177,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"6798:10:75"},"referencedDeclaration":2988,"src":"6798:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17183,"initialValue":{"baseExpression":{"id":17180,"name":"_componentById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16969,"src":"6821:14:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IComponent_$2988_$","typeString":"mapping(uint256 => contract IComponent)"}},"id":17182,"indexExpression":{"id":17181,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17172,"src":"6836:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6821:18:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"6798:41:75"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":17186,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17179,"src":"6866:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6858:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17184,"name":"address","nodeType":"ElementaryTypeName","src":"6858:7:75","typeDescriptions":{}}},"id":17187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6858:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":17190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6888:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6880:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17188,"name":"address","nodeType":"ElementaryTypeName","src":"6880:7:75","typeDescriptions":{}}},"id":17191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6880:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6858:32:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17193,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6857:34:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17176,"id":17194,"nodeType":"Return","src":"6850:41:75"}]},"functionSelector":"4f558e79","id":17196,"implemented":true,"kind":"function","modifiers":[],"name":"exists","nameLocation":"6742:6:75","nodeType":"FunctionDefinition","parameters":{"id":17173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17172,"mutability":"mutable","name":"id","nameLocation":"6757:2:75","nodeType":"VariableDeclaration","scope":17196,"src":"6749:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17171,"name":"uint256","nodeType":"ElementaryTypeName","src":"6749:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6748:12:75"},"returnParameters":{"id":17176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17196,"src":"6781:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17174,"name":"bool","nodeType":"ElementaryTypeName","src":"6781:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6780:6:75"},"scope":17947,"src":"6733:166:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17244,"nodeType":"Block","src":"6998:396:75","statements":[{"expression":{"arguments":[{"id":17204,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17198,"src":"7022:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17205,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"7026:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"7026:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"7026:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17203,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"7009:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7009:50:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17209,"nodeType":"ExpressionStatement","src":"7009:50:75"},{"assignments":[17212],"declarations":[{"constant":false,"id":17212,"mutability":"mutable","name":"component","nameLocation":"7081:9:75","nodeType":"VariableDeclaration","scope":17244,"src":"7070:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17211,"nodeType":"UserDefinedTypeName","pathNode":{"id":17210,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"7070:10:75"},"referencedDeclaration":2988,"src":"7070:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17216,"initialValue":{"arguments":[{"id":17214,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17198,"src":"7106:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17213,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"7093:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7093:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"7070:39:75"},{"condition":{"arguments":[{"id":17218,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17198,"src":"7136:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17217,"name":"isProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17725,"src":"7126:9:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":17219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7126:13:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17234,"nodeType":"IfStatement","src":"7122:119:75","trueBody":{"id":17233,"nodeType":"Block","src":"7141:100:75","statements":[{"expression":{"id":17231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17220,"name":"_policyFlowByProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16997,"src":"7156:22:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":17222,"indexExpression":{"id":17221,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17198,"src":"7179:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7156:26:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":17226,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17212,"src":"7202:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7194:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17224,"name":"address","nodeType":"ElementaryTypeName","src":"7194:7:75","typeDescriptions":{}}},"id":17227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7194:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17223,"name":"IProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"7185:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProduct_$3079_$","typeString":"type(contract IProduct)"}},"id":17228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7185:28:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"id":17229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicyFlow","nodeType":"MemberAccess","referencedDeclaration":3053,"src":"7185:42:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":17230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7185:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7156:73:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17232,"nodeType":"ExpressionStatement","src":"7156:73:75"}]}},{"eventCall":{"arguments":[{"id":17236,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17198,"src":"7279:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17235,"name":"LogComponentApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5038,"src":"7258:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7258:24:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17238,"nodeType":"EmitStatement","src":"7253:29:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17239,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17212,"src":"7358:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approvalCallback","nodeType":"MemberAccess","referencedDeclaration":2969,"src":"7358:26:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7358:28:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17243,"nodeType":"ExpressionStatement","src":"7358:28:75"}]},"functionSelector":"b759f954","id":17245,"implemented":true,"kind":"function","modifiers":[{"id":17201,"modifierName":{"id":17200,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":17025,"src":"6964:27:75"},"nodeType":"ModifierInvocation","src":"6964:27:75"}],"name":"approve","nameLocation":"6916:7:75","nodeType":"FunctionDefinition","parameters":{"id":17199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17198,"mutability":"mutable","name":"id","nameLocation":"6932:2:75","nodeType":"VariableDeclaration","scope":17245,"src":"6924:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17197,"name":"uint256","nodeType":"ElementaryTypeName","src":"6924:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6923:12:75"},"returnParameters":{"id":17202,"nodeType":"ParameterList","parameters":[],"src":"6998:0:75"},"scope":17947,"src":"6907:487:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17275,"nodeType":"Block","src":"7493:252:75","statements":[{"expression":{"arguments":[{"id":17253,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17247,"src":"7517:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17254,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"7521:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"7521:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":2894,"src":"7521:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17252,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"7504:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7504:52:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17258,"nodeType":"ExpressionStatement","src":"7504:52:75"},{"eventCall":{"arguments":[{"id":17260,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17247,"src":"7593:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17259,"name":"LogComponentDeclined","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5042,"src":"7572:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7572:24:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17262,"nodeType":"EmitStatement","src":"7567:29:75"},{"assignments":[17265],"declarations":[{"constant":false,"id":17265,"mutability":"mutable","name":"component","nameLocation":"7671:9:75","nodeType":"VariableDeclaration","scope":17275,"src":"7660:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17264,"nodeType":"UserDefinedTypeName","pathNode":{"id":17263,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"7660:10:75"},"referencedDeclaration":2988,"src":"7660:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17269,"initialValue":{"arguments":[{"id":17267,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17247,"src":"7696:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17266,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"7683:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7683:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"7660:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17270,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17265,"src":"7710:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"declineCallback","nodeType":"MemberAccess","referencedDeclaration":2972,"src":"7710:25:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7710:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17274,"nodeType":"ExpressionStatement","src":"7710:27:75"}]},"functionSelector":"a0355f4e","id":17276,"implemented":true,"kind":"function","modifiers":[{"id":17250,"modifierName":{"id":17249,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":17025,"src":"7459:27:75"},"nodeType":"ModifierInvocation","src":"7459:27:75"}],"name":"decline","nameLocation":"7411:7:75","nodeType":"FunctionDefinition","parameters":{"id":17248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17247,"mutability":"mutable","name":"id","nameLocation":"7427:2:75","nodeType":"VariableDeclaration","scope":17276,"src":"7419:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17246,"name":"uint256","nodeType":"ElementaryTypeName","src":"7419:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7418:12:75"},"returnParameters":{"id":17251,"nodeType":"ParameterList","parameters":[],"src":"7493:0:75"},"scope":17947,"src":"7402:343:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17306,"nodeType":"Block","src":"7845:257:75","statements":[{"expression":{"arguments":[{"id":17284,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17278,"src":"7869:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17285,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"7873:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"7873:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Suspended","nodeType":"MemberAccess","referencedDeclaration":2897,"src":"7873:35:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17283,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"7856:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7856:53:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17289,"nodeType":"ExpressionStatement","src":"7856:53:75"},{"eventCall":{"arguments":[{"id":17291,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17278,"src":"7947:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17290,"name":"LogComponentSuspended","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"7925:21:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7925:25:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17293,"nodeType":"EmitStatement","src":"7920:30:75"},{"assignments":[17296],"declarations":[{"constant":false,"id":17296,"mutability":"mutable","name":"component","nameLocation":"8028:9:75","nodeType":"VariableDeclaration","scope":17306,"src":"8017:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17295,"nodeType":"UserDefinedTypeName","pathNode":{"id":17294,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"8017:10:75"},"referencedDeclaration":2988,"src":"8017:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17300,"initialValue":{"arguments":[{"id":17298,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17278,"src":"8053:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17297,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"8040:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8040:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"8017:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17301,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17296,"src":"8067:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"suspendCallback","nodeType":"MemberAccess","referencedDeclaration":2975,"src":"8067:25:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8067:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17305,"nodeType":"ExpressionStatement","src":"8067:27:75"}]},"functionSelector":"4b865846","id":17307,"implemented":true,"kind":"function","modifiers":[{"id":17281,"modifierName":{"id":17280,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":17025,"src":"7811:27:75"},"nodeType":"ModifierInvocation","src":"7811:27:75"}],"name":"suspend","nameLocation":"7762:7:75","nodeType":"FunctionDefinition","parameters":{"id":17279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17278,"mutability":"mutable","name":"id","nameLocation":"7778:2:75","nodeType":"VariableDeclaration","scope":17307,"src":"7770:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17277,"name":"uint256","nodeType":"ElementaryTypeName","src":"7770:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7769:12:75"},"returnParameters":{"id":17282,"nodeType":"ParameterList","parameters":[],"src":"7845:0:75"},"scope":17947,"src":"7753:349:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17337,"nodeType":"Block","src":"8201:249:75","statements":[{"expression":{"arguments":[{"id":17315,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17309,"src":"8225:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17316,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"8229:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"8229:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"8229:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17314,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"8212:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8212:50:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17320,"nodeType":"ExpressionStatement","src":"8212:50:75"},{"eventCall":{"arguments":[{"id":17322,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17309,"src":"8298:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17321,"name":"LogComponentResumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5050,"src":"8278:19:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8278:23:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17324,"nodeType":"EmitStatement","src":"8273:28:75"},{"assignments":[17327],"declarations":[{"constant":false,"id":17327,"mutability":"mutable","name":"component","nameLocation":"8377:9:75","nodeType":"VariableDeclaration","scope":17337,"src":"8366:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17326,"nodeType":"UserDefinedTypeName","pathNode":{"id":17325,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"8366:10:75"},"referencedDeclaration":2988,"src":"8366:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17331,"initialValue":{"arguments":[{"id":17329,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17309,"src":"8402:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17328,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"8389:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8389:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"8366:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17332,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17327,"src":"8416:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resumeCallback","nodeType":"MemberAccess","referencedDeclaration":2978,"src":"8416:24:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8416:26:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17336,"nodeType":"ExpressionStatement","src":"8416:26:75"}]},"functionSelector":"414000b5","id":17338,"implemented":true,"kind":"function","modifiers":[{"id":17312,"modifierName":{"id":17311,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":17025,"src":"8167:27:75"},"nodeType":"ModifierInvocation","src":"8167:27:75"}],"name":"resume","nameLocation":"8119:6:75","nodeType":"FunctionDefinition","parameters":{"id":17310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17309,"mutability":"mutable","name":"id","nameLocation":"8134:2:75","nodeType":"VariableDeclaration","scope":17338,"src":"8126:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17308,"name":"uint256","nodeType":"ElementaryTypeName","src":"8126:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8125:12:75"},"returnParameters":{"id":17313,"nodeType":"ParameterList","parameters":[],"src":"8201:0:75"},"scope":17947,"src":"8110:340:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17368,"nodeType":"Block","src":"8546:246:75","statements":[{"expression":{"arguments":[{"id":17346,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"8570:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17347,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"8574:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"8574:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Paused","nodeType":"MemberAccess","referencedDeclaration":2896,"src":"8574:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17345,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"8557:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8557:50:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17351,"nodeType":"ExpressionStatement","src":"8557:50:75"},{"eventCall":{"arguments":[{"id":17353,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"8642:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17352,"name":"LogComponentPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5054,"src":"8623:18:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8623:22:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17355,"nodeType":"EmitStatement","src":"8618:27:75"},{"assignments":[17358],"declarations":[{"constant":false,"id":17358,"mutability":"mutable","name":"component","nameLocation":"8720:9:75","nodeType":"VariableDeclaration","scope":17368,"src":"8709:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17357,"nodeType":"UserDefinedTypeName","pathNode":{"id":17356,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"8709:10:75"},"referencedDeclaration":2988,"src":"8709:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17362,"initialValue":{"arguments":[{"id":17360,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"8745:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17359,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"8732:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8732:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"8709:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17363,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17358,"src":"8759:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pauseCallback","nodeType":"MemberAccess","referencedDeclaration":2981,"src":"8759:23:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8759:25:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17367,"nodeType":"ExpressionStatement","src":"8759:25:75"}]},"functionSelector":"136439dd","id":17369,"implemented":true,"kind":"function","modifiers":[{"id":17343,"modifierName":{"id":17342,"name":"onlyComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":17011,"src":"8514:25:75"},"nodeType":"ModifierInvocation","src":"8514:25:75"}],"name":"pause","nameLocation":"8467:5:75","nodeType":"FunctionDefinition","parameters":{"id":17341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17340,"mutability":"mutable","name":"id","nameLocation":"8481:2:75","nodeType":"VariableDeclaration","scope":17369,"src":"8473:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17339,"name":"uint256","nodeType":"ElementaryTypeName","src":"8473:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8472:12:75"},"returnParameters":{"id":17344,"nodeType":"ParameterList","parameters":[],"src":"8546:0:75"},"scope":17947,"src":"8458:334:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17399,"nodeType":"Block","src":"8890:252:75","statements":[{"expression":{"arguments":[{"id":17377,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17371,"src":"8914:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17378,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"8918:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"8918:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"8918:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17376,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"8901:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8901:50:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17382,"nodeType":"ExpressionStatement","src":"8901:50:75"},{"eventCall":{"arguments":[{"id":17384,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17371,"src":"8988:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17383,"name":"LogComponentUnpaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5058,"src":"8967:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8967:24:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17386,"nodeType":"EmitStatement","src":"8962:29:75"},{"assignments":[17389],"declarations":[{"constant":false,"id":17389,"mutability":"mutable","name":"component","nameLocation":"9068:9:75","nodeType":"VariableDeclaration","scope":17399,"src":"9057:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17388,"nodeType":"UserDefinedTypeName","pathNode":{"id":17387,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"9057:10:75"},"referencedDeclaration":2988,"src":"9057:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17393,"initialValue":{"arguments":[{"id":17391,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17371,"src":"9093:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17390,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"9080:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9080:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"9057:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17394,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17389,"src":"9107:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unpauseCallback","nodeType":"MemberAccess","referencedDeclaration":2984,"src":"9107:25:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9107:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17398,"nodeType":"ExpressionStatement","src":"9107:27:75"}]},"functionSelector":"fabc1cbc","id":17400,"implemented":true,"kind":"function","modifiers":[{"id":17374,"modifierName":{"id":17373,"name":"onlyComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":17011,"src":"8858:25:75"},"nodeType":"ModifierInvocation","src":"8858:25:75"}],"name":"unpause","nameLocation":"8809:7:75","nodeType":"FunctionDefinition","parameters":{"id":17372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17371,"mutability":"mutable","name":"id","nameLocation":"8825:2:75","nodeType":"VariableDeclaration","scope":17400,"src":"8817:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17370,"name":"uint256","nodeType":"ElementaryTypeName","src":"8817:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8816:12:75"},"returnParameters":{"id":17375,"nodeType":"ParameterList","parameters":[],"src":"8890:0:75"},"scope":17947,"src":"8800:342:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17430,"nodeType":"Block","src":"9258:254:75","statements":[{"expression":{"arguments":[{"id":17408,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17402,"src":"9282:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17409,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"9286:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"9286:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Archived","nodeType":"MemberAccess","referencedDeclaration":2898,"src":"9286:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17407,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"9269:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9269:52:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17413,"nodeType":"ExpressionStatement","src":"9269:52:75"},{"eventCall":{"arguments":[{"id":17415,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17402,"src":"9358:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17414,"name":"LogComponentArchived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5062,"src":"9337:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9337:24:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17417,"nodeType":"EmitStatement","src":"9332:29:75"},{"assignments":[17420],"declarations":[{"constant":false,"id":17420,"mutability":"mutable","name":"component","nameLocation":"9438:9:75","nodeType":"VariableDeclaration","scope":17430,"src":"9427:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17419,"nodeType":"UserDefinedTypeName","pathNode":{"id":17418,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"9427:10:75"},"referencedDeclaration":2988,"src":"9427:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17424,"initialValue":{"arguments":[{"id":17422,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17402,"src":"9463:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17421,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"9450:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9450:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"9427:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17425,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17420,"src":"9477:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"archiveCallback","nodeType":"MemberAccess","referencedDeclaration":2987,"src":"9477:25:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9477:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17429,"nodeType":"ExpressionStatement","src":"9477:27:75"}]},"functionSelector":"6bc607b3","id":17431,"implemented":true,"kind":"function","modifiers":[{"id":17405,"modifierName":{"id":17404,"name":"onlyComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":17011,"src":"9226:25:75"},"nodeType":"ModifierInvocation","src":"9226:25:75"}],"name":"archiveFromComponentOwner","nameLocation":"9159:25:75","nodeType":"FunctionDefinition","parameters":{"id":17403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17402,"mutability":"mutable","name":"id","nameLocation":"9193:2:75","nodeType":"VariableDeclaration","scope":17431,"src":"9185:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17401,"name":"uint256","nodeType":"ElementaryTypeName","src":"9185:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9184:12:75"},"returnParameters":{"id":17406,"nodeType":"ParameterList","parameters":[],"src":"9258:0:75"},"scope":17947,"src":"9150:362:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17461,"nodeType":"Block","src":"9632:254:75","statements":[{"expression":{"arguments":[{"id":17439,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17433,"src":"9656:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":17440,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"9660:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"9660:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Archived","nodeType":"MemberAccess","referencedDeclaration":2898,"src":"9660:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17438,"name":"_changeState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17809,"src":"9643:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState)"}},"id":17443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9643:52:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17444,"nodeType":"ExpressionStatement","src":"9643:52:75"},{"eventCall":{"arguments":[{"id":17446,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17433,"src":"9732:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17445,"name":"LogComponentArchived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5062,"src":"9711:20:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":17447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9711:24:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17448,"nodeType":"EmitStatement","src":"9706:29:75"},{"assignments":[17451],"declarations":[{"constant":false,"id":17451,"mutability":"mutable","name":"component","nameLocation":"9812:9:75","nodeType":"VariableDeclaration","scope":17461,"src":"9801:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17450,"nodeType":"UserDefinedTypeName","pathNode":{"id":17449,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"9801:10:75"},"referencedDeclaration":2988,"src":"9801:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":17455,"initialValue":{"arguments":[{"id":17453,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17433,"src":"9837:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17452,"name":"getComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"9824:12:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view returns (contract IComponent)"}},"id":17454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9824:16:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"9801:39:75"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17456,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17451,"src":"9851:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"archiveCallback","nodeType":"MemberAccess","referencedDeclaration":2987,"src":"9851:25:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":17459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9851:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17460,"nodeType":"ExpressionStatement","src":"9851:27:75"}]},"functionSelector":"0f5da3a6","id":17462,"implemented":true,"kind":"function","modifiers":[{"id":17436,"modifierName":{"id":17435,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":17025,"src":"9598:27:75"},"nodeType":"ModifierInvocation","src":"9598:27:75"}],"name":"archiveFromInstanceOperator","nameLocation":"9529:27:75","nodeType":"FunctionDefinition","parameters":{"id":17434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17433,"mutability":"mutable","name":"id","nameLocation":"9565:2:75","nodeType":"VariableDeclaration","scope":17462,"src":"9557:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17432,"name":"uint256","nodeType":"ElementaryTypeName","src":"9557:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9556:12:75"},"returnParameters":{"id":17437,"nodeType":"ParameterList","parameters":[],"src":"9632:0:75"},"scope":17947,"src":"9520:366:75","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":17489,"nodeType":"Block","src":"9971:139:75","statements":[{"expression":{"id":17474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17470,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17468,"src":"9982:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":17471,"name":"_componentById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16969,"src":"9994:14:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IComponent_$2988_$","typeString":"mapping(uint256 => contract IComponent)"}},"id":17473,"indexExpression":{"id":17472,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17464,"src":"10009:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9994:18:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"src":"9982:30:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":17475,"nodeType":"ExpressionStatement","src":"9982:30:75"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":17479,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17468,"src":"10039:9:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":17478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10031:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17477,"name":"address","nodeType":"ElementaryTypeName","src":"10031:7:75","typeDescriptions":{}}},"id":17480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10031:18:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":17483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10061:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10053:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17481,"name":"address","nodeType":"ElementaryTypeName","src":"10053:7:75","typeDescriptions":{}}},"id":17484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10053:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10031:32:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030353a494e56414c49445f434f4d504f4e454e545f4944","id":17486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10065:36:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca1c305a0e9af3ea3550a0a1227e5f520650593127153fff20641c9f0d853894","typeString":"literal_string \"ERROR:CCR-005:INVALID_COMPONENT_ID\""},"value":"ERROR:CCR-005:INVALID_COMPONENT_ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ca1c305a0e9af3ea3550a0a1227e5f520650593127153fff20641c9f0d853894","typeString":"literal_string \"ERROR:CCR-005:INVALID_COMPONENT_ID\""}],"id":17476,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10023:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10023:79:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17488,"nodeType":"ExpressionStatement","src":"10023:79:75"}]},"functionSelector":"4f27da18","id":17490,"implemented":true,"kind":"function","modifiers":[],"name":"getComponent","nameLocation":"9903:12:75","nodeType":"FunctionDefinition","parameters":{"id":17465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17464,"mutability":"mutable","name":"id","nameLocation":"9924:2:75","nodeType":"VariableDeclaration","scope":17490,"src":"9916:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17463,"name":"uint256","nodeType":"ElementaryTypeName","src":"9916:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9915:12:75"},"returnParameters":{"id":17469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17468,"mutability":"mutable","name":"component","nameLocation":"9960:9:75","nodeType":"VariableDeclaration","scope":17490,"src":"9949:20:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":17467,"nodeType":"UserDefinedTypeName","pathNode":{"id":17466,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"9949:10:75"},"referencedDeclaration":2988,"src":"9949:10:75","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"9948:22:75"},"scope":17947,"src":"9894:216:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17520,"nodeType":"Block","src":"10201:216:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17498,"name":"componentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17492,"src":"10220:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":17501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10248:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":17500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10240:7:75","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":17499,"name":"address","nodeType":"ElementaryTypeName","src":"10240:7:75","typeDescriptions":{}}},"id":17502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10240:10:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10220:30:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030363a434f4d504f4e454e545f414444524553535f5a45524f","id":17504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10252:38:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_349494011e9b14ad7882b684a4d52f7565404f3853de6409d514462bbbb08f64","typeString":"literal_string \"ERROR:CCR-006:COMPONENT_ADDRESS_ZERO\""},"value":"ERROR:CCR-006:COMPONENT_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_349494011e9b14ad7882b684a4d52f7565404f3853de6409d514462bbbb08f64","typeString":"literal_string \"ERROR:CCR-006:COMPONENT_ADDRESS_ZERO\""}],"id":17497,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10212:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10212:79:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17506,"nodeType":"ExpressionStatement","src":"10212:79:75"},{"expression":{"id":17511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17507,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17495,"src":"10302:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":17508,"name":"_componentIdByAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16977,"src":"10307:21:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":17510,"indexExpression":{"id":17509,"name":"componentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17492,"src":"10329:16:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10307:39:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10302:44:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17512,"nodeType":"ExpressionStatement","src":"10302:44:75"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17514,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17495,"src":"10367:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":17515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10372:1:75","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10367:6:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3030373a434f4d504f4e454e545f554e4b4e4f574e","id":17517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10375:33:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_5aa9184ead1177203c54428ab95078928f4521a9c578f8772ed90c5ea1b644ac","typeString":"literal_string \"ERROR:CCR-007:COMPONENT_UNKNOWN\""},"value":"ERROR:CCR-007:COMPONENT_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5aa9184ead1177203c54428ab95078928f4521a9c578f8772ed90c5ea1b644ac","typeString":"literal_string \"ERROR:CCR-007:COMPONENT_UNKNOWN\""}],"id":17513,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10359:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10359:50:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17519,"nodeType":"ExpressionStatement","src":"10359:50:75"}]},"functionSelector":"2b1c7f73","id":17521,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentId","nameLocation":"10127:14:75","nodeType":"FunctionDefinition","parameters":{"id":17493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17492,"mutability":"mutable","name":"componentAddress","nameLocation":"10150:16:75","nodeType":"VariableDeclaration","scope":17521,"src":"10142:24:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17491,"name":"address","nodeType":"ElementaryTypeName","src":"10142:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10141:26:75"},"returnParameters":{"id":17496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17495,"mutability":"mutable","name":"id","nameLocation":"10197:2:75","nodeType":"VariableDeclaration","scope":17521,"src":"10189:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17494,"name":"uint256","nodeType":"ElementaryTypeName","src":"10189:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10188:12:75"},"scope":17947,"src":"10118:299:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17567,"nodeType":"Block","src":"10524:434:75","statements":[{"condition":{"arguments":[{"id":17531,"name":"_products","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"10562:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17532,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17523,"src":"10573:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17529,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10539:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"10539:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10539:37:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"id":17541,"name":"_oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"10677:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17542,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17523,"src":"10687:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17539,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10654:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"10654:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10654:36:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"arguments":[{"id":17551,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16991,"src":"10790:10:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17552,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17523,"src":"10802:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17549,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10767:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"10767:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10767:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17563,"nodeType":"Block","src":"10880:71:75","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a4343522d3030383a494e56414c49445f434f4d504f4e454e545f4944","id":17560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10902:36:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_67050a9f7590899f726ff1d1acfe3fa473b09c82fe38e2fb1e74ce440fa5d62b","typeString":"literal_string \"ERROR:CCR-008:INVALID_COMPONENT_ID\""},"value":"ERROR:CCR-008:INVALID_COMPONENT_ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67050a9f7590899f726ff1d1acfe3fa473b09c82fe38e2fb1e74ce440fa5d62b","typeString":"literal_string \"ERROR:CCR-008:INVALID_COMPONENT_ID\""}],"id":17559,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"10895:6:75","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":17561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10895:44:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17562,"nodeType":"ExpressionStatement","src":"10895:44:75"}]},"id":17564,"nodeType":"IfStatement","src":"10763:188:75","trueBody":{"id":17558,"nodeType":"Block","src":"10807:67:75","statements":[{"expression":{"expression":{"expression":{"id":17554,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"10829:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"10829:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"10829:33:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":17528,"id":17557,"nodeType":"Return","src":"10822:40:75"}]}},"id":17565,"nodeType":"IfStatement","src":"10650:301:75","trueBody":{"id":17548,"nodeType":"Block","src":"10692:65:75","statements":[{"expression":{"expression":{"expression":{"id":17544,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"10714:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"10714:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Oracle","nodeType":"MemberAccess","referencedDeclaration":2888,"src":"10714:31:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":17528,"id":17547,"nodeType":"Return","src":"10707:38:75"}]}},"id":17566,"nodeType":"IfStatement","src":"10535:416:75","trueBody":{"id":17538,"nodeType":"Block","src":"10578:66:75","statements":[{"expression":{"expression":{"expression":{"id":17534,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"10600:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"10600:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Product","nodeType":"MemberAccess","referencedDeclaration":2889,"src":"10600:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":17528,"id":17537,"nodeType":"Return","src":"10593:39:75"}]}}]},"functionSelector":"dd51c86a","id":17568,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentType","nameLocation":"10434:16:75","nodeType":"FunctionDefinition","parameters":{"id":17524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17523,"mutability":"mutable","name":"id","nameLocation":"10459:2:75","nodeType":"VariableDeclaration","scope":17568,"src":"10451:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17522,"name":"uint256","nodeType":"ElementaryTypeName","src":"10451:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10450:12:75"},"returnParameters":{"id":17528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17527,"mutability":"mutable","name":"componentType","nameLocation":"10509:13:75","nodeType":"VariableDeclaration","scope":17568,"src":"10484:38:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":17526,"nodeType":"UserDefinedTypeName","pathNode":{"id":17525,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"10484:24:75"},"referencedDeclaration":2891,"src":"10484:24:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"10483:40:75"},"scope":17947,"src":"10425:533:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17580,"nodeType":"Block","src":"11068:45:75","statements":[{"expression":{"baseExpression":{"id":17576,"name":"_componentState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16982,"src":"11086:15:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_enum$_ComponentState_$2899_$","typeString":"mapping(uint256 => enum IComponent.ComponentState)"}},"id":17578,"indexExpression":{"id":17577,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17570,"src":"11102:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11086:19:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"functionReturnParameters":17575,"id":17579,"nodeType":"Return","src":"11079:26:75"}]},"functionSelector":"5e966e45","id":17581,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentState","nameLocation":"10975:17:75","nodeType":"FunctionDefinition","parameters":{"id":17571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17570,"mutability":"mutable","name":"id","nameLocation":"11001:2:75","nodeType":"VariableDeclaration","scope":17581,"src":"10993:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17569,"name":"uint256","nodeType":"ElementaryTypeName","src":"10993:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10992:12:75"},"returnParameters":{"id":17575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17574,"mutability":"mutable","name":"componentState","nameLocation":"11052:14:75","nodeType":"VariableDeclaration","scope":17581,"src":"11026:40:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":17573,"nodeType":"UserDefinedTypeName","pathNode":{"id":17572,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"11026:25:75"},"referencedDeclaration":2899,"src":"11026:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"11025:42:75"},"scope":17947,"src":"10966:147:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17594,"nodeType":"Block","src":"11194:57:75","statements":[{"expression":{"arguments":[{"id":17590,"name":"_oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"11229:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17591,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17583,"src":"11239:3:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17588,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"11212:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11408,"src":"11212:16:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":17592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11212:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17587,"id":17593,"nodeType":"Return","src":"11205:38:75"}]},"functionSelector":"a5c0f5a1","id":17595,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleId","nameLocation":"11130:11:75","nodeType":"FunctionDefinition","parameters":{"id":17584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17583,"mutability":"mutable","name":"idx","nameLocation":"11150:3:75","nodeType":"VariableDeclaration","scope":17595,"src":"11142:11:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17582,"name":"uint256","nodeType":"ElementaryTypeName","src":"11142:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11141:13:75"},"returnParameters":{"id":17587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17586,"mutability":"mutable","name":"oracleId","nameLocation":"11184:8:75","nodeType":"VariableDeclaration","scope":17595,"src":"11176:16:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17585,"name":"uint256","nodeType":"ElementaryTypeName","src":"11176:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11175:18:75"},"scope":17947,"src":"11121:130:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17608,"nodeType":"Block","src":"11336:59:75","statements":[{"expression":{"arguments":[{"id":17604,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16991,"src":"11371:10:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17605,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17597,"src":"11383:3:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17602,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"11354:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11408,"src":"11354:16:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":17606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11354:33:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17601,"id":17607,"nodeType":"Return","src":"11347:40:75"}]},"functionSelector":"ff3f3883","id":17609,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolId","nameLocation":"11268:13:75","nodeType":"FunctionDefinition","parameters":{"id":17598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17597,"mutability":"mutable","name":"idx","nameLocation":"11290:3:75","nodeType":"VariableDeclaration","scope":17609,"src":"11282:11:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17596,"name":"uint256","nodeType":"ElementaryTypeName","src":"11282:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11281:13:75"},"returnParameters":{"id":17601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17600,"mutability":"mutable","name":"riskpoolId","nameLocation":"11324:10:75","nodeType":"VariableDeclaration","scope":17609,"src":"11316:18:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17599,"name":"uint256","nodeType":"ElementaryTypeName","src":"11316:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11315:20:75"},"scope":17947,"src":"11259:136:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17622,"nodeType":"Block","src":"11478:58:75","statements":[{"expression":{"arguments":[{"id":17618,"name":"_products","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"11513:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17619,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17611,"src":"11524:3:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17616,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"11496:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11408,"src":"11496:16:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":17620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11496:32:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17615,"id":17621,"nodeType":"Return","src":"11489:39:75"}]},"functionSelector":"9f77a605","id":17623,"implemented":true,"kind":"function","modifiers":[],"name":"getProductId","nameLocation":"11412:12:75","nodeType":"FunctionDefinition","parameters":{"id":17612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17611,"mutability":"mutable","name":"idx","nameLocation":"11433:3:75","nodeType":"VariableDeclaration","scope":17623,"src":"11425:11:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17610,"name":"uint256","nodeType":"ElementaryTypeName","src":"11425:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11424:13:75"},"returnParameters":{"id":17615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17614,"mutability":"mutable","name":"productId","nameLocation":"11467:9:75","nodeType":"VariableDeclaration","scope":17623,"src":"11459:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17613,"name":"uint256","nodeType":"ElementaryTypeName","src":"11459:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11458:19:75"},"scope":17947,"src":"11403:133:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17669,"nodeType":"Block","src":"11641:406:75","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":17635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17631,"name":"componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17626,"src":"11656:13:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17632,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"11673:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"11673:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Product","nodeType":"MemberAccess","referencedDeclaration":2889,"src":"11673:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"11656:49:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":17645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17641,"name":"componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17626,"src":"11767:13:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17642,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"11784:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"11784:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Oracle","nodeType":"MemberAccess","referencedDeclaration":2888,"src":"11784:31:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"11767:48:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":17655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17651,"name":"componentType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17626,"src":"11879:13:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17652,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"11896:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"11896:24:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":17654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"11896:33:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"11879:50:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17665,"nodeType":"Block","src":"11989:51:75","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a4343522d3031303a434f4d504f4e454e545f545950455f554e4b4e4f574e","id":17662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11998:38:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1c08fa2a8ffb36bf794006b5c478bd24ca48d907fc7830cb558a4b14cd289c6","typeString":"literal_string \"ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN\""},"value":"ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1c08fa2a8ffb36bf794006b5c478bd24ca48d907fc7830cb558a4b14cd289c6","typeString":"literal_string \"ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN\""}],"id":17661,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"11991:6:75","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":17663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11991:46:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17664,"nodeType":"ExpressionStatement","src":"11991:46:75"}]},"id":17666,"nodeType":"IfStatement","src":"11875:165:75","trueBody":{"id":17660,"nodeType":"Block","src":"11931:43:75","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17656,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"11940:7:75","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":17657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpoolKeeperRole","nodeType":"MemberAccess","referencedDeclaration":4795,"src":"11940:29:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11940:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17630,"id":17659,"nodeType":"Return","src":"11933:38:75"}]}},"id":17667,"nodeType":"IfStatement","src":"11763:277:75","trueBody":{"id":17650,"nodeType":"Block","src":"11817:43:75","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17646,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"11826:7:75","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":17647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOracleProviderRole","nodeType":"MemberAccess","referencedDeclaration":4790,"src":"11826:29:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11826:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17630,"id":17649,"nodeType":"Return","src":"11819:38:75"}]}},"id":17668,"nodeType":"IfStatement","src":"11652:388:75","trueBody":{"id":17640,"nodeType":"Block","src":"11707:41:75","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":17636,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"11716:7:75","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":17637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProductOwnerRole","nodeType":"MemberAccess","referencedDeclaration":4785,"src":"11716:27:75","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":17638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11716:29:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17630,"id":17639,"nodeType":"Return","src":"11709:36:75"}]}}]},"functionSelector":"5af89a47","id":17670,"implemented":true,"kind":"function","modifiers":[],"name":"getRequiredRole","nameLocation":"11553:15:75","nodeType":"FunctionDefinition","parameters":{"id":17627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17626,"mutability":"mutable","name":"componentType","nameLocation":"11594:13:75","nodeType":"VariableDeclaration","scope":17670,"src":"11569:38:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":17625,"nodeType":"UserDefinedTypeName","pathNode":{"id":17624,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"11569:24:75"},"referencedDeclaration":2891,"src":"11569:24:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"11568:40:75"},"returnParameters":{"id":17630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17670,"src":"11632:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11632:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11631:9:75"},"scope":17947,"src":"11544:503:75","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":17677,"nodeType":"Block","src":"12113:27:75","statements":[{"expression":{"id":17675,"name":"_componentCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16993,"src":"12122:15:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17674,"id":17676,"nodeType":"Return","src":"12115:22:75"}]},"functionSelector":"ba62fbe4","id":17678,"implemented":true,"kind":"function","modifiers":[],"name":"components","nameLocation":"12064:10:75","nodeType":"FunctionDefinition","parameters":{"id":17671,"nodeType":"ParameterList","parameters":[],"src":"12074:2:75"},"returnParameters":{"id":17674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17673,"mutability":"mutable","name":"count","nameLocation":"12106:5:75","nodeType":"VariableDeclaration","scope":17678,"src":"12098:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17672,"name":"uint256","nodeType":"ElementaryTypeName","src":"12098:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12097:15:75"},"scope":17947,"src":"12055:85:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17688,"nodeType":"Block","src":"12202:43:75","statements":[{"expression":{"arguments":[{"id":17685,"name":"_products","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"12232:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":17683,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12211:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"12211:20:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":17686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12211:31:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17682,"id":17687,"nodeType":"Return","src":"12204:38:75"}]},"functionSelector":"c71e261f","id":17689,"implemented":true,"kind":"function","modifiers":[],"name":"products","nameLocation":"12155:8:75","nodeType":"FunctionDefinition","parameters":{"id":17679,"nodeType":"ParameterList","parameters":[],"src":"12163:2:75"},"returnParameters":{"id":17682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17681,"mutability":"mutable","name":"count","nameLocation":"12195:5:75","nodeType":"VariableDeclaration","scope":17689,"src":"12187:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17680,"name":"uint256","nodeType":"ElementaryTypeName","src":"12187:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12186:15:75"},"scope":17947,"src":"12146:99:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17699,"nodeType":"Block","src":"12306:42:75","statements":[{"expression":{"arguments":[{"id":17696,"name":"_oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"12336:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":17694,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12315:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"12315:20:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":17697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12315:30:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17693,"id":17698,"nodeType":"Return","src":"12308:37:75"}]},"functionSelector":"2857373a","id":17700,"implemented":true,"kind":"function","modifiers":[],"name":"oracles","nameLocation":"12260:7:75","nodeType":"FunctionDefinition","parameters":{"id":17690,"nodeType":"ParameterList","parameters":[],"src":"12267:2:75"},"returnParameters":{"id":17693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17692,"mutability":"mutable","name":"count","nameLocation":"12299:5:75","nodeType":"VariableDeclaration","scope":17700,"src":"12291:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17691,"name":"uint256","nodeType":"ElementaryTypeName","src":"12291:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12290:15:75"},"scope":17947,"src":"12251:97:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17710,"nodeType":"Block","src":"12411:44:75","statements":[{"expression":{"arguments":[{"id":17707,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16991,"src":"12441:10:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":17705,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12420:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"12420:20:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":17708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12420:32:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17704,"id":17709,"nodeType":"Return","src":"12413:39:75"}]},"functionSelector":"a054381f","id":17711,"implemented":true,"kind":"function","modifiers":[],"name":"riskpools","nameLocation":"12363:9:75","nodeType":"FunctionDefinition","parameters":{"id":17701,"nodeType":"ParameterList","parameters":[],"src":"12372:2:75"},"returnParameters":{"id":17704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17703,"mutability":"mutable","name":"count","nameLocation":"12404:5:75","nodeType":"VariableDeclaration","scope":17711,"src":"12396:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17702,"name":"uint256","nodeType":"ElementaryTypeName","src":"12396:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12395:15:75"},"scope":17947,"src":"12354:101:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17724,"nodeType":"Block","src":"12521:49:75","statements":[{"expression":{"arguments":[{"id":17720,"name":"_products","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16985,"src":"12553:9:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17721,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17713,"src":"12564:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17718,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12530:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"12530:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12530:37:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17717,"id":17723,"nodeType":"Return","src":"12523:44:75"}]},"functionSelector":"3920200c","id":17725,"implemented":true,"kind":"function","modifiers":[],"name":"isProduct","nameLocation":"12472:9:75","nodeType":"FunctionDefinition","parameters":{"id":17714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17713,"mutability":"mutable","name":"id","nameLocation":"12490:2:75","nodeType":"VariableDeclaration","scope":17725,"src":"12482:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17712,"name":"uint256","nodeType":"ElementaryTypeName","src":"12482:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12481:12:75"},"returnParameters":{"id":17717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17716,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17725,"src":"12515:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17715,"name":"bool","nodeType":"ElementaryTypeName","src":"12515:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12514:6:75"},"scope":17947,"src":"12463:107:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17738,"nodeType":"Block","src":"12635:48:75","statements":[{"expression":{"arguments":[{"id":17734,"name":"_oracles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16988,"src":"12667:8:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17735,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17727,"src":"12677:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17732,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12644:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"12644:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12644:36:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17731,"id":17737,"nodeType":"Return","src":"12637:43:75"}]},"functionSelector":"09f63ed9","id":17739,"implemented":true,"kind":"function","modifiers":[],"name":"isOracle","nameLocation":"12587:8:75","nodeType":"FunctionDefinition","parameters":{"id":17728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17727,"mutability":"mutable","name":"id","nameLocation":"12604:2:75","nodeType":"VariableDeclaration","scope":17739,"src":"12596:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17726,"name":"uint256","nodeType":"ElementaryTypeName","src":"12596:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12595:12:75"},"returnParameters":{"id":17731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17730,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17739,"src":"12629:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17729,"name":"bool","nodeType":"ElementaryTypeName","src":"12629:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12628:6:75"},"scope":17947,"src":"12578:105:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17752,"nodeType":"Block","src":"12750:50:75","statements":[{"expression":{"arguments":[{"id":17748,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16991,"src":"12782:10:75","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":17749,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17741,"src":"12794:2:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17746,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"12759:13:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":17747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"12759:22:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":17750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12759:38:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":17745,"id":17751,"nodeType":"Return","src":"12752:45:75"}]},"functionSelector":"ba80b8ed","id":17753,"implemented":true,"kind":"function","modifiers":[],"name":"isRiskpool","nameLocation":"12700:10:75","nodeType":"FunctionDefinition","parameters":{"id":17742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17741,"mutability":"mutable","name":"id","nameLocation":"12719:2:75","nodeType":"VariableDeclaration","scope":17753,"src":"12711:10:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17740,"name":"uint256","nodeType":"ElementaryTypeName","src":"12711:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12710:12:75"},"returnParameters":{"id":17745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":17753,"src":"12744:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17743,"name":"bool","nodeType":"ElementaryTypeName","src":"12744:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12743:6:75"},"scope":17947,"src":"12691:109:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17773,"nodeType":"Block","src":"12892:142:75","statements":[{"expression":{"arguments":[{"arguments":[{"id":17762,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17755,"src":"12921:9:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17761,"name":"isProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17725,"src":"12911:9:75","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":17763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12911:20:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3031313a554e4b4e4f574e5f50524f445543545f4944","id":17764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12933:34:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_709b753f017c54bf3895eff7607622481d3ca03b6f3de6ef863313f4912d5c91","typeString":"literal_string \"ERROR:CCR-011:UNKNOWN_PRODUCT_ID\""},"value":"ERROR:CCR-011:UNKNOWN_PRODUCT_ID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_709b753f017c54bf3895eff7607622481d3ca03b6f3de6ef863313f4912d5c91","typeString":"literal_string \"ERROR:CCR-011:UNKNOWN_PRODUCT_ID\""}],"id":17760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12903:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12903:65:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17766,"nodeType":"ExpressionStatement","src":"12903:65:75"},{"expression":{"id":17771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17767,"name":"_policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17758,"src":"12979:11:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":17768,"name":"_policyFlowByProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16997,"src":"12993:22:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":17770,"indexExpression":{"id":17769,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17755,"src":"13016:9:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12993:33:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12979:47:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17772,"nodeType":"ExpressionStatement","src":"12979:47:75"}]},"functionSelector":"e61ae297","id":17774,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyFlow","nameLocation":"12817:13:75","nodeType":"FunctionDefinition","parameters":{"id":17756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17755,"mutability":"mutable","name":"productId","nameLocation":"12839:9:75","nodeType":"VariableDeclaration","scope":17774,"src":"12831:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17754,"name":"uint256","nodeType":"ElementaryTypeName","src":"12831:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12830:19:75"},"returnParameters":{"id":17759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17758,"mutability":"mutable","name":"_policyFlow","nameLocation":"12879:11:75","nodeType":"VariableDeclaration","scope":17774,"src":"12871:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17757,"name":"address","nodeType":"ElementaryTypeName","src":"12871:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12870:21:75"},"scope":17947,"src":"12808:226:75","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":17808,"nodeType":"Block","src":"13130:323:75","statements":[{"assignments":[17786],"declarations":[{"constant":false,"id":17786,"mutability":"mutable","name":"oldState","nameLocation":"13167:8:75","nodeType":"VariableDeclaration","scope":17808,"src":"13141:34:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":17785,"nodeType":"UserDefinedTypeName","pathNode":{"id":17784,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"13141:25:75"},"referencedDeclaration":2899,"src":"13141:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"id":17790,"initialValue":{"baseExpression":{"id":17787,"name":"_componentState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16982,"src":"13178:15:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_enum$_ComponentState_$2899_$","typeString":"mapping(uint256 => enum IComponent.ComponentState)"}},"id":17789,"indexExpression":{"id":17788,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17776,"src":"13194:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13178:28:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"VariableDeclarationStatement","src":"13141:65:75"},{"expression":{"arguments":[{"id":17792,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17786,"src":"13241:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},{"id":17793,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17779,"src":"13251:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17791,"name":"_checkStateTransition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17946,"src":"13219:21:75","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_ComponentState_$2899_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (enum IComponent.ComponentState,enum IComponent.ComponentState) pure"}},"id":17794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13219:41:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17795,"nodeType":"ExpressionStatement","src":"13219:41:75"},{"expression":{"id":17800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":17796,"name":"_componentState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16982,"src":"13271:15:75","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_enum$_ComponentState_$2899_$","typeString":"mapping(uint256 => enum IComponent.ComponentState)"}},"id":17798,"indexExpression":{"id":17797,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17776,"src":"13287:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13271:28:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":17799,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17779,"src":"13302:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"13271:39:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"id":17801,"nodeType":"ExpressionStatement","src":"13271:39:75"},{"eventCall":{"arguments":[{"id":17803,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17776,"src":"13413:11:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17804,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17786,"src":"13426:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},{"id":17805,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17779,"src":"13436:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}],"id":17802,"name":"LogComponentStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5072,"src":"13388:24:75","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_enum$_ComponentState_$2899_$_t_enum$_ComponentState_$2899_$returns$__$","typeString":"function (uint256,enum IComponent.ComponentState,enum IComponent.ComponentState)"}},"id":17806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13388:57:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17807,"nodeType":"EmitStatement","src":"13383:62:75"}]},"id":17809,"implemented":true,"kind":"function","modifiers":[],"name":"_changeState","nameLocation":"13051:12:75","nodeType":"FunctionDefinition","parameters":{"id":17780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17776,"mutability":"mutable","name":"componentId","nameLocation":"13072:11:75","nodeType":"VariableDeclaration","scope":17809,"src":"13064:19:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17775,"name":"uint256","nodeType":"ElementaryTypeName","src":"13064:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17779,"mutability":"mutable","name":"newState","nameLocation":"13111:8:75","nodeType":"VariableDeclaration","scope":17809,"src":"13085:34:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":17778,"nodeType":"UserDefinedTypeName","pathNode":{"id":17777,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"13085:25:75"},"referencedDeclaration":2899,"src":"13085:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"13063:57:75"},"returnParameters":{"id":17781,"nodeType":"ParameterList","parameters":[],"src":"13130:0:75"},"scope":17947,"src":"13042:411:75","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":17945,"nodeType":"Block","src":"13630:1610:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17819,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"13649:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":17820,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"13661:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"13649:20:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3032303a534f555243455f414e445f5441524745545f53544154455f4944454e544943414c","id":17822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13685:49:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b075609608efafdf82ca4cfa74bf357d9aad12ac8bb658b7fb7cfcfb10656bd","typeString":"literal_string \"ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL\""},"value":"ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b075609608efafdf82ca4cfa74bf357d9aad12ac8bb658b7fb7cfcfb10656bd","typeString":"literal_string \"ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL\""}],"id":17818,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13641:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13641:94:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17824,"nodeType":"ExpressionStatement","src":"13641:94:75"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17825,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"13760:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17826,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"13772:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"13772:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Created","nodeType":"MemberAccess","referencedDeclaration":2892,"src":"13772:33:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"13760:45:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17840,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"13961:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17841,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"13973:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"13973:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17843,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Proposed","nodeType":"MemberAccess","referencedDeclaration":2893,"src":"13973:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"13961:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17861,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"14229:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17862,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14241:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14241:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":2894,"src":"14241:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14229:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17871,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"14361:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17872,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14373:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14373:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"14373:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14361:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17892,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"14627:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17893,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14639:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14639:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Paused","nodeType":"MemberAccess","referencedDeclaration":2896,"src":"14639:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14627:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17913,"name":"oldState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"14891:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17914,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14903:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14903:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Suspended","nodeType":"MemberAccess","referencedDeclaration":2897,"src":"14903:35:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14891:47:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17938,"nodeType":"Block","src":"15157:76:75","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a4343522d3032373a494e495449414c5f53544154455f4e4f545f48414e444c4544","id":17935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15179:41:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_512ac6c7424b7e416123df2c876fbcb260e557a5e44ae55dbe69355255653f93","typeString":"literal_string \"ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED\""},"value":"ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_512ac6c7424b7e416123df2c876fbcb260e557a5e44ae55dbe69355255653f93","typeString":"literal_string \"ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED\""}],"id":17934,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"15172:6:75","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":17936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15172:49:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17937,"nodeType":"ExpressionStatement","src":"15172:49:75"}]},"id":17939,"nodeType":"IfStatement","src":"14887:346:75","trueBody":{"id":17933,"nodeType":"Block","src":"14940:211:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17919,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14963:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17920,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14975:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14975:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"14975:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14963:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17924,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"15028:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17925,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"15040:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"15040:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Archived","nodeType":"MemberAccess","referencedDeclaration":2898,"src":"15040:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"15028:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14963:111:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3032363a53555350454e4445445f494e56414c49445f5452414e534954494f4e","id":17930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15094:44:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_58a6319ab23087cefcdbcbd3c8e4c0242721e866c13cbc743fb203df63de1716","typeString":"literal_string \"ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION\""},"value":"ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_58a6319ab23087cefcdbcbd3c8e4c0242721e866c13cbc743fb203df63de1716","typeString":"literal_string \"ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION\""}],"id":17918,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14955:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14955:184:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17932,"nodeType":"ExpressionStatement","src":"14955:184:75"}]}},"id":17940,"nodeType":"IfStatement","src":"14623:610:75","trueBody":{"id":17912,"nodeType":"Block","src":"14673:208:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17898,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14696:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17899,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14708:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14708:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"14708:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14696:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17903,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14761:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17904,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14773:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14773:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Archived","nodeType":"MemberAccess","referencedDeclaration":2898,"src":"14773:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14761:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14696:111:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3032353a5041555345445f494e56414c49445f5452414e534954494f4e","id":17909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14827:41:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_0482b94049f0958858785a7e41524773ca88442982af776b7db627215a0937ca","typeString":"literal_string \"ERROR:CCR-025:PAUSED_INVALID_TRANSITION\""},"value":"ERROR:CCR-025:PAUSED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0482b94049f0958858785a7e41524773ca88442982af776b7db627215a0937ca","typeString":"literal_string \"ERROR:CCR-025:PAUSED_INVALID_TRANSITION\""}],"id":17897,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14688:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14688:181:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17911,"nodeType":"ExpressionStatement","src":"14688:181:75"}]}},"id":17941,"nodeType":"IfStatement","src":"14357:876:75","trueBody":{"id":17891,"nodeType":"Block","src":"14407:210:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17877,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14430:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17878,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14442:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14442:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Paused","nodeType":"MemberAccess","referencedDeclaration":2896,"src":"14442:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14430:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17882,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14496:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17883,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14508:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14508:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Suspended","nodeType":"MemberAccess","referencedDeclaration":2897,"src":"14508:35:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14496:47:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14430:113:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3032343a4143544956455f494e56414c49445f5452414e534954494f4e","id":17888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14563:41:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_aedba318da9c17b182ebb85736c0568cffa933b22def476bb1db2682f6fecda2","typeString":"literal_string \"ERROR:CCR-024:ACTIVE_INVALID_TRANSITION\""},"value":"ERROR:CCR-024:ACTIVE_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aedba318da9c17b182ebb85736c0568cffa933b22def476bb1db2682f6fecda2","typeString":"literal_string \"ERROR:CCR-024:ACTIVE_INVALID_TRANSITION\""}],"id":17876,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14422:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14422:183:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17890,"nodeType":"ExpressionStatement","src":"14422:183:75"}]}},"id":17942,"nodeType":"IfStatement","src":"14225:1008:75","trueBody":{"id":17870,"nodeType":"Block","src":"14277:74:75","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a4343522d3032333a4445434c494e45445f49535f46494e414c5f5354415445","id":17867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14299:39:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_42aa29d463e00aadde35312cfb43fe30bee16376ea01580e27b2dacd6cef5592","typeString":"literal_string \"ERROR:CCR-023:DECLINED_IS_FINAL_STATE\""},"value":"ERROR:CCR-023:DECLINED_IS_FINAL_STATE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42aa29d463e00aadde35312cfb43fe30bee16376ea01580e27b2dacd6cef5592","typeString":"literal_string \"ERROR:CCR-023:DECLINED_IS_FINAL_STATE\""}],"id":17866,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"14292:6:75","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":17868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14292:47:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17869,"nodeType":"ExpressionStatement","src":"14292:47:75"}]}},"id":17943,"nodeType":"IfStatement","src":"13957:1276:75","trueBody":{"id":17860,"nodeType":"Block","src":"14009:210:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17846,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14032:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17847,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14044:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14044:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"14044:32:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14032:44:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17851,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"14098:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17852,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"14110:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"14110:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":2894,"src":"14110:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"14098:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14032:112:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d32323a50524f504f5345445f494e56414c49445f5452414e534954494f4e","id":17857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14164:42:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b9aa6c2dd4c618aff287fe40145b03866d1f0f394ef1bd7eabcf15523e1a082","typeString":"literal_string \"ERROR:CCR-22:PROPOSED_INVALID_TRANSITION\""},"value":"ERROR:CCR-22:PROPOSED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b9aa6c2dd4c618aff287fe40145b03866d1f0f394ef1bd7eabcf15523e1a082","typeString":"literal_string \"ERROR:CCR-22:PROPOSED_INVALID_TRANSITION\""}],"id":17845,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14024:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14024:183:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17859,"nodeType":"ExpressionStatement","src":"14024:183:75"}]}},"id":17944,"nodeType":"IfStatement","src":"13756:1477:75","trueBody":{"id":17839,"nodeType":"Block","src":"13807:144:75","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":17835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":17831,"name":"newState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17815,"src":"13830:8:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":17832,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"13842:10:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":17833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"13842:25:75","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":17834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Proposed","nodeType":"MemberAccess","referencedDeclaration":2893,"src":"13842:34:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"13830:46:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4343522d3032313a435245415445445f494e56414c49445f5452414e534954494f4e","id":17836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13896:42:75","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f46e308fac0cff196aecf5e84c50b4060e83c7555cae1916f001746068e894c","typeString":"literal_string \"ERROR:CCR-021:CREATED_INVALID_TRANSITION\""},"value":"ERROR:CCR-021:CREATED_INVALID_TRANSITION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1f46e308fac0cff196aecf5e84c50b4060e83c7555cae1916f001746068e894c","typeString":"literal_string \"ERROR:CCR-021:CREATED_INVALID_TRANSITION\""}],"id":17830,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13822:7:75","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13822:117:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17838,"nodeType":"ExpressionStatement","src":"13822:117:75"}]}}]},"id":17946,"implemented":true,"kind":"function","modifiers":[],"name":"_checkStateTransition","nameLocation":"13470:21:75","nodeType":"FunctionDefinition","parameters":{"id":17816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17812,"mutability":"mutable","name":"oldState","nameLocation":"13528:8:75","nodeType":"VariableDeclaration","scope":17946,"src":"13502:34:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":17811,"nodeType":"UserDefinedTypeName","pathNode":{"id":17810,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"13502:25:75"},"referencedDeclaration":2899,"src":"13502:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"},{"constant":false,"id":17815,"mutability":"mutable","name":"newState","nameLocation":"13574:8:75","nodeType":"VariableDeclaration","scope":17946,"src":"13548:34:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":17814,"nodeType":"UserDefinedTypeName","pathNode":{"id":17813,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"13548:25:75"},"referencedDeclaration":2899,"src":"13548:25:75","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"13491:98:75"},"returnParameters":{"id":17817,"nodeType":"ParameterList","parameters":[],"src":"13630:0:75"},"scope":17947,"src":"13461:1779:75","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":17948,"src":"4013:11230:75"}],"src":"40:15205:75"},"id":75},"contracts/modules/LicenseController.sol":{"ast":{"absolutePath":"contracts/modules/LicenseController.sol","exportedSymbols":{"Address":[10496],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IComponent":[2988],"IComponentEvents":[5073],"ILicense":[5087],"IOracle":[3022],"IPolicy":[5433],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059],"LicenseController":[18062]},"id":18063,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":17949,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:76"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"./ComponentController.sol","id":17950,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":17948,"src":"63:35:76","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":17951,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":26414,"src":"99:38:76","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":17952,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":2989,"src":"139:69:76","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":17953,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":3080,"src":"209:67:76","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/ILicense.sol","file":"@etherisc/gif-interface/contracts/modules/ILicense.sol","id":17954,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":18063,"sourceUnit":5088,"src":"277:64:76","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":17956,"name":"ILicense","nodeType":"IdentifierPath","referencedDeclaration":5087,"src":"2325:8:76"},"id":17957,"nodeType":"InheritanceSpecifier","src":"2325:8:76"},{"baseName":{"id":17958,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"2340:14:76"},"id":17959,"nodeType":"InheritanceSpecifier","src":"2340:14:76"}],"contractDependencies":[5087,8059,10518,26413],"contractKind":"contract","documentation":{"id":17955,"nodeType":"StructuredDocumentation","src":"343:1945:76","text":"The smart contract serves as a controller contract for managing licenses related to products in an insurance ecosystem.\nThe contract implements the `ILicense` interface and extends the `CoreController` contract.\nThe contract imports two other contracts: `ComponentController.sol` and `CoreController.sol`, which are expected to be located in specific file paths.\nIt also imports several interfaces from the \"etherisc/gif-interface\" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`.\nThe contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract.\nFunctions:\n- `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract.\n- `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function.\n- `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`.\n- `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`.\nOverall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem."},"fullyImplemented":true,"id":18062,"linearizedBaseContracts":[18062,26413,8059,10518,5087],"name":"LicenseController","nameLocation":"2300:17:76","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":17962,"mutability":"mutable","name":"_component","nameLocation":"2390:10:76","nodeType":"VariableDeclaration","scope":18062,"src":"2362:38:76","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":17961,"nodeType":"UserDefinedTypeName","pathNode":{"id":17960,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"2362:19:76"},"referencedDeclaration":17947,"src":"2362:19:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"baseFunctions":[26387],"body":{"id":17976,"nodeType":"Block","src":"2470:83:76","statements":[{"expression":{"id":17974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17968,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"2480:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":17971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2533:11:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":17970,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2513:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":17972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2513:32:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17969,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"2493:19:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":17973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2493:53:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"2480:66:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":17975,"nodeType":"ExpressionStatement","src":"2480:66:76"}]},"id":17977,"implemented":true,"kind":"function","modifiers":[{"id":17966,"modifierName":{"id":17965,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"2453:16:76"},"nodeType":"ModifierInvocation","src":"2453:16:76"}],"name":"_afterInitialize","nameLocation":"2416:16:76","nodeType":"FunctionDefinition","overrides":{"id":17964,"nodeType":"OverrideSpecifier","overrides":[],"src":"2444:8:76"},"parameters":{"id":17963,"nodeType":"ParameterList","parameters":[],"src":"2432:2:76"},"returnParameters":{"id":17967,"nodeType":"ParameterList","parameters":[],"src":"2470:0:76"},"scope":18062,"src":"2407:146:76","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5086],"body":{"id":18009,"nodeType":"Block","src":"2799:176:76","statements":[{"expression":{"id":17994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17989,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17983,"src":"2809:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17992,"name":"productAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17979,"src":"2847:14:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17990,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"2821:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":17991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"2821:25:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":17993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2821:41:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2809:53:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17995,"nodeType":"ExpressionStatement","src":"2809:53:76"},{"expression":{"id":18000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":17996,"name":"isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17985,"src":"2872:12:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":17998,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17983,"src":"2900:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17997,"name":"_isValidCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18027,"src":"2887:12:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":17999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2887:23:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2872:38:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18001,"nodeType":"ExpressionStatement","src":"2872:38:76"},{"expression":{"id":18007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18002,"name":"policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17987,"src":"2920:10:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":18005,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17983,"src":"2958:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18003,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"2933:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicyFlow","nodeType":"MemberAccess","referencedDeclaration":17774,"src":"2933:24:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":18006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2933:35:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2920:48:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18008,"nodeType":"ExpressionStatement","src":"2920:48:76"}]},"functionSelector":"d3e9c314","id":18010,"implemented":true,"kind":"function","modifiers":[],"name":"getAuthorizationStatus","nameLocation":"2636:22:76","nodeType":"FunctionDefinition","overrides":{"id":17981,"nodeType":"OverrideSpecifier","overrides":[],"src":"2698:8:76"},"parameters":{"id":17980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17979,"mutability":"mutable","name":"productAddress","nameLocation":"2667:14:76","nodeType":"VariableDeclaration","scope":18010,"src":"2659:22:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17978,"name":"address","nodeType":"ElementaryTypeName","src":"2659:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2658:24:76"},"returnParameters":{"id":17988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17983,"mutability":"mutable","name":"productId","nameLocation":"2745:9:76","nodeType":"VariableDeclaration","scope":18010,"src":"2737:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17982,"name":"uint256","nodeType":"ElementaryTypeName","src":"2737:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17985,"mutability":"mutable","name":"isAuthorized","nameLocation":"2761:12:76","nodeType":"VariableDeclaration","scope":18010,"src":"2756:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17984,"name":"bool","nodeType":"ElementaryTypeName","src":"2756:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17987,"mutability":"mutable","name":"policyFlow","nameLocation":"2783:10:76","nodeType":"VariableDeclaration","scope":18010,"src":"2775:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17986,"name":"address","nodeType":"ElementaryTypeName","src":"2775:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2736:58:76"},"scope":18062,"src":"2627:348:76","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":18026,"nodeType":"Block","src":"3051:99:76","statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":18024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18019,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18012,"src":"3097:9:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18017,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"3068:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"3068:28:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":18020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3068:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":18021,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"3111:10:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":18022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"3111:25:76","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":18023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"3111:32:76","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"3068:75:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18016,"id":18025,"nodeType":"Return","src":"3061:82:76"}]},"id":18027,"implemented":true,"kind":"function","modifiers":[],"name":"_isValidCall","nameLocation":"2990:12:76","nodeType":"FunctionDefinition","parameters":{"id":18013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18012,"mutability":"mutable","name":"productId","nameLocation":"3011:9:76","nodeType":"VariableDeclaration","scope":18027,"src":"3003:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18011,"name":"uint256","nodeType":"ElementaryTypeName","src":"3003:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3002:19:76"},"returnParameters":{"id":18016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18015,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":18027,"src":"3045:4:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18014,"name":"bool","nodeType":"ElementaryTypeName","src":"3045:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3044:6:76"},"scope":18062,"src":"2981:169:76","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":18060,"nodeType":"Block","src":"3230:185:76","statements":[{"expression":{"arguments":[{"arguments":[{"id":18038,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18029,"src":"3269:2:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18036,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"3248:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"3248:20:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":18039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3248:24:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4c49432d3030313a434f4d504f4e454e545f4e4f545f50524f44554354","id":18040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3274:37:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2cc379ca4dad5e4640f7ad3a46170e466c44d14c7ce6c2707834b40eaceccca","typeString":"literal_string \"ERROR:LIC-001:COMPONENT_NOT_PRODUCT\""},"value":"ERROR:LIC-001:COMPONENT_NOT_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d2cc379ca4dad5e4640f7ad3a46170e466c44d14c7ce6c2707834b40eaceccca","typeString":"literal_string \"ERROR:LIC-001:COMPONENT_NOT_PRODUCT\""}],"id":18035,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3240:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3240:72:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18042,"nodeType":"ExpressionStatement","src":"3240:72:76"},{"assignments":[18045],"declarations":[{"constant":false,"id":18045,"mutability":"mutable","name":"cmp","nameLocation":"3333:3:76","nodeType":"VariableDeclaration","scope":18060,"src":"3322:14:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":18044,"nodeType":"UserDefinedTypeName","pathNode":{"id":18043,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"3322:10:76"},"referencedDeclaration":2988,"src":"3322:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":18050,"initialValue":{"arguments":[{"id":18048,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18029,"src":"3363:2:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18046,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17962,"src":"3339:10:76","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"3339:23:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":18049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3339:27:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"3322:44:76"},{"expression":{"id":18058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18051,"name":"product","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18033,"src":"3376:7:76","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":18055,"name":"cmp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18045,"src":"3403:3:76","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":18054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3395:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18053,"name":"address","nodeType":"ElementaryTypeName","src":"3395:7:76","typeDescriptions":{}}},"id":18056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3395:12:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18052,"name":"IProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"3386:8:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProduct_$3079_$","typeString":"type(contract IProduct)"}},"id":18057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3386:22:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"src":"3376:32:76","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"id":18059,"nodeType":"ExpressionStatement","src":"3376:32:76"}]},"id":18061,"implemented":true,"kind":"function","modifiers":[],"name":"_getProduct","nameLocation":"3165:11:76","nodeType":"FunctionDefinition","parameters":{"id":18030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18029,"mutability":"mutable","name":"id","nameLocation":"3185:2:76","nodeType":"VariableDeclaration","scope":18061,"src":"3177:10:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18028,"name":"uint256","nodeType":"ElementaryTypeName","src":"3177:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3176:12:76"},"returnParameters":{"id":18034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18033,"mutability":"mutable","name":"product","nameLocation":"3221:7:76","nodeType":"VariableDeclaration","scope":18061,"src":"3212:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"},"typeName":{"id":18032,"nodeType":"UserDefinedTypeName","pathNode":{"id":18031,"name":"IProduct","nodeType":"IdentifierPath","referencedDeclaration":3079,"src":"3212:8:76"},"referencedDeclaration":3079,"src":"3212:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"visibility":"internal"}],"src":"3211:18:76"},"scope":18062,"src":"3156:259:76","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":18063,"src":"2291:1126:76"}],"src":"39:3379:76"},"id":76},"contracts/modules/PolicyController.sol":{"ast":{"absolutePath":"contracts/modules/PolicyController.sol","exportedSymbols":{"Address":[10496],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IComponent":[2988],"IComponentEvents":[5073],"IOracle":[3022],"IPolicy":[5433],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059],"PolicyController":[19974]},"id":19975,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":18064,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:77"},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":18065,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19975,"sourceUnit":26414,"src":"63:38:77","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/ComponentController.sol","file":"./ComponentController.sol","id":18066,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19975,"sourceUnit":17948,"src":"102:35:77","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":18067,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":19975,"sourceUnit":5434,"src":"138:63:77","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":18069,"name":"IPolicy","nodeType":"IdentifierPath","referencedDeclaration":5433,"src":"4438:7:77"},"id":18070,"nodeType":"InheritanceSpecifier","src":"4438:7:77"},{"baseName":{"id":18071,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"4452:14:77"},"id":18072,"nodeType":"InheritanceSpecifier","src":"4452:14:77"}],"contractDependencies":[5433,8059,10518,26413],"contractKind":"contract","documentation":{"id":18068,"nodeType":"StructuredDocumentation","src":"203:4199:77","text":"The smart contract implements functions for policy operations, including creation, update, cancellation, and retrieval.\nIt also provides functions for claim creation, confirmation, decline, closure, and payout creation.\nAdditionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy.\nThe contract inherits from the `IPolicy` interface and the `CoreController` contract.\n1. State Variables:\n- `metadata`: A mapping that stores metadata associated with policy flows.\n- `applications`: A mapping that stores insurance applications associated with policy flows.\n- `policies`: A mapping that stores policies associated with policy flows.\n- `claims`: A nested mapping that stores claims associated with policies.\n- `payouts`: A nested mapping that stores payouts associated with policies.\n- `payoutCount`: A mapping that stores the count of payouts for each policy flow.\n- `_assigendProcessIds`: A counter variable for assigning unique process IDs.\n- `_component`: A reference to the `ComponentController` contract.\n2. Functions:\n- `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization.\n- `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data.\n- `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data.\n- `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount.\n- `revokeApplication()`: Revokes an application for a policy flow.\n- `underwriteApplication()`: Changes the state of an application to \"Underwritten\".\n- `declineApplication()`: Declines an application for a policy flow.\n- `createPolicy()`: Creates a new policy for a given application process ID.\n- `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application.\n- `expirePolicy()`: Expires a policy with the given process ID.\n- `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims.\n- `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event.\n- `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event.\n- `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event.\n- `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event.\n- `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event.\n- `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event.\n- `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists.\n- `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists.\n- `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function.\n- `getNumberOfPayouts()`: Returns the number of payouts for a given process ID.\nOverall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract."},"fullyImplemented":true,"id":19974,"linearizedBaseContracts":[19974,26413,8059,10518,5433],"name":"PolicyController","nameLocation":"4413:16:77","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7122ba06","id":18077,"mutability":"mutable","name":"metadata","nameLocation":"4600:8:77","nodeType":"VariableDeclaration","scope":19974,"src":"4548:60:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata)"},"typeName":{"id":18076,"keyType":{"id":18073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4556:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4548:44:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata)"},"valueType":{"id":18075,"nodeType":"UserDefinedTypeName","pathNode":{"id":18074,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"4583:8:77"},"referencedDeclaration":5248,"src":"4583:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}}},"visibility":"public"},{"constant":false,"functionSelector":"4cafa121","id":18082,"mutability":"mutable","name":"applications","nameLocation":"4690:12:77","nodeType":"VariableDeclaration","scope":19974,"src":"4635:67:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application)"},"typeName":{"id":18081,"keyType":{"id":18078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4643:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4635:47:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application)"},"valueType":{"id":18080,"nodeType":"UserDefinedTypeName","pathNode":{"id":18079,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"4670:11:77"},"referencedDeclaration":5262,"src":"4670:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}}},"visibility":"public"},{"constant":false,"functionSelector":"ddbfd8ef","id":18087,"mutability":"mutable","name":"policies","nameLocation":"4775:8:77","nodeType":"VariableDeclaration","scope":19974,"src":"4725:58:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy)"},"typeName":{"id":18086,"keyType":{"id":18083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4733:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4725:42:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy)"},"valueType":{"id":18085,"nodeType":"UserDefinedTypeName","pathNode":{"id":18084,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"4760:6:77"},"referencedDeclaration":5282,"src":"4760:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}}},"visibility":"public"},{"constant":false,"functionSelector":"9e81f96a","id":18094,"mutability":"mutable","name":"claims","nameLocation":"4887:6:77","nodeType":"VariableDeclaration","scope":19974,"src":"4804:89:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim))"},"typeName":{"id":18093,"keyType":{"id":18088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4812:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4804:75:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim))"},"valueType":{"id":18092,"keyType":{"id":18089,"name":"uint256","nodeType":"ElementaryTypeName","src":"4847:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4839:39:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim)"},"valueType":{"id":18091,"nodeType":"UserDefinedTypeName","pathNode":{"id":18090,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"4872:5:77"},"referencedDeclaration":5296,"src":"4872:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}}}},"visibility":"public"},{"constant":false,"functionSelector":"80f2122c","id":18101,"mutability":"mutable","name":"payouts","nameLocation":"5000:7:77","nodeType":"VariableDeclaration","scope":19974,"src":"4915:92:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout))"},"typeName":{"id":18100,"keyType":{"id":18095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4923:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"4915:77:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout))"},"valueType":{"id":18099,"keyType":{"id":18096,"name":"uint256","nodeType":"ElementaryTypeName","src":"4958:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4950:41:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$","typeString":"mapping(uint256 => struct IPolicy.Payout)"},"valueType":{"id":18098,"nodeType":"UserDefinedTypeName","pathNode":{"id":18097,"name":"Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"4984:6:77"},"referencedDeclaration":5310,"src":"4984:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}}}},"visibility":"public"},{"constant":false,"functionSelector":"357f030a","id":18105,"mutability":"mutable","name":"payoutCount","nameLocation":"5064:11:77","nodeType":"VariableDeclaration","scope":19974,"src":"5013:62:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":18104,"keyType":{"id":18102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5021:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5013:43:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":18103,"name":"uint256","nodeType":"ElementaryTypeName","src":"5048:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"id":18107,"mutability":"mutable","name":"_assigendProcessIds","nameLocation":"5171:19:77","nodeType":"VariableDeclaration","scope":19974,"src":"5155:35:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18106,"name":"uint256","nodeType":"ElementaryTypeName","src":"5155:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":18110,"mutability":"mutable","name":"_component","nameLocation":"5225:10:77","nodeType":"VariableDeclaration","scope":19974,"src":"5197:38:77","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":18109,"nodeType":"UserDefinedTypeName","pathNode":{"id":18108,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"5197:19:77"},"referencedDeclaration":17947,"src":"5197:19:77","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"baseFunctions":[26387],"body":{"id":18124,"nodeType":"Block","src":"5305:83:77","statements":[{"expression":{"id":18122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18116,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18110,"src":"5315:10:77","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":18119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5368:11:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":18118,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5348:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":18120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5348:32:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18117,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"5328:19:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":18121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5328:53:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"5315:66:77","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18123,"nodeType":"ExpressionStatement","src":"5315:66:77"}]},"id":18125,"implemented":true,"kind":"function","modifiers":[{"id":18114,"modifierName":{"id":18113,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"5288:16:77"},"nodeType":"ModifierInvocation","src":"5288:16:77"}],"name":"_afterInitialize","nameLocation":"5251:16:77","nodeType":"FunctionDefinition","overrides":{"id":18112,"nodeType":"OverrideSpecifier","overrides":[],"src":"5279:8:77"},"parameters":{"id":18111,"nodeType":"ParameterList","parameters":[],"src":"5267:2:77"},"returnParameters":{"id":18115,"nodeType":"ParameterList","parameters":[],"src":"5305:0:77"},"scope":19974,"src":"5242:146:77","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5321],"body":{"id":18237,"nodeType":"Block","src":"5622:834:77","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18141,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18127,"src":"5640:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":18144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5657:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":18143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5649:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":18142,"name":"address","nodeType":"ElementaryTypeName","src":"5649:7:77","typeDescriptions":{}}},"id":18145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5649:10:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5640:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030313a494e56414c49445f4f574e4552","id":18147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5661:29:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_b56e7a919624c31e06a250efb3d4a1c8dc2262f50cf44fe416ac86523a45cda1","typeString":"literal_string \"ERROR:POL-001:INVALID_OWNER\""},"value":"ERROR:POL-001:INVALID_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b56e7a919624c31e06a250efb3d4a1c8dc2262f50cf44fe416ac86523a45cda1","typeString":"literal_string \"ERROR:POL-001:INVALID_OWNER\""}],"id":18140,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5632:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5632:59:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18149,"nodeType":"ExpressionStatement","src":"5632:59:77"},{"expression":{"arguments":[{"arguments":[{"id":18153,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18129,"src":"5731:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18151,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18110,"src":"5710:10:77","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"5710:20:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":18154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5710:31:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030323a494e56414c49445f50524f44554354","id":18155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5743:31:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_be65d387a5e288bbda6f7f29353c4a4177557e85600e7b58dfff26aa731432f1","typeString":"literal_string \"ERROR:POL-002:INVALID_PRODUCT\""},"value":"ERROR:POL-002:INVALID_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be65d387a5e288bbda6f7f29353c4a4177557e85600e7b58dfff26aa731432f1","typeString":"literal_string \"ERROR:POL-002:INVALID_PRODUCT\""}],"id":18150,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5702:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5702:73:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18157,"nodeType":"ExpressionStatement","src":"5702:73:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":18166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":18161,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18129,"src":"5822:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18159,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18110,"src":"5793:10:77","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":18160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"5793:28:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":18162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5793:39:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":18163,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"5836:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":18164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"5836:25:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":18165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"5836:32:77","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"5793:75:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030333a50524f445543545f4e4f545f414354495645","id":18167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5870:34:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf94c9406086159fab987519e07ae464f5659ba577264ceb8dcfb2519b4068e5","typeString":"literal_string \"ERROR:POL-003:PRODUCT_NOT_ACTIVE\""},"value":"ERROR:POL-003:PRODUCT_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bf94c9406086159fab987519e07ae464f5659ba577264ceb8dcfb2519b4068e5","typeString":"literal_string \"ERROR:POL-003:PRODUCT_NOT_ACTIVE\""}],"id":18158,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5785:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5785:120:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18169,"nodeType":"ExpressionStatement","src":"5785:120:77"},{"expression":{"id":18173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":18170,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18138,"src":"5924:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":18171,"name":"_generateNextProcessId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19973,"src":"5936:22:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_bytes32_$","typeString":"function () returns (bytes32)"}},"id":18172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5936:24:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5924:36:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":18174,"nodeType":"ExpressionStatement","src":"5924:36:77"},{"assignments":[18177],"declarations":[{"constant":false,"id":18177,"mutability":"mutable","name":"meta","nameLocation":"5987:4:77","nodeType":"VariableDeclaration","scope":18237,"src":"5970:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":18176,"nodeType":"UserDefinedTypeName","pathNode":{"id":18175,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"5970:8:77"},"referencedDeclaration":5248,"src":"5970:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":18181,"initialValue":{"baseExpression":{"id":18178,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"5994:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":18180,"indexExpression":{"id":18179,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18138,"src":"6003:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5994:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5970:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18183,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6031:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"6031:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6049:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6031:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3030343a4d455441444154415f414c52454144595f455849535453","id":18187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6052:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_72d2655fbab03b37603c9b8823922a50adfc2cb818fbcde0bff3db8e97120ce2","typeString":"literal_string \"ERROR:POC-004:METADATA_ALREADY_EXISTS\""},"value":"ERROR:POC-004:METADATA_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_72d2655fbab03b37603c9b8823922a50adfc2cb818fbcde0bff3db8e97120ce2","typeString":"literal_string \"ERROR:POC-004:METADATA_ALREADY_EXISTS\""}],"id":18182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6023:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6023:69:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18189,"nodeType":"ExpressionStatement","src":"6023:69:77"},{"expression":{"id":18194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18190,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6103:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"6103:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18193,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18127,"src":"6116:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6103:18:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18195,"nodeType":"ExpressionStatement","src":"6103:18:77"},{"expression":{"id":18200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18196,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6131:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"6131:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18199,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18129,"src":"6148:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6131:26:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18201,"nodeType":"ExpressionStatement","src":"6131:26:77"},{"expression":{"id":18207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18202,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6167:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"6167:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18205,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"6180:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":18206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Started","nodeType":"MemberAccess","referencedDeclaration":5214,"src":"6180:23:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"src":"6167:36:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"id":18208,"nodeType":"ExpressionStatement","src":"6167:36:77"},{"expression":{"id":18213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18209,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6213:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5243,"src":"6213:9:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18212,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18131,"src":"6225:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"6213:16:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":18214,"nodeType":"ExpressionStatement","src":"6213:16:77"},{"expression":{"id":18220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18215,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6239:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"6239:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18218,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"6256:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6256:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6239:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18221,"nodeType":"ExpressionStatement","src":"6239:32:77"},{"expression":{"id":18227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18222,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18177,"src":"6305:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5247,"src":"6305:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18225,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"6322:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6322:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6305:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18228,"nodeType":"ExpressionStatement","src":"6305:32:77"},{"eventCall":{"arguments":[{"id":18230,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18127,"src":"6396:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18231,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18138,"src":"6403:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18232,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18129,"src":"6414:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":18233,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"6425:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":18234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Started","nodeType":"MemberAccess","referencedDeclaration":5214,"src":"6425:23:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}],"id":18229,"name":"LogMetadataCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5100,"src":"6377:18:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_enum$_PolicyFlowState_$5217_$returns$__$","typeString":"function (address,bytes32,uint256,enum IPolicy.PolicyFlowState)"}},"id":18235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6377:72:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18236,"nodeType":"EmitStatement","src":"6372:77:77"}]},"functionSelector":"a1814a1a","id":18238,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5573:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18136,"modifierName":{"id":18134,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"5558:14:77"},"nodeType":"ModifierInvocation","src":"5558:24:77"}],"name":"createPolicyFlow","nameLocation":"5422:16:77","nodeType":"FunctionDefinition","overrides":{"id":18133,"nodeType":"OverrideSpecifier","overrides":[],"src":"5541:8:77"},"parameters":{"id":18132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18127,"mutability":"mutable","name":"owner","nameLocation":"5456:5:77","nodeType":"VariableDeclaration","scope":18238,"src":"5448:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18126,"name":"address","nodeType":"ElementaryTypeName","src":"5448:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18129,"mutability":"mutable","name":"productId","nameLocation":"5479:9:77","nodeType":"VariableDeclaration","scope":18238,"src":"5471:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18128,"name":"uint256","nodeType":"ElementaryTypeName","src":"5471:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18131,"mutability":"mutable","name":"data","nameLocation":"5513:4:77","nodeType":"VariableDeclaration","scope":18238,"src":"5498:19:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18130,"name":"bytes","nodeType":"ElementaryTypeName","src":"5498:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5438:85:77"},"returnParameters":{"id":18139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18138,"mutability":"mutable","name":"processId","nameLocation":"5607:9:77","nodeType":"VariableDeclaration","scope":18238,"src":"5599:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5599:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5598:19:77"},"scope":19974,"src":"5413:1043:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5332],"body":{"id":18362,"nodeType":"Block","src":"6702:1062:77","statements":[{"assignments":[18255],"declarations":[{"constant":false,"id":18255,"mutability":"mutable","name":"meta","nameLocation":"6729:4:77","nodeType":"VariableDeclaration","scope":18362,"src":"6712:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":18254,"nodeType":"UserDefinedTypeName","pathNode":{"id":18253,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"6712:8:77"},"referencedDeclaration":5248,"src":"6712:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":18259,"initialValue":{"baseExpression":{"id":18256,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"6736:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":18258,"indexExpression":{"id":18257,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18240,"src":"6745:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6736:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6712:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18261,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18255,"src":"6773:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"6773:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6790:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6773:18:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031303a4d455441444154415f444f45535f4e4f545f4558495354","id":18265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6793:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd52a7803fdc21b6951089460e3af3aafa2d9d5b5456b70275b97403a595056","typeString":"literal_string \"ERROR:POC-010:METADATA_DOES_NOT_EXIST\""},"value":"ERROR:POC-010:METADATA_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6dd52a7803fdc21b6951089460e3af3aafa2d9d5b5456b70275b97403a595056","typeString":"literal_string \"ERROR:POC-010:METADATA_DOES_NOT_EXIST\""}],"id":18260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6765:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6765:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18267,"nodeType":"ExpressionStatement","src":"6765:68:77"},{"assignments":[18270],"declarations":[{"constant":false,"id":18270,"mutability":"mutable","name":"application","nameLocation":"6864:11:77","nodeType":"VariableDeclaration","scope":18362,"src":"6844:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18269,"nodeType":"UserDefinedTypeName","pathNode":{"id":18268,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"6844:11:77"},"referencedDeclaration":5262,"src":"6844:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18274,"initialValue":{"baseExpression":{"id":18271,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"6878:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18273,"indexExpression":{"id":18272,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18240,"src":"6891:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6878:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6844:57:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18276,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"6919:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"6919:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6944:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6919:26:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031313a4150504c49434154494f4e5f414c52454144595f455849535453","id":18280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6947:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_1db96ed0ae0923362061f94230382ef4f079d53202d86c4160c88d024476fc3b","typeString":"literal_string \"ERROR:POC-011:APPLICATION_ALREADY_EXISTS\""},"value":"ERROR:POC-011:APPLICATION_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1db96ed0ae0923362061f94230382ef4f079d53202d86c4160c88d024476fc3b","typeString":"literal_string \"ERROR:POC-011:APPLICATION_ALREADY_EXISTS\""}],"id":18275,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6911:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6911:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18282,"nodeType":"ExpressionStatement","src":"6911:79:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18284,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18242,"src":"7009:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7025:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7009:17:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031323a5052454d49554d5f414d4f554e545f5a45524f","id":18287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7028:35:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_78097f0a73eb9c8a0cc0df22ac96ffe69f6d4347e55bf144298e75d504f52626","typeString":"literal_string \"ERROR:POC-012:PREMIUM_AMOUNT_ZERO\""},"value":"ERROR:POC-012:PREMIUM_AMOUNT_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_78097f0a73eb9c8a0cc0df22ac96ffe69f6d4347e55bf144298e75d504f52626","typeString":"literal_string \"ERROR:POC-012:PREMIUM_AMOUNT_ZERO\""}],"id":18283,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7001:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7001:63:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18289,"nodeType":"ExpressionStatement","src":"7001:63:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18291,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18244,"src":"7082:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":18292,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18242,"src":"7101:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7082:32:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031333a53554d5f494e53555245445f414d4f554e545f544f4f5f534d414c4c","id":18294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7116:44:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_a96e2ba49a294fb57653f2edea6788990e95e8ccf3f4008e1f67857f31ab7af5","typeString":"literal_string \"ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL\""},"value":"ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a96e2ba49a294fb57653f2edea6788990e95e8ccf3f4008e1f67857f31ab7af5","typeString":"literal_string \"ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL\""}],"id":18290,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7074:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7074:87:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18296,"nodeType":"ExpressionStatement","src":"7074:87:77"},{"expression":{"id":18302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18297,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7172:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"7172:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18300,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"7192:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5218,"src":"7192:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"7172:44:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"id":18303,"nodeType":"ExpressionStatement","src":"7172:44:77"},{"expression":{"id":18308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18304,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7226:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"7226:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18307,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18242,"src":"7254:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7226:41:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18309,"nodeType":"ExpressionStatement","src":"7226:41:77"},{"expression":{"id":18314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18310,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7277:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"7277:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18313,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18244,"src":"7308:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7277:47:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18315,"nodeType":"ExpressionStatement","src":"7277:47:77"},{"expression":{"id":18320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18316,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7334:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18318,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5257,"src":"7334:16:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18319,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18246,"src":"7353:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"7334:23:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":18321,"nodeType":"ExpressionStatement","src":"7334:23:77"},{"expression":{"id":18327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18322,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7367:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"7367:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18325,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"7391:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7391:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7367:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18328,"nodeType":"ExpressionStatement","src":"7367:39:77"},{"expression":{"id":18334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18329,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"7440:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"7440:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18332,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"7464:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7464:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7440:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18335,"nodeType":"ExpressionStatement","src":"7440:39:77"},{"expression":{"id":18341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18336,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18255,"src":"7514:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"7514:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18339,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"7527:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":18340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5215,"src":"7527:22:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"src":"7514:35:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"id":18342,"nodeType":"ExpressionStatement","src":"7514:35:77"},{"expression":{"id":18348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18343,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18255,"src":"7559:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5247,"src":"7559:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18346,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"7576:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7576:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7559:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18349,"nodeType":"ExpressionStatement","src":"7559:32:77"},{"eventCall":{"arguments":[{"id":18351,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18240,"src":"7654:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18352,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18255,"src":"7665:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"7665:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}],"id":18350,"name":"LogMetadataStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5107,"src":"7630:23:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_PolicyFlowState_$5217_$returns$__$","typeString":"function (bytes32,enum IPolicy.PolicyFlowState)"}},"id":18354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7630:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18355,"nodeType":"EmitStatement","src":"7625:51:77"},{"eventCall":{"arguments":[{"id":18357,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18240,"src":"7714:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18358,"name":"premiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18242,"src":"7725:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18359,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18244,"src":"7740:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18356,"name":"LogApplicationCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5115,"src":"7692:21:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":18360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7692:65:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18361,"nodeType":"EmitStatement","src":"7687:70:77"}]},"functionSelector":"6780336e","id":18363,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6688:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18251,"modifierName":{"id":18249,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"6673:14:77"},"nodeType":"ModifierInvocation","src":"6673:24:77"}],"name":"createApplication","nameLocation":"6493:17:77","nodeType":"FunctionDefinition","overrides":{"id":18248,"nodeType":"OverrideSpecifier","overrides":[],"src":"6656:8:77"},"parameters":{"id":18247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18240,"mutability":"mutable","name":"processId","nameLocation":"6528:9:77","nodeType":"VariableDeclaration","scope":18363,"src":"6520:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6520:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18242,"mutability":"mutable","name":"premiumAmount","nameLocation":"6556:13:77","nodeType":"VariableDeclaration","scope":18363,"src":"6548:21:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18241,"name":"uint256","nodeType":"ElementaryTypeName","src":"6548:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18244,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"6587:16:77","nodeType":"VariableDeclaration","scope":18363,"src":"6579:24:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18243,"name":"uint256","nodeType":"ElementaryTypeName","src":"6579:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18246,"mutability":"mutable","name":"data","nameLocation":"6628:4:77","nodeType":"VariableDeclaration","scope":18363,"src":"6613:19:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":18245,"name":"bytes","nodeType":"ElementaryTypeName","src":"6613:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6510:128:77"},"returnParameters":{"id":18252,"nodeType":"ParameterList","parameters":[],"src":"6702:0:77"},"scope":19974,"src":"6484:1280:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5354],"body":{"id":18415,"nodeType":"Block","src":"7860:425:77","statements":[{"assignments":[18373],"declarations":[{"constant":false,"id":18373,"mutability":"mutable","name":"policy","nameLocation":"7885:6:77","nodeType":"VariableDeclaration","scope":18415,"src":"7870:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":18372,"nodeType":"UserDefinedTypeName","pathNode":{"id":18371,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"7870:6:77"},"referencedDeclaration":5282,"src":"7870:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":18377,"initialValue":{"baseExpression":{"id":18374,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"7894:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":18376,"indexExpression":{"id":18375,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18365,"src":"7903:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7894:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7870:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18379,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18373,"src":"7931:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"7931:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7950:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7931:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3131303a504f4c4943595f444f45535f4e4f545f4558495354","id":18383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7953:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8b70c4aba1c2cd717e92fc9379cd96b59815516b78271810475c67b9507a6b5","typeString":"literal_string \"ERROR:POC-110:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-110:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8b70c4aba1c2cd717e92fc9379cd96b59815516b78271810475c67b9507a6b5","typeString":"literal_string \"ERROR:POC-110:POLICY_DOES_NOT_EXIST\""}],"id":18378,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7923:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7923:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18385,"nodeType":"ExpressionStatement","src":"7923:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18387,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18373,"src":"8009:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"8009:24:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":18389,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18367,"src":"8036:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8009:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":18391,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18373,"src":"8046:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"8046:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8009:65:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3131313a414d4f554e545f544f4f5f424947","id":18394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8076:30:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca128060720b4fcc87482c839fb4ff931d94c5e1cf662666b918d32e6fcfb90c","typeString":"literal_string \"ERROR:POC-111:AMOUNT_TOO_BIG\""},"value":"ERROR:POC-111:AMOUNT_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ca128060720b4fcc87482c839fb4ff931d94c5e1cf662666b918d32e6fcfb90c","typeString":"literal_string \"ERROR:POC-111:AMOUNT_TOO_BIG\""}],"id":18386,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8001:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8001:106:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18396,"nodeType":"ExpressionStatement","src":"8001:106:77"},{"expression":{"id":18401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18397,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18373,"src":"8118:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"8118:24:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":18400,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18367,"src":"8146:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8118:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18402,"nodeType":"ExpressionStatement","src":"8118:34:77"},{"expression":{"id":18408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18403,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18373,"src":"8162:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"8162:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18406,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"8181:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8181:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8162:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18409,"nodeType":"ExpressionStatement","src":"8162:34:77"},{"eventCall":{"arguments":[{"id":18411,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18365,"src":"8260:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":18412,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18367,"src":"8271:6:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18410,"name":"LogPremiumCollected","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"8240:19:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":18413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8240:38:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18414,"nodeType":"EmitStatement","src":"8235:43:77"}]},"functionSelector":"e3ebdea5","id":18416,"implemented":true,"kind":"function","modifiers":[],"name":"collectPremium","nameLocation":"7779:14:77","nodeType":"FunctionDefinition","overrides":{"id":18369,"nodeType":"OverrideSpecifier","overrides":[],"src":"7847:8:77"},"parameters":{"id":18368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18365,"mutability":"mutable","name":"processId","nameLocation":"7802:9:77","nodeType":"VariableDeclaration","scope":18416,"src":"7794:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18364,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7794:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18367,"mutability":"mutable","name":"amount","nameLocation":"7821:6:77","nodeType":"VariableDeclaration","scope":18416,"src":"7813:14:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18366,"name":"uint256","nodeType":"ElementaryTypeName","src":"7813:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7793:35:77"},"returnParameters":{"id":18370,"nodeType":"ParameterList","parameters":[],"src":"7860:0:77"},"scope":19974,"src":"7770:515:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5337],"body":{"id":18502,"nodeType":"Block","src":"8404:752:77","statements":[{"assignments":[18427],"declarations":[{"constant":false,"id":18427,"mutability":"mutable","name":"meta","nameLocation":"8431:4:77","nodeType":"VariableDeclaration","scope":18502,"src":"8414:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":18426,"nodeType":"UserDefinedTypeName","pathNode":{"id":18425,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"8414:8:77"},"referencedDeclaration":5248,"src":"8414:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":18431,"initialValue":{"baseExpression":{"id":18428,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"8438:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":18430,"indexExpression":{"id":18429,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18418,"src":"8447:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8438:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8414:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18433,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18427,"src":"8475:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"8475:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8492:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8475:18:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031343a4d455441444154415f444f45535f4e4f545f4558495354","id":18437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8495:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_c7b69042e7f6515d560658ee6d1de6d418e69114e700e0b6a50b7b0e552dda1c","typeString":"literal_string \"ERROR:POC-014:METADATA_DOES_NOT_EXIST\""},"value":"ERROR:POC-014:METADATA_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c7b69042e7f6515d560658ee6d1de6d418e69114e700e0b6a50b7b0e552dda1c","typeString":"literal_string \"ERROR:POC-014:METADATA_DOES_NOT_EXIST\""}],"id":18432,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8467:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8467:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18439,"nodeType":"ExpressionStatement","src":"8467:68:77"},{"assignments":[18442],"declarations":[{"constant":false,"id":18442,"mutability":"mutable","name":"application","nameLocation":"8566:11:77","nodeType":"VariableDeclaration","scope":18502,"src":"8546:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18441,"nodeType":"UserDefinedTypeName","pathNode":{"id":18440,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"8546:11:77"},"referencedDeclaration":5262,"src":"8546:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18446,"initialValue":{"baseExpression":{"id":18443,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"8580:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18445,"indexExpression":{"id":18444,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18418,"src":"8593:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8580:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8546:57:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18448,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18442,"src":"8621:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"8621:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8645:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8621:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031353a4150504c49434154494f4e5f444f45535f4e4f545f4558495354","id":18452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8648:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_84d582f54bcbf9ecef49660743d83c5d351adfda381e7de998dfd7253752ca0d","typeString":"literal_string \"ERROR:POC-015:APPLICATION_DOES_NOT_EXIST\""},"value":"ERROR:POC-015:APPLICATION_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_84d582f54bcbf9ecef49660743d83c5d351adfda381e7de998dfd7253752ca0d","typeString":"literal_string \"ERROR:POC-015:APPLICATION_DOES_NOT_EXIST\""}],"id":18447,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8613:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8613:78:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18454,"nodeType":"ExpressionStatement","src":"8613:78:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":18460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18456,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18442,"src":"8709:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"8709:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18458,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"8730:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5218,"src":"8730:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"8709:45:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031363a4150504c49434154494f4e5f53544154455f494e56414c4944","id":18461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8756:41:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_a28f16b2c92dc01202801f97442d7b5b72a32eaf29ba8288670aca403d1d91c2","typeString":"literal_string \"ERROR:POC-016:APPLICATION_STATE_INVALID\""},"value":"ERROR:POC-016:APPLICATION_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a28f16b2c92dc01202801f97442d7b5b72a32eaf29ba8288670aca403d1d91c2","typeString":"literal_string \"ERROR:POC-016:APPLICATION_STATE_INVALID\""}],"id":18455,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8701:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8701:97:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18463,"nodeType":"ExpressionStatement","src":"8701:97:77"},{"expression":{"id":18469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18464,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18442,"src":"8809:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"8809:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18467,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"8829:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Revoked","nodeType":"MemberAccess","referencedDeclaration":5219,"src":"8829:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"8809:44:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"id":18470,"nodeType":"ExpressionStatement","src":"8809:44:77"},{"expression":{"id":18476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18471,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18442,"src":"8863:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"8863:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18474,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"8887:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8887:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8863:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18477,"nodeType":"ExpressionStatement","src":"8863:39:77"},{"expression":{"id":18483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18478,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18427,"src":"8937:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"8937:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18481,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"8950:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":18482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Finished","nodeType":"MemberAccess","referencedDeclaration":5216,"src":"8950:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"src":"8937:37:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"id":18484,"nodeType":"ExpressionStatement","src":"8937:37:77"},{"expression":{"id":18490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18485,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18427,"src":"8984:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5247,"src":"8984:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18488,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9001:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9001:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8984:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18491,"nodeType":"ExpressionStatement","src":"8984:32:77"},{"eventCall":{"arguments":[{"id":18493,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18418,"src":"9079:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18494,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18427,"src":"9090:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"9090:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}],"id":18492,"name":"LogMetadataStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5107,"src":"9055:23:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_PolicyFlowState_$5217_$returns$__$","typeString":"function (bytes32,enum IPolicy.PolicyFlowState)"}},"id":18496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9055:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18497,"nodeType":"EmitStatement","src":"9050:51:77"},{"eventCall":{"arguments":[{"id":18499,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18418,"src":"9139:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18498,"name":"LogApplicationRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5119,"src":"9117:21:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":18500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9117:32:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18501,"nodeType":"EmitStatement","src":"9112:37:77"}]},"functionSelector":"eb96cbed","id":18503,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8390:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18423,"modifierName":{"id":18421,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"8375:14:77"},"nodeType":"ModifierInvocation","src":"8375:24:77"}],"name":"revokeApplication","nameLocation":"8304:17:77","nodeType":"FunctionDefinition","overrides":{"id":18420,"nodeType":"OverrideSpecifier","overrides":[],"src":"8358:8:77"},"parameters":{"id":18419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18418,"mutability":"mutable","name":"processId","nameLocation":"8330:9:77","nodeType":"VariableDeclaration","scope":18503,"src":"8322:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8322:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8321:19:77"},"returnParameters":{"id":18424,"nodeType":"ParameterList","parameters":[],"src":"8404:0:77"},"scope":19974,"src":"8295:861:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5342],"body":{"id":18554,"nodeType":"Block","src":"9275:455:77","statements":[{"assignments":[18514],"declarations":[{"constant":false,"id":18514,"mutability":"mutable","name":"application","nameLocation":"9305:11:77","nodeType":"VariableDeclaration","scope":18554,"src":"9285:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18513,"nodeType":"UserDefinedTypeName","pathNode":{"id":18512,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"9285:11:77"},"referencedDeclaration":5262,"src":"9285:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18518,"initialValue":{"baseExpression":{"id":18515,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"9319:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18517,"indexExpression":{"id":18516,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18505,"src":"9332:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9319:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9285:57:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18520,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18514,"src":"9360:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"9360:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9384:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9360:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031373a4150504c49434154494f4e5f444f45535f4e4f545f4558495354","id":18524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9387:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_d48c4714dc35abe5eee68196d3e0333f2895edd4c645d06d442d03e129bca5e5","typeString":"literal_string \"ERROR:POC-017:APPLICATION_DOES_NOT_EXIST\""},"value":"ERROR:POC-017:APPLICATION_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d48c4714dc35abe5eee68196d3e0333f2895edd4c645d06d442d03e129bca5e5","typeString":"literal_string \"ERROR:POC-017:APPLICATION_DOES_NOT_EXIST\""}],"id":18519,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9352:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9352:78:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18526,"nodeType":"ExpressionStatement","src":"9352:78:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":18532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18528,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18514,"src":"9448:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"9448:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18530,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"9469:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5218,"src":"9469:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"9448:45:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031383a4150504c49434154494f4e5f53544154455f494e56414c4944","id":18533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9495:41:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc44a0f37543fb9791a7c26480d070adcda3855758541b01e4ac627d1640aa56","typeString":"literal_string \"ERROR:POC-018:APPLICATION_STATE_INVALID\""},"value":"ERROR:POC-018:APPLICATION_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dc44a0f37543fb9791a7c26480d070adcda3855758541b01e4ac627d1640aa56","typeString":"literal_string \"ERROR:POC-018:APPLICATION_STATE_INVALID\""}],"id":18527,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9440:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9440:97:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18535,"nodeType":"ExpressionStatement","src":"9440:97:77"},{"expression":{"id":18541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18536,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18514,"src":"9548:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"9548:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18539,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"9568:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Underwritten","nodeType":"MemberAccess","referencedDeclaration":5220,"src":"9568:29:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"9548:49:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"id":18542,"nodeType":"ExpressionStatement","src":"9548:49:77"},{"expression":{"id":18548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18543,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18514,"src":"9607:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"9607:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18546,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9631:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9631:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9607:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18549,"nodeType":"ExpressionStatement","src":"9607:39:77"},{"eventCall":{"arguments":[{"id":18551,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18505,"src":"9713:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18550,"name":"LogApplicationUnderwritten","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5123,"src":"9686:26:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":18552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9686:37:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18553,"nodeType":"EmitStatement","src":"9681:42:77"}]},"functionSelector":"5c955288","id":18555,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9261:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18510,"modifierName":{"id":18508,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"9246:14:77"},"nodeType":"ModifierInvocation","src":"9246:24:77"}],"name":"underwriteApplication","nameLocation":"9171:21:77","nodeType":"FunctionDefinition","overrides":{"id":18507,"nodeType":"OverrideSpecifier","overrides":[],"src":"9229:8:77"},"parameters":{"id":18506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18505,"mutability":"mutable","name":"processId","nameLocation":"9201:9:77","nodeType":"VariableDeclaration","scope":18555,"src":"9193:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9193:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9192:19:77"},"returnParameters":{"id":18511,"nodeType":"ParameterList","parameters":[],"src":"9275:0:77"},"scope":19974,"src":"9162:568:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5347],"body":{"id":18641,"nodeType":"Block","src":"9846:754:77","statements":[{"assignments":[18566],"declarations":[{"constant":false,"id":18566,"mutability":"mutable","name":"meta","nameLocation":"9873:4:77","nodeType":"VariableDeclaration","scope":18641,"src":"9856:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":18565,"nodeType":"UserDefinedTypeName","pathNode":{"id":18564,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"9856:8:77"},"referencedDeclaration":5248,"src":"9856:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":18570,"initialValue":{"baseExpression":{"id":18567,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"9880:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":18569,"indexExpression":{"id":18568,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"9889:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9880:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9856:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18572,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18566,"src":"9917:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"9917:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9934:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9917:18:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3031393a4d455441444154415f444f45535f4e4f545f4558495354","id":18576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9937:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3704f3da0c4404bcf7333b4ad925aa1079f426470842ae45a22540b0335abfe9","typeString":"literal_string \"ERROR:POC-019:METADATA_DOES_NOT_EXIST\""},"value":"ERROR:POC-019:METADATA_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3704f3da0c4404bcf7333b4ad925aa1079f426470842ae45a22540b0335abfe9","typeString":"literal_string \"ERROR:POC-019:METADATA_DOES_NOT_EXIST\""}],"id":18571,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9909:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9909:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18578,"nodeType":"ExpressionStatement","src":"9909:68:77"},{"assignments":[18581],"declarations":[{"constant":false,"id":18581,"mutability":"mutable","name":"application","nameLocation":"10008:11:77","nodeType":"VariableDeclaration","scope":18641,"src":"9988:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18580,"nodeType":"UserDefinedTypeName","pathNode":{"id":18579,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"9988:11:77"},"referencedDeclaration":5262,"src":"9988:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18585,"initialValue":{"baseExpression":{"id":18582,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"10022:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18584,"indexExpression":{"id":18583,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"10035:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10022:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9988:57:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18587,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18581,"src":"10063:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"10063:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10087:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10063:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032303a4150504c49434154494f4e5f444f45535f4e4f545f4558495354","id":18591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10090:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb328158e0ed34e58154822f43e033245d25dd37ef2fd43004b775c706f4fcad","typeString":"literal_string \"ERROR:POC-020:APPLICATION_DOES_NOT_EXIST\""},"value":"ERROR:POC-020:APPLICATION_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb328158e0ed34e58154822f43e033245d25dd37ef2fd43004b775c706f4fcad","typeString":"literal_string \"ERROR:POC-020:APPLICATION_DOES_NOT_EXIST\""}],"id":18586,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10055:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10055:78:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18593,"nodeType":"ExpressionStatement","src":"10055:78:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":18599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18595,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18581,"src":"10151:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"10151:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18597,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"10172:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5218,"src":"10172:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"10151:45:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032313a4150504c49434154494f4e5f53544154455f494e56414c4944","id":18600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10198:41:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f9b1806d4697b0956752b1032b95647f09da6dcb802b7b2ad16478e69e208e5","typeString":"literal_string \"ERROR:POC-021:APPLICATION_STATE_INVALID\""},"value":"ERROR:POC-021:APPLICATION_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1f9b1806d4697b0956752b1032b95647f09da6dcb802b7b2ad16478e69e208e5","typeString":"literal_string \"ERROR:POC-021:APPLICATION_STATE_INVALID\""}],"id":18594,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10143:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10143:97:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18602,"nodeType":"ExpressionStatement","src":"10143:97:77"},{"expression":{"id":18608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18603,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18581,"src":"10251:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"10251:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18606,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"10271:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":5221,"src":"10271:25:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"10251:45:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"id":18609,"nodeType":"ExpressionStatement","src":"10251:45:77"},{"expression":{"id":18615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18610,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18581,"src":"10306:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"10306:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18613,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"10330:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10330:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10306:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18616,"nodeType":"ExpressionStatement","src":"10306:39:77"},{"expression":{"id":18622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18617,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18566,"src":"10380:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"10380:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18620,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"10393:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":18621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Finished","nodeType":"MemberAccess","referencedDeclaration":5216,"src":"10393:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"src":"10380:37:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"id":18623,"nodeType":"ExpressionStatement","src":"10380:37:77"},{"expression":{"id":18629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18624,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18566,"src":"10427:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5247,"src":"10427:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18627,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"10444:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"10444:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10427:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18630,"nodeType":"ExpressionStatement","src":"10427:32:77"},{"eventCall":{"arguments":[{"id":18632,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"10522:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18633,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18566,"src":"10533:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"10533:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}],"id":18631,"name":"LogMetadataStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5107,"src":"10498:23:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_PolicyFlowState_$5217_$returns$__$","typeString":"function (bytes32,enum IPolicy.PolicyFlowState)"}},"id":18635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10498:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18636,"nodeType":"EmitStatement","src":"10493:51:77"},{"eventCall":{"arguments":[{"id":18638,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"10583:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18637,"name":"LogApplicationDeclined","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5127,"src":"10560:22:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":18639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10560:33:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18640,"nodeType":"EmitStatement","src":"10555:38:77"}]},"functionSelector":"296d6c7d","id":18642,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9832:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18562,"modifierName":{"id":18560,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"9817:14:77"},"nodeType":"ModifierInvocation","src":"9817:24:77"}],"name":"declineApplication","nameLocation":"9745:18:77","nodeType":"FunctionDefinition","overrides":{"id":18559,"nodeType":"OverrideSpecifier","overrides":[],"src":"9800:8:77"},"parameters":{"id":18558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18557,"mutability":"mutable","name":"processId","nameLocation":"9772:9:77","nodeType":"VariableDeclaration","scope":18642,"src":"9764:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9764:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9763:19:77"},"returnParameters":{"id":18563,"nodeType":"ParameterList","parameters":[],"src":"9846:0:77"},"scope":19974,"src":"9736:864:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5368],"body":{"id":18726,"nodeType":"Block","src":"10729:700:77","statements":[{"assignments":[18653],"declarations":[{"constant":false,"id":18653,"mutability":"mutable","name":"application","nameLocation":"10758:11:77","nodeType":"VariableDeclaration","scope":18726,"src":"10739:30:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18652,"nodeType":"UserDefinedTypeName","pathNode":{"id":18651,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"10739:11:77"},"referencedDeclaration":5262,"src":"10739:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18657,"initialValue":{"baseExpression":{"id":18654,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"10772:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18656,"indexExpression":{"id":18655,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18644,"src":"10785:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10772:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10739:56:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18659,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18653,"src":"10813:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":18660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"10813:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10837:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10813:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":18667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18663,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18653,"src":"10842:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":18664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"10842:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18665,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"10863:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Underwritten","nodeType":"MemberAccess","referencedDeclaration":5220,"src":"10863:29:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"10842:50:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10813:79:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032323a4150504c49434154494f4e5f4143434553535f494e56414c4944","id":18669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10894:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8784db9a0fb006cb4ae64ab1d8cc2ad3884140ec5a660b5e68045261d428b52","typeString":"literal_string \"ERROR:POC-022:APPLICATION_ACCESS_INVALID\""},"value":"ERROR:POC-022:APPLICATION_ACCESS_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e8784db9a0fb006cb4ae64ab1d8cc2ad3884140ec5a660b5e68045261d428b52","typeString":"literal_string \"ERROR:POC-022:APPLICATION_ACCESS_INVALID\""}],"id":18658,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10805:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10805:132:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18671,"nodeType":"ExpressionStatement","src":"10805:132:77"},{"assignments":[18674],"declarations":[{"constant":false,"id":18674,"mutability":"mutable","name":"policy","nameLocation":"10963:6:77","nodeType":"VariableDeclaration","scope":18726,"src":"10948:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":18673,"nodeType":"UserDefinedTypeName","pathNode":{"id":18672,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"10948:6:77"},"referencedDeclaration":5282,"src":"10948:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":18678,"initialValue":{"baseExpression":{"id":18675,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"10972:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":18677,"indexExpression":{"id":18676,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18644,"src":"10981:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10972:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10948:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18680,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11009:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"11009:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11029:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11009:21:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032333a504f4c4943595f414c52454144595f455849535453","id":18684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11032:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ac75784ff08502543cdff54428e36c01ae4d8ea69e36a455017dee99fa29dc8","typeString":"literal_string \"ERROR:POC-023:POLICY_ALREADY_EXISTS\""},"value":"ERROR:POC-023:POLICY_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ac75784ff08502543cdff54428e36c01ae4d8ea69e36a455017dee99fa29dc8","typeString":"literal_string \"ERROR:POC-023:POLICY_ALREADY_EXISTS\""}],"id":18679,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11001:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11001:69:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18686,"nodeType":"ExpressionStatement","src":"11001:69:77"},{"expression":{"id":18692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18687,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11081:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"11081:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18690,"name":"PolicyState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"11096:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":18691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5223,"src":"11096:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"11081:33:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"id":18693,"nodeType":"ExpressionStatement","src":"11081:33:77"},{"expression":{"id":18699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18694,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11124:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"11124:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18697,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18653,"src":"11155:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":18698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"11155:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11124:56:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18700,"nodeType":"ExpressionStatement","src":"11124:56:77"},{"expression":{"id":18706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18701,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11190:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payoutMaxAmount","nodeType":"MemberAccess","referencedDeclaration":5275,"src":"11190:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18704,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18653,"src":"11215:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":18705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"11215:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11190:53:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18707,"nodeType":"ExpressionStatement","src":"11190:53:77"},{"expression":{"id":18713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18708,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11253:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"11253:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18711,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"11272:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11272:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11253:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18714,"nodeType":"ExpressionStatement","src":"11253:34:77"},{"expression":{"id":18720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18715,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18674,"src":"11321:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"11321:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18718,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"11340:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11340:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11321:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18721,"nodeType":"ExpressionStatement","src":"11321:34:77"},{"eventCall":{"arguments":[{"id":18723,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18644,"src":"11412:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18722,"name":"LogPolicyCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5131,"src":"11395:16:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":18724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11395:27:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18725,"nodeType":"EmitStatement","src":"11390:32:77"}]},"functionSelector":"4c14ccc2","id":18727,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10715:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18649,"modifierName":{"id":18647,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"10700:14:77"},"nodeType":"ModifierInvocation","src":"10700:24:77"}],"name":"createPolicy","nameLocation":"10632:12:77","nodeType":"FunctionDefinition","overrides":{"id":18646,"nodeType":"OverrideSpecifier","overrides":[],"src":"10682:8:77"},"parameters":{"id":18645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18644,"mutability":"mutable","name":"processId","nameLocation":"10653:9:77","nodeType":"VariableDeclaration","scope":18727,"src":"10645:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10645:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10644:19:77"},"returnParameters":{"id":18650,"nodeType":"ParameterList","parameters":[],"src":"10729:0:77"},"scope":19974,"src":"10623:806:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5363],"body":{"id":18892,"nodeType":"Block","src":"11638:1893:77","statements":[{"assignments":[18742],"declarations":[{"constant":false,"id":18742,"mutability":"mutable","name":"application","nameLocation":"11668:11:77","nodeType":"VariableDeclaration","scope":18892,"src":"11648:31:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":18741,"nodeType":"UserDefinedTypeName","pathNode":{"id":18740,"name":"Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"11648:11:77"},"referencedDeclaration":5262,"src":"11648:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":18746,"initialValue":{"baseExpression":{"id":18743,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"11682:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":18745,"indexExpression":{"id":18744,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18729,"src":"11695:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11682:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11648:57:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18748,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"11736:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"11736:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11760:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11736:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":18756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18752,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"11778:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"11778:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18754,"name":"ApplicationState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"11799:16:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":18755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Underwritten","nodeType":"MemberAccess","referencedDeclaration":5220,"src":"11799:29:77","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"11778:50:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11736:92:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032343a4150504c49434154494f4e5f4143434553535f494e56414c4944","id":18758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11843:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a0446370afa916c99bdf68c1cd2d63970e57fe3533a05a487ffe2d3441b7439","typeString":"literal_string \"ERROR:POC-024:APPLICATION_ACCESS_INVALID\""},"value":"ERROR:POC-024:APPLICATION_ACCESS_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a0446370afa916c99bdf68c1cd2d63970e57fe3533a05a487ffe2d3441b7439","typeString":"literal_string \"ERROR:POC-024:APPLICATION_ACCESS_INVALID\""}],"id":18747,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11715:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11715:171:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18760,"nodeType":"ExpressionStatement","src":"11715:171:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18762,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"11918:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":18763,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"11938:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"11938:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11918:48:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032363a4150504c49434154494f4e5f53554d5f494e53555245445f494e4352454153455f494e56414c4944","id":18766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11981:56:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_9608b61059ad8bfc78f4d88fdfb884791e53ff59328c8a500c5f1565bd0419e3","typeString":"literal_string \"ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID\""},"value":"ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9608b61059ad8bfc78f4d88fdfb884791e53ff59328c8a500c5f1565bd0419e3","typeString":"literal_string \"ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID\""}],"id":18761,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11897:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11897:141:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18768,"nodeType":"ExpressionStatement","src":"11897:141:77"},{"assignments":[18771],"declarations":[{"constant":false,"id":18771,"mutability":"mutable","name":"policy","nameLocation":"12064:6:77","nodeType":"VariableDeclaration","scope":18892,"src":"12049:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":18770,"nodeType":"UserDefinedTypeName","pathNode":{"id":18769,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"12049:6:77"},"referencedDeclaration":5282,"src":"12049:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":18775,"initialValue":{"baseExpression":{"id":18772,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"12073:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":18774,"indexExpression":{"id":18773,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18729,"src":"12082:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12073:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12049:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18777,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"12123:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"12123:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12142:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12123:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":18786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18781,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"12160:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"12160:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":18783,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"12176:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":18784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"12176:19:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":18785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5223,"src":"12176:26:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"12160:42:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12123:79:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032373a504f4c4943595f4143434553535f494e56414c4944","id":18788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12217:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_e6b085463e76c5d0bed11f77af4ff972e49e0aeb9e13803410e9593fb3d5272b","typeString":"literal_string \"ERROR:POC-027:POLICY_ACCESS_INVALID\""},"value":"ERROR:POC-027:POLICY_ACCESS_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e6b085463e76c5d0bed11f77af4ff972e49e0aeb9e13803410e9593fb3d5272b","typeString":"literal_string \"ERROR:POC-027:POLICY_ACCESS_INVALID\""}],"id":18776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12102:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12102:153:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18790,"nodeType":"ExpressionStatement","src":"12102:153:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18792,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"12295:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12319:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12295:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18795,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"12337:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":18796,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"12362:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"12362:24:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12337:49:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12295:91:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18800,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"12402:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":18801,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"12426:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12402:40:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12295:147:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032353a4150504c49434154494f4e5f5052454d49554d5f494e56414c4944","id":18804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12457:43:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_0accb0c8465e13760989bc709fa6ab7cf10b68fe03957bd6fe9eb47233a41aba","typeString":"literal_string \"ERROR:POC-025:APPLICATION_PREMIUM_INVALID\""},"value":"ERROR:POC-025:APPLICATION_PREMIUM_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0accb0c8465e13760989bc709fa6ab7cf10b68fe03957bd6fe9eb47233a41aba","typeString":"literal_string \"ERROR:POC-025:APPLICATION_PREMIUM_INVALID\""}],"id":18791,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12274:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12274:227:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18806,"nodeType":"ExpressionStatement","src":"12274:227:77"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18807,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"12516:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":18808,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"12536:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"12536:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12516:48:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18845,"nodeType":"IfStatement","src":"12512:441:77","trueBody":{"id":18844,"nodeType":"Block","src":"12566:387:77","statements":[{"eventCall":{"arguments":[{"id":18812,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18729,"src":"12618:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18813,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"12629:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"12629:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18815,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"12659:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18811,"name":"LogApplicationSumInsuredAdjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"12585:32:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":18816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12585:91:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18817,"nodeType":"EmitStatement","src":"12580:96:77"},{"expression":{"id":18822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18818,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"12690:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"12690:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18821,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"12721:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12690:47:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18823,"nodeType":"ExpressionStatement","src":"12690:47:77"},{"expression":{"id":18829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18824,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"12751:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"12751:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18827,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12775:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12775:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12751:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18830,"nodeType":"ExpressionStatement","src":"12751:39:77"},{"expression":{"id":18835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18831,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"12829:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payoutMaxAmount","nodeType":"MemberAccess","referencedDeclaration":5275,"src":"12829:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18834,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18733,"src":"12854:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12829:41:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18836,"nodeType":"ExpressionStatement","src":"12829:41:77"},{"expression":{"id":18842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18837,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"12884:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"12884:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18840,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12903:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12903:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12884:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18843,"nodeType":"ExpressionStatement","src":"12884:34:77"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":18846,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"12967:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":18847,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"12992:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"12992:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12967:50:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18891,"nodeType":"IfStatement","src":"12963:562:77","trueBody":{"id":18890,"nodeType":"Block","src":"13019:506:77","statements":[{"eventCall":{"arguments":[{"id":18851,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18729,"src":"13068:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18852,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"13079:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"13079:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18854,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"13106:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18850,"name":"LogApplicationPremiumAdjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"13038:29:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":18855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13038:90:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18856,"nodeType":"EmitStatement","src":"13033:95:77"},{"expression":{"id":18861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18857,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"13142:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"13142:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18860,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"13170:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13142:49:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18862,"nodeType":"ExpressionStatement","src":"13142:49:77"},{"expression":{"id":18868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18863,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18742,"src":"13205:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application storage pointer"}},"id":18865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5261,"src":"13205:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18866,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"13229:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13229:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13205:39:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18869,"nodeType":"ExpressionStatement","src":"13205:39:77"},{"eventCall":{"arguments":[{"id":18871,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18729,"src":"13313:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":18872,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"13324:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"13324:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18874,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"13354:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18870,"name":"LogPolicyPremiumAdjusted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5169,"src":"13288:24:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":18875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13288:88:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18876,"nodeType":"EmitStatement","src":"13283:93:77"},{"expression":{"id":18881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18877,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"13390:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"13390:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":18880,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18731,"src":"13421:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13390:52:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18882,"nodeType":"ExpressionStatement","src":"13390:52:77"},{"expression":{"id":18888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18883,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18771,"src":"13456:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"13456:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18886,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"13475:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13475:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13456:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18889,"nodeType":"ExpressionStatement","src":"13456:34:77"}]}}]},"functionSelector":"30a73da5","id":18893,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11624:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18738,"modifierName":{"id":18736,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"11609:14:77"},"nodeType":"ModifierInvocation","src":"11609:24:77"}],"name":"adjustPremiumSumInsured","nameLocation":"11444:23:77","nodeType":"FunctionDefinition","overrides":{"id":18735,"nodeType":"OverrideSpecifier","overrides":[],"src":"11592:8:77"},"parameters":{"id":18734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18729,"mutability":"mutable","name":"processId","nameLocation":"11485:9:77","nodeType":"VariableDeclaration","scope":18893,"src":"11477:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11477:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":18731,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"11513:21:77","nodeType":"VariableDeclaration","scope":18893,"src":"11505:29:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18730,"name":"uint256","nodeType":"ElementaryTypeName","src":"11505:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18733,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"11552:16:77","nodeType":"VariableDeclaration","scope":18893,"src":"11544:24:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18732,"name":"uint256","nodeType":"ElementaryTypeName","src":"11544:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11467:107:77"},"returnParameters":{"id":18739,"nodeType":"ParameterList","parameters":[],"src":"11638:0:77"},"scope":19974,"src":"11435:2096:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5373],"body":{"id":18944,"nodeType":"Block","src":"13641:390:77","statements":[{"assignments":[18904],"declarations":[{"constant":false,"id":18904,"mutability":"mutable","name":"policy","nameLocation":"13666:6:77","nodeType":"VariableDeclaration","scope":18944,"src":"13651:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":18903,"nodeType":"UserDefinedTypeName","pathNode":{"id":18902,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"13651:6:77"},"referencedDeclaration":5282,"src":"13651:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":18908,"initialValue":{"baseExpression":{"id":18905,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"13675:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":18907,"indexExpression":{"id":18906,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18895,"src":"13684:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13675:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13651:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18910,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18904,"src":"13712:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"13712:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13731:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13712:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032383a504f4c4943595f444f45535f4e4f545f4558495354","id":18914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13734:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_53d931fec3ed7a0ddc013521fad1f76a8f8e8de81d5c8c7f76a59d6fa698eba1","typeString":"literal_string \"ERROR:POC-028:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-028:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_53d931fec3ed7a0ddc013521fad1f76a8f8e8de81d5c8c7f76a59d6fa698eba1","typeString":"literal_string \"ERROR:POC-028:POLICY_DOES_NOT_EXIST\""}],"id":18909,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13704:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13704:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18916,"nodeType":"ExpressionStatement","src":"13704:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":18922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18918,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18904,"src":"13790:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"13790:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18920,"name":"PolicyState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"13806:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":18921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5223,"src":"13806:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"13790:34:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3032393a4150504c49434154494f4e5f53544154455f494e56414c4944","id":18923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13826:41:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_812d7a3c3591ae4c026af18cdf37eaa885599baf13a298242cc5ed294cb86aa7","typeString":"literal_string \"ERROR:POC-029:APPLICATION_STATE_INVALID\""},"value":"ERROR:POC-029:APPLICATION_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_812d7a3c3591ae4c026af18cdf37eaa885599baf13a298242cc5ed294cb86aa7","typeString":"literal_string \"ERROR:POC-029:APPLICATION_STATE_INVALID\""}],"id":18917,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13782:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13782:86:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18925,"nodeType":"ExpressionStatement","src":"13782:86:77"},{"expression":{"id":18931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18926,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18904,"src":"13879:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"13879:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18929,"name":"PolicyState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"13894:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":18930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":5224,"src":"13894:19:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"13879:34:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"id":18932,"nodeType":"ExpressionStatement","src":"13879:34:77"},{"expression":{"id":18938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":18933,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18904,"src":"13923:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"13923:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":18936,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"13942:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":18937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13942:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13923:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18939,"nodeType":"ExpressionStatement","src":"13923:34:77"},{"eventCall":{"arguments":[{"id":18941,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18895,"src":"14014:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18940,"name":"LogPolicyExpired","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5135,"src":"13997:16:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":18942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13997:27:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18943,"nodeType":"EmitStatement","src":"13992:32:77"}]},"functionSelector":"47e3b138","id":18945,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13627:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18900,"modifierName":{"id":18898,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"13612:14:77"},"nodeType":"ModifierInvocation","src":"13612:24:77"}],"name":"expirePolicy","nameLocation":"13546:12:77","nodeType":"FunctionDefinition","overrides":{"id":18897,"nodeType":"OverrideSpecifier","overrides":[],"src":"13595:8:77"},"parameters":{"id":18896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18895,"mutability":"mutable","name":"processId","nameLocation":"13567:9:77","nodeType":"VariableDeclaration","scope":18945,"src":"13559:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13559:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13558:19:77"},"returnParameters":{"id":18901,"nodeType":"ParameterList","parameters":[],"src":"13641:0:77"},"scope":19974,"src":"13537:494:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5378],"body":{"id":19039,"nodeType":"Block","src":"14140:777:77","statements":[{"assignments":[18956],"declarations":[{"constant":false,"id":18956,"mutability":"mutable","name":"meta","nameLocation":"14167:4:77","nodeType":"VariableDeclaration","scope":19039,"src":"14150:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":18955,"nodeType":"UserDefinedTypeName","pathNode":{"id":18954,"name":"Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"14150:8:77"},"referencedDeclaration":5248,"src":"14150:8:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":18960,"initialValue":{"baseExpression":{"id":18957,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"14174:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":18959,"indexExpression":{"id":18958,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18947,"src":"14183:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14174:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14150:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18962,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18956,"src":"14211:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":18963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"14211:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14228:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14211:18:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3033303a4d455441444154415f444f45535f4e4f545f4558495354","id":18966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14231:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b49b43b480ffcd2d682b90a53947b738e166fa0f45183e37b9a15878efb6017","typeString":"literal_string \"ERROR:POC-030:METADATA_DOES_NOT_EXIST\""},"value":"ERROR:POC-030:METADATA_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b49b43b480ffcd2d682b90a53947b738e166fa0f45183e37b9a15878efb6017","typeString":"literal_string \"ERROR:POC-030:METADATA_DOES_NOT_EXIST\""}],"id":18961,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14203:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14203:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18968,"nodeType":"ExpressionStatement","src":"14203:68:77"},{"assignments":[18971],"declarations":[{"constant":false,"id":18971,"mutability":"mutable","name":"policy","nameLocation":"14297:6:77","nodeType":"VariableDeclaration","scope":19039,"src":"14282:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":18970,"nodeType":"UserDefinedTypeName","pathNode":{"id":18969,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"14282:6:77"},"referencedDeclaration":5282,"src":"14282:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":18975,"initialValue":{"baseExpression":{"id":18972,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"14306:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":18974,"indexExpression":{"id":18973,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18947,"src":"14315:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14306:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14282:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18977,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18971,"src":"14343:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"14343:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":18979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14362:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14343:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3033313a504f4c4943595f444f45535f4e4f545f4558495354","id":18981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14365:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_4478b2e77c23e8ea61028b27bf7e3d9b60113df479aab9238db0e9c1abb71c24","typeString":"literal_string \"ERROR:POC-031:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-031:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4478b2e77c23e8ea61028b27bf7e3d9b60113df479aab9238db0e9c1abb71c24","typeString":"literal_string \"ERROR:POC-031:POLICY_DOES_NOT_EXIST\""}],"id":18976,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14335:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14335:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18983,"nodeType":"ExpressionStatement","src":"14335:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":18989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18985,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18971,"src":"14421:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"14421:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":18987,"name":"PolicyState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"14437:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":18988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expired","nodeType":"MemberAccess","referencedDeclaration":5224,"src":"14437:19:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"14421:35:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3033323a504f4c4943595f53544154455f494e56414c4944","id":18990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14458:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_e68601d261f3b44a01e4c4b719124fdfa4604ec137e1a47c16da8de53440a7a7","typeString":"literal_string \"ERROR:POC-032:POLICY_STATE_INVALID\""},"value":"ERROR:POC-032:POLICY_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e68601d261f3b44a01e4c4b719124fdfa4604ec137e1a47c16da8de53440a7a7","typeString":"literal_string \"ERROR:POC-032:POLICY_STATE_INVALID\""}],"id":18984,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14413:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14413:82:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18992,"nodeType":"ExpressionStatement","src":"14413:82:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":18994,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18971,"src":"14513:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":18995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"14513:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":18996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14539:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14513:27:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3033333a504f4c4943595f4841535f4f50454e5f434c41494d53","id":18998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14542:38:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_abcae8090ad71bdef33e1fc1dca9cb7acc84966fbfb6b6101f386f861bfed9d3","typeString":"literal_string \"ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS\""},"value":"ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_abcae8090ad71bdef33e1fc1dca9cb7acc84966fbfb6b6101f386f861bfed9d3","typeString":"literal_string \"ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS\""}],"id":18993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14505:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14505:76:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19000,"nodeType":"ExpressionStatement","src":"14505:76:77"},{"expression":{"id":19006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19001,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18971,"src":"14592:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"14592:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19004,"name":"PolicyState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"14607:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":19005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"14607:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"14592:33:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"id":19007,"nodeType":"ExpressionStatement","src":"14592:33:77"},{"expression":{"id":19013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19008,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18971,"src":"14635:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"14635:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19011,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"14654:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"14654:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14635:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19014,"nodeType":"ExpressionStatement","src":"14635:34:77"},{"expression":{"id":19020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19015,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18956,"src":"14704:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":19017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"14704:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19018,"name":"PolicyFlowState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5217,"src":"14717:15:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyFlowState_$5217_$","typeString":"type(enum IPolicy.PolicyFlowState)"}},"id":19019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Finished","nodeType":"MemberAccess","referencedDeclaration":5216,"src":"14717:24:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"src":"14704:37:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}},"id":19021,"nodeType":"ExpressionStatement","src":"14704:37:77"},{"expression":{"id":19027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19022,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18956,"src":"14751:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":19024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5247,"src":"14751:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19025,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"14768:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"14768:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14751:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19028,"nodeType":"ExpressionStatement","src":"14751:32:77"},{"eventCall":{"arguments":[{"id":19030,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18947,"src":"14846:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":19031,"name":"meta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18956,"src":"14857:4:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata storage pointer"}},"id":19032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5241,"src":"14857:10:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_PolicyFlowState_$5217","typeString":"enum IPolicy.PolicyFlowState"}],"id":19029,"name":"LogMetadataStateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5107,"src":"14822:23:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_PolicyFlowState_$5217_$returns$__$","typeString":"function (bytes32,enum IPolicy.PolicyFlowState)"}},"id":19033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14822:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19034,"nodeType":"EmitStatement","src":"14817:51:77"},{"eventCall":{"arguments":[{"id":19036,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18947,"src":"14900:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19035,"name":"LogPolicyClosed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"14884:15:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":19037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14884:26:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19038,"nodeType":"EmitStatement","src":"14879:31:77"}]},"functionSelector":"adcadb28","id":19040,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":18951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14126:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":18952,"modifierName":{"id":18950,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"14111:14:77"},"nodeType":"ModifierInvocation","src":"14111:24:77"}],"name":"closePolicy","nameLocation":"14046:11:77","nodeType":"FunctionDefinition","overrides":{"id":18949,"nodeType":"OverrideSpecifier","overrides":[],"src":"14094:8:77"},"parameters":{"id":18948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18947,"mutability":"mutable","name":"processId","nameLocation":"14066:9:77","nodeType":"VariableDeclaration","scope":19040,"src":"14058:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18946,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14058:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14057:19:77"},"returnParameters":{"id":18953,"nodeType":"ParameterList","parameters":[],"src":"14140:0:77"},"scope":19974,"src":"14037:880:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5389],"body":{"id":19169,"nodeType":"Block","src":"15149:1210:77","statements":[{"assignments":[19057],"declarations":[{"constant":false,"id":19057,"mutability":"mutable","name":"policy","nameLocation":"15174:6:77","nodeType":"VariableDeclaration","scope":19169,"src":"15159:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19056,"nodeType":"UserDefinedTypeName","pathNode":{"id":19055,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"15159:6:77"},"referencedDeclaration":5282,"src":"15159:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19061,"initialValue":{"baseExpression":{"id":19058,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"15183:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19060,"indexExpression":{"id":19059,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19042,"src":"15192:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15183:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15159:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19063,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"15220:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"15220:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15239:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15220:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3034303a504f4c4943595f444f45535f4e4f545f4558495354","id":19067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15242:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_292e8e8b2f73338c9d7e6ea8fa7931b8d5344a982f7803b5e8efb3cc6e51eca2","typeString":"literal_string \"ERROR:POC-040:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-040:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_292e8e8b2f73338c9d7e6ea8fa7931b8d5344a982f7803b5e8efb3cc6e51eca2","typeString":"literal_string \"ERROR:POC-040:POLICY_DOES_NOT_EXIST\""}],"id":19062,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15212:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15212:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19069,"nodeType":"ExpressionStatement","src":"15212:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":19076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19071,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"15298:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"15298:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":19073,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"15314:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":19074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"15314:19:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":19075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":5223,"src":"15314:26:77","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"15298:42:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3034313a504f4c4943595f4e4f545f414354495645","id":19077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15342:33:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_fd5ce4739c74f225637bb83c85f080775b013e16f83c8f86ac7d7272df93a150","typeString":"literal_string \"ERROR:POC-041:POLICY_NOT_ACTIVE\""},"value":"ERROR:POC-041:POLICY_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fd5ce4739c74f225637bb83c85f080775b013e16f83c8f86ac7d7272df93a150","typeString":"literal_string \"ERROR:POC-041:POLICY_NOT_ACTIVE\""}],"id":19070,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15290:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15290:86:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19079,"nodeType":"ExpressionStatement","src":"15290:86:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19081,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"15627:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutAmount","nodeType":"MemberAccess","referencedDeclaration":5277,"src":"15627:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19083,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19044,"src":"15649:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15627:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":19085,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"15664:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutMaxAmount","nodeType":"MemberAccess","referencedDeclaration":5275,"src":"15664:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15627:59:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3034323a434c41494d5f414d4f554e545f455843454544535f4d41585f5041594f5554","id":19088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15688:47:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_5fee7969b096be44aa0b06a7d6dca973bac0addbe10f33bf7ae1c3268e370252","typeString":"literal_string \"ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT\""},"value":"ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5fee7969b096be44aa0b06a7d6dca973bac0addbe10f33bf7ae1c3268e370252","typeString":"literal_string \"ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT\""}],"id":19080,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15619:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15619:117:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19090,"nodeType":"ExpressionStatement","src":"15619:117:77"},{"expression":{"id":19094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19091,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19053,"src":"15747:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19092,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"15757:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimsCount","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"15757:18:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15747:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19095,"nodeType":"ExpressionStatement","src":"15747:28:77"},{"assignments":[19098],"declarations":[{"constant":false,"id":19098,"mutability":"mutable","name":"claim","nameLocation":"15799:5:77","nodeType":"VariableDeclaration","scope":19169,"src":"15785:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19097,"nodeType":"UserDefinedTypeName","pathNode":{"id":19096,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"15785:5:77"},"referencedDeclaration":5296,"src":"15785:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19104,"initialValue":{"baseExpression":{"baseExpression":{"id":19099,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"15807:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19101,"indexExpression":{"id":19100,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19042,"src":"15814:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15807:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19103,"indexExpression":{"id":19102,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19053,"src":"15825:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15807:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15785:48:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19106,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"15851:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"15851:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":19108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15870:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15851:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3034333a434c41494d5f414c52454144595f455849535453","id":19110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15873:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_91872c40feaf252e2b1bb5310507c26c5310a79208576166f8430e887a141a99","typeString":"literal_string \"ERROR:POC-043:CLAIM_ALREADY_EXISTS\""},"value":"ERROR:POC-043:CLAIM_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91872c40feaf252e2b1bb5310507c26c5310a79208576166f8430e887a141a99","typeString":"literal_string \"ERROR:POC-043:CLAIM_ALREADY_EXISTS\""}],"id":19105,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15843:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15843:67:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19112,"nodeType":"ExpressionStatement","src":"15843:67:77"},{"expression":{"id":19118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19113,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"15921:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"15921:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19116,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"15935:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5227,"src":"15935:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"15921:32:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"id":19119,"nodeType":"ExpressionStatement","src":"15921:32:77"},{"expression":{"id":19124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19120,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"15963:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"15963:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19123,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19044,"src":"15983:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15963:31:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19125,"nodeType":"ExpressionStatement","src":"15963:31:77"},{"expression":{"id":19130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19126,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"16004:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5291,"src":"16004:10:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19129,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19046,"src":"16017:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"16004:17:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":19131,"nodeType":"ExpressionStatement","src":"16004:17:77"},{"expression":{"id":19137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19132,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"16031:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"16031:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19135,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"16049:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"16049:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16031:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19138,"nodeType":"ExpressionStatement","src":"16031:33:77"},{"expression":{"id":19144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19139,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"16098:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5295,"src":"16098:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19142,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"16116:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"16116:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16098:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19145,"nodeType":"ExpressionStatement","src":"16098:33:77"},{"expression":{"id":19149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16166:20:77","subExpression":{"expression":{"id":19146,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"16166:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"claimsCount","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"16166:18:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19150,"nodeType":"ExpressionStatement","src":"16166:20:77"},{"expression":{"id":19154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16196:24:77","subExpression":{"expression":{"id":19151,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"16196:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"16196:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19155,"nodeType":"ExpressionStatement","src":"16196:24:77"},{"expression":{"id":19161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19156,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19057,"src":"16230:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19158,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"16230:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19159,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"16249:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"16249:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16230:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19162,"nodeType":"ExpressionStatement","src":"16230:34:77"},{"eventCall":{"arguments":[{"id":19164,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19042,"src":"16320:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19165,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19053,"src":"16331:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19166,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19044,"src":"16340:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19163,"name":"LogClaimCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5177,"src":"16304:15:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":19167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16304:48:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19168,"nodeType":"EmitStatement","src":"16299:53:77"}]},"functionSelector":"ec935668","id":19170,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15101:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19051,"modifierName":{"id":19049,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"15086:14:77"},"nodeType":"ModifierInvocation","src":"15086:24:77"}],"name":"createClaim","nameLocation":"14948:11:77","nodeType":"FunctionDefinition","overrides":{"id":19048,"nodeType":"OverrideSpecifier","overrides":[],"src":"15069:8:77"},"parameters":{"id":19047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19042,"mutability":"mutable","name":"processId","nameLocation":"14977:9:77","nodeType":"VariableDeclaration","scope":19170,"src":"14969:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14969:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19044,"mutability":"mutable","name":"claimAmount","nameLocation":"15005:11:77","nodeType":"VariableDeclaration","scope":19170,"src":"14997:19:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19043,"name":"uint256","nodeType":"ElementaryTypeName","src":"14997:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19046,"mutability":"mutable","name":"data","nameLocation":"15041:4:77","nodeType":"VariableDeclaration","scope":19170,"src":"15026:19:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19045,"name":"bytes","nodeType":"ElementaryTypeName","src":"15026:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14959:92:77"},"returnParameters":{"id":19054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19053,"mutability":"mutable","name":"claimId","nameLocation":"15136:7:77","nodeType":"VariableDeclaration","scope":19170,"src":"15128:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19052,"name":"uint256","nodeType":"ElementaryTypeName","src":"15128:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15127:17:77"},"scope":19974,"src":"14939:1420:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5398],"body":{"id":19282,"nodeType":"Block","src":"16543:1039:77","statements":[{"assignments":[19185],"declarations":[{"constant":false,"id":19185,"mutability":"mutable","name":"policy","nameLocation":"16568:6:77","nodeType":"VariableDeclaration","scope":19282,"src":"16553:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19184,"nodeType":"UserDefinedTypeName","pathNode":{"id":19183,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"16553:6:77"},"referencedDeclaration":5282,"src":"16553:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19189,"initialValue":{"baseExpression":{"id":19186,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"16577:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19188,"indexExpression":{"id":19187,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"16586:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16577:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16553:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19191,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"16614:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"16614:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16633:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16614:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3035303a504f4c4943595f444f45535f4e4f545f4558495354","id":19195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16636:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c741f933dcdc4a0cc8ca27d6761d563fde507b39184c4ba433c9546d61881f7","typeString":"literal_string \"ERROR:POC-050:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-050:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c741f933dcdc4a0cc8ca27d6761d563fde507b39184c4ba433c9546d61881f7","typeString":"literal_string \"ERROR:POC-050:POLICY_DOES_NOT_EXIST\""}],"id":19190,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16606:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16606:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19197,"nodeType":"ExpressionStatement","src":"16606:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19199,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"16692:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"16692:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16717:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16692:26:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3035313a504f4c4943595f574954484f55545f4f50454e5f434c41494d53","id":19203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16720:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_755bab7e4197528963528c11bb57a6268486e588c4c58aa1fdc3941f0ca82461","typeString":"literal_string \"ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS\""},"value":"ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_755bab7e4197528963528c11bb57a6268486e588c4c58aa1fdc3941f0ca82461","typeString":"literal_string \"ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS\""}],"id":19198,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16684:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16684:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19205,"nodeType":"ExpressionStatement","src":"16684:79:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19207,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"16899:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutAmount","nodeType":"MemberAccess","referencedDeclaration":5277,"src":"16899:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19209,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19176,"src":"16921:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16899:37:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":19211,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"16940:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutMaxAmount","nodeType":"MemberAccess","referencedDeclaration":5275,"src":"16940:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16899:63:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3035323a5041594f55545f4d41585f414d4f554e545f4558434545444544","id":19214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16964:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c526d7df7c2530ac59be5bb2670f7e7233e5bcb0ebd99bccf1d2574f9088ff9","typeString":"literal_string \"ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED\""},"value":"ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5c526d7df7c2530ac59be5bb2670f7e7233e5bcb0ebd99bccf1d2574f9088ff9","typeString":"literal_string \"ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED\""}],"id":19206,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16891:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16891:116:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19216,"nodeType":"ExpressionStatement","src":"16891:116:77"},{"assignments":[19219],"declarations":[{"constant":false,"id":19219,"mutability":"mutable","name":"claim","nameLocation":"17032:5:77","nodeType":"VariableDeclaration","scope":19282,"src":"17018:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19218,"nodeType":"UserDefinedTypeName","pathNode":{"id":19217,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"17018:5:77"},"referencedDeclaration":5296,"src":"17018:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19225,"initialValue":{"baseExpression":{"baseExpression":{"id":19220,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"17040:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19222,"indexExpression":{"id":19221,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"17047:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17040:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19224,"indexExpression":{"id":19223,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19174,"src":"17058:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17040:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17018:48:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19227,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"17084:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"17084:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17102:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17084:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3035333a434c41494d5f444f45535f4e4f545f4558495354","id":19231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17105:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e811d9572370e9a750a1f2b7c3f07287bed0a618295148d5ac82c856a0f8383","typeString":"literal_string \"ERROR:POC-053:CLAIM_DOES_NOT_EXIST\""},"value":"ERROR:POC-053:CLAIM_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e811d9572370e9a750a1f2b7c3f07287bed0a618295148d5ac82c856a0f8383","typeString":"literal_string \"ERROR:POC-053:CLAIM_DOES_NOT_EXIST\""}],"id":19226,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17076:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17076:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19233,"nodeType":"ExpressionStatement","src":"17076:66:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19235,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"17160:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"17160:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19237,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"17175:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5227,"src":"17175:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"17160:33:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3035343a434c41494d5f53544154455f494e56414c4944","id":19240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17195:35:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b4bf107bd938845d3000d9894f4f7c3f232df3de3b36946e82f23aad29c8984","typeString":"literal_string \"ERROR:POC-054:CLAIM_STATE_INVALID\""},"value":"ERROR:POC-054:CLAIM_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b4bf107bd938845d3000d9894f4f7c3f232df3de3b36946e82f23aad29c8984","typeString":"literal_string \"ERROR:POC-054:CLAIM_STATE_INVALID\""}],"id":19234,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17152:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17152:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19242,"nodeType":"ExpressionStatement","src":"17152:79:77"},{"expression":{"id":19248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19243,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"17242:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"17242:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19246,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"17256:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Confirmed","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"17256:20:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"17242:34:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"id":19249,"nodeType":"ExpressionStatement","src":"17242:34:77"},{"expression":{"id":19254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19250,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"17286:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"17286:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19253,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19176,"src":"17306:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17286:35:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19255,"nodeType":"ExpressionStatement","src":"17286:35:77"},{"expression":{"id":19261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19256,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19219,"src":"17331:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5295,"src":"17331:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19259,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"17349:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"17349:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17331:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19262,"nodeType":"ExpressionStatement","src":"17331:33:77"},{"expression":{"id":19267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19263,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"17399:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"payoutAmount","nodeType":"MemberAccess","referencedDeclaration":5277,"src":"17399:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":19266,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19176,"src":"17422:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17399:38:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19268,"nodeType":"ExpressionStatement","src":"17399:38:77"},{"expression":{"id":19274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19269,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19185,"src":"17447:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"17447:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19272,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"17466:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"17466:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17447:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19275,"nodeType":"ExpressionStatement","src":"17447:34:77"},{"eventCall":{"arguments":[{"id":19277,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19172,"src":"17539:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19278,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19174,"src":"17550:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19279,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19176,"src":"17559:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19276,"name":"LogClaimConfirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5185,"src":"17521:17:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":19280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17521:54:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19281,"nodeType":"EmitStatement","src":"17516:59:77"}]},"functionSelector":"4e02c63f","id":19283,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16528:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19181,"modifierName":{"id":19179,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"16513:14:77"},"nodeType":"ModifierInvocation","src":"16513:24:77"}],"name":"confirmClaim","nameLocation":"16374:12:77","nodeType":"FunctionDefinition","overrides":{"id":19178,"nodeType":"OverrideSpecifier","overrides":[],"src":"16496:8:77"},"parameters":{"id":19177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19172,"mutability":"mutable","name":"processId","nameLocation":"16404:9:77","nodeType":"VariableDeclaration","scope":19283,"src":"16396:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16396:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19174,"mutability":"mutable","name":"claimId","nameLocation":"16431:7:77","nodeType":"VariableDeclaration","scope":19283,"src":"16423:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19173,"name":"uint256","nodeType":"ElementaryTypeName","src":"16423:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19176,"mutability":"mutable","name":"confirmedAmount","nameLocation":"16456:15:77","nodeType":"VariableDeclaration","scope":19283,"src":"16448:23:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19175,"name":"uint256","nodeType":"ElementaryTypeName","src":"16448:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16386:91:77"},"returnParameters":{"id":19182,"nodeType":"ParameterList","parameters":[],"src":"16543:0:77"},"scope":19974,"src":"16365:1217:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5405],"body":{"id":19369,"nodeType":"Block","src":"17710:683:77","statements":[{"assignments":[19296],"declarations":[{"constant":false,"id":19296,"mutability":"mutable","name":"policy","nameLocation":"17735:6:77","nodeType":"VariableDeclaration","scope":19369,"src":"17720:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19295,"nodeType":"UserDefinedTypeName","pathNode":{"id":19294,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"17720:6:77"},"referencedDeclaration":5282,"src":"17720:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19300,"initialValue":{"baseExpression":{"id":19297,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"17744:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19299,"indexExpression":{"id":19298,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19285,"src":"17753:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17744:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17720:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19302,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19296,"src":"17781:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"17781:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17800:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17781:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3036303a504f4c4943595f444f45535f4e4f545f4558495354","id":19306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17803:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_b41ecb3c73d1bd22f6c59fa2a27979a7be92c595245d732c42c675aea1a608cc","typeString":"literal_string \"ERROR:POC-060:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-060:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b41ecb3c73d1bd22f6c59fa2a27979a7be92c595245d732c42c675aea1a608cc","typeString":"literal_string \"ERROR:POC-060:POLICY_DOES_NOT_EXIST\""}],"id":19301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17773:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17773:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19308,"nodeType":"ExpressionStatement","src":"17773:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19310,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19296,"src":"17859:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"17859:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17884:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17859:26:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3036313a504f4c4943595f574954484f55545f4f50454e5f434c41494d53","id":19314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17887:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3053d4e6cfaf833f897a113c773083b437a8e9c0edb9dab9a33e145eda637486","typeString":"literal_string \"ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS\""},"value":"ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3053d4e6cfaf833f897a113c773083b437a8e9c0edb9dab9a33e145eda637486","typeString":"literal_string \"ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS\""}],"id":19309,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17851:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17851:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19316,"nodeType":"ExpressionStatement","src":"17851:79:77"},{"assignments":[19319],"declarations":[{"constant":false,"id":19319,"mutability":"mutable","name":"claim","nameLocation":"17955:5:77","nodeType":"VariableDeclaration","scope":19369,"src":"17941:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19318,"nodeType":"UserDefinedTypeName","pathNode":{"id":19317,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"17941:5:77"},"referencedDeclaration":5296,"src":"17941:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19325,"initialValue":{"baseExpression":{"baseExpression":{"id":19320,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"17963:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19322,"indexExpression":{"id":19321,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19285,"src":"17970:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17963:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19324,"indexExpression":{"id":19323,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19287,"src":"17981:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17963:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17941:48:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19327,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19319,"src":"18007:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"18007:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18025:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18007:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3036323a434c41494d5f444f45535f4e4f545f4558495354","id":19331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18028:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc0c0ad5317a8bd39d7f7249cfb02b10c5d042b35addbb0f642b415e4905d7e9","typeString":"literal_string \"ERROR:POC-062:CLAIM_DOES_NOT_EXIST\""},"value":"ERROR:POC-062:CLAIM_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc0c0ad5317a8bd39d7f7249cfb02b10c5d042b35addbb0f642b415e4905d7e9","typeString":"literal_string \"ERROR:POC-062:CLAIM_DOES_NOT_EXIST\""}],"id":19326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17999:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17999:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19333,"nodeType":"ExpressionStatement","src":"17999:66:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19335,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19319,"src":"18083:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"18083:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19337,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"18098:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5227,"src":"18098:18:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"18083:33:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3036333a434c41494d5f53544154455f494e56414c4944","id":19340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18118:35:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_398a0b35799106343616f5ee2dafb07b4f8a17d7f3221c043c8d1b874d608409","typeString":"literal_string \"ERROR:POC-063:CLAIM_STATE_INVALID\""},"value":"ERROR:POC-063:CLAIM_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_398a0b35799106343616f5ee2dafb07b4f8a17d7f3221c043c8d1b874d608409","typeString":"literal_string \"ERROR:POC-063:CLAIM_STATE_INVALID\""}],"id":19334,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18075:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18075:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19342,"nodeType":"ExpressionStatement","src":"18075:79:77"},{"expression":{"id":19348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19343,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19319,"src":"18165:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"18165:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19346,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"18179:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":5229,"src":"18179:19:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"18165:33:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"id":19349,"nodeType":"ExpressionStatement","src":"18165:33:77"},{"expression":{"id":19355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19350,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19319,"src":"18208:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5295,"src":"18208:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19353,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"18226:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18226:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18208:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19356,"nodeType":"ExpressionStatement","src":"18208:33:77"},{"expression":{"id":19362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19357,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19296,"src":"18276:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"18276:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19360,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"18295:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"18295:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18276:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19363,"nodeType":"ExpressionStatement","src":"18276:34:77"},{"eventCall":{"arguments":[{"id":19365,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19285,"src":"18367:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19366,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19287,"src":"18378:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19364,"name":"LogClaimDeclined","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5191,"src":"18350:16:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":19367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18350:36:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19368,"nodeType":"EmitStatement","src":"18345:41:77"}]},"functionSelector":"4cda0de9","id":19370,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17695:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19292,"modifierName":{"id":19290,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"17680:14:77"},"nodeType":"ModifierInvocation","src":"17680:24:77"}],"name":"declineClaim","nameLocation":"17597:12:77","nodeType":"FunctionDefinition","overrides":{"id":19289,"nodeType":"OverrideSpecifier","overrides":[],"src":"17663:8:77"},"parameters":{"id":19288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19285,"mutability":"mutable","name":"processId","nameLocation":"17618:9:77","nodeType":"VariableDeclaration","scope":19370,"src":"17610:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17610:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19287,"mutability":"mutable","name":"claimId","nameLocation":"17637:7:77","nodeType":"VariableDeclaration","scope":19370,"src":"17629:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19286,"name":"uint256","nodeType":"ElementaryTypeName","src":"17629:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17609:36:77"},"returnParameters":{"id":19293,"nodeType":"ParameterList","parameters":[],"src":"17710:0:77"},"scope":19974,"src":"17588:805:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5412],"body":{"id":19490,"nodeType":"Block","src":"18519:1021:77","statements":[{"assignments":[19383],"declarations":[{"constant":false,"id":19383,"mutability":"mutable","name":"policy","nameLocation":"18544:6:77","nodeType":"VariableDeclaration","scope":19490,"src":"18529:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19382,"nodeType":"UserDefinedTypeName","pathNode":{"id":19381,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"18529:6:77"},"referencedDeclaration":5282,"src":"18529:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19387,"initialValue":{"baseExpression":{"id":19384,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"18553:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19386,"indexExpression":{"id":19385,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19372,"src":"18562:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18553:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18529:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19389,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19383,"src":"18590:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"18590:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18609:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18590:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3037303a504f4c4943595f444f45535f4e4f545f4558495354","id":19393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18612:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ba313180bbdd84742438fe48f9070ad471c0e8441fc547ddd9d43836c05647d","typeString":"literal_string \"ERROR:POC-070:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-070:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7ba313180bbdd84742438fe48f9070ad471c0e8441fc547ddd9d43836c05647d","typeString":"literal_string \"ERROR:POC-070:POLICY_DOES_NOT_EXIST\""}],"id":19388,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18582:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18582:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19395,"nodeType":"ExpressionStatement","src":"18582:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19397,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19383,"src":"18668:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"18668:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18693:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18668:26:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3037313a504f4c4943595f574954484f55545f4f50454e5f434c41494d53","id":19401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18696:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fcafde1bf77d4ec8dcb626e9696c36e8e5c1a0660b1230d420f1e68bf4ba036","typeString":"literal_string \"ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS\""},"value":"ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3fcafde1bf77d4ec8dcb626e9696c36e8e5c1a0660b1230d420f1e68bf4ba036","typeString":"literal_string \"ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS\""}],"id":19396,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18660:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18660:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19403,"nodeType":"ExpressionStatement","src":"18660:79:77"},{"assignments":[19406],"declarations":[{"constant":false,"id":19406,"mutability":"mutable","name":"claim","nameLocation":"18764:5:77","nodeType":"VariableDeclaration","scope":19490,"src":"18750:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19405,"nodeType":"UserDefinedTypeName","pathNode":{"id":19404,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"18750:5:77"},"referencedDeclaration":5296,"src":"18750:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19412,"initialValue":{"baseExpression":{"baseExpression":{"id":19407,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"18772:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19409,"indexExpression":{"id":19408,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19372,"src":"18779:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18772:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19411,"indexExpression":{"id":19410,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19374,"src":"18790:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18772:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18750:48:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19414,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"18816:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"18816:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18834:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18816:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3037323a434c41494d5f444f45535f4e4f545f4558495354","id":19418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18837:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_66228a7360d9b0fffc4485892145b1c3b51e61093cd4b29b7cfcba5c26002332","typeString":"literal_string \"ERROR:POC-072:CLAIM_DOES_NOT_EXIST\""},"value":"ERROR:POC-072:CLAIM_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_66228a7360d9b0fffc4485892145b1c3b51e61093cd4b29b7cfcba5c26002332","typeString":"literal_string \"ERROR:POC-072:CLAIM_DOES_NOT_EXIST\""}],"id":19413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18808:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18808:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19420,"nodeType":"ExpressionStatement","src":"18808:66:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19422,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"18905:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"18905:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19424,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"18920:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Confirmed","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"18920:20:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"18905:35:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19427,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"18957:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"18957:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19429,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"18972:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":5229,"src":"18972:19:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"18957:34:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18905:86:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3037333a434c41494d5f53544154455f494e56414c4944","id":19433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19006:35:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_0905fdf985363891ad748beb4d4a032395a3ba007421a6945b74e963f9f015fa","typeString":"literal_string \"ERROR:POC-073:CLAIM_STATE_INVALID\""},"value":"ERROR:POC-073:CLAIM_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0905fdf985363891ad748beb4d4a032395a3ba007421a6945b74e963f9f015fa","typeString":"literal_string \"ERROR:POC-073:CLAIM_STATE_INVALID\""}],"id":19421,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18884:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18884:158:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19435,"nodeType":"ExpressionStatement","src":"18884:158:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19437,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19075:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"19075:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19439,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"19090:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19440,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Confirmed","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"19090:20:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"19075:35:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19442,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19114:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"19114:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19444,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19135:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paidAmount","nodeType":"MemberAccess","referencedDeclaration":5289,"src":"19135:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19114:37:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19075:76:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19448,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19074:78:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19449,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19170:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"19170:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19451,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"19185:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Declined","nodeType":"MemberAccess","referencedDeclaration":5229,"src":"19185:19:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"19170:34:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19454,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19169:36:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19074:131:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3037343a434c41494d5f574954485f554e504149445f5041594f555453","id":19456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19220:41:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_994fcfb46b233054b612c28f28fd225d060ea12c5701f5c87abfbfceffddc86b","typeString":"literal_string \"ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS\""},"value":"ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_994fcfb46b233054b612c28f28fd225d060ea12c5701f5c87abfbfceffddc86b","typeString":"literal_string \"ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS\""}],"id":19436,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19053:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19053:218:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19458,"nodeType":"ExpressionStatement","src":"19053:218:77"},{"expression":{"id":19464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19459,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19282:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"19282:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19462,"name":"ClaimState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5231,"src":"19296:10:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"19296:17:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"19282:31:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"id":19465,"nodeType":"ExpressionStatement","src":"19282:31:77"},{"expression":{"id":19471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19466,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19406,"src":"19323:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5295,"src":"19323:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19469,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"19341:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"19341:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19323:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19472,"nodeType":"ExpressionStatement","src":"19323:33:77"},{"expression":{"id":19476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"19391:24:77","subExpression":{"expression":{"id":19473,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19383,"src":"19391:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"19391:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19477,"nodeType":"ExpressionStatement","src":"19391:24:77"},{"expression":{"id":19483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19478,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19383,"src":"19425:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"19425:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19481,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"19444:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"19444:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19425:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19484,"nodeType":"ExpressionStatement","src":"19425:34:77"},{"eventCall":{"arguments":[{"id":19486,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19372,"src":"19514:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19487,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19374,"src":"19525:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19485,"name":"LogClaimClosed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"19499:14:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":19488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19499:34:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19489,"nodeType":"EmitStatement","src":"19494:39:77"}]},"functionSelector":"7f29dba2","id":19491,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18504:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19379,"modifierName":{"id":19377,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"18489:14:77"},"nodeType":"ModifierInvocation","src":"18489:24:77"}],"name":"closeClaim","nameLocation":"18408:10:77","nodeType":"FunctionDefinition","overrides":{"id":19376,"nodeType":"OverrideSpecifier","overrides":[],"src":"18472:8:77"},"parameters":{"id":19375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19372,"mutability":"mutable","name":"processId","nameLocation":"18427:9:77","nodeType":"VariableDeclaration","scope":19491,"src":"18419:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18419:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19374,"mutability":"mutable","name":"claimId","nameLocation":"18446:7:77","nodeType":"VariableDeclaration","scope":19491,"src":"18438:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19373,"name":"uint256","nodeType":"ElementaryTypeName","src":"18438:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18418:36:77"},"returnParameters":{"id":19380,"nodeType":"ParameterList","parameters":[],"src":"18519:0:77"},"scope":19974,"src":"18399:1141:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5425],"body":{"id":19649,"nodeType":"Block","src":"19802:1241:77","statements":[{"assignments":[19510],"declarations":[{"constant":false,"id":19510,"mutability":"mutable","name":"policy","nameLocation":"19827:6:77","nodeType":"VariableDeclaration","scope":19649,"src":"19812:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19509,"nodeType":"UserDefinedTypeName","pathNode":{"id":19508,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"19812:6:77"},"referencedDeclaration":5282,"src":"19812:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19514,"initialValue":{"baseExpression":{"id":19511,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"19836:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19513,"indexExpression":{"id":19512,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"19845:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19836:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19812:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19516,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19510,"src":"19873:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"19873:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19892:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19873:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038303a504f4c4943595f444f45535f4e4f545f4558495354","id":19520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19895:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a5a889abcf6c19c8dc84442c08bf7a95a45a161f8d31bee9415eee17c6af67a","typeString":"literal_string \"ERROR:POC-080:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-080:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5a5a889abcf6c19c8dc84442c08bf7a95a45a161f8d31bee9415eee17c6af67a","typeString":"literal_string \"ERROR:POC-080:POLICY_DOES_NOT_EXIST\""}],"id":19515,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19865:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19865:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19522,"nodeType":"ExpressionStatement","src":"19865:68:77"},{"assignments":[19525],"declarations":[{"constant":false,"id":19525,"mutability":"mutable","name":"claim","nameLocation":"19958:5:77","nodeType":"VariableDeclaration","scope":19649,"src":"19944:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19524,"nodeType":"UserDefinedTypeName","pathNode":{"id":19523,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"19944:5:77"},"referencedDeclaration":5296,"src":"19944:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19531,"initialValue":{"baseExpression":{"baseExpression":{"id":19526,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"19966:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19528,"indexExpression":{"id":19527,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"19973:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19966:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19530,"indexExpression":{"id":19529,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19495,"src":"19984:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19966:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19944:48:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19533,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19525,"src":"20010:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"20010:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20028:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20010:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038313a434c41494d5f444f45535f4e4f545f4558495354","id":19537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20031:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_bad351fc3f92fb02e37fe12e8bfff9d2e9a73dc2520d63761873fd147db6724b","typeString":"literal_string \"ERROR:POC-081:CLAIM_DOES_NOT_EXIST\""},"value":"ERROR:POC-081:CLAIM_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bad351fc3f92fb02e37fe12e8bfff9d2e9a73dc2520d63761873fd147db6724b","typeString":"literal_string \"ERROR:POC-081:CLAIM_DOES_NOT_EXIST\""}],"id":19532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"20002:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20002:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19539,"nodeType":"ExpressionStatement","src":"20002:66:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"},"id":19546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19541,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19525,"src":"20086:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"20086:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":19543,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"20101:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":19544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ClaimState","nodeType":"MemberAccess","referencedDeclaration":5231,"src":"20101:18:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Confirmed","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"20101:28:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"20086:43:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038323a434c41494d5f4e4f545f434f4e4649524d4544","id":19547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20131:35:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_bfc0ba001c33e3f6ca8d92ccec220dc5c2f1e52ae20defc45ca76c02259da5c3","typeString":"literal_string \"ERROR:POC-082:CLAIM_NOT_CONFIRMED\""},"value":"ERROR:POC-082:CLAIM_NOT_CONFIRMED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bfc0ba001c33e3f6ca8d92ccec220dc5c2f1e52ae20defc45ca76c02259da5c3","typeString":"literal_string \"ERROR:POC-082:CLAIM_NOT_CONFIRMED\""}],"id":19540,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"20078:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20078:89:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19549,"nodeType":"ExpressionStatement","src":"20078:89:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":19551,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"20185:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20200:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20185:16:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038333a5041594f55545f414d4f554e545f5a45524f5f494e56414c4944","id":19554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20203:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_12a836dd02d461888166ce18ce5bc78481bf477d1f9ebbf4ce8444ca0e7f0dc1","typeString":"literal_string \"ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID\""},"value":"ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_12a836dd02d461888166ce18ce5bc78481bf477d1f9ebbf4ce8444ca0e7f0dc1","typeString":"literal_string \"ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID\""}],"id":19550,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"20177:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20177:69:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19556,"nodeType":"ExpressionStatement","src":"20177:69:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19558,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19525,"src":"20277:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paidAmount","nodeType":"MemberAccess","referencedDeclaration":5289,"src":"20277:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":19560,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"20296:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20277:31:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":19562,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19525,"src":"20312:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"20312:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20277:52:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038343a5041594f55545f414d4f554e545f544f4f5f424947","id":19565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20343:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_cdac7f3ad598042a4a49afc2907268af0bd86276c34f48886ad7a8f93edf5782","typeString":"literal_string \"ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG\""},"value":"ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cdac7f3ad598042a4a49afc2907268af0bd86276c34f48886ad7a8f93edf5782","typeString":"literal_string \"ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG\""}],"id":19557,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"20256:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20256:134:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19567,"nodeType":"ExpressionStatement","src":"20256:134:77"},{"expression":{"id":19572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19568,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19506,"src":"20401:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19569,"name":"payoutCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18105,"src":"20412:11:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19571,"indexExpression":{"id":19570,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"20424:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20412:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20401:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19573,"nodeType":"ExpressionStatement","src":"20401:33:77"},{"assignments":[19576],"declarations":[{"constant":false,"id":19576,"mutability":"mutable","name":"payout","nameLocation":"20459:6:77","nodeType":"VariableDeclaration","scope":19649,"src":"20444:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":19575,"nodeType":"UserDefinedTypeName","pathNode":{"id":19574,"name":"Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"20444:6:77"},"referencedDeclaration":5310,"src":"20444:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"id":19582,"initialValue":{"baseExpression":{"baseExpression":{"id":19577,"name":"payouts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18101,"src":"20468:7:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout storage ref))"}},"id":19579,"indexExpression":{"id":19578,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"20476:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20468:18:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$","typeString":"mapping(uint256 => struct IPolicy.Payout storage ref)"}},"id":19581,"indexExpression":{"id":19580,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19506,"src":"20487:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20468:28:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage","typeString":"struct IPolicy.Payout storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20444:52:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19584,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20514:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5307,"src":"20514:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":19586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20534:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20514:21:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3038353a5041594f55545f414c52454144595f455849535453","id":19588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20537:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_d99e4ac56574361524102dce714b9a80317be2e650f34ab1f2fc06080904a047","typeString":"literal_string \"ERROR:POC-085:PAYOUT_ALREADY_EXISTS\""},"value":"ERROR:POC-085:PAYOUT_ALREADY_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d99e4ac56574361524102dce714b9a80317be2e650f34ab1f2fc06080904a047","typeString":"literal_string \"ERROR:POC-085:PAYOUT_ALREADY_EXISTS\""}],"id":19583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"20506:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20506:69:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19590,"nodeType":"ExpressionStatement","src":"20506:69:77"},{"expression":{"id":19595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19591,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20586:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"claimId","nodeType":"MemberAccess","referencedDeclaration":5298,"src":"20586:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19594,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19495,"src":"20603:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20586:24:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19596,"nodeType":"ExpressionStatement","src":"20586:24:77"},{"expression":{"id":19601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19597,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20620:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"20620:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19600,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"20636:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20620:28:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19602,"nodeType":"ExpressionStatement","src":"20620:28:77"},{"expression":{"id":19607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19603,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20658:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5305,"src":"20658:11:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":19606,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19499,"src":"20672:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"20658:18:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":19608,"nodeType":"ExpressionStatement","src":"20658:18:77"},{"expression":{"id":19614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19609,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20686:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5301,"src":"20686:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19612,"name":"PayoutState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5234,"src":"20701:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PayoutState_$5234_$","typeString":"type(enum IPolicy.PayoutState)"}},"id":19613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expected","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"20701:20:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"src":"20686:35:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"id":19615,"nodeType":"ExpressionStatement","src":"20686:35:77"},{"expression":{"id":19621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19616,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20731:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5307,"src":"20731:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19619,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"20750:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20750:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20731:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19622,"nodeType":"ExpressionStatement","src":"20731:34:77"},{"expression":{"id":19628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19623,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19576,"src":"20799:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5309,"src":"20799:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19626,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"20818:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20818:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20799:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19629,"nodeType":"ExpressionStatement","src":"20799:34:77"},{"expression":{"id":19633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"20868:24:77","subExpression":{"baseExpression":{"id":19630,"name":"payoutCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18105,"src":"20868:11:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19632,"indexExpression":{"id":19631,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"20880:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"20868:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19634,"nodeType":"ExpressionStatement","src":"20868:24:77"},{"expression":{"id":19640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19635,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19510,"src":"20902:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"20902:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19638,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"20921:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"20921:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20902:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19641,"nodeType":"ExpressionStatement","src":"20902:34:77"},{"eventCall":{"arguments":[{"id":19643,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19493,"src":"20993:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19644,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19495,"src":"21004:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19645,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19506,"src":"21013:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19646,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19497,"src":"21023:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19642,"name":"LogPayoutCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5207,"src":"20976:16:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256,uint256)"}},"id":19647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20976:60:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19648,"nodeType":"EmitStatement","src":"20971:65:77"}]},"functionSelector":"db42b77b","id":19650,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19752:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19504,"modifierName":{"id":19502,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"19737:14:77"},"nodeType":"ModifierInvocation","src":"19737:24:77"}],"name":"createPayout","nameLocation":"19572:12:77","nodeType":"FunctionDefinition","overrides":{"id":19501,"nodeType":"OverrideSpecifier","overrides":[],"src":"19719:8:77"},"parameters":{"id":19500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19493,"mutability":"mutable","name":"processId","nameLocation":"19602:9:77","nodeType":"VariableDeclaration","scope":19650,"src":"19594:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19594:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19495,"mutability":"mutable","name":"claimId","nameLocation":"19629:7:77","nodeType":"VariableDeclaration","scope":19650,"src":"19621:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19494,"name":"uint256","nodeType":"ElementaryTypeName","src":"19621:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19497,"mutability":"mutable","name":"payoutAmount","nameLocation":"19654:12:77","nodeType":"VariableDeclaration","scope":19650,"src":"19646:20:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19496,"name":"uint256","nodeType":"ElementaryTypeName","src":"19646:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19499,"mutability":"mutable","name":"data","nameLocation":"19691:4:77","nodeType":"VariableDeclaration","scope":19650,"src":"19676:19:77","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":19498,"name":"bytes","nodeType":"ElementaryTypeName","src":"19676:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19584:117:77"},"returnParameters":{"id":19507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19506,"mutability":"mutable","name":"payoutId","nameLocation":"19788:8:77","nodeType":"VariableDeclaration","scope":19650,"src":"19780:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19505,"name":"uint256","nodeType":"ElementaryTypeName","src":"19780:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19779:18:77"},"scope":19974,"src":"19563:1480:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5432],"body":{"id":19788,"nodeType":"Block","src":"21195:1147:77","statements":[{"assignments":[19663],"declarations":[{"constant":false,"id":19663,"mutability":"mutable","name":"policy","nameLocation":"21220:6:77","nodeType":"VariableDeclaration","scope":19788,"src":"21205:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19662,"nodeType":"UserDefinedTypeName","pathNode":{"id":19661,"name":"Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"21205:6:77"},"referencedDeclaration":5282,"src":"21205:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":19667,"initialValue":{"baseExpression":{"id":19664,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"21229:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19666,"indexExpression":{"id":19665,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"21238:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21229:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21205:43:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19669,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19663,"src":"21266:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"21266:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21285:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21266:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3039303a504f4c4943595f444f45535f4e4f545f4558495354","id":19673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21288:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c588baea0842d5c025c2163acf2806d62a81ff4e95e6f6cd3cf1ce8023895b8","typeString":"literal_string \"ERROR:POC-090:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-090:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c588baea0842d5c025c2163acf2806d62a81ff4e95e6f6cd3cf1ce8023895b8","typeString":"literal_string \"ERROR:POC-090:POLICY_DOES_NOT_EXIST\""}],"id":19668,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21258:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21258:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19675,"nodeType":"ExpressionStatement","src":"21258:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19677,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19663,"src":"21344:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"21344:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21369:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21344:26:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3039313a504f4c4943595f574954484f55545f4f50454e5f434c41494d53","id":19681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21372:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_56e2f09f25415e91cf31d4547c2e56eb6e29b71cb0dd85b313fae192ba276a63","typeString":"literal_string \"ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS\""},"value":"ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_56e2f09f25415e91cf31d4547c2e56eb6e29b71cb0dd85b313fae192ba276a63","typeString":"literal_string \"ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS\""}],"id":19676,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21336:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21336:79:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19683,"nodeType":"ExpressionStatement","src":"21336:79:77"},{"assignments":[19686],"declarations":[{"constant":false,"id":19686,"mutability":"mutable","name":"payout","nameLocation":"21441:6:77","nodeType":"VariableDeclaration","scope":19788,"src":"21426:21:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":19685,"nodeType":"UserDefinedTypeName","pathNode":{"id":19684,"name":"Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"21426:6:77"},"referencedDeclaration":5310,"src":"21426:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"id":19692,"initialValue":{"baseExpression":{"baseExpression":{"id":19687,"name":"payouts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18101,"src":"21450:7:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout storage ref))"}},"id":19689,"indexExpression":{"id":19688,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"21458:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21450:18:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$","typeString":"mapping(uint256 => struct IPolicy.Payout storage ref)"}},"id":19691,"indexExpression":{"id":19690,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19654,"src":"21469:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21450:28:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage","typeString":"struct IPolicy.Payout storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21426:52:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19694,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21496:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5307,"src":"21496:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21515:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21496:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3039323a5041594f55545f444f45535f4e4f545f4558495354","id":19698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21518:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_93b837b53622deccc674a4295ad216375b944d6d9e4fcced40e36e2aab9aae9d","typeString":"literal_string \"ERROR:POC-092:PAYOUT_DOES_NOT_EXIST\""},"value":"ERROR:POC-092:PAYOUT_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_93b837b53622deccc674a4295ad216375b944d6d9e4fcced40e36e2aab9aae9d","typeString":"literal_string \"ERROR:POC-092:PAYOUT_DOES_NOT_EXIST\""}],"id":19693,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21488:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21488:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19700,"nodeType":"ExpressionStatement","src":"21488:68:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"},"id":19706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19702,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21574:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5301,"src":"21574:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19704,"name":"PayoutState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5234,"src":"21590:11:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PayoutState_$5234_$","typeString":"type(enum IPolicy.PayoutState)"}},"id":19705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Expected","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"21590:20:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"src":"21574:36:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3039333a5041594f55545f414c52454144595f504149444f5554","id":19707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21612:38:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_01bd7262c070b3850d799edbf9ebd39157a9b16f9c9855ee1ca0ecc7e289d2d2","typeString":"literal_string \"ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT\""},"value":"ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01bd7262c070b3850d799edbf9ebd39157a9b16f9c9855ee1ca0ecc7e289d2d2","typeString":"literal_string \"ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT\""}],"id":19701,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21566:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21566:85:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19709,"nodeType":"ExpressionStatement","src":"21566:85:77"},{"expression":{"id":19716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19710,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21662:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5301,"src":"21662:12:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":19713,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"21677:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":19714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PayoutState","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"21677:19:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PayoutState_$5234_$","typeString":"type(enum IPolicy.PayoutState)"}},"id":19715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PaidOut","nodeType":"MemberAccess","referencedDeclaration":5233,"src":"21677:27:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"src":"21662:42:77","typeDescriptions":{"typeIdentifier":"t_enum$_PayoutState_$5234","typeString":"enum IPolicy.PayoutState"}},"id":19717,"nodeType":"ExpressionStatement","src":"21662:42:77"},{"expression":{"id":19723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19718,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21714:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5309,"src":"21714:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19721,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"21733:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"21733:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21714:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19724,"nodeType":"ExpressionStatement","src":"21714:34:77"},{"eventCall":{"arguments":[{"id":19726,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"21807:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":19727,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19654,"src":"21818:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19725,"name":"LogPayoutProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5213,"src":"21788:18:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":19728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21788:39:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19729,"nodeType":"EmitStatement","src":"21783:44:77"},{"assignments":[19732],"declarations":[{"constant":false,"id":19732,"mutability":"mutable","name":"claim","nameLocation":"21852:5:77","nodeType":"VariableDeclaration","scope":19788,"src":"21838:19:77","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19731,"nodeType":"UserDefinedTypeName","pathNode":{"id":19730,"name":"Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"21838:5:77"},"referencedDeclaration":5296,"src":"21838:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":19739,"initialValue":{"baseExpression":{"baseExpression":{"id":19733,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"21860:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19735,"indexExpression":{"id":19734,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"21867:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21860:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19738,"indexExpression":{"expression":{"id":19736,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21878:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimId","nodeType":"MemberAccess","referencedDeclaration":5298,"src":"21878:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21860:33:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21838:55:77"},{"expression":{"id":19745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19740,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19732,"src":"21903:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"paidAmount","nodeType":"MemberAccess","referencedDeclaration":5289,"src":"21903:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":19743,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"21923:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"21923:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21903:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19746,"nodeType":"ExpressionStatement","src":"21903:33:77"},{"expression":{"id":19752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19747,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19732,"src":"21946:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5295,"src":"21946:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19750,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"21964:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"21964:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21946:33:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19753,"nodeType":"ExpressionStatement","src":"21946:33:77"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19754,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19732,"src":"22058:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"22058:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":19756,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19732,"src":"22079:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paidAmount","nodeType":"MemberAccess","referencedDeclaration":5289,"src":"22079:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22058:37:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19787,"nodeType":"IfStatement","src":"22054:282:77","trueBody":{"id":19786,"nodeType":"Block","src":"22097:239:77","statements":[{"expression":{"id":19765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19759,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19732,"src":"22111:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim storage pointer"}},"id":19761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5285,"src":"22111:11:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":19762,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"22125:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":19763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ClaimState","nodeType":"MemberAccess","referencedDeclaration":5231,"src":"22125:18:77","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ClaimState_$5231_$","typeString":"type(enum IPolicy.ClaimState)"}},"id":19764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"22125:25:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"src":"22111:39:77","typeDescriptions":{"typeIdentifier":"t_enum$_ClaimState_$5231","typeString":"enum IPolicy.ClaimState"}},"id":19766,"nodeType":"ExpressionStatement","src":"22111:39:77"},{"expression":{"id":19771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19767,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19663,"src":"22165:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"openClaimsCount","nodeType":"MemberAccess","referencedDeclaration":5273,"src":"22165:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":19770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22191:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22165:27:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19772,"nodeType":"ExpressionStatement","src":"22165:27:77"},{"expression":{"id":19778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":19773,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19663,"src":"22206:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy storage pointer"}},"id":19775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5281,"src":"22206:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":19776,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"22225:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"22225:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22206:34:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19779,"nodeType":"ExpressionStatement","src":"22206:34:77"},{"eventCall":{"arguments":[{"id":19781,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19652,"src":"22299:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":19782,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19686,"src":"22310:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout storage pointer"}},"id":19783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimId","nodeType":"MemberAccess","referencedDeclaration":5298,"src":"22310:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19780,"name":"LogClaimClosed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"22284:14:77","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":19784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22284:41:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19785,"nodeType":"EmitStatement","src":"22279:46:77"}]}}]},"functionSelector":"fe64372b","id":19789,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6c696379","id":19658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21181:8:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"id":19659,"modifierName":{"id":19657,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"21166:14:77"},"nodeType":"ModifierInvocation","src":"21166:24:77"}],"name":"processPayout","nameLocation":"21058:13:77","nodeType":"FunctionDefinition","overrides":{"id":19656,"nodeType":"OverrideSpecifier","overrides":[],"src":"21148:8:77"},"parameters":{"id":19655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19652,"mutability":"mutable","name":"processId","nameLocation":"21089:9:77","nodeType":"VariableDeclaration","scope":19789,"src":"21081:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21081:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19654,"mutability":"mutable","name":"payoutId","nameLocation":"21116:8:77","nodeType":"VariableDeclaration","scope":19789,"src":"21108:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19653,"name":"uint256","nodeType":"ElementaryTypeName","src":"21108:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21071:59:77"},"returnParameters":{"id":19660,"nodeType":"ParameterList","parameters":[],"src":"21195:0:77"},"scope":19974,"src":"21049:1293:77","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":19811,"nodeType":"Block","src":"22472:132:77","statements":[{"expression":{"id":19801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19797,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19795,"src":"22482:9:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19798,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18077,"src":"22494:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Metadata_$5248_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Metadata storage ref)"}},"id":19800,"indexExpression":{"id":19799,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19791,"src":"22503:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22494:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage","typeString":"struct IPolicy.Metadata storage ref"}},"src":"22482:31:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":19802,"nodeType":"ExpressionStatement","src":"22482:31:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19804,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19795,"src":"22531:9:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":19805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5245,"src":"22531:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22553:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22531:23:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3130303a4d455441444154415f444f45535f4e4f545f4558495354","id":19808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22557:39:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_690f72e367997aa82f823a8f8aab3f2b4ad3e7d36411ad6e690ba049cd7f8970","typeString":"literal_string \"ERROR:POC-100:METADATA_DOES_NOT_EXIST\""},"value":"ERROR:POC-100:METADATA_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_690f72e367997aa82f823a8f8aab3f2b4ad3e7d36411ad6e690ba049cd7f8970","typeString":"literal_string \"ERROR:POC-100:METADATA_DOES_NOT_EXIST\""}],"id":19803,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"22523:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22523:74:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19810,"nodeType":"ExpressionStatement","src":"22523:74:77"}]},"functionSelector":"a5961b4c","id":19812,"implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"22357:11:77","nodeType":"FunctionDefinition","parameters":{"id":19792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19791,"mutability":"mutable","name":"processId","nameLocation":"22377:9:77","nodeType":"VariableDeclaration","scope":19812,"src":"22369:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22369:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22368:19:77"},"returnParameters":{"id":19796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19795,"mutability":"mutable","name":"_metadata","nameLocation":"22457:9:77","nodeType":"VariableDeclaration","scope":19812,"src":"22433:33:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":19794,"nodeType":"UserDefinedTypeName","pathNode":{"id":19793,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"22433:16:77"},"referencedDeclaration":5248,"src":"22433:16:77","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"src":"22432:35:77"},"scope":19974,"src":"22348:256:77","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19834,"nodeType":"Block","src":"22742:150:77","statements":[{"expression":{"id":19824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19820,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19818,"src":"22752:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19821,"name":"applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"22766:12:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Application_$5262_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Application storage ref)"}},"id":19823,"indexExpression":{"id":19822,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19814,"src":"22779:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22766:23:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage","typeString":"struct IPolicy.Application storage ref"}},"src":"22752:37:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":19825,"nodeType":"ExpressionStatement","src":"22752:37:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19827,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19818,"src":"22807:11:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":19828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5259,"src":"22807:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22831:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22807:25:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3130313a4150504c49434154494f4e5f444f45535f4e4f545f4558495354","id":19831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22834:42:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3da05b0c6fea2f8ac4206180524be50a65b9f5363895b5e6c8aa31db28fb502a","typeString":"literal_string \"ERROR:POC-101:APPLICATION_DOES_NOT_EXIST\""},"value":"ERROR:POC-101:APPLICATION_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3da05b0c6fea2f8ac4206180524be50a65b9f5363895b5e6c8aa31db28fb502a","typeString":"literal_string \"ERROR:POC-101:APPLICATION_DOES_NOT_EXIST\""}],"id":19826,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"22799:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22799:78:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19833,"nodeType":"ExpressionStatement","src":"22799:78:77"}]},"functionSelector":"bc506f64","id":19835,"implemented":true,"kind":"function","modifiers":[],"name":"getApplication","nameLocation":"22619:14:77","nodeType":"FunctionDefinition","parameters":{"id":19815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19814,"mutability":"mutable","name":"processId","nameLocation":"22642:9:77","nodeType":"VariableDeclaration","scope":19835,"src":"22634:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19813,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22634:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22633:19:77"},"returnParameters":{"id":19819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19818,"mutability":"mutable","name":"application","nameLocation":"22725:11:77","nodeType":"VariableDeclaration","scope":19835,"src":"22698:38:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":19817,"nodeType":"UserDefinedTypeName","pathNode":{"id":19816,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"22698:19:77"},"referencedDeclaration":5262,"src":"22698:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"22697:40:77"},"scope":19974,"src":"22610:282:77","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19849,"nodeType":"Block","src":"22990:66:77","statements":[{"expression":{"id":19847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19842,"name":"numberOfClaims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19840,"src":"23000:14:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":19844,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19837,"src":"23027:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19843,"name":"getPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19887,"src":"23017:9:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Policy memory)"}},"id":19845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23017:20:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":19846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimsCount","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"23017:32:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23000:49:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19848,"nodeType":"ExpressionStatement","src":"23000:49:77"}]},"functionSelector":"b1e25988","id":19850,"implemented":true,"kind":"function","modifiers":[],"name":"getNumberOfClaims","nameLocation":"22907:17:77","nodeType":"FunctionDefinition","parameters":{"id":19838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19837,"mutability":"mutable","name":"processId","nameLocation":"22933:9:77","nodeType":"VariableDeclaration","scope":19850,"src":"22925:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19836,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22925:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22924:19:77"},"returnParameters":{"id":19841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19840,"mutability":"mutable","name":"numberOfClaims","nameLocation":"22974:14:77","nodeType":"VariableDeclaration","scope":19850,"src":"22966:22:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19839,"name":"uint256","nodeType":"ElementaryTypeName","src":"22966:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22965:24:77"},"scope":19974,"src":"22898:158:77","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":19863,"nodeType":"Block","src":"23160:57:77","statements":[{"expression":{"id":19861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19857,"name":"numberOfPayouts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19855,"src":"23170:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19858,"name":"payoutCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18105,"src":"23188:11:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19860,"indexExpression":{"id":19859,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19852,"src":"23200:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23188:22:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23170:40:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19862,"nodeType":"ExpressionStatement","src":"23170:40:77"}]},"functionSelector":"be183b11","id":19864,"implemented":true,"kind":"function","modifiers":[],"name":"getNumberOfPayouts","nameLocation":"23075:18:77","nodeType":"FunctionDefinition","parameters":{"id":19853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19852,"mutability":"mutable","name":"processId","nameLocation":"23102:9:77","nodeType":"VariableDeclaration","scope":19864,"src":"23094:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23094:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23093:19:77"},"returnParameters":{"id":19856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19855,"mutability":"mutable","name":"numberOfPayouts","nameLocation":"23143:15:77","nodeType":"VariableDeclaration","scope":19864,"src":"23135:23:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19854,"name":"uint256","nodeType":"ElementaryTypeName","src":"23135:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23134:25:77"},"scope":19974,"src":"23066:151:77","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":19886,"nodeType":"Block","src":"23340:131:77","statements":[{"expression":{"id":19876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19872,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"23350:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":19873,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18087,"src":"23359:8:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Policy_$5282_storage_$","typeString":"mapping(bytes32 => struct IPolicy.Policy storage ref)"}},"id":19875,"indexExpression":{"id":19874,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19866,"src":"23368:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23359:19:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage","typeString":"struct IPolicy.Policy storage ref"}},"src":"23350:28:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":19877,"nodeType":"ExpressionStatement","src":"23350:28:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19879,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19870,"src":"23396:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":19880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5279,"src":"23396:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23415:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23396:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3130323a504f4c4943595f444f45535f4e4f545f4558495354","id":19883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23418:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ac03beb57c99a65c7942aa68c11e6b91d3cade8654ba7436c76c86f22bcf529","typeString":"literal_string \"ERROR:POC-102:POLICY_DOES_NOT_EXIST\""},"value":"ERROR:POC-102:POLICY_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ac03beb57c99a65c7942aa68c11e6b91d3cade8654ba7436c76c86f22bcf529","typeString":"literal_string \"ERROR:POC-102:POLICY_DOES_NOT_EXIST\""}],"id":19878,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"23388:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23388:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19885,"nodeType":"ExpressionStatement","src":"23388:68:77"}]},"functionSelector":"a3f685f9","id":19887,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicy","nameLocation":"23232:9:77","nodeType":"FunctionDefinition","parameters":{"id":19867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19866,"mutability":"mutable","name":"processId","nameLocation":"23250:9:77","nodeType":"VariableDeclaration","scope":19887,"src":"23242:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23242:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23241:19:77"},"returnParameters":{"id":19871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19870,"mutability":"mutable","name":"policy","nameLocation":"23328:6:77","nodeType":"VariableDeclaration","scope":19887,"src":"23306:28:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":19869,"nodeType":"UserDefinedTypeName","pathNode":{"id":19868,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"23306:14:77"},"referencedDeclaration":5282,"src":"23306:14:77","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"src":"23305:30:77"},"scope":19974,"src":"23223:248:77","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19913,"nodeType":"Block","src":"23608:135:77","statements":[{"expression":{"id":19903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19897,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19895,"src":"23618:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":19898,"name":"claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18094,"src":"23626:6:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim storage ref))"}},"id":19900,"indexExpression":{"id":19899,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19889,"src":"23633:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23626:17:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Claim_$5296_storage_$","typeString":"mapping(uint256 => struct IPolicy.Claim storage ref)"}},"id":19902,"indexExpression":{"id":19901,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19891,"src":"23644:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23626:26:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage","typeString":"struct IPolicy.Claim storage ref"}},"src":"23618:34:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"id":19904,"nodeType":"ExpressionStatement","src":"23618:34:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19906,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19895,"src":"23670:5:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"id":19907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5293,"src":"23670:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23688:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23670:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3130333a434c41494d5f444f45535f4e4f545f4558495354","id":19910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23691:36:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_5153c23cb9f198d7c66f5cc94bb88552d8f24d48aafcfe0e6f3776d7f1f59836","typeString":"literal_string \"ERROR:POC-103:CLAIM_DOES_NOT_EXIST\""},"value":"ERROR:POC-103:CLAIM_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5153c23cb9f198d7c66f5cc94bb88552d8f24d48aafcfe0e6f3776d7f1f59836","typeString":"literal_string \"ERROR:POC-103:CLAIM_DOES_NOT_EXIST\""}],"id":19905,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"23662:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23662:66:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19912,"nodeType":"ExpressionStatement","src":"23662:66:77"}]},"functionSelector":"7f22c2d9","id":19914,"implemented":true,"kind":"function","modifiers":[],"name":"getClaim","nameLocation":"23486:8:77","nodeType":"FunctionDefinition","parameters":{"id":19892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19889,"mutability":"mutable","name":"processId","nameLocation":"23503:9:77","nodeType":"VariableDeclaration","scope":19914,"src":"23495:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19888,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23495:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19891,"mutability":"mutable","name":"claimId","nameLocation":"23522:7:77","nodeType":"VariableDeclaration","scope":19914,"src":"23514:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19890,"name":"uint256","nodeType":"ElementaryTypeName","src":"23514:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23494:36:77"},"returnParameters":{"id":19896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19895,"mutability":"mutable","name":"claim","nameLocation":"23597:5:77","nodeType":"VariableDeclaration","scope":19914,"src":"23576:26:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":19894,"nodeType":"UserDefinedTypeName","pathNode":{"id":19893,"name":"IPolicy.Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"23576:13:77"},"referencedDeclaration":5296,"src":"23576:13:77","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"src":"23575:28:77"},"scope":19974,"src":"23477:266:77","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19940,"nodeType":"Block","src":"23884:140:77","statements":[{"expression":{"id":19930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19924,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19922,"src":"23894:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":19925,"name":"payouts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18101,"src":"23903:7:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$_$","typeString":"mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout storage ref))"}},"id":19927,"indexExpression":{"id":19926,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19916,"src":"23911:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23903:18:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Payout_$5310_storage_$","typeString":"mapping(uint256 => struct IPolicy.Payout storage ref)"}},"id":19929,"indexExpression":{"id":19928,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19918,"src":"23922:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23903:28:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage","typeString":"struct IPolicy.Payout storage ref"}},"src":"23894:37:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":19931,"nodeType":"ExpressionStatement","src":"23894:37:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":19933,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19922,"src":"23949:6:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":19934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5307,"src":"23949:16:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":19935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23968:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23949:20:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f432d3130343a5041594f55545f444f45535f4e4f545f4558495354","id":19937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23971:37:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fe79e67d34a91a0798917f8e39194a7499cac6ed14bea4875fa47d7458df812","typeString":"literal_string \"ERROR:POC-104:PAYOUT_DOES_NOT_EXIST\""},"value":"ERROR:POC-104:PAYOUT_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3fe79e67d34a91a0798917f8e39194a7499cac6ed14bea4875fa47d7458df812","typeString":"literal_string \"ERROR:POC-104:PAYOUT_DOES_NOT_EXIST\""}],"id":19932,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"23941:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23941:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19939,"nodeType":"ExpressionStatement","src":"23941:68:77"}]},"functionSelector":"cef58f13","id":19941,"implemented":true,"kind":"function","modifiers":[],"name":"getPayout","nameLocation":"23758:9:77","nodeType":"FunctionDefinition","parameters":{"id":19919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19916,"mutability":"mutable","name":"processId","nameLocation":"23776:9:77","nodeType":"VariableDeclaration","scope":19941,"src":"23768:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23768:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":19918,"mutability":"mutable","name":"payoutId","nameLocation":"23795:8:77","nodeType":"VariableDeclaration","scope":19941,"src":"23787:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19917,"name":"uint256","nodeType":"ElementaryTypeName","src":"23787:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23767:37:77"},"returnParameters":{"id":19923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19922,"mutability":"mutable","name":"payout","nameLocation":"23872:6:77","nodeType":"VariableDeclaration","scope":19941,"src":"23850:28:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":19921,"nodeType":"UserDefinedTypeName","pathNode":{"id":19920,"name":"IPolicy.Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"23850:14:77"},"referencedDeclaration":5310,"src":"23850:14:77","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"src":"23849:30:77"},"scope":19974,"src":"23749:275:77","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":19948,"nodeType":"Block","src":"24084:43:77","statements":[{"expression":{"id":19946,"name":"_assigendProcessIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"24101:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19945,"id":19947,"nodeType":"Return","src":"24094:26:77"}]},"functionSelector":"a427056e","id":19949,"implemented":true,"kind":"function","modifiers":[],"name":"processIds","nameLocation":"24039:10:77","nodeType":"FunctionDefinition","parameters":{"id":19942,"nodeType":"ParameterList","parameters":[],"src":"24049:2:77"},"returnParameters":{"id":19945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":19949,"src":"24075:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19943,"name":"uint256","nodeType":"ElementaryTypeName","src":"24075:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24074:9:77"},"scope":19974,"src":"24030:97:77","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":19972,"nodeType":"Block","src":"24202:229:77","statements":[{"expression":{"id":19955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"24212:21:77","subExpression":{"id":19954,"name":"_assigendProcessIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"24212:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19956,"nodeType":"ExpressionStatement","src":"24212:21:77"},{"expression":{"id":19970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":19957,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19952,"src":"24244:9:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":19961,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"24313:5:77","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":19962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"24313:13:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":19965,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"24353:9:77","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}],"id":19964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24345:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":19963,"name":"address","nodeType":"ElementaryTypeName","src":"24345:7:77","typeDescriptions":{}}},"id":19966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24345:18:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19967,"name":"_assigendProcessIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"24381:19:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19959,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"24279:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"24279:16:77","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":19968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24279:135:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19958,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"24256:9:77","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":19969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24256:168:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"24244:180:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":19971,"nodeType":"ExpressionStatement","src":"24244:180:77"}]},"id":19973,"implemented":true,"kind":"function","modifiers":[],"name":"_generateNextProcessId","nameLocation":"24142:22:77","nodeType":"FunctionDefinition","parameters":{"id":19950,"nodeType":"ParameterList","parameters":[],"src":"24164:2:77"},"returnParameters":{"id":19953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19952,"mutability":"mutable","name":"processId","nameLocation":"24191:9:77","nodeType":"VariableDeclaration","scope":19973,"src":"24183:17:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24183:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24182:19:77"},"scope":19974,"src":"24133:298:77","stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"scope":19975,"src":"4404:20030:77"}],"src":"39:24396:77"},"id":77},"contracts/modules/PoolController.sol":{"ast":{"absolutePath":"contracts/modules/PoolController.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IOracle":[3022],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059],"Ownable":[7481],"PolicyController":[19974],"PoolController":[21207],"Strings":[10804]},"id":21208,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":19976,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:78"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"./ComponentController.sol","id":19977,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":17948,"src":"63:35:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PolicyController.sol","file":"./PolicyController.sol","id":19978,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":19975,"src":"99:32:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/BundleController.sol","file":"./BundleController.sol","id":19979,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":16947,"src":"132:32:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":19980,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":26414,"src":"165:38:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPool.sol","file":"@etherisc/gif-interface/contracts/modules/IPool.sol","id":19981,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":5550,"src":"205:61:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":19982,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":2989,"src":"267:69:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","file":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","id":19983,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":3313,"src":"337:68:78","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":19984,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21208,"sourceUnit":11440,"src":"408:65:78","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":19986,"name":"IPool","nodeType":"IdentifierPath","referencedDeclaration":5549,"src":"3007:5:78"},"id":19987,"nodeType":"InheritanceSpecifier","src":"3007:5:78"},{"baseName":{"id":19988,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"3018:14:78"},"id":19989,"nodeType":"InheritanceSpecifier","src":"3018:14:78"}],"contractDependencies":[5549,8059,10518,26413],"contractKind":"contract","documentation":{"id":19985,"nodeType":"StructuredDocumentation","src":"475:2499:78","text":"The smart contract manages riskpools, their registration, funding, defunding, collateralization, and other related operations.\n- The contract implements the IPool interface and extends the CoreController contract.\n- It imports other contracts such as ComponentController, PolicyController, BundleController, and CoreController.\n- It uses the EnumerableSet library from OpenZeppelin for managing sets of bundle IDs.\n- The contract defines constants for full collateralization level, collateralization level cap, and default maximum number of active bundles.\n- It maintains mappings to store riskpool information, riskpool IDs for products, maximum number of active bundles for riskpools, and active bundle IDs for riskpools.\n- The contract has a private array to store riskpool IDs.\n- It has references to other contracts: ComponentController, PolicyController, and BundleController.\n- The contract defines modifiers for access control to specific functions.\nFunctions:\n- `_afterInitialize()`: Called after contract initialization to set addresses of other contracts.\n- `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration.\n- `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID.\n- `fund()`: Adds funds to a specific riskpool.\n- `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount.\n- `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure.\n- `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount.\n- `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract.\n- `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout.\n- `release()`: Releases a policy's collateral from the riskpool.\nOverall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations."},"fullyImplemented":true,"id":21207,"linearizedBaseContracts":[21207,26413,8059,10518,5549],"name":"PoolController","nameLocation":"2985:14:78","nodeType":"ContractDefinition","nodes":[{"id":19993,"libraryName":{"id":19990,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":11439,"src":"3046:13:78"},"nodeType":"UsingForDirective","src":"3040:46:78","typeName":{"id":19992,"nodeType":"UserDefinedTypeName","pathNode":{"id":19991,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"3064:21:78"},"referencedDeclaration":11309,"src":"3064:21:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},{"constant":true,"functionSelector":"45fe1c6d","id":19998,"mutability":"constant","name":"FULL_COLLATERALIZATION_LEVEL","nameLocation":"3275:28:78","nodeType":"VariableDeclaration","scope":21207,"src":"3251:61:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19994,"name":"uint256","nodeType":"ElementaryTypeName","src":"3251:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":19997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":19995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3306:2:78","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":19996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3310:2:78","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"3306:6:78","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"public"},{"constant":true,"functionSelector":"da68771a","id":20003,"mutability":"constant","name":"COLLATERALIZATION_LEVEL_CAP","nameLocation":"3397:27:78","nodeType":"VariableDeclaration","scope":21207,"src":"3373:86:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19999,"name":"uint256","nodeType":"ElementaryTypeName","src":"3373:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":20000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3427:1:78","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":20001,"name":"FULL_COLLATERALIZATION_LEVEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19998,"src":"3431:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3427:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":true,"functionSelector":"edb5be30","id":20006,"mutability":"constant","name":"DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES","nameLocation":"3490:36:78","nodeType":"VariableDeclaration","scope":21207,"src":"3466:64:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20004,"name":"uint256","nodeType":"ElementaryTypeName","src":"3466:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":20005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3529:1:78","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"constant":false,"id":20010,"mutability":"mutable","name":"_collateralAmount","nameLocation":"3612:17:78","nodeType":"VariableDeclaration","scope":21207,"src":"3537:92:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":20009,"keyType":{"id":20007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3545:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3537:66:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":20008,"name":"uint256","nodeType":"ElementaryTypeName","src":"3572:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":20014,"mutability":"mutable","name":"_riskpoolIdForProductId","nameLocation":"3705:23:78","nodeType":"VariableDeclaration","scope":21207,"src":"3636:92:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":20013,"keyType":{"id":20011,"name":"uint256","nodeType":"ElementaryTypeName","src":"3644:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3636:60:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":20012,"name":"uint256","nodeType":"ElementaryTypeName","src":"3671:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":20019,"mutability":"mutable","name":"_riskpools","nameLocation":"3792:10:78","nodeType":"VariableDeclaration","scope":21207,"src":"3735:67:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool)"},"typeName":{"id":20018,"keyType":{"id":20015,"name":"uint256","nodeType":"ElementaryTypeName","src":"3743:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3735:47:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool)"},"valueType":{"id":20017,"nodeType":"UserDefinedTypeName","pathNode":{"id":20016,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"3771:10:78"},"referencedDeclaration":5502,"src":"3771:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}}},"visibility":"private"},{"constant":false,"id":20023,"mutability":"mutable","name":"_maxmimumNumberOfActiveBundlesForRiskpoolId","nameLocation":"3898:43:78","nodeType":"VariableDeclaration","scope":21207,"src":"3809:132:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":20022,"keyType":{"id":20020,"name":"uint256","nodeType":"ElementaryTypeName","src":"3817:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3809:80:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":20021,"name":"uint256","nodeType":"ElementaryTypeName","src":"3845:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":20028,"mutability":"mutable","name":"_activeBundleIdsForRiskpoolId","nameLocation":"4042:29:78","nodeType":"VariableDeclaration","scope":21207,"src":"3948:123:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet)"},"typeName":{"id":20027,"keyType":{"id":20024,"name":"uint256","nodeType":"ElementaryTypeName","src":"3956:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3948:85:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet)"},"valueType":{"id":20026,"nodeType":"UserDefinedTypeName","pathNode":{"id":20025,"name":"EnumerableSet.UintSet","nodeType":"IdentifierPath","referencedDeclaration":11309,"src":"3984:21:78"},"referencedDeclaration":11309,"src":"3984:21:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage_ptr","typeString":"struct EnumerableSet.UintSet"}}},"visibility":"private"},{"constant":false,"id":20031,"mutability":"mutable","name":"_riskpoolIds","nameLocation":"4101:12:78","nodeType":"VariableDeclaration","scope":21207,"src":"4082:31:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[]"},"typeName":{"baseType":{"id":20029,"name":"uint256","nodeType":"ElementaryTypeName","src":"4082:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20030,"nodeType":"ArrayTypeName","src":"4082:10:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"private"},{"constant":false,"id":20034,"mutability":"mutable","name":"_component","nameLocation":"4148:10:78","nodeType":"VariableDeclaration","scope":21207,"src":"4120:38:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":20033,"nodeType":"UserDefinedTypeName","pathNode":{"id":20032,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"4120:19:78"},"referencedDeclaration":17947,"src":"4120:19:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"constant":false,"id":20037,"mutability":"mutable","name":"_policy","nameLocation":"4189:7:78","nodeType":"VariableDeclaration","scope":21207,"src":"4164:32:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":20036,"nodeType":"UserDefinedTypeName","pathNode":{"id":20035,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"4164:16:78"},"referencedDeclaration":19974,"src":"4164:16:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"private"},{"constant":false,"id":20040,"mutability":"mutable","name":"_bundle","nameLocation":"4227:7:78","nodeType":"VariableDeclaration","scope":21207,"src":"4202:32:78","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"},"typeName":{"id":20039,"nodeType":"UserDefinedTypeName","pathNode":{"id":20038,"name":"BundleController","nodeType":"IdentifierPath","referencedDeclaration":16946,"src":"4202:16:78"},"referencedDeclaration":16946,"src":"4202:16:78","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"visibility":"private"},{"body":{"id":20053,"nodeType":"Block","src":"4280:172:78","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":20043,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4311:10:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":20044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4311:12:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":20046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4347:25:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"id":20045,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4327:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":20047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4327:46:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4311:62:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030313a4e4f545f494e5354414e43455f4f50455241544f52","id":20049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4387:37:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_01ba533ede5bc9857bd888044082beab7540e9985694ecf1b8f2420761091360","typeString":"literal_string \"ERROR:POL-001:NOT_INSTANCE_OPERATOR\""},"value":"ERROR:POL-001:NOT_INSTANCE_OPERATOR"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01ba533ede5bc9857bd888044082beab7540e9985694ecf1b8f2420761091360","typeString":"literal_string \"ERROR:POL-001:NOT_INSTANCE_OPERATOR\""}],"id":20042,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4290:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4290:144:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20051,"nodeType":"ExpressionStatement","src":"4290:144:78"},{"id":20052,"nodeType":"PlaceholderStatement","src":"4444:1:78"}]},"id":20054,"name":"onlyInstanceOperatorService","nameLocation":"4250:27:78","nodeType":"ModifierDefinition","parameters":{"id":20041,"nodeType":"ParameterList","parameters":[],"src":"4277:2:78"},"src":"4241:211:78","virtual":false,"visibility":"internal"},{"body":{"id":20067,"nodeType":"Block","src":"4489:163:78","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":20057,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4520:10:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":20058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4520:12:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"5269736b706f6f6c53657276696365","id":20060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4556:17:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""},"value":"RiskpoolService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""}],"id":20059,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4536:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":20061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4536:38:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4520:54:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030323a4e4f545f5249534b504f4f4c5f53455256494345","id":20063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4588:36:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_966f1f86304de2b3465165e344fb9e74c7781a68f6ea7df637fdc3729caa28d7","typeString":"literal_string \"ERROR:POL-002:NOT_RISKPOOL_SERVICE\""},"value":"ERROR:POL-002:NOT_RISKPOOL_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_966f1f86304de2b3465165e344fb9e74c7781a68f6ea7df637fdc3729caa28d7","typeString":"literal_string \"ERROR:POL-002:NOT_RISKPOOL_SERVICE\""}],"id":20056,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4499:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4499:135:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20065,"nodeType":"ExpressionStatement","src":"4499:135:78"},{"id":20066,"nodeType":"PlaceholderStatement","src":"4644:1:78"}]},"id":20068,"name":"onlyRiskpoolService","nameLocation":"4467:19:78","nodeType":"ModifierDefinition","parameters":{"id":20055,"nodeType":"ParameterList","parameters":[],"src":"4486:2:78"},"src":"4458:194:78","virtual":false,"visibility":"internal"},{"body":{"id":20085,"nodeType":"Block","src":"4702:185:78","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":20080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":20075,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20070,"src":"4762:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20073,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"4733:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":20074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"4733:28:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":20076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4733:40:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":20077,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"4777:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":20078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"4777:25:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":20079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"4777:32:78","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"4733:76:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030333a5249534b504f4f4c5f4e4f545f414354495645","id":20081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4824:35:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_2676f82624b5790964b977de4e2922d89874c40d9966c58f2ee005dc0bbd3479","typeString":"literal_string \"ERROR:POL-003:RISKPOOL_NOT_ACTIVE\""},"value":"ERROR:POL-003:RISKPOOL_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2676f82624b5790964b977de4e2922d89874c40d9966c58f2ee005dc0bbd3479","typeString":"literal_string \"ERROR:POL-003:RISKPOOL_NOT_ACTIVE\""}],"id":20072,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4712:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4712:157:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20083,"nodeType":"ExpressionStatement","src":"4712:157:78"},{"id":20084,"nodeType":"PlaceholderStatement","src":"4879:1:78"}]},"id":20086,"name":"onlyActivePool","nameLocation":"4667:14:78","nodeType":"ModifierDefinition","parameters":{"id":20071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20070,"mutability":"mutable","name":"riskpoolId","nameLocation":"4690:10:78","nodeType":"VariableDeclaration","scope":20086,"src":"4682:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20069,"name":"uint256","nodeType":"ElementaryTypeName","src":"4682:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4681:20:78"},"src":"4658:229:78","virtual":false,"visibility":"internal"},{"body":{"id":20120,"nodeType":"Block","src":"4946:334:78","statements":[{"assignments":[20094],"declarations":[{"constant":false,"id":20094,"mutability":"mutable","name":"metadata","nameLocation":"4980:8:78","nodeType":"VariableDeclaration","scope":20120,"src":"4956:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":20093,"nodeType":"UserDefinedTypeName","pathNode":{"id":20092,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"4956:16:78"},"referencedDeclaration":5248,"src":"4956:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":20099,"initialValue":{"arguments":[{"id":20097,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20088,"src":"5011:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20095,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"4991:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"4991:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":20098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4991:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"4956:65:78"},{"assignments":[20101],"declarations":[{"constant":false,"id":20101,"mutability":"mutable","name":"riskpoolId","nameLocation":"5039:10:78","nodeType":"VariableDeclaration","scope":20120,"src":"5031:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20100,"name":"uint256","nodeType":"ElementaryTypeName","src":"5031:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20106,"initialValue":{"baseExpression":{"id":20102,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"5052:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20105,"indexExpression":{"expression":{"id":20103,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20094,"src":"5076:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":20104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"5076:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5052:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5031:64:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":20115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":20110,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20101,"src":"5155:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20108,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"5126:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":20109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"5126:28:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":20111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5126:40:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":20112,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"5170:10:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":20113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"5170:25:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":20114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"5170:32:78","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"5126:76:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030343a5249534b504f4f4c5f4e4f545f414354495645","id":20116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5217:35:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b7f0a4d9ff2dc985060892cfa5d21ef1861aee5377df8478f07451d1c71c9a4","typeString":"literal_string \"ERROR:POL-004:RISKPOOL_NOT_ACTIVE\""},"value":"ERROR:POL-004:RISKPOOL_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1b7f0a4d9ff2dc985060892cfa5d21ef1861aee5377df8478f07451d1c71c9a4","typeString":"literal_string \"ERROR:POL-004:RISKPOOL_NOT_ACTIVE\""}],"id":20107,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5105:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5105:157:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20118,"nodeType":"ExpressionStatement","src":"5105:157:78"},{"id":20119,"nodeType":"PlaceholderStatement","src":"5272:1:78"}]},"id":20121,"name":"onlyActivePoolForProcess","nameLocation":"4902:24:78","nodeType":"ModifierDefinition","parameters":{"id":20089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20088,"mutability":"mutable","name":"processId","nameLocation":"4935:9:78","nodeType":"VariableDeclaration","scope":20121,"src":"4927:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4927:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4926:19:78"},"src":"4893:387:78","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":20151,"nodeType":"Block","src":"5349:217:78","statements":[{"expression":{"id":20133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20127,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"5359:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":20130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5412:11:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":20129,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5392:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":20131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5392:32:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20128,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"5372:19:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":20132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5372:53:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"5359:66:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":20134,"nodeType":"ExpressionStatement","src":"5359:66:78"},{"expression":{"id":20141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20135,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"5435:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6c696379","id":20138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5482:8:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""}],"id":20137,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5462:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":20139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5462:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20136,"name":"PolicyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"5445:16:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PolicyController_$19974_$","typeString":"type(contract PolicyController)"}},"id":20140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5445:47:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"src":"5435:57:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20142,"nodeType":"ExpressionStatement","src":"5435:57:78"},{"expression":{"id":20149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20143,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20040,"src":"5502:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"42756e646c65","id":20146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5549:8:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""},"value":"Bundle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""}],"id":20145,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5529:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":20147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5529:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20144,"name":"BundleController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"5512:16:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleController_$16946_$","typeString":"type(contract BundleController)"}},"id":20148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5512:47:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"src":"5502:57:78","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":20150,"nodeType":"ExpressionStatement","src":"5502:57:78"}]},"id":20152,"implemented":true,"kind":"function","modifiers":[{"id":20125,"modifierName":{"id":20124,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"5332:16:78"},"nodeType":"ModifierInvocation","src":"5332:16:78"}],"name":"_afterInitialize","nameLocation":"5295:16:78","nodeType":"FunctionDefinition","overrides":{"id":20123,"nodeType":"OverrideSpecifier","overrides":[],"src":"5323:8:78"},"parameters":{"id":20122,"nodeType":"ParameterList","parameters":[],"src":"5311:2:78"},"returnParameters":{"id":20126,"nodeType":"ParameterList","parameters":[],"src":"5349:0:78"},"scope":21207,"src":"5286:280:78","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5515],"body":{"id":20307,"nodeType":"Block","src":"5821:1205:78","statements":[{"assignments":[20172],"declarations":[{"constant":false,"id":20172,"mutability":"mutable","name":"pool","nameLocation":"5850:4:78","nodeType":"VariableDeclaration","scope":20307,"src":"5831:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20171,"nodeType":"UserDefinedTypeName","pathNode":{"id":20170,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"5831:10:78"},"referencedDeclaration":5502,"src":"5831:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20176,"initialValue":{"baseExpression":{"id":20173,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"5857:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20175,"indexExpression":{"id":20174,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"5868:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5857:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5831:48:78"},{"expression":{"arguments":[{"id":20180,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"5907:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20177,"name":"_riskpoolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"5889:12:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":20179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"5889:17:78","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":20181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5889:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20182,"nodeType":"ExpressionStatement","src":"5889:29:78"},{"expression":{"id":20187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20183,"name":"_maxmimumNumberOfActiveBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20023,"src":"5928:43:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20185,"indexExpression":{"id":20184,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"5972:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5928:55:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20186,"name":"DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20006,"src":"5986:36:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5928:94:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20188,"nodeType":"ExpressionStatement","src":"5928:94:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20190,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6049:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5499,"src":"6049:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":20192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6067:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6049:19:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030353a5249534b504f4f4c5f414c52454144595f52454749535445524544","id":20194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6070:43:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_f58ee845cc4844222cd7fa0a8e8d561077a6aa1109b2c08627d10c4eab87b0d9","typeString":"literal_string \"ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED\""},"value":"ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f58ee845cc4844222cd7fa0a8e8d561077a6aa1109b2c08627d10c4eab87b0d9","typeString":"literal_string \"ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED\""}],"id":20189,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6041:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6041:73:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20196,"nodeType":"ExpressionStatement","src":"6041:73:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20198,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20156,"src":"6133:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":20201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6151:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6143:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20199,"name":"address","nodeType":"ElementaryTypeName","src":"6143:7:78","typeDescriptions":{}}},"id":20202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6143:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6133:20:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030363a57414c4c45545f414444524553535f5a45524f","id":20204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6155:35:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a58e30d80b67c427d73fc6164f99768fb9b50c18604efb17c57bf2e875de904","typeString":"literal_string \"ERROR:POL-006:WALLET_ADDRESS_ZERO\""},"value":"ERROR:POL-006:WALLET_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a58e30d80b67c427d73fc6164f99768fb9b50c18604efb17c57bf2e875de904","typeString":"literal_string \"ERROR:POL-006:WALLET_ADDRESS_ZERO\""}],"id":20197,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6125:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6125:66:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20206,"nodeType":"ExpressionStatement","src":"6125:66:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20208,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20158,"src":"6209:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":20211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6231:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":20210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6223:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":20209,"name":"address","nodeType":"ElementaryTypeName","src":"6223:7:78","typeDescriptions":{}}},"id":20212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6223:10:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6209:24:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030373a45524332305f414444524553535f5a45524f","id":20214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6235:34:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c1c4902271d3c52f6adb4d23ba17ac60cf40fb4880aa2a0a9d8c9072958ecfa","typeString":"literal_string \"ERROR:POL-007:ERC20_ADDRESS_ZERO\""},"value":"ERROR:POL-007:ERC20_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c1c4902271d3c52f6adb4d23ba17ac60cf40fb4880aa2a0a9d8c9072958ecfa","typeString":"literal_string \"ERROR:POL-007:ERC20_ADDRESS_ZERO\""}],"id":20207,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6201:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6201:69:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20216,"nodeType":"ExpressionStatement","src":"6201:69:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20218,"name":"collateralizationLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"6288:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":20219,"name":"COLLATERALIZATION_LEVEL_CAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20003,"src":"6314:27:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6288:53:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030383a434f4c4c41544552414c495a4154494f4e5f6c4556456c5f544f4f5f48494748","id":20221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6343:48:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_acad2caacd6ddfafd876b6f7b9565d102fbab77b96c69233dfb71c5f810056a1","typeString":"literal_string \"ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH\""},"value":"ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_acad2caacd6ddfafd876b6f7b9565d102fbab77b96c69233dfb71c5f810056a1","typeString":"literal_string \"ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH\""}],"id":20217,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6280:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6280:112:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20223,"nodeType":"ExpressionStatement","src":"6280:112:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20225,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20162,"src":"6410:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6431:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6410:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3030393a53554d5f4f465f53554d5f494e53555245445f4341505f5a45524f","id":20228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6434:43:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_153cdd57b6a54a67c3edead82db53ff9ca80c0d53800cc6e08d94bcd48709063","typeString":"literal_string \"ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO\""},"value":"ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_153cdd57b6a54a67c3edead82db53ff9ca80c0d53800cc6e08d94bcd48709063","typeString":"literal_string \"ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO\""}],"id":20224,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6402:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6402:76:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20230,"nodeType":"ExpressionStatement","src":"6402:76:78"},{"expression":{"id":20235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20231,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6489:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"id","nodeType":"MemberAccess","referencedDeclaration":5481,"src":"6489:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20234,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"6499:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6489:20:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20236,"nodeType":"ExpressionStatement","src":"6489:20:78"},{"expression":{"id":20241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20237,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6520:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":5483,"src":"6520:11:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20240,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20156,"src":"6534:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6520:20:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20242,"nodeType":"ExpressionStatement","src":"6520:20:78"},{"expression":{"id":20247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20243,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6551:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"erc20Token","nodeType":"MemberAccess","referencedDeclaration":5485,"src":"6551:15:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20246,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20158,"src":"6569:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6551:28:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20248,"nodeType":"ExpressionStatement","src":"6551:28:78"},{"expression":{"id":20253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20249,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6590:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"collateralizationLevel","nodeType":"MemberAccess","referencedDeclaration":5487,"src":"6590:27:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20252,"name":"collateralizationLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"6620:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6590:52:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20254,"nodeType":"ExpressionStatement","src":"6590:52:78"},{"expression":{"id":20259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20255,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6652:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfSumInsuredCap","nodeType":"MemberAccess","referencedDeclaration":5489,"src":"6652:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20258,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20162,"src":"6678:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6652:44:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20260,"nodeType":"ExpressionStatement","src":"6652:44:78"},{"expression":{"id":20265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20261,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6707:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfSumInsuredAtRisk","nodeType":"MemberAccess","referencedDeclaration":5491,"src":"6707:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6736:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6707:30:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20266,"nodeType":"ExpressionStatement","src":"6707:30:78"},{"expression":{"id":20271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20267,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6747:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"6747:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6762:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6747:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20272,"nodeType":"ExpressionStatement","src":"6747:16:78"},{"expression":{"id":20277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20273,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6773:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"6773:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6794:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6773:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20278,"nodeType":"ExpressionStatement","src":"6773:22:78"},{"expression":{"id":20283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20279,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6805:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"6805:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6820:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6805:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20284,"nodeType":"ExpressionStatement","src":"6805:16:78"},{"expression":{"id":20290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20285,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6832:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5499,"src":"6832:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20288,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"6849:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6849:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6832:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20291,"nodeType":"ExpressionStatement","src":"6832:32:78"},{"expression":{"id":20297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20292,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20172,"src":"6874:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"6874:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20295,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"6891:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"6891:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6874:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20298,"nodeType":"ExpressionStatement","src":"6874:32:78"},{"eventCall":{"arguments":[{"id":20300,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"6944:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20301,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20156,"src":"6956:6:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20302,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20158,"src":"6964:10:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20303,"name":"collateralizationLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"6976:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20304,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20162,"src":"7000:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20299,"name":"LogRiskpoolRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5447,"src":"6922:21:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,uint256,uint256)"}},"id":20305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6922:97:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20306,"nodeType":"EmitStatement","src":"6917:102:78"}]},"functionSelector":"57419e8f","id":20308,"implemented":true,"kind":"function","modifiers":[{"id":20166,"modifierName":{"id":20165,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"5797:19:78"},"nodeType":"ModifierInvocation","src":"5797:19:78"}],"name":"registerRiskpool","nameLocation":"5582:16:78","nodeType":"FunctionDefinition","overrides":{"id":20164,"nodeType":"OverrideSpecifier","overrides":[],"src":"5780:8:78"},"parameters":{"id":20163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20154,"mutability":"mutable","name":"riskpoolId","nameLocation":"5616:10:78","nodeType":"VariableDeclaration","scope":20308,"src":"5608:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20153,"name":"uint256","nodeType":"ElementaryTypeName","src":"5608:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20156,"mutability":"mutable","name":"wallet","nameLocation":"5645:6:78","nodeType":"VariableDeclaration","scope":20308,"src":"5637:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20155,"name":"address","nodeType":"ElementaryTypeName","src":"5637:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20158,"mutability":"mutable","name":"erc20Token","nameLocation":"5669:10:78","nodeType":"VariableDeclaration","scope":20308,"src":"5661:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20157,"name":"address","nodeType":"ElementaryTypeName","src":"5661:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20160,"mutability":"mutable","name":"collateralizationLevel","nameLocation":"5697:22:78","nodeType":"VariableDeclaration","scope":20308,"src":"5689:30:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20159,"name":"uint256","nodeType":"ElementaryTypeName","src":"5689:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20162,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"5738:18:78","nodeType":"VariableDeclaration","scope":20308,"src":"5730:26:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20161,"name":"uint256","nodeType":"ElementaryTypeName","src":"5730:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5598:164:78"},"returnParameters":{"id":20167,"nodeType":"ParameterList","parameters":[],"src":"5821:0:78"},"scope":21207,"src":"5573:1453:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5522],"body":{"id":20349,"nodeType":"Block","src":"7169:330:78","statements":[{"expression":{"arguments":[{"arguments":[{"id":20321,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20310,"src":"7208:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20319,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"7187:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":20320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"7187:20:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":20322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7187:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3031303a4e4f545f50524f44554354","id":20323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7220:27:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_21abf94b5548761de95d02f2a3d6e1d83d6d35330a6e30e85c122e0961c94723","typeString":"literal_string \"ERROR:POL-010:NOT_PRODUCT\""},"value":"ERROR:POL-010:NOT_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_21abf94b5548761de95d02f2a3d6e1d83d6d35330a6e30e85c122e0961c94723","typeString":"literal_string \"ERROR:POL-010:NOT_PRODUCT\""}],"id":20318,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7179:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7179:69:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20325,"nodeType":"ExpressionStatement","src":"7179:69:78"},{"expression":{"arguments":[{"arguments":[{"id":20329,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20312,"src":"7288:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20327,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"7266:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":20328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"7266:21:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":20330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7266:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3031313a4e4f545f5249534b504f4f4c","id":20331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7301:28:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_53bb344f755768ff8b29ba330a2701e3df8da028fa755fbfd239aa46f33046db","typeString":"literal_string \"ERROR:POL-011:NOT_RISKPOOL\""},"value":"ERROR:POL-011:NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_53bb344f755768ff8b29ba330a2701e3df8da028fa755fbfd239aa46f33046db","typeString":"literal_string \"ERROR:POL-011:NOT_RISKPOOL\""}],"id":20326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7258:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7258:72:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20333,"nodeType":"ExpressionStatement","src":"7258:72:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":20335,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"7348:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20337,"indexExpression":{"id":20336,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20310,"src":"7372:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7348:34:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":20338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7386:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7348:39:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3031323a5249534b504f4f4c5f414c52454144595f534554","id":20340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7389:36:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_f319dea6556041246bb86b4f2b8ac2451da0edcfdd502e0f920d7f44141a5322","typeString":"literal_string \"ERROR:POL-012:RISKPOOL_ALREADY_SET\""},"value":"ERROR:POL-012:RISKPOOL_ALREADY_SET"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f319dea6556041246bb86b4f2b8ac2451da0edcfdd502e0f920d7f44141a5322","typeString":"literal_string \"ERROR:POL-012:RISKPOOL_ALREADY_SET\""}],"id":20334,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7340:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7340:86:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20342,"nodeType":"ExpressionStatement","src":"7340:86:78"},{"expression":{"id":20347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20343,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"7445:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20345,"indexExpression":{"id":20344,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20310,"src":"7469:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7445:34:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20346,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20312,"src":"7482:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7445:47:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20348,"nodeType":"ExpressionStatement","src":"7445:47:78"}]},"functionSelector":"f93b3673","id":20350,"implemented":true,"kind":"function","modifiers":[{"id":20316,"modifierName":{"id":20315,"name":"onlyInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":20054,"src":"7137:27:78"},"nodeType":"ModifierInvocation","src":"7137:27:78"}],"name":"setRiskpoolForProduct","nameLocation":"7041:21:78","nodeType":"FunctionDefinition","overrides":{"id":20314,"nodeType":"OverrideSpecifier","overrides":[],"src":"7120:8:78"},"parameters":{"id":20313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20310,"mutability":"mutable","name":"productId","nameLocation":"7071:9:78","nodeType":"VariableDeclaration","scope":20350,"src":"7063:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20309,"name":"uint256","nodeType":"ElementaryTypeName","src":"7063:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20312,"mutability":"mutable","name":"riskpoolId","nameLocation":"7090:10:78","nodeType":"VariableDeclaration","scope":20350,"src":"7082:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20311,"name":"uint256","nodeType":"ElementaryTypeName","src":"7082:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7062:39:78"},"returnParameters":{"id":20317,"nodeType":"ParameterList","parameters":[],"src":"7169:0:78"},"scope":21207,"src":"7032:467:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20390,"nodeType":"Block","src":"7640:171:78","statements":[{"assignments":[20366],"declarations":[{"constant":false,"id":20366,"mutability":"mutable","name":"pool","nameLocation":"7669:4:78","nodeType":"VariableDeclaration","scope":20390,"src":"7650:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20365,"nodeType":"UserDefinedTypeName","pathNode":{"id":20364,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"7650:10:78"},"referencedDeclaration":5502,"src":"7650:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20370,"initialValue":{"baseExpression":{"id":20367,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"7676:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20369,"indexExpression":{"id":20368,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20352,"src":"7687:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7676:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7650:48:78"},{"expression":{"id":20375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20371,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20366,"src":"7708:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"7708:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":20374,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20354,"src":"7724:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7708:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20376,"nodeType":"ExpressionStatement","src":"7708:22:78"},{"expression":{"id":20381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20377,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20366,"src":"7740:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"7740:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":20380,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20354,"src":"7756:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7740:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20382,"nodeType":"ExpressionStatement","src":"7740:22:78"},{"expression":{"id":20388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20383,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20366,"src":"7772:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"7772:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20386,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"7789:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"7789:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7772:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20389,"nodeType":"ExpressionStatement","src":"7772:32:78"}]},"functionSelector":"a65e2cfd","id":20391,"implemented":true,"kind":"function","modifiers":[{"id":20357,"modifierName":{"id":20356,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"7581:19:78"},"nodeType":"ModifierInvocation","src":"7581:19:78"},{"arguments":[{"id":20359,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20352,"src":"7624:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20360,"modifierName":{"id":20358,"name":"onlyActivePool","nodeType":"IdentifierPath","referencedDeclaration":20086,"src":"7609:14:78"},"nodeType":"ModifierInvocation","src":"7609:26:78"}],"name":"fund","nameLocation":"7514:4:78","nodeType":"FunctionDefinition","parameters":{"id":20355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20352,"mutability":"mutable","name":"riskpoolId","nameLocation":"7527:10:78","nodeType":"VariableDeclaration","scope":20391,"src":"7519:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20351,"name":"uint256","nodeType":"ElementaryTypeName","src":"7519:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20354,"mutability":"mutable","name":"amount","nameLocation":"7547:6:78","nodeType":"VariableDeclaration","scope":20391,"src":"7539:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20353,"name":"uint256","nodeType":"ElementaryTypeName","src":"7539:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7518:36:78"},"returnParameters":{"id":20361,"nodeType":"ParameterList","parameters":[],"src":"7640:0:78"},"scope":21207,"src":"7505:306:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20444,"nodeType":"Block","src":"7954:263:78","statements":[{"assignments":[20407],"declarations":[{"constant":false,"id":20407,"mutability":"mutable","name":"pool","nameLocation":"7983:4:78","nodeType":"VariableDeclaration","scope":20444,"src":"7964:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20406,"nodeType":"UserDefinedTypeName","pathNode":{"id":20405,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"7964:10:78"},"referencedDeclaration":5502,"src":"7964:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20411,"initialValue":{"baseExpression":{"id":20408,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"7990:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20410,"indexExpression":{"id":20409,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20393,"src":"8001:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7990:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7964:48:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20412,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"8027:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"8027:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":20414,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20395,"src":"8043:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8027:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":20429,"nodeType":"Block","src":"8115:21:78","statements":[{"expression":{"id":20427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20423,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"8117:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"8117:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8132:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8117:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20428,"nodeType":"ExpressionStatement","src":"8117:16:78"}]},"id":20430,"nodeType":"IfStatement","src":"8023:113:78","trueBody":{"id":20422,"nodeType":"Block","src":"8051:27:78","statements":[{"expression":{"id":20420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20416,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"8053:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"8053:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20419,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20395,"src":"8069:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8053:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20421,"nodeType":"ExpressionStatement","src":"8053:22:78"}]}},{"expression":{"id":20435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20431,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"8146:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"8146:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20434,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20395,"src":"8162:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8146:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20436,"nodeType":"ExpressionStatement","src":"8146:22:78"},{"expression":{"id":20442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20437,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"8178:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"8178:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20440,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"8195:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"8195:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8178:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20443,"nodeType":"ExpressionStatement","src":"8178:32:78"}]},"functionSelector":"c397ae39","id":20445,"implemented":true,"kind":"function","modifiers":[{"id":20398,"modifierName":{"id":20397,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"7895:19:78"},"nodeType":"ModifierInvocation","src":"7895:19:78"},{"arguments":[{"id":20400,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20393,"src":"7938:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20401,"modifierName":{"id":20399,"name":"onlyActivePool","nodeType":"IdentifierPath","referencedDeclaration":20086,"src":"7923:14:78"},"nodeType":"ModifierInvocation","src":"7923:26:78"}],"name":"defund","nameLocation":"7826:6:78","nodeType":"FunctionDefinition","parameters":{"id":20396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20393,"mutability":"mutable","name":"riskpoolId","nameLocation":"7841:10:78","nodeType":"VariableDeclaration","scope":20445,"src":"7833:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20392,"name":"uint256","nodeType":"ElementaryTypeName","src":"7833:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20395,"mutability":"mutable","name":"amount","nameLocation":"7861:6:78","nodeType":"VariableDeclaration","scope":20445,"src":"7853:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20394,"name":"uint256","nodeType":"ElementaryTypeName","src":"7853:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7832:36:78"},"returnParameters":{"id":20402,"nodeType":"ParameterList","parameters":[],"src":"7954:0:78"},"scope":21207,"src":"7817:400:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5529],"body":{"id":20590,"nodeType":"Block","src":"8399:1769:78","statements":[{"assignments":[20463],"declarations":[{"constant":false,"id":20463,"mutability":"mutable","name":"application","nameLocation":"8490:11:78","nodeType":"VariableDeclaration","scope":20590,"src":"8463:38:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":20462,"nodeType":"UserDefinedTypeName","pathNode":{"id":20461,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"8463:19:78"},"referencedDeclaration":5262,"src":"8463:19:78","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":20468,"initialValue":{"arguments":[{"id":20466,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"8527:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20464,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"8504:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":19835,"src":"8504:22:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":20467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8504:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"8463:74:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"},"id":20475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20470,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20463,"src":"8568:11:78","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":20471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5251,"src":"8568:17:78","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":20472,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"8589:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":20473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ApplicationState","nodeType":"MemberAccess","referencedDeclaration":5222,"src":"8589:24:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ApplicationState_$5222_$","typeString":"type(enum IPolicy.ApplicationState)"}},"id":20474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Applied","nodeType":"MemberAccess","referencedDeclaration":5218,"src":"8589:32:78","typeDescriptions":{"typeIdentifier":"t_enum$_ApplicationState_$5222","typeString":"enum IPolicy.ApplicationState"}},"src":"8568:53:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032303a4150504c49434154494f4e5f53544154455f494e56414c4944","id":20476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8635:41:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b7737fa76e23ee54befdf8804430da02fe2a7f8d2077faa42f91454d58fec1e","typeString":"literal_string \"ERROR:POL-020:APPLICATION_STATE_INVALID\""},"value":"ERROR:POL-020:APPLICATION_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7b7737fa76e23ee54befdf8804430da02fe2a7f8d2077faa42f91454d58fec1e","typeString":"literal_string \"ERROR:POL-020:APPLICATION_STATE_INVALID\""}],"id":20469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8547:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8547:139:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20478,"nodeType":"ExpressionStatement","src":"8547:139:78"},{"assignments":[20483],"declarations":[{"constant":false,"id":20483,"mutability":"mutable","name":"metadata","nameLocation":"8779:8:78","nodeType":"VariableDeclaration","scope":20590,"src":"8755:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":20482,"nodeType":"UserDefinedTypeName","pathNode":{"id":20481,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"8755:16:78"},"referencedDeclaration":5248,"src":"8755:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":20488,"initialValue":{"arguments":[{"id":20486,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"8810:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20484,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"8790:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"8790:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":20487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8790:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"8755:65:78"},{"assignments":[20490],"declarations":[{"constant":false,"id":20490,"mutability":"mutable","name":"riskpoolId","nameLocation":"8838:10:78","nodeType":"VariableDeclaration","scope":20590,"src":"8830:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20489,"name":"uint256","nodeType":"ElementaryTypeName","src":"8830:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20495,"initialValue":{"baseExpression":{"id":20491,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"8851:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20494,"indexExpression":{"expression":{"id":20492,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20483,"src":"8875:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":20493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"8875:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8851:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8830:64:78"},{"assignments":[20497],"declarations":[{"constant":false,"id":20497,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"8961:16:78","nodeType":"VariableDeclaration","scope":20590,"src":"8953:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20496,"name":"uint256","nodeType":"ElementaryTypeName","src":"8953:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20500,"initialValue":{"expression":{"id":20498,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20463,"src":"8980:11:78","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":20499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"8980:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8953:55:78"},{"assignments":[20502],"declarations":[{"constant":false,"id":20502,"mutability":"mutable","name":"collateralAmount","nameLocation":"9026:16:78","nodeType":"VariableDeclaration","scope":20590,"src":"9018:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20501,"name":"uint256","nodeType":"ElementaryTypeName","src":"9018:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20507,"initialValue":{"arguments":[{"id":20504,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20490,"src":"9065:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20505,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"9077:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20503,"name":"calculateCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20636,"src":"9045:19:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256)"}},"id":20506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9045:49:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9018:76:78"},{"expression":{"id":20512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20508,"name":"_collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20010,"src":"9104:17:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":20510,"indexExpression":{"id":20509,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"9122:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9104:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20511,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20502,"src":"9135:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9104:47:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20513,"nodeType":"ExpressionStatement","src":"9104:47:78"},{"eventCall":{"arguments":[{"id":20515,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"9197:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20516,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"9208:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20517,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20502,"src":"9226:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20514,"name":"LogRiskpoolRequiredCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5455,"src":"9167:29:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":20518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9167:76:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20519,"nodeType":"EmitStatement","src":"9162:81:78"},{"assignments":[20524],"declarations":[{"constant":false,"id":20524,"mutability":"mutable","name":"pool","nameLocation":"9369:4:78","nodeType":"VariableDeclaration","scope":20590,"src":"9350:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20523,"nodeType":"UserDefinedTypeName","pathNode":{"id":20522,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"9350:10:78"},"referencedDeclaration":5502,"src":"9350:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20528,"initialValue":{"baseExpression":{"id":20525,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"9376:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20527,"indexExpression":{"id":20526,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20490,"src":"9387:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9376:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9350:48:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20530,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"9429:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfSumInsuredCap","nodeType":"MemberAccess","referencedDeclaration":5489,"src":"9429:23:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20532,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"9456:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumOfSumInsuredAtRisk","nodeType":"MemberAccess","referencedDeclaration":5491,"src":"9456:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":20534,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"9485:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9456:45:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9429:72:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032323a5249534b504f4f4c5f53554d5f494e53555245445f4341505f4558434545444544","id":20537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9515:49:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bc20430b5420212dd3a6e8be5f546e3de707484a8680f89c18cb18c351384cb","typeString":"literal_string \"ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED\""},"value":"ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1bc20430b5420212dd3a6e8be5f546e3de707484a8680f89c18cb18c351384cb","typeString":"literal_string \"ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED\""}],"id":20529,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9408:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9408:166:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20539,"nodeType":"ExpressionStatement","src":"9408:166:78"},{"assignments":[20542],"declarations":[{"constant":false,"id":20542,"mutability":"mutable","name":"riskpool","nameLocation":"9641:8:78","nodeType":"VariableDeclaration","scope":20590,"src":"9631:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":20541,"nodeType":"UserDefinedTypeName","pathNode":{"id":20540,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"9631:9:78"},"referencedDeclaration":3312,"src":"9631:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"id":20546,"initialValue":{"arguments":[{"id":20544,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20483,"src":"9674:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}],"id":20543,"name":"_getRiskpoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21172,"src":"9652:21:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Metadata_$5248_memory_ptr_$returns$_t_contract$_IRiskpool_$3312_$","typeString":"function (struct IPolicy.Metadata memory) view returns (contract IRiskpool)"}},"id":20545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9652:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"VariableDeclarationStatement","src":"9631:52:78"},{"expression":{"id":20553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20547,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20457,"src":"9693:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":20550,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"9732:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20551,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20502,"src":"9743:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20548,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20542,"src":"9703:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":20549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collateralizePolicy","nodeType":"MemberAccess","referencedDeclaration":3196,"src":"9703:28:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$","typeString":"function (bytes32,uint256) external returns (bool)"}},"id":20552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9703:57:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9693:67:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":20554,"nodeType":"ExpressionStatement","src":"9693:67:78"},{"condition":{"id":20555,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20457,"src":"9775:7:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":20588,"nodeType":"Block","src":"10057:105:78","statements":[{"eventCall":{"arguments":[{"id":20583,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20490,"src":"10111:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20584,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"10123:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20585,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"10134:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20582,"name":"LogRiskpoolCollateralizationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5463,"src":"10076:34:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256)"}},"id":20586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10076:75:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20587,"nodeType":"EmitStatement","src":"10071:80:78"}]},"id":20589,"nodeType":"IfStatement","src":"9771:391:78","trueBody":{"id":20581,"nodeType":"Block","src":"9784:267:78","statements":[{"expression":{"id":20560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20556,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"9798:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfSumInsuredAtRisk","nodeType":"MemberAccess","referencedDeclaration":5491,"src":"9798:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":20559,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"9828:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9798:46:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20561,"nodeType":"ExpressionStatement","src":"9798:46:78"},{"expression":{"id":20566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20562,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"9858:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"9858:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":20565,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20502,"src":"9880:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9858:38:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20567,"nodeType":"ExpressionStatement","src":"9858:38:78"},{"expression":{"id":20573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20568,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"9910:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"9910:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20571,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9927:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9927:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9910:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20574,"nodeType":"ExpressionStatement","src":"9910:32:78"},{"eventCall":{"arguments":[{"id":20576,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20490,"src":"10000:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20577,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"10012:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20578,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"10023:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20575,"name":"LogRiskpoolCollateralizationSucceeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5471,"src":"9962:37:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256)"}},"id":20579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9962:78:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20580,"nodeType":"EmitStatement","src":"9957:83:78"}]}}]},"functionSelector":"1b07b17f","id":20591,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6f6c","id":20451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8313:6:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"id":20452,"modifierName":{"id":20450,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"8298:14:78"},"nodeType":"ModifierInvocation","src":"8298:22:78"},{"arguments":[{"id":20454,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20447,"src":"8354:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":20455,"modifierName":{"id":20453,"name":"onlyActivePoolForProcess","nodeType":"IdentifierPath","referencedDeclaration":20121,"src":"8329:24:78"},"nodeType":"ModifierInvocation","src":"8329:35:78"}],"name":"underwrite","nameLocation":"8232:10:78","nodeType":"FunctionDefinition","overrides":{"id":20449,"nodeType":"OverrideSpecifier","overrides":[],"src":"8280:8:78"},"parameters":{"id":20448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20447,"mutability":"mutable","name":"processId","nameLocation":"8251:9:78","nodeType":"VariableDeclaration","scope":20591,"src":"8243:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8243:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8242:19:78"},"returnParameters":{"id":20458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20457,"mutability":"mutable","name":"success","nameLocation":"8386:7:78","nodeType":"VariableDeclaration","scope":20591,"src":"8381:12:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20456,"name":"bool","nodeType":"ElementaryTypeName","src":"8381:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8380:14:78"},"scope":21207,"src":"8223:1945:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20635,"nodeType":"Block","src":"10328:590:78","statements":[{"assignments":[20601],"declarations":[{"constant":false,"id":20601,"mutability":"mutable","name":"collateralization","nameLocation":"10346:17:78","nodeType":"VariableDeclaration","scope":20635,"src":"10338:25:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20600,"name":"uint256","nodeType":"ElementaryTypeName","src":"10338:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20606,"initialValue":{"expression":{"arguments":[{"id":20603,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20593,"src":"10378:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20602,"name":"getRiskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21002,"src":"10366:11:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view returns (struct IPool.Pool memory)"}},"id":20604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10366:23:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":20605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"collateralizationLevel","nodeType":"MemberAccess","referencedDeclaration":5487,"src":"10366:46:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10338:74:78"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20607,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20601,"src":"10464:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":20608,"name":"FULL_COLLATERALIZATION_LEVEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19998,"src":"10485:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10464:49:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20615,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20601,"src":"10630:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10650:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10630:21:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":20632,"nodeType":"Block","src":"10867:45:78","statements":[{"expression":{"id":20630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20628,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20598,"src":"10881:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":20629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10900:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10881:20:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20631,"nodeType":"ExpressionStatement","src":"10881:20:78"}]},"id":20633,"nodeType":"IfStatement","src":"10626:286:78","trueBody":{"id":20627,"nodeType":"Block","src":"10653:113:78","statements":[{"expression":{"id":20625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20618,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20598,"src":"10667:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20619,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20601,"src":"10687:17:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":20620,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20595,"src":"10707:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10687:36:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20622,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10686:38:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":20623,"name":"FULL_COLLATERALIZATION_LEVEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19998,"src":"10727:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10686:69:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10667:88:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20626,"nodeType":"ExpressionStatement","src":"10667:88:78"}]}},"id":20634,"nodeType":"IfStatement","src":"10460:452:78","trueBody":{"id":20614,"nodeType":"Block","src":"10515:105:78","statements":[{"expression":{"id":20612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20610,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20598,"src":"10529:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20611,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20595,"src":"10548:16:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10529:35:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20613,"nodeType":"ExpressionStatement","src":"10529:35:78"}]}}]},"functionSelector":"7cdb808d","id":20636,"implemented":true,"kind":"function","modifiers":[],"name":"calculateCollateral","nameLocation":"10184:19:78","nodeType":"FunctionDefinition","parameters":{"id":20596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20593,"mutability":"mutable","name":"riskpoolId","nameLocation":"10212:10:78","nodeType":"VariableDeclaration","scope":20636,"src":"10204:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20592,"name":"uint256","nodeType":"ElementaryTypeName","src":"10204:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20595,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"10232:16:78","nodeType":"VariableDeclaration","scope":20636,"src":"10224:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20594,"name":"uint256","nodeType":"ElementaryTypeName","src":"10224:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10203:46:78"},"returnParameters":{"id":20599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20598,"mutability":"mutable","name":"collateralAmount","nameLocation":"10305:16:78","nodeType":"VariableDeclaration","scope":20636,"src":"10297:24:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20597,"name":"uint256","nodeType":"ElementaryTypeName","src":"10297:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10296:26:78"},"scope":21207,"src":"10175:743:78","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5536],"body":{"id":20703,"nodeType":"Block","src":"11090:409:78","statements":[{"assignments":[20654],"declarations":[{"constant":false,"id":20654,"mutability":"mutable","name":"metadata","nameLocation":"11124:8:78","nodeType":"VariableDeclaration","scope":20703,"src":"11100:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":20653,"nodeType":"UserDefinedTypeName","pathNode":{"id":20652,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"11100:16:78"},"referencedDeclaration":5248,"src":"11100:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":20659,"initialValue":{"arguments":[{"id":20657,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20638,"src":"11155:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20655,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"11135:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"11135:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":20658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11135:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"11100:65:78"},{"assignments":[20662],"declarations":[{"constant":false,"id":20662,"mutability":"mutable","name":"riskpool","nameLocation":"11185:8:78","nodeType":"VariableDeclaration","scope":20703,"src":"11175:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":20661,"nodeType":"UserDefinedTypeName","pathNode":{"id":20660,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"11175:9:78"},"referencedDeclaration":3312,"src":"11175:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"id":20666,"initialValue":{"arguments":[{"id":20664,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20654,"src":"11218:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}],"id":20663,"name":"_getRiskpoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21172,"src":"11196:21:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Metadata_$5248_memory_ptr_$returns$_t_contract$_IRiskpool_$3312_$","typeString":"function (struct IPolicy.Metadata memory) view returns (contract IRiskpool)"}},"id":20665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11196:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"VariableDeclarationStatement","src":"11175:52:78"},{"expression":{"arguments":[{"id":20670,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20638,"src":"11267:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20671,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20640,"src":"11278:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20667,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20662,"src":"11237:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":20669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPolicyPremium","nodeType":"MemberAccess","referencedDeclaration":3203,"src":"11237:29:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":20672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11237:48:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20673,"nodeType":"ExpressionStatement","src":"11237:48:78"},{"assignments":[20675],"declarations":[{"constant":false,"id":20675,"mutability":"mutable","name":"riskpoolId","nameLocation":"11304:10:78","nodeType":"VariableDeclaration","scope":20703,"src":"11296:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20674,"name":"uint256","nodeType":"ElementaryTypeName","src":"11296:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20680,"initialValue":{"baseExpression":{"id":20676,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"11317:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20679,"indexExpression":{"expression":{"id":20677,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20654,"src":"11341:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":20678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"11341:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11317:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11296:64:78"},{"assignments":[20685],"declarations":[{"constant":false,"id":20685,"mutability":"mutable","name":"pool","nameLocation":"11389:4:78","nodeType":"VariableDeclaration","scope":20703,"src":"11370:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20684,"nodeType":"UserDefinedTypeName","pathNode":{"id":20683,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"11370:10:78"},"referencedDeclaration":5502,"src":"11370:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20689,"initialValue":{"baseExpression":{"id":20686,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"11396:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20688,"indexExpression":{"id":20687,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20675,"src":"11407:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11396:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11370:48:78"},{"expression":{"id":20694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20690,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20685,"src":"11428:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"11428:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":20693,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20640,"src":"11444:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11428:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20695,"nodeType":"ExpressionStatement","src":"11428:22:78"},{"expression":{"id":20701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20696,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20685,"src":"11460:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"11460:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20699,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"11477:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"11477:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11460:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20702,"nodeType":"ExpressionStatement","src":"11460:32:78"}]},"functionSelector":"02108268","id":20704,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6f6c","id":20644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11034:6:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"id":20645,"modifierName":{"id":20643,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"11019:14:78"},"nodeType":"ModifierInvocation","src":"11019:22:78"},{"arguments":[{"id":20647,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20638,"src":"11075:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":20648,"modifierName":{"id":20646,"name":"onlyActivePoolForProcess","nodeType":"IdentifierPath","referencedDeclaration":20121,"src":"11050:24:78"},"nodeType":"ModifierInvocation","src":"11050:35:78"}],"name":"processPremium","nameLocation":"10934:14:78","nodeType":"FunctionDefinition","overrides":{"id":20642,"nodeType":"OverrideSpecifier","overrides":[],"src":"11002:8:78"},"parameters":{"id":20641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20638,"mutability":"mutable","name":"processId","nameLocation":"10957:9:78","nodeType":"VariableDeclaration","scope":20704,"src":"10949:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10949:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":20640,"mutability":"mutable","name":"amount","nameLocation":"10976:6:78","nodeType":"VariableDeclaration","scope":20704,"src":"10968:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20639,"name":"uint256","nodeType":"ElementaryTypeName","src":"10968:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10948:35:78"},"returnParameters":{"id":20649,"nodeType":"ParameterList","parameters":[],"src":"11090:0:78"},"scope":21207,"src":"10925:574:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5543],"body":{"id":20815,"nodeType":"Block","src":"11670:812:78","statements":[{"assignments":[20722],"declarations":[{"constant":false,"id":20722,"mutability":"mutable","name":"metadata","nameLocation":"11704:8:78","nodeType":"VariableDeclaration","scope":20815,"src":"11680:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":20721,"nodeType":"UserDefinedTypeName","pathNode":{"id":20720,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"11680:16:78"},"referencedDeclaration":5248,"src":"11680:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":20727,"initialValue":{"arguments":[{"id":20725,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20706,"src":"11735:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20723,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"11715:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"11715:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":20726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11715:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"11680:65:78"},{"assignments":[20729],"declarations":[{"constant":false,"id":20729,"mutability":"mutable","name":"riskpoolId","nameLocation":"11763:10:78","nodeType":"VariableDeclaration","scope":20815,"src":"11755:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20728,"name":"uint256","nodeType":"ElementaryTypeName","src":"11755:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20734,"initialValue":{"baseExpression":{"id":20730,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"11776:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20733,"indexExpression":{"expression":{"id":20731,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20722,"src":"11800:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":20732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"11800:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11776:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11755:64:78"},{"assignments":[20739],"declarations":[{"constant":false,"id":20739,"mutability":"mutable","name":"pool","nameLocation":"11848:4:78","nodeType":"VariableDeclaration","scope":20815,"src":"11829:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20738,"nodeType":"UserDefinedTypeName","pathNode":{"id":20737,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"11829:10:78"},"referencedDeclaration":5502,"src":"11829:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20743,"initialValue":{"baseExpression":{"id":20740,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"11855:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20742,"indexExpression":{"id":20741,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20729,"src":"11866:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11855:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11829:48:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20745,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"11895:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5499,"src":"11895:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11912:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11895:18:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032363a5249534b504f4f4c5f49445f494e56414c4944","id":20749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11915:35:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f1d6c58669160bcbfc12f912411cc7135fdc211388790e920c997812d46fbf3","typeString":"literal_string \"ERROR:POL-026:RISKPOOL_ID_INVALID\""},"value":"ERROR:POL-026:RISKPOOL_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f1d6c58669160bcbfc12f912411cc7135fdc211388790e920c997812d46fbf3","typeString":"literal_string \"ERROR:POL-026:RISKPOOL_ID_INVALID\""}],"id":20744,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11887:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11887:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20751,"nodeType":"ExpressionStatement","src":"11887:64:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20753,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"11969:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"11969:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":20755,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"11985:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11969:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032373a4341504954414c5f544f4f5f4c4f57","id":20757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11993:31:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_67cc7eb014a79a7e650ab0cfe6e52cae46518112ef7a651a4b1634ad03248e0e","typeString":"literal_string \"ERROR:POL-027:CAPITAL_TOO_LOW\""},"value":"ERROR:POL-027:CAPITAL_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_67cc7eb014a79a7e650ab0cfe6e52cae46518112ef7a651a4b1634ad03248e0e","typeString":"literal_string \"ERROR:POL-027:CAPITAL_TOO_LOW\""}],"id":20752,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"11961:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11961:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20759,"nodeType":"ExpressionStatement","src":"11961:64:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20761,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12043:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"12043:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":20763,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12065:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12043:28:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032383a4c4f434b45445f4341504954414c5f544f4f5f4c4f57","id":20765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12073:38:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_44afcf949d770ee053a9529659b3ec99089a2997bdea1c544310c06d7692b840","typeString":"literal_string \"ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW\""},"value":"ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44afcf949d770ee053a9529659b3ec99089a2997bdea1c544310c06d7692b840","typeString":"literal_string \"ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW\""}],"id":20760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12035:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12035:77:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20767,"nodeType":"ExpressionStatement","src":"12035:77:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20769,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12130:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"12130:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":20771,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12146:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12130:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032393a42414c414e43455f544f4f5f4c4f57","id":20773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12154:31:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba78ed8f777c20a07a168d501d7b3d7b92a7f1a27a40caead8609d6c05873a42","typeString":"literal_string \"ERROR:POL-029:BALANCE_TOO_LOW\""},"value":"ERROR:POL-029:BALANCE_TOO_LOW"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba78ed8f777c20a07a168d501d7b3d7b92a7f1a27a40caead8609d6c05873a42","typeString":"literal_string \"ERROR:POL-029:BALANCE_TOO_LOW\""}],"id":20768,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12122:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12122:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20775,"nodeType":"ExpressionStatement","src":"12122:64:78"},{"expression":{"id":20780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20776,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12197:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"12197:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20779,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12213:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12197:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20781,"nodeType":"ExpressionStatement","src":"12197:22:78"},{"expression":{"id":20786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20782,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12229:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"12229:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20785,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12251:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12229:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20787,"nodeType":"ExpressionStatement","src":"12229:28:78"},{"expression":{"id":20792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20788,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12267:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"12267:12:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20791,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12283:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12267:22:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20793,"nodeType":"ExpressionStatement","src":"12267:22:78"},{"expression":{"id":20799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20794,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20739,"src":"12299:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"12299:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20797,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"12316:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"12316:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12299:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20800,"nodeType":"ExpressionStatement","src":"12299:32:78"},{"assignments":[20803],"declarations":[{"constant":false,"id":20803,"mutability":"mutable","name":"riskpool","nameLocation":"12376:8:78","nodeType":"VariableDeclaration","scope":20815,"src":"12366:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":20802,"nodeType":"UserDefinedTypeName","pathNode":{"id":20801,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"12366:9:78"},"referencedDeclaration":3312,"src":"12366:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"id":20807,"initialValue":{"arguments":[{"id":20805,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20722,"src":"12409:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}],"id":20804,"name":"_getRiskpoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21172,"src":"12387:21:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Metadata_$5248_memory_ptr_$returns$_t_contract$_IRiskpool_$3312_$","typeString":"function (struct IPolicy.Metadata memory) view returns (contract IRiskpool)"}},"id":20806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12387:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"VariableDeclarationStatement","src":"12366:52:78"},{"expression":{"arguments":[{"id":20811,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20706,"src":"12457:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20812,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"12468:6:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20808,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20803,"src":"12428:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":20810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPolicyPayout","nodeType":"MemberAccess","referencedDeclaration":3210,"src":"12428:28:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":20813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12428:47:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20814,"nodeType":"ExpressionStatement","src":"12428:47:78"}]},"functionSelector":"fe64372b","id":20816,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6f6c","id":20712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11614:6:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"id":20713,"modifierName":{"id":20711,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"11599:14:78"},"nodeType":"ModifierInvocation","src":"11599:22:78"},{"arguments":[{"id":20715,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20706,"src":"11655:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":20716,"modifierName":{"id":20714,"name":"onlyActivePoolForProcess","nodeType":"IdentifierPath","referencedDeclaration":20121,"src":"11630:24:78"},"nodeType":"ModifierInvocation","src":"11630:35:78"}],"name":"processPayout","nameLocation":"11515:13:78","nodeType":"FunctionDefinition","overrides":{"id":20710,"nodeType":"OverrideSpecifier","overrides":[],"src":"11582:8:78"},"parameters":{"id":20709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20706,"mutability":"mutable","name":"processId","nameLocation":"11537:9:78","nodeType":"VariableDeclaration","scope":20816,"src":"11529:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11529:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":20708,"mutability":"mutable","name":"amount","nameLocation":"11556:6:78","nodeType":"VariableDeclaration","scope":20816,"src":"11548:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20707,"name":"uint256","nodeType":"ElementaryTypeName","src":"11548:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11528:35:78"},"returnParameters":{"id":20717,"nodeType":"ParameterList","parameters":[],"src":"11670:0:78"},"scope":21207,"src":"11506:976:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5548],"body":{"id":20934,"nodeType":"Block","src":"12587:1059:78","statements":[{"assignments":[20829],"declarations":[{"constant":false,"id":20829,"mutability":"mutable","name":"policy","nameLocation":"12619:6:78","nodeType":"VariableDeclaration","scope":20934,"src":"12597:28:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":20828,"nodeType":"UserDefinedTypeName","pathNode":{"id":20827,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"12597:14:78"},"referencedDeclaration":5282,"src":"12597:14:78","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":20834,"initialValue":{"arguments":[{"id":20832,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"12646:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20830,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"12628:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"12628:17:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":20833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12628:28:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"12597:59:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"},"id":20841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20836,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20829,"src":"12687:6:78","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":20837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"12687:12:78","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":20838,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5433,"src":"12703:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$5433_$","typeString":"type(contract IPolicy)"}},"id":20839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"PolicyState","nodeType":"MemberAccess","referencedDeclaration":5226,"src":"12703:19:78","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PolicyState_$5226_$","typeString":"type(enum IPolicy.PolicyState)"}},"id":20840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":5225,"src":"12703:26:78","typeDescriptions":{"typeIdentifier":"t_enum$_PolicyState_$5226","typeString":"enum IPolicy.PolicyState"}},"src":"12687:42:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3032353a504f4c4943595f53544154455f494e56414c4944","id":20842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12743:36:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_8112df5365773a5d212dc325b4bcf75d58165a23e61b1a17302f9ca56a1ed0fb","typeString":"literal_string \"ERROR:POL-025:POLICY_STATE_INVALID\""},"value":"ERROR:POL-025:POLICY_STATE_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8112df5365773a5d212dc325b4bcf75d58165a23e61b1a17302f9ca56a1ed0fb","typeString":"literal_string \"ERROR:POL-025:POLICY_STATE_INVALID\""}],"id":20835,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12666:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12666:123:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20844,"nodeType":"ExpressionStatement","src":"12666:123:78"},{"assignments":[20849],"declarations":[{"constant":false,"id":20849,"mutability":"mutable","name":"metadata","nameLocation":"12824:8:78","nodeType":"VariableDeclaration","scope":20934,"src":"12800:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":20848,"nodeType":"UserDefinedTypeName","pathNode":{"id":20847,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"12800:16:78"},"referencedDeclaration":5248,"src":"12800:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":20854,"initialValue":{"arguments":[{"id":20852,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"12855:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20850,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"12835:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"12835:19:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":20853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12835:30:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"12800:65:78"},{"assignments":[20857],"declarations":[{"constant":false,"id":20857,"mutability":"mutable","name":"riskpool","nameLocation":"12885:8:78","nodeType":"VariableDeclaration","scope":20934,"src":"12875:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":20856,"nodeType":"UserDefinedTypeName","pathNode":{"id":20855,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"12875:9:78"},"referencedDeclaration":3312,"src":"12875:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"id":20861,"initialValue":{"arguments":[{"id":20859,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20849,"src":"12918:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}],"id":20858,"name":"_getRiskpoolComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21172,"src":"12896:21:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Metadata_$5248_memory_ptr_$returns$_t_contract$_IRiskpool_$3312_$","typeString":"function (struct IPolicy.Metadata memory) view returns (contract IRiskpool)"}},"id":20860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12896:31:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"VariableDeclarationStatement","src":"12875:52:78"},{"expression":{"arguments":[{"id":20865,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"12960:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20862,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20857,"src":"12937:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":20864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"releasePolicy","nodeType":"MemberAccess","referencedDeclaration":3215,"src":"12937:22:78","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":20866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12937:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20867,"nodeType":"ExpressionStatement","src":"12937:33:78"},{"assignments":[20872],"declarations":[{"constant":false,"id":20872,"mutability":"mutable","name":"application","nameLocation":"13008:11:78","nodeType":"VariableDeclaration","scope":20934,"src":"12981:38:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":20871,"nodeType":"UserDefinedTypeName","pathNode":{"id":20870,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"12981:19:78"},"referencedDeclaration":5262,"src":"12981:19:78","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"id":20877,"initialValue":{"arguments":[{"id":20875,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"13045:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":20873,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"13022:7:78","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":20874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":19835,"src":"13022:22:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":20876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13022:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"VariableDeclarationStatement","src":"12981:74:78"},{"assignments":[20879],"declarations":[{"constant":false,"id":20879,"mutability":"mutable","name":"riskpoolId","nameLocation":"13074:10:78","nodeType":"VariableDeclaration","scope":20934,"src":"13066:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20878,"name":"uint256","nodeType":"ElementaryTypeName","src":"13066:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20884,"initialValue":{"baseExpression":{"id":20880,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"13087:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20883,"indexExpression":{"expression":{"id":20881,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20849,"src":"13111:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":20882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"13111:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13087:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13066:64:78"},{"assignments":[20889],"declarations":[{"constant":false,"id":20889,"mutability":"mutable","name":"pool","nameLocation":"13159:4:78","nodeType":"VariableDeclaration","scope":20934,"src":"13140:23:78","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20888,"nodeType":"UserDefinedTypeName","pathNode":{"id":20887,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"13140:10:78"},"referencedDeclaration":5502,"src":"13140:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":20893,"initialValue":{"baseExpression":{"id":20890,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"13166:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20892,"indexExpression":{"id":20891,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20879,"src":"13177:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13166:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13140:48:78"},{"assignments":[20895],"declarations":[{"constant":false,"id":20895,"mutability":"mutable","name":"remainingCollateralAmount","nameLocation":"13206:25:78","nodeType":"VariableDeclaration","scope":20934,"src":"13198:33:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20894,"name":"uint256","nodeType":"ElementaryTypeName","src":"13198:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":20902,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":20896,"name":"_collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20010,"src":"13234:17:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":20898,"indexExpression":{"id":20897,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"13252:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13234:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":20899,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20829,"src":"13265:6:78","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":20900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"payoutAmount","nodeType":"MemberAccess","referencedDeclaration":5277,"src":"13265:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13234:50:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13198:86:78"},{"expression":{"id":20908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20903,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20889,"src":"13295:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sumOfSumInsuredAtRisk","nodeType":"MemberAccess","referencedDeclaration":5491,"src":"13295:26:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":20906,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20872,"src":"13325:11:78","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":20907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sumInsuredAmount","nodeType":"MemberAccess","referencedDeclaration":5255,"src":"13325:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13295:58:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20909,"nodeType":"ExpressionStatement","src":"13295:58:78"},{"expression":{"id":20914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20910,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20889,"src":"13363:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"13363:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":20913,"name":"remainingCollateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20895,"src":"13385:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13363:47:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20915,"nodeType":"ExpressionStatement","src":"13363:47:78"},{"expression":{"id":20921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":20916,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20889,"src":"13420:4:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool storage pointer"}},"id":20918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"updatedAt","nodeType":"MemberAccess","referencedDeclaration":5501,"src":"13420:14:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":20919,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"13437:5:78","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":20920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"13437:15:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13420:32:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20922,"nodeType":"ExpressionStatement","src":"13420:32:78"},{"expression":{"id":20926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"13510:35:78","subExpression":{"baseExpression":{"id":20923,"name":"_collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20010,"src":"13517:17:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":20925,"indexExpression":{"id":20924,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"13535:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13517:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20927,"nodeType":"ExpressionStatement","src":"13510:35:78"},{"eventCall":{"arguments":[{"id":20929,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20879,"src":"13590:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20930,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20818,"src":"13602:9:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":20931,"name":"remainingCollateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20895,"src":"13613:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20928,"name":"LogRiskpoolCollateralReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5479,"src":"13560:29:78","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256)"}},"id":20932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13560:79:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20933,"nodeType":"EmitStatement","src":"13555:84:78"}]},"functionSelector":"67d42a8b","id":20935,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"506f6f6c","id":20822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12575:6:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"id":20823,"modifierName":{"id":20821,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"12560:14:78"},"nodeType":"ModifierInvocation","src":"12560:22:78"}],"name":"release","nameLocation":"12498:7:78","nodeType":"FunctionDefinition","overrides":{"id":20820,"nodeType":"OverrideSpecifier","overrides":[],"src":"12543:8:78"},"parameters":{"id":20819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20818,"mutability":"mutable","name":"processId","nameLocation":"12514:9:78","nodeType":"VariableDeclaration","scope":20935,"src":"12506:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12506:7:78","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12505:19:78"},"returnParameters":{"id":20824,"nodeType":"ParameterList","parameters":[],"src":"12587:0:78"},"scope":21207,"src":"12489:1157:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20957,"nodeType":"Block","src":"13797:200:78","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":20945,"name":"maxNumberOfActiveBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20939,"src":"13815:24:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13842:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13815:28:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3033323a4d41585f4e554d4245525f4f465f4143544956455f42554e444c45535f494e56414c4944","id":20948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13845:52:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_7116746545d46f1c191ba7298d418be30d7db11a3c9e7fc22ef2d27b419a7e55","typeString":"literal_string \"ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID\""},"value":"ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7116746545d46f1c191ba7298d418be30d7db11a3c9e7fc22ef2d27b419a7e55","typeString":"literal_string \"ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID\""}],"id":20944,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13807:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13807:91:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20950,"nodeType":"ExpressionStatement","src":"13807:91:78"},{"expression":{"id":20955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":20951,"name":"_maxmimumNumberOfActiveBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20023,"src":"13908:43:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20953,"indexExpression":{"id":20952,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20937,"src":"13952:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13908:55:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":20954,"name":"maxNumberOfActiveBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20939,"src":"13966:24:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13908:82:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20956,"nodeType":"ExpressionStatement","src":"13908:82:78"}]},"functionSelector":"2127fd48","id":20958,"implemented":true,"kind":"function","modifiers":[{"id":20942,"modifierName":{"id":20941,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"13773:19:78"},"nodeType":"ModifierInvocation","src":"13773:19:78"}],"name":"setMaximumNumberOfActiveBundles","nameLocation":"13661:31:78","nodeType":"FunctionDefinition","parameters":{"id":20940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20937,"mutability":"mutable","name":"riskpoolId","nameLocation":"13701:10:78","nodeType":"VariableDeclaration","scope":20958,"src":"13693:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20936,"name":"uint256","nodeType":"ElementaryTypeName","src":"13693:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20939,"mutability":"mutable","name":"maxNumberOfActiveBundles","nameLocation":"13721:24:78","nodeType":"VariableDeclaration","scope":20958,"src":"13713:32:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20938,"name":"uint256","nodeType":"ElementaryTypeName","src":"13713:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13692:54:78"},"returnParameters":{"id":20943,"nodeType":"ParameterList","parameters":[],"src":"13797:0:78"},"scope":21207,"src":"13652:345:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":20969,"nodeType":"Block","src":"14122:79:78","statements":[{"expression":{"baseExpression":{"id":20965,"name":"_maxmimumNumberOfActiveBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20023,"src":"14139:43:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":20967,"indexExpression":{"id":20966,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20960,"src":"14183:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14139:55:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20964,"id":20968,"nodeType":"Return","src":"14132:62:78"}]},"functionSelector":"7db32844","id":20970,"implemented":true,"kind":"function","modifiers":[],"name":"getMaximumNumberOfActiveBundles","nameLocation":"14012:31:78","nodeType":"FunctionDefinition","parameters":{"id":20961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20960,"mutability":"mutable","name":"riskpoolId","nameLocation":"14052:10:78","nodeType":"VariableDeclaration","scope":20970,"src":"14044:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20959,"name":"uint256","nodeType":"ElementaryTypeName","src":"14044:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14043:20:78"},"returnParameters":{"id":20964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20963,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"14092:28:78","nodeType":"VariableDeclaration","scope":20970,"src":"14084:36:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20962,"name":"uint256","nodeType":"ElementaryTypeName","src":"14084:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14083:38:78"},"scope":21207,"src":"14003:198:78","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":20978,"nodeType":"Block","src":"14267:31:78","statements":[{"expression":{"expression":{"id":20975,"name":"_riskpoolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"14276:12:78","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":20976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14276:19:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20974,"id":20977,"nodeType":"Return","src":"14269:26:78"}]},"functionSelector":"a054381f","id":20979,"implemented":true,"kind":"function","modifiers":[],"name":"riskpools","nameLocation":"14220:9:78","nodeType":"FunctionDefinition","parameters":{"id":20971,"nodeType":"ParameterList","parameters":[],"src":"14229:2:78"},"returnParameters":{"id":20974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20973,"mutability":"mutable","name":"idx","nameLocation":"14262:3:78","nodeType":"VariableDeclaration","scope":20979,"src":"14254:11:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20972,"name":"uint256","nodeType":"ElementaryTypeName","src":"14254:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14253:13:78"},"scope":21207,"src":"14211:87:78","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21001,"nodeType":"Block","src":"14394:132:78","statements":[{"expression":{"id":20991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":20987,"name":"riskPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20985,"src":"14404:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":20988,"name":"_riskpools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20019,"src":"14415:10:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$5502_storage_$","typeString":"mapping(uint256 => struct IPool.Pool storage ref)"}},"id":20990,"indexExpression":{"id":20989,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20981,"src":"14426:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14415:22:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage","typeString":"struct IPool.Pool storage ref"}},"src":"14404:33:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":20992,"nodeType":"ExpressionStatement","src":"14404:33:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":20994,"name":"riskPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20985,"src":"14455:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":20995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5499,"src":"14455:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":20996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14476:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14455:22:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034303a5249534b504f4f4c5f4e4f545f52454749535445524544","id":20998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14479:39:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3836296e71c1859c2c71fd95043696a6e738e6a1a0c4395bee681aed798558c","typeString":"literal_string \"ERROR:POL-040:RISKPOOL_NOT_REGISTERED\""},"value":"ERROR:POL-040:RISKPOOL_NOT_REGISTERED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3836296e71c1859c2c71fd95043696a6e738e6a1a0c4395bee681aed798558c","typeString":"literal_string \"ERROR:POL-040:RISKPOOL_NOT_REGISTERED\""}],"id":20993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14447:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14447:72:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21000,"nodeType":"ExpressionStatement","src":"14447:72:78"}]},"functionSelector":"eb802114","id":21002,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpool","nameLocation":"14314:11:78","nodeType":"FunctionDefinition","parameters":{"id":20982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20981,"mutability":"mutable","name":"riskpoolId","nameLocation":"14334:10:78","nodeType":"VariableDeclaration","scope":21002,"src":"14326:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20980,"name":"uint256","nodeType":"ElementaryTypeName","src":"14326:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14325:20:78"},"returnParameters":{"id":20986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20985,"mutability":"mutable","name":"riskPool","nameLocation":"14384:8:78","nodeType":"VariableDeclaration","scope":21002,"src":"14366:26:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":20984,"nodeType":"UserDefinedTypeName","pathNode":{"id":20983,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"14366:10:78"},"referencedDeclaration":5502,"src":"14366:10:78","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"src":"14365:28:78"},"scope":21207,"src":"14305:221:78","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":21013,"nodeType":"Block","src":"14625:58:78","statements":[{"expression":{"baseExpression":{"id":21009,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"14642:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21011,"indexExpression":{"id":21010,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21004,"src":"14666:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14642:34:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21008,"id":21012,"nodeType":"Return","src":"14635:41:78"}]},"functionSelector":"d229f3b0","id":21014,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskPoolForProduct","nameLocation":"14541:21:78","nodeType":"FunctionDefinition","parameters":{"id":21005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21004,"mutability":"mutable","name":"productId","nameLocation":"14571:9:78","nodeType":"VariableDeclaration","scope":21014,"src":"14563:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21003,"name":"uint256","nodeType":"ElementaryTypeName","src":"14563:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14562:19:78"},"returnParameters":{"id":21008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21007,"mutability":"mutable","name":"riskpoolId","nameLocation":"14613:10:78","nodeType":"VariableDeclaration","scope":21014,"src":"14605:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21006,"name":"uint256","nodeType":"ElementaryTypeName","src":"14605:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14604:20:78"},"scope":21207,"src":"14532:151:78","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21028,"nodeType":"Block","src":"14785:87:78","statements":[{"expression":{"arguments":[{"baseExpression":{"id":21023,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"14823:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21025,"indexExpression":{"id":21024,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21016,"src":"14853:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14823:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":21021,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"14802:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"14802:20:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":21026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14802:63:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21020,"id":21027,"nodeType":"Return","src":"14795:70:78"}]},"functionSelector":"a4266a66","id":21029,"implemented":true,"kind":"function","modifiers":[],"name":"activeBundles","nameLocation":"14698:13:78","nodeType":"FunctionDefinition","parameters":{"id":21017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21016,"mutability":"mutable","name":"riskpoolId","nameLocation":"14720:10:78","nodeType":"VariableDeclaration","scope":21029,"src":"14712:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21015,"name":"uint256","nodeType":"ElementaryTypeName","src":"14712:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14711:20:78"},"returnParameters":{"id":21020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21019,"mutability":"mutable","name":"numberOfActiveBundles","nameLocation":"14762:21:78","nodeType":"VariableDeclaration","scope":21029,"src":"14754:29:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21018,"name":"uint256","nodeType":"ElementaryTypeName","src":"14754:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14753:31:78"},"scope":21207,"src":"14689:183:78","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21058,"nodeType":"Block","src":"14984:261:78","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21039,"name":"bundleIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21033,"src":"15015:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"baseExpression":{"id":21042,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"15048:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21044,"indexExpression":{"id":21043,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21031,"src":"15078:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15048:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":21040,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"15027:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"15027:20:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":21045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15027:63:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15015:75:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034313a42554e444c455f4944585f544f4f5f4c41524745","id":21047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15104:36:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_fac70cef27ea13d3b488fdaf23702ddb45d929dc3704ba843e20ef6d9116ebab","typeString":"literal_string \"ERROR:POL-041:BUNDLE_IDX_TOO_LARGE\""},"value":"ERROR:POL-041:BUNDLE_IDX_TOO_LARGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fac70cef27ea13d3b488fdaf23702ddb45d929dc3704ba843e20ef6d9116ebab","typeString":"literal_string \"ERROR:POL-041:BUNDLE_IDX_TOO_LARGE\""}],"id":21038,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14994:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14994:156:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21049,"nodeType":"ExpressionStatement","src":"14994:156:78"},{"expression":{"arguments":[{"baseExpression":{"id":21052,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"15185:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21054,"indexExpression":{"id":21053,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21031,"src":"15215:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15185:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":21055,"name":"bundleIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21033,"src":"15228:9:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21050,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"15168:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11408,"src":"15168:16:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)"}},"id":21056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15168:70:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21037,"id":21057,"nodeType":"Return","src":"15161:77:78"}]},"functionSelector":"ec833b0c","id":21059,"implemented":true,"kind":"function","modifiers":[],"name":"getActiveBundleId","nameLocation":"14887:17:78","nodeType":"FunctionDefinition","parameters":{"id":21034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21031,"mutability":"mutable","name":"riskpoolId","nameLocation":"14913:10:78","nodeType":"VariableDeclaration","scope":21059,"src":"14905:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21030,"name":"uint256","nodeType":"ElementaryTypeName","src":"14905:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21033,"mutability":"mutable","name":"bundleIdx","nameLocation":"14933:9:78","nodeType":"VariableDeclaration","scope":21059,"src":"14925:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21032,"name":"uint256","nodeType":"ElementaryTypeName","src":"14925:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14904:39:78"},"returnParameters":{"id":21037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21036,"mutability":"mutable","name":"bundleId","nameLocation":"14974:8:78","nodeType":"VariableDeclaration","scope":21059,"src":"14966:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21035,"name":"uint256","nodeType":"ElementaryTypeName","src":"14966:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14965:18:78"},"scope":21207,"src":"14878:367:78","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21103,"nodeType":"Block","src":"15371:493:78","statements":[{"expression":{"arguments":[{"id":21076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15402:76:78","subExpression":{"arguments":[{"baseExpression":{"id":21071,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"15426:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21073,"indexExpression":{"id":21072,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"15456:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15426:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":21074,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21063,"src":"15469:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21069,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"15403:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"15403:22:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":21075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15403:75:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034323a42554e444c455f49445f414c52454144595f494e5f534554","id":21077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15493:40:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_b086ae5e8f106ca526b0d03899a345f10ddaccb93416929015e592b95b2ec331","typeString":"literal_string \"ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET\""},"value":"ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b086ae5e8f106ca526b0d03899a345f10ddaccb93416929015e592b95b2ec331","typeString":"literal_string \"ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET\""}],"id":21068,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15381:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15381:162:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21079,"nodeType":"ExpressionStatement","src":"15381:162:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":21083,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"15595:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21085,"indexExpression":{"id":21084,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"15625:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15595:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}],"expression":{"id":21081,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"15574:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11387,"src":"15574:20:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)"}},"id":21086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15574:63:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":21087,"name":"_maxmimumNumberOfActiveBundlesForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20023,"src":"15640:43:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21089,"indexExpression":{"id":21088,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"15684:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15640:55:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15574:121:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034333a4d4158494d554d5f4e554d4245525f4f465f4143544956455f42554e444c45535f52454143484544","id":21091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15710:56:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d45b651261a0d41dda08727c81a537b3167117b852006bf8549d74e1a978bf","typeString":"literal_string \"ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED\""},"value":"ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_32d45b651261a0d41dda08727c81a537b3167117b852006bf8549d74e1a978bf","typeString":"literal_string \"ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED\""}],"id":21080,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15553:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15553:223:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21093,"nodeType":"ExpressionStatement","src":"15553:223:78"},{"expression":{"arguments":[{"baseExpression":{"id":21097,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"15805:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21099,"indexExpression":{"id":21098,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21061,"src":"15835:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15805:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":21100,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21063,"src":"15848:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21094,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"15787:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11330,"src":"15787:17:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":21101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15787:70:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21102,"nodeType":"ExpressionStatement","src":"15787:70:78"}]},"functionSelector":"d407ba00","id":21104,"implemented":true,"kind":"function","modifiers":[{"id":21066,"modifierName":{"id":21065,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"15347:19:78"},"nodeType":"ModifierInvocation","src":"15347:19:78"}],"name":"addBundleIdToActiveSet","nameLocation":"15260:22:78","nodeType":"FunctionDefinition","parameters":{"id":21064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21061,"mutability":"mutable","name":"riskpoolId","nameLocation":"15291:10:78","nodeType":"VariableDeclaration","scope":21104,"src":"15283:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21060,"name":"uint256","nodeType":"ElementaryTypeName","src":"15283:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21063,"mutability":"mutable","name":"bundleId","nameLocation":"15311:8:78","nodeType":"VariableDeclaration","scope":21104,"src":"15303:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21062,"name":"uint256","nodeType":"ElementaryTypeName","src":"15303:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15282:38:78"},"returnParameters":{"id":21067,"nodeType":"ParameterList","parameters":[],"src":"15371:0:78"},"scope":21207,"src":"15251:613:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21133,"nodeType":"Block","src":"15995:258:78","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":21116,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"16049:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21118,"indexExpression":{"id":21117,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21106,"src":"16079:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16049:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":21119,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21108,"src":"16092:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21114,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"16026:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11372,"src":"16026:22:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (bool)"}},"id":21120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16026:75:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034343a42554e444c455f49445f4e4f545f494e5f534554","id":21121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16116:36:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_25c96dd3fff47393c9641d7e3b8d6afd2344a8424f3becb7b10f61348f063fb8","typeString":"literal_string \"ERROR:POL-044:BUNDLE_ID_NOT_IN_SET\""},"value":"ERROR:POL-044:BUNDLE_ID_NOT_IN_SET"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_25c96dd3fff47393c9641d7e3b8d6afd2344a8424f3becb7b10f61348f063fb8","typeString":"literal_string \"ERROR:POL-044:BUNDLE_ID_NOT_IN_SET\""}],"id":21113,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16005:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16005:157:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21123,"nodeType":"ExpressionStatement","src":"16005:157:78"},{"expression":{"arguments":[{"baseExpression":{"id":21127,"name":"_activeBundleIdsForRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20028,"src":"16194:29:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_UintSet_$11309_storage_$","typeString":"mapping(uint256 => struct EnumerableSet.UintSet storage ref)"}},"id":21129,"indexExpression":{"id":21128,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21106,"src":"16224:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16194:41:78","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"}},{"id":21130,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21108,"src":"16237:8:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_UintSet_$11309_storage","typeString":"struct EnumerableSet.UintSet storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21124,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"16173:13:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":11351,"src":"16173:20:78","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_UintSet_$11309_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)"}},"id":21131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16173:73:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21132,"nodeType":"ExpressionStatement","src":"16173:73:78"}]},"functionSelector":"950be803","id":21134,"implemented":true,"kind":"function","modifiers":[{"id":21111,"modifierName":{"id":21110,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":20068,"src":"15971:19:78"},"nodeType":"ModifierInvocation","src":"15971:19:78"}],"name":"removeBundleIdFromActiveSet","nameLocation":"15879:27:78","nodeType":"FunctionDefinition","parameters":{"id":21109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21106,"mutability":"mutable","name":"riskpoolId","nameLocation":"15915:10:78","nodeType":"VariableDeclaration","scope":21134,"src":"15907:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21105,"name":"uint256","nodeType":"ElementaryTypeName","src":"15907:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21108,"mutability":"mutable","name":"bundleId","nameLocation":"15935:8:78","nodeType":"VariableDeclaration","scope":21134,"src":"15927:16:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21107,"name":"uint256","nodeType":"ElementaryTypeName","src":"15927:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15906:38:78"},"returnParameters":{"id":21112,"nodeType":"ParameterList","parameters":[],"src":"15995:0:78"},"scope":21207,"src":"15870:383:78","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21141,"nodeType":"Block","src":"16332:52:78","statements":[{"expression":{"id":21139,"name":"FULL_COLLATERALIZATION_LEVEL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19998,"src":"16349:28:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21138,"id":21140,"nodeType":"Return","src":"16342:35:78"}]},"functionSelector":"f1d354d0","id":21142,"implemented":true,"kind":"function","modifiers":[],"name":"getFullCollateralizationLevel","nameLocation":"16268:29:78","nodeType":"FunctionDefinition","parameters":{"id":21135,"nodeType":"ParameterList","parameters":[],"src":"16297:2:78"},"returnParameters":{"id":21138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":21142,"src":"16323:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21136,"name":"uint256","nodeType":"ElementaryTypeName","src":"16323:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16322:9:78"},"scope":21207,"src":"16259:125:78","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":21171,"nodeType":"Block","src":"16498:206:78","statements":[{"assignments":[21152],"declarations":[{"constant":false,"id":21152,"mutability":"mutable","name":"riskpoolId","nameLocation":"16516:10:78","nodeType":"VariableDeclaration","scope":21171,"src":"16508:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21151,"name":"uint256","nodeType":"ElementaryTypeName","src":"16508:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21157,"initialValue":{"baseExpression":{"id":21153,"name":"_riskpoolIdForProductId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"16529:23:78","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":21156,"indexExpression":{"expression":{"id":21154,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21145,"src":"16553:8:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":21155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"16553:18:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16529:43:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16508:64:78"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21159,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21152,"src":"16590:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16603:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16590:14:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034353a5249534b504f4f4c5f444f45535f4e4f545f4558495354","id":21162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16606:39:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4b296530db676cdfea5704a67861f031427c9d329dfdeaaa17866263df6c024","typeString":"literal_string \"ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST\""},"value":"ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4b296530db676cdfea5704a67861f031427c9d329dfdeaaa17866263df6c024","typeString":"literal_string \"ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST\""}],"id":21158,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16582:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16582:64:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21164,"nodeType":"ExpressionStatement","src":"16582:64:78"},{"expression":{"id":21169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21165,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21149,"src":"16657:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21167,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21152,"src":"16686:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21166,"name":"_getRiskpoolForId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21206,"src":"16668:17:78","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IRiskpool_$3312_$","typeString":"function (uint256) view returns (contract IRiskpool)"}},"id":21168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16668:29:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"src":"16657:40:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":21170,"nodeType":"ExpressionStatement","src":"16657:40:78"}]},"id":21172,"implemented":true,"kind":"function","modifiers":[],"name":"_getRiskpoolComponent","nameLocation":"16399:21:78","nodeType":"FunctionDefinition","parameters":{"id":21146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21145,"mutability":"mutable","name":"metadata","nameLocation":"16445:8:78","nodeType":"VariableDeclaration","scope":21172,"src":"16421:32:78","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":21144,"nodeType":"UserDefinedTypeName","pathNode":{"id":21143,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"16421:16:78"},"referencedDeclaration":5248,"src":"16421:16:78","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"src":"16420:34:78"},"returnParameters":{"id":21150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21149,"mutability":"mutable","name":"riskpool","nameLocation":"16488:8:78","nodeType":"VariableDeclaration","scope":21172,"src":"16478:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":21148,"nodeType":"UserDefinedTypeName","pathNode":{"id":21147,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"16478:9:78"},"referencedDeclaration":3312,"src":"16478:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"src":"16477:20:78"},"scope":21207,"src":"16390:314:78","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":21205,"nodeType":"Block","src":"16800:214:78","statements":[{"expression":{"arguments":[{"arguments":[{"id":21183,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21174,"src":"16840:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21181,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"16818:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"16818:21:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":21184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16818:33:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a504f4c2d3034363a434f4d504f4e454e545f4e4f545f5249534b504f4f4c","id":21185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16853:38:78","typeDescriptions":{"typeIdentifier":"t_stringliteral_60fd20f0722035656a7179233af7d61a35ed3b471c51ffeacda2e26bd0b3e1fc","typeString":"literal_string \"ERROR:POL-046:COMPONENT_NOT_RISKPOOL\""},"value":"ERROR:POL-046:COMPONENT_NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_60fd20f0722035656a7179233af7d61a35ed3b471c51ffeacda2e26bd0b3e1fc","typeString":"literal_string \"ERROR:POL-046:COMPONENT_NOT_RISKPOOL\""}],"id":21180,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16810:7:78","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16810:82:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21187,"nodeType":"ExpressionStatement","src":"16810:82:78"},{"assignments":[21190],"declarations":[{"constant":false,"id":21190,"mutability":"mutable","name":"cmp","nameLocation":"16922:3:78","nodeType":"VariableDeclaration","scope":21205,"src":"16911:14:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":21189,"nodeType":"UserDefinedTypeName","pathNode":{"id":21188,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"16911:10:78"},"referencedDeclaration":2988,"src":"16911:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":21195,"initialValue":{"arguments":[{"id":21193,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21174,"src":"16952:10:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21191,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20034,"src":"16928:10:78","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"16928:23:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":21194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16928:35:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"16911:52:78"},{"expression":{"id":21203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21196,"name":"riskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21178,"src":"16973:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":21200,"name":"cmp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21190,"src":"17002:3:78","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":21199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16994:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21198,"name":"address","nodeType":"ElementaryTypeName","src":"16994:7:78","typeDescriptions":{}}},"id":21201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16994:12:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21197,"name":"IRiskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3312,"src":"16984:9:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskpool_$3312_$","typeString":"type(contract IRiskpool)"}},"id":21202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16984:23:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"src":"16973:34:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"id":21204,"nodeType":"ExpressionStatement","src":"16973:34:78"}]},"id":21206,"implemented":true,"kind":"function","modifiers":[],"name":"_getRiskpoolForId","nameLocation":"16719:17:78","nodeType":"FunctionDefinition","parameters":{"id":21175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21174,"mutability":"mutable","name":"riskpoolId","nameLocation":"16745:10:78","nodeType":"VariableDeclaration","scope":21206,"src":"16737:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21173,"name":"uint256","nodeType":"ElementaryTypeName","src":"16737:7:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16736:20:78"},"returnParameters":{"id":21179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21178,"mutability":"mutable","name":"riskpool","nameLocation":"16790:8:78","nodeType":"VariableDeclaration","scope":21206,"src":"16780:18:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"},"typeName":{"id":21177,"nodeType":"UserDefinedTypeName","pathNode":{"id":21176,"name":"IRiskpool","nodeType":"IdentifierPath","referencedDeclaration":3312,"src":"16780:9:78"},"referencedDeclaration":3312,"src":"16780:9:78","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpool_$3312","typeString":"contract IRiskpool"}},"visibility":"internal"}],"src":"16779:20:78"},"scope":21207,"src":"16710:304:78","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":21208,"src":"2976:14040:78"}],"src":"39:16978:78"},"id":78},"contracts/modules/QueryModule.sol":{"ast":{"absolutePath":"contracts/modules/QueryModule.sol","exportedSymbols":{"Address":[10496],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IQuery":[5616],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"QueryModule":[21595]},"id":21596,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":21209,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:79"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"./ComponentController.sol","id":21210,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":17948,"src":"63:35:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":21211,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":26414,"src":"99:38:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":21212,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":2989,"src":"139:69:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IOracle.sol","file":"@etherisc/gif-interface/contracts/components/IOracle.sol","id":21213,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":3023,"src":"209:66:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IQuery.sol","file":"@etherisc/gif-interface/contracts/modules/IQuery.sol","id":21214,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":5617,"src":"276:62:79","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","id":21215,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":21596,"sourceUnit":6510,"src":"339:73:79","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21217,"name":"IQuery","nodeType":"IdentifierPath","referencedDeclaration":5616,"src":"3303:6:79"},"id":21218,"nodeType":"InheritanceSpecifier","src":"3303:6:79"},{"baseName":{"id":21219,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"3316:14:79"},"id":21220,"nodeType":"InheritanceSpecifier","src":"3316:14:79"}],"contractDependencies":[5616,8059,10518,26413],"contractKind":"contract","documentation":{"id":21216,"nodeType":"StructuredDocumentation","src":"414:2857:79","text":"The smart contract implements the \"IQuery\" interface and extends the \"CoreController\" contract.\nThe contract imports several external contracts from the \"etherisc/gif-interface\" repository, including \"IComponent.sol\", \"IOracle.sol\", \"IQuery.sol\", and \"IInstanceService.sol\".\nIt also imports two local contracts, \"ComponentController.sol\" and \"CoreController.sol\".\nThe contract defines a private variable `_component` of type \"ComponentController\" and an array `_oracleRequests` of type \"OracleRequest[]\".\nThe contract includes two modifiers:\n1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the \"OracleService\" contract address stored in the CoreController.\n2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`.\nThe contract provides the following functions:\n- `_afterInitialize()`: Sets the `_component` variable to the address of the \"ComponentController\" contract. It is called after contract initialization and only during the initialization phase.\n- `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the \"Query\" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event.\n- `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the \"OracleService\" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event.\n- `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the \"Query\" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event.\n- `getProcessId()`: Returns the process ID associated with a given `requestId`.\n- `getOracleRequestCount()`: Returns the number of oracle requests made.\n- `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component.\nThe contract emits the following events:\n1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID.\n2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status.\n3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID."},"fullyImplemented":true,"id":21595,"linearizedBaseContracts":[21595,26413,8059,10518,5616],"name":"QueryModule","nameLocation":"3283:11:79","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":21223,"mutability":"mutable","name":"_component","nameLocation":"3365:10:79","nodeType":"VariableDeclaration","scope":21595,"src":"3337:38:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":21222,"nodeType":"UserDefinedTypeName","pathNode":{"id":21221,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"3337:19:79"},"referencedDeclaration":17947,"src":"3337:19:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"constant":false,"id":21227,"mutability":"mutable","name":"_oracleRequests","nameLocation":"3405:15:79","nodeType":"VariableDeclaration","scope":21595,"src":"3381:39:79","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest[]"},"typeName":{"baseType":{"id":21225,"nodeType":"UserDefinedTypeName","pathNode":{"id":21224,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"3381:13:79"},"referencedDeclaration":5564,"src":"3381:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"id":21226,"nodeType":"ArrayTypeName","src":"3381:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage_ptr","typeString":"struct IQuery.OracleRequest[]"}},"visibility":"private"},{"body":{"id":21240,"nodeType":"Block","src":"3456:159:79","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":21230,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3487:10:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3487:12:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"4f7261636c6553657276696365","id":21233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3523:15:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""},"value":"OracleService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""}],"id":21232,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3503:19:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":21234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3503:36:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3487:52:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352432d3030313a4e4f545f4f5241434c455f53455256494345","id":21236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3553:34:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_b09558737285c53e42f0cbb18d7098ce341b428cc4a700a20d5110ababfaf7a6","typeString":"literal_string \"ERROR:CRC-001:NOT_ORACLE_SERVICE\""},"value":"ERROR:CRC-001:NOT_ORACLE_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b09558737285c53e42f0cbb18d7098ce341b428cc4a700a20d5110ababfaf7a6","typeString":"literal_string \"ERROR:CRC-001:NOT_ORACLE_SERVICE\""}],"id":21229,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3466:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3466:131:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21238,"nodeType":"ExpressionStatement","src":"3466:131:79"},{"id":21239,"nodeType":"PlaceholderStatement","src":"3607:1:79"}]},"id":21241,"name":"onlyOracleService","nameLocation":"3436:17:79","nodeType":"ModifierDefinition","parameters":{"id":21228,"nodeType":"ParameterList","parameters":[],"src":"3453:2:79"},"src":"3427:188:79","virtual":false,"visibility":"internal"},{"body":{"id":21284,"nodeType":"Block","src":"3690:453:79","statements":[{"assignments":[21249],"declarations":[{"constant":false,"id":21249,"mutability":"mutable","name":"oracleRequest","nameLocation":"3721:13:79","nodeType":"VariableDeclaration","scope":21284,"src":"3700:34:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest"},"typeName":{"id":21248,"nodeType":"UserDefinedTypeName","pathNode":{"id":21247,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"3700:13:79"},"referencedDeclaration":5564,"src":"3700:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"visibility":"internal"}],"id":21253,"initialValue":{"baseExpression":{"id":21250,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"3737:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21252,"indexExpression":{"id":21251,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21243,"src":"3753:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3737:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3700:63:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21255,"name":"oracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21249,"src":"3795:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest memory"}},"id":21256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5563,"src":"3795:23:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3821:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3795:27:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3030323a524551554553545f49445f494e56414c4944","id":21259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3836:34:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9911dbe79685a0b4bf01426459429095d797386123a16b8f4eb178ae8660c1c","typeString":"literal_string \"ERROR:QUC-002:REQUEST_ID_INVALID\""},"value":"ERROR:QUC-002:REQUEST_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f9911dbe79685a0b4bf01426459429095d797386123a16b8f4eb178ae8660c1c","typeString":"literal_string \"ERROR:QUC-002:REQUEST_ID_INVALID\""}],"id":21254,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"3774:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3774:106:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21261,"nodeType":"ExpressionStatement","src":"3774:106:79"},{"assignments":[21263],"declarations":[{"constant":false,"id":21263,"mutability":"mutable","name":"oracleId","nameLocation":"3899:8:79","nodeType":"VariableDeclaration","scope":21284,"src":"3891:16:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21262,"name":"uint256","nodeType":"ElementaryTypeName","src":"3891:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21266,"initialValue":{"expression":{"id":21264,"name":"oracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21249,"src":"3910:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest memory"}},"id":21265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"responsibleOracleId","nodeType":"MemberAccess","referencedDeclaration":5555,"src":"3910:33:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3891:52:79"},{"assignments":[21268],"declarations":[{"constant":false,"id":21268,"mutability":"mutable","name":"oracleAddress","nameLocation":"3961:13:79","nodeType":"VariableDeclaration","scope":21284,"src":"3953:21:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21267,"name":"address","nodeType":"ElementaryTypeName","src":"3953:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":21275,"initialValue":{"arguments":[{"arguments":[{"id":21272,"name":"oracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21263,"src":"3996:8:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21271,"name":"_getOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21594,"src":"3985:10:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IOracle_$3022_$","typeString":"function (uint256) view returns (contract IOracle)"}},"id":21273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3985:20:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}],"id":21270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3977:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21269,"name":"address","nodeType":"ElementaryTypeName","src":"3977:7:79","typeDescriptions":{}}},"id":21274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3977:29:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3953:53:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21277,"name":"oracleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21268,"src":"4037:13:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":21278,"name":"responder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21245,"src":"4054:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4037:26:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3030333a4f5241434c455f4e4f545f524553504f4e5349424c45","id":21280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4077:38:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_79c2419dd3836252a491e5fd1368db9c3868a0e1853d9bbe27ed6a8000a2b07d","typeString":"literal_string \"ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE\""},"value":"ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_79c2419dd3836252a491e5fd1368db9c3868a0e1853d9bbe27ed6a8000a2b07d","typeString":"literal_string \"ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE\""}],"id":21276,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4016:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4016:109:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21282,"nodeType":"ExpressionStatement","src":"4016:109:79"},{"id":21283,"nodeType":"PlaceholderStatement","src":"4135:1:79"}]},"id":21285,"name":"onlyResponsibleOracle","nameLocation":"3630:21:79","nodeType":"ModifierDefinition","parameters":{"id":21246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21243,"mutability":"mutable","name":"requestId","nameLocation":"3660:9:79","nodeType":"VariableDeclaration","scope":21285,"src":"3652:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21242,"name":"uint256","nodeType":"ElementaryTypeName","src":"3652:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21245,"mutability":"mutable","name":"responder","nameLocation":"3679:9:79","nodeType":"VariableDeclaration","scope":21285,"src":"3671:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21244,"name":"address","nodeType":"ElementaryTypeName","src":"3671:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3651:38:79"},"src":"3621:522:79","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":21299,"nodeType":"Block","src":"4212:83:79","statements":[{"expression":{"id":21297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21291,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"4222:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":21294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4275:11:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":21293,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4255:19:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":21295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4255:32:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21292,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"4235:19:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":21296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4235:53:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"4222:66:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21298,"nodeType":"ExpressionStatement","src":"4222:66:79"}]},"id":21300,"implemented":true,"kind":"function","modifiers":[{"id":21289,"modifierName":{"id":21288,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"4195:16:79"},"nodeType":"ModifierInvocation","src":"4195:16:79"}],"name":"_afterInitialize","nameLocation":"4158:16:79","nodeType":"FunctionDefinition","overrides":{"id":21287,"nodeType":"OverrideSpecifier","overrides":[],"src":"4186:8:79"},"parameters":{"id":21286,"nodeType":"ParameterList","parameters":[],"src":"4174:2:79"},"returnParameters":{"id":21290,"nodeType":"ParameterList","parameters":[],"src":"4212:0:79"},"scope":21595,"src":"4149:146:79","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5601],"body":{"id":21402,"nodeType":"Block","src":"4826:891:79","statements":[{"assignments":[21320],"declarations":[{"constant":false,"id":21320,"mutability":"mutable","name":"componentId","nameLocation":"4844:11:79","nodeType":"VariableDeclaration","scope":21402,"src":"4836:19:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21319,"name":"uint256","nodeType":"ElementaryTypeName","src":"4836:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21325,"initialValue":{"arguments":[{"id":21323,"name":"callbackContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21308,"src":"4884:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21321,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"4858:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"4858:25:79","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":21324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4858:50:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4836:72:79"},{"expression":{"arguments":[{"arguments":[{"id":21329,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21320,"src":"4960:11:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21327,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"4939:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"4939:20:79","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":21330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4939:33:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3031303a43414c4c4241434b5f414444524553535f49535f4e4f545f50524f44554354","id":21331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4986:47:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_37bddfa86d88e5af8c7eccd224ca962e184394ace054b6f62464e40201ad9c08","typeString":"literal_string \"ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT\""},"value":"ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_37bddfa86d88e5af8c7eccd224ca962e184394ace054b6f62464e40201ad9c08","typeString":"literal_string \"ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT\""}],"id":21326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4918:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4918:125:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21333,"nodeType":"ExpressionStatement","src":"4918:125:79"},{"expression":{"id":21337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21334,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21317,"src":"5062:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":21335,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"5074:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"5074:22:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5062:34:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21338,"nodeType":"ExpressionStatement","src":"5062:34:79"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":21339,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"5106:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"5106:20:79","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage_ptr_$returns$_t_struct$_OracleRequest_$5564_storage_$bound_to$_t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage_ptr_$","typeString":"function (struct IQuery.OracleRequest storage ref[] storage pointer) returns (struct IQuery.OracleRequest storage ref)"}},"id":21342,"isConstant":false,"isLValue":true,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5106:22:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"id":21343,"nodeType":"ExpressionStatement","src":"5106:22:79"},{"assignments":[21346],"declarations":[{"constant":false,"id":21346,"mutability":"mutable","name":"req","nameLocation":"5202:3:79","nodeType":"VariableDeclaration","scope":21402,"src":"5180:25:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"},"typeName":{"id":21345,"nodeType":"UserDefinedTypeName","pathNode":{"id":21344,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"5180:13:79"},"referencedDeclaration":5564,"src":"5180:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"visibility":"internal"}],"id":21350,"initialValue":{"baseExpression":{"id":21347,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"5208:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21349,"indexExpression":{"id":21348,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21317,"src":"5224:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5208:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5180:54:79"},{"expression":{"id":21355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21351,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5244:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"processId","nodeType":"MemberAccess","referencedDeclaration":5553,"src":"5244:13:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21354,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21302,"src":"5260:9:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5244:25:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":21356,"nodeType":"ExpressionStatement","src":"5244:25:79"},{"expression":{"id":21361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21357,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5279:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":5561,"src":"5279:8:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21360,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21304,"src":"5290:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"5279:16:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":21362,"nodeType":"ExpressionStatement","src":"5279:16:79"},{"expression":{"id":21367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21363,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5305:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbackMethodName","nodeType":"MemberAccess","referencedDeclaration":5559,"src":"5305:22:79","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21366,"name":"callbackMethodName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21306,"src":"5330:18:79","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"5305:43:79","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":21368,"nodeType":"ExpressionStatement","src":"5305:43:79"},{"expression":{"id":21373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21369,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5358:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbackContractAddress","nodeType":"MemberAccess","referencedDeclaration":5557,"src":"5358:27:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21372,"name":"callbackContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21308,"src":"5388:23:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5358:53:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21374,"nodeType":"ExpressionStatement","src":"5358:53:79"},{"expression":{"id":21379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21375,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5421:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"responsibleOracleId","nodeType":"MemberAccess","referencedDeclaration":5555,"src":"5421:23:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21378,"name":"responsibleOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21310,"src":"5447:19:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5421:45:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21380,"nodeType":"ExpressionStatement","src":"5421:45:79"},{"expression":{"id":21386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":21381,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"5476:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5563,"src":"5476:13:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":21384,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"5492:5:79","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"5492:15:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5476:31:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21387,"nodeType":"ExpressionStatement","src":"5476:31:79"},{"expression":{"arguments":[{"id":21392,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21317,"src":"5595:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21393,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21304,"src":"5618:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":21389,"name":"responsibleOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21310,"src":"5553:19:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21388,"name":"_getOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21594,"src":"5542:10:79","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IOracle_$3022_$","typeString":"function (uint256) view returns (contract IOracle)"}},"id":21390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5542:31:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}},"id":21391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"request","nodeType":"MemberAccess","referencedDeclaration":3016,"src":"5542:39:79","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":21394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5542:91:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21395,"nodeType":"ExpressionStatement","src":"5542:91:79"},{"eventCall":{"arguments":[{"id":21397,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21302,"src":"5668:9:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21398,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21317,"src":"5679:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21399,"name":"responsibleOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21310,"src":"5690:19:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21396,"name":"LogOracleRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5572,"src":"5649:18:79","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":21400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5649:61:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21401,"nodeType":"EmitStatement","src":"5644:66:79"}]},"functionSelector":"2c933f22","id":21403,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"5175657279","id":21314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4775:7:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"id":21315,"modifierName":{"id":21313,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"4760:14:79"},"nodeType":"ModifierInvocation","src":"4760:23:79"}],"name":"request","nameLocation":"4523:7:79","nodeType":"FunctionDefinition","overrides":{"id":21312,"nodeType":"OverrideSpecifier","overrides":[],"src":"4742:8:79"},"parameters":{"id":21311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21302,"mutability":"mutable","name":"processId","nameLocation":"4548:9:79","nodeType":"VariableDeclaration","scope":21403,"src":"4540:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4540:7:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21304,"mutability":"mutable","name":"input","nameLocation":"4582:5:79","nodeType":"VariableDeclaration","scope":21403,"src":"4567:20:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":21303,"name":"bytes","nodeType":"ElementaryTypeName","src":"4567:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":21306,"mutability":"mutable","name":"callbackMethodName","nameLocation":"4613:18:79","nodeType":"VariableDeclaration","scope":21403,"src":"4597:34:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":21305,"name":"string","nodeType":"ElementaryTypeName","src":"4597:6:79","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21308,"mutability":"mutable","name":"callbackContractAddress","nameLocation":"4649:23:79","nodeType":"VariableDeclaration","scope":21403,"src":"4641:31:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21307,"name":"address","nodeType":"ElementaryTypeName","src":"4641:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21310,"mutability":"mutable","name":"responsibleOracleId","nameLocation":"4690:19:79","nodeType":"VariableDeclaration","scope":21403,"src":"4682:27:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21309,"name":"uint256","nodeType":"ElementaryTypeName","src":"4682:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4530:185:79"},"returnParameters":{"id":21318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21317,"mutability":"mutable","name":"requestId","nameLocation":"4810:9:79","nodeType":"VariableDeclaration","scope":21403,"src":"4802:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21316,"name":"uint256","nodeType":"ElementaryTypeName","src":"4802:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4801:19:79"},"scope":21595,"src":"4514:1203:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5610],"body":{"id":21474,"nodeType":"Block","src":"6217:801:79","statements":[{"assignments":[21421],"declarations":[{"constant":false,"id":21421,"mutability":"mutable","name":"req","nameLocation":"6249:3:79","nodeType":"VariableDeclaration","scope":21474,"src":"6227:25:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"},"typeName":{"id":21420,"nodeType":"UserDefinedTypeName","pathNode":{"id":21419,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"6227:13:79"},"referencedDeclaration":5564,"src":"6227:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"visibility":"internal"}],"id":21425,"initialValue":{"baseExpression":{"id":21422,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"6255:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21424,"indexExpression":{"id":21423,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21405,"src":"6271:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6255:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6227:54:79"},{"assignments":[21427],"declarations":[{"constant":false,"id":21427,"mutability":"mutable","name":"functionSignature","nameLocation":"6305:17:79","nodeType":"VariableDeclaration","scope":21474,"src":"6291:31:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21426,"name":"string","nodeType":"ElementaryTypeName","src":"6291:6:79","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":21437,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":21432,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21421,"src":"6379:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbackMethodName","nodeType":"MemberAccess","referencedDeclaration":5559,"src":"6379:22:79","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"2875696e743235362c627974657333322c627974657329","id":21434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6419:25:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_69789469aba347ea3006333936a8384eb77a6c0f6b3710119647786d588df94c","typeString":"literal_string \"(uint256,bytes32,bytes)\""},"value":"(uint256,bytes32,bytes)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_stringliteral_69789469aba347ea3006333936a8384eb77a6c0f6b3710119647786d588df94c","typeString":"literal_string \"(uint256,bytes32,bytes)\""}],"expression":{"id":21430,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6345:3:79","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"6345:16:79","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":21435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6345:113:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6325:6:79","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":21428,"name":"string","nodeType":"ElementaryTypeName","src":"6325:6:79","typeDescriptions":{}}},"id":21436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6325:134:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"6291:168:79"},{"assignments":[21439],"declarations":[{"constant":false,"id":21439,"mutability":"mutable","name":"processId","nameLocation":"6477:9:79","nodeType":"VariableDeclaration","scope":21474,"src":"6469:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6469:7:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":21442,"initialValue":{"expression":{"id":21440,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21421,"src":"6489:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"processId","nodeType":"MemberAccess","referencedDeclaration":5553,"src":"6489:13:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6469:33:79"},{"assignments":[21444,null],"declarations":[{"constant":false,"id":21444,"mutability":"mutable","name":"success","nameLocation":"6519:7:79","nodeType":"VariableDeclaration","scope":21474,"src":"6514:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21443,"name":"bool","nodeType":"ElementaryTypeName","src":"6514:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":21456,"initialValue":{"arguments":[{"arguments":[{"id":21450,"name":"functionSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21427,"src":"6639:17:79","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21451,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21405,"src":"6678:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21452,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21439,"src":"6709:9:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21453,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21409,"src":"6740:4:79","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":21448,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6594:3:79","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6594:23:79","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6594:168:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":21445,"name":"req","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21421,"src":"6544:3:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbackContractAddress","nodeType":"MemberAccess","referencedDeclaration":5557,"src":"6544:27:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"6544:32:79","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":21455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6544:232:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6513:263:79"},{"expression":{"arguments":[{"id":21458,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21444,"src":"6795:7:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3032303a50524f445543545f43414c4c4241434b5f554e5355434345535346554c","id":21459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6804:45:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2f7aff00631a903459db5e8faa0ab3073999f8b7c86b53a3df8a9ddbd8d8350","typeString":"literal_string \"ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL\""},"value":"ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d2f7aff00631a903459db5e8faa0ab3073999f8b7c86b53a3df8a9ddbd8d8350","typeString":"literal_string \"ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL\""}],"id":21457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6787:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6787:63:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21461,"nodeType":"ExpressionStatement","src":"6787:63:79"},{"expression":{"id":21465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6860:33:79","subExpression":{"baseExpression":{"id":21462,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"6867:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21464,"indexExpression":{"id":21463,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21405,"src":"6883:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6867:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21466,"nodeType":"ExpressionStatement","src":"6860:33:79"},{"eventCall":{"arguments":[{"id":21468,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21439,"src":"6970:9:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21469,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21405,"src":"6981:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21470,"name":"responder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21407,"src":"6992:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21471,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21444,"src":"7003:7:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":21467,"name":"LogOracleResponded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5582,"src":"6951:18:79","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_bool_$returns$__$","typeString":"function (bytes32,uint256,address,bool)"}},"id":21472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6951:60:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21473,"nodeType":"EmitStatement","src":"6946:65:79"}]},"functionSelector":"9af8c4ba","id":21475,"implemented":true,"kind":"function","modifiers":[{"id":21413,"modifierName":{"id":21412,"name":"onlyOracleService","nodeType":"IdentifierPath","referencedDeclaration":21241,"src":"6141:17:79"},"nodeType":"ModifierInvocation","src":"6141:17:79"},{"arguments":[{"id":21415,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21405,"src":"6190:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21416,"name":"responder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21407,"src":"6201:9:79","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":21417,"modifierName":{"id":21414,"name":"onlyResponsibleOracle","nodeType":"IdentifierPath","referencedDeclaration":21285,"src":"6168:21:79"},"nodeType":"ModifierInvocation","src":"6168:43:79"}],"name":"respond","nameLocation":"6008:7:79","nodeType":"FunctionDefinition","overrides":{"id":21411,"nodeType":"OverrideSpecifier","overrides":[],"src":"6123:8:79"},"parameters":{"id":21410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21405,"mutability":"mutable","name":"requestId","nameLocation":"6033:9:79","nodeType":"VariableDeclaration","scope":21475,"src":"6025:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21404,"name":"uint256","nodeType":"ElementaryTypeName","src":"6025:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21407,"mutability":"mutable","name":"responder","nameLocation":"6060:9:79","nodeType":"VariableDeclaration","scope":21475,"src":"6052:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21406,"name":"address","nodeType":"ElementaryTypeName","src":"6052:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21409,"mutability":"mutable","name":"data","nameLocation":"6094:4:79","nodeType":"VariableDeclaration","scope":21475,"src":"6079:19:79","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":21408,"name":"bytes","nodeType":"ElementaryTypeName","src":"6079:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6015:89:79"},"returnParameters":{"id":21418,"nodeType":"ParameterList","parameters":[],"src":"6217:0:79"},"scope":21595,"src":"5999:1019:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5615],"body":{"id":21508,"nodeType":"Block","src":"7124:249:79","statements":[{"assignments":[21486],"declarations":[{"constant":false,"id":21486,"mutability":"mutable","name":"oracleRequest","nameLocation":"7156:13:79","nodeType":"VariableDeclaration","scope":21508,"src":"7134:35:79","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"},"typeName":{"id":21485,"nodeType":"UserDefinedTypeName","pathNode":{"id":21484,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"7134:13:79"},"referencedDeclaration":5564,"src":"7134:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"visibility":"internal"}],"id":21490,"initialValue":{"baseExpression":{"id":21487,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"7172:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21489,"indexExpression":{"id":21488,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21477,"src":"7188:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7172:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7134:64:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21492,"name":"oracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21486,"src":"7216:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest storage pointer"}},"id":21493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5563,"src":"7216:23:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7242:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7216:27:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3033303a524551554553545f49445f494e56414c4944","id":21496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7245:34:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_774daad1cbf28a623c1273bcf077e47a159a045263db1d1d1a81c1c69daed74c","typeString":"literal_string \"ERROR:QUC-030:REQUEST_ID_INVALID\""},"value":"ERROR:QUC-030:REQUEST_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_774daad1cbf28a623c1273bcf077e47a159a045263db1d1d1a81c1c69daed74c","typeString":"literal_string \"ERROR:QUC-030:REQUEST_ID_INVALID\""}],"id":21491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7208:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7208:72:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21498,"nodeType":"ExpressionStatement","src":"7208:72:79"},{"expression":{"id":21502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"7290:33:79","subExpression":{"baseExpression":{"id":21499,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"7297:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21501,"indexExpression":{"id":21500,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21477,"src":"7313:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7297:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21503,"nodeType":"ExpressionStatement","src":"7290:33:79"},{"eventCall":{"arguments":[{"id":21505,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21477,"src":"7356:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":21504,"name":"LogOracleCanceled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5586,"src":"7338:17:79","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":21506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7338:28:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21507,"nodeType":"EmitStatement","src":"7333:33:79"}]},"functionSelector":"40e58ee5","id":21509,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"5175657279","id":21481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7110:7:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"id":21482,"modifierName":{"id":21480,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"7095:14:79"},"nodeType":"ModifierInvocation","src":"7095:23:79"}],"name":"cancel","nameLocation":"7033:6:79","nodeType":"FunctionDefinition","overrides":{"id":21479,"nodeType":"OverrideSpecifier","overrides":[],"src":"7077:8:79"},"parameters":{"id":21478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21477,"mutability":"mutable","name":"requestId","nameLocation":"7048:9:79","nodeType":"VariableDeclaration","scope":21509,"src":"7040:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21476,"name":"uint256","nodeType":"ElementaryTypeName","src":"7040:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7039:19:79"},"returnParameters":{"id":21483,"nodeType":"ParameterList","parameters":[],"src":"7124:0:79"},"scope":21595,"src":"7024:349:79","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":21534,"nodeType":"Block","src":"7490:202:79","statements":[{"assignments":[21518],"declarations":[{"constant":false,"id":21518,"mutability":"mutable","name":"oracleRequest","nameLocation":"7521:13:79","nodeType":"VariableDeclaration","scope":21534,"src":"7500:34:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest"},"typeName":{"id":21517,"nodeType":"UserDefinedTypeName","pathNode":{"id":21516,"name":"OracleRequest","nodeType":"IdentifierPath","referencedDeclaration":5564,"src":"7500:13:79"},"referencedDeclaration":5564,"src":"7500:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage_ptr","typeString":"struct IQuery.OracleRequest"}},"visibility":"internal"}],"id":21522,"initialValue":{"baseExpression":{"id":21519,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"7537:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21521,"indexExpression":{"id":21520,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21511,"src":"7553:9:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7537:26:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_storage","typeString":"struct IQuery.OracleRequest storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7500:63:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":21524,"name":"oracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21518,"src":"7581:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest memory"}},"id":21525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5563,"src":"7581:23:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7607:1:79","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7581:27:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3034303a524551554553545f49445f494e56414c4944","id":21528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7610:34:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_988f80e03fa488be4da0a6e0b159af5f52d5707b3995562df14a79cc9e3d2889","typeString":"literal_string \"ERROR:QUC-040:REQUEST_ID_INVALID\""},"value":"ERROR:QUC-040:REQUEST_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_988f80e03fa488be4da0a6e0b159af5f52d5707b3995562df14a79cc9e3d2889","typeString":"literal_string \"ERROR:QUC-040:REQUEST_ID_INVALID\""}],"id":21523,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7573:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7573:72:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21530,"nodeType":"ExpressionStatement","src":"7573:72:79"},{"expression":{"expression":{"id":21531,"name":"oracleRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21518,"src":"7662:13:79","typeDescriptions":{"typeIdentifier":"t_struct$_OracleRequest_$5564_memory_ptr","typeString":"struct IQuery.OracleRequest memory"}},"id":21532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"processId","nodeType":"MemberAccess","referencedDeclaration":5553,"src":"7662:23:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":21515,"id":21533,"nodeType":"Return","src":"7655:30:79"}]},"functionSelector":"9b04ed30","id":21535,"implemented":true,"kind":"function","modifiers":[],"name":"getProcessId","nameLocation":"7389:12:79","nodeType":"FunctionDefinition","parameters":{"id":21512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21511,"mutability":"mutable","name":"requestId","nameLocation":"7410:9:79","nodeType":"VariableDeclaration","scope":21535,"src":"7402:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21510,"name":"uint256","nodeType":"ElementaryTypeName","src":"7402:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7401:19:79"},"returnParameters":{"id":21515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21514,"mutability":"mutable","name":"processId","nameLocation":"7475:9:79","nodeType":"VariableDeclaration","scope":21535,"src":"7467:17:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7467:7:79","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7466:19:79"},"scope":21595,"src":"7380:312:79","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21543,"nodeType":"Block","src":"7769:46:79","statements":[{"expression":{"expression":{"id":21540,"name":"_oracleRequests","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21227,"src":"7786:15:79","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_OracleRequest_$5564_storage_$dyn_storage","typeString":"struct IQuery.OracleRequest storage ref[] storage ref"}},"id":21541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7786:22:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":21539,"id":21542,"nodeType":"Return","src":"7779:29:79"}]},"functionSelector":"38aec7cc","id":21544,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleRequestCount","nameLocation":"7708:21:79","nodeType":"FunctionDefinition","parameters":{"id":21536,"nodeType":"ParameterList","parameters":[],"src":"7729:2:79"},"returnParameters":{"id":21539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21538,"mutability":"mutable","name":"_count","nameLocation":"7761:6:79","nodeType":"VariableDeclaration","scope":21544,"src":"7753:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21537,"name":"uint256","nodeType":"ElementaryTypeName","src":"7753:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7752:16:79"},"scope":21595,"src":"7699:116:79","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":21593,"nodeType":"Block","src":"7892:418:79","statements":[{"assignments":[21554],"declarations":[{"constant":false,"id":21554,"mutability":"mutable","name":"cmp","nameLocation":"7913:3:79","nodeType":"VariableDeclaration","scope":21593,"src":"7902:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":21553,"nodeType":"UserDefinedTypeName","pathNode":{"id":21552,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"7902:10:79"},"referencedDeclaration":2988,"src":"7902:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":21559,"initialValue":{"arguments":[{"id":21557,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21546,"src":"7943:2:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21555,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"7919:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"7919:23:79","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":21558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7919:27:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"7902:44:79"},{"expression":{"id":21567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21560,"name":"oracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21550,"src":"7956:6:79","typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":21564,"name":"cmp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21554,"src":"7981:3:79","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":21563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7973:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":21562,"name":"address","nodeType":"ElementaryTypeName","src":"7973:7:79","typeDescriptions":{}}},"id":21565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7973:12:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21561,"name":"IOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"7965:7:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOracle_$3022_$","typeString":"type(contract IOracle)"}},"id":21566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7965:21:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}},"src":"7956:30:79","typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}},"id":21568,"nodeType":"ExpressionStatement","src":"7956:30:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":21577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":21572,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21546,"src":"8046:2:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21570,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"8018:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"8018:27:79","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":21573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8018:31:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":21574,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"8053:10:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":21575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"8053:24:79","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":21576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Oracle","nodeType":"MemberAccess","referencedDeclaration":2888,"src":"8053:31:79","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"8018:66:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3034313a434f4d504f4e454e545f4e4f545f4f5241434c45","id":21578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8099:36:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_4390b2a7de90bd955cc7d20e4d8918121e4301d01ba56c2d0318a2494be55fcb","typeString":"literal_string \"ERROR:QUC-041:COMPONENT_NOT_ORACLE\""},"value":"ERROR:QUC-041:COMPONENT_NOT_ORACLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4390b2a7de90bd955cc7d20e4d8918121e4301d01ba56c2d0318a2494be55fcb","typeString":"literal_string \"ERROR:QUC-041:COMPONENT_NOT_ORACLE\""}],"id":21569,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7997:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7997:148:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21580,"nodeType":"ExpressionStatement","src":"7997:148:79"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":21589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":21584,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21546,"src":"8206:2:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21582,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21223,"src":"8177:10:79","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":21583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"8177:28:79","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":21585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8177:32:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":21586,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"8213:10:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":21587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"8213:25:79","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":21588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"8213:32:79","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"8177:68:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5155432d3034323a4f5241434c455f4e4f545f414354495645","id":21590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8260:33:79","typeDescriptions":{"typeIdentifier":"t_stringliteral_1effa1aafe7739318f52d8e7636d12568aefa8c489aaee728a51f66427ce3363","typeString":"literal_string \"ERROR:QUC-042:ORACLE_NOT_ACTIVE\""},"value":"ERROR:QUC-042:ORACLE_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1effa1aafe7739318f52d8e7636d12568aefa8c489aaee728a51f66427ce3363","typeString":"literal_string \"ERROR:QUC-042:ORACLE_NOT_ACTIVE\""}],"id":21581,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8156:7:79","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8156:147:79","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21592,"nodeType":"ExpressionStatement","src":"8156:147:79"}]},"id":21594,"implemented":true,"kind":"function","modifiers":[],"name":"_getOracle","nameLocation":"7830:10:79","nodeType":"FunctionDefinition","parameters":{"id":21547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21546,"mutability":"mutable","name":"id","nameLocation":"7849:2:79","nodeType":"VariableDeclaration","scope":21594,"src":"7841:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21545,"name":"uint256","nodeType":"ElementaryTypeName","src":"7841:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7840:12:79"},"returnParameters":{"id":21551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21550,"mutability":"mutable","name":"oracle","nameLocation":"7884:6:79","nodeType":"VariableDeclaration","scope":21594,"src":"7876:14:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"},"typeName":{"id":21549,"nodeType":"UserDefinedTypeName","pathNode":{"id":21548,"name":"IOracle","nodeType":"IdentifierPath","referencedDeclaration":3022,"src":"7876:7:79"},"referencedDeclaration":3022,"src":"7876:7:79","typeDescriptions":{"typeIdentifier":"t_contract$_IOracle_$3022","typeString":"contract IOracle"}},"visibility":"internal"}],"src":"7875:16:79"},"scope":21595,"src":"7821:489:79","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":21596,"src":"3274:5038:79"}],"src":"39:8274:79"},"id":79},"contracts/modules/RegistryController.sol":{"ast":{"absolutePath":"contracts/modules/RegistryController.sol","exportedSymbols":{"Address":[10496],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IRegistry":[5714],"Initializable":[8059],"RegistryController":[22155],"Strings":[10804]},"id":22156,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":21597,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:80"},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":21598,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22156,"sourceUnit":26414,"src":"63:38:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":21599,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22156,"sourceUnit":5715,"src":"103:65:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":21600,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22156,"sourceUnit":8060,"src":"170:63:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","id":21601,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22156,"sourceUnit":10805,"src":"234:51:80","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":21602,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":22156,"sourceUnit":11440,"src":"286:65:80","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":21604,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"3016:9:80"},"id":21605,"nodeType":"InheritanceSpecifier","src":"3016:9:80"},{"baseName":{"id":21606,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"3031:14:80"},"id":21607,"nodeType":"InheritanceSpecifier","src":"3031:14:80"}],"contractDependencies":[5714,8059,10518,26413],"contractKind":"contract","documentation":{"id":21603,"nodeType":"StructuredDocumentation","src":"353:2625:80","text":"The smart contract implements the `IRegistry` interface and inherits from the `CoreController` contract.\nThe contract provides functionality for registering, deregistering, and accessing contracts within different releases. It maintains mappings and sets to store contract names and addresses in different releases.\n- `MAX_CONTRACTS`: A constant variable set to 100, representing the maximum number of contracts allowed in a release.\n- `release`: A bytes32 variable representing the current release identifier.\n- `startBlock`: An unsigned integer storing the block number at which the contract was deployed.\n- `_contracts`: A nested mapping that stores contract addresses based on the release and contract name.\n- `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release.\n- `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release.\nFunctions:\n- `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs.\n- `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release.\n- `getRelease()`: Returns the current release identifier.\n- `getContract()`: Returns the address of a contract by its name in the current release.\n- `register()`: Registers a contract with a given name and address in the current release.\n- `deregister()`: Deregisters a contract from the current release.\n- `getContractInRelease()`: Returns the address of a specific contract within a given release.\n- `registerInRelease()`: Registers a contract in a specific release.\n- `deregisterInRelease()`: Deregisters a contract name from a specific release.\n- `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one.\n- `contracts()`: Returns the number of contracts in the current release.\n- `contractName()`: Returns the name of the contract at the specified index in the contractNames set.\nInternal functions:\n- `_getContractInRelease()`: Returns the address of a contract in a specific release.\n- `_registerInRelease()`: Registers a contract in a release.\n- `_deregisterInRelease()`: Deregisters a contract in a specific release.\nThe contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered.\nOverall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts."},"fullyImplemented":true,"id":22155,"linearizedBaseContracts":[22155,26413,8059,10518,5714],"name":"RegistryController","nameLocation":"2990:18:80","nodeType":"ContractDefinition","nodes":[{"id":21611,"libraryName":{"id":21608,"name":"EnumerableSet","nodeType":"IdentifierPath","referencedDeclaration":11439,"src":"3058:13:80"},"nodeType":"UsingForDirective","src":"3052:49:80","typeName":{"id":21610,"nodeType":"UserDefinedTypeName","pathNode":{"id":21609,"name":"EnumerableSet.Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"3076:24:80"},"referencedDeclaration":11045,"src":"3076:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}}},{"constant":true,"documentation":{"id":21612,"nodeType":"StructuredDocumentation","src":"3107:105:80","text":" @dev Save number of items to iterate through\n Currently we have < 20 contracts."},"functionSelector":"24042a0a","id":21615,"mutability":"constant","name":"MAX_CONTRACTS","nameLocation":"3241:13:80","nodeType":"VariableDeclaration","scope":22155,"src":"3217:43:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21613,"name":"uint256","nodeType":"ElementaryTypeName","src":"3217:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030","id":21614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3257:3:80","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"public"},{"constant":false,"documentation":{"id":21616,"nodeType":"StructuredDocumentation","src":"3267:74:80","text":" @dev Current release\n We use semantic versioning."},"functionSelector":"86d1a69f","id":21618,"mutability":"mutable","name":"release","nameLocation":"3361:7:80","nodeType":"VariableDeclaration","scope":22155,"src":"3346:22:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3346:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"48cd4cb1","id":21620,"mutability":"mutable","name":"startBlock","nameLocation":"3394:10:80","nodeType":"VariableDeclaration","scope":22155,"src":"3379:25:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21619,"name":"uint256","nodeType":"ElementaryTypeName","src":"3379:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"constant":false,"functionSelector":"4a941e5e","id":21626,"mutability":"mutable","name":"_contracts","nameLocation":"3523:10:80","nodeType":"VariableDeclaration","scope":22155,"src":"3411:122:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"},"typeName":{"id":21625,"keyType":{"id":21621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3419:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3411:104:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"},"valueType":{"id":21624,"keyType":{"id":21622,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3452:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3444:70:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":21623,"name":"address","nodeType":"ElementaryTypeName","src":"3483:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"public"},{"constant":false,"functionSelector":"69923515","id":21630,"mutability":"mutable","name":"_contractsInRelease","nameLocation":"3625:19:80","nodeType":"VariableDeclaration","scope":22155,"src":"3539:105:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":21629,"keyType":{"id":21627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3547:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3539:78:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":21628,"name":"uint256","nodeType":"ElementaryTypeName","src":"3572:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"id":21635,"mutability":"mutable","name":"_contractNames","nameLocation":"3738:14:80","nodeType":"VariableDeclaration","scope":22155,"src":"3650:102:80","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set)"},"typeName":{"id":21634,"keyType":{"id":21631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3658:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3650:79:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set)"},"valueType":{"id":21633,"nodeType":"UserDefinedTypeName","pathNode":{"id":21632,"name":"EnumerableSet.Bytes32Set","nodeType":"IdentifierPath","referencedDeclaration":11045,"src":"3683:24:80"},"referencedDeclaration":11045,"src":"3683:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}}},"visibility":"private"},{"body":{"id":21679,"nodeType":"Block","src":"3831:605:80","statements":[{"expression":{"id":21644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21642,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"3883:9:80","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21643,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"3895:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryController_$22155","typeString":"contract RegistryController"}},"src":"3883:16:80","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":21645,"nodeType":"ExpressionStatement","src":"3883:16:80"},{"expression":{"id":21648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21646,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4117:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21647,"name":"_initialRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21637,"src":"4127:15:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4117:25:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":21649,"nodeType":"ExpressionStatement","src":"4117:25:80"},{"expression":{"id":21657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":21650,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"4152:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":21653,"indexExpression":{"id":21651,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4163:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4152:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":21654,"indexExpression":{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":21652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4172:25:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4152:46:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":21655,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4201:10:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":21656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4201:12:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4152:61:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21658,"nodeType":"ExpressionStatement","src":"4152:61:80"},{"expression":{"arguments":[{"baseExpression":{"id":21662,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"4241:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21664,"indexExpression":{"id":21663,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4256:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4241:23:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":21665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4266:25:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"expression":{"id":21659,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"4223:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11063,"src":"4223:17:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":21666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4223:69:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21667,"nodeType":"ExpressionStatement","src":"4223:69:80"},{"expression":{"id":21672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":21668,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"4302:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":21670,"indexExpression":{"id":21669,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4322:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4302:28:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":21671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4333:1:80","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4302:32:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21673,"nodeType":"ExpressionStatement","src":"4302:32:80"},{"expression":{"id":21677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21674,"name":"startBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21620,"src":"4404:10:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":21675,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"4417:5:80","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":21676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","src":"4417:12:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4404:25:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21678,"nodeType":"ExpressionStatement","src":"4404:25:80"}]},"functionSelector":"56bbc19d","id":21680,"implemented":true,"kind":"function","modifiers":[{"id":21640,"modifierName":{"id":21639,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":7979,"src":"3819:11:80"},"nodeType":"ModifierInvocation","src":"3819:11:80"}],"name":"initializeRegistry","nameLocation":"3768:18:80","nodeType":"FunctionDefinition","parameters":{"id":21638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21637,"mutability":"mutable","name":"_initialRelease","nameLocation":"3795:15:80","nodeType":"VariableDeclaration","scope":21680,"src":"3787:23:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21636,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3787:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3786:25:80"},"returnParameters":{"id":21641,"nodeType":"ParameterList","parameters":[],"src":"3831:0:80"},"scope":22155,"src":"3759:677:80","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5701],"body":{"id":21700,"nodeType":"Block","src":"4578:91:80","statements":[{"expression":{"id":21698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21690,"name":"_senderMatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21688,"src":"4588:14:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":21696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21691,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21682,"src":"4606:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":21693,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4638:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21694,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21684,"src":"4647:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21692,"name":"_getContractInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21948,"src":"4616:21:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) view returns (address)"}},"id":21695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4616:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4606:55:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":21697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4605:57:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4588:74:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21699,"nodeType":"ExpressionStatement","src":"4588:74:80"}]},"functionSelector":"2ca65a79","id":21701,"implemented":true,"kind":"function","modifiers":[],"name":"ensureSender","nameLocation":"4451:12:80","nodeType":"FunctionDefinition","overrides":{"id":21686,"nodeType":"OverrideSpecifier","overrides":[],"src":"4526:8:80"},"parameters":{"id":21685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21682,"mutability":"mutable","name":"sender","nameLocation":"4472:6:80","nodeType":"VariableDeclaration","scope":21701,"src":"4464:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21681,"name":"address","nodeType":"ElementaryTypeName","src":"4464:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21684,"mutability":"mutable","name":"_contractName","nameLocation":"4488:13:80","nodeType":"VariableDeclaration","scope":21701,"src":"4480:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4480:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4463:39:80"},"returnParameters":{"id":21689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21688,"mutability":"mutable","name":"_senderMatches","nameLocation":"4557:14:80","nodeType":"VariableDeclaration","scope":21701,"src":"4552:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21687,"name":"bool","nodeType":"ElementaryTypeName","src":"4552:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4551:21:80"},"scope":22155,"src":"4442:227:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5692],"body":{"id":21712,"nodeType":"Block","src":"4818:35:80","statements":[{"expression":{"id":21710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21708,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21706,"src":"4828:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21709,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"4839:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4828:18:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":21711,"nodeType":"ExpressionStatement","src":"4828:18:80"}]},"documentation":{"id":21702,"nodeType":"StructuredDocumentation","src":"4675:43:80","text":" @dev get current release"},"functionSelector":"76b707b7","id":21713,"implemented":true,"kind":"function","modifiers":[],"name":"getRelease","nameLocation":"4732:10:80","nodeType":"FunctionDefinition","overrides":{"id":21704,"nodeType":"OverrideSpecifier","overrides":[],"src":"4763:8:80"},"parameters":{"id":21703,"nodeType":"ParameterList","parameters":[],"src":"4742:2:80"},"returnParameters":{"id":21707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21706,"mutability":"mutable","name":"_release","nameLocation":"4803:8:80","nodeType":"VariableDeclaration","scope":21713,"src":"4795:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4795:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4794:18:80"},"scope":22155,"src":"4723:130:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5687],"body":{"id":21729,"nodeType":"Block","src":"5042:70:80","statements":[{"expression":{"id":21727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21722,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21720,"src":"5052:5:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21724,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"5082:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21725,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21716,"src":"5091:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21723,"name":"_getContractInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21948,"src":"5060:21:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) view returns (address)"}},"id":21726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5060:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5052:53:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21728,"nodeType":"ExpressionStatement","src":"5052:53:80"}]},"documentation":{"id":21714,"nodeType":"StructuredDocumentation","src":"4859:69:80","text":" @dev Get contract's address in the current release"},"functionSelector":"e16c7d98","id":21730,"implemented":true,"kind":"function","modifiers":[],"name":"getContract","nameLocation":"4942:11:80","nodeType":"FunctionDefinition","overrides":{"id":21718,"nodeType":"OverrideSpecifier","overrides":[],"src":"4992:8:80"},"parameters":{"id":21717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21716,"mutability":"mutable","name":"_contractName","nameLocation":"4962:13:80","nodeType":"VariableDeclaration","scope":21730,"src":"4954:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4954:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4953:23:80"},"returnParameters":{"id":21721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21720,"mutability":"mutable","name":"_addr","nameLocation":"5031:5:80","nodeType":"VariableDeclaration","scope":21730,"src":"5023:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21719,"name":"address","nodeType":"ElementaryTypeName","src":"5023:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5022:15:80"},"scope":22155,"src":"4933:179:80","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5654],"body":{"id":21748,"nodeType":"Block","src":"5313:84:80","statements":[{"expression":{"arguments":[{"id":21742,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"5342:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":21743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5351:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":21744,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21733,"src":"5358:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21745,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21735,"src":"5373:16:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":21741,"name":"_registerInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22091,"src":"5323:18:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bool_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,bool,bytes32,address)"}},"id":21746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5323:67:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21747,"nodeType":"ExpressionStatement","src":"5323:67:80"}]},"documentation":{"id":21731,"nodeType":"StructuredDocumentation","src":"5118:64:80","text":" @dev Register contract in the current release"},"functionSelector":"d22057a9","id":21749,"implemented":true,"kind":"function","modifiers":[{"id":21739,"modifierName":{"id":21738,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"5288:20:80"},"nodeType":"ModifierInvocation","src":"5288:20:80"}],"name":"register","nameLocation":"5196:8:80","nodeType":"FunctionDefinition","overrides":{"id":21737,"nodeType":"OverrideSpecifier","overrides":[],"src":"5271:8:80"},"parameters":{"id":21736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21733,"mutability":"mutable","name":"_contractName","nameLocation":"5213:13:80","nodeType":"VariableDeclaration","scope":21749,"src":"5205:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5205:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21735,"mutability":"mutable","name":"_contractAddress","nameLocation":"5236:16:80","nodeType":"VariableDeclaration","scope":21749,"src":"5228:24:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21734,"name":"address","nodeType":"ElementaryTypeName","src":"5228:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5204:49:80"},"returnParameters":{"id":21740,"nodeType":"ParameterList","parameters":[],"src":"5313:0:80"},"scope":22155,"src":"5187:210:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5666],"body":{"id":21763,"nodeType":"Block","src":"5579:61:80","statements":[{"expression":{"arguments":[{"id":21759,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"5610:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21760,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21752,"src":"5619:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21758,"name":"_deregisterInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22154,"src":"5589:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":21761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5589:44:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21762,"nodeType":"ExpressionStatement","src":"5589:44:80"}]},"documentation":{"id":21750,"nodeType":"StructuredDocumentation","src":"5403:66:80","text":" @dev Deregister contract in the current release"},"functionSelector":"20813154","id":21764,"implemented":true,"kind":"function","modifiers":[{"id":21756,"modifierName":{"id":21755,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"5553:20:80"},"nodeType":"ModifierInvocation","src":"5553:20:80"}],"name":"deregister","nameLocation":"5483:10:80","nodeType":"FunctionDefinition","overrides":{"id":21754,"nodeType":"OverrideSpecifier","overrides":[],"src":"5535:8:80"},"parameters":{"id":21753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21752,"mutability":"mutable","name":"_contractName","nameLocation":"5502:13:80","nodeType":"VariableDeclaration","scope":21764,"src":"5494:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5494:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5493:23:80"},"returnParameters":{"id":21757,"nodeType":"ParameterList","parameters":[],"src":"5579:0:80"},"scope":22155,"src":"5474:166:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5680],"body":{"id":21782,"nodeType":"Block","src":"5854:71:80","statements":[{"expression":{"id":21780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21775,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21773,"src":"5864:5:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":21777,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21767,"src":"5894:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21778,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21769,"src":"5904:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21776,"name":"_getContractInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21948,"src":"5872:21:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) view returns (address)"}},"id":21779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5872:46:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5864:54:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21781,"nodeType":"ExpressionStatement","src":"5864:54:80"}]},"documentation":{"id":21765,"nodeType":"StructuredDocumentation","src":"5646:65:80","text":" @dev Get contract's address in certain release"},"functionSelector":"b0ef18a0","id":21783,"implemented":true,"kind":"function","modifiers":[],"name":"getContractInRelease","nameLocation":"5725:20:80","nodeType":"FunctionDefinition","overrides":{"id":21771,"nodeType":"OverrideSpecifier","overrides":[],"src":"5804:8:80"},"parameters":{"id":21770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21767,"mutability":"mutable","name":"_release","nameLocation":"5754:8:80","nodeType":"VariableDeclaration","scope":21783,"src":"5746:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5746:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21769,"mutability":"mutable","name":"_contractName","nameLocation":"5772:13:80","nodeType":"VariableDeclaration","scope":21783,"src":"5764:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5764:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5745:41:80"},"returnParameters":{"id":21774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21773,"mutability":"mutable","name":"_addr","nameLocation":"5843:5:80","nodeType":"VariableDeclaration","scope":21783,"src":"5835:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21772,"name":"address","nodeType":"ElementaryTypeName","src":"5835:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5834:15:80"},"scope":22155,"src":"5716:209:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5647],"body":{"id":21803,"nodeType":"Block","src":"6152:85:80","statements":[{"expression":{"arguments":[{"id":21797,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21786,"src":"6181:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":21798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6191:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":21799,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21788,"src":"6198:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21800,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21790,"src":"6213:16:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":21796,"name":"_registerInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22091,"src":"6162:18:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bool_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,bool,bytes32,address)"}},"id":21801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6162:68:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21802,"nodeType":"ExpressionStatement","src":"6162:68:80"}]},"documentation":{"id":21784,"nodeType":"StructuredDocumentation","src":"5931:60:80","text":" @dev Register contract in certain release"},"functionSelector":"1d5e7314","id":21804,"implemented":true,"kind":"function","modifiers":[{"id":21794,"modifierName":{"id":21793,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6127:20:80"},"nodeType":"ModifierInvocation","src":"6127:20:80"}],"name":"registerInRelease","nameLocation":"6005:17:80","nodeType":"FunctionDefinition","overrides":{"id":21792,"nodeType":"OverrideSpecifier","overrides":[],"src":"6109:8:80"},"parameters":{"id":21791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21786,"mutability":"mutable","name":"_release","nameLocation":"6031:8:80","nodeType":"VariableDeclaration","scope":21804,"src":"6023:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6023:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21788,"mutability":"mutable","name":"_contractName","nameLocation":"6049:13:80","nodeType":"VariableDeclaration","scope":21804,"src":"6041:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6041:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21790,"mutability":"mutable","name":"_contractAddress","nameLocation":"6072:16:80","nodeType":"VariableDeclaration","scope":21804,"src":"6064:24:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21789,"name":"address","nodeType":"ElementaryTypeName","src":"6064:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6022:67:80"},"returnParameters":{"id":21795,"nodeType":"ParameterList","parameters":[],"src":"6152:0:80"},"scope":22155,"src":"5996:241:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5661],"body":{"id":21819,"nodeType":"Block","src":"6372:62:80","statements":[{"expression":{"arguments":[{"id":21815,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21806,"src":"6403:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":21816,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21808,"src":"6413:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21814,"name":"_deregisterInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22154,"src":"6382:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":21817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6382:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21818,"nodeType":"ExpressionStatement","src":"6382:45:80"}]},"functionSelector":"dc527b08","id":21820,"implemented":true,"kind":"function","modifiers":[{"id":21812,"modifierName":{"id":21811,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6347:20:80"},"nodeType":"ModifierInvocation","src":"6347:20:80"}],"name":"deregisterInRelease","nameLocation":"6252:19:80","nodeType":"FunctionDefinition","overrides":{"id":21810,"nodeType":"OverrideSpecifier","overrides":[],"src":"6330:8:80"},"parameters":{"id":21809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21806,"mutability":"mutable","name":"_release","nameLocation":"6280:8:80","nodeType":"VariableDeclaration","scope":21820,"src":"6272:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6272:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21808,"mutability":"mutable","name":"_contractName","nameLocation":"6298:13:80","nodeType":"VariableDeclaration","scope":21820,"src":"6290:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6290:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6271:41:80"},"returnParameters":{"id":21813,"nodeType":"ParameterList","parameters":[],"src":"6372:0:80"},"scope":22155,"src":"6243:191:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5671],"body":{"id":21893,"nodeType":"Block","src":"6632:698:80","statements":[{"assignments":[21830],"declarations":[{"constant":false,"id":21830,"mutability":"mutable","name":"countContracts","nameLocation":"6650:14:80","nodeType":"VariableDeclaration","scope":21893,"src":"6642:22:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21829,"name":"uint256","nodeType":"ElementaryTypeName","src":"6642:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21834,"initialValue":{"baseExpression":{"id":21831,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"6667:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":21833,"indexExpression":{"id":21832,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"6687:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6667:28:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6642:53:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21836,"name":"countContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21830,"src":"6714:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6731:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6714:18:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3030313a454d5054595f52454c45415345","id":21839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6734:29:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd","typeString":"literal_string \"ERROR:REC-001:EMPTY_RELEASE\""},"value":"ERROR:REC-001:EMPTY_RELEASE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd","typeString":"literal_string \"ERROR:REC-001:EMPTY_RELEASE\""}],"id":21835,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6706:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6706:58:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21841,"nodeType":"ExpressionStatement","src":"6706:58:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":21843,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"6795:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":21845,"indexExpression":{"id":21844,"name":"_newRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21823,"src":"6815:11:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6795:32:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":21846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6831:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6795:37:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d505459","id":21848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6846:37:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59","typeString":"literal_string \"ERROR:REC-002:NEW_RELEASE_NOT_EMPTY\""},"value":"ERROR:REC-002:NEW_RELEASE_NOT_EMPTY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59","typeString":"literal_string \"ERROR:REC-002:NEW_RELEASE_NOT_EMPTY\""}],"id":21842,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6774:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6774:119:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21850,"nodeType":"ExpressionStatement","src":"6774:119:80"},{"body":{"id":21883,"nodeType":"Block","src":"7003:246:80","statements":[{"assignments":[21863],"declarations":[{"constant":false,"id":21863,"mutability":"mutable","name":"name","nameLocation":"7025:4:80","nodeType":"VariableDeclaration","scope":21883,"src":"7017:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21862,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7017:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":21871,"initialValue":{"arguments":[{"baseExpression":{"id":21866,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"7049:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21868,"indexExpression":{"id":21867,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7064:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7049:23:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":21869,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21852,"src":"7074:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21864,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"7032:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11132,"src":"7032:16:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":21870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7032:44:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7017:59:80"},{"expression":{"arguments":[{"id":21873,"name":"_newRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21823,"src":"7126:11:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":21874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7155:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":21875,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21863,"src":"7177:4:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"baseExpression":{"id":21876,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"7199:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":21878,"indexExpression":{"id":21877,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7210:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7199:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":21880,"indexExpression":{"id":21879,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21863,"src":"7219:4:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7199:25:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":21872,"name":"_registerInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22091,"src":"7090:18:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bool_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,bool,bytes32,address)"}},"id":21881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7090:148:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21882,"nodeType":"ExpressionStatement","src":"7090:148:80"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21852,"src":"6975:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":21856,"name":"countContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21830,"src":"6979:14:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6975:18:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":21884,"initializationExpression":{"assignments":[21852],"declarations":[{"constant":false,"id":21852,"mutability":"mutable","name":"i","nameLocation":"6968:1:80","nodeType":"VariableDeclaration","scope":21884,"src":"6960:9:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21851,"name":"uint256","nodeType":"ElementaryTypeName","src":"6960:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":21854,"initialValue":{"hexValue":"30","id":21853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6972:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6960:13:80"},"loopExpression":{"expression":{"id":21860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21858,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21852,"src":"6995:1:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":21859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7000:1:80","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6995:6:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21861,"nodeType":"ExpressionStatement","src":"6995:6:80"},"nodeType":"ForStatement","src":"6955:294:80"},{"expression":{"id":21887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21885,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7259:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":21886,"name":"_newRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21823,"src":"7269:11:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7259:21:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":21888,"nodeType":"ExpressionStatement","src":"7259:21:80"},{"eventCall":{"arguments":[{"id":21890,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7315:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":21889,"name":"LogReleasePrepared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5638,"src":"7296:18:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":21891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7296:27:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21892,"nodeType":"EmitStatement","src":"7291:32:80"}]},"documentation":{"id":21821,"nodeType":"StructuredDocumentation","src":"6440:80:80","text":" @dev Create new release, copy contracts from previous release"},"functionSelector":"893917ea","id":21894,"implemented":true,"kind":"function","modifiers":[{"id":21827,"modifierName":{"id":21826,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6606:20:80"},"nodeType":"ModifierInvocation","src":"6606:20:80"}],"name":"prepareRelease","nameLocation":"6534:14:80","nodeType":"FunctionDefinition","overrides":{"id":21825,"nodeType":"OverrideSpecifier","overrides":[],"src":"6588:8:80"},"parameters":{"id":21824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21823,"mutability":"mutable","name":"_newRelease","nameLocation":"6557:11:80","nodeType":"VariableDeclaration","scope":21894,"src":"6549:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21822,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6549:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6548:21:80"},"returnParameters":{"id":21828,"nodeType":"ParameterList","parameters":[],"src":"6632:0:80"},"scope":22155,"src":"6525:805:80","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5706],"body":{"id":21909,"nodeType":"Block","src":"7417:83:80","statements":[{"expression":{"id":21907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21900,"name":"_numberOfContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21898,"src":"7427:18:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":21903,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"7469:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21905,"indexExpression":{"id":21904,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7484:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7469:23:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":21901,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"7448:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"7448:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":21906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7448:45:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7427:66:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":21908,"nodeType":"ExpressionStatement","src":"7427:66:80"}]},"functionSelector":"6c0f79b6","id":21910,"implemented":true,"kind":"function","modifiers":[],"name":"contracts","nameLocation":"7345:9:80","nodeType":"FunctionDefinition","overrides":{"id":21896,"nodeType":"OverrideSpecifier","overrides":[],"src":"7366:8:80"},"parameters":{"id":21895,"nodeType":"ParameterList","parameters":[],"src":"7354:2:80"},"returnParameters":{"id":21899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21898,"mutability":"mutable","name":"_numberOfContracts","nameLocation":"7397:18:80","nodeType":"VariableDeclaration","scope":21910,"src":"7389:26:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21897,"name":"uint256","nodeType":"ElementaryTypeName","src":"7389:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7388:28:80"},"scope":22155,"src":"7336:164:80","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5713],"body":{"id":21928,"nodeType":"Block","src":"7596:79:80","statements":[{"expression":{"id":21926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21918,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21916,"src":"7606:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":21921,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"7639:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21923,"indexExpression":{"id":21922,"name":"release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21618,"src":"7654:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7639:23:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":21924,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21912,"src":"7664:3:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21919,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"7622:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"at","nodeType":"MemberAccess","referencedDeclaration":11132,"src":"7622:16:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,uint256) view returns (bytes32)"}},"id":21925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7622:46:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7606:62:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":21927,"nodeType":"ExpressionStatement","src":"7606:62:80"}]},"functionSelector":"f6b3e7d0","id":21929,"implemented":true,"kind":"function","modifiers":[],"name":"contractName","nameLocation":"7515:12:80","nodeType":"FunctionDefinition","overrides":{"id":21914,"nodeType":"OverrideSpecifier","overrides":[],"src":"7550:8:80"},"parameters":{"id":21913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21912,"mutability":"mutable","name":"idx","nameLocation":"7536:3:80","nodeType":"VariableDeclaration","scope":21929,"src":"7528:11:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21911,"name":"uint256","nodeType":"ElementaryTypeName","src":"7528:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7527:13:80"},"returnParameters":{"id":21917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21916,"mutability":"mutable","name":"_contractName","nameLocation":"7581:13:80","nodeType":"VariableDeclaration","scope":21929,"src":"7573:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7573:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7572:23:80"},"scope":22155,"src":"7506:169:80","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":21947,"nodeType":"Block","src":"7881:60:80","statements":[{"expression":{"id":21945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":21939,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21937,"src":"7891:5:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":21940,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"7899:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":21942,"indexExpression":{"id":21941,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21932,"src":"7910:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7899:20:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":21944,"indexExpression":{"id":21943,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21934,"src":"7920:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7899:35:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7891:43:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21946,"nodeType":"ExpressionStatement","src":"7891:43:80"}]},"documentation":{"id":21930,"nodeType":"StructuredDocumentation","src":"7681:65:80","text":" @dev Get contract's address in certain release"},"id":21948,"implemented":true,"kind":"function","modifiers":[],"name":"_getContractInRelease","nameLocation":"7760:21:80","nodeType":"FunctionDefinition","parameters":{"id":21935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21932,"mutability":"mutable","name":"_release","nameLocation":"7790:8:80","nodeType":"VariableDeclaration","scope":21948,"src":"7782:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7782:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21934,"mutability":"mutable","name":"_contractName","nameLocation":"7808:13:80","nodeType":"VariableDeclaration","scope":21948,"src":"7800:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7800:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7781:41:80"},"returnParameters":{"id":21938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21937,"mutability":"mutable","name":"_addr","nameLocation":"7870:5:80","nodeType":"VariableDeclaration","scope":21948,"src":"7862:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21936,"name":"address","nodeType":"ElementaryTypeName","src":"7862:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7861:15:80"},"scope":22155,"src":"7751:190:80","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":22090,"nodeType":"Block","src":"8186:1624:80","statements":[{"assignments":[21961],"declarations":[{"constant":false,"id":21961,"mutability":"mutable","name":"isNew","nameLocation":"8201:5:80","nodeType":"VariableDeclaration","scope":22090,"src":"8196:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21960,"name":"bool","nodeType":"ElementaryTypeName","src":"8196:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":21963,"initialValue":{"hexValue":"66616c7365","id":21962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8209:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"8196:18:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":21967,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"8267:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21969,"indexExpression":{"id":21968,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"8282:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8267:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":21965,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"8246:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"8246:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":21970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8246:46:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":21971,"name":"MAX_CONTRACTS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21615,"src":"8295:13:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8246:62:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d4954","id":21973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8322:35:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef","typeString":"literal_string \"ERROR:REC-010:MAX_CONTRACTS_LIMIT\""},"value":"ERROR:REC-010:MAX_CONTRACTS_LIMIT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef","typeString":"literal_string \"ERROR:REC-010:MAX_CONTRACTS_LIMIT\""}],"id":21964,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8225:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8225:142:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21975,"nodeType":"ExpressionStatement","src":"8225:142:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":21977,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"8491:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":21979,"indexExpression":{"id":21978,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"8511:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8491:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":21980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8523:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8491:33:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":21982,"name":"isNewRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21953,"src":"8528:12:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8491:49:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e","id":21984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8542:31:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693","typeString":"literal_string \"ERROR:REC-011:RELEASE_UNKNOWN\""},"value":"ERROR:REC-011:RELEASE_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693","typeString":"literal_string \"ERROR:REC-011:RELEASE_UNKNOWN\""}],"id":21976,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8483:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8483:91:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21986,"nodeType":"ExpressionStatement","src":"8483:91:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":21990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":21988,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"8592:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30783030","id":21989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8609:4:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"src":"8592:21:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d505459","id":21991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8615:35:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2","typeString":"literal_string \"ERROR:REC-012:CONTRACT_NAME_EMPTY\""},"value":"ERROR:REC-012:CONTRACT_NAME_EMPTY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2","typeString":"literal_string \"ERROR:REC-012:CONTRACT_NAME_EMPTY\""}],"id":21987,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8584:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8584:67:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21993,"nodeType":"ExpressionStatement","src":"8584:67:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"id":22002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8683:65:80","subExpression":{"arguments":[{"baseExpression":{"id":21997,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"8708:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":21999,"indexExpression":{"id":21998,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"8723:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8708:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":22000,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"8734:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":21995,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"8685:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":21996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11099,"src":"8685:22:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) view returns (bool)"}},"id":22001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8685:63:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":22003,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8682:68:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":22006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22004,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"8962:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":22005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8979:25:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"},"src":"8962:42:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":22007,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"9008:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":22009,"indexExpression":{"id":22008,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9019:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9008:20:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":22011,"indexExpression":{"id":22010,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"9029:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9008:35:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22012,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"9047:10:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9047:12:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9008:51:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8962:97:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":22016,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8961:99:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8682:378:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031333a434f4e54524143545f4e414d455f455849535453","id":22018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9075:36:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0","typeString":"literal_string \"ERROR:REC-013:CONTRACT_NAME_EXISTS\""},"value":"ERROR:REC-013:CONTRACT_NAME_EXISTS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0","typeString":"literal_string \"ERROR:REC-013:CONTRACT_NAME_EXISTS\""}],"id":21994,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8661:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8661:451:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22020,"nodeType":"ExpressionStatement","src":"8661:451:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22022,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21957,"src":"9130:16:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9158:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9150:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22023,"name":"address","nodeType":"ElementaryTypeName","src":"9150:7:80","typeDescriptions":{}}},"id":22026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9150:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9130:30:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a45524f","id":22028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9162:37:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b","typeString":"literal_string \"ERROR:REC-014:CONTRACT_ADDRESS_ZERO\""},"value":"ERROR:REC-014:CONTRACT_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b","typeString":"literal_string \"ERROR:REC-014:CONTRACT_ADDRESS_ZERO\""}],"id":22021,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9122:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9122:78:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22030,"nodeType":"ExpressionStatement","src":"9122:78:80"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":22031,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"9215:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":22033,"indexExpression":{"id":22032,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9226:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9215:20:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":22035,"indexExpression":{"id":22034,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"9236:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9215:35:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":22038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9262:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9254:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22036,"name":"address","nodeType":"ElementaryTypeName","src":"9254:7:80","typeDescriptions":{}}},"id":22039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9254:10:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9215:49:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22060,"nodeType":"IfStatement","src":"9211:209:80","trueBody":{"id":22059,"nodeType":"Block","src":"9266:154:80","statements":[{"expression":{"arguments":[{"baseExpression":{"id":22044,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"9298:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":22046,"indexExpression":{"id":22045,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9313:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9298:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":22047,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"9324:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22041,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"9280:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":22043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":11063,"src":"9280:17:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":22048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9280:58:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22049,"nodeType":"ExpressionStatement","src":"9280:58:80"},{"expression":{"id":22053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9352:31:80","subExpression":{"baseExpression":{"id":22050,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"9352:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":22052,"indexExpression":{"id":22051,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9372:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9352:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22054,"nodeType":"ExpressionStatement","src":"9352:31:80"},{"expression":{"id":22057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22055,"name":"isNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21961,"src":"9397:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":22056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9405:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9397:12:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22058,"nodeType":"ExpressionStatement","src":"9397:12:80"}]}},{"expression":{"id":22067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":22061,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"9430:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":22064,"indexExpression":{"id":22062,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9441:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9430:20:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":22065,"indexExpression":{"id":22063,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"9451:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9430:35:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22066,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21957,"src":"9468:16:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9430:54:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22068,"nodeType":"ExpressionStatement","src":"9430:54:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22070,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"9515:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":22072,"indexExpression":{"id":22071,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9535:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9515:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"baseExpression":{"id":22075,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"9569:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":22077,"indexExpression":{"id":22076,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9584:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9569:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":22073,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"9548:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":22074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"9548:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":22078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9548:46:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9515:79:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d49534d41544348","id":22080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9608:40:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42","typeString":"literal_string \"ERROR:REC-015:CONTRACT_NUMBER_MISMATCH\""},"value":"ERROR:REC-015:CONTRACT_NUMBER_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42","typeString":"literal_string \"ERROR:REC-015:CONTRACT_NUMBER_MISMATCH\""}],"id":22069,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9494:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9494:164:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22082,"nodeType":"ExpressionStatement","src":"9494:164:80"},{"eventCall":{"arguments":[{"id":22084,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21951,"src":"9709:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22085,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21955,"src":"9731:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22086,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21957,"src":"9758:16:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22087,"name":"isNew","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21961,"src":"9788:5:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":22083,"name":"LogContractRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5628,"src":"9674:21:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_bool_$returns$__$","typeString":"function (bytes32,bytes32,address,bool)"}},"id":22088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9674:129:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22089,"nodeType":"EmitStatement","src":"9669:134:80"}]},"documentation":{"id":21949,"nodeType":"StructuredDocumentation","src":"7947:60:80","text":" @dev Register contract in certain release"},"id":22091,"implemented":true,"kind":"function","modifiers":[],"name":"_registerInRelease","nameLocation":"8021:18:80","nodeType":"FunctionDefinition","parameters":{"id":21958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21951,"mutability":"mutable","name":"_release","nameLocation":"8057:8:80","nodeType":"VariableDeclaration","scope":22091,"src":"8049:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8049:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21953,"mutability":"mutable","name":"isNewRelease","nameLocation":"8080:12:80","nodeType":"VariableDeclaration","scope":22091,"src":"8075:17:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21952,"name":"bool","nodeType":"ElementaryTypeName","src":"8075:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21955,"mutability":"mutable","name":"_contractName","nameLocation":"8110:13:80","nodeType":"VariableDeclaration","scope":22091,"src":"8102:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8102:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":21957,"mutability":"mutable","name":"_contractAddress","nameLocation":"8141:16:80","nodeType":"VariableDeclaration","scope":22091,"src":"8133:24:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21956,"name":"address","nodeType":"ElementaryTypeName","src":"8133:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8039:124:80"},"returnParameters":{"id":21959,"nodeType":"ParameterList","parameters":[],"src":"8186:0:80"},"scope":22155,"src":"8012:1798:80","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22153,"nodeType":"Block","src":"10005:541:80","statements":[{"expression":{"arguments":[{"arguments":[{"baseExpression":{"id":22104,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"10046:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":22106,"indexExpression":{"id":22105,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10061:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10046:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":22107,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22096,"src":"10072:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22102,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10023:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":22103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":11099,"src":"10023:22:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) view returns (bool)"}},"id":22108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10023:63:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e","id":22109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10088:32:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77","typeString":"literal_string \"ERROR:REC-020:CONTRACT_UNKNOWN\""},"value":"ERROR:REC-020:CONTRACT_UNKNOWN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77","typeString":"literal_string \"ERROR:REC-020:CONTRACT_UNKNOWN\""}],"id":22101,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10015:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10015:106:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22111,"nodeType":"ExpressionStatement","src":"10015:106:80"},{"expression":{"arguments":[{"baseExpression":{"id":22115,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"10153:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":22117,"indexExpression":{"id":22116,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10168:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10153:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}},{"id":22118,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22096,"src":"10179:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22112,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10132:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":22114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":11081,"src":"10132:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Bytes32Set_$11045_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer,bytes32) returns (bool)"}},"id":22119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10132:61:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22120,"nodeType":"ExpressionStatement","src":"10132:61:80"},{"expression":{"id":22125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22121,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"10204:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":22123,"indexExpression":{"id":22122,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10224:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10204:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":22124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10237:1:80","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10204:34:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22126,"nodeType":"ExpressionStatement","src":"10204:34:80"},{"expression":{"id":22132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"10248:42:80","subExpression":{"baseExpression":{"baseExpression":{"id":22127,"name":"_contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"10255:10:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_mapping$_t_bytes32_$_t_address_$_$","typeString":"mapping(bytes32 => mapping(bytes32 => address))"}},"id":22129,"indexExpression":{"id":22128,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10266:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10255:20:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":22131,"indexExpression":{"id":22130,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22096,"src":"10276:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10255:35:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22133,"nodeType":"ExpressionStatement","src":"10248:42:80"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":22135,"name":"_contractsInRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21630,"src":"10330:19:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":22137,"indexExpression":{"id":22136,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10350:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10330:29:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"baseExpression":{"id":22140,"name":"_contractNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21635,"src":"10384:14:80","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Bytes32Set_$11045_storage_$","typeString":"mapping(bytes32 => struct EnumerableSet.Bytes32Set storage ref)"}},"id":22142,"indexExpression":{"id":22141,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10399:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10384:24:80","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Bytes32Set_$11045_storage","typeString":"struct EnumerableSet.Bytes32Set storage ref"}],"expression":{"id":22138,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"10363:13:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_EnumerableSet_$11439_$","typeString":"type(library EnumerableSet)"}},"id":22139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":11114,"src":"10363:20:80","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Bytes32Set_$11045_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Bytes32Set storage pointer) view returns (uint256)"}},"id":22143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10363:46:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10330:79:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d49534d41544348","id":22145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10423:40:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f","typeString":"literal_string \"ERROR:REC-021:CONTRACT_NUMBER_MISMATCH\""},"value":"ERROR:REC-021:CONTRACT_NUMBER_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f","typeString":"literal_string \"ERROR:REC-021:CONTRACT_NUMBER_MISMATCH\""}],"id":22134,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10309:7:80","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10309:155:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22147,"nodeType":"ExpressionStatement","src":"10309:155:80"},{"eventCall":{"arguments":[{"id":22149,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22094,"src":"10503:8:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22150,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22096,"src":"10513:13:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":22148,"name":"LogContractDeregistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5634,"src":"10479:23:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":22151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10479:48:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22152,"nodeType":"EmitStatement","src":"10474:53:80"}]},"documentation":{"id":22092,"nodeType":"StructuredDocumentation","src":"9817:62:80","text":" @dev Deregister contract in certain release"},"id":22154,"implemented":true,"kind":"function","modifiers":[{"id":22099,"modifierName":{"id":22098,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"9980:20:80"},"nodeType":"ModifierInvocation","src":"9980:20:80"}],"name":"_deregisterInRelease","nameLocation":"9893:20:80","nodeType":"FunctionDefinition","parameters":{"id":22097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22094,"mutability":"mutable","name":"_release","nameLocation":"9922:8:80","nodeType":"VariableDeclaration","scope":22154,"src":"9914:16:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9914:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22096,"mutability":"mutable","name":"_contractName","nameLocation":"9940:13:80","nodeType":"VariableDeclaration","scope":22154,"src":"9932:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9932:7:80","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9913:41:80"},"returnParameters":{"id":22100,"nodeType":"ParameterList","parameters":[],"src":"10005:0:80"},"scope":22155,"src":"9884:662:80","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":22156,"src":"2981:7567:80"}],"src":"39:10510:80"},"id":80},"contracts/modules/TreasuryModule.sol":{"ast":{"absolutePath":"contracts/modules/TreasuryModule.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IOracle":[3022],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"ITreasury":[5974],"Initializable":[8059],"Ownable":[7481],"Pausable":[8167],"PolicyController":[19974],"PoolController":[21207],"Strings":[10804],"TransferHelper":[26659],"TreasuryModule":[23615]},"id":23616,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":22157,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:81"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"./ComponentController.sol","id":22158,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":17948,"src":"63:35:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PolicyController.sol","file":"./PolicyController.sol","id":22159,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":19975,"src":"99:32:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/BundleController.sol","file":"./BundleController.sol","id":22160,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":16947,"src":"132:32:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"./PoolController.sol","id":22161,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":21208,"src":"165:30:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":22162,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":26414,"src":"196:38:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/TransferHelper.sol","file":"../shared/TransferHelper.sol","id":22163,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":26660,"src":"235:38:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":22164,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":2989,"src":"275:69:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":22165,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":3080,"src":"345:67:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":22166,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":5434,"src":"413:63:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","file":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","id":22167,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":5975,"src":"477:65:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/security/Pausable.sol","file":"@openzeppelin/contracts/security/Pausable.sol","id":22168,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":8168,"src":"544:55:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":22169,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":8832,"src":"600:56:81","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","id":22170,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23616,"sourceUnit":10805,"src":"657:51:81","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":22172,"name":"ITreasury","nodeType":"IdentifierPath","referencedDeclaration":5974,"src":"3580:9:81"},"id":22173,"nodeType":"InheritanceSpecifier","src":"3580:9:81"},{"baseName":{"id":22174,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"3595:14:81"},"id":22175,"nodeType":"InheritanceSpecifier","src":"3595:14:81"},{"baseName":{"id":22176,"name":"Pausable","nodeType":"IdentifierPath","referencedDeclaration":8167,"src":"3615:8:81"},"id":22177,"nodeType":"InheritanceSpecifier","src":"3615:8:81"}],"contractDependencies":[5974,8059,8167,10518,26413],"contractKind":"contract","documentation":{"id":22171,"nodeType":"StructuredDocumentation","src":"710:2836:81","text":"The smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts.\nThe contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the \"etherisc/gif-interface\" and \"openzeppelin/contracts\" libraries.\nThe contract defines several state variables, including:\n- FRACTION_FULL_UNIT: a constant representing the full unit value (10^18).\n- FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%).\n- event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation.\n- event LogTransferHelperInputValidation2Failed: an event that logs a failed input validation.\n- event LogTransferHelperCallFailed: an event that logs a failed external call.\n- _instanceWalletAddress: a private variable representing the address of the instance wallet.\n- _riskpoolWallet: a mapping of riskpool IDs to wallet addresses.\n- _fees: a mapping of component IDs to FeeSpecification structs.\n- _componentToken: a mapping of product IDs/riskpool IDs to ERC20 token addresses.\n- _bundle: an instance of the BundleController contract.\n- _component: an instance of the ComponentController contract.\n- _policy: an instance of the PolicyController contract.\n- _pool: an instance of the PoolController contract.\nThe contract includes several modifiers that enforce certain conditions on function execution, such as the instanceWalletDefined modifier, which requires the instance wallet address to be defined;\nthe riskpoolWalletDefinedForProcess modifier, which requires the riskpool wallet address to be defined for a given process ID;\nthe riskpoolWalletDefinedForBundle modifier, which requires the riskpool wallet address to be defined for a given bundle ID;\nthe whenNotSuspended modifier, which requires the contract to not be paused; and the onlyRiskpoolService modifier, which restricts access to the RiskpoolService contract.\nThe contract contains various functions for managing the treasury, such as setting the product token address, setting the instance wallet address, setting the riskpool wallet address, creating fee specifications, and setting premium and capital fees for components.\nThere are also functions for suspending and resuming the treasury contract.\nThe contract includes a function to calculate the fee amount and net amount for a given component ID and amount.\nIt also includes functions to process premium payments for policies, either for the remaining premium amount or for a specific amount.\nOverall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system."},"fullyImplemented":true,"id":23615,"linearizedBaseContracts":[23615,8167,26413,8059,10518,5974],"name":"TreasuryModule","nameLocation":"3557:14:81","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"b79f5eab","id":22182,"mutability":"constant","name":"FRACTION_FULL_UNIT","nameLocation":"3654:18:81","nodeType":"VariableDeclaration","scope":23615,"src":"3630:51:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22178,"name":"uint256","nodeType":"ElementaryTypeName","src":"3630:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":22181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":22179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3675:2:81","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":22180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3679:2:81","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"3675:6:81","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"public"},{"constant":true,"functionSelector":"f964690d","id":22187,"mutability":"constant","name":"FRACTIONAL_FEE_MAX","nameLocation":"3711:18:81","nodeType":"VariableDeclaration","scope":23615,"src":"3687:67:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22183,"name":"uint256","nodeType":"ElementaryTypeName","src":"3687:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":22184,"name":"FRACTION_FULL_UNIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22182,"src":"3732:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"34","id":22185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3753:1:81","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"3732:22:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"anonymous":false,"id":22195,"name":"LogTransferHelperInputValidation1Failed","nameLocation":"3795:39:81","nodeType":"EventDefinition","parameters":{"id":22194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22189,"indexed":false,"mutability":"mutable","name":"tokenIsContract","nameLocation":"3840:15:81","nodeType":"VariableDeclaration","scope":22195,"src":"3835:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22188,"name":"bool","nodeType":"ElementaryTypeName","src":"3835:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22191,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"3865:4:81","nodeType":"VariableDeclaration","scope":22195,"src":"3857:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22190,"name":"address","nodeType":"ElementaryTypeName","src":"3857:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22193,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"3879:2:81","nodeType":"VariableDeclaration","scope":22195,"src":"3871:10:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22192,"name":"address","nodeType":"ElementaryTypeName","src":"3871:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3834:48:81"},"src":"3789:94:81"},{"anonymous":false,"id":22201,"name":"LogTransferHelperInputValidation2Failed","nameLocation":"3894:39:81","nodeType":"EventDefinition","parameters":{"id":22200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22197,"indexed":false,"mutability":"mutable","name":"balance","nameLocation":"3942:7:81","nodeType":"VariableDeclaration","scope":22201,"src":"3934:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22196,"name":"uint256","nodeType":"ElementaryTypeName","src":"3934:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22199,"indexed":false,"mutability":"mutable","name":"allowance","nameLocation":"3959:9:81","nodeType":"VariableDeclaration","scope":22201,"src":"3951:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22198,"name":"uint256","nodeType":"ElementaryTypeName","src":"3951:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3933:36:81"},"src":"3888:82:81"},{"anonymous":false,"id":22209,"name":"LogTransferHelperCallFailed","nameLocation":"3981:27:81","nodeType":"EventDefinition","parameters":{"id":22208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22203,"indexed":false,"mutability":"mutable","name":"callSuccess","nameLocation":"4014:11:81","nodeType":"VariableDeclaration","scope":22209,"src":"4009:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22202,"name":"bool","nodeType":"ElementaryTypeName","src":"4009:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22205,"indexed":false,"mutability":"mutable","name":"returnDataLength","nameLocation":"4035:16:81","nodeType":"VariableDeclaration","scope":22209,"src":"4027:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22204,"name":"uint256","nodeType":"ElementaryTypeName","src":"4027:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22207,"indexed":false,"mutability":"mutable","name":"returnData","nameLocation":"4059:10:81","nodeType":"VariableDeclaration","scope":22209,"src":"4053:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":22206,"name":"bytes","nodeType":"ElementaryTypeName","src":"4053:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4008:62:81"},"src":"3975:96:81"},{"constant":false,"id":22211,"mutability":"mutable","name":"_instanceWalletAddress","nameLocation":"4093:22:81","nodeType":"VariableDeclaration","scope":23615,"src":"4077:38:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22210,"name":"address","nodeType":"ElementaryTypeName","src":"4077:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":22215,"mutability":"mutable","name":"_riskpoolWallet","nameLocation":"4157:15:81","nodeType":"VariableDeclaration","scope":23615,"src":"4121:51:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":22214,"keyType":{"id":22212,"name":"uint256","nodeType":"ElementaryTypeName","src":"4129:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4121:27:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":22213,"name":"address","nodeType":"ElementaryTypeName","src":"4140:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"private"},{"constant":false,"id":22220,"mutability":"mutable","name":"_fees","nameLocation":"4254:5:81","nodeType":"VariableDeclaration","scope":23615,"src":"4209:50:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification)"},"typeName":{"id":22219,"keyType":{"id":22216,"name":"uint256","nodeType":"ElementaryTypeName","src":"4217:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4209:36:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification)"},"valueType":{"id":22218,"nodeType":"UserDefinedTypeName","pathNode":{"id":22217,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"4228:16:81"},"referencedDeclaration":5838,"src":"4228:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}}},"visibility":"private"},{"constant":false,"id":22225,"mutability":"mutable","name":"_componentToken","nameLocation":"4336:15:81","nodeType":"VariableDeclaration","scope":23615,"src":"4301:50:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"},"typeName":{"id":22224,"keyType":{"id":22221,"name":"uint256","nodeType":"ElementaryTypeName","src":"4309:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4301:26:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"},"valueType":{"id":22223,"nodeType":"UserDefinedTypeName","pathNode":{"id":22222,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"4320:6:81"},"referencedDeclaration":8831,"src":"4320:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}},"visibility":"private"},{"constant":false,"id":22228,"mutability":"mutable","name":"_bundle","nameLocation":"4423:7:81","nodeType":"VariableDeclaration","scope":23615,"src":"4398:32:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"},"typeName":{"id":22227,"nodeType":"UserDefinedTypeName","pathNode":{"id":22226,"name":"BundleController","nodeType":"IdentifierPath","referencedDeclaration":16946,"src":"4398:16:81"},"referencedDeclaration":16946,"src":"4398:16:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"visibility":"private"},{"constant":false,"id":22231,"mutability":"mutable","name":"_component","nameLocation":"4464:10:81","nodeType":"VariableDeclaration","scope":23615,"src":"4436:38:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":22230,"nodeType":"UserDefinedTypeName","pathNode":{"id":22229,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"4436:19:81"},"referencedDeclaration":17947,"src":"4436:19:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"constant":false,"id":22234,"mutability":"mutable","name":"_policy","nameLocation":"4505:7:81","nodeType":"VariableDeclaration","scope":23615,"src":"4480:32:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":22233,"nodeType":"UserDefinedTypeName","pathNode":{"id":22232,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"4480:16:81"},"referencedDeclaration":19974,"src":"4480:16:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"private"},{"constant":false,"id":22237,"mutability":"mutable","name":"_pool","nameLocation":"4541:5:81","nodeType":"VariableDeclaration","scope":23615,"src":"4518:28:81","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":22236,"nodeType":"UserDefinedTypeName","pathNode":{"id":22235,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"4518:14:81"},"referencedDeclaration":21207,"src":"4518:14:81","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"private"},{"body":{"id":22250,"nodeType":"Block","src":"4586:141:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22240,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"4617:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4651:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4643:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22241,"name":"address","nodeType":"ElementaryTypeName","src":"4643:7:81","typeDescriptions":{}}},"id":22244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4643:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4617:36:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3030313a494e5354414e43455f57414c4c45545f554e444546494e4544","id":22246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4667:41:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b46fae8951b5666cf5036a2bfff9803d02b9a299525a4505cc74a99e0633220","typeString":"literal_string \"ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED\""},"value":"ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2b46fae8951b5666cf5036a2bfff9803d02b9a299525a4505cc74a99e0633220","typeString":"literal_string \"ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED\""}],"id":22239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4596:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4596:113:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22248,"nodeType":"ExpressionStatement","src":"4596:113:81"},{"id":22249,"nodeType":"PlaceholderStatement","src":"4719:1:81"}]},"id":22251,"name":"instanceWalletDefined","nameLocation":"4562:21:81","nodeType":"ModifierDefinition","parameters":{"id":22238,"nodeType":"ParameterList","parameters":[],"src":"4583:2:81"},"src":"4553:174:81","virtual":false,"visibility":"internal"},{"body":{"id":22274,"nodeType":"Block","src":"4793:217:81","statements":[{"assignments":[22256,22258],"declarations":[{"constant":false,"id":22256,"mutability":"mutable","name":"riskpoolId","nameLocation":"4812:10:81","nodeType":"VariableDeclaration","scope":22274,"src":"4804:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22255,"name":"uint256","nodeType":"ElementaryTypeName","src":"4804:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22258,"mutability":"mutable","name":"walletAddress","nameLocation":"4832:13:81","nodeType":"VariableDeclaration","scope":22274,"src":"4824:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22257,"name":"address","nodeType":"ElementaryTypeName","src":"4824:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":22262,"initialValue":{"arguments":[{"id":22260,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22253,"src":"4868:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":22259,"name":"_getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23614,"src":"4849:18:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$_t_address_$","typeString":"function (bytes32) view returns (uint256,address)"}},"id":22261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4849:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"nodeType":"VariableDeclarationStatement","src":"4803:75:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22264,"name":"walletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22258,"src":"4909:13:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4934:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4926:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22265,"name":"address","nodeType":"ElementaryTypeName","src":"4926:7:81","typeDescriptions":{}}},"id":22268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4926:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4909:27:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3030323a5249534b504f4f4c5f57414c4c45545f554e444546494e4544","id":22270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4950:41:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_0426c9e38488694ef5fcd21b7d01546e3f09d04e0204867e9068633df2d21047","typeString":"literal_string \"ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED\""},"value":"ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0426c9e38488694ef5fcd21b7d01546e3f09d04e0204867e9068633df2d21047","typeString":"literal_string \"ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED\""}],"id":22263,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4888:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4888:104:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22272,"nodeType":"ExpressionStatement","src":"4888:104:81"},{"id":22273,"nodeType":"PlaceholderStatement","src":"5002:1:81"}]},"id":22275,"name":"riskpoolWalletDefinedForProcess","nameLocation":"4742:31:81","nodeType":"ModifierDefinition","parameters":{"id":22254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22253,"mutability":"mutable","name":"processId","nameLocation":"4782:9:81","nodeType":"VariableDeclaration","scope":22275,"src":"4774:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22252,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4774:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4773:19:81"},"src":"4733:277:81","virtual":false,"visibility":"internal"},{"body":{"id":22303,"nodeType":"Block","src":"5074:223:81","statements":[{"assignments":[22283],"declarations":[{"constant":false,"id":22283,"mutability":"mutable","name":"bundle","nameLocation":"5106:6:81","nodeType":"VariableDeclaration","scope":22303,"src":"5084:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":22282,"nodeType":"UserDefinedTypeName","pathNode":{"id":22281,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"5084:14:81"},"referencedDeclaration":4936,"src":"5084:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":22288,"initialValue":{"arguments":[{"id":22286,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22277,"src":"5133:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22284,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"5115:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":22285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"5115:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":22287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5115:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"5084:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":22291,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22283,"src":"5191:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":22292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"5191:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22290,"name":"getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23494,"src":"5173:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":22293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5173:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5221:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5213:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22294,"name":"address","nodeType":"ElementaryTypeName","src":"5213:7:81","typeDescriptions":{}}},"id":22297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5213:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5173:50:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3030333a5249534b504f4f4c5f57414c4c45545f554e444546494e4544","id":22299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5237:41:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc89108457ff0693a34e0e46b7b733b4220c89a4cb97d3006bf3a51034cca2c9","typeString":"literal_string \"ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED\""},"value":"ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bc89108457ff0693a34e0e46b7b733b4220c89a4cb97d3006bf3a51034cca2c9","typeString":"literal_string \"ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED\""}],"id":22289,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5152:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5152:127:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22301,"nodeType":"ExpressionStatement","src":"5152:127:81"},{"id":22302,"nodeType":"PlaceholderStatement","src":"5289:1:81"}]},"id":22304,"name":"riskpoolWalletDefinedForBundle","nameLocation":"5025:30:81","nodeType":"ModifierDefinition","parameters":{"id":22278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22277,"mutability":"mutable","name":"bundleId","nameLocation":"5064:8:81","nodeType":"VariableDeclaration","scope":22304,"src":"5056:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22276,"name":"uint256","nodeType":"ElementaryTypeName","src":"5056:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5055:18:81"},"src":"5016:281:81","virtual":false,"visibility":"internal"},{"body":{"id":22314,"nodeType":"Block","src":"5417:82:81","statements":[{"expression":{"arguments":[{"id":22309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5435:9:81","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22307,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8111,"src":"5436:6:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":22308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5436:8:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3030343a54524541535552595f53555350454e444544","id":22310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5446:34:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_3716cf2f5864d6ed7dbe013f132263c98f75980b1bc9e53587b62e45d53b8001","typeString":"literal_string \"ERROR:TRS-004:TREASURY_SUSPENDED\""},"value":"ERROR:TRS-004:TREASURY_SUSPENDED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3716cf2f5864d6ed7dbe013f132263c98f75980b1bc9e53587b62e45d53b8001","typeString":"literal_string \"ERROR:TRS-004:TREASURY_SUSPENDED\""}],"id":22306,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5427:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5427:54:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22312,"nodeType":"ExpressionStatement","src":"5427:54:81"},{"id":22313,"nodeType":"PlaceholderStatement","src":"5491:1:81"}]},"id":22315,"name":"whenNotSuspended","nameLocation":"5398:16:81","nodeType":"ModifierDefinition","parameters":{"id":22305,"nodeType":"ParameterList","parameters":[],"src":"5414:2:81"},"src":"5389:110:81","virtual":false,"visibility":"internal"},{"body":{"id":22328,"nodeType":"Block","src":"5536:163:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":22318,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5567:10:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":22319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5567:12:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"5269736b706f6f6c53657276696365","id":22321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5603:17:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""},"value":"RiskpoolService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""}],"id":22320,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5583:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":22322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5583:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5567:54:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3030353a4e4f545f5249534b504f4f4c5f53455256494345","id":22324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5635:36:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c57f116b2d23b472e497701710f194d47bb249cf3bdd21579f4ccec35ce6514","typeString":"literal_string \"ERROR:TRS-005:NOT_RISKPOOL_SERVICE\""},"value":"ERROR:TRS-005:NOT_RISKPOOL_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1c57f116b2d23b472e497701710f194d47bb249cf3bdd21579f4ccec35ce6514","typeString":"literal_string \"ERROR:TRS-005:NOT_RISKPOOL_SERVICE\""}],"id":22317,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5546:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5546:135:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22326,"nodeType":"ExpressionStatement","src":"5546:135:81"},{"id":22327,"nodeType":"PlaceholderStatement","src":"5691:1:81"}]},"id":22329,"name":"onlyRiskpoolService","nameLocation":"5514:19:81","nodeType":"ModifierDefinition","parameters":{"id":22316,"nodeType":"ParameterList","parameters":[],"src":"5533:2:81"},"src":"5505:194:81","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":22367,"nodeType":"Block","src":"5768:278:81","statements":[{"expression":{"id":22341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22335,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"5778:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"42756e646c65","id":22338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5825:8:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""},"value":"Bundle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""}],"id":22337,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5805:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":22339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5805:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22336,"name":"BundleController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"5788:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleController_$16946_$","typeString":"type(contract BundleController)"}},"id":22340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5788:47:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"src":"5778:57:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":22342,"nodeType":"ExpressionStatement","src":"5778:57:81"},{"expression":{"id":22349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22343,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"5845:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":22346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5898:11:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":22345,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5878:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":22347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5878:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22344,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"5858:19:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":22348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5858:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"5845:66:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22350,"nodeType":"ExpressionStatement","src":"5845:66:81"},{"expression":{"id":22357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22351,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"5921:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6c696379","id":22354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5968:8:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""}],"id":22353,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"5948:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":22355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5948:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22352,"name":"PolicyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"5931:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PolicyController_$19974_$","typeString":"type(contract PolicyController)"}},"id":22356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5931:47:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"src":"5921:57:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":22358,"nodeType":"ExpressionStatement","src":"5921:57:81"},{"expression":{"id":22365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22359,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22237,"src":"5988:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6f6c","id":22362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6031:6:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":22361,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"6011:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":22363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6011:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22360,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"5996:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":22364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5996:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"src":"5988:51:81","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":22366,"nodeType":"ExpressionStatement","src":"5988:51:81"}]},"id":22368,"implemented":true,"kind":"function","modifiers":[{"id":22333,"modifierName":{"id":22332,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"5751:16:81"},"nodeType":"ModifierInvocation","src":"5751:16:81"}],"name":"_afterInitialize","nameLocation":"5714:16:81","nodeType":"FunctionDefinition","overrides":{"id":22331,"nodeType":"OverrideSpecifier","overrides":[],"src":"5742:8:81"},"parameters":{"id":22330,"nodeType":"ParameterList","parameters":[],"src":"5730:2:81"},"returnParameters":{"id":22334,"nodeType":"ParameterList","parameters":[],"src":"5768:0:81"},"scope":23615,"src":"5705:341:81","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":22379,"nodeType":"Block","src":"6123:62:81","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22373,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8150,"src":"6133:6:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6133:8:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22375,"nodeType":"ExpressionStatement","src":"6133:8:81"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":22376,"name":"LogTreasurySuspended","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5719,"src":"6156:20:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6156:22:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22378,"nodeType":"EmitStatement","src":"6151:27:81"}]},"functionSelector":"e6400bbe","id":22380,"implemented":true,"kind":"function","modifiers":[{"id":22371,"modifierName":{"id":22370,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6098:20:81"},"nodeType":"ModifierInvocation","src":"6098:20:81"}],"name":"suspend","nameLocation":"6061:7:81","nodeType":"FunctionDefinition","parameters":{"id":22369,"nodeType":"ParameterList","parameters":[],"src":"6068:2:81"},"returnParameters":{"id":22372,"nodeType":"ParameterList","parameters":[],"src":"6123:0:81"},"scope":23615,"src":"6052:133:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22391,"nodeType":"Block","src":"6261:62:81","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":22385,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8166,"src":"6271:8:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6271:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22387,"nodeType":"ExpressionStatement","src":"6271:10:81"},{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":22388,"name":"LogTreasuryResumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5721,"src":"6296:18:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":22389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6296:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22390,"nodeType":"EmitStatement","src":"6291:25:81"}]},"functionSelector":"046f7da2","id":22392,"implemented":true,"kind":"function","modifiers":[{"id":22383,"modifierName":{"id":22382,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6236:20:81"},"nodeType":"ModifierInvocation","src":"6236:20:81"}],"name":"resume","nameLocation":"6200:6:81","nodeType":"FunctionDefinition","parameters":{"id":22381,"nodeType":"ParameterList","parameters":[],"src":"6206:2:81"},"returnParameters":{"id":22384,"nodeType":"ParameterList","parameters":[],"src":"6261:0:81"},"scope":23615,"src":"6191:132:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5845],"body":{"id":22515,"nodeType":"Block","src":"6479:1078:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22405,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"6497:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6521:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6513:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22406,"name":"address","nodeType":"ElementaryTypeName","src":"6513:7:81","typeDescriptions":{}}},"id":22409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6513:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6497:26:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031303a544f4b454e5f414444524553535f5a45524f","id":22411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6525:34:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceb0bf7951c332a40d75b8b4b45101b45a65b113825ab60387d5b818680891fa","typeString":"literal_string \"ERROR:TRS-010:TOKEN_ADDRESS_ZERO\""},"value":"ERROR:TRS-010:TOKEN_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ceb0bf7951c332a40d75b8b4b45101b45a65b113825ab60387d5b818680891fa","typeString":"literal_string \"ERROR:TRS-010:TOKEN_ADDRESS_ZERO\""}],"id":22404,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6489:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6489:71:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22413,"nodeType":"ExpressionStatement","src":"6489:71:81"},{"expression":{"arguments":[{"arguments":[{"id":22417,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"6600:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22415,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"6579:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"6579:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6579:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031313a4e4f545f50524f44554354","id":22419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6612:27:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_7da3c4275d49aeca81de3efd989371cdf344763b44123371517a3e6b02efcce4","typeString":"literal_string \"ERROR:TRS-011:NOT_PRODUCT\""},"value":"ERROR:TRS-011:NOT_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7da3c4275d49aeca81de3efd989371cdf344763b44123371517a3e6b02efcce4","typeString":"literal_string \"ERROR:TRS-011:NOT_PRODUCT\""}],"id":22414,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6571:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6571:69:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22421,"nodeType":"ExpressionStatement","src":"6571:69:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":22425,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"6666:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":22427,"indexExpression":{"id":22426,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"6682:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6666:26:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":22424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6658:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22423,"name":"address","nodeType":"ElementaryTypeName","src":"6658:7:81","typeDescriptions":{}}},"id":22428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6658:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":22431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6705:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6697:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22429,"name":"address","nodeType":"ElementaryTypeName","src":"6697:7:81","typeDescriptions":{}}},"id":22432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6697:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6658:49:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031323a50524f445543545f544f4b454e5f414c52454144595f534554","id":22434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6709:41:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_91cd09a8272bca29602366afa78499ab462a45026fab37c8b88437074a1814d2","typeString":"literal_string \"ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET\""},"value":"ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91cd09a8272bca29602366afa78499ab462a45026fab37c8b88437074a1814d2","typeString":"literal_string \"ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET\""}],"id":22422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6650:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6650:101:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22436,"nodeType":"ExpressionStatement","src":"6650:101:81"},{"assignments":[22439],"declarations":[{"constant":false,"id":22439,"mutability":"mutable","name":"component","nameLocation":"6785:9:81","nodeType":"VariableDeclaration","scope":22515,"src":"6774:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":22438,"nodeType":"UserDefinedTypeName","pathNode":{"id":22437,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"6774:10:81"},"referencedDeclaration":2988,"src":"6774:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":22444,"initialValue":{"arguments":[{"id":22442,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"6821:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22440,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"6797:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"6797:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":22443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6797:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"6774:57:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":22451,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22439,"src":"6874:9:81","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":22450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6866:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22449,"name":"address","nodeType":"ElementaryTypeName","src":"6866:7:81","typeDescriptions":{}}},"id":22452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6866:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22448,"name":"IProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"6857:8:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProduct_$3079_$","typeString":"type(contract IProduct)"}},"id":22453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6857:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"id":22454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getToken","nodeType":"MemberAccess","referencedDeclaration":3048,"src":"6857:37:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":22455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6857:39:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6849:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22446,"name":"address","nodeType":"ElementaryTypeName","src":"6849:7:81","typeDescriptions":{}}},"id":22456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6849:48:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":22457,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"6901:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6849:64:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031333a50524f445543545f544f4b454e5f414444524553535f4e4f545f4d41544348494e47","id":22459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6915:50:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_9defa563bbba994121b588e9e6ffee73848f6557b51cbbd6b857b473a53fa73e","typeString":"literal_string \"ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING\""},"value":"ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9defa563bbba994121b588e9e6ffee73848f6557b51cbbd6b857b473a53fa73e","typeString":"literal_string \"ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING\""}],"id":22445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"6841:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6841:125:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22461,"nodeType":"ExpressionStatement","src":"6841:125:81"},{"assignments":[22463],"declarations":[{"constant":false,"id":22463,"mutability":"mutable","name":"riskpoolId","nameLocation":"6985:10:81","nodeType":"VariableDeclaration","scope":22515,"src":"6977:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22462,"name":"uint256","nodeType":"ElementaryTypeName","src":"6977:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22468,"initialValue":{"arguments":[{"id":22466,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"7026:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22464,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22237,"src":"6998:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":22465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskPoolForProduct","nodeType":"MemberAccess","referencedDeclaration":21014,"src":"6998:27:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":22467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6998:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6977:59:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":22472,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"7159:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":22474,"indexExpression":{"id":22473,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22463,"src":"7175:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7159:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":22471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7151:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22470,"name":"address","nodeType":"ElementaryTypeName","src":"7151:7:81","typeDescriptions":{}}},"id":22475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7151:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":22478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7199:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7191:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22476,"name":"address","nodeType":"ElementaryTypeName","src":"7191:7:81","typeDescriptions":{}}},"id":22479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7191:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7151:50:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":22483,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"7229:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":22485,"indexExpression":{"id":22484,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22463,"src":"7245:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7229:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":22482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7221:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22481,"name":"address","nodeType":"ElementaryTypeName","src":"7221:7:81","typeDescriptions":{}}},"id":22486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7221:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":22487,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"7261:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7221:52:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7151:122:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031343a5249534b504f4f4c5f544f4b454e5f414444524553535f4e4f545f4d414348494e47","id":22490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7292:50:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbf92c04d1a98b7ef606e69dd4b1bdfb97cdaa3f5e71e07471d88f1ddf906147","typeString":"literal_string \"ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING\""},"value":"ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbf92c04d1a98b7ef606e69dd4b1bdfb97cdaa3f5e71e07471d88f1ddf906147","typeString":"literal_string \"ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING\""}],"id":22469,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7143:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7143:200:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22492,"nodeType":"ExpressionStatement","src":"7143:200:81"},{"expression":{"id":22499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22493,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"7362:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":22495,"indexExpression":{"id":22494,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"7378:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7362:26:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22497,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"7398:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22496,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8831,"src":"7391:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$8831_$","typeString":"type(contract IERC20)"}},"id":22498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7391:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"src":"7362:49:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":22500,"nodeType":"ExpressionStatement","src":"7362:49:81"},{"expression":{"id":22507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22501,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"7421:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":22503,"indexExpression":{"id":22502,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22463,"src":"7437:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7421:27:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22505,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"7458:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22504,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8831,"src":"7451:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$8831_$","typeString":"type(contract IERC20)"}},"id":22506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7451:20:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"src":"7421:50:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":22508,"nodeType":"ExpressionStatement","src":"7421:50:81"},{"eventCall":{"arguments":[{"id":22510,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22394,"src":"7514:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22511,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22463,"src":"7525:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22512,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22396,"src":"7537:12:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":22509,"name":"LogTreasuryProductTokenSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5729,"src":"7487:26:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,uint256,address)"}},"id":22513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7487:63:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22514,"nodeType":"EmitStatement","src":"7482:68:81"}]},"functionSelector":"cc9cf8cd","id":22516,"implemented":true,"kind":"function","modifiers":[{"id":22400,"modifierName":{"id":22399,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"6429:16:81"},"nodeType":"ModifierInvocation","src":"6429:16:81"},{"id":22402,"modifierName":{"id":22401,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"6454:20:81"},"nodeType":"ModifierInvocation","src":"6454:20:81"}],"name":"setProductToken","nameLocation":"6338:15:81","nodeType":"FunctionDefinition","overrides":{"id":22398,"nodeType":"OverrideSpecifier","overrides":[],"src":"6412:8:81"},"parameters":{"id":22397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22394,"mutability":"mutable","name":"productId","nameLocation":"6362:9:81","nodeType":"VariableDeclaration","scope":22516,"src":"6354:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22393,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22396,"mutability":"mutable","name":"erc20Address","nameLocation":"6381:12:81","nodeType":"VariableDeclaration","scope":22516,"src":"6373:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22395,"name":"address","nodeType":"ElementaryTypeName","src":"6373:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6353:41:81"},"returnParameters":{"id":22403,"nodeType":"ParameterList","parameters":[],"src":"6479:0:81"},"scope":23615,"src":"6329:1228:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5850],"body":{"id":22544,"nodeType":"Block","src":"7706:222:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22527,"name":"instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22518,"src":"7724:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7757:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7749:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22528,"name":"address","nodeType":"ElementaryTypeName","src":"7749:7:81","typeDescriptions":{}}},"id":22531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7749:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7724:35:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031353a57414c4c45545f414444524553535f5a45524f","id":22533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7761:35:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_023e61203cb0be5307b17a41d4b69495f70210073b02aa48d79a82beee2c037a","typeString":"literal_string \"ERROR:TRS-015:WALLET_ADDRESS_ZERO\""},"value":"ERROR:TRS-015:WALLET_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_023e61203cb0be5307b17a41d4b69495f70210073b02aa48d79a82beee2c037a","typeString":"literal_string \"ERROR:TRS-015:WALLET_ADDRESS_ZERO\""}],"id":22526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7716:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7716:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22535,"nodeType":"ExpressionStatement","src":"7716:81:81"},{"expression":{"id":22538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22536,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"7807:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22537,"name":"instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22518,"src":"7832:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7807:46:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22539,"nodeType":"ExpressionStatement","src":"7807:46:81"},{"eventCall":{"arguments":[{"id":22541,"name":"instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22518,"src":"7899:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":22540,"name":"LogTreasuryInstanceWalletSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5733,"src":"7869:28:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":22542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7869:52:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22543,"nodeType":"EmitStatement","src":"7864:57:81"}]},"functionSelector":"cab2504d","id":22545,"implemented":true,"kind":"function","modifiers":[{"id":22522,"modifierName":{"id":22521,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"7656:16:81"},"nodeType":"ModifierInvocation","src":"7656:16:81"},{"id":22524,"modifierName":{"id":22523,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"7681:20:81"},"nodeType":"ModifierInvocation","src":"7681:20:81"}],"name":"setInstanceWallet","nameLocation":"7572:17:81","nodeType":"FunctionDefinition","overrides":{"id":22520,"nodeType":"OverrideSpecifier","overrides":[],"src":"7639:8:81"},"parameters":{"id":22519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22518,"mutability":"mutable","name":"instanceWalletAddress","nameLocation":"7598:21:81","nodeType":"VariableDeclaration","scope":22545,"src":"7590:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22517,"name":"address","nodeType":"ElementaryTypeName","src":"7590:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7589:31:81"},"returnParameters":{"id":22525,"nodeType":"ParameterList","parameters":[],"src":"7706:0:81"},"scope":23615,"src":"7563:365:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5857],"body":{"id":22594,"nodeType":"Block","src":"8097:389:81","statements":[{"assignments":[22559],"declarations":[{"constant":false,"id":22559,"mutability":"mutable","name":"component","nameLocation":"8118:9:81","nodeType":"VariableDeclaration","scope":22594,"src":"8107:20:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":22558,"nodeType":"UserDefinedTypeName","pathNode":{"id":22557,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"8107:10:81"},"referencedDeclaration":2988,"src":"8107:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":22564,"initialValue":{"arguments":[{"id":22562,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22547,"src":"8154:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22560,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"8130:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"8130:23:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":22563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8130:35:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"8107:58:81"},{"expression":{"arguments":[{"arguments":[{"id":22568,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22547,"src":"8205:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22566,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"8183:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"8183:21:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8183:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031363a4e4f545f5249534b504f4f4c","id":22570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8218:28:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_2929b40534bc3751b2a6ec3225ca6171f4a79ecde38ee6c1fce17106a98b0991","typeString":"literal_string \"ERROR:TRS-016:NOT_RISKPOOL\""},"value":"ERROR:TRS-016:NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2929b40534bc3751b2a6ec3225ca6171f4a79ecde38ee6c1fce17106a98b0991","typeString":"literal_string \"ERROR:TRS-016:NOT_RISKPOOL\""}],"id":22565,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8175:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8175:72:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22572,"nodeType":"ExpressionStatement","src":"8175:72:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":22579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22574,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22549,"src":"8265:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":22577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8298:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":22576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8290:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22575,"name":"address","nodeType":"ElementaryTypeName","src":"8290:7:81","typeDescriptions":{}}},"id":22578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8290:10:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8265:35:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3031373a57414c4c45545f414444524553535f5a45524f","id":22580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8302:35:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_3acbd6322e617e55df208025743cb9bdef35beedf84134e8e69828378743af76","typeString":"literal_string \"ERROR:TRS-017:WALLET_ADDRESS_ZERO\""},"value":"ERROR:TRS-017:WALLET_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3acbd6322e617e55df208025743cb9bdef35beedf84134e8e69828378743af76","typeString":"literal_string \"ERROR:TRS-017:WALLET_ADDRESS_ZERO\""}],"id":22573,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8257:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8257:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22582,"nodeType":"ExpressionStatement","src":"8257:81:81"},{"expression":{"id":22587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22583,"name":"_riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22215,"src":"8348:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":22585,"indexExpression":{"id":22584,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22547,"src":"8364:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8348:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22586,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22549,"src":"8378:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8348:51:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22588,"nodeType":"ExpressionStatement","src":"8348:51:81"},{"eventCall":{"arguments":[{"id":22590,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22547,"src":"8445:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22591,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22549,"src":"8457:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":22589,"name":"LogTreasuryRiskpoolWalletSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5739,"src":"8415:28:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":22592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8415:64:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22593,"nodeType":"EmitStatement","src":"8410:69:81"}]},"functionSelector":"86039aed","id":22595,"implemented":true,"kind":"function","modifiers":[{"id":22553,"modifierName":{"id":22552,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"8047:16:81"},"nodeType":"ModifierInvocation","src":"8047:16:81"},{"id":22555,"modifierName":{"id":22554,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"8072:20:81"},"nodeType":"ModifierInvocation","src":"8072:20:81"}],"name":"setRiskpoolWallet","nameLocation":"7943:17:81","nodeType":"FunctionDefinition","overrides":{"id":22551,"nodeType":"OverrideSpecifier","overrides":[],"src":"8030:8:81"},"parameters":{"id":22550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22547,"mutability":"mutable","name":"riskpoolId","nameLocation":"7969:10:81","nodeType":"VariableDeclaration","scope":22595,"src":"7961:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22546,"name":"uint256","nodeType":"ElementaryTypeName","src":"7961:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22549,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"7989:21:81","nodeType":"VariableDeclaration","scope":22595,"src":"7981:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22548,"name":"address","nodeType":"ElementaryTypeName","src":"7981:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7960:51:81"},"returnParameters":{"id":22556,"nodeType":"ParameterList","parameters":[],"src":"8097:0:81"},"scope":23615,"src":"7934:552:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5871],"body":{"id":22641,"nodeType":"Block","src":"8744:494:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":22619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":22613,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"8783:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22611,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"8762:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"8762:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8762:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":22617,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"8821:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22615,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"8799:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"8799:21:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8799:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8762:71:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3032303a49445f4e4f545f50524f445543545f4f525f5249534b504f4f4c","id":22620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8835:42:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6bade88963632687c264d794f9df0a7fbb1e4e45c72ac6b0eea83aa8d3c453de","typeString":"literal_string \"ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL\""},"value":"ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6bade88963632687c264d794f9df0a7fbb1e4e45c72ac6b0eea83aa8d3c453de","typeString":"literal_string \"ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL\""}],"id":22610,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8754:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8754:124:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22622,"nodeType":"ExpressionStatement","src":"8754:124:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22624,"name":"fractionalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22601,"src":"8896:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":22625,"name":"FRACTIONAL_FEE_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22187,"src":"8913:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8896:35:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3032313a46524143494f4e414c5f4645455f544f4f5f424947","id":22627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8933:37:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_a583f75e567de5febc61daea2db74bc5d44cccb6bb5cd7ea41b386478b7592a0","typeString":"literal_string \"ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG\""},"value":"ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a583f75e567de5febc61daea2db74bc5d44cccb6bb5cd7ea41b386478b7592a0","typeString":"literal_string \"ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG\""}],"id":22623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"8888:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8888:83:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22629,"nodeType":"ExpressionStatement","src":"8888:83:81"},{"expression":{"arguments":[{"id":22631,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22597,"src":"9019:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22632,"name":"fixedFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22599,"src":"9044:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22633,"name":"fractionalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22601,"src":"9066:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22634,"name":"feeCalculationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22603,"src":"9093:18:81","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":22635,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9125:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9125:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22637,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"9179:5:81","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":22638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","src":"9179:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22630,"name":"FeeSpecification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"8989:16:81","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FeeSpecification_$5838_storage_ptr_$","typeString":"type(struct ITreasury.FeeSpecification storage pointer)"}},"id":22639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8989:241:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"functionReturnParameters":22609,"id":22640,"nodeType":"Return","src":"8982:248:81"}]},"functionSelector":"62f0ab55","id":22642,"implemented":true,"kind":"function","modifiers":[],"name":"createFeeSpecification","nameLocation":"8501:22:81","nodeType":"FunctionDefinition","overrides":{"id":22605,"nodeType":"OverrideSpecifier","overrides":[],"src":"8676:8:81"},"parameters":{"id":22604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22597,"mutability":"mutable","name":"componentId","nameLocation":"8541:11:81","nodeType":"VariableDeclaration","scope":22642,"src":"8533:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22596,"name":"uint256","nodeType":"ElementaryTypeName","src":"8533:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22599,"mutability":"mutable","name":"fixedFee","nameLocation":"8570:8:81","nodeType":"VariableDeclaration","scope":22642,"src":"8562:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22598,"name":"uint256","nodeType":"ElementaryTypeName","src":"8562:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22601,"mutability":"mutable","name":"fractionalFee","nameLocation":"8596:13:81","nodeType":"VariableDeclaration","scope":22642,"src":"8588:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22600,"name":"uint256","nodeType":"ElementaryTypeName","src":"8588:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22603,"mutability":"mutable","name":"feeCalculationData","nameLocation":"8634:18:81","nodeType":"VariableDeclaration","scope":22642,"src":"8619:33:81","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":22602,"name":"bytes","nodeType":"ElementaryTypeName","src":"8619:5:81","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8523:135:81"},"returnParameters":{"id":22609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":22642,"src":"8715:23:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":22607,"nodeType":"UserDefinedTypeName","pathNode":{"id":22606,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"8715:16:81"},"referencedDeclaration":5838,"src":"8715:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"8714:25:81"},"scope":23615,"src":"8492:746:81","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[5877],"body":{"id":22699,"nodeType":"Block","src":"9388:604:81","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":22656,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9427:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"9427:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22654,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"9406:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"9406:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9406:41:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3032323a4e4f545f50524f44554354","id":22659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9449:27:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_002d2121ea321e9dc7af161d487859644848c89f417a8b4f6cd3c64e88216019","typeString":"literal_string \"ERROR:TRS-022:NOT_PRODUCT\""},"value":"ERROR:TRS-022:NOT_PRODUCT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_002d2121ea321e9dc7af161d487859644848c89f417a8b4f6cd3c64e88216019","typeString":"literal_string \"ERROR:TRS-022:NOT_PRODUCT\""}],"id":22653,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"9398:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9398:79:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22661,"nodeType":"ExpressionStatement","src":"9398:79:81"},{"assignments":[22663],"declarations":[{"constant":false,"id":22663,"mutability":"mutable","name":"originalCreatedAt","nameLocation":"9552:17:81","nodeType":"VariableDeclaration","scope":22699,"src":"9544:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22662,"name":"uint256","nodeType":"ElementaryTypeName","src":"9544:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22669,"initialValue":{"expression":{"baseExpression":{"id":22664,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"9572:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22667,"indexExpression":{"expression":{"id":22665,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9578:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"9578:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9572:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"9572:36:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9544:64:81"},{"expression":{"id":22675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22670,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"9618:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22673,"indexExpression":{"expression":{"id":22671,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9624:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"9624:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9618:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22674,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9647:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"src":"9618:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22676,"nodeType":"ExpressionStatement","src":"9618:36:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22677,"name":"originalCreatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22663,"src":"9740:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9760:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9740:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22689,"nodeType":"IfStatement","src":"9736:108:81","trueBody":{"id":22688,"nodeType":"Block","src":"9763:81:81","statements":[{"expression":{"id":22686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":22680,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"9777:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22683,"indexExpression":{"expression":{"id":22681,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9783:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"9783:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9777:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"9777:36:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22685,"name":"originalCreatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22663,"src":"9816:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9777:56:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22687,"nodeType":"ExpressionStatement","src":"9777:56:81"}]}},{"eventCall":{"arguments":[{"expression":{"id":22691,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9899:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"9899:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22693,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9932:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fixedFee","nodeType":"MemberAccess","referencedDeclaration":5829,"src":"9932:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22695,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22645,"src":"9963:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fractionalFee","nodeType":"MemberAccess","referencedDeclaration":5831,"src":"9963:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22690,"name":"LogTreasuryPremiumFeesSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5747,"src":"9859:25:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":22697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9859:126:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22698,"nodeType":"EmitStatement","src":"9854:131:81"}]},"functionSelector":"01132a7f","id":22700,"implemented":true,"kind":"function","modifiers":[{"id":22649,"modifierName":{"id":22648,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"9338:16:81"},"nodeType":"ModifierInvocation","src":"9338:16:81"},{"id":22651,"modifierName":{"id":22650,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"9363:20:81"},"nodeType":"ModifierInvocation","src":"9363:20:81"}],"name":"setPremiumFees","nameLocation":"9253:14:81","nodeType":"FunctionDefinition","overrides":{"id":22647,"nodeType":"OverrideSpecifier","overrides":[],"src":"9321:8:81"},"parameters":{"id":22646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22645,"mutability":"mutable","name":"feeSpec","nameLocation":"9294:7:81","nodeType":"VariableDeclaration","scope":22700,"src":"9268:33:81","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":22644,"nodeType":"UserDefinedTypeName","pathNode":{"id":22643,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"9268:16:81"},"referencedDeclaration":5838,"src":"9268:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"9267:35:81"},"returnParameters":{"id":22652,"nodeType":"ParameterList","parameters":[],"src":"9388:0:81"},"scope":23615,"src":"9244:748:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5883],"body":{"id":22757,"nodeType":"Block","src":"10143:598:81","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":22714,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10183:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"10183:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22712,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"10161:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":22713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"10161:21:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":22716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10161:42:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3032333a4e4f545f5249534b504f4f4c","id":22717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10205:28:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_51470dc3834195a38b6a47115f9352e7c4e977a95b9739b912cca2a00008681e","typeString":"literal_string \"ERROR:TRS-023:NOT_RISKPOOL\""},"value":"ERROR:TRS-023:NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51470dc3834195a38b6a47115f9352e7c4e977a95b9739b912cca2a00008681e","typeString":"literal_string \"ERROR:TRS-023:NOT_RISKPOOL\""}],"id":22711,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10153:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10153:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22719,"nodeType":"ExpressionStatement","src":"10153:81:81"},{"assignments":[22721],"declarations":[{"constant":false,"id":22721,"mutability":"mutable","name":"originalCreatedAt","nameLocation":"10301:17:81","nodeType":"VariableDeclaration","scope":22757,"src":"10293:25:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22720,"name":"uint256","nodeType":"ElementaryTypeName","src":"10293:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":22727,"initialValue":{"expression":{"baseExpression":{"id":22722,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"10321:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22725,"indexExpression":{"expression":{"id":22723,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10327:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"10327:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10321:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"10321:36:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10293:64:81"},{"expression":{"id":22733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":22728,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"10367:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22731,"indexExpression":{"expression":{"id":22729,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10373:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"10373:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10367:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22732,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10396:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"src":"10367:36:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22734,"nodeType":"ExpressionStatement","src":"10367:36:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22735,"name":"originalCreatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22721,"src":"10489:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10509:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10489:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22747,"nodeType":"IfStatement","src":"10485:108:81","trueBody":{"id":22746,"nodeType":"Block","src":"10512:81:81","statements":[{"expression":{"id":22744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":22738,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"10526:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":22741,"indexExpression":{"expression":{"id":22739,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10532:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"10532:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10526:26:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"id":22742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"10526:36:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":22743,"name":"originalCreatedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22721,"src":"10565:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10526:56:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22745,"nodeType":"ExpressionStatement","src":"10526:56:81"}]}},{"eventCall":{"arguments":[{"expression":{"id":22749,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10648:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"componentId","nodeType":"MemberAccess","referencedDeclaration":5827,"src":"10648:19:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22751,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10681:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fixedFee","nodeType":"MemberAccess","referencedDeclaration":5829,"src":"10681:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":22753,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"10712:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}},"id":22754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fractionalFee","nodeType":"MemberAccess","referencedDeclaration":5831,"src":"10712:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22748,"name":"LogTreasuryCapitalFeesSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5755,"src":"10608:25:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":22755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10608:126:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22756,"nodeType":"EmitStatement","src":"10603:131:81"}]},"functionSelector":"8ca946aa","id":22758,"implemented":true,"kind":"function","modifiers":[{"id":22707,"modifierName":{"id":22706,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"10093:16:81"},"nodeType":"ModifierInvocation","src":"10093:16:81"},{"id":22709,"modifierName":{"id":22708,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"10118:20:81"},"nodeType":"ModifierInvocation","src":"10118:20:81"}],"name":"setCapitalFees","nameLocation":"10008:14:81","nodeType":"FunctionDefinition","overrides":{"id":22705,"nodeType":"OverrideSpecifier","overrides":[],"src":"10076:8:81"},"parameters":{"id":22704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22703,"mutability":"mutable","name":"feeSpec","nameLocation":"10049:7:81","nodeType":"VariableDeclaration","scope":22758,"src":"10023:33:81","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":22702,"nodeType":"UserDefinedTypeName","pathNode":{"id":22701,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"10023:16:81"},"referencedDeclaration":5838,"src":"10023:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"10022:35:81"},"returnParameters":{"id":22710,"nodeType":"ParameterList","parameters":[],"src":"10143:0:81"},"scope":23615,"src":"9999:742:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":22797,"nodeType":"Block","src":"10894:251:81","statements":[{"assignments":[22771],"declarations":[{"constant":false,"id":22771,"mutability":"mutable","name":"feeSpec","nameLocation":"10928:7:81","nodeType":"VariableDeclaration","scope":22797,"src":"10904:31:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":22770,"nodeType":"UserDefinedTypeName","pathNode":{"id":22769,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"10904:16:81"},"referencedDeclaration":5838,"src":"10904:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"id":22775,"initialValue":{"arguments":[{"id":22773,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22760,"src":"10958:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22772,"name":"getFeeSpecification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23463,"src":"10938:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_FeeSpecification_$5838_memory_ptr_$","typeString":"function (uint256) view returns (struct ITreasury.FeeSpecification memory)"}},"id":22774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10938:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"nodeType":"VariableDeclarationStatement","src":"10904:66:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22777,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22771,"src":"10988:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":22778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"10988:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":22779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11008:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10988:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3032343a4645455f535045435f554e444546494e4544","id":22781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11011:34:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_f3bfd224a81d9a321038f24de2588f8f485d74dd9e38c360b2708398c4728895","typeString":"literal_string \"ERROR:TRS-024:FEE_SPEC_UNDEFINED\""},"value":"ERROR:TRS-024:FEE_SPEC_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f3bfd224a81d9a321038f24de2588f8f485d74dd9e38c360b2708398c4728895","typeString":"literal_string \"ERROR:TRS-024:FEE_SPEC_UNDEFINED\""}],"id":22776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"10980:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10980:66:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22783,"nodeType":"ExpressionStatement","src":"10980:66:81"},{"expression":{"id":22789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22784,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22765,"src":"11056:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22786,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22771,"src":"11082:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},{"id":22787,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22762,"src":"11091:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22785,"name":"_calculateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23573,"src":"11068:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_FeeSpecification_$5838_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ITreasury.FeeSpecification memory,uint256) pure returns (uint256)"}},"id":22788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11068:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11056:42:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22790,"nodeType":"ExpressionStatement","src":"11056:42:81"},{"expression":{"id":22795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22791,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22767,"src":"11108:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":22792,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22762,"src":"11120:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":22793,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22765,"src":"11129:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11120:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11108:30:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":22796,"nodeType":"ExpressionStatement","src":"11108:30:81"}]},"functionSelector":"34e73122","id":22798,"implemented":true,"kind":"function","modifiers":[],"name":"calculateFee","nameLocation":"10757:12:81","nodeType":"FunctionDefinition","parameters":{"id":22763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22760,"mutability":"mutable","name":"componentId","nameLocation":"10778:11:81","nodeType":"VariableDeclaration","scope":22798,"src":"10770:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22759,"name":"uint256","nodeType":"ElementaryTypeName","src":"10770:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22762,"mutability":"mutable","name":"amount","nameLocation":"10799:6:81","nodeType":"VariableDeclaration","scope":22798,"src":"10791:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22761,"name":"uint256","nodeType":"ElementaryTypeName","src":"10791:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10769:37:81"},"returnParameters":{"id":22768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22765,"mutability":"mutable","name":"feeAmount","nameLocation":"10860:9:81","nodeType":"VariableDeclaration","scope":22798,"src":"10852:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22764,"name":"uint256","nodeType":"ElementaryTypeName","src":"10852:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22767,"mutability":"mutable","name":"netAmount","nameLocation":"10879:9:81","nodeType":"VariableDeclaration","scope":22798,"src":"10871:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22766,"name":"uint256","nodeType":"ElementaryTypeName","src":"10871:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10851:38:81"},"scope":23615,"src":"10748:397:81","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5894],"body":{"id":22846,"nodeType":"Block","src":"11695:313:81","statements":[{"assignments":[22819],"declarations":[{"constant":false,"id":22819,"mutability":"mutable","name":"policy","nameLocation":"11727:6:81","nodeType":"VariableDeclaration","scope":22846,"src":"11705:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":22818,"nodeType":"UserDefinedTypeName","pathNode":{"id":22817,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"11705:14:81"},"referencedDeclaration":5282,"src":"11705:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":22824,"initialValue":{"arguments":[{"id":22822,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22800,"src":"11755:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22820,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"11737:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":22821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"11737:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":22823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11737:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"11705:60:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22825,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22819,"src":"11780:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"11780:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":22827,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22819,"src":"11807:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"11807:28:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11780:55:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22845,"nodeType":"IfStatement","src":"11776:226:81","trueBody":{"id":22844,"nodeType":"Block","src":"11837:165:81","statements":[{"expression":{"id":22842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":22830,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22809,"src":"11852:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22831,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22811,"src":"11861:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22832,"name":"netPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22813,"src":"11872:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22833,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"11851:38:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22835,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22800,"src":"11924:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22836,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22819,"src":"11935:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"11935:28:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":22838,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22819,"src":"11966:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"11966:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11935:55:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22834,"name":"processPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23002,"src":"11909:14:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (bool,uint256,uint256)"}},"id":22841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11909:82:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"11851:140:81","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22843,"nodeType":"ExpressionStatement","src":"11851:140:81"}]}}]},"functionSelector":"5ecc078e","id":22847,"implemented":true,"kind":"function","modifiers":[{"id":22804,"modifierName":{"id":22803,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"11515:16:81"},"nodeType":"ModifierInvocation","src":"11515:16:81"},{"arguments":[{"hexValue":"5472656173757279","id":22806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11555:10:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"id":22807,"modifierName":{"id":22805,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"11540:14:81"},"nodeType":"ModifierInvocation","src":"11540:26:81"}],"name":"processPremium","nameLocation":"11445:14:81","nodeType":"FunctionDefinition","overrides":{"id":22802,"nodeType":"OverrideSpecifier","overrides":[],"src":"11497:8:81"},"parameters":{"id":22801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22800,"mutability":"mutable","name":"processId","nameLocation":"11468:9:81","nodeType":"VariableDeclaration","scope":22847,"src":"11460:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11460:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11459:19:81"},"returnParameters":{"id":22814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22809,"mutability":"mutable","name":"success","nameLocation":"11601:7:81","nodeType":"VariableDeclaration","scope":22847,"src":"11596:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22808,"name":"bool","nodeType":"ElementaryTypeName","src":"11596:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22811,"mutability":"mutable","name":"feeAmount","nameLocation":"11631:9:81","nodeType":"VariableDeclaration","scope":22847,"src":"11623:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22810,"name":"uint256","nodeType":"ElementaryTypeName","src":"11623:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22813,"mutability":"mutable","name":"netPremiumAmount","nameLocation":"11663:16:81","nodeType":"VariableDeclaration","scope":22847,"src":"11655:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22812,"name":"uint256","nodeType":"ElementaryTypeName","src":"11655:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11582:107:81"},"scope":23615,"src":"11436:572:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5907],"body":{"id":23001,"nodeType":"Block","src":"12598:1517:81","statements":[{"assignments":[22875],"declarations":[{"constant":false,"id":22875,"mutability":"mutable","name":"policy","nameLocation":"12630:6:81","nodeType":"VariableDeclaration","scope":23001,"src":"12608:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":22874,"nodeType":"UserDefinedTypeName","pathNode":{"id":22873,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"12608:14:81"},"referencedDeclaration":5282,"src":"12608:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":22880,"initialValue":{"arguments":[{"id":22878,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22849,"src":"12658:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22876,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"12640:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":22877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"12640:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":22879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12640:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"12608:60:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":22882,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22875,"src":"12699:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumPaidAmount","nodeType":"MemberAccess","referencedDeclaration":5269,"src":"12699:24:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":22884,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22851,"src":"12726:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12699:33:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":22886,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22875,"src":"12736:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":22887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"12736:28:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12699:65:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3033303a414d4f554e545f544f4f5f424947","id":22889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12779:30:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_61e1f4ff42e3123af58f70ed814e76c339065814b9eabd9415d5cb832ae5bb26","typeString":"literal_string \"ERROR:TRS-030:AMOUNT_TOO_BIG\""},"value":"ERROR:TRS-030:AMOUNT_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61e1f4ff42e3123af58f70ed814e76c339065814b9eabd9415d5cb832ae5bb26","typeString":"literal_string \"ERROR:TRS-030:AMOUNT_TOO_BIG\""}],"id":22881,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"12678:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12678:141:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22891,"nodeType":"ExpressionStatement","src":"12678:141:81"},{"assignments":[22896],"declarations":[{"constant":false,"id":22896,"mutability":"mutable","name":"metadata","nameLocation":"12854:8:81","nodeType":"VariableDeclaration","scope":23001,"src":"12830:32:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":22895,"nodeType":"UserDefinedTypeName","pathNode":{"id":22894,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"12830:16:81"},"referencedDeclaration":5248,"src":"12830:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":22901,"initialValue":{"arguments":[{"id":22899,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22849,"src":"12885:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":22897,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"12865:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":22898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"12865:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":22900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12865:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"12830:65:81"},{"expression":{"id":22910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":22902,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22867,"src":"12906:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22903,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22869,"src":"12917:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22904,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12905:22:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":22906,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"12956:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"12956:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22908,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22851,"src":"12976:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22905,"name":"calculateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22798,"src":"12943:12:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) view returns (uint256,uint256)"}},"id":22909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12943:40:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12905:78:81","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22911,"nodeType":"ExpressionStatement","src":"12905:78:81"},{"assignments":[22914],"declarations":[{"constant":false,"id":22914,"mutability":"mutable","name":"token","nameLocation":"13055:5:81","nodeType":"VariableDeclaration","scope":23001,"src":"13048:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":22913,"nodeType":"UserDefinedTypeName","pathNode":{"id":22912,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"13048:6:81"},"referencedDeclaration":8831,"src":"13048:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"id":22919,"initialValue":{"arguments":[{"expression":{"id":22916,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13081:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"13081:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22915,"name":"getComponentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23449,"src":"13063:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IERC20_$8831_$","typeString":"function (uint256) view returns (contract IERC20)"}},"id":22918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13063:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"13048:52:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":22930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":22922,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13130:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"13130:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":22926,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"13154:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}],"id":22925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13146:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":22924,"name":"address","nodeType":"ElementaryTypeName","src":"13146:7:81","typeDescriptions":{}}},"id":22927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13146:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22920,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22914,"src":"13114:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":22921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"13114:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":22928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13114:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":22929,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22851,"src":"13163:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13114:55:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22941,"nodeType":"IfStatement","src":"13110:153:81","trueBody":{"id":22940,"nodeType":"Block","src":"13171:92:81","statements":[{"expression":{"id":22933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22931,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13185:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":22932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13195:5:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"13185:15:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22934,"nodeType":"ExpressionStatement","src":"13185:15:81"},{"expression":{"components":[{"id":22935,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13222:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22936,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22867,"src":"13231:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22937,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22869,"src":"13242:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":22938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13221:31:81","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"functionReturnParameters":22870,"id":22939,"nodeType":"Return","src":"13214:38:81"}]}},{"expression":{"id":22951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22942,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13305:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22945,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22914,"src":"13350:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"expression":{"id":22946,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13357:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"13357:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22948,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"13373:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22949,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22867,"src":"13397:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22943,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"13315:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":22944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"13315:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":22950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13315:92:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13305:102:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22952,"nodeType":"ExpressionStatement","src":"13305:102:81"},{"eventCall":{"arguments":[{"expression":{"id":22954,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13449:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"13449:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22956,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"13465:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22957,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22867,"src":"13489:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22953,"name":"LogTreasuryFeesTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5787,"src":"13422:26:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":22958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13422:77:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22959,"nodeType":"EmitStatement","src":"13417:82:81"},{"expression":{"arguments":[{"id":22961,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13517:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3033313a4645455f5452414e534645525f4641494c4544","id":22962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13526:35:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c64a6a11b68791be2b7fc40e3fe3e71aed151a6ed457ee8c919ac899d8679ba6","typeString":"literal_string \"ERROR:TRS-031:FEE_TRANSFER_FAILED\""},"value":"ERROR:TRS-031:FEE_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c64a6a11b68791be2b7fc40e3fe3e71aed151a6ed457ee8c919ac899d8679ba6","typeString":"literal_string \"ERROR:TRS-031:FEE_TRANSFER_FAILED\""}],"id":22960,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13509:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13509:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22964,"nodeType":"ExpressionStatement","src":"13509:53:81"},{"assignments":[22966,22968],"declarations":[{"constant":false,"id":22966,"mutability":"mutable","name":"riskpoolId","nameLocation":"13699:10:81","nodeType":"VariableDeclaration","scope":23001,"src":"13691:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22965,"name":"uint256","nodeType":"ElementaryTypeName","src":"13691:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22968,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"13719:21:81","nodeType":"VariableDeclaration","scope":23001,"src":"13711:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22967,"name":"address","nodeType":"ElementaryTypeName","src":"13711:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":22972,"initialValue":{"arguments":[{"id":22970,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22849,"src":"13763:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":22969,"name":"_getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23614,"src":"13744:18:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$_t_address_$","typeString":"function (bytes32) view returns (uint256,address)"}},"id":22971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13744:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"nodeType":"VariableDeclarationStatement","src":"13690:83:81"},{"expression":{"id":22982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":22973,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13783:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":22976,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22914,"src":"13828:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"expression":{"id":22977,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13835:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"13835:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22979,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22968,"src":"13851:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22980,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22869,"src":"13874:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22974,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"13793:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":22975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"13793:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":22981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13793:91:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13783:101:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":22983,"nodeType":"ExpressionStatement","src":"13783:101:81"},{"eventCall":{"arguments":[{"expression":{"id":22985,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22896,"src":"13930:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":22986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"13930:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22987,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22968,"src":"13946:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22988,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22869,"src":"13969:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22984,"name":"LogTreasuryPremiumTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5763,"src":"13900:29:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":22989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13900:79:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22990,"nodeType":"EmitStatement","src":"13895:84:81"},{"expression":{"arguments":[{"id":22992,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22865,"src":"13997:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3033323a5052454d49554d5f5452414e534645525f4641494c4544","id":22993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14006:39:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_5cf18c155db3e0e44074585a9cca469fe44a6111772a61c46ab85216052cb52e","typeString":"literal_string \"ERROR:TRS-032:PREMIUM_TRANSFER_FAILED\""},"value":"ERROR:TRS-032:PREMIUM_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5cf18c155db3e0e44074585a9cca469fe44a6111772a61c46ab85216052cb52e","typeString":"literal_string \"ERROR:TRS-032:PREMIUM_TRANSFER_FAILED\""}],"id":22991,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"13989:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":22994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13989:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22995,"nodeType":"ExpressionStatement","src":"13989:57:81"},{"eventCall":{"arguments":[{"id":22997,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22849,"src":"14090:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":22998,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22851,"src":"14101:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":22996,"name":"LogTreasuryPremiumProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5801,"src":"14062:27:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":22999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14062:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23000,"nodeType":"EmitStatement","src":"14057:51:81"}]},"functionSelector":"02108268","id":23002,"implemented":true,"kind":"function","modifiers":[{"id":22855,"modifierName":{"id":22854,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"12344:16:81"},"nodeType":"ModifierInvocation","src":"12344:16:81"},{"id":22857,"modifierName":{"id":22856,"name":"instanceWalletDefined","nodeType":"IdentifierPath","referencedDeclaration":22251,"src":"12369:21:81"},"nodeType":"ModifierInvocation","src":"12369:21:81"},{"arguments":[{"id":22859,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22849,"src":"12431:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":22860,"modifierName":{"id":22858,"name":"riskpoolWalletDefinedForProcess","nodeType":"IdentifierPath","referencedDeclaration":22275,"src":"12399:31:81"},"nodeType":"ModifierInvocation","src":"12399:42:81"},{"arguments":[{"hexValue":"5472656173757279","id":22862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12465:10:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"id":22863,"modifierName":{"id":22861,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"12450:14:81"},"nodeType":"ModifierInvocation","src":"12450:26:81"}],"name":"processPremium","nameLocation":"12260:14:81","nodeType":"FunctionDefinition","overrides":{"id":22853,"nodeType":"OverrideSpecifier","overrides":[],"src":"12326:8:81"},"parameters":{"id":22852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22849,"mutability":"mutable","name":"processId","nameLocation":"12283:9:81","nodeType":"VariableDeclaration","scope":23002,"src":"12275:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":22848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12275:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":22851,"mutability":"mutable","name":"amount","nameLocation":"12302:6:81","nodeType":"VariableDeclaration","scope":23002,"src":"12294:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22850,"name":"uint256","nodeType":"ElementaryTypeName","src":"12294:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12274:35:81"},"returnParameters":{"id":22870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22865,"mutability":"mutable","name":"success","nameLocation":"12511:7:81","nodeType":"VariableDeclaration","scope":23002,"src":"12506:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22864,"name":"bool","nodeType":"ElementaryTypeName","src":"12506:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22867,"mutability":"mutable","name":"feeAmount","nameLocation":"12541:9:81","nodeType":"VariableDeclaration","scope":23002,"src":"12533:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22866,"name":"uint256","nodeType":"ElementaryTypeName","src":"12533:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22869,"mutability":"mutable","name":"netAmount","nameLocation":"12573:9:81","nodeType":"VariableDeclaration","scope":23002,"src":"12565:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22868,"name":"uint256","nodeType":"ElementaryTypeName","src":"12565:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12492:100:81"},"scope":23615,"src":"12251:1864:81","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[5918],"body":{"id":23129,"nodeType":"Block","src":"14448:1123:81","statements":[{"assignments":[23028],"declarations":[{"constant":false,"id":23028,"mutability":"mutable","name":"metadata","nameLocation":"14482:8:81","nodeType":"VariableDeclaration","scope":23129,"src":"14458:32:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":23027,"nodeType":"UserDefinedTypeName","pathNode":{"id":23026,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"14458:16:81"},"referencedDeclaration":5248,"src":"14458:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":23033,"initialValue":{"arguments":[{"id":23031,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23004,"src":"14513:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":23029,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"14493:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":23030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"14493:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":23032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14493:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"14458:65:81"},{"assignments":[23036],"declarations":[{"constant":false,"id":23036,"mutability":"mutable","name":"token","nameLocation":"14540:5:81","nodeType":"VariableDeclaration","scope":23129,"src":"14533:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":23035,"nodeType":"UserDefinedTypeName","pathNode":{"id":23034,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"14533:6:81"},"referencedDeclaration":8831,"src":"14533:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"id":23041,"initialValue":{"arguments":[{"expression":{"id":23038,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23028,"src":"14566:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":23039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"14566:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23037,"name":"getComponentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23449,"src":"14548:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_contract$_IERC20_$8831_$","typeString":"function (uint256) view returns (contract IERC20)"}},"id":23040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14548:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"14533:52:81"},{"assignments":[23043,23045],"declarations":[{"constant":false,"id":23043,"mutability":"mutable","name":"riskpoolId","nameLocation":"14604:10:81","nodeType":"VariableDeclaration","scope":23129,"src":"14596:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23042,"name":"uint256","nodeType":"ElementaryTypeName","src":"14596:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23045,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"14624:21:81","nodeType":"VariableDeclaration","scope":23129,"src":"14616:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23044,"name":"address","nodeType":"ElementaryTypeName","src":"14616:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23049,"initialValue":{"arguments":[{"id":23047,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23004,"src":"14668:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":23046,"name":"_getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23614,"src":"14649:18:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$_t_address_$","typeString":"function (bytes32) view returns (uint256,address)"}},"id":23048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14649:29:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"nodeType":"VariableDeclarationStatement","src":"14595:83:81"},{"assignments":[23054],"declarations":[{"constant":false,"id":23054,"mutability":"mutable","name":"payout","nameLocation":"14711:6:81","nodeType":"VariableDeclaration","scope":23129,"src":"14689:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":23053,"nodeType":"UserDefinedTypeName","pathNode":{"id":23052,"name":"IPolicy.Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"14689:14:81"},"referencedDeclaration":5310,"src":"14689:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"id":23060,"initialValue":{"arguments":[{"id":23057,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23004,"src":"14739:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":23058,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23006,"src":"14750:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23055,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"14721:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":23056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPayout","nodeType":"MemberAccess","referencedDeclaration":19941,"src":"14721:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Payout_$5310_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Payout memory)"}},"id":23059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14721:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"nodeType":"VariableDeclarationStatement","src":"14689:70:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23064,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23045,"src":"14806:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23062,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23036,"src":"14790:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":8788,"src":"14790:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":23065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14790:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":23066,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"14832:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"14832:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14790:55:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3034323a5249534b504f4f4c5f57414c4c45545f42414c414e43455f544f4f5f534d414c4c","id":23069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14860:49:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_bbbd206bf526f712f36d054d860aea94d102517fedd4615662eb1c115a60beea","typeString":"literal_string \"ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL\""},"value":"ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bbbd206bf526f712f36d054d860aea94d102517fedd4615662eb1c115a60beea","typeString":"literal_string \"ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL\""}],"id":23061,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14769:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14769:150:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23071,"nodeType":"ExpressionStatement","src":"14769:150:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23075,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23045,"src":"14966:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":23078,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"14997:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}],"id":23077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14989:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23076,"name":"address","nodeType":"ElementaryTypeName","src":"14989:7:81","typeDescriptions":{}}},"id":23079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14989:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23073,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23036,"src":"14950:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"14950:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":23080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14950:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":23081,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"15007:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"15007:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14950:70:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3034333a5041594f55545f414c4c4f57414e43455f544f4f5f534d414c4c","id":23084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15035:42:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e9183e17ad533b95e8b637459b508b75172f9edd7e8c99c80d386496a06de75","typeString":"literal_string \"ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL\""},"value":"ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e9183e17ad533b95e8b637459b508b75172f9edd7e8c99c80d386496a06de75","typeString":"literal_string \"ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL\""}],"id":23072,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"14929:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14929:158:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23086,"nodeType":"ExpressionStatement","src":"14929:158:81"},{"assignments":[23088],"declarations":[{"constant":false,"id":23088,"mutability":"mutable","name":"success","nameLocation":"15145:7:81","nodeType":"VariableDeclaration","scope":23129,"src":"15140:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23087,"name":"bool","nodeType":"ElementaryTypeName","src":"15140:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":23098,"initialValue":{"arguments":[{"id":23091,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23036,"src":"15190:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":23092,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23045,"src":"15197:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23093,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23028,"src":"15220:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":23094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"15220:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23095,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"15236:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"15236:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23089,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"15155:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":23090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"15155:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":23097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15155:95:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"15140:110:81"},{"expression":{"id":23101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23099,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23020,"src":"15260:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":23100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15272:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15260:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23102,"nodeType":"ExpressionStatement","src":"15260:13:81"},{"expression":{"id":23106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23103,"name":"netPayoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23022,"src":"15283:15:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23104,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"15301:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"15301:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15283:31:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23107,"nodeType":"ExpressionStatement","src":"15283:31:81"},{"eventCall":{"arguments":[{"id":23109,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23045,"src":"15359:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23110,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23028,"src":"15382:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":23111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"15382:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23112,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"15398:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"15398:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23108,"name":"LogTreasuryPayoutTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5771,"src":"15330:28:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15330:82:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23115,"nodeType":"EmitStatement","src":"15325:87:81"},{"expression":{"arguments":[{"id":23117,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23088,"src":"15430:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3034343a5041594f55545f5452414e534645525f4641494c4544","id":23118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15439:38:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_b8f0baf95c395dce72ff03341babefe990689bb1ce08b121a2a99bc20faec980","typeString":"literal_string \"ERROR:TRS-044:PAYOUT_TRANSFER_FAILED\""},"value":"ERROR:TRS-044:PAYOUT_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b8f0baf95c395dce72ff03341babefe990689bb1ce08b121a2a99bc20faec980","typeString":"literal_string \"ERROR:TRS-044:PAYOUT_TRANSFER_FAILED\""}],"id":23116,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"15422:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15422:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23120,"nodeType":"ExpressionStatement","src":"15422:56:81"},{"eventCall":{"arguments":[{"id":23122,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23043,"src":"15521:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":23123,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23028,"src":"15534:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":23124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"15534:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":23125,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"15550:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":23126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":5303,"src":"15550:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23121,"name":"LogTreasuryPayoutProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5809,"src":"15494:26:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":23127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15494:70:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23128,"nodeType":"EmitStatement","src":"15489:75:81"}]},"functionSelector":"fe64372b","id":23130,"implemented":true,"kind":"function","modifiers":[{"id":23010,"modifierName":{"id":23009,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"14217:16:81"},"nodeType":"ModifierInvocation","src":"14217:16:81"},{"id":23012,"modifierName":{"id":23011,"name":"instanceWalletDefined","nodeType":"IdentifierPath","referencedDeclaration":22251,"src":"14242:21:81"},"nodeType":"ModifierInvocation","src":"14242:21:81"},{"arguments":[{"id":23014,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23004,"src":"14304:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":23015,"modifierName":{"id":23013,"name":"riskpoolWalletDefinedForProcess","nodeType":"IdentifierPath","referencedDeclaration":22275,"src":"14272:31:81"},"nodeType":"ModifierInvocation","src":"14272:42:81"},{"arguments":[{"hexValue":"5472656173757279","id":23017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14338:10:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"id":23018,"modifierName":{"id":23016,"name":"onlyPolicyFlow","nodeType":"IdentifierPath","referencedDeclaration":26342,"src":"14323:14:81"},"nodeType":"ModifierInvocation","src":"14323:26:81"}],"name":"processPayout","nameLocation":"14131:13:81","nodeType":"FunctionDefinition","overrides":{"id":23008,"nodeType":"OverrideSpecifier","overrides":[],"src":"14200:8:81"},"parameters":{"id":23007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23004,"mutability":"mutable","name":"processId","nameLocation":"14153:9:81","nodeType":"VariableDeclaration","scope":23130,"src":"14145:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23003,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14145:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":23006,"mutability":"mutable","name":"payoutId","nameLocation":"14172:8:81","nodeType":"VariableDeclaration","scope":23130,"src":"14164:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23005,"name":"uint256","nodeType":"ElementaryTypeName","src":"14164:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14144:37:81"},"returnParameters":{"id":23023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23020,"mutability":"mutable","name":"feeAmount","nameLocation":"14387:9:81","nodeType":"VariableDeclaration","scope":23130,"src":"14379:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23019,"name":"uint256","nodeType":"ElementaryTypeName","src":"14379:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23022,"mutability":"mutable","name":"netPayoutAmount","nameLocation":"14418:15:81","nodeType":"VariableDeclaration","scope":23130,"src":"14410:23:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23021,"name":"uint256","nodeType":"ElementaryTypeName","src":"14410:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14365:78:81"},"scope":23615,"src":"14122:1449:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5929],"body":{"id":23285,"nodeType":"Block","src":"15901:1640:81","statements":[{"assignments":[23155],"declarations":[{"constant":false,"id":23155,"mutability":"mutable","name":"bundle","nameLocation":"15978:6:81","nodeType":"VariableDeclaration","scope":23285,"src":"15956:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":23154,"nodeType":"UserDefinedTypeName","pathNode":{"id":23153,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"15956:14:81"},"referencedDeclaration":4936,"src":"15956:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":23160,"initialValue":{"arguments":[{"id":23158,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23132,"src":"16005:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23156,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"15987:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":23157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"15987:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":23159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15987:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"15956:58:81"},{"assignments":[23162],"declarations":[{"constant":false,"id":23162,"mutability":"mutable","name":"bundleOwner","nameLocation":"16032:11:81","nodeType":"VariableDeclaration","scope":23285,"src":"16024:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23161,"name":"address","nodeType":"ElementaryTypeName","src":"16024:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23167,"initialValue":{"arguments":[{"id":23165,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23132,"src":"16063:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23163,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"16046:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":23164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOwner","nodeType":"MemberAccess","referencedDeclaration":16668,"src":"16046:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":23166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16046:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16024:48:81"},{"assignments":[23170],"declarations":[{"constant":false,"id":23170,"mutability":"mutable","name":"feeSpec","nameLocation":"16107:7:81","nodeType":"VariableDeclaration","scope":23285,"src":"16083:31:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":23169,"nodeType":"UserDefinedTypeName","pathNode":{"id":23168,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"16083:16:81"},"referencedDeclaration":5838,"src":"16083:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"id":23175,"initialValue":{"arguments":[{"expression":{"id":23172,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23155,"src":"16137:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"16137:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23171,"name":"getFeeSpecification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23463,"src":"16117:19:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_FeeSpecification_$5838_memory_ptr_$","typeString":"function (uint256) view returns (struct ITreasury.FeeSpecification memory)"}},"id":23174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16117:38:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"nodeType":"VariableDeclarationStatement","src":"16083:72:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23177,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23170,"src":"16173:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":23178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"createdAt","nodeType":"MemberAccess","referencedDeclaration":5835,"src":"16173:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16193:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16173:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3035303a4645455f535045435f554e444546494e4544","id":23181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16196:34:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5e24e1787cfb8007a3eb3c3796c431645b0dfa466828874ea644c38e8537028","typeString":"literal_string \"ERROR:TRS-050:FEE_SPEC_UNDEFINED\""},"value":"ERROR:TRS-050:FEE_SPEC_UNDEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5e24e1787cfb8007a3eb3c3796c431645b0dfa466828874ea644c38e8537028","typeString":"literal_string \"ERROR:TRS-050:FEE_SPEC_UNDEFINED\""}],"id":23176,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16165:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16165:66:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23183,"nodeType":"ExpressionStatement","src":"16165:66:81"},{"assignments":[23186],"declarations":[{"constant":false,"id":23186,"mutability":"mutable","name":"token","nameLocation":"16308:5:81","nodeType":"VariableDeclaration","scope":23285,"src":"16301:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":23185,"nodeType":"UserDefinedTypeName","pathNode":{"id":23184,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"16301:6:81"},"referencedDeclaration":8831,"src":"16301:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"id":23191,"initialValue":{"baseExpression":{"id":23187,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"16316:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":23190,"indexExpression":{"expression":{"id":23188,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23155,"src":"16332:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"16332:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16316:34:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"16301:49:81"},{"expression":{"id":23197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23192,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23147,"src":"16403:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23194,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23170,"src":"16429:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},{"id":23195,"name":"capitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"16438:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23193,"name":"_calculateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23573,"src":"16415:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_FeeSpecification_$5838_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ITreasury.FeeSpecification memory,uint256) pure returns (uint256)"}},"id":23196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16415:37:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16403:49:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23198,"nodeType":"ExpressionStatement","src":"16403:49:81"},{"expression":{"id":23203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23199,"name":"netCapitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23149,"src":"16462:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23200,"name":"capitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"16481:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":23201,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23147,"src":"16497:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16481:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16462:44:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23204,"nodeType":"ExpressionStatement","src":"16462:44:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23208,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"16610:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23206,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23186,"src":"16594:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":8788,"src":"16594:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":23209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16594:28:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":23210,"name":"capitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"16626:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16594:45:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3035323a42414c414e43455f544f4f5f534d414c4c","id":23212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16641:33:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_7de95b395fb2e1b69ae5bfa415c7293d3911661a8a5a83a9008160da9346bd51","typeString":"literal_string \"ERROR:TRS-052:BALANCE_TOO_SMALL\""},"value":"ERROR:TRS-052:BALANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7de95b395fb2e1b69ae5bfa415c7293d3911661a8a5a83a9008160da9346bd51","typeString":"literal_string \"ERROR:TRS-052:BALANCE_TOO_SMALL\""}],"id":23205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16586:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16586:89:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23214,"nodeType":"ExpressionStatement","src":"16586:89:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23218,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"16709:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":23221,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"16730:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}],"id":23220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16722:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23219,"name":"address","nodeType":"ElementaryTypeName","src":"16722:7:81","typeDescriptions":{}}},"id":23222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16722:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23216,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23186,"src":"16693:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"16693:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":23223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16693:43:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":23224,"name":"capitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"16740:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16693:60:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3035333a4341504954414c5f5452414e534645525f414c4c4f57414e43455f544f4f5f534d414c4c","id":23226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16755:52:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_211791b6640da73c43884462143c95a88a879b6ed92d3aff6ce166c1d61a88f2","typeString":"literal_string \"ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL\""},"value":"ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_211791b6640da73c43884462143c95a88a879b6ed92d3aff6ce166c1d61a88f2","typeString":"literal_string \"ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL\""}],"id":23215,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"16685:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16685:123:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23228,"nodeType":"ExpressionStatement","src":"16685:123:81"},{"assignments":[23230],"declarations":[{"constant":false,"id":23230,"mutability":"mutable","name":"success","nameLocation":"16824:7:81","nodeType":"VariableDeclaration","scope":23285,"src":"16819:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23229,"name":"bool","nodeType":"ElementaryTypeName","src":"16819:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":23238,"initialValue":{"arguments":[{"id":23233,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23186,"src":"16869:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":23234,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"16876:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23235,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"16889:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23236,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23147,"src":"16913:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23231,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"16834:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":23232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"16834:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":23237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16834:89:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"16819:104:81"},{"eventCall":{"arguments":[{"id":23240,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"16966:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23241,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"16979:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23242,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23147,"src":"17003:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23239,"name":"LogTreasuryFeesTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5787,"src":"16939:26:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16939:74:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23244,"nodeType":"EmitStatement","src":"16934:79:81"},{"expression":{"arguments":[{"id":23246,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23230,"src":"17031:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3035343a4645455f5452414e534645525f4641494c4544","id":23247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17040:35:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_77500f959cf782554c0ce0c1dde202048b680670f0cce75f17feb23a8e0308ef","typeString":"literal_string \"ERROR:TRS-054:FEE_TRANSFER_FAILED\""},"value":"ERROR:TRS-054:FEE_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_77500f959cf782554c0ce0c1dde202048b680670f0cce75f17feb23a8e0308ef","typeString":"literal_string \"ERROR:TRS-054:FEE_TRANSFER_FAILED\""}],"id":23245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17023:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17023:53:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23249,"nodeType":"ExpressionStatement","src":"17023:53:81"},{"assignments":[23251],"declarations":[{"constant":false,"id":23251,"mutability":"mutable","name":"riskpoolWallet","nameLocation":"17127:14:81","nodeType":"VariableDeclaration","scope":23285,"src":"17119:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23250,"name":"address","nodeType":"ElementaryTypeName","src":"17119:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23256,"initialValue":{"arguments":[{"expression":{"id":23253,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23155,"src":"17162:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"17162:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23252,"name":"getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23494,"src":"17144:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":23255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17144:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17119:61:81"},{"expression":{"id":23265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23257,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23230,"src":"17190:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23260,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23186,"src":"17235:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":23261,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"17242:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23262,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23251,"src":"17255:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23263,"name":"netCapitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23149,"src":"17271:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23258,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"17200:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":23259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"17200:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":23264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17200:88:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17190:98:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23266,"nodeType":"ExpressionStatement","src":"17190:98:81"},{"eventCall":{"arguments":[{"id":23268,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23162,"src":"17334:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23269,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23251,"src":"17347:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23270,"name":"netCapitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23149,"src":"17363:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23267,"name":"LogTreasuryCapitalTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5779,"src":"17304:29:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17304:76:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23272,"nodeType":"EmitStatement","src":"17299:81:81"},{"expression":{"arguments":[{"id":23274,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23230,"src":"17398:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3035353a4341504954414c5f5452414e534645525f4641494c4544","id":23275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17407:39:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee072957df3bcc0b6a380c5eb268686cec614b16dbbda8cabbd506c7cad3be44","typeString":"literal_string \"ERROR:TRS-055:CAPITAL_TRANSFER_FAILED\""},"value":"ERROR:TRS-055:CAPITAL_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ee072957df3bcc0b6a380c5eb268686cec614b16dbbda8cabbd506c7cad3be44","typeString":"literal_string \"ERROR:TRS-055:CAPITAL_TRANSFER_FAILED\""}],"id":23273,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17390:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17390:57:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23277,"nodeType":"ExpressionStatement","src":"17390:57:81"},{"eventCall":{"arguments":[{"expression":{"id":23279,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23155,"src":"17491:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"17491:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23281,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23132,"src":"17510:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23282,"name":"capitalAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23134,"src":"17520:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23278,"name":"LogTreasuryCapitalProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5817,"src":"17463:27:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":23283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17463:71:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23284,"nodeType":"EmitStatement","src":"17458:76:81"}]},"functionSelector":"26debdaa","id":23286,"implemented":true,"kind":"function","modifiers":[{"id":23138,"modifierName":{"id":23137,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"15678:16:81"},"nodeType":"ModifierInvocation","src":"15678:16:81"},{"id":23140,"modifierName":{"id":23139,"name":"instanceWalletDefined","nodeType":"IdentifierPath","referencedDeclaration":22251,"src":"15703:21:81"},"nodeType":"ModifierInvocation","src":"15703:21:81"},{"arguments":[{"id":23142,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23132,"src":"15764:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23143,"modifierName":{"id":23141,"name":"riskpoolWalletDefinedForBundle","nodeType":"IdentifierPath","referencedDeclaration":22304,"src":"15733:30:81"},"nodeType":"ModifierInvocation","src":"15733:40:81"},{"id":23145,"modifierName":{"id":23144,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":22329,"src":"15782:19:81"},"nodeType":"ModifierInvocation","src":"15782:19:81"}],"name":"processCapital","nameLocation":"15586:14:81","nodeType":"FunctionDefinition","overrides":{"id":23136,"nodeType":"OverrideSpecifier","overrides":[],"src":"15660:8:81"},"parameters":{"id":23135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23132,"mutability":"mutable","name":"bundleId","nameLocation":"15609:8:81","nodeType":"VariableDeclaration","scope":23286,"src":"15601:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23131,"name":"uint256","nodeType":"ElementaryTypeName","src":"15601:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23134,"mutability":"mutable","name":"capitalAmount","nameLocation":"15627:13:81","nodeType":"VariableDeclaration","scope":23286,"src":"15619:21:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23133,"name":"uint256","nodeType":"ElementaryTypeName","src":"15619:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15600:41:81"},"returnParameters":{"id":23150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23147,"mutability":"mutable","name":"feeAmount","nameLocation":"15839:9:81","nodeType":"VariableDeclaration","scope":23286,"src":"15831:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23146,"name":"uint256","nodeType":"ElementaryTypeName","src":"15831:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23149,"mutability":"mutable","name":"netCapitalAmount","nameLocation":"15870:16:81","nodeType":"VariableDeclaration","scope":23286,"src":"15862:24:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23148,"name":"uint256","nodeType":"ElementaryTypeName","src":"15862:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15817:79:81"},"scope":23615,"src":"15577:1964:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5940],"body":{"id":23421,"nodeType":"Block","src":"17859:1424:81","statements":[{"assignments":[23311],"declarations":[{"constant":false,"id":23311,"mutability":"mutable","name":"bundle","nameLocation":"17930:6:81","nodeType":"VariableDeclaration","scope":23421,"src":"17908:28:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":23310,"nodeType":"UserDefinedTypeName","pathNode":{"id":23309,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"17908:14:81"},"referencedDeclaration":4936,"src":"17908:14:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":23316,"initialValue":{"arguments":[{"id":23314,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23288,"src":"17957:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23312,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"17939:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":23313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"17939:17:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":23315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17939:27:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"17908:58:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":23335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23318,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"17997:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":4927,"src":"17997:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23320,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"18015:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"18015:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":23322,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23290,"src":"18038:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18015:29:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17997:47:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":23333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23325,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"18061:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":4929,"src":"18061:20:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":23327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18085:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18061:25:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23329,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"18090:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"18090:14:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":23331,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23290,"src":"18108:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18090:24:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18061:53:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":23334,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18060:55:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17997:118:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3036303a43415041434954595f4f525f42414c414e43455f534d414c4c45525f5448414e5f5749544844524157414c","id":23336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18129:59:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_abefc76b4190bc32094fc332397abd635b177c21ff1892fa5ed5fd71e1968656","typeString":"literal_string \"ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL\""},"value":"ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_abefc76b4190bc32094fc332397abd635b177c21ff1892fa5ed5fd71e1968656","typeString":"literal_string \"ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL\""}],"id":23317,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"17976:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17976:222:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23338,"nodeType":"ExpressionStatement","src":"17976:222:81"},{"assignments":[23340],"declarations":[{"constant":false,"id":23340,"mutability":"mutable","name":"riskpoolWallet","nameLocation":"18276:14:81","nodeType":"VariableDeclaration","scope":23421,"src":"18268:22:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23339,"name":"address","nodeType":"ElementaryTypeName","src":"18268:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23345,"initialValue":{"arguments":[{"expression":{"id":23342,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"18311:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"18311:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23341,"name":"getRiskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23494,"src":"18293:17:81","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":23344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18293:36:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18268:61:81"},{"assignments":[23347],"declarations":[{"constant":false,"id":23347,"mutability":"mutable","name":"bundleOwner","nameLocation":"18347:11:81","nodeType":"VariableDeclaration","scope":23421,"src":"18339:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23346,"name":"address","nodeType":"ElementaryTypeName","src":"18339:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23352,"initialValue":{"arguments":[{"id":23350,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23288,"src":"18378:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23348,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22228,"src":"18361:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":23349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOwner","nodeType":"MemberAccess","referencedDeclaration":16668,"src":"18361:16:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":23351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18361:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18339:48:81"},{"assignments":[23355],"declarations":[{"constant":false,"id":23355,"mutability":"mutable","name":"token","nameLocation":"18404:5:81","nodeType":"VariableDeclaration","scope":23421,"src":"18397:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":23354,"nodeType":"UserDefinedTypeName","pathNode":{"id":23353,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"18397:6:81"},"referencedDeclaration":8831,"src":"18397:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"id":23360,"initialValue":{"baseExpression":{"id":23356,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"18412:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":23359,"indexExpression":{"expression":{"id":23357,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"18428:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"18428:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18412:34:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"18397:49:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23364,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23340,"src":"18494:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23362,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23355,"src":"18478:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":8788,"src":"18478:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":23365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18478:31:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":23366,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23290,"src":"18513:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18478:41:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3036313a5249534b504f4f4c5f57414c4c45545f42414c414e43455f544f4f5f534d414c4c","id":23368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18534:49:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ff8d3b4e484daf7626b33b4e51d57bdf16ceea6f454579b2b8cc97aa218b830","typeString":"literal_string \"ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL\""},"value":"ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4ff8d3b4e484daf7626b33b4e51d57bdf16ceea6f454579b2b8cc97aa218b830","typeString":"literal_string \"ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL\""}],"id":23361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18457:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18457:136:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23370,"nodeType":"ExpressionStatement","src":"18457:136:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23374,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23340,"src":"18640:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":23377,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"18664:4:81","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}],"id":23376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18656:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23375,"name":"address","nodeType":"ElementaryTypeName","src":"18656:7:81","typeDescriptions":{}}},"id":23378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18656:13:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23372,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23355,"src":"18624:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":23373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"18624:15:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":23379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18624:46:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":23380,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23290,"src":"18674:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18624:56:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3036323a5749544844524157414c5f414c4c4f57414e43455f544f4f5f534d414c4c","id":23382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18695:46:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_fe68ccbc21a2bc35481ec1ba83353491017fc775b9abae87cf31e492c23093ec","typeString":"literal_string \"ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL\""},"value":"ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fe68ccbc21a2bc35481ec1ba83353491017fc775b9abae87cf31e492c23093ec","typeString":"literal_string \"ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL\""}],"id":23371,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"18603:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18603:148:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23384,"nodeType":"ExpressionStatement","src":"18603:148:81"},{"expression":{"id":23387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23385,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23303,"src":"18885:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":23386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18897:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18885:13:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23388,"nodeType":"ExpressionStatement","src":"18885:13:81"},{"expression":{"id":23391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23389,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23305,"src":"18908:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":23390,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23290,"src":"18920:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18908:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23392,"nodeType":"ExpressionStatement","src":"18908:18:81"},{"assignments":[23394],"declarations":[{"constant":false,"id":23394,"mutability":"mutable","name":"success","nameLocation":"18941:7:81","nodeType":"VariableDeclaration","scope":23421,"src":"18936:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23393,"name":"bool","nodeType":"ElementaryTypeName","src":"18936:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":23402,"initialValue":{"arguments":[{"id":23397,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23355,"src":"18986:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":23398,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23340,"src":"18993:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23399,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23347,"src":"19009:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23400,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23305,"src":"19022:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23395,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"18951:14:81","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":23396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"18951:34:81","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":23401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18951:81:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18936:96:81"},{"eventCall":{"arguments":[{"id":23404,"name":"riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23340,"src":"19081:14:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23405,"name":"bundleOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23347,"src":"19097:11:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23406,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23305,"src":"19110:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23403,"name":"LogTreasuryWithdrawalTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5795,"src":"19048:32:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":23407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19048:72:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23408,"nodeType":"EmitStatement","src":"19043:77:81"},{"expression":{"arguments":[{"id":23410,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23394,"src":"19138:7:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3036333a5749544844524157414c5f5452414e534645525f4641494c4544","id":23411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19147:42:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3c791ba0a21dcb3428b822dcce6828d8b36ff48be0d7f71d7205920e54c15b3","typeString":"literal_string \"ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED\""},"value":"ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c3c791ba0a21dcb3428b822dcce6828d8b36ff48be0d7f71d7205920e54c15b3","typeString":"literal_string \"ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED\""}],"id":23409,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19130:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19130:60:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23413,"nodeType":"ExpressionStatement","src":"19130:60:81"},{"eventCall":{"arguments":[{"expression":{"id":23415,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23311,"src":"19237:6:81","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":23416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"19237:17:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23417,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23288,"src":"19256:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23418,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23305,"src":"19266:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23414,"name":"LogTreasuryWithdrawalProcessed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5825,"src":"19206:30:81","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":23419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19206:70:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23420,"nodeType":"EmitStatement","src":"19201:75:81"}]},"functionSelector":"d9358075","id":23422,"implemented":true,"kind":"function","modifiers":[{"id":23294,"modifierName":{"id":23293,"name":"whenNotSuspended","nodeType":"IdentifierPath","referencedDeclaration":22315,"src":"17643:16:81"},"nodeType":"ModifierInvocation","src":"17643:16:81"},{"id":23296,"modifierName":{"id":23295,"name":"instanceWalletDefined","nodeType":"IdentifierPath","referencedDeclaration":22251,"src":"17668:21:81"},"nodeType":"ModifierInvocation","src":"17668:21:81"},{"arguments":[{"id":23298,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23288,"src":"17729:8:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23299,"modifierName":{"id":23297,"name":"riskpoolWalletDefinedForBundle","nodeType":"IdentifierPath","referencedDeclaration":22304,"src":"17698:30:81"},"nodeType":"ModifierInvocation","src":"17698:40:81"},{"id":23301,"modifierName":{"id":23300,"name":"onlyRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":22329,"src":"17747:19:81"},"nodeType":"ModifierInvocation","src":"17747:19:81"}],"name":"processWithdrawal","nameLocation":"17556:17:81","nodeType":"FunctionDefinition","overrides":{"id":23292,"nodeType":"OverrideSpecifier","overrides":[],"src":"17626:8:81"},"parameters":{"id":23291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23288,"mutability":"mutable","name":"bundleId","nameLocation":"17582:8:81","nodeType":"VariableDeclaration","scope":23422,"src":"17574:16:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23287,"name":"uint256","nodeType":"ElementaryTypeName","src":"17574:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23290,"mutability":"mutable","name":"amount","nameLocation":"17600:6:81","nodeType":"VariableDeclaration","scope":23422,"src":"17592:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23289,"name":"uint256","nodeType":"ElementaryTypeName","src":"17592:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17573:34:81"},"returnParameters":{"id":23306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23303,"mutability":"mutable","name":"feeAmount","nameLocation":"17804:9:81","nodeType":"VariableDeclaration","scope":23422,"src":"17796:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23302,"name":"uint256","nodeType":"ElementaryTypeName","src":"17796:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23305,"mutability":"mutable","name":"netAmount","nameLocation":"17835:9:81","nodeType":"VariableDeclaration","scope":23422,"src":"17827:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23304,"name":"uint256","nodeType":"ElementaryTypeName","src":"17827:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17782:72:81"},"scope":23615,"src":"17547:1736:81","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5948],"body":{"id":23448,"nodeType":"Block","src":"19411:183:81","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":23440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23434,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23424,"src":"19450:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23432,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"19429:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"19429:20:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":23435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19429:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":23438,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23424,"src":"19488:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23436,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22231,"src":"19466:10:81","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRiskpool","nodeType":"MemberAccess","referencedDeclaration":17753,"src":"19466:21:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":23439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19466:34:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19429:71:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3037303a4e4f545f50524f445543545f4f525f5249534b504f4f4c","id":23441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19502:39:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df3c78e93cd9b7c9045f326b01178dc9332f2f6498582ce9cff7c8821aa1d20","typeString":"literal_string \"ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL\""},"value":"ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0df3c78e93cd9b7c9045f326b01178dc9332f2f6498582ce9cff7c8821aa1d20","typeString":"literal_string \"ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL\""}],"id":23431,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"19421:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19421:121:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23443,"nodeType":"ExpressionStatement","src":"19421:121:81"},{"expression":{"baseExpression":{"id":23444,"name":"_componentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22225,"src":"19559:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_contract$_IERC20_$8831_$","typeString":"mapping(uint256 => contract IERC20)"}},"id":23446,"indexExpression":{"id":23445,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23424,"src":"19575:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19559:28:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"functionReturnParameters":23430,"id":23447,"nodeType":"Return","src":"19552:35:81"}]},"functionSelector":"038696bb","id":23449,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentToken","nameLocation":"19299:17:81","nodeType":"FunctionDefinition","overrides":{"id":23426,"nodeType":"OverrideSpecifier","overrides":[],"src":"19354:8:81"},"parameters":{"id":23425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23424,"mutability":"mutable","name":"componentId","nameLocation":"19325:11:81","nodeType":"VariableDeclaration","scope":23449,"src":"19317:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23423,"name":"uint256","nodeType":"ElementaryTypeName","src":"19317:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19316:21:81"},"returnParameters":{"id":23430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23429,"mutability":"mutable","name":"token","nameLocation":"19399:5:81","nodeType":"VariableDeclaration","scope":23449,"src":"19392:12:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":23428,"nodeType":"UserDefinedTypeName","pathNode":{"id":23427,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"19392:6:81"},"referencedDeclaration":8831,"src":"19392:6:81","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"19391:14:81"},"scope":23615,"src":"19290:304:81","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5956],"body":{"id":23462,"nodeType":"Block","src":"19704:42:81","statements":[{"expression":{"baseExpression":{"id":23458,"name":"_fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"19721:5:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_FeeSpecification_$5838_storage_$","typeString":"mapping(uint256 => struct ITreasury.FeeSpecification storage ref)"}},"id":23460,"indexExpression":{"id":23459,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23451,"src":"19727:11:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19721:18:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage","typeString":"struct ITreasury.FeeSpecification storage ref"}},"functionReturnParameters":23457,"id":23461,"nodeType":"Return","src":"19714:25:81"}]},"functionSelector":"a434f0ad","id":23463,"implemented":true,"kind":"function","modifiers":[],"name":"getFeeSpecification","nameLocation":"19609:19:81","nodeType":"FunctionDefinition","overrides":{"id":23453,"nodeType":"OverrideSpecifier","overrides":[],"src":"19657:8:81"},"parameters":{"id":23452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23451,"mutability":"mutable","name":"componentId","nameLocation":"19637:11:81","nodeType":"VariableDeclaration","scope":23463,"src":"19629:19:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23450,"name":"uint256","nodeType":"ElementaryTypeName","src":"19629:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19628:21:81"},"returnParameters":{"id":23457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23463,"src":"19679:23:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":23455,"nodeType":"UserDefinedTypeName","pathNode":{"id":23454,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"19679:16:81"},"referencedDeclaration":5838,"src":"19679:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"19678:25:81"},"scope":23615,"src":"19600:146:81","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5961],"body":{"id":23471,"nodeType":"Block","src":"19821:44:81","statements":[{"expression":{"id":23469,"name":"FRACTION_FULL_UNIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22182,"src":"19839:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":23468,"id":23470,"nodeType":"Return","src":"19832:25:81"}]},"functionSelector":"8ccf5ca2","id":23472,"implemented":true,"kind":"function","modifiers":[],"name":"getFractionFullUnit","nameLocation":"19761:19:81","nodeType":"FunctionDefinition","overrides":{"id":23465,"nodeType":"OverrideSpecifier","overrides":[],"src":"19790:8:81"},"parameters":{"id":23464,"nodeType":"ParameterList","parameters":[],"src":"19780:2:81"},"returnParameters":{"id":23468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23472,"src":"19812:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23466,"name":"uint256","nodeType":"ElementaryTypeName","src":"19812:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19811:9:81"},"scope":23615,"src":"19752:113:81","stateMutability":"pure","virtual":false,"visibility":"public"},{"baseFunctions":[5966],"body":{"id":23480,"nodeType":"Block","src":"19938:48:81","statements":[{"expression":{"id":23478,"name":"_instanceWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22211,"src":"19956:22:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":23477,"id":23479,"nodeType":"Return","src":"19949:29:81"}]},"functionSelector":"a44330c4","id":23481,"implemented":true,"kind":"function","modifiers":[],"name":"getInstanceWallet","nameLocation":"19880:17:81","nodeType":"FunctionDefinition","overrides":{"id":23474,"nodeType":"OverrideSpecifier","overrides":[],"src":"19907:8:81"},"parameters":{"id":23473,"nodeType":"ParameterList","parameters":[],"src":"19897:2:81"},"returnParameters":{"id":23477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23481,"src":"19929:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23475,"name":"address","nodeType":"ElementaryTypeName","src":"19929:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19928:9:81"},"scope":23615,"src":"19871:115:81","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[5973],"body":{"id":23493,"nodeType":"Block","src":"20077:51:81","statements":[{"expression":{"baseExpression":{"id":23489,"name":"_riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22215,"src":"20094:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":23491,"indexExpression":{"id":23490,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23483,"src":"20110:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20094:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":23488,"id":23492,"nodeType":"Return","src":"20087:34:81"}]},"functionSelector":"49081637","id":23494,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolWallet","nameLocation":"20001:17:81","nodeType":"FunctionDefinition","overrides":{"id":23485,"nodeType":"OverrideSpecifier","overrides":[],"src":"20046:8:81"},"parameters":{"id":23484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23483,"mutability":"mutable","name":"riskpoolId","nameLocation":"20027:10:81","nodeType":"VariableDeclaration","scope":23494,"src":"20019:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23482,"name":"uint256","nodeType":"ElementaryTypeName","src":"20019:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20018:20:81"},"returnParameters":{"id":23488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23494,"src":"20068:7:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23486,"name":"address","nodeType":"ElementaryTypeName","src":"20068:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20067:9:81"},"scope":23615,"src":"19992:136:81","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":23522,"nodeType":"Block","src":"20385:136:81","statements":[{"expression":{"id":23512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23507,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23503,"src":"20395:11:81","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23510,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23499,"src":"20433:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":23508,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"20410:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":23509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":19835,"src":"20410:22:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":23511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20410:33:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"src":"20395:48:81","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":23513,"nodeType":"ExpressionStatement","src":"20395:48:81"},{"expression":{"id":23520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23514,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23505,"src":"20453:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":23516,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23497,"src":"20479:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},{"expression":{"id":23517,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23503,"src":"20488:11:81","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":23518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumAmount","nodeType":"MemberAccess","referencedDeclaration":5253,"src":"20488:25:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":23515,"name":"_calculateFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23573,"src":"20465:13:81","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_FeeSpecification_$5838_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct ITreasury.FeeSpecification memory,uint256) pure returns (uint256)"}},"id":23519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20465:49:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20453:61:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23521,"nodeType":"ExpressionStatement","src":"20453:61:81"}]},"id":23523,"implemented":true,"kind":"function","modifiers":[],"name":"_calculatePremiumFee","nameLocation":"20144:20:81","nodeType":"FunctionDefinition","parameters":{"id":23500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23497,"mutability":"mutable","name":"feeSpec","nameLocation":"20198:7:81","nodeType":"VariableDeclaration","scope":23523,"src":"20174:31:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":23496,"nodeType":"UserDefinedTypeName","pathNode":{"id":23495,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"20174:16:81"},"referencedDeclaration":5838,"src":"20174:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"},{"constant":false,"id":23499,"mutability":"mutable","name":"processId","nameLocation":"20224:9:81","nodeType":"VariableDeclaration","scope":23523,"src":"20216:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20216:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20164:75:81"},"returnParameters":{"id":23506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23503,"mutability":"mutable","name":"application","nameLocation":"20327:11:81","nodeType":"VariableDeclaration","scope":23523,"src":"20300:38:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":23502,"nodeType":"UserDefinedTypeName","pathNode":{"id":23501,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"20300:19:81"},"referencedDeclaration":5262,"src":"20300:19:81","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"},{"constant":false,"id":23505,"mutability":"mutable","name":"feeAmount","nameLocation":"20361:9:81","nodeType":"VariableDeclaration","scope":23523,"src":"20353:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23504,"name":"uint256","nodeType":"ElementaryTypeName","src":"20353:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20286:94:81"},"scope":23615,"src":"20135:386:81","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":23572,"nodeType":"Block","src":"20694:500:81","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":23533,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23526,"src":"20708:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":23534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeCalculationData","nodeType":"MemberAccess","referencedDeclaration":5833,"src":"20708:26:81","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":23535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"20708:33:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20744:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20708:37:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23543,"nodeType":"IfStatement","src":"20704:126:81","trueBody":{"id":23542,"nodeType":"Block","src":"20747:83:81","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a5452532d3039303a4645455f43414c43554c4154494f4e5f444154415f4e4f545f535550504f52544544","id":23539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20768:50:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a7920c070ee7c8d85c964148119b679dffd62a937b57794605d2b978251dbac","typeString":"literal_string \"ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED\""},"value":"ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a7920c070ee7c8d85c964148119b679dffd62a937b57794605d2b978251dbac","typeString":"literal_string \"ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED\""}],"id":23538,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"20761:6:81","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":23540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20761:58:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23541,"nodeType":"ExpressionStatement","src":"20761:58:81"}]}},{"expression":{"id":23547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23544,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23531,"src":"20872:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":23545,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23526,"src":"20884:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":23546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fixedFee","nodeType":"MemberAccess","referencedDeclaration":5829,"src":"20884:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20872:28:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23548,"nodeType":"ExpressionStatement","src":"20872:28:81"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23549,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23526,"src":"20952:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":23550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fractionalFee","nodeType":"MemberAccess","referencedDeclaration":5831,"src":"20952:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20976:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20952:25:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":23564,"nodeType":"IfStatement","src":"20948:122:81","trueBody":{"id":23563,"nodeType":"Block","src":"20979:91:81","statements":[{"expression":{"id":23561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23553,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23531,"src":"20993:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":23554,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23526,"src":"21007:7:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"id":23555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fractionalFee","nodeType":"MemberAccess","referencedDeclaration":5831,"src":"21007:21:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":23556,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23528,"src":"21031:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21007:30:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23558,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21006:32:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":23559,"name":"FRACTION_FULL_UNIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22182,"src":"21041:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21006:53:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20993:66:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23562,"nodeType":"ExpressionStatement","src":"20993:66:81"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23566,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23531,"src":"21139:9:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":23567,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23528,"src":"21151:6:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21139:18:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3039313a4645455f544f4f5f424947","id":23569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21159:27:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_e106755395283005e5aee6caae70ff5d864aa76c26b2d96a6a077ed12733afd7","typeString":"literal_string \"ERROR:TRS-091:FEE_TOO_BIG\""},"value":"ERROR:TRS-091:FEE_TOO_BIG"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e106755395283005e5aee6caae70ff5d864aa76c26b2d96a6a077ed12733afd7","typeString":"literal_string \"ERROR:TRS-091:FEE_TOO_BIG\""}],"id":23565,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21131:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21131:56:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23571,"nodeType":"ExpressionStatement","src":"21131:56:81"}]},"id":23573,"implemented":true,"kind":"function","modifiers":[],"name":"_calculateFee","nameLocation":"20538:13:81","nodeType":"FunctionDefinition","parameters":{"id":23529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23526,"mutability":"mutable","name":"feeSpec","nameLocation":"20585:7:81","nodeType":"VariableDeclaration","scope":23573,"src":"20561:31:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":23525,"nodeType":"UserDefinedTypeName","pathNode":{"id":23524,"name":"FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"20561:16:81"},"referencedDeclaration":5838,"src":"20561:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"},{"constant":false,"id":23528,"mutability":"mutable","name":"amount","nameLocation":"20611:6:81","nodeType":"VariableDeclaration","scope":23573,"src":"20603:14:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23527,"name":"uint256","nodeType":"ElementaryTypeName","src":"20603:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20551:72:81"},"returnParameters":{"id":23532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23531,"mutability":"mutable","name":"feeAmount","nameLocation":"20679:9:81","nodeType":"VariableDeclaration","scope":23573,"src":"20671:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23530,"name":"uint256","nodeType":"ElementaryTypeName","src":"20671:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20670:19:81"},"scope":23615,"src":"20529:665:81","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":23613,"nodeType":"Block","src":"21349:288:81","statements":[{"assignments":[23586],"declarations":[{"constant":false,"id":23586,"mutability":"mutable","name":"metadata","nameLocation":"21383:8:81","nodeType":"VariableDeclaration","scope":23613,"src":"21359:32:81","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":23585,"nodeType":"UserDefinedTypeName","pathNode":{"id":23584,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"21359:16:81"},"referencedDeclaration":5248,"src":"21359:16:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"id":23591,"initialValue":{"arguments":[{"id":23589,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23575,"src":"21414:9:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":23587,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22234,"src":"21394:7:81","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":23588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"21394:19:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":23590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21394:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"VariableDeclarationStatement","src":"21359:65:81"},{"expression":{"id":23598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23592,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23578,"src":"21434:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":23595,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23586,"src":"21475:8:81","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":23596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"productId","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"21475:18:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23593,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22237,"src":"21447:5:81","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":23594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskPoolForProduct","nodeType":"MemberAccess","referencedDeclaration":21014,"src":"21447:27:81","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":23597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21447:47:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21434:60:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":23599,"nodeType":"ExpressionStatement","src":"21434:60:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":23603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":23601,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23578,"src":"21512:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":23602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21525:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21512:14:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5452532d3039323a50524f445543545f574954484f55545f5249534b504f4f4c","id":23604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21528:40:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_a12cb855de85ca500fa62d405caf8e8c48f5df6ba8af9f453603b23bd9e4d04d","typeString":"literal_string \"ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL\""},"value":"ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a12cb855de85ca500fa62d405caf8e8c48f5df6ba8af9f453603b23bd9e4d04d","typeString":"literal_string \"ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL\""}],"id":23600,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"21504:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21504:65:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23606,"nodeType":"ExpressionStatement","src":"21504:65:81"},{"expression":{"id":23611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23607,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23580,"src":"21579:21:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":23608,"name":"_riskpoolWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22215,"src":"21603:15:81","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":23610,"indexExpression":{"id":23609,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23578,"src":"21619:10:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21603:27:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21579:51:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":23612,"nodeType":"ExpressionStatement","src":"21579:51:81"}]},"id":23614,"implemented":true,"kind":"function","modifiers":[],"name":"_getRiskpoolWallet","nameLocation":"21210:18:81","nodeType":"FunctionDefinition","parameters":{"id":23576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23575,"mutability":"mutable","name":"processId","nameLocation":"21237:9:81","nodeType":"VariableDeclaration","scope":23614,"src":"21229:17:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21229:7:81","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21228:19:81"},"returnParameters":{"id":23581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23578,"mutability":"mutable","name":"riskpoolId","nameLocation":"21302:10:81","nodeType":"VariableDeclaration","scope":23614,"src":"21294:18:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23577,"name":"uint256","nodeType":"ElementaryTypeName","src":"21294:7:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23580,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"21322:21:81","nodeType":"VariableDeclaration","scope":23614,"src":"21314:29:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23579,"name":"address","nodeType":"ElementaryTypeName","src":"21314:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21293:51:81"},"scope":23615,"src":"21201:436:81","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":23616,"src":"3548:18091:81"}],"src":"39:21601:81"},"id":81},"contracts/services/ComponentOwnerService.sol":{"ast":{"absolutePath":"contracts/services/ComponentOwnerService.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"ComponentOwnerService":[23837],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IOracle":[3022],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"Initializable":[8059],"Ownable":[7481],"PolicyController":[19974],"PoolController":[21207],"Strings":[10804]},"id":23838,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23617,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:82"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"../modules/ComponentController.sol","id":23618,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23838,"sourceUnit":17948,"src":"66:44:82","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"../modules/PoolController.sol","id":23619,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23838,"sourceUnit":21208,"src":"251:39:82","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":23620,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23838,"sourceUnit":26414,"src":"292:38:82","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":23621,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23838,"sourceUnit":2989,"src":"334:69:82","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","file":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","id":23622,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":23838,"sourceUnit":6010,"src":"405:79:82","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":23623,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"528:22:82"},"id":23624,"nodeType":"InheritanceSpecifier","src":"528:22:82"},{"baseName":{"id":23625,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"557:14:82"},"id":23626,"nodeType":"InheritanceSpecifier","src":"557:14:82"}],"contractDependencies":[6009,8059,10518,26413],"contractKind":"contract","fullyImplemented":true,"id":23837,"linearizedBaseContracts":[23837,26413,8059,10518,6009],"name":"ComponentOwnerService","nameLocation":"497:21:82","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":23629,"mutability":"mutable","name":"_component","nameLocation":"608:10:82","nodeType":"VariableDeclaration","scope":23837,"src":"580:38:82","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":23628,"nodeType":"UserDefinedTypeName","pathNode":{"id":23627,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"580:19:82"},"referencedDeclaration":17947,"src":"580:19:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"body":{"id":23667,"nodeType":"Block","src":"689:311:82","statements":[{"assignments":[23635],"declarations":[{"constant":false,"id":23635,"mutability":"mutable","name":"owner","nameLocation":"708:5:82","nodeType":"VariableDeclaration","scope":23667,"src":"700:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23634,"name":"address","nodeType":"ElementaryTypeName","src":"700:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23639,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23636,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23632,"src":"716:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":23637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOwner","nodeType":"MemberAccess","referencedDeclaration":2942,"src":"716:18:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":23638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"716:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"700:36:82"},{"assignments":[23641],"declarations":[{"constant":false,"id":23641,"mutability":"mutable","name":"requiredRole","nameLocation":"755:12:82","nodeType":"VariableDeclaration","scope":23667,"src":"747:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"747:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":23648,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23644,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23632,"src":"797:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":23645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getType","nodeType":"MemberAccess","referencedDeclaration":2931,"src":"797:17:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_enum$_ComponentType_$2891_$","typeString":"function () view external returns (enum IComponent.ComponentType)"}},"id":23646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"797:19:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}],"expression":{"id":23642,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"770:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRequiredRole","nodeType":"MemberAccess","referencedDeclaration":17670,"src":"770:26:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_enum$_ComponentType_$2891_$returns$_t_bytes32_$","typeString":"function (enum IComponent.ComponentType) view external returns (bytes32)"}},"id":23647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"770:47:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"747:70:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":23653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":23650,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"836:10:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"836:12:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":23652,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23635,"src":"852:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"836:21:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434f532d3030313a4e4f545f4f574e4552","id":23654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"859:25:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_465d2c87dcb0f9e507f01f9bd011e20013cefede3ead0fe8442c34503dee279a","typeString":"literal_string \"ERROR:COS-001:NOT_OWNER\""},"value":"ERROR:COS-001:NOT_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_465d2c87dcb0f9e507f01f9bd011e20013cefede3ead0fe8442c34503dee279a","typeString":"literal_string \"ERROR:COS-001:NOT_OWNER\""}],"id":23649,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"828:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"828:57:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23656,"nodeType":"ExpressionStatement","src":"828:57:82"},{"expression":{"arguments":[{"arguments":[{"id":23660,"name":"requiredRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23641,"src":"920:12:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":23661,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23635,"src":"934:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23658,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"904:7:82","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":23659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":4804,"src":"904:15:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":23662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"904:36:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434f532d3030323a52455155495245445f524f4c455f4d495353494e47","id":23663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"942:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba7f3dd1050d0760c96ec2016b668c5029825c4f0129279369d1f9706925f324","typeString":"literal_string \"ERROR:COS-002:REQUIRED_ROLE_MISSING\""},"value":"ERROR:COS-002:REQUIRED_ROLE_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba7f3dd1050d0760c96ec2016b668c5029825c4f0129279369d1f9706925f324","typeString":"literal_string \"ERROR:COS-002:REQUIRED_ROLE_MISSING\""}],"id":23657,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"896:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"896:84:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23665,"nodeType":"ExpressionStatement","src":"896:84:82"},{"id":23666,"nodeType":"PlaceholderStatement","src":"991:1:82"}]},"id":23668,"name":"onlyOwnerWithRoleFromComponent","nameLocation":"636:30:82","nodeType":"ModifierDefinition","parameters":{"id":23633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23632,"mutability":"mutable","name":"component","nameLocation":"678:9:82","nodeType":"VariableDeclaration","scope":23668,"src":"667:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":23631,"nodeType":"UserDefinedTypeName","pathNode":{"id":23630,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"667:10:82"},"referencedDeclaration":2988,"src":"667:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"666:22:82"},"src":"627:373:82","virtual":false,"visibility":"internal"},{"body":{"id":23727,"nodeType":"Block","src":"1047:478:82","statements":[{"assignments":[23674],"declarations":[{"constant":false,"id":23674,"mutability":"mutable","name":"component","nameLocation":"1069:9:82","nodeType":"VariableDeclaration","scope":23727,"src":"1058:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":23673,"nodeType":"UserDefinedTypeName","pathNode":{"id":23672,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"1058:10:82"},"referencedDeclaration":2988,"src":"1058:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":23679,"initialValue":{"arguments":[{"id":23677,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23670,"src":"1105:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23675,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"1081:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"1081:23:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":23678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1081:27:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"1058:50:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":23689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":23683,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23674,"src":"1135:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":23682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1127:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23681,"name":"address","nodeType":"ElementaryTypeName","src":"1127:7:82","typeDescriptions":{}}},"id":23684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1127:18:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":23687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1157:1:82","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":23686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1149:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23685,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:82","typeDescriptions":{}}},"id":23688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1149:10:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1127:32:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434f532d3030333a434f4d504f4e454e545f49445f494e56414c4944","id":23690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1161:36:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd56e2e72358a9edc326877a1e38d84909493861f3901cf215f515edfe95f5df","typeString":"literal_string \"ERROR:COS-003:COMPONENT_ID_INVALID\""},"value":"ERROR:COS-003:COMPONENT_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd56e2e72358a9edc326877a1e38d84909493861f3901cf215f515edfe95f5df","typeString":"literal_string \"ERROR:COS-003:COMPONENT_ID_INVALID\""}],"id":23680,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1119:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1119:79:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23692,"nodeType":"ExpressionStatement","src":"1119:79:82"},{"assignments":[23694],"declarations":[{"constant":false,"id":23694,"mutability":"mutable","name":"owner","nameLocation":"1219:5:82","nodeType":"VariableDeclaration","scope":23727,"src":"1211:13:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23693,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23698,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":23695,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23674,"src":"1227:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"id":23696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOwner","nodeType":"MemberAccess","referencedDeclaration":2942,"src":"1227:18:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":23697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1227:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1211:36:82"},{"assignments":[23700],"declarations":[{"constant":false,"id":23700,"mutability":"mutable","name":"requiredRole","nameLocation":"1266:12:82","nodeType":"VariableDeclaration","scope":23727,"src":"1258:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23699,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1258:7:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":23708,"initialValue":{"arguments":[{"arguments":[{"id":23705,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23670,"src":"1336:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23703,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"1308:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"1308:27:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":23706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1308:31:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}],"expression":{"id":23701,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"1281:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRequiredRole","nodeType":"MemberAccess","referencedDeclaration":17670,"src":"1281:26:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_enum$_ComponentType_$2891_$returns$_t_bytes32_$","typeString":"function (enum IComponent.ComponentType) view external returns (bytes32)"}},"id":23707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1281:59:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1258:82:82"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":23713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":23710,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1361:10:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1361:12:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":23712,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23694,"src":"1377:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1361:21:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434f532d3030343a4e4f545f4f574e4552","id":23714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1384:25:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_3dfee339654c8563649f4df81de163cc439c725d11fcbc6e2de5d26baaee8ff7","typeString":"literal_string \"ERROR:COS-004:NOT_OWNER\""},"value":"ERROR:COS-004:NOT_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3dfee339654c8563649f4df81de163cc439c725d11fcbc6e2de5d26baaee8ff7","typeString":"literal_string \"ERROR:COS-004:NOT_OWNER\""}],"id":23709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1353:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1353:57:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23716,"nodeType":"ExpressionStatement","src":"1353:57:82"},{"expression":{"arguments":[{"arguments":[{"id":23720,"name":"requiredRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23700,"src":"1445:12:82","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":23721,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23694,"src":"1459:5:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23718,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"1429:7:82","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":23719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":4804,"src":"1429:15:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":23722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1429:36:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a434f532d3030353a52455155495245445f524f4c455f4d495353494e47","id":23723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1467:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_88c17061477e2a1abea4e769d8a1e347027489fb75476594ddd18ce8ec84d271","typeString":"literal_string \"ERROR:COS-005:REQUIRED_ROLE_MISSING\""},"value":"ERROR:COS-005:REQUIRED_ROLE_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_88c17061477e2a1abea4e769d8a1e347027489fb75476594ddd18ce8ec84d271","typeString":"literal_string \"ERROR:COS-005:REQUIRED_ROLE_MISSING\""}],"id":23717,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1421:7:82","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1421:84:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23725,"nodeType":"ExpressionStatement","src":"1421:84:82"},{"id":23726,"nodeType":"PlaceholderStatement","src":"1516:1:82"}]},"id":23728,"name":"onlyOwnerWithRole","nameLocation":"1017:17:82","nodeType":"ModifierDefinition","parameters":{"id":23671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23670,"mutability":"mutable","name":"id","nameLocation":"1043:2:82","nodeType":"VariableDeclaration","scope":23728,"src":"1035:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23669,"name":"uint256","nodeType":"ElementaryTypeName","src":"1035:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1034:12:82"},"src":"1008:517:82","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":23742,"nodeType":"Block","src":"1596:85:82","statements":[{"expression":{"id":23740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23734,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"1607:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":23737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1660:11:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":23736,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1640:19:82","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1640:32:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23735,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"1620:19:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":23739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1620:53:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"1607:66:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23741,"nodeType":"ExpressionStatement","src":"1607:66:82"}]},"id":23743,"implemented":true,"kind":"function","modifiers":[{"id":23732,"modifierName":{"id":23731,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"1579:16:82"},"nodeType":"ModifierInvocation","src":"1579:16:82"}],"name":"_afterInitialize","nameLocation":"1542:16:82","nodeType":"FunctionDefinition","overrides":{"id":23730,"nodeType":"OverrideSpecifier","overrides":[],"src":"1570:8:82"},"parameters":{"id":23729,"nodeType":"ParameterList","parameters":[],"src":"1558:2:82"},"returnParameters":{"id":23733,"nodeType":"ParameterList","parameters":[],"src":"1596:0:82"},"scope":23837,"src":"1533:148:82","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[5983],"body":{"id":23759,"nodeType":"Block","src":"1813:48:82","statements":[{"expression":{"arguments":[{"id":23756,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23746,"src":"1843:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"expression":{"id":23753,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"1824:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":17082,"src":"1824:18:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IComponent_$2988_$returns$__$","typeString":"function (contract IComponent) external"}},"id":23757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1824:29:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23758,"nodeType":"ExpressionStatement","src":"1824:29:82"}]},"functionSelector":"01267951","id":23760,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23750,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23746,"src":"1796:9:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"id":23751,"modifierName":{"id":23749,"name":"onlyOwnerWithRoleFromComponent","nodeType":"IdentifierPath","referencedDeclaration":23668,"src":"1765:30:82"},"nodeType":"ModifierInvocation","src":"1765:41:82"}],"name":"propose","nameLocation":"1698:7:82","nodeType":"FunctionDefinition","overrides":{"id":23748,"nodeType":"OverrideSpecifier","overrides":[],"src":"1747:8:82"},"parameters":{"id":23747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23746,"mutability":"mutable","name":"component","nameLocation":"1717:9:82","nodeType":"VariableDeclaration","scope":23760,"src":"1706:20:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":23745,"nodeType":"UserDefinedTypeName","pathNode":{"id":23744,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"1706:10:82"},"referencedDeclaration":2988,"src":"1706:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"1705:22:82"},"returnParameters":{"id":23752,"nodeType":"ParameterList","parameters":[],"src":"1813:0:82"},"scope":23837,"src":"1689:172:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5988],"body":{"id":23773,"nodeType":"Block","src":"1962:64:82","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a434f532d3030363a494d504c454d454e4154494f4e5f4d495353494e47","id":23770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1980:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c33643b536d9b9641d49decf8b2e52fa547e9e6beac65134376f36156613b58","typeString":"literal_string \"ERROR:COS-006:IMPLEMENATION_MISSING\""},"value":"ERROR:COS-006:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c33643b536d9b9641d49decf8b2e52fa547e9e6beac65134376f36156613b58","typeString":"literal_string \"ERROR:COS-006:IMPLEMENATION_MISSING\""}],"id":23769,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"1973:6:82","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":23771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1973:45:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23772,"nodeType":"ExpressionStatement","src":"1973:45:82"}]},"functionSelector":"a694fc3a","id":23774,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23766,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23762,"src":"1952:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23767,"modifierName":{"id":23765,"name":"onlyOwnerWithRole","nodeType":"IdentifierPath","referencedDeclaration":23728,"src":"1934:17:82"},"nodeType":"ModifierInvocation","src":"1934:21:82"}],"name":"stake","nameLocation":"1878:5:82","nodeType":"FunctionDefinition","overrides":{"id":23764,"nodeType":"OverrideSpecifier","overrides":[],"src":"1915:8:82"},"parameters":{"id":23763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23762,"mutability":"mutable","name":"id","nameLocation":"1892:2:82","nodeType":"VariableDeclaration","scope":23774,"src":"1884:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23761,"name":"uint256","nodeType":"ElementaryTypeName","src":"1884:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1883:12:82"},"returnParameters":{"id":23768,"nodeType":"ParameterList","parameters":[],"src":"1962:0:82"},"scope":23837,"src":"1869:157:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5993],"body":{"id":23787,"nodeType":"Block","src":"2129:64:82","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a434f532d3030373a494d504c454d454e4154494f4e5f4d495353494e47","id":23784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2147:37:82","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb6da26fba0466dffcc83682913bbbb22b0d48dbbc0bda69e09fccb7c56e2455","typeString":"literal_string \"ERROR:COS-007:IMPLEMENATION_MISSING\""},"value":"ERROR:COS-007:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb6da26fba0466dffcc83682913bbbb22b0d48dbbc0bda69e09fccb7c56e2455","typeString":"literal_string \"ERROR:COS-007:IMPLEMENATION_MISSING\""}],"id":23783,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"2140:6:82","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":23785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2140:45:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23786,"nodeType":"ExpressionStatement","src":"2140:45:82"}]},"functionSelector":"2e1a7d4d","id":23788,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23780,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23776,"src":"2119:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23781,"modifierName":{"id":23779,"name":"onlyOwnerWithRole","nodeType":"IdentifierPath","referencedDeclaration":23728,"src":"2101:17:82"},"nodeType":"ModifierInvocation","src":"2101:21:82"}],"name":"withdraw","nameLocation":"2043:8:82","nodeType":"FunctionDefinition","overrides":{"id":23778,"nodeType":"OverrideSpecifier","overrides":[],"src":"2083:8:82"},"parameters":{"id":23777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23776,"mutability":"mutable","name":"id","nameLocation":"2060:2:82","nodeType":"VariableDeclaration","scope":23788,"src":"2052:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23775,"name":"uint256","nodeType":"ElementaryTypeName","src":"2052:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2051:12:82"},"returnParameters":{"id":23782,"nodeType":"ParameterList","parameters":[],"src":"2129:0:82"},"scope":23837,"src":"2034:159:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[5998],"body":{"id":23803,"nodeType":"Block","src":"2303:39:82","statements":[{"expression":{"arguments":[{"id":23800,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23790,"src":"2331:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23797,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"2314:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pause","nodeType":"MemberAccess","referencedDeclaration":17369,"src":"2314:16:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":23801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2314:20:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23802,"nodeType":"ExpressionStatement","src":"2314:20:82"}]},"functionSelector":"136439dd","id":23804,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23794,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23790,"src":"2293:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23795,"modifierName":{"id":23793,"name":"onlyOwnerWithRole","nodeType":"IdentifierPath","referencedDeclaration":23728,"src":"2275:17:82"},"nodeType":"ModifierInvocation","src":"2275:21:82"}],"name":"pause","nameLocation":"2220:5:82","nodeType":"FunctionDefinition","overrides":{"id":23792,"nodeType":"OverrideSpecifier","overrides":[],"src":"2257:8:82"},"parameters":{"id":23791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23790,"mutability":"mutable","name":"id","nameLocation":"2234:2:82","nodeType":"VariableDeclaration","scope":23804,"src":"2226:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23789,"name":"uint256","nodeType":"ElementaryTypeName","src":"2226:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2225:12:82"},"returnParameters":{"id":23796,"nodeType":"ParameterList","parameters":[],"src":"2303:0:82"},"scope":23837,"src":"2211:131:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6003],"body":{"id":23819,"nodeType":"Block","src":"2445:41:82","statements":[{"expression":{"arguments":[{"id":23816,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"2475:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23813,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"2456:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unpause","nodeType":"MemberAccess","referencedDeclaration":17400,"src":"2456:18:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":23817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2456:22:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23818,"nodeType":"ExpressionStatement","src":"2456:22:82"}]},"functionSelector":"fabc1cbc","id":23820,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23810,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23806,"src":"2435:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23811,"modifierName":{"id":23809,"name":"onlyOwnerWithRole","nodeType":"IdentifierPath","referencedDeclaration":23728,"src":"2417:17:82"},"nodeType":"ModifierInvocation","src":"2417:21:82"}],"name":"unpause","nameLocation":"2359:7:82","nodeType":"FunctionDefinition","overrides":{"id":23808,"nodeType":"OverrideSpecifier","overrides":[],"src":"2398:8:82"},"parameters":{"id":23807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23806,"mutability":"mutable","name":"id","nameLocation":"2375:2:82","nodeType":"VariableDeclaration","scope":23820,"src":"2367:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23805,"name":"uint256","nodeType":"ElementaryTypeName","src":"2367:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2366:12:82"},"returnParameters":{"id":23812,"nodeType":"ParameterList","parameters":[],"src":"2445:0:82"},"scope":23837,"src":"2350:136:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6008],"body":{"id":23835,"nodeType":"Block","src":"2589:59:82","statements":[{"expression":{"arguments":[{"id":23832,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23822,"src":"2637:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23829,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"2600:10:82","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"archiveFromComponentOwner","nodeType":"MemberAccess","referencedDeclaration":17431,"src":"2600:36:82","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":23833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2600:40:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23834,"nodeType":"ExpressionStatement","src":"2600:40:82"}]},"functionSelector":"93c829fc","id":23836,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":23826,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23822,"src":"2579:2:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":23827,"modifierName":{"id":23825,"name":"onlyOwnerWithRole","nodeType":"IdentifierPath","referencedDeclaration":23728,"src":"2561:17:82"},"nodeType":"ModifierInvocation","src":"2561:21:82"}],"name":"archive","nameLocation":"2503:7:82","nodeType":"FunctionDefinition","overrides":{"id":23824,"nodeType":"OverrideSpecifier","overrides":[],"src":"2542:8:82"},"parameters":{"id":23823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23822,"mutability":"mutable","name":"id","nameLocation":"2519:2:82","nodeType":"VariableDeclaration","scope":23836,"src":"2511:10:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23821,"name":"uint256","nodeType":"ElementaryTypeName","src":"2511:7:82","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2510:12:82"},"returnParameters":{"id":23828,"nodeType":"ParameterList","parameters":[],"src":"2589:0:82"},"scope":23837,"src":"2494:154:82","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":23838,"src":"488:2163:82"}],"src":"40:2611:82"},"id":82},"contracts/services/InstanceOperatorService.sol":{"ast":{"absolutePath":"contracts/services/InstanceOperatorService.sol","exportedSymbols":{"AccessControl":[7145],"AccessControlEnumerable":[7270],"AccessController":[15687],"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"Component":[2884],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC20":[8753],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IAccessControl":[7343],"IAccessControlEnumerable":[7368],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC20Metadata":[8856],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IQuery":[5616],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"InstanceOperatorService":[24393],"Ownable":[7481],"Pausable":[8167],"PolicyController":[19974],"PoolController":[21207],"Product":[4042],"Strings":[10804],"TestProduct":[28333],"TransferHelper":[26659],"TreasuryModule":[23615]},"id":24394,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":23839,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:83"},{"absolutePath":"contracts/modules/AccessController.sol","file":"../modules/AccessController.sol","id":23840,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":15688,"src":"63:41:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/BundleController.sol","file":"../modules/BundleController.sol","id":23841,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":16947,"src":"105:41:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/ComponentController.sol","file":"../modules/ComponentController.sol","id":23842,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":17948,"src":"147:44:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"../modules/PoolController.sol","id":23843,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":21208,"src":"192:39:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/TreasuryModule.sol","file":"../modules/TreasuryModule.sol","id":23844,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":23616,"src":"232:39:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":23845,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":26414,"src":"272:38:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/test/TestProduct.sol","file":"../test/TestProduct.sol","id":23846,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":28334,"src":"311:33:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/tokens/BundleToken.sol","file":"../tokens/BundleToken.sol","id":23847,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":28752,"src":"345:35:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":23848,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":2989,"src":"382:69:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":23849,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":3080,"src":"452:67:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IQuery.sol","file":"@etherisc/gif-interface/contracts/modules/IQuery.sol","id":23850,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":5617,"src":"520:62:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","file":"@etherisc/gif-interface/contracts/modules/ITreasury.sol","id":23851,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":5975,"src":"583:65:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","id":23852,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":6161,"src":"649:81:83","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":23853,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":24394,"sourceUnit":7482,"src":"732:52:83","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":23854,"name":"IInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":6160,"src":"827:24:83"},"id":23855,"nodeType":"InheritanceSpecifier","src":"827:24:83"},{"baseName":{"id":23856,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"858:14:83"},"id":23857,"nodeType":"InheritanceSpecifier","src":"858:14:83"},{"baseName":{"id":23858,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"879:7:83"},"id":23859,"nodeType":"InheritanceSpecifier","src":"879:7:83"}],"contractDependencies":[6160,7481,8059,10518,26413],"contractKind":"contract","fullyImplemented":true,"id":24393,"linearizedBaseContracts":[24393,7481,26413,8059,10518,6160],"name":"InstanceOperatorService","nameLocation":"795:23:83","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":23862,"mutability":"mutable","name":"_component","nameLocation":"922:10:83","nodeType":"VariableDeclaration","scope":24393,"src":"894:38:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":23861,"nodeType":"UserDefinedTypeName","pathNode":{"id":23860,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"894:19:83"},"referencedDeclaration":17947,"src":"894:19:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"constant":false,"id":23865,"mutability":"mutable","name":"_pool","nameLocation":"961:5:83","nodeType":"VariableDeclaration","scope":24393,"src":"938:28:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":23864,"nodeType":"UserDefinedTypeName","pathNode":{"id":23863,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"938:14:83"},"referencedDeclaration":21207,"src":"938:14:83","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"private"},{"constant":false,"id":23868,"mutability":"mutable","name":"_treasury","nameLocation":"995:9:83","nodeType":"VariableDeclaration","scope":24393,"src":"972:32:83","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":23867,"nodeType":"UserDefinedTypeName","pathNode":{"id":23866,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"972:14:83"},"referencedDeclaration":23615,"src":"972:14:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"private"},{"body":{"id":23880,"nodeType":"Block","src":"1050:99:83","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":23875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":23871,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"1068:5:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1068:7:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":23873,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1079:10:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1079:12:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1068:23:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a494f532d3030313a4e4f545f494e5354414e43455f4f50455241544f52","id":23876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1093:37:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f9a629a891ef96edc5744c3431f880a108556562b68950708236c732d2e7e88","typeString":"literal_string \"ERROR:IOS-001:NOT_INSTANCE_OPERATOR\""},"value":"ERROR:IOS-001:NOT_INSTANCE_OPERATOR"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4f9a629a891ef96edc5744c3431f880a108556562b68950708236c732d2e7e88","typeString":"literal_string \"ERROR:IOS-001:NOT_INSTANCE_OPERATOR\""}],"id":23870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1060:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":23877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1060:71:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23878,"nodeType":"ExpressionStatement","src":"1060:71:83"},{"id":23879,"nodeType":"PlaceholderStatement","src":"1141:1:83"}]},"id":23881,"name":"onlyInstanceOperatorAddress","nameLocation":"1020:27:83","nodeType":"ModifierDefinition","parameters":{"id":23869,"nodeType":"ParameterList","parameters":[],"src":"1047:2:83"},"src":"1011:138:83","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":23922,"nodeType":"Block","src":"1218:330:83","statements":[{"expression":{"id":23893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23887,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"1228:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":23890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1281:11:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":23889,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1261:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1261:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23888,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"1241:19:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":23892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1241:53:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"1228:66:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":23894,"nodeType":"ExpressionStatement","src":"1228:66:83"},{"expression":{"id":23901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23895,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23865,"src":"1304:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6f6c","id":23898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1347:6:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":23897,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1327:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1327:27:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23896,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"1312:14:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":23900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1312:43:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"src":"1304:51:83","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":23902,"nodeType":"ExpressionStatement","src":"1304:51:83"},{"expression":{"id":23909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":23903,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"1365:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"5472656173757279","id":23906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1412:10:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""}],"id":23905,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1392:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1392:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23904,"name":"TreasuryModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23615,"src":"1377:14:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TreasuryModule_$23615_$","typeString":"type(contract TreasuryModule)"}},"id":23908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1377:47:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"src":"1365:59:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":23910,"nodeType":"ExpressionStatement","src":"1365:59:83"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":23912,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1454:10:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":23913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1454:12:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23911,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7480,"src":"1435:18:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":23914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1435:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23915,"nodeType":"ExpressionStatement","src":"1435:32:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":23916,"name":"_linkBundleModuleToBundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23970,"src":"1477:30:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":23917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1477:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23918,"nodeType":"ExpressionStatement","src":"1477:32:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":23919,"name":"_setDefaultAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23945,"src":"1519:20:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":23920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1519:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23921,"nodeType":"ExpressionStatement","src":"1519:22:83"}]},"id":23923,"implemented":true,"kind":"function","modifiers":[{"id":23885,"modifierName":{"id":23884,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"1201:16:83"},"nodeType":"ModifierInvocation","src":"1201:16:83"}],"name":"_afterInitialize","nameLocation":"1164:16:83","nodeType":"FunctionDefinition","overrides":{"id":23883,"nodeType":"OverrideSpecifier","overrides":[],"src":"1192:8:83"},"parameters":{"id":23882,"nodeType":"ParameterList","parameters":[],"src":"1180:2:83"},"returnParameters":{"id":23886,"nodeType":"ParameterList","parameters":[],"src":"1218:0:83"},"scope":24393,"src":"1155:393:83","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":23944,"nodeType":"Block","src":"1594:141:83","statements":[{"assignments":[23928],"declarations":[{"constant":false,"id":23928,"mutability":"mutable","name":"access","nameLocation":"1621:6:83","nodeType":"VariableDeclaration","scope":23944,"src":"1604:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AccessController_$15687","typeString":"contract AccessController"},"typeName":{"id":23927,"nodeType":"UserDefinedTypeName","pathNode":{"id":23926,"name":"AccessController","nodeType":"IdentifierPath","referencedDeclaration":15687,"src":"1604:16:83"},"referencedDeclaration":15687,"src":"1604:16:83","typeDescriptions":{"typeIdentifier":"t_contract$_AccessController_$15687","typeString":"contract AccessController"}},"visibility":"internal"}],"id":23934,"initialValue":{"arguments":[{"arguments":[{"hexValue":"416363657373","id":23931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1667:8:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""}],"id":23930,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1647:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1647:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23929,"name":"AccessController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15687,"src":"1630:16:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AccessController_$15687_$","typeString":"type(contract AccessController)"}},"id":23933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1630:47:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AccessController_$15687","typeString":"contract AccessController"}},"nodeType":"VariableDeclarationStatement","src":"1604:73:83"},{"expression":{"arguments":[{"arguments":[{"id":23940,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1722:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"}],"id":23939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1714:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23938,"name":"address","nodeType":"ElementaryTypeName","src":"1714:7:83","typeDescriptions":{}}},"id":23941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1714:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23935,"name":"access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23928,"src":"1687:6:83","typeDescriptions":{"typeIdentifier":"t_contract$_AccessController_$15687","typeString":"contract AccessController"}},"id":23937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setDefaultAdminRole","nodeType":"MemberAccess","referencedDeclaration":15499,"src":"1687:26:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":23942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1687:41:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23943,"nodeType":"ExpressionStatement","src":"1687:41:83"}]},"id":23945,"implemented":true,"kind":"function","modifiers":[],"name":"_setDefaultAdminRole","nameLocation":"1563:20:83","nodeType":"FunctionDefinition","parameters":{"id":23924,"nodeType":"ParameterList","parameters":[],"src":"1583:2:83"},"returnParameters":{"id":23925,"nodeType":"ParameterList","parameters":[],"src":"1594:0:83"},"scope":24393,"src":"1554:181:83","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":23969,"nodeType":"Block","src":"1791:193:83","statements":[{"assignments":[23950],"declarations":[{"constant":false,"id":23950,"mutability":"mutable","name":"token","nameLocation":"1813:5:83","nodeType":"VariableDeclaration","scope":23969,"src":"1801:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"},"typeName":{"id":23949,"nodeType":"UserDefinedTypeName","pathNode":{"id":23948,"name":"BundleToken","nodeType":"IdentifierPath","referencedDeclaration":28751,"src":"1801:11:83"},"referencedDeclaration":28751,"src":"1801:11:83","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"visibility":"internal"}],"id":23956,"initialValue":{"arguments":[{"arguments":[{"hexValue":"42756e646c65546f6b656e","id":23953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1853:13:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_49971d9abb6528cf70ffd04b9f4808a4d05dcff6326ec72b1165dc2f6e11a039","typeString":"literal_string \"BundleToken\""},"value":"BundleToken"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_49971d9abb6528cf70ffd04b9f4808a4d05dcff6326ec72b1165dc2f6e11a039","typeString":"literal_string \"BundleToken\""}],"id":23952,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1833:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1833:34:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23951,"name":"BundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28751,"src":"1821:11:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleToken_$28751_$","typeString":"type(contract BundleToken)"}},"id":23955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1821:47:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"nodeType":"VariableDeclarationStatement","src":"1801:67:83"},{"assignments":[23958],"declarations":[{"constant":false,"id":23958,"mutability":"mutable","name":"bundleAddress","nameLocation":"1886:13:83","nodeType":"VariableDeclaration","scope":23969,"src":"1878:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23957,"name":"address","nodeType":"ElementaryTypeName","src":"1878:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23962,"initialValue":{"arguments":[{"hexValue":"42756e646c65","id":23960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1922:8:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""},"value":"Bundle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""}],"id":23959,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1902:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":23961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1902:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1878:53:83"},{"expression":{"arguments":[{"id":23966,"name":"bundleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23958,"src":"1963:13:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23963,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23950,"src":"1941:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"id":23965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setBundleModule","nodeType":"MemberAccess","referencedDeclaration":28625,"src":"1941:21:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":23967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1941:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23968,"nodeType":"ExpressionStatement","src":"1941:36:83"}]},"id":23970,"implemented":true,"kind":"function","modifiers":[],"name":"_linkBundleModuleToBundleToken","nameLocation":"1750:30:83","nodeType":"FunctionDefinition","parameters":{"id":23946,"nodeType":"ParameterList","parameters":[],"src":"1780:2:83"},"returnParameters":{"id":23947,"nodeType":"ParameterList","parameters":[],"src":"1791:0:83"},"scope":24393,"src":"1741:243:83","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"baseFunctions":[6017],"body":{"id":23984,"nodeType":"Block","src":"2123:54:83","statements":[{"expression":{"arguments":[{"id":23981,"name":"_newRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23972,"src":"2158:11:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":23978,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"2133:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":23980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"prepareRelease","nodeType":"MemberAccess","referencedDeclaration":5671,"src":"2133:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":23982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2133:37:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23983,"nodeType":"ExpressionStatement","src":"2133:37:83"}]},"functionSelector":"893917ea","id":23985,"implemented":true,"kind":"function","modifiers":[{"id":23976,"modifierName":{"id":23975,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"2090:27:83"},"nodeType":"ModifierInvocation","src":"2090:27:83"}],"name":"prepareRelease","nameLocation":"2018:14:83","nodeType":"FunctionDefinition","overrides":{"id":23974,"nodeType":"OverrideSpecifier","overrides":[],"src":"2072:8:83"},"parameters":{"id":23973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23972,"mutability":"mutable","name":"_newRelease","nameLocation":"2041:11:83","nodeType":"VariableDeclaration","scope":23985,"src":"2033:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23971,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2033:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2032:21:83"},"returnParameters":{"id":23977,"nodeType":"ParameterList","parameters":[],"src":"2123:0:83"},"scope":24393,"src":"2009:168:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6024],"body":{"id":24002,"nodeType":"Block","src":"2316:68:83","statements":[{"expression":{"arguments":[{"id":23998,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23987,"src":"2345:13:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":23999,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23989,"src":"2360:16:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23995,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"2326:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":23997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"register","nodeType":"MemberAccess","referencedDeclaration":5654,"src":"2326:18:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) external"}},"id":24000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2326:51:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24001,"nodeType":"ExpressionStatement","src":"2326:51:83"}]},"functionSelector":"d22057a9","id":24003,"implemented":true,"kind":"function","modifiers":[{"id":23993,"modifierName":{"id":23992,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"2284:27:83"},"nodeType":"ModifierInvocation","src":"2284:27:83"}],"name":"register","nameLocation":"2192:8:83","nodeType":"FunctionDefinition","overrides":{"id":23991,"nodeType":"OverrideSpecifier","overrides":[],"src":"2267:8:83"},"parameters":{"id":23990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23987,"mutability":"mutable","name":"_contractName","nameLocation":"2209:13:83","nodeType":"VariableDeclaration","scope":24003,"src":"2201:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":23986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2201:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":23989,"mutability":"mutable","name":"_contractAddress","nameLocation":"2232:16:83","nodeType":"VariableDeclaration","scope":24003,"src":"2224:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23988,"name":"address","nodeType":"ElementaryTypeName","src":"2224:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2200:49:83"},"returnParameters":{"id":23994,"nodeType":"ParameterList","parameters":[],"src":"2316:0:83"},"scope":24393,"src":"2183:201:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6029],"body":{"id":24017,"nodeType":"Block","src":"2502:52:83","statements":[{"expression":{"arguments":[{"id":24014,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24005,"src":"2533:13:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24011,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"2512:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":24013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deregister","nodeType":"MemberAccess","referencedDeclaration":5666,"src":"2512:20:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":24015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2512:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24016,"nodeType":"ExpressionStatement","src":"2512:35:83"}]},"functionSelector":"20813154","id":24018,"implemented":true,"kind":"function","modifiers":[{"id":24009,"modifierName":{"id":24008,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"2469:27:83"},"nodeType":"ModifierInvocation","src":"2469:27:83"}],"name":"deregister","nameLocation":"2399:10:83","nodeType":"FunctionDefinition","overrides":{"id":24007,"nodeType":"OverrideSpecifier","overrides":[],"src":"2451:8:83"},"parameters":{"id":24006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24005,"mutability":"mutable","name":"_contractName","nameLocation":"2418:13:83","nodeType":"VariableDeclaration","scope":24018,"src":"2410:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2410:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2409:23:83"},"returnParameters":{"id":24010,"nodeType":"ParameterList","parameters":[],"src":"2502:0:83"},"scope":24393,"src":"2390:164:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6038],"body":{"id":24038,"nodeType":"Block","src":"2753:87:83","statements":[{"expression":{"arguments":[{"id":24033,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24020,"src":"2791:8:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24034,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24022,"src":"2801:13:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24035,"name":"_contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24024,"src":"2816:16:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24030,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"2763:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":24032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerInRelease","nodeType":"MemberAccess","referencedDeclaration":5647,"src":"2763:27:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,bytes32,address) external"}},"id":24036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2763:70:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24037,"nodeType":"ExpressionStatement","src":"2763:70:83"}]},"functionSelector":"1d5e7314","id":24039,"implemented":true,"kind":"function","modifiers":[{"id":24028,"modifierName":{"id":24027,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"2720:27:83"},"nodeType":"ModifierInvocation","src":"2720:27:83"}],"name":"registerInRelease","nameLocation":"2569:17:83","nodeType":"FunctionDefinition","overrides":{"id":24026,"nodeType":"OverrideSpecifier","overrides":[],"src":"2702:8:83"},"parameters":{"id":24025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24020,"mutability":"mutable","name":"_release","nameLocation":"2604:8:83","nodeType":"VariableDeclaration","scope":24039,"src":"2596:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2596:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24022,"mutability":"mutable","name":"_contractName","nameLocation":"2630:13:83","nodeType":"VariableDeclaration","scope":24039,"src":"2622:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2622:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24024,"mutability":"mutable","name":"_contractAddress","nameLocation":"2661:16:83","nodeType":"VariableDeclaration","scope":24039,"src":"2653:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24023,"name":"address","nodeType":"ElementaryTypeName","src":"2653:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2586:97:83"},"returnParameters":{"id":24029,"nodeType":"ParameterList","parameters":[],"src":"2753:0:83"},"scope":24393,"src":"2560:280:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6045],"body":{"id":24056,"nodeType":"Block","src":"2982:71:83","statements":[{"expression":{"arguments":[{"id":24052,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24041,"src":"3022:8:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24053,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24043,"src":"3032:13:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24049,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"2992:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":24051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"deregisterInRelease","nodeType":"MemberAccess","referencedDeclaration":5661,"src":"2992:29:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) external"}},"id":24054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2992:54:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24055,"nodeType":"ExpressionStatement","src":"2992:54:83"}]},"functionSelector":"dc527b08","id":24057,"implemented":true,"kind":"function","modifiers":[{"id":24047,"modifierName":{"id":24046,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"2950:27:83"},"nodeType":"ModifierInvocation","src":"2950:27:83"}],"name":"deregisterInRelease","nameLocation":"2855:19:83","nodeType":"FunctionDefinition","overrides":{"id":24045,"nodeType":"OverrideSpecifier","overrides":[],"src":"2933:8:83"},"parameters":{"id":24044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24041,"mutability":"mutable","name":"_release","nameLocation":"2883:8:83","nodeType":"VariableDeclaration","scope":24057,"src":"2875:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24040,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2875:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24043,"mutability":"mutable","name":"_contractName","nameLocation":"2901:13:83","nodeType":"VariableDeclaration","scope":24057,"src":"2893:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24042,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2893:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2874:41:83"},"returnParameters":{"id":24048,"nodeType":"ParameterList","parameters":[],"src":"2982:0:83"},"scope":24393,"src":"2846:207:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6050],"body":{"id":24071,"nodeType":"Block","src":"3183:39:83","statements":[{"expression":{"arguments":[{"id":24068,"name":"_role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24059,"src":"3209:5:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24065,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"3193:7:83","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addRole","nodeType":"MemberAccess","referencedDeclaration":4830,"src":"3193:15:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":24069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3193:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24070,"nodeType":"ExpressionStatement","src":"3193:22:83"}]},"functionSelector":"c42994a2","id":24072,"implemented":true,"kind":"function","modifiers":[{"id":24063,"modifierName":{"id":24062,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"3150:27:83"},"nodeType":"ModifierInvocation","src":"3150:27:83"}],"name":"createRole","nameLocation":"3089:10:83","nodeType":"FunctionDefinition","overrides":{"id":24061,"nodeType":"OverrideSpecifier","overrides":[],"src":"3133:8:83"},"parameters":{"id":24060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24059,"mutability":"mutable","name":"_role","nameLocation":"3108:5:83","nodeType":"VariableDeclaration","scope":24072,"src":"3100:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3100:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3099:15:83"},"returnParameters":{"id":24064,"nodeType":"ParameterList","parameters":[],"src":"3183:0:83"},"scope":24393,"src":"3080:142:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6055],"body":{"id":24086,"nodeType":"Block","src":"3335:46:83","statements":[{"expression":{"arguments":[{"id":24083,"name":"_role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24074,"src":"3368:5:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24080,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"3345:7:83","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"invalidateRole","nodeType":"MemberAccess","referencedDeclaration":4835,"src":"3345:22:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":24084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3345:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24085,"nodeType":"ExpressionStatement","src":"3345:29:83"}]},"functionSelector":"d17d0233","id":24087,"implemented":true,"kind":"function","modifiers":[{"id":24078,"modifierName":{"id":24077,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"3302:27:83"},"nodeType":"ModifierInvocation","src":"3302:27:83"}],"name":"invalidateRole","nameLocation":"3237:14:83","nodeType":"FunctionDefinition","overrides":{"id":24076,"nodeType":"OverrideSpecifier","overrides":[],"src":"3285:8:83"},"parameters":{"id":24075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24074,"mutability":"mutable","name":"_role","nameLocation":"3260:5:83","nodeType":"VariableDeclaration","scope":24087,"src":"3252:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3252:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3251:15:83"},"returnParameters":{"id":24079,"nodeType":"ParameterList","parameters":[],"src":"3335:0:83"},"scope":24393,"src":"3228:153:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6062],"body":{"id":24104,"nodeType":"Block","src":"3505:51:83","statements":[{"expression":{"arguments":[{"id":24100,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24089,"src":"3533:4:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24101,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24091,"src":"3539:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24097,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"3515:7:83","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"grantRole","nodeType":"MemberAccess","referencedDeclaration":4811,"src":"3515:17:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) external"}},"id":24102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3515:34:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24103,"nodeType":"ExpressionStatement","src":"3515:34:83"}]},"functionSelector":"2f2ff15d","id":24105,"implemented":true,"kind":"function","modifiers":[{"id":24095,"modifierName":{"id":24094,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"3473:27:83"},"nodeType":"ModifierInvocation","src":"3473:27:83"}],"name":"grantRole","nameLocation":"3396:9:83","nodeType":"FunctionDefinition","overrides":{"id":24093,"nodeType":"OverrideSpecifier","overrides":[],"src":"3456:8:83"},"parameters":{"id":24092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24089,"mutability":"mutable","name":"role","nameLocation":"3414:4:83","nodeType":"VariableDeclaration","scope":24105,"src":"3406:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3406:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24091,"mutability":"mutable","name":"principal","nameLocation":"3428:9:83","nodeType":"VariableDeclaration","scope":24105,"src":"3420:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24090,"name":"address","nodeType":"ElementaryTypeName","src":"3420:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3405:33:83"},"returnParameters":{"id":24096,"nodeType":"ParameterList","parameters":[],"src":"3505:0:83"},"scope":24393,"src":"3387:169:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6069],"body":{"id":24122,"nodeType":"Block","src":"3684:52:83","statements":[{"expression":{"arguments":[{"id":24118,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24107,"src":"3713:4:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24119,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24109,"src":"3719:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24115,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"3694:7:83","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"revokeRole","nodeType":"MemberAccess","referencedDeclaration":4818,"src":"3694:18:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) external"}},"id":24120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3694:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24121,"nodeType":"ExpressionStatement","src":"3694:35:83"}]},"functionSelector":"d547741f","id":24123,"implemented":true,"kind":"function","modifiers":[{"id":24113,"modifierName":{"id":24112,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"3651:27:83"},"nodeType":"ModifierInvocation","src":"3651:27:83"}],"name":"revokeRole","nameLocation":"3571:10:83","nodeType":"FunctionDefinition","overrides":{"id":24111,"nodeType":"OverrideSpecifier","overrides":[],"src":"3633:8:83"},"parameters":{"id":24110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24107,"mutability":"mutable","name":"role","nameLocation":"3590:4:83","nodeType":"VariableDeclaration","scope":24123,"src":"3582:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24106,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3582:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24109,"mutability":"mutable","name":"principal","nameLocation":"3604:9:83","nodeType":"VariableDeclaration","scope":24123,"src":"3596:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24108,"name":"address","nodeType":"ElementaryTypeName","src":"3596:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3581:33:83"},"returnParameters":{"id":24114,"nodeType":"ParameterList","parameters":[],"src":"3684:0:83"},"scope":24393,"src":"3562:174:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6074],"body":{"id":24170,"nodeType":"Block","src":"3859:319:83","statements":[{"expression":{"arguments":[{"id":24134,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24125,"src":"3888:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24131,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"3869:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"3869:18:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":24135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3869:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24136,"nodeType":"ExpressionStatement","src":"3869:22:83"},{"condition":{"arguments":[{"id":24139,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24125,"src":"3927:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24137,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"3906:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isProduct","nodeType":"MemberAccess","referencedDeclaration":17725,"src":"3906:20:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":24140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3906:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":24169,"nodeType":"IfStatement","src":"3902:270:83","trueBody":{"id":24168,"nodeType":"Block","src":"3932:240:83","statements":[{"assignments":[24143],"declarations":[{"constant":false,"id":24143,"mutability":"mutable","name":"component","nameLocation":"3957:9:83","nodeType":"VariableDeclaration","scope":24168,"src":"3946:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":24142,"nodeType":"UserDefinedTypeName","pathNode":{"id":24141,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"3946:10:83"},"referencedDeclaration":2988,"src":"3946:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"id":24148,"initialValue":{"arguments":[{"id":24146,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24125,"src":"3993:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24144,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"3969:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"3969:23:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":24147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3969:27:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"nodeType":"VariableDeclarationStatement","src":"3946:50:83"},{"assignments":[24151],"declarations":[{"constant":false,"id":24151,"mutability":"mutable","name":"product","nameLocation":"4019:7:83","nodeType":"VariableDeclaration","scope":24168,"src":"4010:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"},"typeName":{"id":24150,"nodeType":"UserDefinedTypeName","pathNode":{"id":24149,"name":"IProduct","nodeType":"IdentifierPath","referencedDeclaration":3079,"src":"4010:8:83"},"referencedDeclaration":3079,"src":"4010:8:83","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"visibility":"internal"}],"id":24158,"initialValue":{"arguments":[{"arguments":[{"id":24155,"name":"component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24143,"src":"4046:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}],"id":24154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4038:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24153,"name":"address","nodeType":"ElementaryTypeName","src":"4038:7:83","typeDescriptions":{}}},"id":24156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4038:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24152,"name":"IProduct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"4029:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProduct_$3079_$","typeString":"type(contract IProduct)"}},"id":24157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4029:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"nodeType":"VariableDeclarationStatement","src":"4010:47:83"},{"expression":{"arguments":[{"id":24162,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24125,"src":"4117:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24163,"name":"product","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24151,"src":"4137:7:83","typeDescriptions":{"typeIdentifier":"t_contract$_IProduct_$3079","typeString":"contract IProduct"}},"id":24164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpoolId","nodeType":"MemberAccess","referencedDeclaration":3058,"src":"4137:21:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4137:23:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24159,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23865,"src":"4072:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":24161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setRiskpoolForProduct","nodeType":"MemberAccess","referencedDeclaration":20350,"src":"4072:27:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":24166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4072:89:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24167,"nodeType":"ExpressionStatement","src":"4072:89:83"}]}}]},"functionSelector":"b759f954","id":24171,"implemented":true,"kind":"function","modifiers":[{"id":24129,"modifierName":{"id":24128,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"3826:27:83"},"nodeType":"ModifierInvocation","src":"3826:27:83"}],"name":"approve","nameLocation":"3771:7:83","nodeType":"FunctionDefinition","overrides":{"id":24127,"nodeType":"OverrideSpecifier","overrides":[],"src":"3808:8:83"},"parameters":{"id":24126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24125,"mutability":"mutable","name":"id","nameLocation":"3787:2:83","nodeType":"VariableDeclaration","scope":24171,"src":"3779:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24124,"name":"uint256","nodeType":"ElementaryTypeName","src":"3779:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3778:12:83"},"returnParameters":{"id":24130,"nodeType":"ParameterList","parameters":[],"src":"3859:0:83"},"scope":24393,"src":"3762:416:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6079],"body":{"id":24185,"nodeType":"Block","src":"4282:39:83","statements":[{"expression":{"arguments":[{"id":24182,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24173,"src":"4311:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24179,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"4292:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decline","nodeType":"MemberAccess","referencedDeclaration":17276,"src":"4292:18:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":24183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4292:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24184,"nodeType":"ExpressionStatement","src":"4292:22:83"}]},"functionSelector":"a0355f4e","id":24186,"implemented":true,"kind":"function","modifiers":[{"id":24177,"modifierName":{"id":24176,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"4249:27:83"},"nodeType":"ModifierInvocation","src":"4249:27:83"}],"name":"decline","nameLocation":"4193:7:83","nodeType":"FunctionDefinition","overrides":{"id":24175,"nodeType":"OverrideSpecifier","overrides":[],"src":"4231:8:83"},"parameters":{"id":24174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24173,"mutability":"mutable","name":"id","nameLocation":"4209:2:83","nodeType":"VariableDeclaration","scope":24186,"src":"4201:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24172,"name":"uint256","nodeType":"ElementaryTypeName","src":"4201:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4200:12:83"},"returnParameters":{"id":24178,"nodeType":"ParameterList","parameters":[],"src":"4282:0:83"},"scope":24393,"src":"4184:137:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6084],"body":{"id":24200,"nodeType":"Block","src":"4425:39:83","statements":[{"expression":{"arguments":[{"id":24197,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24188,"src":"4454:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24194,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"4435:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"suspend","nodeType":"MemberAccess","referencedDeclaration":17307,"src":"4435:18:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":24198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4435:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24199,"nodeType":"ExpressionStatement","src":"4435:22:83"}]},"functionSelector":"4b865846","id":24201,"implemented":true,"kind":"function","modifiers":[{"id":24192,"modifierName":{"id":24191,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"4392:27:83"},"nodeType":"ModifierInvocation","src":"4392:27:83"}],"name":"suspend","nameLocation":"4336:7:83","nodeType":"FunctionDefinition","overrides":{"id":24190,"nodeType":"OverrideSpecifier","overrides":[],"src":"4374:8:83"},"parameters":{"id":24189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24188,"mutability":"mutable","name":"id","nameLocation":"4352:2:83","nodeType":"VariableDeclaration","scope":24201,"src":"4344:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24187,"name":"uint256","nodeType":"ElementaryTypeName","src":"4344:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4343:12:83"},"returnParameters":{"id":24193,"nodeType":"ParameterList","parameters":[],"src":"4425:0:83"},"scope":24393,"src":"4327:137:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6089],"body":{"id":24215,"nodeType":"Block","src":"4567:38:83","statements":[{"expression":{"arguments":[{"id":24212,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24203,"src":"4595:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24209,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"4577:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resume","nodeType":"MemberAccess","referencedDeclaration":17338,"src":"4577:17:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":24213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4577:21:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24214,"nodeType":"ExpressionStatement","src":"4577:21:83"}]},"functionSelector":"414000b5","id":24216,"implemented":true,"kind":"function","modifiers":[{"id":24207,"modifierName":{"id":24206,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"4534:27:83"},"nodeType":"ModifierInvocation","src":"4534:27:83"}],"name":"resume","nameLocation":"4479:6:83","nodeType":"FunctionDefinition","overrides":{"id":24205,"nodeType":"OverrideSpecifier","overrides":[],"src":"4516:8:83"},"parameters":{"id":24204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24203,"mutability":"mutable","name":"id","nameLocation":"4494:2:83","nodeType":"VariableDeclaration","scope":24216,"src":"4486:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24202,"name":"uint256","nodeType":"ElementaryTypeName","src":"4486:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4485:12:83"},"returnParameters":{"id":24208,"nodeType":"ParameterList","parameters":[],"src":"4567:0:83"},"scope":24393,"src":"4470:135:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6094],"body":{"id":24230,"nodeType":"Block","src":"4709:59:83","statements":[{"expression":{"arguments":[{"id":24227,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24218,"src":"4758:2:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24224,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23862,"src":"4719:10:83","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"archiveFromInstanceOperator","nodeType":"MemberAccess","referencedDeclaration":17462,"src":"4719:38:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":24228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4719:42:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24229,"nodeType":"ExpressionStatement","src":"4719:42:83"}]},"functionSelector":"93c829fc","id":24231,"implemented":true,"kind":"function","modifiers":[{"id":24222,"modifierName":{"id":24221,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"4676:27:83"},"nodeType":"ModifierInvocation","src":"4676:27:83"}],"name":"archive","nameLocation":"4620:7:83","nodeType":"FunctionDefinition","overrides":{"id":24220,"nodeType":"OverrideSpecifier","overrides":[],"src":"4658:8:83"},"parameters":{"id":24219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24218,"mutability":"mutable","name":"id","nameLocation":"4636:2:83","nodeType":"VariableDeclaration","scope":24231,"src":"4628:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24217,"name":"uint256","nodeType":"ElementaryTypeName","src":"4628:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4627:12:83"},"returnParameters":{"id":24223,"nodeType":"ParameterList","parameters":[],"src":"4709:0:83"},"scope":24393,"src":"4611:157:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6101],"body":{"id":24245,"nodeType":"Block","src":"5004:62:83","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a494f532d3031303a494d504c454d454e4154494f4e5f4d495353494e47","id":24242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5021:37:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_eced10d50b8ba1711cfe37b4eb88407a5eaeb66e7a413a20b76444cdfd898ea4","typeString":"literal_string \"ERROR:IOS-010:IMPLEMENATION_MISSING\""},"value":"ERROR:IOS-010:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eced10d50b8ba1711cfe37b4eb88407a5eaeb66e7a413a20b76444cdfd898ea4","typeString":"literal_string \"ERROR:IOS-010:IMPLEMENATION_MISSING\""}],"id":24241,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"5014:6:83","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":24243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5014:45:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24244,"nodeType":"ExpressionStatement","src":"5014:45:83"}]},"functionSelector":"394c78ba","id":24246,"implemented":true,"kind":"function","modifiers":[{"id":24239,"modifierName":{"id":24238,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"4972:27:83"},"nodeType":"ModifierInvocation","src":"4972:27:83"}],"name":"setDefaultStaking","nameLocation":"4854:17:83","nodeType":"FunctionDefinition","overrides":{"id":24237,"nodeType":"OverrideSpecifier","overrides":[],"src":"4955:8:83"},"parameters":{"id":24236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24233,"mutability":"mutable","name":"componentType","nameLocation":"4888:13:83","nodeType":"VariableDeclaration","scope":24246,"src":"4881:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":24232,"name":"uint16","nodeType":"ElementaryTypeName","src":"4881:6:83","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":24235,"mutability":"mutable","name":"data","nameLocation":"4927:4:83","nodeType":"VariableDeclaration","scope":24246,"src":"4912:19:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":24234,"name":"bytes","nodeType":"ElementaryTypeName","src":"4912:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4871:66:83"},"returnParameters":{"id":24240,"nodeType":"ParameterList","parameters":[],"src":"5004:0:83"},"scope":24393,"src":"4845:221:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6108],"body":{"id":24260,"nodeType":"Block","src":"5285:62:83","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a494f532d3031313a494d504c454d454e4154494f4e5f4d495353494e47","id":24257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5302:37:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_82cd723e08c6881587ec30a3dfe2f83ddd1d3003fc073eb1e0f321714bc7396c","typeString":"literal_string \"ERROR:IOS-011:IMPLEMENATION_MISSING\""},"value":"ERROR:IOS-011:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82cd723e08c6881587ec30a3dfe2f83ddd1d3003fc073eb1e0f321714bc7396c","typeString":"literal_string \"ERROR:IOS-011:IMPLEMENATION_MISSING\""}],"id":24256,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"5295:6:83","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":24258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5295:45:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24259,"nodeType":"ExpressionStatement","src":"5295:45:83"}]},"functionSelector":"72beb6fb","id":24261,"implemented":true,"kind":"function","modifiers":[{"id":24254,"modifierName":{"id":24253,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"5253:27:83"},"nodeType":"ModifierInvocation","src":"5253:27:83"}],"name":"adjustStakingRequirements","nameLocation":"5137:25:83","nodeType":"FunctionDefinition","overrides":{"id":24252,"nodeType":"OverrideSpecifier","overrides":[],"src":"5236:8:83"},"parameters":{"id":24251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24248,"mutability":"mutable","name":"id","nameLocation":"5180:2:83","nodeType":"VariableDeclaration","scope":24261,"src":"5172:10:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24247,"name":"uint256","nodeType":"ElementaryTypeName","src":"5172:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24250,"mutability":"mutable","name":"data","nameLocation":"5208:4:83","nodeType":"VariableDeclaration","scope":24261,"src":"5193:19:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":24249,"name":"bytes","nodeType":"ElementaryTypeName","src":"5193:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5162:56:83"},"returnParameters":{"id":24255,"nodeType":"ParameterList","parameters":[],"src":"5285:0:83"},"scope":24393,"src":"5128:219:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6111],"body":{"id":24272,"nodeType":"Block","src":"5466:37:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24267,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"5477:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"suspend","nodeType":"MemberAccess","referencedDeclaration":22380,"src":"5477:17:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":24270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5477:19:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24271,"nodeType":"ExpressionStatement","src":"5477:19:83"}]},"functionSelector":"d5fe1f10","id":24273,"implemented":true,"kind":"function","modifiers":[{"id":24265,"modifierName":{"id":24264,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"5434:27:83"},"nodeType":"ModifierInvocation","src":"5434:27:83"}],"name":"suspendTreasury","nameLocation":"5381:15:83","nodeType":"FunctionDefinition","overrides":{"id":24263,"nodeType":"OverrideSpecifier","overrides":[],"src":"5417:8:83"},"parameters":{"id":24262,"nodeType":"ParameterList","parameters":[],"src":"5396:2:83"},"returnParameters":{"id":24266,"nodeType":"ParameterList","parameters":[],"src":"5466:0:83"},"scope":24393,"src":"5372:131:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6114],"body":{"id":24284,"nodeType":"Block","src":"5602:36:83","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24279,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"5613:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"resume","nodeType":"MemberAccess","referencedDeclaration":22392,"src":"5613:16:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":24282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5613:18:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24283,"nodeType":"ExpressionStatement","src":"5613:18:83"}]},"functionSelector":"10a81c4a","id":24285,"implemented":true,"kind":"function","modifiers":[{"id":24277,"modifierName":{"id":24276,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"5570:27:83"},"nodeType":"ModifierInvocation","src":"5570:27:83"}],"name":"resumeTreasury","nameLocation":"5518:14:83","nodeType":"FunctionDefinition","overrides":{"id":24275,"nodeType":"OverrideSpecifier","overrides":[],"src":"5553:8:83"},"parameters":{"id":24274,"nodeType":"ParameterList","parameters":[],"src":"5532:2:83"},"returnParameters":{"id":24278,"nodeType":"ParameterList","parameters":[],"src":"5602:0:83"},"scope":24393,"src":"5509:129:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6119],"body":{"id":24299,"nodeType":"Block","src":"5761:59:83","statements":[{"expression":{"arguments":[{"id":24296,"name":"walletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24287,"src":"5799:13:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24293,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"5771:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setInstanceWallet","nodeType":"MemberAccess","referencedDeclaration":22545,"src":"5771:27:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":24297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5771:42:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24298,"nodeType":"ExpressionStatement","src":"5771:42:83"}]},"functionSelector":"cab2504d","id":24300,"implemented":true,"kind":"function","modifiers":[{"id":24291,"modifierName":{"id":24290,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"5729:27:83"},"nodeType":"ModifierInvocation","src":"5729:27:83"}],"name":"setInstanceWallet","nameLocation":"5653:17:83","nodeType":"FunctionDefinition","overrides":{"id":24289,"nodeType":"OverrideSpecifier","overrides":[],"src":"5712:8:83"},"parameters":{"id":24288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24287,"mutability":"mutable","name":"walletAddress","nameLocation":"5679:13:83","nodeType":"VariableDeclaration","scope":24300,"src":"5671:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24286,"name":"address","nodeType":"ElementaryTypeName","src":"5671:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5670:23:83"},"returnParameters":{"id":24292,"nodeType":"ParameterList","parameters":[],"src":"5761:0:83"},"scope":24393,"src":"5644:176:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6126],"body":{"id":24317,"nodeType":"Block","src":"5971:79:83","statements":[{"expression":{"arguments":[{"id":24313,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24302,"src":"6009:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24314,"name":"riskpoolWalletAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24304,"src":"6021:21:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24310,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"5981:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setRiskpoolWallet","nodeType":"MemberAccess","referencedDeclaration":22595,"src":"5981:27:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":24315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5981:62:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24316,"nodeType":"ExpressionStatement","src":"5981:62:83"}]},"functionSelector":"86039aed","id":24318,"implemented":true,"kind":"function","modifiers":[{"id":24308,"modifierName":{"id":24307,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"5939:27:83"},"nodeType":"ModifierInvocation","src":"5939:27:83"}],"name":"setRiskpoolWallet","nameLocation":"5835:17:83","nodeType":"FunctionDefinition","overrides":{"id":24306,"nodeType":"OverrideSpecifier","overrides":[],"src":"5922:8:83"},"parameters":{"id":24305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24302,"mutability":"mutable","name":"riskpoolId","nameLocation":"5861:10:83","nodeType":"VariableDeclaration","scope":24318,"src":"5853:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24301,"name":"uint256","nodeType":"ElementaryTypeName","src":"5853:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24304,"mutability":"mutable","name":"riskpoolWalletAddress","nameLocation":"5881:21:83","nodeType":"VariableDeclaration","scope":24318,"src":"5873:29:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24303,"name":"address","nodeType":"ElementaryTypeName","src":"5873:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5852:51:83"},"returnParameters":{"id":24309,"nodeType":"ParameterList","parameters":[],"src":"5971:0:83"},"scope":24393,"src":"5826:224:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6133],"body":{"id":24335,"nodeType":"Block","src":"6189:67:83","statements":[{"expression":{"arguments":[{"id":24331,"name":"productId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24320,"src":"6225:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24332,"name":"erc20Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24322,"src":"6236:12:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24328,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"6199:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setProductToken","nodeType":"MemberAccess","referencedDeclaration":22516,"src":"6199:25:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address) external"}},"id":24333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6199:50:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24334,"nodeType":"ExpressionStatement","src":"6199:50:83"}]},"functionSelector":"cc9cf8cd","id":24336,"implemented":true,"kind":"function","modifiers":[{"id":24326,"modifierName":{"id":24325,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"6157:27:83"},"nodeType":"ModifierInvocation","src":"6157:27:83"}],"name":"setProductToken","nameLocation":"6065:15:83","nodeType":"FunctionDefinition","overrides":{"id":24324,"nodeType":"OverrideSpecifier","overrides":[],"src":"6140:8:83"},"parameters":{"id":24323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24320,"mutability":"mutable","name":"productId","nameLocation":"6089:9:83","nodeType":"VariableDeclaration","scope":24336,"src":"6081:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24319,"name":"uint256","nodeType":"ElementaryTypeName","src":"6081:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24322,"mutability":"mutable","name":"erc20Address","nameLocation":"6108:12:83","nodeType":"VariableDeclaration","scope":24336,"src":"6100:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24321,"name":"address","nodeType":"ElementaryTypeName","src":"6100:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6080:41:83"},"returnParameters":{"id":24327,"nodeType":"ParameterList","parameters":[],"src":"6189:0:83"},"scope":24393,"src":"6056:200:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6159],"body":{"id":24359,"nodeType":"Block","src":"6524:172:83","statements":[{"expression":{"arguments":[{"id":24353,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24338,"src":"6587:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24354,"name":"fixedFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24340,"src":"6612:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24355,"name":"fractionalFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24342,"src":"6634:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24356,"name":"feeCalculationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24344,"src":"6661:18:83","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":24351,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"6541:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"createFeeSpecification","nodeType":"MemberAccess","referencedDeclaration":22642,"src":"6541:32:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_struct$_FeeSpecification_$5838_memory_ptr_$","typeString":"function (uint256,uint256,uint256,bytes memory) view external returns (struct ITreasury.FeeSpecification memory)"}},"id":24357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6541:148:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification memory"}},"functionReturnParameters":24350,"id":24358,"nodeType":"Return","src":"6534:155:83"}]},"functionSelector":"62f0ab55","id":24360,"implemented":true,"kind":"function","modifiers":[],"name":"createFeeSpecification","nameLocation":"6271:22:83","nodeType":"FunctionDefinition","overrides":{"id":24346,"nodeType":"OverrideSpecifier","overrides":[],"src":"6446:8:83"},"parameters":{"id":24345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24338,"mutability":"mutable","name":"componentId","nameLocation":"6311:11:83","nodeType":"VariableDeclaration","scope":24360,"src":"6303:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24337,"name":"uint256","nodeType":"ElementaryTypeName","src":"6303:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24340,"mutability":"mutable","name":"fixedFee","nameLocation":"6340:8:83","nodeType":"VariableDeclaration","scope":24360,"src":"6332:16:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24339,"name":"uint256","nodeType":"ElementaryTypeName","src":"6332:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24342,"mutability":"mutable","name":"fractionalFee","nameLocation":"6366:13:83","nodeType":"VariableDeclaration","scope":24360,"src":"6358:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24341,"name":"uint256","nodeType":"ElementaryTypeName","src":"6358:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24344,"mutability":"mutable","name":"feeCalculationData","nameLocation":"6404:18:83","nodeType":"VariableDeclaration","scope":24360,"src":"6389:33:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":24343,"name":"bytes","nodeType":"ElementaryTypeName","src":"6389:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6293:135:83"},"returnParameters":{"id":24350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24349,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24360,"src":"6485:33:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_memory_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":24348,"nodeType":"UserDefinedTypeName","pathNode":{"id":24347,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"6485:26:83"},"referencedDeclaration":5838,"src":"6485:26:83","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"6484:35:83"},"scope":24393,"src":"6262:434:83","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6139],"body":{"id":24375,"nodeType":"Block","src":"6842:50:83","statements":[{"expression":{"arguments":[{"id":24372,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24363,"src":"6877:7:83","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}],"expression":{"id":24369,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"6852:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setPremiumFees","nodeType":"MemberAccess","referencedDeclaration":22700,"src":"6852:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_FeeSpecification_$5838_memory_ptr_$returns$__$","typeString":"function (struct ITreasury.FeeSpecification memory) external"}},"id":24373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6852:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24374,"nodeType":"ExpressionStatement","src":"6852:33:83"}]},"functionSelector":"01132a7f","id":24376,"implemented":true,"kind":"function","modifiers":[{"id":24367,"modifierName":{"id":24366,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"6810:27:83"},"nodeType":"ModifierInvocation","src":"6810:27:83"}],"name":"setPremiumFees","nameLocation":"6715:14:83","nodeType":"FunctionDefinition","overrides":{"id":24365,"nodeType":"OverrideSpecifier","overrides":[],"src":"6793:8:83"},"parameters":{"id":24364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24363,"mutability":"mutable","name":"feeSpec","nameLocation":"6766:7:83","nodeType":"VariableDeclaration","scope":24376,"src":"6730:43:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":24362,"nodeType":"UserDefinedTypeName","pathNode":{"id":24361,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"6730:26:83"},"referencedDeclaration":5838,"src":"6730:26:83","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"6729:45:83"},"returnParameters":{"id":24368,"nodeType":"ParameterList","parameters":[],"src":"6842:0:83"},"scope":24393,"src":"6706:186:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6145],"body":{"id":24391,"nodeType":"Block","src":"7034:50:83","statements":[{"expression":{"arguments":[{"id":24388,"name":"feeSpec","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24379,"src":"7069:7:83","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification calldata"}],"expression":{"id":24385,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23868,"src":"7044:9:83","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setCapitalFees","nodeType":"MemberAccess","referencedDeclaration":22758,"src":"7044:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_FeeSpecification_$5838_memory_ptr_$returns$__$","typeString":"function (struct ITreasury.FeeSpecification memory) external"}},"id":24389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7044:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24390,"nodeType":"ExpressionStatement","src":"7044:33:83"}]},"functionSelector":"8ca946aa","id":24392,"implemented":true,"kind":"function","modifiers":[{"id":24383,"modifierName":{"id":24382,"name":"onlyInstanceOperatorAddress","nodeType":"IdentifierPath","referencedDeclaration":23881,"src":"7002:27:83"},"nodeType":"ModifierInvocation","src":"7002:27:83"}],"name":"setCapitalFees","nameLocation":"6907:14:83","nodeType":"FunctionDefinition","overrides":{"id":24381,"nodeType":"OverrideSpecifier","overrides":[],"src":"6985:8:83"},"parameters":{"id":24380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24379,"mutability":"mutable","name":"feeSpec","nameLocation":"6958:7:83","nodeType":"VariableDeclaration","scope":24392,"src":"6922:43:83","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_calldata_ptr","typeString":"struct ITreasury.FeeSpecification"},"typeName":{"id":24378,"nodeType":"UserDefinedTypeName","pathNode":{"id":24377,"name":"ITreasury.FeeSpecification","nodeType":"IdentifierPath","referencedDeclaration":5838,"src":"6922:26:83"},"referencedDeclaration":5838,"src":"6922:26:83","typeDescriptions":{"typeIdentifier":"t_struct$_FeeSpecification_$5838_storage_ptr","typeString":"struct ITreasury.FeeSpecification"}},"visibility":"internal"}],"src":"6921:45:83"},"returnParameters":{"id":24384,"nodeType":"ParameterList","parameters":[],"src":"7034:0:83"},"scope":24393,"src":"6898:186:83","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":24394,"src":"786:6300:83"}],"src":"39:7048:83"},"id":83},"contracts/services/InstanceService.sol":{"ast":{"absolutePath":"contracts/services/InstanceService.sol","exportedSymbols":{"AccessControl":[7145],"AccessControlEnumerable":[7270],"AccessController":[15687],"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"Component":[2884],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC20":[8753],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IAccessControl":[7343],"IAccessControlEnumerable":[7368],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC20Metadata":[8856],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IQuery":[5616],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"InstanceOperatorService":[24393],"InstanceService":[25379],"Ownable":[7481],"Pausable":[8167],"PolicyController":[19974],"PoolController":[21207],"Product":[4042],"Strings":[10804],"TestProduct":[28333],"TransferHelper":[26659],"TreasuryModule":[23615]},"id":25380,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":24395,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:84"},{"absolutePath":"contracts/modules/ComponentController.sol","file":"../modules/ComponentController.sol","id":24396,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":17948,"src":"63:44:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/BundleController.sol","file":"../modules/BundleController.sol","id":24397,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":16947,"src":"108:41:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PolicyController.sol","file":"../modules/PolicyController.sol","id":24398,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":19975,"src":"150:41:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/PoolController.sol","file":"../modules/PoolController.sol","id":24399,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":21208,"src":"192:39:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/TreasuryModule.sol","file":"../modules/TreasuryModule.sol","id":24400,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":23616,"src":"232:39:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":24401,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":26414,"src":"272:38:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/services/InstanceOperatorService.sol","file":"../services/InstanceOperatorService.sol","id":24402,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":24394,"src":"311:49:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":24403,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":2989,"src":"362:69:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IOracle.sol","file":"@etherisc/gif-interface/contracts/components/IOracle.sol","id":24404,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":3023,"src":"432:66:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":24405,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":3080,"src":"499:67:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","file":"@etherisc/gif-interface/contracts/components/IRiskpool.sol","id":24406,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":3313,"src":"567:68:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":24407,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":5434,"src":"636:63:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":24408,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":5715,"src":"700:65:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","file":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","id":24409,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6010,"src":"766:79:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","id":24410,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6510,"src":"846:73:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol","id":24411,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6161,"src":"920:81:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IOracleService.sol","file":"@etherisc/gif-interface/contracts/services/IOracleService.sol","id":24412,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6520,"src":"1002:71:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","file":"@etherisc/gif-interface/contracts/services/IProductService.sol","id":24413,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6665,"src":"1074:72:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","file":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","id":24414,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6771,"src":"1147:73:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","file":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","id":24415,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":6826,"src":"1221:67:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":24416,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":8832,"src":"1290:56:84","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/IERC721.sol","file":"@openzeppelin/contracts/token/ERC721/IERC721.sol","id":24417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25380,"sourceUnit":10157,"src":"1347:58:84","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":24418,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"1440:16:84"},"id":24419,"nodeType":"InheritanceSpecifier","src":"1440:16:84"},{"baseName":{"id":24420,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"1463:14:84"},"id":24421,"nodeType":"InheritanceSpecifier","src":"1463:14:84"}],"contractDependencies":[6509,8059,10518,26413],"contractKind":"contract","fullyImplemented":true,"id":25379,"linearizedBaseContracts":[25379,26413,8059,10518,6509],"name":"InstanceService","nameLocation":"1416:15:84","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"5e6877be","id":24424,"mutability":"constant","name":"BUNDLE_NAME","nameLocation":"1508:11:84","nodeType":"VariableDeclaration","scope":25379,"src":"1484:46:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24422,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1484:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"42756e646c65","id":24423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1522:8:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""},"value":"Bundle"},"visibility":"public"},{"constant":true,"functionSelector":"51b2fb90","id":24427,"mutability":"constant","name":"COMPONENT_NAME","nameLocation":"1560:14:84","nodeType":"VariableDeclaration","scope":25379,"src":"1536:52:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1536:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"436f6d706f6e656e74","id":24426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1577:11:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"},"visibility":"public"},{"constant":true,"functionSelector":"18ff21c3","id":24430,"mutability":"constant","name":"POLICY_NAME","nameLocation":"1618:11:84","nodeType":"VariableDeclaration","scope":25379,"src":"1594:46:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24428,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1594:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6c696379","id":24429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1632:8:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"},"visibility":"public"},{"constant":true,"functionSelector":"0c131757","id":24433,"mutability":"constant","name":"POOL_NAME","nameLocation":"1670:9:84","nodeType":"VariableDeclaration","scope":25379,"src":"1646:42:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1646:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6f6c","id":24432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1682:6:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"},"visibility":"public"},{"constant":true,"functionSelector":"50e1a19b","id":24436,"mutability":"constant","name":"TREASURY_NAME","nameLocation":"1718:13:84","nodeType":"VariableDeclaration","scope":25379,"src":"1694:50:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1694:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"5472656173757279","id":24435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1734:10:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"},"visibility":"public"},{"constant":true,"functionSelector":"52b5b0ef","id":24439,"mutability":"constant","name":"COMPONENT_OWNER_SERVICE_NAME","nameLocation":"1775:28:84","nodeType":"VariableDeclaration","scope":25379,"src":"1751:78:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1751:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"436f6d706f6e656e744f776e657253657276696365","id":24438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1806:23:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""},"value":"ComponentOwnerService"},"visibility":"public"},{"constant":true,"functionSelector":"a3f66bd2","id":24442,"mutability":"constant","name":"INSTANCE_OPERATOR_SERVICE_NAME","nameLocation":"1859:30:84","nodeType":"VariableDeclaration","scope":25379,"src":"1835:82:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1835:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":24441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1892:25:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"},"visibility":"public"},{"constant":true,"functionSelector":"2898312f","id":24445,"mutability":"constant","name":"ORACLE_SERVICE_NAME","nameLocation":"1947:19:84","nodeType":"VariableDeclaration","scope":25379,"src":"1923:61:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1923:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"4f7261636c6553657276696365","id":24444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1969:15:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""},"value":"OracleService"},"visibility":"public"},{"constant":true,"functionSelector":"e8828922","id":24448,"mutability":"constant","name":"PRODUCT_SERVICE_NAME","nameLocation":"2014:20:84","nodeType":"VariableDeclaration","scope":25379,"src":"1990:63:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1990:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"50726f6475637453657276696365","id":24447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2037:16:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""},"value":"ProductService"},"visibility":"public"},{"constant":true,"functionSelector":"e543ecb9","id":24451,"mutability":"constant","name":"RISKPOOL_SERVICE_NAME","nameLocation":"2083:21:84","nodeType":"VariableDeclaration","scope":25379,"src":"2059:65:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2059:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"5269736b706f6f6c53657276696365","id":24450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2107:17:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a","typeString":"literal_string \"RiskpoolService\""},"value":"RiskpoolService"},"visibility":"public"},{"constant":false,"id":24454,"mutability":"mutable","name":"_bundle","nameLocation":"2148:7:84","nodeType":"VariableDeclaration","scope":25379,"src":"2131:24:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"},"typeName":{"id":24453,"nodeType":"UserDefinedTypeName","pathNode":{"id":24452,"name":"BundleController","nodeType":"IdentifierPath","referencedDeclaration":16946,"src":"2131:16:84"},"referencedDeclaration":16946,"src":"2131:16:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"visibility":"internal"},{"constant":false,"id":24457,"mutability":"mutable","name":"_component","nameLocation":"2181:10:84","nodeType":"VariableDeclaration","scope":25379,"src":"2161:30:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":24456,"nodeType":"UserDefinedTypeName","pathNode":{"id":24455,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"2161:19:84"},"referencedDeclaration":17947,"src":"2161:19:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"internal"},{"constant":false,"id":24460,"mutability":"mutable","name":"_policy","nameLocation":"2214:7:84","nodeType":"VariableDeclaration","scope":25379,"src":"2197:24:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"},"typeName":{"id":24459,"nodeType":"UserDefinedTypeName","pathNode":{"id":24458,"name":"PolicyController","nodeType":"IdentifierPath","referencedDeclaration":19974,"src":"2197:16:84"},"referencedDeclaration":19974,"src":"2197:16:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"visibility":"internal"},{"constant":false,"id":24463,"mutability":"mutable","name":"_pool","nameLocation":"2242:5:84","nodeType":"VariableDeclaration","scope":25379,"src":"2227:20:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":24462,"nodeType":"UserDefinedTypeName","pathNode":{"id":24461,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"2227:14:84"},"referencedDeclaration":21207,"src":"2227:14:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"internal"},{"constant":false,"id":24466,"mutability":"mutable","name":"_treasury","nameLocation":"2276:9:84","nodeType":"VariableDeclaration","scope":25379,"src":"2253:32:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":24465,"nodeType":"UserDefinedTypeName","pathNode":{"id":24464,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"2253:14:84"},"referencedDeclaration":23615,"src":"2253:14:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"private"},{"constant":false,"id":24470,"mutability":"mutable","name":"_chainName","nameLocation":"2359:10:84","nodeType":"VariableDeclaration","scope":25379,"src":"2292:77:84","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"typeName":{"id":24469,"keyType":{"id":24467,"name":"uint256","nodeType":"ElementaryTypeName","src":"2300:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2292:58:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"valueType":{"id":24468,"name":"string","nodeType":"ElementaryTypeName","src":"2326:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"baseFunctions":[26387],"body":{"id":24519,"nodeType":"Block","src":"2439:389:84","statements":[{"expression":{"id":24482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24476,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"2449:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":24479,"name":"BUNDLE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24424,"src":"2496:11:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24478,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2476:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2476:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24477,"name":"BundleController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"2459:16:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleController_$16946_$","typeString":"type(contract BundleController)"}},"id":24481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2459:50:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"src":"2449:60:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":24483,"nodeType":"ExpressionStatement","src":"2449:60:84"},{"expression":{"id":24490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24484,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"2519:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":24487,"name":"COMPONENT_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24427,"src":"2572:14:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24486,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2552:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2552:35:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24485,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"2532:19:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":24489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2532:56:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"2519:69:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24491,"nodeType":"ExpressionStatement","src":"2519:69:84"},{"expression":{"id":24498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24492,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"2598:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":24495,"name":"POLICY_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24430,"src":"2645:11:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24494,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2625:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2625:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24493,"name":"PolicyController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19974,"src":"2608:16:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PolicyController_$19974_$","typeString":"type(contract PolicyController)"}},"id":24497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2608:50:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"src":"2598:60:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":24499,"nodeType":"ExpressionStatement","src":"2598:60:84"},{"expression":{"id":24506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24500,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"2668:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":24503,"name":"POOL_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24433,"src":"2711:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24502,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2691:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2691:30:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24501,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"2676:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":24505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2676:46:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"src":"2668:54:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":24507,"nodeType":"ExpressionStatement","src":"2668:54:84"},{"expression":{"id":24514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24508,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"2732:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":24511,"name":"TREASURY_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24436,"src":"2779:13:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24510,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"2759:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2759:34:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24509,"name":"TreasuryModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23615,"src":"2744:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TreasuryModule_$23615_$","typeString":"type(contract TreasuryModule)"}},"id":24513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2744:50:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"src":"2732:62:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":24515,"nodeType":"ExpressionStatement","src":"2732:62:84"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":24516,"name":"_setChainNames","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24578,"src":"2805:14:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":24517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2805:16:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24518,"nodeType":"ExpressionStatement","src":"2805:16:84"}]},"id":24520,"implemented":true,"kind":"function","modifiers":[{"id":24474,"modifierName":{"id":24473,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"2422:16:84"},"nodeType":"ModifierInvocation","src":"2422:16:84"}],"name":"_afterInitialize","nameLocation":"2385:16:84","nodeType":"FunctionDefinition","overrides":{"id":24472,"nodeType":"OverrideSpecifier","overrides":[],"src":"2413:8:84"},"parameters":{"id":24471,"nodeType":"ParameterList","parameters":[],"src":"2401:2:84"},"returnParameters":{"id":24475,"nodeType":"ParameterList","parameters":[],"src":"2439:0:84"},"scope":25379,"src":"2376:452:84","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":24577,"nodeType":"Block","src":"2869:427:84","statements":[{"expression":{"id":24527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24523,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"2879:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24525,"indexExpression":{"hexValue":"31","id":24524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2890:1:84","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2879:13:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"457468657265756d204d61696e6e65742f455448","id":24526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2895:22:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_21d2f99878ae48836ef60c9b7077fe5e86a86485c8489425e7b8e624c344701d","typeString":"literal_string \"Ethereum Mainnet/ETH\""},"value":"Ethereum Mainnet/ETH"},"src":"2879:38:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24528,"nodeType":"ExpressionStatement","src":"2879:38:84"},{"expression":{"id":24533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24529,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"2928:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24531,"indexExpression":{"hexValue":"35","id":24530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2939:1:84","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2928:13:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"476f65726c692f455448","id":24532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2944:12:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_da4d70b465e1d14b540f5232eb8d0b7d5324964761ffb91d51b068f5307d04d3","typeString":"literal_string \"Goerli/ETH\""},"value":"Goerli/ETH"},"src":"2928:28:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24534,"nodeType":"ExpressionStatement","src":"2928:28:84"},{"expression":{"id":24539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24535,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"2967:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24537,"indexExpression":{"hexValue":"31333337","id":24536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2978:4:84","typeDescriptions":{"typeIdentifier":"t_rational_1337_by_1","typeString":"int_const 1337"},"value":"1337"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2967:16:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"47616e61636865","id":24538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2986:9:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_c74b63363546ae61aa8cc8f82a7eab8702ab705a3b23371b23d872924c472615","typeString":"literal_string \"Ganache\""},"value":"Ganache"},"src":"2967:28:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24540,"nodeType":"ExpressionStatement","src":"2967:28:84"},{"expression":{"id":24545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24541,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3006:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24543,"indexExpression":{"hexValue":"313030","id":24542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3017:3:84","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3006:15:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"476e6f7369732f78446169","id":24544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3024:13:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_45def632ec521e29f55bcfc340d63637514b18f3c4bd8373587e34276892250e","typeString":"literal_string \"Gnosis/xDai\""},"value":"Gnosis/xDai"},"src":"3006:31:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24546,"nodeType":"ExpressionStatement","src":"3006:31:84"},{"expression":{"id":24551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24547,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3048:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24549,"indexExpression":{"hexValue":"3737","id":24548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3059:2:84","typeDescriptions":{"typeIdentifier":"t_rational_77_by_1","typeString":"int_const 77"},"value":"77"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3048:14:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"536f6b6f6c2f53504f41","id":24550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3065:12:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_26e64b77953ee519ed204051f2b253f7acfbbcbfb08a525b233b1f3e99e800b7","typeString":"literal_string \"Sokol/SPOA\""},"value":"Sokol/SPOA"},"src":"3048:29:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24552,"nodeType":"ExpressionStatement","src":"3048:29:84"},{"expression":{"id":24557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24553,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3088:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24555,"indexExpression":{"hexValue":"313337","id":24554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3099:3:84","typeDescriptions":{"typeIdentifier":"t_rational_137_by_1","typeString":"int_const 137"},"value":"137"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3088:15:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"506f6c79676f6e204d61696e6e65742f4d41544943","id":24556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3106:23:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_621c670cd8cfed3aa3bae6dca5153b33e8c5961b7514827497e80ddb9d042fad","typeString":"literal_string \"Polygon Mainnet/MATIC\""},"value":"Polygon Mainnet/MATIC"},"src":"3088:41:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24558,"nodeType":"ExpressionStatement","src":"3088:41:84"},{"expression":{"id":24563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24559,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3140:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24561,"indexExpression":{"hexValue":"38303031","id":24560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3151:4:84","typeDescriptions":{"typeIdentifier":"t_rational_8001_by_1","typeString":"int_const 8001"},"value":"8001"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3140:16:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"4d756d6261692f4d41544943","id":24562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3159:14:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_279ef0c6d2df1dbced4bbd82446107a5d878eaceb340327fb85b74902cb61d92","typeString":"literal_string \"Mumbai/MATIC\""},"value":"Mumbai/MATIC"},"src":"3140:33:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24564,"nodeType":"ExpressionStatement","src":"3140:33:84"},{"expression":{"id":24569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24565,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3184:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24567,"indexExpression":{"hexValue":"3433313134","id":24566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3195:5:84","typeDescriptions":{"typeIdentifier":"t_rational_43114_by_1","typeString":"int_const 43114"},"value":"43114"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3184:17:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"4176616c616e63686520432d436861696e2f41564158","id":24568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3204:24:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0d2442d64137ae125245b9c55c765eff38b1d7bfaa0ab852460dcffbef3ae57","typeString":"literal_string \"Avalanche C-Chain/AVAX\""},"value":"Avalanche C-Chain/AVAX"},"src":"3184:44:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24570,"nodeType":"ExpressionStatement","src":"3184:44:84"},{"expression":{"id":24575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":24571,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3239:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24573,"indexExpression":{"hexValue":"3433313133","id":24572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3250:5:84","typeDescriptions":{"typeIdentifier":"t_rational_43113_by_1","typeString":"int_const 43113"},"value":"43113"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3239:17:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"4176616c616e6368652046756a6920546573746e65742f41564158","id":24574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3259:29:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb50912c6cfda760007d4523379fe44367b9fd417caf26951218293aedfbbb63","typeString":"literal_string \"Avalanche Fuji Testnet/AVAX\""},"value":"Avalanche Fuji Testnet/AVAX"},"src":"3239:49:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":24576,"nodeType":"ExpressionStatement","src":"3239:49:84"}]},"id":24578,"implemented":true,"kind":"function","modifiers":[],"name":"_setChainNames","nameLocation":"2843:14:84","nodeType":"FunctionDefinition","parameters":{"id":24521,"nodeType":"ParameterList","parameters":[],"src":"2857:2:84"},"returnParameters":{"id":24522,"nodeType":"ParameterList","parameters":[],"src":"2869:0:84"},"scope":25379,"src":"2834:462:84","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[6179],"body":{"id":24589,"nodeType":"Block","src":"3397:40:84","statements":[{"expression":{"id":24587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24584,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24582,"src":"3407:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":24585,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"3417:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3417:13:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3407:23:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24588,"nodeType":"ExpressionStatement","src":"3407:23:84"}]},"functionSelector":"3408e470","id":24590,"implemented":true,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"3338:10:84","nodeType":"FunctionDefinition","overrides":{"id":24580,"nodeType":"OverrideSpecifier","overrides":[],"src":"3358:8:84"},"parameters":{"id":24579,"nodeType":"ParameterList","parameters":[],"src":"3348:2:84"},"returnParameters":{"id":24583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24582,"mutability":"mutable","name":"chainId","nameLocation":"3388:7:84","nodeType":"VariableDeclaration","scope":24590,"src":"3380:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24581,"name":"uint256","nodeType":"ElementaryTypeName","src":"3380:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3379:17:84"},"scope":25379,"src":"3329:108:84","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[6184],"body":{"id":24603,"nodeType":"Block","src":"3521:54:84","statements":[{"expression":{"id":24601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24596,"name":"chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24594,"src":"3531:9:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":24597,"name":"_chainName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24470,"src":"3543:10:84","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":24600,"indexExpression":{"expression":{"id":24598,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"3554:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3554:13:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3543:25:84","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"src":"3531:37:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":24602,"nodeType":"ExpressionStatement","src":"3531:37:84"}]},"functionSelector":"d722b0bc","id":24604,"implemented":true,"kind":"function","modifiers":[],"name":"getChainName","nameLocation":"3452:12:84","nodeType":"FunctionDefinition","overrides":{"id":24592,"nodeType":"OverrideSpecifier","overrides":[],"src":"3474:8:84"},"parameters":{"id":24591,"nodeType":"ParameterList","parameters":[],"src":"3464:2:84"},"returnParameters":{"id":24595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24594,"mutability":"mutable","name":"chainName","nameLocation":"3510:9:84","nodeType":"VariableDeclaration","scope":24604,"src":"3496:23:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24593,"name":"string","nodeType":"ElementaryTypeName","src":"3496:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3495:25:84"},"scope":25379,"src":"3443:132:84","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[6189],"body":{"id":24624,"nodeType":"Block","src":"3655:139:84","statements":[{"expression":{"id":24622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24610,"name":"instanceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24608,"src":"3665:10:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":24614,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967292,"src":"3735:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":24615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"chainid","nodeType":"MemberAccess","src":"3735:13:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":24618,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"3775:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}],"id":24617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3767:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":24616,"name":"address","nodeType":"ElementaryTypeName","src":"3767:7:84","typeDescriptions":{}}},"id":24619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3767:18:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24612,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3701:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3701:16:84","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":24620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3701:85:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24611,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967288,"src":"3678:9:84","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":24621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3678:109:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3665:122:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":24623,"nodeType":"ExpressionStatement","src":"3665:122:84"}]},"functionSelector":"1551100f","id":24625,"implemented":true,"kind":"function","modifiers":[],"name":"getInstanceId","nameLocation":"3590:13:84","nodeType":"FunctionDefinition","overrides":{"id":24606,"nodeType":"OverrideSpecifier","overrides":[],"src":"3613:8:84"},"parameters":{"id":24605,"nodeType":"ParameterList","parameters":[],"src":"3603:2:84"},"returnParameters":{"id":24609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24608,"mutability":"mutable","name":"instanceId","nameLocation":"3643:10:84","nodeType":"VariableDeclaration","scope":24625,"src":"3635:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24607,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3635:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3634:20:84"},"scope":25379,"src":"3581:213:84","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[6194],"body":{"id":24644,"nodeType":"Block","src":"3871:151:84","statements":[{"assignments":[24633],"declarations":[{"constant":false,"id":24633,"mutability":"mutable","name":"ios","nameLocation":"3905:3:84","nodeType":"VariableDeclaration","scope":24644,"src":"3881:27:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"},"typeName":{"id":24632,"nodeType":"UserDefinedTypeName","pathNode":{"id":24631,"name":"InstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":24393,"src":"3881:23:84"},"referencedDeclaration":24393,"src":"3881:23:84","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"}},"visibility":"internal"}],"id":24639,"initialValue":{"arguments":[{"arguments":[{"id":24636,"name":"INSTANCE_OPERATOR_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24442,"src":"3955:30:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24635,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3935:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3935:51:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24634,"name":"InstanceOperatorService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24393,"src":"3911:23:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_InstanceOperatorService_$24393_$","typeString":"type(contract InstanceOperatorService)"}},"id":24638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3911:76:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"}},"nodeType":"VariableDeclarationStatement","src":"3881:106:84"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24640,"name":"ios","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24633,"src":"4004:3:84","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceOperatorService_$24393","typeString":"contract InstanceOperatorService"}},"id":24641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":7409,"src":"4004:9:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":24642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4004:11:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":24630,"id":24643,"nodeType":"Return","src":"3997:18:84"}]},"functionSelector":"39c6fa90","id":24645,"implemented":true,"kind":"function","modifiers":[],"name":"getInstanceOperator","nameLocation":"3809:19:84","nodeType":"FunctionDefinition","overrides":{"id":24627,"nodeType":"OverrideSpecifier","overrides":[],"src":"3840:8:84"},"parameters":{"id":24626,"nodeType":"ParameterList","parameters":[],"src":"3828:2:84"},"returnParameters":{"id":24630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24645,"src":"3862:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24628,"name":"address","nodeType":"ElementaryTypeName","src":"3862:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3861:9:84"},"scope":25379,"src":"3800:222:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6200],"body":{"id":24658,"nodeType":"Block","src":"4150:97:84","statements":[{"expression":{"arguments":[{"arguments":[{"id":24654,"name":"COMPONENT_OWNER_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24439,"src":"4210:28:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24653,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4190:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4190:49:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24652,"name":"IComponentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6009,"src":"4167:22:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponentOwnerService_$6009_$","typeString":"type(contract IComponentOwnerService)"}},"id":24656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4167:73:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"functionReturnParameters":24651,"id":24657,"nodeType":"Return","src":"4160:80:84"}]},"functionSelector":"6fa29853","id":24659,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentOwnerService","nameLocation":"4060:24:84","nodeType":"FunctionDefinition","overrides":{"id":24647,"nodeType":"OverrideSpecifier","overrides":[],"src":"4096:8:84"},"parameters":{"id":24646,"nodeType":"ParameterList","parameters":[],"src":"4084:2:84"},"returnParameters":{"id":24651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24650,"mutability":"mutable","name":"service","nameLocation":"4141:7:84","nodeType":"VariableDeclaration","scope":24659,"src":"4118:30:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":24649,"nodeType":"UserDefinedTypeName","pathNode":{"id":24648,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"4118:22:84"},"referencedDeclaration":6009,"src":"4118:22:84","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"internal"}],"src":"4117:32:84"},"scope":25379,"src":"4051:196:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6206],"body":{"id":24672,"nodeType":"Block","src":"4356:101:84","statements":[{"expression":{"arguments":[{"arguments":[{"id":24668,"name":"INSTANCE_OPERATOR_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24442,"src":"4418:30:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24667,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4398:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4398:51:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24666,"name":"IInstanceOperatorService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6160,"src":"4373:24:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IInstanceOperatorService_$6160_$","typeString":"type(contract IInstanceOperatorService)"}},"id":24670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4373:77:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceOperatorService_$6160","typeString":"contract IInstanceOperatorService"}},"functionReturnParameters":24665,"id":24671,"nodeType":"Return","src":"4366:84:84"}]},"functionSelector":"091924dc","id":24673,"implemented":true,"kind":"function","modifiers":[],"name":"getInstanceOperatorService","nameLocation":"4262:26:84","nodeType":"FunctionDefinition","overrides":{"id":24661,"nodeType":"OverrideSpecifier","overrides":[],"src":"4300:8:84"},"parameters":{"id":24660,"nodeType":"ParameterList","parameters":[],"src":"4288:2:84"},"returnParameters":{"id":24665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24664,"mutability":"mutable","name":"service","nameLocation":"4347:7:84","nodeType":"VariableDeclaration","scope":24673,"src":"4322:32:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceOperatorService_$6160","typeString":"contract IInstanceOperatorService"},"typeName":{"id":24663,"nodeType":"UserDefinedTypeName","pathNode":{"id":24662,"name":"IInstanceOperatorService","nodeType":"IdentifierPath","referencedDeclaration":6160,"src":"4322:24:84"},"referencedDeclaration":6160,"src":"4322:24:84","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceOperatorService_$6160","typeString":"contract IInstanceOperatorService"}},"visibility":"internal"}],"src":"4321:34:84"},"scope":25379,"src":"4253:204:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6212],"body":{"id":24686,"nodeType":"Block","src":"4546:80:84","statements":[{"expression":{"arguments":[{"arguments":[{"id":24682,"name":"ORACLE_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24445,"src":"4598:19:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24681,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4578:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4578:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24680,"name":"IOracleService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"4563:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOracleService_$6519_$","typeString":"type(contract IOracleService)"}},"id":24684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4563:56:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"functionReturnParameters":24679,"id":24685,"nodeType":"Return","src":"4556:63:84"}]},"functionSelector":"a7ecda36","id":24687,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleService","nameLocation":"4472:16:84","nodeType":"FunctionDefinition","overrides":{"id":24675,"nodeType":"OverrideSpecifier","overrides":[],"src":"4500:8:84"},"parameters":{"id":24674,"nodeType":"ParameterList","parameters":[],"src":"4488:2:84"},"returnParameters":{"id":24679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24678,"mutability":"mutable","name":"service","nameLocation":"4537:7:84","nodeType":"VariableDeclaration","scope":24687,"src":"4522:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"},"typeName":{"id":24677,"nodeType":"UserDefinedTypeName","pathNode":{"id":24676,"name":"IOracleService","nodeType":"IdentifierPath","referencedDeclaration":6519,"src":"4522:14:84"},"referencedDeclaration":6519,"src":"4522:14:84","typeDescriptions":{"typeIdentifier":"t_contract$_IOracleService_$6519","typeString":"contract IOracleService"}},"visibility":"internal"}],"src":"4521:24:84"},"scope":25379,"src":"4463:163:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6218],"body":{"id":24700,"nodeType":"Block","src":"4717:82:84","statements":[{"expression":{"arguments":[{"arguments":[{"id":24696,"name":"PRODUCT_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24448,"src":"4770:20:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24695,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4750:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4750:41:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24694,"name":"IProductService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6664,"src":"4734:15:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProductService_$6664_$","typeString":"type(contract IProductService)"}},"id":24698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4734:58:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"functionReturnParameters":24693,"id":24699,"nodeType":"Return","src":"4727:65:84"}]},"functionSelector":"4288121d","id":24701,"implemented":true,"kind":"function","modifiers":[],"name":"getProductService","nameLocation":"4641:17:84","nodeType":"FunctionDefinition","overrides":{"id":24689,"nodeType":"OverrideSpecifier","overrides":[],"src":"4670:8:84"},"parameters":{"id":24688,"nodeType":"ParameterList","parameters":[],"src":"4658:2:84"},"returnParameters":{"id":24693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24692,"mutability":"mutable","name":"service","nameLocation":"4708:7:84","nodeType":"VariableDeclaration","scope":24701,"src":"4692:23:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"},"typeName":{"id":24691,"nodeType":"UserDefinedTypeName","pathNode":{"id":24690,"name":"IProductService","nodeType":"IdentifierPath","referencedDeclaration":6664,"src":"4692:15:84"},"referencedDeclaration":6664,"src":"4692:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"visibility":"internal"}],"src":"4691:25:84"},"scope":25379,"src":"4632:167:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6224],"body":{"id":24714,"nodeType":"Block","src":"4892:84:84","statements":[{"expression":{"arguments":[{"arguments":[{"id":24710,"name":"RISKPOOL_SERVICE_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24451,"src":"4946:21:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":24709,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"4926:19:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":24711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4926:42:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":24708,"name":"IRiskpoolService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6770,"src":"4909:16:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRiskpoolService_$6770_$","typeString":"type(contract IRiskpoolService)"}},"id":24712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4909:60:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"functionReturnParameters":24707,"id":24713,"nodeType":"Return","src":"4902:67:84"}]},"functionSelector":"442ed817","id":24715,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolService","nameLocation":"4814:18:84","nodeType":"FunctionDefinition","overrides":{"id":24703,"nodeType":"OverrideSpecifier","overrides":[],"src":"4844:8:84"},"parameters":{"id":24702,"nodeType":"ParameterList","parameters":[],"src":"4832:2:84"},"returnParameters":{"id":24707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24706,"mutability":"mutable","name":"service","nameLocation":"4883:7:84","nodeType":"VariableDeclaration","scope":24715,"src":"4866:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"},"typeName":{"id":24705,"nodeType":"UserDefinedTypeName","pathNode":{"id":24704,"name":"IRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":6770,"src":"4866:16:84"},"referencedDeclaration":6770,"src":"4866:16:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRiskpoolService_$6770","typeString":"contract IRiskpoolService"}},"visibility":"internal"}],"src":"4865:26:84"},"scope":25379,"src":"4805:171:84","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":24723,"nodeType":"Block","src":"5065:33:84","statements":[{"expression":{"id":24721,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"5082:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"functionReturnParameters":24720,"id":24722,"nodeType":"Return","src":"5075:16:84"}]},"functionSelector":"5ab1bd53","id":24724,"implemented":true,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"5010:11:84","nodeType":"FunctionDefinition","parameters":{"id":24716,"nodeType":"ParameterList","parameters":[],"src":"5021:2:84"},"returnParameters":{"id":24720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24719,"mutability":"mutable","name":"service","nameLocation":"5056:7:84","nodeType":"VariableDeclaration","scope":24724,"src":"5046:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":24718,"nodeType":"UserDefinedTypeName","pathNode":{"id":24717,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"5046:9:84"},"referencedDeclaration":5714,"src":"5046:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"5045:19:84"},"scope":25379,"src":"5001:97:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6229],"body":{"id":24736,"nodeType":"Block","src":"5184:58:84","statements":[{"expression":{"id":24734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24730,"name":"numberOfContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24728,"src":"5194:17:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24731,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"5214:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":24732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contracts","nodeType":"MemberAccess","referencedDeclaration":5706,"src":"5214:19:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5214:21:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5194:41:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24735,"nodeType":"ExpressionStatement","src":"5194:41:84"}]},"functionSelector":"6c0f79b6","id":24737,"implemented":true,"kind":"function","modifiers":[],"name":"contracts","nameLocation":"5113:9:84","nodeType":"FunctionDefinition","overrides":{"id":24726,"nodeType":"OverrideSpecifier","overrides":[],"src":"5139:8:84"},"parameters":{"id":24725,"nodeType":"ParameterList","parameters":[],"src":"5122:2:84"},"returnParameters":{"id":24729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24728,"mutability":"mutable","name":"numberOfContracts","nameLocation":"5165:17:84","nodeType":"VariableDeclaration","scope":24737,"src":"5157:25:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24727,"name":"uint256","nodeType":"ElementaryTypeName","src":"5157:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5156:27:84"},"scope":25379,"src":"5104:138:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6236],"body":{"id":24752,"nodeType":"Block","src":"5337:51:84","statements":[{"expression":{"id":24750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24745,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24743,"src":"5347:4:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":24748,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24739,"src":"5377:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24746,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"5354:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":24747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"contractName","nodeType":"MemberAccess","referencedDeclaration":5713,"src":"5354:22:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view external returns (bytes32)"}},"id":24749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5354:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5347:34:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":24751,"nodeType":"ExpressionStatement","src":"5347:34:84"}]},"functionSelector":"f6b3e7d0","id":24753,"implemented":true,"kind":"function","modifiers":[],"name":"contractName","nameLocation":"5265:12:84","nodeType":"FunctionDefinition","overrides":{"id":24741,"nodeType":"OverrideSpecifier","overrides":[],"src":"5305:8:84"},"parameters":{"id":24740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24739,"mutability":"mutable","name":"idx","nameLocation":"5286:3:84","nodeType":"VariableDeclaration","scope":24753,"src":"5278:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24738,"name":"uint256","nodeType":"ElementaryTypeName","src":"5278:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5277:13:84"},"returnParameters":{"id":24744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24743,"mutability":"mutable","name":"name","nameLocation":"5331:4:84","nodeType":"VariableDeclaration","scope":24753,"src":"5323:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5323:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5322:14:84"},"scope":25379,"src":"5256:132:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6241],"body":{"id":24763,"nodeType":"Block","src":"5482:53:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24759,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"5499:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getDefaultAdminRole","nodeType":"MemberAccess","referencedDeclaration":4780,"src":"5499:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":24761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5499:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":24758,"id":24762,"nodeType":"Return","src":"5492:36:84"}]},"functionSelector":"52a9c8d7","id":24764,"implemented":true,"kind":"function","modifiers":[],"name":"getDefaultAdminRole","nameLocation":"5420:19:84","nodeType":"FunctionDefinition","overrides":{"id":24755,"nodeType":"OverrideSpecifier","overrides":[],"src":"5451:8:84"},"parameters":{"id":24754,"nodeType":"ParameterList","parameters":[],"src":"5439:2:84"},"returnParameters":{"id":24758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24764,"src":"5473:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5473:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5472:9:84"},"scope":25379,"src":"5411:124:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6246],"body":{"id":24774,"nodeType":"Block","src":"5612:53:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24770,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"5629:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProductOwnerRole","nodeType":"MemberAccess","referencedDeclaration":4785,"src":"5629:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":24772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5629:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":24769,"id":24773,"nodeType":"Return","src":"5622:36:84"}]},"functionSelector":"775a4048","id":24775,"implemented":true,"kind":"function","modifiers":[],"name":"getProductOwnerRole","nameLocation":"5550:19:84","nodeType":"FunctionDefinition","overrides":{"id":24766,"nodeType":"OverrideSpecifier","overrides":[],"src":"5581:8:84"},"parameters":{"id":24765,"nodeType":"ParameterList","parameters":[],"src":"5569:2:84"},"returnParameters":{"id":24769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24775,"src":"5603:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24767,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5603:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5602:9:84"},"scope":25379,"src":"5541:124:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6251],"body":{"id":24785,"nodeType":"Block","src":"5744:55:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24781,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"5761:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOracleProviderRole","nodeType":"MemberAccess","referencedDeclaration":4790,"src":"5761:29:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":24783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5761:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":24780,"id":24784,"nodeType":"Return","src":"5754:38:84"}]},"functionSelector":"d49d21c0","id":24786,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleProviderRole","nameLocation":"5680:21:84","nodeType":"FunctionDefinition","overrides":{"id":24777,"nodeType":"OverrideSpecifier","overrides":[],"src":"5713:8:84"},"parameters":{"id":24776,"nodeType":"ParameterList","parameters":[],"src":"5701:2:84"},"returnParameters":{"id":24780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24786,"src":"5735:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24778,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5735:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5734:9:84"},"scope":25379,"src":"5671:128:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6256],"body":{"id":24796,"nodeType":"Block","src":"5878:55:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24792,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"5895:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpoolKeeperRole","nodeType":"MemberAccess","referencedDeclaration":4795,"src":"5895:29:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":24794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5895:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":24791,"id":24795,"nodeType":"Return","src":"5888:38:84"}]},"functionSelector":"3ffdd2f3","id":24797,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolKeeperRole","nameLocation":"5814:21:84","nodeType":"FunctionDefinition","overrides":{"id":24788,"nodeType":"OverrideSpecifier","overrides":[],"src":"5847:8:84"},"parameters":{"id":24787,"nodeType":"ParameterList","parameters":[],"src":"5835:2:84"},"returnParameters":{"id":24791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24797,"src":"5869:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5869:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5868:9:84"},"scope":25379,"src":"5805:128:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6265],"body":{"id":24813,"nodeType":"Block","src":"6047:56:84","statements":[{"expression":{"arguments":[{"id":24809,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24799,"src":"6080:4:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":24810,"name":"principal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24801,"src":"6086:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24807,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"6064:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":24808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":4804,"src":"6064:15:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":24811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6064:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":24806,"id":24812,"nodeType":"Return","src":"6057:39:84"}]},"functionSelector":"91d14854","id":24814,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"5948:7:84","nodeType":"FunctionDefinition","overrides":{"id":24803,"nodeType":"OverrideSpecifier","overrides":[],"src":"6006:8:84"},"parameters":{"id":24802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24799,"mutability":"mutable","name":"role","nameLocation":"5964:4:84","nodeType":"VariableDeclaration","scope":24814,"src":"5956:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5956:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":24801,"mutability":"mutable","name":"principal","nameLocation":"5978:9:84","nodeType":"VariableDeclaration","scope":24814,"src":"5970:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24800,"name":"address","nodeType":"ElementaryTypeName","src":"5970:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5955:33:84"},"returnParameters":{"id":24806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24814,"src":"6037:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24804,"name":"bool","nodeType":"ElementaryTypeName","src":"6037:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6036:6:84"},"scope":25379,"src":"5939:164:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6270],"body":{"id":24824,"nodeType":"Block","src":"6189:45:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24820,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"6206:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"products","nodeType":"MemberAccess","referencedDeclaration":17689,"src":"6206:19:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6206:21:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24819,"id":24823,"nodeType":"Return","src":"6199:28:84"}]},"functionSelector":"c71e261f","id":24825,"implemented":true,"kind":"function","modifiers":[],"name":"products","nameLocation":"6138:8:84","nodeType":"FunctionDefinition","overrides":{"id":24816,"nodeType":"OverrideSpecifier","overrides":[],"src":"6158:8:84"},"parameters":{"id":24815,"nodeType":"ParameterList","parameters":[],"src":"6146:2:84"},"returnParameters":{"id":24819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24818,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24825,"src":"6180:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24817,"name":"uint256","nodeType":"ElementaryTypeName","src":"6180:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6179:9:84"},"scope":25379,"src":"6129:105:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6275],"body":{"id":24835,"nodeType":"Block","src":"6299:44:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24831,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"6316:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"oracles","nodeType":"MemberAccess","referencedDeclaration":17700,"src":"6316:18:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6316:20:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24830,"id":24834,"nodeType":"Return","src":"6309:27:84"}]},"functionSelector":"2857373a","id":24836,"implemented":true,"kind":"function","modifiers":[],"name":"oracles","nameLocation":"6249:7:84","nodeType":"FunctionDefinition","overrides":{"id":24827,"nodeType":"OverrideSpecifier","overrides":[],"src":"6268:8:84"},"parameters":{"id":24826,"nodeType":"ParameterList","parameters":[],"src":"6256:2:84"},"returnParameters":{"id":24830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24836,"src":"6290:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24828,"name":"uint256","nodeType":"ElementaryTypeName","src":"6290:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6289:9:84"},"scope":25379,"src":"6240:103:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6280],"body":{"id":24846,"nodeType":"Block","src":"6410:46:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24842,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"6427:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"riskpools","nodeType":"MemberAccess","referencedDeclaration":17711,"src":"6427:20:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6427:22:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24841,"id":24845,"nodeType":"Return","src":"6420:29:84"}]},"functionSelector":"a054381f","id":24847,"implemented":true,"kind":"function","modifiers":[],"name":"riskpools","nameLocation":"6358:9:84","nodeType":"FunctionDefinition","overrides":{"id":24838,"nodeType":"OverrideSpecifier","overrides":[],"src":"6379:8:84"},"parameters":{"id":24837,"nodeType":"ParameterList","parameters":[],"src":"6367:2:84"},"returnParameters":{"id":24841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24847,"src":"6401:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24839,"name":"uint256","nodeType":"ElementaryTypeName","src":"6401:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6400:9:84"},"scope":25379,"src":"6349:107:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6287],"body":{"id":24860,"nodeType":"Block","src":"6564:67:84","statements":[{"expression":{"arguments":[{"id":24857,"name":"componentAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24849,"src":"6607:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24855,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"6581:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"6581:25:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":24858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6581:43:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24854,"id":24859,"nodeType":"Return","src":"6574:50:84"}]},"functionSelector":"2b1c7f73","id":24861,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentId","nameLocation":"6471:14:84","nodeType":"FunctionDefinition","overrides":{"id":24851,"nodeType":"OverrideSpecifier","overrides":[],"src":"6521:8:84"},"parameters":{"id":24850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24849,"mutability":"mutable","name":"componentAddress","nameLocation":"6494:16:84","nodeType":"VariableDeclaration","scope":24861,"src":"6486:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24848,"name":"address","nodeType":"ElementaryTypeName","src":"6486:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6485:26:84"},"returnParameters":{"id":24854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24853,"mutability":"mutable","name":"componentId","nameLocation":"6551:11:84","nodeType":"VariableDeclaration","scope":24861,"src":"6543:19:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24852,"name":"uint256","nodeType":"ElementaryTypeName","src":"6543:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6542:21:84"},"scope":25379,"src":"6462:169:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6303],"body":{"id":24875,"nodeType":"Block","src":"6785:64:84","statements":[{"expression":{"arguments":[{"id":24872,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24863,"src":"6830:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24870,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"6802:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"6802:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":24873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6802:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":24869,"id":24874,"nodeType":"Return","src":"6795:47:84"}]},"functionSelector":"dd51c86a","id":24876,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentType","nameLocation":"6646:16:84","nodeType":"FunctionDefinition","overrides":{"id":24865,"nodeType":"OverrideSpecifier","overrides":[],"src":"6701:8:84"},"parameters":{"id":24864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24863,"mutability":"mutable","name":"componentId","nameLocation":"6671:11:84","nodeType":"VariableDeclaration","scope":24876,"src":"6663:19:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24862,"name":"uint256","nodeType":"ElementaryTypeName","src":"6663:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6662:21:84"},"returnParameters":{"id":24869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24868,"mutability":"mutable","name":"componentType","nameLocation":"6766:13:84","nodeType":"VariableDeclaration","scope":24876,"src":"6741:38:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":24867,"nodeType":"UserDefinedTypeName","pathNode":{"id":24866,"name":"IComponent.ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"6741:24:84"},"referencedDeclaration":2891,"src":"6741:24:84","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"6740:40:84"},"scope":25379,"src":"6637:212:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6311],"body":{"id":24892,"nodeType":"Block","src":"7006:75:84","statements":[{"expression":{"id":24890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24885,"name":"componentState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24883,"src":"7016:14:84","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":24888,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24878,"src":"7062:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24886,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"7033:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"7033:28:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":24889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7033:41:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"7016:58:84","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"id":24891,"nodeType":"ExpressionStatement","src":"7016:58:84"}]},"functionSelector":"5e966e45","id":24893,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentState","nameLocation":"6864:17:84","nodeType":"FunctionDefinition","overrides":{"id":24880,"nodeType":"OverrideSpecifier","overrides":[],"src":"6921:8:84"},"parameters":{"id":24879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24878,"mutability":"mutable","name":"componentId","nameLocation":"6890:11:84","nodeType":"VariableDeclaration","scope":24893,"src":"6882:19:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24877,"name":"uint256","nodeType":"ElementaryTypeName","src":"6882:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6881:21:84"},"returnParameters":{"id":24884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24883,"mutability":"mutable","name":"componentState","nameLocation":"6986:14:84","nodeType":"VariableDeclaration","scope":24893,"src":"6960:40:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":24882,"nodeType":"UserDefinedTypeName","pathNode":{"id":24881,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"6960:25:84"},"referencedDeclaration":2899,"src":"6960:25:84","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"6959:42:84"},"scope":25379,"src":"6855:226:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6295],"body":{"id":24907,"nodeType":"Block","src":"7164:51:84","statements":[{"expression":{"arguments":[{"id":24904,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24895,"src":"7205:2:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24902,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"7181:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponent","nodeType":"MemberAccess","referencedDeclaration":17490,"src":"7181:23:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IComponent_$2988_$","typeString":"function (uint256) view external returns (contract IComponent)"}},"id":24905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7181:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"functionReturnParameters":24901,"id":24906,"nodeType":"Return","src":"7174:34:84"}]},"functionSelector":"4f27da18","id":24908,"implemented":true,"kind":"function","modifiers":[],"name":"getComponent","nameLocation":"7096:12:84","nodeType":"FunctionDefinition","overrides":{"id":24897,"nodeType":"OverrideSpecifier","overrides":[],"src":"7130:8:84"},"parameters":{"id":24896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24895,"mutability":"mutable","name":"id","nameLocation":"7117:2:84","nodeType":"VariableDeclaration","scope":24908,"src":"7109:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24894,"name":"uint256","nodeType":"ElementaryTypeName","src":"7109:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7108:12:84"},"returnParameters":{"id":24901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24900,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":24908,"src":"7152:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"},"typeName":{"id":24899,"nodeType":"UserDefinedTypeName","pathNode":{"id":24898,"name":"IComponent","nodeType":"IdentifierPath","referencedDeclaration":2988,"src":"7152:10:84"},"referencedDeclaration":2988,"src":"7152:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_IComponent_$2988","typeString":"contract IComponent"}},"visibility":"internal"}],"src":"7151:12:84"},"scope":25379,"src":"7087:128:84","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":24920,"nodeType":"Block","src":"7294:51:84","statements":[{"expression":{"arguments":[{"id":24917,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24910,"src":"7334:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24915,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"7311:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOracleId","nodeType":"MemberAccess","referencedDeclaration":17595,"src":"7311:22:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":24918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7311:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24914,"id":24919,"nodeType":"Return","src":"7304:34:84"}]},"functionSelector":"a5c0f5a1","id":24921,"implemented":true,"kind":"function","modifiers":[],"name":"getOracleId","nameLocation":"7230:11:84","nodeType":"FunctionDefinition","parameters":{"id":24911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24910,"mutability":"mutable","name":"idx","nameLocation":"7250:3:84","nodeType":"VariableDeclaration","scope":24921,"src":"7242:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24909,"name":"uint256","nodeType":"ElementaryTypeName","src":"7242:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7241:13:84"},"returnParameters":{"id":24914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24913,"mutability":"mutable","name":"oracleId","nameLocation":"7284:8:84","nodeType":"VariableDeclaration","scope":24921,"src":"7276:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24912,"name":"uint256","nodeType":"ElementaryTypeName","src":"7276:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7275:18:84"},"scope":25379,"src":"7221:124:84","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":24933,"nodeType":"Block","src":"7428:53:84","statements":[{"expression":{"arguments":[{"id":24930,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24923,"src":"7470:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24928,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"7445:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpoolId","nodeType":"MemberAccess","referencedDeclaration":17609,"src":"7445:24:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":24931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7445:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24927,"id":24932,"nodeType":"Return","src":"7438:36:84"}]},"functionSelector":"ff3f3883","id":24934,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolId","nameLocation":"7360:13:84","nodeType":"FunctionDefinition","parameters":{"id":24924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24923,"mutability":"mutable","name":"idx","nameLocation":"7382:3:84","nodeType":"VariableDeclaration","scope":24934,"src":"7374:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24922,"name":"uint256","nodeType":"ElementaryTypeName","src":"7374:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7373:13:84"},"returnParameters":{"id":24927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24926,"mutability":"mutable","name":"riskpoolId","nameLocation":"7416:10:84","nodeType":"VariableDeclaration","scope":24934,"src":"7408:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24925,"name":"uint256","nodeType":"ElementaryTypeName","src":"7408:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7407:20:84"},"scope":25379,"src":"7351:130:84","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":24946,"nodeType":"Block","src":"7562:52:84","statements":[{"expression":{"arguments":[{"id":24943,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24936,"src":"7603:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24941,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"7579:10:84","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":24942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProductId","nodeType":"MemberAccess","referencedDeclaration":17623,"src":"7579:23:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":24944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7579:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":24940,"id":24945,"nodeType":"Return","src":"7572:35:84"}]},"functionSelector":"9f77a605","id":24947,"implemented":true,"kind":"function","modifiers":[],"name":"getProductId","nameLocation":"7496:12:84","nodeType":"FunctionDefinition","parameters":{"id":24937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24936,"mutability":"mutable","name":"idx","nameLocation":"7517:3:84","nodeType":"VariableDeclaration","scope":24947,"src":"7509:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24935,"name":"uint256","nodeType":"ElementaryTypeName","src":"7509:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7508:13:84"},"returnParameters":{"id":24940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24939,"mutability":"mutable","name":"productId","nameLocation":"7551:9:84","nodeType":"VariableDeclaration","scope":24947,"src":"7543:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24938,"name":"uint256","nodeType":"ElementaryTypeName","src":"7543:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7542:19:84"},"scope":25379,"src":"7487:127:84","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[6318],"body":{"id":24959,"nodeType":"Block","src":"7772:61:84","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a49532d3030313a494d504c454d454e4154494f4e5f4d495353494e47","id":24956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7789:36:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f10dbd7637aa20fb8b54a4dbdfe5499f4b0287e8df0e24d98f28636def7ca3d","typeString":"literal_string \"ERROR:IS-001:IMPLEMENATION_MISSING\""},"value":"ERROR:IS-001:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f10dbd7637aa20fb8b54a4dbdfe5499f4b0287e8df0e24d98f28636def7ca3d","typeString":"literal_string \"ERROR:IS-001:IMPLEMENATION_MISSING\""}],"id":24955,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"7782:6:84","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":24957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7782:44:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24958,"nodeType":"ExpressionStatement","src":"7782:44:84"}]},"functionSelector":"ab9c6ee4","id":24960,"implemented":true,"kind":"function","modifiers":[],"name":"getStakingRequirements","nameLocation":"7655:22:84","nodeType":"FunctionDefinition","overrides":{"id":24951,"nodeType":"OverrideSpecifier","overrides":[],"src":"7708:8:84"},"parameters":{"id":24950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24949,"mutability":"mutable","name":"id","nameLocation":"7686:2:84","nodeType":"VariableDeclaration","scope":24960,"src":"7678:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24948,"name":"uint256","nodeType":"ElementaryTypeName","src":"7678:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7677:12:84"},"returnParameters":{"id":24954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24953,"mutability":"mutable","name":"data","nameLocation":"7761:4:84","nodeType":"VariableDeclaration","scope":24960,"src":"7748:17:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":24952,"name":"bytes","nodeType":"ElementaryTypeName","src":"7748:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7747:19:84"},"scope":25379,"src":"7646:187:84","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[6325],"body":{"id":24972,"nodeType":"Block","src":"7957:61:84","statements":[{"expression":{"arguments":[{"hexValue":"4552524f523a49532d3030323a494d504c454d454e4154494f4e5f4d495353494e47","id":24969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7974:36:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_3538b2b40dc1579a3c1803dfe60abab88e636a7c9369729bbd4ce7b793360801","typeString":"literal_string \"ERROR:IS-002:IMPLEMENATION_MISSING\""},"value":"ERROR:IS-002:IMPLEMENATION_MISSING"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3538b2b40dc1579a3c1803dfe60abab88e636a7c9369729bbd4ce7b793360801","typeString":"literal_string \"ERROR:IS-002:IMPLEMENATION_MISSING\""}],"id":24968,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[4294967277,4294967277],"referencedDeclaration":4294967277,"src":"7967:6:84","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":24970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7967:44:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24971,"nodeType":"ExpressionStatement","src":"7967:44:84"}]},"functionSelector":"3a42b053","id":24973,"implemented":true,"kind":"function","modifiers":[],"name":"getStakedAssets","nameLocation":"7848:15:84","nodeType":"FunctionDefinition","overrides":{"id":24964,"nodeType":"OverrideSpecifier","overrides":[],"src":"7893:8:84"},"parameters":{"id":24963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24962,"mutability":"mutable","name":"id","nameLocation":"7872:2:84","nodeType":"VariableDeclaration","scope":24973,"src":"7864:10:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24961,"name":"uint256","nodeType":"ElementaryTypeName","src":"7864:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7863:12:84"},"returnParameters":{"id":24967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24966,"mutability":"mutable","name":"data","nameLocation":"7946:4:84","nodeType":"VariableDeclaration","scope":24973,"src":"7933:17:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":24965,"name":"bytes","nodeType":"ElementaryTypeName","src":"7933:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7932:19:84"},"scope":25379,"src":"7839:179:84","stateMutability":"pure","virtual":false,"visibility":"external"},{"baseFunctions":[6420],"body":{"id":24985,"nodeType":"Block","src":"8122:58:84","statements":[{"expression":{"id":24983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24979,"name":"numberOfProcessIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24977,"src":"8132:18:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":24980,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8153:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":24981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processIds","nodeType":"MemberAccess","referencedDeclaration":19949,"src":"8153:18:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":24982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8153:20:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8132:41:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":24984,"nodeType":"ExpressionStatement","src":"8132:41:84"}]},"functionSelector":"a427056e","id":24986,"implemented":true,"kind":"function","modifiers":[],"name":"processIds","nameLocation":"8050:10:84","nodeType":"FunctionDefinition","overrides":{"id":24975,"nodeType":"OverrideSpecifier","overrides":[],"src":"8072:8:84"},"parameters":{"id":24974,"nodeType":"ParameterList","parameters":[],"src":"8060:2:84"},"returnParameters":{"id":24978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24977,"mutability":"mutable","name":"numberOfProcessIds","nameLocation":"8102:18:84","nodeType":"VariableDeclaration","scope":24986,"src":"8094:26:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24976,"name":"uint256","nodeType":"ElementaryTypeName","src":"8094:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8093:28:84"},"scope":25379,"src":"8041:139:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6428],"body":{"id":25002,"nodeType":"Block","src":"8287:54:84","statements":[{"expression":{"id":25000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":24995,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24993,"src":"8297:8:84","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":24998,"name":"bpKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24988,"src":"8328:5:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24996,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8308:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":24997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":19812,"src":"8308:19:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":24999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8308:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"src":"8297:37:84","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":25001,"nodeType":"ExpressionStatement","src":"8297:37:84"}]},"functionSelector":"a5961b4c","id":25003,"implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"8195:11:84","nodeType":"FunctionDefinition","overrides":{"id":24990,"nodeType":"OverrideSpecifier","overrides":[],"src":"8231:8:84"},"parameters":{"id":24989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24988,"mutability":"mutable","name":"bpKey","nameLocation":"8215:5:84","nodeType":"VariableDeclaration","scope":25003,"src":"8207:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24987,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8207:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8206:15:84"},"returnParameters":{"id":24994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24993,"mutability":"mutable","name":"metadata","nameLocation":"8277:8:84","nodeType":"VariableDeclaration","scope":25003,"src":"8253:32:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata"},"typeName":{"id":24992,"nodeType":"UserDefinedTypeName","pathNode":{"id":24991,"name":"IPolicy.Metadata","nodeType":"IdentifierPath","referencedDeclaration":5248,"src":"8253:16:84"},"referencedDeclaration":5248,"src":"8253:16:84","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_storage_ptr","typeString":"struct IPolicy.Metadata"}},"visibility":"internal"}],"src":"8252:34:84"},"scope":25379,"src":"8186:155:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6436],"body":{"id":25019,"nodeType":"Block","src":"8461:64:84","statements":[{"expression":{"id":25017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25012,"name":"application","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25010,"src":"8471:11:84","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25015,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25005,"src":"8508:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":25013,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8485:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getApplication","nodeType":"MemberAccess","referencedDeclaration":19835,"src":"8485:22:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Application memory)"}},"id":25016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8485:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"src":"8471:47:84","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":25018,"nodeType":"ExpressionStatement","src":"8471:47:84"}]},"functionSelector":"bc506f64","id":25020,"implemented":true,"kind":"function","modifiers":[],"name":"getApplication","nameLocation":"8356:14:84","nodeType":"FunctionDefinition","overrides":{"id":25007,"nodeType":"OverrideSpecifier","overrides":[],"src":"8399:8:84"},"parameters":{"id":25006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25005,"mutability":"mutable","name":"processId","nameLocation":"8379:9:84","nodeType":"VariableDeclaration","scope":25020,"src":"8371:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8371:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8370:19:84"},"returnParameters":{"id":25011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25010,"mutability":"mutable","name":"application","nameLocation":"8448:11:84","nodeType":"VariableDeclaration","scope":25020,"src":"8421:38:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":25009,"nodeType":"UserDefinedTypeName","pathNode":{"id":25008,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"8421:19:84"},"referencedDeclaration":5262,"src":"8421:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"8420:40:84"},"scope":25379,"src":"8347:178:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6444],"body":{"id":25036,"nodeType":"Block","src":"8630:54:84","statements":[{"expression":{"id":25034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25029,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25027,"src":"8640:6:84","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25032,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25022,"src":"8667:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":25030,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8649:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":19887,"src":"8649:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":25033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8649:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"src":"8640:37:84","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":25035,"nodeType":"ExpressionStatement","src":"8640:37:84"}]},"functionSelector":"a3f685f9","id":25037,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicy","nameLocation":"8540:9:84","nodeType":"FunctionDefinition","overrides":{"id":25024,"nodeType":"OverrideSpecifier","overrides":[],"src":"8578:8:84"},"parameters":{"id":25023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25022,"mutability":"mutable","name":"processId","nameLocation":"8558:9:84","nodeType":"VariableDeclaration","scope":25037,"src":"8550:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8550:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8549:19:84"},"returnParameters":{"id":25028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25027,"mutability":"mutable","name":"policy","nameLocation":"8622:6:84","nodeType":"VariableDeclaration","scope":25037,"src":"8600:28:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":25026,"nodeType":"UserDefinedTypeName","pathNode":{"id":25025,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"8600:14:84"},"referencedDeclaration":5282,"src":"8600:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"src":"8599:30:84"},"scope":25379,"src":"8531:153:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6451],"body":{"id":25052,"nodeType":"Block","src":"8784:70:84","statements":[{"expression":{"id":25050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25045,"name":"numberOfClaims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25043,"src":"8794:14:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25048,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25039,"src":"8837:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":25046,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8811:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getNumberOfClaims","nodeType":"MemberAccess","referencedDeclaration":19850,"src":"8811:25:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":25049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8811:36:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8794:53:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25051,"nodeType":"ExpressionStatement","src":"8794:53:84"}]},"functionSelector":"eff0f592","id":25053,"implemented":true,"kind":"function","modifiers":[],"name":"claims","nameLocation":"8703:6:84","nodeType":"FunctionDefinition","overrides":{"id":25041,"nodeType":"OverrideSpecifier","overrides":[],"src":"8738:8:84"},"parameters":{"id":25040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25039,"mutability":"mutable","name":"processId","nameLocation":"8718:9:84","nodeType":"VariableDeclaration","scope":25053,"src":"8710:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25038,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8710:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8709:19:84"},"returnParameters":{"id":25044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25043,"mutability":"mutable","name":"numberOfClaims","nameLocation":"8768:14:84","nodeType":"VariableDeclaration","scope":25053,"src":"8760:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25042,"name":"uint256","nodeType":"ElementaryTypeName","src":"8760:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8759:24:84"},"scope":25379,"src":"8694:160:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6458],"body":{"id":25068,"nodeType":"Block","src":"8956:72:84","statements":[{"expression":{"id":25066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25061,"name":"numberOfPayouts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25059,"src":"8966:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25064,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25055,"src":"9011:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":25062,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"8984:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getNumberOfPayouts","nodeType":"MemberAccess","referencedDeclaration":19864,"src":"8984:26:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":25065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8984:37:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8966:55:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25067,"nodeType":"ExpressionStatement","src":"8966:55:84"}]},"functionSelector":"aeddb905","id":25069,"implemented":true,"kind":"function","modifiers":[],"name":"payouts","nameLocation":"8873:7:84","nodeType":"FunctionDefinition","overrides":{"id":25057,"nodeType":"OverrideSpecifier","overrides":[],"src":"8909:8:84"},"parameters":{"id":25056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25055,"mutability":"mutable","name":"processId","nameLocation":"8889:9:84","nodeType":"VariableDeclaration","scope":25069,"src":"8881:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25054,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8881:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8880:19:84"},"returnParameters":{"id":25060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25059,"mutability":"mutable","name":"numberOfPayouts","nameLocation":"8939:15:84","nodeType":"VariableDeclaration","scope":25069,"src":"8931:23:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25058,"name":"uint256","nodeType":"ElementaryTypeName","src":"8931:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8930:25:84"},"scope":25379,"src":"8864:164:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6468],"body":{"id":25088,"nodeType":"Block","src":"9152:61:84","statements":[{"expression":{"id":25086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25080,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25078,"src":"9162:5:84","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25083,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25071,"src":"9187:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":25084,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25073,"src":"9198:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25081,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"9170:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getClaim","nodeType":"MemberAccess","referencedDeclaration":19914,"src":"9170:16:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Claim_$5296_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Claim memory)"}},"id":25085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9170:36:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"src":"9162:44:84","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"id":25087,"nodeType":"ExpressionStatement","src":"9162:44:84"}]},"functionSelector":"7f22c2d9","id":25089,"implemented":true,"kind":"function","modifiers":[],"name":"getClaim","nameLocation":"9047:8:84","nodeType":"FunctionDefinition","overrides":{"id":25075,"nodeType":"OverrideSpecifier","overrides":[],"src":"9101:8:84"},"parameters":{"id":25074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25071,"mutability":"mutable","name":"processId","nameLocation":"9064:9:84","nodeType":"VariableDeclaration","scope":25089,"src":"9056:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9056:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":25073,"mutability":"mutable","name":"claimId","nameLocation":"9083:7:84","nodeType":"VariableDeclaration","scope":25089,"src":"9075:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25072,"name":"uint256","nodeType":"ElementaryTypeName","src":"9075:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9055:36:84"},"returnParameters":{"id":25079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25078,"mutability":"mutable","name":"claim","nameLocation":"9145:5:84","nodeType":"VariableDeclaration","scope":25089,"src":"9124:26:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":25077,"nodeType":"UserDefinedTypeName","pathNode":{"id":25076,"name":"IPolicy.Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"9124:13:84"},"referencedDeclaration":5296,"src":"9124:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"src":"9123:28:84"},"scope":25379,"src":"9038:175:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6478],"body":{"id":25108,"nodeType":"Block","src":"9341:64:84","statements":[{"expression":{"id":25106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25100,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25098,"src":"9351:6:84","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25103,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25091,"src":"9378:9:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":25104,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25093,"src":"9389:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25101,"name":"_policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24460,"src":"9360:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_PolicyController_$19974","typeString":"contract PolicyController"}},"id":25102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPayout","nodeType":"MemberAccess","referencedDeclaration":19941,"src":"9360:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Payout_$5310_memory_ptr_$","typeString":"function (bytes32,uint256) view external returns (struct IPolicy.Payout memory)"}},"id":25105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9360:38:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"src":"9351:47:84","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout memory"}},"id":25107,"nodeType":"ExpressionStatement","src":"9351:47:84"}]},"functionSelector":"cef58f13","id":25109,"implemented":true,"kind":"function","modifiers":[],"name":"getPayout","nameLocation":"9232:9:84","nodeType":"FunctionDefinition","overrides":{"id":25095,"nodeType":"OverrideSpecifier","overrides":[],"src":"9288:8:84"},"parameters":{"id":25094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25091,"mutability":"mutable","name":"processId","nameLocation":"9250:9:84","nodeType":"VariableDeclaration","scope":25109,"src":"9242:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9242:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":25093,"mutability":"mutable","name":"payoutId","nameLocation":"9269:8:84","nodeType":"VariableDeclaration","scope":25109,"src":"9261:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25092,"name":"uint256","nodeType":"ElementaryTypeName","src":"9261:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9241:37:84"},"returnParameters":{"id":25099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25098,"mutability":"mutable","name":"payout","nameLocation":"9333:6:84","nodeType":"VariableDeclaration","scope":25109,"src":"9311:28:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_memory_ptr","typeString":"struct IPolicy.Payout"},"typeName":{"id":25097,"nodeType":"UserDefinedTypeName","pathNode":{"id":25096,"name":"IPolicy.Payout","nodeType":"IdentifierPath","referencedDeclaration":5310,"src":"9311:14:84"},"referencedDeclaration":5310,"src":"9311:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_Payout_$5310_storage_ptr","typeString":"struct IPolicy.Payout"}},"visibility":"internal"}],"src":"9310:30:84"},"scope":25379,"src":"9223:182:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6333],"body":{"id":25123,"nodeType":"Block","src":"9530:53:84","statements":[{"expression":{"arguments":[{"id":25120,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25111,"src":"9565:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25118,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"9547:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpool","nodeType":"MemberAccess","referencedDeclaration":21002,"src":"9547:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPool.Pool memory)"}},"id":25121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9547:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"functionReturnParameters":25117,"id":25122,"nodeType":"Return","src":"9540:36:84"}]},"functionSelector":"eb802114","id":25124,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpool","nameLocation":"9439:11:84","nodeType":"FunctionDefinition","overrides":{"id":25113,"nodeType":"OverrideSpecifier","overrides":[],"src":"9480:8:84"},"parameters":{"id":25112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25111,"mutability":"mutable","name":"riskpoolId","nameLocation":"9459:10:84","nodeType":"VariableDeclaration","scope":25124,"src":"9451:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25110,"name":"uint256","nodeType":"ElementaryTypeName","src":"9451:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9450:20:84"},"returnParameters":{"id":25117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25116,"mutability":"mutable","name":"riskPool","nameLocation":"9520:8:84","nodeType":"VariableDeclaration","scope":25124,"src":"9502:26:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":25115,"nodeType":"UserDefinedTypeName","pathNode":{"id":25114,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"9502:10:84"},"referencedDeclaration":5502,"src":"9502:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"src":"9501:28:84"},"scope":25379,"src":"9430:153:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6338],"body":{"id":25134,"nodeType":"Block","src":"9671:61:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25130,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"9688:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getFullCollateralizationLevel","nodeType":"MemberAccess","referencedDeclaration":21142,"src":"9688:35:84","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_uint256_$","typeString":"function () pure external returns (uint256)"}},"id":25132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9688:37:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25129,"id":25133,"nodeType":"Return","src":"9681:44:84"}]},"functionSelector":"f1d354d0","id":25135,"implemented":true,"kind":"function","modifiers":[],"name":"getFullCollateralizationLevel","nameLocation":"9598:29:84","nodeType":"FunctionDefinition","overrides":{"id":25126,"nodeType":"OverrideSpecifier","overrides":[],"src":"9639:8:84"},"parameters":{"id":25125,"nodeType":"ParameterList","parameters":[],"src":"9627:2:84"},"returnParameters":{"id":25129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25135,"src":"9662:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25127,"name":"uint256","nodeType":"ElementaryTypeName","src":"9662:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9661:9:84"},"scope":25379,"src":"9589:143:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6345],"body":{"id":25149,"nodeType":"Block","src":"9832:61:84","statements":[{"expression":{"expression":{"arguments":[{"id":25145,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25137,"src":"9867:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25143,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"9849:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpool","nodeType":"MemberAccess","referencedDeclaration":21002,"src":"9849:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPool.Pool memory)"}},"id":25146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9849:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":25147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"9849:37:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25142,"id":25148,"nodeType":"Return","src":"9842:44:84"}]},"functionSelector":"29560980","id":25150,"implemented":true,"kind":"function","modifiers":[],"name":"getCapital","nameLocation":"9747:10:84","nodeType":"FunctionDefinition","overrides":{"id":25139,"nodeType":"OverrideSpecifier","overrides":[],"src":"9787:8:84"},"parameters":{"id":25138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25137,"mutability":"mutable","name":"riskpoolId","nameLocation":"9766:10:84","nodeType":"VariableDeclaration","scope":25150,"src":"9758:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25136,"name":"uint256","nodeType":"ElementaryTypeName","src":"9758:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9757:20:84"},"returnParameters":{"id":25142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25141,"mutability":"mutable","name":"capitalAmount","nameLocation":"9817:13:84","nodeType":"VariableDeclaration","scope":25150,"src":"9809:21:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25140,"name":"uint256","nodeType":"ElementaryTypeName","src":"9809:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9808:23:84"},"scope":25379,"src":"9738:155:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6352],"body":{"id":25164,"nodeType":"Block","src":"10011:67:84","statements":[{"expression":{"expression":{"arguments":[{"id":25160,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25152,"src":"10046:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25158,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10028:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpool","nodeType":"MemberAccess","referencedDeclaration":21002,"src":"10028:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPool.Pool memory)"}},"id":25161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10028:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":25162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"10028:43:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25157,"id":25163,"nodeType":"Return","src":"10021:50:84"}]},"functionSelector":"3f5d9235","id":25165,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalValueLocked","nameLocation":"9908:19:84","nodeType":"FunctionDefinition","overrides":{"id":25154,"nodeType":"OverrideSpecifier","overrides":[],"src":"9957:8:84"},"parameters":{"id":25153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25152,"mutability":"mutable","name":"riskpoolId","nameLocation":"9936:10:84","nodeType":"VariableDeclaration","scope":25165,"src":"9928:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25151,"name":"uint256","nodeType":"ElementaryTypeName","src":"9928:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9927:20:84"},"returnParameters":{"id":25157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25156,"mutability":"mutable","name":"totalValueLockedAmount","nameLocation":"9987:22:84","nodeType":"VariableDeclaration","scope":25165,"src":"9979:30:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25155,"name":"uint256","nodeType":"ElementaryTypeName","src":"9979:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9978:32:84"},"scope":25379,"src":"9899:179:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6359],"body":{"id":25189,"nodeType":"Block","src":"10180:121:84","statements":[{"assignments":[25177],"declarations":[{"constant":false,"id":25177,"mutability":"mutable","name":"pool","nameLocation":"10208:4:84","nodeType":"VariableDeclaration","scope":25189,"src":"10190:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool"},"typeName":{"id":25176,"nodeType":"UserDefinedTypeName","pathNode":{"id":25175,"name":"IPool.Pool","nodeType":"IdentifierPath","referencedDeclaration":5502,"src":"10190:10:84"},"referencedDeclaration":5502,"src":"10190:10:84","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_storage_ptr","typeString":"struct IPool.Pool"}},"visibility":"internal"}],"id":25182,"initialValue":{"arguments":[{"id":25180,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25167,"src":"10233:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25178,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10215:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpool","nodeType":"MemberAccess","referencedDeclaration":21002,"src":"10215:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPool.Pool memory)"}},"id":25181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10215:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"10190:54:84"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25183,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25177,"src":"10261:4:84","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":25184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"capital","nodeType":"MemberAccess","referencedDeclaration":5493,"src":"10261:12:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":25185,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25177,"src":"10276:4:84","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":25186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockedCapital","nodeType":"MemberAccess","referencedDeclaration":5495,"src":"10276:18:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10261:33:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25172,"id":25188,"nodeType":"Return","src":"10254:40:84"}]},"functionSelector":"bcd5349f","id":25190,"implemented":true,"kind":"function","modifiers":[],"name":"getCapacity","nameLocation":"10093:11:84","nodeType":"FunctionDefinition","overrides":{"id":25169,"nodeType":"OverrideSpecifier","overrides":[],"src":"10134:8:84"},"parameters":{"id":25168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25167,"mutability":"mutable","name":"riskpoolId","nameLocation":"10113:10:84","nodeType":"VariableDeclaration","scope":25190,"src":"10105:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25166,"name":"uint256","nodeType":"ElementaryTypeName","src":"10105:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10104:20:84"},"returnParameters":{"id":25172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25171,"mutability":"mutable","name":"capacityAmount","nameLocation":"10164:14:84","nodeType":"VariableDeclaration","scope":25190,"src":"10156:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25170,"name":"uint256","nodeType":"ElementaryTypeName","src":"10156:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10155:24:84"},"scope":25379,"src":"10084:217:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6366],"body":{"id":25204,"nodeType":"Block","src":"10401:61:84","statements":[{"expression":{"expression":{"arguments":[{"id":25200,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25192,"src":"10436:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25198,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10418:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpool","nodeType":"MemberAccess","referencedDeclaration":21002,"src":"10418:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$5502_memory_ptr_$","typeString":"function (uint256) view external returns (struct IPool.Pool memory)"}},"id":25201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10418:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$5502_memory_ptr","typeString":"struct IPool.Pool memory"}},"id":25202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":5497,"src":"10418:37:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25197,"id":25203,"nodeType":"Return","src":"10411:44:84"}]},"functionSelector":"1e010439","id":25205,"implemented":true,"kind":"function","modifiers":[],"name":"getBalance","nameLocation":"10316:10:84","nodeType":"FunctionDefinition","overrides":{"id":25194,"nodeType":"OverrideSpecifier","overrides":[],"src":"10356:8:84"},"parameters":{"id":25193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25192,"mutability":"mutable","name":"riskpoolId","nameLocation":"10335:10:84","nodeType":"VariableDeclaration","scope":25205,"src":"10327:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25191,"name":"uint256","nodeType":"ElementaryTypeName","src":"10327:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10326:20:84"},"returnParameters":{"id":25197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25196,"mutability":"mutable","name":"balanceAmount","nameLocation":"10386:13:84","nodeType":"VariableDeclaration","scope":25205,"src":"10378:21:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25195,"name":"uint256","nodeType":"ElementaryTypeName","src":"10378:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10377:23:84"},"scope":25379,"src":"10307:155:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6373],"body":{"id":25218,"nodeType":"Block","src":"10573:55:84","statements":[{"expression":{"arguments":[{"id":25215,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25207,"src":"10610:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25213,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10590:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"activeBundles","nodeType":"MemberAccess","referencedDeclaration":21029,"src":"10590:19:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":25216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10590:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25212,"id":25217,"nodeType":"Return","src":"10583:38:84"}]},"functionSelector":"a4266a66","id":25219,"implemented":true,"kind":"function","modifiers":[],"name":"activeBundles","nameLocation":"10477:13:84","nodeType":"FunctionDefinition","overrides":{"id":25209,"nodeType":"OverrideSpecifier","overrides":[],"src":"10520:8:84"},"parameters":{"id":25208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25207,"mutability":"mutable","name":"riskpoolId","nameLocation":"10499:10:84","nodeType":"VariableDeclaration","scope":25219,"src":"10491:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25206,"name":"uint256","nodeType":"ElementaryTypeName","src":"10491:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10490:20:84"},"returnParameters":{"id":25212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25211,"mutability":"mutable","name":"numberOfActiveBundles","nameLocation":"10550:21:84","nodeType":"VariableDeclaration","scope":25219,"src":"10542:29:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25210,"name":"uint256","nodeType":"ElementaryTypeName","src":"10542:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10541:31:84"},"scope":25379,"src":"10468:160:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6382],"body":{"id":25235,"nodeType":"Block","src":"10749:70:84","statements":[{"expression":{"arguments":[{"id":25231,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25221,"src":"10790:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25232,"name":"bundleIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25223,"src":"10802:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25229,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10766:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getActiveBundleId","nodeType":"MemberAccess","referencedDeclaration":21059,"src":"10766:23:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256)"}},"id":25233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10766:46:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25228,"id":25234,"nodeType":"Return","src":"10759:53:84"}]},"functionSelector":"ec833b0c","id":25236,"implemented":true,"kind":"function","modifiers":[],"name":"getActiveBundleId","nameLocation":"10643:17:84","nodeType":"FunctionDefinition","overrides":{"id":25225,"nodeType":"OverrideSpecifier","overrides":[],"src":"10709:8:84"},"parameters":{"id":25224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25221,"mutability":"mutable","name":"riskpoolId","nameLocation":"10669:10:84","nodeType":"VariableDeclaration","scope":25236,"src":"10661:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25220,"name":"uint256","nodeType":"ElementaryTypeName","src":"10661:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25223,"mutability":"mutable","name":"bundleIdx","nameLocation":"10689:9:84","nodeType":"VariableDeclaration","scope":25236,"src":"10681:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25222,"name":"uint256","nodeType":"ElementaryTypeName","src":"10681:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10660:39:84"},"returnParameters":{"id":25228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25227,"mutability":"mutable","name":"bundleId","nameLocation":"10739:8:84","nodeType":"VariableDeclaration","scope":25236,"src":"10731:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25226,"name":"uint256","nodeType":"ElementaryTypeName","src":"10731:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10730:18:84"},"scope":25379,"src":"10634:185:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6389],"body":{"id":25249,"nodeType":"Block","src":"10954:73:84","statements":[{"expression":{"arguments":[{"id":25246,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25238,"src":"11009:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25244,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24463,"src":"10971:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMaximumNumberOfActiveBundles","nodeType":"MemberAccess","referencedDeclaration":20970,"src":"10971:37:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":25247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10971:49:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25243,"id":25248,"nodeType":"Return","src":"10964:56:84"}]},"functionSelector":"7db32844","id":25250,"implemented":true,"kind":"function","modifiers":[],"name":"getMaximumNumberOfActiveBundles","nameLocation":"10833:31:84","nodeType":"FunctionDefinition","overrides":{"id":25240,"nodeType":"OverrideSpecifier","overrides":[],"src":"10894:8:84"},"parameters":{"id":25239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25238,"mutability":"mutable","name":"riskpoolId","nameLocation":"10873:10:84","nodeType":"VariableDeclaration","scope":25250,"src":"10865:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25237,"name":"uint256","nodeType":"ElementaryTypeName","src":"10865:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10864:20:84"},"returnParameters":{"id":25243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25242,"mutability":"mutable","name":"maximumNumberOfActiveBundles","nameLocation":"10924:28:84","nodeType":"VariableDeclaration","scope":25250,"src":"10916:36:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25241,"name":"uint256","nodeType":"ElementaryTypeName","src":"10916:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10915:38:84"},"scope":25379,"src":"10824:203:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6395],"body":{"id":25270,"nodeType":"Block","src":"11127:104:84","statements":[{"assignments":[25259],"declarations":[{"constant":false,"id":25259,"mutability":"mutable","name":"bundleToken","nameLocation":"11149:11:84","nodeType":"VariableDeclaration","scope":25270,"src":"11137:23:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"},"typeName":{"id":25258,"nodeType":"UserDefinedTypeName","pathNode":{"id":25257,"name":"BundleToken","nodeType":"IdentifierPath","referencedDeclaration":28751,"src":"11137:11:84"},"referencedDeclaration":28751,"src":"11137:11:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"visibility":"internal"}],"id":25263,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25260,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"11163:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getToken","nodeType":"MemberAccess","referencedDeclaration":16751,"src":"11163:16:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_BundleToken_$28751_$","typeString":"function () view external returns (contract BundleToken)"}},"id":25262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11163:18:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}},"nodeType":"VariableDeclarationStatement","src":"11137:44:84"},{"expression":{"id":25268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25264,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25255,"src":"11191:5:84","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25266,"name":"bundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25259,"src":"11212:11:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BundleToken_$28751","typeString":"contract BundleToken"}],"id":25265,"name":"IBundleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6825,"src":"11199:12:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundleToken_$6825_$","typeString":"type(contract IBundleToken)"}},"id":25267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11199:25:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"src":"11191:33:84","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"id":25269,"nodeType":"ExpressionStatement","src":"11191:33:84"}]},"functionSelector":"eb35783c","id":25271,"implemented":true,"kind":"function","modifiers":[],"name":"getBundleToken","nameLocation":"11059:14:84","nodeType":"FunctionDefinition","overrides":{"id":25252,"nodeType":"OverrideSpecifier","overrides":[],"src":"11085:8:84"},"parameters":{"id":25251,"nodeType":"ParameterList","parameters":[],"src":"11073:2:84"},"returnParameters":{"id":25256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25255,"mutability":"mutable","name":"token","nameLocation":"11120:5:84","nodeType":"VariableDeclaration","scope":25271,"src":"11107:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"},"typeName":{"id":25254,"nodeType":"UserDefinedTypeName","pathNode":{"id":25253,"name":"IBundleToken","nodeType":"IdentifierPath","referencedDeclaration":6825,"src":"11107:12:84"},"referencedDeclaration":6825,"src":"11107:12:84","typeDescriptions":{"typeIdentifier":"t_contract$_IBundleToken_$6825","typeString":"contract IBundleToken"}},"visibility":"internal"}],"src":"11106:20:84"},"scope":25379,"src":"11050:181:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6408],"body":{"id":25287,"nodeType":"Block","src":"11340:53:84","statements":[{"expression":{"id":25285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25280,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25278,"src":"11350:6:84","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25283,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25273,"src":"11377:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25281,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"11359:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"11359:17:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":25284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11359:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"src":"11350:36:84","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25286,"nodeType":"ExpressionStatement","src":"11350:36:84"}]},"functionSelector":"2d0821b7","id":25288,"implemented":true,"kind":"function","modifiers":[],"name":"getBundle","nameLocation":"11250:9:84","nodeType":"FunctionDefinition","overrides":{"id":25275,"nodeType":"OverrideSpecifier","overrides":[],"src":"11287:8:84"},"parameters":{"id":25274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25273,"mutability":"mutable","name":"bundleId","nameLocation":"11268:8:84","nodeType":"VariableDeclaration","scope":25288,"src":"11260:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25272,"name":"uint256","nodeType":"ElementaryTypeName","src":"11260:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11259:18:84"},"returnParameters":{"id":25279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25278,"mutability":"mutable","name":"bundle","nameLocation":"11332:6:84","nodeType":"VariableDeclaration","scope":25288,"src":"11310:28:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":25277,"nodeType":"UserDefinedTypeName","pathNode":{"id":25276,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"11310:14:84"},"referencedDeclaration":4936,"src":"11310:14:84","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"src":"11309:30:84"},"scope":25379,"src":"11241:152:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6400],"body":{"id":25298,"nodeType":"Block","src":"11459:41:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25294,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"11476:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"bundles","nodeType":"MemberAccess","referencedDeclaration":16785,"src":"11476:15:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":25296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11476:17:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25293,"id":25297,"nodeType":"Return","src":"11469:24:84"}]},"functionSelector":"18442e63","id":25299,"implemented":true,"kind":"function","modifiers":[],"name":"bundles","nameLocation":"11408:7:84","nodeType":"FunctionDefinition","overrides":{"id":25290,"nodeType":"OverrideSpecifier","overrides":[],"src":"11427:8:84"},"parameters":{"id":25289,"nodeType":"ParameterList","parameters":[],"src":"11415:2:84"},"returnParameters":{"id":25293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25299,"src":"11450:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25291,"name":"uint256","nodeType":"ElementaryTypeName","src":"11450:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11449:9:84"},"scope":25379,"src":"11399:101:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6415],"body":{"id":25314,"nodeType":"Block","src":"11613:76:84","statements":[{"expression":{"id":25312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25307,"name":"numberOfUnburntBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25305,"src":"11623:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25310,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25301,"src":"11671:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25308,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24454,"src":"11648:7:84","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unburntBundles","nodeType":"MemberAccess","referencedDeclaration":16797,"src":"11648:22:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":25311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11648:34:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11623:59:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25313,"nodeType":"ExpressionStatement","src":"11623:59:84"}]},"functionSelector":"c559783e","id":25315,"implemented":true,"kind":"function","modifiers":[],"name":"unburntBundles","nameLocation":"11515:14:84","nodeType":"FunctionDefinition","overrides":{"id":25303,"nodeType":"OverrideSpecifier","overrides":[],"src":"11559:8:84"},"parameters":{"id":25302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25301,"mutability":"mutable","name":"riskpoolId","nameLocation":"11538:10:84","nodeType":"VariableDeclaration","scope":25315,"src":"11530:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25300,"name":"uint256","nodeType":"ElementaryTypeName","src":"11530:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11529:20:84"},"returnParameters":{"id":25306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25305,"mutability":"mutable","name":"numberOfUnburntBundles","nameLocation":"11589:22:84","nodeType":"VariableDeclaration","scope":25315,"src":"11581:30:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25304,"name":"uint256","nodeType":"ElementaryTypeName","src":"11581:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11580:32:84"},"scope":25379,"src":"11506:183:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6483],"body":{"id":25326,"nodeType":"Block","src":"11784:43:84","statements":[{"expression":{"arguments":[{"id":25323,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"11810:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}],"id":25322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11802:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25321,"name":"address","nodeType":"ElementaryTypeName","src":"11802:7:84","typeDescriptions":{}}},"id":25324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11802:18:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":25320,"id":25325,"nodeType":"Return","src":"11795:25:84"}]},"functionSelector":"e0024604","id":25327,"implemented":true,"kind":"function","modifiers":[],"name":"getTreasuryAddress","nameLocation":"11723:18:84","nodeType":"FunctionDefinition","overrides":{"id":25317,"nodeType":"OverrideSpecifier","overrides":[],"src":"11753:8:84"},"parameters":{"id":25316,"nodeType":"ParameterList","parameters":[],"src":"11741:2:84"},"returnParameters":{"id":25320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25327,"src":"11775:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25318,"name":"address","nodeType":"ElementaryTypeName","src":"11775:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11774:9:84"},"scope":25379,"src":"11714:113:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6488],"body":{"id":25337,"nodeType":"Block","src":"11902:54:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25333,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"11920:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getInstanceWallet","nodeType":"MemberAccess","referencedDeclaration":23481,"src":"11920:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":25335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11920:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":25332,"id":25336,"nodeType":"Return","src":"11913:36:84"}]},"functionSelector":"a44330c4","id":25338,"implemented":true,"kind":"function","modifiers":[],"name":"getInstanceWallet","nameLocation":"11842:17:84","nodeType":"FunctionDefinition","overrides":{"id":25329,"nodeType":"OverrideSpecifier","overrides":[],"src":"11871:8:84"},"parameters":{"id":25328,"nodeType":"ParameterList","parameters":[],"src":"11859:2:84"},"returnParameters":{"id":25332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25338,"src":"11893:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25330,"name":"address","nodeType":"ElementaryTypeName","src":"11893:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11892:9:84"},"scope":25379,"src":"11833:123:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6495],"body":{"id":25351,"nodeType":"Block","src":"12049:64:84","statements":[{"expression":{"arguments":[{"id":25348,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25340,"src":"12095:10:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25346,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"12067:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRiskpoolWallet","nodeType":"MemberAccess","referencedDeclaration":23494,"src":"12067:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":25349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12067:39:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":25345,"id":25350,"nodeType":"Return","src":"12060:46:84"}]},"functionSelector":"49081637","id":25352,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolWallet","nameLocation":"11971:17:84","nodeType":"FunctionDefinition","overrides":{"id":25342,"nodeType":"OverrideSpecifier","overrides":[],"src":"12018:8:84"},"parameters":{"id":25341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25340,"mutability":"mutable","name":"riskpoolId","nameLocation":"11997:10:84","nodeType":"VariableDeclaration","scope":25352,"src":"11989:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25339,"name":"uint256","nodeType":"ElementaryTypeName","src":"11989:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11988:20:84"},"returnParameters":{"id":25345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25352,"src":"12040:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25343,"name":"address","nodeType":"ElementaryTypeName","src":"12040:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12039:9:84"},"scope":25379,"src":"11962:151:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6503],"body":{"id":25366,"nodeType":"Block","src":"12206:65:84","statements":[{"expression":{"arguments":[{"id":25363,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25354,"src":"12252:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25361,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"12224:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentToken","nodeType":"MemberAccess","referencedDeclaration":23449,"src":"12224:27:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_contract$_IERC20_$8831_$","typeString":"function (uint256) view external returns (contract IERC20)"}},"id":25364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12224:40:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"functionReturnParameters":25360,"id":25365,"nodeType":"Return","src":"12217:47:84"}]},"functionSelector":"038696bb","id":25367,"implemented":true,"kind":"function","modifiers":[],"name":"getComponentToken","nameLocation":"12128:17:84","nodeType":"FunctionDefinition","overrides":{"id":25356,"nodeType":"OverrideSpecifier","overrides":[],"src":"12176:8:84"},"parameters":{"id":25355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25354,"mutability":"mutable","name":"componentId","nameLocation":"12154:11:84","nodeType":"VariableDeclaration","scope":25367,"src":"12146:19:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25353,"name":"uint256","nodeType":"ElementaryTypeName","src":"12146:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12145:21:84"},"returnParameters":{"id":25360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25367,"src":"12198:6:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":25358,"nodeType":"UserDefinedTypeName","pathNode":{"id":25357,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"12198:6:84"},"referencedDeclaration":8831,"src":"12198:6:84","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"12197:8:84"},"scope":25379,"src":"12119:152:84","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6508],"body":{"id":25377,"nodeType":"Block","src":"12351:55:84","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":25373,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24466,"src":"12368:9:84","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getFractionFullUnit","nodeType":"MemberAccess","referencedDeclaration":23472,"src":"12368:29:84","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_uint256_$","typeString":"function () pure external returns (uint256)"}},"id":25375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12368:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":25372,"id":25376,"nodeType":"Return","src":"12361:38:84"}]},"functionSelector":"6319112b","id":25378,"implemented":true,"kind":"function","modifiers":[],"name":"getFeeFractionFullUnit","nameLocation":"12286:22:84","nodeType":"FunctionDefinition","overrides":{"id":25369,"nodeType":"OverrideSpecifier","overrides":[],"src":"12320:8:84"},"parameters":{"id":25368,"nodeType":"ParameterList","parameters":[],"src":"12308:2:84"},"returnParameters":{"id":25372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25371,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25378,"src":"12342:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25370,"name":"uint256","nodeType":"ElementaryTypeName","src":"12342:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12341:9:84"},"scope":25379,"src":"12277:129:84","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":25380,"src":"1407:11001:84"}],"src":"39:12370:84"},"id":84},"contracts/services/OracleService.sol":{"ast":{"absolutePath":"contracts/services/OracleService.sol","exportedSymbols":{"Address":[10496],"Context":[10518],"CoreController":[26413],"IAccess":[4836],"IOracleService":[6519],"IQuery":[5616],"IRegistry":[5714],"Initializable":[8059],"OracleService":[25425]},"id":25426,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":25381,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:85"},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":25382,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25426,"sourceUnit":26414,"src":"63:38:85","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IQuery.sol","file":"@etherisc/gif-interface/contracts/modules/IQuery.sol","id":25383,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25426,"sourceUnit":5617,"src":"103:62:85","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IOracleService.sol","file":"@etherisc/gif-interface/contracts/services/IOracleService.sol","id":25384,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25426,"sourceUnit":6520,"src":"166:71:85","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":25385,"name":"IOracleService","nodeType":"IdentifierPath","referencedDeclaration":6519,"src":"271:14:85"},"id":25386,"nodeType":"InheritanceSpecifier","src":"271:14:85"},{"baseName":{"id":25387,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"292:14:85"},"id":25388,"nodeType":"InheritanceSpecifier","src":"292:14:85"}],"contractDependencies":[6519,8059,10518,26413],"contractKind":"contract","fullyImplemented":true,"id":25425,"linearizedBaseContracts":[25425,26413,8059,10518,6519],"name":"OracleService","nameLocation":"249:13:85","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":25391,"mutability":"mutable","name":"_query","nameLocation":"328:6:85","nodeType":"VariableDeclaration","scope":25425,"src":"313:21:85","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"},"typeName":{"id":25390,"nodeType":"UserDefinedTypeName","pathNode":{"id":25389,"name":"IQuery","nodeType":"IdentifierPath","referencedDeclaration":5616,"src":"313:6:85"},"referencedDeclaration":5616,"src":"313:6:85","typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"}},"visibility":"private"},{"baseFunctions":[26387],"body":{"id":25405,"nodeType":"Block","src":"404:62:85","statements":[{"expression":{"id":25403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25397,"name":"_query","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25391,"src":"414:6:85","typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"5175657279","id":25400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"450:7:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""}],"id":25399,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"430:19:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":25401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"430:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25398,"name":"IQuery","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5616,"src":"423:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IQuery_$5616_$","typeString":"type(contract IQuery)"}},"id":25402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"423:36:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"}},"src":"414:45:85","typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"}},"id":25404,"nodeType":"ExpressionStatement","src":"414:45:85"}]},"id":25406,"implemented":true,"kind":"function","modifiers":[{"id":25395,"modifierName":{"id":25394,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"387:16:85"},"nodeType":"ModifierInvocation","src":"387:16:85"}],"name":"_afterInitialize","nameLocation":"350:16:85","nodeType":"FunctionDefinition","overrides":{"id":25393,"nodeType":"OverrideSpecifier","overrides":[],"src":"378:8:85"},"parameters":{"id":25392,"nodeType":"ParameterList","parameters":[],"src":"366:2:85"},"returnParameters":{"id":25396,"nodeType":"ParameterList","parameters":[],"src":"404:0:85"},"scope":25425,"src":"341:125:85","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[6518],"body":{"id":25423,"nodeType":"Block","src":"549:136:85","statements":[{"expression":{"arguments":[{"id":25417,"name":"_requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25408,"src":"646:10:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[],"expression":{"argumentTypes":[],"id":25418,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"658:10:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"658:12:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25420,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25410,"src":"672:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":25414,"name":"_query","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25391,"src":"631:6:85","typeDescriptions":{"typeIdentifier":"t_contract$_IQuery_$5616","typeString":"contract IQuery"}},"id":25416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"respond","nodeType":"MemberAccess","referencedDeclaration":5610,"src":"631:14:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,address,bytes memory) external"}},"id":25421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"631:47:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25422,"nodeType":"ExpressionStatement","src":"631:47:85"}]},"functionSelector":"e409534a","id":25424,"implemented":true,"kind":"function","modifiers":[],"name":"respond","nameLocation":"481:7:85","nodeType":"FunctionDefinition","overrides":{"id":25412,"nodeType":"OverrideSpecifier","overrides":[],"src":"540:8:85"},"parameters":{"id":25411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25408,"mutability":"mutable","name":"_requestId","nameLocation":"497:10:85","nodeType":"VariableDeclaration","scope":25424,"src":"489:18:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25407,"name":"uint256","nodeType":"ElementaryTypeName","src":"489:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25410,"mutability":"mutable","name":"_data","nameLocation":"524:5:85","nodeType":"VariableDeclaration","scope":25424,"src":"509:20:85","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":25409,"name":"bytes","nodeType":"ElementaryTypeName","src":"509:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"488:42:85"},"returnParameters":{"id":25413,"nodeType":"ParameterList","parameters":[],"src":"549:0:85"},"scope":25425,"src":"472:213:85","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":25426,"src":"240:447:85"}],"src":"39:649:85"},"id":85},"contracts/services/ProductService.sol":{"ast":{"absolutePath":"contracts/services/ProductService.sol","exportedSymbols":{"Context":[10518],"ILicense":[5087],"IRegistry":[5714],"ProductService":[25503],"WithRegistry":[26779]},"id":25504,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":25427,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:86"},{"absolutePath":"contracts/shared/WithRegistry.sol","file":"../shared/WithRegistry.sol","id":25428,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25504,"sourceUnit":26780,"src":"63:36:86","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/ILicense.sol","file":"@etherisc/gif-interface/contracts/modules/ILicense.sol","id":25429,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25504,"sourceUnit":5088,"src":"142:64:86","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"@openzeppelin/contracts/utils/Context.sol","id":25430,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":25504,"sourceUnit":10519,"src":"208:51:86","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":25431,"name":"WithRegistry","nodeType":"IdentifierPath","referencedDeclaration":26779,"src":"292:12:86"},"id":25432,"nodeType":"InheritanceSpecifier","src":"292:12:86"},{"baseName":{"id":25433,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"332:7:86"},"id":25434,"nodeType":"InheritanceSpecifier","src":"332:7:86"}],"contractDependencies":[10518,26779],"contractKind":"contract","fullyImplemented":true,"id":25503,"linearizedBaseContracts":[25503,10518,26779],"name":"ProductService","nameLocation":"270:14:86","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":25437,"mutability":"constant","name":"NAME","nameLocation":"371:4:86","nodeType":"VariableDeclaration","scope":25503,"src":"347:47:86","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"347:7:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"50726f6475637453657276696365","id":25436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"378:16:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""},"value":"ProductService"},"visibility":"public"},{"body":{"id":25445,"nodeType":"Block","src":"505:2:86","statements":[]},"id":25446,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":25442,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25439,"src":"494:9:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":25443,"modifierName":{"id":25441,"name":"WithRegistry","nodeType":"IdentifierPath","referencedDeclaration":26779,"src":"481:12:86"},"nodeType":"ModifierInvocation","src":"481:23:86"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":25440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25439,"mutability":"mutable","name":"_registry","nameLocation":"470:9:86","nodeType":"VariableDeclaration","scope":25446,"src":"462:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25438,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"461:19:86"},"returnParameters":{"id":25444,"nodeType":"ParameterList","parameters":[],"src":"505:0:86"},"scope":25503,"src":"450:57:86","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":25479,"nodeType":"Block","src":"533:368:86","statements":[{"assignments":[null,25450,25452],"declarations":[null,{"constant":false,"id":25450,"mutability":"mutable","name":"isAuthorized","nameLocation":"631:12:86","nodeType":"VariableDeclaration","scope":25479,"src":"626:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25449,"name":"bool","nodeType":"ElementaryTypeName","src":"626:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25452,"mutability":"mutable","name":"policyFlow","nameLocation":"653:10:86","nodeType":"VariableDeclaration","scope":25479,"src":"645:18:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25451,"name":"address","nodeType":"ElementaryTypeName","src":"645:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":25459,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25456,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"701:10:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"701:12:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":25453,"name":"_license","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25502,"src":"667:8:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_ILicense_$5087_$","typeString":"function () view returns (contract ILicense)"}},"id":25454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"667:10:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILicense_$5087","typeString":"contract ILicense"}},"id":25455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAuthorizationStatus","nodeType":"MemberAccess","referencedDeclaration":5086,"src":"667:33:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$_t_bool_$_t_address_$","typeString":"function (address) view external returns (uint256,bool,address)"}},"id":25458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"667:47:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$_t_address_$","typeString":"tuple(uint256,bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"624:90:86"},{"expression":{"arguments":[{"id":25461,"name":"isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25450,"src":"733:12:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5052532d3030313a4e4f545f415554484f52495a4544","id":25462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"747:30:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ea29d619e783380245e9479bc50992b7e9e66d498084c15d9aeb14649a09dc3","typeString":"literal_string \"ERROR:PRS-001:NOT_AUTHORIZED\""},"value":"ERROR:PRS-001:NOT_AUTHORIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2ea29d619e783380245e9479bc50992b7e9e66d498084c15d9aeb14649a09dc3","typeString":"literal_string \"ERROR:PRS-001:NOT_AUTHORIZED\""}],"id":25460,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"725:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"725:53:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25464,"nodeType":"ExpressionStatement","src":"725:53:86"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":25471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25466,"name":"policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25452,"src":"796:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":25469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"818:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":25468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"810:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":25467,"name":"address","nodeType":"ElementaryTypeName","src":"810:7:86","typeDescriptions":{}}},"id":25470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"810:10:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"796:24:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5052532d3030323a504f4c4943595f464c4f575f4e4f545f5245534f4c564544","id":25472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"821:40:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_3481a442355178eff70c53b479d1406dd857fddda3e91ffea746909cf740d5cd","typeString":"literal_string \"ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED\""},"value":"ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3481a442355178eff70c53b479d1406dd857fddda3e91ffea746909cf740d5cd","typeString":"literal_string \"ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED\""}],"id":25465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"788:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"788:74:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25474,"nodeType":"ExpressionStatement","src":"788:74:86"},{"expression":{"arguments":[{"id":25476,"name":"policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25452,"src":"883:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25475,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25488,"src":"873:9:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":25477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"873:21:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25478,"nodeType":"ExpressionStatement","src":"873:21:86"}]},"id":25480,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":25447,"nodeType":"ParameterList","parameters":[],"src":"521:2:86"},"returnParameters":{"id":25448,"nodeType":"ParameterList","parameters":[],"src":"533:0:86"},"scope":25503,"src":"513:388:86","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":25487,"nodeType":"Block","src":"1314:835:86","statements":[{"AST":{"nodeType":"YulBlock","src":"1333:810:86","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1586:1:86","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1589:1:86","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1592:12:86"},"nodeType":"YulFunctionCall","src":"1592:14:86"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1573:12:86"},"nodeType":"YulFunctionCall","src":"1573:34:86"},"nodeType":"YulExpressionStatement","src":"1573:34:86"},{"nodeType":"YulVariableDeclaration","src":"1734:74:86","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"1761:3:86"},"nodeType":"YulFunctionCall","src":"1761:5:86"},{"name":"implementation","nodeType":"YulIdentifier","src":"1768:14:86"},{"kind":"number","nodeType":"YulLiteral","src":"1784:1:86","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1787:12:86"},"nodeType":"YulFunctionCall","src":"1787:14:86"},{"kind":"number","nodeType":"YulLiteral","src":"1803:1:86","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1806:1:86","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"1748:12:86"},"nodeType":"YulFunctionCall","src":"1748:60:86"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"1738:6:86","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1876:1:86","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1879:1:86","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1882:14:86"},"nodeType":"YulFunctionCall","src":"1882:16:86"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"1861:14:86"},"nodeType":"YulFunctionCall","src":"1861:38:86"},"nodeType":"YulExpressionStatement","src":"1861:38:86"},{"cases":[{"body":{"nodeType":"YulBlock","src":"1994:59:86","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2019:1:86","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2022:14:86"},"nodeType":"YulFunctionCall","src":"2022:16:86"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2012:6:86"},"nodeType":"YulFunctionCall","src":"2012:27:86"},"nodeType":"YulExpressionStatement","src":"2012:27:86"}]},"nodeType":"YulCase","src":"1987:66:86","value":{"kind":"number","nodeType":"YulLiteral","src":"1992:1:86","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"2074:59:86","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2099:1:86","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"2102:14:86"},"nodeType":"YulFunctionCall","src":"2102:16:86"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"2092:6:86"},"nodeType":"YulFunctionCall","src":"2092:27:86"},"nodeType":"YulExpressionStatement","src":"2092:27:86"}]},"nodeType":"YulCase","src":"2066:67:86","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"1920:6:86"},"nodeType":"YulSwitch","src":"1913:220:86"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":25483,"isOffset":false,"isSlot":false,"src":"1768:14:86","valueSize":1}],"id":25486,"nodeType":"InlineAssembly","src":"1324:819:86"}]},"documentation":{"id":25481,"nodeType":"StructuredDocumentation","src":"908:349:86","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller.\n This function is a 1:1 copy of _delegate from\n https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.6/contracts/proxy/Proxy.sol"},"id":25488,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"1271:9:86","nodeType":"FunctionDefinition","parameters":{"id":25484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25483,"mutability":"mutable","name":"implementation","nameLocation":"1289:14:86","nodeType":"VariableDeclaration","scope":25488,"src":"1281:22:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25482,"name":"address","nodeType":"ElementaryTypeName","src":"1281:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1280:24:86"},"returnParameters":{"id":25485,"nodeType":"ParameterList","parameters":[],"src":"1314:0:86"},"scope":25503,"src":"1262:887:86","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":25501,"nodeType":"Block","src":"2208:65:86","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"4c6963656e7365","id":25497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2255:9:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b9d03c09d4e108ca3b630bc72507e91ae7da8eb1de63663acbce1d12cfbfb3a","typeString":"literal_string \"License\""},"value":"License"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b9d03c09d4e108ca3b630bc72507e91ae7da8eb1de63663acbce1d12cfbfb3a","typeString":"literal_string \"License\""}],"expression":{"id":25495,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26665,"src":"2234:8:86","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":25496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContract","nodeType":"MemberAccess","referencedDeclaration":5687,"src":"2234:20:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":25498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2234:31:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25494,"name":"ILicense","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5087,"src":"2225:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILicense_$5087_$","typeString":"type(contract ILicense)"}},"id":25499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2225:41:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ILicense_$5087","typeString":"contract ILicense"}},"functionReturnParameters":25493,"id":25500,"nodeType":"Return","src":"2218:48:86"}]},"id":25502,"implemented":true,"kind":"function","modifiers":[],"name":"_license","nameLocation":"2164:8:86","nodeType":"FunctionDefinition","parameters":{"id":25489,"nodeType":"ParameterList","parameters":[],"src":"2172:2:86"},"returnParameters":{"id":25493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25492,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":25502,"src":"2198:8:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ILicense_$5087","typeString":"contract ILicense"},"typeName":{"id":25491,"nodeType":"UserDefinedTypeName","pathNode":{"id":25490,"name":"ILicense","nodeType":"IdentifierPath","referencedDeclaration":5087,"src":"2198:8:86"},"referencedDeclaration":5087,"src":"2198:8:86","typeDescriptions":{"typeIdentifier":"t_contract$_ILicense_$5087","typeString":"contract ILicense"}},"visibility":"internal"}],"src":"2197:10:86"},"scope":25503,"src":"2155:118:86","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":25504,"src":"261:2015:86"}],"src":"39:2238:86"},"id":86},"contracts/services/RiskpoolService.sol":{"ast":{"absolutePath":"contracts/services/RiskpoolService.sol","exportedSymbols":{"Address":[10496],"BundleController":[16946],"BundleToken":[28751],"ComponentController":[17947],"Context":[10518],"CoreController":[26413],"ERC165":[10828],"ERC721":[10040],"EnumerableSet":[11439],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"IOracle":[3022],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Initializable":[8059],"Ownable":[7481],"Pausable":[8167],"PolicyController":[19974],"PoolController":[21207],"RiskpoolService":[26277],"Strings":[10804],"TransferHelper":[26659],"TreasuryModule":[23615]},"id":26278,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":25505,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:87"},{"absolutePath":"contracts/modules/BundleController.sol","file":"../modules/BundleController.sol","id":25506,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":16947,"src":"63:41:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/ComponentController.sol","file":"../modules/ComponentController.sol","id":25507,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":17948,"src":"105:44:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/modules/TreasuryModule.sol","file":"../modules/TreasuryModule.sol","id":25508,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":23616,"src":"150:39:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/shared/CoreController.sol","file":"../shared/CoreController.sol","id":25509,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":26414,"src":"190:38:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":25510,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":2989,"src":"230:69:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"@etherisc/gif-interface/contracts/modules/IBundle.sol","id":25511,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":5021,"src":"300:63:87","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","file":"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol","id":25512,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26278,"sourceUnit":6771,"src":"364:73:87","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":25513,"name":"IRiskpoolService","nodeType":"IdentifierPath","referencedDeclaration":6770,"src":"471:16:87"},"id":25514,"nodeType":"InheritanceSpecifier","src":"471:16:87"},{"baseName":{"id":25515,"name":"CoreController","nodeType":"IdentifierPath","referencedDeclaration":26413,"src":"494:14:87"},"id":25516,"nodeType":"InheritanceSpecifier","src":"494:14:87"}],"contractDependencies":[6770,8059,10518,26413],"contractKind":"contract","fullyImplemented":true,"id":26277,"linearizedBaseContracts":[26277,26413,8059,10518,6770],"name":"RiskpoolService","nameLocation":"448:15:87","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"04f5f96e","id":25519,"mutability":"constant","name":"RISKPOOL_NAME","nameLocation":"539:13:87","nodeType":"VariableDeclaration","scope":26277,"src":"515:50:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":25517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"515:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"5269736b706f6f6c","id":25518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"555:10:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_379f7b8ce4ca8a02cca13e3a2339578b352fc7be5bfc0cbb47a1b3d0e1633665","typeString":"literal_string \"Riskpool\""},"value":"Riskpool"},"visibility":"public"},{"constant":false,"id":25522,"mutability":"mutable","name":"_component","nameLocation":"600:10:87","nodeType":"VariableDeclaration","scope":26277,"src":"572:38:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"},"typeName":{"id":25521,"nodeType":"UserDefinedTypeName","pathNode":{"id":25520,"name":"ComponentController","nodeType":"IdentifierPath","referencedDeclaration":17947,"src":"572:19:87"},"referencedDeclaration":17947,"src":"572:19:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"visibility":"private"},{"constant":false,"id":25525,"mutability":"mutable","name":"_bundle","nameLocation":"641:7:87","nodeType":"VariableDeclaration","scope":26277,"src":"616:32:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"},"typeName":{"id":25524,"nodeType":"UserDefinedTypeName","pathNode":{"id":25523,"name":"BundleController","nodeType":"IdentifierPath","referencedDeclaration":16946,"src":"616:16:87"},"referencedDeclaration":16946,"src":"616:16:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"visibility":"private"},{"constant":false,"id":25528,"mutability":"mutable","name":"_pool","nameLocation":"677:5:87","nodeType":"VariableDeclaration","scope":26277,"src":"654:28:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"},"typeName":{"id":25527,"nodeType":"UserDefinedTypeName","pathNode":{"id":25526,"name":"PoolController","nodeType":"IdentifierPath","referencedDeclaration":21207,"src":"654:14:87"},"referencedDeclaration":21207,"src":"654:14:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"visibility":"private"},{"constant":false,"id":25531,"mutability":"mutable","name":"_treasury","nameLocation":"711:9:87","nodeType":"VariableDeclaration","scope":26277,"src":"688:32:87","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"},"typeName":{"id":25530,"nodeType":"UserDefinedTypeName","pathNode":{"id":25529,"name":"TreasuryModule","nodeType":"IdentifierPath","referencedDeclaration":23615,"src":"688:14:87"},"referencedDeclaration":23615,"src":"688:14:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"visibility":"private"},{"body":{"id":25566,"nodeType":"Block","src":"759:427:87","statements":[{"assignments":[25534],"declarations":[{"constant":false,"id":25534,"mutability":"mutable","name":"componentId","nameLocation":"777:11:87","nodeType":"VariableDeclaration","scope":25566,"src":"769:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25533,"name":"uint256","nodeType":"ElementaryTypeName","src":"769:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25540,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25537,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"817:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"817:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25535,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"791:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"791:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"791:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"769:61:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":25549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25544,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25534,"src":"889:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25542,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"861:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"861:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":25545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"861:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25546,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"905:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"905:24:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":25548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"905:33:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"861:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030313a53454e4445525f4e4f545f5249534b504f4f4c","id":25550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"952:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae48b1a9c680c35d2a9f667f2fed37c9f73ddafd56231c776d44d9e8be57b7c6","typeString":"literal_string \"ERROR:RPS-001:SENDER_NOT_RISKPOOL\""},"value":"ERROR:RPS-001:SENDER_NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae48b1a9c680c35d2a9f667f2fed37c9f73ddafd56231c776d44d9e8be57b7c6","typeString":"literal_string \"ERROR:RPS-001:SENDER_NOT_RISKPOOL\""}],"id":25541,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"840:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"840:157:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25552,"nodeType":"ExpressionStatement","src":"840:157:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":25561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25556,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25534,"src":"1057:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25554,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1028:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"1028:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":25557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1028:41:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25558,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"1073:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"1073:25:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":25560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Proposed","nodeType":"MemberAccess","referencedDeclaration":2893,"src":"1073:34:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"1028:79:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030323a5249534b504f4f4c5f4e4f545f50524f504f534544","id":25562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1121:37:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c96a51f00cf9612773d15d17720eae05a0f2c52cc3d14d5ed17e37cdf11d67e","typeString":"literal_string \"ERROR:RPS-002:RISKPOOL_NOT_PROPOSED\""},"value":"ERROR:RPS-002:RISKPOOL_NOT_PROPOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c96a51f00cf9612773d15d17720eae05a0f2c52cc3d14d5ed17e37cdf11d67e","typeString":"literal_string \"ERROR:RPS-002:RISKPOOL_NOT_PROPOSED\""}],"id":25553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1007:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1007:161:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25564,"nodeType":"ExpressionStatement","src":"1007:161:87"},{"id":25565,"nodeType":"PlaceholderStatement","src":"1178:1:87"}]},"id":25567,"name":"onlyProposedRiskpool","nameLocation":"736:20:87","nodeType":"ModifierDefinition","parameters":{"id":25532,"nodeType":"ParameterList","parameters":[],"src":"756:2:87"},"src":"727:459:87","virtual":false,"visibility":"internal"},{"body":{"id":25602,"nodeType":"Block","src":"1222:423:87","statements":[{"assignments":[25570],"declarations":[{"constant":false,"id":25570,"mutability":"mutable","name":"componentId","nameLocation":"1240:11:87","nodeType":"VariableDeclaration","scope":25602,"src":"1232:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25569,"name":"uint256","nodeType":"ElementaryTypeName","src":"1232:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25576,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25573,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1280:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1280:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25571,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1254:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"1254:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1254:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1232:61:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":25585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25580,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25570,"src":"1352:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25578,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1324:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"1324:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":25581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1324:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25582,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"1368:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"1368:24:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":25584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"1368:33:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"1324:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030333a53454e4445525f4e4f545f5249534b504f4f4c","id":25586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1415:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0cf53bcac0823b95001502ace6e4a3ba31149781e27fb2df5d3fca0a348d9e0","typeString":"literal_string \"ERROR:RPS-003:SENDER_NOT_RISKPOOL\""},"value":"ERROR:RPS-003:SENDER_NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d0cf53bcac0823b95001502ace6e4a3ba31149781e27fb2df5d3fca0a348d9e0","typeString":"literal_string \"ERROR:RPS-003:SENDER_NOT_RISKPOOL\""}],"id":25577,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1303:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1303:157:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25588,"nodeType":"ExpressionStatement","src":"1303:157:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":25597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25592,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25570,"src":"1520:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25590,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1491:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"1491:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":25593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1491:41:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25594,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"1536:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"1536:25:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":25596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"1536:32:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"1491:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030343a5249534b504f4f4c5f4e4f545f414354495645","id":25598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1582:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_6aeeb671cb04d5a48d011c2b888ef50bedbd1cccc4d6e15aa35591a7f0d67c8d","typeString":"literal_string \"ERROR:RPS-004:RISKPOOL_NOT_ACTIVE\""},"value":"ERROR:RPS-004:RISKPOOL_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6aeeb671cb04d5a48d011c2b888ef50bedbd1cccc4d6e15aa35591a7f0d67c8d","typeString":"literal_string \"ERROR:RPS-004:RISKPOOL_NOT_ACTIVE\""}],"id":25589,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1470:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1470:157:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25600,"nodeType":"ExpressionStatement","src":"1470:157:87"},{"id":25601,"nodeType":"PlaceholderStatement","src":"1637:1:87"}]},"id":25603,"name":"onlyActiveRiskpool","nameLocation":"1201:18:87","nodeType":"ModifierDefinition","parameters":{"id":25568,"nodeType":"ParameterList","parameters":[],"src":"1219:2:87"},"src":"1192:453:87","virtual":false,"visibility":"internal"},{"body":{"id":25667,"nodeType":"Block","src":"1716:710:87","statements":[{"assignments":[25610],"declarations":[{"constant":false,"id":25610,"mutability":"mutable","name":"componentId","nameLocation":"1734:11:87","nodeType":"VariableDeclaration","scope":25667,"src":"1726:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25609,"name":"uint256","nodeType":"ElementaryTypeName","src":"1726:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25616,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25613,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1774:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1774:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25611,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1748:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"1748:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1748:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1726:61:87"},{"assignments":[25618],"declarations":[{"constant":false,"id":25618,"mutability":"mutable","name":"isRiskpool","nameLocation":"1802:10:87","nodeType":"VariableDeclaration","scope":25667,"src":"1797:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25617,"name":"bool","nodeType":"ElementaryTypeName","src":"1797:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":25627,"initialValue":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":25626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25621,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25610,"src":"1843:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25619,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"1815:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"1815:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":25622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1815:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25623,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"1859:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"1859:24:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":25625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"1859:33:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"1815:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1797:95:87"},{"assignments":[25632],"declarations":[{"constant":false,"id":25632,"mutability":"mutable","name":"bundle","nameLocation":"1924:6:87","nodeType":"VariableDeclaration","scope":25667,"src":"1902:28:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":25631,"nodeType":"UserDefinedTypeName","pathNode":{"id":25630,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"1902:14:87"},"referencedDeclaration":4936,"src":"1902:14:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":25637,"initialValue":{"arguments":[{"id":25635,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25605,"src":"1951:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25633,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"1933:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"1933:17:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":25636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1933:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"1902:58:87"},{"expression":{"arguments":[{"id":25639,"name":"isRiskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25618,"src":"1991:10:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030353a53454e4445525f4e4f545f5249534b504f4f4c","id":25640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2015:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_309fb80389ae2cf275d3bd06f653b63b4bb0fb9d9ee3e0d9b947706f44385d1f","typeString":"literal_string \"ERROR:RPS-005:SENDER_NOT_RISKPOOL\""},"value":"ERROR:RPS-005:SENDER_NOT_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_309fb80389ae2cf275d3bd06f653b63b4bb0fb9d9ee3e0d9b947706f44385d1f","typeString":"literal_string \"ERROR:RPS-005:SENDER_NOT_RISKPOOL\""}],"id":25638,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1970:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1970:90:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25642,"nodeType":"ExpressionStatement","src":"1970:90:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25644,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25610,"src":"2091:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":25645,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25632,"src":"2106:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"2106:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2091:32:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030363a42554e444c455f5249534b504f4f4c5f4d49534d41544348","id":25648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2137:40:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_855b2be9e098fb1f219f436687f12dd85abab2ace616e4294e271e6704a1c399","typeString":"literal_string \"ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH\""},"value":"ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_855b2be9e098fb1f219f436687f12dd85abab2ace616e4294e271e6704a1c399","typeString":"literal_string \"ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH\""}],"id":25643,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2070:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2070:117:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25650,"nodeType":"ExpressionStatement","src":"2070:117:87"},{"condition":{"id":25651,"name":"mustBeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25607,"src":"2201:12:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25665,"nodeType":"IfStatement","src":"2197:212:87","trueBody":{"id":25664,"nodeType":"Block","src":"2215:194:87","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":25660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25655,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25610,"src":"2283:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25653,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"2254:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"2254:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":25656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2254:41:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25657,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"2299:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"2299:25:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":25659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"2299:32:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"2254:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030373a5249534b504f4f4c5f4e4f545f414354495645","id":25661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2349:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_82c4beee20530787664c8ead0427e62fb92780c18734e94848452ff578617680","typeString":"literal_string \"ERROR:RPS-007:RISKPOOL_NOT_ACTIVE\""},"value":"ERROR:RPS-007:RISKPOOL_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_82c4beee20530787664c8ead0427e62fb92780c18734e94848452ff578617680","typeString":"literal_string \"ERROR:RPS-007:RISKPOOL_NOT_ACTIVE\""}],"id":25652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2229:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2229:169:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25663,"nodeType":"ExpressionStatement","src":"2229:169:87"}]}},{"id":25666,"nodeType":"PlaceholderStatement","src":"2418:1:87"}]},"id":25668,"name":"onlyOwningRiskpool","nameLocation":"1660:18:87","nodeType":"ModifierDefinition","parameters":{"id":25608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25605,"mutability":"mutable","name":"bundleId","nameLocation":"1687:8:87","nodeType":"VariableDeclaration","scope":25668,"src":"1679:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25604,"name":"uint256","nodeType":"ElementaryTypeName","src":"1679:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25607,"mutability":"mutable","name":"mustBeActive","nameLocation":"1702:12:87","nodeType":"VariableDeclaration","scope":25668,"src":"1697:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25606,"name":"bool","nodeType":"ElementaryTypeName","src":"1697:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1678:37:87"},"src":"1651:775:87","virtual":false,"visibility":"internal"},{"body":{"id":25718,"nodeType":"Block","src":"2501:551:87","statements":[{"assignments":[25675],"declarations":[{"constant":false,"id":25675,"mutability":"mutable","name":"componentId","nameLocation":"2519:11:87","nodeType":"VariableDeclaration","scope":25718,"src":"2511:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25674,"name":"uint256","nodeType":"ElementaryTypeName","src":"2511:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25681,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25678,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"2559:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2559:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25676,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"2533:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"2533:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2533:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2511:61:87"},{"assignments":[25683],"declarations":[{"constant":false,"id":25683,"mutability":"mutable","name":"isRiskpool","nameLocation":"2587:10:87","nodeType":"VariableDeclaration","scope":25718,"src":"2582:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25682,"name":"bool","nodeType":"ElementaryTypeName","src":"2582:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":25692,"initialValue":{"commonType":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"id":25691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25686,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25675,"src":"2628:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25684,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"2600:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentType","nodeType":"MemberAccess","referencedDeclaration":17568,"src":"2600:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentType_$2891_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentType)"}},"id":25687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2600:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25688,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"2644:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"2644:24:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":25690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Riskpool","nodeType":"MemberAccess","referencedDeclaration":2890,"src":"2644:33:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"src":"2600:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2582:95:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25694,"name":"isRiskpool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25683,"src":"2708:10:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25695,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25675,"src":"2722:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":25696,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25670,"src":"2737:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2722:25:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2708:39:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030383a53454e4445525f4e4f545f4f574e494e475f5249534b504f4f4c","id":25699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2761:42:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c31b8742a47ea96bb8a5dda4954f2d206e7ddf3e59e186c3dda9736791081f4","typeString":"literal_string \"ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL\""},"value":"ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3c31b8742a47ea96bb8a5dda4954f2d206e7ddf3e59e186c3dda9736791081f4","typeString":"literal_string \"ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL\""}],"id":25693,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2687:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2687:126:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25701,"nodeType":"ExpressionStatement","src":"2687:126:87"},{"condition":{"id":25702,"name":"mustBeActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25672,"src":"2827:12:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":25716,"nodeType":"IfStatement","src":"2823:212:87","trueBody":{"id":25715,"nodeType":"Block","src":"2841:194:87","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"id":25711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":25706,"name":"componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25675,"src":"2909:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25704,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"2880:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentState","nodeType":"MemberAccess","referencedDeclaration":17581,"src":"2880:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_ComponentState_$2899_$","typeString":"function (uint256) view external returns (enum IComponent.ComponentState)"}},"id":25707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2880:41:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":25708,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"2925:10:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":25709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"2925:25:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":25710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"2925:32:87","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"src":"2880:77:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3030393a5249534b504f4f4c5f4e4f545f414354495645","id":25712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2975:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_5997ac91a2b36c0c5a522febf3408a4cfa08d11c8d231513f8127518fd86198f","typeString":"literal_string \"ERROR:RPS-009:RISKPOOL_NOT_ACTIVE\""},"value":"ERROR:RPS-009:RISKPOOL_NOT_ACTIVE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5997ac91a2b36c0c5a522febf3408a4cfa08d11c8d231513f8127518fd86198f","typeString":"literal_string \"ERROR:RPS-009:RISKPOOL_NOT_ACTIVE\""}],"id":25703,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"2855:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2855:169:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25714,"nodeType":"ExpressionStatement","src":"2855:169:87"}]}},{"id":25717,"nodeType":"PlaceholderStatement","src":"3044:1:87"}]},"id":25719,"name":"onlyOwningRiskpoolId","nameLocation":"2441:20:87","nodeType":"ModifierDefinition","parameters":{"id":25673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25670,"mutability":"mutable","name":"riskpoolId","nameLocation":"2470:10:87","nodeType":"VariableDeclaration","scope":25719,"src":"2462:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25669,"name":"uint256","nodeType":"ElementaryTypeName","src":"2462:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25672,"mutability":"mutable","name":"mustBeActive","nameLocation":"2487:12:87","nodeType":"VariableDeclaration","scope":25719,"src":"2482:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25671,"name":"bool","nodeType":"ElementaryTypeName","src":"2482:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2461:39:87"},"src":"2432:620:87","virtual":false,"visibility":"internal"},{"baseFunctions":[26387],"body":{"id":25757,"nodeType":"Block","src":"3145:280:87","statements":[{"expression":{"id":25731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25725,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"3155:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"42756e646c65","id":25728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3202:8:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""},"value":"Bundle"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39e09fb6f6e21374d40982a480c1001d394e7d5a2958c9c3ecb8e974b3495426","typeString":"literal_string \"Bundle\""}],"id":25727,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3182:19:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":25729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3182:29:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25726,"name":"BundleController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16946,"src":"3165:16:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BundleController_$16946_$","typeString":"type(contract BundleController)"}},"id":25730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3165:47:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"src":"3155:57:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25732,"nodeType":"ExpressionStatement","src":"3155:57:87"},{"expression":{"id":25739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25733,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"3222:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e74","id":25736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3275:11:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""},"value":"Component"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20422c9fb475bf3099f246b9754fae871c7ccc7264ca39a5be99fea0688ffe24","typeString":"literal_string \"Component\""}],"id":25735,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3255:19:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":25737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3255:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25734,"name":"ComponentController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17947,"src":"3235:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ComponentController_$17947_$","typeString":"type(contract ComponentController)"}},"id":25738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3235:53:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"src":"3222:66:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25740,"nodeType":"ExpressionStatement","src":"3222:66:87"},{"expression":{"id":25747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25741,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"3298:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"506f6f6c","id":25744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3341:6:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""},"value":"Pool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f","typeString":"literal_string \"Pool\""}],"id":25743,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3321:19:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":25745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3321:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25742,"name":"PoolController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"3306:14:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PoolController_$21207_$","typeString":"type(contract PoolController)"}},"id":25746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3306:43:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"src":"3298:51:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25748,"nodeType":"ExpressionStatement","src":"3298:51:87"},{"expression":{"id":25755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25749,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25531,"src":"3359:9:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"5472656173757279","id":25752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3406:10:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""},"value":"Treasury"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6efca2866b731ee4984990bacad4cde10f1ef764fb54a5206bdfd291695b1a9b","typeString":"literal_string \"Treasury\""}],"id":25751,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"3386:19:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":25753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3386:31:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":25750,"name":"TreasuryModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23615,"src":"3371:14:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TreasuryModule_$23615_$","typeString":"type(contract TreasuryModule)"}},"id":25754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3371:47:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"src":"3359:59:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25756,"nodeType":"ExpressionStatement","src":"3359:59:87"}]},"id":25758,"implemented":true,"kind":"function","modifiers":[{"id":25723,"modifierName":{"id":25722,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"3123:16:87"},"nodeType":"ModifierInvocation","src":"3123:16:87"}],"name":"_afterInitialize","nameLocation":"3068:16:87","nodeType":"FunctionDefinition","overrides":{"id":25721,"nodeType":"OverrideSpecifier","overrides":[],"src":"3105:8:87"},"parameters":{"id":25720,"nodeType":"ParameterList","parameters":[],"src":"3084:2:87"},"returnParameters":{"id":25724,"nodeType":"ParameterList","parameters":[],"src":"3145:0:87"},"scope":26277,"src":"3059:366:87","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[6677],"body":{"id":25790,"nodeType":"Block","src":"3652:257:87","statements":[{"assignments":[25773],"declarations":[{"constant":false,"id":25773,"mutability":"mutable","name":"riskpoolId","nameLocation":"3670:10:87","nodeType":"VariableDeclaration","scope":25790,"src":"3662:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25772,"name":"uint256","nodeType":"ElementaryTypeName","src":"3662:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25779,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25776,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3709:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3709:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25774,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"3683:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"3683:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3683:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3662:60:87"},{"expression":{"arguments":[{"id":25783,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25773,"src":"3768:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25784,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25760,"src":"3793:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25785,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25762,"src":"3813:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25786,"name":"collateralizationLevel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25764,"src":"3837:22:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25787,"name":"sumOfSumInsuredCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25766,"src":"3874:18:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25780,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"3732:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerRiskpool","nodeType":"MemberAccess","referencedDeclaration":20308,"src":"3732:22:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,uint256,uint256) external"}},"id":25788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3732:170:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25789,"nodeType":"ExpressionStatement","src":"3732:170:87"}]},"functionSelector":"bf2e3546","id":25791,"implemented":true,"kind":"function","modifiers":[{"id":25770,"modifierName":{"id":25769,"name":"onlyProposedRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25567,"src":"3627:20:87"},"nodeType":"ModifierInvocation","src":"3627:20:87"}],"name":"registerRiskpool","nameLocation":"3441:16:87","nodeType":"FunctionDefinition","overrides":{"id":25768,"nodeType":"OverrideSpecifier","overrides":[],"src":"3610:8:87"},"parameters":{"id":25767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25760,"mutability":"mutable","name":"wallet","nameLocation":"3475:6:87","nodeType":"VariableDeclaration","scope":25791,"src":"3467:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25759,"name":"address","nodeType":"ElementaryTypeName","src":"3467:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25762,"mutability":"mutable","name":"erc20Token","nameLocation":"3499:10:87","nodeType":"VariableDeclaration","scope":25791,"src":"3491:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25761,"name":"address","nodeType":"ElementaryTypeName","src":"3491:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25764,"mutability":"mutable","name":"collateralizationLevel","nameLocation":"3527:22:87","nodeType":"VariableDeclaration","scope":25791,"src":"3519:30:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25763,"name":"uint256","nodeType":"ElementaryTypeName","src":"3519:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25766,"mutability":"mutable","name":"sumOfSumInsuredCap","nameLocation":"3568:18:87","nodeType":"VariableDeclaration","scope":25791,"src":"3560:26:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25765,"name":"uint256","nodeType":"ElementaryTypeName","src":"3560:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3457:135:87"},"returnParameters":{"id":25771,"nodeType":"ParameterList","parameters":[],"src":"3652:0:87"},"scope":26277,"src":"3432:477:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6688],"body":{"id":25854,"nodeType":"Block","src":"4123:397:87","statements":[{"assignments":[25806],"declarations":[{"constant":false,"id":25806,"mutability":"mutable","name":"riskpoolId","nameLocation":"4141:10:87","nodeType":"VariableDeclaration","scope":25854,"src":"4133:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25805,"name":"uint256","nodeType":"ElementaryTypeName","src":"4133:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25812,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":25809,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"4180:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":25810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4180:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25807,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"4154:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":25808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"4154:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":25811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4154:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4133:60:87"},{"expression":{"id":25821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":25813,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25803,"src":"4203:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25816,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25793,"src":"4229:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25817,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25806,"src":"4236:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25818,"name":"filter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25795,"src":"4248:6:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"30","id":25819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4256:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":25814,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"4214:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"create","nodeType":"MemberAccess","referencedDeclaration":15924,"src":"4214:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,bytes memory,uint256) external returns (uint256)"}},"id":25820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4214:44:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4203:55:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":25822,"nodeType":"ExpressionStatement","src":"4203:55:87"},{"expression":{"arguments":[{"id":25826,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25806,"src":"4306:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25827,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25803,"src":"4318:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25823,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"4277:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addBundleIdToActiveSet","nodeType":"MemberAccess","referencedDeclaration":21104,"src":"4277:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4277:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25829,"nodeType":"ExpressionStatement","src":"4277:50:87"},{"assignments":[25831,25833],"declarations":[{"constant":false,"id":25831,"mutability":"mutable","name":"fee","nameLocation":"4347:3:87","nodeType":"VariableDeclaration","scope":25854,"src":"4339:11:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25830,"name":"uint256","nodeType":"ElementaryTypeName","src":"4339:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25833,"mutability":"mutable","name":"netCapital","nameLocation":"4360:10:87","nodeType":"VariableDeclaration","scope":25854,"src":"4352:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25832,"name":"uint256","nodeType":"ElementaryTypeName","src":"4352:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25839,"initialValue":{"arguments":[{"id":25836,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25803,"src":"4399:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25837,"name":"initialCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25797,"src":"4409:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25834,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25531,"src":"4374:9:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processCapital","nodeType":"MemberAccess","referencedDeclaration":23286,"src":"4374:24:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256,uint256)"}},"id":25838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4374:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4338:86:87"},{"expression":{"arguments":[{"id":25843,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25803,"src":"4448:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25844,"name":"netCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25833,"src":"4458:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25840,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"4435:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":15995,"src":"4435:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4435:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25846,"nodeType":"ExpressionStatement","src":"4435:34:87"},{"expression":{"arguments":[{"id":25850,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25806,"src":"4490:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25851,"name":"netCapital","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25833,"src":"4502:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25847,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"4479:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":20391,"src":"4479:10:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4479:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25853,"nodeType":"ExpressionStatement","src":"4479:34:87"}]},"functionSelector":"15fc1e74","id":25855,"implemented":true,"kind":"function","modifiers":[{"id":25801,"modifierName":{"id":25800,"name":"onlyActiveRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25603,"src":"4066:18:87"},"nodeType":"ModifierInvocation","src":"4066:18:87"}],"name":"createBundle","nameLocation":"3924:12:87","nodeType":"FunctionDefinition","overrides":{"id":25799,"nodeType":"OverrideSpecifier","overrides":[],"src":"4049:8:87"},"parameters":{"id":25798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25793,"mutability":"mutable","name":"owner","nameLocation":"3954:5:87","nodeType":"VariableDeclaration","scope":25855,"src":"3946:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25792,"name":"address","nodeType":"ElementaryTypeName","src":"3946:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25795,"mutability":"mutable","name":"filter","nameLocation":"3985:6:87","nodeType":"VariableDeclaration","scope":25855,"src":"3970:21:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":25794,"name":"bytes","nodeType":"ElementaryTypeName","src":"3970:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":25797,"mutability":"mutable","name":"initialCapital","nameLocation":"4010:14:87","nodeType":"VariableDeclaration","scope":25855,"src":"4002:22:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25796,"name":"uint256","nodeType":"ElementaryTypeName","src":"4002:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3936:94:87"},"returnParameters":{"id":25804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25803,"mutability":"mutable","name":"bundleId","nameLocation":"4109:8:87","nodeType":"VariableDeclaration","scope":25855,"src":"4101:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25802,"name":"uint256","nodeType":"ElementaryTypeName","src":"4101:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4100:18:87"},"scope":26277,"src":"3915:605:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6697],"body":{"id":25924,"nodeType":"Block","src":"4690:469:87","statements":[{"assignments":[25873],"declarations":[{"constant":false,"id":25873,"mutability":"mutable","name":"bundle","nameLocation":"4722:6:87","nodeType":"VariableDeclaration","scope":25924,"src":"4700:28:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":25872,"nodeType":"UserDefinedTypeName","pathNode":{"id":25871,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"4700:14:87"},"referencedDeclaration":4936,"src":"4700:14:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":25878,"initialValue":{"arguments":[{"id":25876,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25857,"src":"4749:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25874,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"4731:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"4731:17:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":25877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4731:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"4700:58:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":25892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":25885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25880,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25873,"src":"4789:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"4789:12:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":25882,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"4805:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":25883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"4805:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":25884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"4805:26:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"4789:42:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":25891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25886,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25873,"src":"4847:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"4847:12:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":25888,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"4863:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":25889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"4863:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":25890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"4863:26:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"4847:42:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4789:100:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3031303a42554e444c455f434c4f5345445f4f525f4255524e4544","id":25893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4904:39:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_578b4367808291b575492ac361c0e3d01cfd1dc40e85f0622444de502d7a0138","typeString":"literal_string \"ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED\""},"value":"ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_578b4367808291b575492ac361c0e3d01cfd1dc40e85f0622444de502d7a0138","typeString":"literal_string \"ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED\""}],"id":25879,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"4768:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4768:185:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25895,"nodeType":"ExpressionStatement","src":"4768:185:87"},{"assignments":[25897],"declarations":[{"constant":false,"id":25897,"mutability":"mutable","name":"feeAmount","nameLocation":"4972:9:87","nodeType":"VariableDeclaration","scope":25924,"src":"4964:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25896,"name":"uint256","nodeType":"ElementaryTypeName","src":"4964:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25898,"nodeType":"VariableDeclarationStatement","src":"4964:17:87"},{"expression":{"id":25907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":25899,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25897,"src":"4992:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25900,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25867,"src":"5003:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25901,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4991:22:87","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25904,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25857,"src":"5041:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25905,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25859,"src":"5051:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25902,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25531,"src":"5016:9:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processCapital","nodeType":"MemberAccess","referencedDeclaration":23286,"src":"5016:24:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256,uint256)"}},"id":25906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5016:42:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"4991:67:87","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25908,"nodeType":"ExpressionStatement","src":"4991:67:87"},{"expression":{"arguments":[{"id":25912,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25857,"src":"5082:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25913,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25867,"src":"5092:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25909,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"5069:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":15995,"src":"5069:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5069:33:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25915,"nodeType":"ExpressionStatement","src":"5069:33:87"},{"expression":{"arguments":[{"expression":{"id":25919,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25873,"src":"5123:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"5123:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25921,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25867,"src":"5142:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25916,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"5112:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fund","nodeType":"MemberAccess","referencedDeclaration":20391,"src":"5112:10:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5112:40:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25923,"nodeType":"ExpressionStatement","src":"5112:40:87"}]},"functionSelector":"89002da5","id":25925,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":25863,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25857,"src":"4634:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":25864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4644:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":25865,"modifierName":{"id":25862,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"4615:18:87"},"nodeType":"ModifierInvocation","src":"4615:34:87"}],"name":"fundBundle","nameLocation":"4536:10:87","nodeType":"FunctionDefinition","overrides":{"id":25861,"nodeType":"OverrideSpecifier","overrides":[],"src":"4598:8:87"},"parameters":{"id":25860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25857,"mutability":"mutable","name":"bundleId","nameLocation":"4555:8:87","nodeType":"VariableDeclaration","scope":25925,"src":"4547:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25856,"name":"uint256","nodeType":"ElementaryTypeName","src":"4547:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25859,"mutability":"mutable","name":"amount","nameLocation":"4573:6:87","nodeType":"VariableDeclaration","scope":25925,"src":"4565:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25858,"name":"uint256","nodeType":"ElementaryTypeName","src":"4565:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4546:34:87"},"returnParameters":{"id":25868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25867,"mutability":"mutable","name":"netAmount","nameLocation":"4675:9:87","nodeType":"VariableDeclaration","scope":25925,"src":"4667:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25866,"name":"uint256","nodeType":"ElementaryTypeName","src":"4667:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4665:20:87"},"scope":26277,"src":"4527:632:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6706],"body":{"id":25994,"nodeType":"Block","src":"5330:487:87","statements":[{"assignments":[25943],"declarations":[{"constant":false,"id":25943,"mutability":"mutable","name":"bundle","nameLocation":"5362:6:87","nodeType":"VariableDeclaration","scope":25994,"src":"5340:28:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":25942,"nodeType":"UserDefinedTypeName","pathNode":{"id":25941,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"5340:14:87"},"referencedDeclaration":4936,"src":"5340:14:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":25948,"initialValue":{"arguments":[{"id":25946,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25927,"src":"5389:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25944,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"5371:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"5371:17:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":25947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5371:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"5340:58:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":25955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":25950,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25943,"src":"5429:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"5429:12:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":25952,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"5445:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":25953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"5445:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":25954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Burned","nodeType":"MemberAccess","referencedDeclaration":4913,"src":"5445:26:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"5429:42:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3031313a42554e444c455f4255524e4544","id":25956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5486:29:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1f2a051d0acedf2156c1900d0e6d10c218e8acd8875eeacadd2cd00fdd5a714","typeString":"literal_string \"ERROR:RPS-011:BUNDLE_BURNED\""},"value":"ERROR:RPS-011:BUNDLE_BURNED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e1f2a051d0acedf2156c1900d0e6d10c218e8acd8875eeacadd2cd00fdd5a714","typeString":"literal_string \"ERROR:RPS-011:BUNDLE_BURNED\""}],"id":25949,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5408:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5408:117:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25958,"nodeType":"ExpressionStatement","src":"5408:117:87"},{"assignments":[25960],"declarations":[{"constant":false,"id":25960,"mutability":"mutable","name":"feeAmount","nameLocation":"5544:9:87","nodeType":"VariableDeclaration","scope":25994,"src":"5536:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25959,"name":"uint256","nodeType":"ElementaryTypeName","src":"5536:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":25961,"nodeType":"VariableDeclarationStatement","src":"5536:17:87"},{"expression":{"id":25970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":25962,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25960,"src":"5564:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25963,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25937,"src":"5575:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":25964,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5563:22:87","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":25967,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25927,"src":"5616:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25968,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25929,"src":"5626:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25965,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25531,"src":"5588:9:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":25966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processWithdrawal","nodeType":"MemberAccess","referencedDeclaration":23422,"src":"5588:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256,uint256)"}},"id":25969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5588:45:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"5563:70:87","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25971,"nodeType":"ExpressionStatement","src":"5563:70:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":25975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":25973,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25937,"src":"5651:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":25974,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25929,"src":"5664:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5651:19:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3031333a554e45585045435445445f4645455f5355425452414354494f4e","id":25976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5672:42:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_258a3c9af06bd81d9eb902a8f510faf45f4bdbbc4357a4c707327ecc2c7180b8","typeString":"literal_string \"ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION\""},"value":"ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_258a3c9af06bd81d9eb902a8f510faf45f4bdbbc4357a4c707327ecc2c7180b8","typeString":"literal_string \"ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION\""}],"id":25972,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"5643:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":25977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5643:72:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25978,"nodeType":"ExpressionStatement","src":"5643:72:87"},{"expression":{"arguments":[{"id":25982,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25927,"src":"5741:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25983,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25929,"src":"5751:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25979,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"5726:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":25981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"defund","nodeType":"MemberAccess","referencedDeclaration":16091,"src":"5726:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5726:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25985,"nodeType":"ExpressionStatement","src":"5726:32:87"},{"expression":{"arguments":[{"expression":{"id":25989,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25943,"src":"5781:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":25990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"5781:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25991,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25937,"src":"5800:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25986,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"5768:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":25988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"defund","nodeType":"MemberAccess","referencedDeclaration":20445,"src":"5768:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":25992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5768:42:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25993,"nodeType":"ExpressionStatement","src":"5768:42:87"}]},"functionSelector":"36153f3a","id":25995,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":25933,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25927,"src":"5275:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":25934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5285:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":25935,"modifierName":{"id":25932,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"5256:18:87"},"nodeType":"ModifierInvocation","src":"5256:34:87"}],"name":"defundBundle","nameLocation":"5175:12:87","nodeType":"FunctionDefinition","overrides":{"id":25931,"nodeType":"OverrideSpecifier","overrides":[],"src":"5239:8:87"},"parameters":{"id":25930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25927,"mutability":"mutable","name":"bundleId","nameLocation":"5196:8:87","nodeType":"VariableDeclaration","scope":25995,"src":"5188:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25926,"name":"uint256","nodeType":"ElementaryTypeName","src":"5188:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25929,"mutability":"mutable","name":"amount","nameLocation":"5214:6:87","nodeType":"VariableDeclaration","scope":25995,"src":"5206:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25928,"name":"uint256","nodeType":"ElementaryTypeName","src":"5206:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5187:34:87"},"returnParameters":{"id":25938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25937,"mutability":"mutable","name":"netAmount","nameLocation":"5315:9:87","nodeType":"VariableDeclaration","scope":25995,"src":"5307:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25936,"name":"uint256","nodeType":"ElementaryTypeName","src":"5307:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5306:19:87"},"scope":26277,"src":"5166:651:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6711],"body":{"id":26026,"nodeType":"Block","src":"5935:178:87","statements":[{"assignments":[26006],"declarations":[{"constant":false,"id":26006,"mutability":"mutable","name":"riskpoolId","nameLocation":"5957:10:87","nodeType":"VariableDeclaration","scope":26026,"src":"5949:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26005,"name":"uint256","nodeType":"ElementaryTypeName","src":"5949:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26012,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26009,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"5996:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5996:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26007,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"5970:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":26008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"5970:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":26011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5970:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5949:60:87"},{"expression":{"arguments":[{"id":26016,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26006,"src":"6053:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26017,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25997,"src":"6065:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26013,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"6019:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":26015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"removeBundleIdFromActiveSet","nodeType":"MemberAccess","referencedDeclaration":21134,"src":"6019:33:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6019:55:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26019,"nodeType":"ExpressionStatement","src":"6019:55:87"},{"expression":{"arguments":[{"id":26023,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25997,"src":"6097:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26020,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"6084:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"lock","nodeType":"MemberAccess","referencedDeclaration":16106,"src":"6084:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":26024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6084:22:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26025,"nodeType":"ExpressionStatement","src":"6084:22:87"}]},"functionSelector":"a17030d5","id":26027,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26001,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25997,"src":"5915:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5925:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26003,"modifierName":{"id":26000,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"5896:18:87"},"nodeType":"ModifierInvocation","src":"5896:34:87"}],"name":"lockBundle","nameLocation":"5833:10:87","nodeType":"FunctionDefinition","overrides":{"id":25999,"nodeType":"OverrideSpecifier","overrides":[],"src":"5879:8:87"},"parameters":{"id":25998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25997,"mutability":"mutable","name":"bundleId","nameLocation":"5852:8:87","nodeType":"VariableDeclaration","scope":26027,"src":"5844:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25996,"name":"uint256","nodeType":"ElementaryTypeName","src":"5844:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5843:18:87"},"returnParameters":{"id":26004,"nodeType":"ParameterList","parameters":[],"src":"5935:0:87"},"scope":26277,"src":"5824:289:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6716],"body":{"id":26058,"nodeType":"Block","src":"6235:171:87","statements":[{"assignments":[26038],"declarations":[{"constant":false,"id":26038,"mutability":"mutable","name":"riskpoolId","nameLocation":"6253:10:87","nodeType":"VariableDeclaration","scope":26058,"src":"6245:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26037,"name":"uint256","nodeType":"ElementaryTypeName","src":"6245:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26044,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26041,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"6292:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6292:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26039,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"6266:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":26040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"6266:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":26043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6266:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6245:60:87"},{"expression":{"arguments":[{"id":26048,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26038,"src":"6344:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26049,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26029,"src":"6356:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26045,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"6315:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":26047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addBundleIdToActiveSet","nodeType":"MemberAccess","referencedDeclaration":21104,"src":"6315:28:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6315:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26051,"nodeType":"ExpressionStatement","src":"6315:50:87"},{"expression":{"arguments":[{"id":26055,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26029,"src":"6390:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26052,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"6375:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unlock","nodeType":"MemberAccess","referencedDeclaration":16121,"src":"6375:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":26056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6375:24:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26057,"nodeType":"ExpressionStatement","src":"6375:24:87"}]},"functionSelector":"316c5348","id":26059,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26033,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26029,"src":"6213:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6223:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26035,"modifierName":{"id":26032,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"6194:18:87"},"nodeType":"ModifierInvocation","src":"6194:34:87"}],"name":"unlockBundle","nameLocation":"6129:12:87","nodeType":"FunctionDefinition","overrides":{"id":26031,"nodeType":"OverrideSpecifier","overrides":[],"src":"6177:8:87"},"parameters":{"id":26030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26029,"mutability":"mutable","name":"bundleId","nameLocation":"6150:8:87","nodeType":"VariableDeclaration","scope":26059,"src":"6142:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26028,"name":"uint256","nodeType":"ElementaryTypeName","src":"6142:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6141:18:87"},"returnParameters":{"id":26036,"nodeType":"ParameterList","parameters":[],"src":"6235:0:87"},"scope":26277,"src":"6120:286:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6721],"body":{"id":26100,"nodeType":"Block","src":"6527:263:87","statements":[{"assignments":[26070],"declarations":[{"constant":false,"id":26070,"mutability":"mutable","name":"riskpoolId","nameLocation":"6545:10:87","nodeType":"VariableDeclaration","scope":26100,"src":"6537:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26069,"name":"uint256","nodeType":"ElementaryTypeName","src":"6537:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26076,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26073,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"6584:10:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6584:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26071,"name":"_component","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25522,"src":"6558:10:87","typeDescriptions":{"typeIdentifier":"t_contract$_ComponentController_$17947","typeString":"contract ComponentController"}},"id":26072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getComponentId","nodeType":"MemberAccess","referencedDeclaration":17521,"src":"6558:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":26075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6558:39:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6537:60:87"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":26084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26079,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26061,"src":"6629:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26077,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"6612:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getState","nodeType":"MemberAccess","referencedDeclaration":16682,"src":"6612:16:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_enum$_BundleState_$4914_$","typeString":"function (uint256) view external returns (enum IBundle.BundleState)"}},"id":26080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6612:26:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":26081,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"6642:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":26082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"6642:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":26083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":4910,"src":"6642:26:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"6612:56:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26093,"nodeType":"IfStatement","src":"6608:142:87","trueBody":{"id":26092,"nodeType":"Block","src":"6670:80:87","statements":[{"expression":{"arguments":[{"id":26088,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26070,"src":"6718:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26089,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26061,"src":"6730:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26085,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"6684:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":26087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"removeBundleIdFromActiveSet","nodeType":"MemberAccess","referencedDeclaration":21134,"src":"6684:33:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6684:55:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26091,"nodeType":"ExpressionStatement","src":"6684:55:87"}]}},{"expression":{"arguments":[{"id":26097,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26061,"src":"6774:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26094,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"6760:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"close","nodeType":"MemberAccess","referencedDeclaration":16145,"src":"6760:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":26098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6760:23:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26099,"nodeType":"ExpressionStatement","src":"6760:23:87"}]},"functionSelector":"8c483e5a","id":26101,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26065,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26061,"src":"6505:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6515:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26067,"modifierName":{"id":26064,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"6486:18:87"},"nodeType":"ModifierInvocation","src":"6486:34:87"}],"name":"closeBundle","nameLocation":"6422:11:87","nodeType":"FunctionDefinition","overrides":{"id":26063,"nodeType":"OverrideSpecifier","overrides":[],"src":"6469:8:87"},"parameters":{"id":26062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26061,"mutability":"mutable","name":"bundleId","nameLocation":"6442:8:87","nodeType":"VariableDeclaration","scope":26101,"src":"6434:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26060,"name":"uint256","nodeType":"ElementaryTypeName","src":"6434:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6433:18:87"},"returnParameters":{"id":26068,"nodeType":"ParameterList","parameters":[],"src":"6527:0:87"},"scope":26277,"src":"6413:377:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6726],"body":{"id":26163,"nodeType":"Block","src":"6909:484:87","statements":[{"assignments":[26115],"declarations":[{"constant":false,"id":26115,"mutability":"mutable","name":"bundle","nameLocation":"6976:6:87","nodeType":"VariableDeclaration","scope":26163,"src":"6954:28:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":26114,"nodeType":"UserDefinedTypeName","pathNode":{"id":26113,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"6954:14:87"},"referencedDeclaration":4936,"src":"6954:14:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"}],"id":26120,"initialValue":{"arguments":[{"id":26118,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26103,"src":"7003:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26116,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"6985:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBundle","nodeType":"MemberAccess","referencedDeclaration":16777,"src":"6985:17:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$4936_memory_ptr_$","typeString":"function (uint256) view external returns (struct IBundle.Bundle memory)"}},"id":26119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6985:27:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"nodeType":"VariableDeclarationStatement","src":"6954:58:87"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"},"id":26127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26122,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26115,"src":"7030:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":26123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":4923,"src":"7030:12:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":26124,"name":"IBundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"7046:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBundle_$5020_$","typeString":"type(contract IBundle)"}},"id":26125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"BundleState","nodeType":"MemberAccess","referencedDeclaration":4914,"src":"7046:19:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_BundleState_$4914_$","typeString":"type(enum IBundle.BundleState)"}},"id":26126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Closed","nodeType":"MemberAccess","referencedDeclaration":4912,"src":"7046:26:87","typeDescriptions":{"typeIdentifier":"t_enum$_BundleState_$4914","typeString":"enum IBundle.BundleState"}},"src":"7030:42:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5250532d3032303a42554e444c455f4e4f545f434c4f534544","id":26128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7074:33:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_386d499e9b35cf070593adbf1e04c00337097d278207b271aae54ef291324f75","typeString":"literal_string \"ERROR:RPS-020:BUNDLE_NOT_CLOSED\""},"value":"ERROR:RPS-020:BUNDLE_NOT_CLOSED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_386d499e9b35cf070593adbf1e04c00337097d278207b271aae54ef291324f75","typeString":"literal_string \"ERROR:RPS-020:BUNDLE_NOT_CLOSED\""}],"id":26121,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"7022:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7022:86:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26130,"nodeType":"ExpressionStatement","src":"7022:86:87"},{"assignments":[26132,26134],"declarations":[{"constant":false,"id":26132,"mutability":"mutable","name":"feeAmount","nameLocation":"7166:9:87","nodeType":"VariableDeclaration","scope":26163,"src":"7158:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26131,"name":"uint256","nodeType":"ElementaryTypeName","src":"7158:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26134,"mutability":"mutable","name":"netAmount","nameLocation":"7185:9:87","nodeType":"VariableDeclaration","scope":26163,"src":"7177:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26133,"name":"uint256","nodeType":"ElementaryTypeName","src":"7177:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26141,"initialValue":{"arguments":[{"id":26137,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26103,"src":"7226:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":26138,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26115,"src":"7236:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":26139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":4931,"src":"7236:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26135,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25531,"src":"7198:9:87","typeDescriptions":{"typeIdentifier":"t_contract$_TreasuryModule_$23615","typeString":"contract TreasuryModule"}},"id":26136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processWithdrawal","nodeType":"MemberAccess","referencedDeclaration":23422,"src":"7198:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (uint256,uint256) external returns (uint256,uint256)"}},"id":26140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7198:53:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"7157:94:87"},{"expression":{"arguments":[{"id":26145,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26103,"src":"7281:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26146,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26134,"src":"7291:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26142,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"7266:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"defund","nodeType":"MemberAccess","referencedDeclaration":16091,"src":"7266:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7266:35:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26148,"nodeType":"ExpressionStatement","src":"7266:35:87"},{"expression":{"arguments":[{"expression":{"id":26152,"name":"bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26115,"src":"7324:6:87","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle memory"}},"id":26153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"riskpoolId","nodeType":"MemberAccess","referencedDeclaration":4918,"src":"7324:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26154,"name":"netAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26134,"src":"7343:9:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26149,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"7311:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":26151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"defund","nodeType":"MemberAccess","referencedDeclaration":20445,"src":"7311:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7311:42:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26156,"nodeType":"ExpressionStatement","src":"7311:42:87"},{"expression":{"arguments":[{"id":26160,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26103,"src":"7377:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26157,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"7364:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":16197,"src":"7364:12:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":26161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7364:22:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26162,"nodeType":"ExpressionStatement","src":"7364:22:87"}]},"functionSelector":"587e59d0","id":26164,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26107,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26103,"src":"6887:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6897:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26109,"modifierName":{"id":26106,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"6868:18:87"},"nodeType":"ModifierInvocation","src":"6868:34:87"}],"name":"burnBundle","nameLocation":"6805:10:87","nodeType":"FunctionDefinition","overrides":{"id":26105,"nodeType":"OverrideSpecifier","overrides":[],"src":"6851:8:87"},"parameters":{"id":26104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26103,"mutability":"mutable","name":"bundleId","nameLocation":"6824:8:87","nodeType":"VariableDeclaration","scope":26164,"src":"6816:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26102,"name":"uint256","nodeType":"ElementaryTypeName","src":"6816:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6815:18:87"},"returnParameters":{"id":26110,"nodeType":"ParameterList","parameters":[],"src":"6909:0:87"},"scope":26277,"src":"6796:597:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6735],"body":{"id":26186,"nodeType":"Block","src":"7571:83:87","statements":[{"expression":{"arguments":[{"id":26181,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26166,"src":"7609:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26182,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26168,"src":"7619:9:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":26183,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26170,"src":"7630:16:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26178,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"7581:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collateralizePolicy","nodeType":"MemberAccess","referencedDeclaration":16322,"src":"7581:27:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":26184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7581:66:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26185,"nodeType":"ExpressionStatement","src":"7581:66:87"}]},"functionSelector":"4d03f9b7","id":26187,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26174,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26166,"src":"7549:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7559:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26176,"modifierName":{"id":26173,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"7530:18:87"},"nodeType":"ModifierInvocation","src":"7530:34:87"}],"name":"collateralizePolicy","nameLocation":"7412:19:87","nodeType":"FunctionDefinition","overrides":{"id":26172,"nodeType":"OverrideSpecifier","overrides":[],"src":"7513:8:87"},"parameters":{"id":26171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26166,"mutability":"mutable","name":"bundleId","nameLocation":"7440:8:87","nodeType":"VariableDeclaration","scope":26187,"src":"7432:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26165,"name":"uint256","nodeType":"ElementaryTypeName","src":"7432:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26168,"mutability":"mutable","name":"processId","nameLocation":"7458:9:87","nodeType":"VariableDeclaration","scope":26187,"src":"7450:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7450:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":26170,"mutability":"mutable","name":"collateralAmount","nameLocation":"7477:16:87","nodeType":"VariableDeclaration","scope":26187,"src":"7469:24:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26169,"name":"uint256","nodeType":"ElementaryTypeName","src":"7469:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7431:63:87"},"returnParameters":{"id":26177,"nodeType":"ParameterList","parameters":[],"src":"7571:0:87"},"scope":26277,"src":"7403:251:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6744],"body":{"id":26209,"nodeType":"Block","src":"7810:76:87","statements":[{"expression":{"arguments":[{"id":26204,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26189,"src":"7851:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26205,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26191,"src":"7861:9:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":26206,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26193,"src":"7872:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26201,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"7828:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPremium","nodeType":"MemberAccess","referencedDeclaration":16386,"src":"7828:22:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":26207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7828:51:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26208,"nodeType":"ExpressionStatement","src":"7828:51:87"}]},"functionSelector":"b7267420","id":26210,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26197,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26189,"src":"7790:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7800:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26199,"modifierName":{"id":26196,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"7771:18:87"},"nodeType":"ModifierInvocation","src":"7771:34:87"}],"name":"processPremium","nameLocation":"7669:14:87","nodeType":"FunctionDefinition","overrides":{"id":26195,"nodeType":"OverrideSpecifier","overrides":[],"src":"7754:8:87"},"parameters":{"id":26194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26189,"mutability":"mutable","name":"bundleId","nameLocation":"7692:8:87","nodeType":"VariableDeclaration","scope":26210,"src":"7684:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26188,"name":"uint256","nodeType":"ElementaryTypeName","src":"7684:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26191,"mutability":"mutable","name":"processId","nameLocation":"7710:9:87","nodeType":"VariableDeclaration","scope":26210,"src":"7702:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7702:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":26193,"mutability":"mutable","name":"amount","nameLocation":"7729:6:87","nodeType":"VariableDeclaration","scope":26210,"src":"7721:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26192,"name":"uint256","nodeType":"ElementaryTypeName","src":"7721:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7683:53:87"},"returnParameters":{"id":26200,"nodeType":"ParameterList","parameters":[],"src":"7810:0:87"},"scope":26277,"src":"7660:226:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6753],"body":{"id":26232,"nodeType":"Block","src":"8043:67:87","statements":[{"expression":{"arguments":[{"id":26227,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26212,"src":"8075:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26228,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26214,"src":"8085:9:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":26229,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26216,"src":"8096:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26224,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"8053:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":16534,"src":"8053:21:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (uint256,bytes32,uint256) external"}},"id":26230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8053:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26231,"nodeType":"ExpressionStatement","src":"8053:50:87"}]},"functionSelector":"b299cc26","id":26233,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26220,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26212,"src":"8021:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8031:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26222,"modifierName":{"id":26219,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"8002:18:87"},"nodeType":"ModifierInvocation","src":"8002:34:87"}],"name":"processPayout","nameLocation":"7901:13:87","nodeType":"FunctionDefinition","overrides":{"id":26218,"nodeType":"OverrideSpecifier","overrides":[],"src":"7985:8:87"},"parameters":{"id":26217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26212,"mutability":"mutable","name":"bundleId","nameLocation":"7923:8:87","nodeType":"VariableDeclaration","scope":26233,"src":"7915:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26211,"name":"uint256","nodeType":"ElementaryTypeName","src":"7915:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26214,"mutability":"mutable","name":"processId","nameLocation":"7941:9:87","nodeType":"VariableDeclaration","scope":26233,"src":"7933:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7933:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":26216,"mutability":"mutable","name":"amount","nameLocation":"7960:6:87","nodeType":"VariableDeclaration","scope":26233,"src":"7952:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26215,"name":"uint256","nodeType":"ElementaryTypeName","src":"7952:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7914:53:87"},"returnParameters":{"id":26223,"nodeType":"ParameterList","parameters":[],"src":"8043:0:87"},"scope":26277,"src":"7892:218:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6762],"body":{"id":26255,"nodeType":"Block","src":"8294:78:87","statements":[{"expression":{"id":26253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26247,"name":"collateralAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26245,"src":"8304:16:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26250,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26235,"src":"8345:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26251,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26237,"src":"8355:9:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":26248,"name":"_bundle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25525,"src":"8323:7:87","typeDescriptions":{"typeIdentifier":"t_contract$_BundleController_$16946","typeString":"contract BundleController"}},"id":26249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"releasePolicy","nodeType":"MemberAccess","referencedDeclaration":16648,"src":"8323:21:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (uint256,bytes32) external returns (uint256)"}},"id":26252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8323:42:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8304:61:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":26254,"nodeType":"ExpressionStatement","src":"8304:61:87"}]},"functionSelector":"bb540df6","id":26256,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26241,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26235,"src":"8229:8:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":26242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8239:5:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"id":26243,"modifierName":{"id":26240,"name":"onlyOwningRiskpool","nodeType":"IdentifierPath","referencedDeclaration":25668,"src":"8210:18:87"},"nodeType":"ModifierInvocation","src":"8210:35:87"}],"name":"releasePolicy","nameLocation":"8125:13:87","nodeType":"FunctionDefinition","overrides":{"id":26239,"nodeType":"OverrideSpecifier","overrides":[],"src":"8193:8:87"},"parameters":{"id":26238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26235,"mutability":"mutable","name":"bundleId","nameLocation":"8147:8:87","nodeType":"VariableDeclaration","scope":26256,"src":"8139:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26234,"name":"uint256","nodeType":"ElementaryTypeName","src":"8139:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26237,"mutability":"mutable","name":"processId","nameLocation":"8165:9:87","nodeType":"VariableDeclaration","scope":26256,"src":"8157:17:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8157:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8138:37:87"},"returnParameters":{"id":26246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26245,"mutability":"mutable","name":"collateralAmount","nameLocation":"8272:16:87","nodeType":"VariableDeclaration","scope":26256,"src":"8264:24:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26244,"name":"uint256","nodeType":"ElementaryTypeName","src":"8264:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8263:26:87"},"scope":26277,"src":"8116:256:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6769],"body":{"id":26275,"nodeType":"Block","src":"8550:92:87","statements":[{"expression":{"arguments":[{"id":26271,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26258,"src":"8598:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26272,"name":"maxNumberOfActiveBundles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26260,"src":"8610:24:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26268,"name":"_pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25528,"src":"8560:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_PoolController_$21207","typeString":"contract PoolController"}},"id":26270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setMaximumNumberOfActiveBundles","nodeType":"MemberAccess","referencedDeclaration":20958,"src":"8560:37:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) external"}},"id":26273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8560:75:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26274,"nodeType":"ExpressionStatement","src":"8560:75:87"}]},"functionSelector":"2127fd48","id":26276,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":26264,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26258,"src":"8528:10:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":26265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8540:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"id":26266,"modifierName":{"id":26263,"name":"onlyOwningRiskpoolId","nodeType":"IdentifierPath","referencedDeclaration":25719,"src":"8507:20:87"},"nodeType":"ModifierInvocation","src":"8507:38:87"}],"name":"setMaximumNumberOfActiveBundles","nameLocation":"8387:31:87","nodeType":"FunctionDefinition","overrides":{"id":26262,"nodeType":"OverrideSpecifier","overrides":[],"src":"8490:8:87"},"parameters":{"id":26261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26258,"mutability":"mutable","name":"riskpoolId","nameLocation":"8427:10:87","nodeType":"VariableDeclaration","scope":26276,"src":"8419:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26257,"name":"uint256","nodeType":"ElementaryTypeName","src":"8419:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26260,"mutability":"mutable","name":"maxNumberOfActiveBundles","nameLocation":"8447:24:87","nodeType":"VariableDeclaration","scope":26276,"src":"8439:32:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26259,"name":"uint256","nodeType":"ElementaryTypeName","src":"8439:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8418:54:87"},"returnParameters":{"id":26267,"nodeType":"ParameterList","parameters":[],"src":"8550:0:87"},"scope":26277,"src":"8378:264:87","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":26278,"src":"439:8208:87"}],"src":"39:8609:87"},"id":87},"contracts/shared/CoreController.sol":{"ast":{"absolutePath":"contracts/shared/CoreController.sol","exportedSymbols":{"Address":[10496],"Context":[10518],"CoreController":[26413],"IAccess":[4836],"IRegistry":[5714],"Initializable":[8059]},"id":26414,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26279,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:88"},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IAccess.sol","file":"@etherisc/gif-interface/contracts/modules/IAccess.sol","id":26280,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26414,"sourceUnit":4837,"src":"63:63:88","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":26281,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26414,"sourceUnit":5715,"src":"127:65:88","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":26282,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26414,"sourceUnit":8060,"src":"194:63:88","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"@openzeppelin/contracts/utils/Context.sol","id":26283,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26414,"sourceUnit":10519,"src":"258:51:88","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26284,"name":"Context","nodeType":"IdentifierPath","referencedDeclaration":10518,"src":"342:7:88"},"id":26285,"nodeType":"InheritanceSpecifier","src":"342:7:88"},{"baseName":{"id":26286,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":8059,"src":"355:13:88"},"id":26287,"nodeType":"InheritanceSpecifier","src":"355:13:88"}],"contractDependencies":[8059,10518],"contractKind":"contract","fullyImplemented":true,"id":26413,"linearizedBaseContracts":[26413,8059,10518],"name":"CoreController","nameLocation":"320:14:88","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":26290,"mutability":"mutable","name":"_registry","nameLocation":"395:9:88","nodeType":"VariableDeclaration","scope":26413,"src":"376:28:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":26289,"nodeType":"UserDefinedTypeName","pathNode":{"id":26288,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"376:9:88"},"referencedDeclaration":5714,"src":"376:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":26293,"mutability":"mutable","name":"_access","nameLocation":"427:7:88","nodeType":"VariableDeclaration","scope":26413,"src":"410:24:88","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"},"typeName":{"id":26292,"nodeType":"UserDefinedTypeName","pathNode":{"id":26291,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"410:7:88"},"referencedDeclaration":4836,"src":"410:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"visibility":"internal"},{"body":{"id":26299,"nodeType":"Block","src":"456:39:88","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":26296,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8058,"src":"466:20:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":26297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"466:22:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26298,"nodeType":"ExpressionStatement","src":"466:22:88"}]},"id":26300,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26294,"nodeType":"ParameterList","parameters":[],"src":"453:2:88"},"returnParameters":{"id":26295,"nodeType":"ParameterList","parameters":[],"src":"456:0:88"},"scope":26413,"src":"441:54:88","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":26313,"nodeType":"Block","src":"533:164:88","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26305,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"587:10:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"587:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":26307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"601:25:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"expression":{"id":26303,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"564:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ensureSender","nodeType":"MemberAccess","referencedDeclaration":5701,"src":"564:22:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bool_$","typeString":"function (address,bytes32) view external returns (bool)"}},"id":26308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"564:63:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f50455241544f52","id":26309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"641:37:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1","typeString":"literal_string \"ERROR:CRC-001:NOT_INSTANCE_OPERATOR\""},"value":"ERROR:CRC-001:NOT_INSTANCE_OPERATOR"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1","typeString":"literal_string \"ERROR:CRC-001:NOT_INSTANCE_OPERATOR\""}],"id":26302,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"543:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"543:136:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26311,"nodeType":"ExpressionStatement","src":"543:136:88"},{"id":26312,"nodeType":"PlaceholderStatement","src":"689:1:88"}]},"id":26314,"name":"onlyInstanceOperator","nameLocation":"510:20:88","nodeType":"ModifierDefinition","parameters":{"id":26301,"nodeType":"ParameterList","parameters":[],"src":"530:2:88"},"src":"501:196:88","virtual":false,"visibility":"internal"},{"body":{"id":26341,"nodeType":"Block","src":"743:394:88","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26321,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"819:4:88","typeDescriptions":{"typeIdentifier":"t_contract$_CoreController_$26413","typeString":"contract CoreController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CoreController_$26413","typeString":"contract CoreController"}],"id":26320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"811:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26319,"name":"address","nodeType":"ElementaryTypeName","src":"811:7:88","typeDescriptions":{}}},"id":26322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"811:13:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":26324,"name":"module","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26316,"src":"848:6:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":26323,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"828:19:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"828:27:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"811:44:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352432d3030323a4e4f545f4f4e5f53544f52414745","id":26327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"869:30:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4","typeString":"literal_string \"ERROR:CRC-002:NOT_ON_STORAGE\""},"value":"ERROR:CRC-002:NOT_ON_STORAGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4","typeString":"literal_string \"ERROR:CRC-002:NOT_ON_STORAGE\""}],"id":26318,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"790:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"790:119:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26329,"nodeType":"ExpressionStatement","src":"790:119:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":26331,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1007:10:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1007:12:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"50726f6475637453657276696365","id":26334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1043:16:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""},"value":"ProductService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""}],"id":26333,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1023:19:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1023:37:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1007:53:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352432d3030333a4e4f545f50524f445543545f53455256494345","id":26337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1074:35:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0","typeString":"literal_string \"ERROR:CRC-003:NOT_PRODUCT_SERVICE\""},"value":"ERROR:CRC-003:NOT_PRODUCT_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0","typeString":"literal_string \"ERROR:CRC-003:NOT_PRODUCT_SERVICE\""}],"id":26330,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"986:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"986:133:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26339,"nodeType":"ExpressionStatement","src":"986:133:88"},{"id":26340,"nodeType":"PlaceholderStatement","src":"1129:1:88"}]},"id":26342,"name":"onlyPolicyFlow","nameLocation":"712:14:88","nodeType":"ModifierDefinition","parameters":{"id":26317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26316,"mutability":"mutable","name":"module","nameLocation":"735:6:88","nodeType":"VariableDeclaration","scope":26342,"src":"727:14:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"727:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"726:16:88"},"src":"703:434:88","virtual":false,"visibility":"internal"},{"body":{"id":26372,"nodeType":"Block","src":"1200:175:88","statements":[{"expression":{"id":26353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26349,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"1210:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26351,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26344,"src":"1232:8:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26350,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"1222:9:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$5714_$","typeString":"type(contract IRegistry)"}},"id":26352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1222:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"src":"1210:31:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26354,"nodeType":"ExpressionStatement","src":"1210:31:88"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":26358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":26355,"name":"_getName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26381,"src":"1255:8:88","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_bytes32_$","typeString":"function () pure returns (bytes32)"}},"id":26356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1255:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"416363657373","id":26357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1269:8:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"},"src":"1255:22:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26368,"nodeType":"IfStatement","src":"1251:81:88","trueBody":{"id":26367,"nodeType":"Block","src":"1279:53:88","statements":[{"expression":{"id":26365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26359,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26293,"src":"1281:7:88","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"416363657373","id":26362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1319:8:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""}],"id":26361,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"1299:19:88","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1299:29:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26360,"name":"IAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"1291:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccess_$4836_$","typeString":"type(contract IAccess)"}},"id":26364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1291:38:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"src":"1281:48:88","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":26366,"nodeType":"ExpressionStatement","src":"1281:48:88"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":26369,"name":"_afterInitialize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26387,"src":"1350:16:88","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":26370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1350:18:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26371,"nodeType":"ExpressionStatement","src":"1350:18:88"}]},"functionSelector":"c4d66de8","id":26373,"implemented":true,"kind":"function","modifiers":[{"id":26347,"modifierName":{"id":26346,"name":"initializer","nodeType":"IdentifierPath","referencedDeclaration":7979,"src":"1188:11:88"},"nodeType":"ModifierInvocation","src":"1188:11:88"}],"name":"initialize","nameLocation":"1152:10:88","nodeType":"FunctionDefinition","parameters":{"id":26345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26344,"mutability":"mutable","name":"registry","nameLocation":"1171:8:88","nodeType":"VariableDeclaration","scope":26373,"src":"1163:16:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26343,"name":"address","nodeType":"ElementaryTypeName","src":"1163:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1162:18:88"},"returnParameters":{"id":26348,"nodeType":"ParameterList","parameters":[],"src":"1200:0:88"},"scope":26413,"src":"1143:232:88","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":26380,"nodeType":"Block","src":"1440:14:88","statements":[{"expression":{"hexValue":"","id":26378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1449:2:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":26377,"id":26379,"nodeType":"Return","src":"1442:9:88"}]},"id":26381,"implemented":true,"kind":"function","modifiers":[],"name":"_getName","nameLocation":"1390:8:88","nodeType":"FunctionDefinition","parameters":{"id":26374,"nodeType":"ParameterList","parameters":[],"src":"1398:2:88"},"returnParameters":{"id":26377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26376,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26381,"src":"1431:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1431:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1430:9:88"},"scope":26413,"src":"1381:73:88","stateMutability":"pure","virtual":true,"visibility":"internal"},{"body":{"id":26386,"nodeType":"Block","src":"1522:2:88","statements":[]},"id":26387,"implemented":true,"kind":"function","modifiers":[{"id":26384,"modifierName":{"id":26383,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":8022,"src":"1505:16:88"},"nodeType":"ModifierInvocation","src":"1505:16:88"}],"name":"_afterInitialize","nameLocation":"1469:16:88","nodeType":"FunctionDefinition","parameters":{"id":26382,"nodeType":"ParameterList","parameters":[],"src":"1485:2:88"},"returnParameters":{"id":26385,"nodeType":"ParameterList","parameters":[],"src":"1522:0:88"},"scope":26413,"src":"1460:64:88","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":26411,"nodeType":"Block","src":"1629:194:88","statements":[{"expression":{"id":26399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26394,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26392,"src":"1640:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26397,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26389,"src":"1680:12:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":26395,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26290,"src":"1658:9:88","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContract","nodeType":"MemberAccess","referencedDeclaration":5687,"src":"1658:21:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":26398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1658:35:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1640:53:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26400,"nodeType":"ExpressionStatement","src":"1640:53:88"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26402,"name":"contractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26392,"src":"1724:15:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":26405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1751:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":26404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1743:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26403,"name":"address","nodeType":"ElementaryTypeName","src":"1743:7:88","typeDescriptions":{}}},"id":26406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1743:10:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1724:29:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352432d3030343a434f4e54524143545f4e4f545f52454749535445524544","id":26408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1767:39:88","typeDescriptions":{"typeIdentifier":"t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271","typeString":"literal_string \"ERROR:CRC-004:CONTRACT_NOT_REGISTERED\""},"value":"ERROR:CRC-004:CONTRACT_NOT_REGISTERED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271","typeString":"literal_string \"ERROR:CRC-004:CONTRACT_NOT_REGISTERED\""}],"id":26401,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1703:7:88","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1703:113:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26410,"nodeType":"ExpressionStatement","src":"1703:113:88"}]},"id":26412,"implemented":true,"kind":"function","modifiers":[],"name":"_getContractAddress","nameLocation":"1539:19:88","nodeType":"FunctionDefinition","parameters":{"id":26390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26389,"mutability":"mutable","name":"contractName","nameLocation":"1567:12:88","nodeType":"VariableDeclaration","scope":26412,"src":"1559:20:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1559:7:88","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1558:22:88"},"returnParameters":{"id":26393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26392,"mutability":"mutable","name":"contractAddress","nameLocation":"1612:15:88","nodeType":"VariableDeclaration","scope":26412,"src":"1604:23:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26391,"name":"address","nodeType":"ElementaryTypeName","src":"1604:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1603:25:88"},"scope":26413,"src":"1530:293:88","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":26414,"src":"311:1514:88"}],"src":"39:1787:88"},"id":88},"contracts/shared/CoreProxy.sol":{"ast":{"absolutePath":"contracts/shared/CoreProxy.sol","exportedSymbols":{"Address":[10496],"CoreProxy":[26487],"ERC1967Proxy":[7528],"ERC1967Upgrade":[7846],"IBeacon":[7908],"ICoreProxy":[6779],"IERC1822Proxiable":[7491],"Proxy":[7898],"StorageSlot":[10578]},"id":26488,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26415,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:89"},{"absolutePath":"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol","file":"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol","id":26416,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26488,"sourceUnit":6780,"src":"68:65:89","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","id":26417,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26488,"sourceUnit":7529,"src":"135:64:89","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26418,"name":"ICoreProxy","nodeType":"IdentifierPath","referencedDeclaration":6779,"src":"231:10:89"},"id":26419,"nodeType":"InheritanceSpecifier","src":"231:10:89"},{"baseName":{"id":26420,"name":"ERC1967Proxy","nodeType":"IdentifierPath","referencedDeclaration":7528,"src":"249:12:89"},"id":26421,"nodeType":"InheritanceSpecifier","src":"249:12:89"}],"contractDependencies":[6779,7528,7846,7898],"contractKind":"contract","fullyImplemented":true,"id":26487,"linearizedBaseContracts":[26487,7528,7846,7898,6779],"name":"CoreProxy","nameLocation":"212:9:89","nodeType":"ContractDefinition","nodes":[{"body":{"id":26433,"nodeType":"Block","src":"293:119:89","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26424,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"326:3:89","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"326:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":26426,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7706,"src":"340:9:89","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"340:11:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"326:25:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a4352502d3030313a4e4f545f41444d494e","id":26429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"366:25:89","typeDescriptions":{"typeIdentifier":"t_stringliteral_0040c7b535fe8d83323ecc73a5169249b6133b5d656b3adacba7405479c95dea","typeString":"literal_string \"ERROR:CRP-001:NOT_ADMIN\""},"value":"ERROR:CRP-001:NOT_ADMIN"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0040c7b535fe8d83323ecc73a5169249b6133b5d656b3adacba7405479c95dea","typeString":"literal_string \"ERROR:CRP-001:NOT_ADMIN\""}],"id":26423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"304:7:89","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"304:88:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26431,"nodeType":"ExpressionStatement","src":"304:88:89"},{"id":26432,"nodeType":"PlaceholderStatement","src":"403:1:89"}]},"id":26434,"name":"onlyAdmin","nameLocation":"281:9:89","nodeType":"ModifierDefinition","parameters":{"id":26422,"nodeType":"ParameterList","parameters":[],"src":"290:2:89"},"src":"272:140:89","virtual":false,"visibility":"internal"},{"body":{"id":26450,"nodeType":"Block","src":"550:43:89","statements":[{"expression":{"arguments":[{"expression":{"id":26446,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"574:3:89","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"574:10:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26445,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7749,"src":"561:12:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":26448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"561:24:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26449,"nodeType":"ExpressionStatement","src":"561:24:89"}]},"id":26451,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":26441,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26436,"src":"510:11:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26442,"name":"encoded_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26438,"src":"523:19:89","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":26443,"modifierName":{"id":26440,"name":"ERC1967Proxy","nodeType":"IdentifierPath","referencedDeclaration":7528,"src":"497:12:89"},"nodeType":"ModifierInvocation","src":"497:46:89"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26436,"mutability":"mutable","name":"_controller","nameLocation":"440:11:89","nodeType":"VariableDeclaration","scope":26451,"src":"432:19:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26435,"name":"address","nodeType":"ElementaryTypeName","src":"432:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26438,"mutability":"mutable","name":"encoded_initializer","nameLocation":"466:19:89","nodeType":"VariableDeclaration","scope":26451,"src":"453:32:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":26437,"name":"bytes","nodeType":"ElementaryTypeName","src":"453:5:89","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"431:55:89"},"returnParameters":{"id":26444,"nodeType":"ParameterList","parameters":[],"src":"550:0:89"},"scope":26487,"src":"420:173:89","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":26459,"nodeType":"Block","src":"659:43:89","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":26456,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[7527],"referencedDeclaration":7527,"src":"677:15:89","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"677:17:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":26455,"id":26458,"nodeType":"Return","src":"670:24:89"}]},"functionSelector":"5c60da1b","id":26460,"implemented":true,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"610:14:89","nodeType":"FunctionDefinition","parameters":{"id":26452,"nodeType":"ParameterList","parameters":[],"src":"624:2:89"},"returnParameters":{"id":26455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26454,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26460,"src":"650:7:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26453,"name":"address","nodeType":"ElementaryTypeName","src":"650:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"649:9:89"},"scope":26487,"src":"601:101:89","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":26485,"nodeType":"Block","src":"844:233:89","statements":[{"assignments":[26470],"declarations":[{"constant":false,"id":26470,"mutability":"mutable","name":"oldImplementation","nameLocation":"863:17:89","nodeType":"VariableDeclaration","scope":26485,"src":"855:25:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26469,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":26473,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":26471,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[7527],"referencedDeclaration":7527,"src":"884:15:89","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"884:17:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"855:46:89"},{"expression":{"arguments":[{"id":26475,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26462,"src":"932:17:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26476,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26464,"src":"951:4:89","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":26477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"957:4:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":26474,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7629,"src":"914:17:89","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":26478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"914:48:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26479,"nodeType":"ExpressionStatement","src":"914:48:89"},{"eventCall":{"arguments":[{"id":26481,"name":"oldImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26470,"src":"1018:17:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26482,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26462,"src":"1051:17:89","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":26480,"name":"LogCoreContractUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6778,"src":"980:23:89","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":26483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"980:89:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26484,"nodeType":"EmitStatement","src":"975:94:89"}]},"functionSelector":"4f1ef286","id":26486,"implemented":true,"kind":"function","modifiers":[{"id":26467,"modifierName":{"id":26466,"name":"onlyAdmin","nodeType":"IdentifierPath","referencedDeclaration":26434,"src":"829:9:89"},"nodeType":"ModifierInvocation","src":"829:9:89"}],"name":"upgradeToAndCall","nameLocation":"719:16:89","nodeType":"FunctionDefinition","parameters":{"id":26465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26462,"mutability":"mutable","name":"newImplementation","nameLocation":"744:17:89","nodeType":"VariableDeclaration","scope":26486,"src":"736:25:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26461,"name":"address","nodeType":"ElementaryTypeName","src":"736:7:89","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26464,"mutability":"mutable","name":"data","nameLocation":"778:4:89","nodeType":"VariableDeclaration","scope":26486,"src":"763:19:89","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":26463,"name":"bytes","nodeType":"ElementaryTypeName","src":"763:5:89","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"735:48:89"},"returnParameters":{"id":26468,"nodeType":"ParameterList","parameters":[],"src":"844:0:89"},"scope":26487,"src":"710:367:89","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":26488,"src":"203:881:89"}],"src":"40:1046:89"},"id":89},"contracts/shared/TransferHelper.sol":{"ast":{"absolutePath":"contracts/shared/TransferHelper.sol","exportedSymbols":{"IERC20":[8831],"TransferHelper":[26659]},"id":26660,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26489,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:90"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":26490,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26660,"sourceUnit":8832,"src":"63:56:90","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":26659,"linearizedBaseContracts":[26659],"name":"TransferHelper","nameLocation":"603:14:90","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":26498,"name":"LogTransferHelperInputValidation1Failed","nameLocation":"631:39:90","nodeType":"EventDefinition","parameters":{"id":26497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26492,"indexed":false,"mutability":"mutable","name":"tokenIsContract","nameLocation":"676:15:90","nodeType":"VariableDeclaration","scope":26498,"src":"671:20:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26491,"name":"bool","nodeType":"ElementaryTypeName","src":"671:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26494,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"701:4:90","nodeType":"VariableDeclaration","scope":26498,"src":"693:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26493,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26496,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"715:2:90","nodeType":"VariableDeclaration","scope":26498,"src":"707:10:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26495,"name":"address","nodeType":"ElementaryTypeName","src":"707:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"670:48:90"},"src":"625:94:90"},{"anonymous":false,"id":26504,"name":"LogTransferHelperInputValidation2Failed","nameLocation":"730:39:90","nodeType":"EventDefinition","parameters":{"id":26503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26500,"indexed":false,"mutability":"mutable","name":"balance","nameLocation":"778:7:90","nodeType":"VariableDeclaration","scope":26504,"src":"770:15:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26499,"name":"uint256","nodeType":"ElementaryTypeName","src":"770:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26502,"indexed":false,"mutability":"mutable","name":"allowance","nameLocation":"795:9:90","nodeType":"VariableDeclaration","scope":26504,"src":"787:17:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26501,"name":"uint256","nodeType":"ElementaryTypeName","src":"787:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"769:36:90"},"src":"724:82:90"},{"anonymous":false,"id":26512,"name":"LogTransferHelperCallFailed","nameLocation":"817:27:90","nodeType":"EventDefinition","parameters":{"id":26511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26506,"indexed":false,"mutability":"mutable","name":"callSuccess","nameLocation":"850:11:90","nodeType":"VariableDeclaration","scope":26512,"src":"845:16:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26505,"name":"bool","nodeType":"ElementaryTypeName","src":"845:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26508,"indexed":false,"mutability":"mutable","name":"returnDataLength","nameLocation":"871:16:90","nodeType":"VariableDeclaration","scope":26512,"src":"863:24:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26507,"name":"uint256","nodeType":"ElementaryTypeName","src":"863:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26510,"indexed":false,"mutability":"mutable","name":"returnData","nameLocation":"895:10:90","nodeType":"VariableDeclaration","scope":26512,"src":"889:16:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":26509,"name":"bytes","nodeType":"ElementaryTypeName","src":"889:5:90","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"844:62:90"},"src":"811:96:90"},{"body":{"id":26657,"nodeType":"Block","src":"1086:1249:90","statements":[{"assignments":[26527],"declarations":[{"constant":false,"id":26527,"mutability":"mutable","name":"tokenAddress","nameLocation":"1139:12:90","nodeType":"VariableDeclaration","scope":26657,"src":"1131:20:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26526,"name":"address","nodeType":"ElementaryTypeName","src":"1131:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":26532,"initialValue":{"arguments":[{"id":26530,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26515,"src":"1162:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":26529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1154:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26528,"name":"address","nodeType":"ElementaryTypeName","src":"1154:7:90","typeDescriptions":{}}},"id":26531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1154:14:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1131:37:90"},{"assignments":[26534],"declarations":[{"constant":false,"id":26534,"mutability":"mutable","name":"tokenIsContract","nameLocation":"1183:15:90","nodeType":"VariableDeclaration","scope":26657,"src":"1178:20:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26533,"name":"bool","nodeType":"ElementaryTypeName","src":"1178:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":26541,"initialValue":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":26535,"name":"tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26527,"src":"1202:12:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"code","nodeType":"MemberAccess","src":"1202:17:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":26537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1202:24:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":26538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1229:1:90","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1202:28:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":26540,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1201:30:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1178:53:90"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26542,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26517,"src":"1245:4:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":26545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:1:90","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":26544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1253:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26543,"name":"address","nodeType":"ElementaryTypeName","src":"1253:7:90","typeDescriptions":{}}},"id":26546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1253:10:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1245:18:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26548,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"1267:2:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":26551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1282:1:90","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":26550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1273:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26549,"name":"address","nodeType":"ElementaryTypeName","src":"1273:7:90","typeDescriptions":{}}},"id":26552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1273:11:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1267:17:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1245:39:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":26556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1288:16:90","subExpression":{"id":26555,"name":"tokenIsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26534,"src":"1289:15:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1245:59:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26567,"nodeType":"IfStatement","src":"1241:187:90","trueBody":{"id":26566,"nodeType":"Block","src":"1306:122:90","statements":[{"eventCall":{"arguments":[{"id":26559,"name":"tokenIsContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26534,"src":"1365:15:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26560,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26517,"src":"1382:4:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26561,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"1388:2:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":26558,"name":"LogTransferHelperInputValidation1Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26498,"src":"1325:39:90","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_address_$_t_address_$returns$__$","typeString":"function (bool,address,address)"}},"id":26562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1325:66:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26563,"nodeType":"EmitStatement","src":"1320:71:90"},{"expression":{"hexValue":"66616c7365","id":26564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1412:5:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":26525,"id":26565,"nodeType":"Return","src":"1405:12:90"}]}},{"assignments":[26569],"declarations":[{"constant":false,"id":26569,"mutability":"mutable","name":"balance","nameLocation":"1489:7:90","nodeType":"VariableDeclaration","scope":26657,"src":"1481:15:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26568,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26574,"initialValue":{"arguments":[{"id":26572,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26517,"src":"1515:4:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26570,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26515,"src":"1499:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":26571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":8788,"src":"1499:15:90","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":26573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1499:21:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1481:39:90"},{"assignments":[26576],"declarations":[{"constant":false,"id":26576,"mutability":"mutable","name":"allowance","nameLocation":"1538:9:90","nodeType":"VariableDeclaration","scope":26657,"src":"1530:17:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26575,"name":"uint256","nodeType":"ElementaryTypeName","src":"1530:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":26585,"initialValue":{"arguments":[{"id":26579,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26517,"src":"1566:4:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":26582,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967268,"src":"1580:4:90","typeDescriptions":{"typeIdentifier":"t_contract$_TransferHelper_$26659","typeString":"library TransferHelper"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransferHelper_$26659","typeString":"library TransferHelper"}],"id":26581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1572:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26580,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:90","typeDescriptions":{}}},"id":26583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1572:13:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26577,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26515,"src":"1550:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"id":26578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":8808,"src":"1550:15:90","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":26584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1550:36:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1530:56:90"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26586,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26569,"src":"1600:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":26587,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26521,"src":"1610:5:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1600:15:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26589,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26576,"src":"1619:9:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":26590,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26521,"src":"1631:5:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1619:17:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1600:36:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26601,"nodeType":"IfStatement","src":"1596:157:90","trueBody":{"id":26600,"nodeType":"Block","src":"1638:115:90","statements":[{"eventCall":{"arguments":[{"id":26594,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26569,"src":"1697:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26595,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26576,"src":"1706:9:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26593,"name":"LogTransferHelperInputValidation2Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26504,"src":"1657:39:90","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":26596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1657:59:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26597,"nodeType":"EmitStatement","src":"1652:64:90"},{"expression":{"hexValue":"66616c7365","id":26598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1737:5:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":26525,"id":26599,"nodeType":"Return","src":"1730:12:90"}]}},{"assignments":[26603,26605],"declarations":[{"constant":false,"id":26603,"mutability":"mutable","name":"callSuccess","nameLocation":"1889:11:90","nodeType":"VariableDeclaration","scope":26657,"src":"1884:16:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26602,"name":"bool","nodeType":"ElementaryTypeName","src":"1884:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26605,"mutability":"mutable","name":"data","nameLocation":"1915:4:90","nodeType":"VariableDeclaration","scope":26657,"src":"1902:17:90","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":26604,"name":"bytes","nodeType":"ElementaryTypeName","src":"1902:5:90","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":26619,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783233623837326464","id":26613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1996:10:90","typeDescriptions":{"typeIdentifier":"t_rational_599290589_by_1","typeString":"int_const 599290589"},"value":"0x23b872dd"},{"id":26614,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26517,"src":"2025:4:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26615,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26519,"src":"2048:2:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26616,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26521,"src":"2069:5:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_599290589_by_1","typeString":"int_const 599290589"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26611,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"1956:3:90","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1956:22:90","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":26617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1956:119:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":26608,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26515,"src":"1931:5:90","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}],"id":26607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1923:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26606,"name":"address","nodeType":"ElementaryTypeName","src":"1923:7:90","typeDescriptions":{}}},"id":26609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1923:14:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","src":"1923:19:90","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":26618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1923:153:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1883:193:90"},{"expression":{"id":26644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26620,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26524,"src":"2087:7:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26621,"name":"callSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26603,"src":"2097:11:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"66616c7365","id":26622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2113:5:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26623,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26605,"src":"2134:4:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":26624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2134:11:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":26625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2149:1:90","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2134:16:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2113:37:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26628,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26605,"src":"2168:4:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":26629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2168:11:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3332","id":26630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2183:2:90","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2168:17:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":26634,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26605,"src":"2200:4:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":26636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2207:4:90","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":26635,"name":"bool","nodeType":"ElementaryTypeName","src":"2207:4:90","typeDescriptions":{}}}],"id":26637,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2206:6:90","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":26632,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"2189:3:90","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"2189:10:90","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":26638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2189:24:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2168:45:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":26640,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2167:47:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2113:101:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":26642,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2112:103:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2097:118:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2087:128:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26645,"nodeType":"ExpressionStatement","src":"2087:128:90"},{"condition":{"id":26647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2230:8:90","subExpression":{"id":26646,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26524,"src":"2231:7:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":26656,"nodeType":"IfStatement","src":"2226:103:90","trueBody":{"id":26655,"nodeType":"Block","src":"2240:89:90","statements":[{"eventCall":{"arguments":[{"id":26649,"name":"callSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26603,"src":"2287:11:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":26650,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26605,"src":"2300:4:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":26651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"2300:11:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26652,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26605,"src":"2313:4:90","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26648,"name":"LogTransferHelperCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26512,"src":"2259:27:90","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bool,uint256,bytes memory)"}},"id":26653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2259:59:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26654,"nodeType":"EmitStatement","src":"2254:64:90"}]}}]},"id":26658,"implemented":true,"kind":"function","modifiers":[],"name":"unifiedTransferFrom","nameLocation":"922:19:90","nodeType":"FunctionDefinition","parameters":{"id":26522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26515,"mutability":"mutable","name":"token","nameLocation":"958:5:90","nodeType":"VariableDeclaration","scope":26658,"src":"951:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":26514,"nodeType":"UserDefinedTypeName","pathNode":{"id":26513,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"951:6:90"},"referencedDeclaration":8831,"src":"951:6:90","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":26517,"mutability":"mutable","name":"from","nameLocation":"981:4:90","nodeType":"VariableDeclaration","scope":26658,"src":"973:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26516,"name":"address","nodeType":"ElementaryTypeName","src":"973:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26519,"mutability":"mutable","name":"to","nameLocation":"1003:2:90","nodeType":"VariableDeclaration","scope":26658,"src":"995:10:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26518,"name":"address","nodeType":"ElementaryTypeName","src":"995:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26521,"mutability":"mutable","name":"value","nameLocation":"1023:5:90","nodeType":"VariableDeclaration","scope":26658,"src":"1015:13:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26520,"name":"uint256","nodeType":"ElementaryTypeName","src":"1015:7:90","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"941:93:90"},"returnParameters":{"id":26525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26524,"mutability":"mutable","name":"success","nameLocation":"1073:7:90","nodeType":"VariableDeclaration","scope":26658,"src":"1068:12:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26523,"name":"bool","nodeType":"ElementaryTypeName","src":"1068:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1067:14:90"},"scope":26659,"src":"913:1422:90","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":26660,"src":"595:1742:90"}],"src":"39:2298:90"},"id":90},"contracts/shared/WithRegistry.sol":{"ast":{"absolutePath":"contracts/shared/WithRegistry.sol","exportedSymbols":{"IRegistry":[5714],"WithRegistry":[26779]},"id":26780,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26661,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:91"},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":26662,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26780,"sourceUnit":5715,"src":"63:65:91","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":26779,"linearizedBaseContracts":[26779],"name":"WithRegistry","nameLocation":"139:12:91","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"7b103999","id":26665,"mutability":"immutable","name":"registry","nameLocation":"439:8:91","nodeType":"VariableDeclaration","scope":26779,"src":"412:35:91","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":26664,"nodeType":"UserDefinedTypeName","pathNode":{"id":26663,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"412:9:91"},"referencedDeclaration":5714,"src":"412:9:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"public"},{"body":{"id":26678,"nodeType":"Block","src":"486:174:91","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26668,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"517:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"517:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"496e7374616e63654f70657261746f7253657276696365","id":26671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"555:25:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""},"value":"InstanceOperatorService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544","typeString":"literal_string \"InstanceOperatorService\""}],"id":26670,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"531:23:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"531:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"517:64:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434d2d3030313a4e4f545f494e5354414e43455f4f50455241544f52","id":26674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"595:37:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_f3a7f4e2a80289cf210a753ae4c4fe18a01cd7346929f84e6c01ed7adb2558b5","typeString":"literal_string \"ERROR:ACM-001:NOT_INSTANCE_OPERATOR\""},"value":"ERROR:ACM-001:NOT_INSTANCE_OPERATOR"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f3a7f4e2a80289cf210a753ae4c4fe18a01cd7346929f84e6c01ed7adb2558b5","typeString":"literal_string \"ERROR:ACM-001:NOT_INSTANCE_OPERATOR\""}],"id":26667,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"496:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"496:146:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26676,"nodeType":"ExpressionStatement","src":"496:146:91"},{"id":26677,"nodeType":"PlaceholderStatement","src":"652:1:91"}]},"id":26679,"name":"onlyInstanceOperator","nameLocation":"463:20:91","nodeType":"ModifierDefinition","parameters":{"id":26666,"nodeType":"ParameterList","parameters":[],"src":"483:2:91"},"src":"454:206:91","virtual":false,"visibility":"internal"},{"body":{"id":26692,"nodeType":"Block","src":"695:161:91","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26682,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"726:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"726:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"4f7261636c6553657276696365","id":26685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"764:15:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""},"value":"OracleService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b10ffebb48b8cc789ab1dfe7a210b91b4cf99b6d74d0c01c069195f8f6b41b06","typeString":"literal_string \"OracleService\""}],"id":26684,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"740:23:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"740:40:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"726:54:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434d2d3030343a4e4f545f4f5241434c455f53455256494345","id":26688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"794:34:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_d677f66d7bfec5af2a8d25ec9362c317211e274b91d9b076b38b11583dfd9b36","typeString":"literal_string \"ERROR:ACM-004:NOT_ORACLE_SERVICE\""},"value":"ERROR:ACM-004:NOT_ORACLE_SERVICE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d677f66d7bfec5af2a8d25ec9362c317211e274b91d9b076b38b11583dfd9b36","typeString":"literal_string \"ERROR:ACM-004:NOT_ORACLE_SERVICE\""}],"id":26681,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"705:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"705:133:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26690,"nodeType":"ExpressionStatement","src":"705:133:91"},{"id":26691,"nodeType":"PlaceholderStatement","src":"848:1:91"}]},"id":26693,"name":"onlyOracleService","nameLocation":"675:17:91","nodeType":"ModifierDefinition","parameters":{"id":26680,"nodeType":"ParameterList","parameters":[],"src":"692:2:91"},"src":"666:190:91","virtual":false,"visibility":"internal"},{"body":{"id":26706,"nodeType":"Block","src":"889:164:91","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26696,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"920:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"920:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"4f7261636c654f776e657253657276696365","id":26699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"958:20:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_5370b1b73ce26fa37372cd254d27657dca183642e751f8b80db759067e223649","typeString":"literal_string \"OracleOwnerService\""},"value":"OracleOwnerService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5370b1b73ce26fa37372cd254d27657dca183642e751f8b80db759067e223649","typeString":"literal_string \"OracleOwnerService\""}],"id":26698,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"934:23:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"934:45:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"920:59:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434d2d3030353a4e4f545f4f5241434c455f4f574e4552","id":26702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"993:32:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f95eab606c31d24b7f40608196d82db71c763d923fa962ad1318b437fa4c528","typeString":"literal_string \"ERROR:ACM-005:NOT_ORACLE_OWNER\""},"value":"ERROR:ACM-005:NOT_ORACLE_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1f95eab606c31d24b7f40608196d82db71c763d923fa962ad1318b437fa4c528","typeString":"literal_string \"ERROR:ACM-005:NOT_ORACLE_OWNER\""}],"id":26695,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"899:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"899:136:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26704,"nodeType":"ExpressionStatement","src":"899:136:91"},{"id":26705,"nodeType":"PlaceholderStatement","src":"1045:1:91"}]},"id":26707,"name":"onlyOracleOwner","nameLocation":"871:15:91","nodeType":"ModifierDefinition","parameters":{"id":26694,"nodeType":"ParameterList","parameters":[],"src":"886:2:91"},"src":"862:191:91","virtual":false,"visibility":"internal"},{"body":{"id":26720,"nodeType":"Block","src":"1087:166:91","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":26710,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"1118:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1118:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"50726f647563744f776e657253657276696365","id":26713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1156:21:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_04eb0524cc50da1dbdab34d277395549b73a25ea653ed26ebf24218d5fe70e69","typeString":"literal_string \"ProductOwnerService\""},"value":"ProductOwnerService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04eb0524cc50da1dbdab34d277395549b73a25ea653ed26ebf24218d5fe70e69","typeString":"literal_string \"ProductOwnerService\""}],"id":26712,"name":"getContractFromRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26748,"src":"1132:23:91","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":26714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1132:46:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1118:60:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a41434d2d3030363a4e4f545f50524f445543545f4f574e4552","id":26716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1192:33:91","typeDescriptions":{"typeIdentifier":"t_stringliteral_87c721089aea7fe34f59e6b44cacf11899e62ae1ac955bcd5783ec78cfda9689","typeString":"literal_string \"ERROR:ACM-006:NOT_PRODUCT_OWNER\""},"value":"ERROR:ACM-006:NOT_PRODUCT_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_87c721089aea7fe34f59e6b44cacf11899e62ae1ac955bcd5783ec78cfda9689","typeString":"literal_string \"ERROR:ACM-006:NOT_PRODUCT_OWNER\""}],"id":26709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1097:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":26717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1097:138:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26718,"nodeType":"ExpressionStatement","src":"1097:138:91"},{"id":26719,"nodeType":"PlaceholderStatement","src":"1245:1:91"}]},"id":26721,"name":"onlyProductOwner","nameLocation":"1068:16:91","nodeType":"ModifierDefinition","parameters":{"id":26708,"nodeType":"ParameterList","parameters":[],"src":"1084:2:91"},"src":"1059:194:91","virtual":false,"visibility":"internal"},{"body":{"id":26732,"nodeType":"Block","src":"1290:48:91","statements":[{"expression":{"id":26730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26726,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26665,"src":"1300:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26728,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26723,"src":"1321:9:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26727,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"1311:9:91","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$5714_$","typeString":"type(contract IRegistry)"}},"id":26729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1311:20:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"src":"1300:31:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26731,"nodeType":"ExpressionStatement","src":"1300:31:91"}]},"id":26733,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26723,"mutability":"mutable","name":"_registry","nameLocation":"1279:9:91","nodeType":"VariableDeclaration","scope":26733,"src":"1271:17:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26722,"name":"address","nodeType":"ElementaryTypeName","src":"1271:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1270:19:91"},"returnParameters":{"id":26725,"nodeType":"ParameterList","parameters":[],"src":"1290:0:91"},"scope":26779,"src":"1259:79:91","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":26747,"nodeType":"Block","src":"1484:60:91","statements":[{"expression":{"id":26745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26740,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26738,"src":"1494:5:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26743,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26735,"src":"1523:13:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":26741,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26665,"src":"1502:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContract","nodeType":"MemberAccess","referencedDeclaration":5687,"src":"1502:20:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":26744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1502:35:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1494:43:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26746,"nodeType":"ExpressionStatement","src":"1494:43:91"}]},"functionSelector":"a5b25e71","id":26748,"implemented":true,"kind":"function","modifiers":[],"name":"getContractFromRegistry","nameLocation":"1353:23:91","nodeType":"FunctionDefinition","parameters":{"id":26736,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26735,"mutability":"mutable","name":"_contractName","nameLocation":"1385:13:91","nodeType":"VariableDeclaration","scope":26748,"src":"1377:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1377:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1376:23:91"},"returnParameters":{"id":26739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26738,"mutability":"mutable","name":"_addr","nameLocation":"1473:5:91","nodeType":"VariableDeclaration","scope":26748,"src":"1465:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26737,"name":"address","nodeType":"ElementaryTypeName","src":"1465:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1464:15:91"},"scope":26779,"src":"1344:200:91","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":26765,"nodeType":"Block","src":"1699:79:91","statements":[{"expression":{"id":26763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26757,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26755,"src":"1709:5:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":26760,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26750,"src":"1747:8:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":26761,"name":"_contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26752,"src":"1757:13:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":26758,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26665,"src":"1717:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContractInRelease","nodeType":"MemberAccess","referencedDeclaration":5680,"src":"1717:29:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) view external returns (address)"}},"id":26762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1717:54:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1709:62:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":26764,"nodeType":"ExpressionStatement","src":"1709:62:91"}]},"id":26766,"implemented":true,"kind":"function","modifiers":[],"name":"getContractInReleaseFromRegistry","nameLocation":"1559:32:91","nodeType":"FunctionDefinition","parameters":{"id":26753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26750,"mutability":"mutable","name":"_release","nameLocation":"1600:8:91","nodeType":"VariableDeclaration","scope":26766,"src":"1592:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1592:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":26752,"mutability":"mutable","name":"_contractName","nameLocation":"1618:13:91","nodeType":"VariableDeclaration","scope":26766,"src":"1610:21:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1610:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1591:41:91"},"returnParameters":{"id":26756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26755,"mutability":"mutable","name":"_addr","nameLocation":"1688:5:91","nodeType":"VariableDeclaration","scope":26766,"src":"1680:13:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26754,"name":"address","nodeType":"ElementaryTypeName","src":"1680:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1679:15:91"},"scope":26779,"src":"1550:228:91","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":26777,"nodeType":"Block","src":"1859:49:91","statements":[{"expression":{"id":26775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":26771,"name":"_release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26769,"src":"1869:8:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":26772,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26665,"src":"1880:8:91","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":26773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRelease","nodeType":"MemberAccess","referencedDeclaration":5692,"src":"1880:19:91","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":26774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1880:21:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1869:32:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":26776,"nodeType":"ExpressionStatement","src":"1869:32:91"}]},"id":26778,"implemented":true,"kind":"function","modifiers":[],"name":"getReleaseFromRegistry","nameLocation":"1793:22:91","nodeType":"FunctionDefinition","parameters":{"id":26767,"nodeType":"ParameterList","parameters":[],"src":"1815:2:91"},"returnParameters":{"id":26770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26769,"mutability":"mutable","name":"_release","nameLocation":"1849:8:91","nodeType":"VariableDeclaration","scope":26778,"src":"1841:16:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1841:7:91","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1840:18:91"},"scope":26779,"src":"1784:124:91","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":26780,"src":"130:1780:91"}],"src":"39:1872:91"},"id":91},"contracts/test/TestCoin.sol":{"ast":{"absolutePath":"contracts/test/TestCoin.sol","exportedSymbols":{"Context":[10518],"ERC20":[8753],"IERC20":[8831],"IERC20Metadata":[8856],"TestCoin":[26810],"TestCoinX":[26838]},"id":26839,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26781,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:92"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":26782,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26839,"sourceUnit":8754,"src":"66:55:92","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26783,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"146:5:92"},"id":26784,"nodeType":"InheritanceSpecifier","src":"146:5:92"}],"contractDependencies":[8753,8831,8856,10518],"contractKind":"contract","fullyImplemented":true,"id":26810,"linearizedBaseContracts":[26810,8753,8856,8831,10518],"name":"TestCoin","nameLocation":"134:8:92","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":26787,"mutability":"constant","name":"NAME","nameLocation":"184:4:92","nodeType":"VariableDeclaration","scope":26810,"src":"161:42:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26785,"name":"string","nodeType":"ElementaryTypeName","src":"161:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"546573742044756d6d79","id":26786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"191:12:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_d92c7e80c7e0511acb00e5cc9dfd1dfa061ae58fd11b1e7b920c4ff279ba2149","typeString":"literal_string \"Test Dummy\""},"value":"Test Dummy"},"visibility":"public"},{"constant":true,"functionSelector":"f76f8d78","id":26790,"mutability":"constant","name":"SYMBOL","nameLocation":"233:6:92","nodeType":"VariableDeclaration","scope":26810,"src":"210:37:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26788,"name":"string","nodeType":"ElementaryTypeName","src":"210:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"544459","id":26789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"242:5:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_004af10049653c704ac6f1b2bc023dd9f0dfb627aec0912ea505bfdd2845eef3","typeString":"literal_string \"TDY\""},"value":"TDY"},"visibility":"public"},{"constant":true,"functionSelector":"2ff2e9dc","id":26795,"mutability":"constant","name":"INITIAL_SUPPLY","nameLocation":"280:14:92","nodeType":"VariableDeclaration","scope":26810,"src":"256:47:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26791,"name":"uint256","nodeType":"ElementaryTypeName","src":"256:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"},"id":26794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":26792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"297:2:92","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":26793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"301:2:92","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"297:6:92","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"}},"visibility":"public"},{"body":{"id":26808,"nodeType":"Block","src":"360:91:92","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26803,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"391:10:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"391:12:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26805,"name":"INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26795,"src":"418:14:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26802,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"371:5:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":26806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"371:72:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26807,"nodeType":"ExpressionStatement","src":"371:72:92"}]},"id":26809,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":26798,"name":"NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26787,"src":"341:4:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26799,"name":"SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26790,"src":"347:6:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":26800,"modifierName":{"id":26797,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"335:5:92"},"nodeType":"ModifierInvocation","src":"335:19:92"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26796,"nodeType":"ParameterList","parameters":[],"src":"323:2:92"},"returnParameters":{"id":26801,"nodeType":"ParameterList","parameters":[],"src":"360:0:92"},"scope":26810,"src":"312:139:92","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":26839,"src":"125:329:92"},{"abstract":false,"baseContracts":[{"baseName":{"id":26811,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"480:5:92"},"id":26812,"nodeType":"InheritanceSpecifier","src":"480:5:92"}],"contractDependencies":[8753,8831,8856,10518],"contractKind":"contract","fullyImplemented":true,"id":26838,"linearizedBaseContracts":[26838,8753,8856,8831,10518],"name":"TestCoinX","nameLocation":"467:9:92","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":26815,"mutability":"constant","name":"NAME","nameLocation":"518:4:92","nodeType":"VariableDeclaration","scope":26838,"src":"495:44:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26813,"name":"string","nodeType":"ElementaryTypeName","src":"495:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"546573742044756d6d792058","id":26814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"525:14:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_a30ac64b7d6e6ff167c2e60e6a29fb2c9ee94154569a03703430822e25699e9b","typeString":"literal_string \"Test Dummy X\""},"value":"Test Dummy X"},"visibility":"public"},{"constant":true,"functionSelector":"f76f8d78","id":26818,"mutability":"constant","name":"SYMBOL","nameLocation":"569:6:92","nodeType":"VariableDeclaration","scope":26838,"src":"546:37:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26816,"name":"string","nodeType":"ElementaryTypeName","src":"546:6:92","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"544458","id":26817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"578:5:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_511eea2d30970d4c48faad7052d30e893c13eff5d8ac0180bdf8d28babd3c979","typeString":"literal_string \"TDX\""},"value":"TDX"},"visibility":"public"},{"constant":true,"functionSelector":"2ff2e9dc","id":26823,"mutability":"constant","name":"INITIAL_SUPPLY","nameLocation":"616:14:92","nodeType":"VariableDeclaration","scope":26838,"src":"592:47:92","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26819,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"},"id":26822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":26820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"633:2:92","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":26821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"637:2:92","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"633:6:92","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"}},"visibility":"public"},{"body":{"id":26836,"nodeType":"Block","src":"696:91:92","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26831,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"727:10:92","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"727:12:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26833,"name":"INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26823,"src":"754:14:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26830,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"707:5:92","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":26834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"707:72:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26835,"nodeType":"ExpressionStatement","src":"707:72:92"}]},"id":26837,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":26826,"name":"NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26815,"src":"677:4:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26827,"name":"SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26818,"src":"683:6:92","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":26828,"modifierName":{"id":26825,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"671:5:92"},"nodeType":"ModifierInvocation","src":"671:19:92"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26824,"nodeType":"ParameterList","parameters":[],"src":"659:2:92"},"returnParameters":{"id":26829,"nodeType":"ParameterList","parameters":[],"src":"696:0:92"},"scope":26838,"src":"648:139:92","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":26839,"src":"458:332:92"}],"src":"40:752:92"},"id":92},"contracts/test/TestCoinAlternativeImplementation.sol":{"ast":{"absolutePath":"contracts/test/TestCoinAlternativeImplementation.sol","exportedSymbols":{"Context":[10518],"ERC20":[8753],"IERC20":[8831],"IERC20Metadata":[8856],"TestCoinAlternativeImplementation":[26931]},"id":26932,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26840,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:93"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":26841,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":26932,"sourceUnit":8754,"src":"66:55:93","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26842,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"171:5:93"},"id":26843,"nodeType":"InheritanceSpecifier","src":"171:5:93"}],"contractDependencies":[8753,8831,8856,10518],"contractKind":"contract","fullyImplemented":true,"id":26931,"linearizedBaseContracts":[26931,8753,8856,8831,10518],"name":"TestCoinAlternativeImplementation","nameLocation":"134:33:93","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":26846,"mutability":"constant","name":"NAME","nameLocation":"209:4:93","nodeType":"VariableDeclaration","scope":26931,"src":"186:53:93","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26844,"name":"string","nodeType":"ElementaryTypeName","src":"186:6:93","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5465737420416c7465726e617469766520436f696e","id":26845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"216:23:93","typeDescriptions":{"typeIdentifier":"t_stringliteral_9334db555e7dc96d7bf2d7b340796de636a17721664d194dfe372ce0bd20ac70","typeString":"literal_string \"Test Alternative Coin\""},"value":"Test Alternative Coin"},"visibility":"public"},{"constant":true,"functionSelector":"f76f8d78","id":26849,"mutability":"constant","name":"SYMBOL","nameLocation":"269:6:93","nodeType":"VariableDeclaration","scope":26931,"src":"246:37:93","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26847,"name":"string","nodeType":"ElementaryTypeName","src":"246:6:93","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"544143","id":26848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"278:5:93","typeDescriptions":{"typeIdentifier":"t_stringliteral_cffd0ea64537799d5f8d9783f7a9d3b5b31fcb1bad21cb12aaabea52c6f7a507","typeString":"literal_string \"TAC\""},"value":"TAC"},"visibility":"public"},{"constant":true,"functionSelector":"2ff2e9dc","id":26854,"mutability":"constant","name":"INITIAL_SUPPLY","nameLocation":"316:14:93","nodeType":"VariableDeclaration","scope":26931,"src":"292:47:93","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26850,"name":"uint256","nodeType":"ElementaryTypeName","src":"292:7:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"},"id":26853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":26851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"333:2:93","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":26852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"337:2:93","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"333:6:93","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"}},"visibility":"public"},{"body":{"id":26867,"nodeType":"Block","src":"396:91:93","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":26862,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"427:10:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"427:12:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26864,"name":"INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26854,"src":"454:14:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":26861,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8570,"src":"407:5:93","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":26865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"407:72:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26866,"nodeType":"ExpressionStatement","src":"407:72:93"}]},"id":26868,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":26857,"name":"NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26846,"src":"377:4:93","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26858,"name":"SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26849,"src":"383:6:93","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":26859,"modifierName":{"id":26856,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"371:5:93"},"nodeType":"ModifierInvocation","src":"371:19:93"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":26855,"nodeType":"ParameterList","parameters":[],"src":"359:2:93"},"returnParameters":{"id":26860,"nodeType":"ParameterList","parameters":[],"src":"396:0:93"},"scope":26931,"src":"348:139:93","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[8367],"body":{"id":26929,"nodeType":"Block","src":"713:601:93","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":26892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26881,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26870,"src":"738:5:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26880,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8266,"src":"728:9:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":26882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"728:16:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":26883,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"748:6:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"728:26:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26886,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26870,"src":"830:5:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":26887,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967281,"src":"837:3:93","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":26888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"837:10:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":26885,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"820:9:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":26889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"820:28:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":26890,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"852:6:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"820:38:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"728:130:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":26897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":26894,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26872,"src":"921:3:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26893,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8266,"src":"911:9:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":26895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"911:14:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":26896,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"928:6:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"911:23:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[{"id":26899,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26872,"src":"948:3:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":26898,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8266,"src":"938:9:93","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":26900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"938:14:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"911:41:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"728:224:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26903,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26870,"src":"989:5:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":26906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1006:1:93","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":26905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"998:7:93","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26904,"name":"address","nodeType":"ElementaryTypeName","src":"998:7:93","typeDescriptions":{}}},"id":26907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"998:10:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"989:19:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"728:280:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":26915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":26910,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26872,"src":"1078:3:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":26913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1093:1:93","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":26912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1085:7:93","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":26911,"name":"address","nodeType":"ElementaryTypeName","src":"1085:7:93","typeDescriptions":{}}},"id":26914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1085:10:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1078:17:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"728:367:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":26927,"nodeType":"Block","src":"1266:41:93","statements":[{"expression":{"hexValue":"66616c7365","id":26925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1289:5:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":26879,"id":26926,"nodeType":"Return","src":"1282:12:93"}]},"id":26928,"nodeType":"IfStatement","src":"724:583:93","trueBody":{"id":26924,"nodeType":"Block","src":"1163:97:93","statements":[{"expression":{"arguments":[{"id":26919,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26870,"src":"1204:5:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26920,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26872,"src":"1211:3:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26921,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"1216:6:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26917,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967271,"src":"1185:5:93","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TestCoinAlternativeImplementation_$26931_$","typeString":"type(contract super TestCoinAlternativeImplementation)"}},"id":26918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":8367,"src":"1185:18:93","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":26922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1185:38:93","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":26879,"id":26923,"nodeType":"Return","src":"1178:45:93"}]}}]},"functionSelector":"23b872dd","id":26930,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"605:12:93","nodeType":"FunctionDefinition","overrides":{"id":26876,"nodeType":"OverrideSpecifier","overrides":[],"src":"683:8:93"},"parameters":{"id":26875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26870,"mutability":"mutable","name":"_from","nameLocation":"626:5:93","nodeType":"VariableDeclaration","scope":26930,"src":"618:13:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26869,"name":"address","nodeType":"ElementaryTypeName","src":"618:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26872,"mutability":"mutable","name":"_to","nameLocation":"641:3:93","nodeType":"VariableDeclaration","scope":26930,"src":"633:11:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26871,"name":"address","nodeType":"ElementaryTypeName","src":"633:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26874,"mutability":"mutable","name":"_value","nameLocation":"651:6:93","nodeType":"VariableDeclaration","scope":26930,"src":"646:11:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26873,"name":"uint","nodeType":"ElementaryTypeName","src":"646:4:93","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"617:41:93"},"returnParameters":{"id":26879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":26930,"src":"701:4:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26877,"name":"bool","nodeType":"ElementaryTypeName","src":"701:4:93","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"700:6:93"},"scope":26931,"src":"596:718:93","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":26932,"src":"125:1192:93"}],"src":"40:1279:93"},"id":93},"contracts/test/TestCompromisedProduct.sol":{"ast":{"absolutePath":"contracts/test/TestCompromisedProduct.sol","exportedSymbols":{"Context":[10518],"ERC20":[8753],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC20Metadata":[8856],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"TestCompromisedProduct":[27454]},"id":27455,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":26933,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:94"},{"absolutePath":"@etherisc/gif-interface/contracts/components/IComponent.sol","file":"@etherisc/gif-interface/contracts/components/IComponent.sol","id":26934,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":2989,"src":"66:69:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/IProduct.sol","file":"@etherisc/gif-interface/contracts/components/IProduct.sol","id":26935,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":3080,"src":"137:67:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IAccess.sol","file":"@etherisc/gif-interface/contracts/modules/IAccess.sol","id":26936,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":4837,"src":"208:63:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":26937,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":5434,"src":"273:63:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","file":"@etherisc/gif-interface/contracts/modules/IRegistry.sol","id":26938,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":5715,"src":"338:65:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","file":"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol","id":26939,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":6010,"src":"407:79:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","file":"@etherisc/gif-interface/contracts/services/IProductService.sol","id":26940,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":6665,"src":"488:72:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","id":26941,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":6510,"src":"562:73:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":26942,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":7482,"src":"639:52:94","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":26943,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27455,"sourceUnit":8754,"src":"693:55:94","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":26944,"name":"IProduct","nodeType":"IdentifierPath","referencedDeclaration":3079,"src":"1157:8:94"},"id":26945,"nodeType":"InheritanceSpecifier","src":"1157:8:94"},{"baseName":{"id":26946,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"1172:7:94"},"id":26947,"nodeType":"InheritanceSpecifier","src":"1172:7:94"}],"contractDependencies":[2988,3079,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":27454,"linearizedBaseContracts":[27454,7481,10518,3079,2988],"name":"TestCompromisedProduct","nameLocation":"1125:22:94","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"3b5284b6","id":26953,"mutability":"constant","name":"FAKE_STATE","nameLocation":"1231:10:94","nodeType":"VariableDeclaration","scope":27454,"src":"1189:87:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":26949,"nodeType":"UserDefinedTypeName","pathNode":{"id":26948,"name":"IComponent.ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"1189:25:94"},"referencedDeclaration":2899,"src":"1189:25:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"value":{"expression":{"expression":{"id":26950,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"1244:10:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":26951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"1244:25:94","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":26952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"1244:32:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"public"},{"constant":true,"functionSelector":"09128d83","id":26956,"mutability":"constant","name":"POLICY_FLOW","nameLocation":"1313:11:94","nodeType":"VariableDeclaration","scope":27454,"src":"1289:57:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6c69637944656661756c74466c6f77","id":26955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1327:19:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c6194c52a3447410e4616772f780a88c4ac5f0b731d2fc7e7979c603182714e","typeString":"literal_string \"PolicyDefaultFlow\""},"value":"PolicyDefaultFlow"},"visibility":"public"},{"constant":false,"id":26958,"mutability":"mutable","name":"_componentName","nameLocation":"1371:14:94","nodeType":"VariableDeclaration","scope":27454,"src":"1355:30:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1355:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"constant":false,"id":26960,"mutability":"mutable","name":"_tokenAddress","nameLocation":"1408:13:94","nodeType":"VariableDeclaration","scope":27454,"src":"1392:29:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26959,"name":"address","nodeType":"ElementaryTypeName","src":"1392:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":26962,"mutability":"mutable","name":"_componentId","nameLocation":"1444:12:94","nodeType":"VariableDeclaration","scope":27454,"src":"1428:28:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26961,"name":"uint256","nodeType":"ElementaryTypeName","src":"1428:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":26964,"mutability":"mutable","name":"_riskpoolId","nameLocation":"1479:11:94","nodeType":"VariableDeclaration","scope":27454,"src":"1463:27:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26963,"name":"uint256","nodeType":"ElementaryTypeName","src":"1463:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":26967,"mutability":"mutable","name":"_registry","nameLocation":"1521:9:94","nodeType":"VariableDeclaration","scope":27454,"src":"1503:27:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":26966,"nodeType":"UserDefinedTypeName","pathNode":{"id":26965,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"1503:9:94"},"referencedDeclaration":5714,"src":"1503:9:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"private"},{"constant":false,"id":26970,"mutability":"mutable","name":"_access","nameLocation":"1553:7:94","nodeType":"VariableDeclaration","scope":27454,"src":"1537:23:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"},"typeName":{"id":26969,"nodeType":"UserDefinedTypeName","pathNode":{"id":26968,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"1537:7:94"},"referencedDeclaration":4836,"src":"1537:7:94","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"visibility":"private"},{"constant":false,"id":26973,"mutability":"mutable","name":"_componentOwnerService","nameLocation":"1598:22:94","nodeType":"VariableDeclaration","scope":27454,"src":"1567:53:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":26972,"nodeType":"UserDefinedTypeName","pathNode":{"id":26971,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"1567:22:94"},"referencedDeclaration":6009,"src":"1567:22:94","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"private"},{"constant":false,"id":26976,"mutability":"mutable","name":"_instanceService","nameLocation":"1652:16:94","nodeType":"VariableDeclaration","scope":27454,"src":"1627:41:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":26975,"nodeType":"UserDefinedTypeName","pathNode":{"id":26974,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"1627:16:94"},"referencedDeclaration":6509,"src":"1627:16:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"private"},{"constant":false,"id":26978,"mutability":"mutable","name":"_policyFlow","nameLocation":"1691:11:94","nodeType":"VariableDeclaration","scope":27454,"src":"1675:27:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26977,"name":"address","nodeType":"ElementaryTypeName","src":"1675:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":26981,"mutability":"mutable","name":"_productService","nameLocation":"1733:15:94","nodeType":"VariableDeclaration","scope":27454,"src":"1709:39:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"},"typeName":{"id":26980,"nodeType":"UserDefinedTypeName","pathNode":{"id":26979,"name":"IProductService","nodeType":"IdentifierPath","referencedDeclaration":6664,"src":"1709:15:94"},"referencedDeclaration":6664,"src":"1709:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"visibility":"private"},{"constant":false,"id":26983,"mutability":"mutable","name":"_policies","nameLocation":"1773:9:94","nodeType":"VariableDeclaration","scope":27454,"src":"1757:25:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26982,"name":"uint256","nodeType":"ElementaryTypeName","src":"1757:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":26985,"mutability":"mutable","name":"_claims","nameLocation":"1805:7:94","nodeType":"VariableDeclaration","scope":27454,"src":"1789:23:94","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26984,"name":"uint256","nodeType":"ElementaryTypeName","src":"1789:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":27006,"nodeType":"Block","src":"1865:224:94","statements":[{"assignments":[26990],"declarations":[{"constant":false,"id":26990,"mutability":"mutable","name":"policyHolder","nameLocation":"1884:12:94","nodeType":"VariableDeclaration","scope":27006,"src":"1876:20:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26989,"name":"address","nodeType":"ElementaryTypeName","src":"1876:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":26996,"initialValue":{"expression":{"arguments":[{"id":26993,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26987,"src":"1928:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":26991,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26976,"src":"1899:16:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":26992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getMetadata","nodeType":"MemberAccess","referencedDeclaration":6428,"src":"1899:28:94","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Metadata_$5248_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Metadata memory)"}},"id":26994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1899:38:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$5248_memory_ptr","typeString":"struct IPolicy.Metadata memory"}},"id":26995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"1899:44:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1876:67:94"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":27001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":26998,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1976:10:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":26999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1976:12:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":27000,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26990,"src":"1992:12:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1976:28:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5443502d313a494e56414c49445f504f4c4943595f4f525f484f4c444552","id":27002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2020:38:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_45b7c023a985c9e867fb92bc16a50e3a4287536d298108f611ee335f5fdad6ba","typeString":"literal_string \"ERROR:TCP-1:INVALID_POLICY_OR_HOLDER\""},"value":"ERROR:TCP-1:INVALID_POLICY_OR_HOLDER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45b7c023a985c9e867fb92bc16a50e3a4287536d298108f611ee335f5fdad6ba","typeString":"literal_string \"ERROR:TCP-1:INVALID_POLICY_OR_HOLDER\""}],"id":26997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1954:7:94","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":27003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1954:115:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27004,"nodeType":"ExpressionStatement","src":"1954:115:94"},{"id":27005,"nodeType":"PlaceholderStatement","src":"2080:1:94"}]},"id":27007,"name":"onlyPolicyHolder","nameLocation":"1830:16:94","nodeType":"ModifierDefinition","parameters":{"id":26988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26987,"mutability":"mutable","name":"policyId","nameLocation":"1855:8:94","nodeType":"VariableDeclaration","scope":27007,"src":"1847:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":26986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1847:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1846:18:94"},"src":"1821:268:94","virtual":false,"visibility":"internal"},{"body":{"id":27070,"nodeType":"Block","src":"2306:475:94","statements":[{"expression":{"id":27024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27022,"name":"_componentName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26958,"src":"2318:14:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27023,"name":"fakeProductName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27009,"src":"2335:15:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2318:32:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27025,"nodeType":"ExpressionStatement","src":"2318:32:94"},{"expression":{"id":27028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27026,"name":"_tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26960,"src":"2361:13:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27027,"name":"tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27011,"src":"2377:12:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2361:28:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":27029,"nodeType":"ExpressionStatement","src":"2361:28:94"},{"expression":{"id":27032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27030,"name":"_componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26962,"src":"2400:12:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27031,"name":"fakeComponentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27013,"src":"2415:15:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2400:30:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27033,"nodeType":"ExpressionStatement","src":"2400:30:94"},{"expression":{"id":27036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27034,"name":"_riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26964,"src":"2441:11:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27035,"name":"fakeRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27015,"src":"2455:14:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2441:28:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27037,"nodeType":"ExpressionStatement","src":"2441:28:94"},{"expression":{"id":27042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27038,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26967,"src":"2482:9:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27040,"name":"registryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27017,"src":"2504:15:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27039,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5714,"src":"2494:9:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$5714_$","typeString":"type(contract IRegistry)"}},"id":27041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2494:26:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"src":"2482:38:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":27043,"nodeType":"ExpressionStatement","src":"2482:38:94"},{"expression":{"id":27047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27044,"name":"_access","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26970,"src":"2531:7:94","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":27045,"name":"_getAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27401,"src":"2541:10:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IAccess_$4836_$","typeString":"function () view returns (contract IAccess)"}},"id":27046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2541:12:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"src":"2531:22:94","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"id":27048,"nodeType":"ExpressionStatement","src":"2531:22:94"},{"expression":{"id":27052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27049,"name":"_componentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26973,"src":"2564:22:94","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":27050,"name":"_getComponentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27427,"src":"2589:25:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IComponentOwnerService_$6009_$","typeString":"function () view returns (contract IComponentOwnerService)"}},"id":27051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2589:27:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"src":"2564:52:94","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"id":27053,"nodeType":"ExpressionStatement","src":"2564:52:94"},{"expression":{"id":27057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27054,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26976,"src":"2627:16:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":27055,"name":"_getInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27414,"src":"2646:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IInstanceService_$6509_$","typeString":"function () view returns (contract IInstanceService)"}},"id":27056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2646:21:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"src":"2627:40:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":27058,"nodeType":"ExpressionStatement","src":"2627:40:94"},{"expression":{"id":27063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27059,"name":"_policyFlow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26978,"src":"2678:11:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27061,"name":"POLICY_FLOW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26956,"src":"2712:11:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27060,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"2692:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2692:32:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2678:46:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":27064,"nodeType":"ExpressionStatement","src":"2678:46:94"},{"expression":{"id":27068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27065,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"2735:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":27066,"name":"_getProductService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27440,"src":"2753:18:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IProductService_$6664_$","typeString":"function () view returns (contract IProductService)"}},"id":27067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2753:20:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"src":"2735:38:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27069,"nodeType":"ExpressionStatement","src":"2735:38:94"}]},"id":27071,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":27020,"modifierName":{"id":27019,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"2291:7:94"},"nodeType":"ModifierInvocation","src":"2291:9:94"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":27018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27009,"mutability":"mutable","name":"fakeProductName","nameLocation":"2127:15:94","nodeType":"VariableDeclaration","scope":27071,"src":"2119:23:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2119:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27011,"mutability":"mutable","name":"tokenAddress","nameLocation":"2161:12:94","nodeType":"VariableDeclaration","scope":27071,"src":"2153:20:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27010,"name":"address","nodeType":"ElementaryTypeName","src":"2153:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27013,"mutability":"mutable","name":"fakeComponentId","nameLocation":"2192:15:94","nodeType":"VariableDeclaration","scope":27071,"src":"2184:23:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27012,"name":"uint256","nodeType":"ElementaryTypeName","src":"2184:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27015,"mutability":"mutable","name":"fakeRiskpoolId","nameLocation":"2226:14:94","nodeType":"VariableDeclaration","scope":27071,"src":"2218:22:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27014,"name":"uint256","nodeType":"ElementaryTypeName","src":"2218:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27017,"mutability":"mutable","name":"registryAddress","nameLocation":"2259:15:94","nodeType":"VariableDeclaration","scope":27071,"src":"2251:23:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27016,"name":"address","nodeType":"ElementaryTypeName","src":"2251:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2108:173:94"},"returnParameters":{"id":27021,"nodeType":"ParameterList","parameters":[],"src":"2306:0:94"},"scope":27454,"src":"2097:684:94","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":27109,"nodeType":"Block","src":"3032:358:94","statements":[{"assignments":[27085],"declarations":[{"constant":false,"id":27085,"mutability":"mutable","name":"policyHolder","nameLocation":"3059:12:94","nodeType":"VariableDeclaration","scope":27109,"src":"3043:28:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":27084,"name":"address","nodeType":"ElementaryTypeName","src":"3043:15:94","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":27091,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":27088,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3082:10:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":27089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3082:12:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3074:8:94","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":27086,"name":"address","nodeType":"ElementaryTypeName","src":"3074:8:94","stateMutability":"payable","typeDescriptions":{}}},"id":27090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3074:21:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"3043:52:94"},{"expression":{"id":27101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27092,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27082,"src":"3158:9:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27095,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27085,"src":"3215:12:94","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":27096,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27073,"src":"3243:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27097,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27075,"src":"3266:10:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27098,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27077,"src":"3292:8:94","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":27099,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27079,"src":"3316:15:94","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":27093,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"3170:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newApplication","nodeType":"MemberAccess","referencedDeclaration":6536,"src":"3170:30:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) external returns (bytes32)"}},"id":27100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3170:162:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3158:174:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27102,"nodeType":"ExpressionStatement","src":"3158:174:94"},{"expression":{"arguments":[{"id":27106,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27082,"src":"3372:9:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27103,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"3345:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"underwrite","nodeType":"MemberAccess","referencedDeclaration":6570,"src":"3345:26:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) external returns (bool)"}},"id":27107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3345:37:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27108,"nodeType":"ExpressionStatement","src":"3345:37:94"}]},"functionSelector":"e6f95edd","id":27110,"implemented":true,"kind":"function","modifiers":[],"name":"applyForPolicy","nameLocation":"2798:14:94","nodeType":"FunctionDefinition","parameters":{"id":27080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27073,"mutability":"mutable","name":"premium","nameLocation":"2831:7:94","nodeType":"VariableDeclaration","scope":27110,"src":"2823:15:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27072,"name":"uint256","nodeType":"ElementaryTypeName","src":"2823:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27075,"mutability":"mutable","name":"sumInsured","nameLocation":"2858:10:94","nodeType":"VariableDeclaration","scope":27110,"src":"2850:18:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27074,"name":"uint256","nodeType":"ElementaryTypeName","src":"2850:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27077,"mutability":"mutable","name":"metaData","nameLocation":"2894:8:94","nodeType":"VariableDeclaration","scope":27110,"src":"2879:23:94","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27076,"name":"bytes","nodeType":"ElementaryTypeName","src":"2879:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":27079,"mutability":"mutable","name":"applicationData","nameLocation":"2928:15:94","nodeType":"VariableDeclaration","scope":27110,"src":"2913:30:94","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27078,"name":"bytes","nodeType":"ElementaryTypeName","src":"2913:5:94","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2812:138:94"},"returnParameters":{"id":27083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27082,"mutability":"mutable","name":"processId","nameLocation":"3015:9:94","nodeType":"VariableDeclaration","scope":27110,"src":"3007:17:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3007:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3006:19:94"},"scope":27454,"src":"2789:601:94","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":27133,"nodeType":"Block","src":"3465:167:94","statements":[{"assignments":[27119],"declarations":[{"constant":false,"id":27119,"mutability":"mutable","name":"policy","nameLocation":"3498:6:94","nodeType":"VariableDeclaration","scope":27133,"src":"3476:28:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy"},"typeName":{"id":27118,"nodeType":"UserDefinedTypeName","pathNode":{"id":27117,"name":"IPolicy.Policy","nodeType":"IdentifierPath","referencedDeclaration":5282,"src":"3476:14:94"},"referencedDeclaration":5282,"src":"3476:14:94","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_storage_ptr","typeString":"struct IPolicy.Policy"}},"visibility":"internal"}],"id":27124,"initialValue":{"arguments":[{"id":27122,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27112,"src":"3534:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27120,"name":"_instanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26976,"src":"3507:16:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"id":27121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPolicy","nodeType":"MemberAccess","referencedDeclaration":6444,"src":"3507:26:94","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Policy_$5282_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IPolicy.Policy memory)"}},"id":27123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3507:36:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"nodeType":"VariableDeclarationStatement","src":"3476:67:94"},{"expression":{"arguments":[{"id":27128,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27112,"src":"3585:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":27129,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27119,"src":"3595:6:94","typeDescriptions":{"typeIdentifier":"t_struct$_Policy_$5282_memory_ptr","typeString":"struct IPolicy.Policy memory"}},"id":27130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"premiumExpectedAmount","nodeType":"MemberAccess","referencedDeclaration":5267,"src":"3595:28:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27125,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"3554:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"collectPremium","nodeType":"MemberAccess","referencedDeclaration":6549,"src":"3554:30:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (bool,uint256,uint256)"}},"id":27131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3554:70:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"id":27132,"nodeType":"ExpressionStatement","src":"3554:70:94"}]},"functionSelector":"b9ea8d66","id":27134,"implemented":true,"kind":"function","modifiers":[],"name":"collectPremium","nameLocation":"3407:14:94","nodeType":"FunctionDefinition","parameters":{"id":27113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27112,"mutability":"mutable","name":"policyId","nameLocation":"3430:8:94","nodeType":"VariableDeclaration","scope":27134,"src":"3422:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3422:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3421:18:94"},"returnParameters":{"id":27114,"nodeType":"ParameterList","parameters":[],"src":"3465:0:94"},"scope":27454,"src":"3398:234:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27188,"nodeType":"Block","src":"3760:476:94","statements":[{"expression":{"id":27146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27144,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26985,"src":"3807:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":27145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3818:1:94","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3807:12:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27147,"nodeType":"ExpressionStatement","src":"3807:12:94"},{"assignments":[27149],"declarations":[{"constant":false,"id":27149,"mutability":"mutable","name":"claimId","nameLocation":"3888:7:94","nodeType":"VariableDeclaration","scope":27188,"src":"3880:15:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27148,"name":"uint256","nodeType":"ElementaryTypeName","src":"3880:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27159,"initialValue":{"arguments":[{"id":27152,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27136,"src":"3923:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27153,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27138,"src":"3933:11:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":27156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3957:1:94","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":27154,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"3946:3:94","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"3946:10:94","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":27157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3946:13:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":27150,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"3898:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newClaim","nodeType":"MemberAccess","referencedDeclaration":6596,"src":"3898:24:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) external returns (uint256)"}},"id":27158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:62:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3880:80:94"},{"expression":{"arguments":[{"id":27163,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27136,"src":"4000:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27164,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27149,"src":"4010:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27165,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27138,"src":"4019:11:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27160,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"3971:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"confirmClaim","nodeType":"MemberAccess","referencedDeclaration":6605,"src":"3971:28:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256) external"}},"id":27166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3971:60:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27167,"nodeType":"ExpressionStatement","src":"3971:60:94"},{"assignments":[27169],"declarations":[{"constant":false,"id":27169,"mutability":"mutable","name":"payoutId","nameLocation":"4085:8:94","nodeType":"VariableDeclaration","scope":27188,"src":"4077:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27168,"name":"uint256","nodeType":"ElementaryTypeName","src":"4077:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":27180,"initialValue":{"arguments":[{"id":27172,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27136,"src":"4122:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27173,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27149,"src":"4132:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27174,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27138,"src":"4141:11:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":27177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4165:1:94","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":27175,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"4154:3:94","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"4154:10:94","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":27178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4154:13:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":27170,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"4096:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"newPayout","nodeType":"MemberAccess","referencedDeclaration":6632,"src":"4096:25:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) external returns (uint256)"}},"id":27179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4096:72:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4077:91:94"},{"expression":{"arguments":[{"id":27184,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27136,"src":"4209:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27185,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27169,"src":"4219:8:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27181,"name":"_productService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26981,"src":"4179:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"id":27183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"processPayout","nodeType":"MemberAccess","referencedDeclaration":6643,"src":"4179:29:94","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) external returns (uint256,uint256)"}},"id":27186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4179:49:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":27187,"nodeType":"ExpressionStatement","src":"4179:49:94"}]},"functionSelector":"2b677841","id":27189,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":27141,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27136,"src":"3745:8:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":27142,"modifierName":{"id":27140,"name":"onlyPolicyHolder","nodeType":"IdentifierPath","referencedDeclaration":27007,"src":"3728:16:94"},"nodeType":"ModifierInvocation","src":"3728:26:94"}],"name":"submitClaim","nameLocation":"3649:11:94","nodeType":"FunctionDefinition","parameters":{"id":27139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27136,"mutability":"mutable","name":"policyId","nameLocation":"3669:8:94","nodeType":"VariableDeclaration","scope":27189,"src":"3661:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3661:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27138,"mutability":"mutable","name":"claimAmount","nameLocation":"3687:11:94","nodeType":"VariableDeclaration","scope":27189,"src":"3679:19:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27137,"name":"uint256","nodeType":"ElementaryTypeName","src":"3679:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3660:39:94"},"returnParameters":{"id":27143,"nodeType":"ParameterList","parameters":[],"src":"3760:0:94"},"scope":27454,"src":"3640:596:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3048],"body":{"id":27197,"nodeType":"Block","src":"4474:25:94","statements":[{"expression":{"id":27195,"name":"_tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26960,"src":"4483:13:94","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":27194,"id":27196,"nodeType":"Return","src":"4476:20:94"}]},"functionSelector":"21df0da7","id":27198,"implemented":true,"kind":"function","modifiers":[],"name":"getToken","nameLocation":"4417:8:94","nodeType":"FunctionDefinition","overrides":{"id":27191,"nodeType":"OverrideSpecifier","overrides":[],"src":"4437:8:94"},"parameters":{"id":27190,"nodeType":"ParameterList","parameters":[],"src":"4425:2:94"},"returnParameters":{"id":27194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27193,"mutability":"mutable","name":"token","nameLocation":"4467:5:94","nodeType":"VariableDeclaration","scope":27198,"src":"4459:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27192,"name":"address","nodeType":"ElementaryTypeName","src":"4459:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4458:15:94"},"scope":27454,"src":"4408:91:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3053],"body":{"id":27208,"nodeType":"Block","src":"4581:44:94","statements":[{"expression":{"arguments":[{"id":27205,"name":"POLICY_FLOW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26956,"src":"4610:11:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27204,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"4590:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4590:32:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":27203,"id":27207,"nodeType":"Return","src":"4583:39:94"}]},"functionSelector":"637d08f4","id":27209,"implemented":true,"kind":"function","modifiers":[],"name":"getPolicyFlow","nameLocation":"4514:13:94","nodeType":"FunctionDefinition","overrides":{"id":27200,"nodeType":"OverrideSpecifier","overrides":[],"src":"4539:8:94"},"parameters":{"id":27199,"nodeType":"ParameterList","parameters":[],"src":"4527:2:94"},"returnParameters":{"id":27203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27202,"mutability":"mutable","name":"policyFlow","nameLocation":"4569:10:94","nodeType":"VariableDeclaration","scope":27209,"src":"4561:18:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27201,"name":"address","nodeType":"ElementaryTypeName","src":"4561:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4560:20:94"},"scope":27454,"src":"4505:120:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3058],"body":{"id":27217,"nodeType":"Block","src":"4707:23:94","statements":[{"expression":{"id":27215,"name":"_riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26964,"src":"4716:11:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27214,"id":27216,"nodeType":"Return","src":"4709:18:94"}]},"functionSelector":"70d2fe53","id":27218,"implemented":true,"kind":"function","modifiers":[],"name":"getRiskpoolId","nameLocation":"4640:13:94","nodeType":"FunctionDefinition","overrides":{"id":27211,"nodeType":"OverrideSpecifier","overrides":[],"src":"4665:8:94"},"parameters":{"id":27210,"nodeType":"ParameterList","parameters":[],"src":"4653:2:94"},"returnParameters":{"id":27214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27213,"mutability":"mutable","name":"riskpoolId","nameLocation":"4695:10:94","nodeType":"VariableDeclaration","scope":27218,"src":"4687:18:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27212,"name":"uint256","nodeType":"ElementaryTypeName","src":"4687:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4686:20:94"},"scope":27454,"src":"4631:99:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3063],"body":{"id":27226,"nodeType":"Block","src":"4837:14:94","statements":[{"expression":{"hexValue":"","id":27224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4846:2:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":27223,"id":27225,"nodeType":"Return","src":"4839:9:94"}]},"functionSelector":"94f64ff4","id":27227,"implemented":true,"kind":"function","modifiers":[],"name":"getApplicationDataStructure","nameLocation":"4747:27:94","nodeType":"FunctionDefinition","overrides":{"id":27220,"nodeType":"OverrideSpecifier","overrides":[],"src":"4786:8:94"},"parameters":{"id":27219,"nodeType":"ParameterList","parameters":[],"src":"4774:2:94"},"returnParameters":{"id":27223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27222,"mutability":"mutable","name":"dataStructure","nameLocation":"4822:13:94","nodeType":"VariableDeclaration","scope":27227,"src":"4808:27:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27221,"name":"string","nodeType":"ElementaryTypeName","src":"4808:6:94","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4807:29:94"},"scope":27454,"src":"4738:113:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3068],"body":{"id":27235,"nodeType":"Block","src":"4950:14:94","statements":[{"expression":{"hexValue":"","id":27233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4959:2:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":27232,"id":27234,"nodeType":"Return","src":"4952:9:94"}]},"functionSelector":"3ec92bda","id":27236,"implemented":true,"kind":"function","modifiers":[],"name":"getClaimDataStructure","nameLocation":"4866:21:94","nodeType":"FunctionDefinition","overrides":{"id":27229,"nodeType":"OverrideSpecifier","overrides":[],"src":"4899:8:94"},"parameters":{"id":27228,"nodeType":"ParameterList","parameters":[],"src":"4887:2:94"},"returnParameters":{"id":27232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27231,"mutability":"mutable","name":"dataStructure","nameLocation":"4935:13:94","nodeType":"VariableDeclaration","scope":27236,"src":"4921:27:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27230,"name":"string","nodeType":"ElementaryTypeName","src":"4921:6:94","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4920:29:94"},"scope":27454,"src":"4857:107:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3073],"body":{"id":27244,"nodeType":"Block","src":"5064:14:94","statements":[{"expression":{"hexValue":"","id":27242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5073:2:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":27241,"id":27243,"nodeType":"Return","src":"5066:9:94"}]},"functionSelector":"39cf5e16","id":27245,"implemented":true,"kind":"function","modifiers":[],"name":"getPayoutDataStructure","nameLocation":"4979:22:94","nodeType":"FunctionDefinition","overrides":{"id":27238,"nodeType":"OverrideSpecifier","overrides":[],"src":"5013:8:94"},"parameters":{"id":27237,"nodeType":"ParameterList","parameters":[],"src":"5001:2:94"},"returnParameters":{"id":27241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27240,"mutability":"mutable","name":"dataStructure","nameLocation":"5049:13:94","nodeType":"VariableDeclaration","scope":27245,"src":"5035:27:94","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27239,"name":"string","nodeType":"ElementaryTypeName","src":"5035:6:94","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5034:29:94"},"scope":27454,"src":"4970:108:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[3078],"body":{"id":27251,"nodeType":"Block","src":"5156:2:94","statements":[]},"functionSelector":"f4fdc1fa","id":27252,"implemented":true,"kind":"function","modifiers":[],"name":"riskPoolCapacityCallback","nameLocation":"5095:24:94","nodeType":"FunctionDefinition","overrides":{"id":27249,"nodeType":"OverrideSpecifier","overrides":[],"src":"5147:8:94"},"parameters":{"id":27248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27247,"mutability":"mutable","name":"capacity","nameLocation":"5128:8:94","nodeType":"VariableDeclaration","scope":27252,"src":"5120:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27246,"name":"uint256","nodeType":"ElementaryTypeName","src":"5120:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5119:18:94"},"returnParameters":{"id":27250,"nodeType":"ParameterList","parameters":[],"src":"5156:0:94"},"scope":27454,"src":"5086:72:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2915],"body":{"id":27258,"nodeType":"Block","src":"5292:2:94","statements":[]},"functionSelector":"d0e0ba95","id":27259,"implemented":true,"kind":"function","modifiers":[],"name":"setId","nameLocation":"5256:5:94","nodeType":"FunctionDefinition","overrides":{"id":27256,"nodeType":"OverrideSpecifier","overrides":[],"src":"5283:8:94"},"parameters":{"id":27255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27254,"mutability":"mutable","name":"id","nameLocation":"5270:2:94","nodeType":"VariableDeclaration","scope":27259,"src":"5262:10:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27253,"name":"uint256","nodeType":"ElementaryTypeName","src":"5262:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5261:12:94"},"returnParameters":{"id":27257,"nodeType":"ParameterList","parameters":[],"src":"5292:0:94"},"scope":27454,"src":"5247:47:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2920],"body":{"id":27267,"nodeType":"Block","src":"5387:26:94","statements":[{"expression":{"id":27265,"name":"_componentName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26958,"src":"5396:14:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":27264,"id":27266,"nodeType":"Return","src":"5389:21:94"}]},"functionSelector":"17d7de7c","id":27268,"implemented":true,"kind":"function","modifiers":[],"name":"getName","nameLocation":"5337:7:94","nodeType":"FunctionDefinition","overrides":{"id":27261,"nodeType":"OverrideSpecifier","overrides":[],"src":"5356:8:94"},"parameters":{"id":27260,"nodeType":"ParameterList","parameters":[],"src":"5344:2:94"},"returnParameters":{"id":27264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27268,"src":"5378:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5378:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5377:9:94"},"scope":27454,"src":"5328:85:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2925],"body":{"id":27276,"nodeType":"Block","src":"5476:24:94","statements":[{"expression":{"id":27274,"name":"_componentId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26962,"src":"5485:12:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":27273,"id":27275,"nodeType":"Return","src":"5478:19:94"}]},"functionSelector":"5d1ca631","id":27277,"implemented":true,"kind":"function","modifiers":[],"name":"getId","nameLocation":"5428:5:94","nodeType":"FunctionDefinition","overrides":{"id":27270,"nodeType":"OverrideSpecifier","overrides":[],"src":"5445:8:94"},"parameters":{"id":27269,"nodeType":"ParameterList","parameters":[],"src":"5433:2:94"},"returnParameters":{"id":27273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27277,"src":"5467:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27271,"name":"uint256","nodeType":"ElementaryTypeName","src":"5467:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5466:9:94"},"scope":27454,"src":"5419:81:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2931],"body":{"id":27288,"nodeType":"Block","src":"5571:44:94","statements":[{"expression":{"expression":{"expression":{"id":27284,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"5580:10:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":27285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentType","nodeType":"MemberAccess","referencedDeclaration":2891,"src":"5580:24:94","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentType_$2891_$","typeString":"type(enum IComponent.ComponentType)"}},"id":27286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Product","nodeType":"MemberAccess","referencedDeclaration":2889,"src":"5580:32:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"functionReturnParameters":27283,"id":27287,"nodeType":"Return","src":"5573:39:94"}]},"functionSelector":"15dae03e","id":27289,"implemented":true,"kind":"function","modifiers":[],"name":"getType","nameLocation":"5515:7:94","nodeType":"FunctionDefinition","overrides":{"id":27279,"nodeType":"OverrideSpecifier","overrides":[],"src":"5534:8:94"},"parameters":{"id":27278,"nodeType":"ParameterList","parameters":[],"src":"5522:2:94"},"returnParameters":{"id":27283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27289,"src":"5556:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"},"typeName":{"id":27281,"nodeType":"UserDefinedTypeName","pathNode":{"id":27280,"name":"ComponentType","nodeType":"IdentifierPath","referencedDeclaration":2891,"src":"5556:13:94"},"referencedDeclaration":2891,"src":"5556:13:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentType_$2891","typeString":"enum IComponent.ComponentType"}},"visibility":"internal"}],"src":"5555:15:94"},"scope":27454,"src":"5506:109:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2937],"body":{"id":27300,"nodeType":"Block","src":"5688:44:94","statements":[{"expression":{"expression":{"expression":{"id":27296,"name":"IComponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2988,"src":"5697:10:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponent_$2988_$","typeString":"type(contract IComponent)"}},"id":27297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ComponentState","nodeType":"MemberAccess","referencedDeclaration":2899,"src":"5697:25:94","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ComponentState_$2899_$","typeString":"type(enum IComponent.ComponentState)"}},"id":27298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":2895,"src":"5697:32:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"functionReturnParameters":27295,"id":27299,"nodeType":"Return","src":"5690:39:94"}]},"functionSelector":"1865c57d","id":27301,"implemented":true,"kind":"function","modifiers":[],"name":"getState","nameLocation":"5630:8:94","nodeType":"FunctionDefinition","overrides":{"id":27291,"nodeType":"OverrideSpecifier","overrides":[],"src":"5650:8:94"},"parameters":{"id":27290,"nodeType":"ParameterList","parameters":[],"src":"5638:2:94"},"returnParameters":{"id":27295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27301,"src":"5672:14:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"},"typeName":{"id":27293,"nodeType":"UserDefinedTypeName","pathNode":{"id":27292,"name":"ComponentState","nodeType":"IdentifierPath","referencedDeclaration":2899,"src":"5672:14:94"},"referencedDeclaration":2899,"src":"5672:14:94","typeDescriptions":{"typeIdentifier":"t_enum$_ComponentState_$2899","typeString":"enum IComponent.ComponentState"}},"visibility":"internal"}],"src":"5671:16:94"},"scope":27454,"src":"5621:111:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2942],"body":{"id":27310,"nodeType":"Block","src":"5798:19:94","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":27307,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7409,"src":"5807:5:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":27308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5807:7:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":27306,"id":27309,"nodeType":"Return","src":"5800:14:94"}]},"functionSelector":"893d20e8","id":27311,"implemented":true,"kind":"function","modifiers":[],"name":"getOwner","nameLocation":"5747:8:94","nodeType":"FunctionDefinition","overrides":{"id":27303,"nodeType":"OverrideSpecifier","overrides":[],"src":"5767:8:94"},"parameters":{"id":27302,"nodeType":"ParameterList","parameters":[],"src":"5755:2:94"},"returnParameters":{"id":27306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27311,"src":"5789:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27304,"name":"address","nodeType":"ElementaryTypeName","src":"5789:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5788:9:94"},"scope":27454,"src":"5738:79:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2963],"body":{"id":27320,"nodeType":"Block","src":"5888:21:94","statements":[{"expression":{"id":27318,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26967,"src":"5897:9:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"functionReturnParameters":27317,"id":27319,"nodeType":"Return","src":"5890:16:94"}]},"functionSelector":"5ab1bd53","id":27321,"implemented":true,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"5832:11:94","nodeType":"FunctionDefinition","overrides":{"id":27313,"nodeType":"OverrideSpecifier","overrides":[],"src":"5855:8:94"},"parameters":{"id":27312,"nodeType":"ParameterList","parameters":[],"src":"5843:2:94"},"returnParameters":{"id":27317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27321,"src":"5877:9:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"},"typeName":{"id":27315,"nodeType":"UserDefinedTypeName","pathNode":{"id":27314,"name":"IRegistry","nodeType":"IdentifierPath","referencedDeclaration":5714,"src":"5877:9:94"},"referencedDeclaration":5714,"src":"5877:9:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"5876:11:94"},"scope":27454,"src":"5823:86:94","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[2947],"body":{"id":27329,"nodeType":"Block","src":"5973:16:94","statements":[{"expression":{"hexValue":"74727565","id":27327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5982:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":27326,"id":27328,"nodeType":"Return","src":"5975:11:94"}]},"functionSelector":"e0815f0d","id":27330,"implemented":true,"kind":"function","modifiers":[],"name":"isProduct","nameLocation":"5926:9:94","nodeType":"FunctionDefinition","overrides":{"id":27323,"nodeType":"OverrideSpecifier","overrides":[],"src":"5945:8:94"},"parameters":{"id":27322,"nodeType":"ParameterList","parameters":[],"src":"5935:2:94"},"returnParameters":{"id":27326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27330,"src":"5967:4:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27324,"name":"bool","nodeType":"ElementaryTypeName","src":"5967:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5966:6:94"},"scope":27454,"src":"5917:72:94","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2952],"body":{"id":27338,"nodeType":"Block","src":"6050:17:94","statements":[{"expression":{"hexValue":"66616c7365","id":27336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6059:5:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":27335,"id":27337,"nodeType":"Return","src":"6052:12:94"}]},"functionSelector":"9a82f890","id":27339,"implemented":true,"kind":"function","modifiers":[],"name":"isOracle","nameLocation":"6004:8:94","nodeType":"FunctionDefinition","overrides":{"id":27332,"nodeType":"OverrideSpecifier","overrides":[],"src":"6022:8:94"},"parameters":{"id":27331,"nodeType":"ParameterList","parameters":[],"src":"6012:2:94"},"returnParameters":{"id":27335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27339,"src":"6044:4:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27333,"name":"bool","nodeType":"ElementaryTypeName","src":"6044:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6043:6:94"},"scope":27454,"src":"5995:72:94","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2957],"body":{"id":27347,"nodeType":"Block","src":"6130:17:94","statements":[{"expression":{"hexValue":"66616c7365","id":27345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6139:5:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":27344,"id":27346,"nodeType":"Return","src":"6132:12:94"}]},"functionSelector":"258d560c","id":27348,"implemented":true,"kind":"function","modifiers":[],"name":"isRiskpool","nameLocation":"6082:10:94","nodeType":"FunctionDefinition","overrides":{"id":27341,"nodeType":"OverrideSpecifier","overrides":[],"src":"6102:8:94"},"parameters":{"id":27340,"nodeType":"ParameterList","parameters":[],"src":"6092:2:94"},"returnParameters":{"id":27344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27348,"src":"6124:4:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27342,"name":"bool","nodeType":"ElementaryTypeName","src":"6124:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6123:6:94"},"scope":27454,"src":"6073:74:94","stateMutability":"view","virtual":false,"visibility":"public"},{"baseFunctions":[2966],"body":{"id":27352,"nodeType":"Block","src":"6201:2:94","statements":[]},"functionSelector":"638ce0ba","id":27353,"implemented":true,"kind":"function","modifiers":[],"name":"proposalCallback","nameLocation":"6164:16:94","nodeType":"FunctionDefinition","overrides":{"id":27350,"nodeType":"OverrideSpecifier","overrides":[],"src":"6192:8:94"},"parameters":{"id":27349,"nodeType":"ParameterList","parameters":[],"src":"6180:2:94"},"returnParameters":{"id":27351,"nodeType":"ParameterList","parameters":[],"src":"6201:0:94"},"scope":27454,"src":"6155:48:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2969],"body":{"id":27357,"nodeType":"Block","src":"6255:2:94","statements":[]},"functionSelector":"1b867c63","id":27358,"implemented":true,"kind":"function","modifiers":[],"name":"approvalCallback","nameLocation":"6218:16:94","nodeType":"FunctionDefinition","overrides":{"id":27355,"nodeType":"OverrideSpecifier","overrides":[],"src":"6246:8:94"},"parameters":{"id":27354,"nodeType":"ParameterList","parameters":[],"src":"6234:2:94"},"returnParameters":{"id":27356,"nodeType":"ParameterList","parameters":[],"src":"6255:0:94"},"scope":27454,"src":"6209:48:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2972],"body":{"id":27362,"nodeType":"Block","src":"6309:2:94","statements":[]},"functionSelector":"bd1fe5d0","id":27363,"implemented":true,"kind":"function","modifiers":[],"name":"declineCallback","nameLocation":"6273:15:94","nodeType":"FunctionDefinition","overrides":{"id":27360,"nodeType":"OverrideSpecifier","overrides":[],"src":"6300:8:94"},"parameters":{"id":27359,"nodeType":"ParameterList","parameters":[],"src":"6288:2:94"},"returnParameters":{"id":27361,"nodeType":"ParameterList","parameters":[],"src":"6309:0:94"},"scope":27454,"src":"6264:47:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2975],"body":{"id":27367,"nodeType":"Block","src":"6362:2:94","statements":[]},"functionSelector":"b3fca9bd","id":27368,"implemented":true,"kind":"function","modifiers":[],"name":"suspendCallback","nameLocation":"6326:15:94","nodeType":"FunctionDefinition","overrides":{"id":27365,"nodeType":"OverrideSpecifier","overrides":[],"src":"6353:8:94"},"parameters":{"id":27364,"nodeType":"ParameterList","parameters":[],"src":"6341:2:94"},"returnParameters":{"id":27366,"nodeType":"ParameterList","parameters":[],"src":"6362:0:94"},"scope":27454,"src":"6317:47:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2978],"body":{"id":27372,"nodeType":"Block","src":"6414:2:94","statements":[]},"functionSelector":"a18f5ae2","id":27373,"implemented":true,"kind":"function","modifiers":[],"name":"resumeCallback","nameLocation":"6379:14:94","nodeType":"FunctionDefinition","overrides":{"id":27370,"nodeType":"OverrideSpecifier","overrides":[],"src":"6405:8:94"},"parameters":{"id":27369,"nodeType":"ParameterList","parameters":[],"src":"6393:2:94"},"returnParameters":{"id":27371,"nodeType":"ParameterList","parameters":[],"src":"6414:0:94"},"scope":27454,"src":"6370:46:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2981],"body":{"id":27377,"nodeType":"Block","src":"6465:2:94","statements":[]},"functionSelector":"d73cd992","id":27378,"implemented":true,"kind":"function","modifiers":[],"name":"pauseCallback","nameLocation":"6431:13:94","nodeType":"FunctionDefinition","overrides":{"id":27375,"nodeType":"OverrideSpecifier","overrides":[],"src":"6456:8:94"},"parameters":{"id":27374,"nodeType":"ParameterList","parameters":[],"src":"6444:2:94"},"returnParameters":{"id":27376,"nodeType":"ParameterList","parameters":[],"src":"6465:0:94"},"scope":27454,"src":"6422:45:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2984],"body":{"id":27382,"nodeType":"Block","src":"6518:2:94","statements":[]},"functionSelector":"59dacc6a","id":27383,"implemented":true,"kind":"function","modifiers":[],"name":"unpauseCallback","nameLocation":"6482:15:94","nodeType":"FunctionDefinition","overrides":{"id":27380,"nodeType":"OverrideSpecifier","overrides":[],"src":"6509:8:94"},"parameters":{"id":27379,"nodeType":"ParameterList","parameters":[],"src":"6497:2:94"},"returnParameters":{"id":27381,"nodeType":"ParameterList","parameters":[],"src":"6518:0:94"},"scope":27454,"src":"6473:47:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[2987],"body":{"id":27387,"nodeType":"Block","src":"6571:2:94","statements":[]},"functionSelector":"be169e7e","id":27388,"implemented":true,"kind":"function","modifiers":[],"name":"archiveCallback","nameLocation":"6535:15:94","nodeType":"FunctionDefinition","overrides":{"id":27385,"nodeType":"OverrideSpecifier","overrides":[],"src":"6562:8:94"},"parameters":{"id":27384,"nodeType":"ParameterList","parameters":[],"src":"6550:2:94"},"returnParameters":{"id":27386,"nodeType":"ParameterList","parameters":[],"src":"6571:0:94"},"scope":27454,"src":"6526:47:94","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27400,"nodeType":"Block","src":"6634:72:94","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"416363657373","id":27396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6680:8:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""},"value":"Access"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_662ef9f10158779adc6a36d83dac352a0d38be4aaefa069e4f4fdcebe6a5d3ee","typeString":"literal_string \"Access\""}],"id":27395,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"6660:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6660:29:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27394,"name":"IAccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4836,"src":"6652:7:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccess_$4836_$","typeString":"type(contract IAccess)"}},"id":27398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6652:38:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"functionReturnParameters":27393,"id":27399,"nodeType":"Return","src":"6645:45:94"}]},"id":27401,"implemented":true,"kind":"function","modifiers":[],"name":"_getAccess","nameLocation":"6590:10:94","nodeType":"FunctionDefinition","parameters":{"id":27389,"nodeType":"ParameterList","parameters":[],"src":"6600:2:94"},"returnParameters":{"id":27393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27392,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27401,"src":"6625:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"},"typeName":{"id":27391,"nodeType":"UserDefinedTypeName","pathNode":{"id":27390,"name":"IAccess","nodeType":"IdentifierPath","referencedDeclaration":4836,"src":"6625:7:94"},"referencedDeclaration":4836,"src":"6625:7:94","typeDescriptions":{"typeIdentifier":"t_contract$_IAccess_$4836","typeString":"contract IAccess"}},"visibility":"internal"}],"src":"6624:9:94"},"scope":27454,"src":"6581:125:94","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":27413,"nodeType":"Block","src":"6785:90:94","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"496e7374616e636553657276696365","id":27409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6840:17:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""},"value":"InstanceService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52","typeString":"literal_string \"InstanceService\""}],"id":27408,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"6820:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6820:38:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27407,"name":"IInstanceService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"6803:16:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IInstanceService_$6509_$","typeString":"type(contract IInstanceService)"}},"id":27411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6803:56:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"functionReturnParameters":27406,"id":27412,"nodeType":"Return","src":"6796:63:94"}]},"id":27414,"implemented":true,"kind":"function","modifiers":[],"name":"_getInstanceService","nameLocation":"6723:19:94","nodeType":"FunctionDefinition","parameters":{"id":27402,"nodeType":"ParameterList","parameters":[],"src":"6742:2:94"},"returnParameters":{"id":27406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27414,"src":"6767:16:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"},"typeName":{"id":27404,"nodeType":"UserDefinedTypeName","pathNode":{"id":27403,"name":"IInstanceService","nodeType":"IdentifierPath","referencedDeclaration":6509,"src":"6767:16:94"},"referencedDeclaration":6509,"src":"6767:16:94","typeDescriptions":{"typeIdentifier":"t_contract$_IInstanceService_$6509","typeString":"contract IInstanceService"}},"visibility":"internal"}],"src":"6766:18:94"},"scope":27454,"src":"6714:161:94","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":27426,"nodeType":"Block","src":"6966:102:94","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"436f6d706f6e656e744f776e657253657276696365","id":27422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7027:23:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""},"value":"ComponentOwnerService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675","typeString":"literal_string \"ComponentOwnerService\""}],"id":27421,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"7007:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7007:44:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27420,"name":"IComponentOwnerService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6009,"src":"6984:22:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IComponentOwnerService_$6009_$","typeString":"type(contract IComponentOwnerService)"}},"id":27424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6984:68:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"functionReturnParameters":27419,"id":27425,"nodeType":"Return","src":"6977:75:94"}]},"id":27427,"implemented":true,"kind":"function","modifiers":[],"name":"_getComponentOwnerService","nameLocation":"6892:25:94","nodeType":"FunctionDefinition","parameters":{"id":27415,"nodeType":"ParameterList","parameters":[],"src":"6917:2:94"},"returnParameters":{"id":27419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27427,"src":"6942:22:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"},"typeName":{"id":27417,"nodeType":"UserDefinedTypeName","pathNode":{"id":27416,"name":"IComponentOwnerService","nodeType":"IdentifierPath","referencedDeclaration":6009,"src":"6942:22:94"},"referencedDeclaration":6009,"src":"6942:22:94","typeDescriptions":{"typeIdentifier":"t_contract$_IComponentOwnerService_$6009","typeString":"contract IComponentOwnerService"}},"visibility":"internal"}],"src":"6941:24:94"},"scope":27454,"src":"6883:185:94","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":27439,"nodeType":"Block","src":"7145:88:94","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"50726f6475637453657276696365","id":27435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7199:16:94","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""},"value":"ProductService"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0656cfcc1bc970b947aca201a5cc1b43cf3c3649a4b2d6f82968797074fe0b8","typeString":"literal_string \"ProductService\""}],"id":27434,"name":"_getContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"7179:19:94","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view returns (address)"}},"id":27436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7179:37:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27433,"name":"IProductService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6664,"src":"7163:15:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProductService_$6664_$","typeString":"type(contract IProductService)"}},"id":27437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7163:54:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"functionReturnParameters":27432,"id":27438,"nodeType":"Return","src":"7156:61:94"}]},"id":27440,"implemented":true,"kind":"function","modifiers":[],"name":"_getProductService","nameLocation":"7085:18:94","nodeType":"FunctionDefinition","parameters":{"id":27428,"nodeType":"ParameterList","parameters":[],"src":"7103:2:94"},"returnParameters":{"id":27432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27431,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27440,"src":"7128:15:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"},"typeName":{"id":27430,"nodeType":"UserDefinedTypeName","pathNode":{"id":27429,"name":"IProductService","nodeType":"IdentifierPath","referencedDeclaration":6664,"src":"7128:15:94"},"referencedDeclaration":6664,"src":"7128:15:94","typeDescriptions":{"typeIdentifier":"t_contract$_IProductService_$6664","typeString":"contract IProductService"}},"visibility":"internal"}],"src":"7127:17:94"},"scope":27454,"src":"7076:157:94","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":27452,"nodeType":"Block","src":"7323:62:94","statements":[{"expression":{"arguments":[{"id":27449,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27442,"src":"7364:12:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27447,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26967,"src":"7342:9:94","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$5714","typeString":"contract IRegistry"}},"id":27448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getContract","nodeType":"MemberAccess","referencedDeclaration":5687,"src":"7342:21:94","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":27450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7342:35:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":27446,"id":27451,"nodeType":"Return","src":"7335:42:94"}]},"id":27453,"implemented":true,"kind":"function","modifiers":[],"name":"_getContractAddress","nameLocation":"7250:19:94","nodeType":"FunctionDefinition","parameters":{"id":27443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27442,"mutability":"mutable","name":"contractName","nameLocation":"7278:12:94","nodeType":"VariableDeclaration","scope":27453,"src":"7270:20:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7270:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7269:22:94"},"returnParameters":{"id":27446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":27453,"src":"7314:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27444,"name":"address","nodeType":"ElementaryTypeName","src":"7314:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7313:9:94"},"scope":27454,"src":"7241:144:94","stateMutability":"view","virtual":false,"visibility":"private"}],"scope":27455,"src":"1116:6274:94"}],"src":"40:7350:94"},"id":94},"contracts/test/TestOracle.sol":{"ast":{"absolutePath":"contracts/test/TestOracle.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracle":[3022],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Oracle":[3414],"Ownable":[7481],"TestOracle":[27560]},"id":27561,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":27456,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:95"},{"absolutePath":"@etherisc/gif-interface/contracts/components/Oracle.sol","file":"@etherisc/gif-interface/contracts/components/Oracle.sol","id":27457,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":27561,"sourceUnit":3415,"src":"66:65:95","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":27458,"name":"Oracle","nodeType":"IdentifierPath","referencedDeclaration":3414,"src":"158:6:95"},"id":27459,"nodeType":"InheritanceSpecifier","src":"158:6:95"}],"contractDependencies":[2884,2988,3022,3414,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":27560,"linearizedBaseContracts":[27560,3414,2884,7481,10518,5073,3022,2988],"name":"TestOracle","nameLocation":"144:10:95","nodeType":"ContractDefinition","nodes":[{"body":{"id":27470,"nodeType":"Block","src":"292:3:95","statements":[]},"id":27471,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":27466,"name":"oracleName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27461,"src":"265:10:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27467,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27463,"src":"277:8:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":27468,"modifierName":{"id":27465,"name":"Oracle","nodeType":"IdentifierPath","referencedDeclaration":3414,"src":"258:6:95"},"nodeType":"ModifierInvocation","src":"258:28:95"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":27464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27461,"mutability":"mutable","name":"oracleName","nameLocation":"204:10:95","nodeType":"VariableDeclaration","scope":27471,"src":"196:18:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"196:7:95","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27463,"mutability":"mutable","name":"registry","nameLocation":"233:8:95","nodeType":"VariableDeclaration","scope":27471,"src":"225:16:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27462,"name":"address","nodeType":"ElementaryTypeName","src":"225:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"185:63:95"},"returnParameters":{"id":27469,"nodeType":"ParameterList","parameters":[],"src":"292:0:95"},"scope":27560,"src":"174:121:95","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[3016],"body":{"id":27509,"nodeType":"Block","src":"389:492:95","statements":[{"assignments":[27482,27484],"declarations":[{"constant":false,"id":27482,"mutability":"mutable","name":"counter","nameLocation":"446:7:95","nodeType":"VariableDeclaration","scope":27509,"src":"438:15:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27481,"name":"uint256","nodeType":"ElementaryTypeName","src":"438:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27484,"mutability":"mutable","name":"immediateResponse","nameLocation":"460:17:95","nodeType":"VariableDeclaration","scope":27509,"src":"455:22:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27483,"name":"bool","nodeType":"ElementaryTypeName","src":"455:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27494,"initialValue":{"arguments":[{"id":27487,"name":"input","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27475,"src":"492:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":27489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"500:7:95","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":27488,"name":"uint256","nodeType":"ElementaryTypeName","src":"500:7:95","typeDescriptions":{}}},{"id":27491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"509:4:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":27490,"name":"bool","nodeType":"ElementaryTypeName","src":"509:4:95","typeDescriptions":{}}}],"id":27492,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"499:15:95","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_bool_$_$","typeString":"tuple(type(uint256),type(bool))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_bool_$_$","typeString":"tuple(type(uint256),type(bool))"}],"expression":{"id":27485,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"481:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"481:10:95","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":27493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"481:34:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"nodeType":"VariableDeclarationStatement","src":"437:78:95"},{"condition":{"id":27495,"name":"immediateResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27484,"src":"532:17:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27508,"nodeType":"IfStatement","src":"528:346:95","trueBody":{"id":27507,"nodeType":"Block","src":"551:323:95","statements":[{"assignments":[27497],"declarations":[{"constant":false,"id":27497,"mutability":"mutable","name":"isLossEvent","nameLocation":"775:11:95","nodeType":"VariableDeclaration","scope":27507,"src":"770:16:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27496,"name":"bool","nodeType":"ElementaryTypeName","src":"770:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27501,"initialValue":{"arguments":[{"id":27499,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27482,"src":"808:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27498,"name":"_oracleCalculation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27559,"src":"789:18:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) returns (bool)"}},"id":27500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"789:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"770:46:95"},{"expression":{"arguments":[{"id":27503,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27473,"src":"839:9:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27504,"name":"isLossEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27497,"src":"850:11:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":27502,"name":"respond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27542,"src":"831:7:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bool_$returns$__$","typeString":"function (uint256,bool)"}},"id":27505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"831:31:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27506,"nodeType":"ExpressionStatement","src":"831:31:95"}]}}]},"functionSelector":"ffc79065","id":27510,"implemented":true,"kind":"function","modifiers":[{"id":27479,"modifierName":{"id":27478,"name":"onlyQuery","nodeType":"IdentifierPath","referencedDeclaration":3339,"src":"379:9:95"},"nodeType":"ModifierInvocation","src":"379:9:95"}],"name":"request","nameLocation":"312:7:95","nodeType":"FunctionDefinition","overrides":{"id":27477,"nodeType":"OverrideSpecifier","overrides":[],"src":"370:8:95"},"parameters":{"id":27476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27473,"mutability":"mutable","name":"requestId","nameLocation":"328:9:95","nodeType":"VariableDeclaration","scope":27510,"src":"320:17:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27472,"name":"uint256","nodeType":"ElementaryTypeName","src":"320:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27475,"mutability":"mutable","name":"input","nameLocation":"354:5:95","nodeType":"VariableDeclaration","scope":27510,"src":"339:20:95","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27474,"name":"bytes","nodeType":"ElementaryTypeName","src":"339:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"319:41:95"},"returnParameters":{"id":27480,"nodeType":"ParameterList","parameters":[],"src":"389:0:95"},"scope":27560,"src":"303:578:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[3021],"body":{"id":27518,"nodeType":"Block","src":"975:134:95","statements":[]},"functionSelector":"40e58ee5","id":27519,"implemented":true,"kind":"function","modifiers":[{"id":27516,"modifierName":{"id":27515,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"960:9:95"},"nodeType":"ModifierInvocation","src":"960:9:95"}],"name":"cancel","nameLocation":"898:6:95","nodeType":"FunctionDefinition","overrides":{"id":27514,"nodeType":"OverrideSpecifier","overrides":[],"src":"942:8:95"},"parameters":{"id":27513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27512,"mutability":"mutable","name":"requestId","nameLocation":"913:9:95","nodeType":"VariableDeclaration","scope":27519,"src":"905:17:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27511,"name":"uint256","nodeType":"ElementaryTypeName","src":"905:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"904:19:95"},"returnParameters":{"id":27517,"nodeType":"ParameterList","parameters":[],"src":"975:0:95"},"scope":27560,"src":"889:220:95","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27541,"nodeType":"Block","src":"1341:203:95","statements":[{"assignments":[27527],"declarations":[{"constant":false,"id":27527,"mutability":"mutable","name":"output","nameLocation":"1410:6:95","nodeType":"VariableDeclaration","scope":27541,"src":"1397:19:95","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":27526,"name":"bytes","nodeType":"ElementaryTypeName","src":"1397:5:95","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":27535,"initialValue":{"arguments":[{"arguments":[{"id":27532,"name":"isLossEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27523,"src":"1435:11:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":27531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1430:4:95","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":27530,"name":"bool","nodeType":"ElementaryTypeName","src":"1430:4:95","typeDescriptions":{}}},"id":27533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1430:17:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27528,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"1419:3:95","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"1419:10:95","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":27534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1419:29:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1397:51:95"},{"expression":{"arguments":[{"id":27537,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27521,"src":"1518:9:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27538,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27527,"src":"1529:6:95","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27536,"name":"_respond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3413,"src":"1509:8:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory)"}},"id":27539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1509:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27540,"nodeType":"ExpressionStatement","src":"1509:27:95"}]},"functionSelector":"a9c577c5","id":27542,"implemented":true,"kind":"function","modifiers":[],"name":"respond","nameLocation":"1274:7:95","nodeType":"FunctionDefinition","parameters":{"id":27524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27521,"mutability":"mutable","name":"requestId","nameLocation":"1290:9:95","nodeType":"VariableDeclaration","scope":27542,"src":"1282:17:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27520,"name":"uint256","nodeType":"ElementaryTypeName","src":"1282:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27523,"mutability":"mutable","name":"isLossEvent","nameLocation":"1306:11:95","nodeType":"VariableDeclaration","scope":27542,"src":"1301:16:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27522,"name":"bool","nodeType":"ElementaryTypeName","src":"1301:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1281:37:95"},"returnParameters":{"id":27525,"nodeType":"ParameterList","parameters":[],"src":"1341:0:95"},"scope":27560,"src":"1265:279:95","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":27558,"nodeType":"Block","src":"1787:51:95","statements":[{"expression":{"id":27556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27549,"name":"isLossEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27547,"src":"1798:11:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":27552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27550,"name":"counter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27544,"src":"1813:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":27551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1823:1:95","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1813:11:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":27553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1828:1:95","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1813:16:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":27555,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1812:18:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1798:32:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27557,"nodeType":"ExpressionStatement","src":"1798:32:95"}]},"id":27559,"implemented":true,"kind":"function","modifiers":[],"name":"_oracleCalculation","nameLocation":"1715:18:95","nodeType":"FunctionDefinition","parameters":{"id":27545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27544,"mutability":"mutable","name":"counter","nameLocation":"1742:7:95","nodeType":"VariableDeclaration","scope":27559,"src":"1734:15:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27543,"name":"uint256","nodeType":"ElementaryTypeName","src":"1734:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1733:17:95"},"returnParameters":{"id":27548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27547,"mutability":"mutable","name":"isLossEvent","nameLocation":"1774:11:95","nodeType":"VariableDeclaration","scope":27559,"src":"1769:16:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27546,"name":"bool","nodeType":"ElementaryTypeName","src":"1769:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1768:18:95"},"scope":27560,"src":"1706:132:95","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":27561,"src":"135:1710:95"}],"src":"40:1805:95"},"id":95},"contracts/test/TestProduct.sol":{"ast":{"absolutePath":"contracts/test/TestProduct.sol","exportedSymbols":{"Component":[2884],"Context":[10518],"ERC20":[8753],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC20Metadata":[8856],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProduct":[3079],"IProductService":[6664],"IRegistry":[5714],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Product":[4042],"TestProduct":[28333]},"id":28334,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":27562,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:96"},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":27563,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28334,"sourceUnit":5434,"src":"66:63:96","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IProductService.sol","file":"@etherisc/gif-interface/contracts/services/IProductService.sol","id":27564,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28334,"sourceUnit":6665,"src":"131:72:96","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","file":"@etherisc/gif-interface/contracts/services/IInstanceService.sol","id":27565,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28334,"sourceUnit":6510,"src":"205:73:96","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/components/Product.sol","file":"@etherisc/gif-interface/contracts/components/Product.sol","id":27566,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28334,"sourceUnit":4043,"src":"280:66:96","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":27567,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28334,"sourceUnit":8754,"src":"350:55:96","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":27568,"name":"Product","nodeType":"IdentifierPath","referencedDeclaration":4042,"src":"439:7:96"},"id":27569,"nodeType":"InheritanceSpecifier","src":"439:7:96"}],"contractDependencies":[2884,2988,3079,4042,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":28333,"linearizedBaseContracts":[28333,4042,2884,7481,10518,5073,3079,2988],"name":"TestProduct","nameLocation":"418:11:96","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"09128d83","id":27572,"mutability":"constant","name":"POLICY_FLOW","nameLocation":"480:11:96","nodeType":"VariableDeclaration","scope":28333,"src":"456:57:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27570,"name":"bytes32","nodeType":"ElementaryTypeName","src":"456:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"506f6c69637944656661756c74466c6f77","id":27571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"494:19:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c6194c52a3447410e4616772f780a88c4ac5f0b731d2fc7e7979c603182714e","typeString":"literal_string \"PolicyDefaultFlow\""},"value":"PolicyDefaultFlow"},"visibility":"public"},{"constant":true,"functionSelector":"232d346a","id":27575,"mutability":"constant","name":"ORACLE_CALLBACK_METHOD_NAME","nameLocation":"543:27:96","nodeType":"VariableDeclaration","scope":28333,"src":"520:69:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27573,"name":"string","nodeType":"ElementaryTypeName","src":"520:6:96","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"6f7261636c6543616c6c6261636b","id":27574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"573:16:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_2aafc7d392265772ce577bc392adfed2dc64b60acfcc2d5e2ce66fbfe088b79b","typeString":"literal_string \"oracleCallback\""},"value":"oracleCallback"},"visibility":"public"},{"constant":false,"id":27577,"mutability":"mutable","name":"_capitalOwner","nameLocation":"614:13:96","nodeType":"VariableDeclaration","scope":28333,"src":"598:29:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27576,"name":"address","nodeType":"ElementaryTypeName","src":"598:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":27579,"mutability":"mutable","name":"_testOracleId","nameLocation":"650:13:96","nodeType":"VariableDeclaration","scope":28333,"src":"634:29:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27578,"name":"uint256","nodeType":"ElementaryTypeName","src":"634:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":27581,"mutability":"mutable","name":"_testRiskpoolId","nameLocation":"686:15:96","nodeType":"VariableDeclaration","scope":28333,"src":"670:31:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27580,"name":"uint256","nodeType":"ElementaryTypeName","src":"670:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":27584,"mutability":"mutable","name":"_applications","nameLocation":"729:13:96","nodeType":"VariableDeclaration","scope":28333,"src":"710:32:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":27582,"name":"bytes32","nodeType":"ElementaryTypeName","src":"710:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27583,"nodeType":"ArrayTypeName","src":"710:10:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"constant":false,"id":27587,"mutability":"mutable","name":"_policies","nameLocation":"768:9:96","nodeType":"VariableDeclaration","scope":28333,"src":"749:28:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":27585,"name":"bytes32","nodeType":"ElementaryTypeName","src":"749:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27586,"nodeType":"ArrayTypeName","src":"749:10:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"constant":false,"id":27589,"mutability":"mutable","name":"_claims","nameLocation":"800:7:96","nodeType":"VariableDeclaration","scope":28333,"src":"784:23:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27588,"name":"uint256","nodeType":"ElementaryTypeName","src":"784:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":27593,"mutability":"mutable","name":"_policyIdToClaimId","nameLocation":"852:18:96","nodeType":"VariableDeclaration","scope":28333,"src":"816:54:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":27592,"keyType":{"id":27590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"824:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"816:27:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":27591,"name":"uint256","nodeType":"ElementaryTypeName","src":"835:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":27597,"mutability":"mutable","name":"_policyIdToPayoutId","nameLocation":"913:19:96","nodeType":"VariableDeclaration","scope":28333,"src":"877:55:96","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":27596,"keyType":{"id":27594,"name":"bytes32","nodeType":"ElementaryTypeName","src":"885:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"877:27:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":27595,"name":"uint256","nodeType":"ElementaryTypeName","src":"896:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"anonymous":false,"id":27603,"name":"LogTestProductFundingReceived","nameLocation":"947:29:96","nodeType":"EventDefinition","parameters":{"id":27602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27599,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"985:6:96","nodeType":"VariableDeclaration","scope":27603,"src":"977:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27598,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27601,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1001:6:96","nodeType":"VariableDeclaration","scope":27603,"src":"993:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27600,"name":"uint256","nodeType":"ElementaryTypeName","src":"993:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"976:32:96"},"src":"941:68:96"},{"anonymous":false,"id":27611,"name":"LogTestOracleCallbackReceived","nameLocation":"1021:29:96","nodeType":"EventDefinition","parameters":{"id":27610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27605,"indexed":false,"mutability":"mutable","name":"requestId","nameLocation":"1059:9:96","nodeType":"VariableDeclaration","scope":27611,"src":"1051:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27604,"name":"uint256","nodeType":"ElementaryTypeName","src":"1051:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27607,"indexed":false,"mutability":"mutable","name":"policyId","nameLocation":"1078:8:96","nodeType":"VariableDeclaration","scope":27611,"src":"1070:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1070:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27609,"indexed":false,"mutability":"mutable","name":"response","nameLocation":"1094:8:96","nodeType":"VariableDeclaration","scope":27611,"src":"1088:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":27608,"name":"bytes","nodeType":"ElementaryTypeName","src":"1088:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1050:53:96"},"src":"1015:89:96"},{"body":{"id":27655,"nodeType":"Block","src":"1404:200:96","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":27639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":27634,"name":"tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27615,"src":"1423:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":27637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1447:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":27636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1439:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":27635,"name":"address","nodeType":"ElementaryTypeName","src":"1439:7:96","typeDescriptions":{}}},"id":27638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1439:10:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1423:26:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a54492d323a544f4b454e5f414444524553535f5a45524f","id":27640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1451:31:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_6003834a90355bc6c34bf2f1e5e7831d67694839f4cff894321a4e1852368d7b","typeString":"literal_string \"ERROR:TI-2:TOKEN_ADDRESS_ZERO\""},"value":"ERROR:TI-2:TOKEN_ADDRESS_ZERO"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6003834a90355bc6c34bf2f1e5e7831d67694839f4cff894321a4e1852368d7b","typeString":"literal_string \"ERROR:TI-2:TOKEN_ADDRESS_ZERO\""}],"id":27633,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1415:7:96","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":27641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1415:68:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27642,"nodeType":"ExpressionStatement","src":"1415:68:96"},{"expression":{"id":27645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27643,"name":"_capitalOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27577,"src":"1494:13:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27644,"name":"capitalOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27617,"src":"1510:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1494:28:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":27646,"nodeType":"ExpressionStatement","src":"1494:28:96"},{"expression":{"id":27649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27647,"name":"_testOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27579,"src":"1533:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27648,"name":"oracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27619,"src":"1549:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1533:24:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27650,"nodeType":"ExpressionStatement","src":"1533:24:96"},{"expression":{"id":27653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27651,"name":"_testRiskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27581,"src":"1568:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27652,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27621,"src":"1586:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1568:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27654,"nodeType":"ExpressionStatement","src":"1568:28:96"}]},"id":27656,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":27626,"name":"productName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27613,"src":"1330:11:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27627,"name":"tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27615,"src":"1343:12:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27628,"name":"POLICY_FLOW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27572,"src":"1357:11:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27629,"name":"riskpoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27621,"src":"1370:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27630,"name":"registryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27623,"src":"1382:15:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":27631,"modifierName":{"id":27625,"name":"Product","nodeType":"IdentifierPath","referencedDeclaration":4042,"src":"1322:7:96"},"nodeType":"ModifierInvocation","src":"1322:76:96"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":27624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27613,"mutability":"mutable","name":"productName","nameLocation":"1142:11:96","nodeType":"VariableDeclaration","scope":27656,"src":"1134:19:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1134:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27615,"mutability":"mutable","name":"tokenAddress","nameLocation":"1172:12:96","nodeType":"VariableDeclaration","scope":27656,"src":"1164:20:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27614,"name":"address","nodeType":"ElementaryTypeName","src":"1164:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27617,"mutability":"mutable","name":"capitalOwner","nameLocation":"1203:12:96","nodeType":"VariableDeclaration","scope":27656,"src":"1195:20:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27616,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27619,"mutability":"mutable","name":"oracleId","nameLocation":"1234:8:96","nodeType":"VariableDeclaration","scope":27656,"src":"1226:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27618,"name":"uint256","nodeType":"ElementaryTypeName","src":"1226:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27621,"mutability":"mutable","name":"riskpoolId","nameLocation":"1261:10:96","nodeType":"VariableDeclaration","scope":27656,"src":"1253:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27620,"name":"uint256","nodeType":"ElementaryTypeName","src":"1253:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27623,"mutability":"mutable","name":"registryAddress","nameLocation":"1290:15:96","nodeType":"VariableDeclaration","scope":27656,"src":"1282:23:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27622,"name":"address","nodeType":"ElementaryTypeName","src":"1282:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1123:189:96"},"returnParameters":{"id":27632,"nodeType":"ParameterList","parameters":[],"src":"1404:0:96"},"scope":28333,"src":"1112:492:96","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":27708,"nodeType":"Block","src":"1855:407:96","statements":[{"assignments":[27670],"declarations":[{"constant":false,"id":27670,"mutability":"mutable","name":"policyHolder","nameLocation":"1882:12:96","nodeType":"VariableDeclaration","scope":27708,"src":"1866:28:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":27669,"name":"address","nodeType":"ElementaryTypeName","src":"1866:15:96","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":27676,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":27673,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"1905:10:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":27674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1905:12:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1897:8:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":27671,"name":"address","nodeType":"ElementaryTypeName","src":"1897:8:96","stateMutability":"payable","typeDescriptions":{}}},"id":27675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1897:21:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"1866:52:96"},{"expression":{"id":27685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27677,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27667,"src":"1931:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27679,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27670,"src":"1973:12:96","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":27680,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27658,"src":"2000:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27681,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27660,"src":"2023:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27682,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27662,"src":"2048:8:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":27683,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27664,"src":"2071:15:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":27678,"name":"_newApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"1943:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) returns (bytes32)"}},"id":27684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1943:144:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1931:156:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27686,"nodeType":"ExpressionStatement","src":"1931:156:96"},{"expression":{"arguments":[{"id":27690,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27667,"src":"2119:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27687,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27584,"src":"2100:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2100:18:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2100:29:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27692,"nodeType":"ExpressionStatement","src":"2100:29:96"},{"assignments":[27694],"declarations":[{"constant":false,"id":27694,"mutability":"mutable","name":"success","nameLocation":"2147:7:96","nodeType":"VariableDeclaration","scope":27708,"src":"2142:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27693,"name":"bool","nodeType":"ElementaryTypeName","src":"2142:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27698,"initialValue":{"arguments":[{"id":27696,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27667,"src":"2169:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27695,"name":"_underwrite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"2157:11:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":27697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2157:22:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2142:37:96"},{"condition":{"id":27699,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27694,"src":"2194:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27707,"nodeType":"IfStatement","src":"2190:65:96","trueBody":{"id":27706,"nodeType":"Block","src":"2203:52:96","statements":[{"expression":{"arguments":[{"id":27703,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27667,"src":"2233:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27700,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27587,"src":"2218:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2218:14:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2218:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27705,"nodeType":"ExpressionStatement","src":"2218:25:96"}]}}]},"functionSelector":"e6f95edd","id":27709,"implemented":true,"kind":"function","modifiers":[],"name":"applyForPolicy","nameLocation":"1621:14:96","nodeType":"FunctionDefinition","parameters":{"id":27665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27658,"mutability":"mutable","name":"premium","nameLocation":"1654:7:96","nodeType":"VariableDeclaration","scope":27709,"src":"1646:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27657,"name":"uint256","nodeType":"ElementaryTypeName","src":"1646:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27660,"mutability":"mutable","name":"sumInsured","nameLocation":"1681:10:96","nodeType":"VariableDeclaration","scope":27709,"src":"1673:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27659,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27662,"mutability":"mutable","name":"metaData","nameLocation":"1717:8:96","nodeType":"VariableDeclaration","scope":27709,"src":"1702:23:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27661,"name":"bytes","nodeType":"ElementaryTypeName","src":"1702:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":27664,"mutability":"mutable","name":"applicationData","nameLocation":"1751:15:96","nodeType":"VariableDeclaration","scope":27709,"src":"1736:30:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27663,"name":"bytes","nodeType":"ElementaryTypeName","src":"1736:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1635:138:96"},"returnParameters":{"id":27668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27667,"mutability":"mutable","name":"processId","nameLocation":"1838:9:96","nodeType":"VariableDeclaration","scope":27709,"src":"1830:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27666,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1830:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1829:19:96"},"scope":28333,"src":"1612:650:96","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":27755,"nodeType":"Block","src":"2552:342:96","statements":[{"expression":{"id":27732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27724,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27722,"src":"2563:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27726,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27711,"src":"2605:12:96","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":27727,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27713,"src":"2632:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27728,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27715,"src":"2655:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27729,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27717,"src":"2680:8:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":27730,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27719,"src":"2703:15:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":27725,"name":"_newApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"2575:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) returns (bytes32)"}},"id":27731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2575:144:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2563:156:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27733,"nodeType":"ExpressionStatement","src":"2563:156:96"},{"expression":{"arguments":[{"id":27737,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27722,"src":"2751:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27734,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27584,"src":"2732:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2732:18:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2732:29:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27739,"nodeType":"ExpressionStatement","src":"2732:29:96"},{"assignments":[27741],"declarations":[{"constant":false,"id":27741,"mutability":"mutable","name":"success","nameLocation":"2779:7:96","nodeType":"VariableDeclaration","scope":27755,"src":"2774:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27740,"name":"bool","nodeType":"ElementaryTypeName","src":"2774:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27745,"initialValue":{"arguments":[{"id":27743,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27722,"src":"2801:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27742,"name":"_underwrite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"2789:11:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":27744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2789:22:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2774:37:96"},{"condition":{"id":27746,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27741,"src":"2826:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27754,"nodeType":"IfStatement","src":"2822:65:96","trueBody":{"id":27753,"nodeType":"Block","src":"2835:52:96","statements":[{"expression":{"arguments":[{"id":27750,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27722,"src":"2865:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27747,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27587,"src":"2850:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"2850:14:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2850:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27752,"nodeType":"ExpressionStatement","src":"2850:25:96"}]}}]},"functionSelector":"3dcabeab","id":27756,"implemented":true,"kind":"function","modifiers":[],"name":"applyForPolicy","nameLocation":"2279:14:96","nodeType":"FunctionDefinition","parameters":{"id":27720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27711,"mutability":"mutable","name":"policyHolder","nameLocation":"2320:12:96","nodeType":"VariableDeclaration","scope":27756,"src":"2304:28:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":27710,"name":"address","nodeType":"ElementaryTypeName","src":"2304:15:96","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":27713,"mutability":"mutable","name":"premium","nameLocation":"2351:7:96","nodeType":"VariableDeclaration","scope":27756,"src":"2343:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27712,"name":"uint256","nodeType":"ElementaryTypeName","src":"2343:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27715,"mutability":"mutable","name":"sumInsured","nameLocation":"2378:10:96","nodeType":"VariableDeclaration","scope":27756,"src":"2370:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27714,"name":"uint256","nodeType":"ElementaryTypeName","src":"2370:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27717,"mutability":"mutable","name":"metaData","nameLocation":"2414:8:96","nodeType":"VariableDeclaration","scope":27756,"src":"2399:23:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27716,"name":"bytes","nodeType":"ElementaryTypeName","src":"2399:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":27719,"mutability":"mutable","name":"applicationData","nameLocation":"2448:15:96","nodeType":"VariableDeclaration","scope":27756,"src":"2433:30:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27718,"name":"bytes","nodeType":"ElementaryTypeName","src":"2433:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2293:177:96"},"returnParameters":{"id":27723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27722,"mutability":"mutable","name":"processId","nameLocation":"2535:9:96","nodeType":"VariableDeclaration","scope":27756,"src":"2527:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2527:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2526:19:96"},"scope":28333,"src":"2270:624:96","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":27793,"nodeType":"Block","src":"3146:282:96","statements":[{"assignments":[27770],"declarations":[{"constant":false,"id":27770,"mutability":"mutable","name":"policyHolder","nameLocation":"3173:12:96","nodeType":"VariableDeclaration","scope":27793,"src":"3157:28:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":27769,"name":"address","nodeType":"ElementaryTypeName","src":"3157:15:96","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":27776,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":27773,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"3196:10:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":27774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3196:12:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3188:8:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":27771,"name":"address","nodeType":"ElementaryTypeName","src":"3188:8:96","stateMutability":"payable","typeDescriptions":{}}},"id":27775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3188:21:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"3157:52:96"},{"expression":{"id":27785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27777,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27767,"src":"3222:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27779,"name":"policyHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27770,"src":"3264:12:96","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":27780,"name":"premium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27758,"src":"3291:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27781,"name":"sumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27760,"src":"3314:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27782,"name":"metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27762,"src":"3339:8:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":27783,"name":"applicationData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27764,"src":"3362:15:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":27778,"name":"_newApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3628,"src":"3234:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (address,uint256,uint256,bytes memory,bytes memory) returns (bytes32)"}},"id":27784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3234:144:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3222:156:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":27786,"nodeType":"ExpressionStatement","src":"3222:156:96"},{"expression":{"arguments":[{"id":27790,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27767,"src":"3410:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27787,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27584,"src":"3391:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"3391:18:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3391:29:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27792,"nodeType":"ExpressionStatement","src":"3391:29:96"}]},"functionSelector":"03f0ac1a","id":27794,"implemented":true,"kind":"function","modifiers":[],"name":"newAppliation","nameLocation":"2913:13:96","nodeType":"FunctionDefinition","parameters":{"id":27765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27758,"mutability":"mutable","name":"premium","nameLocation":"2945:7:96","nodeType":"VariableDeclaration","scope":27794,"src":"2937:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27757,"name":"uint256","nodeType":"ElementaryTypeName","src":"2937:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27760,"mutability":"mutable","name":"sumInsured","nameLocation":"2972:10:96","nodeType":"VariableDeclaration","scope":27794,"src":"2964:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27759,"name":"uint256","nodeType":"ElementaryTypeName","src":"2964:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27762,"mutability":"mutable","name":"metaData","nameLocation":"3008:8:96","nodeType":"VariableDeclaration","scope":27794,"src":"2993:23:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27761,"name":"bytes","nodeType":"ElementaryTypeName","src":"2993:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":27764,"mutability":"mutable","name":"applicationData","nameLocation":"3042:15:96","nodeType":"VariableDeclaration","scope":27794,"src":"3027:30:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":27763,"name":"bytes","nodeType":"ElementaryTypeName","src":"3027:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2926:138:96"},"returnParameters":{"id":27768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27767,"mutability":"mutable","name":"processId","nameLocation":"3129:9:96","nodeType":"VariableDeclaration","scope":27794,"src":"3121:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3121:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3120:19:96"},"scope":28333,"src":"2904:524:96","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":27806,"nodeType":"Block","src":"3510:38:96","statements":[{"expression":{"arguments":[{"id":27803,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27796,"src":"3530:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27802,"name":"_revoke","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3725,"src":"3522:7:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":27804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3522:18:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27805,"nodeType":"ExpressionStatement","src":"3522:18:96"}]},"functionSelector":"b75c7dc6","id":27807,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":27799,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27796,"src":"3499:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":27800,"modifierName":{"id":27798,"name":"onlyPolicyHolder","nodeType":"IdentifierPath","referencedDeclaration":3459,"src":"3482:16:96"},"nodeType":"ModifierInvocation","src":"3482:27:96"}],"name":"revoke","nameLocation":"3447:6:96","nodeType":"FunctionDefinition","parameters":{"id":27797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27796,"mutability":"mutable","name":"processId","nameLocation":"3462:9:96","nodeType":"VariableDeclaration","scope":27807,"src":"3454:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3454:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3453:19:96"},"returnParameters":{"id":27801,"nodeType":"ParameterList","parameters":[],"src":"3510:0:96"},"scope":28333,"src":"3438:110:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27818,"nodeType":"Block","src":"3611:39:96","statements":[{"expression":{"arguments":[{"id":27815,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27809,"src":"3632:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27814,"name":"_decline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3752,"src":"3623:8:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":27816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3623:19:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27817,"nodeType":"ExpressionStatement","src":"3623:19:96"}]},"functionSelector":"8cc7d3d1","id":27819,"implemented":true,"kind":"function","modifiers":[{"id":27812,"modifierName":{"id":27811,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"3601:9:96"},"nodeType":"ModifierInvocation","src":"3601:9:96"}],"name":"decline","nameLocation":"3565:7:96","nodeType":"FunctionDefinition","parameters":{"id":27810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27809,"mutability":"mutable","name":"processId","nameLocation":"3581:9:96","nodeType":"VariableDeclaration","scope":27819,"src":"3573:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27808,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3573:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3572:19:96"},"returnParameters":{"id":27813,"nodeType":"ParameterList","parameters":[],"src":"3611:0:96"},"scope":28333,"src":"3556:94:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27841,"nodeType":"Block","src":"3716:132:96","statements":[{"assignments":[27827],"declarations":[{"constant":false,"id":27827,"mutability":"mutable","name":"success","nameLocation":"3733:7:96","nodeType":"VariableDeclaration","scope":27841,"src":"3728:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27826,"name":"bool","nodeType":"ElementaryTypeName","src":"3728:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27831,"initialValue":{"arguments":[{"id":27829,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27821,"src":"3755:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27828,"name":"_underwrite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3740,"src":"3743:11:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":27830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3743:22:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3728:37:96"},{"condition":{"id":27832,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27827,"src":"3780:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":27840,"nodeType":"IfStatement","src":"3776:65:96","trueBody":{"id":27839,"nodeType":"Block","src":"3789:52:96","statements":[{"expression":{"arguments":[{"id":27836,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27821,"src":"3819:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":27833,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27587,"src":"3804:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":27835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","src":"3804:14:96","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":27837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3804:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27838,"nodeType":"ExpressionStatement","src":"3804:25:96"}]}}]},"functionSelector":"1b07b17f","id":27842,"implemented":true,"kind":"function","modifiers":[{"id":27824,"modifierName":{"id":27823,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"3706:9:96"},"nodeType":"ModifierInvocation","src":"3706:9:96"}],"name":"underwrite","nameLocation":"3667:10:96","nodeType":"FunctionDefinition","parameters":{"id":27822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27821,"mutability":"mutable","name":"processId","nameLocation":"3686:9:96","nodeType":"VariableDeclaration","scope":27842,"src":"3678:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27820,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3678:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3677:19:96"},"returnParameters":{"id":27825,"nodeType":"ParameterList","parameters":[],"src":"3716:0:96"},"scope":28333,"src":"3658:190:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27864,"nodeType":"Block","src":"3996:73:96","statements":[{"expression":{"id":27862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":27855,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27849,"src":"4008:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27856,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27851,"src":"4017:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27857,"name":"netPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27853,"src":"4022:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27858,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4007:26:96","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27860,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27844,"src":"4052:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27859,"name":"_collectPremium","nodeType":"Identifier","overloadedDeclarations":[3670,3695],"referencedDeclaration":3670,"src":"4036:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32) returns (bool,uint256,uint256)"}},"id":27861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4036:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"4007:54:96","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27863,"nodeType":"ExpressionStatement","src":"4007:54:96"}]},"functionSelector":"b9ea8d66","id":27865,"implemented":true,"kind":"function","modifiers":[{"id":27847,"modifierName":{"id":27846,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"3917:9:96"},"nodeType":"ModifierInvocation","src":"3917:9:96"}],"name":"collectPremium","nameLocation":"3865:14:96","nodeType":"FunctionDefinition","parameters":{"id":27845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27844,"mutability":"mutable","name":"policyId","nameLocation":"3888:8:96","nodeType":"VariableDeclaration","scope":27865,"src":"3880:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3880:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3879:18:96"},"returnParameters":{"id":27854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27849,"mutability":"mutable","name":"success","nameLocation":"3949:7:96","nodeType":"VariableDeclaration","scope":27865,"src":"3944:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27848,"name":"bool","nodeType":"ElementaryTypeName","src":"3944:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27851,"mutability":"mutable","name":"fee","nameLocation":"3966:3:96","nodeType":"VariableDeclaration","scope":27865,"src":"3958:11:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27850,"name":"uint256","nodeType":"ElementaryTypeName","src":"3958:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27853,"mutability":"mutable","name":"netPremium","nameLocation":"3979:10:96","nodeType":"VariableDeclaration","scope":27865,"src":"3971:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27852,"name":"uint256","nodeType":"ElementaryTypeName","src":"3971:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3943:47:96"},"scope":28333,"src":"3856:213:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27890,"nodeType":"Block","src":"4233:81:96","statements":[{"expression":{"id":27888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":27880,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27874,"src":"4245:7:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27881,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27876,"src":"4254:3:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27882,"name":"netPremium","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27878,"src":"4259:10:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":27883,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"4244:26:96","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27885,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27867,"src":"4289:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27886,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27869,"src":"4299:6:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27884,"name":"_collectPremium","nodeType":"Identifier","overloadedDeclarations":[3670,3695],"referencedDeclaration":3695,"src":"4273:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (bool,uint256,uint256)"}},"id":27887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4273:33:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"4244:62:96","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27889,"nodeType":"ExpressionStatement","src":"4244:62:96"}]},"functionSelector":"e3ebdea5","id":27891,"implemented":true,"kind":"function","modifiers":[{"id":27872,"modifierName":{"id":27871,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"4154:9:96"},"nodeType":"ModifierInvocation","src":"4154:9:96"}],"name":"collectPremium","nameLocation":"4086:14:96","nodeType":"FunctionDefinition","parameters":{"id":27870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27867,"mutability":"mutable","name":"policyId","nameLocation":"4109:8:96","nodeType":"VariableDeclaration","scope":27891,"src":"4101:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27866,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4101:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27869,"mutability":"mutable","name":"amount","nameLocation":"4127:6:96","nodeType":"VariableDeclaration","scope":27891,"src":"4119:14:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27868,"name":"uint256","nodeType":"ElementaryTypeName","src":"4119:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4100:34:96"},"returnParameters":{"id":27879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27874,"mutability":"mutable","name":"success","nameLocation":"4186:7:96","nodeType":"VariableDeclaration","scope":27891,"src":"4181:12:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27873,"name":"bool","nodeType":"ElementaryTypeName","src":"4181:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27876,"mutability":"mutable","name":"fee","nameLocation":"4203:3:96","nodeType":"VariableDeclaration","scope":27891,"src":"4195:11:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27875,"name":"uint256","nodeType":"ElementaryTypeName","src":"4195:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27878,"mutability":"mutable","name":"netPremium","nameLocation":"4216:10:96","nodeType":"VariableDeclaration","scope":27891,"src":"4208:18:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27877,"name":"uint256","nodeType":"ElementaryTypeName","src":"4208:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4180:47:96"},"scope":28333,"src":"4077:237:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27906,"nodeType":"Block","src":"4488:95:96","statements":[{"expression":{"arguments":[{"id":27901,"name":"processId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27893,"src":"4524:9:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27902,"name":"expectedPremiumAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27895,"src":"4535:21:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27903,"name":"sumInsuredAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27897,"src":"4558:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27900,"name":"_adjustPremiumSumInsured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3713,"src":"4499:24:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":27904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4499:76:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27905,"nodeType":"ExpressionStatement","src":"4499:76:96"}]},"functionSelector":"30a73da5","id":27907,"implemented":true,"kind":"function","modifiers":[],"name":"adjustPremiumSumInsured","nameLocation":"4331:23:96","nodeType":"FunctionDefinition","parameters":{"id":27898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27893,"mutability":"mutable","name":"processId","nameLocation":"4373:9:96","nodeType":"VariableDeclaration","scope":27907,"src":"4365:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4365:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27895,"mutability":"mutable","name":"expectedPremiumAmount","nameLocation":"4401:21:96","nodeType":"VariableDeclaration","scope":27907,"src":"4393:29:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27894,"name":"uint256","nodeType":"ElementaryTypeName","src":"4393:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27897,"mutability":"mutable","name":"sumInsuredAmount","nameLocation":"4441:16:96","nodeType":"VariableDeclaration","scope":27907,"src":"4433:24:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27896,"name":"uint256","nodeType":"ElementaryTypeName","src":"4433:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4354:110:96"},"returnParameters":{"id":27899,"nodeType":"ParameterList","parameters":[],"src":"4488:0:96"},"scope":28333,"src":"4322:261:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27918,"nodeType":"Block","src":"4644:36:96","statements":[{"expression":{"arguments":[{"id":27915,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27909,"src":"4663:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27914,"name":"_expire","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3764,"src":"4655:7:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":27916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4655:17:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27917,"nodeType":"ExpressionStatement","src":"4655:17:96"}]},"functionSelector":"c6441798","id":27919,"implemented":true,"kind":"function","modifiers":[{"id":27912,"modifierName":{"id":27911,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"4634:9:96"},"nodeType":"ModifierInvocation","src":"4634:9:96"}],"name":"expire","nameLocation":"4600:6:96","nodeType":"FunctionDefinition","parameters":{"id":27910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27909,"mutability":"mutable","name":"policyId","nameLocation":"4615:8:96","nodeType":"VariableDeclaration","scope":27919,"src":"4607:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4607:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4606:18:96"},"returnParameters":{"id":27913,"nodeType":"ParameterList","parameters":[],"src":"4644:0:96"},"scope":28333,"src":"4591:89:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27930,"nodeType":"Block","src":"4740:35:96","statements":[{"expression":{"arguments":[{"id":27927,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27921,"src":"4758:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":27926,"name":"_close","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3776,"src":"4751:6:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":27928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4751:16:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27929,"nodeType":"ExpressionStatement","src":"4751:16:96"}]},"functionSelector":"39c79e0c","id":27931,"implemented":true,"kind":"function","modifiers":[{"id":27924,"modifierName":{"id":27923,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"4730:9:96"},"nodeType":"ModifierInvocation","src":"4730:9:96"}],"name":"close","nameLocation":"4697:5:96","nodeType":"FunctionDefinition","parameters":{"id":27922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27921,"mutability":"mutable","name":"policyId","nameLocation":"4711:8:96","nodeType":"VariableDeclaration","scope":27931,"src":"4703:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4703:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4702:18:96"},"returnParameters":{"id":27925,"nodeType":"ParameterList","parameters":[],"src":"4740:0:96"},"scope":28333,"src":"4688:87:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":27979,"nodeType":"Block","src":"4937:670:96","statements":[{"expression":{"id":27944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5124:9:96","subExpression":{"id":27943,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"5124:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27945,"nodeType":"ExpressionStatement","src":"5124:9:96"},{"expression":{"id":27952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27946,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27941,"src":"5184:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27948,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27933,"src":"5204:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27949,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27935,"src":"5214:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":27950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5227:2:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":27947,"name":"_newClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"5194:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) returns (uint256)"}},"id":27951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5194:36:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5184:46:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27953,"nodeType":"ExpressionStatement","src":"5184:46:96"},{"expression":{"id":27958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":27954,"name":"_policyIdToClaimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27593,"src":"5241:18:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":27956,"indexExpression":{"id":27955,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27933,"src":"5260:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5241:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":27957,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27941,"src":"5272:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5241:38:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27959,"nodeType":"ExpressionStatement","src":"5241:38:96"},{"assignments":[27961],"declarations":[{"constant":false,"id":27961,"mutability":"mutable","name":"immediateResponse","nameLocation":"5354:17:96","nodeType":"VariableDeclaration","scope":27979,"src":"5349:22:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27960,"name":"bool","nodeType":"ElementaryTypeName","src":"5349:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":27963,"initialValue":{"hexValue":"74727565","id":27962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5374:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"5349:29:96"},{"assignments":[27965],"declarations":[{"constant":false,"id":27965,"mutability":"mutable","name":"queryData","nameLocation":"5402:9:96","nodeType":"VariableDeclaration","scope":27979,"src":"5389:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":27964,"name":"bytes","nodeType":"ElementaryTypeName","src":"5389:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":27971,"initialValue":{"arguments":[{"id":27968,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"5425:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27969,"name":"immediateResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27961,"src":"5434:17:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27966,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"5414:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"5414:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":27970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5414:38:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5389:63:96"},{"expression":{"arguments":[{"id":27973,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27933,"src":"5486:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27974,"name":"queryData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27965,"src":"5509:9:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":27975,"name":"ORACLE_CALLBACK_METHOD_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27575,"src":"5533:27:96","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27976,"name":"_testOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27579,"src":"5575:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":27972,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3919,"src":"5463:8:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,bytes memory,string memory,uint256) returns (uint256)"}},"id":27977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5463:136:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27978,"nodeType":"ExpressionStatement","src":"5463:136:96"}]},"functionSelector":"2b677841","id":27980,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":27938,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27933,"src":"4888:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":27939,"modifierName":{"id":27937,"name":"onlyPolicyHolder","nodeType":"IdentifierPath","referencedDeclaration":3459,"src":"4871:16:96"},"nodeType":"ModifierInvocation","src":"4871:26:96"}],"name":"submitClaim","nameLocation":"4792:11:96","nodeType":"FunctionDefinition","parameters":{"id":27936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27933,"mutability":"mutable","name":"policyId","nameLocation":"4812:8:96","nodeType":"VariableDeclaration","scope":27980,"src":"4804:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4804:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27935,"mutability":"mutable","name":"claimAmount","nameLocation":"4830:11:96","nodeType":"VariableDeclaration","scope":27980,"src":"4822:19:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27934,"name":"uint256","nodeType":"ElementaryTypeName","src":"4822:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4803:39:96"},"returnParameters":{"id":27942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27941,"mutability":"mutable","name":"claimId","nameLocation":"4923:7:96","nodeType":"VariableDeclaration","scope":27980,"src":"4915:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27940,"name":"uint256","nodeType":"ElementaryTypeName","src":"4915:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4914:17:96"},"scope":28333,"src":"4783:824:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28009,"nodeType":"Block","src":"5777:350:96","statements":[{"expression":{"id":27993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5964:9:96","subExpression":{"id":27992,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"5964:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":27994,"nodeType":"ExpressionStatement","src":"5964:9:96"},{"expression":{"id":28001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":27995,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27990,"src":"6024:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":27997,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27982,"src":"6044:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":27998,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27984,"src":"6054:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":27999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6067:2:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":27996,"name":"_newClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"6034:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) returns (uint256)"}},"id":28000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6034:36:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6024:46:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28002,"nodeType":"ExpressionStatement","src":"6024:46:96"},{"expression":{"id":28007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28003,"name":"_policyIdToClaimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27593,"src":"6081:18:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28005,"indexExpression":{"id":28004,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27982,"src":"6100:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6081:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28006,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27990,"src":"6112:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6081:38:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28008,"nodeType":"ExpressionStatement","src":"6081:38:96"}]},"functionSelector":"79ed5209","id":28010,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":27987,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27982,"src":"5728:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":27988,"modifierName":{"id":27986,"name":"onlyPolicyHolder","nodeType":"IdentifierPath","referencedDeclaration":3459,"src":"5711:16:96"},"nodeType":"ModifierInvocation","src":"5711:26:96"}],"name":"submitClaimNoOracle","nameLocation":"5624:19:96","nodeType":"FunctionDefinition","parameters":{"id":27985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27982,"mutability":"mutable","name":"policyId","nameLocation":"5652:8:96","nodeType":"VariableDeclaration","scope":28010,"src":"5644:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":27981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5644:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":27984,"mutability":"mutable","name":"claimAmount","nameLocation":"5670:11:96","nodeType":"VariableDeclaration","scope":28010,"src":"5662:19:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27983,"name":"uint256","nodeType":"ElementaryTypeName","src":"5662:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5643:39:96"},"returnParameters":{"id":27991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27990,"mutability":"mutable","name":"claimId","nameLocation":"5763:7:96","nodeType":"VariableDeclaration","scope":28010,"src":"5755:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27989,"name":"uint256","nodeType":"ElementaryTypeName","src":"5755:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5754:17:96"},"scope":28333,"src":"5615:512:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28062,"nodeType":"Block","src":"6332:683:96","statements":[{"expression":{"id":28025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6519:9:96","subExpression":{"id":28024,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"6519:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28026,"nodeType":"ExpressionStatement","src":"6519:9:96"},{"expression":{"id":28033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28027,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28020,"src":"6579:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":28029,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28012,"src":"6599:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28030,"name":"claimAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28014,"src":"6609:11:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":28031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6622:2:96","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":28028,"name":"_newClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3797,"src":"6589:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,bytes memory) returns (uint256)"}},"id":28032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6589:36:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6579:46:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28034,"nodeType":"ExpressionStatement","src":"6579:46:96"},{"expression":{"id":28039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28035,"name":"_policyIdToClaimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27593,"src":"6636:18:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28037,"indexExpression":{"id":28036,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28012,"src":"6655:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6636:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28038,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28020,"src":"6667:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6636:38:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28040,"nodeType":"ExpressionStatement","src":"6636:38:96"},{"assignments":[28042],"declarations":[{"constant":false,"id":28042,"mutability":"mutable","name":"immediateResponse","nameLocation":"6749:17:96","nodeType":"VariableDeclaration","scope":28062,"src":"6744:22:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28041,"name":"bool","nodeType":"ElementaryTypeName","src":"6744:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":28044,"initialValue":{"hexValue":"66616c7365","id":28043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6769:5:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"6744:30:96"},{"assignments":[28046],"declarations":[{"constant":false,"id":28046,"mutability":"mutable","name":"queryData","nameLocation":"6798:9:96","nodeType":"VariableDeclaration","scope":28062,"src":"6785:22:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":28045,"name":"bytes","nodeType":"ElementaryTypeName","src":"6785:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":28052,"initialValue":{"arguments":[{"id":28049,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"6821:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28050,"name":"immediateResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28042,"src":"6830:17:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28047,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"6810:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"6810:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":28051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6810:38:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6785:63:96"},{"expression":{"id":28060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28053,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28022,"src":"6859:9:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":28055,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28012,"src":"6894:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28056,"name":"queryData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28046,"src":"6917:9:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":28057,"name":"ORACLE_CALLBACK_METHOD_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27575,"src":"6941:27:96","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28058,"name":"_testOracleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27579,"src":"6983:13:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28054,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3919,"src":"6871:8:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,bytes memory,string memory,uint256) returns (uint256)"}},"id":28059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6871:136:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6859:148:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28061,"nodeType":"ExpressionStatement","src":"6859:148:96"}]},"functionSelector":"ec8b4a9a","id":28063,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":28017,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28012,"src":"6264:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":28018,"modifierName":{"id":28016,"name":"onlyPolicyHolder","nodeType":"IdentifierPath","referencedDeclaration":3459,"src":"6247:16:96"},"nodeType":"ModifierInvocation","src":"6247:26:96"}],"name":"submitClaimWithDeferredResponse","nameLocation":"6148:31:96","nodeType":"FunctionDefinition","parameters":{"id":28015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28012,"mutability":"mutable","name":"policyId","nameLocation":"6188:8:96","nodeType":"VariableDeclaration","scope":28063,"src":"6180:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28011,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6180:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28014,"mutability":"mutable","name":"claimAmount","nameLocation":"6206:11:96","nodeType":"VariableDeclaration","scope":28063,"src":"6198:19:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28013,"name":"uint256","nodeType":"ElementaryTypeName","src":"6198:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6179:39:96"},"returnParameters":{"id":28023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28020,"mutability":"mutable","name":"claimId","nameLocation":"6299:7:96","nodeType":"VariableDeclaration","scope":28063,"src":"6291:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28019,"name":"uint256","nodeType":"ElementaryTypeName","src":"6291:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28022,"mutability":"mutable","name":"requestId","nameLocation":"6316:9:96","nodeType":"VariableDeclaration","scope":28063,"src":"6308:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28021,"name":"uint256","nodeType":"ElementaryTypeName","src":"6308:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6290:36:96"},"scope":28333,"src":"6139:876:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28080,"nodeType":"Block","src":"7184:68:96","statements":[{"expression":{"arguments":[{"id":28075,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28065,"src":"7209:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28076,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28067,"src":"7219:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28077,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28069,"src":"7228:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28074,"name":"_confirmClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"7195:13:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":28078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7195:49:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28079,"nodeType":"ExpressionStatement","src":"7195:49:96"}]},"functionSelector":"4e02c63f","id":28081,"implemented":true,"kind":"function","modifiers":[{"id":28072,"modifierName":{"id":28071,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"7169:9:96"},"nodeType":"ModifierInvocation","src":"7169:9:96"}],"name":"confirmClaim","nameLocation":"7032:12:96","nodeType":"FunctionDefinition","parameters":{"id":28070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28065,"mutability":"mutable","name":"policyId","nameLocation":"7063:8:96","nodeType":"VariableDeclaration","scope":28081,"src":"7055:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28064,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7055:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28067,"mutability":"mutable","name":"claimId","nameLocation":"7091:7:96","nodeType":"VariableDeclaration","scope":28081,"src":"7083:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28066,"name":"uint256","nodeType":"ElementaryTypeName","src":"7083:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28069,"mutability":"mutable","name":"confirmedAmount","nameLocation":"7118:15:96","nodeType":"VariableDeclaration","scope":28081,"src":"7110:23:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28068,"name":"uint256","nodeType":"ElementaryTypeName","src":"7110:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7044:96:96"},"returnParameters":{"id":28073,"nodeType":"ParameterList","parameters":[],"src":"7184:0:96"},"scope":28333,"src":"7023:229:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28095,"nodeType":"Block","src":"7386:51:96","statements":[{"expression":{"arguments":[{"id":28091,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28083,"src":"7411:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28092,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28085,"src":"7421:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28090,"name":"_declineClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"7397:13:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":28093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7397:32:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28094,"nodeType":"ExpressionStatement","src":"7397:32:96"}]},"functionSelector":"4cda0de9","id":28096,"implemented":true,"kind":"function","modifiers":[{"id":28088,"modifierName":{"id":28087,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"7371:9:96"},"nodeType":"ModifierInvocation","src":"7371:9:96"}],"name":"declineClaim","nameLocation":"7269:12:96","nodeType":"FunctionDefinition","parameters":{"id":28086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28083,"mutability":"mutable","name":"policyId","nameLocation":"7300:8:96","nodeType":"VariableDeclaration","scope":28096,"src":"7292:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7292:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28085,"mutability":"mutable","name":"claimId","nameLocation":"7328:7:96","nodeType":"VariableDeclaration","scope":28096,"src":"7320:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28084,"name":"uint256","nodeType":"ElementaryTypeName","src":"7320:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7281:61:96"},"returnParameters":{"id":28089,"nodeType":"ParameterList","parameters":[],"src":"7386:0:96"},"scope":28333,"src":"7260:177:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28110,"nodeType":"Block","src":"7569:49:96","statements":[{"expression":{"arguments":[{"id":28106,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28098,"src":"7592:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28107,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28100,"src":"7602:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28105,"name":"_closeClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3845,"src":"7580:11:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":28108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7580:30:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28109,"nodeType":"ExpressionStatement","src":"7580:30:96"}]},"functionSelector":"7f29dba2","id":28111,"implemented":true,"kind":"function","modifiers":[{"id":28103,"modifierName":{"id":28102,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"7554:9:96"},"nodeType":"ModifierInvocation","src":"7554:9:96"}],"name":"closeClaim","nameLocation":"7454:10:96","nodeType":"FunctionDefinition","parameters":{"id":28101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28098,"mutability":"mutable","name":"policyId","nameLocation":"7483:8:96","nodeType":"VariableDeclaration","scope":28111,"src":"7475:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7475:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28100,"mutability":"mutable","name":"claimId","nameLocation":"7511:7:96","nodeType":"VariableDeclaration","scope":28111,"src":"7503:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28099,"name":"uint256","nodeType":"ElementaryTypeName","src":"7503:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7464:61:96"},"returnParameters":{"id":28104,"nodeType":"ParameterList","parameters":[],"src":"7569:0:96"},"scope":28333,"src":"7445:173:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28141,"nodeType":"Block","src":"7819:203:96","statements":[{"expression":{"id":28134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28124,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28122,"src":"7830:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":28126,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28113,"src":"7866:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28127,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28115,"src":"7890:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28128,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28117,"src":"7913:12:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":28131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7952:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":28129,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"7941:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"7941:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":28132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7941:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28125,"name":"_newPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"7841:10:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) returns (uint256)"}},"id":28133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7841:114:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7830:125:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28135,"nodeType":"ExpressionStatement","src":"7830:125:96"},{"expression":{"arguments":[{"id":28137,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28113,"src":"7995:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28138,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28122,"src":"8005:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28136,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"7980:14:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (uint256,uint256)"}},"id":28139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7980:34:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":28140,"nodeType":"ExpressionStatement","src":"7980:34:96"}]},"functionSelector":"4703dc8d","id":28142,"implemented":true,"kind":"function","modifiers":[{"id":28120,"modifierName":{"id":28119,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"7769:9:96"},"nodeType":"ModifierInvocation","src":"7769:9:96"}],"name":"createPayout","nameLocation":"7635:12:96","nodeType":"FunctionDefinition","parameters":{"id":28118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28113,"mutability":"mutable","name":"policyId","nameLocation":"7666:8:96","nodeType":"VariableDeclaration","scope":28142,"src":"7658:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7658:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28115,"mutability":"mutable","name":"claimId","nameLocation":"7694:7:96","nodeType":"VariableDeclaration","scope":28142,"src":"7686:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28114,"name":"uint256","nodeType":"ElementaryTypeName","src":"7686:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28117,"mutability":"mutable","name":"payoutAmount","nameLocation":"7721:12:96","nodeType":"VariableDeclaration","scope":28142,"src":"7713:20:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28116,"name":"uint256","nodeType":"ElementaryTypeName","src":"7713:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7647:93:96"},"returnParameters":{"id":28123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28122,"mutability":"mutable","name":"payoutId","nameLocation":"7804:8:96","nodeType":"VariableDeclaration","scope":28142,"src":"7796:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28121,"name":"uint256","nodeType":"ElementaryTypeName","src":"7796:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7795:18:96"},"scope":28333,"src":"7626:396:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28167,"nodeType":"Block","src":"8220:144:96","statements":[{"expression":{"id":28165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28155,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28153,"src":"8231:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":28157,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28144,"src":"8267:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28158,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28146,"src":"8291:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28159,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28148,"src":"8314:12:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":28162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8353:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":28160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"8342:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"8342:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":28163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8342:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28156,"name":"_newPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"8242:10:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) returns (uint256)"}},"id":28164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8242:114:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8231:125:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28166,"nodeType":"ExpressionStatement","src":"8231:125:96"}]},"functionSelector":"2b1994ba","id":28168,"implemented":true,"kind":"function","modifiers":[{"id":28151,"modifierName":{"id":28150,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"8170:9:96"},"nodeType":"ModifierInvocation","src":"8170:9:96"}],"name":"newPayout","nameLocation":"8039:9:96","nodeType":"FunctionDefinition","parameters":{"id":28149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28144,"mutability":"mutable","name":"policyId","nameLocation":"8067:8:96","nodeType":"VariableDeclaration","scope":28168,"src":"8059:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8059:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28146,"mutability":"mutable","name":"claimId","nameLocation":"8095:7:96","nodeType":"VariableDeclaration","scope":28168,"src":"8087:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28145,"name":"uint256","nodeType":"ElementaryTypeName","src":"8087:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28148,"mutability":"mutable","name":"payoutAmount","nameLocation":"8122:12:96","nodeType":"VariableDeclaration","scope":28168,"src":"8114:20:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28147,"name":"uint256","nodeType":"ElementaryTypeName","src":"8114:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8048:93:96"},"returnParameters":{"id":28154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28153,"mutability":"mutable","name":"payoutId","nameLocation":"8205:8:96","nodeType":"VariableDeclaration","scope":28168,"src":"8197:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28152,"name":"uint256","nodeType":"ElementaryTypeName","src":"8197:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8196:18:96"},"scope":28333,"src":"8030:334:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28182,"nodeType":"Block","src":"8500:53:96","statements":[{"expression":{"arguments":[{"id":28178,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28170,"src":"8526:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28179,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28172,"src":"8536:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28177,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"8511:14:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (uint256,uint256)"}},"id":28180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8511:34:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":28181,"nodeType":"ExpressionStatement","src":"8511:34:96"}]},"functionSelector":"fe64372b","id":28183,"implemented":true,"kind":"function","modifiers":[{"id":28175,"modifierName":{"id":28174,"name":"onlyOwner","nodeType":"IdentifierPath","referencedDeclaration":7400,"src":"8485:9:96"},"nodeType":"ModifierInvocation","src":"8485:9:96"}],"name":"processPayout","nameLocation":"8381:13:96","nodeType":"FunctionDefinition","parameters":{"id":28173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28170,"mutability":"mutable","name":"policyId","nameLocation":"8413:8:96","nodeType":"VariableDeclaration","scope":28183,"src":"8405:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28169,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8405:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28172,"mutability":"mutable","name":"payoutId","nameLocation":"8441:8:96","nodeType":"VariableDeclaration","scope":28183,"src":"8433:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28171,"name":"uint256","nodeType":"ElementaryTypeName","src":"8433:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8394:62:96"},"returnParameters":{"id":28176,"nodeType":"ParameterList","parameters":[],"src":"8500:0:96"},"scope":28333,"src":"8372:181:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28281,"nodeType":"Block","src":"8730:1357:96","statements":[{"eventCall":{"arguments":[{"id":28195,"name":"requestId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28185,"src":"8776:9:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28196,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"8787:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28197,"name":"responseData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28189,"src":"8797:12:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":28194,"name":"LogTestOracleCallbackReceived","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27611,"src":"8746:29:96","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes32,bytes memory)"}},"id":28198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8746:64:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28199,"nodeType":"EmitStatement","src":"8741:69:96"},{"assignments":[28201],"declarations":[{"constant":false,"id":28201,"mutability":"mutable","name":"isLossEvent","nameLocation":"8866:11:96","nodeType":"VariableDeclaration","scope":28281,"src":"8861:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28200,"name":"bool","nodeType":"ElementaryTypeName","src":"8861:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":28209,"initialValue":{"arguments":[{"id":28204,"name":"responseData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28189,"src":"8892:12:96","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":28206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8907:4:96","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":28205,"name":"bool","nodeType":"ElementaryTypeName","src":"8907:4:96","typeDescriptions":{}}}],"id":28207,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8906:6:96","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":28202,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"8881:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"decode","nodeType":"MemberAccess","src":"8881:10:96","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":28208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8881:32:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"8860:53:96"},{"assignments":[28211],"declarations":[{"constant":false,"id":28211,"mutability":"mutable","name":"claimId","nameLocation":"8932:7:96","nodeType":"VariableDeclaration","scope":28281,"src":"8924:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28210,"name":"uint256","nodeType":"ElementaryTypeName","src":"8924:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28215,"initialValue":{"baseExpression":{"id":28212,"name":"_policyIdToClaimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27593,"src":"8942:18:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28214,"indexExpression":{"id":28213,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"8961:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8942:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8924:46:96"},{"condition":{"id":28216,"name":"isLossEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28201,"src":"9033:11:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":28279,"nodeType":"Block","src":"10021:59:96","statements":[{"expression":{"arguments":[{"id":28275,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"10050:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28276,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28211,"src":"10060:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28274,"name":"_declineClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3830,"src":"10036:13:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":28277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10036:32:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28278,"nodeType":"ExpressionStatement","src":"10036:32:96"}]},"id":28280,"nodeType":"IfStatement","src":"9029:1051:96","trueBody":{"id":28273,"nodeType":"Block","src":"9046:969:96","statements":[{"expression":{"arguments":[{"id":28218,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9140:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":28217,"name":"_getApplication","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"9124:15:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_struct$_Application_$5262_memory_ptr_$","typeString":"function (bytes32) view returns (struct IPolicy.Application memory)"}},"id":28219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9124:25:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application memory"}},"id":28220,"nodeType":"ExpressionStatement","src":"9124:25:96"},{"assignments":[28225],"declarations":[{"constant":false,"id":28225,"mutability":"mutable","name":"claim","nameLocation":"9187:5:96","nodeType":"VariableDeclaration","scope":28273,"src":"9166:26:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim"},"typeName":{"id":28224,"nodeType":"UserDefinedTypeName","pathNode":{"id":28223,"name":"IPolicy.Claim","nodeType":"IdentifierPath","referencedDeclaration":5296,"src":"9166:13:96"},"referencedDeclaration":5296,"src":"9166:13:96","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_storage_ptr","typeString":"struct IPolicy.Claim"}},"visibility":"internal"}],"id":28230,"initialValue":{"arguments":[{"id":28227,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9223:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28228,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28211,"src":"9233:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28226,"name":"_getClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3990,"src":"9213:9:96","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_struct$_Claim_$5296_memory_ptr_$","typeString":"function (bytes32,uint256) view returns (struct IPolicy.Claim memory)"}},"id":28229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9213:28:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"nodeType":"VariableDeclarationStatement","src":"9166:75:96"},{"assignments":[28232],"declarations":[{"constant":false,"id":28232,"mutability":"mutable","name":"confirmedAmount","nameLocation":"9302:15:96","nodeType":"VariableDeclaration","scope":28273,"src":"9294:23:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28231,"name":"uint256","nodeType":"ElementaryTypeName","src":"9294:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28235,"initialValue":{"expression":{"id":28233,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28225,"src":"9320:5:96","typeDescriptions":{"typeIdentifier":"t_struct$_Claim_$5296_memory_ptr","typeString":"struct IPolicy.Claim memory"}},"id":28234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"claimAmount","nodeType":"MemberAccess","referencedDeclaration":5287,"src":"9320:17:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9294:43:96"},{"expression":{"arguments":[{"id":28237,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9366:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28238,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28211,"src":"9376:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28239,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28232,"src":"9385:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28236,"name":"_confirmClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"9352:13:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":28240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9352:49:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28241,"nodeType":"ExpressionStatement","src":"9352:49:96"},{"assignments":[28243],"declarations":[{"constant":false,"id":28243,"mutability":"mutable","name":"payoutAmount","nameLocation":"9463:12:96","nodeType":"VariableDeclaration","scope":28273,"src":"9455:20:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28242,"name":"uint256","nodeType":"ElementaryTypeName","src":"9455:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28245,"initialValue":{"id":28244,"name":"confirmedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28232,"src":"9478:15:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9455:38:96"},{"assignments":[28247],"declarations":[{"constant":false,"id":28247,"mutability":"mutable","name":"payoutData","nameLocation":"9521:10:96","nodeType":"VariableDeclaration","scope":28273,"src":"9508:23:96","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":28246,"name":"bytes","nodeType":"ElementaryTypeName","src":"9508:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":28252,"initialValue":{"arguments":[{"hexValue":"30","id":28250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9545:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":28248,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4294967295,"src":"9534:3:96","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","src":"9534:10:96","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":28251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9534:13:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9508:39:96"},{"assignments":[28254],"declarations":[{"constant":false,"id":28254,"mutability":"mutable","name":"payoutId","nameLocation":"9570:8:96","nodeType":"VariableDeclaration","scope":28273,"src":"9562:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28253,"name":"uint256","nodeType":"ElementaryTypeName","src":"9562:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":28261,"initialValue":{"arguments":[{"id":28256,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9592:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28257,"name":"claimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28211,"src":"9602:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28258,"name":"payoutAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28243,"src":"9611:12:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28259,"name":"payoutData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28247,"src":"9625:10:96","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28255,"name":"_newPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"9581:10:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,uint256,uint256,bytes memory) returns (uint256)"}},"id":28260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9581:55:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9562:74:96"},{"expression":{"id":28266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28262,"name":"_policyIdToPayoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27597,"src":"9651:19:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28264,"indexExpression":{"id":28263,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9671:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9651:29:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28265,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28254,"src":"9683:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9651:40:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28267,"nodeType":"ExpressionStatement","src":"9651:40:96"},{"expression":{"arguments":[{"id":28269,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"9723:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28270,"name":"payoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28254,"src":"9733:8:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28268,"name":"_processPayout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3891,"src":"9708:14:96","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,uint256) returns (uint256,uint256)"}},"id":28271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9708:34:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"id":28272,"nodeType":"ExpressionStatement","src":"9708:34:96"}]}}]},"functionSelector":"5e61aa63","id":28282,"implemented":true,"kind":"function","modifiers":[{"id":28192,"modifierName":{"id":28191,"name":"onlyOracle","nodeType":"IdentifierPath","referencedDeclaration":3487,"src":"8714:10:96"},"nodeType":"ModifierInvocation","src":"8714:10:96"}],"name":"oracleCallback","nameLocation":"8570:14:96","nodeType":"FunctionDefinition","parameters":{"id":28190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28185,"mutability":"mutable","name":"requestId","nameLocation":"8603:9:96","nodeType":"VariableDeclaration","scope":28282,"src":"8595:17:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28184,"name":"uint256","nodeType":"ElementaryTypeName","src":"8595:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28187,"mutability":"mutable","name":"policyId","nameLocation":"8632:8:96","nodeType":"VariableDeclaration","scope":28282,"src":"8624:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8624:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28189,"mutability":"mutable","name":"responseData","nameLocation":"8667:12:96","nodeType":"VariableDeclaration","scope":28282,"src":"8652:27:96","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":28188,"name":"bytes","nodeType":"ElementaryTypeName","src":"8652:5:96","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8584:102:96"},"returnParameters":{"id":28193,"nodeType":"ParameterList","parameters":[],"src":"8730:0:96"},"scope":28333,"src":"8561:1526:96","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28293,"nodeType":"Block","src":"10165:40:96","statements":[{"expression":{"baseExpression":{"id":28289,"name":"_policyIdToClaimId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27593,"src":"10174:18:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28291,"indexExpression":{"id":28290,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28284,"src":"10193:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10174:28:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28288,"id":28292,"nodeType":"Return","src":"10167:35:96"}]},"functionSelector":"ab72c4e1","id":28294,"implemented":true,"kind":"function","modifiers":[],"name":"getClaimId","nameLocation":"10104:10:96","nodeType":"FunctionDefinition","parameters":{"id":28285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28284,"mutability":"mutable","name":"policyId","nameLocation":"10123:8:96","nodeType":"VariableDeclaration","scope":28294,"src":"10115:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10115:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10114:18:96"},"returnParameters":{"id":28288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28294,"src":"10156:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28286,"name":"uint256","nodeType":"ElementaryTypeName","src":"10156:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10155:9:96"},"scope":28333,"src":"10095:110:96","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28305,"nodeType":"Block","src":"10282:41:96","statements":[{"expression":{"baseExpression":{"id":28301,"name":"_policyIdToPayoutId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27597,"src":"10291:19:96","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":28303,"indexExpression":{"id":28302,"name":"policyId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28296,"src":"10311:8:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10291:29:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28300,"id":28304,"nodeType":"Return","src":"10284:36:96"}]},"functionSelector":"29abdbd7","id":28306,"implemented":true,"kind":"function","modifiers":[],"name":"getPayoutId","nameLocation":"10220:11:96","nodeType":"FunctionDefinition","parameters":{"id":28297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28296,"mutability":"mutable","name":"policyId","nameLocation":"10240:8:96","nodeType":"VariableDeclaration","scope":28306,"src":"10232:16:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10232:7:96","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10231:18:96"},"returnParameters":{"id":28300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28306,"src":"10273:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28298,"name":"uint256","nodeType":"ElementaryTypeName","src":"10273:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10272:9:96"},"scope":28333,"src":"10211:112:96","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28314,"nodeType":"Block","src":"10385:32:96","statements":[{"expression":{"expression":{"id":28311,"name":"_applications","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27584,"src":"10394:13:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":28312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10394:20:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28310,"id":28313,"nodeType":"Return","src":"10387:27:96"}]},"functionSelector":"7ce5e82f","id":28315,"implemented":true,"kind":"function","modifiers":[],"name":"applications","nameLocation":"10338:12:96","nodeType":"FunctionDefinition","parameters":{"id":28307,"nodeType":"ParameterList","parameters":[],"src":"10350:2:96"},"returnParameters":{"id":28310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28315,"src":"10376:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28308,"name":"uint256","nodeType":"ElementaryTypeName","src":"10376:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10375:9:96"},"scope":28333,"src":"10329:88:96","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28323,"nodeType":"Block","src":"10475:28:96","statements":[{"expression":{"expression":{"id":28320,"name":"_policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27587,"src":"10484:9:96","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":28321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"10484:16:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28319,"id":28322,"nodeType":"Return","src":"10477:23:96"}]},"functionSelector":"702e7e1f","id":28324,"implemented":true,"kind":"function","modifiers":[],"name":"policies","nameLocation":"10432:8:96","nodeType":"FunctionDefinition","parameters":{"id":28316,"nodeType":"ParameterList","parameters":[],"src":"10440:2:96"},"returnParameters":{"id":28319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28318,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28324,"src":"10466:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28317,"name":"uint256","nodeType":"ElementaryTypeName","src":"10466:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10465:9:96"},"scope":28333,"src":"10423:80:96","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28331,"nodeType":"Block","src":"10559:19:96","statements":[{"expression":{"id":28329,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"10568:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28328,"id":28330,"nodeType":"Return","src":"10561:14:96"}]},"functionSelector":"dcc59b6f","id":28332,"implemented":true,"kind":"function","modifiers":[],"name":"claims","nameLocation":"10518:6:96","nodeType":"FunctionDefinition","parameters":{"id":28325,"nodeType":"ParameterList","parameters":[],"src":"10524:2:96"},"returnParameters":{"id":28328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28332,"src":"10550:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28326,"name":"uint256","nodeType":"ElementaryTypeName","src":"10550:7:96","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10549:9:96"},"scope":28333,"src":"10509:69:96","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":28334,"src":"409:10172:96"}],"src":"40:10541:96"},"id":96},"contracts/test/TestRegistryCompromisedController.sol":{"ast":{"absolutePath":"contracts/test/TestRegistryCompromisedController.sol","exportedSymbols":{"TestRegistryCompromisedController":[28386]},"id":28387,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28335,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:97"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":28386,"linearizedBaseContracts":[28386],"name":"TestRegistryCompromisedController","nameLocation":"75:33:97","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"dadbccee","id":28341,"mutability":"constant","name":"POLICY","nameLocation":"142:6:97","nodeType":"VariableDeclaration","scope":28386,"src":"118:50:97","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"118:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"506f6c696379","id":28339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"159:8:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""},"value":"Policy"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f74795b92f70f3e669cc782c4d3eef2f287a644296402073b8566d4eabd6622a","typeString":"literal_string \"Policy\""}],"id":28338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"151:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":28337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151:7:97","typeDescriptions":{}}},"id":28340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"151:17:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":true,"functionSelector":"4f6fc0b1","id":28347,"mutability":"constant","name":"QUERY","nameLocation":"199:5:97","nodeType":"VariableDeclaration","scope":28386,"src":"175:48:97","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"175:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"5175657279","id":28345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"215:7:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""},"value":"Query"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de27146501ae3a78760bc5f3cf670e34e42f94d4009fee9f620352506ade7ceb","typeString":"literal_string \"Query\""}],"id":28344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"207:7:97","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":28343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"207:7:97","typeDescriptions":{}}},"id":28346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"207:16:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"functionSelector":"ec56a373","id":28351,"mutability":"mutable","name":"contracts","nameLocation":"267:9:97","nodeType":"VariableDeclaration","scope":28386,"src":"232:44:97","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":28350,"keyType":{"id":28348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"240:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"232:27:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":28349,"name":"address","nodeType":"ElementaryTypeName","src":"251:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"body":{"id":28364,"nodeType":"Block","src":"406:58:97","statements":[{"expression":{"id":28362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28358,"name":"moduleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28356,"src":"417:13:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":28359,"name":"contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28351,"src":"433:9:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":28361,"indexExpression":{"id":28360,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28353,"src":"443:12:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"433:23:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"417:39:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28363,"nodeType":"ExpressionStatement","src":"417:39:97"}]},"functionSelector":"e16c7d98","id":28365,"implemented":true,"kind":"function","modifiers":[],"name":"getContract","nameLocation":"294:11:97","nodeType":"FunctionDefinition","parameters":{"id":28354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28353,"mutability":"mutable","name":"contractName","nameLocation":"314:12:97","nodeType":"VariableDeclaration","scope":28365,"src":"306:20:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306:7:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"305:22:97"},"returnParameters":{"id":28357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28356,"mutability":"mutable","name":"moduleAddress","nameLocation":"386:13:97","nodeType":"VariableDeclaration","scope":28365,"src":"378:21:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28355,"name":"address","nodeType":"ElementaryTypeName","src":"378:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"377:23:97"},"scope":28386,"src":"285:179:97","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28384,"nodeType":"Block","src":"618:126:97","statements":[{"expression":{"id":28376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28372,"name":"contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28351,"src":"630:9:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":28374,"indexExpression":{"id":28373,"name":"POLICY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28341,"src":"640:6:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"630:17:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28375,"name":"compromisedPolicyModuleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28367,"src":"650:30:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"630:50:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28377,"nodeType":"ExpressionStatement","src":"630:50:97"},{"expression":{"id":28382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28378,"name":"contracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28351,"src":"691:9:97","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":28380,"indexExpression":{"id":28379,"name":"QUERY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28347,"src":"701:5:97","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"691:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28381,"name":"originalQueryModuleAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28369,"src":"710:26:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"691:45:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28383,"nodeType":"ExpressionStatement","src":"691:45:97"}]},"functionSelector":"2bc0d7fb","id":28385,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeToV2","nameLocation":"481:11:97","nodeType":"FunctionDefinition","parameters":{"id":28370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28367,"mutability":"mutable","name":"compromisedPolicyModuleAddress","nameLocation":"511:30:97","nodeType":"VariableDeclaration","scope":28385,"src":"503:38:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28366,"name":"address","nodeType":"ElementaryTypeName","src":"503:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28369,"mutability":"mutable","name":"originalQueryModuleAddress","nameLocation":"561:26:97","nodeType":"VariableDeclaration","scope":28385,"src":"553:34:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28368,"name":"address","nodeType":"ElementaryTypeName","src":"553:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"492:102:97"},"returnParameters":{"id":28371,"nodeType":"ParameterList","parameters":[],"src":"618:0:97"},"scope":28386,"src":"472:272:97","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":28387,"src":"66:681:97"}],"src":"40:709:97"},"id":97},"contracts/test/TestRegistryControllerUpdated.sol":{"ast":{"absolutePath":"contracts/test/TestRegistryControllerUpdated.sol","exportedSymbols":{"Address":[10496],"Context":[10518],"CoreController":[26413],"EnumerableSet":[11439],"IAccess":[4836],"IRegistry":[5714],"Initializable":[8059],"RegistryController":[22155],"Strings":[10804],"TestRegistryControllerUpdated":[28436]},"id":28437,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28388,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:98"},{"absolutePath":"contracts/modules/RegistryController.sol","file":"../modules/RegistryController.sol","id":28389,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28437,"sourceUnit":22156,"src":"66:43:98","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":28390,"name":"RegistryController","nodeType":"IdentifierPath","referencedDeclaration":22155,"src":"157:18:98"},"id":28391,"nodeType":"InheritanceSpecifier","src":"157:18:98"}],"contractDependencies":[5714,8059,10518,22155,26413],"contractKind":"contract","fullyImplemented":true,"id":28436,"linearizedBaseContracts":[28436,22155,26413,8059,10518,5714],"name":"TestRegistryControllerUpdated","nameLocation":"124:29:98","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":28393,"mutability":"mutable","name":"message","nameLocation":"192:7:98","nodeType":"VariableDeclaration","scope":28436,"src":"185:14:98","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":28392,"name":"string","nodeType":"ElementaryTypeName","src":"185:6:98","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28395,"mutability":"mutable","name":"upgradeV2","nameLocation":"211:9:98","nodeType":"VariableDeclaration","scope":28436,"src":"206:14:98","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28394,"name":"bool","nodeType":"ElementaryTypeName","src":"206:4:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"body":{"id":28406,"nodeType":"Block","src":"301:23:98","statements":[{"expression":{"id":28404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28402,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"303:7:98","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28403,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28397,"src":"313:8:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"303:18:98","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":28405,"nodeType":"ExpressionStatement","src":"303:18:98"}]},"functionSelector":"368b8772","id":28407,"implemented":true,"kind":"function","modifiers":[{"id":28400,"modifierName":{"id":28399,"name":"onlyInstanceOperator","nodeType":"IdentifierPath","referencedDeclaration":26314,"src":"280:20:98"},"nodeType":"ModifierInvocation","src":"280:20:98"}],"name":"setMessage","nameLocation":"238:10:98","nodeType":"FunctionDefinition","parameters":{"id":28398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28397,"mutability":"mutable","name":"_message","nameLocation":"263:8:98","nodeType":"VariableDeclaration","scope":28407,"src":"249:22:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28396,"name":"string","nodeType":"ElementaryTypeName","src":"249:6:98","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"248:24:98"},"returnParameters":{"id":28401,"nodeType":"ParameterList","parameters":[],"src":"301:0:98"},"scope":28436,"src":"229:95:98","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":28414,"nodeType":"Block","src":"388:19:98","statements":[{"expression":{"id":28412,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28393,"src":"397:7:98","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":28411,"id":28413,"nodeType":"Return","src":"390:14:98"}]},"functionSelector":"ce6d41de","id":28415,"implemented":true,"kind":"function","modifiers":[],"name":"getMessage","nameLocation":"339:10:98","nodeType":"FunctionDefinition","parameters":{"id":28408,"nodeType":"ParameterList","parameters":[],"src":"349:2:98"},"returnParameters":{"id":28411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28415,"src":"373:13:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28409,"name":"string","nodeType":"ElementaryTypeName","src":"373:6:98","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"372:15:98"},"scope":28436,"src":"330:77:98","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":28434,"nodeType":"Block","src":"467:135:98","statements":[{"expression":{"arguments":[{"id":28422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"487:10:98","subExpression":{"id":28421,"name":"upgradeV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28395,"src":"488:9:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a5245432d3130323a555047524144455f4f4e43455f4f4d4c59","id":28423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"499:33:98","typeDescriptions":{"typeIdentifier":"t_stringliteral_584862d2e254607edab8323f691596b09145970a7a655d210eb1f81c78c94e40","typeString":"literal_string \"ERROR:REC-102:UPGRADE_ONCE_OMLY\""},"value":"ERROR:REC-102:UPGRADE_ONCE_OMLY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_584862d2e254607edab8323f691596b09145970a7a655d210eb1f81c78c94e40","typeString":"literal_string \"ERROR:REC-102:UPGRADE_ONCE_OMLY\""}],"id":28420,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"479:7:98","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"479:54:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28425,"nodeType":"ExpressionStatement","src":"479:54:98"},{"expression":{"id":28428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28426,"name":"upgradeV2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28395,"src":"544:9:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":28427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"556:4:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"544:16:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28429,"nodeType":"ExpressionStatement","src":"544:16:98"},{"expression":{"arguments":[{"id":28431,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28417,"src":"584:8:98","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":28430,"name":"setMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28407,"src":"573:10:98","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":28432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"573:20:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28433,"nodeType":"ExpressionStatement","src":"573:20:98"}]},"functionSelector":"2b34378a","id":28435,"implemented":true,"kind":"function","modifiers":[],"name":"upgradeToV2","nameLocation":"424:11:98","nodeType":"FunctionDefinition","parameters":{"id":28418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28417,"mutability":"mutable","name":"_message","nameLocation":"450:8:98","nodeType":"VariableDeclaration","scope":28435,"src":"436:22:98","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28416,"name":"string","nodeType":"ElementaryTypeName","src":"436:6:98","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"435:24:98"},"returnParameters":{"id":28419,"nodeType":"ParameterList","parameters":[],"src":"467:0:98"},"scope":28436,"src":"415:187:98","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":28437,"src":"115:490:98"}],"src":"40:567:98"},"id":98},"contracts/test/TestRiskpool.sol":{"ast":{"absolutePath":"contracts/test/TestRiskpool.sol","exportedSymbols":{"BasicRiskpool":[2464],"Component":[2884],"Context":[10518],"IAccess":[4836],"IBundle":[5020],"IBundleToken":[6825],"IComponent":[2988],"IComponentEvents":[5073],"IComponentOwnerService":[6009],"IERC165":[10840],"IERC20":[8831],"IERC721":[10156],"IInstanceOperatorService":[6160],"IInstanceService":[6509],"IOracleService":[6519],"IPolicy":[5433],"IPool":[5549],"IProductService":[6664],"IRegistry":[5714],"IRiskpool":[3312],"IRiskpoolService":[6770],"ITreasury":[5974],"Ownable":[7481],"Riskpool":[4773],"TestRiskpool":[28488]},"id":28489,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28438,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:99"},{"absolutePath":"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol","file":"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol","id":28439,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28489,"sourceUnit":2465,"src":"66:72:99","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IBundle.sol","file":"@etherisc/gif-interface/contracts/modules/IBundle.sol","id":28440,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28489,"sourceUnit":5021,"src":"140:63:99","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","file":"@etherisc/gif-interface/contracts/modules/IPolicy.sol","id":28441,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28489,"sourceUnit":5434,"src":"205:63:99","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":28442,"name":"BasicRiskpool","nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"297:13:99"},"id":28443,"nodeType":"InheritanceSpecifier","src":"297:13:99"}],"contractDependencies":[2464,2884,2988,3312,4773,5073,7481,10518],"contractKind":"contract","fullyImplemented":true,"id":28488,"linearizedBaseContracts":[28488,2464,4773,2884,7481,10518,5073,3312,2988],"name":"TestRiskpool","nameLocation":"281:12:99","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"be61e91e","id":28448,"mutability":"constant","name":"SUM_OF_SUM_INSURED_CAP","nameLocation":"344:22:99","nodeType":"VariableDeclaration","scope":28488,"src":"320:55:99","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28444,"name":"uint256","nodeType":"ElementaryTypeName","src":"320:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"},"id":28447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":28445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"369:2:99","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3234","id":28446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"373:2:99","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"src":"369:6:99","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000000_by_1","typeString":"int_const 1000000000000000000000000"}},"visibility":"public"},{"body":{"id":28469,"nodeType":"Block","src":"650:3:99","statements":[]},"id":28470,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":28461,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28450,"src":"566:4:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":28462,"name":"collateralization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28452,"src":"572:17:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28463,"name":"SUM_OF_SUM_INSURED_CAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28448,"src":"591:22:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28464,"name":"erc20Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28454,"src":"615:10:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28465,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28456,"src":"627:6:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28466,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28458,"src":"635:8:99","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":28467,"modifierName":{"id":28460,"name":"BasicRiskpool","nodeType":"IdentifierPath","referencedDeclaration":2464,"src":"552:13:99"},"nodeType":"ModifierInvocation","src":"552:92:99"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":28459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28450,"mutability":"mutable","name":"name","nameLocation":"414:4:99","nodeType":"VariableDeclaration","scope":28470,"src":"406:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"406:7:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":28452,"mutability":"mutable","name":"collateralization","nameLocation":"437:17:99","nodeType":"VariableDeclaration","scope":28470,"src":"429:25:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28451,"name":"uint256","nodeType":"ElementaryTypeName","src":"429:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28454,"mutability":"mutable","name":"erc20Token","nameLocation":"473:10:99","nodeType":"VariableDeclaration","scope":28470,"src":"465:18:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28453,"name":"address","nodeType":"ElementaryTypeName","src":"465:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28456,"mutability":"mutable","name":"wallet","nameLocation":"502:6:99","nodeType":"VariableDeclaration","scope":28470,"src":"494:14:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28455,"name":"address","nodeType":"ElementaryTypeName","src":"494:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28458,"mutability":"mutable","name":"registry","nameLocation":"527:8:99","nodeType":"VariableDeclaration","scope":28470,"src":"519:16:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28457,"name":"address","nodeType":"ElementaryTypeName","src":"519:7:99","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"395:147:99"},"returnParameters":{"id":28468,"nodeType":"ParameterList","parameters":[],"src":"650:0:99"},"scope":28488,"src":"384:269:99","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"baseFunctions":[4722],"body":{"id":28486,"nodeType":"Block","src":"933:36:99","statements":[{"expression":{"id":28484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28482,"name":"isMatching","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28480,"src":"944:10:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":28483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"957:4:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"944:17:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28485,"nodeType":"ExpressionStatement","src":"944:17:99"}]},"functionSelector":"86c71288","id":28487,"implemented":true,"kind":"function","modifiers":[],"name":"bundleMatchesApplication","nameLocation":"732:24:99","nodeType":"FunctionDefinition","overrides":{"id":28478,"nodeType":"OverrideSpecifier","overrides":[],"src":"870:8:99"},"parameters":{"id":28477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28473,"mutability":"mutable","name":"bundle","nameLocation":"789:6:99","nodeType":"VariableDeclaration","scope":28487,"src":"767:28:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_memory_ptr","typeString":"struct IBundle.Bundle"},"typeName":{"id":28472,"nodeType":"UserDefinedTypeName","pathNode":{"id":28471,"name":"IBundle.Bundle","nodeType":"IdentifierPath","referencedDeclaration":4936,"src":"767:14:99"},"referencedDeclaration":4936,"src":"767:14:99","typeDescriptions":{"typeIdentifier":"t_struct$_Bundle_$4936_storage_ptr","typeString":"struct IBundle.Bundle"}},"visibility":"internal"},{"constant":false,"id":28476,"mutability":"mutable","name":"application","nameLocation":"834:11:99","nodeType":"VariableDeclaration","scope":28487,"src":"807:38:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_memory_ptr","typeString":"struct IPolicy.Application"},"typeName":{"id":28475,"nodeType":"UserDefinedTypeName","pathNode":{"id":28474,"name":"IPolicy.Application","nodeType":"IdentifierPath","referencedDeclaration":5262,"src":"807:19:99"},"referencedDeclaration":5262,"src":"807:19:99","typeDescriptions":{"typeIdentifier":"t_struct$_Application_$5262_storage_ptr","typeString":"struct IPolicy.Application"}},"visibility":"internal"}],"src":"756:96:99"},"returnParameters":{"id":28481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28480,"mutability":"mutable","name":"isMatching","nameLocation":"915:10:99","nodeType":"VariableDeclaration","scope":28487,"src":"910:15:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28479,"name":"bool","nodeType":"ElementaryTypeName","src":"910:4:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"909:17:99"},"scope":28488,"src":"723:246:99","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":28489,"src":"272:702:99"}],"src":"40:934:99"},"id":99},"contracts/test/TestTransferFrom.sol":{"ast":{"absolutePath":"contracts/test/TestTransferFrom.sol","exportedSymbols":{"IERC20":[8831],"TestTransferFrom":[28538],"TransferHelper":[26659]},"id":28539,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28490,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"40:22:100"},{"absolutePath":"contracts/shared/TransferHelper.sol","file":"../shared/TransferHelper.sol","id":28491,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28539,"sourceUnit":26660,"src":"66:38:100","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","id":28492,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28539,"sourceUnit":8832,"src":"108:56:100","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":28538,"linearizedBaseContracts":[28538],"name":"TestTransferFrom","nameLocation":"177:16:100","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"id":28500,"name":"LogTransferHelperInputValidation1Failed","nameLocation":"209:39:100","nodeType":"EventDefinition","parameters":{"id":28499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28494,"indexed":false,"mutability":"mutable","name":"tokenIsContract","nameLocation":"254:15:100","nodeType":"VariableDeclaration","scope":28500,"src":"249:20:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28493,"name":"bool","nodeType":"ElementaryTypeName","src":"249:4:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28496,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"279:4:100","nodeType":"VariableDeclaration","scope":28500,"src":"271:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28495,"name":"address","nodeType":"ElementaryTypeName","src":"271:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28498,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"293:2:100","nodeType":"VariableDeclaration","scope":28500,"src":"285:10:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28497,"name":"address","nodeType":"ElementaryTypeName","src":"285:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"248:48:100"},"src":"203:94:100"},{"anonymous":false,"id":28506,"name":"LogTransferHelperInputValidation2Failed","nameLocation":"309:39:100","nodeType":"EventDefinition","parameters":{"id":28505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28502,"indexed":false,"mutability":"mutable","name":"balance","nameLocation":"357:7:100","nodeType":"VariableDeclaration","scope":28506,"src":"349:15:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28501,"name":"uint256","nodeType":"ElementaryTypeName","src":"349:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28504,"indexed":false,"mutability":"mutable","name":"allowance","nameLocation":"374:9:100","nodeType":"VariableDeclaration","scope":28506,"src":"366:17:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28503,"name":"uint256","nodeType":"ElementaryTypeName","src":"366:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"348:36:100"},"src":"303:82:100"},{"anonymous":false,"id":28514,"name":"LogTransferHelperCallFailed","nameLocation":"397:27:100","nodeType":"EventDefinition","parameters":{"id":28513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28508,"indexed":false,"mutability":"mutable","name":"callSuccess","nameLocation":"430:11:100","nodeType":"VariableDeclaration","scope":28514,"src":"425:16:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28507,"name":"bool","nodeType":"ElementaryTypeName","src":"425:4:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28510,"indexed":false,"mutability":"mutable","name":"returnDataLength","nameLocation":"451:16:100","nodeType":"VariableDeclaration","scope":28514,"src":"443:24:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28509,"name":"uint256","nodeType":"ElementaryTypeName","src":"443:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28512,"indexed":false,"mutability":"mutable","name":"returnData","nameLocation":"475:10:100","nodeType":"VariableDeclaration","scope":28514,"src":"469:16:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":28511,"name":"bytes","nodeType":"ElementaryTypeName","src":"469:5:100","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"424:62:100"},"src":"391:96:100"},{"body":{"id":28536,"nodeType":"Block","src":"674:85:100","statements":[{"expression":{"arguments":[{"id":28530,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28517,"src":"727:5:100","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},{"id":28531,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28519,"src":"734:4:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28532,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28521,"src":"740:2:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28533,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28523,"src":"744:6:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28528,"name":"TransferHelper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26659,"src":"692:14:100","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TransferHelper_$26659_$","typeString":"type(library TransferHelper)"}},"id":28529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unifiedTransferFrom","nodeType":"MemberAccess","referencedDeclaration":26658,"src":"692:34:100","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$8831_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) returns (bool)"}},"id":28534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"692:59:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":28527,"id":28535,"nodeType":"Return","src":"685:66:100"}]},"functionSelector":"86aa75d7","id":28537,"implemented":true,"kind":"function","modifiers":[],"name":"unifiedTransferFrom","nameLocation":"504:19:100","nodeType":"FunctionDefinition","parameters":{"id":28524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28517,"mutability":"mutable","name":"token","nameLocation":"541:5:100","nodeType":"VariableDeclaration","scope":28537,"src":"534:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"},"typeName":{"id":28516,"nodeType":"UserDefinedTypeName","pathNode":{"id":28515,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":8831,"src":"534:6:100"},"referencedDeclaration":8831,"src":"534:6:100","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$8831","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":28519,"mutability":"mutable","name":"from","nameLocation":"566:4:100","nodeType":"VariableDeclaration","scope":28537,"src":"558:12:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28518,"name":"address","nodeType":"ElementaryTypeName","src":"558:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28521,"mutability":"mutable","name":"to","nameLocation":"590:2:100","nodeType":"VariableDeclaration","scope":28537,"src":"582:10:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28520,"name":"address","nodeType":"ElementaryTypeName","src":"582:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28523,"mutability":"mutable","name":"amount","nameLocation":"612:6:100","nodeType":"VariableDeclaration","scope":28537,"src":"604:14:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28522,"name":"uint256","nodeType":"ElementaryTypeName","src":"604:7:100","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"523:102:100"},"returnParameters":{"id":28527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28537,"src":"663:4:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28525,"name":"bool","nodeType":"ElementaryTypeName","src":"663:4:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"662:6:100"},"scope":28538,"src":"495:264:100","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":28539,"src":"168:596:100"}],"src":"40:726:100"},"id":100},"contracts/tokens/BundleToken.sol":{"ast":{"absolutePath":"contracts/tokens/BundleToken.sol","exportedSymbols":{"Address":[10496],"BundleToken":[28751],"Context":[10518],"ERC165":[10828],"ERC721":[10040],"IBundleToken":[6825],"IERC165":[10840],"IERC721":[10156],"IERC721Metadata":[10201],"IERC721Receiver":[10174],"Ownable":[7481],"Strings":[10804]},"id":28752,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28540,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:101"},{"absolutePath":"@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","id":28541,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28752,"sourceUnit":7482,"src":"63:52:101","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC721/ERC721.sol","file":"@openzeppelin/contracts/token/ERC721/ERC721.sol","id":28542,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28752,"sourceUnit":10041,"src":"116:57:101","symbolAliases":[],"unitAlias":""},{"absolutePath":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","file":"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol","id":28543,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28752,"sourceUnit":6826,"src":"175:67:101","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":28544,"name":"IBundleToken","nodeType":"IdentifierPath","referencedDeclaration":6825,"src":"273:12:101"},"id":28545,"nodeType":"InheritanceSpecifier","src":"273:12:101"},{"baseName":{"id":28546,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":10040,"src":"291:6:101"},"id":28547,"nodeType":"InheritanceSpecifier","src":"291:6:101"},{"baseName":{"id":28548,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"303:7:101"},"id":28549,"nodeType":"InheritanceSpecifier","src":"303:7:101"}],"contractDependencies":[6825,7481,10040,10156,10201,10518,10828,10840],"contractKind":"contract","fullyImplemented":true,"id":28751,"linearizedBaseContracts":[28751,7481,10040,10201,6825,10156,10828,10840,10518],"name":"BundleToken","nameLocation":"253:11:101","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":28552,"mutability":"constant","name":"NAME","nameLocation":"340:4:101","nodeType":"VariableDeclaration","scope":28751,"src":"317:48:101","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28550,"name":"string","nodeType":"ElementaryTypeName","src":"317:6:101","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4749462042756e646c6520546f6b656e","id":28551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"347:18:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_bbfc3e9b464864803acc054897a72761e0805ad16a65cd3c6e7237d5e77e32a8","typeString":"literal_string \"GIF Bundle Token\""},"value":"GIF Bundle Token"},"visibility":"public"},{"constant":true,"functionSelector":"f76f8d78","id":28555,"mutability":"constant","name":"SYMBOL","nameLocation":"394:6:101","nodeType":"VariableDeclaration","scope":28751,"src":"371:37:101","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28553,"name":"string","nodeType":"ElementaryTypeName","src":"371:6:101","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"42544b","id":28554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"403:5:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbd09d845af28ee5b0642a9230e90a4426144cbbda10cea126e4301fa7e1a7f0","typeString":"literal_string \"BTK\""},"value":"BTK"},"visibility":"public"},{"constant":false,"functionSelector":"6ae9d6e8","id":28559,"mutability":"mutable","name":"bundleIdForTokenId","nameLocation":"481:18:101","nodeType":"VariableDeclaration","scope":28751,"src":"415:84:101","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":28558,"keyType":{"id":28556,"name":"uint256","nodeType":"ElementaryTypeName","src":"423:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"415:58:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":28557,"name":"uint256","nodeType":"ElementaryTypeName","src":"449:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"constant":false,"id":28561,"mutability":"mutable","name":"_bundleModule","nameLocation":"521:13:101","nodeType":"VariableDeclaration","scope":28751,"src":"505:29:101","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28560,"name":"address","nodeType":"ElementaryTypeName","src":"505:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"constant":false,"id":28563,"mutability":"mutable","name":"_totalSupply","nameLocation":"556:12:101","nodeType":"VariableDeclaration","scope":28751,"src":"540:28:101","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28562,"name":"uint256","nodeType":"ElementaryTypeName","src":"540:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":28584,"nodeType":"Block","src":"603:180:101","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28566,"name":"_bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28561,"src":"621:13:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":28569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"646:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":28568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"638:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28567,"name":"address","nodeType":"ElementaryTypeName","src":"638:7:101","typeDescriptions":{}}},"id":28570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"638:10:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"621:27:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a42544b2d3030313a4e4f545f494e495449414c495a4544","id":28572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"650:31:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_71c345712a418cc2c46cd273ab8511c6cbb55feb2ba9f1d283511627144b0e51","typeString":"literal_string \"ERROR:BTK-001:NOT_INITIALIZED\""},"value":"ERROR:BTK-001:NOT_INITIALIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71c345712a418cc2c46cd273ab8511c6cbb55feb2ba9f1d283511627144b0e51","typeString":"literal_string \"ERROR:BTK-001:NOT_INITIALIZED\""}],"id":28565,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"613:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"613:69:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28574,"nodeType":"ExpressionStatement","src":"613:69:101"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":28576,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"700:10:101","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":28577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"700:12:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":28578,"name":"_bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28561,"src":"716:13:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"700:29:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c45","id":28580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"731:33:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4463d809287d808796cb4a3a161ee1bce186c0b33e3e1818bc6844ffcc5748f","typeString":"literal_string \"ERROR:BTK-002:NOT_BUNDLE_MODULE\""},"value":"ERROR:BTK-002:NOT_BUNDLE_MODULE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e4463d809287d808796cb4a3a161ee1bce186c0b33e3e1818bc6844ffcc5748f","typeString":"literal_string \"ERROR:BTK-002:NOT_BUNDLE_MODULE\""}],"id":28575,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"692:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"692:73:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28582,"nodeType":"ExpressionStatement","src":"692:73:101"},{"id":28583,"nodeType":"PlaceholderStatement","src":"775:1:101"}]},"id":28585,"name":"onlyBundleModule","nameLocation":"584:16:101","nodeType":"ModifierDefinition","parameters":{"id":28564,"nodeType":"ParameterList","parameters":[],"src":"600:2:101"},"src":"575:208:101","virtual":false,"visibility":"internal"},{"body":{"id":28594,"nodeType":"Block","src":"834:3:101","statements":[]},"id":28595,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":28588,"name":"NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28552,"src":"810:4:101","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28589,"name":"SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28555,"src":"816:6:101","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":28590,"modifierName":{"id":28587,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":10040,"src":"803:6:101"},"nodeType":"ModifierInvocation","src":"803:20:101"},{"arguments":[],"id":28592,"modifierName":{"id":28591,"name":"Ownable","nodeType":"IdentifierPath","referencedDeclaration":7481,"src":"824:7:101"},"nodeType":"ModifierInvocation","src":"824:9:101"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":28586,"nodeType":"ParameterList","parameters":[],"src":"800:2:101"},"returnParameters":{"id":28593,"nodeType":"ParameterList","parameters":[],"src":"834:0:101"},"scope":28751,"src":"789:48:101","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":28624,"nodeType":"Block","src":"911:230:101","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28601,"name":"_bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28561,"src":"929:13:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":28604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"954:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":28603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"946:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28602,"name":"address","nodeType":"ElementaryTypeName","src":"946:7:101","typeDescriptions":{}}},"id":28605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"946:10:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"929:27:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a42544b2d3030333a42554e444c455f4d4f44554c455f414c52454144595f444546494e4544","id":28607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"958:45:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_abc636ae2799ac58b80df921189c05433792fe090199f11c917db3daf328f355","typeString":"literal_string \"ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED\""},"value":"ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_abc636ae2799ac58b80df921189c05433792fe090199f11c917db3daf328f355","typeString":"literal_string \"ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED\""}],"id":28600,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"921:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"921:83:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28609,"nodeType":"ExpressionStatement","src":"921:83:101"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":28616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28611,"name":"bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28597,"src":"1022:12:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":28614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1046:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":28613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1038:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28612,"name":"address","nodeType":"ElementaryTypeName","src":"1038:7:101","typeDescriptions":{}}},"id":28615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1038:10:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1022:26:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a42544b2d3030343a494e56414c49445f42554e444c455f4d4f44554c455f41444452455353","id":28617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1050:45:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_b8c7de1baab44a0acb8a288a8111919b2fbe55231df4bb3c2c01062efb0d0040","typeString":"literal_string \"ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS\""},"value":"ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b8c7de1baab44a0acb8a288a8111919b2fbe55231df4bb3c2c01062efb0d0040","typeString":"literal_string \"ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS\""}],"id":28610,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1014:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1014:82:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28619,"nodeType":"ExpressionStatement","src":"1014:82:101"},{"expression":{"id":28622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28620,"name":"_bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28561,"src":"1106:13:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28621,"name":"bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28597,"src":"1122:12:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1106:28:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":28623,"nodeType":"ExpressionStatement","src":"1106:28:101"}]},"functionSelector":"a38b714c","id":28625,"implemented":true,"kind":"function","modifiers":[],"name":"setBundleModule","nameLocation":"852:15:101","nodeType":"FunctionDefinition","parameters":{"id":28598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28597,"mutability":"mutable","name":"bundleModule","nameLocation":"876:12:101","nodeType":"VariableDeclaration","scope":28625,"src":"868:20:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28596,"name":"address","nodeType":"ElementaryTypeName","src":"868:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"867:22:101"},"returnParameters":{"id":28599,"nodeType":"ParameterList","parameters":[],"src":"911:0:101"},"scope":28751,"src":"843:298:101","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28660,"nodeType":"Block","src":"1272:238:101","statements":[{"expression":{"id":28637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1282:14:101","subExpression":{"id":28636,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28563,"src":"1282:12:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28638,"nodeType":"ExpressionStatement","src":"1282:14:101"},{"expression":{"id":28641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28639,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28634,"src":"1306:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28640,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28563,"src":"1316:12:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1306:22:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28642,"nodeType":"ExpressionStatement","src":"1306:22:101"},{"expression":{"id":28647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":28643,"name":"bundleIdForTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28559,"src":"1338:18:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":28645,"indexExpression":{"id":28644,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28634,"src":"1357:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1338:27:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":28646,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28627,"src":"1368:8:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1338:38:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":28648,"nodeType":"ExpressionStatement","src":"1338:38:101"},{"expression":{"arguments":[{"id":28650,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28629,"src":"1413:2:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28651,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28634,"src":"1417:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28649,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[9655,9684],"referencedDeclaration":9655,"src":"1403:9:101","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":28652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1403:22:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28653,"nodeType":"ExpressionStatement","src":"1403:22:101"},{"eventCall":{"arguments":[{"id":28655,"name":"bundleId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28627,"src":"1470:8:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28656,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28634,"src":"1480:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28657,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28629,"src":"1489:2:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":28654,"name":"LogBundleTokenMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6792,"src":"1449:20:101","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,uint256,address)"}},"id":28658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1449:43:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28659,"nodeType":"EmitStatement","src":"1444:48:101"}]},"functionSelector":"94bf804d","id":28661,"implemented":true,"kind":"function","modifiers":[{"id":28632,"modifierName":{"id":28631,"name":"onlyBundleModule","nodeType":"IdentifierPath","referencedDeclaration":28585,"src":"1218:16:101"},"nodeType":"ModifierInvocation","src":"1218:16:101"}],"name":"mint","nameLocation":"1157:4:101","nodeType":"FunctionDefinition","parameters":{"id":28630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28627,"mutability":"mutable","name":"bundleId","nameLocation":"1170:8:101","nodeType":"VariableDeclaration","scope":28661,"src":"1162:16:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28626,"name":"uint256","nodeType":"ElementaryTypeName","src":"1162:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28629,"mutability":"mutable","name":"to","nameLocation":"1188:2:101","nodeType":"VariableDeclaration","scope":28661,"src":"1180:10:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28628,"name":"address","nodeType":"ElementaryTypeName","src":"1180:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1161:30:101"},"returnParameters":{"id":28635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28634,"mutability":"mutable","name":"tokenId","nameLocation":"1259:7:101","nodeType":"VariableDeclaration","scope":28661,"src":"1251:15:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28633,"name":"uint256","nodeType":"ElementaryTypeName","src":"1251:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1250:17:101"},"scope":28751,"src":"1148:362:101","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":28686,"nodeType":"Block","src":"1595:193:101","statements":[{"expression":{"arguments":[{"arguments":[{"id":28670,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28663,"src":"1621:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28669,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9606,"src":"1613:7:101","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":28671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1613:16:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552524f523a42544b2d3030353a544f4b454e5f49445f494e56414c4944","id":28672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1631:32:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b135c0fcb89fd6fb27d63d9c9b41b2ffa3e6cec6119734a095764dd4d45f96","typeString":"literal_string \"ERROR:BTK-005:TOKEN_ID_INVALID\""},"value":"ERROR:BTK-005:TOKEN_ID_INVALID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e9b135c0fcb89fd6fb27d63d9c9b41b2ffa3e6cec6119734a095764dd4d45f96","typeString":"literal_string \"ERROR:BTK-005:TOKEN_ID_INVALID\""}],"id":28668,"name":"require","nodeType":"Identifier","overloadedDeclarations":[4294967278,4294967278],"referencedDeclaration":4294967278,"src":"1605:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":28673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1605:59:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28674,"nodeType":"ExpressionStatement","src":"1605:59:101"},{"expression":{"arguments":[{"id":28676,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28663,"src":"1688:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28675,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9810,"src":"1682:5:101","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":28677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1682:14:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28678,"nodeType":"ExpressionStatement","src":"1682:14:101"},{"eventCall":{"arguments":[{"baseExpression":{"id":28680,"name":"bundleIdForTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28559,"src":"1741:18:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":28682,"indexExpression":{"id":28681,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28663,"src":"1760:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1741:27:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28683,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28663,"src":"1770:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28679,"name":"LogBundleTokenBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6798,"src":"1720:20:101","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":28684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1720:58:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28685,"nodeType":"EmitStatement","src":"1715:63:101"}]},"functionSelector":"42966c68","id":28687,"implemented":true,"kind":"function","modifiers":[{"id":28666,"modifierName":{"id":28665,"name":"onlyBundleModule","nodeType":"IdentifierPath","referencedDeclaration":28585,"src":"1574:16:101"},"nodeType":"ModifierInvocation","src":"1574:16:101"}],"name":"burn","nameLocation":"1526:4:101","nodeType":"FunctionDefinition","parameters":{"id":28664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28663,"mutability":"mutable","name":"tokenId","nameLocation":"1539:7:101","nodeType":"VariableDeclaration","scope":28687,"src":"1531:15:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28662,"name":"uint256","nodeType":"ElementaryTypeName","src":"1531:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1530:17:101"},"returnParameters":{"id":28667,"nodeType":"ParameterList","parameters":[],"src":"1595:0:101"},"scope":28751,"src":"1517:271:101","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"baseFunctions":[6805],"body":{"id":28706,"nodeType":"Block","src":"1900:72:101","statements":[{"expression":{"id":28704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":28695,"name":"isBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28693,"src":"1910:8:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":28703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28696,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28689,"src":"1921:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":28697,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28563,"src":"1932:12:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1921:23:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":28702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1948:17:101","subExpression":{"arguments":[{"id":28700,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28689,"src":"1957:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":28699,"name":"_exists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9606,"src":"1949:7:101","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":28701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1949:16:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1921:44:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1910:55:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":28705,"nodeType":"ExpressionStatement","src":"1910:55:101"}]},"functionSelector":"23250cae","id":28707,"implemented":true,"kind":"function","modifiers":[],"name":"burned","nameLocation":"1803:6:101","nodeType":"FunctionDefinition","overrides":{"id":28691,"nodeType":"OverrideSpecifier","overrides":[],"src":"1842:8:101"},"parameters":{"id":28690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28689,"mutability":"mutable","name":"tokenId","nameLocation":"1815:7:101","nodeType":"VariableDeclaration","scope":28707,"src":"1810:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28688,"name":"uint","nodeType":"ElementaryTypeName","src":"1810:4:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1809:14:101"},"returnParameters":{"id":28694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28693,"mutability":"mutable","name":"isBurned","nameLocation":"1886:8:101","nodeType":"VariableDeclaration","scope":28707,"src":"1881:13:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28692,"name":"bool","nodeType":"ElementaryTypeName","src":"1881:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1880:15:101"},"scope":28751,"src":"1794:178:101","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6819],"body":{"id":28719,"nodeType":"Block","src":"2056:39:101","statements":[{"expression":{"baseExpression":{"id":28715,"name":"bundleIdForTokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28559,"src":"2065:18:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":28717,"indexExpression":{"id":28716,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28709,"src":"2084:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2065:27:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28714,"id":28718,"nodeType":"Return","src":"2058:34:101"}]},"functionSelector":"29a63083","id":28720,"implemented":true,"kind":"function","modifiers":[],"name":"getBundleId","nameLocation":"1987:11:101","nodeType":"FunctionDefinition","overrides":{"id":28711,"nodeType":"OverrideSpecifier","overrides":[],"src":"2025:8:101"},"parameters":{"id":28710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28709,"mutability":"mutable","name":"tokenId","nameLocation":"2007:7:101","nodeType":"VariableDeclaration","scope":28720,"src":"1999:15:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28708,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1998:17:101"},"returnParameters":{"id":28714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28713,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28720,"src":"2047:7:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28712,"name":"uint256","nodeType":"ElementaryTypeName","src":"2047:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2046:9:101"},"scope":28751,"src":"1978:117:101","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":28727,"nodeType":"Block","src":"2165:25:101","statements":[{"expression":{"id":28725,"name":"_bundleModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28561,"src":"2174:13:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":28724,"id":28726,"nodeType":"Return","src":"2167:20:101"}]},"functionSelector":"6ae73384","id":28728,"implemented":true,"kind":"function","modifiers":[],"name":"getBundleModuleAddress","nameLocation":"2109:22:101","nodeType":"FunctionDefinition","parameters":{"id":28721,"nodeType":"ParameterList","parameters":[],"src":"2131:2:101"},"returnParameters":{"id":28724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28728,"src":"2156:7:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28722,"name":"address","nodeType":"ElementaryTypeName","src":"2156:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2155:9:101"},"scope":28751,"src":"2100:90:101","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6812],"body":{"id":28740,"nodeType":"Block","src":"2266:35:101","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":28738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":28736,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28730,"src":"2275:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":28737,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28563,"src":"2286:12:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2275:23:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":28735,"id":28739,"nodeType":"Return","src":"2268:30:101"}]},"functionSelector":"4f558e79","id":28741,"implemented":true,"kind":"function","modifiers":[],"name":"exists","nameLocation":"2205:6:101","nodeType":"FunctionDefinition","overrides":{"id":28732,"nodeType":"OverrideSpecifier","overrides":[],"src":"2238:8:101"},"parameters":{"id":28731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28730,"mutability":"mutable","name":"tokenId","nameLocation":"2220:7:101","nodeType":"VariableDeclaration","scope":28741,"src":"2212:15:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28729,"name":"uint256","nodeType":"ElementaryTypeName","src":"2212:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2211:17:101"},"returnParameters":{"id":28735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28734,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":28741,"src":"2260:4:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28733,"name":"bool","nodeType":"ElementaryTypeName","src":"2260:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2259:6:101"},"scope":28751,"src":"2196:105:101","stateMutability":"view","virtual":false,"visibility":"external"},{"baseFunctions":[6824],"body":{"id":28749,"nodeType":"Block","src":"2380:24:101","statements":[{"expression":{"id":28747,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28563,"src":"2389:12:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":28746,"id":28748,"nodeType":"Return","src":"2382:19:101"}]},"functionSelector":"18160ddd","id":28750,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"2315:11:101","nodeType":"FunctionDefinition","overrides":{"id":28743,"nodeType":"OverrideSpecifier","overrides":[],"src":"2338:8:101"},"parameters":{"id":28742,"nodeType":"ParameterList","parameters":[],"src":"2326:2:101"},"returnParameters":{"id":28746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28745,"mutability":"mutable","name":"tokenCount","nameLocation":"2368:10:101","nodeType":"VariableDeclaration","scope":28750,"src":"2360:18:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28744,"name":"uint256","nodeType":"ElementaryTypeName","src":"2360:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2359:20:101"},"scope":28751,"src":"2306:98:101","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":28752,"src":"244:2162:101"}],"src":"39:2368:101"},"id":101},"contracts/tokens/RiskpoolToken.sol":{"ast":{"absolutePath":"contracts/tokens/RiskpoolToken.sol","exportedSymbols":{"Context":[10518],"ERC20":[8753],"IERC20":[8831],"IERC20Metadata":[8856],"RiskpoolToken":[28771]},"id":28772,"license":"Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":28753,"literals":["solidity","0.8",".2"],"nodeType":"PragmaDirective","src":"39:22:102"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":28754,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":28772,"sourceUnit":8754,"src":"63:55:102","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":28755,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"150:5:102"},"id":28756,"nodeType":"InheritanceSpecifier","src":"150:5:102"}],"contractDependencies":[8753,8831,8856,10518],"contractKind":"contract","fullyImplemented":true,"id":28771,"linearizedBaseContracts":[28771,8753,8856,8831,10518],"name":"RiskpoolToken","nameLocation":"129:13:102","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"a3f4df7e","id":28759,"mutability":"constant","name":"NAME","nameLocation":"185:4:102","nodeType":"VariableDeclaration","scope":28771,"src":"162:50:102","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28757,"name":"string","nodeType":"ElementaryTypeName","src":"162:6:102","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"474946205269736b706f6f6c20546f6b656e","id":28758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"192:20:102","typeDescriptions":{"typeIdentifier":"t_stringliteral_c04ccc87e78cfe956236553ca7b60ff0e91646fd43eb163e8f00edfa2d550d1a","typeString":"literal_string \"GIF Riskpool Token\""},"value":"GIF Riskpool Token"},"visibility":"public"},{"constant":true,"functionSelector":"f76f8d78","id":28762,"mutability":"constant","name":"SYMBOL","nameLocation":"241:6:102","nodeType":"VariableDeclaration","scope":28771,"src":"218:37:102","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28760,"name":"string","nodeType":"ElementaryTypeName","src":"218:6:102","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"525054","id":28761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"250:5:102","typeDescriptions":{"typeIdentifier":"t_stringliteral_193fb9814d53cc9cda8187d0d39a8722345ce84f54c3c6acd15c420cb1471f43","typeString":"literal_string \"RPT\""},"value":"RPT"},"visibility":"public"},{"body":{"id":28769,"nodeType":"Block","src":"309:8:102","statements":[]},"id":28770,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":28765,"name":"NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28759,"src":"291:4:102","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28766,"name":"SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28762,"src":"297:6:102","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":28767,"modifierName":{"id":28764,"name":"ERC20","nodeType":"IdentifierPath","referencedDeclaration":8753,"src":"285:5:102"},"nodeType":"ModifierInvocation","src":"285:19:102"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":28763,"nodeType":"ParameterList","parameters":[],"src":"273:2:102"},"returnParameters":{"id":28768,"nodeType":"ParameterList","parameters":[],"src":"309:0:102"},"scope":28771,"src":"262:55:102","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":28772,"src":"120:199:102"}],"src":"39:281:102"},"id":102}},"contracts":{"@chainlink/contracts/src/v0.8/Chainlink.sol":{"Chainlink":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f21ad28c31b9d80a1984a2000941e273e3b3b71fe3fcff419a8ea3c0893efa8164736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE BYTE 0xD2 DUP13 BALANCE 0xB9 0xD8 EXP NOT DUP5 LOG2 STOP MULMOD COINBASE 0xE2 PUSH20 0xE3B3B71FE3FCFF419A8EA3C0893EFA8164736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;293:3494:0;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f21ad28c31b9d80a1984a2000941e273e3b3b71fe3fcff419a8ea3c0893efa8164736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE BYTE 0xD2 DUP13 BALANCE 0xB9 0xD8 EXP NOT DUP5 LOG2 STOP MULMOD COINBASE 0xE2 PUSH20 0xE3B3B71FE3FCFF419A8EA3C0893EFA8164736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"293:3494:0:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Uses imported CBOR library for encoding to buffer\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Library for common Chainlink functions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":\"Chainlink\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/ChainlinkClient.sol":{"ChainlinkClient":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"The ChainlinkClient contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contract writers can inherit this contract in order to create requests for the Chainlink network\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":\"ChainlinkClient\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol":{"ChainlinkRequestInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":\"ChainlinkRequestInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol":{"ENSInterface":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"label","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner(bytes32)":"02571be3","resolver(bytes32)":"0178b8bf","setOwner(bytes32,address)":"5b0fc9c3","setResolver(bytes32,address)":"1896f70a","setSubnodeOwner(bytes32,bytes32,address)":"06ab5923","setTTL(bytes32,uint64)":"14ab9038","ttl(bytes32)":"16a25cbd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"NewResolver\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"NewTTL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"resolver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"label\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"setSubnodeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"ttl\",\"type\":\"uint64\"}],\"name\":\"setTTL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"ttl\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":\"ENSInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol":{"LinkTokenInterface":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"decimalPlaces","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"increaseApproval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"tokenName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"tokenSymbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"totalTokensIssued","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseApproval(address,uint256)":"66188463","increaseApproval(address,uint256)":"d73dd623","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferAndCall(address,uint256,bytes)":"4000aea0","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"remaining\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"decimalPlaces\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"increaseApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"tokenSymbol\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalTokensIssued\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":\"LinkTokenInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol":{"OperatorInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"distributeFunds","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"fulfillOracleRequest2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAuthorizedSenders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getForwarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes32","name":"specId","type":"bytes32"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"operatorRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"requestPrice","type":"uint256"},{"internalType":"bytes32","name":"serviceAgreementID","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"ownerTransferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"senders","type":"address[]"}],"name":"setAuthorizedSenders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancelOracleRequest(bytes32,uint256,bytes4,uint256)":"6ee4d553","distributeFunds(address[],uint256[])":"6bd59ec0","fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)":"6ae0bc76","getAuthorizedSenders()":"2408afaa","getForwarder()":"a0042526","isAuthorizedSender(address)":"fa00763a","operatorRequest(address,uint256,bytes32,bytes4,uint256,uint256,bytes)":"3c6d41b9","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946","ownerTransferAndCall(address,uint256,bytes)":"902fc370","setAuthorizedSenders(address[])":"ee56997b","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"distributeFunds\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"fulfillOracleRequest2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuthorizedSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"specId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"operatorRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestPrice\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"serviceAgreementID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ownerTransferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"senders\",\"type\":\"address[]\"}],\"name\":\"setAuthorizedSenders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":\"OperatorInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol":{"OracleInterface":{"abi":[{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes32","name":"data","type":"bytes32"}],"name":"fulfillOracleRequest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"node","type":"address"}],"name":"isAuthorizedSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"fulfillOracleRequest(bytes32,uint256,address,bytes4,uint256,bytes32)":"4ab0d190","isAuthorizedSender(address)":"fa00763a","withdraw(address,uint256)":"f3fef3a3","withdrawable()":"50188301"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"fulfillOracleRequest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"node\",\"type\":\"address\"}],\"name\":\"isAuthorizedSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":\"OracleInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol":{"PointerInterface":{"abi":[{"inputs":[],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getAddress()":"38cc4831"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":\"PointerInterface\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol":{"BufferChainlink":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b90e44a5e48e43208418560358cef9c2b18e25770097989023282478f541b8d64736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST SWAP1 0xE4 0x4A 0x5E 0x48 0xE4 ORIGIN ADDMOD COINBASE DUP6 PUSH1 0x35 DUP13 0xEF SWAP13 0x2B XOR 0xE2 JUMPI PUSH17 0x97989023282478F541B8D64736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"441:9632:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;441:9632:8;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205b90e44a5e48e43208418560358cef9c2b18e25770097989023282478f541b8d64736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 JUMPDEST SWAP1 0xE4 0x4A 0x5E 0x48 0xE4 ORIGIN ADDMOD COINBASE DUP6 PUSH1 0x35 DUP13 0xEF SWAP13 0x2B XOR 0xE2 JUMPI PUSH17 0x97989023282478F541B8D64736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"441:9632:8:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"A library for working with mutable byte buffers in Solidity. Byte buffers are mutable and expandable, and provide a variety of primitives for writing to them. At any time you can fetch a bytes object containing the current contents of the buffer. The bytes object should not be stored between operations, as it may change due to resizing of the buffer.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":\"BufferChainlink\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol":{"CBORChainlink":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0cc11b5be072f7d7cbc8fdc042eb6f7ea573a98370f597573bece0637c51ec564736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 0xCC GT 0xB5 0xBE SMOD 0x2F PUSH30 0x7CBC8FDC042EB6F7EA573A98370F597573BECE0637C51EC564736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"115:3271:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;115:3271:9;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c0cc11b5be072f7d7cbc8fdc042eb6f7ea573a98370f597573bece0637c51ec564736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 0xCC GT 0xB5 0xBE SMOD 0x2F PUSH30 0x7CBC8FDC042EB6F7EA573A98370F597573BECE0637C51EC564736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"115:3271:9:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":\"CBORChainlink\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]}},\"version\":1}"}},"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol":{"ENSResolver":{"abi":[{"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"addr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addr(bytes32)":"3b3b57de"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"node\",\"type\":\"bytes32\"}],\"name\":\"addr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":\"ENSResolver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol":{"BasicRiskpool":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"activeBundles","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"LogBasicRiskpoolBundlesAndPolicies","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogBasicRiskpoolCandidateBundleAmountCheck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isMatching","type":"bool"}],"name":"LogRiskpoolBundleMatchesPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isSecured","type":"bool"}],"name":"LogRiskpoolCollateralLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolAddress","type":"address"}],"name":"LogRiskpoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"DEFAULT_FILTER_DATA_STRUCTURE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FULL_COLLATERALIZATION_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"},{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"name":"bundleMatchesApplication","outputs":[{"internalType":"bool","name":"isMatching","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialAmount","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapital","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getErc20Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFilterDataStructure","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSumOfSumInsuredCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_FILTER_DATA_STRUCTURE()":"7893c7bc","FULL_COLLATERALIZATION_LEVEL()":"45fe1c6d","activeBundles()":"4101b90c","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","bundleMatchesApplication((uint256,uint256,uint256,uint8,bytes,uint256,uint256,uint256,uint256,uint256),(uint8,uint256,uint256,bytes,uint256,uint256))":"86c71288","bundles()":"18442e63","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(bytes32,uint256)":"890fbf78","createBundle(bytes,uint256)":"7888a2ff","declineCallback()":"bd1fe5d0","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","getActiveBundleId(uint256)":"0676cb0e","getBalance()":"12065fe0","getBundle(uint256)":"2d0821b7","getCapacity()":"c40000d4","getCapital()":"e0032383","getCollateralizationLevel()":"54afef63","getErc20Token()":"feb1824b","getFilterDataStructure()":"3dcdde17","getFullCollateralizationLevel()":"f1d354d0","getId()":"5d1ca631","getMaximumNumberOfActiveBundles()":"7f3b6980","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getSumOfSumInsuredCap()":"a18aa128","getTotalValueLocked()":"b26025aa","getType()":"15dae03e","getWallet()":"13299604","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","lockBundle(uint256)":"a17030d5","owner()":"8da5cb5b","pauseCallback()":"d73cd992","processPolicyPayout(bytes32,uint256)":"82558906","processPolicyPremium(bytes32,uint256)":"3629c3c4","proposalCallback()":"638ce0ba","releasePolicy(bytes32)":"c3004c86","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","setMaximumNumberOfActiveBundles(uint256)":"652028e5","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unlockBundle(uint256)":"316c5348","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"activeBundles\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolBundlesAndPolicies\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolCandidateBundleAmountCheck\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolBundleMatchesPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolCollateralLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolAddress\",\"type\":\"address\"}],\"name\":\"LogRiskpoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_FILTER_DATA_STRUCTURE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_COLLATERALIZATION_LEVEL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"name\":\"bundleMatchesApplication\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialAmount\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getErc20Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFilterDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSumOfSumInsuredCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\":\"BasicRiskpool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\":{\"keccak256\":\"0xb86d781f945942220e37e1903420537fa3ad5539c0f341c4cccdfb1b11d196ee\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bb61f5c4724bcf6ece000fa46359dfabd60a91e82b8e637bf27e3028119047c\",\"dweb:/ipfs/QmWJ5zhmwCSKemq6PKhddWbbiEMsVVS9abCz5tU6s7b8f3\"]},\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Riskpool.sol\":{\"keccak256\":\"0x627c05cef03e42f2b798004db6d000d574c0edc383d185952592425895ada20e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d20ecfaf1ed6c983cd81482d982373b8d4d00f6cbe6ed0e67e78255e71c7ac86\",\"dweb:/ipfs/QmdwKC99b54yMa3rKJdwD4RjcbLgX6hkLV6SYjfgFbLi5T\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/Component.sol":{"Component":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","declineCallback()":"bd1fe5d0","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","owner()":"8da5cb5b","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":\"Component\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/IComponent.sol":{"IComponent":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","declineCallback()":"bd1fe5d0","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":\"IComponent\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/IOracle.sol":{"IOracle":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oracleAddress","type":"address"}],"name":"LogOracleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleProposed","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes","name":"input","type":"bytes"}],"name":"request","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","cancel(uint256)":"40e58ee5","declineCallback()":"bd1fe5d0","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","request(uint256,bytes)":"ffc79065","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"}],\"name\":\"LogOracleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleProposed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"request\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/IOracle.sol\":\"IOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/IProduct.sol":{"IProduct":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"productAddress","type":"address"}],"name":"LogProductCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductProposed","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getApplicationDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPayoutDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"policyFlow","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"riskPoolCapacityCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","declineCallback()":"bd1fe5d0","getApplicationDataStructure()":"94f64ff4","getClaimDataStructure()":"3ec92bda","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getPayoutDataStructure()":"39cf5e16","getPolicyFlow()":"637d08f4","getRegistry()":"5ab1bd53","getRiskpoolId()":"70d2fe53","getState()":"1865c57d","getToken()":"21df0da7","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","resumeCallback()":"a18f5ae2","riskPoolCapacityCallback(uint256)":"f4fdc1fa","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"LogProductCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductProposed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApplicationDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayoutDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"policyFlow\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"riskPoolCapacityCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/IProduct.sol\":\"IProduct\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/IRiskpool.sol":{"IRiskpool":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isMatching","type":"bool"}],"name":"LogRiskpoolBundleMatchesPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isSecured","type":"bool"}],"name":"LogRiskpoolCollateralLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolAddress","type":"address"}],"name":"LogRiskpoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolProposed","type":"event"},{"inputs":[],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"},{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"name":"bundleMatchesApplication","outputs":[{"internalType":"bool","name":"isMatching","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[{"internalType":"bool","name":"isSecured","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialAmount","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapital","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getErc20Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFilterDataStructure","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSumOfSumInsuredCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"activeBundles()":"4101b90c","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","bundleMatchesApplication((uint256,uint256,uint256,uint8,bytes,uint256,uint256,uint256,uint256,uint256),(uint8,uint256,uint256,bytes,uint256,uint256))":"86c71288","bundles()":"18442e63","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(bytes32,uint256)":"890fbf78","createBundle(bytes,uint256)":"7888a2ff","declineCallback()":"bd1fe5d0","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","getActiveBundleId(uint256)":"0676cb0e","getBalance()":"12065fe0","getBundle(uint256)":"2d0821b7","getCapacity()":"c40000d4","getCapital()":"e0032383","getCollateralizationLevel()":"54afef63","getErc20Token()":"feb1824b","getFilterDataStructure()":"3dcdde17","getFullCollateralizationLevel()":"f1d354d0","getId()":"5d1ca631","getMaximumNumberOfActiveBundles()":"7f3b6980","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getSumOfSumInsuredCap()":"a18aa128","getTotalValueLocked()":"b26025aa","getType()":"15dae03e","getWallet()":"13299604","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","lockBundle(uint256)":"a17030d5","pauseCallback()":"d73cd992","processPolicyPayout(bytes32,uint256)":"82558906","processPolicyPremium(bytes32,uint256)":"3629c3c4","proposalCallback()":"638ce0ba","releasePolicy(bytes32)":"c3004c86","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","setMaximumNumberOfActiveBundles(uint256)":"652028e5","suspendCallback()":"b3fca9bd","unlockBundle(uint256)":"316c5348","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolBundleMatchesPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolCollateralLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolAddress\",\"type\":\"address\"}],\"name\":\"LogRiskpoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolProposed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"name\":\"bundleMatchesApplication\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialAmount\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getErc20Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFilterDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSumOfSumInsuredCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":\"IRiskpool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/Oracle.sol":{"Oracle":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oracleAddress","type":"address"}],"name":"LogOracleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes","name":"input","type":"bytes"}],"name":"request","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","cancel(uint256)":"40e58ee5","declineCallback()":"bd1fe5d0","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","owner()":"8da5cb5b","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","request(uint256,bytes)":"ffc79065","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"}],\"name\":\"LogOracleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"request\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/Oracle.sol\":\"Oracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/Oracle.sol\":{\"keccak256\":\"0xc0de2df5ab9dbde82f5bba5e0bd311b4b0e708a90a7541c453581cd369795d66\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cbfa0790664076b9a1f2c983a27f60ce5b66d9357df9dd17c29f1909a0cdfef6\",\"dweb:/ipfs/Qmco66eWdxHYNJZbaMC6oi1Pqq3WptZgtDs469kF2RkUXB\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/Product.sol":{"Product":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"productAddress","type":"address"}],"name":"LogProductCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getApplicationDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPayoutDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"riskPoolCapacityCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","declineCallback()":"bd1fe5d0","getApplicationDataStructure()":"94f64ff4","getClaimDataStructure()":"3ec92bda","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getPayoutDataStructure()":"39cf5e16","getPolicyFlow()":"637d08f4","getRegistry()":"5ab1bd53","getRiskpoolId()":"70d2fe53","getState()":"1865c57d","getToken()":"21df0da7","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","owner()":"8da5cb5b","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","riskPoolCapacityCallback(uint256)":"f4fdc1fa","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"LogProductCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApplicationDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayoutDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"riskPoolCapacityCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/Product.sol\":\"Product\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/Product.sol\":{\"keccak256\":\"0xdf55ff9638da4db1501362fc2ffcd26858b7c09b7cc5e0701f1bb31081142815\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fdbfbd830dafe0d721150778469cbbdf01058f8713c3636d2ba48234761e8590\",\"dweb:/ipfs/QmZ9K5X2ant5TtUhA9kgXUAMe7y9MUHpnv3PQUKAmxwVYj\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/components/Riskpool.sol":{"Riskpool":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isMatching","type":"bool"}],"name":"LogRiskpoolBundleMatchesPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isSecured","type":"bool"}],"name":"LogRiskpoolCollateralLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolAddress","type":"address"}],"name":"LogRiskpoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"DEFAULT_FILTER_DATA_STRUCTURE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FULL_COLLATERALIZATION_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"},{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"name":"bundleMatchesApplication","outputs":[{"internalType":"bool","name":"isMatching","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialAmount","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapital","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getErc20Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFilterDataStructure","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSumOfSumInsuredCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_FILTER_DATA_STRUCTURE()":"7893c7bc","FULL_COLLATERALIZATION_LEVEL()":"45fe1c6d","activeBundles()":"4101b90c","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","bundleMatchesApplication((uint256,uint256,uint256,uint8,bytes,uint256,uint256,uint256,uint256,uint256),(uint8,uint256,uint256,bytes,uint256,uint256))":"86c71288","bundles()":"18442e63","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(bytes32,uint256)":"890fbf78","createBundle(bytes,uint256)":"7888a2ff","declineCallback()":"bd1fe5d0","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","getActiveBundleId(uint256)":"0676cb0e","getBalance()":"12065fe0","getBundle(uint256)":"2d0821b7","getCapacity()":"c40000d4","getCapital()":"e0032383","getCollateralizationLevel()":"54afef63","getErc20Token()":"feb1824b","getFilterDataStructure()":"3dcdde17","getFullCollateralizationLevel()":"f1d354d0","getId()":"5d1ca631","getMaximumNumberOfActiveBundles()":"7f3b6980","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getSumOfSumInsuredCap()":"a18aa128","getTotalValueLocked()":"b26025aa","getType()":"15dae03e","getWallet()":"13299604","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","lockBundle(uint256)":"a17030d5","owner()":"8da5cb5b","pauseCallback()":"d73cd992","processPolicyPayout(bytes32,uint256)":"82558906","processPolicyPremium(bytes32,uint256)":"3629c3c4","proposalCallback()":"638ce0ba","releasePolicy(bytes32)":"c3004c86","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","setMaximumNumberOfActiveBundles(uint256)":"652028e5","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unlockBundle(uint256)":"316c5348","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolBundleMatchesPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolCollateralLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolAddress\",\"type\":\"address\"}],\"name\":\"LogRiskpoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_FILTER_DATA_STRUCTURE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_COLLATERALIZATION_LEVEL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"name\":\"bundleMatchesApplication\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialAmount\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getErc20Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFilterDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSumOfSumInsuredCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/components/Riskpool.sol\":\"Riskpool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Riskpool.sol\":{\"keccak256\":\"0x627c05cef03e42f2b798004db6d000d574c0edc383d185952592425895ada20e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d20ecfaf1ed6c983cd81482d982373b8d4d00f6cbe6ed0e67e78255e71c7ac86\",\"dweb:/ipfs/QmdwKC99b54yMa3rKJdwD4RjcbLgX6hkLV6SYjfgFbLi5T\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IAccess.sol":{"IAccess":{"abi":[{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"addRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDefaultAdminRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleProviderRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProductOwnerRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolKeeperRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"invalidateRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"addRole(bytes32)":"274b02a7","getDefaultAdminRole()":"52a9c8d7","getOracleProviderRole()":"d49d21c0","getProductOwnerRole()":"775a4048","getRiskpoolKeeperRole()":"3ffdd2f3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","invalidateRole(bytes32)":"d17d0233","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"addRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDefaultAdminRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleProviderRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductOwnerRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolKeeperRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"invalidateRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":\"IAccess\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IBundle.sol":{"IBundle":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundleCapitalProvided","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundleCapitalWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogBundlePayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundlePolicyCollateralized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundlePolicyReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"oldState","type":"uint8"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"newState","type":"uint8"}],"name":"LogBundleStateChanged","type":"event"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"uint256","name":"riskpoolId_","type":"uint256"},{"internalType":"bytes","name":"filter_","type":"bytes"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"create","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"burn(uint256)":"42966c68","close(uint256)":"0aebeb4e","collateralizePolicy(uint256,bytes32,uint256)":"4d03f9b7","create(address,uint256,bytes,uint256)":"c0e71404","defund(uint256,uint256)":"c397ae39","fund(uint256,uint256)":"a65e2cfd","lock(uint256)":"dd467064","processPayout(uint256,bytes32,uint256)":"b299cc26","processPremium(uint256,bytes32,uint256)":"b7267420","releasePolicy(uint256,bytes32)":"bb540df6","unlock(uint256)":"6198e339"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundleCapitalProvided\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundleCapitalWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogBundlePayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundlePolicyCollateralized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundlePolicyReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"oldState\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"LogBundleStateChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"filter_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":\"IBundle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol":{"IComponentEvents":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":\"IComponentEvents\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/ILicense.sol":{"ILicense":{"abi":[{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getAuthorizationStatus","outputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"bool","name":"isAuthorized","type":"bool"},{"internalType":"address","name":"policyFlow","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getAuthorizationStatus(address)":"d3e9c314"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"getAuthorizationStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"policyFlow\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/ILicense.sol\":\"ILicense\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/ILicense.sol\":{\"keccak256\":\"0x2fcefcbe60dfa44e7a1d947ae2059ccfdc3d1a151a8604fb7e96c734e0ffb9be\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6af56dc46b2adeb0c0d88ccd0ca4e9857195c4d647ccf7e3df61a91da24f45ab\",\"dweb:/ipfs/QmX1eYC9nFwFE4PJchjApCDYgErdrtfS9qYEtzbbfc4Ssz\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IPolicy.sol":{"IPolicy":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogApplicationCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"}],"name":"LogApplicationPremiumAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogApplicationSumInsuredAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationUnderwritten","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"LogClaimClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"LogClaimConfirmed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"LogClaimCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"LogClaimDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"}],"name":"LogMetadataCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"}],"name":"LogMetadataStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payoutId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogPayoutCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"LogPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyExpired","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumExpectedAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"}],"name":"LogPolicyPremiumAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogPremiumCollected","type":"event"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"closeClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"closePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"confirmClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createClaim","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"createPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createPolicyFlow","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"declineApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"declineClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"expirePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"revokeApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwriteApplication","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","closeClaim(bytes32,uint256)":"7f29dba2","closePolicy(bytes32)":"adcadb28","collectPremium(bytes32,uint256)":"e3ebdea5","confirmClaim(bytes32,uint256,uint256)":"4e02c63f","createApplication(bytes32,uint256,uint256,bytes)":"6780336e","createClaim(bytes32,uint256,bytes)":"ec935668","createPayout(bytes32,uint256,uint256,bytes)":"db42b77b","createPolicy(bytes32)":"4c14ccc2","createPolicyFlow(address,uint256,bytes)":"a1814a1a","declineApplication(bytes32)":"296d6c7d","declineClaim(bytes32,uint256)":"4cda0de9","expirePolicy(bytes32)":"47e3b138","processPayout(bytes32,uint256)":"fe64372b","revokeApplication(bytes32)":"eb96cbed","underwriteApplication(bytes32)":"5c955288"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationPremiumAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationSumInsuredAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationUnderwritten\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"LogClaimClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"LogClaimConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"LogClaimCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"LogClaimDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"}],\"name\":\"LogMetadataCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"}],\"name\":\"LogMetadataStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogPayoutCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"LogPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyExpired\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"}],\"name\":\"LogPolicyPremiumAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogPremiumCollected\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"closeClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"closePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"confirmClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"createPolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createPolicyFlow\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"declineApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"declineClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"expirePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"revokeApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwriteApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":\"IPolicy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IPool.sol":{"IPool":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralizationFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralizationSucceeded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"address","name":"erc20Token","type":"address"},{"indexed":false,"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"LogRiskpoolRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"sumInsured","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateral","type":"uint256"}],"name":"LogRiskpoolRequiredCollateral","type":"event"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"registerRiskpool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"setRiskpoolForProduct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"processPayout(bytes32,uint256)":"fe64372b","processPremium(bytes32,uint256)":"02108268","registerRiskpool(uint256,address,address,uint256,uint256)":"57419e8f","release(bytes32)":"67d42a8b","setRiskpoolForProduct(uint256,uint256)":"f93b3673","underwrite(bytes32)":"1b07b17f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralizationFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralizationSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolRequiredCollateral\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"registerRiskpool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"setRiskpoolForProduct\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IPool.sol\":\"IPool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IQuery.sol":{"IQuery":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"LogOracleCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"responsibleOracleId","type":"uint256"}],"name":"LogOracleRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"address","name":"responder","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"}],"name":"LogOracleResponded","type":"event"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"bytes","name":"input","type":"bytes"},{"internalType":"string","name":"callbackMethodName","type":"string"},{"internalType":"address","name":"callbackContractAddress","type":"address"},{"internalType":"uint256","name":"responsibleOracleId","type":"uint256"}],"name":"request","outputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"address","name":"responder","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"respond","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"cancel(uint256)":"40e58ee5","request(bytes32,bytes,string,address,uint256)":"2c933f22","respond(uint256,address,bytes)":"9af8c4ba"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"LogOracleCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"LogOracleRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"responder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"LogOracleResponded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"callbackMethodName\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"callbackContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"request\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"responder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"respond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":\"IQuery\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/IRegistry.sol":{"IRegistry":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"LogContractDeregistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isNew","type":"bool"}],"name":"LogContractRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"}],"name":"LogReleasePrepared","type":"event"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"contractName","outputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contracts","outputs":[{"internalType":"uint256","name":"_numberOfContracts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregisterInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"ensureSender","outputs":[{"internalType":"bool","name":"_senderMatches","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContract","outputs":[{"internalType":"address","name":"_contractAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractInRelease","outputs":[{"internalType":"address","name":"_contractAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRelease","outputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newRelease","type":"bytes32"}],"name":"prepareRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"registerInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"contractName(uint256)":"f6b3e7d0","contracts()":"6c0f79b6","deregister(bytes32)":"20813154","deregisterInRelease(bytes32,bytes32)":"dc527b08","ensureSender(address,bytes32)":"2ca65a79","getContract(bytes32)":"e16c7d98","getContractInRelease(bytes32,bytes32)":"b0ef18a0","getRelease()":"76b707b7","prepareRelease(bytes32)":"893917ea","register(bytes32,address)":"d22057a9","registerInRelease(bytes32,bytes32,address)":"1d5e7314"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"LogContractDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isNew\",\"type\":\"bool\"}],\"name\":\"LogContractRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"}],\"name\":\"LogReleasePrepared\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"contractName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_numberOfContracts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregisterInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"ensureSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_senderMatches\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractInRelease\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRelease\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newRelease\",\"type\":\"bytes32\"}],\"name\":\"prepareRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"registerInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":\"IRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/modules/ITreasury.sol":{"ITreasury":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fixedFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fractionalFee","type":"uint256"}],"name":"LogTreasuryCapitalFeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryCapitalProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryCapitalTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"instanceWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryFeesTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"walletAddress","type":"address"}],"name":"LogTreasuryInstanceWalletSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPayoutTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fixedFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fractionalFee","type":"uint256"}],"name":"LogTreasuryPremiumFeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPremiumTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"erc20Address","type":"address"}],"name":"LogTreasuryProductTokenSet","type":"event"},{"anonymous":false,"inputs":[],"name":"LogTreasuryResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"walletAddress","type":"address"}],"name":"LogTreasuryRiskpoolWalletSet","type":"event"},{"anonymous":false,"inputs":[],"name":"LogTreasurySuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryWithdrawalProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryWithdrawalTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"}],"name":"createFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentToken","outputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpecification","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFractionFullUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceWallet","outputs":[{"internalType":"address","name":"instanceWalletAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpoolWallet","outputs":[{"internalType":"address","name":"riskpoolWalletAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"capitalAmount","type":"uint256"}],"name":"processCapital","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netCapitalAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPayoutAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPremiumAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"processPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPremiumAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processWithdrawal","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setCapitalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"instanceWalletAddress","type":"address"}],"name":"setInstanceWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setPremiumFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"}],"name":"setProductToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"riskpoolWalletAddress","type":"address"}],"name":"setRiskpoolWallet","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"createFeeSpecification(uint256,uint256,uint256,bytes)":"62f0ab55","getComponentToken(uint256)":"038696bb","getFeeSpecification(uint256)":"a434f0ad","getFractionFullUnit()":"8ccf5ca2","getInstanceWallet()":"a44330c4","getRiskpoolWallet(uint256)":"49081637","processCapital(uint256,uint256)":"26debdaa","processPayout(bytes32,uint256)":"fe64372b","processPremium(bytes32)":"5ecc078e","processPremium(bytes32,uint256)":"02108268","processWithdrawal(uint256,uint256)":"d9358075","setCapitalFees((uint256,uint256,uint256,bytes,uint256,uint256))":"8ca946aa","setInstanceWallet(address)":"cab2504d","setPremiumFees((uint256,uint256,uint256,bytes,uint256,uint256))":"01132a7f","setProductToken(uint256,address)":"cc9cf8cd","setRiskpoolWallet(uint256,address)":"86039aed"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalFeesSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"instanceWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryFeesTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"LogTreasuryInstanceWalletSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPayoutTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumFeesSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"LogTreasuryProductTokenSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LogTreasuryResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"LogTreasuryRiskpoolWalletSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LogTreasurySuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryWithdrawalProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryWithdrawalTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"}],\"name\":\"createFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpecification\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFractionFullUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instanceWalletAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"capitalAmount\",\"type\":\"uint256\"}],\"name\":\"processCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netCapitalAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPayoutAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremiumAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"processPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremiumAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processWithdrawal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setCapitalFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instanceWalletAddress\",\"type\":\"address\"}],\"name\":\"setInstanceWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setPremiumFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"setProductToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"}],\"name\":\"setRiskpoolWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":\"ITreasury\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol":{"IComponentOwnerService":{"abi":[{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IComponent","name":"component","type":"address"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"archive(uint256)":"93c829fc","pause(uint256)":"136439dd","propose(address)":"01267951","stake(uint256)":"a694fc3a","unpause(uint256)":"fabc1cbc","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"component\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":\"IComponentOwnerService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol":{"IInstanceOperatorService":{"abi":[{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"adjustStakingRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"}],"name":"createFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"createRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"deregister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"release","type":"bytes32"},{"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"deregisterInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"invalidateRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newRelease","type":"bytes32"}],"name":"prepareRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"address","name":"contractAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"release","type":"bytes32"},{"internalType":"bytes32","name":"contractName","type":"bytes32"},{"internalType":"address","name":"contractAddress","type":"address"}],"name":"registerInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"resume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setCapitalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"componentType","type":"uint16"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"setDefaultStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletAddress","type":"address"}],"name":"setInstanceWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setPremiumFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"}],"name":"setProductToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"walletAddress","type":"address"}],"name":"setRiskpoolWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"suspend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"adjustStakingRequirements(uint256,bytes)":"72beb6fb","approve(uint256)":"b759f954","archive(uint256)":"93c829fc","createFeeSpecification(uint256,uint256,uint256,bytes)":"62f0ab55","createRole(bytes32)":"c42994a2","decline(uint256)":"a0355f4e","deregister(bytes32)":"20813154","deregisterInRelease(bytes32,bytes32)":"dc527b08","grantRole(bytes32,address)":"2f2ff15d","invalidateRole(bytes32)":"d17d0233","prepareRelease(bytes32)":"893917ea","register(bytes32,address)":"d22057a9","registerInRelease(bytes32,bytes32,address)":"1d5e7314","resume(uint256)":"414000b5","resumeTreasury()":"10a81c4a","revokeRole(bytes32,address)":"d547741f","setCapitalFees((uint256,uint256,uint256,bytes,uint256,uint256))":"8ca946aa","setDefaultStaking(uint16,bytes)":"394c78ba","setInstanceWallet(address)":"cab2504d","setPremiumFees((uint256,uint256,uint256,bytes,uint256,uint256))":"01132a7f","setProductToken(uint256,address)":"cc9cf8cd","setRiskpoolWallet(uint256,address)":"86039aed","suspend(uint256)":"4b865846","suspendTreasury()":"d5fe1f10"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"adjustStakingRequirements\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"}],\"name\":\"createFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"createRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"deregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"deregisterInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"invalidateRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"newRelease\",\"type\":\"bytes32\"}],\"name\":\"prepareRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"registerInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setCapitalFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"componentType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDefaultStaking\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"setInstanceWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setPremiumFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"setProductToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"setRiskpoolWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"suspend\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":\"IInstanceOperatorService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IInstanceService.sol":{"IInstanceService":{"abi":[{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"numberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"numberOfBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"claims","outputs":[{"internalType":"uint256","name":"numberOfClaims","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"contractName","outputs":[{"internalType":"bytes32","name":"name","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contracts","outputs":[{"internalType":"uint256","name":"numberOfContracts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"bundleIdx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getApplication","outputs":[{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"balanceAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBundleToken","outputs":[{"internalType":"contract IBundleToken","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"capacityAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getCapital","outputs":[{"internalType":"uint256","name":"capitalAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainName","outputs":[{"internalType":"string","name":"chainName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"getClaim","outputs":[{"components":[{"internalType":"enum IPolicy.ClaimState","name":"state","type":"uint8"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"uint256","name":"paidAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Claim","name":"claim","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponent","outputs":[{"internalType":"contract IComponent","name":"component","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"componentAddress","type":"address"}],"name":"getComponentId","outputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentOwnerService","outputs":[{"internalType":"contract IComponentOwnerService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"componentState","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentToken","outputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDefaultAdminRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeFractionFullUnit","outputs":[{"internalType":"uint256","name":"fullUnit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceId","outputs":[{"internalType":"bytes32","name":"instanceId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceOperator","outputs":[{"internalType":"address","name":"instanceOperator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceOperatorService","outputs":[{"internalType":"contract IInstanceOperatorService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceWallet","outputs":[{"internalType":"address","name":"walletAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getMetadata","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Metadata","name":"metadata","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleProviderRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleService","outputs":[{"internalType":"contract IOracleService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"getPayout","outputs":[{"components":[{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"enum IPolicy.PayoutState","name":"state","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Payout","name":"payout","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getPolicy","outputs":[{"components":[{"internalType":"enum IPolicy.PolicyState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"},{"internalType":"uint256","name":"premiumPaidAmount","type":"uint256"},{"internalType":"uint256","name":"claimsCount","type":"uint256"},{"internalType":"uint256","name":"openClaimsCount","type":"uint256"},{"internalType":"uint256","name":"payoutMaxAmount","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Policy","name":"policy","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProductOwnerRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProductService","outputs":[{"internalType":"contract IProductService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpool","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredAtRisk","type":"uint256"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPool.Pool","name":"riskPool","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolKeeperRole","outputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolService","outputs":[{"internalType":"contract IRiskpoolService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpoolWallet","outputs":[{"internalType":"address","name":"walletAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getStakedAssets","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getStakingRequirements","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"totalValueLockedAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTreasuryAddress","outputs":[{"internalType":"address","name":"treasuryAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"roleIsAssigned","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracles","outputs":[{"internalType":"uint256","name":"numberOfOracles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"payouts","outputs":[{"internalType":"uint256","name":"numberOfPayouts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processIds","outputs":[{"internalType":"uint256","name":"numberOfProcessIds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"products","outputs":[{"internalType":"uint256","name":"numberOfProducts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"riskpools","outputs":[{"internalType":"uint256","name":"numberOfRiskpools","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"unburntBundles","outputs":[{"internalType":"uint256","name":"numberOfUnburntBundles","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"activeBundles(uint256)":"a4266a66","bundles()":"18442e63","claims(bytes32)":"eff0f592","contractName(uint256)":"f6b3e7d0","contracts()":"6c0f79b6","getActiveBundleId(uint256,uint256)":"ec833b0c","getApplication(bytes32)":"bc506f64","getBalance(uint256)":"1e010439","getBundle(uint256)":"2d0821b7","getBundleToken()":"eb35783c","getCapacity(uint256)":"bcd5349f","getCapital(uint256)":"29560980","getChainId()":"3408e470","getChainName()":"d722b0bc","getClaim(bytes32,uint256)":"7f22c2d9","getComponent(uint256)":"4f27da18","getComponentId(address)":"2b1c7f73","getComponentOwnerService()":"6fa29853","getComponentState(uint256)":"5e966e45","getComponentToken(uint256)":"038696bb","getComponentType(uint256)":"dd51c86a","getDefaultAdminRole()":"52a9c8d7","getFeeFractionFullUnit()":"6319112b","getFullCollateralizationLevel()":"f1d354d0","getInstanceId()":"1551100f","getInstanceOperator()":"39c6fa90","getInstanceOperatorService()":"091924dc","getInstanceWallet()":"a44330c4","getMaximumNumberOfActiveBundles(uint256)":"7db32844","getMetadata(bytes32)":"a5961b4c","getOracleProviderRole()":"d49d21c0","getOracleService()":"a7ecda36","getPayout(bytes32,uint256)":"cef58f13","getPolicy(bytes32)":"a3f685f9","getProductOwnerRole()":"775a4048","getProductService()":"4288121d","getRiskpool(uint256)":"eb802114","getRiskpoolKeeperRole()":"3ffdd2f3","getRiskpoolService()":"442ed817","getRiskpoolWallet(uint256)":"49081637","getStakedAssets(uint256)":"3a42b053","getStakingRequirements(uint256)":"ab9c6ee4","getTotalValueLocked(uint256)":"3f5d9235","getTreasuryAddress()":"e0024604","hasRole(bytes32,address)":"91d14854","oracles()":"2857373a","payouts(bytes32)":"aeddb905","processIds()":"a427056e","products()":"c71e261f","riskpools()":"a054381f","unburntBundles(uint256)":"c559783e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfClaims\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"contractName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfContracts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bundleIdx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getApplication\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balanceAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBundleToken\",\"outputs\":[{\"internalType\":\"contract IBundleToken\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"capacityAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"capitalAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"chainName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"getClaim\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ClaimState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paidAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Claim\",\"name\":\"claim\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponent\",\"outputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"component\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"}],\"name\":\"getComponentId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentOwnerService\",\"outputs\":[{\"internalType\":\"contract IComponentOwnerService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"componentState\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDefaultAdminRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeFractionFullUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fullUnit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"instanceId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instanceOperator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceOperatorService\",\"outputs\":[{\"internalType\":\"contract IInstanceOperatorService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleProviderRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleService\",\"outputs\":[{\"internalType\":\"contract IOracleService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"getPayout\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PayoutState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Payout\",\"name\":\"payout\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getPolicy\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.PolicyState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premiumPaidAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openClaimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutMaxAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Policy\",\"name\":\"policy\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductOwnerRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductService\",\"outputs\":[{\"internalType\":\"contract IProductService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredAtRisk\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPool.Pool\",\"name\":\"riskPool\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolKeeperRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolService\",\"outputs\":[{\"internalType\":\"contract IRiskpoolService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getStakedAssets\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getStakingRequirements\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalValueLockedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasuryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"treasuryAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"roleIsAssigned\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfOracles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"payouts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPayouts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"processIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfProcessIds\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"products\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfProducts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"riskpools\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfRiskpools\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"unburntBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfUnburntBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":\"IInstanceService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IOracleService.sol":{"IOracleService":{"abi":[{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"respond","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"respond(uint256,bytes)":"e409534a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"respond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":\"IOracleService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IProductService.sol":{"IProductService":{"abi":[{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancelRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"closeClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPremiumAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"confirmClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"declineClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"expire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"newApplication","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"newClaim","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"newPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPayoutAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"string","name":"callbackMethodName","type":"string"},{"internalType":"address","name":"callbackContractAddress","type":"address"},{"internalType":"uint256","name":"responsibleOracleId","type":"uint256"}],"name":"request","outputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"revoke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","cancelRequest(uint256)":"3015394c","close(bytes32)":"39c79e0c","closeClaim(bytes32,uint256)":"7f29dba2","collectPremium(bytes32,uint256)":"e3ebdea5","confirmClaim(bytes32,uint256,uint256)":"4e02c63f","decline(bytes32)":"8cc7d3d1","declineClaim(bytes32,uint256)":"4cda0de9","expire(bytes32)":"c6441798","newApplication(address,uint256,uint256,bytes,bytes)":"93b8414a","newClaim(bytes32,uint256,bytes)":"fae43d15","newPayout(bytes32,uint256,uint256,bytes)":"781d7846","processPayout(bytes32,uint256)":"fe64372b","request(bytes32,bytes,string,address,uint256)":"2c933f22","revoke(bytes32)":"b75c7dc6","underwrite(bytes32)":"1b07b17f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancelRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"closeClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremiumAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"confirmClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"declineClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"expire\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"newApplication\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"newClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"newPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPayoutAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"callbackMethodName\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"callbackContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"request\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IProductService.sol\":\"IProductService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol":{"IRiskpoolService":{"abi":[{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"bytes","name":"filter_","type":"bytes"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralization","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"registerRiskpool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"maxNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(uint256,bytes32,uint256)":"4d03f9b7","createBundle(address,bytes,uint256)":"15fc1e74","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","lockBundle(uint256)":"a17030d5","processPayout(uint256,bytes32,uint256)":"b299cc26","processPremium(uint256,bytes32,uint256)":"b7267420","registerRiskpool(address,address,uint256,uint256)":"bf2e3546","releasePolicy(uint256,bytes32)":"bb540df6","setMaximumNumberOfActiveBundles(uint256,uint256)":"2127fd48","unlockBundle(uint256)":"316c5348"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"filter_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralization\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"registerRiskpool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":\"IRiskpoolService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol":{"ICoreProxy":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplemntation","type":"address"}],"name":"LogCoreContractUpgraded","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplemntation\",\"type\":\"address\"}],\"name\":\"LogCoreContractUpgraded\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol\":\"ICoreProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol\":{\"keccak256\":\"0xf223e92c2b295866c5826c62b63874f6822bd218d58fcc78b5792c0c6c682317\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6c3958aa0390c9e535c2892522729795fe5ed956f7e31409b339b19ab7bf1d5b\",\"dweb:/ipfs/QmW6ie3Gp1wKnAyAC1eciNfbHZJa9NtC2bd6fRv75PFHPh\"]}},\"version\":1}"}},"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol":{"IBundleToken":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"LogBundleTokenBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"address","name":"tokenOwner","type":"address"}],"name":"LogBundleTokenMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burned","outputs":[{"internalType":"bool","name":"isBurned","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"doesExist","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"tokenCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burned(uint256)":"23250cae","exists(uint256)":"4f558e79","getApproved(uint256)":"081812fc","getBundleId(uint256)":"29a63083","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"LogBundleTokenBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenOwner\",\"type\":\"address\"}],\"name\":\"LogBundleTokenMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burned\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isBurned\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"doesExist\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":\"IBundleToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/AccessControl.sol":{"AccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ``` bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ``` function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/AccessControlEnumerable.sol":{"AccessControlEnumerable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {AccessControl} that allows enumerating the members of each role.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":\"AccessControlEnumerable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/IAccessControl.sol":{"IAccessControl":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC165 detection.\",\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/IAccessControlEnumerable.sol":{"IAccessControlEnumerable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControlEnumerable declared to support ERC165 detection.\",\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":\"IAccessControlEnumerable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]}},\"version\":1}"}},"@openzeppelin/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"IERC1822Proxiable":{"abi":[{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"proxiableUUID()":"52d1902d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.\",\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":\"IERC1822Proxiable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"ERC1967Proxy":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2999:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"121:993:103","statements":[{"body":{"nodeType":"YulBlock","src":"167:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"176:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"184:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"169:6:103"},"nodeType":"YulFunctionCall","src":"169:22:103"},"nodeType":"YulExpressionStatement","src":"169:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"142:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"151:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"138:3:103"},"nodeType":"YulFunctionCall","src":"138:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"134:3:103"},"nodeType":"YulFunctionCall","src":"134:32:103"},"nodeType":"YulIf","src":"131:2:103"},{"nodeType":"YulVariableDeclaration","src":"202:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"221:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"215:5:103"},"nodeType":"YulFunctionCall","src":"215:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"206:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"294:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"311:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"296:6:103"},"nodeType":"YulFunctionCall","src":"296:22:103"},"nodeType":"YulExpressionStatement","src":"296:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"253:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"264:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"279:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"284:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"288:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"271:3:103"},"nodeType":"YulFunctionCall","src":"271:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"260:3:103"},"nodeType":"YulFunctionCall","src":"260:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"250:2:103"},"nodeType":"YulFunctionCall","src":"250:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"243:6:103"},"nodeType":"YulFunctionCall","src":"243:50:103"},"nodeType":"YulIf","src":"240:2:103"},{"nodeType":"YulAssignment","src":"329:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"339:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"329:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"353:39:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"373:3:103"},"nodeType":"YulFunctionCall","src":"373:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"367:5:103"},"nodeType":"YulFunctionCall","src":"367:25:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"357:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"401:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"419:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"423:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"415:3:103"},"nodeType":"YulFunctionCall","src":"415:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"427:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"411:3:103"},"nodeType":"YulFunctionCall","src":"411:18:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"405:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"456:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"465:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"473:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"458:6:103"},"nodeType":"YulFunctionCall","src":"458:22:103"},"nodeType":"YulExpressionStatement","src":"458:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"444:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"452:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"441:2:103"},"nodeType":"YulFunctionCall","src":"441:14:103"},"nodeType":"YulIf","src":"438:2:103"},{"nodeType":"YulVariableDeclaration","src":"491:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"505:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"516:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"501:3:103"},"nodeType":"YulFunctionCall","src":"501:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"495:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"571:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"580:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"588:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"573:6:103"},"nodeType":"YulFunctionCall","src":"573:22:103"},"nodeType":"YulExpressionStatement","src":"573:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"550:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"554:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"546:3:103"},"nodeType":"YulFunctionCall","src":"546:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"561:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"542:3:103"},"nodeType":"YulFunctionCall","src":"542:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"535:6:103"},"nodeType":"YulFunctionCall","src":"535:35:103"},"nodeType":"YulIf","src":"532:2:103"},{"nodeType":"YulVariableDeclaration","src":"606:19:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"622:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"616:5:103"},"nodeType":"YulFunctionCall","src":"616:9:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"610:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"648:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"650:16:103"},"nodeType":"YulFunctionCall","src":"650:18:103"},"nodeType":"YulExpressionStatement","src":"650:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"640:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"644:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"637:2:103"},"nodeType":"YulFunctionCall","src":"637:10:103"},"nodeType":"YulIf","src":"634:2:103"},{"nodeType":"YulVariableDeclaration","src":"679:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"693:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"689:3:103"},"nodeType":"YulFunctionCall","src":"689:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"683:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"705:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"725:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"719:5:103"},"nodeType":"YulFunctionCall","src":"719:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"709:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"737:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"759:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"783:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"787:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"779:3:103"},"nodeType":"YulFunctionCall","src":"779:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"794:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"775:3:103"},"nodeType":"YulFunctionCall","src":"775:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"799:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"771:3:103"},"nodeType":"YulFunctionCall","src":"771:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"804:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"767:3:103"},"nodeType":"YulFunctionCall","src":"767:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"755:3:103"},"nodeType":"YulFunctionCall","src":"755:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"741:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"867:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"869:16:103"},"nodeType":"YulFunctionCall","src":"869:18:103"},"nodeType":"YulExpressionStatement","src":"869:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"826:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"838:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"823:2:103"},"nodeType":"YulFunctionCall","src":"823:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"846:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"858:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"843:2:103"},"nodeType":"YulFunctionCall","src":"843:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"820:2:103"},"nodeType":"YulFunctionCall","src":"820:46:103"},"nodeType":"YulIf","src":"817:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"905:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"909:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"898:6:103"},"nodeType":"YulFunctionCall","src":"898:22:103"},"nodeType":"YulExpressionStatement","src":"898:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"936:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"944:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"929:6:103"},"nodeType":"YulFunctionCall","src":"929:18:103"},"nodeType":"YulExpressionStatement","src":"929:18:103"},{"body":{"nodeType":"YulBlock","src":"993:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1002:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1010:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"995:6:103"},"nodeType":"YulFunctionCall","src":"995:22:103"},"nodeType":"YulExpressionStatement","src":"995:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"970:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"974:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"966:3:103"},"nodeType":"YulFunctionCall","src":"966:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"979:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"962:3:103"},"nodeType":"YulFunctionCall","src":"962:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"984:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"959:2:103"},"nodeType":"YulFunctionCall","src":"959:33:103"},"nodeType":"YulIf","src":"956:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1054:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1058:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1050:3:103"},"nodeType":"YulFunctionCall","src":"1050:11:103"},{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1067:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1075:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1063:3:103"},"nodeType":"YulFunctionCall","src":"1063:15:103"},{"name":"_3","nodeType":"YulIdentifier","src":"1080:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1028:21:103"},"nodeType":"YulFunctionCall","src":"1028:55:103"},"nodeType":"YulExpressionStatement","src":"1028:55:103"},{"nodeType":"YulAssignment","src":"1092:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1102:6:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1092:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"79:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"90:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"102:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"110:6:103","type":""}],"src":"14:1100:103"},{"body":{"nodeType":"YulBlock","src":"1256:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1266:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1286:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1280:5:103"},"nodeType":"YulFunctionCall","src":"1280:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1270:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1328:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1336:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1324:3:103"},"nodeType":"YulFunctionCall","src":"1324:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"1343:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1348:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1302:21:103"},"nodeType":"YulFunctionCall","src":"1302:53:103"},"nodeType":"YulExpressionStatement","src":"1302:53:103"},{"nodeType":"YulAssignment","src":"1364:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1375:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1380:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1371:3:103"},"nodeType":"YulFunctionCall","src":"1371:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1364:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"1232:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1237:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1248:3:103","type":""}],"src":"1119:274:103"},{"body":{"nodeType":"YulBlock","src":"1519:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1536:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1547:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1529:6:103"},"nodeType":"YulFunctionCall","src":"1529:21:103"},"nodeType":"YulExpressionStatement","src":"1529:21:103"},{"nodeType":"YulVariableDeclaration","src":"1559:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1579:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1573:5:103"},"nodeType":"YulFunctionCall","src":"1573:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1563:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1606:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1617:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1602:3:103"},"nodeType":"YulFunctionCall","src":"1602:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1622:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1595:6:103"},"nodeType":"YulFunctionCall","src":"1595:34:103"},"nodeType":"YulExpressionStatement","src":"1595:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1664:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1672:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1660:3:103"},"nodeType":"YulFunctionCall","src":"1660:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1681:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1692:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1677:3:103"},"nodeType":"YulFunctionCall","src":"1677:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1697:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1638:21:103"},"nodeType":"YulFunctionCall","src":"1638:66:103"},"nodeType":"YulExpressionStatement","src":"1638:66:103"},{"nodeType":"YulAssignment","src":"1713:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1729:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1748:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1756:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1744:3:103"},"nodeType":"YulFunctionCall","src":"1744:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1765:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1761:3:103"},"nodeType":"YulFunctionCall","src":"1761:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1740:3:103"},"nodeType":"YulFunctionCall","src":"1740:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1725:3:103"},"nodeType":"YulFunctionCall","src":"1725:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"1772:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1721:3:103"},"nodeType":"YulFunctionCall","src":"1721:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1713:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1510:4:103","type":""}],"src":"1398:383:103"},{"body":{"nodeType":"YulBlock","src":"1960:235:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1977:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1988:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1970:6:103"},"nodeType":"YulFunctionCall","src":"1970:21:103"},"nodeType":"YulExpressionStatement","src":"1970:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2011:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2022:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2007:3:103"},"nodeType":"YulFunctionCall","src":"2007:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2027:2:103","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2000:6:103"},"nodeType":"YulFunctionCall","src":"2000:30:103"},"nodeType":"YulExpressionStatement","src":"2000:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2050:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2061:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2046:3:103"},"nodeType":"YulFunctionCall","src":"2046:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2066:34:103","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2039:6:103"},"nodeType":"YulFunctionCall","src":"2039:62:103"},"nodeType":"YulExpressionStatement","src":"2039:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2121:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2132:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2117:3:103"},"nodeType":"YulFunctionCall","src":"2117:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2137:15:103","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2110:6:103"},"nodeType":"YulFunctionCall","src":"2110:43:103"},"nodeType":"YulExpressionStatement","src":"2110:43:103"},{"nodeType":"YulAssignment","src":"2162:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2185:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2170:3:103"},"nodeType":"YulFunctionCall","src":"2170:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2162:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1937:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1951:4:103","type":""}],"src":"1786:409:103"},{"body":{"nodeType":"YulBlock","src":"2374:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2391:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2402:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2384:6:103"},"nodeType":"YulFunctionCall","src":"2384:21:103"},"nodeType":"YulExpressionStatement","src":"2384:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2425:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2436:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2421:3:103"},"nodeType":"YulFunctionCall","src":"2421:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2441:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2414:6:103"},"nodeType":"YulFunctionCall","src":"2414:30:103"},"nodeType":"YulExpressionStatement","src":"2414:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2464:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2475:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2460:3:103"},"nodeType":"YulFunctionCall","src":"2460:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2480:34:103","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2453:6:103"},"nodeType":"YulFunctionCall","src":"2453:62:103"},"nodeType":"YulExpressionStatement","src":"2453:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2535:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2546:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2531:3:103"},"nodeType":"YulFunctionCall","src":"2531:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2551:8:103","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2524:6:103"},"nodeType":"YulFunctionCall","src":"2524:36:103"},"nodeType":"YulExpressionStatement","src":"2524:36:103"},{"nodeType":"YulAssignment","src":"2569:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2592:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2577:3:103"},"nodeType":"YulFunctionCall","src":"2577:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2569:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2351:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2365:4:103","type":""}],"src":"2200:402:103"},{"body":{"nodeType":"YulBlock","src":"2660:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"2670:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2679:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2674:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2739:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2764:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"2769:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2760:3:103"},"nodeType":"YulFunctionCall","src":"2760:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2783:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"2788:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2779:3:103"},"nodeType":"YulFunctionCall","src":"2779:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2773:5:103"},"nodeType":"YulFunctionCall","src":"2773:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2753:6:103"},"nodeType":"YulFunctionCall","src":"2753:39:103"},"nodeType":"YulExpressionStatement","src":"2753:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2700:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"2703:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2697:2:103"},"nodeType":"YulFunctionCall","src":"2697:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2711:19:103","statements":[{"nodeType":"YulAssignment","src":"2713:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2722:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2718:3:103"},"nodeType":"YulFunctionCall","src":"2718:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2713:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"2693:3:103","statements":[]},"src":"2689:113:103"},{"body":{"nodeType":"YulBlock","src":"2828:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2841:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"2846:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2837:3:103"},"nodeType":"YulFunctionCall","src":"2837:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"2855:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2830:6:103"},"nodeType":"YulFunctionCall","src":"2830:27:103"},"nodeType":"YulExpressionStatement","src":"2830:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2817:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"2820:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2814:2:103"},"nodeType":"YulFunctionCall","src":"2814:13:103"},"nodeType":"YulIf","src":"2811:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"2638:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"2643:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"2648:6:103","type":""}],"src":"2607:258:103"},{"body":{"nodeType":"YulBlock","src":"2902:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2919:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2926:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2931:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2922:3:103"},"nodeType":"YulFunctionCall","src":"2922:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2912:6:103"},"nodeType":"YulFunctionCall","src":"2912:31:103"},"nodeType":"YulExpressionStatement","src":"2912:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2959:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2962:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2952:6:103"},"nodeType":"YulFunctionCall","src":"2952:15:103"},"nodeType":"YulExpressionStatement","src":"2952:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2983:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2986:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2976:6:103"},"nodeType":"YulFunctionCall","src":"2976:15:103"},"nodeType":"YulExpressionStatement","src":"2976:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2870:127:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n let offset := mload(add(headStart, 32))\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let _3 := mload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value1, value1) }\n copy_memory_to_memory(add(_2, 32), add(memPtr, 32), _3)\n value1 := memPtr\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 45)\n mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n mstore(add(headStart, 96), \"ot a contract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405260405161071c38038061071c833981016040819052610022916102d2565b61002e82826000610035565b505061042c565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d083836040518060600160405280602781526020016106f5602791396101a9565b9392505050565b6100ea8161028760201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61029660201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606001600160a01b0384163b6102115760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610148565b600080856001600160a01b03168560405161022c919061039b565b600060405180830381855af49150503d8060008114610267576040519150601f19603f3d011682016040523d82523d6000602084013e61026c565b606091505b50909250905061027d828286610299565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a85750816100d0565b8251156102b85782518084602001fd5b8160405162461bcd60e51b815260040161014891906103b7565b600080604083850312156102e4578182fd5b82516001600160a01b03811681146102fa578283fd5b60208401519092506001600160401b0380821115610316578283fd5b818501915085601f830112610329578283fd5b81518181111561033b5761033b610416565b604051601f8201601f19908116603f0116810190838211818310171561036357610363610416565b8160405282815288602084870101111561037b578586fd5b61038c8360208301602088016103ea565b80955050505050509250929050565b600082516103ad8184602087016103ea565b9190910192915050565b60006020825282518060208401526103d68160408501602087016103ea565b601f01601f19169190910160400192915050565b60005b838110156104055781810151838201526020016103ed565b838111156100645750506000910152565b634e487b7160e01b600052604160045260246000fd5b6102ba8061043b6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b600060208252825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122055fbdb05f8012342ff5abfb4313f870083fb64d5b287fdd8f992499369cccd7764736f6c63430008020033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x71C CODESIZE SUB DUP1 PUSH2 0x71C DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x22 SWAP2 PUSH2 0x2D2 JUMP JUMPDEST PUSH2 0x2E DUP3 DUP3 PUSH1 0x0 PUSH2 0x35 JUMP JUMPDEST POP POP PUSH2 0x42C JUMP JUMPDEST PUSH2 0x3E DUP4 PUSH2 0x6B JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x4B JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x66 JUMPI PUSH2 0x64 DUP4 DUP4 PUSH2 0xAB PUSH1 0x20 SHL PUSH2 0x29 OR PUSH1 0x20 SHR JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x74 DUP2 PUSH2 0xD7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xD0 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x6F5 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x1A9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEA DUP2 PUSH2 0x287 PUSH1 0x20 SHL PUSH2 0x55 OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x151 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH2 0x188 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH2 0x296 PUSH1 0x20 SHL PUSH2 0x64 OR PUSH1 0x20 SHR JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x211 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x148 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x22C SWAP2 SWAP1 PUSH2 0x39B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x267 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH2 0x27D DUP3 DUP3 DUP7 PUSH2 0x299 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x2A8 JUMPI POP DUP2 PUSH2 0xD0 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x2B8 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x148 SWAP2 SWAP1 PUSH2 0x3B7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2E4 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2FA JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH2 0x316 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x329 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH2 0x33B JUMPI PUSH2 0x33B PUSH2 0x416 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x363 JUMPI PUSH2 0x363 PUSH2 0x416 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x37B JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x38C DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3EA JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3AD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x3EA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3D6 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3EA JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x405 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x3ED JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x64 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BA DUP1 PUSH2 0x43B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH2 0x13 JUMPI PUSH2 0x11 PUSH2 0x17 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11 JUMPDEST PUSH2 0x27 PUSH2 0x22 PUSH2 0x67 JUMP JUMPDEST PUSH2 0x9F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25E PUSH1 0x27 SWAP2 CODECOPY PUSH2 0xC3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9A PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x130 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x14B SWAP2 SWAP1 PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x186 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x18B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x19B DUP3 DUP3 DUP7 PUSH2 0x1A5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1B4 JUMPI POP DUP2 PUSH2 0x4E JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x1C4 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x1FA JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1F0 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x22D JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x219 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x22D JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x248 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x230 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x257 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122055FBDB SDIV 0xF8 ADD 0x23 TIMESTAMP SELFDESTRUCT GAS 0xBF 0xB4 BALANCE EXTCODEHASH DUP8 STOP DUP4 0xFB PUSH5 0xD5B287FDD8 0xF9 SWAP3 0x49 SWAP4 PUSH10 0xCCCD7764736F6C634300 ADDMOD MUL STOP CALLER COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C65640000 ","sourceMap":"567:723:43:-:0;;;958:112;;;;;;;;;;;;;;;;;;:::i;:::-;1024:39;1042:6;1050:5;1057;1024:17;:39::i;:::-;958:112;;567:723;;2183:295:44;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;;;;;:53;;:::i;:::-;;2360:112;2183:295;;;:::o;1897:152::-;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:44;;;;;;;;1897:152;:::o;6570:198:58:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:58:o;1532:259:44:-;1613:37;1632:17;1613:18;;;;;:37;;:::i;:::-;1605:95;;;;-1:-1:-1;;;1605:95:44;;1988:2:103;1605:95:44;;;1970:21:103;2027:2;2007:18;;;2000:30;2066:34;2046:18;;;2039:62;-1:-1:-1;;;2117:18:103;;;2110:43;2170:19;;1605:95:44;;;;;;;;;1767:17;1710:48;1030:66;1737:20;;1710:26;;;;;:48;;:::i;:::-;:74;;-1:-1:-1;;;;;;1710:74:44;-1:-1:-1;;;;;1710:74:44;;;;;;;;;;-1:-1:-1;1532:259:44:o;6954:387:58:-;7095:12;-1:-1:-1;;;;;1465:19:58;;;7119:69;;;;-1:-1:-1;;;7119:69:58;;2402:2:103;7119:69:58;;;2384:21:103;2441:2;2421:18;;;2414:30;2480:34;2460:18;;;2453:62;-1:-1:-1;;;2531:18:103;;;2524:36;2577:19;;7119:69:58;2374:228:103;7119:69:58;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:58;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7199:67:58;;-1:-1:-1;7199:67:58;-1:-1:-1;7283:51:58;7199:67;;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:58:o;1175:320::-;-1:-1:-1;;;;;1465:19:58;;:23;;;1175:320::o;1614:190:60:-;1784:4;1760:38::o;7561:742:58:-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:58;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:58;;;;;;;;:::i;14:1100:103:-;;;163:2;151:9;142:7;138:23;134:32;131:2;;;184:6;176;169:22;131:2;215:16;;-1:-1:-1;;;;;260:31:103;;250:42;;240:2;;311:6;303;296:22;240:2;388;373:18;;367:25;339:5;;-1:-1:-1;;;;;;441:14:103;;;438:2;;;473:6;465;458:22;438:2;516:6;505:9;501:22;491:32;;561:7;554:4;550:2;546:13;542:27;532:2;;588:6;580;573:22;532:2;622;616:9;644:2;640;637:10;634:2;;;650:18;;:::i;:::-;725:2;719:9;693:2;779:13;;-1:-1:-1;;775:22:103;;;799:2;771:31;767:40;755:53;;;823:18;;;843:22;;;820:46;817:2;;;869:18;;:::i;:::-;909:10;905:2;898:22;944:2;936:6;929:18;984:7;979:2;974;970;966:11;962:20;959:33;956:2;;;1010:6;1002;995:22;956:2;1028:55;1080:2;1075;1067:6;1063:15;1058:2;1054;1050:11;1028:55;:::i;:::-;1102:6;1092:16;;;;;;;121:993;;;;;:::o;1119:274::-;;1286:6;1280:13;1302:53;1348:6;1343:3;1336:4;1328:6;1324:17;1302:53;:::i;:::-;1371:16;;;;;1256:137;-1:-1:-1;;1256:137:103:o;1398:383::-;;1547:2;1536:9;1529:21;1579:6;1573:13;1622:6;1617:2;1606:9;1602:18;1595:34;1638:66;1697:6;1692:2;1681:9;1677:18;1672:2;1664:6;1660:15;1638:66;:::i;:::-;1765:2;1744:15;-1:-1:-1;;1740:29:103;1725:45;;;;1772:2;1721:54;;1519:262;-1:-1:-1;;1519:262:103:o;2607:258::-;2679:1;2689:113;2703:6;2700:1;2697:13;2689:113;;;2779:11;;;2773:18;2760:11;;;2753:39;2725:2;2718:10;2689:113;;;2820:6;2817:1;2814:13;2811:2;;;-1:-1:-1;;2855:1:103;2837:16;;2830:27;2660:205::o;2870:127::-;2931:10;2926:3;2922:20;2919:1;2912:31;2962:4;2959:1;2952:15;2986:4;2983:1;2976:15;2902:95;567:723:43;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1348:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"151:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"161:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"181:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"175:5:103"},"nodeType":"YulFunctionCall","src":"175:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"165:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"223:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"231:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"219:3:103"},"nodeType":"YulFunctionCall","src":"219:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"238:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"243:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"197:21:103"},"nodeType":"YulFunctionCall","src":"197:53:103"},"nodeType":"YulExpressionStatement","src":"197:53:103"},{"nodeType":"YulAssignment","src":"259:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"270:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"275:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"266:3:103"},"nodeType":"YulFunctionCall","src":"266:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"259:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"127:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"132:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"143:3:103","type":""}],"src":"14:274:103"},{"body":{"nodeType":"YulBlock","src":"414:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"431:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"442:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"424:6:103"},"nodeType":"YulFunctionCall","src":"424:21:103"},"nodeType":"YulExpressionStatement","src":"424:21:103"},{"nodeType":"YulVariableDeclaration","src":"454:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"474:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"468:5:103"},"nodeType":"YulFunctionCall","src":"468:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"458:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"501:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"512:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"517:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"490:6:103"},"nodeType":"YulFunctionCall","src":"490:34:103"},"nodeType":"YulExpressionStatement","src":"490:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"559:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"567:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"555:3:103"},"nodeType":"YulFunctionCall","src":"555:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"576:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"587:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"572:3:103"},"nodeType":"YulFunctionCall","src":"572:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"592:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"533:21:103"},"nodeType":"YulFunctionCall","src":"533:66:103"},"nodeType":"YulExpressionStatement","src":"533:66:103"},{"nodeType":"YulAssignment","src":"608:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"624:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"643:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"651:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"639:3:103"},"nodeType":"YulFunctionCall","src":"639:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"660:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"656:3:103"},"nodeType":"YulFunctionCall","src":"656:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"635:3:103"},"nodeType":"YulFunctionCall","src":"635:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"620:3:103"},"nodeType":"YulFunctionCall","src":"620:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"667:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"616:3:103"},"nodeType":"YulFunctionCall","src":"616:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"608:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"383:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"394:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"405:4:103","type":""}],"src":"293:383:103"},{"body":{"nodeType":"YulBlock","src":"855:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"872:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"883:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"865:6:103"},"nodeType":"YulFunctionCall","src":"865:21:103"},"nodeType":"YulExpressionStatement","src":"865:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"906:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"917:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:103"},"nodeType":"YulFunctionCall","src":"902:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"922:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"895:6:103"},"nodeType":"YulFunctionCall","src":"895:30:103"},"nodeType":"YulExpressionStatement","src":"895:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"945:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"956:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"941:3:103"},"nodeType":"YulFunctionCall","src":"941:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"961:34:103","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"934:6:103"},"nodeType":"YulFunctionCall","src":"934:62:103"},"nodeType":"YulExpressionStatement","src":"934:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1016:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1027:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1012:3:103"},"nodeType":"YulFunctionCall","src":"1012:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1032:8:103","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1005:6:103"},"nodeType":"YulFunctionCall","src":"1005:36:103"},"nodeType":"YulExpressionStatement","src":"1005:36:103"},{"nodeType":"YulAssignment","src":"1050:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1062:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1073:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1058:3:103"},"nodeType":"YulFunctionCall","src":"1058:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1050:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"832:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"846:4:103","type":""}],"src":"681:402:103"},{"body":{"nodeType":"YulBlock","src":"1141:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1151:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1160:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1155:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1220:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1245:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"1250:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1241:3:103"},"nodeType":"YulFunctionCall","src":"1241:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1264:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"1269:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1260:3:103"},"nodeType":"YulFunctionCall","src":"1260:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1254:5:103"},"nodeType":"YulFunctionCall","src":"1254:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1234:6:103"},"nodeType":"YulFunctionCall","src":"1234:39:103"},"nodeType":"YulExpressionStatement","src":"1234:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1181:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1184:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1178:2:103"},"nodeType":"YulFunctionCall","src":"1178:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1192:19:103","statements":[{"nodeType":"YulAssignment","src":"1194:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1203:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"1206:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1199:3:103"},"nodeType":"YulFunctionCall","src":"1199:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1194:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1174:3:103","statements":[]},"src":"1170:113:103"},{"body":{"nodeType":"YulBlock","src":"1309:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1322:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1327:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1318:3:103"},"nodeType":"YulFunctionCall","src":"1318:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"1336:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1311:6:103"},"nodeType":"YulFunctionCall","src":"1311:27:103"},"nodeType":"YulExpressionStatement","src":"1311:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1298:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1301:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1295:2:103"},"nodeType":"YulFunctionCall","src":"1295:13:103"},"nodeType":"YulIf","src":"1292:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1119:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1124:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"1129:6:103","type":""}],"src":"1088:258:103"}]},"contents":"{\n { }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b600060208252825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122055fbdb05f8012342ff5abfb4313f870083fb64d5b287fdd8f992499369cccd7764736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH2 0x13 JUMPI PUSH2 0x11 PUSH2 0x17 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11 JUMPDEST PUSH2 0x27 PUSH2 0x22 PUSH2 0x67 JUMP JUMPDEST PUSH2 0x9F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25E PUSH1 0x27 SWAP2 CODECOPY PUSH2 0xC3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9A PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x130 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x14B SWAP2 SWAP1 PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x186 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x18B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x19B DUP3 DUP3 DUP7 PUSH2 0x1A5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1B4 JUMPI POP DUP2 PUSH2 0x4E JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x1C4 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x1FA JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1F0 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x22D JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x219 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x22D JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x248 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x230 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x257 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x7066735822122055FBDB SDIV 0xF8 ADD 0x23 TIMESTAMP SELFDESTRUCT GAS 0xBF 0xB4 BALANCE EXTCODEHASH DUP8 STOP DUP4 0xFB PUSH5 0xD5B287FDD8 0xF9 SWAP3 0x49 SWAP4 PUSH10 0xCCCD7764736F6C634300 ADDMOD MUL STOP CALLER ","sourceMap":"567:723:43:-:0;;;;;;2898:11:45;:9;:11::i;:::-;567:723:43;;2675:11:45;2322:110;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;6570:198:58:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:58:o;1175:320::-;-1:-1:-1;;;;;1465:19:58;;:23;;;1175:320::o;1614:190:60:-;1784:4;1760:38::o;1148:140:43:-;1215:12;1246:35;1030:66:44;1380:54;-1:-1:-1;;;;;1380:54:44;;1301:140;1246:35:43;1239:42;;1148:140;:::o;948:895:45:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27;6954:387:58;7095:12;-1:-1:-1;;;;;1465:19:58;;;7119:69;;;;-1:-1:-1;;;7119:69:58;;883:2:103;7119:69:58;;;865:21:103;922:2;902:18;;;895:30;961:34;941:18;;;934:62;-1:-1:-1;;;1012:18:103;;;1005:36;1058:19;;7119:69:58;;;;;;;;;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:58;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:67;;;;7283:51;7300:7;7309:10;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:58:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:58;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:58;;;;;;;;:::i;14:274:103:-;;181:6;175:13;197:53;243:6;238:3;231:4;223:6;219:17;197:53;:::i;:::-;266:16;;;;;151:137;-1:-1:-1;;151:137:103:o;293:383::-;;442:2;431:9;424:21;474:6;468:13;517:6;512:2;501:9;497:18;490:34;533:66;592:6;587:2;576:9;572:18;567:2;559:6;555:15;533:66;:::i;:::-;660:2;639:15;-1:-1:-1;;635:29:103;620:45;;;;667:2;616:54;;414:262;-1:-1:-1;;414:262:103:o;1088:258::-;1160:1;1170:113;1184:6;1181:1;1178:13;1170:113;;;1260:11;;;1254:18;1241:11;;;1234:39;1206:2;1199:10;1170:113;;;1301:6;1298:1;1295:13;1292:2;;;1336:1;1327:6;1322:3;1318:16;1311:27;1292:2;;1141:205;;;:::o"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"ERC1967Upgrade":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"delegatecall\",\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is validated in the constructor.\"},\"_BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\"},\"_IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is validated in the constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":\"ERC1967Upgrade\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/Proxy.sol":{"Proxy":{"abi":[{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"IBeacon":{"abi":[{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"implementation()":"5c60da1b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ``` contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}"}},"@openzeppelin/contracts/security/Pausable.sol":{"Pausable":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"paused()":"5c975abb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/security/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2039:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"78:845:103","statements":[{"body":{"nodeType":"YulBlock","src":"127:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"136:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"143:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"129:6:103"},"nodeType":"YulFunctionCall","src":"129:20:103"},"nodeType":"YulExpressionStatement","src":"129:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"106:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"114:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"102:3:103"},"nodeType":"YulFunctionCall","src":"102:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"121:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"98:3:103"},"nodeType":"YulFunctionCall","src":"98:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"91:6:103"},"nodeType":"YulFunctionCall","src":"91:35:103"},"nodeType":"YulIf","src":"88:2:103"},{"nodeType":"YulVariableDeclaration","src":"160:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"176:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"170:5:103"},"nodeType":"YulFunctionCall","src":"170:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"164:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"192:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"210:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"214:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"206:3:103"},"nodeType":"YulFunctionCall","src":"206:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"218:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"202:3:103"},"nodeType":"YulFunctionCall","src":"202:18:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"196:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"243:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"245:16:103"},"nodeType":"YulFunctionCall","src":"245:18:103"},"nodeType":"YulExpressionStatement","src":"245:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"235:2:103"},{"name":"_2","nodeType":"YulIdentifier","src":"239:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"232:2:103"},"nodeType":"YulFunctionCall","src":"232:10:103"},"nodeType":"YulIf","src":"229:2:103"},{"nodeType":"YulVariableDeclaration","src":"274:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"288:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"284:3:103"},"nodeType":"YulFunctionCall","src":"284:7:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"278:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"300:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"320:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"314:5:103"},"nodeType":"YulFunctionCall","src":"314:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"304:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"332:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"354:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"378:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"382:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:13:103"},{"name":"_3","nodeType":"YulIdentifier","src":"389:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"394:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"366:3:103"},"nodeType":"YulFunctionCall","src":"366:31:103"},{"name":"_3","nodeType":"YulIdentifier","src":"399:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"362:3:103"},"nodeType":"YulFunctionCall","src":"362:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"350:3:103"},"nodeType":"YulFunctionCall","src":"350:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"336:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"464:16:103"},"nodeType":"YulFunctionCall","src":"464:18:103"},"nodeType":"YulExpressionStatement","src":"464:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"421:10:103"},{"name":"_2","nodeType":"YulIdentifier","src":"433:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"418:2:103"},"nodeType":"YulFunctionCall","src":"418:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"441:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"453:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"438:2:103"},"nodeType":"YulFunctionCall","src":"438:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"415:2:103"},"nodeType":"YulFunctionCall","src":"415:46:103"},"nodeType":"YulIf","src":"412:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"500:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"504:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:103"},"nodeType":"YulFunctionCall","src":"493:22:103"},"nodeType":"YulExpressionStatement","src":"493:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"531:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"539:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"524:6:103"},"nodeType":"YulFunctionCall","src":"524:18:103"},"nodeType":"YulExpressionStatement","src":"524:18:103"},{"nodeType":"YulVariableDeclaration","src":"551:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"561:4:103","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"555:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"611:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"620:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"627:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"613:6:103"},"nodeType":"YulFunctionCall","src":"613:20:103"},"nodeType":"YulExpressionStatement","src":"613:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"588:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"596:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"584:3:103"},"nodeType":"YulFunctionCall","src":"584:15:103"},{"name":"_4","nodeType":"YulIdentifier","src":"601:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"580:3:103"},"nodeType":"YulFunctionCall","src":"580:24:103"},{"name":"end","nodeType":"YulIdentifier","src":"606:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"577:2:103"},"nodeType":"YulFunctionCall","src":"577:33:103"},"nodeType":"YulIf","src":"574:2:103"},{"nodeType":"YulVariableDeclaration","src":"644:14:103","value":{"name":"array","nodeType":"YulIdentifier","src":"653:5:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"648:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"713:87:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"742:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"750:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"738:3:103"},"nodeType":"YulFunctionCall","src":"738:14:103"},{"name":"_4","nodeType":"YulIdentifier","src":"754:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:103"},"nodeType":"YulFunctionCall","src":"734:23:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"773:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"781:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:103"},"nodeType":"YulFunctionCall","src":"769:14:103"},{"name":"_4","nodeType":"YulIdentifier","src":"785:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:103"},"nodeType":"YulFunctionCall","src":"765:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"759:5:103"},"nodeType":"YulFunctionCall","src":"759:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:103"},"nodeType":"YulFunctionCall","src":"727:63:103"},"nodeType":"YulExpressionStatement","src":"727:63:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"678:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"681:2:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"675:2:103"},"nodeType":"YulFunctionCall","src":"675:9:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"685:19:103","statements":[{"nodeType":"YulAssignment","src":"687:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"696:1:103"},{"name":"_4","nodeType":"YulIdentifier","src":"699:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"692:3:103"},"nodeType":"YulFunctionCall","src":"692:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"687:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"671:3:103","statements":[]},"src":"667:133:103"},{"body":{"nodeType":"YulBlock","src":"830:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"859:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"867:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"855:3:103"},"nodeType":"YulFunctionCall","src":"855:15:103"},{"name":"_4","nodeType":"YulIdentifier","src":"872:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"851:3:103"},"nodeType":"YulFunctionCall","src":"851:24:103"},{"name":"array","nodeType":"YulIdentifier","src":"877:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"844:6:103"},"nodeType":"YulFunctionCall","src":"844:39:103"},"nodeType":"YulExpressionStatement","src":"844:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"815:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"818:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"812:2:103"},"nodeType":"YulFunctionCall","src":"812:9:103"},"nodeType":"YulIf","src":"809:2:103"},{"nodeType":"YulAssignment","src":"902:15:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"911:6:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"902:5:103"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"52:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"60:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"68:5:103","type":""}],"src":"14:909:103"},{"body":{"nodeType":"YulBlock","src":"1046:474:103","statements":[{"body":{"nodeType":"YulBlock","src":"1092:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1101:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1109:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1094:6:103"},"nodeType":"YulFunctionCall","src":"1094:22:103"},"nodeType":"YulExpressionStatement","src":"1094:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1067:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1076:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1063:3:103"},"nodeType":"YulFunctionCall","src":"1063:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1088:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1059:3:103"},"nodeType":"YulFunctionCall","src":"1059:32:103"},"nodeType":"YulIf","src":"1056:2:103"},{"nodeType":"YulVariableDeclaration","src":"1127:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1147:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1141:5:103"},"nodeType":"YulFunctionCall","src":"1141:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1131:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1166:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1184:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1188:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1180:3:103"},"nodeType":"YulFunctionCall","src":"1180:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"1192:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1176:3:103"},"nodeType":"YulFunctionCall","src":"1176:18:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1170:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1221:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1230:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1238:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1223:6:103"},"nodeType":"YulFunctionCall","src":"1223:22:103"},"nodeType":"YulExpressionStatement","src":"1223:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1209:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1217:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1206:2:103"},"nodeType":"YulFunctionCall","src":"1206:14:103"},"nodeType":"YulIf","src":"1203:2:103"},{"nodeType":"YulAssignment","src":"1256:71:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1299:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1310:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1295:3:103"},"nodeType":"YulFunctionCall","src":"1295:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1319:7:103"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1266:28:103"},"nodeType":"YulFunctionCall","src":"1266:61:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1256:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1336:41:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1362:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1373:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1358:3:103"},"nodeType":"YulFunctionCall","src":"1358:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1352:5:103"},"nodeType":"YulFunctionCall","src":"1352:25:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1340:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1406:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1415:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1423:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1408:6:103"},"nodeType":"YulFunctionCall","src":"1408:22:103"},"nodeType":"YulExpressionStatement","src":"1408:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1392:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1402:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:103"},"nodeType":"YulFunctionCall","src":"1389:16:103"},"nodeType":"YulIf","src":"1386:2:103"},{"nodeType":"YulAssignment","src":"1441:73:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1484:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1495:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1480:3:103"},"nodeType":"YulFunctionCall","src":"1480:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1506:7:103"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1451:28:103"},"nodeType":"YulFunctionCall","src":"1451:63:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1441:6:103"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1004:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1015:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1027:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1035:6:103","type":""}],"src":"928:592:103"},{"body":{"nodeType":"YulBlock","src":"1580:325:103","statements":[{"nodeType":"YulAssignment","src":"1590:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1604:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1610:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1600:3:103"},"nodeType":"YulFunctionCall","src":"1600:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1590:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1621:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1651:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1657:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1647:3:103"},"nodeType":"YulFunctionCall","src":"1647:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1625:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1698:31:103","statements":[{"nodeType":"YulAssignment","src":"1700:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1714:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1722:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1710:3:103"},"nodeType":"YulFunctionCall","src":"1710:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1700:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1678:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1671:6:103"},"nodeType":"YulFunctionCall","src":"1671:26:103"},"nodeType":"YulIf","src":"1668:2:103"},{"body":{"nodeType":"YulBlock","src":"1788:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1809:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1816:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1821:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1812:3:103"},"nodeType":"YulFunctionCall","src":"1812:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1802:6:103"},"nodeType":"YulFunctionCall","src":"1802:31:103"},"nodeType":"YulExpressionStatement","src":"1802:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1853:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1856:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1846:6:103"},"nodeType":"YulFunctionCall","src":"1846:15:103"},"nodeType":"YulExpressionStatement","src":"1846:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1881:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1884:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1874:6:103"},"nodeType":"YulFunctionCall","src":"1874:15:103"},"nodeType":"YulExpressionStatement","src":"1874:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1744:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1767:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1775:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1764:2:103"},"nodeType":"YulFunctionCall","src":"1764:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1741:2:103"},"nodeType":"YulFunctionCall","src":"1741:38:103"},"nodeType":"YulIf","src":"1738:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1560:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1569:6:103","type":""}],"src":"1525:380:103"},{"body":{"nodeType":"YulBlock","src":"1942:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1966:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1971:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1962:3:103"},"nodeType":"YulFunctionCall","src":"1962:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1952:6:103"},"nodeType":"YulFunctionCall","src":"1952:31:103"},"nodeType":"YulExpressionStatement","src":"1952:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1999:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2002:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1992:6:103"},"nodeType":"YulFunctionCall","src":"1992:15:103"},"nodeType":"YulExpressionStatement","src":"1992:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2023:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2026:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2016:6:103"},"nodeType":"YulFunctionCall","src":"2016:15:103"},"nodeType":"YulExpressionStatement","src":"2016:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1910:127:103"}]},"contents":"{\n { }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(array, array) }\n let i := array\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), array)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(value0, value0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(value1, value1) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000b0e38038062000b0e8339810160408190526200003491620001c1565b81516200004990600390602085019062000068565b5080516200005f90600490602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b6002810460018216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b610883806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b4114610149578063a457c2d714610151578063a9059cbb14610164578063dd62ed3e14610177576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b661018a565b6040516100c3919061079b565b60405180910390f35b6100df6100da366004610772565b61021c565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610737565b610234565b604051601281526020016100c3565b6100df610131366004610772565b610258565b6100f36101443660046106e4565b61027a565b6100b6610299565b6100df61015f366004610772565b6102a8565b6100df610172366004610772565b610328565b6100f3610185366004610705565b610336565b60606003805461019990610812565b80601f01602080910402602001604051908101604052809291908181526020018280546101c590610812565b80156102125780601f106101e757610100808354040283529160200191610212565b820191906000526020600020905b8154815290600101906020018083116101f557829003601f168201915b5050505050905090565b60003361022a818585610361565b5060019392505050565b600033610242858285610485565b61024d8585856104ff565b506001949350505050565b60003361022a81858561026b8383610336565b61027591906107ee565b610361565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461019990610812565b600033816102b68286610336565b90508381101561031b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61024d8286868403610361565b60003361022a8185856104ff565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103c35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610312565b6001600160a01b0382166104245760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610312565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104918484610336565b905060001981146104f957818110156104ec5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610312565b6104f98484848403610361565b50505050565b6001600160a01b0383166105635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610312565b6001600160a01b0382166105c55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610312565b6001600160a01b0383166000908152602081905260409020548181101561063d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610312565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106749084906107ee565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c091815260200190565b60405180910390a36104f9565b80356001600160a01b038116811461029457600080fd5b6000602082840312156106f5578081fd5b6106fe826106cd565b9392505050565b60008060408385031215610717578081fd5b610720836106cd565b915061072e602084016106cd565b90509250929050565b60008060006060848603121561074b578081fd5b610754846106cd565b9250610762602085016106cd565b9150604084013590509250925092565b60008060408385031215610784578182fd5b61078d836106cd565b946020939093013593505050565b6000602080835283518082850152825b818110156107c7578581018301518582016040015282016107ab565b818111156107d85783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561080d57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061082657607f821691505b6020821081141561084757634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122002edc58f2c0158e1ceaba74717f5f4f309ad6aaf007f846f016f8485f4f0fc4b64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xB0E CODESIZE SUB DUP1 PUSH3 0xB0E DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1C1 JUMP JUMPDEST DUP2 MLOAD PUSH3 0x49 SWAP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x5F SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP POP POP PUSH3 0x27B JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x76 SWAP1 PUSH3 0x228 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x9A JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xB5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xE5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xE5 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xC8 JUMP JUMPDEST POP PUSH3 0xF3 SWAP3 SWAP2 POP PUSH3 0xF7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xF8 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x11F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x13C JUMPI PUSH3 0x13C PUSH3 0x265 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x167 JUMPI PUSH3 0x167 PUSH3 0x265 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x183 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP5 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1A6 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x187 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1B7 JUMPI DUP5 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1D4 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x1EB JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH3 0x1F9 DUP7 DUP4 DUP8 ADD PUSH3 0x10E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x20F JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH3 0x21E DUP6 DUP3 DUP7 ADD PUSH3 0x10E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x23D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x883 DUP1 PUSH3 0x28B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x177 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x18A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x79B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x21C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x737 JUMP JUMPDEST PUSH2 0x234 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x258 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x27A JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x299 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x2A8 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x328 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0x705 JUMP JUMPDEST PUSH2 0x336 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x199 SWAP1 PUSH2 0x812 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C5 SWAP1 PUSH2 0x812 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x212 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x212 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x361 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x242 DUP6 DUP3 DUP6 PUSH2 0x485 JUMP JUMPDEST PUSH2 0x24D DUP6 DUP6 DUP6 PUSH2 0x4FF JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x26B DUP4 DUP4 PUSH2 0x336 JUMP JUMPDEST PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x361 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x199 SWAP1 PUSH2 0x812 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2B6 DUP3 DUP7 PUSH2 0x336 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x31B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x24D DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x361 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x4FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x491 DUP5 DUP5 PUSH2 0x336 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F9 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x312 JUMP JUMPDEST PUSH2 0x4F9 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x361 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x563 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x63D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x674 SWAP1 DUP5 SWAP1 PUSH2 0x7EE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6C0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6F5 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x6FE DUP3 PUSH2 0x6CD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x717 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x720 DUP4 PUSH2 0x6CD JUMP JUMPDEST SWAP2 POP PUSH2 0x72E PUSH1 0x20 DUP5 ADD PUSH2 0x6CD JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x74B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x754 DUP5 PUSH2 0x6CD JUMP JUMPDEST SWAP3 POP PUSH2 0x762 PUSH1 0x20 DUP6 ADD PUSH2 0x6CD JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x784 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x78D DUP4 PUSH2 0x6CD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7C7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7D8 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x80D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x826 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x847 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL 0xED 0xC5 DUP16 0x2C ADD PC 0xE1 0xCE 0xAB 0xA7 SELFBALANCE OR CREATE2 DELEGATECALL RETURN MULMOD 0xAD PUSH11 0xAF007F846F016F8485F4F0 0xFC 0x4B PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1403:11214:49:-:0;;;1978:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2044:13;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;1403:11214;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1403:11214:49;;;-1:-1:-1;1403:11214:49;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:909:103;;121:3;114:4;106:6;102:17;98:27;88:2;;143:5;136;129:20;88:2;170:13;;-1:-1:-1;;;;;232:10:103;;;229:2;;;245:18;;:::i;:::-;320:2;314:9;288:2;374:13;;-1:-1:-1;;370:22:103;;;394:2;366:31;362:40;350:53;;;418:18;;;438:22;;;415:46;412:2;;;464:18;;:::i;:::-;504:10;500:2;493:22;539:2;531:6;524:18;561:4;551:14;;606:3;601:2;596;588:6;584:15;580:24;577:33;574:2;;;627:5;620;613:20;574:2;653:5;644:14;;667:133;681:2;678:1;675:9;667:133;;;769:14;;;765:23;;759:30;738:14;;;734:23;;727:63;692:10;;;;667:133;;;818:2;815:1;812:9;809:2;;;877:5;872:2;867;859:6;855:15;851:24;844:39;809:2;911:6;78:845;-1:-1:-1;;;;;;78:845:103:o;928:592::-;;;1088:2;1076:9;1067:7;1063:23;1059:32;1056:2;;;1109:6;1101;1094:22;1056:2;1141:16;;-1:-1:-1;;;;;1206:14:103;;;1203:2;;;1238:6;1230;1223:22;1203:2;1266:61;1319:7;1310:6;1299:9;1295:22;1266:61;:::i;:::-;1256:71;;1373:2;1362:9;1358:18;1352:25;1336:41;;1402:2;1392:8;1389:16;1386:2;;;1423:6;1415;1408:22;1386:2;;1451:63;1506:7;1495:8;1484:9;1480:24;1451:63;:::i;:::-;1441:73;;;1046:474;;;;;:::o;1525:380::-;1610:1;1600:12;;1657:1;1647:12;;;1668:2;;1722:4;1714:6;1710:17;1700:27;;1668:2;1775;1767:6;1764:14;1744:18;1741:38;1738:2;;;1821:10;1816:3;1812:20;1809:1;1802:31;1856:4;1853:1;1846:15;1884:4;1881:1;1874:15;1738:2;;1580:325;;;:::o;1910:127::-;1971:10;1966:3;1962:20;1959:1;1952:31;2002:4;1999:1;1992:15;2026:4;2023:1;2016:15;1942:95;1403:11214:49;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5856:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1375:92:103","statements":[{"nodeType":"YulAssignment","src":"1385:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:103"},"nodeType":"YulFunctionCall","src":"1393:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:103"},"nodeType":"YulFunctionCall","src":"1445:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:103"},"nodeType":"YulFunctionCall","src":"1438:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:103"},"nodeType":"YulFunctionCall","src":"1420:41:103"},"nodeType":"YulExpressionStatement","src":"1420:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:103","type":""}],"src":"1280:187:103"},{"body":{"nodeType":"YulBlock","src":"1593:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:103"},"nodeType":"YulFunctionCall","src":"1624:21:103"},"nodeType":"YulExpressionStatement","src":"1624:21:103"},{"nodeType":"YulVariableDeclaration","src":"1654:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:103"},"nodeType":"YulFunctionCall","src":"1668:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:103"},"nodeType":"YulFunctionCall","src":"1697:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:103"},"nodeType":"YulFunctionCall","src":"1690:34:103"},"nodeType":"YulExpressionStatement","src":"1690:34:103"},{"nodeType":"YulVariableDeclaration","src":"1733:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:103"},"nodeType":"YulFunctionCall","src":"1826:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:103"},"nodeType":"YulFunctionCall","src":"1854:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:103"},"nodeType":"YulFunctionCall","src":"1819:66:103"},"nodeType":"YulExpressionStatement","src":"1819:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:103"},"nodeType":"YulFunctionCall","src":"1763:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:103","statements":[{"nodeType":"YulAssignment","src":"1779:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:103"},"nodeType":"YulFunctionCall","src":"1784:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:103","statements":[]},"src":"1755:140:103"},{"body":{"nodeType":"YulBlock","src":"1929:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:103"},"nodeType":"YulFunctionCall","src":"1954:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:103"},"nodeType":"YulFunctionCall","src":"1950:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:103"},"nodeType":"YulFunctionCall","src":"1943:45:103"},"nodeType":"YulExpressionStatement","src":"1943:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:103"},"nodeType":"YulFunctionCall","src":"1907:13:103"},"nodeType":"YulIf","src":"1904:2:103"},{"nodeType":"YulAssignment","src":"2007:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:103"},"nodeType":"YulFunctionCall","src":"2038:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:103"},"nodeType":"YulFunctionCall","src":"2055:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:103"},"nodeType":"YulFunctionCall","src":"2019:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:103"},"nodeType":"YulFunctionCall","src":"2015:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:103","type":""}],"src":"1472:603:103"},{"body":{"nodeType":"YulBlock","src":"2254:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:103"},"nodeType":"YulFunctionCall","src":"2264:21:103"},"nodeType":"YulExpressionStatement","src":"2264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:103"},"nodeType":"YulFunctionCall","src":"2294:30:103"},"nodeType":"YulExpressionStatement","src":"2294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:62:103"},"nodeType":"YulExpressionStatement","src":"2333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:103"},"nodeType":"YulFunctionCall","src":"2411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:103"},"nodeType":"YulFunctionCall","src":"2404:33:103"},"nodeType":"YulExpressionStatement","src":"2404:33:103"},{"nodeType":"YulAssignment","src":"2446:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:103"},"nodeType":"YulFunctionCall","src":"2454:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:103","type":""}],"src":"2080:399:103"},{"body":{"nodeType":"YulBlock","src":"2658:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:103"},"nodeType":"YulFunctionCall","src":"2668:21:103"},"nodeType":"YulExpressionStatement","src":"2668:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:103"},"nodeType":"YulFunctionCall","src":"2698:30:103"},"nodeType":"YulExpressionStatement","src":"2698:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:103"},"nodeType":"YulFunctionCall","src":"2737:62:103"},"nodeType":"YulExpressionStatement","src":"2737:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:103"},"nodeType":"YulFunctionCall","src":"2815:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:103"},"nodeType":"YulFunctionCall","src":"2808:32:103"},"nodeType":"YulExpressionStatement","src":"2808:32:103"},{"nodeType":"YulAssignment","src":"2849:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:103"},"nodeType":"YulFunctionCall","src":"2857:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:103","type":""}],"src":"2484:398:103"},{"body":{"nodeType":"YulBlock","src":"3061:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:21:103"},"nodeType":"YulExpressionStatement","src":"3071:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:103"},"nodeType":"YulFunctionCall","src":"3108:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:103"},"nodeType":"YulFunctionCall","src":"3101:30:103"},"nodeType":"YulExpressionStatement","src":"3101:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:103"},"nodeType":"YulFunctionCall","src":"3140:59:103"},"nodeType":"YulExpressionStatement","src":"3140:59:103"},{"nodeType":"YulAssignment","src":"3208:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:103"},"nodeType":"YulFunctionCall","src":"3216:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:103","type":""}],"src":"2887:353:103"},{"body":{"nodeType":"YulBlock","src":"3419:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:21:103"},"nodeType":"YulExpressionStatement","src":"3429:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:103"},"nodeType":"YulFunctionCall","src":"3459:30:103"},"nodeType":"YulExpressionStatement","src":"3459:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:62:103"},"nodeType":"YulExpressionStatement","src":"3498:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:103"},"nodeType":"YulFunctionCall","src":"3569:36:103"},"nodeType":"YulExpressionStatement","src":"3569:36:103"},{"nodeType":"YulAssignment","src":"3614:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:103","type":""}],"src":"3245:402:103"},{"body":{"nodeType":"YulBlock","src":"3826:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:103"},"nodeType":"YulFunctionCall","src":"3836:21:103"},"nodeType":"YulExpressionStatement","src":"3836:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:103"},"nodeType":"YulFunctionCall","src":"3873:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:103"},"nodeType":"YulFunctionCall","src":"3866:30:103"},"nodeType":"YulExpressionStatement","src":"3866:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:103"},"nodeType":"YulFunctionCall","src":"3912:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:103"},"nodeType":"YulFunctionCall","src":"3905:62:103"},"nodeType":"YulExpressionStatement","src":"3905:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:103"},"nodeType":"YulFunctionCall","src":"3983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:35:103"},"nodeType":"YulExpressionStatement","src":"3976:35:103"},{"nodeType":"YulAssignment","src":"4020:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:103","type":""}],"src":"3652:401:103"},{"body":{"nodeType":"YulBlock","src":"4232:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:103"},"nodeType":"YulFunctionCall","src":"4242:21:103"},"nodeType":"YulExpressionStatement","src":"4242:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:103"},"nodeType":"YulFunctionCall","src":"4279:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:103"},"nodeType":"YulFunctionCall","src":"4272:30:103"},"nodeType":"YulExpressionStatement","src":"4272:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:103"},"nodeType":"YulFunctionCall","src":"4318:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:103"},"nodeType":"YulFunctionCall","src":"4311:62:103"},"nodeType":"YulExpressionStatement","src":"4311:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:103"},"nodeType":"YulFunctionCall","src":"4382:34:103"},"nodeType":"YulExpressionStatement","src":"4382:34:103"},{"nodeType":"YulAssignment","src":"4425:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:103"},"nodeType":"YulFunctionCall","src":"4433:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:103","type":""}],"src":"4058:400:103"},{"body":{"nodeType":"YulBlock","src":"4637:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:21:103"},"nodeType":"YulExpressionStatement","src":"4647:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:103"},"nodeType":"YulFunctionCall","src":"4677:30:103"},"nodeType":"YulExpressionStatement","src":"4677:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:103"},"nodeType":"YulFunctionCall","src":"4723:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:103"},"nodeType":"YulFunctionCall","src":"4716:62:103"},"nodeType":"YulExpressionStatement","src":"4716:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:103"},"nodeType":"YulFunctionCall","src":"4794:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:103"},"nodeType":"YulFunctionCall","src":"4787:35:103"},"nodeType":"YulExpressionStatement","src":"4787:35:103"},{"nodeType":"YulAssignment","src":"4831:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:103"},"nodeType":"YulFunctionCall","src":"4839:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:103","type":""}],"src":"4463:401:103"},{"body":{"nodeType":"YulBlock","src":"4970:76:103","statements":[{"nodeType":"YulAssignment","src":"4980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4988:3:103"},"nodeType":"YulFunctionCall","src":"4988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5015:6:103"},"nodeType":"YulFunctionCall","src":"5015:25:103"},"nodeType":"YulExpressionStatement","src":"5015:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4961:4:103","type":""}],"src":"4869:177:103"},{"body":{"nodeType":"YulBlock","src":"5148:87:103","statements":[{"nodeType":"YulAssignment","src":"5158:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:103"},"nodeType":"YulFunctionCall","src":"5166:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5223:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5211:3:103"},"nodeType":"YulFunctionCall","src":"5211:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:103"},"nodeType":"YulFunctionCall","src":"5193:36:103"},"nodeType":"YulExpressionStatement","src":"5193:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5117:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5128:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5139:4:103","type":""}],"src":"5051:184:103"},{"body":{"nodeType":"YulBlock","src":"5288:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"5323:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5344:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:103"},"nodeType":"YulFunctionCall","src":"5349:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:103"},"nodeType":"YulFunctionCall","src":"5337:33:103"},"nodeType":"YulExpressionStatement","src":"5337:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5390:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5393:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:103"},"nodeType":"YulFunctionCall","src":"5383:15:103"},"nodeType":"YulExpressionStatement","src":"5383:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5418:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5423:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5411:6:103"},"nodeType":"YulFunctionCall","src":"5411:17:103"},"nodeType":"YulExpressionStatement","src":"5411:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5304:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5311:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5307:3:103"},"nodeType":"YulFunctionCall","src":"5307:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5301:2:103"},"nodeType":"YulFunctionCall","src":"5301:13:103"},"nodeType":"YulIf","src":"5298:2:103"},{"nodeType":"YulAssignment","src":"5447:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5458:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5461:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:103"},"nodeType":"YulFunctionCall","src":"5454:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5447:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5271:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5274:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5280:3:103","type":""}],"src":"5240:229:103"},{"body":{"nodeType":"YulBlock","src":"5529:325:103","statements":[{"nodeType":"YulAssignment","src":"5539:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5553:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5559:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5549:3:103"},"nodeType":"YulFunctionCall","src":"5549:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5539:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5570:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5606:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5596:3:103"},"nodeType":"YulFunctionCall","src":"5596:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5574:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5647:31:103","statements":[{"nodeType":"YulAssignment","src":"5649:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5663:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5671:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5659:3:103"},"nodeType":"YulFunctionCall","src":"5659:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5649:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5627:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5620:6:103"},"nodeType":"YulFunctionCall","src":"5620:26:103"},"nodeType":"YulIf","src":"5617:2:103"},{"body":{"nodeType":"YulBlock","src":"5737:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5765:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5770:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5761:3:103"},"nodeType":"YulFunctionCall","src":"5761:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5751:6:103"},"nodeType":"YulFunctionCall","src":"5751:31:103"},"nodeType":"YulExpressionStatement","src":"5751:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5802:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5805:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5795:6:103"},"nodeType":"YulFunctionCall","src":"5795:15:103"},"nodeType":"YulExpressionStatement","src":"5795:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5833:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5823:6:103"},"nodeType":"YulFunctionCall","src":"5823:15:103"},"nodeType":"YulExpressionStatement","src":"5823:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5693:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5716:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5724:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5713:2:103"},"nodeType":"YulFunctionCall","src":"5713:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5690:2:103"},"nodeType":"YulFunctionCall","src":"5690:38:103"},"nodeType":"YulIf","src":"5687:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5509:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5518:6:103","type":""}],"src":"5474:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461012357806370a082311461013657806395d89b4114610149578063a457c2d714610151578063a9059cbb14610164578063dd62ed3e14610177576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100ef57806323b872dd14610101578063313ce56714610114575b600080fd5b6100b661018a565b6040516100c3919061079b565b60405180910390f35b6100df6100da366004610772565b61021c565b60405190151581526020016100c3565b6002545b6040519081526020016100c3565b6100df61010f366004610737565b610234565b604051601281526020016100c3565b6100df610131366004610772565b610258565b6100f36101443660046106e4565b61027a565b6100b6610299565b6100df61015f366004610772565b6102a8565b6100df610172366004610772565b610328565b6100f3610185366004610705565b610336565b60606003805461019990610812565b80601f01602080910402602001604051908101604052809291908181526020018280546101c590610812565b80156102125780601f106101e757610100808354040283529160200191610212565b820191906000526020600020905b8154815290600101906020018083116101f557829003601f168201915b5050505050905090565b60003361022a818585610361565b5060019392505050565b600033610242858285610485565b61024d8585856104ff565b506001949350505050565b60003361022a81858561026b8383610336565b61027591906107ee565b610361565b6001600160a01b0381166000908152602081905260409020545b919050565b60606004805461019990610812565b600033816102b68286610336565b90508381101561031b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61024d8286868403610361565b60003361022a8185856104ff565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166103c35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610312565b6001600160a01b0382166104245760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610312565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104918484610336565b905060001981146104f957818110156104ec5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610312565b6104f98484848403610361565b50505050565b6001600160a01b0383166105635760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610312565b6001600160a01b0382166105c55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610312565b6001600160a01b0383166000908152602081905260409020548181101561063d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610312565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106749084906107ee565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c091815260200190565b60405180910390a36104f9565b80356001600160a01b038116811461029457600080fd5b6000602082840312156106f5578081fd5b6106fe826106cd565b9392505050565b60008060408385031215610717578081fd5b610720836106cd565b915061072e602084016106cd565b90509250929050565b60008060006060848603121561074b578081fd5b610754846106cd565b9250610762602085016106cd565b9150604084013590509250925092565b60008060408385031215610784578182fd5b61078d836106cd565b946020939093013593505050565b6000602080835283518082850152825b818110156107c7578581018301518582016040015282016107ab565b818111156107d85783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561080d57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061082657607f821691505b6020821081141561084757634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122002edc58f2c0158e1ceaba74717f5f4f309ad6aaf007f846f016f8485f4f0fc4b64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x39509351 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x136 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x149 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x177 JUMPI PUSH2 0xA9 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB6 PUSH2 0x18A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0x79B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDF PUSH2 0xDA CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x21C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x10F CALLDATASIZE PUSH1 0x4 PUSH2 0x737 JUMP JUMPDEST PUSH2 0x234 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC3 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x131 CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x258 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x144 CALLDATASIZE PUSH1 0x4 PUSH2 0x6E4 JUMP JUMPDEST PUSH2 0x27A JUMP JUMPDEST PUSH2 0xB6 PUSH2 0x299 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x2A8 JUMP JUMPDEST PUSH2 0xDF PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0x772 JUMP JUMPDEST PUSH2 0x328 JUMP JUMPDEST PUSH2 0xF3 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0x705 JUMP JUMPDEST PUSH2 0x336 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x199 SWAP1 PUSH2 0x812 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1C5 SWAP1 PUSH2 0x812 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x212 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x212 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1F5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x361 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x242 DUP6 DUP3 DUP6 PUSH2 0x485 JUMP JUMPDEST PUSH2 0x24D DUP6 DUP6 DUP6 PUSH2 0x4FF JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x26B DUP4 DUP4 PUSH2 0x336 JUMP JUMPDEST PUSH2 0x275 SWAP2 SWAP1 PUSH2 0x7EE JUMP JUMPDEST PUSH2 0x361 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x199 SWAP1 PUSH2 0x812 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2B6 DUP3 DUP7 PUSH2 0x336 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x31B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x24D DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x361 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x22A DUP2 DUP6 DUP6 PUSH2 0x4FF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x491 DUP5 DUP5 PUSH2 0x336 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x4F9 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x4EC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x312 JUMP JUMPDEST PUSH2 0x4F9 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x361 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x563 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x63D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x312 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x674 SWAP1 DUP5 SWAP1 PUSH2 0x7EE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6C0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x4F9 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x294 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6F5 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x6FE DUP3 PUSH2 0x6CD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x717 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x720 DUP4 PUSH2 0x6CD JUMP JUMPDEST SWAP2 POP PUSH2 0x72E PUSH1 0x20 DUP5 ADD PUSH2 0x6CD JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x74B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x754 DUP5 PUSH2 0x6CD JUMP JUMPDEST SWAP3 POP PUSH2 0x762 PUSH1 0x20 DUP6 ADD PUSH2 0x6CD JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x784 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x78D DUP4 PUSH2 0x6CD JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7C7 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x7AB JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x7D8 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x80D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x826 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x847 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MUL 0xED 0xC5 DUP16 0x2C ADD PC 0xE1 0xCE 0xAB 0xA7 SELFBALANCE OR CREATE2 DELEGATECALL RETURN MULMOD 0xAD PUSH11 0xAF007F846F016F8485F4F0 0xFC 0x4B PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1403:11214:49:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:49;1375:92:103;3244:106:49;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:49;4970:76:103;5192:286:49;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:49;5148:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;2156:98::-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:49;;5192:286;-1:-1:-1;;;;5192:286:49:o;5873:234::-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;4665:2:103;6803:85:49;;;4647:21:103;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:103;;;4787:35;4839:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;4260:2:103;10233:68:49;;;4242:21:103;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:103;;;4382:34;4433:19;;10233:68:49;4232:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;2686:2:103;10311:68:49;;;2668:21:103;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:103;;;2808:32;2857:19;;10311:68:49;2658:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:103;;;10441:32:49;;4988:18:103;10441:32:49;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;3089:2:103;11010:68:49;;;3071:21:103;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:49;3061:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;3854:2:103;7593:68:49;;;3836:21:103;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:103;;;3976:35;4028:19;;7593:68:49;3826:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;2282:2:103;7671:64:49;;;2264:21:103;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:103;;;2404:33;2454:19;;7671:64:49;2254:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;3447:2:103;7842:72:49;;;3429:21:103;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:103;;;3569:36;3622:19;;7842:72:49;3419:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;5015:25:103;;5003:2;4988:18;;4970:76;8045:26:49;;;;;;;;8082:37;11786:121;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:103:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:103;2038:15;-1:-1:-1;;2034:29:103;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:103:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:103;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:103;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"IERC20Permit":{"abi":[{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"SafeERC20":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f2265fee8809f20a3a7d891c578673c85c3f0b5665433b90b90fcc918d4e46b764736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE 0x26 0x5F 0xEE DUP9 MULMOD CALLCODE EXP GASPRICE PUSH30 0x891C578673C85C3F0B5665433B90B90FCC918D4E46B764736F6C63430008 MUL STOP CALLER ","sourceMap":"707:3748:53:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;707:3748:53;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f2265fee8809f20a3a7d891c578673c85c3f0b5665433b90b90fcc918d4e46b764736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLCODE 0x26 0x5F 0xEE DUP9 MULMOD CALLCODE EXP GASPRICE PUSH30 0x891C578673C85C3F0B5665433B90B90FCC918D4E46B764736F6C63430008 MUL STOP CALLER ","sourceMap":"707:3748:53:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/ERC721.sol":{"ERC721":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2039:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"78:845:103","statements":[{"body":{"nodeType":"YulBlock","src":"127:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"136:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"143:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"129:6:103"},"nodeType":"YulFunctionCall","src":"129:20:103"},"nodeType":"YulExpressionStatement","src":"129:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"106:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"114:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"102:3:103"},"nodeType":"YulFunctionCall","src":"102:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"121:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"98:3:103"},"nodeType":"YulFunctionCall","src":"98:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"91:6:103"},"nodeType":"YulFunctionCall","src":"91:35:103"},"nodeType":"YulIf","src":"88:2:103"},{"nodeType":"YulVariableDeclaration","src":"160:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"176:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"170:5:103"},"nodeType":"YulFunctionCall","src":"170:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"164:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"192:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"210:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"214:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"206:3:103"},"nodeType":"YulFunctionCall","src":"206:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"218:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"202:3:103"},"nodeType":"YulFunctionCall","src":"202:18:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"196:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"243:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"245:16:103"},"nodeType":"YulFunctionCall","src":"245:18:103"},"nodeType":"YulExpressionStatement","src":"245:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"235:2:103"},{"name":"_2","nodeType":"YulIdentifier","src":"239:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"232:2:103"},"nodeType":"YulFunctionCall","src":"232:10:103"},"nodeType":"YulIf","src":"229:2:103"},{"nodeType":"YulVariableDeclaration","src":"274:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"288:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"284:3:103"},"nodeType":"YulFunctionCall","src":"284:7:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"278:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"300:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"320:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"314:5:103"},"nodeType":"YulFunctionCall","src":"314:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"304:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"332:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"354:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"378:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"382:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:13:103"},{"name":"_3","nodeType":"YulIdentifier","src":"389:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"394:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"366:3:103"},"nodeType":"YulFunctionCall","src":"366:31:103"},{"name":"_3","nodeType":"YulIdentifier","src":"399:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"362:3:103"},"nodeType":"YulFunctionCall","src":"362:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"350:3:103"},"nodeType":"YulFunctionCall","src":"350:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"336:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"462:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"464:16:103"},"nodeType":"YulFunctionCall","src":"464:18:103"},"nodeType":"YulExpressionStatement","src":"464:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"421:10:103"},{"name":"_2","nodeType":"YulIdentifier","src":"433:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"418:2:103"},"nodeType":"YulFunctionCall","src":"418:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"441:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"453:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"438:2:103"},"nodeType":"YulFunctionCall","src":"438:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"415:2:103"},"nodeType":"YulFunctionCall","src":"415:46:103"},"nodeType":"YulIf","src":"412:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"500:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"504:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"493:6:103"},"nodeType":"YulFunctionCall","src":"493:22:103"},"nodeType":"YulExpressionStatement","src":"493:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"531:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"539:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"524:6:103"},"nodeType":"YulFunctionCall","src":"524:18:103"},"nodeType":"YulExpressionStatement","src":"524:18:103"},{"nodeType":"YulVariableDeclaration","src":"551:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"561:4:103","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"555:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"611:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"620:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"627:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"613:6:103"},"nodeType":"YulFunctionCall","src":"613:20:103"},"nodeType":"YulExpressionStatement","src":"613:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"588:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"596:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"584:3:103"},"nodeType":"YulFunctionCall","src":"584:15:103"},{"name":"_4","nodeType":"YulIdentifier","src":"601:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"580:3:103"},"nodeType":"YulFunctionCall","src":"580:24:103"},{"name":"end","nodeType":"YulIdentifier","src":"606:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"577:2:103"},"nodeType":"YulFunctionCall","src":"577:33:103"},"nodeType":"YulIf","src":"574:2:103"},{"nodeType":"YulVariableDeclaration","src":"644:14:103","value":{"name":"array","nodeType":"YulIdentifier","src":"653:5:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"648:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"713:87:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"742:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"750:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"738:3:103"},"nodeType":"YulFunctionCall","src":"738:14:103"},{"name":"_4","nodeType":"YulIdentifier","src":"754:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"734:3:103"},"nodeType":"YulFunctionCall","src":"734:23:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"773:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"781:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:103"},"nodeType":"YulFunctionCall","src":"769:14:103"},{"name":"_4","nodeType":"YulIdentifier","src":"785:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:103"},"nodeType":"YulFunctionCall","src":"765:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"759:5:103"},"nodeType":"YulFunctionCall","src":"759:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"727:6:103"},"nodeType":"YulFunctionCall","src":"727:63:103"},"nodeType":"YulExpressionStatement","src":"727:63:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"678:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"681:2:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"675:2:103"},"nodeType":"YulFunctionCall","src":"675:9:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"685:19:103","statements":[{"nodeType":"YulAssignment","src":"687:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"696:1:103"},{"name":"_4","nodeType":"YulIdentifier","src":"699:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"692:3:103"},"nodeType":"YulFunctionCall","src":"692:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"687:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"671:3:103","statements":[]},"src":"667:133:103"},{"body":{"nodeType":"YulBlock","src":"830:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"859:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"867:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"855:3:103"},"nodeType":"YulFunctionCall","src":"855:15:103"},{"name":"_4","nodeType":"YulIdentifier","src":"872:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"851:3:103"},"nodeType":"YulFunctionCall","src":"851:24:103"},{"name":"array","nodeType":"YulIdentifier","src":"877:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"844:6:103"},"nodeType":"YulFunctionCall","src":"844:39:103"},"nodeType":"YulExpressionStatement","src":"844:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"815:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"818:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"812:2:103"},"nodeType":"YulFunctionCall","src":"812:9:103"},"nodeType":"YulIf","src":"809:2:103"},{"nodeType":"YulAssignment","src":"902:15:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"911:6:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"902:5:103"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"52:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"60:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"68:5:103","type":""}],"src":"14:909:103"},{"body":{"nodeType":"YulBlock","src":"1046:474:103","statements":[{"body":{"nodeType":"YulBlock","src":"1092:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1101:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1109:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1094:6:103"},"nodeType":"YulFunctionCall","src":"1094:22:103"},"nodeType":"YulExpressionStatement","src":"1094:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1067:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1076:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1063:3:103"},"nodeType":"YulFunctionCall","src":"1063:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1088:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1059:3:103"},"nodeType":"YulFunctionCall","src":"1059:32:103"},"nodeType":"YulIf","src":"1056:2:103"},{"nodeType":"YulVariableDeclaration","src":"1127:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1147:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1141:5:103"},"nodeType":"YulFunctionCall","src":"1141:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1131:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1166:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1184:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1188:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1180:3:103"},"nodeType":"YulFunctionCall","src":"1180:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"1192:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1176:3:103"},"nodeType":"YulFunctionCall","src":"1176:18:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1170:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1221:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1230:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1238:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1223:6:103"},"nodeType":"YulFunctionCall","src":"1223:22:103"},"nodeType":"YulExpressionStatement","src":"1223:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1209:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1217:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1206:2:103"},"nodeType":"YulFunctionCall","src":"1206:14:103"},"nodeType":"YulIf","src":"1203:2:103"},{"nodeType":"YulAssignment","src":"1256:71:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1299:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1310:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1295:3:103"},"nodeType":"YulFunctionCall","src":"1295:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1319:7:103"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1266:28:103"},"nodeType":"YulFunctionCall","src":"1266:61:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1256:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1336:41:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1362:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1373:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1358:3:103"},"nodeType":"YulFunctionCall","src":"1358:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1352:5:103"},"nodeType":"YulFunctionCall","src":"1352:25:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1340:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1406:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1415:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1423:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1408:6:103"},"nodeType":"YulFunctionCall","src":"1408:22:103"},"nodeType":"YulExpressionStatement","src":"1408:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1392:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1402:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1389:2:103"},"nodeType":"YulFunctionCall","src":"1389:16:103"},"nodeType":"YulIf","src":"1386:2:103"},{"nodeType":"YulAssignment","src":"1441:73:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1484:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1495:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1480:3:103"},"nodeType":"YulFunctionCall","src":"1480:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1506:7:103"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1451:28:103"},"nodeType":"YulFunctionCall","src":"1451:63:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1441:6:103"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1004:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1015:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1027:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1035:6:103","type":""}],"src":"928:592:103"},{"body":{"nodeType":"YulBlock","src":"1580:325:103","statements":[{"nodeType":"YulAssignment","src":"1590:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1604:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1610:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1600:3:103"},"nodeType":"YulFunctionCall","src":"1600:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1590:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1621:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1651:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1657:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1647:3:103"},"nodeType":"YulFunctionCall","src":"1647:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1625:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1698:31:103","statements":[{"nodeType":"YulAssignment","src":"1700:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1714:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1722:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1710:3:103"},"nodeType":"YulFunctionCall","src":"1710:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1700:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1678:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1671:6:103"},"nodeType":"YulFunctionCall","src":"1671:26:103"},"nodeType":"YulIf","src":"1668:2:103"},{"body":{"nodeType":"YulBlock","src":"1788:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1809:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1816:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1821:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1812:3:103"},"nodeType":"YulFunctionCall","src":"1812:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1802:6:103"},"nodeType":"YulFunctionCall","src":"1802:31:103"},"nodeType":"YulExpressionStatement","src":"1802:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1853:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1856:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1846:6:103"},"nodeType":"YulFunctionCall","src":"1846:15:103"},"nodeType":"YulExpressionStatement","src":"1846:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1881:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1884:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1874:6:103"},"nodeType":"YulFunctionCall","src":"1874:15:103"},"nodeType":"YulExpressionStatement","src":"1874:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1744:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1767:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1775:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1764:2:103"},"nodeType":"YulFunctionCall","src":"1764:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1741:2:103"},"nodeType":"YulFunctionCall","src":"1741:38:103"},"nodeType":"YulIf","src":"1738:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1560:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1569:6:103","type":""}],"src":"1525:380:103"},{"body":{"nodeType":"YulBlock","src":"1942:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1959:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1966:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1971:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1962:3:103"},"nodeType":"YulFunctionCall","src":"1962:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1952:6:103"},"nodeType":"YulFunctionCall","src":"1952:31:103"},"nodeType":"YulExpressionStatement","src":"1952:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1999:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2002:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1992:6:103"},"nodeType":"YulFunctionCall","src":"1992:15:103"},"nodeType":"YulExpressionStatement","src":"1992:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2023:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2026:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2016:6:103"},"nodeType":"YulFunctionCall","src":"2016:15:103"},"nodeType":"YulExpressionStatement","src":"2016:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"1910:127:103"}]},"contents":"{\n { }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(array, array) }\n let i := array\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n if gt(i, _1)\n {\n mstore(add(add(memPtr, _1), _4), array)\n }\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(value0, value0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(value1, value1) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620013c4380380620013c48339810160408190526200003491620001c1565b81516200004990600090602085019062000068565b5080516200005f90600190602084019062000068565b5050506200027b565b828054620000769062000228565b90600052602060002090601f0160209004810192826200009a5760008555620000e5565b82601f10620000b557805160ff1916838001178555620000e5565b82800160010185558215620000e5579182015b82811115620000e5578251825591602001919060010190620000c8565b50620000f3929150620000f7565b5090565b5b80821115620000f35760008155600101620000f8565b600082601f8301126200011f578081fd5b81516001600160401b03808211156200013c576200013c62000265565b604051601f8301601f19908116603f0116810190828211818310171562000167576200016762000265565b8160405283815260209250868385880101111562000183578485fd5b8491505b83821015620001a6578582018301518183018401529082019062000187565b83821115620001b757848385830101525b9695505050505050565b60008060408385031215620001d4578182fd5b82516001600160401b0380821115620001eb578384fd5b620001f9868387016200010e565b935060208501519150808211156200020f578283fd5b506200021e858286016200010e565b9150509250929050565b6002810460018216806200023d57607f821691505b602082108114156200025f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b611139806200028b6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610e37565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190610f1f565b61012461011f366004610e6f565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610e0e565b610335565b005b61014f61015f366004610cc4565b610450565b61014f610172366004610cc4565b610481565b610124610185366004610e6f565b61049c565b61019d610198366004610c78565b6104fc565b6040519081526020016100f3565b610104610582565b61014f6101c1366004610dd4565b610591565b61014f6101d4366004610cff565b6105a0565b6101046101e7366004610e6f565b6105d8565b6100e76101fa366004610c92565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606000805461028b90611041565b80601f01602080910402602001604051908101604052809291908181526020018280546102b790611041565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b60006103198261064c565b506000908152600460205260409020546001600160a01b031690565b60006103408261049c565b9050806001600160a01b0316836001600160a01b031614156103b35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103cf57506103cf81336101fa565b6104415760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016103aa565b61044b83836106ae565b505050565b61045a338261071c565b6104765760405162461bcd60e51b81526004016103aa90610f84565b61044b83838361079b565b61044b838383604051806020016040528060008152506105a0565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b60006001600160a01b0382166105665760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103aa565b506001600160a01b031660009081526003602052604090205490565b60606001805461028b90611041565b61059c338383610937565b5050565b6105aa338361071c565b6105c65760405162461bcd60e51b81526004016103aa90610f84565b6105d284848484610a06565b50505050565b60606105e38261064c565b60006105fa60408051602081019091526000815290565b9050600081511161061a5760405180602001604052806000815250610645565b8061062484610a39565b604051602001610635929190610eb3565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166106ab5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e38261049c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806107288361049c565b9050806001600160a01b0316846001600160a01b0316148061076f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107935750836001600160a01b03166107888461030e565b6001600160a01b0316145b949350505050565b826001600160a01b03166107ae8261049c565b6001600160a01b0316146108125760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103aa565b6001600160a01b0382166108745760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103aa565b61087f6000826106ae565b6001600160a01b03831660009081526003602052604081208054600192906108a8908490610ffe565b90915550506001600160a01b03821660009081526003602052604081208054600192906108d6908490610fd2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a461044b565b816001600160a01b0316836001600160a01b031614156109995760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103aa565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a1184848461079b565b610a1d84848484610b54565b6105d25760405162461bcd60e51b81526004016103aa90610f32565b606081610a5e57506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610a885780610a728161107c565b9150610a819050600a83610fea565b9150610a62565b60008167ffffffffffffffff811115610ab157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610adb576020820181803683370190505b5090505b841561079357610af0600183610ffe565b9150610afd600a86611097565b610b08906030610fd2565b60f81b818381518110610b2b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610b4d600a86610fea565b9450610adf565b60006001600160a01b0384163b15610c5657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b98903390899088908890600401610ee2565b602060405180830381600087803b158015610bb257600080fd5b505af1925050508015610be2575060408051601f3d908101601f19168201909252610bdf91810190610e53565b60015b610c3c573d808015610c10576040519150601f19603f3d011682016040523d82523d6000602084013e610c15565b606091505b508051610c345760405162461bcd60e51b81526004016103aa90610f32565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610793565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610c89578081fd5b61064582610c61565b60008060408385031215610ca4578081fd5b610cad83610c61565b9150610cbb60208401610c61565b90509250929050565b600080600060608486031215610cd8578081fd5b610ce184610c61565b9250610cef60208501610c61565b9150604084013590509250925092565b60008060008060808587031215610d14578081fd5b610d1d85610c61565b9350610d2b60208601610c61565b925060408501359150606085013567ffffffffffffffff80821115610d4e578283fd5b818701915087601f830112610d61578283fd5b813581811115610d7357610d736110d7565b604051601f8201601f19908116603f01168101908382118183101715610d9b57610d9b6110d7565b816040528281528a6020848701011115610db3578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610de6578182fd5b610def83610c61565b915060208301358015158114610e03578182fd5b809150509250929050565b60008060408385031215610e20578182fd5b610e2983610c61565b946020939093013593505050565b600060208284031215610e48578081fd5b8135610645816110ed565b600060208284031215610e64578081fd5b8151610645816110ed565b600060208284031215610e80578081fd5b5035919050565b60008151808452610e9f816020860160208601611015565b601f01601f19169290920160200192915050565b60008351610ec5818460208801611015565b835190830190610ed9818360208801611015565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1590830184610e87565b9695505050505050565b6000602082526106456020830184610e87565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008219821115610fe557610fe56110ab565b500190565b600082610ff957610ff96110c1565b500490565b600082821015611010576110106110ab565b500390565b60005b83811015611030578181015183820152602001611018565b838111156105d25750506000910152565b60028104600182168061105557607f821691505b6020821081141561107657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611090576110906110ab565b5060010190565b6000826110a6576110a66110c1565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146106ab57600080fdfea2646970667358221220c015f1e648d0c91113d9455457bb32b225c6c39cb166f630dc2dbc2e5f163c5564736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x13C4 CODESIZE SUB DUP1 PUSH3 0x13C4 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x1C1 JUMP JUMPDEST DUP2 MLOAD PUSH3 0x49 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x20 DUP6 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x5F SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x68 JUMP JUMPDEST POP POP POP PUSH3 0x27B JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x76 SWAP1 PUSH3 0x228 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x9A JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0xB5 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0xE5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0xE5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0xE5 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0xC8 JUMP JUMPDEST POP PUSH3 0xF3 SWAP3 SWAP2 POP PUSH3 0xF7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0xF3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0xF8 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x11F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x13C JUMPI PUSH3 0x13C PUSH3 0x265 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x167 JUMPI PUSH3 0x167 PUSH3 0x265 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x183 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP5 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x1A6 JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x187 JUMP JUMPDEST DUP4 DUP3 GT ISZERO PUSH3 0x1B7 JUMPI DUP5 DUP4 DUP6 DUP4 ADD ADD MSTORE JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x1D4 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x1EB JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH3 0x1F9 DUP7 DUP4 DUP8 ADD PUSH3 0x10E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x20F JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH3 0x21E DUP6 DUP3 DUP7 ADD PUSH3 0x10E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x23D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x25F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1139 DUP1 PUSH3 0x28B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1EC JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AB JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x164 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x228 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x27C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xF1F JUMP JUMPDEST PUSH2 0x124 PUSH2 0x11F CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x30E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xCC4 JUMP JUMPDEST PUSH2 0x450 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xCC4 JUMP JUMPDEST PUSH2 0x481 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x49C JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0xC78 JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x582 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0xDD4 JUMP JUMPDEST PUSH2 0x591 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0xCFF JUMP JUMPDEST PUSH2 0x5A0 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x5D8 JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1FA CALLDATASIZE PUSH1 0x4 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x259 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x274 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x28B SWAP1 PUSH2 0x1041 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B7 SWAP1 PUSH2 0x1041 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x304 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x304 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x319 DUP3 PUSH2 0x64C JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x340 DUP3 PUSH2 0x49C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x3CF JUMPI POP PUSH2 0x3CF DUP2 CALLER PUSH2 0x1FA JUMP JUMPDEST PUSH2 0x441 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206E6F7220617070726F76656420666F7220616C6C0000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 PUSH2 0x6AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x45A CALLER DUP3 PUSH2 0x71C JUMP JUMPDEST PUSH2 0x476 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF84 JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 DUP4 PUSH2 0x79B JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x5A0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x274 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x566 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x28B SWAP1 PUSH2 0x1041 JUMP JUMPDEST PUSH2 0x59C CALLER DUP4 DUP4 PUSH2 0x937 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5AA CALLER DUP4 PUSH2 0x71C JUMP JUMPDEST PUSH2 0x5C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF84 JUMP JUMPDEST PUSH2 0x5D2 DUP5 DUP5 DUP5 DUP5 PUSH2 0xA06 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5E3 DUP3 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FA PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x61A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x645 JUMP JUMPDEST DUP1 PUSH2 0x624 DUP5 PUSH2 0xA39 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x635 SWAP3 SWAP2 SWAP1 PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x6AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x6E3 DUP3 PUSH2 0x49C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x728 DUP4 PUSH2 0x49C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x76F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x793 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x788 DUP5 PUSH2 0x30E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7AE DUP3 PUSH2 0x49C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x812 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x874 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x87F PUSH1 0x0 DUP3 PUSH2 0x6AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x8A8 SWAP1 DUP5 SWAP1 PUSH2 0xFFE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x8D6 SWAP1 DUP5 SWAP1 PUSH2 0xFD2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP5 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 PUSH2 0x44B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x999 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xA11 DUP5 DUP5 DUP5 PUSH2 0x79B JUMP JUMPDEST PUSH2 0xA1D DUP5 DUP5 DUP5 DUP5 PUSH2 0xB54 JUMP JUMPDEST PUSH2 0x5D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0xA5E JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x277 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xA88 JUMPI DUP1 PUSH2 0xA72 DUP2 PUSH2 0x107C JUMP JUMPDEST SWAP2 POP PUSH2 0xA81 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0xFEA JUMP JUMPDEST SWAP2 POP PUSH2 0xA62 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAB1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xADB JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x793 JUMPI PUSH2 0xAF0 PUSH1 0x1 DUP4 PUSH2 0xFFE JUMP JUMPDEST SWAP2 POP PUSH2 0xAFD PUSH1 0xA DUP7 PUSH2 0x1097 JUMP JUMPDEST PUSH2 0xB08 SWAP1 PUSH1 0x30 PUSH2 0xFD2 JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xB2B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0xB4D PUSH1 0xA DUP7 PUSH2 0xFEA JUMP JUMPDEST SWAP5 POP PUSH2 0xADF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xC56 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xB98 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xBE2 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xBDF SWAP2 DUP2 ADD SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xC3C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xC15 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0xC34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF32 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x793 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC89 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x645 DUP3 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCA4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCAD DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH2 0xCBB PUSH1 0x20 DUP5 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD8 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCE1 DUP5 PUSH2 0xC61 JUMP JUMPDEST SWAP3 POP PUSH2 0xCEF PUSH1 0x20 DUP6 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD14 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD1D DUP6 PUSH2 0xC61 JUMP JUMPDEST SWAP4 POP PUSH2 0xD2B PUSH1 0x20 DUP7 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD4E JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD61 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xD73 JUMPI PUSH2 0xD73 PUSH2 0x10D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xD9B JUMPI PUSH2 0xD9B PUSH2 0x10D7 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xDB3 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDE6 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xDEF DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE03 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE20 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xE29 DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE48 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x645 DUP2 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE64 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x645 DUP2 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE80 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE9F DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1015 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0xEC5 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1015 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0xED9 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1015 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF15 SWAP1 DUP4 ADD DUP5 PUSH2 0xE87 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x645 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xE87 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x1C881B9BDC88185C1C1C9BDD9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xFE5 JUMPI PUSH2 0xFE5 PUSH2 0x10AB JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xFF9 JUMPI PUSH2 0xFF9 PUSH2 0x10C1 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1010 JUMPI PUSH2 0x1010 PUSH2 0x10AB JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1030 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1018 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x5D2 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1055 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1076 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1090 JUMPI PUSH2 0x1090 PUSH2 0x10AB JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x10A6 JUMPI PUSH2 0x10A6 PUSH2 0x10C1 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x6AB JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 ISZERO CALL 0xE6 0x48 0xD0 0xC9 GT SGT 0xD9 GASLIMIT SLOAD JUMPI 0xBB ORIGIN 0xB2 0x25 0xC6 0xC3 SWAP13 0xB1 PUSH7 0xF630DC2DBC2E5F AND EXTCODECOPY SSTORE PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"628:13718:54:-:0;;;1390:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1456:13;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;1479:17:54;;;;:7;;:17;;;;;:::i;:::-;;1390:113;;628:13718;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:13718:54;;;-1:-1:-1;628:13718:54;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:909:103;;121:3;114:4;106:6;102:17;98:27;88:2;;143:5;136;129:20;88:2;170:13;;-1:-1:-1;;;;;232:10:103;;;229:2;;;245:18;;:::i;:::-;320:2;314:9;288:2;374:13;;-1:-1:-1;;370:22:103;;;394:2;366:31;362:40;350:53;;;418:18;;;438:22;;;415:46;412:2;;;464:18;;:::i;:::-;504:10;500:2;493:22;539:2;531:6;524:18;561:4;551:14;;606:3;601:2;596;588:6;584:15;580:24;577:33;574:2;;;627:5;620;613:20;574:2;653:5;644:14;;667:133;681:2;678:1;675:9;667:133;;;769:14;;;765:23;;759:30;738:14;;;734:23;;727:63;692:10;;;;667:133;;;818:2;815:1;812:9;809:2;;;877:5;872:2;867;859:6;855:15;851:24;844:39;809:2;911:6;78:845;-1:-1:-1;;;;;;78:845:103:o;928:592::-;;;1088:2;1076:9;1067:7;1063:23;1059:32;1056:2;;;1109:6;1101;1094:22;1056:2;1141:16;;-1:-1:-1;;;;;1206:14:103;;;1203:2;;;1238:6;1230;1223:22;1203:2;1266:61;1319:7;1310:6;1299:9;1295:22;1266:61;:::i;:::-;1256:71;;1373:2;1362:9;1358:18;1352:25;1336:41;;1402:2;1392:8;1389:16;1386:2;;;1423:6;1415;1408:22;1386:2;;1451:63;1506:7;1495:8;1484:9;1480:24;1451:63;:::i;:::-;1441:73;;;1046:474;;;;;:::o;1525:380::-;1610:1;1600:12;;1657:1;1647:12;;;1668:2;;1722:4;1714:6;1710:17;1700:27;;1668:2;1775;1767:6;1764:14;1744:18;1741:38;1738:2;;;1821:10;1816:3;1812:20;1809:1;1802:31;1856:4;1853:1;1846:15;1884:4;1881:1;1874:15;1738:2;;1580:325;;;:::o;1910:127::-;1971:10;1966:3;1962:20;1959:1;1952:31;2002:4;1999:1;1992:15;2026:4;2023:1;2016:15;1942:95;628:13718:54;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:11012:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1141:1053:103","statements":[{"body":{"nodeType":"YulBlock","src":"1188:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1197:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1205:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1190:6:103"},"nodeType":"YulFunctionCall","src":"1190:22:103"},"nodeType":"YulExpressionStatement","src":"1190:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1162:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1171:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1158:3:103"},"nodeType":"YulFunctionCall","src":"1158:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1183:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1154:3:103"},"nodeType":"YulFunctionCall","src":"1154:33:103"},"nodeType":"YulIf","src":"1151:2:103"},{"nodeType":"YulAssignment","src":"1223:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1252:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1233:18:103"},"nodeType":"YulFunctionCall","src":"1233:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1223:6:103"}]},{"nodeType":"YulAssignment","src":"1271:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1315:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:103"},"nodeType":"YulFunctionCall","src":"1300:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1281:18:103"},"nodeType":"YulFunctionCall","src":"1281:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1271:6:103"}]},{"nodeType":"YulAssignment","src":"1328:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1355:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1366:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1351:3:103"},"nodeType":"YulFunctionCall","src":"1351:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1338:12:103"},"nodeType":"YulFunctionCall","src":"1338:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1328:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1379:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1410:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1421:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1406:3:103"},"nodeType":"YulFunctionCall","src":"1406:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1393:12:103"},"nodeType":"YulFunctionCall","src":"1393:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1383:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1434:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1444:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1438:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1489:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1498:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1506:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1491:6:103"},"nodeType":"YulFunctionCall","src":"1491:22:103"},"nodeType":"YulExpressionStatement","src":"1491:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1477:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1485:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1474:2:103"},"nodeType":"YulFunctionCall","src":"1474:14:103"},"nodeType":"YulIf","src":"1471:2:103"},{"nodeType":"YulVariableDeclaration","src":"1524:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1538:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1549:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1534:3:103"},"nodeType":"YulFunctionCall","src":"1534:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1528:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1604:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1613:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1621:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1606:6:103"},"nodeType":"YulFunctionCall","src":"1606:22:103"},"nodeType":"YulExpressionStatement","src":"1606:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1583:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1587:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1579:3:103"},"nodeType":"YulFunctionCall","src":"1579:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1594:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1575:3:103"},"nodeType":"YulFunctionCall","src":"1575:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1568:6:103"},"nodeType":"YulFunctionCall","src":"1568:35:103"},"nodeType":"YulIf","src":"1565:2:103"},{"nodeType":"YulVariableDeclaration","src":"1639:26:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1662:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1649:12:103"},"nodeType":"YulFunctionCall","src":"1649:16:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1643:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1688:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1690:16:103"},"nodeType":"YulFunctionCall","src":"1690:18:103"},"nodeType":"YulExpressionStatement","src":"1690:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1680:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1684:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1677:2:103"},"nodeType":"YulFunctionCall","src":"1677:10:103"},"nodeType":"YulIf","src":"1674:2:103"},{"nodeType":"YulVariableDeclaration","src":"1719:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1733:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1729:3:103"},"nodeType":"YulFunctionCall","src":"1729:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1723:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1745:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1765:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1759:5:103"},"nodeType":"YulFunctionCall","src":"1759:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1749:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1777:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1799:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1823:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1827:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1819:3:103"},"nodeType":"YulFunctionCall","src":"1819:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"1834:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1815:3:103"},"nodeType":"YulFunctionCall","src":"1815:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1839:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1811:3:103"},"nodeType":"YulFunctionCall","src":"1811:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"1844:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1807:3:103"},"nodeType":"YulFunctionCall","src":"1807:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1795:3:103"},"nodeType":"YulFunctionCall","src":"1795:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1781:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1907:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1909:16:103"},"nodeType":"YulFunctionCall","src":"1909:18:103"},"nodeType":"YulExpressionStatement","src":"1909:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1866:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1878:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1863:2:103"},"nodeType":"YulFunctionCall","src":"1863:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1886:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1898:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1883:2:103"},"nodeType":"YulFunctionCall","src":"1883:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1860:2:103"},"nodeType":"YulFunctionCall","src":"1860:46:103"},"nodeType":"YulIf","src":"1857:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1945:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1949:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1938:6:103"},"nodeType":"YulFunctionCall","src":"1938:22:103"},"nodeType":"YulExpressionStatement","src":"1938:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1976:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"1984:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1969:6:103"},"nodeType":"YulFunctionCall","src":"1969:18:103"},"nodeType":"YulExpressionStatement","src":"1969:18:103"},{"body":{"nodeType":"YulBlock","src":"2033:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2042:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2050:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2035:6:103"},"nodeType":"YulFunctionCall","src":"2035:22:103"},"nodeType":"YulExpressionStatement","src":"2035:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2010:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2014:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2006:3:103"},"nodeType":"YulFunctionCall","src":"2006:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2019:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:103"},"nodeType":"YulFunctionCall","src":"2002:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2024:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1999:2:103"},"nodeType":"YulFunctionCall","src":"1999:33:103"},"nodeType":"YulIf","src":"1996:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2085:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2093:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2081:3:103"},"nodeType":"YulFunctionCall","src":"2081:15:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2102:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2106:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2098:3:103"},"nodeType":"YulFunctionCall","src":"2098:11:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2111:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2068:12:103"},"nodeType":"YulFunctionCall","src":"2068:46:103"},"nodeType":"YulExpressionStatement","src":"2068:46:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2138:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2146:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2134:3:103"},"nodeType":"YulFunctionCall","src":"2134:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"2151:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2130:3:103"},"nodeType":"YulFunctionCall","src":"2130:24:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2156:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2123:6:103"},"nodeType":"YulFunctionCall","src":"2123:40:103"},"nodeType":"YulExpressionStatement","src":"2123:40:103"},{"nodeType":"YulAssignment","src":"2172:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2182:6:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2172:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1083:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1094:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1106:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1114:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1122:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1130:6:103","type":""}],"src":"1011:1183:103"},{"body":{"nodeType":"YulBlock","src":"2283:283:103","statements":[{"body":{"nodeType":"YulBlock","src":"2329:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2338:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2346:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2331:6:103"},"nodeType":"YulFunctionCall","src":"2331:22:103"},"nodeType":"YulExpressionStatement","src":"2331:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2304:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2313:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2300:3:103"},"nodeType":"YulFunctionCall","src":"2300:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2325:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2296:3:103"},"nodeType":"YulFunctionCall","src":"2296:32:103"},"nodeType":"YulIf","src":"2293:2:103"},{"nodeType":"YulAssignment","src":"2364:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2393:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2374:18:103"},"nodeType":"YulFunctionCall","src":"2374:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2364:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2412:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2442:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2453:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2438:3:103"},"nodeType":"YulFunctionCall","src":"2438:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2425:12:103"},"nodeType":"YulFunctionCall","src":"2425:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2416:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2510:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2519:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2527:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2512:6:103"},"nodeType":"YulFunctionCall","src":"2512:22:103"},"nodeType":"YulExpressionStatement","src":"2512:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2479:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2500:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2493:6:103"},"nodeType":"YulFunctionCall","src":"2493:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2486:6:103"},"nodeType":"YulFunctionCall","src":"2486:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2476:2:103"},"nodeType":"YulFunctionCall","src":"2476:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2469:6:103"},"nodeType":"YulFunctionCall","src":"2469:40:103"},"nodeType":"YulIf","src":"2466:2:103"},{"nodeType":"YulAssignment","src":"2545:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2555:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2545:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2241:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2252:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2264:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2272:6:103","type":""}],"src":"2199:367:103"},{"body":{"nodeType":"YulBlock","src":"2658:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"2704:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2713:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2721:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2706:6:103"},"nodeType":"YulFunctionCall","src":"2706:22:103"},"nodeType":"YulExpressionStatement","src":"2706:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2679:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2688:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2675:3:103"},"nodeType":"YulFunctionCall","src":"2675:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2700:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2671:3:103"},"nodeType":"YulFunctionCall","src":"2671:32:103"},"nodeType":"YulIf","src":"2668:2:103"},{"nodeType":"YulAssignment","src":"2739:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2768:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2749:18:103"},"nodeType":"YulFunctionCall","src":"2749:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2739:6:103"}]},{"nodeType":"YulAssignment","src":"2787:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2825:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2810:3:103"},"nodeType":"YulFunctionCall","src":"2810:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2797:12:103"},"nodeType":"YulFunctionCall","src":"2797:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2787:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2616:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2627:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2639:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2647:6:103","type":""}],"src":"2571:264:103"},{"body":{"nodeType":"YulBlock","src":"2909:186:103","statements":[{"body":{"nodeType":"YulBlock","src":"2955:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2964:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2972:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2957:6:103"},"nodeType":"YulFunctionCall","src":"2957:22:103"},"nodeType":"YulExpressionStatement","src":"2957:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2930:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2939:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2926:3:103"},"nodeType":"YulFunctionCall","src":"2926:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2951:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2922:3:103"},"nodeType":"YulFunctionCall","src":"2922:32:103"},"nodeType":"YulIf","src":"2919:2:103"},{"nodeType":"YulVariableDeclaration","src":"2990:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3016:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3003:12:103"},"nodeType":"YulFunctionCall","src":"3003:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2994:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3059:5:103"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"3035:23:103"},"nodeType":"YulFunctionCall","src":"3035:30:103"},"nodeType":"YulExpressionStatement","src":"3035:30:103"},{"nodeType":"YulAssignment","src":"3074:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3084:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3074:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2875:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2886:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2898:6:103","type":""}],"src":"2840:255:103"},{"body":{"nodeType":"YulBlock","src":"3180:179:103","statements":[{"body":{"nodeType":"YulBlock","src":"3226:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3235:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3243:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3228:6:103"},"nodeType":"YulFunctionCall","src":"3228:22:103"},"nodeType":"YulExpressionStatement","src":"3228:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3201:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3210:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3197:3:103"},"nodeType":"YulFunctionCall","src":"3197:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3193:3:103"},"nodeType":"YulFunctionCall","src":"3193:32:103"},"nodeType":"YulIf","src":"3190:2:103"},{"nodeType":"YulVariableDeclaration","src":"3261:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3280:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3274:5:103"},"nodeType":"YulFunctionCall","src":"3274:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3265:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3323:5:103"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"3299:23:103"},"nodeType":"YulFunctionCall","src":"3299:30:103"},"nodeType":"YulExpressionStatement","src":"3299:30:103"},{"nodeType":"YulAssignment","src":"3338:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3348:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3338:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3146:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3157:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3169:6:103","type":""}],"src":"3100:259:103"},{"body":{"nodeType":"YulBlock","src":"3434:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3480:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3489:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3497:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3482:6:103"},"nodeType":"YulFunctionCall","src":"3482:22:103"},"nodeType":"YulExpressionStatement","src":"3482:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3455:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3464:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3451:3:103"},"nodeType":"YulFunctionCall","src":"3451:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3476:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3447:3:103"},"nodeType":"YulFunctionCall","src":"3447:32:103"},"nodeType":"YulIf","src":"3444:2:103"},{"nodeType":"YulAssignment","src":"3515:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3538:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3525:12:103"},"nodeType":"YulFunctionCall","src":"3525:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3515:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3400:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3411:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3423:6:103","type":""}],"src":"3364:190:103"},{"body":{"nodeType":"YulBlock","src":"3608:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3618:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3638:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3632:5:103"},"nodeType":"YulFunctionCall","src":"3632:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3622:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3660:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3665:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3653:6:103"},"nodeType":"YulFunctionCall","src":"3653:19:103"},"nodeType":"YulExpressionStatement","src":"3653:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3707:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3714:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3703:3:103"},"nodeType":"YulFunctionCall","src":"3703:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3725:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"3730:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3721:3:103"},"nodeType":"YulFunctionCall","src":"3721:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"3737:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3681:21:103"},"nodeType":"YulFunctionCall","src":"3681:63:103"},"nodeType":"YulExpressionStatement","src":"3681:63:103"},{"nodeType":"YulAssignment","src":"3753:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3768:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3781:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3789:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3777:3:103"},"nodeType":"YulFunctionCall","src":"3777:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3798:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3794:3:103"},"nodeType":"YulFunctionCall","src":"3794:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3773:3:103"},"nodeType":"YulFunctionCall","src":"3773:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3764:3:103"},"nodeType":"YulFunctionCall","src":"3764:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"3805:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3760:3:103"},"nodeType":"YulFunctionCall","src":"3760:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3753:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3585:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3592:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3600:3:103","type":""}],"src":"3559:257:103"},{"body":{"nodeType":"YulBlock","src":"4008:283:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4018:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4038:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4032:5:103"},"nodeType":"YulFunctionCall","src":"4032:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4022:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4080:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4088:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4076:3:103"},"nodeType":"YulFunctionCall","src":"4076:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"4095:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4100:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4054:21:103"},"nodeType":"YulFunctionCall","src":"4054:53:103"},"nodeType":"YulExpressionStatement","src":"4054:53:103"},{"nodeType":"YulVariableDeclaration","src":"4116:29:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4133:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4138:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4129:3:103"},"nodeType":"YulFunctionCall","src":"4129:16:103"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"4120:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4154:29:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4176:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4170:5:103"},"nodeType":"YulFunctionCall","src":"4170:13:103"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"4158:8:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4218:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4226:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4214:3:103"},"nodeType":"YulFunctionCall","src":"4214:17:103"},{"name":"end_1","nodeType":"YulIdentifier","src":"4233:5:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"4240:8:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4192:21:103"},"nodeType":"YulFunctionCall","src":"4192:57:103"},"nodeType":"YulExpressionStatement","src":"4192:57:103"},{"nodeType":"YulAssignment","src":"4258:27:103","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"4269:5:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"4276:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4265:3:103"},"nodeType":"YulFunctionCall","src":"4265:20:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4258:3:103"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3976:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3981:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3989:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4000:3:103","type":""}],"src":"3821:470:103"},{"body":{"nodeType":"YulBlock","src":"4397:102:103","statements":[{"nodeType":"YulAssignment","src":"4407:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4419:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4430:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4415:3:103"},"nodeType":"YulFunctionCall","src":"4415:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4407:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4449:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4464:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4480:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4485:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4476:3:103"},"nodeType":"YulFunctionCall","src":"4476:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4489:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4472:3:103"},"nodeType":"YulFunctionCall","src":"4472:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4460:3:103"},"nodeType":"YulFunctionCall","src":"4460:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4442:6:103"},"nodeType":"YulFunctionCall","src":"4442:51:103"},"nodeType":"YulExpressionStatement","src":"4442:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4366:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4377:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4388:4:103","type":""}],"src":"4296:203:103"},{"body":{"nodeType":"YulBlock","src":"4707:285:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4717:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4735:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4740:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4731:3:103"},"nodeType":"YulFunctionCall","src":"4731:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4744:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4727:3:103"},"nodeType":"YulFunctionCall","src":"4727:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4721:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4762:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4777:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4785:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4773:3:103"},"nodeType":"YulFunctionCall","src":"4773:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4755:6:103"},"nodeType":"YulFunctionCall","src":"4755:34:103"},"nodeType":"YulExpressionStatement","src":"4755:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4809:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4820:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4805:3:103"},"nodeType":"YulFunctionCall","src":"4805:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4829:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4837:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4825:3:103"},"nodeType":"YulFunctionCall","src":"4825:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4798:6:103"},"nodeType":"YulFunctionCall","src":"4798:43:103"},"nodeType":"YulExpressionStatement","src":"4798:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4872:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4857:3:103"},"nodeType":"YulFunctionCall","src":"4857:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4877:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4850:6:103"},"nodeType":"YulFunctionCall","src":"4850:34:103"},"nodeType":"YulExpressionStatement","src":"4850:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4904:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4915:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4900:3:103"},"nodeType":"YulFunctionCall","src":"4900:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4920:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4893:6:103"},"nodeType":"YulFunctionCall","src":"4893:31:103"},"nodeType":"YulExpressionStatement","src":"4893:31:103"},{"nodeType":"YulAssignment","src":"4933:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4958:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4970:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4981:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4966:3:103"},"nodeType":"YulFunctionCall","src":"4966:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"4941:16:103"},"nodeType":"YulFunctionCall","src":"4941:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4933:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4652:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4663:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4671:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4679:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4687:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4698:4:103","type":""}],"src":"4504:488:103"},{"body":{"nodeType":"YulBlock","src":"5092:92:103","statements":[{"nodeType":"YulAssignment","src":"5102:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5114:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5125:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5110:3:103"},"nodeType":"YulFunctionCall","src":"5110:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5102:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5144:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5169:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5162:6:103"},"nodeType":"YulFunctionCall","src":"5162:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5155:6:103"},"nodeType":"YulFunctionCall","src":"5155:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5137:6:103"},"nodeType":"YulFunctionCall","src":"5137:41:103"},"nodeType":"YulExpressionStatement","src":"5137:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5061:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5072:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5083:4:103","type":""}],"src":"4997:187:103"},{"body":{"nodeType":"YulBlock","src":"5310:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5327:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5338:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5320:6:103"},"nodeType":"YulFunctionCall","src":"5320:21:103"},"nodeType":"YulExpressionStatement","src":"5320:21:103"},{"nodeType":"YulAssignment","src":"5350:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5375:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5398:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5383:3:103"},"nodeType":"YulFunctionCall","src":"5383:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5358:16:103"},"nodeType":"YulFunctionCall","src":"5358:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5350:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5279:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5290:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5301:4:103","type":""}],"src":"5189:219:103"},{"body":{"nodeType":"YulBlock","src":"5587:240:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5615:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5597:6:103"},"nodeType":"YulFunctionCall","src":"5597:21:103"},"nodeType":"YulExpressionStatement","src":"5597:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5649:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5634:3:103"},"nodeType":"YulFunctionCall","src":"5634:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5654:2:103","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5627:6:103"},"nodeType":"YulFunctionCall","src":"5627:30:103"},"nodeType":"YulExpressionStatement","src":"5627:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5688:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5673:3:103"},"nodeType":"YulFunctionCall","src":"5673:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5693:34:103","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5666:6:103"},"nodeType":"YulFunctionCall","src":"5666:62:103"},"nodeType":"YulExpressionStatement","src":"5666:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5759:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5744:3:103"},"nodeType":"YulFunctionCall","src":"5744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5764:20:103","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5737:6:103"},"nodeType":"YulFunctionCall","src":"5737:48:103"},"nodeType":"YulExpressionStatement","src":"5737:48:103"},{"nodeType":"YulAssignment","src":"5794:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5806:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5817:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5802:3:103"},"nodeType":"YulFunctionCall","src":"5802:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5794:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5564:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5578:4:103","type":""}],"src":"5413:414:103"},{"body":{"nodeType":"YulBlock","src":"6006:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6023:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6034:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6016:6:103"},"nodeType":"YulFunctionCall","src":"6016:21:103"},"nodeType":"YulExpressionStatement","src":"6016:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6068:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6053:3:103"},"nodeType":"YulFunctionCall","src":"6053:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6073:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6046:6:103"},"nodeType":"YulFunctionCall","src":"6046:30:103"},"nodeType":"YulExpressionStatement","src":"6046:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6096:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6107:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6092:3:103"},"nodeType":"YulFunctionCall","src":"6092:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6112:34:103","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6085:6:103"},"nodeType":"YulFunctionCall","src":"6085:62:103"},"nodeType":"YulExpressionStatement","src":"6085:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6167:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6178:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6163:3:103"},"nodeType":"YulFunctionCall","src":"6163:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6183:7:103","type":"","value":"owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6156:6:103"},"nodeType":"YulFunctionCall","src":"6156:35:103"},"nodeType":"YulExpressionStatement","src":"6156:35:103"},{"nodeType":"YulAssignment","src":"6200:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6212:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6223:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6208:3:103"},"nodeType":"YulFunctionCall","src":"6208:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6200:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5983:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5997:4:103","type":""}],"src":"5832:401:103"},{"body":{"nodeType":"YulBlock","src":"6412:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6440:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6422:6:103"},"nodeType":"YulFunctionCall","src":"6422:21:103"},"nodeType":"YulExpressionStatement","src":"6422:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6474:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6459:3:103"},"nodeType":"YulFunctionCall","src":"6459:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6479:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6452:6:103"},"nodeType":"YulFunctionCall","src":"6452:30:103"},"nodeType":"YulExpressionStatement","src":"6452:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6502:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6513:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6498:3:103"},"nodeType":"YulFunctionCall","src":"6498:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6518:34:103","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6491:6:103"},"nodeType":"YulFunctionCall","src":"6491:62:103"},"nodeType":"YulExpressionStatement","src":"6491:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6584:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6569:3:103"},"nodeType":"YulFunctionCall","src":"6569:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6589:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6562:6:103"},"nodeType":"YulFunctionCall","src":"6562:34:103"},"nodeType":"YulExpressionStatement","src":"6562:34:103"},{"nodeType":"YulAssignment","src":"6605:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6617:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6628:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6613:3:103"},"nodeType":"YulFunctionCall","src":"6613:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6605:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6389:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6403:4:103","type":""}],"src":"6238:400:103"},{"body":{"nodeType":"YulBlock","src":"6817:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6834:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6845:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6827:6:103"},"nodeType":"YulFunctionCall","src":"6827:21:103"},"nodeType":"YulExpressionStatement","src":"6827:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6868:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6879:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6864:3:103"},"nodeType":"YulFunctionCall","src":"6864:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6884:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6857:6:103"},"nodeType":"YulFunctionCall","src":"6857:30:103"},"nodeType":"YulExpressionStatement","src":"6857:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6918:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6903:3:103"},"nodeType":"YulFunctionCall","src":"6903:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6923:27:103","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6896:6:103"},"nodeType":"YulFunctionCall","src":"6896:55:103"},"nodeType":"YulExpressionStatement","src":"6896:55:103"},{"nodeType":"YulAssignment","src":"6960:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6972:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6983:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6968:3:103"},"nodeType":"YulFunctionCall","src":"6968:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6960:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6794:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6808:4:103","type":""}],"src":"6643:349:103"},{"body":{"nodeType":"YulBlock","src":"7171:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7188:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7199:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7181:6:103"},"nodeType":"YulFunctionCall","src":"7181:21:103"},"nodeType":"YulExpressionStatement","src":"7181:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7233:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7218:3:103"},"nodeType":"YulFunctionCall","src":"7218:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7238:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7211:6:103"},"nodeType":"YulFunctionCall","src":"7211:30:103"},"nodeType":"YulExpressionStatement","src":"7211:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7261:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7272:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7257:3:103"},"nodeType":"YulFunctionCall","src":"7257:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7277:34:103","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7250:6:103"},"nodeType":"YulFunctionCall","src":"7250:62:103"},"nodeType":"YulExpressionStatement","src":"7250:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7332:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7343:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7328:3:103"},"nodeType":"YulFunctionCall","src":"7328:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7348:11:103","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7321:6:103"},"nodeType":"YulFunctionCall","src":"7321:39:103"},"nodeType":"YulExpressionStatement","src":"7321:39:103"},{"nodeType":"YulAssignment","src":"7369:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7392:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7377:3:103"},"nodeType":"YulFunctionCall","src":"7377:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7369:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7148:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7162:4:103","type":""}],"src":"6997:405:103"},{"body":{"nodeType":"YulBlock","src":"7581:252:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7598:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7609:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7591:6:103"},"nodeType":"YulFunctionCall","src":"7591:21:103"},"nodeType":"YulExpressionStatement","src":"7591:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7632:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7643:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7628:3:103"},"nodeType":"YulFunctionCall","src":"7628:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7648:2:103","type":"","value":"62"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7621:6:103"},"nodeType":"YulFunctionCall","src":"7621:30:103"},"nodeType":"YulExpressionStatement","src":"7621:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7682:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7667:3:103"},"nodeType":"YulFunctionCall","src":"7667:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7687:34:103","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7660:6:103"},"nodeType":"YulFunctionCall","src":"7660:62:103"},"nodeType":"YulExpressionStatement","src":"7660:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7742:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7753:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7738:3:103"},"nodeType":"YulFunctionCall","src":"7738:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7758:32:103","type":"","value":"ken owner nor approved for all"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7731:6:103"},"nodeType":"YulFunctionCall","src":"7731:60:103"},"nodeType":"YulExpressionStatement","src":"7731:60:103"},{"nodeType":"YulAssignment","src":"7800:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7812:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7823:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7808:3:103"},"nodeType":"YulFunctionCall","src":"7808:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7800:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7558:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7572:4:103","type":""}],"src":"7407:426:103"},{"body":{"nodeType":"YulBlock","src":"8012:174:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8029:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8040:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8022:6:103"},"nodeType":"YulFunctionCall","src":"8022:21:103"},"nodeType":"YulExpressionStatement","src":"8022:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8063:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8074:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8059:3:103"},"nodeType":"YulFunctionCall","src":"8059:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8079:2:103","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8052:6:103"},"nodeType":"YulFunctionCall","src":"8052:30:103"},"nodeType":"YulExpressionStatement","src":"8052:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8102:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8113:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8098:3:103"},"nodeType":"YulFunctionCall","src":"8098:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8118:26:103","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8091:6:103"},"nodeType":"YulFunctionCall","src":"8091:54:103"},"nodeType":"YulExpressionStatement","src":"8091:54:103"},{"nodeType":"YulAssignment","src":"8154:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8166:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8177:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8162:3:103"},"nodeType":"YulFunctionCall","src":"8162:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8154:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7989:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8003:4:103","type":""}],"src":"7838:348:103"},{"body":{"nodeType":"YulBlock","src":"8365:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8382:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8393:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8375:6:103"},"nodeType":"YulFunctionCall","src":"8375:21:103"},"nodeType":"YulExpressionStatement","src":"8375:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8427:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8412:3:103"},"nodeType":"YulFunctionCall","src":"8412:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8432:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8405:6:103"},"nodeType":"YulFunctionCall","src":"8405:30:103"},"nodeType":"YulExpressionStatement","src":"8405:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8455:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8466:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8451:3:103"},"nodeType":"YulFunctionCall","src":"8451:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8471:34:103","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8444:6:103"},"nodeType":"YulFunctionCall","src":"8444:62:103"},"nodeType":"YulExpressionStatement","src":"8444:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8526:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8537:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8522:3:103"},"nodeType":"YulFunctionCall","src":"8522:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8542:3:103","type":"","value":"r"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8515:6:103"},"nodeType":"YulFunctionCall","src":"8515:31:103"},"nodeType":"YulExpressionStatement","src":"8515:31:103"},{"nodeType":"YulAssignment","src":"8555:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8578:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8563:3:103"},"nodeType":"YulFunctionCall","src":"8563:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8555:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8342:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8356:4:103","type":""}],"src":"8191:397:103"},{"body":{"nodeType":"YulBlock","src":"8767:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8784:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8795:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8777:6:103"},"nodeType":"YulFunctionCall","src":"8777:21:103"},"nodeType":"YulExpressionStatement","src":"8777:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8829:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8814:3:103"},"nodeType":"YulFunctionCall","src":"8814:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8834:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8807:6:103"},"nodeType":"YulFunctionCall","src":"8807:30:103"},"nodeType":"YulExpressionStatement","src":"8807:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8868:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8853:3:103"},"nodeType":"YulFunctionCall","src":"8853:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8873:34:103","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8846:6:103"},"nodeType":"YulFunctionCall","src":"8846:62:103"},"nodeType":"YulExpressionStatement","src":"8846:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8928:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8939:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8924:3:103"},"nodeType":"YulFunctionCall","src":"8924:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8944:16:103","type":"","value":"r nor approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8917:6:103"},"nodeType":"YulFunctionCall","src":"8917:44:103"},"nodeType":"YulExpressionStatement","src":"8917:44:103"},{"nodeType":"YulAssignment","src":"8970:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8993:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8978:3:103"},"nodeType":"YulFunctionCall","src":"8978:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8970:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8744:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8758:4:103","type":""}],"src":"8593:410:103"},{"body":{"nodeType":"YulBlock","src":"9109:76:103","statements":[{"nodeType":"YulAssignment","src":"9119:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9131:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9142:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9127:3:103"},"nodeType":"YulFunctionCall","src":"9127:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9119:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9161:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9172:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9154:6:103"},"nodeType":"YulFunctionCall","src":"9154:25:103"},"nodeType":"YulExpressionStatement","src":"9154:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9078:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9089:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9100:4:103","type":""}],"src":"9008:177:103"},{"body":{"nodeType":"YulBlock","src":"9238:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"9265:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9267:16:103"},"nodeType":"YulFunctionCall","src":"9267:18:103"},"nodeType":"YulExpressionStatement","src":"9267:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9254:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9261:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9257:3:103"},"nodeType":"YulFunctionCall","src":"9257:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9251:2:103"},"nodeType":"YulFunctionCall","src":"9251:13:103"},"nodeType":"YulIf","src":"9248:2:103"},{"nodeType":"YulAssignment","src":"9296:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9307:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"9310:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9303:3:103"},"nodeType":"YulFunctionCall","src":"9303:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"9296:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9221:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"9224:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"9230:3:103","type":""}],"src":"9190:128:103"},{"body":{"nodeType":"YulBlock","src":"9369:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"9392:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"9394:16:103"},"nodeType":"YulFunctionCall","src":"9394:18:103"},"nodeType":"YulExpressionStatement","src":"9394:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"9389:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9382:6:103"},"nodeType":"YulFunctionCall","src":"9382:9:103"},"nodeType":"YulIf","src":"9379:2:103"},{"nodeType":"YulAssignment","src":"9423:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9432:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"9435:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9428:3:103"},"nodeType":"YulFunctionCall","src":"9428:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"9423:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9354:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"9357:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"9363:1:103","type":""}],"src":"9323:120:103"},{"body":{"nodeType":"YulBlock","src":"9497:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"9519:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"9521:16:103"},"nodeType":"YulFunctionCall","src":"9521:18:103"},"nodeType":"YulExpressionStatement","src":"9521:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9513:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"9516:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9510:2:103"},"nodeType":"YulFunctionCall","src":"9510:8:103"},"nodeType":"YulIf","src":"9507:2:103"},{"nodeType":"YulAssignment","src":"9550:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"9562:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"9565:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9558:3:103"},"nodeType":"YulFunctionCall","src":"9558:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"9550:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"9479:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"9482:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"9488:4:103","type":""}],"src":"9448:125:103"},{"body":{"nodeType":"YulBlock","src":"9631:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"9641:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"9650:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"9645:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9710:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9735:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"9740:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9731:3:103"},"nodeType":"YulFunctionCall","src":"9731:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"9754:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"9759:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9750:3:103"},"nodeType":"YulFunctionCall","src":"9750:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9744:5:103"},"nodeType":"YulFunctionCall","src":"9744:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9724:6:103"},"nodeType":"YulFunctionCall","src":"9724:39:103"},"nodeType":"YulExpressionStatement","src":"9724:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9671:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"9674:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9668:2:103"},"nodeType":"YulFunctionCall","src":"9668:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"9682:19:103","statements":[{"nodeType":"YulAssignment","src":"9684:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9693:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"9696:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9689:3:103"},"nodeType":"YulFunctionCall","src":"9689:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"9684:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"9664:3:103","statements":[]},"src":"9660:113:103"},{"body":{"nodeType":"YulBlock","src":"9799:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"9812:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"9817:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9808:3:103"},"nodeType":"YulFunctionCall","src":"9808:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"9826:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9801:6:103"},"nodeType":"YulFunctionCall","src":"9801:27:103"},"nodeType":"YulExpressionStatement","src":"9801:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"9788:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"9791:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9785:2:103"},"nodeType":"YulFunctionCall","src":"9785:13:103"},"nodeType":"YulIf","src":"9782:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"9609:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"9614:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"9619:6:103","type":""}],"src":"9578:258:103"},{"body":{"nodeType":"YulBlock","src":"9896:325:103","statements":[{"nodeType":"YulAssignment","src":"9906:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9920:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"9926:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"9916:3:103"},"nodeType":"YulFunctionCall","src":"9916:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"9906:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"9937:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"9967:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"9973:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9963:3:103"},"nodeType":"YulFunctionCall","src":"9963:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"9941:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10014:31:103","statements":[{"nodeType":"YulAssignment","src":"10016:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10030:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"10038:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10026:3:103"},"nodeType":"YulFunctionCall","src":"10026:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"10016:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"9994:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9987:6:103"},"nodeType":"YulFunctionCall","src":"9987:26:103"},"nodeType":"YulIf","src":"9984:2:103"},{"body":{"nodeType":"YulBlock","src":"10104:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10125:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10132:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10137:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10128:3:103"},"nodeType":"YulFunctionCall","src":"10128:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10118:6:103"},"nodeType":"YulFunctionCall","src":"10118:31:103"},"nodeType":"YulExpressionStatement","src":"10118:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10169:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10172:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10162:6:103"},"nodeType":"YulFunctionCall","src":"10162:15:103"},"nodeType":"YulExpressionStatement","src":"10162:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10197:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10200:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10190:6:103"},"nodeType":"YulFunctionCall","src":"10190:15:103"},"nodeType":"YulExpressionStatement","src":"10190:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"10060:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10083:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"10091:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10080:2:103"},"nodeType":"YulFunctionCall","src":"10080:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10057:2:103"},"nodeType":"YulFunctionCall","src":"10057:38:103"},"nodeType":"YulIf","src":"10054:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"9876:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"9885:6:103","type":""}],"src":"9841:380:103"},{"body":{"nodeType":"YulBlock","src":"10273:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"10304:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10306:16:103"},"nodeType":"YulFunctionCall","src":"10306:18:103"},"nodeType":"YulExpressionStatement","src":"10306:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10289:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10300:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10296:3:103"},"nodeType":"YulFunctionCall","src":"10296:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10286:2:103"},"nodeType":"YulFunctionCall","src":"10286:17:103"},"nodeType":"YulIf","src":"10283:2:103"},{"nodeType":"YulAssignment","src":"10335:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10346:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10353:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10342:3:103"},"nodeType":"YulFunctionCall","src":"10342:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"10335:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10255:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"10265:3:103","type":""}],"src":"10226:135:103"},{"body":{"nodeType":"YulBlock","src":"10404:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"10427:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"10429:16:103"},"nodeType":"YulFunctionCall","src":"10429:18:103"},"nodeType":"YulExpressionStatement","src":"10429:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10424:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10417:6:103"},"nodeType":"YulFunctionCall","src":"10417:9:103"},"nodeType":"YulIf","src":"10414:2:103"},{"nodeType":"YulAssignment","src":"10458:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10467:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"10470:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"10463:3:103"},"nodeType":"YulFunctionCall","src":"10463:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"10458:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10389:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"10392:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"10398:1:103","type":""}],"src":"10366:112:103"},{"body":{"nodeType":"YulBlock","src":"10515:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10532:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10539:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10544:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10535:3:103"},"nodeType":"YulFunctionCall","src":"10535:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10525:6:103"},"nodeType":"YulFunctionCall","src":"10525:31:103"},"nodeType":"YulExpressionStatement","src":"10525:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10572:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10575:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10565:6:103"},"nodeType":"YulFunctionCall","src":"10565:15:103"},"nodeType":"YulExpressionStatement","src":"10565:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10596:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10599:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10589:6:103"},"nodeType":"YulFunctionCall","src":"10589:15:103"},"nodeType":"YulExpressionStatement","src":"10589:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"10483:127:103"},{"body":{"nodeType":"YulBlock","src":"10647:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10664:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10671:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10676:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10667:3:103"},"nodeType":"YulFunctionCall","src":"10667:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10657:6:103"},"nodeType":"YulFunctionCall","src":"10657:31:103"},"nodeType":"YulExpressionStatement","src":"10657:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10704:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10707:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10697:6:103"},"nodeType":"YulFunctionCall","src":"10697:15:103"},"nodeType":"YulExpressionStatement","src":"10697:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10728:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10731:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10721:6:103"},"nodeType":"YulFunctionCall","src":"10721:15:103"},"nodeType":"YulExpressionStatement","src":"10721:15:103"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"10615:127:103"},{"body":{"nodeType":"YulBlock","src":"10779:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10796:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10803:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10808:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10799:3:103"},"nodeType":"YulFunctionCall","src":"10799:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10789:6:103"},"nodeType":"YulFunctionCall","src":"10789:31:103"},"nodeType":"YulExpressionStatement","src":"10789:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10836:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10839:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10829:6:103"},"nodeType":"YulFunctionCall","src":"10829:15:103"},"nodeType":"YulExpressionStatement","src":"10829:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10860:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10863:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10853:6:103"},"nodeType":"YulFunctionCall","src":"10853:15:103"},"nodeType":"YulExpressionStatement","src":"10853:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"10747:127:103"},{"body":{"nodeType":"YulBlock","src":"10923:87:103","statements":[{"body":{"nodeType":"YulBlock","src":"10988:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10997:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11000:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10990:6:103"},"nodeType":"YulFunctionCall","src":"10990:12:103"},"nodeType":"YulExpressionStatement","src":"10990:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10946:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10957:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10968:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10973:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10964:3:103"},"nodeType":"YulFunctionCall","src":"10964:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10953:3:103"},"nodeType":"YulFunctionCall","src":"10953:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10943:2:103"},"nodeType":"YulFunctionCall","src":"10943:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10936:6:103"},"nodeType":"YulFunctionCall","src":"10936:51:103"},"nodeType":"YulIf","src":"10933:2:103"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10912:5:103","type":""}],"src":"10879:131:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value3, value3) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value3, value3) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value3, value3) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value3, value3) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), value3)\n value3 := memPtr\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(value1, value1) }\n value1 := value\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 50)\n mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n mstore(add(headStart, 96), \"ceiver implementer\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n mstore(add(headStart, 96), \"owner\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERC721: approve to caller\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n mstore(add(headStart, 96), \"lid owner\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 62)\n mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n mstore(add(headStart, 96), \"ken owner nor approved for all\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n mstore(add(headStart, 96), \"r\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n mstore(add(headStart, 96), \"r nor approved\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610e37565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190610f1f565b61012461011f366004610e6f565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610e0e565b610335565b005b61014f61015f366004610cc4565b610450565b61014f610172366004610cc4565b610481565b610124610185366004610e6f565b61049c565b61019d610198366004610c78565b6104fc565b6040519081526020016100f3565b610104610582565b61014f6101c1366004610dd4565b610591565b61014f6101d4366004610cff565b6105a0565b6101046101e7366004610e6f565b6105d8565b6100e76101fa366004610c92565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606000805461028b90611041565b80601f01602080910402602001604051908101604052809291908181526020018280546102b790611041565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b60006103198261064c565b506000908152600460205260409020546001600160a01b031690565b60006103408261049c565b9050806001600160a01b0316836001600160a01b031614156103b35760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806103cf57506103cf81336101fa565b6104415760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016103aa565b61044b83836106ae565b505050565b61045a338261071c565b6104765760405162461bcd60e51b81526004016103aa90610f84565b61044b83838361079b565b61044b838383604051806020016040528060008152506105a0565b6000818152600260205260408120546001600160a01b0316806102745760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b60006001600160a01b0382166105665760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016103aa565b506001600160a01b031660009081526003602052604090205490565b60606001805461028b90611041565b61059c338383610937565b5050565b6105aa338361071c565b6105c65760405162461bcd60e51b81526004016103aa90610f84565b6105d284848484610a06565b50505050565b60606105e38261064c565b60006105fa60408051602081019091526000815290565b9050600081511161061a5760405180602001604052806000815250610645565b8061062484610a39565b604051602001610635929190610eb3565b6040516020818303038152906040525b9392505050565b6000818152600260205260409020546001600160a01b03166106ab5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016103aa565b50565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906106e38261049c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806107288361049c565b9050806001600160a01b0316846001600160a01b0316148061076f57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806107935750836001600160a01b03166107888461030e565b6001600160a01b0316145b949350505050565b826001600160a01b03166107ae8261049c565b6001600160a01b0316146108125760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016103aa565b6001600160a01b0382166108745760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016103aa565b61087f6000826106ae565b6001600160a01b03831660009081526003602052604081208054600192906108a8908490610ffe565b90915550506001600160a01b03821660009081526003602052604081208054600192906108d6908490610fd2565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a461044b565b816001600160a01b0316836001600160a01b031614156109995760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016103aa565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a1184848461079b565b610a1d84848484610b54565b6105d25760405162461bcd60e51b81526004016103aa90610f32565b606081610a5e57506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610a885780610a728161107c565b9150610a819050600a83610fea565b9150610a62565b60008167ffffffffffffffff811115610ab157634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610adb576020820181803683370190505b5090505b841561079357610af0600183610ffe565b9150610afd600a86611097565b610b08906030610fd2565b60f81b818381518110610b2b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610b4d600a86610fea565b9450610adf565b60006001600160a01b0384163b15610c5657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610b98903390899088908890600401610ee2565b602060405180830381600087803b158015610bb257600080fd5b505af1925050508015610be2575060408051601f3d908101601f19168201909252610bdf91810190610e53565b60015b610c3c573d808015610c10576040519150601f19603f3d011682016040523d82523d6000602084013e610c15565b606091505b508051610c345760405162461bcd60e51b81526004016103aa90610f32565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610793565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610c89578081fd5b61064582610c61565b60008060408385031215610ca4578081fd5b610cad83610c61565b9150610cbb60208401610c61565b90509250929050565b600080600060608486031215610cd8578081fd5b610ce184610c61565b9250610cef60208501610c61565b9150604084013590509250925092565b60008060008060808587031215610d14578081fd5b610d1d85610c61565b9350610d2b60208601610c61565b925060408501359150606085013567ffffffffffffffff80821115610d4e578283fd5b818701915087601f830112610d61578283fd5b813581811115610d7357610d736110d7565b604051601f8201601f19908116603f01168101908382118183101715610d9b57610d9b6110d7565b816040528281528a6020848701011115610db3578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610de6578182fd5b610def83610c61565b915060208301358015158114610e03578182fd5b809150509250929050565b60008060408385031215610e20578182fd5b610e2983610c61565b946020939093013593505050565b600060208284031215610e48578081fd5b8135610645816110ed565b600060208284031215610e64578081fd5b8151610645816110ed565b600060208284031215610e80578081fd5b5035919050565b60008151808452610e9f816020860160208601611015565b601f01601f19169290920160200192915050565b60008351610ec5818460208801611015565b835190830190610ed9818360208801611015565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610f1590830184610e87565b9695505050505050565b6000602082526106456020830184610e87565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b60008219821115610fe557610fe56110ab565b500190565b600082610ff957610ff96110c1565b500490565b600082821015611010576110106110ab565b500390565b60005b83811015611030578181015183820152602001611018565b838111156105d25750506000910152565b60028104600182168061105557607f821691505b6020821081141561107657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611090576110906110ab565b5060010190565b6000826110a6576110a66110c1565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146106ab57600080fdfea2646970667358221220c015f1e648d0c91113d9455457bb32b225c6c39cb166f630dc2dbc2e5f163c5564736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6352211E GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x1B3 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x1EC JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6352211E EQ PUSH2 0x177 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AB JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xFC JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x111 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x164 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE7 PUSH2 0xE2 CALLDATASIZE PUSH1 0x4 PUSH2 0xE37 JUMP JUMPDEST PUSH2 0x228 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x104 PUSH2 0x27C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xF3 SWAP2 SWAP1 PUSH2 0xF1F JUMP JUMPDEST PUSH2 0x124 PUSH2 0x11F CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x30E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0xE0E JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0xCC4 JUMP JUMPDEST PUSH2 0x450 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0xCC4 JUMP JUMPDEST PUSH2 0x481 JUMP JUMPDEST PUSH2 0x124 PUSH2 0x185 CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x49C JUMP JUMPDEST PUSH2 0x19D PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0xC78 JUMP JUMPDEST PUSH2 0x4FC JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xF3 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x582 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C1 CALLDATASIZE PUSH1 0x4 PUSH2 0xDD4 JUMP JUMPDEST PUSH2 0x591 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1D4 CALLDATASIZE PUSH1 0x4 PUSH2 0xCFF JUMP JUMPDEST PUSH2 0x5A0 JUMP JUMPDEST PUSH2 0x104 PUSH2 0x1E7 CALLDATASIZE PUSH1 0x4 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x5D8 JUMP JUMPDEST PUSH2 0xE7 PUSH2 0x1FA CALLDATASIZE PUSH1 0x4 PUSH2 0xC92 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x259 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x274 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x28B SWAP1 PUSH2 0x1041 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2B7 SWAP1 PUSH2 0x1041 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x304 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2D9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x304 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2E7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x319 DUP3 PUSH2 0x64C JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x340 DUP3 PUSH2 0x49C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x3B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x3CF JUMPI POP PUSH2 0x3CF DUP2 CALLER PUSH2 0x1FA JUMP JUMPDEST PUSH2 0x441 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206E6F7220617070726F76656420666F7220616C6C0000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 PUSH2 0x6AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x45A CALLER DUP3 PUSH2 0x71C JUMP JUMPDEST PUSH2 0x476 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF84 JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 DUP4 PUSH2 0x79B JUMP JUMPDEST PUSH2 0x44B DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x5A0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x274 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x566 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x28B SWAP1 PUSH2 0x1041 JUMP JUMPDEST PUSH2 0x59C CALLER DUP4 DUP4 PUSH2 0x937 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5AA CALLER DUP4 PUSH2 0x71C JUMP JUMPDEST PUSH2 0x5C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF84 JUMP JUMPDEST PUSH2 0x5D2 DUP5 DUP5 DUP5 DUP5 PUSH2 0xA06 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5E3 DUP3 PUSH2 0x64C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FA PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0x61A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x645 JUMP JUMPDEST DUP1 PUSH2 0x624 DUP5 PUSH2 0xA39 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x635 SWAP3 SWAP2 SWAP1 PUSH2 0xEB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x6AB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0x6E3 DUP3 PUSH2 0x49C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x728 DUP4 PUSH2 0x49C JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0x76F JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0x793 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x788 DUP5 PUSH2 0x30E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7AE DUP3 PUSH2 0x49C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x812 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x874 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH2 0x87F PUSH1 0x0 DUP3 PUSH2 0x6AE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x8A8 SWAP1 DUP5 SWAP1 PUSH2 0xFFE JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x8D6 SWAP1 DUP5 SWAP1 PUSH2 0xFD2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP5 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 PUSH2 0x44B JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x999 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0xA11 DUP5 DUP5 DUP5 PUSH2 0x79B JUMP JUMPDEST PUSH2 0xA1D DUP5 DUP5 DUP5 DUP5 PUSH2 0xB54 JUMP JUMPDEST PUSH2 0x5D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF32 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0xA5E JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x277 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0xA88 JUMPI DUP1 PUSH2 0xA72 DUP2 PUSH2 0x107C JUMP JUMPDEST SWAP2 POP PUSH2 0xA81 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0xFEA JUMP JUMPDEST SWAP2 POP PUSH2 0xA62 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAB1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xADB JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0x793 JUMPI PUSH2 0xAF0 PUSH1 0x1 DUP4 PUSH2 0xFFE JUMP JUMPDEST SWAP2 POP PUSH2 0xAFD PUSH1 0xA DUP7 PUSH2 0x1097 JUMP JUMPDEST PUSH2 0xB08 SWAP1 PUSH1 0x30 PUSH2 0xFD2 JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xB2B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0xB4D PUSH1 0xA DUP7 PUSH2 0xFEA JUMP JUMPDEST SWAP5 POP PUSH2 0xADF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0xC56 JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0xB98 SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0xBE2 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0xBDF SWAP2 DUP2 ADD SWAP1 PUSH2 0xE53 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0xC3C JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xC15 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0xC34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3AA SWAP1 PUSH2 0xF32 JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0x793 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x277 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC89 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x645 DUP3 PUSH2 0xC61 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCA4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCAD DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH2 0xCBB PUSH1 0x20 DUP5 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD8 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCE1 DUP5 PUSH2 0xC61 JUMP JUMPDEST SWAP3 POP PUSH2 0xCEF PUSH1 0x20 DUP6 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD14 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xD1D DUP6 PUSH2 0xC61 JUMP JUMPDEST SWAP4 POP PUSH2 0xD2B PUSH1 0x20 DUP7 ADD PUSH2 0xC61 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD4E JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xD61 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xD73 JUMPI PUSH2 0xD73 PUSH2 0x10D7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xD9B JUMPI PUSH2 0xD9B PUSH2 0x10D7 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xDB3 JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDE6 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xDEF DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xE03 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE20 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xE29 DUP4 PUSH2 0xC61 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE48 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x645 DUP2 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE64 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x645 DUP2 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE80 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE9F DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1015 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0xEC5 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1015 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0xED9 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1015 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF15 SWAP1 DUP4 ADD DUP5 PUSH2 0xE87 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x645 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xE87 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x1C881B9BDC88185C1C1C9BDD9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xFE5 JUMPI PUSH2 0xFE5 PUSH2 0x10AB JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xFF9 JUMPI PUSH2 0xFF9 PUSH2 0x10C1 JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1010 JUMPI PUSH2 0x1010 PUSH2 0x10AB JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1030 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1018 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x5D2 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1055 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1076 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1090 JUMPI PUSH2 0x1090 PUSH2 0x10AB JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x10A6 JUMPI PUSH2 0x10A6 PUSH2 0x10C1 JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x6AB JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC0 ISZERO CALL 0xE6 0x48 0xD0 0xC9 GT SGT 0xD9 GASLIMIT SLOAD JUMPI 0xBB ORIGIN 0xB2 0x25 0xC6 0xC3 SWAP13 0xB1 PUSH7 0xF630DC2DBC2E5F AND EXTCODECOPY SSTORE PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"628:13718:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300;;;;;;:::i;:::-;;:::i;:::-;;;5162:14:103;;5155:22;5137:41;;5125:2;5110:18;1570:300:54;;;;;;;;2470:98;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4460:32:103;;;4442:51;;4430:2;4415:18;3935:167:54;4397:102:103;3467:407:54;;;;;;:::i;:::-;;:::i;:::-;;4612:327;;;;;;:::i;:::-;;:::i;5005:179::-;;;;;;:::i;:::-;;:::i;2190:218::-;;;;;;:::i;:::-;;:::i;1929:204::-;;;;;;:::i;:::-;;:::i;:::-;;;9154:25:103;;;9142:2;9127:18;1929:204:54;9109:76:103;2632:102:54;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;5250:315::-;;;;;;:::i;:::-;;:::i;2800:276::-;;;;;;:::i;:::-;;:::i;4388:162::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4508:25:54;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;1570:300;1672:4;-1:-1:-1;;;;;;1707:40:54;;-1:-1:-1;;;1707:40:54;;:104;;-1:-1:-1;;;;;;;1763:48:54;;-1:-1:-1;;;1763:48:54;1707:104;:156;;;-1:-1:-1;;;;;;;;;;937:40:62;;;1827:36:54;1688:175;;1570:300;;;;:::o;2470:98::-;2524:13;2556:5;2549:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2470:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:54;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:54;;3935:167::o;3467:407::-;3547:13;3563:23;3578:7;3563:14;:23::i;:::-;3547:39;;3610:5;-1:-1:-1;;;;;3604:11:54;:2;-1:-1:-1;;;;;3604:11:54;;;3596:57;;;;-1:-1:-1;;;3596:57:54;;8393:2:103;3596:57:54;;;8375:21:103;8432:2;8412:18;;;8405:30;8471:34;8451:18;;;8444:62;-1:-1:-1;;;8522:18:103;;;8515:31;8563:19;;3596:57:54;;;;;;;;;719:10:59;-1:-1:-1;;;;;3685:21:54;;;;:62;;-1:-1:-1;3710:37:54;3727:5;719:10:59;3734:12:54;640:96:59;3710:37:54;3664:171;;;;-1:-1:-1;;;3664:171:54;;7609:2:103;3664:171:54;;;7591:21:103;7648:2;7628:18;;;7621:30;7687:34;7667:18;;;7660:62;7758:32;7738:18;;;7731:60;7808:19;;3664:171:54;7581:252:103;3664:171:54;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3467:407;;;:::o;4612:327::-;4801:41;719:10:59;4834:7:54;4801:18;:41::i;:::-;4793:100;;;;-1:-1:-1;;;4793:100:54;;;;;;;:::i;:::-;4904:28;4914:4;4920:2;4924:7;4904:9;:28::i;5005:179::-;5138:39;5155:4;5161:2;5165:7;5138:39;;;;;;;;;;;;:16;:39::i;2190:218::-;2262:7;2297:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2297:16:54;2331:19;2323:56;;;;-1:-1:-1;;;2323:56:54;;8040:2:103;2323:56:54;;;8022:21:103;8079:2;8059:18;;;8052:30;-1:-1:-1;;;8098:18:103;;;8091:54;8162:18;;2323:56:54;8012:174:103;1929:204:54;2001:7;-1:-1:-1;;;;;2028:19:54;;2020:73;;;;-1:-1:-1;;;2020:73:54;;7199:2:103;2020:73:54;;;7181:21:103;7238:2;7218:18;;;7211:30;7277:34;7257:18;;;7250:62;-1:-1:-1;;;7328:18:103;;;7321:39;7377:19;;2020:73:54;7171:231:103;2020:73:54;-1:-1:-1;;;;;;2110:16:54;;;;;:9;:16;;;;;;;1929:204::o;2632:102::-;2688:13;2720:7;2713:14;;;;;:::i;4169:153::-;4263:52;719:10:59;4296:8:54;4306;4263:18;:52::i;:::-;4169:153;;:::o;5250:315::-;5418:41;719:10:59;5451:7:54;5418:18;:41::i;:::-;5410:100;;;;-1:-1:-1;;;5410:100:54;;;;;;;:::i;:::-;5520:38;5534:4;5540:2;5544:7;5553:4;5520:13;:38::i;:::-;5250:315;;;;:::o;2800:276::-;2873:13;2898:23;2913:7;2898:14;:23::i;:::-;2932:21;2956:10;3394:9;;;;;;;;;-1:-1:-1;3394:9:54;;3318:92;;2956:10;2932:34;;3007:1;2989:7;2983:21;:25;:86;;;;;;;;;;;;;;;;;3035:7;3044:18;:7;:16;:18::i;:::-;3018:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2983:86;2976:93;2800:276;-1:-1:-1;;;2800:276:54:o;11657:133::-;7099:4;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:54;11730:53;;;;-1:-1:-1;;;11730:53:54;;8040:2:103;11730:53:54;;;8022:21:103;8079:2;8059:18;;;8052:30;-1:-1:-1;;;8098:18:103;;;8091:54;8162:18;;11730:53:54;8012:174:103;11730:53:54;11657:133;:::o;10959:171::-;11033:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11033:29:54;-1:-1:-1;;;;;11033:29:54;;;;;;;;:24;;11086:23;11033:24;11086:14;:23::i;:::-;-1:-1:-1;;;;;11077:46:54;;;;;;;;;;;10959:171;;:::o;7317:261::-;7410:4;7426:13;7442:23;7457:7;7442:14;:23::i;:::-;7426:39;;7494:5;-1:-1:-1;;;;;7483:16:54;:7;-1:-1:-1;;;;;7483:16:54;;:52;;;-1:-1:-1;;;;;;4508:25:54;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7503:32;7483:87;;;;7563:7;-1:-1:-1;;;;;7539:31:54;:20;7551:7;7539:11;:20::i;:::-;-1:-1:-1;;;;;7539:31:54;;7483:87;7475:96;7317:261;-1:-1:-1;;;;7317:261:54:o;10242:605::-;10396:4;-1:-1:-1;;;;;10369:31:54;:23;10384:7;10369:14;:23::i;:::-;-1:-1:-1;;;;;10369:31:54;;10361:81;;;;-1:-1:-1;;;10361:81:54;;6034:2:103;10361:81:54;;;6016:21:103;6073:2;6053:18;;;6046:30;6112:34;6092:18;;;6085:62;-1:-1:-1;;;6163:18:103;;;6156:35;6208:19;;10361:81:54;6006:227:103;10361:81:54;-1:-1:-1;;;;;10460:16:54;;10452:65;;;;-1:-1:-1;;;10452:65:54;;6440:2:103;10452:65:54;;;6422:21:103;6479:2;6459:18;;;6452:30;6518:34;6498:18;;;6491:62;-1:-1:-1;;;6569:18:103;;;6562:34;6613:19;;10452:65:54;6412:226:103;10452:65:54;10629:29;10646:1;10650:7;10629:8;:29::i;:::-;-1:-1:-1;;;;;10669:15:54;;;;;;:9;:15;;;;;:20;;10688:1;;10669:15;:20;;10688:1;;10669:20;:::i;:::-;;;;-1:-1:-1;;;;;;;10699:13:54;;;;;;:9;:13;;;;;:18;;10716:1;;10699:13;:18;;10716:1;;10699:18;:::i;:::-;;;;-1:-1:-1;;10727:16:54;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10727:21:54;-1:-1:-1;;;;;10727:21:54;;;;;;;;;10764:27;;10727:16;;10764:27;;;;;;;10802:38;3467:407;11266:307;11416:8;-1:-1:-1;;;;;11407:17:54;:5;-1:-1:-1;;;;;11407:17:54;;;11399:55;;;;-1:-1:-1;;;11399:55:54;;6845:2:103;11399:55:54;;;6827:21:103;6884:2;6864:18;;;6857:30;6923:27;6903:18;;;6896:55;6968:18;;11399:55:54;6817:175:103;11399:55:54;-1:-1:-1;;;;;11464:25:54;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11464:46:54;;;;;;;;;;11525:41;;5137::103;;;11525::54;;5110:18:103;11525:41:54;;;;;;;11266:307;;;:::o;6426:305::-;6576:28;6586:4;6592:2;6596:7;6576:9;:28::i;:::-;6622:47;6645:4;6651:2;6655:7;6664:4;6622:22;:47::i;:::-;6614:110;;;;-1:-1:-1;;;6614:110:54;;;;;;;:::i;392:703:61:-;448:13;665:10;661:51;;-1:-1:-1;691:10:61;;;;;;;;;;;;-1:-1:-1;;;691:10:61;;;;;;661:51;736:5;721:12;775:75;782:9;;775:75;;807:8;;;;:::i;:::-;;-1:-1:-1;829:10:61;;-1:-1:-1;837:2:61;829:10;;:::i;:::-;;;775:75;;;859:19;891:6;881:17;;;;;;-1:-1:-1;;;881:17:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;881:17:61;;859:39;;908:150;915:10;;908:150;;941:11;951:1;941:11;;:::i;:::-;;-1:-1:-1;1009:10:61;1017:2;1009:5;:10;:::i;:::-;996:24;;:2;:24;:::i;:::-;983:39;;966:6;973;966:14;;;;;;-1:-1:-1;;;966:14:61;;;;;;;;;;;;:56;-1:-1:-1;;;;;966:56:61;;;;;;;;-1:-1:-1;1036:11:61;1045:2;1036:11;;:::i;:::-;;;908:150;;12342:831:54;12491:4;-1:-1:-1;;;;;12511:13:54;;1465:19:58;:23;12507:660:54;;12546:71;;-1:-1:-1;;;12546:71:54;;-1:-1:-1;;;;;12546:36:54;;;;;:71;;719:10:59;;12597:4:54;;12603:7;;12612:4;;12546:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12546:71:54;;;;;;;;-1:-1:-1;;12546:71:54;;;;;;;;;;;;:::i;:::-;;;12542:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12784:13:54;;12780:321;;12826:60;;-1:-1:-1;;;12826:60:54;;;;;;;:::i;12780:321::-;13053:6;13047:13;13038:6;13034:2;13030:15;13023:38;12542:573;-1:-1:-1;;;;;;12667:51:54;-1:-1:-1;;;12667:51:54;;-1:-1:-1;12660:58:54;;12507:660;-1:-1:-1;13152:4:54;12342:831;;;;;;:::o;14:173:103:-;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:1183::-;;;;;1183:3;1171:9;1162:7;1158:23;1154:33;1151:2;;;1205:6;1197;1190:22;1151:2;1233:29;1252:9;1233:29;:::i;:::-;1223:39;;1281:38;1315:2;1304:9;1300:18;1281:38;:::i;:::-;1271:48;;1366:2;1355:9;1351:18;1338:32;1328:42;;1421:2;1410:9;1406:18;1393:32;1444:18;1485:2;1477:6;1474:14;1471:2;;;1506:6;1498;1491:22;1471:2;1549:6;1538:9;1534:22;1524:32;;1594:7;1587:4;1583:2;1579:13;1575:27;1565:2;;1621:6;1613;1606:22;1565:2;1662;1649:16;1684:2;1680;1677:10;1674:2;;;1690:18;;:::i;:::-;1765:2;1759:9;1733:2;1819:13;;-1:-1:-1;;1815:22:103;;;1839:2;1811:31;1807:40;1795:53;;;1863:18;;;1883:22;;;1860:46;1857:2;;;1909:18;;:::i;:::-;1949:10;1945:2;1938:22;1984:2;1976:6;1969:18;2024:7;2019:2;2014;2010;2006:11;2002:20;1999:33;1996:2;;;2050:6;2042;2035:22;1996:2;2111;2106;2102;2098:11;2093:2;2085:6;2081:15;2068:46;2134:15;;;2151:2;2130:24;2123:40;;;;1141:1053;;;;-1:-1:-1;1141:1053:103;;-1:-1:-1;;;;1141:1053:103:o;2199:367::-;;;2325:2;2313:9;2304:7;2300:23;2296:32;2293:2;;;2346:6;2338;2331:22;2293:2;2374:29;2393:9;2374:29;:::i;:::-;2364:39;;2453:2;2442:9;2438:18;2425:32;2500:5;2493:13;2486:21;2479:5;2476:32;2466:2;;2527:6;2519;2512:22;2466:2;2555:5;2545:15;;;2283:283;;;;;:::o;2571:264::-;;;2700:2;2688:9;2679:7;2675:23;2671:32;2668:2;;;2721:6;2713;2706:22;2668:2;2749:29;2768:9;2749:29;:::i;:::-;2739:39;2825:2;2810:18;;;;2797:32;;-1:-1:-1;;;2658:177:103:o;2840:255::-;;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2972:6;2964;2957:22;2919:2;3016:9;3003:23;3035:30;3059:5;3035:30;:::i;3100:259::-;;3222:2;3210:9;3201:7;3197:23;3193:32;3190:2;;;3243:6;3235;3228:22;3190:2;3280:9;3274:16;3299:30;3323:5;3299:30;:::i;3364:190::-;;3476:2;3464:9;3455:7;3451:23;3447:32;3444:2;;;3497:6;3489;3482:22;3444:2;-1:-1:-1;3525:23:103;;3434:120;-1:-1:-1;3434:120:103:o;3559:257::-;;3638:5;3632:12;3665:6;3660:3;3653:19;3681:63;3737:6;3730:4;3725:3;3721:14;3714:4;3707:5;3703:16;3681:63;:::i;:::-;3798:2;3777:15;-1:-1:-1;;3773:29:103;3764:39;;;;3805:4;3760:50;;3608:208;-1:-1:-1;;3608:208:103:o;3821:470::-;;4038:6;4032:13;4054:53;4100:6;4095:3;4088:4;4080:6;4076:17;4054:53;:::i;:::-;4170:13;;4129:16;;;;4192:57;4170:13;4129:16;4226:4;4214:17;;4192:57;:::i;:::-;4265:20;;4008:283;-1:-1:-1;;;;4008:283:103:o;4504:488::-;-1:-1:-1;;;;;4773:15:103;;;4755:34;;4825:15;;4820:2;4805:18;;4798:43;4872:2;4857:18;;4850:34;;;4920:3;4915:2;4900:18;;4893:31;;;4504:488;;4941:45;;4966:19;;4958:6;4941:45;:::i;:::-;4933:53;4707:285;-1:-1:-1;;;;;;4707:285:103:o;5189:219::-;;5338:2;5327:9;5320:21;5358:44;5398:2;5387:9;5383:18;5375:6;5358:44;:::i;5413:414::-;5615:2;5597:21;;;5654:2;5634:18;;;5627:30;5693:34;5688:2;5673:18;;5666:62;-1:-1:-1;;;5759:2:103;5744:18;;5737:48;5817:3;5802:19;;5587:240::o;8593:410::-;8795:2;8777:21;;;8834:2;8814:18;;;8807:30;8873:34;8868:2;8853:18;;8846:62;-1:-1:-1;;;8939:2:103;8924:18;;8917:44;8993:3;8978:19;;8767:236::o;9190:128::-;;9261:1;9257:6;9254:1;9251:13;9248:2;;;9267:18;;:::i;:::-;-1:-1:-1;9303:9:103;;9238:80::o;9323:120::-;;9389:1;9379:2;;9394:18;;:::i;:::-;-1:-1:-1;9428:9:103;;9369:74::o;9448:125::-;;9516:1;9513;9510:8;9507:2;;;9521:18;;:::i;:::-;-1:-1:-1;9558:9:103;;9497:76::o;9578:258::-;9650:1;9660:113;9674:6;9671:1;9668:13;9660:113;;;9750:11;;;9744:18;9731:11;;;9724:39;9696:2;9689:10;9660:113;;;9791:6;9788:1;9785:13;9782:2;;;-1:-1:-1;;9826:1:103;9808:16;;9801:27;9631:205::o;9841:380::-;9926:1;9916:12;;9973:1;9963:12;;;9984:2;;10038:4;10030:6;10026:17;10016:27;;9984:2;10091;10083:6;10080:14;10060:18;10057:38;10054:2;;;10137:10;10132:3;10128:20;10125:1;10118:31;10172:4;10169:1;10162:15;10200:4;10197:1;10190:15;10054:2;;9896:325;;;:::o;10226:135::-;;-1:-1:-1;;10286:17:103;;10283:2;;;10306:18;;:::i;:::-;-1:-1:-1;10353:1:103;10342:13;;10273:88::o;10366:112::-;;10424:1;10414:2;;10429:18;;:::i;:::-;-1:-1:-1;10463:9:103;;10404:74::o;10483:127::-;10544:10;10539:3;10535:20;10532:1;10525:31;10575:4;10572:1;10565:15;10599:4;10596:1;10589:15;10615:127;10676:10;10671:3;10667:20;10664:1;10657:31;10707:4;10704:1;10697:15;10731:4;10728:1;10721:15;10747:127;10808:10;10803:3;10799:20;10796:1;10789:31;10839:4;10836:1;10829:15;10863:4;10860:1;10853:15;10879:131;-1:-1:-1;;;;;;10953:32:103;;10943:43;;10933:2;;11000:1;10997;10990:12"},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721.sol":{"IERC721":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":\"IERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol":{"IERC721Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"IERC721Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":\"IERC721Metadata\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Address.sol":{"Address":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200fa1e693094ebf84cad290be5d43cf4715f087d620c601634c4648a02e72ace864736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF LOG1 0xE6 SWAP4 MULMOD 0x4E 0xBF DUP5 0xCA 0xD2 SWAP1 0xBE 0x5D NUMBER 0xCF SELFBALANCE ISZERO CREATE DUP8 0xD6 KECCAK256 0xC6 ADD PUSH4 0x4C4648A0 0x2E PUSH19 0xACE864736F6C63430008020033000000000000 ","sourceMap":"194:8111:58:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:8111:58;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200fa1e693094ebf84cad290be5d43cf4715f087d620c601634c4648a02e72ace864736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF LOG1 0xE6 SWAP4 MULMOD 0x4E 0xBF DUP5 0xCA 0xD2 SWAP1 0xBE 0x5D NUMBER 0xCF SELFBALANCE ISZERO CREATE DUP8 0xD6 KECCAK256 0xC6 ADD PUSH4 0x4C4648A0 0x2E PUSH19 0xACE864736F6C63430008020033000000000000 ","sourceMap":"194:8111:58:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/StorageSlot.sol":{"StorageSlot":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220548b09ac82e45b33b1735c483f99cdd694f65e585c1b1c385f7804aee5ecef8064736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD DUP12 MULMOD 0xAC DUP3 0xE4 JUMPDEST CALLER 0xB1 PUSH20 0x5C483F99CDD694F65E585C1B1C385F7804AEE5EC 0xEF DUP1 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1279:1391:60:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1279:1391:60;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220548b09ac82e45b33b1735c483f99cdd694f65e585c1b1c385f7804aee5ecef8064736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD DUP12 MULMOD 0xAC DUP3 0xE4 JUMPDEST CALLER 0xB1 PUSH20 0x5C483F99CDD694F65E585C1B1C385F7804AEE5EC 0xEF DUP1 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1279:1391:60:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ``` contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\"); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202855554d9d2f6e99da4b2b0abb5e45eda5c155eb156924975fd14aa04152e65964736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x28 SSTORE SSTORE 0x4D SWAP14 0x2F PUSH15 0x99DA4B2B0ABB5E45EDA5C155EB1569 0x24 SWAP8 0x5F 0xD1 0x4A LOG0 COINBASE MSTORE 0xE6 MSIZE PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"161:2235:61:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;161:2235:61;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202855554d9d2f6e99da4b2b0abb5e45eda5c155eb156924975fd14aa04152e65964736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x28 SSTORE SSTORE 0x4D SWAP14 0x2F PUSH15 0x99DA4B2B0ABB5E45EDA5C155EB1569 0x24 SWAP8 0x5F 0xD1 0x4A LOG0 COINBASE MSTORE 0xE6 MSIZE PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"161:2235:61:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"EnumerableSet":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f5d74db21ef8a5bf17d7feea4a3de1c4cbcd77c6f2ba54e1031ce853bf59487f64736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 0xD7 0x4D 0xB2 0x1E 0xF8 0xA5 0xBF OR 0xD7 INVALID 0xEA 0x4A RETURNDATASIZE 0xE1 0xC4 0xCB 0xCD PUSH24 0xC6F2BA54E1031CE853BF59487F64736F6C63430008020033 ","sourceMap":"1228:11454:64:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1228:11454:64;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f5d74db21ef8a5bf17d7feea4a3de1c4cbcd77c6f2ba54e1031ce853bf59487f64736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE2 0xD7 0x4D 0xB2 0x1E 0xF8 0xA5 0xBF OR 0xD7 INVALID 0xEA 0x4A RETURNDATASIZE 0xE1 0xC4 0xCB 0xCD PUSH24 0xC6F2BA54E1031CE853BF59487F64736F6C63430008020033 ","sourceMap":"1228:11454:64:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]}},\"version\":1}"}},"contracts/Migrations.sol":{"Migrations":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"last_completed_migration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_completed","type":"uint256"}],"name":"setCompleted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101d1806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610082578063fdacd576146100ad575b600080fd5b61006461005f366004610155565b6100c0565b005b61006f60015481565b6040519081526020015b60405180910390f35b600054610095906001600160a01b031681565b6040516001600160a01b039091168152602001610079565b6100646100bb366004610183565b61013d565b6000546001600160a01b031633141561013a57600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916101069160040190815260200190565b600060405180830381600087803b15801561012057600080fd5b505af1158015610134573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031633141561013a57600155565b600060208284031215610166578081fd5b81356001600160a01b038116811461017c578182fd5b9392505050565b600060208284031215610194578081fd5b503591905056fea2646970667358221220a7ffc413689af522848c08543fae43e42c89e0f98d7b3bbedcc1c037759491e064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x1D1 DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x900F010 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0xAD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x5F CALLDATASIZE PUSH1 0x4 PUSH2 0x155 JUMP JUMPDEST PUSH2 0xC0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6F PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x95 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79 JUMP JUMPDEST PUSH2 0x64 PUSH2 0xBB CALLDATASIZE PUSH1 0x4 PUSH2 0x183 JUMP JUMPDEST PUSH2 0x13D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x13A JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7ED66ABB PUSH1 0xE1 SHL DUP2 MSTORE DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP2 PUSH4 0xFDACD576 SWAP2 PUSH2 0x106 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x134 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x13A JUMPI PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x166 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x17C JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x194 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 SELFDESTRUCT 0xC4 SGT PUSH9 0x9AF522848C08543FAE NUMBER 0xE4 0x2C DUP10 0xE0 0xF9 DUP14 PUSH28 0x3BBEDCC1C037759491E064736F6C6343000802003300000000000000 ","sourceMap":"63:545:65:-:0;;;185:49;;;;;;;;;-1:-1:-1;209:5:65;:18;;-1:-1:-1;;;;;;209:18:65;217:10;209:18;;;63:545;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:907:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:236:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"264:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"273:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"281:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"266:6:103"},"nodeType":"YulFunctionCall","src":"266:22:103"},"nodeType":"YulExpressionStatement","src":"266:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"223:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"234:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"249:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"254:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"245:3:103"},"nodeType":"YulFunctionCall","src":"245:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"241:3:103"},"nodeType":"YulFunctionCall","src":"241:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"230:3:103"},"nodeType":"YulFunctionCall","src":"230:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"220:2:103"},"nodeType":"YulFunctionCall","src":"220:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"213:6:103"},"nodeType":"YulFunctionCall","src":"213:50:103"},"nodeType":"YulIf","src":"210:2:103"},{"nodeType":"YulAssignment","src":"299:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"309:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"299:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:306:103"},{"body":{"nodeType":"YulBlock","src":"395:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"441:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"450:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"458:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"443:6:103"},"nodeType":"YulFunctionCall","src":"443:22:103"},"nodeType":"YulExpressionStatement","src":"443:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"416:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"425:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"412:3:103"},"nodeType":"YulFunctionCall","src":"412:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"437:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"408:3:103"},"nodeType":"YulFunctionCall","src":"408:32:103"},"nodeType":"YulIf","src":"405:2:103"},{"nodeType":"YulAssignment","src":"476:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"499:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"486:12:103"},"nodeType":"YulFunctionCall","src":"486:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"476:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"361:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"372:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"384:6:103","type":""}],"src":"325:190:103"},{"body":{"nodeType":"YulBlock","src":"621:102:103","statements":[{"nodeType":"YulAssignment","src":"631:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"654:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"639:3:103"},"nodeType":"YulFunctionCall","src":"639:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"631:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"673:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"688:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"704:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"709:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"700:3:103"},"nodeType":"YulFunctionCall","src":"700:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"713:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"696:3:103"},"nodeType":"YulFunctionCall","src":"696:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:103"},"nodeType":"YulFunctionCall","src":"684:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"666:6:103"},"nodeType":"YulFunctionCall","src":"666:51:103"},"nodeType":"YulExpressionStatement","src":"666:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"590:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"601:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"612:4:103","type":""}],"src":"520:203:103"},{"body":{"nodeType":"YulBlock","src":"829:76:103","statements":[{"nodeType":"YulAssignment","src":"839:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"851:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"862:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"847:3:103"},"nodeType":"YulFunctionCall","src":"847:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"839:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"881:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"892:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"874:6:103"},"nodeType":"YulFunctionCall","src":"874:25:103"},"nodeType":"YulExpressionStatement","src":"874:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"798:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"809:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"820:4:103","type":""}],"src":"728:177:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610082578063fdacd576146100ad575b600080fd5b61006461005f366004610155565b6100c0565b005b61006f60015481565b6040519081526020015b60405180910390f35b600054610095906001600160a01b031681565b6040516001600160a01b039091168152602001610079565b6100646100bb366004610183565b61013d565b6000546001600160a01b031633141561013a57600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916101069160040190815260200190565b600060405180830381600087803b15801561012057600080fd5b505af1158015610134573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031633141561013a57600155565b600060208284031215610166578081fd5b81356001600160a01b038116811461017c578182fd5b9392505050565b600060208284031215610194578081fd5b503591905056fea2646970667358221220a7ffc413689af522848c08543fae43e42c89e0f98d7b3bbedcc1c037759491e064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x900F010 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x66 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0xAD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x5F CALLDATASIZE PUSH1 0x4 PUSH2 0x155 JUMP JUMPDEST PUSH2 0xC0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x6F PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x95 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x79 JUMP JUMPDEST PUSH2 0x64 PUSH2 0xBB CALLDATASIZE PUSH1 0x4 PUSH2 0x183 JUMP JUMPDEST PUSH2 0x13D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x13A JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7ED66ABB PUSH1 0xE1 SHL DUP2 MSTORE DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP2 PUSH4 0xFDACD576 SWAP2 PUSH2 0x106 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x134 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ ISZERO PUSH2 0x13A JUMPI PUSH1 0x1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x166 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x17C JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x194 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 SELFDESTRUCT 0xC4 SGT PUSH9 0x9AF522848C08543FAE NUMBER 0xE4 0x2C DUP10 0xE0 0xF9 DUP14 PUSH28 0x3BBEDCC1C037759491E064736F6C6343000802003300000000000000 ","sourceMap":"63:545:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;431:175;;;;;;:::i;:::-;;:::i;:::-;;115:39;;;;;;;;;874:25:103;;;862:2;847:18;115:39:65;;;;;;;;89:20;;;;;-1:-1:-1;;;;;89:20:65;;;;;;-1:-1:-1;;;;;684:32:103;;;666:51;;654:2;639:18;89:20:65;621:102:103;311:114:65;;;;;;:::i;:::-;;:::i;431:175::-;290:5;;-1:-1:-1;;;;;290:5:65;276:10;:19;272:26;;;574:24:::1;::::0;552:47:::1;::::0;-1:-1:-1;;;552:47:65;;530:11;;-1:-1:-1;;;;;552:21:65;::::1;::::0;::::1;::::0;:47:::1;::::0;::::1;;874:25:103::0;;;862:2;847:18;;829:76;552:47:65::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;297:1;272:26:::0;431:175;:::o;311:114::-;290:5;;-1:-1:-1;;;;;290:5:65;276:10;:19;272:26;;;381:24:::1;:37:::0;311:114::o;14:306:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;178:23;;-1:-1:-1;;;;;230:31:103;;220:42;;210:2;;281:6;273;266:22;210:2;309:5;84:236;-1:-1:-1;;;84:236:103:o;325:190::-;;437:2;425:9;416:7;412:23;408:32;405:2;;;458:6;450;443:22;405:2;-1:-1:-1;486:23:103;;395:120;-1:-1:-1;395:120:103:o"},"methodIdentifiers":{"last_completed_migration()":"445df0ac","owner()":"8da5cb5b","setCompleted(uint256)":"fdacd576","upgrade(address)":"0900f010"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newAddress\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Migrations.sol\":{\"keccak256\":\"0x7caffa1aef8472dae4bb3ccf5a71d710a9d6cbdf9ec022d741892e4c6bafc3b8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3a5b234146cee0371b30e1d987b538e967373721143a6004d5659dbc69e5f680\",\"dweb:/ipfs/QmSfS1D4PHyVZSmG5ZneCwwLAukBqzbMYLmWvjQULuVTZW\"]}},\"version\":1}"}},"contracts/examples/AyiiOracle.sol":{"AyiiOracle":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"},{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address","name":"_chainLinkToken","type":"address"},{"internalType":"address","name":"_chainLinkOperator","type":"address"},{"internalType":"bytes32","name":"_jobId","type":"bytes32"},{"internalType":"uint256","name":"_payment","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"chainlinkRequestId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"projectId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"cropId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"aaay","type":"uint256"}],"name":"LogAyiiFulfill","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"chainlinkRequestId","type":"bytes32"}],"name":"LogAyiiRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oracleAddress","type":"address"}],"name":"LogOracleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"chainlinkRequestId","type":"bytes32"},{"internalType":"bytes32","name":"projectId","type":"bytes32"},{"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"internalType":"bytes32","name":"cropId","type":"bytes32"},{"internalType":"uint256","name":"aaay","type":"uint256"}],"name":"encodeFulfillParameters","outputs":[{"internalType":"bytes","name":"parameterData","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"chainlinkRequestId","type":"bytes32"},{"internalType":"bytes32","name":"projectId","type":"bytes32"},{"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"internalType":"bytes32","name":"cropId","type":"bytes32"},{"internalType":"uint256","name":"aaay","type":"uint256"}],"name":"fulfill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainlinkJobId","outputs":[{"internalType":"bytes32","name":"chainlinkJobId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainlinkOperator","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainlinkPayment","outputs":[{"internalType":"uint256","name":"paymentAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainlinkToken","outputs":[{"internalType":"address","name":"linkTokenAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"gifRequests","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jobId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"payment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gifRequestId","type":"uint256"},{"internalType":"bytes","name":"input","type":"bytes"}],"name":"request","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_chainLinkToken","type":"address"},{"internalType":"address","name":"_chainLinkOperator","type":"address"},{"internalType":"bytes32","name":"_jobId","type":"bytes32"},{"internalType":"uint256","name":"_payment","type":"uint256"}],"name":"updateRequestDetails","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2771:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"585:408:103","statements":[{"body":{"nodeType":"YulBlock","src":"632:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"641:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"649:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"634:6:103"},"nodeType":"YulFunctionCall","src":"634:22:103"},"nodeType":"YulExpressionStatement","src":"634:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"606:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"615:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"602:3:103"},"nodeType":"YulFunctionCall","src":"602:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"627:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"598:3:103"},"nodeType":"YulFunctionCall","src":"598:33:103"},"nodeType":"YulIf","src":"595:2:103"},{"nodeType":"YulAssignment","src":"667:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"683:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"677:5:103"},"nodeType":"YulFunctionCall","src":"677:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"667:6:103"}]},{"nodeType":"YulAssignment","src":"702:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"757:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"742:3:103"},"nodeType":"YulFunctionCall","src":"742:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"712:29:103"},"nodeType":"YulFunctionCall","src":"712:49:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"702:6:103"}]},{"nodeType":"YulAssignment","src":"770:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"825:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"810:3:103"},"nodeType":"YulFunctionCall","src":"810:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"780:29:103"},"nodeType":"YulFunctionCall","src":"780:49:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"770:6:103"}]},{"nodeType":"YulAssignment","src":"838:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"893:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"878:3:103"},"nodeType":"YulFunctionCall","src":"878:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"848:29:103"},"nodeType":"YulFunctionCall","src":"848:49:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"838:6:103"}]},{"nodeType":"YulAssignment","src":"906:36:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"937:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"922:3:103"},"nodeType":"YulFunctionCall","src":"922:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"916:5:103"},"nodeType":"YulFunctionCall","src":"916:26:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"906:6:103"}]},{"nodeType":"YulAssignment","src":"951:36:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"971:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"982:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"961:5:103"},"nodeType":"YulFunctionCall","src":"961:26:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"951:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_addresst_addresst_bytes32t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"511:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"522:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"534:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"542:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"550:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"558:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"566:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"574:6:103","type":""}],"src":"419:574:103"},{"body":{"nodeType":"YulBlock","src":"1099:102:103","statements":[{"nodeType":"YulAssignment","src":"1109:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:103"},"nodeType":"YulFunctionCall","src":"1117:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1166:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1182:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1187:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1178:3:103"},"nodeType":"YulFunctionCall","src":"1178:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1191:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1174:3:103"},"nodeType":"YulFunctionCall","src":"1174:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1162:3:103"},"nodeType":"YulFunctionCall","src":"1162:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:103"},"nodeType":"YulFunctionCall","src":"1144:51:103"},"nodeType":"YulExpressionStatement","src":"1144:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:103","type":""}],"src":"998:203:103"},{"body":{"nodeType":"YulBlock","src":"1307:76:103","statements":[{"nodeType":"YulAssignment","src":"1317:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1329:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1340:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1325:3:103"},"nodeType":"YulFunctionCall","src":"1325:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1317:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1359:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1370:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1352:6:103"},"nodeType":"YulFunctionCall","src":"1352:25:103"},"nodeType":"YulExpressionStatement","src":"1352:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1276:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1287:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1298:4:103","type":""}],"src":"1206:177:103"},{"body":{"nodeType":"YulBlock","src":"1589:415:103","statements":[{"nodeType":"YulAssignment","src":"1599:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1611:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1622:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1607:3:103"},"nodeType":"YulFunctionCall","src":"1607:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1599:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1642:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1653:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1635:6:103"},"nodeType":"YulFunctionCall","src":"1635:25:103"},"nodeType":"YulExpressionStatement","src":"1635:25:103"},{"body":{"nodeType":"YulBlock","src":"1702:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1723:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1730:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1735:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1726:3:103"},"nodeType":"YulFunctionCall","src":"1726:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1716:6:103"},"nodeType":"YulFunctionCall","src":"1716:31:103"},"nodeType":"YulExpressionStatement","src":"1716:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1767:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1770:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1760:6:103"},"nodeType":"YulFunctionCall","src":"1760:15:103"},"nodeType":"YulExpressionStatement","src":"1760:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1795:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1798:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1788:6:103"},"nodeType":"YulFunctionCall","src":"1788:15:103"},"nodeType":"YulExpressionStatement","src":"1788:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1682:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1690:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1679:2:103"},"nodeType":"YulFunctionCall","src":"1679:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1672:6:103"},"nodeType":"YulFunctionCall","src":"1672:21:103"},"nodeType":"YulIf","src":"1669:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1829:3:103"},"nodeType":"YulFunctionCall","src":"1829:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1849:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1822:6:103"},"nodeType":"YulFunctionCall","src":"1822:34:103"},"nodeType":"YulExpressionStatement","src":"1822:34:103"},{"nodeType":"YulVariableDeclaration","src":"1865:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1883:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1888:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1879:3:103"},"nodeType":"YulFunctionCall","src":"1879:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1892:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1875:3:103"},"nodeType":"YulFunctionCall","src":"1875:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1869:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1925:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1910:3:103"},"nodeType":"YulFunctionCall","src":"1910:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1934:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1942:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1930:3:103"},"nodeType":"YulFunctionCall","src":"1930:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1903:6:103"},"nodeType":"YulFunctionCall","src":"1903:43:103"},"nodeType":"YulExpressionStatement","src":"1903:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1977:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1962:3:103"},"nodeType":"YulFunctionCall","src":"1962:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1986:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1994:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1982:3:103"},"nodeType":"YulFunctionCall","src":"1982:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1955:6:103"},"nodeType":"YulFunctionCall","src":"1955:43:103"},"nodeType":"YulExpressionStatement","src":"1955:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1534:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1545:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1553:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1561:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1569:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1580:4:103","type":""}],"src":"1388:616:103"},{"body":{"nodeType":"YulBlock","src":"2183:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2200:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2211:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2193:6:103"},"nodeType":"YulFunctionCall","src":"2193:21:103"},"nodeType":"YulExpressionStatement","src":"2193:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2234:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2245:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2230:3:103"},"nodeType":"YulFunctionCall","src":"2230:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2250:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2223:6:103"},"nodeType":"YulFunctionCall","src":"2223:30:103"},"nodeType":"YulExpressionStatement","src":"2223:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2273:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2284:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2269:3:103"},"nodeType":"YulFunctionCall","src":"2269:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2289:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2262:6:103"},"nodeType":"YulFunctionCall","src":"2262:62:103"},"nodeType":"YulExpressionStatement","src":"2262:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:33:103"},"nodeType":"YulExpressionStatement","src":"2333:33:103"},{"nodeType":"YulAssignment","src":"2375:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2398:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2383:3:103"},"nodeType":"YulFunctionCall","src":"2383:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2375:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2160:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2174:4:103","type":""}],"src":"2009:399:103"},{"body":{"nodeType":"YulBlock","src":"2587:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2615:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2597:6:103"},"nodeType":"YulFunctionCall","src":"2597:21:103"},"nodeType":"YulExpressionStatement","src":"2597:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2649:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2634:3:103"},"nodeType":"YulFunctionCall","src":"2634:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2654:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2627:6:103"},"nodeType":"YulFunctionCall","src":"2627:30:103"},"nodeType":"YulExpressionStatement","src":"2627:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2688:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2673:3:103"},"nodeType":"YulFunctionCall","src":"2673:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2693:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2666:6:103"},"nodeType":"YulFunctionCall","src":"2666:62:103"},"nodeType":"YulExpressionStatement","src":"2666:62:103"},{"nodeType":"YulAssignment","src":"2737:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2749:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2760:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2745:3:103"},"nodeType":"YulFunctionCall","src":"2745:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2737:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2564:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2578:4:103","type":""}],"src":"2413:356:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32t_addresst_addresst_addresst_bytes32t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := abi_decode_address_fromMemory(add(headStart, 96))\n value4 := mload(add(headStart, 128))\n value5 := mload(add(headStart, 160))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526001600c553480156200001657600080fd5b506040516200206d3803806200206d8339810160408190526200003991620004bc565b8585816000826200004a3362000273565b6001600160a01b038116620000b25760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000dc620002c3565b600480546001600160a01b0319166001600160a01b039290921691909117905562000106620002de565b600580546001600160a01b0319166001600160a01b0392909216919091179055620001306200030b565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200018357634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001d792909160ff82169130916101009091046001600160a01b03169062000521565b60405180910390a1505050620002036c4f7261636c655365727669636560981b6200032560201b60201c565b600780546001600160a01b0319166001600160a01b03929092169190911790556040513081527f77dee27cd265ac28cb5ba0d4f1a792ad0425ca4ae8bd0c6253b99ec26ac454109060200160405180910390a15062000267905084848484620003b3565b5050505050506200056c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620002d96541636365737360d01b62000325565b905090565b6000620002d97f436f6d706f6e656e744f776e657253657276696365000000000000000000000062000325565b6000620002d96e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200037057600080fd5b505afa15801562000385573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ab919062000498565b90505b919050565b620003bd62000422565b6001600160a01b03841615620003e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b038316156200041557600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6000546001600160a01b031633146200047e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620000a9565b565b80516001600160a01b0381168114620003ae57600080fd5b600060208284031215620004aa578081fd5b620004b58262000480565b9392505050565b60008060008060008060c08789031215620004d5578182fd5b86519550620004e76020880162000480565b9450620004f76040880162000480565b9350620005076060880162000480565b92506080870151915060a087015190509295509295509295565b84815260808101600385106200054757634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b611af1806200057c6000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063893d20e81161011a578063be169e7e116100ad578063d73cd9921161007c578063d73cd99214610319578063e0815f0d146103d8578063e8f8e1c1146103e0578063f2fde38b146103e8578063ffc79065146103fb576101fb565b8063be169e7e14610319578063c2939d97146103a9578063ca5ddcf3146103b2578063d0e0ba95146103c5576101fb565b8063a18f5ae2116100e9578063a18f5ae214610319578063b3fca9bd14610319578063b6e45ee014610399578063bd1fe5d0146103a1576101fb565b8063893d20e8146103585780638da5cb5b1461036d57806397e873e91461037e5780639a82f89014610391576101fb565b8063423b3b7a116101925780635b16d9b2116101615780635b16d9b2146103385780635d1ca63114610340578063638ce0ba14610348578063715018a614610350576101fb565b8063423b3b7a146102b857806342f6487a1461031057806359dacc6a146103195780635ab1bd5314610321576101fb565b80631b867c63116101ce5780631b867c6314610263578063258d560c1461026d5780633fb80f511461028557806340e58ee5146102a5576101fb565b806315dae03e14610200578063165d35e11461021c57806317d7de7c1461023c5780631865c57d1461024e575b600080fd5b60035460ff166040516102139190611876565b60405180910390f35b61022461040e565b6040516001600160a01b039091168152602001610213565b6001545b604051908152602001610213565b610256610427565b604051610213919061185c565b61026b6104a8565b005b610275610500565b6040519015158152602001610213565b610240610293366004611653565b600e6020526000908152604090205481565b61026b6102b3366004611653565b610530565b6103036102c6366004611696565b604080516020810196909652858101949094526060850192909252608084015260a0808401919091528151808403909101815260c0909201905290565b6040516102139190611849565b61024060105481565b61026b61053b565b61022460035461010090046001600160a01b031690565b601054610240565b600254610240565b61026b610585565b61026b6105d2565b610224600080546001600160a01b0316610422565b6000546001600160a01b0316610224565b61026b61038c366004611696565b6105e4565b610275610761565b600f54610240565b61026b610769565b610240600f5481565b61026b6103c03660046115ee565b6107b6565b61026b6103d3366004611653565b610821565b61027561086b565b610224610874565b61026b6103f63660046115b6565b610888565b61026b6104093660046116ef565b6108fe565b6000610422600a546001600160a01b031690565b905090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561047057600080fd5b505afa158015610484573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906116d0565b6104bd6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146104f65760405162461bcd60e51b81526004016104ed9061188a565b60405180910390fd5b6104fe610b0b565b565b600060025b60035460ff16600281111561052a57634e487b7160e01b600052602160045260246000fd5b14905090565b610538610b48565b50565b6105506810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105805760405162461bcd60e51b81526004016104ed9061188a565b6104fe565b61059a6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105ca5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610ba2565b6105da610b48565b6104fe6000610bcc565b6000858152600d602052604090205485906001600160a01b0316331461065d5760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084016104ed565b6000818152600d602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a26000868152600e602090815260408083205481519283018990529082018790526060820186905260808201859052919060a00160405160208183030381529060405290506106ee8282610c1c565b6000888152600e602090815260408083209290925581518481529081018a9052908101889052606081018790526080810186905260a081018590527fd3d5b0141a5d81ac8c98139f284f1b25fb3061bc81857f74de9a702e382916349060c0015b60405180910390a15050505050505050565b600080610505565b61077e6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146107ae5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610c84565b6107be610b48565b6001600160a01b038416156107e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383161561081457600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6108366810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146108665760405162461bcd60e51b81526004016104ed9061188a565b600255565b60006001610505565b6000610422600b546001600160a01b031690565b610890610b48565b6001600160a01b0381166108f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61053881610bcc565b61090f64517565727960d81b610a81565b6001600160a01b0316336001600160a01b03161461096f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e494544000000000060448201526064016104ed565b6000610985600f54306397e873e960e01b610cae565b9050600080806109978587018761166b565b9250925092506109d3604051806040016040528060098152602001681c1c9bda9958dd125960ba1b8152506109cb85610cd5565b869190610d8d565b6109fd604051806040016040528060058152602001641d585a525960da1b8152506109cb84610cd5565b610a286040518060400160405280600681526020016518dc9bdc125960d21b8152506109cb83610cd5565b6000610a3685601054610db0565b6000818152600e60209081526040918290208b905581518b81529081018390529192507f09ee0ce04d9140f363cd342b605f7aaae55e9c0d84a975c417e55ce074b49332910161074f565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0391906115d2565b90505b919050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b23610b3560025490565b60405190815260200160405180910390a1565b6000546001600160a01b031633146104fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e6610b3560025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a90610c4e90859085906004016118c1565b600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505050565b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d610b3560025490565b610cb661157b565b610cbe61157b565b610cca81868686610dd3565b9150505b9392505050565b6060610cf4604051806040016040528060008152602001600081525090565b6040516020810160405283815280602083015250610d1183610e19565b80825260009067ffffffffffffffff811115610d3d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610d67576020820181803683370190505b5090506000602082019050610d858184602001518560000151610f03565b509392505050565b6080830151610d9c9083610f7d565b6080830151610dab9082610f7d565b505050565b600b54600090610dca906001600160a01b03168484610f94565b90505b92915050565b610ddb61157b565b610deb8560800151610100611027565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b60008082610e2b576000915050610b06565b6fffffffffffffffffffffffffffffffff8316610e6057610e4d6010826118da565b9050610e5d600160801b846118f2565b92505b67ffffffffffffffff8316610e9257610e7a6008826118da565b9050610e8f68010000000000000000846118f2565b92505b63ffffffff8316610ebc57610ea86004826118da565b9050610eb9640100000000846118f2565b92505b61ffff8316610ee257610ed06002826118da565b9050610edf62010000846118f2565b92505b60ff8316610ef857610ef56001826118da565b90505b610cce816020611a39565b60208110610f3b5781518352610f1a6020846118da565b9250610f276020836118da565b9150610f34602082611a39565b9050610f03565b6000198115610f6a576001610f51836020611a39565b610f5d9061010061194c565b610f679190611a39565b90505b9151835183169219169190911790915250565b610f8a826003835161108c565b610dab82826111a7565b600c54600090610fa58160016118da565b600c55835160408086015160808701515191516000936320214ca360e11b93610fdd9386938493923092918a916001916024016117b1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061101d868386846111ce565b9695505050505050565b604080518082019091526060815260006020820152611047602083611a50565b1561106f57611057602083611a50565b611062906020611a39565b61106c90836118da565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116110b7576110b18360e0600585901b16831761133b565b50610dab565b60ff8167ffffffffffffffff16116110f5576110de836018611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166001611360565b61ffff8167ffffffffffffffff16116111345761111d836019611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166002611360565b63ffffffff8167ffffffffffffffff16116111755761115e83601a611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166004611360565b61118a83601b611fe0600586901b161761133b565b506111a18367ffffffffffffffff83166008611360565b50505050565b604080518082019091526060815260006020820152610dca83846000015151848551611386565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600d90925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600a54604051630200057560e51b81526001600160a01b0390911690634000aea09061129190889087908790600401611819565b602060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e39190611633565b610e115760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b60648201526084016104ed565b604080518082019091526060815260006020820152610dca8384600001515184611470565b604080518082019091526060815260006020820152610e118485600001515185856114cc565b60408051808201909152606081526000602082015282518211156113a957600080fd5b60208501516113b883866118da565b11156113eb576113eb856113db876020015187866113d691906118da565b61154d565b6113e6906002611a1a565b611564565b60008086518051876020830101935080888701111561140a5787860182525b505050602084015b6020841061144a57805182526114296020836118da565b91506114366020826118da565b9050611443602085611a39565b9350611412565b51815160001960208690036101000a019081169019919091161790525083949350505050565b604080518082019091526060815260006020820152836020015183106114a5576114a584856020015160026113e69190611a1a565b8351805160208583010184815350808514156114c2576001810182525b5093949350505050565b60408051808201909152606081526000602082015260208501516114f085846118da565b111561150457611504856113db86856118da565b600060016115148461010061194c565b61151e9190611a39565b90508551838682010185831982511617815250805184870111156115425783860181525b509495945050505050565b60008183111561155e575081610dcd565b50919050565b81516115708383611027565b506111a183826111a7565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000602082840312156115c7578081fd5b8135610cce81611aa6565b6000602082840312156115e3578081fd5b8151610cce81611aa6565b60008060008060808587031215611603578283fd5b843561160e81611aa6565b9350602085013561161e81611aa6565b93969395505050506040820135916060013590565b600060208284031215611644578081fd5b81518015158114610cce578182fd5b600060208284031215611664578081fd5b5035919050565b60008060006060848603121561167f578283fd5b505081359360208301359350604090920135919050565b600080600080600060a086880312156116ad578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000602082840312156116e1578081fd5b815160078110610cce578182fd5b600080600060408486031215611703578283fd5b83359250602084013567ffffffffffffffff80821115611721578384fd5b818601915086601f830112611734578384fd5b813581811115611742578485fd5b876020828501011115611753578485fd5b6020830194508093505050509250925092565b60008151808452815b8181101561178b5760208185018101518683018201520161176f565b8181111561179c5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061180a83820185611766565b9b9a5050505050505050505050565b600060018060a01b0385168252836020830152606060408301526118406060830184611766565b95945050505050565b600060208252610dca6020830184611766565b602081016007831061187057611870611a90565b91905290565b602081016003831061187057611870611a90565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260406020830152610e116040830184611766565b600082198211156118ed576118ed611a64565b500190565b60008261190157611901611a7a565b500490565b80825b60018086116119185750611943565b81870482111561192a5761192a611a64565b8086161561193757918102915b9490941c938002611909565b94509492505050565b6000610dca600019848460008261196557506001610cce565b8161197257506000610cce565b81600181146119885760028114611992576119bf565b6001915050610cce565b60ff8411156119a3576119a3611a64565b6001841b9150848211156119b9576119b9611a64565b50610cce565b5060208310610133831016604e8410600b84101617156119f2575081810a838111156119ed576119ed611a64565b610cce565b6119ff8484846001611906565b808604821115611a1157611a11611a64565b02949350505050565b6000816000190483118215151615611a3457611a34611a64565b500290565b600082821015611a4b57611a4b611a64565b500390565b600082611a5f57611a5f611a7a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038116811461053857600080fdfea264697066735822122032e1343ae3cf45cc987315ea3df5115358453bec437a4d8d956c9c7ac8dc31c064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 PUSH1 0xC SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x206D CODESIZE SUB DUP1 PUSH3 0x206D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x39 SWAP2 PUSH3 0x4BC JUMP JUMPDEST DUP6 DUP6 DUP2 PUSH1 0x0 DUP3 PUSH3 0x4A CALLER PUSH3 0x273 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xDC PUSH3 0x2C3 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x106 PUSH3 0x2DE JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x130 PUSH3 0x30B JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x183 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1D7 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP PUSH3 0x203 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH3 0x325 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 MLOAD ADDRESS DUP2 MSTORE PUSH32 0x77DEE27CD265AC28CB5BA0D4F1A792AD0425CA4AE8BD0C6253B99EC26AC45410 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH3 0x267 SWAP1 POP DUP5 DUP5 DUP5 DUP5 PUSH3 0x3B3 JUMP JUMPDEST POP POP POP POP POP POP PUSH3 0x56C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D9 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x325 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D9 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x325 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2D9 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x370 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x385 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x3AB SWAP2 SWAP1 PUSH3 0x498 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3BD PUSH3 0x422 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH3 0x3E9 JUMPI PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH3 0x415 JUMPI PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0xF SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x10 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH3 0x47E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xA9 JUMP JUMPDEST JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x3AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x4AA JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH3 0x4B5 DUP3 PUSH3 0x480 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH3 0x4D5 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP7 MLOAD SWAP6 POP PUSH3 0x4E7 PUSH1 0x20 DUP9 ADD PUSH3 0x480 JUMP JUMPDEST SWAP5 POP PUSH3 0x4F7 PUSH1 0x40 DUP9 ADD PUSH3 0x480 JUMP JUMPDEST SWAP4 POP PUSH3 0x507 PUSH1 0x60 DUP9 ADD PUSH3 0x480 JUMP JUMPDEST SWAP3 POP PUSH1 0x80 DUP8 ADD MLOAD SWAP2 POP PUSH1 0xA0 DUP8 ADD MLOAD SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x547 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AF1 DUP1 PUSH3 0x57C PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1FB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xBE169E7E GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD73CD992 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x3D8 JUMPI DUP1 PUSH4 0xE8F8E1C1 EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0xFFC79065 EQ PUSH2 0x3FB JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xC2939D97 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xCA5DDCF3 EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x3C5 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xB6E45EE0 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x3A1 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0x97E873E9 EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x391 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x423B3B7A GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x5B16D9B2 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x5B16D9B2 EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x350 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x423B3B7A EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x42F6487A EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x321 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x1B867C63 GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3FB80F51 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x2A5 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x165D35E1 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x24E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x1876 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x224 PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH2 0x256 PUSH2 0x427 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4A8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x275 PUSH2 0x500 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH2 0x240 PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x2B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH2 0x530 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x2C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x1849 JUMP JUMPDEST PUSH2 0x240 PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x53B JUMP JUMPDEST PUSH2 0x224 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x585 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x5D2 JUMP JUMPDEST PUSH2 0x224 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x422 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x224 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x38C CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x5E4 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x761 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x769 JUMP JUMPDEST PUSH2 0x240 PUSH1 0xF SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x15EE JUMP JUMPDEST PUSH2 0x7B6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH2 0x821 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x86B JUMP JUMPDEST PUSH2 0x224 PUSH2 0x874 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x888 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x409 CALLDATASIZE PUSH1 0x4 PUSH2 0x16EF JUMP JUMPDEST PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x422 PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x484 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x422 SWAP2 SWAP1 PUSH2 0x16D0 JUMP JUMPDEST PUSH2 0x4BD PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4FE PUSH2 0xB0B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x52A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x538 PUSH2 0xB48 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x550 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x580 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE JUMP JUMPDEST PUSH2 0x59A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE PUSH2 0xBA2 JUMP JUMPDEST PUSH2 0x5DA PUSH2 0xB48 JUMP JUMPDEST PUSH2 0x4FE PUSH1 0x0 PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP6 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x65D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD DUP10 SWAP1 MSTORE SWAP1 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x6EE DUP3 DUP3 PUSH2 0xC1C JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP2 MLOAD DUP5 DUP2 MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xD3D5B0141A5D81AC8C98139F284F1B25FB3061BC81857F74DE9A702E38291634 SWAP1 PUSH1 0xC0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x505 JUMP JUMPDEST PUSH2 0x77E PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE PUSH2 0xC84 JUMP JUMPDEST PUSH2 0x7BE PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x7E9 JUMPI PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x814 JUMPI PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0xF SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x10 SSTORE POP POP JUMP JUMPDEST PUSH2 0x836 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x866 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x505 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x422 PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x890 PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x8F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH2 0x538 DUP2 PUSH2 0xBCC JUMP JUMPDEST PUSH2 0x90F PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x96F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4F52412D3030313A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x0 PUSH2 0x985 PUSH1 0xF SLOAD ADDRESS PUSH4 0x97E873E9 PUSH1 0xE0 SHL PUSH2 0xCAE JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP1 PUSH2 0x997 DUP6 DUP8 ADD DUP8 PUSH2 0x166B JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x9D3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x1C1C9BDA9958DD1259 PUSH1 0xBA SHL DUP2 MSTORE POP PUSH2 0x9CB DUP6 PUSH2 0xCD5 JUMP JUMPDEST DUP7 SWAP2 SWAP1 PUSH2 0xD8D JUMP JUMPDEST PUSH2 0x9FD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x1D585A5259 PUSH1 0xDA SHL DUP2 MSTORE POP PUSH2 0x9CB DUP5 PUSH2 0xCD5 JUMP JUMPDEST PUSH2 0xA28 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x18DC9BDC1259 PUSH1 0xD2 SHL DUP2 MSTORE POP PUSH2 0x9CB DUP4 PUSH2 0xCD5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA36 DUP6 PUSH1 0x10 SLOAD PUSH2 0xDB0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP12 SWAP1 SSTORE DUP2 MLOAD DUP12 DUP2 MSTORE SWAP1 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x9EE0CE04D9140F363CD342B605F7AAAE55E9C0D84A975C417E55CE074B49332 SWAP2 ADD PUSH2 0x74F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xACB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xADF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB03 SWAP2 SWAP1 PUSH2 0x15D2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x33A6EC8D94D03F2C0A2DA3411552B0777613E4220ABD6CE5679DECB30AF09B23 PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x4FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH32 0xDB7E2F5405EA10CAD5583CE31A1BDE125FF32946EDB3CE5972D70EA3F2C214E6 PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7204A9A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE409534A SWAP1 PUSH2 0xC4E SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x18C1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC7C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x1855FCCE92CB172C06FD991F1B19774237130B37CF6806BC01AA4E3A0C359E2D PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCB6 PUSH2 0x157B JUMP JUMPDEST PUSH2 0xCBE PUSH2 0x157B JUMP JUMPDEST PUSH2 0xCCA DUP2 DUP7 DUP7 DUP7 PUSH2 0xDD3 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCF4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH2 0xD11 DUP4 PUSH2 0xE19 JUMP JUMPDEST DUP1 DUP3 MSTORE PUSH1 0x0 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD3D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD67 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD85 DUP2 DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x0 ADD MLOAD PUSH2 0xF03 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xD9C SWAP1 DUP4 PUSH2 0xF7D JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xDAB SWAP1 DUP3 PUSH2 0xF7D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 PUSH2 0xDCA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0xF94 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDDB PUSH2 0x157B JUMP JUMPDEST PUSH2 0xDEB DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x1027 JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xE2B JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0xB06 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH2 0xE60 JUMPI PUSH2 0xE4D PUSH1 0x10 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xE5D PUSH1 0x1 PUSH1 0x80 SHL DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH2 0xE92 JUMPI PUSH2 0xE7A PUSH1 0x8 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xE8F PUSH9 0x10000000000000000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH4 0xFFFFFFFF DUP4 AND PUSH2 0xEBC JUMPI PUSH2 0xEA8 PUSH1 0x4 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xEB9 PUSH5 0x100000000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH2 0xEE2 JUMPI PUSH2 0xED0 PUSH1 0x2 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xEDF PUSH3 0x10000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH1 0xFF DUP4 AND PUSH2 0xEF8 JUMPI PUSH2 0xEF5 PUSH1 0x1 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0xCCE DUP2 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH1 0x20 DUP2 LT PUSH2 0xF3B JUMPI DUP2 MLOAD DUP4 MSTORE PUSH2 0xF1A PUSH1 0x20 DUP5 PUSH2 0x18DA JUMP JUMPDEST SWAP3 POP PUSH2 0xF27 PUSH1 0x20 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP PUSH2 0xF34 PUSH1 0x20 DUP3 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP PUSH2 0xF03 JUMP JUMPDEST PUSH1 0x0 NOT DUP2 ISZERO PUSH2 0xF6A JUMPI PUSH1 0x1 PUSH2 0xF51 DUP4 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH2 0xF5D SWAP1 PUSH2 0x100 PUSH2 0x194C JUMP JUMPDEST PUSH2 0xF67 SWAP2 SWAP1 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 MLOAD DUP4 MLOAD DUP4 AND SWAP3 NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 MSTORE POP JUMP JUMPDEST PUSH2 0xF8A DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x108C JUMP JUMPDEST PUSH2 0xDAB DUP3 DUP3 PUSH2 0x11A7 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x0 SWAP1 PUSH2 0xFA5 DUP2 PUSH1 0x1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0xC SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0xFDD SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x17B1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0x101D DUP7 DUP4 DUP7 DUP5 PUSH2 0x11CE JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x1047 PUSH1 0x20 DUP4 PUSH2 0x1A50 JUMP JUMPDEST ISZERO PUSH2 0x106F JUMPI PUSH2 0x1057 PUSH1 0x20 DUP4 PUSH2 0x1A50 JUMP JUMPDEST PUSH2 0x1062 SWAP1 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH2 0x106C SWAP1 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x10B7 JUMPI PUSH2 0x10B1 DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0xDAB JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x10F5 JUMPI PUSH2 0x10DE DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x1134 JUMPI PUSH2 0x111D DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0x1360 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x1175 JUMPI PUSH2 0x115E DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x118A DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x11A1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0x1360 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xDCA DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0x1386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0x1291 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1819 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12E3 SWAP2 SWAP1 PUSH2 0x1633 JUMP JUMPDEST PUSH2 0xE11 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xDCA DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x1470 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xE11 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x14CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0x13A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x13B8 DUP4 DUP7 PUSH2 0x18DA JUMP JUMPDEST GT ISZERO PUSH2 0x13EB JUMPI PUSH2 0x13EB DUP6 PUSH2 0x13DB DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0x13D6 SWAP2 SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH2 0x154D JUMP JUMPDEST PUSH2 0x13E6 SWAP1 PUSH1 0x2 PUSH2 0x1A1A JUMP JUMPDEST PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0x140A JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0x144A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0x1429 PUSH1 0x20 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1436 PUSH1 0x20 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0x1443 PUSH1 0x20 DUP6 PUSH2 0x1A39 JUMP JUMPDEST SWAP4 POP PUSH2 0x1412 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x14A5 JUMPI PUSH2 0x14A5 DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0x13E6 SWAP2 SWAP1 PUSH2 0x1A1A JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 EQ ISZERO PUSH2 0x14C2 JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x14F0 DUP6 DUP5 PUSH2 0x18DA JUMP JUMPDEST GT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1504 DUP6 PUSH2 0x13DB DUP7 DUP6 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1514 DUP5 PUSH2 0x100 PUSH2 0x194C JUMP JUMPDEST PUSH2 0x151E SWAP2 SWAP1 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0x1542 JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x155E JUMPI POP DUP2 PUSH2 0xDCD JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x1570 DUP4 DUP4 PUSH2 0x1027 JUMP JUMPDEST POP PUSH2 0x11A1 DUP4 DUP3 PUSH2 0x11A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15C7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCCE DUP2 PUSH2 0x1AA6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15E3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCCE DUP2 PUSH2 0x1AA6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1603 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x160E DUP2 PUSH2 0x1AA6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x161E DUP2 PUSH2 0x1AA6 JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1644 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xCCE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1664 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x167F JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x16AD JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP4 CALLDATALOAD SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16E1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0xCCE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1703 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1721 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1734 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1742 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1753 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x178B JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x176F JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x179C JUMPI DUP3 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x180A DUP4 DUP3 ADD DUP6 PUSH2 0x1766 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1840 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xDCA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x1870 JUMPI PUSH2 0x1870 PUSH2 0x1A90 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x1870 JUMPI PUSH2 0x1870 PUSH2 0x1A90 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP3 MSTORE PUSH1 0x40 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xE11 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x18ED JUMPI PUSH2 0x18ED PUSH2 0x1A64 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1901 JUMPI PUSH2 0x1901 PUSH2 0x1A7A JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP1 DUP7 GT PUSH2 0x1918 JUMPI POP PUSH2 0x1943 JUMP JUMPDEST DUP2 DUP8 DIV DUP3 GT ISZERO PUSH2 0x192A JUMPI PUSH2 0x192A PUSH2 0x1A64 JUMP JUMPDEST DUP1 DUP7 AND ISZERO PUSH2 0x1937 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP5 SWAP1 SWAP5 SHR SWAP4 DUP1 MUL PUSH2 0x1909 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDCA PUSH1 0x0 NOT DUP5 DUP5 PUSH1 0x0 DUP3 PUSH2 0x1965 JUMPI POP PUSH1 0x1 PUSH2 0xCCE JUMP JUMPDEST DUP2 PUSH2 0x1972 JUMPI POP PUSH1 0x0 PUSH2 0xCCE JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1988 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1992 JUMPI PUSH2 0x19BF JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0xCCE JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x19A3 JUMPI PUSH2 0x19A3 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x1 DUP5 SHL SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x19B9 JUMPI PUSH2 0x19B9 PUSH2 0x1A64 JUMP JUMPDEST POP PUSH2 0xCCE JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x19F2 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x19ED JUMPI PUSH2 0x19ED PUSH2 0x1A64 JUMP JUMPDEST PUSH2 0xCCE JUMP JUMPDEST PUSH2 0x19FF DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x1906 JUMP JUMPDEST DUP1 DUP7 DIV DUP3 GT ISZERO PUSH2 0x1A11 JUMPI PUSH2 0x1A11 PUSH2 0x1A64 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1A34 JUMPI PUSH2 0x1A34 PUSH2 0x1A64 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1A4B JUMPI PUSH2 0x1A4B PUSH2 0x1A64 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A5F JUMPI PUSH2 0x1A5F PUSH2 0x1A7A JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x538 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0xE1 CALLVALUE GASPRICE 0xE3 0xCF GASLIMIT 0xCC SWAP9 PUSH20 0x15EA3DF5115358453BEC437A4D8D956C9C7AC8DC BALANCE 0xC0 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"208:3907:66:-:0;;;1291:1:1;1258:34;;769:368:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;971:5;978:9;971:5;580:20:17;978:9:66;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;2211:2:103;1619:70:12::1;::::0;::::1;2193:21:103::0;2250:2;2230:18;;;2223:30;2289:34;2269:18;;;2262:62;-1:-1:-1;;;2340:18:103;;;2333:33;2383:19;;1619:70:12::1;;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;1466:657:::0;;;660:36:17::1;-1:-1:-1::0;;;660:19:17::1;;;:36;;:::i;:::-;628:14;:69:::0;;-1:-1:-1;;;;;;628:69:17::1;-1:-1:-1::0;;;;;628:69:17;;;::::1;::::0;;;::::1;::::0;;713:31:::1;::::0;738:4:::1;1144:51:103::0;;713:31:17::1;::::0;1132:2:103;1117:18;713:31:17::1;;;;;;;-1:-1:-1::0;1003:127:66::1;::::0;-1:-1:-1;1037:15:66;1067:18;1100:6;1121:8;1003:20:::1;:127::i;:::-;769:368:::0;;;;;;208:3907;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1352:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1325:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;;4875:145;;;;:::o;1143:436:66:-;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;;;1352:29:66;::::1;::::0;1348:74:::1;;8688:6:1::0;:40;;-1:-1:-1;;;;;;8688:40:1;-1:-1:-1;;;;;8688:40:1;;;;;1385:34:66::1;-1:-1:-1::0;;;;;1435:32:66;::::1;::::0;1431:81:::1;;8457:8:1::0;:43;;-1:-1:-1;;;;;;8457:43:1;-1:-1:-1;;;;;8457:43:1;;;;;1471:38:66::1;1530:5;:14:::0;;;;1554:7:::1;:18:::0;-1:-1:-1;;1143:436:66:o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;2615:2:103;1414:68:41;;;2597:21:103;;;2634:18;;;2627:30;2693:34;2673:18;;;2666:62;2745:18;;1414:68:41;2587:182:103;1414:68:41;1359:130::o;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;196:218;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:574::-;;;;;;;627:3;615:9;606:7;602:23;598:33;595:2;;;649:6;641;634:22;595:2;683:9;677:16;667:26;;712:49;757:2;746:9;742:18;712:49;:::i;:::-;702:59;;780:49;825:2;814:9;810:18;780:49;:::i;:::-;770:59;;848:49;893:2;882:9;878:18;848:49;:::i;:::-;838:59;;937:3;926:9;922:19;916:26;906:36;;982:3;971:9;967:19;961:26;951:36;;585:408;;;;;;;;:::o;1388:616::-;1635:25;;;1622:3;1607:19;;1690:1;1679:13;;1669:2;;1735:10;1730:3;1726:20;1723:1;1716:31;1770:4;1767:1;1760:15;1798:4;1795:1;1788:15;1669:2;1844;1829:18;;1822:34;;;;-1:-1:-1;;;;;1930:15:103;;;1925:2;1910:18;;1903:43;1982:15;;1977:2;1962:18;;;1955:43;1589:415;;-1:-1:-1;1589:415:103:o;2587:182::-;208:3907:66;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:14310:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"663:414:103","statements":[{"body":{"nodeType":"YulBlock","src":"710:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"719:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"727:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"712:6:103"},"nodeType":"YulFunctionCall","src":"712:22:103"},"nodeType":"YulExpressionStatement","src":"712:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"684:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"693:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"680:3:103"},"nodeType":"YulFunctionCall","src":"680:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"705:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"676:3:103"},"nodeType":"YulFunctionCall","src":"676:33:103"},"nodeType":"YulIf","src":"673:2:103"},{"nodeType":"YulVariableDeclaration","src":"745:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"771:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"758:12:103"},"nodeType":"YulFunctionCall","src":"758:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"749:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"815:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"790:24:103"},"nodeType":"YulFunctionCall","src":"790:31:103"},"nodeType":"YulExpressionStatement","src":"790:31:103"},{"nodeType":"YulAssignment","src":"830:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"840:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"830:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"854:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"886:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"897:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"882:3:103"},"nodeType":"YulFunctionCall","src":"882:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"869:12:103"},"nodeType":"YulFunctionCall","src":"869:32:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"858:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"935:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"910:24:103"},"nodeType":"YulFunctionCall","src":"910:33:103"},"nodeType":"YulExpressionStatement","src":"910:33:103"},{"nodeType":"YulAssignment","src":"952:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"962:7:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"952:6:103"}]},{"nodeType":"YulAssignment","src":"978:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1005:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1016:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1001:3:103"},"nodeType":"YulFunctionCall","src":"1001:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"988:12:103"},"nodeType":"YulFunctionCall","src":"988:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"978:6:103"}]},{"nodeType":"YulAssignment","src":"1029:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1056:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1067:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1052:3:103"},"nodeType":"YulFunctionCall","src":"1052:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1039:12:103"},"nodeType":"YulFunctionCall","src":"1039:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1029:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"605:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"616:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"628:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"636:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"644:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"652:6:103","type":""}],"src":"542:535:103"},{"body":{"nodeType":"YulBlock","src":"1160:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1206:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1215:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1223:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1208:6:103"},"nodeType":"YulFunctionCall","src":"1208:22:103"},"nodeType":"YulExpressionStatement","src":"1208:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1181:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1190:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1177:3:103"},"nodeType":"YulFunctionCall","src":"1177:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1202:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1173:3:103"},"nodeType":"YulFunctionCall","src":"1173:32:103"},"nodeType":"YulIf","src":"1170:2:103"},{"nodeType":"YulVariableDeclaration","src":"1241:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1260:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1254:5:103"},"nodeType":"YulFunctionCall","src":"1254:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1245:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1325:6:103"},"nodeType":"YulFunctionCall","src":"1325:22:103"},"nodeType":"YulExpressionStatement","src":"1325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1292:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1313:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1306:6:103"},"nodeType":"YulFunctionCall","src":"1306:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1299:6:103"},"nodeType":"YulFunctionCall","src":"1299:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1289:2:103"},"nodeType":"YulFunctionCall","src":"1289:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1282:6:103"},"nodeType":"YulFunctionCall","src":"1282:40:103"},"nodeType":"YulIf","src":"1279:2:103"},{"nodeType":"YulAssignment","src":"1358:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1368:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1358:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1126:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1137:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1149:6:103","type":""}],"src":"1082:297:103"},{"body":{"nodeType":"YulBlock","src":"1454:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1500:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1509:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1517:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1502:6:103"},"nodeType":"YulFunctionCall","src":"1502:22:103"},"nodeType":"YulExpressionStatement","src":"1502:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1475:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1484:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1471:3:103"},"nodeType":"YulFunctionCall","src":"1471:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1496:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1467:3:103"},"nodeType":"YulFunctionCall","src":"1467:32:103"},"nodeType":"YulIf","src":"1464:2:103"},{"nodeType":"YulAssignment","src":"1535:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1558:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1545:12:103"},"nodeType":"YulFunctionCall","src":"1545:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1535:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1420:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1431:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1443:6:103","type":""}],"src":"1384:190:103"},{"body":{"nodeType":"YulBlock","src":"1683:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"1729:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1738:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1746:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1731:6:103"},"nodeType":"YulFunctionCall","src":"1731:22:103"},"nodeType":"YulExpressionStatement","src":"1731:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1704:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1713:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1700:3:103"},"nodeType":"YulFunctionCall","src":"1700:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1725:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1696:3:103"},"nodeType":"YulFunctionCall","src":"1696:32:103"},"nodeType":"YulIf","src":"1693:2:103"},{"nodeType":"YulAssignment","src":"1764:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1787:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1774:12:103"},"nodeType":"YulFunctionCall","src":"1774:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1764:6:103"}]},{"nodeType":"YulAssignment","src":"1806:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1829:3:103"},"nodeType":"YulFunctionCall","src":"1829:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1816:12:103"},"nodeType":"YulFunctionCall","src":"1816:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1806:6:103"}]},{"nodeType":"YulAssignment","src":"1857:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1884:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1895:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1880:3:103"},"nodeType":"YulFunctionCall","src":"1880:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1867:12:103"},"nodeType":"YulFunctionCall","src":"1867:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1857:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1633:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1644:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1656:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1664:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1672:6:103","type":""}],"src":"1579:326:103"},{"body":{"nodeType":"YulBlock","src":"2048:326:103","statements":[{"body":{"nodeType":"YulBlock","src":"2095:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2104:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"2112:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2097:6:103"},"nodeType":"YulFunctionCall","src":"2097:22:103"},"nodeType":"YulExpressionStatement","src":"2097:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2069:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2078:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2065:3:103"},"nodeType":"YulFunctionCall","src":"2065:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2090:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2061:3:103"},"nodeType":"YulFunctionCall","src":"2061:33:103"},"nodeType":"YulIf","src":"2058:2:103"},{"nodeType":"YulAssignment","src":"2130:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2153:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2140:12:103"},"nodeType":"YulFunctionCall","src":"2140:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2130:6:103"}]},{"nodeType":"YulAssignment","src":"2172:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2199:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2210:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2195:3:103"},"nodeType":"YulFunctionCall","src":"2195:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2182:12:103"},"nodeType":"YulFunctionCall","src":"2182:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2172:6:103"}]},{"nodeType":"YulAssignment","src":"2223:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2261:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2246:3:103"},"nodeType":"YulFunctionCall","src":"2246:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2233:12:103"},"nodeType":"YulFunctionCall","src":"2233:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2223:6:103"}]},{"nodeType":"YulAssignment","src":"2274:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2301:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2312:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2297:3:103"},"nodeType":"YulFunctionCall","src":"2297:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2284:12:103"},"nodeType":"YulFunctionCall","src":"2284:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2274:6:103"}]},{"nodeType":"YulAssignment","src":"2325:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2363:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2348:3:103"},"nodeType":"YulFunctionCall","src":"2348:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2335:12:103"},"nodeType":"YulFunctionCall","src":"2335:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2325:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1982:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1993:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2005:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2013:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2021:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2029:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2037:6:103","type":""}],"src":"1910:464:103"},{"body":{"nodeType":"YulBlock","src":"2479:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"2525:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2534:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2542:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2527:6:103"},"nodeType":"YulFunctionCall","src":"2527:22:103"},"nodeType":"YulExpressionStatement","src":"2527:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2500:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2509:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2496:3:103"},"nodeType":"YulFunctionCall","src":"2496:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2521:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2492:3:103"},"nodeType":"YulFunctionCall","src":"2492:32:103"},"nodeType":"YulIf","src":"2489:2:103"},{"nodeType":"YulVariableDeclaration","src":"2560:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2579:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2573:5:103"},"nodeType":"YulFunctionCall","src":"2573:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2564:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2622:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2631:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2639:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2624:6:103"},"nodeType":"YulFunctionCall","src":"2624:22:103"},"nodeType":"YulExpressionStatement","src":"2624:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2611:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2618:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2608:2:103"},"nodeType":"YulFunctionCall","src":"2608:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2601:6:103"},"nodeType":"YulFunctionCall","src":"2601:20:103"},"nodeType":"YulIf","src":"2598:2:103"},{"nodeType":"YulAssignment","src":"2657:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2667:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2657:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2445:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2456:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2468:6:103","type":""}],"src":"2379:299:103"},{"body":{"nodeType":"YulBlock","src":"2753:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2799:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2808:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2816:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2801:6:103"},"nodeType":"YulFunctionCall","src":"2801:22:103"},"nodeType":"YulExpressionStatement","src":"2801:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2774:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2783:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2770:3:103"},"nodeType":"YulFunctionCall","src":"2770:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2795:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2766:3:103"},"nodeType":"YulFunctionCall","src":"2766:32:103"},"nodeType":"YulIf","src":"2763:2:103"},{"nodeType":"YulAssignment","src":"2834:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2857:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2844:12:103"},"nodeType":"YulFunctionCall","src":"2844:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2834:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2719:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2730:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2742:6:103","type":""}],"src":"2683:190:103"},{"body":{"nodeType":"YulBlock","src":"2984:603:103","statements":[{"body":{"nodeType":"YulBlock","src":"3030:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3039:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3047:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3032:6:103"},"nodeType":"YulFunctionCall","src":"3032:22:103"},"nodeType":"YulExpressionStatement","src":"3032:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3005:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3014:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3001:3:103"},"nodeType":"YulFunctionCall","src":"3001:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3026:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2997:3:103"},"nodeType":"YulFunctionCall","src":"2997:32:103"},"nodeType":"YulIf","src":"2994:2:103"},{"nodeType":"YulAssignment","src":"3065:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3088:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3075:12:103"},"nodeType":"YulFunctionCall","src":"3075:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3065:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3107:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3138:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3149:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3134:3:103"},"nodeType":"YulFunctionCall","src":"3134:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3121:12:103"},"nodeType":"YulFunctionCall","src":"3121:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3111:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3162:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3172:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3166:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3217:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3226:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3234:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3219:6:103"},"nodeType":"YulFunctionCall","src":"3219:22:103"},"nodeType":"YulExpressionStatement","src":"3219:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3205:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3213:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3202:2:103"},"nodeType":"YulFunctionCall","src":"3202:14:103"},"nodeType":"YulIf","src":"3199:2:103"},{"nodeType":"YulVariableDeclaration","src":"3252:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3266:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3277:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3262:3:103"},"nodeType":"YulFunctionCall","src":"3262:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3256:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3332:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3341:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3349:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3334:6:103"},"nodeType":"YulFunctionCall","src":"3334:22:103"},"nodeType":"YulExpressionStatement","src":"3334:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3311:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3315:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3307:3:103"},"nodeType":"YulFunctionCall","src":"3307:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3322:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3303:3:103"},"nodeType":"YulFunctionCall","src":"3303:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3296:6:103"},"nodeType":"YulFunctionCall","src":"3296:35:103"},"nodeType":"YulIf","src":"3293:2:103"},{"nodeType":"YulVariableDeclaration","src":"3367:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3394:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3381:12:103"},"nodeType":"YulFunctionCall","src":"3381:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3371:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3424:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3433:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3441:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3426:6:103"},"nodeType":"YulFunctionCall","src":"3426:22:103"},"nodeType":"YulExpressionStatement","src":"3426:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3412:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3420:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3409:2:103"},"nodeType":"YulFunctionCall","src":"3409:14:103"},"nodeType":"YulIf","src":"3406:2:103"},{"body":{"nodeType":"YulBlock","src":"3500:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3509:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3517:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3502:6:103"},"nodeType":"YulFunctionCall","src":"3502:22:103"},"nodeType":"YulExpressionStatement","src":"3502:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3473:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"3477:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3469:3:103"},"nodeType":"YulFunctionCall","src":"3469:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3465:3:103"},"nodeType":"YulFunctionCall","src":"3465:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3491:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3462:2:103"},"nodeType":"YulFunctionCall","src":"3462:37:103"},"nodeType":"YulIf","src":"3459:2:103"},{"nodeType":"YulAssignment","src":"3535:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3549:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3553:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3545:3:103"},"nodeType":"YulFunctionCall","src":"3545:11:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3535:6:103"}]},{"nodeType":"YulAssignment","src":"3565:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"3575:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3565:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2934:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2945:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2957:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2965:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2973:6:103","type":""}],"src":"2878:709:103"},{"body":{"nodeType":"YulBlock","src":"3641:426:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3651:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3671:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3665:5:103"},"nodeType":"YulFunctionCall","src":"3665:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3655:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3693:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3698:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3686:6:103"},"nodeType":"YulFunctionCall","src":"3686:19:103"},"nodeType":"YulExpressionStatement","src":"3686:19:103"},{"nodeType":"YulVariableDeclaration","src":"3714:12:103","value":{"name":"end","nodeType":"YulIdentifier","src":"3723:3:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3718:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3787:110:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3801:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3811:4:103","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3805:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3843:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3848:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3839:3:103"},"nodeType":"YulFunctionCall","src":"3839:11:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3852:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3835:3:103"},"nodeType":"YulFunctionCall","src":"3835:20:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3871:5:103"},{"name":"i","nodeType":"YulIdentifier","src":"3878:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3867:3:103"},"nodeType":"YulFunctionCall","src":"3867:13:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3882:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3863:3:103"},"nodeType":"YulFunctionCall","src":"3863:22:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3857:5:103"},"nodeType":"YulFunctionCall","src":"3857:29:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3828:6:103"},"nodeType":"YulFunctionCall","src":"3828:59:103"},"nodeType":"YulExpressionStatement","src":"3828:59:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3746:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3749:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3743:2:103"},"nodeType":"YulFunctionCall","src":"3743:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3757:21:103","statements":[{"nodeType":"YulAssignment","src":"3759:17:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3768:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"3771:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3764:3:103"},"nodeType":"YulFunctionCall","src":"3764:12:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3759:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"3739:3:103","statements":[]},"src":"3735:162:103"},{"body":{"nodeType":"YulBlock","src":"3931:64:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3960:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3965:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3956:3:103"},"nodeType":"YulFunctionCall","src":"3956:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3974:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3952:3:103"},"nodeType":"YulFunctionCall","src":"3952:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"3981:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3945:6:103"},"nodeType":"YulFunctionCall","src":"3945:40:103"},"nodeType":"YulExpressionStatement","src":"3945:40:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3912:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3915:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3909:2:103"},"nodeType":"YulFunctionCall","src":"3909:13:103"},"nodeType":"YulIf","src":"3906:2:103"},{"nodeType":"YulAssignment","src":"4004:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4019:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4032:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4040:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4049:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4045:3:103"},"nodeType":"YulFunctionCall","src":"4045:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4024:3:103"},"nodeType":"YulFunctionCall","src":"4024:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4015:3:103"},"nodeType":"YulFunctionCall","src":"4015:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"4056:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4011:3:103"},"nodeType":"YulFunctionCall","src":"4011:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4004:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3618:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3625:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3633:3:103","type":""}],"src":"3592:475:103"},{"body":{"nodeType":"YulBlock","src":"4242:147:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4259:3:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4272:2:103","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"4276:6:103"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4268:3:103"},"nodeType":"YulFunctionCall","src":"4268:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4289:26:103","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4285:3:103"},"nodeType":"YulFunctionCall","src":"4285:31:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4264:3:103"},"nodeType":"YulFunctionCall","src":"4264:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4252:6:103"},"nodeType":"YulFunctionCall","src":"4252:66:103"},"nodeType":"YulExpressionStatement","src":"4252:66:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4338:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4343:2:103","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4334:3:103"},"nodeType":"YulFunctionCall","src":"4334:12:103"},{"name":"value1","nodeType":"YulIdentifier","src":"4348:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4327:6:103"},"nodeType":"YulFunctionCall","src":"4327:28:103"},"nodeType":"YulExpressionStatement","src":"4327:28:103"},{"nodeType":"YulAssignment","src":"4364:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4375:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4380:2:103","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4371:3:103"},"nodeType":"YulFunctionCall","src":"4371:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4364:3:103"}]}]},"name":"abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4210:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4215:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4223:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4234:3:103","type":""}],"src":"4072:317:103"},{"body":{"nodeType":"YulBlock","src":"4495:102:103","statements":[{"nodeType":"YulAssignment","src":"4505:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4528:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4513:3:103"},"nodeType":"YulFunctionCall","src":"4513:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4505:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4547:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4562:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4578:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4583:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4574:3:103"},"nodeType":"YulFunctionCall","src":"4574:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4587:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4570:3:103"},"nodeType":"YulFunctionCall","src":"4570:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4558:3:103"},"nodeType":"YulFunctionCall","src":"4558:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4540:6:103"},"nodeType":"YulFunctionCall","src":"4540:51:103"},"nodeType":"YulExpressionStatement","src":"4540:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4464:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4475:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4486:4:103","type":""}],"src":"4394:203:103"},{"body":{"nodeType":"YulBlock","src":"4915:508:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4925:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4935:3:103","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4929:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4947:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4965:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4970:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4961:3:103"},"nodeType":"YulFunctionCall","src":"4961:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4974:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4957:3:103"},"nodeType":"YulFunctionCall","src":"4957:19:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4951:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5007:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5015:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5003:3:103"},"nodeType":"YulFunctionCall","src":"5003:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4985:6:103"},"nodeType":"YulFunctionCall","src":"4985:34:103"},"nodeType":"YulExpressionStatement","src":"4985:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5039:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5050:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5035:3:103"},"nodeType":"YulFunctionCall","src":"5035:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5055:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5028:6:103"},"nodeType":"YulFunctionCall","src":"5028:34:103"},"nodeType":"YulExpressionStatement","src":"5028:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5082:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5093:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5078:3:103"},"nodeType":"YulFunctionCall","src":"5078:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5098:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5071:6:103"},"nodeType":"YulFunctionCall","src":"5071:34:103"},"nodeType":"YulExpressionStatement","src":"5071:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5125:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5136:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5121:3:103"},"nodeType":"YulFunctionCall","src":"5121:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5145:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5153:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5141:3:103"},"nodeType":"YulFunctionCall","src":"5141:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5114:6:103"},"nodeType":"YulFunctionCall","src":"5114:43:103"},"nodeType":"YulExpressionStatement","src":"5114:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5177:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5188:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5173:3:103"},"nodeType":"YulFunctionCall","src":"5173:19:103"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"5198:6:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5210:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5215:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5206:3:103"},"nodeType":"YulFunctionCall","src":"5206:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5194:3:103"},"nodeType":"YulFunctionCall","src":"5194:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5166:6:103"},"nodeType":"YulFunctionCall","src":"5166:62:103"},"nodeType":"YulExpressionStatement","src":"5166:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5259:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5244:3:103"},"nodeType":"YulFunctionCall","src":"5244:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"5265:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5237:6:103"},"nodeType":"YulFunctionCall","src":"5237:35:103"},"nodeType":"YulExpressionStatement","src":"5237:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5303:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5288:3:103"},"nodeType":"YulFunctionCall","src":"5288:19:103"},{"name":"value6","nodeType":"YulIdentifier","src":"5309:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5281:6:103"},"nodeType":"YulFunctionCall","src":"5281:35:103"},"nodeType":"YulExpressionStatement","src":"5281:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5336:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5347:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5332:3:103"},"nodeType":"YulFunctionCall","src":"5332:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5353:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5325:6:103"},"nodeType":"YulFunctionCall","src":"5325:31:103"},"nodeType":"YulExpressionStatement","src":"5325:31:103"},{"nodeType":"YulAssignment","src":"5365:52:103","value":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"5390:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5402:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5413:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5398:3:103"},"nodeType":"YulFunctionCall","src":"5398:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5373:16:103"},"nodeType":"YulFunctionCall","src":"5373:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5365:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4828:9:103","type":""},{"name":"value7","nodeType":"YulTypedName","src":"4839:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"4847:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"4855:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4863:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4871:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4879:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4887:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4895:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4906:4:103","type":""}],"src":"4602:821:103"},{"body":{"nodeType":"YulBlock","src":"5603:210:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5620:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5635:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5651:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5656:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5647:3:103"},"nodeType":"YulFunctionCall","src":"5647:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5660:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5643:3:103"},"nodeType":"YulFunctionCall","src":"5643:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5631:3:103"},"nodeType":"YulFunctionCall","src":"5631:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5613:6:103"},"nodeType":"YulFunctionCall","src":"5613:51:103"},"nodeType":"YulExpressionStatement","src":"5613:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5684:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5695:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5680:3:103"},"nodeType":"YulFunctionCall","src":"5680:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5700:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5673:6:103"},"nodeType":"YulFunctionCall","src":"5673:34:103"},"nodeType":"YulExpressionStatement","src":"5673:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5723:3:103"},"nodeType":"YulFunctionCall","src":"5723:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5743:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5716:6:103"},"nodeType":"YulFunctionCall","src":"5716:30:103"},"nodeType":"YulExpressionStatement","src":"5716:30:103"},{"nodeType":"YulAssignment","src":"5755:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5780:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5803:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5788:3:103"},"nodeType":"YulFunctionCall","src":"5788:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5763:16:103"},"nodeType":"YulFunctionCall","src":"5763:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5755:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5556:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5567:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5575:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5583:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5594:4:103","type":""}],"src":"5428:385:103"},{"body":{"nodeType":"YulBlock","src":"5913:92:103","statements":[{"nodeType":"YulAssignment","src":"5923:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5935:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5946:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5931:3:103"},"nodeType":"YulFunctionCall","src":"5931:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5923:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5965:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5990:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5983:6:103"},"nodeType":"YulFunctionCall","src":"5983:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5976:6:103"},"nodeType":"YulFunctionCall","src":"5976:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5958:6:103"},"nodeType":"YulFunctionCall","src":"5958:41:103"},"nodeType":"YulExpressionStatement","src":"5958:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5882:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5893:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5904:4:103","type":""}],"src":"5818:187:103"},{"body":{"nodeType":"YulBlock","src":"6111:76:103","statements":[{"nodeType":"YulAssignment","src":"6121:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6144:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6129:3:103"},"nodeType":"YulFunctionCall","src":"6129:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6121:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6163:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6174:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6156:6:103"},"nodeType":"YulFunctionCall","src":"6156:25:103"},"nodeType":"YulExpressionStatement","src":"6156:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6080:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6091:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6102:4:103","type":""}],"src":"6010:177:103"},{"body":{"nodeType":"YulBlock","src":"6405:250:103","statements":[{"nodeType":"YulAssignment","src":"6415:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6427:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6438:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6423:3:103"},"nodeType":"YulFunctionCall","src":"6423:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6415:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6458:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6469:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6451:6:103"},"nodeType":"YulFunctionCall","src":"6451:25:103"},"nodeType":"YulExpressionStatement","src":"6451:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6507:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6492:3:103"},"nodeType":"YulFunctionCall","src":"6492:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6512:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6485:6:103"},"nodeType":"YulFunctionCall","src":"6485:34:103"},"nodeType":"YulExpressionStatement","src":"6485:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6539:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6550:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6535:3:103"},"nodeType":"YulFunctionCall","src":"6535:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6555:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6528:6:103"},"nodeType":"YulFunctionCall","src":"6528:34:103"},"nodeType":"YulExpressionStatement","src":"6528:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6582:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6593:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6578:3:103"},"nodeType":"YulFunctionCall","src":"6578:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"6598:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6571:6:103"},"nodeType":"YulFunctionCall","src":"6571:34:103"},"nodeType":"YulExpressionStatement","src":"6571:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6625:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6636:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6621:3:103"},"nodeType":"YulFunctionCall","src":"6621:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6642:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6614:6:103"},"nodeType":"YulFunctionCall","src":"6614:35:103"},"nodeType":"YulExpressionStatement","src":"6614:35:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6342:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6353:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6361:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6369:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6377:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6385:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6396:4:103","type":""}],"src":"6192:463:103"},{"body":{"nodeType":"YulBlock","src":"6845:206:103","statements":[{"nodeType":"YulAssignment","src":"6855:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6867:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6878:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6863:3:103"},"nodeType":"YulFunctionCall","src":"6863:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6855:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6898:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6909:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6891:6:103"},"nodeType":"YulFunctionCall","src":"6891:25:103"},"nodeType":"YulExpressionStatement","src":"6891:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6936:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6947:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6932:3:103"},"nodeType":"YulFunctionCall","src":"6932:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6952:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6925:6:103"},"nodeType":"YulFunctionCall","src":"6925:34:103"},"nodeType":"YulExpressionStatement","src":"6925:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6979:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6990:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6975:3:103"},"nodeType":"YulFunctionCall","src":"6975:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6995:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6968:6:103"},"nodeType":"YulFunctionCall","src":"6968:34:103"},"nodeType":"YulExpressionStatement","src":"6968:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7022:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7033:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7018:3:103"},"nodeType":"YulFunctionCall","src":"7018:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"7038:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7011:6:103"},"nodeType":"YulFunctionCall","src":"7011:34:103"},"nodeType":"YulExpressionStatement","src":"7011:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6790:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6801:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6809:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6817:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6825:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6836:4:103","type":""}],"src":"6660:391:103"},{"body":{"nodeType":"YulBlock","src":"7175:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7203:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7185:6:103"},"nodeType":"YulFunctionCall","src":"7185:21:103"},"nodeType":"YulExpressionStatement","src":"7185:21:103"},{"nodeType":"YulAssignment","src":"7215:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7240:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7252:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7263:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7248:3:103"},"nodeType":"YulFunctionCall","src":"7248:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7223:16:103"},"nodeType":"YulFunctionCall","src":"7223:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7215:4:103"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7144:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7155:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7166:4:103","type":""}],"src":"7056:217:103"},{"body":{"nodeType":"YulBlock","src":"7397:102:103","statements":[{"nodeType":"YulAssignment","src":"7407:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7419:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7430:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7415:3:103"},"nodeType":"YulFunctionCall","src":"7415:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7407:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7449:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7464:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7480:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7485:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7476:3:103"},"nodeType":"YulFunctionCall","src":"7476:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7489:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7472:3:103"},"nodeType":"YulFunctionCall","src":"7472:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7460:3:103"},"nodeType":"YulFunctionCall","src":"7460:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7442:6:103"},"nodeType":"YulFunctionCall","src":"7442:51:103"},"nodeType":"YulExpressionStatement","src":"7442:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7366:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7377:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7388:4:103","type":""}],"src":"7278:221:103"},{"body":{"nodeType":"YulBlock","src":"7622:132:103","statements":[{"nodeType":"YulAssignment","src":"7632:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7655:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7640:3:103"},"nodeType":"YulFunctionCall","src":"7640:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7632:4:103"}]},{"body":{"nodeType":"YulBlock","src":"7692:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"7694:16:103"},"nodeType":"YulFunctionCall","src":"7694:18:103"},"nodeType":"YulExpressionStatement","src":"7694:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7680:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7688:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7677:2:103"},"nodeType":"YulFunctionCall","src":"7677:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7670:6:103"},"nodeType":"YulFunctionCall","src":"7670:21:103"},"nodeType":"YulIf","src":"7667:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7730:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7741:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7723:6:103"},"nodeType":"YulFunctionCall","src":"7723:25:103"},"nodeType":"YulExpressionStatement","src":"7723:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7591:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7602:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7613:4:103","type":""}],"src":"7504:250:103"},{"body":{"nodeType":"YulBlock","src":"7876:132:103","statements":[{"nodeType":"YulAssignment","src":"7886:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7898:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7909:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7894:3:103"},"nodeType":"YulFunctionCall","src":"7894:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7886:4:103"}]},{"body":{"nodeType":"YulBlock","src":"7946:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"7948:16:103"},"nodeType":"YulFunctionCall","src":"7948:18:103"},"nodeType":"YulExpressionStatement","src":"7948:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7934:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7942:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7931:2:103"},"nodeType":"YulFunctionCall","src":"7931:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7924:6:103"},"nodeType":"YulFunctionCall","src":"7924:21:103"},"nodeType":"YulIf","src":"7921:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7984:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7995:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7977:6:103"},"nodeType":"YulFunctionCall","src":"7977:25:103"},"nodeType":"YulExpressionStatement","src":"7977:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7845:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7856:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7867:4:103","type":""}],"src":"7759:249:103"},{"body":{"nodeType":"YulBlock","src":"8187:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8204:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8215:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8197:6:103"},"nodeType":"YulFunctionCall","src":"8197:21:103"},"nodeType":"YulExpressionStatement","src":"8197:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8238:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8249:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8234:3:103"},"nodeType":"YulFunctionCall","src":"8234:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8254:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8227:6:103"},"nodeType":"YulFunctionCall","src":"8227:30:103"},"nodeType":"YulExpressionStatement","src":"8227:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8277:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8288:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8273:3:103"},"nodeType":"YulFunctionCall","src":"8273:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8293:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8266:6:103"},"nodeType":"YulFunctionCall","src":"8266:57:103"},"nodeType":"YulExpressionStatement","src":"8266:57:103"},{"nodeType":"YulAssignment","src":"8332:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8355:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8340:3:103"},"nodeType":"YulFunctionCall","src":"8340:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8332:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8164:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8178:4:103","type":""}],"src":"8013:351:103"},{"body":{"nodeType":"YulBlock","src":"8543:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8560:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8571:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8553:6:103"},"nodeType":"YulFunctionCall","src":"8553:21:103"},"nodeType":"YulExpressionStatement","src":"8553:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8594:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8605:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8590:3:103"},"nodeType":"YulFunctionCall","src":"8590:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8610:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8583:6:103"},"nodeType":"YulFunctionCall","src":"8583:30:103"},"nodeType":"YulExpressionStatement","src":"8583:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8633:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8644:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8629:3:103"},"nodeType":"YulFunctionCall","src":"8629:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8649:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8622:6:103"},"nodeType":"YulFunctionCall","src":"8622:62:103"},"nodeType":"YulExpressionStatement","src":"8622:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8704:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8715:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8700:3:103"},"nodeType":"YulFunctionCall","src":"8700:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8720:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8693:6:103"},"nodeType":"YulFunctionCall","src":"8693:36:103"},"nodeType":"YulExpressionStatement","src":"8693:36:103"},{"nodeType":"YulAssignment","src":"8738:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8750:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8761:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8746:3:103"},"nodeType":"YulFunctionCall","src":"8746:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8738:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8520:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8534:4:103","type":""}],"src":"8369:402:103"},{"body":{"nodeType":"YulBlock","src":"8950:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8967:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8978:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8960:6:103"},"nodeType":"YulFunctionCall","src":"8960:21:103"},"nodeType":"YulExpressionStatement","src":"8960:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9001:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9012:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8997:3:103"},"nodeType":"YulFunctionCall","src":"8997:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9017:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8990:6:103"},"nodeType":"YulFunctionCall","src":"8990:30:103"},"nodeType":"YulExpressionStatement","src":"8990:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9040:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9051:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9036:3:103"},"nodeType":"YulFunctionCall","src":"9036:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9056:34:103","type":"","value":"unable to transferAndCall to ora"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9029:6:103"},"nodeType":"YulFunctionCall","src":"9029:62:103"},"nodeType":"YulExpressionStatement","src":"9029:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9111:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9122:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9107:3:103"},"nodeType":"YulFunctionCall","src":"9107:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9127:5:103","type":"","value":"cle"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9100:6:103"},"nodeType":"YulFunctionCall","src":"9100:33:103"},"nodeType":"YulExpressionStatement","src":"9100:33:103"},{"nodeType":"YulAssignment","src":"9142:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9154:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9165:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9150:3:103"},"nodeType":"YulFunctionCall","src":"9150:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9142:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8927:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8941:4:103","type":""}],"src":"8776:399:103"},{"body":{"nodeType":"YulBlock","src":"9354:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9371:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9382:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9364:6:103"},"nodeType":"YulFunctionCall","src":"9364:21:103"},"nodeType":"YulExpressionStatement","src":"9364:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9405:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9416:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9401:3:103"},"nodeType":"YulFunctionCall","src":"9401:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9421:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9394:6:103"},"nodeType":"YulFunctionCall","src":"9394:30:103"},"nodeType":"YulExpressionStatement","src":"9394:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9444:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9455:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9440:3:103"},"nodeType":"YulFunctionCall","src":"9440:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9460:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9433:6:103"},"nodeType":"YulFunctionCall","src":"9433:62:103"},"nodeType":"YulExpressionStatement","src":"9433:62:103"},{"nodeType":"YulAssignment","src":"9504:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9516:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9527:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9512:3:103"},"nodeType":"YulFunctionCall","src":"9512:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9504:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9331:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9345:4:103","type":""}],"src":"9180:356:103"},{"body":{"nodeType":"YulBlock","src":"9715:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9732:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9743:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9725:6:103"},"nodeType":"YulFunctionCall","src":"9725:21:103"},"nodeType":"YulExpressionStatement","src":"9725:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9766:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9777:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9762:3:103"},"nodeType":"YulFunctionCall","src":"9762:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9782:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9755:6:103"},"nodeType":"YulFunctionCall","src":"9755:30:103"},"nodeType":"YulExpressionStatement","src":"9755:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9805:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9816:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9801:3:103"},"nodeType":"YulFunctionCall","src":"9801:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9821:29:103","type":"","value":"ERROR:ORA-001:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9794:6:103"},"nodeType":"YulFunctionCall","src":"9794:57:103"},"nodeType":"YulExpressionStatement","src":"9794:57:103"},{"nodeType":"YulAssignment","src":"9860:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9872:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9883:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9868:3:103"},"nodeType":"YulFunctionCall","src":"9868:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9860:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9692:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9706:4:103","type":""}],"src":"9541:351:103"},{"body":{"nodeType":"YulBlock","src":"10071:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10099:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10081:6:103"},"nodeType":"YulFunctionCall","src":"10081:21:103"},"nodeType":"YulExpressionStatement","src":"10081:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10133:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10118:3:103"},"nodeType":"YulFunctionCall","src":"10118:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10138:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10111:6:103"},"nodeType":"YulFunctionCall","src":"10111:30:103"},"nodeType":"YulExpressionStatement","src":"10111:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10172:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10157:3:103"},"nodeType":"YulFunctionCall","src":"10157:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10177:34:103","type":"","value":"Source must be the oracle of the"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10150:6:103"},"nodeType":"YulFunctionCall","src":"10150:62:103"},"nodeType":"YulExpressionStatement","src":"10150:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10232:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10243:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10228:3:103"},"nodeType":"YulFunctionCall","src":"10228:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10248:10:103","type":"","value":" request"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10221:6:103"},"nodeType":"YulFunctionCall","src":"10221:38:103"},"nodeType":"YulExpressionStatement","src":"10221:38:103"},{"nodeType":"YulAssignment","src":"10268:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10280:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10291:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10276:3:103"},"nodeType":"YulFunctionCall","src":"10276:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10268:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10048:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10062:4:103","type":""}],"src":"9897:404:103"},{"body":{"nodeType":"YulBlock","src":"10407:76:103","statements":[{"nodeType":"YulAssignment","src":"10417:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10440:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10425:3:103"},"nodeType":"YulFunctionCall","src":"10425:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10417:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10459:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10470:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10452:6:103"},"nodeType":"YulFunctionCall","src":"10452:25:103"},"nodeType":"YulExpressionStatement","src":"10452:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10376:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10387:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10398:4:103","type":""}],"src":"10306:177:103"},{"body":{"nodeType":"YulBlock","src":"10617:119:103","statements":[{"nodeType":"YulAssignment","src":"10627:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10639:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10650:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10635:3:103"},"nodeType":"YulFunctionCall","src":"10635:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10627:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10669:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10680:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10662:6:103"},"nodeType":"YulFunctionCall","src":"10662:25:103"},"nodeType":"YulExpressionStatement","src":"10662:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10707:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10718:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10703:3:103"},"nodeType":"YulFunctionCall","src":"10703:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"10723:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10696:6:103"},"nodeType":"YulFunctionCall","src":"10696:34:103"},"nodeType":"YulExpressionStatement","src":"10696:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10578:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10589:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10597:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10608:4:103","type":""}],"src":"10488:248:103"},{"body":{"nodeType":"YulBlock","src":"10982:294:103","statements":[{"nodeType":"YulAssignment","src":"10992:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11004:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11015:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11000:3:103"},"nodeType":"YulFunctionCall","src":"11000:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10992:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11035:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11046:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11028:6:103"},"nodeType":"YulFunctionCall","src":"11028:25:103"},"nodeType":"YulExpressionStatement","src":"11028:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11073:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11084:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11069:3:103"},"nodeType":"YulFunctionCall","src":"11069:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11089:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11062:6:103"},"nodeType":"YulFunctionCall","src":"11062:34:103"},"nodeType":"YulExpressionStatement","src":"11062:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11116:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11127:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11112:3:103"},"nodeType":"YulFunctionCall","src":"11112:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"11132:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11105:6:103"},"nodeType":"YulFunctionCall","src":"11105:34:103"},"nodeType":"YulExpressionStatement","src":"11105:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11159:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11170:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11155:3:103"},"nodeType":"YulFunctionCall","src":"11155:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"11175:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11148:6:103"},"nodeType":"YulFunctionCall","src":"11148:34:103"},"nodeType":"YulExpressionStatement","src":"11148:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11202:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11213:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11198:3:103"},"nodeType":"YulFunctionCall","src":"11198:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"11219:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11191:6:103"},"nodeType":"YulFunctionCall","src":"11191:35:103"},"nodeType":"YulExpressionStatement","src":"11191:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11246:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11257:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11242:3:103"},"nodeType":"YulFunctionCall","src":"11242:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"11263:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11235:6:103"},"nodeType":"YulFunctionCall","src":"11235:35:103"},"nodeType":"YulExpressionStatement","src":"11235:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10911:9:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10922:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10930:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10938:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10946:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10954:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10962:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10973:4:103","type":""}],"src":"10741:535:103"},{"body":{"nodeType":"YulBlock","src":"11428:141:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11445:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11456:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11438:6:103"},"nodeType":"YulFunctionCall","src":"11438:25:103"},"nodeType":"YulExpressionStatement","src":"11438:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11483:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11494:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11479:3:103"},"nodeType":"YulFunctionCall","src":"11479:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11499:2:103","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11472:6:103"},"nodeType":"YulFunctionCall","src":"11472:30:103"},"nodeType":"YulExpressionStatement","src":"11472:30:103"},{"nodeType":"YulAssignment","src":"11511:52:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11536:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11548:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11559:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11544:3:103"},"nodeType":"YulFunctionCall","src":"11544:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11519:16:103"},"nodeType":"YulFunctionCall","src":"11519:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11511:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11389:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11400:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11408:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11419:4:103","type":""}],"src":"11281:288:103"},{"body":{"nodeType":"YulBlock","src":"11622:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"11649:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"11651:16:103"},"nodeType":"YulFunctionCall","src":"11651:18:103"},"nodeType":"YulExpressionStatement","src":"11651:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11638:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11645:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11641:3:103"},"nodeType":"YulFunctionCall","src":"11641:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11635:2:103"},"nodeType":"YulFunctionCall","src":"11635:13:103"},"nodeType":"YulIf","src":"11632:2:103"},{"nodeType":"YulAssignment","src":"11680:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11691:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"11694:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11687:3:103"},"nodeType":"YulFunctionCall","src":"11687:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"11680:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11605:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"11608:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"11614:3:103","type":""}],"src":"11574:128:103"},{"body":{"nodeType":"YulBlock","src":"11753:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"11776:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"11778:16:103"},"nodeType":"YulFunctionCall","src":"11778:18:103"},"nodeType":"YulExpressionStatement","src":"11778:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"11773:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11766:6:103"},"nodeType":"YulFunctionCall","src":"11766:9:103"},"nodeType":"YulIf","src":"11763:2:103"},{"nodeType":"YulAssignment","src":"11807:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"11816:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"11819:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"11812:3:103"},"nodeType":"YulFunctionCall","src":"11812:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"11807:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"11738:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"11741:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"11747:1:103","type":""}],"src":"11707:120:103"},{"body":{"nodeType":"YulBlock","src":"11909:376:103","statements":[{"nodeType":"YulAssignment","src":"11919:15:103","value":{"name":"_power","nodeType":"YulIdentifier","src":"11928:6:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"11919:5:103"}]},{"nodeType":"YulAssignment","src":"11943:13:103","value":{"name":"_base","nodeType":"YulIdentifier","src":"11951:5:103"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"11943:4:103"}]},{"body":{"nodeType":"YulBlock","src":"11990:289:103","statements":[{"nodeType":"YulVariableDeclaration","src":"12004:11:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12014:1:103","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12008:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12056:9:103","statements":[{"nodeType":"YulBreak","src":"12058:5:103"}]},"condition":{"arguments":[{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12041:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"12051:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12038:2:103"},"nodeType":"YulFunctionCall","src":"12038:16:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12031:6:103"},"nodeType":"YulFunctionCall","src":"12031:24:103"},"nodeType":"YulIf","src":"12028:2:103"},{"body":{"nodeType":"YulBlock","src":"12106:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12108:16:103"},"nodeType":"YulFunctionCall","src":"12108:18:103"},"nodeType":"YulExpressionStatement","src":"12108:18:103"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"12084:4:103"},{"arguments":[{"name":"max","nodeType":"YulIdentifier","src":"12094:3:103"},{"name":"base","nodeType":"YulIdentifier","src":"12099:4:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"12090:3:103"},"nodeType":"YulFunctionCall","src":"12090:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12081:2:103"},"nodeType":"YulFunctionCall","src":"12081:24:103"},"nodeType":"YulIf","src":"12078:2:103"},{"body":{"nodeType":"YulBlock","src":"12162:29:103","statements":[{"nodeType":"YulAssignment","src":"12164:25:103","value":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"12177:5:103"},{"name":"base","nodeType":"YulIdentifier","src":"12184:4:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"12173:3:103"},"nodeType":"YulFunctionCall","src":"12173:16:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12164:5:103"}]}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12148:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"12158:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12144:3:103"},"nodeType":"YulFunctionCall","src":"12144:17:103"},"nodeType":"YulIf","src":"12141:2:103"},{"nodeType":"YulAssignment","src":"12204:23:103","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"12216:4:103"},{"name":"base","nodeType":"YulIdentifier","src":"12222:4:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"12212:3:103"},"nodeType":"YulFunctionCall","src":"12212:15:103"},"variableNames":[{"name":"base","nodeType":"YulIdentifier","src":"12204:4:103"}]},{"nodeType":"YulAssignment","src":"12240:29:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12256:2:103"},{"name":"exponent","nodeType":"YulIdentifier","src":"12260:8:103"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"12252:3:103"},"nodeType":"YulFunctionCall","src":"12252:17:103"},"variableNames":[{"name":"exponent","nodeType":"YulIdentifier","src":"12240:8:103"}]}]},"condition":{"kind":"bool","nodeType":"YulLiteral","src":"11973:4:103","type":"","value":"true"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"11978:3:103","statements":[]},"pre":{"nodeType":"YulBlock","src":"11969:3:103","statements":[]},"src":"11965:314:103"}]},"name":"checked_exp_helper","nodeType":"YulFunctionDefinition","parameters":[{"name":"_power","nodeType":"YulTypedName","src":"11860:6:103","type":""},{"name":"_base","nodeType":"YulTypedName","src":"11868:5:103","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"11875:8:103","type":""},{"name":"max","nodeType":"YulTypedName","src":"11885:3:103","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"11893:5:103","type":""},{"name":"base","nodeType":"YulTypedName","src":"11900:4:103","type":""}],"src":"11832:453:103"},{"body":{"nodeType":"YulBlock","src":"12360:69:103","statements":[{"nodeType":"YulAssignment","src":"12370:53:103","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"12400:4:103"},{"name":"exponent","nodeType":"YulIdentifier","src":"12406:8:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12420:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12416:3:103"},"nodeType":"YulFunctionCall","src":"12416:6:103"}],"functionName":{"name":"checked_exp_unsigned","nodeType":"YulIdentifier","src":"12379:20:103"},"nodeType":"YulFunctionCall","src":"12379:44:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12370:5:103"}]}]},"name":"checked_exp_t_uint256_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"12331:4:103","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"12337:8:103","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"12350:5:103","type":""}],"src":"12290:139:103"},{"body":{"nodeType":"YulBlock","src":"12498:858:103","statements":[{"body":{"nodeType":"YulBlock","src":"12536:52:103","statements":[{"nodeType":"YulAssignment","src":"12550:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12559:1:103","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12550:5:103"}]},{"nodeType":"YulLeave","src":"12573:5:103"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12518:8:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12511:6:103"},"nodeType":"YulFunctionCall","src":"12511:16:103"},"nodeType":"YulIf","src":"12508:2:103"},{"body":{"nodeType":"YulBlock","src":"12621:52:103","statements":[{"nodeType":"YulAssignment","src":"12635:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12644:1:103","type":"","value":"0"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12635:5:103"}]},{"nodeType":"YulLeave","src":"12658:5:103"}]},"condition":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"12607:4:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12600:6:103"},"nodeType":"YulFunctionCall","src":"12600:12:103"},"nodeType":"YulIf","src":"12597:2:103"},{"cases":[{"body":{"nodeType":"YulBlock","src":"12709:52:103","statements":[{"nodeType":"YulAssignment","src":"12723:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12732:1:103","type":"","value":"1"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12723:5:103"}]},{"nodeType":"YulLeave","src":"12746:5:103"}]},"nodeType":"YulCase","src":"12702:59:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12707:1:103","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"12777:176:103","statements":[{"body":{"nodeType":"YulBlock","src":"12812:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12814:16:103"},"nodeType":"YulFunctionCall","src":"12814:18:103"},"nodeType":"YulExpressionStatement","src":"12814:18:103"}]},"condition":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12797:8:103"},{"kind":"number","nodeType":"YulLiteral","src":"12807:3:103","type":"","value":"255"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12794:2:103"},"nodeType":"YulFunctionCall","src":"12794:17:103"},"nodeType":"YulIf","src":"12791:2:103"},{"nodeType":"YulAssignment","src":"12847:25:103","value":{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12860:8:103"},{"kind":"number","nodeType":"YulLiteral","src":"12870:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12856:3:103"},"nodeType":"YulFunctionCall","src":"12856:16:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"12847:5:103"}]},{"body":{"nodeType":"YulBlock","src":"12903:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12905:16:103"},"nodeType":"YulFunctionCall","src":"12905:18:103"},"nodeType":"YulExpressionStatement","src":"12905:18:103"}]},"condition":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"12891:5:103"},{"name":"max","nodeType":"YulIdentifier","src":"12898:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12888:2:103"},"nodeType":"YulFunctionCall","src":"12888:14:103"},"nodeType":"YulIf","src":"12885:2:103"},{"nodeType":"YulLeave","src":"12938:5:103"}]},"nodeType":"YulCase","src":"12770:183:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12775:1:103","type":"","value":"2"}}],"expression":{"name":"base","nodeType":"YulIdentifier","src":"12689:4:103"},"nodeType":"YulSwitch","src":"12682:271:103"},{"body":{"nodeType":"YulBlock","src":"13051:123:103","statements":[{"nodeType":"YulAssignment","src":"13065:28:103","value":{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"13078:4:103"},{"name":"exponent","nodeType":"YulIdentifier","src":"13084:8:103"}],"functionName":{"name":"exp","nodeType":"YulIdentifier","src":"13074:3:103"},"nodeType":"YulFunctionCall","src":"13074:19:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"13065:5:103"}]},{"body":{"nodeType":"YulBlock","src":"13124:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13126:16:103"},"nodeType":"YulFunctionCall","src":"13126:18:103"},"nodeType":"YulExpressionStatement","src":"13126:18:103"}]},"condition":{"arguments":[{"name":"power","nodeType":"YulIdentifier","src":"13112:5:103"},{"name":"max","nodeType":"YulIdentifier","src":"13119:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13109:2:103"},"nodeType":"YulFunctionCall","src":"13109:14:103"},"nodeType":"YulIf","src":"13106:2:103"},{"nodeType":"YulLeave","src":"13159:5:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"12975:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"12981:2:103","type":"","value":"11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12972:2:103"},"nodeType":"YulFunctionCall","src":"12972:12:103"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"12989:8:103"},{"kind":"number","nodeType":"YulLiteral","src":"12999:2:103","type":"","value":"78"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12986:2:103"},"nodeType":"YulFunctionCall","src":"12986:16:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12968:3:103"},"nodeType":"YulFunctionCall","src":"12968:35:103"},{"arguments":[{"arguments":[{"name":"base","nodeType":"YulIdentifier","src":"13012:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"13018:3:103","type":"","value":"307"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13009:2:103"},"nodeType":"YulFunctionCall","src":"13009:13:103"},{"arguments":[{"name":"exponent","nodeType":"YulIdentifier","src":"13027:8:103"},{"kind":"number","nodeType":"YulLiteral","src":"13037:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13024:2:103"},"nodeType":"YulFunctionCall","src":"13024:16:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13005:3:103"},"nodeType":"YulFunctionCall","src":"13005:36:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"12965:2:103"},"nodeType":"YulFunctionCall","src":"12965:77:103"},"nodeType":"YulIf","src":"12962:2:103"},{"nodeType":"YulVariableDeclaration","src":"13183:65:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13225:1:103","type":"","value":"1"},{"name":"base","nodeType":"YulIdentifier","src":"13228:4:103"},{"name":"exponent","nodeType":"YulIdentifier","src":"13234:8:103"},{"name":"max","nodeType":"YulIdentifier","src":"13244:3:103"}],"functionName":{"name":"checked_exp_helper","nodeType":"YulIdentifier","src":"13206:18:103"},"nodeType":"YulFunctionCall","src":"13206:42:103"},"variables":[{"name":"power_1","nodeType":"YulTypedName","src":"13187:7:103","type":""},{"name":"base_1","nodeType":"YulTypedName","src":"13196:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"13290:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13292:16:103"},"nodeType":"YulFunctionCall","src":"13292:18:103"},"nodeType":"YulExpressionStatement","src":"13292:18:103"}]},"condition":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"13263:7:103"},{"arguments":[{"name":"max","nodeType":"YulIdentifier","src":"13276:3:103"},{"name":"base_1","nodeType":"YulIdentifier","src":"13281:6:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"13272:3:103"},"nodeType":"YulFunctionCall","src":"13272:16:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13260:2:103"},"nodeType":"YulFunctionCall","src":"13260:29:103"},"nodeType":"YulIf","src":"13257:2:103"},{"nodeType":"YulAssignment","src":"13321:29:103","value":{"arguments":[{"name":"power_1","nodeType":"YulIdentifier","src":"13334:7:103"},{"name":"base_1","nodeType":"YulIdentifier","src":"13343:6:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"13330:3:103"},"nodeType":"YulFunctionCall","src":"13330:20:103"},"variableNames":[{"name":"power","nodeType":"YulIdentifier","src":"13321:5:103"}]}]},"name":"checked_exp_unsigned","nodeType":"YulFunctionDefinition","parameters":[{"name":"base","nodeType":"YulTypedName","src":"12464:4:103","type":""},{"name":"exponent","nodeType":"YulTypedName","src":"12470:8:103","type":""},{"name":"max","nodeType":"YulTypedName","src":"12480:3:103","type":""}],"returnVariables":[{"name":"power","nodeType":"YulTypedName","src":"12488:5:103","type":""}],"src":"12434:922:103"},{"body":{"nodeType":"YulBlock","src":"13413:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"13472:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13474:16:103"},"nodeType":"YulFunctionCall","src":"13474:18:103"},"nodeType":"YulExpressionStatement","src":"13474:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13444:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13437:6:103"},"nodeType":"YulFunctionCall","src":"13437:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13430:6:103"},"nodeType":"YulFunctionCall","src":"13430:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13452:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13463:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13459:3:103"},"nodeType":"YulFunctionCall","src":"13459:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"13467:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"13455:3:103"},"nodeType":"YulFunctionCall","src":"13455:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13449:2:103"},"nodeType":"YulFunctionCall","src":"13449:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13426:3:103"},"nodeType":"YulFunctionCall","src":"13426:45:103"},"nodeType":"YulIf","src":"13423:2:103"},{"nodeType":"YulAssignment","src":"13503:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13518:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13521:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"13514:3:103"},"nodeType":"YulFunctionCall","src":"13514:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"13503:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13392:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13395:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"13401:7:103","type":""}],"src":"13361:168:103"},{"body":{"nodeType":"YulBlock","src":"13583:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"13605:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13607:16:103"},"nodeType":"YulFunctionCall","src":"13607:18:103"},"nodeType":"YulExpressionStatement","src":"13607:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13599:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13602:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13596:2:103"},"nodeType":"YulFunctionCall","src":"13596:8:103"},"nodeType":"YulIf","src":"13593:2:103"},{"nodeType":"YulAssignment","src":"13636:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13648:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13651:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13644:3:103"},"nodeType":"YulFunctionCall","src":"13644:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"13636:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13565:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13568:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"13574:4:103","type":""}],"src":"13534:125:103"},{"body":{"nodeType":"YulBlock","src":"13702:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"13725:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"13727:16:103"},"nodeType":"YulFunctionCall","src":"13727:18:103"},"nodeType":"YulExpressionStatement","src":"13727:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13722:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13715:6:103"},"nodeType":"YulFunctionCall","src":"13715:9:103"},"nodeType":"YulIf","src":"13712:2:103"},{"nodeType":"YulAssignment","src":"13756:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13765:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13768:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"13761:3:103"},"nodeType":"YulFunctionCall","src":"13761:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"13756:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13687:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13690:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"13696:1:103","type":""}],"src":"13664:112:103"},{"body":{"nodeType":"YulBlock","src":"13813:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13830:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13837:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13842:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13833:3:103"},"nodeType":"YulFunctionCall","src":"13833:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13823:6:103"},"nodeType":"YulFunctionCall","src":"13823:31:103"},"nodeType":"YulExpressionStatement","src":"13823:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13870:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13873:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13863:6:103"},"nodeType":"YulFunctionCall","src":"13863:15:103"},"nodeType":"YulExpressionStatement","src":"13863:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13894:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13897:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13887:6:103"},"nodeType":"YulFunctionCall","src":"13887:15:103"},"nodeType":"YulExpressionStatement","src":"13887:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"13781:127:103"},{"body":{"nodeType":"YulBlock","src":"13945:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13962:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13969:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13974:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13965:3:103"},"nodeType":"YulFunctionCall","src":"13965:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13955:6:103"},"nodeType":"YulFunctionCall","src":"13955:31:103"},"nodeType":"YulExpressionStatement","src":"13955:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14002:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14005:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13995:6:103"},"nodeType":"YulFunctionCall","src":"13995:15:103"},"nodeType":"YulExpressionStatement","src":"13995:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14026:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14029:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14019:6:103"},"nodeType":"YulFunctionCall","src":"14019:15:103"},"nodeType":"YulExpressionStatement","src":"14019:15:103"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"13913:127:103"},{"body":{"nodeType":"YulBlock","src":"14077:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14094:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14101:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14106:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14097:3:103"},"nodeType":"YulFunctionCall","src":"14097:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14087:6:103"},"nodeType":"YulFunctionCall","src":"14087:31:103"},"nodeType":"YulExpressionStatement","src":"14087:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14134:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14137:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14127:6:103"},"nodeType":"YulFunctionCall","src":"14127:15:103"},"nodeType":"YulExpressionStatement","src":"14127:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14158:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14161:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14151:6:103"},"nodeType":"YulFunctionCall","src":"14151:15:103"},"nodeType":"YulExpressionStatement","src":"14151:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"14045:127:103"},{"body":{"nodeType":"YulBlock","src":"14222:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"14286:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14295:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14298:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14288:6:103"},"nodeType":"YulFunctionCall","src":"14288:12:103"},"nodeType":"YulExpressionStatement","src":"14288:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14245:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14256:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14271:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14276:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14267:3:103"},"nodeType":"YulFunctionCall","src":"14267:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14280:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14263:3:103"},"nodeType":"YulFunctionCall","src":"14263:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14252:3:103"},"nodeType":"YulFunctionCall","src":"14252:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14242:2:103"},"nodeType":"YulFunctionCall","src":"14242:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14235:6:103"},"nodeType":"YulFunctionCall","src":"14235:50:103"},"nodeType":"YulIf","src":"14232:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14211:5:103","type":""}],"src":"14177:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_addresst_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value1, value1) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value1, value1) }\n value1 := add(_2, 32)\n value2 := length\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := end\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(pos, length), 0x20), end)\n }\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_packed_t_contract$_ChainlinkClient_$861_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), value1)\n end := add(pos, 52)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes32_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 256\n let _2 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _2))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, shl(224, 0xffffffff)))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), _1)\n tail := abi_encode_bytes(value7, add(headStart, _1))\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b3efd608222b424e5ed8427d7f6a272069793e6a1f5930c93db5c7960c3ce96__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"unable to transferAndCall to ora\")\n mstore(add(headStart, 96), \"cle\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:ORA-001:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d5cafe2745dab6273b51cca76f8727c7664db74ede49af049a5b5ca6a3b184e4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"Source must be the oracle of the\")\n mstore(add(headStart, 96), \" request\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 192)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_exp_helper(_power, _base, exponent, max) -> power, base\n {\n power := _power\n base := _base\n for { } true { }\n {\n let _1 := 1\n if iszero(gt(exponent, _1)) { break }\n if gt(base, div(max, base)) { panic_error_0x11() }\n if and(exponent, _1) { power := mul(power, base) }\n base := mul(base, base)\n exponent := shr(_1, exponent)\n }\n }\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power\n {\n power := checked_exp_unsigned(base, exponent, not(0))\n }\n function checked_exp_unsigned(base, exponent, max) -> power\n {\n if iszero(exponent)\n {\n power := 1\n leave\n }\n if iszero(base)\n {\n power := 0\n leave\n }\n switch base\n case 1 {\n power := 1\n leave\n }\n case 2 {\n if gt(exponent, 255) { panic_error_0x11() }\n power := shl(exponent, 1)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n {\n power := exp(base, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n let power_1, base_1 := checked_exp_helper(1, base, exponent, max)\n if gt(power_1, div(max, base_1)) { panic_error_0x11() }\n power := mul(power_1, base_1)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063893d20e81161011a578063be169e7e116100ad578063d73cd9921161007c578063d73cd99214610319578063e0815f0d146103d8578063e8f8e1c1146103e0578063f2fde38b146103e8578063ffc79065146103fb576101fb565b8063be169e7e14610319578063c2939d97146103a9578063ca5ddcf3146103b2578063d0e0ba95146103c5576101fb565b8063a18f5ae2116100e9578063a18f5ae214610319578063b3fca9bd14610319578063b6e45ee014610399578063bd1fe5d0146103a1576101fb565b8063893d20e8146103585780638da5cb5b1461036d57806397e873e91461037e5780639a82f89014610391576101fb565b8063423b3b7a116101925780635b16d9b2116101615780635b16d9b2146103385780635d1ca63114610340578063638ce0ba14610348578063715018a614610350576101fb565b8063423b3b7a146102b857806342f6487a1461031057806359dacc6a146103195780635ab1bd5314610321576101fb565b80631b867c63116101ce5780631b867c6314610263578063258d560c1461026d5780633fb80f511461028557806340e58ee5146102a5576101fb565b806315dae03e14610200578063165d35e11461021c57806317d7de7c1461023c5780631865c57d1461024e575b600080fd5b60035460ff166040516102139190611876565b60405180910390f35b61022461040e565b6040516001600160a01b039091168152602001610213565b6001545b604051908152602001610213565b610256610427565b604051610213919061185c565b61026b6104a8565b005b610275610500565b6040519015158152602001610213565b610240610293366004611653565b600e6020526000908152604090205481565b61026b6102b3366004611653565b610530565b6103036102c6366004611696565b604080516020810196909652858101949094526060850192909252608084015260a0808401919091528151808403909101815260c0909201905290565b6040516102139190611849565b61024060105481565b61026b61053b565b61022460035461010090046001600160a01b031690565b601054610240565b600254610240565b61026b610585565b61026b6105d2565b610224600080546001600160a01b0316610422565b6000546001600160a01b0316610224565b61026b61038c366004611696565b6105e4565b610275610761565b600f54610240565b61026b610769565b610240600f5481565b61026b6103c03660046115ee565b6107b6565b61026b6103d3366004611653565b610821565b61027561086b565b610224610874565b61026b6103f63660046115b6565b610888565b61026b6104093660046116ef565b6108fe565b6000610422600a546001600160a01b031690565b905090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561047057600080fd5b505afa158015610484573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906116d0565b6104bd6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146104f65760405162461bcd60e51b81526004016104ed9061188a565b60405180910390fd5b6104fe610b0b565b565b600060025b60035460ff16600281111561052a57634e487b7160e01b600052602160045260246000fd5b14905090565b610538610b48565b50565b6105506810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105805760405162461bcd60e51b81526004016104ed9061188a565b6104fe565b61059a6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105ca5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610ba2565b6105da610b48565b6104fe6000610bcc565b6000858152600d602052604090205485906001600160a01b0316331461065d5760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084016104ed565b6000818152600d602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a26000868152600e602090815260408083205481519283018990529082018790526060820186905260808201859052919060a00160405160208183030381529060405290506106ee8282610c1c565b6000888152600e602090815260408083209290925581518481529081018a9052908101889052606081018790526080810186905260a081018590527fd3d5b0141a5d81ac8c98139f284f1b25fb3061bc81857f74de9a702e382916349060c0015b60405180910390a15050505050505050565b600080610505565b61077e6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146107ae5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610c84565b6107be610b48565b6001600160a01b038416156107e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383161561081457600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6108366810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146108665760405162461bcd60e51b81526004016104ed9061188a565b600255565b60006001610505565b6000610422600b546001600160a01b031690565b610890610b48565b6001600160a01b0381166108f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61053881610bcc565b61090f64517565727960d81b610a81565b6001600160a01b0316336001600160a01b03161461096f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e494544000000000060448201526064016104ed565b6000610985600f54306397e873e960e01b610cae565b9050600080806109978587018761166b565b9250925092506109d3604051806040016040528060098152602001681c1c9bda9958dd125960ba1b8152506109cb85610cd5565b869190610d8d565b6109fd604051806040016040528060058152602001641d585a525960da1b8152506109cb84610cd5565b610a286040518060400160405280600681526020016518dc9bdc125960d21b8152506109cb83610cd5565b6000610a3685601054610db0565b6000818152600e60209081526040918290208b905581518b81529081018390529192507f09ee0ce04d9140f363cd342b605f7aaae55e9c0d84a975c417e55ce074b49332910161074f565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0391906115d2565b90505b919050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b23610b3560025490565b60405190815260200160405180910390a1565b6000546001600160a01b031633146104fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e6610b3560025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a90610c4e90859085906004016118c1565b600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505050565b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d610b3560025490565b610cb661157b565b610cbe61157b565b610cca81868686610dd3565b9150505b9392505050565b6060610cf4604051806040016040528060008152602001600081525090565b6040516020810160405283815280602083015250610d1183610e19565b80825260009067ffffffffffffffff811115610d3d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610d67576020820181803683370190505b5090506000602082019050610d858184602001518560000151610f03565b509392505050565b6080830151610d9c9083610f7d565b6080830151610dab9082610f7d565b505050565b600b54600090610dca906001600160a01b03168484610f94565b90505b92915050565b610ddb61157b565b610deb8560800151610100611027565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b60008082610e2b576000915050610b06565b6fffffffffffffffffffffffffffffffff8316610e6057610e4d6010826118da565b9050610e5d600160801b846118f2565b92505b67ffffffffffffffff8316610e9257610e7a6008826118da565b9050610e8f68010000000000000000846118f2565b92505b63ffffffff8316610ebc57610ea86004826118da565b9050610eb9640100000000846118f2565b92505b61ffff8316610ee257610ed06002826118da565b9050610edf62010000846118f2565b92505b60ff8316610ef857610ef56001826118da565b90505b610cce816020611a39565b60208110610f3b5781518352610f1a6020846118da565b9250610f276020836118da565b9150610f34602082611a39565b9050610f03565b6000198115610f6a576001610f51836020611a39565b610f5d9061010061194c565b610f679190611a39565b90505b9151835183169219169190911790915250565b610f8a826003835161108c565b610dab82826111a7565b600c54600090610fa58160016118da565b600c55835160408086015160808701515191516000936320214ca360e11b93610fdd9386938493923092918a916001916024016117b1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061101d868386846111ce565b9695505050505050565b604080518082019091526060815260006020820152611047602083611a50565b1561106f57611057602083611a50565b611062906020611a39565b61106c90836118da565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116110b7576110b18360e0600585901b16831761133b565b50610dab565b60ff8167ffffffffffffffff16116110f5576110de836018611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166001611360565b61ffff8167ffffffffffffffff16116111345761111d836019611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166002611360565b63ffffffff8167ffffffffffffffff16116111755761115e83601a611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166004611360565b61118a83601b611fe0600586901b161761133b565b506111a18367ffffffffffffffff83166008611360565b50505050565b604080518082019091526060815260006020820152610dca83846000015151848551611386565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600d90925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600a54604051630200057560e51b81526001600160a01b0390911690634000aea09061129190889087908790600401611819565b602060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e39190611633565b610e115760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b60648201526084016104ed565b604080518082019091526060815260006020820152610dca8384600001515184611470565b604080518082019091526060815260006020820152610e118485600001515185856114cc565b60408051808201909152606081526000602082015282518211156113a957600080fd5b60208501516113b883866118da565b11156113eb576113eb856113db876020015187866113d691906118da565b61154d565b6113e6906002611a1a565b611564565b60008086518051876020830101935080888701111561140a5787860182525b505050602084015b6020841061144a57805182526114296020836118da565b91506114366020826118da565b9050611443602085611a39565b9350611412565b51815160001960208690036101000a019081169019919091161790525083949350505050565b604080518082019091526060815260006020820152836020015183106114a5576114a584856020015160026113e69190611a1a565b8351805160208583010184815350808514156114c2576001810182525b5093949350505050565b60408051808201909152606081526000602082015260208501516114f085846118da565b111561150457611504856113db86856118da565b600060016115148461010061194c565b61151e9190611a39565b90508551838682010185831982511617815250805184870111156115425783860181525b509495945050505050565b60008183111561155e575081610dcd565b50919050565b81516115708383611027565b506111a183826111a7565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000602082840312156115c7578081fd5b8135610cce81611aa6565b6000602082840312156115e3578081fd5b8151610cce81611aa6565b60008060008060808587031215611603578283fd5b843561160e81611aa6565b9350602085013561161e81611aa6565b93969395505050506040820135916060013590565b600060208284031215611644578081fd5b81518015158114610cce578182fd5b600060208284031215611664578081fd5b5035919050565b60008060006060848603121561167f578283fd5b505081359360208301359350604090920135919050565b600080600080600060a086880312156116ad578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000602082840312156116e1578081fd5b815160078110610cce578182fd5b600080600060408486031215611703578283fd5b83359250602084013567ffffffffffffffff80821115611721578384fd5b818601915086601f830112611734578384fd5b813581811115611742578485fd5b876020828501011115611753578485fd5b6020830194508093505050509250925092565b60008151808452815b8181101561178b5760208185018101518683018201520161176f565b8181111561179c5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061180a83820185611766565b9b9a5050505050505050505050565b600060018060a01b0385168252836020830152606060408301526118406060830184611766565b95945050505050565b600060208252610dca6020830184611766565b602081016007831061187057611870611a90565b91905290565b602081016003831061187057611870611a90565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260406020830152610e116040830184611766565b600082198211156118ed576118ed611a64565b500190565b60008261190157611901611a7a565b500490565b80825b60018086116119185750611943565b81870482111561192a5761192a611a64565b8086161561193757918102915b9490941c938002611909565b94509492505050565b6000610dca600019848460008261196557506001610cce565b8161197257506000610cce565b81600181146119885760028114611992576119bf565b6001915050610cce565b60ff8411156119a3576119a3611a64565b6001841b9150848211156119b9576119b9611a64565b50610cce565b5060208310610133831016604e8410600b84101617156119f2575081810a838111156119ed576119ed611a64565b610cce565b6119ff8484846001611906565b808604821115611a1157611a11611a64565b02949350505050565b6000816000190483118215151615611a3457611a34611a64565b500290565b600082821015611a4b57611a4b611a64565b500390565b600082611a5f57611a5f611a7a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038116811461053857600080fdfea264697066735822122032e1343ae3cf45cc987315ea3df5115358453bec437a4d8d956c9c7ac8dc31c064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1FB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xBE169E7E GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD73CD992 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x3D8 JUMPI DUP1 PUSH4 0xE8F8E1C1 EQ PUSH2 0x3E0 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3E8 JUMPI DUP1 PUSH4 0xFFC79065 EQ PUSH2 0x3FB JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xC2939D97 EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xCA5DDCF3 EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x3C5 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0xB6E45EE0 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x3A1 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0x97E873E9 EQ PUSH2 0x37E JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x391 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x423B3B7A GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x5B16D9B2 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x5B16D9B2 EQ PUSH2 0x338 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x340 JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x348 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x350 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x423B3B7A EQ PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x42F6487A EQ PUSH2 0x310 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x319 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x321 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x1B867C63 GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3FB80F51 EQ PUSH2 0x285 JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x2A5 JUMPI PUSH2 0x1FB JUMP JUMPDEST DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x200 JUMPI DUP1 PUSH4 0x165D35E1 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x23C JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x24E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x1876 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x224 PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH2 0x256 PUSH2 0x427 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x185C JUMP JUMPDEST PUSH2 0x26B PUSH2 0x4A8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x275 PUSH2 0x500 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x213 JUMP JUMPDEST PUSH2 0x240 PUSH2 0x293 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH1 0xE PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x2B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH2 0x530 JUMP JUMPDEST PUSH2 0x303 PUSH2 0x2C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP7 SWAP1 SWAP7 MSTORE DUP6 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x60 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0xA0 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0xC0 SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x213 SWAP2 SWAP1 PUSH2 0x1849 JUMP JUMPDEST PUSH2 0x240 PUSH1 0x10 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x53B JUMP JUMPDEST PUSH2 0x224 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x585 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x5D2 JUMP JUMPDEST PUSH2 0x224 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x422 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x224 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x38C CALLDATASIZE PUSH1 0x4 PUSH2 0x1696 JUMP JUMPDEST PUSH2 0x5E4 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x761 JUMP JUMPDEST PUSH1 0xF SLOAD PUSH2 0x240 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x769 JUMP JUMPDEST PUSH2 0x240 PUSH1 0xF SLOAD DUP2 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x15EE JUMP JUMPDEST PUSH2 0x7B6 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1653 JUMP JUMPDEST PUSH2 0x821 JUMP JUMPDEST PUSH2 0x275 PUSH2 0x86B JUMP JUMPDEST PUSH2 0x224 PUSH2 0x874 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x3F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x15B6 JUMP JUMPDEST PUSH2 0x888 JUMP JUMPDEST PUSH2 0x26B PUSH2 0x409 CALLDATASIZE PUSH1 0x4 PUSH2 0x16EF JUMP JUMPDEST PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x422 PUSH1 0xA SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x470 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x484 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x422 SWAP2 SWAP1 PUSH2 0x16D0 JUMP JUMPDEST PUSH2 0x4BD PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x4FE PUSH2 0xB0B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x52A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x538 PUSH2 0xB48 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x550 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x580 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE JUMP JUMPDEST PUSH2 0x59A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE PUSH2 0xBA2 JUMP JUMPDEST PUSH2 0x5DA PUSH2 0xB48 JUMP JUMPDEST PUSH2 0x4FE PUSH1 0x0 PUSH2 0xBCC JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP6 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x65D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536F75726365206D75737420626520746865206F7261636C65206F6620746865 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x81C995C5D595CDD PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP3 SWAP2 PUSH32 0x7CC135E0CEBB02C3480AE5D74D377283180A2601F8F644EDF7987B009316C63A SWAP2 LOG2 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD DUP10 SWAP1 MSTORE SWAP1 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x60 DUP3 ADD DUP7 SWAP1 MSTORE PUSH1 0x80 DUP3 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x6EE DUP3 DUP3 PUSH2 0xC1C JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP2 MLOAD DUP5 DUP2 MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xD3D5B0141A5D81AC8C98139F284F1B25FB3061BC81857F74DE9A702E38291634 SWAP1 PUSH1 0xC0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x505 JUMP JUMPDEST PUSH2 0x77E PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH2 0x4FE PUSH2 0xC84 JUMP JUMPDEST PUSH2 0x7BE PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO PUSH2 0x7E9 JUMPI PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO PUSH2 0x814 JUMPI PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND OR SWAP1 SSTORE JUMPDEST PUSH1 0xF SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x10 SSTORE POP POP JUMP JUMPDEST PUSH2 0x836 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x866 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4ED SWAP1 PUSH2 0x188A JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x505 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x422 PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x890 PUSH2 0xB48 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x8F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH2 0x538 DUP2 PUSH2 0xBCC JUMP JUMPDEST PUSH2 0x90F PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x96F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4F52412D3030313A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x0 PUSH2 0x985 PUSH1 0xF SLOAD ADDRESS PUSH4 0x97E873E9 PUSH1 0xE0 SHL PUSH2 0xCAE JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP1 PUSH2 0x997 DUP6 DUP8 ADD DUP8 PUSH2 0x166B JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x9D3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x1C1C9BDA9958DD1259 PUSH1 0xBA SHL DUP2 MSTORE POP PUSH2 0x9CB DUP6 PUSH2 0xCD5 JUMP JUMPDEST DUP7 SWAP2 SWAP1 PUSH2 0xD8D JUMP JUMPDEST PUSH2 0x9FD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x1D585A5259 PUSH1 0xDA SHL DUP2 MSTORE POP PUSH2 0x9CB DUP5 PUSH2 0xCD5 JUMP JUMPDEST PUSH2 0xA28 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x18DC9BDC1259 PUSH1 0xD2 SHL DUP2 MSTORE POP PUSH2 0x9CB DUP4 PUSH2 0xCD5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA36 DUP6 PUSH1 0x10 SLOAD PUSH2 0xDB0 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xE PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP12 SWAP1 SSTORE DUP2 MLOAD DUP12 DUP2 MSTORE SWAP1 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x9EE0CE04D9140F363CD342B605F7AAAE55E9C0D84A975C417E55CE074B49332 SWAP2 ADD PUSH2 0x74F JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xACB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xADF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB03 SWAP2 SWAP1 PUSH2 0x15D2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x33A6EC8D94D03F2C0A2DA3411552B0777613E4220ABD6CE5679DECB30AF09B23 PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x4FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH32 0xDB7E2F5405EA10CAD5583CE31A1BDE125FF32946EDB3CE5972D70EA3F2C214E6 PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7204A9A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE409534A SWAP1 PUSH2 0xC4E SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x18C1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC7C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x1855FCCE92CB172C06FD991F1B19774237130B37CF6806BC01AA4E3A0C359E2D PUSH2 0xB35 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0xCB6 PUSH2 0x157B JUMP JUMPDEST PUSH2 0xCBE PUSH2 0x157B JUMP JUMPDEST PUSH2 0xCCA DUP2 DUP7 DUP7 DUP7 PUSH2 0xDD3 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xCF4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 ADD PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE DUP1 PUSH1 0x20 DUP4 ADD MSTORE POP PUSH2 0xD11 DUP4 PUSH2 0xE19 JUMP JUMPDEST DUP1 DUP3 MSTORE PUSH1 0x0 SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD3D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xD67 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD85 DUP2 DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x0 ADD MLOAD PUSH2 0xF03 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xD9C SWAP1 DUP4 PUSH2 0xF7D JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0xDAB SWAP1 DUP3 PUSH2 0xF7D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x0 SWAP1 PUSH2 0xDCA SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 DUP5 PUSH2 0xF94 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xDDB PUSH2 0x157B JUMP JUMPDEST PUSH2 0xDEB DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x100 PUSH2 0x1027 JUMP JUMPDEST POP POP DUP3 DUP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE DUP4 JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH2 0xE2B JUMPI PUSH1 0x0 SWAP2 POP POP PUSH2 0xB06 JUMP JUMPDEST PUSH16 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 AND PUSH2 0xE60 JUMPI PUSH2 0xE4D PUSH1 0x10 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xE5D PUSH1 0x1 PUSH1 0x80 SHL DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH2 0xE92 JUMPI PUSH2 0xE7A PUSH1 0x8 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xE8F PUSH9 0x10000000000000000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH4 0xFFFFFFFF DUP4 AND PUSH2 0xEBC JUMPI PUSH2 0xEA8 PUSH1 0x4 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xEB9 PUSH5 0x100000000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH2 0xFFFF DUP4 AND PUSH2 0xEE2 JUMPI PUSH2 0xED0 PUSH1 0x2 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0xEDF PUSH3 0x10000 DUP5 PUSH2 0x18F2 JUMP JUMPDEST SWAP3 POP JUMPDEST PUSH1 0xFF DUP4 AND PUSH2 0xEF8 JUMPI PUSH2 0xEF5 PUSH1 0x1 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0xCCE DUP2 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH1 0x20 DUP2 LT PUSH2 0xF3B JUMPI DUP2 MLOAD DUP4 MSTORE PUSH2 0xF1A PUSH1 0x20 DUP5 PUSH2 0x18DA JUMP JUMPDEST SWAP3 POP PUSH2 0xF27 PUSH1 0x20 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP PUSH2 0xF34 PUSH1 0x20 DUP3 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP PUSH2 0xF03 JUMP JUMPDEST PUSH1 0x0 NOT DUP2 ISZERO PUSH2 0xF6A JUMPI PUSH1 0x1 PUSH2 0xF51 DUP4 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH2 0xF5D SWAP1 PUSH2 0x100 PUSH2 0x194C JUMP JUMPDEST PUSH2 0xF67 SWAP2 SWAP1 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 MLOAD DUP4 MLOAD DUP4 AND SWAP3 NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 MSTORE POP JUMP JUMPDEST PUSH2 0xF8A DUP3 PUSH1 0x3 DUP4 MLOAD PUSH2 0x108C JUMP JUMPDEST PUSH2 0xDAB DUP3 DUP3 PUSH2 0x11A7 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x0 SWAP1 PUSH2 0xFA5 DUP2 PUSH1 0x1 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0xC SSTORE DUP4 MLOAD PUSH1 0x40 DUP1 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP4 PUSH4 0x20214CA3 PUSH1 0xE1 SHL SWAP4 PUSH2 0xFDD SWAP4 DUP7 SWAP4 DUP5 SWAP4 SWAP3 ADDRESS SWAP3 SWAP2 DUP11 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x24 ADD PUSH2 0x17B1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP1 SWAP2 MSTORE SWAP1 POP PUSH2 0x101D DUP7 DUP4 DUP7 DUP5 PUSH2 0x11CE JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x1047 PUSH1 0x20 DUP4 PUSH2 0x1A50 JUMP JUMPDEST ISZERO PUSH2 0x106F JUMPI PUSH2 0x1057 PUSH1 0x20 DUP4 PUSH2 0x1A50 JUMP JUMPDEST PUSH2 0x1062 SWAP1 PUSH1 0x20 PUSH2 0x1A39 JUMP JUMPDEST PUSH2 0x106C SWAP1 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP JUMPDEST POP PUSH1 0x20 DUP3 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x40 DUP1 MLOAD DUP1 DUP6 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 SWAP3 ADD ADD SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x17 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x10B7 JUMPI PUSH2 0x10B1 DUP4 PUSH1 0xE0 PUSH1 0x5 DUP6 SWAP1 SHL AND DUP4 OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0xDAB JUMP JUMPDEST PUSH1 0xFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x10F5 JUMPI PUSH2 0x10DE DUP4 PUSH1 0x18 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x1 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0xFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x1134 JUMPI PUSH2 0x111D DUP4 PUSH1 0x19 PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x2 PUSH2 0x1360 JUMP JUMPDEST PUSH4 0xFFFFFFFF DUP2 PUSH8 0xFFFFFFFFFFFFFFFF AND GT PUSH2 0x1175 JUMPI PUSH2 0x115E DUP4 PUSH1 0x1A PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x10B1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x4 PUSH2 0x1360 JUMP JUMPDEST PUSH2 0x118A DUP4 PUSH1 0x1B PUSH2 0x1FE0 PUSH1 0x5 DUP7 SWAP1 SHL AND OR PUSH2 0x133B JUMP JUMPDEST POP PUSH2 0x11A1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF DUP4 AND PUSH1 0x8 PUSH2 0x1360 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xDCA DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 DUP6 MLOAD PUSH2 0x1386 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT ADDRESS PUSH1 0x60 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE DUP3 DUP3 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP2 DUP3 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0xD SWAP1 SWAP3 MSTORE SWAP2 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 AND OR SWAP1 SSTORE SWAP1 SWAP3 POP DUP3 SWAP2 PUSH32 0xB5E6E01E79F91267DC17B4E6314D5D4D03593D2CEEE0FBB452B750BD70EA5AF9 SWAP2 SWAP1 LOG2 PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x2000575 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4000AEA0 SWAP1 PUSH2 0x1291 SWAP1 DUP9 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1819 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12BF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12E3 SWAP2 SWAP1 PUSH2 0x1633 JUMP JUMPDEST PUSH2 0xE11 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x756E61626C6520746F207472616E73666572416E6443616C6C20746F206F7261 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x636C65 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x4ED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xDCA DUP4 DUP5 PUSH1 0x0 ADD MLOAD MLOAD DUP5 PUSH2 0x1470 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xE11 DUP5 DUP6 PUSH1 0x0 ADD MLOAD MLOAD DUP6 DUP6 PUSH2 0x14CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP3 MLOAD DUP3 GT ISZERO PUSH2 0x13A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x13B8 DUP4 DUP7 PUSH2 0x18DA JUMP JUMPDEST GT ISZERO PUSH2 0x13EB JUMPI PUSH2 0x13EB DUP6 PUSH2 0x13DB DUP8 PUSH1 0x20 ADD MLOAD DUP8 DUP7 PUSH2 0x13D6 SWAP2 SWAP1 PUSH2 0x18DA JUMP JUMPDEST PUSH2 0x154D JUMP JUMPDEST PUSH2 0x13E6 SWAP1 PUSH1 0x2 PUSH2 0x1A1A JUMP JUMPDEST PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP7 MLOAD DUP1 MLOAD DUP8 PUSH1 0x20 DUP4 ADD ADD SWAP4 POP DUP1 DUP9 DUP8 ADD GT ISZERO PUSH2 0x140A JUMPI DUP8 DUP7 ADD DUP3 MSTORE JUMPDEST POP POP POP PUSH1 0x20 DUP5 ADD JUMPDEST PUSH1 0x20 DUP5 LT PUSH2 0x144A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH2 0x1429 PUSH1 0x20 DUP4 PUSH2 0x18DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1436 PUSH1 0x20 DUP3 PUSH2 0x18DA JUMP JUMPDEST SWAP1 POP PUSH2 0x1443 PUSH1 0x20 DUP6 PUSH2 0x1A39 JUMP JUMPDEST SWAP4 POP PUSH2 0x1412 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 DUP7 SWAP1 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE POP DUP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE DUP4 PUSH1 0x20 ADD MLOAD DUP4 LT PUSH2 0x14A5 JUMPI PUSH2 0x14A5 DUP5 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x2 PUSH2 0x13E6 SWAP2 SWAP1 PUSH2 0x1A1A JUMP JUMPDEST DUP4 MLOAD DUP1 MLOAD PUSH1 0x20 DUP6 DUP4 ADD ADD DUP5 DUP2 MSTORE8 POP DUP1 DUP6 EQ ISZERO PUSH2 0x14C2 JUMPI PUSH1 0x1 DUP2 ADD DUP3 MSTORE JUMPDEST POP SWAP4 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD MLOAD PUSH2 0x14F0 DUP6 DUP5 PUSH2 0x18DA JUMP JUMPDEST GT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1504 DUP6 PUSH2 0x13DB DUP7 DUP6 PUSH2 0x18DA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x1514 DUP5 PUSH2 0x100 PUSH2 0x194C JUMP JUMPDEST PUSH2 0x151E SWAP2 SWAP1 PUSH2 0x1A39 JUMP JUMPDEST SWAP1 POP DUP6 MLOAD DUP4 DUP7 DUP3 ADD ADD DUP6 DUP4 NOT DUP3 MLOAD AND OR DUP2 MSTORE POP DUP1 MLOAD DUP5 DUP8 ADD GT ISZERO PUSH2 0x1542 JUMPI DUP4 DUP7 ADD DUP2 MSTORE JUMPDEST POP SWAP5 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x155E JUMPI POP DUP2 PUSH2 0xDCD JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP2 MLOAD PUSH2 0x1570 DUP4 DUP4 PUSH2 0x1027 JUMP JUMPDEST POP PUSH2 0x11A1 DUP4 DUP3 PUSH2 0x11A7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP3 DUP5 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP1 DUP5 ADD DUP4 SWAP1 MSTORE DUP5 MLOAD DUP1 DUP7 ADD SWAP1 SWAP6 MSTORE DUP5 MSTORE DUP4 ADD MSTORE SWAP1 PUSH1 0x80 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15C7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCCE DUP2 PUSH2 0x1AA6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15E3 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCCE DUP2 PUSH2 0x1AA6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1603 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x160E DUP2 PUSH2 0x1AA6 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x161E DUP2 PUSH2 0x1AA6 JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1644 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xCCE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1664 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x167F JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x16AD JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP4 CALLDATALOAD SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16E1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0xCCE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1703 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1721 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1734 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1742 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1753 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x178B JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x176F JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x179C JUMPI DUP3 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP9 SWAP1 MSTORE DUP7 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x180A DUP4 DUP3 ADD DUP6 PUSH2 0x1766 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1840 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xDCA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x1870 JUMPI PUSH2 0x1870 PUSH2 0x1A90 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x1870 JUMPI PUSH2 0x1870 PUSH2 0x1A90 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP3 MSTORE PUSH1 0x40 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0xE11 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1766 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x18ED JUMPI PUSH2 0x18ED PUSH2 0x1A64 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1901 JUMPI PUSH2 0x1901 PUSH2 0x1A7A JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST DUP1 DUP3 JUMPDEST PUSH1 0x1 DUP1 DUP7 GT PUSH2 0x1918 JUMPI POP PUSH2 0x1943 JUMP JUMPDEST DUP2 DUP8 DIV DUP3 GT ISZERO PUSH2 0x192A JUMPI PUSH2 0x192A PUSH2 0x1A64 JUMP JUMPDEST DUP1 DUP7 AND ISZERO PUSH2 0x1937 JUMPI SWAP2 DUP2 MUL SWAP2 JUMPDEST SWAP5 SWAP1 SWAP5 SHR SWAP4 DUP1 MUL PUSH2 0x1909 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDCA PUSH1 0x0 NOT DUP5 DUP5 PUSH1 0x0 DUP3 PUSH2 0x1965 JUMPI POP PUSH1 0x1 PUSH2 0xCCE JUMP JUMPDEST DUP2 PUSH2 0x1972 JUMPI POP PUSH1 0x0 PUSH2 0xCCE JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x1988 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x1992 JUMPI PUSH2 0x19BF JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0xCCE JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x19A3 JUMPI PUSH2 0x19A3 PUSH2 0x1A64 JUMP JUMPDEST PUSH1 0x1 DUP5 SHL SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x19B9 JUMPI PUSH2 0x19B9 PUSH2 0x1A64 JUMP JUMPDEST POP PUSH2 0xCCE JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x19F2 JUMPI POP DUP2 DUP2 EXP DUP4 DUP2 GT ISZERO PUSH2 0x19ED JUMPI PUSH2 0x19ED PUSH2 0x1A64 JUMP JUMPDEST PUSH2 0xCCE JUMP JUMPDEST PUSH2 0x19FF DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x1906 JUMP JUMPDEST DUP1 DUP7 DIV DUP3 GT ISZERO PUSH2 0x1A11 JUMPI PUSH2 0x1A11 PUSH2 0x1A64 JUMP JUMPDEST MUL SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1A34 JUMPI PUSH2 0x1A34 PUSH2 0x1A64 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1A4B JUMPI PUSH2 0x1A4B PUSH2 0x1A64 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A5F JUMPI PUSH2 0x1A5F PUSH2 0x1A7A JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x538 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0xE1 CALLVALUE GASPRICE 0xE3 0xCF GASLIMIT 0xCC SWAP9 PUSH20 0x15EA3DF5115358453BEC437A4D8D956C9C7AC8DC BALANCE 0xC0 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"208:3907:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:100:12;2477:14;;;;2394:100;;;;;;:::i;:::-;;;;;;;;3863:124:66;;;:::i;:::-;;;-1:-1:-1;;;;;4558:32:103;;;4540:51;;4528:2;4513:18;3863:124:66;4495:102:103;2220:83:12;2286:14;;2220:83;;;6156:25:103;;;6144:2;6129:18;2220:83:12;6111:76:103;2500:136:12;;;:::i;:::-;;;;;;;:::i;3279:78::-;;;:::i;:::-;;2973:120;;;:::i;:::-;;;5983:14:103;;5976:22;5958:41;;5946:2;5931:18;2973:120:12;5913:92:103;342:94:66;;;;;;:::i;:::-;;;;;;;;;;;;;;2949:214;;;;;;:::i;:::-;;:::i;3220:414::-;;;;;;:::i;:::-;3491:136;;;;;;6451:25:103;;;;6492:18;;;6485:34;;;;3442:26:66;6535:18:103;;6528:34;;;;6578:18;;;6571:34;6621:19;;;;6614:35;;;;3491:136:66;;;;;;;;;;6423:19:103;;;;3491:136:66;;;3220:414;;;;;;;;:::i;468:22::-;;;;;;3689:77:12;;;:::i;3101:86::-;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;3750:107:66;3843:7;;3750:107;;2309:79:12;2373:12;;2309:79;;3195:78;;;:::i;1831:101:41:-;;;:::i;2642:77:12:-;;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;2389:554:66;;;;;;:::i;:::-;;:::i;2851:116:12:-;;;:::i;3640:104:66:-;3732:5;;3640:104;;3363:77:12;;;:::i;442:20:66:-;;;;;;1143:436;;;;;;:::i;:::-;;:::i;2131:81:12:-;;;;;;:::i;:::-;;:::i;2727:118::-;;;:::i;3993:120:66:-;;;:::i;2081:198:41:-;;;;;;:::i;:::-;;:::i;1585:798:66:-;;;;;;:::i;:::-;;:::i;3863:124::-;3914:24;3957:23;9184:6:1;;-1:-1:-1;;;;;9184:6:1;9098:98;;3957:23:66;3950:30;;3863:124;:::o;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;6156:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;6129:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3279:78::-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;;;;;;;;;3339:15:::1;:13;:15::i;:::-;3279:78::o:0;2973:120::-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;2949:214:66:-;1094:13:41;:11;:13::i;:::-;2949:214:66;:::o;3689:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3748:15:::1;3279:78:::0;3195;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;1831:101:41:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;2389:554:66:-:0;11663:28:1;;;;:17;:28;;;;;;;;-1:-1:-1;;;;;11663:28:1;11649:10;:42;11641:95;;;;-1:-1:-1;;;11641:95:1;;10099:2:103;11641:95:1;;;10081:21:103;10138:2;10118:18;;;10111:30;10177:34;10157:18;;;10150:62;-1:-1:-1;;;10228:18:103;;;10221:38;10276:19;;11641:95:1;10071:230:103;11641:95:1;11749:28;;;;:17;:28;;;;;;11742:35;;-1:-1:-1;;;;;;11742:35:1;;;11788:29;11767:9;;11788:29;;;2625:18:66::1;2646:31:::0;;;:11:::1;:31;::::0;;;;;;;;2708:42;;;;::::1;6891:25:103::0;;;6932:18;;;6925:34;;;6975:18;;;6968:34;;;7018:18;;;7011:34;;;2646:31:66;2625:18;6863:19:103;;2708:42:66::1;;;;;;;;;;;;2687:63;;2768:26;2777:10;2789:4;2768:8;:26::i;:::-;2812:31;::::0;;;:11:::1;:31;::::0;;;;;;;2805:38;;;;2858:78;;11028:25:103;;;11069:18;;;11062:34;;;11112:18;;;11105:34;;;11170:2;11155:18;;11148:34;;;11213:3;11198:19;;11191:35;;;11257:3;11242:19;;11235:35;;;2858:78:66::1;::::0;11015:3:103;11000:19;2858:78:66::1;;;;;;;;11823:1:1;;2389:554:66::0;;;;;;:::o;2851:116:12:-;2900:4;;2915:49;;3363:77;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3422:15:::1;:13;:15::i;1143:436:66:-:0;1094:13:41;:11;:13::i;:::-;-1:-1:-1;;;;;1352:29:66;::::1;::::0;1348:74:::1;;8688:6:1::0;:40;;-1:-1:-1;;;;;;8688:40:1;-1:-1:-1;;;;;8688:40:1;;;;;1385:34:66::1;-1:-1:-1::0;;;;;1435:32:66;::::1;::::0;1431:81:::1;;8457:8:1::0;:43;;-1:-1:-1;;;;;;8457:43:1;-1:-1:-1;;;;;8457:43:1;;;;;1471:38:66::1;1530:5;:14:::0;;;;1554:7:::1;:18:::0;-1:-1:-1;;1143:436:66:o;2131:81:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;2727:118::-;2777:4;2810:32;2792:50;;3993:120:66;4047:16;4082:24;9412:8:1;;-1:-1:-1;;;;;9412:8:1;9325:101;;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;8571:2:103;2161:73:41::1;::::0;::::1;8553:21:103::0;8610:2;8590:18;;;8583:30;8649:34;8629:18;;;8622:62;-1:-1:-1;;;8700:18:103;;;8693:36;8746:19;;2161:73:41::1;8543:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;1585:798:66:-:0;375:28:17;-1:-1:-1;;;375:19:17;:28::i;:::-;-1:-1:-1;;;;;359:44:17;719:10:59;-1:-1:-1;;;;;359:44:17;;336:122;;;;-1:-1:-1;;;336:122:17;;9743:2:103;336:122:17;;;9725:21:103;9782:2;9762:18;;;9755:30;9821:29;9801:18;;;9794:57;9868:18;;336:122:17;9715:177:103;336:122:17;1704:33:66::1;1740:112;1775:5;;1802:4;1821:21;;;1740;:112::i;:::-;1704:148:::0;-1:-1:-1;1877:17:66::1;::::0;;1964:46:::1;::::0;;::::1;1975:5:::0;1964:46:::1;:::i;:::-;1863:147;;;;;;2021:50;;;;;;;;;;;;;;-1:-1:-1::0;;;2021:50:66::1;;::::0;2047:23:::1;:9;:21;:23::i;:::-;2021:8:::0;;:50;:12:::1;:50::i;:::-;2081:42;;;;;;;;;;;;;;-1:-1:-1::0;;;2081:42:66::1;;::::0;2103:19:::1;:5;:17;:19::i;2081:42::-;2133:44;;;;;;;;;;;;;;-1:-1:-1::0;;;2133:44:66::1;;::::0;2156:20:::1;:6;:18;:20::i;2133:44::-;2188:26;2217:39;2238:8;2248:7;;2217:20;:39::i;:::-;2267:31;::::0;;;:11:::1;:31;::::0;;;;;;;;:46;;;2328:48;;10662:25:103;;;10703:18;;;10696:34;;;2267:31:66;;-1:-1:-1;2328:48:66::1;::::0;10635:18:103;2328:48:66::1;10617:119:103::0;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;6156:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;6129:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;;4875:145;;;;:::o;810:95:17:-;870:26;888:7;2373:12:12;;2309:79;;888:7:17;870:26;;6156:25:103;;;6144:2;6129:18;870:26:17;;;;;;;810:95::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;9382:2:103;1414:68:41;;;9364:21:103;;;9401:18;;;9394:30;9460:34;9440:18;;;9433:62;9512:18;;1414:68:41;9354:182:103;913:79:17;963:26;981:7;2373:12:12;;2309:79;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;1085:123:17:-;1161:14;;:39;;-1:-1:-1;;;1161:39:17;;-1:-1:-1;;;;;1161:14:17;;;;:22;;:39;;1184:9;;1195:4;;1161:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:123;;:::o;998:79::-;1048:26;1066:7;2373:12:12;;2309:79;;1850:283:1;1992:24;;:::i;:::-;2024:28;;:::i;:::-;2065:63;:3;2080:6;2088:12;2102:25;2065:14;:63::i;:::-;2058:70;;;1850:283;;;;;;:::o;3973:506:71:-;4031:13;4057:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;4057:16:71;4125:4;4119:11;4166:4;4161:3;4157:14;4151:4;4144:28;4198:4;4193:3;4186:17;4240:3;4233:4;4228:3;4224:14;4217:27;;4276:9;4280:4;4276:3;:9::i;:::-;4265:20;;;:8;;4318:20;;;;;;-1:-1:-1;;;4318:20:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4318:20:71;;4298:40;;4349:11;4401:2;4396:3;4392:12;4382:22;;4416:34;4423:6;4431:3;:8;;;4441:3;:8;;;4416:6;:34::i;:::-;-1:-1:-1;4468:3:71;3973:506;-1:-1:-1;;;3973:506:71:o;1951:175:0:-;2061:8;;;;:26;;2083:3;2061:21;:26::i;:::-;2093:8;;;;:28;;2115:5;2093:21;:28::i;:::-;1951:175;;;:::o;2992:177:1:-;3140:8;;3087:7;;3109:55;;-1:-1:-1;;;;;3140:8:1;3151:3;3156:7;3109:22;:55::i;:::-;3102:62;;2992:177;;;;;:::o;987:351:0:-;1129:24;;:::i;:::-;1161:49;1182:4;:8;;;361:3;1161:20;:49::i;:::-;-1:-1:-1;;1216:15:0;;;-1:-1:-1;;;;;1237:35:0;;:20;;;:35;-1:-1:-1;;;;;;1278:38:0;;:23;;;:38;1216:4;987:351;;;;;;;:::o;3075:830:71:-;3125:4;;3165:9;3161:36;;3196:1;3189:8;;;;;3161:36;3225:17;3212:30;;3208:156;;3264:9;3271:2;3264:9;;:::i;:::-;;-1:-1:-1;3303:48:71;-1:-1:-1;;;3308:4:71;3303:48;:::i;:::-;3295:57;-1:-1:-1;3208:156:71;3391:16;3378:29;;3374:138;;3429:8;3436:1;3429:8;;:::i;:::-;;-1:-1:-1;3467:32:71;3480:19;3472:4;3467:32;:::i;:::-;3459:41;-1:-1:-1;3374:138:71;3539:16;3526:29;;3522:130;;3577:8;3584:1;3577:8;;:::i;:::-;;-1:-1:-1;3615:24:71;3628:11;3620:4;3615:24;:::i;:::-;3607:33;-1:-1:-1;3522:130:71;3679:16;3666:29;;3662:126;;3717:8;3724:1;3717:8;;:::i;:::-;;-1:-1:-1;3755:20:71;3768:7;3760:4;3755:20;:::i;:::-;3747:29;-1:-1:-1;3662:126:71;3815:15;3802:28;;3798:74;;3852:8;3859:1;3852:8;;:::i;:::-;;;3798:74;3889:8;3894:3;3889:2;:8;:::i;2231:641::-;2368:2;2360:4;:10;2354:172;;2440:10;;2427:24;;2480:10;2488:2;2434:4;2480:10;:::i;:::-;;-1:-1:-1;2505:9:71;2512:2;2505:9;;:::i;:::-;;-1:-1:-1;2372:10:71;2380:2;2372:10;;:::i;:::-;;;2354:172;;;-1:-1:-1;;2612:8:71;;2608:70;;2665:1;2652:9;2657:4;2652:2;:9;:::i;:::-;2644:18;;:3;:18;:::i;:::-;:22;;;;:::i;:::-;2637:29;;2608:70;2731:10;;2787:11;;2783:22;;2743:9;;2727:26;2832:21;;;;2819:35;;;-1:-1:-1;2697:168:71:o;2777:204:9:-;2875:71;2894:3;383:1;2931:5;2925:19;2875:18;:71::i;:::-;2952:24;:3;2969:5;2952:10;:24::i;3687:756:1:-;3864:14;;3823:17;;3901:9;3864:14;3909:1;3901:9;:::i;:::-;3884:14;:26;4245:6;;4280:22;;;;;4350:7;;;;:11;3946:421;;3916:27;;-1:-1:-1;;;3976:48:1;3946:421;;3916:27;;;;4245:6;4267:4;;4280:22;4310:5;;837:1;;3946:421;;;:::i;:::-;;;;-1:-1:-1;;3946:421:1;;;;;;;;;;;;;;-1:-1:-1;;;;;3946:421:1;-1:-1:-1;;;;;;3946:421:1;;;;;;;;;;;-1:-1:-1;4380:58:1;4392:13;4407:5;4414:7;3946:421;4380:11;:58::i;:::-;4373:65;3687:756;-1:-1:-1;;;;;;3687:756:1:o;1001:399:8:-;-1:-1:-1;;;;;;;;;;;;;;;;;1100:13:8;1111:2;1100:8;:13;:::i;:::-;:18;1096:71;;1146:13;1157:2;1146:8;:13;:::i;:::-;1140:20;;:2;:20;:::i;:::-;1128:32;;;;:::i;:::-;;;1096:71;-1:-1:-1;1214:12:8;;;;:23;;;1277:4;1271:11;;1289:16;;;-1:-1:-1;1312:14:8;;1354:18;;;1346:27;1333:41;;1214:12;1001:399::o;682:625:9:-;803:2;794:5;:11;;;791:512;;815:44;:3;837:20;847:1;838:10;;;837:20;;;815:15;:44::i;:::-;;791:512;;;885:4;876:5;:13;;;872:431;;899:41;:3;936:2;922:10;931:1;922:10;;;;921:17;899:15;:41::i;:::-;-1:-1:-1;948:23:9;:3;:23;;;969:1;948:13;:23::i;872:431::-;997:6;988:5;:15;;;984:319;;1013:41;:3;1050:2;1036:10;1045:1;1036:10;;;;1035:17;1013:15;:41::i;:::-;-1:-1:-1;1062:23:9;:3;:23;;;1083:1;1062:13;:23::i;984:319::-;1111:10;1102:5;:19;;;1098:205;;1131:41;:3;1168:2;1154:10;1163:1;1154:10;;;;1153:17;1131:15;:41::i;:::-;-1:-1:-1;1180:23:9;:3;:23;;;1201:1;1180:13;:23::i;1098:205::-;1224:41;:3;1261:2;1247:10;1256:1;1247:10;;;;1246:17;1224:15;:41::i;:::-;-1:-1:-1;1273:23:9;:3;:23;;;1294:1;1273:13;:23::i;:::-;;682:625;;;:::o;4692:155:8:-;-1:-1:-1;;;;;;;;;;;;;;;;;4797:45:8;4803:3;4808;:7;;;:14;4824:4;4830;:11;4797:5;:45::i;6629:430:1:-;6818:29;;-1:-1:-1;;6835:4:1;4272:2:103;4268:15;4264:53;6818:29:1;;;4252:66:103;4334:12;;;4327:28;;;6771:17:1;;4371:12:103;;6818:29:1;;;;;;-1:-1:-1;;6818:29:1;;;;;;6808:40;;6818:29;6808:40;;;;6854:28;;;;:17;:28;;;;;;:44;;-1:-1:-1;;;;;;6854:44:1;-1:-1:-1;;;;;6854:44:1;;;;;6808:40;;-1:-1:-1;6808:40:1;;6909:29;;6854:28;6909:29;6952:6;;:62;;-1:-1:-1;;;6952:62:1;;-1:-1:-1;;;;;6952:6:1;;;;:22;;:62;;6975:13;;6990:7;;6999:14;;6952:62;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6944:110;;;;-1:-1:-1;;;6944:110:1;;8978:2:103;6944:110:1;;;8960:21:103;9017:2;8997:18;;;8990:30;9056:34;9036:18;;;9029:62;-1:-1:-1;;;9107:18:103;;;9100:33;9150:19;;6944:110:1;8950:225:103;6040:145:8;-1:-1:-1;;;;;;;;;;;;;;;;;6143:37:8;6154:3;6159;:7;;;:14;6175:4;6143:10;:37::i;9894:177::-;-1:-1:-1;;;;;;;;;;;;;;;;;10026:40:8;10035:3;10040;:7;;;:14;10056:4;10062:3;10026:8;:40::i;2745:1210::-;-1:-1:-1;;;;;;;;;;;;;;;;;2903:4:8;:11;2896:3;:18;;2888:27;;;;;;2938:12;;;;2926:9;2932:3;2926;:9;:::i;:::-;:24;2922:90;;;2960:45;2967:3;2972:28;2976:3;:12;;;2996:3;2990;:9;;;;:::i;:::-;2972:3;:28::i;:::-;:32;;3003:1;2972:32;:::i;:::-;2960:6;:45::i;:::-;3018:12;3036:11;3133:3;3127:10;3204:6;3198:13;3320:3;3315:2;3307:6;3303:15;3299:25;3291:33;;3404:6;3398:3;3393;3389:13;3386:25;3383:2;;;3446:3;3441;3437:13;3429:6;3422:29;3383:2;-1:-1:-1;;;3483:2:8;3473:13;;3544:129;3558:2;3551:3;:9;3544:129;;3613:10;;3600:24;;3639:10;3647:2;3607:4;3639:10;:::i;:::-;;-1:-1:-1;3657:9:8;3664:2;3657:9;;:::i;:::-;;-1:-1:-1;3562:9:8;3569:2;3562:9;;:::i;:::-;;;3544:129;;;3807:10;3858:11;;-1:-1:-1;;3747:2:8;:8;;;3741:3;:15;3740:21;3854:22;;;3819:9;;3803:26;;;;3898:21;3885:35;;-1:-1:-1;3947:3:8;2745:1210;;;;;;:::o;5148:639::-;-1:-1:-1;;;;;;;;;;;;;;;;;5283:3:8;:12;;;5276:3;:19;5272:69;;5305:29;5312:3;5317;:12;;;5332:1;5317:16;;;;:::i;5305:29::-;5427:3;5421:10;5498:6;5492:13;5610:2;5604:3;5596:6;5592:16;5588:25;5634:4;5628;5620:19;;5705:6;5700:3;5697:15;5694:2;;;5750:1;5742:6;5738:14;5730:6;5723:30;5694:2;-1:-1:-1;5779:3:8;;5148:639;-1:-1:-1;;;;5148:639:8:o;8974:675::-;-1:-1:-1;;;;;;;;;;;;;;;;;9130:12:8;;;;9118:9;9124:3;9118;:9;:::i;:::-;:24;9114:73;;;9152:28;9159:3;9165:9;9171:3;9165;:9;:::i;9152:28::-;9193:12;9221:1;9209:8;9214:3;9209;:8;:::i;:::-;9208:14;;;;:::i;:::-;9193:29;;9308:3;9302:10;9423:3;9417;9409:6;9405:16;9401:26;9479:4;9471;9467:9;9460:4;9454:11;9450:27;9447:37;9441:4;9434:51;;9567:6;9561:13;9555:3;9550;9546:13;9543:32;9540:2;;;9610:3;9605;9601:13;9593:6;9586:29;9540:2;-1:-1:-1;9641:3:8;;8974:675;-1:-1:-1;;;;;8974:675:8:o;1961:124::-;2018:7;2041:1;2037;:5;2033:34;;;-1:-1:-1;2059:1:8;2052:8;;2033:34;-1:-1:-1;2079:1:8;1961:124;-1:-1:-1;1961:124:8:o;1801:156::-;1895:7;;1908:19;1895:3;1918:8;1908:4;:19::i;:::-;;1933;1940:3;1945:6;1933;:19::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:535::-;;;;;705:3;693:9;684:7;680:23;676:33;673:2;;;727:6;719;712:22;673:2;771:9;758:23;790:31;815:5;790:31;:::i;:::-;840:5;-1:-1:-1;897:2:103;882:18;;869:32;910:33;869:32;910:33;:::i;:::-;663:414;;962:7;;-1:-1:-1;;;;1016:2:103;1001:18;;988:32;;1067:2;1052:18;1039:32;;663:414::o;1082:297::-;;1202:2;1190:9;1181:7;1177:23;1173:32;1170:2;;;1223:6;1215;1208:22;1170:2;1260:9;1254:16;1313:5;1306:13;1299:21;1292:5;1289:32;1279:2;;1340:6;1332;1325:22;1384:190;;1496:2;1484:9;1475:7;1471:23;1467:32;1464:2;;;1517:6;1509;1502:22;1464:2;-1:-1:-1;1545:23:103;;1454:120;-1:-1:-1;1454:120:103:o;1579:326::-;;;;1725:2;1713:9;1704:7;1700:23;1696:32;1693:2;;;1746:6;1738;1731:22;1693:2;-1:-1:-1;;1774:23:103;;;1844:2;1829:18;;1816:32;;-1:-1:-1;1895:2:103;1880:18;;;1867:32;;1683:222;-1:-1:-1;1683:222:103:o;1910:464::-;;;;;;2090:3;2078:9;2069:7;2065:23;2061:33;2058:2;;;2112:6;2104;2097:22;2058:2;-1:-1:-1;;2140:23:103;;;2210:2;2195:18;;2182:32;;-1:-1:-1;2261:2:103;2246:18;;2233:32;;2312:2;2297:18;;2284:32;;-1:-1:-1;2363:3:103;2348:19;2335:33;;-1:-1:-1;2048:326:103;-1:-1:-1;2048:326:103:o;2379:299::-;;2521:2;2509:9;2500:7;2496:23;2492:32;2489:2;;;2542:6;2534;2527:22;2489:2;2579:9;2573:16;2618:1;2611:5;2608:12;2598:2;;2639:6;2631;2624:22;2878:709;;;;3026:2;3014:9;3005:7;3001:23;2997:32;2994:2;;;3047:6;3039;3032:22;2994:2;3088:9;3075:23;3065:33;;3149:2;3138:9;3134:18;3121:32;3172:18;3213:2;3205:6;3202:14;3199:2;;;3234:6;3226;3219:22;3199:2;3277:6;3266:9;3262:22;3252:32;;3322:7;3315:4;3311:2;3307:13;3303:27;3293:2;;3349:6;3341;3334:22;3293:2;3394;3381:16;3420:2;3412:6;3409:14;3406:2;;;3441:6;3433;3426:22;3406:2;3491:7;3486:2;3477:6;3473:2;3469:15;3465:24;3462:37;3459:2;;;3517:6;3509;3502:22;3459:2;3553;3549;3545:11;3535:21;;3575:6;3565:16;;;;;2984:603;;;;;:::o;3592:475::-;;3671:5;3665:12;3698:6;3693:3;3686:19;3723:3;3735:162;3749:6;3746:1;3743:13;3735:162;;;3811:4;3867:13;;;3863:22;;3857:29;3839:11;;;3835:20;;3828:59;3764:12;3735:162;;;3915:6;3912:1;3909:13;3906:2;;;3981:3;3974:4;3965:6;3960:3;3956:16;3952:27;3945:40;3906:2;-1:-1:-1;4049:2:103;4028:15;-1:-1:-1;;4024:29:103;4015:39;;;;4056:4;4011:50;;3641:426;-1:-1:-1;;3641:426:103:o;4602:821::-;-1:-1:-1;;;;;5003:15:103;;;4985:34;;5050:2;5035:18;;5028:34;;;5093:2;5078:18;;5071:34;;;5141:15;;5136:2;5121:18;;5114:43;-1:-1:-1;;;;;;5194:33:103;;5188:3;5173:19;;5166:62;4965:3;5244:19;;5237:35;;;5303:3;5288:19;;5281:35;;;4935:3;5210;5332:19;;5325:31;;;4602:821;;5373:44;5398:18;;;5390:6;5373:44;:::i;:::-;5365:52;4915:508;-1:-1:-1;;;;;;;;;;;4915:508:103:o;5428:385::-;;5660:1;5656;5651:3;5647:11;5643:19;5635:6;5631:32;5620:9;5613:51;5700:6;5695:2;5684:9;5680:18;5673:34;5743:2;5738;5727:9;5723:18;5716:30;5763:44;5803:2;5792:9;5788:18;5780:6;5763:44;:::i;:::-;5755:52;5603:210;-1:-1:-1;;;;;5603:210:103:o;7056:217::-;;7203:2;7192:9;7185:21;7223:44;7263:2;7252:9;7248:18;7240:6;7223:44;:::i;7504:250::-;7655:2;7640:18;;7688:1;7677:13;;7667:2;;7694:18;;:::i;:::-;7723:25;;;7622:132;:::o;7759:249::-;7909:2;7894:18;;7942:1;7931:13;;7921:2;;7948:18;;:::i;8013:351::-;8215:2;8197:21;;;8254:2;8234:18;;;8227:30;8293:29;8288:2;8273:18;;8266:57;8355:2;8340:18;;8187:177::o;11281:288::-;;11456:6;11445:9;11438:25;11499:2;11494;11483:9;11479:18;11472:30;11519:44;11559:2;11548:9;11544:18;11536:6;11519:44;:::i;11574:128::-;;11645:1;11641:6;11638:1;11635:13;11632:2;;;11651:18;;:::i;:::-;-1:-1:-1;11687:9:103;;11622:80::o;11707:120::-;;11773:1;11763:2;;11778:18;;:::i;:::-;-1:-1:-1;11812:9:103;;11753:74::o;11832:453::-;11928:6;11951:5;11965:314;12014:1;12051:2;12041:8;12038:16;12028:2;;12058:5;;;12028:2;12099:4;12094:3;12090:14;12084:4;12081:24;12078:2;;;12108:18;;:::i;:::-;12158:2;12148:8;12144:17;12141:2;;;12173:16;;;;12141:2;12252:17;;;;;12212:15;;11965:314;;;11909:376;;;;;;;:::o;12290:139::-;;12379:44;-1:-1:-1;;12406:8:103;12400:4;12434:922;12518:8;12508:2;;-1:-1:-1;12559:1:103;12573:5;;12508:2;12607:4;12597:2;;-1:-1:-1;12644:1:103;12658:5;;12597:2;12689:4;12707:1;12702:59;;;;12775:1;12770:183;;;;12682:271;;12702:59;12732:1;12723:10;;12746:5;;;12770:183;12807:3;12797:8;12794:17;12791:2;;;12814:18;;:::i;:::-;12870:1;12860:8;12856:16;12847:25;;12898:3;12891:5;12888:14;12885:2;;;12905:18;;:::i;:::-;12938:5;;;12682:271;;13037:2;13027:8;13024:16;13018:3;13012:4;13009:13;13005:36;12999:2;12989:8;12986:16;12981:2;12975:4;12972:12;12968:35;12965:77;12962:2;;;-1:-1:-1;13074:19:103;;;13109:14;;;13106:2;;;13126:18;;:::i;:::-;13159:5;;12962:2;13206:42;13244:3;13234:8;13228:4;13225:1;13206:42;:::i;:::-;13281:6;13276:3;13272:16;13263:7;13260:29;13257:2;;;13292:18;;:::i;:::-;13330:20;;12498:858;-1:-1:-1;;;;12498:858:103:o;13361:168::-;;13467:1;13463;13459:6;13455:14;13452:1;13449:21;13444:1;13437:9;13430:17;13426:45;13423:2;;;13474:18;;:::i;:::-;-1:-1:-1;13514:9:103;;13413:116::o;13534:125::-;;13602:1;13599;13596:8;13593:2;;;13607:18;;:::i;:::-;-1:-1:-1;13644:9:103;;13583:76::o;13664:112::-;;13722:1;13712:2;;13727:18;;:::i;:::-;-1:-1:-1;13761:9:103;;13702:74::o;13781:127::-;13842:10;13837:3;13833:20;13830:1;13823:31;13873:4;13870:1;13863:15;13897:4;13894:1;13887:15;13913:127;13974:10;13969:3;13965:20;13962:1;13955:31;14005:4;14002:1;13995:15;14029:4;14026:1;14019:15;14045:127;14106:10;14101:3;14097:20;14094:1;14087:31;14137:4;14134:1;14127:15;14161:4;14158:1;14151:15;14177:131;-1:-1:-1;;;;;14252:31:103;;14242:42;;14232:2;;14298:1;14295;14288:12"},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","cancel(uint256)":"40e58ee5","declineCallback()":"bd1fe5d0","encodeFulfillParameters(bytes32,bytes32,bytes32,bytes32,uint256)":"423b3b7a","fulfill(bytes32,bytes32,bytes32,bytes32,uint256)":"97e873e9","getChainlinkJobId()":"b6e45ee0","getChainlinkOperator()":"e8f8e1c1","getChainlinkPayment()":"5b16d9b2","getChainlinkToken()":"165d35e1","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","gifRequests(bytes32)":"3fb80f51","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","jobId()":"c2939d97","owner()":"8da5cb5b","pauseCallback()":"d73cd992","payment()":"42f6487a","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","request(uint256,bytes)":"ffc79065","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a","updateRequestDetails(address,address,bytes32,uint256)":"ca5ddcf3"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_chainLinkToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_chainLinkOperator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_jobId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_payment\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"ChainlinkRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"chainlinkRequestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"}],\"name\":\"LogAyiiFulfill\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"chainlinkRequestId\",\"type\":\"bytes32\"}],\"name\":\"LogAyiiRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"}],\"name\":\"LogOracleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"chainlinkRequestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"}],\"name\":\"encodeFulfillParameters\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"parameterData\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"chainlinkRequestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"}],\"name\":\"fulfill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainlinkJobId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"chainlinkJobId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainlinkOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainlinkPayment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainlinkToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"linkTokenAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"gifRequests\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"jobId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"payment\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"gifRequestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"request\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_chainLinkToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_chainLinkOperator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_jobId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_payment\",\"type\":\"uint256\"}],\"name\":\"updateRequestDetails\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/AyiiOracle.sol\":\"AyiiOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/Chainlink.sol\":{\"keccak256\":\"0x3e133ddc69d0909fbe338c34b70cbf8dd262c70fd670b3632424c1858de25105\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fbfa4cee3ce9fe3f5be6eda7e3304263d77b514be0bf5fadffa24d3f654ad2d\",\"dweb:/ipfs/QmTQmA4AJ9NookAyTg9DP6Mem6X8WSHJ5WjQJvqhE8K9qV\"]},\"@chainlink/contracts/src/v0.8/ChainlinkClient.sol\":{\"keccak256\":\"0xa221ccfa4763977cc78c57e3a83d47f5aaf7c15535a2c20dba5f46af80fb3bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba0f668a6f55a546ac1fe7fbf8539878a62811c1b0606fb4fadafb62f661e853\",\"dweb:/ipfs/QmTUmXvjWQno67W4CUdkVyTRAwSKWrko8EPjtizzavNVLJ\"]},\"@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol\":{\"keccak256\":\"0xa8adfbd0326c982c38ea3808a4da52f0a51807241787c4bd28235bbe86707c04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://364e3be6190a68fbe84e4ede560af3ccede8d36e40e91378b4de042202c6e86a\",\"dweb:/ipfs/QmNpCP9j3FhBd1hDofg1uMCYiXBKNTU95n1Lxbnnj12oxw\"]},\"@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol\":{\"keccak256\":\"0xe51365458d82233a55f5ad4492a3b6bf56332d21cad6b0a5f21b8a026fcfd6d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40958fa820d41025822fe423111c74d5b8d0dfe1a30ae4fba4f6896a55fc2868\",\"dweb:/ipfs/QmbwYCM5k6h43T6qQV8DEpUxv5uErVSTCD6Fqm5DMLDgNi\"]},\"@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol\":{\"keccak256\":\"0xc7d7cd730d36825485ef4107d93c3ff18b9f3a5a00ea3d5988ba9a0bd70b10c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb1064885ecbcd9c3adba779e190cb4a538e5d4d15aeccb67d3376bdffc94bd\",\"dweb:/ipfs/QmcQHK6ewve7tFi4XXK65JthQg4kQzApQikWcURJjGt4iQ\"]},\"@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol\":{\"keccak256\":\"0x79a7c77b8f87be6ef02a566765077ed599724b060a209f34f8907eec5615da68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6ed9275abc614a37a13f86c148f3a4341d955a6b52a1a655357505e0926caab\",\"dweb:/ipfs/Qmaqgq3HiakdSBAe9NtGXYMxVFBjTkLbzyiiyjJUJ1g1M3\"]},\"@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol\":{\"keccak256\":\"0x3a86242e005bad9daf1b4794399a81ba373069355f38c8a07b58e57abc32513a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8fbc2ccf2b3dfc8249306b7dc63624a4ec6f6ee43649d631f7363710c763b6\",\"dweb:/ipfs/QmePqh8R8EZMygYkawshsWArTrVA8VCdamLGV6ZZsVJgTz\"]},\"@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol\":{\"keccak256\":\"0x42e5d62984f9d57bab7e32b2c6e3af86f4feb232ea2af6c822032fae88203bd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12ec80973bbc95f59ce3a46aadd7761df6e4131bda14a01a265d76a8e007dd5d\",\"dweb:/ipfs/QmXwhsxjbkuXSHu6SX6tZxrQCXrdnJ4o2M7b3yFSgcWR1f\"]},\"@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol\":{\"keccak256\":\"0x89388a631c16ad993e4d76d8d19e08ae98e1397f5dfdfb5f9c0b91015df4cf5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88cb96caa94128821daec5478c0f3646902007b81a0604b2e3ab79ea2f40b056\",\"dweb:/ipfs/Qmd1nu9CpgouPmukNQpZThxKgPZAayXxqBfwbDVHfMrCrF\"]},\"@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol\":{\"keccak256\":\"0x08bda450d4dc1d17147fd29810234d35e2c437f1a99be733cfa7ee516db08a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d47a793b314afe9cd82fcf05ffe4ebbfa5504c2decc83004edbb3b2069d4f0c3\",\"dweb:/ipfs/Qmd2YLSiS8xeeXqireh6qJgTTwVY2VscZpv2cQBU8gkEJT\"]},\"@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol\":{\"keccak256\":\"0x606bda5f3fa27be4cf04f6636dda443b7787b56e87ade988fca2e51d2147613d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63b50d13ca97c4dd62738398bb2e423a36563b827b0af94c0e7a47cf0d4a2e6b\",\"dweb:/ipfs/QmXjy7BmtnPeCLMaMnGGnsxDPGxohfDpYzP8PnUoh6gBGa\"]},\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/Oracle.sol\":{\"keccak256\":\"0xc0de2df5ab9dbde82f5bba5e0bd311b4b0e708a90a7541c453581cd369795d66\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cbfa0790664076b9a1f2c983a27f60ce5b66d9357df9dd17c29f1909a0cdfef6\",\"dweb:/ipfs/Qmco66eWdxHYNJZbaMC6oi1Pqq3WptZgtDs469kF2RkUXB\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/examples/AyiiOracle.sol\":{\"keccak256\":\"0x5d60761feedd779110e83ed9f0b5eee2e23b81ce299a2f7ff2ff4fc00df8b919\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d04483b92a4deab997fadd910d8e08f14646a64ea41a647b002b1497fe62da5\",\"dweb:/ipfs/QmZLETTmZTpRnqFs78MrBAsioL2KpkRdSaT3yoTcBsYcKC\"]},\"contracts/examples/strings.sol\":{\"keccak256\":\"0xfd738537e99c62a46a327a80f52679483a45b4fde2f30c7b68c7d975486b7ba5\",\"license\":\"Apache2\",\"urls\":[\"bzz-raw://695820bb46ee3dfaa66b81dd589494bb336aea479ec8accb62cff77b2f4c351c\",\"dweb:/ipfs/Qma9vkriFdLmcpwm8kPYQqLPnemKd2MeVsSCggvp2nzWUf\"]}},\"version\":1}"}},"contracts/examples/AyiiProduct.sol":{"AyiiProduct":{"abi":[{"inputs":[{"internalType":"bytes32","name":"productName","type":"bytes32"},{"internalType":"address","name":"registry","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"oracleId","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"insurer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payoutAmount","type":"uint256"}],"name":"LogAyiiClaimCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"payoutAmount","type":"uint256"}],"name":"LogAyiiPayoutCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"policyHolder","type":"address"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogAyiiPolicyApplicationCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"policyHolder","type":"address"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogAyiiPolicyCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"LogAyiiPolicyProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"trigger","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"exit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tsi","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"aph","type":"uint256"}],"name":"LogAyiiRiskDataAfterAdjustment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"trigger","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"exit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tsi","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"aph","type":"uint256"}],"name":"LogAyiiRiskDataBeforeAdjustment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"productId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"cropId","type":"bytes32"}],"name":"LogAyiiRiskDataCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"aaay","type":"uint256"}],"name":"LogAyiiRiskDataReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"LogAyiiRiskDataRequestCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"projectId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"cropId","type":"bytes32"}],"name":"LogAyiiRiskDataRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"riskId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"policies","type":"uint256"}],"name":"LogAyiiRiskProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"productAddress","type":"address"}],"name":"LogProductCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"callSuccess","type":"bool"},{"indexed":false,"internalType":"uint256","name":"returnDataLength","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"LogTransferHelperCallFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tokenIsContract","type":"bool"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"LogTransferHelperInputValidation1Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allowance","type":"uint256"}],"name":"LogTransferHelperInputValidation2Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"AAAY_MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AAAY_MIN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INSURER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERCENTAGE_MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POLICY_FLOW","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISK_APH_MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISK_EXIT_MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISK_TSI_AT_EXIT_MIN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERSION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"},{"internalType":"uint256","name":"trigger","type":"uint256"},{"internalType":"uint256","name":"exit","type":"uint256"},{"internalType":"uint256","name":"tsi","type":"uint256"},{"internalType":"uint256","name":"aph","type":"uint256"}],"name":"adjustRisk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applications","outputs":[{"internalType":"uint256","name":"applicationCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"policyHolder","type":"address"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"sumInsured","type":"uint256"},{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"name":"applyForPolicy","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"payoutPercentage","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"calculatePayout","outputs":[{"internalType":"uint256","name":"payoutAmount","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tsi","type":"uint256"},{"internalType":"uint256","name":"trigger","type":"uint256"},{"internalType":"uint256","name":"exit","type":"uint256"},{"internalType":"uint256","name":"aph","type":"uint256"},{"internalType":"uint256","name":"aaay","type":"uint256"}],"name":"calculatePayoutPercentage","outputs":[{"internalType":"uint256","name":"payoutPercentage","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"cancelOracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"netPremium","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"netPremium","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"projectId","type":"bytes32"},{"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"internalType":"bytes32","name":"cropId","type":"bytes32"},{"internalType":"uint256","name":"trigger","type":"uint256"},{"internalType":"uint256","name":"exit","type":"uint256"},{"internalType":"uint256","name":"tsi","type":"uint256"},{"internalType":"uint256","name":"aph","type":"uint256"}],"name":"createRisk","outputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getApplicationDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"applicationIdx","type":"uint256"}],"name":"getApplicationId","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPayoutDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPercentageMultiplier","outputs":[{"internalType":"uint256","name":"multiplier","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"},{"internalType":"uint256","name":"policyIdx","type":"uint256"}],"name":"getPolicyId","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"name":"getRisk","outputs":[{"components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bytes32","name":"projectId","type":"bytes32"},{"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"internalType":"bytes32","name":"cropId","type":"bytes32"},{"internalType":"uint256","name":"trigger","type":"uint256"},{"internalType":"uint256","name":"exit","type":"uint256"},{"internalType":"uint256","name":"tsi","type":"uint256"},{"internalType":"uint256","name":"aph","type":"uint256"},{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bool","name":"requestTriggered","type":"bool"},{"internalType":"uint256","name":"responseAt","type":"uint256"},{"internalType":"uint256","name":"aaay","type":"uint256"},{"internalType":"uint256","name":"payoutPercentage","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct AyiiProduct.Risk","name":"risk","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"projectId","type":"bytes32"},{"internalType":"bytes32","name":"uaiId","type":"bytes32"},{"internalType":"bytes32","name":"cropId","type":"bytes32"}],"name":"getRiskId","outputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getRiskId","outputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"bytes","name":"responseData","type":"bytes"}],"name":"oracleCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"}],"name":"policies","outputs":[{"internalType":"uint256","name":"policyCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"riskId","type":"bytes32"},{"internalType":"uint256","name":"batchSize","type":"uint256"}],"name":"processPoliciesForRisk","outputs":[{"internalType":"bytes32[]","name":"processedPolicies","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"processPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"riskPoolCapacityCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"risks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"triggerOracle","outputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2410:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"585:408:103","statements":[{"body":{"nodeType":"YulBlock","src":"632:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"641:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"649:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"634:6:103"},"nodeType":"YulFunctionCall","src":"634:22:103"},"nodeType":"YulExpressionStatement","src":"634:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"606:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"615:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"602:3:103"},"nodeType":"YulFunctionCall","src":"602:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"627:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"598:3:103"},"nodeType":"YulFunctionCall","src":"598:33:103"},"nodeType":"YulIf","src":"595:2:103"},{"nodeType":"YulAssignment","src":"667:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"683:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"677:5:103"},"nodeType":"YulFunctionCall","src":"677:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"667:6:103"}]},{"nodeType":"YulAssignment","src":"702:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"757:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"742:3:103"},"nodeType":"YulFunctionCall","src":"742:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"712:29:103"},"nodeType":"YulFunctionCall","src":"712:49:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"702:6:103"}]},{"nodeType":"YulAssignment","src":"770:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"825:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"810:3:103"},"nodeType":"YulFunctionCall","src":"810:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"780:29:103"},"nodeType":"YulFunctionCall","src":"780:49:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"770:6:103"}]},{"nodeType":"YulAssignment","src":"838:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"858:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"869:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"854:3:103"},"nodeType":"YulFunctionCall","src":"854:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"848:5:103"},"nodeType":"YulFunctionCall","src":"848:25:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"838:6:103"}]},{"nodeType":"YulAssignment","src":"882:36:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"902:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"913:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"898:3:103"},"nodeType":"YulFunctionCall","src":"898:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"892:5:103"},"nodeType":"YulFunctionCall","src":"892:26:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"882:6:103"}]},{"nodeType":"YulAssignment","src":"927:60:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"971:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"982:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:19:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"937:29:103"},"nodeType":"YulFunctionCall","src":"937:50:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"927:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_addresst_uint256t_uint256t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"511:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"522:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"534:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"542:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"550:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"558:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"566:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"574:6:103","type":""}],"src":"419:574:103"},{"body":{"nodeType":"YulBlock","src":"1099:102:103","statements":[{"nodeType":"YulAssignment","src":"1109:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:103"},"nodeType":"YulFunctionCall","src":"1117:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1166:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1182:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1187:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1178:3:103"},"nodeType":"YulFunctionCall","src":"1178:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1191:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1174:3:103"},"nodeType":"YulFunctionCall","src":"1174:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1162:3:103"},"nodeType":"YulFunctionCall","src":"1162:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:103"},"nodeType":"YulFunctionCall","src":"1144:51:103"},"nodeType":"YulExpressionStatement","src":"1144:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:103","type":""}],"src":"998:203:103"},{"body":{"nodeType":"YulBlock","src":"1307:76:103","statements":[{"nodeType":"YulAssignment","src":"1317:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1329:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1340:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1325:3:103"},"nodeType":"YulFunctionCall","src":"1325:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1317:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1359:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1370:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1352:6:103"},"nodeType":"YulFunctionCall","src":"1352:25:103"},"nodeType":"YulExpressionStatement","src":"1352:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1276:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1287:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1298:4:103","type":""}],"src":"1206:177:103"},{"body":{"nodeType":"YulBlock","src":"1589:415:103","statements":[{"nodeType":"YulAssignment","src":"1599:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1611:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1622:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1607:3:103"},"nodeType":"YulFunctionCall","src":"1607:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1599:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1642:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1653:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1635:6:103"},"nodeType":"YulFunctionCall","src":"1635:25:103"},"nodeType":"YulExpressionStatement","src":"1635:25:103"},{"body":{"nodeType":"YulBlock","src":"1702:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1723:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1730:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1735:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1726:3:103"},"nodeType":"YulFunctionCall","src":"1726:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1716:6:103"},"nodeType":"YulFunctionCall","src":"1716:31:103"},"nodeType":"YulExpressionStatement","src":"1716:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1767:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1770:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1760:6:103"},"nodeType":"YulFunctionCall","src":"1760:15:103"},"nodeType":"YulExpressionStatement","src":"1760:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1795:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1798:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1788:6:103"},"nodeType":"YulFunctionCall","src":"1788:15:103"},"nodeType":"YulExpressionStatement","src":"1788:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1682:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1690:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1679:2:103"},"nodeType":"YulFunctionCall","src":"1679:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1672:6:103"},"nodeType":"YulFunctionCall","src":"1672:21:103"},"nodeType":"YulIf","src":"1669:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1829:3:103"},"nodeType":"YulFunctionCall","src":"1829:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1849:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1822:6:103"},"nodeType":"YulFunctionCall","src":"1822:34:103"},"nodeType":"YulExpressionStatement","src":"1822:34:103"},{"nodeType":"YulVariableDeclaration","src":"1865:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1883:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1888:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1879:3:103"},"nodeType":"YulFunctionCall","src":"1879:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1892:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1875:3:103"},"nodeType":"YulFunctionCall","src":"1875:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1869:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1925:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1910:3:103"},"nodeType":"YulFunctionCall","src":"1910:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1934:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1942:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1930:3:103"},"nodeType":"YulFunctionCall","src":"1930:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1903:6:103"},"nodeType":"YulFunctionCall","src":"1903:43:103"},"nodeType":"YulExpressionStatement","src":"1903:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1977:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1962:3:103"},"nodeType":"YulFunctionCall","src":"1962:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1986:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1994:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1982:3:103"},"nodeType":"YulFunctionCall","src":"1982:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1955:6:103"},"nodeType":"YulFunctionCall","src":"1955:43:103"},"nodeType":"YulExpressionStatement","src":"1955:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1534:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1545:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1553:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1561:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1569:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1580:4:103","type":""}],"src":"1388:616:103"},{"body":{"nodeType":"YulBlock","src":"2183:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2200:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2211:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2193:6:103"},"nodeType":"YulFunctionCall","src":"2193:21:103"},"nodeType":"YulExpressionStatement","src":"2193:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2234:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2245:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2230:3:103"},"nodeType":"YulFunctionCall","src":"2230:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2250:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2223:6:103"},"nodeType":"YulFunctionCall","src":"2223:30:103"},"nodeType":"YulExpressionStatement","src":"2223:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2273:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2284:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2269:3:103"},"nodeType":"YulFunctionCall","src":"2269:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2289:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2262:6:103"},"nodeType":"YulFunctionCall","src":"2262:62:103"},"nodeType":"YulExpressionStatement","src":"2262:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:33:103"},"nodeType":"YulExpressionStatement","src":"2333:33:103"},{"nodeType":"YulAssignment","src":"2375:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2398:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2383:3:103"},"nodeType":"YulFunctionCall","src":"2383:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2375:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2160:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2174:4:103","type":""}],"src":"2009:399:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32t_addresst_addresst_uint256t_uint256t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := mload(add(headStart, 96))\n value4 := mload(add(headStart, 128))\n value5 := abi_decode_address_fromMemory(add(headStart, 160))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620049383803806200493883398101604081905262000034916200058b565b858470506f6c69637944656661756c74466c6f7760781b8488846001826200005c336200035b565b6001600160a01b038116620000c35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b606482015260840160405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000ed620003ab565b600480546001600160a01b0319166001600160a01b039290921691909117905562000117620003c6565b600580546001600160a01b0319166001600160a01b039290921691909117905562000141620003f3565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019457634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001e892909160ff82169130916101009091046001600160a01b031690620005f0565b60405180910390a15050600880546001600160a01b0319166001600160a01b0387161790555060098290556200021e836200040d565b600780546001600160a01b0319166001600160a01b03929092169190911790556200025a6d50726f647563745365727669636560901b6200040d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055620002976e496e7374616e63655365727669636560881b6200040d565b600b80546001600160a01b0319166001600160a01b03929092169190911790556040513081527fced180b842b890d77dab95dcbf4654065589a164226ef9faa91a7601fb67c4679060200160405180910390a15050600f80546001600160a01b0319166001600160a01b038916179055505050600e8390556200032360006200031d3390565b6200049b565b6200034f7ff098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955b826200049b565b5050505050506200063b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620003c16541636365737360d01b6200040d565b905090565b6000620003c17f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200040d565b6000620003c16e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200045857600080fd5b505afa1580156200046d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000493919062000567565b90505b919050565b620004a78282620004ab565b5050565b6000828152600c602090815260408083206001600160a01b038516845290915290205460ff16620004a7576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200050b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b80516001600160a01b03811681146200049657600080fd5b60006020828403121562000579578081fd5b62000584826200054f565b9392505050565b60008060008060008060c08789031215620005a4578182fd5b86519550620005b6602088016200054f565b9450620005c6604088016200054f565b93506060870151925060808701519150620005e460a088016200054f565b90509295509295509295565b84815260808101600385106200061657634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6142ed806200064b6000396000f3fe608060405234801561001057600080fd5b50600436106103fc5760003560e01c806366528c3b11610215578063b9ea8d6611610125578063e0815f0d116100b8578063f2fde38b11610087578063f2fde38b14610836578063f406460c14610849578063f4fdc1fa14610851578063f9d7ff8914610862578063ffa1ad741461086a576103fc565b8063e0815f0d146107f5578063e5d58cd8146107fd578063e9960d8a14610810578063eb80733914610823576103fc565b8063d52d2d06116100f4578063d52d2d06146107bc578063d547741f146107cf578063d73cd9921461061a578063ddbfd8ef146107e2576103fc565b8063b9ea8d6614610771578063bd1fe5d0146107a1578063be169e7e1461061a578063d0e0ba95146107a9576103fc565b806391d14854116101a8578063a18f5ae211610177578063a18f5ae21461061a578063a217fddf146105f4578063a3f4df7e1461074a578063aec8de3914610769578063b3fca9bd1461061a576103fc565b806391d14854146106f057806394f64ff4146107035780639a82f8901461072f5780639dce5ff014610737576103fc565b80637ce5e82f116101e45780637ce5e82f146106ba578063893d20e8146106c25780638da5cb5b146106d757806390e1a2ac146106e8576103fc565b806366528c3b1461068d57806370d2fe5314610697578063715018a61461069f57806378a433a5146106a7576103fc565b806336568abe1161031057806354111315116102a35780635ab1bd53116102725780635ab1bd53146106425780635d1ca631146106595780635e61aa6314610661578063637d08f414610674578063638ce0ba14610685576103fc565b806354111315146105fc578063597ee7981461060757806359dacc6a1461061a5780635a60210914610622576103fc565b8063412f91d9116102df578063412f91d9146105bb57806346b937f6146105ce5780634b6eb669146105e15780634ce9d0a7146105f4576103fc565b806336568abe1461057857806339cf5e161461058b5780633dc5f58e146105a85780633ec92bda1461058b576103fc565b80631b07b17f1161039357806321df0da71161036257806321df0da714610502578063248a9ca314610527578063258d560c1461054a5780632f2ff15d1461055257806330a73da514610565576103fc565b80631b07b17f146104bf5780631b867c63146104d25780631c3456dd146104da5780631fd358aa146104e2576103fc565b80630b228d95116103cf5780630b228d951461047a57806315dae03e1461048f57806317d7de7c146104a25780631865c57d146104aa576103fc565b806301ffc9a714610401578063056c99891461042957806306136f281461044c57806309128d831461045f575b600080fd5b61041461040f366004613b88565b610877565b60405190151581526020015b60405180910390f35b61043e60008051602061429883398151915281565b604051908152602001610420565b61043e61045a3660046139f0565b6108b0565b61043e70506f6c69637944656661756c74466c6f7760781b81565b61048d6104883660046139f0565b610a9b565b005b60035460ff166040516104209190614032565b60015461043e565b6104b2610e2c565b6040516104209190614018565b6104146104cd3660046139f0565b610eb2565b61048d610f5f565b61043e610fae565b6104f56104f0366004613b2d565b610fc0565b6040516104209190613f26565b6008546001600160a01b03165b6040516001600160a01b039091168152602001610420565b61043e6105353660046139f0565b6000908152600c602052604090206001015490565b610414611299565b61048d610560366004613a20565b6112c9565b61048d610573366004613a86565b6112f3565b61048d610586366004613a20565b61131c565b6040805160208101909152600081525b6040516104209190614046565b61043e6105b6366004613ae2565b61139a565b61043e6105c9366004613b2d565b6114ff565b61043e6105dc366004613b4e565b611520565b61043e6105ef366004613968565b6115bd565b61043e600081565b61043e630100000081565b61048d6106153660046139f0565b6117d2565b61048d611975565b6106356106303660046139f0565b6119bf565b6040516104209190614090565b61050f60035461010090046001600160a01b031690565b60025461043e565b61048d61066f366004613d80565b611b06565b6007546001600160a01b031661050f565b61048d611e02565b630100000061043e565b60095461043e565b61048d611e4f565b61048d6106b5366004613b4e565b611e61565b60135461043e565b61050f600080546001600160a01b0316610ead565b6000546001600160a01b031661050f565b61043e61202a565b6104146106fe366004613a20565b612039565b60408051808201909152601081526f2862797465733332207269736b49642960801b602082015261059b565b610414612064565b61043e610745366004613b2d565b61206c565b61043e74105c9958565a595b19125b99195e141c9bd91d58dd605a1b81565b61043e600f81565b61078461077f3660046139f0565b612087565b604080519315158452602084019290925290820152606001610420565b61048d6120bb565b61048d6107b73660046139f0565b612108565b61043e6107ca3660046139f0565b612152565b61048d6107dd366004613a20565b612187565b61043e6107f03660046139f0565b6121ac565b6104146121c3565b61078461080b366004613a4f565b6121cc565b61043e61081e366004613a86565b612269565b61043e6108313660046139f0565b6122a0565b61048d610844366004613930565b6122c3565b61043e612339565b61048d61085f3660046139f0565b50565b60105461043e565b61043e62302e3160e81b81565b60006001600160e01b03198216637965db0b60e01b14806108a857506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60006000805160206142988339815191526108ca81612348565b6000601160006108d986612352565b81526020019081526020016000209050600081600d0154116109425760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031303a5249534b5f554e444546494e45440000000060448201526064015b60405180910390fd5b600a810154156109a35760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031313a4f5241434c455f414c52454144595f5245536044820152651413d391115160d21b6064820152608401610939565b60018101546002820154600383015460408051602081019490945283019190915260608201526000906080016040516020818303038152906040529050610a1485826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600e5461237f565b6008830181905560098301805460ff1916600190811790915542600e85015583549084015460028501546003860154604080518681526020810195909552840192909252606083015260808201529094507f983570285d5bc639119bffe47fdb9708eb765c6cac55a784fd1651fbf1360c0f9060a0015b60405180910390a1505050919050565b600080516020614298833981519152610ab381612348565b6000610abe8361240a565b905060008160600151806020019051810190610ada9190613a08565b60008181526011602090815260409182902082516101e08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401526008810154610100840152600981015460ff161515610120840152600a810154610140840152600b810154610160840152600c810154610180840152600d8101546101a0840152600e01546101c0830152919250908214610be75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4159492d3033313a5249534b5f49445f494e56414c49440000006044820152606401610939565b600081610140015111610c4a5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033323a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b6000828152601260205260409020610c6290866124c4565b610cbc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033333a504f4c4943595f464f525f5249534b5f554e60448201526425a727aba760d91b6064820152608401610939565b6000828152601260205260409020610cd490866124dc565b506000610cea826101800151856040015161206c565b90506000610d088783604051806020016040528060008152506124e8565b60408051898152602081018390529081018490529091507ff3b6fa541c2fb440a7135df726575da0735a6968fa3804a462c63690d4330dbd9060600160405180910390a18115610dc95781610d5e888383612577565b6000610d7b898484604051806020016040528060008152506125e9565b9050610d878982612620565b5050604080518a8152602081018490527fe85c538af9d154780befa06f96e8c8d5ff531c715d3735732ca365e541b15ec8910160405180910390a15050610ddd565b610dd387826126b4565b610ddd878261271e565b610de687612756565b610def876127b8565b6040518781527f88873a4c738a1c855a15847c7daf779056bd64e3e5dce2a378085a56b1e65698906020015b60405180910390a150505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190613bb0565b905090565b6000600080516020614298833981519152610ecc81612348565b610ed58361240a565b50610edf836127e9565b91508115610f59576000610ef28461240a565b90506000610eff85612868565b805160208085015160408087015181518b81526001600160a01b039095169385019390935283015260608201529091507f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d190608001610a8b565b50919050565b610f746810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614610fa45760405162461bcd60e51b815260040161093990614059565b610fac6129a3565b565b610fbd6301000000600f6141ac565b81565b6060600080516020614298833981519152610fda81612348565b60008481526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a8201546101408201819052600b830154610160830152600c830154610180830152600d8301546101a0830152600e909201546101c0820152906110f35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033303a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b600085815260126020526040812061110a906129e0565b9050806111625760408051878152600060208201527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a150506040805160008152602081019091529150611292565b8461116f5780945061117c565b61117985826129ea565b94505b8467ffffffffffffffff8111156111a357634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156111cc578160200160208202803683370190505b50935060006111dc6001836141cb565b905060005b8681101561125457600088815260126020526040812061120a9061120584866141cb565b612a01565b905061121581610a9b565b8087838151811061123657634e487b7160e01b600052603260045260246000fd5b6020908102919091010152508061124c81614225565b9150506111e1565b5060408051888152602081018890527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a15050505b5092915050565b600060025b60035460ff1660028111156112c357634e487b7160e01b600052602160045260246000fd5b14905090565b6000828152600c60205260409020600101546112e481612348565b6112ee8383612a0d565b505050565b60008051602061429883398151915261130b81612348565b611316848484612a93565b50505050565b6001600160a01b038116331461138c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610939565b6113968282612ad2565b5050565b60006000805160206142988339815191526113b481612348565b6113c086868686612b39565b6113cb898989612269565b60108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018190556000818152601160205260409020600d81015491935090156114695760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3030313a5249534b5f414c52454144595f45584953546044820152605360f81b6064820152608401610939565b828155600181018a905560028101899055600381018890556004810187905560058101869055600681018590556007810184905542600d8201819055600e82015560408051848152602081018c90529081018a9052606081018990527f817b0e272a7b333532cb6439a34e3ec00922e22926032442220a69868f02d8dc9060800160405180910390a15050979650505050505050565b60008281526012602052604081206115179083612a01565b90505b92915050565b600061152c85846141ac565b61153a6301000000846141ac565b10611547575060006115b4565b61155184846141ac565b61155f6301000000846141ac565b1161156b5750846115b4565b60008361157c8463010000006141ac565b611586919061418c565b905061159285876141cb565b61159c82886141cb565b6115a690896141ac565b6115b0919061418c565b9150505b95945050505050565b60006000805160206142988339815191526115d781612348565b6000838152601160205260409020600d8101546116365760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3030343a5249534b5f554e444546494e4544000000006044820152606401610939565b6001600160a01b03871661168c5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3030353a504f4c4943595f484f4c4445525f5a45524f6044820152606401610939565b6040805160208082018352600082528251808201889052835180820390920182528301909252906116c08989898585612e43565b601380546001810182556000919091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09001819055604080518281526001600160a01b038c1660208201529081018a9052606081018990529095507fb6b5fb82ad406a44dc88433d286d201520c295308f087a476b845f907d3bd6039060800160405180910390a16000611753866127e9565b905080156117c55760008781526012602052604090206117739087612ed8565b50604080518781526001600160a01b038c1660208201529081018a9052606081018990527f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d19060800160405180910390a15b5050505050949350505050565b6000805160206142988339815191526117ea81612348565b6000601160006117f985612352565b81526020019081526020016000209050600081600d01541161185d5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031323a5249534b5f554e444546494e4544000000006044820152606401610939565b600981015460ff166118c05760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031333a4f5241434c455f524551554553545f4e4f5460448201526517d193d5539160d21b6064820152608401610939565b600a810154156119125760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3031343a4558495354494e475f43414c4c4241434b006044820152606401610939565b61191f8160080154612ee4565b60098101805460ff1916905542600e82015560088101546040805185815260208101929092527fdeeac61c3ad18e6efca12eac38425c944b5bbca5b482e39b549671e05544c3dc910160405180910390a1505050565b61198a6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146119ba5760405162461bcd60e51b815260040161093990614059565b610fac565b611a46604051806101e0016040528060008019168152602001600080191681526020016000801916815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060009081526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a820154610140820152600b820154610160820152600c820154610180820152600d8201546101a0820152600e909101546101c082015290565b611b1764517565727960d81b612921565b6001600160a01b0316336001600160a01b031614611b775760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610939565b6000808080611b8885870187613ab1565b93509350935093506000611b9b88612352565b9050611ba8858585612269565b8114611bf65760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4159492d3032303a5249534b5f49445f4d49534d4154434800006044820152606401610939565b6000818152601160205260409020600d810154611c555760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3032313a5249534b5f554e444546494e4544000000006044820152606401610939565b89816008015414611cb25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3032323a524551554553545f49445f4d49534d4154436044820152600960fb1b6064820152608401610939565b600a81015415611d045760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3032333a4558495354494e475f43414c4c4241434b006044820152606401610939565b611d13630100000060006141ac565b8310158015611d2f5750611d2c6301000000600f6141ac565b83105b611d7b5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3032343a414141595f494e56414c49440000000000006044820152606401610939565b600b81018390556006810154600482015460058301546007840154611da39392919087611520565b600c82015542600a8201819055600e820155604080518b8152602081018490529081018490527f357e32cffc9b470fe746dfc76a9dabc81e0441109f95820ff3daeabc21ca3e319060600160405180910390a150505050505050505050565b611e176810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614611e475760405162461bcd60e51b815260040161093990614059565b610fac612f15565b611e57612f3f565b610fac6000612f99565b600080516020614298833981519152611e7981612348565b611e8585858585612b39565b6000868152601160205260409020600d810154611ee45760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3030323a5249534b5f554e4b4e4f574e0000000000006044820152606401610939565b6000878152601260205260409020611efb906129e0565b15611f605760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3030333a5249534b5f574954485f504f4c494349455360448201526e5f4e4f545f41444a55535441424c4560881b6064820152608401610939565b805460048201546005830154600684015460078501546040805195865260208601949094528484019290925260608401526080830152517f5ea522f91ea45156f00d5390cfaf51dc82f9b163ae492c8d6033fcb3af773f589181900360a00190a16004810186905560058101859055600681018490556007810183905580546040805191825260208201889052810186905260608101859052608081018490527f2ef22fcf430acdb3b80e5d30364fcd07242c6081010c6cc9aa2fe4f4105f81279060a001610e1b565b610fbd6002630100000061418c565b6000918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008061129e565b6000630100000061207d83856141ac565b611517919061418c565b60008060006000805160206142988339815191526120a481612348565b6120ad85612fe9565b919790965090945092505050565b6120d06810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146121005760405162461bcd60e51b815260040161093990614059565b610fac61302f565b61211d6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b03161461214d5760405162461bcd60e51b815260040161093990614059565b600255565b60006013828154811061217557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6000828152600c60205260409020600101546121a281612348565b6112ee8383612ad2565b60008181526012602052604081206108a8906129e0565b6000600161129e565b60008060006000805160206142988339815191526121e981612348565b60006121f488612868565b905080600001516001600160a01b0316876001600160a01b03161461224c57600f548151600091612233916001600160a01b03909116908a908a613059565b90508061224a5794506000935085925061225f9050565b505b612256888761336e565b91965094509250505b5093509350939050565b6040805160208082019590955280820193909352606080840192909252805180840390920182526080909201909152805191012090565b60006010828154811061217557634e487b7160e01b600052603260045260246000fd5b6122cb612f3f565b6001600160a01b0381166123305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610939565b61085f81612f99565b610fbd6005630100000061418c565b61085f81336133f8565b60008061235e8361240a565b905080606001518060200190518101906123789190613a08565b9392505050565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f22906123b89088908890889030908990600401613f8b565b602060405180830381600087803b1580156123d257600080fd5b505af11580156123e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b49190613a08565b6124446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b15801561248857600080fd5b505afa15801561249c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613bcf565b60008181526001830160205260408120541515611517565b6000611517838361345c565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d159061251d90879087908790600401613fd4565b602060405180830381600087803b15801561253757600080fd5b505af115801561254b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256f9190613a08565b949350505050565b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f906064015b600060405180830381600087803b1580156125cc57600080fd5b505af11580156125e0573d6000803e3d6000fd5b50505050505050565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d7846906123b8908890889088908890600401613ff3565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b15801561267157600080fd5b505af1158015612685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a99190613dfb565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b15801561270257600080fd5b505af1158015612716573d6000803e3d6000fd5b505050505050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba2906044016126e8565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c6441798906024015b600060405180830381600087803b15801561279d57600080fd5b505af11580156127b1573d6000803e3d6000fd5b5050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c90602401612783565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b15801561283057600080fd5b505af1158015612844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906139a2565b6128a16040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600b5460405163296586d360e21b8152600481018490526001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156128e557600080fd5b505afa1580156128f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613c7d565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561296b57600080fd5b505afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a8919061394c565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616129cd60025490565b60405190815260200160405180910390a1565b60006108a8825490565b6000818311156129fa5781611517565b5090919050565b60006115178383613579565b612a178282612039565b611396576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a4f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064016125b2565b612adc8282612039565b15611396576000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6301000000841115612b995760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4159492d3034303a5249534b5f545249474745525f544f4f5f4c6044820152634152474560e01b6064820152608401610939565b828411612c005760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3034313a5249534b5f545249474745525f4e4f545f4c60448201526e105491d15497d512105397d1561255608a1b6064820152608401610939565b612c0f6005630100000061418c565b831115612c685760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3034323a5249534b5f455849545f544f4f5f4c4152476044820152604560f81b6064820152608401610939565b612c776002630100000061418c565b821015612cc65760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034333a5249534b5f5453495f544f4f5f534d414c4c6044820152606401610939565b6301000000821115612d1a5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034343a5249534b5f5453495f544f4f5f4c415247456044820152606401610939565b6301000000612d298484614174565b1115612d895760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4159492d3034353a5249534b5f5453495f455849545f53554d5f604482015268544f4f5f4c4152474560b81b6064820152608401610939565b60008111612de55760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4159492d3034363a5249534b5f4150485f5a45524f5f494e564160448201526213125160ea1b6064820152608401610939565b612df46301000000600f6141ac565b8111156113165760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034373a5249534b5f4150485f544f4f5f4c415247456044820152606401610939565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a90612e7c9089908990899089908990600401613edb565b602060405180830381600087803b158015612e9657600080fd5b505af1158015612eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ece9190613a08565b9695505050505050565b600061151783836135b1565b600a54604051630c054e5360e21b8152600481018390526001600160a01b0390911690633015394c90602401612783565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96129cd60025490565b6000546001600160a01b03163314610fac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610939565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080612ff885613600565b9050806020015181604001511015613027576120ad858260400151836020015161302291906141cb565b61336e565b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556129cd60025490565b6000846001600160a01b038082163b1515908616158061308057506001600160a01b038516155b80613089575080155b156130e4576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a160009250505061256f565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561312957600080fd5b505afa15801561313d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131619190613a08565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156131ae57600080fd5b505afa1580156131c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e69190613a08565b9050858210806131f557508581105b156132405760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a1600094505050505061256f565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916132a49190613e4a565b6000604051808303816000865af19150503d80600081146132e1576040519150601f19603f3d011682016040523d82523d6000602084013e6132e6565b606091505b509150915081801561331c57508051158061331c57508051602014801561331c57508080602001905181019061331c91906139a2565b965086613360577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161335793929190613f6a565b60405180910390a15b505050505050949350505050565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156133c057600080fd5b505af11580156133d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ad91906139bc565b6134028282612039565b6113965761341a816001600160a01b031660146136cd565b6134258360206136cd565b604051602001613436929190613e66565b60408051601f198184030181529082905262461bcd60e51b825261093991600401614046565b6000818152600183016020526040812054801561356f5760006134806001836141cb565b8554909150600090613494906001906141cb565b90508181146135155760008660000182815481106134c257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106134f357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061353457634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061151a565b600091505061151a565b600082600001828154811061359e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120546135f85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561151a565b50600061151a565b613650604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b15801561369557600080fd5b505afa1580156136a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190613cfb565b606060006136dc8360026141ac565b6136e7906002614174565b67ffffffffffffffff81111561370d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015613737576020820181803683370190505b509050600360fc1b8160008151811061376057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061379d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006137c18460026141ac565b6137cc906001614174565b90505b6001811115613860576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061380e57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061383257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936138598161420e565b90506137cf565b5083156115175760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610939565b805180151581146108ab57600080fd5b600082601f8301126138cf578081fd5b815167ffffffffffffffff8111156138e9576138e961426c565b6138fc601f8201601f1916602001614143565b818152846020838601011115613910578283fd5b61256f8260208301602087016141e2565b8051600381106108ab57600080fd5b600060208284031215613941578081fd5b813561151781614282565b60006020828403121561395d578081fd5b815161151781614282565b6000806000806080858703121561397d578283fd5b843561398881614282565b966020860135965060408601359560600135945092505050565b6000602082840312156139b3578081fd5b611517826138af565b6000806000606084860312156139d0578283fd5b6139d9846138af565b925060208401519150604084015190509250925092565b600060208284031215613a01578081fd5b5035919050565b600060208284031215613a19578081fd5b5051919050565b60008060408385031215613a32578182fd5b823591506020830135613a4481614282565b809150509250929050565b600080600060608486031215613a63578081fd5b833592506020840135613a7581614282565b929592945050506040919091013590565b600080600060608486031215613a9a578081fd5b505081359360208301359350604090920135919050565b60008060008060808587031215613ac6578182fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600060e0888a031215613afc578485fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215613b3f578182fd5b50508035926020909101359150565b600080600080600060a08688031215613b65578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215613b99578081fd5b81356001600160e01b031981168114611517578182fd5b600060208284031215613bc1578081fd5b815160078110611517578182fd5b600060208284031215613be0578081fd5b815167ffffffffffffffff80821115613bf7578283fd5b9083019060c08286031215613c0a578283fd5b613c1460c0614143565b825160048110613c22578485fd5b808252506020830151602082015260408301516040820152606083015182811115613c4b578485fd5b613c57878286016138bf565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613c8e578081fd5b815167ffffffffffffffff80821115613ca5578283fd5b9083019060c08286031215613cb8578283fd5b613cc260c0614143565b8251613ccd81614282565b815260208381015190820152613ce560408401613921565b6040820152606083015182811115613c4b578485fd5b6000610120808385031215613d0e578182fd5b613d1781614143565b9050613d2283613921565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215613d95578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115613dba578384fd5b818701915087601f830112613dcd578384fd5b813581811115613ddb578485fd5b886020828501011115613dec578485fd5b95989497505060200194505050565b60008060408385031215613e0d578182fd5b505080516020909101519092909150565b60008151808452613e368160208601602086016141e2565b601f01601f19169290920160200192915050565b60008251613e5c8184602087016141e2565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351613e9e8160178501602088016141e2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ecf8160288401602088016141e2565b01602801949350505050565b600060018060a01b038716825285602083015284604083015260a06060830152613f0860a0830185613e1e565b8281036080840152613f1a8185613e1e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613f5e57835183529284019291840191600101613f42565b50909695505050505050565b60008415158252836020830152606060408301526115b46060830184613e1e565b600086825260a06020830152613fa460a0830187613e1e565b8281036040840152613fb68187613e1e565b6001600160a01b039590951660608401525050608001529392505050565b6000848252836020830152606060408301526115b46060830184613e1e565b600085825284602083015283604083015260806060830152612ece6080830184613e1e565b602081016007831061402c5761402c614256565b91905290565b602081016003831061402c5761402c614256565b6000602082526115176020830184613e1e565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60006101e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516141038285018215159052565b50506101408381015190830152610160808401519083015261018080840151908301526101a080840151908301526101c092830151929091019190915290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561416c5761416c61426c565b604052919050565b6000821982111561418757614187614240565b500190565b6000826141a757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156141c6576141c6614240565b500290565b6000828210156141dd576141dd614240565b500390565b60005b838110156141fd5781810151838201526020016141e5565b838111156113165750506000910152565b60008161421d5761421d614240565b506000190190565b600060001982141561423957614239614240565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461085f57600080fdfef098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955ba26469706673582212206fbe90c5e63801ca92badc10bc72a58619457eca24171fa149899255b2d6ddb164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x4938 CODESIZE SUB DUP1 PUSH3 0x4938 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x58B JUMP JUMPDEST DUP6 DUP5 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP5 DUP9 DUP5 PUSH1 0x1 DUP3 PUSH3 0x5C CALLER PUSH3 0x35B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xC3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xED PUSH3 0x3AB JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x117 PUSH3 0x3C6 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x141 PUSH3 0x3F3 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x194 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1E8 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x5F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE POP PUSH1 0x9 DUP3 SWAP1 SSTORE PUSH3 0x21E DUP4 PUSH3 0x40D JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x25A PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH3 0x40D JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x297 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL PUSH3 0x40D JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 MLOAD ADDRESS DUP2 MSTORE PUSH32 0xCED180B842B890D77DAB95DCBF4654065589A164226EF9FAA91A7601FB67C467 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0xF DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 AND OR SWAP1 SSTORE POP POP POP PUSH1 0xE DUP4 SWAP1 SSTORE PUSH3 0x323 PUSH1 0x0 PUSH3 0x31D CALLER SWAP1 JUMP JUMPDEST PUSH3 0x49B JUMP JUMPDEST PUSH3 0x34F PUSH32 0xF098B7742E998F92A3C749F35E64EF555EDCECEC4B78A00C532A4F385915955B DUP3 PUSH3 0x49B JUMP JUMPDEST POP POP POP POP POP POP PUSH3 0x63B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3C1 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x40D JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3C1 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x40D JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3C1 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x46D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x493 SWAP2 SWAP1 PUSH3 0x567 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x4A7 DUP3 DUP3 PUSH3 0x4AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x4A7 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x50B CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x496 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x579 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH3 0x584 DUP3 PUSH3 0x54F JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH3 0x5A4 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP7 MLOAD SWAP6 POP PUSH3 0x5B6 PUSH1 0x20 DUP9 ADD PUSH3 0x54F JUMP JUMPDEST SWAP5 POP PUSH3 0x5C6 PUSH1 0x40 DUP9 ADD PUSH3 0x54F JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD MLOAD SWAP3 POP PUSH1 0x80 DUP8 ADD MLOAD SWAP2 POP PUSH3 0x5E4 PUSH1 0xA0 DUP9 ADD PUSH3 0x54F JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x616 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x42ED DUP1 PUSH3 0x64B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3FC JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x66528C3B GT PUSH2 0x215 JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x836 JUMPI DUP1 PUSH4 0xF406460C EQ PUSH2 0x849 JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x851 JUMPI DUP1 PUSH4 0xF9D7FF89 EQ PUSH2 0x862 JUMPI DUP1 PUSH4 0xFFA1AD74 EQ PUSH2 0x86A JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x7F5 JUMPI DUP1 PUSH4 0xE5D58CD8 EQ PUSH2 0x7FD JUMPI DUP1 PUSH4 0xE9960D8A EQ PUSH2 0x810 JUMPI DUP1 PUSH4 0xEB807339 EQ PUSH2 0x823 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xD52D2D06 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xD52D2D06 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x7CF JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xDDBFD8EF EQ PUSH2 0x7E2 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x771 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x7A1 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x7A9 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0x177 JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x5F4 JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x74A JUMPI DUP1 PUSH4 0xAEC8DE39 EQ PUSH2 0x769 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x61A JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x91D14854 EQ PUSH2 0x6F0 JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x703 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x72F JUMPI DUP1 PUSH4 0x9DCE5FF0 EQ PUSH2 0x737 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x7CE5E82F GT PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x7CE5E82F EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6D7 JUMPI DUP1 PUSH4 0x90E1A2AC EQ PUSH2 0x6E8 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x66528C3B EQ PUSH2 0x68D JUMPI DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x697 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x69F JUMPI DUP1 PUSH4 0x78A433A5 EQ PUSH2 0x6A7 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0x310 JUMPI DUP1 PUSH4 0x54111315 GT PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x272 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x642 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0x5E61AA63 EQ PUSH2 0x661 JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x685 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x54111315 EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0x597EE798 EQ PUSH2 0x607 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0x5A602109 EQ PUSH2 0x622 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x412F91D9 GT PUSH2 0x2DF JUMPI DUP1 PUSH4 0x412F91D9 EQ PUSH2 0x5BB JUMPI DUP1 PUSH4 0x46B937F6 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x4B6EB669 EQ PUSH2 0x5E1 JUMPI DUP1 PUSH4 0x4CE9D0A7 EQ PUSH2 0x5F4 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x36568ABE EQ PUSH2 0x578 JUMPI DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0x3DC5F58E EQ PUSH2 0x5A8 JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x58B JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1B07B17F GT PUSH2 0x393 JUMPI DUP1 PUSH4 0x21DF0DA7 GT PUSH2 0x362 JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x527 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x552 JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x565 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x4BF JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x1C3456DD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x1FD358AA EQ PUSH2 0x4E2 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xB228D95 GT PUSH2 0x3CF JUMPI DUP1 PUSH4 0xB228D95 EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x4AA JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0x56C9989 EQ PUSH2 0x429 JUMPI DUP1 PUSH4 0x6136F28 EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x9128D83 EQ PUSH2 0x45F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x414 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x3B88 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x43E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x45A CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x8B0 JUMP JUMPDEST PUSH2 0x43E PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x488 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0xA9B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4032 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x4B2 PUSH2 0xE2C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST PUSH2 0x414 PUSH2 0x4CD CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0xEB2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0xF5F JUMP JUMPDEST PUSH2 0x43E PUSH2 0xFAE JUMP JUMPDEST PUSH2 0x4F5 PUSH2 0x4F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0xFC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x3F26 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x535 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x414 PUSH2 0x1299 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x560 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x12C9 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x573 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A86 JUMP JUMPDEST PUSH2 0x12F3 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x586 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x131C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4046 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3AE2 JUMP JUMPDEST PUSH2 0x139A JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0x14FF JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5DC CALLDATASIZE PUSH1 0x4 PUSH2 0x3B4E JUMP JUMPDEST PUSH2 0x1520 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5EF CALLDATASIZE PUSH1 0x4 PUSH2 0x3968 JUMP JUMPDEST PUSH2 0x15BD JUMP JUMPDEST PUSH2 0x43E PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x43E PUSH4 0x1000000 DUP2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x615 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x17D2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1975 JUMP JUMPDEST PUSH2 0x635 PUSH2 0x630 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x19BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4090 JUMP JUMPDEST PUSH2 0x50F PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x48D PUSH2 0x66F CALLDATASIZE PUSH1 0x4 PUSH2 0x3D80 JUMP JUMPDEST PUSH2 0x1B06 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x50F JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1E02 JUMP JUMPDEST PUSH4 0x1000000 PUSH2 0x43E JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1E4F JUMP JUMPDEST PUSH2 0x48D PUSH2 0x6B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B4E JUMP JUMPDEST PUSH2 0x1E61 JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x50F PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xEAD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x50F JUMP JUMPDEST PUSH2 0x43E PUSH2 0x202A JUMP JUMPDEST PUSH2 0x414 PUSH2 0x6FE CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH16 0x2862797465733332207269736B496429 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x59B JUMP JUMPDEST PUSH2 0x414 PUSH2 0x2064 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x745 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0x206C JUMP JUMPDEST PUSH2 0x43E PUSH21 0x105C9958565A595B19125B99195E141C9BD91D58DD PUSH1 0x5A SHL DUP2 JUMP JUMPDEST PUSH2 0x43E PUSH1 0xF DUP2 JUMP JUMPDEST PUSH2 0x784 PUSH2 0x77F CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2087 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x20BB JUMP JUMPDEST PUSH2 0x48D PUSH2 0x7B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2108 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x7CA CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2152 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x7DD CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x2187 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x7F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x21AC JUMP JUMPDEST PUSH2 0x414 PUSH2 0x21C3 JUMP JUMPDEST PUSH2 0x784 PUSH2 0x80B CALLDATASIZE PUSH1 0x4 PUSH2 0x3A4F JUMP JUMPDEST PUSH2 0x21CC JUMP JUMPDEST PUSH2 0x43E PUSH2 0x81E CALLDATASIZE PUSH1 0x4 PUSH2 0x3A86 JUMP JUMPDEST PUSH2 0x2269 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x831 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x22A0 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x844 CALLDATASIZE PUSH1 0x4 PUSH2 0x3930 JUMP JUMPDEST PUSH2 0x22C3 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x2339 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x85F CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x43E PUSH3 0x302E31 PUSH1 0xE8 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8A8 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x8CA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 PUSH2 0x8D9 DUP7 PUSH2 0x2352 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xD ADD SLOAD GT PUSH2 0x942 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031303A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x9A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031313A4F5241434C455F414C52454144595F524553 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1413D3911151 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xA14 DUP6 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xE SLOAD PUSH2 0x237F JUMP JUMPDEST PUSH1 0x8 DUP4 ADD DUP2 SWAP1 SSTORE PUSH1 0x9 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE TIMESTAMP PUSH1 0xE DUP6 ADD SSTORE DUP4 SLOAD SWAP1 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD PUSH1 0x3 DUP7 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE SWAP1 SWAP5 POP PUSH32 0x983570285D5BC639119BFFE47FDB9708EB765C6CAC55A784FD1651FBF1360C0F SWAP1 PUSH1 0xA0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xAB3 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xABE DUP4 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xADA SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 DUP4 ADD SLOAD SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x7 DUP2 ADD SLOAD PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x100 DUP5 ADD MSTORE PUSH1 0x9 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP5 ADD MSTORE PUSH1 0xA DUP2 ADD SLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xB DUP2 ADD SLOAD PUSH2 0x160 DUP5 ADD MSTORE PUSH1 0xC DUP2 ADD SLOAD PUSH2 0x180 DUP5 ADD MSTORE PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1A0 DUP5 ADD MSTORE PUSH1 0xE ADD SLOAD PUSH2 0x1C0 DUP4 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP3 EQ PUSH2 0xBE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033313A5249534B5F49445F494E56414C4944000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x140 ADD MLOAD GT PUSH2 0xC4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033323A4F5241434C455F524553504F4E53455F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5353494E47 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC62 SWAP1 DUP7 PUSH2 0x24C4 JUMP JUMPDEST PUSH2 0xCBC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033333A504F4C4943595F464F525F5249534B5F554E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x25A727ABA7 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xCD4 SWAP1 DUP7 PUSH2 0x24DC JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xCEA DUP3 PUSH2 0x180 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x206C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xD08 DUP8 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x24E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xF3B6FA541C2FB440A7135DF726575DA0735A6968FA3804A462C63690D4330DBD SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 ISZERO PUSH2 0xDC9 JUMPI DUP2 PUSH2 0xD5E DUP9 DUP4 DUP4 PUSH2 0x2577 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD7B DUP10 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x25E9 JUMP JUMPDEST SWAP1 POP PUSH2 0xD87 DUP10 DUP3 PUSH2 0x2620 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP11 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0xE85C538AF9D154780BEFA06F96E8C8D5FF531C715D3735732CA365E541B15EC8 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH2 0xDDD JUMP JUMPDEST PUSH2 0xDD3 DUP8 DUP3 PUSH2 0x26B4 JUMP JUMPDEST PUSH2 0xDDD DUP8 DUP3 PUSH2 0x271E JUMP JUMPDEST PUSH2 0xDE6 DUP8 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0xDEF DUP8 PUSH2 0x27B8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP8 DUP2 MSTORE PUSH32 0x88873A4C738A1C855A15847C7DAF779056BD64E3E5DCE2A378085A56B1E65698 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEAD SWAP2 SWAP1 PUSH2 0x3BB0 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xECC DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0xED5 DUP4 PUSH2 0x240A JUMP JUMPDEST POP PUSH2 0xEDF DUP4 PUSH2 0x27E9 JUMP JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0xF59 JUMPI PUSH1 0x0 PUSH2 0xEF2 DUP5 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEFF DUP6 PUSH2 0x2868 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP2 MLOAD DUP12 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP4 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH32 0x740860D47F9571AC7C5D7D56A42D09A9D575A3D5A025F85A409366D172D4B3D1 SWAP1 PUSH1 0x80 ADD PUSH2 0xA8B JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF74 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFA4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x29A3 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xFBD PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xFDA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD SLOAD PUSH2 0x140 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xB DUP4 ADD SLOAD PUSH2 0x160 DUP4 ADD MSTORE PUSH1 0xC DUP4 ADD SLOAD PUSH2 0x180 DUP4 ADD MSTORE PUSH1 0xD DUP4 ADD SLOAD PUSH2 0x1A0 DUP4 ADD MSTORE PUSH1 0xE SWAP1 SWAP3 ADD SLOAD PUSH2 0x1C0 DUP3 ADD MSTORE SWAP1 PUSH2 0x10F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033303A4F5241434C455F524553504F4E53455F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5353494E47 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x110A SWAP1 PUSH2 0x29E0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1162 JUMPI PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2F322F1B61D2FF4C9E3D88448830423A8A4A968A916BB6C838F5EB10CED570E3 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP2 POP PUSH2 0x1292 JUMP JUMPDEST DUP5 PUSH2 0x116F JUMPI DUP1 SWAP5 POP PUSH2 0x117C JUMP JUMPDEST PUSH2 0x1179 DUP6 DUP3 PUSH2 0x29EA JUMP JUMPDEST SWAP5 POP JUMPDEST DUP5 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11A3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11CC JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP PUSH1 0x0 PUSH2 0x11DC PUSH1 0x1 DUP4 PUSH2 0x41CB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x1254 JUMPI PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x120A SWAP1 PUSH2 0x1205 DUP5 DUP7 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x2A01 JUMP JUMPDEST SWAP1 POP PUSH2 0x1215 DUP2 PUSH2 0xA9B JUMP JUMPDEST DUP1 DUP8 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1236 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP DUP1 PUSH2 0x124C DUP2 PUSH2 0x4225 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x2F322F1B61D2FF4C9E3D88448830423A8A4A968A916BB6C838F5EB10CED570E3 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12C3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x12E4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x12EE DUP4 DUP4 PUSH2 0x2A0D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x130B DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x1316 DUP5 DUP5 DUP5 PUSH2 0x2A93 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x1396 DUP3 DUP3 PUSH2 0x2AD2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x13B4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x13C0 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x13CB DUP10 DUP10 DUP10 PUSH2 0x2269 JUMP JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP2 SWAP1 SSTORE PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD SWAP2 SWAP4 POP SWAP1 ISZERO PUSH2 0x1469 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030313A5249534B5F414C52454144595F4558495354 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x53 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP3 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP11 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP10 SWAP1 SSTORE PUSH1 0x3 DUP2 ADD DUP9 SWAP1 SSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 SSTORE PUSH1 0x5 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD DUP6 SWAP1 SSTORE PUSH1 0x7 DUP2 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0xD DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x817B0E272A7B333532CB6439A34E3EC00922E22926032442220A69868F02D8DC SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1517 SWAP1 DUP4 PUSH2 0x2A01 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152C DUP6 DUP5 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x153A PUSH4 0x1000000 DUP5 PUSH2 0x41AC JUMP JUMPDEST LT PUSH2 0x1547 JUMPI POP PUSH1 0x0 PUSH2 0x15B4 JUMP JUMPDEST PUSH2 0x1551 DUP5 DUP5 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x155F PUSH4 0x1000000 DUP5 PUSH2 0x41AC JUMP JUMPDEST GT PUSH2 0x156B JUMPI POP DUP5 PUSH2 0x15B4 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x157C DUP5 PUSH4 0x1000000 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x1586 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST SWAP1 POP PUSH2 0x1592 DUP6 DUP8 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x159C DUP3 DUP9 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x15A6 SWAP1 DUP10 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x15B0 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x15D7 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030343A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH2 0x168C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030353A504F4C4943595F484F4C4445525F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP3 MSTORE DUP3 MLOAD DUP1 DUP3 ADD DUP9 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP3 SUB SWAP1 SWAP3 ADD DUP3 MSTORE DUP4 ADD SWAP1 SWAP3 MSTORE SWAP1 PUSH2 0x16C0 DUP10 DUP10 DUP10 DUP6 DUP6 PUSH2 0x2E43 JUMP JUMPDEST PUSH1 0x13 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x66DE8FFDA797E3DE9C05E8FC57B3BF0EC28A930D40B0D285D93C06501CF6A090 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP6 POP PUSH32 0xB6B5FB82AD406A44DC88433D286D201520C295308F087A476B845F907D3BD603 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x1753 DUP7 PUSH2 0x27E9 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x17C5 JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1773 SWAP1 DUP8 PUSH2 0x2ED8 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x740860D47F9571AC7C5D7D56A42D09A9D575A3D5A025F85A409366D172D4B3D1 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x17EA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 PUSH2 0x17F9 DUP6 PUSH2 0x2352 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xD ADD SLOAD GT PUSH2 0x185D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031323A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x9 DUP2 ADD SLOAD PUSH1 0xFF AND PUSH2 0x18C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031333A4F5241434C455F524551554553545F4E4F54 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x17D193D55391 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031343A4558495354494E475F43414C4C4241434B00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x191F DUP2 PUSH1 0x8 ADD SLOAD PUSH2 0x2EE4 JUMP JUMPDEST PUSH1 0x9 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE TIMESTAMP PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x8 DUP2 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0xDEEAC61C3AD18E6EFCA12EAC38425C944B5BBCA5B482E39B549671E05544C3DC SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x198A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC JUMP JUMPDEST PUSH2 0x1A46 PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD SLOAD PUSH2 0x140 DUP3 ADD MSTORE PUSH1 0xB DUP3 ADD SLOAD PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0xC DUP3 ADD SLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0xD DUP3 ADD SLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH1 0xE SWAP1 SWAP2 ADD SLOAD PUSH2 0x1C0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1B17 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1B77 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030333A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1B88 DUP6 DUP8 ADD DUP8 PUSH2 0x3AB1 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x0 PUSH2 0x1B9B DUP9 PUSH2 0x2352 JUMP JUMPDEST SWAP1 POP PUSH2 0x1BA8 DUP6 DUP6 DUP6 PUSH2 0x2269 JUMP JUMPDEST DUP2 EQ PUSH2 0x1BF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032303A5249534B5F49445F4D49534D415443480000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1C55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032313A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST DUP10 DUP2 PUSH1 0x8 ADD SLOAD EQ PUSH2 0x1CB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032323A524551554553545F49445F4D49534D415443 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x1D04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032333A4558495354494E475F43414C4C4241434B00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x1D13 PUSH4 0x1000000 PUSH1 0x0 PUSH2 0x41AC JUMP JUMPDEST DUP4 LT ISZERO DUP1 ISZERO PUSH2 0x1D2F JUMPI POP PUSH2 0x1D2C PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP4 LT JUMPDEST PUSH2 0x1D7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032343A414141595F494E56414C4944000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xB DUP2 ADD DUP4 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x7 DUP5 ADD SLOAD PUSH2 0x1DA3 SWAP4 SWAP3 SWAP2 SWAP1 DUP8 PUSH2 0x1520 JUMP JUMPDEST PUSH1 0xC DUP3 ADD SSTORE TIMESTAMP PUSH1 0xA DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP12 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x357E32CFFC9B470FE746DFC76A9DABC81E0441109F95820FF3DAEABC21CA3E31 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E17 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E47 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x2F15 JUMP JUMPDEST PUSH2 0x1E57 PUSH2 0x2F3F JUMP JUMPDEST PUSH2 0xFAC PUSH1 0x0 PUSH2 0x2F99 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1E79 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x1E85 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2B39 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1EE4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030323A5249534B5F554E4B4E4F574E000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1EFB SWAP1 PUSH2 0x29E0 JUMP JUMPDEST ISZERO PUSH2 0x1F60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030333A5249534B5F574954485F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x5F4E4F545F41444A55535441424C45 PUSH1 0x88 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x6 DUP5 ADD SLOAD PUSH1 0x7 DUP6 ADD SLOAD PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP5 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD MSTORE MLOAD PUSH32 0x5EA522F91EA45156F00D5390CFAF51DC82F9B163AE492C8D6033FCB3AF773F58 SWAP2 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG1 PUSH1 0x4 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x5 DUP2 ADD DUP6 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD DUP5 SWAP1 SSTORE PUSH1 0x7 DUP2 ADD DUP4 SWAP1 SSTORE DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP9 SWAP1 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x2EF22FCF430ACDB3B80E5D30364FCD07242C6081010C6CC9AA2FE4F4105F8127 SWAP1 PUSH1 0xA0 ADD PUSH2 0xE1B JUMP JUMPDEST PUSH2 0xFBD PUSH1 0x2 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x129E JUMP JUMPDEST PUSH1 0x0 PUSH4 0x1000000 PUSH2 0x207D DUP4 DUP6 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x1517 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x20A4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x20AD DUP6 PUSH2 0x2FE9 JUMP JUMPDEST SWAP2 SWAP8 SWAP1 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x20D0 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2100 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x302F JUMP JUMPDEST PUSH2 0x211D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x214D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x13 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2175 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x21A2 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x12EE DUP4 DUP4 PUSH2 0x2AD2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x8A8 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x129E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21E9 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21F4 DUP9 PUSH2 0x2868 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x224C JUMPI PUSH1 0xF SLOAD DUP2 MLOAD PUSH1 0x0 SWAP2 PUSH2 0x2233 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP11 SWAP1 DUP11 PUSH2 0x3059 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x224A JUMPI SWAP5 POP PUSH1 0x0 SWAP4 POP DUP6 SWAP3 POP PUSH2 0x225F SWAP1 POP JUMP JUMPDEST POP JUMPDEST PUSH2 0x2256 DUP9 DUP8 PUSH2 0x336E JUMP JUMPDEST SWAP2 SWAP7 POP SWAP5 POP SWAP3 POP POP JUMPDEST POP SWAP4 POP SWAP4 POP SWAP4 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD SWAP6 SWAP1 SWAP6 MSTORE DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP1 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP1 MLOAD DUP1 DUP5 SUB SWAP1 SWAP3 ADD DUP3 MSTORE PUSH1 0x80 SWAP1 SWAP3 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x10 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2175 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x22CB PUSH2 0x2F3F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2330 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x85F DUP2 PUSH2 0x2F99 JUMP JUMPDEST PUSH2 0xFBD PUSH1 0x5 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST PUSH2 0x85F DUP2 CALLER PUSH2 0x33F8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x235E DUP4 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2378 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x16499F91 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2C933F22 SWAP1 PUSH2 0x23B8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x3F8B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15B4 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH2 0x2444 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x249C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3BCF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1517 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x345C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFAE43D15 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFAE43D15 SWAP1 PUSH2 0x251D SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x3FD4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x254B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x256F SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x781D7846 SWAP1 PUSH2 0x23B8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x3FF3 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2685 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26A9 SWAP2 SWAP1 PUSH2 0x3DFB JUMP JUMPDEST SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2716 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C882F3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC6441798 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x279D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE71E783 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x39C79E0C SWAP1 PUSH1 0x24 ADD PUSH2 0x2783 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2844 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x39A2 JUMP JUMPDEST PUSH2 0x28A1 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7D JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x296B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x297F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x394C JUMP JUMPDEST PUSH32 0xB79D34516B55D664B61192AA41FBC0625B132FB7129BD3B3A31F46D1BEFA7061 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A8 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x29FA JUMPI DUP2 PUSH2 0x1517 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x3579 JUMP JUMPDEST PUSH2 0x2A17 DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST PUSH2 0x1396 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x2A4F CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD PUSH2 0x25B2 JUMP JUMPDEST PUSH2 0x2ADC DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST ISZERO PUSH2 0x1396 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH4 0x1000000 DUP5 GT ISZERO PUSH2 0x2B99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034303A5249534B5F545249474745525F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP3 DUP5 GT PUSH2 0x2C00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034313A5249534B5F545249474745525F4E4F545F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x105491D15497D512105397D1561255 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2C0F PUSH1 0x5 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0x2C68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034323A5249534B5F455849545F544F4F5F4C415247 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2C77 PUSH1 0x2 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x2CC6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034333A5249534B5F5453495F544F4F5F534D414C4C PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH4 0x1000000 DUP3 GT ISZERO PUSH2 0x2D1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034343A5249534B5F5453495F544F4F5F4C41524745 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH4 0x1000000 PUSH2 0x2D29 DUP5 DUP5 PUSH2 0x4174 JUMP JUMPDEST GT ISZERO PUSH2 0x2D89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034353A5249534B5F5453495F455849545F53554D5F PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x544F4F5F4C41524745 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x2DE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034363A5249534B5F4150485F5A45524F5F494E5641 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x131251 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2DF4 PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034373A5249534B5F4150485F544F4F5F4C41524745 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x2E7C SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x3EDB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ECE SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xC054E53 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3015394C SWAP1 PUSH1 0x24 ADD PUSH2 0x2783 JUMP JUMPDEST PUSH32 0xCFF3B7B8B07D4D8F74BF41F05737717140D5916781B9DFF86EA0B996F2FDB9F9 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xFAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2FF8 DUP6 PUSH2 0x3600 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x3027 JUMPI PUSH2 0x20AD DUP6 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x3022 SWAP2 SWAP1 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x336E JUMP JUMPDEST POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH32 0x38954B1D025D5A8FFCF9B42D431BE2745CDCD05D32B0E5AD33EE2DB025EF5B55 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x3080 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0x3089 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x30E4 JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x256F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3129 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x313D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3161 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31E6 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x31F5 JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x3240 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x256F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP11 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP14 AND SWAP2 PUSH2 0x32A4 SWAP2 SWAP1 PUSH2 0x3E4A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x32E1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x32E6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x331C JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x331C JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x331C JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x331C SWAP2 SWAP1 PUSH2 0x39A2 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x3360 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x3357 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x33C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20AD SWAP2 SWAP1 PUSH2 0x39BC JUMP JUMPDEST PUSH2 0x3402 DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST PUSH2 0x1396 JUMPI PUSH2 0x341A DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x36CD JUMP JUMPDEST PUSH2 0x3425 DUP4 PUSH1 0x20 PUSH2 0x36CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3436 SWAP3 SWAP2 SWAP1 PUSH2 0x3E66 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x939 SWAP2 PUSH1 0x4 ADD PUSH2 0x4046 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x356F JUMPI PUSH1 0x0 PUSH2 0x3480 PUSH1 0x1 DUP4 PUSH2 0x41CB JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x3494 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x41CB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x3515 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x34C2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x34F3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x3534 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x151A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x151A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x359E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x35F8 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x151A JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x151A JUMP JUMPDEST PUSH2 0x3650 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x36A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x3CFB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x36DC DUP4 PUSH1 0x2 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x36E7 SWAP1 PUSH1 0x2 PUSH2 0x4174 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x370D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3737 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3760 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x379D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x37C1 DUP5 PUSH1 0x2 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x37CC SWAP1 PUSH1 0x1 PUSH2 0x4174 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x3860 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x380E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x3832 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x3859 DUP2 PUSH2 0x420E JUMP JUMPDEST SWAP1 POP PUSH2 0x37CF JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x1517 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x8AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x38CF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38E9 JUMPI PUSH2 0x38E9 PUSH2 0x426C JUMP JUMPDEST PUSH2 0x38FC PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x4143 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3910 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x256F DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x41E2 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x8AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3941 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1517 DUP2 PUSH2 0x4282 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x395D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1517 DUP2 PUSH2 0x4282 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x397D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3988 DUP2 PUSH2 0x4282 JUMP JUMPDEST SWAP7 PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP7 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x60 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39B3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1517 DUP3 PUSH2 0x38AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x39D0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x39D9 DUP5 PUSH2 0x38AF JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A01 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A19 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A32 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3A44 DUP2 PUSH2 0x4282 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A63 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3A75 DUP2 PUSH2 0x4282 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A9A JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3AC6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP3 CALLDATALOAD SWAP5 PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x3AFC JUMPI DUP5 DUP6 REVERT JUMPDEST POP POP DUP6 CALLDATALOAD SWAP8 PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B3F JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3B65 JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP4 CALLDATALOAD SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B99 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1517 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BC1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1517 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BE0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BF7 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3C0A JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3C14 PUSH1 0xC0 PUSH2 0x4143 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x3C22 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C4B JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3C57 DUP8 DUP3 DUP7 ADD PUSH2 0x38BF JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C8E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3CA5 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3CB8 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3CC2 PUSH1 0xC0 PUSH2 0x4143 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x3CCD DUP2 PUSH2 0x4282 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x3CE5 PUSH1 0x40 DUP5 ADD PUSH2 0x3921 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C4B JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D0E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x3D17 DUP2 PUSH2 0x4143 JUMP JUMPDEST SWAP1 POP PUSH2 0x3D22 DUP4 PUSH2 0x3921 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3D95 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3DBA JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3DCD JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3DDB JUMPI DUP5 DUP6 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3DEC JUMPI DUP5 DUP6 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3E0D JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3E36 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x41E2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3E5C DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x41E2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x3E9E DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x41E2 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x3ECF DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x41E2 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3F08 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x3E1E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x3F1A DUP2 DUP6 PUSH2 0x3E1E JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3F5E JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3F42 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x15B4 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3FA4 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x3E1E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3FB6 DUP2 DUP8 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x15B4 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2ECE PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x402C JUMPI PUSH2 0x402C PUSH2 0x4256 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x402C JUMPI PUSH2 0x402C PUSH2 0x4256 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1517 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD PUSH2 0x4103 DUP3 DUP6 ADD DUP3 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST POP POP PUSH2 0x140 DUP4 DUP2 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x180 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x1A0 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x1C0 SWAP3 DUP4 ADD MLOAD SWAP3 SWAP1 SWAP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x416C JUMPI PUSH2 0x416C PUSH2 0x426C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4187 JUMPI PUSH2 0x4187 PUSH2 0x4240 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x41A7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x41C6 JUMPI PUSH2 0x41C6 PUSH2 0x4240 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x41DD JUMPI PUSH2 0x41DD PUSH2 0x4240 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x41FD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x41E5 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1316 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x421D JUMPI PUSH2 0x421D PUSH2 0x4240 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4239 JUMPI PUSH2 0x4239 PUSH2 0x4240 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x85F JUMPI PUSH1 0x0 DUP1 REVERT INVALID CREATE SWAP9 0xB7 PUSH21 0x2E998F92A3C749F35E64EF555EDCECEC4B78A00C53 0x2A 0x4F CODESIZE MSIZE ISZERO SWAP6 JUMPDEST LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH16 0xBE90C5E63801CA92BADC10BC72A58619 GASLIMIT PUSH31 0xCA24171FA149899255B2D6DDB164736F6C6343000802003300000000000000 ","sourceMap":"562:19530:67:-:0;;;4008:417;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4199:11;4212:5;-1:-1:-1;;;4232:10:67;4244:8;4199:11;1412:21:18;4244:8:67;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;2211:2:103;1619:70:12::1;::::0;::::1;2193:21:103::0;2250:2;2230:18;;;2223:30;2289:34;2269:18;;;2262:62;-1:-1:-1;;;2340:18:103;;;2333:33;2383:19;;1619:70:12::1;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;;1459:6:18::1;:14:::0;;-1:-1:-1;;;;;;1459:14:18::1;-1:-1:-1::0;;;;;1459:14:18;::::1;;::::0;;-1:-1:-1;1483:11:18::1;:24:::0;;;1579:31:::1;1599:10:::0;1579:19:::1;:31::i;:::-;1565:11;:45:::0;;-1:-1:-1;;;;;;1565:45:18::1;-1:-1:-1::0;;;;;1565:45:18;;;::::1;::::0;;;::::1;::::0;;1654:37:::1;-1:-1:-1::0;;;1654:19:18::1;:37::i;:::-;1620:15;:72:::0;;-1:-1:-1;;;;;;1620:72:18::1;-1:-1:-1::0;;;;;1620:72:18;;;::::1;::::0;;;::::1;::::0;;1738:38:::1;-1:-1:-1::0;;;1738:19:18::1;:38::i;:::-;1702:16;:75:::0;;-1:-1:-1;;;;;;1702:75:18::1;-1:-1:-1::0;;;;;1702:75:18;;;::::1;::::0;;;::::1;::::0;;1793:32:::1;::::0;1819:4:::1;1144:51:103::0;;1793:32:18::1;::::0;1132:2:103;1117:18;1793:32:18::1;;;;;;;-1:-1:-1::0;;4268:6:67::1;:22:::0;;-1:-1:-1;;;;;;4268:22:67::1;-1:-1:-1::0;;;;;4268:22:67;::::1;;::::0;;-1:-1:-1;;;4300:9:67::1;:20:::0;;;4331:44:::1;-1:-1:-1::0;4362:12:67::1;719:10:59::0;640:96;;4362:12:67::1;4331:10;:44::i;:::-;4385:33;907:20;4410:7:::0;4385:10:::1;:33::i;:::-;4008:417:::0;;;;;;562:19530;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1352:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1325:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;;4875:145;;;;:::o;6824:110:37:-;6902:25;6913:4;6919:7;6902:10;:25::i;:::-;6824:110;;:::o;7474:233::-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:37;;;;;;;;;;;;7552:149;;7595:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7595:29:37;;;;;;;;;:36;;-1:-1:-1;;7595:36:37;7627:4;7595:36;;;7677:12;719:10:59;640:96;;7677:12:37;-1:-1:-1;;;;;7650:40:37;7668:7;-1:-1:-1;;;;;7650:40:37;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;196:218;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:574::-;;;;;;;627:3;615:9;606:7;602:23;598:33;595:2;;;649:6;641;634:22;595:2;683:9;677:16;667:26;;712:49;757:2;746:9;742:18;712:49;:::i;:::-;702:59;;780:49;825:2;814:9;810:18;780:49;:::i;:::-;770:59;;869:2;858:9;854:18;848:25;838:35;;913:3;902:9;898:19;892:26;882:36;;937:50;982:3;971:9;967:19;937:50;:::i;:::-;927:60;;585:408;;;;;;;;:::o;1388:616::-;1635:25;;;1622:3;1607:19;;1690:1;1679:13;;1669:2;;1735:10;1730:3;1726:20;1723:1;1716:31;1770:4;1767:1;1760:15;1798:4;1795:1;1788:15;1669:2;1844;1829:18;;1822:34;;;;-1:-1:-1;;;;;1930:15:103;;;1925:2;1910:18;;1903:43;1982:15;;1977:2;1962:18;;;1955:43;1589:415;;-1:-1:-1;1589:415:103:o;2183:225::-;562:19530:67;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:38626:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"71:107:103","statements":[{"nodeType":"YulAssignment","src":"81:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"96:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"90:5:103"},"nodeType":"YulFunctionCall","src":"90:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:103"}]},{"body":{"nodeType":"YulBlock","src":"156:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"165:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"168:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"158:6:103"},"nodeType":"YulFunctionCall","src":"158:12:103"},"nodeType":"YulExpressionStatement","src":"158:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"125:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"146:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"139:6:103"},"nodeType":"YulFunctionCall","src":"139:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"122:2:103"},"nodeType":"YulFunctionCall","src":"122:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"115:6:103"},"nodeType":"YulFunctionCall","src":"115:40:103"},"nodeType":"YulIf","src":"112:2:103"}]},"name":"abi_decode_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"50:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"61:5:103","type":""}],"src":"14:164:103"},{"body":{"nodeType":"YulBlock","src":"246:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"295:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"304:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"311:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"297:6:103"},"nodeType":"YulFunctionCall","src":"297:20:103"},"nodeType":"YulExpressionStatement","src":"297:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"274:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"282:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"270:3:103"},"nodeType":"YulFunctionCall","src":"270:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"289:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"266:3:103"},"nodeType":"YulFunctionCall","src":"266:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"259:6:103"},"nodeType":"YulFunctionCall","src":"259:35:103"},"nodeType":"YulIf","src":"256:2:103"},{"nodeType":"YulVariableDeclaration","src":"328:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"344:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"338:5:103"},"nodeType":"YulFunctionCall","src":"338:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"332:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"390:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"392:16:103"},"nodeType":"YulFunctionCall","src":"392:18:103"},"nodeType":"YulExpressionStatement","src":"392:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"366:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"370:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"363:2:103"},"nodeType":"YulFunctionCall","src":"363:26:103"},"nodeType":"YulIf","src":"360:2:103"},{"nodeType":"YulVariableDeclaration","src":"421:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"464:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"468:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"460:3:103"},"nodeType":"YulFunctionCall","src":"460:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"479:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"475:3:103"},"nodeType":"YulFunctionCall","src":"475:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"456:3:103"},"nodeType":"YulFunctionCall","src":"456:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"485:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"452:3:103"},"nodeType":"YulFunctionCall","src":"452:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"436:15:103"},"nodeType":"YulFunctionCall","src":"436:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"425:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"507:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"516:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"500:6:103"},"nodeType":"YulFunctionCall","src":"500:19:103"},"nodeType":"YulExpressionStatement","src":"500:19:103"},{"body":{"nodeType":"YulBlock","src":"567:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"576:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"583:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"569:6:103"},"nodeType":"YulFunctionCall","src":"569:20:103"},"nodeType":"YulExpressionStatement","src":"569:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"542:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"550:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"538:3:103"},"nodeType":"YulFunctionCall","src":"538:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"555:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"534:3:103"},"nodeType":"YulFunctionCall","src":"534:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"562:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"531:2:103"},"nodeType":"YulFunctionCall","src":"531:35:103"},"nodeType":"YulIf","src":"528:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"626:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"634:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"622:3:103"},"nodeType":"YulFunctionCall","src":"622:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"645:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"654:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"641:3:103"},"nodeType":"YulFunctionCall","src":"641:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"661:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"600:21:103"},"nodeType":"YulFunctionCall","src":"600:64:103"},"nodeType":"YulExpressionStatement","src":"600:64:103"},{"nodeType":"YulAssignment","src":"673:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"682:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"673:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"220:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"228:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"236:5:103","type":""}],"src":"183:512:103"},{"body":{"nodeType":"YulBlock","src":"773:87:103","statements":[{"nodeType":"YulAssignment","src":"783:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"798:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"792:5:103"},"nodeType":"YulFunctionCall","src":"792:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"783:5:103"}]},{"body":{"nodeType":"YulBlock","src":"838:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"847:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"850:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"840:6:103"},"nodeType":"YulFunctionCall","src":"840:12:103"},"nodeType":"YulExpressionStatement","src":"840:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"827:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"834:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"824:2:103"},"nodeType":"YulFunctionCall","src":"824:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"817:6:103"},"nodeType":"YulFunctionCall","src":"817:20:103"},"nodeType":"YulIf","src":"814:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"752:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"763:5:103","type":""}],"src":"700:160:103"},{"body":{"nodeType":"YulBlock","src":"935:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"981:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"990:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"998:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"983:6:103"},"nodeType":"YulFunctionCall","src":"983:22:103"},"nodeType":"YulExpressionStatement","src":"983:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"956:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"965:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"952:3:103"},"nodeType":"YulFunctionCall","src":"952:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"977:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"948:3:103"},"nodeType":"YulFunctionCall","src":"948:32:103"},"nodeType":"YulIf","src":"945:2:103"},{"nodeType":"YulVariableDeclaration","src":"1016:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1042:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1029:12:103"},"nodeType":"YulFunctionCall","src":"1029:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1020:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1086:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1061:24:103"},"nodeType":"YulFunctionCall","src":"1061:31:103"},"nodeType":"YulExpressionStatement","src":"1061:31:103"},{"nodeType":"YulAssignment","src":"1101:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1111:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1101:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"901:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"912:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"924:6:103","type":""}],"src":"865:257:103"},{"body":{"nodeType":"YulBlock","src":"1208:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1254:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1263:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1271:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1256:6:103"},"nodeType":"YulFunctionCall","src":"1256:22:103"},"nodeType":"YulExpressionStatement","src":"1256:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1229:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1238:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1225:3:103"},"nodeType":"YulFunctionCall","src":"1225:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1250:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1221:3:103"},"nodeType":"YulFunctionCall","src":"1221:32:103"},"nodeType":"YulIf","src":"1218:2:103"},{"nodeType":"YulVariableDeclaration","src":"1289:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1308:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1302:5:103"},"nodeType":"YulFunctionCall","src":"1302:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1293:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1352:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1327:24:103"},"nodeType":"YulFunctionCall","src":"1327:31:103"},"nodeType":"YulExpressionStatement","src":"1327:31:103"},{"nodeType":"YulAssignment","src":"1367:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1377:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1367:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1174:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1185:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1197:6:103","type":""}],"src":"1127:261:103"},{"body":{"nodeType":"YulBlock","src":"1514:341:103","statements":[{"body":{"nodeType":"YulBlock","src":"1561:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1570:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1578:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1563:6:103"},"nodeType":"YulFunctionCall","src":"1563:22:103"},"nodeType":"YulExpressionStatement","src":"1563:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1535:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1544:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1531:3:103"},"nodeType":"YulFunctionCall","src":"1531:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1556:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1527:3:103"},"nodeType":"YulFunctionCall","src":"1527:33:103"},"nodeType":"YulIf","src":"1524:2:103"},{"nodeType":"YulVariableDeclaration","src":"1596:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1622:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1609:12:103"},"nodeType":"YulFunctionCall","src":"1609:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1600:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1666:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1641:24:103"},"nodeType":"YulFunctionCall","src":"1641:31:103"},"nodeType":"YulExpressionStatement","src":"1641:31:103"},{"nodeType":"YulAssignment","src":"1681:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1691:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1681:6:103"}]},{"nodeType":"YulAssignment","src":"1705:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1732:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1743:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1728:3:103"},"nodeType":"YulFunctionCall","src":"1728:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1715:12:103"},"nodeType":"YulFunctionCall","src":"1715:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1705:6:103"}]},{"nodeType":"YulAssignment","src":"1756:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1783:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1794:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1779:3:103"},"nodeType":"YulFunctionCall","src":"1779:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1766:12:103"},"nodeType":"YulFunctionCall","src":"1766:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1756:6:103"}]},{"nodeType":"YulAssignment","src":"1807:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1845:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1817:12:103"},"nodeType":"YulFunctionCall","src":"1817:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1807:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1456:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1467:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1479:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1487:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1495:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1503:6:103","type":""}],"src":"1393:462:103"},{"body":{"nodeType":"YulBlock","src":"1938:134:103","statements":[{"body":{"nodeType":"YulBlock","src":"1984:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1993:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2001:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1986:6:103"},"nodeType":"YulFunctionCall","src":"1986:22:103"},"nodeType":"YulExpressionStatement","src":"1986:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1959:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1968:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1955:3:103"},"nodeType":"YulFunctionCall","src":"1955:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1980:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1951:3:103"},"nodeType":"YulFunctionCall","src":"1951:32:103"},"nodeType":"YulIf","src":"1948:2:103"},{"nodeType":"YulAssignment","src":"2019:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2056:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"2029:26:103"},"nodeType":"YulFunctionCall","src":"2029:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2019:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1904:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1915:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1927:6:103","type":""}],"src":"1860:212:103"},{"body":{"nodeType":"YulBlock","src":"2189:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"2235:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2244:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2252:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2237:6:103"},"nodeType":"YulFunctionCall","src":"2237:22:103"},"nodeType":"YulExpressionStatement","src":"2237:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2210:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2219:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2206:3:103"},"nodeType":"YulFunctionCall","src":"2206:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2231:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2202:3:103"},"nodeType":"YulFunctionCall","src":"2202:32:103"},"nodeType":"YulIf","src":"2199:2:103"},{"nodeType":"YulAssignment","src":"2270:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2307:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"2280:26:103"},"nodeType":"YulFunctionCall","src":"2280:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2270:6:103"}]},{"nodeType":"YulAssignment","src":"2326:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2346:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2357:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2342:3:103"},"nodeType":"YulFunctionCall","src":"2342:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2336:5:103"},"nodeType":"YulFunctionCall","src":"2336:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2326:6:103"}]},{"nodeType":"YulAssignment","src":"2370:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2401:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2386:3:103"},"nodeType":"YulFunctionCall","src":"2386:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2380:5:103"},"nodeType":"YulFunctionCall","src":"2380:25:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2370:6:103"}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2139:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2150:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2162:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2170:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2178:6:103","type":""}],"src":"2077:334:103"},{"body":{"nodeType":"YulBlock","src":"2486:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2532:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2541:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2549:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2534:6:103"},"nodeType":"YulFunctionCall","src":"2534:22:103"},"nodeType":"YulExpressionStatement","src":"2534:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2507:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2516:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2503:3:103"},"nodeType":"YulFunctionCall","src":"2503:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2528:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2499:3:103"},"nodeType":"YulFunctionCall","src":"2499:32:103"},"nodeType":"YulIf","src":"2496:2:103"},{"nodeType":"YulAssignment","src":"2567:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2590:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2577:12:103"},"nodeType":"YulFunctionCall","src":"2577:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2567:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2452:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2463:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2475:6:103","type":""}],"src":"2416:190:103"},{"body":{"nodeType":"YulBlock","src":"2692:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"2738:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2747:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2755:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2740:6:103"},"nodeType":"YulFunctionCall","src":"2740:22:103"},"nodeType":"YulExpressionStatement","src":"2740:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2713:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2722:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2709:3:103"},"nodeType":"YulFunctionCall","src":"2709:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2734:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:32:103"},"nodeType":"YulIf","src":"2702:2:103"},{"nodeType":"YulAssignment","src":"2773:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2789:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2783:5:103"},"nodeType":"YulFunctionCall","src":"2783:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2773:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2658:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2669:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2681:6:103","type":""}],"src":"2611:194:103"},{"body":{"nodeType":"YulBlock","src":"2897:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"2943:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2952:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2960:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2945:6:103"},"nodeType":"YulFunctionCall","src":"2945:22:103"},"nodeType":"YulExpressionStatement","src":"2945:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2918:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2927:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2914:3:103"},"nodeType":"YulFunctionCall","src":"2914:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2939:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2910:3:103"},"nodeType":"YulFunctionCall","src":"2910:32:103"},"nodeType":"YulIf","src":"2907:2:103"},{"nodeType":"YulAssignment","src":"2978:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3001:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2988:12:103"},"nodeType":"YulFunctionCall","src":"2988:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2978:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3020:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3050:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3061:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3046:3:103"},"nodeType":"YulFunctionCall","src":"3046:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3033:12:103"},"nodeType":"YulFunctionCall","src":"3033:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3024:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3099:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3074:24:103"},"nodeType":"YulFunctionCall","src":"3074:31:103"},"nodeType":"YulExpressionStatement","src":"3074:31:103"},{"nodeType":"YulAssignment","src":"3114:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3124:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3114:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2855:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2866:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2878:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2886:6:103","type":""}],"src":"2810:325:103"},{"body":{"nodeType":"YulBlock","src":"3244:289:103","statements":[{"body":{"nodeType":"YulBlock","src":"3290:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3299:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"3307:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3292:6:103"},"nodeType":"YulFunctionCall","src":"3292:22:103"},"nodeType":"YulExpressionStatement","src":"3292:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3265:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3274:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3261:3:103"},"nodeType":"YulFunctionCall","src":"3261:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3286:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3257:3:103"},"nodeType":"YulFunctionCall","src":"3257:32:103"},"nodeType":"YulIf","src":"3254:2:103"},{"nodeType":"YulAssignment","src":"3325:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3348:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3335:12:103"},"nodeType":"YulFunctionCall","src":"3335:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3325:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3367:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3393:3:103"},"nodeType":"YulFunctionCall","src":"3393:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3380:12:103"},"nodeType":"YulFunctionCall","src":"3380:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3371:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3446:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3421:24:103"},"nodeType":"YulFunctionCall","src":"3421:31:103"},"nodeType":"YulExpressionStatement","src":"3421:31:103"},{"nodeType":"YulAssignment","src":"3461:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3471:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3461:6:103"}]},{"nodeType":"YulAssignment","src":"3485:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3512:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3523:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3508:3:103"},"nodeType":"YulFunctionCall","src":"3508:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3495:12:103"},"nodeType":"YulFunctionCall","src":"3495:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3485:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3194:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3205:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3217:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3225:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3233:6:103","type":""}],"src":"3140:393:103"},{"body":{"nodeType":"YulBlock","src":"3642:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"3688:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3697:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"3705:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3690:6:103"},"nodeType":"YulFunctionCall","src":"3690:22:103"},"nodeType":"YulExpressionStatement","src":"3690:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3663:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3672:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3659:3:103"},"nodeType":"YulFunctionCall","src":"3659:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3684:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3655:3:103"},"nodeType":"YulFunctionCall","src":"3655:32:103"},"nodeType":"YulIf","src":"3652:2:103"},{"nodeType":"YulAssignment","src":"3723:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3746:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3733:12:103"},"nodeType":"YulFunctionCall","src":"3733:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3723:6:103"}]},{"nodeType":"YulAssignment","src":"3765:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3803:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3788:3:103"},"nodeType":"YulFunctionCall","src":"3788:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3775:12:103"},"nodeType":"YulFunctionCall","src":"3775:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3765:6:103"}]},{"nodeType":"YulAssignment","src":"3816:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3839:3:103"},"nodeType":"YulFunctionCall","src":"3839:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3826:12:103"},"nodeType":"YulFunctionCall","src":"3826:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3816:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3592:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3603:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3615:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3623:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3631:6:103","type":""}],"src":"3538:326:103"},{"body":{"nodeType":"YulBlock","src":"3990:274:103","statements":[{"body":{"nodeType":"YulBlock","src":"4037:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4046:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4054:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4039:6:103"},"nodeType":"YulFunctionCall","src":"4039:22:103"},"nodeType":"YulExpressionStatement","src":"4039:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4011:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4020:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4007:3:103"},"nodeType":"YulFunctionCall","src":"4007:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4032:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4003:3:103"},"nodeType":"YulFunctionCall","src":"4003:33:103"},"nodeType":"YulIf","src":"4000:2:103"},{"nodeType":"YulAssignment","src":"4072:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4095:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4082:12:103"},"nodeType":"YulFunctionCall","src":"4082:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4072:6:103"}]},{"nodeType":"YulAssignment","src":"4114:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4152:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4137:3:103"},"nodeType":"YulFunctionCall","src":"4137:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4124:12:103"},"nodeType":"YulFunctionCall","src":"4124:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4114:6:103"}]},{"nodeType":"YulAssignment","src":"4165:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4203:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4188:3:103"},"nodeType":"YulFunctionCall","src":"4188:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4175:12:103"},"nodeType":"YulFunctionCall","src":"4175:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4165:6:103"}]},{"nodeType":"YulAssignment","src":"4216:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4243:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4254:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4239:3:103"},"nodeType":"YulFunctionCall","src":"4239:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4226:12:103"},"nodeType":"YulFunctionCall","src":"4226:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4216:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3932:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3943:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3955:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3963:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3971:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3979:6:103","type":""}],"src":"3869:395:103"},{"body":{"nodeType":"YulBlock","src":"4441:430:103","statements":[{"body":{"nodeType":"YulBlock","src":"4488:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4497:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4505:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4490:6:103"},"nodeType":"YulFunctionCall","src":"4490:22:103"},"nodeType":"YulExpressionStatement","src":"4490:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4462:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4471:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4458:3:103"},"nodeType":"YulFunctionCall","src":"4458:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4483:3:103","type":"","value":"224"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4454:3:103"},"nodeType":"YulFunctionCall","src":"4454:33:103"},"nodeType":"YulIf","src":"4451:2:103"},{"nodeType":"YulAssignment","src":"4523:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4546:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4533:12:103"},"nodeType":"YulFunctionCall","src":"4533:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4523:6:103"}]},{"nodeType":"YulAssignment","src":"4565:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4603:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4588:3:103"},"nodeType":"YulFunctionCall","src":"4588:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4575:12:103"},"nodeType":"YulFunctionCall","src":"4575:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4565:6:103"}]},{"nodeType":"YulAssignment","src":"4616:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4654:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4639:3:103"},"nodeType":"YulFunctionCall","src":"4639:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4626:12:103"},"nodeType":"YulFunctionCall","src":"4626:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4616:6:103"}]},{"nodeType":"YulAssignment","src":"4667:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4694:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4705:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4690:3:103"},"nodeType":"YulFunctionCall","src":"4690:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4677:12:103"},"nodeType":"YulFunctionCall","src":"4677:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4667:6:103"}]},{"nodeType":"YulAssignment","src":"4718:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4745:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4756:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4741:3:103"},"nodeType":"YulFunctionCall","src":"4741:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4728:12:103"},"nodeType":"YulFunctionCall","src":"4728:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4718:6:103"}]},{"nodeType":"YulAssignment","src":"4770:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4797:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4808:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4793:3:103"},"nodeType":"YulFunctionCall","src":"4793:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4780:12:103"},"nodeType":"YulFunctionCall","src":"4780:33:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"4770:6:103"}]},{"nodeType":"YulAssignment","src":"4822:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4849:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4860:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4845:3:103"},"nodeType":"YulFunctionCall","src":"4845:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4832:12:103"},"nodeType":"YulFunctionCall","src":"4832:33:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"4822:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_uint256t_uint256t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4359:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4370:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4382:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4390:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4398:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4406:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"4414:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"4422:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"4430:6:103","type":""}],"src":"4269:602:103"},{"body":{"nodeType":"YulBlock","src":"4963:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"5009:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5018:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5026:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5011:6:103"},"nodeType":"YulFunctionCall","src":"5011:22:103"},"nodeType":"YulExpressionStatement","src":"5011:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4984:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4993:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4980:3:103"},"nodeType":"YulFunctionCall","src":"4980:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5005:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4976:3:103"},"nodeType":"YulFunctionCall","src":"4976:32:103"},"nodeType":"YulIf","src":"4973:2:103"},{"nodeType":"YulAssignment","src":"5044:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5067:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5054:12:103"},"nodeType":"YulFunctionCall","src":"5054:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5044:6:103"}]},{"nodeType":"YulAssignment","src":"5086:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5113:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5124:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5109:3:103"},"nodeType":"YulFunctionCall","src":"5109:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5096:12:103"},"nodeType":"YulFunctionCall","src":"5096:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5086:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4921:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4932:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4944:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4952:6:103","type":""}],"src":"4876:258:103"},{"body":{"nodeType":"YulBlock","src":"5243:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"5289:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5298:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5306:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5291:6:103"},"nodeType":"YulFunctionCall","src":"5291:22:103"},"nodeType":"YulExpressionStatement","src":"5291:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5264:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5273:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5260:3:103"},"nodeType":"YulFunctionCall","src":"5260:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5285:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5256:3:103"},"nodeType":"YulFunctionCall","src":"5256:32:103"},"nodeType":"YulIf","src":"5253:2:103"},{"nodeType":"YulAssignment","src":"5324:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5347:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5334:12:103"},"nodeType":"YulFunctionCall","src":"5334:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5324:6:103"}]},{"nodeType":"YulAssignment","src":"5366:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5404:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5389:3:103"},"nodeType":"YulFunctionCall","src":"5389:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5376:12:103"},"nodeType":"YulFunctionCall","src":"5376:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5366:6:103"}]},{"nodeType":"YulAssignment","src":"5417:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5444:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5455:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5440:3:103"},"nodeType":"YulFunctionCall","src":"5440:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5427:12:103"},"nodeType":"YulFunctionCall","src":"5427:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5417:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5193:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5204:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5216:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5224:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5232:6:103","type":""}],"src":"5139:326:103"},{"body":{"nodeType":"YulBlock","src":"5608:326:103","statements":[{"body":{"nodeType":"YulBlock","src":"5655:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5664:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5672:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5657:6:103"},"nodeType":"YulFunctionCall","src":"5657:22:103"},"nodeType":"YulExpressionStatement","src":"5657:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5629:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5638:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5625:3:103"},"nodeType":"YulFunctionCall","src":"5625:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5650:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5621:3:103"},"nodeType":"YulFunctionCall","src":"5621:33:103"},"nodeType":"YulIf","src":"5618:2:103"},{"nodeType":"YulAssignment","src":"5690:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5713:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5700:12:103"},"nodeType":"YulFunctionCall","src":"5700:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5690:6:103"}]},{"nodeType":"YulAssignment","src":"5732:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5759:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5770:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5755:3:103"},"nodeType":"YulFunctionCall","src":"5755:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5742:12:103"},"nodeType":"YulFunctionCall","src":"5742:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5732:6:103"}]},{"nodeType":"YulAssignment","src":"5783:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5810:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5821:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5806:3:103"},"nodeType":"YulFunctionCall","src":"5806:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5793:12:103"},"nodeType":"YulFunctionCall","src":"5793:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5783:6:103"}]},{"nodeType":"YulAssignment","src":"5834:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5872:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5857:3:103"},"nodeType":"YulFunctionCall","src":"5857:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5844:12:103"},"nodeType":"YulFunctionCall","src":"5844:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5834:6:103"}]},{"nodeType":"YulAssignment","src":"5885:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5912:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5923:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5908:3:103"},"nodeType":"YulFunctionCall","src":"5908:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5895:12:103"},"nodeType":"YulFunctionCall","src":"5895:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"5885:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5542:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5553:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5565:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5573:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5581:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5589:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5597:6:103","type":""}],"src":"5470:464:103"},{"body":{"nodeType":"YulBlock","src":"6008:237:103","statements":[{"body":{"nodeType":"YulBlock","src":"6054:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6063:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6071:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6056:6:103"},"nodeType":"YulFunctionCall","src":"6056:22:103"},"nodeType":"YulExpressionStatement","src":"6056:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6029:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6038:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6025:3:103"},"nodeType":"YulFunctionCall","src":"6025:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6050:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6021:3:103"},"nodeType":"YulFunctionCall","src":"6021:32:103"},"nodeType":"YulIf","src":"6018:2:103"},{"nodeType":"YulVariableDeclaration","src":"6089:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6115:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6102:12:103"},"nodeType":"YulFunctionCall","src":"6102:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6093:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6189:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6198:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6206:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6191:6:103"},"nodeType":"YulFunctionCall","src":"6191:22:103"},"nodeType":"YulExpressionStatement","src":"6191:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6147:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6158:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6169:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6174:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6165:3:103"},"nodeType":"YulFunctionCall","src":"6165:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6154:3:103"},"nodeType":"YulFunctionCall","src":"6154:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6144:2:103"},"nodeType":"YulFunctionCall","src":"6144:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6137:6:103"},"nodeType":"YulFunctionCall","src":"6137:51:103"},"nodeType":"YulIf","src":"6134:2:103"},{"nodeType":"YulAssignment","src":"6224:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6234:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6224:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5974:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5985:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5997:6:103","type":""}],"src":"5939:306:103"},{"body":{"nodeType":"YulBlock","src":"6350:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"6396:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6405:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6413:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6398:6:103"},"nodeType":"YulFunctionCall","src":"6398:22:103"},"nodeType":"YulExpressionStatement","src":"6398:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6371:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6380:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6367:3:103"},"nodeType":"YulFunctionCall","src":"6367:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6392:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6363:3:103"},"nodeType":"YulFunctionCall","src":"6363:32:103"},"nodeType":"YulIf","src":"6360:2:103"},{"nodeType":"YulVariableDeclaration","src":"6431:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6450:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6444:5:103"},"nodeType":"YulFunctionCall","src":"6444:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6435:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6493:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6502:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6510:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6495:6:103"},"nodeType":"YulFunctionCall","src":"6495:22:103"},"nodeType":"YulExpressionStatement","src":"6495:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6482:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6489:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6479:2:103"},"nodeType":"YulFunctionCall","src":"6479:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6472:6:103"},"nodeType":"YulFunctionCall","src":"6472:20:103"},"nodeType":"YulIf","src":"6469:2:103"},{"nodeType":"YulAssignment","src":"6528:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6538:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6528:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6316:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6327:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6339:6:103","type":""}],"src":"6250:299:103"},{"body":{"nodeType":"YulBlock","src":"6664:900:103","statements":[{"body":{"nodeType":"YulBlock","src":"6710:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6719:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6727:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6712:6:103"},"nodeType":"YulFunctionCall","src":"6712:22:103"},"nodeType":"YulExpressionStatement","src":"6712:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6685:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6694:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6681:3:103"},"nodeType":"YulFunctionCall","src":"6681:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6706:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6677:3:103"},"nodeType":"YulFunctionCall","src":"6677:32:103"},"nodeType":"YulIf","src":"6674:2:103"},{"nodeType":"YulVariableDeclaration","src":"6745:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6765:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6759:5:103"},"nodeType":"YulFunctionCall","src":"6759:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6749:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6784:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6794:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6788:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6839:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6848:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6856:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6841:6:103"},"nodeType":"YulFunctionCall","src":"6841:22:103"},"nodeType":"YulExpressionStatement","src":"6841:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6827:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6835:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6824:2:103"},"nodeType":"YulFunctionCall","src":"6824:14:103"},"nodeType":"YulIf","src":"6821:2:103"},{"nodeType":"YulVariableDeclaration","src":"6874:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6888:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6899:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6884:3:103"},"nodeType":"YulFunctionCall","src":"6884:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6878:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6946:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6955:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6963:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6948:6:103"},"nodeType":"YulFunctionCall","src":"6948:22:103"},"nodeType":"YulExpressionStatement","src":"6948:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6926:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6935:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6922:3:103"},"nodeType":"YulFunctionCall","src":"6922:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"6940:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6918:3:103"},"nodeType":"YulFunctionCall","src":"6918:27:103"},"nodeType":"YulIf","src":"6915:2:103"},{"nodeType":"YulVariableDeclaration","src":"6981:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7010:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6994:15:103"},"nodeType":"YulFunctionCall","src":"6994:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6985:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7024:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7045:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7039:5:103"},"nodeType":"YulFunctionCall","src":"7039:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7028:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7083:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7092:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7100:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7085:6:103"},"nodeType":"YulFunctionCall","src":"7085:22:103"},"nodeType":"YulExpressionStatement","src":"7085:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7070:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"7079:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7067:2:103"},"nodeType":"YulFunctionCall","src":"7067:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7060:6:103"},"nodeType":"YulFunctionCall","src":"7060:22:103"},"nodeType":"YulIf","src":"7057:2:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7125:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"7132:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7118:6:103"},"nodeType":"YulFunctionCall","src":"7118:22:103"},"nodeType":"YulExpressionStatement","src":"7118:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7160:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7167:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7156:3:103"},"nodeType":"YulFunctionCall","src":"7156:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7182:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7186:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7178:3:103"},"nodeType":"YulFunctionCall","src":"7178:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7172:5:103"},"nodeType":"YulFunctionCall","src":"7172:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7149:6:103"},"nodeType":"YulFunctionCall","src":"7149:42:103"},"nodeType":"YulExpressionStatement","src":"7149:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7211:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7218:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7207:3:103"},"nodeType":"YulFunctionCall","src":"7207:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7233:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7237:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7229:3:103"},"nodeType":"YulFunctionCall","src":"7229:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7223:5:103"},"nodeType":"YulFunctionCall","src":"7223:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7200:6:103"},"nodeType":"YulFunctionCall","src":"7200:42:103"},"nodeType":"YulExpressionStatement","src":"7200:42:103"},{"nodeType":"YulVariableDeclaration","src":"7251:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7277:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7281:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7273:3:103"},"nodeType":"YulFunctionCall","src":"7273:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7267:5:103"},"nodeType":"YulFunctionCall","src":"7267:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7255:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7314:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7323:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7331:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7316:6:103"},"nodeType":"YulFunctionCall","src":"7316:22:103"},"nodeType":"YulExpressionStatement","src":"7316:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7300:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7310:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7297:2:103"},"nodeType":"YulFunctionCall","src":"7297:16:103"},"nodeType":"YulIf","src":"7294:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7360:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7367:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7356:3:103"},"nodeType":"YulFunctionCall","src":"7356:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7404:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7408:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7400:3:103"},"nodeType":"YulFunctionCall","src":"7400:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7419:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"7372:27:103"},"nodeType":"YulFunctionCall","src":"7372:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7349:6:103"},"nodeType":"YulFunctionCall","src":"7349:79:103"},"nodeType":"YulExpressionStatement","src":"7349:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7448:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7455:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7444:3:103"},"nodeType":"YulFunctionCall","src":"7444:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7471:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7475:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7467:3:103"},"nodeType":"YulFunctionCall","src":"7467:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7461:5:103"},"nodeType":"YulFunctionCall","src":"7461:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7437:6:103"},"nodeType":"YulFunctionCall","src":"7437:44:103"},"nodeType":"YulExpressionStatement","src":"7437:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7501:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7508:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7497:3:103"},"nodeType":"YulFunctionCall","src":"7497:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7524:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7528:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7520:3:103"},"nodeType":"YulFunctionCall","src":"7520:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7514:5:103"},"nodeType":"YulFunctionCall","src":"7514:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7490:6:103"},"nodeType":"YulFunctionCall","src":"7490:44:103"},"nodeType":"YulExpressionStatement","src":"7490:44:103"},{"nodeType":"YulAssignment","src":"7543:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7553:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7543:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6630:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6641:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6653:6:103","type":""}],"src":"6554:1010:103"},{"body":{"nodeType":"YulBlock","src":"7676:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"7722:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7731:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7739:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7724:6:103"},"nodeType":"YulFunctionCall","src":"7724:22:103"},"nodeType":"YulExpressionStatement","src":"7724:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7697:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7706:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7693:3:103"},"nodeType":"YulFunctionCall","src":"7693:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7718:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7689:3:103"},"nodeType":"YulFunctionCall","src":"7689:32:103"},"nodeType":"YulIf","src":"7686:2:103"},{"nodeType":"YulVariableDeclaration","src":"7757:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7777:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7771:5:103"},"nodeType":"YulFunctionCall","src":"7771:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7761:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7796:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7806:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7800:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7851:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7860:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7868:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7853:6:103"},"nodeType":"YulFunctionCall","src":"7853:22:103"},"nodeType":"YulExpressionStatement","src":"7853:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7839:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7847:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7836:2:103"},"nodeType":"YulFunctionCall","src":"7836:14:103"},"nodeType":"YulIf","src":"7833:2:103"},{"nodeType":"YulVariableDeclaration","src":"7886:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7900:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"7911:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7896:3:103"},"nodeType":"YulFunctionCall","src":"7896:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7890:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7958:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7967:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7975:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7960:6:103"},"nodeType":"YulFunctionCall","src":"7960:22:103"},"nodeType":"YulExpressionStatement","src":"7960:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7938:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"7947:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7934:3:103"},"nodeType":"YulFunctionCall","src":"7934:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"7952:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7930:3:103"},"nodeType":"YulFunctionCall","src":"7930:27:103"},"nodeType":"YulIf","src":"7927:2:103"},{"nodeType":"YulVariableDeclaration","src":"7993:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8022:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8006:15:103"},"nodeType":"YulFunctionCall","src":"8006:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7997:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8036:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8057:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8051:5:103"},"nodeType":"YulFunctionCall","src":"8051:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"8040:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8094:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8069:24:103"},"nodeType":"YulFunctionCall","src":"8069:33:103"},"nodeType":"YulExpressionStatement","src":"8069:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8118:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"8125:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8111:6:103"},"nodeType":"YulFunctionCall","src":"8111:22:103"},"nodeType":"YulExpressionStatement","src":"8111:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8153:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8160:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8149:3:103"},"nodeType":"YulFunctionCall","src":"8149:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8175:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8179:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8171:3:103"},"nodeType":"YulFunctionCall","src":"8171:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8165:5:103"},"nodeType":"YulFunctionCall","src":"8165:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8142:6:103"},"nodeType":"YulFunctionCall","src":"8142:42:103"},"nodeType":"YulExpressionStatement","src":"8142:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8204:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8211:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8200:3:103"},"nodeType":"YulFunctionCall","src":"8200:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8263:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8267:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8259:3:103"},"nodeType":"YulFunctionCall","src":"8259:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"8216:42:103"},"nodeType":"YulFunctionCall","src":"8216:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8193:6:103"},"nodeType":"YulFunctionCall","src":"8193:79:103"},"nodeType":"YulExpressionStatement","src":"8193:79:103"},{"nodeType":"YulVariableDeclaration","src":"8281:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8307:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8311:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8303:3:103"},"nodeType":"YulFunctionCall","src":"8303:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8297:5:103"},"nodeType":"YulFunctionCall","src":"8297:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8285:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8344:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8353:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8361:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8346:6:103"},"nodeType":"YulFunctionCall","src":"8346:22:103"},"nodeType":"YulExpressionStatement","src":"8346:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8330:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8340:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8327:2:103"},"nodeType":"YulFunctionCall","src":"8327:16:103"},"nodeType":"YulIf","src":"8324:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8390:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8397:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8386:3:103"},"nodeType":"YulFunctionCall","src":"8386:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8434:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8438:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8430:3:103"},"nodeType":"YulFunctionCall","src":"8430:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8449:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"8402:27:103"},"nodeType":"YulFunctionCall","src":"8402:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8379:6:103"},"nodeType":"YulFunctionCall","src":"8379:79:103"},"nodeType":"YulExpressionStatement","src":"8379:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8478:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8485:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8474:3:103"},"nodeType":"YulFunctionCall","src":"8474:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8501:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8505:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8497:3:103"},"nodeType":"YulFunctionCall","src":"8497:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8491:5:103"},"nodeType":"YulFunctionCall","src":"8491:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8467:6:103"},"nodeType":"YulFunctionCall","src":"8467:44:103"},"nodeType":"YulExpressionStatement","src":"8467:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8531:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8538:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8527:3:103"},"nodeType":"YulFunctionCall","src":"8527:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8554:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8558:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8550:3:103"},"nodeType":"YulFunctionCall","src":"8550:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8544:5:103"},"nodeType":"YulFunctionCall","src":"8544:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8520:6:103"},"nodeType":"YulFunctionCall","src":"8520:44:103"},"nodeType":"YulExpressionStatement","src":"8520:44:103"},{"nodeType":"YulAssignment","src":"8573:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"8583:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8573:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7642:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7653:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7665:6:103","type":""}],"src":"7569:1025:103"},{"body":{"nodeType":"YulBlock","src":"8704:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8714:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8724:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8718:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8772:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8781:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8789:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8774:6:103"},"nodeType":"YulFunctionCall","src":"8774:22:103"},"nodeType":"YulExpressionStatement","src":"8774:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8747:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8756:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8743:3:103"},"nodeType":"YulFunctionCall","src":"8743:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8768:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8739:3:103"},"nodeType":"YulFunctionCall","src":"8739:32:103"},"nodeType":"YulIf","src":"8736:2:103"},{"nodeType":"YulVariableDeclaration","src":"8807:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8836:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8820:15:103"},"nodeType":"YulFunctionCall","src":"8820:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8811:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8855:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8905:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"8862:42:103"},"nodeType":"YulFunctionCall","src":"8862:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8848:6:103"},"nodeType":"YulFunctionCall","src":"8848:68:103"},"nodeType":"YulExpressionStatement","src":"8848:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8936:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8943:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8932:3:103"},"nodeType":"YulFunctionCall","src":"8932:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8958:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8969:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8954:3:103"},"nodeType":"YulFunctionCall","src":"8954:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8948:5:103"},"nodeType":"YulFunctionCall","src":"8948:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8925:6:103"},"nodeType":"YulFunctionCall","src":"8925:49:103"},"nodeType":"YulExpressionStatement","src":"8925:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8994:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9001:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8990:3:103"},"nodeType":"YulFunctionCall","src":"8990:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9016:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9027:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9012:3:103"},"nodeType":"YulFunctionCall","src":"9012:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9006:5:103"},"nodeType":"YulFunctionCall","src":"9006:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8983:6:103"},"nodeType":"YulFunctionCall","src":"8983:49:103"},"nodeType":"YulExpressionStatement","src":"8983:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9052:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9059:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9048:3:103"},"nodeType":"YulFunctionCall","src":"9048:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9074:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9085:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9070:3:103"},"nodeType":"YulFunctionCall","src":"9070:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9064:5:103"},"nodeType":"YulFunctionCall","src":"9064:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9041:6:103"},"nodeType":"YulFunctionCall","src":"9041:49:103"},"nodeType":"YulExpressionStatement","src":"9041:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9110:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9117:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9106:3:103"},"nodeType":"YulFunctionCall","src":"9106:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9144:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9129:3:103"},"nodeType":"YulFunctionCall","src":"9129:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9123:5:103"},"nodeType":"YulFunctionCall","src":"9123:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9099:6:103"},"nodeType":"YulFunctionCall","src":"9099:51:103"},"nodeType":"YulExpressionStatement","src":"9099:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9170:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9177:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9166:3:103"},"nodeType":"YulFunctionCall","src":"9166:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9193:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9204:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9189:3:103"},"nodeType":"YulFunctionCall","src":"9189:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9183:5:103"},"nodeType":"YulFunctionCall","src":"9183:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9159:6:103"},"nodeType":"YulFunctionCall","src":"9159:51:103"},"nodeType":"YulExpressionStatement","src":"9159:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9230:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9237:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9226:3:103"},"nodeType":"YulFunctionCall","src":"9226:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9253:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9264:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9249:3:103"},"nodeType":"YulFunctionCall","src":"9249:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9243:5:103"},"nodeType":"YulFunctionCall","src":"9243:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9219:6:103"},"nodeType":"YulFunctionCall","src":"9219:51:103"},"nodeType":"YulExpressionStatement","src":"9219:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9290:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9297:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9286:3:103"},"nodeType":"YulFunctionCall","src":"9286:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9313:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9324:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9309:3:103"},"nodeType":"YulFunctionCall","src":"9309:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9303:5:103"},"nodeType":"YulFunctionCall","src":"9303:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9279:6:103"},"nodeType":"YulFunctionCall","src":"9279:51:103"},"nodeType":"YulExpressionStatement","src":"9279:51:103"},{"nodeType":"YulVariableDeclaration","src":"9339:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"9349:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9343:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9372:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"9379:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9368:3:103"},"nodeType":"YulFunctionCall","src":"9368:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9394:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"9405:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9390:3:103"},"nodeType":"YulFunctionCall","src":"9390:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9384:5:103"},"nodeType":"YulFunctionCall","src":"9384:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9361:6:103"},"nodeType":"YulFunctionCall","src":"9361:49:103"},"nodeType":"YulExpressionStatement","src":"9361:49:103"},{"nodeType":"YulAssignment","src":"9419:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"9429:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9419:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8670:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8681:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8693:6:103","type":""}],"src":"8599:841:103"},{"body":{"nodeType":"YulBlock","src":"9515:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"9561:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9570:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9578:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9563:6:103"},"nodeType":"YulFunctionCall","src":"9563:22:103"},"nodeType":"YulExpressionStatement","src":"9563:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9536:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9545:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9532:3:103"},"nodeType":"YulFunctionCall","src":"9532:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9557:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9528:3:103"},"nodeType":"YulFunctionCall","src":"9528:32:103"},"nodeType":"YulIf","src":"9525:2:103"},{"nodeType":"YulAssignment","src":"9596:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9619:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9606:12:103"},"nodeType":"YulFunctionCall","src":"9606:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9596:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9481:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9492:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9504:6:103","type":""}],"src":"9445:190:103"},{"body":{"nodeType":"YulBlock","src":"9721:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"9767:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9776:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9784:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9769:6:103"},"nodeType":"YulFunctionCall","src":"9769:22:103"},"nodeType":"YulExpressionStatement","src":"9769:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9742:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9751:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9738:3:103"},"nodeType":"YulFunctionCall","src":"9738:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9763:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9734:3:103"},"nodeType":"YulFunctionCall","src":"9734:32:103"},"nodeType":"YulIf","src":"9731:2:103"},{"nodeType":"YulAssignment","src":"9802:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9818:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9812:5:103"},"nodeType":"YulFunctionCall","src":"9812:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9802:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9687:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9698:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9710:6:103","type":""}],"src":"9640:194:103"},{"body":{"nodeType":"YulBlock","src":"9962:654:103","statements":[{"body":{"nodeType":"YulBlock","src":"10008:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10017:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10025:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10010:6:103"},"nodeType":"YulFunctionCall","src":"10010:22:103"},"nodeType":"YulExpressionStatement","src":"10010:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9983:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9992:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9979:3:103"},"nodeType":"YulFunctionCall","src":"9979:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"10004:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9975:3:103"},"nodeType":"YulFunctionCall","src":"9975:32:103"},"nodeType":"YulIf","src":"9972:2:103"},{"nodeType":"YulAssignment","src":"10043:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10066:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10053:12:103"},"nodeType":"YulFunctionCall","src":"10053:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10043:6:103"}]},{"nodeType":"YulAssignment","src":"10085:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10108:3:103"},"nodeType":"YulFunctionCall","src":"10108:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10095:12:103"},"nodeType":"YulFunctionCall","src":"10095:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10085:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"10136:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10167:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10178:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10163:3:103"},"nodeType":"YulFunctionCall","src":"10163:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10150:12:103"},"nodeType":"YulFunctionCall","src":"10150:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10140:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10191:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"10201:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10195:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10246:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10255:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10263:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10248:6:103"},"nodeType":"YulFunctionCall","src":"10248:22:103"},"nodeType":"YulExpressionStatement","src":"10248:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10234:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10242:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10231:2:103"},"nodeType":"YulFunctionCall","src":"10231:14:103"},"nodeType":"YulIf","src":"10228:2:103"},{"nodeType":"YulVariableDeclaration","src":"10281:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10295:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"10306:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10291:3:103"},"nodeType":"YulFunctionCall","src":"10291:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"10285:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10361:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10370:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10378:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10363:6:103"},"nodeType":"YulFunctionCall","src":"10363:22:103"},"nodeType":"YulExpressionStatement","src":"10363:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10340:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10344:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10336:3:103"},"nodeType":"YulFunctionCall","src":"10336:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10351:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10332:3:103"},"nodeType":"YulFunctionCall","src":"10332:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10325:6:103"},"nodeType":"YulFunctionCall","src":"10325:35:103"},"nodeType":"YulIf","src":"10322:2:103"},{"nodeType":"YulVariableDeclaration","src":"10396:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10423:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10410:12:103"},"nodeType":"YulFunctionCall","src":"10410:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10400:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10453:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10462:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10470:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10455:6:103"},"nodeType":"YulFunctionCall","src":"10455:22:103"},"nodeType":"YulExpressionStatement","src":"10455:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"10441:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10449:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10438:2:103"},"nodeType":"YulFunctionCall","src":"10438:14:103"},"nodeType":"YulIf","src":"10435:2:103"},{"body":{"nodeType":"YulBlock","src":"10529:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10538:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10546:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10531:6:103"},"nodeType":"YulFunctionCall","src":"10531:22:103"},"nodeType":"YulExpressionStatement","src":"10531:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10502:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"10506:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10498:3:103"},"nodeType":"YulFunctionCall","src":"10498:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"10515:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10494:3:103"},"nodeType":"YulFunctionCall","src":"10494:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10520:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10491:2:103"},"nodeType":"YulFunctionCall","src":"10491:37:103"},"nodeType":"YulIf","src":"10488:2:103"},{"nodeType":"YulAssignment","src":"10564:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10578:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10582:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10574:3:103"},"nodeType":"YulFunctionCall","src":"10574:11:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10564:6:103"}]},{"nodeType":"YulAssignment","src":"10594:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"10604:6:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"10594:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9904:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9915:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9927:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9935:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9943:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9951:6:103","type":""}],"src":"9839:777:103"},{"body":{"nodeType":"YulBlock","src":"10708:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"10754:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10763:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10771:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10756:6:103"},"nodeType":"YulFunctionCall","src":"10756:22:103"},"nodeType":"YulExpressionStatement","src":"10756:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10729:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"10738:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10725:3:103"},"nodeType":"YulFunctionCall","src":"10725:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"10750:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10721:3:103"},"nodeType":"YulFunctionCall","src":"10721:32:103"},"nodeType":"YulIf","src":"10718:2:103"},{"nodeType":"YulAssignment","src":"10789:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10812:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10799:12:103"},"nodeType":"YulFunctionCall","src":"10799:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10789:6:103"}]},{"nodeType":"YulAssignment","src":"10831:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10858:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10869:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10854:3:103"},"nodeType":"YulFunctionCall","src":"10854:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10841:12:103"},"nodeType":"YulFunctionCall","src":"10841:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10831:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10666:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10677:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10689:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10697:6:103","type":""}],"src":"10621:258:103"},{"body":{"nodeType":"YulBlock","src":"10982:157:103","statements":[{"body":{"nodeType":"YulBlock","src":"11028:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11037:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11045:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11030:6:103"},"nodeType":"YulFunctionCall","src":"11030:22:103"},"nodeType":"YulExpressionStatement","src":"11030:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11003:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11012:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10999:3:103"},"nodeType":"YulFunctionCall","src":"10999:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11024:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10995:3:103"},"nodeType":"YulFunctionCall","src":"10995:32:103"},"nodeType":"YulIf","src":"10992:2:103"},{"nodeType":"YulAssignment","src":"11063:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11079:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11073:5:103"},"nodeType":"YulFunctionCall","src":"11073:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11063:6:103"}]},{"nodeType":"YulAssignment","src":"11098:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11118:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11129:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11114:3:103"},"nodeType":"YulFunctionCall","src":"11114:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11108:5:103"},"nodeType":"YulFunctionCall","src":"11108:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11098:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10940:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10951:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10963:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10971:6:103","type":""}],"src":"10884:255:103"},{"body":{"nodeType":"YulBlock","src":"11282:326:103","statements":[{"body":{"nodeType":"YulBlock","src":"11329:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11338:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"11346:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11331:6:103"},"nodeType":"YulFunctionCall","src":"11331:22:103"},"nodeType":"YulExpressionStatement","src":"11331:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11303:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11312:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11299:3:103"},"nodeType":"YulFunctionCall","src":"11299:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11324:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11295:3:103"},"nodeType":"YulFunctionCall","src":"11295:33:103"},"nodeType":"YulIf","src":"11292:2:103"},{"nodeType":"YulAssignment","src":"11364:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11387:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11374:12:103"},"nodeType":"YulFunctionCall","src":"11374:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11364:6:103"}]},{"nodeType":"YulAssignment","src":"11406:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11444:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11429:3:103"},"nodeType":"YulFunctionCall","src":"11429:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11416:12:103"},"nodeType":"YulFunctionCall","src":"11416:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11406:6:103"}]},{"nodeType":"YulAssignment","src":"11457:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11484:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11495:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11480:3:103"},"nodeType":"YulFunctionCall","src":"11480:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11467:12:103"},"nodeType":"YulFunctionCall","src":"11467:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"11457:6:103"}]},{"nodeType":"YulAssignment","src":"11508:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11535:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11546:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11531:3:103"},"nodeType":"YulFunctionCall","src":"11531:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11518:12:103"},"nodeType":"YulFunctionCall","src":"11518:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"11508:6:103"}]},{"nodeType":"YulAssignment","src":"11559:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11586:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11597:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11582:3:103"},"nodeType":"YulFunctionCall","src":"11582:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11569:12:103"},"nodeType":"YulFunctionCall","src":"11569:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"11559:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11216:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11227:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11239:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11247:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11255:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11263:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"11271:6:103","type":""}],"src":"11144:464:103"},{"body":{"nodeType":"YulBlock","src":"11654:50:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11671:3:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11690:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11683:6:103"},"nodeType":"YulFunctionCall","src":"11683:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11676:6:103"},"nodeType":"YulFunctionCall","src":"11676:21:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11664:6:103"},"nodeType":"YulFunctionCall","src":"11664:34:103"},"nodeType":"YulExpressionStatement","src":"11664:34:103"}]},"name":"abi_encode_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11638:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11645:3:103","type":""}],"src":"11613:91:103"},{"body":{"nodeType":"YulBlock","src":"11758:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"11768:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11788:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11782:5:103"},"nodeType":"YulFunctionCall","src":"11782:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11772:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11810:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"11815:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11803:6:103"},"nodeType":"YulFunctionCall","src":"11803:19:103"},"nodeType":"YulExpressionStatement","src":"11803:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11857:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"11864:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11853:3:103"},"nodeType":"YulFunctionCall","src":"11853:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11875:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"11880:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11871:3:103"},"nodeType":"YulFunctionCall","src":"11871:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"11887:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11831:21:103"},"nodeType":"YulFunctionCall","src":"11831:63:103"},"nodeType":"YulExpressionStatement","src":"11831:63:103"},{"nodeType":"YulAssignment","src":"11903:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11918:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11931:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"11939:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11927:3:103"},"nodeType":"YulFunctionCall","src":"11927:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11948:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11944:3:103"},"nodeType":"YulFunctionCall","src":"11944:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11923:3:103"},"nodeType":"YulFunctionCall","src":"11923:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11914:3:103"},"nodeType":"YulFunctionCall","src":"11914:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"11955:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11910:3:103"},"nodeType":"YulFunctionCall","src":"11910:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11903:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"11735:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11742:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11750:3:103","type":""}],"src":"11709:257:103"},{"body":{"nodeType":"YulBlock","src":"12108:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"12118:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12138:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12132:5:103"},"nodeType":"YulFunctionCall","src":"12132:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12122:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12180:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12188:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12176:3:103"},"nodeType":"YulFunctionCall","src":"12176:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"12195:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12200:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12154:21:103"},"nodeType":"YulFunctionCall","src":"12154:53:103"},"nodeType":"YulExpressionStatement","src":"12154:53:103"},{"nodeType":"YulAssignment","src":"12216:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12227:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12232:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12223:3:103"},"nodeType":"YulFunctionCall","src":"12223:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12216:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12084:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12089:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12100:3:103","type":""}],"src":"11971:274:103"},{"body":{"nodeType":"YulBlock","src":"12639:397:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12656:3:103"},{"kind":"string","nodeType":"YulLiteral","src":"12661:25:103","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12649:6:103"},"nodeType":"YulFunctionCall","src":"12649:38:103"},"nodeType":"YulExpressionStatement","src":"12649:38:103"},{"nodeType":"YulVariableDeclaration","src":"12696:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12716:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12710:5:103"},"nodeType":"YulFunctionCall","src":"12710:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12700:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12758:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12766:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12754:3:103"},"nodeType":"YulFunctionCall","src":"12754:17:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12777:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"12782:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12773:3:103"},"nodeType":"YulFunctionCall","src":"12773:12:103"},{"name":"length","nodeType":"YulIdentifier","src":"12787:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12732:21:103"},"nodeType":"YulFunctionCall","src":"12732:62:103"},"nodeType":"YulExpressionStatement","src":"12732:62:103"},{"nodeType":"YulVariableDeclaration","src":"12803:26:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12817:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12822:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12813:3:103"},"nodeType":"YulFunctionCall","src":"12813:16:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12807:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12849:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"12853:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12845:3:103"},"nodeType":"YulFunctionCall","src":"12845:11:103"},{"kind":"string","nodeType":"YulLiteral","src":"12858:19:103","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12838:6:103"},"nodeType":"YulFunctionCall","src":"12838:40:103"},"nodeType":"YulExpressionStatement","src":"12838:40:103"},{"nodeType":"YulVariableDeclaration","src":"12887:29:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12909:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12903:5:103"},"nodeType":"YulFunctionCall","src":"12903:13:103"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"12891:8:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12951:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12959:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12947:3:103"},"nodeType":"YulFunctionCall","src":"12947:17:103"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"12970:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"12974:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12966:3:103"},"nodeType":"YulFunctionCall","src":"12966:11:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"12979:8:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12925:21:103"},"nodeType":"YulFunctionCall","src":"12925:63:103"},"nodeType":"YulExpressionStatement","src":"12925:63:103"},{"nodeType":"YulAssignment","src":"12997:33:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"13012:2:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"13016:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13008:3:103"},"nodeType":"YulFunctionCall","src":"13008:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"13027:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13004:3:103"},"nodeType":"YulFunctionCall","src":"13004:26:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12997:3:103"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12607:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12612:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12620:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12631:3:103","type":""}],"src":"12250:786:103"},{"body":{"nodeType":"YulBlock","src":"13142:102:103","statements":[{"nodeType":"YulAssignment","src":"13152:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13164:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13175:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13160:3:103"},"nodeType":"YulFunctionCall","src":"13160:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13152:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13194:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13209:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13225:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13230:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13221:3:103"},"nodeType":"YulFunctionCall","src":"13221:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13234:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13217:3:103"},"nodeType":"YulFunctionCall","src":"13217:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13205:3:103"},"nodeType":"YulFunctionCall","src":"13205:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13187:6:103"},"nodeType":"YulFunctionCall","src":"13187:51:103"},"nodeType":"YulExpressionStatement","src":"13187:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13111:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13122:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13133:4:103","type":""}],"src":"13041:203:103"},{"body":{"nodeType":"YulBlock","src":"13378:175:103","statements":[{"nodeType":"YulAssignment","src":"13388:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13400:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13411:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13396:3:103"},"nodeType":"YulFunctionCall","src":"13396:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13388:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"13423:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13441:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13446:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13437:3:103"},"nodeType":"YulFunctionCall","src":"13437:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13450:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13433:3:103"},"nodeType":"YulFunctionCall","src":"13433:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13427:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13468:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13483:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13491:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13479:3:103"},"nodeType":"YulFunctionCall","src":"13479:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13461:6:103"},"nodeType":"YulFunctionCall","src":"13461:34:103"},"nodeType":"YulExpressionStatement","src":"13461:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13515:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13526:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13511:3:103"},"nodeType":"YulFunctionCall","src":"13511:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13535:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13543:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13531:3:103"},"nodeType":"YulFunctionCall","src":"13531:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13504:6:103"},"nodeType":"YulFunctionCall","src":"13504:43:103"},"nodeType":"YulExpressionStatement","src":"13504:43:103"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13339:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13350:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13358:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13369:4:103","type":""}],"src":"13249:304:103"},{"body":{"nodeType":"YulBlock","src":"13715:218:103","statements":[{"nodeType":"YulAssignment","src":"13725:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13737:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13748:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13733:3:103"},"nodeType":"YulFunctionCall","src":"13733:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13725:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"13760:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13778:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13783:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13774:3:103"},"nodeType":"YulFunctionCall","src":"13774:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13787:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13770:3:103"},"nodeType":"YulFunctionCall","src":"13770:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13764:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13805:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13820:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13828:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13816:3:103"},"nodeType":"YulFunctionCall","src":"13816:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13798:6:103"},"nodeType":"YulFunctionCall","src":"13798:34:103"},"nodeType":"YulExpressionStatement","src":"13798:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13852:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13863:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13848:3:103"},"nodeType":"YulFunctionCall","src":"13848:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13872:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13880:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13868:3:103"},"nodeType":"YulFunctionCall","src":"13868:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13841:6:103"},"nodeType":"YulFunctionCall","src":"13841:43:103"},"nodeType":"YulExpressionStatement","src":"13841:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13904:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13915:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13900:3:103"},"nodeType":"YulFunctionCall","src":"13900:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"13920:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13893:6:103"},"nodeType":"YulFunctionCall","src":"13893:34:103"},"nodeType":"YulExpressionStatement","src":"13893:34:103"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13668:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13679:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13687:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13695:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13706:4:103","type":""}],"src":"13558:375:103"},{"body":{"nodeType":"YulBlock","src":"14187:370:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14204:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14219:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14235:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14240:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14231:3:103"},"nodeType":"YulFunctionCall","src":"14231:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14244:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14227:3:103"},"nodeType":"YulFunctionCall","src":"14227:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14215:3:103"},"nodeType":"YulFunctionCall","src":"14215:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14197:6:103"},"nodeType":"YulFunctionCall","src":"14197:51:103"},"nodeType":"YulExpressionStatement","src":"14197:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14268:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14279:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14264:3:103"},"nodeType":"YulFunctionCall","src":"14264:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14284:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14257:6:103"},"nodeType":"YulFunctionCall","src":"14257:34:103"},"nodeType":"YulExpressionStatement","src":"14257:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14311:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14322:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14307:3:103"},"nodeType":"YulFunctionCall","src":"14307:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"14327:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14300:6:103"},"nodeType":"YulFunctionCall","src":"14300:34:103"},"nodeType":"YulExpressionStatement","src":"14300:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14354:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14365:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14350:3:103"},"nodeType":"YulFunctionCall","src":"14350:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14370:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14343:6:103"},"nodeType":"YulFunctionCall","src":"14343:31:103"},"nodeType":"YulExpressionStatement","src":"14343:31:103"},{"nodeType":"YulVariableDeclaration","src":"14383:59:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"14414:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14437:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14422:3:103"},"nodeType":"YulFunctionCall","src":"14422:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"14397:16:103"},"nodeType":"YulFunctionCall","src":"14397:45:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"14387:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14473:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14458:3:103"},"nodeType":"YulFunctionCall","src":"14458:19:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"14483:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"14491:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14479:3:103"},"nodeType":"YulFunctionCall","src":"14479:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14451:6:103"},"nodeType":"YulFunctionCall","src":"14451:51:103"},"nodeType":"YulExpressionStatement","src":"14451:51:103"},{"nodeType":"YulAssignment","src":"14511:40:103","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"14536:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"14544:6:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"14519:16:103"},"nodeType":"YulFunctionCall","src":"14519:32:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14511:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14124:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14135:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14143:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14151:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14159:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14167:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14178:4:103","type":""}],"src":"13938:619:103"},{"body":{"nodeType":"YulBlock","src":"14713:484:103","statements":[{"nodeType":"YulVariableDeclaration","src":"14723:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"14733:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14727:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14744:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14762:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"14773:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14758:3:103"},"nodeType":"YulFunctionCall","src":"14758:18:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"14748:6:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14792:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"14803:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14785:6:103"},"nodeType":"YulFunctionCall","src":"14785:21:103"},"nodeType":"YulExpressionStatement","src":"14785:21:103"},{"nodeType":"YulVariableDeclaration","src":"14815:17:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"14826:6:103"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"14819:3:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14841:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14861:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14855:5:103"},"nodeType":"YulFunctionCall","src":"14855:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"14845:6:103","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"14884:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"14892:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14877:6:103"},"nodeType":"YulFunctionCall","src":"14877:22:103"},"nodeType":"YulExpressionStatement","src":"14877:22:103"},{"nodeType":"YulAssignment","src":"14908:25:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14919:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14930:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14915:3:103"},"nodeType":"YulFunctionCall","src":"14915:18:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"14908:3:103"}]},{"nodeType":"YulVariableDeclaration","src":"14942:29:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14960:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"14968:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14956:3:103"},"nodeType":"YulFunctionCall","src":"14956:15:103"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"14946:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"14980:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"14989:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14984:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"15051:120:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15072:3:103"},{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15083:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15077:5:103"},"nodeType":"YulFunctionCall","src":"15077:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15065:6:103"},"nodeType":"YulFunctionCall","src":"15065:26:103"},"nodeType":"YulExpressionStatement","src":"15065:26:103"},{"nodeType":"YulAssignment","src":"15104:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15115:3:103"},{"name":"_1","nodeType":"YulIdentifier","src":"15120:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15111:3:103"},"nodeType":"YulFunctionCall","src":"15111:12:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"15104:3:103"}]},{"nodeType":"YulAssignment","src":"15136:25:103","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15150:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"15158:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15146:3:103"},"nodeType":"YulFunctionCall","src":"15146:15:103"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"15136:6:103"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15013:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"15016:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15010:2:103"},"nodeType":"YulFunctionCall","src":"15010:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15024:18:103","statements":[{"nodeType":"YulAssignment","src":"15026:14:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15035:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"15038:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15031:3:103"},"nodeType":"YulFunctionCall","src":"15031:9:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15026:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"15006:3:103","statements":[]},"src":"15002:169:103"},{"nodeType":"YulAssignment","src":"15180:11:103","value":{"name":"pos","nodeType":"YulIdentifier","src":"15188:3:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15180:4:103"}]}]},"name":"abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14682:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14693:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14704:4:103","type":""}],"src":"14562:635:103"},{"body":{"nodeType":"YulBlock","src":"15297:92:103","statements":[{"nodeType":"YulAssignment","src":"15307:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15319:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15330:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15315:3:103"},"nodeType":"YulFunctionCall","src":"15315:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15307:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15349:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15374:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15367:6:103"},"nodeType":"YulFunctionCall","src":"15367:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15360:6:103"},"nodeType":"YulFunctionCall","src":"15360:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15342:6:103"},"nodeType":"YulFunctionCall","src":"15342:41:103"},"nodeType":"YulExpressionStatement","src":"15342:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15266:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15277:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15288:4:103","type":""}],"src":"15202:187:103"},{"body":{"nodeType":"YulBlock","src":"15545:234:103","statements":[{"nodeType":"YulAssignment","src":"15555:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15578:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15563:3:103"},"nodeType":"YulFunctionCall","src":"15563:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15555:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15597:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15622:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15615:6:103"},"nodeType":"YulFunctionCall","src":"15615:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15608:6:103"},"nodeType":"YulFunctionCall","src":"15608:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15590:6:103"},"nodeType":"YulFunctionCall","src":"15590:41:103"},"nodeType":"YulExpressionStatement","src":"15590:41:103"},{"nodeType":"YulVariableDeclaration","src":"15640:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15658:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15663:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15654:3:103"},"nodeType":"YulFunctionCall","src":"15654:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15667:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15650:3:103"},"nodeType":"YulFunctionCall","src":"15650:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15644:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15689:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15700:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15685:3:103"},"nodeType":"YulFunctionCall","src":"15685:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15709:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"15717:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15705:3:103"},"nodeType":"YulFunctionCall","src":"15705:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15678:6:103"},"nodeType":"YulFunctionCall","src":"15678:43:103"},"nodeType":"YulExpressionStatement","src":"15678:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15741:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15752:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15737:3:103"},"nodeType":"YulFunctionCall","src":"15737:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"15761:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"15769:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15757:3:103"},"nodeType":"YulFunctionCall","src":"15757:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15730:6:103"},"nodeType":"YulFunctionCall","src":"15730:43:103"},"nodeType":"YulExpressionStatement","src":"15730:43:103"}]},"name":"abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15498:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15509:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15517:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15525:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15536:4:103","type":""}],"src":"15394:385:103"},{"body":{"nodeType":"YulBlock","src":"15953:200:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15970:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15995:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15988:6:103"},"nodeType":"YulFunctionCall","src":"15988:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15981:6:103"},"nodeType":"YulFunctionCall","src":"15981:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15963:6:103"},"nodeType":"YulFunctionCall","src":"15963:41:103"},"nodeType":"YulExpressionStatement","src":"15963:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16024:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16035:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16020:3:103"},"nodeType":"YulFunctionCall","src":"16020:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"16040:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16013:6:103"},"nodeType":"YulFunctionCall","src":"16013:34:103"},"nodeType":"YulExpressionStatement","src":"16013:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16067:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16078:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16063:3:103"},"nodeType":"YulFunctionCall","src":"16063:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16083:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16056:6:103"},"nodeType":"YulFunctionCall","src":"16056:30:103"},"nodeType":"YulExpressionStatement","src":"16056:30:103"},{"nodeType":"YulAssignment","src":"16095:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"16120:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16132:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16143:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16128:3:103"},"nodeType":"YulFunctionCall","src":"16128:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"16103:16:103"},"nodeType":"YulFunctionCall","src":"16103:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16095:4:103"}]}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15906:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15917:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15925:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15933:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15944:4:103","type":""}],"src":"15784:369:103"},{"body":{"nodeType":"YulBlock","src":"16309:178:103","statements":[{"nodeType":"YulAssignment","src":"16319:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16331:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16342:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16327:3:103"},"nodeType":"YulFunctionCall","src":"16327:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16319:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16361:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16386:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16379:6:103"},"nodeType":"YulFunctionCall","src":"16379:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16372:6:103"},"nodeType":"YulFunctionCall","src":"16372:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16354:6:103"},"nodeType":"YulFunctionCall","src":"16354:41:103"},"nodeType":"YulExpressionStatement","src":"16354:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16426:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16411:3:103"},"nodeType":"YulFunctionCall","src":"16411:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"16431:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16404:6:103"},"nodeType":"YulFunctionCall","src":"16404:34:103"},"nodeType":"YulExpressionStatement","src":"16404:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16469:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16454:3:103"},"nodeType":"YulFunctionCall","src":"16454:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"16474:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16447:6:103"},"nodeType":"YulFunctionCall","src":"16447:34:103"},"nodeType":"YulExpressionStatement","src":"16447:34:103"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16262:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16273:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16281:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16289:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16300:4:103","type":""}],"src":"16158:329:103"},{"body":{"nodeType":"YulBlock","src":"16593:76:103","statements":[{"nodeType":"YulAssignment","src":"16603:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16626:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16611:3:103"},"nodeType":"YulFunctionCall","src":"16611:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16603:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16645:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16656:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16638:6:103"},"nodeType":"YulFunctionCall","src":"16638:25:103"},"nodeType":"YulExpressionStatement","src":"16638:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16584:4:103","type":""}],"src":"16492:177:103"},{"body":{"nodeType":"YulBlock","src":"16859:232:103","statements":[{"nodeType":"YulAssignment","src":"16869:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16881:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16892:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16877:3:103"},"nodeType":"YulFunctionCall","src":"16877:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16869:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16912:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16923:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16905:6:103"},"nodeType":"YulFunctionCall","src":"16905:25:103"},"nodeType":"YulExpressionStatement","src":"16905:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16950:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16961:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16946:3:103"},"nodeType":"YulFunctionCall","src":"16946:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16970:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16986:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16991:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16982:3:103"},"nodeType":"YulFunctionCall","src":"16982:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"16995:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16978:3:103"},"nodeType":"YulFunctionCall","src":"16978:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16966:3:103"},"nodeType":"YulFunctionCall","src":"16966:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16939:6:103"},"nodeType":"YulFunctionCall","src":"16939:60:103"},"nodeType":"YulExpressionStatement","src":"16939:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17030:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17015:3:103"},"nodeType":"YulFunctionCall","src":"17015:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"17035:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17008:6:103"},"nodeType":"YulFunctionCall","src":"17008:34:103"},"nodeType":"YulExpressionStatement","src":"17008:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17062:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17073:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17058:3:103"},"nodeType":"YulFunctionCall","src":"17058:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"17078:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17051:6:103"},"nodeType":"YulFunctionCall","src":"17051:34:103"},"nodeType":"YulExpressionStatement","src":"17051:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16804:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"16815:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"16823:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16831:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16839:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16850:4:103","type":""}],"src":"16674:417:103"},{"body":{"nodeType":"YulBlock","src":"17253:162:103","statements":[{"nodeType":"YulAssignment","src":"17263:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17275:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17286:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17271:3:103"},"nodeType":"YulFunctionCall","src":"17271:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17263:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17305:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17316:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17298:6:103"},"nodeType":"YulFunctionCall","src":"17298:25:103"},"nodeType":"YulExpressionStatement","src":"17298:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17343:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17354:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17339:3:103"},"nodeType":"YulFunctionCall","src":"17339:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17359:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17332:6:103"},"nodeType":"YulFunctionCall","src":"17332:34:103"},"nodeType":"YulExpressionStatement","src":"17332:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17397:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17382:3:103"},"nodeType":"YulFunctionCall","src":"17382:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"17402:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17375:6:103"},"nodeType":"YulFunctionCall","src":"17375:34:103"},"nodeType":"YulExpressionStatement","src":"17375:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17206:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17217:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17225:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17233:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17244:4:103","type":""}],"src":"17096:319:103"},{"body":{"nodeType":"YulBlock","src":"17605:206:103","statements":[{"nodeType":"YulAssignment","src":"17615:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17627:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17638:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17623:3:103"},"nodeType":"YulFunctionCall","src":"17623:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17615:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17658:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17669:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17651:6:103"},"nodeType":"YulFunctionCall","src":"17651:25:103"},"nodeType":"YulExpressionStatement","src":"17651:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17696:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17707:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17692:3:103"},"nodeType":"YulFunctionCall","src":"17692:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17712:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17685:6:103"},"nodeType":"YulFunctionCall","src":"17685:34:103"},"nodeType":"YulExpressionStatement","src":"17685:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17739:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17750:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17735:3:103"},"nodeType":"YulFunctionCall","src":"17735:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"17755:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17728:6:103"},"nodeType":"YulFunctionCall","src":"17728:34:103"},"nodeType":"YulExpressionStatement","src":"17728:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17782:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17793:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17778:3:103"},"nodeType":"YulFunctionCall","src":"17778:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"17798:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17771:6:103"},"nodeType":"YulFunctionCall","src":"17771:34:103"},"nodeType":"YulExpressionStatement","src":"17771:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17550:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17561:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17569:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17577:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17585:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17596:4:103","type":""}],"src":"17420:391:103"},{"body":{"nodeType":"YulBlock","src":"18067:370:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18084:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18095:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18077:6:103"},"nodeType":"YulFunctionCall","src":"18077:25:103"},"nodeType":"YulExpressionStatement","src":"18077:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18133:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18118:3:103"},"nodeType":"YulFunctionCall","src":"18118:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18138:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18111:6:103"},"nodeType":"YulFunctionCall","src":"18111:31:103"},"nodeType":"YulExpressionStatement","src":"18111:31:103"},{"nodeType":"YulVariableDeclaration","src":"18151:59:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18182:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18194:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18205:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18190:3:103"},"nodeType":"YulFunctionCall","src":"18190:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18165:16:103"},"nodeType":"YulFunctionCall","src":"18165:45:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"18155:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18230:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18241:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18226:3:103"},"nodeType":"YulFunctionCall","src":"18226:18:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"18250:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"18258:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18246:3:103"},"nodeType":"YulFunctionCall","src":"18246:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18219:6:103"},"nodeType":"YulFunctionCall","src":"18219:50:103"},"nodeType":"YulExpressionStatement","src":"18219:50:103"},{"nodeType":"YulAssignment","src":"18278:40:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"18303:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"18311:6:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18286:16:103"},"nodeType":"YulFunctionCall","src":"18286:32:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18278:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18338:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18349:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18334:3:103"},"nodeType":"YulFunctionCall","src":"18334:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18358:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18374:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"18379:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18370:3:103"},"nodeType":"YulFunctionCall","src":"18370:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"18383:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"18366:3:103"},"nodeType":"YulFunctionCall","src":"18366:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18354:3:103"},"nodeType":"YulFunctionCall","src":"18354:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18327:6:103"},"nodeType":"YulFunctionCall","src":"18327:60:103"},"nodeType":"YulExpressionStatement","src":"18327:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18407:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18418:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18403:3:103"},"nodeType":"YulFunctionCall","src":"18403:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"18424:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18396:6:103"},"nodeType":"YulFunctionCall","src":"18396:35:103"},"nodeType":"YulExpressionStatement","src":"18396:35:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18004:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"18015:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"18023:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"18031:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18039:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18047:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18058:4:103","type":""}],"src":"17816:621:103"},{"body":{"nodeType":"YulBlock","src":"18579:119:103","statements":[{"nodeType":"YulAssignment","src":"18589:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18601:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18612:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18597:3:103"},"nodeType":"YulFunctionCall","src":"18597:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18589:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18631:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18642:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18624:6:103"},"nodeType":"YulFunctionCall","src":"18624:25:103"},"nodeType":"YulExpressionStatement","src":"18624:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18669:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18680:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18665:3:103"},"nodeType":"YulFunctionCall","src":"18665:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"18685:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18658:6:103"},"nodeType":"YulFunctionCall","src":"18658:34:103"},"nodeType":"YulExpressionStatement","src":"18658:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_rational_0_by_1__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18540:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18551:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18559:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18570:4:103","type":""}],"src":"18442:256:103"},{"body":{"nodeType":"YulBlock","src":"18832:119:103","statements":[{"nodeType":"YulAssignment","src":"18842:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18865:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18850:3:103"},"nodeType":"YulFunctionCall","src":"18850:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18842:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18884:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18895:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18877:6:103"},"nodeType":"YulFunctionCall","src":"18877:25:103"},"nodeType":"YulExpressionStatement","src":"18877:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18922:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18933:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18918:3:103"},"nodeType":"YulFunctionCall","src":"18918:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"18938:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18911:6:103"},"nodeType":"YulFunctionCall","src":"18911:34:103"},"nodeType":"YulExpressionStatement","src":"18911:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18793:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18804:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18812:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18823:4:103","type":""}],"src":"18703:248:103"},{"body":{"nodeType":"YulBlock","src":"19131:184:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19148:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19159:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19141:6:103"},"nodeType":"YulFunctionCall","src":"19141:25:103"},"nodeType":"YulExpressionStatement","src":"19141:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19186:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19197:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19182:3:103"},"nodeType":"YulFunctionCall","src":"19182:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19202:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19175:6:103"},"nodeType":"YulFunctionCall","src":"19175:34:103"},"nodeType":"YulExpressionStatement","src":"19175:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19229:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19240:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19225:3:103"},"nodeType":"YulFunctionCall","src":"19225:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19245:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19218:6:103"},"nodeType":"YulFunctionCall","src":"19218:30:103"},"nodeType":"YulExpressionStatement","src":"19218:30:103"},{"nodeType":"YulAssignment","src":"19257:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"19282:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19294:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19305:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19290:3:103"},"nodeType":"YulFunctionCall","src":"19290:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"19265:16:103"},"nodeType":"YulFunctionCall","src":"19265:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19257:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19084:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19095:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19103:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19111:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19122:4:103","type":""}],"src":"18956:359:103"},{"body":{"nodeType":"YulBlock","src":"19477:162:103","statements":[{"nodeType":"YulAssignment","src":"19487:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19499:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19510:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19495:3:103"},"nodeType":"YulFunctionCall","src":"19495:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19487:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19529:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19540:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19522:6:103"},"nodeType":"YulFunctionCall","src":"19522:25:103"},"nodeType":"YulExpressionStatement","src":"19522:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19578:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19563:3:103"},"nodeType":"YulFunctionCall","src":"19563:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19583:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19556:6:103"},"nodeType":"YulFunctionCall","src":"19556:34:103"},"nodeType":"YulExpressionStatement","src":"19556:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19610:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19621:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19606:3:103"},"nodeType":"YulFunctionCall","src":"19606:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"19626:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19599:6:103"},"nodeType":"YulFunctionCall","src":"19599:34:103"},"nodeType":"YulExpressionStatement","src":"19599:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19430:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19441:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19449:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19457:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19468:4:103","type":""}],"src":"19320:319:103"},{"body":{"nodeType":"YulBlock","src":"19847:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19864:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19875:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19857:6:103"},"nodeType":"YulFunctionCall","src":"19857:25:103"},"nodeType":"YulExpressionStatement","src":"19857:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19902:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19913:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19898:3:103"},"nodeType":"YulFunctionCall","src":"19898:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19918:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19891:6:103"},"nodeType":"YulFunctionCall","src":"19891:34:103"},"nodeType":"YulExpressionStatement","src":"19891:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19945:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19956:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19941:3:103"},"nodeType":"YulFunctionCall","src":"19941:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"19961:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19934:6:103"},"nodeType":"YulFunctionCall","src":"19934:34:103"},"nodeType":"YulExpressionStatement","src":"19934:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19988:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19999:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19984:3:103"},"nodeType":"YulFunctionCall","src":"19984:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20004:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19977:6:103"},"nodeType":"YulFunctionCall","src":"19977:31:103"},"nodeType":"YulExpressionStatement","src":"19977:31:103"},{"nodeType":"YulAssignment","src":"20017:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"20042:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20054:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20065:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20050:3:103"},"nodeType":"YulFunctionCall","src":"20050:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"20025:16:103"},"nodeType":"YulFunctionCall","src":"20025:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20017:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19792:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"19803:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19811:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19819:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19827:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19838:4:103","type":""}],"src":"19644:432:103"},{"body":{"nodeType":"YulBlock","src":"20294:250:103","statements":[{"nodeType":"YulAssignment","src":"20304:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20316:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20327:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20312:3:103"},"nodeType":"YulFunctionCall","src":"20312:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20304:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20347:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"20358:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20340:6:103"},"nodeType":"YulFunctionCall","src":"20340:25:103"},"nodeType":"YulExpressionStatement","src":"20340:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20385:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20396:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20381:3:103"},"nodeType":"YulFunctionCall","src":"20381:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"20401:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20374:6:103"},"nodeType":"YulFunctionCall","src":"20374:34:103"},"nodeType":"YulExpressionStatement","src":"20374:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20428:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20439:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20424:3:103"},"nodeType":"YulFunctionCall","src":"20424:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"20444:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20417:6:103"},"nodeType":"YulFunctionCall","src":"20417:34:103"},"nodeType":"YulExpressionStatement","src":"20417:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20471:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20482:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20467:3:103"},"nodeType":"YulFunctionCall","src":"20467:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"20487:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20460:6:103"},"nodeType":"YulFunctionCall","src":"20460:34:103"},"nodeType":"YulExpressionStatement","src":"20460:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20514:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20525:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20510:3:103"},"nodeType":"YulFunctionCall","src":"20510:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"20531:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20503:6:103"},"nodeType":"YulFunctionCall","src":"20503:35:103"},"nodeType":"YulExpressionStatement","src":"20503:35:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20231:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"20242:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20250:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20258:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20266:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20274:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20285:4:103","type":""}],"src":"20081:463:103"},{"body":{"nodeType":"YulBlock","src":"20668:102:103","statements":[{"nodeType":"YulAssignment","src":"20678:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20690:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20701:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20686:3:103"},"nodeType":"YulFunctionCall","src":"20686:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20678:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20720:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20735:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20751:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"20756:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20747:3:103"},"nodeType":"YulFunctionCall","src":"20747:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"20760:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20743:3:103"},"nodeType":"YulFunctionCall","src":"20743:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20731:3:103"},"nodeType":"YulFunctionCall","src":"20731:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20713:6:103"},"nodeType":"YulFunctionCall","src":"20713:51:103"},"nodeType":"YulExpressionStatement","src":"20713:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20637:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20648:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20659:4:103","type":""}],"src":"20549:221:103"},{"body":{"nodeType":"YulBlock","src":"20893:132:103","statements":[{"nodeType":"YulAssignment","src":"20903:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20926:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20911:3:103"},"nodeType":"YulFunctionCall","src":"20911:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20903:4:103"}]},{"body":{"nodeType":"YulBlock","src":"20963:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"20965:16:103"},"nodeType":"YulFunctionCall","src":"20965:18:103"},"nodeType":"YulExpressionStatement","src":"20965:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20951:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20959:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20948:2:103"},"nodeType":"YulFunctionCall","src":"20948:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20941:6:103"},"nodeType":"YulFunctionCall","src":"20941:21:103"},"nodeType":"YulIf","src":"20938:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21001:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"21012:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20994:6:103"},"nodeType":"YulFunctionCall","src":"20994:25:103"},"nodeType":"YulExpressionStatement","src":"20994:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20862:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20873:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20884:4:103","type":""}],"src":"20775:250:103"},{"body":{"nodeType":"YulBlock","src":"21147:132:103","statements":[{"nodeType":"YulAssignment","src":"21157:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21180:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21165:3:103"},"nodeType":"YulFunctionCall","src":"21165:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21157:4:103"}]},{"body":{"nodeType":"YulBlock","src":"21217:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"21219:16:103"},"nodeType":"YulFunctionCall","src":"21219:18:103"},"nodeType":"YulExpressionStatement","src":"21219:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21205:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21213:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21202:2:103"},"nodeType":"YulFunctionCall","src":"21202:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21195:6:103"},"nodeType":"YulFunctionCall","src":"21195:21:103"},"nodeType":"YulIf","src":"21192:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21255:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"21266:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21248:6:103"},"nodeType":"YulFunctionCall","src":"21248:25:103"},"nodeType":"YulExpressionStatement","src":"21248:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21116:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21127:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21138:4:103","type":""}],"src":"21030:249:103"},{"body":{"nodeType":"YulBlock","src":"21405:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21422:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21433:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21415:6:103"},"nodeType":"YulFunctionCall","src":"21415:21:103"},"nodeType":"YulExpressionStatement","src":"21415:21:103"},{"nodeType":"YulAssignment","src":"21445:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21470:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21493:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21478:3:103"},"nodeType":"YulFunctionCall","src":"21478:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"21453:16:103"},"nodeType":"YulFunctionCall","src":"21453:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21445:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21374:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21385:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21396:4:103","type":""}],"src":"21284:219:103"},{"body":{"nodeType":"YulBlock","src":"21682:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21699:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21710:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21692:6:103"},"nodeType":"YulFunctionCall","src":"21692:21:103"},"nodeType":"YulExpressionStatement","src":"21692:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21733:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21744:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21729:3:103"},"nodeType":"YulFunctionCall","src":"21729:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21749:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21722:6:103"},"nodeType":"YulFunctionCall","src":"21722:30:103"},"nodeType":"YulExpressionStatement","src":"21722:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21772:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21783:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21768:3:103"},"nodeType":"YulFunctionCall","src":"21768:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21788:34:103","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21761:6:103"},"nodeType":"YulFunctionCall","src":"21761:62:103"},"nodeType":"YulExpressionStatement","src":"21761:62:103"},{"nodeType":"YulAssignment","src":"21832:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21855:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21840:3:103"},"nodeType":"YulFunctionCall","src":"21840:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21832:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21659:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21673:4:103","type":""}],"src":"21508:356:103"},{"body":{"nodeType":"YulBlock","src":"22043:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22060:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22071:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22053:6:103"},"nodeType":"YulFunctionCall","src":"22053:21:103"},"nodeType":"YulExpressionStatement","src":"22053:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22094:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22105:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22090:3:103"},"nodeType":"YulFunctionCall","src":"22090:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22110:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22083:6:103"},"nodeType":"YulFunctionCall","src":"22083:30:103"},"nodeType":"YulExpressionStatement","src":"22083:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22144:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22129:3:103"},"nodeType":"YulFunctionCall","src":"22129:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22149:34:103","type":"","value":"ERROR:AYI-046:RISK_APH_ZERO_INVA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22122:6:103"},"nodeType":"YulFunctionCall","src":"22122:62:103"},"nodeType":"YulExpressionStatement","src":"22122:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22204:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22215:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22200:3:103"},"nodeType":"YulFunctionCall","src":"22200:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22220:5:103","type":"","value":"LID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22193:6:103"},"nodeType":"YulFunctionCall","src":"22193:33:103"},"nodeType":"YulExpressionStatement","src":"22193:33:103"},{"nodeType":"YulAssignment","src":"22235:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22247:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22258:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22243:3:103"},"nodeType":"YulFunctionCall","src":"22243:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22235:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0a4d1e7ee13d3e1c186b0c5039ac828c21427604ef12eb5f13ec178f7b5ae702__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22020:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22034:4:103","type":""}],"src":"21869:399:103"},{"body":{"nodeType":"YulBlock","src":"22447:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22464:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22475:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22457:6:103"},"nodeType":"YulFunctionCall","src":"22457:21:103"},"nodeType":"YulExpressionStatement","src":"22457:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22498:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22509:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22494:3:103"},"nodeType":"YulFunctionCall","src":"22494:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22514:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22487:6:103"},"nodeType":"YulFunctionCall","src":"22487:30:103"},"nodeType":"YulExpressionStatement","src":"22487:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22548:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22533:3:103"},"nodeType":"YulFunctionCall","src":"22533:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22553:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22526:6:103"},"nodeType":"YulFunctionCall","src":"22526:57:103"},"nodeType":"YulExpressionStatement","src":"22526:57:103"},{"nodeType":"YulAssignment","src":"22592:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22615:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22600:3:103"},"nodeType":"YulFunctionCall","src":"22600:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22592:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22424:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22438:4:103","type":""}],"src":"22273:351:103"},{"body":{"nodeType":"YulBlock","src":"22803:176:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22831:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22813:6:103"},"nodeType":"YulFunctionCall","src":"22813:21:103"},"nodeType":"YulExpressionStatement","src":"22813:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22865:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22850:3:103"},"nodeType":"YulFunctionCall","src":"22850:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22870:2:103","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22843:6:103"},"nodeType":"YulFunctionCall","src":"22843:30:103"},"nodeType":"YulExpressionStatement","src":"22843:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22893:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22904:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22889:3:103"},"nodeType":"YulFunctionCall","src":"22889:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22909:28:103","type":"","value":"ERROR:AYI-024:AAAY_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22882:6:103"},"nodeType":"YulFunctionCall","src":"22882:56:103"},"nodeType":"YulExpressionStatement","src":"22882:56:103"},{"nodeType":"YulAssignment","src":"22947:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22959:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22970:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22955:3:103"},"nodeType":"YulFunctionCall","src":"22955:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22947:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1933cf92e854516d33fae263dace7298dd28dda3cb0e72fbef894e917a93a275__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22780:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22794:4:103","type":""}],"src":"22629:350:103"},{"body":{"nodeType":"YulBlock","src":"23158:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23186:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23168:6:103"},"nodeType":"YulFunctionCall","src":"23168:21:103"},"nodeType":"YulExpressionStatement","src":"23168:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23209:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23220:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23205:3:103"},"nodeType":"YulFunctionCall","src":"23205:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23225:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23198:6:103"},"nodeType":"YulFunctionCall","src":"23198:30:103"},"nodeType":"YulExpressionStatement","src":"23198:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23259:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23244:3:103"},"nodeType":"YulFunctionCall","src":"23244:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23264:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23237:6:103"},"nodeType":"YulFunctionCall","src":"23237:62:103"},"nodeType":"YulExpressionStatement","src":"23237:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23319:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23330:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23315:3:103"},"nodeType":"YulFunctionCall","src":"23315:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23335:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23308:6:103"},"nodeType":"YulFunctionCall","src":"23308:36:103"},"nodeType":"YulExpressionStatement","src":"23308:36:103"},{"nodeType":"YulAssignment","src":"23353:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23376:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23361:3:103"},"nodeType":"YulFunctionCall","src":"23361:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23353:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23135:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23149:4:103","type":""}],"src":"22984:402:103"},{"body":{"nodeType":"YulBlock","src":"23565:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23582:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23593:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23575:6:103"},"nodeType":"YulFunctionCall","src":"23575:21:103"},"nodeType":"YulExpressionStatement","src":"23575:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23616:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23627:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23612:3:103"},"nodeType":"YulFunctionCall","src":"23612:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23632:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23605:6:103"},"nodeType":"YulFunctionCall","src":"23605:30:103"},"nodeType":"YulExpressionStatement","src":"23605:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23655:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23666:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23651:3:103"},"nodeType":"YulFunctionCall","src":"23651:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23671:34:103","type":"","value":"ERROR:AYI-042:RISK_EXIT_TOO_LARG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23644:6:103"},"nodeType":"YulFunctionCall","src":"23644:62:103"},"nodeType":"YulExpressionStatement","src":"23644:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23726:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23737:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23722:3:103"},"nodeType":"YulFunctionCall","src":"23722:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23742:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23715:6:103"},"nodeType":"YulFunctionCall","src":"23715:31:103"},"nodeType":"YulExpressionStatement","src":"23715:31:103"},{"nodeType":"YulAssignment","src":"23755:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23778:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23763:3:103"},"nodeType":"YulFunctionCall","src":"23763:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23755:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2498ce872169b7763abec28f7059d4a97ac70a016e3a78c66a9f5c7740b38ef8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23542:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23556:4:103","type":""}],"src":"23391:397:103"},{"body":{"nodeType":"YulBlock","src":"23967:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23984:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23995:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23977:6:103"},"nodeType":"YulFunctionCall","src":"23977:21:103"},"nodeType":"YulExpressionStatement","src":"23977:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24018:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24029:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24014:3:103"},"nodeType":"YulFunctionCall","src":"24014:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24034:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24007:6:103"},"nodeType":"YulFunctionCall","src":"24007:30:103"},"nodeType":"YulExpressionStatement","src":"24007:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24068:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24053:3:103"},"nodeType":"YulFunctionCall","src":"24053:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24073:30:103","type":"","value":"ERROR:AYI-010:RISK_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24046:6:103"},"nodeType":"YulFunctionCall","src":"24046:58:103"},"nodeType":"YulExpressionStatement","src":"24046:58:103"},{"nodeType":"YulAssignment","src":"24113:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24125:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24136:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24121:3:103"},"nodeType":"YulFunctionCall","src":"24121:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24113:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_28015aff36bbf8cb89a7d6ca21c217883599d0a9d34ab709c871c948f0fded56__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23944:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23958:4:103","type":""}],"src":"23793:352:103"},{"body":{"nodeType":"YulBlock","src":"24324:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24341:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24352:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24334:6:103"},"nodeType":"YulFunctionCall","src":"24334:21:103"},"nodeType":"YulExpressionStatement","src":"24334:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24375:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24386:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24371:3:103"},"nodeType":"YulFunctionCall","src":"24371:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24391:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24364:6:103"},"nodeType":"YulFunctionCall","src":"24364:30:103"},"nodeType":"YulExpressionStatement","src":"24364:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24414:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24425:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24410:3:103"},"nodeType":"YulFunctionCall","src":"24410:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24430:29:103","type":"","value":"ERROR:PRD-003:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24403:6:103"},"nodeType":"YulFunctionCall","src":"24403:57:103"},"nodeType":"YulExpressionStatement","src":"24403:57:103"},{"nodeType":"YulAssignment","src":"24469:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24481:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24492:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24477:3:103"},"nodeType":"YulFunctionCall","src":"24477:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24469:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24301:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24315:4:103","type":""}],"src":"24150:351:103"},{"body":{"nodeType":"YulBlock","src":"24680:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24697:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24708:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24690:6:103"},"nodeType":"YulFunctionCall","src":"24690:21:103"},"nodeType":"YulExpressionStatement","src":"24690:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24731:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24742:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24727:3:103"},"nodeType":"YulFunctionCall","src":"24727:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24747:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24720:6:103"},"nodeType":"YulFunctionCall","src":"24720:30:103"},"nodeType":"YulExpressionStatement","src":"24720:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24770:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24781:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24766:3:103"},"nodeType":"YulFunctionCall","src":"24766:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24786:34:103","type":"","value":"ERROR:AYI-041:RISK_TRIGGER_NOT_L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24759:6:103"},"nodeType":"YulFunctionCall","src":"24759:62:103"},"nodeType":"YulExpressionStatement","src":"24759:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24841:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24852:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24837:3:103"},"nodeType":"YulFunctionCall","src":"24837:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24857:17:103","type":"","value":"ARGER_THAN_EXIT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24830:6:103"},"nodeType":"YulFunctionCall","src":"24830:45:103"},"nodeType":"YulExpressionStatement","src":"24830:45:103"},{"nodeType":"YulAssignment","src":"24884:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24896:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24907:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24892:3:103"},"nodeType":"YulFunctionCall","src":"24892:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24884:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_412e0dd059ff5ee1474516ff048f71840a3a2965c87e0ba7efd8312e11193f6b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24657:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24671:4:103","type":""}],"src":"24506:411:103"},{"body":{"nodeType":"YulBlock","src":"25096:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25113:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25124:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25106:6:103"},"nodeType":"YulFunctionCall","src":"25106:21:103"},"nodeType":"YulExpressionStatement","src":"25106:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25147:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25158:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25143:3:103"},"nodeType":"YulFunctionCall","src":"25143:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25163:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25136:6:103"},"nodeType":"YulFunctionCall","src":"25136:30:103"},"nodeType":"YulExpressionStatement","src":"25136:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25186:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25197:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25182:3:103"},"nodeType":"YulFunctionCall","src":"25182:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25202:34:103","type":"","value":"ERROR:AYI-047:RISK_APH_TOO_LARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25175:6:103"},"nodeType":"YulFunctionCall","src":"25175:62:103"},"nodeType":"YulExpressionStatement","src":"25175:62:103"},{"nodeType":"YulAssignment","src":"25246:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25258:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25269:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25254:3:103"},"nodeType":"YulFunctionCall","src":"25254:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25246:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_41a8e910e497c53c0ffe6a8d374e9ceae17e46879b937ab53f2189842ece12cd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25073:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25087:4:103","type":""}],"src":"24922:356:103"},{"body":{"nodeType":"YulBlock","src":"25457:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25474:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25485:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25467:6:103"},"nodeType":"YulFunctionCall","src":"25467:21:103"},"nodeType":"YulExpressionStatement","src":"25467:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25508:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25519:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25504:3:103"},"nodeType":"YulFunctionCall","src":"25504:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25524:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25497:6:103"},"nodeType":"YulFunctionCall","src":"25497:30:103"},"nodeType":"YulExpressionStatement","src":"25497:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25547:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25558:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25543:3:103"},"nodeType":"YulFunctionCall","src":"25543:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25563:34:103","type":"","value":"ERROR:AYI-030:ORACLE_RESPONSE_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25536:6:103"},"nodeType":"YulFunctionCall","src":"25536:62:103"},"nodeType":"YulExpressionStatement","src":"25536:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25618:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25629:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25614:3:103"},"nodeType":"YulFunctionCall","src":"25614:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25634:7:103","type":"","value":"SSING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25607:6:103"},"nodeType":"YulFunctionCall","src":"25607:35:103"},"nodeType":"YulExpressionStatement","src":"25607:35:103"},{"nodeType":"YulAssignment","src":"25651:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25663:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25674:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25659:3:103"},"nodeType":"YulFunctionCall","src":"25659:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25651:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_58676a06b2a15eeef19d847ad905241c221bcfc99304360d668ec70c06b294c9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25434:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25448:4:103","type":""}],"src":"25283:401:103"},{"body":{"nodeType":"YulBlock","src":"25863:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25880:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25891:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25873:6:103"},"nodeType":"YulFunctionCall","src":"25873:21:103"},"nodeType":"YulExpressionStatement","src":"25873:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25925:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25910:3:103"},"nodeType":"YulFunctionCall","src":"25910:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25930:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25903:6:103"},"nodeType":"YulFunctionCall","src":"25903:30:103"},"nodeType":"YulExpressionStatement","src":"25903:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25953:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25964:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25949:3:103"},"nodeType":"YulFunctionCall","src":"25949:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25969:30:103","type":"","value":"ERROR:AYI-021:RISK_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25942:6:103"},"nodeType":"YulFunctionCall","src":"25942:58:103"},"nodeType":"YulExpressionStatement","src":"25942:58:103"},{"nodeType":"YulAssignment","src":"26009:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26021:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26032:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26017:3:103"},"nodeType":"YulFunctionCall","src":"26017:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26009:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6ee02cfa0248fa86db9a11f735c32c1ff1a44fc0b1601b5b7ff4563f745477c9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25840:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25854:4:103","type":""}],"src":"25689:352:103"},{"body":{"nodeType":"YulBlock","src":"26220:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26237:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26248:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26230:6:103"},"nodeType":"YulFunctionCall","src":"26230:21:103"},"nodeType":"YulExpressionStatement","src":"26230:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26282:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26267:3:103"},"nodeType":"YulFunctionCall","src":"26267:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26287:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26260:6:103"},"nodeType":"YulFunctionCall","src":"26260:30:103"},"nodeType":"YulExpressionStatement","src":"26260:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26310:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26321:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26306:3:103"},"nodeType":"YulFunctionCall","src":"26306:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26326:34:103","type":"","value":"ERROR:AYI-032:ORACLE_RESPONSE_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26299:6:103"},"nodeType":"YulFunctionCall","src":"26299:62:103"},"nodeType":"YulExpressionStatement","src":"26299:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26392:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26377:3:103"},"nodeType":"YulFunctionCall","src":"26377:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26397:7:103","type":"","value":"SSING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26370:6:103"},"nodeType":"YulFunctionCall","src":"26370:35:103"},"nodeType":"YulExpressionStatement","src":"26370:35:103"},{"nodeType":"YulAssignment","src":"26414:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26437:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26422:3:103"},"nodeType":"YulFunctionCall","src":"26422:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26414:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f27b73d87657a4223eeda0e62929018b09601be0c30975a8a78bf41dfdbaaa2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26197:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26211:4:103","type":""}],"src":"26046:401:103"},{"body":{"nodeType":"YulBlock","src":"26626:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26654:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26636:6:103"},"nodeType":"YulFunctionCall","src":"26636:21:103"},"nodeType":"YulExpressionStatement","src":"26636:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26688:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26673:3:103"},"nodeType":"YulFunctionCall","src":"26673:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26693:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26666:6:103"},"nodeType":"YulFunctionCall","src":"26666:30:103"},"nodeType":"YulExpressionStatement","src":"26666:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26716:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26727:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26712:3:103"},"nodeType":"YulFunctionCall","src":"26712:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26732:34:103","type":"","value":"ERROR:AYI-011:ORACLE_ALREADY_RES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26705:6:103"},"nodeType":"YulFunctionCall","src":"26705:62:103"},"nodeType":"YulExpressionStatement","src":"26705:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26787:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26798:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26783:3:103"},"nodeType":"YulFunctionCall","src":"26783:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26803:8:103","type":"","value":"PONDED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26776:6:103"},"nodeType":"YulFunctionCall","src":"26776:36:103"},"nodeType":"YulExpressionStatement","src":"26776:36:103"},{"nodeType":"YulAssignment","src":"26821:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26844:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26829:3:103"},"nodeType":"YulFunctionCall","src":"26829:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26821:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6fc284dd3ef5c0a4e0102afbb048ee6a2068822573dadf296d595b1f0508f960__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26603:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26617:4:103","type":""}],"src":"26452:402:103"},{"body":{"nodeType":"YulBlock","src":"27033:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27050:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27061:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27043:6:103"},"nodeType":"YulFunctionCall","src":"27043:21:103"},"nodeType":"YulExpressionStatement","src":"27043:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27095:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27080:3:103"},"nodeType":"YulFunctionCall","src":"27080:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27100:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27073:6:103"},"nodeType":"YulFunctionCall","src":"27073:30:103"},"nodeType":"YulExpressionStatement","src":"27073:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27123:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27134:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27119:3:103"},"nodeType":"YulFunctionCall","src":"27119:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27139:34:103","type":"","value":"ERROR:AYI-045:RISK_TSI_EXIT_SUM_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27112:6:103"},"nodeType":"YulFunctionCall","src":"27112:62:103"},"nodeType":"YulExpressionStatement","src":"27112:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27194:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27205:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27190:3:103"},"nodeType":"YulFunctionCall","src":"27190:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27210:11:103","type":"","value":"TOO_LARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27183:6:103"},"nodeType":"YulFunctionCall","src":"27183:39:103"},"nodeType":"YulExpressionStatement","src":"27183:39:103"},{"nodeType":"YulAssignment","src":"27231:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27243:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27254:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27239:3:103"},"nodeType":"YulFunctionCall","src":"27239:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27231:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_722b7f7e542cc90fba74057b4a362428bdd9a3b53029c438d846a79f1ac5a7d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27010:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27024:4:103","type":""}],"src":"26859:405:103"},{"body":{"nodeType":"YulBlock","src":"27443:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27460:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27471:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27453:6:103"},"nodeType":"YulFunctionCall","src":"27453:21:103"},"nodeType":"YulExpressionStatement","src":"27453:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27494:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27505:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27490:3:103"},"nodeType":"YulFunctionCall","src":"27490:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27510:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27483:6:103"},"nodeType":"YulFunctionCall","src":"27483:30:103"},"nodeType":"YulExpressionStatement","src":"27483:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27533:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27544:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27529:3:103"},"nodeType":"YulFunctionCall","src":"27529:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27549:34:103","type":"","value":"ERROR:AYI-005:POLICY_HOLDER_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27522:6:103"},"nodeType":"YulFunctionCall","src":"27522:62:103"},"nodeType":"YulExpressionStatement","src":"27522:62:103"},{"nodeType":"YulAssignment","src":"27593:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27616:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27601:3:103"},"nodeType":"YulFunctionCall","src":"27601:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27593:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_74007f953b79ec853cb87103ec9504ec665b2c9164be7516bbc8c84925b56cec__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27420:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27434:4:103","type":""}],"src":"27269:356:103"},{"body":{"nodeType":"YulBlock","src":"27804:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27821:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27832:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27814:6:103"},"nodeType":"YulFunctionCall","src":"27814:21:103"},"nodeType":"YulExpressionStatement","src":"27814:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27855:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27866:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27851:3:103"},"nodeType":"YulFunctionCall","src":"27851:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27871:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27844:6:103"},"nodeType":"YulFunctionCall","src":"27844:30:103"},"nodeType":"YulExpressionStatement","src":"27844:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27894:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27905:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27890:3:103"},"nodeType":"YulFunctionCall","src":"27890:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27910:34:103","type":"","value":"ERROR:AYI-013:ORACLE_REQUEST_NOT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27883:6:103"},"nodeType":"YulFunctionCall","src":"27883:62:103"},"nodeType":"YulExpressionStatement","src":"27883:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27965:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27976:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27961:3:103"},"nodeType":"YulFunctionCall","src":"27961:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27981:8:103","type":"","value":"_FOUND"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27954:6:103"},"nodeType":"YulFunctionCall","src":"27954:36:103"},"nodeType":"YulExpressionStatement","src":"27954:36:103"},{"nodeType":"YulAssignment","src":"27999:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28011:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28022:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28007:3:103"},"nodeType":"YulFunctionCall","src":"28007:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27999:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e5824abd539e2def691cf0401224fac97337998f0fa26de7535423fdaff387e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27781:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27795:4:103","type":""}],"src":"27630:402:103"},{"body":{"nodeType":"YulBlock","src":"28211:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28228:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28239:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28221:6:103"},"nodeType":"YulFunctionCall","src":"28221:21:103"},"nodeType":"YulExpressionStatement","src":"28221:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28262:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28273:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28258:3:103"},"nodeType":"YulFunctionCall","src":"28258:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28278:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28251:6:103"},"nodeType":"YulFunctionCall","src":"28251:30:103"},"nodeType":"YulExpressionStatement","src":"28251:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28301:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28312:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28297:3:103"},"nodeType":"YulFunctionCall","src":"28297:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28317:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28290:6:103"},"nodeType":"YulFunctionCall","src":"28290:62:103"},"nodeType":"YulExpressionStatement","src":"28290:62:103"},{"nodeType":"YulAssignment","src":"28361:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28373:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28384:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28369:3:103"},"nodeType":"YulFunctionCall","src":"28369:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28361:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28188:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28202:4:103","type":""}],"src":"28037:356:103"},{"body":{"nodeType":"YulBlock","src":"28572:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28589:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28600:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28582:6:103"},"nodeType":"YulFunctionCall","src":"28582:21:103"},"nodeType":"YulExpressionStatement","src":"28582:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28623:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28634:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28619:3:103"},"nodeType":"YulFunctionCall","src":"28619:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28639:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28612:6:103"},"nodeType":"YulFunctionCall","src":"28612:30:103"},"nodeType":"YulExpressionStatement","src":"28612:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28662:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28673:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28658:3:103"},"nodeType":"YulFunctionCall","src":"28658:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28678:33:103","type":"","value":"ERROR:AYI-023:EXISTING_CALLBACK"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28651:6:103"},"nodeType":"YulFunctionCall","src":"28651:61:103"},"nodeType":"YulExpressionStatement","src":"28651:61:103"},{"nodeType":"YulAssignment","src":"28721:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28733:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28744:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28729:3:103"},"nodeType":"YulFunctionCall","src":"28729:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28721:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_aaec2461ff204fc73d428d95c0f4cb5267531886babbeecda241ecff60dc08cf__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28549:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28563:4:103","type":""}],"src":"28398:355:103"},{"body":{"nodeType":"YulBlock","src":"28932:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28949:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28960:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28942:6:103"},"nodeType":"YulFunctionCall","src":"28942:21:103"},"nodeType":"YulExpressionStatement","src":"28942:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28983:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28994:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28979:3:103"},"nodeType":"YulFunctionCall","src":"28979:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28999:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28972:6:103"},"nodeType":"YulFunctionCall","src":"28972:30:103"},"nodeType":"YulExpressionStatement","src":"28972:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29022:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29033:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29018:3:103"},"nodeType":"YulFunctionCall","src":"29018:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29038:33:103","type":"","value":"ERROR:AYI-014:EXISTING_CALLBACK"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29011:6:103"},"nodeType":"YulFunctionCall","src":"29011:61:103"},"nodeType":"YulExpressionStatement","src":"29011:61:103"},{"nodeType":"YulAssignment","src":"29081:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29093:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29104:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29089:3:103"},"nodeType":"YulFunctionCall","src":"29089:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29081:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_aaf8ccfcadbad9421342ffd1299722ec5af1e410a95732101efa8995983950fc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28909:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28923:4:103","type":""}],"src":"28758:355:103"},{"body":{"nodeType":"YulBlock","src":"29292:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29309:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29320:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29302:6:103"},"nodeType":"YulFunctionCall","src":"29302:21:103"},"nodeType":"YulExpressionStatement","src":"29302:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29343:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29354:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29339:3:103"},"nodeType":"YulFunctionCall","src":"29339:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29359:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29332:6:103"},"nodeType":"YulFunctionCall","src":"29332:30:103"},"nodeType":"YulExpressionStatement","src":"29332:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29382:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29393:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29378:3:103"},"nodeType":"YulFunctionCall","src":"29378:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29398:34:103","type":"","value":"ERROR:AYI-043:RISK_TSI_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29371:6:103"},"nodeType":"YulFunctionCall","src":"29371:62:103"},"nodeType":"YulExpressionStatement","src":"29371:62:103"},{"nodeType":"YulAssignment","src":"29442:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29465:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29450:3:103"},"nodeType":"YulFunctionCall","src":"29450:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29442:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac82fb86fd21de21f78be2f637e9fab58b40e12b4a4583436526b5f1f92f6037__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29269:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29283:4:103","type":""}],"src":"29118:356:103"},{"body":{"nodeType":"YulBlock","src":"29653:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29670:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29681:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29663:6:103"},"nodeType":"YulFunctionCall","src":"29663:21:103"},"nodeType":"YulExpressionStatement","src":"29663:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29704:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29715:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29700:3:103"},"nodeType":"YulFunctionCall","src":"29700:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29720:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29693:6:103"},"nodeType":"YulFunctionCall","src":"29693:30:103"},"nodeType":"YulExpressionStatement","src":"29693:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29743:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29754:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29739:3:103"},"nodeType":"YulFunctionCall","src":"29739:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29759:34:103","type":"","value":"ERROR:AYI-044:RISK_TSI_TOO_LARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29732:6:103"},"nodeType":"YulFunctionCall","src":"29732:62:103"},"nodeType":"YulExpressionStatement","src":"29732:62:103"},{"nodeType":"YulAssignment","src":"29803:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29815:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29826:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29811:3:103"},"nodeType":"YulFunctionCall","src":"29811:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29803:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c593a3453eafb148b39dbe11ea4cd77edd7d3bf9c49913b3d86cf2b2ad158ac6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29630:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29644:4:103","type":""}],"src":"29479:356:103"},{"body":{"nodeType":"YulBlock","src":"30014:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30031:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30042:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30024:6:103"},"nodeType":"YulFunctionCall","src":"30024:21:103"},"nodeType":"YulExpressionStatement","src":"30024:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30065:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30076:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30061:3:103"},"nodeType":"YulFunctionCall","src":"30061:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30081:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30054:6:103"},"nodeType":"YulFunctionCall","src":"30054:30:103"},"nodeType":"YulExpressionStatement","src":"30054:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30104:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30115:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30100:3:103"},"nodeType":"YulFunctionCall","src":"30100:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30120:31:103","type":"","value":"ERROR:AYI-031:RISK_ID_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30093:6:103"},"nodeType":"YulFunctionCall","src":"30093:59:103"},"nodeType":"YulExpressionStatement","src":"30093:59:103"},{"nodeType":"YulAssignment","src":"30161:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30173:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30184:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30169:3:103"},"nodeType":"YulFunctionCall","src":"30169:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30161:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c8bfdecb7e2ed493ac22e973378473f67d79eabfa3ec87a5ca0db9597fe32dc2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29991:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30005:4:103","type":""}],"src":"29840:353:103"},{"body":{"nodeType":"YulBlock","src":"30372:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30389:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30400:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30382:6:103"},"nodeType":"YulFunctionCall","src":"30382:21:103"},"nodeType":"YulExpressionStatement","src":"30382:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30423:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30434:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30419:3:103"},"nodeType":"YulFunctionCall","src":"30419:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30439:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30412:6:103"},"nodeType":"YulFunctionCall","src":"30412:30:103"},"nodeType":"YulExpressionStatement","src":"30412:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30473:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30458:3:103"},"nodeType":"YulFunctionCall","src":"30458:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30478:32:103","type":"","value":"ERROR:AYI-020:RISK_ID_MISMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30451:6:103"},"nodeType":"YulFunctionCall","src":"30451:60:103"},"nodeType":"YulExpressionStatement","src":"30451:60:103"},{"nodeType":"YulAssignment","src":"30520:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30532:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30543:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30528:3:103"},"nodeType":"YulFunctionCall","src":"30528:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30520:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_cbaf1d726096478fb0eb96544569fd8fa4d575484c98caef0bd74861bf86ac57__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30349:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30363:4:103","type":""}],"src":"30198:354:103"},{"body":{"nodeType":"YulBlock","src":"30731:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30759:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30741:6:103"},"nodeType":"YulFunctionCall","src":"30741:21:103"},"nodeType":"YulExpressionStatement","src":"30741:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30782:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30793:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30778:3:103"},"nodeType":"YulFunctionCall","src":"30778:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30798:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30771:6:103"},"nodeType":"YulFunctionCall","src":"30771:30:103"},"nodeType":"YulExpressionStatement","src":"30771:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30821:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30832:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30817:3:103"},"nodeType":"YulFunctionCall","src":"30817:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30837:34:103","type":"","value":"ERROR:AYI-040:RISK_TRIGGER_TOO_L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30810:6:103"},"nodeType":"YulFunctionCall","src":"30810:62:103"},"nodeType":"YulExpressionStatement","src":"30810:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30903:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30888:3:103"},"nodeType":"YulFunctionCall","src":"30888:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30908:6:103","type":"","value":"ARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30881:6:103"},"nodeType":"YulFunctionCall","src":"30881:34:103"},"nodeType":"YulExpressionStatement","src":"30881:34:103"},{"nodeType":"YulAssignment","src":"30924:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30936:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30947:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30932:3:103"},"nodeType":"YulFunctionCall","src":"30932:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30924:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d25b01973080c85f3d4c19010fc1d88672bc6d17cea35996204c37425ae4f136__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30708:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30722:4:103","type":""}],"src":"30557:400:103"},{"body":{"nodeType":"YulBlock","src":"31136:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31164:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31146:6:103"},"nodeType":"YulFunctionCall","src":"31146:21:103"},"nodeType":"YulExpressionStatement","src":"31146:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31187:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31198:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31183:3:103"},"nodeType":"YulFunctionCall","src":"31183:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"31203:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31176:6:103"},"nodeType":"YulFunctionCall","src":"31176:30:103"},"nodeType":"YulExpressionStatement","src":"31176:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31237:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31222:3:103"},"nodeType":"YulFunctionCall","src":"31222:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31242:30:103","type":"","value":"ERROR:AYI-012:RISK_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31215:6:103"},"nodeType":"YulFunctionCall","src":"31215:58:103"},"nodeType":"YulExpressionStatement","src":"31215:58:103"},{"nodeType":"YulAssignment","src":"31282:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31294:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31305:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31290:3:103"},"nodeType":"YulFunctionCall","src":"31290:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31282:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dcbc40a3d8c26349e10dd7f08a6b7b007d7052eecfaccb2cc208ecaf8fccefd5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31113:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31127:4:103","type":""}],"src":"30962:352:103"},{"body":{"nodeType":"YulBlock","src":"31493:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31510:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31521:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31503:6:103"},"nodeType":"YulFunctionCall","src":"31503:21:103"},"nodeType":"YulExpressionStatement","src":"31503:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31544:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31555:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31540:3:103"},"nodeType":"YulFunctionCall","src":"31540:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"31560:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31533:6:103"},"nodeType":"YulFunctionCall","src":"31533:30:103"},"nodeType":"YulExpressionStatement","src":"31533:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31583:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31594:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31579:3:103"},"nodeType":"YulFunctionCall","src":"31579:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31599:30:103","type":"","value":"ERROR:AYI-004:RISK_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31572:6:103"},"nodeType":"YulFunctionCall","src":"31572:58:103"},"nodeType":"YulExpressionStatement","src":"31572:58:103"},{"nodeType":"YulAssignment","src":"31639:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31651:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31662:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31647:3:103"},"nodeType":"YulFunctionCall","src":"31647:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31639:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dd75e4d2b94b2d8ff6b0403850d1167c5b6fa118aa13973f47a4b7f7d7ee5f5f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31470:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31484:4:103","type":""}],"src":"31319:352:103"},{"body":{"nodeType":"YulBlock","src":"31850:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31867:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31878:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31860:6:103"},"nodeType":"YulFunctionCall","src":"31860:21:103"},"nodeType":"YulExpressionStatement","src":"31860:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31901:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31912:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31897:3:103"},"nodeType":"YulFunctionCall","src":"31897:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"31917:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31890:6:103"},"nodeType":"YulFunctionCall","src":"31890:30:103"},"nodeType":"YulExpressionStatement","src":"31890:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31940:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31951:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31936:3:103"},"nodeType":"YulFunctionCall","src":"31936:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31956:34:103","type":"","value":"ERROR:AYI-001:RISK_ALREADY_EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31929:6:103"},"nodeType":"YulFunctionCall","src":"31929:62:103"},"nodeType":"YulExpressionStatement","src":"31929:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32011:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32022:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32007:3:103"},"nodeType":"YulFunctionCall","src":"32007:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32027:3:103","type":"","value":"S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32000:6:103"},"nodeType":"YulFunctionCall","src":"32000:31:103"},"nodeType":"YulExpressionStatement","src":"32000:31:103"},{"nodeType":"YulAssignment","src":"32040:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32052:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32063:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32048:3:103"},"nodeType":"YulFunctionCall","src":"32048:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32040:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e1a84a551284060b76b600a286108f6c04d1bc2ac8241df44449fd27fa94a00a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31827:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31841:4:103","type":""}],"src":"31676:397:103"},{"body":{"nodeType":"YulBlock","src":"32252:176:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32269:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32280:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32262:6:103"},"nodeType":"YulFunctionCall","src":"32262:21:103"},"nodeType":"YulExpressionStatement","src":"32262:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32303:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32314:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32299:3:103"},"nodeType":"YulFunctionCall","src":"32299:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"32319:2:103","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32292:6:103"},"nodeType":"YulFunctionCall","src":"32292:30:103"},"nodeType":"YulExpressionStatement","src":"32292:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32353:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32338:3:103"},"nodeType":"YulFunctionCall","src":"32338:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32358:28:103","type":"","value":"ERROR:AYI-002:RISK_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32331:6:103"},"nodeType":"YulFunctionCall","src":"32331:56:103"},"nodeType":"YulExpressionStatement","src":"32331:56:103"},{"nodeType":"YulAssignment","src":"32396:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32408:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32419:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32404:3:103"},"nodeType":"YulFunctionCall","src":"32404:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32396:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e50d6e107b97b06a6b4ebbb835c4ac409d87bd844c914bf49d6502833d8ba34e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32229:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32243:4:103","type":""}],"src":"32078:350:103"},{"body":{"nodeType":"YulBlock","src":"32607:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32624:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32635:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32617:6:103"},"nodeType":"YulFunctionCall","src":"32617:21:103"},"nodeType":"YulExpressionStatement","src":"32617:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32658:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32669:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32654:3:103"},"nodeType":"YulFunctionCall","src":"32654:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"32674:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32647:6:103"},"nodeType":"YulFunctionCall","src":"32647:30:103"},"nodeType":"YulExpressionStatement","src":"32647:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32697:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32708:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32693:3:103"},"nodeType":"YulFunctionCall","src":"32693:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32713:34:103","type":"","value":"ERROR:AYI-003:RISK_WITH_POLICIES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32686:6:103"},"nodeType":"YulFunctionCall","src":"32686:62:103"},"nodeType":"YulExpressionStatement","src":"32686:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32779:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32764:3:103"},"nodeType":"YulFunctionCall","src":"32764:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32784:17:103","type":"","value":"_NOT_ADJUSTABLE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32757:6:103"},"nodeType":"YulFunctionCall","src":"32757:45:103"},"nodeType":"YulExpressionStatement","src":"32757:45:103"},{"nodeType":"YulAssignment","src":"32811:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32823:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32834:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32819:3:103"},"nodeType":"YulFunctionCall","src":"32819:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32811:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f422cac3b534a9ed752cfd161d8b473b386119366ac0d8f2b3a828e1526d99f3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32584:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32598:4:103","type":""}],"src":"32433:411:103"},{"body":{"nodeType":"YulBlock","src":"33023:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33040:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33051:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33033:6:103"},"nodeType":"YulFunctionCall","src":"33033:21:103"},"nodeType":"YulExpressionStatement","src":"33033:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33074:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33085:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33070:3:103"},"nodeType":"YulFunctionCall","src":"33070:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"33090:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33063:6:103"},"nodeType":"YulFunctionCall","src":"33063:30:103"},"nodeType":"YulExpressionStatement","src":"33063:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33113:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33124:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33109:3:103"},"nodeType":"YulFunctionCall","src":"33109:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33129:34:103","type":"","value":"ERROR:AYI-022:REQUEST_ID_MISMATC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33102:6:103"},"nodeType":"YulFunctionCall","src":"33102:62:103"},"nodeType":"YulExpressionStatement","src":"33102:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33184:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33195:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33180:3:103"},"nodeType":"YulFunctionCall","src":"33180:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33200:3:103","type":"","value":"H"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33173:6:103"},"nodeType":"YulFunctionCall","src":"33173:31:103"},"nodeType":"YulExpressionStatement","src":"33173:31:103"},{"nodeType":"YulAssignment","src":"33213:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33225:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33236:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33221:3:103"},"nodeType":"YulFunctionCall","src":"33221:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33213:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f6dbb8dbd57bcf301752f2cf8b3847b57c719884a8d0c8570c19052a9efb7ef6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33000:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33014:4:103","type":""}],"src":"32849:397:103"},{"body":{"nodeType":"YulBlock","src":"33425:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33442:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33453:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33435:6:103"},"nodeType":"YulFunctionCall","src":"33435:21:103"},"nodeType":"YulExpressionStatement","src":"33435:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33476:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33487:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33472:3:103"},"nodeType":"YulFunctionCall","src":"33472:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"33492:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33465:6:103"},"nodeType":"YulFunctionCall","src":"33465:30:103"},"nodeType":"YulExpressionStatement","src":"33465:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33515:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33526:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33511:3:103"},"nodeType":"YulFunctionCall","src":"33511:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33531:34:103","type":"","value":"ERROR:AYI-033:POLICY_FOR_RISK_UN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33504:6:103"},"nodeType":"YulFunctionCall","src":"33504:62:103"},"nodeType":"YulExpressionStatement","src":"33504:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33586:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33597:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33582:3:103"},"nodeType":"YulFunctionCall","src":"33582:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33602:7:103","type":"","value":"KNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33575:6:103"},"nodeType":"YulFunctionCall","src":"33575:35:103"},"nodeType":"YulExpressionStatement","src":"33575:35:103"},{"nodeType":"YulAssignment","src":"33619:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33642:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33627:3:103"},"nodeType":"YulFunctionCall","src":"33627:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33619:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fafa31ad4244029644c90b6f5cee740910ee69364e793eab36c7c37db6e32ff4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33402:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33416:4:103","type":""}],"src":"33251:401:103"},{"body":{"nodeType":"YulBlock","src":"33831:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33848:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33859:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33841:6:103"},"nodeType":"YulFunctionCall","src":"33841:21:103"},"nodeType":"YulExpressionStatement","src":"33841:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33882:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33893:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33878:3:103"},"nodeType":"YulFunctionCall","src":"33878:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"33898:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33871:6:103"},"nodeType":"YulFunctionCall","src":"33871:30:103"},"nodeType":"YulExpressionStatement","src":"33871:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33921:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33932:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33917:3:103"},"nodeType":"YulFunctionCall","src":"33917:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33937:34:103","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33910:6:103"},"nodeType":"YulFunctionCall","src":"33910:62:103"},"nodeType":"YulExpressionStatement","src":"33910:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34003:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33988:3:103"},"nodeType":"YulFunctionCall","src":"33988:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34008:17:103","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33981:6:103"},"nodeType":"YulFunctionCall","src":"33981:45:103"},"nodeType":"YulExpressionStatement","src":"33981:45:103"},{"nodeType":"YulAssignment","src":"34035:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34047:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34058:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34043:3:103"},"nodeType":"YulFunctionCall","src":"34043:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34035:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33808:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33822:4:103","type":""}],"src":"33657:411:103"},{"body":{"nodeType":"YulBlock","src":"34220:1163:103","statements":[{"nodeType":"YulAssignment","src":"34230:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34242:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34253:3:103","type":"","value":"480"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34238:3:103"},"nodeType":"YulFunctionCall","src":"34238:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34230:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34273:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34290:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34284:5:103"},"nodeType":"YulFunctionCall","src":"34284:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34266:6:103"},"nodeType":"YulFunctionCall","src":"34266:32:103"},"nodeType":"YulExpressionStatement","src":"34266:32:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34318:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34329:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34314:3:103"},"nodeType":"YulFunctionCall","src":"34314:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34346:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34354:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34342:3:103"},"nodeType":"YulFunctionCall","src":"34342:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34336:5:103"},"nodeType":"YulFunctionCall","src":"34336:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34307:6:103"},"nodeType":"YulFunctionCall","src":"34307:54:103"},"nodeType":"YulExpressionStatement","src":"34307:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34392:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34377:3:103"},"nodeType":"YulFunctionCall","src":"34377:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34409:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34417:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34405:3:103"},"nodeType":"YulFunctionCall","src":"34405:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34399:5:103"},"nodeType":"YulFunctionCall","src":"34399:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34370:6:103"},"nodeType":"YulFunctionCall","src":"34370:54:103"},"nodeType":"YulExpressionStatement","src":"34370:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34444:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34455:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34440:3:103"},"nodeType":"YulFunctionCall","src":"34440:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34472:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34480:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34468:3:103"},"nodeType":"YulFunctionCall","src":"34468:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34462:5:103"},"nodeType":"YulFunctionCall","src":"34462:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34433:6:103"},"nodeType":"YulFunctionCall","src":"34433:54:103"},"nodeType":"YulExpressionStatement","src":"34433:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34507:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34518:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34503:3:103"},"nodeType":"YulFunctionCall","src":"34503:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34535:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34543:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34531:3:103"},"nodeType":"YulFunctionCall","src":"34531:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34525:5:103"},"nodeType":"YulFunctionCall","src":"34525:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34496:6:103"},"nodeType":"YulFunctionCall","src":"34496:54:103"},"nodeType":"YulExpressionStatement","src":"34496:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34570:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34581:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34566:3:103"},"nodeType":"YulFunctionCall","src":"34566:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34598:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34606:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34594:3:103"},"nodeType":"YulFunctionCall","src":"34594:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34588:5:103"},"nodeType":"YulFunctionCall","src":"34588:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34559:6:103"},"nodeType":"YulFunctionCall","src":"34559:54:103"},"nodeType":"YulExpressionStatement","src":"34559:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34633:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34644:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34629:3:103"},"nodeType":"YulFunctionCall","src":"34629:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34661:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34669:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34657:3:103"},"nodeType":"YulFunctionCall","src":"34657:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34651:5:103"},"nodeType":"YulFunctionCall","src":"34651:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34622:6:103"},"nodeType":"YulFunctionCall","src":"34622:54:103"},"nodeType":"YulExpressionStatement","src":"34622:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34696:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34707:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34692:3:103"},"nodeType":"YulFunctionCall","src":"34692:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34724:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34732:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34720:3:103"},"nodeType":"YulFunctionCall","src":"34720:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34714:5:103"},"nodeType":"YulFunctionCall","src":"34714:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34685:6:103"},"nodeType":"YulFunctionCall","src":"34685:54:103"},"nodeType":"YulExpressionStatement","src":"34685:54:103"},{"nodeType":"YulVariableDeclaration","src":"34748:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"34758:6:103","type":"","value":"0x0100"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"34752:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34784:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"34795:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34780:3:103"},"nodeType":"YulFunctionCall","src":"34780:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34810:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"34818:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34806:3:103"},"nodeType":"YulFunctionCall","src":"34806:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34800:5:103"},"nodeType":"YulFunctionCall","src":"34800:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34773:6:103"},"nodeType":"YulFunctionCall","src":"34773:50:103"},"nodeType":"YulExpressionStatement","src":"34773:50:103"},{"nodeType":"YulVariableDeclaration","src":"34832:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"34842:6:103","type":"","value":"0x0120"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"34836:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34857:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"34887:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"34895:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34883:3:103"},"nodeType":"YulFunctionCall","src":"34883:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"34877:5:103"},"nodeType":"YulFunctionCall","src":"34877:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"34861:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"34924:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34942:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"34953:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34938:3:103"},"nodeType":"YulFunctionCall","src":"34938:18:103"}],"functionName":{"name":"abi_encode_bool","nodeType":"YulIdentifier","src":"34908:15:103"},"nodeType":"YulFunctionCall","src":"34908:49:103"},"nodeType":"YulExpressionStatement","src":"34908:49:103"},{"nodeType":"YulVariableDeclaration","src":"34966:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"34976:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"34970:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35002:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"35013:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34998:3:103"},"nodeType":"YulFunctionCall","src":"34998:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35028:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"35036:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35024:3:103"},"nodeType":"YulFunctionCall","src":"35024:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35018:5:103"},"nodeType":"YulFunctionCall","src":"35018:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34991:6:103"},"nodeType":"YulFunctionCall","src":"34991:50:103"},"nodeType":"YulExpressionStatement","src":"34991:50:103"},{"nodeType":"YulVariableDeclaration","src":"35050:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35060:6:103","type":"","value":"0x0160"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"35054:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35086:9:103"},{"name":"_4","nodeType":"YulIdentifier","src":"35097:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35082:3:103"},"nodeType":"YulFunctionCall","src":"35082:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35112:6:103"},{"name":"_4","nodeType":"YulIdentifier","src":"35120:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35108:3:103"},"nodeType":"YulFunctionCall","src":"35108:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35102:5:103"},"nodeType":"YulFunctionCall","src":"35102:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35075:6:103"},"nodeType":"YulFunctionCall","src":"35075:50:103"},"nodeType":"YulExpressionStatement","src":"35075:50:103"},{"nodeType":"YulVariableDeclaration","src":"35134:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35144:6:103","type":"","value":"0x0180"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"35138:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35170:9:103"},{"name":"_5","nodeType":"YulIdentifier","src":"35181:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35166:3:103"},"nodeType":"YulFunctionCall","src":"35166:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35196:6:103"},{"name":"_5","nodeType":"YulIdentifier","src":"35204:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35192:3:103"},"nodeType":"YulFunctionCall","src":"35192:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35186:5:103"},"nodeType":"YulFunctionCall","src":"35186:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35159:6:103"},"nodeType":"YulFunctionCall","src":"35159:50:103"},"nodeType":"YulExpressionStatement","src":"35159:50:103"},{"nodeType":"YulVariableDeclaration","src":"35218:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35228:6:103","type":"","value":"0x01a0"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"35222:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35254:9:103"},{"name":"_6","nodeType":"YulIdentifier","src":"35265:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35250:3:103"},"nodeType":"YulFunctionCall","src":"35250:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35280:6:103"},{"name":"_6","nodeType":"YulIdentifier","src":"35288:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35276:3:103"},"nodeType":"YulFunctionCall","src":"35276:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35270:5:103"},"nodeType":"YulFunctionCall","src":"35270:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35243:6:103"},"nodeType":"YulFunctionCall","src":"35243:50:103"},"nodeType":"YulExpressionStatement","src":"35243:50:103"},{"nodeType":"YulVariableDeclaration","src":"35302:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35312:6:103","type":"","value":"0x01c0"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"35306:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35338:9:103"},{"name":"_7","nodeType":"YulIdentifier","src":"35349:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35334:3:103"},"nodeType":"YulFunctionCall","src":"35334:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"35364:6:103"},{"name":"_7","nodeType":"YulIdentifier","src":"35372:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35360:3:103"},"nodeType":"YulFunctionCall","src":"35360:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35354:5:103"},"nodeType":"YulFunctionCall","src":"35354:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35327:6:103"},"nodeType":"YulFunctionCall","src":"35327:50:103"},"nodeType":"YulExpressionStatement","src":"35327:50:103"}]},"name":"abi_encode_tuple_t_struct$_Risk_$11917_memory_ptr__to_t_struct$_Risk_$11917_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34189:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"34200:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34211:4:103","type":""}],"src":"34073:1310:103"},{"body":{"nodeType":"YulBlock","src":"35489:76:103","statements":[{"nodeType":"YulAssignment","src":"35499:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35511:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35522:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35507:3:103"},"nodeType":"YulFunctionCall","src":"35507:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35499:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35541:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"35552:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35534:6:103"},"nodeType":"YulFunctionCall","src":"35534:25:103"},"nodeType":"YulExpressionStatement","src":"35534:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35458:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"35469:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35480:4:103","type":""}],"src":"35388:177:103"},{"body":{"nodeType":"YulBlock","src":"35783:250:103","statements":[{"nodeType":"YulAssignment","src":"35793:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35805:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35816:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35801:3:103"},"nodeType":"YulFunctionCall","src":"35801:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35793:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35836:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"35847:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35829:6:103"},"nodeType":"YulFunctionCall","src":"35829:25:103"},"nodeType":"YulExpressionStatement","src":"35829:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35874:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35885:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35870:3:103"},"nodeType":"YulFunctionCall","src":"35870:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"35890:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35863:6:103"},"nodeType":"YulFunctionCall","src":"35863:34:103"},"nodeType":"YulExpressionStatement","src":"35863:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35917:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35928:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35913:3:103"},"nodeType":"YulFunctionCall","src":"35913:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"35933:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35906:6:103"},"nodeType":"YulFunctionCall","src":"35906:34:103"},"nodeType":"YulExpressionStatement","src":"35906:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35960:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35971:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35956:3:103"},"nodeType":"YulFunctionCall","src":"35956:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"35976:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35949:6:103"},"nodeType":"YulFunctionCall","src":"35949:34:103"},"nodeType":"YulExpressionStatement","src":"35949:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36003:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36014:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35999:3:103"},"nodeType":"YulFunctionCall","src":"35999:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"36020:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35992:6:103"},"nodeType":"YulFunctionCall","src":"35992:35:103"},"nodeType":"YulExpressionStatement","src":"35992:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35720:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"35731:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"35739:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"35747:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"35755:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"35763:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35774:4:103","type":""}],"src":"35570:463:103"},{"body":{"nodeType":"YulBlock","src":"36195:162:103","statements":[{"nodeType":"YulAssignment","src":"36205:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36228:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36213:3:103"},"nodeType":"YulFunctionCall","src":"36213:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36205:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36247:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"36258:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36240:6:103"},"nodeType":"YulFunctionCall","src":"36240:25:103"},"nodeType":"YulExpressionStatement","src":"36240:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36285:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36296:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36281:3:103"},"nodeType":"YulFunctionCall","src":"36281:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"36301:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36274:6:103"},"nodeType":"YulFunctionCall","src":"36274:34:103"},"nodeType":"YulExpressionStatement","src":"36274:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36328:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36339:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36324:3:103"},"nodeType":"YulFunctionCall","src":"36324:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"36344:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36317:6:103"},"nodeType":"YulFunctionCall","src":"36317:34:103"},"nodeType":"YulExpressionStatement","src":"36317:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36148:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"36159:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"36167:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"36175:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36186:4:103","type":""}],"src":"36038:319:103"},{"body":{"nodeType":"YulBlock","src":"36491:119:103","statements":[{"nodeType":"YulAssignment","src":"36501:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36513:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36524:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36509:3:103"},"nodeType":"YulFunctionCall","src":"36509:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36501:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36543:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"36554:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36536:6:103"},"nodeType":"YulFunctionCall","src":"36536:25:103"},"nodeType":"YulExpressionStatement","src":"36536:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36592:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36577:3:103"},"nodeType":"YulFunctionCall","src":"36577:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"36597:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36570:6:103"},"nodeType":"YulFunctionCall","src":"36570:34:103"},"nodeType":"YulExpressionStatement","src":"36570:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36452:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"36463:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"36471:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36482:4:103","type":""}],"src":"36362:248:103"},{"body":{"nodeType":"YulBlock","src":"36660:230:103","statements":[{"nodeType":"YulAssignment","src":"36670:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36686:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"36680:5:103"},"nodeType":"YulFunctionCall","src":"36680:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"36670:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"36698:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"36720:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"36736:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"36742:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36732:3:103"},"nodeType":"YulFunctionCall","src":"36732:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36751:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"36747:3:103"},"nodeType":"YulFunctionCall","src":"36747:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36728:3:103"},"nodeType":"YulFunctionCall","src":"36728:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36716:3:103"},"nodeType":"YulFunctionCall","src":"36716:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"36702:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"36831:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"36833:16:103"},"nodeType":"YulFunctionCall","src":"36833:18:103"},"nodeType":"YulExpressionStatement","src":"36833:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"36774:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"36786:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"36771:2:103"},"nodeType":"YulFunctionCall","src":"36771:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"36810:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"36822:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"36807:2:103"},"nodeType":"YulFunctionCall","src":"36807:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"36768:2:103"},"nodeType":"YulFunctionCall","src":"36768:62:103"},"nodeType":"YulIf","src":"36765:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36869:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"36873:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36862:6:103"},"nodeType":"YulFunctionCall","src":"36862:22:103"},"nodeType":"YulExpressionStatement","src":"36862:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"36640:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"36649:6:103","type":""}],"src":"36615:275:103"},{"body":{"nodeType":"YulBlock","src":"36943:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"36970:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"36972:16:103"},"nodeType":"YulFunctionCall","src":"36972:18:103"},"nodeType":"YulExpressionStatement","src":"36972:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"36959:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"36966:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"36962:3:103"},"nodeType":"YulFunctionCall","src":"36962:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"36956:2:103"},"nodeType":"YulFunctionCall","src":"36956:13:103"},"nodeType":"YulIf","src":"36953:2:103"},{"nodeType":"YulAssignment","src":"37001:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37012:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"37015:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37008:3:103"},"nodeType":"YulFunctionCall","src":"37008:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"37001:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"36926:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"36929:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"36935:3:103","type":""}],"src":"36895:128:103"},{"body":{"nodeType":"YulBlock","src":"37074:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"37105:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"37126:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37133:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"37138:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"37129:3:103"},"nodeType":"YulFunctionCall","src":"37129:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37119:6:103"},"nodeType":"YulFunctionCall","src":"37119:31:103"},"nodeType":"YulExpressionStatement","src":"37119:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37170:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"37173:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37163:6:103"},"nodeType":"YulFunctionCall","src":"37163:15:103"},"nodeType":"YulExpressionStatement","src":"37163:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"37198:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"37201:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37191:6:103"},"nodeType":"YulFunctionCall","src":"37191:15:103"},"nodeType":"YulExpressionStatement","src":"37191:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"37094:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37087:6:103"},"nodeType":"YulFunctionCall","src":"37087:9:103"},"nodeType":"YulIf","src":"37084:2:103"},{"nodeType":"YulAssignment","src":"37225:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37234:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"37237:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"37230:3:103"},"nodeType":"YulFunctionCall","src":"37230:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"37225:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"37059:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"37062:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"37068:1:103","type":""}],"src":"37028:217:103"},{"body":{"nodeType":"YulBlock","src":"37302:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"37361:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"37363:16:103"},"nodeType":"YulFunctionCall","src":"37363:18:103"},"nodeType":"YulExpressionStatement","src":"37363:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37333:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37326:6:103"},"nodeType":"YulFunctionCall","src":"37326:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37319:6:103"},"nodeType":"YulFunctionCall","src":"37319:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"37341:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37352:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"37348:3:103"},"nodeType":"YulFunctionCall","src":"37348:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"37356:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"37344:3:103"},"nodeType":"YulFunctionCall","src":"37344:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"37338:2:103"},"nodeType":"YulFunctionCall","src":"37338:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"37315:3:103"},"nodeType":"YulFunctionCall","src":"37315:45:103"},"nodeType":"YulIf","src":"37312:2:103"},{"nodeType":"YulAssignment","src":"37392:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37407:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"37410:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"37403:3:103"},"nodeType":"YulFunctionCall","src":"37403:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"37392:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"37281:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"37284:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"37290:7:103","type":""}],"src":"37250:168:103"},{"body":{"nodeType":"YulBlock","src":"37472:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"37494:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"37496:16:103"},"nodeType":"YulFunctionCall","src":"37496:18:103"},"nodeType":"YulExpressionStatement","src":"37496:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37488:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"37491:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"37485:2:103"},"nodeType":"YulFunctionCall","src":"37485:8:103"},"nodeType":"YulIf","src":"37482:2:103"},{"nodeType":"YulAssignment","src":"37525:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"37537:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"37540:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37533:3:103"},"nodeType":"YulFunctionCall","src":"37533:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"37525:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"37454:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"37457:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"37463:4:103","type":""}],"src":"37423:125:103"},{"body":{"nodeType":"YulBlock","src":"37606:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"37616:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"37625:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"37620:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"37685:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"37710:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"37715:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37706:3:103"},"nodeType":"YulFunctionCall","src":"37706:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"37729:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"37734:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37725:3:103"},"nodeType":"YulFunctionCall","src":"37725:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37719:5:103"},"nodeType":"YulFunctionCall","src":"37719:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37699:6:103"},"nodeType":"YulFunctionCall","src":"37699:39:103"},"nodeType":"YulExpressionStatement","src":"37699:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"37646:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"37649:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"37643:2:103"},"nodeType":"YulFunctionCall","src":"37643:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"37657:19:103","statements":[{"nodeType":"YulAssignment","src":"37659:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"37668:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"37671:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37664:3:103"},"nodeType":"YulFunctionCall","src":"37664:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"37659:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"37639:3:103","statements":[]},"src":"37635:113:103"},{"body":{"nodeType":"YulBlock","src":"37774:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"37787:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"37792:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37783:3:103"},"nodeType":"YulFunctionCall","src":"37783:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"37801:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37776:6:103"},"nodeType":"YulFunctionCall","src":"37776:27:103"},"nodeType":"YulExpressionStatement","src":"37776:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"37763:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"37766:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"37760:2:103"},"nodeType":"YulFunctionCall","src":"37760:13:103"},"nodeType":"YulIf","src":"37757:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"37584:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"37589:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"37594:6:103","type":""}],"src":"37553:258:103"},{"body":{"nodeType":"YulBlock","src":"37863:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"37890:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"37892:16:103"},"nodeType":"YulFunctionCall","src":"37892:18:103"},"nodeType":"YulExpressionStatement","src":"37892:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37883:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37876:6:103"},"nodeType":"YulFunctionCall","src":"37876:13:103"},"nodeType":"YulIf","src":"37873:2:103"},{"nodeType":"YulAssignment","src":"37921:25:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37932:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37943:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"37939:3:103"},"nodeType":"YulFunctionCall","src":"37939:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37928:3:103"},"nodeType":"YulFunctionCall","src":"37928:18:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"37921:3:103"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"37845:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"37855:3:103","type":""}],"src":"37816:136:103"},{"body":{"nodeType":"YulBlock","src":"38004:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"38035:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"38037:16:103"},"nodeType":"YulFunctionCall","src":"38037:18:103"},"nodeType":"YulExpressionStatement","src":"38037:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"38020:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38031:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"38027:3:103"},"nodeType":"YulFunctionCall","src":"38027:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"38017:2:103"},"nodeType":"YulFunctionCall","src":"38017:17:103"},"nodeType":"YulIf","src":"38014:2:103"},{"nodeType":"YulAssignment","src":"38066:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"38077:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"38084:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38073:3:103"},"nodeType":"YulFunctionCall","src":"38073:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"38066:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"37986:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"37996:3:103","type":""}],"src":"37957:135:103"},{"body":{"nodeType":"YulBlock","src":"38129:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38146:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38153:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"38158:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"38149:3:103"},"nodeType":"YulFunctionCall","src":"38149:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38139:6:103"},"nodeType":"YulFunctionCall","src":"38139:31:103"},"nodeType":"YulExpressionStatement","src":"38139:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38186:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"38189:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38179:6:103"},"nodeType":"YulFunctionCall","src":"38179:15:103"},"nodeType":"YulExpressionStatement","src":"38179:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38210:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"38213:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"38203:6:103"},"nodeType":"YulFunctionCall","src":"38203:15:103"},"nodeType":"YulExpressionStatement","src":"38203:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"38097:127:103"},{"body":{"nodeType":"YulBlock","src":"38261:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38278:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38285:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"38290:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"38281:3:103"},"nodeType":"YulFunctionCall","src":"38281:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38271:6:103"},"nodeType":"YulFunctionCall","src":"38271:31:103"},"nodeType":"YulExpressionStatement","src":"38271:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38318:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"38321:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38311:6:103"},"nodeType":"YulFunctionCall","src":"38311:15:103"},"nodeType":"YulExpressionStatement","src":"38311:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38342:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"38345:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"38335:6:103"},"nodeType":"YulFunctionCall","src":"38335:15:103"},"nodeType":"YulExpressionStatement","src":"38335:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"38229:127:103"},{"body":{"nodeType":"YulBlock","src":"38393:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38410:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38417:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"38422:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"38413:3:103"},"nodeType":"YulFunctionCall","src":"38413:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38403:6:103"},"nodeType":"YulFunctionCall","src":"38403:31:103"},"nodeType":"YulExpressionStatement","src":"38403:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38450:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"38453:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38443:6:103"},"nodeType":"YulFunctionCall","src":"38443:15:103"},"nodeType":"YulExpressionStatement","src":"38443:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38474:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"38477:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"38467:6:103"},"nodeType":"YulFunctionCall","src":"38467:15:103"},"nodeType":"YulExpressionStatement","src":"38467:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"38361:127:103"},{"body":{"nodeType":"YulBlock","src":"38538:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"38602:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38611:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"38614:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"38604:6:103"},"nodeType":"YulFunctionCall","src":"38604:12:103"},"nodeType":"YulExpressionStatement","src":"38604:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"38561:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"38572:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"38587:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"38592:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"38583:3:103"},"nodeType":"YulFunctionCall","src":"38583:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"38596:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"38579:3:103"},"nodeType":"YulFunctionCall","src":"38579:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"38568:3:103"},"nodeType":"YulFunctionCall","src":"38568:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"38558:2:103"},"nodeType":"YulFunctionCall","src":"38558:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"38551:6:103"},"nodeType":"YulFunctionCall","src":"38551:50:103"},"nodeType":"YulIf","src":"38548:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"38527:5:103","type":""}],"src":"38493:131:103"}]},"contents":"{\n { }\n function abi_decode_bool_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_uint256t_uint256t_bytes32(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_bool_fromMemory(headStart)\n }\n function abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := abi_decode_bool_fromMemory(headStart)\n value1 := mload(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32t_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 224) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n value5 := calldataload(add(headStart, 160))\n value6 := calldataload(add(headStart, 192))\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n if iszero(lt(value_1, 4)) { revert(value0, value0) }\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bytes32t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value2, value2) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value2, value2) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value2, value2) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value2, value2) }\n value2 := add(_2, 32)\n value3 := length\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_encode_bool(value, pos)\n {\n mstore(pos, iszero(iszero(value)))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, \"AccessControl: account \")\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n let _1 := add(pos, length)\n mstore(add(_1, 23), \" is missing role \")\n let length_1 := mload(value1)\n copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n end := add(add(_1, length_1), 40)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 160)\n let tail_1 := abi_encode_bytes(value3, add(headStart, 160))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n tail := abi_encode_bytes(value4, tail_1)\n }\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_address_t_uint256_t_uint256__to_t_bytes32_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 160))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_bytes(value2, tail_1)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_bytes32_t_rational_0_by_1__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0a4d1e7ee13d3e1c186b0c5039ac828c21427604ef12eb5f13ec178f7b5ae702__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:AYI-046:RISK_APH_ZERO_INVA\")\n mstore(add(headStart, 96), \"LID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1933cf92e854516d33fae263dace7298dd28dda3cb0e72fbef894e917a93a275__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"ERROR:AYI-024:AAAY_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2498ce872169b7763abec28f7059d4a97ac70a016e3a78c66a9f5c7740b38ef8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:AYI-042:RISK_EXIT_TOO_LARG\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_28015aff36bbf8cb89a7d6ca21c217883599d0a9d34ab709c871c948f0fded56__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:AYI-010:RISK_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:PRD-003:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_412e0dd059ff5ee1474516ff048f71840a3a2965c87e0ba7efd8312e11193f6b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:AYI-041:RISK_TRIGGER_NOT_L\")\n mstore(add(headStart, 96), \"ARGER_THAN_EXIT\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_41a8e910e497c53c0ffe6a8d374e9ceae17e46879b937ab53f2189842ece12cd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:AYI-047:RISK_APH_TOO_LARGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_58676a06b2a15eeef19d847ad905241c221bcfc99304360d668ec70c06b294c9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:AYI-030:ORACLE_RESPONSE_MI\")\n mstore(add(headStart, 96), \"SSING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6ee02cfa0248fa86db9a11f735c32c1ff1a44fc0b1601b5b7ff4563f745477c9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:AYI-021:RISK_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6f27b73d87657a4223eeda0e62929018b09601be0c30975a8a78bf41dfdbaaa2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:AYI-032:ORACLE_RESPONSE_MI\")\n mstore(add(headStart, 96), \"SSING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6fc284dd3ef5c0a4e0102afbb048ee6a2068822573dadf296d595b1f0508f960__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:AYI-011:ORACLE_ALREADY_RES\")\n mstore(add(headStart, 96), \"PONDED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_722b7f7e542cc90fba74057b4a362428bdd9a3b53029c438d846a79f1ac5a7d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:AYI-045:RISK_TSI_EXIT_SUM_\")\n mstore(add(headStart, 96), \"TOO_LARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_74007f953b79ec853cb87103ec9504ec665b2c9164be7516bbc8c84925b56cec__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:AYI-005:POLICY_HOLDER_ZERO\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8e5824abd539e2def691cf0401224fac97337998f0fa26de7535423fdaff387e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:AYI-013:ORACLE_REQUEST_NOT\")\n mstore(add(headStart, 96), \"_FOUND\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_aaec2461ff204fc73d428d95c0f4cb5267531886babbeecda241ecff60dc08cf__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:AYI-023:EXISTING_CALLBACK\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_aaf8ccfcadbad9421342ffd1299722ec5af1e410a95732101efa8995983950fc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:AYI-014:EXISTING_CALLBACK\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ac82fb86fd21de21f78be2f637e9fab58b40e12b4a4583436526b5f1f92f6037__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:AYI-043:RISK_TSI_TOO_SMALL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_c593a3453eafb148b39dbe11ea4cd77edd7d3bf9c49913b3d86cf2b2ad158ac6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:AYI-044:RISK_TSI_TOO_LARGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_c8bfdecb7e2ed493ac22e973378473f67d79eabfa3ec87a5ca0db9597fe32dc2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:AYI-031:RISK_ID_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cbaf1d726096478fb0eb96544569fd8fa4d575484c98caef0bd74861bf86ac57__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:AYI-020:RISK_ID_MISMATCH\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d25b01973080c85f3d4c19010fc1d88672bc6d17cea35996204c37425ae4f136__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:AYI-040:RISK_TRIGGER_TOO_L\")\n mstore(add(headStart, 96), \"ARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_dcbc40a3d8c26349e10dd7f08a6b7b007d7052eecfaccb2cc208ecaf8fccefd5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:AYI-012:RISK_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_dd75e4d2b94b2d8ff6b0403850d1167c5b6fa118aa13973f47a4b7f7d7ee5f5f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:AYI-004:RISK_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_e1a84a551284060b76b600a286108f6c04d1bc2ac8241df44449fd27fa94a00a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:AYI-001:RISK_ALREADY_EXIST\")\n mstore(add(headStart, 96), \"S\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e50d6e107b97b06a6b4ebbb835c4ac409d87bd844c914bf49d6502833d8ba34e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"ERROR:AYI-002:RISK_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f422cac3b534a9ed752cfd161d8b473b386119366ac0d8f2b3a828e1526d99f3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:AYI-003:RISK_WITH_POLICIES\")\n mstore(add(headStart, 96), \"_NOT_ADJUSTABLE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f6dbb8dbd57bcf301752f2cf8b3847b57c719884a8d0c8570c19052a9efb7ef6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:AYI-022:REQUEST_ID_MISMATC\")\n mstore(add(headStart, 96), \"H\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fafa31ad4244029644c90b6f5cee740910ee69364e793eab36c7c37db6e32ff4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:AYI-033:POLICY_FOR_RISK_UN\")\n mstore(add(headStart, 96), \"KNOWN\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_Risk_$11917_memory_ptr__to_t_struct$_Risk_$11917_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 480)\n mstore(headStart, mload(value0))\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n let _1 := 0x0100\n mstore(add(headStart, _1), mload(add(value0, _1)))\n let _2 := 0x0120\n let memberValue0 := mload(add(value0, _2))\n abi_encode_bool(memberValue0, add(headStart, _2))\n let _3 := 0x0140\n mstore(add(headStart, _3), mload(add(value0, _3)))\n let _4 := 0x0160\n mstore(add(headStart, _4), mload(add(value0, _4)))\n let _5 := 0x0180\n mstore(add(headStart, _5), mload(add(value0, _5)))\n let _6 := 0x01a0\n mstore(add(headStart, _6), mload(add(value0, _6)))\n let _7 := 0x01c0\n mstore(add(headStart, _7), mload(add(value0, _7)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32__to_t_uint256_t_bytes32_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function decrement_t_uint256(value) -> ret\n {\n if iszero(value) { panic_error_0x11() }\n ret := add(value, not(0))\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106103fc5760003560e01c806366528c3b11610215578063b9ea8d6611610125578063e0815f0d116100b8578063f2fde38b11610087578063f2fde38b14610836578063f406460c14610849578063f4fdc1fa14610851578063f9d7ff8914610862578063ffa1ad741461086a576103fc565b8063e0815f0d146107f5578063e5d58cd8146107fd578063e9960d8a14610810578063eb80733914610823576103fc565b8063d52d2d06116100f4578063d52d2d06146107bc578063d547741f146107cf578063d73cd9921461061a578063ddbfd8ef146107e2576103fc565b8063b9ea8d6614610771578063bd1fe5d0146107a1578063be169e7e1461061a578063d0e0ba95146107a9576103fc565b806391d14854116101a8578063a18f5ae211610177578063a18f5ae21461061a578063a217fddf146105f4578063a3f4df7e1461074a578063aec8de3914610769578063b3fca9bd1461061a576103fc565b806391d14854146106f057806394f64ff4146107035780639a82f8901461072f5780639dce5ff014610737576103fc565b80637ce5e82f116101e45780637ce5e82f146106ba578063893d20e8146106c25780638da5cb5b146106d757806390e1a2ac146106e8576103fc565b806366528c3b1461068d57806370d2fe5314610697578063715018a61461069f57806378a433a5146106a7576103fc565b806336568abe1161031057806354111315116102a35780635ab1bd53116102725780635ab1bd53146106425780635d1ca631146106595780635e61aa6314610661578063637d08f414610674578063638ce0ba14610685576103fc565b806354111315146105fc578063597ee7981461060757806359dacc6a1461061a5780635a60210914610622576103fc565b8063412f91d9116102df578063412f91d9146105bb57806346b937f6146105ce5780634b6eb669146105e15780634ce9d0a7146105f4576103fc565b806336568abe1461057857806339cf5e161461058b5780633dc5f58e146105a85780633ec92bda1461058b576103fc565b80631b07b17f1161039357806321df0da71161036257806321df0da714610502578063248a9ca314610527578063258d560c1461054a5780632f2ff15d1461055257806330a73da514610565576103fc565b80631b07b17f146104bf5780631b867c63146104d25780631c3456dd146104da5780631fd358aa146104e2576103fc565b80630b228d95116103cf5780630b228d951461047a57806315dae03e1461048f57806317d7de7c146104a25780631865c57d146104aa576103fc565b806301ffc9a714610401578063056c99891461042957806306136f281461044c57806309128d831461045f575b600080fd5b61041461040f366004613b88565b610877565b60405190151581526020015b60405180910390f35b61043e60008051602061429883398151915281565b604051908152602001610420565b61043e61045a3660046139f0565b6108b0565b61043e70506f6c69637944656661756c74466c6f7760781b81565b61048d6104883660046139f0565b610a9b565b005b60035460ff166040516104209190614032565b60015461043e565b6104b2610e2c565b6040516104209190614018565b6104146104cd3660046139f0565b610eb2565b61048d610f5f565b61043e610fae565b6104f56104f0366004613b2d565b610fc0565b6040516104209190613f26565b6008546001600160a01b03165b6040516001600160a01b039091168152602001610420565b61043e6105353660046139f0565b6000908152600c602052604090206001015490565b610414611299565b61048d610560366004613a20565b6112c9565b61048d610573366004613a86565b6112f3565b61048d610586366004613a20565b61131c565b6040805160208101909152600081525b6040516104209190614046565b61043e6105b6366004613ae2565b61139a565b61043e6105c9366004613b2d565b6114ff565b61043e6105dc366004613b4e565b611520565b61043e6105ef366004613968565b6115bd565b61043e600081565b61043e630100000081565b61048d6106153660046139f0565b6117d2565b61048d611975565b6106356106303660046139f0565b6119bf565b6040516104209190614090565b61050f60035461010090046001600160a01b031690565b60025461043e565b61048d61066f366004613d80565b611b06565b6007546001600160a01b031661050f565b61048d611e02565b630100000061043e565b60095461043e565b61048d611e4f565b61048d6106b5366004613b4e565b611e61565b60135461043e565b61050f600080546001600160a01b0316610ead565b6000546001600160a01b031661050f565b61043e61202a565b6104146106fe366004613a20565b612039565b60408051808201909152601081526f2862797465733332207269736b49642960801b602082015261059b565b610414612064565b61043e610745366004613b2d565b61206c565b61043e74105c9958565a595b19125b99195e141c9bd91d58dd605a1b81565b61043e600f81565b61078461077f3660046139f0565b612087565b604080519315158452602084019290925290820152606001610420565b61048d6120bb565b61048d6107b73660046139f0565b612108565b61043e6107ca3660046139f0565b612152565b61048d6107dd366004613a20565b612187565b61043e6107f03660046139f0565b6121ac565b6104146121c3565b61078461080b366004613a4f565b6121cc565b61043e61081e366004613a86565b612269565b61043e6108313660046139f0565b6122a0565b61048d610844366004613930565b6122c3565b61043e612339565b61048d61085f3660046139f0565b50565b60105461043e565b61043e62302e3160e81b81565b60006001600160e01b03198216637965db0b60e01b14806108a857506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60006000805160206142988339815191526108ca81612348565b6000601160006108d986612352565b81526020019081526020016000209050600081600d0154116109425760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031303a5249534b5f554e444546494e45440000000060448201526064015b60405180910390fd5b600a810154156109a35760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031313a4f5241434c455f414c52454144595f5245536044820152651413d391115160d21b6064820152608401610939565b60018101546002820154600383015460408051602081019490945283019190915260608201526000906080016040516020818303038152906040529050610a1485826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600e5461237f565b6008830181905560098301805460ff1916600190811790915542600e85015583549084015460028501546003860154604080518681526020810195909552840192909252606083015260808201529094507f983570285d5bc639119bffe47fdb9708eb765c6cac55a784fd1651fbf1360c0f9060a0015b60405180910390a1505050919050565b600080516020614298833981519152610ab381612348565b6000610abe8361240a565b905060008160600151806020019051810190610ada9190613a08565b60008181526011602090815260409182902082516101e08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401526008810154610100840152600981015460ff161515610120840152600a810154610140840152600b810154610160840152600c810154610180840152600d8101546101a0840152600e01546101c0830152919250908214610be75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4159492d3033313a5249534b5f49445f494e56414c49440000006044820152606401610939565b600081610140015111610c4a5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033323a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b6000828152601260205260409020610c6290866124c4565b610cbc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033333a504f4c4943595f464f525f5249534b5f554e60448201526425a727aba760d91b6064820152608401610939565b6000828152601260205260409020610cd490866124dc565b506000610cea826101800151856040015161206c565b90506000610d088783604051806020016040528060008152506124e8565b60408051898152602081018390529081018490529091507ff3b6fa541c2fb440a7135df726575da0735a6968fa3804a462c63690d4330dbd9060600160405180910390a18115610dc95781610d5e888383612577565b6000610d7b898484604051806020016040528060008152506125e9565b9050610d878982612620565b5050604080518a8152602081018490527fe85c538af9d154780befa06f96e8c8d5ff531c715d3735732ca365e541b15ec8910160405180910390a15050610ddd565b610dd387826126b4565b610ddd878261271e565b610de687612756565b610def876127b8565b6040518781527f88873a4c738a1c855a15847c7daf779056bd64e3e5dce2a378085a56b1e65698906020015b60405180910390a150505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190613bb0565b905090565b6000600080516020614298833981519152610ecc81612348565b610ed58361240a565b50610edf836127e9565b91508115610f59576000610ef28461240a565b90506000610eff85612868565b805160208085015160408087015181518b81526001600160a01b039095169385019390935283015260608201529091507f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d190608001610a8b565b50919050565b610f746810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614610fa45760405162461bcd60e51b815260040161093990614059565b610fac6129a3565b565b610fbd6301000000600f6141ac565b81565b6060600080516020614298833981519152610fda81612348565b60008481526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a8201546101408201819052600b830154610160830152600c830154610180830152600d8301546101a0830152600e909201546101c0820152906110f35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033303a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b600085815260126020526040812061110a906129e0565b9050806111625760408051878152600060208201527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a150506040805160008152602081019091529150611292565b8461116f5780945061117c565b61117985826129ea565b94505b8467ffffffffffffffff8111156111a357634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156111cc578160200160208202803683370190505b50935060006111dc6001836141cb565b905060005b8681101561125457600088815260126020526040812061120a9061120584866141cb565b612a01565b905061121581610a9b565b8087838151811061123657634e487b7160e01b600052603260045260246000fd5b6020908102919091010152508061124c81614225565b9150506111e1565b5060408051888152602081018890527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a15050505b5092915050565b600060025b60035460ff1660028111156112c357634e487b7160e01b600052602160045260246000fd5b14905090565b6000828152600c60205260409020600101546112e481612348565b6112ee8383612a0d565b505050565b60008051602061429883398151915261130b81612348565b611316848484612a93565b50505050565b6001600160a01b038116331461138c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610939565b6113968282612ad2565b5050565b60006000805160206142988339815191526113b481612348565b6113c086868686612b39565b6113cb898989612269565b60108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018190556000818152601160205260409020600d81015491935090156114695760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3030313a5249534b5f414c52454144595f45584953546044820152605360f81b6064820152608401610939565b828155600181018a905560028101899055600381018890556004810187905560058101869055600681018590556007810184905542600d8201819055600e82015560408051848152602081018c90529081018a9052606081018990527f817b0e272a7b333532cb6439a34e3ec00922e22926032442220a69868f02d8dc9060800160405180910390a15050979650505050505050565b60008281526012602052604081206115179083612a01565b90505b92915050565b600061152c85846141ac565b61153a6301000000846141ac565b10611547575060006115b4565b61155184846141ac565b61155f6301000000846141ac565b1161156b5750846115b4565b60008361157c8463010000006141ac565b611586919061418c565b905061159285876141cb565b61159c82886141cb565b6115a690896141ac565b6115b0919061418c565b9150505b95945050505050565b60006000805160206142988339815191526115d781612348565b6000838152601160205260409020600d8101546116365760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3030343a5249534b5f554e444546494e4544000000006044820152606401610939565b6001600160a01b03871661168c5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3030353a504f4c4943595f484f4c4445525f5a45524f6044820152606401610939565b6040805160208082018352600082528251808201889052835180820390920182528301909252906116c08989898585612e43565b601380546001810182556000919091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09001819055604080518281526001600160a01b038c1660208201529081018a9052606081018990529095507fb6b5fb82ad406a44dc88433d286d201520c295308f087a476b845f907d3bd6039060800160405180910390a16000611753866127e9565b905080156117c55760008781526012602052604090206117739087612ed8565b50604080518781526001600160a01b038c1660208201529081018a9052606081018990527f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d19060800160405180910390a15b5050505050949350505050565b6000805160206142988339815191526117ea81612348565b6000601160006117f985612352565b81526020019081526020016000209050600081600d01541161185d5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031323a5249534b5f554e444546494e4544000000006044820152606401610939565b600981015460ff166118c05760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031333a4f5241434c455f524551554553545f4e4f5460448201526517d193d5539160d21b6064820152608401610939565b600a810154156119125760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3031343a4558495354494e475f43414c4c4241434b006044820152606401610939565b61191f8160080154612ee4565b60098101805460ff1916905542600e82015560088101546040805185815260208101929092527fdeeac61c3ad18e6efca12eac38425c944b5bbca5b482e39b549671e05544c3dc910160405180910390a1505050565b61198a6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146119ba5760405162461bcd60e51b815260040161093990614059565b610fac565b611a46604051806101e0016040528060008019168152602001600080191681526020016000801916815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060009081526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a820154610140820152600b820154610160820152600c820154610180820152600d8201546101a0820152600e909101546101c082015290565b611b1764517565727960d81b612921565b6001600160a01b0316336001600160a01b031614611b775760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610939565b6000808080611b8885870187613ab1565b93509350935093506000611b9b88612352565b9050611ba8858585612269565b8114611bf65760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4159492d3032303a5249534b5f49445f4d49534d4154434800006044820152606401610939565b6000818152601160205260409020600d810154611c555760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3032313a5249534b5f554e444546494e4544000000006044820152606401610939565b89816008015414611cb25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3032323a524551554553545f49445f4d49534d4154436044820152600960fb1b6064820152608401610939565b600a81015415611d045760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3032333a4558495354494e475f43414c4c4241434b006044820152606401610939565b611d13630100000060006141ac565b8310158015611d2f5750611d2c6301000000600f6141ac565b83105b611d7b5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3032343a414141595f494e56414c49440000000000006044820152606401610939565b600b81018390556006810154600482015460058301546007840154611da39392919087611520565b600c82015542600a8201819055600e820155604080518b8152602081018490529081018490527f357e32cffc9b470fe746dfc76a9dabc81e0441109f95820ff3daeabc21ca3e319060600160405180910390a150505050505050505050565b611e176810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614611e475760405162461bcd60e51b815260040161093990614059565b610fac612f15565b611e57612f3f565b610fac6000612f99565b600080516020614298833981519152611e7981612348565b611e8585858585612b39565b6000868152601160205260409020600d810154611ee45760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3030323a5249534b5f554e4b4e4f574e0000000000006044820152606401610939565b6000878152601260205260409020611efb906129e0565b15611f605760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3030333a5249534b5f574954485f504f4c494349455360448201526e5f4e4f545f41444a55535441424c4560881b6064820152608401610939565b805460048201546005830154600684015460078501546040805195865260208601949094528484019290925260608401526080830152517f5ea522f91ea45156f00d5390cfaf51dc82f9b163ae492c8d6033fcb3af773f589181900360a00190a16004810186905560058101859055600681018490556007810183905580546040805191825260208201889052810186905260608101859052608081018490527f2ef22fcf430acdb3b80e5d30364fcd07242c6081010c6cc9aa2fe4f4105f81279060a001610e1b565b610fbd6002630100000061418c565b6000918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008061129e565b6000630100000061207d83856141ac565b611517919061418c565b60008060006000805160206142988339815191526120a481612348565b6120ad85612fe9565b919790965090945092505050565b6120d06810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146121005760405162461bcd60e51b815260040161093990614059565b610fac61302f565b61211d6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b03161461214d5760405162461bcd60e51b815260040161093990614059565b600255565b60006013828154811061217557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6000828152600c60205260409020600101546121a281612348565b6112ee8383612ad2565b60008181526012602052604081206108a8906129e0565b6000600161129e565b60008060006000805160206142988339815191526121e981612348565b60006121f488612868565b905080600001516001600160a01b0316876001600160a01b03161461224c57600f548151600091612233916001600160a01b03909116908a908a613059565b90508061224a5794506000935085925061225f9050565b505b612256888761336e565b91965094509250505b5093509350939050565b6040805160208082019590955280820193909352606080840192909252805180840390920182526080909201909152805191012090565b60006010828154811061217557634e487b7160e01b600052603260045260246000fd5b6122cb612f3f565b6001600160a01b0381166123305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610939565b61085f81612f99565b610fbd6005630100000061418c565b61085f81336133f8565b60008061235e8361240a565b905080606001518060200190518101906123789190613a08565b9392505050565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f22906123b89088908890889030908990600401613f8b565b602060405180830381600087803b1580156123d257600080fd5b505af11580156123e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b49190613a08565b6124446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b15801561248857600080fd5b505afa15801561249c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613bcf565b60008181526001830160205260408120541515611517565b6000611517838361345c565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d159061251d90879087908790600401613fd4565b602060405180830381600087803b15801561253757600080fd5b505af115801561254b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256f9190613a08565b949350505050565b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f906064015b600060405180830381600087803b1580156125cc57600080fd5b505af11580156125e0573d6000803e3d6000fd5b50505050505050565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d7846906123b8908890889088908890600401613ff3565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b15801561267157600080fd5b505af1158015612685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a99190613dfb565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b15801561270257600080fd5b505af1158015612716573d6000803e3d6000fd5b505050505050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba2906044016126e8565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c6441798906024015b600060405180830381600087803b15801561279d57600080fd5b505af11580156127b1573d6000803e3d6000fd5b5050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c90602401612783565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b15801561283057600080fd5b505af1158015612844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906139a2565b6128a16040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600b5460405163296586d360e21b8152600481018490526001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156128e557600080fd5b505afa1580156128f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613c7d565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561296b57600080fd5b505afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a8919061394c565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616129cd60025490565b60405190815260200160405180910390a1565b60006108a8825490565b6000818311156129fa5781611517565b5090919050565b60006115178383613579565b612a178282612039565b611396576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a4f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064016125b2565b612adc8282612039565b15611396576000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6301000000841115612b995760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4159492d3034303a5249534b5f545249474745525f544f4f5f4c6044820152634152474560e01b6064820152608401610939565b828411612c005760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3034313a5249534b5f545249474745525f4e4f545f4c60448201526e105491d15497d512105397d1561255608a1b6064820152608401610939565b612c0f6005630100000061418c565b831115612c685760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3034323a5249534b5f455849545f544f4f5f4c4152476044820152604560f81b6064820152608401610939565b612c776002630100000061418c565b821015612cc65760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034333a5249534b5f5453495f544f4f5f534d414c4c6044820152606401610939565b6301000000821115612d1a5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034343a5249534b5f5453495f544f4f5f4c415247456044820152606401610939565b6301000000612d298484614174565b1115612d895760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4159492d3034353a5249534b5f5453495f455849545f53554d5f604482015268544f4f5f4c4152474560b81b6064820152608401610939565b60008111612de55760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4159492d3034363a5249534b5f4150485f5a45524f5f494e564160448201526213125160ea1b6064820152608401610939565b612df46301000000600f6141ac565b8111156113165760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034373a5249534b5f4150485f544f4f5f4c415247456044820152606401610939565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a90612e7c9089908990899089908990600401613edb565b602060405180830381600087803b158015612e9657600080fd5b505af1158015612eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ece9190613a08565b9695505050505050565b600061151783836135b1565b600a54604051630c054e5360e21b8152600481018390526001600160a01b0390911690633015394c90602401612783565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96129cd60025490565b6000546001600160a01b03163314610fac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610939565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080612ff885613600565b9050806020015181604001511015613027576120ad858260400151836020015161302291906141cb565b61336e565b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556129cd60025490565b6000846001600160a01b038082163b1515908616158061308057506001600160a01b038516155b80613089575080155b156130e4576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a160009250505061256f565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561312957600080fd5b505afa15801561313d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131619190613a08565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156131ae57600080fd5b505afa1580156131c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e69190613a08565b9050858210806131f557508581105b156132405760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a1600094505050505061256f565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916132a49190613e4a565b6000604051808303816000865af19150503d80600081146132e1576040519150601f19603f3d011682016040523d82523d6000602084013e6132e6565b606091505b509150915081801561331c57508051158061331c57508051602014801561331c57508080602001905181019061331c91906139a2565b965086613360577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161335793929190613f6a565b60405180910390a15b505050505050949350505050565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156133c057600080fd5b505af11580156133d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ad91906139bc565b6134028282612039565b6113965761341a816001600160a01b031660146136cd565b6134258360206136cd565b604051602001613436929190613e66565b60408051601f198184030181529082905262461bcd60e51b825261093991600401614046565b6000818152600183016020526040812054801561356f5760006134806001836141cb565b8554909150600090613494906001906141cb565b90508181146135155760008660000182815481106134c257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106134f357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061353457634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061151a565b600091505061151a565b600082600001828154811061359e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120546135f85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561151a565b50600061151a565b613650604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b15801561369557600080fd5b505afa1580156136a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190613cfb565b606060006136dc8360026141ac565b6136e7906002614174565b67ffffffffffffffff81111561370d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015613737576020820181803683370190505b509050600360fc1b8160008151811061376057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061379d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006137c18460026141ac565b6137cc906001614174565b90505b6001811115613860576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061380e57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061383257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936138598161420e565b90506137cf565b5083156115175760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610939565b805180151581146108ab57600080fd5b600082601f8301126138cf578081fd5b815167ffffffffffffffff8111156138e9576138e961426c565b6138fc601f8201601f1916602001614143565b818152846020838601011115613910578283fd5b61256f8260208301602087016141e2565b8051600381106108ab57600080fd5b600060208284031215613941578081fd5b813561151781614282565b60006020828403121561395d578081fd5b815161151781614282565b6000806000806080858703121561397d578283fd5b843561398881614282565b966020860135965060408601359560600135945092505050565b6000602082840312156139b3578081fd5b611517826138af565b6000806000606084860312156139d0578283fd5b6139d9846138af565b925060208401519150604084015190509250925092565b600060208284031215613a01578081fd5b5035919050565b600060208284031215613a19578081fd5b5051919050565b60008060408385031215613a32578182fd5b823591506020830135613a4481614282565b809150509250929050565b600080600060608486031215613a63578081fd5b833592506020840135613a7581614282565b929592945050506040919091013590565b600080600060608486031215613a9a578081fd5b505081359360208301359350604090920135919050565b60008060008060808587031215613ac6578182fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600060e0888a031215613afc578485fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215613b3f578182fd5b50508035926020909101359150565b600080600080600060a08688031215613b65578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215613b99578081fd5b81356001600160e01b031981168114611517578182fd5b600060208284031215613bc1578081fd5b815160078110611517578182fd5b600060208284031215613be0578081fd5b815167ffffffffffffffff80821115613bf7578283fd5b9083019060c08286031215613c0a578283fd5b613c1460c0614143565b825160048110613c22578485fd5b808252506020830151602082015260408301516040820152606083015182811115613c4b578485fd5b613c57878286016138bf565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613c8e578081fd5b815167ffffffffffffffff80821115613ca5578283fd5b9083019060c08286031215613cb8578283fd5b613cc260c0614143565b8251613ccd81614282565b815260208381015190820152613ce560408401613921565b6040820152606083015182811115613c4b578485fd5b6000610120808385031215613d0e578182fd5b613d1781614143565b9050613d2283613921565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215613d95578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115613dba578384fd5b818701915087601f830112613dcd578384fd5b813581811115613ddb578485fd5b886020828501011115613dec578485fd5b95989497505060200194505050565b60008060408385031215613e0d578182fd5b505080516020909101519092909150565b60008151808452613e368160208601602086016141e2565b601f01601f19169290920160200192915050565b60008251613e5c8184602087016141e2565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351613e9e8160178501602088016141e2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ecf8160288401602088016141e2565b01602801949350505050565b600060018060a01b038716825285602083015284604083015260a06060830152613f0860a0830185613e1e565b8281036080840152613f1a8185613e1e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613f5e57835183529284019291840191600101613f42565b50909695505050505050565b60008415158252836020830152606060408301526115b46060830184613e1e565b600086825260a06020830152613fa460a0830187613e1e565b8281036040840152613fb68187613e1e565b6001600160a01b039590951660608401525050608001529392505050565b6000848252836020830152606060408301526115b46060830184613e1e565b600085825284602083015283604083015260806060830152612ece6080830184613e1e565b602081016007831061402c5761402c614256565b91905290565b602081016003831061402c5761402c614256565b6000602082526115176020830184613e1e565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60006101e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516141038285018215159052565b50506101408381015190830152610160808401519083015261018080840151908301526101a080840151908301526101c092830151929091019190915290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561416c5761416c61426c565b604052919050565b6000821982111561418757614187614240565b500190565b6000826141a757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156141c6576141c6614240565b500290565b6000828210156141dd576141dd614240565b500390565b60005b838110156141fd5781810151838201526020016141e5565b838111156113165750506000910152565b60008161421d5761421d614240565b506000190190565b600060001982141561423957614239614240565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461085f57600080fdfef098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955ba26469706673582212206fbe90c5e63801ca92badc10bc72a58619457eca24171fa149899255b2d6ddb164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3FC JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x66528C3B GT PUSH2 0x215 JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x836 JUMPI DUP1 PUSH4 0xF406460C EQ PUSH2 0x849 JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x851 JUMPI DUP1 PUSH4 0xF9D7FF89 EQ PUSH2 0x862 JUMPI DUP1 PUSH4 0xFFA1AD74 EQ PUSH2 0x86A JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x7F5 JUMPI DUP1 PUSH4 0xE5D58CD8 EQ PUSH2 0x7FD JUMPI DUP1 PUSH4 0xE9960D8A EQ PUSH2 0x810 JUMPI DUP1 PUSH4 0xEB807339 EQ PUSH2 0x823 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xD52D2D06 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xD52D2D06 EQ PUSH2 0x7BC JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x7CF JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xDDBFD8EF EQ PUSH2 0x7E2 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x771 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x7A1 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x7A9 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x91D14854 GT PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0x177 JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x5F4 JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x74A JUMPI DUP1 PUSH4 0xAEC8DE39 EQ PUSH2 0x769 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x61A JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x91D14854 EQ PUSH2 0x6F0 JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x703 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x72F JUMPI DUP1 PUSH4 0x9DCE5FF0 EQ PUSH2 0x737 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x7CE5E82F GT PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x7CE5E82F EQ PUSH2 0x6BA JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x6C2 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6D7 JUMPI DUP1 PUSH4 0x90E1A2AC EQ PUSH2 0x6E8 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x66528C3B EQ PUSH2 0x68D JUMPI DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x697 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x69F JUMPI DUP1 PUSH4 0x78A433A5 EQ PUSH2 0x6A7 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0x310 JUMPI DUP1 PUSH4 0x54111315 GT PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x272 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x642 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x659 JUMPI DUP1 PUSH4 0x5E61AA63 EQ PUSH2 0x661 JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x674 JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x685 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x54111315 EQ PUSH2 0x5FC JUMPI DUP1 PUSH4 0x597EE798 EQ PUSH2 0x607 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x61A JUMPI DUP1 PUSH4 0x5A602109 EQ PUSH2 0x622 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x412F91D9 GT PUSH2 0x2DF JUMPI DUP1 PUSH4 0x412F91D9 EQ PUSH2 0x5BB JUMPI DUP1 PUSH4 0x46B937F6 EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0x4B6EB669 EQ PUSH2 0x5E1 JUMPI DUP1 PUSH4 0x4CE9D0A7 EQ PUSH2 0x5F4 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x36568ABE EQ PUSH2 0x578 JUMPI DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x58B JUMPI DUP1 PUSH4 0x3DC5F58E EQ PUSH2 0x5A8 JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x58B JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1B07B17F GT PUSH2 0x393 JUMPI DUP1 PUSH4 0x21DF0DA7 GT PUSH2 0x362 JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x527 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x552 JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x565 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x4BF JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x4D2 JUMPI DUP1 PUSH4 0x1C3456DD EQ PUSH2 0x4DA JUMPI DUP1 PUSH4 0x1FD358AA EQ PUSH2 0x4E2 JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0xB228D95 GT PUSH2 0x3CF JUMPI DUP1 PUSH4 0xB228D95 EQ PUSH2 0x47A JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x48F JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x4A2 JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x4AA JUMPI PUSH2 0x3FC JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0x56C9989 EQ PUSH2 0x429 JUMPI DUP1 PUSH4 0x6136F28 EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x9128D83 EQ PUSH2 0x45F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x414 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x3B88 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x43E PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x45A CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x8B0 JUMP JUMPDEST PUSH2 0x43E PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x488 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0xA9B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4032 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x4B2 PUSH2 0xE2C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST PUSH2 0x414 PUSH2 0x4CD CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0xEB2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0xF5F JUMP JUMPDEST PUSH2 0x43E PUSH2 0xFAE JUMP JUMPDEST PUSH2 0x4F5 PUSH2 0x4F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0xFC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x3F26 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x535 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x414 PUSH2 0x1299 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x560 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x12C9 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x573 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A86 JUMP JUMPDEST PUSH2 0x12F3 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x586 CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x131C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4046 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3AE2 JUMP JUMPDEST PUSH2 0x139A JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0x14FF JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5DC CALLDATASIZE PUSH1 0x4 PUSH2 0x3B4E JUMP JUMPDEST PUSH2 0x1520 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x5EF CALLDATASIZE PUSH1 0x4 PUSH2 0x3968 JUMP JUMPDEST PUSH2 0x15BD JUMP JUMPDEST PUSH2 0x43E PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x43E PUSH4 0x1000000 DUP2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x615 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x17D2 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1975 JUMP JUMPDEST PUSH2 0x635 PUSH2 0x630 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x19BF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x420 SWAP2 SWAP1 PUSH2 0x4090 JUMP JUMPDEST PUSH2 0x50F PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x48D PUSH2 0x66F CALLDATASIZE PUSH1 0x4 PUSH2 0x3D80 JUMP JUMPDEST PUSH2 0x1B06 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x50F JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1E02 JUMP JUMPDEST PUSH4 0x1000000 PUSH2 0x43E JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x48D PUSH2 0x1E4F JUMP JUMPDEST PUSH2 0x48D PUSH2 0x6B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B4E JUMP JUMPDEST PUSH2 0x1E61 JUMP JUMPDEST PUSH1 0x13 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x50F PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xEAD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x50F JUMP JUMPDEST PUSH2 0x43E PUSH2 0x202A JUMP JUMPDEST PUSH2 0x414 PUSH2 0x6FE CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x2039 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH16 0x2862797465733332207269736B496429 PUSH1 0x80 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x59B JUMP JUMPDEST PUSH2 0x414 PUSH2 0x2064 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x745 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B2D JUMP JUMPDEST PUSH2 0x206C JUMP JUMPDEST PUSH2 0x43E PUSH21 0x105C9958565A595B19125B99195E141C9BD91D58DD PUSH1 0x5A SHL DUP2 JUMP JUMPDEST PUSH2 0x43E PUSH1 0xF DUP2 JUMP JUMPDEST PUSH2 0x784 PUSH2 0x77F CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2087 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x420 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x20BB JUMP JUMPDEST PUSH2 0x48D PUSH2 0x7B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2108 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x7CA CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x2152 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x7DD CALLDATASIZE PUSH1 0x4 PUSH2 0x3A20 JUMP JUMPDEST PUSH2 0x2187 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x7F0 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x21AC JUMP JUMPDEST PUSH2 0x414 PUSH2 0x21C3 JUMP JUMPDEST PUSH2 0x784 PUSH2 0x80B CALLDATASIZE PUSH1 0x4 PUSH2 0x3A4F JUMP JUMPDEST PUSH2 0x21CC JUMP JUMPDEST PUSH2 0x43E PUSH2 0x81E CALLDATASIZE PUSH1 0x4 PUSH2 0x3A86 JUMP JUMPDEST PUSH2 0x2269 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x831 CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST PUSH2 0x22A0 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x844 CALLDATASIZE PUSH1 0x4 PUSH2 0x3930 JUMP JUMPDEST PUSH2 0x22C3 JUMP JUMPDEST PUSH2 0x43E PUSH2 0x2339 JUMP JUMPDEST PUSH2 0x48D PUSH2 0x85F CALLDATASIZE PUSH1 0x4 PUSH2 0x39F0 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x10 SLOAD PUSH2 0x43E JUMP JUMPDEST PUSH2 0x43E PUSH3 0x302E31 PUSH1 0xE8 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x8A8 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x8CA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 PUSH2 0x8D9 DUP7 PUSH2 0x2352 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xD ADD SLOAD GT PUSH2 0x942 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031303A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x9A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031313A4F5241434C455F414C52454144595F524553 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1413D3911151 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xA14 DUP6 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xE SLOAD PUSH2 0x237F JUMP JUMPDEST PUSH1 0x8 DUP4 ADD DUP2 SWAP1 SSTORE PUSH1 0x9 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE TIMESTAMP PUSH1 0xE DUP6 ADD SSTORE DUP4 SLOAD SWAP1 DUP5 ADD SLOAD PUSH1 0x2 DUP6 ADD SLOAD PUSH1 0x3 DUP7 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP3 ADD MSTORE SWAP1 SWAP5 POP PUSH32 0x983570285D5BC639119BFFE47FDB9708EB765C6CAC55A784FD1651FBF1360C0F SWAP1 PUSH1 0xA0 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xAB3 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xABE DUP4 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xADA SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP1 DUP3 MSTORE PUSH1 0x1 DUP4 ADD SLOAD SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x4 DUP2 ADD SLOAD PUSH1 0x80 DUP5 ADD MSTORE PUSH1 0x5 DUP2 ADD SLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x7 DUP2 ADD SLOAD PUSH1 0xE0 DUP5 ADD MSTORE PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x100 DUP5 ADD MSTORE PUSH1 0x9 DUP2 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP5 ADD MSTORE PUSH1 0xA DUP2 ADD SLOAD PUSH2 0x140 DUP5 ADD MSTORE PUSH1 0xB DUP2 ADD SLOAD PUSH2 0x160 DUP5 ADD MSTORE PUSH1 0xC DUP2 ADD SLOAD PUSH2 0x180 DUP5 ADD MSTORE PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1A0 DUP5 ADD MSTORE PUSH1 0xE ADD SLOAD PUSH2 0x1C0 DUP4 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP3 EQ PUSH2 0xBE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033313A5249534B5F49445F494E56414C4944000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x140 ADD MLOAD GT PUSH2 0xC4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033323A4F5241434C455F524553504F4E53455F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5353494E47 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC62 SWAP1 DUP7 PUSH2 0x24C4 JUMP JUMPDEST PUSH2 0xCBC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033333A504F4C4943595F464F525F5249534B5F554E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x25A727ABA7 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xCD4 SWAP1 DUP7 PUSH2 0x24DC JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xCEA DUP3 PUSH2 0x180 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x206C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xD08 DUP8 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x24E8 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xF3B6FA541C2FB440A7135DF726575DA0735A6968FA3804A462C63690D4330DBD SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 ISZERO PUSH2 0xDC9 JUMPI DUP2 PUSH2 0xD5E DUP9 DUP4 DUP4 PUSH2 0x2577 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD7B DUP10 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x25E9 JUMP JUMPDEST SWAP1 POP PUSH2 0xD87 DUP10 DUP3 PUSH2 0x2620 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP11 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0xE85C538AF9D154780BEFA06F96E8C8D5FF531C715D3735732CA365E541B15EC8 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH2 0xDDD JUMP JUMPDEST PUSH2 0xDD3 DUP8 DUP3 PUSH2 0x26B4 JUMP JUMPDEST PUSH2 0xDDD DUP8 DUP3 PUSH2 0x271E JUMP JUMPDEST PUSH2 0xDE6 DUP8 PUSH2 0x2756 JUMP JUMPDEST PUSH2 0xDEF DUP8 PUSH2 0x27B8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP8 DUP2 MSTORE PUSH32 0x88873A4C738A1C855A15847C7DAF779056BD64E3E5DCE2A378085A56B1E65698 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEAD SWAP2 SWAP1 PUSH2 0x3BB0 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xECC DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0xED5 DUP4 PUSH2 0x240A JUMP JUMPDEST POP PUSH2 0xEDF DUP4 PUSH2 0x27E9 JUMP JUMPDEST SWAP2 POP DUP2 ISZERO PUSH2 0xF59 JUMPI PUSH1 0x0 PUSH2 0xEF2 DUP5 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xEFF DUP6 PUSH2 0x2868 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x40 DUP1 DUP8 ADD MLOAD DUP2 MLOAD DUP12 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND SWAP4 DUP6 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP4 ADD MSTORE PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH32 0x740860D47F9571AC7C5D7D56A42D09A9D575A3D5A025F85A409366D172D4B3D1 SWAP1 PUSH1 0x80 ADD PUSH2 0xA8B JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF74 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFA4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x29A3 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xFBD PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0xFDA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD SLOAD PUSH2 0x140 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xB DUP4 ADD SLOAD PUSH2 0x160 DUP4 ADD MSTORE PUSH1 0xC DUP4 ADD SLOAD PUSH2 0x180 DUP4 ADD MSTORE PUSH1 0xD DUP4 ADD SLOAD PUSH2 0x1A0 DUP4 ADD MSTORE PUSH1 0xE SWAP1 SWAP3 ADD SLOAD PUSH2 0x1C0 DUP3 ADD MSTORE SWAP1 PUSH2 0x10F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3033303A4F5241434C455F524553504F4E53455F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5353494E47 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x110A SWAP1 PUSH2 0x29E0 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x1162 JUMPI PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x2F322F1B61D2FF4C9E3D88448830423A8A4A968A916BB6C838F5EB10CED570E3 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP2 POP PUSH2 0x1292 JUMP JUMPDEST DUP5 PUSH2 0x116F JUMPI DUP1 SWAP5 POP PUSH2 0x117C JUMP JUMPDEST PUSH2 0x1179 DUP6 DUP3 PUSH2 0x29EA JUMP JUMPDEST SWAP5 POP JUMPDEST DUP5 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11A3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11CC JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP4 POP PUSH1 0x0 PUSH2 0x11DC PUSH1 0x1 DUP4 PUSH2 0x41CB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x1254 JUMPI PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x120A SWAP1 PUSH2 0x1205 DUP5 DUP7 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x2A01 JUMP JUMPDEST SWAP1 POP PUSH2 0x1215 DUP2 PUSH2 0xA9B JUMP JUMPDEST DUP1 DUP8 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1236 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE POP DUP1 PUSH2 0x124C DUP2 PUSH2 0x4225 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11E1 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x2F322F1B61D2FF4C9E3D88448830423A8A4A968A916BB6C838F5EB10CED570E3 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x12C3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x12E4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x12EE DUP4 DUP4 PUSH2 0x2A0D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x130B DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x1316 DUP5 DUP5 DUP5 PUSH2 0x2A93 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x138C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x1396 DUP3 DUP3 PUSH2 0x2AD2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x13B4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x13C0 DUP7 DUP7 DUP7 DUP7 PUSH2 0x2B39 JUMP JUMPDEST PUSH2 0x13CB DUP10 DUP10 DUP10 PUSH2 0x2269 JUMP JUMPDEST PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD SWAP1 SWAP2 SSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP2 SWAP1 SSTORE PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD SWAP2 SWAP4 POP SWAP1 ISZERO PUSH2 0x1469 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030313A5249534B5F414C52454144595F4558495354 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x53 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP3 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP11 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP10 SWAP1 SSTORE PUSH1 0x3 DUP2 ADD DUP9 SWAP1 SSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 SSTORE PUSH1 0x5 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD DUP6 SWAP1 SSTORE PUSH1 0x7 DUP2 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0xD DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x817B0E272A7B333532CB6439A34E3EC00922E22926032442220A69868F02D8DC SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1517 SWAP1 DUP4 PUSH2 0x2A01 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x152C DUP6 DUP5 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x153A PUSH4 0x1000000 DUP5 PUSH2 0x41AC JUMP JUMPDEST LT PUSH2 0x1547 JUMPI POP PUSH1 0x0 PUSH2 0x15B4 JUMP JUMPDEST PUSH2 0x1551 DUP5 DUP5 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x155F PUSH4 0x1000000 DUP5 PUSH2 0x41AC JUMP JUMPDEST GT PUSH2 0x156B JUMPI POP DUP5 PUSH2 0x15B4 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH2 0x157C DUP5 PUSH4 0x1000000 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x1586 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST SWAP1 POP PUSH2 0x1592 DUP6 DUP8 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x159C DUP3 DUP9 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x15A6 SWAP1 DUP10 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x15B0 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x15D7 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030343A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH2 0x168C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030353A504F4C4943595F484F4C4445525F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD DUP4 MSTORE PUSH1 0x0 DUP3 MSTORE DUP3 MLOAD DUP1 DUP3 ADD DUP9 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP3 SUB SWAP1 SWAP3 ADD DUP3 MSTORE DUP4 ADD SWAP1 SWAP3 MSTORE SWAP1 PUSH2 0x16C0 DUP10 DUP10 DUP10 DUP6 DUP6 PUSH2 0x2E43 JUMP JUMPDEST PUSH1 0x13 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x66DE8FFDA797E3DE9C05E8FC57B3BF0EC28A930D40B0D285D93C06501CF6A090 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP6 POP PUSH32 0xB6B5FB82AD406A44DC88433D286D201520C295308F087A476B845F907D3BD603 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x1753 DUP7 PUSH2 0x27E9 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x17C5 JUMPI PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1773 SWAP1 DUP8 PUSH2 0x2ED8 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP13 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x740860D47F9571AC7C5D7D56A42D09A9D575A3D5A025F85A409366D172D4B3D1 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x17EA DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 PUSH1 0x0 PUSH2 0x17F9 DUP6 PUSH2 0x2352 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xD ADD SLOAD GT PUSH2 0x185D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031323A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x9 DUP2 ADD SLOAD PUSH1 0xFF AND PUSH2 0x18C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031333A4F5241434C455F524551554553545F4E4F54 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x17D193D55391 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3031343A4558495354494E475F43414C4C4241434B00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x191F DUP2 PUSH1 0x8 ADD SLOAD PUSH2 0x2EE4 JUMP JUMPDEST PUSH1 0x9 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE TIMESTAMP PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x8 DUP2 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0xDEEAC61C3AD18E6EFCA12EAC38425C944B5BBCA5B482E39B549671E05544C3DC SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x198A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC JUMP JUMPDEST PUSH2 0x1A46 PUSH1 0x40 MLOAD DUP1 PUSH2 0x1E0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH2 0x1E0 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x120 DUP3 ADD MSTORE PUSH1 0xA DUP3 ADD SLOAD PUSH2 0x140 DUP3 ADD MSTORE PUSH1 0xB DUP3 ADD SLOAD PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0xC DUP3 ADD SLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0xD DUP3 ADD SLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH1 0xE SWAP1 SWAP2 ADD SLOAD PUSH2 0x1C0 DUP3 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x1B17 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1B77 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030333A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP1 PUSH2 0x1B88 DUP6 DUP8 ADD DUP8 PUSH2 0x3AB1 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x0 PUSH2 0x1B9B DUP9 PUSH2 0x2352 JUMP JUMPDEST SWAP1 POP PUSH2 0x1BA8 DUP6 DUP6 DUP6 PUSH2 0x2269 JUMP JUMPDEST DUP2 EQ PUSH2 0x1BF6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032303A5249534B5F49445F4D49534D415443480000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1C55 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032313A5249534B5F554E444546494E454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST DUP10 DUP2 PUSH1 0x8 ADD SLOAD EQ PUSH2 0x1CB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032323A524551554553545F49445F4D49534D415443 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0xFB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA DUP2 ADD SLOAD ISZERO PUSH2 0x1D04 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032333A4558495354494E475F43414C4C4241434B00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x1D13 PUSH4 0x1000000 PUSH1 0x0 PUSH2 0x41AC JUMP JUMPDEST DUP4 LT ISZERO DUP1 ISZERO PUSH2 0x1D2F JUMPI POP PUSH2 0x1D2C PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP4 LT JUMPDEST PUSH2 0x1D7B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3032343A414141595F494E56414C4944000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xB DUP2 ADD DUP4 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x7 DUP5 ADD SLOAD PUSH2 0x1DA3 SWAP4 SWAP3 SWAP2 SWAP1 DUP8 PUSH2 0x1520 JUMP JUMPDEST PUSH1 0xC DUP3 ADD SSTORE TIMESTAMP PUSH1 0xA DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0xE DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP12 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x357E32CFFC9B470FE746DFC76A9DABC81E0441109F95820FF3DAEABC21CA3E31 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1E17 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E47 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x2F15 JUMP JUMPDEST PUSH2 0x1E57 PUSH2 0x2F3F JUMP JUMPDEST PUSH2 0xFAC PUSH1 0x0 PUSH2 0x2F99 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x1E79 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x1E85 DUP6 DUP6 DUP6 DUP6 PUSH2 0x2B39 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x11 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0xD DUP2 ADD SLOAD PUSH2 0x1EE4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030323A5249534B5F554E4B4E4F574E000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1EFB SWAP1 PUSH2 0x29E0 JUMP JUMPDEST ISZERO PUSH2 0x1F60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3030333A5249534B5F574954485F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x5F4E4F545F41444A55535441424C45 PUSH1 0x88 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x6 DUP5 ADD SLOAD PUSH1 0x7 DUP6 ADD SLOAD PUSH1 0x40 DUP1 MLOAD SWAP6 DUP7 MSTORE PUSH1 0x20 DUP7 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP5 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP5 ADD MSTORE PUSH1 0x80 DUP4 ADD MSTORE MLOAD PUSH32 0x5EA522F91EA45156F00D5390CFAF51DC82F9B163AE492C8D6033FCB3AF773F58 SWAP2 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 LOG1 PUSH1 0x4 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x5 DUP2 ADD DUP6 SWAP1 SSTORE PUSH1 0x6 DUP2 ADD DUP5 SWAP1 SSTORE PUSH1 0x7 DUP2 ADD DUP4 SWAP1 SSTORE DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP9 SWAP1 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x2EF22FCF430ACDB3B80E5D30364FCD07242C6081010C6CC9AA2FE4F4105F8127 SWAP1 PUSH1 0xA0 ADD PUSH2 0xE1B JUMP JUMPDEST PUSH2 0xFBD PUSH1 0x2 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x129E JUMP JUMPDEST PUSH1 0x0 PUSH4 0x1000000 PUSH2 0x207D DUP4 DUP6 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x1517 SWAP2 SWAP1 PUSH2 0x418C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x20A4 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x20AD DUP6 PUSH2 0x2FE9 JUMP JUMPDEST SWAP2 SWAP8 SWAP1 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x20D0 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2100 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH2 0xFAC PUSH2 0x302F JUMP JUMPDEST PUSH2 0x211D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x2921 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x214D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x939 SWAP1 PUSH2 0x4059 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x13 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2175 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x21A2 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH2 0x12EE DUP4 DUP4 PUSH2 0x2AD2 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x8A8 SWAP1 PUSH2 0x29E0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x129E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4298 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH2 0x21E9 DUP2 PUSH2 0x2348 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21F4 DUP9 PUSH2 0x2868 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x224C JUMPI PUSH1 0xF SLOAD DUP2 MLOAD PUSH1 0x0 SWAP2 PUSH2 0x2233 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP11 SWAP1 DUP11 PUSH2 0x3059 JUMP JUMPDEST SWAP1 POP DUP1 PUSH2 0x224A JUMPI SWAP5 POP PUSH1 0x0 SWAP4 POP DUP6 SWAP3 POP PUSH2 0x225F SWAP1 POP JUMP JUMPDEST POP JUMPDEST PUSH2 0x2256 DUP9 DUP8 PUSH2 0x336E JUMP JUMPDEST SWAP2 SWAP7 POP SWAP5 POP SWAP3 POP POP JUMPDEST POP SWAP4 POP SWAP4 POP SWAP4 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD SWAP6 SWAP1 SWAP6 MSTORE DUP1 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP1 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP1 MLOAD DUP1 DUP5 SUB SWAP1 SWAP3 ADD DUP3 MSTORE PUSH1 0x80 SWAP1 SWAP3 ADD SWAP1 SWAP2 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x10 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2175 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x22CB PUSH2 0x2F3F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2330 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x85F DUP2 PUSH2 0x2F99 JUMP JUMPDEST PUSH2 0xFBD PUSH1 0x5 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST PUSH2 0x85F DUP2 CALLER PUSH2 0x33F8 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x235E DUP4 PUSH2 0x240A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x60 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x2378 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x16499F91 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2C933F22 SWAP1 PUSH2 0x23B8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x3F8B JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15B4 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH2 0x2444 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x249C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3BCF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1517 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x345C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFAE43D15 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFAE43D15 SWAP1 PUSH2 0x251D SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x3FD4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2537 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x254B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x256F SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x25CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x781D7846 SWAP1 PUSH2 0x23B8 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x3FF3 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2685 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26A9 SWAP2 SWAP1 PUSH2 0x3DFB JUMP JUMPDEST SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2702 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2716 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0x26E8 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C882F3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC6441798 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x279D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x27B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE71E783 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x39C79E0C SWAP1 PUSH1 0x24 ADD PUSH2 0x2783 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2830 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2844 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x39A2 JUMP JUMPDEST PUSH2 0x28A1 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7D JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x296B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x297F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x394C JUMP JUMPDEST PUSH32 0xB79D34516B55D664B61192AA41FBC0625B132FB7129BD3B3A31F46D1BEFA7061 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8A8 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 GT ISZERO PUSH2 0x29FA JUMPI DUP2 PUSH2 0x1517 JUMP JUMPDEST POP SWAP1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x3579 JUMP JUMPDEST PUSH2 0x2A17 DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST PUSH2 0x1396 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x2A4F CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD PUSH2 0x25B2 JUMP JUMPDEST PUSH2 0x2ADC DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST ISZERO PUSH2 0x1396 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0xC PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH4 0x1000000 DUP5 GT ISZERO PUSH2 0x2B99 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034303A5249534B5F545249474745525F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST DUP3 DUP5 GT PUSH2 0x2C00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034313A5249534B5F545249474745525F4E4F545F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x105491D15497D512105397D1561255 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2C0F PUSH1 0x5 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0x2C68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034323A5249534B5F455849545F544F4F5F4C415247 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2C77 PUSH1 0x2 PUSH4 0x1000000 PUSH2 0x418C JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x2CC6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034333A5249534B5F5453495F544F4F5F534D414C4C PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH4 0x1000000 DUP3 GT ISZERO PUSH2 0x2D1A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034343A5249534B5F5453495F544F4F5F4C41524745 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH4 0x1000000 PUSH2 0x2D29 DUP5 DUP5 PUSH2 0x4174 JUMP JUMPDEST GT ISZERO PUSH2 0x2D89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034353A5249534B5F5453495F455849545F53554D5F PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x544F4F5F4C41524745 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x2DE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034363A5249534B5F4150485F5A45524F5F494E5641 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x131251 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x939 JUMP JUMPDEST PUSH2 0x2DF4 PUSH4 0x1000000 PUSH1 0xF PUSH2 0x41AC JUMP JUMPDEST DUP2 GT ISZERO PUSH2 0x1316 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4159492D3034373A5249534B5F4150485F544F4F5F4C41524745 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x2E7C SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x3EDB JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ECE SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1517 DUP4 DUP4 PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xC054E53 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3015394C SWAP1 PUSH1 0x24 ADD PUSH2 0x2783 JUMP JUMPDEST PUSH32 0xCFF3B7B8B07D4D8F74BF41F05737717140D5916781B9DFF86EA0B996F2FDB9F9 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xFAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2FF8 DUP6 PUSH2 0x3600 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x3027 JUMPI PUSH2 0x20AD DUP6 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x3022 SWAP2 SWAP1 PUSH2 0x41CB JUMP JUMPDEST PUSH2 0x336E JUMP JUMPDEST POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH32 0x38954B1D025D5A8FFCF9B42D431BE2745CDCD05D32B0E5AD33EE2DB025EF5B55 PUSH2 0x29CD PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x3080 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0x3089 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x30E4 JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x256F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3129 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x313D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3161 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31E6 SWAP2 SWAP1 PUSH2 0x3A08 JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x31F5 JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x3240 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x256F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP11 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP14 AND SWAP2 PUSH2 0x32A4 SWAP2 SWAP1 PUSH2 0x3E4A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x32E1 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x32E6 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x331C JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x331C JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x331C JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x331C SWAP2 SWAP1 PUSH2 0x39A2 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x3360 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x3357 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F6A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x33C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20AD SWAP2 SWAP1 PUSH2 0x39BC JUMP JUMPDEST PUSH2 0x3402 DUP3 DUP3 PUSH2 0x2039 JUMP JUMPDEST PUSH2 0x1396 JUMPI PUSH2 0x341A DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x36CD JUMP JUMPDEST PUSH2 0x3425 DUP4 PUSH1 0x20 PUSH2 0x36CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x3436 SWAP3 SWAP2 SWAP1 PUSH2 0x3E66 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x939 SWAP2 PUSH1 0x4 ADD PUSH2 0x4046 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x356F JUMPI PUSH1 0x0 PUSH2 0x3480 PUSH1 0x1 DUP4 PUSH2 0x41CB JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x3494 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x41CB JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x3515 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x34C2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x34F3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x3534 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x151A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x151A JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x359E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x35F8 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x151A JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x151A JUMP JUMPDEST PUSH2 0x3650 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3695 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x36A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8A8 SWAP2 SWAP1 PUSH2 0x3CFB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x36DC DUP4 PUSH1 0x2 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x36E7 SWAP1 PUSH1 0x2 PUSH2 0x4174 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x370D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3737 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x3760 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x379D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x37C1 DUP5 PUSH1 0x2 PUSH2 0x41AC JUMP JUMPDEST PUSH2 0x37CC SWAP1 PUSH1 0x1 PUSH2 0x4174 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x3860 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x380E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x3832 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x3859 DUP2 PUSH2 0x420E JUMP JUMPDEST SWAP1 POP PUSH2 0x37CF JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x1517 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x939 JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x8AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x38CF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38E9 JUMPI PUSH2 0x38E9 PUSH2 0x426C JUMP JUMPDEST PUSH2 0x38FC PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x4143 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3910 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x256F DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x41E2 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x8AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3941 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1517 DUP2 PUSH2 0x4282 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x395D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1517 DUP2 PUSH2 0x4282 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x397D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3988 DUP2 PUSH2 0x4282 JUMP JUMPDEST SWAP7 PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP7 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP6 PUSH1 0x60 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39B3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1517 DUP3 PUSH2 0x38AF JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x39D0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x39D9 DUP5 PUSH2 0x38AF JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A01 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A19 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3A32 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x3A44 DUP2 PUSH2 0x4282 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A63 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x3A75 DUP2 PUSH2 0x4282 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3A9A JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3AC6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP3 CALLDATALOAD SWAP5 PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xE0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x3AFC JUMPI DUP5 DUP6 REVERT JUMPDEST POP POP DUP6 CALLDATALOAD SWAP8 PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD SWAP7 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP7 POP PUSH1 0x80 DUP2 ADD CALLDATALOAD SWAP6 POP PUSH1 0xA0 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0xC0 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3B3F JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3B65 JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP4 CALLDATALOAD SWAP6 PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B99 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1517 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BC1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1517 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3BE0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BF7 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3C0A JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3C14 PUSH1 0xC0 PUSH2 0x4143 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x3C22 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C4B JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3C57 DUP8 DUP3 DUP7 ADD PUSH2 0x38BF JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C8E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3CA5 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3CB8 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3CC2 PUSH1 0xC0 PUSH2 0x4143 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x3CCD DUP2 PUSH2 0x4282 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x3CE5 PUSH1 0x40 DUP5 ADD PUSH2 0x3921 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3C4B JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D0E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x3D17 DUP2 PUSH2 0x4143 JUMP JUMPDEST SWAP1 POP PUSH2 0x3D22 DUP4 PUSH2 0x3921 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3D95 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3DBA JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3DCD JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3DDB JUMPI DUP5 DUP6 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3DEC JUMPI DUP5 DUP6 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3E0D JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x3E36 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x41E2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3E5C DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x41E2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x3E9E DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x41E2 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x3ECF DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x41E2 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3F08 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x3E1E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x3F1A DUP2 DUP6 PUSH2 0x3E1E JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3F5E JUMPI DUP4 MLOAD DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3F42 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x15B4 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3FA4 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x3E1E JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3FB6 DUP2 DUP8 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x15B4 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x2ECE PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x402C JUMPI PUSH2 0x402C PUSH2 0x4256 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x402C JUMPI PUSH2 0x402C PUSH2 0x4256 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1517 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x3E1E JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E0 DUP3 ADD SWAP1 POP DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD PUSH2 0x4103 DUP3 DUP6 ADD DUP3 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST POP POP PUSH2 0x140 DUP4 DUP2 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x160 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x180 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x1A0 DUP1 DUP5 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH2 0x1C0 SWAP3 DUP4 ADD MLOAD SWAP3 SWAP1 SWAP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x416C JUMPI PUSH2 0x416C PUSH2 0x426C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4187 JUMPI PUSH2 0x4187 PUSH2 0x4240 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x41A7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x41C6 JUMPI PUSH2 0x41C6 PUSH2 0x4240 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x41DD JUMPI PUSH2 0x41DD PUSH2 0x4240 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x41FD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x41E5 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1316 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x421D JUMPI PUSH2 0x421D PUSH2 0x4240 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4239 JUMPI PUSH2 0x4239 PUSH2 0x4240 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x85F JUMPI PUSH1 0x0 DUP1 REVERT INVALID CREATE SWAP9 0xB7 PUSH21 0x2E998F92A3C749F35E64EF555EDCECEC4B78A00C53 0x2A 0x4F CODESIZE MSIZE ISZERO SWAP6 JUMPDEST LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH16 0xBE90C5E63801CA92BADC10BC72A58619 GASLIMIT PUSH31 0xCA24171FA149899255B2D6DDB164736F6C6343000802003300000000000000 ","sourceMap":"562:19530:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2606:202:37;;;;;;:::i;:::-;;:::i;:::-;;;15367:14:103;;15360:22;15342:41;;15330:2;15315:18;2606:202:37;;;;;;;;868:59:67;;-1:-1:-1;;;;;;;;;;;868:59:67;;;;;16638:25:103;;;16626:2;16611:18;868:59:67;16593:76:103;10048:952:67;;;;;;:::i;:::-;;:::i;804:57::-;;-1:-1:-1;;;804:57:67;;14198:1430;;;;;;:::i;:::-;;:::i;:::-;;2394:100:12;2477:14;;;;2394:100;;;;;;:::i;2220:83::-;2286:14;;2220:83;;2500:136;;;:::i;:::-;;;;;;;:::i;7831:655:67:-;;;;;;:::i;:::-;;:::i;3279:78:12:-;;;:::i;1080:65:67:-;;;:::i;13141:1051::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1838:88:18:-;1913:6;;-1:-1:-1;;;;;1913:6:18;1838:88;;;-1:-1:-1;;;;;13205:32:103;;;13187:51;;13175:2;13160:18;1838:88:18;13142:102:103;4391:129:37;;;;;;:::i;:::-;4465:7;4491:12;;;:6;:12;;;;;:22;;;;4391:129;2973:120:12;;;:::i;4816:145:37:-;;;;;;:::i;:::-;;:::i;9758:284:67:-;;;;;;:::i;:::-;;:::i;5925:214:37:-;;;;;;:::i;:::-;;:::i;7872:128:18:-;7984:9;;;;;;;;;-1:-1:-1;7984:9:18;;7872:128;;;;;;;:::i;4431:1042:67:-;;;;;;:::i;:::-;;:::i;17774:167::-;;;;;;:::i;:::-;;:::i;15878:948::-;;;;;;:::i;:::-;;:::i;6652:1173::-;;;;;;:::i;:::-;;:::i;994:36::-;;1029:1;994:36;;934:53;;982:5;934:53;;11010:667;;;;;;:::i;:::-;;:::i;3689:77:12:-;;;:::i;17251:99:67:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3101:86:12:-;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;2309:79;2373:12;;2309:79;;11687:1448:67;;;;;;:::i;:::-;;:::i;1932:98:18:-;2012:11;;-1:-1:-1;;;;;2012:11:18;1932:98;;3195:78:12;;;:::i;16832:122:67:-;982:5;16832:122;;2036:98:18;2116:11;;2036:98;;1831:101:41;;;:::i;5479:924:67:-;;;;;;:::i;:::-;;:::i;17356:116::-;17445:13;:20;17356:116;;2642:77:12;;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;1222:72:67;;;:::i;2895:145:37:-;;;;;;:::i;:::-;;:::i;17947:141:67:-;18056:25;;;;;;;;;;;;-1:-1:-1;;;18056:25:67;;;;17947:141;;2851:116:12;;;:::i;15634:238:67:-;;;;;;:::i;:::-;;:::i;699:54::-;;-1:-1:-1;;;699:54:67;;1036:37;;1071:2;1036:37;;8492:229;;;;;;:::i;:::-;;:::i;:::-;;;;16379:14:103;;16372:22;16354:41;;16426:2;16411:18;;16404:34;;;;16454:18;;;16447:34;16342:2;16327:18;8492:229:67;16309:178:103;3363:77:12;;;:::i;2131:81::-;;;;;;:::i;:::-;;:::i;17478:144:67:-;;;;;;:::i;:::-;;:::i;5241:147:37:-;;;;;;:::i;:::-;;:::i;17628:140:67:-;;;;;;:::i;:::-;;:::i;2727:118:12:-;;;:::i;9146:606:67:-;;;;;;:::i;:::-;;:::i;6409:236::-;;;;;;:::i;:::-;;:::i;17151:95::-;;;;;;:::i;:::-;;:::i;2081:198:41:-;;;;;;:::i;:::-;;:::i;1151:65:67:-;;;:::i;8006:81:18:-;;;;;;:::i;:::-;2081:198:41;;17071:75:67;17128:8;:15;17071:75;;759:39;;-1:-1:-1;;;759:39:67;;2606:202:37;2691:4;-1:-1:-1;;;;;;2714:47:37;;-1:-1:-1;;;2714:47:37;;:87;;-1:-1:-1;;;;;;;;;;937:40:62;;;2765:36:37;2707:94;;2606:202;;;;:::o;10048:952:67:-;10155:17;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;10188:17:67::1;10208:6;:29;10215:21;10226:9;10215:10;:21::i;:::-;10208:29;;;;;;;;;;;10188:49;;10272:1;10255:4;:14;;;:18;10247:59;;;::::0;-1:-1:-1;;;10247:59:67;;23995:2:103;10247:59:67::1;::::0;::::1;23977:21:103::0;24034:2;24014:18;;;24007:30;24073;24053:18;;;24046:58;24121:18;;10247:59:67::1;;;;;;;;;10324:15;::::0;::::1;::::0;:20;10316:71:::1;;;::::0;-1:-1:-1;;;10316:71:67;;26654:2:103;10316:71:67::1;::::0;::::1;26636:21:103::0;26693:2;26673:18;;;26666:30;26732:34;26712:18;;;26705:62;-1:-1:-1;;;26783:18:103;;;26776:36;26829:19;;10316:71:67::1;26626:228:103::0;10316:71:67::1;10447:14;::::0;::::1;::::0;10475:10:::1;::::0;::::1;::::0;10499:11:::1;::::0;::::1;::::0;10423:97:::1;::::0;;::::1;::::0;::::1;17298:25:103::0;;;;17339:18;;17332:34;;;;17382:18;;;17375:34;10398:22:67::1;::::0;17271:18:103;;10423:97:67::1;;;;;;;;;;;;10398:122;;10543:138;10569:9;10597;10543:138;;;;;;;;;;;;;-1:-1:-1::0;;;10543:138:67::1;;::::0;10658:9:::1;;10543:8;:138::i;:::-;10692:14;::::0;::::1;:26:::0;;;10728:21:::1;::::0;::::1;:28:::0;;-1:-1:-1;;10728:28:67::1;10752:4;10728:28:::0;;::::1;::::0;;;10783:15:::1;10766:14;::::0;::::1;:32:::0;10905:7;;10927:14;;::::1;::::0;10956:10:::1;::::0;::::1;::::0;10981:11:::1;::::0;::::1;::::0;10838:155:::1;::::0;;20340:25:103;;;20396:2;20381:18;;20374:34;;;;20424:18;;20417:34;;;;20482:2;20467:18;;20460:34;20525:3;20510:19;;20503:35;10692:26:67;;-1:-1:-1;10838:155:67::1;::::0;20327:3:103;20312:19;10838:155:67::1;;;;;;;;2531:1:37;;10048:952:67::0;;;;:::o;14198:1430::-;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;14299:38:67::1;14340:25;14356:8;14340:15;:25::i;:::-;14299:66;;14375:14;14403:11;:16;;;14392:39;;;;;;;;;;;;:::i;:::-;14441:16;14460:14:::0;;;:6:::1;:14;::::0;;;;;;;;14441:33;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;::::1;;;;::::0;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;;::::0;;;;;14375:56;;-1:-1:-1;14441:33:67;14493:17;::::1;14485:59;;;::::0;-1:-1:-1;;;14485:59:67;;30042:2:103;14485:59:67::1;::::0;::::1;30024:21:103::0;30081:2;30061:18;;;30054:30;30120:31;30100:18;;;30093:59;30169:18;;14485:59:67::1;30014:179:103::0;14485:59:67::1;14580:1;14562:4;:15;;;:19;14554:69;;;::::0;-1:-1:-1;;;14554:69:67;;26248:2:103;14554:69:67::1;::::0;::::1;26230:21:103::0;26287:2;26267:18;;;26260:30;26326:34;26306:18;;;26299:62;-1:-1:-1;;;26377:18:103;;;26370:35;26422:19;;14554:69:67::1;26220:227:103::0;14554:69:67::1;14664:17;::::0;;;:9:::1;:17;::::0;;;;14641:51:::1;::::0;14683:8;14641:22:::1;:51::i;:::-;14633:101;;;::::0;-1:-1:-1;;;14633:101:67;;33453:2:103;14633:101:67::1;::::0;::::1;33435:21:103::0;33492:2;33472:18;;;33465:30;33531:34;33511:18;;;33504:62;-1:-1:-1;;;33582:18:103;;;33575:35;33627:19;;14633:101:67::1;33425:227:103::0;14633:101:67::1;14766:17;::::0;;;:9:::1;:17;::::0;;;;14745:49:::1;::::0;14785:8;14745:20:::1;:49::i;:::-;;14806:19;14828:94;14857:4;:21;;;14893:11;:28;;;14828:15;:94::i;:::-;14806:116;;14941:15;14959:36;14969:8;14979:11;14959:36;;;;;;;;;;;::::0;:9:::1;:36::i;:::-;15010:51;::::0;;17298:25:103;;;17354:2;17339:18;;17332:34;;;17382:18;;;17375:34;;;14941:54:67;;-1:-1:-1;15010:51:67::1;::::0;17286:2:103;17271:18;15010:51:67::1;;;;;;;15076:15:::0;;15072:448:::1;;15130:11:::0;15155:46:::1;15169:8:::0;15179:7;15130:11;15155:13:::1;:46::i;:::-;15216:16;15235:47;15246:8;15256:7;15265:12;15235:47;;;;;;;;;;;::::0;:10:::1;:47::i;:::-;15216:66;;15296:34;15311:8;15321;15296:14;:34::i;:::-;-1:-1:-1::0;;15350:44:67::1;::::0;;18624:25:103;;;18680:2;18665:18;;18658:34;;;15350:44:67::1;::::0;18597:18:103;15350:44:67::1;;;;;;;15072:448;;;;;15433:32;15447:8;15457:7;15433:13;:32::i;:::-;15479:30;15491:8;15501:7;15479:11;:30::i;:::-;15530:17;15538:8;15530:7;:17::i;:::-;15557:16;15564:8;15557:6;:16::i;:::-;15589:32;::::0;16638:25:103;;;15589:32:67::1;::::0;16626:2:103;16611:18;15589:32:67::1;;;;;;;;2531:1:37;;;;;14198:1430:67::0;;:::o;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;16638:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;16611:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2578:55;;2500:136;:::o;7831:655:67:-;7950:12;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;8033:26:67::1;8049:9;8033:15;:26::i;:::-;;8079:22;8091:9;8079:11;:22::i;:::-;8069:32;;8116:7;8112:368;;;8139:38;8180:26;8196:9;8180:15;:26::i;:::-;8139:67;;8220:32;8255:23;8268:9;8255:12;:23::i;:::-;8363:14:::0;;8396:25:::1;::::0;;::::1;::::0;8440:28:::1;::::0;;::::1;::::0;8297:172;;16905:25:103;;;-1:-1:-1;;;;;16966:32:103;;;16946:18;;;16939:60;;;;17015:18;;17008:34;17073:2;17058:18;;17051:34;8220:58:67;;-1:-1:-1;8297:172:67::1;::::0;16892:3:103;16877:19;8297:172:67::1;16859:232:103::0;8112:368:67::1;7831:655:::0;;;;:::o;3279:78:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3339:15:::1;:13;:15::i;:::-;3279:78::o:0;1080:65:67:-;1119:26;982:5;1119:2;:26;:::i;:::-;1080:65;:::o;13141:1051::-;13272:35;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;13323::67::1;13342:14:::0;;;:6:::1;:14;::::0;;;;;;;;13323:33;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;::::1;;;;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;;;;;13366:69:::1;;;::::0;-1:-1:-1;;;13366:69:67;;25485:2:103;13366:69:67::1;::::0;::::1;25467:21:103::0;25524:2;25504:18;;;25497:30;25563:34;25543:18;;;25536:62;-1:-1:-1;;;25614:18:103;;;25607:35;25659:19;;13366:69:67::1;25457:227:103::0;13366:69:67::1;13446:16;13486:17:::0;;;:9:::1;:17;::::0;;;;13465:39:::1;::::0;:20:::1;:39::i;:::-;13446:58:::0;-1:-1:-1;13518:13:67;13514:117:::1;;13552:31;::::0;;18624:25:103;;;13581:1:67::1;18680:2:103::0;18665:18;;18658:34;13552:31:67::1;::::0;18597:18:103;13552:31:67::1;;;;;;;-1:-1:-1::0;;13604:16:67::1;::::0;;13618:1:::1;13604:16:::0;;::::1;::::0;::::1;::::0;;;;-1:-1:-1;13597:23:67::1;;13514:117;13645:14:::0;13641:117:::1;;13675:8;13663:20;;13641:117;;;13731:24;13735:9;13746:8;13731:3;:24::i;:::-;13719:36;;13641:117;13802:9;13788:24;;;;;;-1:-1:-1::0;;;13788:24:67::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;13788:24:67::1;-1:-1:-1::0;13768:44:67;-1:-1:-1;13822:18:67::1;13843:12;13854:1;13843:8:::0;:12:::1;:::i;:::-;13822:33;;13871:9;13866:265;13890:9;13886:1;:13;13866:265;;;13968:16;14004:17:::0;;;:9:::1;:17;::::0;;;;13987:51:::1;::::0;14023:14:::1;14036:1:::0;14023:10;:14:::1;:::i;:::-;13987:16;:51::i;:::-;13968:70;;14052:23;14066:8;14052:13;:23::i;:::-;14112:8;14089:17;14107:1;14089:20;;;;;;-1:-1:-1::0;;;14089:20:67::1;;;;;;;;;;::::0;;::::1;::::0;;;;;:31;-1:-1:-1;13901:3:67;::::1;::::0;::::1;:::i;:::-;;;;13866:265;;;-1:-1:-1::0;14146:39:67::1;::::0;;18624:25:103;;;18680:2;18665:18;;18658:34;;;14146:39:67::1;::::0;18597:18:103;14146:39:67::1;;;;;;;2531:1:37;;;;13141:1051:67::0;;;;;:::o;2973:120:12:-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;4816:145:37:-;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4929:25:::1;4940:4;4946:7;4929:10;:25::i;:::-;4816:145:::0;;;:::o;9758:284:67:-;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;9959:76:67::1;9984:9;9995:21;10018:16;9959:24;:76::i;:::-;9758:284:::0;;;;:::o;5925:214:37:-;-1:-1:-1;;;;;6020:23:37;;719:10:59;6020:23:37;6012:83;;;;-1:-1:-1;;;6012:83:37;;33859:2:103;6012:83:37;;;33841:21:103;33898:2;33878:18;;;33871:30;33937:34;33917:18;;;33910:62;-1:-1:-1;;;33988:18:103;;;33981:45;34043:19;;6012:83:37;33831:237:103;6012:83:37;6106:26;6118:4;6124:7;6106:11;:26::i;:::-;5925:214;;:::o;4431:1042:67:-;4684:14;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;4714:48:67::1;4738:7;4747:4;4753:3;4758;4714:23;:48::i;:::-;4782:35;4792:9;4803:5;4810:6;4782:9;:35::i;:::-;4827:8;:21:::0;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;-1:-1:-1;4879:14:67;;;:6:::1;4827:21;4879:14:::0;;;;4911::::1;::::0;::::1;::::0;4773:44;;-1:-1:-1;4879:14:67;4911:19;4903:65:::1;;;::::0;-1:-1:-1;;;4903:65:67;;31878:2:103;4903:65:67::1;::::0;::::1;31860:21:103::0;31917:2;31897:18;;;31890:30;31956:34;31936:18;;;31929:62;-1:-1:-1;;;32007:18:103;;;32000:31;32048:19;;4903:65:67::1;31850:223:103::0;4903:65:67::1;4979:16:::0;;;5005:14:::1;::::0;::::1;:26:::0;;;5041:10:::1;::::0;::::1;:18:::0;;;5069:11:::1;::::0;::::1;:20:::0;;;5099:12:::1;::::0;::::1;:22:::0;;;5131:9:::1;::::0;::::1;:16:::0;;;5157:8:::1;::::0;::::1;:14:::0;;;5181:8:::1;::::0;::::1;:14:::0;;;5222:15:::1;5205:14;::::0;::::1;:32:::0;;;5271:14:::1;::::0;::::1;:32:::0;5343:123:::1;::::0;;17651:25:103;;;17707:2;17692:18;;17685:34;;;17735:18;;;17728:34;;;17793:2;17778:18;;17771:34;;;5343:123:67::1;::::0;17638:3:103;17623:19;5343:123:67::1;;;;;;;2531:1:37;4431:1042:67::0;;;;;;;;;;:::o;17774:167::-;17852:17;17905;;;:9;:17;;;;;17888:46;;17924:9;17888:16;:46::i;:::-;17881:53;;17774:167;;;;;:::o;15878:948::-;16262:24;16407:13;16413:7;16407:3;:13;:::i;:::-;16375:28;982:5;16375:4;:28;:::i;:::-;:45;16371:84;;-1:-1:-1;16443:1:67;16436:8;;16371:84;16573:10;16579:4;16573:3;:10;:::i;:::-;16541:28;982:5;16541:4;:28;:::i;:::-;:42;16537:83;;-1:-1:-1;16606:3:67;16599:10;;16537:83;16684:20;16738:3;16707:28;16731:4;982:5;16707:28;:::i;:::-;:34;;;;:::i;:::-;16684:57;-1:-1:-1;16804:14:67;16814:4;16804:7;:14;:::i;:::-;16777:22;16787:12;16777:7;:22;:::i;:::-;16770:30;;:3;:30;:::i;:::-;:49;;;;:::i;:::-;16751:68;;15878:948;;;;;;;;;:::o;6652:1173::-;6857:17;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;6890:17:67::1;6910:14:::0;;;:6:::1;:14;::::0;;;;6942::::1;::::0;::::1;::::0;6934:59:::1;;;::::0;-1:-1:-1;;;6934:59:67;;31521:2:103;6934:59:67::1;::::0;::::1;31503:21:103::0;31560:2;31540:18;;;31533:30;31599;31579:18;;;31572:58;31647:18;;6934:59:67::1;31493:178:103::0;6934:59:67::1;-1:-1:-1::0;;;;;7011:26:67;::::1;7003:71;;;::::0;-1:-1:-1;;;7003:71:67;;27471:2:103;7003:71:67::1;::::0;::::1;27453:21:103::0;;;27490:18;;;27483:30;27549:34;27529:18;;;27522:62;27601:18;;7003:71:67::1;27443:182:103::0;7003:71:67::1;7085:26;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;7085:26:67;;7152:18;;;;::::1;16638:25:103::0;;;7152:18:67;;;;;;;;;;16611::103;;7152::67;;;7085:26;7193:140:::1;7222:12:::0;7249:7;7271:10;7085:26;7152:18;7193:15:::1;:140::i;:::-;7344:13;:29:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;7344:29:67;;;;;::::1;::::0;;;7389:129:::1;::::0;;16905:25:103;;;-1:-1:-1;;;;;16966:32:103;;16961:2;16946:18;;16939:60;17015:18;;;17008:34;;;17073:2;17058:18;;17051:34;;;7344:29:67;;-1:-1:-1;7389:129:67::1;::::0;16892:3:103;16877:19;7389:129:67::1;;;;;;;7529:12;7544:22;7556:9;7544:11;:22::i;:::-;7529:37;;7581:7;7577:242;;;7622:17;::::0;;;:9:::1;:17;::::0;;;;7604:47:::1;::::0;7641:9;7604:17:::1;:47::i;:::-;-1:-1:-1::0;7674:134:67::1;::::0;;16905:25:103;;;-1:-1:-1;;;;;16966:32:103;;16961:2;16946:18;;16939:60;17015:18;;;17008:34;;;17073:2;17058:18;;17051:34;;;7674:134:67::1;::::0;16892:3:103;16877:19;7674:134:67::1;;;;;;;7577:242;2531:1:37;;;;6652:1173:67::0;;;;;;;:::o;11010:667::-;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;11121:17:67::1;11141:6;:29;11148:21;11159:9;11148:10;:21::i;:::-;11141:29;;;;;;;;;;;11121:49;;11205:1;11188:4;:14;;;:18;11180:59;;;::::0;-1:-1:-1;;;11180:59:67;;31164:2:103;11180:59:67::1;::::0;::::1;31146:21:103::0;31203:2;31183:18;;;31176:30;31242;31222:18;;;31215:58;31290:18;;11180:59:67::1;31136:178:103::0;11180:59:67::1;11257:21;::::0;::::1;::::0;::::1;;11249:72;;;::::0;-1:-1:-1;;;11249:72:67;;27832:2:103;11249:72:67::1;::::0;::::1;27814:21:103::0;27871:2;27851:18;;;27844:30;27910:34;27890:18;;;27883:62;-1:-1:-1;;;27961:18:103;;;27954:36;28007:19;;11249:72:67::1;27804:228:103::0;11249:72:67::1;11339:15;::::0;::::1;::::0;:20;11331:64:::1;;;::::0;-1:-1:-1;;;11331:64:67;;28960:2:103;11331:64:67::1;::::0;::::1;28942:21:103::0;28999:2;28979:18;;;28972:30;29038:33;29018:18;;;29011:61;29089:18;;11331:64:67::1;28932:181:103::0;11331:64:67::1;11406:30;11421:4;:14;;;11406;:30::i;:::-;11501:21;::::0;::::1;:29:::0;;-1:-1:-1;;11501:29:67::1;::::0;;11557:15:::1;11540:14;::::0;::::1;:32:::0;11655:14:::1;::::0;::::1;::::0;11612:58:::1;::::0;;18624:25:103;;;18680:2;18665:18;;18658:34;;;;11612:58:67::1;::::0;18597:18:103;11612:58:67::1;;;;;;;2531:1:37;11010:667:67::0;;:::o;3689:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3748:15:::1;3279:78:::0;17251:99:67;17306:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17306:16:67;-1:-1:-1;17333:14:67;;;;:6;:14;;;;;;;;;17326:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17251:99::o;11687:1448::-;1138:28:18;-1:-1:-1;;;1138:19:18;:28::i;:::-;-1:-1:-1;;;;;1122:44:18;719:10:59;-1:-1:-1;;;;;1122:44:18;;1100:119;;;;-1:-1:-1;;;1100:119:18;;24352:2:103;1100:119:18;;;24334:21:103;24391:2;24371:18;;;24364:30;24430:29;24410:18;;;24403:57;24477:18;;1100:119:18;24324:177:103;1100:119:18;11876:17:67::1;::::0;;;11990:62:::1;::::0;;::::1;12001:12:::0;11990:62:::1;:::i;:::-;11862:190;;;;;;;;12063:14;12080:21;12091:9;12080:10;:21::i;:::-;12063:38;;12129:35;12139:9;12150:5;12157:6;12129:9;:35::i;:::-;12119:6;:45;12111:88;;;::::0;-1:-1:-1;;;12111:88:67;;30400:2:103;12111:88:67::1;::::0;::::1;30382:21:103::0;30439:2;30419:18;;;30412:30;30478:32;30458:18;;;30451:60;30528:18;;12111:88:67::1;30372:180:103::0;12111:88:67::1;12210:17;12230:14:::0;;;:6:::1;:14;::::0;;;;12262::::1;::::0;::::1;::::0;12254:59:::1;;;::::0;-1:-1:-1;;;12254:59:67;;25891:2:103;12254:59:67::1;::::0;::::1;25873:21:103::0;25930:2;25910:18;;;25903:30;25969;25949:18;;;25942:58;26017:18;;12254:59:67::1;25863:178:103::0;12254:59:67::1;12349:9;12331:4;:14;;;:27;12323:73;;;::::0;-1:-1:-1;;;12323:73:67;;33051:2:103;12323:73:67::1;::::0;::::1;33033:21:103::0;33090:2;33070:18;;;33063:30;33129:34;33109:18;;;33102:62;-1:-1:-1;;;33180:18:103;;;33173:31;33221:19;;12323:73:67::1;33023:223:103::0;12323:73:67::1;12414:15;::::0;::::1;::::0;:20;12406:64:::1;;;::::0;-1:-1:-1;;;12406:64:67;;28600:2:103;12406:64:67::1;::::0;::::1;28582:21:103::0;28639:2;28619:18;;;28612:30;28678:33;28658:18;;;28651:61;28729:18;;12406:64:67::1;28572:181:103::0;12406:64:67::1;12498:32;982:5;1029:1;12498:32;:::i;:::-;12489:4;:42;;:104;;;;-1:-1:-1::0;12560:32:67::1;982:5;1071:2;12560:32;:::i;:::-;12552:4;:41;12489:104;12481:160;;;::::0;-1:-1:-1;;;12481:160:67;;22831:2:103;12481:160:67::1;::::0;::::1;22813:21:103::0;22870:2;22850:18;;;22843:30;22909:28;22889:18;;;22882:56;22955:18;;12481:160:67::1;22803:176:103::0;12481:160:67::1;12691:9;::::0;::::1;:16:::0;;;12780:8:::1;::::0;::::1;::::0;12802:12:::1;::::0;::::1;::::0;12828:9:::1;::::0;::::1;::::0;12851:8:::1;::::0;::::1;::::0;12741:151:::1;::::0;12780:8;12802:12;12828:9;12703:4;12741:25:::1;:151::i;:::-;12717:21;::::0;::::1;:175:::0;12921:15:::1;12903;::::0;::::1;:33:::0;;;12970:14:::1;::::0;::::1;:32:::0;13042:86:::1;::::0;;17298:25:103;;;17354:2;17339:18;;17332:34;;;17382:18;;;17375:34;;;13042:86:67::1;::::0;17286:2:103;17271:18;13042:86:67::1;;;;;;;1229:1:18;;;;;;11687:1448:67::0;;;;:::o;3195:78:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;1831:101:41:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;5479:924:67:-:0;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;5680:48:67::1;5704:7;5713:4;5719:3;5724;5680:23;:48::i;:::-;5739:17;5759:14:::0;;;:6:::1;:14;::::0;;;;5791::::1;::::0;::::1;::::0;5783:57:::1;;;::::0;-1:-1:-1;;;5783:57:67;;32280:2:103;5783:57:67::1;::::0;::::1;32262:21:103::0;32319:2;32299:18;;;32292:30;32358:28;32338:18;;;32331:56;32404:18;;5783:57:67::1;32252:176:103::0;5783:57:67::1;5879:17;::::0;;;:9:::1;:17;::::0;;;;5858:39:::1;::::0;:20:::1;:39::i;:::-;:44:::0;5850:104:::1;;;::::0;-1:-1:-1;;;5850:104:67;;32635:2:103;5850:104:67::1;::::0;::::1;32617:21:103::0;32674:2;32654:18;;;32647:30;32713:34;32693:18;;;32686:62;-1:-1:-1;;;32764:18:103;;;32757:45;32819:19;;5850:104:67::1;32607:237:103::0;5850:104:67::1;6015:7:::0;;6037:12:::1;::::0;::::1;::::0;6063:9:::1;::::0;::::1;::::0;6087:8:::1;::::0;::::1;::::0;6109::::1;::::0;::::1;::::0;5970:148:::1;::::0;;20340:25:103;;;20396:2;20381:18;;20374:34;;;;20424:18;;;20417:34;;;;20482:2;20467:18;;20460:34;20525:3;20510:19;;20503:35;5970:148:67;::::1;::::0;;;;20327:3:103;5970:148:67;;::::1;6137:12;::::0;::::1;:22:::0;;;6169:9:::1;::::0;::::1;:16:::0;;;6195:8:::1;::::0;::::1;:14:::0;;;6219:8:::1;::::0;::::1;:14:::0;;;6293:7;;6249:147:::1;::::0;;20340:25:103;;;20396:2;20381:18;;20374:34;;;20424:18;;20417:34;;;20482:2;20467:18;;20460:34;;;20525:3;20510:19;;20503:35;;;6249:147:67::1;::::0;20327:3:103;20312:19;6249:147:67::1;20294:250:103::0;1222:72:67;1269:25;1293:1;982:5;1269:25;:::i;2895:145:37:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:37;;;;;;;;;;;;;;;2895:145::o;2851:116:12:-;2900:4;;2915:49;;15634:238:67;15755:20;982:5;15806:35;15825:16;15806;:35;:::i;:::-;:59;;;;:::i;8492:229::-;8599:12;8613:11;8626:18;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;8689:25:67::1;8705:8;8689:15;:25::i;:::-;8660:54:::0;;;;-1:-1:-1;8660:54:67;;-1:-1:-1;8492:229:67;-1:-1:-1;;;8492:229:67:o;3363:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3422:15:::1;:13;:15::i;2131:81::-:0;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;17478:144:67:-;17550:17;17586:13;17600:14;17586:29;;;;;;-1:-1:-1;;;17586:29:67;;;;;;;;;;;;;;;;;17579:36;;17478:144;;;:::o;5241:147:37:-;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5355:26:::1;5367:4;5373:7;5355:11;:26::i;17628:140:67:-:0;17684:19;17743:17;;;:9;:17;;;;;17722:39;;:20;:39::i;2727:118:12:-;2777:4;2810:32;2792:50;;9146:606:67;9283:12;9297:11;9310:18;-1:-1:-1;;;;;;;;;;;2505:16:37;2516:4;2505:10;:16::i;:::-;9344:32:67::1;9379:22;9392:8;9379:12;:22::i;:::-;9344:57;;9424:8;:14;;;-1:-1:-1::0;;;;;9416:22:67::1;:4;-1:-1:-1::0;;;;;9416:22:67::1;;9412:261;;9515:6;::::0;9529:14;;9454:23:::1;::::0;9480:72:::1;::::0;-1:-1:-1;;;;;9515:6:67;;::::1;::::0;9523:4;;9545:6;9480:34:::1;:72::i;:::-;9454:98;;9572:18;9567:96;;9618:18:::0;-1:-1:-1;9638:1:67::1;::::0;-1:-1:-1;9641:6:67;;-1:-1:-1;9610:38:67::1;::::0;-1:-1:-1;9610:38:67::1;9567:96;9412:261;;9712:33;9728:8;9738:6;9712:15;:33::i;:::-;9683:62:::0;;-1:-1:-1;9683:62:67;-1:-1:-1;9683:62:67;-1:-1:-1;;2531:1:37::1;9146:606:67::0;;;;;;;;:::o;6409:236::-;6601:36;;;;;;;17298:25:103;;;;17339:18;;;17332:34;;;;17382:18;;;;17375:34;;;;6601:36:67;;;;;;;;;;17271:18:103;;;;6601:36:67;;;6591:47;;;;;;6409:236::o;17151:95::-;17205:14;17230:8;17239:3;17230:13;;;;;;-1:-1:-1;;;17230:13:67;;;;;;;;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;23186:2:103;2161:73:41::1;::::0;::::1;23168:21:103::0;23225:2;23205:18;;;23198:30;23264:34;23244:18;;;23237:62;-1:-1:-1;;;23315:18:103;;;23308:36;23361:19;;2161:73:41::1;23158:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;1151:65:67:-:0;1191:25;1215:1;982:5;1191:25;:::i;3334:103:37:-;3400:30;3411:4;719:10:59;3400::37;:30::i;19870:220:67:-;19930:14;19956:38;19997:26;20013:9;19997:15;:26::i;:::-;19956:67;;20055:11;:16;;;20044:39;;;;;;;;;;;;:::i;:::-;20033:50;19870:220;-1:-1:-1;;;19870:220:67:o;6020:411:18:-;6257:15;;:167;;-1:-1:-1;;;6257:167:18;;6212:17;;-1:-1:-1;;;;;6257:15:18;;:23;;:167;;6294:9;;6317:5;;6336:18;;6376:4;;6395:19;;6257:167;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6763:205::-;6857:38;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6857:38:18;6919:16;;:42;;-1:-1:-1;;;6919:42:18;;;;;16638:25:103;;;-1:-1:-1;;;;;6919:16:18;;;;:31;;16611:18:103;;6919:42:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6919:42:18;;;;;;;;;;;;:::i;6319:138:64:-;6399:4;4250:19;;;:12;;;:19;;;;;;:24;;6422:28;4154:127;6109:129;6182:4;6205:26;6213:3;6225:5;6205:7;:26::i;4586:285:18:-;4771:15;;:93;;-1:-1:-1;;;4771:93:18;;4730:15;;-1:-1:-1;;;;;4771:15:18;;:24;;:93;;4809:9;;4833:11;;4859:4;;4771:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4761:103;4586:285;-1:-1:-1;;;;4586:285:18:o;4877:250::-;5019:15;;:101;;-1:-1:-1;;;5019:101:18;;;;;17298:25:103;;;17339:18;;;17332:34;;;17382:18;;;17375:34;;;-1:-1:-1;;;;;5019:15:18;;;;:28;;17271:18:103;;5019:101:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4877:250;;;:::o;5407:271::-;5612:15;;:59;;-1:-1:-1;;;5612:59:18;;5569:16;;-1:-1:-1;;;;;5612:15:18;;:25;;:59;;5638:9;;5649:7;;5658:6;;5666:4;;5612:59;;;:::i;5684:330::-;5957:15;;:50;;-1:-1:-1;;;5957:50:18;;;;;18624:25:103;;;18665:18;;;18658:34;;;5813:17:18;;;;-1:-1:-1;;;;;5957:15:18;;;;:29;;18597:18:103;;5957:50:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5892:115;;;;-1:-1:-1;5684:330:18;-1:-1:-1;;;5684:330:18:o;5133:133::-;5211:15;;:48;;-1:-1:-1;;;5211:48:18;;;;;18624:25:103;;;18665:18;;;18658:34;;;-1:-1:-1;;;;;5211:15:18;;;;:28;;18597:18:103;;5211:48:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5133:133;;:::o;5272:129::-;5348:15;;:46;;-1:-1:-1;;;5348:46:18;;;;;18624:25:103;;;18665:18;;;18658:34;;;-1:-1:-1;;;;;5348:15:18;;;;:26;;18597:18:103;;5348:46:18;18579:119:103;4386:95:18;4441:15;;:33;;-1:-1:-1;;;4441:33:18;;;;;16638:25:103;;;-1:-1:-1;;;;;4441:15:18;;;;:22;;16611:18:103;;4441:33:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4386:95;:::o;4487:93::-;4541:15;;:32;;-1:-1:-1;;;4541:32:18;;;;;16638:25:103;;;-1:-1:-1;;;;;4541:15:18;;;;:21;;16611:18:103;;4541:32:18;16593:76:103;4142:135:18;4233:15;;:37;;-1:-1:-1;;;4233:37:18;;;;;16638:25:103;;;4199:12:18;;-1:-1:-1;;;;;4233:15:18;;:26;;16611:18:103;;4233:37:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6564:193::-;6655:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6655:32:18;6711:16;;:39;;-1:-1:-1;;;6711:39:18;;;;;16638:25:103;;;-1:-1:-1;;;;;6711:16:18;;;;:28;;16611:18:103;;6711:39:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6711:39:18;;;;;;;;;;;;:::i;4875:145:12:-;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;16638:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;16611:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2189:80:18:-;2239:27;2258:7;2373:12:12;;2309:79;;2258:7:18;2239:27;;16638:25:103;;;16626:2;16611:18;2239:27:18;;;;;;;2189:80::o;6538:115:64:-;6601:7;6627:19;6635:3;4444:18;;4362:107;16960:104:67;17017:7;17048:1;17043;:6;;:14;;17056:1;17043:14;;;-1:-1:-1;17052:1:67;;16960:104;-1:-1:-1;16960:104:67:o;6995:129:64:-;7069:7;7095:22;7099:3;7111:5;7095:3;:22::i;7474:233:37:-;7557:22;7565:4;7571:7;7557;:22::i;:::-;7552:149;;7595:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7595:29:37;;;;;;;;;:36;;-1:-1:-1;;7595:36:37;7627:4;7595:36;;;7677:12;719:10:59;640:96;;7677:12:37;-1:-1:-1;;;;;7650:40:37;7668:7;-1:-1:-1;;;;;7650:40:37;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;3778:257:18:-;3937:15;;:91;;-1:-1:-1;;;3937:91:18;;;;;17298:25:103;;;17339:18;;;17332:34;;;17382:18;;;17375:34;;;-1:-1:-1;;;;;3937:15:18;;;;:39;;17271:18:103;;3937:91:18;17253:162:103;7878:234:37;7961:22;7969:4;7975:7;7961;:22::i;:::-;7957:149;;;8031:5;7999:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7999:29:37;;;;;;;;;;:37;;-1:-1:-1;;7999:37:37;;;8055:40;719:10:59;;7999:12:37;;8055:40;;8031:5;8055:40;7878:234;;:::o;18095:814:67:-;982:5;18263:7;:32;;18255:81;;;;-1:-1:-1;;;18255:81:67;;30759:2:103;18255:81:67;;;30741:21:103;30798:2;30778:18;;;30771:30;30837:34;30817:18;;;30810:62;-1:-1:-1;;;30888:18:103;;;30881:34;30932:19;;18255:81:67;30731:226:103;18255:81:67;18364:4;18354:7;:14;18346:74;;;;-1:-1:-1;;;18346:74:67;;24708:2:103;18346:74:67;;;24690:21:103;24747:2;24727:18;;;24720:30;24786:34;24766:18;;;24759:62;-1:-1:-1;;;24837:18:103;;;24830:45;24892:19;;18346:74:67;24680:237:103;18346:74:67;1191:25;1215:1;982:5;1191:25;:::i;:::-;18438:4;:21;;18430:67;;;;-1:-1:-1;;;18430:67:67;;23593:2:103;18430:67:67;;;23575:21:103;23632:2;23612:18;;;23605:30;23671:34;23651:18;;;23644:62;-1:-1:-1;;;23722:18:103;;;23715:31;23763:19;;18430:67:67;23565:223:103;18430:67:67;1269:25;1293:1;982:5;1269:25;:::i;:::-;18515:3;:27;;18507:73;;;;-1:-1:-1;;;18507:73:67;;29320:2:103;18507:73:67;;;29302:21:103;;;29339:18;;;29332:30;29398:34;29378:18;;;29371:62;29450:18;;18507:73:67;29292:182:103;18507:73:67;982:5;18598:3;:28;;18590:74;;;;-1:-1:-1;;;18590:74:67;;29681:2:103;18590:74:67;;;29663:21:103;;;29700:18;;;29693:30;29759:34;29739:18;;;29732:62;29811:18;;18590:74:67;29653:182:103;18590:74:67;982:5;18682:10;18688:4;18682:3;:10;:::i;:::-;:35;;18674:89;;;;-1:-1:-1;;;18674:89:67;;27061:2:103;18674:89:67;;;27043:21:103;27100:2;27080:18;;;27073:30;27139:34;27119:18;;;27112:62;-1:-1:-1;;;27190:18:103;;;27183:39;27239:19;;18674:89:67;27033:231:103;18674:89:67;18787:1;18781:3;:7;18773:55;;;;-1:-1:-1;;;18773:55:67;;22071:2:103;18773:55:67;;;22053:21:103;22110:2;22090:18;;;22083:30;22149:34;22129:18;;;22122:62;-1:-1:-1;;;22200:18:103;;;22193:33;22243:19;;18773:55:67;22043:225:103;18773:55:67;1119:26;982:5;1119:2;:26;:::i;:::-;18846:3;:19;;18838:64;;;;-1:-1:-1;;;18838:64:67;;25124:2:103;18838:64:67;;;25106:21:103;;;25143:18;;;25136:30;25202:34;25182:18;;;25175:62;25254:18;;18838:64:67;25096:182:103;2446:459:18;2725:15;;:173;;-1:-1:-1;;;2725:173:18;;2680:17;;-1:-1:-1;;;;;2725:15:18;;:30;;:173;;2769:16;;2800:13;;2828:16;;2859:8;;2882:15;;2725:173;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2713:185;2446:459;-1:-1:-1;;;;;;2446:459:18:o;5818:123:64:-;5888:4;5911:23;5916:3;5928:5;5911:4;:23::i;6437:121:18:-;6511:15;;:40;;-1:-1:-1;;;6511:40:18;;;;;16638:25:103;;;-1:-1:-1;;;;;6511:15:18;;;;:29;;16611:18:103;;6511:40:18;16593:76:103;2275:80:18;2325:27;2344:7;2373:12:12;;2309:79;;1359:130:41;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;28239:2:103;1414:68:41;;;28221:21:103;;;28258:18;;;28251:30;28317:34;28297:18;;;28290:62;28369:18;;1414:68:41;28211:182:103;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;2911:538:18:-;3002:12;3028:17;3059;3101:28;3132:21;3143:9;3132:10;:21::i;:::-;3101:52;;3195:6;:28;;;3168:6;:24;;;:55;3164:279;;;3290:142;3327:9;3390:6;:24;;;3359:6;:28;;;:55;;;;:::i;:::-;3290:15;:142::i;3164:279::-;2911:538;;;;;;:::o;2360:80::-;2410:27;2429:7;2373:12:12;;2309:79;;913:1422:90;1068:12;1162:5;-1:-1:-1;;;;;1202:24:90;;;;:28;;;1245:18;;;;:39;;-1:-1:-1;;;;;;1267:17:90;;;1245:39;:59;;;;1289:15;1288:16;1245:59;1241:187;;;1325:66;;;15615:14:103;;15608:22;15590:41;;-1:-1:-1;;;;;15705:15:103;;;15700:2;15685:18;;15678:43;15757:15;;15737:18;;;15730:43;1325:66:90;;;;;;;15578:2:103;1325:66:90;;;1412:5;1405:12;;;;;;1241:187;1499:21;;-1:-1:-1;;;1499:21:90;;-1:-1:-1;;;;;13205:32:103;;;1499:21:90;;;13187:51:103;1481:15:90;;1499;;;;;;13160:18:103;;1499:21:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1550:36;;-1:-1:-1;;;1550:36:90;;-1:-1:-1;;;;;13479:15:103;;;1550:36:90;;;13461:34:103;1580:4:90;13511:18:103;;;13504:43;1481:39:90;;-1:-1:-1;1530:17:90;;1550:15;;;;;13396:18:103;;1550:36:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1530:56;;1610:5;1600:7;:15;:36;;;;1631:5;1619:9;:17;1600:36;1596:157;;;1657:59;;;18624:25:103;;;18680:2;18665:18;;18658:34;;;1657:59:90;;18597:18:103;1657:59:90;;;;;;;1737:5;1730:12;;;;;;;;1596:157;1956:119;;;-1:-1:-1;;;;;13816:15:103;;;1956:119:90;;;13798:34:103;13868:15;;;13848:18;;;13841:43;13900:18;;;;13893:34;;;1956:119:90;;;;;;;;;;13733:18:103;;;;1956:119:90;;;;;;;-1:-1:-1;;;;;1956:119:90;-1:-1:-1;;;1956:119:90;;;1923:153;;-1:-1:-1;;;;1923:19:90;;;;:153;;1956:119;1923:153;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1883:193;;;;2097:11;:118;;;;-1:-1:-1;2134:11:90;;:16;2113:101;;;;2168:4;:11;2183:2;2168:17;:45;;;;;2200:4;2189:24;;;;;;;;;;;;:::i;:::-;2087:128;;2231:7;2226:103;;2259:59;2287:11;2300:4;:11;2313:4;2259:59;;;;;;;;:::i;:::-;;;;;;;;2226:103;913:1422;;;;;;;;;;;;:::o;3455:317:18:-;3716:15;;:49;;-1:-1:-1;;;3716:49:18;;;;;18624:25:103;;;18665:18;;;18658:34;;;3583:12:18;;;;;;-1:-1:-1;;;;;3716:15:18;;:30;;18597:18:103;;3716:49:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3718:492:37:-;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:403;;3989:41;4017:7;-1:-1:-1;;;;;3989:41:37;4027:2;3989:19;:41::i;:::-;4101:38;4129:4;4136:2;4101:19;:38::i;:::-;3896:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:265:37;;;;;;;;;;-1:-1:-1;;;3844:349:37;;;;;;;:::i;2685:1388:64:-;2751:4;2888:19;;;:12;;;:19;;;;;;2922:15;;2918:1149;;3291:21;3315:14;3328:1;3315:10;:14;:::i;:::-;3363:18;;3291:38;;-1:-1:-1;3343:17:64;;3363:22;;3384:1;;3363:22;:::i;:::-;3343:42;;3417:13;3404:9;:26;3400:398;;3450:17;3470:3;:11;;3482:9;3470:22;;;;;;-1:-1:-1;;;3470:22:64;;;;;;;;;;;;;;;;;3450:42;;3621:9;3592:3;:11;;3604:13;3592:26;;;;;;-1:-1:-1;;;3592:26:64;;;;;;;;;;;;;;;;;;;;:38;;;;3704:23;;;:12;;;:23;;;;;:36;;;3400:398;3876:17;;:3;;:17;;;-1:-1:-1;;;3876:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;3968:3;:12;;:19;3981:5;3968:19;;;;;;;;;;;3961:26;;;4009:4;4002:11;;;;;;;2918:1149;4051:5;4044:12;;;;;4811:118;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;2113:404::-;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;6974:185:18;7063:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7063:28:18;7115:16;;:37;;-1:-1:-1;;;7115:37:18;;;;;16638:25:103;;;-1:-1:-1;;;;;7115:16:18;;;;:26;;16611:18:103;;7115:37:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1652:441:61:-;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;1774:25;;;;;;-1:-1:-1;;;1774:25:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:61;;1752:47;;-1:-1:-1;;;1809:6:61;1816:1;1809:9;;;;;;-1:-1:-1;;;1809:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1809:15:61;;;;;;;;;-1:-1:-1;;;1834:6:61;1841:1;1834:9;;;;;;-1:-1:-1;;;1834:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1834:15:61;;;;;;;;-1:-1:-1;1864:9:61;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:61;1951:3;1943:11;1930:25;;;;;-1:-1:-1;;;1930:25:61;;;;;;;;;;;;1918:6;1925:1;1918:9;;;;;;-1:-1:-1;;;1918:9:61;;;;;;;;;;;;:37;-1:-1:-1;;;;;1918:37:61;;;;;;;;-1:-1:-1;1979:1:61;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:61;;2000:55;;;;-1:-1:-1;;;2000:55:61;;21710:2:103;2000:55:61;;;21692:21:103;;;21729:18;;;21722:30;21788:34;21768:18;;;21761:62;21840:18;;2000:55:61;21682:182:103;14:164;90:13;;139;;132:21;122:32;;112:2;;168:1;165;158:12;183:512;;289:3;282:4;274:6;270:17;266:27;256:2;;311:5;304;297:20;256:2;344:6;338:13;370:18;366:2;363:26;360:2;;;392:18;;:::i;:::-;436:55;479:2;460:13;;-1:-1:-1;;456:27:103;485:4;452:38;436:55;:::i;:::-;516:2;507:7;500:19;562:3;555:4;550:2;542:6;538:15;534:26;531:35;528:2;;;583:5;576;569:20;528:2;600:64;661:2;654:4;645:7;641:18;634:4;626:6;622:17;600:64;:::i;700:160::-;792:13;;834:1;824:12;;814:2;;850:1;847;840:12;865:257;;977:2;965:9;956:7;952:23;948:32;945:2;;;998:6;990;983:22;945:2;1042:9;1029:23;1061:31;1086:5;1061:31;:::i;1127:261::-;;1250:2;1238:9;1229:7;1225:23;1221:32;1218:2;;;1271:6;1263;1256:22;1218:2;1308:9;1302:16;1327:31;1352:5;1327:31;:::i;1393:462::-;;;;;1556:3;1544:9;1535:7;1531:23;1527:33;1524:2;;;1578:6;1570;1563:22;1524:2;1622:9;1609:23;1641:31;1666:5;1641:31;:::i;:::-;1691:5;1743:2;1728:18;;1715:32;;-1:-1:-1;1794:2:103;1779:18;;1766:32;;1845:2;1830:18;1817:32;;-1:-1:-1;1514:341:103;-1:-1:-1;;;1514:341:103:o;1860:212::-;;1980:2;1968:9;1959:7;1955:23;1951:32;1948:2;;;2001:6;1993;1986:22;1948:2;2029:37;2056:9;2029:37;:::i;2077:334::-;;;;2231:2;2219:9;2210:7;2206:23;2202:32;2199:2;;;2252:6;2244;2237:22;2199:2;2280:37;2307:9;2280:37;:::i;:::-;2270:47;;2357:2;2346:9;2342:18;2336:25;2326:35;;2401:2;2390:9;2386:18;2380:25;2370:35;;2189:222;;;;;:::o;2416:190::-;;2528:2;2516:9;2507:7;2503:23;2499:32;2496:2;;;2549:6;2541;2534:22;2496:2;-1:-1:-1;2577:23:103;;2486:120;-1:-1:-1;2486:120:103:o;2611:194::-;;2734:2;2722:9;2713:7;2709:23;2705:32;2702:2;;;2755:6;2747;2740:22;2702:2;-1:-1:-1;2783:16:103;;2692:113;-1:-1:-1;2692:113:103:o;2810:325::-;;;2939:2;2927:9;2918:7;2914:23;2910:32;2907:2;;;2960:6;2952;2945:22;2907:2;3001:9;2988:23;2978:33;;3061:2;3050:9;3046:18;3033:32;3074:31;3099:5;3074:31;:::i;:::-;3124:5;3114:15;;;2897:238;;;;;:::o;3140:393::-;;;;3286:2;3274:9;3265:7;3261:23;3257:32;3254:2;;;3307:6;3299;3292:22;3254:2;3348:9;3335:23;3325:33;;3408:2;3397:9;3393:18;3380:32;3421:31;3446:5;3421:31;:::i;:::-;3244:289;;3471:5;;-1:-1:-1;;;3523:2:103;3508:18;;;;3495:32;;3244:289::o;3538:326::-;;;;3684:2;3672:9;3663:7;3659:23;3655:32;3652:2;;;3705:6;3697;3690:22;3652:2;-1:-1:-1;;3733:23:103;;;3803:2;3788:18;;3775:32;;-1:-1:-1;3854:2:103;3839:18;;;3826:32;;3642:222;-1:-1:-1;3642:222:103:o;3869:395::-;;;;;4032:3;4020:9;4011:7;4007:23;4003:33;4000:2;;;4054:6;4046;4039:22;4000:2;-1:-1:-1;;4082:23:103;;;4152:2;4137:18;;4124:32;;-1:-1:-1;4203:2:103;4188:18;;4175:32;;4254:2;4239:18;4226:32;;-1:-1:-1;3990:274:103;-1:-1:-1;3990:274:103:o;4269:602::-;;;;;;;;4483:3;4471:9;4462:7;4458:23;4454:33;4451:2;;;4505:6;4497;4490:22;4451:2;-1:-1:-1;;4533:23:103;;;4603:2;4588:18;;4575:32;;-1:-1:-1;4654:2:103;4639:18;;4626:32;;4705:2;4690:18;;4677:32;;-1:-1:-1;4756:3:103;4741:19;;4728:33;;-1:-1:-1;4808:3:103;4793:19;;4780:33;;-1:-1:-1;4860:3:103;4845:19;4832:33;;-1:-1:-1;4441:430:103;-1:-1:-1;4441:430:103:o;4876:258::-;;;5005:2;4993:9;4984:7;4980:23;4976:32;4973:2;;;5026:6;5018;5011:22;4973:2;-1:-1:-1;;5054:23:103;;;5124:2;5109:18;;;5096:32;;-1:-1:-1;4963:171:103:o;5470:464::-;;;;;;5650:3;5638:9;5629:7;5625:23;5621:33;5618:2;;;5672:6;5664;5657:22;5618:2;-1:-1:-1;;5700:23:103;;;5770:2;5755:18;;5742:32;;-1:-1:-1;5821:2:103;5806:18;;5793:32;;5872:2;5857:18;;5844:32;;-1:-1:-1;5923:3:103;5908:19;5895:33;;-1:-1:-1;5608:326:103;-1:-1:-1;5608:326:103:o;5939:306::-;;6050:2;6038:9;6029:7;6025:23;6021:32;6018:2;;;6071:6;6063;6056:22;6018:2;6102:23;;-1:-1:-1;;;;;;6154:32:103;;6144:43;;6134:2;;6206:6;6198;6191:22;6250:299;;6392:2;6380:9;6371:7;6367:23;6363:32;6360:2;;;6413:6;6405;6398:22;6360:2;6450:9;6444:16;6489:1;6482:5;6479:12;6469:2;;6510:6;6502;6495:22;6554:1010;;6706:2;6694:9;6685:7;6681:23;6677:32;6674:2;;;6727:6;6719;6712:22;6674:2;6765:9;6759:16;6794:18;6835:2;6827:6;6824:14;6821:2;;;6856:6;6848;6841:22;6821:2;6884:22;;;;6940:4;6922:16;;;6918:27;6915:2;;;6963:6;6955;6948:22;6915:2;6994:21;7010:4;6994:21;:::i;:::-;7045:2;7039:9;7079:1;7070:7;7067:14;7057:2;;7100:6;7092;7085:22;7057:2;7132:7;7125:5;7118:22;;7186:2;7182;7178:11;7172:18;7167:2;7160:5;7156:14;7149:42;7237:2;7233;7229:11;7223:18;7218:2;7211:5;7207:14;7200:42;7281:2;7277;7273:11;7267:18;7310:2;7300:8;7297:16;7294:2;;;7331:6;7323;7316:22;7294:2;7372:55;7419:7;7408:8;7404:2;7400:17;7372:55;:::i;:::-;7367:2;7360:5;7356:14;7349:79;;7475:3;7471:2;7467:12;7461:19;7455:3;7448:5;7444:15;7437:44;7528:3;7524:2;7520:12;7514:19;7508:3;7501:5;7497:15;7490:44;7553:5;7543:15;;;;;6664:900;;;;:::o;7569:1025::-;;7718:2;7706:9;7697:7;7693:23;7689:32;7686:2;;;7739:6;7731;7724:22;7686:2;7777:9;7771:16;7806:18;7847:2;7839:6;7836:14;7833:2;;;7868:6;7860;7853:22;7833:2;7896:22;;;;7952:4;7934:16;;;7930:27;7927:2;;;7975:6;7967;7960:22;7927:2;8006:21;8022:4;8006:21;:::i;:::-;8057:2;8051:9;8069:33;8094:7;8069:33;:::i;:::-;8111:22;;8179:2;8171:11;;;8165:18;8149:14;;;8142:42;8216:55;8267:2;8259:11;;8216:55;:::i;:::-;8211:2;8204:5;8200:14;8193:79;8311:2;8307;8303:11;8297:18;8340:2;8330:8;8327:16;8324:2;;;8361:6;8353;8346:22;8599:841;;8724:3;8768:2;8756:9;8747:7;8743:23;8739:32;8736:2;;;8789:6;8781;8774:22;8736:2;8820:19;8836:2;8820:19;:::i;:::-;8807:32;;8862:53;8905:9;8862:53;:::i;:::-;8855:5;8848:68;8969:2;8958:9;8954:18;8948:25;8943:2;8936:5;8932:14;8925:49;9027:2;9016:9;9012:18;9006:25;9001:2;8994:5;8990:14;8983:49;9085:2;9074:9;9070:18;9064:25;9059:2;9052:5;9048:14;9041:49;9144:3;9133:9;9129:19;9123:26;9117:3;9110:5;9106:15;9099:51;9204:3;9193:9;9189:19;9183:26;9177:3;9170:5;9166:15;9159:51;9264:3;9253:9;9249:19;9243:26;9237:3;9230:5;9226:15;9219:51;9324:3;9313:9;9309:19;9303:26;9297:3;9290:5;9286:15;9279:51;9349:3;9405:2;9394:9;9390:18;9384:25;9379:2;9372:5;9368:14;9361:49;;9429:5;9419:15;;;8704:736;;;;:::o;9839:777::-;;;;;10004:2;9992:9;9983:7;9979:23;9975:32;9972:2;;;10025:6;10017;10010:22;9972:2;10066:9;10053:23;10043:33;;10123:2;10112:9;10108:18;10095:32;10085:42;;10178:2;10167:9;10163:18;10150:32;10201:18;10242:2;10234:6;10231:14;10228:2;;;10263:6;10255;10248:22;10228:2;10306:6;10295:9;10291:22;10281:32;;10351:7;10344:4;10340:2;10336:13;10332:27;10322:2;;10378:6;10370;10363:22;10322:2;10423;10410:16;10449:2;10441:6;10438:14;10435:2;;;10470:6;10462;10455:22;10435:2;10520:7;10515:2;10506:6;10502:2;10498:15;10494:24;10491:37;10488:2;;;10546:6;10538;10531:22;10488:2;9962:654;;;;-1:-1:-1;;10582:2:103;10574:11;;-1:-1:-1;;;9962:654:103:o;10884:255::-;;;11024:2;11012:9;11003:7;10999:23;10995:32;10992:2;;;11045:6;11037;11030:22;10992:2;-1:-1:-1;;11073:16:103;;11129:2;11114:18;;;11108:25;11073:16;;11108:25;;-1:-1:-1;10982:157:103:o;11709:257::-;;11788:5;11782:12;11815:6;11810:3;11803:19;11831:63;11887:6;11880:4;11875:3;11871:14;11864:4;11857:5;11853:16;11831:63;:::i;:::-;11948:2;11927:15;-1:-1:-1;;11923:29:103;11914:39;;;;11955:4;11910:50;;11758:208;-1:-1:-1;;11758:208:103:o;11971:274::-;;12138:6;12132:13;12154:53;12200:6;12195:3;12188:4;12180:6;12176:17;12154:53;:::i;:::-;12223:16;;;;;12108:137;-1:-1:-1;;12108:137:103:o;12250:786::-;;12661:25;12656:3;12649:38;12716:6;12710:13;12732:62;12787:6;12782:2;12777:3;12773:12;12766:4;12758:6;12754:17;12732:62;:::i;:::-;-1:-1:-1;;;12853:2:103;12813:16;;;12845:11;;;12838:40;12903:13;;12925:63;12903:13;12974:2;12966:11;;12959:4;12947:17;;12925:63;:::i;:::-;13008:17;13027:2;13004:26;;12639:397;-1:-1:-1;;;;12639:397:103:o;13938:619::-;;14244:1;14240;14235:3;14231:11;14227:19;14219:6;14215:32;14204:9;14197:51;14284:6;14279:2;14268:9;14264:18;14257:34;14327:6;14322:2;14311:9;14307:18;14300:34;14370:3;14365:2;14354:9;14350:18;14343:31;14397:45;14437:3;14426:9;14422:19;14414:6;14397:45;:::i;:::-;14491:9;14483:6;14479:22;14473:3;14462:9;14458:19;14451:51;14519:32;14544:6;14536;14519:32;:::i;:::-;14511:40;14187:370;-1:-1:-1;;;;;;;;14187:370:103:o;14562:635::-;14733:2;14785:21;;;14855:13;;14758:18;;;14877:22;;;14562:635;;14733:2;14956:15;;;;14930:2;14915:18;;;14562:635;15002:169;15016:6;15013:1;15010:13;15002:169;;;15077:13;;15065:26;;15146:15;;;;15111:12;;;;15038:1;15031:9;15002:169;;;-1:-1:-1;15188:3:103;;14713:484;-1:-1:-1;;;;;;14713:484:103:o;15784:369::-;;15995:6;15988:14;15981:22;15970:9;15963:41;16040:6;16035:2;16024:9;16020:18;16013:34;16083:2;16078;16067:9;16063:18;16056:30;16103:44;16143:2;16132:9;16128:18;16120:6;16103:44;:::i;17816:621::-;;18095:6;18084:9;18077:25;18138:3;18133:2;18122:9;18118:18;18111:31;18165:45;18205:3;18194:9;18190:19;18182:6;18165:45;:::i;:::-;18258:9;18250:6;18246:22;18241:2;18230:9;18226:18;18219:50;18286:32;18311:6;18303;18286:32;:::i;:::-;-1:-1:-1;;;;;18354:32:103;;;;18349:2;18334:18;;18327:60;-1:-1:-1;;18418:3:103;18403:19;18396:35;18278:40;18067:370;-1:-1:-1;;;18067:370:103:o;18956:359::-;;19159:6;19148:9;19141:25;19202:6;19197:2;19186:9;19182:18;19175:34;19245:2;19240;19229:9;19225:18;19218:30;19265:44;19305:2;19294:9;19290:18;19282:6;19265:44;:::i;19644:432::-;;19875:6;19864:9;19857:25;19918:6;19913:2;19902:9;19898:18;19891:34;19961:6;19956:2;19945:9;19941:18;19934:34;20004:3;19999:2;19988:9;19984:18;19977:31;20025:45;20065:3;20054:9;20050:19;20042:6;20025:45;:::i;20775:250::-;20926:2;20911:18;;20959:1;20948:13;;20938:2;;20965:18;;:::i;:::-;20994:25;;;20893:132;:::o;21030:249::-;21180:2;21165:18;;21213:1;21202:13;;21192:2;;21219:18;;:::i;21284:219::-;;21433:2;21422:9;21415:21;21453:44;21493:2;21482:9;21478:18;21470:6;21453:44;:::i;22273:351::-;22475:2;22457:21;;;22514:2;22494:18;;;22487:30;22553:29;22548:2;22533:18;;22526:57;22615:2;22600:18;;22447:177::o;34073:1310::-;;34253:3;34242:9;34238:19;34230:27;;34290:6;34284:13;34273:9;34266:32;34354:4;34346:6;34342:17;34336:24;34329:4;34318:9;34314:20;34307:54;34417:4;34409:6;34405:17;34399:24;34392:4;34381:9;34377:20;34370:54;34480:4;34472:6;34468:17;34462:24;34455:4;34444:9;34440:20;34433:54;34543:4;34535:6;34531:17;34525:24;34518:4;34507:9;34503:20;34496:54;34606:4;34598:6;34594:17;34588:24;34581:4;34570:9;34566:20;34559:54;34669:4;34661:6;34657:17;34651:24;34644:4;34633:9;34629:20;34622:54;34732:4;34724:6;34720:17;34714:24;34707:4;34696:9;34692:20;34685:54;34758:6;34818:2;34810:6;34806:15;34800:22;34795:2;34784:9;34780:18;34773:50;;34842:6;34895:2;34887:6;34883:15;34877:22;34908:49;34953:2;34942:9;34938:18;34924:12;11683:13;11676:21;11664:34;;11654:50;34908:49;-1:-1:-1;;34976:6:103;35024:15;;;35018:22;34998:18;;;34991:50;35060:6;35108:15;;;35102:22;35082:18;;;35075:50;35144:6;35192:15;;;35186:22;35166:18;;;35159:50;35228:6;35276:15;;;35270:22;35250:18;;;35243:50;35312:6;35360:15;;;35354:22;35334:18;;;;35327:50;;;;34220:1163;:::o;36615:275::-;36686:2;36680:9;36751:2;36732:13;;-1:-1:-1;;36728:27:103;36716:40;;36786:18;36771:34;;36807:22;;;36768:62;36765:2;;;36833:18;;:::i;:::-;36869:2;36862:22;36660:230;;-1:-1:-1;36660:230:103:o;36895:128::-;;36966:1;36962:6;36959:1;36956:13;36953:2;;;36972:18;;:::i;:::-;-1:-1:-1;37008:9:103;;36943:80::o;37028:217::-;;37094:1;37084:2;;-1:-1:-1;;;37119:31:103;;37173:4;37170:1;37163:15;37201:4;37126:1;37191:15;37084:2;-1:-1:-1;37230:9:103;;37074:171::o;37250:168::-;;37356:1;37352;37348:6;37344:14;37341:1;37338:21;37333:1;37326:9;37319:17;37315:45;37312:2;;;37363:18;;:::i;:::-;-1:-1:-1;37403:9:103;;37302:116::o;37423:125::-;;37491:1;37488;37485:8;37482:2;;;37496:18;;:::i;:::-;-1:-1:-1;37533:9:103;;37472:76::o;37553:258::-;37625:1;37635:113;37649:6;37646:1;37643:13;37635:113;;;37725:11;;;37719:18;37706:11;;;37699:39;37671:2;37664:10;37635:113;;;37766:6;37763:1;37760:13;37757:2;;;-1:-1:-1;;37801:1:103;37783:16;;37776:27;37606:205::o;37816:136::-;;37883:5;37873:2;;37892:18;;:::i;:::-;-1:-1:-1;;;37928:18:103;;37863:89::o;37957:135::-;;-1:-1:-1;;38017:17:103;;38014:2;;;38037:18;;:::i;:::-;-1:-1:-1;38084:1:103;38073:13;;38004:88::o;38097:127::-;38158:10;38153:3;38149:20;38146:1;38139:31;38189:4;38186:1;38179:15;38213:4;38210:1;38203:15;38229:127;38290:10;38285:3;38281:20;38278:1;38271:31;38321:4;38318:1;38311:15;38345:4;38342:1;38335:15;38361:127;38422:10;38417:3;38413:20;38410:1;38403:31;38453:4;38450:1;38443:15;38477:4;38474:1;38467:15;38493:131;-1:-1:-1;;;;;38568:31:103;;38558:42;;38548:2;;38614:1;38611;38604:12"},"methodIdentifiers":{"AAAY_MAX()":"aec8de39","AAAY_MIN()":"4ce9d0a7","DEFAULT_ADMIN_ROLE()":"a217fddf","INSURER_ROLE()":"056c9989","NAME()":"a3f4df7e","PERCENTAGE_MULTIPLIER()":"54111315","POLICY_FLOW()":"09128d83","RISK_APH_MAX()":"1c3456dd","RISK_EXIT_MAX()":"f406460c","RISK_TSI_AT_EXIT_MIN()":"90e1a2ac","VERSION()":"ffa1ad74","adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","adjustRisk(bytes32,uint256,uint256,uint256,uint256)":"78a433a5","applications()":"7ce5e82f","applyForPolicy(address,uint256,uint256,bytes32)":"4b6eb669","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","calculatePayout(uint256,uint256)":"9dce5ff0","calculatePayoutPercentage(uint256,uint256,uint256,uint256,uint256)":"46b937f6","cancelOracleRequest(bytes32)":"597ee798","collectPremium(bytes32)":"b9ea8d66","collectPremium(bytes32,address,uint256)":"e5d58cd8","createRisk(bytes32,bytes32,bytes32,uint256,uint256,uint256,uint256)":"3dc5f58e","declineCallback()":"bd1fe5d0","getApplicationDataStructure()":"94f64ff4","getApplicationId(uint256)":"d52d2d06","getClaimDataStructure()":"3ec92bda","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getPayoutDataStructure()":"39cf5e16","getPercentageMultiplier()":"66528c3b","getPolicyFlow()":"637d08f4","getPolicyId(bytes32,uint256)":"412f91d9","getRegistry()":"5ab1bd53","getRisk(bytes32)":"5a602109","getRiskId(bytes32,bytes32,bytes32)":"e9960d8a","getRiskId(uint256)":"eb807339","getRiskpoolId()":"70d2fe53","getRoleAdmin(bytes32)":"248a9ca3","getState()":"1865c57d","getToken()":"21df0da7","getType()":"15dae03e","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","oracleCallback(uint256,bytes32,bytes)":"5e61aa63","owner()":"8da5cb5b","pauseCallback()":"d73cd992","policies(bytes32)":"ddbfd8ef","processPoliciesForRisk(bytes32,uint256)":"1fd358aa","processPolicy(bytes32)":"0b228d95","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","resumeCallback()":"a18f5ae2","revokeRole(bytes32,address)":"d547741f","riskPoolCapacityCallback(uint256)":"f4fdc1fa","risks()":"f9d7ff89","setId(uint256)":"d0e0ba95","supportsInterface(bytes4)":"01ffc9a7","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","triggerOracle(bytes32)":"06136f28","underwrite(bytes32)":"1b07b17f","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"productName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"oracleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"insurer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"}],\"name\":\"LogAyiiClaimCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"}],\"name\":\"LogAyiiPayoutCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogAyiiPolicyApplicationCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogAyiiPolicyCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"LogAyiiPolicyProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"}],\"name\":\"LogAyiiRiskDataAfterAdjustment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"}],\"name\":\"LogAyiiRiskDataBeforeAdjustment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"productId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"}],\"name\":\"LogAyiiRiskDataCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"}],\"name\":\"LogAyiiRiskDataReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"LogAyiiRiskDataRequestCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"}],\"name\":\"LogAyiiRiskDataRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"policies\",\"type\":\"uint256\"}],\"name\":\"LogAyiiRiskProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"LogProductCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callSuccess\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"returnDataLength\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"LogTransferHelperCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"tokenIsContract\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"LogTransferHelperInputValidation1Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"}],\"name\":\"LogTransferHelperInputValidation2Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AAAY_MAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AAAY_MIN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INSURER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERCENTAGE_MULTIPLIER\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POLICY_FLOW\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISK_APH_MAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISK_EXIT_MAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISK_TSI_AT_EXIT_MIN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"}],\"name\":\"adjustRisk\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"applications\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"applicationCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"name\":\"applyForPolicy\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"calculatePayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"}],\"name\":\"calculatePayoutPercentage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutPercentage\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"cancelOracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremium\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremium\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"}],\"name\":\"createRisk\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApplicationDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"applicationIdx\",\"type\":\"uint256\"}],\"name\":\"getApplicationId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayoutDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPercentageMultiplier\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"multiplier\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"policyIdx\",\"type\":\"uint256\"}],\"name\":\"getPolicyId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"name\":\"getRisk\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"trigger\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"exit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tsi\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aph\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"requestTriggered\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"responseAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aaay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct AyiiProduct.Risk\",\"name\":\"risk\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"projectId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"uaiId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"cropId\",\"type\":\"bytes32\"}],\"name\":\"getRiskId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getRiskId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"responseData\",\"type\":\"bytes\"}],\"name\":\"oracleCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"}],\"name\":\"policies\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"policyCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"riskId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"batchSize\",\"type\":\"uint256\"}],\"name\":\"processPoliciesForRisk\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"processedPolicies\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"processPolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"riskPoolCapacityCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"risks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"triggerOracle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/AyiiProduct.sol\":\"AyiiProduct\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Product.sol\":{\"keccak256\":\"0xdf55ff9638da4db1501362fc2ffcd26858b7c09b7cc5e0701f1bb31081142815\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fdbfbd830dafe0d721150778469cbbdf01058f8713c3636d2ba48234761e8590\",\"dweb:/ipfs/QmZ9K5X2ant5TtUhA9kgXUAMe7y9MUHpnv3PQUKAmxwVYj\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/examples/AyiiProduct.sol\":{\"keccak256\":\"0x0f7184b5daa0932ec44d53e83e961027504a6b40c3731074c3cafcc1f6f26fdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5ce8cd2c38ce88e721aa1d80646612f29263945dfd5c54c8e2ebfd01d68b4a1\",\"dweb:/ipfs/QmcRWz1dusXD1Jh8qhbQchbpSCmV1N1EZxyJuM3mmBUAhc\"]},\"contracts/modules/AccessController.sol\":{\"keccak256\":\"0xc8293dfdc5c092e2fcea16d8a68117c9367dd09b3d951b5e730a588652212928\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://91e551839506ea79fadff0e2ea72c033c5d68d61a8414301307a172dc770f885\",\"dweb:/ipfs/QmWibGimWPLxXgNcpKUPidyTTBqvyjdV2dnQfNGfWMDgJ8\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]}},\"version\":1}"}},"contracts/examples/AyiiRiskpool.sol":{"AyiiRiskpool":{"abi":[{"inputs":[{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"uint256","name":"collateralization","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"activeBundles","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"LogBasicRiskpoolBundlesAndPolicies","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogBasicRiskpoolCandidateBundleAmountCheck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isMatching","type":"bool"}],"name":"LogRiskpoolBundleMatchesPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isSecured","type":"bool"}],"name":"LogRiskpoolCollateralLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolAddress","type":"address"}],"name":"LogRiskpoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_FILTER_DATA_STRUCTURE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FULL_COLLATERALIZATION_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INVESTOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUM_OF_SUM_INSURED_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"},{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"name":"bundleMatchesApplication","outputs":[{"internalType":"bool","name":"isMatching","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialAmount","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapital","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getErc20Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFilterDataStructure","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSumOfSumInsuredCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"investor","type":"address"}],"name":"grantInvestorRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3738:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"239:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"214:24:103"},"nodeType":"YulFunctionCall","src":"214:31:103"},"nodeType":"YulExpressionStatement","src":"214:31:103"},{"nodeType":"YulAssignment","src":"254:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"264:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"254:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:261:103"},{"body":{"nodeType":"YulBlock","src":"429:504:103","statements":[{"body":{"nodeType":"YulBlock","src":"476:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"485:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"493:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"478:6:103"},"nodeType":"YulFunctionCall","src":"478:22:103"},"nodeType":"YulExpressionStatement","src":"478:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"450:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"459:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"446:3:103"},"nodeType":"YulFunctionCall","src":"446:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"471:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"442:3:103"},"nodeType":"YulFunctionCall","src":"442:33:103"},"nodeType":"YulIf","src":"439:2:103"},{"nodeType":"YulAssignment","src":"511:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"527:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"521:5:103"},"nodeType":"YulFunctionCall","src":"521:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"511:6:103"}]},{"nodeType":"YulAssignment","src":"546:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"566:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"577:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"562:3:103"},"nodeType":"YulFunctionCall","src":"562:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"556:5:103"},"nodeType":"YulFunctionCall","src":"556:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"546:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"590:38:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"613:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"624:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"609:3:103"},"nodeType":"YulFunctionCall","src":"609:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"603:5:103"},"nodeType":"YulFunctionCall","src":"603:25:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"594:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"662:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"637:24:103"},"nodeType":"YulFunctionCall","src":"637:31:103"},"nodeType":"YulExpressionStatement","src":"637:31:103"},{"nodeType":"YulAssignment","src":"677:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"687:5:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"677:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"701:40:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"726:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"737:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"722:3:103"},"nodeType":"YulFunctionCall","src":"722:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"716:5:103"},"nodeType":"YulFunctionCall","src":"716:25:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"705:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"775:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"750:24:103"},"nodeType":"YulFunctionCall","src":"750:33:103"},"nodeType":"YulExpressionStatement","src":"750:33:103"},{"nodeType":"YulAssignment","src":"792:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"802:7:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"792:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"818:41:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"839:3:103"},"nodeType":"YulFunctionCall","src":"839:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"833:5:103"},"nodeType":"YulFunctionCall","src":"833:26:103"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"822:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"893:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"868:24:103"},"nodeType":"YulFunctionCall","src":"868:33:103"},"nodeType":"YulExpressionStatement","src":"868:33:103"},{"nodeType":"YulAssignment","src":"910:17:103","value":{"name":"value_2","nodeType":"YulIdentifier","src":"920:7:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"910:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"363:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"374:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"386:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"394:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"402:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"410:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"418:6:103","type":""}],"src":"280:653:103"},{"body":{"nodeType":"YulBlock","src":"1040:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1086:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1095:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1103:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1088:6:103"},"nodeType":"YulFunctionCall","src":"1088:22:103"},"nodeType":"YulExpressionStatement","src":"1088:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1061:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1070:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1057:3:103"},"nodeType":"YulFunctionCall","src":"1057:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1082:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1053:3:103"},"nodeType":"YulFunctionCall","src":"1053:32:103"},"nodeType":"YulIf","src":"1050:2:103"},{"nodeType":"YulVariableDeclaration","src":"1121:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1140:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1134:5:103"},"nodeType":"YulFunctionCall","src":"1134:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1125:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1184:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1159:24:103"},"nodeType":"YulFunctionCall","src":"1159:31:103"},"nodeType":"YulExpressionStatement","src":"1159:31:103"},{"nodeType":"YulAssignment","src":"1199:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1209:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1199:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IBundleToken_$6825_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1006:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1017:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1029:6:103","type":""}],"src":"938:282:103"},{"body":{"nodeType":"YulBlock","src":"1326:76:103","statements":[{"nodeType":"YulAssignment","src":"1336:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1348:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1359:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1344:3:103"},"nodeType":"YulFunctionCall","src":"1344:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1336:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1378:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1389:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1371:6:103"},"nodeType":"YulFunctionCall","src":"1371:25:103"},"nodeType":"YulExpressionStatement","src":"1371:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1295:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1306:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1317:4:103","type":""}],"src":"1225:177:103"},{"body":{"nodeType":"YulBlock","src":"1608:415:103","statements":[{"nodeType":"YulAssignment","src":"1618:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1630:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1641:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1626:3:103"},"nodeType":"YulFunctionCall","src":"1626:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1618:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1661:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1672:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1654:6:103"},"nodeType":"YulFunctionCall","src":"1654:25:103"},"nodeType":"YulExpressionStatement","src":"1654:25:103"},{"body":{"nodeType":"YulBlock","src":"1721:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1742:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1749:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1754:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1745:3:103"},"nodeType":"YulFunctionCall","src":"1745:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1735:6:103"},"nodeType":"YulFunctionCall","src":"1735:31:103"},"nodeType":"YulExpressionStatement","src":"1735:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1786:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1789:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1779:6:103"},"nodeType":"YulFunctionCall","src":"1779:15:103"},"nodeType":"YulExpressionStatement","src":"1779:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1814:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1817:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1807:6:103"},"nodeType":"YulFunctionCall","src":"1807:15:103"},"nodeType":"YulExpressionStatement","src":"1807:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1701:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1709:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1698:2:103"},"nodeType":"YulFunctionCall","src":"1698:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1691:6:103"},"nodeType":"YulFunctionCall","src":"1691:21:103"},"nodeType":"YulIf","src":"1688:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1852:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1863:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1848:3:103"},"nodeType":"YulFunctionCall","src":"1848:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1868:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1841:6:103"},"nodeType":"YulFunctionCall","src":"1841:34:103"},"nodeType":"YulExpressionStatement","src":"1841:34:103"},{"nodeType":"YulVariableDeclaration","src":"1884:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1902:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1907:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1898:3:103"},"nodeType":"YulFunctionCall","src":"1898:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1911:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1894:3:103"},"nodeType":"YulFunctionCall","src":"1894:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1888:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1933:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1944:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1929:3:103"},"nodeType":"YulFunctionCall","src":"1929:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1953:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1961:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1949:3:103"},"nodeType":"YulFunctionCall","src":"1949:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1922:6:103"},"nodeType":"YulFunctionCall","src":"1922:43:103"},"nodeType":"YulExpressionStatement","src":"1922:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1996:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1981:3:103"},"nodeType":"YulFunctionCall","src":"1981:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2005:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2013:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2001:3:103"},"nodeType":"YulFunctionCall","src":"2001:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1974:6:103"},"nodeType":"YulFunctionCall","src":"1974:43:103"},"nodeType":"YulExpressionStatement","src":"1974:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1553:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1564:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1572:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1580:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1588:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1599:4:103","type":""}],"src":"1407:616:103"},{"body":{"nodeType":"YulBlock","src":"2202:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2219:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2230:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2212:6:103"},"nodeType":"YulFunctionCall","src":"2212:21:103"},"nodeType":"YulExpressionStatement","src":"2212:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2253:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2264:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2249:3:103"},"nodeType":"YulFunctionCall","src":"2249:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2242:6:103"},"nodeType":"YulFunctionCall","src":"2242:30:103"},"nodeType":"YulExpressionStatement","src":"2242:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2303:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2288:3:103"},"nodeType":"YulFunctionCall","src":"2288:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2308:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2281:6:103"},"nodeType":"YulFunctionCall","src":"2281:62:103"},"nodeType":"YulExpressionStatement","src":"2281:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2363:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2374:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2359:3:103"},"nodeType":"YulFunctionCall","src":"2359:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2379:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2352:6:103"},"nodeType":"YulFunctionCall","src":"2352:33:103"},"nodeType":"YulExpressionStatement","src":"2352:33:103"},{"nodeType":"YulAssignment","src":"2394:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2406:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2417:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:103"},"nodeType":"YulFunctionCall","src":"2402:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2394:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2179:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2193:4:103","type":""}],"src":"2028:399:103"},{"body":{"nodeType":"YulBlock","src":"2606:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2623:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2634:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2616:6:103"},"nodeType":"YulFunctionCall","src":"2616:21:103"},"nodeType":"YulExpressionStatement","src":"2616:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2657:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2668:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2653:3:103"},"nodeType":"YulFunctionCall","src":"2653:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2673:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2646:6:103"},"nodeType":"YulFunctionCall","src":"2646:30:103"},"nodeType":"YulExpressionStatement","src":"2646:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2696:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2707:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2692:3:103"},"nodeType":"YulFunctionCall","src":"2692:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2712:34:103","type":"","value":"ERROR:RPL-003:ERC20_ADDRESS_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2685:6:103"},"nodeType":"YulFunctionCall","src":"2685:62:103"},"nodeType":"YulExpressionStatement","src":"2685:62:103"},{"nodeType":"YulAssignment","src":"2756:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2779:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2764:3:103"},"nodeType":"YulFunctionCall","src":"2764:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2756:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2583:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2597:4:103","type":""}],"src":"2432:356:103"},{"body":{"nodeType":"YulBlock","src":"2967:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2984:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2995:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2977:6:103"},"nodeType":"YulFunctionCall","src":"2977:21:103"},"nodeType":"YulExpressionStatement","src":"2977:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3018:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3029:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3014:3:103"},"nodeType":"YulFunctionCall","src":"3014:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3034:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3007:6:103"},"nodeType":"YulFunctionCall","src":"3007:30:103"},"nodeType":"YulExpressionStatement","src":"3007:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3068:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3053:3:103"},"nodeType":"YulFunctionCall","src":"3053:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3073:34:103","type":"","value":"ERROR:RPL-004:WALLET_ADDRESS_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3046:6:103"},"nodeType":"YulFunctionCall","src":"3046:62:103"},"nodeType":"YulExpressionStatement","src":"3046:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3128:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3139:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3124:3:103"},"nodeType":"YulFunctionCall","src":"3124:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3144:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3117:6:103"},"nodeType":"YulFunctionCall","src":"3117:31:103"},"nodeType":"YulExpressionStatement","src":"3117:31:103"},{"nodeType":"YulAssignment","src":"3157:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3180:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3165:3:103"},"nodeType":"YulFunctionCall","src":"3165:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3157:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2944:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2958:4:103","type":""}],"src":"2793:397:103"},{"body":{"nodeType":"YulBlock","src":"3369:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3397:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3379:6:103"},"nodeType":"YulFunctionCall","src":"3379:21:103"},"nodeType":"YulExpressionStatement","src":"3379:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3431:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3416:3:103"},"nodeType":"YulFunctionCall","src":"3416:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3436:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3409:6:103"},"nodeType":"YulFunctionCall","src":"3409:30:103"},"nodeType":"YulExpressionStatement","src":"3409:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3470:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3455:3:103"},"nodeType":"YulFunctionCall","src":"3455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3475:34:103","type":"","value":"ERROR:RPL-002:SUM_OF_SUM_INSURED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3448:6:103"},"nodeType":"YulFunctionCall","src":"3448:62:103"},"nodeType":"YulExpressionStatement","src":"3448:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3541:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3526:3:103"},"nodeType":"YulFunctionCall","src":"3526:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3546:11:103","type":"","value":"_CAP_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3519:6:103"},"nodeType":"YulFunctionCall","src":"3519:39:103"},"nodeType":"YulExpressionStatement","src":"3519:39:103"},{"nodeType":"YulAssignment","src":"3567:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3579:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3590:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3575:3:103"},"nodeType":"YulFunctionCall","src":"3575:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3567:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3346:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3360:4:103","type":""}],"src":"3195:405:103"},{"body":{"nodeType":"YulBlock","src":"3650:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"3714:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3723:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3726:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3716:6:103"},"nodeType":"YulFunctionCall","src":"3716:12:103"},"nodeType":"YulExpressionStatement","src":"3716:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3673:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3684:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3699:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3704:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3695:3:103"},"nodeType":"YulFunctionCall","src":"3695:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3708:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3691:3:103"},"nodeType":"YulFunctionCall","src":"3691:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3680:3:103"},"nodeType":"YulFunctionCall","src":"3680:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3670:2:103"},"nodeType":"YulFunctionCall","src":"3670:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3663:6:103"},"nodeType":"YulFunctionCall","src":"3663:50:103"},"nodeType":"YulIf","src":"3660:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3639:5:103","type":""}],"src":"3605:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256t_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n let value := mload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n let value_1 := mload(add(headStart, 96))\n validator_revert_address(value_1)\n value3 := value_1\n let value_2 := mload(add(headStart, 128))\n validator_revert_address(value_2)\n value4 := value_2\n }\n function abi_decode_tuple_t_contract$_IBundleToken_$6825_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPL-004:WALLET_ADDRESS_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:RPL-002:SUM_OF_SUM_INSURED\")\n mstore(add(headStart, 96), \"_CAP_ZERO\")\n tail := add(headStart, 128)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526011805463ffffffff191690553480156200001e57600080fd5b5060405162003911380380620039118339810160408190526200004191620006b2565b848469d3c21bcecceda10000008585858585858585858560028262000066336200049a565b6001600160a01b038116620000ce5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000f8620004ea565b600480546001600160a01b0319166001600160a01b03929092169190911790556200012262000505565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014c62000532565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019f57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001f392909160ff82169130916101009091046001600160a01b03169062000719565b60405180910390a1505050600d85905583620002645760405162461bcd60e51b815260206004820152602960248201527f4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b6064820152608401620000c5565b600e8490556001600160a01b038316620002c15760405162461bcd60e51b815260206004820181905260248201527f4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f6044820152606401620000c5565b600c80546001600160a01b0319166001600160a01b038581169190911790915582166200033b5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401620000c5565b600b80546001600160a01b0319166001600160a01b038416179055620003736e496e7374616e63655365727669636560881b6200054c565b600780546001600160a01b0319166001600160a01b0392909216919091179055620003b06e5269736b706f6f6c5365727669636560881b6200054c565b600880546001600160a01b0319166001600160a01b0392831617905560075460408051633acd5e0f60e21b81529051919092169163eb35783c916004808301926020929190829003018186803b1580156200040a57600080fd5b505afa1580156200041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044591906200068c565b600980546001600160a01b0319166001600160a01b0392909216919091179055506200048b9a506000995062000485985062000496975050505050505050565b620005d8565b50505050506200077d565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620005006541636365737360d01b6200054c565b905090565b6000620005007f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200054c565b6000620005006e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200059757600080fd5b505afa158015620005ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d291906200068c565b92915050565b620005e48282620005e8565b5050565b60008281526012602090815260408083206001600160a01b038516845290915290205460ff16620005e45760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620006483390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000602082840312156200069e578081fd5b8151620006ab8162000764565b9392505050565b600080600080600060a08688031215620006ca578081fd5b85519450602086015193506040860151620006e58162000764565b6060870151909350620006f88162000764565b60808701519092506200070b8162000764565b809150509295509295909350565b84815260808101600385106200073f57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6001600160a01b03811681146200077a57600080fd5b50565b613184806200078d6000396000f3fe608060405234801561001057600080fd5b50600436106103af5760003560e01c80637893c7bc116101f4578063a217fddf1161011a578063d0e0ba95116100ad578063e0815f0d1161007c578063e0815f0d14610735578063f1d354d01461073d578063f2fde38b1461074b578063feb1824b1461075e576103af565b8063d0e0ba9514610707578063d547741f1461071a578063d73cd99214610462578063e00323831461072d576103af565b8063be169e7e116100e9578063be169e7e146106d3578063be61e91e146106db578063c3004c86146106ec578063c40000d4146106ff576103af565b8063a217fddf146106c3578063b26025aa146106cb578063b3fca9bd14610462578063bd1fe5d014610462576103af565b80638c483e5a116101925780639a82f890116101615780639a82f890146106a0578063a17030d5146106a8578063a18aa128146106bb578063a18f5ae214610462576103af565b80638c483e5a146106565780638da5cb5b146106695780639088c1191461067a57806391d148541461068d576103af565b806386c71288116101ce57806386c712881461061257806389002da514610628578063890fbf781461063b578063893d20e81461064e576103af565b80637893c7bc146105e15780637f3b6980146105f757806382558906146105ff576103af565b80633629c3c4116102d957806359dacc6a11610277578063652028e511610246578063652028e51461058c578063715018a61461059f57806376082a5e146105a75780637888a2ff146105ce576103af565b806359dacc6a146104625780635ab1bd53146105655780635d1ca6311461057c578063638ce0ba14610584576103af565b80634101b90c116102b35780634101b90c1461053357806345fe1c6d1461053b57806354afef631461054a578063587e59d014610552576103af565b80633629c3c4146104f057806336568abe146105035780633dcdde1714610516576103af565b80631865c57d116103515780632d0821b7116103205780632d0821b7146104975780632f2ff15d146104b7578063316c5348146104ca57806336153f3a146104dd576103af565b80631865c57d1461044d5780631b867c6314610462578063248a9ca31461046c578063258d560c1461048f576103af565b8063132996041161038d578063132996041461040557806315dae03e1461042a57806317d7de7c1461043d57806318442e6314610445576103af565b806301ffc9a7146103b45780630676cb0e146103dc57806312065fe0146103fd575b600080fd5b6103c76103c2366004612a20565b61076f565b60405190151581526020015b60405180910390f35b6103ef6103ea3660046129b8565b6107a8565b6040519081526020016103d3565b6103ef610922565b600b546001600160a01b03165b6040516001600160a01b0390911681526020016103d3565b60035460ff166040516103d39190612e3e565b6001546103ef565b600a546103ef565b6104556109b2565b6040516103d39190612e24565b61046a610a38565b005b6103ef61047a3660046129b8565b60009081526012602052604090206001015490565b6103c7610a7f565b6104aa6104a53660046129b8565b610aaf565b6040516103d39190612f0a565b61046a6104c53660046129d0565b610bc4565b61046a6104d83660046129b8565b610bee565b6103ef6104eb3660046129ff565b610d8f565b61046a6104fe3660046129ff565b610f5b565b61046a6105113660046129d0565b610fe3565b6040805160208101909152600081525b6040516103d39190612e52565b6103ef611061565b6103ef670de0b6b3a764000081565b600d546103ef565b61046a6105603660046129b8565b61109f565b61041260035461010090046001600160a01b031690565b6002546103ef565b61046a61120c565b61046a61059a3660046129b8565b611259565b61046a6112d6565b6103ef7f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93581565b6103ef6105dc366004612a48565b6112e8565b6105266040518060200160405280600081525081565b6103ef611326565b61046a61060d3660046129ff565b611364565b6103c7610620366004612c29565b506001919050565b6103ef6106363660046129ff565b6113e4565b6103c76106493660046129ff565b611558565b6104126115ef565b61046a6106643660046129b8565b611601565b6000546001600160a01b0316610412565b61046a610688366004612980565b61176e565b6103c761069b3660046129d0565b6117a3565b6103c76117ce565b61046a6106b63660046129b8565b6117d6565b600e546103ef565b6103ef600081565b6103ef611943565b61046a611981565b6103ef69d3c21bcecceda100000081565b61046a6106fa3660046129b8565b6119ce565b6103ef611a52565b61046a6107153660046129b8565b611a90565b61046a6107283660046129d0565b611ada565b6103ef611aff565b6103c7611b3c565b670de0b6b3a76400006103ef565b61046a610759366004612980565b611b45565b600c546001600160a01b0316610412565b60006001600160e01b03198216637965db0b60e01b14806107a057506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b6000806107b460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190612d23565b83106108985760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190612d23565b9392505050565b60008061092e60025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190612d23565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156109fb57600080fd5b505afa158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190612a8b565b905090565b610a4d6810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614610a7d5760405162461bcd60e51b815260040161088f90612e65565b565b600060025b60035460ff166002811115610aa957634e487b7160e01b600052602160045260246000fd5b14905090565b610ab76127de565b600a548210610b145760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b606482015260840161088f565b6000600a8381548110610b3757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b158015610b8857600080fd5b505afa158015610b9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091b9190810190612b55565b600082815260126020526040902060010154610bdf81611c3d565b610be98383611c47565b505050565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3757600080fd5b505afa158015610c4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c739190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610cb09160040190815260200190565b60206040518083038186803b158015610cc857600080fd5b505afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d00919061299c565b9050336001600160a01b03821614610d2a5760405162461bcd60e51b815260040161088f90612e9c565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e149190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610e519160040190815260200190565b60206040518083038186803b158015610e6957600080fd5b505afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061299c565b9050336001600160a01b03821614610ecb5760405162461bcd60e51b815260040161088f90612e9c565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610f1957600080fd5b505af1158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f519190612d23565b9695505050505050565b610f6b63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614610f9b5760405162461bcd60e51b815260040161088f90612ed3565b610fa58282611ccd565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b6001600160a01b03811633146110535760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161088f565b61105d8282611d4f565b5050565b60008061106d60025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240161095c565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156110e857600080fd5b505afa1580156110fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111249190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916111619160040190815260200190565b60206040518083038186803b15801561117957600080fd5b505afa15801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b1919061299c565b9050336001600160a01b038216146111db5760405162461bcd60e51b815260040161088f90612e9c565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610d57565b6112216810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146112515760405162461bcd60e51b815260040161088f90612e65565b610a7d611db6565b611261611e37565b600061126c60025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050505050565b6112de611e37565b610a7d6000611e91565b60007f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93561131481611c3d565b61131e8484611ee1565b949350505050565b60008061133260025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db328449060240161095c565b61137463141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b0316146113a45760405162461bcd60e51b815260040161088f90612ed3565b6113ae8282611fe4565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610fd7565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b15801561142d57600080fd5b505afa158015611441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114699190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916114a69160040190815260200190565b60206040518083038186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f6919061299c565b9050336001600160a01b038216146115205760405162461bcd60e51b815260040161088f90612e9c565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610eff565b600061156a63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b03161461159a5760405162461bcd60e51b815260040161088f90612ed3565b6115a48383612033565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610a33565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561164a57600080fd5b505afa15801561165e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116869190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116c39160040190815260200190565b60206040518083038186803b1580156116db57600080fd5b505afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061299c565b9050336001600160a01b0382161461173d5760405162461bcd60e51b815260040161088f90612e9c565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610d57565b611776611e37565b6117a07f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93582612436565b50565b60009182526012602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080610a84565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261185b9190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916118989160040190815260200190565b60206040518083038186803b1580156118b057600080fd5b505afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e8919061299c565b9050336001600160a01b038216146119125760405162461bcd60e51b815260040161088f90612e9c565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610d57565b60008061194f60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d92359060240161095c565b6119966810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146119c65760405162461bcd60e51b815260040161088f90612e65565b610a7d612440565b6119de63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614611a0e5760405162461bcd60e51b815260040161088f90612ed3565b6000611a1982612528565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610fd7565b600080611a5e60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f9060240161095c565b611aa56810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614611ad55760405162461bcd60e51b815260040161088f90612e65565b600255565b600082815260126020526040902060010154611af581611c3d565b610be98383611d4f565b600080611b0b60025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b03169063295609809060240161095c565b60006001610a84565b611b4d611e37565b6001600160a01b038116611bb25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088f565b6117a081611e91565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c0557600080fd5b505afa158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a0919061299c565b6117a08133612598565b611c5182826117a3565b61105d5760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611c893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611d3257600080fd5b505af1158015611d46573d6000803e3d6000fd5b50505050505050565b611d5982826117a3565b1561105d5760008281526012602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e7490611f1a90849088908890600401612df0565b602060405180830381600087803b158015611f3457600080fd5b505af1158015611f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6c9190612d23565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611d18565b60008061203e611061565b9050600061204a611aff565b90506000612056611943565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a1600083116120eb5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c455300604482015260640161088f565b80821161213a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c000000604482015260640161088f565b6121448582612ffa565b821061242d57600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561218f57600080fd5b505afa1580156121a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121cb9190810190612aaa565b6011549091506000906121e590869063ffffffff166130ca565b905060005b85811080156121f7575086155b15612429576000612207836107a8565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561225157600080fd5b505afa158015612265573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261228d9190810190612b55565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a180156124135760008260c001518360a001516122ec9190613031565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b81106123f857600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b15801561239257600080fd5b505af11580156123a6573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff169250906123d4836130a6565b91906101000a81548163ffffffff021916908363ffffffff16021790555050612411565b89612404876001612ffa565b61240e91906130ca565b95505b505b50505080806124219061308b565b9150506121ea565b5050505b50505092915050565b61105d8282611c47565b600061244b60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561249057600080fd5b505afa1580156124a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c89190612d23565b156117a05760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b606482015260840161088f565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561258457600080fd5b505af11580156108f7573d6000803e3d6000fd5b6125a282826117a3565b61105d576125ba816001600160a01b031660146125fc565b6125c58360206125fc565b6040516020016125d6929190612d7b565b60408051601f198184030181529082905262461bcd60e51b825261088f91600401612e52565b6060600061260b836002613012565b612616906002612ffa565b67ffffffffffffffff81111561263c57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612666576020820181803683370190505b509050600360fc1b8160008151811061268f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126cc57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006126f0846002613012565b6126fb906001612ffa565b90505b600181111561278f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061273d57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061276157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361278881613074565b90506126fe565b50831561091b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161088f565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561282057634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612860578081fd5b813561287361286e82612fd2565b612fa1565b818152846020838601011115612887578283fd5b816020850160208301379081016020019190915292915050565b600082601f8301126128b1578081fd5b81516128bf61286e82612fd2565b8181528460208386010111156128d3578283fd5b61131e826020830160208701613048565b80356107a381613141565b80516107a381613141565b600060c0828403121561290b578081fd5b61291560c0612fa1565b9050813561292281613141565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561295457600080fd5b61296084828501612850565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612991578081fd5b813561091b8161312c565b6000602082840312156129ad578081fd5b815161091b8161312c565b6000602082840312156129c9578081fd5b5035919050565b600080604083850312156129e2578081fd5b8235915060208301356129f48161312c565b809150509250929050565b60008060408385031215612a11578182fd5b50508035926020909101359150565b600060208284031215612a31578081fd5b81356001600160e01b03198116811461091b578182fd5b60008060408385031215612a5a578182fd5b823567ffffffffffffffff811115612a70578283fd5b612a7c85828601612850565b95602094909401359450505050565b600060208284031215612a9c578081fd5b81516007811061091b578182fd5b600060208284031215612abb578081fd5b815167ffffffffffffffff80821115612ad2578283fd5b9083019060c08286031215612ae5578283fd5b612aef60c0612fa1565b8251612afa81613141565b808252506020830151602082015260408301516040820152606083015182811115612b23578485fd5b612b2f878286016128a1565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612b66578081fd5b815167ffffffffffffffff80821115612b7d578283fd5b8184019150610140808387031215612b93578384fd5b612b9c81612fa1565b9050825181526020830151602082015260408301516040820152612bc2606084016128ef565b6060820152608083015182811115612bd8578485fd5b612be4878286016128a1565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60008060408385031215612c3b578182fd5b823567ffffffffffffffff80821115612c52578384fd5b8185019150610140808388031215612c68578485fd5b612c7181612fa1565b9050823581526020830135602082015260408301356040820152612c97606084016128e4565b6060820152608083013582811115612cad578586fd5b612cb988828601612850565b60808301525060a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250809450506020850135915080821115612d0c578283fd5b50612d19858286016128fa565b9150509250929050565b600060208284031215612d34578081fd5b5051919050565b60008151808452612d53816020860160208601613048565b601f01601f19169290920160200192915050565b60048110612d7757612d77613100565b9052565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612db3816017850160208801613048565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612de4816028840160208801613048565b01602801949350505050565b6001600160a01b0384168152606060208201819052600090612e1490830185612d3b565b9050826040830152949350505050565b6020810160078310612e3857612e38613100565b91905290565b6020810160038310612e3857612e38613100565b60006020825261091b6020830184612d3b565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612f3d6080840182612d67565b5060808301516101408060a0850152612f5a610160850183612d3b565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612fca57612fca613116565b604052919050565b600067ffffffffffffffff821115612fec57612fec613116565b50601f01601f191660200190565b6000821982111561300d5761300d6130ea565b500190565b600081600019048311821515161561302c5761302c6130ea565b500290565b600082821015613043576130436130ea565b500390565b60005b8381101561306357818101518382015260200161304b565b83811115611e315750506000910152565b600081613083576130836130ea565b506000190190565b600060001982141561309f5761309f6130ea565b5060010190565b600063ffffffff808316818114156130c0576130c06130ea565b6001019392505050565b6000826130e557634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146117a057600080fd5b600481106117a057600080fdfea26469706673582212209e8ff8b71639b58bff88d3c17bb55e56c77f9b7258fc689f49deade934a4a8be64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x11 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3911 CODESIZE SUB DUP1 PUSH3 0x3911 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x41 SWAP2 PUSH3 0x6B2 JUMP JUMPDEST DUP5 DUP5 PUSH10 0xD3C21BCECCEDA1000000 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH1 0x2 DUP3 PUSH3 0x66 CALLER PUSH3 0x49A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xF8 PUSH3 0x4EA JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x122 PUSH3 0x505 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x14C PUSH3 0x532 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x19F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1F3 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x719 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP PUSH1 0xD DUP6 SWAP1 SSTORE DUP4 PUSH3 0x264 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030323A53554D5F4F465F53554D5F494E5355524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F4341505F5A45524F PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xE DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH3 0x2C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030333A45524332305F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP3 AND PUSH3 0x33B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030343A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE PUSH3 0x373 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL PUSH3 0x54C JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x3B0 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH3 0x54C JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3ACD5E0F PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xEB35783C SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x41F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x445 SWAP2 SWAP1 PUSH3 0x68C JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x48B SWAP11 POP PUSH1 0x0 SWAP10 POP PUSH3 0x485 SWAP9 POP PUSH3 0x496 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH3 0x5D8 JUMP JUMPDEST POP POP POP POP POP PUSH3 0x77D JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x500 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x54C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x500 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x54C JUMP JUMPDEST PUSH1 0x0 PUSH3 0x500 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x597 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x5AC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x5D2 SWAP2 SWAP1 PUSH3 0x68C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x5E4 DUP3 DUP3 PUSH3 0x5E8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH3 0x5E4 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH3 0x648 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x69E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x6AB DUP2 PUSH3 0x764 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x6CA JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 MLOAD SWAP5 POP PUSH1 0x20 DUP7 ADD MLOAD SWAP4 POP PUSH1 0x40 DUP7 ADD MLOAD PUSH3 0x6E5 DUP2 PUSH3 0x764 JUMP JUMPDEST PUSH1 0x60 DUP8 ADD MLOAD SWAP1 SWAP4 POP PUSH3 0x6F8 DUP2 PUSH3 0x764 JUMP JUMPDEST PUSH1 0x80 DUP8 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x70B DUP2 PUSH3 0x764 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x73F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x77A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x3184 DUP1 PUSH3 0x78D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3AF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7893C7BC GT PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xD0E0BA95 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x735 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x73D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x74B JUMPI DUP1 PUSH4 0xFEB1824B EQ PUSH2 0x75E JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x71A JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xE0032383 EQ PUSH2 0x72D JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xBE169E7E GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x6D3 JUMPI DUP1 PUSH4 0xBE61E91E EQ PUSH2 0x6DB JUMPI DUP1 PUSH4 0xC3004C86 EQ PUSH2 0x6EC JUMPI DUP1 PUSH4 0xC40000D4 EQ PUSH2 0x6FF JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x6C3 JUMPI DUP1 PUSH4 0xB26025AA EQ PUSH2 0x6CB JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x462 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x9A82F890 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x6A8 JUMPI DUP1 PUSH4 0xA18AA128 EQ PUSH2 0x6BB JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x462 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x656 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x669 JUMPI DUP1 PUSH4 0x9088C119 EQ PUSH2 0x67A JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x68D JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x86C71288 GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x86C71288 EQ PUSH2 0x612 JUMPI DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x628 JUMPI DUP1 PUSH4 0x890FBF78 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x64E JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x7893C7BC EQ PUSH2 0x5E1 JUMPI DUP1 PUSH4 0x7F3B6980 EQ PUSH2 0x5F7 JUMPI DUP1 PUSH4 0x82558906 EQ PUSH2 0x5FF JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x3629C3C4 GT PUSH2 0x2D9 JUMPI DUP1 PUSH4 0x59DACC6A GT PUSH2 0x277 JUMPI DUP1 PUSH4 0x652028E5 GT PUSH2 0x246 JUMPI DUP1 PUSH4 0x652028E5 EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0x76082A5E EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0x7888A2FF EQ PUSH2 0x5CE JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x565 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x584 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x4101B90C GT PUSH2 0x2B3 JUMPI DUP1 PUSH4 0x4101B90C EQ PUSH2 0x533 JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0x54AFEF63 EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x552 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x3629C3C4 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x503 JUMPI DUP1 PUSH4 0x3DCDDE17 EQ PUSH2 0x516 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1865C57D GT PUSH2 0x351 JUMPI DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x320 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x4B7 JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x4DD JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1865C57D EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x46C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x48F JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x13299604 GT PUSH2 0x38D JUMPI DUP1 PUSH4 0x13299604 EQ PUSH2 0x405 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x42A JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x43D JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x445 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0x676CB0E EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x3FD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C7 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A20 JUMP JUMPDEST PUSH2 0x76F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EF PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x922 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E3E JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x455 PUSH2 0x9B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E24 JUMP JUMPDEST PUSH2 0x46A PUSH2 0xA38 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3EF PUSH2 0x47A CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0xA7F JUMP JUMPDEST PUSH2 0x4AA PUSH2 0x4A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0xAAF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2F0A JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0xBC4 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0xBEE JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x4EB CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0xD8F JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0xF5B JUMP JUMPDEST PUSH2 0x46A PUSH2 0x511 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E52 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1061 JUMP JUMPDEST PUSH2 0x3EF PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x560 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x109F JUMP JUMPDEST PUSH2 0x412 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x120C JUMP JUMPDEST PUSH2 0x46A PUSH2 0x59A CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1259 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x12D6 JUMP JUMPDEST PUSH2 0x3EF PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x5DC CALLDATASIZE PUSH1 0x4 PUSH2 0x2A48 JUMP JUMPDEST PUSH2 0x12E8 JUMP JUMPDEST PUSH2 0x526 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1326 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x60D CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x1364 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x620 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C29 JUMP JUMPDEST POP PUSH1 0x1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x636 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x13E4 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x649 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x1558 JUMP JUMPDEST PUSH2 0x412 PUSH2 0x15EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x664 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1601 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x412 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x688 CALLDATASIZE PUSH1 0x4 PUSH2 0x2980 JUMP JUMPDEST PUSH2 0x176E JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x69B CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x17CE JUMP JUMPDEST PUSH2 0x46A PUSH2 0x6B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x3EF PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1943 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x3EF PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x6FA CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x19CE JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1A52 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x715 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1A90 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x728 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0x1ADA JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1AFF JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x1B3C JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x759 CALLDATASIZE PUSH1 0x4 PUSH2 0x2980 JUMP JUMPDEST PUSH2 0x1B45 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x412 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x7A0 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x7B4 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x80D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x831 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST DUP4 LT PUSH2 0x898 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030373A4143544956455F42554E444C455F494E4445 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x585F544F4F5F4C41524745 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x91B SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x92E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1E010439 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1E010439 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x974 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x988 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AC SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA33 SWAP2 SWAP1 PUSH2 0x2A8B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xA4D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x27DE JUMP JUMPDEST PUSH1 0xA SLOAD DUP3 LT PUSH2 0xB14 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030363A42554E444C455F494E4445585F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xB37 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x91B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xBDF DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0xBE9 DUP4 DUP4 PUSH2 0x1C47 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC73 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xCB0 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD00 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xD2A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62D8A69 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x316C5348 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD85 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xE14 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xE51 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE7D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEA1 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xECB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B0A9F9D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x36153F3A SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF51 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF6B PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0xFA5 DUP3 DUP3 PUSH2 0x1CCD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xD910A5091EEA39C3EFEED9891A9E2B4694BD064808F5B0A4DE415D70B313EC52 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x1053 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x105D DUP3 DUP3 PUSH2 0x1D4F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x106D PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1124 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1161 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x118D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11B1 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x11DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x587E59D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x587E59D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH2 0x1221 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1251 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0xA7D PUSH2 0x1DB6 JUMP JUMPDEST PUSH2 0x1261 PUSH2 0x1E37 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126C PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x12DE PUSH2 0x1E37 JUMP JUMPDEST PUSH2 0xA7D PUSH1 0x0 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 PUSH2 0x1314 DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0x131E DUP5 DUP5 PUSH2 0x1EE1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1332 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1374 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0x13AE DUP3 DUP3 PUSH2 0x1FE4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xEE37957C2D37326FA4E3897FC3947BBDBD8E1082639A302C1C206B4D1C5E695 SWAP2 ADD PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x142D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1441 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1469 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x14A6 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14F6 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1520 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89002DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x89002DA5 SWAP1 PUSH1 0x44 ADD PUSH2 0xEFF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x156A PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x159A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0x15A4 DUP4 DUP4 PUSH2 0x2033 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP3 ISZERO ISZERO DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9D0F25E972AD53428B0A94CD615FA731919562FA34769DF0F9C3EED71B0BD81E SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA33 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x164A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x165E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1686 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x16C3 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1713 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x173D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x46241F2D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8C483E5A SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH2 0x1776 PUSH2 0x1E37 JUMP JUMPDEST PUSH2 0x17A0 PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 DUP3 PUSH2 0x2436 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA84 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x181F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1833 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x185B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1898 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18E8 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA17030D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA17030D5 SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x194F PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F5D9235 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3F5D9235 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1996 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0xA7D PUSH2 0x2440 JUMP JUMPDEST PUSH2 0x19DE PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A0E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A19 DUP3 PUSH2 0x2528 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x22BF66455B4BF54C9548E2BB650543CFA753A53CAB13AF4020DDBFA76C231B0F SWAP2 ADD PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1A5E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBCD5349F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBCD5349F SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1AA5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1AD5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x1AF5 DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0xBE9 DUP4 DUP4 PUSH2 0x1D4F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1B0B PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH3 0x52AC13 PUSH1 0xE7 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x29560980 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0xA84 JUMP JUMPDEST PUSH2 0x1B4D PUSH2 0x1E37 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1BB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x17A0 DUP2 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C19 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7A0 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST PUSH2 0x17A0 DUP2 CALLER PUSH2 0x2598 JUMP JUMPDEST PUSH2 0x1C51 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x105D JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1C89 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D46 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D59 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST ISZERO PUSH2 0x105D JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH1 0xD SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x5F971AA3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x64 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0xBF2E3546 SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E31 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57F079D PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x15FC1E74 SWAP1 PUSH2 0x1F1A SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2DF0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F48 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F6C SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC65A7BB8D6351C1CF70C95A316CC6A92839C986682D98BC35F958F4883F9D2A8 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH32 0xD17D9DC3726BA31D9AF5D3A3425289766158A8EA95520E1C299CCBE4A2978B34 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x1D18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x203E PUSH2 0x1061 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x204A PUSH2 0x1AFF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2056 PUSH2 0x1943 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7296D1A54B2D02C3A2F8F0B83B688D6B8415618F2AB8C3D5F761DD678DCC4B29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 GT PUSH2 0x20EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030313A4E4F5F4143544956455F42554E444C455300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST DUP1 DUP3 GT PUSH2 0x213A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030323A4E4F5F465245455F4341504954414C000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x2144 DUP6 DUP3 PUSH2 0x2FFA JUMP JUMPDEST DUP3 LT PUSH2 0x242D JUMPI PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x21CB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AAA JUMP JUMPDEST PUSH1 0x11 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x21E5 SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x30CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT DUP1 ISZERO PUSH2 0x21F7 JUMPI POP DUP7 ISZERO JUMPDEST ISZERO PUSH2 0x2429 JUMPI PUSH1 0x0 PUSH2 0x2207 DUP4 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2265 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x228D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x4FB0F8B19E3CE187A133519BFF1FCBDF3DFBC1B55F8BC334A3DA5BCADBEEA2A7 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 ISZERO PUSH2 0x2413 JUMPI PUSH1 0x0 DUP3 PUSH1 0xC0 ADD MLOAD DUP4 PUSH1 0xA0 ADD MLOAD PUSH2 0x22EC SWAP2 SWAP1 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xE54EF564BEE7E49A6E78296E638947532DE075D47CD66E331104B4812756F119 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 DUP2 LT PUSH2 0x23F8 JUMPI PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP15 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP7 SWAP1 SSTORE PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 SWAP15 POP PUSH4 0xFFFFFFFF AND SWAP3 POP SWAP1 PUSH2 0x23D4 DUP4 PUSH2 0x30A6 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x2411 JUMP JUMPDEST DUP10 PUSH2 0x2404 DUP8 PUSH1 0x1 PUSH2 0x2FFA JUMP JUMPDEST PUSH2 0x240E SWAP2 SWAP1 PUSH2 0x30CA JUMP JUMPDEST SWAP6 POP JUMPDEST POP JUMPDEST POP POP POP DUP1 DUP1 PUSH2 0x2421 SWAP1 PUSH2 0x308B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x21EA JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x105D DUP3 DUP3 PUSH2 0x1C47 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x244B PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24C8 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST ISZERO PUSH2 0x17A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3031303A5249534B504F4F4C5F4841535F554E425552 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x4E545F42554E444C4553 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x25A2 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x105D JUMPI PUSH2 0x25BA DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x25FC JUMP JUMPDEST PUSH2 0x25C5 DUP4 PUSH1 0x20 PUSH2 0x25FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25D6 SWAP3 SWAP2 SWAP1 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x88F SWAP2 PUSH1 0x4 ADD PUSH2 0x2E52 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x260B DUP4 PUSH1 0x2 PUSH2 0x3012 JUMP JUMPDEST PUSH2 0x2616 SWAP1 PUSH1 0x2 PUSH2 0x2FFA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x263C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2666 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x268F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x26CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x26F0 DUP5 PUSH1 0x2 PUSH2 0x3012 JUMP JUMPDEST PUSH2 0x26FB SWAP1 PUSH1 0x1 PUSH2 0x2FFA JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x278F JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x273D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2761 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x2788 DUP2 PUSH2 0x3074 JUMP JUMPDEST SWAP1 POP PUSH2 0x26FE JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x91B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2820 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2860 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2873 PUSH2 0x286E DUP3 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x2FA1 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2887 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28B1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x28BF PUSH2 0x286E DUP3 PUSH2 0x2FD2 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x28D3 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x131E DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3048 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x7A3 DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x7A3 DUP2 PUSH2 0x3141 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x290B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2915 PUSH1 0xC0 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x2922 DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2954 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2960 DUP5 DUP3 DUP6 ADD PUSH2 0x2850 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2991 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91B DUP2 PUSH2 0x312C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x91B DUP2 PUSH2 0x312C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29C9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29E2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x29F4 DUP2 PUSH2 0x312C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A11 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A31 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x91B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A5A JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A70 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2A7C DUP6 DUP3 DUP7 ADD PUSH2 0x2850 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A9C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x91B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ABB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2AD2 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2AE5 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2AEF PUSH1 0xC0 PUSH2 0x2FA1 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2AFA DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2B23 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2B2F DUP8 DUP3 DUP7 ADD PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B66 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2B7D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2B93 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2B9C DUP2 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2BC2 PUSH1 0x60 DUP5 ADD PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BD8 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2BE4 DUP8 DUP3 DUP7 ADD PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C3B JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C52 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP9 SUB SLT ISZERO PUSH2 0x2C68 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2C71 DUP2 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2C97 PUSH1 0x60 DUP5 ADD PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x2CAD JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x2CB9 DUP9 DUP3 DUP7 ADD PUSH2 0x2850 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD CALLDATALOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D0C JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2D19 DUP6 DUP3 DUP7 ADD PUSH2 0x28FA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D34 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2D53 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3048 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x2D77 JUMPI PUSH2 0x2D77 PUSH2 0x3100 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x2DB3 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3048 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x2DE4 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3048 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2E14 SWAP1 DUP4 ADD DUP6 PUSH2 0x2D3B JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2E38 JUMPI PUSH2 0x2E38 PUSH2 0x3100 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x2E38 JUMPI PUSH2 0x2E38 PUSH2 0x3100 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x91B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F42554E444C455F4F574E45520000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030313A4143434553535F44454E4945440000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2F3D PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2D67 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2F5A PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2D3B JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2FCA JUMPI PUSH2 0x2FCA PUSH2 0x3116 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2FEC JUMPI PUSH2 0x2FEC PUSH2 0x3116 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x300D JUMPI PUSH2 0x300D PUSH2 0x30EA JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x302C JUMPI PUSH2 0x302C PUSH2 0x30EA JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3043 JUMPI PUSH2 0x3043 PUSH2 0x30EA JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3063 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x304B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1E31 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x3083 JUMPI PUSH2 0x3083 PUSH2 0x30EA JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x309F JUMPI PUSH2 0x309F PUSH2 0x30EA JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x30C0 JUMPI PUSH2 0x30C0 PUSH2 0x30EA JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x30E5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x17A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x17A0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 DUP16 0xF8 0xB7 AND CODECOPY 0xB5 DUP12 SELFDESTRUCT DUP9 0xD3 0xC1 PUSH28 0xB55E56C77F9B7258FC689F49DEADE934A4A8BE64736F6C6343000802 STOP CALLER ","sourceMap":"334:1416:68:-:0;;;769:35:11;;;-1:-1:-1;;769:35:11;;;699:331:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;881:4;887:17;684:6;930:10;942:6;950:8;881:4;887:17;684:6;930:10;942:6;950:8;881:4;1887:22:19;950:8:68;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;2230:2:103;1619:70:12::1;::::0;::::1;2212:21:103::0;2269:2;2249:18;;;2242:30;2308:34;2288:18;;;2281:62;-1:-1:-1;;;2359:18:103;;;2352:33;2402:19;;1619:70:12::1;;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;;;1938:18:19::1;:38:::0;;;1997:23;1989:77:::1;;;::::0;-1:-1:-1;;;1989:77:19;;3397:2:103;1989:77:19::1;::::0;::::1;3379:21:103::0;3436:2;3416:18;;;3409:30;3475:34;3455:18;;;3448:62;-1:-1:-1;;;3526:18:103;;;3519:39;3575:19;;1989:77:19::1;3369:231:103::0;1989:77:19::1;2077:19;:40:::0;;;-1:-1:-1;;;;;2138:24:19;::::1;2130:69;;;::::0;-1:-1:-1;;;2130:69:19;;2634:2:103;2130:69:19::1;::::0;::::1;2616:21:103::0;;;2653:18;;;2646:30;2712:34;2692:18;;;2685:62;2764:18;;2130:69:19::1;2606:182:103::0;2130:69:19::1;2210:11;:24:::0;;-1:-1:-1;;;;;;2210:24:19::1;-1:-1:-1::0;;;;;2210:24:19;;::::1;::::0;;;::::1;::::0;;;2255:20;::::1;2247:66;;;::::0;-1:-1:-1;;;2247:66:19;;2995:2:103;2247:66:19::1;::::0;::::1;2977:21:103::0;3034:2;3014:18;;;3007:30;3073:34;3053:18;;;3046:62;-1:-1:-1;;;3124:18:103;;;3117:31;3165:19;;2247:66:19::1;2967:223:103::0;2247:66:19::1;2324:7;:16:::0;;-1:-1:-1;;;;;;2324:16:19::1;-1:-1:-1::0;;;;;2324:16:19;::::1;;::::0;;2389:38:::1;-1:-1:-1::0;;;2389:19:19::1;:38::i;:::-;2353:16;:75:::0;;-1:-1:-1;;;;;;2353:75:19::1;-1:-1:-1::0;;;;;2353:75:19;;;::::1;::::0;;;::::1;::::0;;2476:38:::1;-1:-1:-1::0;;;2476:19:19::1;:38::i;:::-;2440:16;:75:::0;;-1:-1:-1;;;;;;2440:75:19::1;-1:-1:-1::0;;;;;2440:75:19;;::::1;;::::0;;2541:16:::1;::::0;:33:::1;::::0;;-1:-1:-1;;;2541:33:19;;;;:16;;;::::1;::::0;:31:::1;::::0;:33:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:16;:33;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2526:12;:48:::0;;-1:-1:-1;;;;;;2526:48:19::1;-1:-1:-1::0;;;;;2526:48:19;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;978:44:68::1;::::0;-1:-1:-1;;;;1009:12:68::1;::::0;-1:-1:-1;1009:10:68::1;::::0;-1:-1:-1;;;;;;;;1009:12:68:i:1;:::-;978:10;:44::i;:::-;699:331:::0;;;;;334:1416;;640:96:59;719:10;640:96;:::o;2433:187:41:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1371:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1344:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;4875:145;-1:-1:-1;;4875:145:12:o;6824:110:37:-;6902:25;6913:4;6919:7;6902:10;:25::i;:::-;6824:110;;:::o;7474:233::-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:37;;;;;;;;;;;;7552:149;;7595:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7595:29:37;;;;;;;;;:36;;-1:-1:-1;;7595:36:37;7627:4;7595:36;;;7677:12;719:10:59;640:96;;7677:12:37;-1:-1:-1;;;;;7650:40:37;7668:7;-1:-1:-1;;;;;7650:40:37;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;14:261:103:-;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;195:9;189:16;214:31;239:5;214:31;:::i;:::-;264:5;95:180;-1:-1:-1;;;95:180:103:o;280:653::-;;;;;;471:3;459:9;450:7;446:23;442:33;439:2;;;493:6;485;478:22;439:2;527:9;521:16;511:26;;577:2;566:9;562:18;556:25;546:35;;624:2;613:9;609:18;603:25;637:31;662:5;637:31;:::i;:::-;737:2;722:18;;716:25;687:5;;-1:-1:-1;750:33:103;716:25;750:33;:::i;:::-;854:3;839:19;;833:26;802:7;;-1:-1:-1;868:33:103;833:26;868:33;:::i;:::-;920:7;910:17;;;429:504;;;;;;;;:::o;1407:616::-;1654:25;;;1641:3;1626:19;;1709:1;1698:13;;1688:2;;1754:10;1749:3;1745:20;1742:1;1735:31;1789:4;1786:1;1779:15;1817:4;1814:1;1807:15;1688:2;1863;1848:18;;1841:34;;;;-1:-1:-1;;;;;1949:15:103;;;1944:2;1929:18;;1922:43;2001:15;;1996:2;1981:18;;;1974:43;1608:415;;-1:-1:-1;1608:415:103:o;3605:131::-;-1:-1:-1;;;;;3680:31:103;;3670:42;;3660:2;;3726:1;3723;3716:12;3660:2;3650:86;:::o;:::-;334:1416:68;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:23088:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"66:430:103","statements":[{"body":{"nodeType":"YulBlock","src":"115:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"124:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"131:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"117:6:103"},"nodeType":"YulFunctionCall","src":"117:20:103"},"nodeType":"YulExpressionStatement","src":"117:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"94:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"102:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"90:3:103"},"nodeType":"YulFunctionCall","src":"90:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"109:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"86:3:103"},"nodeType":"YulFunctionCall","src":"86:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"79:6:103"},"nodeType":"YulFunctionCall","src":"79:35:103"},"nodeType":"YulIf","src":"76:2:103"},{"nodeType":"YulVariableDeclaration","src":"148:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"171:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"158:12:103"},"nodeType":"YulFunctionCall","src":"158:20:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"152:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"187:63:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"246:2:103"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"218:27:103"},"nodeType":"YulFunctionCall","src":"218:31:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"202:15:103"},"nodeType":"YulFunctionCall","src":"202:48:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"191:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"266:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"275:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"259:6:103"},"nodeType":"YulFunctionCall","src":"259:19:103"},"nodeType":"YulExpressionStatement","src":"259:19:103"},{"body":{"nodeType":"YulBlock","src":"326:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"335:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"342:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"328:6:103"},"nodeType":"YulFunctionCall","src":"328:20:103"},"nodeType":"YulExpressionStatement","src":"328:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"301:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"309:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"297:3:103"},"nodeType":"YulFunctionCall","src":"297:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"314:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"293:3:103"},"nodeType":"YulFunctionCall","src":"293:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"321:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"290:2:103"},"nodeType":"YulFunctionCall","src":"290:35:103"},"nodeType":"YulIf","src":"287:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"376:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"385:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"372:3:103"},"nodeType":"YulFunctionCall","src":"372:18:103"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"396:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"404:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:17:103"},{"name":"_1","nodeType":"YulIdentifier","src":"411:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"359:12:103"},"nodeType":"YulFunctionCall","src":"359:55:103"},"nodeType":"YulExpressionStatement","src":"359:55:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"438:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"447:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"434:3:103"},"nodeType":"YulFunctionCall","src":"434:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"452:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"430:3:103"},"nodeType":"YulFunctionCall","src":"430:27:103"},{"name":"array","nodeType":"YulIdentifier","src":"459:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:103"},"nodeType":"YulFunctionCall","src":"423:42:103"},"nodeType":"YulExpressionStatement","src":"423:42:103"},{"nodeType":"YulAssignment","src":"474:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"483:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"474:5:103"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"40:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"48:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"56:5:103","type":""}],"src":"14:482:103"},{"body":{"nodeType":"YulBlock","src":"564:381:103","statements":[{"body":{"nodeType":"YulBlock","src":"613:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"622:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"629:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"615:6:103"},"nodeType":"YulFunctionCall","src":"615:20:103"},"nodeType":"YulExpressionStatement","src":"615:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"592:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"600:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"588:3:103"},"nodeType":"YulFunctionCall","src":"588:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"607:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"584:3:103"},"nodeType":"YulFunctionCall","src":"584:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"577:6:103"},"nodeType":"YulFunctionCall","src":"577:35:103"},"nodeType":"YulIf","src":"574:2:103"},{"nodeType":"YulVariableDeclaration","src":"646:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"662:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"656:5:103"},"nodeType":"YulFunctionCall","src":"656:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"650:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"678:63:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"737:2:103"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"709:27:103"},"nodeType":"YulFunctionCall","src":"709:31:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"693:15:103"},"nodeType":"YulFunctionCall","src":"693:48:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"682:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"757:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"766:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"750:6:103"},"nodeType":"YulFunctionCall","src":"750:19:103"},"nodeType":"YulExpressionStatement","src":"750:19:103"},{"body":{"nodeType":"YulBlock","src":"817:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"826:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"833:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"819:6:103"},"nodeType":"YulFunctionCall","src":"819:20:103"},"nodeType":"YulExpressionStatement","src":"819:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"800:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"788:3:103"},"nodeType":"YulFunctionCall","src":"788:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"805:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"784:3:103"},"nodeType":"YulFunctionCall","src":"784:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"812:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"781:2:103"},"nodeType":"YulFunctionCall","src":"781:35:103"},"nodeType":"YulIf","src":"778:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"876:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"884:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"872:3:103"},"nodeType":"YulFunctionCall","src":"872:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"895:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"904:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"891:3:103"},"nodeType":"YulFunctionCall","src":"891:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"911:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"850:21:103"},"nodeType":"YulFunctionCall","src":"850:64:103"},"nodeType":"YulExpressionStatement","src":"850:64:103"},{"nodeType":"YulAssignment","src":"923:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"932:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"923:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"538:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"546:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"554:5:103","type":""}],"src":"501:444:103"},{"body":{"nodeType":"YulBlock","src":"1013:99:103","statements":[{"nodeType":"YulAssignment","src":"1023:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1045:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1032:12:103"},"nodeType":"YulFunctionCall","src":"1032:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1023:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1100:5:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1061:38:103"},"nodeType":"YulFunctionCall","src":"1061:45:103"},"nodeType":"YulExpressionStatement","src":"1061:45:103"}]},"name":"abi_decode_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"992:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1003:5:103","type":""}],"src":"950:162:103"},{"body":{"nodeType":"YulBlock","src":"1191:92:103","statements":[{"nodeType":"YulAssignment","src":"1201:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1216:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1210:5:103"},"nodeType":"YulFunctionCall","src":"1210:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1201:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1271:5:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1232:38:103"},"nodeType":"YulFunctionCall","src":"1232:45:103"},"nodeType":"YulExpressionStatement","src":"1232:45:103"}]},"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1170:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1181:5:103","type":""}],"src":"1117:166:103"},{"body":{"nodeType":"YulBlock","src":"1356:703:103","statements":[{"body":{"nodeType":"YulBlock","src":"1400:24:103","statements":[{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1409:5:103"},{"name":"value","nodeType":"YulIdentifier","src":"1416:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1402:6:103"},"nodeType":"YulFunctionCall","src":"1402:20:103"},"nodeType":"YulExpressionStatement","src":"1402:20:103"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"1377:3:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1382:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1373:3:103"},"nodeType":"YulFunctionCall","src":"1373:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"1394:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1369:3:103"},"nodeType":"YulFunctionCall","src":"1369:30:103"},"nodeType":"YulIf","src":"1366:2:103"},{"nodeType":"YulAssignment","src":"1433:30:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1458:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1442:15:103"},"nodeType":"YulFunctionCall","src":"1442:21:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1433:5:103"}]},{"nodeType":"YulVariableDeclaration","src":"1472:38:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1500:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1487:12:103"},"nodeType":"YulFunctionCall","src":"1487:23:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1476:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1558:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1519:38:103"},"nodeType":"YulFunctionCall","src":"1519:47:103"},"nodeType":"YulExpressionStatement","src":"1519:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1582:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"1589:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1575:6:103"},"nodeType":"YulFunctionCall","src":"1575:22:103"},"nodeType":"YulExpressionStatement","src":"1575:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1617:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1624:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1613:3:103"},"nodeType":"YulFunctionCall","src":"1613:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1646:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1657:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1642:3:103"},"nodeType":"YulFunctionCall","src":"1642:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1629:12:103"},"nodeType":"YulFunctionCall","src":"1629:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1606:6:103"},"nodeType":"YulFunctionCall","src":"1606:56:103"},"nodeType":"YulExpressionStatement","src":"1606:56:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1682:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1689:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1678:3:103"},"nodeType":"YulFunctionCall","src":"1678:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1711:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1722:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1707:3:103"},"nodeType":"YulFunctionCall","src":"1707:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1694:12:103"},"nodeType":"YulFunctionCall","src":"1694:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1671:6:103"},"nodeType":"YulFunctionCall","src":"1671:56:103"},"nodeType":"YulExpressionStatement","src":"1671:56:103"},{"nodeType":"YulVariableDeclaration","src":"1736:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1778:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1763:3:103"},"nodeType":"YulFunctionCall","src":"1763:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1750:12:103"},"nodeType":"YulFunctionCall","src":"1750:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1740:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1825:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1834:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1837:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1827:6:103"},"nodeType":"YulFunctionCall","src":"1827:12:103"},"nodeType":"YulExpressionStatement","src":"1827:12:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1797:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1805:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1794:2:103"},"nodeType":"YulFunctionCall","src":"1794:30:103"},"nodeType":"YulIf","src":"1791:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1861:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1868:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1857:3:103"},"nodeType":"YulFunctionCall","src":"1857:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1894:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1905:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1890:3:103"},"nodeType":"YulFunctionCall","src":"1890:22:103"},{"name":"end","nodeType":"YulIdentifier","src":"1914:3:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"1873:16:103"},"nodeType":"YulFunctionCall","src":"1873:45:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1850:6:103"},"nodeType":"YulFunctionCall","src":"1850:69:103"},"nodeType":"YulExpressionStatement","src":"1850:69:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1939:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1946:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1935:3:103"},"nodeType":"YulFunctionCall","src":"1935:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1980:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1965:3:103"},"nodeType":"YulFunctionCall","src":"1965:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1952:12:103"},"nodeType":"YulFunctionCall","src":"1952:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1928:6:103"},"nodeType":"YulFunctionCall","src":"1928:58:103"},"nodeType":"YulExpressionStatement","src":"1928:58:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2006:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2013:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:103"},"nodeType":"YulFunctionCall","src":"2002:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2047:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2032:3:103"},"nodeType":"YulFunctionCall","src":"2032:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2019:12:103"},"nodeType":"YulFunctionCall","src":"2019:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1995:6:103"},"nodeType":"YulFunctionCall","src":"1995:58:103"},"nodeType":"YulExpressionStatement","src":"1995:58:103"}]},"name":"abi_decode_struct_Application","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1327:9:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"1338:3:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1346:5:103","type":""}],"src":"1288:771:103"},{"body":{"nodeType":"YulBlock","src":"2134:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"2180:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2189:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2197:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2182:6:103"},"nodeType":"YulFunctionCall","src":"2182:22:103"},"nodeType":"YulExpressionStatement","src":"2182:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2155:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2164:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2151:3:103"},"nodeType":"YulFunctionCall","src":"2151:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2176:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2147:3:103"},"nodeType":"YulFunctionCall","src":"2147:32:103"},"nodeType":"YulIf","src":"2144:2:103"},{"nodeType":"YulVariableDeclaration","src":"2215:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2241:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2228:12:103"},"nodeType":"YulFunctionCall","src":"2228:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2219:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2285:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2260:24:103"},"nodeType":"YulFunctionCall","src":"2260:31:103"},"nodeType":"YulExpressionStatement","src":"2260:31:103"},{"nodeType":"YulAssignment","src":"2300:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2310:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2300:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2100:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2111:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2123:6:103","type":""}],"src":"2064:257:103"},{"body":{"nodeType":"YulBlock","src":"2407:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2453:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2462:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2470:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2455:6:103"},"nodeType":"YulFunctionCall","src":"2455:22:103"},"nodeType":"YulExpressionStatement","src":"2455:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2428:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2437:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2424:3:103"},"nodeType":"YulFunctionCall","src":"2424:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2449:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2420:3:103"},"nodeType":"YulFunctionCall","src":"2420:32:103"},"nodeType":"YulIf","src":"2417:2:103"},{"nodeType":"YulVariableDeclaration","src":"2488:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2507:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2501:5:103"},"nodeType":"YulFunctionCall","src":"2501:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2492:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2551:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2526:24:103"},"nodeType":"YulFunctionCall","src":"2526:31:103"},"nodeType":"YulExpressionStatement","src":"2526:31:103"},{"nodeType":"YulAssignment","src":"2566:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2576:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2566:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2373:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2384:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2396:6:103","type":""}],"src":"2326:261:103"},{"body":{"nodeType":"YulBlock","src":"2662:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2708:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2717:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2725:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2710:6:103"},"nodeType":"YulFunctionCall","src":"2710:22:103"},"nodeType":"YulExpressionStatement","src":"2710:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2683:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2692:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2679:3:103"},"nodeType":"YulFunctionCall","src":"2679:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2704:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2675:3:103"},"nodeType":"YulFunctionCall","src":"2675:32:103"},"nodeType":"YulIf","src":"2672:2:103"},{"nodeType":"YulAssignment","src":"2743:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2766:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2753:12:103"},"nodeType":"YulFunctionCall","src":"2753:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2743:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2628:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2639:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2651:6:103","type":""}],"src":"2592:190:103"},{"body":{"nodeType":"YulBlock","src":"2874:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"2920:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2929:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2937:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2922:6:103"},"nodeType":"YulFunctionCall","src":"2922:22:103"},"nodeType":"YulExpressionStatement","src":"2922:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2895:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2904:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2891:3:103"},"nodeType":"YulFunctionCall","src":"2891:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2916:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2887:3:103"},"nodeType":"YulFunctionCall","src":"2887:32:103"},"nodeType":"YulIf","src":"2884:2:103"},{"nodeType":"YulAssignment","src":"2955:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2978:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2965:12:103"},"nodeType":"YulFunctionCall","src":"2965:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2955:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2997:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3027:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3038:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3023:3:103"},"nodeType":"YulFunctionCall","src":"3023:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3010:12:103"},"nodeType":"YulFunctionCall","src":"3010:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3001:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3076:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3051:24:103"},"nodeType":"YulFunctionCall","src":"3051:31:103"},"nodeType":"YulExpressionStatement","src":"3051:31:103"},{"nodeType":"YulAssignment","src":"3091:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3101:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3091:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2832:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2843:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2855:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2863:6:103","type":""}],"src":"2787:325:103"},{"body":{"nodeType":"YulBlock","src":"3204:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"3250:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3259:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3267:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3252:6:103"},"nodeType":"YulFunctionCall","src":"3252:22:103"},"nodeType":"YulExpressionStatement","src":"3252:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3225:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3234:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3221:3:103"},"nodeType":"YulFunctionCall","src":"3221:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3246:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3217:3:103"},"nodeType":"YulFunctionCall","src":"3217:32:103"},"nodeType":"YulIf","src":"3214:2:103"},{"nodeType":"YulAssignment","src":"3285:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3308:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3295:12:103"},"nodeType":"YulFunctionCall","src":"3295:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3285:6:103"}]},{"nodeType":"YulAssignment","src":"3327:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3354:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3365:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3350:3:103"},"nodeType":"YulFunctionCall","src":"3350:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3337:12:103"},"nodeType":"YulFunctionCall","src":"3337:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3327:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3162:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3173:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3185:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3193:6:103","type":""}],"src":"3117:258:103"},{"body":{"nodeType":"YulBlock","src":"3449:237:103","statements":[{"body":{"nodeType":"YulBlock","src":"3495:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3504:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3512:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3497:6:103"},"nodeType":"YulFunctionCall","src":"3497:22:103"},"nodeType":"YulExpressionStatement","src":"3497:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3470:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3479:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3491:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3462:3:103"},"nodeType":"YulFunctionCall","src":"3462:32:103"},"nodeType":"YulIf","src":"3459:2:103"},{"nodeType":"YulVariableDeclaration","src":"3530:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3556:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3543:12:103"},"nodeType":"YulFunctionCall","src":"3543:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3534:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3630:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3639:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3647:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3632:6:103"},"nodeType":"YulFunctionCall","src":"3632:22:103"},"nodeType":"YulExpressionStatement","src":"3632:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3588:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3599:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3610:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3615:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3606:3:103"},"nodeType":"YulFunctionCall","src":"3606:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3595:3:103"},"nodeType":"YulFunctionCall","src":"3595:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3585:2:103"},"nodeType":"YulFunctionCall","src":"3585:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3578:6:103"},"nodeType":"YulFunctionCall","src":"3578:51:103"},"nodeType":"YulIf","src":"3575:2:103"},{"nodeType":"YulAssignment","src":"3665:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3675:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3665:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3415:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3426:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3438:6:103","type":""}],"src":"3380:306:103"},{"body":{"nodeType":"YulBlock","src":"3787:312:103","statements":[{"body":{"nodeType":"YulBlock","src":"3833:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3842:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3850:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3835:6:103"},"nodeType":"YulFunctionCall","src":"3835:22:103"},"nodeType":"YulExpressionStatement","src":"3835:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3808:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3817:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3804:3:103"},"nodeType":"YulFunctionCall","src":"3804:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3829:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3800:3:103"},"nodeType":"YulFunctionCall","src":"3800:32:103"},"nodeType":"YulIf","src":"3797:2:103"},{"nodeType":"YulVariableDeclaration","src":"3868:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3895:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3882:12:103"},"nodeType":"YulFunctionCall","src":"3882:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3872:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3948:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3957:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3965:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3950:6:103"},"nodeType":"YulFunctionCall","src":"3950:22:103"},"nodeType":"YulExpressionStatement","src":"3950:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3920:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3928:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3917:2:103"},"nodeType":"YulFunctionCall","src":"3917:30:103"},"nodeType":"YulIf","src":"3914:2:103"},{"nodeType":"YulAssignment","src":"3983:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4014:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4025:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4010:3:103"},"nodeType":"YulFunctionCall","src":"4010:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4034:7:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3993:16:103"},"nodeType":"YulFunctionCall","src":"3993:49:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3983:6:103"}]},{"nodeType":"YulAssignment","src":"4051:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4089:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4074:3:103"},"nodeType":"YulFunctionCall","src":"4074:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4061:12:103"},"nodeType":"YulFunctionCall","src":"4061:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4051:6:103"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3745:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3756:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3768:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3776:6:103","type":""}],"src":"3691:408:103"},{"body":{"nodeType":"YulBlock","src":"4204:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"4250:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4259:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4267:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4252:6:103"},"nodeType":"YulFunctionCall","src":"4252:22:103"},"nodeType":"YulExpressionStatement","src":"4252:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4225:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4234:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4221:3:103"},"nodeType":"YulFunctionCall","src":"4221:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4246:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4217:3:103"},"nodeType":"YulFunctionCall","src":"4217:32:103"},"nodeType":"YulIf","src":"4214:2:103"},{"nodeType":"YulVariableDeclaration","src":"4285:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4304:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4298:5:103"},"nodeType":"YulFunctionCall","src":"4298:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4289:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4347:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4356:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4364:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4349:6:103"},"nodeType":"YulFunctionCall","src":"4349:22:103"},"nodeType":"YulExpressionStatement","src":"4349:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4336:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4343:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4333:2:103"},"nodeType":"YulFunctionCall","src":"4333:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4326:6:103"},"nodeType":"YulFunctionCall","src":"4326:20:103"},"nodeType":"YulIf","src":"4323:2:103"},{"nodeType":"YulAssignment","src":"4382:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4392:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4382:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4170:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4181:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4193:6:103","type":""}],"src":"4104:299:103"},{"body":{"nodeType":"YulBlock","src":"4518:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"4564:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4573:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4581:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4566:6:103"},"nodeType":"YulFunctionCall","src":"4566:22:103"},"nodeType":"YulExpressionStatement","src":"4566:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4539:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4548:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4535:3:103"},"nodeType":"YulFunctionCall","src":"4535:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4560:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4531:3:103"},"nodeType":"YulFunctionCall","src":"4531:32:103"},"nodeType":"YulIf","src":"4528:2:103"},{"nodeType":"YulVariableDeclaration","src":"4599:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4619:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4613:5:103"},"nodeType":"YulFunctionCall","src":"4613:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4603:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4638:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4648:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4642:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4693:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4702:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4710:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4695:6:103"},"nodeType":"YulFunctionCall","src":"4695:22:103"},"nodeType":"YulExpressionStatement","src":"4695:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4681:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4689:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4678:2:103"},"nodeType":"YulFunctionCall","src":"4678:14:103"},"nodeType":"YulIf","src":"4675:2:103"},{"nodeType":"YulVariableDeclaration","src":"4728:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4742:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4753:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4738:3:103"},"nodeType":"YulFunctionCall","src":"4738:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4732:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4800:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4809:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4817:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4802:6:103"},"nodeType":"YulFunctionCall","src":"4802:22:103"},"nodeType":"YulExpressionStatement","src":"4802:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4780:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4789:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4776:3:103"},"nodeType":"YulFunctionCall","src":"4776:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4794:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4772:3:103"},"nodeType":"YulFunctionCall","src":"4772:27:103"},"nodeType":"YulIf","src":"4769:2:103"},{"nodeType":"YulVariableDeclaration","src":"4835:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4864:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4848:15:103"},"nodeType":"YulFunctionCall","src":"4848:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4839:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4878:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4899:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4893:5:103"},"nodeType":"YulFunctionCall","src":"4893:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4882:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4950:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"4911:38:103"},"nodeType":"YulFunctionCall","src":"4911:47:103"},"nodeType":"YulExpressionStatement","src":"4911:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4974:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"4981:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4967:6:103"},"nodeType":"YulFunctionCall","src":"4967:22:103"},"nodeType":"YulExpressionStatement","src":"4967:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5009:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5016:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5005:3:103"},"nodeType":"YulFunctionCall","src":"5005:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5031:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5035:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5027:3:103"},"nodeType":"YulFunctionCall","src":"5027:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5021:5:103"},"nodeType":"YulFunctionCall","src":"5021:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4998:6:103"},"nodeType":"YulFunctionCall","src":"4998:42:103"},"nodeType":"YulExpressionStatement","src":"4998:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5060:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5067:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5056:3:103"},"nodeType":"YulFunctionCall","src":"5056:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5082:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5086:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5078:3:103"},"nodeType":"YulFunctionCall","src":"5078:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5072:5:103"},"nodeType":"YulFunctionCall","src":"5072:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5049:6:103"},"nodeType":"YulFunctionCall","src":"5049:42:103"},"nodeType":"YulExpressionStatement","src":"5049:42:103"},{"nodeType":"YulVariableDeclaration","src":"5100:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5126:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5130:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5122:3:103"},"nodeType":"YulFunctionCall","src":"5122:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5116:5:103"},"nodeType":"YulFunctionCall","src":"5116:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5104:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5163:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5172:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5180:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5165:6:103"},"nodeType":"YulFunctionCall","src":"5165:22:103"},"nodeType":"YulExpressionStatement","src":"5165:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5149:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5159:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5146:2:103"},"nodeType":"YulFunctionCall","src":"5146:16:103"},"nodeType":"YulIf","src":"5143:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5209:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5216:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5205:3:103"},"nodeType":"YulFunctionCall","src":"5205:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5253:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5257:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5249:3:103"},"nodeType":"YulFunctionCall","src":"5249:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5268:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"5221:27:103"},"nodeType":"YulFunctionCall","src":"5221:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5198:6:103"},"nodeType":"YulFunctionCall","src":"5198:79:103"},"nodeType":"YulExpressionStatement","src":"5198:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5297:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5304:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5293:3:103"},"nodeType":"YulFunctionCall","src":"5293:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5320:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5324:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5316:3:103"},"nodeType":"YulFunctionCall","src":"5316:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5310:5:103"},"nodeType":"YulFunctionCall","src":"5310:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5286:6:103"},"nodeType":"YulFunctionCall","src":"5286:44:103"},"nodeType":"YulExpressionStatement","src":"5286:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5350:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5357:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5346:3:103"},"nodeType":"YulFunctionCall","src":"5346:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5373:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5377:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5369:3:103"},"nodeType":"YulFunctionCall","src":"5369:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5363:5:103"},"nodeType":"YulFunctionCall","src":"5363:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5339:6:103"},"nodeType":"YulFunctionCall","src":"5339:44:103"},"nodeType":"YulExpressionStatement","src":"5339:44:103"},{"nodeType":"YulAssignment","src":"5392:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5402:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5392:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4484:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4495:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4507:6:103","type":""}],"src":"4408:1005:103"},{"body":{"nodeType":"YulBlock","src":"5523:1119:103","statements":[{"body":{"nodeType":"YulBlock","src":"5569:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5578:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5586:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5571:6:103"},"nodeType":"YulFunctionCall","src":"5571:22:103"},"nodeType":"YulExpressionStatement","src":"5571:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5544:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5553:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5540:3:103"},"nodeType":"YulFunctionCall","src":"5540:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5565:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5536:3:103"},"nodeType":"YulFunctionCall","src":"5536:32:103"},"nodeType":"YulIf","src":"5533:2:103"},{"nodeType":"YulVariableDeclaration","src":"5604:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5624:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5618:5:103"},"nodeType":"YulFunctionCall","src":"5618:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5608:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5643:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5653:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5647:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5698:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5707:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5715:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5700:6:103"},"nodeType":"YulFunctionCall","src":"5700:22:103"},"nodeType":"YulExpressionStatement","src":"5700:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5686:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5694:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5683:2:103"},"nodeType":"YulFunctionCall","src":"5683:14:103"},"nodeType":"YulIf","src":"5680:2:103"},{"nodeType":"YulVariableDeclaration","src":"5733:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5747:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5758:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5743:3:103"},"nodeType":"YulFunctionCall","src":"5743:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5737:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5774:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5784:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5778:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5828:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5837:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5845:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5830:6:103"},"nodeType":"YulFunctionCall","src":"5830:22:103"},"nodeType":"YulExpressionStatement","src":"5830:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5810:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5819:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5806:3:103"},"nodeType":"YulFunctionCall","src":"5806:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"5824:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5802:3:103"},"nodeType":"YulFunctionCall","src":"5802:25:103"},"nodeType":"YulIf","src":"5799:2:103"},{"nodeType":"YulVariableDeclaration","src":"5863:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5892:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5876:15:103"},"nodeType":"YulFunctionCall","src":"5876:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5867:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5911:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5924:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5918:5:103"},"nodeType":"YulFunctionCall","src":"5918:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5904:6:103"},"nodeType":"YulFunctionCall","src":"5904:24:103"},"nodeType":"YulExpressionStatement","src":"5904:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5948:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5955:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5944:3:103"},"nodeType":"YulFunctionCall","src":"5944:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5970:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5974:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5966:3:103"},"nodeType":"YulFunctionCall","src":"5966:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5960:5:103"},"nodeType":"YulFunctionCall","src":"5960:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5937:6:103"},"nodeType":"YulFunctionCall","src":"5937:42:103"},"nodeType":"YulExpressionStatement","src":"5937:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5999:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6006:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5995:3:103"},"nodeType":"YulFunctionCall","src":"5995:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6021:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6025:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6017:3:103"},"nodeType":"YulFunctionCall","src":"6017:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6011:5:103"},"nodeType":"YulFunctionCall","src":"6011:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5988:6:103"},"nodeType":"YulFunctionCall","src":"5988:42:103"},"nodeType":"YulExpressionStatement","src":"5988:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6050:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6057:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6046:3:103"},"nodeType":"YulFunctionCall","src":"6046:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6110:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6114:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6106:3:103"},"nodeType":"YulFunctionCall","src":"6106:11:103"}],"functionName":{"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulIdentifier","src":"6062:43:103"},"nodeType":"YulFunctionCall","src":"6062:56:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6039:6:103"},"nodeType":"YulFunctionCall","src":"6039:80:103"},"nodeType":"YulExpressionStatement","src":"6039:80:103"},{"nodeType":"YulVariableDeclaration","src":"6128:35:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6154:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6158:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6150:3:103"},"nodeType":"YulFunctionCall","src":"6150:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6144:5:103"},"nodeType":"YulFunctionCall","src":"6144:19:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6132:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6192:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6201:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6209:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6194:6:103"},"nodeType":"YulFunctionCall","src":"6194:22:103"},"nodeType":"YulExpressionStatement","src":"6194:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6178:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6188:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6175:2:103"},"nodeType":"YulFunctionCall","src":"6175:16:103"},"nodeType":"YulIf","src":"6172:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6238:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6245:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6234:3:103"},"nodeType":"YulFunctionCall","src":"6234:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6283:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6287:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6279:3:103"},"nodeType":"YulFunctionCall","src":"6279:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6298:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"6251:27:103"},"nodeType":"YulFunctionCall","src":"6251:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6227:6:103"},"nodeType":"YulFunctionCall","src":"6227:80:103"},"nodeType":"YulExpressionStatement","src":"6227:80:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6327:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6334:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6323:3:103"},"nodeType":"YulFunctionCall","src":"6323:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6350:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6354:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6346:3:103"},"nodeType":"YulFunctionCall","src":"6346:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6340:5:103"},"nodeType":"YulFunctionCall","src":"6340:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6316:6:103"},"nodeType":"YulFunctionCall","src":"6316:44:103"},"nodeType":"YulExpressionStatement","src":"6316:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6380:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6387:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6376:3:103"},"nodeType":"YulFunctionCall","src":"6376:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6403:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6407:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6399:3:103"},"nodeType":"YulFunctionCall","src":"6399:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6393:5:103"},"nodeType":"YulFunctionCall","src":"6393:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6369:6:103"},"nodeType":"YulFunctionCall","src":"6369:44:103"},"nodeType":"YulExpressionStatement","src":"6369:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6433:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6440:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6429:3:103"},"nodeType":"YulFunctionCall","src":"6429:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6456:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6460:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6452:3:103"},"nodeType":"YulFunctionCall","src":"6452:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6446:5:103"},"nodeType":"YulFunctionCall","src":"6446:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6422:6:103"},"nodeType":"YulFunctionCall","src":"6422:44:103"},"nodeType":"YulExpressionStatement","src":"6422:44:103"},{"nodeType":"YulVariableDeclaration","src":"6475:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6485:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"6479:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6508:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"6515:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6504:3:103"},"nodeType":"YulFunctionCall","src":"6504:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6530:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"6534:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6526:3:103"},"nodeType":"YulFunctionCall","src":"6526:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6520:5:103"},"nodeType":"YulFunctionCall","src":"6520:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6497:6:103"},"nodeType":"YulFunctionCall","src":"6497:42:103"},"nodeType":"YulExpressionStatement","src":"6497:42:103"},{"nodeType":"YulVariableDeclaration","src":"6548:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6558:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"6552:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6581:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"6588:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6577:3:103"},"nodeType":"YulFunctionCall","src":"6577:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6603:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"6607:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6599:3:103"},"nodeType":"YulFunctionCall","src":"6599:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6593:5:103"},"nodeType":"YulFunctionCall","src":"6593:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6570:6:103"},"nodeType":"YulFunctionCall","src":"6570:42:103"},"nodeType":"YulExpressionStatement","src":"6570:42:103"},{"nodeType":"YulAssignment","src":"6621:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6631:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6621:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5489:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5500:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5512:6:103","type":""}],"src":"5418:1224:103"},{"body":{"nodeType":"YulBlock","src":"6787:1362:103","statements":[{"body":{"nodeType":"YulBlock","src":"6833:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6842:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6850:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6835:6:103"},"nodeType":"YulFunctionCall","src":"6835:22:103"},"nodeType":"YulExpressionStatement","src":"6835:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6808:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6817:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6804:3:103"},"nodeType":"YulFunctionCall","src":"6804:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6829:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6800:3:103"},"nodeType":"YulFunctionCall","src":"6800:32:103"},"nodeType":"YulIf","src":"6797:2:103"},{"nodeType":"YulVariableDeclaration","src":"6868:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6895:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6882:12:103"},"nodeType":"YulFunctionCall","src":"6882:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6872:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6914:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6924:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6918:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6969:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6978:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6986:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6971:6:103"},"nodeType":"YulFunctionCall","src":"6971:22:103"},"nodeType":"YulExpressionStatement","src":"6971:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6957:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6965:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6954:2:103"},"nodeType":"YulFunctionCall","src":"6954:14:103"},"nodeType":"YulIf","src":"6951:2:103"},{"nodeType":"YulVariableDeclaration","src":"7004:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7018:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"7029:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7014:3:103"},"nodeType":"YulFunctionCall","src":"7014:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7008:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7045:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7055:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"7049:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7099:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7108:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7116:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7101:6:103"},"nodeType":"YulFunctionCall","src":"7101:22:103"},"nodeType":"YulExpressionStatement","src":"7101:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7081:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"7090:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7077:3:103"},"nodeType":"YulFunctionCall","src":"7077:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"7095:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7073:3:103"},"nodeType":"YulFunctionCall","src":"7073:25:103"},"nodeType":"YulIf","src":"7070:2:103"},{"nodeType":"YulVariableDeclaration","src":"7134:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"7163:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"7147:15:103"},"nodeType":"YulFunctionCall","src":"7147:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7138:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7182:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7202:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7189:12:103"},"nodeType":"YulFunctionCall","src":"7189:16:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7175:6:103"},"nodeType":"YulFunctionCall","src":"7175:31:103"},"nodeType":"YulExpressionStatement","src":"7175:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7226:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7233:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7222:3:103"},"nodeType":"YulFunctionCall","src":"7222:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7255:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7259:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7251:3:103"},"nodeType":"YulFunctionCall","src":"7251:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7238:12:103"},"nodeType":"YulFunctionCall","src":"7238:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7215:6:103"},"nodeType":"YulFunctionCall","src":"7215:49:103"},"nodeType":"YulExpressionStatement","src":"7215:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7284:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7291:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7280:3:103"},"nodeType":"YulFunctionCall","src":"7280:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7313:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7317:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7309:3:103"},"nodeType":"YulFunctionCall","src":"7309:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7296:12:103"},"nodeType":"YulFunctionCall","src":"7296:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7273:6:103"},"nodeType":"YulFunctionCall","src":"7273:49:103"},"nodeType":"YulExpressionStatement","src":"7273:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7342:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7349:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7338:3:103"},"nodeType":"YulFunctionCall","src":"7338:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7391:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7395:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7387:3:103"},"nodeType":"YulFunctionCall","src":"7387:11:103"}],"functionName":{"name":"abi_decode_enum_ApplicationState","nodeType":"YulIdentifier","src":"7354:32:103"},"nodeType":"YulFunctionCall","src":"7354:45:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7331:6:103"},"nodeType":"YulFunctionCall","src":"7331:69:103"},"nodeType":"YulExpressionStatement","src":"7331:69:103"},{"nodeType":"YulVariableDeclaration","src":"7409:42:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7442:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7446:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7438:3:103"},"nodeType":"YulFunctionCall","src":"7438:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7425:12:103"},"nodeType":"YulFunctionCall","src":"7425:26:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7413:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7480:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7489:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7497:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7482:6:103"},"nodeType":"YulFunctionCall","src":"7482:22:103"},"nodeType":"YulExpressionStatement","src":"7482:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7466:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7476:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7463:2:103"},"nodeType":"YulFunctionCall","src":"7463:16:103"},"nodeType":"YulIf","src":"7460:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7526:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7533:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7522:3:103"},"nodeType":"YulFunctionCall","src":"7522:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7560:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7564:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7556:3:103"},"nodeType":"YulFunctionCall","src":"7556:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7575:7:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"7539:16:103"},"nodeType":"YulFunctionCall","src":"7539:44:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7515:6:103"},"nodeType":"YulFunctionCall","src":"7515:69:103"},"nodeType":"YulExpressionStatement","src":"7515:69:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7604:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7611:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7600:3:103"},"nodeType":"YulFunctionCall","src":"7600:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7634:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7638:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7630:3:103"},"nodeType":"YulFunctionCall","src":"7630:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7617:12:103"},"nodeType":"YulFunctionCall","src":"7617:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7593:6:103"},"nodeType":"YulFunctionCall","src":"7593:51:103"},"nodeType":"YulExpressionStatement","src":"7593:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7664:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7671:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7660:3:103"},"nodeType":"YulFunctionCall","src":"7660:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7694:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7698:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7690:3:103"},"nodeType":"YulFunctionCall","src":"7690:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7677:12:103"},"nodeType":"YulFunctionCall","src":"7677:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7653:6:103"},"nodeType":"YulFunctionCall","src":"7653:51:103"},"nodeType":"YulExpressionStatement","src":"7653:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7724:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7731:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7720:3:103"},"nodeType":"YulFunctionCall","src":"7720:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7754:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7758:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7750:3:103"},"nodeType":"YulFunctionCall","src":"7750:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7737:12:103"},"nodeType":"YulFunctionCall","src":"7737:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7713:6:103"},"nodeType":"YulFunctionCall","src":"7713:51:103"},"nodeType":"YulExpressionStatement","src":"7713:51:103"},{"nodeType":"YulVariableDeclaration","src":"7773:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7783:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"7777:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7806:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"7813:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7802:3:103"},"nodeType":"YulFunctionCall","src":"7802:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7835:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"7839:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7831:3:103"},"nodeType":"YulFunctionCall","src":"7831:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7818:12:103"},"nodeType":"YulFunctionCall","src":"7818:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7795:6:103"},"nodeType":"YulFunctionCall","src":"7795:49:103"},"nodeType":"YulExpressionStatement","src":"7795:49:103"},{"nodeType":"YulVariableDeclaration","src":"7853:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7863:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"7857:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7886:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"7893:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7882:3:103"},"nodeType":"YulFunctionCall","src":"7882:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7915:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"7919:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7911:3:103"},"nodeType":"YulFunctionCall","src":"7911:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7898:12:103"},"nodeType":"YulFunctionCall","src":"7898:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7875:6:103"},"nodeType":"YulFunctionCall","src":"7875:49:103"},"nodeType":"YulExpressionStatement","src":"7875:49:103"},{"nodeType":"YulAssignment","src":"7933:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7943:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7933:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"7957:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7990:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8001:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7986:3:103"},"nodeType":"YulFunctionCall","src":"7986:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7973:12:103"},"nodeType":"YulFunctionCall","src":"7973:32:103"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"7961:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8034:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8043:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8051:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8036:6:103"},"nodeType":"YulFunctionCall","src":"8036:22:103"},"nodeType":"YulExpressionStatement","src":"8036:22:103"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"8020:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8030:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8017:2:103"},"nodeType":"YulFunctionCall","src":"8017:16:103"},"nodeType":"YulIf","src":"8014:2:103"},{"nodeType":"YulAssignment","src":"8069:74:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8113:9:103"},{"name":"offset_2","nodeType":"YulIdentifier","src":"8124:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8109:3:103"},"nodeType":"YulFunctionCall","src":"8109:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8135:7:103"}],"functionName":{"name":"abi_decode_struct_Application","nodeType":"YulIdentifier","src":"8079:29:103"},"nodeType":"YulFunctionCall","src":"8079:64:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8069:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptrt_struct$_Application_$5262_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6745:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6756:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6768:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6776:6:103","type":""}],"src":"6647:1502:103"},{"body":{"nodeType":"YulBlock","src":"8224:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"8270:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8279:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8287:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8272:6:103"},"nodeType":"YulFunctionCall","src":"8272:22:103"},"nodeType":"YulExpressionStatement","src":"8272:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8245:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8254:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8241:3:103"},"nodeType":"YulFunctionCall","src":"8241:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8266:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8237:3:103"},"nodeType":"YulFunctionCall","src":"8237:32:103"},"nodeType":"YulIf","src":"8234:2:103"},{"nodeType":"YulAssignment","src":"8305:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8328:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8315:12:103"},"nodeType":"YulFunctionCall","src":"8315:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8305:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8190:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8201:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8213:6:103","type":""}],"src":"8154:190:103"},{"body":{"nodeType":"YulBlock","src":"8430:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"8476:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8485:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8493:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8478:6:103"},"nodeType":"YulFunctionCall","src":"8478:22:103"},"nodeType":"YulExpressionStatement","src":"8478:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8451:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8460:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8447:3:103"},"nodeType":"YulFunctionCall","src":"8447:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8472:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8443:3:103"},"nodeType":"YulFunctionCall","src":"8443:32:103"},"nodeType":"YulIf","src":"8440:2:103"},{"nodeType":"YulAssignment","src":"8511:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8527:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8521:5:103"},"nodeType":"YulFunctionCall","src":"8521:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8511:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8396:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8407:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8419:6:103","type":""}],"src":"8349:194:103"},{"body":{"nodeType":"YulBlock","src":"8635:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"8681:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8690:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8698:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8683:6:103"},"nodeType":"YulFunctionCall","src":"8683:22:103"},"nodeType":"YulExpressionStatement","src":"8683:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8656:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8665:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8652:3:103"},"nodeType":"YulFunctionCall","src":"8652:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8677:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8648:3:103"},"nodeType":"YulFunctionCall","src":"8648:32:103"},"nodeType":"YulIf","src":"8645:2:103"},{"nodeType":"YulAssignment","src":"8716:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8739:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8726:12:103"},"nodeType":"YulFunctionCall","src":"8726:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8716:6:103"}]},{"nodeType":"YulAssignment","src":"8758:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8785:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8796:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8781:3:103"},"nodeType":"YulFunctionCall","src":"8781:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8768:12:103"},"nodeType":"YulFunctionCall","src":"8768:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8758:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8593:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8604:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8616:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8624:6:103","type":""}],"src":"8548:258:103"},{"body":{"nodeType":"YulBlock","src":"8860:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8870:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8890:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8884:5:103"},"nodeType":"YulFunctionCall","src":"8884:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8874:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8912:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"8917:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8905:6:103"},"nodeType":"YulFunctionCall","src":"8905:19:103"},"nodeType":"YulExpressionStatement","src":"8905:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8959:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8966:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8955:3:103"},"nodeType":"YulFunctionCall","src":"8955:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8977:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"8982:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8973:3:103"},"nodeType":"YulFunctionCall","src":"8973:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"8989:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"8933:21:103"},"nodeType":"YulFunctionCall","src":"8933:63:103"},"nodeType":"YulExpressionStatement","src":"8933:63:103"},{"nodeType":"YulAssignment","src":"9005:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9020:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"9033:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9041:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9029:3:103"},"nodeType":"YulFunctionCall","src":"9029:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9050:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9046:3:103"},"nodeType":"YulFunctionCall","src":"9046:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9025:3:103"},"nodeType":"YulFunctionCall","src":"9025:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9016:3:103"},"nodeType":"YulFunctionCall","src":"9016:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"9057:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9012:3:103"},"nodeType":"YulFunctionCall","src":"9012:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9005:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8837:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8844:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8852:3:103","type":""}],"src":"8811:257:103"},{"body":{"nodeType":"YulBlock","src":"9126:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"9160:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"9162:16:103"},"nodeType":"YulFunctionCall","src":"9162:18:103"},"nodeType":"YulExpressionStatement","src":"9162:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9149:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9156:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9146:2:103"},"nodeType":"YulFunctionCall","src":"9146:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9139:6:103"},"nodeType":"YulFunctionCall","src":"9139:20:103"},"nodeType":"YulIf","src":"9136:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9198:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"9203:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9191:6:103"},"nodeType":"YulFunctionCall","src":"9191:18:103"},"nodeType":"YulExpressionStatement","src":"9191:18:103"}]},"name":"abi_encode_enum_BundleState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9110:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"9117:3:103","type":""}],"src":"9073:142:103"},{"body":{"nodeType":"YulBlock","src":"9609:397:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9626:3:103"},{"kind":"string","nodeType":"YulLiteral","src":"9631:25:103","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9619:6:103"},"nodeType":"YulFunctionCall","src":"9619:38:103"},"nodeType":"YulExpressionStatement","src":"9619:38:103"},{"nodeType":"YulVariableDeclaration","src":"9666:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9686:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9680:5:103"},"nodeType":"YulFunctionCall","src":"9680:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9670:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9728:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9736:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9724:3:103"},"nodeType":"YulFunctionCall","src":"9724:17:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9747:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"9752:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9743:3:103"},"nodeType":"YulFunctionCall","src":"9743:12:103"},{"name":"length","nodeType":"YulIdentifier","src":"9757:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9702:21:103"},"nodeType":"YulFunctionCall","src":"9702:62:103"},"nodeType":"YulExpressionStatement","src":"9702:62:103"},{"nodeType":"YulVariableDeclaration","src":"9773:26:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9787:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"9792:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9783:3:103"},"nodeType":"YulFunctionCall","src":"9783:16:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9777:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9819:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9823:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9815:3:103"},"nodeType":"YulFunctionCall","src":"9815:11:103"},{"kind":"string","nodeType":"YulLiteral","src":"9828:19:103","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9808:6:103"},"nodeType":"YulFunctionCall","src":"9808:40:103"},"nodeType":"YulExpressionStatement","src":"9808:40:103"},{"nodeType":"YulVariableDeclaration","src":"9857:29:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9879:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9873:5:103"},"nodeType":"YulFunctionCall","src":"9873:13:103"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"9861:8:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9921:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9929:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9917:3:103"},"nodeType":"YulFunctionCall","src":"9917:17:103"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9940:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9944:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9936:3:103"},"nodeType":"YulFunctionCall","src":"9936:11:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"9949:8:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9895:21:103"},"nodeType":"YulFunctionCall","src":"9895:63:103"},"nodeType":"YulExpressionStatement","src":"9895:63:103"},{"nodeType":"YulAssignment","src":"9967:33:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9982:2:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"9986:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9978:3:103"},"nodeType":"YulFunctionCall","src":"9978:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"9997:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9974:3:103"},"nodeType":"YulFunctionCall","src":"9974:26:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9967:3:103"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9577:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9582:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9590:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9601:3:103","type":""}],"src":"9220:786:103"},{"body":{"nodeType":"YulBlock","src":"10112:102:103","statements":[{"nodeType":"YulAssignment","src":"10122:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10134:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10145:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10130:3:103"},"nodeType":"YulFunctionCall","src":"10130:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10122:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10164:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10179:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10195:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10200:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10191:3:103"},"nodeType":"YulFunctionCall","src":"10191:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10204:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10187:3:103"},"nodeType":"YulFunctionCall","src":"10187:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10175:3:103"},"nodeType":"YulFunctionCall","src":"10175:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10157:6:103"},"nodeType":"YulFunctionCall","src":"10157:51:103"},"nodeType":"YulExpressionStatement","src":"10157:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10081:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10092:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10103:4:103","type":""}],"src":"10011:203:103"},{"body":{"nodeType":"YulBlock","src":"10404:262:103","statements":[{"nodeType":"YulAssignment","src":"10414:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10437:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10422:3:103"},"nodeType":"YulFunctionCall","src":"10422:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10414:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"10450:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10468:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10473:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10464:3:103"},"nodeType":"YulFunctionCall","src":"10464:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10477:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10460:3:103"},"nodeType":"YulFunctionCall","src":"10460:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10454:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10495:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10510:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10518:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10506:3:103"},"nodeType":"YulFunctionCall","src":"10506:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10488:6:103"},"nodeType":"YulFunctionCall","src":"10488:34:103"},"nodeType":"YulExpressionStatement","src":"10488:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10553:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10538:3:103"},"nodeType":"YulFunctionCall","src":"10538:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10562:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10570:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10558:3:103"},"nodeType":"YulFunctionCall","src":"10558:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10531:6:103"},"nodeType":"YulFunctionCall","src":"10531:43:103"},"nodeType":"YulExpressionStatement","src":"10531:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10594:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10605:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10590:3:103"},"nodeType":"YulFunctionCall","src":"10590:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10610:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10583:6:103"},"nodeType":"YulFunctionCall","src":"10583:34:103"},"nodeType":"YulExpressionStatement","src":"10583:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10648:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10633:3:103"},"nodeType":"YulFunctionCall","src":"10633:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"10653:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10626:6:103"},"nodeType":"YulFunctionCall","src":"10626:34:103"},"nodeType":"YulExpressionStatement","src":"10626:34:103"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10349:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10360:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10368:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10376:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10384:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10395:4:103","type":""}],"src":"10219:447:103"},{"body":{"nodeType":"YulBlock","src":"10846:210:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10863:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10878:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10894:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10899:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10890:3:103"},"nodeType":"YulFunctionCall","src":"10890:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10903:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10886:3:103"},"nodeType":"YulFunctionCall","src":"10886:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10874:3:103"},"nodeType":"YulFunctionCall","src":"10874:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10856:6:103"},"nodeType":"YulFunctionCall","src":"10856:51:103"},"nodeType":"YulExpressionStatement","src":"10856:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10927:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10938:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10923:3:103"},"nodeType":"YulFunctionCall","src":"10923:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10943:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10916:6:103"},"nodeType":"YulFunctionCall","src":"10916:30:103"},"nodeType":"YulExpressionStatement","src":"10916:30:103"},{"nodeType":"YulAssignment","src":"10955:52:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10980:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11003:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10988:3:103"},"nodeType":"YulFunctionCall","src":"10988:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"10963:16:103"},"nodeType":"YulFunctionCall","src":"10963:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10955:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11027:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11038:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11023:3:103"},"nodeType":"YulFunctionCall","src":"11023:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"11043:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11016:6:103"},"nodeType":"YulFunctionCall","src":"11016:34:103"},"nodeType":"YulExpressionStatement","src":"11016:34:103"}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10799:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10810:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10818:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10826:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10837:4:103","type":""}],"src":"10671:385:103"},{"body":{"nodeType":"YulBlock","src":"11156:92:103","statements":[{"nodeType":"YulAssignment","src":"11166:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11178:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11189:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11174:3:103"},"nodeType":"YulFunctionCall","src":"11174:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11166:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11208:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11233:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11226:6:103"},"nodeType":"YulFunctionCall","src":"11226:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11219:6:103"},"nodeType":"YulFunctionCall","src":"11219:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11201:6:103"},"nodeType":"YulFunctionCall","src":"11201:41:103"},"nodeType":"YulExpressionStatement","src":"11201:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11125:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11136:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11147:4:103","type":""}],"src":"11061:187:103"},{"body":{"nodeType":"YulBlock","src":"11354:76:103","statements":[{"nodeType":"YulAssignment","src":"11364:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11376:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11387:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11372:3:103"},"nodeType":"YulFunctionCall","src":"11372:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11364:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11406:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11417:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11399:6:103"},"nodeType":"YulFunctionCall","src":"11399:25:103"},"nodeType":"YulExpressionStatement","src":"11399:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11323:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11334:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11345:4:103","type":""}],"src":"11253:177:103"},{"body":{"nodeType":"YulBlock","src":"11564:119:103","statements":[{"nodeType":"YulAssignment","src":"11574:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11586:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11597:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11582:3:103"},"nodeType":"YulFunctionCall","src":"11582:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11574:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11616:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11627:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11609:6:103"},"nodeType":"YulFunctionCall","src":"11609:25:103"},"nodeType":"YulExpressionStatement","src":"11609:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11665:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11650:3:103"},"nodeType":"YulFunctionCall","src":"11650:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11670:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11643:6:103"},"nodeType":"YulFunctionCall","src":"11643:34:103"},"nodeType":"YulExpressionStatement","src":"11643:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11525:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11536:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11544:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11555:4:103","type":""}],"src":"11435:248:103"},{"body":{"nodeType":"YulBlock","src":"11839:178:103","statements":[{"nodeType":"YulAssignment","src":"11849:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11872:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11857:3:103"},"nodeType":"YulFunctionCall","src":"11857:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11849:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11891:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11902:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11884:6:103"},"nodeType":"YulFunctionCall","src":"11884:25:103"},"nodeType":"YulExpressionStatement","src":"11884:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11929:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11940:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11925:3:103"},"nodeType":"YulFunctionCall","src":"11925:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11945:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11918:6:103"},"nodeType":"YulFunctionCall","src":"11918:34:103"},"nodeType":"YulExpressionStatement","src":"11918:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11972:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11983:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11968:3:103"},"nodeType":"YulFunctionCall","src":"11968:18:103"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12002:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11995:6:103"},"nodeType":"YulFunctionCall","src":"11995:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11988:6:103"},"nodeType":"YulFunctionCall","src":"11988:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11961:6:103"},"nodeType":"YulFunctionCall","src":"11961:50:103"},"nodeType":"YulExpressionStatement","src":"11961:50:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bool__to_t_bytes32_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11792:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11803:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11811:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11819:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11830:4:103","type":""}],"src":"11688:329:103"},{"body":{"nodeType":"YulBlock","src":"12141:102:103","statements":[{"nodeType":"YulAssignment","src":"12151:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12163:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12174:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12159:3:103"},"nodeType":"YulFunctionCall","src":"12159:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12151:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12193:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12208:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12224:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12229:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12220:3:103"},"nodeType":"YulFunctionCall","src":"12220:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"12233:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12216:3:103"},"nodeType":"YulFunctionCall","src":"12216:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12204:3:103"},"nodeType":"YulFunctionCall","src":"12204:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12186:6:103"},"nodeType":"YulFunctionCall","src":"12186:51:103"},"nodeType":"YulExpressionStatement","src":"12186:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12110:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12121:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12132:4:103","type":""}],"src":"12022:221:103"},{"body":{"nodeType":"YulBlock","src":"12366:132:103","statements":[{"nodeType":"YulAssignment","src":"12376:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12388:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12399:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12384:3:103"},"nodeType":"YulFunctionCall","src":"12384:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12376:4:103"}]},{"body":{"nodeType":"YulBlock","src":"12436:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"12438:16:103"},"nodeType":"YulFunctionCall","src":"12438:18:103"},"nodeType":"YulExpressionStatement","src":"12438:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12424:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12432:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12421:2:103"},"nodeType":"YulFunctionCall","src":"12421:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12414:6:103"},"nodeType":"YulFunctionCall","src":"12414:21:103"},"nodeType":"YulIf","src":"12411:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12474:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12485:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12467:6:103"},"nodeType":"YulFunctionCall","src":"12467:25:103"},"nodeType":"YulExpressionStatement","src":"12467:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12335:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12346:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12357:4:103","type":""}],"src":"12248:250:103"},{"body":{"nodeType":"YulBlock","src":"12620:132:103","statements":[{"nodeType":"YulAssignment","src":"12630:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12638:3:103"},"nodeType":"YulFunctionCall","src":"12638:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12630:4:103"}]},{"body":{"nodeType":"YulBlock","src":"12690:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"12692:16:103"},"nodeType":"YulFunctionCall","src":"12692:18:103"},"nodeType":"YulExpressionStatement","src":"12692:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12678:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12686:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12675:2:103"},"nodeType":"YulFunctionCall","src":"12675:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12668:6:103"},"nodeType":"YulFunctionCall","src":"12668:21:103"},"nodeType":"YulIf","src":"12665:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12728:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12739:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12721:6:103"},"nodeType":"YulFunctionCall","src":"12721:25:103"},"nodeType":"YulExpressionStatement","src":"12721:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12589:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12600:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12611:4:103","type":""}],"src":"12503:249:103"},{"body":{"nodeType":"YulBlock","src":"12878:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12895:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12906:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12888:6:103"},"nodeType":"YulFunctionCall","src":"12888:21:103"},"nodeType":"YulExpressionStatement","src":"12888:21:103"},{"nodeType":"YulAssignment","src":"12918:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12943:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12955:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12966:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12951:3:103"},"nodeType":"YulFunctionCall","src":"12951:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"12926:16:103"},"nodeType":"YulFunctionCall","src":"12926:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12918:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12847:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12858:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12869:4:103","type":""}],"src":"12757:219:103"},{"body":{"nodeType":"YulBlock","src":"13155:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13172:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13183:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13165:6:103"},"nodeType":"YulFunctionCall","src":"13165:21:103"},"nodeType":"YulExpressionStatement","src":"13165:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13206:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13217:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13202:3:103"},"nodeType":"YulFunctionCall","src":"13202:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13222:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13195:6:103"},"nodeType":"YulFunctionCall","src":"13195:30:103"},"nodeType":"YulExpressionStatement","src":"13195:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13245:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13256:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13241:3:103"},"nodeType":"YulFunctionCall","src":"13241:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13261:34:103","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13234:6:103"},"nodeType":"YulFunctionCall","src":"13234:62:103"},"nodeType":"YulExpressionStatement","src":"13234:62:103"},{"nodeType":"YulAssignment","src":"13305:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13317:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13328:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13313:3:103"},"nodeType":"YulFunctionCall","src":"13313:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13305:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13132:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13146:4:103","type":""}],"src":"12981:356:103"},{"body":{"nodeType":"YulBlock","src":"13516:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13533:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13544:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13526:6:103"},"nodeType":"YulFunctionCall","src":"13526:21:103"},"nodeType":"YulExpressionStatement","src":"13526:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13578:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13563:3:103"},"nodeType":"YulFunctionCall","src":"13563:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13583:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13556:6:103"},"nodeType":"YulFunctionCall","src":"13556:30:103"},"nodeType":"YulExpressionStatement","src":"13556:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13606:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13617:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13602:3:103"},"nodeType":"YulFunctionCall","src":"13602:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13622:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13595:6:103"},"nodeType":"YulFunctionCall","src":"13595:57:103"},"nodeType":"YulExpressionStatement","src":"13595:57:103"},{"nodeType":"YulAssignment","src":"13661:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13673:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13684:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13669:3:103"},"nodeType":"YulFunctionCall","src":"13669:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13661:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13493:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13507:4:103","type":""}],"src":"13342:351:103"},{"body":{"nodeType":"YulBlock","src":"13872:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13889:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13900:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13882:6:103"},"nodeType":"YulFunctionCall","src":"13882:21:103"},"nodeType":"YulExpressionStatement","src":"13882:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13923:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13934:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13919:3:103"},"nodeType":"YulFunctionCall","src":"13919:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13939:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13912:6:103"},"nodeType":"YulFunctionCall","src":"13912:30:103"},"nodeType":"YulExpressionStatement","src":"13912:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13962:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13973:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13958:3:103"},"nodeType":"YulFunctionCall","src":"13958:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13978:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13951:6:103"},"nodeType":"YulFunctionCall","src":"13951:62:103"},"nodeType":"YulExpressionStatement","src":"13951:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14033:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14044:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14029:3:103"},"nodeType":"YulFunctionCall","src":"14029:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14049:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14022:6:103"},"nodeType":"YulFunctionCall","src":"14022:36:103"},"nodeType":"YulExpressionStatement","src":"14022:36:103"},{"nodeType":"YulAssignment","src":"14067:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14079:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14090:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14075:3:103"},"nodeType":"YulFunctionCall","src":"14075:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14067:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13849:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13863:4:103","type":""}],"src":"13698:402:103"},{"body":{"nodeType":"YulBlock","src":"14279:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14296:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14307:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14289:6:103"},"nodeType":"YulFunctionCall","src":"14289:21:103"},"nodeType":"YulExpressionStatement","src":"14289:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14330:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14341:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14326:3:103"},"nodeType":"YulFunctionCall","src":"14326:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14346:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14319:6:103"},"nodeType":"YulFunctionCall","src":"14319:30:103"},"nodeType":"YulExpressionStatement","src":"14319:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14369:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14380:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14365:3:103"},"nodeType":"YulFunctionCall","src":"14365:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14385:34:103","type":"","value":"ERROR:RPL-006:BUNDLE_INDEX_TOO_L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14358:6:103"},"nodeType":"YulFunctionCall","src":"14358:62:103"},"nodeType":"YulExpressionStatement","src":"14358:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14451:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14436:3:103"},"nodeType":"YulFunctionCall","src":"14436:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14456:6:103","type":"","value":"ARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14429:6:103"},"nodeType":"YulFunctionCall","src":"14429:34:103"},"nodeType":"YulExpressionStatement","src":"14429:34:103"},{"nodeType":"YulAssignment","src":"14472:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14484:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14495:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14480:3:103"},"nodeType":"YulFunctionCall","src":"14480:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14472:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14256:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14270:4:103","type":""}],"src":"14105:400:103"},{"body":{"nodeType":"YulBlock","src":"14684:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14701:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14712:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14694:6:103"},"nodeType":"YulFunctionCall","src":"14694:21:103"},"nodeType":"YulExpressionStatement","src":"14694:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14735:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14746:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14731:3:103"},"nodeType":"YulFunctionCall","src":"14731:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14751:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14724:6:103"},"nodeType":"YulFunctionCall","src":"14724:30:103"},"nodeType":"YulExpressionStatement","src":"14724:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14774:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14785:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14770:3:103"},"nodeType":"YulFunctionCall","src":"14770:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14790:33:103","type":"","value":"ERROR:BRP-001:NO_ACTIVE_BUNDLES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14763:6:103"},"nodeType":"YulFunctionCall","src":"14763:61:103"},"nodeType":"YulExpressionStatement","src":"14763:61:103"},{"nodeType":"YulAssignment","src":"14833:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14845:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14856:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14841:3:103"},"nodeType":"YulFunctionCall","src":"14841:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14833:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14661:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14675:4:103","type":""}],"src":"14510:355:103"},{"body":{"nodeType":"YulBlock","src":"15044:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15061:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15072:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15054:6:103"},"nodeType":"YulFunctionCall","src":"15054:21:103"},"nodeType":"YulExpressionStatement","src":"15054:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15095:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15106:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15091:3:103"},"nodeType":"YulFunctionCall","src":"15091:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15111:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15084:6:103"},"nodeType":"YulFunctionCall","src":"15084:30:103"},"nodeType":"YulExpressionStatement","src":"15084:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15134:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15145:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15130:3:103"},"nodeType":"YulFunctionCall","src":"15130:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15150:34:103","type":"","value":"ERROR:RPL-007:ACTIVE_BUNDLE_INDE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15123:6:103"},"nodeType":"YulFunctionCall","src":"15123:62:103"},"nodeType":"YulExpressionStatement","src":"15123:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15216:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15201:3:103"},"nodeType":"YulFunctionCall","src":"15201:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15221:13:103","type":"","value":"X_TOO_LARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15194:6:103"},"nodeType":"YulFunctionCall","src":"15194:41:103"},"nodeType":"YulExpressionStatement","src":"15194:41:103"},{"nodeType":"YulAssignment","src":"15244:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15256:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15267:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15252:3:103"},"nodeType":"YulFunctionCall","src":"15252:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15244:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15021:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15035:4:103","type":""}],"src":"14870:407:103"},{"body":{"nodeType":"YulBlock","src":"15456:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15473:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15484:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15466:6:103"},"nodeType":"YulFunctionCall","src":"15466:21:103"},"nodeType":"YulExpressionStatement","src":"15466:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15507:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15518:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15503:3:103"},"nodeType":"YulFunctionCall","src":"15503:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15523:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15496:6:103"},"nodeType":"YulFunctionCall","src":"15496:30:103"},"nodeType":"YulExpressionStatement","src":"15496:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15546:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15557:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15542:3:103"},"nodeType":"YulFunctionCall","src":"15542:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15562:31:103","type":"","value":"ERROR:BRP-002:NO_FREE_CAPITAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15535:6:103"},"nodeType":"YulFunctionCall","src":"15535:59:103"},"nodeType":"YulExpressionStatement","src":"15535:59:103"},{"nodeType":"YulAssignment","src":"15603:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15626:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15611:3:103"},"nodeType":"YulFunctionCall","src":"15611:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15603:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15433:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15447:4:103","type":""}],"src":"15282:353:103"},{"body":{"nodeType":"YulBlock","src":"15814:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15831:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15842:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15824:6:103"},"nodeType":"YulFunctionCall","src":"15824:21:103"},"nodeType":"YulExpressionStatement","src":"15824:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15876:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15861:3:103"},"nodeType":"YulFunctionCall","src":"15861:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15881:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15854:6:103"},"nodeType":"YulFunctionCall","src":"15854:30:103"},"nodeType":"YulExpressionStatement","src":"15854:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15904:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15915:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15900:3:103"},"nodeType":"YulFunctionCall","src":"15900:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15920:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15893:6:103"},"nodeType":"YulFunctionCall","src":"15893:62:103"},"nodeType":"YulExpressionStatement","src":"15893:62:103"},{"nodeType":"YulAssignment","src":"15964:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15976:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15987:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15972:3:103"},"nodeType":"YulFunctionCall","src":"15972:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15964:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15791:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15805:4:103","type":""}],"src":"15640:356:103"},{"body":{"nodeType":"YulBlock","src":"16175:232:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16203:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16185:6:103"},"nodeType":"YulFunctionCall","src":"16185:21:103"},"nodeType":"YulExpressionStatement","src":"16185:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16237:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16222:3:103"},"nodeType":"YulFunctionCall","src":"16222:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16242:2:103","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16215:6:103"},"nodeType":"YulFunctionCall","src":"16215:30:103"},"nodeType":"YulExpressionStatement","src":"16215:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16265:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16276:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16261:3:103"},"nodeType":"YulFunctionCall","src":"16261:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16281:34:103","type":"","value":"ERROR:RPL-010:RISKPOOL_HAS_UNBUR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16254:6:103"},"nodeType":"YulFunctionCall","src":"16254:62:103"},"nodeType":"YulExpressionStatement","src":"16254:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16336:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16347:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16332:3:103"},"nodeType":"YulFunctionCall","src":"16332:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16352:12:103","type":"","value":"NT_BUNDLES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16325:6:103"},"nodeType":"YulFunctionCall","src":"16325:40:103"},"nodeType":"YulExpressionStatement","src":"16325:40:103"},{"nodeType":"YulAssignment","src":"16374:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16397:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16382:3:103"},"nodeType":"YulFunctionCall","src":"16382:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16374:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16152:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16166:4:103","type":""}],"src":"16001:406:103"},{"body":{"nodeType":"YulBlock","src":"16586:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16614:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16596:6:103"},"nodeType":"YulFunctionCall","src":"16596:21:103"},"nodeType":"YulExpressionStatement","src":"16596:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16648:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16633:3:103"},"nodeType":"YulFunctionCall","src":"16633:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16653:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16626:6:103"},"nodeType":"YulFunctionCall","src":"16626:30:103"},"nodeType":"YulExpressionStatement","src":"16626:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16676:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16687:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16672:3:103"},"nodeType":"YulFunctionCall","src":"16672:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16692:32:103","type":"","value":"ERROR:BUC-001:NOT_BUNDLE_OWNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16665:6:103"},"nodeType":"YulFunctionCall","src":"16665:60:103"},"nodeType":"YulExpressionStatement","src":"16665:60:103"},{"nodeType":"YulAssignment","src":"16734:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16757:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16742:3:103"},"nodeType":"YulFunctionCall","src":"16742:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16734:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16563:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16577:4:103","type":""}],"src":"16412:354:103"},{"body":{"nodeType":"YulBlock","src":"16945:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16962:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16973:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16955:6:103"},"nodeType":"YulFunctionCall","src":"16955:21:103"},"nodeType":"YulExpressionStatement","src":"16955:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16996:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17007:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16992:3:103"},"nodeType":"YulFunctionCall","src":"16992:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17012:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16985:6:103"},"nodeType":"YulFunctionCall","src":"16985:30:103"},"nodeType":"YulExpressionStatement","src":"16985:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17035:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17046:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17031:3:103"},"nodeType":"YulFunctionCall","src":"17031:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17051:29:103","type":"","value":"ERROR:RPL-001:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17024:6:103"},"nodeType":"YulFunctionCall","src":"17024:57:103"},"nodeType":"YulExpressionStatement","src":"17024:57:103"},{"nodeType":"YulAssignment","src":"17090:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17102:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17113:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17098:3:103"},"nodeType":"YulFunctionCall","src":"17098:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17090:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16922:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16936:4:103","type":""}],"src":"16771:351:103"},{"body":{"nodeType":"YulBlock","src":"17301:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17318:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17329:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17311:6:103"},"nodeType":"YulFunctionCall","src":"17311:21:103"},"nodeType":"YulExpressionStatement","src":"17311:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17363:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17348:3:103"},"nodeType":"YulFunctionCall","src":"17348:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17368:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17341:6:103"},"nodeType":"YulFunctionCall","src":"17341:30:103"},"nodeType":"YulExpressionStatement","src":"17341:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17391:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17402:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17387:3:103"},"nodeType":"YulFunctionCall","src":"17387:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17407:34:103","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17380:6:103"},"nodeType":"YulFunctionCall","src":"17380:62:103"},"nodeType":"YulExpressionStatement","src":"17380:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17473:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17458:3:103"},"nodeType":"YulFunctionCall","src":"17458:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17478:17:103","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17451:6:103"},"nodeType":"YulFunctionCall","src":"17451:45:103"},"nodeType":"YulExpressionStatement","src":"17451:45:103"},{"nodeType":"YulAssignment","src":"17505:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17528:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17513:3:103"},"nodeType":"YulFunctionCall","src":"17513:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17505:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17278:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17292:4:103","type":""}],"src":"17127:411:103"},{"body":{"nodeType":"YulBlock","src":"17692:931:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17720:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17702:6:103"},"nodeType":"YulFunctionCall","src":"17702:21:103"},"nodeType":"YulExpressionStatement","src":"17702:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17743:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17754:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17739:3:103"},"nodeType":"YulFunctionCall","src":"17739:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17765:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17759:5:103"},"nodeType":"YulFunctionCall","src":"17759:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17732:6:103"},"nodeType":"YulFunctionCall","src":"17732:41:103"},"nodeType":"YulExpressionStatement","src":"17732:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17793:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17804:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17789:3:103"},"nodeType":"YulFunctionCall","src":"17789:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17819:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"17827:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17815:3:103"},"nodeType":"YulFunctionCall","src":"17815:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17809:5:103"},"nodeType":"YulFunctionCall","src":"17809:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17782:6:103"},"nodeType":"YulFunctionCall","src":"17782:50:103"},"nodeType":"YulExpressionStatement","src":"17782:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17852:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17863:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17848:3:103"},"nodeType":"YulFunctionCall","src":"17848:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17878:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"17886:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17874:3:103"},"nodeType":"YulFunctionCall","src":"17874:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17868:5:103"},"nodeType":"YulFunctionCall","src":"17868:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17841:6:103"},"nodeType":"YulFunctionCall","src":"17841:50:103"},"nodeType":"YulExpressionStatement","src":"17841:50:103"},{"nodeType":"YulVariableDeclaration","src":"17900:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17930:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"17938:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17926:3:103"},"nodeType":"YulFunctionCall","src":"17926:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"17920:5:103"},"nodeType":"YulFunctionCall","src":"17920:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"17904:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"17979:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17997:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18008:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17993:3:103"},"nodeType":"YulFunctionCall","src":"17993:19:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"17951:27:103"},"nodeType":"YulFunctionCall","src":"17951:62:103"},"nodeType":"YulExpressionStatement","src":"17951:62:103"},{"nodeType":"YulVariableDeclaration","src":"18022:45:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18054:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18062:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18050:3:103"},"nodeType":"YulFunctionCall","src":"18050:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18044:5:103"},"nodeType":"YulFunctionCall","src":"18044:23:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"18026:14:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18076:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"18086:6:103","type":"","value":"0x0140"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"18080:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18123:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18108:3:103"},"nodeType":"YulFunctionCall","src":"18108:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"18129:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18101:6:103"},"nodeType":"YulFunctionCall","src":"18101:31:103"},"nodeType":"YulExpressionStatement","src":"18101:31:103"},{"nodeType":"YulVariableDeclaration","src":"18141:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"18172:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18203:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18188:3:103"},"nodeType":"YulFunctionCall","src":"18188:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"18155:16:103"},"nodeType":"YulFunctionCall","src":"18155:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"18145:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18228:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18239:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18224:3:103"},"nodeType":"YulFunctionCall","src":"18224:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18255:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18263:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18251:3:103"},"nodeType":"YulFunctionCall","src":"18251:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18245:5:103"},"nodeType":"YulFunctionCall","src":"18245:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18217:6:103"},"nodeType":"YulFunctionCall","src":"18217:52:103"},"nodeType":"YulExpressionStatement","src":"18217:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18289:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18300:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18285:3:103"},"nodeType":"YulFunctionCall","src":"18285:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18316:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18324:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18312:3:103"},"nodeType":"YulFunctionCall","src":"18312:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18306:5:103"},"nodeType":"YulFunctionCall","src":"18306:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18278:6:103"},"nodeType":"YulFunctionCall","src":"18278:52:103"},"nodeType":"YulExpressionStatement","src":"18278:52:103"},{"nodeType":"YulVariableDeclaration","src":"18339:33:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18359:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18367:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18355:3:103"},"nodeType":"YulFunctionCall","src":"18355:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18349:5:103"},"nodeType":"YulFunctionCall","src":"18349:23:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"18343:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18381:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"18391:3:103","type":"","value":"256"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"18385:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18414:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"18425:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18410:3:103"},"nodeType":"YulFunctionCall","src":"18410:18:103"},{"name":"_2","nodeType":"YulIdentifier","src":"18430:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18403:6:103"},"nodeType":"YulFunctionCall","src":"18403:30:103"},"nodeType":"YulExpressionStatement","src":"18403:30:103"},{"nodeType":"YulVariableDeclaration","src":"18442:32:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18462:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"18470:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18458:3:103"},"nodeType":"YulFunctionCall","src":"18458:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18452:5:103"},"nodeType":"YulFunctionCall","src":"18452:22:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"18446:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"18483:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"18493:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"18487:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18516:9:103"},{"name":"_5","nodeType":"YulIdentifier","src":"18527:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18512:3:103"},"nodeType":"YulFunctionCall","src":"18512:18:103"},{"name":"_4","nodeType":"YulIdentifier","src":"18532:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18505:6:103"},"nodeType":"YulFunctionCall","src":"18505:30:103"},"nodeType":"YulExpressionStatement","src":"18505:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18555:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"18566:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18551:3:103"},"nodeType":"YulFunctionCall","src":"18551:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"18581:6:103"},{"name":"_5","nodeType":"YulIdentifier","src":"18589:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18577:3:103"},"nodeType":"YulFunctionCall","src":"18577:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18571:5:103"},"nodeType":"YulFunctionCall","src":"18571:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18544:6:103"},"nodeType":"YulFunctionCall","src":"18544:50:103"},"nodeType":"YulExpressionStatement","src":"18544:50:103"},{"nodeType":"YulAssignment","src":"18603:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"18611:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18603:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17661:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17672:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17683:4:103","type":""}],"src":"17543:1080:103"},{"body":{"nodeType":"YulBlock","src":"18729:76:103","statements":[{"nodeType":"YulAssignment","src":"18739:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18751:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18762:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18747:3:103"},"nodeType":"YulFunctionCall","src":"18747:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18739:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18781:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18792:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18774:6:103"},"nodeType":"YulFunctionCall","src":"18774:25:103"},"nodeType":"YulExpressionStatement","src":"18774:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18698:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18709:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18720:4:103","type":""}],"src":"18628:177:103"},{"body":{"nodeType":"YulBlock","src":"18933:135:103","statements":[{"nodeType":"YulAssignment","src":"18943:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18955:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18966:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18951:3:103"},"nodeType":"YulFunctionCall","src":"18951:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18943:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18985:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18996:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18978:6:103"},"nodeType":"YulFunctionCall","src":"18978:25:103"},"nodeType":"YulExpressionStatement","src":"18978:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19023:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19034:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19019:3:103"},"nodeType":"YulFunctionCall","src":"19019:18:103"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"19053:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19046:6:103"},"nodeType":"YulFunctionCall","src":"19046:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19039:6:103"},"nodeType":"YulFunctionCall","src":"19039:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19012:6:103"},"nodeType":"YulFunctionCall","src":"19012:50:103"},"nodeType":"YulExpressionStatement","src":"19012:50:103"}]},"name":"abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18894:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18905:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18913:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18924:4:103","type":""}],"src":"18810:258:103"},{"body":{"nodeType":"YulBlock","src":"19202:119:103","statements":[{"nodeType":"YulAssignment","src":"19212:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19224:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19235:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19220:3:103"},"nodeType":"YulFunctionCall","src":"19220:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19212:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19254:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19265:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19247:6:103"},"nodeType":"YulFunctionCall","src":"19247:25:103"},"nodeType":"YulExpressionStatement","src":"19247:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19303:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19288:3:103"},"nodeType":"YulFunctionCall","src":"19288:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19308:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19281:6:103"},"nodeType":"YulFunctionCall","src":"19281:34:103"},"nodeType":"YulExpressionStatement","src":"19281:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19163:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19174:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19182:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19193:4:103","type":""}],"src":"19073:248:103"},{"body":{"nodeType":"YulBlock","src":"19483:162:103","statements":[{"nodeType":"YulAssignment","src":"19493:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19505:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19516:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19501:3:103"},"nodeType":"YulFunctionCall","src":"19501:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19493:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19535:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19546:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19528:6:103"},"nodeType":"YulFunctionCall","src":"19528:25:103"},"nodeType":"YulExpressionStatement","src":"19528:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19584:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19569:3:103"},"nodeType":"YulFunctionCall","src":"19569:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19589:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19562:6:103"},"nodeType":"YulFunctionCall","src":"19562:34:103"},"nodeType":"YulExpressionStatement","src":"19562:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19616:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19627:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19612:3:103"},"nodeType":"YulFunctionCall","src":"19612:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"19632:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19605:6:103"},"nodeType":"YulFunctionCall","src":"19605:34:103"},"nodeType":"YulExpressionStatement","src":"19605:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19436:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"19447:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19455:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19463:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19474:4:103","type":""}],"src":"19326:319:103"},{"body":{"nodeType":"YulBlock","src":"19779:119:103","statements":[{"nodeType":"YulAssignment","src":"19789:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19801:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19812:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19797:3:103"},"nodeType":"YulFunctionCall","src":"19797:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19789:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19831:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"19842:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19824:6:103"},"nodeType":"YulFunctionCall","src":"19824:25:103"},"nodeType":"YulExpressionStatement","src":"19824:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19869:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19880:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19865:3:103"},"nodeType":"YulFunctionCall","src":"19865:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"19885:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19858:6:103"},"nodeType":"YulFunctionCall","src":"19858:34:103"},"nodeType":"YulExpressionStatement","src":"19858:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19740:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"19751:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19759:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19770:4:103","type":""}],"src":"19650:248:103"},{"body":{"nodeType":"YulBlock","src":"20088:206:103","statements":[{"nodeType":"YulAssignment","src":"20098:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20121:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20106:3:103"},"nodeType":"YulFunctionCall","src":"20106:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20098:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20141:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"20152:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20134:6:103"},"nodeType":"YulFunctionCall","src":"20134:25:103"},"nodeType":"YulExpressionStatement","src":"20134:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20179:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20190:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20175:3:103"},"nodeType":"YulFunctionCall","src":"20175:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"20195:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20168:6:103"},"nodeType":"YulFunctionCall","src":"20168:34:103"},"nodeType":"YulExpressionStatement","src":"20168:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20233:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20218:3:103"},"nodeType":"YulFunctionCall","src":"20218:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"20238:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20211:6:103"},"nodeType":"YulFunctionCall","src":"20211:34:103"},"nodeType":"YulExpressionStatement","src":"20211:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20265:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20276:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20261:3:103"},"nodeType":"YulFunctionCall","src":"20261:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"20281:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20254:6:103"},"nodeType":"YulFunctionCall","src":"20254:34:103"},"nodeType":"YulExpressionStatement","src":"20254:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20033:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"20044:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"20052:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20060:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20068:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20079:4:103","type":""}],"src":"19903:391:103"},{"body":{"nodeType":"YulBlock","src":"20427:136:103","statements":[{"nodeType":"YulAssignment","src":"20437:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20449:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20460:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20445:3:103"},"nodeType":"YulFunctionCall","src":"20445:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20437:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20479:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"20490:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20472:6:103"},"nodeType":"YulFunctionCall","src":"20472:25:103"},"nodeType":"YulExpressionStatement","src":"20472:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20528:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20513:3:103"},"nodeType":"YulFunctionCall","src":"20513:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"20537:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20545:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20533:3:103"},"nodeType":"YulFunctionCall","src":"20533:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20506:6:103"},"nodeType":"YulFunctionCall","src":"20506:51:103"},"nodeType":"YulExpressionStatement","src":"20506:51:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint32__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20388:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"20399:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20407:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20418:4:103","type":""}],"src":"20299:264:103"},{"body":{"nodeType":"YulBlock","src":"20613:230:103","statements":[{"nodeType":"YulAssignment","src":"20623:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20639:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20633:5:103"},"nodeType":"YulFunctionCall","src":"20633:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"20623:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"20651:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"20673:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"20689:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"20695:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20685:3:103"},"nodeType":"YulFunctionCall","src":"20685:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20704:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"20700:3:103"},"nodeType":"YulFunctionCall","src":"20700:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20681:3:103"},"nodeType":"YulFunctionCall","src":"20681:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20669:3:103"},"nodeType":"YulFunctionCall","src":"20669:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"20655:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"20784:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"20786:16:103"},"nodeType":"YulFunctionCall","src":"20786:18:103"},"nodeType":"YulExpressionStatement","src":"20786:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"20727:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"20739:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20724:2:103"},"nodeType":"YulFunctionCall","src":"20724:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"20763:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"20775:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20760:2:103"},"nodeType":"YulFunctionCall","src":"20760:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"20721:2:103"},"nodeType":"YulFunctionCall","src":"20721:62:103"},"nodeType":"YulIf","src":"20718:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20822:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"20826:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20815:6:103"},"nodeType":"YulFunctionCall","src":"20815:22:103"},"nodeType":"YulExpressionStatement","src":"20815:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"20593:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"20602:6:103","type":""}],"src":"20568:275:103"},{"body":{"nodeType":"YulBlock","src":"20905:129:103","statements":[{"body":{"nodeType":"YulBlock","src":"20949:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"20951:16:103"},"nodeType":"YulFunctionCall","src":"20951:18:103"},"nodeType":"YulExpressionStatement","src":"20951:18:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"20921:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20929:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"20918:2:103"},"nodeType":"YulFunctionCall","src":"20918:30:103"},"nodeType":"YulIf","src":"20915:2:103"},{"nodeType":"YulAssignment","src":"20980:48:103","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"21000:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21008:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20996:3:103"},"nodeType":"YulFunctionCall","src":"20996:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21017:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21013:3:103"},"nodeType":"YulFunctionCall","src":"21013:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20992:3:103"},"nodeType":"YulFunctionCall","src":"20992:29:103"},{"kind":"number","nodeType":"YulLiteral","src":"21023:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20988:3:103"},"nodeType":"YulFunctionCall","src":"20988:40:103"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"20980:4:103"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"20885:6:103","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"20896:4:103","type":""}],"src":"20848:186:103"},{"body":{"nodeType":"YulBlock","src":"21087:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"21114:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21116:16:103"},"nodeType":"YulFunctionCall","src":"21116:18:103"},"nodeType":"YulExpressionStatement","src":"21116:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21103:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21110:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21106:3:103"},"nodeType":"YulFunctionCall","src":"21106:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21100:2:103"},"nodeType":"YulFunctionCall","src":"21100:13:103"},"nodeType":"YulIf","src":"21097:2:103"},{"nodeType":"YulAssignment","src":"21145:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21156:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"21159:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21152:3:103"},"nodeType":"YulFunctionCall","src":"21152:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"21145:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21070:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"21073:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"21079:3:103","type":""}],"src":"21039:128:103"},{"body":{"nodeType":"YulBlock","src":"21224:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"21283:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21285:16:103"},"nodeType":"YulFunctionCall","src":"21285:18:103"},"nodeType":"YulExpressionStatement","src":"21285:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21255:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21248:6:103"},"nodeType":"YulFunctionCall","src":"21248:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21241:6:103"},"nodeType":"YulFunctionCall","src":"21241:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"21263:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21274:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21270:3:103"},"nodeType":"YulFunctionCall","src":"21270:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"21278:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"21266:3:103"},"nodeType":"YulFunctionCall","src":"21266:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21260:2:103"},"nodeType":"YulFunctionCall","src":"21260:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"21237:3:103"},"nodeType":"YulFunctionCall","src":"21237:45:103"},"nodeType":"YulIf","src":"21234:2:103"},{"nodeType":"YulAssignment","src":"21314:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21329:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"21332:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"21325:3:103"},"nodeType":"YulFunctionCall","src":"21325:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"21314:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21203:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"21206:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"21212:7:103","type":""}],"src":"21172:168:103"},{"body":{"nodeType":"YulBlock","src":"21394:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"21416:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21418:16:103"},"nodeType":"YulFunctionCall","src":"21418:18:103"},"nodeType":"YulExpressionStatement","src":"21418:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21410:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"21413:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21407:2:103"},"nodeType":"YulFunctionCall","src":"21407:8:103"},"nodeType":"YulIf","src":"21404:2:103"},{"nodeType":"YulAssignment","src":"21447:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"21459:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"21462:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"21455:3:103"},"nodeType":"YulFunctionCall","src":"21455:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"21447:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"21376:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"21379:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"21385:4:103","type":""}],"src":"21345:125:103"},{"body":{"nodeType":"YulBlock","src":"21528:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"21538:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"21547:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"21542:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"21607:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"21632:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"21637:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21628:3:103"},"nodeType":"YulFunctionCall","src":"21628:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"21651:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"21656:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21647:3:103"},"nodeType":"YulFunctionCall","src":"21647:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21641:5:103"},"nodeType":"YulFunctionCall","src":"21641:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21621:6:103"},"nodeType":"YulFunctionCall","src":"21621:39:103"},"nodeType":"YulExpressionStatement","src":"21621:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21568:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"21571:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"21565:2:103"},"nodeType":"YulFunctionCall","src":"21565:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"21579:19:103","statements":[{"nodeType":"YulAssignment","src":"21581:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21590:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"21593:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21586:3:103"},"nodeType":"YulFunctionCall","src":"21586:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"21581:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"21561:3:103","statements":[]},"src":"21557:113:103"},{"body":{"nodeType":"YulBlock","src":"21696:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"21709:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"21714:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21705:3:103"},"nodeType":"YulFunctionCall","src":"21705:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"21723:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21698:6:103"},"nodeType":"YulFunctionCall","src":"21698:27:103"},"nodeType":"YulExpressionStatement","src":"21698:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"21685:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"21688:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"21682:2:103"},"nodeType":"YulFunctionCall","src":"21682:13:103"},"nodeType":"YulIf","src":"21679:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"21506:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"21511:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"21516:6:103","type":""}],"src":"21475:258:103"},{"body":{"nodeType":"YulBlock","src":"21785:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"21812:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21814:16:103"},"nodeType":"YulFunctionCall","src":"21814:18:103"},"nodeType":"YulExpressionStatement","src":"21814:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21805:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"21798:6:103"},"nodeType":"YulFunctionCall","src":"21798:13:103"},"nodeType":"YulIf","src":"21795:2:103"},{"nodeType":"YulAssignment","src":"21843:25:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21854:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21865:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21861:3:103"},"nodeType":"YulFunctionCall","src":"21861:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21850:3:103"},"nodeType":"YulFunctionCall","src":"21850:18:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21843:3:103"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21767:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21777:3:103","type":""}],"src":"21738:136:103"},{"body":{"nodeType":"YulBlock","src":"21926:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"21957:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"21959:16:103"},"nodeType":"YulFunctionCall","src":"21959:18:103"},"nodeType":"YulExpressionStatement","src":"21959:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21942:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"21953:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"21949:3:103"},"nodeType":"YulFunctionCall","src":"21949:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"21939:2:103"},"nodeType":"YulFunctionCall","src":"21939:17:103"},"nodeType":"YulIf","src":"21936:2:103"},{"nodeType":"YulAssignment","src":"21988:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"21999:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"22006:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21995:3:103"},"nodeType":"YulFunctionCall","src":"21995:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"21988:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"21908:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"21918:3:103","type":""}],"src":"21879:135:103"},{"body":{"nodeType":"YulBlock","src":"22065:155:103","statements":[{"nodeType":"YulVariableDeclaration","src":"22075:20:103","value":{"kind":"number","nodeType":"YulLiteral","src":"22085:10:103","type":"","value":"0xffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22079:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"22104:29:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22123:5:103"},{"name":"_1","nodeType":"YulIdentifier","src":"22130:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22119:3:103"},"nodeType":"YulFunctionCall","src":"22119:14:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"22108:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"22161:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"22163:16:103"},"nodeType":"YulFunctionCall","src":"22163:18:103"},"nodeType":"YulExpressionStatement","src":"22163:18:103"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"22148:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"22157:2:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22145:2:103"},"nodeType":"YulFunctionCall","src":"22145:15:103"},"nodeType":"YulIf","src":"22142:2:103"},{"nodeType":"YulAssignment","src":"22192:22:103","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"22203:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"22212:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22199:3:103"},"nodeType":"YulFunctionCall","src":"22199:15:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"22192:3:103"}]}]},"name":"increment_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22047:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"22057:3:103","type":""}],"src":"22019:201:103"},{"body":{"nodeType":"YulBlock","src":"22263:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"22294:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"22315:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22322:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22327:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22318:3:103"},"nodeType":"YulFunctionCall","src":"22318:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22308:6:103"},"nodeType":"YulFunctionCall","src":"22308:31:103"},"nodeType":"YulExpressionStatement","src":"22308:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22359:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22362:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22352:6:103"},"nodeType":"YulFunctionCall","src":"22352:15:103"},"nodeType":"YulExpressionStatement","src":"22352:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"22387:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"22390:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22380:6:103"},"nodeType":"YulFunctionCall","src":"22380:15:103"},"nodeType":"YulExpressionStatement","src":"22380:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"22283:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22276:6:103"},"nodeType":"YulFunctionCall","src":"22276:9:103"},"nodeType":"YulIf","src":"22273:2:103"},{"nodeType":"YulAssignment","src":"22414:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"22423:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"22426:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"22419:3:103"},"nodeType":"YulFunctionCall","src":"22419:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"22414:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"22248:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"22251:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"22257:1:103","type":""}],"src":"22225:209:103"},{"body":{"nodeType":"YulBlock","src":"22471:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22488:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22495:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22500:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22491:3:103"},"nodeType":"YulFunctionCall","src":"22491:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22481:6:103"},"nodeType":"YulFunctionCall","src":"22481:31:103"},"nodeType":"YulExpressionStatement","src":"22481:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22528:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22531:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22521:6:103"},"nodeType":"YulFunctionCall","src":"22521:15:103"},"nodeType":"YulExpressionStatement","src":"22521:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22552:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22555:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22545:6:103"},"nodeType":"YulFunctionCall","src":"22545:15:103"},"nodeType":"YulExpressionStatement","src":"22545:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"22439:127:103"},{"body":{"nodeType":"YulBlock","src":"22603:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22620:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22627:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22632:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22623:3:103"},"nodeType":"YulFunctionCall","src":"22623:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22613:6:103"},"nodeType":"YulFunctionCall","src":"22613:31:103"},"nodeType":"YulExpressionStatement","src":"22613:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22660:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22663:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22653:6:103"},"nodeType":"YulFunctionCall","src":"22653:15:103"},"nodeType":"YulExpressionStatement","src":"22653:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22684:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22687:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22677:6:103"},"nodeType":"YulFunctionCall","src":"22677:15:103"},"nodeType":"YulExpressionStatement","src":"22677:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"22571:127:103"},{"body":{"nodeType":"YulBlock","src":"22735:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22752:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22759:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"22764:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22755:3:103"},"nodeType":"YulFunctionCall","src":"22755:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22745:6:103"},"nodeType":"YulFunctionCall","src":"22745:31:103"},"nodeType":"YulExpressionStatement","src":"22745:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22792:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"22795:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22785:6:103"},"nodeType":"YulFunctionCall","src":"22785:15:103"},"nodeType":"YulExpressionStatement","src":"22785:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22816:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22819:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22809:6:103"},"nodeType":"YulFunctionCall","src":"22809:15:103"},"nodeType":"YulExpressionStatement","src":"22809:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"22703:127:103"},{"body":{"nodeType":"YulBlock","src":"22880:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"22944:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22953:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"22956:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"22946:6:103"},"nodeType":"YulFunctionCall","src":"22946:12:103"},"nodeType":"YulExpressionStatement","src":"22946:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22903:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"22914:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22929:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22934:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22925:3:103"},"nodeType":"YulFunctionCall","src":"22925:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"22938:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22921:3:103"},"nodeType":"YulFunctionCall","src":"22921:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22910:3:103"},"nodeType":"YulFunctionCall","src":"22910:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"22900:2:103"},"nodeType":"YulFunctionCall","src":"22900:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22893:6:103"},"nodeType":"YulFunctionCall","src":"22893:50:103"},"nodeType":"YulIf","src":"22890:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"22869:5:103","type":""}],"src":"22835:131:103"},{"body":{"nodeType":"YulBlock","src":"23030:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"23064:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23073:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23076:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23066:6:103"},"nodeType":"YulFunctionCall","src":"23066:12:103"},"nodeType":"YulExpressionStatement","src":"23066:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"23053:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"23060:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"23050:2:103"},"nodeType":"YulFunctionCall","src":"23050:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23043:6:103"},"nodeType":"YulFunctionCall","src":"23043:20:103"},"nodeType":"YulIf","src":"23040:2:103"}]},"name":"validator_revert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"23019:5:103","type":""}],"src":"22971:115:103"}]},"contents":"{\n { }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), array)\n array := array_1\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_ApplicationState(offset) -> value\n {\n value := calldataload(offset)\n validator_revert_enum_ApplicationState(value)\n }\n function abi_decode_enum_ApplicationState_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_enum_ApplicationState(value)\n }\n function abi_decode_struct_Application(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0xc0) { revert(value, value) }\n value := allocate_memory(0xc0)\n let value_1 := calldataload(headStart)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), calldataload(add(headStart, 32)))\n mstore(add(value, 64), calldataload(add(headStart, 64)))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value, 96), abi_decode_bytes(add(headStart, offset), end))\n mstore(add(value, 128), calldataload(add(headStart, 128)))\n mstore(add(value, 160), calldataload(add(headStart, 160)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_ApplicationState_fromMemory(add(_2, 96)))\n let offset_1 := mload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), mload(add(_2, 160)))\n mstore(add(value, 192), mload(add(_2, 192)))\n mstore(add(value, 224), mload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), mload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), mload(add(_2, _5)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptrt_struct$_Application_$5262_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, calldataload(_2))\n mstore(add(value, 32), calldataload(add(_2, 32)))\n mstore(add(value, 64), calldataload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_ApplicationState(add(_2, 96)))\n let offset_1 := calldataload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), calldataload(add(_2, 160)))\n mstore(add(value, 192), calldataload(add(_2, 192)))\n mstore(add(value, 224), calldataload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), calldataload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), calldataload(add(_2, _5)))\n value0 := value\n let offset_2 := calldataload(add(headStart, 32))\n if gt(offset_2, _1) { revert(value1, value1) }\n value1 := abi_decode_struct_Application(add(headStart, offset_2), dataEnd)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_BundleState(value, pos)\n {\n if iszero(lt(value, 4)) { panic_error_0x21() }\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, \"AccessControl: account \")\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n let _1 := add(pos, length)\n mstore(add(_1, 23), \" is missing role \")\n let length_1 := mload(value1)\n copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n end := add(add(_1, length_1), 40)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_address_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 96)\n tail := abi_encode_bytes(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bool__to_t_bytes32_t_uint256_t_bool__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), iszero(iszero(value2)))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:RPL-006:BUNDLE_INDEX_TOO_L\")\n mstore(add(headStart, 96), \"ARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:BRP-001:NO_ACTIVE_BUNDLES\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:RPL-007:ACTIVE_BUNDLE_INDE\")\n mstore(add(headStart, 96), \"X_TOO_LARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:BRP-002:NO_FREE_CAPITAL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"ERROR:RPL-010:RISKPOOL_HAS_UNBUR\")\n mstore(add(headStart, 96), \"NT_BUNDLES\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:BUC-001:NOT_BUNDLE_OWNER\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:RPL-001:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n abi_encode_enum_BundleState(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 128))\n let _1 := 0x0140\n mstore(add(headStart, 160), _1)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 352))\n mstore(add(headStart, 192), mload(add(value0, 160)))\n mstore(add(headStart, 224), mload(add(value0, 192)))\n let _2 := mload(add(value0, 224))\n let _3 := 256\n mstore(add(headStart, _3), _2)\n let _4 := mload(add(value0, _3))\n let _5 := 288\n mstore(add(headStart, _5), _4)\n mstore(add(headStart, _1), mload(add(value0, _5)))\n tail := tail_1\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), iszero(iszero(value1)))\n }\n function abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint256_t_uint32__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffff))\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function decrement_t_uint256(value) -> ret\n {\n if iszero(value) { panic_error_0x11() }\n ret := add(value, not(0))\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function increment_t_uint32(value) -> ret\n {\n let _1 := 0xffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := mod(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106103af5760003560e01c80637893c7bc116101f4578063a217fddf1161011a578063d0e0ba95116100ad578063e0815f0d1161007c578063e0815f0d14610735578063f1d354d01461073d578063f2fde38b1461074b578063feb1824b1461075e576103af565b8063d0e0ba9514610707578063d547741f1461071a578063d73cd99214610462578063e00323831461072d576103af565b8063be169e7e116100e9578063be169e7e146106d3578063be61e91e146106db578063c3004c86146106ec578063c40000d4146106ff576103af565b8063a217fddf146106c3578063b26025aa146106cb578063b3fca9bd14610462578063bd1fe5d014610462576103af565b80638c483e5a116101925780639a82f890116101615780639a82f890146106a0578063a17030d5146106a8578063a18aa128146106bb578063a18f5ae214610462576103af565b80638c483e5a146106565780638da5cb5b146106695780639088c1191461067a57806391d148541461068d576103af565b806386c71288116101ce57806386c712881461061257806389002da514610628578063890fbf781461063b578063893d20e81461064e576103af565b80637893c7bc146105e15780637f3b6980146105f757806382558906146105ff576103af565b80633629c3c4116102d957806359dacc6a11610277578063652028e511610246578063652028e51461058c578063715018a61461059f57806376082a5e146105a75780637888a2ff146105ce576103af565b806359dacc6a146104625780635ab1bd53146105655780635d1ca6311461057c578063638ce0ba14610584576103af565b80634101b90c116102b35780634101b90c1461053357806345fe1c6d1461053b57806354afef631461054a578063587e59d014610552576103af565b80633629c3c4146104f057806336568abe146105035780633dcdde1714610516576103af565b80631865c57d116103515780632d0821b7116103205780632d0821b7146104975780632f2ff15d146104b7578063316c5348146104ca57806336153f3a146104dd576103af565b80631865c57d1461044d5780631b867c6314610462578063248a9ca31461046c578063258d560c1461048f576103af565b8063132996041161038d578063132996041461040557806315dae03e1461042a57806317d7de7c1461043d57806318442e6314610445576103af565b806301ffc9a7146103b45780630676cb0e146103dc57806312065fe0146103fd575b600080fd5b6103c76103c2366004612a20565b61076f565b60405190151581526020015b60405180910390f35b6103ef6103ea3660046129b8565b6107a8565b6040519081526020016103d3565b6103ef610922565b600b546001600160a01b03165b6040516001600160a01b0390911681526020016103d3565b60035460ff166040516103d39190612e3e565b6001546103ef565b600a546103ef565b6104556109b2565b6040516103d39190612e24565b61046a610a38565b005b6103ef61047a3660046129b8565b60009081526012602052604090206001015490565b6103c7610a7f565b6104aa6104a53660046129b8565b610aaf565b6040516103d39190612f0a565b61046a6104c53660046129d0565b610bc4565b61046a6104d83660046129b8565b610bee565b6103ef6104eb3660046129ff565b610d8f565b61046a6104fe3660046129ff565b610f5b565b61046a6105113660046129d0565b610fe3565b6040805160208101909152600081525b6040516103d39190612e52565b6103ef611061565b6103ef670de0b6b3a764000081565b600d546103ef565b61046a6105603660046129b8565b61109f565b61041260035461010090046001600160a01b031690565b6002546103ef565b61046a61120c565b61046a61059a3660046129b8565b611259565b61046a6112d6565b6103ef7f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93581565b6103ef6105dc366004612a48565b6112e8565b6105266040518060200160405280600081525081565b6103ef611326565b61046a61060d3660046129ff565b611364565b6103c7610620366004612c29565b506001919050565b6103ef6106363660046129ff565b6113e4565b6103c76106493660046129ff565b611558565b6104126115ef565b61046a6106643660046129b8565b611601565b6000546001600160a01b0316610412565b61046a610688366004612980565b61176e565b6103c761069b3660046129d0565b6117a3565b6103c76117ce565b61046a6106b63660046129b8565b6117d6565b600e546103ef565b6103ef600081565b6103ef611943565b61046a611981565b6103ef69d3c21bcecceda100000081565b61046a6106fa3660046129b8565b6119ce565b6103ef611a52565b61046a6107153660046129b8565b611a90565b61046a6107283660046129d0565b611ada565b6103ef611aff565b6103c7611b3c565b670de0b6b3a76400006103ef565b61046a610759366004612980565b611b45565b600c546001600160a01b0316610412565b60006001600160e01b03198216637965db0b60e01b14806107a057506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b6000806107b460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190612d23565b83106108985760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190612d23565b9392505050565b60008061092e60025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190612d23565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156109fb57600080fd5b505afa158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190612a8b565b905090565b610a4d6810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614610a7d5760405162461bcd60e51b815260040161088f90612e65565b565b600060025b60035460ff166002811115610aa957634e487b7160e01b600052602160045260246000fd5b14905090565b610ab76127de565b600a548210610b145760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b606482015260840161088f565b6000600a8381548110610b3757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b158015610b8857600080fd5b505afa158015610b9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091b9190810190612b55565b600082815260126020526040902060010154610bdf81611c3d565b610be98383611c47565b505050565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3757600080fd5b505afa158015610c4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c739190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610cb09160040190815260200190565b60206040518083038186803b158015610cc857600080fd5b505afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d00919061299c565b9050336001600160a01b03821614610d2a5760405162461bcd60e51b815260040161088f90612e9c565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e149190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610e519160040190815260200190565b60206040518083038186803b158015610e6957600080fd5b505afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061299c565b9050336001600160a01b03821614610ecb5760405162461bcd60e51b815260040161088f90612e9c565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610f1957600080fd5b505af1158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f519190612d23565b9695505050505050565b610f6b63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614610f9b5760405162461bcd60e51b815260040161088f90612ed3565b610fa58282611ccd565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b6001600160a01b03811633146110535760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161088f565b61105d8282611d4f565b5050565b60008061106d60025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240161095c565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156110e857600080fd5b505afa1580156110fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111249190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916111619160040190815260200190565b60206040518083038186803b15801561117957600080fd5b505afa15801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b1919061299c565b9050336001600160a01b038216146111db5760405162461bcd60e51b815260040161088f90612e9c565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610d57565b6112216810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146112515760405162461bcd60e51b815260040161088f90612e65565b610a7d611db6565b611261611e37565b600061126c60025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050505050565b6112de611e37565b610a7d6000611e91565b60007f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93561131481611c3d565b61131e8484611ee1565b949350505050565b60008061133260025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db328449060240161095c565b61137463141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b0316146113a45760405162461bcd60e51b815260040161088f90612ed3565b6113ae8282611fe4565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610fd7565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b15801561142d57600080fd5b505afa158015611441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114699190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916114a69160040190815260200190565b60206040518083038186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f6919061299c565b9050336001600160a01b038216146115205760405162461bcd60e51b815260040161088f90612e9c565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610eff565b600061156a63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b03161461159a5760405162461bcd60e51b815260040161088f90612ed3565b6115a48383612033565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610a33565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561164a57600080fd5b505afa15801561165e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116869190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116c39160040190815260200190565b60206040518083038186803b1580156116db57600080fd5b505afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061299c565b9050336001600160a01b0382161461173d5760405162461bcd60e51b815260040161088f90612e9c565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610d57565b611776611e37565b6117a07f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93582612436565b50565b60009182526012602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080610a84565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261185b9190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916118989160040190815260200190565b60206040518083038186803b1580156118b057600080fd5b505afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e8919061299c565b9050336001600160a01b038216146119125760405162461bcd60e51b815260040161088f90612e9c565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610d57565b60008061194f60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d92359060240161095c565b6119966810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146119c65760405162461bcd60e51b815260040161088f90612e65565b610a7d612440565b6119de63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614611a0e5760405162461bcd60e51b815260040161088f90612ed3565b6000611a1982612528565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610fd7565b600080611a5e60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f9060240161095c565b611aa56810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614611ad55760405162461bcd60e51b815260040161088f90612e65565b600255565b600082815260126020526040902060010154611af581611c3d565b610be98383611d4f565b600080611b0b60025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b03169063295609809060240161095c565b60006001610a84565b611b4d611e37565b6001600160a01b038116611bb25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088f565b6117a081611e91565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c0557600080fd5b505afa158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a0919061299c565b6117a08133612598565b611c5182826117a3565b61105d5760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611c893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611d3257600080fd5b505af1158015611d46573d6000803e3d6000fd5b50505050505050565b611d5982826117a3565b1561105d5760008281526012602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e7490611f1a90849088908890600401612df0565b602060405180830381600087803b158015611f3457600080fd5b505af1158015611f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6c9190612d23565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611d18565b60008061203e611061565b9050600061204a611aff565b90506000612056611943565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a1600083116120eb5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c455300604482015260640161088f565b80821161213a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c000000604482015260640161088f565b6121448582612ffa565b821061242d57600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561218f57600080fd5b505afa1580156121a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121cb9190810190612aaa565b6011549091506000906121e590869063ffffffff166130ca565b905060005b85811080156121f7575086155b15612429576000612207836107a8565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561225157600080fd5b505afa158015612265573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261228d9190810190612b55565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a180156124135760008260c001518360a001516122ec9190613031565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b81106123f857600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b15801561239257600080fd5b505af11580156123a6573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff169250906123d4836130a6565b91906101000a81548163ffffffff021916908363ffffffff16021790555050612411565b89612404876001612ffa565b61240e91906130ca565b95505b505b50505080806124219061308b565b9150506121ea565b5050505b50505092915050565b61105d8282611c47565b600061244b60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561249057600080fd5b505afa1580156124a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c89190612d23565b156117a05760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b606482015260840161088f565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561258457600080fd5b505af11580156108f7573d6000803e3d6000fd5b6125a282826117a3565b61105d576125ba816001600160a01b031660146125fc565b6125c58360206125fc565b6040516020016125d6929190612d7b565b60408051601f198184030181529082905262461bcd60e51b825261088f91600401612e52565b6060600061260b836002613012565b612616906002612ffa565b67ffffffffffffffff81111561263c57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612666576020820181803683370190505b509050600360fc1b8160008151811061268f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126cc57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006126f0846002613012565b6126fb906001612ffa565b90505b600181111561278f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061273d57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061276157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361278881613074565b90506126fe565b50831561091b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161088f565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561282057634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612860578081fd5b813561287361286e82612fd2565b612fa1565b818152846020838601011115612887578283fd5b816020850160208301379081016020019190915292915050565b600082601f8301126128b1578081fd5b81516128bf61286e82612fd2565b8181528460208386010111156128d3578283fd5b61131e826020830160208701613048565b80356107a381613141565b80516107a381613141565b600060c0828403121561290b578081fd5b61291560c0612fa1565b9050813561292281613141565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561295457600080fd5b61296084828501612850565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612991578081fd5b813561091b8161312c565b6000602082840312156129ad578081fd5b815161091b8161312c565b6000602082840312156129c9578081fd5b5035919050565b600080604083850312156129e2578081fd5b8235915060208301356129f48161312c565b809150509250929050565b60008060408385031215612a11578182fd5b50508035926020909101359150565b600060208284031215612a31578081fd5b81356001600160e01b03198116811461091b578182fd5b60008060408385031215612a5a578182fd5b823567ffffffffffffffff811115612a70578283fd5b612a7c85828601612850565b95602094909401359450505050565b600060208284031215612a9c578081fd5b81516007811061091b578182fd5b600060208284031215612abb578081fd5b815167ffffffffffffffff80821115612ad2578283fd5b9083019060c08286031215612ae5578283fd5b612aef60c0612fa1565b8251612afa81613141565b808252506020830151602082015260408301516040820152606083015182811115612b23578485fd5b612b2f878286016128a1565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612b66578081fd5b815167ffffffffffffffff80821115612b7d578283fd5b8184019150610140808387031215612b93578384fd5b612b9c81612fa1565b9050825181526020830151602082015260408301516040820152612bc2606084016128ef565b6060820152608083015182811115612bd8578485fd5b612be4878286016128a1565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60008060408385031215612c3b578182fd5b823567ffffffffffffffff80821115612c52578384fd5b8185019150610140808388031215612c68578485fd5b612c7181612fa1565b9050823581526020830135602082015260408301356040820152612c97606084016128e4565b6060820152608083013582811115612cad578586fd5b612cb988828601612850565b60808301525060a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250809450506020850135915080821115612d0c578283fd5b50612d19858286016128fa565b9150509250929050565b600060208284031215612d34578081fd5b5051919050565b60008151808452612d53816020860160208601613048565b601f01601f19169290920160200192915050565b60048110612d7757612d77613100565b9052565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612db3816017850160208801613048565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612de4816028840160208801613048565b01602801949350505050565b6001600160a01b0384168152606060208201819052600090612e1490830185612d3b565b9050826040830152949350505050565b6020810160078310612e3857612e38613100565b91905290565b6020810160038310612e3857612e38613100565b60006020825261091b6020830184612d3b565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612f3d6080840182612d67565b5060808301516101408060a0850152612f5a610160850183612d3b565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612fca57612fca613116565b604052919050565b600067ffffffffffffffff821115612fec57612fec613116565b50601f01601f191660200190565b6000821982111561300d5761300d6130ea565b500190565b600081600019048311821515161561302c5761302c6130ea565b500290565b600082821015613043576130436130ea565b500390565b60005b8381101561306357818101518382015260200161304b565b83811115611e315750506000910152565b600081613083576130836130ea565b506000190190565b600060001982141561309f5761309f6130ea565b5060010190565b600063ffffffff808316818114156130c0576130c06130ea565b6001019392505050565b6000826130e557634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146117a057600080fd5b600481106117a057600080fdfea26469706673582212209e8ff8b71639b58bff88d3c17bb55e56c77f9b7258fc689f49deade934a4a8be64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3AF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7893C7BC GT PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x11A JUMPI DUP1 PUSH4 0xD0E0BA95 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x735 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x73D JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x74B JUMPI DUP1 PUSH4 0xFEB1824B EQ PUSH2 0x75E JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x707 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x71A JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xE0032383 EQ PUSH2 0x72D JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xBE169E7E GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x6D3 JUMPI DUP1 PUSH4 0xBE61E91E EQ PUSH2 0x6DB JUMPI DUP1 PUSH4 0xC3004C86 EQ PUSH2 0x6EC JUMPI DUP1 PUSH4 0xC40000D4 EQ PUSH2 0x6FF JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x6C3 JUMPI DUP1 PUSH4 0xB26025AA EQ PUSH2 0x6CB JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x462 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A GT PUSH2 0x192 JUMPI DUP1 PUSH4 0x9A82F890 GT PUSH2 0x161 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x6A0 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x6A8 JUMPI DUP1 PUSH4 0xA18AA128 EQ PUSH2 0x6BB JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x462 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x656 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x669 JUMPI DUP1 PUSH4 0x9088C119 EQ PUSH2 0x67A JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x68D JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x86C71288 GT PUSH2 0x1CE JUMPI DUP1 PUSH4 0x86C71288 EQ PUSH2 0x612 JUMPI DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x628 JUMPI DUP1 PUSH4 0x890FBF78 EQ PUSH2 0x63B JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x64E JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x7893C7BC EQ PUSH2 0x5E1 JUMPI DUP1 PUSH4 0x7F3B6980 EQ PUSH2 0x5F7 JUMPI DUP1 PUSH4 0x82558906 EQ PUSH2 0x5FF JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x3629C3C4 GT PUSH2 0x2D9 JUMPI DUP1 PUSH4 0x59DACC6A GT PUSH2 0x277 JUMPI DUP1 PUSH4 0x652028E5 GT PUSH2 0x246 JUMPI DUP1 PUSH4 0x652028E5 EQ PUSH2 0x58C JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0x76082A5E EQ PUSH2 0x5A7 JUMPI DUP1 PUSH4 0x7888A2FF EQ PUSH2 0x5CE JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x565 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x57C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x584 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x4101B90C GT PUSH2 0x2B3 JUMPI DUP1 PUSH4 0x4101B90C EQ PUSH2 0x533 JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x53B JUMPI DUP1 PUSH4 0x54AFEF63 EQ PUSH2 0x54A JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x552 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x3629C3C4 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x503 JUMPI DUP1 PUSH4 0x3DCDDE17 EQ PUSH2 0x516 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1865C57D GT PUSH2 0x351 JUMPI DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x320 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x497 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x4B7 JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x4CA JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x4DD JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1865C57D EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x462 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x46C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x48F JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x13299604 GT PUSH2 0x38D JUMPI DUP1 PUSH4 0x13299604 EQ PUSH2 0x405 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x42A JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x43D JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x445 JUMPI PUSH2 0x3AF JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x3B4 JUMPI DUP1 PUSH4 0x676CB0E EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x3FD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3C7 PUSH2 0x3C2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A20 JUMP JUMPDEST PUSH2 0x76F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3EF PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x922 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3D3 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E3E JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x455 PUSH2 0x9B2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E24 JUMP JUMPDEST PUSH2 0x46A PUSH2 0xA38 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3EF PUSH2 0x47A CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0xA7F JUMP JUMPDEST PUSH2 0x4AA PUSH2 0x4A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0xAAF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2F0A JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0xBC4 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0xBEE JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x4EB CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0xD8F JUMP JUMPDEST PUSH2 0x46A PUSH2 0x4FE CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0xF5B JUMP JUMPDEST PUSH2 0x46A PUSH2 0x511 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0xFE3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3D3 SWAP2 SWAP1 PUSH2 0x2E52 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1061 JUMP JUMPDEST PUSH2 0x3EF PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x560 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x109F JUMP JUMPDEST PUSH2 0x412 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x120C JUMP JUMPDEST PUSH2 0x46A PUSH2 0x59A CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1259 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x12D6 JUMP JUMPDEST PUSH2 0x3EF PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x5DC CALLDATASIZE PUSH1 0x4 PUSH2 0x2A48 JUMP JUMPDEST PUSH2 0x12E8 JUMP JUMPDEST PUSH2 0x526 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1326 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x60D CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x1364 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x620 CALLDATASIZE PUSH1 0x4 PUSH2 0x2C29 JUMP JUMPDEST POP PUSH1 0x1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x636 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x13E4 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x649 CALLDATASIZE PUSH1 0x4 PUSH2 0x29FF JUMP JUMPDEST PUSH2 0x1558 JUMP JUMPDEST PUSH2 0x412 PUSH2 0x15EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x664 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1601 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x412 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x688 CALLDATASIZE PUSH1 0x4 PUSH2 0x2980 JUMP JUMPDEST PUSH2 0x176E JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x69B CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x17CE JUMP JUMPDEST PUSH2 0x46A PUSH2 0x6B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x3EF PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1943 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x1981 JUMP JUMPDEST PUSH2 0x3EF PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x6FA CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x19CE JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1A52 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x715 CALLDATASIZE PUSH1 0x4 PUSH2 0x29B8 JUMP JUMPDEST PUSH2 0x1A90 JUMP JUMPDEST PUSH2 0x46A PUSH2 0x728 CALLDATASIZE PUSH1 0x4 PUSH2 0x29D0 JUMP JUMPDEST PUSH2 0x1ADA JUMP JUMPDEST PUSH2 0x3EF PUSH2 0x1AFF JUMP JUMPDEST PUSH2 0x3C7 PUSH2 0x1B3C JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x3EF JUMP JUMPDEST PUSH2 0x46A PUSH2 0x759 CALLDATASIZE PUSH1 0x4 PUSH2 0x2980 JUMP JUMPDEST PUSH2 0x1B45 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x412 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x7A0 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x7B4 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x80D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x831 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST DUP4 LT PUSH2 0x898 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030373A4143544956455F42554E444C455F494E4445 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x585F544F4F5F4C41524745 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x91B SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x92E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1E010439 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1E010439 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x974 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x988 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AC SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA33 SWAP2 SWAP1 PUSH2 0x2A8B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xA4D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xAA9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAB7 PUSH2 0x27DE JUMP JUMPDEST PUSH1 0xA SLOAD DUP3 LT PUSH2 0xB14 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030363A42554E444C455F494E4445585F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xB37 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB9C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x91B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xBDF DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0xBE9 DUP4 DUP4 PUSH2 0x1C47 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC37 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC73 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xCB0 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCDC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD00 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xD2A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62D8A69 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x316C5348 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD85 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xE14 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xE51 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE7D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEA1 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xECB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B0A9F9D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x36153F3A SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF51 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF6B PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0xFA5 DUP3 DUP3 PUSH2 0x1CCD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xD910A5091EEA39C3EFEED9891A9E2B4694BD064808F5B0A4DE415D70B313EC52 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0x1053 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x105D DUP3 DUP3 PUSH2 0x1D4F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x106D PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1124 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1161 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1179 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x118D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11B1 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x11DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x587E59D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x587E59D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH2 0x1221 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1251 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0xA7D PUSH2 0x1DB6 JUMP JUMPDEST PUSH2 0x1261 PUSH2 0x1E37 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126C PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x12DE PUSH2 0x1E37 JUMP JUMPDEST PUSH2 0xA7D PUSH1 0x0 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 PUSH2 0x1314 DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0x131E DUP5 DUP5 PUSH2 0x1EE1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1332 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1374 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0x13AE DUP3 DUP3 PUSH2 0x1FE4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xEE37957C2D37326FA4E3897FC3947BBDBD8E1082639A302C1C206B4D1C5E695 SWAP2 ADD PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x142D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1441 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1469 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x14A6 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14F6 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1520 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89002DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x89002DA5 SWAP1 PUSH1 0x44 ADD PUSH2 0xEFF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x156A PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x159A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH2 0x15A4 DUP4 DUP4 PUSH2 0x2033 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP3 ISZERO ISZERO DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9D0F25E972AD53428B0A94CD615FA731919562FA34769DF0F9C3EED71B0BD81E SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xA33 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x164A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x165E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1686 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x16C3 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1713 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x173D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x46241F2D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8C483E5A SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH2 0x1776 PUSH2 0x1E37 JUMP JUMPDEST PUSH2 0x17A0 PUSH32 0x5614E11CA6D7673C9C8DCEC913465D676494AAD1151BB2C1CF40B9D99BE4D935 DUP3 PUSH2 0x2436 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA84 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x181F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1833 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x185B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1898 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18E8 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1912 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA17030D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA17030D5 SWAP1 PUSH1 0x24 ADD PUSH2 0xD57 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x194F PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F5D9235 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3F5D9235 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1996 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH2 0xA7D PUSH2 0x2440 JUMP JUMPDEST PUSH2 0x19DE PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A0E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2ED3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A19 DUP3 PUSH2 0x2528 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x22BF66455B4BF54C9548E2BB650543CFA753A53CAB13AF4020DDBFA76C231B0F SWAP2 ADD PUSH2 0xFD7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1A5E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBCD5349F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBCD5349F SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH2 0x1AA5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BBB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1AD5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x88F SWAP1 PUSH2 0x2E65 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x1AF5 DUP2 PUSH2 0x1C3D JUMP JUMPDEST PUSH2 0xBE9 DUP4 DUP4 PUSH2 0x1D4F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1B0B PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH3 0x52AC13 PUSH1 0xE7 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x29560980 SWAP1 PUSH1 0x24 ADD PUSH2 0x95C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0xA84 JUMP JUMPDEST PUSH2 0x1B4D PUSH2 0x1E37 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1BB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x17A0 DUP2 PUSH2 0x1E91 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C05 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C19 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7A0 SWAP2 SWAP1 PUSH2 0x299C JUMP JUMPDEST PUSH2 0x17A0 DUP2 CALLER PUSH2 0x2598 JUMP JUMPDEST PUSH2 0x1C51 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x105D JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x1C89 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D32 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D46 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1D59 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST ISZERO PUSH2 0x105D JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH1 0xD SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x5F971AA3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x64 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0xBF2E3546 SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E1D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1E31 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57F079D PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x15FC1E74 SWAP1 PUSH2 0x1F1A SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x2DF0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F48 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F6C SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC65A7BB8D6351C1CF70C95A316CC6A92839C986682D98BC35F958F4883F9D2A8 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH32 0xD17D9DC3726BA31D9AF5D3A3425289766158A8EA95520E1C299CCBE4A2978B34 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x1D18 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x203E PUSH2 0x1061 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x204A PUSH2 0x1AFF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2056 PUSH2 0x1943 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7296D1A54B2D02C3A2F8F0B83B688D6B8415618F2AB8C3D5F761DD678DCC4B29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 GT PUSH2 0x20EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030313A4E4F5F4143544956455F42554E444C455300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST DUP1 DUP3 GT PUSH2 0x213A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030323A4E4F5F465245455F4341504954414C000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH2 0x2144 DUP6 DUP3 PUSH2 0x2FFA JUMP JUMPDEST DUP3 LT PUSH2 0x242D JUMPI PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x218F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x21CB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2AAA JUMP JUMPDEST PUSH1 0x11 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x21E5 SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x30CA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT DUP1 ISZERO PUSH2 0x21F7 JUMPI POP DUP7 ISZERO JUMPDEST ISZERO PUSH2 0x2429 JUMPI PUSH1 0x0 PUSH2 0x2207 DUP4 PUSH2 0x7A8 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2265 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x228D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B55 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x4FB0F8B19E3CE187A133519BFF1FCBDF3DFBC1B55F8BC334A3DA5BCADBEEA2A7 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 ISZERO PUSH2 0x2413 JUMPI PUSH1 0x0 DUP3 PUSH1 0xC0 ADD MLOAD DUP4 PUSH1 0xA0 ADD MLOAD PUSH2 0x22EC SWAP2 SWAP1 PUSH2 0x3031 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xE54EF564BEE7E49A6E78296E638947532DE075D47CD66E331104B4812756F119 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 DUP2 LT PUSH2 0x23F8 JUMPI PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2392 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP15 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP7 SWAP1 SSTORE PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 SWAP15 POP PUSH4 0xFFFFFFFF AND SWAP3 POP SWAP1 PUSH2 0x23D4 DUP4 PUSH2 0x30A6 JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x2411 JUMP JUMPDEST DUP10 PUSH2 0x2404 DUP8 PUSH1 0x1 PUSH2 0x2FFA JUMP JUMPDEST PUSH2 0x240E SWAP2 SWAP1 PUSH2 0x30CA JUMP JUMPDEST SWAP6 POP JUMPDEST POP JUMPDEST POP POP POP DUP1 DUP1 PUSH2 0x2421 SWAP1 PUSH2 0x308B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x21EA JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x105D DUP3 DUP3 PUSH2 0x1C47 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x244B PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24C8 SWAP2 SWAP1 PUSH2 0x2D23 JUMP JUMPDEST ISZERO PUSH2 0x17A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3031303A5249534B504F4F4C5F4841535F554E425552 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x4E545F42554E444C4553 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2584 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH2 0x25A2 DUP3 DUP3 PUSH2 0x17A3 JUMP JUMPDEST PUSH2 0x105D JUMPI PUSH2 0x25BA DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0x25FC JUMP JUMPDEST PUSH2 0x25C5 DUP4 PUSH1 0x20 PUSH2 0x25FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x25D6 SWAP3 SWAP2 SWAP1 PUSH2 0x2D7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x88F SWAP2 PUSH1 0x4 ADD PUSH2 0x2E52 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x260B DUP4 PUSH1 0x2 PUSH2 0x3012 JUMP JUMPDEST PUSH2 0x2616 SWAP1 PUSH1 0x2 PUSH2 0x2FFA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x263C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2666 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x268F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x26CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x26F0 DUP5 PUSH1 0x2 PUSH2 0x3012 JUMP JUMPDEST PUSH2 0x26FB SWAP1 PUSH1 0x1 PUSH2 0x2FFA JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x278F JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x273D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x2761 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x2788 DUP2 PUSH2 0x3074 JUMP JUMPDEST SWAP1 POP PUSH2 0x26FE JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x91B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x88F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2820 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2860 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2873 PUSH2 0x286E DUP3 PUSH2 0x2FD2 JUMP JUMPDEST PUSH2 0x2FA1 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2887 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28B1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x28BF PUSH2 0x286E DUP3 PUSH2 0x2FD2 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x28D3 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x131E DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x3048 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x7A3 DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x7A3 DUP2 PUSH2 0x3141 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x290B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2915 PUSH1 0xC0 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x2922 DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2954 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2960 DUP5 DUP3 DUP6 ADD PUSH2 0x2850 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2991 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x91B DUP2 PUSH2 0x312C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x91B DUP2 PUSH2 0x312C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29C9 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29E2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x29F4 DUP2 PUSH2 0x312C JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A11 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A31 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x91B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A5A JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A70 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2A7C DUP6 DUP3 DUP7 ADD PUSH2 0x2850 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A9C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x91B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ABB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2AD2 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2AE5 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2AEF PUSH1 0xC0 PUSH2 0x2FA1 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2AFA DUP2 PUSH2 0x3141 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2B23 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2B2F DUP8 DUP3 DUP7 ADD PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B66 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2B7D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2B93 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2B9C DUP2 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2BC2 PUSH1 0x60 DUP5 ADD PUSH2 0x28EF JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BD8 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2BE4 DUP8 DUP3 DUP7 ADD PUSH2 0x28A1 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C3B JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C52 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP9 SUB SLT ISZERO PUSH2 0x2C68 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2C71 DUP2 PUSH2 0x2FA1 JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2C97 PUSH1 0x60 DUP5 ADD PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x2CAD JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x2CB9 DUP9 DUP3 DUP7 ADD PUSH2 0x2850 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD CALLDATALOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D0C JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2D19 DUP6 DUP3 DUP7 ADD PUSH2 0x28FA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D34 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2D53 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x3048 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x2D77 JUMPI PUSH2 0x2D77 PUSH2 0x3100 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x2DB3 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3048 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x2DE4 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x3048 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2E14 SWAP1 DUP4 ADD DUP6 PUSH2 0x2D3B JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2E38 JUMPI PUSH2 0x2E38 PUSH2 0x3100 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x2E38 JUMPI PUSH2 0x2E38 PUSH2 0x3100 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x91B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2D3B JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F42554E444C455F4F574E45520000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030313A4143434553535F44454E4945440000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2F3D PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2D67 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2F5A PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2D3B JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2FCA JUMPI PUSH2 0x2FCA PUSH2 0x3116 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2FEC JUMPI PUSH2 0x2FEC PUSH2 0x3116 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x300D JUMPI PUSH2 0x300D PUSH2 0x30EA JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x302C JUMPI PUSH2 0x302C PUSH2 0x30EA JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x3043 JUMPI PUSH2 0x3043 PUSH2 0x30EA JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3063 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x304B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1E31 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x3083 JUMPI PUSH2 0x3083 PUSH2 0x30EA JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x309F JUMPI PUSH2 0x309F PUSH2 0x30EA JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x30C0 JUMPI PUSH2 0x30C0 PUSH2 0x30EA JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x30E5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x17A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x17A0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 DUP16 0xF8 0xB7 AND CODECOPY 0xB5 DUP12 SELFDESTRUCT DUP9 0xD3 0xC1 PUSH28 0xB55E56C77F9B7258FC689F49DEADE934A4A8BE64736F6C6343000802 STOP CALLER ","sourceMap":"334:1416:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2606:202:37;;;;;;:::i;:::-;;:::i;:::-;;;11226:14:103;;11219:22;11201:41;;11189:2;11174:18;2606:202:37;;;;;;;;7157:320:19;;;;;;:::i;:::-;;:::i;:::-;;;11399:25:103;;;11387:2;11372:18;7157:320:19;11354:76:103;8164:164:19;;;:::i;5982:92::-;6059:7;;-1:-1:-1;;;;;6059:7:19;5982:92;;;-1:-1:-1;;;;;10175:32:103;;;10157:51;;10145:2;10130:18;5982:92:19;10112:102:103;2394:100:12;2477:14;;;;2394:100;;;;;;:::i;2220:83::-;2286:14;;2220:83;;6585:100:19;6660:10;:17;6585:100;;2500:136:12;;;:::i;:::-;;;;;;;:::i;3279:78::-;;;:::i;:::-;;4391:129:37;;;;;;:::i;:::-;4465:7;4491:12;;;:6;:12;;;;;:22;;;;4391:129;2973:120:12;;;:::i;6693:278:19:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4816:145:37:-;;;;;;:::i;:::-;;:::i;3875:165:19:-;;;;;;:::i;:::-;;:::i;3461:237::-;;;;;;:::i;:::-;;:::i;4942:230::-;;;;;;:::i;:::-;;:::i;5925:214:37:-;;;;;;:::i;:::-;;:::i;7485:135:19:-;7583:29;;;;;;;;;-1:-1:-1;7583:29:19;;7485:135;;;;;;;:::i;6979:170::-;;;:::i;580:61::-;;635:6;580:61;;6457:120;6551:18;;6457:120;;4219:161;;;;;;:::i;:::-;;:::i;3101:86:12:-;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;2309:79;2373:12;;2309:79;;3195:78;;;:::i;5430:278:19:-;;;;;;:::i;:::-;;:::i;1831:101:41:-;;;:::i;482:61:68:-;;522:21;482:61;;1191:236;;;;;;:::i;:::-;;:::i;648:57:19:-;;;;;;;;;;;;;;;;5716:258;;;:::i;4707:227::-;;;;;;:::i;:::-;;:::i;1499:246:68:-;;;;;;:::i;:::-;-1:-1:-1;1733:4:68;;1499:246;-1:-1:-1;1499:246:68;3219:234:19;;;;;;:::i;:::-;;:::i;4388:311::-;;;;;;:::i;:::-;;:::i;2642:77:12:-;;;:::i;4048:163:19:-;;;;;;:::i;:::-;;:::i;1201:85:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;1040:141:68;;;;;;:::i;:::-;;:::i;2895:145:37:-;;;;;;:::i;:::-;;:::i;2851:116:12:-;;;:::i;3706:161:19:-;;;;;;:::i;:::-;;:::i;6190:117::-;6280:19;;6190:117;;2027:49:37;;2072:4;2027:49;;7800:182:19;;;:::i;3772:77:12:-;;;:::i;635:55:68:-;;684:6;635:55;;5180:242:19;;;;;;:::i;:::-;;:::i;7990:166::-;;;:::i;2131:81:12:-;;;;;;:::i;:::-;;:::i;5241:147:37:-;;;;;;:::i;:::-;;:::i;7628:164:19:-;;;:::i;2727:118:12:-;;;:::i;6315:134:19:-;635:6;6315:134;;2081:198:41;;;;;;:::i;:::-;;:::i;6082:100:19:-;6163:11;;-1:-1:-1;;;;;6163:11:19;6082:100;;2606:202:37;2691:4;-1:-1:-1;;;;;;2714:47:37;;-1:-1:-1;;;2714:47:37;;:87;;-1:-1:-1;;;;;;;;;;937:40:62;;;2765:36:37;2707:94;;2606:202;;;;:::o;7157:320:19:-;7226:16;7255:18;7276:7;2373:12:12;;2309:79;;7276:7:19;7308:16;;:42;;-1:-1:-1;;;7308:42:19;;;;;11399:25:103;;;7255:28:19;;-1:-1:-1;;;;;;7308:16:19;;:30;;11372:18:103;;7308:42:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7302:3;:48;7294:104;;;;-1:-1:-1;;;7294:104:19;;15072:2:103;7294:104:19;;;15054:21:103;15111:2;15091:18;;;15084:30;15150:34;15130:18;;;15123:62;-1:-1:-1;;;15201:18:103;;;15194:41;15252:19;;7294:104:19;;;;;;;;;7418:16;;:51;;-1:-1:-1;;;7418:51:19;;;;;11609:25:103;;;11650:18;;;11643:34;;;-1:-1:-1;;;;;7418:16:19;;;;:34;;11582:18:103;;7418:51:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7411:58;7157:320;-1:-1:-1;;;7157:320:19:o;8164:164::-;8215:7;8235:18;8256:7;2373:12:12;;2309:79;;8256:7:19;8281:16;;:39;;-1:-1:-1;;;8281:39:19;;;;;11399:25:103;;;8235:28:19;;-1:-1:-1;;;;;;8281:16:19;;:27;;11372:18:103;;8281:39:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8274:46;;;8164:164;:::o;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;11399:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;11372:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2578:55;;2500:136;:::o;3279:78::-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3279:78::o;2973:120::-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;6693:278:19:-;6754:21;;:::i;:::-;6802:10;:17;6796:23;;6788:72;;;;-1:-1:-1;;;6788:72:19;;14307:2:103;6788:72:19;;;14289:21:103;14346:2;14326:18;;;14319:30;14385:34;14365:18;;;14358:62;-1:-1:-1;;;14436:18:103;;;14429:34;14480:19;;6788:72:19;14279:226:103;6788:72:19;6873:17;6893:10;6904:3;6893:15;;;;;;-1:-1:-1;;;6893:15:19;;;;;;;;;;;;;;;;;;;6926:16;;:37;;-1:-1:-1;;;6926:37:19;;;;;11399:25:103;;;6893:15:19;;-1:-1:-1;;;;;;6926:16:19;;:26;;11372:18:103;;6926:37:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6926:37:19;;;;;;;;;;;;:::i;4816:145:37:-;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4929:25:::1;4940:4;4946:7;4929:10;:25::i;:::-;4816:145:::0;;;:::o;3875:165:19:-;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;3967:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3993:16:::1;::::0;:39:::1;::::0;-1:-1:-1;;;3993:39:19;;::::1;::::0;::::1;11399:25:103::0;;;-1:-1:-1;;;;;3993:16:19;;::::1;::::0;:29:::1;::::0;11372:18:103;;3993:39:19::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3875:165:::0;;;;:::o;3461:237::-;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;3596:17:19;;3569:8;;3596:17;;-1:-1:-1;;;;;1413:16:19;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3643:16:::1;::::0;:47:::1;::::0;-1:-1:-1;;;3643:47:19;;::::1;::::0;::::1;11609:25:103::0;;;11650:18;;;11643:34;;;-1:-1:-1;;;;;3643:16:19;;::::1;::::0;:29:::1;::::0;11582:18:103;;3643:47:19::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3631:59:::0;3461:237;-1:-1:-1;;;;;;3461:237:19:o;4942:230::-;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;5068:34:::1;5084:9;5095:6;5068:15;:34::i;:::-;5118:46;::::0;;11609:25:103;;;11665:2;11650:18;;11643:34;;;5118:46:19::1;::::0;11582:18:103;5118:46:19::1;;;;;;;;4942:230:::0;;:::o;5925:214:37:-;-1:-1:-1;;;;;6020:23:37;;719:10:59;6020:23:37;6012:83;;;;-1:-1:-1;;;6012:83:37;;17329:2:103;6012:83:37;;;17311:21:103;17368:2;17348:18;;;17341:30;17407:34;17387:18;;;17380:62;-1:-1:-1;;;17458:18:103;;;17451:45;17513:19;;6012:83:37;17301:237:103;6012:83:37;6106:26;6118:4;6124:7;6106:11;:26::i;:::-;5925:214;;:::o;6979:170:19:-;7033:7;7053:18;7074:7;2373:12:12;;2309:79;;7074:7:19;7099:16;;:42;;-1:-1:-1;;;7099:42:19;;;;;11399:25:103;;;7053:28:19;;-1:-1:-1;;;;;;7099:16:19;;:30;;11372:18:103;;7099:42:19;11354:76:103;4219:161:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;4309:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;4335:16:::1;::::0;:37:::1;::::0;-1:-1:-1;;;4335:37:19;;::::1;::::0;::::1;11399:25:103::0;;;-1:-1:-1;;;;;4335:16:19;;::::1;::::0;:27:::1;::::0;11372:18:103;;4335:37:19::1;11354:76:103::0;3195:78:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;5430:278:19:-:0;1094:13:41;:11;:13::i;:::-;5571:18:19::1;5592:7;2373:12:12::0;;2309:79;;5592:7:19::1;5610:16;::::0;:90:::1;::::0;-1:-1:-1;;;5610:90:19;;::::1;::::0;::::1;11609:25:103::0;;;11650:18;;;11643:34;;;5571:28:19;;-1:-1:-1;;;;;;5610:16:19::1;::::0;:48:::1;::::0;11582:18:103;;5610:90:19::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1117:1:41;5430:278:19::0;:::o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;1191:236:68:-:0;1333:16;522:21;2505:16:37;2516:4;2505:10;:16::i;:::-;1378:41:68::1;1397:6;1405:13;1378:18;:41::i;:::-;1367:52:::0;1191:236;-1:-1:-1;;;;1191:236:68:o;5716:258:19:-;5806:36;5860:18;5881:7;2373:12:12;;2309:79;;5881:7:19;5906:16;;:60;;-1:-1:-1;;;5906:60:19;;;;;11399:25:103;;;5860:28:19;;-1:-1:-1;;;;;;5906:16:19;;:48;;11372:18:103;;5906:60:19;11354:76:103;4707:227:19;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;4832:33:::1;4847:9;4858:6;4832:14;:33::i;:::-;4881:45;::::0;;11609:25:103;;;11665:2;11650:18;;11643:34;;;4881:45:19::1;::::0;11582:18:103;4881:45:19::1;11564:119:103::0;3219:234:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;3353:17:19;;3326:8;;3353:17;;-1:-1:-1;;;;;1413:16:19;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3400:16:::1;::::0;:45:::1;::::0;-1:-1:-1;;;3400:45:19;;::::1;::::0;::::1;11609:25:103::0;;;11650:18;;;11643:34;;;-1:-1:-1;;;;;3400:16:19;;::::1;::::0;:27:::1;::::0;11582:18:103;;3400:45:19::1;11564:119:103::0;4388:311:19;4525:12;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;4566:44:::1;4582:9;4593:16;4566:15;:44::i;:::-;4626:65;::::0;;11884:25:103;;;11940:2;11925:18;;11918:34;;;11995:14;;11988:22;11968:18;;;11961:50;4626:65:19;;11995:14:103;;-1:-1:-1;4626:65:19::1;::::0;;;;;11872:2:103;4626:65:19;;::::1;4388:311:::0;;;;:::o;2642:77:12:-;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;4048:163:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;4139:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;4165:16:::1;::::0;:38:::1;::::0;-1:-1:-1;;;4165:38:19;;::::1;::::0;::::1;11399:25:103::0;;;-1:-1:-1;;;;;4165:16:19;;::::1;::::0;:28:::1;::::0;11372:18:103;;4165:38:19::1;11354:76:103::0;1040:141:68;1094:13:41;:11;:13::i;:::-;1138:35:68::1;522:21;1164:8;1138:10;:35::i;:::-;1040:141:::0;:::o;2895:145:37:-;2981:4;3004:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:37;;;;;;;;;;;;;;;2895:145::o;2851:116:12:-;2900:4;;2915:49;;3706:161:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;11399:25:103;;;3796:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;11372:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;11399:25:103;;;11387:2;11372:18;;11354:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3822:16:::1;::::0;:37:::1;::::0;-1:-1:-1;;;3822:37:19;;::::1;::::0;::::1;11399:25:103::0;;;-1:-1:-1;;;;;3822:16:19;;::::1;::::0;:27:::1;::::0;11372:18:103;;3822:37:19::1;11354:76:103::0;7800:182:19;7860:7;7880:18;7901:7;2373:12:12;;2309:79;;7901:7:19;7926:16;;:48;;-1:-1:-1;;;7926:48:19;;;;;11399:25:103;;;7880:28:19;;-1:-1:-1;;;;;;7926:16:19;;:36;;11372:18:103;;7926:48:19;11354:76:103;3772:77:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3831:15:::1;:13;:15::i;5180:242:19:-:0;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;5284:24:::1;5311:29;5330:9;5311:18;:29::i;:::-;5356:58;::::0;;11609:25:103;;;11665:2;11650:18;;11643:34;;;5284:56:19;;-1:-1:-1;5356:58:19::1;::::0;11582:18:103;5356:58:19::1;11564:119:103::0;7990:166:19;8042:7;8062:18;8083:7;2373:12:12;;2309:79;;8083:7:19;8108:16;;:40;;-1:-1:-1;;;8108:40:19;;;;;11399:25:103;;;8062:28:19;;-1:-1:-1;;;;;;8108:16:19;;:28;;11372:18:103;;8108:40:19;11354:76:103;2131:81:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;5241:147:37:-;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5355:26:::1;5367:4;5373:7;5355:11;:26::i;7628:164:19:-:0;7679:7;7699:18;7720:7;2373:12:12;;2309:79;;7720:7:19;7745:16;;:39;;-1:-1:-1;;;7745:39:19;;;;;11399:25:103;;;7699:28:19;;-1:-1:-1;;;;;;7745:16:19;;:27;;11372:18:103;;7745:39:19;11354:76:103;2727:118:12;2777:4;2810:32;2792:50;;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;13900:2:103;2161:73:41::1;::::0;::::1;13882:21:103::0;13939:2;13919:18;;;13912:30;13978:34;13958:18;;;13951:62;-1:-1:-1;;;14029:18:103;;;14022:36;14075:19;;2161:73:41::1;13872:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;4875:145:12:-:0;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;11399:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;11372:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3334:103:37:-;3400:30;3411:4;719:10:59;3400::37;:30::i;7474:233::-;7557:22;7565:4;7571:7;7557;:22::i;:::-;7552:149;;7595:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7595:29:37;;;;;;;;;:36;;-1:-1:-1;;7595:36:37;7627:4;7595:36;;;7677:12;719:10:59;640:96;;7677:12:37;-1:-1:-1;;;;;7650:40:37;7668:7;-1:-1:-1;;;;;7650:40:37;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;4177:229:11:-;4280:16;4299:28;;;:17;:28;;;;;;;;4338:16;;:60;;-1:-1:-1;;;4338:60:11;;;;;19528:25:103;;;19569:18;;;19562:34;;;19612:18;;;19605:34;;;4299:28:11;;-1:-1:-1;;;;;4338:16:11;;:31;;19501:18:103;;4338:60:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4177:229;;;:::o;7878:234:37:-;7961:22;7969:4;7975:7;7961;:22::i;:::-;7957:149;;;8031:5;7999:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7999:29:37;;;;;;;;;;:37;;-1:-1:-1;;7999:37:37;;;8055:40;719:10:59;;7999:12:37;;8055:40;;8031:5;8055:40;7878:234;;:::o;2590:230:19:-;2652:16;;2700:7;;2722:11;;2749:18;;2782:19;;2652:160;;-1:-1:-1;;;2652:160:19;;-1:-1:-1;;;;;2700:7:19;;;2652:160;;;10488:34:103;2722:11:19;;;10538:18:103;;;10531:43;10590:18;;;10583:34;;;;10633:18;;;10626:34;2652:16:19;;;:33;;10422:19:103;;2652:160:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2590:230::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;15842:2:103;1414:68:41;;;15824:21:103;;;15861:18;;;15854:30;15920:34;15900:18;;;15893:62;15972:18;;1414:68:41;15814:182:103;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;2828:383:19:-;2945:16;;719:10:59;3035:16:19;;:65;;-1:-1:-1;;;3035:65:19;;2979:34;;-1:-1:-1;;;;;;3035:16:19;;:29;;:65;;2979:34;;3078:6;;3086:13;;3035:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3111:10;:25;;;;;;;-1:-1:-1;3111:25:19;;;;;;;;;3154:49;;;11609:25:103;;;11665:2;11650:18;;11643:34;;;3111:25:19;;-1:-1:-1;3154:49:19;;11582:18:103;3154:49:19;;;;;;;2828:383;;;;;:::o;3942:227:11:-;4044:16;4063:28;;;:17;:28;;;;;;;;4102:16;;:59;;-1:-1:-1;;;4102:59:11;;;;;19528:25:103;;;19569:18;;;19562:34;;;19612:18;;;19605:34;;;4063:28:11;;-1:-1:-1;;;;;4102:16:11;;:30;;19501:18:103;;4102:59:11;19483:162:103;1533:2401:11;1648:12;1679:21;1703:15;:13;:15::i;:::-;1679:39;;1729:15;1747:12;:10;:12::i;:::-;1729:30;;1770:21;1794;:19;:21::i;:::-;1883:16;;1833:67;;;20472:25:103;;;1883:16:11;;;;20528:2:103;20513:18;;20506:51;1770:45:11;;-1:-1:-1;1833:67:11;;20445:18:103;1833:67:11;;;;;;;1935:1;1919:13;:17;1911:61;;;;-1:-1:-1;;;1911:61:11;;14712:2:103;1911:61:11;;;14694:21:103;14751:2;14731:18;;;14724:30;14790:33;14770:18;;;14763:61;14841:18;;1911:61:11;14684:181:103;1911:61:11;2001:13;1991:7;:23;1983:65;;;;-1:-1:-1;;;1983:65:11;;15484:2:103;1983:65:11;;;15466:21:103;15523:2;15503:18;;;15496:30;15562:31;15542:18;;;15535:59;15611:18;;1983:65:11;15456:179:103;1983:65:11;2135:32;2151:16;2135:13;:32;:::i;:::-;2124:7;:43;2121:1806;;2225:16;;:42;;-1:-1:-1;;;2225:42:11;;;;;11399:25:103;;;2184:38:11;;-1:-1:-1;;;;;2225:16:11;;:31;;11372:18:103;;2225:42:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2225:42:11;;;;;;;;;;;;:::i;:::-;2374:16;;2184:83;;-1:-1:-1;2363:8:11;;2374:32;;2393:13;;2374:16;;:32;:::i;:::-;2363:43;;2870:9;2865:1051;2889:13;2885:1;:17;:29;;;;;2907:7;2906:8;2885:29;2865:1051;;;2940:16;2959:22;2977:3;2959:17;:22::i;:::-;3031:16;;:36;;-1:-1:-1;;;3031:36:11;;;;;11399:25:103;;;2940:41:11;;-1:-1:-1;3000:28:11;;-1:-1:-1;;;;;3031:16:11;;;;:26;;11372:18:103;;3031:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3031:36:11;;;;;;;;;;;;:::i;:::-;3000:67;-1:-1:-1;3086:15:11;1733:4:68;3173:52:11;;;18978:25:103;;;19046:14;;19039:22;19034:2;19019:18;;19012:50;3086:63:11;;-1:-1:-1;3173:52:11;;18951:18:103;3173:52:11;;;;;;;3250:10;3246:655;;;3285:17;3322:6;:20;;;3305:6;:14;;;:37;;;;:::i;:::-;3370:86;;;20134:25:103;;;20190:2;20175:18;;20168:34;;;20218:18;;;20211:34;;;20276:2;20261:18;;20254:34;;;3285:57:11;;-1:-1:-1;3370:86:11;;20121:3:103;20106:19;3370:86:11;;;;;;;3498:16;3485:9;:29;3481:401;;3543:16;;:75;;-1:-1:-1;;;3543:75:11;;;;;19528:25:103;;;19569:18;;;19562:34;;;19612:18;;;19605:34;;;-1:-1:-1;;;;;3543:16:11;;;;:36;;19501:18:103;;3543:75:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3645:28:11;;;;:17;:28;;;;;:39;;;3752:16;:18;;3721:4;;-1:-1:-1;3752:18:11;;;-1:-1:-1;3752:16:11;:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3481:401;;;3845:13;3834:7;:3;3840:1;3834:7;:::i;:::-;3833:25;;;;:::i;:::-;3827:31;;3481:401;3246:655;;2865:1051;;;2916:3;;;;;:::i;:::-;;;;2865:1051;;;;2121:1806;;;1533:2401;;;;;;;:::o;6824:110:37:-;6902:25;6913:4;6919:7;6902:10;:25::i;8528:252:19:-;8588:18;8609:7;2373:12:12;;2309:79;;8609:7:19;8649:16;;:43;;-1:-1:-1;;;8649:43:19;;;;;11399:25:103;;;8588:28:19;;-1:-1:-1;;;;;;8649:16:19;;:31;;11372:18:103;;8649:43:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;8627:145;;;;-1:-1:-1;;;8627:145:19;;16203:2:103;8627:145:19;;;16185:21:103;16242:2;16222:18;;;16215:30;16281:34;16261:18;;;16254:62;-1:-1:-1;;;16332:18:103;;;16325:40;16382:19;;8627:145:19;16175:232:103;4414:279:11;4506:24;4576:28;;;:17;:28;;;;;;;4634:16;;:51;;-1:-1:-1;;;4634:51:11;;;;;11609:25:103;;;11650:18;;;11643:34;;;4576:28:11;;-1:-1:-1;;;;;4634:16:11;;:30;;11582:18:103;;4634:51:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3718:492:37;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:403;;3989:41;4017:7;-1:-1:-1;;;;;3989:41:37;4027:2;3989:19;:41::i;:::-;4101:38;4129:4;4136:2;4101:19;:38::i;:::-;3896:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:265:37;;;;;;;;;;-1:-1:-1;;;3844:349:37;;;;;;;:::i;1652:441:61:-;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;1774:25;;;;;;-1:-1:-1;;;1774:25:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:61;;1752:47;;-1:-1:-1;;;1809:6:61;1816:1;1809:9;;;;;;-1:-1:-1;;;1809:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1809:15:61;;;;;;;;;-1:-1:-1;;;1834:6:61;1841:1;1834:9;;;;;;-1:-1:-1;;;1834:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1834:15:61;;;;;;;;-1:-1:-1;1864:9:61;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:61;1951:3;1943:11;1930:25;;;;;-1:-1:-1;;;1930:25:61;;;;;;;;;;;;1918:6;1925:1;1918:9;;;;;;-1:-1:-1;;;1918:9:61;;;;;;;;;;;;:37;-1:-1:-1;;;;;1918:37:61;;;;;;;;-1:-1:-1;1979:1:61;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:61;;2000:55;;;;-1:-1:-1;;;2000:55:61;;13183:2:103;2000:55:61;;;13165:21:103;;;13202:18;;;13195:30;13261:34;13241:18;;;13234:62;13313:18;;2000:55:61;13155:182:103;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:482:103:-;;109:3;102:4;94:6;90:17;86:27;76:2;;131:5;124;117:20;76:2;171:6;158:20;202:48;218:31;246:2;218:31;:::i;:::-;202:48;:::i;:::-;275:2;266:7;259:19;321:3;314:4;309:2;301:6;297:15;293:26;290:35;287:2;;;342:5;335;328:20;287:2;411;404:4;396:6;392:17;385:4;376:7;372:18;359:55;434:16;;;452:4;430:27;423:42;;;;438:7;66:430;-1:-1:-1;;66:430:103:o;501:444::-;;607:3;600:4;592:6;588:17;584:27;574:2;;629:5;622;615:20;574:2;662:6;656:13;693:48;709:31;737:2;709:31;:::i;693:48::-;766:2;757:7;750:19;812:3;805:4;800:2;792:6;788:15;784:26;781:35;778:2;;;833:5;826;819:20;778:2;850:64;911:2;904:4;895:7;891:18;884:4;876:6;872:17;850:64;:::i;950:162::-;1032:20;;1061:45;1032:20;1061:45;:::i;1117:166::-;1210:13;;1232:45;1210:13;1232:45;:::i;1288:771::-;;1394:4;1382:9;1377:3;1373:19;1369:30;1366:2;;;1416:5;1409;1402:20;1366:2;1442:21;1458:4;1442:21;:::i;:::-;1433:30;;1500:9;1487:23;1519:47;1558:7;1519:47;:::i;:::-;1589:7;1582:5;1575:22;;1657:2;1646:9;1642:18;1629:32;1624:2;1617:5;1613:14;1606:56;1722:2;1711:9;1707:18;1694:32;1689:2;1682:5;1678:14;1671:56;1778:2;1767:9;1763:18;1750:32;1805:18;1797:6;1794:30;1791:2;;;1837:1;1834;1827:12;1791:2;1873:45;1914:3;1905:6;1894:9;1890:22;1873:45;:::i;:::-;1868:2;1861:5;1857:14;1850:69;;1980:3;1969:9;1965:19;1952:33;1946:3;1939:5;1935:15;1928:58;2047:3;2036:9;2032:19;2019:33;2013:3;2006:5;2002:15;1995:58;1356:703;;;;:::o;2064:257::-;;2176:2;2164:9;2155:7;2151:23;2147:32;2144:2;;;2197:6;2189;2182:22;2144:2;2241:9;2228:23;2260:31;2285:5;2260:31;:::i;2326:261::-;;2449:2;2437:9;2428:7;2424:23;2420:32;2417:2;;;2470:6;2462;2455:22;2417:2;2507:9;2501:16;2526:31;2551:5;2526:31;:::i;2592:190::-;;2704:2;2692:9;2683:7;2679:23;2675:32;2672:2;;;2725:6;2717;2710:22;2672:2;-1:-1:-1;2753:23:103;;2662:120;-1:-1:-1;2662:120:103:o;2787:325::-;;;2916:2;2904:9;2895:7;2891:23;2887:32;2884:2;;;2937:6;2929;2922:22;2884:2;2978:9;2965:23;2955:33;;3038:2;3027:9;3023:18;3010:32;3051:31;3076:5;3051:31;:::i;:::-;3101:5;3091:15;;;2874:238;;;;;:::o;3117:258::-;;;3246:2;3234:9;3225:7;3221:23;3217:32;3214:2;;;3267:6;3259;3252:22;3214:2;-1:-1:-1;;3295:23:103;;;3365:2;3350:18;;;3337:32;;-1:-1:-1;3204:171:103:o;3380:306::-;;3491:2;3479:9;3470:7;3466:23;3462:32;3459:2;;;3512:6;3504;3497:22;3459:2;3543:23;;-1:-1:-1;;;;;;3595:32:103;;3585:43;;3575:2;;3647:6;3639;3632:22;3691:408;;;3829:2;3817:9;3808:7;3804:23;3800:32;3797:2;;;3850:6;3842;3835:22;3797:2;3895:9;3882:23;3928:18;3920:6;3917:30;3914:2;;;3965:6;3957;3950:22;3914:2;3993:49;4034:7;4025:6;4014:9;4010:22;3993:49;:::i;:::-;3983:59;4089:2;4074:18;;;;4061:32;;-1:-1:-1;;;;3787:312:103:o;4104:299::-;;4246:2;4234:9;4225:7;4221:23;4217:32;4214:2;;;4267:6;4259;4252:22;4214:2;4304:9;4298:16;4343:1;4336:5;4333:12;4323:2;;4364:6;4356;4349:22;4408:1005;;4560:2;4548:9;4539:7;4535:23;4531:32;4528:2;;;4581:6;4573;4566:22;4528:2;4619:9;4613:16;4648:18;4689:2;4681:6;4678:14;4675:2;;;4710:6;4702;4695:22;4675:2;4738:22;;;;4794:4;4776:16;;;4772:27;4769:2;;;4817:6;4809;4802:22;4769:2;4848:21;4864:4;4848:21;:::i;:::-;4899:2;4893:9;4911:47;4950:7;4911:47;:::i;:::-;4981:7;4974:5;4967:22;;5035:2;5031;5027:11;5021:18;5016:2;5009:5;5005:14;4998:42;5086:2;5082;5078:11;5072:18;5067:2;5060:5;5056:14;5049:42;5130:2;5126;5122:11;5116:18;5159:2;5149:8;5146:16;5143:2;;;5180:6;5172;5165:22;5143:2;5221:55;5268:7;5257:8;5253:2;5249:17;5221:55;:::i;:::-;5216:2;5209:5;5205:14;5198:79;;5324:3;5320:2;5316:12;5310:19;5304:3;5297:5;5293:15;5286:44;5377:3;5373:2;5369:12;5363:19;5357:3;5350:5;5346:15;5339:44;5402:5;5392:15;;;;;4518:895;;;;:::o;5418:1224::-;;5565:2;5553:9;5544:7;5540:23;5536:32;5533:2;;;5586:6;5578;5571:22;5533:2;5624:9;5618:16;5653:18;5694:2;5686:6;5683:14;5680:2;;;5715:6;5707;5700:22;5680:2;5758:6;5747:9;5743:22;5733:32;;5784:6;5824:2;5819;5810:7;5806:16;5802:25;5799:2;;;5845:6;5837;5830:22;5799:2;5876:19;5892:2;5876:19;:::i;:::-;5863:32;;5924:2;5918:9;5911:5;5904:24;5974:2;5970;5966:11;5960:18;5955:2;5948:5;5944:14;5937:42;6025:2;6021;6017:11;6011:18;6006:2;5999:5;5995:14;5988:42;6062:56;6114:2;6110;6106:11;6062:56;:::i;:::-;6057:2;6050:5;6046:14;6039:80;6158:3;6154:2;6150:12;6144:19;6188:2;6178:8;6175:16;6172:2;;;6209:6;6201;6194:22;6172:2;6251:55;6298:7;6287:8;6283:2;6279:17;6251:55;:::i;:::-;6245:3;6234:15;;6227:80;-1:-1:-1;6354:3:103;6346:12;;;6340:19;6323:15;;;6316:44;6407:3;6399:12;;;6393:19;6376:15;;;6369:44;6460:3;6452:12;;;6446:19;6429:15;;;6422:44;6485:3;6526:11;;;6520:18;6504:14;;;6497:42;6558:3;6599:11;;;6593:18;6577:14;;;6570:42;;;;-1:-1:-1;6238:5:103;5523:1119;-1:-1:-1;;;5523:1119:103:o;6647:1502::-;;;6829:2;6817:9;6808:7;6804:23;6800:32;6797:2;;;6850:6;6842;6835:22;6797:2;6895:9;6882:23;6924:18;6965:2;6957:6;6954:14;6951:2;;;6986:6;6978;6971:22;6951:2;7029:6;7018:9;7014:22;7004:32;;7055:6;7095:2;7090;7081:7;7077:16;7073:25;7070:2;;;7116:6;7108;7101:22;7070:2;7147:19;7163:2;7147:19;:::i;:::-;7134:32;;7202:2;7189:16;7182:5;7175:31;7259:2;7255;7251:11;7238:25;7233:2;7226:5;7222:14;7215:49;7317:2;7313;7309:11;7296:25;7291:2;7284:5;7280:14;7273:49;7354:45;7395:2;7391;7387:11;7354:45;:::i;:::-;7349:2;7342:5;7338:14;7331:69;7446:3;7442:2;7438:12;7425:26;7476:2;7466:8;7463:16;7460:2;;;7497:6;7489;7482:22;7460:2;7539:44;7575:7;7564:8;7560:2;7556:17;7539:44;:::i;:::-;7533:3;7526:5;7522:15;7515:69;;7638:3;7634:2;7630:12;7617:26;7611:3;7604:5;7600:15;7593:51;7698:3;7694:2;7690:12;7677:26;7671:3;7664:5;7660:15;7653:51;7758:3;7754:2;7750:12;7737:26;7731:3;7724:5;7720:15;7713:51;7783:3;7839:2;7835;7831:11;7818:25;7813:2;7806:5;7802:14;7795:49;;7863:3;7919:2;7915;7911:11;7898:25;7893:2;7886:5;7882:14;7875:49;;7943:5;7933:15;;;8001:2;7990:9;7986:18;7973:32;7957:48;;8030:2;8020:8;8017:16;8014:2;;;8051:6;8043;8036:22;8014:2;;8079:64;8135:7;8124:8;8113:9;8109:24;8079:64;:::i;:::-;8069:74;;;6787:1362;;;;;:::o;8349:194::-;;8472:2;8460:9;8451:7;8447:23;8443:32;8440:2;;;8493:6;8485;8478:22;8440:2;-1:-1:-1;8521:16:103;;8430:113;-1:-1:-1;8430:113:103:o;8811:257::-;;8890:5;8884:12;8917:6;8912:3;8905:19;8933:63;8989:6;8982:4;8977:3;8973:14;8966:4;8959:5;8955:16;8933:63;:::i;:::-;9050:2;9029:15;-1:-1:-1;;9025:29:103;9016:39;;;;9057:4;9012:50;;8860:208;-1:-1:-1;;8860:208:103:o;9073:142::-;9156:1;9149:5;9146:12;9136:2;;9162:18;;:::i;:::-;9191;;9126:89::o;9220:786::-;;9631:25;9626:3;9619:38;9686:6;9680:13;9702:62;9757:6;9752:2;9747:3;9743:12;9736:4;9728:6;9724:17;9702:62;:::i;:::-;-1:-1:-1;;;9823:2:103;9783:16;;;9815:11;;;9808:40;9873:13;;9895:63;9873:13;9944:2;9936:11;;9929:4;9917:17;;9895:63;:::i;:::-;9978:17;9997:2;9974:26;;9609:397;-1:-1:-1;;;;9609:397:103:o;10671:385::-;-1:-1:-1;;;;;10874:32:103;;10856:51;;10943:2;10938;10923:18;;10916:30;;;10671:385;;10963:44;;10988:18;;10980:6;10963:44;:::i;:::-;10955:52;;11043:6;11038:2;11027:9;11023:18;11016:34;10846:210;;;;;;:::o;12248:250::-;12399:2;12384:18;;12432:1;12421:13;;12411:2;;12438:18;;:::i;:::-;12467:25;;;12366:132;:::o;12503:249::-;12653:2;12638:18;;12686:1;12675:13;;12665:2;;12692:18;;:::i;12757:219::-;;12906:2;12895:9;12888:21;12926:44;12966:2;12955:9;12951:18;12943:6;12926:44;:::i;13342:351::-;13544:2;13526:21;;;13583:2;13563:18;;;13556:30;13622:29;13617:2;13602:18;;13595:57;13684:2;13669:18;;13516:177::o;16412:354::-;16614:2;16596:21;;;16653:2;16633:18;;;16626:30;16692:32;16687:2;16672:18;;16665:60;16757:2;16742:18;;16586:180::o;16771:351::-;16973:2;16955:21;;;17012:2;16992:18;;;16985:30;17051:29;17046:2;17031:18;;17024:57;17113:2;17098:18;;16945:177::o;17543:1080::-;;17720:2;17709:9;17702:21;17765:6;17759:13;17754:2;17743:9;17739:18;17732:41;17827:2;17819:6;17815:15;17809:22;17804:2;17793:9;17789:18;17782:50;17886:2;17878:6;17874:15;17868:22;17863:2;17852:9;17848:18;17841:50;17938:2;17930:6;17926:15;17920:22;17951:62;18008:3;17997:9;17993:19;17979:12;17951:62;:::i;:::-;;18062:3;18054:6;18050:16;18044:23;18086:6;18129:2;18123:3;18112:9;18108:19;18101:31;18155:53;18203:3;18192:9;18188:19;18172:14;18155:53;:::i;:::-;18141:67;;18263:3;18255:6;18251:16;18245:23;18239:3;18228:9;18224:19;18217:52;18324:3;18316:6;18312:16;18306:23;18300:3;18289:9;18285:19;18278:52;18367:3;18359:6;18355:16;18349:23;18391:3;18430:2;18425;18414:9;18410:18;18403:30;18470:2;18462:6;18458:15;18452:22;18442:32;;;18493:3;18532:2;18527;18516:9;18512:18;18505:30;18589:2;18581:6;18577:15;18571:22;18566:2;18555:9;18551:18;18544:50;;;;18611:6;18603:14;;;17692:931;;;;:::o;20568:275::-;20639:2;20633:9;20704:2;20685:13;;-1:-1:-1;;20681:27:103;20669:40;;20739:18;20724:34;;20760:22;;;20721:62;20718:2;;;20786:18;;:::i;:::-;20822:2;20815:22;20613:230;;-1:-1:-1;20613:230:103:o;20848:186::-;;20929:18;20921:6;20918:30;20915:2;;;20951:18;;:::i;:::-;-1:-1:-1;21017:2:103;20996:15;-1:-1:-1;;20992:29:103;21023:4;20988:40;;20905:129::o;21039:128::-;;21110:1;21106:6;21103:1;21100:13;21097:2;;;21116:18;;:::i;:::-;-1:-1:-1;21152:9:103;;21087:80::o;21172:168::-;;21278:1;21274;21270:6;21266:14;21263:1;21260:21;21255:1;21248:9;21241:17;21237:45;21234:2;;;21285:18;;:::i;:::-;-1:-1:-1;21325:9:103;;21224:116::o;21345:125::-;;21413:1;21410;21407:8;21404:2;;;21418:18;;:::i;:::-;-1:-1:-1;21455:9:103;;21394:76::o;21475:258::-;21547:1;21557:113;21571:6;21568:1;21565:13;21557:113;;;21647:11;;;21641:18;21628:11;;;21621:39;21593:2;21586:10;21557:113;;;21688:6;21685:1;21682:13;21679:2;;;-1:-1:-1;;21723:1:103;21705:16;;21698:27;21528:205::o;21738:136::-;;21805:5;21795:2;;21814:18;;:::i;:::-;-1:-1:-1;;;21850:18:103;;21785:89::o;21879:135::-;;-1:-1:-1;;21939:17:103;;21936:2;;;21959:18;;:::i;:::-;-1:-1:-1;22006:1:103;21995:13;;21926:88::o;22019:201::-;;22085:10;22130:2;22123:5;22119:14;22157:2;22148:7;22145:15;22142:2;;;22163:18;;:::i;:::-;22212:1;22199:15;;22065:155;-1:-1:-1;;;22065:155:103:o;22225:209::-;;22283:1;22273:2;;-1:-1:-1;;;22308:31:103;;22362:4;22359:1;22352:15;22390:4;22315:1;22380:15;22273:2;-1:-1:-1;22419:9:103;;22263:171::o;22439:127::-;22500:10;22495:3;22491:20;22488:1;22481:31;22531:4;22528:1;22521:15;22555:4;22552:1;22545:15;22571:127;22632:10;22627:3;22623:20;22620:1;22613:31;22663:4;22660:1;22653:15;22687:4;22684:1;22677:15;22703:127;22764:10;22759:3;22755:20;22752:1;22745:31;22795:4;22792:1;22785:15;22819:4;22816:1;22809:15;22835:131;-1:-1:-1;;;;;22910:31:103;;22900:42;;22890:2;;22956:1;22953;22946:12;22971:115;23060:1;23053:5;23050:12;23040:2;;23076:1;23073;23066:12"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DEFAULT_FILTER_DATA_STRUCTURE()":"7893c7bc","FULL_COLLATERALIZATION_LEVEL()":"45fe1c6d","INVESTOR_ROLE()":"76082a5e","SUM_OF_SUM_INSURED_CAP()":"be61e91e","activeBundles()":"4101b90c","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","bundleMatchesApplication((uint256,uint256,uint256,uint8,bytes,uint256,uint256,uint256,uint256,uint256),(uint8,uint256,uint256,bytes,uint256,uint256))":"86c71288","bundles()":"18442e63","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(bytes32,uint256)":"890fbf78","createBundle(bytes,uint256)":"7888a2ff","declineCallback()":"bd1fe5d0","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","getActiveBundleId(uint256)":"0676cb0e","getBalance()":"12065fe0","getBundle(uint256)":"2d0821b7","getCapacity()":"c40000d4","getCapital()":"e0032383","getCollateralizationLevel()":"54afef63","getErc20Token()":"feb1824b","getFilterDataStructure()":"3dcdde17","getFullCollateralizationLevel()":"f1d354d0","getId()":"5d1ca631","getMaximumNumberOfActiveBundles()":"7f3b6980","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getRoleAdmin(bytes32)":"248a9ca3","getState()":"1865c57d","getSumOfSumInsuredCap()":"a18aa128","getTotalValueLocked()":"b26025aa","getType()":"15dae03e","getWallet()":"13299604","grantInvestorRole(address)":"9088c119","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","lockBundle(uint256)":"a17030d5","owner()":"8da5cb5b","pauseCallback()":"d73cd992","processPolicyPayout(bytes32,uint256)":"82558906","processPolicyPremium(bytes32,uint256)":"3629c3c4","proposalCallback()":"638ce0ba","releasePolicy(bytes32)":"c3004c86","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","resumeCallback()":"a18f5ae2","revokeRole(bytes32,address)":"d547741f","setId(uint256)":"d0e0ba95","setMaximumNumberOfActiveBundles(uint256)":"652028e5","supportsInterface(bytes4)":"01ffc9a7","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unlockBundle(uint256)":"316c5348","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralization\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"activeBundles\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolBundlesAndPolicies\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolCandidateBundleAmountCheck\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolBundleMatchesPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolCollateralLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolAddress\",\"type\":\"address\"}],\"name\":\"LogRiskpoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_FILTER_DATA_STRUCTURE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_COLLATERALIZATION_LEVEL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INVESTOR_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUM_OF_SUM_INSURED_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"name\":\"bundleMatchesApplication\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialAmount\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getErc20Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFilterDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSumOfSumInsuredCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"}],\"name\":\"grantInvestorRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/AyiiRiskpool.sol\":\"AyiiRiskpool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\":{\"keccak256\":\"0xb86d781f945942220e37e1903420537fa3ad5539c0f341c4cccdfb1b11d196ee\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bb61f5c4724bcf6ece000fa46359dfabd60a91e82b8e637bf27e3028119047c\",\"dweb:/ipfs/QmWJ5zhmwCSKemq6PKhddWbbiEMsVVS9abCz5tU6s7b8f3\"]},\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Riskpool.sol\":{\"keccak256\":\"0x627c05cef03e42f2b798004db6d000d574c0edc383d185952592425895ada20e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d20ecfaf1ed6c983cd81482d982373b8d4d00f6cbe6ed0e67e78255e71c7ac86\",\"dweb:/ipfs/QmdwKC99b54yMa3rKJdwD4RjcbLgX6hkLV6SYjfgFbLi5T\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/examples/AyiiRiskpool.sol\":{\"keccak256\":\"0x09250d1fcff0f8d4c3fd1473a5846ede0bc996a817bb5d769fcb8b9f87b65717\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f8250a816d1f4a22e81c5d4473ea6e1637a5a2d2600ad168f4a6c9497ec45900\",\"dweb:/ipfs/QmV33B8Tdvkt4rrA7imx6R8SCF3HKXwN4KeVAG7jACKSh7\"]}},\"version\":1}"}},"contracts/examples/mock/ChainlinkOperator.sol":{"ChainlinkOperator":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"senders","type":"address[]"},{"indexed":false,"internalType":"address","name":"changedBy","type":"address"}],"name":"AuthorizedSendersChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"}],"name":"CancelOracleRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"specId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"requester","type":"address"},{"indexed":false,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"payment","type":"uint256"},{"indexed":false,"internalType":"address","name":"callbackAddr","type":"address"},{"indexed":false,"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"cancelExpiration","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dataVersion","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"OracleRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"requestId","type":"bytes32"}],"name":"OracleResponse","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"expiration","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"fulfillOracleRequest2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAuthorizedSenders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExpiryTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onTokenTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"payment","type":"uint256"},{"internalType":"bytes32","name":"specId","type":"bytes32"},{"internalType":"address","name":"callbackAddress","type":"address"},{"internalType":"bytes4","name":"callbackFunctionId","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"dataVersion","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"oracleRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"senders","type":"address[]"}],"name":"setAuthorizedSenders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fc48061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146101055780638da5cb5b1461010d578063a4c0ed3614610128578063ee56997b1461013b578063f2fde38b1461014e57610093565b80632408afaa1461009857806325cb5bc0146100b657806340429946146100cd5780636ae0bc76146100e2575b600080fd5b6100a0610161565b6040516100ad9190610ee2565b60405180910390f35b6100bf61012c81565b6040519081526020016100ad565b6100e06100db366004610b58565b6101c3565b005b6100f56100f0366004610d2a565b61022d565b60405190151581526020016100ad565b6100e061034e565b6000546040516001600160a01b0390911681526020016100ad565b6100e0610136366004610bf5565b610362565b6100e0610149366004610cbb565b61041f565b6100e061015c366004610b37565b610618565b606060028054806020026020016040519081016040528092919081815260200182805480156101b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161019b575b5050505050905090565b6000806101d48b8b8a8a8a8a610691565b91509150887fd8d7ecc4800d25fa53ce0372f13a416d98907a7ef3d8d3bdd79cf4fe75529c658c848d8f8c878c8c8c60405161021899989796959493929190610e07565b60405180910390a25050505050505050505050565b600061023e888888888860026107c7565b60405188907f9e9bc7616d42c2835d05ae617e508454e63b30b934be8aa932ebc125e0e58a6490600090a262061a805a10156102c15760405162461bcd60e51b815260206004820181905260248201527f4d7573742070726f7669646520636f6e73756d657220656e6f7567682067617360448201526064015b60405180910390fd5b6000866001600160a01b03168685856040516020016102e293929190610daa565b60408051601f19818403018152908290526102fc91610dce565b6000604051808303816000865af19150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b50909a9950505050505050505050565b6103566108cd565b6103606000610927565b565b8260248201528160448201526000306001600160a01b0316826040516103889190610dce565b600060405180830381855af49150503d80600081146103c3576040519150601f19603f3d011682016040523d82523d6000602084013e6103c8565b606091505b50509050806104195760405162461bcd60e51b815260206004820152601860248201527f556e61626c6520746f206372656174652072657175657374000000000000000060448201526064016102b8565b50505050565b610427610977565b6104735760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742073657420617574686f72697a65642073656e6465727300000060448201526064016102b8565b806104cf5760405162461bcd60e51b815260206004820152602660248201527f4d7573742068617665206174206c65617374203120617574686f72697a65642060448201526539b2b73232b960d11b60648201526084016102b8565b60025460005b8181101561054a576000600160006002848154811061050457634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061054281610f47565b9150506104d5565b5060005b828110156105ca57600180600086868581811061057b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906105909190610b37565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806105c281610f47565b91505061054e565b506105d760028484610a49565b507ff263cfb3e4298332e776194610cf9fdc09ccb3ada8b9aa39764d882e11fbf0a083833360405161060b93929190610e81565b60405180910390a1505050565b6106206108cd565b6001600160a01b0381166106855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b8565b61068e81610927565b50565b6040516bffffffffffffffffffffffff19606088901b16602082015260348101839052600090819060540160408051808303601f1901815291815281516020928301206000818152600390935291205490925060081b60ff19161561072f5760405162461bcd60e51b8152602060048201526014602482015273135d5cdd081d5cd94818481d5b9a5c5d5948125160621b60448201526064016102b8565b61073b61012c42610f2f565b9050600061074b8888888561099b565b905060405180604001604052808260ff1916815260200161076b866109f5565b60ff9081169091526000858152600360209081526040909120835181549490920151909216600160f81b0260089190911c6001600160f81b0319909316929092176001600160f81b031691909117905550965096945050505050565b60006107d58686868661099b565b60008881526003602052604090205490915060081b60ff19908116908216146108405760405162461bcd60e51b815260206004820152601e60248201527f506172616d7320646f206e6f74206d617463682072657175657374204944000060448201526064016102b8565b610849826109f5565b60008881526003602052604090205460ff918216600160f81b90910490911611156108b65760405162461bcd60e51b815260206004820152601860248201527f446174612076657273696f6e73206d757374206d61746368000000000000000060448201526064016102b8565b505050600093845250506003602052506040812055565b6000546001600160a01b031633146103605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60003361098c6000546001600160a01b031690565b6001600160a01b031614905090565b6040805160208082019690965260609490941b6bffffffffffffffffffffffff1916848201526001600160e01b03199290921660548401526058808401919091528151808403909101815260789092019052805191012090565b60006101008210610a415760405162461bcd60e51b81526020600482015260166024820152751b9d5b58995c881d1bdbc8189a59c81d1bc818d85cdd60521b60448201526064016102b8565b50805b919050565b828054828255906000526020600020908101928215610a9c579160200282015b82811115610a9c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190610a69565b50610aa8929150610aac565b5090565b5b80821115610aa85760008155600101610aad565b80356001600160a01b0381168114610a4457600080fd5b80356001600160e01b031981168114610a4457600080fd5b60008083601f840112610b01578182fd5b50813567ffffffffffffffff811115610b18578182fd5b602083019150836020828501011115610b3057600080fd5b9250929050565b600060208284031215610b48578081fd5b610b5182610ac1565b9392505050565b60008060008060008060008060006101008a8c031215610b76578485fd5b610b7f8a610ac1565b985060208a0135975060408a01359650610b9b60608b01610ac1565b9550610ba960808b01610ad8565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff811115610bd2578283fd5b610bde8c828d01610af0565b915080935050809150509295985092959850929598565b600080600060608486031215610c09578283fd5b610c1284610ac1565b925060208401359150604084013567ffffffffffffffff80821115610c35578283fd5b818601915086601f830112610c48578283fd5b813581811115610c5a57610c5a610f78565b604051601f8201601f19908116603f01168101908382118183101715610c8257610c82610f78565b81604052828152896020848701011115610c9a578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60008060208385031215610ccd578182fd5b823567ffffffffffffffff80821115610ce4578384fd5b818501915085601f830112610cf7578384fd5b813581811115610d05578485fd5b8660208083028501011115610d18578485fd5b60209290920196919550909350505050565b600080600080600080600060c0888a031215610d44578283fd5b8735965060208801359550610d5b60408901610ac1565b9450610d6960608901610ad8565b93506080880135925060a088013567ffffffffffffffff811115610d8b578283fd5b610d978a828b01610af0565b989b979a50959850939692959293505050565b6001600160e01b031984168152600082846004840137910160040190815292915050565b60008251815b81811015610dee5760208186018101518583015201610dd4565b81811115610dfc5782828501525b509190910192915050565b6001600160a01b038a81168252602082018a905260408201899052871660608201526001600160e01b03198616608082015260a0810185905260c0810184905261010060e0820181905281018290526000610120838582850137828401810191909152601f909201601f1916010198975050505050505050565b6040808252810183905260008460608301825b86811015610ec2576001600160a01b03610ead84610ac1565b16825260209283019290910190600101610e94565b506001600160a01b03949094166020939093019290925250909392505050565b6020808252825182820181905260009190848201906040850190845b81811015610f235783516001600160a01b031683529284019291840191600101610efe565b50909695505050505050565b60008219821115610f4257610f42610f62565b500190565b6000600019821415610f5b57610f5b610f62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220262e5ad4ad92d2986c722791cedda45946b31c84f2cd71f00eb573c7c470f5a364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A CALLER PUSH2 0x1F JUMP JUMPDEST PUSH2 0x6F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xFC4 DUP1 PUSH2 0x7E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xA4C0ED36 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0xEE56997B EQ PUSH2 0x13B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x14E JUMPI PUSH2 0x93 JUMP JUMPDEST DUP1 PUSH4 0x2408AFAA EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x25CB5BC0 EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x40429946 EQ PUSH2 0xCD JUMPI DUP1 PUSH4 0x6AE0BC76 EQ PUSH2 0xE2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x161 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBF PUSH2 0x12C DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0xDB CALLDATASIZE PUSH1 0x4 PUSH2 0xB58 JUMP JUMPDEST PUSH2 0x1C3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF5 PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0xD2A JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x34E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x136 CALLDATASIZE PUSH1 0x4 PUSH2 0xBF5 JUMP JUMPDEST PUSH2 0x362 JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x149 CALLDATASIZE PUSH1 0x4 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x41F JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x15C CALLDATASIZE PUSH1 0x4 PUSH2 0xB37 JUMP JUMPDEST PUSH2 0x618 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1D4 DUP12 DUP12 DUP11 DUP11 DUP11 DUP11 PUSH2 0x691 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH32 0xD8D7ECC4800D25FA53CE0372F13A416D98907A7EF3D8D3BDD79CF4FE75529C65 DUP13 DUP5 DUP14 DUP16 DUP13 DUP8 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD PUSH2 0x218 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x2 PUSH2 0x7C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP9 SWAP1 PUSH32 0x9E9BC7616D42C2835D05AE617E508454E63B30B934BE8AA932EBC125E0E58A64 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH3 0x61A80 GAS LT ISZERO PUSH2 0x2C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D7573742070726F7669646520636F6E73756D657220656E6F75676820676173 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2E2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x2FC SWAP2 PUSH2 0xDCE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x339 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x33E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x356 PUSH2 0x8CD JUMP JUMPDEST PUSH2 0x360 PUSH1 0x0 PUSH2 0x927 JUMP JUMPDEST JUMP JUMPDEST DUP3 PUSH1 0x24 DUP3 ADD MSTORE DUP2 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x388 SWAP2 SWAP1 PUSH2 0xDCE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3C8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x419 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E61626C6520746F2063726561746520726571756573740000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x427 PUSH2 0x977 JUMP JUMPDEST PUSH2 0x473 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F742073657420617574686F72697A65642073656E64657273000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST DUP1 PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D7573742068617665206174206C65617374203120617574686F72697A656420 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x39B2B73232B9 PUSH1 0xD1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 PUSH1 0x2 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x504 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP1 PUSH2 0x542 DUP2 PUSH2 0xF47 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x4D5 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5CA JUMPI PUSH1 0x1 DUP1 PUSH1 0x0 DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x57B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x590 SWAP2 SWAP1 PUSH2 0xB37 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP1 PUSH2 0x5C2 DUP2 PUSH2 0xF47 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x54E JUMP JUMPDEST POP PUSH2 0x5D7 PUSH1 0x2 DUP5 DUP5 PUSH2 0xA49 JUMP JUMPDEST POP PUSH32 0xF263CFB3E4298332E776194610CF9FDC09CCB3ADA8B9AA39764D882E11FBF0A0 DUP4 DUP4 CALLER PUSH1 0x40 MLOAD PUSH2 0x60B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE81 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x620 PUSH2 0x8CD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x68E DUP2 PUSH2 0x927 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP9 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP3 POP PUSH1 0x8 SHL PUSH1 0xFF NOT AND ISZERO PUSH2 0x72F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x135D5CDD081D5CD94818481D5B9A5C5D59481251 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x73B PUSH2 0x12C TIMESTAMP PUSH2 0xF2F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x74B DUP9 DUP9 DUP9 DUP6 PUSH2 0x99B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0xFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x76B DUP7 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP4 MLOAD DUP2 SLOAD SWAP5 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xF8 SHL MUL PUSH1 0x8 SWAP2 SWAP1 SWAP2 SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D5 DUP7 DUP7 DUP7 DUP7 PUSH2 0x99B JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x8 SHL PUSH1 0xFF NOT SWAP1 DUP2 AND SWAP1 DUP3 AND EQ PUSH2 0x840 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506172616D7320646F206E6F74206D6174636820726571756573742049440000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x849 DUP3 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0xF8 SHL SWAP1 SWAP2 DIV SWAP1 SWAP2 AND GT ISZERO PUSH2 0x8B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446174612076657273696F6E73206D757374206D617463680000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP POP POP PUSH1 0x0 SWAP4 DUP5 MSTORE POP POP PUSH1 0x3 PUSH1 0x20 MSTORE POP PUSH1 0x40 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x360 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x98C PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x60 SWAP5 SWAP1 SWAP5 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP5 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP3 SWAP1 SWAP3 AND PUSH1 0x54 DUP5 ADD MSTORE PUSH1 0x58 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x78 SWAP1 SWAP3 ADD SWAP1 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 LT PUSH2 0xA41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1B9D5B58995C881D1BDBC8189A59C81D1BC818D85CDD PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0xA9C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xA9C JUMPI DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 CALLDATALOAD AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0xA69 JUMP JUMPDEST POP PUSH2 0xAA8 SWAP3 SWAP2 POP PUSH2 0xAAC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xAA8 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xAAD JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xA44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB01 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB18 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xB30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB48 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xB51 DUP3 PUSH2 0xAC1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 DUP11 DUP13 SUB SLT ISZERO PUSH2 0xB76 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0xB7F DUP11 PUSH2 0xAC1 JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP7 POP PUSH2 0xB9B PUSH1 0x60 DUP12 ADD PUSH2 0xAC1 JUMP JUMPDEST SWAP6 POP PUSH2 0xBA9 PUSH1 0x80 DUP12 ADD PUSH2 0xAD8 JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP3 POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBD2 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xBDE DUP13 DUP3 DUP14 ADD PUSH2 0xAF0 JUMP JUMPDEST SWAP2 POP DUP1 SWAP4 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC09 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xC12 DUP5 PUSH2 0xAC1 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xC35 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC48 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xC5A JUMPI PUSH2 0xC5A PUSH2 0xF78 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xC82 JUMPI PUSH2 0xC82 PUSH2 0xF78 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xC9A JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY DUP6 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCCD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCE4 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCF7 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xD05 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP1 DUP4 MUL DUP6 ADD ADD GT ISZERO PUSH2 0xD18 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xD44 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH2 0xD5B PUSH1 0x40 DUP10 ADD PUSH2 0xAC1 JUMP JUMPDEST SWAP5 POP PUSH2 0xD69 PUSH1 0x60 DUP10 ADD PUSH2 0xAD8 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD8B JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xD97 DUP11 DUP3 DUP12 ADD PUSH2 0xAF0 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP5 AND DUP2 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x4 DUP5 ADD CALLDATACOPY SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xDEE JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0xDD4 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xDFC JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP11 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP10 SWAP1 MSTORE DUP8 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP7 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 PUSH2 0x120 DUP4 DUP6 DUP3 DUP6 ADD CALLDATACOPY DUP3 DUP5 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 DUP5 PUSH1 0x60 DUP4 ADD DUP3 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0xEC2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0xEAD DUP5 PUSH2 0xAC1 JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xE94 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF23 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xEFE JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xF42 JUMPI PUSH2 0xF42 PUSH2 0xF62 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0xF5B JUMPI PUSH2 0xF5B PUSH2 0xF62 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x26 0x2E GAS 0xD4 0xAD SWAP3 0xD2 SWAP9 PUSH13 0x722791CEDDA45946B31C84F2CD PUSH18 0xF00EB573C7C470F5A364736F6C6343000802 STOP CALLER ","sourceMap":"110:10794:69:-:0;;;1326:27;;;;;;;;;-1:-1:-1;936:32:41;719:10:59;936:18:41;:32::i;:::-;110:10794:69;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;110:10794:69:-;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:13228:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"240:125:103","statements":[{"nodeType":"YulAssignment","src":"250:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"272:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"259:12:103"},"nodeType":"YulFunctionCall","src":"259:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"250:5:103"}]},{"body":{"nodeType":"YulBlock","src":"343:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"352:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"355:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"345:6:103"},"nodeType":"YulFunctionCall","src":"345:12:103"},"nodeType":"YulExpressionStatement","src":"345:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"301:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"312:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"323:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"328:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"319:3:103"},"nodeType":"YulFunctionCall","src":"319:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"308:3:103"},"nodeType":"YulFunctionCall","src":"308:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"298:2:103"},"nodeType":"YulFunctionCall","src":"298:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"291:6:103"},"nodeType":"YulFunctionCall","src":"291:51:103"},"nodeType":"YulIf","src":"288:2:103"}]},"name":"abi_decode_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"219:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"230:5:103","type":""}],"src":"192:173:103"},{"body":{"nodeType":"YulBlock","src":"442:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"491:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"500:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"510:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"493:6:103"},"nodeType":"YulFunctionCall","src":"493:26:103"},"nodeType":"YulExpressionStatement","src":"493:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"470:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"478:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"466:3:103"},"nodeType":"YulFunctionCall","src":"466:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"485:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"462:3:103"},"nodeType":"YulFunctionCall","src":"462:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"455:6:103"},"nodeType":"YulFunctionCall","src":"455:35:103"},"nodeType":"YulIf","src":"452:2:103"},{"nodeType":"YulAssignment","src":"530:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"553:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"540:12:103"},"nodeType":"YulFunctionCall","src":"540:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"530:6:103"}]},{"body":{"nodeType":"YulBlock","src":"603:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"612:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"622:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"605:6:103"},"nodeType":"YulFunctionCall","src":"605:26:103"},"nodeType":"YulExpressionStatement","src":"605:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"575:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"583:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"572:2:103"},"nodeType":"YulFunctionCall","src":"572:30:103"},"nodeType":"YulIf","src":"569:2:103"},{"nodeType":"YulAssignment","src":"642:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"658:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"666:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"654:3:103"},"nodeType":"YulFunctionCall","src":"654:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"642:8:103"}]},{"body":{"nodeType":"YulBlock","src":"723:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"732:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"735:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"725:6:103"},"nodeType":"YulFunctionCall","src":"725:12:103"},"nodeType":"YulExpressionStatement","src":"725:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"694:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"702:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"690:3:103"},"nodeType":"YulFunctionCall","src":"690:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"711:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"686:3:103"},"nodeType":"YulFunctionCall","src":"686:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"718:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"683:2:103"},"nodeType":"YulFunctionCall","src":"683:39:103"},"nodeType":"YulIf","src":"680:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"405:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"413:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"421:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"431:6:103","type":""}],"src":"370:375:103"},{"body":{"nodeType":"YulBlock","src":"820:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"866:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"875:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"883:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"868:6:103"},"nodeType":"YulFunctionCall","src":"868:22:103"},"nodeType":"YulExpressionStatement","src":"868:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"841:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"850:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"837:3:103"},"nodeType":"YulFunctionCall","src":"837:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"862:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"833:3:103"},"nodeType":"YulFunctionCall","src":"833:32:103"},"nodeType":"YulIf","src":"830:2:103"},{"nodeType":"YulAssignment","src":"901:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"930:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"901:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"786:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"797:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"809:6:103","type":""}],"src":"750:196:103"},{"body":{"nodeType":"YulBlock","src":"1158:719:103","statements":[{"body":{"nodeType":"YulBlock","src":"1205:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1214:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1222:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1207:6:103"},"nodeType":"YulFunctionCall","src":"1207:22:103"},"nodeType":"YulExpressionStatement","src":"1207:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1179:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1188:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1175:3:103"},"nodeType":"YulFunctionCall","src":"1175:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1200:3:103","type":"","value":"256"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1171:3:103"},"nodeType":"YulFunctionCall","src":"1171:33:103"},"nodeType":"YulIf","src":"1168:2:103"},{"nodeType":"YulAssignment","src":"1240:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1269:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1250:18:103"},"nodeType":"YulFunctionCall","src":"1250:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1240:6:103"}]},{"nodeType":"YulAssignment","src":"1288:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1315:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1326:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1311:3:103"},"nodeType":"YulFunctionCall","src":"1311:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1298:12:103"},"nodeType":"YulFunctionCall","src":"1298:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1288:6:103"}]},{"nodeType":"YulAssignment","src":"1339:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1366:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1377:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1362:3:103"},"nodeType":"YulFunctionCall","src":"1362:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1349:12:103"},"nodeType":"YulFunctionCall","src":"1349:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1339:6:103"}]},{"nodeType":"YulAssignment","src":"1390:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1423:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1434:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1419:3:103"},"nodeType":"YulFunctionCall","src":"1419:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1400:18:103"},"nodeType":"YulFunctionCall","src":"1400:38:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1390:6:103"}]},{"nodeType":"YulAssignment","src":"1447:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1479:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1490:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1475:3:103"},"nodeType":"YulFunctionCall","src":"1475:19:103"}],"functionName":{"name":"abi_decode_bytes4","nodeType":"YulIdentifier","src":"1457:17:103"},"nodeType":"YulFunctionCall","src":"1457:38:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"1447:6:103"}]},{"nodeType":"YulAssignment","src":"1504:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1531:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1542:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1527:3:103"},"nodeType":"YulFunctionCall","src":"1527:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1514:12:103"},"nodeType":"YulFunctionCall","src":"1514:33:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"1504:6:103"}]},{"nodeType":"YulAssignment","src":"1556:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1583:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1594:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1579:3:103"},"nodeType":"YulFunctionCall","src":"1579:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1566:12:103"},"nodeType":"YulFunctionCall","src":"1566:33:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"1556:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1608:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1639:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1650:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1635:3:103"},"nodeType":"YulFunctionCall","src":"1635:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1622:12:103"},"nodeType":"YulFunctionCall","src":"1622:33:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1612:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1698:26:103","statements":[{"expression":{"arguments":[{"name":"value7","nodeType":"YulIdentifier","src":"1707:6:103"},{"name":"value7","nodeType":"YulIdentifier","src":"1715:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1700:6:103"},"nodeType":"YulFunctionCall","src":"1700:22:103"},"nodeType":"YulExpressionStatement","src":"1700:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1670:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1678:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1667:2:103"},"nodeType":"YulFunctionCall","src":"1667:30:103"},"nodeType":"YulIf","src":"1664:2:103"},{"nodeType":"YulVariableDeclaration","src":"1733:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1789:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1800:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1785:3:103"},"nodeType":"YulFunctionCall","src":"1785:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1809:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1759:25:103"},"nodeType":"YulFunctionCall","src":"1759:58:103"},"variables":[{"name":"value7_1","nodeType":"YulTypedName","src":"1737:8:103","type":""},{"name":"value8_1","nodeType":"YulTypedName","src":"1747:8:103","type":""}]},{"nodeType":"YulAssignment","src":"1826:18:103","value":{"name":"value7_1","nodeType":"YulIdentifier","src":"1836:8:103"},"variableNames":[{"name":"value7","nodeType":"YulIdentifier","src":"1826:6:103"}]},{"nodeType":"YulAssignment","src":"1853:18:103","value":{"name":"value8_1","nodeType":"YulIdentifier","src":"1863:8:103"},"variableNames":[{"name":"value8","nodeType":"YulIdentifier","src":"1853:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes32t_addresst_bytes4t_uint256t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1060:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1071:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1083:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1091:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1099:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1107:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1115:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1123:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"1131:6:103","type":""},{"name":"value7","nodeType":"YulTypedName","src":"1139:6:103","type":""},{"name":"value8","nodeType":"YulTypedName","src":"1147:6:103","type":""}],"src":"951:926:103"},{"body":{"nodeType":"YulBlock","src":"1995:995:103","statements":[{"body":{"nodeType":"YulBlock","src":"2041:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2050:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2058:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2043:6:103"},"nodeType":"YulFunctionCall","src":"2043:22:103"},"nodeType":"YulExpressionStatement","src":"2043:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2016:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2025:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2012:3:103"},"nodeType":"YulFunctionCall","src":"2012:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2037:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2008:3:103"},"nodeType":"YulFunctionCall","src":"2008:32:103"},"nodeType":"YulIf","src":"2005:2:103"},{"nodeType":"YulAssignment","src":"2076:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2105:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2086:18:103"},"nodeType":"YulFunctionCall","src":"2086:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2076:6:103"}]},{"nodeType":"YulAssignment","src":"2124:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2162:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2147:3:103"},"nodeType":"YulFunctionCall","src":"2147:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2134:12:103"},"nodeType":"YulFunctionCall","src":"2134:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2124:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2175:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2206:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2217:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2202:3:103"},"nodeType":"YulFunctionCall","src":"2202:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2189:12:103"},"nodeType":"YulFunctionCall","src":"2189:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2179:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2230:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2240:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2234:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2285:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2294:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2302:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2287:6:103"},"nodeType":"YulFunctionCall","src":"2287:22:103"},"nodeType":"YulExpressionStatement","src":"2287:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2273:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2281:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2270:2:103"},"nodeType":"YulFunctionCall","src":"2270:14:103"},"nodeType":"YulIf","src":"2267:2:103"},{"nodeType":"YulVariableDeclaration","src":"2320:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2334:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2345:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2330:3:103"},"nodeType":"YulFunctionCall","src":"2330:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2324:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2400:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2409:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2417:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2402:6:103"},"nodeType":"YulFunctionCall","src":"2402:22:103"},"nodeType":"YulExpressionStatement","src":"2402:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2379:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2383:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2375:3:103"},"nodeType":"YulFunctionCall","src":"2375:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2390:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2371:3:103"},"nodeType":"YulFunctionCall","src":"2371:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2364:6:103"},"nodeType":"YulFunctionCall","src":"2364:35:103"},"nodeType":"YulIf","src":"2361:2:103"},{"nodeType":"YulVariableDeclaration","src":"2435:26:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2458:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2445:12:103"},"nodeType":"YulFunctionCall","src":"2445:16:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2439:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2484:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2486:16:103"},"nodeType":"YulFunctionCall","src":"2486:18:103"},"nodeType":"YulExpressionStatement","src":"2486:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2476:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2480:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2473:2:103"},"nodeType":"YulFunctionCall","src":"2473:10:103"},"nodeType":"YulIf","src":"2470:2:103"},{"nodeType":"YulVariableDeclaration","src":"2515:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2529:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2525:3:103"},"nodeType":"YulFunctionCall","src":"2525:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2519:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2541:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2561:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2555:5:103"},"nodeType":"YulFunctionCall","src":"2555:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2545:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2573:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2595:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2619:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2623:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2615:3:103"},"nodeType":"YulFunctionCall","src":"2615:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"2630:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2611:3:103"},"nodeType":"YulFunctionCall","src":"2611:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"2635:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2607:3:103"},"nodeType":"YulFunctionCall","src":"2607:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"2640:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2603:3:103"},"nodeType":"YulFunctionCall","src":"2603:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2591:3:103"},"nodeType":"YulFunctionCall","src":"2591:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2577:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2703:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2705:16:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},"nodeType":"YulExpressionStatement","src":"2705:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2662:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2674:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2659:2:103"},"nodeType":"YulFunctionCall","src":"2659:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2682:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2694:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2679:2:103"},"nodeType":"YulFunctionCall","src":"2679:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2656:2:103"},"nodeType":"YulFunctionCall","src":"2656:46:103"},"nodeType":"YulIf","src":"2653:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2741:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2745:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2734:6:103"},"nodeType":"YulFunctionCall","src":"2734:22:103"},"nodeType":"YulExpressionStatement","src":"2734:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2772:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2780:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2765:6:103"},"nodeType":"YulFunctionCall","src":"2765:18:103"},"nodeType":"YulExpressionStatement","src":"2765:18:103"},{"body":{"nodeType":"YulBlock","src":"2829:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2838:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2846:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2831:6:103"},"nodeType":"YulFunctionCall","src":"2831:22:103"},"nodeType":"YulExpressionStatement","src":"2831:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2806:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2810:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2802:3:103"},"nodeType":"YulFunctionCall","src":"2802:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2815:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2798:3:103"},"nodeType":"YulFunctionCall","src":"2798:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2820:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2795:2:103"},"nodeType":"YulFunctionCall","src":"2795:33:103"},"nodeType":"YulIf","src":"2792:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2881:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2889:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2877:3:103"},"nodeType":"YulFunctionCall","src":"2877:15:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2898:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2902:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2894:3:103"},"nodeType":"YulFunctionCall","src":"2894:11:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2907:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2864:12:103"},"nodeType":"YulFunctionCall","src":"2864:46:103"},"nodeType":"YulExpressionStatement","src":"2864:46:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2934:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2942:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2930:3:103"},"nodeType":"YulFunctionCall","src":"2930:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"2947:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2926:3:103"},"nodeType":"YulFunctionCall","src":"2926:24:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2952:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2919:6:103"},"nodeType":"YulFunctionCall","src":"2919:40:103"},"nodeType":"YulExpressionStatement","src":"2919:40:103"},{"nodeType":"YulAssignment","src":"2968:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2978:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2968:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1945:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1956:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1968:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1976:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1984:6:103","type":""}],"src":"1882:1108:103"},{"body":{"nodeType":"YulBlock","src":"3100:561:103","statements":[{"body":{"nodeType":"YulBlock","src":"3146:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3155:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3163:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3148:6:103"},"nodeType":"YulFunctionCall","src":"3148:22:103"},"nodeType":"YulExpressionStatement","src":"3148:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3121:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3130:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3117:3:103"},"nodeType":"YulFunctionCall","src":"3117:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3142:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3113:3:103"},"nodeType":"YulFunctionCall","src":"3113:32:103"},"nodeType":"YulIf","src":"3110:2:103"},{"nodeType":"YulVariableDeclaration","src":"3181:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3208:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3195:12:103"},"nodeType":"YulFunctionCall","src":"3195:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3185:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3227:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3237:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3231:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3282:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3291:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3299:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3284:6:103"},"nodeType":"YulFunctionCall","src":"3284:22:103"},"nodeType":"YulExpressionStatement","src":"3284:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3270:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3278:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3267:2:103"},"nodeType":"YulFunctionCall","src":"3267:14:103"},"nodeType":"YulIf","src":"3264:2:103"},{"nodeType":"YulVariableDeclaration","src":"3317:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3331:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3342:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3327:3:103"},"nodeType":"YulFunctionCall","src":"3327:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3321:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3397:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3406:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3414:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3399:6:103"},"nodeType":"YulFunctionCall","src":"3399:22:103"},"nodeType":"YulExpressionStatement","src":"3399:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3376:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3380:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3372:3:103"},"nodeType":"YulFunctionCall","src":"3372:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3387:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3368:3:103"},"nodeType":"YulFunctionCall","src":"3368:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3361:6:103"},"nodeType":"YulFunctionCall","src":"3361:35:103"},"nodeType":"YulIf","src":"3358:2:103"},{"nodeType":"YulVariableDeclaration","src":"3432:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3459:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3446:12:103"},"nodeType":"YulFunctionCall","src":"3446:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3436:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3489:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3498:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3506:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3491:6:103"},"nodeType":"YulFunctionCall","src":"3491:22:103"},"nodeType":"YulExpressionStatement","src":"3491:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3477:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3485:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3474:2:103"},"nodeType":"YulFunctionCall","src":"3474:14:103"},"nodeType":"YulIf","src":"3471:2:103"},{"body":{"nodeType":"YulBlock","src":"3574:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3583:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3591:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3576:6:103"},"nodeType":"YulFunctionCall","src":"3576:22:103"},"nodeType":"YulExpressionStatement","src":"3576:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3538:2:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3546:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3554:2:103","type":"","value":"32"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"3542:3:103"},"nodeType":"YulFunctionCall","src":"3542:15:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3534:3:103"},"nodeType":"YulFunctionCall","src":"3534:24:103"},{"kind":"number","nodeType":"YulLiteral","src":"3560:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3530:3:103"},"nodeType":"YulFunctionCall","src":"3530:33:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3565:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3527:2:103"},"nodeType":"YulFunctionCall","src":"3527:46:103"},"nodeType":"YulIf","src":"3524:2:103"},{"nodeType":"YulAssignment","src":"3609:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3623:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3627:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3619:3:103"},"nodeType":"YulFunctionCall","src":"3619:11:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3609:6:103"}]},{"nodeType":"YulAssignment","src":"3639:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"3649:6:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3639:6:103"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3058:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3069:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3081:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3089:6:103","type":""}],"src":"2995:666:103"},{"body":{"nodeType":"YulBlock","src":"3839:609:103","statements":[{"body":{"nodeType":"YulBlock","src":"3886:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3895:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"3903:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3888:6:103"},"nodeType":"YulFunctionCall","src":"3888:22:103"},"nodeType":"YulExpressionStatement","src":"3888:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3860:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3869:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3856:3:103"},"nodeType":"YulFunctionCall","src":"3856:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3881:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3852:3:103"},"nodeType":"YulFunctionCall","src":"3852:33:103"},"nodeType":"YulIf","src":"3849:2:103"},{"nodeType":"YulAssignment","src":"3921:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3944:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3931:12:103"},"nodeType":"YulFunctionCall","src":"3931:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3921:6:103"}]},{"nodeType":"YulAssignment","src":"3963:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3990:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4001:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3986:3:103"},"nodeType":"YulFunctionCall","src":"3986:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3973:12:103"},"nodeType":"YulFunctionCall","src":"3973:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3963:6:103"}]},{"nodeType":"YulAssignment","src":"4014:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4047:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4058:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4043:3:103"},"nodeType":"YulFunctionCall","src":"4043:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"4024:18:103"},"nodeType":"YulFunctionCall","src":"4024:38:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4014:6:103"}]},{"nodeType":"YulAssignment","src":"4071:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4103:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4114:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4099:3:103"},"nodeType":"YulFunctionCall","src":"4099:18:103"}],"functionName":{"name":"abi_decode_bytes4","nodeType":"YulIdentifier","src":"4081:17:103"},"nodeType":"YulFunctionCall","src":"4081:37:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4071:6:103"}]},{"nodeType":"YulAssignment","src":"4127:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4154:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4165:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4150:3:103"},"nodeType":"YulFunctionCall","src":"4150:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4137:12:103"},"nodeType":"YulFunctionCall","src":"4137:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4127:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"4179:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4210:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4221:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4206:3:103"},"nodeType":"YulFunctionCall","src":"4206:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4193:12:103"},"nodeType":"YulFunctionCall","src":"4193:33:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4183:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4269:26:103","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"4278:6:103"},{"name":"value5","nodeType":"YulIdentifier","src":"4286:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4271:6:103"},"nodeType":"YulFunctionCall","src":"4271:22:103"},"nodeType":"YulExpressionStatement","src":"4271:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4241:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4249:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4238:2:103"},"nodeType":"YulFunctionCall","src":"4238:30:103"},"nodeType":"YulIf","src":"4235:2:103"},{"nodeType":"YulVariableDeclaration","src":"4304:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4360:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4371:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4356:3:103"},"nodeType":"YulFunctionCall","src":"4356:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4380:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"4330:25:103"},"nodeType":"YulFunctionCall","src":"4330:58:103"},"variables":[{"name":"value5_1","nodeType":"YulTypedName","src":"4308:8:103","type":""},{"name":"value6_1","nodeType":"YulTypedName","src":"4318:8:103","type":""}]},{"nodeType":"YulAssignment","src":"4397:18:103","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"4407:8:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"4397:6:103"}]},{"nodeType":"YulAssignment","src":"4424:18:103","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"4434:8:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"4424:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_addresst_bytes4t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3757:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3768:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3780:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3788:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3796:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3804:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3812:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"3820:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"3828:6:103","type":""}],"src":"3666:782:103"},{"body":{"nodeType":"YulBlock","src":"4600:147:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4617:3:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4630:2:103","type":"","value":"96"},{"name":"value0","nodeType":"YulIdentifier","src":"4634:6:103"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4626:3:103"},"nodeType":"YulFunctionCall","src":"4626:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4647:26:103","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4643:3:103"},"nodeType":"YulFunctionCall","src":"4643:31:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4622:3:103"},"nodeType":"YulFunctionCall","src":"4622:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4610:6:103"},"nodeType":"YulFunctionCall","src":"4610:66:103"},"nodeType":"YulExpressionStatement","src":"4610:66:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4696:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4701:2:103","type":"","value":"20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4692:3:103"},"nodeType":"YulFunctionCall","src":"4692:12:103"},{"name":"value1","nodeType":"YulIdentifier","src":"4706:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4685:6:103"},"nodeType":"YulFunctionCall","src":"4685:28:103"},"nodeType":"YulExpressionStatement","src":"4685:28:103"},{"nodeType":"YulAssignment","src":"4722:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4733:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4729:3:103"},"nodeType":"YulFunctionCall","src":"4729:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4722:3:103"}]}]},"name":"abi_encode_tuple_packed_t_address_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4568:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4573:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4581:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4592:3:103","type":""}],"src":"4453:294:103"},{"body":{"nodeType":"YulBlock","src":"4925:197:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4942:3:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4951:6:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4963:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4968:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4959:3:103"},"nodeType":"YulFunctionCall","src":"4959:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4947:3:103"},"nodeType":"YulFunctionCall","src":"4947:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4935:6:103"},"nodeType":"YulFunctionCall","src":"4935:46:103"},"nodeType":"YulExpressionStatement","src":"4935:46:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5007:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5012:1:103","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5003:3:103"},"nodeType":"YulFunctionCall","src":"5003:11:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5016:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5024:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4990:12:103"},"nodeType":"YulFunctionCall","src":"4990:41:103"},"nodeType":"YulExpressionStatement","src":"4990:41:103"},{"nodeType":"YulVariableDeclaration","src":"5040:34:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5058:3:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5063:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5054:3:103"},"nodeType":"YulFunctionCall","src":"5054:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"5072:1:103","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5050:3:103"},"nodeType":"YulFunctionCall","src":"5050:24:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5044:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5090:2:103"},{"name":"end","nodeType":"YulIdentifier","src":"5094:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5083:6:103"},"nodeType":"YulFunctionCall","src":"5083:15:103"},"nodeType":"YulExpressionStatement","src":"5083:15:103"},{"nodeType":"YulAssignment","src":"5107:9:103","value":{"name":"_1","nodeType":"YulIdentifier","src":"5114:2:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5107:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4885:3:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4890:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4898:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4906:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4917:3:103","type":""}],"src":"4752:370:103"},{"body":{"nodeType":"YulBlock","src":"5264:293:103","statements":[{"nodeType":"YulVariableDeclaration","src":"5274:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5294:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5288:5:103"},"nodeType":"YulFunctionCall","src":"5288:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5278:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5310:12:103","value":{"name":"end","nodeType":"YulIdentifier","src":"5319:3:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5314:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5383:77:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5408:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"5413:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5404:3:103"},"nodeType":"YulFunctionCall","src":"5404:11:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5431:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"5439:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5427:3:103"},"nodeType":"YulFunctionCall","src":"5427:14:103"},{"kind":"number","nodeType":"YulLiteral","src":"5443:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5423:3:103"},"nodeType":"YulFunctionCall","src":"5423:25:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5417:5:103"},"nodeType":"YulFunctionCall","src":"5417:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5397:6:103"},"nodeType":"YulFunctionCall","src":"5397:53:103"},"nodeType":"YulExpressionStatement","src":"5397:53:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5342:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5345:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5339:2:103"},"nodeType":"YulFunctionCall","src":"5339:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5353:21:103","statements":[{"nodeType":"YulAssignment","src":"5355:17:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5364:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"5367:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5360:3:103"},"nodeType":"YulFunctionCall","src":"5360:12:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5355:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"5335:3:103","statements":[]},"src":"5331:129:103"},{"body":{"nodeType":"YulBlock","src":"5486:33:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5499:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5504:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5495:3:103"},"nodeType":"YulFunctionCall","src":"5495:16:103"},{"name":"end","nodeType":"YulIdentifier","src":"5513:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5488:6:103"},"nodeType":"YulFunctionCall","src":"5488:29:103"},"nodeType":"YulExpressionStatement","src":"5488:29:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5475:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5478:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5472:2:103"},"nodeType":"YulFunctionCall","src":"5472:13:103"},"nodeType":"YulIf","src":"5469:2:103"},{"nodeType":"YulAssignment","src":"5528:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5539:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5544:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5535:3:103"},"nodeType":"YulFunctionCall","src":"5535:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5528:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5240:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5245:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5256:3:103","type":""}],"src":"5127:430:103"},{"body":{"nodeType":"YulBlock","src":"5763:248:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5780:3:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5785:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5773:6:103"},"nodeType":"YulFunctionCall","src":"5773:19:103"},"nodeType":"YulExpressionStatement","src":"5773:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5812:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5817:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5808:3:103"},"nodeType":"YulFunctionCall","src":"5808:12:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:2:103","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"5834:6:103"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5826:3:103"},"nodeType":"YulFunctionCall","src":"5826:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5847:26:103","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5843:3:103"},"nodeType":"YulFunctionCall","src":"5843:31:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5822:3:103"},"nodeType":"YulFunctionCall","src":"5822:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5801:6:103"},"nodeType":"YulFunctionCall","src":"5801:75:103"},"nodeType":"YulExpressionStatement","src":"5801:75:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5896:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5901:2:103","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5892:3:103"},"nodeType":"YulFunctionCall","src":"5892:12:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5910:6:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5922:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5927:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5918:3:103"},"nodeType":"YulFunctionCall","src":"5918:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5906:3:103"},"nodeType":"YulFunctionCall","src":"5906:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5885:6:103"},"nodeType":"YulFunctionCall","src":"5885:55:103"},"nodeType":"YulExpressionStatement","src":"5885:55:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5960:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5965:2:103","type":"","value":"56"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5956:3:103"},"nodeType":"YulFunctionCall","src":"5956:12:103"},{"name":"value3","nodeType":"YulIdentifier","src":"5970:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5949:6:103"},"nodeType":"YulFunctionCall","src":"5949:28:103"},"nodeType":"YulExpressionStatement","src":"5949:28:103"},{"nodeType":"YulAssignment","src":"5986:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5997:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"6002:2:103","type":"","value":"88"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5993:3:103"},"nodeType":"YulFunctionCall","src":"5993:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5986:3:103"}]}]},"name":"abi_encode_tuple_packed_t_uint256_t_address_t_bytes4_t_uint256__to_t_uint256_t_address_t_bytes4_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5715:3:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5720:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5728:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5736:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5744:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5755:3:103","type":""}],"src":"5562:449:103"},{"body":{"nodeType":"YulBlock","src":"6117:102:103","statements":[{"nodeType":"YulAssignment","src":"6127:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6139:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6150:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6135:3:103"},"nodeType":"YulFunctionCall","src":"6135:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6127:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6169:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6184:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6200:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6205:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6196:3:103"},"nodeType":"YulFunctionCall","src":"6196:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6209:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6192:3:103"},"nodeType":"YulFunctionCall","src":"6192:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6180:3:103"},"nodeType":"YulFunctionCall","src":"6180:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6162:6:103"},"nodeType":"YulFunctionCall","src":"6162:51:103"},"nodeType":"YulExpressionStatement","src":"6162:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6086:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6097:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6108:4:103","type":""}],"src":"6016:203:103"},{"body":{"nodeType":"YulBlock","src":"6547:694:103","statements":[{"nodeType":"YulVariableDeclaration","src":"6557:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6567:3:103","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6561:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6579:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6597:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6602:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6593:3:103"},"nodeType":"YulFunctionCall","src":"6593:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6606:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6589:3:103"},"nodeType":"YulFunctionCall","src":"6589:19:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6583:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6624:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6639:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6647:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6635:3:103"},"nodeType":"YulFunctionCall","src":"6635:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6617:6:103"},"nodeType":"YulFunctionCall","src":"6617:34:103"},"nodeType":"YulExpressionStatement","src":"6617:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6682:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6667:3:103"},"nodeType":"YulFunctionCall","src":"6667:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6687:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6660:6:103"},"nodeType":"YulFunctionCall","src":"6660:34:103"},"nodeType":"YulExpressionStatement","src":"6660:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6714:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6725:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6710:3:103"},"nodeType":"YulFunctionCall","src":"6710:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6730:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6703:6:103"},"nodeType":"YulFunctionCall","src":"6703:34:103"},"nodeType":"YulExpressionStatement","src":"6703:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6757:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6768:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6753:3:103"},"nodeType":"YulFunctionCall","src":"6753:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6777:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6785:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6773:3:103"},"nodeType":"YulFunctionCall","src":"6773:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6746:6:103"},"nodeType":"YulFunctionCall","src":"6746:43:103"},"nodeType":"YulExpressionStatement","src":"6746:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6809:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6820:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6805:3:103"},"nodeType":"YulFunctionCall","src":"6805:19:103"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6830:6:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6842:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6847:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6838:3:103"},"nodeType":"YulFunctionCall","src":"6838:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6826:3:103"},"nodeType":"YulFunctionCall","src":"6826:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6798:6:103"},"nodeType":"YulFunctionCall","src":"6798:62:103"},"nodeType":"YulExpressionStatement","src":"6798:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6880:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6891:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6876:3:103"},"nodeType":"YulFunctionCall","src":"6876:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"6897:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6869:6:103"},"nodeType":"YulFunctionCall","src":"6869:35:103"},"nodeType":"YulExpressionStatement","src":"6869:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6924:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6935:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6920:3:103"},"nodeType":"YulFunctionCall","src":"6920:19:103"},{"name":"value6","nodeType":"YulIdentifier","src":"6941:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6913:6:103"},"nodeType":"YulFunctionCall","src":"6913:35:103"},"nodeType":"YulExpressionStatement","src":"6913:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6968:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6979:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6964:3:103"},"nodeType":"YulFunctionCall","src":"6964:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6985:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6957:6:103"},"nodeType":"YulFunctionCall","src":"6957:31:103"},"nodeType":"YulExpressionStatement","src":"6957:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7008:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7019:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7004:3:103"},"nodeType":"YulFunctionCall","src":"7004:18:103"},{"name":"value8","nodeType":"YulIdentifier","src":"7024:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6997:6:103"},"nodeType":"YulFunctionCall","src":"6997:34:103"},"nodeType":"YulExpressionStatement","src":"6997:34:103"},{"nodeType":"YulVariableDeclaration","src":"7040:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7050:3:103","type":"","value":"288"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"7044:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7079:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"7090:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7075:3:103"},"nodeType":"YulFunctionCall","src":"7075:18:103"},{"name":"value7","nodeType":"YulIdentifier","src":"7095:6:103"},{"name":"value8","nodeType":"YulIdentifier","src":"7103:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"7062:12:103"},"nodeType":"YulFunctionCall","src":"7062:48:103"},"nodeType":"YulExpressionStatement","src":"7062:48:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7134:9:103"},{"name":"value8","nodeType":"YulIdentifier","src":"7145:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7130:3:103"},"nodeType":"YulFunctionCall","src":"7130:22:103"},{"name":"_3","nodeType":"YulIdentifier","src":"7154:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7126:3:103"},"nodeType":"YulFunctionCall","src":"7126:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"7159:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7119:6:103"},"nodeType":"YulFunctionCall","src":"7119:45:103"},"nodeType":"YulExpressionStatement","src":"7119:45:103"},{"nodeType":"YulAssignment","src":"7173:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7189:9:103"},{"arguments":[{"arguments":[{"name":"value8","nodeType":"YulIdentifier","src":"7208:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7216:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7204:3:103"},"nodeType":"YulFunctionCall","src":"7204:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7225:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7221:3:103"},"nodeType":"YulFunctionCall","src":"7221:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7200:3:103"},"nodeType":"YulFunctionCall","src":"7200:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7185:3:103"},"nodeType":"YulFunctionCall","src":"7185:45:103"},{"name":"_3","nodeType":"YulIdentifier","src":"7232:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7181:3:103"},"nodeType":"YulFunctionCall","src":"7181:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7173:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_uint256_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_address_t_bytes32_t_uint256_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6452:9:103","type":""},{"name":"value8","nodeType":"YulTypedName","src":"6463:6:103","type":""},{"name":"value7","nodeType":"YulTypedName","src":"6471:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"6479:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6487:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6495:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6503:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6511:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6519:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6527:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6538:4:103","type":""}],"src":"6224:1017:103"},{"body":{"nodeType":"YulBlock","src":"7435:555:103","statements":[{"nodeType":"YulVariableDeclaration","src":"7445:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7474:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7459:3:103"},"nodeType":"YulFunctionCall","src":"7459:18:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"7449:6:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7493:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7504:2:103","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7486:6:103"},"nodeType":"YulFunctionCall","src":"7486:21:103"},"nodeType":"YulExpressionStatement","src":"7486:21:103"},{"nodeType":"YulVariableDeclaration","src":"7516:17:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"7527:6:103"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"7520:3:103","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"7549:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7557:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7542:6:103"},"nodeType":"YulFunctionCall","src":"7542:22:103"},"nodeType":"YulExpressionStatement","src":"7542:22:103"},{"nodeType":"YulAssignment","src":"7573:25:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7584:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7595:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7580:3:103"},"nodeType":"YulFunctionCall","src":"7580:18:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7573:3:103"}]},{"nodeType":"YulVariableDeclaration","src":"7607:20:103","value":{"name":"value0","nodeType":"YulIdentifier","src":"7621:6:103"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"7611:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7636:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"7645:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"7640:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7707:186:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7728:3:103"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7756:6:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"7737:18:103"},"nodeType":"YulFunctionCall","src":"7737:26:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7773:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7778:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7769:3:103"},"nodeType":"YulFunctionCall","src":"7769:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7782:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7765:3:103"},"nodeType":"YulFunctionCall","src":"7765:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7733:3:103"},"nodeType":"YulFunctionCall","src":"7733:52:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7721:6:103"},"nodeType":"YulFunctionCall","src":"7721:65:103"},"nodeType":"YulExpressionStatement","src":"7721:65:103"},{"nodeType":"YulVariableDeclaration","src":"7799:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7809:4:103","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7803:2:103","type":""}]},{"nodeType":"YulAssignment","src":"7826:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7837:3:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7842:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7833:3:103"},"nodeType":"YulFunctionCall","src":"7833:12:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"7826:3:103"}]},{"nodeType":"YulAssignment","src":"7858:25:103","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7872:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7868:3:103"},"nodeType":"YulFunctionCall","src":"7868:15:103"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"7858:6:103"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7669:1:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7672:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7666:2:103"},"nodeType":"YulFunctionCall","src":"7666:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"7680:18:103","statements":[{"nodeType":"YulAssignment","src":"7682:14:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"7691:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"7694:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7687:3:103"},"nodeType":"YulFunctionCall","src":"7687:9:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"7682:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"7662:3:103","statements":[]},"src":"7658:235:103"},{"nodeType":"YulAssignment","src":"7902:11:103","value":{"name":"pos","nodeType":"YulIdentifier","src":"7910:3:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7902:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7933:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7944:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7929:3:103"},"nodeType":"YulFunctionCall","src":"7929:20:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7955:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7971:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7976:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7967:3:103"},"nodeType":"YulFunctionCall","src":"7967:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7980:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7963:3:103"},"nodeType":"YulFunctionCall","src":"7963:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7951:3:103"},"nodeType":"YulFunctionCall","src":"7951:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7922:6:103"},"nodeType":"YulFunctionCall","src":"7922:62:103"},"nodeType":"YulExpressionStatement","src":"7922:62:103"}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_address__to_t_array$_t_address_$dyn_memory_ptr_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7388:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7399:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7407:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7415:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7426:4:103","type":""}],"src":"7246:744:103"},{"body":{"nodeType":"YulBlock","src":"8146:510:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8156:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8166:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8160:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8177:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8195:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8206:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8191:3:103"},"nodeType":"YulFunctionCall","src":"8191:18:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"8181:6:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8225:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8236:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8218:6:103"},"nodeType":"YulFunctionCall","src":"8218:21:103"},"nodeType":"YulExpressionStatement","src":"8218:21:103"},{"nodeType":"YulVariableDeclaration","src":"8248:17:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"8259:6:103"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"8252:3:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8274:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8294:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8288:5:103"},"nodeType":"YulFunctionCall","src":"8288:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8278:6:103","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"8317:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"8325:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8310:6:103"},"nodeType":"YulFunctionCall","src":"8310:22:103"},"nodeType":"YulExpressionStatement","src":"8310:22:103"},{"nodeType":"YulAssignment","src":"8341:25:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8363:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8348:3:103"},"nodeType":"YulFunctionCall","src":"8348:18:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"8341:3:103"}]},{"nodeType":"YulVariableDeclaration","src":"8375:29:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8393:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8401:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8389:3:103"},"nodeType":"YulFunctionCall","src":"8389:15:103"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"8379:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8413:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"8422:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"8417:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8484:146:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8505:3:103"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"8520:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8514:5:103"},"nodeType":"YulFunctionCall","src":"8514:13:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8537:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8542:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8533:3:103"},"nodeType":"YulFunctionCall","src":"8533:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"8546:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8529:3:103"},"nodeType":"YulFunctionCall","src":"8529:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8510:3:103"},"nodeType":"YulFunctionCall","src":"8510:39:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8498:6:103"},"nodeType":"YulFunctionCall","src":"8498:52:103"},"nodeType":"YulExpressionStatement","src":"8498:52:103"},{"nodeType":"YulAssignment","src":"8563:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8574:3:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8579:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8570:3:103"},"nodeType":"YulFunctionCall","src":"8570:12:103"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"8563:3:103"}]},{"nodeType":"YulAssignment","src":"8595:25:103","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"8609:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8617:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8605:3:103"},"nodeType":"YulFunctionCall","src":"8605:15:103"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"8595:6:103"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8446:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"8449:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8443:2:103"},"nodeType":"YulFunctionCall","src":"8443:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8457:18:103","statements":[{"nodeType":"YulAssignment","src":"8459:14:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8468:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"8471:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8464:3:103"},"nodeType":"YulFunctionCall","src":"8464:9:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"8459:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"8439:3:103","statements":[]},"src":"8435:195:103"},{"nodeType":"YulAssignment","src":"8639:11:103","value":{"name":"pos","nodeType":"YulIdentifier","src":"8647:3:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8639:4:103"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8115:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8126:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8137:4:103","type":""}],"src":"7995:661:103"},{"body":{"nodeType":"YulBlock","src":"8756:92:103","statements":[{"nodeType":"YulAssignment","src":"8766:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8778:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8789:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8774:3:103"},"nodeType":"YulFunctionCall","src":"8774:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8766:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8808:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8833:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8826:6:103"},"nodeType":"YulFunctionCall","src":"8826:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8819:6:103"},"nodeType":"YulFunctionCall","src":"8819:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8801:6:103"},"nodeType":"YulFunctionCall","src":"8801:41:103"},"nodeType":"YulExpressionStatement","src":"8801:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8725:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8736:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8747:4:103","type":""}],"src":"8661:187:103"},{"body":{"nodeType":"YulBlock","src":"9027:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9044:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9055:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9037:6:103"},"nodeType":"YulFunctionCall","src":"9037:21:103"},"nodeType":"YulExpressionStatement","src":"9037:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9089:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9074:3:103"},"nodeType":"YulFunctionCall","src":"9074:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9094:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9067:6:103"},"nodeType":"YulFunctionCall","src":"9067:30:103"},"nodeType":"YulExpressionStatement","src":"9067:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9117:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9128:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9113:3:103"},"nodeType":"YulFunctionCall","src":"9113:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9133:34:103","type":"","value":"Must have at least 1 authorized "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9106:6:103"},"nodeType":"YulFunctionCall","src":"9106:62:103"},"nodeType":"YulExpressionStatement","src":"9106:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9188:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9199:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9184:3:103"},"nodeType":"YulFunctionCall","src":"9184:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9204:8:103","type":"","value":"sender"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9177:6:103"},"nodeType":"YulFunctionCall","src":"9177:36:103"},"nodeType":"YulExpressionStatement","src":"9177:36:103"},{"nodeType":"YulAssignment","src":"9222:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9234:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9245:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9230:3:103"},"nodeType":"YulFunctionCall","src":"9230:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9222:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_14acbd13c311ce77adbf2abb2c29118807e2efa37eb8080b0a33366f8bd4c4af__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9004:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9018:4:103","type":""}],"src":"8853:402:103"},{"body":{"nodeType":"YulBlock","src":"9434:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9451:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9462:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9444:6:103"},"nodeType":"YulFunctionCall","src":"9444:21:103"},"nodeType":"YulExpressionStatement","src":"9444:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9485:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9496:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9481:3:103"},"nodeType":"YulFunctionCall","src":"9481:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9501:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9474:6:103"},"nodeType":"YulFunctionCall","src":"9474:30:103"},"nodeType":"YulExpressionStatement","src":"9474:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9524:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9535:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9520:3:103"},"nodeType":"YulFunctionCall","src":"9520:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9540:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9513:6:103"},"nodeType":"YulFunctionCall","src":"9513:62:103"},"nodeType":"YulExpressionStatement","src":"9513:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9595:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9606:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9591:3:103"},"nodeType":"YulFunctionCall","src":"9591:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9611:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9584:6:103"},"nodeType":"YulFunctionCall","src":"9584:36:103"},"nodeType":"YulExpressionStatement","src":"9584:36:103"},{"nodeType":"YulAssignment","src":"9629:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9641:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9652:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9637:3:103"},"nodeType":"YulFunctionCall","src":"9637:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9629:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9411:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9425:4:103","type":""}],"src":"9260:402:103"},{"body":{"nodeType":"YulBlock","src":"9841:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9858:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9869:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9851:6:103"},"nodeType":"YulFunctionCall","src":"9851:21:103"},"nodeType":"YulExpressionStatement","src":"9851:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9903:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9888:3:103"},"nodeType":"YulFunctionCall","src":"9888:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9908:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9881:6:103"},"nodeType":"YulFunctionCall","src":"9881:30:103"},"nodeType":"YulExpressionStatement","src":"9881:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9931:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9942:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9927:3:103"},"nodeType":"YulFunctionCall","src":"9927:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9947:31:103","type":"","value":"Cannot set authorized senders"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9920:6:103"},"nodeType":"YulFunctionCall","src":"9920:59:103"},"nodeType":"YulExpressionStatement","src":"9920:59:103"},{"nodeType":"YulAssignment","src":"9988:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10000:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10011:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9996:3:103"},"nodeType":"YulFunctionCall","src":"9996:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9988:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_337562cc5e507e68e993a2940bfc6a29858c6f26ee0c10db449328584e3eb567__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9818:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9832:4:103","type":""}],"src":"9667:353:103"},{"body":{"nodeType":"YulBlock","src":"10199:174:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10227:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10209:6:103"},"nodeType":"YulFunctionCall","src":"10209:21:103"},"nodeType":"YulExpressionStatement","src":"10209:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10261:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10246:3:103"},"nodeType":"YulFunctionCall","src":"10246:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10266:2:103","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10239:6:103"},"nodeType":"YulFunctionCall","src":"10239:30:103"},"nodeType":"YulExpressionStatement","src":"10239:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10289:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10300:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10285:3:103"},"nodeType":"YulFunctionCall","src":"10285:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10305:26:103","type":"","value":"Data versions must match"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10278:6:103"},"nodeType":"YulFunctionCall","src":"10278:54:103"},"nodeType":"YulExpressionStatement","src":"10278:54:103"},{"nodeType":"YulAssignment","src":"10341:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10353:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10364:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10349:3:103"},"nodeType":"YulFunctionCall","src":"10349:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10341:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_53dd8c2d44f916f031150a73e1eba6048d8d6f765952814af0ca50ecb04aba23__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10176:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10190:4:103","type":""}],"src":"10025:348:103"},{"body":{"nodeType":"YulBlock","src":"10552:174:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10580:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10562:6:103"},"nodeType":"YulFunctionCall","src":"10562:21:103"},"nodeType":"YulExpressionStatement","src":"10562:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10614:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10599:3:103"},"nodeType":"YulFunctionCall","src":"10599:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10619:2:103","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10592:6:103"},"nodeType":"YulFunctionCall","src":"10592:30:103"},"nodeType":"YulExpressionStatement","src":"10592:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10653:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10638:3:103"},"nodeType":"YulFunctionCall","src":"10638:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10658:26:103","type":"","value":"Unable to create request"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10631:6:103"},"nodeType":"YulFunctionCall","src":"10631:54:103"},"nodeType":"YulExpressionStatement","src":"10631:54:103"},{"nodeType":"YulAssignment","src":"10694:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10706:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10717:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10702:3:103"},"nodeType":"YulFunctionCall","src":"10702:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10694:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7c77c8323757c7c6dd2b21d1591cb61b26bb567563048742ae07b24e5b659c50__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10529:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10543:4:103","type":""}],"src":"10378:348:103"},{"body":{"nodeType":"YulBlock","src":"10905:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10922:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10933:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10915:6:103"},"nodeType":"YulFunctionCall","src":"10915:21:103"},"nodeType":"YulExpressionStatement","src":"10915:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10956:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10967:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10952:3:103"},"nodeType":"YulFunctionCall","src":"10952:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10972:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10945:6:103"},"nodeType":"YulFunctionCall","src":"10945:30:103"},"nodeType":"YulExpressionStatement","src":"10945:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10995:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11006:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10991:3:103"},"nodeType":"YulFunctionCall","src":"10991:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11011:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10984:6:103"},"nodeType":"YulFunctionCall","src":"10984:62:103"},"nodeType":"YulExpressionStatement","src":"10984:62:103"},{"nodeType":"YulAssignment","src":"11055:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11067:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11078:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11063:3:103"},"nodeType":"YulFunctionCall","src":"11063:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11055:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10882:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10896:4:103","type":""}],"src":"10731:356:103"},{"body":{"nodeType":"YulBlock","src":"11266:170:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11294:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11276:6:103"},"nodeType":"YulFunctionCall","src":"11276:21:103"},"nodeType":"YulExpressionStatement","src":"11276:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11317:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11328:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11313:3:103"},"nodeType":"YulFunctionCall","src":"11313:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11333:2:103","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11306:6:103"},"nodeType":"YulFunctionCall","src":"11306:30:103"},"nodeType":"YulExpressionStatement","src":"11306:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11356:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11367:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11352:3:103"},"nodeType":"YulFunctionCall","src":"11352:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11372:22:103","type":"","value":"Must use a unique ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11345:6:103"},"nodeType":"YulFunctionCall","src":"11345:50:103"},"nodeType":"YulExpressionStatement","src":"11345:50:103"},{"nodeType":"YulAssignment","src":"11404:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11427:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11412:3:103"},"nodeType":"YulFunctionCall","src":"11412:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11404:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_da89408418f1aa3860811d2e64085e2b94d33f2815f2070010f4d0def719e723__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11243:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11257:4:103","type":""}],"src":"11092:344:103"},{"body":{"nodeType":"YulBlock","src":"11615:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11632:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11643:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11625:6:103"},"nodeType":"YulFunctionCall","src":"11625:21:103"},"nodeType":"YulExpressionStatement","src":"11625:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11666:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11677:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11662:3:103"},"nodeType":"YulFunctionCall","src":"11662:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11682:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11655:6:103"},"nodeType":"YulFunctionCall","src":"11655:30:103"},"nodeType":"YulExpressionStatement","src":"11655:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11705:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11716:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11701:3:103"},"nodeType":"YulFunctionCall","src":"11701:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11721:32:103","type":"","value":"Params do not match request ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11694:6:103"},"nodeType":"YulFunctionCall","src":"11694:60:103"},"nodeType":"YulExpressionStatement","src":"11694:60:103"},{"nodeType":"YulAssignment","src":"11763:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11775:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11786:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11771:3:103"},"nodeType":"YulFunctionCall","src":"11771:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11763:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e12b50eea9311b443c52ff0775ecb76e354715072acf3c2225436432557396ee__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11592:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11606:4:103","type":""}],"src":"11441:354:103"},{"body":{"nodeType":"YulBlock","src":"11974:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11991:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12002:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11984:6:103"},"nodeType":"YulFunctionCall","src":"11984:21:103"},"nodeType":"YulExpressionStatement","src":"11984:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12025:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12036:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12021:3:103"},"nodeType":"YulFunctionCall","src":"12021:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12041:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12014:6:103"},"nodeType":"YulFunctionCall","src":"12014:30:103"},"nodeType":"YulExpressionStatement","src":"12014:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12075:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12060:3:103"},"nodeType":"YulFunctionCall","src":"12060:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12080:34:103","type":"","value":"Must provide consumer enough gas"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12053:6:103"},"nodeType":"YulFunctionCall","src":"12053:62:103"},"nodeType":"YulExpressionStatement","src":"12053:62:103"},{"nodeType":"YulAssignment","src":"12124:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12136:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12147:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12132:3:103"},"nodeType":"YulFunctionCall","src":"12132:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12124:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e41e236f8c707f430128aec8d4f13fd0193750a557f2c094e8feda34850363f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11951:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11965:4:103","type":""}],"src":"11800:356:103"},{"body":{"nodeType":"YulBlock","src":"12335:172:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12363:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12345:6:103"},"nodeType":"YulFunctionCall","src":"12345:21:103"},"nodeType":"YulExpressionStatement","src":"12345:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12397:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12382:3:103"},"nodeType":"YulFunctionCall","src":"12382:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12402:2:103","type":"","value":"22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12375:6:103"},"nodeType":"YulFunctionCall","src":"12375:30:103"},"nodeType":"YulExpressionStatement","src":"12375:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12425:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12436:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12421:3:103"},"nodeType":"YulFunctionCall","src":"12421:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12441:24:103","type":"","value":"number too big to cast"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12414:6:103"},"nodeType":"YulFunctionCall","src":"12414:52:103"},"nodeType":"YulExpressionStatement","src":"12414:52:103"},{"nodeType":"YulAssignment","src":"12475:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12487:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12498:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12483:3:103"},"nodeType":"YulFunctionCall","src":"12483:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12475:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ef169b566e22a9ea10ec54af0f17be495060a51a062291400ead41912ab09c45__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12312:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12326:4:103","type":""}],"src":"12161:346:103"},{"body":{"nodeType":"YulBlock","src":"12613:76:103","statements":[{"nodeType":"YulAssignment","src":"12623:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12635:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12646:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12631:3:103"},"nodeType":"YulFunctionCall","src":"12631:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12623:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12665:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12676:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12658:6:103"},"nodeType":"YulFunctionCall","src":"12658:25:103"},"nodeType":"YulExpressionStatement","src":"12658:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12582:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12593:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12604:4:103","type":""}],"src":"12512:177:103"},{"body":{"nodeType":"YulBlock","src":"12742:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"12769:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12771:16:103"},"nodeType":"YulFunctionCall","src":"12771:18:103"},"nodeType":"YulExpressionStatement","src":"12771:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12758:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12765:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12761:3:103"},"nodeType":"YulFunctionCall","src":"12761:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12755:2:103"},"nodeType":"YulFunctionCall","src":"12755:13:103"},"nodeType":"YulIf","src":"12752:2:103"},{"nodeType":"YulAssignment","src":"12800:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12811:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"12814:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12807:3:103"},"nodeType":"YulFunctionCall","src":"12807:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"12800:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12725:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"12728:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12734:3:103","type":""}],"src":"12694:128:103"},{"body":{"nodeType":"YulBlock","src":"12874:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"12905:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12907:16:103"},"nodeType":"YulFunctionCall","src":"12907:18:103"},"nodeType":"YulExpressionStatement","src":"12907:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12890:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12901:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12897:3:103"},"nodeType":"YulFunctionCall","src":"12897:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12887:2:103"},"nodeType":"YulFunctionCall","src":"12887:17:103"},"nodeType":"YulIf","src":"12884:2:103"},{"nodeType":"YulAssignment","src":"12936:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12947:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"12954:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12943:3:103"},"nodeType":"YulFunctionCall","src":"12943:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12936:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12856:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"12866:3:103","type":""}],"src":"12827:135:103"},{"body":{"nodeType":"YulBlock","src":"12999:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13016:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13023:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13028:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13019:3:103"},"nodeType":"YulFunctionCall","src":"13019:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13009:6:103"},"nodeType":"YulFunctionCall","src":"13009:31:103"},"nodeType":"YulExpressionStatement","src":"13009:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13056:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13059:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13049:6:103"},"nodeType":"YulFunctionCall","src":"13049:15:103"},"nodeType":"YulExpressionStatement","src":"13049:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13080:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13083:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13073:6:103"},"nodeType":"YulFunctionCall","src":"13073:15:103"},"nodeType":"YulExpressionStatement","src":"13073:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"12967:127:103"},{"body":{"nodeType":"YulBlock","src":"13131:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13148:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13155:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13160:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13151:3:103"},"nodeType":"YulFunctionCall","src":"13151:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13141:6:103"},"nodeType":"YulFunctionCall","src":"13141:31:103"},"nodeType":"YulExpressionStatement","src":"13141:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13188:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13191:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13181:6:103"},"nodeType":"YulFunctionCall","src":"13181:15:103"},"nodeType":"YulExpressionStatement","src":"13181:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13212:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13215:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13205:6:103"},"nodeType":"YulFunctionCall","src":"13205:15:103"},"nodeType":"YulExpressionStatement","src":"13205:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"13099:127:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_bytes4(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_uint256t_bytes32t_addresst_bytes4t_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8\n {\n if slt(sub(dataEnd, headStart), 256) { revert(value4, value4) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := abi_decode_address(add(headStart, 96))\n value4 := abi_decode_bytes4(add(headStart, 128))\n value5 := calldataload(add(headStart, 160))\n value6 := calldataload(add(headStart, 192))\n let offset := calldataload(add(headStart, 224))\n if gt(offset, 0xffffffffffffffff) { revert(value7, value7) }\n let value7_1, value8_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value7 := value7_1\n value8 := value8_1\n }\n function abi_decode_tuple_t_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value2, value2) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value2, value2) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value2, value2) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), value2)\n value2 := memPtr\n }\n function abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value0, value0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value0, value0) }\n if gt(add(add(_2, mul(length, 32)), 32), dataEnd) { revert(value0, value0) }\n value0 := add(_2, 32)\n value1 := length\n }\n function abi_decode_tuple_t_bytes32t_uint256t_addresst_bytes4t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 192) { revert(value4, value4) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := abi_decode_address(add(headStart, 64))\n value3 := abi_decode_bytes4(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n let offset := calldataload(add(headStart, 160))\n if gt(offset, 0xffffffffffffffff) { revert(value5, value5) }\n let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value5 := value5_1\n value6 := value6_1\n }\n function abi_encode_tuple_packed_t_address_t_uint256__to_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, and(shl(96, value0), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 20), value1)\n end := add(pos, 52)\n }\n function abi_encode_tuple_packed_t_bytes4_t_bytes_calldata_ptr__to_t_bytes4_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, and(value0, shl(224, 0xffffffff)))\n calldatacopy(add(pos, 4), value1, value2)\n let _1 := add(add(pos, value2), 4)\n mstore(_1, end)\n end := _1\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n let i := end\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n mstore(add(pos, i), mload(add(add(value0, i), 0x20)))\n }\n if gt(i, length) { mstore(add(pos, length), end) }\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_uint256_t_address_t_bytes4_t_uint256__to_t_uint256_t_address_t_bytes4_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 52), and(value2, shl(224, 0xffffffff)))\n mstore(add(pos, 56), value3)\n end := add(pos, 88)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_bytes32_t_uint256_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_address_t_bytes32_t_uint256_t_address_t_bytes4_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := 256\n let _2 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _2))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _2))\n mstore(add(headStart, 128), and(value4, shl(224, 0xffffffff)))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), _1)\n mstore(add(headStart, _1), value8)\n let _3 := 288\n calldatacopy(add(headStart, _3), value7, value8)\n mstore(add(add(headStart, value8), _3), tail)\n tail := add(add(headStart, and(add(value8, 31), not(31))), _3)\n }\n function abi_encode_tuple_t_array$_t_address_$dyn_calldata_ptr_t_address__to_t_array$_t_address_$dyn_memory_ptr_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 64)\n mstore(headStart, 64)\n let pos := tail_1\n mstore(tail_1, value1)\n pos := add(headStart, 96)\n let srcPtr := value0\n let i := tail\n for { } lt(i, value1) { i := add(i, 1) }\n {\n mstore(pos, and(abi_decode_address(srcPtr), sub(shl(160, 1), 1)))\n let _1 := 0x20\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n mstore(add(headStart, 0x20), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_stringliteral_14acbd13c311ce77adbf2abb2c29118807e2efa37eb8080b0a33366f8bd4c4af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Must have at least 1 authorized \")\n mstore(add(headStart, 96), \"sender\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_337562cc5e507e68e993a2940bfc6a29858c6f26ee0c10db449328584e3eb567__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Cannot set authorized senders\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_53dd8c2d44f916f031150a73e1eba6048d8d6f765952814af0ca50ecb04aba23__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Data versions must match\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7c77c8323757c7c6dd2b21d1591cb61b26bb567563048742ae07b24e5b659c50__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Unable to create request\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_da89408418f1aa3860811d2e64085e2b94d33f2815f2070010f4d0def719e723__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Must use a unique ID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_e12b50eea9311b443c52ff0775ecb76e354715072acf3c2225436432557396ee__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"Params do not match request ID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_e41e236f8c707f430128aec8d4f13fd0193750a557f2c094e8feda34850363f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Must provide consumer enough gas\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ef169b566e22a9ea10ec54af0f17be495060a51a062291400ead41912ab09c45__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 22)\n mstore(add(headStart, 64), \"number too big to cast\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146101055780638da5cb5b1461010d578063a4c0ed3614610128578063ee56997b1461013b578063f2fde38b1461014e57610093565b80632408afaa1461009857806325cb5bc0146100b657806340429946146100cd5780636ae0bc76146100e2575b600080fd5b6100a0610161565b6040516100ad9190610ee2565b60405180910390f35b6100bf61012c81565b6040519081526020016100ad565b6100e06100db366004610b58565b6101c3565b005b6100f56100f0366004610d2a565b61022d565b60405190151581526020016100ad565b6100e061034e565b6000546040516001600160a01b0390911681526020016100ad565b6100e0610136366004610bf5565b610362565b6100e0610149366004610cbb565b61041f565b6100e061015c366004610b37565b610618565b606060028054806020026020016040519081016040528092919081815260200182805480156101b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161019b575b5050505050905090565b6000806101d48b8b8a8a8a8a610691565b91509150887fd8d7ecc4800d25fa53ce0372f13a416d98907a7ef3d8d3bdd79cf4fe75529c658c848d8f8c878c8c8c60405161021899989796959493929190610e07565b60405180910390a25050505050505050505050565b600061023e888888888860026107c7565b60405188907f9e9bc7616d42c2835d05ae617e508454e63b30b934be8aa932ebc125e0e58a6490600090a262061a805a10156102c15760405162461bcd60e51b815260206004820181905260248201527f4d7573742070726f7669646520636f6e73756d657220656e6f7567682067617360448201526064015b60405180910390fd5b6000866001600160a01b03168685856040516020016102e293929190610daa565b60408051601f19818403018152908290526102fc91610dce565b6000604051808303816000865af19150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b50909a9950505050505050505050565b6103566108cd565b6103606000610927565b565b8260248201528160448201526000306001600160a01b0316826040516103889190610dce565b600060405180830381855af49150503d80600081146103c3576040519150601f19603f3d011682016040523d82523d6000602084013e6103c8565b606091505b50509050806104195760405162461bcd60e51b815260206004820152601860248201527f556e61626c6520746f206372656174652072657175657374000000000000000060448201526064016102b8565b50505050565b610427610977565b6104735760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742073657420617574686f72697a65642073656e6465727300000060448201526064016102b8565b806104cf5760405162461bcd60e51b815260206004820152602660248201527f4d7573742068617665206174206c65617374203120617574686f72697a65642060448201526539b2b73232b960d11b60648201526084016102b8565b60025460005b8181101561054a576000600160006002848154811061050457634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061054281610f47565b9150506104d5565b5060005b828110156105ca57600180600086868581811061057b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906105909190610b37565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806105c281610f47565b91505061054e565b506105d760028484610a49565b507ff263cfb3e4298332e776194610cf9fdc09ccb3ada8b9aa39764d882e11fbf0a083833360405161060b93929190610e81565b60405180910390a1505050565b6106206108cd565b6001600160a01b0381166106855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b8565b61068e81610927565b50565b6040516bffffffffffffffffffffffff19606088901b16602082015260348101839052600090819060540160408051808303601f1901815291815281516020928301206000818152600390935291205490925060081b60ff19161561072f5760405162461bcd60e51b8152602060048201526014602482015273135d5cdd081d5cd94818481d5b9a5c5d5948125160621b60448201526064016102b8565b61073b61012c42610f2f565b9050600061074b8888888561099b565b905060405180604001604052808260ff1916815260200161076b866109f5565b60ff9081169091526000858152600360209081526040909120835181549490920151909216600160f81b0260089190911c6001600160f81b0319909316929092176001600160f81b031691909117905550965096945050505050565b60006107d58686868661099b565b60008881526003602052604090205490915060081b60ff19908116908216146108405760405162461bcd60e51b815260206004820152601e60248201527f506172616d7320646f206e6f74206d617463682072657175657374204944000060448201526064016102b8565b610849826109f5565b60008881526003602052604090205460ff918216600160f81b90910490911611156108b65760405162461bcd60e51b815260206004820152601860248201527f446174612076657273696f6e73206d757374206d61746368000000000000000060448201526064016102b8565b505050600093845250506003602052506040812055565b6000546001600160a01b031633146103605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60003361098c6000546001600160a01b031690565b6001600160a01b031614905090565b6040805160208082019690965260609490941b6bffffffffffffffffffffffff1916848201526001600160e01b03199290921660548401526058808401919091528151808403909101815260789092019052805191012090565b60006101008210610a415760405162461bcd60e51b81526020600482015260166024820152751b9d5b58995c881d1bdbc8189a59c81d1bc818d85cdd60521b60448201526064016102b8565b50805b919050565b828054828255906000526020600020908101928215610a9c579160200282015b82811115610a9c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190610a69565b50610aa8929150610aac565b5090565b5b80821115610aa85760008155600101610aad565b80356001600160a01b0381168114610a4457600080fd5b80356001600160e01b031981168114610a4457600080fd5b60008083601f840112610b01578182fd5b50813567ffffffffffffffff811115610b18578182fd5b602083019150836020828501011115610b3057600080fd5b9250929050565b600060208284031215610b48578081fd5b610b5182610ac1565b9392505050565b60008060008060008060008060006101008a8c031215610b76578485fd5b610b7f8a610ac1565b985060208a0135975060408a01359650610b9b60608b01610ac1565b9550610ba960808b01610ad8565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff811115610bd2578283fd5b610bde8c828d01610af0565b915080935050809150509295985092959850929598565b600080600060608486031215610c09578283fd5b610c1284610ac1565b925060208401359150604084013567ffffffffffffffff80821115610c35578283fd5b818601915086601f830112610c48578283fd5b813581811115610c5a57610c5a610f78565b604051601f8201601f19908116603f01168101908382118183101715610c8257610c82610f78565b81604052828152896020848701011115610c9a578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60008060208385031215610ccd578182fd5b823567ffffffffffffffff80821115610ce4578384fd5b818501915085601f830112610cf7578384fd5b813581811115610d05578485fd5b8660208083028501011115610d18578485fd5b60209290920196919550909350505050565b600080600080600080600060c0888a031215610d44578283fd5b8735965060208801359550610d5b60408901610ac1565b9450610d6960608901610ad8565b93506080880135925060a088013567ffffffffffffffff811115610d8b578283fd5b610d978a828b01610af0565b989b979a50959850939692959293505050565b6001600160e01b031984168152600082846004840137910160040190815292915050565b60008251815b81811015610dee5760208186018101518583015201610dd4565b81811115610dfc5782828501525b509190910192915050565b6001600160a01b038a81168252602082018a905260408201899052871660608201526001600160e01b03198616608082015260a0810185905260c0810184905261010060e0820181905281018290526000610120838582850137828401810191909152601f909201601f1916010198975050505050505050565b6040808252810183905260008460608301825b86811015610ec2576001600160a01b03610ead84610ac1565b16825260209283019290910190600101610e94565b506001600160a01b03949094166020939093019290925250909392505050565b6020808252825182820181905260009190848201906040850190845b81811015610f235783516001600160a01b031683529284019291840191600101610efe565b50909695505050505050565b60008219821115610f4257610f42610f62565b500190565b6000600019821415610f5b57610f5b610f62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220262e5ad4ad92d2986c722791cedda45946b31c84f2cd71f00eb573c7c470f5a364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x93 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xA4C0ED36 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0xEE56997B EQ PUSH2 0x13B JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x14E JUMPI PUSH2 0x93 JUMP JUMPDEST DUP1 PUSH4 0x2408AFAA EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0x25CB5BC0 EQ PUSH2 0xB6 JUMPI DUP1 PUSH4 0x40429946 EQ PUSH2 0xCD JUMPI DUP1 PUSH4 0x6AE0BC76 EQ PUSH2 0xE2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x161 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAD SWAP2 SWAP1 PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBF PUSH2 0x12C DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0xDB CALLDATASIZE PUSH1 0x4 PUSH2 0xB58 JUMP JUMPDEST PUSH2 0x1C3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF5 PUSH2 0xF0 CALLDATASIZE PUSH1 0x4 PUSH2 0xD2A JUMP JUMPDEST PUSH2 0x22D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x34E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAD JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x136 CALLDATASIZE PUSH1 0x4 PUSH2 0xBF5 JUMP JUMPDEST PUSH2 0x362 JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x149 CALLDATASIZE PUSH1 0x4 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x41F JUMP JUMPDEST PUSH2 0xE0 PUSH2 0x15C CALLDATASIZE PUSH1 0x4 PUSH2 0xB37 JUMP JUMPDEST PUSH2 0x618 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x1B9 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x19B JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1D4 DUP12 DUP12 DUP11 DUP11 DUP11 DUP11 PUSH2 0x691 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH32 0xD8D7ECC4800D25FA53CE0372F13A416D98907A7EF3D8D3BDD79CF4FE75529C65 DUP13 DUP5 DUP14 DUP16 DUP13 DUP8 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD PUSH2 0x218 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE07 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E DUP9 DUP9 DUP9 DUP9 DUP9 PUSH1 0x2 PUSH2 0x7C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP9 SWAP1 PUSH32 0x9E9BC7616D42C2835D05AE617E508454E63B30B934BE8AA932EBC125E0E58A64 SWAP1 PUSH1 0x0 SWAP1 LOG2 PUSH3 0x61A80 GAS LT ISZERO PUSH2 0x2C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D7573742070726F7669646520636F6E73756D657220656E6F75676820676173 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP7 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2E2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xDAA JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH2 0x2FC SWAP2 PUSH2 0xDCE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x339 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x33E JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x356 PUSH2 0x8CD JUMP JUMPDEST PUSH2 0x360 PUSH1 0x0 PUSH2 0x927 JUMP JUMPDEST JUMP JUMPDEST DUP3 PUSH1 0x24 DUP3 ADD MSTORE DUP2 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x0 ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x388 SWAP2 SWAP1 PUSH2 0xDCE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3C3 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x3C8 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x419 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x556E61626C6520746F2063726561746520726571756573740000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x427 PUSH2 0x977 JUMP JUMPDEST PUSH2 0x473 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x43616E6E6F742073657420617574686F72697A65642073656E64657273000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST DUP1 PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D7573742068617665206174206C65617374203120617574686F72697A656420 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x39B2B73232B9 PUSH1 0xD1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x54A JUMPI PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 PUSH1 0x2 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x504 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP2 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x40 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP1 PUSH2 0x542 DUP2 PUSH2 0xF47 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x4D5 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5CA JUMPI PUSH1 0x1 DUP1 PUSH1 0x0 DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x57B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x590 SWAP2 SWAP1 PUSH2 0xB37 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE DUP1 PUSH2 0x5C2 DUP2 PUSH2 0xF47 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x54E JUMP JUMPDEST POP PUSH2 0x5D7 PUSH1 0x2 DUP5 DUP5 PUSH2 0xA49 JUMP JUMPDEST POP PUSH32 0xF263CFB3E4298332E776194610CF9FDC09CCB3ADA8B9AA39764D882E11FBF0A0 DUP4 DUP4 CALLER PUSH1 0x40 MLOAD PUSH2 0x60B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE81 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x620 PUSH2 0x8CD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x68E DUP2 PUSH2 0x927 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP9 SWAP1 SHL AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x34 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x54 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x1F NOT ADD DUP2 MSTORE SWAP2 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 SWAP3 DUP4 ADD KECCAK256 PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP4 MSTORE SWAP2 KECCAK256 SLOAD SWAP1 SWAP3 POP PUSH1 0x8 SHL PUSH1 0xFF NOT AND ISZERO PUSH2 0x72F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x135D5CDD081D5CD94818481D5B9A5C5D59481251 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x73B PUSH2 0x12C TIMESTAMP PUSH2 0xF2F JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x74B DUP9 DUP9 DUP9 DUP6 PUSH2 0x99B JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0xFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x76B DUP7 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP4 MLOAD DUP2 SLOAD SWAP5 SWAP1 SWAP3 ADD MLOAD SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0xF8 SHL MUL PUSH1 0x8 SWAP2 SWAP1 SWAP2 SHR PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D5 DUP7 DUP7 DUP7 DUP7 PUSH2 0x99B JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x8 SHL PUSH1 0xFF NOT SWAP1 DUP2 AND SWAP1 DUP3 AND EQ PUSH2 0x840 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x506172616D7320646F206E6F74206D6174636820726571756573742049440000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0x849 DUP3 PUSH2 0x9F5 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF SWAP2 DUP3 AND PUSH1 0x1 PUSH1 0xF8 SHL SWAP1 SWAP2 DIV SWAP1 SWAP2 AND GT ISZERO PUSH2 0x8B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x446174612076657273696F6E73206D757374206D617463680000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP POP POP PUSH1 0x0 SWAP4 DUP5 MSTORE POP POP PUSH1 0x3 PUSH1 0x20 MSTORE POP PUSH1 0x40 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x360 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x98C PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x60 SWAP5 SWAP1 SWAP5 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP5 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP3 SWAP1 SWAP3 AND PUSH1 0x54 DUP5 ADD MSTORE PUSH1 0x58 DUP1 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP2 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x78 SWAP1 SWAP3 ADD SWAP1 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 LT PUSH2 0xA41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x16 PUSH1 0x24 DUP3 ADD MSTORE PUSH22 0x1B9D5B58995C881D1BDBC8189A59C81D1BC818D85CDD PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x2B8 JUMP JUMPDEST POP DUP1 JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0xA9C JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xA9C JUMPI DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 CALLDATALOAD AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0xA69 JUMP JUMPDEST POP PUSH2 0xAA8 SWAP3 SWAP2 POP PUSH2 0xAAC JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xAA8 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xAAD JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xA44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xA44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xB01 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB18 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xB30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB48 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xB51 DUP3 PUSH2 0xAC1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 DUP11 DUP13 SUB SLT ISZERO PUSH2 0xB76 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0xB7F DUP11 PUSH2 0xAC1 JUMP JUMPDEST SWAP9 POP PUSH1 0x20 DUP11 ADD CALLDATALOAD SWAP8 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP7 POP PUSH2 0xB9B PUSH1 0x60 DUP12 ADD PUSH2 0xAC1 JUMP JUMPDEST SWAP6 POP PUSH2 0xBA9 PUSH1 0x80 DUP12 ADD PUSH2 0xAD8 JUMP JUMPDEST SWAP5 POP PUSH1 0xA0 DUP11 ADD CALLDATALOAD SWAP4 POP PUSH1 0xC0 DUP11 ADD CALLDATALOAD SWAP3 POP PUSH1 0xE0 DUP11 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBD2 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xBDE DUP13 DUP3 DUP14 ADD PUSH2 0xAF0 JUMP JUMPDEST SWAP2 POP DUP1 SWAP4 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 POP SWAP3 SWAP6 SWAP9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC09 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xC12 DUP5 PUSH2 0xAC1 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xC35 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC48 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xC5A JUMPI PUSH2 0xC5A PUSH2 0xF78 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0xC82 JUMPI PUSH2 0xC82 PUSH2 0xF78 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP10 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0xC9A JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY DUP6 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xCCD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCE4 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xCF7 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xD05 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP7 PUSH1 0x20 DUP1 DUP4 MUL DUP6 ADD ADD GT ISZERO PUSH2 0xD18 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP7 SWAP2 SWAP6 POP SWAP1 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xC0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0xD44 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH2 0xD5B PUSH1 0x40 DUP10 ADD PUSH2 0xAC1 JUMP JUMPDEST SWAP5 POP PUSH2 0xD69 PUSH1 0x60 DUP10 ADD PUSH2 0xAD8 JUMP JUMPDEST SWAP4 POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP3 POP PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD8B JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xD97 DUP11 DUP3 DUP12 ADD PUSH2 0xAF0 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP5 AND DUP2 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x4 DUP5 ADD CALLDATACOPY SWAP2 ADD PUSH1 0x4 ADD SWAP1 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xDEE JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD DUP6 DUP4 ADD MSTORE ADD PUSH2 0xDD4 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xDFC JUMPI DUP3 DUP3 DUP6 ADD MSTORE JUMPDEST POP SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP11 SWAP1 MSTORE PUSH1 0x40 DUP3 ADD DUP10 SWAP1 MSTORE DUP8 AND PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP7 AND PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP5 SWAP1 MSTORE PUSH2 0x100 PUSH1 0xE0 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 PUSH2 0x120 DUP4 DUP6 DUP3 DUP6 ADD CALLDATACOPY DUP3 DUP5 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 DUP5 PUSH1 0x60 DUP4 ADD DUP3 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0xEC2 JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH2 0xEAD DUP5 PUSH2 0xAC1 JUMP JUMPDEST AND DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0xE94 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xF23 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0xEFE JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0xF42 JUMPI PUSH2 0xF42 PUSH2 0xF62 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0xF5B JUMPI PUSH2 0xF5B PUSH2 0xF62 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x26 0x2E GAS 0xD4 0xAD SWAP3 0xD2 SWAP9 PUSH13 0x722791CEDDA45946B31C84F2CD PUSH18 0xF00EB573C7C470F5A364736F6C6343000802 STOP CALLER ","sourceMap":"110:10794:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2298:148;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;246:49;;286:9;246:49;;;;;12658:25:103;;;12646:2;12631:18;246:49:69;12613:76:103;4261:691:69;;;;;;:::i;:::-;;:::i;:::-;;5845:1158;;;;;;:::i;:::-;;:::i;:::-;;;8826:14:103;;8819:22;8801:41;;8789:2;8774:18;5845:1158:69;8756:92:103;1831:101:41;;;:::i;1201:85::-;1247:7;1273:6;1201:85;;-1:-1:-1;;;;;1273:6:41;;;6162:51:103;;6150:2;6135:18;1201:85:41;6117:102:103;2840:712:69;;;;;;:::i;:::-;;:::i;1548:743::-;;;;;;:::i;:::-;;:::i;2081:198:41:-;;;;;;:::i;:::-;;:::i;2298:148:69:-;2377:17;2417:22;2410:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2410:29:69;;;;;;;;;;;;;;;;;;;;;;;2298:148;:::o;4261:691::-;4595:17;4614:18;4636:186;4680:6;4700:7;4721:15;4750:18;4782:5;4801:11;4636:30;:186::i;:::-;4594:228;;;;4851:6;4837:108;4859:6;4867:9;4878:7;4887:6;4895:18;4915:10;4927:11;4940:4;;4837:108;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4261:691;;;;;;;;;;;:::o;5845:1158::-;6297:4;6317:109;6355:9;6366:7;6375:15;6392:18;6412:10;6424:1;6317:37;:109::i;:::-;6442:25;;6457:9;;6442:25;;;;;412:6;6485:9;:39;;6477:84;;;;-1:-1:-1;;;6477:84:69;;12002:2:103;6477:84:69;;;11984:21:103;;;12021:18;;;12014:30;12080:34;12060:18;;;12053:62;12132:18;;6477:84:69;;;;;;;;;6844:12;6862:15;-1:-1:-1;;;;;6862:20:69;6900:18;6920:4;;6883:42;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6883:42:69;;;;;;;;;;6862:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6843:83:69;;5845:1158;-1:-1:-1;;;;;;;;;;5845:1158:69:o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2840:712:69:-;3157:6;3152:2;3146:4;3142:13;3135:29;3297:6;3292:2;3286:4;3282:13;3275:29;3418:12;3444:4;-1:-1:-1;;;;;3436:26:69;3463:4;3436:32;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3417:51;;;3509:7;3501:44;;;;-1:-1:-1;;;3501:44:69;;10580:2:103;3501:44:69;;;10562:21:103;10619:2;10599:18;;;10592:30;10658:26;10638:18;;;10631:54;10702:18;;3501:44:69;10552:174:103;3501:44:69;2840:712;;;;:::o;1548:743::-;1242:26;:24;:26::i;:::-;1234:68;;;;-1:-1:-1;;;1234:68:69;;9869:2:103;1234:68:69;;;9851:21:103;9908:2;9888:18;;;9881:30;9947:31;9927:18;;;9920:59;9996:18;;1234:68:69;9841:179:103;1234:68:69;1686:18;1678:69:::1;;;::::0;-1:-1:-1;;;1678:69:69;;9055:2:103;1678:69:69::1;::::0;::::1;9037:21:103::0;9094:2;9074:18;;;9067:30;9133:34;9113:18;;;9106:62;-1:-1:-1;;;9184:18:103;;;9177:36;9230:19;;1678:69:69::1;9027:228:103::0;1678:69:69::1;1843:22;:29:::0;1809:31:::1;1882:133;1906:23;1902:1;:27;1882:133;;;1999:5;1950:19;:46;1970:22;1993:1;1970:25;;;;;;-1:-1:-1::0;;;1970:25:69::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;::::0;-1:-1:-1;;;;;1970:25:69::1;1950:46:::0;;;::::1;::::0;;;;;;;;:54;;-1:-1:-1;;1950:54:69::1;::::0;::::1;;::::0;;;::::1;::::0;;1931:3;::::1;::::0;::::1;:::i;:::-;;;;1882:133;;;;2056:9;2051:108;2071:18:::0;;::::1;2051:108;;;2144:4;2110:19:::0;:31:::1;2130:7;;2138:1;2130:10;;;;;-1:-1:-1::0;;;2130:10:69::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2110:31:69::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;2110:31:69;:38;;-1:-1:-1;;2110:38:69::1;::::0;::::1;;::::0;;;::::1;::::0;;2091:3;::::1;::::0;::::1;:::i;:::-;;;;2051:108;;;-1:-1:-1::0;2192:32:69::1;:22;2217:7:::0;;2192:32:::1;:::i;:::-;;2239:45;2264:7;;2273:10;2239:45;;;;;;;;:::i;:::-;;;;;;;;1312:1;1548:743:::0;;:::o;2081:198:41:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;9462:2:103;2161:73:41::1;::::0;::::1;9444:21:103::0;9501:2;9481:18;;;9474:30;9540:34;9520:18;;;9513:62;-1:-1:-1;;;9591:18:103;;;9584:36;9637:19;;2161:73:41::1;9434:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;7404:959:69:-;7777:31;;-1:-1:-1;;4630:2:103;4626:15;;;4622:53;7777:31:69;;;4610:66:103;4692:12;;;4685:28;;;7701:17:69;;;;4729:12:103;;7777:31:69;;;;;;-1:-1:-1;;7777:31:69;;;;;;7767:42;;7777:31;7767:42;;;;7827:24;;;;:13;:24;;;;;:35;7767:42;;-1:-1:-1;7827:35:69;;-1:-1:-1;;7827:40:69;;7819:73;;;;-1:-1:-1;;;7819:73:69;;11294:2:103;7819:73:69;;;11276:21:103;11333:2;11313:18;;;11306:30;-1:-1:-1;;;11352:18:103;;;11345:50;11412:18;;7819:73:69;11266:170:103;7819:73:69;8029:31;286:9;8029:15;:31;:::i;:::-;8016:44;;8070:18;8091:74;8108:7;8117:15;8134:18;8154:10;8091:16;:74::i;:::-;8070:95;;8202:53;;;;;;;;8213:10;8202:53;;;;;;;8225:29;8242:11;8225:16;:29::i;:::-;8202:53;;;;;;;8175:24;;;;:13;:24;;;;;;;;:80;;;;;;;;;;;;-1:-1:-1;;;8175:80:69;;;;;;-1:-1:-1;;;;;;8175:80:69;;;;;;;-1:-1:-1;;;;;8175:80:69;;;;;;;-1:-1:-1;7404:959:69;;;;;;;;;:::o;8888:683::-;9149:18;9170:74;9187:7;9196:15;9213:18;9233:10;9170:16;:74::i;:::-;9262:24;;;;:13;:24;;;;;:35;9149:95;;-1:-1:-1;9262:35:69;;-1:-1:-1;;9262:49:69;;;;;;;9254:92;;;;-1:-1:-1;;;9254:92:69;;11643:2:103;9254:92:69;;;11625:21:103;11682:2;11662:18;;;11655:30;11721:32;11701:18;;;11694:60;11771:18;;9254:92:69;11615:180:103;9254:92:69;9404:29;9421:11;9404:16;:29::i;:::-;9364:24;;;;:13;:24;;;;;:36;:69;;;;-1:-1:-1;;;9364:36:69;;;;;;:69;;9356:106;;;;-1:-1:-1;;;9356:106:69;;10227:2:103;9356:106:69;;;10209:21:103;10266:2;10246:18;;;10239:30;10305:26;10285:18;;;10278:54;10349:18;;9356:106:69;10199:174:103;9356:106:69;-1:-1:-1;;;9540:24:69;;;;-1:-1:-1;;9540:13:69;:24;;-1:-1:-1;9540:24:69;;;9533:31;8888:683::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;10933:2:103;1414:68:41;;;10915:21:103;;;10952:18;;;10945:30;11011:34;10991:18;;;10984:62;11063:18;;1414:68:41;10905:182:103;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;10791:110:69:-;10850:4;10884:10;10873:7;1247::41;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;10873:7:69;-1:-1:-1;;;;;10873:21:69;;10866:28;;10791:110;:::o;10053:303::-;10273:74;;;;;;;5773:19:103;;;;5830:2;5826:15;;;;-1:-1:-1;;5822:53:103;5808:12;;;5801:75;-1:-1:-1;;;;;;5906:33:103;;;;5892:12;;;5885:55;5956:12;;;;5949:28;;;;10273:74:69;;;;;;;;;;5993:12:103;;;;10273:74:69;;10263:85;;;;;;10053:303::o;10476:183::-;10541:5;349:3;10566:6;:29;10558:64;;;;-1:-1:-1;;;10558:64:69;;12363:2:103;10558:64:69;;;12345:21:103;12402:2;12382:18;;;12375:30;-1:-1:-1;;;12421:18:103;;;12414:52;12483:18;;10558:64:69;12335:172:103;10558:64:69;-1:-1:-1;10645:6:69;10476:183;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:173;259:20;;-1:-1:-1;;;;;;308:32:103;;298:43;;288:2;;355:1;352;345:12;370:375;;;485:3;478:4;470:6;466:17;462:27;452:2;;510:8;500;493:26;452:2;-1:-1:-1;540:20:103;;583:18;572:30;;569:2;;;622:8;612;605:26;569:2;666:4;658:6;654:17;642:29;;718:3;711:4;702:6;694;690:19;686:30;683:39;680:2;;;735:1;732;725:12;680:2;442:303;;;;;:::o;750:196::-;;862:2;850:9;841:7;837:23;833:32;830:2;;;883:6;875;868:22;830:2;911:29;930:9;911:29;:::i;:::-;901:39;820:126;-1:-1:-1;;;820:126:103:o;951:926::-;;;;;;;;;;1200:3;1188:9;1179:7;1175:23;1171:33;1168:2;;;1222:6;1214;1207:22;1168:2;1250:29;1269:9;1250:29;:::i;:::-;1240:39;;1326:2;1315:9;1311:18;1298:32;1288:42;;1377:2;1366:9;1362:18;1349:32;1339:42;;1400:38;1434:2;1423:9;1419:18;1400:38;:::i;:::-;1390:48;;1457:38;1490:3;1479:9;1475:19;1457:38;:::i;:::-;1447:48;;1542:3;1531:9;1527:19;1514:33;1504:43;;1594:3;1583:9;1579:19;1566:33;1556:43;;1650:3;1639:9;1635:19;1622:33;1678:18;1670:6;1667:30;1664:2;;;1715:6;1707;1700:22;1664:2;1759:58;1809:7;1800:6;1789:9;1785:22;1759:58;:::i;:::-;1733:84;;1836:8;1826:18;;;1863:8;1853:18;;;1158:719;;;;;;;;;;;:::o;1882:1108::-;;;;2037:2;2025:9;2016:7;2012:23;2008:32;2005:2;;;2058:6;2050;2043:22;2005:2;2086:29;2105:9;2086:29;:::i;:::-;2076:39;;2162:2;2151:9;2147:18;2134:32;2124:42;;2217:2;2206:9;2202:18;2189:32;2240:18;2281:2;2273:6;2270:14;2267:2;;;2302:6;2294;2287:22;2267:2;2345:6;2334:9;2330:22;2320:32;;2390:7;2383:4;2379:2;2375:13;2371:27;2361:2;;2417:6;2409;2402:22;2361:2;2458;2445:16;2480:2;2476;2473:10;2470:2;;;2486:18;;:::i;:::-;2561:2;2555:9;2529:2;2615:13;;-1:-1:-1;;2611:22:103;;;2635:2;2607:31;2603:40;2591:53;;;2659:18;;;2679:22;;;2656:46;2653:2;;;2705:18;;:::i;:::-;2745:10;2741:2;2734:22;2780:2;2772:6;2765:18;2820:7;2815:2;2810;2806;2802:11;2798:20;2795:33;2792:2;;;2846:6;2838;2831:22;2792:2;2907;2902;2898;2894:11;2889:2;2881:6;2877:15;2864:46;2952:6;2947:2;2942;2934:6;2930:15;2926:24;2919:40;2978:6;2968:16;;;;;;;1995:995;;;;;:::o;2995:666::-;;;3142:2;3130:9;3121:7;3117:23;3113:32;3110:2;;;3163:6;3155;3148:22;3110:2;3208:9;3195:23;3237:18;3278:2;3270:6;3267:14;3264:2;;;3299:6;3291;3284:22;3264:2;3342:6;3331:9;3327:22;3317:32;;3387:7;3380:4;3376:2;3372:13;3368:27;3358:2;;3414:6;3406;3399:22;3358:2;3459;3446:16;3485:2;3477:6;3474:14;3471:2;;;3506:6;3498;3491:22;3471:2;3565:7;3560:2;3554;3546:6;3542:15;3538:2;3534:24;3530:33;3527:46;3524:2;;;3591:6;3583;3576:22;3524:2;3627;3619:11;;;;;3649:6;;-1:-1:-1;3100:561:103;;-1:-1:-1;;;;3100:561:103:o;3666:782::-;;;;;;;;3881:3;3869:9;3860:7;3856:23;3852:33;3849:2;;;3903:6;3895;3888:22;3849:2;3944:9;3931:23;3921:33;;4001:2;3990:9;3986:18;3973:32;3963:42;;4024:38;4058:2;4047:9;4043:18;4024:38;:::i;:::-;4014:48;;4081:37;4114:2;4103:9;4099:18;4081:37;:::i;:::-;4071:47;;4165:3;4154:9;4150:19;4137:33;4127:43;;4221:3;4210:9;4206:19;4193:33;4249:18;4241:6;4238:30;4235:2;;;4286:6;4278;4271:22;4235:2;4330:58;4380:7;4371:6;4360:9;4356:22;4330:58;:::i;:::-;3839:609;;;;-1:-1:-1;3839:609:103;;-1:-1:-1;3839:609:103;;;;4304:84;;-1:-1:-1;;;3839:609:103:o;4752:370::-;-1:-1:-1;;;;;;4947:33:103;;4935:46;;4752:370;5024:6;5016;5012:1;5003:11;;4990:41;5054:16;;5072:1;5050:24;5083:15;;;5050:24;4925:197;-1:-1:-1;;4925:197:103:o;5127:430::-;;5294:6;5288:13;5319:3;5331:129;5345:6;5342:1;5339:13;5331:129;;;5443:4;5427:14;;;5423:25;;5417:32;5404:11;;;5397:53;5360:12;5331:129;;;5478:6;5475:1;5472:13;5469:2;;;5513:3;5504:6;5499:3;5495:16;5488:29;5469:2;-1:-1:-1;5535:16:103;;;;;5264:293;-1:-1:-1;;5264:293:103:o;6224:1017::-;-1:-1:-1;;;;;6635:15:103;;;6617:34;;6682:2;6667:18;;6660:34;;;6725:2;6710:18;;6703:34;;;6773:15;;6768:2;6753:18;;6746:43;-1:-1:-1;;;;;;6826:33:103;;6820:3;6805:19;;6798:62;6597:3;6876:19;;6869:35;;;6935:3;6920:19;;6913:35;;;6567:3;6842;6964:19;;6957:31;;;7004:18;;6997:34;;;6224:1017;7050:3;7024:6;7095;7075:18;;;7062:48;7130:22;;;7126:31;;7119:45;;;;7225:2;7204:15;;;-1:-1:-1;;7200:29:103;7185:45;7181:54;;6547:694;-1:-1:-1;;;;;;;;6547:694:103:o;7246:744::-;7474:2;7486:21;;;7459:18;;7542:22;;;7246:744;7621:6;7595:2;7580:18;;7246:744;7658:235;7672:6;7669:1;7666:13;7658:235;;;-1:-1:-1;;;;;7737:26:103;7756:6;7737:26;:::i;:::-;7733:52;7721:65;;7809:4;7868:15;;;;7833:12;;;;7694:1;7687:9;7658:235;;;-1:-1:-1;;;;;;7951:32:103;;;;7944:4;7929:20;;;;7922:62;;;;-1:-1:-1;7910:3:103;;7435:555;-1:-1:-1;;;7435:555:103:o;7995:661::-;8166:2;8218:21;;;8288:13;;8191:18;;;8310:22;;;7995:661;;8166:2;8389:15;;;;8363:2;8348:18;;;7995:661;8435:195;8449:6;8446:1;8443:13;8435:195;;;8514:13;;-1:-1:-1;;;;;8510:39:103;8498:52;;8605:15;;;;8570:12;;;;8546:1;8464:9;8435:195;;;-1:-1:-1;8647:3:103;;8146:510;-1:-1:-1;;;;;;8146:510:103:o;12694:128::-;;12765:1;12761:6;12758:1;12755:13;12752:2;;;12771:18;;:::i;:::-;-1:-1:-1;12807:9:103;;12742:80::o;12827:135::-;;-1:-1:-1;;12887:17:103;;12884:2;;;12907:18;;:::i;:::-;-1:-1:-1;12954:1:103;12943:13;;12874:88::o;12967:127::-;13028:10;13023:3;13019:20;13016:1;13009:31;13059:4;13056:1;13049:15;13083:4;13080:1;13073:15;13099:127;13160:10;13155:3;13151:20;13148:1;13141:31;13191:4;13188:1;13181:15;13215:4;13212:1;13205:15"},"methodIdentifiers":{"fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)":"6ae0bc76","getAuthorizedSenders()":"2408afaa","getExpiryTime()":"25cb5bc0","onTokenTransfer(address,uint256,bytes)":"a4c0ed36","oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)":"40429946","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setAuthorizedSenders(address[])":"ee56997b","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"senders\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"changedBy\",\"type\":\"address\"}],\"name\":\"AuthorizedSendersChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"name\":\"CancelOracleRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"specId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"callbackAddr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cancelExpiration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"OracleRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"name\":\"OracleResponse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"fulfillOracleRequest2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAuthorizedSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExpiryTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onTokenTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"specId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callbackFunctionId\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataVersion\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"oracleRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"senders\",\"type\":\"address[]\"}],\"name\":\"setAuthorizedSenders\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)\":{\"details\":\"Given params must hash back to the commitment stored from `oracleRequest`. Will call the callback address' callback function without bubbling up error checking in a `require` so that the node can get paid.\",\"params\":{\"callbackAddress\":\"The callback address to call for fulfillment\",\"callbackFunctionId\":\"The callback function ID to use for fulfillment\",\"data\":\"The data to return to the consuming contract\",\"expiration\":\"The expiration that the node should respond by before the requester can cancel\",\"payment\":\"The payment amount that will be released for the oracle (specified in wei)\",\"requestId\":\"The fulfillment request ID that must match the requester's\"},\"returns\":{\"_0\":\"Status if the external call was successful\"}},\"onTokenTransfer(address,uint256,bytes)\":{\"details\":\"The data payload's first 2 words will be overwritten by the `sender` and `amount` values to ensure correctness. Calls oracleRequest.\",\"params\":{\"amount\":\"Amount of LINK sent (specified in wei)\",\"data\":\"Payload of the transaction\",\"sender\":\"Address of the sender\"}},\"oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)\":{\"params\":{\"callbackAddress\":\"The address the oracle data will be sent to\",\"callbackFunctionId\":\"The callback function ID for the response\",\"data\":\"The extra request parameters\",\"dataVersion\":\"The specified data version\",\"nonce\":\"The nonce sent by the requester\",\"payment\":\"The amount of payment given (specified in wei)\",\"specId\":\"The Job Specification ID\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAuthorizedSenders(address[])\":{\"params\":{\"senders\":\"The addresses of the authorized Chainlink node\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"fulfillOracleRequest2(bytes32,uint256,address,bytes4,uint256,bytes)\":{\"notice\":\"Called by the Chainlink node to fulfill requests with multi-word support\"},\"onTokenTransfer(address,uint256,bytes)\":{\"notice\":\"Called when LINK is sent to the contract via `transferAndCall`\"},\"oracleRequest(address,uint256,bytes32,address,bytes4,uint256,uint256,bytes)\":{\"notice\":\"Creates the Chainlink request. This is a backwards compatible API with the Oracle.sol contract, but the behavior changes because callbackAddress is assumed to be the same as the request sender.\"},\"setAuthorizedSenders(address[])\":{\"notice\":\"Sets the fulfillment permission for a given node. Use `true` to allow, `false` to disallow.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/mock/ChainlinkOperator.sol\":\"ChainlinkOperator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/examples/mock/ChainlinkOperator.sol\":{\"keccak256\":\"0x0a5d6057a172429ad8fe92c2dbeee36ee00cabf3276715599bedf727438efee4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a25fa642ccb40f61ae95cd6524d3c925117874e21e39ec2928a76ed883d4189e\",\"dweb:/ipfs/QmWHLHGsXWkJzhc39k5SGuf97NczvwBKQZpi3FTJVUDW68\"]}},\"version\":1}"}},"contracts/examples/mock/ChainlinkToken.sol":{"ChainlinkToken":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1548:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"112:273:103","statements":[{"body":{"nodeType":"YulBlock","src":"158:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"167:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"175:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"160:6:103"},"nodeType":"YulFunctionCall","src":"160:22:103"},"nodeType":"YulExpressionStatement","src":"160:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"133:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"142:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"129:3:103"},"nodeType":"YulFunctionCall","src":"129:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"154:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"125:3:103"},"nodeType":"YulFunctionCall","src":"125:32:103"},"nodeType":"YulIf","src":"122:2:103"},{"nodeType":"YulVariableDeclaration","src":"193:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"212:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"206:5:103"},"nodeType":"YulFunctionCall","src":"206:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"197:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"285:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"294:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"302:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"287:6:103"},"nodeType":"YulFunctionCall","src":"287:22:103"},"nodeType":"YulExpressionStatement","src":"287:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"244:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"255:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"270:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"275:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"266:3:103"},"nodeType":"YulFunctionCall","src":"266:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"279:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"262:3:103"},"nodeType":"YulFunctionCall","src":"262:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"251:3:103"},"nodeType":"YulFunctionCall","src":"251:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"241:2:103"},"nodeType":"YulFunctionCall","src":"241:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"234:6:103"},"nodeType":"YulFunctionCall","src":"234:50:103"},"nodeType":"YulIf","src":"231:2:103"},{"nodeType":"YulAssignment","src":"320:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"330:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"320:6:103"}]},{"nodeType":"YulAssignment","src":"344:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"364:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"375:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"360:3:103"},"nodeType":"YulFunctionCall","src":"360:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"354:5:103"},"nodeType":"YulFunctionCall","src":"354:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"344:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"70:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"81:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"93:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"101:6:103","type":""}],"src":"14:371:103"},{"body":{"nodeType":"YulBlock","src":"564:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"592:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"574:6:103"},"nodeType":"YulFunctionCall","src":"574:21:103"},"nodeType":"YulExpressionStatement","src":"574:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"626:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"611:3:103"},"nodeType":"YulFunctionCall","src":"611:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"631:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"604:6:103"},"nodeType":"YulFunctionCall","src":"604:30:103"},"nodeType":"YulExpressionStatement","src":"604:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"665:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"650:3:103"},"nodeType":"YulFunctionCall","src":"650:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"670:33:103","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"643:6:103"},"nodeType":"YulFunctionCall","src":"643:61:103"},"nodeType":"YulExpressionStatement","src":"643:61:103"},{"nodeType":"YulAssignment","src":"713:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"736:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"721:3:103"},"nodeType":"YulFunctionCall","src":"721:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"713:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"541:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"555:4:103","type":""}],"src":"390:355:103"},{"body":{"nodeType":"YulBlock","src":"851:76:103","statements":[{"nodeType":"YulAssignment","src":"861:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"873:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"884:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"869:3:103"},"nodeType":"YulFunctionCall","src":"869:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"861:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"903:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"914:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"896:6:103"},"nodeType":"YulFunctionCall","src":"896:25:103"},"nodeType":"YulExpressionStatement","src":"896:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"820:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"831:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"842:4:103","type":""}],"src":"750:177:103"},{"body":{"nodeType":"YulBlock","src":"980:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"1015:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"1036:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1045:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1050:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1041:3:103"},"nodeType":"YulFunctionCall","src":"1041:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1029:6:103"},"nodeType":"YulFunctionCall","src":"1029:33:103"},"nodeType":"YulExpressionStatement","src":"1029:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1082:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1085:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1075:6:103"},"nodeType":"YulFunctionCall","src":"1075:15:103"},"nodeType":"YulExpressionStatement","src":"1075:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"1110:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"1115:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1103:6:103"},"nodeType":"YulFunctionCall","src":"1103:17:103"},"nodeType":"YulExpressionStatement","src":"1103:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"996:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"1003:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"999:3:103"},"nodeType":"YulFunctionCall","src":"999:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"993:2:103"},"nodeType":"YulFunctionCall","src":"993:13:103"},"nodeType":"YulIf","src":"990:2:103"},{"nodeType":"YulAssignment","src":"1139:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"1150:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"1153:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1146:3:103"},"nodeType":"YulFunctionCall","src":"1146:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"1139:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"963:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"966:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"972:3:103","type":""}],"src":"932:229:103"},{"body":{"nodeType":"YulBlock","src":"1221:325:103","statements":[{"nodeType":"YulAssignment","src":"1231:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1245:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1251:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1241:3:103"},"nodeType":"YulFunctionCall","src":"1241:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1231:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1262:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1292:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"1298:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1288:3:103"},"nodeType":"YulFunctionCall","src":"1288:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1266:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1339:31:103","statements":[{"nodeType":"YulAssignment","src":"1341:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1355:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1363:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1351:3:103"},"nodeType":"YulFunctionCall","src":"1351:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1341:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1319:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1312:6:103"},"nodeType":"YulFunctionCall","src":"1312:26:103"},"nodeType":"YulIf","src":"1309:2:103"},{"body":{"nodeType":"YulBlock","src":"1429:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1450:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1457:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1462:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1453:3:103"},"nodeType":"YulFunctionCall","src":"1453:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1443:6:103"},"nodeType":"YulFunctionCall","src":"1443:31:103"},"nodeType":"YulExpressionStatement","src":"1443:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1494:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1497:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1487:6:103"},"nodeType":"YulFunctionCall","src":"1487:15:103"},"nodeType":"YulExpressionStatement","src":"1487:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1522:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1525:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1515:6:103"},"nodeType":"YulFunctionCall","src":"1515:15:103"},"nodeType":"YulExpressionStatement","src":"1515:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1385:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1408:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1416:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1405:2:103"},"nodeType":"YulFunctionCall","src":"1405:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1382:2:103"},"nodeType":"YulFunctionCall","src":"1382:38:103"},"nodeType":"YulIf","src":"1379:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1201:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1210:6:103","type":""}],"src":"1166:380:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n value1 := mload(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000d0338038062000d0383398101604081905262000034916200025f565b6040518060400160405280601581526020017f436861696e6c696e6b2044756d6d7920546f6b656e00000000000000000000008152506040518060400160405280600381526020016210d11560ea1b81525081600390805190602001906200009e929190620001b9565b508051620000b4906004906020840190620001b9565b505050620000c98282620000d160201b60201c565b5050620002fb565b6001600160a01b0382166200012c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000140919062000299565b90915550506001600160a01b038216600090815260208190526040812080548392906200016f90849062000299565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001c790620002be565b90600052602060002090601f016020900481019282620001eb576000855562000236565b82601f106200020657805160ff191683800117855562000236565b8280016001018555821562000236579182015b828111156200023657825182559160200191906001019062000219565b506200024492915062000248565b5090565b5b8082111562000244576000815560010162000249565b6000806040838503121562000272578182fd5b82516001600160a01b038116811462000289578283fd5b6020939093015192949293505050565b60008219821115620002b957634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680620002d357607f821691505b60208210811415620002f557634e487b7160e01b600052602260045260246000fd5b50919050565b6109f8806200030b6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80634000aea0116100715780634000aea01461014157806370a082311461015457806395d89b4114610167578063a457c2d71461016f578063a9059cbb14610182578063dd62ed3e14610195576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101a8565b6040516100ce9190610910565b60405180910390f35b6100ea6100e536600461081d565b61023a565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046107e2565b610252565b604051601281526020016100ce565b6100ea61013c36600461081d565b610276565b6100ea61014f366004610846565b610298565b6100fe61016236600461078f565b6102b8565b6100c16102d7565b6100ea61017d36600461081d565b6102e6565b6100ea61019036600461081d565b610366565b6100fe6101a33660046107b0565b610374565b6060600380546101b790610987565b80601f01602080910402602001604051908101604052809291908181526020018280546101e390610987565b80156102305780601f1061020557610100808354040283529160200191610230565b820191906000526020600020905b81548152906001019060200180831161021357829003601f168201915b5050505050905090565b60003361024881858561039f565b5060019392505050565b6000336102608582856104c3565b61026b85858561053d565b506001949350505050565b6000336102488185856102898383610374565b6102939190610963565b61039f565b60006102a48585610366565b50843b1561026b5761026b8585858561070b565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546101b790610987565b600033816102f48286610374565b9050838110156103595760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61026b828686840361039f565b60003361024881858561053d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610350565b6001600160a01b0382166104625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610350565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104cf8484610374565b90506000198114610537578181101561052a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610350565b610537848484840361039f565b50505050565b6001600160a01b0383166105a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610350565b6001600160a01b0382166106035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610350565b6001600160a01b0383166000908152602081905260409020548181101561067b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610350565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106b2908490610963565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106fe91815260200190565b60405180910390a3610537565b604051635260769b60e11b815284906001600160a01b0382169063a4c0ed369061073f9033908890889088906004016108c8565b600060405180830381600087803b15801561075957600080fd5b505af115801561076d573d6000803e3d6000fd5b505050505050505050565b80356001600160a01b03811681146102d257600080fd5b6000602082840312156107a0578081fd5b6107a982610778565b9392505050565b600080604083850312156107c2578081fd5b6107cb83610778565b91506107d960208401610778565b90509250929050565b6000806000606084860312156107f6578081fd5b6107ff84610778565b925061080d60208501610778565b9150604084013590509250925092565b6000806040838503121561082f578182fd5b61083883610778565b946020939093013593505050565b6000806000806060858703121561085b578081fd5b61086485610778565b935060208501359250604085013567ffffffffffffffff80821115610887578283fd5b818701915087601f83011261089a578283fd5b8135818111156108a8578384fd5b8860208285010111156108b9578384fd5b95989497505060200194505050565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6000602080835283518082850152825b8181101561093c57858101830151858201604001528201610920565b8181111561094d5783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561098257634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061099b57607f821691505b602082108114156109bc57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220f3d8363e9fb1f29b8d17cfb6891464862284d9a7fc6aa7fae16e70cee2835a4064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xD03 CODESIZE SUB DUP1 PUSH3 0xD03 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x25F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x436861696E6C696E6B2044756D6D7920546F6B656E0000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x10D115 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x9E SWAP3 SWAP2 SWAP1 PUSH3 0x1B9 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0xB4 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x1B9 JUMP JUMPDEST POP POP POP PUSH3 0xC9 DUP3 DUP3 PUSH3 0xD1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP PUSH3 0x2FB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x12C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x140 SWAP2 SWAP1 PUSH3 0x299 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH3 0x16F SWAP1 DUP5 SWAP1 PUSH3 0x299 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x1C7 SWAP1 PUSH3 0x2BE JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x1EB JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x236 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x206 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x236 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x236 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x236 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x219 JUMP JUMPDEST POP PUSH3 0x244 SWAP3 SWAP2 POP PUSH3 0x248 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x244 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x249 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x272 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x289 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD MLOAD SWAP3 SWAP5 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x2B9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x2D3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x2F5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9F8 DUP1 PUSH3 0x30B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4000AEA0 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x4000AEA0 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x195 JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x23A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x276 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x846 JUMP JUMPDEST PUSH2 0x298 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0x78F JUMP JUMPDEST PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2D7 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x17D CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x190 CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x366 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B0 JUMP JUMPDEST PUSH2 0x374 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1B7 SWAP1 PUSH2 0x987 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E3 SWAP1 PUSH2 0x987 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x230 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x205 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x230 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x213 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x39F JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP6 DUP3 DUP6 PUSH2 0x4C3 JUMP JUMPDEST PUSH2 0x26B DUP6 DUP6 DUP6 PUSH2 0x53D JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x289 DUP4 DUP4 PUSH2 0x374 JUMP JUMPDEST PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x963 JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A4 DUP6 DUP6 PUSH2 0x366 JUMP JUMPDEST POP DUP5 EXTCODESIZE ISZERO PUSH2 0x26B JUMPI PUSH2 0x26B DUP6 DUP6 DUP6 DUP6 PUSH2 0x70B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1B7 SWAP1 PUSH2 0x987 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2F4 DUP3 DUP7 PUSH2 0x374 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x359 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x26B DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x39F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x401 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4CF DUP5 DUP5 PUSH2 0x374 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x537 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x52A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x350 JUMP JUMPDEST PUSH2 0x537 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x39F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x603 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x67B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x6B2 SWAP1 DUP5 SWAP1 PUSH2 0x963 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6FE SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x537 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5260769B PUSH1 0xE1 SHL DUP2 MSTORE DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA4C0ED36 SWAP1 PUSH2 0x73F SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x8C8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x76D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7A0 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7A9 DUP3 PUSH2 0x778 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7C2 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7CB DUP4 PUSH2 0x778 JUMP JUMPDEST SWAP2 POP PUSH2 0x7D9 PUSH1 0x20 DUP5 ADD PUSH2 0x778 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7F6 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7FF DUP5 PUSH2 0x778 JUMP JUMPDEST SWAP3 POP PUSH2 0x80D PUSH1 0x20 DUP6 ADD PUSH2 0x778 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x82F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x838 DUP4 PUSH2 0x778 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x85B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x864 DUP6 PUSH2 0x778 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x887 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x89A JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8A8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x8B9 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x93C JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x920 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x94D JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x982 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x99B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x9BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURN 0xD8 CALLDATASIZE RETURNDATACOPY SWAP16 0xB1 CALLCODE SWAP12 DUP14 OR 0xCF 0xB6 DUP10 EQ PUSH5 0x862284D9A7 0xFC PUSH11 0xA7FAE16E70CEE2835A4064 PUSH20 0x6F6C634300080200330000000000000000000000 ","sourceMap":"249:869:70:-:0;;;288:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1978:113:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1978:113:49;;;2052:5;2044;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;378:20:70::1;384:5;391:6;378:5;;;:20;;:::i;:::-;288:117:::0;;249:869;;8402:389:49;-1:-1:-1;;;;;8485:21:49;;8477:65;;;;-1:-1:-1;;;8477:65:49;;592:2:103;8477:65:49;;;574:21:103;631:2;611:18;;;604:30;670:33;650:18;;;643:61;721:18;;8477:65:49;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:49;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:49;;896:25:103;;;-1:-1:-1;;;;;8688:37:49;;;8705:1;;8688:37;;884:2:103;869:18;8688:37:49;;;;;;;8402:389;;:::o;249:869:70:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;249:869:70;;;-1:-1:-1;249:869:70;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:371:103;;;154:2;142:9;133:7;129:23;125:32;122:2;;;175:6;167;160:22;122:2;206:16;;-1:-1:-1;;;;;251:31:103;;241:42;;231:2;;302:6;294;287:22;231:2;375;360:18;;;;354:25;330:5;;354:25;;-1:-1:-1;;;112:273:103:o;932:229::-;;1003:1;999:6;996:1;993:13;990:2;;;-1:-1:-1;;;1029:33:103;;1085:4;1082:1;1075:15;1115:4;1036:3;1103:17;990:2;-1:-1:-1;1146:9:103;;980:181::o;1166:380::-;1251:1;1241:12;;1298:1;1288:12;;;1309:2;;1363:4;1355:6;1351:17;1341:27;;1309:2;1416;1408:6;1405:14;1385:18;1382:38;1379:2;;;1462:10;1457:3;1453:20;1450:1;1443:31;1497:4;1494:1;1487:15;1525:4;1522:1;1515:15;1379:2;;1221:325;;;:::o;:::-;249:869:70;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7211:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1403:660:103","statements":[{"body":{"nodeType":"YulBlock","src":"1449:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1458:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1466:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1451:6:103"},"nodeType":"YulFunctionCall","src":"1451:22:103"},"nodeType":"YulExpressionStatement","src":"1451:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1424:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1433:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1420:3:103"},"nodeType":"YulFunctionCall","src":"1420:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1445:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1416:3:103"},"nodeType":"YulFunctionCall","src":"1416:32:103"},"nodeType":"YulIf","src":"1413:2:103"},{"nodeType":"YulAssignment","src":"1484:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1513:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1494:18:103"},"nodeType":"YulFunctionCall","src":"1494:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1484:6:103"}]},{"nodeType":"YulAssignment","src":"1532:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1559:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1570:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1555:3:103"},"nodeType":"YulFunctionCall","src":"1555:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1542:12:103"},"nodeType":"YulFunctionCall","src":"1542:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1532:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1583:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1614:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1625:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1610:3:103"},"nodeType":"YulFunctionCall","src":"1610:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1597:12:103"},"nodeType":"YulFunctionCall","src":"1597:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1587:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1638:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1648:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1642:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1693:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1702:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1710:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1695:6:103"},"nodeType":"YulFunctionCall","src":"1695:22:103"},"nodeType":"YulExpressionStatement","src":"1695:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1681:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1689:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1678:2:103"},"nodeType":"YulFunctionCall","src":"1678:14:103"},"nodeType":"YulIf","src":"1675:2:103"},{"nodeType":"YulVariableDeclaration","src":"1728:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1742:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1753:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1738:3:103"},"nodeType":"YulFunctionCall","src":"1738:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1732:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1808:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1817:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1825:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1810:6:103"},"nodeType":"YulFunctionCall","src":"1810:22:103"},"nodeType":"YulExpressionStatement","src":"1810:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1787:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1791:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1783:3:103"},"nodeType":"YulFunctionCall","src":"1783:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1798:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1779:3:103"},"nodeType":"YulFunctionCall","src":"1779:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1772:6:103"},"nodeType":"YulFunctionCall","src":"1772:35:103"},"nodeType":"YulIf","src":"1769:2:103"},{"nodeType":"YulVariableDeclaration","src":"1843:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1870:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1857:12:103"},"nodeType":"YulFunctionCall","src":"1857:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1847:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1900:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1909:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1917:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1902:6:103"},"nodeType":"YulFunctionCall","src":"1902:22:103"},"nodeType":"YulExpressionStatement","src":"1902:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1888:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1896:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1885:2:103"},"nodeType":"YulFunctionCall","src":"1885:14:103"},"nodeType":"YulIf","src":"1882:2:103"},{"body":{"nodeType":"YulBlock","src":"1976:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1985:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1993:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1978:6:103"},"nodeType":"YulFunctionCall","src":"1978:22:103"},"nodeType":"YulExpressionStatement","src":"1978:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1949:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"1953:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1945:3:103"},"nodeType":"YulFunctionCall","src":"1945:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"1962:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1941:3:103"},"nodeType":"YulFunctionCall","src":"1941:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1967:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1938:2:103"},"nodeType":"YulFunctionCall","src":"1938:37:103"},"nodeType":"YulIf","src":"1935:2:103"},{"nodeType":"YulAssignment","src":"2011:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2025:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2029:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2021:3:103"},"nodeType":"YulFunctionCall","src":"2021:11:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2011:6:103"}]},{"nodeType":"YulAssignment","src":"2041:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"2051:6:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2041:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1345:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1356:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1368:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1376:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1384:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1392:6:103","type":""}],"src":"1280:783:103"},{"body":{"nodeType":"YulBlock","src":"2253:377:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2270:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2285:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2301:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2306:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2297:3:103"},"nodeType":"YulFunctionCall","src":"2297:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2310:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2293:3:103"},"nodeType":"YulFunctionCall","src":"2293:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2281:3:103"},"nodeType":"YulFunctionCall","src":"2281:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2263:6:103"},"nodeType":"YulFunctionCall","src":"2263:51:103"},"nodeType":"YulExpressionStatement","src":"2263:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2334:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2345:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2330:3:103"},"nodeType":"YulFunctionCall","src":"2330:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2350:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2323:6:103"},"nodeType":"YulFunctionCall","src":"2323:34:103"},"nodeType":"YulExpressionStatement","src":"2323:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2388:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2373:3:103"},"nodeType":"YulFunctionCall","src":"2373:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2393:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2366:6:103"},"nodeType":"YulFunctionCall","src":"2366:30:103"},"nodeType":"YulExpressionStatement","src":"2366:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2427:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2412:3:103"},"nodeType":"YulFunctionCall","src":"2412:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2432:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2405:6:103"},"nodeType":"YulFunctionCall","src":"2405:34:103"},"nodeType":"YulExpressionStatement","src":"2405:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2476:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2461:3:103"},"nodeType":"YulFunctionCall","src":"2461:19:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2482:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2490:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2448:12:103"},"nodeType":"YulFunctionCall","src":"2448:49:103"},"nodeType":"YulExpressionStatement","src":"2448:49:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2521:9:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2532:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2517:3:103"},"nodeType":"YulFunctionCall","src":"2517:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"2541:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2513:3:103"},"nodeType":"YulFunctionCall","src":"2513:32:103"},{"name":"tail","nodeType":"YulIdentifier","src":"2547:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2506:6:103"},"nodeType":"YulFunctionCall","src":"2506:46:103"},"nodeType":"YulExpressionStatement","src":"2506:46:103"},{"nodeType":"YulAssignment","src":"2561:63:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2577:9:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2596:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2604:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2592:3:103"},"nodeType":"YulFunctionCall","src":"2592:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2613:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2609:3:103"},"nodeType":"YulFunctionCall","src":"2609:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2588:3:103"},"nodeType":"YulFunctionCall","src":"2588:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2573:3:103"},"nodeType":"YulFunctionCall","src":"2573:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2620:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2569:3:103"},"nodeType":"YulFunctionCall","src":"2569:55:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2561:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2198:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2209:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2217:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2225:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2233:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2244:4:103","type":""}],"src":"2068:562:103"},{"body":{"nodeType":"YulBlock","src":"2730:92:103","statements":[{"nodeType":"YulAssignment","src":"2740:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2752:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2763:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2748:3:103"},"nodeType":"YulFunctionCall","src":"2748:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2740:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2782:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2807:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2800:6:103"},"nodeType":"YulFunctionCall","src":"2800:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2793:6:103"},"nodeType":"YulFunctionCall","src":"2793:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2775:6:103"},"nodeType":"YulFunctionCall","src":"2775:41:103"},"nodeType":"YulExpressionStatement","src":"2775:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2699:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2710:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2721:4:103","type":""}],"src":"2635:187:103"},{"body":{"nodeType":"YulBlock","src":"2948:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"2958:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2968:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2962:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2986:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2997:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2979:6:103"},"nodeType":"YulFunctionCall","src":"2979:21:103"},"nodeType":"YulExpressionStatement","src":"2979:21:103"},{"nodeType":"YulVariableDeclaration","src":"3009:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3029:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3023:5:103"},"nodeType":"YulFunctionCall","src":"3023:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3013:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3056:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3067:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3052:3:103"},"nodeType":"YulFunctionCall","src":"3052:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"3072:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3045:6:103"},"nodeType":"YulFunctionCall","src":"3045:34:103"},"nodeType":"YulExpressionStatement","src":"3045:34:103"},{"nodeType":"YulVariableDeclaration","src":"3088:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"3097:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3092:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3160:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3189:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"3200:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3185:3:103"},"nodeType":"YulFunctionCall","src":"3185:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"3204:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3181:3:103"},"nodeType":"YulFunctionCall","src":"3181:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3223:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"3231:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3219:3:103"},"nodeType":"YulFunctionCall","src":"3219:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3235:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3215:3:103"},"nodeType":"YulFunctionCall","src":"3215:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3209:5:103"},"nodeType":"YulFunctionCall","src":"3209:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3174:6:103"},"nodeType":"YulFunctionCall","src":"3174:66:103"},"nodeType":"YulExpressionStatement","src":"3174:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3121:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3124:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3118:2:103"},"nodeType":"YulFunctionCall","src":"3118:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3132:19:103","statements":[{"nodeType":"YulAssignment","src":"3134:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3143:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3146:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3139:3:103"},"nodeType":"YulFunctionCall","src":"3139:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3134:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"3114:3:103","statements":[]},"src":"3110:140:103"},{"body":{"nodeType":"YulBlock","src":"3284:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3313:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"3324:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3309:3:103"},"nodeType":"YulFunctionCall","src":"3309:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"3333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3305:3:103"},"nodeType":"YulFunctionCall","src":"3305:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"3338:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3298:6:103"},"nodeType":"YulFunctionCall","src":"3298:45:103"},"nodeType":"YulExpressionStatement","src":"3298:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3265:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3268:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3262:2:103"},"nodeType":"YulFunctionCall","src":"3262:13:103"},"nodeType":"YulIf","src":"3259:2:103"},{"nodeType":"YulAssignment","src":"3362:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3378:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3397:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3405:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3393:3:103"},"nodeType":"YulFunctionCall","src":"3393:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3414:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3410:3:103"},"nodeType":"YulFunctionCall","src":"3410:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3389:3:103"},"nodeType":"YulFunctionCall","src":"3389:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3374:3:103"},"nodeType":"YulFunctionCall","src":"3374:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"3421:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3370:3:103"},"nodeType":"YulFunctionCall","src":"3370:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3362:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2917:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2928:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2939:4:103","type":""}],"src":"2827:603:103"},{"body":{"nodeType":"YulBlock","src":"3609:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3619:6:103"},"nodeType":"YulFunctionCall","src":"3619:21:103"},"nodeType":"YulExpressionStatement","src":"3619:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3660:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3671:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3656:3:103"},"nodeType":"YulFunctionCall","src":"3656:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3676:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3649:6:103"},"nodeType":"YulFunctionCall","src":"3649:30:103"},"nodeType":"YulExpressionStatement","src":"3649:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3699:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3710:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3695:3:103"},"nodeType":"YulFunctionCall","src":"3695:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3715:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3688:6:103"},"nodeType":"YulFunctionCall","src":"3688:62:103"},"nodeType":"YulExpressionStatement","src":"3688:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3770:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3781:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3766:3:103"},"nodeType":"YulFunctionCall","src":"3766:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3786:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3759:6:103"},"nodeType":"YulFunctionCall","src":"3759:33:103"},"nodeType":"YulExpressionStatement","src":"3759:33:103"},{"nodeType":"YulAssignment","src":"3801:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3813:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3824:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3809:3:103"},"nodeType":"YulFunctionCall","src":"3809:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3801:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3586:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3600:4:103","type":""}],"src":"3435:399:103"},{"body":{"nodeType":"YulBlock","src":"4013:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4030:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4041:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4023:6:103"},"nodeType":"YulFunctionCall","src":"4023:21:103"},"nodeType":"YulExpressionStatement","src":"4023:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4075:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4060:3:103"},"nodeType":"YulFunctionCall","src":"4060:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4080:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4053:6:103"},"nodeType":"YulFunctionCall","src":"4053:30:103"},"nodeType":"YulExpressionStatement","src":"4053:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4103:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4114:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4099:3:103"},"nodeType":"YulFunctionCall","src":"4099:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4119:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4092:6:103"},"nodeType":"YulFunctionCall","src":"4092:62:103"},"nodeType":"YulExpressionStatement","src":"4092:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4185:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4170:3:103"},"nodeType":"YulFunctionCall","src":"4170:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4190:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4163:6:103"},"nodeType":"YulFunctionCall","src":"4163:32:103"},"nodeType":"YulExpressionStatement","src":"4163:32:103"},{"nodeType":"YulAssignment","src":"4204:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4227:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4212:3:103"},"nodeType":"YulFunctionCall","src":"4212:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4204:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3990:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4004:4:103","type":""}],"src":"3839:398:103"},{"body":{"nodeType":"YulBlock","src":"4416:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4444:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4426:6:103"},"nodeType":"YulFunctionCall","src":"4426:21:103"},"nodeType":"YulExpressionStatement","src":"4426:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4467:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4478:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4463:3:103"},"nodeType":"YulFunctionCall","src":"4463:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4483:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4456:6:103"},"nodeType":"YulFunctionCall","src":"4456:30:103"},"nodeType":"YulExpressionStatement","src":"4456:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4506:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4517:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4502:3:103"},"nodeType":"YulFunctionCall","src":"4502:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4522:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4495:6:103"},"nodeType":"YulFunctionCall","src":"4495:59:103"},"nodeType":"YulExpressionStatement","src":"4495:59:103"},{"nodeType":"YulAssignment","src":"4563:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4575:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4586:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4571:3:103"},"nodeType":"YulFunctionCall","src":"4571:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4563:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4393:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4407:4:103","type":""}],"src":"4242:353:103"},{"body":{"nodeType":"YulBlock","src":"4774:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4791:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4802:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4784:6:103"},"nodeType":"YulFunctionCall","src":"4784:21:103"},"nodeType":"YulExpressionStatement","src":"4784:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4825:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4836:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4821:3:103"},"nodeType":"YulFunctionCall","src":"4821:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4841:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4814:6:103"},"nodeType":"YulFunctionCall","src":"4814:30:103"},"nodeType":"YulExpressionStatement","src":"4814:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4864:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4875:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4860:3:103"},"nodeType":"YulFunctionCall","src":"4860:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4880:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4853:6:103"},"nodeType":"YulFunctionCall","src":"4853:62:103"},"nodeType":"YulExpressionStatement","src":"4853:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4935:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4946:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4931:3:103"},"nodeType":"YulFunctionCall","src":"4931:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4951:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4924:6:103"},"nodeType":"YulFunctionCall","src":"4924:36:103"},"nodeType":"YulExpressionStatement","src":"4924:36:103"},{"nodeType":"YulAssignment","src":"4969:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4981:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4992:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4977:3:103"},"nodeType":"YulFunctionCall","src":"4977:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4969:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4751:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4765:4:103","type":""}],"src":"4600:402:103"},{"body":{"nodeType":"YulBlock","src":"5181:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5198:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5209:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5191:6:103"},"nodeType":"YulFunctionCall","src":"5191:21:103"},"nodeType":"YulExpressionStatement","src":"5191:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5232:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5243:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5228:3:103"},"nodeType":"YulFunctionCall","src":"5228:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5248:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5221:6:103"},"nodeType":"YulFunctionCall","src":"5221:30:103"},"nodeType":"YulExpressionStatement","src":"5221:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5282:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5267:3:103"},"nodeType":"YulFunctionCall","src":"5267:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5287:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5260:6:103"},"nodeType":"YulFunctionCall","src":"5260:62:103"},"nodeType":"YulExpressionStatement","src":"5260:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5353:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5338:3:103"},"nodeType":"YulFunctionCall","src":"5338:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5358:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5331:6:103"},"nodeType":"YulFunctionCall","src":"5331:35:103"},"nodeType":"YulExpressionStatement","src":"5331:35:103"},{"nodeType":"YulAssignment","src":"5375:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5398:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5383:3:103"},"nodeType":"YulFunctionCall","src":"5383:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5375:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5158:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5172:4:103","type":""}],"src":"5007:401:103"},{"body":{"nodeType":"YulBlock","src":"5587:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5615:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5597:6:103"},"nodeType":"YulFunctionCall","src":"5597:21:103"},"nodeType":"YulExpressionStatement","src":"5597:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5649:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5634:3:103"},"nodeType":"YulFunctionCall","src":"5634:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5654:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5627:6:103"},"nodeType":"YulFunctionCall","src":"5627:30:103"},"nodeType":"YulExpressionStatement","src":"5627:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5688:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5673:3:103"},"nodeType":"YulFunctionCall","src":"5673:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5693:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5666:6:103"},"nodeType":"YulFunctionCall","src":"5666:62:103"},"nodeType":"YulExpressionStatement","src":"5666:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5759:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5744:3:103"},"nodeType":"YulFunctionCall","src":"5744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5764:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5737:6:103"},"nodeType":"YulFunctionCall","src":"5737:34:103"},"nodeType":"YulExpressionStatement","src":"5737:34:103"},{"nodeType":"YulAssignment","src":"5780:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5803:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5788:3:103"},"nodeType":"YulFunctionCall","src":"5788:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5780:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5564:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5578:4:103","type":""}],"src":"5413:400:103"},{"body":{"nodeType":"YulBlock","src":"5992:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6020:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6002:6:103"},"nodeType":"YulFunctionCall","src":"6002:21:103"},"nodeType":"YulExpressionStatement","src":"6002:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6043:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6054:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6039:3:103"},"nodeType":"YulFunctionCall","src":"6039:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6059:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6032:6:103"},"nodeType":"YulFunctionCall","src":"6032:30:103"},"nodeType":"YulExpressionStatement","src":"6032:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6082:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6093:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6078:3:103"},"nodeType":"YulFunctionCall","src":"6078:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6098:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6071:6:103"},"nodeType":"YulFunctionCall","src":"6071:62:103"},"nodeType":"YulExpressionStatement","src":"6071:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6164:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6149:3:103"},"nodeType":"YulFunctionCall","src":"6149:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6169:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6142:6:103"},"nodeType":"YulFunctionCall","src":"6142:35:103"},"nodeType":"YulExpressionStatement","src":"6142:35:103"},{"nodeType":"YulAssignment","src":"6186:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6198:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6209:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6194:3:103"},"nodeType":"YulFunctionCall","src":"6194:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6186:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5969:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5983:4:103","type":""}],"src":"5818:401:103"},{"body":{"nodeType":"YulBlock","src":"6325:76:103","statements":[{"nodeType":"YulAssignment","src":"6335:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6347:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6358:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6343:3:103"},"nodeType":"YulFunctionCall","src":"6343:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6335:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6377:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6388:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6370:6:103"},"nodeType":"YulFunctionCall","src":"6370:25:103"},"nodeType":"YulExpressionStatement","src":"6370:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6294:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6305:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6316:4:103","type":""}],"src":"6224:177:103"},{"body":{"nodeType":"YulBlock","src":"6503:87:103","statements":[{"nodeType":"YulAssignment","src":"6513:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6536:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6521:3:103"},"nodeType":"YulFunctionCall","src":"6521:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6513:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6555:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6570:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6578:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6566:3:103"},"nodeType":"YulFunctionCall","src":"6566:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6548:6:103"},"nodeType":"YulFunctionCall","src":"6548:36:103"},"nodeType":"YulExpressionStatement","src":"6548:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6472:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6483:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6494:4:103","type":""}],"src":"6406:184:103"},{"body":{"nodeType":"YulBlock","src":"6643:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"6678:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"6699:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6708:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6713:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6704:3:103"},"nodeType":"YulFunctionCall","src":"6704:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6692:6:103"},"nodeType":"YulFunctionCall","src":"6692:33:103"},"nodeType":"YulExpressionStatement","src":"6692:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6745:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6748:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6738:6:103"},"nodeType":"YulFunctionCall","src":"6738:15:103"},"nodeType":"YulExpressionStatement","src":"6738:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"6773:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"6778:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6766:6:103"},"nodeType":"YulFunctionCall","src":"6766:17:103"},"nodeType":"YulExpressionStatement","src":"6766:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6659:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"6666:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6662:3:103"},"nodeType":"YulFunctionCall","src":"6662:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6656:2:103"},"nodeType":"YulFunctionCall","src":"6656:13:103"},"nodeType":"YulIf","src":"6653:2:103"},{"nodeType":"YulAssignment","src":"6802:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"6813:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"6816:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6809:3:103"},"nodeType":"YulFunctionCall","src":"6809:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"6802:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"6626:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"6629:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"6635:3:103","type":""}],"src":"6595:229:103"},{"body":{"nodeType":"YulBlock","src":"6884:325:103","statements":[{"nodeType":"YulAssignment","src":"6894:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"6908:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"6914:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6904:3:103"},"nodeType":"YulFunctionCall","src":"6904:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"6894:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6925:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"6955:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"6961:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6951:3:103"},"nodeType":"YulFunctionCall","src":"6951:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"6929:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7002:31:103","statements":[{"nodeType":"YulAssignment","src":"7004:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7018:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7026:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7014:3:103"},"nodeType":"YulFunctionCall","src":"7014:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"7004:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"6982:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6975:6:103"},"nodeType":"YulFunctionCall","src":"6975:26:103"},"nodeType":"YulIf","src":"6972:2:103"},{"body":{"nodeType":"YulBlock","src":"7092:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7113:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7120:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7125:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7116:3:103"},"nodeType":"YulFunctionCall","src":"7116:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7106:6:103"},"nodeType":"YulFunctionCall","src":"7106:31:103"},"nodeType":"YulExpressionStatement","src":"7106:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7157:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7160:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7150:6:103"},"nodeType":"YulFunctionCall","src":"7150:15:103"},"nodeType":"YulExpressionStatement","src":"7150:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7185:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7188:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7178:6:103"},"nodeType":"YulFunctionCall","src":"7178:15:103"},"nodeType":"YulExpressionStatement","src":"7178:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"7048:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7071:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7079:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"7068:2:103"},"nodeType":"YulFunctionCall","src":"7068:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7045:2:103"},"nodeType":"YulFunctionCall","src":"7045:38:103"},"nodeType":"YulIf","src":"7042:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"6864:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"6873:6:103","type":""}],"src":"6829:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value3, value3) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value3, value3) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value3, value3) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value3, value3) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value3, value3) }\n value2 := add(_2, 32)\n value3 := length\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n mstore(add(headStart, 96), value3)\n calldatacopy(add(headStart, 128), value2, value3)\n mstore(add(add(headStart, value3), 128), tail)\n tail := add(add(headStart, and(add(value3, 31), not(31))), 128)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100b45760003560e01c80634000aea0116100715780634000aea01461014157806370a082311461015457806395d89b4114610167578063a457c2d71461016f578063a9059cbb14610182578063dd62ed3e14610195576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101a8565b6040516100ce9190610910565b60405180910390f35b6100ea6100e536600461081d565b61023a565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046107e2565b610252565b604051601281526020016100ce565b6100ea61013c36600461081d565b610276565b6100ea61014f366004610846565b610298565b6100fe61016236600461078f565b6102b8565b6100c16102d7565b6100ea61017d36600461081d565b6102e6565b6100ea61019036600461081d565b610366565b6100fe6101a33660046107b0565b610374565b6060600380546101b790610987565b80601f01602080910402602001604051908101604052809291908181526020018280546101e390610987565b80156102305780601f1061020557610100808354040283529160200191610230565b820191906000526020600020905b81548152906001019060200180831161021357829003601f168201915b5050505050905090565b60003361024881858561039f565b5060019392505050565b6000336102608582856104c3565b61026b85858561053d565b506001949350505050565b6000336102488185856102898383610374565b6102939190610963565b61039f565b60006102a48585610366565b50843b1561026b5761026b8585858561070b565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546101b790610987565b600033816102f48286610374565b9050838110156103595760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61026b828686840361039f565b60003361024881858561053d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610350565b6001600160a01b0382166104625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610350565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104cf8484610374565b90506000198114610537578181101561052a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610350565b610537848484840361039f565b50505050565b6001600160a01b0383166105a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610350565b6001600160a01b0382166106035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610350565b6001600160a01b0383166000908152602081905260409020548181101561067b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610350565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106b2908490610963565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106fe91815260200190565b60405180910390a3610537565b604051635260769b60e11b815284906001600160a01b0382169063a4c0ed369061073f9033908890889088906004016108c8565b600060405180830381600087803b15801561075957600080fd5b505af115801561076d573d6000803e3d6000fd5b505050505050505050565b80356001600160a01b03811681146102d257600080fd5b6000602082840312156107a0578081fd5b6107a982610778565b9392505050565b600080604083850312156107c2578081fd5b6107cb83610778565b91506107d960208401610778565b90509250929050565b6000806000606084860312156107f6578081fd5b6107ff84610778565b925061080d60208501610778565b9150604084013590509250925092565b6000806040838503121561082f578182fd5b61083883610778565b946020939093013593505050565b6000806000806060858703121561085b578081fd5b61086485610778565b935060208501359250604085013567ffffffffffffffff80821115610887578283fd5b818701915087601f83011261089a578283fd5b8135818111156108a8578384fd5b8860208285010111156108b9578384fd5b95989497505060200194505050565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6000602080835283518082850152825b8181101561093c57858101830151858201604001528201610920565b8181111561094d5783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561098257634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061099b57607f821691505b602082108114156109bc57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220f3d8363e9fb1f29b8d17cfb6891464862284d9a7fc6aa7fae16e70cee2835a4064736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xB4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4000AEA0 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0x4000AEA0 EQ PUSH2 0x141 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x154 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x182 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x195 JUMPI PUSH2 0xB4 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x12E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC1 PUSH2 0x1A8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCE SWAP2 SWAP1 PUSH2 0x910 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xEA PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x23A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x11A CALLDATASIZE PUSH1 0x4 PUSH2 0x7E2 JUMP JUMPDEST PUSH2 0x252 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCE JUMP JUMPDEST PUSH2 0xEA PUSH2 0x13C CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x276 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x14F CALLDATASIZE PUSH1 0x4 PUSH2 0x846 JUMP JUMPDEST PUSH2 0x298 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x162 CALLDATASIZE PUSH1 0x4 PUSH2 0x78F JUMP JUMPDEST PUSH2 0x2B8 JUMP JUMPDEST PUSH2 0xC1 PUSH2 0x2D7 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x17D CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH2 0xEA PUSH2 0x190 CALLDATASIZE PUSH1 0x4 PUSH2 0x81D JUMP JUMPDEST PUSH2 0x366 JUMP JUMPDEST PUSH2 0xFE PUSH2 0x1A3 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B0 JUMP JUMPDEST PUSH2 0x374 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x1B7 SWAP1 PUSH2 0x987 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E3 SWAP1 PUSH2 0x987 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x230 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x205 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x230 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x213 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x39F JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x260 DUP6 DUP3 DUP6 PUSH2 0x4C3 JUMP JUMPDEST PUSH2 0x26B DUP6 DUP6 DUP6 PUSH2 0x53D JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x289 DUP4 DUP4 PUSH2 0x374 JUMP JUMPDEST PUSH2 0x293 SWAP2 SWAP1 PUSH2 0x963 JUMP JUMPDEST PUSH2 0x39F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A4 DUP6 DUP6 PUSH2 0x366 JUMP JUMPDEST POP DUP5 EXTCODESIZE ISZERO PUSH2 0x26B JUMPI PUSH2 0x26B DUP6 DUP6 DUP6 DUP6 PUSH2 0x70B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x1B7 SWAP1 PUSH2 0x987 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x2F4 DUP3 DUP7 PUSH2 0x374 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x359 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x26B DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x39F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x248 DUP2 DUP6 DUP6 PUSH2 0x53D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x401 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4CF DUP5 DUP5 PUSH2 0x374 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x537 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x52A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x350 JUMP JUMPDEST PUSH2 0x537 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x39F JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x603 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x67B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x350 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x6B2 SWAP1 DUP5 SWAP1 PUSH2 0x963 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x6FE SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x537 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x5260769B PUSH1 0xE1 SHL DUP2 MSTORE DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA4C0ED36 SWAP1 PUSH2 0x73F SWAP1 CALLER SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x8C8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x759 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x76D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7A0 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7A9 DUP3 PUSH2 0x778 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7C2 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7CB DUP4 PUSH2 0x778 JUMP JUMPDEST SWAP2 POP PUSH2 0x7D9 PUSH1 0x20 DUP5 ADD PUSH2 0x778 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7F6 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7FF DUP5 PUSH2 0x778 JUMP JUMPDEST SWAP3 POP PUSH2 0x80D PUSH1 0x20 DUP6 ADD PUSH2 0x778 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x82F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x838 DUP4 PUSH2 0x778 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x85B JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x864 DUP6 PUSH2 0x778 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x887 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x89A JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8A8 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x8B9 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP POP PUSH1 0x20 ADD SWAP5 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x93C JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x920 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x94D JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x982 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x99B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x9BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURN 0xD8 CALLDATASIZE RETURNDATACOPY SWAP16 0xB1 CALLCODE SWAP12 DUP14 OR 0xCF 0xB6 DUP10 EQ PUSH5 0x862284D9A7 0xFC PUSH11 0xA7FAE16E70CEE2835A4064 PUSH20 0x6F6C634300080200330000000000000000000000 ","sourceMap":"249:869:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;2800:14:103;;2793:22;2775:41;;2763:2;2748:18;4433:197:49;2730:92:103;3244:106:49;3331:12;;3244:106;;;6370:25:103;;;6358:2;6343:18;3244:106:49;6325:76:103;5192:286:49;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;6548:36:103;;6536:2;6521:18;3093:91:49;6503:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;411:312:70:-;;;;;;:::i;:::-;;:::i;3408:125:49:-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;2156:98::-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:49;;5192:286;-1:-1:-1;;;;5192:286:49:o;5873:234::-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;411:312:70:-;500:12;523:27;538:3;543:6;523:14;:27::i;:::-;-1:-1:-1;1063:18:70;;1099:10;614:82;;649:36;666:3;671:6;679:5;;649:16;:36::i;3408:125:49:-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;6020:2:103;6803:85:49;;;6002:21:103;6059:2;6039:18;;;6032:30;6098:34;6078:18;;;6071:62;-1:-1:-1;;;6149:18:103;;;6142:35;6194:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;5615:2:103;10233:68:49;;;5597:21:103;5654:2;5634:18;;;5627:30;5693:34;5673:18;;;5666:62;-1:-1:-1;;;5744:18:103;;;5737:34;5788:19;;10233:68:49;5587:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;4041:2:103;10311:68:49;;;4023:21:103;4080:2;4060:18;;;4053:30;4119:34;4099:18;;;4092:62;-1:-1:-1;;;4170:18:103;;;4163:32;4212:19;;10311:68:49;4013:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;6370:25:103;;;10441:32:49;;6343:18:103;10441:32:49;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;4444:2:103;11010:68:49;;;4426:21:103;4483:2;4463:18;;;4456:30;4522:31;4502:18;;;4495:59;4571:18;;11010:68:49;4416:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;5209:2:103;7593:68:49;;;5191:21:103;5248:2;5228:18;;;5221:30;5287:34;5267:18;;;5260:62;-1:-1:-1;;;5338:18:103;;;5331:35;5383:19;;7593:68:49;5181:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;3637:2:103;7671:64:49;;;3619:21:103;3676:2;3656:18;;;3649:30;3715:34;3695:18;;;3688:62;-1:-1:-1;;;3766:18:103;;;3759:33;3809:19;;7671:64:49;3609:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;4802:2:103;7842:72:49;;;4784:21:103;4841:2;4821:18;;;4814:30;4880:34;4860:18;;;4853:62;-1:-1:-1;;;4931:18:103;;;4924:36;4977:19;;7842:72:49;4774:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;6370:25:103;;6358:2;6343:18;;6325:76;8045:26:49;;;;;;;;8082:37;11786:121;729:205:70;876:51;;-1:-1:-1;;;876:51:70;;862:3;;-1:-1:-1;;;;;876:24:70;;;;;:51;;901:10;;913:6;;921:5;;;;876:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;729:205;;;;;:::o;14:173:103:-;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:103:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1280:783::-;;;;;1445:2;1433:9;1424:7;1420:23;1416:32;1413:2;;;1466:6;1458;1451:22;1413:2;1494:29;1513:9;1494:29;:::i;:::-;1484:39;;1570:2;1559:9;1555:18;1542:32;1532:42;;1625:2;1614:9;1610:18;1597:32;1648:18;1689:2;1681:6;1678:14;1675:2;;;1710:6;1702;1695:22;1675:2;1753:6;1742:9;1738:22;1728:32;;1798:7;1791:4;1787:2;1783:13;1779:27;1769:2;;1825:6;1817;1810:22;1769:2;1870;1857:16;1896:2;1888:6;1885:14;1882:2;;;1917:6;1909;1902:22;1882:2;1967:7;1962:2;1953:6;1949:2;1945:15;1941:24;1938:37;1935:2;;;1993:6;1985;1978:22;1935:2;1403:660;;;;-1:-1:-1;;2029:2:103;2021:11;;-1:-1:-1;;;1403:660:103:o;2068:562::-;-1:-1:-1;;;;;2281:32:103;;2263:51;;2345:2;2330:18;;2323:34;;;2393:2;2388;2373:18;;2366:30;;;2412:18;;2405:34;;;2068:562;2432:6;2482;2476:3;2461:19;;2448:49;2517:22;;;2541:3;2513:32;;;2506:46;;;;2613:2;2592:15;;;-1:-1:-1;;2588:29:103;2573:45;2569:55;;2253:377;-1:-1:-1;;;2253:377:103:o;2827:603::-;;2968:2;2997;2986:9;2979:21;3029:6;3023:13;3072:6;3067:2;3056:9;3052:18;3045:34;3097:4;3110:140;3124:6;3121:1;3118:13;3110:140;;;3219:14;;;3215:23;;3209:30;3185:17;;;3204:2;3181:26;3174:66;3139:10;;3110:140;;;3268:6;3265:1;3262:13;3259:2;;;3338:4;3333:2;3324:6;3313:9;3309:22;3305:31;3298:45;3259:2;-1:-1:-1;3414:2:103;3393:15;-1:-1:-1;;3389:29:103;3374:45;;;;3421:2;3370:54;;2948:482;-1:-1:-1;;;2948:482:103:o;6595:229::-;;6666:1;6662:6;6659:1;6656:13;6653:2;;;-1:-1:-1;;;6692:33:103;;6748:4;6745:1;6738:15;6778:4;6699:3;6766:17;6653:2;-1:-1:-1;6809:9:103;;6643:181::o;6829:380::-;6914:1;6904:12;;6961:1;6951:12;;;6972:2;;7026:4;7018:6;7014:17;7004:27;;6972:2;7079;7071:6;7068:14;7048:18;7045:38;7042:2;;;7125:10;7120:3;7116:20;7113:1;7106:31;7160:4;7157:1;7150:15;7188:4;7185:1;7178:15;7042:2;;6884:325;;;:::o"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferAndCall(address,uint256,bytes)":"4000aea0","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/mock/ChainlinkToken.sol\":\"ChainlinkToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/examples/mock/ChainlinkToken.sol\":{\"keccak256\":\"0x48b6b5b600825dfe7a3377b61304d2550adc7617816f1f8ccb6c857da6238853\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f5b65369b7a3a6cb361712cbb8058c7a509bf7eb0e3389f2c416fcf526aea9c\",\"dweb:/ipfs/QmPYrVHNoXjX9BMhqJrcupLFgaXSfswxnK9N92wmWcXFrE\"]}},\"version\":1}"},"ERC677Receiver":{"abi":[{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"onTokenTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"onTokenTransfer(address,uint256,bytes)":"a4c0ed36"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onTokenTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/mock/ChainlinkToken.sol\":\"ERC677Receiver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/examples/mock/ChainlinkToken.sol\":{\"keccak256\":\"0x48b6b5b600825dfe7a3377b61304d2550adc7617816f1f8ccb6c857da6238853\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f5b65369b7a3a6cb361712cbb8058c7a509bf7eb0e3389f2c416fcf526aea9c\",\"dweb:/ipfs/QmPYrVHNoXjX9BMhqJrcupLFgaXSfswxnK9N92wmWcXFrE\"]}},\"version\":1}"}},"contracts/examples/strings.sol":{"strings":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a39611688c0ac4789558bf2ee98f59e4dcce4418533237488fd2a2f3474b59c064736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 SWAP7 GT PUSH9 0x8C0AC4789558BF2EE9 DUP16 MSIZE 0xE4 0xDC 0xCE DIFFICULTY XOR MSTORE8 ORIGIN CALLDATACOPY 0x48 DUP16 0xD2 LOG2 RETURN SELFBALANCE 0x4B MSIZE 0xC0 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2137:2345:71:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;2137:2345:71;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a39611688c0ac4789558bf2ee98f59e4dcce4418533237488fd2a2f3474b59c064736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG3 SWAP7 GT PUSH9 0x8C0AC4789558BF2EE9 DUP16 MSIZE 0xE4 0xDC 0xCE DIFFICULTY XOR MSTORE8 ORIGIN CALLDATACOPY 0x48 DUP16 0xD2 LOG2 RETURN SELFBALANCE 0x4B MSIZE 0xC0 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2137:2345:71:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/examples/strings.sol\":\"strings\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/examples/strings.sol\":{\"keccak256\":\"0xfd738537e99c62a46a327a80f52679483a45b4fde2f30c7b68c7d975486b7ba5\",\"license\":\"Apache2\",\"urls\":[\"bzz-raw://695820bb46ee3dfaa66b81dd589494bb336aea479ec8accb62cff77b2f4c351c\",\"dweb:/ipfs/Qma9vkriFdLmcpwm8kPYQqLPnemKd2MeVsSCggvp2nzWUf\"]}},\"version\":1}"}},"contracts/flows/PolicyDefaultFlow.sol":{"PolicyDefaultFlow":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancelRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"closeClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPremiumAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"confirmClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"declineClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"expire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getApplicationData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"getClaimData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractFromRegistry","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"getPayoutData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"newApplication","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"newClaim","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"newPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPayoutAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"bytes","name":"_input","type":"bytes"},{"internalType":"string","name":"_callbackMethodName","type":"string"},{"internalType":"address","name":"_callbackContractAddress","type":"address"},{"internalType":"uint256","name":"_responsibleOracleId","type":"uint256"}],"name":"request","outputs":[{"internalType":"uint256","name":"_requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"revoke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:326:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:229:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"268:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"277:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"285:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"270:6:103"},"nodeType":"YulFunctionCall","src":"270:22:103"},"nodeType":"YulExpressionStatement","src":"270:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"238:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"249:3:103"},"nodeType":"YulFunctionCall","src":"249:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"245:3:103"},"nodeType":"YulFunctionCall","src":"245:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"234:3:103"},"nodeType":"YulFunctionCall","src":"234:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"224:2:103"},"nodeType":"YulFunctionCall","src":"224:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"217:6:103"},"nodeType":"YulFunctionCall","src":"217:50:103"},"nodeType":"YulIf","src":"214:2:103"},{"nodeType":"YulAssignment","src":"303:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"313:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:310:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a06040523480156200001157600080fd5b50604051620033f2380380620033f283398101604081905262000034916200004a565b60601b6001600160601b0319166080526200007a565b6000602082840312156200005c578081fd5b81516001600160a01b038116811462000073578182fd5b9392505050565b60805160601c613352620000a0600039600081816102400152611c1301526133526000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80637f29dba2116100b8578063b75c7dc61161007c578063b75c7dc6146102e1578063c46df94e146102f4578063c644179814610307578063e3ebdea51461031a578063fae43d151461034a578063fe64372b1461035d57610142565b80637f29dba21461027a5780638cc7d3d11461028d57806393b8414a146102a0578063a3f4df7e146102b3578063a5b25e71146102ce57610142565b806330a73da51161010a57806330a73da5146101dc57806339c79e0c146101ef5780634cda0de9146102025780634e02c63f14610215578063781d7846146102285780637b1039991461023b57610142565b806310b96080146101475780631b07b17f1461017057806322f86e7f146101935780632c933f22146101a65780633015394c146101c7575b600080fd5b61015a610155366004612da0565b610370565b60405161016791906131e1565b60405180910390f35b61018361017e366004612cdc565b61040e565b6040519015158152602001610167565b61015a6101a1366004612da0565b610747565b6101b96101b4366004612d0c565b6107d9565b604051908152602001610167565b6101da6101d5366004612cdc565b6109be565b005b6101da6101ea366004612e12565b610c46565b6101da6101fd366004612cdc565b610eff565b6101da610210366004612da0565b61120f565b6101da610223366004612e12565b611392565b6101b9610236366004612e3d565b611554565b6102627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610167565b6101da610288366004612da0565b611733565b6101da61029b366004612cdc565b6118b6565b6101b96102ae366004612bfb565b611a68565b6101b970506f6c69637944656661756c74466c6f7760781b81565b6102626102dc366004612cdc565b611bfa565b6101da6102ef366004612cdc565b611c9b565b61015a610302366004612cdc565b611e17565b6101da610315366004612cdc565b611eaf565b61032d610328366004612da0565b612120565b604080519315158452602084019290925290820152606001610167565b6101b9610358366004612dc1565b6124f9565b61032d61036b366004612da0565b6127cc565b6060600061037c612a9d565b60405163cef58f1360e01b815260048101869052602481018590529091506001600160a01b0382169063cef58f139060440160006040518083038186803b1580156103c657600080fd5b505afa1580156103da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612fc5565b60600151949350505050565b600081600061041b612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561046157600080fd5b505afa158015610475573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261049d9190810190612f47565b905060006104b66810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156104f857600080fd5b505afa15801561050c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105309190612cf4565b82602001511461055b5760405162461bcd60e51b815260040161055290613214565b60405180910390fd5b6000610565612ab6565b604051631b07b17f60e01b8152600481018990529091506001600160a01b03821690631b07b17f90602401602060405180830381600087803b1580156105aa57600080fd5b505af11580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e29190612c8e565b9550851561073d5760006105f4612a9d565b604051630b92aa5160e31b8152600481018a90529091506001600160a01b03821690635c95528890602401600060405180830381600087803b15801561063957600080fd5b505af115801561064d573d6000803e3d6000fd5b505060405163260a666160e11b8152600481018b90526001600160a01b0384169250634c14ccc29150602401600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505060405163a3f685f960e01b8152600481018b9052600092506001600160a01b038416915063a3f685f9906024016101206040518083038186803b1580156106ef57600080fd5b505afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610727919061303f565b9050610737898260200151612120565b50505050505b5050505050919050565b60606000610753612a9d565b604051637f22c2d960e01b815260048101869052602481018590529091506001600160a01b03821690637f22c2d99060440160006040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612e9c565b60008760006107e6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108689190810190612f47565b905060006108816810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156108c357600080fd5b505afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190612cf4565b82602001511461091d5760405162461bcd60e51b815260040161055290613214565b610925612ac8565b6001600160a01b0316632c933f228d8d8d8d8d8d8d6040518863ffffffff1660e01b815260040161095c9796959493929190613143565b602060405180830381600087803b15801561097657600080fd5b505af115801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae9190612cf4565b9c9b505050505050505050505050565b8060006109c9612ac8565b905060006109d5612ac8565b6001600160a01b0316639b04ed30846040518263ffffffff1660e01b8152600401610a0291815260200190565b60206040518083038186803b158015610a1a57600080fd5b505afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190612cf4565b90506000610a5e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae09190810190612f47565b90506000610af96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610b3b57600080fd5b505afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190612cf4565b826020015114610bd65760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5046442d3030353a5245515545535449445f50524f445543545f60448201526709a92a69a82a886960c31b6064820152608401610552565b610bde612ac8565b6001600160a01b03166340e58ee5886040518263ffffffff1660e01b8152600401610c0b91815260200190565b600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b5050505050505050505050565b826000610c51612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610c9657600080fd5b505afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce919061303f565b516002811115610cee57634e487b7160e01b600052602160045260246000fd5b1415610d3c5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b846000610d47612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dc99190810190612f47565b90506000610de26810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c9190612cf4565b826020015114610e7e5760405162461bcd60e51b815260040161055290613214565b6000610e88612a9d565b6040516330a73da560e01b8152600481018c9052602481018b9052604481018a90529091506001600160a01b038216906330a73da590606401600060405180830381600087803b158015610edb57600080fd5b505af1158015610eef573d6000803e3d6000fd5b5050505050505050505050505050565b806000610f0a612a9d565b9050600160405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610f4f57600080fd5b505afa158015610f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f87919061303f565b516002811115610fa757634e487b7160e01b600052602160045260246000fd5b14610ff45760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5046442d3030323a504f4c4943595f4e4f545f455850495245446044820152606401610552565b826000610fff612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110819190810190612f47565b9050600061109a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156110dc57600080fd5b505afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190612cf4565b8260200151146111365760405162461bcd60e51b815260040161055290613214565b6000611140612a9d565b6040516315b95b6560e31b8152600481018a90529091506001600160a01b0382169063adcadb2890602401600060405180830381600087803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b5050505060006111a7612ab6565b6040516367d42a8b60e01b8152600481018b90529091506001600160a01b038216906367d42a8b90602401600060405180830381600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b50505050505050505050505050565b81600061121a612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561126057600080fd5b505afa158015611274573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261129c9190810190612f47565b905060006112b56810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156112f757600080fd5b505afa15801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190612cf4565b8260200151146113515760405162461bcd60e51b815260040161055290613214565b600061135b612a9d565b604051634cda0de960e01b815260048101899052602481018890529091506001600160a01b03821690634cda0de990604401610c0b565b82600061139d612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156113e357600080fd5b505afa1580156113f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141f9190810190612f47565b905060006114386810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b29190612cf4565b8260200151146114d45760405162461bcd60e51b815260040161055290613214565b60006114de612a9d565b604051634e02c63f60e01b8152600481018a905260248101899052604481018890529091506001600160a01b03821690634e02c63f906064015b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050505050505050505050565b6000856000611561612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115e39190810190612f47565b905060006115fc6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116769190612cf4565b8260200151146116985760405162461bcd60e51b815260040161055290613214565b6116a0612a9d565b6001600160a01b031663db42b77b8b8b8b8b8b6040518663ffffffff1660e01b81526004016116d39594939291906131b0565b602060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117259190612cf4565b9a9950505050505050505050565b81600061173e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561178457600080fd5b505afa158015611798573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117c09190810190612f47565b905060006117d96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561181b57600080fd5b505afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118539190612cf4565b8260200151146118755760405162461bcd60e51b815260040161055290613214565b600061187f612a9d565b604051633f94edd160e11b815260048101899052602481018890529091506001600160a01b03821690637f29dba290604401610c0b565b8060006118c1612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561190757600080fd5b505afa15801561191b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119439190810190612f47565b9050600061195c6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561199e57600080fd5b505afa1580156119b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d69190612cf4565b8260200151146119f85760405162461bcd60e51b815260040161055290613214565b6000611a02612a9d565b60405163296d6c7d60e01b8152600481018890529091506001600160a01b0382169063296d6c7d906024015b600060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b50505050505050505050565b600080611a73612adb565b604051632b1c7f7360e01b81523360048201529091506000906001600160a01b03831690632b1c7f739060240160206040518083038186803b158015611ab857600080fd5b505afa158015611acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af09190612cf4565b90506000611afc612a9d565b6040516350c0a50d60e11b81529091506001600160a01b0382169063a1814a1a90611b31908e9086908d908d90600401613111565b602060405180830381600087803b158015611b4b57600080fd5b505af1158015611b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b839190612cf4565b6040516333c019b760e11b81529094506001600160a01b03821690636780336e90611bba9087908e908e908c908c906004016131b0565b600060405180830381600087803b158015611bd457600080fd5b505af1158015611be8573d6000803e3d6000fd5b50505050505050979650505050505050565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c5d57600080fd5b505afa158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190612bd8565b92915050565b806000611ca6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611cec57600080fd5b505afa158015611d00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d289190810190612f47565b90506000611d416810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015611d8357600080fd5b505afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190612cf4565b826020015114611ddd5760405162461bcd60e51b815260040161055290613214565b6000611de7612a9d565b60405163eb96cbed60e01b8152600481018890529091506001600160a01b0382169063eb96cbed90602401611a2e565b60606000611e23612a9d565b604051632f141bd960e21b8152600481018590529091506001600160a01b0382169063bc506f649060240160006040518083038186803b158015611e6657600080fd5b505afa158015611e7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ea29190810190612e9c565b606001519150505b919050565b806000611eba612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015611eff57600080fd5b505afa158015611f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f37919061303f565b516002811115611f5757634e487b7160e01b600052602160045260246000fd5b14611fa45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b826000611faf612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611ff557600080fd5b505afa158015612009573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120319190810190612f47565b9050600061204a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561208c57600080fd5b505afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190612cf4565b8260200151146120e65760405162461bcd60e51b815260040161055290613214565b60006120f0612a9d565b6040516308fc762760e31b8152600481018a90529091506001600160a01b038216906347e3b13890602401611518565b6000806000846000612130612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561217557600080fd5b505afa158015612189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ad919061303f565b5160028111156121cd57634e487b7160e01b600052602160045260246000fd5b141561221b5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b866000612226612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561226c57600080fd5b505afa158015612280573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122a89190810190612f47565b905060006122c16810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561230357600080fd5b505afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612cf4565b82602001511461235d5760405162461bcd60e51b815260040161055290613214565b6000612367612af2565b90506000612373612a9d565b6040516242104d60e31b8152600481018f9052602481018e90529091506001600160a01b03831690630210826890604401606060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f69190612ca8565b919c509a5098508a156124ea576001600160a01b03811663e3ebdea58e61241d8d8d61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801561245b57600080fd5b505af115801561246f573d6000803e3d6000fd5b50505050600061247d612ab6565b9050806001600160a01b031663021082688f8c6040518363ffffffff1660e01b81526004016124b6929190918252602082015260400190565b600060405180830381600087803b1580156124d057600080fd5b505af11580156124e4573d6000803e3d6000fd5b50505050505b50505050505050509250925092565b6000846000612506612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561254b57600080fd5b505afa15801561255f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612583919061303f565b5160028111156125a357634e487b7160e01b600052602160045260246000fd5b146125f05760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b8660006125fb612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561264157600080fd5b505afa158015612655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261267d9190810190612f47565b905060006126966810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156126d857600080fd5b505afa1580156126ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127109190612cf4565b8260200151146127325760405162461bcd60e51b815260040161055290613214565b61273a612a9d565b6001600160a01b031663ec9356688c8c8c8c6040518563ffffffff1660e01b815260040161276b9493929190613190565b602060405180830381600087803b15801561278557600080fd5b505af1158015612799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bd9190612cf4565b9b9a5050505050505050505050565b60008060008460006127dc612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561282257600080fd5b505afa158015612836573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261285e9190810190612f47565b905060006128776810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156128b957600080fd5b505afa1580156128cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f19190612cf4565b8260200151146129135760405162461bcd60e51b815260040161055290613214565b600061291d612af2565b60405163fe64372b60e01b8152600481018c9052602481018b90529091506001600160a01b0382169063fe64372b906044016040805180830381600087803b15801561296857600080fd5b505af115801561297c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a091906130c4565b909750955060006129af612a9d565b60405163fe64372b60e01b8152600481018d9052602481018c90529091506001600160a01b0382169063fe64372b90604401600060405180830381600087803b1580156129fb57600080fd5b505af1158015612a0f573d6000803e3d6000fd5b505050506000612a1d612ab6565b90506001600160a01b03811663fe64372b8d612a398c8c61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b158015612a7757600080fd5b505af1158015612a8b573d6000803e3d6000fd5b50505050505050505050509250925092565b6000612ab165506f6c69637960d01b611bfa565b905090565b6000612ab163141bdbdb60e21b611bfa565b6000612ab164517565727960d81b611bfa565b6000612ab16810dbdb5c1bdb995b9d60ba1b611bfa565b6000612ab167547265617375727960c01b611bfa565b80518015158114611eaa57600080fd5b60008083601f840112612b29578182fd5b50813567ffffffffffffffff811115612b40578182fd5b602083019150836020828501011115612b5857600080fd5b9250929050565b600082601f830112612b6f578081fd5b815167ffffffffffffffff811115612b8957612b896132e1565b612b9c601f8201601f191660200161325c565b818152846020838601011115612bb0578283fd5b612bc18260208301602087016132b1565b949350505050565b805160038110611eaa57600080fd5b600060208284031215612be9578081fd5b8151612bf4816132f7565b9392505050565b600080600080600080600060a0888a031215612c15578283fd5b8735612c20816132f7565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612c4a578485fd5b612c568b838c01612b18565b909650945060808a0135915080821115612c6e578384fd5b50612c7b8a828b01612b18565b989b979a50959850939692959293505050565b600060208284031215612c9f578081fd5b612bf482612b08565b600080600060608486031215612cbc578081fd5b612cc584612b08565b925060208401519150604084015190509250925092565b600060208284031215612ced578081fd5b5035919050565b600060208284031215612d05578081fd5b5051919050565b600080600080600080600060a0888a031215612d26578081fd5b87359650602088013567ffffffffffffffff80821115612d44578283fd5b612d508b838c01612b18565b909850965060408a0135915080821115612d68578283fd5b50612d758a828b01612b18565b9095509350506060880135612d89816132f7565b809250506080880135905092959891949750929550565b60008060408385031215612db2578182fd5b50508035926020909101359150565b60008060008060608587031215612dd6578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612dfa578283fd5b612e0687828801612b18565b95989497509550505050565b600080600060608486031215612e26578081fd5b505081359360208301359350604090920135919050565b600080600080600060808688031215612e54578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115612e7f578182fd5b612e8b88828901612b18565b969995985093965092949392505050565b600060208284031215612ead578081fd5b815167ffffffffffffffff80821115612ec4578283fd5b9083019060c08286031215612ed7578283fd5b612ee160c061325c565b8251612eec8161330f565b808252506020830151602082015260408301516040820152606083015182811115612f15578485fd5b612f2187828601612b5f565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612f58578081fd5b815167ffffffffffffffff80821115612f6f578283fd5b9083019060c08286031215612f82578283fd5b612f8c60c061325c565b8251612f97816132f7565b815260208381015190820152612faf60408401612bc9565b6040820152606083015182811115612f15578485fd5b600060208284031215612fd6578081fd5b815167ffffffffffffffff80821115612fed578283fd5b9083019060c08286031215613000578283fd5b61300a60c061325c565b8251815260208301516002811061301f578485fd5b602082015260408381015190820152606083015182811115612f15578485fd5b6000610120808385031215613052578182fd5b61305b8161325c565b905061306683612bc9565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080604083850312156130d6578182fd5b505080516020909101519092909150565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600060018060a01b0386168252846020830152606060408301526131396060830184866130e7565b9695505050505050565b600088825260a0602083015261315d60a08301888a6130e7565b82810360408401526131708187896130e7565b6001600160a01b0395909516606084015250506080015295945050505050565b6000858252846020830152606060408301526131396060830184866130e7565b6000868252856020830152846040830152608060608301526131d66080830184866130e7565b979650505050505050565b60006020825282518060208401526132008160408501602087016132b1565b601f01601f19169190910160400192915050565b60208082526028908201527f4552524f523a5046442d3030343a50524f4345535349445f50524f445543545f60408201526709a92a69a82a886960c31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613285576132856132e1565b604052919050565b600082198211156132ac57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156132cc5781810151838201526020016132b4565b838111156132db576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461330c57600080fd5b50565b6004811061330c57600080fdfea264697066735822122092c051776eb1683c4470104ec76b5b4902125ab9cd0e8ba206bb1da8cad8d51c64736f6c63430008020033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x33F2 CODESIZE SUB DUP1 PUSH3 0x33F2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x4A JUMP JUMPDEST PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH3 0x7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x5C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x73 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x3352 PUSH3 0xA0 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x240 ADD MSTORE PUSH2 0x1C13 ADD MSTORE PUSH2 0x3352 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F29DBA2 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xB75C7DC6 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xB75C7DC6 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0xC46DF94E EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0xC6441798 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0xFAE43D15 EQ PUSH2 0x34A JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x35D JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x27A JUMPI DUP1 PUSH4 0x8CC7D3D1 EQ PUSH2 0x28D JUMPI DUP1 PUSH4 0x93B8414A EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x2B3 JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x2CE JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x30A73DA5 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x39C79E0C EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x781D7846 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x23B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x10B96080 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x22F86E7F EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x2C933F22 EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x3015394C EQ PUSH2 0x1C7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x370 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x31E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x183 PUSH2 0x17E CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x1A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x747 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x1B4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D0C JUMP JUMPDEST PUSH2 0x7D9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x1D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x9BE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DA PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2E12 JUMP JUMPDEST PUSH2 0xC46 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x1FD CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0xEFF JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x120F JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E12 JUMP JUMPDEST PUSH2 0x1392 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E3D JUMP JUMPDEST PUSH2 0x1554 JUMP JUMPDEST PUSH2 0x262 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x288 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x1733 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x29B CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x18B6 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x2AE CALLDATASIZE PUSH1 0x4 PUSH2 0x2BFB JUMP JUMPDEST PUSH2 0x1A68 JUMP JUMPDEST PUSH2 0x1B9 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH2 0x262 PUSH2 0x2DC CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1BFA JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x2EF CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1C9B JUMP JUMPDEST PUSH2 0x15A PUSH2 0x302 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1E17 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1EAF JUMP JUMPDEST PUSH2 0x32D PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x2120 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x358 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DC1 JUMP JUMPDEST PUSH2 0x24F9 JUMP JUMPDEST PUSH2 0x32D PUSH2 0x36B CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x27CC JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x37C PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCEF58F13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xCEF58F13 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x402 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2FC5 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 PUSH2 0x41B PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x475 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x49D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4B6 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x50C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x530 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x565 PUSH2 0x2AB6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5E2 SWAP2 SWAP1 PUSH2 0x2C8E JUMP JUMPDEST SWAP6 POP DUP6 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 PUSH2 0x5F4 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB92AA51 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x5C955288 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x639 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x64D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x260A6661 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH4 0x4C14CCC2 SWAP2 POP PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x0 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 POP PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x703 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x727 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST SWAP1 POP PUSH2 0x737 DUP10 DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x2120 JUMP JUMPDEST POP POP POP POP POP JUMPDEST POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x753 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x79D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x402 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x0 PUSH2 0x7E6 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x82C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x840 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x868 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x881 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8FB SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x91D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x925 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2C933F22 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x95C SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3143 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x98A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AE SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x9C9 PUSH2 0x2AC8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9D5 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9B04ED30 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA02 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA52 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA5E PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xAE0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xAF9 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB4F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB73 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0xBD6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030353A5245515545535449445F50524F445543545F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x9A92A69A82A8869 PUSH1 0xC3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x552 JUMP JUMPDEST PUSH2 0xBDE PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x40E58EE5 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0B SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0xC51 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCCE SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCEE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xD3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030333A504F4C4943595F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH2 0xD47 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xDC9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xDE2 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE5C SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0xE7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE88 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0xF0A PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF87 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFA7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030323A504F4C4943595F4E4F545F45585049524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0xFFF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1045 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1059 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1081 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x109A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1114 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1136 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1140 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x15B95B65 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xADCADB28 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1199 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x11A7 PUSH2 0x2AB6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x67D42A8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x67D42A8B SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1200 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 PUSH2 0x121A PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1274 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x129C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x12B5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x130B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x132F SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1351 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x135B PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD PUSH2 0xC0B JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0x139D PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x141F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1438 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x148E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14B2 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x14D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14DE PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1532 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1546 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH1 0x0 PUSH2 0x1561 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x15E3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x15FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1652 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1676 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1698 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x16A0 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDB42B77B DUP12 DUP12 DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16D3 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x31B0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1701 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1725 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 PUSH2 0x173E PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1798 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x17C0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17D9 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x181B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x182F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1853 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1875 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x187F PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0xC0B JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x18C1 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x191B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1943 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x195C PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x199E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19D6 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x19F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A02 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296D6C7D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x296D6C7D SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1A73 PUSH2 0x2ADB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ACC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1AF0 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AFC PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x50C0A50D PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA1814A1A SWAP1 PUSH2 0x1B31 SWAP1 DUP15 SWAP1 DUP7 SWAP1 DUP14 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0x3111 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B83 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33C019B7 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6780336E SWAP1 PUSH2 0x1BBA SWAP1 DUP8 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x31B0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C71 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C95 SWAP2 SWAP1 PUSH2 0x2BD8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x1CA6 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D00 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1D28 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D41 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D97 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DBB SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1DDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DE7 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEB96CBED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xEB96CBED SWAP1 PUSH1 0x24 ADD PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1E23 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1EA2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x1EBA PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F13 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F37 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1F57 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1FA4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0x1FAF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2009 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2031 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x204A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20C4 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x20E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20F0 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8FC7627 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x47E3B138 SWAP1 PUSH1 0x24 ADD PUSH2 0x1518 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x2130 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2189 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21AD SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x21CD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x221B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030333A504F4C4943595F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP7 PUSH1 0x0 PUSH2 0x2226 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x226C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2280 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x22A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x22C1 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2317 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x233B SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x235D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2367 PUSH2 0x2AF2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2373 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x42104D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x2108268 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23F6 SWAP2 SWAP1 PUSH2 0x2CA8 JUMP JUMPDEST SWAP2 SWAP13 POP SWAP11 POP SWAP9 POP DUP11 ISZERO PUSH2 0x24EA JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH4 0xE3EBDEA5 DUP15 PUSH2 0x241D DUP14 DUP14 PUSH2 0x328D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x245B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x246F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x247D PUSH2 0x2AB6 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2108268 DUP16 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24B6 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x2506 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x254B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x255F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2583 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x25A3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x25F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP7 PUSH1 0x0 PUSH2 0x25FB PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x267D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2696 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2710 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x2732 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x273A PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEC935668 DUP13 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x276B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3190 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2785 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2799 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27BD SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x27DC PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x285E SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2877 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28F1 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x2913 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x291D PUSH2 0x2AF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2968 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x297C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x29A0 SWAP2 SWAP1 PUSH2 0x30C4 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x0 PUSH2 0x29AF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x2A1D PUSH2 0x2AB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH4 0xFE64372B DUP14 PUSH2 0x2A39 DUP13 DUP13 PUSH2 0x328D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1BFA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1BFA JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1EAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2B29 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B40 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2B58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2B6F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B89 JUMPI PUSH2 0x2B89 PUSH2 0x32E1 JUMP JUMPDEST PUSH2 0x2B9C PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x325C JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2BB0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2BC1 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x32B1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1EAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BE9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2BF4 DUP2 PUSH2 0x32F7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2C15 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH2 0x2C20 DUP2 PUSH2 0x32F7 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C4A JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2C56 DUP12 DUP4 DUP13 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2C6E JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2C7B DUP11 DUP3 DUP12 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C9F JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2BF4 DUP3 PUSH2 0x2B08 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2CBC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2CC5 DUP5 PUSH2 0x2B08 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CED JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D05 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2D26 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2D44 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2D50 DUP12 DUP4 DUP13 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D68 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2D75 DUP11 DUP3 DUP12 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH2 0x2D89 DUP2 PUSH2 0x32F7 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2DB2 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2DD6 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DFA JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2E06 DUP8 DUP3 DUP9 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2E26 JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2E54 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2E7F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2E8B DUP9 DUP3 DUP10 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EAD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2EC4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2ED7 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2EE1 PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2EEC DUP2 PUSH2 0x330F JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2F21 DUP8 DUP3 DUP7 ADD PUSH2 0x2B5F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F58 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F6F JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2F82 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2F8C PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2F97 DUP2 PUSH2 0x32F7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2FAF PUSH1 0x40 DUP5 ADD PUSH2 0x2BC9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FD6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2FED JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3000 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x300A PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x301F JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3052 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x305B DUP2 PUSH2 0x325C JUMP JUMPDEST SWAP1 POP PUSH2 0x3066 DUP4 PUSH2 0x2BC9 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x30D6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3139 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP9 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x315D PUSH1 0xA0 DUP4 ADD DUP9 DUP11 PUSH2 0x30E7 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3170 DUP2 DUP8 DUP10 PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3139 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31D6 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3200 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x32B1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030343A50524F4345535349445F50524F445543545F PUSH1 0x40 DUP3 ADD MSTORE PUSH8 0x9A92A69A82A8869 PUSH1 0xC3 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3285 JUMPI PUSH2 0x3285 PUSH2 0x32E1 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x32AC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x32CC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x32B4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x32DB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x330C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x330C JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 0xC0 MLOAD PUSH24 0x6EB1683C4470104EC76B5B4902125AB9CD0E8BA206BB1DA8 0xCA 0xD8 0xD5 SHR PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"565:10634:72:-:0;;;2580:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1300:31:91;;-1:-1:-1;;;;;;1300:31:91;;;565:10634:72;;14:310:103;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:103;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:103:o;:::-;565:10634:72;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:19438:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"71:107:103","statements":[{"nodeType":"YulAssignment","src":"81:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"96:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"90:5:103"},"nodeType":"YulFunctionCall","src":"90:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:103"}]},{"body":{"nodeType":"YulBlock","src":"156:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"165:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"168:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"158:6:103"},"nodeType":"YulFunctionCall","src":"158:12:103"},"nodeType":"YulExpressionStatement","src":"158:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"125:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"146:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"139:6:103"},"nodeType":"YulFunctionCall","src":"139:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"122:2:103"},"nodeType":"YulFunctionCall","src":"122:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"115:6:103"},"nodeType":"YulFunctionCall","src":"115:40:103"},"nodeType":"YulIf","src":"112:2:103"}]},"name":"abi_decode_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"50:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"61:5:103","type":""}],"src":"14:164:103"},{"body":{"nodeType":"YulBlock","src":"255:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"304:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"313:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"323:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"306:6:103"},"nodeType":"YulFunctionCall","src":"306:26:103"},"nodeType":"YulExpressionStatement","src":"306:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"283:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"291:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"298:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"268:6:103"},"nodeType":"YulFunctionCall","src":"268:35:103"},"nodeType":"YulIf","src":"265:2:103"},{"nodeType":"YulAssignment","src":"343:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"366:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"353:12:103"},"nodeType":"YulFunctionCall","src":"353:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"343:6:103"}]},{"body":{"nodeType":"YulBlock","src":"416:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"425:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"435:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"418:6:103"},"nodeType":"YulFunctionCall","src":"418:26:103"},"nodeType":"YulExpressionStatement","src":"418:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"396:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"385:2:103"},"nodeType":"YulFunctionCall","src":"385:30:103"},"nodeType":"YulIf","src":"382:2:103"},{"nodeType":"YulAssignment","src":"455:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"471:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"479:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"467:3:103"},"nodeType":"YulFunctionCall","src":"467:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"455:8:103"}]},{"body":{"nodeType":"YulBlock","src":"536:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"545:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"548:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"538:6:103"},"nodeType":"YulFunctionCall","src":"538:12:103"},"nodeType":"YulExpressionStatement","src":"538:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"507:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"515:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"503:3:103"},"nodeType":"YulFunctionCall","src":"503:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"524:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"499:3:103"},"nodeType":"YulFunctionCall","src":"499:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"531:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"496:2:103"},"nodeType":"YulFunctionCall","src":"496:39:103"},"nodeType":"YulIf","src":"493:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"218:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"226:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"234:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"244:6:103","type":""}],"src":"183:375:103"},{"body":{"nodeType":"YulBlock","src":"626:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"675:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"684:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"691:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"677:6:103"},"nodeType":"YulFunctionCall","src":"677:20:103"},"nodeType":"YulExpressionStatement","src":"677:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"654:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"662:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"650:3:103"},"nodeType":"YulFunctionCall","src":"650:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"669:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"646:3:103"},"nodeType":"YulFunctionCall","src":"646:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"639:6:103"},"nodeType":"YulFunctionCall","src":"639:35:103"},"nodeType":"YulIf","src":"636:2:103"},{"nodeType":"YulVariableDeclaration","src":"708:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"724:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"718:5:103"},"nodeType":"YulFunctionCall","src":"718:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"712:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"770:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"772:16:103"},"nodeType":"YulFunctionCall","src":"772:18:103"},"nodeType":"YulExpressionStatement","src":"772:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"746:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"750:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"743:2:103"},"nodeType":"YulFunctionCall","src":"743:26:103"},"nodeType":"YulIf","src":"740:2:103"},{"nodeType":"YulVariableDeclaration","src":"801:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"844:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"848:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"840:3:103"},"nodeType":"YulFunctionCall","src":"840:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"859:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"855:3:103"},"nodeType":"YulFunctionCall","src":"855:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"836:3:103"},"nodeType":"YulFunctionCall","src":"836:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"832:3:103"},"nodeType":"YulFunctionCall","src":"832:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"816:15:103"},"nodeType":"YulFunctionCall","src":"816:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"805:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"887:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"896:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"880:6:103"},"nodeType":"YulFunctionCall","src":"880:19:103"},"nodeType":"YulExpressionStatement","src":"880:19:103"},{"body":{"nodeType":"YulBlock","src":"947:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"956:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"963:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"949:6:103"},"nodeType":"YulFunctionCall","src":"949:20:103"},"nodeType":"YulExpressionStatement","src":"949:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"922:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"918:3:103"},"nodeType":"YulFunctionCall","src":"918:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"935:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"914:3:103"},"nodeType":"YulFunctionCall","src":"914:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"942:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"911:2:103"},"nodeType":"YulFunctionCall","src":"911:35:103"},"nodeType":"YulIf","src":"908:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1006:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1014:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1002:3:103"},"nodeType":"YulFunctionCall","src":"1002:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1025:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"1034:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1021:3:103"},"nodeType":"YulFunctionCall","src":"1021:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1041:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"980:21:103"},"nodeType":"YulFunctionCall","src":"980:64:103"},"nodeType":"YulExpressionStatement","src":"980:64:103"},{"nodeType":"YulAssignment","src":"1053:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"1062:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1053:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"600:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"608:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"616:5:103","type":""}],"src":"563:512:103"},{"body":{"nodeType":"YulBlock","src":"1153:87:103","statements":[{"nodeType":"YulAssignment","src":"1163:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1178:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1172:5:103"},"nodeType":"YulFunctionCall","src":"1172:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1163:5:103"}]},{"body":{"nodeType":"YulBlock","src":"1218:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1227:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1230:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1220:6:103"},"nodeType":"YulFunctionCall","src":"1220:12:103"},"nodeType":"YulExpressionStatement","src":"1220:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1207:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1214:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1204:2:103"},"nodeType":"YulFunctionCall","src":"1204:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1197:6:103"},"nodeType":"YulFunctionCall","src":"1197:20:103"},"nodeType":"YulIf","src":"1194:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1132:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1143:5:103","type":""}],"src":"1080:160:103"},{"body":{"nodeType":"YulBlock","src":"1326:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1372:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1381:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1389:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1374:6:103"},"nodeType":"YulFunctionCall","src":"1374:22:103"},"nodeType":"YulExpressionStatement","src":"1374:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1347:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1356:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1343:3:103"},"nodeType":"YulFunctionCall","src":"1343:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1368:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1339:3:103"},"nodeType":"YulFunctionCall","src":"1339:32:103"},"nodeType":"YulIf","src":"1336:2:103"},{"nodeType":"YulVariableDeclaration","src":"1407:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1426:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1420:5:103"},"nodeType":"YulFunctionCall","src":"1420:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1411:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1470:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1445:24:103"},"nodeType":"YulFunctionCall","src":"1445:31:103"},"nodeType":"YulExpressionStatement","src":"1445:31:103"},{"nodeType":"YulAssignment","src":"1485:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1495:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1485:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1292:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1303:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1315:6:103","type":""}],"src":"1245:261:103"},{"body":{"nodeType":"YulBlock","src":"1687:844:103","statements":[{"body":{"nodeType":"YulBlock","src":"1734:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1743:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1751:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1736:6:103"},"nodeType":"YulFunctionCall","src":"1736:22:103"},"nodeType":"YulExpressionStatement","src":"1736:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1708:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1717:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1704:3:103"},"nodeType":"YulFunctionCall","src":"1704:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1729:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1700:3:103"},"nodeType":"YulFunctionCall","src":"1700:33:103"},"nodeType":"YulIf","src":"1697:2:103"},{"nodeType":"YulVariableDeclaration","src":"1769:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1795:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1782:12:103"},"nodeType":"YulFunctionCall","src":"1782:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1773:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1839:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1814:24:103"},"nodeType":"YulFunctionCall","src":"1814:31:103"},"nodeType":"YulExpressionStatement","src":"1814:31:103"},{"nodeType":"YulAssignment","src":"1854:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1864:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1854:6:103"}]},{"nodeType":"YulAssignment","src":"1878:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1905:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1916:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1901:3:103"},"nodeType":"YulFunctionCall","src":"1901:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1888:12:103"},"nodeType":"YulFunctionCall","src":"1888:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1878:6:103"}]},{"nodeType":"YulAssignment","src":"1929:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1956:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1967:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1952:3:103"},"nodeType":"YulFunctionCall","src":"1952:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1939:12:103"},"nodeType":"YulFunctionCall","src":"1939:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1929:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1980:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2011:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2022:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2007:3:103"},"nodeType":"YulFunctionCall","src":"2007:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1994:12:103"},"nodeType":"YulFunctionCall","src":"1994:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1984:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2035:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2045:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2039:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2090:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2099:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"2107:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2092:6:103"},"nodeType":"YulFunctionCall","src":"2092:22:103"},"nodeType":"YulExpressionStatement","src":"2092:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2078:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2086:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2075:2:103"},"nodeType":"YulFunctionCall","src":"2075:14:103"},"nodeType":"YulIf","src":"2072:2:103"},{"nodeType":"YulVariableDeclaration","src":"2125:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2181:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2192:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2177:3:103"},"nodeType":"YulFunctionCall","src":"2177:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2201:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2151:25:103"},"nodeType":"YulFunctionCall","src":"2151:58:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"2129:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"2139:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2218:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2228:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2218:6:103"}]},{"nodeType":"YulAssignment","src":"2245:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"2255:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2245:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2272:49:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2288:12:103"},"nodeType":"YulFunctionCall","src":"2288:33:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2276:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2350:26:103","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"2359:6:103"},{"name":"value5","nodeType":"YulIdentifier","src":"2367:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2352:6:103"},"nodeType":"YulFunctionCall","src":"2352:22:103"},"nodeType":"YulExpressionStatement","src":"2352:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2336:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2346:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2333:2:103"},"nodeType":"YulFunctionCall","src":"2333:16:103"},"nodeType":"YulIf","src":"2330:2:103"},{"nodeType":"YulVariableDeclaration","src":"2385:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2441:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2452:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2437:3:103"},"nodeType":"YulFunctionCall","src":"2437:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2463:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2411:25:103"},"nodeType":"YulFunctionCall","src":"2411:60:103"},"variables":[{"name":"value5_1","nodeType":"YulTypedName","src":"2389:8:103","type":""},{"name":"value6_1","nodeType":"YulTypedName","src":"2399:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2480:18:103","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"2490:8:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2480:6:103"}]},{"nodeType":"YulAssignment","src":"2507:18:103","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"2517:8:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"2507:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1605:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1616:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1628:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1636:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1644:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1652:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1660:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1668:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"1676:6:103","type":""}],"src":"1511:1020:103"},{"body":{"nodeType":"YulBlock","src":"2614:134:103","statements":[{"body":{"nodeType":"YulBlock","src":"2660:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2669:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2677:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2662:6:103"},"nodeType":"YulFunctionCall","src":"2662:22:103"},"nodeType":"YulExpressionStatement","src":"2662:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2635:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2644:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2631:3:103"},"nodeType":"YulFunctionCall","src":"2631:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2656:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2627:3:103"},"nodeType":"YulFunctionCall","src":"2627:32:103"},"nodeType":"YulIf","src":"2624:2:103"},{"nodeType":"YulAssignment","src":"2695:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2732:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"2705:26:103"},"nodeType":"YulFunctionCall","src":"2705:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2695:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2580:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2591:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2603:6:103","type":""}],"src":"2536:212:103"},{"body":{"nodeType":"YulBlock","src":"2865:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"2911:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2920:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2928:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2913:6:103"},"nodeType":"YulFunctionCall","src":"2913:22:103"},"nodeType":"YulExpressionStatement","src":"2913:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2886:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2895:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2882:3:103"},"nodeType":"YulFunctionCall","src":"2882:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2907:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2878:3:103"},"nodeType":"YulFunctionCall","src":"2878:32:103"},"nodeType":"YulIf","src":"2875:2:103"},{"nodeType":"YulAssignment","src":"2946:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2983:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"2956:26:103"},"nodeType":"YulFunctionCall","src":"2956:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2946:6:103"}]},{"nodeType":"YulAssignment","src":"3002:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3022:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3033:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3018:3:103"},"nodeType":"YulFunctionCall","src":"3018:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3012:5:103"},"nodeType":"YulFunctionCall","src":"3012:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3002:6:103"}]},{"nodeType":"YulAssignment","src":"3046:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3066:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3077:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3062:3:103"},"nodeType":"YulFunctionCall","src":"3062:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3056:5:103"},"nodeType":"YulFunctionCall","src":"3056:25:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3046:6:103"}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2815:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2826:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2838:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2846:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2854:6:103","type":""}],"src":"2753:334:103"},{"body":{"nodeType":"YulBlock","src":"3162:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3208:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3217:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3225:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3210:6:103"},"nodeType":"YulFunctionCall","src":"3210:22:103"},"nodeType":"YulExpressionStatement","src":"3210:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3183:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3192:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3179:3:103"},"nodeType":"YulFunctionCall","src":"3179:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3204:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3175:3:103"},"nodeType":"YulFunctionCall","src":"3175:32:103"},"nodeType":"YulIf","src":"3172:2:103"},{"nodeType":"YulAssignment","src":"3243:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3266:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3253:12:103"},"nodeType":"YulFunctionCall","src":"3253:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3243:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3128:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3139:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3151:6:103","type":""}],"src":"3092:190:103"},{"body":{"nodeType":"YulBlock","src":"3368:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"3414:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3423:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3431:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3416:6:103"},"nodeType":"YulFunctionCall","src":"3416:22:103"},"nodeType":"YulExpressionStatement","src":"3416:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3389:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3398:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3385:3:103"},"nodeType":"YulFunctionCall","src":"3385:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3410:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3381:3:103"},"nodeType":"YulFunctionCall","src":"3381:32:103"},"nodeType":"YulIf","src":"3378:2:103"},{"nodeType":"YulAssignment","src":"3449:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3465:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3459:5:103"},"nodeType":"YulFunctionCall","src":"3459:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3449:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3334:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3345:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3357:6:103","type":""}],"src":"3287:194:103"},{"body":{"nodeType":"YulBlock","src":"3663:844:103","statements":[{"body":{"nodeType":"YulBlock","src":"3710:26:103","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"3719:6:103"},{"name":"value6","nodeType":"YulIdentifier","src":"3727:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3712:6:103"},"nodeType":"YulFunctionCall","src":"3712:22:103"},"nodeType":"YulExpressionStatement","src":"3712:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3684:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3693:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3680:3:103"},"nodeType":"YulFunctionCall","src":"3680:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3705:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3676:3:103"},"nodeType":"YulFunctionCall","src":"3676:33:103"},"nodeType":"YulIf","src":"3673:2:103"},{"nodeType":"YulAssignment","src":"3745:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3768:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3755:12:103"},"nodeType":"YulFunctionCall","src":"3755:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3745:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3787:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3829:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3814:3:103"},"nodeType":"YulFunctionCall","src":"3814:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3801:12:103"},"nodeType":"YulFunctionCall","src":"3801:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3791:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3842:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3852:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3846:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3897:26:103","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"3906:6:103"},{"name":"value6","nodeType":"YulIdentifier","src":"3914:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3899:6:103"},"nodeType":"YulFunctionCall","src":"3899:22:103"},"nodeType":"YulExpressionStatement","src":"3899:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3885:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3893:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3882:2:103"},"nodeType":"YulFunctionCall","src":"3882:14:103"},"nodeType":"YulIf","src":"3879:2:103"},{"nodeType":"YulVariableDeclaration","src":"3932:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3988:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3999:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3984:3:103"},"nodeType":"YulFunctionCall","src":"3984:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4008:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"3958:25:103"},"nodeType":"YulFunctionCall","src":"3958:58:103"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"3936:8:103","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"3946:8:103","type":""}]},{"nodeType":"YulAssignment","src":"4025:18:103","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"4035:8:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4025:6:103"}]},{"nodeType":"YulAssignment","src":"4052:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"4062:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4052:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"4079:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4123:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4108:3:103"},"nodeType":"YulFunctionCall","src":"4108:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4095:12:103"},"nodeType":"YulFunctionCall","src":"4095:32:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4083:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4156:26:103","statements":[{"expression":{"arguments":[{"name":"value6","nodeType":"YulIdentifier","src":"4165:6:103"},{"name":"value6","nodeType":"YulIdentifier","src":"4173:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4158:6:103"},"nodeType":"YulFunctionCall","src":"4158:22:103"},"nodeType":"YulExpressionStatement","src":"4158:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4142:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4152:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4139:2:103"},"nodeType":"YulFunctionCall","src":"4139:16:103"},"nodeType":"YulIf","src":"4136:2:103"},{"nodeType":"YulVariableDeclaration","src":"4191:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4247:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4258:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4243:3:103"},"nodeType":"YulFunctionCall","src":"4243:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4269:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"4217:25:103"},"nodeType":"YulFunctionCall","src":"4217:60:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"4195:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"4205:8:103","type":""}]},{"nodeType":"YulAssignment","src":"4286:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"4296:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4286:6:103"}]},{"nodeType":"YulAssignment","src":"4313:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"4323:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"4313:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"4340:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4370:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4381:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4366:3:103"},"nodeType":"YulFunctionCall","src":"4366:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4353:12:103"},"nodeType":"YulFunctionCall","src":"4353:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4344:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4419:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4394:24:103"},"nodeType":"YulFunctionCall","src":"4394:31:103"},"nodeType":"YulExpressionStatement","src":"4394:31:103"},{"nodeType":"YulAssignment","src":"4434:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4444:5:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"4434:6:103"}]},{"nodeType":"YulAssignment","src":"4458:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4485:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4496:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4481:3:103"},"nodeType":"YulFunctionCall","src":"4481:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4468:12:103"},"nodeType":"YulFunctionCall","src":"4468:33:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"4458:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_string_calldata_ptrt_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3581:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3592:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3604:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3612:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3620:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3628:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3636:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"3644:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"3652:6:103","type":""}],"src":"3486:1021:103"},{"body":{"nodeType":"YulBlock","src":"4599:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"4645:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4654:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4662:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:22:103"},"nodeType":"YulExpressionStatement","src":"4647:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4620:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4629:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4616:3:103"},"nodeType":"YulFunctionCall","src":"4616:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4641:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4612:3:103"},"nodeType":"YulFunctionCall","src":"4612:32:103"},"nodeType":"YulIf","src":"4609:2:103"},{"nodeType":"YulAssignment","src":"4680:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4703:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4690:12:103"},"nodeType":"YulFunctionCall","src":"4690:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4680:6:103"}]},{"nodeType":"YulAssignment","src":"4722:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4749:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4760:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4745:3:103"},"nodeType":"YulFunctionCall","src":"4745:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4732:12:103"},"nodeType":"YulFunctionCall","src":"4732:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4722:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4557:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4568:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4580:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4588:6:103","type":""}],"src":"4512:258:103"},{"body":{"nodeType":"YulBlock","src":"4898:442:103","statements":[{"body":{"nodeType":"YulBlock","src":"4944:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4953:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4961:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4946:6:103"},"nodeType":"YulFunctionCall","src":"4946:22:103"},"nodeType":"YulExpressionStatement","src":"4946:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4919:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4928:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4915:3:103"},"nodeType":"YulFunctionCall","src":"4915:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4940:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4911:3:103"},"nodeType":"YulFunctionCall","src":"4911:32:103"},"nodeType":"YulIf","src":"4908:2:103"},{"nodeType":"YulAssignment","src":"4979:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5002:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4989:12:103"},"nodeType":"YulFunctionCall","src":"4989:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4979:6:103"}]},{"nodeType":"YulAssignment","src":"5021:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5048:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5059:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5044:3:103"},"nodeType":"YulFunctionCall","src":"5044:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5031:12:103"},"nodeType":"YulFunctionCall","src":"5031:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5021:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5072:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5103:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5114:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5099:3:103"},"nodeType":"YulFunctionCall","src":"5099:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5086:12:103"},"nodeType":"YulFunctionCall","src":"5086:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5076:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5161:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5170:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5178:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5163:6:103"},"nodeType":"YulFunctionCall","src":"5163:22:103"},"nodeType":"YulExpressionStatement","src":"5163:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5133:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5141:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5130:2:103"},"nodeType":"YulFunctionCall","src":"5130:30:103"},"nodeType":"YulIf","src":"5127:2:103"},{"nodeType":"YulVariableDeclaration","src":"5196:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5252:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5263:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5248:3:103"},"nodeType":"YulFunctionCall","src":"5248:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5272:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"5222:25:103"},"nodeType":"YulFunctionCall","src":"5222:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"5200:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"5210:8:103","type":""}]},{"nodeType":"YulAssignment","src":"5289:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"5299:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5289:6:103"}]},{"nodeType":"YulAssignment","src":"5316:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"5326:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"5316:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4840:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4851:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4863:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4871:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4879:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4887:6:103","type":""}],"src":"4775:565:103"},{"body":{"nodeType":"YulBlock","src":"5449:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"5495:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5504:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5512:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5497:6:103"},"nodeType":"YulFunctionCall","src":"5497:22:103"},"nodeType":"YulExpressionStatement","src":"5497:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5470:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5479:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5466:3:103"},"nodeType":"YulFunctionCall","src":"5466:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5491:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5462:3:103"},"nodeType":"YulFunctionCall","src":"5462:32:103"},"nodeType":"YulIf","src":"5459:2:103"},{"nodeType":"YulAssignment","src":"5530:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5553:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5540:12:103"},"nodeType":"YulFunctionCall","src":"5540:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5530:6:103"}]},{"nodeType":"YulAssignment","src":"5572:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5599:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5610:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5595:3:103"},"nodeType":"YulFunctionCall","src":"5595:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5582:12:103"},"nodeType":"YulFunctionCall","src":"5582:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5572:6:103"}]},{"nodeType":"YulAssignment","src":"5623:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5650:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5661:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5646:3:103"},"nodeType":"YulFunctionCall","src":"5646:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5633:12:103"},"nodeType":"YulFunctionCall","src":"5633:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5623:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5399:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5410:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5422:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5430:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5438:6:103","type":""}],"src":"5345:326:103"},{"body":{"nodeType":"YulBlock","src":"5816:494:103","statements":[{"body":{"nodeType":"YulBlock","src":"5863:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5872:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5880:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5865:6:103"},"nodeType":"YulFunctionCall","src":"5865:22:103"},"nodeType":"YulExpressionStatement","src":"5865:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5837:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5846:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5833:3:103"},"nodeType":"YulFunctionCall","src":"5833:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5858:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5829:3:103"},"nodeType":"YulFunctionCall","src":"5829:33:103"},"nodeType":"YulIf","src":"5826:2:103"},{"nodeType":"YulAssignment","src":"5898:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5921:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5908:12:103"},"nodeType":"YulFunctionCall","src":"5908:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5898:6:103"}]},{"nodeType":"YulAssignment","src":"5940:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5967:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5978:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5963:3:103"},"nodeType":"YulFunctionCall","src":"5963:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5950:12:103"},"nodeType":"YulFunctionCall","src":"5950:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5940:6:103"}]},{"nodeType":"YulAssignment","src":"5991:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6018:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6029:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6014:3:103"},"nodeType":"YulFunctionCall","src":"6014:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6001:12:103"},"nodeType":"YulFunctionCall","src":"6001:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5991:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6042:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6073:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6084:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6069:3:103"},"nodeType":"YulFunctionCall","src":"6069:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6056:12:103"},"nodeType":"YulFunctionCall","src":"6056:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6046:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6131:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6140:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6148:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6133:6:103"},"nodeType":"YulFunctionCall","src":"6133:22:103"},"nodeType":"YulExpressionStatement","src":"6133:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6103:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6111:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6100:2:103"},"nodeType":"YulFunctionCall","src":"6100:30:103"},"nodeType":"YulIf","src":"6097:2:103"},{"nodeType":"YulVariableDeclaration","src":"6166:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6222:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6233:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6218:3:103"},"nodeType":"YulFunctionCall","src":"6218:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6242:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"6192:25:103"},"nodeType":"YulFunctionCall","src":"6192:58:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"6170:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"6180:8:103","type":""}]},{"nodeType":"YulAssignment","src":"6259:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"6269:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6259:6:103"}]},{"nodeType":"YulAssignment","src":"6286:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"6296:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6286:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5750:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5761:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5773:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5781:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5789:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5797:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5805:6:103","type":""}],"src":"5676:634:103"},{"body":{"nodeType":"YulBlock","src":"6425:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"6471:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6480:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6488:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6473:6:103"},"nodeType":"YulFunctionCall","src":"6473:22:103"},"nodeType":"YulExpressionStatement","src":"6473:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6446:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6455:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6442:3:103"},"nodeType":"YulFunctionCall","src":"6442:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6467:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6438:3:103"},"nodeType":"YulFunctionCall","src":"6438:32:103"},"nodeType":"YulIf","src":"6435:2:103"},{"nodeType":"YulVariableDeclaration","src":"6506:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6526:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6520:5:103"},"nodeType":"YulFunctionCall","src":"6520:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6510:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6545:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6555:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6549:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6600:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6609:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6617:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6602:6:103"},"nodeType":"YulFunctionCall","src":"6602:22:103"},"nodeType":"YulExpressionStatement","src":"6602:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6588:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6596:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6585:2:103"},"nodeType":"YulFunctionCall","src":"6585:14:103"},"nodeType":"YulIf","src":"6582:2:103"},{"nodeType":"YulVariableDeclaration","src":"6635:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6649:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6660:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6645:3:103"},"nodeType":"YulFunctionCall","src":"6645:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6639:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6707:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6716:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6724:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6709:6:103"},"nodeType":"YulFunctionCall","src":"6709:22:103"},"nodeType":"YulExpressionStatement","src":"6709:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6687:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6696:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6683:3:103"},"nodeType":"YulFunctionCall","src":"6683:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"6701:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6679:3:103"},"nodeType":"YulFunctionCall","src":"6679:27:103"},"nodeType":"YulIf","src":"6676:2:103"},{"nodeType":"YulVariableDeclaration","src":"6742:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6771:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6755:15:103"},"nodeType":"YulFunctionCall","src":"6755:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6746:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6785:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6806:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6800:5:103"},"nodeType":"YulFunctionCall","src":"6800:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6789:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6857:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"6818:38:103"},"nodeType":"YulFunctionCall","src":"6818:47:103"},"nodeType":"YulExpressionStatement","src":"6818:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6881:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"6888:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6874:6:103"},"nodeType":"YulFunctionCall","src":"6874:22:103"},"nodeType":"YulExpressionStatement","src":"6874:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6916:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6923:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6912:3:103"},"nodeType":"YulFunctionCall","src":"6912:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6938:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6942:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6934:3:103"},"nodeType":"YulFunctionCall","src":"6934:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6928:5:103"},"nodeType":"YulFunctionCall","src":"6928:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6905:6:103"},"nodeType":"YulFunctionCall","src":"6905:42:103"},"nodeType":"YulExpressionStatement","src":"6905:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6967:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6974:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6963:3:103"},"nodeType":"YulFunctionCall","src":"6963:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6989:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6993:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6985:3:103"},"nodeType":"YulFunctionCall","src":"6985:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6979:5:103"},"nodeType":"YulFunctionCall","src":"6979:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6956:6:103"},"nodeType":"YulFunctionCall","src":"6956:42:103"},"nodeType":"YulExpressionStatement","src":"6956:42:103"},{"nodeType":"YulVariableDeclaration","src":"7007:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7033:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7037:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7029:3:103"},"nodeType":"YulFunctionCall","src":"7029:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7023:5:103"},"nodeType":"YulFunctionCall","src":"7023:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7011:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7070:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7079:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7087:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7072:6:103"},"nodeType":"YulFunctionCall","src":"7072:22:103"},"nodeType":"YulExpressionStatement","src":"7072:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7056:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7066:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7053:2:103"},"nodeType":"YulFunctionCall","src":"7053:16:103"},"nodeType":"YulIf","src":"7050:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7116:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7123:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7112:3:103"},"nodeType":"YulFunctionCall","src":"7112:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7160:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7164:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7156:3:103"},"nodeType":"YulFunctionCall","src":"7156:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7175:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"7128:27:103"},"nodeType":"YulFunctionCall","src":"7128:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7105:6:103"},"nodeType":"YulFunctionCall","src":"7105:79:103"},"nodeType":"YulExpressionStatement","src":"7105:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7204:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7211:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7200:3:103"},"nodeType":"YulFunctionCall","src":"7200:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7227:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7231:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7223:3:103"},"nodeType":"YulFunctionCall","src":"7223:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7217:5:103"},"nodeType":"YulFunctionCall","src":"7217:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7193:6:103"},"nodeType":"YulFunctionCall","src":"7193:44:103"},"nodeType":"YulExpressionStatement","src":"7193:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7257:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7264:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7253:3:103"},"nodeType":"YulFunctionCall","src":"7253:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7280:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7284:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7276:3:103"},"nodeType":"YulFunctionCall","src":"7276:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7270:5:103"},"nodeType":"YulFunctionCall","src":"7270:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7246:6:103"},"nodeType":"YulFunctionCall","src":"7246:44:103"},"nodeType":"YulExpressionStatement","src":"7246:44:103"},{"nodeType":"YulAssignment","src":"7299:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7309:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7299:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6391:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6402:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6414:6:103","type":""}],"src":"6315:1005:103"},{"body":{"nodeType":"YulBlock","src":"7429:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"7475:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7484:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7492:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7477:6:103"},"nodeType":"YulFunctionCall","src":"7477:22:103"},"nodeType":"YulExpressionStatement","src":"7477:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7450:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7459:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7446:3:103"},"nodeType":"YulFunctionCall","src":"7446:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7471:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7442:3:103"},"nodeType":"YulFunctionCall","src":"7442:32:103"},"nodeType":"YulIf","src":"7439:2:103"},{"nodeType":"YulVariableDeclaration","src":"7510:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7530:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7524:5:103"},"nodeType":"YulFunctionCall","src":"7524:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7514:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7549:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7559:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7553:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7604:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7613:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7621:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7606:6:103"},"nodeType":"YulFunctionCall","src":"7606:22:103"},"nodeType":"YulExpressionStatement","src":"7606:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7592:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7600:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7589:2:103"},"nodeType":"YulFunctionCall","src":"7589:14:103"},"nodeType":"YulIf","src":"7586:2:103"},{"nodeType":"YulVariableDeclaration","src":"7639:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7653:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"7664:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7649:3:103"},"nodeType":"YulFunctionCall","src":"7649:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7643:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7711:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7720:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7728:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7713:6:103"},"nodeType":"YulFunctionCall","src":"7713:22:103"},"nodeType":"YulExpressionStatement","src":"7713:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7691:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"7700:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7687:3:103"},"nodeType":"YulFunctionCall","src":"7687:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"7705:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7683:3:103"},"nodeType":"YulFunctionCall","src":"7683:27:103"},"nodeType":"YulIf","src":"7680:2:103"},{"nodeType":"YulVariableDeclaration","src":"7746:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7775:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"7759:15:103"},"nodeType":"YulFunctionCall","src":"7759:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7750:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7789:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7810:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7804:5:103"},"nodeType":"YulFunctionCall","src":"7804:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7793:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7861:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"7822:38:103"},"nodeType":"YulFunctionCall","src":"7822:47:103"},"nodeType":"YulExpressionStatement","src":"7822:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7885:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"7892:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7878:6:103"},"nodeType":"YulFunctionCall","src":"7878:22:103"},"nodeType":"YulExpressionStatement","src":"7878:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7920:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7927:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7916:3:103"},"nodeType":"YulFunctionCall","src":"7916:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7942:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7946:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7938:3:103"},"nodeType":"YulFunctionCall","src":"7938:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7932:5:103"},"nodeType":"YulFunctionCall","src":"7932:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7909:6:103"},"nodeType":"YulFunctionCall","src":"7909:42:103"},"nodeType":"YulExpressionStatement","src":"7909:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7971:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7967:3:103"},"nodeType":"YulFunctionCall","src":"7967:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7993:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7997:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7989:3:103"},"nodeType":"YulFunctionCall","src":"7989:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7983:5:103"},"nodeType":"YulFunctionCall","src":"7983:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7960:6:103"},"nodeType":"YulFunctionCall","src":"7960:42:103"},"nodeType":"YulExpressionStatement","src":"7960:42:103"},{"nodeType":"YulVariableDeclaration","src":"8011:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8037:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8041:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8033:3:103"},"nodeType":"YulFunctionCall","src":"8033:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8027:5:103"},"nodeType":"YulFunctionCall","src":"8027:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8015:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8074:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8083:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8091:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8076:6:103"},"nodeType":"YulFunctionCall","src":"8076:22:103"},"nodeType":"YulExpressionStatement","src":"8076:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8060:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8070:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8057:2:103"},"nodeType":"YulFunctionCall","src":"8057:16:103"},"nodeType":"YulIf","src":"8054:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8120:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8127:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8116:3:103"},"nodeType":"YulFunctionCall","src":"8116:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8164:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8168:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8160:3:103"},"nodeType":"YulFunctionCall","src":"8160:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8179:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"8132:27:103"},"nodeType":"YulFunctionCall","src":"8132:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8109:6:103"},"nodeType":"YulFunctionCall","src":"8109:79:103"},"nodeType":"YulExpressionStatement","src":"8109:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8208:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8215:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8204:3:103"},"nodeType":"YulFunctionCall","src":"8204:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8231:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8235:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8227:3:103"},"nodeType":"YulFunctionCall","src":"8227:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8221:5:103"},"nodeType":"YulFunctionCall","src":"8221:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8197:6:103"},"nodeType":"YulFunctionCall","src":"8197:44:103"},"nodeType":"YulExpressionStatement","src":"8197:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8261:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8268:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8257:3:103"},"nodeType":"YulFunctionCall","src":"8257:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8284:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8288:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8280:3:103"},"nodeType":"YulFunctionCall","src":"8280:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8274:5:103"},"nodeType":"YulFunctionCall","src":"8274:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8250:6:103"},"nodeType":"YulFunctionCall","src":"8250:44:103"},"nodeType":"YulExpressionStatement","src":"8250:44:103"},{"nodeType":"YulAssignment","src":"8303:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"8313:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8303:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7395:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7406:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7418:6:103","type":""}],"src":"7325:999:103"},{"body":{"nodeType":"YulBlock","src":"8436:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"8482:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8491:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8499:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8484:6:103"},"nodeType":"YulFunctionCall","src":"8484:22:103"},"nodeType":"YulExpressionStatement","src":"8484:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8457:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8466:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8453:3:103"},"nodeType":"YulFunctionCall","src":"8453:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8478:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8449:3:103"},"nodeType":"YulFunctionCall","src":"8449:32:103"},"nodeType":"YulIf","src":"8446:2:103"},{"nodeType":"YulVariableDeclaration","src":"8517:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8537:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8531:5:103"},"nodeType":"YulFunctionCall","src":"8531:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8521:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8556:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8566:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8560:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8611:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8620:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8628:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8613:6:103"},"nodeType":"YulFunctionCall","src":"8613:22:103"},"nodeType":"YulExpressionStatement","src":"8613:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8599:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8607:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8596:2:103"},"nodeType":"YulFunctionCall","src":"8596:14:103"},"nodeType":"YulIf","src":"8593:2:103"},{"nodeType":"YulVariableDeclaration","src":"8646:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8660:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"8671:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8656:3:103"},"nodeType":"YulFunctionCall","src":"8656:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8650:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8718:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8727:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8735:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8720:6:103"},"nodeType":"YulFunctionCall","src":"8720:22:103"},"nodeType":"YulExpressionStatement","src":"8720:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8698:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"8707:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8694:3:103"},"nodeType":"YulFunctionCall","src":"8694:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"8712:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8690:3:103"},"nodeType":"YulFunctionCall","src":"8690:27:103"},"nodeType":"YulIf","src":"8687:2:103"},{"nodeType":"YulVariableDeclaration","src":"8753:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8782:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8766:15:103"},"nodeType":"YulFunctionCall","src":"8766:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8757:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8796:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8817:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8811:5:103"},"nodeType":"YulFunctionCall","src":"8811:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"8800:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8854:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8829:24:103"},"nodeType":"YulFunctionCall","src":"8829:33:103"},"nodeType":"YulExpressionStatement","src":"8829:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8878:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"8885:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8871:6:103"},"nodeType":"YulFunctionCall","src":"8871:22:103"},"nodeType":"YulExpressionStatement","src":"8871:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8913:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8920:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8909:3:103"},"nodeType":"YulFunctionCall","src":"8909:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8935:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8939:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8931:3:103"},"nodeType":"YulFunctionCall","src":"8931:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8925:5:103"},"nodeType":"YulFunctionCall","src":"8925:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8902:6:103"},"nodeType":"YulFunctionCall","src":"8902:42:103"},"nodeType":"YulExpressionStatement","src":"8902:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8964:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8971:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8960:3:103"},"nodeType":"YulFunctionCall","src":"8960:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9023:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9027:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9019:3:103"},"nodeType":"YulFunctionCall","src":"9019:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"8976:42:103"},"nodeType":"YulFunctionCall","src":"8976:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8953:6:103"},"nodeType":"YulFunctionCall","src":"8953:79:103"},"nodeType":"YulExpressionStatement","src":"8953:79:103"},{"nodeType":"YulVariableDeclaration","src":"9041:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9067:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9071:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9063:3:103"},"nodeType":"YulFunctionCall","src":"9063:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9057:5:103"},"nodeType":"YulFunctionCall","src":"9057:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9045:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9104:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9113:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9121:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9106:6:103"},"nodeType":"YulFunctionCall","src":"9106:22:103"},"nodeType":"YulExpressionStatement","src":"9106:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9090:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9100:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9087:2:103"},"nodeType":"YulFunctionCall","src":"9087:16:103"},"nodeType":"YulIf","src":"9084:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9150:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9157:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9146:3:103"},"nodeType":"YulFunctionCall","src":"9146:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9194:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9198:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9190:3:103"},"nodeType":"YulFunctionCall","src":"9190:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9209:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"9162:27:103"},"nodeType":"YulFunctionCall","src":"9162:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9139:6:103"},"nodeType":"YulFunctionCall","src":"9139:79:103"},"nodeType":"YulExpressionStatement","src":"9139:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9238:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9245:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9234:3:103"},"nodeType":"YulFunctionCall","src":"9234:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9261:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9265:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9257:3:103"},"nodeType":"YulFunctionCall","src":"9257:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9251:5:103"},"nodeType":"YulFunctionCall","src":"9251:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9227:6:103"},"nodeType":"YulFunctionCall","src":"9227:44:103"},"nodeType":"YulExpressionStatement","src":"9227:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9291:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9298:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9287:3:103"},"nodeType":"YulFunctionCall","src":"9287:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9314:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9318:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9310:3:103"},"nodeType":"YulFunctionCall","src":"9310:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9304:5:103"},"nodeType":"YulFunctionCall","src":"9304:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9280:6:103"},"nodeType":"YulFunctionCall","src":"9280:44:103"},"nodeType":"YulExpressionStatement","src":"9280:44:103"},{"nodeType":"YulAssignment","src":"9333:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"9343:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9333:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8402:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8413:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8425:6:103","type":""}],"src":"8329:1025:103"},{"body":{"nodeType":"YulBlock","src":"9464:900:103","statements":[{"body":{"nodeType":"YulBlock","src":"9510:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9519:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9527:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9512:6:103"},"nodeType":"YulFunctionCall","src":"9512:22:103"},"nodeType":"YulExpressionStatement","src":"9512:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9485:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9494:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9481:3:103"},"nodeType":"YulFunctionCall","src":"9481:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9506:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9477:3:103"},"nodeType":"YulFunctionCall","src":"9477:32:103"},"nodeType":"YulIf","src":"9474:2:103"},{"nodeType":"YulVariableDeclaration","src":"9545:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9565:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9559:5:103"},"nodeType":"YulFunctionCall","src":"9559:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9549:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9584:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"9594:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9588:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9639:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9648:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9656:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9641:6:103"},"nodeType":"YulFunctionCall","src":"9641:22:103"},"nodeType":"YulExpressionStatement","src":"9641:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9627:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9635:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9624:2:103"},"nodeType":"YulFunctionCall","src":"9624:14:103"},"nodeType":"YulIf","src":"9621:2:103"},{"nodeType":"YulVariableDeclaration","src":"9674:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9688:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"9699:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9684:3:103"},"nodeType":"YulFunctionCall","src":"9684:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9678:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9746:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9755:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9763:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9748:6:103"},"nodeType":"YulFunctionCall","src":"9748:22:103"},"nodeType":"YulExpressionStatement","src":"9748:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9726:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"9735:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9722:3:103"},"nodeType":"YulFunctionCall","src":"9722:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"9740:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9718:3:103"},"nodeType":"YulFunctionCall","src":"9718:27:103"},"nodeType":"YulIf","src":"9715:2:103"},{"nodeType":"YulVariableDeclaration","src":"9781:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9810:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"9794:15:103"},"nodeType":"YulFunctionCall","src":"9794:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9785:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9831:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9844:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9838:5:103"},"nodeType":"YulFunctionCall","src":"9838:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9824:6:103"},"nodeType":"YulFunctionCall","src":"9824:24:103"},"nodeType":"YulExpressionStatement","src":"9824:24:103"},{"nodeType":"YulVariableDeclaration","src":"9857:33:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9882:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9886:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9878:3:103"},"nodeType":"YulFunctionCall","src":"9878:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9872:5:103"},"nodeType":"YulFunctionCall","src":"9872:18:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"9861:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9925:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9934:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9942:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9927:6:103"},"nodeType":"YulFunctionCall","src":"9927:22:103"},"nodeType":"YulExpressionStatement","src":"9927:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"9912:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"9921:1:103","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9909:2:103"},"nodeType":"YulFunctionCall","src":"9909:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9902:6:103"},"nodeType":"YulFunctionCall","src":"9902:22:103"},"nodeType":"YulIf","src":"9899:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9971:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9978:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9967:3:103"},"nodeType":"YulFunctionCall","src":"9967:14:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"9983:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9960:6:103"},"nodeType":"YulFunctionCall","src":"9960:31:103"},"nodeType":"YulExpressionStatement","src":"9960:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10011:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10018:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10007:3:103"},"nodeType":"YulFunctionCall","src":"10007:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10033:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10037:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10029:3:103"},"nodeType":"YulFunctionCall","src":"10029:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10023:5:103"},"nodeType":"YulFunctionCall","src":"10023:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10000:6:103"},"nodeType":"YulFunctionCall","src":"10000:42:103"},"nodeType":"YulExpressionStatement","src":"10000:42:103"},{"nodeType":"YulVariableDeclaration","src":"10051:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10077:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10081:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10073:3:103"},"nodeType":"YulFunctionCall","src":"10073:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10067:5:103"},"nodeType":"YulFunctionCall","src":"10067:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"10055:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10114:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10123:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10131:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10116:6:103"},"nodeType":"YulFunctionCall","src":"10116:22:103"},"nodeType":"YulExpressionStatement","src":"10116:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"10100:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10110:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10097:2:103"},"nodeType":"YulFunctionCall","src":"10097:16:103"},"nodeType":"YulIf","src":"10094:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10160:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10167:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10156:3:103"},"nodeType":"YulFunctionCall","src":"10156:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10204:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"10208:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10200:3:103"},"nodeType":"YulFunctionCall","src":"10200:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10219:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"10172:27:103"},"nodeType":"YulFunctionCall","src":"10172:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10149:6:103"},"nodeType":"YulFunctionCall","src":"10149:79:103"},"nodeType":"YulExpressionStatement","src":"10149:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10248:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10255:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10244:3:103"},"nodeType":"YulFunctionCall","src":"10244:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10271:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10275:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10267:3:103"},"nodeType":"YulFunctionCall","src":"10267:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10261:5:103"},"nodeType":"YulFunctionCall","src":"10261:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10237:6:103"},"nodeType":"YulFunctionCall","src":"10237:44:103"},"nodeType":"YulExpressionStatement","src":"10237:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10301:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10308:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10297:3:103"},"nodeType":"YulFunctionCall","src":"10297:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10324:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"10328:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10320:3:103"},"nodeType":"YulFunctionCall","src":"10320:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10314:5:103"},"nodeType":"YulFunctionCall","src":"10314:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10290:6:103"},"nodeType":"YulFunctionCall","src":"10290:44:103"},"nodeType":"YulExpressionStatement","src":"10290:44:103"},{"nodeType":"YulAssignment","src":"10343:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"10353:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10343:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9430:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9441:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9453:6:103","type":""}],"src":"9359:1005:103"},{"body":{"nodeType":"YulBlock","src":"10474:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"10484:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"10494:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10488:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10542:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10551:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10559:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10544:6:103"},"nodeType":"YulFunctionCall","src":"10544:22:103"},"nodeType":"YulExpressionStatement","src":"10544:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10517:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"10526:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10513:3:103"},"nodeType":"YulFunctionCall","src":"10513:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10538:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10509:3:103"},"nodeType":"YulFunctionCall","src":"10509:32:103"},"nodeType":"YulIf","src":"10506:2:103"},{"nodeType":"YulVariableDeclaration","src":"10577:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10606:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"10590:15:103"},"nodeType":"YulFunctionCall","src":"10590:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10581:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10625:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10675:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"10632:42:103"},"nodeType":"YulFunctionCall","src":"10632:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10618:6:103"},"nodeType":"YulFunctionCall","src":"10618:68:103"},"nodeType":"YulExpressionStatement","src":"10618:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10706:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10713:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10702:3:103"},"nodeType":"YulFunctionCall","src":"10702:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10728:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10739:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10724:3:103"},"nodeType":"YulFunctionCall","src":"10724:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10718:5:103"},"nodeType":"YulFunctionCall","src":"10718:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10695:6:103"},"nodeType":"YulFunctionCall","src":"10695:49:103"},"nodeType":"YulExpressionStatement","src":"10695:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10764:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10771:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10760:3:103"},"nodeType":"YulFunctionCall","src":"10760:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10786:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10797:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10782:3:103"},"nodeType":"YulFunctionCall","src":"10782:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10776:5:103"},"nodeType":"YulFunctionCall","src":"10776:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10753:6:103"},"nodeType":"YulFunctionCall","src":"10753:49:103"},"nodeType":"YulExpressionStatement","src":"10753:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10822:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10829:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10818:3:103"},"nodeType":"YulFunctionCall","src":"10818:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10855:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10840:3:103"},"nodeType":"YulFunctionCall","src":"10840:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10834:5:103"},"nodeType":"YulFunctionCall","src":"10834:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10811:6:103"},"nodeType":"YulFunctionCall","src":"10811:49:103"},"nodeType":"YulExpressionStatement","src":"10811:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10880:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10887:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10876:3:103"},"nodeType":"YulFunctionCall","src":"10876:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10914:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10899:3:103"},"nodeType":"YulFunctionCall","src":"10899:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10893:5:103"},"nodeType":"YulFunctionCall","src":"10893:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10869:6:103"},"nodeType":"YulFunctionCall","src":"10869:51:103"},"nodeType":"YulExpressionStatement","src":"10869:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10940:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10947:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10936:3:103"},"nodeType":"YulFunctionCall","src":"10936:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10963:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10974:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10959:3:103"},"nodeType":"YulFunctionCall","src":"10959:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10953:5:103"},"nodeType":"YulFunctionCall","src":"10953:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10929:6:103"},"nodeType":"YulFunctionCall","src":"10929:51:103"},"nodeType":"YulExpressionStatement","src":"10929:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11000:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"11007:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10996:3:103"},"nodeType":"YulFunctionCall","src":"10996:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11023:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11034:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11019:3:103"},"nodeType":"YulFunctionCall","src":"11019:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11013:5:103"},"nodeType":"YulFunctionCall","src":"11013:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10989:6:103"},"nodeType":"YulFunctionCall","src":"10989:51:103"},"nodeType":"YulExpressionStatement","src":"10989:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11060:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"11067:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11056:3:103"},"nodeType":"YulFunctionCall","src":"11056:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11083:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11094:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11079:3:103"},"nodeType":"YulFunctionCall","src":"11079:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11073:5:103"},"nodeType":"YulFunctionCall","src":"11073:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11049:6:103"},"nodeType":"YulFunctionCall","src":"11049:51:103"},"nodeType":"YulExpressionStatement","src":"11049:51:103"},{"nodeType":"YulVariableDeclaration","src":"11109:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"11119:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"11113:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11142:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"11149:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11138:3:103"},"nodeType":"YulFunctionCall","src":"11138:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11164:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"11175:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11160:3:103"},"nodeType":"YulFunctionCall","src":"11160:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11154:5:103"},"nodeType":"YulFunctionCall","src":"11154:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11131:6:103"},"nodeType":"YulFunctionCall","src":"11131:49:103"},"nodeType":"YulExpressionStatement","src":"11131:49:103"},{"nodeType":"YulAssignment","src":"11189:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"11199:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11189:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10440:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10451:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10463:6:103","type":""}],"src":"10369:841:103"},{"body":{"nodeType":"YulBlock","src":"11285:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"11331:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11340:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11348:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11333:6:103"},"nodeType":"YulFunctionCall","src":"11333:22:103"},"nodeType":"YulExpressionStatement","src":"11333:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11306:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11315:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11302:3:103"},"nodeType":"YulFunctionCall","src":"11302:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11327:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11298:3:103"},"nodeType":"YulFunctionCall","src":"11298:32:103"},"nodeType":"YulIf","src":"11295:2:103"},{"nodeType":"YulAssignment","src":"11366:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11389:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11376:12:103"},"nodeType":"YulFunctionCall","src":"11376:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11366:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11251:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11262:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11274:6:103","type":""}],"src":"11215:190:103"},{"body":{"nodeType":"YulBlock","src":"11491:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"11537:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11546:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11554:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11539:6:103"},"nodeType":"YulFunctionCall","src":"11539:22:103"},"nodeType":"YulExpressionStatement","src":"11539:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11512:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11521:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11508:3:103"},"nodeType":"YulFunctionCall","src":"11508:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11533:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11504:3:103"},"nodeType":"YulFunctionCall","src":"11504:32:103"},"nodeType":"YulIf","src":"11501:2:103"},{"nodeType":"YulAssignment","src":"11572:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11588:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11582:5:103"},"nodeType":"YulFunctionCall","src":"11582:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11572:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11457:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11468:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11480:6:103","type":""}],"src":"11410:194:103"},{"body":{"nodeType":"YulBlock","src":"11707:157:103","statements":[{"body":{"nodeType":"YulBlock","src":"11753:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11762:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11770:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11755:6:103"},"nodeType":"YulFunctionCall","src":"11755:22:103"},"nodeType":"YulExpressionStatement","src":"11755:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11728:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11737:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11724:3:103"},"nodeType":"YulFunctionCall","src":"11724:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11749:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11720:3:103"},"nodeType":"YulFunctionCall","src":"11720:32:103"},"nodeType":"YulIf","src":"11717:2:103"},{"nodeType":"YulAssignment","src":"11788:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11804:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11798:5:103"},"nodeType":"YulFunctionCall","src":"11798:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11788:6:103"}]},{"nodeType":"YulAssignment","src":"11823:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11854:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11839:3:103"},"nodeType":"YulFunctionCall","src":"11839:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11833:5:103"},"nodeType":"YulFunctionCall","src":"11833:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11823:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11665:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11676:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11688:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11696:6:103","type":""}],"src":"11609:255:103"},{"body":{"nodeType":"YulBlock","src":"11935:202:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11952:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"11957:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11945:6:103"},"nodeType":"YulFunctionCall","src":"11945:19:103"},"nodeType":"YulExpressionStatement","src":"11945:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11990:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"11995:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11986:3:103"},"nodeType":"YulFunctionCall","src":"11986:14:103"},{"name":"start","nodeType":"YulIdentifier","src":"12002:5:103"},{"name":"length","nodeType":"YulIdentifier","src":"12009:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"11973:12:103"},"nodeType":"YulFunctionCall","src":"11973:43:103"},"nodeType":"YulExpressionStatement","src":"11973:43:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12040:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12045:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12036:3:103"},"nodeType":"YulFunctionCall","src":"12036:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"12054:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12032:3:103"},"nodeType":"YulFunctionCall","src":"12032:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"12061:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12025:6:103"},"nodeType":"YulFunctionCall","src":"12025:40:103"},"nodeType":"YulExpressionStatement","src":"12025:40:103"},{"nodeType":"YulAssignment","src":"12074:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12089:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12102:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12110:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12098:3:103"},"nodeType":"YulFunctionCall","src":"12098:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12119:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12115:3:103"},"nodeType":"YulFunctionCall","src":"12115:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12094:3:103"},"nodeType":"YulFunctionCall","src":"12094:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12085:3:103"},"nodeType":"YulFunctionCall","src":"12085:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"12126:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12081:3:103"},"nodeType":"YulFunctionCall","src":"12081:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12074:3:103"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"11904:5:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"11911:6:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"11919:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11927:3:103","type":""}],"src":"11869:268:103"},{"body":{"nodeType":"YulBlock","src":"12243:102:103","statements":[{"nodeType":"YulAssignment","src":"12253:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12265:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12276:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12261:3:103"},"nodeType":"YulFunctionCall","src":"12261:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12253:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12295:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12310:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12326:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12331:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12322:3:103"},"nodeType":"YulFunctionCall","src":"12322:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"12335:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12318:3:103"},"nodeType":"YulFunctionCall","src":"12318:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12306:3:103"},"nodeType":"YulFunctionCall","src":"12306:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12288:6:103"},"nodeType":"YulFunctionCall","src":"12288:51:103"},"nodeType":"YulExpressionStatement","src":"12288:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12212:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12223:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12234:4:103","type":""}],"src":"12142:203:103"},{"body":{"nodeType":"YulBlock","src":"12535:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12552:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12567:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12583:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12588:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12579:3:103"},"nodeType":"YulFunctionCall","src":"12579:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"12592:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12575:3:103"},"nodeType":"YulFunctionCall","src":"12575:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12563:3:103"},"nodeType":"YulFunctionCall","src":"12563:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12545:6:103"},"nodeType":"YulFunctionCall","src":"12545:51:103"},"nodeType":"YulExpressionStatement","src":"12545:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12616:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12627:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12612:3:103"},"nodeType":"YulFunctionCall","src":"12612:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"12632:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12605:6:103"},"nodeType":"YulFunctionCall","src":"12605:34:103"},"nodeType":"YulExpressionStatement","src":"12605:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12659:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12670:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12655:3:103"},"nodeType":"YulFunctionCall","src":"12655:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12675:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12648:6:103"},"nodeType":"YulFunctionCall","src":"12648:30:103"},"nodeType":"YulExpressionStatement","src":"12648:30:103"},{"nodeType":"YulAssignment","src":"12687:69:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12721:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"12729:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12741:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12752:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12737:3:103"},"nodeType":"YulFunctionCall","src":"12737:18:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"12695:25:103"},"nodeType":"YulFunctionCall","src":"12695:61:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12687:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12480:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12491:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12499:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12507:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12515:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12526:4:103","type":""}],"src":"12350:412:103"},{"body":{"nodeType":"YulBlock","src":"12862:92:103","statements":[{"nodeType":"YulAssignment","src":"12872:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12884:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12895:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12880:3:103"},"nodeType":"YulFunctionCall","src":"12880:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12872:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12914:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12939:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12932:6:103"},"nodeType":"YulFunctionCall","src":"12932:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12925:6:103"},"nodeType":"YulFunctionCall","src":"12925:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12907:6:103"},"nodeType":"YulFunctionCall","src":"12907:41:103"},"nodeType":"YulExpressionStatement","src":"12907:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12831:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12842:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12853:4:103","type":""}],"src":"12767:187:103"},{"body":{"nodeType":"YulBlock","src":"13110:178:103","statements":[{"nodeType":"YulAssignment","src":"13120:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13132:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13143:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13128:3:103"},"nodeType":"YulFunctionCall","src":"13128:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13120:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13162:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13187:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13180:6:103"},"nodeType":"YulFunctionCall","src":"13180:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13173:6:103"},"nodeType":"YulFunctionCall","src":"13173:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13155:6:103"},"nodeType":"YulFunctionCall","src":"13155:41:103"},"nodeType":"YulExpressionStatement","src":"13155:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13227:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13212:3:103"},"nodeType":"YulFunctionCall","src":"13212:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13232:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13205:6:103"},"nodeType":"YulFunctionCall","src":"13205:34:103"},"nodeType":"YulExpressionStatement","src":"13205:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13259:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13270:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13255:3:103"},"nodeType":"YulFunctionCall","src":"13255:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"13275:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13248:6:103"},"nodeType":"YulFunctionCall","src":"13248:34:103"},"nodeType":"YulExpressionStatement","src":"13248:34:103"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13063:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13074:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13082:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13090:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13101:4:103","type":""}],"src":"12959:329:103"},{"body":{"nodeType":"YulBlock","src":"13394:76:103","statements":[{"nodeType":"YulAssignment","src":"13404:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13427:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13412:3:103"},"nodeType":"YulFunctionCall","src":"13412:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13404:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13446:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13457:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13439:6:103"},"nodeType":"YulFunctionCall","src":"13439:25:103"},"nodeType":"YulExpressionStatement","src":"13439:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13363:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13374:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13385:4:103","type":""}],"src":"13293:177:103"},{"body":{"nodeType":"YulBlock","src":"13746:404:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13763:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13774:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13756:6:103"},"nodeType":"YulFunctionCall","src":"13756:25:103"},"nodeType":"YulExpressionStatement","src":"13756:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13801:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13812:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13797:3:103"},"nodeType":"YulFunctionCall","src":"13797:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13817:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13790:6:103"},"nodeType":"YulFunctionCall","src":"13790:31:103"},"nodeType":"YulExpressionStatement","src":"13790:31:103"},{"nodeType":"YulVariableDeclaration","src":"13830:76:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13870:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"13878:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13890:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13901:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13886:3:103"},"nodeType":"YulFunctionCall","src":"13886:19:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13844:25:103"},"nodeType":"YulFunctionCall","src":"13844:62:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"13834:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13937:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13922:3:103"},"nodeType":"YulFunctionCall","src":"13922:18:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"13946:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"13954:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13942:3:103"},"nodeType":"YulFunctionCall","src":"13942:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13915:6:103"},"nodeType":"YulFunctionCall","src":"13915:50:103"},"nodeType":"YulExpressionStatement","src":"13915:50:103"},{"nodeType":"YulAssignment","src":"13974:57:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"14008:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"14016:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"14024:6:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13982:25:103"},"nodeType":"YulFunctionCall","src":"13982:49:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13974:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14051:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14062:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14047:3:103"},"nodeType":"YulFunctionCall","src":"14047:18:103"},{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"14071:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14087:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14092:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14083:3:103"},"nodeType":"YulFunctionCall","src":"14083:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14096:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14079:3:103"},"nodeType":"YulFunctionCall","src":"14079:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14067:3:103"},"nodeType":"YulFunctionCall","src":"14067:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14040:6:103"},"nodeType":"YulFunctionCall","src":"14040:60:103"},"nodeType":"YulExpressionStatement","src":"14040:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14120:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14131:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14116:3:103"},"nodeType":"YulFunctionCall","src":"14116:19:103"},{"name":"value6","nodeType":"YulIdentifier","src":"14137:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14109:6:103"},"nodeType":"YulFunctionCall","src":"14109:35:103"},"nodeType":"YulExpressionStatement","src":"14109:35:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_calldata_ptr_t_string_calldata_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13667:9:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"13678:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"13686:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"13694:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13702:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13710:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13718:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13726:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13737:4:103","type":""}],"src":"13475:675:103"},{"body":{"nodeType":"YulBlock","src":"14284:119:103","statements":[{"nodeType":"YulAssignment","src":"14294:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14306:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14317:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14302:3:103"},"nodeType":"YulFunctionCall","src":"14302:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14294:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14336:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14347:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14329:6:103"},"nodeType":"YulFunctionCall","src":"14329:25:103"},"nodeType":"YulExpressionStatement","src":"14329:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14374:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14385:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14370:3:103"},"nodeType":"YulFunctionCall","src":"14370:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14390:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14363:6:103"},"nodeType":"YulFunctionCall","src":"14363:34:103"},"nodeType":"YulExpressionStatement","src":"14363:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14245:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14256:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14264:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14275:4:103","type":""}],"src":"14155:248:103"},{"body":{"nodeType":"YulBlock","src":"14593:201:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14610:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14621:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14603:6:103"},"nodeType":"YulFunctionCall","src":"14603:25:103"},"nodeType":"YulExpressionStatement","src":"14603:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14648:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14659:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14644:3:103"},"nodeType":"YulFunctionCall","src":"14644:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14664:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14637:6:103"},"nodeType":"YulFunctionCall","src":"14637:34:103"},"nodeType":"YulExpressionStatement","src":"14637:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14691:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14702:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14687:3:103"},"nodeType":"YulFunctionCall","src":"14687:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14707:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14680:6:103"},"nodeType":"YulFunctionCall","src":"14680:30:103"},"nodeType":"YulExpressionStatement","src":"14680:30:103"},{"nodeType":"YulAssignment","src":"14719:69:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"14753:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"14761:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14784:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14769:3:103"},"nodeType":"YulFunctionCall","src":"14769:18:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"14727:25:103"},"nodeType":"YulFunctionCall","src":"14727:61:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14719:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_calldata_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14538:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14549:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14557:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14565:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14584:4:103","type":""}],"src":"14408:386:103"},{"body":{"nodeType":"YulBlock","src":"14956:162:103","statements":[{"nodeType":"YulAssignment","src":"14966:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14989:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14974:3:103"},"nodeType":"YulFunctionCall","src":"14974:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14966:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15008:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15019:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15001:6:103"},"nodeType":"YulFunctionCall","src":"15001:25:103"},"nodeType":"YulExpressionStatement","src":"15001:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15046:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15057:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15042:3:103"},"nodeType":"YulFunctionCall","src":"15042:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"15062:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15035:6:103"},"nodeType":"YulFunctionCall","src":"15035:34:103"},"nodeType":"YulExpressionStatement","src":"15035:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15089:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15100:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15085:3:103"},"nodeType":"YulFunctionCall","src":"15085:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"15105:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15078:6:103"},"nodeType":"YulFunctionCall","src":"15078:34:103"},"nodeType":"YulExpressionStatement","src":"15078:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14909:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14920:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14928:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14936:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14947:4:103","type":""}],"src":"14799:319:103"},{"body":{"nodeType":"YulBlock","src":"15336:246:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15353:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15364:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15346:6:103"},"nodeType":"YulFunctionCall","src":"15346:25:103"},"nodeType":"YulExpressionStatement","src":"15346:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15391:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15402:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15387:3:103"},"nodeType":"YulFunctionCall","src":"15387:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"15407:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15380:6:103"},"nodeType":"YulFunctionCall","src":"15380:34:103"},"nodeType":"YulExpressionStatement","src":"15380:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15434:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15445:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15430:3:103"},"nodeType":"YulFunctionCall","src":"15430:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"15450:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15423:6:103"},"nodeType":"YulFunctionCall","src":"15423:34:103"},"nodeType":"YulExpressionStatement","src":"15423:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15477:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15488:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15473:3:103"},"nodeType":"YulFunctionCall","src":"15473:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15493:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15466:6:103"},"nodeType":"YulFunctionCall","src":"15466:31:103"},"nodeType":"YulExpressionStatement","src":"15466:31:103"},{"nodeType":"YulAssignment","src":"15506:70:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"15540:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"15548:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15560:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15571:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15556:3:103"},"nodeType":"YulFunctionCall","src":"15556:19:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15514:25:103"},"nodeType":"YulFunctionCall","src":"15514:62:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15506:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15273:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"15284:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"15292:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15300:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15308:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15316:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15327:4:103","type":""}],"src":"15123:459:103"},{"body":{"nodeType":"YulBlock","src":"15706:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15723:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15734:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15716:6:103"},"nodeType":"YulFunctionCall","src":"15716:21:103"},"nodeType":"YulExpressionStatement","src":"15716:21:103"},{"nodeType":"YulVariableDeclaration","src":"15746:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15766:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15760:5:103"},"nodeType":"YulFunctionCall","src":"15760:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15750:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15793:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15804:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15789:3:103"},"nodeType":"YulFunctionCall","src":"15789:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"15809:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15782:6:103"},"nodeType":"YulFunctionCall","src":"15782:34:103"},"nodeType":"YulExpressionStatement","src":"15782:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15851:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15859:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15847:3:103"},"nodeType":"YulFunctionCall","src":"15847:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15868:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15879:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15864:3:103"},"nodeType":"YulFunctionCall","src":"15864:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"15884:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"15825:21:103"},"nodeType":"YulFunctionCall","src":"15825:66:103"},"nodeType":"YulExpressionStatement","src":"15825:66:103"},{"nodeType":"YulAssignment","src":"15900:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15916:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"15935:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15943:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15931:3:103"},"nodeType":"YulFunctionCall","src":"15931:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15952:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15948:3:103"},"nodeType":"YulFunctionCall","src":"15948:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15927:3:103"},"nodeType":"YulFunctionCall","src":"15927:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15912:3:103"},"nodeType":"YulFunctionCall","src":"15912:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"15959:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15908:3:103"},"nodeType":"YulFunctionCall","src":"15908:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15900:4:103"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15675:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15686:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15697:4:103","type":""}],"src":"15587:381:103"},{"body":{"nodeType":"YulBlock","src":"16092:102:103","statements":[{"nodeType":"YulAssignment","src":"16102:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16114:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16125:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16110:3:103"},"nodeType":"YulFunctionCall","src":"16110:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16102:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16144:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16159:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16175:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16180:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16171:3:103"},"nodeType":"YulFunctionCall","src":"16171:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"16184:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16167:3:103"},"nodeType":"YulFunctionCall","src":"16167:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16155:3:103"},"nodeType":"YulFunctionCall","src":"16155:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16137:6:103"},"nodeType":"YulFunctionCall","src":"16137:51:103"},"nodeType":"YulExpressionStatement","src":"16137:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16061:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16072:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16083:4:103","type":""}],"src":"15973:221:103"},{"body":{"nodeType":"YulBlock","src":"16373:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16401:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16383:6:103"},"nodeType":"YulFunctionCall","src":"16383:21:103"},"nodeType":"YulExpressionStatement","src":"16383:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16424:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16435:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16420:3:103"},"nodeType":"YulFunctionCall","src":"16420:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16440:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16413:6:103"},"nodeType":"YulFunctionCall","src":"16413:30:103"},"nodeType":"YulExpressionStatement","src":"16413:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16474:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16459:3:103"},"nodeType":"YulFunctionCall","src":"16459:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16479:34:103","type":"","value":"ERROR:PFD-004:PROCESSID_PRODUCT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16452:6:103"},"nodeType":"YulFunctionCall","src":"16452:62:103"},"nodeType":"YulExpressionStatement","src":"16452:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16534:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16545:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16530:3:103"},"nodeType":"YulFunctionCall","src":"16530:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16550:10:103","type":"","value":"MISMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16523:6:103"},"nodeType":"YulFunctionCall","src":"16523:38:103"},"nodeType":"YulExpressionStatement","src":"16523:38:103"},{"nodeType":"YulAssignment","src":"16570:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16582:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16593:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16578:3:103"},"nodeType":"YulFunctionCall","src":"16578:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16570:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_136fc3ad7c83d07b4d40caf713cd67bed82ca2b892762c2adbae1fe6fe0dcfb3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16350:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16364:4:103","type":""}],"src":"16199:404:103"},{"body":{"nodeType":"YulBlock","src":"16782:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16810:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16792:6:103"},"nodeType":"YulFunctionCall","src":"16792:21:103"},"nodeType":"YulExpressionStatement","src":"16792:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16844:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16829:3:103"},"nodeType":"YulFunctionCall","src":"16829:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16849:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16822:6:103"},"nodeType":"YulFunctionCall","src":"16822:30:103"},"nodeType":"YulExpressionStatement","src":"16822:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16872:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16883:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16868:3:103"},"nodeType":"YulFunctionCall","src":"16868:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16888:34:103","type":"","value":"ERROR:PFD-002:POLICY_NOT_EXPIRED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16861:6:103"},"nodeType":"YulFunctionCall","src":"16861:62:103"},"nodeType":"YulExpressionStatement","src":"16861:62:103"},{"nodeType":"YulAssignment","src":"16932:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16944:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16955:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16940:3:103"},"nodeType":"YulFunctionCall","src":"16940:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16932:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_18e20048df1336701316840c9034a9ef82a2e25efaf59ab47262e1bc60a26085__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16759:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16773:4:103","type":""}],"src":"16608:356:103"},{"body":{"nodeType":"YulBlock","src":"17143:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17160:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17171:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17153:6:103"},"nodeType":"YulFunctionCall","src":"17153:21:103"},"nodeType":"YulExpressionStatement","src":"17153:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17194:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17205:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17190:3:103"},"nodeType":"YulFunctionCall","src":"17190:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17210:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17183:6:103"},"nodeType":"YulFunctionCall","src":"17183:30:103"},"nodeType":"YulExpressionStatement","src":"17183:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17233:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17244:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17229:3:103"},"nodeType":"YulFunctionCall","src":"17229:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17249:33:103","type":"","value":"ERROR:PFD-001:POLICY_NOT_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17222:6:103"},"nodeType":"YulFunctionCall","src":"17222:61:103"},"nodeType":"YulExpressionStatement","src":"17222:61:103"},{"nodeType":"YulAssignment","src":"17292:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17315:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17300:3:103"},"nodeType":"YulFunctionCall","src":"17300:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17292:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9b1cef90b481c0b75b84bee986adfe33e860c5dd41a12fda22045023a52d80d2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17120:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17134:4:103","type":""}],"src":"16969:355:103"},{"body":{"nodeType":"YulBlock","src":"17503:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17520:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17531:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17513:6:103"},"nodeType":"YulFunctionCall","src":"17513:21:103"},"nodeType":"YulExpressionStatement","src":"17513:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17554:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17565:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17550:3:103"},"nodeType":"YulFunctionCall","src":"17550:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17570:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17543:6:103"},"nodeType":"YulFunctionCall","src":"17543:30:103"},"nodeType":"YulExpressionStatement","src":"17543:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17593:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17604:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17589:3:103"},"nodeType":"YulFunctionCall","src":"17589:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17609:34:103","type":"","value":"ERROR:PFD-005:REQUESTID_PRODUCT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17582:6:103"},"nodeType":"YulFunctionCall","src":"17582:62:103"},"nodeType":"YulExpressionStatement","src":"17582:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17664:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17675:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17660:3:103"},"nodeType":"YulFunctionCall","src":"17660:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17680:10:103","type":"","value":"MISMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17653:6:103"},"nodeType":"YulFunctionCall","src":"17653:38:103"},"nodeType":"YulExpressionStatement","src":"17653:38:103"},{"nodeType":"YulAssignment","src":"17700:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17712:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17723:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17708:3:103"},"nodeType":"YulFunctionCall","src":"17708:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17700:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d0e68ed3ce2670c36485c8c12aea21dfa09249d8122b89624db20258a17e2536__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17480:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17494:4:103","type":""}],"src":"17329:404:103"},{"body":{"nodeType":"YulBlock","src":"17912:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17929:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17940:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17922:6:103"},"nodeType":"YulFunctionCall","src":"17922:21:103"},"nodeType":"YulExpressionStatement","src":"17922:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17963:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17974:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17959:3:103"},"nodeType":"YulFunctionCall","src":"17959:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17979:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17952:6:103"},"nodeType":"YulFunctionCall","src":"17952:30:103"},"nodeType":"YulExpressionStatement","src":"17952:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18002:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18013:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17998:3:103"},"nodeType":"YulFunctionCall","src":"17998:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18018:29:103","type":"","value":"ERROR:PFD-003:POLICY_CLOSED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17991:6:103"},"nodeType":"YulFunctionCall","src":"17991:57:103"},"nodeType":"YulExpressionStatement","src":"17991:57:103"},{"nodeType":"YulAssignment","src":"18057:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18069:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18080:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18065:3:103"},"nodeType":"YulFunctionCall","src":"18065:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18057:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fe1653e6a7be49437891bef0c146fde88ff09a38abe7e0ab716b9121e8b59650__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17889:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17903:4:103","type":""}],"src":"17738:351:103"},{"body":{"nodeType":"YulBlock","src":"18195:76:103","statements":[{"nodeType":"YulAssignment","src":"18205:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18228:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18213:3:103"},"nodeType":"YulFunctionCall","src":"18213:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18205:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18247:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18258:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18240:6:103"},"nodeType":"YulFunctionCall","src":"18240:25:103"},"nodeType":"YulExpressionStatement","src":"18240:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18164:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18175:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18186:4:103","type":""}],"src":"18094:177:103"},{"body":{"nodeType":"YulBlock","src":"18321:230:103","statements":[{"nodeType":"YulAssignment","src":"18331:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18347:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18341:5:103"},"nodeType":"YulFunctionCall","src":"18341:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18331:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"18359:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18381:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"18397:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"18403:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18393:3:103"},"nodeType":"YulFunctionCall","src":"18393:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18412:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18408:3:103"},"nodeType":"YulFunctionCall","src":"18408:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18389:3:103"},"nodeType":"YulFunctionCall","src":"18389:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18377:3:103"},"nodeType":"YulFunctionCall","src":"18377:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"18363:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"18492:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"18494:16:103"},"nodeType":"YulFunctionCall","src":"18494:18:103"},"nodeType":"YulExpressionStatement","src":"18494:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18435:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"18447:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18432:2:103"},"nodeType":"YulFunctionCall","src":"18432:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18471:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"18483:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18468:2:103"},"nodeType":"YulFunctionCall","src":"18468:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"18429:2:103"},"nodeType":"YulFunctionCall","src":"18429:62:103"},"nodeType":"YulIf","src":"18426:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18530:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18534:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18523:6:103"},"nodeType":"YulFunctionCall","src":"18523:22:103"},"nodeType":"YulExpressionStatement","src":"18523:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"18301:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"18310:6:103","type":""}],"src":"18276:275:103"},{"body":{"nodeType":"YulBlock","src":"18604:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"18639:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"18660:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18669:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"18674:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"18665:3:103"},"nodeType":"YulFunctionCall","src":"18665:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18653:6:103"},"nodeType":"YulFunctionCall","src":"18653:33:103"},"nodeType":"YulExpressionStatement","src":"18653:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18706:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"18709:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18699:6:103"},"nodeType":"YulFunctionCall","src":"18699:15:103"},"nodeType":"YulExpressionStatement","src":"18699:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"18734:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"18739:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"18727:6:103"},"nodeType":"YulFunctionCall","src":"18727:17:103"},"nodeType":"YulExpressionStatement","src":"18727:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18620:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18627:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18623:3:103"},"nodeType":"YulFunctionCall","src":"18623:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18617:2:103"},"nodeType":"YulFunctionCall","src":"18617:13:103"},"nodeType":"YulIf","src":"18614:2:103"},{"nodeType":"YulAssignment","src":"18763:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18774:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"18777:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18770:3:103"},"nodeType":"YulFunctionCall","src":"18770:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"18763:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18587:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"18590:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"18596:3:103","type":""}],"src":"18556:229:103"},{"body":{"nodeType":"YulBlock","src":"18843:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"18853:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"18862:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"18857:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"18922:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"18947:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"18952:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18943:3:103"},"nodeType":"YulFunctionCall","src":"18943:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"18966:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"18971:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18962:3:103"},"nodeType":"YulFunctionCall","src":"18962:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18956:5:103"},"nodeType":"YulFunctionCall","src":"18956:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18936:6:103"},"nodeType":"YulFunctionCall","src":"18936:39:103"},"nodeType":"YulExpressionStatement","src":"18936:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18883:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"18886:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18880:2:103"},"nodeType":"YulFunctionCall","src":"18880:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"18894:19:103","statements":[{"nodeType":"YulAssignment","src":"18896:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"18905:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"18908:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18901:3:103"},"nodeType":"YulFunctionCall","src":"18901:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"18896:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"18876:3:103","statements":[]},"src":"18872:113:103"},{"body":{"nodeType":"YulBlock","src":"19011:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19024:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"19029:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19020:3:103"},"nodeType":"YulFunctionCall","src":"19020:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"19038:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19013:6:103"},"nodeType":"YulFunctionCall","src":"19013:27:103"},"nodeType":"YulExpressionStatement","src":"19013:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19000:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"19003:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18997:2:103"},"nodeType":"YulFunctionCall","src":"18997:13:103"},"nodeType":"YulIf","src":"18994:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"18821:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"18826:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"18831:6:103","type":""}],"src":"18790:258:103"},{"body":{"nodeType":"YulBlock","src":"19085:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19102:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19109:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19114:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19105:3:103"},"nodeType":"YulFunctionCall","src":"19105:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19095:6:103"},"nodeType":"YulFunctionCall","src":"19095:31:103"},"nodeType":"YulExpressionStatement","src":"19095:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19142:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"19145:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19135:6:103"},"nodeType":"YulFunctionCall","src":"19135:15:103"},"nodeType":"YulExpressionStatement","src":"19135:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19166:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19169:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19159:6:103"},"nodeType":"YulFunctionCall","src":"19159:15:103"},"nodeType":"YulExpressionStatement","src":"19159:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"19053:127:103"},{"body":{"nodeType":"YulBlock","src":"19230:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"19294:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19303:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19306:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19296:6:103"},"nodeType":"YulFunctionCall","src":"19296:12:103"},"nodeType":"YulExpressionStatement","src":"19296:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19253:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19264:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19279:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"19284:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19275:3:103"},"nodeType":"YulFunctionCall","src":"19275:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"19288:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19271:3:103"},"nodeType":"YulFunctionCall","src":"19271:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19260:3:103"},"nodeType":"YulFunctionCall","src":"19260:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"19250:2:103"},"nodeType":"YulFunctionCall","src":"19250:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19243:6:103"},"nodeType":"YulFunctionCall","src":"19243:50:103"},"nodeType":"YulIf","src":"19240:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19219:5:103","type":""}],"src":"19185:131:103"},{"body":{"nodeType":"YulBlock","src":"19380:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"19414:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19423:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19426:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19416:6:103"},"nodeType":"YulFunctionCall","src":"19416:12:103"},"nodeType":"YulExpressionStatement","src":"19416:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19403:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"19410:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19400:2:103"},"nodeType":"YulFunctionCall","src":"19400:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19393:6:103"},"nodeType":"YulFunctionCall","src":"19393:20:103"},"nodeType":"YulIf","src":"19390:2:103"}]},"name":"validator_revert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19369:5:103","type":""}],"src":"19321:115:103"}]},"contents":"{\n { }\n function abi_decode_bool_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let offset_1 := calldataload(add(headStart, 128))\n if gt(offset_1, _1) { revert(value5, value5) }\n let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value5 := value5_1\n value6 := value6_1\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_bool_fromMemory(headStart)\n }\n function abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_bool_fromMemory(headStart)\n value1 := mload(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_string_calldata_ptrt_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value6, value6) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value6, value6) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(value6, value6) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value5 := value\n value6 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n mstore(value, mload(_2))\n let value_1 := mload(add(_2, 32))\n if iszero(lt(value_1, 2)) { revert(value0, value0) }\n mstore(add(value, 32), value_1)\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr__to_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 96))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_bytes_calldata_ptr_t_string_calldata_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes_calldata(value1, value2, add(headStart, 160))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value3, value4, tail_1)\n mstore(add(headStart, 96), and(value5, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value6)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_calldata_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 96))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_136fc3ad7c83d07b4d40caf713cd67bed82ca2b892762c2adbae1fe6fe0dcfb3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:PFD-004:PROCESSID_PRODUCT_\")\n mstore(add(headStart, 96), \"MISMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_18e20048df1336701316840c9034a9ef82a2e25efaf59ab47262e1bc60a26085__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:PFD-002:POLICY_NOT_EXPIRED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9b1cef90b481c0b75b84bee986adfe33e860c5dd41a12fda22045023a52d80d2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:PFD-001:POLICY_NOT_ACTIVE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d0e68ed3ce2670c36485c8c12aea21dfa09249d8122b89624db20258a17e2536__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:PFD-005:REQUESTID_PRODUCT_\")\n mstore(add(headStart, 96), \"MISMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fe1653e6a7be49437891bef0c146fde88ff09a38abe7e0ab716b9121e8b59650__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:PFD-003:POLICY_CLOSED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"26665":[{"length":32,"start":576},{"length":32,"start":7187}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101425760003560e01c80637f29dba2116100b8578063b75c7dc61161007c578063b75c7dc6146102e1578063c46df94e146102f4578063c644179814610307578063e3ebdea51461031a578063fae43d151461034a578063fe64372b1461035d57610142565b80637f29dba21461027a5780638cc7d3d11461028d57806393b8414a146102a0578063a3f4df7e146102b3578063a5b25e71146102ce57610142565b806330a73da51161010a57806330a73da5146101dc57806339c79e0c146101ef5780634cda0de9146102025780634e02c63f14610215578063781d7846146102285780637b1039991461023b57610142565b806310b96080146101475780631b07b17f1461017057806322f86e7f146101935780632c933f22146101a65780633015394c146101c7575b600080fd5b61015a610155366004612da0565b610370565b60405161016791906131e1565b60405180910390f35b61018361017e366004612cdc565b61040e565b6040519015158152602001610167565b61015a6101a1366004612da0565b610747565b6101b96101b4366004612d0c565b6107d9565b604051908152602001610167565b6101da6101d5366004612cdc565b6109be565b005b6101da6101ea366004612e12565b610c46565b6101da6101fd366004612cdc565b610eff565b6101da610210366004612da0565b61120f565b6101da610223366004612e12565b611392565b6101b9610236366004612e3d565b611554565b6102627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610167565b6101da610288366004612da0565b611733565b6101da61029b366004612cdc565b6118b6565b6101b96102ae366004612bfb565b611a68565b6101b970506f6c69637944656661756c74466c6f7760781b81565b6102626102dc366004612cdc565b611bfa565b6101da6102ef366004612cdc565b611c9b565b61015a610302366004612cdc565b611e17565b6101da610315366004612cdc565b611eaf565b61032d610328366004612da0565b612120565b604080519315158452602084019290925290820152606001610167565b6101b9610358366004612dc1565b6124f9565b61032d61036b366004612da0565b6127cc565b6060600061037c612a9d565b60405163cef58f1360e01b815260048101869052602481018590529091506001600160a01b0382169063cef58f139060440160006040518083038186803b1580156103c657600080fd5b505afa1580156103da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612fc5565b60600151949350505050565b600081600061041b612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561046157600080fd5b505afa158015610475573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261049d9190810190612f47565b905060006104b66810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156104f857600080fd5b505afa15801561050c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105309190612cf4565b82602001511461055b5760405162461bcd60e51b815260040161055290613214565b60405180910390fd5b6000610565612ab6565b604051631b07b17f60e01b8152600481018990529091506001600160a01b03821690631b07b17f90602401602060405180830381600087803b1580156105aa57600080fd5b505af11580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e29190612c8e565b9550851561073d5760006105f4612a9d565b604051630b92aa5160e31b8152600481018a90529091506001600160a01b03821690635c95528890602401600060405180830381600087803b15801561063957600080fd5b505af115801561064d573d6000803e3d6000fd5b505060405163260a666160e11b8152600481018b90526001600160a01b0384169250634c14ccc29150602401600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505060405163a3f685f960e01b8152600481018b9052600092506001600160a01b038416915063a3f685f9906024016101206040518083038186803b1580156106ef57600080fd5b505afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610727919061303f565b9050610737898260200151612120565b50505050505b5050505050919050565b60606000610753612a9d565b604051637f22c2d960e01b815260048101869052602481018590529091506001600160a01b03821690637f22c2d99060440160006040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612e9c565b60008760006107e6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108689190810190612f47565b905060006108816810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156108c357600080fd5b505afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190612cf4565b82602001511461091d5760405162461bcd60e51b815260040161055290613214565b610925612ac8565b6001600160a01b0316632c933f228d8d8d8d8d8d8d6040518863ffffffff1660e01b815260040161095c9796959493929190613143565b602060405180830381600087803b15801561097657600080fd5b505af115801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae9190612cf4565b9c9b505050505050505050505050565b8060006109c9612ac8565b905060006109d5612ac8565b6001600160a01b0316639b04ed30846040518263ffffffff1660e01b8152600401610a0291815260200190565b60206040518083038186803b158015610a1a57600080fd5b505afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190612cf4565b90506000610a5e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae09190810190612f47565b90506000610af96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610b3b57600080fd5b505afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190612cf4565b826020015114610bd65760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5046442d3030353a5245515545535449445f50524f445543545f60448201526709a92a69a82a886960c31b6064820152608401610552565b610bde612ac8565b6001600160a01b03166340e58ee5886040518263ffffffff1660e01b8152600401610c0b91815260200190565b600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b5050505050505050505050565b826000610c51612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610c9657600080fd5b505afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce919061303f565b516002811115610cee57634e487b7160e01b600052602160045260246000fd5b1415610d3c5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b846000610d47612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dc99190810190612f47565b90506000610de26810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c9190612cf4565b826020015114610e7e5760405162461bcd60e51b815260040161055290613214565b6000610e88612a9d565b6040516330a73da560e01b8152600481018c9052602481018b9052604481018a90529091506001600160a01b038216906330a73da590606401600060405180830381600087803b158015610edb57600080fd5b505af1158015610eef573d6000803e3d6000fd5b5050505050505050505050505050565b806000610f0a612a9d565b9050600160405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610f4f57600080fd5b505afa158015610f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f87919061303f565b516002811115610fa757634e487b7160e01b600052602160045260246000fd5b14610ff45760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5046442d3030323a504f4c4943595f4e4f545f455850495245446044820152606401610552565b826000610fff612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110819190810190612f47565b9050600061109a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156110dc57600080fd5b505afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190612cf4565b8260200151146111365760405162461bcd60e51b815260040161055290613214565b6000611140612a9d565b6040516315b95b6560e31b8152600481018a90529091506001600160a01b0382169063adcadb2890602401600060405180830381600087803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b5050505060006111a7612ab6565b6040516367d42a8b60e01b8152600481018b90529091506001600160a01b038216906367d42a8b90602401600060405180830381600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b50505050505050505050505050565b81600061121a612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561126057600080fd5b505afa158015611274573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261129c9190810190612f47565b905060006112b56810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156112f757600080fd5b505afa15801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190612cf4565b8260200151146113515760405162461bcd60e51b815260040161055290613214565b600061135b612a9d565b604051634cda0de960e01b815260048101899052602481018890529091506001600160a01b03821690634cda0de990604401610c0b565b82600061139d612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156113e357600080fd5b505afa1580156113f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141f9190810190612f47565b905060006114386810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b29190612cf4565b8260200151146114d45760405162461bcd60e51b815260040161055290613214565b60006114de612a9d565b604051634e02c63f60e01b8152600481018a905260248101899052604481018890529091506001600160a01b03821690634e02c63f906064015b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050505050505050505050565b6000856000611561612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115e39190810190612f47565b905060006115fc6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116769190612cf4565b8260200151146116985760405162461bcd60e51b815260040161055290613214565b6116a0612a9d565b6001600160a01b031663db42b77b8b8b8b8b8b6040518663ffffffff1660e01b81526004016116d39594939291906131b0565b602060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117259190612cf4565b9a9950505050505050505050565b81600061173e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561178457600080fd5b505afa158015611798573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117c09190810190612f47565b905060006117d96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561181b57600080fd5b505afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118539190612cf4565b8260200151146118755760405162461bcd60e51b815260040161055290613214565b600061187f612a9d565b604051633f94edd160e11b815260048101899052602481018890529091506001600160a01b03821690637f29dba290604401610c0b565b8060006118c1612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561190757600080fd5b505afa15801561191b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119439190810190612f47565b9050600061195c6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561199e57600080fd5b505afa1580156119b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d69190612cf4565b8260200151146119f85760405162461bcd60e51b815260040161055290613214565b6000611a02612a9d565b60405163296d6c7d60e01b8152600481018890529091506001600160a01b0382169063296d6c7d906024015b600060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b50505050505050505050565b600080611a73612adb565b604051632b1c7f7360e01b81523360048201529091506000906001600160a01b03831690632b1c7f739060240160206040518083038186803b158015611ab857600080fd5b505afa158015611acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af09190612cf4565b90506000611afc612a9d565b6040516350c0a50d60e11b81529091506001600160a01b0382169063a1814a1a90611b31908e9086908d908d90600401613111565b602060405180830381600087803b158015611b4b57600080fd5b505af1158015611b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b839190612cf4565b6040516333c019b760e11b81529094506001600160a01b03821690636780336e90611bba9087908e908e908c908c906004016131b0565b600060405180830381600087803b158015611bd457600080fd5b505af1158015611be8573d6000803e3d6000fd5b50505050505050979650505050505050565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c5d57600080fd5b505afa158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190612bd8565b92915050565b806000611ca6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611cec57600080fd5b505afa158015611d00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d289190810190612f47565b90506000611d416810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015611d8357600080fd5b505afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190612cf4565b826020015114611ddd5760405162461bcd60e51b815260040161055290613214565b6000611de7612a9d565b60405163eb96cbed60e01b8152600481018890529091506001600160a01b0382169063eb96cbed90602401611a2e565b60606000611e23612a9d565b604051632f141bd960e21b8152600481018590529091506001600160a01b0382169063bc506f649060240160006040518083038186803b158015611e6657600080fd5b505afa158015611e7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ea29190810190612e9c565b606001519150505b919050565b806000611eba612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015611eff57600080fd5b505afa158015611f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f37919061303f565b516002811115611f5757634e487b7160e01b600052602160045260246000fd5b14611fa45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b826000611faf612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611ff557600080fd5b505afa158015612009573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120319190810190612f47565b9050600061204a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561208c57600080fd5b505afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190612cf4565b8260200151146120e65760405162461bcd60e51b815260040161055290613214565b60006120f0612a9d565b6040516308fc762760e31b8152600481018a90529091506001600160a01b038216906347e3b13890602401611518565b6000806000846000612130612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561217557600080fd5b505afa158015612189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ad919061303f565b5160028111156121cd57634e487b7160e01b600052602160045260246000fd5b141561221b5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b866000612226612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561226c57600080fd5b505afa158015612280573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122a89190810190612f47565b905060006122c16810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561230357600080fd5b505afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612cf4565b82602001511461235d5760405162461bcd60e51b815260040161055290613214565b6000612367612af2565b90506000612373612a9d565b6040516242104d60e31b8152600481018f9052602481018e90529091506001600160a01b03831690630210826890604401606060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f69190612ca8565b919c509a5098508a156124ea576001600160a01b03811663e3ebdea58e61241d8d8d61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801561245b57600080fd5b505af115801561246f573d6000803e3d6000fd5b50505050600061247d612ab6565b9050806001600160a01b031663021082688f8c6040518363ffffffff1660e01b81526004016124b6929190918252602082015260400190565b600060405180830381600087803b1580156124d057600080fd5b505af11580156124e4573d6000803e3d6000fd5b50505050505b50505050505050509250925092565b6000846000612506612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561254b57600080fd5b505afa15801561255f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612583919061303f565b5160028111156125a357634e487b7160e01b600052602160045260246000fd5b146125f05760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b8660006125fb612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561264157600080fd5b505afa158015612655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261267d9190810190612f47565b905060006126966810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156126d857600080fd5b505afa1580156126ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127109190612cf4565b8260200151146127325760405162461bcd60e51b815260040161055290613214565b61273a612a9d565b6001600160a01b031663ec9356688c8c8c8c6040518563ffffffff1660e01b815260040161276b9493929190613190565b602060405180830381600087803b15801561278557600080fd5b505af1158015612799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bd9190612cf4565b9b9a5050505050505050505050565b60008060008460006127dc612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561282257600080fd5b505afa158015612836573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261285e9190810190612f47565b905060006128776810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156128b957600080fd5b505afa1580156128cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f19190612cf4565b8260200151146129135760405162461bcd60e51b815260040161055290613214565b600061291d612af2565b60405163fe64372b60e01b8152600481018c9052602481018b90529091506001600160a01b0382169063fe64372b906044016040805180830381600087803b15801561296857600080fd5b505af115801561297c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a091906130c4565b909750955060006129af612a9d565b60405163fe64372b60e01b8152600481018d9052602481018c90529091506001600160a01b0382169063fe64372b90604401600060405180830381600087803b1580156129fb57600080fd5b505af1158015612a0f573d6000803e3d6000fd5b505050506000612a1d612ab6565b90506001600160a01b03811663fe64372b8d612a398c8c61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b158015612a7757600080fd5b505af1158015612a8b573d6000803e3d6000fd5b50505050505050505050509250925092565b6000612ab165506f6c69637960d01b611bfa565b905090565b6000612ab163141bdbdb60e21b611bfa565b6000612ab164517565727960d81b611bfa565b6000612ab16810dbdb5c1bdb995b9d60ba1b611bfa565b6000612ab167547265617375727960c01b611bfa565b80518015158114611eaa57600080fd5b60008083601f840112612b29578182fd5b50813567ffffffffffffffff811115612b40578182fd5b602083019150836020828501011115612b5857600080fd5b9250929050565b600082601f830112612b6f578081fd5b815167ffffffffffffffff811115612b8957612b896132e1565b612b9c601f8201601f191660200161325c565b818152846020838601011115612bb0578283fd5b612bc18260208301602087016132b1565b949350505050565b805160038110611eaa57600080fd5b600060208284031215612be9578081fd5b8151612bf4816132f7565b9392505050565b600080600080600080600060a0888a031215612c15578283fd5b8735612c20816132f7565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612c4a578485fd5b612c568b838c01612b18565b909650945060808a0135915080821115612c6e578384fd5b50612c7b8a828b01612b18565b989b979a50959850939692959293505050565b600060208284031215612c9f578081fd5b612bf482612b08565b600080600060608486031215612cbc578081fd5b612cc584612b08565b925060208401519150604084015190509250925092565b600060208284031215612ced578081fd5b5035919050565b600060208284031215612d05578081fd5b5051919050565b600080600080600080600060a0888a031215612d26578081fd5b87359650602088013567ffffffffffffffff80821115612d44578283fd5b612d508b838c01612b18565b909850965060408a0135915080821115612d68578283fd5b50612d758a828b01612b18565b9095509350506060880135612d89816132f7565b809250506080880135905092959891949750929550565b60008060408385031215612db2578182fd5b50508035926020909101359150565b60008060008060608587031215612dd6578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612dfa578283fd5b612e0687828801612b18565b95989497509550505050565b600080600060608486031215612e26578081fd5b505081359360208301359350604090920135919050565b600080600080600060808688031215612e54578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115612e7f578182fd5b612e8b88828901612b18565b969995985093965092949392505050565b600060208284031215612ead578081fd5b815167ffffffffffffffff80821115612ec4578283fd5b9083019060c08286031215612ed7578283fd5b612ee160c061325c565b8251612eec8161330f565b808252506020830151602082015260408301516040820152606083015182811115612f15578485fd5b612f2187828601612b5f565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612f58578081fd5b815167ffffffffffffffff80821115612f6f578283fd5b9083019060c08286031215612f82578283fd5b612f8c60c061325c565b8251612f97816132f7565b815260208381015190820152612faf60408401612bc9565b6040820152606083015182811115612f15578485fd5b600060208284031215612fd6578081fd5b815167ffffffffffffffff80821115612fed578283fd5b9083019060c08286031215613000578283fd5b61300a60c061325c565b8251815260208301516002811061301f578485fd5b602082015260408381015190820152606083015182811115612f15578485fd5b6000610120808385031215613052578182fd5b61305b8161325c565b905061306683612bc9565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080604083850312156130d6578182fd5b505080516020909101519092909150565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600060018060a01b0386168252846020830152606060408301526131396060830184866130e7565b9695505050505050565b600088825260a0602083015261315d60a08301888a6130e7565b82810360408401526131708187896130e7565b6001600160a01b0395909516606084015250506080015295945050505050565b6000858252846020830152606060408301526131396060830184866130e7565b6000868252856020830152846040830152608060608301526131d66080830184866130e7565b979650505050505050565b60006020825282518060208401526132008160408501602087016132b1565b601f01601f19169190910160400192915050565b60208082526028908201527f4552524f523a5046442d3030343a50524f4345535349445f50524f445543545f60408201526709a92a69a82a886960c31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613285576132856132e1565b604052919050565b600082198211156132ac57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156132cc5781810151838201526020016132b4565b838111156132db576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461330c57600080fd5b50565b6004811061330c57600080fdfea264697066735822122092c051776eb1683c4470104ec76b5b4902125ab9cd0e8ba206bb1da8cad8d51c64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F29DBA2 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xB75C7DC6 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xB75C7DC6 EQ PUSH2 0x2E1 JUMPI DUP1 PUSH4 0xC46DF94E EQ PUSH2 0x2F4 JUMPI DUP1 PUSH4 0xC6441798 EQ PUSH2 0x307 JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0xFAE43D15 EQ PUSH2 0x34A JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x35D JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x27A JUMPI DUP1 PUSH4 0x8CC7D3D1 EQ PUSH2 0x28D JUMPI DUP1 PUSH4 0x93B8414A EQ PUSH2 0x2A0 JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x2B3 JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x2CE JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x30A73DA5 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x1DC JUMPI DUP1 PUSH4 0x39C79E0C EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x202 JUMPI DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x215 JUMPI DUP1 PUSH4 0x781D7846 EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x7B103999 EQ PUSH2 0x23B JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x10B96080 EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0x22F86E7F EQ PUSH2 0x193 JUMPI DUP1 PUSH4 0x2C933F22 EQ PUSH2 0x1A6 JUMPI DUP1 PUSH4 0x3015394C EQ PUSH2 0x1C7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x370 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x167 SWAP2 SWAP1 PUSH2 0x31E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x183 PUSH2 0x17E CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x40E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x1A1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x747 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x1B4 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D0C JUMP JUMPDEST PUSH2 0x7D9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x1D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x9BE JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DA PUSH2 0x1EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2E12 JUMP JUMPDEST PUSH2 0xC46 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x1FD CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0xEFF JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x210 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x120F JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x223 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E12 JUMP JUMPDEST PUSH2 0x1392 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x236 CALLDATASIZE PUSH1 0x4 PUSH2 0x2E3D JUMP JUMPDEST PUSH2 0x1554 JUMP JUMPDEST PUSH2 0x262 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x288 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x1733 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x29B CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x18B6 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x2AE CALLDATASIZE PUSH1 0x4 PUSH2 0x2BFB JUMP JUMPDEST PUSH2 0x1A68 JUMP JUMPDEST PUSH2 0x1B9 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH2 0x262 PUSH2 0x2DC CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1BFA JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x2EF CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1C9B JUMP JUMPDEST PUSH2 0x15A PUSH2 0x302 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1E17 JUMP JUMPDEST PUSH2 0x1DA PUSH2 0x315 CALLDATASIZE PUSH1 0x4 PUSH2 0x2CDC JUMP JUMPDEST PUSH2 0x1EAF JUMP JUMPDEST PUSH2 0x32D PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x2120 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x167 JUMP JUMPDEST PUSH2 0x1B9 PUSH2 0x358 CALLDATASIZE PUSH1 0x4 PUSH2 0x2DC1 JUMP JUMPDEST PUSH2 0x24F9 JUMP JUMPDEST PUSH2 0x32D PUSH2 0x36B CALLDATASIZE PUSH1 0x4 PUSH2 0x2DA0 JUMP JUMPDEST PUSH2 0x27CC JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x37C PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xCEF58F13 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xCEF58F13 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3DA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x402 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2FC5 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 PUSH2 0x41B PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x475 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x49D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4B6 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x50C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x530 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x565 PUSH2 0x2AB6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5E2 SWAP2 SWAP1 PUSH2 0x2C8E JUMP JUMPDEST SWAP6 POP DUP6 ISZERO PUSH2 0x73D JUMPI PUSH1 0x0 PUSH2 0x5F4 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB92AA51 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x5C955288 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x639 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x64D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x260A6661 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH4 0x4C14CCC2 SWAP2 POP PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x693 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x0 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP2 POP PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x703 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x727 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST SWAP1 POP PUSH2 0x737 DUP10 DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x2120 JUMP JUMPDEST POP POP POP POP POP JUMPDEST POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x753 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x79D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x402 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x0 PUSH2 0x7E6 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x82C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x840 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x868 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x881 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8D7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8FB SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x91D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x925 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2C933F22 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 DUP14 PUSH1 0x40 MLOAD DUP9 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x95C SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3143 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x98A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AE SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x9C9 PUSH2 0x2AC8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9D5 PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9B04ED30 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA02 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA52 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xA5E PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xAE0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xAF9 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB3B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB4F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB73 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0xBD6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030353A5245515545535449445F50524F445543545F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x9A92A69A82A8869 PUSH1 0xC3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x552 JUMP JUMPDEST PUSH2 0xBDE PUSH2 0x2AC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x40E58EE5 DUP9 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC0B SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0xC51 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCAA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCCE SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCEE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xD3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030333A504F4C4943595F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP5 PUSH1 0x0 PUSH2 0xD47 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDA1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xDC9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xDE2 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE38 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE5C SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0xE7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE88 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xEEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0xF0A PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF87 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFA7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xFF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030323A504F4C4943595F4E4F545F45585049524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0xFFF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1045 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1059 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1081 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x109A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1114 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1136 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1140 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x15B95B65 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xADCADB28 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1199 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x11A7 PUSH2 0x2AB6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x67D42A8B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x67D42A8B SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1200 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 PUSH2 0x121A PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1274 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x129C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x12B5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x130B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x132F SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1351 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x135B PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD PUSH2 0xC0B JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0x139D PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x141F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1438 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x147A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x148E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14B2 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x14D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14DE PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1532 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1546 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 PUSH1 0x0 PUSH2 0x1561 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x15E3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x15FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1652 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1676 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1698 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x16A0 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xDB42B77B DUP12 DUP12 DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16D3 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x31B0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1701 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1725 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH1 0x0 PUSH2 0x173E PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1784 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1798 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x17C0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17D9 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x181B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x182F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1853 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1875 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x187F PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0xC0B JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x18C1 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1907 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x191B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1943 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x195C PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x199E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19D6 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x19F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A02 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296D6C7D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x296D6C7D SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1A5C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1A73 PUSH2 0x2ADB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1ACC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1AF0 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1AFC PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x50C0A50D PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xA1814A1A SWAP1 PUSH2 0x1B31 SWAP1 DUP15 SWAP1 DUP7 SWAP1 DUP14 SWAP1 DUP14 SWAP1 PUSH1 0x4 ADD PUSH2 0x3111 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B83 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x33C019B7 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x6780336E SWAP1 PUSH2 0x1BBA SWAP1 DUP8 SWAP1 DUP15 SWAP1 DUP15 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0x31B0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BE8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C5D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C71 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C95 SWAP2 SWAP1 PUSH2 0x2BD8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x1CA6 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D00 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1D28 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1D41 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D83 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D97 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DBB SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x1DDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DE7 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xEB96CBED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xEB96CBED SWAP1 PUSH1 0x24 ADD PUSH2 0x1A2E JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x1E23 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1EA2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2E9C JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH2 0x1EBA PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EFF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F13 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F37 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1F57 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1FA4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP3 PUSH1 0x0 PUSH2 0x1FAF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2009 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2031 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x204A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20C4 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x20E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20F0 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8FC7627 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x47E3B138 SWAP1 PUSH1 0x24 ADD PUSH2 0x1518 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x2130 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x2 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2189 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x21AD SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x21CD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x221B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030333A504F4C4943595F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP7 PUSH1 0x0 PUSH2 0x2226 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x226C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2280 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x22A8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x22C1 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2303 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2317 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x233B SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x235D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2367 PUSH2 0x2AF2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2373 PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x42104D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0x2108268 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x23D2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23F6 SWAP2 SWAP1 PUSH2 0x2CA8 JUMP JUMPDEST SWAP2 SWAP13 POP SWAP11 POP SWAP9 POP DUP11 ISZERO PUSH2 0x24EA JUMPI PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH4 0xE3EBDEA5 DUP15 PUSH2 0x241D DUP14 DUP14 PUSH2 0x328D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x245B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x246F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x247D PUSH2 0x2AB6 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2108268 DUP16 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24B6 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24E4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMPDEST POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x2506 PUSH2 0x2A9D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x254B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x255F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2583 SWAP2 SWAP1 PUSH2 0x303F JUMP JUMPDEST MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x25A3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x25F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x552 JUMP JUMPDEST DUP7 PUSH1 0x0 PUSH2 0x25FB PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2641 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2655 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x267D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2696 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26EC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2710 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x2732 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH2 0x273A PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xEC935668 DUP13 DUP13 DUP13 DUP13 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x276B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3190 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2785 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2799 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x27BD SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 PUSH1 0x0 PUSH2 0x27DC PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2822 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2836 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x285E SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2F47 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2877 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x28B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28CD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28F1 SWAP2 SWAP1 PUSH2 0x2CF4 JUMP JUMPDEST DUP3 PUSH1 0x20 ADD MLOAD EQ PUSH2 0x2913 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP1 PUSH2 0x3214 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x291D PUSH2 0x2AF2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2968 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x297C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x29A0 SWAP2 SWAP1 PUSH2 0x30C4 JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP PUSH1 0x0 PUSH2 0x29AF PUSH2 0x2A9D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP13 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A0F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x0 PUSH2 0x2A1D PUSH2 0x2AB6 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH4 0xFE64372B DUP14 PUSH2 0x2A39 DUP13 DUP13 PUSH2 0x328D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1BFA JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1BFA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2AB1 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1BFA JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1EAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x2B29 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B40 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2B58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2B6F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B89 JUMPI PUSH2 0x2B89 PUSH2 0x32E1 JUMP JUMPDEST PUSH2 0x2B9C PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x325C JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2BB0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2BC1 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x32B1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1EAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2BE9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2BF4 DUP2 PUSH2 0x32F7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2C15 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH2 0x2C20 DUP2 PUSH2 0x32F7 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C4A JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2C56 DUP12 DUP4 DUP13 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2C6E JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2C7B DUP11 DUP3 DUP12 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C9F JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2BF4 DUP3 PUSH2 0x2B08 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2CBC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x2CC5 DUP5 PUSH2 0x2B08 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2CED JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D05 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x2D26 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2D44 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2D50 DUP12 DUP4 DUP13 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2D68 JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x2D75 DUP11 DUP3 DUP12 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH2 0x2D89 DUP2 PUSH2 0x32F7 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2DB2 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2DD6 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DFA JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2E06 DUP8 DUP3 DUP9 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2E26 JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2E54 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2E7F JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2E8B DUP9 DUP3 DUP10 ADD PUSH2 0x2B18 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EAD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2EC4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2ED7 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2EE1 PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2EEC DUP2 PUSH2 0x330F JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2F21 DUP8 DUP3 DUP7 ADD PUSH2 0x2B5F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2F58 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2F6F JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2F82 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2F8C PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2F97 DUP2 PUSH2 0x32F7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2FAF PUSH1 0x40 DUP5 ADD PUSH2 0x2BC9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FD6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2FED JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3000 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x300A PUSH1 0xC0 PUSH2 0x325C JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x301F JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2F15 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3052 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x305B DUP2 PUSH2 0x325C JUMP JUMPDEST SWAP1 POP PUSH2 0x3066 DUP4 PUSH2 0x2BC9 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x30D6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP7 AND DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3139 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP9 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x315D PUSH1 0xA0 DUP4 ADD DUP9 DUP11 PUSH2 0x30E7 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x3170 DUP2 DUP8 DUP10 PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3139 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x31D6 PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x30E7 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x3200 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x32B1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x28 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5046442D3030343A50524F4345535349445F50524F445543545F PUSH1 0x40 DUP3 ADD MSTORE PUSH8 0x9A92A69A82A8869 PUSH1 0xC3 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3285 JUMPI PUSH2 0x3285 PUSH2 0x32E1 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x32AC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x32CC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x32B4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x32DB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x330C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x330C JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 0xC0 MLOAD PUSH24 0x6EB1683C4470104EC76B5B4902125AB9CD0E8BA206BB1DA8 0xCA 0xD8 0xD5 SHR PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"565:10634:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10204:246;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3588:1022;;;;;;:::i;:::-;;:::i;:::-;;;12932:14:103;;12925:22;12907:41;;12895:2;12880:18;3588:1022:72;12862:92:103;9956:242:72;;;;;;:::i;:::-;;:::i;9016:523::-;;;;;;:::i;:::-;;:::i;:::-;;;13439:25:103;;;13427:2;13412:18;9016:523:72;13394:76:103;9545:171:72;;;;;;:::i;:::-;;:::i;:::-;;5653:392;;;;;;:::i;:::-;;:::i;6492:301::-;;;;;;:::i;:::-;;:::i;7486:234::-;;;;;;:::i;:::-;;:::i;7174:306::-;;;;;;:::i;:::-;;:::i;7962:336::-;;;;;;:::i;:::-;;:::i;412:35:91:-;;;;;;;;-1:-1:-1;;;;;12306:32:103;;;12288:51;;12276:2;12261:18;412:35:91;12243:102:103;7726:230:72;;;;;;:::i;:::-;;:::i;6052:200::-;;;;;;:::i;:::-;;:::i;2663:654::-;;;;;;:::i;:::-;;:::i;620:50::-;;-1:-1:-1;;;620:50:72;;1344:200:91;;;;;;:::i;:::-;;:::i;3323:197:72:-;;;;;;:::i;:::-;;:::i;9722:228::-;;;;;;:::i;:::-;;:::i;6258:::-;;;;;;:::i;:::-;;:::i;4847:796::-;;;;;;:::i;:::-;;:::i;:::-;;;;13180:14:103;;13173:22;13155:41;;13227:2;13212:18;;13205:34;;;;13255:18;;;13248:34;13143:2;13128:18;4847:796:72;13110:178:103;6799:369:72;;;;;;:::i;:::-;;:::i;8304:706::-;;;;;;:::i;:::-;;:::i;10204:246::-;10311:12;10339:23;10365:19;:17;:19::i;:::-;10401:37;;-1:-1:-1;;;10401:37:72;;;;;14329:25:103;;;14370:18;;;14363:34;;;10339:45:72;;-1:-1:-1;;;;;;10401:16:72;;;;;14302:18:103;;10401:37:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10401:37:72;;;;;;;;;;;;:::i;:::-;:42;;;;10204:246;-1:-1:-1;;;;10204:246:72:o;3588:1022::-;3704:12;3677:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;;;;;;;;;3795:19:::1;3817:17;:15;:17::i;:::-;3854:26;::::0;-1:-1:-1;;;3854:26:72;;::::1;::::0;::::1;13439:25:103::0;;;3795:39:72;;-1:-1:-1;;;;;;3854:15:72;::::1;::::0;::::1;::::0;13412:18:103;;3854:26:72::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3844:36;;4207:7;4203:401;;;4230:33;4266:19;:17;:19::i;:::-;4299:49;::::0;-1:-1:-1;;;4299:49:72;;::::1;::::0;::::1;13439:25:103::0;;;4230:55:72;;-1:-1:-1;;;;;;4299:38:72;::::1;::::0;::::1;::::0;13412:18:103;;4299:49:72::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4362:40:72::1;::::0;-1:-1:-1;;;4362:40:72;;::::1;::::0;::::1;13439:25:103::0;;;-1:-1:-1;;;;;4362:29:72;::::1;::::0;-1:-1:-1;4362:29:72::1;::::0;-1:-1:-1;13412:18:103;;4362:40:72::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4487:37:72::1;::::0;-1:-1:-1;;;4487:37:72;;::::1;::::0;::::1;13439:25:103::0;;;4456:28:72::1;::::0;-1:-1:-1;;;;;;4487:26:72;::::1;::::0;-1:-1:-1;4487:26:72::1;::::0;13412:18:103;;4487:37:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4456:68;;4538:55;4553:9;4564:6;:28;;;4538:14;:55::i;:::-;;;;4203:401;;;1919:1;3588:1022:::0;;;;;;;:::o;9956:242::-;10061:12;10089:23;10115:19;:17;:19::i;:::-;10151:35;;-1:-1:-1;;;10151:35:72;;;;;14329:25:103;;;14370:18;;;14363:34;;;10089:45:72;;-1:-1:-1;;;;;;10151:15:72;;;;;14302:18:103;;10151:35:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10151:35:72;;;;;;;;;;;;:::i;9016:523::-;9300:18;9272:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;9348:18:::1;:16;:18::i;:::-;-1:-1:-1::0;;;;;9348:26:72::1;;9388:9;9411:6;;9431:19;;9464:24;9502:20;9348:184;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9335:197:::0;9016:523;-1:-1:-1;;;;;;;;;;;;9016:523:72:o;9545:171::-;9648:9;1991:17;2011:18;:16;:18::i;:::-;1991:38;;2039:17;2059:18;:16;:18::i;:::-;-1:-1:-1;;;;;2059:31:72;;2091:9;2059:42;;;;;;;;;;;;;13439:25:103;;13427:2;13412:18;;13394:76;2059:42:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2039:62;;2111:23;2137:19;:17;:19::i;:::-;2201:29;;-1:-1:-1;;;2201:29:72;;;;;13439:25:103;;;2111:45:72;;-1:-1:-1;2166:32:72;;-1:-1:-1;;;;;2201:18:72;;;;;13412::103;;2201:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2201:29:72;;;;;;;;;;;;:::i;:::-;2166:64;;2240:29;2292:36;-1:-1:-1;;;2292:23:72;:36::i;:::-;2369:45;;-1:-1:-1;;;2369:45:72;;2402:10;2369:45;;;12288:51:103;2240:89:72;;-1:-1:-1;;;;;;2369:24:72;;;;;12261:18:103;;2369:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2347:8;:18;;;:67;2339:120;;;;-1:-1:-1;;;2339:120:72;;17531:2:103;2339:120:72;;;17513:21:103;17570:2;17550:18;;;17543:30;17609:34;17589:18;;;17582:62;-1:-1:-1;;;17660:18:103;;;17653:38;17708:19;;2339:120:72;17503:230:103;2339:120:72;9673:18:::1;:16;:18::i;:::-;-1:-1:-1::0;;;;;9673:25:72::1;;9699:9;9673:36;;;;;;;;;;;;;13439:25:103::0;;13427:2;13412:18;;13394:76;9673:36:72::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9545:171:::0;;;;;;;:::o;5653:392::-;5834:9;1284:23;1310:19;:17;:19::i;:::-;1284:45;-1:-1:-1;1397:26:72;1360:27;;-1:-1:-1;;;1360:27:72;;;;;13439:25:103;;;-1:-1:-1;;;;;1360:16:72;;;;;13412:18:103;;1360:27:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;:63;;;;;;-1:-1:-1;;;1360:63:72;;;;;;;;;;;1339:137;;;;-1:-1:-1;;;1339:137:72;;17940:2:103;1339:137:72;;;17922:21:103;17979:2;17959:18;;;17952:30;18018:29;17998:18;;;17991:57;18065:18;;1339:137:72;17912:177:103;1339:137:72;5876:9:::1;1561:23;1587:19;:17;:19::i;:::-;1651:29;::::0;-1:-1:-1;;;1651:29:72;;::::1;::::0;::::1;13439:25:103::0;;;1561:45:72;;-1:-1:-1;1616:32:72::1;::::0;-1:-1:-1;;;;;1651:18:72;::::1;::::0;::::1;::::0;13412::103;;1651:29:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1651:29:72::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1::0;;;1742:23:72::1;:36::i;:::-;1819:45;::::0;-1:-1:-1;;;1819:45:72;;1852:10:::1;1819:45;::::0;::::1;12288:51:103::0;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;::::1;::::0;::::1;::::0;12261:18:103;;1819:45:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1::0;;;1789:120:72::1;;;;;;;:::i;:::-;5901:23:::2;5927:19;:17;:19::i;:::-;5956:82;::::0;-1:-1:-1;;;5956:82:72;;::::2;::::0;::::2;15001:25:103::0;;;15042:18;;;15035:34;;;15085:18;;;15078:34;;;5901:45:72;;-1:-1:-1;;;;;;5956:30:72;::::2;::::0;::::2;::::0;14974:18:103;;5956:82:72::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;1919:1;1486::::1;;;;5653:392:::0;;;;;:::o;6492:301::-;6570:9;1008:23;1034:19;:17;:19::i;:::-;1008:45;-1:-1:-1;1121:27:72;1084;;-1:-1:-1;;;1084:27:72;;;;;13439:25:103;;;-1:-1:-1;;;;;1084:16:72;;;;;13412:18:103;;1084:27:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;:64;;;;;;-1:-1:-1;;;1084:64:72;;;;;;;;;;1063:143;;;;-1:-1:-1;;;1063:143:72;;16810:2:103;1063:143:72;;;16792:21:103;;;16829:18;;;16822:30;16888:34;16868:18;;;16861:62;16940:18;;1063:143:72;16782:182:103;1063:143:72;6612:9:::1;1561:23;1587:19;:17;:19::i;:::-;1651:29;::::0;-1:-1:-1;;;1651:29:72;;::::1;::::0;::::1;13439:25:103::0;;;1561:45:72;;-1:-1:-1;1616:32:72::1;::::0;-1:-1:-1;;;;;1651:18:72;::::1;::::0;::::1;::::0;13412::103;;1651:29:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1651:29:72::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1::0;;;1742:23:72::1;:36::i;:::-;1819:45;::::0;-1:-1:-1;;;1819:45:72;;1852:10:::1;1819:45;::::0;::::1;12288:51:103::0;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;::::1;::::0;::::1;::::0;12261:18:103;;1819:45:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1::0;;;1789:120:72::1;;;;;;;:::i;:::-;6637:14:::2;6654:19;:17;:19::i;:::-;6683:29;::::0;-1:-1:-1;;;6683:29:72;;::::2;::::0;::::2;13439:25:103::0;;;6637:36:72;;-1:-1:-1;;;;;;6683:18:72;::::2;::::0;::::2;::::0;13412::103;;6683:29:72::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;6723:10;6736:17;:15;:17::i;:::-;6763:23;::::0;-1:-1:-1;;;6763:23:72;;::::2;::::0;::::2;13439:25:103::0;;;6723:30:72;;-1:-1:-1;;;;;;6763:12:72;::::2;::::0;::::2;::::0;13412:18:103;;6763:23:72::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;1919:1;;1216::::1;;;;6492:301:::0;;;:::o;7486:234::-;7594:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;7619:23:::1;7645:19;:17;:19::i;:::-;7674:39;::::0;-1:-1:-1;;;7674:39:72;;::::1;::::0;::::1;14329:25:103::0;;;14370:18;;;14363:34;;;7619:45:72;;-1:-1:-1;;;;;;7674:19:72;::::1;::::0;::::1;::::0;14302:18:103;;7674:39:72::1;14284:119:103::0;7174:306:72;7336:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;7362:23:::1;7388:19;:17;:19::i;:::-;7417:56;::::0;-1:-1:-1;;;7417:56:72;;::::1;::::0;::::1;15001:25:103::0;;;15042:18;;;15035:34;;;15085:18;;;15078:34;;;7362:45:72;;-1:-1:-1;;;;;;7417:19:72;::::1;::::0;::::1;::::0;14974:18:103;;7417:56:72::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1919:1;7174:306:::0;;;;;;;:::o;7962:336::-;8169:16;8142:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;8212:19:::1;:17;:19::i;:::-;-1:-1:-1::0;;;;;8212:45:72::1;;8258:9;8269:7;8278:6;8286:4;;8212:79;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8201:90:::0;7962:336;-1:-1:-1;;;;;;;;;;7962:336:72:o;7726:230::-;7832:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;7857:23:::1;7883:19;:17;:19::i;:::-;7912:37;::::0;-1:-1:-1;;;7912:37:72;;::::1;::::0;::::1;14329:25:103::0;;;14370:18;;;14363:34;;;7857:45:72;;-1:-1:-1;;;;;;7912:17:72;::::1;::::0;::::1;::::0;14302:18:103;;7912:37:72::1;14284:119:103::0;6052:200:72;6120:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;6163:14:::1;6180:19;:17;:19::i;:::-;6209:36;::::0;-1:-1:-1;;;6209:36:72;;::::1;::::0;::::1;13439:25:103::0;;;6163:36:72;;-1:-1:-1;;;;;;6209:25:72;::::1;::::0;::::1;::::0;13412:18:103;;6209:36:72::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1919:1;6052:200:::0;;;;;:::o;2663:654::-;2890:17;2923:29;2955:22;:20;:22::i;:::-;3007:36;;-1:-1:-1;;;3007:36:72;;3032:10;3007:36;;;12288:51:103;2923:54:72;;-1:-1:-1;2987:17:72;;-1:-1:-1;;;;;3007:24:72;;;;;12261:18:103;;3007:36:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2987:56;;3054:14;3071:19;:17;:19::i;:::-;3112:51;;-1:-1:-1;;;3112:51:72;;3054:36;;-1:-1:-1;;;;;;3112:23:72;;;;;:51;;3136:5;;3143:9;;3154:8;;;;3112:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3173:137;;-1:-1:-1;;;3173:137:72;;3100:63;;-1:-1:-1;;;;;;3173:24:72;;;;;:137;;3100:63;;3235:13;;3263:16;;3294:15;;;;3173:137;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2663:654;;;;;;;;;;;;:::o;1344:200:91:-;1502:35;;-1:-1:-1;;;1502:35:91;;;;;13439:25:103;;;1465:13:91;;1502:8;-1:-1:-1;;;;;1502:20:91;;;;13412:18:103;;1502:35:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1494:43;1344:200;-1:-1:-1;;1344:200:91:o;3323:197:72:-;3407:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;3432:14:::1;3449:19;:17;:19::i;:::-;3478:35;::::0;-1:-1:-1;;;3478:35:72;;::::1;::::0;::::1;13439:25:103::0;;;3432:36:72;;-1:-1:-1;;;;;;3478:24:72;::::1;::::0;::::1;::::0;13412:18:103;;3478:35:72::1;13394:76:103::0;9722:228:72;9816:12;9844:23;9870:19;:17;:19::i;:::-;9906:32;;-1:-1:-1;;;9906:32:72;;;;;13439:25:103;;;9844:45:72;;-1:-1:-1;;;;;;9906:21:72;;;;;13412:18:103;;9906:32:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9906:32:72;;;;;;;;;;;;:::i;:::-;:37;;;9899:44;;;9722:228;;;;:::o;6258:::-;6336:9;732:23;758:19;:17;:19::i;:::-;732:45;-1:-1:-1;845:26:72;808:27;;-1:-1:-1;;;808:27:72;;;;;13439:25:103;;;-1:-1:-1;;;;;808:16:72;;;;;13412:18:103;;808:27:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;:63;;;;;;-1:-1:-1;;;808:63:72;;;;;;;;;;787:141;;;;-1:-1:-1;;;787:141:72;;17171:2:103;787:141:72;;;17153:21:103;17210:2;17190:18;;;17183:30;17249:33;17229:18;;;17222:61;17300:18;;787:141:72;17143:181:103;787:141:72;6378:9:::1;1561:23;1587:19;:17;:19::i;:::-;1651:29;::::0;-1:-1:-1;;;1651:29:72;;::::1;::::0;::::1;13439:25:103::0;;;1561:45:72;;-1:-1:-1;1616:32:72::1;::::0;-1:-1:-1;;;;;1651:18:72;::::1;::::0;::::1;::::0;13412::103;;1651:29:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1651:29:72::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1::0;;;1742:23:72::1;:36::i;:::-;1819:45;::::0;-1:-1:-1;;;1819:45:72;;1852:10:::1;1819:45;::::0;::::1;12288:51:103::0;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;::::1;::::0;::::1;::::0;12261:18:103;;1819:45:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1::0;;;1789:120:72::1;;;;;;;:::i;:::-;6403:14:::2;6420:19;:17;:19::i;:::-;6449:30;::::0;-1:-1:-1;;;6449:30:72;;::::2;::::0;::::2;13439:25:103::0;;;6403:36:72;;-1:-1:-1;;;;;;6449:19:72;::::2;::::0;::::2;::::0;13412:18:103;;6449:30:72::2;13394:76:103::0;4847:796:72;5029:12;5056:17;5088:24;4947:9;1284:23;1310:19;:17;:19::i;:::-;1284:45;-1:-1:-1;1397:26:72;1360:27;;-1:-1:-1;;;1360:27:72;;;;;13439:25:103;;;-1:-1:-1;;;;;1360:16:72;;;;;13412:18:103;;1360:27:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;:63;;;;;;-1:-1:-1;;;1360:63:72;;;;;;;;;;;1339:137;;;;-1:-1:-1;;;1339:137:72;;17940:2:103;1339:137:72;;;17922:21:103;17979:2;17959:18;;;17952:30;18018:29;17998:18;;;17991:57;18065:18;;1339:137:72;17912:177:103;1339:137:72;4989:9:::1;1561:23;1587:19;:17;:19::i;:::-;1651:29;::::0;-1:-1:-1;;;1651:29:72;;::::1;::::0;::::1;13439:25:103::0;;;1561:45:72;;-1:-1:-1;1616:32:72::1;::::0;-1:-1:-1;;;;;1651:18:72;::::1;::::0;::::1;::::0;13412::103;;1651:29:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1651:29:72::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1::0;;;1742:23:72::1;:36::i;:::-;1819:45;::::0;-1:-1:-1;;;1819:45:72;;1852:10:::1;1819:45;::::0;::::1;12288:51:103::0;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;::::1;::::0;::::1;::::0;12261:18:103;;1819:45:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1::0;;;1789:120:72::1;;;;;;;:::i;:::-;5138:23:::2;5164:21;:19;:21::i;:::-;5138:47;;5195:23;5221:19;:17;:19::i;:::-;5292:42;::::0;-1:-1:-1;;;5292:42:72;;::::2;::::0;::::2;14329:25:103::0;;;14370:18;;;14363:34;;;5195:45:72;;-1:-1:-1;;;;;;5292:23:72;::::2;::::0;::::2;::::0;14302:18:103;;5292:42:72::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5251:83:::0;;-1:-1:-1;5251:83:72;-1:-1:-1;5251:83:72;-1:-1:-1;5421:216:72;::::2;;;-1:-1:-1::0;;;;;5448:21:72;::::2;;5470:9:::0;5481:28:::2;5500:9:::0;5481:16;:28:::2;:::i;:::-;5448:62;::::0;-1:-1:-1;;;;;;5448:62:72::2;::::0;;;;;;::::2;::::0;::::2;14329:25:103::0;;;;14370:18;;;14363:34;14302:18;;5448:62:72::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;5525:19;5547:17;:15;:17::i;:::-;5525:39;;5578:4;-1:-1:-1::0;;;;;5578:19:72::2;;5598:9;5609:16;5578:48;;;;;;;;;;;;;;;14329:25:103::0;;;14385:2;14370:18;;14363:34;14317:2;14302:18;;14284:119;5578:48:72::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;5421:216;;1919:1;;1486::::1;;;;4847:796:::0;;;;;;;:::o;6799:369::-;7021:15;6951:9;732:23;758:19;:17;:19::i;:::-;732:45;-1:-1:-1;845:26:72;808:27;;-1:-1:-1;;;808:27:72;;;;;13439:25:103;;;-1:-1:-1;;;;;808:16:72;;;;;13412:18:103;;808:27:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;:63;;;;;;-1:-1:-1;;;808:63:72;;;;;;;;;;787:141;;;;-1:-1:-1;;;787:141:72;;17171:2:103;787:141:72;;;17153:21:103;17210:2;17190:18;;;17183:30;17249:33;17229:18;;;17222:61;17300:18;;787:141:72;17143:181:103;787:141:72;6993:9:::1;1561:23;1587:19;:17;:19::i;:::-;1651:29;::::0;-1:-1:-1;;;1651:29:72;;::::1;::::0;::::1;13439:25:103::0;;;1561:45:72;;-1:-1:-1;1616:32:72::1;::::0;-1:-1:-1;;;;;1651:18:72;::::1;::::0;::::1;::::0;13412::103;;1651:29:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;1651:29:72::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1::0;;;1742:23:72::1;:36::i;:::-;1819:45;::::0;-1:-1:-1;;;1819:45:72;;1852:10:::1;1819:45;::::0;::::1;12288:51:103::0;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;::::1;::::0;::::1;::::0;12261:18:103;;1819:45:72::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1::0;;;1789:120:72::1;;;;;;;:::i;:::-;7062:19:::2;:17;:19::i;:::-;-1:-1:-1::0;;;;;7062:31:72::2;;7107:9;7131:11;7156:4;;7062:99;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7052:109:::0;6799:369;-1:-1:-1;;;;;;;;;;;6799:369:72:o;8304:706::-;8475:12;8501:17;8532:23;8435:9;1561:23;1587:19;:17;:19::i;:::-;1651:29;;-1:-1:-1;;;1651:29:72;;;;;13439:25:103;;;1561:45:72;;-1:-1:-1;1616:32:72;;-1:-1:-1;;;;;1651:18:72;;;;;13412::103;;1651:29:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1651:29:72;;;;;;;;;;;;:::i;:::-;1616:64;;1690:29;1742:36;-1:-1:-1;;;1742:23:72;:36::i;:::-;1819:45;;-1:-1:-1;;;1819:45:72;;1852:10;1819:45;;;12288:51:103;1690:89:72;;-1:-1:-1;;;;;;1819:24:72;;;;;12261:18:103;;1819:45:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1797:8;:18;;;:67;1789:120;;;;-1:-1:-1;;;1789:120:72;;;;;;;:::i;:::-;8580:23:::1;8606:21;:19;:21::i;:::-;8668:43;::::0;-1:-1:-1;;;8668:43:72;;::::1;::::0;::::1;14329:25:103::0;;;14370:18;;;14363:34;;;8580:47:72;;-1:-1:-1;;;;;;8668:22:72;::::1;::::0;::::1;::::0;14302:18:103;;8668:43:72::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8637:74:::0;;-1:-1:-1;8637:74:72;-1:-1:-1;8798:14:72::1;8815:19;:17;:19::i;:::-;8844:41;::::0;-1:-1:-1;;;8844:41:72;;::::1;::::0;::::1;14329:25:103::0;;;14370:18;;;14363:34;;;8798:36:72;;-1:-1:-1;;;;;;8844:20:72;::::1;::::0;::::1;::::0;14302:18:103;;8844:41:72::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8896:19;8918:17;:15;:17::i;:::-;8896:39:::0;-1:-1:-1;;;;;;8945:18:72;::::1;;8964:9:::0;8975:27:::1;8993:9:::0;8975:15;:27:::1;:::i;:::-;8945:58;::::0;-1:-1:-1;;;;;;8945:58:72::1;::::0;;;;;;::::1;::::0;::::1;14329:25:103::0;;;;14370:18;;;14363:34;14302:18;;8945:58:72::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1919:1;;;8304:706:::0;;;;;;;;;:::o;10762:145::-;10814:16;10866:33;-1:-1:-1;;;10866:23:72;:33::i;:::-;10842:58;;10762:145;:::o;10619:137::-;10669:14;10717:31;-1:-1:-1;;;10717:23:72;:31::i;10913:133::-;10964:11;11006:32;-1:-1:-1;;;11006:23:72;:32::i;10456:157::-;10511:19;10569:36;-1:-1:-1;;;10569:23:72;:36::i;11052:145::-;11106:14;11154:35;-1:-1:-1;;;11154:23:72;:35::i;14:164:103:-;90:13;;139;;132:21;122:32;;112:2;;168:1;165;158:12;183:375;;;298:3;291:4;283:6;279:17;275:27;265:2;;323:8;313;306:26;265:2;-1:-1:-1;353:20:103;;396:18;385:30;;382:2;;;435:8;425;418:26;382:2;479:4;471:6;467:17;455:29;;531:3;524:4;515:6;507;503:19;499:30;496:39;493:2;;;548:1;545;538:12;493:2;255:303;;;;;:::o;563:512::-;;669:3;662:4;654:6;650:17;646:27;636:2;;691:5;684;677:20;636:2;724:6;718:13;750:18;746:2;743:26;740:2;;;772:18;;:::i;:::-;816:55;859:2;840:13;;-1:-1:-1;;836:27:103;865:4;832:38;816:55;:::i;:::-;896:2;887:7;880:19;942:3;935:4;930:2;922:6;918:15;914:26;911:35;908:2;;;963:5;956;949:20;908:2;980:64;1041:2;1034:4;1025:7;1021:18;1014:4;1006:6;1002:17;980:64;:::i;:::-;1062:7;626:449;-1:-1:-1;;;;626:449:103:o;1080:160::-;1172:13;;1214:1;1204:12;;1194:2;;1230:1;1227;1220:12;1245:261;;1368:2;1356:9;1347:7;1343:23;1339:32;1336:2;;;1389:6;1381;1374:22;1336:2;1426:9;1420:16;1445:31;1470:5;1445:31;:::i;:::-;1495:5;1326:180;-1:-1:-1;;;1326:180:103:o;1511:1020::-;;;;;;;;1729:3;1717:9;1708:7;1704:23;1700:33;1697:2;;;1751:6;1743;1736:22;1697:2;1795:9;1782:23;1814:31;1839:5;1814:31;:::i;:::-;1864:5;-1:-1:-1;1916:2:103;1901:18;;1888:32;;-1:-1:-1;1967:2:103;1952:18;;1939:32;;-1:-1:-1;2022:2:103;2007:18;;1994:32;2045:18;2075:14;;;2072:2;;;2107:6;2099;2092:22;2072:2;2151:58;2201:7;2192:6;2181:9;2177:22;2151:58;:::i;:::-;2228:8;;-1:-1:-1;2125:84:103;-1:-1:-1;2316:3:103;2301:19;;2288:33;;-1:-1:-1;2333:16:103;;;2330:2;;;2367:6;2359;2352:22;2330:2;;2411:60;2463:7;2452:8;2441:9;2437:24;2411:60;:::i;:::-;1687:844;;;;-1:-1:-1;1687:844:103;;-1:-1:-1;1687:844:103;;;;2385:86;;-1:-1:-1;;;1687:844:103:o;2536:212::-;;2656:2;2644:9;2635:7;2631:23;2627:32;2624:2;;;2677:6;2669;2662:22;2624:2;2705:37;2732:9;2705:37;:::i;2753:334::-;;;;2907:2;2895:9;2886:7;2882:23;2878:32;2875:2;;;2928:6;2920;2913:22;2875:2;2956:37;2983:9;2956:37;:::i;:::-;2946:47;;3033:2;3022:9;3018:18;3012:25;3002:35;;3077:2;3066:9;3062:18;3056:25;3046:35;;2865:222;;;;;:::o;3092:190::-;;3204:2;3192:9;3183:7;3179:23;3175:32;3172:2;;;3225:6;3217;3210:22;3172:2;-1:-1:-1;3253:23:103;;3162:120;-1:-1:-1;3162:120:103:o;3287:194::-;;3410:2;3398:9;3389:7;3385:23;3381:32;3378:2;;;3431:6;3423;3416:22;3378:2;-1:-1:-1;3459:16:103;;3368:113;-1:-1:-1;3368:113:103:o;3486:1021::-;;;;;;;;3705:3;3693:9;3684:7;3680:23;3676:33;3673:2;;;3727:6;3719;3712:22;3673:2;3768:9;3755:23;3745:33;;3829:2;3818:9;3814:18;3801:32;3852:18;3893:2;3885:6;3882:14;3879:2;;;3914:6;3906;3899:22;3879:2;3958:58;4008:7;3999:6;3988:9;3984:22;3958:58;:::i;:::-;4035:8;;-1:-1:-1;3932:84:103;-1:-1:-1;4123:2:103;4108:18;;4095:32;;-1:-1:-1;4139:16:103;;;4136:2;;;4173:6;4165;4158:22;4136:2;;4217:60;4269:7;4258:8;4247:9;4243:24;4217:60;:::i;:::-;4296:8;;-1:-1:-1;4191:86:103;-1:-1:-1;;4381:2:103;4366:18;;4353:32;4394:31;4353:32;4394:31;:::i;:::-;4444:5;4434:15;;;4496:3;4485:9;4481:19;4468:33;4458:43;;3663:844;;;;;;;;;;:::o;4512:258::-;;;4641:2;4629:9;4620:7;4616:23;4612:32;4609:2;;;4662:6;4654;4647:22;4609:2;-1:-1:-1;;4690:23:103;;;4760:2;4745:18;;;4732:32;;-1:-1:-1;4599:171:103:o;4775:565::-;;;;;4940:2;4928:9;4919:7;4915:23;4911:32;4908:2;;;4961:6;4953;4946:22;4908:2;5002:9;4989:23;4979:33;;5059:2;5048:9;5044:18;5031:32;5021:42;;5114:2;5103:9;5099:18;5086:32;5141:18;5133:6;5130:30;5127:2;;;5178:6;5170;5163:22;5127:2;5222:58;5272:7;5263:6;5252:9;5248:22;5222:58;:::i;:::-;4898:442;;;;-1:-1:-1;5299:8:103;-1:-1:-1;;;;4898:442:103:o;5345:326::-;;;;5491:2;5479:9;5470:7;5466:23;5462:32;5459:2;;;5512:6;5504;5497:22;5459:2;-1:-1:-1;;5540:23:103;;;5610:2;5595:18;;5582:32;;-1:-1:-1;5661:2:103;5646:18;;;5633:32;;5449:222;-1:-1:-1;5449:222:103:o;5676:634::-;;;;;;5858:3;5846:9;5837:7;5833:23;5829:33;5826:2;;;5880:6;5872;5865:22;5826:2;5921:9;5908:23;5898:33;;5978:2;5967:9;5963:18;5950:32;5940:42;;6029:2;6018:9;6014:18;6001:32;5991:42;;6084:2;6073:9;6069:18;6056:32;6111:18;6103:6;6100:30;6097:2;;;6148:6;6140;6133:22;6097:2;6192:58;6242:7;6233:6;6222:9;6218:22;6192:58;:::i;:::-;5816:494;;;;-1:-1:-1;5816:494:103;;-1:-1:-1;6269:8:103;;6166:84;5816:494;-1:-1:-1;;;5816:494:103:o;6315:1005::-;;6467:2;6455:9;6446:7;6442:23;6438:32;6435:2;;;6488:6;6480;6473:22;6435:2;6526:9;6520:16;6555:18;6596:2;6588:6;6585:14;6582:2;;;6617:6;6609;6602:22;6582:2;6645:22;;;;6701:4;6683:16;;;6679:27;6676:2;;;6724:6;6716;6709:22;6676:2;6755:21;6771:4;6755:21;:::i;:::-;6806:2;6800:9;6818:47;6857:7;6818:47;:::i;:::-;6888:7;6881:5;6874:22;;6942:2;6938;6934:11;6928:18;6923:2;6916:5;6912:14;6905:42;6993:2;6989;6985:11;6979:18;6974:2;6967:5;6963:14;6956:42;7037:2;7033;7029:11;7023:18;7066:2;7056:8;7053:16;7050:2;;;7087:6;7079;7072:22;7050:2;7128:55;7175:7;7164:8;7160:2;7156:17;7128:55;:::i;:::-;7123:2;7116:5;7112:14;7105:79;;7231:3;7227:2;7223:12;7217:19;7211:3;7204:5;7200:15;7193:44;7284:3;7280:2;7276:12;7270:19;7264:3;7257:5;7253:15;7246:44;7309:5;7299:15;;;;;6425:895;;;;:::o;8329:1025::-;;8478:2;8466:9;8457:7;8453:23;8449:32;8446:2;;;8499:6;8491;8484:22;8446:2;8537:9;8531:16;8566:18;8607:2;8599:6;8596:14;8593:2;;;8628:6;8620;8613:22;8593:2;8656:22;;;;8712:4;8694:16;;;8690:27;8687:2;;;8735:6;8727;8720:22;8687:2;8766:21;8782:4;8766:21;:::i;:::-;8817:2;8811:9;8829:33;8854:7;8829:33;:::i;:::-;8871:22;;8939:2;8931:11;;;8925:18;8909:14;;;8902:42;8976:55;9027:2;9019:11;;8976:55;:::i;:::-;8971:2;8964:5;8960:14;8953:79;9071:2;9067;9063:11;9057:18;9100:2;9090:8;9087:16;9084:2;;;9121:6;9113;9106:22;9359:1005;;9506:2;9494:9;9485:7;9481:23;9477:32;9474:2;;;9527:6;9519;9512:22;9474:2;9565:9;9559:16;9594:18;9635:2;9627:6;9624:14;9621:2;;;9656:6;9648;9641:22;9621:2;9684:22;;;;9740:4;9722:16;;;9718:27;9715:2;;;9763:6;9755;9748:22;9715:2;9794:21;9810:4;9794:21;:::i;:::-;9844:2;9838:9;9831:5;9824:24;9886:2;9882;9878:11;9872:18;9921:1;9912:7;9909:14;9899:2;;9942:6;9934;9927:22;9899:2;9978;9967:14;;9960:31;10037:2;10029:11;;;10023:18;10007:14;;;10000:42;10081:2;10073:11;;10067:18;10097:16;;;10094:2;;;10131:6;10123;10116:22;10369:841;;10494:3;10538:2;10526:9;10517:7;10513:23;10509:32;10506:2;;;10559:6;10551;10544:22;10506:2;10590:19;10606:2;10590:19;:::i;:::-;10577:32;;10632:53;10675:9;10632:53;:::i;:::-;10625:5;10618:68;10739:2;10728:9;10724:18;10718:25;10713:2;10706:5;10702:14;10695:49;10797:2;10786:9;10782:18;10776:25;10771:2;10764:5;10760:14;10753:49;10855:2;10844:9;10840:18;10834:25;10829:2;10822:5;10818:14;10811:49;10914:3;10903:9;10899:19;10893:26;10887:3;10880:5;10876:15;10869:51;10974:3;10963:9;10959:19;10953:26;10947:3;10940:5;10936:15;10929:51;11034:3;11023:9;11019:19;11013:26;11007:3;11000:5;10996:15;10989:51;11094:3;11083:9;11079:19;11073:26;11067:3;11060:5;11056:15;11049:51;11119:3;11175:2;11164:9;11160:18;11154:25;11149:2;11142:5;11138:14;11131:49;;11199:5;11189:15;;;10474:736;;;;:::o;11609:255::-;;;11749:2;11737:9;11728:7;11724:23;11720:32;11717:2;;;11770:6;11762;11755:22;11717:2;-1:-1:-1;;11798:16:103;;11854:2;11839:18;;;11833:25;11798:16;;11833:25;;-1:-1:-1;11707:157:103:o;11869:268::-;;11957:6;11952:3;11945:19;12009:6;12002:5;11995:4;11990:3;11986:14;11973:43;12061:3;12054:4;12045:6;12040:3;12036:16;12032:27;12025:40;12126:4;12119:2;12115:7;12110:2;12102:6;12098:15;12094:29;12089:3;12085:39;12081:50;12074:57;;11935:202;;;;;:::o;12350:412::-;;12592:1;12588;12583:3;12579:11;12575:19;12567:6;12563:32;12552:9;12545:51;12632:6;12627:2;12616:9;12612:18;12605:34;12675:2;12670;12659:9;12655:18;12648:30;12695:61;12752:2;12741:9;12737:18;12729:6;12721;12695:61;:::i;:::-;12687:69;12535:227;-1:-1:-1;;;;;;12535:227:103:o;13475:675::-;;13774:6;13763:9;13756:25;13817:3;13812:2;13801:9;13797:18;13790:31;13844:62;13901:3;13890:9;13886:19;13878:6;13870;13844:62;:::i;:::-;13954:9;13946:6;13942:22;13937:2;13926:9;13922:18;13915:50;13982:49;14024:6;14016;14008;13982:49;:::i;:::-;-1:-1:-1;;;;;14067:32:103;;;;14062:2;14047:18;;14040:60;-1:-1:-1;;14131:3:103;14116:19;14109:35;13974:57;13746:404;-1:-1:-1;;;;;13746:404:103:o;14408:386::-;;14621:6;14610:9;14603:25;14664:6;14659:2;14648:9;14644:18;14637:34;14707:2;14702;14691:9;14687:18;14680:30;14727:61;14784:2;14773:9;14769:18;14761:6;14753;14727:61;:::i;15123:459::-;;15364:6;15353:9;15346:25;15407:6;15402:2;15391:9;15387:18;15380:34;15450:6;15445:2;15434:9;15430:18;15423:34;15493:3;15488:2;15477:9;15473:18;15466:31;15514:62;15571:3;15560:9;15556:19;15548:6;15540;15514:62;:::i;:::-;15506:70;15336:246;-1:-1:-1;;;;;;;15336:246:103:o;15587:381::-;;15734:2;15723:9;15716:21;15766:6;15760:13;15809:6;15804:2;15793:9;15789:18;15782:34;15825:66;15884:6;15879:2;15868:9;15864:18;15859:2;15851:6;15847:15;15825:66;:::i;:::-;15952:2;15931:15;-1:-1:-1;;15927:29:103;15912:45;;;;15959:2;15908:54;;15706:262;-1:-1:-1;;15706:262:103:o;16199:404::-;16401:2;16383:21;;;16440:2;16420:18;;;16413:30;16479:34;16474:2;16459:18;;16452:62;-1:-1:-1;;;16545:2:103;16530:18;;16523:38;16593:3;16578:19;;16373:230::o;18276:275::-;18347:2;18341:9;18412:2;18393:13;;-1:-1:-1;;18389:27:103;18377:40;;18447:18;18432:34;;18468:22;;;18429:62;18426:2;;;18494:18;;:::i;:::-;18530:2;18523:22;18321:230;;-1:-1:-1;18321:230:103:o;18556:229::-;;18627:1;18623:6;18620:1;18617:13;18614:2;;;-1:-1:-1;;;18653:33:103;;18709:4;18706:1;18699:15;18739:4;18660:3;18727:17;18614:2;-1:-1:-1;18770:9:103;;18604:181::o;18790:258::-;18862:1;18872:113;18886:6;18883:1;18880:13;18872:113;;;18962:11;;;18956:18;18943:11;;;18936:39;18908:2;18901:10;18872:113;;;19003:6;19000:1;18997:13;18994:2;;;19038:1;19029:6;19024:3;19020:16;19013:27;18994:2;;18843:205;;;:::o;19053:127::-;19114:10;19109:3;19105:20;19102:1;19095:31;19145:4;19142:1;19135:15;19169:4;19166:1;19159:15;19185:131;-1:-1:-1;;;;;19260:31:103;;19250:42;;19240:2;;19306:1;19303;19296:12;19240:2;19230:86;:::o;19321:115::-;19410:1;19403:5;19400:12;19390:2;;19426:1;19423;19416:12"},"methodIdentifiers":{"NAME()":"a3f4df7e","adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","cancelRequest(uint256)":"3015394c","close(bytes32)":"39c79e0c","closeClaim(bytes32,uint256)":"7f29dba2","collectPremium(bytes32,uint256)":"e3ebdea5","confirmClaim(bytes32,uint256,uint256)":"4e02c63f","decline(bytes32)":"8cc7d3d1","declineClaim(bytes32,uint256)":"4cda0de9","expire(bytes32)":"c6441798","getApplicationData(bytes32)":"c46df94e","getClaimData(bytes32,uint256)":"22f86e7f","getContractFromRegistry(bytes32)":"a5b25e71","getPayoutData(bytes32,uint256)":"10b96080","newApplication(address,uint256,uint256,bytes,bytes)":"93b8414a","newClaim(bytes32,uint256,bytes)":"fae43d15","newPayout(bytes32,uint256,uint256,bytes)":"781d7846","processPayout(bytes32,uint256)":"fe64372b","registry()":"7b103999","request(bytes32,bytes,string,address,uint256)":"2c933f22","revoke(bytes32)":"b75c7dc6","underwrite(bytes32)":"1b07b17f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancelRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"closeClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremiumAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"confirmClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"declineClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"expire\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getApplicationData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"getClaimData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractFromRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"getPayoutData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"newApplication\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"newClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"newPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPayoutAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_input\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_callbackMethodName\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_callbackContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"request\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/flows/PolicyDefaultFlow.sol\":\"PolicyDefaultFlow\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/flows/PolicyDefaultFlow.sol\":{\"keccak256\":\"0x7e4a62984412fd5a5bb64c8c50cd050a52881241ffdbdbfe50a212c8afa0979f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://58345c628392ac62b1576e1cc8e1edaddf9e4bc1089708b96ea854d948d4bc29\",\"dweb:/ipfs/QmWWAm94SnUHiQ9Wifo9GGw6eaE8JTLgce4Ap7g12MJbkk\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/modules/QueryModule.sol\":{\"keccak256\":\"0x2485de3fc1c10d0f73f1fe642b77fc3752142b00b8c0e67ea9166a04ea4a0c14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3104393b75a5e7ad6ee0059e0eff0f885a5531cdba307cf0e81da8998251b1fe\",\"dweb:/ipfs/QmahXuYLomYGj3jJeM5Z6SUXhAW6e9gwk4bi2MUQurfcEB\"]},\"contracts/modules/TreasuryModule.sol\":{\"keccak256\":\"0x5b816938607e52b8e3811a426b7c31377109b12c665d3889bdc0fc38b5d1039c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81900732664f85ed367e3c78020bc2bd78e8521dd928f3fd5bcd39ce0ce1dcf0\",\"dweb:/ipfs/QmPcRYLq6SJvZkMnoSZAocCKw9m83oXezNaDsmHJ6UWr4E\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/shared/WithRegistry.sol\":{\"keccak256\":\"0x1d52c8ad35ee149c4a0106ceb1f35d458c196248d02cb8d7b605e9963d47f706\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5780ec200f79f55f69d2e4030ceccccdbf78bc233561d03f334c4361c5425d17\",\"dweb:/ipfs/QmPjynmkMEjD9GHpreVLpWuK6qncwkKwAtNyYCyoeyzkHZ\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/modules/AccessController.sol":{"AccessController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE_PROVIDER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRODUCT_OWNER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISKPOOL_KEEPER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"addRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getDefaultAdminRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOracleProviderRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getProductOwnerRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getRiskpoolKeeperRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"invalidateRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"}],"name":"setDefaultAdminRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"validRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611548806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063775a4048116100b8578063c19010a71161007c578063c19010a714610301578063c4d66de814610314578063ca15c87314610327578063d17d02331461033a578063d49d21c01461034d578063d547741f1461037357610137565b8063775a40481461026e57806379a863f5146102945780639010d07c146102bb57806391d14854146102e6578063a217fddf146102f957610137565b806336568abe116100ff57806336568abe146101e05780633ffdd2f3146101f357806352a9c8d71461021957806368232c69146102205780636c137ea91461024757610137565b806301ffc9a71461013c57806312f9a85e14610164578063248a9ca314610187578063274b02a7146101b85780632f2ff15d146101cd575b600080fd5b61014f61014a366004611305565b610386565b60405190151581526020015b60405180910390f35b61014f61017236600461129d565b60046020526000908152604090205460ff1681565b6101aa61019536600461129d565b60009081526002602052604090206001015490565b60405190815260200161015b565b6101cb6101c636600461129d565b6103b3565b005b6101cb6101db3660046112b5565b6104ea565b6101cb6101ee3660046112b5565b61060a565b7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6101aa565b60006101aa565b6101aa7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd81565b6101aa7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd81565b7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd6101aa565b6101aa7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa281565b6102ce6102c93660046112e4565b610614565b6040516001600160a01b03909116815260200161015b565b61014f6102f43660046112b5565b610635565b6101aa600081565b6101cb61030f366004611245565b610660565b6101cb610322366004611245565b6106da565b6101aa61033536600461129d565b610909565b6101cb61034836600461129d565b610920565b7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa26101aa565b6101cb6103813660046112b5565b610a4a565b60006001600160e01b03198216635a05180f60e01b14806103ab57506103ab82610afa565b90505b919050565b6000546201000090046001600160a01b0316632ca65a796103d13390565b6040518263ffffffff1660e01b81526004016103ed91906113a2565b60206040518083038186803b15801561040557600080fd5b505afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d919061127d565b6104625760405162461bcd60e51b81526004016104599061140f565b60405180910390fd5b60008181526004602052604090205460ff16156104cf5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030333a524f4c455f4558495354494e475f414e445f604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19166001179055565b6000546201000090046001600160a01b0316632ca65a796105083390565b6040518263ffffffff1660e01b815260040161052491906113a2565b60206040518083038186803b15801561053c57600080fd5b505afa158015610550573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610574919061127d565b6105905760405162461bcd60e51b81526004016104599061140f565b60008281526004602052604090205460ff166105fc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030323a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6106068282610b2f565b5050565b6106068282610b59565b600082815260036020526040812061062c9083610bd3565b90505b92915050565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1661062c565b60055460ff16156106bf5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a41434c2d3030313a41444d494e5f524f4c455f414c524541445960448201526317d4d15560e21b6064820152608401610459565b6005805460ff191660011790556106d7600082610bdf565b50565b600054610100900460ff16158080156106fa5750600054600160ff909116105b806107145750303b158015610714575060005460ff166001145b6107775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610459565b6000805460ff19166001179055801561079a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556107cc6541636365737360d01b90565b6541636365737360d01b1461080e576107ed6541636365737360d01b610c01565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108c060046020527fef04f7ed48b33f0d9d7de17461a6b9fbfc99345543bcd1fd6722a181717386398054600160ff1991821681179092557f0d0f3851d150b47a1a07ba8d8da619d3d280e2d8c7ebd5a88c0ddf69c9320ac580548216831790557f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6000527f8ba76ee23aef2d48c27cf0a3d52ee681c660d5a027be0ef9cc9edc5ce9889bac80549091169091179055565b8015610606576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008181526003602052604081206103ab90610ce9565b6000546201000090046001600160a01b0316632ca65a7961093e3390565b6040518263ffffffff1660e01b815260040161095a91906113a2565b60206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa919061127d565b6109c65760405162461bcd60e51b81526004016104599061140f565b60008181526004602052604090205460ff16610a325760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030343a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19169055565b6000546201000090046001600160a01b0316632ca65a79610a683390565b6040518263ffffffff1660e01b8152600401610a8491906113a2565b60206040518083038186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad4919061127d565b610af05760405162461bcd60e51b81526004016104599061140f565b6106068282610cf3565b60006001600160e01b03198216637965db0b60e01b14806103ab57506301ffc9a760e01b6001600160e01b03198316146103ab565b600082815260026020526040902060010154610b4a81610d18565b610b548383610bdf565b505050565b6001600160a01b0381163314610bc95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610459565b6106068282610d22565b600061062c8383610d44565b610be98282610d7c565b6000828152600360205260409020610b549082610e02565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610c4b57600080fd5b505afa158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c839190611261565b90506001600160a01b0381166103ae5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610459565b60006103ab825490565b600082815260026020526040902060010154610d0e81610d18565b610b548383610d22565b6106d78133610e17565b610d2c8282610e7b565b6000828152600360205260409020610b549082610ee2565b6000826000018281548110610d6957634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b610d868282610635565b6106065760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610dbe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061062c836001600160a01b038416610ef7565b610e218282610635565b61060657610e39816001600160a01b03166014610f46565b610e44836020610f46565b604051602001610e5592919061132d565b60408051601f198184030181529082905262461bcd60e51b8252610459916004016113dc565b610e858282610635565b156106065760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061062c836001600160a01b038416611128565b6000818152600183016020526040812054610f3e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561062f565b50600061062f565b60606000610f5583600261146a565b610f60906002611452565b67ffffffffffffffff811115610f8657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610fb0576020820181803683370190505b509050600360fc1b81600081518110610fd957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061101657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061103a84600261146a565b611045906001611452565b90505b60018111156110d9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061108757634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106110ab57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936110d2816114d0565b9050611048565b50831561062c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610459565b6000818152600183016020526040812054801561123b57600061114c600183611489565b855490915060009061116090600190611489565b90508181146111e157600086600001828154811061118e57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106111bf57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061120057634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061062f565b600091505061062f565b600060208284031215611256578081fd5b813561062c816114fd565b600060208284031215611272578081fd5b815161062c816114fd565b60006020828403121561128e578081fd5b8151801515811461062c578182fd5b6000602082840312156112ae578081fd5b5035919050565b600080604083850312156112c7578081fd5b8235915060208301356112d9816114fd565b809150509250929050565b600080604083850312156112f6578182fd5b50508035926020909101359150565b600060208284031215611316578081fd5b81356001600160e01b03198116811461062c578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516113658160178501602088016114a0565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516113968160288401602088016114a0565b01602801949350505050565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60006020825282518060208401526113fb8160408501602087016114a0565b601f01601f19169190910160400192915050565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60008219821115611465576114656114e7565b500190565b6000816000190483118215151615611484576114846114e7565b500290565b60008282101561149b5761149b6114e7565b500390565b60005b838110156114bb5781810151838201526020016114a3565b838111156114ca576000848401525b50505050565b6000816114df576114df6114e7565b506000190190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146106d757600080fdfea26469706673582212203255f3dbbbf3b49008eb1abb30a00c8783989e7b50781a4462516e4ea3cbf87764736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x1548 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x137 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x775A4048 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC19010A7 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC19010A7 EQ PUSH2 0x301 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xD17D0233 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0xD49D21C0 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x373 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x775A4048 EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x79A863F5 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x2F9 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x3FFDD2F3 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x52A9C8D7 EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x68232C69 EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0x6C137EA9 EQ PUSH2 0x247 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x12F9A85E EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x274B02A7 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1CD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0x1305 JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1AA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15B JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CB PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x4EA JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1AA PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD DUP2 JUMP JUMPDEST PUSH2 0x1AA PUSH32 0xE984CFD1D1FA34F80E24DDB2A60C8300359D79EEE44555BC35C106EB020394CD DUP2 JUMP JUMPDEST PUSH32 0xE984CFD1D1FA34F80E24DDB2A60C8300359D79EEE44555BC35C106EB020394CD PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1AA PUSH32 0xD26B4CD59FFA91E4599F3D18B02FCD5FFB06E03216F3EE5F25F68DC75CBBBAA2 DUP2 JUMP JUMPDEST PUSH2 0x2CE PUSH2 0x2C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x12E4 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15B JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x635 JUMP JUMPDEST PUSH2 0x1AA PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x1245 JUMP JUMPDEST PUSH2 0x660 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x1245 JUMP JUMPDEST PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x1AA PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x909 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x348 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x920 JUMP JUMPDEST PUSH32 0xD26B4CD59FFA91E4599F3D18B02FCD5FFB06E03216F3EE5F25F68DC75CBBBAA2 PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x381 CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5A05180F PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3AB JUMPI POP PUSH2 0x3AB DUP3 PUSH2 0xAFA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3D1 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x419 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x43D SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030333A524F4C455F4558495354494E475F414E445F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x508 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x524 SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x550 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x574 SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x590 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030323A524F4C455F554E4B4E4F574E5F4F525F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xB2F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xB59 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x62C SWAP1 DUP4 PUSH2 0xBD3 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x62C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x6BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030313A41444D494E5F524F4C455F414C5245414459 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x17D4D155 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x6D7 PUSH1 0x0 DUP3 PUSH2 0xBDF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x6FA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x714 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x714 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x777 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x79A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x7CC PUSH6 0x416363657373 PUSH1 0xD0 SHL SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x80E JUMPI PUSH2 0x7ED PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x8C0 PUSH1 0x4 PUSH1 0x20 MSTORE PUSH32 0xEF04F7ED48B33F0D9D7DE17461A6B9FBFC99345543BCD1FD6722A18171738639 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH32 0xD0F3851D150B47A1A07BA8D8DA619D3D280E2D8C7EBD5A88C0DDF69C9320AC5 DUP1 SLOAD DUP3 AND DUP4 OR SWAP1 SSTORE PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD PUSH1 0x0 MSTORE PUSH32 0x8BA76EE23AEF2D48C27CF0A3D52EE681C660D5A027BE0EF9CC9EDC5CE9889BAC DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x3AB SWAP1 PUSH2 0xCE9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x93E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x95A SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x9C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xA32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030343A524F4C455F554E4B4E4F574E5F4F525F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xA68 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA84 SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAD4 SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0xAF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xCF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3AB JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x3AB JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xB4A DUP2 PUSH2 0xD18 JUMP JUMPDEST PUSH2 0xB54 DUP4 DUP4 PUSH2 0xBDF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xBC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xD22 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 DUP4 PUSH2 0xD44 JUMP JUMPDEST PUSH2 0xBE9 DUP3 DUP3 PUSH2 0xD7C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB54 SWAP1 DUP3 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC83 SWAP2 SWAP1 PUSH2 0x1261 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AB DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xD0E DUP2 PUSH2 0xD18 JUMP JUMPDEST PUSH2 0xB54 DUP4 DUP4 PUSH2 0xD22 JUMP JUMPDEST PUSH2 0x6D7 DUP2 CALLER PUSH2 0xE17 JUMP JUMPDEST PUSH2 0xD2C DUP3 DUP3 PUSH2 0xE7B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB54 SWAP1 DUP3 PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD69 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD86 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST PUSH2 0x606 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xDBE CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0xE21 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST PUSH2 0x606 JUMPI PUSH2 0xE39 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0xF46 JUMP JUMPDEST PUSH2 0xE44 DUP4 PUSH1 0x20 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE55 SWAP3 SWAP2 SWAP1 PUSH2 0x132D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x459 SWAP2 PUSH1 0x4 ADD PUSH2 0x13DC JUMP JUMPDEST PUSH2 0xE85 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1128 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xF3E JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x62F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x62F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xF55 DUP4 PUSH1 0x2 PUSH2 0x146A JUMP JUMPDEST PUSH2 0xF60 SWAP1 PUSH1 0x2 PUSH2 0x1452 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF86 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFB0 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xFD9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1016 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x103A DUP5 PUSH1 0x2 PUSH2 0x146A JUMP JUMPDEST PUSH2 0x1045 SWAP1 PUSH1 0x1 PUSH2 0x1452 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x10D9 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1087 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x10AB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x10D2 DUP2 PUSH2 0x14D0 JUMP JUMPDEST SWAP1 POP PUSH2 0x1048 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x62C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x123B JUMPI PUSH1 0x0 PUSH2 0x114C PUSH1 0x1 DUP4 PUSH2 0x1489 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1160 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1489 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x11E1 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x118E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x11BF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x1200 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x62F JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x62F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1256 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x62C DUP2 PUSH2 0x14FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1272 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x62C DUP2 PUSH2 0x14FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x128E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x62C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12AE JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12C7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x12D9 DUP2 PUSH2 0x14FD JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12F6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1316 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x62C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x1365 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x14A0 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1396 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x14A0 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x13FB DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x14A0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1465 JUMPI PUSH2 0x1465 PUSH2 0x14E7 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1484 JUMPI PUSH2 0x1484 PUSH2 0x14E7 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x149B JUMPI PUSH2 0x149B PUSH2 0x14E7 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14BB JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x14A3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x14CA JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14DF JUMPI PUSH2 0x14DF PUSH2 0x14E7 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6D7 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN SSTORE RETURN 0xDB 0xBB RETURN 0xB4 SWAP1 ADDMOD 0xEB BYTE 0xBB ADDRESS LOG0 0xC DUP8 DUP4 SWAP9 SWAP15 PUSH28 0x50781A4462516E4EA3CBF87764736F6C634300080200330000000000 ","sourceMap":"3861:3616:73:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;3861:3616:73;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;3861:3616:73;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:9176:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"620:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"666:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"675:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"683:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"668:6:103"},"nodeType":"YulFunctionCall","src":"668:22:103"},"nodeType":"YulExpressionStatement","src":"668:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"641:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"650:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"637:3:103"},"nodeType":"YulFunctionCall","src":"637:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"662:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"633:3:103"},"nodeType":"YulFunctionCall","src":"633:32:103"},"nodeType":"YulIf","src":"630:2:103"},{"nodeType":"YulVariableDeclaration","src":"701:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"720:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"714:5:103"},"nodeType":"YulFunctionCall","src":"714:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"705:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"783:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"800:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"785:6:103"},"nodeType":"YulFunctionCall","src":"785:22:103"},"nodeType":"YulExpressionStatement","src":"785:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"752:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"773:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"766:6:103"},"nodeType":"YulFunctionCall","src":"766:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"759:6:103"},"nodeType":"YulFunctionCall","src":"759:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"749:2:103"},"nodeType":"YulFunctionCall","src":"749:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"742:6:103"},"nodeType":"YulFunctionCall","src":"742:40:103"},"nodeType":"YulIf","src":"739:2:103"},{"nodeType":"YulAssignment","src":"818:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"828:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"818:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"586:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"597:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"609:6:103","type":""}],"src":"542:297:103"},{"body":{"nodeType":"YulBlock","src":"914:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"960:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"969:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"977:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"962:6:103"},"nodeType":"YulFunctionCall","src":"962:22:103"},"nodeType":"YulExpressionStatement","src":"962:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"935:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"944:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"931:3:103"},"nodeType":"YulFunctionCall","src":"931:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"956:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"927:3:103"},"nodeType":"YulFunctionCall","src":"927:32:103"},"nodeType":"YulIf","src":"924:2:103"},{"nodeType":"YulAssignment","src":"995:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1018:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1005:12:103"},"nodeType":"YulFunctionCall","src":"1005:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"995:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"880:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"891:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"903:6:103","type":""}],"src":"844:190:103"},{"body":{"nodeType":"YulBlock","src":"1126:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"1172:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1181:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1189:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1174:6:103"},"nodeType":"YulFunctionCall","src":"1174:22:103"},"nodeType":"YulExpressionStatement","src":"1174:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1147:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1156:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1143:3:103"},"nodeType":"YulFunctionCall","src":"1143:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1168:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1139:3:103"},"nodeType":"YulFunctionCall","src":"1139:32:103"},"nodeType":"YulIf","src":"1136:2:103"},{"nodeType":"YulAssignment","src":"1207:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1230:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1217:12:103"},"nodeType":"YulFunctionCall","src":"1217:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1207:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1249:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1290:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1275:3:103"},"nodeType":"YulFunctionCall","src":"1275:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1262:12:103"},"nodeType":"YulFunctionCall","src":"1262:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1253:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1328:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1303:24:103"},"nodeType":"YulFunctionCall","src":"1303:31:103"},"nodeType":"YulExpressionStatement","src":"1303:31:103"},{"nodeType":"YulAssignment","src":"1343:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1353:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1343:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1084:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1095:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1107:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1115:6:103","type":""}],"src":"1039:325:103"},{"body":{"nodeType":"YulBlock","src":"1456:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"1502:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1511:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1519:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1504:6:103"},"nodeType":"YulFunctionCall","src":"1504:22:103"},"nodeType":"YulExpressionStatement","src":"1504:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1477:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1486:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1473:3:103"},"nodeType":"YulFunctionCall","src":"1473:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1498:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1469:3:103"},"nodeType":"YulFunctionCall","src":"1469:32:103"},"nodeType":"YulIf","src":"1466:2:103"},{"nodeType":"YulAssignment","src":"1537:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1560:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1547:12:103"},"nodeType":"YulFunctionCall","src":"1547:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1537:6:103"}]},{"nodeType":"YulAssignment","src":"1579:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1606:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1617:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1602:3:103"},"nodeType":"YulFunctionCall","src":"1602:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1589:12:103"},"nodeType":"YulFunctionCall","src":"1589:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1579:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1414:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1425:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1437:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1445:6:103","type":""}],"src":"1369:258:103"},{"body":{"nodeType":"YulBlock","src":"1701:237:103","statements":[{"body":{"nodeType":"YulBlock","src":"1747:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1756:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1764:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1749:6:103"},"nodeType":"YulFunctionCall","src":"1749:22:103"},"nodeType":"YulExpressionStatement","src":"1749:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1722:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1731:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1718:3:103"},"nodeType":"YulFunctionCall","src":"1718:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1743:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1714:3:103"},"nodeType":"YulFunctionCall","src":"1714:32:103"},"nodeType":"YulIf","src":"1711:2:103"},{"nodeType":"YulVariableDeclaration","src":"1782:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1808:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1795:12:103"},"nodeType":"YulFunctionCall","src":"1795:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1786:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1882:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1891:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1899:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1884:6:103"},"nodeType":"YulFunctionCall","src":"1884:22:103"},"nodeType":"YulExpressionStatement","src":"1884:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1840:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1851:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1862:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1867:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1858:3:103"},"nodeType":"YulFunctionCall","src":"1858:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1847:3:103"},"nodeType":"YulFunctionCall","src":"1847:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1837:2:103"},"nodeType":"YulFunctionCall","src":"1837:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1830:6:103"},"nodeType":"YulFunctionCall","src":"1830:51:103"},"nodeType":"YulIf","src":"1827:2:103"},{"nodeType":"YulAssignment","src":"1917:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1927:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1917:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1667:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1678:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1690:6:103","type":""}],"src":"1632:306:103"},{"body":{"nodeType":"YulBlock","src":"2332:397:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2349:3:103"},{"kind":"string","nodeType":"YulLiteral","src":"2354:25:103","type":"","value":"AccessControl: account "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2342:6:103"},"nodeType":"YulFunctionCall","src":"2342:38:103"},"nodeType":"YulExpressionStatement","src":"2342:38:103"},{"nodeType":"YulVariableDeclaration","src":"2389:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2409:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2403:5:103"},"nodeType":"YulFunctionCall","src":"2403:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2393:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2451:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2459:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2447:3:103"},"nodeType":"YulFunctionCall","src":"2447:17:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2470:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"2475:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2466:3:103"},"nodeType":"YulFunctionCall","src":"2466:12:103"},{"name":"length","nodeType":"YulIdentifier","src":"2480:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"2425:21:103"},"nodeType":"YulFunctionCall","src":"2425:62:103"},"nodeType":"YulExpressionStatement","src":"2425:62:103"},{"nodeType":"YulVariableDeclaration","src":"2496:26:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2510:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"2515:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2506:3:103"},"nodeType":"YulFunctionCall","src":"2506:16:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2500:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2542:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2546:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2538:3:103"},"nodeType":"YulFunctionCall","src":"2538:11:103"},{"kind":"string","nodeType":"YulLiteral","src":"2551:19:103","type":"","value":" is missing role "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2531:6:103"},"nodeType":"YulFunctionCall","src":"2531:40:103"},"nodeType":"YulExpressionStatement","src":"2531:40:103"},{"nodeType":"YulVariableDeclaration","src":"2580:29:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2602:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2596:5:103"},"nodeType":"YulFunctionCall","src":"2596:13:103"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"2584:8:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2644:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2652:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2640:3:103"},"nodeType":"YulFunctionCall","src":"2640:17:103"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2663:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2667:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2659:3:103"},"nodeType":"YulFunctionCall","src":"2659:11:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"2672:8:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"2618:21:103"},"nodeType":"YulFunctionCall","src":"2618:63:103"},"nodeType":"YulExpressionStatement","src":"2618:63:103"},{"nodeType":"YulAssignment","src":"2690:33:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2705:2:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"2709:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2701:3:103"},"nodeType":"YulFunctionCall","src":"2701:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2697:3:103"},"nodeType":"YulFunctionCall","src":"2697:26:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2690:3:103"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"2300:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2305:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2313:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"2324:3:103","type":""}],"src":"1943:786:103"},{"body":{"nodeType":"YulBlock","src":"2835:102:103","statements":[{"nodeType":"YulAssignment","src":"2845:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2868:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2853:3:103"},"nodeType":"YulFunctionCall","src":"2853:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2845:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2887:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2902:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2918:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2923:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2914:3:103"},"nodeType":"YulFunctionCall","src":"2914:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2927:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2910:3:103"},"nodeType":"YulFunctionCall","src":"2910:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2898:3:103"},"nodeType":"YulFunctionCall","src":"2898:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2880:6:103"},"nodeType":"YulFunctionCall","src":"2880:51:103"},"nodeType":"YulExpressionStatement","src":"2880:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2804:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2815:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2826:4:103","type":""}],"src":"2734:203:103"},{"body":{"nodeType":"YulBlock","src":"3134:164:103","statements":[{"nodeType":"YulAssignment","src":"3144:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3156:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3167:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3152:3:103"},"nodeType":"YulFunctionCall","src":"3152:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3144:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3186:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3201:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3217:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3222:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3213:3:103"},"nodeType":"YulFunctionCall","src":"3213:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3226:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3209:3:103"},"nodeType":"YulFunctionCall","src":"3209:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3197:3:103"},"nodeType":"YulFunctionCall","src":"3197:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3179:6:103"},"nodeType":"YulFunctionCall","src":"3179:51:103"},"nodeType":"YulExpressionStatement","src":"3179:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3261:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3246:3:103"},"nodeType":"YulFunctionCall","src":"3246:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3266:25:103","type":"","value":"InstanceOperatorService"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3239:6:103"},"nodeType":"YulFunctionCall","src":"3239:53:103"},"nodeType":"YulExpressionStatement","src":"3239:53:103"}]},"name":"abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3103:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3114:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3125:4:103","type":""}],"src":"2942:356:103"},{"body":{"nodeType":"YulBlock","src":"3398:92:103","statements":[{"nodeType":"YulAssignment","src":"3408:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3431:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3416:3:103"},"nodeType":"YulFunctionCall","src":"3416:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3408:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3450:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3475:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3468:6:103"},"nodeType":"YulFunctionCall","src":"3468:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3461:6:103"},"nodeType":"YulFunctionCall","src":"3461:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3443:6:103"},"nodeType":"YulFunctionCall","src":"3443:41:103"},"nodeType":"YulExpressionStatement","src":"3443:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3367:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3378:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3389:4:103","type":""}],"src":"3303:187:103"},{"body":{"nodeType":"YulBlock","src":"3596:76:103","statements":[{"nodeType":"YulAssignment","src":"3606:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3618:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3629:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3614:3:103"},"nodeType":"YulFunctionCall","src":"3614:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3606:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3648:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3659:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3641:6:103"},"nodeType":"YulFunctionCall","src":"3641:25:103"},"nodeType":"YulExpressionStatement","src":"3641:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3565:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3576:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3587:4:103","type":""}],"src":"3495:177:103"},{"body":{"nodeType":"YulBlock","src":"3784:87:103","statements":[{"nodeType":"YulAssignment","src":"3794:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3806:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3817:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3802:3:103"},"nodeType":"YulFunctionCall","src":"3802:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3794:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3836:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3851:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3859:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3847:3:103"},"nodeType":"YulFunctionCall","src":"3847:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3829:6:103"},"nodeType":"YulFunctionCall","src":"3829:36:103"},"nodeType":"YulExpressionStatement","src":"3829:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3753:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3764:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3775:4:103","type":""}],"src":"3677:194:103"},{"body":{"nodeType":"YulBlock","src":"3997:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4014:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4025:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4007:6:103"},"nodeType":"YulFunctionCall","src":"4007:21:103"},"nodeType":"YulExpressionStatement","src":"4007:21:103"},{"nodeType":"YulVariableDeclaration","src":"4037:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4057:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4051:5:103"},"nodeType":"YulFunctionCall","src":"4051:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4041:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4095:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4080:3:103"},"nodeType":"YulFunctionCall","src":"4080:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"4100:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4073:6:103"},"nodeType":"YulFunctionCall","src":"4073:34:103"},"nodeType":"YulExpressionStatement","src":"4073:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4142:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4150:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4138:3:103"},"nodeType":"YulFunctionCall","src":"4138:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4159:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4170:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4155:3:103"},"nodeType":"YulFunctionCall","src":"4155:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"4175:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4116:21:103"},"nodeType":"YulFunctionCall","src":"4116:66:103"},"nodeType":"YulExpressionStatement","src":"4116:66:103"},{"nodeType":"YulAssignment","src":"4191:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4207:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4226:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4234:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4222:3:103"},"nodeType":"YulFunctionCall","src":"4222:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4243:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4239:3:103"},"nodeType":"YulFunctionCall","src":"4239:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4218:3:103"},"nodeType":"YulFunctionCall","src":"4218:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4203:3:103"},"nodeType":"YulFunctionCall","src":"4203:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"4250:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4199:3:103"},"nodeType":"YulFunctionCall","src":"4199:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4191:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3966:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3977:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3988:4:103","type":""}],"src":"3876:383:103"},{"body":{"nodeType":"YulBlock","src":"4438:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4455:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4466:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4448:6:103"},"nodeType":"YulFunctionCall","src":"4448:21:103"},"nodeType":"YulExpressionStatement","src":"4448:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4489:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4500:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4485:3:103"},"nodeType":"YulFunctionCall","src":"4485:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4505:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4478:6:103"},"nodeType":"YulFunctionCall","src":"4478:30:103"},"nodeType":"YulExpressionStatement","src":"4478:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4528:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4539:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4524:3:103"},"nodeType":"YulFunctionCall","src":"4524:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4544:34:103","type":"","value":"Strings: hex length insufficient"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4517:6:103"},"nodeType":"YulFunctionCall","src":"4517:62:103"},"nodeType":"YulExpressionStatement","src":"4517:62:103"},{"nodeType":"YulAssignment","src":"4588:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4600:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4611:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4596:3:103"},"nodeType":"YulFunctionCall","src":"4596:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4588:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4415:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4429:4:103","type":""}],"src":"4264:356:103"},{"body":{"nodeType":"YulBlock","src":"4799:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4816:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4827:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4809:6:103"},"nodeType":"YulFunctionCall","src":"4809:21:103"},"nodeType":"YulExpressionStatement","src":"4809:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4850:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4861:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4846:3:103"},"nodeType":"YulFunctionCall","src":"4846:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4866:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4839:6:103"},"nodeType":"YulFunctionCall","src":"4839:30:103"},"nodeType":"YulExpressionStatement","src":"4839:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4889:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4900:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4885:3:103"},"nodeType":"YulFunctionCall","src":"4885:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4905:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4878:6:103"},"nodeType":"YulFunctionCall","src":"4878:62:103"},"nodeType":"YulExpressionStatement","src":"4878:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4960:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4971:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4956:3:103"},"nodeType":"YulFunctionCall","src":"4956:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4976:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4949:6:103"},"nodeType":"YulFunctionCall","src":"4949:35:103"},"nodeType":"YulExpressionStatement","src":"4949:35:103"},{"nodeType":"YulAssignment","src":"4993:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5005:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5016:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5001:3:103"},"nodeType":"YulFunctionCall","src":"5001:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4993:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4776:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4790:4:103","type":""}],"src":"4625:401:103"},{"body":{"nodeType":"YulBlock","src":"5205:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5233:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5215:6:103"},"nodeType":"YulFunctionCall","src":"5215:21:103"},"nodeType":"YulExpressionStatement","src":"5215:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5256:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5267:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5252:3:103"},"nodeType":"YulFunctionCall","src":"5252:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5272:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5245:6:103"},"nodeType":"YulFunctionCall","src":"5245:30:103"},"nodeType":"YulExpressionStatement","src":"5245:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5295:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5306:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5291:3:103"},"nodeType":"YulFunctionCall","src":"5291:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5311:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5284:6:103"},"nodeType":"YulFunctionCall","src":"5284:62:103"},"nodeType":"YulExpressionStatement","src":"5284:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5366:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5377:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5362:3:103"},"nodeType":"YulFunctionCall","src":"5362:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5382:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5355:6:103"},"nodeType":"YulFunctionCall","src":"5355:44:103"},"nodeType":"YulExpressionStatement","src":"5355:44:103"},{"nodeType":"YulAssignment","src":"5408:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5431:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5416:3:103"},"nodeType":"YulFunctionCall","src":"5416:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5408:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5182:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5196:4:103","type":""}],"src":"5031:410:103"},{"body":{"nodeType":"YulBlock","src":"5620:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5648:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5630:6:103"},"nodeType":"YulFunctionCall","src":"5630:21:103"},"nodeType":"YulExpressionStatement","src":"5630:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5682:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5667:3:103"},"nodeType":"YulFunctionCall","src":"5667:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5687:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5660:6:103"},"nodeType":"YulFunctionCall","src":"5660:30:103"},"nodeType":"YulExpressionStatement","src":"5660:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5710:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5721:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5706:3:103"},"nodeType":"YulFunctionCall","src":"5706:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5726:34:103","type":"","value":"ERROR:ACL-001:ADMIN_ROLE_ALREADY"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5699:6:103"},"nodeType":"YulFunctionCall","src":"5699:62:103"},"nodeType":"YulExpressionStatement","src":"5699:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5792:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5777:3:103"},"nodeType":"YulFunctionCall","src":"5777:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5797:6:103","type":"","value":"_SET"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5770:6:103"},"nodeType":"YulFunctionCall","src":"5770:34:103"},"nodeType":"YulExpressionStatement","src":"5770:34:103"},{"nodeType":"YulAssignment","src":"5813:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5825:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5836:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5821:3:103"},"nodeType":"YulFunctionCall","src":"5821:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5813:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9f9877d18dbbe1b61e60abbc0b78cf763130d8a58767ec78a5fe18c4bab672fb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5597:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5611:4:103","type":""}],"src":"5446:400:103"},{"body":{"nodeType":"YulBlock","src":"6025:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6042:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6053:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6035:6:103"},"nodeType":"YulFunctionCall","src":"6035:21:103"},"nodeType":"YulExpressionStatement","src":"6035:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6076:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6087:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6072:3:103"},"nodeType":"YulFunctionCall","src":"6072:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6092:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6065:6:103"},"nodeType":"YulFunctionCall","src":"6065:30:103"},"nodeType":"YulExpressionStatement","src":"6065:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6115:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6126:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6111:3:103"},"nodeType":"YulFunctionCall","src":"6111:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6131:34:103","type":"","value":"ERROR:ACL-004:ROLE_UNKNOWN_OR_IN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6104:6:103"},"nodeType":"YulFunctionCall","src":"6104:62:103"},"nodeType":"YulExpressionStatement","src":"6104:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6186:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6197:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6182:3:103"},"nodeType":"YulFunctionCall","src":"6182:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6202:7:103","type":"","value":"VALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6175:6:103"},"nodeType":"YulFunctionCall","src":"6175:35:103"},"nodeType":"YulExpressionStatement","src":"6175:35:103"},{"nodeType":"YulAssignment","src":"6219:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6231:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6242:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6227:3:103"},"nodeType":"YulFunctionCall","src":"6227:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6219:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a62f7cd2c33f4a0b1b1970f9fec462b3e3054faeb7b054bebcfcfab7f5ebf5bb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6002:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6016:4:103","type":""}],"src":"5851:401:103"},{"body":{"nodeType":"YulBlock","src":"6431:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6448:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6459:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6441:6:103"},"nodeType":"YulFunctionCall","src":"6441:21:103"},"nodeType":"YulExpressionStatement","src":"6441:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6493:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6478:3:103"},"nodeType":"YulFunctionCall","src":"6478:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6498:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6471:6:103"},"nodeType":"YulFunctionCall","src":"6471:30:103"},"nodeType":"YulExpressionStatement","src":"6471:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6521:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6532:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6517:3:103"},"nodeType":"YulFunctionCall","src":"6517:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6537:34:103","type":"","value":"ERROR:ACL-002:ROLE_UNKNOWN_OR_IN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6510:6:103"},"nodeType":"YulFunctionCall","src":"6510:62:103"},"nodeType":"YulExpressionStatement","src":"6510:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6603:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6588:3:103"},"nodeType":"YulFunctionCall","src":"6588:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6608:7:103","type":"","value":"VALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6581:6:103"},"nodeType":"YulFunctionCall","src":"6581:35:103"},"nodeType":"YulExpressionStatement","src":"6581:35:103"},{"nodeType":"YulAssignment","src":"6625:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6648:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6633:3:103"},"nodeType":"YulFunctionCall","src":"6633:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6625:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b44ca75bdc42e96be4c16ee432e64fdbf40464ed8da793481d44f5ac59f98005__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6408:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6422:4:103","type":""}],"src":"6257:401:103"},{"body":{"nodeType":"YulBlock","src":"6837:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6865:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6847:6:103"},"nodeType":"YulFunctionCall","src":"6847:21:103"},"nodeType":"YulExpressionStatement","src":"6847:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6888:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6899:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6884:3:103"},"nodeType":"YulFunctionCall","src":"6884:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6904:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6877:6:103"},"nodeType":"YulFunctionCall","src":"6877:30:103"},"nodeType":"YulExpressionStatement","src":"6877:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6927:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6938:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6923:3:103"},"nodeType":"YulFunctionCall","src":"6923:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6943:34:103","type":"","value":"ERROR:CRC-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6916:6:103"},"nodeType":"YulFunctionCall","src":"6916:62:103"},"nodeType":"YulExpressionStatement","src":"6916:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6998:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7009:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6994:3:103"},"nodeType":"YulFunctionCall","src":"6994:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7014:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6987:6:103"},"nodeType":"YulFunctionCall","src":"6987:33:103"},"nodeType":"YulExpressionStatement","src":"6987:33:103"},{"nodeType":"YulAssignment","src":"7029:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7041:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7052:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7037:3:103"},"nodeType":"YulFunctionCall","src":"7037:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7029:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6814:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6828:4:103","type":""}],"src":"6663:399:103"},{"body":{"nodeType":"YulBlock","src":"7241:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7258:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7269:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7251:6:103"},"nodeType":"YulFunctionCall","src":"7251:21:103"},"nodeType":"YulExpressionStatement","src":"7251:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7303:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7288:3:103"},"nodeType":"YulFunctionCall","src":"7288:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7308:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7281:6:103"},"nodeType":"YulFunctionCall","src":"7281:30:103"},"nodeType":"YulExpressionStatement","src":"7281:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7331:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7342:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7327:3:103"},"nodeType":"YulFunctionCall","src":"7327:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7347:34:103","type":"","value":"ERROR:ACL-003:ROLE_EXISTING_AND_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7320:6:103"},"nodeType":"YulFunctionCall","src":"7320:62:103"},"nodeType":"YulExpressionStatement","src":"7320:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7402:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7413:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7398:3:103"},"nodeType":"YulFunctionCall","src":"7398:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7418:7:103","type":"","value":"VALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7391:6:103"},"nodeType":"YulFunctionCall","src":"7391:35:103"},"nodeType":"YulExpressionStatement","src":"7391:35:103"},{"nodeType":"YulAssignment","src":"7435:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7447:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7458:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7443:3:103"},"nodeType":"YulFunctionCall","src":"7443:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7435:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ee0f5f51d1b211cfb0cb0e99e7ae5223d02dd767fa6a6f61a7de5feac9760754__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7218:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7232:4:103","type":""}],"src":"7067:401:103"},{"body":{"nodeType":"YulBlock","src":"7647:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7664:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7675:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7657:6:103"},"nodeType":"YulFunctionCall","src":"7657:21:103"},"nodeType":"YulExpressionStatement","src":"7657:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7698:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7709:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7694:3:103"},"nodeType":"YulFunctionCall","src":"7694:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7714:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7687:6:103"},"nodeType":"YulFunctionCall","src":"7687:30:103"},"nodeType":"YulExpressionStatement","src":"7687:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7737:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7748:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7733:3:103"},"nodeType":"YulFunctionCall","src":"7733:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7753:34:103","type":"","value":"AccessControl: can only renounce"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7726:6:103"},"nodeType":"YulFunctionCall","src":"7726:62:103"},"nodeType":"YulExpressionStatement","src":"7726:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7808:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7819:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7804:3:103"},"nodeType":"YulFunctionCall","src":"7804:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7824:17:103","type":"","value":" roles for self"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7797:6:103"},"nodeType":"YulFunctionCall","src":"7797:45:103"},"nodeType":"YulExpressionStatement","src":"7797:45:103"},{"nodeType":"YulAssignment","src":"7851:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7863:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7874:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7859:3:103"},"nodeType":"YulFunctionCall","src":"7859:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7851:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7624:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7638:4:103","type":""}],"src":"7473:411:103"},{"body":{"nodeType":"YulBlock","src":"7990:76:103","statements":[{"nodeType":"YulAssignment","src":"8000:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8012:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8023:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8008:3:103"},"nodeType":"YulFunctionCall","src":"8008:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8000:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8042:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8053:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8035:6:103"},"nodeType":"YulFunctionCall","src":"8035:25:103"},"nodeType":"YulExpressionStatement","src":"8035:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7959:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7970:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7981:4:103","type":""}],"src":"7889:177:103"},{"body":{"nodeType":"YulBlock","src":"8119:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"8146:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8148:16:103"},"nodeType":"YulFunctionCall","src":"8148:18:103"},"nodeType":"YulExpressionStatement","src":"8148:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8135:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8142:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8138:3:103"},"nodeType":"YulFunctionCall","src":"8138:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8132:2:103"},"nodeType":"YulFunctionCall","src":"8132:13:103"},"nodeType":"YulIf","src":"8129:2:103"},{"nodeType":"YulAssignment","src":"8177:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8188:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"8191:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8184:3:103"},"nodeType":"YulFunctionCall","src":"8184:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"8177:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8102:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"8105:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"8111:3:103","type":""}],"src":"8071:128:103"},{"body":{"nodeType":"YulBlock","src":"8256:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"8315:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8317:16:103"},"nodeType":"YulFunctionCall","src":"8317:18:103"},"nodeType":"YulExpressionStatement","src":"8317:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8287:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8280:6:103"},"nodeType":"YulFunctionCall","src":"8280:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8273:6:103"},"nodeType":"YulFunctionCall","src":"8273:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"8295:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8306:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8302:3:103"},"nodeType":"YulFunctionCall","src":"8302:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"8310:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"8298:3:103"},"nodeType":"YulFunctionCall","src":"8298:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8292:2:103"},"nodeType":"YulFunctionCall","src":"8292:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8269:3:103"},"nodeType":"YulFunctionCall","src":"8269:45:103"},"nodeType":"YulIf","src":"8266:2:103"},{"nodeType":"YulAssignment","src":"8346:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8361:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"8364:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8357:3:103"},"nodeType":"YulFunctionCall","src":"8357:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"8346:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8235:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"8238:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"8244:7:103","type":""}],"src":"8204:168:103"},{"body":{"nodeType":"YulBlock","src":"8426:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"8448:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8450:16:103"},"nodeType":"YulFunctionCall","src":"8450:18:103"},"nodeType":"YulExpressionStatement","src":"8450:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8442:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"8445:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8439:2:103"},"nodeType":"YulFunctionCall","src":"8439:8:103"},"nodeType":"YulIf","src":"8436:2:103"},{"nodeType":"YulAssignment","src":"8479:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"8491:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"8494:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8487:3:103"},"nodeType":"YulFunctionCall","src":"8487:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"8479:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"8408:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"8411:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"8417:4:103","type":""}],"src":"8377:125:103"},{"body":{"nodeType":"YulBlock","src":"8560:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8570:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8579:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"8574:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8639:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8664:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"8669:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8660:3:103"},"nodeType":"YulFunctionCall","src":"8660:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"8683:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"8688:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8679:3:103"},"nodeType":"YulFunctionCall","src":"8679:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8673:5:103"},"nodeType":"YulFunctionCall","src":"8673:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8653:6:103"},"nodeType":"YulFunctionCall","src":"8653:39:103"},"nodeType":"YulExpressionStatement","src":"8653:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8600:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"8603:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8597:2:103"},"nodeType":"YulFunctionCall","src":"8597:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"8611:19:103","statements":[{"nodeType":"YulAssignment","src":"8613:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8622:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"8625:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8618:3:103"},"nodeType":"YulFunctionCall","src":"8618:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"8613:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"8593:3:103","statements":[]},"src":"8589:113:103"},{"body":{"nodeType":"YulBlock","src":"8728:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"8741:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"8746:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8737:3:103"},"nodeType":"YulFunctionCall","src":"8737:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"8755:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8730:6:103"},"nodeType":"YulFunctionCall","src":"8730:27:103"},"nodeType":"YulExpressionStatement","src":"8730:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"8717:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"8720:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8714:2:103"},"nodeType":"YulFunctionCall","src":"8714:13:103"},"nodeType":"YulIf","src":"8711:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"8538:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"8543:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"8548:6:103","type":""}],"src":"8507:258:103"},{"body":{"nodeType":"YulBlock","src":"8817:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"8844:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"8846:16:103"},"nodeType":"YulFunctionCall","src":"8846:18:103"},"nodeType":"YulExpressionStatement","src":"8846:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8837:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8830:6:103"},"nodeType":"YulFunctionCall","src":"8830:13:103"},"nodeType":"YulIf","src":"8827:2:103"},{"nodeType":"YulAssignment","src":"8875:25:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8886:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8897:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8893:3:103"},"nodeType":"YulFunctionCall","src":"8893:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8882:3:103"},"nodeType":"YulFunctionCall","src":"8882:18:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"8875:3:103"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8799:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"8809:3:103","type":""}],"src":"8770:136:103"},{"body":{"nodeType":"YulBlock","src":"8943:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8960:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8967:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8972:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8963:3:103"},"nodeType":"YulFunctionCall","src":"8963:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8953:6:103"},"nodeType":"YulFunctionCall","src":"8953:31:103"},"nodeType":"YulExpressionStatement","src":"8953:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9000:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"9003:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8993:6:103"},"nodeType":"YulFunctionCall","src":"8993:15:103"},"nodeType":"YulExpressionStatement","src":"8993:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9024:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9027:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9017:6:103"},"nodeType":"YulFunctionCall","src":"9017:15:103"},"nodeType":"YulExpressionStatement","src":"9017:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"8911:127:103"},{"body":{"nodeType":"YulBlock","src":"9088:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"9152:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9161:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"9164:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9154:6:103"},"nodeType":"YulFunctionCall","src":"9154:12:103"},"nodeType":"YulExpressionStatement","src":"9154:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9111:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9122:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9137:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9142:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9133:3:103"},"nodeType":"YulFunctionCall","src":"9133:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9146:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9129:3:103"},"nodeType":"YulFunctionCall","src":"9129:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9118:3:103"},"nodeType":"YulFunctionCall","src":"9118:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"9108:2:103"},"nodeType":"YulFunctionCall","src":"9108:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9101:6:103"},"nodeType":"YulFunctionCall","src":"9101:50:103"},"nodeType":"YulIf","src":"9098:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"9077:5:103","type":""}],"src":"9043:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_encode_tuple_packed_t_stringliteral_da0d07ce4a2849fbfc4cb9d6f939e9bd93016c372ca4a5ff14fe06caf3d67874_t_string_memory_ptr_t_stringliteral_f986ce851518a691bccd44ea42a5a185d1b866ef6cb07984a09b81694d20ab69_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, \"AccessControl: account \")\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), add(pos, 23), length)\n let _1 := add(pos, length)\n mstore(add(_1, 23), \" is missing role \")\n let length_1 := mload(value1)\n copy_memory_to_memory(add(value1, 0x20), add(_1, 40), length_1)\n end := add(add(_1, length_1), 40)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), \"InstanceOperatorService\")\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9f9877d18dbbe1b61e60abbc0b78cf763130d8a58767ec78a5fe18c4bab672fb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:ACL-001:ADMIN_ROLE_ALREADY\")\n mstore(add(headStart, 96), \"_SET\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a62f7cd2c33f4a0b1b1970f9fec462b3e3054faeb7b054bebcfcfab7f5ebf5bb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:ACL-004:ROLE_UNKNOWN_OR_IN\")\n mstore(add(headStart, 96), \"VALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b44ca75bdc42e96be4c16ee432e64fdbf40464ed8da793481d44f5ac59f98005__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:ACL-002:ROLE_UNKNOWN_OR_IN\")\n mstore(add(headStart, 96), \"VALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CRC-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ee0f5f51d1b211cfb0cb0e99e7ae5223d02dd767fa6a6f61a7de5feac9760754__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:ACL-003:ROLE_EXISTING_AND_\")\n mstore(add(headStart, 96), \"VALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb06fa8ff2141e8ed74502f6792273793f25f0e9d3cf15344f3f5a0d4948fd4b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"AccessControl: can only renounce\")\n mstore(add(headStart, 96), \" roles for self\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function decrement_t_uint256(value) -> ret\n {\n if iszero(value) { panic_error_0x11() }\n ret := add(value, not(0))\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101375760003560e01c8063775a4048116100b8578063c19010a71161007c578063c19010a714610301578063c4d66de814610314578063ca15c87314610327578063d17d02331461033a578063d49d21c01461034d578063d547741f1461037357610137565b8063775a40481461026e57806379a863f5146102945780639010d07c146102bb57806391d14854146102e6578063a217fddf146102f957610137565b806336568abe116100ff57806336568abe146101e05780633ffdd2f3146101f357806352a9c8d71461021957806368232c69146102205780636c137ea91461024757610137565b806301ffc9a71461013c57806312f9a85e14610164578063248a9ca314610187578063274b02a7146101b85780632f2ff15d146101cd575b600080fd5b61014f61014a366004611305565b610386565b60405190151581526020015b60405180910390f35b61014f61017236600461129d565b60046020526000908152604090205460ff1681565b6101aa61019536600461129d565b60009081526002602052604090206001015490565b60405190815260200161015b565b6101cb6101c636600461129d565b6103b3565b005b6101cb6101db3660046112b5565b6104ea565b6101cb6101ee3660046112b5565b61060a565b7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6101aa565b60006101aa565b6101aa7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd81565b6101aa7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd81565b7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd6101aa565b6101aa7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa281565b6102ce6102c93660046112e4565b610614565b6040516001600160a01b03909116815260200161015b565b61014f6102f43660046112b5565b610635565b6101aa600081565b6101cb61030f366004611245565b610660565b6101cb610322366004611245565b6106da565b6101aa61033536600461129d565b610909565b6101cb61034836600461129d565b610920565b7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa26101aa565b6101cb6103813660046112b5565b610a4a565b60006001600160e01b03198216635a05180f60e01b14806103ab57506103ab82610afa565b90505b919050565b6000546201000090046001600160a01b0316632ca65a796103d13390565b6040518263ffffffff1660e01b81526004016103ed91906113a2565b60206040518083038186803b15801561040557600080fd5b505afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d919061127d565b6104625760405162461bcd60e51b81526004016104599061140f565b60405180910390fd5b60008181526004602052604090205460ff16156104cf5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030333a524f4c455f4558495354494e475f414e445f604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19166001179055565b6000546201000090046001600160a01b0316632ca65a796105083390565b6040518263ffffffff1660e01b815260040161052491906113a2565b60206040518083038186803b15801561053c57600080fd5b505afa158015610550573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610574919061127d565b6105905760405162461bcd60e51b81526004016104599061140f565b60008281526004602052604090205460ff166105fc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030323a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6106068282610b2f565b5050565b6106068282610b59565b600082815260036020526040812061062c9083610bd3565b90505b92915050565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1661062c565b60055460ff16156106bf5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a41434c2d3030313a41444d494e5f524f4c455f414c524541445960448201526317d4d15560e21b6064820152608401610459565b6005805460ff191660011790556106d7600082610bdf565b50565b600054610100900460ff16158080156106fa5750600054600160ff909116105b806107145750303b158015610714575060005460ff166001145b6107775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610459565b6000805460ff19166001179055801561079a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556107cc6541636365737360d01b90565b6541636365737360d01b1461080e576107ed6541636365737360d01b610c01565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108c060046020527fef04f7ed48b33f0d9d7de17461a6b9fbfc99345543bcd1fd6722a181717386398054600160ff1991821681179092557f0d0f3851d150b47a1a07ba8d8da619d3d280e2d8c7ebd5a88c0ddf69c9320ac580548216831790557f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6000527f8ba76ee23aef2d48c27cf0a3d52ee681c660d5a027be0ef9cc9edc5ce9889bac80549091169091179055565b8015610606576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008181526003602052604081206103ab90610ce9565b6000546201000090046001600160a01b0316632ca65a7961093e3390565b6040518263ffffffff1660e01b815260040161095a91906113a2565b60206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa919061127d565b6109c65760405162461bcd60e51b81526004016104599061140f565b60008181526004602052604090205460ff16610a325760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030343a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19169055565b6000546201000090046001600160a01b0316632ca65a79610a683390565b6040518263ffffffff1660e01b8152600401610a8491906113a2565b60206040518083038186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad4919061127d565b610af05760405162461bcd60e51b81526004016104599061140f565b6106068282610cf3565b60006001600160e01b03198216637965db0b60e01b14806103ab57506301ffc9a760e01b6001600160e01b03198316146103ab565b600082815260026020526040902060010154610b4a81610d18565b610b548383610bdf565b505050565b6001600160a01b0381163314610bc95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610459565b6106068282610d22565b600061062c8383610d44565b610be98282610d7c565b6000828152600360205260409020610b549082610e02565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610c4b57600080fd5b505afa158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c839190611261565b90506001600160a01b0381166103ae5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610459565b60006103ab825490565b600082815260026020526040902060010154610d0e81610d18565b610b548383610d22565b6106d78133610e17565b610d2c8282610e7b565b6000828152600360205260409020610b549082610ee2565b6000826000018281548110610d6957634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b610d868282610635565b6106065760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610dbe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061062c836001600160a01b038416610ef7565b610e218282610635565b61060657610e39816001600160a01b03166014610f46565b610e44836020610f46565b604051602001610e5592919061132d565b60408051601f198184030181529082905262461bcd60e51b8252610459916004016113dc565b610e858282610635565b156106065760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061062c836001600160a01b038416611128565b6000818152600183016020526040812054610f3e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561062f565b50600061062f565b60606000610f5583600261146a565b610f60906002611452565b67ffffffffffffffff811115610f8657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610fb0576020820181803683370190505b509050600360fc1b81600081518110610fd957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061101657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061103a84600261146a565b611045906001611452565b90505b60018111156110d9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061108757634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106110ab57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936110d2816114d0565b9050611048565b50831561062c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610459565b6000818152600183016020526040812054801561123b57600061114c600183611489565b855490915060009061116090600190611489565b90508181146111e157600086600001828154811061118e57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106111bf57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061120057634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061062f565b600091505061062f565b600060208284031215611256578081fd5b813561062c816114fd565b600060208284031215611272578081fd5b815161062c816114fd565b60006020828403121561128e578081fd5b8151801515811461062c578182fd5b6000602082840312156112ae578081fd5b5035919050565b600080604083850312156112c7578081fd5b8235915060208301356112d9816114fd565b809150509250929050565b600080604083850312156112f6578182fd5b50508035926020909101359150565b600060208284031215611316578081fd5b81356001600160e01b03198116811461062c578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516113658160178501602088016114a0565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516113968160288401602088016114a0565b01602801949350505050565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60006020825282518060208401526113fb8160408501602087016114a0565b601f01601f19169190910160400192915050565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60008219821115611465576114656114e7565b500190565b6000816000190483118215151615611484576114846114e7565b500290565b60008282101561149b5761149b6114e7565b500390565b60005b838110156114bb5781810151838201526020016114a3565b838111156114ca576000848401525b50505050565b6000816114df576114df6114e7565b506000190190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146106d757600080fdfea26469706673582212203255f3dbbbf3b49008eb1abb30a00c8783989e7b50781a4462516e4ea3cbf87764736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x137 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x775A4048 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC19010A7 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC19010A7 EQ PUSH2 0x301 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x314 JUMPI DUP1 PUSH4 0xCA15C873 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xD17D0233 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0xD49D21C0 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x373 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x775A4048 EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0x79A863F5 EQ PUSH2 0x294 JUMPI DUP1 PUSH4 0x9010D07C EQ PUSH2 0x2BB JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2E6 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x2F9 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x36568ABE GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x1E0 JUMPI DUP1 PUSH4 0x3FFDD2F3 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x52A9C8D7 EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x68232C69 EQ PUSH2 0x220 JUMPI DUP1 PUSH4 0x6C137EA9 EQ PUSH2 0x247 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x12F9A85E EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x187 JUMPI DUP1 PUSH4 0x274B02A7 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x1CD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0x1305 JUMP JUMPDEST PUSH2 0x386 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x172 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1AA PUSH2 0x195 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15B JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x3B3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1CB PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x4EA JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x1EE CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1AA PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD DUP2 JUMP JUMPDEST PUSH2 0x1AA PUSH32 0xE984CFD1D1FA34F80E24DDB2A60C8300359D79EEE44555BC35C106EB020394CD DUP2 JUMP JUMPDEST PUSH32 0xE984CFD1D1FA34F80E24DDB2A60C8300359D79EEE44555BC35C106EB020394CD PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1AA PUSH32 0xD26B4CD59FFA91E4599F3D18B02FCD5FFB06E03216F3EE5F25F68DC75CBBBAA2 DUP2 JUMP JUMPDEST PUSH2 0x2CE PUSH2 0x2C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x12E4 JUMP JUMPDEST PUSH2 0x614 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15B JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0x635 JUMP JUMPDEST PUSH2 0x1AA PUSH1 0x0 DUP2 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x1245 JUMP JUMPDEST PUSH2 0x660 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x322 CALLDATASIZE PUSH1 0x4 PUSH2 0x1245 JUMP JUMPDEST PUSH2 0x6DA JUMP JUMPDEST PUSH2 0x1AA PUSH2 0x335 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x909 JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x348 CALLDATASIZE PUSH1 0x4 PUSH2 0x129D JUMP JUMPDEST PUSH2 0x920 JUMP JUMPDEST PUSH32 0xD26B4CD59FFA91E4599F3D18B02FCD5FFB06E03216F3EE5F25F68DC75CBBBAA2 PUSH2 0x1AA JUMP JUMPDEST PUSH2 0x1CB PUSH2 0x381 CALLDATASIZE PUSH1 0x4 PUSH2 0x12B5 JUMP JUMPDEST PUSH2 0xA4A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5A05180F PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3AB JUMPI POP PUSH2 0x3AB DUP3 PUSH2 0xAFA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3D1 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3ED SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x419 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x43D SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4CF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030333A524F4C455F4558495354494E475F414E445F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x508 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x524 SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x53C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x550 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x574 SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x590 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x5FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030323A524F4C455F554E4B4E4F574E5F4F525F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xB2F JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xB59 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x62C SWAP1 DUP4 PUSH2 0xBD3 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x62C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x6BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030313A41444D494E5F524F4C455F414C5245414459 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x17D4D155 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x6D7 PUSH1 0x0 DUP3 PUSH2 0xBDF JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x6FA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x714 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x714 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x777 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x79A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x7CC PUSH6 0x416363657373 PUSH1 0xD0 SHL SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x80E JUMPI PUSH2 0x7ED PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0xC01 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x8C0 PUSH1 0x4 PUSH1 0x20 MSTORE PUSH32 0xEF04F7ED48B33F0D9D7DE17461A6B9FBFC99345543BCD1FD6722A18171738639 DUP1 SLOAD PUSH1 0x1 PUSH1 0xFF NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE PUSH32 0xD0F3851D150B47A1A07BA8D8DA619D3D280E2D8C7EBD5A88C0DDF69C9320AC5 DUP1 SLOAD DUP3 AND DUP4 OR SWAP1 SSTORE PUSH32 0x3C4CDB47519F2F89924EBEB1EE7A8A43B8B00120826915726460BB24576012FD PUSH1 0x0 MSTORE PUSH32 0x8BA76EE23AEF2D48C27CF0A3D52EE681C660D5A027BE0EF9CC9EDC5CE9889BAC DUP1 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x3AB SWAP1 PUSH2 0xCE9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x93E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x95A SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0x9C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0xA32 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A41434C2D3030343A524F4C455F554E4B4E4F574E5F4F525F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1590531251 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xA68 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA84 SWAP2 SWAP1 PUSH2 0x13A2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAD4 SWAP2 SWAP1 PUSH2 0x127D JUMP JUMPDEST PUSH2 0xAF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x459 SWAP1 PUSH2 0x140F JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xCF3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x7965DB0B PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x3AB JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ PUSH2 0x3AB JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xB4A DUP2 PUSH2 0xD18 JUMP JUMPDEST PUSH2 0xB54 DUP4 DUP4 PUSH2 0xBDF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND CALLER EQ PUSH2 0xBC9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416363657373436F6E74726F6C3A2063616E206F6E6C792072656E6F756E6365 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x103937B632B9903337B91039B2B633 PUSH1 0x89 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH2 0x606 DUP3 DUP3 PUSH2 0xD22 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 DUP4 PUSH2 0xD44 JUMP JUMPDEST PUSH2 0xBE9 DUP3 DUP3 PUSH2 0xD7C JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB54 SWAP1 DUP3 PUSH2 0xE02 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC4B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC5F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC83 SWAP2 SWAP1 PUSH2 0x1261 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x3AE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AB DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0xD0E DUP2 PUSH2 0xD18 JUMP JUMPDEST PUSH2 0xB54 DUP4 DUP4 PUSH2 0xD22 JUMP JUMPDEST PUSH2 0x6D7 DUP2 CALLER PUSH2 0xE17 JUMP JUMPDEST PUSH2 0xD2C DUP3 DUP3 PUSH2 0xE7B JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xB54 SWAP1 DUP3 PUSH2 0xEE2 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xD69 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD86 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST PUSH2 0x606 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0xDBE CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xEF7 JUMP JUMPDEST PUSH2 0xE21 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST PUSH2 0x606 JUMPI PUSH2 0xE39 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x14 PUSH2 0xF46 JUMP JUMPDEST PUSH2 0xE44 DUP4 PUSH1 0x20 PUSH2 0xF46 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xE55 SWAP3 SWAP2 SWAP1 PUSH2 0x132D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE PUSH3 0x461BCD PUSH1 0xE5 SHL DUP3 MSTORE PUSH2 0x459 SWAP2 PUSH1 0x4 ADD PUSH2 0x13DC JUMP JUMPDEST PUSH2 0xE85 DUP3 DUP3 PUSH2 0x635 JUMP JUMPDEST ISZERO PUSH2 0x606 JUMPI PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP1 DUP6 MSTORE SWAP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE MLOAD CALLER SWAP3 DUP6 SWAP2 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B SWAP2 SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x62C DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x1128 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0xF3E JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x62F JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x62F JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xF55 DUP4 PUSH1 0x2 PUSH2 0x146A JUMP JUMPDEST PUSH2 0xF60 SWAP1 PUSH1 0x2 PUSH2 0x1452 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xF86 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xFB0 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xFD9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xF PUSH1 0xFB SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1016 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x0 PUSH2 0x103A DUP5 PUSH1 0x2 PUSH2 0x146A JUMP JUMPDEST PUSH2 0x1045 SWAP1 PUSH1 0x1 PUSH2 0x1452 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x10D9 JUMPI PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1087 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x10AB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH2 0x10D2 DUP2 PUSH2 0x14D0 JUMP JUMPDEST SWAP1 POP PUSH2 0x1048 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x62C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x459 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x123B JUMPI PUSH1 0x0 PUSH2 0x114C PUSH1 0x1 DUP4 PUSH2 0x1489 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1160 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1489 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x11E1 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x118E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x11BF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x1200 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x62F JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x62F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1256 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x62C DUP2 PUSH2 0x14FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1272 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x62C DUP2 PUSH2 0x14FD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x128E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x62C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x12AE JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12C7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x12D9 DUP2 PUSH2 0x14FD JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x12F6 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1316 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x62C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH32 0x416363657373436F6E74726F6C3A206163636F756E7420000000000000000000 DUP3 MSTORE DUP4 MLOAD PUSH2 0x1365 DUP2 PUSH1 0x17 DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x14A0 JUMP JUMPDEST PUSH17 0x1034B99036B4B9B9B4B733903937B6329 PUSH1 0x7D SHL PUSH1 0x17 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x1396 DUP2 PUSH1 0x28 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x14A0 JUMP JUMPDEST ADD PUSH1 0x28 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x13FB DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x14A0 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1465 JUMPI PUSH2 0x1465 PUSH2 0x14E7 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1484 JUMPI PUSH2 0x1484 PUSH2 0x14E7 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x149B JUMPI PUSH2 0x149B PUSH2 0x14E7 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x14BB JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x14A3 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x14CA JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x14DF JUMPI PUSH2 0x14DF PUSH2 0x14E7 JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6D7 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN SSTORE RETURN 0xDB 0xBB RETURN 0xB4 SWAP1 ADDMOD 0xEB BYTE 0xBB ADDRESS LOG0 0xC DUP8 DUP4 SWAP9 SWAP15 PUSH28 0x50781A4462516E4EA3CBF87764736F6C634300080200330000000000 ","sourceMap":"3861:3616:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:212:38;;;;;;:::i;:::-;;:::i;:::-;;;3468:14:103;;3461:22;3443:41;;3431:2;3416:18;634:212:38;;;;;;;;4455:41:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4391:129:37;;;;;;:::i;:::-;4465:7;4491:12;;;:6;:12;;;;;:22;;;;4391:129;;;;3641:25:103;;;3629:2;3614:18;4391:129:37;3596:76:103;6137:211:73;;;;;;:::i;:::-;;:::i;:::-;;5348:285;;;;;;:::i;:::-;;:::i;5860:184::-;;;;;;:::i;:::-;;:::i;7157:117::-;4413:33;7157:117;;6790:113;6850:7;6790:113;;4366:80;;4413:33;4366:80;;4042:76;;4087:31;4042:76;;6911:113;4087:31;6911:113;;4202:80;;4249:33;4202:80;;1431:151:38;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2898:32:103;;;2880:51;;2868:2;2853:18;1431:151:38;2835:102:103;6581:201:73;;;;;;:::i;:::-;;:::i;2027:49:37:-;;2072:4;2027:49;;5007:252:73;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;1750:140:38:-;;;;;;:::i;:::-;;:::i;6356:217:73:-;;;;;;:::i;:::-;;:::i;7032:117::-;4249:33;7032:117;;5641:211;;;;;;:::i;:::-;;:::i;634:212:38:-;719:4;-1:-1:-1;;;;;;742:57:38;;-1:-1:-1;;;742:57:38;;:97;;;803:36;827:11;803:23;:36::i;:::-;735:104;;634:212;;;;:::o;6137:211:73:-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;;;;;;;;;6250:15:73::1;::::0;;;:9:::1;:15;::::0;;;;;::::1;;6249:16;6241:66;;;::::0;-1:-1:-1;;;6241:66:73;;7269:2:103;6241:66:73::1;::::0;::::1;7251:21:103::0;7308:2;7288:18;;;7281:30;7347:34;7327:18;;;7320:62;-1:-1:-1;;;7398:18:103;;;7391:35;7443:19;;6241:66:73::1;7241:227:103::0;6241:66:73::1;6318:15;::::0;;;:9:::1;:15;::::0;;;;:22;;-1:-1:-1;;6318:22:73::1;6336:4;6318:22;::::0;;6137:211::o;5348:285::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5517:15:73::1;::::0;;;:9:::1;:15;::::0;;;;;::::1;;5509:65;;;::::0;-1:-1:-1;;;5509:65:73;;6459:2:103;5509:65:73::1;::::0;::::1;6441:21:103::0;6498:2;6478:18;;;6471:30;6537:34;6517:18;;;6510:62;-1:-1:-1;;;6588:18:103;;;6581:35;6633:19;;5509:65:73::1;6431:227:103::0;5509:65:73::1;5585:40;5609:4;5615:9;5585:23;:40::i;:::-;5348:285:::0;;:::o;5860:184::-;5993:43;6020:4;6026:9;5993:26;:43::i;1431:151:38:-;1521:7;1547:18;;;:12;:18;;;;;:28;;1569:5;1547:21;:28::i;:::-;1540:35;;1431:151;;;;;:::o;6581:201:73:-;6715:4;3004:12:37;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3004:29:37;;;;;;;;;;;;6744:30:73;2895:145:37;5007:252:73;5103:16;;;;5102:17;5094:66;;;;-1:-1:-1;;;5094:66:73;;5648:2:103;5094:66:73;;;5630:21:103;5687:2;5667:18;;;5660:30;5726:34;5706:18;;;5699:62;-1:-1:-1;;;5777:18:103;;;5770:34;5821:19;;5094:66:73;5620:226:103;5094:66:73;5171:16;:23;;-1:-1:-1;;5171:23:73;5190:4;5171:23;;;5207:44;5171:16;5238:12;5207:10;:44::i;:::-;5007:252;:::o;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;5233:2:103;3146:190:47;;;5215:21:103;5272:2;5252:18;;;5245:30;5311:34;5291:18;;;5284:62;-1:-1:-1;;;5362:18:103;;;5355:44;5416:19;;3146:190:47;5205:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;-1:-1:-1::0;;;4710:80:73;;1255:10:88::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;7332:9:73::0;:29;;;:36;;7364:4;-1:-1:-1;;7332:36:73;;;;;;;;7379:31;:38;;;;;;;;4413:33;-1:-1:-1;7428:31:73;;:38;;;;;;;;;;4543:159;1350:18:88::1;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;3829:36:103;;3531:14:47;;3817:2:103;3802:18;3531:14:47;;;;;;;1143:232:88;;:::o;1750:140:38:-;1830:7;1856:18;;;:12;:18;;;;;:27;;:25;:27::i;6356:217:73:-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6474:15:73::1;::::0;;;:9:::1;:15;::::0;;;;;::::1;;6466:65;;;::::0;-1:-1:-1;;;6466:65:73;;6053:2:103;6466:65:73::1;::::0;::::1;6035:21:103::0;6092:2;6072:18;;;6065:30;6131:34;6111:18;;;6104:62;-1:-1:-1;;;6182:18:103;;;6175:35;6227:19;;6466:65:73::1;6025:227:103::0;6466:65:73::1;6560:5;6542:15:::0;;;:9:::1;:15;::::0;;;;:23;;-1:-1:-1;;6542:23:73::1;::::0;;6356:217::o;5641:211::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5803:41:73::1;5828:4;5834:9;5803:24;:41::i;2606:202:37:-:0;2691:4;-1:-1:-1;;;;;;2714:47:37;;-1:-1:-1;;;2714:47:37;;:87;;-1:-1:-1;;;;;;;;;;937:40:62;;;2765:36:37;829:155:62;4816:145:37;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;4929:25:::1;4940:4;4946:7;4929:10;:25::i;:::-;4816:145:::0;;;:::o;5925:214::-;-1:-1:-1;;;;;6020:23:37;;719:10:59;6020:23:37;6012:83;;;;-1:-1:-1;;;6012:83:37;;7675:2:103;6012:83:37;;;7657:21:103;7714:2;7694:18;;;7687:30;7753:34;7733:18;;;7726:62;-1:-1:-1;;;7804:18:103;;;7797:45;7859:19;;6012:83:37;7647:237:103;6012:83:37;6106:26;6118:4;6124:7;6106:11;:26::i;9286:156:64:-;9360:7;9410:22;9414:3;9426:5;9410:3;:22::i;1978:166:38:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106:18;;;;:12;:18;;;;;:31;;2129:7;2106:22;:31::i;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;3641:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;3614:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;4827:2:103;1703:113:88;;;4809:21:103;4866:2;4846:18;;;4839:30;4905:34;4885:18;;;4878:62;-1:-1:-1;;;4956:18:103;;;4949:35;5001:19;;1703:113:88;4799:227:103;8829:115:64;8892:7;8918:19;8926:3;4444:18;;4362:107;5241:147:37;4465:7;4491:12;;;:6;:12;;;;;:22;;;2505:16;2516:4;2505:10;:16::i;:::-;5355:26:::1;5367:4;5373:7;5355:11;:26::i;3334:103::-:0;3400:30;3411:4;719:10:59;3400::37;:30::i;2233:171:38:-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:18;;;;:12;:18;;;;;:34;;2389:7;2363:25;:34::i;4811:118:64:-;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;7474:233:37:-;7557:22;7565:4;7571:7;7557;:22::i;:::-;7552:149;;7595:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7595:29:37;;;;;;;;;:36;;-1:-1:-1;;7595:36:37;7627:4;7595:36;;;7677:12;719:10:59;640:96;;7677:12:37;-1:-1:-1;;;;;7650:40:37;7668:7;-1:-1:-1;;;;;7650:40:37;7662:4;7650:40;;;;;;;;;;7474:233;;:::o;8028:150:64:-;8098:4;8121:50;8126:3;-1:-1:-1;;;;;8146:23:64;;8121:4;:50::i;3718:492:37:-;3806:22;3814:4;3820:7;3806;:22::i;:::-;3801:403;;3989:41;4017:7;-1:-1:-1;;;;;3989:41:37;4027:2;3989:19;:41::i;:::-;4101:38;4129:4;4136:2;4101:19;:38::i;:::-;3896:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3896:265:37;;;;;;;;;;-1:-1:-1;;;3844:349:37;;;;;;;:::i;7878:234::-;7961:22;7969:4;7975:7;7961;:22::i;:::-;7957:149;;;8031:5;7999:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7999:29:37;;;;;;;;;;:37;;-1:-1:-1;;7999:37:37;;;8055:40;719:10:59;;7999:12:37;;8055:40;;8031:5;8055:40;7878:234;;:::o;8346:156:64:-;8419:4;8442:53;8450:3;-1:-1:-1;;;;;8470:23:64;;8442:7;:53::i;2113:404::-;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;1652:441:61;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;1774:25;;;;;;-1:-1:-1;;;1774:25:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:61;;1752:47;;-1:-1:-1;;;1809:6:61;1816:1;1809:9;;;;;;-1:-1:-1;;;1809:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1809:15:61;;;;;;;;;-1:-1:-1;;;1834:6:61;1841:1;1834:9;;;;;;-1:-1:-1;;;1834:9:61;;;;;;;;;;;;:15;-1:-1:-1;;;;;1834:15:61;;;;;;;;-1:-1:-1;1864:9:61;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:61;1951:3;1943:11;1930:25;;;;;-1:-1:-1;;;1930:25:61;;;;;;;;;;;;1918:6;1925:1;1918:9;;;;;;-1:-1:-1;;;1918:9:61;;;;;;;;;;;;:37;-1:-1:-1;;;;;1918:37:61;;;;;;;;-1:-1:-1;1979:1:61;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:61;;2000:55;;;;-1:-1:-1;;;2000:55:61;;4466:2:103;2000:55:61;;;4448:21:103;;;4485:18;;;4478:30;4544:34;4524:18;;;4517:62;4596:18;;2000:55:61;4438:182:103;2685:1388:64;2751:4;2888:19;;;:12;;;:19;;;;;;2922:15;;2918:1149;;3291:21;3315:14;3328:1;3315:10;:14;:::i;:::-;3363:18;;3291:38;;-1:-1:-1;3343:17:64;;3363:22;;3384:1;;3363:22;:::i;:::-;3343:42;;3417:13;3404:9;:26;3400:398;;3450:17;3470:3;:11;;3482:9;3470:22;;;;;;-1:-1:-1;;;3470:22:64;;;;;;;;;;;;;;;;;3450:42;;3621:9;3592:3;:11;;3604:13;3592:26;;;;;;-1:-1:-1;;;3592:26:64;;;;;;;;;;;;;;;;;;;;:38;;;;3704:23;;;:12;;;:23;;;;;:36;;;3400:398;3876:17;;:3;;:17;;;-1:-1:-1;;;3876:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;3968:3;:12;;:19;3981:5;3968:19;;;;;;;;;;;3961:26;;;4009:4;4002:11;;;;;;;2918:1149;4051:5;4044:12;;;;;14:257:103;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:297::-;;662:2;650:9;641:7;637:23;633:32;630:2;;;683:6;675;668:22;630:2;720:9;714:16;773:5;766:13;759:21;752:5;749:32;739:2;;800:6;792;785:22;844:190;;956:2;944:9;935:7;931:23;927:32;924:2;;;977:6;969;962:22;924:2;-1:-1:-1;1005:23:103;;914:120;-1:-1:-1;914:120:103:o;1039:325::-;;;1168:2;1156:9;1147:7;1143:23;1139:32;1136:2;;;1189:6;1181;1174:22;1136:2;1230:9;1217:23;1207:33;;1290:2;1279:9;1275:18;1262:32;1303:31;1328:5;1303:31;:::i;:::-;1353:5;1343:15;;;1126:238;;;;;:::o;1369:258::-;;;1498:2;1486:9;1477:7;1473:23;1469:32;1466:2;;;1519:6;1511;1504:22;1466:2;-1:-1:-1;;1547:23:103;;;1617:2;1602:18;;;1589:32;;-1:-1:-1;1456:171:103:o;1632:306::-;;1743:2;1731:9;1722:7;1718:23;1714:32;1711:2;;;1764:6;1756;1749:22;1711:2;1795:23;;-1:-1:-1;;;;;;1847:32:103;;1837:43;;1827:2;;1899:6;1891;1884:22;1943:786;;2354:25;2349:3;2342:38;2409:6;2403:13;2425:62;2480:6;2475:2;2470:3;2466:12;2459:4;2451:6;2447:17;2425:62;:::i;:::-;-1:-1:-1;;;2546:2:103;2506:16;;;2538:11;;;2531:40;2596:13;;2618:63;2596:13;2667:2;2659:11;;2652:4;2640:17;;2618:63;:::i;:::-;2701:17;2720:2;2697:26;;2332:397;-1:-1:-1;;;;2332:397:103:o;2942:356::-;-1:-1:-1;;;;;3197:32:103;;;;3179:51;;3266:25;3261:2;3246:18;;3239:53;3167:2;3152:18;;3134:164::o;3876:383::-;;4025:2;4014:9;4007:21;4057:6;4051:13;4100:6;4095:2;4084:9;4080:18;4073:34;4116:66;4175:6;4170:2;4159:9;4155:18;4150:2;4142:6;4138:15;4116:66;:::i;:::-;4243:2;4222:15;-1:-1:-1;;4218:29:103;4203:45;;;;4250:2;4199:54;;3997:262;-1:-1:-1;;3997:262:103:o;6663:399::-;6865:2;6847:21;;;6904:2;6884:18;;;6877:30;6943:34;6938:2;6923:18;;6916:62;-1:-1:-1;;;7009:2:103;6994:18;;6987:33;7052:3;7037:19;;6837:225::o;8071:128::-;;8142:1;8138:6;8135:1;8132:13;8129:2;;;8148:18;;:::i;:::-;-1:-1:-1;8184:9:103;;8119:80::o;8204:168::-;;8310:1;8306;8302:6;8298:14;8295:1;8292:21;8287:1;8280:9;8273:17;8269:45;8266:2;;;8317:18;;:::i;:::-;-1:-1:-1;8357:9:103;;8256:116::o;8377:125::-;;8445:1;8442;8439:8;8436:2;;;8450:18;;:::i;:::-;-1:-1:-1;8487:9:103;;8426:76::o;8507:258::-;8579:1;8589:113;8603:6;8600:1;8597:13;8589:113;;;8679:11;;;8673:18;8660:11;;;8653:39;8625:2;8618:10;8589:113;;;8720:6;8717:1;8714:13;8711:2;;;8755:1;8746:6;8741:3;8737:16;8730:27;8711:2;;8560:205;;;:::o;8770:136::-;;8837:5;8827:2;;8846:18;;:::i;:::-;-1:-1:-1;;;8882:18:103;;8817:89::o;8911:127::-;8972:10;8967:3;8963:20;8960:1;8953:31;9003:4;9000:1;8993:15;9027:4;9024:1;9017:15;9043:131;-1:-1:-1;;;;;9118:31:103;;9108:42;;9098:2;;9164:1;9161;9154:12"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","ORACLE_PROVIDER_ROLE()":"79a863f5","PRODUCT_OWNER_ROLE()":"6c137ea9","RISKPOOL_KEEPER_ROLE()":"68232c69","addRole(bytes32)":"274b02a7","getDefaultAdminRole()":"52a9c8d7","getOracleProviderRole()":"d49d21c0","getProductOwnerRole()":"775a4048","getRiskpoolKeeperRole()":"3ffdd2f3","getRoleAdmin(bytes32)":"248a9ca3","getRoleMember(bytes32,uint256)":"9010d07c","getRoleMemberCount(bytes32)":"ca15c873","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","invalidateRole(bytes32)":"d17d0233","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDefaultAdminRole(address)":"c19010a7","supportsInterface(bytes4)":"01ffc9a7","validRole(bytes32)":"12f9a85e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ORACLE_PROVIDER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRODUCT_OWNER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISKPOOL_KEEPER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"addRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDefaultAdminRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleProviderRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductOwnerRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolKeeperRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"invalidateRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"defaultAdmin\",\"type\":\"address\"}],\"name\":\"setDefaultAdminRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"validRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The provided smart contract is called \\\"AccessController\\\" and is written in Solidity. It implements the \\\"IAccess\\\" interface and inherits from the \\\"CoreController\\\" contract and the \\\"AccessControlEnumerable\\\" contract. The contract provides functionalities for access control and role management. Roles: The contract defines three role identifiers as bytes32 constants: 1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. 2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. 3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. State Variables: - `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. - `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. Functions: - `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. - `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. - `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. - `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract. - `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract. - `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract. - `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping. - `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping. - `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role. - `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE. - `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE. - `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE. - `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. - `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. Modifiers: - `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. Overall, the contract provides a flexible access control mechanism by defining roles and allowing the assignment, revocation, and validation of roles by instance operators. It also sets a default admin role and manages the validity of roles through the `validRole` mapping.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/AccessController.sol\":\"AccessController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/AccessController.sol\":{\"keccak256\":\"0xc8293dfdc5c092e2fcea16d8a68117c9367dd09b3d951b5e730a588652212928\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://91e551839506ea79fadff0e2ea72c033c5d68d61a8414301307a172dc770f885\",\"dweb:/ipfs/QmWibGimWPLxXgNcpKUPidyTTBqvyjdV2dnQfNGfWMDgJ8\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/BundleController.sol":{"BundleController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundleCapitalProvided","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundleCapitalWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogBundlePayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundlePolicyCollateralized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"LogBundlePolicyReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"oldState","type":"uint8"},{"indexed":false,"internalType":"enum IBundle.BundleState","name":"newState","type":"uint8"}],"name":"LogBundleStateChanged","type":"event"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collateralizePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"uint256","name":"riskpoolId_","type":"uint256"},{"internalType":"bytes","name":"filter_","type":"bytes"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"create","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getFilter","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getState","outputs":[{"internalType":"enum IBundle.BundleState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"contract BundleToken","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[{"internalType":"uint256","name":"remainingCollateralAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"unburntBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612d1180620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063a65e2cfd116100b8578063c0e714041161007c578063c0e71404146102b6578063c397ae39146102c9578063c41a360a146102dc578063c4d66de8146102ef578063c559783e14610302578063dd4670641461032257610142565b8063a65e2cfd14610257578063b299cc261461026a578063b72674201461027d578063bb540df614610290578063bcd5349f146102a357610142565b80632d0821b71161010a5780632d0821b7146101cb5780633f5d9235146101eb57806342966c68146101fe57806344c9af28146102115780634d03f9b7146102315780636198e3391461024457610142565b80630aebeb4e1461014757806318442e631461015c5780631e0104391461017357806321df0da7146101865780632c92fb99146101ab575b600080fd5b61015a610155366004612995565b610335565b005b6008545b6040519081526020015b60405180910390f35b610160610181366004612995565b610405565b6003546001600160a01b03165b6040516001600160a01b03909116815260200161016a565b6101be6101b9366004612995565b61041c565b60405161016a9190612a5f565b6101de6101d9366004612995565b610431565b60405161016a9190612ac2565b6101606101f9366004612995565b6105ed565b61015a61020c366004612995565b610602565b61022461021f366004612995565b6107ba565b60405161016a9190612a72565b61015a61023f3660046129e6565b6107cf565b61015a610252366004612995565b610c1d565b61015a6102653660046129c5565b610c73565b61015a6102783660046129e6565b610e4a565b61015a61028b3660046129e6565b611374565b61016061029e3660046129c5565b611672565b6101606102b1366004612995565b6119d6565b6101606102c43660046127d4565b6119ff565b61015a6102d73660046129c5565b611c28565b6101936102ea366004612995565b611e00565b61015a6102fd36600461279c565b611e90565b610160610310366004612995565b60009081526007602052604090205490565b61015a610330366004612995565b61200d565b6103506e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146103895760405162461bcd60e51b815260040161038090612a80565b60405180910390fd5b600081815260056020526040902054156103f75760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031353a42554e444c455f574954485f4143544956456044820152685f504f4c494349455360b81b6064820152608401610380565b61040281600261214b565b50565b600061041082610431565b60e0015190505b919050565b606061042782610431565b6080015192915050565b610439612618565b600082815260046020908152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600380820154606084019160ff9091169081111561049d57634e487b7160e01b600052602160045260246000fd5b60038111156104bc57634e487b7160e01b600052602160045260246000fd5b81526020016004820180546104d090612c44565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc90612c44565b80156105495780601f1061051e57610100808354040283529160200191610549565b820191906000526020600020905b81548152906001019060200180831161052c57829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505090506000816101000151116105e75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3036303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b92915050565b60006105f882610431565b60c0015192915050565b61061d6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461064d5760405162461bcd60e51b815260040161038090612a80565b6000818152600460205260409020600260038083015460ff169081111561068457634e487b7160e01b600052602160045260246000fd5b146106d15760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3031363a42554e444c455f4e4f545f434c4f534544006044820152606401610380565b6007810154156107235760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4255432d3031373a42554e444c455f4841535f42414c414e43456044820152606401610380565b600354604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b50505050600181810154600090815260076020526040812080549091906107a5908490612bfd565b909155506107b6905082600361214b565b5050565b60006107c582610431565b6060015192915050565b6107ea6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461081a5760405162461bcd60e51b815260040161038090612a80565b60025460405163296586d360e21b8152600481018490526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561085f57600080fd5b505afa158015610873573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089b9190810190612860565b60008581526004602052604090209091506108b46121ac565b6001600160a01b031663d229f3b083602001516040518263ffffffff1660e01b81526004016108e591815260200190565b60206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093591906129ad565b8160010154146109935760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3031393a42554e444c455f4e4f545f494e5f5249534b6044820152631413d3d360e21b6064820152608401610380565b60008160080154116109f35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3032303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff1690811115610a1c57634e487b7160e01b600052602160045260246000fd5b14610a695760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3032313a42554e444c455f4e4f545f414354495645006044820152606401610380565b828160060154610a799190612be5565b81600501541015610acc5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4255432d3032323a43415041434954595f544f4f5f4c4f5700006044820152606401610380565b600085815260066020908152604080832087845290915290205415610b595760405162461bcd60e51b815260206004820152603b60248201527f4552524f523a4255432d3032333a494e4352454d454e54414c5f434f4c4c415460448201527f4552414c495a4154494f4e5f4e4f545f494d504c454d454e54454400000000006064820152608401610380565b82816006016000828254610b6d9190612be5565b90915550504260098201556000858152600560205260408120805460019290610b97908490612be5565b9091555050600085815260066020818152604080842088855290915282208590558201546005830154610bca9190612bfd565b6040805188815260208101889052908101869052606081018290529091507fb253c82cbaad89e2bd0fb78bc565243ccc06da1ac58b640ed94469f69b64ea549060800160405180910390a1505050505050565b610c386e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610c685760405162461bcd60e51b815260040161038090612a80565b61040281600061214b565b610c8e6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610cbe5760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154610d295760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600260038083015460ff1690811115610d5257634e487b7160e01b600052602160045260246000fd5b1415610da05760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4255432d3031323a42554e444c455f434c4f53454400000000006044820152606401610380565b81816005016000828254610db49190612be5565b9250508190555081816007016000828254610dcf9190612be5565b909155505042600982015560068101546005820154600091610df091612bfd565b90507fed746f45e63100861a9a492e092018cdce2d2645b83741099a6f8ecba2af013884335b604080519283526001600160a01b03909116602083015281018590526060810183905260800160405180910390a150505050565b610e656e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610e955760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b158015610edb57600080fd5b505afa158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f139190612910565b9050600281516002811115610f3857634e487b7160e01b600052602160045260246000fd5b1415610f915760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000848152600560205260409020546110005760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3034313a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b60008481526006602090815260408083208684529091529020548211156110825760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4255432d3034323a434f4c4c41544552414c5f494e535546464960448201526f4349454e545f464f525f504f4c49435960801b6064820152608401610380565b600084815260046020526040902060088101546110ed5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3034333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff169081111561111657634e487b7160e01b600052602160045260246000fd5b14806111485750600160038083015460ff169081111561114657634e487b7160e01b600052602160045260246000fd5b145b61119f5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4255432d3034343a42554e444c455f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b82816005015410156111f35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034353a4341504954414c5f544f4f5f4c4f570000006044820152606401610380565b82816006015410156112535760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3034363a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b6064820152608401610380565b82816007015410156112a75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034373a42414c414e43455f544f4f5f4c4f570000006044820152606401610380565b6000858152600660209081526040808320878452909152812080548592906112d0908490612bfd565b92505081905550828160050160008282546112eb9190612bfd565b92505081905550828160060160008282546113069190612bfd565b92505081905550828160070160008282546113219190612bfd565b909155505042600982015560408051868152602081018690529081018490527f34ea3fe7b8e6aa959a187f606dc076e9fb02379d613a2c9356f5a556aac9508c9060600160405180910390a15050505050565b61138f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146113bf5760405162461bcd60e51b815260040161038090612a80565b6000838152600460205260409020600881015484919061142d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3030323a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b60038181015460ff168181111561145457634e487b7160e01b600052602160045260246000fd5b141580156114895750600260038083015460ff169081111561148657634e487b7160e01b600052602160045260246000fd5b14155b6114e35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4255432d3030333a42554e444c455f4255524e45445f4f525f436044820152641313d4d15160da1b6064820152608401610380565b60025460405163a3f685f960e01b8152600481018690526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561152957600080fd5b505afa15801561153d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115619190612910565b905060028151600281111561158657634e487b7160e01b600052602160045260246000fd5b14156115df5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3033303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000868152600460205260409020600881015461164a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3033313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b8481600701600082825461165e9190612be5565b909155505042600990910155505050505050565b600061168f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146116bf5760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612910565b905060028151600281111561176257634e487b7160e01b600052602160045260246000fd5b146117ba5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3035303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b600084815260046020526040902060088101546118255760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3035313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b6000858152600560205260409020546118945760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3035323a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b6000858152600660208181526040808420888552909152909120549082015481111561190e5760405162461bcd60e51b8152602060048201526024808201527f50414e49433a4255432d3035333a554e4c4f434b5f4341504954414c5f544f4f6044820152635f42494760e01b6064820152608401610380565b600086815260056020526040812080546001929061192d908490612bfd565b90915550506000868152600660208181526040808420898552909152822082905583018054839290611960908490612bfd565b90915550504260098301556006820154600583015460009161198191612bfd565b6040805189815260208101899052908101849052606081018290529091507fa7edca0329e0f25a5a213baaa606802692de7155da4cf8a007aedf326d9180759060800160405180910390a15050505092915050565b6000806119e283610431565b90508060c001518160a001516119f89190612bfd565b9392505050565b6000611a1c6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611a4c5760405162461bcd60e51b815260040161038090612a80565b600854611a5a906001612be5565b600081815260046020526040902060088101549192509015611aca5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031303a42554e444c455f414c52454144595f45584960448201526253545360e81b6064820152608401610380565b6003546040516394bf804d60e01b8152600481018490526001600160a01b03898116602483015260009216906394bf804d90604401602060405180830381600087803b158015611b1957600080fd5b505af1158015611b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5191906129ad565b838355600283018190556001830188905560038301805460ff191690559050611b7e60048301878761268a565b50600582018490556007820184905542600880840182905560098401919091558054906000611bac83612c7f565b90915550506000878152600760205260408120805491611bcb83612c7f565b90915550508154600383015460058401546040517f2a6ff62099c2d2515017f639043aef82d6293361b7cb7bdc90854eb2f026b56c93611c159390928c928e9260ff169190612b7a565b60405180910390a1505095945050505050565b611c436e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611c735760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154611cde5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b818160060154611cee9190612be5565b8160050154101580611d1157506006810154158015611d11575081816007015410155b611d6f5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031343a43415041434954595f4f525f42414c414e43604482015268455f544f4f5f4c4f5760b81b6064820152608401610380565b81816005015410611d995781816005016000828254611d8e9190612bfd565b90915550611da19050565b600060058201555b81816007016000828254611db59190612bfd565b909155505042600982015560068101546005820154600091611dd691612bfd565b90507fe3d161947307a0d06b7ac0f3a183176acbc70afff0831bba7e694ef9f47323bd8433610e16565b600080611e0c83610431565b60409081015160035491516331a9108f60e11b8152600481018290529092506001600160a01b0390911690636352211e9060240160206040518083038186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f891906127b8565b600054610100900460ff1615808015611eb05750600054600160ff909116105b80611eca5750303b158015611eca575060005460ff166001145b611f2d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610380565b6000805460ff191660011790558015611f50576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f7a600090565b6541636365737360d01b14611fbc57611f9b6541636365737360d01b612063565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611fc46121c3565b80156107b6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6120286e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146120585760405162461bcd60e51b815260040161038090612a80565b61040281600161214b565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156120ad57600080fd5b505afa1580156120c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e591906127b8565b90506001600160a01b0381166104175760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610380565b6000612156836107ba565b90506121628183612299565b61216c83836125bb565b7f0c318b62e2d75a1d66c8fa6d64604f76f84b646cf3dadfb56e336044d57061f583828460405161219f93929190612b59565b60405180910390a1505050565b60006121be63141bdbdb60e21b612063565b905090565b600054610100900460ff1661222e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610380565b61224065506f6c69637960d01b612063565b600280546001600160a01b0319166001600160a01b03929092169190911790556122776a213ab7323632aa37b5b2b760a91b612063565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008260038111156122bb57634e487b7160e01b600052602160045260246000fd5b141561236f5760018160038111156122e357634e487b7160e01b600052602160045260246000fd5b148061230e5750600281600381111561230c57634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037303a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b6107b6565b600182600381111561239157634e487b7160e01b600052602160045260246000fd5b14156124405760008160038111156123b957634e487b7160e01b600052602160045260246000fd5b14806123e4575060028160038111156123e257634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037313a4c4f434b45445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600282600381111561246257634e487b7160e01b600052602160045260246000fd5b14156124e757600381600381111561248a57634e487b7160e01b600052602160045260246000fd5b1461236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037323a434c4f5345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600382600381111561250957634e487b7160e01b600052602160045260246000fd5b14156125635760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3037333a4255524e45445f49535f46494e414c5f535460448201526241544560e81b6064820152608401610380565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a424f432d3037343a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610380565b600082815260046020526040902060039081018054839260ff199091169060019084908111156125fb57634e487b7160e01b600052602160045260246000fd5b021790555050600090815260046020526040902042600990910155565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561265a57634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461269690612c44565b90600052602060002090601f0160209004810192826126b857600085556126fe565b82601f106126d15782800160ff198235161785556126fe565b828001600101855582156126fe579182015b828111156126fe5782358255916020019190600101906126e3565b5061270a92915061270e565b5090565b5b8082111561270a576000815560010161270f565b600082601f830112612733578081fd5b815167ffffffffffffffff81111561274d5761274d612cb0565b612760601f8201601f1916602001612bb4565b818152846020838601011115612774578283fd5b612785826020830160208701612c14565b949350505050565b80516003811061041757600080fd5b6000602082840312156127ad578081fd5b81356119f881612cc6565b6000602082840312156127c9578081fd5b81516119f881612cc6565b6000806000806000608086880312156127eb578081fd5b85356127f681612cc6565b945060208601359350604086013567ffffffffffffffff80821115612819578283fd5b818801915088601f83011261282c578283fd5b81358181111561283a578384fd5b89602082850101111561284b578384fd5b96999598505060200195606001359392505050565b600060208284031215612871578081fd5b815167ffffffffffffffff80821115612888578283fd5b9083019060c0828603121561289b578283fd5b6128a560c0612bb4565b82516128b081612cc6565b8152602083810151908201526128c86040840161278d565b60408201526060830151828111156128de578485fd5b6128ea87828601612723565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215612923578182fd5b61292c81612bb4565b90506129378361278d565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6000602082840312156129a6578081fd5b5035919050565b6000602082840312156129be578081fd5b5051919050565b600080604083850312156129d7578182fd5b50508035926020909101359150565b6000806000606084860312156129fa578283fd5b505081359360208301359350604090920135919050565b60008151808452612a29816020860160208601612c14565b601f01601f19169290920160200192915050565b60048110612a5b57634e487b7160e01b600052602160045260246000fd5b9052565b6000602082526119f86020830184612a11565b602081016105e78284612a3d565b60208082526022908201527f4552524f523a4255432d3030313a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612af56080840182612a3d565b5060808301516101408060a0850152612b12610160850183612a11565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b83815260608101612b6d6020830185612a3d565b6127856040830184612a3d565b858152602081018590526001600160a01b038416604082015260a08101612ba46060830185612a3d565b8260808301529695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612bdd57612bdd612cb0565b604052919050565b60008219821115612bf857612bf8612c9a565b500190565b600082821015612c0f57612c0f612c9a565b500390565b60005b83811015612c2f578181015183820152602001612c17565b83811115612c3e576000848401525b50505050565b600281046001821680612c5857607f821691505b60208210811415612c7957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c9357612c93612c9a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040257600080fdfea26469706673582212201077787b34730b7d2a802670a61dd1edc7acf97dd1ddeccd189c2edf0833b64664736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x22 JUMP JUMPDEST PUSH3 0xE4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xE2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x2D11 DUP1 PUSH3 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA65E2CFD GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC0E71404 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC0E71404 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0xC397AE39 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xC41A360A EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x2EF JUMPI DUP1 PUSH4 0xC559783E EQ PUSH2 0x302 JUMPI DUP1 PUSH4 0xDD467064 EQ PUSH2 0x322 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0xA65E2CFD EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0xB299CC26 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0xB7267420 EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0xBB540DF6 EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xBCD5349F EQ PUSH2 0x2A3 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x3F5D9235 EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x44C9AF28 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x4D03F9B7 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x6198E339 EQ PUSH2 0x244 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0xAEBEB4E EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x1E010439 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x2C92FB99 EQ PUSH2 0x1AB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x8 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x405 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16A JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x41C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2A5F JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x431 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2AC2 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST PUSH2 0x15A PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x602 JUMP JUMPDEST PUSH2 0x224 PUSH2 0x21F CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x7BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2A72 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x7CF JUMP JUMPDEST PUSH2 0x15A PUSH2 0x252 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0xC1D JUMP JUMPDEST PUSH2 0x15A PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0xC73 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0xE4A JUMP JUMPDEST PUSH2 0x15A PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1374 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x29E CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0x1672 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x19D6 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x19FF JUMP JUMPDEST PUSH2 0x15A PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0x1C28 JUMP JUMPDEST PUSH2 0x193 PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x1E00 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x2FD CALLDATASIZE PUSH1 0x4 PUSH2 0x279C JUMP JUMPDEST PUSH2 0x1E90 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x310 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x330 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x200D JUMP JUMPDEST PUSH2 0x350 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x389 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031353A42554E444C455F574954485F414354495645 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F504F4C4943494553 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x2 PUSH2 0x214B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x410 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x427 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x80 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x439 PUSH2 0x2618 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH2 0x140 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP1 DUP3 ADD SLOAD PUSH1 0x60 DUP5 ADD SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0x49D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0x4D0 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FC SWAP1 PUSH2 0x2C44 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x549 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x549 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x100 ADD MLOAD GT PUSH2 0x5E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3036303A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F8 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x61D PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x64D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x684 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x6D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031363A42554E444C455F4E4F545F434C4F53454400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x7 DUP2 ADD SLOAD ISZERO PUSH2 0x723 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031373A42554E444C455F4841535F42414C414E4345 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42966C68 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x77D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 DUP2 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x7A5 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x7B6 SWAP1 POP DUP3 PUSH1 0x3 PUSH2 0x214B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7C5 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7EA PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x873 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x89B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2860 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x8B4 PUSH2 0x21AC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD229F3B0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E5 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x911 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x935 SWAP2 SWAP1 PUSH2 0x29AD JUMP JUMPDEST DUP2 PUSH1 0x1 ADD SLOAD EQ PUSH2 0x993 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031393A42554E444C455F4E4F545F494E5F5249534B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1413D3D3 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x8 ADD SLOAD GT PUSH2 0x9F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032303A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xA69 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032313A42554E444C455F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD SLOAD PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO PUSH2 0xACC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032323A43415041434954595F544F4F5F4C4F570000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xB59 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032333A494E4352454D454E54414C5F434F4C4C4154 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x4552414C495A4154494F4E5F4E4F545F494D504C454D454E5445440000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB6D SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xB97 SWAP1 DUP5 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP9 DUP6 MSTORE SWAP1 SWAP2 MSTORE DUP3 KECCAK256 DUP6 SWAP1 SSTORE DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH2 0xBCA SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xB253C82CBAAD89E2BD0FB78BC565243CCC06DA1AC58B640ED94469F69B64EA54 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC38 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x0 PUSH2 0x214B JUMP JUMPDEST PUSH2 0xC8E PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0xD29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0xD52 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xDA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031323A42554E444C455F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDB4 SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDCF SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0xDF0 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 POP PUSH32 0xED746F45E63100861A9A492E092018CDCE2D2645B83741099A6F8ECBA2AF0138 DUP5 CALLER JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0xE65 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF13 SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF38 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xF91 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1000 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034313A4E4F5F4143544956455F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x5F464F525F42554E444C45 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x1082 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034323A434F4C4C41544552414C5F494E5355464649 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x4349454E545F464F525F504F4C494359 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x10ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034333A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1116 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1148 JUMPI POP PUSH1 0x1 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1146 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x119F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034343A42554E444C455F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO PUSH2 0x11F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034353A4341504954414C5F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x1253 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034363A4C4F434B45445F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F4C4F57 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO PUSH2 0x12A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034373A42414C414E43455F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP6 SWAP3 SWAP1 PUSH2 0x12D0 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x12EB SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1306 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1321 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x34EA3FE7B8E6AA959A187F606DC076E9FB02379D613A2C9356F5A556AAC9508C SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x138F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD DUP5 SWAP2 SWAP1 PUSH2 0x142D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030323A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 ADD SLOAD PUSH1 0xFF AND DUP2 DUP2 GT ISZERO PUSH2 0x1454 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x1489 JUMPI POP PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1486 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO JUMPDEST PUSH2 0x14E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030333A42554E444C455F4255524E45445F4F525F43 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1313D4D151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1529 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x153D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1561 SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1586 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x15DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3033303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x164A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3033313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP5 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x165E SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 SWAP1 SWAP2 ADD SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1705 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x173D SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1762 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x17BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3035303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x1825 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3035313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1894 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3035323A4E4F5F4143544956455F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x5F464F525F42554E444C45 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP9 DUP6 MSTORE SWAP1 SWAP2 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 DUP3 ADD SLOAD DUP2 GT ISZERO PUSH2 0x190E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x50414E49433A4255432D3035333A554E4C4F434B5F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F424947 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x192D SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP10 DUP6 MSTORE SWAP1 SWAP2 MSTORE DUP3 KECCAK256 DUP3 SWAP1 SSTORE DUP4 ADD DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1960 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP4 ADD SSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1981 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xA7EDCA0329E0F25A5A213BAAA606802692DE7155DA4CF8A007AEDF326D918075 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x19E2 DUP4 PUSH2 0x431 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xC0 ADD MLOAD DUP2 PUSH1 0xA0 ADD MLOAD PUSH2 0x19F8 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A1C PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x1A5A SWAP1 PUSH1 0x1 PUSH2 0x2BE5 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 ISZERO PUSH2 0x1ACA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031303A42554E444C455F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x94BF804D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x94BF804D SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B51 SWAP2 SWAP1 PUSH2 0x29AD JUMP JUMPDEST DUP4 DUP4 SSTORE PUSH1 0x2 DUP4 ADD DUP2 SWAP1 SSTORE PUSH1 0x1 DUP4 ADD DUP9 SWAP1 SSTORE PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 POP PUSH2 0x1B7E PUSH1 0x4 DUP4 ADD DUP8 DUP8 PUSH2 0x268A JUMP JUMPDEST POP PUSH1 0x5 DUP3 ADD DUP5 SWAP1 SSTORE PUSH1 0x7 DUP3 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x8 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x9 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x1BAC DUP4 PUSH2 0x2C7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x1BCB DUP4 PUSH2 0x2C7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP2 SLOAD PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x5 DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH32 0x2A6FF62099C2D2515017F639043AEF82D6293361B7CB7BDC90854EB2F026B56C SWAP4 PUSH2 0x1C15 SWAP4 SWAP1 SWAP3 DUP13 SWAP3 DUP15 SWAP3 PUSH1 0xFF AND SWAP2 SWAP1 PUSH2 0x2B7A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1C43 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C73 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x1CDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031333A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x6 ADD SLOAD PUSH2 0x1CEE SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO DUP1 PUSH2 0x1D11 JUMPI POP PUSH1 0x6 DUP2 ADD SLOAD ISZERO DUP1 ISZERO PUSH2 0x1D11 JUMPI POP DUP2 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO JUMPDEST PUSH2 0x1D6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031343A43415041434954595F4F525F42414C414E43 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x455F544F4F5F4C4F57 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x5 ADD SLOAD LT PUSH2 0x1D99 JUMPI DUP2 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D8E SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1DA1 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 DUP3 ADD SSTORE JUMPDEST DUP2 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1DB5 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1DD6 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 POP PUSH32 0xE3D161947307A0D06B7AC0F3A183176ACBC70AFFF0831BBA7E694EF9F47323BD DUP5 CALLER PUSH2 0xE16 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0C DUP4 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 ADD MLOAD PUSH1 0x3 SLOAD SWAP2 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F8 SWAP2 SWAP1 PUSH2 0x27B8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1EB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1ECA JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ECA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1F2D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1F50 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1F7A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1FBC JUMPI PUSH2 0x1F9B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1FC4 PUSH2 0x21C3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7B6 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x2028 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2058 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x1 PUSH2 0x214B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20E5 SWAP2 SWAP1 PUSH2 0x27B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x417 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2156 DUP4 PUSH2 0x7BA JUMP JUMPDEST SWAP1 POP PUSH2 0x2162 DUP2 DUP4 PUSH2 0x2299 JUMP JUMPDEST PUSH2 0x216C DUP4 DUP4 PUSH2 0x25BB JUMP JUMPDEST PUSH32 0xC318B62E2D75A1D66C8FA6D64604F76F84B646CF3DADFB56E336044D57061F5 DUP4 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0x219F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B59 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21BE PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x2063 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x222E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x2240 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2277 PUSH11 0x213AB7323632AA37B5B2B7 PUSH1 0xA9 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x22BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x236F JUMPI PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x22E3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x230E JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x230C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037303A4143544956455F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x7B6 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2391 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2440 JUMPI PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x23B9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x23E4 JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x23E2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037313A4C4F434B45445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2462 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x24E7 JUMPI PUSH1 0x3 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x248A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037323A434C4F5345445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2509 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2563 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037333A4255524E45445F49535F46494E414C5F5354 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x415445 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A424F432D3037343A494E495449414C5F53544154455F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12105391131151 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 SWAP1 DUP2 ADD DUP1 SLOAD DUP4 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 DUP2 GT ISZERO PUSH2 0x25FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 TIMESTAMP PUSH1 0x9 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x265A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2696 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x26B8 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x26FE JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x26D1 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x26FE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x26FE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x26FE JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x26E3 JUMP JUMPDEST POP PUSH2 0x270A SWAP3 SWAP2 POP PUSH2 0x270E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x270A JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x270F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2733 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x274D JUMPI PUSH2 0x274D PUSH2 0x2CB0 JUMP JUMPDEST PUSH2 0x2760 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2BB4 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2774 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2785 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2C14 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x417 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x19F8 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27C9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x19F8 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x27EB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x27F6 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2819 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x282C JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x283A JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x284B JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP POP PUSH1 0x20 ADD SWAP6 PUSH1 0x60 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2871 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2888 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x289B JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x28A5 PUSH1 0xC0 PUSH2 0x2BB4 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x28B0 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x28C8 PUSH1 0x40 DUP5 ADD PUSH2 0x278D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x28DE JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x28EA DUP8 DUP3 DUP7 ADD PUSH2 0x2723 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2923 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x292C DUP2 PUSH2 0x2BB4 JUMP JUMPDEST SWAP1 POP PUSH2 0x2937 DUP4 PUSH2 0x278D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29A6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29BE JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29D7 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x29FA JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2A29 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2C14 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x2A5B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x19F8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A11 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x5E7 DUP3 DUP5 PUSH2 0x2A3D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2AF5 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2A3D JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2B12 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2A11 JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x2B6D PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2A3D JUMP JUMPDEST PUSH2 0x2785 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2A3D JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0x2BA4 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2A3D JUMP JUMPDEST DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2BDD JUMPI PUSH2 0x2BDD PUSH2 0x2CB0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2BF8 JUMPI PUSH2 0x2BF8 PUSH2 0x2C9A JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C0F JUMPI PUSH2 0x2C0F PUSH2 0x2C9A JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2C2F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2C17 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2C3E JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2C58 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2C79 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C93 JUMPI PUSH2 0x2C93 PUSH2 0x2C9A JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x402 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT PUSH24 0x787B34730B7D2A802670A61DD1EDC7ACF97DD1DDECCD189C 0x2E 0xDF ADDMOD CALLER 0xB6 CHAINID PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2400:13072:74:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;2400:13072:74;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;2400:13072:74;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:27913:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"77:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"126:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"135:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"142:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"128:6:103"},"nodeType":"YulFunctionCall","src":"128:20:103"},"nodeType":"YulExpressionStatement","src":"128:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"113:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"120:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"90:6:103"},"nodeType":"YulFunctionCall","src":"90:35:103"},"nodeType":"YulIf","src":"87:2:103"},{"nodeType":"YulVariableDeclaration","src":"159:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"175:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"169:5:103"},"nodeType":"YulFunctionCall","src":"169:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"163:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"221:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"223:16:103"},"nodeType":"YulFunctionCall","src":"223:18:103"},"nodeType":"YulExpressionStatement","src":"223:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"197:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"201:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"194:2:103"},"nodeType":"YulFunctionCall","src":"194:26:103"},"nodeType":"YulIf","src":"191:2:103"},{"nodeType":"YulVariableDeclaration","src":"252:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"295:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"299:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"291:3:103"},"nodeType":"YulFunctionCall","src":"291:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"310:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"306:3:103"},"nodeType":"YulFunctionCall","src":"306:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"287:3:103"},"nodeType":"YulFunctionCall","src":"287:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"316:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"283:3:103"},"nodeType":"YulFunctionCall","src":"283:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"267:15:103"},"nodeType":"YulFunctionCall","src":"267:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"256:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"338:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"347:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"331:6:103"},"nodeType":"YulFunctionCall","src":"331:19:103"},"nodeType":"YulExpressionStatement","src":"331:19:103"},{"body":{"nodeType":"YulBlock","src":"398:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"407:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"414:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"400:6:103"},"nodeType":"YulFunctionCall","src":"400:20:103"},"nodeType":"YulExpressionStatement","src":"400:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"373:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"381:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:103"},"nodeType":"YulFunctionCall","src":"369:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"386:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:103"},"nodeType":"YulFunctionCall","src":"365:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"393:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"362:2:103"},"nodeType":"YulFunctionCall","src":"362:35:103"},"nodeType":"YulIf","src":"359:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"457:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"465:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"453:3:103"},"nodeType":"YulFunctionCall","src":"453:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"476:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"485:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"472:3:103"},"nodeType":"YulFunctionCall","src":"472:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"492:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"431:21:103"},"nodeType":"YulFunctionCall","src":"431:64:103"},"nodeType":"YulExpressionStatement","src":"431:64:103"},{"nodeType":"YulAssignment","src":"504:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"513:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"504:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"51:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"59:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"67:5:103","type":""}],"src":"14:512:103"},{"body":{"nodeType":"YulBlock","src":"604:87:103","statements":[{"nodeType":"YulAssignment","src":"614:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"629:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"623:5:103"},"nodeType":"YulFunctionCall","src":"623:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"614:5:103"}]},{"body":{"nodeType":"YulBlock","src":"669:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"678:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"681:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"671:6:103"},"nodeType":"YulFunctionCall","src":"671:12:103"},"nodeType":"YulExpressionStatement","src":"671:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"658:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"665:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"655:2:103"},"nodeType":"YulFunctionCall","src":"655:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"648:6:103"},"nodeType":"YulFunctionCall","src":"648:20:103"},"nodeType":"YulIf","src":"645:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"583:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"594:5:103","type":""}],"src":"531:160:103"},{"body":{"nodeType":"YulBlock","src":"766:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"812:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"821:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"829:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"814:6:103"},"nodeType":"YulFunctionCall","src":"814:22:103"},"nodeType":"YulExpressionStatement","src":"814:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"787:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"796:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"783:3:103"},"nodeType":"YulFunctionCall","src":"783:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"808:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"779:3:103"},"nodeType":"YulFunctionCall","src":"779:32:103"},"nodeType":"YulIf","src":"776:2:103"},{"nodeType":"YulVariableDeclaration","src":"847:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"873:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"860:12:103"},"nodeType":"YulFunctionCall","src":"860:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"851:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"917:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"892:24:103"},"nodeType":"YulFunctionCall","src":"892:31:103"},"nodeType":"YulExpressionStatement","src":"892:31:103"},{"nodeType":"YulAssignment","src":"932:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"942:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"932:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"732:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"743:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"755:6:103","type":""}],"src":"696:257:103"},{"body":{"nodeType":"YulBlock","src":"1039:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1085:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1094:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1102:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1087:6:103"},"nodeType":"YulFunctionCall","src":"1087:22:103"},"nodeType":"YulExpressionStatement","src":"1087:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1060:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1069:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1056:3:103"},"nodeType":"YulFunctionCall","src":"1056:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1081:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1052:3:103"},"nodeType":"YulFunctionCall","src":"1052:32:103"},"nodeType":"YulIf","src":"1049:2:103"},{"nodeType":"YulVariableDeclaration","src":"1120:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1139:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1133:5:103"},"nodeType":"YulFunctionCall","src":"1133:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1124:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1183:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1158:24:103"},"nodeType":"YulFunctionCall","src":"1158:31:103"},"nodeType":"YulExpressionStatement","src":"1158:31:103"},{"nodeType":"YulAssignment","src":"1198:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1208:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1198:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1005:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1016:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1028:6:103","type":""}],"src":"958:261:103"},{"body":{"nodeType":"YulBlock","src":"1364:773:103","statements":[{"body":{"nodeType":"YulBlock","src":"1411:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1420:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1428:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1413:6:103"},"nodeType":"YulFunctionCall","src":"1413:22:103"},"nodeType":"YulExpressionStatement","src":"1413:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1385:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1394:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1381:3:103"},"nodeType":"YulFunctionCall","src":"1381:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1406:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1377:3:103"},"nodeType":"YulFunctionCall","src":"1377:33:103"},"nodeType":"YulIf","src":"1374:2:103"},{"nodeType":"YulVariableDeclaration","src":"1446:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1472:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1459:12:103"},"nodeType":"YulFunctionCall","src":"1459:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1450:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1516:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1491:24:103"},"nodeType":"YulFunctionCall","src":"1491:31:103"},"nodeType":"YulExpressionStatement","src":"1491:31:103"},{"nodeType":"YulAssignment","src":"1531:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1541:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1531:6:103"}]},{"nodeType":"YulAssignment","src":"1555:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1582:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1593:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1578:3:103"},"nodeType":"YulFunctionCall","src":"1578:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1565:12:103"},"nodeType":"YulFunctionCall","src":"1565:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1555:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1606:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1648:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1633:3:103"},"nodeType":"YulFunctionCall","src":"1633:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1620:12:103"},"nodeType":"YulFunctionCall","src":"1620:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1610:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1661:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1671:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1665:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1716:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1725:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1733:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1718:6:103"},"nodeType":"YulFunctionCall","src":"1718:22:103"},"nodeType":"YulExpressionStatement","src":"1718:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1704:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1701:2:103"},"nodeType":"YulFunctionCall","src":"1701:14:103"},"nodeType":"YulIf","src":"1698:2:103"},{"nodeType":"YulVariableDeclaration","src":"1751:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1765:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1776:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1761:3:103"},"nodeType":"YulFunctionCall","src":"1761:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1755:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1831:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1840:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1848:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1833:6:103"},"nodeType":"YulFunctionCall","src":"1833:22:103"},"nodeType":"YulExpressionStatement","src":"1833:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1810:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1814:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1806:3:103"},"nodeType":"YulFunctionCall","src":"1806:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1821:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1802:3:103"},"nodeType":"YulFunctionCall","src":"1802:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1795:6:103"},"nodeType":"YulFunctionCall","src":"1795:35:103"},"nodeType":"YulIf","src":"1792:2:103"},{"nodeType":"YulVariableDeclaration","src":"1866:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1893:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1880:12:103"},"nodeType":"YulFunctionCall","src":"1880:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1870:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1923:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1932:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1940:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1925:6:103"},"nodeType":"YulFunctionCall","src":"1925:22:103"},"nodeType":"YulExpressionStatement","src":"1925:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1911:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1919:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1908:2:103"},"nodeType":"YulFunctionCall","src":"1908:14:103"},"nodeType":"YulIf","src":"1905:2:103"},{"body":{"nodeType":"YulBlock","src":"1999:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2008:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"2016:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2001:6:103"},"nodeType":"YulFunctionCall","src":"2001:22:103"},"nodeType":"YulExpressionStatement","src":"2001:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1972:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"1976:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1968:3:103"},"nodeType":"YulFunctionCall","src":"1968:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"1985:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1964:3:103"},"nodeType":"YulFunctionCall","src":"1964:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1990:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1961:2:103"},"nodeType":"YulFunctionCall","src":"1961:37:103"},"nodeType":"YulIf","src":"1958:2:103"},{"nodeType":"YulAssignment","src":"2034:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2048:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2052:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2044:3:103"},"nodeType":"YulFunctionCall","src":"2044:11:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2034:6:103"}]},{"nodeType":"YulAssignment","src":"2064:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"2074:6:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2064:6:103"}]},{"nodeType":"YulAssignment","src":"2089:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2116:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2127:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2112:3:103"},"nodeType":"YulFunctionCall","src":"2112:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2099:12:103"},"nodeType":"YulFunctionCall","src":"2099:32:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2089:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1298:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1309:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1321:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1329:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1337:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1345:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1353:6:103","type":""}],"src":"1224:913:103"},{"body":{"nodeType":"YulBlock","src":"2249:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"2295:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2304:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2312:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2297:6:103"},"nodeType":"YulFunctionCall","src":"2297:22:103"},"nodeType":"YulExpressionStatement","src":"2297:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2270:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2279:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2266:3:103"},"nodeType":"YulFunctionCall","src":"2266:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2291:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2262:3:103"},"nodeType":"YulFunctionCall","src":"2262:32:103"},"nodeType":"YulIf","src":"2259:2:103"},{"nodeType":"YulVariableDeclaration","src":"2330:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2350:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2344:5:103"},"nodeType":"YulFunctionCall","src":"2344:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2334:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2369:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2379:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2373:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2424:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2433:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2441:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2426:6:103"},"nodeType":"YulFunctionCall","src":"2426:22:103"},"nodeType":"YulExpressionStatement","src":"2426:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2412:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2420:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2409:2:103"},"nodeType":"YulFunctionCall","src":"2409:14:103"},"nodeType":"YulIf","src":"2406:2:103"},{"nodeType":"YulVariableDeclaration","src":"2459:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2473:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2484:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2469:3:103"},"nodeType":"YulFunctionCall","src":"2469:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2463:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2531:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2540:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2548:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2533:6:103"},"nodeType":"YulFunctionCall","src":"2533:22:103"},"nodeType":"YulExpressionStatement","src":"2533:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2511:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"2520:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2507:3:103"},"nodeType":"YulFunctionCall","src":"2507:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"2525:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2503:3:103"},"nodeType":"YulFunctionCall","src":"2503:27:103"},"nodeType":"YulIf","src":"2500:2:103"},{"nodeType":"YulVariableDeclaration","src":"2566:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2595:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2579:15:103"},"nodeType":"YulFunctionCall","src":"2579:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2570:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2609:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2630:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2624:5:103"},"nodeType":"YulFunctionCall","src":"2624:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2613:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2667:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2642:24:103"},"nodeType":"YulFunctionCall","src":"2642:33:103"},"nodeType":"YulExpressionStatement","src":"2642:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2691:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"2698:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2684:6:103"},"nodeType":"YulFunctionCall","src":"2684:22:103"},"nodeType":"YulExpressionStatement","src":"2684:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2726:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2733:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2722:3:103"},"nodeType":"YulFunctionCall","src":"2722:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2748:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2752:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2738:5:103"},"nodeType":"YulFunctionCall","src":"2738:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2715:6:103"},"nodeType":"YulFunctionCall","src":"2715:42:103"},"nodeType":"YulExpressionStatement","src":"2715:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2777:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2784:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2773:3:103"},"nodeType":"YulFunctionCall","src":"2773:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2836:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2840:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2832:3:103"},"nodeType":"YulFunctionCall","src":"2832:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"2789:42:103"},"nodeType":"YulFunctionCall","src":"2789:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2766:6:103"},"nodeType":"YulFunctionCall","src":"2766:79:103"},"nodeType":"YulExpressionStatement","src":"2766:79:103"},{"nodeType":"YulVariableDeclaration","src":"2854:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2880:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2884:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2876:3:103"},"nodeType":"YulFunctionCall","src":"2876:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2870:5:103"},"nodeType":"YulFunctionCall","src":"2870:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2858:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2917:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2926:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2934:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2919:6:103"},"nodeType":"YulFunctionCall","src":"2919:22:103"},"nodeType":"YulExpressionStatement","src":"2919:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2903:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2913:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2900:2:103"},"nodeType":"YulFunctionCall","src":"2900:16:103"},"nodeType":"YulIf","src":"2897:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2963:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2970:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2959:3:103"},"nodeType":"YulFunctionCall","src":"2959:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3007:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3011:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3003:3:103"},"nodeType":"YulFunctionCall","src":"3003:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3022:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"2975:27:103"},"nodeType":"YulFunctionCall","src":"2975:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2952:6:103"},"nodeType":"YulFunctionCall","src":"2952:79:103"},"nodeType":"YulExpressionStatement","src":"2952:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3051:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3058:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3047:3:103"},"nodeType":"YulFunctionCall","src":"3047:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3074:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3078:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3070:3:103"},"nodeType":"YulFunctionCall","src":"3070:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3064:5:103"},"nodeType":"YulFunctionCall","src":"3064:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3040:6:103"},"nodeType":"YulFunctionCall","src":"3040:44:103"},"nodeType":"YulExpressionStatement","src":"3040:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3104:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3111:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3100:3:103"},"nodeType":"YulFunctionCall","src":"3100:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3127:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3131:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3123:3:103"},"nodeType":"YulFunctionCall","src":"3123:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3117:5:103"},"nodeType":"YulFunctionCall","src":"3117:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3093:6:103"},"nodeType":"YulFunctionCall","src":"3093:44:103"},"nodeType":"YulExpressionStatement","src":"3093:44:103"},{"nodeType":"YulAssignment","src":"3146:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3156:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3146:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2215:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2226:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2238:6:103","type":""}],"src":"2142:1025:103"},{"body":{"nodeType":"YulBlock","src":"3277:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3287:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3297:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3291:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3345:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3354:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3362:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3347:6:103"},"nodeType":"YulFunctionCall","src":"3347:22:103"},"nodeType":"YulExpressionStatement","src":"3347:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3320:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3329:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3316:3:103"},"nodeType":"YulFunctionCall","src":"3316:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3341:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3312:3:103"},"nodeType":"YulFunctionCall","src":"3312:32:103"},"nodeType":"YulIf","src":"3309:2:103"},{"nodeType":"YulVariableDeclaration","src":"3380:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3409:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3393:15:103"},"nodeType":"YulFunctionCall","src":"3393:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3384:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3428:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3478:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"3435:42:103"},"nodeType":"YulFunctionCall","src":"3435:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3421:6:103"},"nodeType":"YulFunctionCall","src":"3421:68:103"},"nodeType":"YulExpressionStatement","src":"3421:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3509:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3516:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3531:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3542:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3527:3:103"},"nodeType":"YulFunctionCall","src":"3527:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3521:5:103"},"nodeType":"YulFunctionCall","src":"3521:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:49:103"},"nodeType":"YulExpressionStatement","src":"3498:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3567:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3574:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3563:3:103"},"nodeType":"YulFunctionCall","src":"3563:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3589:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3600:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3585:3:103"},"nodeType":"YulFunctionCall","src":"3585:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3579:5:103"},"nodeType":"YulFunctionCall","src":"3579:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3556:6:103"},"nodeType":"YulFunctionCall","src":"3556:49:103"},"nodeType":"YulExpressionStatement","src":"3556:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3625:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3632:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3621:3:103"},"nodeType":"YulFunctionCall","src":"3621:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3658:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3643:3:103"},"nodeType":"YulFunctionCall","src":"3643:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3637:5:103"},"nodeType":"YulFunctionCall","src":"3637:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3614:6:103"},"nodeType":"YulFunctionCall","src":"3614:49:103"},"nodeType":"YulExpressionStatement","src":"3614:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3683:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3690:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3679:3:103"},"nodeType":"YulFunctionCall","src":"3679:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3706:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3717:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3702:3:103"},"nodeType":"YulFunctionCall","src":"3702:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3696:5:103"},"nodeType":"YulFunctionCall","src":"3696:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3672:6:103"},"nodeType":"YulFunctionCall","src":"3672:51:103"},"nodeType":"YulExpressionStatement","src":"3672:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3743:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3750:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3739:3:103"},"nodeType":"YulFunctionCall","src":"3739:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3766:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3777:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3762:3:103"},"nodeType":"YulFunctionCall","src":"3762:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3756:5:103"},"nodeType":"YulFunctionCall","src":"3756:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3732:6:103"},"nodeType":"YulFunctionCall","src":"3732:51:103"},"nodeType":"YulExpressionStatement","src":"3732:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3803:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3810:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3799:3:103"},"nodeType":"YulFunctionCall","src":"3799:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3826:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3837:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3822:3:103"},"nodeType":"YulFunctionCall","src":"3822:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3816:5:103"},"nodeType":"YulFunctionCall","src":"3816:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3792:6:103"},"nodeType":"YulFunctionCall","src":"3792:51:103"},"nodeType":"YulExpressionStatement","src":"3792:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3863:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3870:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3859:3:103"},"nodeType":"YulFunctionCall","src":"3859:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3886:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3897:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3882:3:103"},"nodeType":"YulFunctionCall","src":"3882:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3876:5:103"},"nodeType":"YulFunctionCall","src":"3876:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3852:6:103"},"nodeType":"YulFunctionCall","src":"3852:51:103"},"nodeType":"YulExpressionStatement","src":"3852:51:103"},{"nodeType":"YulVariableDeclaration","src":"3912:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3922:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3916:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3945:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"3952:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3941:3:103"},"nodeType":"YulFunctionCall","src":"3941:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3967:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"3978:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3963:3:103"},"nodeType":"YulFunctionCall","src":"3963:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3957:5:103"},"nodeType":"YulFunctionCall","src":"3957:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3934:6:103"},"nodeType":"YulFunctionCall","src":"3934:49:103"},"nodeType":"YulExpressionStatement","src":"3934:49:103"},{"nodeType":"YulAssignment","src":"3992:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4002:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3992:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3266:6:103","type":""}],"src":"3172:841:103"},{"body":{"nodeType":"YulBlock","src":"4088:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"4134:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4143:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4151:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4136:6:103"},"nodeType":"YulFunctionCall","src":"4136:22:103"},"nodeType":"YulExpressionStatement","src":"4136:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4109:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4118:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4105:3:103"},"nodeType":"YulFunctionCall","src":"4105:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4130:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4101:3:103"},"nodeType":"YulFunctionCall","src":"4101:32:103"},"nodeType":"YulIf","src":"4098:2:103"},{"nodeType":"YulAssignment","src":"4169:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4192:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4179:12:103"},"nodeType":"YulFunctionCall","src":"4179:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4169:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4054:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4065:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4077:6:103","type":""}],"src":"4018:190:103"},{"body":{"nodeType":"YulBlock","src":"4294:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"4340:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4349:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4357:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4342:6:103"},"nodeType":"YulFunctionCall","src":"4342:22:103"},"nodeType":"YulExpressionStatement","src":"4342:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4315:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4324:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4311:3:103"},"nodeType":"YulFunctionCall","src":"4311:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4336:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4307:3:103"},"nodeType":"YulFunctionCall","src":"4307:32:103"},"nodeType":"YulIf","src":"4304:2:103"},{"nodeType":"YulAssignment","src":"4375:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4391:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4385:5:103"},"nodeType":"YulFunctionCall","src":"4385:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4375:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4260:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4271:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4283:6:103","type":""}],"src":"4213:194:103"},{"body":{"nodeType":"YulBlock","src":"4499:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"4545:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4554:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4562:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4547:6:103"},"nodeType":"YulFunctionCall","src":"4547:22:103"},"nodeType":"YulExpressionStatement","src":"4547:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4520:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4529:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4516:3:103"},"nodeType":"YulFunctionCall","src":"4516:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4541:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4512:3:103"},"nodeType":"YulFunctionCall","src":"4512:32:103"},"nodeType":"YulIf","src":"4509:2:103"},{"nodeType":"YulAssignment","src":"4580:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4603:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4590:12:103"},"nodeType":"YulFunctionCall","src":"4590:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4580:6:103"}]},{"nodeType":"YulAssignment","src":"4622:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4649:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4660:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4645:3:103"},"nodeType":"YulFunctionCall","src":"4645:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4632:12:103"},"nodeType":"YulFunctionCall","src":"4632:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4622:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4457:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4468:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4480:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4488:6:103","type":""}],"src":"4412:258:103"},{"body":{"nodeType":"YulBlock","src":"4779:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"4825:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4834:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4842:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4827:6:103"},"nodeType":"YulFunctionCall","src":"4827:22:103"},"nodeType":"YulExpressionStatement","src":"4827:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4800:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4809:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4796:3:103"},"nodeType":"YulFunctionCall","src":"4796:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4821:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4792:3:103"},"nodeType":"YulFunctionCall","src":"4792:32:103"},"nodeType":"YulIf","src":"4789:2:103"},{"nodeType":"YulAssignment","src":"4860:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4883:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4870:12:103"},"nodeType":"YulFunctionCall","src":"4870:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4860:6:103"}]},{"nodeType":"YulAssignment","src":"4902:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4929:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4940:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4925:3:103"},"nodeType":"YulFunctionCall","src":"4925:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4912:12:103"},"nodeType":"YulFunctionCall","src":"4912:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4902:6:103"}]},{"nodeType":"YulAssignment","src":"4953:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4980:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4991:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4976:3:103"},"nodeType":"YulFunctionCall","src":"4976:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4963:12:103"},"nodeType":"YulFunctionCall","src":"4963:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4953:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4729:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4740:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4752:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4760:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4768:6:103","type":""}],"src":"4675:326:103"},{"body":{"nodeType":"YulBlock","src":"5093:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"5139:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5148:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5156:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5141:6:103"},"nodeType":"YulFunctionCall","src":"5141:22:103"},"nodeType":"YulExpressionStatement","src":"5141:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5114:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5123:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5110:3:103"},"nodeType":"YulFunctionCall","src":"5110:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5135:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5106:3:103"},"nodeType":"YulFunctionCall","src":"5106:32:103"},"nodeType":"YulIf","src":"5103:2:103"},{"nodeType":"YulAssignment","src":"5174:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5197:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5184:12:103"},"nodeType":"YulFunctionCall","src":"5184:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5174:6:103"}]},{"nodeType":"YulAssignment","src":"5216:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5243:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5254:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5239:3:103"},"nodeType":"YulFunctionCall","src":"5239:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5226:12:103"},"nodeType":"YulFunctionCall","src":"5226:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5216:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5051:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5062:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5074:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5082:6:103","type":""}],"src":"5006:258:103"},{"body":{"nodeType":"YulBlock","src":"5318:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"5328:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5348:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5342:5:103"},"nodeType":"YulFunctionCall","src":"5342:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5332:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5370:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5375:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5363:6:103"},"nodeType":"YulFunctionCall","src":"5363:19:103"},"nodeType":"YulExpressionStatement","src":"5363:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5417:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5424:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5413:3:103"},"nodeType":"YulFunctionCall","src":"5413:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5435:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5440:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5431:3:103"},"nodeType":"YulFunctionCall","src":"5431:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"5447:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"5391:21:103"},"nodeType":"YulFunctionCall","src":"5391:63:103"},"nodeType":"YulExpressionStatement","src":"5391:63:103"},{"nodeType":"YulAssignment","src":"5463:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5478:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5491:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5499:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5487:3:103"},"nodeType":"YulFunctionCall","src":"5487:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5508:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5504:3:103"},"nodeType":"YulFunctionCall","src":"5504:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5483:3:103"},"nodeType":"YulFunctionCall","src":"5483:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5474:3:103"},"nodeType":"YulFunctionCall","src":"5474:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"5515:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5470:3:103"},"nodeType":"YulFunctionCall","src":"5470:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5463:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5295:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5302:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5310:3:103","type":""}],"src":"5269:257:103"},{"body":{"nodeType":"YulBlock","src":"5584:186:103","statements":[{"body":{"nodeType":"YulBlock","src":"5626:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5647:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5654:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5659:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5650:3:103"},"nodeType":"YulFunctionCall","src":"5650:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5640:6:103"},"nodeType":"YulFunctionCall","src":"5640:31:103"},"nodeType":"YulExpressionStatement","src":"5640:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5691:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5694:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5684:6:103"},"nodeType":"YulFunctionCall","src":"5684:15:103"},"nodeType":"YulExpressionStatement","src":"5684:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5719:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5722:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5712:6:103"},"nodeType":"YulFunctionCall","src":"5712:15:103"},"nodeType":"YulExpressionStatement","src":"5712:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5607:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5614:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5604:2:103"},"nodeType":"YulFunctionCall","src":"5604:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5597:6:103"},"nodeType":"YulFunctionCall","src":"5597:20:103"},"nodeType":"YulIf","src":"5594:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5753:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"5758:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5746:6:103"},"nodeType":"YulFunctionCall","src":"5746:18:103"},"nodeType":"YulExpressionStatement","src":"5746:18:103"}]},"name":"abi_encode_enum_BundleState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5568:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5575:3:103","type":""}],"src":"5531:239:103"},{"body":{"nodeType":"YulBlock","src":"5876:102:103","statements":[{"nodeType":"YulAssignment","src":"5886:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5898:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5909:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5894:3:103"},"nodeType":"YulFunctionCall","src":"5894:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5886:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5928:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5943:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5959:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5964:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5955:3:103"},"nodeType":"YulFunctionCall","src":"5955:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5968:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5951:3:103"},"nodeType":"YulFunctionCall","src":"5951:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5939:3:103"},"nodeType":"YulFunctionCall","src":"5939:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5921:6:103"},"nodeType":"YulFunctionCall","src":"5921:51:103"},"nodeType":"YulExpressionStatement","src":"5921:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5845:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5856:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5867:4:103","type":""}],"src":"5775:203:103"},{"body":{"nodeType":"YulBlock","src":"6084:76:103","statements":[{"nodeType":"YulAssignment","src":"6094:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6106:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6117:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6102:3:103"},"nodeType":"YulFunctionCall","src":"6102:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6094:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6136:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6147:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6129:6:103"},"nodeType":"YulFunctionCall","src":"6129:25:103"},"nodeType":"YulExpressionStatement","src":"6129:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6053:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6064:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6075:4:103","type":""}],"src":"5983:177:103"},{"body":{"nodeType":"YulBlock","src":"6284:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6301:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6312:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6294:6:103"},"nodeType":"YulFunctionCall","src":"6294:21:103"},"nodeType":"YulExpressionStatement","src":"6294:21:103"},{"nodeType":"YulAssignment","src":"6324:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6349:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6361:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6372:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6357:3:103"},"nodeType":"YulFunctionCall","src":"6357:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6332:16:103"},"nodeType":"YulFunctionCall","src":"6332:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6324:4:103"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6253:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6264:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6275:4:103","type":""}],"src":"6165:217:103"},{"body":{"nodeType":"YulBlock","src":"6509:102:103","statements":[{"nodeType":"YulAssignment","src":"6519:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6531:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6542:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6527:3:103"},"nodeType":"YulFunctionCall","src":"6527:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6519:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6561:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6576:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6592:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6597:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6588:3:103"},"nodeType":"YulFunctionCall","src":"6588:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6601:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6584:3:103"},"nodeType":"YulFunctionCall","src":"6584:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6572:3:103"},"nodeType":"YulFunctionCall","src":"6572:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6554:6:103"},"nodeType":"YulFunctionCall","src":"6554:51:103"},"nodeType":"YulExpressionStatement","src":"6554:51:103"}]},"name":"abi_encode_tuple_t_contract$_BundleToken_$28751__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6478:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6489:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6500:4:103","type":""}],"src":"6387:224:103"},{"body":{"nodeType":"YulBlock","src":"6731:97:103","statements":[{"nodeType":"YulAssignment","src":"6741:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6764:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6749:3:103"},"nodeType":"YulFunctionCall","src":"6749:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6741:4:103"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6804:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6812:9:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"6776:27:103"},"nodeType":"YulFunctionCall","src":"6776:46:103"},"nodeType":"YulExpressionStatement","src":"6776:46:103"}]},"name":"abi_encode_tuple_t_enum$_BundleState_$4914__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6700:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6711:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6722:4:103","type":""}],"src":"6616:212:103"},{"body":{"nodeType":"YulBlock","src":"6940:87:103","statements":[{"nodeType":"YulAssignment","src":"6950:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6962:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6973:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6958:3:103"},"nodeType":"YulFunctionCall","src":"6958:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6950:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6992:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7007:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7015:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7003:3:103"},"nodeType":"YulFunctionCall","src":"7003:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6985:6:103"},"nodeType":"YulFunctionCall","src":"6985:36:103"},"nodeType":"YulExpressionStatement","src":"6985:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6909:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6920:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6931:4:103","type":""}],"src":"6833:194:103"},{"body":{"nodeType":"YulBlock","src":"7206:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7223:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7234:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7216:6:103"},"nodeType":"YulFunctionCall","src":"7216:21:103"},"nodeType":"YulExpressionStatement","src":"7216:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7257:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7268:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7253:3:103"},"nodeType":"YulFunctionCall","src":"7253:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7273:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7246:6:103"},"nodeType":"YulFunctionCall","src":"7246:30:103"},"nodeType":"YulExpressionStatement","src":"7246:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7296:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7307:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7292:3:103"},"nodeType":"YulFunctionCall","src":"7292:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7312:31:103","type":"","value":"ERROR:BUC-045:CAPITAL_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7285:6:103"},"nodeType":"YulFunctionCall","src":"7285:59:103"},"nodeType":"YulExpressionStatement","src":"7285:59:103"},{"nodeType":"YulAssignment","src":"7353:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7376:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7361:3:103"},"nodeType":"YulFunctionCall","src":"7361:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7353:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_03e06f22613c7e93a2c0293d2431263b515ac3c8de79433e162399c9d978c6da__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7183:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7197:4:103","type":""}],"src":"7032:353:103"},{"body":{"nodeType":"YulBlock","src":"7564:249:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7592:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7574:6:103"},"nodeType":"YulFunctionCall","src":"7574:21:103"},"nodeType":"YulExpressionStatement","src":"7574:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7626:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7611:3:103"},"nodeType":"YulFunctionCall","src":"7611:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7631:2:103","type":"","value":"59"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7604:6:103"},"nodeType":"YulFunctionCall","src":"7604:30:103"},"nodeType":"YulExpressionStatement","src":"7604:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7665:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7650:3:103"},"nodeType":"YulFunctionCall","src":"7650:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7670:34:103","type":"","value":"ERROR:BUC-023:INCREMENTAL_COLLAT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7643:6:103"},"nodeType":"YulFunctionCall","src":"7643:62:103"},"nodeType":"YulExpressionStatement","src":"7643:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7736:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7721:3:103"},"nodeType":"YulFunctionCall","src":"7721:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7741:29:103","type":"","value":"ERALIZATION_NOT_IMPLEMENTED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7714:6:103"},"nodeType":"YulFunctionCall","src":"7714:57:103"},"nodeType":"YulExpressionStatement","src":"7714:57:103"},{"nodeType":"YulAssignment","src":"7780:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7803:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7788:3:103"},"nodeType":"YulFunctionCall","src":"7788:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7780:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0f7e878f103e4e81471a67c70bb5acfc513b47b809c34428480adee650fd472b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7541:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7555:4:103","type":""}],"src":"7390:423:103"},{"body":{"nodeType":"YulBlock","src":"7992:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8020:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8002:6:103"},"nodeType":"YulFunctionCall","src":"8002:21:103"},"nodeType":"YulExpressionStatement","src":"8002:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8043:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8054:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8039:3:103"},"nodeType":"YulFunctionCall","src":"8039:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8059:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8032:6:103"},"nodeType":"YulFunctionCall","src":"8032:30:103"},"nodeType":"YulExpressionStatement","src":"8032:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8082:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8093:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8078:3:103"},"nodeType":"YulFunctionCall","src":"8078:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8098:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8071:6:103"},"nodeType":"YulFunctionCall","src":"8071:62:103"},"nodeType":"YulExpressionStatement","src":"8071:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8164:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8149:3:103"},"nodeType":"YulFunctionCall","src":"8149:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8169:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8142:6:103"},"nodeType":"YulFunctionCall","src":"8142:35:103"},"nodeType":"YulExpressionStatement","src":"8142:35:103"},{"nodeType":"YulAssignment","src":"8186:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8198:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8209:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8194:3:103"},"nodeType":"YulFunctionCall","src":"8194:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8186:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7969:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7983:4:103","type":""}],"src":"7818:401:103"},{"body":{"nodeType":"YulBlock","src":"8398:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8426:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8408:6:103"},"nodeType":"YulFunctionCall","src":"8408:21:103"},"nodeType":"YulExpressionStatement","src":"8408:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8449:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8460:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8445:3:103"},"nodeType":"YulFunctionCall","src":"8445:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8465:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8438:6:103"},"nodeType":"YulFunctionCall","src":"8438:30:103"},"nodeType":"YulExpressionStatement","src":"8438:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8488:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8499:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8484:3:103"},"nodeType":"YulFunctionCall","src":"8484:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8504:34:103","type":"","value":"ERROR:BUC-060:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8477:6:103"},"nodeType":"YulFunctionCall","src":"8477:62:103"},"nodeType":"YulExpressionStatement","src":"8477:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8559:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8570:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8555:3:103"},"nodeType":"YulFunctionCall","src":"8555:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8575:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8548:6:103"},"nodeType":"YulFunctionCall","src":"8548:33:103"},"nodeType":"YulExpressionStatement","src":"8548:33:103"},{"nodeType":"YulAssignment","src":"8590:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8602:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8613:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8598:3:103"},"nodeType":"YulFunctionCall","src":"8598:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8590:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_18e88bfd32eca027f106fb862d7e55871ea316361090327a612bfb4dfe3f0755__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8375:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8389:4:103","type":""}],"src":"8224:399:103"},{"body":{"nodeType":"YulBlock","src":"8802:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8830:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8812:6:103"},"nodeType":"YulFunctionCall","src":"8812:21:103"},"nodeType":"YulExpressionStatement","src":"8812:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8853:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8864:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8849:3:103"},"nodeType":"YulFunctionCall","src":"8849:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8869:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8842:6:103"},"nodeType":"YulFunctionCall","src":"8842:30:103"},"nodeType":"YulExpressionStatement","src":"8842:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8903:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8888:3:103"},"nodeType":"YulFunctionCall","src":"8888:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8908:34:103","type":"","value":"ERROR:BUC-044:BUNDLE_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8881:6:103"},"nodeType":"YulFunctionCall","src":"8881:62:103"},"nodeType":"YulExpressionStatement","src":"8881:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8963:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8974:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8959:3:103"},"nodeType":"YulFunctionCall","src":"8959:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8979:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8952:6:103"},"nodeType":"YulFunctionCall","src":"8952:32:103"},"nodeType":"YulExpressionStatement","src":"8952:32:103"},{"nodeType":"YulAssignment","src":"8993:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9005:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9016:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9001:3:103"},"nodeType":"YulFunctionCall","src":"9001:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8993:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1dddbb0de5d7844609928e43cf681e6d3461371d25dd2fe6e10bde5404e8a51c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8779:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8793:4:103","type":""}],"src":"8628:398:103"},{"body":{"nodeType":"YulBlock","src":"9205:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9233:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9215:6:103"},"nodeType":"YulFunctionCall","src":"9215:21:103"},"nodeType":"YulExpressionStatement","src":"9215:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9256:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9267:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9252:3:103"},"nodeType":"YulFunctionCall","src":"9252:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9272:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9245:6:103"},"nodeType":"YulFunctionCall","src":"9245:30:103"},"nodeType":"YulExpressionStatement","src":"9245:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9295:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9306:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9291:3:103"},"nodeType":"YulFunctionCall","src":"9291:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9311:32:103","type":"","value":"ERROR:BUC-022:CAPACITY_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9284:6:103"},"nodeType":"YulFunctionCall","src":"9284:60:103"},"nodeType":"YulExpressionStatement","src":"9284:60:103"},{"nodeType":"YulAssignment","src":"9353:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9376:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9361:3:103"},"nodeType":"YulFunctionCall","src":"9361:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9353:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1f0e986b57b056403cfa995705a568caff60bf8952514def6e4e10f0b8be0363__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9182:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9196:4:103","type":""}],"src":"9031:354:103"},{"body":{"nodeType":"YulBlock","src":"9564:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9592:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9574:6:103"},"nodeType":"YulFunctionCall","src":"9574:21:103"},"nodeType":"YulExpressionStatement","src":"9574:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9626:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9611:3:103"},"nodeType":"YulFunctionCall","src":"9611:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9631:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9604:6:103"},"nodeType":"YulFunctionCall","src":"9604:30:103"},"nodeType":"YulExpressionStatement","src":"9604:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9665:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9650:3:103"},"nodeType":"YulFunctionCall","src":"9650:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9670:34:103","type":"","value":"ERROR:BUC-014:CAPACITY_OR_BALANC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9643:6:103"},"nodeType":"YulFunctionCall","src":"9643:62:103"},"nodeType":"YulExpressionStatement","src":"9643:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9736:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9721:3:103"},"nodeType":"YulFunctionCall","src":"9721:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9741:11:103","type":"","value":"E_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9714:6:103"},"nodeType":"YulFunctionCall","src":"9714:39:103"},"nodeType":"YulExpressionStatement","src":"9714:39:103"},{"nodeType":"YulAssignment","src":"9762:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9774:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9785:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9770:3:103"},"nodeType":"YulFunctionCall","src":"9770:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9762:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_21c208e0ee80cc3a94bf9c14b14ba802f5415c77d896f3678d2b2e4e18a9fdeb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9541:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9555:4:103","type":""}],"src":"9390:405:103"},{"body":{"nodeType":"YulBlock","src":"9974:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9991:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10002:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9984:6:103"},"nodeType":"YulFunctionCall","src":"9984:21:103"},"nodeType":"YulExpressionStatement","src":"9984:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10025:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10036:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10021:3:103"},"nodeType":"YulFunctionCall","src":"10021:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10041:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10014:6:103"},"nodeType":"YulFunctionCall","src":"10014:30:103"},"nodeType":"YulExpressionStatement","src":"10014:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10075:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10060:3:103"},"nodeType":"YulFunctionCall","src":"10060:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10080:34:103","type":"","value":"ERROR:BUC-020:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10053:6:103"},"nodeType":"YulFunctionCall","src":"10053:62:103"},"nodeType":"YulExpressionStatement","src":"10053:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10135:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10146:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10131:3:103"},"nodeType":"YulFunctionCall","src":"10131:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10151:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10124:6:103"},"nodeType":"YulFunctionCall","src":"10124:33:103"},"nodeType":"YulExpressionStatement","src":"10124:33:103"},{"nodeType":"YulAssignment","src":"10166:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10178:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10189:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10174:3:103"},"nodeType":"YulFunctionCall","src":"10174:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10166:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_23c15b355ac659e6efa849a6211bec479f57808999aa963c7b0feaa5cc832745__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9951:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9965:4:103","type":""}],"src":"9800:399:103"},{"body":{"nodeType":"YulBlock","src":"10378:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10395:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10406:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10388:6:103"},"nodeType":"YulFunctionCall","src":"10388:21:103"},"nodeType":"YulExpressionStatement","src":"10388:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10440:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10425:3:103"},"nodeType":"YulFunctionCall","src":"10425:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10445:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10418:6:103"},"nodeType":"YulFunctionCall","src":"10418:30:103"},"nodeType":"YulExpressionStatement","src":"10418:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10468:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10479:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10464:3:103"},"nodeType":"YulFunctionCall","src":"10464:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10484:31:103","type":"","value":"ERROR:BUC-047:BALANCE_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10457:6:103"},"nodeType":"YulFunctionCall","src":"10457:59:103"},"nodeType":"YulExpressionStatement","src":"10457:59:103"},{"nodeType":"YulAssignment","src":"10525:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10548:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10533:3:103"},"nodeType":"YulFunctionCall","src":"10533:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10525:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2e1494ff589237f5b43eee9b5f76fa574bdf53755720949c3bbf80d7f7047647__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10355:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10369:4:103","type":""}],"src":"10204:353:103"},{"body":{"nodeType":"YulBlock","src":"10736:238:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10764:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10746:6:103"},"nodeType":"YulFunctionCall","src":"10746:21:103"},"nodeType":"YulExpressionStatement","src":"10746:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10787:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10798:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10783:3:103"},"nodeType":"YulFunctionCall","src":"10783:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10803:2:103","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10776:6:103"},"nodeType":"YulFunctionCall","src":"10776:30:103"},"nodeType":"YulExpressionStatement","src":"10776:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10826:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10837:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10822:3:103"},"nodeType":"YulFunctionCall","src":"10822:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10842:34:103","type":"","value":"ERROR:BUC-042:COLLATERAL_INSUFFI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10815:6:103"},"nodeType":"YulFunctionCall","src":"10815:62:103"},"nodeType":"YulExpressionStatement","src":"10815:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10897:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10908:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10893:3:103"},"nodeType":"YulFunctionCall","src":"10893:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10913:18:103","type":"","value":"CIENT_FOR_POLICY"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10886:6:103"},"nodeType":"YulFunctionCall","src":"10886:46:103"},"nodeType":"YulExpressionStatement","src":"10886:46:103"},{"nodeType":"YulAssignment","src":"10941:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10953:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10964:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10949:3:103"},"nodeType":"YulFunctionCall","src":"10949:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10941:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_34c2d809984edcd3108df93e41438c107c75d7c168211713e77a185c157022f0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10713:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10727:4:103","type":""}],"src":"10562:412:103"},{"body":{"nodeType":"YulBlock","src":"11153:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11181:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11163:6:103"},"nodeType":"YulFunctionCall","src":"11163:21:103"},"nodeType":"YulExpressionStatement","src":"11163:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11204:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11215:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11200:3:103"},"nodeType":"YulFunctionCall","src":"11200:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11220:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11193:6:103"},"nodeType":"YulFunctionCall","src":"11193:30:103"},"nodeType":"YulExpressionStatement","src":"11193:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11243:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11254:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11239:3:103"},"nodeType":"YulFunctionCall","src":"11239:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11259:34:103","type":"","value":"ERROR:BUC-002:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11232:6:103"},"nodeType":"YulFunctionCall","src":"11232:62:103"},"nodeType":"YulExpressionStatement","src":"11232:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11314:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11325:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11310:3:103"},"nodeType":"YulFunctionCall","src":"11310:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11330:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11303:6:103"},"nodeType":"YulFunctionCall","src":"11303:33:103"},"nodeType":"YulExpressionStatement","src":"11303:33:103"},{"nodeType":"YulAssignment","src":"11345:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11357:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11368:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11353:3:103"},"nodeType":"YulFunctionCall","src":"11353:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11345:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4194f84ab3a903bd197fb67924a3a7daa9e6613ff1e3b7fc1fb4fffc1258eed5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11130:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11144:4:103","type":""}],"src":"10979:399:103"},{"body":{"nodeType":"YulBlock","src":"11557:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11574:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11585:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11567:6:103"},"nodeType":"YulFunctionCall","src":"11567:21:103"},"nodeType":"YulExpressionStatement","src":"11567:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11608:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11619:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11604:3:103"},"nodeType":"YulFunctionCall","src":"11604:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11624:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11597:6:103"},"nodeType":"YulFunctionCall","src":"11597:30:103"},"nodeType":"YulExpressionStatement","src":"11597:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11658:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11643:3:103"},"nodeType":"YulFunctionCall","src":"11643:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11663:34:103","type":"","value":"ERROR:BUC-046:LOCKED_CAPITAL_TOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11636:6:103"},"nodeType":"YulFunctionCall","src":"11636:62:103"},"nodeType":"YulExpressionStatement","src":"11636:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11718:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11729:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11714:3:103"},"nodeType":"YulFunctionCall","src":"11714:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11734:6:103","type":"","value":"_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11707:6:103"},"nodeType":"YulFunctionCall","src":"11707:34:103"},"nodeType":"YulExpressionStatement","src":"11707:34:103"},{"nodeType":"YulAssignment","src":"11750:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11762:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11773:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11758:3:103"},"nodeType":"YulFunctionCall","src":"11758:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11750:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_476d68cd1c40602068b3ee7843f94973d1216d46b2eed8d0cd41db8cb728d4b0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11534:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11548:4:103","type":""}],"src":"11383:400:103"},{"body":{"nodeType":"YulBlock","src":"11962:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11979:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11990:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11972:6:103"},"nodeType":"YulFunctionCall","src":"11972:21:103"},"nodeType":"YulExpressionStatement","src":"11972:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12024:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12009:3:103"},"nodeType":"YulFunctionCall","src":"12009:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12029:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12002:6:103"},"nodeType":"YulFunctionCall","src":"12002:30:103"},"nodeType":"YulExpressionStatement","src":"12002:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12052:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12063:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12048:3:103"},"nodeType":"YulFunctionCall","src":"12048:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12068:34:103","type":"","value":"ERROR:BUC-001:NOT_RISKPOOL_SERVI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12041:6:103"},"nodeType":"YulFunctionCall","src":"12041:62:103"},"nodeType":"YulExpressionStatement","src":"12041:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12123:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12134:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12119:3:103"},"nodeType":"YulFunctionCall","src":"12119:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12139:4:103","type":"","value":"CE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12112:6:103"},"nodeType":"YulFunctionCall","src":"12112:32:103"},"nodeType":"YulExpressionStatement","src":"12112:32:103"},{"nodeType":"YulAssignment","src":"12153:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12165:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12176:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12161:3:103"},"nodeType":"YulFunctionCall","src":"12161:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12153:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_476d7bdb29f083f2ebfc1b7face76d9f76a751b84204921dae4a5245b351756d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11939:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11953:4:103","type":""}],"src":"11788:398:103"},{"body":{"nodeType":"YulBlock","src":"12365:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12382:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12393:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12375:6:103"},"nodeType":"YulFunctionCall","src":"12375:21:103"},"nodeType":"YulExpressionStatement","src":"12375:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12427:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12412:3:103"},"nodeType":"YulFunctionCall","src":"12412:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12432:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12405:6:103"},"nodeType":"YulFunctionCall","src":"12405:30:103"},"nodeType":"YulExpressionStatement","src":"12405:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12455:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12466:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12451:3:103"},"nodeType":"YulFunctionCall","src":"12451:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12471:34:103","type":"","value":"ERROR:BUC-051:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12444:6:103"},"nodeType":"YulFunctionCall","src":"12444:62:103"},"nodeType":"YulExpressionStatement","src":"12444:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12526:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12537:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12522:3:103"},"nodeType":"YulFunctionCall","src":"12522:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12542:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12515:6:103"},"nodeType":"YulFunctionCall","src":"12515:33:103"},"nodeType":"YulExpressionStatement","src":"12515:33:103"},{"nodeType":"YulAssignment","src":"12557:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12580:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12565:3:103"},"nodeType":"YulFunctionCall","src":"12565:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12557:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4c8d28aba0b55c77dc14995621b19dd76d0dd4fc213e18d9e4f16eec0d3302e7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12342:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12356:4:103","type":""}],"src":"12191:399:103"},{"body":{"nodeType":"YulBlock","src":"12769:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12786:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12797:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12779:6:103"},"nodeType":"YulFunctionCall","src":"12779:21:103"},"nodeType":"YulExpressionStatement","src":"12779:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12831:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12816:3:103"},"nodeType":"YulFunctionCall","src":"12816:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12836:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12809:6:103"},"nodeType":"YulFunctionCall","src":"12809:30:103"},"nodeType":"YulExpressionStatement","src":"12809:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12859:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12870:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12855:3:103"},"nodeType":"YulFunctionCall","src":"12855:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12875:34:103","type":"","value":"ERROR:BUC-017:BUNDLE_HAS_BALANCE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12848:6:103"},"nodeType":"YulFunctionCall","src":"12848:62:103"},"nodeType":"YulExpressionStatement","src":"12848:62:103"},{"nodeType":"YulAssignment","src":"12919:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12931:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12942:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12927:3:103"},"nodeType":"YulFunctionCall","src":"12927:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12919:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4e3999515467d51db7d3efc320b4632f965fd637f4434d0cd56865c0258932e1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12746:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12760:4:103","type":""}],"src":"12595:356:103"},{"body":{"nodeType":"YulBlock","src":"13130:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13147:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13158:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13140:6:103"},"nodeType":"YulFunctionCall","src":"13140:21:103"},"nodeType":"YulExpressionStatement","src":"13140:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13181:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13192:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13177:3:103"},"nodeType":"YulFunctionCall","src":"13177:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13197:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13170:6:103"},"nodeType":"YulFunctionCall","src":"13170:30:103"},"nodeType":"YulExpressionStatement","src":"13170:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13231:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13216:3:103"},"nodeType":"YulFunctionCall","src":"13216:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13236:29:103","type":"","value":"ERROR:BUC-012:BUNDLE_CLOSED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13209:6:103"},"nodeType":"YulFunctionCall","src":"13209:57:103"},"nodeType":"YulExpressionStatement","src":"13209:57:103"},{"nodeType":"YulAssignment","src":"13275:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13287:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13298:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13283:3:103"},"nodeType":"YulFunctionCall","src":"13283:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13275:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_51098105866c55020f052d2f0c7132465beb1923abe3fed4a93163d00ae443f5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13107:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13121:4:103","type":""}],"src":"12956:351:103"},{"body":{"nodeType":"YulBlock","src":"13486:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13503:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13514:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13496:6:103"},"nodeType":"YulFunctionCall","src":"13496:21:103"},"nodeType":"YulExpressionStatement","src":"13496:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13548:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13533:3:103"},"nodeType":"YulFunctionCall","src":"13533:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13553:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13526:6:103"},"nodeType":"YulFunctionCall","src":"13526:30:103"},"nodeType":"YulExpressionStatement","src":"13526:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13576:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13587:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13572:3:103"},"nodeType":"YulFunctionCall","src":"13572:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13592:34:103","type":"","value":"ERROR:BUC-070:ACTIVE_INVALID_TRA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13565:6:103"},"nodeType":"YulFunctionCall","src":"13565:62:103"},"nodeType":"YulExpressionStatement","src":"13565:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13658:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13643:3:103"},"nodeType":"YulFunctionCall","src":"13643:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13663:9:103","type":"","value":"NSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13636:6:103"},"nodeType":"YulFunctionCall","src":"13636:37:103"},"nodeType":"YulExpressionStatement","src":"13636:37:103"},{"nodeType":"YulAssignment","src":"13682:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13694:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13705:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13690:3:103"},"nodeType":"YulFunctionCall","src":"13690:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13682:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_57e2fa2e1f46bf1826c5847f0b8b0e2dfce8ed4b21dd5b3ef33697380369b0d0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13463:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13477:4:103","type":""}],"src":"13312:403:103"},{"body":{"nodeType":"YulBlock","src":"13894:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13911:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13922:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13904:6:103"},"nodeType":"YulFunctionCall","src":"13904:21:103"},"nodeType":"YulExpressionStatement","src":"13904:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13945:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13956:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13941:3:103"},"nodeType":"YulFunctionCall","src":"13941:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13961:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13934:6:103"},"nodeType":"YulFunctionCall","src":"13934:30:103"},"nodeType":"YulExpressionStatement","src":"13934:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13984:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13995:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13980:3:103"},"nodeType":"YulFunctionCall","src":"13980:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14000:34:103","type":"","value":"ERROR:BUC-043:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13973:6:103"},"nodeType":"YulFunctionCall","src":"13973:62:103"},"nodeType":"YulExpressionStatement","src":"13973:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14066:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14051:3:103"},"nodeType":"YulFunctionCall","src":"14051:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14071:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14044:6:103"},"nodeType":"YulFunctionCall","src":"14044:33:103"},"nodeType":"YulExpressionStatement","src":"14044:33:103"},{"nodeType":"YulAssignment","src":"14086:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14098:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14109:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14094:3:103"},"nodeType":"YulFunctionCall","src":"14094:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14086:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_677000cd6030ee367c696ca46253760a7b00f48b537add2d4517030ec068929f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13871:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13885:4:103","type":""}],"src":"13720:399:103"},{"body":{"nodeType":"YulBlock","src":"14298:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14315:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14326:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14308:6:103"},"nodeType":"YulFunctionCall","src":"14308:21:103"},"nodeType":"YulExpressionStatement","src":"14308:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14360:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14345:3:103"},"nodeType":"YulFunctionCall","src":"14345:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14365:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14338:6:103"},"nodeType":"YulFunctionCall","src":"14338:30:103"},"nodeType":"YulExpressionStatement","src":"14338:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14388:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14399:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14384:3:103"},"nodeType":"YulFunctionCall","src":"14384:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14404:34:103","type":"","value":"ERROR:BUC-013:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14377:6:103"},"nodeType":"YulFunctionCall","src":"14377:62:103"},"nodeType":"YulExpressionStatement","src":"14377:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14470:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14455:3:103"},"nodeType":"YulFunctionCall","src":"14455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14475:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14448:6:103"},"nodeType":"YulFunctionCall","src":"14448:33:103"},"nodeType":"YulExpressionStatement","src":"14448:33:103"},{"nodeType":"YulAssignment","src":"14490:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14502:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14513:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14498:3:103"},"nodeType":"YulFunctionCall","src":"14498:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14490:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_750d48e8d1549f6e00eaa45d8b819215fd3f4c5e8b847763cb675c2a72ed0664__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14275:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14289:4:103","type":""}],"src":"14124:399:103"},{"body":{"nodeType":"YulBlock","src":"14702:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14730:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14712:6:103"},"nodeType":"YulFunctionCall","src":"14712:21:103"},"nodeType":"YulExpressionStatement","src":"14712:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14764:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14749:3:103"},"nodeType":"YulFunctionCall","src":"14749:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14769:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14742:6:103"},"nodeType":"YulFunctionCall","src":"14742:30:103"},"nodeType":"YulExpressionStatement","src":"14742:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14803:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14788:3:103"},"nodeType":"YulFunctionCall","src":"14788:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14808:34:103","type":"","value":"PANIC:BUC-053:UNLOCK_CAPITAL_TOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14781:6:103"},"nodeType":"YulFunctionCall","src":"14781:62:103"},"nodeType":"YulExpressionStatement","src":"14781:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14863:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14874:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14859:3:103"},"nodeType":"YulFunctionCall","src":"14859:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14879:6:103","type":"","value":"_BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14852:6:103"},"nodeType":"YulFunctionCall","src":"14852:34:103"},"nodeType":"YulExpressionStatement","src":"14852:34:103"},{"nodeType":"YulAssignment","src":"14895:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14918:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14903:3:103"},"nodeType":"YulFunctionCall","src":"14903:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14895:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_77814e7a28acd311f6561f4571dfa56fd4af89762a0ef5863e6c33e0835c7391__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14679:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14693:4:103","type":""}],"src":"14528:400:103"},{"body":{"nodeType":"YulBlock","src":"15107:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15124:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15135:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15117:6:103"},"nodeType":"YulFunctionCall","src":"15117:21:103"},"nodeType":"YulExpressionStatement","src":"15117:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15158:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15169:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15154:3:103"},"nodeType":"YulFunctionCall","src":"15154:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15174:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15147:6:103"},"nodeType":"YulFunctionCall","src":"15147:30:103"},"nodeType":"YulExpressionStatement","src":"15147:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15197:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15208:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15193:3:103"},"nodeType":"YulFunctionCall","src":"15193:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15213:34:103","type":"","value":"ERROR:BUC-019:BUNDLE_NOT_IN_RISK"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15186:6:103"},"nodeType":"YulFunctionCall","src":"15186:62:103"},"nodeType":"YulExpressionStatement","src":"15186:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15268:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15279:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15264:3:103"},"nodeType":"YulFunctionCall","src":"15264:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15284:6:103","type":"","value":"POOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15257:6:103"},"nodeType":"YulFunctionCall","src":"15257:34:103"},"nodeType":"YulExpressionStatement","src":"15257:34:103"},{"nodeType":"YulAssignment","src":"15300:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15312:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15323:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15308:3:103"},"nodeType":"YulFunctionCall","src":"15308:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15300:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7856d8fb31306adef57d12943b55496b08db0cef49b61216ad67a8afc716e628__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15084:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15098:4:103","type":""}],"src":"14933:400:103"},{"body":{"nodeType":"YulBlock","src":"15512:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15529:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15540:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15522:6:103"},"nodeType":"YulFunctionCall","src":"15522:21:103"},"nodeType":"YulExpressionStatement","src":"15522:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15563:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15574:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15559:3:103"},"nodeType":"YulFunctionCall","src":"15559:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15579:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15552:6:103"},"nodeType":"YulFunctionCall","src":"15552:30:103"},"nodeType":"YulExpressionStatement","src":"15552:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15602:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15613:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15598:3:103"},"nodeType":"YulFunctionCall","src":"15598:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15618:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15591:6:103"},"nodeType":"YulFunctionCall","src":"15591:62:103"},"nodeType":"YulExpressionStatement","src":"15591:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15673:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15684:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15669:3:103"},"nodeType":"YulFunctionCall","src":"15669:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15689:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15662:6:103"},"nodeType":"YulFunctionCall","src":"15662:44:103"},"nodeType":"YulExpressionStatement","src":"15662:44:103"},{"nodeType":"YulAssignment","src":"15715:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15738:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15723:3:103"},"nodeType":"YulFunctionCall","src":"15723:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15715:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15489:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15503:4:103","type":""}],"src":"15338:410:103"},{"body":{"nodeType":"YulBlock","src":"15927:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15944:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15955:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15937:6:103"},"nodeType":"YulFunctionCall","src":"15937:21:103"},"nodeType":"YulExpressionStatement","src":"15937:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15989:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15974:3:103"},"nodeType":"YulFunctionCall","src":"15974:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15994:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15967:6:103"},"nodeType":"YulFunctionCall","src":"15967:30:103"},"nodeType":"YulExpressionStatement","src":"15967:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16017:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16028:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16013:3:103"},"nodeType":"YulFunctionCall","src":"16013:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16033:34:103","type":"","value":"ERROR:POL-040:POLICY_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16006:6:103"},"nodeType":"YulFunctionCall","src":"16006:62:103"},"nodeType":"YulExpressionStatement","src":"16006:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16099:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16084:3:103"},"nodeType":"YulFunctionCall","src":"16084:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16104:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16077:6:103"},"nodeType":"YulFunctionCall","src":"16077:32:103"},"nodeType":"YulExpressionStatement","src":"16077:32:103"},{"nodeType":"YulAssignment","src":"16118:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16130:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16141:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16126:3:103"},"nodeType":"YulFunctionCall","src":"16126:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16118:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7c08561cf5ac792dc91430b2a3972e02263132349f58eb870b4f81b5de7584fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15904:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15918:4:103","type":""}],"src":"15753:398:103"},{"body":{"nodeType":"YulBlock","src":"16330:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16347:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16358:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16340:6:103"},"nodeType":"YulFunctionCall","src":"16340:21:103"},"nodeType":"YulExpressionStatement","src":"16340:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16392:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16377:3:103"},"nodeType":"YulFunctionCall","src":"16377:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16397:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16370:6:103"},"nodeType":"YulFunctionCall","src":"16370:30:103"},"nodeType":"YulExpressionStatement","src":"16370:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16431:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16416:3:103"},"nodeType":"YulFunctionCall","src":"16416:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16436:34:103","type":"","value":"ERROR:BUC-052:NO_ACTIVE_POLICIES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16409:6:103"},"nodeType":"YulFunctionCall","src":"16409:62:103"},"nodeType":"YulExpressionStatement","src":"16409:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16491:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16502:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16487:3:103"},"nodeType":"YulFunctionCall","src":"16487:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16507:13:103","type":"","value":"_FOR_BUNDLE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16480:6:103"},"nodeType":"YulFunctionCall","src":"16480:41:103"},"nodeType":"YulExpressionStatement","src":"16480:41:103"},{"nodeType":"YulAssignment","src":"16530:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16553:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16538:3:103"},"nodeType":"YulFunctionCall","src":"16538:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16530:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8d874023565b14265edd0c1a472831bbc0639816bd2e3c506af5ca79b37f4994__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16307:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16321:4:103","type":""}],"src":"16156:407:103"},{"body":{"nodeType":"YulBlock","src":"16742:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16759:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16770:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16752:6:103"},"nodeType":"YulFunctionCall","src":"16752:21:103"},"nodeType":"YulExpressionStatement","src":"16752:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16793:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16804:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16789:3:103"},"nodeType":"YulFunctionCall","src":"16789:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16809:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16782:6:103"},"nodeType":"YulFunctionCall","src":"16782:30:103"},"nodeType":"YulExpressionStatement","src":"16782:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16832:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16843:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16828:3:103"},"nodeType":"YulFunctionCall","src":"16828:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16848:34:103","type":"","value":"ERROR:BOC-074:INITIAL_STATE_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16821:6:103"},"nodeType":"YulFunctionCall","src":"16821:62:103"},"nodeType":"YulExpressionStatement","src":"16821:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16914:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16899:3:103"},"nodeType":"YulFunctionCall","src":"16899:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16919:9:103","type":"","value":"HANDLED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16892:6:103"},"nodeType":"YulFunctionCall","src":"16892:37:103"},"nodeType":"YulExpressionStatement","src":"16892:37:103"},{"nodeType":"YulAssignment","src":"16938:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16950:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16961:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16946:3:103"},"nodeType":"YulFunctionCall","src":"16946:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16938:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_90b0055e92488337515434f01755801bd01b043fd63366b1e22203e0ea972548__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16719:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16733:4:103","type":""}],"src":"16568:403:103"},{"body":{"nodeType":"YulBlock","src":"17150:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17167:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17178:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17160:6:103"},"nodeType":"YulFunctionCall","src":"17160:21:103"},"nodeType":"YulExpressionStatement","src":"17160:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17201:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17212:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17197:3:103"},"nodeType":"YulFunctionCall","src":"17197:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17217:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17190:6:103"},"nodeType":"YulFunctionCall","src":"17190:30:103"},"nodeType":"YulExpressionStatement","src":"17190:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17240:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17251:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17236:3:103"},"nodeType":"YulFunctionCall","src":"17236:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17256:34:103","type":"","value":"ERROR:BUC-031:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17229:6:103"},"nodeType":"YulFunctionCall","src":"17229:62:103"},"nodeType":"YulExpressionStatement","src":"17229:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17311:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17322:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17307:3:103"},"nodeType":"YulFunctionCall","src":"17307:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17327:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17300:6:103"},"nodeType":"YulFunctionCall","src":"17300:33:103"},"nodeType":"YulExpressionStatement","src":"17300:33:103"},{"nodeType":"YulAssignment","src":"17342:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17354:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17365:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17350:3:103"},"nodeType":"YulFunctionCall","src":"17350:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17342:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9d1cfb4ee24f94379bee7fbfee2e22d90b6f0f63a5a71e7d9fe32723d1e19a2b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17127:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17141:4:103","type":""}],"src":"16976:399:103"},{"body":{"nodeType":"YulBlock","src":"17554:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17582:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17564:6:103"},"nodeType":"YulFunctionCall","src":"17564:21:103"},"nodeType":"YulExpressionStatement","src":"17564:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17616:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17601:3:103"},"nodeType":"YulFunctionCall","src":"17601:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17621:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17594:6:103"},"nodeType":"YulFunctionCall","src":"17594:30:103"},"nodeType":"YulExpressionStatement","src":"17594:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17655:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17640:3:103"},"nodeType":"YulFunctionCall","src":"17640:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17660:34:103","type":"","value":"ERROR:BUC-010:BUNDLE_ALREADY_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17633:6:103"},"nodeType":"YulFunctionCall","src":"17633:62:103"},"nodeType":"YulExpressionStatement","src":"17633:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17715:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17726:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17711:3:103"},"nodeType":"YulFunctionCall","src":"17711:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17731:5:103","type":"","value":"STS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17704:6:103"},"nodeType":"YulFunctionCall","src":"17704:33:103"},"nodeType":"YulExpressionStatement","src":"17704:33:103"},{"nodeType":"YulAssignment","src":"17746:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17758:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17769:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17754:3:103"},"nodeType":"YulFunctionCall","src":"17754:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17746:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a6af89170a905e726a8cbfa86235e1ceb54481c43b365eb980d838bfae76a56c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17531:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17545:4:103","type":""}],"src":"17380:399:103"},{"body":{"nodeType":"YulBlock","src":"17958:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17986:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17968:6:103"},"nodeType":"YulFunctionCall","src":"17968:21:103"},"nodeType":"YulExpressionStatement","src":"17968:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18020:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18005:3:103"},"nodeType":"YulFunctionCall","src":"18005:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18025:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17998:6:103"},"nodeType":"YulFunctionCall","src":"17998:30:103"},"nodeType":"YulExpressionStatement","src":"17998:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18048:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18059:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18044:3:103"},"nodeType":"YulFunctionCall","src":"18044:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18064:34:103","type":"","value":"ERROR:POL-030:POLICY_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18037:6:103"},"nodeType":"YulFunctionCall","src":"18037:62:103"},"nodeType":"YulExpressionStatement","src":"18037:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18119:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18130:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18115:3:103"},"nodeType":"YulFunctionCall","src":"18115:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18135:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18108:6:103"},"nodeType":"YulFunctionCall","src":"18108:32:103"},"nodeType":"YulExpressionStatement","src":"18108:32:103"},{"nodeType":"YulAssignment","src":"18149:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18172:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18157:3:103"},"nodeType":"YulFunctionCall","src":"18157:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18149:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac05a7c756dadc02ca183d94e2630362537ab1a69f8694bcb1ec098e9c430dea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17935:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17949:4:103","type":""}],"src":"17784:398:103"},{"body":{"nodeType":"YulBlock","src":"18361:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18378:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18389:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18371:6:103"},"nodeType":"YulFunctionCall","src":"18371:21:103"},"nodeType":"YulExpressionStatement","src":"18371:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18412:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18423:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18408:3:103"},"nodeType":"YulFunctionCall","src":"18408:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18428:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18401:6:103"},"nodeType":"YulFunctionCall","src":"18401:30:103"},"nodeType":"YulExpressionStatement","src":"18401:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18451:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18462:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18447:3:103"},"nodeType":"YulFunctionCall","src":"18447:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18467:34:103","type":"","value":"ERROR:BUC-073:BURNED_IS_FINAL_ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18440:6:103"},"nodeType":"YulFunctionCall","src":"18440:62:103"},"nodeType":"YulExpressionStatement","src":"18440:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18522:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18533:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18518:3:103"},"nodeType":"YulFunctionCall","src":"18518:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18538:5:103","type":"","value":"ATE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18511:6:103"},"nodeType":"YulFunctionCall","src":"18511:33:103"},"nodeType":"YulExpressionStatement","src":"18511:33:103"},{"nodeType":"YulAssignment","src":"18553:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18565:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18576:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18561:3:103"},"nodeType":"YulFunctionCall","src":"18561:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18553:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b2dda52bf0283d27e4ffc8f6319b7fb1aa100314af58bb09bcaaf538af49aecd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18338:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18352:4:103","type":""}],"src":"18187:399:103"},{"body":{"nodeType":"YulBlock","src":"18765:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18782:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18793:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18775:6:103"},"nodeType":"YulFunctionCall","src":"18775:21:103"},"nodeType":"YulExpressionStatement","src":"18775:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18816:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18827:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18812:3:103"},"nodeType":"YulFunctionCall","src":"18812:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18832:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18805:6:103"},"nodeType":"YulFunctionCall","src":"18805:30:103"},"nodeType":"YulExpressionStatement","src":"18805:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18855:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18866:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18851:3:103"},"nodeType":"YulFunctionCall","src":"18851:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18871:34:103","type":"","value":"ERROR:BUC-041:NO_ACTIVE_POLICIES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18844:6:103"},"nodeType":"YulFunctionCall","src":"18844:62:103"},"nodeType":"YulExpressionStatement","src":"18844:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18937:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18922:3:103"},"nodeType":"YulFunctionCall","src":"18922:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18942:13:103","type":"","value":"_FOR_BUNDLE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18915:6:103"},"nodeType":"YulFunctionCall","src":"18915:41:103"},"nodeType":"YulExpressionStatement","src":"18915:41:103"},{"nodeType":"YulAssignment","src":"18965:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18977:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18988:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18973:3:103"},"nodeType":"YulFunctionCall","src":"18973:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18965:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b68fc49ffba85900fde950c14ac8951edad3f3436a673f461dc8a21fb7f4b182__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18742:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18756:4:103","type":""}],"src":"18591:407:103"},{"body":{"nodeType":"YulBlock","src":"19177:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19194:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19205:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19187:6:103"},"nodeType":"YulFunctionCall","src":"19187:21:103"},"nodeType":"YulExpressionStatement","src":"19187:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19228:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19239:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19224:3:103"},"nodeType":"YulFunctionCall","src":"19224:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19244:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19217:6:103"},"nodeType":"YulFunctionCall","src":"19217:30:103"},"nodeType":"YulExpressionStatement","src":"19217:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19267:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19278:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19263:3:103"},"nodeType":"YulFunctionCall","src":"19263:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19283:34:103","type":"","value":"ERROR:BUC-011:BUNDLE_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19256:6:103"},"nodeType":"YulFunctionCall","src":"19256:62:103"},"nodeType":"YulExpressionStatement","src":"19256:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19338:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19349:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19334:3:103"},"nodeType":"YulFunctionCall","src":"19334:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19354:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19327:6:103"},"nodeType":"YulFunctionCall","src":"19327:33:103"},"nodeType":"YulExpressionStatement","src":"19327:33:103"},{"nodeType":"YulAssignment","src":"19369:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19392:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19377:3:103"},"nodeType":"YulFunctionCall","src":"19377:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19369:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_cf35f3e2266f9a8bf680e348616bdf722a2b950e229c31f4953b03b62eef75ef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19154:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19168:4:103","type":""}],"src":"19003:399:103"},{"body":{"nodeType":"YulBlock","src":"19581:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19598:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19609:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19591:6:103"},"nodeType":"YulFunctionCall","src":"19591:21:103"},"nodeType":"YulExpressionStatement","src":"19591:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19632:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19643:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19628:3:103"},"nodeType":"YulFunctionCall","src":"19628:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19648:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19621:6:103"},"nodeType":"YulFunctionCall","src":"19621:30:103"},"nodeType":"YulExpressionStatement","src":"19621:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19682:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19667:3:103"},"nodeType":"YulFunctionCall","src":"19667:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19687:34:103","type":"","value":"ERROR:POL-050:POLICY_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19660:6:103"},"nodeType":"YulFunctionCall","src":"19660:62:103"},"nodeType":"YulExpressionStatement","src":"19660:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19742:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19753:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19738:3:103"},"nodeType":"YulFunctionCall","src":"19738:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19758:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19731:6:103"},"nodeType":"YulFunctionCall","src":"19731:32:103"},"nodeType":"YulExpressionStatement","src":"19731:32:103"},{"nodeType":"YulAssignment","src":"19772:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19784:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19795:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19780:3:103"},"nodeType":"YulFunctionCall","src":"19780:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19772:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d17247b62deb77899a03f5965413c2eceeaf10a19dd096fa96404e4c4e56e423__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19558:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19572:4:103","type":""}],"src":"19407:398:103"},{"body":{"nodeType":"YulBlock","src":"19984:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20001:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20012:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19994:6:103"},"nodeType":"YulFunctionCall","src":"19994:21:103"},"nodeType":"YulExpressionStatement","src":"19994:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20035:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20046:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20031:3:103"},"nodeType":"YulFunctionCall","src":"20031:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20051:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20024:6:103"},"nodeType":"YulFunctionCall","src":"20024:30:103"},"nodeType":"YulExpressionStatement","src":"20024:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20074:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20085:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20070:3:103"},"nodeType":"YulFunctionCall","src":"20070:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20090:34:103","type":"","value":"ERROR:BUC-071:LOCKED_INVALID_TRA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20063:6:103"},"nodeType":"YulFunctionCall","src":"20063:62:103"},"nodeType":"YulExpressionStatement","src":"20063:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20145:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20156:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20141:3:103"},"nodeType":"YulFunctionCall","src":"20141:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20161:9:103","type":"","value":"NSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20134:6:103"},"nodeType":"YulFunctionCall","src":"20134:37:103"},"nodeType":"YulExpressionStatement","src":"20134:37:103"},{"nodeType":"YulAssignment","src":"20180:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20203:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20188:3:103"},"nodeType":"YulFunctionCall","src":"20188:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20180:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d5c1965b929932d1ff278545ca669b4260ba119d29824ba96b9562d9415628fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19961:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19975:4:103","type":""}],"src":"19810:403:103"},{"body":{"nodeType":"YulBlock","src":"20392:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20409:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20420:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20402:6:103"},"nodeType":"YulFunctionCall","src":"20402:21:103"},"nodeType":"YulExpressionStatement","src":"20402:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20443:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20454:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20439:3:103"},"nodeType":"YulFunctionCall","src":"20439:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20459:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20432:6:103"},"nodeType":"YulFunctionCall","src":"20432:30:103"},"nodeType":"YulExpressionStatement","src":"20432:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20493:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20478:3:103"},"nodeType":"YulFunctionCall","src":"20478:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20498:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20471:6:103"},"nodeType":"YulFunctionCall","src":"20471:62:103"},"nodeType":"YulExpressionStatement","src":"20471:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20553:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20564:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20549:3:103"},"nodeType":"YulFunctionCall","src":"20549:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20569:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20542:6:103"},"nodeType":"YulFunctionCall","src":"20542:41:103"},"nodeType":"YulExpressionStatement","src":"20542:41:103"},{"nodeType":"YulAssignment","src":"20592:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20615:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20600:3:103"},"nodeType":"YulFunctionCall","src":"20600:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20592:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20369:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20383:4:103","type":""}],"src":"20218:407:103"},{"body":{"nodeType":"YulBlock","src":"20804:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20821:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20832:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20814:6:103"},"nodeType":"YulFunctionCall","src":"20814:21:103"},"nodeType":"YulExpressionStatement","src":"20814:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20855:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20866:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20851:3:103"},"nodeType":"YulFunctionCall","src":"20851:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20871:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20844:6:103"},"nodeType":"YulFunctionCall","src":"20844:30:103"},"nodeType":"YulExpressionStatement","src":"20844:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20894:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20905:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20890:3:103"},"nodeType":"YulFunctionCall","src":"20890:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20910:34:103","type":"","value":"ERROR:BUC-003:BUNDLE_BURNED_OR_C"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20883:6:103"},"nodeType":"YulFunctionCall","src":"20883:62:103"},"nodeType":"YulExpressionStatement","src":"20883:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20965:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20976:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20961:3:103"},"nodeType":"YulFunctionCall","src":"20961:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20981:7:103","type":"","value":"LOSED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20954:6:103"},"nodeType":"YulFunctionCall","src":"20954:35:103"},"nodeType":"YulExpressionStatement","src":"20954:35:103"},{"nodeType":"YulAssignment","src":"20998:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21010:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21021:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21006:3:103"},"nodeType":"YulFunctionCall","src":"21006:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20998:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dc49a30c0f34e650ca8a70d3c57306b681ae1a5988f74df68b029f46527aaa14__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20781:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20795:4:103","type":""}],"src":"20630:401:103"},{"body":{"nodeType":"YulBlock","src":"21210:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21227:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21238:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21220:6:103"},"nodeType":"YulFunctionCall","src":"21220:21:103"},"nodeType":"YulExpressionStatement","src":"21220:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21261:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21272:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21257:3:103"},"nodeType":"YulFunctionCall","src":"21257:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21277:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21250:6:103"},"nodeType":"YulFunctionCall","src":"21250:30:103"},"nodeType":"YulExpressionStatement","src":"21250:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21300:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21311:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21296:3:103"},"nodeType":"YulFunctionCall","src":"21296:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21316:34:103","type":"","value":"ERROR:BUC-015:BUNDLE_WITH_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21289:6:103"},"nodeType":"YulFunctionCall","src":"21289:62:103"},"nodeType":"YulExpressionStatement","src":"21289:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21371:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21382:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21367:3:103"},"nodeType":"YulFunctionCall","src":"21367:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21387:11:103","type":"","value":"_POLICIES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21360:6:103"},"nodeType":"YulFunctionCall","src":"21360:39:103"},"nodeType":"YulExpressionStatement","src":"21360:39:103"},{"nodeType":"YulAssignment","src":"21408:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21431:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21416:3:103"},"nodeType":"YulFunctionCall","src":"21416:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21408:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dfee2d08a237128ef26128bb3ed2c011ce3e51b3f04253c27af0b6459a36cf46__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21187:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21201:4:103","type":""}],"src":"21036:405:103"},{"body":{"nodeType":"YulBlock","src":"21620:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21648:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21630:6:103"},"nodeType":"YulFunctionCall","src":"21630:21:103"},"nodeType":"YulExpressionStatement","src":"21630:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21682:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21667:3:103"},"nodeType":"YulFunctionCall","src":"21667:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21687:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21660:6:103"},"nodeType":"YulFunctionCall","src":"21660:30:103"},"nodeType":"YulExpressionStatement","src":"21660:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21710:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21721:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21706:3:103"},"nodeType":"YulFunctionCall","src":"21706:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21726:33:103","type":"","value":"ERROR:BUC-016:BUNDLE_NOT_CLOSED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21699:6:103"},"nodeType":"YulFunctionCall","src":"21699:61:103"},"nodeType":"YulExpressionStatement","src":"21699:61:103"},{"nodeType":"YulAssignment","src":"21769:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21792:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21777:3:103"},"nodeType":"YulFunctionCall","src":"21777:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21769:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e68c04cdb41f689d8d2e6a5d0c4084a8393fecccce8f7b586a8a6e10213866a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21597:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21611:4:103","type":""}],"src":"21446:355:103"},{"body":{"nodeType":"YulBlock","src":"21980:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21997:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22008:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21990:6:103"},"nodeType":"YulFunctionCall","src":"21990:21:103"},"nodeType":"YulExpressionStatement","src":"21990:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22031:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22042:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22027:3:103"},"nodeType":"YulFunctionCall","src":"22027:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22047:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22020:6:103"},"nodeType":"YulFunctionCall","src":"22020:30:103"},"nodeType":"YulExpressionStatement","src":"22020:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22070:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22081:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22066:3:103"},"nodeType":"YulFunctionCall","src":"22066:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22086:33:103","type":"","value":"ERROR:BUC-021:BUNDLE_NOT_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22059:6:103"},"nodeType":"YulFunctionCall","src":"22059:61:103"},"nodeType":"YulExpressionStatement","src":"22059:61:103"},{"nodeType":"YulAssignment","src":"22129:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22152:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22137:3:103"},"nodeType":"YulFunctionCall","src":"22137:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22129:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ea3e85c9558b3cb99a10a739823ff71f730cd0abf0b8a1db4cbcca809539be50__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21957:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21971:4:103","type":""}],"src":"21806:355:103"},{"body":{"nodeType":"YulBlock","src":"22340:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22357:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22368:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22350:6:103"},"nodeType":"YulFunctionCall","src":"22350:21:103"},"nodeType":"YulExpressionStatement","src":"22350:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22391:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22402:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22387:3:103"},"nodeType":"YulFunctionCall","src":"22387:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22407:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22380:6:103"},"nodeType":"YulFunctionCall","src":"22380:30:103"},"nodeType":"YulExpressionStatement","src":"22380:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22430:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22441:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22426:3:103"},"nodeType":"YulFunctionCall","src":"22426:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22446:34:103","type":"","value":"ERROR:BUC-072:CLOSED_INVALID_TRA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22419:6:103"},"nodeType":"YulFunctionCall","src":"22419:62:103"},"nodeType":"YulExpressionStatement","src":"22419:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22501:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22512:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22497:3:103"},"nodeType":"YulFunctionCall","src":"22497:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22517:9:103","type":"","value":"NSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22490:6:103"},"nodeType":"YulFunctionCall","src":"22490:37:103"},"nodeType":"YulExpressionStatement","src":"22490:37:103"},{"nodeType":"YulAssignment","src":"22536:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22548:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22559:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22544:3:103"},"nodeType":"YulFunctionCall","src":"22544:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22536:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f6f938bbd1284ec77e45bef46484f59fa0bcba98ae32543cf1059a51f233eec0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22317:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22331:4:103","type":""}],"src":"22166:403:103"},{"body":{"nodeType":"YulBlock","src":"22723:931:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22740:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22751:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22733:6:103"},"nodeType":"YulFunctionCall","src":"22733:21:103"},"nodeType":"YulExpressionStatement","src":"22733:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22774:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22785:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22770:3:103"},"nodeType":"YulFunctionCall","src":"22770:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22796:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22790:5:103"},"nodeType":"YulFunctionCall","src":"22790:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22763:6:103"},"nodeType":"YulFunctionCall","src":"22763:41:103"},"nodeType":"YulExpressionStatement","src":"22763:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22824:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22835:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22820:3:103"},"nodeType":"YulFunctionCall","src":"22820:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22850:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22858:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22846:3:103"},"nodeType":"YulFunctionCall","src":"22846:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22840:5:103"},"nodeType":"YulFunctionCall","src":"22840:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22813:6:103"},"nodeType":"YulFunctionCall","src":"22813:50:103"},"nodeType":"YulExpressionStatement","src":"22813:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22883:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22894:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22879:3:103"},"nodeType":"YulFunctionCall","src":"22879:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22909:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22917:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22905:3:103"},"nodeType":"YulFunctionCall","src":"22905:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22899:5:103"},"nodeType":"YulFunctionCall","src":"22899:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22872:6:103"},"nodeType":"YulFunctionCall","src":"22872:50:103"},"nodeType":"YulExpressionStatement","src":"22872:50:103"},{"nodeType":"YulVariableDeclaration","src":"22931:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22961:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22969:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22957:3:103"},"nodeType":"YulFunctionCall","src":"22957:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22951:5:103"},"nodeType":"YulFunctionCall","src":"22951:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"22935:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"23010:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23028:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23039:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23024:3:103"},"nodeType":"YulFunctionCall","src":"23024:19:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"22982:27:103"},"nodeType":"YulFunctionCall","src":"22982:62:103"},"nodeType":"YulExpressionStatement","src":"22982:62:103"},{"nodeType":"YulVariableDeclaration","src":"23053:45:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23085:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23093:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23081:3:103"},"nodeType":"YulFunctionCall","src":"23081:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23075:5:103"},"nodeType":"YulFunctionCall","src":"23075:23:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"23057:14:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23107:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"23117:6:103","type":"","value":"0x0140"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"23111:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23143:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23154:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23139:3:103"},"nodeType":"YulFunctionCall","src":"23139:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"23160:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23132:6:103"},"nodeType":"YulFunctionCall","src":"23132:31:103"},"nodeType":"YulExpressionStatement","src":"23132:31:103"},{"nodeType":"YulVariableDeclaration","src":"23172:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"23203:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23223:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23234:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23219:3:103"},"nodeType":"YulFunctionCall","src":"23219:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23186:16:103"},"nodeType":"YulFunctionCall","src":"23186:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"23176:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23259:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23270:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23255:3:103"},"nodeType":"YulFunctionCall","src":"23255:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23286:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23294:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23282:3:103"},"nodeType":"YulFunctionCall","src":"23282:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23276:5:103"},"nodeType":"YulFunctionCall","src":"23276:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23248:6:103"},"nodeType":"YulFunctionCall","src":"23248:52:103"},"nodeType":"YulExpressionStatement","src":"23248:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23320:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23331:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23316:3:103"},"nodeType":"YulFunctionCall","src":"23316:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23347:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23355:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23343:3:103"},"nodeType":"YulFunctionCall","src":"23343:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23337:5:103"},"nodeType":"YulFunctionCall","src":"23337:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23309:6:103"},"nodeType":"YulFunctionCall","src":"23309:52:103"},"nodeType":"YulExpressionStatement","src":"23309:52:103"},{"nodeType":"YulVariableDeclaration","src":"23370:33:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23390:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23398:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23386:3:103"},"nodeType":"YulFunctionCall","src":"23386:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23380:5:103"},"nodeType":"YulFunctionCall","src":"23380:23:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"23374:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23412:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"23422:3:103","type":"","value":"256"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"23416:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23445:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"23456:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23441:3:103"},"nodeType":"YulFunctionCall","src":"23441:18:103"},{"name":"_2","nodeType":"YulIdentifier","src":"23461:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23434:6:103"},"nodeType":"YulFunctionCall","src":"23434:30:103"},"nodeType":"YulExpressionStatement","src":"23434:30:103"},{"nodeType":"YulVariableDeclaration","src":"23473:32:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23493:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"23501:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23489:3:103"},"nodeType":"YulFunctionCall","src":"23489:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23483:5:103"},"nodeType":"YulFunctionCall","src":"23483:22:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"23477:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"23514:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"23524:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"23518:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23547:9:103"},{"name":"_5","nodeType":"YulIdentifier","src":"23558:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23543:3:103"},"nodeType":"YulFunctionCall","src":"23543:18:103"},{"name":"_4","nodeType":"YulIdentifier","src":"23563:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23536:6:103"},"nodeType":"YulFunctionCall","src":"23536:30:103"},"nodeType":"YulExpressionStatement","src":"23536:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23586:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"23597:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23582:3:103"},"nodeType":"YulFunctionCall","src":"23582:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23612:6:103"},{"name":"_5","nodeType":"YulIdentifier","src":"23620:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23608:3:103"},"nodeType":"YulFunctionCall","src":"23608:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23602:5:103"},"nodeType":"YulFunctionCall","src":"23602:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23575:6:103"},"nodeType":"YulFunctionCall","src":"23575:50:103"},"nodeType":"YulExpressionStatement","src":"23575:50:103"},{"nodeType":"YulAssignment","src":"23634:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"23642:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23634:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22692:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22703:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22714:4:103","type":""}],"src":"22574:1080:103"},{"body":{"nodeType":"YulBlock","src":"23760:76:103","statements":[{"nodeType":"YulAssignment","src":"23770:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23782:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23793:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23778:3:103"},"nodeType":"YulFunctionCall","src":"23778:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23770:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23812:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"23823:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23805:6:103"},"nodeType":"YulFunctionCall","src":"23805:25:103"},"nodeType":"YulExpressionStatement","src":"23805:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23729:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23740:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23751:4:103","type":""}],"src":"23659:177:103"},{"body":{"nodeType":"YulBlock","src":"23970:145:103","statements":[{"nodeType":"YulAssignment","src":"23980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24003:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23988:3:103"},"nodeType":"YulFunctionCall","src":"23988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"24033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24015:6:103"},"nodeType":"YulFunctionCall","src":"24015:25:103"},"nodeType":"YulExpressionStatement","src":"24015:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24060:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24071:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24056:3:103"},"nodeType":"YulFunctionCall","src":"24056:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24080:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24096:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"24101:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24092:3:103"},"nodeType":"YulFunctionCall","src":"24092:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"24105:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24088:3:103"},"nodeType":"YulFunctionCall","src":"24088:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24076:3:103"},"nodeType":"YulFunctionCall","src":"24076:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24049:6:103"},"nodeType":"YulFunctionCall","src":"24049:60:103"},"nodeType":"YulExpressionStatement","src":"24049:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23931:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"23942:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23961:4:103","type":""}],"src":"23841:274:103"},{"body":{"nodeType":"YulBlock","src":"24305:232:103","statements":[{"nodeType":"YulAssignment","src":"24315:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24327:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24338:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24323:3:103"},"nodeType":"YulFunctionCall","src":"24323:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24315:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24358:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"24369:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24351:6:103"},"nodeType":"YulFunctionCall","src":"24351:25:103"},"nodeType":"YulExpressionStatement","src":"24351:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24407:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24392:3:103"},"nodeType":"YulFunctionCall","src":"24392:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"24416:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24432:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"24437:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24428:3:103"},"nodeType":"YulFunctionCall","src":"24428:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"24441:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24424:3:103"},"nodeType":"YulFunctionCall","src":"24424:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24412:3:103"},"nodeType":"YulFunctionCall","src":"24412:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24385:6:103"},"nodeType":"YulFunctionCall","src":"24385:60:103"},"nodeType":"YulExpressionStatement","src":"24385:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24476:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24461:3:103"},"nodeType":"YulFunctionCall","src":"24461:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"24481:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24454:6:103"},"nodeType":"YulFunctionCall","src":"24454:34:103"},"nodeType":"YulExpressionStatement","src":"24454:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24508:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24519:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24504:3:103"},"nodeType":"YulFunctionCall","src":"24504:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"24524:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24497:6:103"},"nodeType":"YulFunctionCall","src":"24497:34:103"},"nodeType":"YulExpressionStatement","src":"24497:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24250:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"24261:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"24269:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24277:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24285:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24296:4:103","type":""}],"src":"24120:417:103"},{"body":{"nodeType":"YulBlock","src":"24699:162:103","statements":[{"nodeType":"YulAssignment","src":"24709:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24721:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24732:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24717:3:103"},"nodeType":"YulFunctionCall","src":"24717:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24709:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24751:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"24762:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24744:6:103"},"nodeType":"YulFunctionCall","src":"24744:25:103"},"nodeType":"YulExpressionStatement","src":"24744:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24789:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24800:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24785:3:103"},"nodeType":"YulFunctionCall","src":"24785:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"24805:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24778:6:103"},"nodeType":"YulFunctionCall","src":"24778:34:103"},"nodeType":"YulExpressionStatement","src":"24778:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24832:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24843:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24828:3:103"},"nodeType":"YulFunctionCall","src":"24828:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"24848:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24821:6:103"},"nodeType":"YulFunctionCall","src":"24821:34:103"},"nodeType":"YulExpressionStatement","src":"24821:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24652:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"24663:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"24671:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24679:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24690:4:103","type":""}],"src":"24542:319:103"},{"body":{"nodeType":"YulBlock","src":"25051:206:103","statements":[{"nodeType":"YulAssignment","src":"25061:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25073:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25084:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25069:3:103"},"nodeType":"YulFunctionCall","src":"25069:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25061:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25104:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"25115:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25097:6:103"},"nodeType":"YulFunctionCall","src":"25097:25:103"},"nodeType":"YulExpressionStatement","src":"25097:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25142:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25153:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25138:3:103"},"nodeType":"YulFunctionCall","src":"25138:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"25158:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25131:6:103"},"nodeType":"YulFunctionCall","src":"25131:34:103"},"nodeType":"YulExpressionStatement","src":"25131:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25185:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25196:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25181:3:103"},"nodeType":"YulFunctionCall","src":"25181:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"25201:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25174:6:103"},"nodeType":"YulFunctionCall","src":"25174:34:103"},"nodeType":"YulExpressionStatement","src":"25174:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25228:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25239:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25224:3:103"},"nodeType":"YulFunctionCall","src":"25224:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"25244:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25217:6:103"},"nodeType":"YulFunctionCall","src":"25217:34:103"},"nodeType":"YulExpressionStatement","src":"25217:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256_t_uint256__to_t_uint256_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24996:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25007:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25015:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25023:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25031:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25042:4:103","type":""}],"src":"24866:391:103"},{"body":{"nodeType":"YulBlock","src":"25447:204:103","statements":[{"nodeType":"YulAssignment","src":"25457:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25469:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25480:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25465:3:103"},"nodeType":"YulFunctionCall","src":"25465:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25457:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25499:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"25510:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25492:6:103"},"nodeType":"YulFunctionCall","src":"25492:25:103"},"nodeType":"YulExpressionStatement","src":"25492:25:103"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"25554:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25566:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25577:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25562:3:103"},"nodeType":"YulFunctionCall","src":"25562:18:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"25526:27:103"},"nodeType":"YulFunctionCall","src":"25526:55:103"},"nodeType":"YulExpressionStatement","src":"25526:55:103"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"25618:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25630:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25641:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25626:3:103"},"nodeType":"YulFunctionCall","src":"25626:18:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"25590:27:103"},"nodeType":"YulFunctionCall","src":"25590:55:103"},"nodeType":"YulExpressionStatement","src":"25590:55:103"}]},"name":"abi_encode_tuple_t_uint256_t_enum$_BundleState_$4914_t_enum$_BundleState_$4914__to_t_uint256_t_uint8_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25400:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25411:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25419:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25427:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25438:4:103","type":""}],"src":"25262:389:103"},{"body":{"nodeType":"YulBlock","src":"25883:297:103","statements":[{"nodeType":"YulAssignment","src":"25893:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25905:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25916:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25901:3:103"},"nodeType":"YulFunctionCall","src":"25901:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25893:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25936:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"25947:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25929:6:103"},"nodeType":"YulFunctionCall","src":"25929:25:103"},"nodeType":"YulExpressionStatement","src":"25929:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25974:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25985:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25970:3:103"},"nodeType":"YulFunctionCall","src":"25970:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"25990:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25963:6:103"},"nodeType":"YulFunctionCall","src":"25963:34:103"},"nodeType":"YulExpressionStatement","src":"25963:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26017:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26028:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26013:3:103"},"nodeType":"YulFunctionCall","src":"26013:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"26037:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26053:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"26058:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26049:3:103"},"nodeType":"YulFunctionCall","src":"26049:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"26062:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26045:3:103"},"nodeType":"YulFunctionCall","src":"26045:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26033:3:103"},"nodeType":"YulFunctionCall","src":"26033:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26006:6:103"},"nodeType":"YulFunctionCall","src":"26006:60:103"},"nodeType":"YulExpressionStatement","src":"26006:60:103"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"26103:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26115:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26126:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26111:3:103"},"nodeType":"YulFunctionCall","src":"26111:18:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"26075:27:103"},"nodeType":"YulFunctionCall","src":"26075:55:103"},"nodeType":"YulExpressionStatement","src":"26075:55:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26150:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26161:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26146:3:103"},"nodeType":"YulFunctionCall","src":"26146:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"26167:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26139:6:103"},"nodeType":"YulFunctionCall","src":"26139:35:103"},"nodeType":"YulExpressionStatement","src":"26139:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address_t_enum$_BundleState_$4914_t_uint256__to_t_uint256_t_uint256_t_address_t_uint8_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25820:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"25831:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"25839:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"25847:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25855:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25863:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25874:4:103","type":""}],"src":"25656:524:103"},{"body":{"nodeType":"YulBlock","src":"26230:230:103","statements":[{"nodeType":"YulAssignment","src":"26240:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26256:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"26250:5:103"},"nodeType":"YulFunctionCall","src":"26250:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"26240:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"26268:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"26290:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"26306:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"26312:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26302:3:103"},"nodeType":"YulFunctionCall","src":"26302:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26321:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"26317:3:103"},"nodeType":"YulFunctionCall","src":"26317:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26298:3:103"},"nodeType":"YulFunctionCall","src":"26298:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26286:3:103"},"nodeType":"YulFunctionCall","src":"26286:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"26272:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"26401:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"26403:16:103"},"nodeType":"YulFunctionCall","src":"26403:18:103"},"nodeType":"YulExpressionStatement","src":"26403:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"26344:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"26356:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26341:2:103"},"nodeType":"YulFunctionCall","src":"26341:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"26380:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"26392:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26377:2:103"},"nodeType":"YulFunctionCall","src":"26377:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"26338:2:103"},"nodeType":"YulFunctionCall","src":"26338:62:103"},"nodeType":"YulIf","src":"26335:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26439:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"26443:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26432:6:103"},"nodeType":"YulFunctionCall","src":"26432:22:103"},"nodeType":"YulExpressionStatement","src":"26432:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"26210:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"26219:6:103","type":""}],"src":"26185:275:103"},{"body":{"nodeType":"YulBlock","src":"26513:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"26540:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"26542:16:103"},"nodeType":"YulFunctionCall","src":"26542:18:103"},"nodeType":"YulExpressionStatement","src":"26542:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26529:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"26536:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"26532:3:103"},"nodeType":"YulFunctionCall","src":"26532:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26526:2:103"},"nodeType":"YulFunctionCall","src":"26526:13:103"},"nodeType":"YulIf","src":"26523:2:103"},{"nodeType":"YulAssignment","src":"26571:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26582:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"26585:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26578:3:103"},"nodeType":"YulFunctionCall","src":"26578:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"26571:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"26496:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"26499:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"26505:3:103","type":""}],"src":"26465:128:103"},{"body":{"nodeType":"YulBlock","src":"26647:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"26669:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"26671:16:103"},"nodeType":"YulFunctionCall","src":"26671:18:103"},"nodeType":"YulExpressionStatement","src":"26671:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26663:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"26666:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26660:2:103"},"nodeType":"YulFunctionCall","src":"26660:8:103"},"nodeType":"YulIf","src":"26657:2:103"},{"nodeType":"YulAssignment","src":"26700:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26712:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"26715:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26708:3:103"},"nodeType":"YulFunctionCall","src":"26708:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"26700:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"26629:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"26632:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"26638:4:103","type":""}],"src":"26598:125:103"},{"body":{"nodeType":"YulBlock","src":"26781:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"26791:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"26800:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"26795:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"26860:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"26885:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"26890:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26881:3:103"},"nodeType":"YulFunctionCall","src":"26881:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"26904:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"26909:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26900:3:103"},"nodeType":"YulFunctionCall","src":"26900:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"26894:5:103"},"nodeType":"YulFunctionCall","src":"26894:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26874:6:103"},"nodeType":"YulFunctionCall","src":"26874:39:103"},"nodeType":"YulExpressionStatement","src":"26874:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26821:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"26824:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26818:2:103"},"nodeType":"YulFunctionCall","src":"26818:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"26832:19:103","statements":[{"nodeType":"YulAssignment","src":"26834:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26843:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"26846:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26839:3:103"},"nodeType":"YulFunctionCall","src":"26839:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"26834:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"26814:3:103","statements":[]},"src":"26810:113:103"},{"body":{"nodeType":"YulBlock","src":"26949:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"26962:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"26967:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26958:3:103"},"nodeType":"YulFunctionCall","src":"26958:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"26976:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26951:6:103"},"nodeType":"YulFunctionCall","src":"26951:27:103"},"nodeType":"YulExpressionStatement","src":"26951:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26938:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"26941:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26935:2:103"},"nodeType":"YulFunctionCall","src":"26935:13:103"},"nodeType":"YulIf","src":"26932:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"26759:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"26764:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"26769:6:103","type":""}],"src":"26728:258:103"},{"body":{"nodeType":"YulBlock","src":"27046:325:103","statements":[{"nodeType":"YulAssignment","src":"27056:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"27070:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"27076:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"27066:3:103"},"nodeType":"YulFunctionCall","src":"27066:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"27056:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"27087:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"27117:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"27123:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27113:3:103"},"nodeType":"YulFunctionCall","src":"27113:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"27091:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"27164:31:103","statements":[{"nodeType":"YulAssignment","src":"27166:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"27180:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"27188:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27176:3:103"},"nodeType":"YulFunctionCall","src":"27176:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"27166:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"27144:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27137:6:103"},"nodeType":"YulFunctionCall","src":"27137:26:103"},"nodeType":"YulIf","src":"27134:2:103"},{"body":{"nodeType":"YulBlock","src":"27254:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27275:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27282:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"27287:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27278:3:103"},"nodeType":"YulFunctionCall","src":"27278:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27268:6:103"},"nodeType":"YulFunctionCall","src":"27268:31:103"},"nodeType":"YulExpressionStatement","src":"27268:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27319:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"27322:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27312:6:103"},"nodeType":"YulFunctionCall","src":"27312:15:103"},"nodeType":"YulExpressionStatement","src":"27312:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27347:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27350:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27340:6:103"},"nodeType":"YulFunctionCall","src":"27340:15:103"},"nodeType":"YulExpressionStatement","src":"27340:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"27210:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"27233:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"27241:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27230:2:103"},"nodeType":"YulFunctionCall","src":"27230:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27207:2:103"},"nodeType":"YulFunctionCall","src":"27207:38:103"},"nodeType":"YulIf","src":"27204:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"27026:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"27035:6:103","type":""}],"src":"26991:380:103"},{"body":{"nodeType":"YulBlock","src":"27423:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"27454:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"27456:16:103"},"nodeType":"YulFunctionCall","src":"27456:18:103"},"nodeType":"YulExpressionStatement","src":"27456:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27439:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27450:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"27446:3:103"},"nodeType":"YulFunctionCall","src":"27446:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27436:2:103"},"nodeType":"YulFunctionCall","src":"27436:17:103"},"nodeType":"YulIf","src":"27433:2:103"},{"nodeType":"YulAssignment","src":"27485:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27496:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"27503:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27492:3:103"},"nodeType":"YulFunctionCall","src":"27492:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"27485:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27405:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"27415:3:103","type":""}],"src":"27376:135:103"},{"body":{"nodeType":"YulBlock","src":"27548:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27565:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27572:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"27577:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27568:3:103"},"nodeType":"YulFunctionCall","src":"27568:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27558:6:103"},"nodeType":"YulFunctionCall","src":"27558:31:103"},"nodeType":"YulExpressionStatement","src":"27558:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27605:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"27608:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27598:6:103"},"nodeType":"YulFunctionCall","src":"27598:15:103"},"nodeType":"YulExpressionStatement","src":"27598:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27629:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27632:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27622:6:103"},"nodeType":"YulFunctionCall","src":"27622:15:103"},"nodeType":"YulExpressionStatement","src":"27622:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"27516:127:103"},{"body":{"nodeType":"YulBlock","src":"27680:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27697:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27704:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"27709:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27700:3:103"},"nodeType":"YulFunctionCall","src":"27700:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27690:6:103"},"nodeType":"YulFunctionCall","src":"27690:31:103"},"nodeType":"YulExpressionStatement","src":"27690:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27737:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"27740:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27730:6:103"},"nodeType":"YulFunctionCall","src":"27730:15:103"},"nodeType":"YulExpressionStatement","src":"27730:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27761:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27764:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27754:6:103"},"nodeType":"YulFunctionCall","src":"27754:15:103"},"nodeType":"YulExpressionStatement","src":"27754:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"27648:127:103"},{"body":{"nodeType":"YulBlock","src":"27825:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"27889:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27898:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27901:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27891:6:103"},"nodeType":"YulFunctionCall","src":"27891:12:103"},"nodeType":"YulExpressionStatement","src":"27891:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27848:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27859:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27874:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"27879:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27870:3:103"},"nodeType":"YulFunctionCall","src":"27870:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"27883:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27866:3:103"},"nodeType":"YulFunctionCall","src":"27866:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27855:3:103"},"nodeType":"YulFunctionCall","src":"27855:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27845:2:103"},"nodeType":"YulFunctionCall","src":"27845:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27838:6:103"},"nodeType":"YulFunctionCall","src":"27838:50:103"},"nodeType":"YulIf","src":"27835:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27814:5:103","type":""}],"src":"27780:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value4, value4) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value4, value4) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value4, value4) }\n value2 := add(_2, 32)\n value3 := length\n value4 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_BundleState(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_BundleToken_$28751__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_BundleState_$4914__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_BundleState(value0, headStart)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_03e06f22613c7e93a2c0293d2431263b515ac3c8de79433e162399c9d978c6da__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:BUC-045:CAPITAL_TOO_LOW\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0f7e878f103e4e81471a67c70bb5acfc513b47b809c34428480adee650fd472b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 59)\n mstore(add(headStart, 64), \"ERROR:BUC-023:INCREMENTAL_COLLAT\")\n mstore(add(headStart, 96), \"ERALIZATION_NOT_IMPLEMENTED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_18e88bfd32eca027f106fb862d7e55871ea316361090327a612bfb4dfe3f0755__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-060:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1dddbb0de5d7844609928e43cf681e6d3461371d25dd2fe6e10bde5404e8a51c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:BUC-044:BUNDLE_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1f0e986b57b056403cfa995705a568caff60bf8952514def6e4e10f0b8be0363__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:BUC-022:CAPACITY_TOO_LOW\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_21c208e0ee80cc3a94bf9c14b14ba802f5415c77d896f3678d2b2e4e18a9fdeb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:BUC-014:CAPACITY_OR_BALANC\")\n mstore(add(headStart, 96), \"E_TOO_LOW\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_23c15b355ac659e6efa849a6211bec479f57808999aa963c7b0feaa5cc832745__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-020:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2e1494ff589237f5b43eee9b5f76fa574bdf53755720949c3bbf80d7f7047647__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:BUC-047:BALANCE_TOO_LOW\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_34c2d809984edcd3108df93e41438c107c75d7c168211713e77a185c157022f0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"ERROR:BUC-042:COLLATERAL_INSUFFI\")\n mstore(add(headStart, 96), \"CIENT_FOR_POLICY\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4194f84ab3a903bd197fb67924a3a7daa9e6613ff1e3b7fc1fb4fffc1258eed5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-002:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_476d68cd1c40602068b3ee7843f94973d1216d46b2eed8d0cd41db8cb728d4b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:BUC-046:LOCKED_CAPITAL_TOO\")\n mstore(add(headStart, 96), \"_LOW\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_476d7bdb29f083f2ebfc1b7face76d9f76a751b84204921dae4a5245b351756d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:BUC-001:NOT_RISKPOOL_SERVI\")\n mstore(add(headStart, 96), \"CE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4c8d28aba0b55c77dc14995621b19dd76d0dd4fc213e18d9e4f16eec0d3302e7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-051:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4e3999515467d51db7d3efc320b4632f965fd637f4434d0cd56865c0258932e1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:BUC-017:BUNDLE_HAS_BALANCE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_51098105866c55020f052d2f0c7132465beb1923abe3fed4a93163d00ae443f5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:BUC-012:BUNDLE_CLOSED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_57e2fa2e1f46bf1826c5847f0b8b0e2dfce8ed4b21dd5b3ef33697380369b0d0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:BUC-070:ACTIVE_INVALID_TRA\")\n mstore(add(headStart, 96), \"NSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_677000cd6030ee367c696ca46253760a7b00f48b537add2d4517030ec068929f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-043:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_750d48e8d1549f6e00eaa45d8b819215fd3f4c5e8b847763cb675c2a72ed0664__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-013:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_77814e7a28acd311f6561f4571dfa56fd4af89762a0ef5863e6c33e0835c7391__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"PANIC:BUC-053:UNLOCK_CAPITAL_TOO\")\n mstore(add(headStart, 96), \"_BIG\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7856d8fb31306adef57d12943b55496b08db0cef49b61216ad67a8afc716e628__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:BUC-019:BUNDLE_NOT_IN_RISK\")\n mstore(add(headStart, 96), \"POOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7c08561cf5ac792dc91430b2a3972e02263132349f58eb870b4f81b5de7584fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-040:POLICY_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8d874023565b14265edd0c1a472831bbc0639816bd2e3c506af5ca79b37f4994__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:BUC-052:NO_ACTIVE_POLICIES\")\n mstore(add(headStart, 96), \"_FOR_BUNDLE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_90b0055e92488337515434f01755801bd01b043fd63366b1e22203e0ea972548__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:BOC-074:INITIAL_STATE_NOT_\")\n mstore(add(headStart, 96), \"HANDLED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9d1cfb4ee24f94379bee7fbfee2e22d90b6f0f63a5a71e7d9fe32723d1e19a2b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-031:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a6af89170a905e726a8cbfa86235e1ceb54481c43b365eb980d838bfae76a56c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-010:BUNDLE_ALREADY_EXI\")\n mstore(add(headStart, 96), \"STS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ac05a7c756dadc02ca183d94e2630362537ab1a69f8694bcb1ec098e9c430dea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-030:POLICY_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b2dda52bf0283d27e4ffc8f6319b7fb1aa100314af58bb09bcaaf538af49aecd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-073:BURNED_IS_FINAL_ST\")\n mstore(add(headStart, 96), \"ATE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b68fc49ffba85900fde950c14ac8951edad3f3436a673f461dc8a21fb7f4b182__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:BUC-041:NO_ACTIVE_POLICIES\")\n mstore(add(headStart, 96), \"_FOR_BUNDLE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_cf35f3e2266f9a8bf680e348616bdf722a2b950e229c31f4953b03b62eef75ef__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:BUC-011:BUNDLE_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d17247b62deb77899a03f5965413c2eceeaf10a19dd096fa96404e4c4e56e423__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-050:POLICY_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d5c1965b929932d1ff278545ca669b4260ba119d29824ba96b9562d9415628fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:BUC-071:LOCKED_INVALID_TRA\")\n mstore(add(headStart, 96), \"NSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_dc49a30c0f34e650ca8a70d3c57306b681ae1a5988f74df68b029f46527aaa14__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:BUC-003:BUNDLE_BURNED_OR_C\")\n mstore(add(headStart, 96), \"LOSED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_dfee2d08a237128ef26128bb3ed2c011ce3e51b3f04253c27af0b6459a36cf46__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:BUC-015:BUNDLE_WITH_ACTIVE\")\n mstore(add(headStart, 96), \"_POLICIES\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e68c04cdb41f689d8d2e6a5d0c4084a8393fecccce8f7b586a8a6e10213866a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:BUC-016:BUNDLE_NOT_CLOSED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ea3e85c9558b3cb99a10a739823ff71f730cd0abf0b8a1db4cbcca809539be50__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:BUC-021:BUNDLE_NOT_ACTIVE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f6f938bbd1284ec77e45bef46484f59fa0bcba98ae32543cf1059a51f233eec0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:BUC-072:CLOSED_INVALID_TRA\")\n mstore(add(headStart, 96), \"NSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n abi_encode_enum_BundleState(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 128))\n let _1 := 0x0140\n mstore(add(headStart, 160), _1)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 352))\n mstore(add(headStart, 192), mload(add(value0, 160)))\n mstore(add(headStart, 224), mload(add(value0, 192)))\n let _2 := mload(add(value0, 224))\n let _3 := 256\n mstore(add(headStart, _3), _2)\n let _4 := mload(add(value0, _3))\n let _5 := 288\n mstore(add(headStart, _5), _4)\n mstore(add(headStart, _1), mload(add(value0, _5)))\n tail := tail_1\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256_t_uint256__to_t_uint256_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint256_t_enum$_BundleState_$4914_t_enum$_BundleState_$4914__to_t_uint256_t_uint8_t_uint8__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n abi_encode_enum_BundleState(value1, add(headStart, 32))\n abi_encode_enum_BundleState(value2, add(headStart, 64))\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_address_t_enum$_BundleState_$4914_t_uint256__to_t_uint256_t_uint256_t_address_t_uint8_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n abi_encode_enum_BundleState(value3, add(headStart, 96))\n mstore(add(headStart, 128), value4)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101425760003560e01c8063a65e2cfd116100b8578063c0e714041161007c578063c0e71404146102b6578063c397ae39146102c9578063c41a360a146102dc578063c4d66de8146102ef578063c559783e14610302578063dd4670641461032257610142565b8063a65e2cfd14610257578063b299cc261461026a578063b72674201461027d578063bb540df614610290578063bcd5349f146102a357610142565b80632d0821b71161010a5780632d0821b7146101cb5780633f5d9235146101eb57806342966c68146101fe57806344c9af28146102115780634d03f9b7146102315780636198e3391461024457610142565b80630aebeb4e1461014757806318442e631461015c5780631e0104391461017357806321df0da7146101865780632c92fb99146101ab575b600080fd5b61015a610155366004612995565b610335565b005b6008545b6040519081526020015b60405180910390f35b610160610181366004612995565b610405565b6003546001600160a01b03165b6040516001600160a01b03909116815260200161016a565b6101be6101b9366004612995565b61041c565b60405161016a9190612a5f565b6101de6101d9366004612995565b610431565b60405161016a9190612ac2565b6101606101f9366004612995565b6105ed565b61015a61020c366004612995565b610602565b61022461021f366004612995565b6107ba565b60405161016a9190612a72565b61015a61023f3660046129e6565b6107cf565b61015a610252366004612995565b610c1d565b61015a6102653660046129c5565b610c73565b61015a6102783660046129e6565b610e4a565b61015a61028b3660046129e6565b611374565b61016061029e3660046129c5565b611672565b6101606102b1366004612995565b6119d6565b6101606102c43660046127d4565b6119ff565b61015a6102d73660046129c5565b611c28565b6101936102ea366004612995565b611e00565b61015a6102fd36600461279c565b611e90565b610160610310366004612995565b60009081526007602052604090205490565b61015a610330366004612995565b61200d565b6103506e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146103895760405162461bcd60e51b815260040161038090612a80565b60405180910390fd5b600081815260056020526040902054156103f75760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031353a42554e444c455f574954485f4143544956456044820152685f504f4c494349455360b81b6064820152608401610380565b61040281600261214b565b50565b600061041082610431565b60e0015190505b919050565b606061042782610431565b6080015192915050565b610439612618565b600082815260046020908152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600380820154606084019160ff9091169081111561049d57634e487b7160e01b600052602160045260246000fd5b60038111156104bc57634e487b7160e01b600052602160045260246000fd5b81526020016004820180546104d090612c44565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc90612c44565b80156105495780601f1061051e57610100808354040283529160200191610549565b820191906000526020600020905b81548152906001019060200180831161052c57829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505090506000816101000151116105e75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3036303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b92915050565b60006105f882610431565b60c0015192915050565b61061d6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461064d5760405162461bcd60e51b815260040161038090612a80565b6000818152600460205260409020600260038083015460ff169081111561068457634e487b7160e01b600052602160045260246000fd5b146106d15760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3031363a42554e444c455f4e4f545f434c4f534544006044820152606401610380565b6007810154156107235760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4255432d3031373a42554e444c455f4841535f42414c414e43456044820152606401610380565b600354604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b50505050600181810154600090815260076020526040812080549091906107a5908490612bfd565b909155506107b6905082600361214b565b5050565b60006107c582610431565b6060015192915050565b6107ea6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461081a5760405162461bcd60e51b815260040161038090612a80565b60025460405163296586d360e21b8152600481018490526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561085f57600080fd5b505afa158015610873573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089b9190810190612860565b60008581526004602052604090209091506108b46121ac565b6001600160a01b031663d229f3b083602001516040518263ffffffff1660e01b81526004016108e591815260200190565b60206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093591906129ad565b8160010154146109935760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3031393a42554e444c455f4e4f545f494e5f5249534b6044820152631413d3d360e21b6064820152608401610380565b60008160080154116109f35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3032303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff1690811115610a1c57634e487b7160e01b600052602160045260246000fd5b14610a695760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3032313a42554e444c455f4e4f545f414354495645006044820152606401610380565b828160060154610a799190612be5565b81600501541015610acc5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4255432d3032323a43415041434954595f544f4f5f4c4f5700006044820152606401610380565b600085815260066020908152604080832087845290915290205415610b595760405162461bcd60e51b815260206004820152603b60248201527f4552524f523a4255432d3032333a494e4352454d454e54414c5f434f4c4c415460448201527f4552414c495a4154494f4e5f4e4f545f494d504c454d454e54454400000000006064820152608401610380565b82816006016000828254610b6d9190612be5565b90915550504260098201556000858152600560205260408120805460019290610b97908490612be5565b9091555050600085815260066020818152604080842088855290915282208590558201546005830154610bca9190612bfd565b6040805188815260208101889052908101869052606081018290529091507fb253c82cbaad89e2bd0fb78bc565243ccc06da1ac58b640ed94469f69b64ea549060800160405180910390a1505050505050565b610c386e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610c685760405162461bcd60e51b815260040161038090612a80565b61040281600061214b565b610c8e6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610cbe5760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154610d295760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600260038083015460ff1690811115610d5257634e487b7160e01b600052602160045260246000fd5b1415610da05760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4255432d3031323a42554e444c455f434c4f53454400000000006044820152606401610380565b81816005016000828254610db49190612be5565b9250508190555081816007016000828254610dcf9190612be5565b909155505042600982015560068101546005820154600091610df091612bfd565b90507fed746f45e63100861a9a492e092018cdce2d2645b83741099a6f8ecba2af013884335b604080519283526001600160a01b03909116602083015281018590526060810183905260800160405180910390a150505050565b610e656e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610e955760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b158015610edb57600080fd5b505afa158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f139190612910565b9050600281516002811115610f3857634e487b7160e01b600052602160045260246000fd5b1415610f915760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000848152600560205260409020546110005760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3034313a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b60008481526006602090815260408083208684529091529020548211156110825760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4255432d3034323a434f4c4c41544552414c5f494e535546464960448201526f4349454e545f464f525f504f4c49435960801b6064820152608401610380565b600084815260046020526040902060088101546110ed5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3034333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff169081111561111657634e487b7160e01b600052602160045260246000fd5b14806111485750600160038083015460ff169081111561114657634e487b7160e01b600052602160045260246000fd5b145b61119f5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4255432d3034343a42554e444c455f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b82816005015410156111f35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034353a4341504954414c5f544f4f5f4c4f570000006044820152606401610380565b82816006015410156112535760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3034363a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b6064820152608401610380565b82816007015410156112a75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034373a42414c414e43455f544f4f5f4c4f570000006044820152606401610380565b6000858152600660209081526040808320878452909152812080548592906112d0908490612bfd565b92505081905550828160050160008282546112eb9190612bfd565b92505081905550828160060160008282546113069190612bfd565b92505081905550828160070160008282546113219190612bfd565b909155505042600982015560408051868152602081018690529081018490527f34ea3fe7b8e6aa959a187f606dc076e9fb02379d613a2c9356f5a556aac9508c9060600160405180910390a15050505050565b61138f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146113bf5760405162461bcd60e51b815260040161038090612a80565b6000838152600460205260409020600881015484919061142d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3030323a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b60038181015460ff168181111561145457634e487b7160e01b600052602160045260246000fd5b141580156114895750600260038083015460ff169081111561148657634e487b7160e01b600052602160045260246000fd5b14155b6114e35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4255432d3030333a42554e444c455f4255524e45445f4f525f436044820152641313d4d15160da1b6064820152608401610380565b60025460405163a3f685f960e01b8152600481018690526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561152957600080fd5b505afa15801561153d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115619190612910565b905060028151600281111561158657634e487b7160e01b600052602160045260246000fd5b14156115df5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3033303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000868152600460205260409020600881015461164a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3033313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b8481600701600082825461165e9190612be5565b909155505042600990910155505050505050565b600061168f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146116bf5760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612910565b905060028151600281111561176257634e487b7160e01b600052602160045260246000fd5b146117ba5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3035303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b600084815260046020526040902060088101546118255760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3035313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b6000858152600560205260409020546118945760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3035323a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b6000858152600660208181526040808420888552909152909120549082015481111561190e5760405162461bcd60e51b8152602060048201526024808201527f50414e49433a4255432d3035333a554e4c4f434b5f4341504954414c5f544f4f6044820152635f42494760e01b6064820152608401610380565b600086815260056020526040812080546001929061192d908490612bfd565b90915550506000868152600660208181526040808420898552909152822082905583018054839290611960908490612bfd565b90915550504260098301556006820154600583015460009161198191612bfd565b6040805189815260208101899052908101849052606081018290529091507fa7edca0329e0f25a5a213baaa606802692de7155da4cf8a007aedf326d9180759060800160405180910390a15050505092915050565b6000806119e283610431565b90508060c001518160a001516119f89190612bfd565b9392505050565b6000611a1c6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611a4c5760405162461bcd60e51b815260040161038090612a80565b600854611a5a906001612be5565b600081815260046020526040902060088101549192509015611aca5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031303a42554e444c455f414c52454144595f45584960448201526253545360e81b6064820152608401610380565b6003546040516394bf804d60e01b8152600481018490526001600160a01b03898116602483015260009216906394bf804d90604401602060405180830381600087803b158015611b1957600080fd5b505af1158015611b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5191906129ad565b838355600283018190556001830188905560038301805460ff191690559050611b7e60048301878761268a565b50600582018490556007820184905542600880840182905560098401919091558054906000611bac83612c7f565b90915550506000878152600760205260408120805491611bcb83612c7f565b90915550508154600383015460058401546040517f2a6ff62099c2d2515017f639043aef82d6293361b7cb7bdc90854eb2f026b56c93611c159390928c928e9260ff169190612b7a565b60405180910390a1505095945050505050565b611c436e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611c735760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154611cde5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b818160060154611cee9190612be5565b8160050154101580611d1157506006810154158015611d11575081816007015410155b611d6f5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031343a43415041434954595f4f525f42414c414e43604482015268455f544f4f5f4c4f5760b81b6064820152608401610380565b81816005015410611d995781816005016000828254611d8e9190612bfd565b90915550611da19050565b600060058201555b81816007016000828254611db59190612bfd565b909155505042600982015560068101546005820154600091611dd691612bfd565b90507fe3d161947307a0d06b7ac0f3a183176acbc70afff0831bba7e694ef9f47323bd8433610e16565b600080611e0c83610431565b60409081015160035491516331a9108f60e11b8152600481018290529092506001600160a01b0390911690636352211e9060240160206040518083038186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f891906127b8565b600054610100900460ff1615808015611eb05750600054600160ff909116105b80611eca5750303b158015611eca575060005460ff166001145b611f2d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610380565b6000805460ff191660011790558015611f50576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f7a600090565b6541636365737360d01b14611fbc57611f9b6541636365737360d01b612063565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611fc46121c3565b80156107b6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6120286e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146120585760405162461bcd60e51b815260040161038090612a80565b61040281600161214b565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156120ad57600080fd5b505afa1580156120c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e591906127b8565b90506001600160a01b0381166104175760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610380565b6000612156836107ba565b90506121628183612299565b61216c83836125bb565b7f0c318b62e2d75a1d66c8fa6d64604f76f84b646cf3dadfb56e336044d57061f583828460405161219f93929190612b59565b60405180910390a1505050565b60006121be63141bdbdb60e21b612063565b905090565b600054610100900460ff1661222e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610380565b61224065506f6c69637960d01b612063565b600280546001600160a01b0319166001600160a01b03929092169190911790556122776a213ab7323632aa37b5b2b760a91b612063565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008260038111156122bb57634e487b7160e01b600052602160045260246000fd5b141561236f5760018160038111156122e357634e487b7160e01b600052602160045260246000fd5b148061230e5750600281600381111561230c57634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037303a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b6107b6565b600182600381111561239157634e487b7160e01b600052602160045260246000fd5b14156124405760008160038111156123b957634e487b7160e01b600052602160045260246000fd5b14806123e4575060028160038111156123e257634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037313a4c4f434b45445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600282600381111561246257634e487b7160e01b600052602160045260246000fd5b14156124e757600381600381111561248a57634e487b7160e01b600052602160045260246000fd5b1461236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037323a434c4f5345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600382600381111561250957634e487b7160e01b600052602160045260246000fd5b14156125635760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3037333a4255524e45445f49535f46494e414c5f535460448201526241544560e81b6064820152608401610380565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a424f432d3037343a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610380565b600082815260046020526040902060039081018054839260ff199091169060019084908111156125fb57634e487b7160e01b600052602160045260246000fd5b021790555050600090815260046020526040902042600990910155565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561265a57634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461269690612c44565b90600052602060002090601f0160209004810192826126b857600085556126fe565b82601f106126d15782800160ff198235161785556126fe565b828001600101855582156126fe579182015b828111156126fe5782358255916020019190600101906126e3565b5061270a92915061270e565b5090565b5b8082111561270a576000815560010161270f565b600082601f830112612733578081fd5b815167ffffffffffffffff81111561274d5761274d612cb0565b612760601f8201601f1916602001612bb4565b818152846020838601011115612774578283fd5b612785826020830160208701612c14565b949350505050565b80516003811061041757600080fd5b6000602082840312156127ad578081fd5b81356119f881612cc6565b6000602082840312156127c9578081fd5b81516119f881612cc6565b6000806000806000608086880312156127eb578081fd5b85356127f681612cc6565b945060208601359350604086013567ffffffffffffffff80821115612819578283fd5b818801915088601f83011261282c578283fd5b81358181111561283a578384fd5b89602082850101111561284b578384fd5b96999598505060200195606001359392505050565b600060208284031215612871578081fd5b815167ffffffffffffffff80821115612888578283fd5b9083019060c0828603121561289b578283fd5b6128a560c0612bb4565b82516128b081612cc6565b8152602083810151908201526128c86040840161278d565b60408201526060830151828111156128de578485fd5b6128ea87828601612723565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215612923578182fd5b61292c81612bb4565b90506129378361278d565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6000602082840312156129a6578081fd5b5035919050565b6000602082840312156129be578081fd5b5051919050565b600080604083850312156129d7578182fd5b50508035926020909101359150565b6000806000606084860312156129fa578283fd5b505081359360208301359350604090920135919050565b60008151808452612a29816020860160208601612c14565b601f01601f19169290920160200192915050565b60048110612a5b57634e487b7160e01b600052602160045260246000fd5b9052565b6000602082526119f86020830184612a11565b602081016105e78284612a3d565b60208082526022908201527f4552524f523a4255432d3030313a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612af56080840182612a3d565b5060808301516101408060a0850152612b12610160850183612a11565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b83815260608101612b6d6020830185612a3d565b6127856040830184612a3d565b858152602081018590526001600160a01b038416604082015260a08101612ba46060830185612a3d565b8260808301529695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612bdd57612bdd612cb0565b604052919050565b60008219821115612bf857612bf8612c9a565b500190565b600082821015612c0f57612c0f612c9a565b500390565b60005b83811015612c2f578181015183820152602001612c17565b83811115612c3e576000848401525b50505050565b600281046001821680612c5857607f821691505b60208210811415612c7957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c9357612c93612c9a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040257600080fdfea26469706673582212201077787b34730b7d2a802670a61dd1edc7acf97dd1ddeccd189c2edf0833b64664736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x142 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA65E2CFD GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC0E71404 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC0E71404 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0xC397AE39 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0xC41A360A EQ PUSH2 0x2DC JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x2EF JUMPI DUP1 PUSH4 0xC559783E EQ PUSH2 0x302 JUMPI DUP1 PUSH4 0xDD467064 EQ PUSH2 0x322 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0xA65E2CFD EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0xB299CC26 EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0xB7267420 EQ PUSH2 0x27D JUMPI DUP1 PUSH4 0xBB540DF6 EQ PUSH2 0x290 JUMPI DUP1 PUSH4 0xBCD5349F EQ PUSH2 0x2A3 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x10A JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x3F5D9235 EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x44C9AF28 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x4D03F9B7 EQ PUSH2 0x231 JUMPI DUP1 PUSH4 0x6198E339 EQ PUSH2 0x244 JUMPI PUSH2 0x142 JUMP JUMPDEST DUP1 PUSH4 0xAEBEB4E EQ PUSH2 0x147 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x1E010439 EQ PUSH2 0x173 JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x186 JUMPI DUP1 PUSH4 0x2C92FB99 EQ PUSH2 0x1AB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x15A PUSH2 0x155 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x335 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x8 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x160 PUSH2 0x181 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x405 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16A JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x1B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x41C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2A5F JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x431 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2AC2 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x5ED JUMP JUMPDEST PUSH2 0x15A PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x602 JUMP JUMPDEST PUSH2 0x224 PUSH2 0x21F CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x7BA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x16A SWAP2 SWAP1 PUSH2 0x2A72 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x7CF JUMP JUMPDEST PUSH2 0x15A PUSH2 0x252 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0xC1D JUMP JUMPDEST PUSH2 0x15A PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0xC73 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x278 CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0xE4A JUMP JUMPDEST PUSH2 0x15A PUSH2 0x28B CALLDATASIZE PUSH1 0x4 PUSH2 0x29E6 JUMP JUMPDEST PUSH2 0x1374 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x29E CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0x1672 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x19D6 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x27D4 JUMP JUMPDEST PUSH2 0x19FF JUMP JUMPDEST PUSH2 0x15A PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x29C5 JUMP JUMPDEST PUSH2 0x1C28 JUMP JUMPDEST PUSH2 0x193 PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x1E00 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x2FD CALLDATASIZE PUSH1 0x4 PUSH2 0x279C JUMP JUMPDEST PUSH2 0x1E90 JUMP JUMPDEST PUSH2 0x160 PUSH2 0x310 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15A PUSH2 0x330 CALLDATASIZE PUSH1 0x4 PUSH2 0x2995 JUMP JUMPDEST PUSH2 0x200D JUMP JUMPDEST PUSH2 0x350 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x389 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031353A42554E444C455F574954485F414354495645 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F504F4C4943494553 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x2 PUSH2 0x214B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x410 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x427 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x80 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x439 PUSH2 0x2618 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH2 0x140 DUP2 ADD DUP4 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP2 ADD SLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP1 DUP3 ADD SLOAD PUSH1 0x60 DUP5 ADD SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0x49D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0x4D0 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4FC SWAP1 PUSH2 0x2C44 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x549 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x51E JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x549 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x52C JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x9 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x100 ADD MLOAD GT PUSH2 0x5E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3036303A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5F8 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x61D PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x64D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x684 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x6D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031363A42554E444C455F4E4F545F434C4F53454400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x7 DUP2 ADD SLOAD ISZERO PUSH2 0x723 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031373A42554E444C455F4841535F42414C414E4345 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x42966C68 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x77D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x1 DUP2 DUP2 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 SWAP1 PUSH2 0x7A5 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x7B6 SWAP1 POP DUP3 PUSH1 0x3 PUSH2 0x214B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7C5 DUP3 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x7EA PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x81A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x873 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x89B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2860 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 SWAP2 POP PUSH2 0x8B4 PUSH2 0x21AC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD229F3B0 DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E5 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x911 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x935 SWAP2 SWAP1 PUSH2 0x29AD JUMP JUMPDEST DUP2 PUSH1 0x1 ADD SLOAD EQ PUSH2 0x993 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031393A42554E444C455F4E4F545F494E5F5249534B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1413D3D3 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x8 ADD SLOAD GT PUSH2 0x9F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032303A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0xA1C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xA69 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032313A42554E444C455F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD SLOAD PUSH2 0xA79 SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO PUSH2 0xACC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032323A43415041434954595F544F4F5F4C4F570000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0xB59 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3032333A494E4352454D454E54414C5F434F4C4C4154 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x4552414C495A4154494F4E5F4E4F545F494D504C454D454E5445440000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB6D SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xB97 SWAP1 DUP5 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP9 DUP6 MSTORE SWAP1 SWAP2 MSTORE DUP3 KECCAK256 DUP6 SWAP1 SSTORE DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH2 0xBCA SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xB253C82CBAAD89E2BD0FB78BC565243CCC06DA1AC58B640ED94469F69B64EA54 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC38 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC68 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x0 PUSH2 0x214B JUMP JUMPDEST PUSH2 0xC8E PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0xD29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0xD52 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xDA0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031323A42554E444C455F434C4F5345440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDB4 SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDCF SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0xDF0 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 POP PUSH32 0xED746F45E63100861A9A492E092018CDCE2D2645B83741099A6F8ECBA2AF0138 DUP5 CALLER JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH2 0xE65 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEEF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF13 SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xF38 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xF91 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1000 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034313A4E4F5F4143544956455F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x5F464F525F42554E444C45 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD DUP3 GT ISZERO PUSH2 0x1082 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034323A434F4C4C41544552414C5F494E5355464649 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x4349454E545F464F525F504F4C494359 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x10ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034333A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1116 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1148 JUMPI POP PUSH1 0x1 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1146 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x119F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034343A42554E444C455F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO PUSH2 0x11F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034353A4341504954414C5F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x1253 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034363A4C4F434B45445F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F4C4F57 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP3 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO PUSH2 0x12A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3034373A42414C414E43455F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 DUP1 SLOAD DUP6 SWAP3 SWAP1 PUSH2 0x12D0 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x12EB SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1306 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1321 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x34EA3FE7B8E6AA959A187F606DC076E9FB02379D613A2C9356F5A556AAC9508C SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x138F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD DUP5 SWAP2 SWAP1 PUSH2 0x142D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030323A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 DUP2 DUP2 ADD SLOAD PUSH1 0xFF AND DUP2 DUP2 GT ISZERO PUSH2 0x1454 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x1489 JUMPI POP PUSH1 0x2 PUSH1 0x3 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x1486 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO JUMPDEST PUSH2 0x14E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030333A42554E444C455F4255524E45445F4F525F43 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1313D4D151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1529 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x153D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1561 SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1586 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x15DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3033303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x164A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3033313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP5 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x165E SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 SWAP1 SWAP2 ADD SSTORE POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x16BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1705 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x173D SWAP2 SWAP1 PUSH2 0x2910 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1762 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x17BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3035303A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x1825 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3035313A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH2 0x1894 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3035323A4E4F5F4143544956455F504F4C4943494553 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x5F464F525F42554E444C45 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP9 DUP6 MSTORE SWAP1 SWAP2 MSTORE SWAP1 SWAP2 KECCAK256 SLOAD SWAP1 DUP3 ADD SLOAD DUP2 GT ISZERO PUSH2 0x190E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x50414E49433A4255432D3035333A554E4C4F434B5F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F424947 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x192D SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 DUP10 DUP6 MSTORE SWAP1 SWAP2 MSTORE DUP3 KECCAK256 DUP3 SWAP1 SSTORE DUP4 ADD DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH2 0x1960 SWAP1 DUP5 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP4 ADD SSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0x5 DUP4 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1981 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xA7EDCA0329E0F25A5A213BAAA606802692DE7155DA4CF8A007AEDF326D918075 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x19E2 DUP4 PUSH2 0x431 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xC0 ADD MLOAD DUP2 PUSH1 0xA0 ADD MLOAD PUSH2 0x19F8 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A1C PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A4C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x1A5A SWAP1 PUSH1 0x1 PUSH2 0x2BE5 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD SWAP2 SWAP3 POP SWAP1 ISZERO PUSH2 0x1ACA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031303A42554E444C455F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x94BF804D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x94BF804D SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B19 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B2D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B51 SWAP2 SWAP1 PUSH2 0x29AD JUMP JUMPDEST DUP4 DUP4 SSTORE PUSH1 0x2 DUP4 ADD DUP2 SWAP1 SSTORE PUSH1 0x1 DUP4 ADD DUP9 SWAP1 SSTORE PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE SWAP1 POP PUSH2 0x1B7E PUSH1 0x4 DUP4 ADD DUP8 DUP8 PUSH2 0x268A JUMP JUMPDEST POP PUSH1 0x5 DUP3 ADD DUP5 SWAP1 SSTORE PUSH1 0x7 DUP3 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x8 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x9 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x1BAC DUP4 PUSH2 0x2C7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x1BCB DUP4 PUSH2 0x2C7F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP DUP2 SLOAD PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x5 DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH32 0x2A6FF62099C2D2515017F639043AEF82D6293361B7CB7BDC90854EB2F026B56C SWAP4 PUSH2 0x1C15 SWAP4 SWAP1 SWAP3 DUP13 SWAP3 DUP15 SWAP3 PUSH1 0xFF AND SWAP2 SWAP1 PUSH2 0x2B7A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1C43 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1C73 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x8 DUP2 ADD SLOAD PUSH2 0x1CDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031333A42554E444C455F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x6 ADD SLOAD PUSH2 0x1CEE SWAP2 SWAP1 PUSH2 0x2BE5 JUMP JUMPDEST DUP2 PUSH1 0x5 ADD SLOAD LT ISZERO DUP1 PUSH2 0x1D11 JUMPI POP PUSH1 0x6 DUP2 ADD SLOAD ISZERO DUP1 ISZERO PUSH2 0x1D11 JUMPI POP DUP2 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO JUMPDEST PUSH2 0x1D6F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3031343A43415041434954595F4F525F42414C414E43 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x455F544F4F5F4C4F57 PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x5 ADD SLOAD LT PUSH2 0x1D99 JUMPI DUP2 DUP2 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D8E SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1DA1 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 DUP3 ADD SSTORE JUMPDEST DUP2 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1DB5 SWAP2 SWAP1 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x9 DUP3 ADD SSTORE PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0x1DD6 SWAP2 PUSH2 0x2BFD JUMP JUMPDEST SWAP1 POP PUSH32 0xE3D161947307A0D06B7AC0F3A183176ACBC70AFFF0831BBA7E694EF9F47323BD DUP5 CALLER PUSH2 0xE16 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1E0C DUP4 PUSH2 0x431 JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 ADD MLOAD PUSH1 0x3 SLOAD SWAP2 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6352211E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F8 SWAP2 SWAP1 PUSH2 0x27B8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1EB0 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1ECA JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1ECA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1F2D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1F50 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1F7A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1FBC JUMPI PUSH2 0x1F9B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1FC4 PUSH2 0x21C3 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7B6 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x2028 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2058 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x380 SWAP1 PUSH2 0x2A80 JUMP JUMPDEST PUSH2 0x402 DUP2 PUSH1 0x1 PUSH2 0x214B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20E5 SWAP2 SWAP1 PUSH2 0x27B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x417 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2156 DUP4 PUSH2 0x7BA JUMP JUMPDEST SWAP1 POP PUSH2 0x2162 DUP2 DUP4 PUSH2 0x2299 JUMP JUMPDEST PUSH2 0x216C DUP4 DUP4 PUSH2 0x25BB JUMP JUMPDEST PUSH32 0xC318B62E2D75A1D66C8FA6D64604F76F84B646CF3DADFB56E336044D57061F5 DUP4 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0x219F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2B59 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21BE PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x2063 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x222E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x2240 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2277 PUSH11 0x213AB7323632AA37B5B2B7 PUSH1 0xA9 SHL PUSH2 0x2063 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x22BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x236F JUMPI PUSH1 0x1 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x22E3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x230E JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x230C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037303A4143544956455F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH2 0x7B6 JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2391 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2440 JUMPI PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x23B9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x23E4 JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x23E2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037313A4C4F434B45445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2462 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x24E7 JUMPI PUSH1 0x3 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x248A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x236A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037323A434C4F5345445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2509 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2563 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3037333A4255524E45445F49535F46494E414C5F5354 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x415445 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A424F432D3037343A494E495449414C5F53544154455F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12105391131151 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x380 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 SWAP1 DUP2 ADD DUP1 SLOAD DUP4 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 DUP2 GT ISZERO PUSH2 0x25FB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 TIMESTAMP PUSH1 0x9 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x265A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2696 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x26B8 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x26FE JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x26D1 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x26FE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x26FE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x26FE JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x26E3 JUMP JUMPDEST POP PUSH2 0x270A SWAP3 SWAP2 POP PUSH2 0x270E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x270A JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x270F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2733 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x274D JUMPI PUSH2 0x274D PUSH2 0x2CB0 JUMP JUMPDEST PUSH2 0x2760 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2BB4 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2774 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2785 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2C14 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x417 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x19F8 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x27C9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x19F8 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x27EB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD PUSH2 0x27F6 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2819 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x282C JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x283A JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x284B JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP POP PUSH1 0x20 ADD SWAP6 PUSH1 0x60 ADD CALLDATALOAD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2871 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2888 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x289B JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x28A5 PUSH1 0xC0 PUSH2 0x2BB4 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x28B0 DUP2 PUSH2 0x2CC6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x28C8 PUSH1 0x40 DUP5 ADD PUSH2 0x278D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x28DE JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x28EA DUP8 DUP3 DUP7 ADD PUSH2 0x2723 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2923 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x292C DUP2 PUSH2 0x2BB4 JUMP JUMPDEST SWAP1 POP PUSH2 0x2937 DUP4 PUSH2 0x278D JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29A6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x29BE JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29D7 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x29FA JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2A29 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2C14 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x2A5B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x19F8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A11 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x5E7 DUP3 DUP5 PUSH2 0x2A3D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2AF5 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2A3D JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2B12 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2A11 JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x2B6D PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2A3D JUMP JUMPDEST PUSH2 0x2785 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2A3D JUMP JUMPDEST DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 DUP2 ADD PUSH2 0x2BA4 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x2A3D JUMP JUMPDEST DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2BDD JUMPI PUSH2 0x2BDD PUSH2 0x2CB0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2BF8 JUMPI PUSH2 0x2BF8 PUSH2 0x2C9A JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2C0F JUMPI PUSH2 0x2C0F PUSH2 0x2C9A JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2C2F JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2C17 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2C3E JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2C58 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2C79 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2C93 JUMPI PUSH2 0x2C93 PUSH2 0x2C9A JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x402 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT PUSH24 0x787B34730B7D2A802670A61DD1EDC7ACF97DD1DDECCD189C 0x2E 0xDF ADDMOD CALLER 0xB6 CHAINID PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2400:13072:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6709:244;;;;;;:::i;:::-;;:::i;:::-;;13572:84;13637:12;;13572:84;;;6129:25:103;;;6117:2;6102:18;13572:84:74;;;;;;;;13117:121;;;;;;:::i;:::-;;:::i;13244:85::-;13316:6;;-1:-1:-1;;;;;13316:6:74;13244:85;;;-1:-1:-1;;;;;5939:32:103;;;5921:51;;5909:2;5894:18;13244:85:74;5876:102:103;12658:121:74;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13335:231::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12975:136::-;;;;;;:::i;:::-;;:::i;6959:535::-;;;;;;:::i;:::-;;:::i;12531:121::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7500:1231::-;;;;;;:::i;:::-;;:::i;6552:151::-;;;;;;:::i;:::-;;:::i;4940:609::-;;;;;;:::i;:::-;;:::i;9368:1570::-;;;;;;:::i;:::-;;:::i;8738:623::-;;;;;;:::i;:::-;;:::i;10945:1405::-;;;;;;:::i;:::-;;:::i;12788:181::-;;;;;;:::i;:::-;;:::i;3803:1130::-;;;;;;:::i;:::-;;:::i;5556:835::-;;;;;;:::i;:::-;;:::i;12356:169::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;13662:139:74:-;;;;;;:::i;:::-;13728:7;13754:40;;;:28;:40;;;;;;;13662:139;6397:149;;;;;;:::i;:::-;;:::i;6709:244::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;;;;;;;;;6818:25:::1;::::0;;;:15:::1;:25;::::0;;;;;:30;6810:84:::1;;;::::0;-1:-1:-1;;;6810:84:74;;21238:2:103;6810:84:74::1;::::0;::::1;21220:21:103::0;21277:2;21257:18;;;21250:30;21316:34;21296:18;;;21289:62;-1:-1:-1;;;21367:18:103;;;21360:39;21416:19;;6810:84:74::1;21210:231:103::0;6810:84:74::1;6904:42;6917:8;6927:18;6904:12;:42::i;:::-;6709:244:::0;:::o;13117:121::-;13175:7;13201:19;13211:8;13201:9;:19::i;:::-;:27;;;13194:34;;13117:121;;;;:::o;12658:::-;12715:12;12746:19;12756:8;12746:9;:19::i;:::-;:26;;;;12658:121;-1:-1:-1;;12658:121:74:o;13335:231::-;13392:13;;:::i;:::-;13417:20;13440:18;;;:8;:18;;;;;;;;13417:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13417:41:74;;;;;;;;;;;;;;;-1:-1:-1;;;13417:41:74;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13495:1;13476:6;:16;;;:20;13468:68;;;;-1:-1:-1;;;13468:68:74;;8426:2:103;13468:68:74;;;8408:21:103;8465:2;8445:18;;;8438:30;8504:34;8484:18;;;8477:62;-1:-1:-1;;;8555:18:103;;;8548:33;8598:19;;13468:68:74;8398:225:103;13468:68:74;13553:6;13335:231;-1:-1:-1;;13335:231:74:o;12975:136::-;13042:7;13068:19;13078:8;13068:9;:19::i;:::-;:33;;;;12975:136;-1:-1:-1;;12975:136:74:o;6959:535::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;7063:21:::1;7087:18:::0;;;:8:::1;:18;::::0;;;;7139::::1;7123:12;::::0;;::::1;::::0;::::1;;::::0;:34;::::1;;;;-1:-1:-1::0;;;7123:34:74::1;;;;;;;;;;7115:78;;;::::0;-1:-1:-1;;;7115:78:74;;21648:2:103;7115:78:74::1;::::0;::::1;21630:21:103::0;21687:2;21667:18;;;21660:30;21726:33;21706:18;;;21699:61;21777:18;;7115:78:74::1;21620:181:103::0;7115:78:74::1;7211:14;::::0;::::1;::::0;:19;7203:64:::1;;;::::0;-1:-1:-1;;;7203:64:74;;12797:2:103;7203:64:74::1;::::0;::::1;12779:21:103::0;;;12816:18;;;12809:30;12875:34;12855:18;;;12848:62;12927:18;;7203:64:74::1;12769:182:103::0;7203:64:74::1;7351:6;::::0;:21:::1;::::0;-1:-1:-1;;;7351:21:74;;::::1;::::0;::::1;6129:25:103::0;;;-1:-1:-1;;;;;7351:6:74;;::::1;::::0;:11:::1;::::0;6102:18:103;;7351:21:74::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;7433:1:74::1;7411:17:::0;;::::1;::::0;7382:47:::1;::::0;;;:28:::1;:47;::::0;;;;:52;;:47;;;:52:::1;::::0;7433:1;;7382:52:::1;:::i;:::-;::::0;;;-1:-1:-1;7445:42:74::1;::::0;-1:-1:-1;7458:8:74;7468:18:::1;7445:12;:42::i;:::-;3197:1;6959:535:::0;:::o;12531:121::-;12587:11;12617:19;12627:8;12617:9;:19::i;:::-;:25;;;;12531:121;-1:-1:-1;;12531:121:74:o;7500:1231::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;7686:7:::1;::::0;:30:::1;::::0;-1:-1:-1;;;7686:30:74;;::::1;::::0;::::1;6129:25:103::0;;;7651:32:74::1;::::0;-1:-1:-1;;;;;7686:7:74::1;::::0;:19:::1;::::0;6102:18:103;;7686:30:74::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;7686:30:74::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;7726:21;7750:18:::0;;;:8:::1;:18;::::0;;;;7651:65;;-1:-1:-1;7807:20:74::1;:18;:20::i;:::-;-1:-1:-1::0;;;;;7807:42:74::1;;7850:8;:18;;;7807:62;;;;;;;;;;;;;6129:25:103::0;;6117:2;6102:18;;6084:76;7807:62:74::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7786:6;:17;;;:83;7778:132;;;::::0;-1:-1:-1;;;7778:132:74;;15135:2:103;7778:132:74::1;::::0;::::1;15117:21:103::0;15174:2;15154:18;;;15147:30;15213:34;15193:18;;;15186:62;-1:-1:-1;;;15264:18:103;;;15257:34;15308:19;;7778:132:74::1;15107:226:103::0;7778:132:74::1;7947:1;7928:6;:16;;;:20;7920:68;;;::::0;-1:-1:-1;;;7920:68:74;;10002:2:103;7920:68:74::1;::::0;::::1;9984:21:103::0;10041:2;10021:18;;;10014:30;10080:34;10060:18;;;10053:62;-1:-1:-1;;;10131:18:103;;;10124:33;10174:19;;7920:68:74::1;9974:225:103::0;7920:68:74::1;8022:26;8006:12;::::0;;::::1;::::0;::::1;;::::0;:42;::::1;;;;-1:-1:-1::0;;;8006:42:74::1;;;;;;;;;;7998:86;;;::::0;-1:-1:-1;;;7998:86:74;;22008:2:103;7998:86:74::1;::::0;::::1;21990:21:103::0;22047:2;22027:18;;;22020:30;22086:33;22066:18;;;22059:61;22137:18;;7998:86:74::1;21980:181:103::0;7998:86:74::1;8151:6;8128;:20;;;:29;;;;:::i;:::-;8110:6;:14;;;:47;;8102:90;;;::::0;-1:-1:-1;;;8102:90:74;;9233:2:103;8102:90:74::1;::::0;::::1;9215:21:103::0;9272:2;9252:18;;;9245:30;9311:32;9291:18;;;9284:60;9361:18;;8102:90:74::1;9205:180:103::0;8102:90:74::1;8264:31;::::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;;:47;8256:119:::1;;;::::0;-1:-1:-1;;;8256:119:74;;7592:2:103;8256:119:74::1;::::0;::::1;7574:21:103::0;7631:2;7611:18;;;7604:30;7670:34;7650:18;;;7643:62;7741:29;7721:18;;;7714:57;7788:19;;8256:119:74::1;7564:249:103::0;8256:119:74::1;8410:6;8386;:20;;;:30;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;8445:15:74::1;8426:16;::::0;::::1;:34:::0;8471:25:::1;::::0;;;:15:::1;:25;::::0;;;;:30;;8500:1:::1;::::0;8471:25;:30:::1;::::0;8500:1;;8471:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;8511:31:74::1;::::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;:51;;;8615:20;::::1;::::0;8598:14:::1;::::0;::::1;::::0;:37:::1;::::0;8615:20;8598:37:::1;:::i;:::-;8650:74;::::0;;25097:25:103;;;25153:2;25138:18;;25131:34;;;25181:18;;;25174:34;;;25239:2;25224:18;;25217:34;;;8573:62:74;;-1:-1:-1;8650:74:74::1;::::0;25084:3:103;25069:19;8650:74:74::1;;;;;;;3197:1;;;7500:1231:::0;;;:::o;6552:151::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;6654:42:::1;6667:8;6677:18;6654:12;:42::i;4940:609::-:0;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;5057:21:::1;5081:18:::0;;;:8:::1;:18;::::0;;;;5117:16:::1;::::0;::::1;::::0;5109:68:::1;;;::::0;-1:-1:-1;;;5109:68:74;;19205:2:103;5109:68:74::1;::::0;::::1;19187:21:103::0;19244:2;19224:18;;;19217:30;19283:34;19263:18;;;19256:62;-1:-1:-1;;;19334:18:103;;;19327:33;19377:19;;5109:68:74::1;19177:225:103::0;5109:68:74::1;5211:26;5195:12;::::0;;::::1;::::0;::::1;;::::0;:42;::::1;;;;-1:-1:-1::0;;;5195:42:74::1;;;;;;;;;;;5187:82;;;::::0;-1:-1:-1;;;5187:82:74;;13158:2:103;5187:82:74::1;::::0;::::1;13140:21:103::0;13197:2;13177:18;;;13170:30;13236:29;13216:18;;;13209:57;13283:18;;5187:82:74::1;13130:177:103::0;5187:82:74::1;5298:6;5280;:14;;;:24;;;;;;;:::i;:::-;;;;;;;;5332:6;5314;:14;;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;5367:15:74::1;5348:16;::::0;::::1;:34:::0;5435:20:::1;::::0;::::1;::::0;5418:14:::1;::::0;::::1;::::0;5393:22:::1;::::0;5418:37:::1;::::0;::::1;:::i;:::-;5393:62:::0;-1:-1:-1;5470:72:74::1;5495:8:::0;719:10:59;5505:12:74::1;5470:72;::::0;;24351:25:103;;;-1:-1:-1;;;;;24412:32:103;;;24407:2;24392:18;;24385:60;24461:18;;24454:34;;;24519:2;24504:18;;24497:34;;;24338:3;24323:19;5470:72:74::1;;;;;;;3197:1;;4940:609:::0;;:::o;9368:1570::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;9545:7:::1;::::0;:28:::1;::::0;-1:-1:-1;;;9545:28:74;;::::1;::::0;::::1;6129:25:103::0;;;9514:28:74::1;::::0;-1:-1:-1;;;;;9545:7:74::1;::::0;:17:::1;::::0;6102:18:103;;9545:28:74::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9514:59:::0;-1:-1:-1;9620:26:74::1;9604:12:::0;;:42:::1;::::0;::::1;;;;-1:-1:-1::0;;;9604:42:74::1;;;;;;;;;;;9583:123;;;::::0;-1:-1:-1;;;9583:123:74;;15955:2:103;9583:123:74::1;::::0;::::1;15937:21:103::0;15994:2;15974:18;;;15967:30;16033:34;16013:18;;;16006:62;-1:-1:-1;;;16084:18:103;;;16077:32;16126:19;;9583:123:74::1;15927:224:103::0;9583:123:74::1;9839:1;9811:25:::0;;;:15:::1;:25;::::0;;;;;9803:85:::1;;;::::0;-1:-1:-1;;;9803:85:74;;18793:2:103;9803:85:74::1;::::0;::::1;18775:21:103::0;18832:2;18812:18;;;18805:30;18871:34;18851:18;;;18844:62;-1:-1:-1;;;18922:18:103;;;18915:41;18973:19;;9803:85:74::1;18765:233:103::0;9803:85:74::1;9906:31;::::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;;:52;-1:-1:-1;9906:52:74::1;9898:113;;;::::0;-1:-1:-1;;;9898:113:74;;10764:2:103;9898:113:74::1;::::0;::::1;10746:21:103::0;10803:2;10783:18;;;10776:30;10842:34;10822:18;;;10815:62;-1:-1:-1;;;10893:18:103;;;10886:46;10949:19;;9898:113:74::1;10736:238:103::0;9898:113:74::1;10079:21;10103:18:::0;;;:8:::1;:18;::::0;;;;10139:16:::1;::::0;::::1;::::0;10131:68:::1;;;::::0;-1:-1:-1;;;10131:68:74;;13922:2:103;10131:68:74::1;::::0;::::1;13904:21:103::0;13961:2;13941:18;;;13934:30;14000:34;13980:18;;;13973:62;-1:-1:-1;;;14051:18:103;;;14044:33;14094:19;;10131:68:74::1;13894:225:103::0;10131:68:74::1;10246:26;10230:12;::::0;;::::1;::::0;::::1;;::::0;:42;::::1;;;;-1:-1:-1::0;;;10230:42:74::1;;;;;;;;;;:100;;;-1:-1:-1::0;10304:26:74::1;10288:12;::::0;;::::1;::::0;::::1;;::::0;:42;::::1;;;;-1:-1:-1::0;;;10288:42:74::1;;;;;;;;;;10230:100;10209:173;;;::::0;-1:-1:-1;;;10209:173:74;;8830:2:103;10209:173:74::1;::::0;::::1;8812:21:103::0;8869:2;8849:18;;;8842:30;8908:34;8888:18;;;8881:62;-1:-1:-1;;;8959:18:103;;;8952:32;9001:19;;10209:173:74::1;8802:224:103::0;10209:173:74::1;10418:6;10400;:14;;;:24;;10392:66;;;::::0;-1:-1:-1;;;10392:66:74;;7234:2:103;10392:66:74::1;::::0;::::1;7216:21:103::0;7273:2;7253:18;;;7246:30;7312:31;7292:18;;;7285:59;7361:18;;10392:66:74::1;7206:179:103::0;10392:66:74::1;10500:6;10476;:20;;;:30;;10468:79;;;::::0;-1:-1:-1;;;10468:79:74;;11585:2:103;10468:79:74::1;::::0;::::1;11567:21:103::0;11624:2;11604:18;;;11597:30;11663:34;11643:18;;;11636:62;-1:-1:-1;;;11714:18:103;;;11707:34;11758:19;;10468:79:74::1;11557:226:103::0;10468:79:74::1;10583:6;10565;:14;;;:24;;10557:66;;;::::0;-1:-1:-1;;;10557:66:74;;10406:2:103;10557:66:74::1;::::0;::::1;10388:21:103::0;10445:2;10425:18;;;10418:30;10484:31;10464:18;;;10457:59;10533:18;;10557:66:74::1;10378:179:103::0;10557:66:74::1;10634:31;::::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;:52;;10680:6;;10634:31;:52:::1;::::0;10680:6;;10634:52:::1;:::i;:::-;;;;;;;;10714:6;10696;:14;;;:24;;;;;;;:::i;:::-;;;;;;;;10754:6;10730;:20;;;:30;;;;;;;:::i;:::-;;;;;;;;10788:6;10770;:14;;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;10823:15:74::1;10804:16;::::0;::::1;:34:::0;10878:53:::1;::::0;;24744:25:103;;;24800:2;24785:18;;24778:34;;;24828:18;;;24821:34;;;10878:53:74::1;::::0;24732:2:103;24717:18;10878:53:74::1;;;;;;;3197:1;;9368:1570:::0;;;:::o;8738:623::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;3267:21:::1;3291:18:::0;;;:8:::1;:18;::::0;;;;3327:16:::1;::::0;::::1;::::0;8896:8;;3291:18;3319:68:::1;;;::::0;-1:-1:-1;;;3319:68:74;;11181:2:103;3319:68:74::1;::::0;::::1;11163:21:103::0;11220:2;11200:18;;;11193:30;11259:34;11239:18;;;11232:62;-1:-1:-1;;;11310:18:103;;;11303:33;11353:19;;3319:68:74::1;11153:225:103::0;3319:68:74::1;3434:26;3418:12:::0;;::::1;::::0;::::1;;:42:::0;;::::1;;;;-1:-1:-1::0;;;3418:42:74::1;;;;;;;;;;;:101;;;;-1:-1:-1::0;3493:26:74::1;3477:12;::::0;;::::1;::::0;::::1;;::::0;:42;::::1;;;;-1:-1:-1::0;;;3477:42:74::1;;;;;;;;;;;3418:101;3397:173;;;::::0;-1:-1:-1;;;3397:173:74;;20832:2:103;3397:173:74::1;::::0;::::1;20814:21:103::0;20871:2;20851:18;;;20844:30;20910:34;20890:18;;;20883:62;-1:-1:-1;;;20961:18:103;;;20954:35;21006:19;;3397:173:74::1;20804:227:103::0;3397:173:74::1;8951:7:::2;::::0;:28:::2;::::0;-1:-1:-1;;;8951:28:74;;::::2;::::0;::::2;6129:25:103::0;;;8920:28:74::2;::::0;-1:-1:-1;;;;;8951:7:74::2;::::0;:17:::2;::::0;6102:18:103;;8951:28:74::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8920:59:::0;-1:-1:-1;9026:26:74::2;9010:12:::0;;:42:::2;::::0;::::2;;;;-1:-1:-1::0;;;9010:42:74::2;;;;;;;;;;;8989:123;;;::::0;-1:-1:-1;;;8989:123:74;;17986:2:103;8989:123:74::2;::::0;::::2;17968:21:103::0;18025:2;18005:18;;;17998:30;18064:34;18044:18;;;18037:62;-1:-1:-1;;;18115:18:103;;;18108:32;18157:19;;8989:123:74::2;17958:224:103::0;8989:123:74::2;9123:21;9147:18:::0;;;:8:::2;:18;::::0;;;;9183:16:::2;::::0;::::2;::::0;9175:68:::2;;;::::0;-1:-1:-1;;;9175:68:74;;17178:2:103;9175:68:74::2;::::0;::::2;17160:21:103::0;17217:2;17197:18;;;17190:30;17256:34;17236:18;;;17229:62;-1:-1:-1;;;17307:18:103;;;17300:33;17350:19;;9175:68:74::2;17150:225:103::0;9175:68:74::2;9280:6;9262;:14;;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9315:15:74::2;9296:16;::::0;;::::2;:34:::0;-1:-1:-1;;;;;;8738:623:74:o;10945:1405::-;11077:33;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;11157:7:::1;::::0;:28:::1;::::0;-1:-1:-1;;;11157:28:74;;::::1;::::0;::::1;6129:25:103::0;;;11126:28:74::1;::::0;-1:-1:-1;;;;;11157:7:74::1;::::0;:17:::1;::::0;6102:18:103;;11157:28:74::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11126:59:::0;-1:-1:-1;11232:26:74::1;11216:12:::0;;:42:::1;::::0;::::1;;;;-1:-1:-1::0;;;11216:42:74::1;;;;;;;;;;11195:123;;;::::0;-1:-1:-1;;;11195:123:74;;19609:2:103;11195:123:74::1;::::0;::::1;19591:21:103::0;19648:2;19628:18;;;19621:30;19687:34;19667:18;;;19660:62;-1:-1:-1;;;19738:18:103;;;19731:32;19780:19;;11195:123:74::1;19581:224:103::0;11195:123:74::1;11386:21;11410:18:::0;;;:8:::1;:18;::::0;;;;11446:16:::1;::::0;::::1;::::0;11438:68:::1;;;::::0;-1:-1:-1;;;11438:68:74;;12393:2:103;11438:68:74::1;::::0;::::1;12375:21:103::0;12432:2;12412:18;;;12405:30;12471:34;12451:18;;;12444:62;-1:-1:-1;;;12522:18:103;;;12515:33;12565:19;;11438:68:74::1;12365:225:103::0;11438:68:74::1;11552:1;11524:25:::0;;;:15:::1;:25;::::0;;;;;11516:85:::1;;;::::0;-1:-1:-1;;;11516:85:74;;16358:2:103;11516:85:74::1;::::0;::::1;16340:21:103::0;16397:2;16377:18;;;16370:30;16436:34;16416:18;;;16409:62;-1:-1:-1;;;16487:18:103;;;16480:41;16538:19;;11516:85:74::1;16330:233:103::0;11516:85:74::1;11612:29;11644:31:::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;;;11760:20;;::::1;::::0;:45;-1:-1:-1;11760:45:74::1;11739:128;;;::::0;-1:-1:-1;;;11739:128:74;;14730:2:103;11739:128:74::1;::::0;::::1;14712:21:103::0;14769:2;14749:18;;;14742:30;14808:34;14788:18;;;14781:62;-1:-1:-1;;;14859:18:103;;;14852:34;14903:19;;11739:128:74::1;14702:226:103::0;11739:128:74::1;11926:25;::::0;;;:15:::1;:25;::::0;;;;:30;;11955:1:::1;::::0;11926:25;:30:::1;::::0;11955:1;;11926:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;11973:31:74::1;::::0;;;:21:::1;:31;::::0;;;;;;;:42;;;;;;;;11966:49;;;12059:20;::::1;:45:::0;;12083:21;;11973:31;12059:45:::1;::::0;12083:21;;12059:45:::1;:::i;:::-;::::0;;;-1:-1:-1;;12133:15:74::1;12114:16;::::0;::::1;:34:::0;12225:20:::1;::::0;::::1;::::0;12208:14:::1;::::0;::::1;::::0;12183:22:::1;::::0;12208:37:::1;::::0;::::1;:::i;:::-;12260:83;::::0;;25097:25:103;;;25153:2;25138:18;;25131:34;;;25181:18;;;25174:34;;;25239:2;25224:18;;25217:34;;;12183:62:74;;-1:-1:-1;12260:83:74::1;::::0;25084:3:103;25069:19;12260:83:74::1;;;;;;;3197:1;;;;10945:1405:::0;;;;:::o;12788:181::-;12847:7;12866:20;12889:19;12899:8;12889:9;:19::i;:::-;12866:42;;12942:6;:20;;;12925:6;:14;;;:37;;;;:::i;:::-;12918:44;12788:181;-1:-1:-1;;;12788:181:74:o;3803:1130::-;3965:16;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;4125:12:::1;::::0;:16:::1;::::0;4140:1:::1;4125:16;:::i;:::-;4151:21;4175:18:::0;;;:8:::1;:18;::::0;;;;4211:16:::1;::::0;::::1;::::0;4114:27;;-1:-1:-1;4175:18:74;4211:21;4203:69:::1;;;::::0;-1:-1:-1;;;4203:69:74;;17582:2:103;4203:69:74::1;::::0;::::1;17564:21:103::0;17621:2;17601:18;;;17594:30;17660:34;17640:18;;;17633:62;-1:-1:-1;;;17711:18:103;;;17704:33;17754:19;;4203:69:74::1;17554:225:103::0;4203:69:74::1;4356:6;::::0;:29:::1;::::0;-1:-1:-1;;;4356:29:74;;::::1;::::0;::::1;24015:25:103::0;;;-1:-1:-1;;;;;24076:32:103;;;24056:18;;;24049:60;4338:15:74::1;::::0;4356:6:::1;::::0;:11:::1;::::0;23988:18:103;;4356:29:74::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4396:20:::0;;;4426:14:::1;::::0;::::1;:24:::0;;;4460:17:::1;::::0;::::1;:31:::0;;;4501:12:::1;::::0;::::1;:33:::0;;-1:-1:-1;;4501:33:74::1;::::0;;4426:24;-1:-1:-1;4544:23:74::1;:13;::::0;::::1;4560:7:::0;;4544:23:::1;:::i;:::-;-1:-1:-1::0;4577:14:74::1;::::0;::::1;:24:::0;;;4611:14:::1;::::0;::::1;:24:::0;;;4664:15:::1;4645:16;::::0;;::::1;:34:::0;;;4689:16:::1;::::0;::::1;:34:::0;;;;4765:14;;;-1:-1:-1;4765:14:74::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;4789:41:74::1;::::0;;;:28:::1;:41;::::0;;;;:43;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;4865:9:74;;4897:12:::1;::::0;::::1;::::0;4911:14:::1;::::0;::::1;::::0;4848:78:::1;::::0;::::1;::::0;::::1;::::0;4865:9;;4876:11;;4889:6;;4897:12:::1;;::::0;4911:14;4848:78:::1;:::i;:::-;;;;;;;;3197:1;;3803:1130:::0;;;;;;;:::o;5556:835::-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;5676:21:::1;5700:18:::0;;;:8:::1;:18;::::0;;;;5736:16:::1;::::0;::::1;::::0;5728:68:::1;;;::::0;-1:-1:-1;;;5728:68:74;;14326:2:103;5728:68:74::1;::::0;::::1;14308:21:103::0;14365:2;14345:18;;;14338:30;14404:34;14384:18;;;14377:62;-1:-1:-1;;;14455:18:103;;;14448:33;14498:19;;5728:68:74::1;14298:225:103::0;5728:68:74::1;5868:6;5845;:20;;;:29;;;;:::i;:::-;5827:6;:14;;;:47;;:118;;;-1:-1:-1::0;5891:20:74::1;::::0;::::1;::::0;:25;:53;::::1;;;;5938:6;5920;:14;;;:24;;5891:53;5806:206;;;::::0;-1:-1:-1;;;5806:206:74;;9592:2:103;5806:206:74::1;::::0;::::1;9574:21:103::0;9631:2;9611:18;;;9604:30;9670:34;9650:18;;;9643:62;-1:-1:-1;;;9721:18:103;;;9714:39;9770:19;;5806:206:74::1;9564:231:103::0;5806:206:74::1;6045:6;6027;:14;;;:24;6023:122;;6073:6;6055;:14;;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;6023:122:74::1;::::0;-1:-1:-1;6023:122:74::1;;6141:1;6124:14;::::0;::::1;:18:::0;6023:122:::1;6173:6;6155;:14;;;:24;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;6208:15:74::1;6189:16;::::0;::::1;:34:::0;6276:20:::1;::::0;::::1;::::0;6259:14:::1;::::0;::::1;::::0;6234:22:::1;::::0;6259:37:::1;::::0;::::1;:::i;:::-;6234:62:::0;-1:-1:-1;6311:73:74::1;6337:8:::0;719:10:59;6347:12:74::1;640:96:59::0;12356:169:74;12412:7;12432:15;12450:19;12460:8;12450:9;:19::i;:::-;:27;;;;;12494:6;;:23;;-1:-1:-1;;;12494:23:74;;;;;6129:25:103;;;12450:27:74;;-1:-1:-1;;;;;;12494:6:74;;;;:14;;6102:18:103;;12494:23:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;15540:2:103;3146:190:47;;;15522:21:103;15579:2;15559:18;;;15552:30;15618:34;15598:18;;;15591:62;-1:-1:-1;;;15669:18:103;;;15662:44;15723:19;;3146:190:47;15512:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;6985:36:103;;3531:14:47;;6973:2:103;6958:18;3531:14:47;;;;;;;1143:232:88;;:::o;6397:149:74:-;3089:38;-1:-1:-1;;;3089:19:74;:38::i;:::-;-1:-1:-1;;;;;3073:54:74;719:10:59;-1:-1:-1;;;;;3073:54:74;;3052:135;;;;-1:-1:-1;;;3052:135:74;;;;;;;:::i;:::-;6497:42:::1;6510:8;6520:18;6497:12;:42::i;1530:293:88:-:0;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;6129:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;6102:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;8020:2:103;1703:113:88;;;8002:21:103;8059:2;8039:18;;;8032:30;8098:34;8078:18;;;8071:62;-1:-1:-1;;;8149:18:103;;;8142:35;8194:19;;1703:113:88;7992:227:103;13976:336:74;14057:20;14080:18;14089:8;14080;:18::i;:::-;14057:41;;14109;14131:8;14141;14109:21;:41::i;:::-;14160:29;14170:8;14180;14160:9;:29::i;:::-;14254:51;14276:8;14286;14296;14254:51;;;;;;;;:::i;:::-;;;;;;;;13976:336;;;:::o;13807:163::-;13860:30;13935:27;-1:-1:-1;;;13935:19:74;:27::i;:::-;13902:61;;13807:163;:::o;3594:203::-;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;20420:2:103;4880:69:47;;;20402:21:103;20459:2;20439:18;;;20432:30;20498:34;20478:18;;;20471:62;-1:-1:-1;;;20549:18:103;;;20542:41;20600:19;;4880:69:47;20392:233:103;4880:69:47;3694:29:74::1;-1:-1:-1::0;;;3694:19:74::1;:29::i;:::-;3667:7;:57:::0;;-1:-1:-1;;;;;;3667:57:74::1;-1:-1:-1::0;;;;;3667:57:74;;;::::1;::::0;;;::::1;::::0;;3755:34:::1;-1:-1:-1::0;;;3755:19:74::1;:34::i;:::-;3734:6;:56:::0;;-1:-1:-1;;;;;;3734:56:74::1;-1:-1:-1::0;;;;;3734:56:74;;;::::1;::::0;;;::::1;::::0;;3594:203::o;14500:970::-;14638:18;14626:8;:30;;;;;;-1:-1:-1;;;14626:30:74;;;;;;;;;;14622:842;;;14709:18;14697:8;:30;;;;;;-1:-1:-1;;;14697:30:74;;;;;;;;;;:64;;;-1:-1:-1;14743:18:74;14731:8;:30;;;;;;-1:-1:-1;;;14731:30:74;;;;;;;;;;14697:64;14672:163;;;;-1:-1:-1;;;14672:163:74;;13514:2:103;14672:163:74;;;13496:21:103;13553:2;13533:18;;;13526:30;13592:34;13572:18;;;13565:62;-1:-1:-1;;;13643:18:103;;;13636:37;13690:19;;14672:163:74;13486:229:103;14672:163:74;14622:842;;;14868:18;14856:8;:30;;;;;;-1:-1:-1;;;14856:30:74;;;;;;;;;;14852:612;;;14939:18;14927:8;:30;;;;;;-1:-1:-1;;;14927:30:74;;;;;;;;;;:64;;;-1:-1:-1;14973:18:74;14961:8;:30;;;;;;-1:-1:-1;;;14961:30:74;;;;;;;;;;14927:64;14902:163;;;;-1:-1:-1;;;14902:163:74;;20012:2:103;14902:163:74;;;19994:21:103;20051:2;20031:18;;;20024:30;20090:34;20070:18;;;20063:62;-1:-1:-1;;;20141:18:103;;;20134:37;20188:19;;14902:163:74;19984:229:103;14852:612:74;15098:18;15086:8;:30;;;;;;-1:-1:-1;;;15086:30:74;;;;;;;;;;15082:382;;;15169:18;15157:8;:30;;;;;;-1:-1:-1;;;15157:30:74;;;;;;;;;;15132:129;;;;-1:-1:-1;;;15132:129:74;;22368:2:103;15132:129:74;;;22350:21:103;22407:2;22387:18;;;22380:30;22446:34;22426:18;;;22419:62;-1:-1:-1;;;22497:18:103;;;22490:37;22544:19;;15132:129:74;22340:229:103;15082:382:74;15294:18;15282:8;:30;;;;;;-1:-1:-1;;;15282:30:74;;;;;;;;;;15278:186;;;15328:45;;-1:-1:-1;;;15328:45:74;;18389:2:103;15328:45:74;;;18371:21:103;18428:2;18408:18;;;18401:30;18467:34;18447:18;;;18440:62;-1:-1:-1;;;18518:18:103;;;18511:33;18561:19;;15328:45:74;18361:225:103;15278:186:74;15404:49;;-1:-1:-1;;;15404:49:74;;16770:2:103;15404:49:74;;;16752:21:103;16809:2;16789:18;;;16782:30;16848:34;16828:18;;;16821:62;-1:-1:-1;;;16899:18:103;;;16892:37;16946:19;;15404:49:74;16742:229:103;14318:176:74;14396:18;;;;:8;:18;;;;;:24;;;;:35;;14423:8;;-1:-1:-1;;14396:35:74;;;;;;14423:8;;14396:35;;;;;-1:-1:-1;;;14396:35:74;;;;;;;;;;;;;-1:-1:-1;;14441:18:74;;;;:8;:18;;;;;14472:15;14441:28;;;;:46;14318:176::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:512:103;;120:3;113:4;105:6;101:17;97:27;87:2;;142:5;135;128:20;87:2;175:6;169:13;201:18;197:2;194:26;191:2;;;223:18;;:::i;:::-;267:55;310:2;291:13;;-1:-1:-1;;287:27:103;316:4;283:38;267:55;:::i;:::-;347:2;338:7;331:19;393:3;386:4;381:2;373:6;369:15;365:26;362:35;359:2;;;414:5;407;400:20;359:2;431:64;492:2;485:4;476:7;472:18;465:4;457:6;453:17;431:64;:::i;:::-;513:7;77:449;-1:-1:-1;;;;77:449:103:o;531:160::-;623:13;;665:1;655:12;;645:2;;681:1;678;671:12;696:257;;808:2;796:9;787:7;783:23;779:32;776:2;;;829:6;821;814:22;776:2;873:9;860:23;892:31;917:5;892:31;:::i;958:261::-;;1081:2;1069:9;1060:7;1056:23;1052:32;1049:2;;;1102:6;1094;1087:22;1049:2;1139:9;1133:16;1158:31;1183:5;1158:31;:::i;1224:913::-;;;;;;1406:3;1394:9;1385:7;1381:23;1377:33;1374:2;;;1428:6;1420;1413:22;1374:2;1472:9;1459:23;1491:31;1516:5;1491:31;:::i;:::-;1541:5;-1:-1:-1;1593:2:103;1578:18;;1565:32;;-1:-1:-1;1648:2:103;1633:18;;1620:32;1671:18;1701:14;;;1698:2;;;1733:6;1725;1718:22;1698:2;1776:6;1765:9;1761:22;1751:32;;1821:7;1814:4;1810:2;1806:13;1802:27;1792:2;;1848:6;1840;1833:22;1792:2;1893;1880:16;1919:2;1911:6;1908:14;1905:2;;;1940:6;1932;1925:22;1905:2;1990:7;1985:2;1976:6;1972:2;1968:15;1964:24;1961:37;1958:2;;;2016:6;2008;2001:22;1958:2;1364:773;;;;-1:-1:-1;;2052:2:103;2044:11;;2127:2;2112:18;2099:32;;1364:773;-1:-1:-1;;;1364:773:103:o;2142:1025::-;;2291:2;2279:9;2270:7;2266:23;2262:32;2259:2;;;2312:6;2304;2297:22;2259:2;2350:9;2344:16;2379:18;2420:2;2412:6;2409:14;2406:2;;;2441:6;2433;2426:22;2406:2;2469:22;;;;2525:4;2507:16;;;2503:27;2500:2;;;2548:6;2540;2533:22;2500:2;2579:21;2595:4;2579:21;:::i;:::-;2630:2;2624:9;2642:33;2667:7;2642:33;:::i;:::-;2684:22;;2752:2;2744:11;;;2738:18;2722:14;;;2715:42;2789:55;2840:2;2832:11;;2789:55;:::i;:::-;2784:2;2777:5;2773:14;2766:79;2884:2;2880;2876:11;2870:18;2913:2;2903:8;2900:16;2897:2;;;2934:6;2926;2919:22;2897:2;2975:55;3022:7;3011:8;3007:2;3003:17;2975:55;:::i;:::-;2970:2;2963:5;2959:14;2952:79;;3078:3;3074:2;3070:12;3064:19;3058:3;3051:5;3047:15;3040:44;3131:3;3127:2;3123:12;3117:19;3111:3;3104:5;3100:15;3093:44;3156:5;3146:15;;;;;2249:918;;;;:::o;3172:841::-;;3297:3;3341:2;3329:9;3320:7;3316:23;3312:32;3309:2;;;3362:6;3354;3347:22;3309:2;3393:19;3409:2;3393:19;:::i;:::-;3380:32;;3435:53;3478:9;3435:53;:::i;:::-;3428:5;3421:68;3542:2;3531:9;3527:18;3521:25;3516:2;3509:5;3505:14;3498:49;3600:2;3589:9;3585:18;3579:25;3574:2;3567:5;3563:14;3556:49;3658:2;3647:9;3643:18;3637:25;3632:2;3625:5;3621:14;3614:49;3717:3;3706:9;3702:19;3696:26;3690:3;3683:5;3679:15;3672:51;3777:3;3766:9;3762:19;3756:26;3750:3;3743:5;3739:15;3732:51;3837:3;3826:9;3822:19;3816:26;3810:3;3803:5;3799:15;3792:51;3897:3;3886:9;3882:19;3876:26;3870:3;3863:5;3859:15;3852:51;3922:3;3978:2;3967:9;3963:18;3957:25;3952:2;3945:5;3941:14;3934:49;;4002:5;3992:15;;;3277:736;;;;:::o;4018:190::-;;4130:2;4118:9;4109:7;4105:23;4101:32;4098:2;;;4151:6;4143;4136:22;4098:2;-1:-1:-1;4179:23:103;;4088:120;-1:-1:-1;4088:120:103:o;4213:194::-;;4336:2;4324:9;4315:7;4311:23;4307:32;4304:2;;;4357:6;4349;4342:22;4304:2;-1:-1:-1;4385:16:103;;4294:113;-1:-1:-1;4294:113:103:o;4412:258::-;;;4541:2;4529:9;4520:7;4516:23;4512:32;4509:2;;;4562:6;4554;4547:22;4509:2;-1:-1:-1;;4590:23:103;;;4660:2;4645:18;;;4632:32;;-1:-1:-1;4499:171:103:o;4675:326::-;;;;4821:2;4809:9;4800:7;4796:23;4792:32;4789:2;;;4842:6;4834;4827:22;4789:2;-1:-1:-1;;4870:23:103;;;4940:2;4925:18;;4912:32;;-1:-1:-1;4991:2:103;4976:18;;;4963:32;;4779:222;-1:-1:-1;4779:222:103:o;5269:257::-;;5348:5;5342:12;5375:6;5370:3;5363:19;5391:63;5447:6;5440:4;5435:3;5431:14;5424:4;5417:5;5413:16;5391:63;:::i;:::-;5508:2;5487:15;-1:-1:-1;;5483:29:103;5474:39;;;;5515:4;5470:50;;5318:208;-1:-1:-1;;5318:208:103:o;5531:239::-;5614:1;5607:5;5604:12;5594:2;;5659:10;5654:3;5650:20;5647:1;5640:31;5694:4;5691:1;5684:15;5722:4;5719:1;5712:15;5594:2;5746:18;;5584:186::o;6165:217::-;;6312:2;6301:9;6294:21;6332:44;6372:2;6361:9;6357:18;6349:6;6332:44;:::i;6616:212::-;6764:2;6749:18;;6776:46;6753:9;6804:6;6776:46;:::i;11788:398::-;11990:2;11972:21;;;12029:2;12009:18;;;12002:30;12068:34;12063:2;12048:18;;12041:62;-1:-1:-1;;;12134:2:103;12119:18;;12112:32;12176:3;12161:19;;11962:224::o;22574:1080::-;;22751:2;22740:9;22733:21;22796:6;22790:13;22785:2;22774:9;22770:18;22763:41;22858:2;22850:6;22846:15;22840:22;22835:2;22824:9;22820:18;22813:50;22917:2;22909:6;22905:15;22899:22;22894:2;22883:9;22879:18;22872:50;22969:2;22961:6;22957:15;22951:22;22982:62;23039:3;23028:9;23024:19;23010:12;22982:62;:::i;:::-;;23093:3;23085:6;23081:16;23075:23;23117:6;23160:2;23154:3;23143:9;23139:19;23132:31;23186:53;23234:3;23223:9;23219:19;23203:14;23186:53;:::i;:::-;23172:67;;23294:3;23286:6;23282:16;23276:23;23270:3;23259:9;23255:19;23248:52;23355:3;23347:6;23343:16;23337:23;23331:3;23320:9;23316:19;23309:52;23398:3;23390:6;23386:16;23380:23;23422:3;23461:2;23456;23445:9;23441:18;23434:30;23501:2;23493:6;23489:15;23483:22;23473:32;;;23524:3;23563:2;23558;23547:9;23543:18;23536:30;23620:2;23612:6;23608:15;23602:22;23597:2;23586:9;23582:18;23575:50;;;;23642:6;23634:14;;;22723:931;;;;:::o;25262:389::-;25492:25;;;25480:2;25465:18;;25526:55;25577:2;25562:18;;25554:6;25526:55;:::i;:::-;25590;25641:2;25630:9;25626:18;25618:6;25590:55;:::i;25656:524::-;25929:25;;;25985:2;25970:18;;25963:34;;;-1:-1:-1;;;;;26033:32:103;;26028:2;26013:18;;26006:60;25916:3;25901:19;;26075:55;26126:2;26111:18;;26103:6;26075:55;:::i;:::-;26167:6;26161:3;26150:9;26146:19;26139:35;25883:297;;;;;;;;:::o;26185:275::-;26256:2;26250:9;26321:2;26302:13;;-1:-1:-1;;26298:27:103;26286:40;;26356:18;26341:34;;26377:22;;;26338:62;26335:2;;;26403:18;;:::i;:::-;26439:2;26432:22;26230:230;;-1:-1:-1;26230:230:103:o;26465:128::-;;26536:1;26532:6;26529:1;26526:13;26523:2;;;26542:18;;:::i;:::-;-1:-1:-1;26578:9:103;;26513:80::o;26598:125::-;;26666:1;26663;26660:8;26657:2;;;26671:18;;:::i;:::-;-1:-1:-1;26708:9:103;;26647:76::o;26728:258::-;26800:1;26810:113;26824:6;26821:1;26818:13;26810:113;;;26900:11;;;26894:18;26881:11;;;26874:39;26846:2;26839:10;26810:113;;;26941:6;26938:1;26935:13;26932:2;;;26976:1;26967:6;26962:3;26958:16;26951:27;26932:2;;26781:205;;;:::o;26991:380::-;27076:1;27066:12;;27123:1;27113:12;;;27134:2;;27188:4;27180:6;27176:17;27166:27;;27134:2;27241;27233:6;27230:14;27210:18;27207:38;27204:2;;;27287:10;27282:3;27278:20;27275:1;27268:31;27322:4;27319:1;27312:15;27350:4;27347:1;27340:15;27204:2;;27046:325;;;:::o;27376:135::-;;-1:-1:-1;;27436:17:103;;27433:2;;;27456:18;;:::i;:::-;-1:-1:-1;27503:1:103;27492:13;;27423:88::o;27516:127::-;27577:10;27572:3;27568:20;27565:1;27558:31;27608:4;27605:1;27598:15;27632:4;27629:1;27622:15;27648:127;27709:10;27704:3;27700:20;27697:1;27690:31;27740:4;27737:1;27730:15;27764:4;27761:1;27754:15;27780:131;-1:-1:-1;;;;;27855:31:103;;27845:42;;27835:2;;27901:1;27898;27891:12"},"methodIdentifiers":{"bundles()":"18442e63","burn(uint256)":"42966c68","close(uint256)":"0aebeb4e","collateralizePolicy(uint256,bytes32,uint256)":"4d03f9b7","create(address,uint256,bytes,uint256)":"c0e71404","defund(uint256,uint256)":"c397ae39","fund(uint256,uint256)":"a65e2cfd","getBalance(uint256)":"1e010439","getBundle(uint256)":"2d0821b7","getCapacity(uint256)":"bcd5349f","getFilter(uint256)":"2c92fb99","getOwner(uint256)":"c41a360a","getState(uint256)":"44c9af28","getToken()":"21df0da7","getTotalValueLocked(uint256)":"3f5d9235","initialize(address)":"c4d66de8","lock(uint256)":"dd467064","processPayout(uint256,bytes32,uint256)":"b299cc26","processPremium(uint256,bytes32,uint256)":"b7267420","releasePolicy(uint256,bytes32)":"bb540df6","unburntBundles(uint256)":"c559783e","unlock(uint256)":"6198e339"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundleCapitalProvided\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundleCapitalWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogBundlePayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundlePolicyCollateralized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"LogBundlePolicyReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"oldState\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IBundle.BundleState\",\"name\":\"newState\",\"type\":\"uint8\"}],\"name\":\"LogBundleStateChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"filter_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getFilter\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contract BundleToken\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"remainingCollateralAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"unburntBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract is used to manage bundles, which are collections of policies. - The contract imports other Solidity contracts such as `PolicyController.sol`, `CoreController.sol`, and `BundleToken.sol`. - The contract implements the `IBundle` interface and extends the `CoreController` contract. - It defines several mappings to store information about bundles, active policies, locked capital per policy, and the number of unburt bundles for each risk pool. - There is a private variable `_bundleCount` to keep track of the number of bundles created. - The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`. Functions: - `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment. - `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token. - `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance. - `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle. - `lock()`: Locks a bundle of assets by changing its state to \\\"Locked.\\\" - `unlock()`: Unlocks a bundle, changing its state back to \\\"Active.\\\" - `close()`: Closes a bundle of policies. - `burn()`: Burns a bundle, changing its state to \\\"Burned.\\\" - `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. - `processPremium()`: Processes the premium payment for a given bundle and updates its balance. - `processPayout()`: Processes a payout for a policy from a bundle. - `releasePolicy()`: Releases a policy and updates the bundle's capital. The contract includes various modifiers and event emitters to enforce access control and emit relevant events. Overall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/BundleController.sol\":\"BundleController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/modules/ComponentController.sol":{"ComponentController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archiveFromComponentOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archiveFromInstanceOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"components","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getComponent","outputs":[{"internalType":"contract IComponent","name":"component","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"componentAddress","type":"address"}],"name":"getComponentId","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getComponentState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"componentState","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getComponentType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getOracleId","outputs":[{"internalType":"uint256","name":"oracleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"}],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"_policyFlow","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getProductId","outputs":[{"internalType":"uint256","name":"productId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"}],"name":"getRequiredRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracles","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"products","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IComponent","name":"component","type":"address"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"resume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"riskpools","outputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"suspend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6121f980620000ee6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636bc607b3116100f9578063ba80b8ed11610097578063dd51c86a11610071578063dd51c86a146103a9578063e61ae297146103c9578063fabc1cbc146103dc578063ff3f3883146103ef576101a9565b8063ba80b8ed1461037b578063c4d66de81461038e578063c71e261f146103a1576101a9565b8063a054381f116100d3578063a054381f14610345578063a5c0f5a11461034d578063b759f95414610360578063ba62fbe414610373576101a9565b80636bc607b31461030c5780639f77a6051461031f578063a0355f4e14610332576101a9565b80633920200c116101665780634f27da18116101405780634f27da18146102735780634f558e791461029e5780635af89a47146102c95780635e966e45146102dc576101a9565b80633920200c1461023a578063414000b51461024d5780634b86584614610260576101a9565b806301267951146101ae57806309f63ed9146101c35780630f5da3a6146101eb578063136439dd146101fe5780632857373a146102115780632b1c7f7314610227575b600080fd5b6101c16101bc366004611f6e565b610402565b005b6101d66101d136600461201d565b610739565b60405190151581526020015b60405180910390f35b6101c16101f936600461201d565b61074e565b6101c161020c36600461201d565b610827565b6102196108fe565b6040519081526020016101e2565b610219610235366004611f6e565b61090f565b6101d661024836600461201d565b6109da565b6101c161025b36600461201d565b6109e7565b6101c161026e36600461201d565b610ac0565b61028661028136600461201d565b610b99565b6040516001600160a01b0390911681526020016101e2565b6101d66102ac36600461201d565b6000908152600260205260409020546001600160a01b0316151590565b6102196102d7366004611fe5565b610c09565b6102ff6102ea36600461201d565b60009081526005602052604090205460ff1690565b6040516101e29190612088565b6101c161031a36600461201d565b610e00565b61021961032d36600461201d565b610e51565b6101c161034036600461201d565b610e5e565b610219610f37565b61021961035b36600461201d565b610f43565b6101c161036e36600461201d565b610f50565b600c54610219565b6101d661038936600461201d565b6110d5565b6101c161039c366004611f6e565b6110e2565b610219611260565b6103bc6103b736600461201d565b61126c565b6040516101e29190612096565b6102866103d736600461201d565b611309565b6101c16103ea36600461201d565b61137c565b6102196103fd36600461201d565b611453565b61042374436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b03161461045c5760405162461bcd60e51b8152600401610453906120ef565b60405180910390fd5b6001600160a01b038116600090815260046020526040902054156104d15760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4343522d3030333a434f4d504f4e454e545f414c52454144595f60448201526545584953545360d01b6064820152608401610453565b60036000826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190611fcd565b8152602001908152602001600020546000146105b85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4343522d3030343a434f4d504f4e454e545f4e414d455f414c5260448201526a454144595f45584953545360a81b6064820152608401610453565b60006105c382611548565b90507fd9b3d18a6293c46c667fe6a98468c457078489f2e16e356bb4c77bb2e22d2016826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561061f57600080fd5b505afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106579190611fcd565b836001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c89190612001565b84846040516106da9493929190612059565b60405180910390a1816001600160a01b031663638ce0ba6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050505050565b6000610746600883611830565b90505b919050565b61077176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120a4565b6107ac81600661184d565b6040518181527f9e6d5f1811033619318d2fbe9ee7ec46c830175b39f7885248b51e0decb5837a9060200160405180910390a160006107ea82610b99565b9050806001600160a01b031663be169e7e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b61084874436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146108785760405162461bcd60e51b8152600401610453906120ef565b61088381600461184d565b6040518181527f45dbc7e529df39b8d70de83cc9e1d38c088e6ba21ab836e976f7310f1cbb8afd9060200160405180910390a160006108c182610b99565b9050806001600160a01b031663d73cd9926040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a60086118e7565b905090565b60006001600160a01b0382166109735760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3030363a434f4d504f4e454e545f414444524553535f6044820152635a45524f60e01b6064820152608401610453565b506001600160a01b038116600090815260046020526040902054806107495760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4343522d3030373a434f4d504f4e454e545f554e4b4e4f574e006044820152606401610453565b6000610746600683611830565b610a0a76496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610a3a5760405162461bcd60e51b8152600401610453906120a4565b610a4581600361184d565b6040518181527fd24597f0a62b78258ebd8c2fa52051cf673a5000d14d2fb619c91b1ed95c538a9060200160405180910390a16000610a8382610b99565b9050806001600160a01b031663a18f5ae26040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b610ae376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610b135760405162461bcd60e51b8152600401610453906120a4565b610b1e81600561184d565b6040518181527f55d2d8495549e354e6ee012c5aa183eb0e08ee2f256349afb0f7f74d1940f9b39060200160405180910390a16000610b5c82610b99565b9050806001600160a01b031663b3fca9bd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000818152600260205260409020546001600160a01b0316806107495760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030353a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b60006001826002811115610c2d57634e487b7160e01b600052602160045260246000fd5b1415610cc057600160009054906101000a90046001600160a01b03166001600160a01b031663775a40486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b505afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190611fcd565b9050610749565b6000826002811115610ce257634e487b7160e01b600052602160045260246000fd5b1415610d3657600160009054906101000a90046001600160a01b03166001600160a01b031663d49d21c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b6002826002811115610d5857634e487b7160e01b600052602160045260246000fd5b1415610dac57600160009054906101000a90046001600160a01b03166001600160a01b0316633ffdd2f36040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b60405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3031303a434f4d504f4e454e545f545950455f554e4b6044820152632727aba760e11b6064820152608401610453565b610e2174436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120ef565b60006107466006836118f1565b610e8176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610eb15760405162461bcd60e51b8152600401610453906120a4565b610ebc81600261184d565b6040518181527fd541b5f22e9e402fb32220d566405510c49372d27b4f47f1d0da1a153ea2007c9060200160405180910390a16000610efa82610b99565b9050806001600160a01b031663bd1fe5d06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a600a6118e7565b60006107466008836118f1565b610f7376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610fa35760405162461bcd60e51b8152600401610453906120a4565b610fae81600361184d565b6000610fb982610b99565b9050610fc4826109da565b1561106757806001600160a01b031663637d08f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190611f91565b6000838152600d6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b6040518281527ff8d33755281aa5d41b12a70ae3947ee164ef541d786400d733b0b89df719859e9060200160405180910390a1806001600160a01b0316631b867c636040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a83611830565b600054610100900460ff16158080156111025750600054600160ff909116105b8061111c5750303b15801561111c575060005460ff166001145b61117f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff1916600117905580156111a2576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111cc600090565b6541636365737360d01b1461120e576111ed6541636365737360d01b611460565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6112166118fd565b801561125c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061090a60066118e7565b6000611279600683611830565b1561128657506001610749565b611291600883611830565b1561129e57506000610749565b6112a9600a83611830565b156112b657506002610749565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030383a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b6000611314826109da565b6113605760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4343522d3031313a554e4b4e4f574e5f50524f445543545f49446044820152606401610453565b506000908152600d60205260409020546001600160a01b031690565b61139d74436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146113cd5760405162461bcd60e51b8152600401610453906120ef565b6113d881600361184d565b6040518181527f8e78ca4cc29c505d9901fd1582ba8584083396ce204151eddd3e008749a24fe09060200160405180910390a1600061141682610b99565b9050806001600160a01b03166359dacc6a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a836118f1565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156114aa57600080fd5b505afa1580156114be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e29190611f91565b90506001600160a01b0381166107495760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610453565b600c80546000918261155983612161565b9190505550600c54905061156e81600161184d565b60405163d0e0ba9560e01b8152600481018290526001600160a01b0383169063d0e0ba9590602401600060405180830381600087803b1580156115b057600080fd5b505af11580156115c4573d6000803e3d6000fd5b505050600082815260026020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516305f5f79f60e21b815291518695506003949391926317d7de7c926004808301939192829003018186803b15801561162d57600080fd5b505afa158015611641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116659190611fcd565b8152602001908152602001600020819055508060046000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663e0815f0d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116da57600080fd5b505afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190611fad565b156117285761172260068261196a565b50610749565b816001600160a01b0316639a82f8906040518163ffffffff1660e01b815260040160206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190611fad565b156117a95761172260088261196a565b816001600160a01b031663258d560c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117e257600080fd5b505afa1580156117f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181a9190611fad565b156107495761182a600a8261196a565b50919050565b600081815260018301602052604081205415155b90505b92915050565b60008281526005602052604090205460ff166118698183611976565b6000838152600560205260409020805483919060ff191660018360068111156118a257634e487b7160e01b600052602160045260246000fd5b02179055507fd2248d3e400f6333d5de6d43446115557cb942e75002aa7ad26f9cac9b105b1a8382846040516118da93929190612138565b60405180910390a1505050565b6000610746825490565b60006118448383611ee7565b600054610100900460ff166119685760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610453565b565b60006118448383611f1f565b81600681111561199657634e487b7160e01b600052602160045260246000fd5b8160068111156119b657634e487b7160e01b600052602160045260246000fd5b1415611a1c5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4343522d3032303a534f555243455f414e445f5441524745545f60448201526e14d510551157d2511153951250d053608a1b6064820152608401610453565b6000826006811115611a3e57634e487b7160e01b600052602160045260246000fd5b1415611ac9576001816006811115611a6657634e487b7160e01b600052602160045260246000fd5b14611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d3032313a435245415445445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b61125c565b6001826006811115611aeb57634e487b7160e01b600052602160045260246000fd5b1415611b9b576003816006811115611b1357634e487b7160e01b600052602160045260246000fd5b1480611b3e57506002816006811115611b3c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d32323a50524f504f5345445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b6002826006811115611bbd57634e487b7160e01b600052602160045260246000fd5b1415611c195760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4343522d3032333a4445434c494e45445f49535f46494e414c5f604482015264535441544560d81b6064820152608401610453565b6003826006811115611c3b57634e487b7160e01b600052602160045260246000fd5b1415611cea576004816006811115611c6357634e487b7160e01b600052602160045260246000fd5b1480611c8e57506005816006811115611c8c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032343a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6004826006811115611d0c57634e487b7160e01b600052602160045260246000fd5b1415611dbb576003816006811115611d3457634e487b7160e01b600052602160045260246000fd5b1480611d5f57506006816006811115611d5d57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032353a5041555345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6005826006811115611ddd57634e487b7160e01b600052602160045260246000fd5b1415611e8f576003816006811115611e0557634e487b7160e01b600052602160045260246000fd5b1480611e3057506006816006811115611e2e57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a4343522d3032363a53555350454e4445445f494e56414c49445f6044820152692a2920a729a4aa24a7a760b11b6064820152608401610453565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032373a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610453565b6000826000018281548110611f0c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054611f6657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611847565b506000611847565b600060208284031215611f7f578081fd5b8135611f8a8161219e565b9392505050565b600060208284031215611fa2578081fd5b8151611f8a8161219e565b600060208284031215611fbe578081fd5b81518015158114611f8a578182fd5b600060208284031215611fde578081fd5b5051919050565b600060208284031215611ff6578081fd5b8135611f8a816121b6565b600060208284031215612012578081fd5b8151611f8a816121b6565b60006020828403121561202e578081fd5b5035919050565b6007811061204557612045612188565b9052565b6003811061204557612045612188565b8481526080810161206d6020830186612049565b6001600160a01b039390931660408201526060015292915050565b602081016118478284612035565b602081016118478284612049565b6020808252602b908201527f4552524f523a4343522d3030323a4e4f545f494e5354414e43455f4f5045524160408201526a544f525f5345525649434560a81b606082015260800190565b60208082526029908201527f4552524f523a4343522d3030313a4e4f545f434f4d504f4e454e545f4f574e45604082015268525f5345525649434560b81b606082015260800190565b8381526060810161214c6020830185612035565b6121596040830184612035565b949350505050565b600060001982141561218157634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146121b357600080fd5b50565b600381106121b357600080fdfea26469706673582212207b6d7253c522420b015643d5d348125e0e3e34a0bb911fa3cf3939a9d465163864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x21F9 DUP1 PUSH3 0xEE PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BC607B3 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xBA80B8ED GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xDD51C86A GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xDD51C86A EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xE61AE297 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0xFABC1CBC EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0xFF3F3883 EQ PUSH2 0x3EF JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xBA80B8ED EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0xC71E261F EQ PUSH2 0x3A1 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xA054381F GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xA5C0F5A1 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xB759F954 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0xBA62FBE4 EQ PUSH2 0x373 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x6BC607B3 EQ PUSH2 0x30C JUMPI DUP1 PUSH4 0x9F77A605 EQ PUSH2 0x31F JUMPI DUP1 PUSH4 0xA0355F4E EQ PUSH2 0x332 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x3920200C GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x4F27DA18 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x4F27DA18 EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x4F558E79 EQ PUSH2 0x29E JUMPI DUP1 PUSH4 0x5AF89A47 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x5E966E45 EQ PUSH2 0x2DC JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x3920200C EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x414000B5 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x4B865846 EQ PUSH2 0x260 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x1267951 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x9F63ED9 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xF5DA3A6 EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x136439DD EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x2857373A EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x2B1C7F73 EQ PUSH2 0x227 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x402 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1D6 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x739 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C1 PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x74E JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E2 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x235 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x90F JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x9E7 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xAC0 JUMP JUMPDEST PUSH2 0x286 PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xB99 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x2AC CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1FE5 JUMP JUMPDEST PUSH2 0xC09 JUMP JUMPDEST PUSH2 0x2FF PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x2088 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x31A CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE00 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x32D CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE51 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x340 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE5E JUMP JUMPDEST PUSH2 0x219 PUSH2 0xF37 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x35B CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x36E CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xF50 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x219 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x10D5 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x10E2 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x1260 JUMP JUMPDEST PUSH2 0x3BC PUSH2 0x3B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x126C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x2096 JUMP JUMPDEST PUSH2 0x286 PUSH2 0x3D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x1309 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x137C JUMP JUMPDEST PUSH2 0x219 PUSH2 0x3FD CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x1453 JUMP JUMPDEST PUSH2 0x423 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x45C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030333A434F4D504F4E454E545F414C52454144595F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x455849535453 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x17D7DE7C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x522 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x0 EQ PUSH2 0x5B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030343A434F4D504F4E454E545F4E414D455F414C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x454144595F455849535453 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C3 DUP3 PUSH2 0x1548 JUMP JUMPDEST SWAP1 POP PUSH32 0xD9B3D18A6293C46C667FE6A98468C457078489F2E16E356BB4C77BB2E22D2016 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x17D7DE7C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x61F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x633 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x657 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x15DAE03E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x690 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6C8 SWAP2 SWAP1 PUSH2 0x2001 JUMP JUMPDEST DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x6DA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x638CE0BA PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x731 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x8 DUP4 PUSH2 0x1830 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x771 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0x7AC DUP2 PUSH1 0x6 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x9E6D5F1811033619318D2FBE9EE7EC46C830175B39F7885248B51E0DECB5837A SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x7EA DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBE169E7E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x848 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x878 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH2 0x883 DUP2 PUSH1 0x4 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x45DBC7E529DF39B8D70DE83CC9E1D38C088E6BA21AB836E976F7310F1CBB8AFD SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x8C1 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD73CD992 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0x8 PUSH2 0x18E7 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x973 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030363A434F4D504F4E454E545F414444524553535F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5A45524F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030373A434F4D504F4E454E545F554E4B4E4F574E00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x6 DUP4 PUSH2 0x1830 JUMP JUMPDEST PUSH2 0xA0A PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA3A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xD24597F0A62B78258EBD8C2FA52051CF673A5000D14D2FB619C91B1ED95C538A SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xA83 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA18F5AE2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAE3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xB1E DUP2 PUSH1 0x5 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x55D2D8495549E354E6EE012C5AA183EB0E08EE2F256349AFB0F7F74D1940F9B3 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xB5C DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3FCA9BD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030353A494E56414C49445F434F4D504F4E454E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xCC0 JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x775A4048 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCB9 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST SWAP1 POP PUSH2 0x749 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCE2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xD36 JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD49D21C0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xDAC JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3FFDD2F3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3031303A434F4D504F4E454E545F545950455F554E4B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x2727ABA7 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH2 0xE21 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x6 DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH2 0xE81 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xEB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xEBC DUP2 PUSH1 0x2 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xD541B5F22E9E402FB32220D566405510C49372D27B4F47F1D0DA1A153EA2007C SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xEFA DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBD1FE5D0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0xA PUSH2 0x18E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x8 DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH2 0xF73 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xFAE DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFB9 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP PUSH2 0xFC4 DUP3 PUSH2 0x9DA JUMP JUMPDEST ISZERO PUSH2 0x1067 JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x637D08F4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1002 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1016 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x103A SWAP2 SWAP1 PUSH2 0x1F91 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xF8D33755281AA5D41B12A70AE3947EE164EF541D786400D733B0B89DF719859E SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1B867C63 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0xA DUP4 PUSH2 0x1830 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1102 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x111C JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x111C JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x117F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x11A2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x11CC PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x120E JUMPI PUSH2 0x11ED PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1216 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x125C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0x6 PUSH2 0x18E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1279 PUSH1 0x6 DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x1286 JUMPI POP PUSH1 0x1 PUSH2 0x749 JUMP JUMPDEST PUSH2 0x1291 PUSH1 0x8 DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x129E JUMPI POP PUSH1 0x0 PUSH2 0x749 JUMP JUMPDEST PUSH2 0x12A9 PUSH1 0xA DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x12B6 JUMPI POP PUSH1 0x2 PUSH2 0x749 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030383A494E56414C49445F434F4D504F4E454E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1314 DUP3 PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x1360 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3031313A554E4B4E4F574E5F50524F445543545F4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x453 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x139D PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH2 0x13D8 DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x8E78CA4CC29C505D9901FD1582BA8584083396CE204151EDDD3E008749A24FE0 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x1416 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x59DACC6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0xA DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14E2 SWAP2 SWAP1 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0x0 SWAP2 DUP3 PUSH2 0x1559 DUP4 PUSH2 0x2161 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0xC SLOAD SWAP1 POP PUSH2 0x156E DUP2 PUSH1 0x1 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD0E0BA95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xD0E0BA95 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 MLOAD PUSH4 0x5F5F79F PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 MLOAD DUP7 SWAP6 POP PUSH1 0x3 SWAP5 SWAP4 SWAP2 SWAP3 PUSH4 0x17D7DE7C SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x162D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1665 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE0815F0D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1712 SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x1728 JUMPI PUSH2 0x1722 PUSH1 0x6 DUP3 PUSH2 0x196A JUMP JUMPDEST POP PUSH2 0x749 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9A82F890 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1775 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1799 SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x17A9 JUMPI PUSH2 0x1722 PUSH1 0x8 DUP3 PUSH2 0x196A JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x258D560C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x181A SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x749 JUMPI PUSH2 0x182A PUSH1 0xA DUP3 PUSH2 0x196A JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1869 DUP2 DUP4 PUSH2 0x1976 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SWAP2 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x18A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH32 0xD2248D3E400F6333D5DE6D43446115557CB942E75002AA7AD26F9CAC9B105B1A DUP4 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0x18DA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2138 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1844 DUP4 DUP4 PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1968 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1844 DUP4 DUP4 PUSH2 0x1F1F JUMP JUMPDEST DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1996 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x19B6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1A1C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032303A534F555243455F414E445F5441524745545F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x14D510551157D2511153951250D053 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1A3E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1AC9 JUMPI PUSH1 0x1 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1A66 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032313A435245415445445F494E56414C49445F5452 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x20A729A4AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH2 0x125C JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1AEB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1B9B JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B13 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1B3E JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B3C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D32323A50524F504F5345445F494E56414C49445F5452 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x20A729A4AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1BBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1C19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032333A4445434C494E45445F49535F46494E414C5F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5354415445 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1CEA JUMPI PUSH1 0x4 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C63 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1C8E JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C8C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032343A4143544956455F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x4 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D0C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D34 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1D5F JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D5D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032353A5041555345445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x5 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1DDD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1E8F JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1E05 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1E30 JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1E2E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032363A53555350454E4445445F494E56414C49445F PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x2A2920A729A4AA24A7A7 PUSH1 0xB1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032373A494E495449414C5F53544154455F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12105391131151 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1F0C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1F66 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1847 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1847 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F7F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F8A DUP2 PUSH2 0x219E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FA2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1F8A DUP2 PUSH2 0x219E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FBE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1F8A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FDE JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FF6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F8A DUP2 PUSH2 0x21B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2012 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1F8A DUP2 PUSH2 0x21B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x202E JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x2045 JUMPI PUSH2 0x2045 PUSH2 0x2188 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2045 JUMPI PUSH2 0x2045 PUSH2 0x2188 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x206D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1847 DUP3 DUP5 PUSH2 0x2035 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1847 DUP3 DUP5 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030323A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x544F525F53455256494345 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x29 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030313A4E4F545F434F4D504F4E454E545F4F574E45 PUSH1 0x40 DUP3 ADD MSTORE PUSH9 0x525F53455256494345 PUSH1 0xB8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x214C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2035 JUMP JUMPDEST PUSH2 0x2159 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2035 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2181 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x21B3 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x6D7253C522420B015643D5D348125E0E3E34A0BB911FA3CF3939A9D4 PUSH6 0x163864736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"4013:11230:75:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;4013:11230:75;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;4013:11230:75;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:14014:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"620:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"666:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"675:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"683:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"668:6:103"},"nodeType":"YulFunctionCall","src":"668:22:103"},"nodeType":"YulExpressionStatement","src":"668:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"641:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"650:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"637:3:103"},"nodeType":"YulFunctionCall","src":"637:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"662:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"633:3:103"},"nodeType":"YulFunctionCall","src":"633:32:103"},"nodeType":"YulIf","src":"630:2:103"},{"nodeType":"YulVariableDeclaration","src":"701:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"720:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"714:5:103"},"nodeType":"YulFunctionCall","src":"714:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"705:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"783:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"800:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"785:6:103"},"nodeType":"YulFunctionCall","src":"785:22:103"},"nodeType":"YulExpressionStatement","src":"785:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"752:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"773:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"766:6:103"},"nodeType":"YulFunctionCall","src":"766:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"759:6:103"},"nodeType":"YulFunctionCall","src":"759:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"749:2:103"},"nodeType":"YulFunctionCall","src":"749:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"742:6:103"},"nodeType":"YulFunctionCall","src":"742:40:103"},"nodeType":"YulIf","src":"739:2:103"},{"nodeType":"YulAssignment","src":"818:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"828:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"818:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"586:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"597:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"609:6:103","type":""}],"src":"542:297:103"},{"body":{"nodeType":"YulBlock","src":"925:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"971:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"980:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"988:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"973:6:103"},"nodeType":"YulFunctionCall","src":"973:22:103"},"nodeType":"YulExpressionStatement","src":"973:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"946:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"955:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"942:3:103"},"nodeType":"YulFunctionCall","src":"942:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"967:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"938:3:103"},"nodeType":"YulFunctionCall","src":"938:32:103"},"nodeType":"YulIf","src":"935:2:103"},{"nodeType":"YulAssignment","src":"1006:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1022:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1016:5:103"},"nodeType":"YulFunctionCall","src":"1016:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1006:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"891:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"902:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"914:6:103","type":""}],"src":"844:194:103"},{"body":{"nodeType":"YulBlock","src":"1132:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1178:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1187:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1195:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1180:6:103"},"nodeType":"YulFunctionCall","src":"1180:22:103"},"nodeType":"YulExpressionStatement","src":"1180:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1153:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1162:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1149:3:103"},"nodeType":"YulFunctionCall","src":"1149:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1174:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1145:3:103"},"nodeType":"YulFunctionCall","src":"1145:32:103"},"nodeType":"YulIf","src":"1142:2:103"},{"nodeType":"YulVariableDeclaration","src":"1213:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1239:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1226:12:103"},"nodeType":"YulFunctionCall","src":"1226:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1217:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1283:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1258:24:103"},"nodeType":"YulFunctionCall","src":"1258:31:103"},"nodeType":"YulExpressionStatement","src":"1258:31:103"},{"nodeType":"YulAssignment","src":"1298:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1308:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1298:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1098:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1109:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1121:6:103","type":""}],"src":"1043:276:103"},{"body":{"nodeType":"YulBlock","src":"1412:198:103","statements":[{"body":{"nodeType":"YulBlock","src":"1458:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1467:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1475:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1460:6:103"},"nodeType":"YulFunctionCall","src":"1460:22:103"},"nodeType":"YulExpressionStatement","src":"1460:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1433:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1442:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1429:3:103"},"nodeType":"YulFunctionCall","src":"1429:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1454:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1425:3:103"},"nodeType":"YulFunctionCall","src":"1425:32:103"},"nodeType":"YulIf","src":"1422:2:103"},{"nodeType":"YulVariableDeclaration","src":"1493:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1519:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1506:12:103"},"nodeType":"YulFunctionCall","src":"1506:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1497:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1574:5:103"}],"functionName":{"name":"validator_revert_enum_ComponentType","nodeType":"YulIdentifier","src":"1538:35:103"},"nodeType":"YulFunctionCall","src":"1538:42:103"},"nodeType":"YulExpressionStatement","src":"1538:42:103"},{"nodeType":"YulAssignment","src":"1589:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1599:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1589:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1378:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1389:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1401:6:103","type":""}],"src":"1324:286:103"},{"body":{"nodeType":"YulBlock","src":"1714:191:103","statements":[{"body":{"nodeType":"YulBlock","src":"1760:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1769:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1777:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1762:6:103"},"nodeType":"YulFunctionCall","src":"1762:22:103"},"nodeType":"YulExpressionStatement","src":"1762:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1735:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1744:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1731:3:103"},"nodeType":"YulFunctionCall","src":"1731:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1756:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1727:3:103"},"nodeType":"YulFunctionCall","src":"1727:32:103"},"nodeType":"YulIf","src":"1724:2:103"},{"nodeType":"YulVariableDeclaration","src":"1795:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1814:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1808:5:103"},"nodeType":"YulFunctionCall","src":"1808:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1799:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1869:5:103"}],"functionName":{"name":"validator_revert_enum_ComponentType","nodeType":"YulIdentifier","src":"1833:35:103"},"nodeType":"YulFunctionCall","src":"1833:42:103"},"nodeType":"YulExpressionStatement","src":"1833:42:103"},{"nodeType":"YulAssignment","src":"1884:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1894:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1884:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1680:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1691:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1703:6:103","type":""}],"src":"1615:290:103"},{"body":{"nodeType":"YulBlock","src":"1980:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2026:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2035:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2043:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2028:6:103"},"nodeType":"YulFunctionCall","src":"2028:22:103"},"nodeType":"YulExpressionStatement","src":"2028:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2001:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2010:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1997:3:103"},"nodeType":"YulFunctionCall","src":"1997:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2022:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1993:3:103"},"nodeType":"YulFunctionCall","src":"1993:32:103"},"nodeType":"YulIf","src":"1990:2:103"},{"nodeType":"YulAssignment","src":"2061:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2084:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2071:12:103"},"nodeType":"YulFunctionCall","src":"2071:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2061:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1946:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1957:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1969:6:103","type":""}],"src":"1910:190:103"},{"body":{"nodeType":"YulBlock","src":"2161:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"2195:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"2197:16:103"},"nodeType":"YulFunctionCall","src":"2197:18:103"},"nodeType":"YulExpressionStatement","src":"2197:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2184:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2191:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2181:2:103"},"nodeType":"YulFunctionCall","src":"2181:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2174:6:103"},"nodeType":"YulFunctionCall","src":"2174:20:103"},"nodeType":"YulIf","src":"2171:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2233:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"2238:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2226:6:103"},"nodeType":"YulFunctionCall","src":"2226:18:103"},"nodeType":"YulExpressionStatement","src":"2226:18:103"}]},"name":"abi_encode_enum_ComponentState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2145:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2152:3:103","type":""}],"src":"2105:145:103"},{"body":{"nodeType":"YulBlock","src":"2310:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"2344:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"2346:16:103"},"nodeType":"YulFunctionCall","src":"2346:18:103"},"nodeType":"YulExpressionStatement","src":"2346:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2333:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2340:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2330:2:103"},"nodeType":"YulFunctionCall","src":"2330:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2323:6:103"},"nodeType":"YulFunctionCall","src":"2323:20:103"},"nodeType":"YulIf","src":"2320:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2382:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"2387:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2375:6:103"},"nodeType":"YulFunctionCall","src":"2375:18:103"},"nodeType":"YulExpressionStatement","src":"2375:18:103"}]},"name":"abi_encode_enum_ComponentType","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2294:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"2301:3:103","type":""}],"src":"2255:144:103"},{"body":{"nodeType":"YulBlock","src":"2505:102:103","statements":[{"nodeType":"YulAssignment","src":"2515:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2527:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2538:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2523:3:103"},"nodeType":"YulFunctionCall","src":"2523:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2515:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2557:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2572:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2588:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2593:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2584:3:103"},"nodeType":"YulFunctionCall","src":"2584:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2597:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2580:3:103"},"nodeType":"YulFunctionCall","src":"2580:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2568:3:103"},"nodeType":"YulFunctionCall","src":"2568:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2550:6:103"},"nodeType":"YulFunctionCall","src":"2550:51:103"},"nodeType":"YulExpressionStatement","src":"2550:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2474:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2485:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2496:4:103","type":""}],"src":"2404:203:103"},{"body":{"nodeType":"YulBlock","src":"2707:92:103","statements":[{"nodeType":"YulAssignment","src":"2717:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2729:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2740:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2725:3:103"},"nodeType":"YulFunctionCall","src":"2725:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2717:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2759:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2784:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2777:6:103"},"nodeType":"YulFunctionCall","src":"2777:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2770:6:103"},"nodeType":"YulFunctionCall","src":"2770:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2752:6:103"},"nodeType":"YulFunctionCall","src":"2752:41:103"},"nodeType":"YulExpressionStatement","src":"2752:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2676:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2687:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2698:4:103","type":""}],"src":"2612:187:103"},{"body":{"nodeType":"YulBlock","src":"2905:76:103","statements":[{"nodeType":"YulAssignment","src":"2915:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2927:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2938:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2923:3:103"},"nodeType":"YulFunctionCall","src":"2923:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2915:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2957:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2968:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2950:6:103"},"nodeType":"YulFunctionCall","src":"2950:25:103"},"nodeType":"YulExpressionStatement","src":"2950:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2874:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2885:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2896:4:103","type":""}],"src":"2804:177:103"},{"body":{"nodeType":"YulBlock","src":"3187:255:103","statements":[{"nodeType":"YulAssignment","src":"3197:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3209:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3220:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3205:3:103"},"nodeType":"YulFunctionCall","src":"3205:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3197:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3240:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3251:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3233:6:103"},"nodeType":"YulFunctionCall","src":"3233:25:103"},"nodeType":"YulExpressionStatement","src":"3233:25:103"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3297:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3309:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3320:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3305:3:103"},"nodeType":"YulFunctionCall","src":"3305:18:103"}],"functionName":{"name":"abi_encode_enum_ComponentType","nodeType":"YulIdentifier","src":"3267:29:103"},"nodeType":"YulFunctionCall","src":"3267:57:103"},"nodeType":"YulExpressionStatement","src":"3267:57:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3340:3:103"},"nodeType":"YulFunctionCall","src":"3340:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3364:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3380:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3385:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3376:3:103"},"nodeType":"YulFunctionCall","src":"3376:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3389:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3372:3:103"},"nodeType":"YulFunctionCall","src":"3372:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3360:3:103"},"nodeType":"YulFunctionCall","src":"3360:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3333:6:103"},"nodeType":"YulFunctionCall","src":"3333:60:103"},"nodeType":"YulExpressionStatement","src":"3333:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3413:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3424:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3409:3:103"},"nodeType":"YulFunctionCall","src":"3409:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"3429:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3402:6:103"},"nodeType":"YulFunctionCall","src":"3402:34:103"},"nodeType":"YulExpressionStatement","src":"3402:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_uint256__to_t_bytes32_t_uint8_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3132:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3143:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3151:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3159:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3167:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3178:4:103","type":""}],"src":"2986:456:103"},{"body":{"nodeType":"YulBlock","src":"3567:102:103","statements":[{"nodeType":"YulAssignment","src":"3577:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3589:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3600:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3585:3:103"},"nodeType":"YulFunctionCall","src":"3585:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3577:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3619:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3634:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3650:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3655:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3646:3:103"},"nodeType":"YulFunctionCall","src":"3646:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3659:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3642:3:103"},"nodeType":"YulFunctionCall","src":"3642:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3630:3:103"},"nodeType":"YulFunctionCall","src":"3630:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3612:6:103"},"nodeType":"YulFunctionCall","src":"3612:51:103"},"nodeType":"YulExpressionStatement","src":"3612:51:103"}]},"name":"abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3536:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3547:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3558:4:103","type":""}],"src":"3447:222:103"},{"body":{"nodeType":"YulBlock","src":"3792:100:103","statements":[{"nodeType":"YulAssignment","src":"3802:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3825:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3810:3:103"},"nodeType":"YulFunctionCall","src":"3810:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3802:4:103"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3868:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3876:9:103"}],"functionName":{"name":"abi_encode_enum_ComponentState","nodeType":"YulIdentifier","src":"3837:30:103"},"nodeType":"YulFunctionCall","src":"3837:49:103"},"nodeType":"YulExpressionStatement","src":"3837:49:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3761:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3772:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3783:4:103","type":""}],"src":"3674:218:103"},{"body":{"nodeType":"YulBlock","src":"4014:99:103","statements":[{"nodeType":"YulAssignment","src":"4024:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4047:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4032:3:103"},"nodeType":"YulFunctionCall","src":"4032:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4024:4:103"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4089:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4097:9:103"}],"functionName":{"name":"abi_encode_enum_ComponentType","nodeType":"YulIdentifier","src":"4059:29:103"},"nodeType":"YulFunctionCall","src":"4059:48:103"},"nodeType":"YulExpressionStatement","src":"4059:48:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3983:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3994:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4005:4:103","type":""}],"src":"3897:216:103"},{"body":{"nodeType":"YulBlock","src":"4225:87:103","statements":[{"nodeType":"YulAssignment","src":"4235:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4247:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4258:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4243:3:103"},"nodeType":"YulFunctionCall","src":"4243:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4235:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4277:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4292:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4300:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4288:3:103"},"nodeType":"YulFunctionCall","src":"4288:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4270:6:103"},"nodeType":"YulFunctionCall","src":"4270:36:103"},"nodeType":"YulExpressionStatement","src":"4270:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4194:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4205:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4216:4:103","type":""}],"src":"4118:194:103"},{"body":{"nodeType":"YulBlock","src":"4491:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4508:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4519:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4501:6:103"},"nodeType":"YulFunctionCall","src":"4501:21:103"},"nodeType":"YulExpressionStatement","src":"4501:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4553:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4538:3:103"},"nodeType":"YulFunctionCall","src":"4538:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4558:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4531:6:103"},"nodeType":"YulFunctionCall","src":"4531:30:103"},"nodeType":"YulExpressionStatement","src":"4531:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4581:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4592:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4577:3:103"},"nodeType":"YulFunctionCall","src":"4577:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4597:34:103","type":"","value":"ERROR:CCR-025:PAUSED_INVALID_TRA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4570:6:103"},"nodeType":"YulFunctionCall","src":"4570:62:103"},"nodeType":"YulExpressionStatement","src":"4570:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4663:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4648:3:103"},"nodeType":"YulFunctionCall","src":"4648:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4668:9:103","type":"","value":"NSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4641:6:103"},"nodeType":"YulFunctionCall","src":"4641:37:103"},"nodeType":"YulExpressionStatement","src":"4641:37:103"},{"nodeType":"YulAssignment","src":"4687:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4699:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4710:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4695:3:103"},"nodeType":"YulFunctionCall","src":"4695:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4687:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0482b94049f0958858785a7e41524773ca88442982af776b7db627215a0937ca__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4468:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4482:4:103","type":""}],"src":"4317:403:103"},{"body":{"nodeType":"YulBlock","src":"4899:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4927:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4909:6:103"},"nodeType":"YulFunctionCall","src":"4909:21:103"},"nodeType":"YulExpressionStatement","src":"4909:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4950:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4961:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4946:3:103"},"nodeType":"YulFunctionCall","src":"4946:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4966:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4939:6:103"},"nodeType":"YulFunctionCall","src":"4939:30:103"},"nodeType":"YulExpressionStatement","src":"4939:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4989:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5000:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4985:3:103"},"nodeType":"YulFunctionCall","src":"4985:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5005:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4978:6:103"},"nodeType":"YulFunctionCall","src":"4978:62:103"},"nodeType":"YulExpressionStatement","src":"4978:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5060:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5071:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5056:3:103"},"nodeType":"YulFunctionCall","src":"5056:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5076:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5049:6:103"},"nodeType":"YulFunctionCall","src":"5049:35:103"},"nodeType":"YulExpressionStatement","src":"5049:35:103"},{"nodeType":"YulAssignment","src":"5093:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5105:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5116:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5101:3:103"},"nodeType":"YulFunctionCall","src":"5101:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5093:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4876:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4890:4:103","type":""}],"src":"4725:401:103"},{"body":{"nodeType":"YulBlock","src":"5305:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5333:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5315:6:103"},"nodeType":"YulFunctionCall","src":"5315:21:103"},"nodeType":"YulExpressionStatement","src":"5315:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5356:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5367:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5352:3:103"},"nodeType":"YulFunctionCall","src":"5352:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5372:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5345:6:103"},"nodeType":"YulFunctionCall","src":"5345:30:103"},"nodeType":"YulExpressionStatement","src":"5345:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5395:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5406:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5391:3:103"},"nodeType":"YulFunctionCall","src":"5391:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5411:34:103","type":"","value":"ERROR:CCR-002:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5384:6:103"},"nodeType":"YulFunctionCall","src":"5384:62:103"},"nodeType":"YulExpressionStatement","src":"5384:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5466:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5477:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5462:3:103"},"nodeType":"YulFunctionCall","src":"5462:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5482:13:103","type":"","value":"TOR_SERVICE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5455:6:103"},"nodeType":"YulFunctionCall","src":"5455:41:103"},"nodeType":"YulExpressionStatement","src":"5455:41:103"},{"nodeType":"YulAssignment","src":"5505:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5528:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5513:3:103"},"nodeType":"YulFunctionCall","src":"5513:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5505:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_130007efea4d49cc157bd5faf2f1c80f98e50627fe669a9a215b28142c1ee23f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5282:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5296:4:103","type":""}],"src":"5131:407:103"},{"body":{"nodeType":"YulBlock","src":"5717:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5734:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5745:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5727:6:103"},"nodeType":"YulFunctionCall","src":"5727:21:103"},"nodeType":"YulExpressionStatement","src":"5727:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5779:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5764:3:103"},"nodeType":"YulFunctionCall","src":"5764:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5784:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5757:6:103"},"nodeType":"YulFunctionCall","src":"5757:30:103"},"nodeType":"YulExpressionStatement","src":"5757:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5807:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5818:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5803:3:103"},"nodeType":"YulFunctionCall","src":"5803:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5823:34:103","type":"","value":"ERROR:CCR-021:CREATED_INVALID_TR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5796:6:103"},"nodeType":"YulFunctionCall","src":"5796:62:103"},"nodeType":"YulExpressionStatement","src":"5796:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5878:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5889:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5874:3:103"},"nodeType":"YulFunctionCall","src":"5874:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5894:10:103","type":"","value":"ANSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5867:6:103"},"nodeType":"YulFunctionCall","src":"5867:38:103"},"nodeType":"YulExpressionStatement","src":"5867:38:103"},{"nodeType":"YulAssignment","src":"5914:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5937:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5922:3:103"},"nodeType":"YulFunctionCall","src":"5922:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5914:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1f46e308fac0cff196aecf5e84c50b4060e83c7555cae1916f001746068e894c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5694:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5708:4:103","type":""}],"src":"5543:404:103"},{"body":{"nodeType":"YulBlock","src":"6126:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6143:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6154:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6136:6:103"},"nodeType":"YulFunctionCall","src":"6136:21:103"},"nodeType":"YulExpressionStatement","src":"6136:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6177:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6188:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6173:3:103"},"nodeType":"YulFunctionCall","src":"6173:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6193:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6166:6:103"},"nodeType":"YulFunctionCall","src":"6166:30:103"},"nodeType":"YulExpressionStatement","src":"6166:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6227:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6212:3:103"},"nodeType":"YulFunctionCall","src":"6212:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6232:34:103","type":"","value":"ERROR:CCR-001:NOT_COMPONENT_OWNE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6205:6:103"},"nodeType":"YulFunctionCall","src":"6205:62:103"},"nodeType":"YulExpressionStatement","src":"6205:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6287:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6298:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6283:3:103"},"nodeType":"YulFunctionCall","src":"6283:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6303:11:103","type":"","value":"R_SERVICE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6276:6:103"},"nodeType":"YulFunctionCall","src":"6276:39:103"},"nodeType":"YulExpressionStatement","src":"6276:39:103"},{"nodeType":"YulAssignment","src":"6324:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6336:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6347:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6332:3:103"},"nodeType":"YulFunctionCall","src":"6332:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6324:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2b163f71e59f0a392de25481a553757716afafc14f2c0ddf4ef8779c20751707__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6103:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6117:4:103","type":""}],"src":"5952:405:103"},{"body":{"nodeType":"YulBlock","src":"6536:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6553:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6564:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6546:6:103"},"nodeType":"YulFunctionCall","src":"6546:21:103"},"nodeType":"YulExpressionStatement","src":"6546:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6587:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6598:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6583:3:103"},"nodeType":"YulFunctionCall","src":"6583:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6603:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6576:6:103"},"nodeType":"YulFunctionCall","src":"6576:30:103"},"nodeType":"YulExpressionStatement","src":"6576:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6637:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6622:3:103"},"nodeType":"YulFunctionCall","src":"6622:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6642:34:103","type":"","value":"ERROR:CCR-006:COMPONENT_ADDRESS_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6615:6:103"},"nodeType":"YulFunctionCall","src":"6615:62:103"},"nodeType":"YulExpressionStatement","src":"6615:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6697:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6708:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6693:3:103"},"nodeType":"YulFunctionCall","src":"6693:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6713:6:103","type":"","value":"ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6686:6:103"},"nodeType":"YulFunctionCall","src":"6686:34:103"},"nodeType":"YulExpressionStatement","src":"6686:34:103"},{"nodeType":"YulAssignment","src":"6729:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6741:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6752:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6737:3:103"},"nodeType":"YulFunctionCall","src":"6737:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6729:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_349494011e9b14ad7882b684a4d52f7565404f3853de6409d514462bbbb08f64__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6513:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6527:4:103","type":""}],"src":"6362:400:103"},{"body":{"nodeType":"YulBlock","src":"6941:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6958:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6969:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6951:6:103"},"nodeType":"YulFunctionCall","src":"6951:21:103"},"nodeType":"YulExpressionStatement","src":"6951:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6988:3:103"},"nodeType":"YulFunctionCall","src":"6988:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7008:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6981:6:103"},"nodeType":"YulFunctionCall","src":"6981:30:103"},"nodeType":"YulExpressionStatement","src":"6981:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7031:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7042:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7027:3:103"},"nodeType":"YulFunctionCall","src":"7027:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7047:34:103","type":"","value":"ERROR:CCR-22:PROPOSED_INVALID_TR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7020:6:103"},"nodeType":"YulFunctionCall","src":"7020:62:103"},"nodeType":"YulExpressionStatement","src":"7020:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7102:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7113:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7098:3:103"},"nodeType":"YulFunctionCall","src":"7098:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7118:10:103","type":"","value":"ANSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7091:6:103"},"nodeType":"YulFunctionCall","src":"7091:38:103"},"nodeType":"YulExpressionStatement","src":"7091:38:103"},{"nodeType":"YulAssignment","src":"7138:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7150:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7161:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7146:3:103"},"nodeType":"YulFunctionCall","src":"7146:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7138:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b9aa6c2dd4c618aff287fe40145b03866d1f0f394ef1bd7eabcf15523e1a082__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6918:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6932:4:103","type":""}],"src":"6767:404:103"},{"body":{"nodeType":"YulBlock","src":"7350:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7367:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7378:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7360:6:103"},"nodeType":"YulFunctionCall","src":"7360:21:103"},"nodeType":"YulExpressionStatement","src":"7360:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7401:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7412:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7397:3:103"},"nodeType":"YulFunctionCall","src":"7397:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7417:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7390:6:103"},"nodeType":"YulFunctionCall","src":"7390:30:103"},"nodeType":"YulExpressionStatement","src":"7390:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7451:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7436:3:103"},"nodeType":"YulFunctionCall","src":"7436:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7456:34:103","type":"","value":"ERROR:CCR-023:DECLINED_IS_FINAL_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7429:6:103"},"nodeType":"YulFunctionCall","src":"7429:62:103"},"nodeType":"YulExpressionStatement","src":"7429:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7511:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7522:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7507:3:103"},"nodeType":"YulFunctionCall","src":"7507:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7527:7:103","type":"","value":"STATE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7500:6:103"},"nodeType":"YulFunctionCall","src":"7500:35:103"},"nodeType":"YulExpressionStatement","src":"7500:35:103"},{"nodeType":"YulAssignment","src":"7544:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7556:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7567:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7552:3:103"},"nodeType":"YulFunctionCall","src":"7552:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7544:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_42aa29d463e00aadde35312cfb43fe30bee16376ea01580e27b2dacd6cef5592__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7327:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7341:4:103","type":""}],"src":"7176:401:103"},{"body":{"nodeType":"YulBlock","src":"7756:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7784:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7766:6:103"},"nodeType":"YulFunctionCall","src":"7766:21:103"},"nodeType":"YulExpressionStatement","src":"7766:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7807:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7818:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7803:3:103"},"nodeType":"YulFunctionCall","src":"7803:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7823:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7796:6:103"},"nodeType":"YulFunctionCall","src":"7796:30:103"},"nodeType":"YulExpressionStatement","src":"7796:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7846:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7857:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7842:3:103"},"nodeType":"YulFunctionCall","src":"7842:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7862:34:103","type":"","value":"ERROR:CCR-027:INITIAL_STATE_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7835:6:103"},"nodeType":"YulFunctionCall","src":"7835:62:103"},"nodeType":"YulExpressionStatement","src":"7835:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7917:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7928:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7913:3:103"},"nodeType":"YulFunctionCall","src":"7913:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7933:9:103","type":"","value":"HANDLED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7906:6:103"},"nodeType":"YulFunctionCall","src":"7906:37:103"},"nodeType":"YulExpressionStatement","src":"7906:37:103"},{"nodeType":"YulAssignment","src":"7952:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7964:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7975:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7960:3:103"},"nodeType":"YulFunctionCall","src":"7960:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7952:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_512ac6c7424b7e416123df2c876fbcb260e557a5e44ae55dbe69355255653f93__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7733:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7747:4:103","type":""}],"src":"7582:403:103"},{"body":{"nodeType":"YulBlock","src":"8164:232:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8181:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8192:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8174:6:103"},"nodeType":"YulFunctionCall","src":"8174:21:103"},"nodeType":"YulExpressionStatement","src":"8174:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8215:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8226:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8211:3:103"},"nodeType":"YulFunctionCall","src":"8211:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8231:2:103","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8204:6:103"},"nodeType":"YulFunctionCall","src":"8204:30:103"},"nodeType":"YulExpressionStatement","src":"8204:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8265:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8250:3:103"},"nodeType":"YulFunctionCall","src":"8250:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8270:34:103","type":"","value":"ERROR:CCR-026:SUSPENDED_INVALID_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8243:6:103"},"nodeType":"YulFunctionCall","src":"8243:62:103"},"nodeType":"YulExpressionStatement","src":"8243:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8325:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8336:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8321:3:103"},"nodeType":"YulFunctionCall","src":"8321:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8341:12:103","type":"","value":"TRANSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8314:6:103"},"nodeType":"YulFunctionCall","src":"8314:40:103"},"nodeType":"YulExpressionStatement","src":"8314:40:103"},{"nodeType":"YulAssignment","src":"8363:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8375:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8386:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8371:3:103"},"nodeType":"YulFunctionCall","src":"8371:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8363:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_58a6319ab23087cefcdbcbd3c8e4c0242721e866c13cbc743fb203df63de1716__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8141:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8155:4:103","type":""}],"src":"7990:406:103"},{"body":{"nodeType":"YulBlock","src":"8575:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8603:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8585:6:103"},"nodeType":"YulFunctionCall","src":"8585:21:103"},"nodeType":"YulExpressionStatement","src":"8585:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8637:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8622:3:103"},"nodeType":"YulFunctionCall","src":"8622:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8642:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8615:6:103"},"nodeType":"YulFunctionCall","src":"8615:30:103"},"nodeType":"YulExpressionStatement","src":"8615:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8665:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8676:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8661:3:103"},"nodeType":"YulFunctionCall","src":"8661:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8681:33:103","type":"","value":"ERROR:CCR-007:COMPONENT_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8654:6:103"},"nodeType":"YulFunctionCall","src":"8654:61:103"},"nodeType":"YulExpressionStatement","src":"8654:61:103"},{"nodeType":"YulAssignment","src":"8724:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8736:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8747:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8732:3:103"},"nodeType":"YulFunctionCall","src":"8732:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8724:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5aa9184ead1177203c54428ab95078928f4521a9c578f8772ed90c5ea1b644ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8552:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8566:4:103","type":""}],"src":"8401:355:103"},{"body":{"nodeType":"YulBlock","src":"8935:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8952:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8963:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8945:6:103"},"nodeType":"YulFunctionCall","src":"8945:21:103"},"nodeType":"YulExpressionStatement","src":"8945:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8986:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8997:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8982:3:103"},"nodeType":"YulFunctionCall","src":"8982:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9002:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8975:6:103"},"nodeType":"YulFunctionCall","src":"8975:30:103"},"nodeType":"YulExpressionStatement","src":"8975:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9025:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9036:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9021:3:103"},"nodeType":"YulFunctionCall","src":"9021:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9041:34:103","type":"","value":"ERROR:CCR-003:COMPONENT_ALREADY_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9014:6:103"},"nodeType":"YulFunctionCall","src":"9014:62:103"},"nodeType":"YulExpressionStatement","src":"9014:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9096:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9107:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9092:3:103"},"nodeType":"YulFunctionCall","src":"9092:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9112:8:103","type":"","value":"EXISTS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9085:6:103"},"nodeType":"YulFunctionCall","src":"9085:36:103"},"nodeType":"YulExpressionStatement","src":"9085:36:103"},{"nodeType":"YulAssignment","src":"9130:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9142:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9153:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9138:3:103"},"nodeType":"YulFunctionCall","src":"9138:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9130:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5ae3a1e2de2af7e4b795f54ca41064c73c9d3d29ac084b6bc16d97b27e04e8c5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8912:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8926:4:103","type":""}],"src":"8761:402:103"},{"body":{"nodeType":"YulBlock","src":"9342:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9359:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9370:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9352:6:103"},"nodeType":"YulFunctionCall","src":"9352:21:103"},"nodeType":"YulExpressionStatement","src":"9352:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9404:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9389:3:103"},"nodeType":"YulFunctionCall","src":"9389:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9409:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9382:6:103"},"nodeType":"YulFunctionCall","src":"9382:30:103"},"nodeType":"YulExpressionStatement","src":"9382:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9432:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9443:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9428:3:103"},"nodeType":"YulFunctionCall","src":"9428:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9448:34:103","type":"","value":"ERROR:CCR-008:INVALID_COMPONENT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9421:6:103"},"nodeType":"YulFunctionCall","src":"9421:62:103"},"nodeType":"YulExpressionStatement","src":"9421:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9503:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9514:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9499:3:103"},"nodeType":"YulFunctionCall","src":"9499:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9519:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9492:6:103"},"nodeType":"YulFunctionCall","src":"9492:32:103"},"nodeType":"YulExpressionStatement","src":"9492:32:103"},{"nodeType":"YulAssignment","src":"9533:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9545:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9556:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9541:3:103"},"nodeType":"YulFunctionCall","src":"9541:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9533:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_67050a9f7590899f726ff1d1acfe3fa473b09c82fe38e2fb1e74ce440fa5d62b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9319:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9333:4:103","type":""}],"src":"9168:398:103"},{"body":{"nodeType":"YulBlock","src":"9745:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9762:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9773:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9755:6:103"},"nodeType":"YulFunctionCall","src":"9755:21:103"},"nodeType":"YulExpressionStatement","src":"9755:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9796:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9807:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9792:3:103"},"nodeType":"YulFunctionCall","src":"9792:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9812:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9785:6:103"},"nodeType":"YulFunctionCall","src":"9785:30:103"},"nodeType":"YulExpressionStatement","src":"9785:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9835:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9846:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9831:3:103"},"nodeType":"YulFunctionCall","src":"9831:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9851:34:103","type":"","value":"ERROR:CCR-020:SOURCE_AND_TARGET_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9824:6:103"},"nodeType":"YulFunctionCall","src":"9824:62:103"},"nodeType":"YulExpressionStatement","src":"9824:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9906:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9917:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9902:3:103"},"nodeType":"YulFunctionCall","src":"9902:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9922:17:103","type":"","value":"STATE_IDENTICAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9895:6:103"},"nodeType":"YulFunctionCall","src":"9895:45:103"},"nodeType":"YulExpressionStatement","src":"9895:45:103"},{"nodeType":"YulAssignment","src":"9949:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9961:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9972:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9957:3:103"},"nodeType":"YulFunctionCall","src":"9957:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9949:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6b075609608efafdf82ca4cfa74bf357d9aad12ac8bb658b7fb7cfcfb10656bd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9722:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9736:4:103","type":""}],"src":"9571:411:103"},{"body":{"nodeType":"YulBlock","src":"10161:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10178:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10189:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10171:6:103"},"nodeType":"YulFunctionCall","src":"10171:21:103"},"nodeType":"YulExpressionStatement","src":"10171:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10212:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10223:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10208:3:103"},"nodeType":"YulFunctionCall","src":"10208:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10228:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10201:6:103"},"nodeType":"YulFunctionCall","src":"10201:30:103"},"nodeType":"YulExpressionStatement","src":"10201:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10262:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10247:3:103"},"nodeType":"YulFunctionCall","src":"10247:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10267:34:103","type":"","value":"ERROR:CCR-011:UNKNOWN_PRODUCT_ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10240:6:103"},"nodeType":"YulFunctionCall","src":"10240:62:103"},"nodeType":"YulExpressionStatement","src":"10240:62:103"},{"nodeType":"YulAssignment","src":"10311:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10323:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10334:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10319:3:103"},"nodeType":"YulFunctionCall","src":"10319:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10311:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_709b753f017c54bf3895eff7607622481d3ca03b6f3de6ef863313f4912d5c91__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10138:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10152:4:103","type":""}],"src":"9987:356:103"},{"body":{"nodeType":"YulBlock","src":"10522:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10539:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10550:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10532:6:103"},"nodeType":"YulFunctionCall","src":"10532:21:103"},"nodeType":"YulExpressionStatement","src":"10532:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10584:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10569:3:103"},"nodeType":"YulFunctionCall","src":"10569:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10589:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10562:6:103"},"nodeType":"YulFunctionCall","src":"10562:30:103"},"nodeType":"YulExpressionStatement","src":"10562:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10612:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10623:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10608:3:103"},"nodeType":"YulFunctionCall","src":"10608:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10628:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10601:6:103"},"nodeType":"YulFunctionCall","src":"10601:62:103"},"nodeType":"YulExpressionStatement","src":"10601:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10683:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10694:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10679:3:103"},"nodeType":"YulFunctionCall","src":"10679:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10699:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10672:6:103"},"nodeType":"YulFunctionCall","src":"10672:44:103"},"nodeType":"YulExpressionStatement","src":"10672:44:103"},{"nodeType":"YulAssignment","src":"10725:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10737:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10748:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10733:3:103"},"nodeType":"YulFunctionCall","src":"10733:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10725:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10499:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10513:4:103","type":""}],"src":"10348:410:103"},{"body":{"nodeType":"YulBlock","src":"10937:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10954:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10965:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10947:6:103"},"nodeType":"YulFunctionCall","src":"10947:21:103"},"nodeType":"YulExpressionStatement","src":"10947:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10988:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10999:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10984:3:103"},"nodeType":"YulFunctionCall","src":"10984:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11004:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10977:6:103"},"nodeType":"YulFunctionCall","src":"10977:30:103"},"nodeType":"YulExpressionStatement","src":"10977:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11027:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11038:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11023:3:103"},"nodeType":"YulFunctionCall","src":"11023:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11043:34:103","type":"","value":"ERROR:CCR-024:ACTIVE_INVALID_TRA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11016:6:103"},"nodeType":"YulFunctionCall","src":"11016:62:103"},"nodeType":"YulExpressionStatement","src":"11016:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11098:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11109:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11094:3:103"},"nodeType":"YulFunctionCall","src":"11094:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11114:9:103","type":"","value":"NSITION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11087:6:103"},"nodeType":"YulFunctionCall","src":"11087:37:103"},"nodeType":"YulExpressionStatement","src":"11087:37:103"},{"nodeType":"YulAssignment","src":"11133:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11145:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11156:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11141:3:103"},"nodeType":"YulFunctionCall","src":"11141:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11133:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_aedba318da9c17b182ebb85736c0568cffa933b22def476bb1db2682f6fecda2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10914:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10928:4:103","type":""}],"src":"10763:403:103"},{"body":{"nodeType":"YulBlock","src":"11345:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11362:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11373:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11355:6:103"},"nodeType":"YulFunctionCall","src":"11355:21:103"},"nodeType":"YulExpressionStatement","src":"11355:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11407:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11392:3:103"},"nodeType":"YulFunctionCall","src":"11392:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11412:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11385:6:103"},"nodeType":"YulFunctionCall","src":"11385:30:103"},"nodeType":"YulExpressionStatement","src":"11385:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11435:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11446:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11431:3:103"},"nodeType":"YulFunctionCall","src":"11431:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11451:34:103","type":"","value":"ERROR:CCR-005:INVALID_COMPONENT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11424:6:103"},"nodeType":"YulFunctionCall","src":"11424:62:103"},"nodeType":"YulExpressionStatement","src":"11424:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11506:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11517:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11502:3:103"},"nodeType":"YulFunctionCall","src":"11502:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11522:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11495:6:103"},"nodeType":"YulFunctionCall","src":"11495:32:103"},"nodeType":"YulExpressionStatement","src":"11495:32:103"},{"nodeType":"YulAssignment","src":"11536:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11548:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11559:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11544:3:103"},"nodeType":"YulFunctionCall","src":"11544:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11536:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ca1c305a0e9af3ea3550a0a1227e5f520650593127153fff20641c9f0d853894__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11322:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11336:4:103","type":""}],"src":"11171:398:103"},{"body":{"nodeType":"YulBlock","src":"11748:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11765:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11776:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11758:6:103"},"nodeType":"YulFunctionCall","src":"11758:21:103"},"nodeType":"YulExpressionStatement","src":"11758:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11810:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11795:3:103"},"nodeType":"YulFunctionCall","src":"11795:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11815:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11788:6:103"},"nodeType":"YulFunctionCall","src":"11788:30:103"},"nodeType":"YulExpressionStatement","src":"11788:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11838:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11834:3:103"},"nodeType":"YulFunctionCall","src":"11834:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11854:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11827:6:103"},"nodeType":"YulFunctionCall","src":"11827:62:103"},"nodeType":"YulExpressionStatement","src":"11827:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11909:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11920:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11905:3:103"},"nodeType":"YulFunctionCall","src":"11905:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11925:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11898:6:103"},"nodeType":"YulFunctionCall","src":"11898:41:103"},"nodeType":"YulExpressionStatement","src":"11898:41:103"},{"nodeType":"YulAssignment","src":"11948:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11960:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11971:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11956:3:103"},"nodeType":"YulFunctionCall","src":"11956:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11948:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11725:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11739:4:103","type":""}],"src":"11574:407:103"},{"body":{"nodeType":"YulBlock","src":"12160:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12177:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12188:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12170:6:103"},"nodeType":"YulFunctionCall","src":"12170:21:103"},"nodeType":"YulExpressionStatement","src":"12170:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12211:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12222:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12207:3:103"},"nodeType":"YulFunctionCall","src":"12207:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12227:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12200:6:103"},"nodeType":"YulFunctionCall","src":"12200:30:103"},"nodeType":"YulExpressionStatement","src":"12200:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12261:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12246:3:103"},"nodeType":"YulFunctionCall","src":"12246:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12266:34:103","type":"","value":"ERROR:CCR-004:COMPONENT_NAME_ALR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12239:6:103"},"nodeType":"YulFunctionCall","src":"12239:62:103"},"nodeType":"YulExpressionStatement","src":"12239:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12321:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12332:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12317:3:103"},"nodeType":"YulFunctionCall","src":"12317:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12337:13:103","type":"","value":"EADY_EXISTS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12310:6:103"},"nodeType":"YulFunctionCall","src":"12310:41:103"},"nodeType":"YulExpressionStatement","src":"12310:41:103"},{"nodeType":"YulAssignment","src":"12360:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12372:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12383:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12368:3:103"},"nodeType":"YulFunctionCall","src":"12368:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12360:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_db0e727d540281d778747629fde13ba11de87883dd7bb058b220298f1d595860__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12137:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12151:4:103","type":""}],"src":"11986:407:103"},{"body":{"nodeType":"YulBlock","src":"12572:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12589:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12600:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12582:6:103"},"nodeType":"YulFunctionCall","src":"12582:21:103"},"nodeType":"YulExpressionStatement","src":"12582:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12623:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12634:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12619:3:103"},"nodeType":"YulFunctionCall","src":"12619:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12639:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12612:6:103"},"nodeType":"YulFunctionCall","src":"12612:30:103"},"nodeType":"YulExpressionStatement","src":"12612:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12662:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12673:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12658:3:103"},"nodeType":"YulFunctionCall","src":"12658:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12678:34:103","type":"","value":"ERROR:CCR-010:COMPONENT_TYPE_UNK"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12651:6:103"},"nodeType":"YulFunctionCall","src":"12651:62:103"},"nodeType":"YulExpressionStatement","src":"12651:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12733:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12744:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12729:3:103"},"nodeType":"YulFunctionCall","src":"12729:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12749:6:103","type":"","value":"NOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12722:6:103"},"nodeType":"YulFunctionCall","src":"12722:34:103"},"nodeType":"YulExpressionStatement","src":"12722:34:103"},{"nodeType":"YulAssignment","src":"12765:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12777:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12788:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12773:3:103"},"nodeType":"YulFunctionCall","src":"12773:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12765:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f1c08fa2a8ffb36bf794006b5c478bd24ca48d907fc7830cb558a4b14cd289c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12549:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12563:4:103","type":""}],"src":"12398:400:103"},{"body":{"nodeType":"YulBlock","src":"12904:76:103","statements":[{"nodeType":"YulAssignment","src":"12914:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12937:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12922:3:103"},"nodeType":"YulFunctionCall","src":"12922:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12914:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12956:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12967:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12949:6:103"},"nodeType":"YulFunctionCall","src":"12949:25:103"},"nodeType":"YulExpressionStatement","src":"12949:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12873:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12884:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12895:4:103","type":""}],"src":"12803:177:103"},{"body":{"nodeType":"YulBlock","src":"13176:210:103","statements":[{"nodeType":"YulAssignment","src":"13186:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13198:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13209:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13194:3:103"},"nodeType":"YulFunctionCall","src":"13194:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13186:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13228:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13239:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13221:6:103"},"nodeType":"YulFunctionCall","src":"13221:25:103"},"nodeType":"YulExpressionStatement","src":"13221:25:103"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13286:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13298:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13309:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13294:3:103"},"nodeType":"YulFunctionCall","src":"13294:18:103"}],"functionName":{"name":"abi_encode_enum_ComponentState","nodeType":"YulIdentifier","src":"13255:30:103"},"nodeType":"YulFunctionCall","src":"13255:58:103"},"nodeType":"YulExpressionStatement","src":"13255:58:103"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13353:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13376:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13361:3:103"},"nodeType":"YulFunctionCall","src":"13361:18:103"}],"functionName":{"name":"abi_encode_enum_ComponentState","nodeType":"YulIdentifier","src":"13322:30:103"},"nodeType":"YulFunctionCall","src":"13322:58:103"},"nodeType":"YulExpressionStatement","src":"13322:58:103"}]},"name":"abi_encode_tuple_t_uint256_t_enum$_ComponentState_$2899_t_enum$_ComponentState_$2899__to_t_uint256_t_uint8_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13129:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13140:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13148:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13156:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13167:4:103","type":""}],"src":"12985:401:103"},{"body":{"nodeType":"YulBlock","src":"13438:189:103","statements":[{"body":{"nodeType":"YulBlock","src":"13477:115:103","statements":[{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"13498:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13507:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13512:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13503:3:103"},"nodeType":"YulFunctionCall","src":"13503:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13491:6:103"},"nodeType":"YulFunctionCall","src":"13491:33:103"},"nodeType":"YulExpressionStatement","src":"13491:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13544:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13547:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13537:6:103"},"nodeType":"YulFunctionCall","src":"13537:15:103"},"nodeType":"YulExpressionStatement","src":"13537:15:103"},{"expression":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"13572:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"13577:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13565:6:103"},"nodeType":"YulFunctionCall","src":"13565:17:103"},"nodeType":"YulExpressionStatement","src":"13565:17:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13454:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13465:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13461:3:103"},"nodeType":"YulFunctionCall","src":"13461:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"13451:2:103"},"nodeType":"YulFunctionCall","src":"13451:17:103"},"nodeType":"YulIf","src":"13448:2:103"},{"nodeType":"YulAssignment","src":"13601:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13612:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"13619:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13608:3:103"},"nodeType":"YulFunctionCall","src":"13608:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"13601:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13420:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"13430:3:103","type":""}],"src":"13391:236:103"},{"body":{"nodeType":"YulBlock","src":"13664:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13681:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13688:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13693:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13684:3:103"},"nodeType":"YulFunctionCall","src":"13684:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13674:6:103"},"nodeType":"YulFunctionCall","src":"13674:31:103"},"nodeType":"YulExpressionStatement","src":"13674:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13721:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13724:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13714:6:103"},"nodeType":"YulFunctionCall","src":"13714:15:103"},"nodeType":"YulExpressionStatement","src":"13714:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13745:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13748:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13738:6:103"},"nodeType":"YulFunctionCall","src":"13738:15:103"},"nodeType":"YulExpressionStatement","src":"13738:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"13632:127:103"},{"body":{"nodeType":"YulBlock","src":"13809:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"13873:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13882:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13885:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13875:6:103"},"nodeType":"YulFunctionCall","src":"13875:12:103"},"nodeType":"YulExpressionStatement","src":"13875:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13832:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13843:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13858:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13863:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13854:3:103"},"nodeType":"YulFunctionCall","src":"13854:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13867:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13850:3:103"},"nodeType":"YulFunctionCall","src":"13850:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13839:3:103"},"nodeType":"YulFunctionCall","src":"13839:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"13829:2:103"},"nodeType":"YulFunctionCall","src":"13829:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13822:6:103"},"nodeType":"YulFunctionCall","src":"13822:50:103"},"nodeType":"YulIf","src":"13819:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13798:5:103","type":""}],"src":"13764:131:103"},{"body":{"nodeType":"YulBlock","src":"13956:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"13990:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13999:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14002:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13992:6:103"},"nodeType":"YulFunctionCall","src":"13992:12:103"},"nodeType":"YulExpressionStatement","src":"13992:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13979:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"13986:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13976:2:103"},"nodeType":"YulFunctionCall","src":"13976:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13969:6:103"},"nodeType":"YulFunctionCall","src":"13969:20:103"},"nodeType":"YulIf","src":"13966:2:103"}]},"name":"validator_revert_enum_ComponentType","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13945:5:103","type":""}],"src":"13900:112:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_enum_ComponentType(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_enum_ComponentType(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_enum_ComponentState(value, pos)\n {\n if iszero(lt(value, 7)) { panic_error_0x21() }\n mstore(pos, value)\n }\n function abi_encode_enum_ComponentType(value, pos)\n {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n mstore(pos, value)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_uint256__to_t_bytes32_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n abi_encode_enum_ComponentType(value1, add(headStart, 32))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_ComponentState(value0, headStart)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n abi_encode_enum_ComponentType(value0, headStart)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_0482b94049f0958858785a7e41524773ca88442982af776b7db627215a0937ca__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:CCR-025:PAUSED_INVALID_TRA\")\n mstore(add(headStart, 96), \"NSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_130007efea4d49cc157bd5faf2f1c80f98e50627fe669a9a215b28142c1ee23f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:CCR-002:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR_SERVICE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1f46e308fac0cff196aecf5e84c50b4060e83c7555cae1916f001746068e894c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:CCR-021:CREATED_INVALID_TR\")\n mstore(add(headStart, 96), \"ANSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2b163f71e59f0a392de25481a553757716afafc14f2c0ddf4ef8779c20751707__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:CCR-001:NOT_COMPONENT_OWNE\")\n mstore(add(headStart, 96), \"R_SERVICE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_349494011e9b14ad7882b684a4d52f7565404f3853de6409d514462bbbb08f64__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:CCR-006:COMPONENT_ADDRESS_\")\n mstore(add(headStart, 96), \"ZERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b9aa6c2dd4c618aff287fe40145b03866d1f0f394ef1bd7eabcf15523e1a082__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:CCR-22:PROPOSED_INVALID_TR\")\n mstore(add(headStart, 96), \"ANSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_42aa29d463e00aadde35312cfb43fe30bee16376ea01580e27b2dacd6cef5592__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CCR-023:DECLINED_IS_FINAL_\")\n mstore(add(headStart, 96), \"STATE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_512ac6c7424b7e416123df2c876fbcb260e557a5e44ae55dbe69355255653f93__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:CCR-027:INITIAL_STATE_NOT_\")\n mstore(add(headStart, 96), \"HANDLED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_58a6319ab23087cefcdbcbd3c8e4c0242721e866c13cbc743fb203df63de1716__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"ERROR:CCR-026:SUSPENDED_INVALID_\")\n mstore(add(headStart, 96), \"TRANSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5aa9184ead1177203c54428ab95078928f4521a9c578f8772ed90c5ea1b644ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:CCR-007:COMPONENT_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_5ae3a1e2de2af7e4b795f54ca41064c73c9d3d29ac084b6bc16d97b27e04e8c5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:CCR-003:COMPONENT_ALREADY_\")\n mstore(add(headStart, 96), \"EXISTS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_67050a9f7590899f726ff1d1acfe3fa473b09c82fe38e2fb1e74ce440fa5d62b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:CCR-008:INVALID_COMPONENT_\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6b075609608efafdf82ca4cfa74bf357d9aad12ac8bb658b7fb7cfcfb10656bd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:CCR-020:SOURCE_AND_TARGET_\")\n mstore(add(headStart, 96), \"STATE_IDENTICAL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_709b753f017c54bf3895eff7607622481d3ca03b6f3de6ef863313f4912d5c91__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:CCR-011:UNKNOWN_PRODUCT_ID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_aedba318da9c17b182ebb85736c0568cffa933b22def476bb1db2682f6fecda2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:CCR-024:ACTIVE_INVALID_TRA\")\n mstore(add(headStart, 96), \"NSITION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ca1c305a0e9af3ea3550a0a1227e5f520650593127153fff20641c9f0d853894__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:CCR-005:INVALID_COMPONENT_\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_db0e727d540281d778747629fde13ba11de87883dd7bb058b220298f1d595860__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:CCR-004:COMPONENT_NAME_ALR\")\n mstore(add(headStart, 96), \"EADY_EXISTS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f1c08fa2a8ffb36bf794006b5c478bd24ca48d907fc7830cb558a4b14cd289c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:CCR-010:COMPONENT_TYPE_UNK\")\n mstore(add(headStart, 96), \"NOWN\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_enum$_ComponentState_$2899_t_enum$_ComponentState_$2899__to_t_uint256_t_uint8_t_uint8__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n abi_encode_enum_ComponentState(value1, add(headStart, 32))\n abi_encode_enum_ComponentState(value2, add(headStart, 64))\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(ret, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(ret, 0x24)\n }\n ret := add(value, 1)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_enum_ComponentType(value)\n {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101a95760003560e01c80636bc607b3116100f9578063ba80b8ed11610097578063dd51c86a11610071578063dd51c86a146103a9578063e61ae297146103c9578063fabc1cbc146103dc578063ff3f3883146103ef576101a9565b8063ba80b8ed1461037b578063c4d66de81461038e578063c71e261f146103a1576101a9565b8063a054381f116100d3578063a054381f14610345578063a5c0f5a11461034d578063b759f95414610360578063ba62fbe414610373576101a9565b80636bc607b31461030c5780639f77a6051461031f578063a0355f4e14610332576101a9565b80633920200c116101665780634f27da18116101405780634f27da18146102735780634f558e791461029e5780635af89a47146102c95780635e966e45146102dc576101a9565b80633920200c1461023a578063414000b51461024d5780634b86584614610260576101a9565b806301267951146101ae57806309f63ed9146101c35780630f5da3a6146101eb578063136439dd146101fe5780632857373a146102115780632b1c7f7314610227575b600080fd5b6101c16101bc366004611f6e565b610402565b005b6101d66101d136600461201d565b610739565b60405190151581526020015b60405180910390f35b6101c16101f936600461201d565b61074e565b6101c161020c36600461201d565b610827565b6102196108fe565b6040519081526020016101e2565b610219610235366004611f6e565b61090f565b6101d661024836600461201d565b6109da565b6101c161025b36600461201d565b6109e7565b6101c161026e36600461201d565b610ac0565b61028661028136600461201d565b610b99565b6040516001600160a01b0390911681526020016101e2565b6101d66102ac36600461201d565b6000908152600260205260409020546001600160a01b0316151590565b6102196102d7366004611fe5565b610c09565b6102ff6102ea36600461201d565b60009081526005602052604090205460ff1690565b6040516101e29190612088565b6101c161031a36600461201d565b610e00565b61021961032d36600461201d565b610e51565b6101c161034036600461201d565b610e5e565b610219610f37565b61021961035b36600461201d565b610f43565b6101c161036e36600461201d565b610f50565b600c54610219565b6101d661038936600461201d565b6110d5565b6101c161039c366004611f6e565b6110e2565b610219611260565b6103bc6103b736600461201d565b61126c565b6040516101e29190612096565b6102866103d736600461201d565b611309565b6101c16103ea36600461201d565b61137c565b6102196103fd36600461201d565b611453565b61042374436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b03161461045c5760405162461bcd60e51b8152600401610453906120ef565b60405180910390fd5b6001600160a01b038116600090815260046020526040902054156104d15760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4343522d3030333a434f4d504f4e454e545f414c52454144595f60448201526545584953545360d01b6064820152608401610453565b60036000826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190611fcd565b8152602001908152602001600020546000146105b85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4343522d3030343a434f4d504f4e454e545f4e414d455f414c5260448201526a454144595f45584953545360a81b6064820152608401610453565b60006105c382611548565b90507fd9b3d18a6293c46c667fe6a98468c457078489f2e16e356bb4c77bb2e22d2016826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561061f57600080fd5b505afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106579190611fcd565b836001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c89190612001565b84846040516106da9493929190612059565b60405180910390a1816001600160a01b031663638ce0ba6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050505050565b6000610746600883611830565b90505b919050565b61077176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120a4565b6107ac81600661184d565b6040518181527f9e6d5f1811033619318d2fbe9ee7ec46c830175b39f7885248b51e0decb5837a9060200160405180910390a160006107ea82610b99565b9050806001600160a01b031663be169e7e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b61084874436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146108785760405162461bcd60e51b8152600401610453906120ef565b61088381600461184d565b6040518181527f45dbc7e529df39b8d70de83cc9e1d38c088e6ba21ab836e976f7310f1cbb8afd9060200160405180910390a160006108c182610b99565b9050806001600160a01b031663d73cd9926040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a60086118e7565b905090565b60006001600160a01b0382166109735760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3030363a434f4d504f4e454e545f414444524553535f6044820152635a45524f60e01b6064820152608401610453565b506001600160a01b038116600090815260046020526040902054806107495760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4343522d3030373a434f4d504f4e454e545f554e4b4e4f574e006044820152606401610453565b6000610746600683611830565b610a0a76496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610a3a5760405162461bcd60e51b8152600401610453906120a4565b610a4581600361184d565b6040518181527fd24597f0a62b78258ebd8c2fa52051cf673a5000d14d2fb619c91b1ed95c538a9060200160405180910390a16000610a8382610b99565b9050806001600160a01b031663a18f5ae26040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b610ae376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610b135760405162461bcd60e51b8152600401610453906120a4565b610b1e81600561184d565b6040518181527f55d2d8495549e354e6ee012c5aa183eb0e08ee2f256349afb0f7f74d1940f9b39060200160405180910390a16000610b5c82610b99565b9050806001600160a01b031663b3fca9bd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000818152600260205260409020546001600160a01b0316806107495760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030353a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b60006001826002811115610c2d57634e487b7160e01b600052602160045260246000fd5b1415610cc057600160009054906101000a90046001600160a01b03166001600160a01b031663775a40486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b505afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190611fcd565b9050610749565b6000826002811115610ce257634e487b7160e01b600052602160045260246000fd5b1415610d3657600160009054906101000a90046001600160a01b03166001600160a01b031663d49d21c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b6002826002811115610d5857634e487b7160e01b600052602160045260246000fd5b1415610dac57600160009054906101000a90046001600160a01b03166001600160a01b0316633ffdd2f36040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b60405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3031303a434f4d504f4e454e545f545950455f554e4b6044820152632727aba760e11b6064820152608401610453565b610e2174436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120ef565b60006107466006836118f1565b610e8176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610eb15760405162461bcd60e51b8152600401610453906120a4565b610ebc81600261184d565b6040518181527fd541b5f22e9e402fb32220d566405510c49372d27b4f47f1d0da1a153ea2007c9060200160405180910390a16000610efa82610b99565b9050806001600160a01b031663bd1fe5d06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a600a6118e7565b60006107466008836118f1565b610f7376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610fa35760405162461bcd60e51b8152600401610453906120a4565b610fae81600361184d565b6000610fb982610b99565b9050610fc4826109da565b1561106757806001600160a01b031663637d08f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190611f91565b6000838152600d6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b6040518281527ff8d33755281aa5d41b12a70ae3947ee164ef541d786400d733b0b89df719859e9060200160405180910390a1806001600160a01b0316631b867c636040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a83611830565b600054610100900460ff16158080156111025750600054600160ff909116105b8061111c5750303b15801561111c575060005460ff166001145b61117f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff1916600117905580156111a2576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111cc600090565b6541636365737360d01b1461120e576111ed6541636365737360d01b611460565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6112166118fd565b801561125c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061090a60066118e7565b6000611279600683611830565b1561128657506001610749565b611291600883611830565b1561129e57506000610749565b6112a9600a83611830565b156112b657506002610749565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030383a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b6000611314826109da565b6113605760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4343522d3031313a554e4b4e4f574e5f50524f445543545f49446044820152606401610453565b506000908152600d60205260409020546001600160a01b031690565b61139d74436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146113cd5760405162461bcd60e51b8152600401610453906120ef565b6113d881600361184d565b6040518181527f8e78ca4cc29c505d9901fd1582ba8584083396ce204151eddd3e008749a24fe09060200160405180910390a1600061141682610b99565b9050806001600160a01b03166359dacc6a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a836118f1565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156114aa57600080fd5b505afa1580156114be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e29190611f91565b90506001600160a01b0381166107495760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610453565b600c80546000918261155983612161565b9190505550600c54905061156e81600161184d565b60405163d0e0ba9560e01b8152600481018290526001600160a01b0383169063d0e0ba9590602401600060405180830381600087803b1580156115b057600080fd5b505af11580156115c4573d6000803e3d6000fd5b505050600082815260026020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516305f5f79f60e21b815291518695506003949391926317d7de7c926004808301939192829003018186803b15801561162d57600080fd5b505afa158015611641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116659190611fcd565b8152602001908152602001600020819055508060046000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663e0815f0d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116da57600080fd5b505afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190611fad565b156117285761172260068261196a565b50610749565b816001600160a01b0316639a82f8906040518163ffffffff1660e01b815260040160206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190611fad565b156117a95761172260088261196a565b816001600160a01b031663258d560c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117e257600080fd5b505afa1580156117f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181a9190611fad565b156107495761182a600a8261196a565b50919050565b600081815260018301602052604081205415155b90505b92915050565b60008281526005602052604090205460ff166118698183611976565b6000838152600560205260409020805483919060ff191660018360068111156118a257634e487b7160e01b600052602160045260246000fd5b02179055507fd2248d3e400f6333d5de6d43446115557cb942e75002aa7ad26f9cac9b105b1a8382846040516118da93929190612138565b60405180910390a1505050565b6000610746825490565b60006118448383611ee7565b600054610100900460ff166119685760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610453565b565b60006118448383611f1f565b81600681111561199657634e487b7160e01b600052602160045260246000fd5b8160068111156119b657634e487b7160e01b600052602160045260246000fd5b1415611a1c5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4343522d3032303a534f555243455f414e445f5441524745545f60448201526e14d510551157d2511153951250d053608a1b6064820152608401610453565b6000826006811115611a3e57634e487b7160e01b600052602160045260246000fd5b1415611ac9576001816006811115611a6657634e487b7160e01b600052602160045260246000fd5b14611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d3032313a435245415445445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b61125c565b6001826006811115611aeb57634e487b7160e01b600052602160045260246000fd5b1415611b9b576003816006811115611b1357634e487b7160e01b600052602160045260246000fd5b1480611b3e57506002816006811115611b3c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d32323a50524f504f5345445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b6002826006811115611bbd57634e487b7160e01b600052602160045260246000fd5b1415611c195760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4343522d3032333a4445434c494e45445f49535f46494e414c5f604482015264535441544560d81b6064820152608401610453565b6003826006811115611c3b57634e487b7160e01b600052602160045260246000fd5b1415611cea576004816006811115611c6357634e487b7160e01b600052602160045260246000fd5b1480611c8e57506005816006811115611c8c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032343a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6004826006811115611d0c57634e487b7160e01b600052602160045260246000fd5b1415611dbb576003816006811115611d3457634e487b7160e01b600052602160045260246000fd5b1480611d5f57506006816006811115611d5d57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032353a5041555345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6005826006811115611ddd57634e487b7160e01b600052602160045260246000fd5b1415611e8f576003816006811115611e0557634e487b7160e01b600052602160045260246000fd5b1480611e3057506006816006811115611e2e57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a4343522d3032363a53555350454e4445445f494e56414c49445f6044820152692a2920a729a4aa24a7a760b11b6064820152608401610453565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032373a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610453565b6000826000018281548110611f0c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054611f6657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611847565b506000611847565b600060208284031215611f7f578081fd5b8135611f8a8161219e565b9392505050565b600060208284031215611fa2578081fd5b8151611f8a8161219e565b600060208284031215611fbe578081fd5b81518015158114611f8a578182fd5b600060208284031215611fde578081fd5b5051919050565b600060208284031215611ff6578081fd5b8135611f8a816121b6565b600060208284031215612012578081fd5b8151611f8a816121b6565b60006020828403121561202e578081fd5b5035919050565b6007811061204557612045612188565b9052565b6003811061204557612045612188565b8481526080810161206d6020830186612049565b6001600160a01b039390931660408201526060015292915050565b602081016118478284612035565b602081016118478284612049565b6020808252602b908201527f4552524f523a4343522d3030323a4e4f545f494e5354414e43455f4f5045524160408201526a544f525f5345525649434560a81b606082015260800190565b60208082526029908201527f4552524f523a4343522d3030313a4e4f545f434f4d504f4e454e545f4f574e45604082015268525f5345525649434560b81b606082015260800190565b8381526060810161214c6020830185612035565b6121596040830184612035565b949350505050565b600060001982141561218157634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146121b357600080fd5b50565b600381106121b357600080fdfea26469706673582212207b6d7253c522420b015643d5d348125e0e3e34a0bb911fa3cf3939a9d465163864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6BC607B3 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xBA80B8ED GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xDD51C86A GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xDD51C86A EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xE61AE297 EQ PUSH2 0x3C9 JUMPI DUP1 PUSH4 0xFABC1CBC EQ PUSH2 0x3DC JUMPI DUP1 PUSH4 0xFF3F3883 EQ PUSH2 0x3EF JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xBA80B8ED EQ PUSH2 0x37B JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x38E JUMPI DUP1 PUSH4 0xC71E261F EQ PUSH2 0x3A1 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xA054381F GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x345 JUMPI DUP1 PUSH4 0xA5C0F5A1 EQ PUSH2 0x34D JUMPI DUP1 PUSH4 0xB759F954 EQ PUSH2 0x360 JUMPI DUP1 PUSH4 0xBA62FBE4 EQ PUSH2 0x373 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x6BC607B3 EQ PUSH2 0x30C JUMPI DUP1 PUSH4 0x9F77A605 EQ PUSH2 0x31F JUMPI DUP1 PUSH4 0xA0355F4E EQ PUSH2 0x332 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x3920200C GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x4F27DA18 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x4F27DA18 EQ PUSH2 0x273 JUMPI DUP1 PUSH4 0x4F558E79 EQ PUSH2 0x29E JUMPI DUP1 PUSH4 0x5AF89A47 EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x5E966E45 EQ PUSH2 0x2DC JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x3920200C EQ PUSH2 0x23A JUMPI DUP1 PUSH4 0x414000B5 EQ PUSH2 0x24D JUMPI DUP1 PUSH4 0x4B865846 EQ PUSH2 0x260 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x1267951 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x9F63ED9 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xF5DA3A6 EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x136439DD EQ PUSH2 0x1FE JUMPI DUP1 PUSH4 0x2857373A EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x2B1C7F73 EQ PUSH2 0x227 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x402 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1D6 PUSH2 0x1D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x739 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1C1 PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x74E JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x20C CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x827 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E2 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x235 CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x90F JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x248 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x25B CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x9E7 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x26E CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xAC0 JUMP JUMPDEST PUSH2 0x286 PUSH2 0x281 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xB99 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1E2 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x2AC CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1FE5 JUMP JUMPDEST PUSH2 0xC09 JUMP JUMPDEST PUSH2 0x2FF PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x2088 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x31A CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE00 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x32D CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE51 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x340 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xE5E JUMP JUMPDEST PUSH2 0x219 PUSH2 0xF37 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x35B CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xF43 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x36E CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0xF50 JUMP JUMPDEST PUSH1 0xC SLOAD PUSH2 0x219 JUMP JUMPDEST PUSH2 0x1D6 PUSH2 0x389 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x10D5 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x39C CALLDATASIZE PUSH1 0x4 PUSH2 0x1F6E JUMP JUMPDEST PUSH2 0x10E2 JUMP JUMPDEST PUSH2 0x219 PUSH2 0x1260 JUMP JUMPDEST PUSH2 0x3BC PUSH2 0x3B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x126C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E2 SWAP2 SWAP1 PUSH2 0x2096 JUMP JUMPDEST PUSH2 0x286 PUSH2 0x3D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x1309 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x3EA CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x137C JUMP JUMPDEST PUSH2 0x219 PUSH2 0x3FD CALLDATASIZE PUSH1 0x4 PUSH2 0x201D JUMP JUMPDEST PUSH2 0x1453 JUMP JUMPDEST PUSH2 0x423 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x45C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030333A434F4D504F4E454E545F414C52454144595F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x455849535453 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x17D7DE7C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x522 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH1 0x0 EQ PUSH2 0x5B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030343A434F4D504F4E454E545F4E414D455F414C52 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x454144595F455849535453 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C3 DUP3 PUSH2 0x1548 JUMP JUMPDEST SWAP1 POP PUSH32 0xD9B3D18A6293C46C667FE6A98468C457078489F2E16E356BB4C77BB2E22D2016 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x17D7DE7C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x61F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x633 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x657 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x15DAE03E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x690 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6C8 SWAP2 SWAP1 PUSH2 0x2001 JUMP JUMPDEST DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0x6DA SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2059 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x638CE0BA PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x731 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x8 DUP4 PUSH2 0x1830 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x771 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0x7AC DUP2 PUSH1 0x6 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x9E6D5F1811033619318D2FBE9EE7EC46C830175B39F7885248B51E0DECB5837A SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x7EA DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBE169E7E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x848 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x878 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH2 0x883 DUP2 PUSH1 0x4 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x45DBC7E529DF39B8D70DE83CC9E1D38C088E6BA21AB836E976F7310F1CBB8AFD SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x8C1 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD73CD992 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0x8 PUSH2 0x18E7 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x973 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030363A434F4D504F4E454E545F414444524553535F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5A45524F PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030373A434F4D504F4E454E545F554E4B4E4F574E00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x6 DUP4 PUSH2 0x1830 JUMP JUMPDEST PUSH2 0xA0A PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA3A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xA45 DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xD24597F0A62B78258EBD8C2FA52051CF673A5000D14D2FB619C91B1ED95C538A SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xA83 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA18F5AE2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAE3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB13 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xB1E DUP2 PUSH1 0x5 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x55D2D8495549E354E6EE012C5AA183EB0E08EE2F256349AFB0F7F74D1940F9B3 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xB5C DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xB3FCA9BD PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030353A494E56414C49445F434F4D504F4E454E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xC2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xCC0 JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x775A4048 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCB9 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST SWAP1 POP PUSH2 0x749 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCE2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xD36 JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD49D21C0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xD58 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0xDAC JUMPI PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x3FFDD2F3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3031303A434F4D504F4E454E545F545950455F554E4B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x2727ABA7 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH2 0xE21 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x6 DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH2 0xE81 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xEB1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xEBC DUP2 PUSH1 0x2 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xD541B5F22E9E402FB32220D566405510C49372D27B4F47F1D0DA1A153EA2007C SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xEFA DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xBD1FE5D0 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0xA PUSH2 0x18E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0x8 DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH2 0xF73 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xFA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xFAE DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFB9 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP PUSH2 0xFC4 DUP3 PUSH2 0x9DA JUMP JUMPDEST ISZERO PUSH2 0x1067 JUMPI DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x637D08F4 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1002 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1016 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x103A SWAP2 SWAP1 PUSH2 0x1F91 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xF8D33755281AA5D41B12A70AE3947EE164EF541D786400D733B0B89DF719859E SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x1B867C63 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0xA DUP4 PUSH2 0x1830 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1102 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x111C JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x111C JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x117F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x11A2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x11CC PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x120E JUMPI PUSH2 0x11ED PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1216 PUSH2 0x18FD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x125C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x90A PUSH1 0x6 PUSH2 0x18E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1279 PUSH1 0x6 DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x1286 JUMPI POP PUSH1 0x1 PUSH2 0x749 JUMP JUMPDEST PUSH2 0x1291 PUSH1 0x8 DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x129E JUMPI POP PUSH1 0x0 PUSH2 0x749 JUMP JUMPDEST PUSH2 0x12A9 PUSH1 0xA DUP4 PUSH2 0x1830 JUMP JUMPDEST ISZERO PUSH2 0x12B6 JUMPI POP PUSH1 0x2 PUSH2 0x749 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030383A494E56414C49445F434F4D504F4E454E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1314 DUP3 PUSH2 0x9DA JUMP JUMPDEST PUSH2 0x1360 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3031313A554E4B4E4F574E5F50524F445543545F4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x453 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0xD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x139D PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1460 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x453 SWAP1 PUSH2 0x20EF JUMP JUMPDEST PUSH2 0x13D8 DUP2 PUSH1 0x3 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x8E78CA4CC29C505D9901FD1582BA8584083396CE204151EDDD3E008749A24FE0 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0x1416 DUP3 PUSH2 0xB99 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x59DACC6A PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x71D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x746 PUSH1 0xA DUP4 PUSH2 0x18F1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14E2 SWAP2 SWAP1 PUSH2 0x1F91 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0x0 SWAP2 DUP3 PUSH2 0x1559 DUP4 PUSH2 0x2161 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0xC SLOAD SWAP1 POP PUSH2 0x156E DUP2 PUSH1 0x1 PUSH2 0x184D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD0E0BA95 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH4 0xD0E0BA95 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x15C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 MLOAD PUSH4 0x5F5F79F PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 MLOAD DUP7 SWAP6 POP PUSH1 0x3 SWAP5 SWAP4 SWAP2 SWAP3 PUSH4 0x17D7DE7C SWAP3 PUSH1 0x4 DUP1 DUP4 ADD SWAP4 SWAP2 SWAP3 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x162D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1641 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1665 SWAP2 SWAP1 PUSH2 0x1FCD JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x4 PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE0815F0D PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16EE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1712 SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x1728 JUMPI PUSH2 0x1722 PUSH1 0x6 DUP3 PUSH2 0x196A JUMP JUMPDEST POP PUSH2 0x749 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9A82F890 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1775 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1799 SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x17A9 JUMPI PUSH2 0x1722 PUSH1 0x8 DUP3 PUSH2 0x196A JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x258D560C PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x181A SWAP2 SWAP1 PUSH2 0x1FAD JUMP JUMPDEST ISZERO PUSH2 0x749 JUMPI PUSH2 0x182A PUSH1 0xA DUP3 PUSH2 0x196A JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x1869 DUP2 DUP4 PUSH2 0x1976 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP4 SWAP2 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x18A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH32 0xD2248D3E400F6333D5DE6D43446115557CB942E75002AA7AD26F9CAC9B105B1A DUP4 DUP3 DUP5 PUSH1 0x40 MLOAD PUSH2 0x18DA SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2138 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x746 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1844 DUP4 DUP4 PUSH2 0x1EE7 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1968 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1844 DUP4 DUP4 PUSH2 0x1F1F JUMP JUMPDEST DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1996 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x19B6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1A1C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032303A534F555243455F414E445F5441524745545F PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x14D510551157D2511153951250D053 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1A3E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1AC9 JUMPI PUSH1 0x1 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1A66 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032313A435245415445445F494E56414C49445F5452 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x20A729A4AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH2 0x125C JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1AEB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1B9B JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B13 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1B3E JUMPI POP PUSH1 0x2 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B3C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D32323A50524F504F5345445F494E56414C49445F5452 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x20A729A4AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1BBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1C19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032333A4445434C494E45445F49535F46494E414C5F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5354415445 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1CEA JUMPI PUSH1 0x4 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C63 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1C8E JUMPI POP PUSH1 0x5 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1C8C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032343A4143544956455F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x4 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D0C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1DBB JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D34 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1D5F JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1D5D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032353A5041555345445F494E56414C49445F545241 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x2729A4AA24A7A7 PUSH1 0xC9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x5 DUP3 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1DDD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1E8F JUMPI PUSH1 0x3 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1E05 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1E30 JUMPI POP PUSH1 0x6 DUP2 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1E2E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x1AC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032363A53555350454E4445445F494E56414C49445F PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x2A2920A729A4AA24A7A7 PUSH1 0xB1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3032373A494E495449414C5F53544154455F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12105391131151 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x453 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1F0C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x1F66 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1847 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1847 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F7F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F8A DUP2 PUSH2 0x219E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FA2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1F8A DUP2 PUSH2 0x219E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FBE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1F8A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FDE JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FF6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1F8A DUP2 PUSH2 0x21B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2012 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1F8A DUP2 PUSH2 0x21B6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x202E JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x2045 JUMPI PUSH2 0x2045 PUSH2 0x2188 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2045 JUMPI PUSH2 0x2045 PUSH2 0x2188 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x206D PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 SWAP1 SWAP4 AND PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1847 DUP3 DUP5 PUSH2 0x2035 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x1847 DUP3 DUP5 PUSH2 0x2049 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030323A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH11 0x544F525F53455256494345 PUSH1 0xA8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x29 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4343522D3030313A4E4F545F434F4D504F4E454E545F4F574E45 PUSH1 0x40 DUP3 ADD MSTORE PUSH9 0x525F53455256494345 PUSH1 0xB8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP4 DUP2 MSTORE PUSH1 0x60 DUP2 ADD PUSH2 0x214C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2035 JUMP JUMPDEST PUSH2 0x2159 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x2035 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2181 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x21B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x21B3 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x6D7253C522420B015643D5D348125E0E3E34A0BB911FA3CF3939A9D4 PUSH6 0x163864736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"4013:11230:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5145:766;;;;;;:::i;:::-;;:::i;:::-;;12578:105;;;;;;:::i;:::-;;:::i;:::-;;;2777:14:103;;2770:22;2752:41;;2740:2;2725:18;12578:105:75;;;;;;;;9520:366;;;;;;:::i;:::-;;:::i;8458:334::-;;;;;;:::i;:::-;;:::i;12251:97::-;;;:::i;:::-;;;2950:25:103;;;2938:2;2923:18;12251:97:75;2905:76:103;10118:299:75;;;;;;:::i;:::-;;:::i;12463:107::-;;;;;;:::i;:::-;;:::i;8110:340::-;;;;;;:::i;:::-;;:::i;7753:349::-;;;;;;:::i;:::-;;:::i;9894:216::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2568:32:103;;;2550:51;;2538:2;2523:18;9894:216:75;2505:102:103;6733:166:75;;;;;;:::i;:::-;6781:4;6821:18;;;:14;:18;;;;;;-1:-1:-1;;;;;6821:18:75;6858:32;;;6733:166;11544:503;;;;;;:::i;:::-;;:::i;10966:147::-;;;;;;:::i;:::-;11026:40;11086:19;;;:15;:19;;;;;;;;;10966:147;;;;;;;;:::i;9150:362::-;;;;;;:::i;:::-;;:::i;11403:133::-;;;;;;:::i;:::-;;:::i;7402:343::-;;;;;;:::i;:::-;;:::i;12354:101::-;;;:::i;11121:130::-;;;;;;:::i;:::-;;:::i;6907:487::-;;;;;;:::i;:::-;;:::i;12055:85::-;12122:15;;12055:85;;12691:109;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;12146:99:75:-;;;:::i;10425:533::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12808:226::-;;;;;;:::i;:::-;;:::i;8800:342::-;;;;;;:::i;:::-;;:::i;11259:136::-;;;;;;:::i;:::-;;:::i;5145:766::-;4791:44;-1:-1:-1;;;4791:19:75;:44::i;:::-;-1:-1:-1;;;;;4775:60:75;719:10:59;-1:-1:-1;;;;;4775:60:75;;4753:141;;;;-1:-1:-1;;;4753:141:75;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5292:41:75;::::1;;::::0;;;:21:::1;:41;::::0;;;;;:46;5284:97:::1;;;::::0;-1:-1:-1;;;5284:97:75;;8963:2:103;5284:97:75::1;::::0;::::1;8945:21:103::0;9002:2;8982:18;;;8975:30;9041:34;9021:18;;;9014:62;-1:-1:-1;;;9092:18:103;;;9085:36;9138:19;;5284:97:75::1;8935:228:103::0;5284:97:75::1;5400:18;:39;5419:9;-1:-1:-1::0;;;;;5419:17:75::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5400:39;;;;;;;;;;;;5443:1;5400:44;5392:100;;;::::0;-1:-1:-1;;;5392:100:75;;12188:2:103;5392:100:75::1;::::0;::::1;12170:21:103::0;12227:2;12207:18;;;12200:30;12266:34;12246:18;;;12239:62;-1:-1:-1;;;12317:18:103;;;12310:41;12368:19;;5392:100:75::1;12160:233:103::0;5392:100:75::1;5555:10;5568:28;5586:9;5568:17;:28::i;:::-;5555:41;;5660:139;5695:9;-1:-1:-1::0;;;;;5695:17:75::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5729:9;-1:-1:-1::0;;;;;5729:17:75::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5771:9;5796:2;5660:139;;;;;;;;;:::i;:::-;;;;;;;;5875:9;-1:-1:-1::0;;;;;5875:26:75::1;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4905:1;5145:766:::0;:::o;12578:105::-;12629:4;12644:36;12667:8;12677:2;12644:22;:36::i;:::-;12637:43;;12578:105;;;;:::o;9520:366::-;5010:46;-1:-1:-1;;;5010:19:75;:46::i;:::-;-1:-1:-1;;;;;4994:62:75;719:10:59;-1:-1:-1;;;;;4994:62:75;;4972:145;;;;-1:-1:-1;;;4972:145:75;;;;;;;:::i;:::-;9643:52:::1;9656:2;9660:34;9643:12;:52::i;:::-;9711:24;::::0;2950:25:103;;;9711:24:75::1;::::0;2938:2:103;2923:18;9711:24:75::1;;;;;;;9801:20;9824:16;9837:2;9824:12;:16::i;:::-;9801:39;;9851:9;-1:-1:-1::0;;;;;9851:25:75::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;8458:334:::0;4791:44;-1:-1:-1;;;4791:19:75;:44::i;:::-;-1:-1:-1;;;;;4775:60:75;719:10:59;-1:-1:-1;;;;;4775:60:75;;4753:141;;;;-1:-1:-1;;;4753:141:75;;;;;;;:::i;:::-;8557:50:::1;8570:2;8574:32;8557:12;:50::i;:::-;8623:22;::::0;2950:25:103;;;8623:22:75::1;::::0;2938:2:103;2923:18;8623:22:75::1;;;;;;;8709:20;8732:16;8745:2;8732:12;:16::i;:::-;8709:39;;8759:9;-1:-1:-1::0;;;;;8759:23:75::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;12251:97:::0;12291:13;12315:30;12336:8;12315:20;:30::i;:::-;12308:37;;12251:97;:::o;10118:299::-;10189:10;-1:-1:-1;;;;;10220:30:75;;10212:79;;;;-1:-1:-1;;;10212:79:75;;6564:2:103;10212:79:75;;;6546:21:103;6603:2;6583:18;;;6576:30;6642:34;6622:18;;;6615:62;-1:-1:-1;;;6693:18:103;;;6686:34;6737:19;;10212:79:75;6536:226:103;10212:79:75;-1:-1:-1;;;;;;10307:39:75;;;;;;:21;:39;;;;;;10367:6;10359:50;;;;-1:-1:-1;;;10359:50:75;;8603:2:103;10359:50:75;;;8585:21:103;8642:2;8622:18;;;8615:30;8681:33;8661:18;;;8654:61;8732:18;;10359:50:75;8575:181:103;12463:107:75;12515:4;12530:37;12553:9;12564:2;12530:22;:37::i;8110:340::-;5010:46;-1:-1:-1;;;5010:19:75;:46::i;:::-;-1:-1:-1;;;;;4994:62:75;719:10:59;-1:-1:-1;;;;;4994:62:75;;4972:145;;;;-1:-1:-1;;;4972:145:75;;;;;;;:::i;:::-;8212:50:::1;8225:2;8229:32;8212:12;:50::i;:::-;8278:23;::::0;2950:25:103;;;8278:23:75::1;::::0;2938:2:103;2923:18;8278:23:75::1;;;;;;;8366:20;8389:16;8402:2;8389:12;:16::i;:::-;8366:39;;8416:9;-1:-1:-1::0;;;;;8416:24:75::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;7753:349:::0;5010:46;-1:-1:-1;;;5010:19:75;:46::i;:::-;-1:-1:-1;;;;;4994:62:75;719:10:59;-1:-1:-1;;;;;4994:62:75;;4972:145;;;;-1:-1:-1;;;4972:145:75;;;;;;;:::i;:::-;7856:53:::1;7869:2;7873:35;7856:12;:53::i;:::-;7925:25;::::0;2950::103;;;7925::75::1;::::0;2938:2:103;2923:18;7925:25:75::1;;;;;;;8017:20;8040:16;8053:2;8040:12;:16::i;:::-;8017:39;;8067:9;-1:-1:-1::0;;;;;8067:25:75::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;9894:216:::0;9949:20;9994:18;;;:14;:18;;;;;;-1:-1:-1;;;;;9994:18:75;10031:32;10023:79;;;;-1:-1:-1;;;10023:79:75;;11373:2:103;10023:79:75;;;11355:21:103;11412:2;11392:18;;;11385:30;11451:34;11431:18;;;11424:62;-1:-1:-1;;;11502:18:103;;;11495:32;11544:19;;10023:79:75;11345:224:103;11544:503:75;11632:7;11673:32;11656:13;:49;;;;;;-1:-1:-1;;;11656:49:75;;;;;;;;;;11652:388;;;11716:7;;;;;;;;;-1:-1:-1;;;;;11716:7:75;-1:-1:-1;;;;;11716:27:75;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11709:36;;;;11652:388;11784:31;11767:13;:48;;;;;;-1:-1:-1;;;11767:48:75;;;;;;;;;;11763:277;;;11826:7;;;;;;;;;-1:-1:-1;;;;;11826:7:75;-1:-1:-1;;;;;11826:29:75;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11763:277;11896:33;11879:13;:50;;;;;;-1:-1:-1;;;11879:50:75;;;;;;;;;;11875:165;;;11940:7;;;;;;;;;-1:-1:-1;;;;;11940:7:75;-1:-1:-1;;;;;11940:29:75;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11875:165;11991:46;;-1:-1:-1;;;11991:46:75;;12600:2:103;11991:46:75;;;12582:21:103;12639:2;12619:18;;;12612:30;12678:34;12658:18;;;12651:62;-1:-1:-1;;;12729:18:103;;;12722:34;12773:19;;11991:46:75;12572:226:103;9150:362:75;4791:44;-1:-1:-1;;;4791:19:75;:44::i;:::-;-1:-1:-1;;;;;4775:60:75;719:10:59;-1:-1:-1;;;;;4775:60:75;;4753:141;;;;-1:-1:-1;;;4753:141:75;;;;;;;:::i;11403:133::-;11459:17;11496:32;11513:9;11524:3;11496:16;:32::i;7402:343::-;5010:46;-1:-1:-1;;;5010:19:75;:46::i;:::-;-1:-1:-1;;;;;4994:62:75;719:10:59;-1:-1:-1;;;;;4994:62:75;;4972:145;;;;-1:-1:-1;;;4972:145:75;;;;;;;:::i;:::-;7504:52:::1;7517:2;7521:34;7504:12;:52::i;:::-;7572:24;::::0;2950:25:103;;;7572:24:75::1;::::0;2938:2:103;2923:18;7572:24:75::1;;;;;;;7660:20;7683:16;7696:2;7683:12;:16::i;:::-;7660:39;;7710:9;-1:-1:-1::0;;;;;7710:25:75::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;12354:101:::0;12396:13;12420:32;12441:10;12420:20;:32::i;11121:130::-;11176:16;11212:31;11229:8;11239:3;11212:16;:31::i;6907:487::-;5010:46;-1:-1:-1;;;5010:19:75;:46::i;:::-;-1:-1:-1;;;;;4994:62:75;719:10:59;-1:-1:-1;;;;;4994:62:75;;4972:145;;;;-1:-1:-1;;;4972:145:75;;;;;;;:::i;:::-;7009:50:::1;7022:2;7026:32;7009:12;:50::i;:::-;7070:20;7093:16;7106:2;7093:12;:16::i;:::-;7070:39;;7126:13;7136:2;7126:9;:13::i;:::-;7122:119;;;7202:9;-1:-1:-1::0;;;;;7185:42:75::1;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7156:26;::::0;;;:22:::1;:26;::::0;;;;:73;;-1:-1:-1;;;;;;7156:73:75::1;-1:-1:-1::0;;;;;7156:73:75;;;::::1;::::0;;;::::1;::::0;;7122:119:::1;7258:24;::::0;2950:25:103;;;7258:24:75::1;::::0;2938:2:103;2923:18;7258:24:75::1;;;;;;;7358:9;-1:-1:-1::0;;;;;7358:26:75::1;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;12691:109:::0;12744:4;12759:38;12782:10;12794:2;12759:22;:38::i;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;10550:2:103;3146:190:47;;;10532:21:103;10589:2;10569:18;;;10562:30;10628:34;10608:18;;;10601:62;-1:-1:-1;;;10679:18:103;;;10672:44;10733:19;;3146:190:47;10522:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;4270:36:103;;3531:14:47;;4258:2:103;4243:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;12146:99:75:-;12187:13;12211:31;12232:9;12211:20;:31::i;10425:533::-;10484:38;10539:37;10562:9;10573:2;10539:22;:37::i;:::-;10535:416;;;-1:-1:-1;10600:32:75;10593:39;;10535:416;10654:36;10677:8;10687:2;10654:22;:36::i;:::-;10650:301;;;-1:-1:-1;10714:31:75;10707:38;;10650:301;10767:38;10790:10;10802:2;10767:22;:38::i;:::-;10763:188;;;-1:-1:-1;10829:33:75;10822:40;;10763:188;10895:44;;-1:-1:-1;;;10895:44:75;;9370:2:103;10895:44:75;;;9352:21:103;9409:2;9389:18;;;9382:30;9448:34;9428:18;;;9421:62;-1:-1:-1;;;9499:18:103;;;9492:32;9541:19;;10895:44:75;9342:224:103;12808:226:75;12871:19;12911:20;12921:9;12911;:20::i;:::-;12903:65;;;;-1:-1:-1;;;12903:65:75;;10189:2:103;12903:65:75;;;10171:21:103;;;10208:18;;;10201:30;10267:34;10247:18;;;10240:62;10319:18;;12903:65:75;10161:182:103;12903:65:75;-1:-1:-1;12993:33:75;;;;:22;:33;;;;;;-1:-1:-1;;;;;12993:33:75;;12808:226::o;8800:342::-;4791:44;-1:-1:-1;;;4791:19:75;:44::i;:::-;-1:-1:-1;;;;;4775:60:75;719:10:59;-1:-1:-1;;;;;4775:60:75;;4753:141;;;;-1:-1:-1;;;4753:141:75;;;;;;;:::i;:::-;8901:50:::1;8914:2;8918:32;8901:12;:50::i;:::-;8967:24;::::0;2950:25:103;;;8967:24:75::1;::::0;2938:2:103;2923:18;8967:24:75::1;;;;;;;9057:20;9080:16;9093:2;9080:12;:16::i;:::-;9057:39;;9107:9;-1:-1:-1::0;;;;;9107:25:75::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;11259:136:::0;11316:18;11354:33;11371:10;11383:3;11354:16;:33::i;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;2950:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;2923:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;4927:2:103;1703:113:88;;;4909:21:103;4966:2;4946:18;;;4939:30;5005:34;4985:18;;;4978:62;-1:-1:-1;;;5056:18:103;;;5049:35;5101:19;;1703:113:88;4899:227:103;5919:806:75;6068:15;:17;;6004:10;;;6068:17;;;:::i;:::-;;;;;;6101:15;;6096:20;;6164:52;6177:2;6181:34;6164:12;:52::i;:::-;6227:19;;-1:-1:-1;;;6227:19:75;;;;;2950:25:103;;;-1:-1:-1;;;;;6227:15:75;;;;;2923:18:103;;6227:19:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6302:18:75;;;;:14;:18;;;;;;;;:30;;-1:-1:-1;;;;;;6302:30:75;-1:-1:-1;;;;;6302:30:75;;;;;;;;6362:19;;-1:-1:-1;;;6362:19:75;;;;6302:18;;-1:-1:-1;6343:18:75;;6302;:30;;6362:17;;:19;;;;;6302:18;;6362:19;;;;;6302:30;6362:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6343:39;;;;;;;;;;;:44;;;;6442:2;6398:21;:41;6428:9;-1:-1:-1;;;;;6398:41:75;-1:-1:-1;;;;;6398:41:75;;;;;;;;;;;;:46;;;;6500:9;-1:-1:-1;;;;;6500:19:75;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6496:222;;;6525:32;6543:9;6554:2;6525:17;:32::i;:::-;;6496:222;;;6579:9;-1:-1:-1;;;;;6579:18:75;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6575:143;;;6603:31;6621:8;6631:2;6603:17;:31::i;6575:143::-;6656:9;-1:-1:-1;;;;;6656:20:75;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6652:66;;;6682:33;6700:10;6712:2;6682:17;:33::i;:::-;;5919:806;;;:::o;11029:144:64:-;11106:4;4250:19;;;:12;;;:19;;;;;;:24;;11129:37;11122:44;;11029:144;;;;;:::o;13042:411:75:-;13141:34;13178:28;;;:15;:28;;;;;;;;13219:41;13178:28;13251:8;13219:21;:41::i;:::-;13271:28;;;;:15;:28;;;;;:39;;13302:8;;13271:28;-1:-1:-1;;13271:39:75;;13302:8;13271:39;;;;;;-1:-1:-1;;;13271:39:75;;;;;;;;;;;;;;13388:57;13413:11;13426:8;13436;13388:57;;;;;;;;:::i;:::-;;;;;;;;13042:411;;;:::o;11254:112:64:-;11314:7;11340:19;11348:3;4444:18;;4362:107;11708:135;11779:7;11813:22;11817:3;11829:5;11813:3;:22::i;1460:64:88:-;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;11776:2:103;4880:69:47;;;11758:21:103;11815:2;11795:18;;;11788:30;11854:34;11834:18;;;11827:62;-1:-1:-1;;;11905:18:103;;;11898:41;11956:19;;4880:69:47;11748:233:103;4880:69:47;1460:64:88:o;10516:129:64:-;10583:4;10606:32;10611:3;10631:5;10606:4;:32::i;13461:1779:75:-;13661:8;13649:20;;;;;;-1:-1:-1;;;13649:20:75;;;;;;;;;:8;:20;;;;;;-1:-1:-1;;;13649:20:75;;;;;;;;;;;13641:94;;;;-1:-1:-1;;;13641:94:75;;9773:2:103;13641:94:75;;;9755:21:103;9812:2;9792:18;;;9785:30;9851:34;9831:18;;;9824:62;-1:-1:-1;;;9902:18:103;;;9895:45;9957:19;;13641:94:75;9745:237:103;13641:94:75;13772:33;13760:8;:45;;;;;;-1:-1:-1;;;13760:45:75;;;;;;;;;;13756:1477;;;13842:34;13830:8;:46;;;;;;-1:-1:-1;;;13830:46:75;;;;;;;;;;13822:117;;;;-1:-1:-1;;;13822:117:75;;5745:2:103;13822:117:75;;;5727:21:103;5784:2;5764:18;;;5757:30;5823:34;5803:18;;;5796:62;-1:-1:-1;;;5874:18:103;;;5867:38;5922:19;;13822:117:75;5717:230:103;13822:117:75;13756:1477;;;13973:34;13961:8;:46;;;;;;-1:-1:-1;;;13961:46:75;;;;;;;;;;13957:1276;;;14044:32;14032:8;:44;;;;;;-1:-1:-1;;;14032:44:75;;;;;;;;;;:112;;;-1:-1:-1;14110:34:75;14098:8;:46;;;;;;-1:-1:-1;;;14098:46:75;;;;;;;;;;14032:112;14024:183;;;;-1:-1:-1;;;14024:183:75;;6969:2:103;14024:183:75;;;6951:21:103;7008:2;6988:18;;;6981:30;7047:34;7027:18;;;7020:62;-1:-1:-1;;;7098:18:103;;;7091:38;7146:19;;14024:183:75;6941:230:103;13957:1276:75;14241:34;14229:8;:46;;;;;;-1:-1:-1;;;14229:46:75;;;;;;;;;;14225:1008;;;14292:47;;-1:-1:-1;;;14292:47:75;;7378:2:103;14292:47:75;;;7360:21:103;7417:2;7397:18;;;7390:30;7456:34;7436:18;;;7429:62;-1:-1:-1;;;7507:18:103;;;7500:35;7552:19;;14292:47:75;7350:227:103;14225:1008:75;14373:32;14361:8;:44;;;;;;-1:-1:-1;;;14361:44:75;;;;;;;;;;14357:876;;;14442:32;14430:8;:44;;;;;;-1:-1:-1;;;14430:44:75;;;;;;;;;;:113;;;-1:-1:-1;14508:35:75;14496:8;:47;;;;;;-1:-1:-1;;;14496:47:75;;;;;;;;;;14430:113;14422:183;;;;-1:-1:-1;;;14422:183:75;;10965:2:103;14422:183:75;;;10947:21:103;11004:2;10984:18;;;10977:30;11043:34;11023:18;;;11016:62;-1:-1:-1;;;11094:18:103;;;11087:37;11141:19;;14422:183:75;10937:229:103;14357:876:75;14639:32;14627:8;:44;;;;;;-1:-1:-1;;;14627:44:75;;;;;;;;;;14623:610;;;14708:32;14696:8;:44;;;;;;-1:-1:-1;;;14696:44:75;;;;;;;;;;:111;;;-1:-1:-1;14773:34:75;14761:8;:46;;;;;;-1:-1:-1;;;14761:46:75;;;;;;;;;;14696:111;14688:181;;;;-1:-1:-1;;;14688:181:75;;4519:2:103;14688:181:75;;;4501:21:103;4558:2;4538:18;;;4531:30;4597:34;4577:18;;;4570:62;-1:-1:-1;;;4648:18:103;;;4641:37;4695:19;;14688:181:75;4491:229:103;14623:610:75;14903:35;14891:8;:47;;;;;;-1:-1:-1;;;14891:47:75;;;;;;;;;;14887:346;;;14975:32;14963:8;:44;;;;;;-1:-1:-1;;;14963:44:75;;;;;;;;;;:111;;;-1:-1:-1;15040:34:75;15028:8;:46;;;;;;-1:-1:-1;;;15028:46:75;;;;;;;;;;14963:111;14955:184;;;;-1:-1:-1;;;14955:184:75;;8192:2:103;14955:184:75;;;8174:21:103;8231:2;8211:18;;;8204:30;8270:34;8250:18;;;8243:62;-1:-1:-1;;;8321:18:103;;;8314:40;8371:19;;14955:184:75;8164:232:103;14887:346:75;15172:49;;-1:-1:-1;;;15172:49:75;;7784:2:103;15172:49:75;;;7766:21:103;7823:2;7803:18;;;7796:30;7862:34;7842:18;;;7835:62;-1:-1:-1;;;7913:18:103;;;7906:37;7960:19;;15172:49:75;7756:229:103;4811:118:64;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;2113:404::-;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;14:257:103;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:297::-;;662:2;650:9;641:7;637:23;633:32;630:2;;;683:6;675;668:22;630:2;720:9;714:16;773:5;766:13;759:21;752:5;749:32;739:2;;800:6;792;785:22;844:194;;967:2;955:9;946:7;942:23;938:32;935:2;;;988:6;980;973:22;935:2;-1:-1:-1;1016:16:103;;925:113;-1:-1:-1;925:113:103:o;1324:286::-;;1454:2;1442:9;1433:7;1429:23;1425:32;1422:2;;;1475:6;1467;1460:22;1422:2;1519:9;1506:23;1538:42;1574:5;1538:42;:::i;1615:290::-;;1756:2;1744:9;1735:7;1731:23;1727:32;1724:2;;;1777:6;1769;1762:22;1724:2;1814:9;1808:16;1833:42;1869:5;1833:42;:::i;1910:190::-;;2022:2;2010:9;2001:7;1997:23;1993:32;1990:2;;;2043:6;2035;2028:22;1990:2;-1:-1:-1;2071:23:103;;1980:120;-1:-1:-1;1980:120:103:o;2105:145::-;2191:1;2184:5;2181:12;2171:2;;2197:18;;:::i;:::-;2226;;2161:89::o;2255:144::-;2340:1;2333:5;2330:12;2320:2;;2346:18;;:::i;2986:456::-;3233:25;;;3220:3;3205:19;;3267:57;3320:2;3305:18;;3297:6;3267:57;:::i;:::-;-1:-1:-1;;;;;3360:32:103;;;;3355:2;3340:18;;3333:60;3424:2;3409:18;3402:34;3187:255;;-1:-1:-1;;3187:255:103:o;3674:218::-;3825:2;3810:18;;3837:49;3814:9;3868:6;3837:49;:::i;3897:216::-;4047:2;4032:18;;4059:48;4036:9;4089:6;4059:48;:::i;5131:407::-;5333:2;5315:21;;;5372:2;5352:18;;;5345:30;5411:34;5406:2;5391:18;;5384:62;-1:-1:-1;;;5477:2:103;5462:18;;5455:41;5528:3;5513:19;;5305:233::o;5952:405::-;6154:2;6136:21;;;6193:2;6173:18;;;6166:30;6232:34;6227:2;6212:18;;6205:62;-1:-1:-1;;;6298:2:103;6283:18;;6276:39;6347:3;6332:19;;6126:231::o;12985:401::-;13221:25;;;13209:2;13194:18;;13255:58;13309:2;13294:18;;13286:6;13255:58;:::i;:::-;13322;13376:2;13365:9;13361:18;13353:6;13322:58;:::i;:::-;13176:210;;;;;;:::o;13391:236::-;;-1:-1:-1;;13451:17:103;;13448:2;;;-1:-1:-1;;;13491:33:103;;13547:4;13544:1;13537:15;13577:4;13498:3;13565:17;13448:2;-1:-1:-1;13619:1:103;13608:13;;13438:189::o;13632:127::-;13693:10;13688:3;13684:20;13681:1;13674:31;13724:4;13721:1;13714:15;13748:4;13745:1;13738:15;13764:131;-1:-1:-1;;;;;13839:31:103;;13829:42;;13819:2;;13885:1;13882;13875:12;13819:2;13809:86;:::o;13900:112::-;13986:1;13979:5;13976:12;13966:2;;14002:1;13999;13992:12"},"methodIdentifiers":{"approve(uint256)":"b759f954","archiveFromComponentOwner(uint256)":"6bc607b3","archiveFromInstanceOperator(uint256)":"0f5da3a6","components()":"ba62fbe4","decline(uint256)":"a0355f4e","exists(uint256)":"4f558e79","getComponent(uint256)":"4f27da18","getComponentId(address)":"2b1c7f73","getComponentState(uint256)":"5e966e45","getComponentType(uint256)":"dd51c86a","getOracleId(uint256)":"a5c0f5a1","getPolicyFlow(uint256)":"e61ae297","getProductId(uint256)":"9f77a605","getRequiredRole(uint8)":"5af89a47","getRiskpoolId(uint256)":"ff3f3883","initialize(address)":"c4d66de8","isOracle(uint256)":"09f63ed9","isProduct(uint256)":"3920200c","isRiskpool(uint256)":"ba80b8ed","oracles()":"2857373a","pause(uint256)":"136439dd","products()":"c71e261f","propose(address)":"01267951","resume(uint256)":"414000b5","riskpools()":"a054381f","suspend(uint256)":"4b865846","unpause(uint256)":"fabc1cbc"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archiveFromComponentOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archiveFromInstanceOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"components\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getComponent\",\"outputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"component\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"}],\"name\":\"getComponentId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getComponentState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"componentState\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getComponentType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getOracleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"oracleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"}],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_policyFlow\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getProductId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"}],\"name\":\"getRequiredRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"products\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"component\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"riskpools\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"suspend\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract provides functionality to manage and control components in a system. The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. It also includes modifiers to restrict access to certain functions based on the caller's role. Functions: - `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. - `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. - `exists()`: Checks if a component with the given ID exists in the system. - `approve()`: Approves a component with the given ID, changing its state to \\\"Active\\\" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping. - `decline()`: Changes the state of a component with the given ID to \\\"Declined\\\" and emits an event. It also calls the `declineCallback` function of the component. - `suspend()`: Suspends a component with the given ID by changing its state to \\\"Suspended\\\" and emitting an event. It also calls the `suspendCallback` function of the component. - `resume()`: Resumes a component with the given ID by changing its state to \\\"Active\\\" and emitting an event. It also calls the `resumeCallback` function of the component. - `pause()`: Pauses a component with the given ID by changing its state to \\\"Paused\\\" and emitting an event. It also calls the `pauseCallback` function of the component. - `unpause()`: Unpauses a component with the given ID by changing its state to \\\"Active\\\" and emitting an event. It also calls the `unpauseCallback` function of the component. - `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to \\\"Archived\\\" and emitting an event. It also calls the `archiveCallback` function of the component. - `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to \\\"Archived\\\" and emitting an event. It also calls the `archiveCallback` function of the component. - `getComponent()`: Retrieves the component with the given ID. - `getComponentId()`: Retrieves the ID of a registered component given its address. - `getComponentType()`: Retrieves the component type of a given component ID. - `getComponentState()`: Retrieves the state of the component with the given ID. - `getOracleId()`: Retrieves the oracle ID at the specified index. - `getRiskpoolId()`: Retrieves the risk pool ID at the specified index. - `getProductId()`: Retrieves the product ID at the specified index. - `getRequiredRole()`: Retrieves the required role for a given component type. - `components()`: Returns the number of components currently stored in the contract. - `products()`: Returns the number of products in the `_products` set. - `oracles()`: Returns the number of oracles registered in the `_oracles` set. - `riskpools()`: Returns the number of risk pools in the set. The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. The contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/ComponentController.sol\":\"ComponentController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/LicenseController.sol":{"LicenseController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"address","name":"productAddress","type":"address"}],"name":"getAuthorizationStatus","outputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"bool","name":"isAuthorized","type":"bool"},{"internalType":"address","name":"policyFlow","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b610630806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063d3e9c31414610050575b600080fd5b61004e61004936600461056c565b61008b565b005b61006361005e36600461056c565b610215565b6040805193845291151560208401526001600160a01b03169082015260600160405180910390f35b600054610100900460ff16158080156100ab5750600054600160ff909116105b806100cc57506100ba30610329565b1580156100cc575060005460ff166001145b6101345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610157576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610181600090565b6541636365737360d01b146101c3576101a26541636365737360d01b61033c565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101cb610424565b8015610211576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600254604051632b1c7f7360e01b81526001600160a01b0383811660048301526000928392839290911690632b1c7f739060240160206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029991906105ca565b92506102a4836104c6565b60025460405163e61ae29760e01b8152600481018690529193506001600160a01b03169063e61ae2979060240160206040518083038186803b1580156102e957600080fd5b505afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610321919061058f565b929491935050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061058f565b90506001600160a01b0381166103375760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161012b565b600054610100900460ff1661048f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161012b565b6104a46810dbdb5c1bdb995b9d60ba1b61033c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006003600254604051635e966e4560e01b8152600481018590526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054691906105ab565b600681111561056557634e487b7160e01b600052602160045260246000fd5b1492915050565b60006020828403121561057d578081fd5b8135610588816105e2565b9392505050565b6000602082840312156105a0578081fd5b8151610588816105e2565b6000602082840312156105bc578081fd5b815160078110610588578182fd5b6000602082840312156105db578081fd5b5051919050565b6001600160a01b03811681146105f757600080fd5b5056fea2646970667358221220cea7b50d1ccd58df7ad365e06063b9cd6fc1a8baf876def1c3f83285ceb5b10164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x630 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xD3E9C314 EQ PUSH2 0x50 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x8B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x63 PUSH2 0x5E CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x215 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xAB JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xCC JUMPI POP PUSH2 0xBA ADDRESS PUSH2 0x329 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xCC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x134 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x181 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1C3 JUMPI PUSH2 0x1A2 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x33C JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1CB PUSH2 0x424 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x261 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x275 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x299 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST SWAP3 POP PUSH2 0x2A4 DUP4 PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE61AE297 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE61AE297 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x321 SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST SWAP3 SWAP5 SWAP2 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x39A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x12B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x48F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x12B JUMP JUMPDEST PUSH2 0x4A4 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x33C JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x522 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x5AB JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x565 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x588 DUP2 PUSH2 0x5E2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x588 DUP2 PUSH2 0x5E2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5BC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x588 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5DB JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCE 0xA7 0xB5 0xD SHR 0xCD PC 0xDF PUSH27 0xD365E06063B9CD6FC1A8BAF876DEF1C3F83285CEB5B10164736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"2291:1126:76:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;2291:1126:76;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;2291:1126:76;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3542:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"642:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"688:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"697:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"705:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"690:6:103"},"nodeType":"YulFunctionCall","src":"690:22:103"},"nodeType":"YulExpressionStatement","src":"690:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"663:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"672:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"659:3:103"},"nodeType":"YulFunctionCall","src":"659:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"684:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"655:3:103"},"nodeType":"YulFunctionCall","src":"655:32:103"},"nodeType":"YulIf","src":"652:2:103"},{"nodeType":"YulVariableDeclaration","src":"723:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"742:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"736:5:103"},"nodeType":"YulFunctionCall","src":"736:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"727:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"785:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"794:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"802:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"787:6:103"},"nodeType":"YulFunctionCall","src":"787:22:103"},"nodeType":"YulExpressionStatement","src":"787:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"774:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"781:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"771:2:103"},"nodeType":"YulFunctionCall","src":"771:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"764:6:103"},"nodeType":"YulFunctionCall","src":"764:20:103"},"nodeType":"YulIf","src":"761:2:103"},{"nodeType":"YulAssignment","src":"820:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"830:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"820:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"608:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"619:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"631:6:103","type":""}],"src":"542:299:103"},{"body":{"nodeType":"YulBlock","src":"927:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"973:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"982:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"990:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"975:6:103"},"nodeType":"YulFunctionCall","src":"975:22:103"},"nodeType":"YulExpressionStatement","src":"975:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"948:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"957:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"944:3:103"},"nodeType":"YulFunctionCall","src":"944:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"969:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"940:3:103"},"nodeType":"YulFunctionCall","src":"940:32:103"},"nodeType":"YulIf","src":"937:2:103"},{"nodeType":"YulAssignment","src":"1008:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1024:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1018:5:103"},"nodeType":"YulFunctionCall","src":"1018:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1008:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"893:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"904:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"916:6:103","type":""}],"src":"846:194:103"},{"body":{"nodeType":"YulBlock","src":"1146:102:103","statements":[{"nodeType":"YulAssignment","src":"1156:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1168:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1179:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1164:3:103"},"nodeType":"YulFunctionCall","src":"1164:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1156:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1198:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1213:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1229:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1234:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1225:3:103"},"nodeType":"YulFunctionCall","src":"1225:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1238:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1221:3:103"},"nodeType":"YulFunctionCall","src":"1221:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1209:3:103"},"nodeType":"YulFunctionCall","src":"1209:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1191:6:103"},"nodeType":"YulFunctionCall","src":"1191:51:103"},"nodeType":"YulExpressionStatement","src":"1191:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1115:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1126:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1137:4:103","type":""}],"src":"1045:203:103"},{"body":{"nodeType":"YulBlock","src":"1354:76:103","statements":[{"nodeType":"YulAssignment","src":"1364:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1376:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1387:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1372:3:103"},"nodeType":"YulFunctionCall","src":"1372:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1364:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1406:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1417:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1399:6:103"},"nodeType":"YulFunctionCall","src":"1399:25:103"},"nodeType":"YulExpressionStatement","src":"1399:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1323:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1334:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1345:4:103","type":""}],"src":"1253:177:103"},{"body":{"nodeType":"YulBlock","src":"1542:87:103","statements":[{"nodeType":"YulAssignment","src":"1552:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1564:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1575:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1560:3:103"},"nodeType":"YulFunctionCall","src":"1560:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1552:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1594:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1609:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1617:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1605:3:103"},"nodeType":"YulFunctionCall","src":"1605:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1587:6:103"},"nodeType":"YulFunctionCall","src":"1587:36:103"},"nodeType":"YulExpressionStatement","src":"1587:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1511:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1522:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1533:4:103","type":""}],"src":"1435:194:103"},{"body":{"nodeType":"YulBlock","src":"1808:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1825:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1836:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1818:6:103"},"nodeType":"YulFunctionCall","src":"1818:21:103"},"nodeType":"YulExpressionStatement","src":"1818:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1859:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1870:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1855:3:103"},"nodeType":"YulFunctionCall","src":"1855:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1875:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1848:6:103"},"nodeType":"YulFunctionCall","src":"1848:30:103"},"nodeType":"YulExpressionStatement","src":"1848:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1898:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1909:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1894:3:103"},"nodeType":"YulFunctionCall","src":"1894:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1914:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1887:6:103"},"nodeType":"YulFunctionCall","src":"1887:62:103"},"nodeType":"YulExpressionStatement","src":"1887:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1980:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1965:3:103"},"nodeType":"YulFunctionCall","src":"1965:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1985:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1958:6:103"},"nodeType":"YulFunctionCall","src":"1958:35:103"},"nodeType":"YulExpressionStatement","src":"1958:35:103"},{"nodeType":"YulAssignment","src":"2002:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2014:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2025:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2010:3:103"},"nodeType":"YulFunctionCall","src":"2010:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2002:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1785:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1799:4:103","type":""}],"src":"1634:401:103"},{"body":{"nodeType":"YulBlock","src":"2214:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2231:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2242:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2224:6:103"},"nodeType":"YulFunctionCall","src":"2224:21:103"},"nodeType":"YulExpressionStatement","src":"2224:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2265:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2276:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2261:3:103"},"nodeType":"YulFunctionCall","src":"2261:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2281:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2254:6:103"},"nodeType":"YulFunctionCall","src":"2254:30:103"},"nodeType":"YulExpressionStatement","src":"2254:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2315:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2300:3:103"},"nodeType":"YulFunctionCall","src":"2300:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2320:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2293:6:103"},"nodeType":"YulFunctionCall","src":"2293:62:103"},"nodeType":"YulExpressionStatement","src":"2293:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2375:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2386:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2371:3:103"},"nodeType":"YulFunctionCall","src":"2371:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2391:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2364:6:103"},"nodeType":"YulFunctionCall","src":"2364:44:103"},"nodeType":"YulExpressionStatement","src":"2364:44:103"},{"nodeType":"YulAssignment","src":"2417:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2440:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2425:3:103"},"nodeType":"YulFunctionCall","src":"2425:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2417:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2191:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2205:4:103","type":""}],"src":"2040:410:103"},{"body":{"nodeType":"YulBlock","src":"2629:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2646:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2657:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2639:6:103"},"nodeType":"YulFunctionCall","src":"2639:21:103"},"nodeType":"YulExpressionStatement","src":"2639:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2691:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2676:3:103"},"nodeType":"YulFunctionCall","src":"2676:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2696:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2669:6:103"},"nodeType":"YulFunctionCall","src":"2669:30:103"},"nodeType":"YulExpressionStatement","src":"2669:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2730:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2715:3:103"},"nodeType":"YulFunctionCall","src":"2715:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2735:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2708:6:103"},"nodeType":"YulFunctionCall","src":"2708:62:103"},"nodeType":"YulExpressionStatement","src":"2708:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2790:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2801:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2786:3:103"},"nodeType":"YulFunctionCall","src":"2786:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2806:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2779:6:103"},"nodeType":"YulFunctionCall","src":"2779:41:103"},"nodeType":"YulExpressionStatement","src":"2779:41:103"},{"nodeType":"YulAssignment","src":"2829:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2841:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2852:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2837:3:103"},"nodeType":"YulFunctionCall","src":"2837:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2829:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2606:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2620:4:103","type":""}],"src":"2455:407:103"},{"body":{"nodeType":"YulBlock","src":"2968:76:103","statements":[{"nodeType":"YulAssignment","src":"2978:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2990:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3001:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2986:3:103"},"nodeType":"YulFunctionCall","src":"2986:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2978:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3020:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3031:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3013:6:103"},"nodeType":"YulFunctionCall","src":"3013:25:103"},"nodeType":"YulExpressionStatement","src":"3013:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2937:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2948:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2959:4:103","type":""}],"src":"2867:177:103"},{"body":{"nodeType":"YulBlock","src":"3200:204:103","statements":[{"nodeType":"YulAssignment","src":"3210:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3233:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3218:3:103"},"nodeType":"YulFunctionCall","src":"3218:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3210:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3252:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3263:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3245:6:103"},"nodeType":"YulFunctionCall","src":"3245:25:103"},"nodeType":"YulExpressionStatement","src":"3245:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3290:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3301:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3286:3:103"},"nodeType":"YulFunctionCall","src":"3286:18:103"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3320:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3313:6:103"},"nodeType":"YulFunctionCall","src":"3313:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3306:6:103"},"nodeType":"YulFunctionCall","src":"3306:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3279:6:103"},"nodeType":"YulFunctionCall","src":"3279:50:103"},"nodeType":"YulExpressionStatement","src":"3279:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3360:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3345:3:103"},"nodeType":"YulFunctionCall","src":"3345:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3369:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3385:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3390:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3381:3:103"},"nodeType":"YulFunctionCall","src":"3381:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3394:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3377:3:103"},"nodeType":"YulFunctionCall","src":"3377:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3365:3:103"},"nodeType":"YulFunctionCall","src":"3365:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3338:6:103"},"nodeType":"YulFunctionCall","src":"3338:60:103"},"nodeType":"YulExpressionStatement","src":"3338:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_bool_t_address__to_t_uint256_t_bool_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3153:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3164:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3172:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3180:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3191:4:103","type":""}],"src":"3049:355:103"},{"body":{"nodeType":"YulBlock","src":"3454:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"3518:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3527:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3530:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3520:6:103"},"nodeType":"YulFunctionCall","src":"3520:12:103"},"nodeType":"YulExpressionStatement","src":"3520:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3477:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3488:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3503:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3508:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3499:3:103"},"nodeType":"YulFunctionCall","src":"3499:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3512:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3495:3:103"},"nodeType":"YulFunctionCall","src":"3495:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3484:3:103"},"nodeType":"YulFunctionCall","src":"3484:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3474:2:103"},"nodeType":"YulFunctionCall","src":"3474:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3467:6:103"},"nodeType":"YulFunctionCall","src":"3467:50:103"},"nodeType":"YulIf","src":"3464:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3443:5:103","type":""}],"src":"3409:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bool_t_address__to_t_uint256_t_bool_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), iszero(iszero(value1)))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063d3e9c31414610050575b600080fd5b61004e61004936600461056c565b61008b565b005b61006361005e36600461056c565b610215565b6040805193845291151560208401526001600160a01b03169082015260600160405180910390f35b600054610100900460ff16158080156100ab5750600054600160ff909116105b806100cc57506100ba30610329565b1580156100cc575060005460ff166001145b6101345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610157576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610181600090565b6541636365737360d01b146101c3576101a26541636365737360d01b61033c565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101cb610424565b8015610211576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600254604051632b1c7f7360e01b81526001600160a01b0383811660048301526000928392839290911690632b1c7f739060240160206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029991906105ca565b92506102a4836104c6565b60025460405163e61ae29760e01b8152600481018690529193506001600160a01b03169063e61ae2979060240160206040518083038186803b1580156102e957600080fd5b505afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610321919061058f565b929491935050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061058f565b90506001600160a01b0381166103375760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161012b565b600054610100900460ff1661048f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161012b565b6104a46810dbdb5c1bdb995b9d60ba1b61033c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006003600254604051635e966e4560e01b8152600481018590526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054691906105ab565b600681111561056557634e487b7160e01b600052602160045260246000fd5b1492915050565b60006020828403121561057d578081fd5b8135610588816105e2565b9392505050565b6000602082840312156105a0578081fd5b8151610588816105e2565b6000602082840312156105bc578081fd5b815160078110610588578182fd5b6000602082840312156105db578081fd5b5051919050565b6001600160a01b03811681146105f757600080fd5b5056fea2646970667358221220cea7b50d1ccd58df7ad365e06063b9cd6fc1a8baf876def1c3f83285ceb5b10164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xD3E9C314 EQ PUSH2 0x50 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x8B JUMP JUMPDEST STOP JUMPDEST PUSH2 0x63 PUSH2 0x5E CALLDATASIZE PUSH1 0x4 PUSH2 0x56C JUMP JUMPDEST PUSH2 0x215 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 DUP5 MSTORE SWAP2 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xAB JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xCC JUMPI POP PUSH2 0xBA ADDRESS PUSH2 0x329 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xCC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x134 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x157 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x181 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1C3 JUMPI PUSH2 0x1A2 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x33C JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1CB PUSH2 0x424 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x211 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 DUP4 SWAP3 DUP4 SWAP3 SWAP1 SWAP2 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x261 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x275 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x299 SWAP2 SWAP1 PUSH2 0x5CA JUMP JUMPDEST SWAP3 POP PUSH2 0x2A4 DUP4 PUSH2 0x4C6 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE61AE297 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE61AE297 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2FD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x321 SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST SWAP3 SWAP5 SWAP2 SWAP4 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x386 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x39A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x58F JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x12B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x48F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x12B JUMP JUMPDEST PUSH2 0x4A4 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x33C JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x50E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x522 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x5AB JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x565 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x57D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x588 DUP2 PUSH2 0x5E2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5A0 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x588 DUP2 PUSH2 0x5E2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5BC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x588 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5DB JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCE 0xA7 0xB5 0xD SHR 0xCD PC 0xDF PUSH27 0xD365E06063B9CD6FC1A8BAF876DEF1C3F83285CEB5B10164736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"2291:1126:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1143:232:88;;;;;;:::i;:::-;;:::i;:::-;;2627:348:76;;;;;;:::i;:::-;;:::i;:::-;;;;3245:25:103;;;3313:14;;3306:22;3301:2;3286:18;;3279:50;-1:-1:-1;;;;;3365:32:103;3345:18;;;3338:60;3233:2;3218:18;2627:348:76;;;;;;;1143:232:88;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;2242:2:103;3146:190:47;;;2224:21:103;2281:2;2261:18;;;2254:30;2320:34;2300:18;;;2293:62;-1:-1:-1;;;2371:18:103;;;2364:44;2425:19;;3146:190:47;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;1587:36:103;;3531:14:47;;1575:2:103;1560:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;2627:348:76:-;2821:10;;:41;;-1:-1:-1;;;2821:41:76;;-1:-1:-1;;;;;1209:32:103;;;2821:41:76;;;1191:51:103;2737:17:76;;;;;;2821:10;;;;:25;;1164:18:103;;2821:41:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2809:53;;2887:23;2900:9;2887:12;:23::i;:::-;2933:10;;:35;;-1:-1:-1;;;2933:35:76;;;;;1399:25:103;;;2872:38:76;;-1:-1:-1;;;;;;2933:10:76;;:24;;1372:18:103;;2933:35:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2627:348;;;;-1:-1:-1;;2627:348:76:o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;1399:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;1372:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;1836:2:103;1703:113:88;;;1818:21:103;1875:2;1855:18;;;1848:30;1914:34;1894:18;;;1887:62;-1:-1:-1;;;1965:18:103;;;1958:35;2010:19;;1703:113:88;1808:227:103;2407:146:76;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;2657:2:103;4880:69:47;;;2639:21:103;2696:2;2676:18;;;2669:30;2735:34;2715:18;;;2708:62;-1:-1:-1;;;2786:18:103;;;2779:41;2837:19;;4880:69:47;2629:233:103;4880:69:47;2513:32:76::1;-1:-1:-1::0;;;2513:19:76::1;:32::i;:::-;2480:10;:66:::0;;-1:-1:-1;;;;;;2480:66:76::1;-1:-1:-1::0;;;;;2480:66:76;;;::::1;::::0;;;::::1;::::0;;2407:146::o;2981:169::-;3045:4;3111:32;3068:10;;:39;;-1:-1:-1;;;3068:39:76;;;;;1399:25:103;;;-1:-1:-1;;;;;3068:10:76;;;;:28;;1372:18:103;;3068:39:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:75;;;;;;-1:-1:-1;;;3068:75:76;;;;;;;;;;;2981:169;-1:-1:-1;;2981:169:76:o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:299::-;;684:2;672:9;663:7;659:23;655:32;652:2;;;705:6;697;690:22;652:2;742:9;736:16;781:1;774:5;771:12;761:2;;802:6;794;787:22;846:194;;969:2;957:9;948:7;944:23;940:32;937:2;;;990:6;982;975:22;937:2;-1:-1:-1;1018:16:103;;927:113;-1:-1:-1;927:113:103:o;3409:131::-;-1:-1:-1;;;;;3484:31:103;;3474:42;;3464:2;;3530:1;3527;3520:12;3464:2;3454:86;:::o"},"methodIdentifiers":{"getAuthorizationStatus(address)":"d3e9c314","initialize(address)":"c4d66de8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"getAuthorizationStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isAuthorized\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"policyFlow\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract serves as a controller contract for managing licenses related to products in an insurance ecosystem. The contract implements the `ILicense` interface and extends the `CoreController` contract. The contract imports two other contracts: `ComponentController.sol` and `CoreController.sol`, which are expected to be located in specific file paths. It also imports several interfaces from the \\\"etherisc/gif-interface\\\" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`. The contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract. Functions: - `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract. - `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function. - `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`. - `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`. Overall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/LicenseController.sol\":\"LicenseController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/ILicense.sol\":{\"keccak256\":\"0x2fcefcbe60dfa44e7a1d947ae2059ccfdc3d1a151a8604fb7e96c734e0ffb9be\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6af56dc46b2adeb0c0d88ccd0ca4e9857195c4d647ccf7e3df61a91da24f45ab\",\"dweb:/ipfs/QmX1eYC9nFwFE4PJchjApCDYgErdrtfS9qYEtzbbfc4Ssz\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/LicenseController.sol\":{\"keccak256\":\"0x8a44e4fc75ecb3b2732789ecc20b02db522a93c9411e362bcacc66e01b6063e0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://598cf99c69ba3559eac59b8504585ba5671cd446fbe2410355f83550fc37e760\",\"dweb:/ipfs/QmawgBEk71ZqveRpi9F4XDUY8ZWJnfg7CTb7AUwc9wGpxr\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/PolicyController.sol":{"PolicyController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogApplicationCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"premiumAmount","type":"uint256"}],"name":"LogApplicationPremiumAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"LogApplicationSumInsuredAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogApplicationUnderwritten","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"LogClaimClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"LogClaimConfirmed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"LogClaimCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"LogClaimDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"}],"name":"LogMetadataCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"}],"name":"LogMetadataStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"claimId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"payoutId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogPayoutCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"LogPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"LogPolicyExpired","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"premiumExpectedAmountOld","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"}],"name":"LogPolicyPremiumAdjusted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogPremiumCollected","type":"event"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"applications","outputs":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"claims","outputs":[{"internalType":"enum IPolicy.ClaimState","name":"state","type":"uint8"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"uint256","name":"paidAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"closeClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"closePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"confirmClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createClaim","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"createPolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"createPolicyFlow","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"declineApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"declineClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"expirePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getApplication","outputs":[{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"getClaim","outputs":[{"components":[{"internalType":"enum IPolicy.ClaimState","name":"state","type":"uint8"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"uint256","name":"paidAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Claim","name":"claim","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getMetadata","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Metadata","name":"_metadata","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getNumberOfClaims","outputs":[{"internalType":"uint256","name":"numberOfClaims","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getNumberOfPayouts","outputs":[{"internalType":"uint256","name":"numberOfPayouts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"getPayout","outputs":[{"components":[{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"enum IPolicy.PayoutState","name":"state","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Payout","name":"payout","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getPolicy","outputs":[{"components":[{"internalType":"enum IPolicy.PolicyState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"},{"internalType":"uint256","name":"premiumPaidAmount","type":"uint256"},{"internalType":"uint256","name":"claimsCount","type":"uint256"},{"internalType":"uint256","name":"openClaimsCount","type":"uint256"},{"internalType":"uint256","name":"payoutMaxAmount","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Policy","name":"policy","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"metadata","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"payoutCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"payouts","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"enum IPolicy.PayoutState","name":"state","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"policies","outputs":[{"internalType":"enum IPolicy.PolicyState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"},{"internalType":"uint256","name":"premiumPaidAmount","type":"uint256"},{"internalType":"uint256","name":"claimsCount","type":"uint256"},{"internalType":"uint256","name":"openClaimsCount","type":"uint256"},{"internalType":"uint256","name":"payoutMaxAmount","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"revokeApplication","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwriteApplication","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6147c880620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063a1814a1a1161010f578063c4d66de8116100a2578063e3ebdea511610071578063e3ebdea5146104d8578063eb96cbed146104eb578063ec935668146104fe578063fe64372b14610511576101e5565b8063c4d66de814610420578063cef58f1314610433578063db42b77b14610453578063ddbfd8ef14610466576101e5565b8063adcadb28116100de578063adcadb28146103c7578063b1e25988146103da578063bc506f64146103ed578063be183b1114610400576101e5565b8063a1814a1a1461036c578063a3f685f91461037f578063a427056e1461039f578063a5961b4c146103a7576101e5565b80634e02c63f116101875780637f22c2d9116101565780637f22c2d9146103015780637f29dba21461032157806380f2122c146103345780639e81f96a14610359576101e5565b80634e02c63f146102a35780635c955288146102b65780636780336e146102c95780637122ba06146102dc576101e5565b806347e3b138116101c357806347e3b138146102455780634c14ccc2146102585780634cafa1211461026b5780634cda0de914610290576101e5565b8063296d6c7d146101ea57806330a73da5146101ff578063357f030a14610212575b600080fd5b6101fd6101f83660046141f4565b610524565b005b6101fd61020d366004614266565b6107a6565b6102326102203660046141f4565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b6101fd6102533660046141f4565b610b85565b6101fd6102663660046141f4565b610d4a565b61027e6102793660046141f4565b61104f565b60405161023c9695949392919061440e565b6101fd61029e36600461420c565b611113565b6101fd6102b1366004614266565b6113bb565b6101fd6102c43660046141f4565b611702565b6101fd6102d7366004614291565b6118c3565b6102ef6102ea3660046141f4565b611bac565b60405161023c969594939291906143a4565b61031461030f36600461420c565b611bea565b60405161023c91906144fe565b6101fd61032f36600461420c565b611db2565b61034761034236600461420c565b612157565b60405161023c96959493929190614660565b61027e61036736600461420c565b612196565b61023261037a36600461417a565b6121d5565b61039261038d3660046141f4565b612576565b60405161023c91906145f3565b600854610232565b6103ba6103b53660046141f4565b6126e0565b60405161023c9190614563565b6101fd6103d53660046141f4565b6128a6565b6102326103e83660046141f4565b612b6b565b6103146103fb3660046141f4565b612b80565b61023261040e3660046141f4565b60009081526007602052604090205490565b6101fd61042e36600461413b565b612d40565b61044661044136600461420c565b612ebe565b60405161023c91906145b0565b610232610461366004614291565b613080565b6104c36104743660046141f4565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460089097015460ff90961697949693959293919290919089565b60405161023c9998979695949392919061443c565b6101fd6104e636600461420c565b61346c565b6101fd6104f93660046141f4565b61358f565b61023261050c36600461422d565b6137fe565b6101fd61051f36600461420c565b613b0e565b65506f6c69637960d01b61053781613e6b565b6001600160a01b0316306001600160a01b0316146105705760405162461bcd60e51b815260040161056790614486565b60405180910390fd5b61058a6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146105ba5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546106275760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031393a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546106975760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032303a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff1660038111156106bd57634e487b7160e01b600052602160045260246000fd5b1461071a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032313a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff1990811660031782554260058084018290556002858101805490941617928390558401556040516000805160206147738339815191529161076491879160ff16906143f1565b60405180910390a16040518481527fd38021ec2bcd4d63a80341a60be320a74cd71c01b04a4f7aac74ef6593d8e5e3906020015b60405180910390a150505050565b65506f6c69637960d01b6107b981613e6b565b6001600160a01b0316306001600160a01b0316146107e95760405162461bcd60e51b815260040161056790614486565b6108036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146108335760405162461bcd60e51b8152600401610567906144bd565b600084815260036020526040902060048101541580159061087757506002815460ff16600381111561087557634e487b7160e01b600052602160045260246000fd5b145b6108d45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032343a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b80600201548311156109475760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f432d3032363a4150504c49434154494f4e5f53554d5f494e60448201527514d554915117d25390d4915054d157d253959053125160521b6064820152608401610567565b600085815260046020526040902060078101541580159061098b57506000815460ff16600281111561098957634e487b7160e01b600052602160045260246000fd5b145b6109e35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032373a504f4c4943595f4143434553535f494e564160448201526213125160ea1b6064820152608401610567565b6000851180156109f7575080600201548510155b8015610a0257508385105b610a605760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f432d3032353a4150504c49434154494f4e5f5052454d49556044820152681357d253959053125160ba1b6064820152608401610567565b81600201548414610acc57600282015460408051888152602081019290925281018590527fa749e55ffd0f07193966d7c449d6238c6514c6b3eb5e8ab21b3ea9d94a5c21789060600160405180910390a160028201849055426005808401829055820185905560088201555b81600101548514610b7d57600182015460408051888152602081019290925281018690527f23e948a9dc44669750ea8ea8b7ca46c359534bd0f04e9260408a7e9bf8c7a5569060600160405180910390a1600182810186905542600584015581015460408051888152602081019290925281018690527ff392e5df923d5d0b6d6c6301c53c86e1c75f58c1c637200c3193dd589e5c8a019060600160405180910390a1600181018590554260088201555b505050505050565b65506f6c69637960d01b610b9881613e6b565b6001600160a01b0316306001600160a01b031614610bc85760405162461bcd60e51b815260040161056790614486565b610be26d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610c125760405162461bcd60e51b8152600401610567906144bd565b60008281526004602052604090206007810154610c7d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032383a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff166002811115610ca357634e487b7160e01b600052602160045260246000fd5b14610d005760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032393a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660011781554260088201556040518381527ff1950800da95964fdd42242722ccdfe6d9dc13d5d4dc7eafefeab77373e3c9ec906020015b60405180910390a1505050565b65506f6c69637960d01b610d5d81613e6b565b6001600160a01b0316306001600160a01b031614610d8d5760405162461bcd60e51b815260040161056790614486565b610da76d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610dd75760405162461bcd60e51b8152600401610567906144bd565b6000828152600360208190526040808320815160c08101909252805491929091839160ff90911690811115610e1c57634e487b7160e01b600052602160045260246000fd5b6003811115610e3b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054610e63906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8f906146b8565b8015610edc5780601f10610eb157610100808354040283529160200191610edc565b820191906000526020600020905b815481529060010190602001808311610ebf57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151118015610f2f5750600281516003811115610f2d57634e487b7160e01b600052602160045260246000fd5b145b610f8c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032323a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b6000838152600460205260409020600781015415610ff85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032333a504f4c4943595f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b805460ff191681556020828101516001830155604080840151600584015542600784018190556008840155518581527f0b979eae60510a4a065f45ddd8a0c9af7ba4d241e253b17bdee3043c2fb992e99101610798565b6003602081905260009182526040909120805460018201546002830154938301805460ff9093169491939192611084906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546110b0906146b8565b80156110fd5780601f106110d2576101008083540402835291602001916110fd565b820191906000526020600020905b8154815290600101906020018083116110e057829003601f168201915b5050505050908060040154908060050154905086565b65506f6c69637960d01b61112681613e6b565b6001600160a01b0316306001600160a01b0316146111565760405162461bcd60e51b815260040161056790614486565b6111706d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146111a05760405162461bcd60e51b8152600401610567906144bd565b6000838152600460205260409020600781015461120b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3036303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116112705760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3036313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b6000848152600560209081526040808320868452909152902060048101546112e55760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3036323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561130b57634e487b7160e01b600052602160045260246000fd5b146113625760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3036333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff191660021781554260058201819055600883015560408051868152602081018690527f5ea526dbb5ca484c7716dcc966fdfc289530cc595ebc9ec7bfda25d010d1a2fc91015b60405180910390a15050505050565b65506f6c69637960d01b6113ce81613e6b565b6001600160a01b0316306001600160a01b0316146113fe5760405162461bcd60e51b815260040161056790614486565b6114186d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146114485760405162461bcd60e51b8152600401610567906144bd565b600084815260046020526040902060078101546114b35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3035303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116115185760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b806005015483826006015461152d9190614672565b111561158c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035323a5041594f55545f4d41585f414d4f554e545f604482015267115610d15151115160c21b6064820152608401610567565b6000858152600560209081526040808320878452909152902060048101546116015760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3035333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561162757634e487b7160e01b600052602160045260246000fd5b1461167e5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3035343a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff19166001908117825581018490554260058201556006820180548591906000906116ad908490614672565b909155505042600883015560408051878152602081018790529081018590527fa39b09b76ccf7db94096e2c5a058215f9b2302b85de726e37edb99efdb6fb2c6906060015b60405180910390a1505050505050565b65506f6c69637960d01b61171581613e6b565b6001600160a01b0316306001600160a01b0316146117455760405162461bcd60e51b815260040161056790614486565b61175f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461178f5760405162461bcd60e51b8152600401610567906144bd565b600082815260036020526040902060048101546117ff5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031373a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561182557634e487b7160e01b600052602160045260246000fd5b146118825760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031383a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660021781554260058201556040518381527f67f56ed3a623b73566d40f65cba052fc97ca9df8afb800a885c2a4fe0228c1f890602001610d3d565b65506f6c69637960d01b6118d681613e6b565b6001600160a01b0316306001600160a01b0316146119065760405162461bcd60e51b815260040161056790614486565b6119206d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146119505760405162461bcd60e51b8152600401610567906144bd565b600086815260026020526040902060048101546119bd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b6000878152600360205260409020600481015415611a2e5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031313a4150504c49434154494f4e5f414c52454144604482015267595f45584953545360c01b6064820152608401610567565b60008711611a885760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3031323a5052454d49554d5f414d4f554e545f5a45526044820152604f60f81b6064820152608401610567565b868611611aea5760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a504f432d3031333a53554d5f494e53555245445f414d4f554e5460448201526917d513d3d7d4d350531360b21b6064820152608401610567565b805460ff191681556001810187905560028101869055611b0e60038201868661405b565b504260048201819055600580830182905560028401805460ff1916600117908190559084019190915560405160008051602061477383398151915291611b59918b9160ff16906143f1565b60405180910390a160408051898152602081018990529081018790527f71b9122c9f32160952b44f0e76b53474f59a5cd9b98ccdfb5ff20672fcae34129060600160405180910390a15050505050505050565b600260208190526000918252604090912080546001820154928201546003830180546001600160a01b03909316949360ff90921692611084906146b8565b611c246040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600083815260056020908152604080832085845290915290819020815160c081019092528054829060ff166003811115611c6e57634e487b7160e01b600052602160045260246000fd5b6003811115611c8d57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054611cb5906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce1906146b8565b8015611d2e5780601f10611d0357610100808354040283529160200191611d2e565b820191906000526020600020905b815481529060010190602001808311611d1157829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3130333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b92915050565b65506f6c69637960d01b611dc581613e6b565b6001600160a01b0316306001600160a01b031614611df55760405162461bcd60e51b815260040161056790614486565b611e0f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614611e3f5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154611eaa5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3037303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411611f0f5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3037313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260056020908152604080832086845290915290206004810154611f845760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3037323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff166003811115611faa57634e487b7160e01b600052602160045260246000fd5b1480611fd957506002815460ff166003811115611fd757634e487b7160e01b600052602160045260246000fd5b145b61202f5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3037333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b6001815460ff16600381111561205557634e487b7160e01b600052602160045260246000fd5b148015612069575080600201548160010154145b8061209757506002815460ff16600381111561209557634e487b7160e01b600052602160045260246000fd5b145b6120f35760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3037343a434c41494d5f574954485f554e504149445f6044820152665041594f55545360c81b6064820152608401610567565b805460ff19166003178155426005820155600482018054906000612116836146a1565b909155505042600883015560408051868152602081018690527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016113ac565b60066020908152600092835260408084209091529082529020805460018201546002830154600384018054939460ff90931693919291611084906146b8565b6005602090815260009283526040808420909152908252902080546001820154600283015460038401805460ff909416949293919291611084906146b8565b600065506f6c69637960d01b6121ea81613e6b565b6001600160a01b0316306001600160a01b03161461221a5760405162461bcd60e51b815260040161056790614486565b6122346d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146122645760405162461bcd60e51b8152600401610567906144bd565b6001600160a01b0386166122ba5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a504f4c2d3030313a494e56414c49445f4f574e455200000000006044820152606401610567565b600954604051630e48080360e21b8152600481018790526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122fe57600080fd5b505afa158015612312573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233691906141d4565b6123825760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3030323a494e56414c49445f50524f445543540000006044820152606401610567565b600954604051635e966e4560e01b8152600481018790526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156123c757600080fd5b505afa1580156123db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ff91906142f0565b600681111561241e57634e487b7160e01b600052602160045260246000fd5b1461246b5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030333a50524f445543545f4e4f545f4143544956456044820152606401610567565b612473613f53565b6000818152600260205260409020600481015491935090156124e55760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3030343a4d455441444154415f414c52454144595f45604482015264584953545360d81b6064820152608401610567565b80546001600160a01b0319166001600160a01b0388161781556001810186905560028101805460ff1916905561251f60038201868661405b565b50426004820181905560058201556040517f19c55cd86637a14907bc12064e09bf8dce1ecda9e5d96cae81099f4b8ae1d3c99061256490899086908a9060009061436e565b60405180910390a15050949350505050565b6125c6604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008281526004602052604090819020815161012081019092528054829060ff16600281111561260657634e487b7160e01b600052602160045260246000fd5b600281111561262557634e487b7160e01b600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481525050905060008160e00151116126db5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130323a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b919050565b6127196040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600082815260026020818152604092839020835160c08101855281546001600160a01b0316815260018201549281019290925280830154919390929084019160ff169081111561277957634e487b7160e01b600052602160045260246000fd5b600281111561279857634e487b7160e01b600052602160045260246000fd5b81526020016003820180546127ac906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546127d8906146b8565b80156128255780601f106127fa57610100808354040283529160200191612825565b820191906000526020600020905b81548152906001019060200180831161280857829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3130303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b65506f6c69637960d01b6128b981613e6b565b6001600160a01b0316306001600160a01b0316146128e95760405162461bcd60e51b815260040161056790614486565b6129036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146129335760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546129a05760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3033303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b60008381526004602052604090206007810154612a0b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3033313a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6001815460ff166002811115612a3157634e487b7160e01b600052602160045260246000fd5b14612a895760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3033323a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610567565b600481015415612ae75760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3033333a504f4c4943595f4841535f4f50454e5f434c60448201526341494d5360e01b6064820152608401610567565b8054600260ff19918216811783554260088401819055848201805490931690911791829055600584015560405160008051602061477383398151915291612b3391879160ff16906143f1565b60405180910390a16040518481527f47682aa751cfef9683dc926c2e0547bf1f6345215278ea52b866564017ac9b9c90602001610798565b6000612b7682612576565b6060015192915050565b612bba6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600082815260036020819052604091829020825160c0810190935280549091839160ff1690811115612bfc57634e487b7160e01b600052602160045260246000fd5b6003811115612c1b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054612c43906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612c6f906146b8565b8015612cbc5780601f10612c9157610100808354040283529160200191612cbc565b820191906000526020600020905b815481529060010190602001808311612c9f57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3130313a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b600054610100900460ff1615808015612d605750600054600160ff909116105b80612d7a5750303b158015612d7a575060005460ff166001145b612ddd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610567565b6000805460ff191660011790558015612e00576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055612e2a600090565b6541636365737360d01b14612e6c57612e4b6541636365737360d01b613e6b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b612e74613fb9565b8015612eba576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b612ef86040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6000838152600660209081526040808320858452825291829020825160c0810190935280548352600180820154919284019160ff1690811115612f4b57634e487b7160e01b600052602160045260246000fd5b6001811115612f6a57634e487b7160e01b600052602160045260246000fd5b815260200160028201548152602001600382018054612f88906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612fb4906146b8565b80156130015780601f10612fd657610100808354040283529160200191613001565b820191906000526020600020905b815481529060010190602001808311612fe457829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130343a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600065506f6c69637960d01b61309581613e6b565b6001600160a01b0316306001600160a01b0316146130c55760405162461bcd60e51b815260040161056790614486565b6130df6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461310f5760405162461bcd60e51b8152600401610567906144bd565b6000878152600460205260409020600781015461317a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008881526005602090815260408083208a8452909152902060048101546131ef5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3038313a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff16600381111561321557634e487b7160e01b600052602160045260246000fd5b1461326c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3038323a434c41494d5f4e4f545f434f4e4649524d456044820152601160fa1b6064820152608401610567565b600087116132cd5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3038333a5041594f55545f414d4f554e545f5a45524f60448201526717d253959053125160c21b6064820152608401610567565b80600101548782600201546132e29190614672565b111561333c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038343a5041594f55545f414d4f554e545f544f4f5f60448201526242494760e81b6064820152608401610567565b60008981526007602090815260408083205460068352818420818552909252909120600481015491955090156133c05760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038353a5041594f55545f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b888155600281018890556133d860038201888861405b565b5060018101805460ff191690554260048201819055600582015560008a815260076020526040812080549161340c836146f3565b9091555050426008840155604080518b8152602081018b9052908101869052606081018990527f223e38f266bc310bbf02cc4e1bb6c706af5c7f9710b3edfe17a12f09e44e84a79060800160405180910390a15050505095945050505050565b600082815260046020526040902060078101546134d75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3131303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b80600101548282600201546134ec9190614672565b111561353a5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a504f432d3131313a414d4f554e545f544f4f5f424947000000006044820152606401610567565b8181600201600082825461354e9190614672565b909155505042600882015560408051848152602081018490527f9bb11018b2a92c286be2bb51bd0ed127dadef34cddc2b557270d0f81873e00569101610d3d565b65506f6c69637960d01b6135a281613e6b565b6001600160a01b0316306001600160a01b0316146135d25760405162461bcd60e51b815260040161056790614486565b6135ec6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461361c5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546136895760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031343a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546136f95760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031353a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561371f57634e487b7160e01b600052602160045260246000fd5b1461377c5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031363a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff199081166001178255426005808401829055600285810180549094161792839055840155604051600080516020614773833981519152916137c691879160ff16906143f1565b60405180910390a16040518481527fbf8b120fb15c8c02daac643f4b8d8542610c41f75bda1d3efcc3f7017c9389fc90602001610798565b600065506f6c69637960d01b61381381613e6b565b6001600160a01b0316306001600160a01b0316146138435760405162461bcd60e51b815260040161056790614486565b61385d6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461388d5760405162461bcd60e51b8152600401610567906144bd565b600086815260046020526040902060078101546138f85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3034303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff16600281111561391e57634e487b7160e01b600052602160045260246000fd5b1461396b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a504f432d3034313a504f4c4943595f4e4f545f414354495645006044820152606401610567565b80600501548682600601546139809190614672565b11156139e45760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a504f432d3034323a434c41494d5f414d4f554e545f455843454560448201526c1114d7d3505617d4105653d555609a1b6064820152608401610567565b60038101546000888152600560209081526040808320848452909152902060048101549194509015613a635760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3034333a434c41494d5f414c52454144595f45584953604482015261545360f01b6064820152608401610567565b805460ff1916815560018101879055613a8060038201878761405b565b5042600482018190556005820155600382018054906000613aa0836146f3565b9091555050600482018054906000613ab7836146f3565b909155505042600883015560408051898152602081018690529081018890527f66d0839d281a46de5ca92181ef89787fbf266333fbd1076c0728149b3a5600fa9060600160405180910390a1505050949350505050565b65506f6c69637960d01b613b2181613e6b565b6001600160a01b0316306001600160a01b031614613b515760405162461bcd60e51b815260040161056790614486565b613b6b6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614613b9b5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154613c065760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411613c6b5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3039313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260066020908152604080832086845290915290206004810154613ce15760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039323a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600060018083015460ff1690811115613d0a57634e487b7160e01b600052602160045260246000fd5b14613d635760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3039333a5041594f55545f414c52454144595f5041496044820152631113d55560e21b6064820152608401610567565b6001818101805460ff1916909117905542600582015560408051868152602081018690527f97a4f1df9bfee1535200a1be1da2c502aec16bda67fdaded9c127eaec704b71f910160405180910390a16000858152600560209081526040808320845484529091528120600280840154908201805492939192909190613de9908490614672565b9091555050426005820155600281015460018201541415610b7d57805460ff1916600317815560048301805460019190600090613e2790849061468a565b909155505042600884015581546040805188815260208101929092527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016116f2565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015613eb557600080fd5b505afa158015613ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eed919061415e565b90506001600160a01b0381166126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610567565b6008805460009182613f64836146f3565b9091555050600054600854604080514660208201526201000090930460601b6bffffffffffffffffffffffff191690830152605482015260740160405160208183030381529060405280519060200120905090565b600054610100900460ff166140245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610567565b6140396810dbdb5c1bdb995b9d60ba1b613e6b565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b828054614067906146b8565b90600052602060002090601f01602090048101928261408957600085556140cf565b82601f106140a25782800160ff198235161785556140cf565b828001600101855582156140cf579182015b828111156140cf5782358255916020019190600101906140b4565b506140db9291506140df565b5090565b5b808211156140db57600081556001016140e0565b60008083601f840112614105578182fd5b50813567ffffffffffffffff81111561411c578182fd5b60208301915083602082850101111561413457600080fd5b9250929050565b60006020828403121561414c578081fd5b81356141578161475d565b9392505050565b60006020828403121561416f578081fd5b81516141578161475d565b6000806000806060858703121561418f578283fd5b843561419a8161475d565b935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b6141c8878288016140f4565b95989497509550505050565b6000602082840312156141e5578081fd5b81518015158114614157578182fd5b600060208284031215614205578081fd5b5035919050565b6000806040838503121561421e578182fd5b50508035926020909101359150565b60008060008060608587031215614242578384fd5b8435935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b60008060006060848603121561427a578283fd5b505081359360208301359350604090920135919050565b6000806000806000608086880312156142a8578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8111156142d3578182fd5b6142df888289016140f4565b969995985093965092949392505050565b600060208284031215614301578081fd5b815160078110614157578182fd5b60008151808452815b8181101561433457602081850181015186830182015201614318565b818111156143455782602083870101525b50601f01601f19169290920160200192915050565b6002811061436a5761436a614724565b9052565b6001600160a01b03851681526020810184905260408101839052608081016143958361474d565b82606083015295945050505050565b6001600160a01b03871681526020810186905260006143c28661474d565b85604083015260c060608301526143dc60c083018661430f565b60808301949094525060a00152949350505050565b828152604081016144018361474d565b8260208301529392505050565b60006144198861473a565b87825286602083015285604083015260c060608301526143dc60c083018661430f565b610120810161444a8b61474d565b998152602081019890985260408801969096526060870194909452608086019290925260a085015260c084015260e08301526101009091015290565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825161450f8161473a565b806020840152506020830151604083015260408301516060830152606083015160c0608084015261454360e084018261430f565b9050608084015160a084015260a084015160c08401528091505092915050565b60006020825260018060a01b0383511660208301526020830151604083015260408301516145908161474d565b80606084015250606083015160c0608084015261454360e084018261430f565b6000602082528251602083015260208301516145cf604084018261435a565b5060408301516060830152606083015160c0608084015261454360e084018261430f565b81516101208201906146048161474d565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b60008782526143c2602083018861435a565b600082198211156146855761468561470e565b500190565b60008282101561469c5761469c61470e565b500390565b6000816146b0576146b061470e565b506000190190565b6002810460018216806146cc57607f821691505b602082108114156146ed57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156147075761470761470e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6004811061474a5761474a614724565b50565b6003811061474a5761474a614724565b6001600160a01b038116811461474a57600080fdfe532394c6ec703c4ecf5944bc8f02b410433362f9bdc2f25cd1d7fe45e7edfc59a2646970667358221220aab73debb705ab2b89e919dd01382f96a906dc6199287419144898b6aa0d558764736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x22 JUMP JUMPDEST PUSH3 0xE4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xE2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x47C8 DUP1 PUSH3 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1E5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA1814A1A GT PUSH2 0x10F JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE3EBDEA5 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0xEB96CBED EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xEC935668 EQ PUSH2 0x4FE JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x511 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x420 JUMPI DUP1 PUSH4 0xCEF58F13 EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0xDB42B77B EQ PUSH2 0x453 JUMPI DUP1 PUSH4 0xDDBFD8EF EQ PUSH2 0x466 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xADCADB28 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xADCADB28 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0xB1E25988 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0xBC506F64 EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0xBE183B11 EQ PUSH2 0x400 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xA1814A1A EQ PUSH2 0x36C JUMPI DUP1 PUSH4 0xA3F685F9 EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xA427056E EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0xA5961B4C EQ PUSH2 0x3A7 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x4E02C63F GT PUSH2 0x187 JUMPI DUP1 PUSH4 0x7F22C2D9 GT PUSH2 0x156 JUMPI DUP1 PUSH4 0x7F22C2D9 EQ PUSH2 0x301 JUMPI DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x321 JUMPI DUP1 PUSH4 0x80F2122C EQ PUSH2 0x334 JUMPI DUP1 PUSH4 0x9E81F96A EQ PUSH2 0x359 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x5C955288 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x6780336E EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x7122BA06 EQ PUSH2 0x2DC JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x47E3B138 GT PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x47E3B138 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x4C14CCC2 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x4CAFA121 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x290 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x296D6C7D EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x357F030A EQ PUSH2 0x212 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FD PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x524 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1FD PUSH2 0x20D CALLDATASIZE PUSH1 0x4 PUSH2 0x4266 JUMP JUMPDEST PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x220 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH2 0x253 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x27E PUSH2 0x279 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x104F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x440E JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x29E CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1113 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4266 JUMP JUMPDEST PUSH2 0x13BB JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x1702 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4291 JUMP JUMPDEST PUSH2 0x18C3 JUMP JUMPDEST PUSH2 0x2EF PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x1BAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x43A4 JUMP JUMPDEST PUSH2 0x314 PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1BEA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x44FE JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x32F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1DB2 JUMP JUMPDEST PUSH2 0x347 PUSH2 0x342 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4660 JUMP JUMPDEST PUSH2 0x27E PUSH2 0x367 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2196 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x37A CALLDATASIZE PUSH1 0x4 PUSH2 0x417A JUMP JUMPDEST PUSH2 0x21D5 JUMP JUMPDEST PUSH2 0x392 PUSH2 0x38D CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x45F3 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x232 JUMP JUMPDEST PUSH2 0x3BA PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x26E0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x4563 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x28A6 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x3E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2B6B JUMP JUMPDEST PUSH2 0x314 PUSH2 0x3FB CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2B80 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x40E CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x42E CALLDATASIZE PUSH1 0x4 PUSH2 0x413B JUMP JUMPDEST PUSH2 0x2D40 JUMP JUMPDEST PUSH2 0x446 PUSH2 0x441 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2EBE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x45B0 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x461 CALLDATASIZE PUSH1 0x4 PUSH2 0x4291 JUMP JUMPDEST PUSH2 0x3080 JUMP JUMPDEST PUSH2 0x4C3 PUSH2 0x474 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD SWAP5 DUP5 ADD SLOAD PUSH1 0x5 DUP6 ADD SLOAD PUSH1 0x6 DUP7 ADD SLOAD PUSH1 0x7 DUP8 ADD SLOAD PUSH1 0x8 SWAP1 SWAP8 ADD SLOAD PUSH1 0xFF SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP10 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x443C JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x4E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x346C JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x4F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x358F JUMP JUMPDEST PUSH2 0x232 PUSH2 0x50C CALLDATASIZE PUSH1 0x4 PUSH2 0x422D JUMP JUMPDEST PUSH2 0x37FE JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x51F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x3B0E JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x537 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x58A PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x627 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031393A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x697 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032303A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x6BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x71A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032313A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x3 OR DUP3 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP6 DUP2 ADD DUP1 SLOAD SWAP1 SWAP5 AND OR SWAP3 DUP4 SWAP1 SSTORE DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x764 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xD38021EC2BCD4D63A80341A60BE320A74CD71C01B04A4F7AAC74EF6593D8E5E3 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x7B9 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x803 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x833 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x877 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x875 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x8D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032343A4150504C49434154494F4E5F414343455353 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x2 ADD SLOAD DUP4 GT ISZERO PUSH2 0x947 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032363A4150504C49434154494F4E5F53554D5F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x14D554915117D25390D4915054D157D2539590531251 PUSH1 0x52 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x98B JUMPI POP PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x989 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x9E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032373A504F4C4943595F4143434553535F494E5641 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x131251 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 GT DUP1 ISZERO PUSH2 0x9F7 JUMPI POP DUP1 PUSH1 0x2 ADD SLOAD DUP6 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xA02 JUMPI POP DUP4 DUP6 LT JUMPDEST PUSH2 0xA60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032353A4150504C49434154494F4E5F5052454D4955 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1357D2539590531251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP2 PUSH1 0x2 ADD SLOAD DUP5 EQ PUSH2 0xACC JUMPI PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xA749E55FFD0F07193966D7C449D6238C6514C6B3EB5E8AB21B3EA9D94A5C2178 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP3 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE DUP3 ADD DUP6 SWAP1 SSTORE PUSH1 0x8 DUP3 ADD SSTORE JUMPDEST DUP2 PUSH1 0x1 ADD SLOAD DUP6 EQ PUSH2 0xB7D JUMPI PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x23E948A9DC44669750EA8EA8B7CA46C359534BD0F04E9260408A7E9BF8C7A556 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP3 DUP2 ADD DUP7 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP5 ADD SSTORE DUP2 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0xF392E5DF923D5D0B6D6C6301C53C86E1C75F58C1C637200C3193DD589E5C8A01 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0xB98 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0xBE2 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0xC7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032383A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCA3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xD00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032393A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR DUP2 SSTORE TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0xF1950800DA95964FDD42242722CCDFE6D9DC13D5D4DC7EAFEFEAB77373E3C9EC SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0xD5D DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0xDA7 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDD7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0xE1C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0xE63 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE8F SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xEDC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEB1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xEDC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEBF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT DUP1 ISZERO PUSH2 0xF2F JUMPI POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0xF8C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032323A4150504C49434154494F4E5F414343455353 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD ISZERO PUSH2 0xFF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032333A504F4C4943595F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP4 ADD SSTORE PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x5 DUP5 ADD SSTORE TIMESTAMP PUSH1 0x7 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP5 ADD SSTORE MLOAD DUP6 DUP2 MSTORE PUSH32 0xB979EAE60510A4A065F45DDD8A0C9AF7BA4D241E253B17BDEE3043C2FB992E9 SWAP2 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD SWAP4 DUP4 ADD DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP4 AND SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x10B0 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x10FD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x10D2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x10FD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x10E0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 DUP1 PUSH1 0x5 ADD SLOAD SWAP1 POP DUP7 JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1126 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1156 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1170 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x11A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x120B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1270 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x12E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036323A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x130B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1362 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036333A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x5EA526DBB5CA484C7716DCC966FDFC289530CC595EBC9EC7BFDA25D010D1A2FC SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x13CE DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1418 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x14B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1518 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x5 ADD SLOAD DUP4 DUP3 PUSH1 0x6 ADD SLOAD PUSH2 0x152D SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x158C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035323A5041594F55545F4D41585F414D4F554E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x115610D151511151 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x1601 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035333A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1627 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x167E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035343A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR DUP3 SSTORE DUP2 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x6 DUP3 ADD DUP1 SLOAD DUP6 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x16AD SWAP1 DUP5 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xA39B09B76CCF7DB94096E2C5A058215F9B2302B85DE726E37EDB99EFDB6FB2C6 SWAP1 PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1715 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1745 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x175F PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x178F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x17FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031373A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1825 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1882 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031383A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x67F56ED3A623B73566D40F65CBA052FC97CA9DF8AFB800A885C2A4FE0228C1F8 SWAP1 PUSH1 0x20 ADD PUSH2 0xD3D JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x18D6 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1906 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1920 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1950 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x19BD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD ISZERO PUSH2 0x1A2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031313A4150504C49434154494F4E5F414C52454144 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x595F455849535453 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 GT PUSH2 0x1A88 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031323A5052454D49554D5F414D4F554E545F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP7 DUP7 GT PUSH2 0x1AEA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031333A53554D5F494E53555245445F414D4F554E54 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x17D513D3D7D4D3505313 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP8 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP7 SWAP1 SSTORE PUSH2 0x1B0E PUSH1 0x3 DUP3 ADD DUP7 DUP7 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP1 DUP4 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP5 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 DUP2 SWAP1 SSTORE SWAP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x1B59 SWAP2 DUP12 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP8 SWAP1 MSTORE PUSH32 0x71B9122C9F32160952B44F0E76B53474F59A5CD9B98CCDFB5FF20672FCAE3412 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP3 ADD SLOAD PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP5 SWAP4 PUSH1 0xFF SWAP1 SWAP3 AND SWAP3 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH2 0x1C24 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C6E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C8D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x1CB5 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1CE1 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1D2E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D03 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D2E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1D11 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1DAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130333A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1DC5 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1DF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1E0F PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x1EAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1F0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x1F84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037323A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1FAA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1FD9 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1FD7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x202F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037333A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2055 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 ISZERO PUSH2 0x2069 JUMPI POP DUP1 PUSH1 0x2 ADD SLOAD DUP2 PUSH1 0x1 ADD SLOAD EQ JUMPDEST DUP1 PUSH2 0x2097 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x20F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037343A434C41494D5F574954485F554E504149445F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x5041594F555453 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x4 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x2116 DUP4 PUSH2 0x46A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x482CA72FF614E1AAB3860B93209BFCB7382D63292E6004E15FF29639E58E19A7 SWAP2 ADD PUSH2 0x13AC JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD DUP1 SLOAD SWAP4 SWAP5 PUSH1 0xFF SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP5 AND SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x21EA DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x221A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x2234 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2264 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x22BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030313A494E56414C49445F4F574E45520000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2312 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2336 SWAP2 SWAP1 PUSH2 0x41D4 JUMP JUMPDEST PUSH2 0x2382 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030323A494E56414C49445F50524F44554354000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23DB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23FF SWAP2 SWAP1 PUSH2 0x42F0 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x241E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x246B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030333A50524F445543545F4E4F545F414354495645 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH2 0x2473 PUSH2 0x3F53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP4 POP SWAP1 ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3030343A4D455441444154415F414C52454144595F45 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5849535453 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x251F PUSH1 0x3 DUP3 ADD DUP7 DUP7 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x19C55CD86637A14907BC12064E09BF8DCE1ECDA9E5D96CAE81099F4B8AE1D3C9 SWAP1 PUSH2 0x2564 SWAP1 DUP10 SWAP1 DUP7 SWAP1 DUP11 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x436E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x25C6 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2606 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2625 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xE0 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130323A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2719 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0xC0 DUP2 ADD DUP6 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP1 DUP4 ADD SLOAD SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2779 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2798 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x27AC SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x27D8 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2825 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x27FA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2825 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2808 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x28B9 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x28E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x2903 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2933 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x29A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x2A0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033313A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2A31 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2A89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033323A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SLOAD ISZERO PUSH2 0x2AE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033333A504F4C4943595F4841535F4F50454E5F434C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41494D53 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x2 PUSH1 0xFF NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE TIMESTAMP PUSH1 0x8 DUP5 ADD DUP2 SWAP1 SSTORE DUP5 DUP3 ADD DUP1 SLOAD SWAP1 SWAP4 AND SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x5 DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x2B33 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0x47682AA751CFEF9683DC926C2E0547BF1F6345215278EA52B866564017AC9B9C SWAP1 PUSH1 0x20 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B76 DUP3 PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2BBA PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2BFC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2C1B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x2C43 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2C6F SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2CBC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2C91 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2CBC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2C9F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130313A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x2D60 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x2D7A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D7A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x2DDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x2E00 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x2E2A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x2E6C JUMPI PUSH2 0x2E4B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x2E74 PUSH2 0x3FB9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2EBA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x2EF8 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 DUP1 DUP3 ADD SLOAD SWAP2 SWAP3 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2F4B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2F6A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x2F88 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2FB4 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3001 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FD6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3001 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2FE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1DAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130343A5041594F55545F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3095 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x30C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x30DF PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x310F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x317A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP11 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x31EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038313A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3215 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x326C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038323A434C41494D5F4E4F545F434F4E4649524D45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 GT PUSH2 0x32CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038333A5041594F55545F414D4F554E545F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD DUP8 DUP3 PUSH1 0x2 ADD SLOAD PUSH2 0x32E2 SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x333C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038343A5041594F55545F414D4F554E545F544F4F5F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x424947 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP2 DUP6 MSTORE SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP6 POP SWAP1 ISZERO PUSH2 0x33C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038353A5041594F55545F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP9 DUP2 SSTORE PUSH1 0x2 DUP2 ADD DUP9 SWAP1 SSTORE PUSH2 0x33D8 PUSH1 0x3 DUP3 ADD DUP9 DUP9 PUSH2 0x405B JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x340C DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP5 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP12 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x223E38F266BC310BBF02CC4E1BB6C706AF5C7F9710B3EDFE17A12F09E44E84A7 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x34D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3131303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD DUP3 DUP3 PUSH1 0x2 ADD SLOAD PUSH2 0x34EC SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x353A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3131313A414D4F554E545F544F4F5F42494700000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x354E SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x9BB11018B2A92C286BE2BB51BD0ED127DADEF34CDDC2B557270D0F81873E0056 SWAP2 ADD PUSH2 0xD3D JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x35A2 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x35D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x35EC PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x361C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x3689 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031343A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x36F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031353A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x371F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x377C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031363A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x1 OR DUP3 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP6 DUP2 ADD DUP1 SLOAD SWAP1 SWAP5 AND OR SWAP3 DUP4 SWAP1 SSTORE DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x37C6 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xBF8B120FB15C8C02DAAC643F4B8D8542610C41F75BDA1D3EFCC3F7017C9389FC SWAP1 PUSH1 0x20 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3813 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3843 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x385D PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x388D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x38F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x391E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x396B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x5 ADD SLOAD DUP7 DUP3 PUSH1 0x6 ADD SLOAD PUSH2 0x3980 SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x39E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034323A434C41494D5F414D4F554E545F4558434545 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1114D7D3505617D4105653D555 PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP5 POP SWAP1 ISZERO PUSH2 0x3A63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034333A434C41494D5F414C52454144595F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP8 SWAP1 SSTORE PUSH2 0x3A80 PUSH1 0x3 DUP3 ADD DUP8 DUP8 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x3AA0 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x4 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x3AB7 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x66D0839D281A46DE5CA92181EF89787FBF266333FBD1076C0728149B3A5600FA SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3B21 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B51 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x3B6B PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x3C06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x3C6B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x3CE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039323A5041594F55545F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x3D0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x3D63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039333A5041594F55545F414C52454144595F504149 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1113D555 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x97A4F1DF9BFEE1535200A1BE1DA2C502AEC16BDA67FDADED9C127EAEC704B71F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SLOAD DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH1 0x2 DUP1 DUP5 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x3DE9 SWAP1 DUP5 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 DUP3 ADD SLOAD EQ ISZERO PUSH2 0xB7D JUMPI DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR DUP2 SSTORE PUSH1 0x4 DUP4 ADD DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x3E27 SWAP1 DUP5 SWAP1 PUSH2 0x468A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP5 ADD SSTORE DUP2 SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0x482CA72FF614E1AAB3860B93209BFCB7382D63292E6004E15FF29639E58E19A7 SWAP2 ADD PUSH2 0x16F2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3EB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3EC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3EED SWAP2 SWAP1 PUSH2 0x415E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 SWAP2 DUP3 PUSH2 0x3F64 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 SLOAD PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD CHAINID PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP4 DIV PUSH1 0x60 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP4 ADD MSTORE PUSH1 0x54 DUP3 ADD MSTORE PUSH1 0x74 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4024 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH2 0x4039 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x4067 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x4089 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x40CF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x40A2 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x40CF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x40CF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x40CF JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x40B4 JUMP JUMPDEST POP PUSH2 0x40DB SWAP3 SWAP2 POP PUSH2 0x40DF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x40DB JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x40E0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x4105 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x411C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x4134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x414C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4157 DUP2 PUSH2 0x475D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x416F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4157 DUP2 PUSH2 0x475D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x418F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x419A DUP2 PUSH2 0x475D JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x41BC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x41C8 DUP8 DUP3 DUP9 ADD PUSH2 0x40F4 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41E5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x4157 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4205 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x421E JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4242 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x41BC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x427A JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x42A8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x42D3 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x42DF DUP9 DUP3 DUP10 ADD PUSH2 0x40F4 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4301 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x4157 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4334 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x4318 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x4345 JUMPI DUP3 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x436A JUMPI PUSH2 0x436A PUSH2 0x4724 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x4395 DUP4 PUSH2 0x474D JUMP JUMPDEST DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 PUSH2 0x43C2 DUP7 PUSH2 0x474D JUMP JUMPDEST DUP6 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xC0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x43DC PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x430F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0xA0 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0x4401 DUP4 PUSH2 0x474D JUMP JUMPDEST DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4419 DUP9 PUSH2 0x473A JUMP JUMPDEST DUP8 DUP3 MSTORE DUP7 PUSH1 0x20 DUP4 ADD MSTORE DUP6 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xC0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x43DC PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x430F JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x444A DUP12 PUSH2 0x474D JUMP JUMPDEST SWAP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH1 0x40 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x60 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x80 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH2 0x450F DUP2 PUSH2 0x473A JUMP JUMPDEST DUP1 PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x4590 DUP2 PUSH2 0x474D JUMP JUMPDEST DUP1 PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x45CF PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x435A JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST DUP2 MLOAD PUSH2 0x120 DUP3 ADD SWAP1 PUSH2 0x4604 DUP2 PUSH2 0x474D JUMP JUMPDEST DUP1 DUP4 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP8 DUP3 MSTORE PUSH2 0x43C2 PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0x435A JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4685 JUMPI PUSH2 0x4685 PUSH2 0x470E JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x469C JUMPI PUSH2 0x469C PUSH2 0x470E JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x46B0 JUMPI PUSH2 0x46B0 PUSH2 0x470E JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x46CC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x46ED JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4707 JUMPI PUSH2 0x4707 PUSH2 0x470E JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x474A JUMPI PUSH2 0x474A PUSH2 0x4724 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x474A JUMPI PUSH2 0x474A PUSH2 0x4724 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x474A JUMPI PUSH1 0x0 DUP1 REVERT INVALID MSTORE8 0x23 SWAP5 0xC6 0xEC PUSH17 0x3C4ECF5944BC8F02B410433362F9BDC2F2 0x5C 0xD1 0xD7 INVALID GASLIMIT 0xE7 0xED 0xFC MSIZE LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA 0xB7 RETURNDATASIZE 0xEB 0xB7 SDIV 0xAB 0x2B DUP10 0xE9 NOT 0xDD ADD CODESIZE 0x2F SWAP7 0xA9 MOD 0xDC PUSH2 0x9928 PUSH21 0x19144898B6AA0D558764736F6C6343000802003300 ","sourceMap":"4404:20030:77:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;4404:20030:77;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;4404:20030:77;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:43724:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"86:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"135:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"144:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"154:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"137:6:103"},"nodeType":"YulFunctionCall","src":"137:26:103"},"nodeType":"YulExpressionStatement","src":"137:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"114:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"122:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"110:3:103"},"nodeType":"YulFunctionCall","src":"110:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"129:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"106:3:103"},"nodeType":"YulFunctionCall","src":"106:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"99:6:103"},"nodeType":"YulFunctionCall","src":"99:35:103"},"nodeType":"YulIf","src":"96:2:103"},{"nodeType":"YulAssignment","src":"174:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"197:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"184:12:103"},"nodeType":"YulFunctionCall","src":"184:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"174:6:103"}]},{"body":{"nodeType":"YulBlock","src":"247:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"256:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"266:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"249:6:103"},"nodeType":"YulFunctionCall","src":"249:26:103"},"nodeType":"YulExpressionStatement","src":"249:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"219:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"227:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"216:2:103"},"nodeType":"YulFunctionCall","src":"216:30:103"},"nodeType":"YulIf","src":"213:2:103"},{"nodeType":"YulAssignment","src":"286:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"302:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"310:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"298:3:103"},"nodeType":"YulFunctionCall","src":"298:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"286:8:103"}]},{"body":{"nodeType":"YulBlock","src":"367:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"376:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"379:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"369:6:103"},"nodeType":"YulFunctionCall","src":"369:12:103"},"nodeType":"YulExpressionStatement","src":"369:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"338:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"346:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"334:3:103"},"nodeType":"YulFunctionCall","src":"334:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"355:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"330:3:103"},"nodeType":"YulFunctionCall","src":"330:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"362:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"327:2:103"},"nodeType":"YulFunctionCall","src":"327:39:103"},"nodeType":"YulIf","src":"324:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"49:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"57:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"65:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"75:6:103","type":""}],"src":"14:375:103"},{"body":{"nodeType":"YulBlock","src":"464:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"510:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"519:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"527:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"512:6:103"},"nodeType":"YulFunctionCall","src":"512:22:103"},"nodeType":"YulExpressionStatement","src":"512:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"485:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"494:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"481:3:103"},"nodeType":"YulFunctionCall","src":"481:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"506:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"477:3:103"},"nodeType":"YulFunctionCall","src":"477:32:103"},"nodeType":"YulIf","src":"474:2:103"},{"nodeType":"YulVariableDeclaration","src":"545:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"558:12:103"},"nodeType":"YulFunctionCall","src":"558:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"549:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"615:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"590:24:103"},"nodeType":"YulFunctionCall","src":"590:31:103"},"nodeType":"YulExpressionStatement","src":"590:31:103"},{"nodeType":"YulAssignment","src":"630:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"640:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"630:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"430:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"441:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"453:6:103","type":""}],"src":"394:257:103"},{"body":{"nodeType":"YulBlock","src":"737:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"783:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"800:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"785:6:103"},"nodeType":"YulFunctionCall","src":"785:22:103"},"nodeType":"YulExpressionStatement","src":"785:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"758:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"767:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"754:3:103"},"nodeType":"YulFunctionCall","src":"754:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"779:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"750:3:103"},"nodeType":"YulFunctionCall","src":"750:32:103"},"nodeType":"YulIf","src":"747:2:103"},{"nodeType":"YulVariableDeclaration","src":"818:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"837:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"831:5:103"},"nodeType":"YulFunctionCall","src":"831:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"822:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"881:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"856:24:103"},"nodeType":"YulFunctionCall","src":"856:31:103"},"nodeType":"YulExpressionStatement","src":"856:31:103"},{"nodeType":"YulAssignment","src":"896:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"906:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"896:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"703:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"714:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"726:6:103","type":""}],"src":"656:261:103"},{"body":{"nodeType":"YulBlock","src":"1045:509:103","statements":[{"body":{"nodeType":"YulBlock","src":"1091:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1100:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1108:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1093:6:103"},"nodeType":"YulFunctionCall","src":"1093:22:103"},"nodeType":"YulExpressionStatement","src":"1093:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1066:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1075:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1062:3:103"},"nodeType":"YulFunctionCall","src":"1062:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1087:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1058:3:103"},"nodeType":"YulFunctionCall","src":"1058:32:103"},"nodeType":"YulIf","src":"1055:2:103"},{"nodeType":"YulVariableDeclaration","src":"1126:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1152:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1139:12:103"},"nodeType":"YulFunctionCall","src":"1139:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1130:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1196:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1171:24:103"},"nodeType":"YulFunctionCall","src":"1171:31:103"},"nodeType":"YulExpressionStatement","src":"1171:31:103"},{"nodeType":"YulAssignment","src":"1211:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1221:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1211:6:103"}]},{"nodeType":"YulAssignment","src":"1235:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1262:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1273:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1258:3:103"},"nodeType":"YulFunctionCall","src":"1258:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1245:12:103"},"nodeType":"YulFunctionCall","src":"1245:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1235:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1286:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1317:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1328:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1313:3:103"},"nodeType":"YulFunctionCall","src":"1313:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1300:12:103"},"nodeType":"YulFunctionCall","src":"1300:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1290:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1375:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1384:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"1392:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1377:6:103"},"nodeType":"YulFunctionCall","src":"1377:22:103"},"nodeType":"YulExpressionStatement","src":"1377:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1347:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1355:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1344:2:103"},"nodeType":"YulFunctionCall","src":"1344:30:103"},"nodeType":"YulIf","src":"1341:2:103"},{"nodeType":"YulVariableDeclaration","src":"1410:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1466:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1477:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1462:3:103"},"nodeType":"YulFunctionCall","src":"1462:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1486:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1436:25:103"},"nodeType":"YulFunctionCall","src":"1436:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"1414:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"1424:8:103","type":""}]},{"nodeType":"YulAssignment","src":"1503:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1513:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1503:6:103"}]},{"nodeType":"YulAssignment","src":"1530:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"1540:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1530:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"987:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"998:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1010:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1018:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1026:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1034:6:103","type":""}],"src":"922:632:103"},{"body":{"nodeType":"YulBlock","src":"1637:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1683:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1692:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1700:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1685:6:103"},"nodeType":"YulFunctionCall","src":"1685:22:103"},"nodeType":"YulExpressionStatement","src":"1685:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1658:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1667:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1654:3:103"},"nodeType":"YulFunctionCall","src":"1654:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1679:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1650:3:103"},"nodeType":"YulFunctionCall","src":"1650:32:103"},"nodeType":"YulIf","src":"1647:2:103"},{"nodeType":"YulVariableDeclaration","src":"1718:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1737:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1731:5:103"},"nodeType":"YulFunctionCall","src":"1731:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1722:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1800:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1809:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1817:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1802:6:103"},"nodeType":"YulFunctionCall","src":"1802:22:103"},"nodeType":"YulExpressionStatement","src":"1802:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1769:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1790:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1783:6:103"},"nodeType":"YulFunctionCall","src":"1783:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1776:6:103"},"nodeType":"YulFunctionCall","src":"1776:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1766:2:103"},"nodeType":"YulFunctionCall","src":"1766:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1759:6:103"},"nodeType":"YulFunctionCall","src":"1759:40:103"},"nodeType":"YulIf","src":"1756:2:103"},{"nodeType":"YulAssignment","src":"1835:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1845:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1835:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1603:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1614:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1626:6:103","type":""}],"src":"1559:297:103"},{"body":{"nodeType":"YulBlock","src":"1931:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1977:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1986:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1994:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1979:6:103"},"nodeType":"YulFunctionCall","src":"1979:22:103"},"nodeType":"YulExpressionStatement","src":"1979:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1952:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1961:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1948:3:103"},"nodeType":"YulFunctionCall","src":"1948:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1973:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1944:3:103"},"nodeType":"YulFunctionCall","src":"1944:32:103"},"nodeType":"YulIf","src":"1941:2:103"},{"nodeType":"YulAssignment","src":"2012:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2035:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2022:12:103"},"nodeType":"YulFunctionCall","src":"2022:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2012:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1897:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1908:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1920:6:103","type":""}],"src":"1861:190:103"},{"body":{"nodeType":"YulBlock","src":"2143:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2189:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2198:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2206:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2191:6:103"},"nodeType":"YulFunctionCall","src":"2191:22:103"},"nodeType":"YulExpressionStatement","src":"2191:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2164:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2173:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2160:3:103"},"nodeType":"YulFunctionCall","src":"2160:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2185:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2156:3:103"},"nodeType":"YulFunctionCall","src":"2156:32:103"},"nodeType":"YulIf","src":"2153:2:103"},{"nodeType":"YulAssignment","src":"2224:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2247:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2234:12:103"},"nodeType":"YulFunctionCall","src":"2234:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2224:6:103"}]},{"nodeType":"YulAssignment","src":"2266:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2293:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2304:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:103"},"nodeType":"YulFunctionCall","src":"2289:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2276:12:103"},"nodeType":"YulFunctionCall","src":"2276:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2266:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2101:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2112:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2124:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2132:6:103","type":""}],"src":"2056:258:103"},{"body":{"nodeType":"YulBlock","src":"2442:442:103","statements":[{"body":{"nodeType":"YulBlock","src":"2488:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2497:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2505:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2490:6:103"},"nodeType":"YulFunctionCall","src":"2490:22:103"},"nodeType":"YulExpressionStatement","src":"2490:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2463:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2472:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2459:3:103"},"nodeType":"YulFunctionCall","src":"2459:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2484:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2455:3:103"},"nodeType":"YulFunctionCall","src":"2455:32:103"},"nodeType":"YulIf","src":"2452:2:103"},{"nodeType":"YulAssignment","src":"2523:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2546:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2533:12:103"},"nodeType":"YulFunctionCall","src":"2533:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2523:6:103"}]},{"nodeType":"YulAssignment","src":"2565:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2603:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2588:3:103"},"nodeType":"YulFunctionCall","src":"2588:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2575:12:103"},"nodeType":"YulFunctionCall","src":"2575:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2565:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2616:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2658:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2643:3:103"},"nodeType":"YulFunctionCall","src":"2643:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2630:12:103"},"nodeType":"YulFunctionCall","src":"2630:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2620:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2705:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2714:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2722:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2707:6:103"},"nodeType":"YulFunctionCall","src":"2707:22:103"},"nodeType":"YulExpressionStatement","src":"2707:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2677:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2685:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2674:2:103"},"nodeType":"YulFunctionCall","src":"2674:30:103"},"nodeType":"YulIf","src":"2671:2:103"},{"nodeType":"YulVariableDeclaration","src":"2740:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2796:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2807:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2792:3:103"},"nodeType":"YulFunctionCall","src":"2792:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2816:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2766:25:103"},"nodeType":"YulFunctionCall","src":"2766:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"2744:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"2754:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2833:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"2843:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2833:6:103"}]},{"nodeType":"YulAssignment","src":"2860:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2870:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2860:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2384:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2395:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2407:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2415:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2423:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2431:6:103","type":""}],"src":"2319:565:103"},{"body":{"nodeType":"YulBlock","src":"2993:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"3039:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3048:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3056:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3041:6:103"},"nodeType":"YulFunctionCall","src":"3041:22:103"},"nodeType":"YulExpressionStatement","src":"3041:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3014:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3023:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3010:3:103"},"nodeType":"YulFunctionCall","src":"3010:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3035:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3006:3:103"},"nodeType":"YulFunctionCall","src":"3006:32:103"},"nodeType":"YulIf","src":"3003:2:103"},{"nodeType":"YulAssignment","src":"3074:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3097:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3084:12:103"},"nodeType":"YulFunctionCall","src":"3084:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3074:6:103"}]},{"nodeType":"YulAssignment","src":"3116:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3143:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3154:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3139:3:103"},"nodeType":"YulFunctionCall","src":"3139:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3126:12:103"},"nodeType":"YulFunctionCall","src":"3126:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3116:6:103"}]},{"nodeType":"YulAssignment","src":"3167:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3194:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3205:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3190:3:103"},"nodeType":"YulFunctionCall","src":"3190:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3177:12:103"},"nodeType":"YulFunctionCall","src":"3177:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3167:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2943:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2954:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2966:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2974:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2982:6:103","type":""}],"src":"2889:326:103"},{"body":{"nodeType":"YulBlock","src":"3360:494:103","statements":[{"body":{"nodeType":"YulBlock","src":"3407:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3416:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"3424:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3409:6:103"},"nodeType":"YulFunctionCall","src":"3409:22:103"},"nodeType":"YulExpressionStatement","src":"3409:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3381:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3390:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3377:3:103"},"nodeType":"YulFunctionCall","src":"3377:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3402:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3373:3:103"},"nodeType":"YulFunctionCall","src":"3373:33:103"},"nodeType":"YulIf","src":"3370:2:103"},{"nodeType":"YulAssignment","src":"3442:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3465:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3452:12:103"},"nodeType":"YulFunctionCall","src":"3452:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3442:6:103"}]},{"nodeType":"YulAssignment","src":"3484:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3511:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3522:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3507:3:103"},"nodeType":"YulFunctionCall","src":"3507:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3494:12:103"},"nodeType":"YulFunctionCall","src":"3494:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3484:6:103"}]},{"nodeType":"YulAssignment","src":"3535:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3562:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3573:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3558:3:103"},"nodeType":"YulFunctionCall","src":"3558:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3545:12:103"},"nodeType":"YulFunctionCall","src":"3545:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3535:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3586:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3613:3:103"},"nodeType":"YulFunctionCall","src":"3613:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3600:12:103"},"nodeType":"YulFunctionCall","src":"3600:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3590:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3675:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"3684:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"3692:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3677:6:103"},"nodeType":"YulFunctionCall","src":"3677:22:103"},"nodeType":"YulExpressionStatement","src":"3677:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3647:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3655:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3644:2:103"},"nodeType":"YulFunctionCall","src":"3644:30:103"},"nodeType":"YulIf","src":"3641:2:103"},{"nodeType":"YulVariableDeclaration","src":"3710:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3766:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3777:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3762:3:103"},"nodeType":"YulFunctionCall","src":"3762:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3786:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"3736:25:103"},"nodeType":"YulFunctionCall","src":"3736:58:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"3714:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"3724:8:103","type":""}]},{"nodeType":"YulAssignment","src":"3803:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"3813:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3803:6:103"}]},{"nodeType":"YulAssignment","src":"3830:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"3840:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3830:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3294:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3305:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3317:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3325:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3333:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3341:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"3349:6:103","type":""}],"src":"3220:634:103"},{"body":{"nodeType":"YulBlock","src":"3959:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"4005:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4014:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4022:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4007:6:103"},"nodeType":"YulFunctionCall","src":"4007:22:103"},"nodeType":"YulExpressionStatement","src":"4007:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3980:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3989:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3976:3:103"},"nodeType":"YulFunctionCall","src":"3976:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4001:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3972:3:103"},"nodeType":"YulFunctionCall","src":"3972:32:103"},"nodeType":"YulIf","src":"3969:2:103"},{"nodeType":"YulVariableDeclaration","src":"4040:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4059:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4053:5:103"},"nodeType":"YulFunctionCall","src":"4053:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4044:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4102:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4111:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4119:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4104:6:103"},"nodeType":"YulFunctionCall","src":"4104:22:103"},"nodeType":"YulExpressionStatement","src":"4104:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4091:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4098:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4088:2:103"},"nodeType":"YulFunctionCall","src":"4088:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4081:6:103"},"nodeType":"YulFunctionCall","src":"4081:20:103"},"nodeType":"YulIf","src":"4078:2:103"},{"nodeType":"YulAssignment","src":"4137:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4147:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4137:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3925:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3936:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3948:6:103","type":""}],"src":"3859:299:103"},{"body":{"nodeType":"YulBlock","src":"4212:426:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4222:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4242:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4236:5:103"},"nodeType":"YulFunctionCall","src":"4236:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4226:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4264:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4269:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4257:6:103"},"nodeType":"YulFunctionCall","src":"4257:19:103"},"nodeType":"YulExpressionStatement","src":"4257:19:103"},{"nodeType":"YulVariableDeclaration","src":"4285:12:103","value":{"name":"end","nodeType":"YulIdentifier","src":"4294:3:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"4289:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4358:110:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4372:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4382:4:103","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4376:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4414:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"4419:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4410:3:103"},"nodeType":"YulFunctionCall","src":"4410:11:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4423:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4406:3:103"},"nodeType":"YulFunctionCall","src":"4406:20:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4442:5:103"},{"name":"i","nodeType":"YulIdentifier","src":"4449:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4438:3:103"},"nodeType":"YulFunctionCall","src":"4438:13:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4453:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4434:3:103"},"nodeType":"YulFunctionCall","src":"4434:22:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4428:5:103"},"nodeType":"YulFunctionCall","src":"4428:29:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4399:6:103"},"nodeType":"YulFunctionCall","src":"4399:59:103"},"nodeType":"YulExpressionStatement","src":"4399:59:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4317:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"4320:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4314:2:103"},"nodeType":"YulFunctionCall","src":"4314:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"4328:21:103","statements":[{"nodeType":"YulAssignment","src":"4330:17:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4339:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"4342:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4335:3:103"},"nodeType":"YulFunctionCall","src":"4335:12:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"4330:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"4310:3:103","statements":[]},"src":"4306:162:103"},{"body":{"nodeType":"YulBlock","src":"4502:64:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4531:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4536:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4527:3:103"},"nodeType":"YulFunctionCall","src":"4527:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4545:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4523:3:103"},"nodeType":"YulFunctionCall","src":"4523:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"4552:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4516:6:103"},"nodeType":"YulFunctionCall","src":"4516:40:103"},"nodeType":"YulExpressionStatement","src":"4516:40:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"4483:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"4486:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4480:2:103"},"nodeType":"YulFunctionCall","src":"4480:13:103"},"nodeType":"YulIf","src":"4477:2:103"},{"nodeType":"YulAssignment","src":"4575:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4590:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4603:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4611:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4599:3:103"},"nodeType":"YulFunctionCall","src":"4599:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4620:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4616:3:103"},"nodeType":"YulFunctionCall","src":"4616:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4595:3:103"},"nodeType":"YulFunctionCall","src":"4595:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4586:3:103"},"nodeType":"YulFunctionCall","src":"4586:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"4627:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4582:3:103"},"nodeType":"YulFunctionCall","src":"4582:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4575:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4189:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4196:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4204:3:103","type":""}],"src":"4163:475:103"},{"body":{"nodeType":"YulBlock","src":"4696:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"4730:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"4732:16:103"},"nodeType":"YulFunctionCall","src":"4732:18:103"},"nodeType":"YulExpressionStatement","src":"4732:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4719:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4726:1:103","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4716:2:103"},"nodeType":"YulFunctionCall","src":"4716:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4709:6:103"},"nodeType":"YulFunctionCall","src":"4709:20:103"},"nodeType":"YulIf","src":"4706:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4768:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"4773:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4761:6:103"},"nodeType":"YulFunctionCall","src":"4761:18:103"},"nodeType":"YulExpressionStatement","src":"4761:18:103"}]},"name":"abi_encode_enum_PayoutState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4680:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4687:3:103","type":""}],"src":"4643:142:103"},{"body":{"nodeType":"YulBlock","src":"4965:184:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4982:3:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4987:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4975:6:103"},"nodeType":"YulFunctionCall","src":"4975:19:103"},"nodeType":"YulExpressionStatement","src":"4975:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5014:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5019:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5010:3:103"},"nodeType":"YulFunctionCall","src":"5010:12:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5032:2:103","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"5036:6:103"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5028:3:103"},"nodeType":"YulFunctionCall","src":"5028:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5049:26:103","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5045:3:103"},"nodeType":"YulFunctionCall","src":"5045:31:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5024:3:103"},"nodeType":"YulFunctionCall","src":"5024:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5003:6:103"},"nodeType":"YulFunctionCall","src":"5003:75:103"},"nodeType":"YulExpressionStatement","src":"5003:75:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5098:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5103:2:103","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5094:3:103"},"nodeType":"YulFunctionCall","src":"5094:12:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5108:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5087:6:103"},"nodeType":"YulFunctionCall","src":"5087:28:103"},"nodeType":"YulExpressionStatement","src":"5087:28:103"},{"nodeType":"YulAssignment","src":"5124:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5135:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5140:2:103","type":"","value":"84"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5131:3:103"},"nodeType":"YulFunctionCall","src":"5131:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5124:3:103"}]}]},"name":"abi_encode_tuple_packed_t_uint256_t_address_t_uint256__to_t_uint256_t_address_t_uint256__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4925:3:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4930:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4938:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4946:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4957:3:103","type":""}],"src":"4790:359:103"},{"body":{"nodeType":"YulBlock","src":"5357:286:103","statements":[{"nodeType":"YulAssignment","src":"5367:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5379:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5390:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5375:3:103"},"nodeType":"YulFunctionCall","src":"5375:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5367:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5410:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5425:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5441:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5446:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5437:3:103"},"nodeType":"YulFunctionCall","src":"5437:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5450:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5433:3:103"},"nodeType":"YulFunctionCall","src":"5433:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5421:3:103"},"nodeType":"YulFunctionCall","src":"5421:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5403:6:103"},"nodeType":"YulFunctionCall","src":"5403:51:103"},"nodeType":"YulExpressionStatement","src":"5403:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5474:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5485:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5470:3:103"},"nodeType":"YulFunctionCall","src":"5470:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5490:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5463:6:103"},"nodeType":"YulFunctionCall","src":"5463:34:103"},"nodeType":"YulExpressionStatement","src":"5463:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5528:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5513:3:103"},"nodeType":"YulFunctionCall","src":"5513:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5533:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5506:6:103"},"nodeType":"YulFunctionCall","src":"5506:34:103"},"nodeType":"YulExpressionStatement","src":"5506:34:103"},{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5587:6:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"5549:37:103"},"nodeType":"YulFunctionCall","src":"5549:45:103"},"nodeType":"YulExpressionStatement","src":"5549:45:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5614:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5625:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5610:3:103"},"nodeType":"YulFunctionCall","src":"5610:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"5630:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5603:6:103"},"nodeType":"YulFunctionCall","src":"5603:34:103"},"nodeType":"YulExpressionStatement","src":"5603:34:103"}]},"name":"abi_encode_tuple_t_address_t_bytes32_t_uint256_t_enum$_PolicyFlowState_$5217__to_t_address_t_bytes32_t_uint256_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5302:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5313:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5321:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5329:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5337:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5348:4:103","type":""}],"src":"5154:489:103"},{"body":{"nodeType":"YulBlock","src":"5925:397:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5942:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5957:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5973:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5978:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5969:3:103"},"nodeType":"YulFunctionCall","src":"5969:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5982:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5965:3:103"},"nodeType":"YulFunctionCall","src":"5965:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5953:3:103"},"nodeType":"YulFunctionCall","src":"5953:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5935:6:103"},"nodeType":"YulFunctionCall","src":"5935:51:103"},"nodeType":"YulExpressionStatement","src":"5935:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6006:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6017:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6002:3:103"},"nodeType":"YulFunctionCall","src":"6002:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6022:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5995:6:103"},"nodeType":"YulFunctionCall","src":"5995:34:103"},"nodeType":"YulExpressionStatement","src":"5995:34:103"},{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6076:6:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"6038:37:103"},"nodeType":"YulFunctionCall","src":"6038:45:103"},"nodeType":"YulExpressionStatement","src":"6038:45:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6103:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6114:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6099:3:103"},"nodeType":"YulFunctionCall","src":"6099:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6119:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6092:6:103"},"nodeType":"YulFunctionCall","src":"6092:34:103"},"nodeType":"YulExpressionStatement","src":"6092:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6146:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6157:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6142:3:103"},"nodeType":"YulFunctionCall","src":"6142:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6162:3:103","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6135:6:103"},"nodeType":"YulFunctionCall","src":"6135:31:103"},"nodeType":"YulExpressionStatement","src":"6135:31:103"},{"nodeType":"YulAssignment","src":"6175:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"6200:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6212:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6223:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6208:3:103"},"nodeType":"YulFunctionCall","src":"6208:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6183:16:103"},"nodeType":"YulFunctionCall","src":"6183:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6175:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6259:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6244:3:103"},"nodeType":"YulFunctionCall","src":"6244:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6265:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6237:6:103"},"nodeType":"YulFunctionCall","src":"6237:35:103"},"nodeType":"YulExpressionStatement","src":"6237:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6303:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6288:3:103"},"nodeType":"YulFunctionCall","src":"6288:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"6309:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6281:6:103"},"nodeType":"YulFunctionCall","src":"6281:35:103"},"nodeType":"YulExpressionStatement","src":"6281:35:103"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_enum$_PolicyFlowState_$5217_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_address_t_uint256_t_uint8_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5854:9:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5865:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5873:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5881:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5889:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5897:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5905:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5916:4:103","type":""}],"src":"5648:674:103"},{"body":{"nodeType":"YulBlock","src":"6428:76:103","statements":[{"nodeType":"YulAssignment","src":"6438:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6450:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6461:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6446:3:103"},"nodeType":"YulFunctionCall","src":"6446:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6438:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6480:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6491:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6473:6:103"},"nodeType":"YulFunctionCall","src":"6473:25:103"},"nodeType":"YulExpressionStatement","src":"6473:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6397:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6408:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6419:4:103","type":""}],"src":"6327:177:103"},{"body":{"nodeType":"YulBlock","src":"6656:173:103","statements":[{"nodeType":"YulAssignment","src":"6666:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6678:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6689:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6674:3:103"},"nodeType":"YulFunctionCall","src":"6674:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6666:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6708:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6719:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6701:6:103"},"nodeType":"YulFunctionCall","src":"6701:25:103"},"nodeType":"YulExpressionStatement","src":"6701:25:103"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6773:6:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"6735:37:103"},"nodeType":"YulFunctionCall","src":"6735:45:103"},"nodeType":"YulExpressionStatement","src":"6735:45:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6800:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6811:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6796:3:103"},"nodeType":"YulFunctionCall","src":"6796:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6816:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6789:6:103"},"nodeType":"YulFunctionCall","src":"6789:34:103"},"nodeType":"YulExpressionStatement","src":"6789:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_PolicyFlowState_$5217__to_t_bytes32_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6617:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6628:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6636:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6647:4:103","type":""}],"src":"6509:320:103"},{"body":{"nodeType":"YulBlock","src":"6963:119:103","statements":[{"nodeType":"YulAssignment","src":"6973:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6981:3:103"},"nodeType":"YulFunctionCall","src":"6981:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6973:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7015:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7026:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7008:6:103"},"nodeType":"YulFunctionCall","src":"7008:25:103"},"nodeType":"YulExpressionStatement","src":"7008:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7053:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7064:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7049:3:103"},"nodeType":"YulFunctionCall","src":"7049:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7069:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7042:6:103"},"nodeType":"YulFunctionCall","src":"7042:34:103"},"nodeType":"YulExpressionStatement","src":"7042:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6924:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6935:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6943:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6954:4:103","type":""}],"src":"6834:248:103"},{"body":{"nodeType":"YulBlock","src":"7244:162:103","statements":[{"nodeType":"YulAssignment","src":"7254:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7266:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7277:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7262:3:103"},"nodeType":"YulFunctionCall","src":"7262:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7254:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7296:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7307:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7289:6:103"},"nodeType":"YulFunctionCall","src":"7289:25:103"},"nodeType":"YulExpressionStatement","src":"7289:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7334:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7345:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7330:3:103"},"nodeType":"YulFunctionCall","src":"7330:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7350:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7323:6:103"},"nodeType":"YulFunctionCall","src":"7323:34:103"},"nodeType":"YulExpressionStatement","src":"7323:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7388:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7373:3:103"},"nodeType":"YulFunctionCall","src":"7373:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7393:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7366:6:103"},"nodeType":"YulFunctionCall","src":"7366:34:103"},"nodeType":"YulExpressionStatement","src":"7366:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7197:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7208:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7216:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7224:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7235:4:103","type":""}],"src":"7087:319:103"},{"body":{"nodeType":"YulBlock","src":"7596:206:103","statements":[{"nodeType":"YulAssignment","src":"7606:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7618:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7629:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7614:3:103"},"nodeType":"YulFunctionCall","src":"7614:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7606:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7649:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7660:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7642:6:103"},"nodeType":"YulFunctionCall","src":"7642:25:103"},"nodeType":"YulExpressionStatement","src":"7642:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7687:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7698:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7683:3:103"},"nodeType":"YulFunctionCall","src":"7683:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7703:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7676:6:103"},"nodeType":"YulFunctionCall","src":"7676:34:103"},"nodeType":"YulExpressionStatement","src":"7676:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7730:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7741:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7726:3:103"},"nodeType":"YulFunctionCall","src":"7726:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7746:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7719:6:103"},"nodeType":"YulFunctionCall","src":"7719:34:103"},"nodeType":"YulExpressionStatement","src":"7719:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7784:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7769:3:103"},"nodeType":"YulFunctionCall","src":"7769:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"7789:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7762:6:103"},"nodeType":"YulFunctionCall","src":"7762:34:103"},"nodeType":"YulExpressionStatement","src":"7762:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7541:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7552:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7560:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7568:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7576:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7587:4:103","type":""}],"src":"7411:391:103"},{"body":{"nodeType":"YulBlock","src":"8085:372:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8134:6:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"8095:38:103"},"nodeType":"YulFunctionCall","src":"8095:46:103"},"nodeType":"YulExpressionStatement","src":"8095:46:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8157:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8168:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8150:6:103"},"nodeType":"YulFunctionCall","src":"8150:25:103"},"nodeType":"YulExpressionStatement","src":"8150:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8195:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8206:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8191:3:103"},"nodeType":"YulFunctionCall","src":"8191:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8211:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8184:6:103"},"nodeType":"YulFunctionCall","src":"8184:34:103"},"nodeType":"YulExpressionStatement","src":"8184:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8238:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8249:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8234:3:103"},"nodeType":"YulFunctionCall","src":"8234:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"8254:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8227:6:103"},"nodeType":"YulFunctionCall","src":"8227:34:103"},"nodeType":"YulExpressionStatement","src":"8227:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8281:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8292:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8277:3:103"},"nodeType":"YulFunctionCall","src":"8277:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8297:3:103","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8270:6:103"},"nodeType":"YulFunctionCall","src":"8270:31:103"},"nodeType":"YulExpressionStatement","src":"8270:31:103"},{"nodeType":"YulAssignment","src":"8310:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8335:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8347:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8358:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8343:3:103"},"nodeType":"YulFunctionCall","src":"8343:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8318:16:103"},"nodeType":"YulFunctionCall","src":"8318:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8310:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8383:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8394:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8379:3:103"},"nodeType":"YulFunctionCall","src":"8379:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8400:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8372:6:103"},"nodeType":"YulFunctionCall","src":"8372:35:103"},"nodeType":"YulExpressionStatement","src":"8372:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8427:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8438:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8423:3:103"},"nodeType":"YulFunctionCall","src":"8423:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"8444:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8416:6:103"},"nodeType":"YulFunctionCall","src":"8416:35:103"},"nodeType":"YulExpressionStatement","src":"8416:35:103"}]},"name":"abi_encode_tuple_t_enum$_ApplicationState_$5222_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8014:9:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"8025:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8033:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8041:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8049:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8057:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8065:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8076:4:103","type":""}],"src":"7807:650:103"},{"body":{"nodeType":"YulBlock","src":"8734:372:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8783:6:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"8744:38:103"},"nodeType":"YulFunctionCall","src":"8744:46:103"},"nodeType":"YulExpressionStatement","src":"8744:46:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8806:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8817:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8799:6:103"},"nodeType":"YulFunctionCall","src":"8799:25:103"},"nodeType":"YulExpressionStatement","src":"8799:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8855:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8840:3:103"},"nodeType":"YulFunctionCall","src":"8840:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8860:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8833:6:103"},"nodeType":"YulFunctionCall","src":"8833:34:103"},"nodeType":"YulExpressionStatement","src":"8833:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8887:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8898:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8883:3:103"},"nodeType":"YulFunctionCall","src":"8883:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"8903:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8876:6:103"},"nodeType":"YulFunctionCall","src":"8876:34:103"},"nodeType":"YulExpressionStatement","src":"8876:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8930:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8941:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8926:3:103"},"nodeType":"YulFunctionCall","src":"8926:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8946:3:103","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8919:6:103"},"nodeType":"YulFunctionCall","src":"8919:31:103"},"nodeType":"YulExpressionStatement","src":"8919:31:103"},{"nodeType":"YulAssignment","src":"8959:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8984:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8996:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9007:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8992:3:103"},"nodeType":"YulFunctionCall","src":"8992:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8967:16:103"},"nodeType":"YulFunctionCall","src":"8967:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8959:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9028:3:103"},"nodeType":"YulFunctionCall","src":"9028:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"9049:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9021:6:103"},"nodeType":"YulFunctionCall","src":"9021:35:103"},"nodeType":"YulExpressionStatement","src":"9021:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9076:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9087:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9072:3:103"},"nodeType":"YulFunctionCall","src":"9072:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"9093:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9065:6:103"},"nodeType":"YulFunctionCall","src":"9065:35:103"},"nodeType":"YulExpressionStatement","src":"9065:35:103"}]},"name":"abi_encode_tuple_t_enum$_ClaimState_$5231_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8663:9:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"8674:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8682:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8690:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8698:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8706:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8714:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8725:4:103","type":""}],"src":"8462:644:103"},{"body":{"nodeType":"YulBlock","src":"9450:480:103","statements":[{"nodeType":"YulAssignment","src":"9460:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9472:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9483:3:103","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9468:3:103"},"nodeType":"YulFunctionCall","src":"9468:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9460:4:103"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9534:6:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"9496:37:103"},"nodeType":"YulFunctionCall","src":"9496:45:103"},"nodeType":"YulExpressionStatement","src":"9496:45:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9557:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9568:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9550:6:103"},"nodeType":"YulFunctionCall","src":"9550:25:103"},"nodeType":"YulExpressionStatement","src":"9550:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9595:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9606:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9591:3:103"},"nodeType":"YulFunctionCall","src":"9591:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"9611:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9584:6:103"},"nodeType":"YulFunctionCall","src":"9584:34:103"},"nodeType":"YulExpressionStatement","src":"9584:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9649:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9634:3:103"},"nodeType":"YulFunctionCall","src":"9634:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9654:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9627:6:103"},"nodeType":"YulFunctionCall","src":"9627:34:103"},"nodeType":"YulExpressionStatement","src":"9627:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9681:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9692:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9677:3:103"},"nodeType":"YulFunctionCall","src":"9677:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"9697:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9670:6:103"},"nodeType":"YulFunctionCall","src":"9670:34:103"},"nodeType":"YulExpressionStatement","src":"9670:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9724:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9735:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9720:3:103"},"nodeType":"YulFunctionCall","src":"9720:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"9741:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9713:6:103"},"nodeType":"YulFunctionCall","src":"9713:35:103"},"nodeType":"YulExpressionStatement","src":"9713:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9779:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9764:3:103"},"nodeType":"YulFunctionCall","src":"9764:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"9785:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9757:6:103"},"nodeType":"YulFunctionCall","src":"9757:35:103"},"nodeType":"YulExpressionStatement","src":"9757:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9812:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9823:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9808:3:103"},"nodeType":"YulFunctionCall","src":"9808:19:103"},{"name":"value6","nodeType":"YulIdentifier","src":"9829:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9801:6:103"},"nodeType":"YulFunctionCall","src":"9801:35:103"},"nodeType":"YulExpressionStatement","src":"9801:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9856:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9867:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9852:3:103"},"nodeType":"YulFunctionCall","src":"9852:19:103"},{"name":"value7","nodeType":"YulIdentifier","src":"9873:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9845:6:103"},"nodeType":"YulFunctionCall","src":"9845:35:103"},"nodeType":"YulExpressionStatement","src":"9845:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9900:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9911:3:103","type":"","value":"256"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9896:3:103"},"nodeType":"YulFunctionCall","src":"9896:19:103"},{"name":"value8","nodeType":"YulIdentifier","src":"9917:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9889:6:103"},"nodeType":"YulFunctionCall","src":"9889:35:103"},"nodeType":"YulExpressionStatement","src":"9889:35:103"}]},"name":"abi_encode_tuple_t_enum$_PolicyState_$5226_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9355:9:103","type":""},{"name":"value8","nodeType":"YulTypedName","src":"9366:6:103","type":""},{"name":"value7","nodeType":"YulTypedName","src":"9374:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"9382:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"9390:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9398:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9406:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9414:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9422:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9430:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9441:4:103","type":""}],"src":"9111:819:103"},{"body":{"nodeType":"YulBlock","src":"10042:87:103","statements":[{"nodeType":"YulAssignment","src":"10052:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10075:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10060:3:103"},"nodeType":"YulFunctionCall","src":"10060:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10052:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10094:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10109:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"10117:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10105:3:103"},"nodeType":"YulFunctionCall","src":"10105:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10087:6:103"},"nodeType":"YulFunctionCall","src":"10087:36:103"},"nodeType":"YulExpressionStatement","src":"10087:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10011:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10022:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10033:4:103","type":""}],"src":"9935:194:103"},{"body":{"nodeType":"YulBlock","src":"10308:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10325:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10336:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10318:6:103"},"nodeType":"YulFunctionCall","src":"10318:21:103"},"nodeType":"YulExpressionStatement","src":"10318:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10359:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10370:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10355:3:103"},"nodeType":"YulFunctionCall","src":"10355:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10375:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10348:6:103"},"nodeType":"YulFunctionCall","src":"10348:30:103"},"nodeType":"YulExpressionStatement","src":"10348:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10398:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10409:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10394:3:103"},"nodeType":"YulFunctionCall","src":"10394:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10414:34:103","type":"","value":"ERROR:POC-093:PAYOUT_ALREADY_PAI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10387:6:103"},"nodeType":"YulFunctionCall","src":"10387:62:103"},"nodeType":"YulExpressionStatement","src":"10387:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10469:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10480:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10465:3:103"},"nodeType":"YulFunctionCall","src":"10465:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10485:6:103","type":"","value":"DOUT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10458:6:103"},"nodeType":"YulFunctionCall","src":"10458:34:103"},"nodeType":"YulExpressionStatement","src":"10458:34:103"},{"nodeType":"YulAssignment","src":"10501:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10513:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10524:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10509:3:103"},"nodeType":"YulFunctionCall","src":"10509:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10501:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_01bd7262c070b3850d799edbf9ebd39157a9b16f9c9855ee1ca0ecc7e289d2d2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10285:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10299:4:103","type":""}],"src":"10134:400:103"},{"body":{"nodeType":"YulBlock","src":"10713:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10730:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10741:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10723:6:103"},"nodeType":"YulFunctionCall","src":"10723:21:103"},"nodeType":"YulExpressionStatement","src":"10723:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10764:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10775:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10760:3:103"},"nodeType":"YulFunctionCall","src":"10760:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10780:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10753:6:103"},"nodeType":"YulFunctionCall","src":"10753:30:103"},"nodeType":"YulExpressionStatement","src":"10753:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10803:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10814:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10799:3:103"},"nodeType":"YulFunctionCall","src":"10799:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10819:34:103","type":"","value":"ERROR:POC-073:CLAIM_STATE_INVALI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10792:6:103"},"nodeType":"YulFunctionCall","src":"10792:62:103"},"nodeType":"YulExpressionStatement","src":"10792:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10874:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10885:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10870:3:103"},"nodeType":"YulFunctionCall","src":"10870:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10890:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10863:6:103"},"nodeType":"YulFunctionCall","src":"10863:31:103"},"nodeType":"YulExpressionStatement","src":"10863:31:103"},{"nodeType":"YulAssignment","src":"10903:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10926:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10911:3:103"},"nodeType":"YulFunctionCall","src":"10911:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10903:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0905fdf985363891ad748beb4d4a032395a3ba007421a6945b74e963f9f015fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10690:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10704:4:103","type":""}],"src":"10539:397:103"},{"body":{"nodeType":"YulBlock","src":"11115:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11132:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11143:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11125:6:103"},"nodeType":"YulFunctionCall","src":"11125:21:103"},"nodeType":"YulExpressionStatement","src":"11125:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11166:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11177:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11162:3:103"},"nodeType":"YulFunctionCall","src":"11162:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11182:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11155:6:103"},"nodeType":"YulFunctionCall","src":"11155:30:103"},"nodeType":"YulExpressionStatement","src":"11155:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11216:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11201:3:103"},"nodeType":"YulFunctionCall","src":"11201:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11221:34:103","type":"","value":"ERROR:POC-025:APPLICATION_PREMIU"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11194:6:103"},"nodeType":"YulFunctionCall","src":"11194:62:103"},"nodeType":"YulExpressionStatement","src":"11194:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11276:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11287:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11272:3:103"},"nodeType":"YulFunctionCall","src":"11272:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11292:11:103","type":"","value":"M_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11265:6:103"},"nodeType":"YulFunctionCall","src":"11265:39:103"},"nodeType":"YulExpressionStatement","src":"11265:39:103"},{"nodeType":"YulAssignment","src":"11313:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11325:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11336:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11321:3:103"},"nodeType":"YulFunctionCall","src":"11321:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11313:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0accb0c8465e13760989bc709fa6ab7cf10b68fe03957bd6fe9eb47233a41aba__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11092:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11106:4:103","type":""}],"src":"10941:405:103"},{"body":{"nodeType":"YulBlock","src":"11525:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11553:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11535:6:103"},"nodeType":"YulFunctionCall","src":"11535:21:103"},"nodeType":"YulExpressionStatement","src":"11535:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11576:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11587:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11572:3:103"},"nodeType":"YulFunctionCall","src":"11572:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11592:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11565:6:103"},"nodeType":"YulFunctionCall","src":"11565:30:103"},"nodeType":"YulExpressionStatement","src":"11565:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11615:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11626:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11611:3:103"},"nodeType":"YulFunctionCall","src":"11611:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11631:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11604:6:103"},"nodeType":"YulFunctionCall","src":"11604:62:103"},"nodeType":"YulExpressionStatement","src":"11604:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11686:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11697:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11682:3:103"},"nodeType":"YulFunctionCall","src":"11682:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11702:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11675:6:103"},"nodeType":"YulFunctionCall","src":"11675:35:103"},"nodeType":"YulExpressionStatement","src":"11675:35:103"},{"nodeType":"YulAssignment","src":"11719:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11731:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11742:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11727:3:103"},"nodeType":"YulFunctionCall","src":"11727:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11719:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11502:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11516:4:103","type":""}],"src":"11351:401:103"},{"body":{"nodeType":"YulBlock","src":"11931:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11948:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11959:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11941:6:103"},"nodeType":"YulFunctionCall","src":"11941:21:103"},"nodeType":"YulExpressionStatement","src":"11941:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11993:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11978:3:103"},"nodeType":"YulFunctionCall","src":"11978:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11998:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11971:6:103"},"nodeType":"YulFunctionCall","src":"11971:30:103"},"nodeType":"YulExpressionStatement","src":"11971:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12021:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12032:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12017:3:103"},"nodeType":"YulFunctionCall","src":"12017:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12037:34:103","type":"","value":"ERROR:POC-083:PAYOUT_AMOUNT_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12010:6:103"},"nodeType":"YulFunctionCall","src":"12010:62:103"},"nodeType":"YulExpressionStatement","src":"12010:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12092:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12103:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12088:3:103"},"nodeType":"YulFunctionCall","src":"12088:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12108:10:103","type":"","value":"_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12081:6:103"},"nodeType":"YulFunctionCall","src":"12081:38:103"},"nodeType":"YulExpressionStatement","src":"12081:38:103"},{"nodeType":"YulAssignment","src":"12128:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12140:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12151:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12136:3:103"},"nodeType":"YulFunctionCall","src":"12136:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12128:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_12a836dd02d461888166ce18ce5bc78481bf477d1f9ebbf4ce8444ca0e7f0dc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11908:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11922:4:103","type":""}],"src":"11757:404:103"},{"body":{"nodeType":"YulBlock","src":"12340:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12357:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12368:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12350:6:103"},"nodeType":"YulFunctionCall","src":"12350:21:103"},"nodeType":"YulExpressionStatement","src":"12350:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12391:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12402:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12387:3:103"},"nodeType":"YulFunctionCall","src":"12387:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12407:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12380:6:103"},"nodeType":"YulFunctionCall","src":"12380:30:103"},"nodeType":"YulExpressionStatement","src":"12380:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12430:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12441:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12426:3:103"},"nodeType":"YulFunctionCall","src":"12426:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12446:34:103","type":"","value":"ERROR:POC-102:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12419:6:103"},"nodeType":"YulFunctionCall","src":"12419:62:103"},"nodeType":"YulExpressionStatement","src":"12419:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12501:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12512:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12497:3:103"},"nodeType":"YulFunctionCall","src":"12497:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12517:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12490:6:103"},"nodeType":"YulFunctionCall","src":"12490:33:103"},"nodeType":"YulExpressionStatement","src":"12490:33:103"},{"nodeType":"YulAssignment","src":"12532:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12544:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12555:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12540:3:103"},"nodeType":"YulFunctionCall","src":"12540:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12532:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1ac03beb57c99a65c7942aa68c11e6b91d3cade8654ba7436c76c86f22bcf529__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12317:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12331:4:103","type":""}],"src":"12166:399:103"},{"body":{"nodeType":"YulBlock","src":"12744:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12761:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12772:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12754:6:103"},"nodeType":"YulFunctionCall","src":"12754:21:103"},"nodeType":"YulExpressionStatement","src":"12754:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12795:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12806:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12791:3:103"},"nodeType":"YulFunctionCall","src":"12791:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12811:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12784:6:103"},"nodeType":"YulFunctionCall","src":"12784:30:103"},"nodeType":"YulExpressionStatement","src":"12784:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12834:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12845:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12830:3:103"},"nodeType":"YulFunctionCall","src":"12830:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12850:34:103","type":"","value":"ERROR:POC-023:POLICY_ALREADY_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12823:6:103"},"nodeType":"YulFunctionCall","src":"12823:62:103"},"nodeType":"YulExpressionStatement","src":"12823:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12905:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12916:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12901:3:103"},"nodeType":"YulFunctionCall","src":"12901:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12921:5:103","type":"","value":"STS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12894:6:103"},"nodeType":"YulFunctionCall","src":"12894:33:103"},"nodeType":"YulExpressionStatement","src":"12894:33:103"},{"nodeType":"YulAssignment","src":"12936:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12948:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12959:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12944:3:103"},"nodeType":"YulFunctionCall","src":"12944:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12936:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1ac75784ff08502543cdff54428e36c01ae4d8ea69e36a455017dee99fa29dc8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12721:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12735:4:103","type":""}],"src":"12570:399:103"},{"body":{"nodeType":"YulBlock","src":"13148:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13165:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13176:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13158:6:103"},"nodeType":"YulFunctionCall","src":"13158:21:103"},"nodeType":"YulExpressionStatement","src":"13158:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13199:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13210:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13195:3:103"},"nodeType":"YulFunctionCall","src":"13195:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13215:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13188:6:103"},"nodeType":"YulFunctionCall","src":"13188:30:103"},"nodeType":"YulExpressionStatement","src":"13188:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13238:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13249:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13234:3:103"},"nodeType":"YulFunctionCall","src":"13234:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13254:34:103","type":"","value":"ERROR:POC-090:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13227:6:103"},"nodeType":"YulFunctionCall","src":"13227:62:103"},"nodeType":"YulExpressionStatement","src":"13227:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13309:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13320:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13305:3:103"},"nodeType":"YulFunctionCall","src":"13305:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13325:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13298:6:103"},"nodeType":"YulFunctionCall","src":"13298:33:103"},"nodeType":"YulExpressionStatement","src":"13298:33:103"},{"nodeType":"YulAssignment","src":"13340:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13363:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13348:3:103"},"nodeType":"YulFunctionCall","src":"13348:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13340:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1c588baea0842d5c025c2163acf2806d62a81ff4e95e6f6cd3cf1ce8023895b8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13125:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13139:4:103","type":""}],"src":"12974:399:103"},{"body":{"nodeType":"YulBlock","src":"13552:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13580:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13562:6:103"},"nodeType":"YulFunctionCall","src":"13562:21:103"},"nodeType":"YulExpressionStatement","src":"13562:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13614:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13599:3:103"},"nodeType":"YulFunctionCall","src":"13599:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13619:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13592:6:103"},"nodeType":"YulFunctionCall","src":"13592:30:103"},"nodeType":"YulExpressionStatement","src":"13592:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13653:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13638:3:103"},"nodeType":"YulFunctionCall","src":"13638:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13658:34:103","type":"","value":"ERROR:POC-011:APPLICATION_ALREAD"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13631:6:103"},"nodeType":"YulFunctionCall","src":"13631:62:103"},"nodeType":"YulExpressionStatement","src":"13631:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13713:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13724:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13709:3:103"},"nodeType":"YulFunctionCall","src":"13709:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13729:10:103","type":"","value":"Y_EXISTS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13702:6:103"},"nodeType":"YulFunctionCall","src":"13702:38:103"},"nodeType":"YulExpressionStatement","src":"13702:38:103"},{"nodeType":"YulAssignment","src":"13749:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13761:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13772:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13757:3:103"},"nodeType":"YulFunctionCall","src":"13757:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13749:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1db96ed0ae0923362061f94230382ef4f079d53202d86c4160c88d024476fc3b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13529:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13543:4:103","type":""}],"src":"13378:404:103"},{"body":{"nodeType":"YulBlock","src":"13961:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13989:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13971:6:103"},"nodeType":"YulFunctionCall","src":"13971:21:103"},"nodeType":"YulExpressionStatement","src":"13971:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14012:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14023:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14008:3:103"},"nodeType":"YulFunctionCall","src":"14008:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14028:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14001:6:103"},"nodeType":"YulFunctionCall","src":"14001:30:103"},"nodeType":"YulExpressionStatement","src":"14001:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14051:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14062:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14047:3:103"},"nodeType":"YulFunctionCall","src":"14047:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14067:34:103","type":"","value":"ERROR:POC-021:APPLICATION_STATE_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14040:6:103"},"nodeType":"YulFunctionCall","src":"14040:62:103"},"nodeType":"YulExpressionStatement","src":"14040:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14133:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14118:3:103"},"nodeType":"YulFunctionCall","src":"14118:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14138:9:103","type":"","value":"INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14111:6:103"},"nodeType":"YulFunctionCall","src":"14111:37:103"},"nodeType":"YulExpressionStatement","src":"14111:37:103"},{"nodeType":"YulAssignment","src":"14157:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14180:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14165:3:103"},"nodeType":"YulFunctionCall","src":"14165:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14157:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1f9b1806d4697b0956752b1032b95647f09da6dcb802b7b2ad16478e69e208e5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13938:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13952:4:103","type":""}],"src":"13787:403:103"},{"body":{"nodeType":"YulBlock","src":"14369:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14397:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14379:6:103"},"nodeType":"YulFunctionCall","src":"14379:21:103"},"nodeType":"YulExpressionStatement","src":"14379:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14431:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14416:3:103"},"nodeType":"YulFunctionCall","src":"14416:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14436:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14409:6:103"},"nodeType":"YulFunctionCall","src":"14409:30:103"},"nodeType":"YulExpressionStatement","src":"14409:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14470:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14455:3:103"},"nodeType":"YulFunctionCall","src":"14455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14475:34:103","type":"","value":"ERROR:POC-040:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14448:6:103"},"nodeType":"YulFunctionCall","src":"14448:62:103"},"nodeType":"YulExpressionStatement","src":"14448:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14541:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14526:3:103"},"nodeType":"YulFunctionCall","src":"14526:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14546:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14519:6:103"},"nodeType":"YulFunctionCall","src":"14519:33:103"},"nodeType":"YulExpressionStatement","src":"14519:33:103"},{"nodeType":"YulAssignment","src":"14561:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14584:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14569:3:103"},"nodeType":"YulFunctionCall","src":"14569:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14561:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_292e8e8b2f73338c9d7e6ea8fa7931b8d5344a982f7803b5e8efb3cc6e51eca2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14346:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14360:4:103","type":""}],"src":"14195:399:103"},{"body":{"nodeType":"YulBlock","src":"14773:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14790:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14801:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14783:6:103"},"nodeType":"YulFunctionCall","src":"14783:21:103"},"nodeType":"YulExpressionStatement","src":"14783:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14824:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14835:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14820:3:103"},"nodeType":"YulFunctionCall","src":"14820:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14840:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14813:6:103"},"nodeType":"YulFunctionCall","src":"14813:30:103"},"nodeType":"YulExpressionStatement","src":"14813:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14863:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14874:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14859:3:103"},"nodeType":"YulFunctionCall","src":"14859:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14879:34:103","type":"","value":"ERROR:POC-024:APPLICATION_ACCESS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14852:6:103"},"nodeType":"YulFunctionCall","src":"14852:62:103"},"nodeType":"YulExpressionStatement","src":"14852:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14945:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14930:3:103"},"nodeType":"YulFunctionCall","src":"14930:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14950:10:103","type":"","value":"_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14923:6:103"},"nodeType":"YulFunctionCall","src":"14923:38:103"},"nodeType":"YulExpressionStatement","src":"14923:38:103"},{"nodeType":"YulAssignment","src":"14970:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14993:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14978:3:103"},"nodeType":"YulFunctionCall","src":"14978:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14970:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a0446370afa916c99bdf68c1cd2d63970e57fe3533a05a487ffe2d3441b7439__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14750:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14764:4:103","type":""}],"src":"14599:404:103"},{"body":{"nodeType":"YulBlock","src":"15182:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15199:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15210:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15192:6:103"},"nodeType":"YulFunctionCall","src":"15192:21:103"},"nodeType":"YulExpressionStatement","src":"15192:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15233:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15244:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15229:3:103"},"nodeType":"YulFunctionCall","src":"15229:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15249:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15222:6:103"},"nodeType":"YulFunctionCall","src":"15222:30:103"},"nodeType":"YulExpressionStatement","src":"15222:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15272:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15283:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15268:3:103"},"nodeType":"YulFunctionCall","src":"15268:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15288:34:103","type":"","value":"ERROR:POC-050:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15261:6:103"},"nodeType":"YulFunctionCall","src":"15261:62:103"},"nodeType":"YulExpressionStatement","src":"15261:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15343:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15354:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15339:3:103"},"nodeType":"YulFunctionCall","src":"15339:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15359:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15332:6:103"},"nodeType":"YulFunctionCall","src":"15332:33:103"},"nodeType":"YulExpressionStatement","src":"15332:33:103"},{"nodeType":"YulAssignment","src":"15374:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15397:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15382:3:103"},"nodeType":"YulFunctionCall","src":"15382:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15374:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2c741f933dcdc4a0cc8ca27d6761d563fde507b39184c4ba433c9546d61881f7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15159:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15173:4:103","type":""}],"src":"15008:399:103"},{"body":{"nodeType":"YulBlock","src":"15586:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15614:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15596:6:103"},"nodeType":"YulFunctionCall","src":"15596:21:103"},"nodeType":"YulExpressionStatement","src":"15596:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15648:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15633:3:103"},"nodeType":"YulFunctionCall","src":"15633:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15653:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15626:6:103"},"nodeType":"YulFunctionCall","src":"15626:30:103"},"nodeType":"YulExpressionStatement","src":"15626:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15676:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15687:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15672:3:103"},"nodeType":"YulFunctionCall","src":"15672:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15692:34:103","type":"","value":"ERROR:POC-061:POLICY_WITHOUT_OPE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15665:6:103"},"nodeType":"YulFunctionCall","src":"15665:62:103"},"nodeType":"YulExpressionStatement","src":"15665:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15747:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15758:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15743:3:103"},"nodeType":"YulFunctionCall","src":"15743:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15763:10:103","type":"","value":"N_CLAIMS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15736:6:103"},"nodeType":"YulFunctionCall","src":"15736:38:103"},"nodeType":"YulExpressionStatement","src":"15736:38:103"},{"nodeType":"YulAssignment","src":"15783:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15795:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15806:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15791:3:103"},"nodeType":"YulFunctionCall","src":"15791:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15783:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3053d4e6cfaf833f897a113c773083b437a8e9c0edb9dab9a33e145eda637486__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15563:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15577:4:103","type":""}],"src":"15412:404:103"},{"body":{"nodeType":"YulBlock","src":"15995:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16012:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16023:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16005:6:103"},"nodeType":"YulFunctionCall","src":"16005:21:103"},"nodeType":"YulExpressionStatement","src":"16005:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16046:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16057:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16042:3:103"},"nodeType":"YulFunctionCall","src":"16042:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16062:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16035:6:103"},"nodeType":"YulFunctionCall","src":"16035:30:103"},"nodeType":"YulExpressionStatement","src":"16035:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16085:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16096:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16081:3:103"},"nodeType":"YulFunctionCall","src":"16081:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16101:34:103","type":"","value":"ERROR:POC-019:METADATA_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16074:6:103"},"nodeType":"YulFunctionCall","src":"16074:62:103"},"nodeType":"YulExpressionStatement","src":"16074:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16156:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16167:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16152:3:103"},"nodeType":"YulFunctionCall","src":"16152:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16172:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16145:6:103"},"nodeType":"YulFunctionCall","src":"16145:35:103"},"nodeType":"YulExpressionStatement","src":"16145:35:103"},{"nodeType":"YulAssignment","src":"16189:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16201:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16212:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16197:3:103"},"nodeType":"YulFunctionCall","src":"16197:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16189:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3704f3da0c4404bcf7333b4ad925aa1079f426470842ae45a22540b0335abfe9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15972:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15986:4:103","type":""}],"src":"15821:401:103"},{"body":{"nodeType":"YulBlock","src":"16401:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16418:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16429:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16411:6:103"},"nodeType":"YulFunctionCall","src":"16411:21:103"},"nodeType":"YulExpressionStatement","src":"16411:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16452:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16463:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16448:3:103"},"nodeType":"YulFunctionCall","src":"16448:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16468:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16441:6:103"},"nodeType":"YulFunctionCall","src":"16441:30:103"},"nodeType":"YulExpressionStatement","src":"16441:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16491:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16502:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16487:3:103"},"nodeType":"YulFunctionCall","src":"16487:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16507:34:103","type":"","value":"ERROR:POC-063:CLAIM_STATE_INVALI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16480:6:103"},"nodeType":"YulFunctionCall","src":"16480:62:103"},"nodeType":"YulExpressionStatement","src":"16480:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16562:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16573:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16558:3:103"},"nodeType":"YulFunctionCall","src":"16558:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16578:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16551:6:103"},"nodeType":"YulFunctionCall","src":"16551:31:103"},"nodeType":"YulExpressionStatement","src":"16551:31:103"},{"nodeType":"YulAssignment","src":"16591:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16614:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16599:3:103"},"nodeType":"YulFunctionCall","src":"16599:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16591:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_398a0b35799106343616f5ee2dafb07b4f8a17d7f3221c043c8d1b874d608409__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16378:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16392:4:103","type":""}],"src":"16227:397:103"},{"body":{"nodeType":"YulBlock","src":"16803:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16831:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16813:6:103"},"nodeType":"YulFunctionCall","src":"16813:21:103"},"nodeType":"YulExpressionStatement","src":"16813:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16865:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16850:3:103"},"nodeType":"YulFunctionCall","src":"16850:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16870:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16843:6:103"},"nodeType":"YulFunctionCall","src":"16843:30:103"},"nodeType":"YulExpressionStatement","src":"16843:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16893:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16904:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16889:3:103"},"nodeType":"YulFunctionCall","src":"16889:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16909:34:103","type":"","value":"ERROR:POC-054:CLAIM_STATE_INVALI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16882:6:103"},"nodeType":"YulFunctionCall","src":"16882:62:103"},"nodeType":"YulExpressionStatement","src":"16882:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16964:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16975:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16960:3:103"},"nodeType":"YulFunctionCall","src":"16960:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16980:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16953:6:103"},"nodeType":"YulFunctionCall","src":"16953:31:103"},"nodeType":"YulExpressionStatement","src":"16953:31:103"},{"nodeType":"YulAssignment","src":"16993:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17005:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17016:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17001:3:103"},"nodeType":"YulFunctionCall","src":"17001:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16993:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b4bf107bd938845d3000d9894f4f7c3f232df3de3b36946e82f23aad29c8984__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16780:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16794:4:103","type":""}],"src":"16629:397:103"},{"body":{"nodeType":"YulBlock","src":"17205:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17233:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17215:6:103"},"nodeType":"YulFunctionCall","src":"17215:21:103"},"nodeType":"YulExpressionStatement","src":"17215:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17256:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17267:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17252:3:103"},"nodeType":"YulFunctionCall","src":"17252:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17272:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17245:6:103"},"nodeType":"YulFunctionCall","src":"17245:30:103"},"nodeType":"YulExpressionStatement","src":"17245:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17295:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17306:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17291:3:103"},"nodeType":"YulFunctionCall","src":"17291:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17311:34:103","type":"","value":"ERROR:POC-101:APPLICATION_DOES_N"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17284:6:103"},"nodeType":"YulFunctionCall","src":"17284:62:103"},"nodeType":"YulExpressionStatement","src":"17284:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17366:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17377:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17362:3:103"},"nodeType":"YulFunctionCall","src":"17362:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17382:10:103","type":"","value":"OT_EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17355:6:103"},"nodeType":"YulFunctionCall","src":"17355:38:103"},"nodeType":"YulExpressionStatement","src":"17355:38:103"},{"nodeType":"YulAssignment","src":"17402:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17414:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17425:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17410:3:103"},"nodeType":"YulFunctionCall","src":"17410:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17402:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3da05b0c6fea2f8ac4206180524be50a65b9f5363895b5e6c8aa31db28fb502a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17182:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17196:4:103","type":""}],"src":"17031:404:103"},{"body":{"nodeType":"YulBlock","src":"17614:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17642:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17624:6:103"},"nodeType":"YulFunctionCall","src":"17624:21:103"},"nodeType":"YulExpressionStatement","src":"17624:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17665:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17676:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17661:3:103"},"nodeType":"YulFunctionCall","src":"17661:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17681:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17654:6:103"},"nodeType":"YulFunctionCall","src":"17654:30:103"},"nodeType":"YulExpressionStatement","src":"17654:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17704:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17715:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17700:3:103"},"nodeType":"YulFunctionCall","src":"17700:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17720:34:103","type":"","value":"ERROR:POC-071:POLICY_WITHOUT_OPE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17693:6:103"},"nodeType":"YulFunctionCall","src":"17693:62:103"},"nodeType":"YulExpressionStatement","src":"17693:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17775:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17786:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17771:3:103"},"nodeType":"YulFunctionCall","src":"17771:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17791:10:103","type":"","value":"N_CLAIMS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17764:6:103"},"nodeType":"YulFunctionCall","src":"17764:38:103"},"nodeType":"YulExpressionStatement","src":"17764:38:103"},{"nodeType":"YulAssignment","src":"17811:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17823:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17834:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17819:3:103"},"nodeType":"YulFunctionCall","src":"17819:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17811:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3fcafde1bf77d4ec8dcb626e9696c36e8e5c1a0660b1230d420f1e68bf4ba036__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17591:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17605:4:103","type":""}],"src":"17440:404:103"},{"body":{"nodeType":"YulBlock","src":"18023:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18040:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18051:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18033:6:103"},"nodeType":"YulFunctionCall","src":"18033:21:103"},"nodeType":"YulExpressionStatement","src":"18033:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18074:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18085:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18070:3:103"},"nodeType":"YulFunctionCall","src":"18070:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18090:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18063:6:103"},"nodeType":"YulFunctionCall","src":"18063:30:103"},"nodeType":"YulExpressionStatement","src":"18063:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18113:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18124:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18109:3:103"},"nodeType":"YulFunctionCall","src":"18109:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18129:34:103","type":"","value":"ERROR:POC-104:PAYOUT_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18102:6:103"},"nodeType":"YulFunctionCall","src":"18102:62:103"},"nodeType":"YulExpressionStatement","src":"18102:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18184:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18195:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18180:3:103"},"nodeType":"YulFunctionCall","src":"18180:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18200:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18173:6:103"},"nodeType":"YulFunctionCall","src":"18173:33:103"},"nodeType":"YulExpressionStatement","src":"18173:33:103"},{"nodeType":"YulAssignment","src":"18215:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18227:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18238:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18223:3:103"},"nodeType":"YulFunctionCall","src":"18223:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18215:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3fe79e67d34a91a0798917f8e39194a7499cac6ed14bea4875fa47d7458df812__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18000:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18014:4:103","type":""}],"src":"17849:399:103"},{"body":{"nodeType":"YulBlock","src":"18427:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18444:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18455:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18437:6:103"},"nodeType":"YulFunctionCall","src":"18437:21:103"},"nodeType":"YulExpressionStatement","src":"18437:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18478:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18489:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18474:3:103"},"nodeType":"YulFunctionCall","src":"18474:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18494:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18467:6:103"},"nodeType":"YulFunctionCall","src":"18467:30:103"},"nodeType":"YulExpressionStatement","src":"18467:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18517:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18528:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18513:3:103"},"nodeType":"YulFunctionCall","src":"18513:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18533:34:103","type":"","value":"ERROR:POC-031:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18506:6:103"},"nodeType":"YulFunctionCall","src":"18506:62:103"},"nodeType":"YulExpressionStatement","src":"18506:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18588:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18599:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18584:3:103"},"nodeType":"YulFunctionCall","src":"18584:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18604:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18577:6:103"},"nodeType":"YulFunctionCall","src":"18577:33:103"},"nodeType":"YulExpressionStatement","src":"18577:33:103"},{"nodeType":"YulAssignment","src":"18619:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18642:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18627:3:103"},"nodeType":"YulFunctionCall","src":"18627:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18619:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4478b2e77c23e8ea61028b27bf7e3d9b60113df479aab9238db0e9c1abb71c24__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18404:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18418:4:103","type":""}],"src":"18253:399:103"},{"body":{"nodeType":"YulBlock","src":"18831:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18848:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18859:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18841:6:103"},"nodeType":"YulFunctionCall","src":"18841:21:103"},"nodeType":"YulExpressionStatement","src":"18841:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18882:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18893:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18878:3:103"},"nodeType":"YulFunctionCall","src":"18878:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18898:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18871:6:103"},"nodeType":"YulFunctionCall","src":"18871:30:103"},"nodeType":"YulExpressionStatement","src":"18871:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18921:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18932:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18917:3:103"},"nodeType":"YulFunctionCall","src":"18917:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18937:34:103","type":"","value":"ERROR:POC-103:CLAIM_DOES_NOT_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18910:6:103"},"nodeType":"YulFunctionCall","src":"18910:62:103"},"nodeType":"YulExpressionStatement","src":"18910:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19003:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18988:3:103"},"nodeType":"YulFunctionCall","src":"18988:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19008:4:103","type":"","value":"ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18981:6:103"},"nodeType":"YulFunctionCall","src":"18981:32:103"},"nodeType":"YulExpressionStatement","src":"18981:32:103"},{"nodeType":"YulAssignment","src":"19022:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19034:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19045:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19030:3:103"},"nodeType":"YulFunctionCall","src":"19030:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19022:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5153c23cb9f198d7c66f5cc94bb88552d8f24d48aafcfe0e6f3776d7f1f59836__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18808:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18822:4:103","type":""}],"src":"18657:398:103"},{"body":{"nodeType":"YulBlock","src":"19234:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19262:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19244:6:103"},"nodeType":"YulFunctionCall","src":"19244:21:103"},"nodeType":"YulExpressionStatement","src":"19244:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19285:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19296:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19281:3:103"},"nodeType":"YulFunctionCall","src":"19281:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19301:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19274:6:103"},"nodeType":"YulFunctionCall","src":"19274:30:103"},"nodeType":"YulExpressionStatement","src":"19274:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19324:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19335:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19320:3:103"},"nodeType":"YulFunctionCall","src":"19320:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19340:34:103","type":"","value":"ERROR:POC-028:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19313:6:103"},"nodeType":"YulFunctionCall","src":"19313:62:103"},"nodeType":"YulExpressionStatement","src":"19313:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19395:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19406:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19391:3:103"},"nodeType":"YulFunctionCall","src":"19391:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19411:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19384:6:103"},"nodeType":"YulFunctionCall","src":"19384:33:103"},"nodeType":"YulExpressionStatement","src":"19384:33:103"},{"nodeType":"YulAssignment","src":"19426:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19438:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19449:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19434:3:103"},"nodeType":"YulFunctionCall","src":"19434:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19426:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_53d931fec3ed7a0ddc013521fad1f76a8f8e8de81d5c8c7f76a59d6fa698eba1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19211:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19225:4:103","type":""}],"src":"19060:399:103"},{"body":{"nodeType":"YulBlock","src":"19638:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19655:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19666:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19648:6:103"},"nodeType":"YulFunctionCall","src":"19648:21:103"},"nodeType":"YulExpressionStatement","src":"19648:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19689:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19700:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19685:3:103"},"nodeType":"YulFunctionCall","src":"19685:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19705:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19678:6:103"},"nodeType":"YulFunctionCall","src":"19678:30:103"},"nodeType":"YulExpressionStatement","src":"19678:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19728:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19739:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19724:3:103"},"nodeType":"YulFunctionCall","src":"19724:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19744:34:103","type":"","value":"ERROR:POC-091:POLICY_WITHOUT_OPE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19717:6:103"},"nodeType":"YulFunctionCall","src":"19717:62:103"},"nodeType":"YulExpressionStatement","src":"19717:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19810:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19795:3:103"},"nodeType":"YulFunctionCall","src":"19795:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19815:10:103","type":"","value":"N_CLAIMS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19788:6:103"},"nodeType":"YulFunctionCall","src":"19788:38:103"},"nodeType":"YulExpressionStatement","src":"19788:38:103"},{"nodeType":"YulAssignment","src":"19835:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19847:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19858:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19843:3:103"},"nodeType":"YulFunctionCall","src":"19843:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19835:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_56e2f09f25415e91cf31d4547c2e56eb6e29b71cb0dd85b313fae192ba276a63__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19615:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19629:4:103","type":""}],"src":"19464:404:103"},{"body":{"nodeType":"YulBlock","src":"20047:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20075:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20057:6:103"},"nodeType":"YulFunctionCall","src":"20057:21:103"},"nodeType":"YulExpressionStatement","src":"20057:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20098:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20109:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20094:3:103"},"nodeType":"YulFunctionCall","src":"20094:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20114:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20087:6:103"},"nodeType":"YulFunctionCall","src":"20087:30:103"},"nodeType":"YulExpressionStatement","src":"20087:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20137:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20148:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20133:3:103"},"nodeType":"YulFunctionCall","src":"20133:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20153:34:103","type":"","value":"ERROR:POC-080:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20126:6:103"},"nodeType":"YulFunctionCall","src":"20126:62:103"},"nodeType":"YulExpressionStatement","src":"20126:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20208:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20219:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20204:3:103"},"nodeType":"YulFunctionCall","src":"20204:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20224:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20197:6:103"},"nodeType":"YulFunctionCall","src":"20197:33:103"},"nodeType":"YulExpressionStatement","src":"20197:33:103"},{"nodeType":"YulAssignment","src":"20239:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20262:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20247:3:103"},"nodeType":"YulFunctionCall","src":"20247:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20239:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5a5a889abcf6c19c8dc84442c08bf7a95a45a161f8d31bee9415eee17c6af67a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20024:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20038:4:103","type":""}],"src":"19873:399:103"},{"body":{"nodeType":"YulBlock","src":"20451:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20468:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20479:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20461:6:103"},"nodeType":"YulFunctionCall","src":"20461:21:103"},"nodeType":"YulExpressionStatement","src":"20461:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20502:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20513:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20498:3:103"},"nodeType":"YulFunctionCall","src":"20498:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20518:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20491:6:103"},"nodeType":"YulFunctionCall","src":"20491:30:103"},"nodeType":"YulExpressionStatement","src":"20491:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20552:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20537:3:103"},"nodeType":"YulFunctionCall","src":"20537:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20557:34:103","type":"","value":"ERROR:POC-052:PAYOUT_MAX_AMOUNT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20530:6:103"},"nodeType":"YulFunctionCall","src":"20530:62:103"},"nodeType":"YulExpressionStatement","src":"20530:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20612:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20623:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20608:3:103"},"nodeType":"YulFunctionCall","src":"20608:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20628:10:103","type":"","value":"EXCEEDED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20601:6:103"},"nodeType":"YulFunctionCall","src":"20601:38:103"},"nodeType":"YulExpressionStatement","src":"20601:38:103"},{"nodeType":"YulAssignment","src":"20648:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20660:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20671:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20656:3:103"},"nodeType":"YulFunctionCall","src":"20656:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20648:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5c526d7df7c2530ac59be5bb2670f7e7233e5bcb0ebd99bccf1d2574f9088ff9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20428:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20442:4:103","type":""}],"src":"20277:404:103"},{"body":{"nodeType":"YulBlock","src":"20860:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20888:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20870:6:103"},"nodeType":"YulFunctionCall","src":"20870:21:103"},"nodeType":"YulExpressionStatement","src":"20870:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20911:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20922:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20907:3:103"},"nodeType":"YulFunctionCall","src":"20907:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20927:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20900:6:103"},"nodeType":"YulFunctionCall","src":"20900:30:103"},"nodeType":"YulExpressionStatement","src":"20900:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20950:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20961:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20946:3:103"},"nodeType":"YulFunctionCall","src":"20946:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20966:34:103","type":"","value":"ERROR:POC-053:CLAIM_DOES_NOT_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20939:6:103"},"nodeType":"YulFunctionCall","src":"20939:62:103"},"nodeType":"YulExpressionStatement","src":"20939:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21021:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21032:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21017:3:103"},"nodeType":"YulFunctionCall","src":"21017:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21037:4:103","type":"","value":"ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21010:6:103"},"nodeType":"YulFunctionCall","src":"21010:32:103"},"nodeType":"YulExpressionStatement","src":"21010:32:103"},{"nodeType":"YulAssignment","src":"21051:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21063:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21074:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21059:3:103"},"nodeType":"YulFunctionCall","src":"21059:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21051:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5e811d9572370e9a750a1f2b7c3f07287bed0a618295148d5ac82c856a0f8383__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20837:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20851:4:103","type":""}],"src":"20686:398:103"},{"body":{"nodeType":"YulBlock","src":"21263:235:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21280:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21291:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21273:6:103"},"nodeType":"YulFunctionCall","src":"21273:21:103"},"nodeType":"YulExpressionStatement","src":"21273:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21314:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21325:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21310:3:103"},"nodeType":"YulFunctionCall","src":"21310:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21330:2:103","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21303:6:103"},"nodeType":"YulFunctionCall","src":"21303:30:103"},"nodeType":"YulExpressionStatement","src":"21303:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21353:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21364:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21349:3:103"},"nodeType":"YulFunctionCall","src":"21349:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21369:34:103","type":"","value":"ERROR:POC-042:CLAIM_AMOUNT_EXCEE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21342:6:103"},"nodeType":"YulFunctionCall","src":"21342:62:103"},"nodeType":"YulExpressionStatement","src":"21342:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21424:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21435:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21420:3:103"},"nodeType":"YulFunctionCall","src":"21420:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21440:15:103","type":"","value":"DS_MAX_PAYOUT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21413:6:103"},"nodeType":"YulFunctionCall","src":"21413:43:103"},"nodeType":"YulExpressionStatement","src":"21413:43:103"},{"nodeType":"YulAssignment","src":"21465:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21477:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21488:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21473:3:103"},"nodeType":"YulFunctionCall","src":"21473:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21465:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5fee7969b096be44aa0b06a7d6dca973bac0addbe10f33bf7ae1c3268e370252__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21240:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21254:4:103","type":""}],"src":"21089:409:103"},{"body":{"nodeType":"YulBlock","src":"21677:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21694:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21705:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21687:6:103"},"nodeType":"YulFunctionCall","src":"21687:21:103"},"nodeType":"YulExpressionStatement","src":"21687:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21728:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21739:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21724:3:103"},"nodeType":"YulFunctionCall","src":"21724:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21744:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21717:6:103"},"nodeType":"YulFunctionCall","src":"21717:30:103"},"nodeType":"YulExpressionStatement","src":"21717:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21778:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21763:3:103"},"nodeType":"YulFunctionCall","src":"21763:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21783:34:103","type":"","value":"ERROR:POC-072:CLAIM_DOES_NOT_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21756:6:103"},"nodeType":"YulFunctionCall","src":"21756:62:103"},"nodeType":"YulExpressionStatement","src":"21756:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21838:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21849:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21834:3:103"},"nodeType":"YulFunctionCall","src":"21834:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21854:4:103","type":"","value":"ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21827:6:103"},"nodeType":"YulFunctionCall","src":"21827:32:103"},"nodeType":"YulExpressionStatement","src":"21827:32:103"},{"nodeType":"YulAssignment","src":"21868:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21880:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21891:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21876:3:103"},"nodeType":"YulFunctionCall","src":"21876:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21868:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_66228a7360d9b0fffc4485892145b1c3b51e61093cd4b29b7cfcba5c26002332__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21654:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21668:4:103","type":""}],"src":"21503:398:103"},{"body":{"nodeType":"YulBlock","src":"22080:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22097:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22108:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22090:6:103"},"nodeType":"YulFunctionCall","src":"22090:21:103"},"nodeType":"YulExpressionStatement","src":"22090:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22131:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22142:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22127:3:103"},"nodeType":"YulFunctionCall","src":"22127:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22147:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22120:6:103"},"nodeType":"YulFunctionCall","src":"22120:30:103"},"nodeType":"YulExpressionStatement","src":"22120:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22181:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22166:3:103"},"nodeType":"YulFunctionCall","src":"22166:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22186:34:103","type":"","value":"ERROR:POC-100:METADATA_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22159:6:103"},"nodeType":"YulFunctionCall","src":"22159:62:103"},"nodeType":"YulExpressionStatement","src":"22159:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22252:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22237:3:103"},"nodeType":"YulFunctionCall","src":"22237:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22257:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22230:6:103"},"nodeType":"YulFunctionCall","src":"22230:35:103"},"nodeType":"YulExpressionStatement","src":"22230:35:103"},{"nodeType":"YulAssignment","src":"22274:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22286:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22297:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22282:3:103"},"nodeType":"YulFunctionCall","src":"22282:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22274:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_690f72e367997aa82f823a8f8aab3f2b4ad3e7d36411ad6e690ba049cd7f8970__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22057:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22071:4:103","type":""}],"src":"21906:401:103"},{"body":{"nodeType":"YulBlock","src":"22486:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22503:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22514:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22496:6:103"},"nodeType":"YulFunctionCall","src":"22496:21:103"},"nodeType":"YulExpressionStatement","src":"22496:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22548:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22533:3:103"},"nodeType":"YulFunctionCall","src":"22533:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22553:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22526:6:103"},"nodeType":"YulFunctionCall","src":"22526:30:103"},"nodeType":"YulExpressionStatement","src":"22526:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22576:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22587:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22572:3:103"},"nodeType":"YulFunctionCall","src":"22572:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22592:34:103","type":"","value":"ERROR:POC-030:METADATA_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22565:6:103"},"nodeType":"YulFunctionCall","src":"22565:62:103"},"nodeType":"YulExpressionStatement","src":"22565:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22658:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22643:3:103"},"nodeType":"YulFunctionCall","src":"22643:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22663:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22636:6:103"},"nodeType":"YulFunctionCall","src":"22636:35:103"},"nodeType":"YulExpressionStatement","src":"22636:35:103"},{"nodeType":"YulAssignment","src":"22680:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22692:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22703:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22688:3:103"},"nodeType":"YulFunctionCall","src":"22688:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22680:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6b49b43b480ffcd2d682b90a53947b738e166fa0f45183e37b9a15878efb6017__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22463:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22477:4:103","type":""}],"src":"22312:401:103"},{"body":{"nodeType":"YulBlock","src":"22892:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22909:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22920:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22902:6:103"},"nodeType":"YulFunctionCall","src":"22902:21:103"},"nodeType":"YulExpressionStatement","src":"22902:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22943:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22954:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22939:3:103"},"nodeType":"YulFunctionCall","src":"22939:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22959:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22932:6:103"},"nodeType":"YulFunctionCall","src":"22932:30:103"},"nodeType":"YulExpressionStatement","src":"22932:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22993:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22978:3:103"},"nodeType":"YulFunctionCall","src":"22978:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22998:34:103","type":"","value":"ERROR:POC-010:METADATA_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22971:6:103"},"nodeType":"YulFunctionCall","src":"22971:62:103"},"nodeType":"YulExpressionStatement","src":"22971:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23053:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23064:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23049:3:103"},"nodeType":"YulFunctionCall","src":"23049:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23069:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23042:6:103"},"nodeType":"YulFunctionCall","src":"23042:35:103"},"nodeType":"YulExpressionStatement","src":"23042:35:103"},{"nodeType":"YulAssignment","src":"23086:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23098:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23109:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23094:3:103"},"nodeType":"YulFunctionCall","src":"23094:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23086:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6dd52a7803fdc21b6951089460e3af3aafa2d9d5b5456b70275b97403a595056__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22869:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22883:4:103","type":""}],"src":"22718:401:103"},{"body":{"nodeType":"YulBlock","src":"23298:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23315:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23326:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23308:6:103"},"nodeType":"YulFunctionCall","src":"23308:21:103"},"nodeType":"YulExpressionStatement","src":"23308:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23360:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23345:3:103"},"nodeType":"YulFunctionCall","src":"23345:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23365:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23338:6:103"},"nodeType":"YulFunctionCall","src":"23338:30:103"},"nodeType":"YulExpressionStatement","src":"23338:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23388:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23399:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23384:3:103"},"nodeType":"YulFunctionCall","src":"23384:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23404:34:103","type":"","value":"ERROR:POC-004:METADATA_ALREADY_E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23377:6:103"},"nodeType":"YulFunctionCall","src":"23377:62:103"},"nodeType":"YulExpressionStatement","src":"23377:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23470:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23455:3:103"},"nodeType":"YulFunctionCall","src":"23455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23475:7:103","type":"","value":"XISTS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23448:6:103"},"nodeType":"YulFunctionCall","src":"23448:35:103"},"nodeType":"YulExpressionStatement","src":"23448:35:103"},{"nodeType":"YulAssignment","src":"23492:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23504:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23515:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23500:3:103"},"nodeType":"YulFunctionCall","src":"23500:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23492:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_72d2655fbab03b37603c9b8823922a50adfc2cb818fbcde0bff3db8e97120ce2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23275:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23289:4:103","type":""}],"src":"23124:401:103"},{"body":{"nodeType":"YulBlock","src":"23704:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23721:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23732:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23714:6:103"},"nodeType":"YulFunctionCall","src":"23714:21:103"},"nodeType":"YulExpressionStatement","src":"23714:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23755:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23766:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23751:3:103"},"nodeType":"YulFunctionCall","src":"23751:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23771:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23744:6:103"},"nodeType":"YulFunctionCall","src":"23744:30:103"},"nodeType":"YulExpressionStatement","src":"23744:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23794:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23805:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23790:3:103"},"nodeType":"YulFunctionCall","src":"23790:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23810:34:103","type":"","value":"ERROR:POC-051:POLICY_WITHOUT_OPE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23783:6:103"},"nodeType":"YulFunctionCall","src":"23783:62:103"},"nodeType":"YulExpressionStatement","src":"23783:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23876:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23861:3:103"},"nodeType":"YulFunctionCall","src":"23861:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23881:10:103","type":"","value":"N_CLAIMS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23854:6:103"},"nodeType":"YulFunctionCall","src":"23854:38:103"},"nodeType":"YulExpressionStatement","src":"23854:38:103"},{"nodeType":"YulAssignment","src":"23901:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23913:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23924:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23909:3:103"},"nodeType":"YulFunctionCall","src":"23909:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23901:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_755bab7e4197528963528c11bb57a6268486e588c4c58aa1fdc3941f0ca82461__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23681:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23695:4:103","type":""}],"src":"23530:404:103"},{"body":{"nodeType":"YulBlock","src":"24113:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24130:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24141:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24123:6:103"},"nodeType":"YulFunctionCall","src":"24123:21:103"},"nodeType":"YulExpressionStatement","src":"24123:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24164:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24175:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24160:3:103"},"nodeType":"YulFunctionCall","src":"24160:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24180:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24153:6:103"},"nodeType":"YulFunctionCall","src":"24153:30:103"},"nodeType":"YulExpressionStatement","src":"24153:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24203:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24214:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24199:3:103"},"nodeType":"YulFunctionCall","src":"24199:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24219:34:103","type":"","value":"ERROR:POC-012:PREMIUM_AMOUNT_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24192:6:103"},"nodeType":"YulFunctionCall","src":"24192:62:103"},"nodeType":"YulExpressionStatement","src":"24192:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24274:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24285:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24270:3:103"},"nodeType":"YulFunctionCall","src":"24270:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24290:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24263:6:103"},"nodeType":"YulFunctionCall","src":"24263:31:103"},"nodeType":"YulExpressionStatement","src":"24263:31:103"},{"nodeType":"YulAssignment","src":"24303:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24315:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24326:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24311:3:103"},"nodeType":"YulFunctionCall","src":"24311:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24303:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_78097f0a73eb9c8a0cc0df22ac96ffe69f6d4347e55bf144298e75d504f52626__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24090:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24104:4:103","type":""}],"src":"23939:397:103"},{"body":{"nodeType":"YulBlock","src":"24515:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24532:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24543:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24525:6:103"},"nodeType":"YulFunctionCall","src":"24525:21:103"},"nodeType":"YulExpressionStatement","src":"24525:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24566:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24577:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24562:3:103"},"nodeType":"YulFunctionCall","src":"24562:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24582:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24555:6:103"},"nodeType":"YulFunctionCall","src":"24555:30:103"},"nodeType":"YulExpressionStatement","src":"24555:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24616:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24601:3:103"},"nodeType":"YulFunctionCall","src":"24601:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24621:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24594:6:103"},"nodeType":"YulFunctionCall","src":"24594:62:103"},"nodeType":"YulExpressionStatement","src":"24594:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24676:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24687:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24672:3:103"},"nodeType":"YulFunctionCall","src":"24672:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24692:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24665:6:103"},"nodeType":"YulFunctionCall","src":"24665:44:103"},"nodeType":"YulExpressionStatement","src":"24665:44:103"},{"nodeType":"YulAssignment","src":"24718:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24730:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24741:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24726:3:103"},"nodeType":"YulFunctionCall","src":"24726:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24718:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24492:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24506:4:103","type":""}],"src":"24341:410:103"},{"body":{"nodeType":"YulBlock","src":"24930:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24947:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24958:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24940:6:103"},"nodeType":"YulFunctionCall","src":"24940:21:103"},"nodeType":"YulExpressionStatement","src":"24940:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24981:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24992:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24977:3:103"},"nodeType":"YulFunctionCall","src":"24977:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24997:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24970:6:103"},"nodeType":"YulFunctionCall","src":"24970:30:103"},"nodeType":"YulExpressionStatement","src":"24970:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25020:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25031:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25016:3:103"},"nodeType":"YulFunctionCall","src":"25016:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25036:34:103","type":"","value":"ERROR:POC-070:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25009:6:103"},"nodeType":"YulFunctionCall","src":"25009:62:103"},"nodeType":"YulExpressionStatement","src":"25009:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25091:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25102:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25087:3:103"},"nodeType":"YulFunctionCall","src":"25087:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25107:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25080:6:103"},"nodeType":"YulFunctionCall","src":"25080:33:103"},"nodeType":"YulExpressionStatement","src":"25080:33:103"},{"nodeType":"YulAssignment","src":"25122:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25134:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25145:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25130:3:103"},"nodeType":"YulFunctionCall","src":"25130:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25122:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7ba313180bbdd84742438fe48f9070ad471c0e8441fc547ddd9d43836c05647d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24907:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24921:4:103","type":""}],"src":"24756:399:103"},{"body":{"nodeType":"YulBlock","src":"25334:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25351:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25362:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25344:6:103"},"nodeType":"YulFunctionCall","src":"25344:21:103"},"nodeType":"YulExpressionStatement","src":"25344:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25385:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25396:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25381:3:103"},"nodeType":"YulFunctionCall","src":"25381:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25401:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25374:6:103"},"nodeType":"YulFunctionCall","src":"25374:30:103"},"nodeType":"YulExpressionStatement","src":"25374:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25424:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25435:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25420:3:103"},"nodeType":"YulFunctionCall","src":"25420:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25440:34:103","type":"","value":"ERROR:POC-029:APPLICATION_STATE_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25413:6:103"},"nodeType":"YulFunctionCall","src":"25413:62:103"},"nodeType":"YulExpressionStatement","src":"25413:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25495:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25506:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25491:3:103"},"nodeType":"YulFunctionCall","src":"25491:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25511:9:103","type":"","value":"INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25484:6:103"},"nodeType":"YulFunctionCall","src":"25484:37:103"},"nodeType":"YulExpressionStatement","src":"25484:37:103"},{"nodeType":"YulAssignment","src":"25530:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25553:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25538:3:103"},"nodeType":"YulFunctionCall","src":"25538:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25530:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_812d7a3c3591ae4c026af18cdf37eaa885599baf13a298242cc5ed294cb86aa7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25311:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25325:4:103","type":""}],"src":"25160:403:103"},{"body":{"nodeType":"YulBlock","src":"25742:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25759:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25770:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25752:6:103"},"nodeType":"YulFunctionCall","src":"25752:21:103"},"nodeType":"YulExpressionStatement","src":"25752:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25793:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25804:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25789:3:103"},"nodeType":"YulFunctionCall","src":"25789:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25809:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25782:6:103"},"nodeType":"YulFunctionCall","src":"25782:30:103"},"nodeType":"YulExpressionStatement","src":"25782:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25832:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25843:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25828:3:103"},"nodeType":"YulFunctionCall","src":"25828:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25848:34:103","type":"","value":"ERROR:POC-015:APPLICATION_DOES_N"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25821:6:103"},"nodeType":"YulFunctionCall","src":"25821:62:103"},"nodeType":"YulExpressionStatement","src":"25821:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25914:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25899:3:103"},"nodeType":"YulFunctionCall","src":"25899:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25919:10:103","type":"","value":"OT_EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25892:6:103"},"nodeType":"YulFunctionCall","src":"25892:38:103"},"nodeType":"YulExpressionStatement","src":"25892:38:103"},{"nodeType":"YulAssignment","src":"25939:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25951:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25962:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25947:3:103"},"nodeType":"YulFunctionCall","src":"25947:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25939:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_84d582f54bcbf9ecef49660743d83c5d351adfda381e7de998dfd7253752ca0d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25719:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25733:4:103","type":""}],"src":"25568:404:103"},{"body":{"nodeType":"YulBlock","src":"26151:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26168:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26179:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26161:6:103"},"nodeType":"YulFunctionCall","src":"26161:21:103"},"nodeType":"YulExpressionStatement","src":"26161:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26202:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26213:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26198:3:103"},"nodeType":"YulFunctionCall","src":"26198:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26218:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26191:6:103"},"nodeType":"YulFunctionCall","src":"26191:30:103"},"nodeType":"YulExpressionStatement","src":"26191:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26252:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26237:3:103"},"nodeType":"YulFunctionCall","src":"26237:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26257:34:103","type":"","value":"ERROR:POC-043:CLAIM_ALREADY_EXIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26230:6:103"},"nodeType":"YulFunctionCall","src":"26230:62:103"},"nodeType":"YulExpressionStatement","src":"26230:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26312:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26323:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26308:3:103"},"nodeType":"YulFunctionCall","src":"26308:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26328:4:103","type":"","value":"TS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26301:6:103"},"nodeType":"YulFunctionCall","src":"26301:32:103"},"nodeType":"YulExpressionStatement","src":"26301:32:103"},{"nodeType":"YulAssignment","src":"26342:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26354:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26365:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26350:3:103"},"nodeType":"YulFunctionCall","src":"26350:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26342:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_91872c40feaf252e2b1bb5310507c26c5310a79208576166f8430e887a141a99__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26128:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26142:4:103","type":""}],"src":"25977:398:103"},{"body":{"nodeType":"YulBlock","src":"26554:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26582:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26564:6:103"},"nodeType":"YulFunctionCall","src":"26564:21:103"},"nodeType":"YulExpressionStatement","src":"26564:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26616:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26601:3:103"},"nodeType":"YulFunctionCall","src":"26601:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26621:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26594:6:103"},"nodeType":"YulFunctionCall","src":"26594:30:103"},"nodeType":"YulExpressionStatement","src":"26594:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26655:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26640:3:103"},"nodeType":"YulFunctionCall","src":"26640:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26660:34:103","type":"","value":"ERROR:POC-092:PAYOUT_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26633:6:103"},"nodeType":"YulFunctionCall","src":"26633:62:103"},"nodeType":"YulExpressionStatement","src":"26633:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26715:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26726:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26711:3:103"},"nodeType":"YulFunctionCall","src":"26711:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26731:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26704:6:103"},"nodeType":"YulFunctionCall","src":"26704:33:103"},"nodeType":"YulExpressionStatement","src":"26704:33:103"},{"nodeType":"YulAssignment","src":"26746:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26758:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26769:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26754:3:103"},"nodeType":"YulFunctionCall","src":"26754:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26746:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_93b837b53622deccc674a4295ad216375b944d6d9e4fcced40e36e2aab9aae9d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26531:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26545:4:103","type":""}],"src":"26380:399:103"},{"body":{"nodeType":"YulBlock","src":"26958:244:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26986:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26968:6:103"},"nodeType":"YulFunctionCall","src":"26968:21:103"},"nodeType":"YulExpressionStatement","src":"26968:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27020:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27005:3:103"},"nodeType":"YulFunctionCall","src":"27005:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27025:2:103","type":"","value":"54"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26998:6:103"},"nodeType":"YulFunctionCall","src":"26998:30:103"},"nodeType":"YulExpressionStatement","src":"26998:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27048:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27059:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27044:3:103"},"nodeType":"YulFunctionCall","src":"27044:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27064:34:103","type":"","value":"ERROR:POC-026:APPLICATION_SUM_IN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27037:6:103"},"nodeType":"YulFunctionCall","src":"27037:62:103"},"nodeType":"YulExpressionStatement","src":"27037:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27119:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27130:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27115:3:103"},"nodeType":"YulFunctionCall","src":"27115:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27135:24:103","type":"","value":"SURED_INCREASE_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27108:6:103"},"nodeType":"YulFunctionCall","src":"27108:52:103"},"nodeType":"YulExpressionStatement","src":"27108:52:103"},{"nodeType":"YulAssignment","src":"27169:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27181:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27192:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27177:3:103"},"nodeType":"YulFunctionCall","src":"27177:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27169:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9608b61059ad8bfc78f4d88fdfb884791e53ff59328c8a500c5f1565bd0419e3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26935:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26949:4:103","type":""}],"src":"26784:418:103"},{"body":{"nodeType":"YulBlock","src":"27381:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27398:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27409:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27391:6:103"},"nodeType":"YulFunctionCall","src":"27391:21:103"},"nodeType":"YulExpressionStatement","src":"27391:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27432:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27443:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27428:3:103"},"nodeType":"YulFunctionCall","src":"27428:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27448:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27421:6:103"},"nodeType":"YulFunctionCall","src":"27421:30:103"},"nodeType":"YulExpressionStatement","src":"27421:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27471:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27482:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27467:3:103"},"nodeType":"YulFunctionCall","src":"27467:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27487:34:103","type":"","value":"ERROR:POC-074:CLAIM_WITH_UNPAID_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27460:6:103"},"nodeType":"YulFunctionCall","src":"27460:62:103"},"nodeType":"YulExpressionStatement","src":"27460:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27553:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27538:3:103"},"nodeType":"YulFunctionCall","src":"27538:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27558:9:103","type":"","value":"PAYOUTS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27531:6:103"},"nodeType":"YulFunctionCall","src":"27531:37:103"},"nodeType":"YulExpressionStatement","src":"27531:37:103"},{"nodeType":"YulAssignment","src":"27577:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27589:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27600:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27585:3:103"},"nodeType":"YulFunctionCall","src":"27585:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27577:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_994fcfb46b233054b612c28f28fd225d060ea12c5701f5c87abfbfceffddc86b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27358:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27372:4:103","type":""}],"src":"27207:403:103"},{"body":{"nodeType":"YulBlock","src":"27789:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27806:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27817:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27799:6:103"},"nodeType":"YulFunctionCall","src":"27799:21:103"},"nodeType":"YulExpressionStatement","src":"27799:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27840:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27851:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27836:3:103"},"nodeType":"YulFunctionCall","src":"27836:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27856:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27829:6:103"},"nodeType":"YulFunctionCall","src":"27829:30:103"},"nodeType":"YulExpressionStatement","src":"27829:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27879:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27890:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27875:3:103"},"nodeType":"YulFunctionCall","src":"27875:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27895:34:103","type":"","value":"ERROR:POC-016:APPLICATION_STATE_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27868:6:103"},"nodeType":"YulFunctionCall","src":"27868:62:103"},"nodeType":"YulExpressionStatement","src":"27868:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27950:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27961:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27946:3:103"},"nodeType":"YulFunctionCall","src":"27946:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27966:9:103","type":"","value":"INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27939:6:103"},"nodeType":"YulFunctionCall","src":"27939:37:103"},"nodeType":"YulExpressionStatement","src":"27939:37:103"},{"nodeType":"YulAssignment","src":"27985:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27997:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28008:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27993:3:103"},"nodeType":"YulFunctionCall","src":"27993:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27985:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a28f16b2c92dc01202801f97442d7b5b72a32eaf29ba8288670aca403d1d91c2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27766:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27780:4:103","type":""}],"src":"27615:403:103"},{"body":{"nodeType":"YulBlock","src":"28197:232:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28214:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28225:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28207:6:103"},"nodeType":"YulFunctionCall","src":"28207:21:103"},"nodeType":"YulExpressionStatement","src":"28207:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28259:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28244:3:103"},"nodeType":"YulFunctionCall","src":"28244:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28264:2:103","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28237:6:103"},"nodeType":"YulFunctionCall","src":"28237:30:103"},"nodeType":"YulExpressionStatement","src":"28237:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28287:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28298:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28283:3:103"},"nodeType":"YulFunctionCall","src":"28283:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28303:34:103","type":"","value":"ERROR:POC-013:SUM_INSURED_AMOUNT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28276:6:103"},"nodeType":"YulFunctionCall","src":"28276:62:103"},"nodeType":"YulExpressionStatement","src":"28276:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28358:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28369:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28354:3:103"},"nodeType":"YulFunctionCall","src":"28354:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28374:12:103","type":"","value":"_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28347:6:103"},"nodeType":"YulFunctionCall","src":"28347:40:103"},"nodeType":"YulExpressionStatement","src":"28347:40:103"},{"nodeType":"YulAssignment","src":"28396:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28408:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28419:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28404:3:103"},"nodeType":"YulFunctionCall","src":"28404:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28396:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a96e2ba49a294fb57653f2edea6788990e95e8ccf3f4008e1f67857f31ab7af5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28174:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28188:4:103","type":""}],"src":"28023:406:103"},{"body":{"nodeType":"YulBlock","src":"28608:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28625:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28636:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28618:6:103"},"nodeType":"YulFunctionCall","src":"28618:21:103"},"nodeType":"YulExpressionStatement","src":"28618:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28659:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28670:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28655:3:103"},"nodeType":"YulFunctionCall","src":"28655:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28675:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28648:6:103"},"nodeType":"YulFunctionCall","src":"28648:30:103"},"nodeType":"YulExpressionStatement","src":"28648:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28698:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28709:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28694:3:103"},"nodeType":"YulFunctionCall","src":"28694:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28714:34:103","type":"","value":"ERROR:POC-033:POLICY_HAS_OPEN_CL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28687:6:103"},"nodeType":"YulFunctionCall","src":"28687:62:103"},"nodeType":"YulExpressionStatement","src":"28687:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28769:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28780:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28765:3:103"},"nodeType":"YulFunctionCall","src":"28765:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28785:6:103","type":"","value":"AIMS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28758:6:103"},"nodeType":"YulFunctionCall","src":"28758:34:103"},"nodeType":"YulExpressionStatement","src":"28758:34:103"},{"nodeType":"YulAssignment","src":"28801:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28813:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28824:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28809:3:103"},"nodeType":"YulFunctionCall","src":"28809:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28801:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_abcae8090ad71bdef33e1fc1dca9cb7acc84966fbfb6b6101f386f861bfed9d3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28585:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28599:4:103","type":""}],"src":"28434:400:103"},{"body":{"nodeType":"YulBlock","src":"29013:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29030:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29041:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29023:6:103"},"nodeType":"YulFunctionCall","src":"29023:21:103"},"nodeType":"YulExpressionStatement","src":"29023:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29075:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29060:3:103"},"nodeType":"YulFunctionCall","src":"29060:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29080:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29053:6:103"},"nodeType":"YulFunctionCall","src":"29053:30:103"},"nodeType":"YulExpressionStatement","src":"29053:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29103:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29114:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29099:3:103"},"nodeType":"YulFunctionCall","src":"29099:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29119:30:103","type":"","value":"ERROR:CRC-002:NOT_ON_STORAGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29092:6:103"},"nodeType":"YulFunctionCall","src":"29092:58:103"},"nodeType":"YulExpressionStatement","src":"29092:58:103"},{"nodeType":"YulAssignment","src":"29159:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29171:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29182:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29167:3:103"},"nodeType":"YulFunctionCall","src":"29167:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29159:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28990:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29004:4:103","type":""}],"src":"28839:352:103"},{"body":{"nodeType":"YulBlock","src":"29370:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29398:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29380:6:103"},"nodeType":"YulFunctionCall","src":"29380:21:103"},"nodeType":"YulExpressionStatement","src":"29380:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29421:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29432:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29417:3:103"},"nodeType":"YulFunctionCall","src":"29417:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29437:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29410:6:103"},"nodeType":"YulFunctionCall","src":"29410:30:103"},"nodeType":"YulExpressionStatement","src":"29410:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29460:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29471:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29456:3:103"},"nodeType":"YulFunctionCall","src":"29456:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29476:34:103","type":"","value":"ERROR:POC-060:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29449:6:103"},"nodeType":"YulFunctionCall","src":"29449:62:103"},"nodeType":"YulExpressionStatement","src":"29449:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29531:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29542:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29527:3:103"},"nodeType":"YulFunctionCall","src":"29527:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29547:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29520:6:103"},"nodeType":"YulFunctionCall","src":"29520:33:103"},"nodeType":"YulExpressionStatement","src":"29520:33:103"},{"nodeType":"YulAssignment","src":"29562:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29574:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29585:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29570:3:103"},"nodeType":"YulFunctionCall","src":"29570:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29562:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b41ecb3c73d1bd22f6c59fa2a27979a7be92c595245d732c42c675aea1a608cc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29347:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29361:4:103","type":""}],"src":"29196:399:103"},{"body":{"nodeType":"YulBlock","src":"29774:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29791:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29802:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29784:6:103"},"nodeType":"YulFunctionCall","src":"29784:21:103"},"nodeType":"YulExpressionStatement","src":"29784:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29825:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29836:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29821:3:103"},"nodeType":"YulFunctionCall","src":"29821:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29841:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29814:6:103"},"nodeType":"YulFunctionCall","src":"29814:30:103"},"nodeType":"YulExpressionStatement","src":"29814:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29864:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29875:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29860:3:103"},"nodeType":"YulFunctionCall","src":"29860:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29880:29:103","type":"","value":"ERROR:POL-001:INVALID_OWNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29853:6:103"},"nodeType":"YulFunctionCall","src":"29853:57:103"},"nodeType":"YulExpressionStatement","src":"29853:57:103"},{"nodeType":"YulAssignment","src":"29919:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29931:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29942:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29927:3:103"},"nodeType":"YulFunctionCall","src":"29927:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29919:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b56e7a919624c31e06a250efb3d4a1c8dc2262f50cf44fe416ac86523a45cda1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29751:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29765:4:103","type":""}],"src":"29600:351:103"},{"body":{"nodeType":"YulBlock","src":"30130:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30147:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30158:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30140:6:103"},"nodeType":"YulFunctionCall","src":"30140:21:103"},"nodeType":"YulExpressionStatement","src":"30140:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30181:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30192:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30177:3:103"},"nodeType":"YulFunctionCall","src":"30177:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30197:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30170:6:103"},"nodeType":"YulFunctionCall","src":"30170:30:103"},"nodeType":"YulExpressionStatement","src":"30170:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30231:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30216:3:103"},"nodeType":"YulFunctionCall","src":"30216:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30236:34:103","type":"","value":"ERROR:POC-081:CLAIM_DOES_NOT_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30209:6:103"},"nodeType":"YulFunctionCall","src":"30209:62:103"},"nodeType":"YulExpressionStatement","src":"30209:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30291:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30302:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30287:3:103"},"nodeType":"YulFunctionCall","src":"30287:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30307:4:103","type":"","value":"ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30280:6:103"},"nodeType":"YulFunctionCall","src":"30280:32:103"},"nodeType":"YulExpressionStatement","src":"30280:32:103"},{"nodeType":"YulAssignment","src":"30321:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30333:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30344:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30329:3:103"},"nodeType":"YulFunctionCall","src":"30329:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30321:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_bad351fc3f92fb02e37fe12e8bfff9d2e9a73dc2520d63761873fd147db6724b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30107:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30121:4:103","type":""}],"src":"29956:398:103"},{"body":{"nodeType":"YulBlock","src":"30533:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30550:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30561:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30543:6:103"},"nodeType":"YulFunctionCall","src":"30543:21:103"},"nodeType":"YulExpressionStatement","src":"30543:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30584:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30595:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30580:3:103"},"nodeType":"YulFunctionCall","src":"30580:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30600:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30573:6:103"},"nodeType":"YulFunctionCall","src":"30573:30:103"},"nodeType":"YulExpressionStatement","src":"30573:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30623:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30634:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30619:3:103"},"nodeType":"YulFunctionCall","src":"30619:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30639:31:103","type":"","value":"ERROR:POL-002:INVALID_PRODUCT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30612:6:103"},"nodeType":"YulFunctionCall","src":"30612:59:103"},"nodeType":"YulExpressionStatement","src":"30612:59:103"},{"nodeType":"YulAssignment","src":"30680:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30692:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30703:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30688:3:103"},"nodeType":"YulFunctionCall","src":"30688:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30680:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_be65d387a5e288bbda6f7f29353c4a4177557e85600e7b58dfff26aa731432f1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30510:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30524:4:103","type":""}],"src":"30359:353:103"},{"body":{"nodeType":"YulBlock","src":"30891:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30908:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30919:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30901:6:103"},"nodeType":"YulFunctionCall","src":"30901:21:103"},"nodeType":"YulExpressionStatement","src":"30901:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30953:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30938:3:103"},"nodeType":"YulFunctionCall","src":"30938:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30958:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30931:6:103"},"nodeType":"YulFunctionCall","src":"30931:30:103"},"nodeType":"YulExpressionStatement","src":"30931:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30981:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30992:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30977:3:103"},"nodeType":"YulFunctionCall","src":"30977:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30997:34:103","type":"","value":"ERROR:POL-003:PRODUCT_NOT_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30970:6:103"},"nodeType":"YulFunctionCall","src":"30970:62:103"},"nodeType":"YulExpressionStatement","src":"30970:62:103"},{"nodeType":"YulAssignment","src":"31041:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31053:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31064:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31049:3:103"},"nodeType":"YulFunctionCall","src":"31049:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31041:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_bf94c9406086159fab987519e07ae464f5659ba577264ceb8dcfb2519b4068e5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30868:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30882:4:103","type":""}],"src":"30717:356:103"},{"body":{"nodeType":"YulBlock","src":"31252:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31269:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31280:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31262:6:103"},"nodeType":"YulFunctionCall","src":"31262:21:103"},"nodeType":"YulExpressionStatement","src":"31262:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31303:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31314:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31299:3:103"},"nodeType":"YulFunctionCall","src":"31299:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"31319:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31292:6:103"},"nodeType":"YulFunctionCall","src":"31292:30:103"},"nodeType":"YulExpressionStatement","src":"31292:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31353:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31338:3:103"},"nodeType":"YulFunctionCall","src":"31338:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31358:34:103","type":"","value":"ERROR:POC-082:CLAIM_NOT_CONFIRME"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31331:6:103"},"nodeType":"YulFunctionCall","src":"31331:62:103"},"nodeType":"YulExpressionStatement","src":"31331:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31413:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31424:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31409:3:103"},"nodeType":"YulFunctionCall","src":"31409:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31429:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31402:6:103"},"nodeType":"YulFunctionCall","src":"31402:31:103"},"nodeType":"YulExpressionStatement","src":"31402:31:103"},{"nodeType":"YulAssignment","src":"31442:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31465:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31450:3:103"},"nodeType":"YulFunctionCall","src":"31450:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31442:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_bfc0ba001c33e3f6ca8d92ccec220dc5c2f1e52ae20defc45ca76c02259da5c3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31229:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31243:4:103","type":""}],"src":"31078:397:103"},{"body":{"nodeType":"YulBlock","src":"31654:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31682:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31664:6:103"},"nodeType":"YulFunctionCall","src":"31664:21:103"},"nodeType":"YulExpressionStatement","src":"31664:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31705:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31716:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31701:3:103"},"nodeType":"YulFunctionCall","src":"31701:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"31721:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31694:6:103"},"nodeType":"YulFunctionCall","src":"31694:30:103"},"nodeType":"YulExpressionStatement","src":"31694:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31744:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31755:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31740:3:103"},"nodeType":"YulFunctionCall","src":"31740:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31760:34:103","type":"","value":"ERROR:POC-014:METADATA_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31733:6:103"},"nodeType":"YulFunctionCall","src":"31733:62:103"},"nodeType":"YulExpressionStatement","src":"31733:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31815:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31826:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31811:3:103"},"nodeType":"YulFunctionCall","src":"31811:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"31831:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31804:6:103"},"nodeType":"YulFunctionCall","src":"31804:35:103"},"nodeType":"YulExpressionStatement","src":"31804:35:103"},{"nodeType":"YulAssignment","src":"31848:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31860:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31871:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31856:3:103"},"nodeType":"YulFunctionCall","src":"31856:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31848:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c7b69042e7f6515d560658ee6d1de6d418e69114e700e0b6a50b7b0e552dda1c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31631:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31645:4:103","type":""}],"src":"31480:401:103"},{"body":{"nodeType":"YulBlock","src":"32060:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32077:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32088:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32070:6:103"},"nodeType":"YulFunctionCall","src":"32070:21:103"},"nodeType":"YulExpressionStatement","src":"32070:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32111:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32122:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32107:3:103"},"nodeType":"YulFunctionCall","src":"32107:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"32127:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32100:6:103"},"nodeType":"YulFunctionCall","src":"32100:30:103"},"nodeType":"YulExpressionStatement","src":"32100:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32150:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32161:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32146:3:103"},"nodeType":"YulFunctionCall","src":"32146:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32166:34:103","type":"","value":"ERROR:POC-110:POLICY_DOES_NOT_EX"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32139:6:103"},"nodeType":"YulFunctionCall","src":"32139:62:103"},"nodeType":"YulExpressionStatement","src":"32139:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32221:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32232:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32217:3:103"},"nodeType":"YulFunctionCall","src":"32217:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32237:5:103","type":"","value":"IST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32210:6:103"},"nodeType":"YulFunctionCall","src":"32210:33:103"},"nodeType":"YulExpressionStatement","src":"32210:33:103"},{"nodeType":"YulAssignment","src":"32252:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32264:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32275:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32260:3:103"},"nodeType":"YulFunctionCall","src":"32260:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32252:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c8b70c4aba1c2cd717e92fc9379cd96b59815516b78271810475c67b9507a6b5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32037:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32051:4:103","type":""}],"src":"31886:399:103"},{"body":{"nodeType":"YulBlock","src":"32464:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32481:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32492:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32474:6:103"},"nodeType":"YulFunctionCall","src":"32474:21:103"},"nodeType":"YulExpressionStatement","src":"32474:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32515:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32526:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32511:3:103"},"nodeType":"YulFunctionCall","src":"32511:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"32531:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32504:6:103"},"nodeType":"YulFunctionCall","src":"32504:30:103"},"nodeType":"YulExpressionStatement","src":"32504:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32554:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32565:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32550:3:103"},"nodeType":"YulFunctionCall","src":"32550:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32570:30:103","type":"","value":"ERROR:POC-111:AMOUNT_TOO_BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32543:6:103"},"nodeType":"YulFunctionCall","src":"32543:58:103"},"nodeType":"YulExpressionStatement","src":"32543:58:103"},{"nodeType":"YulAssignment","src":"32610:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32622:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32633:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32618:3:103"},"nodeType":"YulFunctionCall","src":"32618:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32610:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ca128060720b4fcc87482c839fb4ff931d94c5e1cf662666b918d32e6fcfb90c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32441:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32455:4:103","type":""}],"src":"32290:352:103"},{"body":{"nodeType":"YulBlock","src":"32821:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32838:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32849:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32831:6:103"},"nodeType":"YulFunctionCall","src":"32831:21:103"},"nodeType":"YulExpressionStatement","src":"32831:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32872:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32883:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32868:3:103"},"nodeType":"YulFunctionCall","src":"32868:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"32888:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32861:6:103"},"nodeType":"YulFunctionCall","src":"32861:30:103"},"nodeType":"YulExpressionStatement","src":"32861:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32911:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32922:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32907:3:103"},"nodeType":"YulFunctionCall","src":"32907:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32927:34:103","type":"","value":"ERROR:POC-062:CLAIM_DOES_NOT_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32900:6:103"},"nodeType":"YulFunctionCall","src":"32900:62:103"},"nodeType":"YulExpressionStatement","src":"32900:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32993:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32978:3:103"},"nodeType":"YulFunctionCall","src":"32978:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"32998:4:103","type":"","value":"ST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32971:6:103"},"nodeType":"YulFunctionCall","src":"32971:32:103"},"nodeType":"YulExpressionStatement","src":"32971:32:103"},{"nodeType":"YulAssignment","src":"33012:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33024:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33035:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33020:3:103"},"nodeType":"YulFunctionCall","src":"33020:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33012:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_cc0c0ad5317a8bd39d7f7249cfb02b10c5d042b35addbb0f642b415e4905d7e9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32798:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32812:4:103","type":""}],"src":"32647:398:103"},{"body":{"nodeType":"YulBlock","src":"33224:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33252:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33234:6:103"},"nodeType":"YulFunctionCall","src":"33234:21:103"},"nodeType":"YulExpressionStatement","src":"33234:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33275:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33286:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33271:3:103"},"nodeType":"YulFunctionCall","src":"33271:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"33291:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33264:6:103"},"nodeType":"YulFunctionCall","src":"33264:30:103"},"nodeType":"YulExpressionStatement","src":"33264:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33314:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33325:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33310:3:103"},"nodeType":"YulFunctionCall","src":"33310:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33330:34:103","type":"","value":"ERROR:POC-084:PAYOUT_AMOUNT_TOO_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33303:6:103"},"nodeType":"YulFunctionCall","src":"33303:62:103"},"nodeType":"YulExpressionStatement","src":"33303:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33385:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33396:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33381:3:103"},"nodeType":"YulFunctionCall","src":"33381:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33401:5:103","type":"","value":"BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33374:6:103"},"nodeType":"YulFunctionCall","src":"33374:33:103"},"nodeType":"YulExpressionStatement","src":"33374:33:103"},{"nodeType":"YulAssignment","src":"33416:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33428:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33439:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33424:3:103"},"nodeType":"YulFunctionCall","src":"33424:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33416:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_cdac7f3ad598042a4a49afc2907268af0bd86276c34f48886ad7a8f93edf5782__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33201:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33215:4:103","type":""}],"src":"33050:399:103"},{"body":{"nodeType":"YulBlock","src":"33628:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33645:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33656:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33638:6:103"},"nodeType":"YulFunctionCall","src":"33638:21:103"},"nodeType":"YulExpressionStatement","src":"33638:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33679:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33690:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33675:3:103"},"nodeType":"YulFunctionCall","src":"33675:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"33695:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33668:6:103"},"nodeType":"YulFunctionCall","src":"33668:30:103"},"nodeType":"YulExpressionStatement","src":"33668:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33718:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33729:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33714:3:103"},"nodeType":"YulFunctionCall","src":"33714:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33734:34:103","type":"","value":"ERROR:POC-017:APPLICATION_DOES_N"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33707:6:103"},"nodeType":"YulFunctionCall","src":"33707:62:103"},"nodeType":"YulExpressionStatement","src":"33707:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33789:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33800:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33785:3:103"},"nodeType":"YulFunctionCall","src":"33785:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"33805:10:103","type":"","value":"OT_EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33778:6:103"},"nodeType":"YulFunctionCall","src":"33778:38:103"},"nodeType":"YulExpressionStatement","src":"33778:38:103"},{"nodeType":"YulAssignment","src":"33825:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"33837:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"33848:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33833:3:103"},"nodeType":"YulFunctionCall","src":"33833:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"33825:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d48c4714dc35abe5eee68196d3e0333f2895edd4c645d06d442d03e129bca5e5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"33605:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"33619:4:103","type":""}],"src":"33454:404:103"},{"body":{"nodeType":"YulBlock","src":"34037:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34054:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34065:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34047:6:103"},"nodeType":"YulFunctionCall","src":"34047:21:103"},"nodeType":"YulExpressionStatement","src":"34047:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34099:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34084:3:103"},"nodeType":"YulFunctionCall","src":"34084:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"34104:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34077:6:103"},"nodeType":"YulFunctionCall","src":"34077:30:103"},"nodeType":"YulExpressionStatement","src":"34077:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34127:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34138:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34123:3:103"},"nodeType":"YulFunctionCall","src":"34123:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34143:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34116:6:103"},"nodeType":"YulFunctionCall","src":"34116:62:103"},"nodeType":"YulExpressionStatement","src":"34116:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34198:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34209:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34194:3:103"},"nodeType":"YulFunctionCall","src":"34194:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34214:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34187:6:103"},"nodeType":"YulFunctionCall","src":"34187:41:103"},"nodeType":"YulExpressionStatement","src":"34187:41:103"},{"nodeType":"YulAssignment","src":"34237:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34260:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34245:3:103"},"nodeType":"YulFunctionCall","src":"34245:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34237:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34014:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34028:4:103","type":""}],"src":"33863:407:103"},{"body":{"nodeType":"YulBlock","src":"34449:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34466:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34477:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34459:6:103"},"nodeType":"YulFunctionCall","src":"34459:21:103"},"nodeType":"YulExpressionStatement","src":"34459:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34500:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34511:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34496:3:103"},"nodeType":"YulFunctionCall","src":"34496:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"34516:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34489:6:103"},"nodeType":"YulFunctionCall","src":"34489:30:103"},"nodeType":"YulExpressionStatement","src":"34489:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34539:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34550:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34535:3:103"},"nodeType":"YulFunctionCall","src":"34535:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34555:34:103","type":"","value":"ERROR:POC-085:PAYOUT_ALREADY_EXI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34528:6:103"},"nodeType":"YulFunctionCall","src":"34528:62:103"},"nodeType":"YulExpressionStatement","src":"34528:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34610:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34621:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34606:3:103"},"nodeType":"YulFunctionCall","src":"34606:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34626:5:103","type":"","value":"STS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34599:6:103"},"nodeType":"YulFunctionCall","src":"34599:33:103"},"nodeType":"YulExpressionStatement","src":"34599:33:103"},{"nodeType":"YulAssignment","src":"34641:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34653:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34664:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34649:3:103"},"nodeType":"YulFunctionCall","src":"34649:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"34641:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d99e4ac56574361524102dce714b9a80317be2e650f34ab1f2fc06080904a047__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34426:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34440:4:103","type":""}],"src":"34275:399:103"},{"body":{"nodeType":"YulBlock","src":"34853:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34870:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34881:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34863:6:103"},"nodeType":"YulFunctionCall","src":"34863:21:103"},"nodeType":"YulExpressionStatement","src":"34863:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34904:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34915:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34900:3:103"},"nodeType":"YulFunctionCall","src":"34900:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"34920:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34893:6:103"},"nodeType":"YulFunctionCall","src":"34893:30:103"},"nodeType":"YulExpressionStatement","src":"34893:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"34943:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"34954:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34939:3:103"},"nodeType":"YulFunctionCall","src":"34939:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"34959:34:103","type":"","value":"ERROR:CRC-003:NOT_PRODUCT_SERVIC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"34932:6:103"},"nodeType":"YulFunctionCall","src":"34932:62:103"},"nodeType":"YulExpressionStatement","src":"34932:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35014:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35025:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35010:3:103"},"nodeType":"YulFunctionCall","src":"35010:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"35030:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35003:6:103"},"nodeType":"YulFunctionCall","src":"35003:31:103"},"nodeType":"YulExpressionStatement","src":"35003:31:103"},{"nodeType":"YulAssignment","src":"35043:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35066:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35051:3:103"},"nodeType":"YulFunctionCall","src":"35051:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35043:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"34830:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"34844:4:103","type":""}],"src":"34679:397:103"},{"body":{"nodeType":"YulBlock","src":"35255:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35272:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35283:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35265:6:103"},"nodeType":"YulFunctionCall","src":"35265:21:103"},"nodeType":"YulExpressionStatement","src":"35265:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35306:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35317:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35302:3:103"},"nodeType":"YulFunctionCall","src":"35302:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"35322:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35295:6:103"},"nodeType":"YulFunctionCall","src":"35295:30:103"},"nodeType":"YulExpressionStatement","src":"35295:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35345:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35356:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35341:3:103"},"nodeType":"YulFunctionCall","src":"35341:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"35361:34:103","type":"","value":"ERROR:POC-018:APPLICATION_STATE_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35334:6:103"},"nodeType":"YulFunctionCall","src":"35334:62:103"},"nodeType":"YulExpressionStatement","src":"35334:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35427:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35412:3:103"},"nodeType":"YulFunctionCall","src":"35412:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"35432:9:103","type":"","value":"INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35405:6:103"},"nodeType":"YulFunctionCall","src":"35405:37:103"},"nodeType":"YulExpressionStatement","src":"35405:37:103"},{"nodeType":"YulAssignment","src":"35451:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35474:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35459:3:103"},"nodeType":"YulFunctionCall","src":"35459:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35451:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dc44a0f37543fb9791a7c26480d070adcda3855758541b01e4ac627d1640aa56__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35232:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35246:4:103","type":""}],"src":"35081:403:103"},{"body":{"nodeType":"YulBlock","src":"35663:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35691:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35673:6:103"},"nodeType":"YulFunctionCall","src":"35673:21:103"},"nodeType":"YulExpressionStatement","src":"35673:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35714:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35725:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35710:3:103"},"nodeType":"YulFunctionCall","src":"35710:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"35730:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35703:6:103"},"nodeType":"YulFunctionCall","src":"35703:30:103"},"nodeType":"YulExpressionStatement","src":"35703:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35764:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35749:3:103"},"nodeType":"YulFunctionCall","src":"35749:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"35769:34:103","type":"","value":"ERROR:POC-032:POLICY_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35742:6:103"},"nodeType":"YulFunctionCall","src":"35742:62:103"},"nodeType":"YulExpressionStatement","src":"35742:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35824:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35835:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35820:3:103"},"nodeType":"YulFunctionCall","src":"35820:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"35840:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35813:6:103"},"nodeType":"YulFunctionCall","src":"35813:32:103"},"nodeType":"YulExpressionStatement","src":"35813:32:103"},{"nodeType":"YulAssignment","src":"35854:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"35866:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35877:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35862:3:103"},"nodeType":"YulFunctionCall","src":"35862:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"35854:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e68601d261f3b44a01e4c4b719124fdfa4604ec137e1a47c16da8de53440a7a7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"35640:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"35654:4:103","type":""}],"src":"35489:398:103"},{"body":{"nodeType":"YulBlock","src":"36066:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36083:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36094:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36076:6:103"},"nodeType":"YulFunctionCall","src":"36076:21:103"},"nodeType":"YulExpressionStatement","src":"36076:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36117:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36128:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36113:3:103"},"nodeType":"YulFunctionCall","src":"36113:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"36133:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36106:6:103"},"nodeType":"YulFunctionCall","src":"36106:30:103"},"nodeType":"YulExpressionStatement","src":"36106:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36156:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36167:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36152:3:103"},"nodeType":"YulFunctionCall","src":"36152:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"36172:34:103","type":"","value":"ERROR:POC-027:POLICY_ACCESS_INVA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36145:6:103"},"nodeType":"YulFunctionCall","src":"36145:62:103"},"nodeType":"YulExpressionStatement","src":"36145:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36227:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36238:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36223:3:103"},"nodeType":"YulFunctionCall","src":"36223:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"36243:5:103","type":"","value":"LID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36216:6:103"},"nodeType":"YulFunctionCall","src":"36216:33:103"},"nodeType":"YulExpressionStatement","src":"36216:33:103"},{"nodeType":"YulAssignment","src":"36258:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36270:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36281:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36266:3:103"},"nodeType":"YulFunctionCall","src":"36266:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36258:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e6b085463e76c5d0bed11f77af4ff972e49e0aeb9e13803410e9593fb3d5272b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36043:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36057:4:103","type":""}],"src":"35892:399:103"},{"body":{"nodeType":"YulBlock","src":"36470:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36487:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36498:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36480:6:103"},"nodeType":"YulFunctionCall","src":"36480:21:103"},"nodeType":"YulExpressionStatement","src":"36480:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36521:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36532:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36517:3:103"},"nodeType":"YulFunctionCall","src":"36517:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"36537:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36510:6:103"},"nodeType":"YulFunctionCall","src":"36510:30:103"},"nodeType":"YulExpressionStatement","src":"36510:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36560:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36571:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36556:3:103"},"nodeType":"YulFunctionCall","src":"36556:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"36576:34:103","type":"","value":"ERROR:POC-022:APPLICATION_ACCESS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36549:6:103"},"nodeType":"YulFunctionCall","src":"36549:62:103"},"nodeType":"YulExpressionStatement","src":"36549:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36642:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36627:3:103"},"nodeType":"YulFunctionCall","src":"36627:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"36647:10:103","type":"","value":"_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36620:6:103"},"nodeType":"YulFunctionCall","src":"36620:38:103"},"nodeType":"YulExpressionStatement","src":"36620:38:103"},{"nodeType":"YulAssignment","src":"36667:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36679:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36690:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36675:3:103"},"nodeType":"YulFunctionCall","src":"36675:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"36667:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e8784db9a0fb006cb4ae64ab1d8cc2ad3884140ec5a660b5e68045261d428b52__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36447:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36461:4:103","type":""}],"src":"36296:404:103"},{"body":{"nodeType":"YulBlock","src":"36879:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36896:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36907:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36889:6:103"},"nodeType":"YulFunctionCall","src":"36889:21:103"},"nodeType":"YulExpressionStatement","src":"36889:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36930:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36941:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36926:3:103"},"nodeType":"YulFunctionCall","src":"36926:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"36946:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36919:6:103"},"nodeType":"YulFunctionCall","src":"36919:30:103"},"nodeType":"YulExpressionStatement","src":"36919:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"36969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"36980:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36965:3:103"},"nodeType":"YulFunctionCall","src":"36965:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"36985:34:103","type":"","value":"ERROR:POC-020:APPLICATION_DOES_N"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36958:6:103"},"nodeType":"YulFunctionCall","src":"36958:62:103"},"nodeType":"YulExpressionStatement","src":"36958:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37040:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37051:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37036:3:103"},"nodeType":"YulFunctionCall","src":"37036:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"37056:10:103","type":"","value":"OT_EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37029:6:103"},"nodeType":"YulFunctionCall","src":"37029:38:103"},"nodeType":"YulExpressionStatement","src":"37029:38:103"},{"nodeType":"YulAssignment","src":"37076:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37099:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37084:3:103"},"nodeType":"YulFunctionCall","src":"37084:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"37076:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_eb328158e0ed34e58154822f43e033245d25dd37ef2fd43004b775c706f4fcad__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"36856:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"36870:4:103","type":""}],"src":"36705:404:103"},{"body":{"nodeType":"YulBlock","src":"37288:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37316:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37298:6:103"},"nodeType":"YulFunctionCall","src":"37298:21:103"},"nodeType":"YulExpressionStatement","src":"37298:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37339:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37350:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37335:3:103"},"nodeType":"YulFunctionCall","src":"37335:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"37355:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37328:6:103"},"nodeType":"YulFunctionCall","src":"37328:30:103"},"nodeType":"YulExpressionStatement","src":"37328:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37378:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37389:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37374:3:103"},"nodeType":"YulFunctionCall","src":"37374:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"37394:33:103","type":"","value":"ERROR:POC-041:POLICY_NOT_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37367:6:103"},"nodeType":"YulFunctionCall","src":"37367:61:103"},"nodeType":"YulExpressionStatement","src":"37367:61:103"},{"nodeType":"YulAssignment","src":"37437:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37449:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37460:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37445:3:103"},"nodeType":"YulFunctionCall","src":"37445:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"37437:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fd5ce4739c74f225637bb83c85f080775b013e16f83c8f86ac7d7272df93a150__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"37265:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"37279:4:103","type":""}],"src":"37114:355:103"},{"body":{"nodeType":"YulBlock","src":"37633:590:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37650:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37661:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37643:6:103"},"nodeType":"YulFunctionCall","src":"37643:21:103"},"nodeType":"YulExpressionStatement","src":"37643:21:103"},{"nodeType":"YulVariableDeclaration","src":"37673:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"37689:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37683:5:103"},"nodeType":"YulFunctionCall","src":"37683:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"37677:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"37744:2:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"37705:38:103"},"nodeType":"YulFunctionCall","src":"37705:42:103"},"nodeType":"YulExpressionStatement","src":"37705:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37778:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37763:3:103"},"nodeType":"YulFunctionCall","src":"37763:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"37783:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37756:6:103"},"nodeType":"YulFunctionCall","src":"37756:30:103"},"nodeType":"YulExpressionStatement","src":"37756:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37806:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37817:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37802:3:103"},"nodeType":"YulFunctionCall","src":"37802:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"37832:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"37840:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37828:3:103"},"nodeType":"YulFunctionCall","src":"37828:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37822:5:103"},"nodeType":"YulFunctionCall","src":"37822:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37795:6:103"},"nodeType":"YulFunctionCall","src":"37795:50:103"},"nodeType":"YulExpressionStatement","src":"37795:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37876:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37861:3:103"},"nodeType":"YulFunctionCall","src":"37861:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"37891:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"37899:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37887:3:103"},"nodeType":"YulFunctionCall","src":"37887:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37881:5:103"},"nodeType":"YulFunctionCall","src":"37881:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37854:6:103"},"nodeType":"YulFunctionCall","src":"37854:50:103"},"nodeType":"YulExpressionStatement","src":"37854:50:103"},{"nodeType":"YulVariableDeclaration","src":"37913:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"37943:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"37951:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37939:3:103"},"nodeType":"YulFunctionCall","src":"37939:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"37933:5:103"},"nodeType":"YulFunctionCall","src":"37933:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"37917:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"37975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"37986:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37971:3:103"},"nodeType":"YulFunctionCall","src":"37971:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"37992:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"37964:6:103"},"nodeType":"YulFunctionCall","src":"37964:33:103"},"nodeType":"YulExpressionStatement","src":"37964:33:103"},{"nodeType":"YulVariableDeclaration","src":"38006:65:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"38037:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38066:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38051:3:103"},"nodeType":"YulFunctionCall","src":"38051:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"38020:16:103"},"nodeType":"YulFunctionCall","src":"38020:51:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"38010:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38091:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38102:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38087:3:103"},"nodeType":"YulFunctionCall","src":"38087:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38118:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38126:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38114:3:103"},"nodeType":"YulFunctionCall","src":"38114:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38108:5:103"},"nodeType":"YulFunctionCall","src":"38108:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38080:6:103"},"nodeType":"YulFunctionCall","src":"38080:52:103"},"nodeType":"YulExpressionStatement","src":"38080:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38152:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38163:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38148:3:103"},"nodeType":"YulFunctionCall","src":"38148:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38180:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38188:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38176:3:103"},"nodeType":"YulFunctionCall","src":"38176:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38170:5:103"},"nodeType":"YulFunctionCall","src":"38170:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38141:6:103"},"nodeType":"YulFunctionCall","src":"38141:53:103"},"nodeType":"YulExpressionStatement","src":"38141:53:103"},{"nodeType":"YulAssignment","src":"38203:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"38211:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"38203:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Application_$5262_memory_ptr__to_t_struct$_Application_$5262_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"37602:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"37613:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"37624:4:103","type":""}],"src":"37474:749:103"},{"body":{"nodeType":"YulBlock","src":"38375:590:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38392:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38403:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38385:6:103"},"nodeType":"YulFunctionCall","src":"38385:21:103"},"nodeType":"YulExpressionStatement","src":"38385:21:103"},{"nodeType":"YulVariableDeclaration","src":"38415:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38431:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38425:5:103"},"nodeType":"YulFunctionCall","src":"38425:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"38419:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"38486:2:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"38447:38:103"},"nodeType":"YulFunctionCall","src":"38447:42:103"},"nodeType":"YulExpressionStatement","src":"38447:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38520:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38505:3:103"},"nodeType":"YulFunctionCall","src":"38505:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"38525:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38498:6:103"},"nodeType":"YulFunctionCall","src":"38498:30:103"},"nodeType":"YulExpressionStatement","src":"38498:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38548:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38559:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38544:3:103"},"nodeType":"YulFunctionCall","src":"38544:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38574:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38582:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38570:3:103"},"nodeType":"YulFunctionCall","src":"38570:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38564:5:103"},"nodeType":"YulFunctionCall","src":"38564:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38537:6:103"},"nodeType":"YulFunctionCall","src":"38537:50:103"},"nodeType":"YulExpressionStatement","src":"38537:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38607:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38618:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38603:3:103"},"nodeType":"YulFunctionCall","src":"38603:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38633:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38641:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38629:3:103"},"nodeType":"YulFunctionCall","src":"38629:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38623:5:103"},"nodeType":"YulFunctionCall","src":"38623:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38596:6:103"},"nodeType":"YulFunctionCall","src":"38596:50:103"},"nodeType":"YulExpressionStatement","src":"38596:50:103"},{"nodeType":"YulVariableDeclaration","src":"38655:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38685:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38693:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38681:3:103"},"nodeType":"YulFunctionCall","src":"38681:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38675:5:103"},"nodeType":"YulFunctionCall","src":"38675:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"38659:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38717:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38728:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38713:3:103"},"nodeType":"YulFunctionCall","src":"38713:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"38734:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38706:6:103"},"nodeType":"YulFunctionCall","src":"38706:33:103"},"nodeType":"YulExpressionStatement","src":"38706:33:103"},{"nodeType":"YulVariableDeclaration","src":"38748:65:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"38779:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38797:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38808:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38793:3:103"},"nodeType":"YulFunctionCall","src":"38793:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"38762:16:103"},"nodeType":"YulFunctionCall","src":"38762:51:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"38752:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38844:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38829:3:103"},"nodeType":"YulFunctionCall","src":"38829:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38860:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38868:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38856:3:103"},"nodeType":"YulFunctionCall","src":"38856:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38850:5:103"},"nodeType":"YulFunctionCall","src":"38850:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38822:6:103"},"nodeType":"YulFunctionCall","src":"38822:52:103"},"nodeType":"YulExpressionStatement","src":"38822:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"38894:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"38905:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38890:3:103"},"nodeType":"YulFunctionCall","src":"38890:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"38922:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"38930:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"38918:3:103"},"nodeType":"YulFunctionCall","src":"38918:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"38912:5:103"},"nodeType":"YulFunctionCall","src":"38912:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"38883:6:103"},"nodeType":"YulFunctionCall","src":"38883:53:103"},"nodeType":"YulExpressionStatement","src":"38883:53:103"},{"nodeType":"YulAssignment","src":"38945:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"38953:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"38945:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Claim_$5296_memory_ptr__to_t_struct$_Claim_$5296_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"38344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"38355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"38366:4:103","type":""}],"src":"38228:737:103"},{"body":{"nodeType":"YulBlock","src":"39123:649:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39140:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39151:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39133:6:103"},"nodeType":"YulFunctionCall","src":"39133:21:103"},"nodeType":"YulExpressionStatement","src":"39133:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39185:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39170:3:103"},"nodeType":"YulFunctionCall","src":"39170:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39200:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39194:5:103"},"nodeType":"YulFunctionCall","src":"39194:13:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"39217:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"39222:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"39213:3:103"},"nodeType":"YulFunctionCall","src":"39213:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"39226:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"39209:3:103"},"nodeType":"YulFunctionCall","src":"39209:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"39190:3:103"},"nodeType":"YulFunctionCall","src":"39190:39:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39163:6:103"},"nodeType":"YulFunctionCall","src":"39163:67:103"},"nodeType":"YulExpressionStatement","src":"39163:67:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39261:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39246:3:103"},"nodeType":"YulFunctionCall","src":"39246:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39276:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"39284:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39272:3:103"},"nodeType":"YulFunctionCall","src":"39272:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39266:5:103"},"nodeType":"YulFunctionCall","src":"39266:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39239:6:103"},"nodeType":"YulFunctionCall","src":"39239:50:103"},"nodeType":"YulExpressionStatement","src":"39239:50:103"},{"nodeType":"YulVariableDeclaration","src":"39298:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39328:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"39336:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39324:3:103"},"nodeType":"YulFunctionCall","src":"39324:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39318:5:103"},"nodeType":"YulFunctionCall","src":"39318:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"39302:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"39387:12:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"39349:37:103"},"nodeType":"YulFunctionCall","src":"39349:51:103"},"nodeType":"YulExpressionStatement","src":"39349:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39431:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39416:3:103"},"nodeType":"YulFunctionCall","src":"39416:18:103"},{"name":"memberValue0","nodeType":"YulIdentifier","src":"39436:12:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39409:6:103"},"nodeType":"YulFunctionCall","src":"39409:40:103"},"nodeType":"YulExpressionStatement","src":"39409:40:103"},{"nodeType":"YulVariableDeclaration","src":"39458:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39490:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"39498:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39486:3:103"},"nodeType":"YulFunctionCall","src":"39486:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39480:5:103"},"nodeType":"YulFunctionCall","src":"39480:22:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"39462:14:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39522:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39533:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39518:3:103"},"nodeType":"YulFunctionCall","src":"39518:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"39539:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39511:6:103"},"nodeType":"YulFunctionCall","src":"39511:33:103"},"nodeType":"YulExpressionStatement","src":"39511:33:103"},{"nodeType":"YulVariableDeclaration","src":"39553:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"39584:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39615:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39600:3:103"},"nodeType":"YulFunctionCall","src":"39600:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"39567:16:103"},"nodeType":"YulFunctionCall","src":"39567:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"39557:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39640:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39651:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39636:3:103"},"nodeType":"YulFunctionCall","src":"39636:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39667:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"39675:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39663:3:103"},"nodeType":"YulFunctionCall","src":"39663:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39657:5:103"},"nodeType":"YulFunctionCall","src":"39657:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39629:6:103"},"nodeType":"YulFunctionCall","src":"39629:52:103"},"nodeType":"YulExpressionStatement","src":"39629:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39701:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39712:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39697:3:103"},"nodeType":"YulFunctionCall","src":"39697:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39729:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"39737:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39725:3:103"},"nodeType":"YulFunctionCall","src":"39725:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39719:5:103"},"nodeType":"YulFunctionCall","src":"39719:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39690:6:103"},"nodeType":"YulFunctionCall","src":"39690:53:103"},"nodeType":"YulExpressionStatement","src":"39690:53:103"},{"nodeType":"YulAssignment","src":"39752:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"39760:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"39752:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Metadata_$5248_memory_ptr__to_t_struct$_Metadata_$5248_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"39092:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"39103:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"39114:4:103","type":""}],"src":"38970:802:103"},{"body":{"nodeType":"YulBlock","src":"39926:584:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39943:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39954:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39936:6:103"},"nodeType":"YulFunctionCall","src":"39936:21:103"},"nodeType":"YulExpressionStatement","src":"39936:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"39977:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"39988:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"39973:3:103"},"nodeType":"YulFunctionCall","src":"39973:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"39999:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"39993:5:103"},"nodeType":"YulFunctionCall","src":"39993:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"39966:6:103"},"nodeType":"YulFunctionCall","src":"39966:41:103"},"nodeType":"YulExpressionStatement","src":"39966:41:103"},{"nodeType":"YulVariableDeclaration","src":"40016:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40046:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40054:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40042:3:103"},"nodeType":"YulFunctionCall","src":"40042:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40036:5:103"},"nodeType":"YulFunctionCall","src":"40036:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"40020:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"40095:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40113:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40124:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40109:3:103"},"nodeType":"YulFunctionCall","src":"40109:18:103"}],"functionName":{"name":"abi_encode_enum_PayoutState","nodeType":"YulIdentifier","src":"40067:27:103"},"nodeType":"YulFunctionCall","src":"40067:61:103"},"nodeType":"YulExpressionStatement","src":"40067:61:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40148:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40159:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40144:3:103"},"nodeType":"YulFunctionCall","src":"40144:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40174:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40182:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40170:3:103"},"nodeType":"YulFunctionCall","src":"40170:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40164:5:103"},"nodeType":"YulFunctionCall","src":"40164:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40137:6:103"},"nodeType":"YulFunctionCall","src":"40137:50:103"},"nodeType":"YulExpressionStatement","src":"40137:50:103"},{"nodeType":"YulVariableDeclaration","src":"40196:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40228:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40236:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40224:3:103"},"nodeType":"YulFunctionCall","src":"40224:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40218:5:103"},"nodeType":"YulFunctionCall","src":"40218:22:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"40200:14:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40260:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40271:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40256:3:103"},"nodeType":"YulFunctionCall","src":"40256:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"40277:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40249:6:103"},"nodeType":"YulFunctionCall","src":"40249:33:103"},"nodeType":"YulExpressionStatement","src":"40249:33:103"},{"nodeType":"YulVariableDeclaration","src":"40291:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"40322:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40353:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40338:3:103"},"nodeType":"YulFunctionCall","src":"40338:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"40305:16:103"},"nodeType":"YulFunctionCall","src":"40305:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"40295:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40378:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40389:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40374:3:103"},"nodeType":"YulFunctionCall","src":"40374:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40405:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40413:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40401:3:103"},"nodeType":"YulFunctionCall","src":"40401:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40395:5:103"},"nodeType":"YulFunctionCall","src":"40395:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40367:6:103"},"nodeType":"YulFunctionCall","src":"40367:52:103"},"nodeType":"YulExpressionStatement","src":"40367:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40439:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40450:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40435:3:103"},"nodeType":"YulFunctionCall","src":"40435:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40467:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40475:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40463:3:103"},"nodeType":"YulFunctionCall","src":"40463:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40457:5:103"},"nodeType":"YulFunctionCall","src":"40457:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40428:6:103"},"nodeType":"YulFunctionCall","src":"40428:53:103"},"nodeType":"YulExpressionStatement","src":"40428:53:103"},{"nodeType":"YulAssignment","src":"40490:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"40498:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"40490:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Payout_$5310_memory_ptr__to_t_struct$_Payout_$5310_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"39895:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"39906:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"39917:4:103","type":""}],"src":"39777:733:103"},{"body":{"nodeType":"YulBlock","src":"40664:680:103","statements":[{"nodeType":"YulAssignment","src":"40674:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40686:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40697:3:103","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40682:3:103"},"nodeType":"YulFunctionCall","src":"40682:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"40674:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"40710:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40726:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40720:5:103"},"nodeType":"YulFunctionCall","src":"40720:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"40714:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"40780:2:103"}],"functionName":{"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulIdentifier","src":"40742:37:103"},"nodeType":"YulFunctionCall","src":"40742:41:103"},"nodeType":"YulExpressionStatement","src":"40742:41:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40799:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"40810:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40792:6:103"},"nodeType":"YulFunctionCall","src":"40792:21:103"},"nodeType":"YulExpressionStatement","src":"40792:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40844:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40829:3:103"},"nodeType":"YulFunctionCall","src":"40829:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40861:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40869:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40857:3:103"},"nodeType":"YulFunctionCall","src":"40857:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40851:5:103"},"nodeType":"YulFunctionCall","src":"40851:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40822:6:103"},"nodeType":"YulFunctionCall","src":"40822:54:103"},"nodeType":"YulExpressionStatement","src":"40822:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40896:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40907:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40892:3:103"},"nodeType":"YulFunctionCall","src":"40892:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40924:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40932:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40920:3:103"},"nodeType":"YulFunctionCall","src":"40920:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40914:5:103"},"nodeType":"YulFunctionCall","src":"40914:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40885:6:103"},"nodeType":"YulFunctionCall","src":"40885:54:103"},"nodeType":"YulExpressionStatement","src":"40885:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"40959:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"40970:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40955:3:103"},"nodeType":"YulFunctionCall","src":"40955:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"40987:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"40995:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"40983:3:103"},"nodeType":"YulFunctionCall","src":"40983:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"40977:5:103"},"nodeType":"YulFunctionCall","src":"40977:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"40948:6:103"},"nodeType":"YulFunctionCall","src":"40948:54:103"},"nodeType":"YulExpressionStatement","src":"40948:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41022:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41033:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41018:3:103"},"nodeType":"YulFunctionCall","src":"41018:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41050:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"41058:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41046:3:103"},"nodeType":"YulFunctionCall","src":"41046:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41040:5:103"},"nodeType":"YulFunctionCall","src":"41040:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41011:6:103"},"nodeType":"YulFunctionCall","src":"41011:54:103"},"nodeType":"YulExpressionStatement","src":"41011:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41085:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41096:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41081:3:103"},"nodeType":"YulFunctionCall","src":"41081:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41113:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"41121:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41109:3:103"},"nodeType":"YulFunctionCall","src":"41109:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41103:5:103"},"nodeType":"YulFunctionCall","src":"41103:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41074:6:103"},"nodeType":"YulFunctionCall","src":"41074:54:103"},"nodeType":"YulExpressionStatement","src":"41074:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41148:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41159:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41144:3:103"},"nodeType":"YulFunctionCall","src":"41144:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41176:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"41184:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41172:3:103"},"nodeType":"YulFunctionCall","src":"41172:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41166:5:103"},"nodeType":"YulFunctionCall","src":"41166:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41137:6:103"},"nodeType":"YulFunctionCall","src":"41137:54:103"},"nodeType":"YulExpressionStatement","src":"41137:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41211:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41222:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41207:3:103"},"nodeType":"YulFunctionCall","src":"41207:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41239:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"41247:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41235:3:103"},"nodeType":"YulFunctionCall","src":"41235:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41229:5:103"},"nodeType":"YulFunctionCall","src":"41229:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41200:6:103"},"nodeType":"YulFunctionCall","src":"41200:54:103"},"nodeType":"YulExpressionStatement","src":"41200:54:103"},{"nodeType":"YulVariableDeclaration","src":"41263:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"41273:6:103","type":"","value":"0x0100"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"41267:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41299:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"41310:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41295:3:103"},"nodeType":"YulFunctionCall","src":"41295:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"41325:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"41333:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41321:3:103"},"nodeType":"YulFunctionCall","src":"41321:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"41315:5:103"},"nodeType":"YulFunctionCall","src":"41315:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41288:6:103"},"nodeType":"YulFunctionCall","src":"41288:50:103"},"nodeType":"YulExpressionStatement","src":"41288:50:103"}]},"name":"abi_encode_tuple_t_struct$_Policy_$5282_memory_ptr__to_t_struct$_Policy_$5282_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"40633:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"40644:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"40655:4:103","type":""}],"src":"40515:829:103"},{"body":{"nodeType":"YulBlock","src":"41450:76:103","statements":[{"nodeType":"YulAssignment","src":"41460:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41472:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41483:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41468:3:103"},"nodeType":"YulFunctionCall","src":"41468:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"41460:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41502:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"41513:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41495:6:103"},"nodeType":"YulFunctionCall","src":"41495:25:103"},"nodeType":"YulExpressionStatement","src":"41495:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"41419:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"41430:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"41441:4:103","type":""}],"src":"41349:177:103"},{"body":{"nodeType":"YulBlock","src":"41804:338:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41821:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"41832:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41814:6:103"},"nodeType":"YulFunctionCall","src":"41814:25:103"},"nodeType":"YulExpressionStatement","src":"41814:25:103"},{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"41876:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41888:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41899:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41884:3:103"},"nodeType":"YulFunctionCall","src":"41884:18:103"}],"functionName":{"name":"abi_encode_enum_PayoutState","nodeType":"YulIdentifier","src":"41848:27:103"},"nodeType":"YulFunctionCall","src":"41848:55:103"},"nodeType":"YulExpressionStatement","src":"41848:55:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41923:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41934:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41919:3:103"},"nodeType":"YulFunctionCall","src":"41919:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"41939:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41912:6:103"},"nodeType":"YulFunctionCall","src":"41912:34:103"},"nodeType":"YulExpressionStatement","src":"41912:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"41966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"41977:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"41962:3:103"},"nodeType":"YulFunctionCall","src":"41962:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"41982:3:103","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"41955:6:103"},"nodeType":"YulFunctionCall","src":"41955:31:103"},"nodeType":"YulExpressionStatement","src":"41955:31:103"},{"nodeType":"YulAssignment","src":"41995:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"42020:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"42043:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42028:3:103"},"nodeType":"YulFunctionCall","src":"42028:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"42003:16:103"},"nodeType":"YulFunctionCall","src":"42003:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"41995:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42068:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"42079:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42064:3:103"},"nodeType":"YulFunctionCall","src":"42064:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"42085:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42057:6:103"},"nodeType":"YulFunctionCall","src":"42057:35:103"},"nodeType":"YulExpressionStatement","src":"42057:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"42112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"42123:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42108:3:103"},"nodeType":"YulFunctionCall","src":"42108:19:103"},{"name":"value5","nodeType":"YulIdentifier","src":"42129:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42101:6:103"},"nodeType":"YulFunctionCall","src":"42101:35:103"},"nodeType":"YulExpressionStatement","src":"42101:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_enum$_PayoutState_$5234_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint256_t_uint8_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"41733:9:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"41744:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"41752:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"41760:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"41768:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"41776:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"41784:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"41795:4:103","type":""}],"src":"41531:611:103"},{"body":{"nodeType":"YulBlock","src":"42195:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"42222:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"42224:16:103"},"nodeType":"YulFunctionCall","src":"42224:18:103"},"nodeType":"YulExpressionStatement","src":"42224:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"42211:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"42218:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"42214:3:103"},"nodeType":"YulFunctionCall","src":"42214:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"42208:2:103"},"nodeType":"YulFunctionCall","src":"42208:13:103"},"nodeType":"YulIf","src":"42205:2:103"},{"nodeType":"YulAssignment","src":"42253:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"42264:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"42267:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42260:3:103"},"nodeType":"YulFunctionCall","src":"42260:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"42253:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"42178:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"42181:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"42187:3:103","type":""}],"src":"42147:128:103"},{"body":{"nodeType":"YulBlock","src":"42329:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"42351:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"42353:16:103"},"nodeType":"YulFunctionCall","src":"42353:18:103"},"nodeType":"YulExpressionStatement","src":"42353:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"42345:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"42348:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"42342:2:103"},"nodeType":"YulFunctionCall","src":"42342:8:103"},"nodeType":"YulIf","src":"42339:2:103"},{"nodeType":"YulAssignment","src":"42382:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"42394:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"42397:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"42390:3:103"},"nodeType":"YulFunctionCall","src":"42390:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"42382:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"42311:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"42314:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"42320:4:103","type":""}],"src":"42280:125:103"},{"body":{"nodeType":"YulBlock","src":"42457:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"42484:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"42486:16:103"},"nodeType":"YulFunctionCall","src":"42486:18:103"},"nodeType":"YulExpressionStatement","src":"42486:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"42477:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"42470:6:103"},"nodeType":"YulFunctionCall","src":"42470:13:103"},"nodeType":"YulIf","src":"42467:2:103"},{"nodeType":"YulAssignment","src":"42515:25:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"42526:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42537:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"42533:3:103"},"nodeType":"YulFunctionCall","src":"42533:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"42522:3:103"},"nodeType":"YulFunctionCall","src":"42522:18:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"42515:3:103"}]}]},"name":"decrement_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"42439:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"42449:3:103","type":""}],"src":"42410:136:103"},{"body":{"nodeType":"YulBlock","src":"42606:325:103","statements":[{"nodeType":"YulAssignment","src":"42616:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"42630:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"42636:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"42626:3:103"},"nodeType":"YulFunctionCall","src":"42626:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"42616:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"42647:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"42677:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"42683:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"42673:3:103"},"nodeType":"YulFunctionCall","src":"42673:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"42651:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"42724:31:103","statements":[{"nodeType":"YulAssignment","src":"42726:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"42740:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"42748:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"42736:3:103"},"nodeType":"YulFunctionCall","src":"42736:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"42726:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"42704:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"42697:6:103"},"nodeType":"YulFunctionCall","src":"42697:26:103"},"nodeType":"YulIf","src":"42694:2:103"},{"body":{"nodeType":"YulBlock","src":"42814:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42835:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42842:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"42847:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"42838:3:103"},"nodeType":"YulFunctionCall","src":"42838:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42828:6:103"},"nodeType":"YulFunctionCall","src":"42828:31:103"},"nodeType":"YulExpressionStatement","src":"42828:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42879:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"42882:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"42872:6:103"},"nodeType":"YulFunctionCall","src":"42872:15:103"},"nodeType":"YulExpressionStatement","src":"42872:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"42907:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"42910:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"42900:6:103"},"nodeType":"YulFunctionCall","src":"42900:15:103"},"nodeType":"YulExpressionStatement","src":"42900:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"42770:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"42793:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"42801:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"42790:2:103"},"nodeType":"YulFunctionCall","src":"42790:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"42767:2:103"},"nodeType":"YulFunctionCall","src":"42767:38:103"},"nodeType":"YulIf","src":"42764:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"42586:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"42595:6:103","type":""}],"src":"42551:380:103"},{"body":{"nodeType":"YulBlock","src":"42983:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"43014:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"43016:16:103"},"nodeType":"YulFunctionCall","src":"43016:18:103"},"nodeType":"YulExpressionStatement","src":"43016:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"42999:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43010:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"43006:3:103"},"nodeType":"YulFunctionCall","src":"43006:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"42996:2:103"},"nodeType":"YulFunctionCall","src":"42996:17:103"},"nodeType":"YulIf","src":"42993:2:103"},{"nodeType":"YulAssignment","src":"43045:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43056:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"43063:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"43052:3:103"},"nodeType":"YulFunctionCall","src":"43052:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"43045:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"42965:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"42975:3:103","type":""}],"src":"42936:135:103"},{"body":{"nodeType":"YulBlock","src":"43108:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43125:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43132:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"43137:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"43128:3:103"},"nodeType":"YulFunctionCall","src":"43128:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43118:6:103"},"nodeType":"YulFunctionCall","src":"43118:31:103"},"nodeType":"YulExpressionStatement","src":"43118:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43165:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"43168:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43158:6:103"},"nodeType":"YulFunctionCall","src":"43158:15:103"},"nodeType":"YulExpressionStatement","src":"43158:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43189:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"43192:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"43182:6:103"},"nodeType":"YulFunctionCall","src":"43182:15:103"},"nodeType":"YulExpressionStatement","src":"43182:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"43076:127:103"},{"body":{"nodeType":"YulBlock","src":"43240:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43257:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43264:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"43269:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"43260:3:103"},"nodeType":"YulFunctionCall","src":"43260:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43250:6:103"},"nodeType":"YulFunctionCall","src":"43250:31:103"},"nodeType":"YulExpressionStatement","src":"43250:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43297:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"43300:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"43290:6:103"},"nodeType":"YulFunctionCall","src":"43290:15:103"},"nodeType":"YulExpressionStatement","src":"43290:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43321:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"43324:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"43314:6:103"},"nodeType":"YulFunctionCall","src":"43314:15:103"},"nodeType":"YulExpressionStatement","src":"43314:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"43208:127:103"},{"body":{"nodeType":"YulBlock","src":"43399:62:103","statements":[{"body":{"nodeType":"YulBlock","src":"43433:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"43435:16:103"},"nodeType":"YulFunctionCall","src":"43435:18:103"},"nodeType":"YulExpressionStatement","src":"43435:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43422:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"43429:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"43419:2:103"},"nodeType":"YulFunctionCall","src":"43419:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"43412:6:103"},"nodeType":"YulFunctionCall","src":"43412:20:103"},"nodeType":"YulIf","src":"43409:2:103"}]},"name":"validator_assert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"43388:5:103","type":""}],"src":"43340:121:103"},{"body":{"nodeType":"YulBlock","src":"43524:62:103","statements":[{"body":{"nodeType":"YulBlock","src":"43558:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"43560:16:103"},"nodeType":"YulFunctionCall","src":"43560:18:103"},"nodeType":"YulExpressionStatement","src":"43560:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43547:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"43554:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"43544:2:103"},"nodeType":"YulFunctionCall","src":"43544:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"43537:6:103"},"nodeType":"YulFunctionCall","src":"43537:20:103"},"nodeType":"YulIf","src":"43534:2:103"}]},"name":"validator_assert_enum_PolicyFlowState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"43513:5:103","type":""}],"src":"43466:120:103"},{"body":{"nodeType":"YulBlock","src":"43636:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"43700:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43709:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"43712:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"43702:6:103"},"nodeType":"YulFunctionCall","src":"43702:12:103"},"nodeType":"YulExpressionStatement","src":"43702:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43659:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"43670:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"43685:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"43690:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"43681:3:103"},"nodeType":"YulFunctionCall","src":"43681:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"43694:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"43677:3:103"},"nodeType":"YulFunctionCall","src":"43677:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"43666:3:103"},"nodeType":"YulFunctionCall","src":"43666:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"43656:2:103"},"nodeType":"YulFunctionCall","src":"43656:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"43649:6:103"},"nodeType":"YulFunctionCall","src":"43649:50:103"},"nodeType":"YulIf","src":"43646:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"43625:5:103","type":""}],"src":"43591:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := end\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(pos, length), 0x20), end)\n }\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_PayoutState(value, pos)\n {\n if iszero(lt(value, 2)) { panic_error_0x21() }\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_uint256_t_address_t_uint256__to_t_uint256_t_address_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n mstore(add(pos, 52), value2)\n end := add(pos, 84)\n }\n function abi_encode_tuple_t_address_t_bytes32_t_uint256_t_enum$_PolicyFlowState_$5217__to_t_address_t_bytes32_t_uint256_t_uint8__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n validator_assert_enum_PolicyFlowState(value3)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_address_t_uint256_t_enum$_PolicyFlowState_$5217_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_address_t_uint256_t_uint8_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n validator_assert_enum_PolicyFlowState(value2)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 192)\n tail := abi_encode_bytes(value3, add(headStart, 192))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_PolicyFlowState_$5217__to_t_bytes32_t_uint8__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n validator_assert_enum_PolicyFlowState(value1)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_enum$_ApplicationState_$5222_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n validator_assert_enum_ApplicationState(value0)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 192)\n tail := abi_encode_bytes(value3, add(headStart, 192))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_t_enum$_ClaimState_$5231_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n validator_assert_enum_ApplicationState(value0)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 192)\n tail := abi_encode_bytes(value3, add(headStart, 192))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function abi_encode_tuple_t_enum$_PolicyState_$5226_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint8_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 288)\n validator_assert_enum_PolicyFlowState(value0)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), value6)\n mstore(add(headStart, 224), value7)\n mstore(add(headStart, 256), value8)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_01bd7262c070b3850d799edbf9ebd39157a9b16f9c9855ee1ca0ecc7e289d2d2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:POC-093:PAYOUT_ALREADY_PAI\")\n mstore(add(headStart, 96), \"DOUT\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0905fdf985363891ad748beb4d4a032395a3ba007421a6945b74e963f9f015fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POC-073:CLAIM_STATE_INVALI\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0accb0c8465e13760989bc709fa6ab7cf10b68fe03957bd6fe9eb47233a41aba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:POC-025:APPLICATION_PREMIU\")\n mstore(add(headStart, 96), \"M_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_12a836dd02d461888166ce18ce5bc78481bf477d1f9ebbf4ce8444ca0e7f0dc1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-083:PAYOUT_AMOUNT_ZERO\")\n mstore(add(headStart, 96), \"_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1ac03beb57c99a65c7942aa68c11e6b91d3cade8654ba7436c76c86f22bcf529__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-102:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1ac75784ff08502543cdff54428e36c01ae4d8ea69e36a455017dee99fa29dc8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-023:POLICY_ALREADY_EXI\")\n mstore(add(headStart, 96), \"STS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1c588baea0842d5c025c2163acf2806d62a81ff4e95e6f6cd3cf1ce8023895b8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-090:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1db96ed0ae0923362061f94230382ef4f079d53202d86c4160c88d024476fc3b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-011:APPLICATION_ALREAD\")\n mstore(add(headStart, 96), \"Y_EXISTS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1f9b1806d4697b0956752b1032b95647f09da6dcb802b7b2ad16478e69e208e5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POC-021:APPLICATION_STATE_\")\n mstore(add(headStart, 96), \"INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_292e8e8b2f73338c9d7e6ea8fa7931b8d5344a982f7803b5e8efb3cc6e51eca2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-040:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2a0446370afa916c99bdf68c1cd2d63970e57fe3533a05a487ffe2d3441b7439__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-024:APPLICATION_ACCESS\")\n mstore(add(headStart, 96), \"_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2c741f933dcdc4a0cc8ca27d6761d563fde507b39184c4ba433c9546d61881f7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-050:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3053d4e6cfaf833f897a113c773083b437a8e9c0edb9dab9a33e145eda637486__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-061:POLICY_WITHOUT_OPE\")\n mstore(add(headStart, 96), \"N_CLAIMS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3704f3da0c4404bcf7333b4ad925aa1079f426470842ae45a22540b0335abfe9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-019:METADATA_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_398a0b35799106343616f5ee2dafb07b4f8a17d7f3221c043c8d1b874d608409__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POC-063:CLAIM_STATE_INVALI\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b4bf107bd938845d3000d9894f4f7c3f232df3de3b36946e82f23aad29c8984__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POC-054:CLAIM_STATE_INVALI\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3da05b0c6fea2f8ac4206180524be50a65b9f5363895b5e6c8aa31db28fb502a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-101:APPLICATION_DOES_N\")\n mstore(add(headStart, 96), \"OT_EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3fcafde1bf77d4ec8dcb626e9696c36e8e5c1a0660b1230d420f1e68bf4ba036__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-071:POLICY_WITHOUT_OPE\")\n mstore(add(headStart, 96), \"N_CLAIMS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3fe79e67d34a91a0798917f8e39194a7499cac6ed14bea4875fa47d7458df812__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-104:PAYOUT_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4478b2e77c23e8ea61028b27bf7e3d9b60113df479aab9238db0e9c1abb71c24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-031:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5153c23cb9f198d7c66f5cc94bb88552d8f24d48aafcfe0e6f3776d7f1f59836__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-103:CLAIM_DOES_NOT_EXI\")\n mstore(add(headStart, 96), \"ST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_53d931fec3ed7a0ddc013521fad1f76a8f8e8de81d5c8c7f76a59d6fa698eba1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-028:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_56e2f09f25415e91cf31d4547c2e56eb6e29b71cb0dd85b313fae192ba276a63__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-091:POLICY_WITHOUT_OPE\")\n mstore(add(headStart, 96), \"N_CLAIMS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5a5a889abcf6c19c8dc84442c08bf7a95a45a161f8d31bee9415eee17c6af67a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-080:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5c526d7df7c2530ac59be5bb2670f7e7233e5bcb0ebd99bccf1d2574f9088ff9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-052:PAYOUT_MAX_AMOUNT_\")\n mstore(add(headStart, 96), \"EXCEEDED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5e811d9572370e9a750a1f2b7c3f07287bed0a618295148d5ac82c856a0f8383__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-053:CLAIM_DOES_NOT_EXI\")\n mstore(add(headStart, 96), \"ST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5fee7969b096be44aa0b06a7d6dca973bac0addbe10f33bf7ae1c3268e370252__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 45)\n mstore(add(headStart, 64), \"ERROR:POC-042:CLAIM_AMOUNT_EXCEE\")\n mstore(add(headStart, 96), \"DS_MAX_PAYOUT\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_66228a7360d9b0fffc4485892145b1c3b51e61093cd4b29b7cfcba5c26002332__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-072:CLAIM_DOES_NOT_EXI\")\n mstore(add(headStart, 96), \"ST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_690f72e367997aa82f823a8f8aab3f2b4ad3e7d36411ad6e690ba049cd7f8970__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-100:METADATA_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6b49b43b480ffcd2d682b90a53947b738e166fa0f45183e37b9a15878efb6017__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-030:METADATA_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6dd52a7803fdc21b6951089460e3af3aafa2d9d5b5456b70275b97403a595056__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-010:METADATA_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_72d2655fbab03b37603c9b8823922a50adfc2cb818fbcde0bff3db8e97120ce2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-004:METADATA_ALREADY_E\")\n mstore(add(headStart, 96), \"XISTS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_755bab7e4197528963528c11bb57a6268486e588c4c58aa1fdc3941f0ca82461__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-051:POLICY_WITHOUT_OPE\")\n mstore(add(headStart, 96), \"N_CLAIMS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_78097f0a73eb9c8a0cc0df22ac96ffe69f6d4347e55bf144298e75d504f52626__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POC-012:PREMIUM_AMOUNT_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7ba313180bbdd84742438fe48f9070ad471c0e8441fc547ddd9d43836c05647d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-070:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_812d7a3c3591ae4c026af18cdf37eaa885599baf13a298242cc5ed294cb86aa7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POC-029:APPLICATION_STATE_\")\n mstore(add(headStart, 96), \"INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_84d582f54bcbf9ecef49660743d83c5d351adfda381e7de998dfd7253752ca0d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-015:APPLICATION_DOES_N\")\n mstore(add(headStart, 96), \"OT_EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_91872c40feaf252e2b1bb5310507c26c5310a79208576166f8430e887a141a99__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-043:CLAIM_ALREADY_EXIS\")\n mstore(add(headStart, 96), \"TS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_93b837b53622deccc674a4295ad216375b944d6d9e4fcced40e36e2aab9aae9d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-092:PAYOUT_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9608b61059ad8bfc78f4d88fdfb884791e53ff59328c8a500c5f1565bd0419e3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 54)\n mstore(add(headStart, 64), \"ERROR:POC-026:APPLICATION_SUM_IN\")\n mstore(add(headStart, 96), \"SURED_INCREASE_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_994fcfb46b233054b612c28f28fd225d060ea12c5701f5c87abfbfceffddc86b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POC-074:CLAIM_WITH_UNPAID_\")\n mstore(add(headStart, 96), \"PAYOUTS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a28f16b2c92dc01202801f97442d7b5b72a32eaf29ba8288670aca403d1d91c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POC-016:APPLICATION_STATE_\")\n mstore(add(headStart, 96), \"INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a96e2ba49a294fb57653f2edea6788990e95e8ccf3f4008e1f67857f31ab7af5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"ERROR:POC-013:SUM_INSURED_AMOUNT\")\n mstore(add(headStart, 96), \"_TOO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_abcae8090ad71bdef33e1fc1dca9cb7acc84966fbfb6b6101f386f861bfed9d3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:POC-033:POLICY_HAS_OPEN_CL\")\n mstore(add(headStart, 96), \"AIMS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:CRC-002:NOT_ON_STORAGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b41ecb3c73d1bd22f6c59fa2a27979a7be92c595245d732c42c675aea1a608cc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-060:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b56e7a919624c31e06a250efb3d4a1c8dc2262f50cf44fe416ac86523a45cda1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:POL-001:INVALID_OWNER\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bad351fc3f92fb02e37fe12e8bfff9d2e9a73dc2520d63761873fd147db6724b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-081:CLAIM_DOES_NOT_EXI\")\n mstore(add(headStart, 96), \"ST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_be65d387a5e288bbda6f7f29353c4a4177557e85600e7b58dfff26aa731432f1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:POL-002:INVALID_PRODUCT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bf94c9406086159fab987519e07ae464f5659ba577264ceb8dcfb2519b4068e5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:POL-003:PRODUCT_NOT_ACTIVE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bfc0ba001c33e3f6ca8d92ccec220dc5c2f1e52ae20defc45ca76c02259da5c3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POC-082:CLAIM_NOT_CONFIRME\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c7b69042e7f6515d560658ee6d1de6d418e69114e700e0b6a50b7b0e552dda1c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POC-014:METADATA_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c8b70c4aba1c2cd717e92fc9379cd96b59815516b78271810475c67b9507a6b5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-110:POLICY_DOES_NOT_EX\")\n mstore(add(headStart, 96), \"IST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ca128060720b4fcc87482c839fb4ff931d94c5e1cf662666b918d32e6fcfb90c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:POC-111:AMOUNT_TOO_BIG\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cc0c0ad5317a8bd39d7f7249cfb02b10c5d042b35addbb0f642b415e4905d7e9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-062:CLAIM_DOES_NOT_EXI\")\n mstore(add(headStart, 96), \"ST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_cdac7f3ad598042a4a49afc2907268af0bd86276c34f48886ad7a8f93edf5782__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-084:PAYOUT_AMOUNT_TOO_\")\n mstore(add(headStart, 96), \"BIG\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d48c4714dc35abe5eee68196d3e0333f2895edd4c645d06d442d03e129bca5e5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-017:APPLICATION_DOES_N\")\n mstore(add(headStart, 96), \"OT_EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d99e4ac56574361524102dce714b9a80317be2e650f34ab1f2fc06080904a047__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-085:PAYOUT_ALREADY_EXI\")\n mstore(add(headStart, 96), \"STS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:CRC-003:NOT_PRODUCT_SERVIC\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_dc44a0f37543fb9791a7c26480d070adcda3855758541b01e4ac627d1640aa56__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POC-018:APPLICATION_STATE_\")\n mstore(add(headStart, 96), \"INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e68601d261f3b44a01e4c4b719124fdfa4604ec137e1a47c16da8de53440a7a7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POC-032:POLICY_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e6b085463e76c5d0bed11f77af4ff972e49e0aeb9e13803410e9593fb3d5272b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POC-027:POLICY_ACCESS_INVA\")\n mstore(add(headStart, 96), \"LID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e8784db9a0fb006cb4ae64ab1d8cc2ad3884140ec5a660b5e68045261d428b52__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-022:APPLICATION_ACCESS\")\n mstore(add(headStart, 96), \"_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_eb328158e0ed34e58154822f43e033245d25dd37ef2fd43004b775c706f4fcad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:POC-020:APPLICATION_DOES_N\")\n mstore(add(headStart, 96), \"OT_EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fd5ce4739c74f225637bb83c85f080775b013e16f83c8f86ac7d7272df93a150__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:POC-041:POLICY_NOT_ACTIVE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_struct$_Application_$5262_memory_ptr__to_t_struct$_Application_$5262_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let _1 := mload(value0)\n validator_assert_enum_ApplicationState(_1)\n mstore(add(headStart, 32), _1)\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Claim_$5296_memory_ptr__to_t_struct$_Claim_$5296_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let _1 := mload(value0)\n validator_assert_enum_ApplicationState(_1)\n mstore(add(headStart, 32), _1)\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Metadata_$5248_memory_ptr__to_t_struct$_Metadata_$5248_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), and(mload(value0), sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n let memberValue0 := mload(add(value0, 64))\n validator_assert_enum_PolicyFlowState(memberValue0)\n mstore(add(headStart, 96), memberValue0)\n let memberValue0_1 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Payout_$5310_memory_ptr__to_t_struct$_Payout_$5310_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n let memberValue0 := mload(add(value0, 32))\n abi_encode_enum_PayoutState(memberValue0, add(headStart, 64))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0_1 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Policy_$5282_memory_ptr__to_t_struct$_Policy_$5282_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 288)\n let _1 := mload(value0)\n validator_assert_enum_PolicyFlowState(_1)\n mstore(headStart, _1)\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n let _2 := 0x0100\n mstore(add(headStart, _2), mload(add(value0, _2)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_enum$_PayoutState_$5234_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__to_t_uint256_t_uint8_t_uint256_t_bytes_memory_ptr_t_uint256_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n abi_encode_enum_PayoutState(value1, add(headStart, 32))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 192)\n tail := abi_encode_bytes(value3, add(headStart, 192))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), value5)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function decrement_t_uint256(value) -> ret\n {\n if iszero(value) { panic_error_0x11() }\n ret := add(value, not(0))\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function validator_assert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { panic_error_0x21() }\n }\n function validator_assert_enum_PolicyFlowState(value)\n {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101e55760003560e01c8063a1814a1a1161010f578063c4d66de8116100a2578063e3ebdea511610071578063e3ebdea5146104d8578063eb96cbed146104eb578063ec935668146104fe578063fe64372b14610511576101e5565b8063c4d66de814610420578063cef58f1314610433578063db42b77b14610453578063ddbfd8ef14610466576101e5565b8063adcadb28116100de578063adcadb28146103c7578063b1e25988146103da578063bc506f64146103ed578063be183b1114610400576101e5565b8063a1814a1a1461036c578063a3f685f91461037f578063a427056e1461039f578063a5961b4c146103a7576101e5565b80634e02c63f116101875780637f22c2d9116101565780637f22c2d9146103015780637f29dba21461032157806380f2122c146103345780639e81f96a14610359576101e5565b80634e02c63f146102a35780635c955288146102b65780636780336e146102c95780637122ba06146102dc576101e5565b806347e3b138116101c357806347e3b138146102455780634c14ccc2146102585780634cafa1211461026b5780634cda0de914610290576101e5565b8063296d6c7d146101ea57806330a73da5146101ff578063357f030a14610212575b600080fd5b6101fd6101f83660046141f4565b610524565b005b6101fd61020d366004614266565b6107a6565b6102326102203660046141f4565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b6101fd6102533660046141f4565b610b85565b6101fd6102663660046141f4565b610d4a565b61027e6102793660046141f4565b61104f565b60405161023c9695949392919061440e565b6101fd61029e36600461420c565b611113565b6101fd6102b1366004614266565b6113bb565b6101fd6102c43660046141f4565b611702565b6101fd6102d7366004614291565b6118c3565b6102ef6102ea3660046141f4565b611bac565b60405161023c969594939291906143a4565b61031461030f36600461420c565b611bea565b60405161023c91906144fe565b6101fd61032f36600461420c565b611db2565b61034761034236600461420c565b612157565b60405161023c96959493929190614660565b61027e61036736600461420c565b612196565b61023261037a36600461417a565b6121d5565b61039261038d3660046141f4565b612576565b60405161023c91906145f3565b600854610232565b6103ba6103b53660046141f4565b6126e0565b60405161023c9190614563565b6101fd6103d53660046141f4565b6128a6565b6102326103e83660046141f4565b612b6b565b6103146103fb3660046141f4565b612b80565b61023261040e3660046141f4565b60009081526007602052604090205490565b6101fd61042e36600461413b565b612d40565b61044661044136600461420c565b612ebe565b60405161023c91906145b0565b610232610461366004614291565b613080565b6104c36104743660046141f4565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460089097015460ff90961697949693959293919290919089565b60405161023c9998979695949392919061443c565b6101fd6104e636600461420c565b61346c565b6101fd6104f93660046141f4565b61358f565b61023261050c36600461422d565b6137fe565b6101fd61051f36600461420c565b613b0e565b65506f6c69637960d01b61053781613e6b565b6001600160a01b0316306001600160a01b0316146105705760405162461bcd60e51b815260040161056790614486565b60405180910390fd5b61058a6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146105ba5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546106275760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031393a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546106975760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032303a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff1660038111156106bd57634e487b7160e01b600052602160045260246000fd5b1461071a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032313a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff1990811660031782554260058084018290556002858101805490941617928390558401556040516000805160206147738339815191529161076491879160ff16906143f1565b60405180910390a16040518481527fd38021ec2bcd4d63a80341a60be320a74cd71c01b04a4f7aac74ef6593d8e5e3906020015b60405180910390a150505050565b65506f6c69637960d01b6107b981613e6b565b6001600160a01b0316306001600160a01b0316146107e95760405162461bcd60e51b815260040161056790614486565b6108036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146108335760405162461bcd60e51b8152600401610567906144bd565b600084815260036020526040902060048101541580159061087757506002815460ff16600381111561087557634e487b7160e01b600052602160045260246000fd5b145b6108d45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032343a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b80600201548311156109475760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f432d3032363a4150504c49434154494f4e5f53554d5f494e60448201527514d554915117d25390d4915054d157d253959053125160521b6064820152608401610567565b600085815260046020526040902060078101541580159061098b57506000815460ff16600281111561098957634e487b7160e01b600052602160045260246000fd5b145b6109e35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032373a504f4c4943595f4143434553535f494e564160448201526213125160ea1b6064820152608401610567565b6000851180156109f7575080600201548510155b8015610a0257508385105b610a605760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f432d3032353a4150504c49434154494f4e5f5052454d49556044820152681357d253959053125160ba1b6064820152608401610567565b81600201548414610acc57600282015460408051888152602081019290925281018590527fa749e55ffd0f07193966d7c449d6238c6514c6b3eb5e8ab21b3ea9d94a5c21789060600160405180910390a160028201849055426005808401829055820185905560088201555b81600101548514610b7d57600182015460408051888152602081019290925281018690527f23e948a9dc44669750ea8ea8b7ca46c359534bd0f04e9260408a7e9bf8c7a5569060600160405180910390a1600182810186905542600584015581015460408051888152602081019290925281018690527ff392e5df923d5d0b6d6c6301c53c86e1c75f58c1c637200c3193dd589e5c8a019060600160405180910390a1600181018590554260088201555b505050505050565b65506f6c69637960d01b610b9881613e6b565b6001600160a01b0316306001600160a01b031614610bc85760405162461bcd60e51b815260040161056790614486565b610be26d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610c125760405162461bcd60e51b8152600401610567906144bd565b60008281526004602052604090206007810154610c7d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032383a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff166002811115610ca357634e487b7160e01b600052602160045260246000fd5b14610d005760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032393a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660011781554260088201556040518381527ff1950800da95964fdd42242722ccdfe6d9dc13d5d4dc7eafefeab77373e3c9ec906020015b60405180910390a1505050565b65506f6c69637960d01b610d5d81613e6b565b6001600160a01b0316306001600160a01b031614610d8d5760405162461bcd60e51b815260040161056790614486565b610da76d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610dd75760405162461bcd60e51b8152600401610567906144bd565b6000828152600360208190526040808320815160c08101909252805491929091839160ff90911690811115610e1c57634e487b7160e01b600052602160045260246000fd5b6003811115610e3b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054610e63906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8f906146b8565b8015610edc5780601f10610eb157610100808354040283529160200191610edc565b820191906000526020600020905b815481529060010190602001808311610ebf57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151118015610f2f5750600281516003811115610f2d57634e487b7160e01b600052602160045260246000fd5b145b610f8c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032323a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b6000838152600460205260409020600781015415610ff85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032333a504f4c4943595f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b805460ff191681556020828101516001830155604080840151600584015542600784018190556008840155518581527f0b979eae60510a4a065f45ddd8a0c9af7ba4d241e253b17bdee3043c2fb992e99101610798565b6003602081905260009182526040909120805460018201546002830154938301805460ff9093169491939192611084906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546110b0906146b8565b80156110fd5780601f106110d2576101008083540402835291602001916110fd565b820191906000526020600020905b8154815290600101906020018083116110e057829003601f168201915b5050505050908060040154908060050154905086565b65506f6c69637960d01b61112681613e6b565b6001600160a01b0316306001600160a01b0316146111565760405162461bcd60e51b815260040161056790614486565b6111706d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146111a05760405162461bcd60e51b8152600401610567906144bd565b6000838152600460205260409020600781015461120b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3036303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116112705760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3036313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b6000848152600560209081526040808320868452909152902060048101546112e55760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3036323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561130b57634e487b7160e01b600052602160045260246000fd5b146113625760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3036333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff191660021781554260058201819055600883015560408051868152602081018690527f5ea526dbb5ca484c7716dcc966fdfc289530cc595ebc9ec7bfda25d010d1a2fc91015b60405180910390a15050505050565b65506f6c69637960d01b6113ce81613e6b565b6001600160a01b0316306001600160a01b0316146113fe5760405162461bcd60e51b815260040161056790614486565b6114186d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146114485760405162461bcd60e51b8152600401610567906144bd565b600084815260046020526040902060078101546114b35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3035303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116115185760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b806005015483826006015461152d9190614672565b111561158c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035323a5041594f55545f4d41585f414d4f554e545f604482015267115610d15151115160c21b6064820152608401610567565b6000858152600560209081526040808320878452909152902060048101546116015760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3035333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561162757634e487b7160e01b600052602160045260246000fd5b1461167e5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3035343a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff19166001908117825581018490554260058201556006820180548591906000906116ad908490614672565b909155505042600883015560408051878152602081018790529081018590527fa39b09b76ccf7db94096e2c5a058215f9b2302b85de726e37edb99efdb6fb2c6906060015b60405180910390a1505050505050565b65506f6c69637960d01b61171581613e6b565b6001600160a01b0316306001600160a01b0316146117455760405162461bcd60e51b815260040161056790614486565b61175f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461178f5760405162461bcd60e51b8152600401610567906144bd565b600082815260036020526040902060048101546117ff5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031373a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561182557634e487b7160e01b600052602160045260246000fd5b146118825760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031383a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660021781554260058201556040518381527f67f56ed3a623b73566d40f65cba052fc97ca9df8afb800a885c2a4fe0228c1f890602001610d3d565b65506f6c69637960d01b6118d681613e6b565b6001600160a01b0316306001600160a01b0316146119065760405162461bcd60e51b815260040161056790614486565b6119206d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146119505760405162461bcd60e51b8152600401610567906144bd565b600086815260026020526040902060048101546119bd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b6000878152600360205260409020600481015415611a2e5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031313a4150504c49434154494f4e5f414c52454144604482015267595f45584953545360c01b6064820152608401610567565b60008711611a885760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3031323a5052454d49554d5f414d4f554e545f5a45526044820152604f60f81b6064820152608401610567565b868611611aea5760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a504f432d3031333a53554d5f494e53555245445f414d4f554e5460448201526917d513d3d7d4d350531360b21b6064820152608401610567565b805460ff191681556001810187905560028101869055611b0e60038201868661405b565b504260048201819055600580830182905560028401805460ff1916600117908190559084019190915560405160008051602061477383398151915291611b59918b9160ff16906143f1565b60405180910390a160408051898152602081018990529081018790527f71b9122c9f32160952b44f0e76b53474f59a5cd9b98ccdfb5ff20672fcae34129060600160405180910390a15050505050505050565b600260208190526000918252604090912080546001820154928201546003830180546001600160a01b03909316949360ff90921692611084906146b8565b611c246040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600083815260056020908152604080832085845290915290819020815160c081019092528054829060ff166003811115611c6e57634e487b7160e01b600052602160045260246000fd5b6003811115611c8d57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054611cb5906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce1906146b8565b8015611d2e5780601f10611d0357610100808354040283529160200191611d2e565b820191906000526020600020905b815481529060010190602001808311611d1157829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3130333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b92915050565b65506f6c69637960d01b611dc581613e6b565b6001600160a01b0316306001600160a01b031614611df55760405162461bcd60e51b815260040161056790614486565b611e0f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614611e3f5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154611eaa5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3037303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411611f0f5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3037313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260056020908152604080832086845290915290206004810154611f845760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3037323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff166003811115611faa57634e487b7160e01b600052602160045260246000fd5b1480611fd957506002815460ff166003811115611fd757634e487b7160e01b600052602160045260246000fd5b145b61202f5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3037333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b6001815460ff16600381111561205557634e487b7160e01b600052602160045260246000fd5b148015612069575080600201548160010154145b8061209757506002815460ff16600381111561209557634e487b7160e01b600052602160045260246000fd5b145b6120f35760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3037343a434c41494d5f574954485f554e504149445f6044820152665041594f55545360c81b6064820152608401610567565b805460ff19166003178155426005820155600482018054906000612116836146a1565b909155505042600883015560408051868152602081018690527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016113ac565b60066020908152600092835260408084209091529082529020805460018201546002830154600384018054939460ff90931693919291611084906146b8565b6005602090815260009283526040808420909152908252902080546001820154600283015460038401805460ff909416949293919291611084906146b8565b600065506f6c69637960d01b6121ea81613e6b565b6001600160a01b0316306001600160a01b03161461221a5760405162461bcd60e51b815260040161056790614486565b6122346d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146122645760405162461bcd60e51b8152600401610567906144bd565b6001600160a01b0386166122ba5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a504f4c2d3030313a494e56414c49445f4f574e455200000000006044820152606401610567565b600954604051630e48080360e21b8152600481018790526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122fe57600080fd5b505afa158015612312573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233691906141d4565b6123825760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3030323a494e56414c49445f50524f445543540000006044820152606401610567565b600954604051635e966e4560e01b8152600481018790526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156123c757600080fd5b505afa1580156123db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ff91906142f0565b600681111561241e57634e487b7160e01b600052602160045260246000fd5b1461246b5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030333a50524f445543545f4e4f545f4143544956456044820152606401610567565b612473613f53565b6000818152600260205260409020600481015491935090156124e55760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3030343a4d455441444154415f414c52454144595f45604482015264584953545360d81b6064820152608401610567565b80546001600160a01b0319166001600160a01b0388161781556001810186905560028101805460ff1916905561251f60038201868661405b565b50426004820181905560058201556040517f19c55cd86637a14907bc12064e09bf8dce1ecda9e5d96cae81099f4b8ae1d3c99061256490899086908a9060009061436e565b60405180910390a15050949350505050565b6125c6604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008281526004602052604090819020815161012081019092528054829060ff16600281111561260657634e487b7160e01b600052602160045260246000fd5b600281111561262557634e487b7160e01b600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481525050905060008160e00151116126db5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130323a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b919050565b6127196040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600082815260026020818152604092839020835160c08101855281546001600160a01b0316815260018201549281019290925280830154919390929084019160ff169081111561277957634e487b7160e01b600052602160045260246000fd5b600281111561279857634e487b7160e01b600052602160045260246000fd5b81526020016003820180546127ac906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546127d8906146b8565b80156128255780601f106127fa57610100808354040283529160200191612825565b820191906000526020600020905b81548152906001019060200180831161280857829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3130303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b65506f6c69637960d01b6128b981613e6b565b6001600160a01b0316306001600160a01b0316146128e95760405162461bcd60e51b815260040161056790614486565b6129036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146129335760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546129a05760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3033303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b60008381526004602052604090206007810154612a0b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3033313a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6001815460ff166002811115612a3157634e487b7160e01b600052602160045260246000fd5b14612a895760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3033323a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610567565b600481015415612ae75760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3033333a504f4c4943595f4841535f4f50454e5f434c60448201526341494d5360e01b6064820152608401610567565b8054600260ff19918216811783554260088401819055848201805490931690911791829055600584015560405160008051602061477383398151915291612b3391879160ff16906143f1565b60405180910390a16040518481527f47682aa751cfef9683dc926c2e0547bf1f6345215278ea52b866564017ac9b9c90602001610798565b6000612b7682612576565b6060015192915050565b612bba6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600082815260036020819052604091829020825160c0810190935280549091839160ff1690811115612bfc57634e487b7160e01b600052602160045260246000fd5b6003811115612c1b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054612c43906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612c6f906146b8565b8015612cbc5780601f10612c9157610100808354040283529160200191612cbc565b820191906000526020600020905b815481529060010190602001808311612c9f57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3130313a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b600054610100900460ff1615808015612d605750600054600160ff909116105b80612d7a5750303b158015612d7a575060005460ff166001145b612ddd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610567565b6000805460ff191660011790558015612e00576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055612e2a600090565b6541636365737360d01b14612e6c57612e4b6541636365737360d01b613e6b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b612e74613fb9565b8015612eba576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b612ef86040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6000838152600660209081526040808320858452825291829020825160c0810190935280548352600180820154919284019160ff1690811115612f4b57634e487b7160e01b600052602160045260246000fd5b6001811115612f6a57634e487b7160e01b600052602160045260246000fd5b815260200160028201548152602001600382018054612f88906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612fb4906146b8565b80156130015780601f10612fd657610100808354040283529160200191613001565b820191906000526020600020905b815481529060010190602001808311612fe457829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130343a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600065506f6c69637960d01b61309581613e6b565b6001600160a01b0316306001600160a01b0316146130c55760405162461bcd60e51b815260040161056790614486565b6130df6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461310f5760405162461bcd60e51b8152600401610567906144bd565b6000878152600460205260409020600781015461317a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008881526005602090815260408083208a8452909152902060048101546131ef5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3038313a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff16600381111561321557634e487b7160e01b600052602160045260246000fd5b1461326c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3038323a434c41494d5f4e4f545f434f4e4649524d456044820152601160fa1b6064820152608401610567565b600087116132cd5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3038333a5041594f55545f414d4f554e545f5a45524f60448201526717d253959053125160c21b6064820152608401610567565b80600101548782600201546132e29190614672565b111561333c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038343a5041594f55545f414d4f554e545f544f4f5f60448201526242494760e81b6064820152608401610567565b60008981526007602090815260408083205460068352818420818552909252909120600481015491955090156133c05760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038353a5041594f55545f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b888155600281018890556133d860038201888861405b565b5060018101805460ff191690554260048201819055600582015560008a815260076020526040812080549161340c836146f3565b9091555050426008840155604080518b8152602081018b9052908101869052606081018990527f223e38f266bc310bbf02cc4e1bb6c706af5c7f9710b3edfe17a12f09e44e84a79060800160405180910390a15050505095945050505050565b600082815260046020526040902060078101546134d75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3131303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b80600101548282600201546134ec9190614672565b111561353a5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a504f432d3131313a414d4f554e545f544f4f5f424947000000006044820152606401610567565b8181600201600082825461354e9190614672565b909155505042600882015560408051848152602081018490527f9bb11018b2a92c286be2bb51bd0ed127dadef34cddc2b557270d0f81873e00569101610d3d565b65506f6c69637960d01b6135a281613e6b565b6001600160a01b0316306001600160a01b0316146135d25760405162461bcd60e51b815260040161056790614486565b6135ec6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461361c5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546136895760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031343a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546136f95760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031353a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561371f57634e487b7160e01b600052602160045260246000fd5b1461377c5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031363a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff199081166001178255426005808401829055600285810180549094161792839055840155604051600080516020614773833981519152916137c691879160ff16906143f1565b60405180910390a16040518481527fbf8b120fb15c8c02daac643f4b8d8542610c41f75bda1d3efcc3f7017c9389fc90602001610798565b600065506f6c69637960d01b61381381613e6b565b6001600160a01b0316306001600160a01b0316146138435760405162461bcd60e51b815260040161056790614486565b61385d6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461388d5760405162461bcd60e51b8152600401610567906144bd565b600086815260046020526040902060078101546138f85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3034303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff16600281111561391e57634e487b7160e01b600052602160045260246000fd5b1461396b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a504f432d3034313a504f4c4943595f4e4f545f414354495645006044820152606401610567565b80600501548682600601546139809190614672565b11156139e45760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a504f432d3034323a434c41494d5f414d4f554e545f455843454560448201526c1114d7d3505617d4105653d555609a1b6064820152608401610567565b60038101546000888152600560209081526040808320848452909152902060048101549194509015613a635760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3034333a434c41494d5f414c52454144595f45584953604482015261545360f01b6064820152608401610567565b805460ff1916815560018101879055613a8060038201878761405b565b5042600482018190556005820155600382018054906000613aa0836146f3565b9091555050600482018054906000613ab7836146f3565b909155505042600883015560408051898152602081018690529081018890527f66d0839d281a46de5ca92181ef89787fbf266333fbd1076c0728149b3a5600fa9060600160405180910390a1505050949350505050565b65506f6c69637960d01b613b2181613e6b565b6001600160a01b0316306001600160a01b031614613b515760405162461bcd60e51b815260040161056790614486565b613b6b6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614613b9b5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154613c065760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411613c6b5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3039313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260066020908152604080832086845290915290206004810154613ce15760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039323a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600060018083015460ff1690811115613d0a57634e487b7160e01b600052602160045260246000fd5b14613d635760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3039333a5041594f55545f414c52454144595f5041496044820152631113d55560e21b6064820152608401610567565b6001818101805460ff1916909117905542600582015560408051868152602081018690527f97a4f1df9bfee1535200a1be1da2c502aec16bda67fdaded9c127eaec704b71f910160405180910390a16000858152600560209081526040808320845484529091528120600280840154908201805492939192909190613de9908490614672565b9091555050426005820155600281015460018201541415610b7d57805460ff1916600317815560048301805460019190600090613e2790849061468a565b909155505042600884015581546040805188815260208101929092527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016116f2565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015613eb557600080fd5b505afa158015613ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eed919061415e565b90506001600160a01b0381166126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610567565b6008805460009182613f64836146f3565b9091555050600054600854604080514660208201526201000090930460601b6bffffffffffffffffffffffff191690830152605482015260740160405160208183030381529060405280519060200120905090565b600054610100900460ff166140245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610567565b6140396810dbdb5c1bdb995b9d60ba1b613e6b565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b828054614067906146b8565b90600052602060002090601f01602090048101928261408957600085556140cf565b82601f106140a25782800160ff198235161785556140cf565b828001600101855582156140cf579182015b828111156140cf5782358255916020019190600101906140b4565b506140db9291506140df565b5090565b5b808211156140db57600081556001016140e0565b60008083601f840112614105578182fd5b50813567ffffffffffffffff81111561411c578182fd5b60208301915083602082850101111561413457600080fd5b9250929050565b60006020828403121561414c578081fd5b81356141578161475d565b9392505050565b60006020828403121561416f578081fd5b81516141578161475d565b6000806000806060858703121561418f578283fd5b843561419a8161475d565b935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b6141c8878288016140f4565b95989497509550505050565b6000602082840312156141e5578081fd5b81518015158114614157578182fd5b600060208284031215614205578081fd5b5035919050565b6000806040838503121561421e578182fd5b50508035926020909101359150565b60008060008060608587031215614242578384fd5b8435935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b60008060006060848603121561427a578283fd5b505081359360208301359350604090920135919050565b6000806000806000608086880312156142a8578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8111156142d3578182fd5b6142df888289016140f4565b969995985093965092949392505050565b600060208284031215614301578081fd5b815160078110614157578182fd5b60008151808452815b8181101561433457602081850181015186830182015201614318565b818111156143455782602083870101525b50601f01601f19169290920160200192915050565b6002811061436a5761436a614724565b9052565b6001600160a01b03851681526020810184905260408101839052608081016143958361474d565b82606083015295945050505050565b6001600160a01b03871681526020810186905260006143c28661474d565b85604083015260c060608301526143dc60c083018661430f565b60808301949094525060a00152949350505050565b828152604081016144018361474d565b8260208301529392505050565b60006144198861473a565b87825286602083015285604083015260c060608301526143dc60c083018661430f565b610120810161444a8b61474d565b998152602081019890985260408801969096526060870194909452608086019290925260a085015260c084015260e08301526101009091015290565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825161450f8161473a565b806020840152506020830151604083015260408301516060830152606083015160c0608084015261454360e084018261430f565b9050608084015160a084015260a084015160c08401528091505092915050565b60006020825260018060a01b0383511660208301526020830151604083015260408301516145908161474d565b80606084015250606083015160c0608084015261454360e084018261430f565b6000602082528251602083015260208301516145cf604084018261435a565b5060408301516060830152606083015160c0608084015261454360e084018261430f565b81516101208201906146048161474d565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b60008782526143c2602083018861435a565b600082198211156146855761468561470e565b500190565b60008282101561469c5761469c61470e565b500390565b6000816146b0576146b061470e565b506000190190565b6002810460018216806146cc57607f821691505b602082108114156146ed57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156147075761470761470e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6004811061474a5761474a614724565b50565b6003811061474a5761474a614724565b6001600160a01b038116811461474a57600080fdfe532394c6ec703c4ecf5944bc8f02b410433362f9bdc2f25cd1d7fe45e7edfc59a2646970667358221220aab73debb705ab2b89e919dd01382f96a906dc6199287419144898b6aa0d558764736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1E5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA1814A1A GT PUSH2 0x10F JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE3EBDEA5 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0xEB96CBED EQ PUSH2 0x4EB JUMPI DUP1 PUSH4 0xEC935668 EQ PUSH2 0x4FE JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x511 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x420 JUMPI DUP1 PUSH4 0xCEF58F13 EQ PUSH2 0x433 JUMPI DUP1 PUSH4 0xDB42B77B EQ PUSH2 0x453 JUMPI DUP1 PUSH4 0xDDBFD8EF EQ PUSH2 0x466 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xADCADB28 GT PUSH2 0xDE JUMPI DUP1 PUSH4 0xADCADB28 EQ PUSH2 0x3C7 JUMPI DUP1 PUSH4 0xB1E25988 EQ PUSH2 0x3DA JUMPI DUP1 PUSH4 0xBC506F64 EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0xBE183B11 EQ PUSH2 0x400 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0xA1814A1A EQ PUSH2 0x36C JUMPI DUP1 PUSH4 0xA3F685F9 EQ PUSH2 0x37F JUMPI DUP1 PUSH4 0xA427056E EQ PUSH2 0x39F JUMPI DUP1 PUSH4 0xA5961B4C EQ PUSH2 0x3A7 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x4E02C63F GT PUSH2 0x187 JUMPI DUP1 PUSH4 0x7F22C2D9 GT PUSH2 0x156 JUMPI DUP1 PUSH4 0x7F22C2D9 EQ PUSH2 0x301 JUMPI DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x321 JUMPI DUP1 PUSH4 0x80F2122C EQ PUSH2 0x334 JUMPI DUP1 PUSH4 0x9E81F96A EQ PUSH2 0x359 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x5C955288 EQ PUSH2 0x2B6 JUMPI DUP1 PUSH4 0x6780336E EQ PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x7122BA06 EQ PUSH2 0x2DC JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x47E3B138 GT PUSH2 0x1C3 JUMPI DUP1 PUSH4 0x47E3B138 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x4C14CCC2 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x4CAFA121 EQ PUSH2 0x26B JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x290 JUMPI PUSH2 0x1E5 JUMP JUMPDEST DUP1 PUSH4 0x296D6C7D EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x1FF JUMPI DUP1 PUSH4 0x357F030A EQ PUSH2 0x212 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1FD PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x524 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1FD PUSH2 0x20D CALLDATASIZE PUSH1 0x4 PUSH2 0x4266 JUMP JUMPDEST PUSH2 0x7A6 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x220 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1FD PUSH2 0x253 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0xD4A JUMP JUMPDEST PUSH2 0x27E PUSH2 0x279 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x104F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x440E JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x29E CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1113 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x4266 JUMP JUMPDEST PUSH2 0x13BB JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x1702 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x2D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x4291 JUMP JUMPDEST PUSH2 0x18C3 JUMP JUMPDEST PUSH2 0x2EF PUSH2 0x2EA CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x1BAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x43A4 JUMP JUMPDEST PUSH2 0x314 PUSH2 0x30F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1BEA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x44FE JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x32F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x1DB2 JUMP JUMPDEST PUSH2 0x347 PUSH2 0x342 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2157 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4660 JUMP JUMPDEST PUSH2 0x27E PUSH2 0x367 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2196 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x37A CALLDATASIZE PUSH1 0x4 PUSH2 0x417A JUMP JUMPDEST PUSH2 0x21D5 JUMP JUMPDEST PUSH2 0x392 PUSH2 0x38D CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x45F3 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH2 0x232 JUMP JUMPDEST PUSH2 0x3BA PUSH2 0x3B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x26E0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x4563 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x28A6 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x3E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2B6B JUMP JUMPDEST PUSH2 0x314 PUSH2 0x3FB CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x2B80 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x40E CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x42E CALLDATASIZE PUSH1 0x4 PUSH2 0x413B JUMP JUMPDEST PUSH2 0x2D40 JUMP JUMPDEST PUSH2 0x446 PUSH2 0x441 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x2EBE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x45B0 JUMP JUMPDEST PUSH2 0x232 PUSH2 0x461 CALLDATASIZE PUSH1 0x4 PUSH2 0x4291 JUMP JUMPDEST PUSH2 0x3080 JUMP JUMPDEST PUSH2 0x4C3 PUSH2 0x474 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD SLOAD SWAP5 DUP5 ADD SLOAD PUSH1 0x5 DUP6 ADD SLOAD PUSH1 0x6 DUP7 ADD SLOAD PUSH1 0x7 DUP8 ADD SLOAD PUSH1 0x8 SWAP1 SWAP8 ADD SLOAD PUSH1 0xFF SWAP1 SWAP7 AND SWAP8 SWAP5 SWAP7 SWAP4 SWAP6 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 DUP10 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x23C SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x443C JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x4E6 CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x346C JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x4F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x41F4 JUMP JUMPDEST PUSH2 0x358F JUMP JUMPDEST PUSH2 0x232 PUSH2 0x50C CALLDATASIZE PUSH1 0x4 PUSH2 0x422D JUMP JUMPDEST PUSH2 0x37FE JUMP JUMPDEST PUSH2 0x1FD PUSH2 0x51F CALLDATASIZE PUSH1 0x4 PUSH2 0x420C JUMP JUMPDEST PUSH2 0x3B0E JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x537 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x570 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x58A PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x5BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x627 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031393A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x697 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032303A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x6BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x71A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032313A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x3 OR DUP3 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP6 DUP2 ADD DUP1 SLOAD SWAP1 SWAP5 AND OR SWAP3 DUP4 SWAP1 SSTORE DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x764 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xD38021EC2BCD4D63A80341A60BE320A74CD71C01B04A4F7AAC74EF6593D8E5E3 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x7B9 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x7E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x803 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x833 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x877 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x875 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x8D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032343A4150504C49434154494F4E5F414343455353 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x2 ADD SLOAD DUP4 GT ISZERO PUSH2 0x947 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032363A4150504C49434154494F4E5F53554D5F494E PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x14D554915117D25390D4915054D157D2539590531251 PUSH1 0x52 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD ISZERO DUP1 ISZERO SWAP1 PUSH2 0x98B JUMPI POP PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x989 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x9E3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032373A504F4C4943595F4143434553535F494E5641 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x131251 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 GT DUP1 ISZERO PUSH2 0x9F7 JUMPI POP DUP1 PUSH1 0x2 ADD SLOAD DUP6 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0xA02 JUMPI POP DUP4 DUP6 LT JUMPDEST PUSH2 0xA60 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032353A4150504C49434154494F4E5F5052454D4955 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1357D2539590531251 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP2 PUSH1 0x2 ADD SLOAD DUP5 EQ PUSH2 0xACC JUMPI PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xA749E55FFD0F07193966D7C449D6238C6514C6B3EB5E8AB21B3EA9D94A5C2178 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x2 DUP3 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE DUP3 ADD DUP6 SWAP1 SSTORE PUSH1 0x8 DUP3 ADD SSTORE JUMPDEST DUP2 PUSH1 0x1 ADD SLOAD DUP6 EQ PUSH2 0xB7D JUMPI PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x23E948A9DC44669750EA8EA8B7CA46C359534BD0F04E9260408A7E9BF8C7A556 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP3 DUP2 ADD DUP7 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP5 ADD SSTORE DUP2 ADD SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0xF392E5DF923D5D0B6D6C6301C53C86E1C75F58C1C637200C3193DD589E5C8A01 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0xB98 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xBC8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0xBE2 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC12 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0xC7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032383A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCA3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xD00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032393A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR DUP2 SSTORE TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0xF1950800DA95964FDD42242722CCDFE6D9DC13D5D4DC7EAFEFEAB77373E3C9EC SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0xD5D DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD8D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0xDA7 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDD7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP2 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD SWAP2 SWAP3 SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0xFF SWAP1 SWAP2 AND SWAP1 DUP2 GT ISZERO PUSH2 0xE1C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE3B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0xE63 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE8F SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xEDC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xEB1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xEDC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xEBF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT DUP1 ISZERO PUSH2 0xF2F JUMPI POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xF2D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0xF8C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032323A4150504C49434154494F4E5F414343455353 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD ISZERO PUSH2 0xFF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3032333A504F4C4943595F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x1 DUP4 ADD SSTORE PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x5 DUP5 ADD SSTORE TIMESTAMP PUSH1 0x7 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP5 ADD SSTORE MLOAD DUP6 DUP2 MSTORE PUSH32 0xB979EAE60510A4A065F45DDD8A0C9AF7BA4D241E253B17BDEE3043C2FB992E9 SWAP2 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD SWAP4 DUP4 ADD DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP4 AND SWAP5 SWAP2 SWAP4 SWAP2 SWAP3 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x10B0 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x10FD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x10D2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x10FD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x10E0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x4 ADD SLOAD SWAP1 DUP1 PUSH1 0x5 ADD SLOAD SWAP1 POP DUP7 JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1126 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1156 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1170 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x11A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x120B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1270 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x12E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036323A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x130B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1362 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3036333A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x5EA526DBB5CA484C7716DCC966FDFC289530CC595EBC9EC7BFDA25D010D1A2FC SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x13CE DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x13FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1418 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x14B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1518 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x5 ADD SLOAD DUP4 DUP3 PUSH1 0x6 ADD SLOAD PUSH2 0x152D SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x158C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035323A5041594F55545F4D41585F414D4F554E545F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x115610D151511151 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP8 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x1601 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035333A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1627 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x167E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3035343A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR DUP3 SSTORE DUP2 ADD DUP5 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x6 DUP3 ADD DUP1 SLOAD DUP6 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x16AD SWAP1 DUP5 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xA39B09B76CCF7DB94096E2C5A058215F9B2302B85DE726E37EDB99EFDB6FB2C6 SWAP1 PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1715 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1745 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x175F PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x178F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x17FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031373A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1825 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1882 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031383A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x2 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x67F56ED3A623B73566D40F65CBA052FC97CA9DF8AFB800A885C2A4FE0228C1F8 SWAP1 PUSH1 0x20 ADD PUSH2 0xD3D JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x18D6 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1906 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1920 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1950 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x19BD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD ISZERO PUSH2 0x1A2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031313A4150504C49434154494F4E5F414C52454144 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x595F455849535453 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 GT PUSH2 0x1A88 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031323A5052454D49554D5F414D4F554E545F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP7 DUP7 GT PUSH2 0x1AEA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031333A53554D5F494E53555245445F414D4F554E54 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x17D513D3D7D4D3505313 PUSH1 0xB2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP8 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP7 SWAP1 SSTORE PUSH2 0x1B0E PUSH1 0x3 DUP3 ADD DUP7 DUP7 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP1 DUP4 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP5 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 DUP2 SWAP1 SSTORE SWAP1 DUP5 ADD SWAP2 SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x1B59 SWAP2 DUP12 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 DUP2 ADD DUP8 SWAP1 MSTORE PUSH32 0x71B9122C9F32160952B44F0E76B53474F59A5CD9B98CCDFB5FF20672FCAE3412 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP3 ADD SLOAD PUSH1 0x3 DUP4 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND SWAP5 SWAP4 PUSH1 0xFF SWAP1 SWAP3 AND SWAP3 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH2 0x1C24 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C6E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1C8D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x1CB5 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1CE1 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1D2E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D03 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1D2E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1D11 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1DAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130333A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1DC5 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1DF5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x1E0F PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1E3F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x1EAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x1F0F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x1F84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037323A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1FAA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 PUSH2 0x1FD9 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1FD7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x202F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037333A434C41494D5F53544154455F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2055 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ DUP1 ISZERO PUSH2 0x2069 JUMPI POP DUP1 PUSH1 0x2 ADD SLOAD DUP2 PUSH1 0x1 ADD SLOAD EQ JUMPDEST DUP1 PUSH2 0x2097 JUMPI POP PUSH1 0x2 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2095 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ JUMPDEST PUSH2 0x20F3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3037343A434C41494D5F574954485F554E504149445F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x5041594F555453 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR DUP2 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x4 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x2116 DUP4 PUSH2 0x46A1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x482CA72FF614E1AAB3860B93209BFCB7382D63292E6004E15FF29639E58E19A7 SWAP2 ADD PUSH2 0x13AC JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD DUP1 SLOAD SWAP4 SWAP5 PUSH1 0xFF SWAP1 SWAP4 AND SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x2 DUP4 ADD SLOAD PUSH1 0x3 DUP5 ADD DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP5 AND SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP2 PUSH2 0x1084 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x21EA DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x221A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x2234 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2264 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH2 0x22BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030313A494E56414C49445F4F574E45520000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2312 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2336 SWAP2 SWAP1 PUSH2 0x41D4 JUMP JUMPDEST PUSH2 0x2382 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030323A494E56414C49445F50524F44554354000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x23DB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x23FF SWAP2 SWAP1 PUSH2 0x42F0 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x241E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x246B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030333A50524F445543545F4E4F545F414354495645 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST PUSH2 0x2473 PUSH2 0x3F53 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP4 POP SWAP1 ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3030343A4D455441444154415F414C52454144595F45 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x5849535453 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP7 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE PUSH2 0x251F PUSH1 0x3 DUP3 ADD DUP7 DUP7 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 MLOAD PUSH32 0x19C55CD86637A14907BC12064E09BF8DCE1ECDA9E5D96CAE81099F4B8AE1D3C9 SWAP1 PUSH2 0x2564 SWAP1 DUP10 SWAP1 DUP7 SWAP1 DUP11 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x436E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x25C6 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2606 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2625 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x8 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xE0 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130323A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2719 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH1 0xC0 DUP2 ADD DUP6 MSTORE DUP2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE DUP1 DUP4 ADD SLOAD SWAP2 SWAP4 SWAP1 SWAP3 SWAP1 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2779 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2798 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x27AC SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x27D8 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2825 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x27FA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2825 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2808 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x28B9 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x28E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x2903 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2933 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x29A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033303A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x2A0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033313A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2A31 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2A89 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033323A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x4 DUP2 ADD SLOAD ISZERO PUSH2 0x2AE7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3033333A504F4C4943595F4841535F4F50454E5F434C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41494D53 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0x2 PUSH1 0xFF NOT SWAP2 DUP3 AND DUP2 OR DUP4 SSTORE TIMESTAMP PUSH1 0x8 DUP5 ADD DUP2 SWAP1 SSTORE DUP5 DUP3 ADD DUP1 SLOAD SWAP1 SWAP4 AND SWAP1 SWAP2 OR SWAP2 DUP3 SWAP1 SSTORE PUSH1 0x5 DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x2B33 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0x47682AA751CFEF9683DC926C2E0547BF1F6345215278EA52B866564017AC9B9C SWAP1 PUSH1 0x20 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B76 DUP3 PUSH2 0x2576 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2BBA PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD SWAP1 SWAP2 DUP4 SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2BFC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2C1B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x2C43 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2C6F SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2CBC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2C91 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2CBC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2C9F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130313A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x2D60 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x2D7A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D7A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x2DDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x2E00 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x2E2A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x2E6C JUMPI PUSH2 0x2E4B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x2E74 PUSH2 0x3FB9 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2EBA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x2EF8 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP4 MSTORE DUP1 SLOAD DUP4 MSTORE PUSH1 0x1 DUP1 DUP3 ADD SLOAD SWAP2 SWAP3 DUP5 ADD SWAP2 PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x2F4B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2F6A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x2F88 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x2FB4 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3001 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x2FD6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3001 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x2FE4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1DAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3130343A5041594F55545F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3095 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x30C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x30DF PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x310F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x317A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP11 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x31EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038313A434C41494D5F444F45535F4E4F545F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x14D5 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3215 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x326C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038323A434C41494D5F4E4F545F434F4E4649524D45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP8 GT PUSH2 0x32CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038333A5041594F55545F414D4F554E545F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x17D2539590531251 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD DUP8 DUP3 PUSH1 0x2 ADD SLOAD PUSH2 0x32E2 SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x333C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038343A5041594F55545F414D4F554E545F544F4F5F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x424947 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP2 DUP6 MSTORE SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP6 POP SWAP1 ISZERO PUSH2 0x33C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3038353A5041594F55545F414C52454144595F455849 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x535453 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP9 DUP2 SSTORE PUSH1 0x2 DUP2 ADD DUP9 SWAP1 SSTORE PUSH2 0x33D8 PUSH1 0x3 DUP3 ADD DUP9 DUP9 PUSH2 0x405B JUMP JUMPDEST POP PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x340C DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP5 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP12 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0x223E38F266BC310BBF02CC4E1BB6C706AF5C7F9710B3EDFE17A12F09E44E84A7 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x34D7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3131303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD DUP3 DUP3 PUSH1 0x2 ADD SLOAD PUSH2 0x34EC SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x353A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3131313A414D4F554E545F544F4F5F42494700000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST DUP2 DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x354E SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH32 0x9BB11018B2A92C286BE2BB51BD0ED127DADEF34CDDC2B557270D0F81873E0056 SWAP2 ADD PUSH2 0xD3D JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x35A2 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x35D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x35EC PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x361C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x3689 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031343A4D455441444154415F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x36F9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031353A4150504C49434154494F4E5F444F45535F4E PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D517D1561254D5 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x371F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x377C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3031363A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT SWAP1 DUP2 AND PUSH1 0x1 OR DUP3 SSTORE TIMESTAMP PUSH1 0x5 DUP1 DUP5 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP6 DUP2 ADD DUP1 SLOAD SWAP1 SWAP5 AND OR SWAP3 DUP4 SWAP1 SSTORE DUP5 ADD SSTORE PUSH1 0x40 MLOAD PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4773 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x37C6 SWAP2 DUP8 SWAP2 PUSH1 0xFF AND SWAP1 PUSH2 0x43F1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD DUP5 DUP2 MSTORE PUSH32 0xBF8B120FB15C8C02DAAC643F4B8D8542610C41F75BDA1D3EFCC3F7017C9389FC SWAP1 PUSH1 0x20 ADD PUSH2 0x798 JUMP JUMPDEST PUSH1 0x0 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3813 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3843 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x385D PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x388D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x38F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x391E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x396B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034313A504F4C4943595F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 PUSH1 0x5 ADD SLOAD DUP7 DUP3 PUSH1 0x6 ADD SLOAD PUSH2 0x3980 SWAP2 SWAP1 PUSH2 0x4672 JUMP JUMPDEST GT ISZERO PUSH2 0x39E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034323A434C41494D5F414D4F554E545F4558434545 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1114D7D3505617D4105653D555 PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD SLOAD PUSH1 0x0 DUP9 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD SWAP2 SWAP5 POP SWAP1 ISZERO PUSH2 0x3A63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3034333A434C41494D5F414C52454144595F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST DUP1 SLOAD PUSH1 0xFF NOT AND DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP8 SWAP1 SSTORE PUSH2 0x3A80 PUSH1 0x3 DUP3 ADD DUP8 DUP8 PUSH2 0x405B JUMP JUMPDEST POP TIMESTAMP PUSH1 0x4 DUP3 ADD DUP2 SWAP1 SSTORE PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x3 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x3AA0 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x4 DUP3 ADD DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x3AB7 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x66D0839D281A46DE5CA92181EF89787FBF266333FBD1076C0728149B3A5600FA SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x3B21 DUP2 PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B51 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x4486 JUMP JUMPDEST PUSH2 0x3B6B PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B9B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x567 SWAP1 PUSH2 0x44BD JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x7 DUP2 ADD SLOAD PUSH2 0x3C06 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039303A504F4C4943595F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x4 ADD SLOAD GT PUSH2 0x3C6B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039313A504F4C4943595F574954484F55545F4F5045 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x4E5F434C41494D53 PUSH1 0xC0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH1 0x4 DUP2 ADD SLOAD PUSH2 0x3CE1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039323A5041594F55545F444F45535F4E4F545F4558 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x1254D5 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 DUP4 ADD SLOAD PUSH1 0xFF AND SWAP1 DUP2 GT ISZERO PUSH2 0x3D0A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x3D63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F432D3039333A5041594F55545F414C52454144595F504149 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1113D555 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 ADD DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH32 0x97A4F1DF9BFEE1535200A1BE1DA2C502AEC16BDA67FDADED9C127EAEC704B71F SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SLOAD DUP5 MSTORE SWAP1 SWAP2 MSTORE DUP2 KECCAK256 PUSH1 0x2 DUP1 DUP5 ADD SLOAD SWAP1 DUP3 ADD DUP1 SLOAD SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x3DE9 SWAP1 DUP5 SWAP1 PUSH2 0x4672 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH1 0x2 DUP2 ADD SLOAD PUSH1 0x1 DUP3 ADD SLOAD EQ ISZERO PUSH2 0xB7D JUMPI DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x3 OR DUP2 SSTORE PUSH1 0x4 DUP4 ADD DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0x0 SWAP1 PUSH2 0x3E27 SWAP1 DUP5 SWAP1 PUSH2 0x468A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0x8 DUP5 ADD SSTORE DUP2 SLOAD PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH32 0x482CA72FF614E1AAB3860B93209BFCB7382D63292E6004E15FF29639E58E19A7 SWAP2 ADD PUSH2 0x16F2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3EB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3EC9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3EED SWAP2 SWAP1 PUSH2 0x415E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x26DB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x0 SWAP2 DUP3 PUSH2 0x3F64 DUP4 PUSH2 0x46F3 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 SLOAD PUSH1 0x8 SLOAD PUSH1 0x40 DUP1 MLOAD CHAINID PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP4 DIV PUSH1 0x60 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP4 ADD MSTORE PUSH1 0x54 DUP3 ADD MSTORE PUSH1 0x74 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x4024 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x567 JUMP JUMPDEST PUSH2 0x4039 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x3E6B JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x4067 SWAP1 PUSH2 0x46B8 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x4089 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x40CF JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x40A2 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x40CF JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x40CF JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x40CF JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x40B4 JUMP JUMPDEST POP PUSH2 0x40DB SWAP3 SWAP2 POP PUSH2 0x40DF JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x40DB JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x40E0 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x4105 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x411C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x4134 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x414C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4157 DUP2 PUSH2 0x475D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x416F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x4157 DUP2 PUSH2 0x475D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x418F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x419A DUP2 PUSH2 0x475D JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x41BC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x41C8 DUP8 DUP3 DUP9 ADD PUSH2 0x40F4 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41E5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x4157 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4205 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x421E JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x4242 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x41BC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x427A JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x42A8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x42D3 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x42DF DUP9 DUP3 DUP10 ADD PUSH2 0x40F4 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4301 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x4157 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE DUP2 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4334 JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x4318 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x4345 JUMPI DUP3 PUSH1 0x20 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 LT PUSH2 0x436A JUMPI PUSH2 0x436A PUSH2 0x4724 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD PUSH2 0x4395 DUP4 PUSH2 0x474D JUMP JUMPDEST DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x0 PUSH2 0x43C2 DUP7 PUSH2 0x474D JUMP JUMPDEST DUP6 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xC0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x43DC PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x430F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD SWAP5 SWAP1 SWAP5 MSTORE POP PUSH1 0xA0 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 DUP2 ADD PUSH2 0x4401 DUP4 PUSH2 0x474D JUMP JUMPDEST DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4419 DUP9 PUSH2 0x473A JUMP JUMPDEST DUP8 DUP3 MSTORE DUP7 PUSH1 0x20 DUP4 ADD MSTORE DUP6 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xC0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x43DC PUSH1 0xC0 DUP4 ADD DUP7 PUSH2 0x430F JUMP JUMPDEST PUSH2 0x120 DUP2 ADD PUSH2 0x444A DUP12 PUSH2 0x474D JUMP JUMPDEST SWAP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP9 SWAP1 SWAP9 MSTORE PUSH1 0x40 DUP9 ADD SWAP7 SWAP1 SWAP7 MSTORE PUSH1 0x60 DUP8 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x80 DUP7 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 SWAP1 SWAP2 ADD MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH2 0x450F DUP2 PUSH2 0x473A JUMP JUMPDEST DUP1 PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x4590 DUP2 PUSH2 0x474D JUMP JUMPDEST DUP1 PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x45CF PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x435A JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4543 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x430F JUMP JUMPDEST DUP2 MLOAD PUSH2 0x120 DUP3 ADD SWAP1 PUSH2 0x4604 DUP2 PUSH2 0x474D JUMP JUMPDEST DUP1 DUP4 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP8 DUP3 MSTORE PUSH2 0x43C2 PUSH1 0x20 DUP4 ADD DUP9 PUSH2 0x435A JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4685 JUMPI PUSH2 0x4685 PUSH2 0x470E JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x469C JUMPI PUSH2 0x469C PUSH2 0x470E JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x46B0 JUMPI PUSH2 0x46B0 PUSH2 0x470E JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x46CC JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x46ED JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4707 JUMPI PUSH2 0x4707 PUSH2 0x470E JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x474A JUMPI PUSH2 0x474A PUSH2 0x4724 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x474A JUMPI PUSH2 0x474A PUSH2 0x4724 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x474A JUMPI PUSH1 0x0 DUP1 REVERT INVALID MSTORE8 0x23 SWAP5 0xC6 0xEC PUSH17 0x3C4ECF5944BC8F02B410433362F9BDC2F2 0x5C 0xD1 0xD7 INVALID GASLIMIT 0xE7 0xED 0xFC MSIZE LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA 0xB7 RETURNDATASIZE 0xEB 0xB7 SDIV 0xAB 0x2B DUP10 0xE9 NOT 0xDD ADD CODESIZE 0x2F SWAP7 0xA9 MOD 0xDC PUSH2 0x9928 PUSH21 0x19144898B6AA0D558764736F6C6343000802003300 ","sourceMap":"4404:20030:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9736:864;;;;;;:::i;:::-;;:::i;:::-;;11435:2096;;;;;;:::i;:::-;;:::i;5013:62::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6473:25:103;;;6461:2;6446:18;5013:62:77;;;;;;;;13537:494;;;;;;:::i;:::-;;:::i;10623:806::-;;;;;;:::i;:::-;;:::i;4635:67::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;17588:805::-;;;;;;:::i;:::-;;:::i;16365:1217::-;;;;;;:::i;:::-;;:::i;9162:568::-;;;;;;:::i;:::-;;:::i;6484:1280::-;;;;;;:::i;:::-;;:::i;4548:60::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;23477:266::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;18399:1141::-;;;;;;:::i;:::-;;:::i;4915:92::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;4804:89::-;;;;;;:::i;:::-;;:::i;5413:1043::-;;;;;;:::i;:::-;;:::i;23223:248::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;24030:97::-;24101:19;;24030:97;;22348:256;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14037:880::-;;;;;;:::i;:::-;;:::i;22898:158::-;;;;;;:::i;:::-;;:::i;22610:282::-;;;;;;:::i;:::-;;:::i;23066:151::-;;;;;;:::i;:::-;23135:23;23188:22;;;:11;:22;;;;;;;23066:151;1143:232:88;;;;;;:::i;:::-;;:::i;23749:275:77:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;19563:1480::-;;;;;;:::i;:::-;;:::i;4725:58::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7770:515::-;;;;;;:::i;:::-;;:::i;8295:861::-;;;;;;:::i;:::-;;:::i;14939:1420::-;;;;;;:::i;:::-;;:::i;21049:1293::-;;;;;;:::i;:::-;;:::i;9736:864::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;;;;;;;;;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;9856:21:77::1;9880:19:::0;;;:8:::1;:19;::::0;;;;9917:14:::1;::::0;::::1;::::0;9909:68:::1;;;::::0;-1:-1:-1;;;9909:68:77;;16023:2:103;9909:68:77::1;::::0;::::1;16005:21:103::0;16062:2;16042:18;;;16035:30;16101:34;16081:18;;;16074:62;-1:-1:-1;;;16152:18:103;;;16145:35;16197:19;;9909:68:77::1;15995:227:103::0;9909:68:77::1;9988:31;10022:23:::0;;;:12:::1;:23;::::0;;;;10063:21:::1;::::0;::::1;::::0;10055:78:::1;;;::::0;-1:-1:-1;;;10055:78:77;;36907:2:103;10055:78:77::1;::::0;::::1;36889:21:103::0;36946:2;36926:18;;;36919:30;36985:34;36965:18;;;36958:62;-1:-1:-1;;;37036:18:103;;;37029:38;37084:19;;10055:78:77::1;36879:230:103::0;10055:78:77::1;10172:24;10151:17:::0;;::::1;;:45;::::0;::::1;;;;-1:-1:-1::0;;;10151:45:77::1;;;;;;;;;;10143:97;;;::::0;-1:-1:-1;;;10143:97:77;;13989:2:103;10143:97:77::1;::::0;::::1;13971:21:103::0;14028:2;14008:18;;;14001:30;14067:34;14047:18;;;14040:62;-1:-1:-1;;;14118:18:103;;;14111:37;14165:19;;10143:97:77::1;13961:229:103::0;10143:97:77::1;10251:45:::0;;-1:-1:-1;;10251:45:77;;::::1;10271:25;10251:45;::::0;;10330:15:::1;10306:21;::::0;;::::1;:39:::0;;;10393:24:::1;10380:10:::0;;::::1;:37:::0;;;;::::1;;::::0;;;;10427:14;::::1;:32:::0;10498:46:::1;::::0;-1:-1:-1;;;;;;;;;;;10498:46:77;::::1;::::0;10522:9;;10533:10:::1;;::::0;10498:46:::1;:::i;:::-;;;;;;;;10560:33;::::0;6473:25:103;;;10560:33:77::1;::::0;6461:2:103;6446:18;10560:33:77::1;;;;;;;;1129:1:88;;9736:864:77::0;;:::o;11435:2096::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;11648:31:77::1;11682:23:::0;;;:12:::1;:23;::::0;;;;11736:21:::1;::::0;::::1;::::0;:25;;;;:92:::1;;-1:-1:-1::0;11799:29:77::1;11778:17:::0;;::::1;;:50;::::0;::::1;;;;-1:-1:-1::0;;;11778:50:77::1;;;;;;;;;;11736:92;11715:171;;;::::0;-1:-1:-1;;;11715:171:77;;14801:2:103;11715:171:77::1;::::0;::::1;14783:21:103::0;14840:2;14820:18;;;14813:30;14879:34;14859:18;;;14852:62;-1:-1:-1;;;14930:18:103;;;14923:38;14978:19;;11715:171:77::1;14773:230:103::0;11715:171:77::1;11938:11;:28;;;11918:16;:48;;11897:141;;;::::0;-1:-1:-1;;;11897:141:77;;26986:2:103;11897:141:77::1;::::0;::::1;26968:21:103::0;27025:2;27005:18;;;26998:30;27064:34;27044:18;;;27037:62;-1:-1:-1;;;27115:18:103;;;27108:52;27177:19;;11897:141:77::1;26958:244:103::0;11897:141:77::1;12049:21;12073:19:::0;;;:8:::1;:19;::::0;;;;12123:16:::1;::::0;::::1;::::0;:20;;;;:79:::1;;-1:-1:-1::0;12176:26:77::1;12160:12:::0;;::::1;;:42;::::0;::::1;;;;-1:-1:-1::0;;;12160:42:77::1;;;;;;;;;;12123:79;12102:153;;;::::0;-1:-1:-1;;;12102:153:77;;36094:2:103;12102:153:77::1;::::0;::::1;36076:21:103::0;36133:2;36113:18;;;36106:30;36172:34;36152:18;;;36145:62;-1:-1:-1;;;36223:18:103;;;36216:33;36266:19;;12102:153:77::1;36066:225:103::0;12102:153:77::1;12319:1;12295:21;:25;:91;;;;;12362:6;:24;;;12337:21;:49;;12295:91;:147;;;;;12426:16;12402:21;:40;12295:147;12274:227;;;::::0;-1:-1:-1;;;12274:227:77;;11143:2:103;12274:227:77::1;::::0;::::1;11125:21:103::0;11182:2;11162:18;;;11155:30;11221:34;11201:18;;;11194:62;-1:-1:-1;;;11272:18:103;;;11265:39;11321:19;;12274:227:77::1;11115:231:103::0;12274:227:77::1;12536:11;:28;;;12516:16;:48;12512:441;;12629:28;::::0;::::1;::::0;12585:91:::1;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;;7373:18;;7366:34;;;12585:91:77::1;::::0;7277:2:103;7262:18;12585:91:77::1;;;;;;;12690:28;::::0;::::1;:47:::0;;;12775:15:::1;12751:21;::::0;;::::1;:39:::0;;;12829:22;::::1;:41:::0;;;12884:16:::1;::::0;::::1;:34:::0;12512:441:::1;12992:11;:25;;;12967:21;:50;12963:562;;13079:25;::::0;::::1;::::0;13038:90:::1;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;;7373:18;;7366:34;;;13038:90:77::1;::::0;7277:2:103;7262:18;13038:90:77::1;;;;;;;13142:25;::::0;;::::1;:49:::0;;;13229:15:::1;13205:21;::::0;::::1;:39:::0;13324:28;::::1;::::0;13288:88:::1;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;;7373:18;;7366:34;;;13288:88:77::1;::::0;7277:2:103;7262:18;13288:88:77::1;;;;;;;13390:28;::::0;::::1;:52:::0;;;13475:15:::1;13456:16;::::0;::::1;:34:::0;12963:562:::1;1129:1:88;;11435:2096:77::0;;;;:::o;13537:494::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;13651:21:77::1;13675:19:::0;;;:8:::1;:19;::::0;;;;13712:16:::1;::::0;::::1;::::0;13704:68:::1;;;::::0;-1:-1:-1;;;13704:68:77;;19262:2:103;13704:68:77::1;::::0;::::1;19244:21:103::0;19301:2;19281:18;;;19274:30;19340:34;19320:18;;;19313:62;-1:-1:-1;;;19391:18:103;;;19384:33;19434:19;;13704:68:77::1;19234:225:103::0;13704:68:77::1;13806:18;13790:12:::0;;::::1;;:34;::::0;::::1;;;;-1:-1:-1::0;;;13790:34:77::1;;;;;;;;;;13782:86;;;::::0;-1:-1:-1;;;13782:86:77;;25362:2:103;13782:86:77::1;::::0;::::1;25344:21:103::0;25401:2;25381:18;;;25374:30;25440:34;25420:18;;;25413:62;-1:-1:-1;;;25491:18:103;;;25484:37;25538:19;;13782:86:77::1;25334:229:103::0;13782:86:77::1;13879:34:::0;;-1:-1:-1;;13879:34:77::1;13894:19;13879:34;::::0;;13942:15:::1;13923:16;::::0;::::1;:34:::0;13997:27:::1;::::0;6473:25:103;;;13997:27:77::1;::::0;6461:2:103;6446:18;13997:27:77::1;;;;;;;;1129:1:88;13537:494:77::0;;:::o;10623:806::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;10739:30:77::1;10772:23:::0;;;:12:::1;:23;::::0;;;;;;;10739:56;;::::1;::::0;::::1;::::0;;;;;;;10772:23;;10739:56;;::::1;::::0;;::::1;::::0;;::::1;;;;-1:-1:-1::0;;;10739:56:77::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;10739:56:77::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;10837:1;10813:11;:21;;;:25;:79;;;;-1:-1:-1::0;10863:29:77::1;10842:17:::0;;:50:::1;::::0;::::1;;;;-1:-1:-1::0;;;10842:50:77::1;;;;;;;;;;10813:79;10805:132;;;::::0;-1:-1:-1;;;10805:132:77;;36498:2:103;10805:132:77::1;::::0;::::1;36480:21:103::0;36537:2;36517:18;;;36510:30;36576:34;36556:18;;;36549:62;-1:-1:-1;;;36627:18:103;;;36620:38;36675:19;;10805:132:77::1;36470:230:103::0;10805:132:77::1;10948:21;10972:19:::0;;;:8:::1;:19;::::0;;;;11009:16:::1;::::0;::::1;::::0;:21;11001:69:::1;;;::::0;-1:-1:-1;;;11001:69:77;;12772:2:103;11001:69:77::1;::::0;::::1;12754:21:103::0;12811:2;12791:18;;;12784:30;12850:34;12830:18;;;12823:62;-1:-1:-1;;;12901:18:103;;;12894:33;12944:19;;11001:69:77::1;12744:225:103::0;11001:69:77::1;11081:33:::0;;-1:-1:-1;;11081:33:77::1;::::0;;11155:25:::1;::::0;;::::1;::::0;11081:33;11124:28;::::1;:56:::0;11215:28:::1;::::0;;::::1;::::0;11190:22:::1;::::0;::::1;:53:::0;11272:15:::1;11253:16;::::0;::::1;:34:::0;;;11321:16:::1;::::0;::::1;:34:::0;11395:27;6473:25:103;;;11395:27:77::1;::::0;6446:18:103;11395:27:77::1;6428:76:103::0;4635:67:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17588:805::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;17720:21:77::1;17744:19:::0;;;:8:::1;:19;::::0;;;;17781:16:::1;::::0;::::1;::::0;17773:68:::1;;;::::0;-1:-1:-1;;;17773:68:77;;29398:2:103;17773:68:77::1;::::0;::::1;29380:21:103::0;29437:2;29417:18;;;29410:30;29476:34;29456:18;;;29449:62;-1:-1:-1;;;29527:18:103;;;29520:33;29570:19;;17773:68:77::1;29370:225:103::0;17773:68:77::1;17884:1;17859:6;:22;;;:26;17851:79;;;::::0;-1:-1:-1;;;17851:79:77;;15614:2:103;17851:79:77::1;::::0;::::1;15596:21:103::0;15653:2;15633:18;;;15626:30;15692:34;15672:18;;;15665:62;-1:-1:-1;;;15743:18:103;;;15736:38;15791:19;;17851:79:77::1;15586:230:103::0;17851:79:77::1;17941:19;17963:17:::0;;;:6:::1;:17;::::0;;;;;;;:26;;;;;;;;18007:15:::1;::::0;::::1;::::0;17999:66:::1;;;::::0;-1:-1:-1;;;17999:66:77;;32849:2:103;17999:66:77::1;::::0;::::1;32831:21:103::0;32888:2;32868:18;;;32861:30;32927:34;32907:18;;;32900:62;-1:-1:-1;;;32978:18:103;;;32971:32;33020:19;;17999:66:77::1;32821:224:103::0;17999:66:77::1;18098:18;18083:11:::0;;::::1;;:33;::::0;::::1;;;;-1:-1:-1::0;;;18083:33:77::1;;;;;;;;;;18075:79;;;::::0;-1:-1:-1;;;18075:79:77;;16429:2:103;18075:79:77::1;::::0;::::1;16411:21:103::0;16468:2;16448:18;;;16441:30;16507:34;16487:18;;;16480:62;-1:-1:-1;;;16558:18:103;;;16551:31;16599:19;;18075:79:77::1;16401:223:103::0;18075:79:77::1;18165:33:::0;;-1:-1:-1;;18165:33:77::1;18179:19;18165:33;::::0;;18226:15:::1;18208;::::0;::::1;:33:::0;;;18276:16:::1;::::0;::::1;:34:::0;18350:36:::1;::::0;;7008:25:103;;;7064:2;7049:18;;7042:34;;;18350:36:77::1;::::0;6981:18:103;18350:36:77::1;;;;;;;;1129:1:88;;17588:805:77::0;;;:::o;16365:1217::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;16553:21:77::1;16577:19:::0;;;:8:::1;:19;::::0;;;;16614:16:::1;::::0;::::1;::::0;16606:68:::1;;;::::0;-1:-1:-1;;;16606:68:77;;15210:2:103;16606:68:77::1;::::0;::::1;15192:21:103::0;15249:2;15229:18;;;15222:30;15288:34;15268:18;;;15261:62;-1:-1:-1;;;15339:18:103;;;15332:33;15382:19;;16606:68:77::1;15182:225:103::0;16606:68:77::1;16717:1;16692:6;:22;;;:26;16684:79;;;::::0;-1:-1:-1;;;16684:79:77;;23732:2:103;16684:79:77::1;::::0;::::1;23714:21:103::0;23771:2;23751:18;;;23744:30;23810:34;23790:18;;;23783:62;-1:-1:-1;;;23861:18:103;;;23854:38;23909:19;;16684:79:77::1;23704:230:103::0;16684:79:77::1;16940:6;:22;;;16921:15;16899:6;:19;;;:37;;;;:::i;:::-;:63;;16891:116;;;::::0;-1:-1:-1;;;16891:116:77;;20479:2:103;16891:116:77::1;::::0;::::1;20461:21:103::0;20518:2;20498:18;;;20491:30;20557:34;20537:18;;;20530:62;-1:-1:-1;;;20608:18:103;;;20601:38;20656:19;;16891:116:77::1;20451:230:103::0;16891:116:77::1;17018:19;17040:17:::0;;;:6:::1;:17;::::0;;;;;;;:26;;;;;;;;17084:15:::1;::::0;::::1;::::0;17076:66:::1;;;::::0;-1:-1:-1;;;17076:66:77;;20888:2:103;17076:66:77::1;::::0;::::1;20870:21:103::0;20927:2;20907:18;;;20900:30;20966:34;20946:18;;;20939:62;-1:-1:-1;;;21017:18:103;;;21010:32;21059:19;;17076:66:77::1;20860:224:103::0;17076:66:77::1;17175:18;17160:11:::0;;::::1;;:33;::::0;::::1;;;;-1:-1:-1::0;;;17160:33:77::1;;;;;;;;;;17152:79;;;::::0;-1:-1:-1;;;17152:79:77;;16831:2:103;17152:79:77::1;::::0;::::1;16813:21:103::0;16870:2;16850:18;;;16843:30;16909:34;16889:18;;;16882:62;-1:-1:-1;;;16960:18:103;;;16953:31;17001:19;;17152:79:77::1;16803:223:103::0;17152:79:77::1;17242:34:::0;;-1:-1:-1;;17242:34:77::1;17256:20;17242:34:::0;;::::1;::::0;;17286:17;::::1;:35:::0;;;17349:15:::1;17331;::::0;::::1;:33:::0;17399:19:::1;::::0;::::1;:38:::0;;17286:35;;17399:19;-1:-1:-1;;17399:38:77::1;::::0;17286:35;;17399:38:::1;:::i;:::-;::::0;;;-1:-1:-1;;17466:15:77::1;17447:16;::::0;::::1;:34:::0;17521:54:::1;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;7373:18;;;7366:34;;;17521:54:77::1;::::0;7277:2:103;7262:18;17521:54:77::1;;;;;;;;1129:1:88;;16365:1217:77::0;;;;:::o;9162:568::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;9285:31:77::1;9319:23:::0;;;:12:::1;:23;::::0;;;;9360:21:::1;::::0;::::1;::::0;9352:78:::1;;;::::0;-1:-1:-1;;;9352:78:77;;33656:2:103;9352:78:77::1;::::0;::::1;33638:21:103::0;33695:2;33675:18;;;33668:30;33734:34;33714:18;;;33707:62;-1:-1:-1;;;33785:18:103;;;33778:38;33833:19;;9352:78:77::1;33628:230:103::0;9352:78:77::1;9469:24;9448:17:::0;;::::1;;:45;::::0;::::1;;;;-1:-1:-1::0;;;9448:45:77::1;;;;;;;;;;9440:97;;;::::0;-1:-1:-1;;;9440:97:77;;35283:2:103;9440:97:77::1;::::0;::::1;35265:21:103::0;35322:2;35302:18;;;35295:30;35361:34;35341:18;;;35334:62;-1:-1:-1;;;35412:18:103;;;35405:37;35459:19;;9440:97:77::1;35255:229:103::0;9440:97:77::1;9548:49:::0;;-1:-1:-1;;9548:49:77::1;9568:29;9548:49;::::0;;9631:15:::1;9607:21;::::0;::::1;:39:::0;9686:37:::1;::::0;6473:25:103;;;9686:37:77::1;::::0;6461:2:103;6446:18;9686:37:77::1;6428:76:103::0;6484:1280:77;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;6712:21:77::1;6736:19:::0;;;:8:::1;:19;::::0;;;;6773:14:::1;::::0;::::1;::::0;6765:68:::1;;;::::0;-1:-1:-1;;;6765:68:77;;22920:2:103;6765:68:77::1;::::0;::::1;22902:21:103::0;22959:2;22939:18;;;22932:30;22998:34;22978:18;;;22971:62;-1:-1:-1;;;23049:18:103;;;23042:35;23094:19;;6765:68:77::1;22892:227:103::0;6765:68:77::1;6844:31;6878:23:::0;;;:12:::1;:23;::::0;;;;6919:21:::1;::::0;::::1;::::0;:26;6911:79:::1;;;::::0;-1:-1:-1;;;6911:79:77;;13580:2:103;6911:79:77::1;::::0;::::1;13562:21:103::0;13619:2;13599:18;;;13592:30;13658:34;13638:18;;;13631:62;-1:-1:-1;;;13709:18:103;;;13702:38;13757:19;;6911:79:77::1;13552:230:103::0;6911:79:77::1;7025:1;7009:13;:17;7001:63;;;::::0;-1:-1:-1;;;7001:63:77;;24141:2:103;7001:63:77::1;::::0;::::1;24123:21:103::0;24180:2;24160:18;;;24153:30;24219:34;24199:18;;;24192:62;-1:-1:-1;;;24270:18:103;;;24263:31;24311:19;;7001:63:77::1;24113:223:103::0;7001:63:77::1;7101:13;7082:16;:32;7074:87;;;::::0;-1:-1:-1;;;7074:87:77;;28225:2:103;7074:87:77::1;::::0;::::1;28207:21:103::0;28264:2;28244:18;;;28237:30;28303:34;28283:18;;;28276:62;-1:-1:-1;;;28354:18:103;;;28347:40;28404:19;;7074:87:77::1;28197:232:103::0;7074:87:77::1;7172:44:::0;;-1:-1:-1;;7172:44:77::1;::::0;;;7226:25;::::1;:41:::0;;;7277:28:::1;::::0;::::1;:47:::0;;;7334:23:::1;:16;::::0;::::1;7353:4:::0;;7334:23:::1;:::i;:::-;-1:-1:-1::0;7391:15:77::1;7367:21;::::0;::::1;:39:::0;;;7440:21:::1;::::0;;::::1;:39:::0;;;7514:10:::1;::::0;::::1;:35:::0;;-1:-1:-1;;7514:35:77::1;7527:22;7514:35;::::0;;;;7559:14;;::::1;:32:::0;;;;7630:46:::1;::::0;-1:-1:-1;;;;;;;;;;;7630:46:77;::::1;::::0;7654:9;;7665:10:::1;;::::0;7630:46:::1;:::i;:::-;;;;;;;;7692:65;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;7373:18;;;7366:34;;;7692:65:77::1;::::0;7277:2:103;7262:18;7692:65:77::1;;;;;;;1129:1:88;;6484:1280:77::0;;;;;;:::o;4548:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4548:60:77;;;;;;;;;;;;;:::i;23477:266::-;23576:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23576:26:77;23626:17;;;;:6;:17;;;;;;;;:26;;;;;;;;;;23618:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23618:34:77;;;;;;;;;;;;;;;-1:-1:-1;;;23618:34:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23688:1;23670:5;:15;;;:19;23662:66;;;;-1:-1:-1;;;23662:66:77;;18859:2:103;23662:66:77;;;18841:21:103;18898:2;18878:18;;;18871:30;18937:34;18917:18;;;18910:62;-1:-1:-1;;;18988:18:103;;;18981:32;19030:19;;23662:66:77;18831:224:103;23662:66:77;23477:266;;;;:::o;18399:1141::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;18529:21:77::1;18553:19:::0;;;:8:::1;:19;::::0;;;;18590:16:::1;::::0;::::1;::::0;18582:68:::1;;;::::0;-1:-1:-1;;;18582:68:77;;24958:2:103;18582:68:77::1;::::0;::::1;24940:21:103::0;24997:2;24977:18;;;24970:30;25036:34;25016:18;;;25009:62;-1:-1:-1;;;25087:18:103;;;25080:33;25130:19;;18582:68:77::1;24930:225:103::0;18582:68:77::1;18693:1;18668:6;:22;;;:26;18660:79;;;::::0;-1:-1:-1;;;18660:79:77;;17642:2:103;18660:79:77::1;::::0;::::1;17624:21:103::0;17681:2;17661:18;;;17654:30;17720:34;17700:18;;;17693:62;-1:-1:-1;;;17771:18:103;;;17764:38;17819:19;;18660:79:77::1;17614:230:103::0;18660:79:77::1;18750:19;18772:17:::0;;;:6:::1;:17;::::0;;;;;;;:26;;;;;;;;18816:15:::1;::::0;::::1;::::0;18808:66:::1;;;::::0;-1:-1:-1;;;18808:66:77;;21705:2:103;18808:66:77::1;::::0;::::1;21687:21:103::0;21744:2;21724:18;;;21717:30;21783:34;21763:18;;;21756:62;-1:-1:-1;;;21834:18:103;;;21827:32;21876:19;;18808:66:77::1;21677:224:103::0;18808:66:77::1;18920:20;18905:11:::0;;::::1;;:35;::::0;::::1;;;;-1:-1:-1::0;;;18905:35:77::1;;;;;;;;;;:86;;;-1:-1:-1::0;18972:19:77::1;18957:11:::0;;::::1;;:34;::::0;::::1;;;;-1:-1:-1::0;;;18957:34:77::1;;;;;;;;;;18905:86;18884:158;;;::::0;-1:-1:-1;;;18884:158:77;;10741:2:103;18884:158:77::1;::::0;::::1;10723:21:103::0;10780:2;10760:18;;;10753:30;10819:34;10799:18;;;10792:62;-1:-1:-1;;;10870:18:103;;;10863:31;10911:19;;18884:158:77::1;10713:223:103::0;18884:158:77::1;19090:20;19075:11:::0;;::::1;;:35;::::0;::::1;;;;-1:-1:-1::0;;;19075:35:77::1;;;;;;;;;;:76;;;;;19135:5;:16;;;19114:5;:17;;;:37;19075:76;19074:131;;;-1:-1:-1::0;19185:19:77::1;19170:11:::0;;::::1;;:34;::::0;::::1;;;;-1:-1:-1::0;;;19170:34:77::1;;;;;;;;;;19074:131;19053:218;;;::::0;-1:-1:-1;;;19053:218:77;;27409:2:103;19053:218:77::1;::::0;::::1;27391:21:103::0;27448:2;27428:18;;;27421:30;27487:34;27467:18;;;27460:62;-1:-1:-1;;;27538:18:103;;;27531:37;27585:19;;19053:218:77::1;27381:229:103::0;19053:218:77::1;19282:31:::0;;-1:-1:-1;;19282:31:77::1;19296:17;19282:31;::::0;;19341:15:::1;19323;::::0;::::1;:33:::0;19391:22:::1;::::0;::::1;:24:::0;;;-1:-1:-1;19391:24:77::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;19444:15:77::1;19425:16;::::0;::::1;:34:::0;19499::::1;::::0;;7008:25:103;;;7064:2;7049:18;;7042:34;;;19499::77::1;::::0;6981:18:103;19499:34:77::1;6963:119:103::0;4915:92:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4804:89::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5413:1043::-;5599:17;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;-1:-1:-1;;;;;5640:19:77;::::1;5632:59;;;::::0;-1:-1:-1;;;5632:59:77;;29802:2:103;5632:59:77::1;::::0;::::1;29784:21:103::0;29841:2;29821:18;;;29814:30;29880:29;29860:18;;;29853:57;29927:18;;5632:59:77::1;29774:177:103::0;5632:59:77::1;5710:10;::::0;:31:::1;::::0;-1:-1:-1;;;5710:31:77;;::::1;::::0;::::1;6473:25:103::0;;;-1:-1:-1;;;;;5710:10:77;;::::1;::::0;:20:::1;::::0;6446:18:103;;5710:31:77::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5702:73;;;::::0;-1:-1:-1;;;5702:73:77;;30561:2:103;5702:73:77::1;::::0;::::1;30543:21:103::0;30600:2;30580:18;;;30573:30;30639:31;30619:18;;;30612:59;30688:18;;5702:73:77::1;30533:179:103::0;5702:73:77::1;5793:10;::::0;:39:::1;::::0;-1:-1:-1;;;5793:39:77;;::::1;::::0;::::1;6473:25:103::0;;;5836:32:77::1;::::0;-1:-1:-1;;;;;5793:10:77::1;::::0;:28:::1;::::0;6446:18:103;;5793:39:77::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:75;;;;;;-1:-1:-1::0;;;5793:75:77::1;;;;;;;;;;5785:120;;;::::0;-1:-1:-1;;;5785:120:77;;30919:2:103;5785:120:77::1;::::0;::::1;30901:21:103::0;;;30938:18;;;30931:30;30997:34;30977:18;;;30970:62;31049:18;;5785:120:77::1;30891:182:103::0;5785:120:77::1;5936:24;:22;:24::i;:::-;5970:21;5994:19:::0;;;:8:::1;:19;::::0;;;;6031:14:::1;::::0;::::1;::::0;5924:36;;-1:-1:-1;5994:19:77;6031;6023:69:::1;;;::::0;-1:-1:-1;;;6023:69:77;;23326:2:103;6023:69:77::1;::::0;::::1;23308:21:103::0;23365:2;23345:18;;;23338:30;23404:34;23384:18;;;23377:62;-1:-1:-1;;;23455:18:103;;;23448:35;23500:19;;6023:69:77::1;23298:227:103::0;6023:69:77::1;6103:18:::0;;-1:-1:-1;;;;;;6103:18:77::1;-1:-1:-1::0;;;;;6103:18:77;::::1;;::::0;;-1:-1:-1;6131:14:77;::::1;:26:::0;;;6167:10:::1;::::0;::::1;:36:::0;;-1:-1:-1;;6167:36:77::1;::::0;;6213:16:::1;:9;::::0;::::1;6225:4:::0;;6213:16:::1;:::i;:::-;-1:-1:-1::0;6256:15:77::1;6239:14;::::0;::::1;:32:::0;;;6305:14:::1;::::0;::::1;:32:::0;6377:72:::1;::::0;::::1;::::0;::::1;::::0;6396:5;;6403:9;;6414;;-1:-1:-1;;6377:72:77::1;:::i;:::-;;;;;;;;1129:1:88;5413:1043:77::0;;;;;;;:::o;23223:248::-;23306:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23306:28:77;23359:19;;;;:8;:19;;;;;;;23350:28;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23350:28:77;;;;;;;;;;;;;;;-1:-1:-1;;;23350:28:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23415:1;23396:6;:16;;;:20;23388:68;;;;-1:-1:-1;;;23388:68:77;;12368:2:103;23388:68:77;;;12350:21:103;12407:2;12387:18;;;12380:30;12446:34;12426:18;;;12419:62;-1:-1:-1;;;12497:18:103;;;12490:33;12540:19;;23388:68:77;12340:225:103;23388:68:77;23223:248;;;:::o;22348:256::-;22433:33;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22433:33:77;22494:19;;;;:8;:19;;;;;;;;;22482:31;;;;;;;;;-1:-1:-1;;;;;22482:31:77;;;;;;;;;;;;;;;;;;;;22494:19;;22482:31;;;;;;;;;;;;-1:-1:-1;;;22482:31:77;;;;;;;;;;;;;;;-1:-1:-1;;;22482:31:77;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22553:1;22531:9;:19;;;:23;22523:74;;;;-1:-1:-1;;;22523:74:77;;22108:2:103;22523:74:77;;;22090:21:103;22147:2;22127:18;;;22120:30;22186:34;22166:18;;;22159:62;-1:-1:-1;;;22237:18:103;;;22230:35;22282:19;;22523:74:77;22080:227:103;14037:880:77;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;14150:21:77::1;14174:19:::0;;;:8:::1;:19;::::0;;;;14211:14:::1;::::0;::::1;::::0;14203:68:::1;;;::::0;-1:-1:-1;;;14203:68:77;;22514:2:103;14203:68:77::1;::::0;::::1;22496:21:103::0;22553:2;22533:18;;;22526:30;22592:34;22572:18;;;22565:62;-1:-1:-1;;;22643:18:103;;;22636:35;22688:19;;14203:68:77::1;22486:227:103::0;14203:68:77::1;14282:21;14306:19:::0;;;:8:::1;:19;::::0;;;;14343:16:::1;::::0;::::1;::::0;14335:68:::1;;;::::0;-1:-1:-1;;;14335:68:77;;18455:2:103;14335:68:77::1;::::0;::::1;18437:21:103::0;18494:2;18474:18;;;18467:30;18533:34;18513:18;;;18506:62;-1:-1:-1;;;18584:18:103;;;18577:33;18627:19;;14335:68:77::1;18427:225:103::0;14335:68:77::1;14437:19;14421:12:::0;;::::1;;:35;::::0;::::1;;;;-1:-1:-1::0;;;14421:35:77::1;;;;;;;;;;14413:82;;;::::0;-1:-1:-1;;;14413:82:77;;35691:2:103;14413:82:77::1;::::0;::::1;35673:21:103::0;35730:2;35710:18;;;35703:30;35769:34;35749:18;;;35742:62;-1:-1:-1;;;35820:18:103;;;35813:32;35862:19;;14413:82:77::1;35663:224:103::0;14413:82:77::1;14513:22;::::0;::::1;::::0;:27;14505:76:::1;;;::::0;-1:-1:-1;;;14505:76:77;;28636:2:103;14505:76:77::1;::::0;::::1;28618:21:103::0;28675:2;28655:18;;;28648:30;28714:34;28694:18;;;28687:62;-1:-1:-1;;;28765:18:103;;;28758:34;28809:19;;14505:76:77::1;28608:226:103::0;14505:76:77::1;14592:33:::0;;14607:18:::1;-1:-1:-1::0;;14592:33:77;;::::1;::::0;::::1;::::0;;14654:15:::1;14635:16;::::0;::::1;:34:::0;;;14704:10;;::::1;:37:::0;;;;::::1;::::0;;::::1;::::0;;;;14751:14:::1;::::0;::::1;:32:::0;14822:46:::1;::::0;-1:-1:-1;;;;;;;;;;;14822:46:77;::::1;::::0;14846:9;;14857:10:::1;;::::0;14822:46:::1;:::i;:::-;;;;;;;;14884:26;::::0;6473:25:103;;;14884:26:77::1;::::0;6461:2:103;6446:18;14884:26:77::1;6428:76:103::0;22898:158:77;22966:22;23017:20;23027:9;23017;:20::i;:::-;:32;;;;22898:158;-1:-1:-1;;22898:158:77:o;22610:282::-;22698:38;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22698:38:77;22766:23;;;;:12;:23;;;;;;;;;22752:37;;;;;;;;;;22766:23;;22752:37;;;;;;;;;;-1:-1:-1;;;22752:37:77;;;;;;;;;;;;;;;-1:-1:-1;;;22752:37:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22831:1;22807:11;:21;;;:25;22799:78;;;;-1:-1:-1;;;22799:78:77;;17233:2:103;22799:78:77;;;17215:21:103;17272:2;17252:18;;;17245:30;17311:34;17291:18;;;17284:62;-1:-1:-1;;;17362:18:103;;;17355:38;17410:19;;22799:78:77;17205:230:103;1143:232:88;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;24543:2:103;3146:190:47;;;24525:21:103;24582:2;24562:18;;;24555:30;24621:34;24601:18;;;24594:62;-1:-1:-1;;;24672:18:103;;;24665:44;24726:19;;3146:190:47;24515:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;10087:36:103;;3531:14:47;;10075:2:103;10060:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;23749:275:77:-;23850:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23850:28:77;23903:18;;;;:7;:18;;;;;;;;:28;;;;;;;;;23894:37;;;;;;;;;;;;;;;;;23903:28;;23894:37;;;;;;;;;;;-1:-1:-1;;;23894:37:77;;;;;;;;;;;;;;;-1:-1:-1;;;23894:37:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23968:1;23949:6;:16;;;:20;23941:68;;;;-1:-1:-1;;;23941:68:77;;18051:2:103;23941:68:77;;;18033:21:103;18090:2;18070:18;;;18063:30;18129:34;18109:18;;;18102:62;-1:-1:-1;;;18180:18:103;;;18173:33;18223:19;;23941:68:77;18023:225:103;19563:1480:77;19780:16;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;19812:21:77::1;19836:19:::0;;;:8:::1;:19;::::0;;;;19873:16:::1;::::0;::::1;::::0;19865:68:::1;;;::::0;-1:-1:-1;;;19865:68:77;;20075:2:103;19865:68:77::1;::::0;::::1;20057:21:103::0;20114:2;20094:18;;;20087:30;20153:34;20133:18;;;20126:62;-1:-1:-1;;;20204:18:103;;;20197:33;20247:19;;19865:68:77::1;20047:225:103::0;19865:68:77::1;19944:19;19966:17:::0;;;:6:::1;:17;::::0;;;;;;;:26;;;;;;;;20010:15:::1;::::0;::::1;::::0;20002:66:::1;;;::::0;-1:-1:-1;;;20002:66:77;;30158:2:103;20002:66:77::1;::::0;::::1;30140:21:103::0;30197:2;30177:18;;;30170:30;30236:34;30216:18;;;30209:62;-1:-1:-1;;;30287:18:103;;;30280:32;30329:19;;20002:66:77::1;30130:224:103::0;20002:66:77::1;20101:28;20086:11:::0;;::::1;;:43;::::0;::::1;;;;-1:-1:-1::0;;;20086:43:77::1;;;;;;;;;;20078:89;;;::::0;-1:-1:-1;;;20078:89:77;;31280:2:103;20078:89:77::1;::::0;::::1;31262:21:103::0;31319:2;31299:18;;;31292:30;31358:34;31338:18;;;31331:62;-1:-1:-1;;;31409:18:103;;;31402:31;31450:19;;20078:89:77::1;31252:223:103::0;20078:89:77::1;20200:1;20185:12;:16;20177:69;;;::::0;-1:-1:-1;;;20177:69:77;;11959:2:103;20177:69:77::1;::::0;::::1;11941:21:103::0;11998:2;11978:18;;;11971:30;12037:34;12017:18;;;12010:62;-1:-1:-1;;;12088:18:103;;;12081:38;12136:19;;20177:69:77::1;11931:230:103::0;20177:69:77::1;20312:5;:17;;;20296:12;20277:5;:16;;;:31;;;;:::i;:::-;:52;;20256:134;;;::::0;-1:-1:-1;;;20256:134:77;;33252:2:103;20256:134:77::1;::::0;::::1;33234:21:103::0;33291:2;33271:18;;;33264:30;33330:34;33310:18;;;33303:62;-1:-1:-1;;;33381:18:103;;;33374:33;33424:19;;20256:134:77::1;33224:225:103::0;20256:134:77::1;20412:22;::::0;;;:11:::1;:22;::::0;;;;;;;;20468:7:::1;:18:::0;;;;;:28;;;;;;;;;20514:16:::1;::::0;::::1;::::0;20412:22;;-1:-1:-1;20468:28:77;20514:21;20506:69:::1;;;::::0;-1:-1:-1;;;20506:69:77;;34477:2:103;20506:69:77::1;::::0;::::1;34459:21:103::0;34516:2;34496:18;;;34489:30;34555:34;34535:18;;;34528:62;-1:-1:-1;;;34606:18:103;;;34599:33;34649:19;;20506:69:77::1;34449:225:103::0;20506:69:77::1;20586:24:::0;;;20620:13:::1;::::0;::::1;:28:::0;;;20658:18:::1;:11;::::0;::::1;20672:4:::0;;20658:18:::1;:::i;:::-;-1:-1:-1::0;20686:12:77::1;::::0;::::1;:35:::0;;-1:-1:-1;;20686:35:77::1;::::0;;20750:15:::1;20731:16;::::0;::::1;:34:::0;;;20799:16:::1;::::0;::::1;:34:::0;20701:20:::1;20868:22:::0;;;:11:::1;:22;::::0;;;;:24;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;20921:15:77::1;20902:16;::::0;::::1;:34:::0;20976:60:::1;::::0;;7642:25:103;;;7698:2;7683:18;;7676:34;;;7726:18;;;7719:34;;;7784:2;7769:18;;7762:34;;;20976:60:77::1;::::0;7629:3:103;7614:19;20976:60:77::1;;;;;;;1129:1:88;;;19563:1480:77::0;;;;;;;;:::o;7770:515::-;7870:21;7894:19;;;:8;:19;;;;;7931:16;;;;7923:68;;;;-1:-1:-1;;;7923:68:77;;32088:2:103;7923:68:77;;;32070:21:103;32127:2;32107:18;;;32100:30;32166:34;32146:18;;;32139:62;-1:-1:-1;;;32217:18:103;;;32210:33;32260:19;;7923:68:77;32060:225:103;7923:68:77;8046:6;:28;;;8036:6;8009;:24;;;:33;;;;:::i;:::-;:65;;8001:106;;;;-1:-1:-1;;;8001:106:77;;32492:2:103;8001:106:77;;;32474:21:103;32531:2;32511:18;;;32504:30;32570;32550:18;;;32543:58;32618:18;;8001:106:77;32464:178:103;8001:106:77;8146:6;8118;:24;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;8181:15:77;8162:16;;;:34;8240:38;;;7008:25:103;;;7064:2;7049:18;;7042:34;;;8240:38:77;;6981:18:103;8240:38:77;6963:119:103;8295:861:77;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;8414:21:77::1;8438:19:::0;;;:8:::1;:19;::::0;;;;8475:14:::1;::::0;::::1;::::0;8467:68:::1;;;::::0;-1:-1:-1;;;8467:68:77;;31682:2:103;8467:68:77::1;::::0;::::1;31664:21:103::0;31721:2;31701:18;;;31694:30;31760:34;31740:18;;;31733:62;-1:-1:-1;;;31811:18:103;;;31804:35;31856:19;;8467:68:77::1;31654:227:103::0;8467:68:77::1;8546:31;8580:23:::0;;;:12:::1;:23;::::0;;;;8621:21:::1;::::0;::::1;::::0;8613:78:::1;;;::::0;-1:-1:-1;;;8613:78:77;;25770:2:103;8613:78:77::1;::::0;::::1;25752:21:103::0;25809:2;25789:18;;;25782:30;25848:34;25828:18;;;25821:62;-1:-1:-1;;;25899:18:103;;;25892:38;25947:19;;8613:78:77::1;25742:230:103::0;8613:78:77::1;8730:24;8709:17:::0;;::::1;;:45;::::0;::::1;;;;-1:-1:-1::0;;;8709:45:77::1;;;;;;;;;;8701:97;;;::::0;-1:-1:-1;;;8701:97:77;;27817:2:103;8701:97:77::1;::::0;::::1;27799:21:103::0;27856:2;27836:18;;;27829:30;27895:34;27875:18;;;27868:62;-1:-1:-1;;;27946:18:103;;;27939:37;27993:19;;8701:97:77::1;27789:229:103::0;8701:97:77::1;8809:44:::0;;-1:-1:-1;;8809:44:77;;::::1;8829:24;8809:44;::::0;;8887:15:::1;8863:21;::::0;;::::1;:39:::0;;;8950:24:::1;8937:10:::0;;::::1;:37:::0;;;;::::1;;::::0;;;;8984:14;::::1;:32:::0;9055:46:::1;::::0;-1:-1:-1;;;;;;;;;;;9055:46:77;::::1;::::0;9079:9;;9090:10:::1;;::::0;9055:46:::1;:::i;:::-;;;;;;;;9117:32;::::0;6473:25:103;;;9117:32:77::1;::::0;6461:2:103;6446:18;9117:32:77::1;6428:76:103::0;14939:1420:77;15128:15;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;15159:21:77::1;15183:19:::0;;;:8:::1;:19;::::0;;;;15220:16:::1;::::0;::::1;::::0;15212:68:::1;;;::::0;-1:-1:-1;;;15212:68:77;;14397:2:103;15212:68:77::1;::::0;::::1;14379:21:103::0;14436:2;14416:18;;;14409:30;14475:34;14455:18;;;14448:62;-1:-1:-1;;;14526:18:103;;;14519:33;14569:19;;15212:68:77::1;14369:225:103::0;15212:68:77::1;15314:26;15298:12:::0;;::::1;;:42;::::0;::::1;;;;-1:-1:-1::0;;;15298:42:77::1;;;;;;;;;;15290:86;;;::::0;-1:-1:-1;;;15290:86:77;;37316:2:103;15290:86:77::1;::::0;::::1;37298:21:103::0;37355:2;37335:18;;;37328:30;37394:33;37374:18;;;37367:61;37445:18;;15290:86:77::1;37288:181:103::0;15290:86:77::1;15664:6;:22;;;15649:11;15627:6;:19;;;:33;;;;:::i;:::-;:59;;15619:117;;;::::0;-1:-1:-1;;;15619:117:77;;21291:2:103;15619:117:77::1;::::0;::::1;21273:21:103::0;21330:2;21310:18;;;21303:30;21369:34;21349:18;;;21342:62;-1:-1:-1;;;21420:18:103;;;21413:43;21473:19;;15619:117:77::1;21263:235:103::0;15619:117:77::1;15757:18;::::0;::::1;::::0;15785:19:::1;15807:17:::0;;;:6:::1;:17;::::0;;;;;;;:26;;;;;;;;15851:15:::1;::::0;::::1;::::0;15757:18;;-1:-1:-1;15807:26:77;15851:20;15843:67:::1;;;::::0;-1:-1:-1;;;15843:67:77;;26179:2:103;15843:67:77::1;::::0;::::1;26161:21:103::0;26218:2;26198:18;;;26191:30;26257:34;26237:18;;;26230:62;-1:-1:-1;;;26308:18:103;;;26301:32;26350:19;;15843:67:77::1;26151:224:103::0;15843:67:77::1;15921:32:::0;;-1:-1:-1;;15921:32:77::1;::::0;;;15963:17;::::1;:31:::0;;;16004:17:::1;:10;::::0;::::1;16017:4:::0;;16004:17:::1;:::i;:::-;-1:-1:-1::0;16049:15:77::1;16031;::::0;::::1;:33:::0;;;16098:15:::1;::::0;::::1;:33:::0;16166:18:::1;::::0;::::1;:20:::0;;;-1:-1:-1;16166:20:77::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;16196:22:77::1;::::0;::::1;:24:::0;;;:22:::1;:24;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;16249:15:77::1;16230:16;::::0;::::1;:34:::0;16304:48:::1;::::0;;7289:25:103;;;7345:2;7330:18;;7323:34;;;7373:18;;;7366:34;;;16304:48:77::1;::::0;7277:2:103;7262:18;16304:48:77::1;;;;;;;1129:1:88;;14939:1420:77::0;;;;;;;:::o;21049:1293::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;21205:21:77::1;21229:19:::0;;;:8:::1;:19;::::0;;;;21266:16:::1;::::0;::::1;::::0;21258:68:::1;;;::::0;-1:-1:-1;;;21258:68:77;;13176:2:103;21258:68:77::1;::::0;::::1;13158:21:103::0;13215:2;13195:18;;;13188:30;13254:34;13234:18;;;13227:62;-1:-1:-1;;;13305:18:103;;;13298:33;13348:19;;21258:68:77::1;13148:225:103::0;21258:68:77::1;21369:1;21344:6;:22;;;:26;21336:79;;;::::0;-1:-1:-1;;;21336:79:77;;19666:2:103;21336:79:77::1;::::0;::::1;19648:21:103::0;19705:2;19685:18;;;19678:30;19744:34;19724:18;;;19717:62;-1:-1:-1;;;19795:18:103;;;19788:38;19843:19;;21336:79:77::1;19638:230:103::0;21336:79:77::1;21426:21;21450:18:::0;;;:7:::1;:18;::::0;;;;;;;:28;;;;;;;;21496:16:::1;::::0;::::1;::::0;21488:68:::1;;;::::0;-1:-1:-1;;;21488:68:77;;26582:2:103;21488:68:77::1;::::0;::::1;26564:21:103::0;26621:2;26601:18;;;26594:30;26660:34;26640:18;;;26633:62;-1:-1:-1;;;26711:18:103;;;26704:33;26754:19;;21488:68:77::1;26554:225:103::0;21488:68:77::1;21590:20;21574:12;::::0;;::::1;::::0;::::1;;::::0;:36;::::1;;;;-1:-1:-1::0;;;21574:36:77::1;;;;;;;;;;21566:85;;;::::0;-1:-1:-1;;;21566:85:77;;10336:2:103;21566:85:77::1;::::0;::::1;10318:21:103::0;10375:2;10355:18;;;10348:30;10414:34;10394:18;;;10387:62;-1:-1:-1;;;10465:18:103;;;10458:34;10509:19;;21566:85:77::1;10308:226:103::0;21566:85:77::1;21677:27;21662:12:::0;;::::1;:42:::0;;-1:-1:-1;;21662:42:77::1;::::0;;::::1;::::0;;21733:15:::1;21714:16;::::0;::::1;:34:::0;21788:39:::1;::::0;;7008:25:103;;;7064:2;7049:18;;7042:34;;;21788:39:77::1;::::0;6981:18:103;21788:39:77::1;;;;;;;21838:19;21860:17:::0;;;:6:::1;:17;::::0;;;;;;;21878:14;;21860:33;;;;;;;21923:13:::1;::::0;;::::1;::::0;21903:16;;::::1;:33:::0;;21860;;21923:13;;21903:16;;21838:19;21903:33:::1;::::0;21923:13;;21903:33:::1;:::i;:::-;::::0;;;-1:-1:-1;;21964:15:77::1;21946;::::0;::::1;:33:::0;22079:16:::1;::::0;::::1;::::0;22058:17:::1;::::0;::::1;::::0;:37:::1;22054:282;;;22111:39:::0;;-1:-1:-1;;22111:39:77::1;22125:25;22111:39;::::0;;22165:22:::1;::::0;::::1;:27:::0;;22111:39;;22165:22;-1:-1:-1;;22165:27:77::1;::::0;22111:39;;22165:27:::1;:::i;:::-;::::0;;;-1:-1:-1;;22225:15:77::1;22206:16;::::0;::::1;:34:::0;22310:14;;22284:41:::1;::::0;;7008:25:103;;;7064:2;7049:18;;7042:34;;;;22284:41:77::1;::::0;6981:18:103;22284:41:77::1;6963:119:103::0;1530:293:88;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;6473:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;6446:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;11553:2:103;1703:113:88;;;11535:21:103;11592:2;11572:18;;;11565:30;11631:34;11611:18;;;11604:62;-1:-1:-1;;;11682:18:103;;;11675:35;11727:19;;1703:113:88;11525:227:103;24133:298:77;24212:19;:21;;24183:17;;;24212:21;;;:::i;:::-;;;;-1:-1:-1;;24353:9:77;;24381:19;;24279:135;;;24313:13;24279:135;;;4975:19:103;24353:9:77;;;;5032:2:103;5028:15;-1:-1:-1;;5028:15:103;5010:12;;;5003:75;5094:12;;;5087:28;5131:12;;24279:135:77;;;;;;;;;;;;24256:168;;;;;;24244:180;;24133:298;:::o;5242:146::-;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;34065:2:103;4880:69:47;;;34047:21:103;34104:2;34084:18;;;34077:30;34143:34;34123:18;;;34116:62;-1:-1:-1;;;34194:18:103;;;34187:41;34245:19;;4880:69:47;34037:233:103;4880:69:47;5348:32:77::1;-1:-1:-1::0;;;5348:19:77::1;:32::i;:::-;5315:10;:66:::0;;-1:-1:-1;;;;;;5315:66:77::1;-1:-1:-1::0;;;;;5315:66:77;;;::::1;::::0;;;::::1;::::0;;5242:146::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:375:103;;;129:3;122:4;114:6;110:17;106:27;96:2;;154:8;144;137:26;96:2;-1:-1:-1;184:20:103;;227:18;216:30;;213:2;;;266:8;256;249:26;213:2;310:4;302:6;298:17;286:29;;362:3;355:4;346:6;338;334:19;330:30;327:39;324:2;;;379:1;376;369:12;324:2;86:303;;;;;:::o;394:257::-;;506:2;494:9;485:7;481:23;477:32;474:2;;;527:6;519;512:22;474:2;571:9;558:23;590:31;615:5;590:31;:::i;:::-;640:5;464:187;-1:-1:-1;;;464:187:103:o;656:261::-;;779:2;767:9;758:7;754:23;750:32;747:2;;;800:6;792;785:22;747:2;837:9;831:16;856:31;881:5;856:31;:::i;922:632::-;;;;;1087:2;1075:9;1066:7;1062:23;1058:32;1055:2;;;1108:6;1100;1093:22;1055:2;1152:9;1139:23;1171:31;1196:5;1171:31;:::i;:::-;1221:5;-1:-1:-1;1273:2:103;1258:18;;1245:32;;-1:-1:-1;1328:2:103;1313:18;;1300:32;1355:18;1344:30;;1341:2;;;1392:6;1384;1377:22;1341:2;1436:58;1486:7;1477:6;1466:9;1462:22;1436:58;:::i;:::-;1045:509;;;;-1:-1:-1;1513:8:103;-1:-1:-1;;;;1045:509:103:o;1559:297::-;;1679:2;1667:9;1658:7;1654:23;1650:32;1647:2;;;1700:6;1692;1685:22;1647:2;1737:9;1731:16;1790:5;1783:13;1776:21;1769:5;1766:32;1756:2;;1817:6;1809;1802:22;1861:190;;1973:2;1961:9;1952:7;1948:23;1944:32;1941:2;;;1994:6;1986;1979:22;1941:2;-1:-1:-1;2022:23:103;;1931:120;-1:-1:-1;1931:120:103:o;2056:258::-;;;2185:2;2173:9;2164:7;2160:23;2156:32;2153:2;;;2206:6;2198;2191:22;2153:2;-1:-1:-1;;2234:23:103;;;2304:2;2289:18;;;2276:32;;-1:-1:-1;2143:171:103:o;2319:565::-;;;;;2484:2;2472:9;2463:7;2459:23;2455:32;2452:2;;;2505:6;2497;2490:22;2452:2;2546:9;2533:23;2523:33;;2603:2;2592:9;2588:18;2575:32;2565:42;;2658:2;2647:9;2643:18;2630:32;2685:18;2677:6;2674:30;2671:2;;;2722:6;2714;2707:22;2889:326;;;;3035:2;3023:9;3014:7;3010:23;3006:32;3003:2;;;3056:6;3048;3041:22;3003:2;-1:-1:-1;;3084:23:103;;;3154:2;3139:18;;3126:32;;-1:-1:-1;3205:2:103;3190:18;;;3177:32;;2993:222;-1:-1:-1;2993:222:103:o;3220:634::-;;;;;;3402:3;3390:9;3381:7;3377:23;3373:33;3370:2;;;3424:6;3416;3409:22;3370:2;3465:9;3452:23;3442:33;;3522:2;3511:9;3507:18;3494:32;3484:42;;3573:2;3562:9;3558:18;3545:32;3535:42;;3628:2;3617:9;3613:18;3600:32;3655:18;3647:6;3644:30;3641:2;;;3692:6;3684;3677:22;3641:2;3736:58;3786:7;3777:6;3766:9;3762:22;3736:58;:::i;:::-;3360:494;;;;-1:-1:-1;3360:494:103;;-1:-1:-1;3813:8:103;;3710:84;3360:494;-1:-1:-1;;;3360:494:103:o;3859:299::-;;4001:2;3989:9;3980:7;3976:23;3972:32;3969:2;;;4022:6;4014;4007:22;3969:2;4059:9;4053:16;4098:1;4091:5;4088:12;4078:2;;4119:6;4111;4104:22;4163:475;;4242:5;4236:12;4269:6;4264:3;4257:19;4294:3;4306:162;4320:6;4317:1;4314:13;4306:162;;;4382:4;4438:13;;;4434:22;;4428:29;4410:11;;;4406:20;;4399:59;4335:12;4306:162;;;4486:6;4483:1;4480:13;4477:2;;;4552:3;4545:4;4536:6;4531:3;4527:16;4523:27;4516:40;4477:2;-1:-1:-1;4620:2:103;4599:15;-1:-1:-1;;4595:29:103;4586:39;;;;4627:4;4582:50;;4212:426;-1:-1:-1;;4212:426:103:o;4643:142::-;4726:1;4719:5;4716:12;4706:2;;4732:18;;:::i;:::-;4761;;4696:89::o;5154:489::-;-1:-1:-1;;;;;5421:32:103;;5403:51;;5485:2;5470:18;;5463:34;;;5528:2;5513:18;;5506:34;;;5390:3;5375:19;;5549:45;5587:6;5549:45;:::i;:::-;5630:6;5625:2;5614:9;5610:18;5603:34;5357:286;;;;;;;:::o;5648:674::-;-1:-1:-1;;;;;5953:32:103;;5935:51;;6017:2;6002:18;;5995:34;;;5648:674;6038:45;6076:6;6038:45;:::i;:::-;6119:6;6114:2;6103:9;6099:18;6092:34;6162:3;6157:2;6146:9;6142:18;6135:31;6183:45;6223:3;6212:9;6208:19;6200:6;6183:45;:::i;:::-;6259:3;6244:19;;6237:35;;;;-1:-1:-1;6303:3:103;6288:19;6281:35;6175:53;5925:397;-1:-1:-1;;;;5925:397:103:o;6509:320::-;6701:25;;;6689:2;6674:18;;6735:45;6773:6;6735:45;:::i;:::-;6816:6;6811:2;6800:9;6796:18;6789:34;6656:173;;;;;:::o;7807:650::-;;8095:46;8134:6;8095:46;:::i;:::-;8168:6;8157:9;8150:25;8211:6;8206:2;8195:9;8191:18;8184:34;8254:6;8249:2;8238:9;8234:18;8227:34;8297:3;8292:2;8281:9;8277:18;8270:31;8318:45;8358:3;8347:9;8343:19;8335:6;8318:45;:::i;9111:819::-;9483:3;9468:19;;9496:45;9534:6;9496:45;:::i;:::-;9550:25;;;9606:2;9591:18;;9584:34;;;;9649:2;9634:18;;9627:34;;;;9692:2;9677:18;;9670:34;;;;9735:3;9720:19;;9713:35;;;;9779:3;9764:19;;9757:35;9823:3;9808:19;;9801:35;9867:3;9852:19;;9845:35;9911:3;9896:19;;;9889:35;9450:480;:::o;28839:352::-;29041:2;29023:21;;;29080:2;29060:18;;;29053:30;29119;29114:2;29099:18;;29092:58;29182:2;29167:18;;29013:178::o;34679:397::-;34881:2;34863:21;;;34920:2;34900:18;;;34893:30;34959:34;34954:2;34939:18;;34932:62;-1:-1:-1;;;35025:2:103;35010:18;;35003:31;35066:3;35051:19;;34853:223::o;37474:749::-;;37661:2;37650:9;37643:21;37689:6;37683:13;37705:42;37744:2;37705:42;:::i;:::-;37783:2;37778;37767:9;37763:18;37756:30;;37840:2;37832:6;37828:15;37822:22;37817:2;37806:9;37802:18;37795:50;37899:2;37891:6;37887:15;37881:22;37876:2;37865:9;37861:18;37854:50;37951:2;37943:6;37939:15;37933:22;37992:4;37986:3;37975:9;37971:19;37964:33;38020:51;38066:3;38055:9;38051:19;38037:12;38020:51;:::i;:::-;38006:65;;38126:3;38118:6;38114:16;38108:23;38102:3;38091:9;38087:19;38080:52;38188:3;38180:6;38176:16;38170:23;38163:4;38152:9;38148:20;38141:53;38211:6;38203:14;;;37633:590;;;;:::o;38970:802::-;;39151:2;39140:9;39133:21;39226:1;39222;39217:3;39213:11;39209:19;39200:6;39194:13;39190:39;39185:2;39174:9;39170:18;39163:67;39284:2;39276:6;39272:15;39266:22;39261:2;39250:9;39246:18;39239:50;39336:2;39328:6;39324:15;39318:22;39349:51;39387:12;39349:51;:::i;:::-;39436:12;39431:2;39420:9;39416:18;39409:40;;39498:2;39490:6;39486:15;39480:22;39539:4;39533:3;39522:9;39518:19;39511:33;39567:53;39615:3;39604:9;39600:19;39584:14;39567:53;:::i;39777:733::-;;39954:2;39943:9;39936:21;39999:6;39993:13;39988:2;39977:9;39973:18;39966:41;40054:2;40046:6;40042:15;40036:22;40067:61;40124:2;40113:9;40109:18;40095:12;40067:61;:::i;:::-;;40182:2;40174:6;40170:15;40164:22;40159:2;40148:9;40144:18;40137:50;40236:2;40228:6;40224:15;40218:22;40277:4;40271:3;40260:9;40256:19;40249:33;40305:53;40353:3;40342:9;40338:19;40322:14;40305:53;:::i;40515:829::-;40720:13;;40697:3;40682:19;;;40742:41;40720:13;40742:41;:::i;:::-;40810:2;40799:9;40792:21;;40869:4;40861:6;40857:17;40851:24;40844:4;40833:9;40829:20;40822:54;40932:4;40924:6;40920:17;40914:24;40907:4;40896:9;40892:20;40885:54;40995:4;40987:6;40983:17;40977:24;40970:4;40959:9;40955:20;40948:54;41058:4;41050:6;41046:17;41040:24;41033:4;41022:9;41018:20;41011:54;41121:4;41113:6;41109:17;41103:24;41096:4;41085:9;41081:20;41074:54;41184:4;41176:6;41172:17;41166:24;41159:4;41148:9;41144:20;41137:54;41247:4;41239:6;41235:17;41229:24;41222:4;41211:9;41207:20;41200:54;41273:6;41333:2;41325:6;41321:15;41315:22;41310:2;41299:9;41295:18;41288:50;;40664:680;;;;:::o;41531:611::-;;41832:6;41821:9;41814:25;41848:55;41899:2;41888:9;41884:18;41876:6;41848:55;:::i;42147:128::-;;42218:1;42214:6;42211:1;42208:13;42205:2;;;42224:18;;:::i;:::-;-1:-1:-1;42260:9:103;;42195:80::o;42280:125::-;;42348:1;42345;42342:8;42339:2;;;42353:18;;:::i;:::-;-1:-1:-1;42390:9:103;;42329:76::o;42410:136::-;;42477:5;42467:2;;42486:18;;:::i;:::-;-1:-1:-1;;;42522:18:103;;42457:89::o;42551:380::-;42636:1;42626:12;;42683:1;42673:12;;;42694:2;;42748:4;42740:6;42736:17;42726:27;;42694:2;42801;42793:6;42790:14;42770:18;42767:38;42764:2;;;42847:10;42842:3;42838:20;42835:1;42828:31;42882:4;42879:1;42872:15;42910:4;42907:1;42900:15;42764:2;;42606:325;;;:::o;42936:135::-;;-1:-1:-1;;42996:17:103;;42993:2;;;43016:18;;:::i;:::-;-1:-1:-1;43063:1:103;43052:13;;42983:88::o;43076:127::-;43137:10;43132:3;43128:20;43125:1;43118:31;43168:4;43165:1;43158:15;43192:4;43189:1;43182:15;43208:127;43269:10;43264:3;43260:20;43257:1;43250:31;43300:4;43297:1;43290:15;43324:4;43321:1;43314:15;43340:121;43429:1;43422:5;43419:12;43409:2;;43435:18;;:::i;:::-;43399:62;:::o;43466:120::-;43554:1;43547:5;43544:12;43534:2;;43560:18;;:::i;43591:131::-;-1:-1:-1;;;;;43666:31:103;;43656:42;;43646:2;;43712:1;43709;43702:12"},"methodIdentifiers":{"adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","applications(bytes32)":"4cafa121","claims(bytes32,uint256)":"9e81f96a","closeClaim(bytes32,uint256)":"7f29dba2","closePolicy(bytes32)":"adcadb28","collectPremium(bytes32,uint256)":"e3ebdea5","confirmClaim(bytes32,uint256,uint256)":"4e02c63f","createApplication(bytes32,uint256,uint256,bytes)":"6780336e","createClaim(bytes32,uint256,bytes)":"ec935668","createPayout(bytes32,uint256,uint256,bytes)":"db42b77b","createPolicy(bytes32)":"4c14ccc2","createPolicyFlow(address,uint256,bytes)":"a1814a1a","declineApplication(bytes32)":"296d6c7d","declineClaim(bytes32,uint256)":"4cda0de9","expirePolicy(bytes32)":"47e3b138","getApplication(bytes32)":"bc506f64","getClaim(bytes32,uint256)":"7f22c2d9","getMetadata(bytes32)":"a5961b4c","getNumberOfClaims(bytes32)":"b1e25988","getNumberOfPayouts(bytes32)":"be183b11","getPayout(bytes32,uint256)":"cef58f13","getPolicy(bytes32)":"a3f685f9","initialize(address)":"c4d66de8","metadata(bytes32)":"7122ba06","payoutCount(bytes32)":"357f030a","payouts(bytes32,uint256)":"80f2122c","policies(bytes32)":"ddbfd8ef","processIds()":"a427056e","processPayout(bytes32,uint256)":"fe64372b","revokeApplication(bytes32)":"eb96cbed","underwriteApplication(bytes32)":"5c955288"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationPremiumAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"LogApplicationSumInsuredAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogApplicationUnderwritten\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"LogClaimClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"LogClaimConfirmed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"LogClaimCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"LogClaimDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"}],\"name\":\"LogMetadataCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"}],\"name\":\"LogMetadataStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogPayoutCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"LogPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyClosed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"LogPolicyExpired\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmountOld\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"}],\"name\":\"LogPolicyPremiumAdjusted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogPremiumCollected\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"applications\",\"outputs\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"enum IPolicy.ClaimState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paidAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"closeClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"closePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"confirmClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"createPolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"createPolicyFlow\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"declineApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"declineClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"expirePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getApplication\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"getClaim\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ClaimState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paidAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Claim\",\"name\":\"claim\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getNumberOfClaims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfClaims\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getNumberOfPayouts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPayouts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"getPayout\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PayoutState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Payout\",\"name\":\"payout\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getPolicy\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.PolicyState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premiumPaidAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openClaimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutMaxAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Policy\",\"name\":\"policy\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"metadata\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"payoutCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"payouts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PayoutState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"policies\",\"outputs\":[{\"internalType\":\"enum IPolicy.PolicyState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premiumPaidAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openClaimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutMaxAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"processIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"revokeApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwriteApplication\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract implements functions for policy operations, including creation, update, cancellation, and retrieval. It also provides functions for claim creation, confirmation, decline, closure, and payout creation. Additionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy. The contract inherits from the `IPolicy` interface and the `CoreController` contract. 1. State Variables: - `metadata`: A mapping that stores metadata associated with policy flows. - `applications`: A mapping that stores insurance applications associated with policy flows. - `policies`: A mapping that stores policies associated with policy flows. - `claims`: A nested mapping that stores claims associated with policies. - `payouts`: A nested mapping that stores payouts associated with policies. - `payoutCount`: A mapping that stores the count of payouts for each policy flow. - `_assigendProcessIds`: A counter variable for assigning unique process IDs. - `_component`: A reference to the `ComponentController` contract. 2. Functions: - `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization. - `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data. - `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data. - `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount. - `revokeApplication()`: Revokes an application for a policy flow. - `underwriteApplication()`: Changes the state of an application to \\\"Underwritten\\\". - `declineApplication()`: Declines an application for a policy flow. - `createPolicy()`: Creates a new policy for a given application process ID. - `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application. - `expirePolicy()`: Expires a policy with the given process ID. - `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims. - `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event. - `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event. - `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event. - `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event. - `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event. - `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event. - `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists. - `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists. - `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function. - `getNumberOfPayouts()`: Returns the number of payouts for a given process ID. Overall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/PolicyController.sol\":\"PolicyController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/PoolController.sol":{"PoolController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralizationFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolCollateralizationSucceeded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"address","name":"erc20Token","type":"address"},{"indexed":false,"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"LogRiskpoolRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"sumInsured","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateral","type":"uint256"}],"name":"LogRiskpoolRequiredCollateral","type":"event"},{"inputs":[],"name":"COLLATERALIZATION_LEVEL_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FULL_COLLATERALIZATION_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"numberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"addBundleIdToActiveSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"calculateCollateral","outputs":[{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"bundleIdx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"}],"name":"getRiskPoolForProduct","outputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpool","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredAtRisk","type":"uint256"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPool.Pool","name":"riskPool","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"registerRiskpool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"removeBundleIdFromActiveSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"riskpools","outputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"maxNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"setRiskpoolForProduct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61304d80620000f46000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063a65e2cfd116100c3578063eb8021141161007c578063eb802114146102ad578063ec833b0c146102cd578063edb5be30146102e0578063f1d354d0146102e8578063f93b3673146102f6578063fe64372b146103095761014d565b8063a65e2cfd14610239578063c397ae391461024c578063c4d66de81461025f578063d229f3b014610272578063d407ba0014610292578063da68771a146102a55761014d565b806367d42a8b1161011557806367d42a8b146101d25780637cdb808d146101e55780637db32844146101f8578063950be8031461020b578063a054381f1461021e578063a4266a66146102265761014d565b806302108268146101525780631b07b17f146101675780632127fd481461018f57806345fe1c6d146101a257806357419e8f146101bf575b600080fd5b610165610160366004612b08565b61031c565b005b61017a610175366004612af0565b610643565b60405190151581526020015b60405180910390f35b61016561019d366004612d4a565b610c1b565b6101b1670de0b6b3a764000081565b604051908152602001610186565b6101656101cd366004612cf9565b610ce3565b6101656101e0366004612af0565b611030565b6101b16101f3366004612d4a565b611401565b6101b1610206366004612af0565b611461565b610165610219366004612d4a565b611476565b6007546101b1565b6101b1610234366004612af0565b61154d565b610165610247366004612d4a565b61156a565b61016561025a366004612d4a565b6116bf565b61016561026d366004612a98565b611819565b6101b1610280366004612af0565b60009081526003602052604090205490565b6101656102a0366004612d4a565b611997565b6101b1611afd565b6102c06102bb366004612af0565b611b13565b6040516101869190612e98565b6101b16102db366004612d4a565b611c78565b6101b1600181565b670de0b6b3a76400006101b1565b610165610304366004612d4a565b611d07565b610165610317366004612b08565b611fa5565b63141bdbdb60e21b61032d8161245e565b6001600160a01b0316306001600160a01b0316146103665760405162461bcd60e51b815260040161035d90612e20565b60405180910390fd5b6103806d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146103b05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156103f957600080fd5b505afa15801561040d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104359190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190612b29565b60068111156104e957634e487b7160e01b600052602160045260246000fd5b146105065760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105879190810190612bf6565b9050600061059482612546565b604051630d8a70f160e21b8152600481018a9052602481018990529091506001600160a01b03821690633629c3c490604401600060405180830381600087803b1580156105e057600080fd5b505af11580156105f4573d6000803e3d6000fd5b505050506020828101516000908152600382526040808220548083526004909352812060088101805491928b9261062c908490612f65565b909155505042600a90910155505050505050505050565b600063141bdbdb60e21b6106568161245e565b6001600160a01b0316306001600160a01b0316146106865760405162461bcd60e51b815260040161035d90612e20565b6106a06d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146106d05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561071957600080fd5b505afa15801561072d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107559190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612b29565b600681111561080957634e487b7160e01b600052602160045260246000fd5b146108265760405162461bcd60e51b815260040161035d90612d5c565b600954604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a79190810190612b48565b90506000815160038111156108cc57634e487b7160e01b600052602160045260246000fd5b146109295760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f4c2d3032303a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b606482015260840161035d565b60095460405163296586d360e21b8152600481018990526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561096e57600080fd5b505afa158015610982573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109aa9190810190612bf6565b602080820151600090815260039091526040808220549085015192935091906109d38383611401565b60008c81526002602090815260409182902083905581518e81529081018590529081018290529091507f893c64de8e253703b31297be336c07a93e39fe8eaa32127e2e6fff090f0aefae9060600160405180910390a160008381526004602052604090206005810154610a47908490612f65565b81600401541015610ab25760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a504f4c2d3032323a5249534b504f4f4c5f53554d5f494e53555260448201526e115117d0d05417d15610d151511151608a1b606482015260840161035d565b6000610abd86612546565b604051631121f7ef60e31b8152600481018f9052602481018590529091506001600160a01b0382169063890fbf7890604401602060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190612ad0565b9b508b15610bc95783826005016000828254610b5d9190612f65565b9250508190555082826007016000828254610b789190612f65565b909155505042600a83015560408051868152602081018f90529081018590527f66a2033a32603d30bde9ec2b858820c3202972f4ee1c8dd2c6e18391b6bfbaeb9060600160405180910390a1610c0b565b60408051868152602081018f90529081018590527fc6e314ad1256dc0c682dc6bb53e940b53f14aa323070798a8423a7f1d965d0599060600160405180910390a15b5050505050505050505050919050565b610c366e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610c665760405162461bcd60e51b815260040161035d90612dde565b60008111610cd15760405162461bcd60e51b815260206004820152603260248201527f4552524f523a504f4c2d3033323a4d41585f4e554d4245525f4f465f41435449604482015271159157d0955391131154d7d253959053125160721b606482015260840161035d565b60009182526005602052604090912055565b610cfe6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610d2e5760405162461bcd60e51b815260040161035d90612dde565b60008581526004602090815260408083206007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018a90556005909352922055600981015415610ddc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030353a5249534b504f4f4c5f414c52454144595f526044820152681151d254d51154915160ba1b606482015260840161035d565b6001600160a01b038516610e3c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3030363a57414c4c45545f414444524553535f5a45526044820152604f60f81b606482015260840161035d565b6001600160a01b038416610e925760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030373a45524332305f414444524553535f5a45524f604482015260640161035d565b610ea5670de0b6b3a76400006002612f9d565b831115610f0b5760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a504f4c2d3030383a434f4c4c41544552414c495a4154494f4e5f60448201526d0d88aac8ad8bea89e9ebe90928e960931b606482015260840161035d565b60008211610f6d5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030393a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b606482015260840161035d565b8581556001810180546001600160a01b038781166001600160a01b031992831681179093556002840180549188169190921681179091556003830185905560048301849055600060058401819055600684018190556007840181905560088401554260098401819055600a84015560408051898152602081019390935282015260608101849052608081018390527f798f4ae5a0a1e2125e89cf9f810639cd05f69896db5bd4f928bd53e6ef3bf8b99060a00160405180910390a1505050505050565b63141bdbdb60e21b6110418161245e565b6001600160a01b0316306001600160a01b0316146110715760405162461bcd60e51b815260040161035d90612e20565b61108b6d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146110bb5760405162461bcd60e51b815260040161035d90612e57565b60095460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111399190612c74565b905060028151600281111561115e57634e487b7160e01b600052602160045260246000fd5b146111b65760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3032353a504f4c4943595f53544154455f494e56414c604482015261125160f21b606482015260840161035d565b60095460405163296586d360e21b8152600481018590526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156111fb57600080fd5b505afa15801561120f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112379190810190612bf6565b9050600061124482612546565b604051636180264360e11b8152600481018790529091506001600160a01b0382169063c3004c8690602401600060405180830381600087803b15801561128957600080fd5b505af115801561129d573d6000803e3d6000fd5b5050600954604051632f141bd960e21b815260048101899052600093506001600160a01b03909116915063bc506f649060240160006040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113249190810190612b48565b6020808501516000908152600382526040808220548083526004845281832060c08a01518c855260029095529183205494955093909261136391612fbc565b9050836040015182600501600082825461137d9190612fbc565b92505081905550808260070160008282546113989190612fbc565b909155505042600a83015560008981526002602090815260408083209290925581518581529081018b90529081018290527f4948a5a8dbd6a1190cb403d7731211af859364368aafe64e104d3f3b07e846cf9060600160405180910390a1505050505050505050565b60008061140d84611b13565b606001519050670de0b6b3a764000081141561142b5782915061145a565b801561145557670de0b6b3a76400006114448483612f9d565b61144e9190612f7d565b915061145a565b600091505b5092915050565b6000818152600560205260409020545b919050565b6114916e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146114c15760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206114d990826125bf565b6115305760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034343a42554e444c455f49445f4e4f545f494e5f53604482015261115560f21b606482015260840161035d565b600082815260066020526040902061154890826125d7565b505050565b6000818152600660205260408120611564906125e3565b92915050565b6115856e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146115b55760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116349190612b29565b600681111561165357634e487b7160e01b600052602160045260246000fd5b146116705760405162461bcd60e51b815260040161035d90612d9d565b600083815260046020526040812060068101805491928592611693908490612f65565b92505081905550828160080160008282546116ae9190612f65565b909155505042600a90910155505050565b6116da6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b03161461170a5760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561175157600080fd5b505afa158015611765573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117899190612b29565b60068111156117a857634e487b7160e01b600052602160045260246000fd5b146117c55760405162461bcd60e51b815260040161035d90612d9d565b6000838152600460205260409020600681015483116117fd57828160060160008282546117f29190612fbc565b909155506118059050565b600060068201555b828160080160008282546116ae9190612fbc565b600054610100900460ff16158080156118395750600054600160ff909116105b806118535750303b158015611853575060005460ff166001145b6118b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161035d565b6000805460ff1916600117905580156118d9576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611903600090565b6541636365737360d01b14611945576119246541636365737360d01b61245e565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61194d6125ed565b8015611993576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6119b26e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146119e25760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206119fa90826125bf565b15611a565760405162461bcd60e51b815260206004820152602660248201527f4552524f523a504f4c2d3034323a42554e444c455f49445f414c52454144595f604482015265125397d4d15560d21b606482015260840161035d565b6000828152600560209081526040808320546006909252909120611a79906125e3565b10611ae55760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f4c2d3034333a4d4158494d554d5f4e554d4245525f4f465f6044820152751050d512559157d0955391131154d7d4915050d2115160521b606482015260840161035d565b600082815260066020526040902061154890826126f3565b611b10670de0b6b3a76400006002612f9d565b81565b611b826040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506000818152600460208181526040928390208351610160810185528154815260018201546001600160a01b039081169382019390935260028201549092169382019390935260038301546060820152908201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201546101208201819052600a90920154610140820152906114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034303a5249534b504f4f4c5f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b6000828152600660205260408120611c8f906125e3565b8210611ce85760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034313a42554e444c455f4944585f544f4f5f4c4152604482015261474560f01b606482015260840161035d565b6000838152600660205260409020611d0090836126ff565b9392505050565b611d307f496e7374616e63654f70657261746f725365727669636500000000000000000061245e565b6001600160a01b0316336001600160a01b031614611d9c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f4c2d3030313a4e4f545f494e5354414e43455f4f504552416044820152622a27a960e91b606482015260840161035d565b600854604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b158015611de057600080fd5b505afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612ad0565b611e645760405162461bcd60e51b815260206004820152601960248201527f4552524f523a504f4c2d3031303a4e4f545f50524f4455435400000000000000604482015260640161035d565b60085460405163ba80b8ed60e01b8152600481018390526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611ea857600080fd5b505afa158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee09190612ad0565b611f2c5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a504f4c2d3031313a4e4f545f5249534b504f4f4c000000000000604482015260640161035d565b60008281526003602052604090205415611f935760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3031323a5249534b504f4f4c5f414c52454144595f53604482015261115560f21b606482015260840161035d565b60009182526003602052604090912055565b63141bdbdb60e21b611fb68161245e565b6001600160a01b0316306001600160a01b031614611fe65760405162461bcd60e51b815260040161035d90612e20565b6120006d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146120305760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561207957600080fd5b505afa15801561208d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120b59190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561211257600080fd5b505afa158015612126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214a9190612b29565b600681111561216957634e487b7160e01b600052602160045260246000fd5b146121865760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156121cb57600080fd5b505afa1580156121df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122079190810190612bf6565b60208082015160009081526003825260408082205480835260049093529020600981015492935090916122865760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3032363a5249534b504f4f4c5f49445f494e56414c496044820152601160fa1b606482015260840161035d565b87816006015410156122da5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032373a4341504954414c5f544f4f5f4c4f57000000604482015260640161035d565b878160070154101561233a5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3032383a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b606482015260840161035d565b878160080154101561238e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032393a42414c414e43455f544f4f5f4c4f57000000604482015260640161035d565b878160060160008282546123a29190612fbc565b92505081905550878160070160008282546123bd9190612fbc565b92505081905550878160080160008282546123d89190612fbc565b909155505042600a82015560006123ee84612546565b60405163412ac48360e11b8152600481018c9052602481018b90529091506001600160a01b03821690638255890690604401600060405180830381600087803b15801561243a57600080fd5b505af115801561244e573d6000803e3d6000fd5b5050505050505050505050505050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156124a857600080fd5b505afa1580156124bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e09190612ab4565b90506001600160a01b0381166114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b602080820151600090815260039091526040812054806125b65760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034353a5249534b504f4f4c5f444f45535f4e4f545f60448201526411561254d560da1b606482015260840161035d565b611d008161270b565b60008181526001830160205260408120541515611d00565b6000611d00838361285d565b6000611564825490565b600054610100900460ff166126585760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161035d565b61266d6810dbdb5c1bdb995b9d60ba1b61245e565b600880546001600160a01b0319166001600160a01b039290921691909117905561269f65506f6c69637960d01b61245e565b600980546001600160a01b0319166001600160a01b03929092169190911790556126d16542756e646c6560d01b61245e565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000611d00838361297a565b6000611d0083836129c9565b60085460405163ba80b8ed60e01b8152600481018390526000916001600160a01b03169063ba80b8ed9060240160206040518083038186803b15801561275057600080fd5b505afa158015612764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127889190612ad0565b6127e05760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3034363a434f4d504f4e454e545f4e4f545f5249534b6044820152631413d3d360e21b606482015260840161035d565b6008546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561282557600080fd5b505afa158015612839573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d009190612ab4565b60008181526001830160205260408120548015612970576000612881600183612fbc565b855490915060009061289590600190612fbc565b90508181146129165760008660000182815481106128c357634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106128f457634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061293557634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611564565b6000915050611564565b60008181526001830160205260408120546129c157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611564565b506000611564565b60008260000182815481106129ee57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b600082601f830112612a11578081fd5b815167ffffffffffffffff811115612a2b57612a2b612fe9565b6020612a3f601f8301601f19168201612f34565b8281528582848701011115612a52578384fd5b835b83811015612a6f578581018301518282018401528201612a54565b83811115612a7f57848385840101525b5095945050505050565b80516003811061147157600080fd5b600060208284031215612aa9578081fd5b8135611d0081612fff565b600060208284031215612ac5578081fd5b8151611d0081612fff565b600060208284031215612ae1578081fd5b81518015158114611d00578182fd5b600060208284031215612b01578081fd5b5035919050565b60008060408385031215612b1a578081fd5b50508035926020909101359150565b600060208284031215612b3a578081fd5b815160078110611d00578182fd5b600060208284031215612b59578081fd5b815167ffffffffffffffff80821115612b70578283fd5b9083019060c08286031215612b83578283fd5b612b8d60c0612f34565b825160048110612b9b578485fd5b808252506020830151602082015260408301516040820152606083015182811115612bc4578485fd5b612bd087828601612a01565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612c07578081fd5b815167ffffffffffffffff80821115612c1e578283fd5b9083019060c08286031215612c31578283fd5b612c3b60c0612f34565b8251612c4681612fff565b815260208381015190820152612c5e60408401612a89565b6040820152606083015182811115612bc4578485fd5b6000610120808385031215612c87578182fd5b612c9081612f34565b9050612c9b83612a89565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080600080600060a08688031215612d10578081fd5b853594506020860135612d2281612fff565b93506040860135612d3281612fff565b94979396509394606081013594506080013592915050565b60008060408385031215612b1a578182fd5b60208082526021908201527f4552524f523a504f4c2d3030343a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526021908201527f4552524f523a504f4c2d3030333a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526022908201527f4552524f523a504f4c2d3030323a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b81518152602080830151610160830191612ebc908401826001600160a01b03169052565b506040830151612ed760408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612f5d57612f5d612fe9565b604052919050565b60008219821115612f7857612f78612fd3565b500190565b600082612f9857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612fb757612fb7612fd3565b500290565b600082821015612fce57612fce612fd3565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461301457600080fd5b5056fea2646970667358221220c3bffcc2760e53be86521cfbd777e61c2feecb4d34921b699ff2b261b3d0a62164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x22 JUMP JUMPDEST PUSH3 0xE4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xE2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x304D DUP1 PUSH3 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA65E2CFD GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xEB802114 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xEB802114 EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0xEC833B0C EQ PUSH2 0x2CD JUMPI DUP1 PUSH4 0xEDB5BE30 EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xF93B3673 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x309 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0xA65E2CFD EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0xC397AE39 EQ PUSH2 0x24C JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0xD229F3B0 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0xD407BA00 EQ PUSH2 0x292 JUMPI DUP1 PUSH4 0xDA68771A EQ PUSH2 0x2A5 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x67D42A8B GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x67D42A8B EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0x7CDB808D EQ PUSH2 0x1E5 JUMPI DUP1 PUSH4 0x7DB32844 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0x950BE803 EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0xA4266A66 EQ PUSH2 0x226 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x2108268 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x2127FD48 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x57419E8F EQ PUSH2 0x1BF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x165 PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B08 JUMP JUMPDEST PUSH2 0x31C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17A PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x165 PUSH2 0x19D CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x1B1 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x186 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x1CD CALLDATASIZE PUSH1 0x4 PUSH2 0x2CF9 JUMP JUMPDEST PUSH2 0xCE3 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x1E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1030 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x1F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1401 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x206 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1461 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x219 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1476 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x1B1 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x234 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x154D JUMP JUMPDEST PUSH2 0x165 PUSH2 0x247 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x156A JUMP JUMPDEST PUSH2 0x165 PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x16BF JUMP JUMPDEST PUSH2 0x165 PUSH2 0x26D CALLDATASIZE PUSH1 0x4 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x1819 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1997 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x1AFD JUMP JUMPDEST PUSH2 0x2C0 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1B13 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1B1 PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x1B1 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x304 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1D07 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x317 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B08 JUMP JUMPDEST PUSH2 0x1FA5 JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x32D DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x366 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x380 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x40D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x435 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x492 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4CA SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x4E9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x506 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x55F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x587 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x594 DUP3 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD8A70F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x3629C3C4 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE DUP2 KECCAK256 PUSH1 0x8 DUP2 ADD DUP1 SLOAD SWAP2 SWAP3 DUP12 SWAP3 PUSH2 0x62C SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA SWAP1 SWAP2 ADD SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x656 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x686 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x6A0 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x719 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x72D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x755 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7EA SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x809 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x86B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x87F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B48 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x8CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x929 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032303A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x96E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x982 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x9AA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 DUP6 ADD MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 PUSH2 0x9D3 DUP4 DUP4 PUSH2 0x1401 JUMP JUMPDEST PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE DUP2 MLOAD DUP15 DUP2 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0x893C64DE8E253703B31297BE336C07A93E39FE8EAA32127E2E6FFF090F0AEFAE SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 DUP2 ADD SLOAD PUSH2 0xA47 SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST DUP2 PUSH1 0x4 ADD SLOAD LT ISZERO PUSH2 0xAB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032323A5249534B504F4F4C5F53554D5F494E535552 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x115117D0D05417D15610D151511151 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xABD DUP7 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1121F7EF PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x890FBF78 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB41 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST SWAP12 POP DUP12 ISZERO PUSH2 0xBC9 JUMPI DUP4 DUP3 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB5D SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP3 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB78 SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x66A2033A32603D30BDE9EC2B858820C3202972F4EE1C8DD2C6E18391B6BFBAEB SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xC6E314AD1256DC0C682DC6BB53E940B53F14AA323070798A8423A7F1D965D059 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC36 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC66 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3033323A4D41585F4E554D4245525F4F465F41435449 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x159157D0955391131154D7D2539590531251 PUSH1 0x72 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xCFE PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP11 SWAP1 SSTORE PUSH1 0x5 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SSTORE PUSH1 0x9 DUP2 ADD SLOAD ISZERO PUSH2 0xDDC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030353A5249534B504F4F4C5F414C52454144595F52 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1151D254D511549151 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0xE3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030363A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xE92 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030373A45524332305F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0xEA5 PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 PUSH2 0x2F9D JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0xF0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030383A434F4C4C41544552414C495A4154494F4E5F PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0xD88AAC8AD8BEA89E9EBE90928E9 PUSH1 0x93 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 GT PUSH2 0xF6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030393A53554D5F4F465F53554D5F494E5355524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F4341505F5A45524F PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP6 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x2 DUP5 ADD DUP1 SLOAD SWAP2 DUP9 AND SWAP2 SWAP1 SWAP3 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP4 ADD DUP6 SWAP1 SSTORE PUSH1 0x4 DUP4 ADD DUP5 SWAP1 SSTORE PUSH1 0x0 PUSH1 0x5 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x6 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x7 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP5 ADD SSTORE TIMESTAMP PUSH1 0x9 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0xA DUP5 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x798F4AE5A0A1E2125E89CF9F810639CD05F69896DB5BD4F928BD53E6EF3BF8B9 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1041 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1071 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x108B PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1115 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1139 SWAP2 SWAP1 PUSH2 0x2C74 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x115E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x11B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032353A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x120F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1237 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1244 DUP3 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x61802643 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC3004C86 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x129D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x0 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1324 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B48 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 DUP5 MSTORE DUP2 DUP4 KECCAK256 PUSH1 0xC0 DUP11 ADD MLOAD DUP13 DUP6 MSTORE PUSH1 0x2 SWAP1 SWAP6 MSTORE SWAP2 DUP4 KECCAK256 SLOAD SWAP5 SWAP6 POP SWAP4 SWAP1 SWAP3 PUSH2 0x1363 SWAP2 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x40 ADD MLOAD DUP3 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x137D SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP3 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1398 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP4 ADD SSTORE PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP1 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x4948A5A8DBD6A1190CB403D7731211AF859364368AAFE64E104D3F3B07E846CF SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x140D DUP5 PUSH2 0x1B13 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP1 POP PUSH8 0xDE0B6B3A7640000 DUP2 EQ ISZERO PUSH2 0x142B JUMPI DUP3 SWAP2 POP PUSH2 0x145A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1455 JUMPI PUSH8 0xDE0B6B3A7640000 PUSH2 0x1444 DUP5 DUP4 PUSH2 0x2F9D JUMP JUMPDEST PUSH2 0x144E SWAP2 SWAP1 PUSH2 0x2F7D JUMP JUMPDEST SWAP2 POP PUSH2 0x145A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1491 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x14D9 SWAP1 DUP3 PUSH2 0x25BF JUMP JUMPDEST PUSH2 0x1530 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034343A42554E444C455F49445F4E4F545F494E5F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1155 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1548 SWAP1 DUP3 PUSH2 0x25D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1564 SWAP1 PUSH2 0x25E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1585 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x15B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST DUP2 PUSH1 0x3 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1610 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1634 SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1653 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1670 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D9D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x6 DUP2 ADD DUP1 SLOAD SWAP2 SWAP3 DUP6 SWAP3 PUSH2 0x1693 SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16AE SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA SWAP1 SWAP2 ADD SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x16DA PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x170A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST DUP2 PUSH1 0x3 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1751 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1765 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1789 SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x17A8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x17C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D9D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD DUP4 GT PUSH2 0x17FD JUMPI DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x17F2 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1805 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 DUP3 ADD SSTORE JUMPDEST DUP3 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16AE SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1839 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1853 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1853 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x18B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x18D9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1903 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1945 JUMPI PUSH2 0x1924 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x194D PUSH2 0x25ED JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1993 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x19B2 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19FA SWAP1 DUP3 PUSH2 0x25BF JUMP JUMPDEST ISZERO PUSH2 0x1A56 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034323A42554E444C455F49445F414C52454144595F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x125397D4D155 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH2 0x1A79 SWAP1 PUSH2 0x25E3 JUMP JUMPDEST LT PUSH2 0x1AE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034333A4D4158494D554D5F4E554D4245525F4F465F PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x1050D512559157D0955391131154D7D4915050D21151 PUSH1 0x52 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1548 SWAP1 DUP3 PUSH2 0x26F3 JUMP JUMPDEST PUSH2 0x1B10 PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 PUSH2 0x2F9D JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH2 0x1B82 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH2 0x160 DUP2 ADD DUP6 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP1 SWAP3 AND SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH2 0x120 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xA SWAP1 SWAP3 ADD SLOAD PUSH2 0x140 DUP3 ADD MSTORE SWAP1 PUSH2 0x1471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034303A5249534B504F4F4C5F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1C8F SWAP1 PUSH2 0x25E3 JUMP JUMPDEST DUP3 LT PUSH2 0x1CE8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034313A42554E444C455F4944585F544F4F5F4C4152 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4745 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1D00 SWAP1 DUP4 PUSH2 0x26FF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1D30 PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1D9C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E18 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x1E64 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031303A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EE0 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x1F2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031313A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1F93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031323A5249534B504F4F4C5F414C52454144595F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1155 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1FB6 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1FE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x2000 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2030 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2079 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x208D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x20B5 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2126 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x214A SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2169 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2186 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21DF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2207 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP1 KECCAK256 PUSH1 0x9 DUP2 ADD SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH2 0x2286 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032363A5249534B504F4F4C5F49445F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x22DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032373A4341504954414C5F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO PUSH2 0x233A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032383A4C4F434B45445F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F4C4F57 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x8 ADD SLOAD LT ISZERO PUSH2 0x238E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032393A42414C414E43455F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23A2 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP8 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23BD SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP8 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23D8 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP3 ADD SSTORE PUSH1 0x0 PUSH2 0x23EE DUP5 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x412AC483 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x82558906 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x243A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x244E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24E0 SWAP2 SWAP1 PUSH2 0x2AB4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x25B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034353A5249534B504F4F4C5F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x1D00 DUP2 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1D00 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x285D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1564 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2658 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x266D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x269F PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x26D1 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x297A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x29C9 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2750 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2764 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2788 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x27E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034363A434F4D504F4E454E545F4E4F545F5249534B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1413D3D3 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2825 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2839 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D00 SWAP2 SWAP1 PUSH2 0x2AB4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x2970 JUMPI PUSH1 0x0 PUSH2 0x2881 PUSH1 0x1 DUP4 PUSH2 0x2FBC JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2895 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x2916 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x28C3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x28F4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x2935 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x29C1 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1564 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x29EE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A11 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A2B JUMPI PUSH2 0x2A2B PUSH2 0x2FE9 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x2A3F PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH2 0x2F34 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP6 DUP3 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x2A52 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2A6F JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP3 DUP3 ADD DUP5 ADD MSTORE DUP3 ADD PUSH2 0x2A54 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2A7F JUMPI DUP5 DUP4 DUP6 DUP5 ADD ADD MSTORE JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AA9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1D00 DUP2 PUSH2 0x2FFF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AC5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1D00 DUP2 PUSH2 0x2FFF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AE1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1D00 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B01 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B1A JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B3A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1D00 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B59 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2B70 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2B83 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2B8D PUSH1 0xC0 PUSH2 0x2F34 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x2B9B JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BC4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2BD0 DUP8 DUP3 DUP7 ADD PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C07 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C1E JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2C31 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2C3B PUSH1 0xC0 PUSH2 0x2F34 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2C46 DUP2 PUSH2 0x2FFF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2C5E PUSH1 0x40 DUP5 ADD PUSH2 0x2A89 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BC4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C87 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2C90 DUP2 PUSH2 0x2F34 JUMP JUMPDEST SWAP1 POP PUSH2 0x2C9B DUP4 PUSH2 0x2A89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2D10 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2D22 DUP2 PUSH2 0x2FFF JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x2D32 DUP2 PUSH2 0x2FFF JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B1A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030343A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030333A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030323A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH2 0x160 DUP4 ADD SWAP2 PUSH2 0x2EBC SWAP1 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2ED7 PUSH1 0x40 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2F5D JUMPI PUSH2 0x2F5D PUSH2 0x2FE9 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2F78 JUMPI PUSH2 0x2F78 PUSH2 0x2FD3 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2F98 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2FB7 JUMPI PUSH2 0x2FB7 PUSH2 0x2FD3 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2FCE JUMPI PUSH2 0x2FCE PUSH2 0x2FD3 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3014 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0xBF 0xFC 0xC2 PUSH23 0xE53BE86521CFBD777E61C2FEECB4D34921B699FF2B261 0xB3 0xD0 0xA6 0x21 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2976:14040:78:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;2976:14040:78;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;2976:14040:78;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:24133:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"77:655:103","statements":[{"body":{"nodeType":"YulBlock","src":"126:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"135:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"142:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"128:6:103"},"nodeType":"YulFunctionCall","src":"128:20:103"},"nodeType":"YulExpressionStatement","src":"128:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"113:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"120:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"90:6:103"},"nodeType":"YulFunctionCall","src":"90:35:103"},"nodeType":"YulIf","src":"87:2:103"},{"nodeType":"YulVariableDeclaration","src":"159:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"175:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"169:5:103"},"nodeType":"YulFunctionCall","src":"169:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"163:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"221:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"223:16:103"},"nodeType":"YulFunctionCall","src":"223:18:103"},"nodeType":"YulExpressionStatement","src":"223:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"197:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"201:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"194:2:103"},"nodeType":"YulFunctionCall","src":"194:26:103"},"nodeType":"YulIf","src":"191:2:103"},{"nodeType":"YulVariableDeclaration","src":"252:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"262:4:103","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"256:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"275:68:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"318:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"322:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"314:3:103"},"nodeType":"YulFunctionCall","src":"314:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"333:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"329:3:103"},"nodeType":"YulFunctionCall","src":"329:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"310:3:103"},"nodeType":"YulFunctionCall","src":"310:27:103"},{"name":"_2","nodeType":"YulIdentifier","src":"339:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"306:3:103"},"nodeType":"YulFunctionCall","src":"306:36:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"290:15:103"},"nodeType":"YulFunctionCall","src":"290:53:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"279:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"359:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"368:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"352:6:103"},"nodeType":"YulFunctionCall","src":"352:19:103"},"nodeType":"YulExpressionStatement","src":"352:19:103"},{"body":{"nodeType":"YulBlock","src":"417:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"426:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"433:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"419:6:103"},"nodeType":"YulFunctionCall","src":"419:20:103"},"nodeType":"YulExpressionStatement","src":"419:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"394:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"402:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"390:3:103"},"nodeType":"YulFunctionCall","src":"390:15:103"},{"name":"_2","nodeType":"YulIdentifier","src":"407:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"386:3:103"},"nodeType":"YulFunctionCall","src":"386:24:103"},{"name":"end","nodeType":"YulIdentifier","src":"412:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"383:2:103"},"nodeType":"YulFunctionCall","src":"383:33:103"},"nodeType":"YulIf","src":"380:2:103"},{"nodeType":"YulVariableDeclaration","src":"450:14:103","value":{"name":"array","nodeType":"YulIdentifier","src":"459:5:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"454:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"519:88:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"548:7:103"},{"name":"i","nodeType":"YulIdentifier","src":"557:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"544:3:103"},"nodeType":"YulFunctionCall","src":"544:15:103"},{"name":"_2","nodeType":"YulIdentifier","src":"561:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"540:3:103"},"nodeType":"YulFunctionCall","src":"540:24:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"580:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"588:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"576:3:103"},"nodeType":"YulFunctionCall","src":"576:14:103"},{"name":"_2","nodeType":"YulIdentifier","src":"592:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"572:3:103"},"nodeType":"YulFunctionCall","src":"572:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"566:5:103"},"nodeType":"YulFunctionCall","src":"566:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"533:6:103"},"nodeType":"YulFunctionCall","src":"533:64:103"},"nodeType":"YulExpressionStatement","src":"533:64:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"484:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"487:2:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"481:2:103"},"nodeType":"YulFunctionCall","src":"481:9:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"491:19:103","statements":[{"nodeType":"YulAssignment","src":"493:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"502:1:103"},{"name":"_2","nodeType":"YulIdentifier","src":"505:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:103"},"nodeType":"YulFunctionCall","src":"498:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"493:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"477:3:103","statements":[]},"src":"473:134:103"},{"body":{"nodeType":"YulBlock","src":"637:64:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"666:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"675:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"662:3:103"},"nodeType":"YulFunctionCall","src":"662:16:103"},{"name":"_2","nodeType":"YulIdentifier","src":"680:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"658:3:103"},"nodeType":"YulFunctionCall","src":"658:25:103"},{"name":"array","nodeType":"YulIdentifier","src":"685:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"651:6:103"},"nodeType":"YulFunctionCall","src":"651:40:103"},"nodeType":"YulExpressionStatement","src":"651:40:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"622:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"625:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"619:2:103"},"nodeType":"YulFunctionCall","src":"619:9:103"},"nodeType":"YulIf","src":"616:2:103"},{"nodeType":"YulAssignment","src":"710:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"719:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"710:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"51:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"59:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"67:5:103","type":""}],"src":"14:718:103"},{"body":{"nodeType":"YulBlock","src":"810:87:103","statements":[{"nodeType":"YulAssignment","src":"820:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"829:5:103"},"nodeType":"YulFunctionCall","src":"829:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"820:5:103"}]},{"body":{"nodeType":"YulBlock","src":"875:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"884:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"887:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"877:6:103"},"nodeType":"YulFunctionCall","src":"877:12:103"},"nodeType":"YulExpressionStatement","src":"877:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"864:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"871:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"861:2:103"},"nodeType":"YulFunctionCall","src":"861:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"854:6:103"},"nodeType":"YulFunctionCall","src":"854:20:103"},"nodeType":"YulIf","src":"851:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"789:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"800:5:103","type":""}],"src":"737:160:103"},{"body":{"nodeType":"YulBlock","src":"972:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1018:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1027:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1035:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1020:6:103"},"nodeType":"YulFunctionCall","src":"1020:22:103"},"nodeType":"YulExpressionStatement","src":"1020:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"993:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1002:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"989:3:103"},"nodeType":"YulFunctionCall","src":"989:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1014:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"985:3:103"},"nodeType":"YulFunctionCall","src":"985:32:103"},"nodeType":"YulIf","src":"982:2:103"},{"nodeType":"YulVariableDeclaration","src":"1053:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1079:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1066:12:103"},"nodeType":"YulFunctionCall","src":"1066:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1057:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1123:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1098:24:103"},"nodeType":"YulFunctionCall","src":"1098:31:103"},"nodeType":"YulExpressionStatement","src":"1098:31:103"},{"nodeType":"YulAssignment","src":"1138:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1148:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1138:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"938:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"949:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"961:6:103","type":""}],"src":"902:257:103"},{"body":{"nodeType":"YulBlock","src":"1245:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1291:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1300:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1308:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1293:6:103"},"nodeType":"YulFunctionCall","src":"1293:22:103"},"nodeType":"YulExpressionStatement","src":"1293:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1266:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1275:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1262:3:103"},"nodeType":"YulFunctionCall","src":"1262:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1287:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1258:3:103"},"nodeType":"YulFunctionCall","src":"1258:32:103"},"nodeType":"YulIf","src":"1255:2:103"},{"nodeType":"YulVariableDeclaration","src":"1326:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1345:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1339:5:103"},"nodeType":"YulFunctionCall","src":"1339:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1330:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1389:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1364:24:103"},"nodeType":"YulFunctionCall","src":"1364:31:103"},"nodeType":"YulExpressionStatement","src":"1364:31:103"},{"nodeType":"YulAssignment","src":"1404:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1414:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1404:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1211:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1222:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1234:6:103","type":""}],"src":"1164:261:103"},{"body":{"nodeType":"YulBlock","src":"1508:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1554:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1563:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1571:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1556:6:103"},"nodeType":"YulFunctionCall","src":"1556:22:103"},"nodeType":"YulExpressionStatement","src":"1556:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1529:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1538:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1525:3:103"},"nodeType":"YulFunctionCall","src":"1525:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1550:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1521:3:103"},"nodeType":"YulFunctionCall","src":"1521:32:103"},"nodeType":"YulIf","src":"1518:2:103"},{"nodeType":"YulVariableDeclaration","src":"1589:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1608:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1602:5:103"},"nodeType":"YulFunctionCall","src":"1602:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1593:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1671:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1680:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1688:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1673:6:103"},"nodeType":"YulFunctionCall","src":"1673:22:103"},"nodeType":"YulExpressionStatement","src":"1673:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1640:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1661:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1654:6:103"},"nodeType":"YulFunctionCall","src":"1654:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1647:6:103"},"nodeType":"YulFunctionCall","src":"1647:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1637:2:103"},"nodeType":"YulFunctionCall","src":"1637:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1630:6:103"},"nodeType":"YulFunctionCall","src":"1630:40:103"},"nodeType":"YulIf","src":"1627:2:103"},{"nodeType":"YulAssignment","src":"1706:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1716:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1706:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1474:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1485:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1497:6:103","type":""}],"src":"1430:297:103"},{"body":{"nodeType":"YulBlock","src":"1802:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1848:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1857:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1865:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1850:6:103"},"nodeType":"YulFunctionCall","src":"1850:22:103"},"nodeType":"YulExpressionStatement","src":"1850:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1823:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1832:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1819:3:103"},"nodeType":"YulFunctionCall","src":"1819:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1815:3:103"},"nodeType":"YulFunctionCall","src":"1815:32:103"},"nodeType":"YulIf","src":"1812:2:103"},{"nodeType":"YulAssignment","src":"1883:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1906:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1893:12:103"},"nodeType":"YulFunctionCall","src":"1893:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1883:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1768:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1779:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1791:6:103","type":""}],"src":"1732:190:103"},{"body":{"nodeType":"YulBlock","src":"2014:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2060:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2069:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2077:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2062:6:103"},"nodeType":"YulFunctionCall","src":"2062:22:103"},"nodeType":"YulExpressionStatement","src":"2062:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2035:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2044:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2031:3:103"},"nodeType":"YulFunctionCall","src":"2031:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2056:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2027:3:103"},"nodeType":"YulFunctionCall","src":"2027:32:103"},"nodeType":"YulIf","src":"2024:2:103"},{"nodeType":"YulAssignment","src":"2095:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2118:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2105:12:103"},"nodeType":"YulFunctionCall","src":"2105:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2095:6:103"}]},{"nodeType":"YulAssignment","src":"2137:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2164:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2175:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2160:3:103"},"nodeType":"YulFunctionCall","src":"2160:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2147:12:103"},"nodeType":"YulFunctionCall","src":"2147:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2137:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1972:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1983:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1995:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2003:6:103","type":""}],"src":"1927:258:103"},{"body":{"nodeType":"YulBlock","src":"2290:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2336:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2345:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2353:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2338:6:103"},"nodeType":"YulFunctionCall","src":"2338:22:103"},"nodeType":"YulExpressionStatement","src":"2338:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2311:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2320:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2307:3:103"},"nodeType":"YulFunctionCall","src":"2307:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2332:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2303:3:103"},"nodeType":"YulFunctionCall","src":"2303:32:103"},"nodeType":"YulIf","src":"2300:2:103"},{"nodeType":"YulVariableDeclaration","src":"2371:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2390:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2384:5:103"},"nodeType":"YulFunctionCall","src":"2384:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2375:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2434:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2409:24:103"},"nodeType":"YulFunctionCall","src":"2409:31:103"},"nodeType":"YulExpressionStatement","src":"2409:31:103"},{"nodeType":"YulAssignment","src":"2449:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2459:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2449:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2256:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2267:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2279:6:103","type":""}],"src":"2190:280:103"},{"body":{"nodeType":"YulBlock","src":"2575:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"2621:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2630:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2638:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2623:6:103"},"nodeType":"YulFunctionCall","src":"2623:22:103"},"nodeType":"YulExpressionStatement","src":"2623:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2596:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2605:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2592:3:103"},"nodeType":"YulFunctionCall","src":"2592:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2617:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2588:3:103"},"nodeType":"YulFunctionCall","src":"2588:32:103"},"nodeType":"YulIf","src":"2585:2:103"},{"nodeType":"YulVariableDeclaration","src":"2656:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2669:5:103"},"nodeType":"YulFunctionCall","src":"2669:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2660:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2718:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2727:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2735:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2720:6:103"},"nodeType":"YulFunctionCall","src":"2720:22:103"},"nodeType":"YulExpressionStatement","src":"2720:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2707:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2714:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2704:2:103"},"nodeType":"YulFunctionCall","src":"2704:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2697:6:103"},"nodeType":"YulFunctionCall","src":"2697:20:103"},"nodeType":"YulIf","src":"2694:2:103"},{"nodeType":"YulAssignment","src":"2753:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2763:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2753:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2541:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2552:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2564:6:103","type":""}],"src":"2475:299:103"},{"body":{"nodeType":"YulBlock","src":"2889:900:103","statements":[{"body":{"nodeType":"YulBlock","src":"2935:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2944:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2952:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2937:6:103"},"nodeType":"YulFunctionCall","src":"2937:22:103"},"nodeType":"YulExpressionStatement","src":"2937:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2910:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2919:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2906:3:103"},"nodeType":"YulFunctionCall","src":"2906:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2931:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2902:3:103"},"nodeType":"YulFunctionCall","src":"2902:32:103"},"nodeType":"YulIf","src":"2899:2:103"},{"nodeType":"YulVariableDeclaration","src":"2970:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2990:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2984:5:103"},"nodeType":"YulFunctionCall","src":"2984:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2974:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3009:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3019:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3013:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3064:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3073:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3081:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3066:6:103"},"nodeType":"YulFunctionCall","src":"3066:22:103"},"nodeType":"YulExpressionStatement","src":"3066:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3052:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3060:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3049:2:103"},"nodeType":"YulFunctionCall","src":"3049:14:103"},"nodeType":"YulIf","src":"3046:2:103"},{"nodeType":"YulVariableDeclaration","src":"3099:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3113:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3124:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3109:3:103"},"nodeType":"YulFunctionCall","src":"3109:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3103:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3171:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3180:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3188:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3173:6:103"},"nodeType":"YulFunctionCall","src":"3173:22:103"},"nodeType":"YulExpressionStatement","src":"3173:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3151:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"3160:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3165:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3143:3:103"},"nodeType":"YulFunctionCall","src":"3143:27:103"},"nodeType":"YulIf","src":"3140:2:103"},{"nodeType":"YulVariableDeclaration","src":"3206:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3235:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3219:15:103"},"nodeType":"YulFunctionCall","src":"3219:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3210:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3249:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3270:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3264:5:103"},"nodeType":"YulFunctionCall","src":"3264:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"3253:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3310:6:103"},"nodeType":"YulFunctionCall","src":"3310:22:103"},"nodeType":"YulExpressionStatement","src":"3310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3295:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"3304:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3292:2:103"},"nodeType":"YulFunctionCall","src":"3292:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3285:6:103"},"nodeType":"YulFunctionCall","src":"3285:22:103"},"nodeType":"YulIf","src":"3282:2:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3350:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"3357:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3343:6:103"},"nodeType":"YulFunctionCall","src":"3343:22:103"},"nodeType":"YulExpressionStatement","src":"3343:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3385:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3392:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3381:3:103"},"nodeType":"YulFunctionCall","src":"3381:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3407:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3411:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3403:3:103"},"nodeType":"YulFunctionCall","src":"3403:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3397:5:103"},"nodeType":"YulFunctionCall","src":"3397:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3374:6:103"},"nodeType":"YulFunctionCall","src":"3374:42:103"},"nodeType":"YulExpressionStatement","src":"3374:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3436:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3443:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3432:3:103"},"nodeType":"YulFunctionCall","src":"3432:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3458:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3462:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3454:3:103"},"nodeType":"YulFunctionCall","src":"3454:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3448:5:103"},"nodeType":"YulFunctionCall","src":"3448:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3425:6:103"},"nodeType":"YulFunctionCall","src":"3425:42:103"},"nodeType":"YulExpressionStatement","src":"3425:42:103"},{"nodeType":"YulVariableDeclaration","src":"3476:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3502:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3506:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3498:3:103"},"nodeType":"YulFunctionCall","src":"3498:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3492:5:103"},"nodeType":"YulFunctionCall","src":"3492:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3480:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3539:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3548:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3556:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3541:6:103"},"nodeType":"YulFunctionCall","src":"3541:22:103"},"nodeType":"YulExpressionStatement","src":"3541:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3525:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3535:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3522:2:103"},"nodeType":"YulFunctionCall","src":"3522:16:103"},"nodeType":"YulIf","src":"3519:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3585:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3592:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3581:3:103"},"nodeType":"YulFunctionCall","src":"3581:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3629:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3633:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3625:3:103"},"nodeType":"YulFunctionCall","src":"3625:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3644:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"3597:27:103"},"nodeType":"YulFunctionCall","src":"3597:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3574:6:103"},"nodeType":"YulFunctionCall","src":"3574:79:103"},"nodeType":"YulExpressionStatement","src":"3574:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3673:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3680:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3669:3:103"},"nodeType":"YulFunctionCall","src":"3669:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3696:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3700:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3692:3:103"},"nodeType":"YulFunctionCall","src":"3692:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3686:5:103"},"nodeType":"YulFunctionCall","src":"3686:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3662:6:103"},"nodeType":"YulFunctionCall","src":"3662:44:103"},"nodeType":"YulExpressionStatement","src":"3662:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3726:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3733:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3722:3:103"},"nodeType":"YulFunctionCall","src":"3722:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3749:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3753:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3745:3:103"},"nodeType":"YulFunctionCall","src":"3745:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3739:5:103"},"nodeType":"YulFunctionCall","src":"3739:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3715:6:103"},"nodeType":"YulFunctionCall","src":"3715:44:103"},"nodeType":"YulExpressionStatement","src":"3715:44:103"},{"nodeType":"YulAssignment","src":"3768:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3778:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3768:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2855:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2866:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2878:6:103","type":""}],"src":"2779:1010:103"},{"body":{"nodeType":"YulBlock","src":"3901:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"3947:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3956:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3964:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3949:6:103"},"nodeType":"YulFunctionCall","src":"3949:22:103"},"nodeType":"YulExpressionStatement","src":"3949:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3922:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3931:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3918:3:103"},"nodeType":"YulFunctionCall","src":"3918:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3943:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3914:3:103"},"nodeType":"YulFunctionCall","src":"3914:32:103"},"nodeType":"YulIf","src":"3911:2:103"},{"nodeType":"YulVariableDeclaration","src":"3982:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4002:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3996:5:103"},"nodeType":"YulFunctionCall","src":"3996:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3986:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4021:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4031:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4025:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4076:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4085:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4093:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4078:6:103"},"nodeType":"YulFunctionCall","src":"4078:22:103"},"nodeType":"YulExpressionStatement","src":"4078:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4064:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4072:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4061:2:103"},"nodeType":"YulFunctionCall","src":"4061:14:103"},"nodeType":"YulIf","src":"4058:2:103"},{"nodeType":"YulVariableDeclaration","src":"4111:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4125:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4136:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4121:3:103"},"nodeType":"YulFunctionCall","src":"4121:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4115:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4183:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4192:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4200:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4185:6:103"},"nodeType":"YulFunctionCall","src":"4185:22:103"},"nodeType":"YulExpressionStatement","src":"4185:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4163:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4172:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4159:3:103"},"nodeType":"YulFunctionCall","src":"4159:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4177:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4155:3:103"},"nodeType":"YulFunctionCall","src":"4155:27:103"},"nodeType":"YulIf","src":"4152:2:103"},{"nodeType":"YulVariableDeclaration","src":"4218:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4247:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4231:15:103"},"nodeType":"YulFunctionCall","src":"4231:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4222:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4261:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4282:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4276:5:103"},"nodeType":"YulFunctionCall","src":"4276:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4265:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4319:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4294:24:103"},"nodeType":"YulFunctionCall","src":"4294:33:103"},"nodeType":"YulExpressionStatement","src":"4294:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4343:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"4350:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4336:6:103"},"nodeType":"YulFunctionCall","src":"4336:22:103"},"nodeType":"YulExpressionStatement","src":"4336:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4378:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4385:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4374:3:103"},"nodeType":"YulFunctionCall","src":"4374:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4400:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4396:3:103"},"nodeType":"YulFunctionCall","src":"4396:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4390:5:103"},"nodeType":"YulFunctionCall","src":"4390:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4367:6:103"},"nodeType":"YulFunctionCall","src":"4367:42:103"},"nodeType":"YulExpressionStatement","src":"4367:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4429:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4436:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4425:3:103"},"nodeType":"YulFunctionCall","src":"4425:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4488:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4492:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4484:3:103"},"nodeType":"YulFunctionCall","src":"4484:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"4441:42:103"},"nodeType":"YulFunctionCall","src":"4441:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4418:6:103"},"nodeType":"YulFunctionCall","src":"4418:79:103"},"nodeType":"YulExpressionStatement","src":"4418:79:103"},{"nodeType":"YulVariableDeclaration","src":"4506:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4532:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4536:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4528:3:103"},"nodeType":"YulFunctionCall","src":"4528:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4522:5:103"},"nodeType":"YulFunctionCall","src":"4522:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4510:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4569:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4578:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4586:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4571:6:103"},"nodeType":"YulFunctionCall","src":"4571:22:103"},"nodeType":"YulExpressionStatement","src":"4571:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4555:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4565:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4552:2:103"},"nodeType":"YulFunctionCall","src":"4552:16:103"},"nodeType":"YulIf","src":"4549:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4615:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4622:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4611:3:103"},"nodeType":"YulFunctionCall","src":"4611:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4659:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4663:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4655:3:103"},"nodeType":"YulFunctionCall","src":"4655:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4674:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"4627:27:103"},"nodeType":"YulFunctionCall","src":"4627:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4604:6:103"},"nodeType":"YulFunctionCall","src":"4604:79:103"},"nodeType":"YulExpressionStatement","src":"4604:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4703:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4710:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4699:3:103"},"nodeType":"YulFunctionCall","src":"4699:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4726:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4730:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4722:3:103"},"nodeType":"YulFunctionCall","src":"4722:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4716:5:103"},"nodeType":"YulFunctionCall","src":"4716:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4692:6:103"},"nodeType":"YulFunctionCall","src":"4692:44:103"},"nodeType":"YulExpressionStatement","src":"4692:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4756:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4763:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4752:3:103"},"nodeType":"YulFunctionCall","src":"4752:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4779:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4783:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4775:3:103"},"nodeType":"YulFunctionCall","src":"4775:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4769:5:103"},"nodeType":"YulFunctionCall","src":"4769:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4745:6:103"},"nodeType":"YulFunctionCall","src":"4745:44:103"},"nodeType":"YulExpressionStatement","src":"4745:44:103"},{"nodeType":"YulAssignment","src":"4798:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4808:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4798:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3867:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3878:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3890:6:103","type":""}],"src":"3794:1025:103"},{"body":{"nodeType":"YulBlock","src":"4929:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4939:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4949:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4943:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4997:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5006:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5014:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4999:6:103"},"nodeType":"YulFunctionCall","src":"4999:22:103"},"nodeType":"YulExpressionStatement","src":"4999:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4972:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4981:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4968:3:103"},"nodeType":"YulFunctionCall","src":"4968:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4993:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4964:3:103"},"nodeType":"YulFunctionCall","src":"4964:32:103"},"nodeType":"YulIf","src":"4961:2:103"},{"nodeType":"YulVariableDeclaration","src":"5032:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5061:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5045:15:103"},"nodeType":"YulFunctionCall","src":"5045:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5036:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5080:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5130:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"5087:42:103"},"nodeType":"YulFunctionCall","src":"5087:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5073:6:103"},"nodeType":"YulFunctionCall","src":"5073:68:103"},"nodeType":"YulExpressionStatement","src":"5073:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5161:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5168:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5157:3:103"},"nodeType":"YulFunctionCall","src":"5157:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5183:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5194:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5179:3:103"},"nodeType":"YulFunctionCall","src":"5179:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5173:5:103"},"nodeType":"YulFunctionCall","src":"5173:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5150:6:103"},"nodeType":"YulFunctionCall","src":"5150:49:103"},"nodeType":"YulExpressionStatement","src":"5150:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5219:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5226:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5215:3:103"},"nodeType":"YulFunctionCall","src":"5215:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5252:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5237:3:103"},"nodeType":"YulFunctionCall","src":"5237:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5231:5:103"},"nodeType":"YulFunctionCall","src":"5231:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5208:6:103"},"nodeType":"YulFunctionCall","src":"5208:49:103"},"nodeType":"YulExpressionStatement","src":"5208:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5277:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5284:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5273:3:103"},"nodeType":"YulFunctionCall","src":"5273:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5299:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5310:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5295:3:103"},"nodeType":"YulFunctionCall","src":"5295:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5289:5:103"},"nodeType":"YulFunctionCall","src":"5289:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5266:6:103"},"nodeType":"YulFunctionCall","src":"5266:49:103"},"nodeType":"YulExpressionStatement","src":"5266:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5335:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5342:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5331:3:103"},"nodeType":"YulFunctionCall","src":"5331:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5358:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5369:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5354:3:103"},"nodeType":"YulFunctionCall","src":"5354:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5348:5:103"},"nodeType":"YulFunctionCall","src":"5348:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5324:6:103"},"nodeType":"YulFunctionCall","src":"5324:51:103"},"nodeType":"YulExpressionStatement","src":"5324:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5395:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5402:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5391:3:103"},"nodeType":"YulFunctionCall","src":"5391:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5418:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5429:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5414:3:103"},"nodeType":"YulFunctionCall","src":"5414:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5408:5:103"},"nodeType":"YulFunctionCall","src":"5408:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5384:6:103"},"nodeType":"YulFunctionCall","src":"5384:51:103"},"nodeType":"YulExpressionStatement","src":"5384:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5455:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5462:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5451:3:103"},"nodeType":"YulFunctionCall","src":"5451:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5478:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5489:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5474:3:103"},"nodeType":"YulFunctionCall","src":"5474:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5468:5:103"},"nodeType":"YulFunctionCall","src":"5468:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5444:6:103"},"nodeType":"YulFunctionCall","src":"5444:51:103"},"nodeType":"YulExpressionStatement","src":"5444:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5515:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5522:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5511:3:103"},"nodeType":"YulFunctionCall","src":"5511:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5538:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5549:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5534:3:103"},"nodeType":"YulFunctionCall","src":"5534:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5528:5:103"},"nodeType":"YulFunctionCall","src":"5528:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5504:6:103"},"nodeType":"YulFunctionCall","src":"5504:51:103"},"nodeType":"YulExpressionStatement","src":"5504:51:103"},{"nodeType":"YulVariableDeclaration","src":"5564:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5574:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5568:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5597:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5604:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5593:3:103"},"nodeType":"YulFunctionCall","src":"5593:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5619:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5630:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5615:3:103"},"nodeType":"YulFunctionCall","src":"5615:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5609:5:103"},"nodeType":"YulFunctionCall","src":"5609:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:103"},"nodeType":"YulFunctionCall","src":"5586:49:103"},"nodeType":"YulExpressionStatement","src":"5586:49:103"},{"nodeType":"YulAssignment","src":"5644:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5654:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5644:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4895:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4906:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4918:6:103","type":""}],"src":"4824:841:103"},{"body":{"nodeType":"YulBlock","src":"5740:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"5786:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5795:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5803:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5788:6:103"},"nodeType":"YulFunctionCall","src":"5788:22:103"},"nodeType":"YulExpressionStatement","src":"5788:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5761:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5770:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5757:3:103"},"nodeType":"YulFunctionCall","src":"5757:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5782:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5753:3:103"},"nodeType":"YulFunctionCall","src":"5753:32:103"},"nodeType":"YulIf","src":"5750:2:103"},{"nodeType":"YulAssignment","src":"5821:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5844:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5831:12:103"},"nodeType":"YulFunctionCall","src":"5831:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5821:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5706:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5717:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5729:6:103","type":""}],"src":"5670:190:103"},{"body":{"nodeType":"YulBlock","src":"6003:466:103","statements":[{"body":{"nodeType":"YulBlock","src":"6050:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6059:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6067:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6052:6:103"},"nodeType":"YulFunctionCall","src":"6052:22:103"},"nodeType":"YulExpressionStatement","src":"6052:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6024:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6033:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6020:3:103"},"nodeType":"YulFunctionCall","src":"6020:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6045:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6016:3:103"},"nodeType":"YulFunctionCall","src":"6016:33:103"},"nodeType":"YulIf","src":"6013:2:103"},{"nodeType":"YulAssignment","src":"6085:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6108:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6095:12:103"},"nodeType":"YulFunctionCall","src":"6095:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6085:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6127:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6157:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6168:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6153:3:103"},"nodeType":"YulFunctionCall","src":"6153:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6140:12:103"},"nodeType":"YulFunctionCall","src":"6140:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6131:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6206:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6181:24:103"},"nodeType":"YulFunctionCall","src":"6181:31:103"},"nodeType":"YulExpressionStatement","src":"6181:31:103"},{"nodeType":"YulAssignment","src":"6221:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6231:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6221:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6245:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6277:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6288:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6273:3:103"},"nodeType":"YulFunctionCall","src":"6273:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6260:12:103"},"nodeType":"YulFunctionCall","src":"6260:32:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6249:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6326:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"6301:24:103"},"nodeType":"YulFunctionCall","src":"6301:33:103"},"nodeType":"YulExpressionStatement","src":"6301:33:103"},{"nodeType":"YulAssignment","src":"6343:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"6353:7:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6343:6:103"}]},{"nodeType":"YulAssignment","src":"6369:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6407:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6392:3:103"},"nodeType":"YulFunctionCall","src":"6392:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6379:12:103"},"nodeType":"YulFunctionCall","src":"6379:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6369:6:103"}]},{"nodeType":"YulAssignment","src":"6420:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6447:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6458:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6443:3:103"},"nodeType":"YulFunctionCall","src":"6443:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6430:12:103"},"nodeType":"YulFunctionCall","src":"6430:33:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6420:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_addresst_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5937:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5948:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5960:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5968:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5976:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5984:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5992:6:103","type":""}],"src":"5865:604:103"},{"body":{"nodeType":"YulBlock","src":"6561:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"6607:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6616:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6624:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6609:6:103"},"nodeType":"YulFunctionCall","src":"6609:22:103"},"nodeType":"YulExpressionStatement","src":"6609:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6582:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6591:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6578:3:103"},"nodeType":"YulFunctionCall","src":"6578:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6603:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6574:3:103"},"nodeType":"YulFunctionCall","src":"6574:32:103"},"nodeType":"YulIf","src":"6571:2:103"},{"nodeType":"YulAssignment","src":"6642:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6665:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6652:12:103"},"nodeType":"YulFunctionCall","src":"6652:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6642:6:103"}]},{"nodeType":"YulAssignment","src":"6684:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6711:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6722:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6707:3:103"},"nodeType":"YulFunctionCall","src":"6707:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6694:12:103"},"nodeType":"YulFunctionCall","src":"6694:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6684:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6519:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6530:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6542:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6550:6:103","type":""}],"src":"6474:258:103"},{"body":{"nodeType":"YulBlock","src":"6781:60:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6798:3:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6807:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6822:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6827:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6818:3:103"},"nodeType":"YulFunctionCall","src":"6818:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6831:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6814:3:103"},"nodeType":"YulFunctionCall","src":"6814:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6803:3:103"},"nodeType":"YulFunctionCall","src":"6803:31:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6791:6:103"},"nodeType":"YulFunctionCall","src":"6791:44:103"},"nodeType":"YulExpressionStatement","src":"6791:44:103"}]},"name":"abi_encode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6765:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6772:3:103","type":""}],"src":"6737:104:103"},{"body":{"nodeType":"YulBlock","src":"6941:92:103","statements":[{"nodeType":"YulAssignment","src":"6951:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6963:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6974:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6959:3:103"},"nodeType":"YulFunctionCall","src":"6959:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6951:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6993:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7018:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7011:6:103"},"nodeType":"YulFunctionCall","src":"7011:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7004:6:103"},"nodeType":"YulFunctionCall","src":"7004:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6986:6:103"},"nodeType":"YulFunctionCall","src":"6986:41:103"},"nodeType":"YulExpressionStatement","src":"6986:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6910:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6921:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6932:4:103","type":""}],"src":"6846:187:103"},{"body":{"nodeType":"YulBlock","src":"7139:76:103","statements":[{"nodeType":"YulAssignment","src":"7149:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7172:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7157:3:103"},"nodeType":"YulFunctionCall","src":"7157:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7149:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7191:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7202:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7184:6:103"},"nodeType":"YulFunctionCall","src":"7184:25:103"},"nodeType":"YulExpressionStatement","src":"7184:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7108:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7119:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7130:4:103","type":""}],"src":"7038:177:103"},{"body":{"nodeType":"YulBlock","src":"7349:119:103","statements":[{"nodeType":"YulAssignment","src":"7359:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7371:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7382:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7367:3:103"},"nodeType":"YulFunctionCall","src":"7367:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7359:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7401:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7412:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7394:6:103"},"nodeType":"YulFunctionCall","src":"7394:25:103"},"nodeType":"YulExpressionStatement","src":"7394:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7439:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7450:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7435:3:103"},"nodeType":"YulFunctionCall","src":"7435:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7455:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7428:6:103"},"nodeType":"YulFunctionCall","src":"7428:34:103"},"nodeType":"YulExpressionStatement","src":"7428:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7310:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7321:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7329:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7340:4:103","type":""}],"src":"7220:248:103"},{"body":{"nodeType":"YulBlock","src":"7630:162:103","statements":[{"nodeType":"YulAssignment","src":"7640:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7663:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7648:3:103"},"nodeType":"YulFunctionCall","src":"7648:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7640:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7682:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7693:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7675:6:103"},"nodeType":"YulFunctionCall","src":"7675:25:103"},"nodeType":"YulExpressionStatement","src":"7675:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7720:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7731:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7716:3:103"},"nodeType":"YulFunctionCall","src":"7716:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7736:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7709:6:103"},"nodeType":"YulFunctionCall","src":"7709:34:103"},"nodeType":"YulExpressionStatement","src":"7709:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7763:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7774:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7759:3:103"},"nodeType":"YulFunctionCall","src":"7759:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7779:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7752:6:103"},"nodeType":"YulFunctionCall","src":"7752:34:103"},"nodeType":"YulExpressionStatement","src":"7752:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7583:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7594:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7602:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7610:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7621:4:103","type":""}],"src":"7473:319:103"},{"body":{"nodeType":"YulBlock","src":"7904:87:103","statements":[{"nodeType":"YulAssignment","src":"7914:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7937:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7922:3:103"},"nodeType":"YulFunctionCall","src":"7922:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7914:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7956:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7971:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7979:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7967:3:103"},"nodeType":"YulFunctionCall","src":"7967:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7949:6:103"},"nodeType":"YulFunctionCall","src":"7949:36:103"},"nodeType":"YulExpressionStatement","src":"7949:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7873:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7884:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7895:4:103","type":""}],"src":"7797:194:103"},{"body":{"nodeType":"YulBlock","src":"8170:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8187:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8198:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8180:6:103"},"nodeType":"YulFunctionCall","src":"8180:21:103"},"nodeType":"YulExpressionStatement","src":"8180:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8221:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8232:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8217:3:103"},"nodeType":"YulFunctionCall","src":"8217:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8237:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8210:6:103"},"nodeType":"YulFunctionCall","src":"8210:30:103"},"nodeType":"YulExpressionStatement","src":"8210:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8260:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8271:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8256:3:103"},"nodeType":"YulFunctionCall","src":"8256:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8276:34:103","type":"","value":"ERROR:POL-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8249:6:103"},"nodeType":"YulFunctionCall","src":"8249:62:103"},"nodeType":"YulExpressionStatement","src":"8249:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8331:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8342:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8327:3:103"},"nodeType":"YulFunctionCall","src":"8327:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8347:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8320:6:103"},"nodeType":"YulFunctionCall","src":"8320:33:103"},"nodeType":"YulExpressionStatement","src":"8320:33:103"},{"nodeType":"YulAssignment","src":"8362:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8374:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8385:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8370:3:103"},"nodeType":"YulFunctionCall","src":"8370:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8362:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_01ba533ede5bc9857bd888044082beab7540e9985694ecf1b8f2420761091360__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8147:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8161:4:103","type":""}],"src":"7996:399:103"},{"body":{"nodeType":"YulBlock","src":"8574:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8591:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8602:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8584:6:103"},"nodeType":"YulFunctionCall","src":"8584:21:103"},"nodeType":"YulExpressionStatement","src":"8584:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8625:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8636:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8621:3:103"},"nodeType":"YulFunctionCall","src":"8621:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8641:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8614:6:103"},"nodeType":"YulFunctionCall","src":"8614:30:103"},"nodeType":"YulExpressionStatement","src":"8614:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8664:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8675:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8660:3:103"},"nodeType":"YulFunctionCall","src":"8660:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8680:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8653:6:103"},"nodeType":"YulFunctionCall","src":"8653:62:103"},"nodeType":"YulExpressionStatement","src":"8653:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8735:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8746:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8731:3:103"},"nodeType":"YulFunctionCall","src":"8731:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8751:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8724:6:103"},"nodeType":"YulFunctionCall","src":"8724:35:103"},"nodeType":"YulExpressionStatement","src":"8724:35:103"},{"nodeType":"YulAssignment","src":"8768:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8780:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8791:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8776:3:103"},"nodeType":"YulFunctionCall","src":"8776:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8768:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8551:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8565:4:103","type":""}],"src":"8400:401:103"},{"body":{"nodeType":"YulBlock","src":"8980:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8997:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9008:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8990:6:103"},"nodeType":"YulFunctionCall","src":"8990:21:103"},"nodeType":"YulExpressionStatement","src":"8990:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9031:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9042:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9027:3:103"},"nodeType":"YulFunctionCall","src":"9027:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9047:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9020:6:103"},"nodeType":"YulFunctionCall","src":"9020:30:103"},"nodeType":"YulExpressionStatement","src":"9020:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9070:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9081:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9066:3:103"},"nodeType":"YulFunctionCall","src":"9066:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9086:34:103","type":"","value":"ERROR:POL-009:SUM_OF_SUM_INSURED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9059:6:103"},"nodeType":"YulFunctionCall","src":"9059:62:103"},"nodeType":"YulExpressionStatement","src":"9059:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9152:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9137:3:103"},"nodeType":"YulFunctionCall","src":"9137:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9157:11:103","type":"","value":"_CAP_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9130:6:103"},"nodeType":"YulFunctionCall","src":"9130:39:103"},"nodeType":"YulExpressionStatement","src":"9130:39:103"},{"nodeType":"YulAssignment","src":"9178:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9190:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9201:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9186:3:103"},"nodeType":"YulFunctionCall","src":"9186:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9178:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_153cdd57b6a54a67c3edead82db53ff9ca80c0d53800cc6e08d94bcd48709063__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8957:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8971:4:103","type":""}],"src":"8806:405:103"},{"body":{"nodeType":"YulBlock","src":"9390:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9407:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9418:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9400:6:103"},"nodeType":"YulFunctionCall","src":"9400:21:103"},"nodeType":"YulExpressionStatement","src":"9400:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9441:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9452:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9437:3:103"},"nodeType":"YulFunctionCall","src":"9437:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9457:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9430:6:103"},"nodeType":"YulFunctionCall","src":"9430:30:103"},"nodeType":"YulExpressionStatement","src":"9430:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9480:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9491:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9476:3:103"},"nodeType":"YulFunctionCall","src":"9476:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9496:34:103","type":"","value":"ERROR:POL-004:RISKPOOL_NOT_ACTIV"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9469:6:103"},"nodeType":"YulFunctionCall","src":"9469:62:103"},"nodeType":"YulExpressionStatement","src":"9469:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9551:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9562:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9547:3:103"},"nodeType":"YulFunctionCall","src":"9547:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9567:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9540:6:103"},"nodeType":"YulFunctionCall","src":"9540:31:103"},"nodeType":"YulExpressionStatement","src":"9540:31:103"},{"nodeType":"YulAssignment","src":"9580:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9603:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9588:3:103"},"nodeType":"YulFunctionCall","src":"9588:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9580:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1b7f0a4d9ff2dc985060892cfa5d21ef1861aee5377df8478f07451d1c71c9a4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9367:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9381:4:103","type":""}],"src":"9216:397:103"},{"body":{"nodeType":"YulBlock","src":"9792:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9809:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9820:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9802:6:103"},"nodeType":"YulFunctionCall","src":"9802:21:103"},"nodeType":"YulExpressionStatement","src":"9802:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9854:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9839:3:103"},"nodeType":"YulFunctionCall","src":"9839:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9859:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9832:6:103"},"nodeType":"YulFunctionCall","src":"9832:30:103"},"nodeType":"YulExpressionStatement","src":"9832:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9882:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9893:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9878:3:103"},"nodeType":"YulFunctionCall","src":"9878:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9898:34:103","type":"","value":"ERROR:POL-022:RISKPOOL_SUM_INSUR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9871:6:103"},"nodeType":"YulFunctionCall","src":"9871:62:103"},"nodeType":"YulExpressionStatement","src":"9871:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9953:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9964:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9949:3:103"},"nodeType":"YulFunctionCall","src":"9949:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9969:17:103","type":"","value":"ED_CAP_EXCEEDED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9942:6:103"},"nodeType":"YulFunctionCall","src":"9942:45:103"},"nodeType":"YulExpressionStatement","src":"9942:45:103"},{"nodeType":"YulAssignment","src":"9996:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10008:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10019:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10004:3:103"},"nodeType":"YulFunctionCall","src":"10004:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9996:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1bc20430b5420212dd3a6e8be5f546e3de707484a8680f89c18cb18c351384cb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9769:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9783:4:103","type":""}],"src":"9618:411:103"},{"body":{"nodeType":"YulBlock","src":"10208:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10225:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10236:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10218:6:103"},"nodeType":"YulFunctionCall","src":"10218:21:103"},"nodeType":"YulExpressionStatement","src":"10218:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10259:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10270:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10255:3:103"},"nodeType":"YulFunctionCall","src":"10255:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10275:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10248:6:103"},"nodeType":"YulFunctionCall","src":"10248:30:103"},"nodeType":"YulExpressionStatement","src":"10248:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10298:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10309:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10294:3:103"},"nodeType":"YulFunctionCall","src":"10294:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10314:27:103","type":"","value":"ERROR:POL-010:NOT_PRODUCT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10287:6:103"},"nodeType":"YulFunctionCall","src":"10287:55:103"},"nodeType":"YulExpressionStatement","src":"10287:55:103"},{"nodeType":"YulAssignment","src":"10351:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10363:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10374:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10359:3:103"},"nodeType":"YulFunctionCall","src":"10359:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10351:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_21abf94b5548761de95d02f2a3d6e1d83d6d35330a6e30e85c122e0961c94723__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10185:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10199:4:103","type":""}],"src":"10034:349:103"},{"body":{"nodeType":"YulBlock","src":"10562:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10579:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10590:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10572:6:103"},"nodeType":"YulFunctionCall","src":"10572:21:103"},"nodeType":"YulExpressionStatement","src":"10572:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10613:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10624:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10609:3:103"},"nodeType":"YulFunctionCall","src":"10609:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10629:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10602:6:103"},"nodeType":"YulFunctionCall","src":"10602:30:103"},"nodeType":"YulExpressionStatement","src":"10602:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10663:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10648:3:103"},"nodeType":"YulFunctionCall","src":"10648:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10668:34:103","type":"","value":"ERROR:POL-044:BUNDLE_ID_NOT_IN_S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10641:6:103"},"nodeType":"YulFunctionCall","src":"10641:62:103"},"nodeType":"YulExpressionStatement","src":"10641:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10723:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10734:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10719:3:103"},"nodeType":"YulFunctionCall","src":"10719:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10739:4:103","type":"","value":"ET"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10712:6:103"},"nodeType":"YulFunctionCall","src":"10712:32:103"},"nodeType":"YulExpressionStatement","src":"10712:32:103"},{"nodeType":"YulAssignment","src":"10753:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10765:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10776:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10761:3:103"},"nodeType":"YulFunctionCall","src":"10761:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10753:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_25c96dd3fff47393c9641d7e3b8d6afd2344a8424f3becb7b10f61348f063fb8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10539:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10553:4:103","type":""}],"src":"10388:398:103"},{"body":{"nodeType":"YulBlock","src":"10965:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10993:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10975:6:103"},"nodeType":"YulFunctionCall","src":"10975:21:103"},"nodeType":"YulExpressionStatement","src":"10975:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11016:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11027:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11012:3:103"},"nodeType":"YulFunctionCall","src":"11012:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11032:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11005:6:103"},"nodeType":"YulFunctionCall","src":"11005:30:103"},"nodeType":"YulExpressionStatement","src":"11005:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11051:3:103"},"nodeType":"YulFunctionCall","src":"11051:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11071:34:103","type":"","value":"ERROR:POL-003:RISKPOOL_NOT_ACTIV"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11044:6:103"},"nodeType":"YulFunctionCall","src":"11044:62:103"},"nodeType":"YulExpressionStatement","src":"11044:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11126:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11137:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11122:3:103"},"nodeType":"YulFunctionCall","src":"11122:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11142:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11115:6:103"},"nodeType":"YulFunctionCall","src":"11115:31:103"},"nodeType":"YulExpressionStatement","src":"11115:31:103"},{"nodeType":"YulAssignment","src":"11155:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11167:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11178:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11163:3:103"},"nodeType":"YulFunctionCall","src":"11163:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11155:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2676f82624b5790964b977de4e2922d89874c40d9966c58f2ee005dc0bbd3479__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10942:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10956:4:103","type":""}],"src":"10791:397:103"},{"body":{"nodeType":"YulBlock","src":"11367:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11384:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11395:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11377:6:103"},"nodeType":"YulFunctionCall","src":"11377:21:103"},"nodeType":"YulExpressionStatement","src":"11377:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11418:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11429:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11414:3:103"},"nodeType":"YulFunctionCall","src":"11414:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11434:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11407:6:103"},"nodeType":"YulFunctionCall","src":"11407:30:103"},"nodeType":"YulExpressionStatement","src":"11407:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11457:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11468:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11453:3:103"},"nodeType":"YulFunctionCall","src":"11453:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11473:34:103","type":"","value":"ERROR:POL-006:WALLET_ADDRESS_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11446:6:103"},"nodeType":"YulFunctionCall","src":"11446:62:103"},"nodeType":"YulExpressionStatement","src":"11446:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11528:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11539:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11524:3:103"},"nodeType":"YulFunctionCall","src":"11524:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11544:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11517:6:103"},"nodeType":"YulFunctionCall","src":"11517:31:103"},"nodeType":"YulExpressionStatement","src":"11517:31:103"},{"nodeType":"YulAssignment","src":"11557:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11580:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11565:3:103"},"nodeType":"YulFunctionCall","src":"11565:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11557:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a58e30d80b67c427d73fc6164f99768fb9b50c18604efb17c57bf2e875de904__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11344:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11358:4:103","type":""}],"src":"11193:397:103"},{"body":{"nodeType":"YulBlock","src":"11769:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11786:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11797:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11779:6:103"},"nodeType":"YulFunctionCall","src":"11779:21:103"},"nodeType":"YulExpressionStatement","src":"11779:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11831:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11816:3:103"},"nodeType":"YulFunctionCall","src":"11816:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11836:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11809:6:103"},"nodeType":"YulFunctionCall","src":"11809:30:103"},"nodeType":"YulExpressionStatement","src":"11809:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11859:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11870:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11855:3:103"},"nodeType":"YulFunctionCall","src":"11855:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11875:34:103","type":"","value":"ERROR:POL-026:RISKPOOL_ID_INVALI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11848:6:103"},"nodeType":"YulFunctionCall","src":"11848:62:103"},"nodeType":"YulExpressionStatement","src":"11848:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11930:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11941:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11926:3:103"},"nodeType":"YulFunctionCall","src":"11926:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11946:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11919:6:103"},"nodeType":"YulFunctionCall","src":"11919:31:103"},"nodeType":"YulExpressionStatement","src":"11919:31:103"},{"nodeType":"YulAssignment","src":"11959:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11971:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11982:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11967:3:103"},"nodeType":"YulFunctionCall","src":"11967:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11959:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f1d6c58669160bcbfc12f912411cc7135fdc211388790e920c997812d46fbf3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11746:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11760:4:103","type":""}],"src":"11595:397:103"},{"body":{"nodeType":"YulBlock","src":"12171:244:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12188:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12199:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12181:6:103"},"nodeType":"YulFunctionCall","src":"12181:21:103"},"nodeType":"YulExpressionStatement","src":"12181:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12233:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12218:3:103"},"nodeType":"YulFunctionCall","src":"12218:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12238:2:103","type":"","value":"54"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12211:6:103"},"nodeType":"YulFunctionCall","src":"12211:30:103"},"nodeType":"YulExpressionStatement","src":"12211:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12261:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12272:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12257:3:103"},"nodeType":"YulFunctionCall","src":"12257:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12277:34:103","type":"","value":"ERROR:POL-043:MAXIMUM_NUMBER_OF_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12250:6:103"},"nodeType":"YulFunctionCall","src":"12250:62:103"},"nodeType":"YulExpressionStatement","src":"12250:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12332:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12343:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12328:3:103"},"nodeType":"YulFunctionCall","src":"12328:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12348:24:103","type":"","value":"ACTIVE_BUNDLES_REACHED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12321:6:103"},"nodeType":"YulFunctionCall","src":"12321:52:103"},"nodeType":"YulExpressionStatement","src":"12321:52:103"},{"nodeType":"YulAssignment","src":"12382:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12394:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12405:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12390:3:103"},"nodeType":"YulFunctionCall","src":"12390:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12382:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_32d45b651261a0d41dda08727c81a537b3167117b852006bf8549d74e1a978bf__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12148:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12162:4:103","type":""}],"src":"11997:418:103"},{"body":{"nodeType":"YulBlock","src":"12594:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12611:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12622:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12604:6:103"},"nodeType":"YulFunctionCall","src":"12604:21:103"},"nodeType":"YulExpressionStatement","src":"12604:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12645:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12656:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12641:3:103"},"nodeType":"YulFunctionCall","src":"12641:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12661:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12634:6:103"},"nodeType":"YulFunctionCall","src":"12634:30:103"},"nodeType":"YulExpressionStatement","src":"12634:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12684:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12695:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12680:3:103"},"nodeType":"YulFunctionCall","src":"12680:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12700:34:103","type":"","value":"ERROR:POL-007:ERC20_ADDRESS_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12673:6:103"},"nodeType":"YulFunctionCall","src":"12673:62:103"},"nodeType":"YulExpressionStatement","src":"12673:62:103"},{"nodeType":"YulAssignment","src":"12744:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12756:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12767:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12752:3:103"},"nodeType":"YulFunctionCall","src":"12752:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12744:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3c1c4902271d3c52f6adb4d23ba17ac60cf40fb4880aa2a0a9d8c9072958ecfa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12571:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12585:4:103","type":""}],"src":"12420:356:103"},{"body":{"nodeType":"YulBlock","src":"12955:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12972:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12983:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12965:6:103"},"nodeType":"YulFunctionCall","src":"12965:21:103"},"nodeType":"YulExpressionStatement","src":"12965:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13006:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13017:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13002:3:103"},"nodeType":"YulFunctionCall","src":"13002:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13022:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12995:6:103"},"nodeType":"YulFunctionCall","src":"12995:30:103"},"nodeType":"YulExpressionStatement","src":"12995:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13045:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13056:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13041:3:103"},"nodeType":"YulFunctionCall","src":"13041:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13061:34:103","type":"","value":"ERROR:POL-028:LOCKED_CAPITAL_TOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13034:6:103"},"nodeType":"YulFunctionCall","src":"13034:62:103"},"nodeType":"YulExpressionStatement","src":"13034:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13116:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13127:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13112:3:103"},"nodeType":"YulFunctionCall","src":"13112:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13132:6:103","type":"","value":"_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13105:6:103"},"nodeType":"YulFunctionCall","src":"13105:34:103"},"nodeType":"YulExpressionStatement","src":"13105:34:103"},{"nodeType":"YulAssignment","src":"13148:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13160:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13171:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13156:3:103"},"nodeType":"YulFunctionCall","src":"13156:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13148:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_44afcf949d770ee053a9529659b3ec99089a2997bdea1c544310c06d7692b840__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12932:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12946:4:103","type":""}],"src":"12781:400:103"},{"body":{"nodeType":"YulBlock","src":"13360:176:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13388:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13370:6:103"},"nodeType":"YulFunctionCall","src":"13370:21:103"},"nodeType":"YulExpressionStatement","src":"13370:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13411:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13422:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13407:3:103"},"nodeType":"YulFunctionCall","src":"13407:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13427:2:103","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13400:6:103"},"nodeType":"YulFunctionCall","src":"13400:30:103"},"nodeType":"YulExpressionStatement","src":"13400:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13450:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13461:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13446:3:103"},"nodeType":"YulFunctionCall","src":"13446:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13466:28:103","type":"","value":"ERROR:POL-011:NOT_RISKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13439:6:103"},"nodeType":"YulFunctionCall","src":"13439:56:103"},"nodeType":"YulExpressionStatement","src":"13439:56:103"},{"nodeType":"YulAssignment","src":"13504:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13516:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13527:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13512:3:103"},"nodeType":"YulFunctionCall","src":"13512:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13504:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_53bb344f755768ff8b29ba330a2701e3df8da028fa755fbfd239aa46f33046db__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13337:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13351:4:103","type":""}],"src":"13186:350:103"},{"body":{"nodeType":"YulBlock","src":"13715:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13732:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13743:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13725:6:103"},"nodeType":"YulFunctionCall","src":"13725:21:103"},"nodeType":"YulExpressionStatement","src":"13725:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13766:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13777:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13762:3:103"},"nodeType":"YulFunctionCall","src":"13762:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13782:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13755:6:103"},"nodeType":"YulFunctionCall","src":"13755:30:103"},"nodeType":"YulExpressionStatement","src":"13755:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13805:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13816:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13801:3:103"},"nodeType":"YulFunctionCall","src":"13801:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13821:34:103","type":"","value":"ERROR:POL-046:COMPONENT_NOT_RISK"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13794:6:103"},"nodeType":"YulFunctionCall","src":"13794:62:103"},"nodeType":"YulExpressionStatement","src":"13794:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13876:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13887:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13872:3:103"},"nodeType":"YulFunctionCall","src":"13872:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13892:6:103","type":"","value":"POOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13865:6:103"},"nodeType":"YulFunctionCall","src":"13865:34:103"},"nodeType":"YulExpressionStatement","src":"13865:34:103"},{"nodeType":"YulAssignment","src":"13908:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13920:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13931:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13916:3:103"},"nodeType":"YulFunctionCall","src":"13916:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13908:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_60fd20f0722035656a7179233af7d61a35ed3b471c51ffeacda2e26bd0b3e1fc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13692:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13706:4:103","type":""}],"src":"13541:400:103"},{"body":{"nodeType":"YulBlock","src":"14120:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14137:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14148:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14130:6:103"},"nodeType":"YulFunctionCall","src":"14130:21:103"},"nodeType":"YulExpressionStatement","src":"14130:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14171:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14182:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14167:3:103"},"nodeType":"YulFunctionCall","src":"14167:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14187:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14160:6:103"},"nodeType":"YulFunctionCall","src":"14160:30:103"},"nodeType":"YulExpressionStatement","src":"14160:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14210:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14221:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14206:3:103"},"nodeType":"YulFunctionCall","src":"14206:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14226:31:103","type":"","value":"ERROR:POL-027:CAPITAL_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14199:6:103"},"nodeType":"YulFunctionCall","src":"14199:59:103"},"nodeType":"YulExpressionStatement","src":"14199:59:103"},{"nodeType":"YulAssignment","src":"14267:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14290:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14275:3:103"},"nodeType":"YulFunctionCall","src":"14275:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14267:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_67cc7eb014a79a7e650ab0cfe6e52cae46518112ef7a651a4b1634ad03248e0e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14097:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14111:4:103","type":""}],"src":"13946:353:103"},{"body":{"nodeType":"YulBlock","src":"14478:240:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14495:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14506:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14488:6:103"},"nodeType":"YulFunctionCall","src":"14488:21:103"},"nodeType":"YulExpressionStatement","src":"14488:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14529:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14540:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14525:3:103"},"nodeType":"YulFunctionCall","src":"14525:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14545:2:103","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14518:6:103"},"nodeType":"YulFunctionCall","src":"14518:30:103"},"nodeType":"YulExpressionStatement","src":"14518:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14568:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14579:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14564:3:103"},"nodeType":"YulFunctionCall","src":"14564:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14584:34:103","type":"","value":"ERROR:POL-032:MAX_NUMBER_OF_ACTI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14557:6:103"},"nodeType":"YulFunctionCall","src":"14557:62:103"},"nodeType":"YulExpressionStatement","src":"14557:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14639:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14650:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14635:3:103"},"nodeType":"YulFunctionCall","src":"14635:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14655:20:103","type":"","value":"VE_BUNDLES_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14628:6:103"},"nodeType":"YulFunctionCall","src":"14628:48:103"},"nodeType":"YulExpressionStatement","src":"14628:48:103"},{"nodeType":"YulAssignment","src":"14685:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14697:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14708:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14693:3:103"},"nodeType":"YulFunctionCall","src":"14693:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14685:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7116746545d46f1c191ba7298d418be30d7db11a3c9e7fc22ef2d27b419a7e55__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14455:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14469:4:103","type":""}],"src":"14304:414:103"},{"body":{"nodeType":"YulBlock","src":"14897:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14925:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14907:6:103"},"nodeType":"YulFunctionCall","src":"14907:21:103"},"nodeType":"YulExpressionStatement","src":"14907:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14948:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14959:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14944:3:103"},"nodeType":"YulFunctionCall","src":"14944:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14964:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14937:6:103"},"nodeType":"YulFunctionCall","src":"14937:30:103"},"nodeType":"YulExpressionStatement","src":"14937:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14998:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14983:3:103"},"nodeType":"YulFunctionCall","src":"14983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15003:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14976:6:103"},"nodeType":"YulFunctionCall","src":"14976:62:103"},"nodeType":"YulExpressionStatement","src":"14976:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15058:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15069:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15054:3:103"},"nodeType":"YulFunctionCall","src":"15054:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15074:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15047:6:103"},"nodeType":"YulFunctionCall","src":"15047:44:103"},"nodeType":"YulExpressionStatement","src":"15047:44:103"},{"nodeType":"YulAssignment","src":"15100:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15123:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15108:3:103"},"nodeType":"YulFunctionCall","src":"15108:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15100:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14874:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14888:4:103","type":""}],"src":"14723:410:103"},{"body":{"nodeType":"YulBlock","src":"15312:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15329:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15340:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15322:6:103"},"nodeType":"YulFunctionCall","src":"15322:21:103"},"nodeType":"YulExpressionStatement","src":"15322:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15363:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15374:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15359:3:103"},"nodeType":"YulFunctionCall","src":"15359:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15379:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15352:6:103"},"nodeType":"YulFunctionCall","src":"15352:30:103"},"nodeType":"YulExpressionStatement","src":"15352:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15402:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15413:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15398:3:103"},"nodeType":"YulFunctionCall","src":"15398:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15418:34:103","type":"","value":"ERROR:POL-020:APPLICATION_STATE_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15391:6:103"},"nodeType":"YulFunctionCall","src":"15391:62:103"},"nodeType":"YulExpressionStatement","src":"15391:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15473:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15484:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15469:3:103"},"nodeType":"YulFunctionCall","src":"15469:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15489:9:103","type":"","value":"INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15462:6:103"},"nodeType":"YulFunctionCall","src":"15462:37:103"},"nodeType":"YulExpressionStatement","src":"15462:37:103"},{"nodeType":"YulAssignment","src":"15508:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15520:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15531:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15516:3:103"},"nodeType":"YulFunctionCall","src":"15516:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15508:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7b7737fa76e23ee54befdf8804430da02fe2a7f8d2077faa42f91454d58fec1e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15289:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15303:4:103","type":""}],"src":"15138:403:103"},{"body":{"nodeType":"YulBlock","src":"15720:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15737:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15748:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15730:6:103"},"nodeType":"YulFunctionCall","src":"15730:21:103"},"nodeType":"YulExpressionStatement","src":"15730:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15771:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15782:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15767:3:103"},"nodeType":"YulFunctionCall","src":"15767:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15787:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15760:6:103"},"nodeType":"YulFunctionCall","src":"15760:30:103"},"nodeType":"YulExpressionStatement","src":"15760:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15810:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15821:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15806:3:103"},"nodeType":"YulFunctionCall","src":"15806:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15826:34:103","type":"","value":"ERROR:POL-025:POLICY_STATE_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15799:6:103"},"nodeType":"YulFunctionCall","src":"15799:62:103"},"nodeType":"YulExpressionStatement","src":"15799:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15881:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15892:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15877:3:103"},"nodeType":"YulFunctionCall","src":"15877:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15897:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15870:6:103"},"nodeType":"YulFunctionCall","src":"15870:32:103"},"nodeType":"YulExpressionStatement","src":"15870:32:103"},{"nodeType":"YulAssignment","src":"15911:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15923:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15934:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15919:3:103"},"nodeType":"YulFunctionCall","src":"15919:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15911:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8112df5365773a5d212dc325b4bcf75d58165a23e61b1a17302f9ca56a1ed0fb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15697:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15711:4:103","type":""}],"src":"15546:398:103"},{"body":{"nodeType":"YulBlock","src":"16123:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16140:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16151:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16133:6:103"},"nodeType":"YulFunctionCall","src":"16133:21:103"},"nodeType":"YulExpressionStatement","src":"16133:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16185:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16170:3:103"},"nodeType":"YulFunctionCall","src":"16170:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16190:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16163:6:103"},"nodeType":"YulFunctionCall","src":"16163:30:103"},"nodeType":"YulExpressionStatement","src":"16163:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16213:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16224:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16209:3:103"},"nodeType":"YulFunctionCall","src":"16209:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16229:34:103","type":"","value":"ERROR:POL-002:NOT_RISKPOOL_SERVI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16202:6:103"},"nodeType":"YulFunctionCall","src":"16202:62:103"},"nodeType":"YulExpressionStatement","src":"16202:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16284:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16295:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16280:3:103"},"nodeType":"YulFunctionCall","src":"16280:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16300:4:103","type":"","value":"CE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16273:6:103"},"nodeType":"YulFunctionCall","src":"16273:32:103"},"nodeType":"YulExpressionStatement","src":"16273:32:103"},{"nodeType":"YulAssignment","src":"16314:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16326:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16337:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16322:3:103"},"nodeType":"YulFunctionCall","src":"16322:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16314:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_966f1f86304de2b3465165e344fb9e74c7781a68f6ea7df637fdc3729caa28d7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16100:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16114:4:103","type":""}],"src":"15949:398:103"},{"body":{"nodeType":"YulBlock","src":"16526:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16543:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16554:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16536:6:103"},"nodeType":"YulFunctionCall","src":"16536:21:103"},"nodeType":"YulExpressionStatement","src":"16536:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16577:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16588:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16573:3:103"},"nodeType":"YulFunctionCall","src":"16573:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16593:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16566:6:103"},"nodeType":"YulFunctionCall","src":"16566:30:103"},"nodeType":"YulExpressionStatement","src":"16566:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16616:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16627:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16612:3:103"},"nodeType":"YulFunctionCall","src":"16612:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16632:34:103","type":"","value":"ERROR:POL-045:RISKPOOL_DOES_NOT_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16605:6:103"},"nodeType":"YulFunctionCall","src":"16605:62:103"},"nodeType":"YulExpressionStatement","src":"16605:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16687:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16698:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16683:3:103"},"nodeType":"YulFunctionCall","src":"16683:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16703:7:103","type":"","value":"EXIST"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16676:6:103"},"nodeType":"YulFunctionCall","src":"16676:35:103"},"nodeType":"YulExpressionStatement","src":"16676:35:103"},{"nodeType":"YulAssignment","src":"16720:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16732:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16743:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16728:3:103"},"nodeType":"YulFunctionCall","src":"16728:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16720:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a4b296530db676cdfea5704a67861f031427c9d329dfdeaaa17866263df6c024__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16503:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16517:4:103","type":""}],"src":"16352:401:103"},{"body":{"nodeType":"YulBlock","src":"16932:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16949:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16960:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16942:6:103"},"nodeType":"YulFunctionCall","src":"16942:21:103"},"nodeType":"YulExpressionStatement","src":"16942:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16983:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16994:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16979:3:103"},"nodeType":"YulFunctionCall","src":"16979:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16999:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16972:6:103"},"nodeType":"YulFunctionCall","src":"16972:30:103"},"nodeType":"YulExpressionStatement","src":"16972:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17022:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17033:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17018:3:103"},"nodeType":"YulFunctionCall","src":"17018:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17038:30:103","type":"","value":"ERROR:CRC-002:NOT_ON_STORAGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17011:6:103"},"nodeType":"YulFunctionCall","src":"17011:58:103"},"nodeType":"YulExpressionStatement","src":"17011:58:103"},{"nodeType":"YulAssignment","src":"17078:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17090:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17101:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17086:3:103"},"nodeType":"YulFunctionCall","src":"17086:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17078:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16909:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16923:4:103","type":""}],"src":"16758:352:103"},{"body":{"nodeType":"YulBlock","src":"17289:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17306:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17317:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17299:6:103"},"nodeType":"YulFunctionCall","src":"17299:21:103"},"nodeType":"YulExpressionStatement","src":"17299:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17340:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17351:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17336:3:103"},"nodeType":"YulFunctionCall","src":"17336:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17356:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17329:6:103"},"nodeType":"YulFunctionCall","src":"17329:30:103"},"nodeType":"YulExpressionStatement","src":"17329:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17379:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17390:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17375:3:103"},"nodeType":"YulFunctionCall","src":"17375:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17395:34:103","type":"","value":"ERROR:POL-008:COLLATERALIZATION_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17368:6:103"},"nodeType":"YulFunctionCall","src":"17368:62:103"},"nodeType":"YulExpressionStatement","src":"17368:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17450:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17461:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17446:3:103"},"nodeType":"YulFunctionCall","src":"17446:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17466:16:103","type":"","value":"lEVEl_TOO_HIGH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17439:6:103"},"nodeType":"YulFunctionCall","src":"17439:44:103"},"nodeType":"YulExpressionStatement","src":"17439:44:103"},{"nodeType":"YulAssignment","src":"17492:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17504:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17515:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17500:3:103"},"nodeType":"YulFunctionCall","src":"17500:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17492:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_acad2caacd6ddfafd876b6f7b9565d102fbab77b96c69233dfb71c5f810056a1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17266:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17280:4:103","type":""}],"src":"17115:410:103"},{"body":{"nodeType":"YulBlock","src":"17704:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17721:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17732:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17714:6:103"},"nodeType":"YulFunctionCall","src":"17714:21:103"},"nodeType":"YulExpressionStatement","src":"17714:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17755:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17766:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17751:3:103"},"nodeType":"YulFunctionCall","src":"17751:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17771:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17744:6:103"},"nodeType":"YulFunctionCall","src":"17744:30:103"},"nodeType":"YulExpressionStatement","src":"17744:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17794:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17805:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17790:3:103"},"nodeType":"YulFunctionCall","src":"17790:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17810:34:103","type":"","value":"ERROR:POL-042:BUNDLE_ID_ALREADY_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17783:6:103"},"nodeType":"YulFunctionCall","src":"17783:62:103"},"nodeType":"YulExpressionStatement","src":"17783:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17876:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17861:3:103"},"nodeType":"YulFunctionCall","src":"17861:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17881:8:103","type":"","value":"IN_SET"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17854:6:103"},"nodeType":"YulFunctionCall","src":"17854:36:103"},"nodeType":"YulExpressionStatement","src":"17854:36:103"},{"nodeType":"YulAssignment","src":"17899:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17911:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17922:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17907:3:103"},"nodeType":"YulFunctionCall","src":"17907:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17899:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b086ae5e8f106ca526b0d03899a345f10ddaccb93416929015e592b95b2ec331__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17681:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17695:4:103","type":""}],"src":"17530:402:103"},{"body":{"nodeType":"YulBlock","src":"18111:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18128:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18139:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18121:6:103"},"nodeType":"YulFunctionCall","src":"18121:21:103"},"nodeType":"YulExpressionStatement","src":"18121:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18162:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18173:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18158:3:103"},"nodeType":"YulFunctionCall","src":"18158:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18178:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18151:6:103"},"nodeType":"YulFunctionCall","src":"18151:30:103"},"nodeType":"YulExpressionStatement","src":"18151:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18201:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18212:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18197:3:103"},"nodeType":"YulFunctionCall","src":"18197:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18217:31:103","type":"","value":"ERROR:POL-029:BALANCE_TOO_LOW"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18190:6:103"},"nodeType":"YulFunctionCall","src":"18190:59:103"},"nodeType":"YulExpressionStatement","src":"18190:59:103"},{"nodeType":"YulAssignment","src":"18258:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18270:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18281:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18266:3:103"},"nodeType":"YulFunctionCall","src":"18266:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18258:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ba78ed8f777c20a07a168d501d7b3d7b92a7f1a27a40caead8609d6c05873a42__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18088:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18102:4:103","type":""}],"src":"17937:353:103"},{"body":{"nodeType":"YulBlock","src":"18469:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18486:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18497:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18479:6:103"},"nodeType":"YulFunctionCall","src":"18479:21:103"},"nodeType":"YulExpressionStatement","src":"18479:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18520:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18531:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18516:3:103"},"nodeType":"YulFunctionCall","src":"18516:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18536:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18509:6:103"},"nodeType":"YulFunctionCall","src":"18509:30:103"},"nodeType":"YulExpressionStatement","src":"18509:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18559:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18570:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18555:3:103"},"nodeType":"YulFunctionCall","src":"18555:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18575:34:103","type":"","value":"ERROR:POL-040:RISKPOOL_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18548:6:103"},"nodeType":"YulFunctionCall","src":"18548:62:103"},"nodeType":"YulExpressionStatement","src":"18548:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18630:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18641:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18626:3:103"},"nodeType":"YulFunctionCall","src":"18626:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18646:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18619:6:103"},"nodeType":"YulFunctionCall","src":"18619:35:103"},"nodeType":"YulExpressionStatement","src":"18619:35:103"},{"nodeType":"YulAssignment","src":"18663:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18686:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18671:3:103"},"nodeType":"YulFunctionCall","src":"18671:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18663:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d3836296e71c1859c2c71fd95043696a6e738e6a1a0c4395bee681aed798558c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18446:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18460:4:103","type":""}],"src":"18295:401:103"},{"body":{"nodeType":"YulBlock","src":"18875:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18903:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18885:6:103"},"nodeType":"YulFunctionCall","src":"18885:21:103"},"nodeType":"YulExpressionStatement","src":"18885:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18937:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18922:3:103"},"nodeType":"YulFunctionCall","src":"18922:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18942:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18915:6:103"},"nodeType":"YulFunctionCall","src":"18915:30:103"},"nodeType":"YulExpressionStatement","src":"18915:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18965:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18976:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18961:3:103"},"nodeType":"YulFunctionCall","src":"18961:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18981:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18954:6:103"},"nodeType":"YulFunctionCall","src":"18954:62:103"},"nodeType":"YulExpressionStatement","src":"18954:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19047:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19032:3:103"},"nodeType":"YulFunctionCall","src":"19032:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19052:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19025:6:103"},"nodeType":"YulFunctionCall","src":"19025:41:103"},"nodeType":"YulExpressionStatement","src":"19025:41:103"},{"nodeType":"YulAssignment","src":"19075:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19087:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19098:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19083:3:103"},"nodeType":"YulFunctionCall","src":"19083:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19075:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18852:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18866:4:103","type":""}],"src":"18701:407:103"},{"body":{"nodeType":"YulBlock","src":"19287:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19315:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19297:6:103"},"nodeType":"YulFunctionCall","src":"19297:21:103"},"nodeType":"YulExpressionStatement","src":"19297:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19338:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19349:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19334:3:103"},"nodeType":"YulFunctionCall","src":"19334:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19354:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19327:6:103"},"nodeType":"YulFunctionCall","src":"19327:30:103"},"nodeType":"YulExpressionStatement","src":"19327:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19388:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19373:3:103"},"nodeType":"YulFunctionCall","src":"19373:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19393:34:103","type":"","value":"ERROR:CRC-003:NOT_PRODUCT_SERVIC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19366:6:103"},"nodeType":"YulFunctionCall","src":"19366:62:103"},"nodeType":"YulExpressionStatement","src":"19366:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19448:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19459:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19444:3:103"},"nodeType":"YulFunctionCall","src":"19444:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19464:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19437:6:103"},"nodeType":"YulFunctionCall","src":"19437:31:103"},"nodeType":"YulExpressionStatement","src":"19437:31:103"},{"nodeType":"YulAssignment","src":"19477:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19489:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19500:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19485:3:103"},"nodeType":"YulFunctionCall","src":"19485:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19477:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19264:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19278:4:103","type":""}],"src":"19113:397:103"},{"body":{"nodeType":"YulBlock","src":"19689:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19706:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19717:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19699:6:103"},"nodeType":"YulFunctionCall","src":"19699:21:103"},"nodeType":"YulExpressionStatement","src":"19699:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19740:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19751:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19736:3:103"},"nodeType":"YulFunctionCall","src":"19736:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19756:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19729:6:103"},"nodeType":"YulFunctionCall","src":"19729:30:103"},"nodeType":"YulExpressionStatement","src":"19729:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19779:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19790:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19775:3:103"},"nodeType":"YulFunctionCall","src":"19775:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19795:34:103","type":"","value":"ERROR:POL-012:RISKPOOL_ALREADY_S"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19768:6:103"},"nodeType":"YulFunctionCall","src":"19768:62:103"},"nodeType":"YulExpressionStatement","src":"19768:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19850:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19861:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19846:3:103"},"nodeType":"YulFunctionCall","src":"19846:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19866:4:103","type":"","value":"ET"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19839:6:103"},"nodeType":"YulFunctionCall","src":"19839:32:103"},"nodeType":"YulExpressionStatement","src":"19839:32:103"},{"nodeType":"YulAssignment","src":"19880:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19903:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19888:3:103"},"nodeType":"YulFunctionCall","src":"19888:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19880:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f319dea6556041246bb86b4f2b8ac2451da0edcfdd502e0f920d7f44141a5322__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19666:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19680:4:103","type":""}],"src":"19515:398:103"},{"body":{"nodeType":"YulBlock","src":"20092:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20109:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20120:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20102:6:103"},"nodeType":"YulFunctionCall","src":"20102:21:103"},"nodeType":"YulExpressionStatement","src":"20102:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20143:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20154:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20139:3:103"},"nodeType":"YulFunctionCall","src":"20139:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20159:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20132:6:103"},"nodeType":"YulFunctionCall","src":"20132:30:103"},"nodeType":"YulExpressionStatement","src":"20132:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20182:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20193:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20178:3:103"},"nodeType":"YulFunctionCall","src":"20178:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20198:34:103","type":"","value":"ERROR:POL-005:RISKPOOL_ALREADY_R"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20171:6:103"},"nodeType":"YulFunctionCall","src":"20171:62:103"},"nodeType":"YulExpressionStatement","src":"20171:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20253:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20264:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20249:3:103"},"nodeType":"YulFunctionCall","src":"20249:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20269:11:103","type":"","value":"EGISTERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20242:6:103"},"nodeType":"YulFunctionCall","src":"20242:39:103"},"nodeType":"YulExpressionStatement","src":"20242:39:103"},{"nodeType":"YulAssignment","src":"20290:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20302:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20313:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20298:3:103"},"nodeType":"YulFunctionCall","src":"20298:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20290:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f58ee845cc4844222cd7fa0a8e8d561077a6aa1109b2c08627d10c4eab87b0d9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20069:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20083:4:103","type":""}],"src":"19918:405:103"},{"body":{"nodeType":"YulBlock","src":"20502:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20519:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20530:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20512:6:103"},"nodeType":"YulFunctionCall","src":"20512:21:103"},"nodeType":"YulExpressionStatement","src":"20512:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20553:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20564:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20549:3:103"},"nodeType":"YulFunctionCall","src":"20549:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20569:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20542:6:103"},"nodeType":"YulFunctionCall","src":"20542:30:103"},"nodeType":"YulExpressionStatement","src":"20542:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20603:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20588:3:103"},"nodeType":"YulFunctionCall","src":"20588:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20608:34:103","type":"","value":"ERROR:POL-041:BUNDLE_IDX_TOO_LAR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20581:6:103"},"nodeType":"YulFunctionCall","src":"20581:62:103"},"nodeType":"YulExpressionStatement","src":"20581:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20663:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20674:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20659:3:103"},"nodeType":"YulFunctionCall","src":"20659:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20679:4:103","type":"","value":"GE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20652:6:103"},"nodeType":"YulFunctionCall","src":"20652:32:103"},"nodeType":"YulExpressionStatement","src":"20652:32:103"},{"nodeType":"YulAssignment","src":"20693:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20705:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20716:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20701:3:103"},"nodeType":"YulFunctionCall","src":"20701:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20693:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fac70cef27ea13d3b488fdaf23702ddb45d929dc3704ba843e20ef6d9116ebab__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20479:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20493:4:103","type":""}],"src":"20328:398:103"},{"body":{"nodeType":"YulBlock","src":"20876:887:103","statements":[{"nodeType":"YulAssignment","src":"20886:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20898:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20909:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20894:3:103"},"nodeType":"YulFunctionCall","src":"20894:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20886:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20929:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20946:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20940:5:103"},"nodeType":"YulFunctionCall","src":"20940:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20922:6:103"},"nodeType":"YulFunctionCall","src":"20922:32:103"},"nodeType":"YulExpressionStatement","src":"20922:32:103"},{"nodeType":"YulVariableDeclaration","src":"20963:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20993:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21001:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20989:3:103"},"nodeType":"YulFunctionCall","src":"20989:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20983:5:103"},"nodeType":"YulFunctionCall","src":"20983:24:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"20967:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"21035:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21053:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21064:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21049:3:103"},"nodeType":"YulFunctionCall","src":"21049:20:103"}],"functionName":{"name":"abi_encode_address","nodeType":"YulIdentifier","src":"21016:18:103"},"nodeType":"YulFunctionCall","src":"21016:54:103"},"nodeType":"YulExpressionStatement","src":"21016:54:103"},{"nodeType":"YulVariableDeclaration","src":"21079:46:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21111:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21119:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21107:3:103"},"nodeType":"YulFunctionCall","src":"21107:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21101:5:103"},"nodeType":"YulFunctionCall","src":"21101:24:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"21083:14:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"21153:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21173:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21184:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21169:3:103"},"nodeType":"YulFunctionCall","src":"21169:20:103"}],"functionName":{"name":"abi_encode_address","nodeType":"YulIdentifier","src":"21134:18:103"},"nodeType":"YulFunctionCall","src":"21134:56:103"},"nodeType":"YulExpressionStatement","src":"21134:56:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21210:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21221:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21206:3:103"},"nodeType":"YulFunctionCall","src":"21206:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21238:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21246:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21234:3:103"},"nodeType":"YulFunctionCall","src":"21234:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21228:5:103"},"nodeType":"YulFunctionCall","src":"21228:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21199:6:103"},"nodeType":"YulFunctionCall","src":"21199:54:103"},"nodeType":"YulExpressionStatement","src":"21199:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21273:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21284:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21269:3:103"},"nodeType":"YulFunctionCall","src":"21269:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21301:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21309:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21297:3:103"},"nodeType":"YulFunctionCall","src":"21297:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21291:5:103"},"nodeType":"YulFunctionCall","src":"21291:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21262:6:103"},"nodeType":"YulFunctionCall","src":"21262:54:103"},"nodeType":"YulExpressionStatement","src":"21262:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21336:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21347:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21332:3:103"},"nodeType":"YulFunctionCall","src":"21332:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21364:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21372:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21360:3:103"},"nodeType":"YulFunctionCall","src":"21360:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21354:5:103"},"nodeType":"YulFunctionCall","src":"21354:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21325:6:103"},"nodeType":"YulFunctionCall","src":"21325:54:103"},"nodeType":"YulExpressionStatement","src":"21325:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21399:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21410:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21395:3:103"},"nodeType":"YulFunctionCall","src":"21395:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21427:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21435:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21423:3:103"},"nodeType":"YulFunctionCall","src":"21423:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21417:5:103"},"nodeType":"YulFunctionCall","src":"21417:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21388:6:103"},"nodeType":"YulFunctionCall","src":"21388:54:103"},"nodeType":"YulExpressionStatement","src":"21388:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21473:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21458:3:103"},"nodeType":"YulFunctionCall","src":"21458:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21490:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21498:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21486:3:103"},"nodeType":"YulFunctionCall","src":"21486:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21480:5:103"},"nodeType":"YulFunctionCall","src":"21480:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21451:6:103"},"nodeType":"YulFunctionCall","src":"21451:54:103"},"nodeType":"YulExpressionStatement","src":"21451:54:103"},{"nodeType":"YulVariableDeclaration","src":"21514:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"21524:6:103","type":"","value":"0x0100"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21518:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21550:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"21561:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21546:3:103"},"nodeType":"YulFunctionCall","src":"21546:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21576:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"21584:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21572:3:103"},"nodeType":"YulFunctionCall","src":"21572:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21566:5:103"},"nodeType":"YulFunctionCall","src":"21566:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21539:6:103"},"nodeType":"YulFunctionCall","src":"21539:50:103"},"nodeType":"YulExpressionStatement","src":"21539:50:103"},{"nodeType":"YulVariableDeclaration","src":"21598:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"21608:6:103","type":"","value":"0x0120"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"21602:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21634:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"21645:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21630:3:103"},"nodeType":"YulFunctionCall","src":"21630:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21660:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"21668:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21656:3:103"},"nodeType":"YulFunctionCall","src":"21656:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21650:5:103"},"nodeType":"YulFunctionCall","src":"21650:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21623:6:103"},"nodeType":"YulFunctionCall","src":"21623:50:103"},"nodeType":"YulExpressionStatement","src":"21623:50:103"},{"nodeType":"YulVariableDeclaration","src":"21682:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"21692:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"21686:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21718:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"21729:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21714:3:103"},"nodeType":"YulFunctionCall","src":"21714:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21744:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"21752:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21740:3:103"},"nodeType":"YulFunctionCall","src":"21740:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21734:5:103"},"nodeType":"YulFunctionCall","src":"21734:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21707:6:103"},"nodeType":"YulFunctionCall","src":"21707:50:103"},"nodeType":"YulExpressionStatement","src":"21707:50:103"}]},"name":"abi_encode_tuple_t_struct$_Pool_$5502_memory_ptr__to_t_struct$_Pool_$5502_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20845:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20856:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20867:4:103","type":""}],"src":"20731:1032:103"},{"body":{"nodeType":"YulBlock","src":"21869:76:103","statements":[{"nodeType":"YulAssignment","src":"21879:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21891:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21902:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21887:3:103"},"nodeType":"YulFunctionCall","src":"21887:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21879:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21921:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"21932:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21914:6:103"},"nodeType":"YulFunctionCall","src":"21914:25:103"},"nodeType":"YulExpressionStatement","src":"21914:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21838:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21849:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21860:4:103","type":""}],"src":"21768:177:103"},{"body":{"nodeType":"YulBlock","src":"22163:306:103","statements":[{"nodeType":"YulAssignment","src":"22173:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22185:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22196:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22181:3:103"},"nodeType":"YulFunctionCall","src":"22181:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22173:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22216:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"22227:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22209:6:103"},"nodeType":"YulFunctionCall","src":"22209:25:103"},"nodeType":"YulExpressionStatement","src":"22209:25:103"},{"nodeType":"YulVariableDeclaration","src":"22243:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22261:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22266:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22257:3:103"},"nodeType":"YulFunctionCall","src":"22257:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"22270:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22253:3:103"},"nodeType":"YulFunctionCall","src":"22253:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"22247:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22303:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22288:3:103"},"nodeType":"YulFunctionCall","src":"22288:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"22312:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"22320:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22308:3:103"},"nodeType":"YulFunctionCall","src":"22308:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22281:6:103"},"nodeType":"YulFunctionCall","src":"22281:43:103"},"nodeType":"YulExpressionStatement","src":"22281:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22340:3:103"},"nodeType":"YulFunctionCall","src":"22340:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"22364:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"22372:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22360:3:103"},"nodeType":"YulFunctionCall","src":"22360:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22333:6:103"},"nodeType":"YulFunctionCall","src":"22333:43:103"},"nodeType":"YulExpressionStatement","src":"22333:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22407:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22392:3:103"},"nodeType":"YulFunctionCall","src":"22392:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"22412:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22385:6:103"},"nodeType":"YulFunctionCall","src":"22385:34:103"},"nodeType":"YulExpressionStatement","src":"22385:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22439:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22450:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22435:3:103"},"nodeType":"YulFunctionCall","src":"22435:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"22456:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22428:6:103"},"nodeType":"YulFunctionCall","src":"22428:35:103"},"nodeType":"YulExpressionStatement","src":"22428:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22100:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"22111:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"22119:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22127:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22135:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22143:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22154:4:103","type":""}],"src":"21950:519:103"},{"body":{"nodeType":"YulBlock","src":"22631:162:103","statements":[{"nodeType":"YulAssignment","src":"22641:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22653:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22664:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22649:3:103"},"nodeType":"YulFunctionCall","src":"22649:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22641:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22683:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"22694:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22676:6:103"},"nodeType":"YulFunctionCall","src":"22676:25:103"},"nodeType":"YulExpressionStatement","src":"22676:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22721:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22732:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22717:3:103"},"nodeType":"YulFunctionCall","src":"22717:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"22737:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22710:6:103"},"nodeType":"YulFunctionCall","src":"22710:34:103"},"nodeType":"YulExpressionStatement","src":"22710:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22764:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22775:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22760:3:103"},"nodeType":"YulFunctionCall","src":"22760:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"22780:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22753:6:103"},"nodeType":"YulFunctionCall","src":"22753:34:103"},"nodeType":"YulExpressionStatement","src":"22753:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22584:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"22595:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"22603:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22611:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22622:4:103","type":""}],"src":"22474:319:103"},{"body":{"nodeType":"YulBlock","src":"22843:230:103","statements":[{"nodeType":"YulAssignment","src":"22853:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22869:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22863:5:103"},"nodeType":"YulFunctionCall","src":"22863:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22853:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"22881:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"22903:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"22919:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"22925:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22915:3:103"},"nodeType":"YulFunctionCall","src":"22915:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22934:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"22930:3:103"},"nodeType":"YulFunctionCall","src":"22930:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22911:3:103"},"nodeType":"YulFunctionCall","src":"22911:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22899:3:103"},"nodeType":"YulFunctionCall","src":"22899:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"22885:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"23014:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"23016:16:103"},"nodeType":"YulFunctionCall","src":"23016:18:103"},"nodeType":"YulExpressionStatement","src":"23016:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"22957:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"22969:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"22954:2:103"},"nodeType":"YulFunctionCall","src":"22954:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"22993:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"23005:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"22990:2:103"},"nodeType":"YulFunctionCall","src":"22990:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"22951:2:103"},"nodeType":"YulFunctionCall","src":"22951:62:103"},"nodeType":"YulIf","src":"22948:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23052:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"23056:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23045:6:103"},"nodeType":"YulFunctionCall","src":"23045:22:103"},"nodeType":"YulExpressionStatement","src":"23045:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"22823:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"22832:6:103","type":""}],"src":"22798:275:103"},{"body":{"nodeType":"YulBlock","src":"23126:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"23153:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"23155:16:103"},"nodeType":"YulFunctionCall","src":"23155:18:103"},"nodeType":"YulExpressionStatement","src":"23155:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23142:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"23149:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"23145:3:103"},"nodeType":"YulFunctionCall","src":"23145:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23139:2:103"},"nodeType":"YulFunctionCall","src":"23139:13:103"},"nodeType":"YulIf","src":"23136:2:103"},{"nodeType":"YulAssignment","src":"23184:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23195:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"23198:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23191:3:103"},"nodeType":"YulFunctionCall","src":"23191:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"23184:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23109:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"23112:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"23118:3:103","type":""}],"src":"23078:128:103"},{"body":{"nodeType":"YulBlock","src":"23257:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"23288:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"23309:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23316:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23321:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23312:3:103"},"nodeType":"YulFunctionCall","src":"23312:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23302:6:103"},"nodeType":"YulFunctionCall","src":"23302:31:103"},"nodeType":"YulExpressionStatement","src":"23302:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23353:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23356:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23346:6:103"},"nodeType":"YulFunctionCall","src":"23346:15:103"},"nodeType":"YulExpressionStatement","src":"23346:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"23381:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"23384:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23374:6:103"},"nodeType":"YulFunctionCall","src":"23374:15:103"},"nodeType":"YulExpressionStatement","src":"23374:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"23277:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23270:6:103"},"nodeType":"YulFunctionCall","src":"23270:9:103"},"nodeType":"YulIf","src":"23267:2:103"},{"nodeType":"YulAssignment","src":"23408:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23417:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"23420:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"23413:3:103"},"nodeType":"YulFunctionCall","src":"23413:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"23408:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23242:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"23245:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"23251:1:103","type":""}],"src":"23211:217:103"},{"body":{"nodeType":"YulBlock","src":"23485:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"23544:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"23546:16:103"},"nodeType":"YulFunctionCall","src":"23546:18:103"},"nodeType":"YulExpressionStatement","src":"23546:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23516:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23509:6:103"},"nodeType":"YulFunctionCall","src":"23509:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"23502:6:103"},"nodeType":"YulFunctionCall","src":"23502:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"23524:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23535:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"23531:3:103"},"nodeType":"YulFunctionCall","src":"23531:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"23539:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"23527:3:103"},"nodeType":"YulFunctionCall","src":"23527:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"23521:2:103"},"nodeType":"YulFunctionCall","src":"23521:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"23498:3:103"},"nodeType":"YulFunctionCall","src":"23498:45:103"},"nodeType":"YulIf","src":"23495:2:103"},{"nodeType":"YulAssignment","src":"23575:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23590:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"23593:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"23586:3:103"},"nodeType":"YulFunctionCall","src":"23586:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"23575:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23464:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"23467:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"23473:7:103","type":""}],"src":"23433:168:103"},{"body":{"nodeType":"YulBlock","src":"23655:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"23677:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"23679:16:103"},"nodeType":"YulFunctionCall","src":"23679:18:103"},"nodeType":"YulExpressionStatement","src":"23679:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23671:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"23674:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"23668:2:103"},"nodeType":"YulFunctionCall","src":"23668:8:103"},"nodeType":"YulIf","src":"23665:2:103"},{"nodeType":"YulAssignment","src":"23708:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"23720:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"23723:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"23716:3:103"},"nodeType":"YulFunctionCall","src":"23716:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"23708:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"23637:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"23640:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"23646:4:103","type":""}],"src":"23606:125:103"},{"body":{"nodeType":"YulBlock","src":"23768:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23785:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23792:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23797:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23788:3:103"},"nodeType":"YulFunctionCall","src":"23788:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23778:6:103"},"nodeType":"YulFunctionCall","src":"23778:31:103"},"nodeType":"YulExpressionStatement","src":"23778:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23825:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23828:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23818:6:103"},"nodeType":"YulFunctionCall","src":"23818:15:103"},"nodeType":"YulExpressionStatement","src":"23818:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23849:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23852:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23842:6:103"},"nodeType":"YulFunctionCall","src":"23842:15:103"},"nodeType":"YulExpressionStatement","src":"23842:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"23736:127:103"},{"body":{"nodeType":"YulBlock","src":"23900:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23917:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23924:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"23929:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"23920:3:103"},"nodeType":"YulFunctionCall","src":"23920:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23910:6:103"},"nodeType":"YulFunctionCall","src":"23910:31:103"},"nodeType":"YulExpressionStatement","src":"23910:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23957:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"23960:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23950:6:103"},"nodeType":"YulFunctionCall","src":"23950:15:103"},"nodeType":"YulExpressionStatement","src":"23950:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"23981:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"23984:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"23974:6:103"},"nodeType":"YulFunctionCall","src":"23974:15:103"},"nodeType":"YulExpressionStatement","src":"23974:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"23868:127:103"},{"body":{"nodeType":"YulBlock","src":"24045:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"24109:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24118:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"24121:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"24111:6:103"},"nodeType":"YulFunctionCall","src":"24111:12:103"},"nodeType":"YulExpressionStatement","src":"24111:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24068:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"24079:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"24094:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"24099:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"24090:3:103"},"nodeType":"YulFunctionCall","src":"24090:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"24103:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"24086:3:103"},"nodeType":"YulFunctionCall","src":"24086:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"24075:3:103"},"nodeType":"YulFunctionCall","src":"24075:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"24065:2:103"},"nodeType":"YulFunctionCall","src":"24065:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"24058:6:103"},"nodeType":"YulFunctionCall","src":"24058:50:103"},"nodeType":"YulIf","src":"24055:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"24034:5:103","type":""}],"src":"24000:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let _2 := 0x20\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), _2))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), _2), end) { revert(array, array) }\n let i := array\n for { } lt(i, _1) { i := add(i, _2) }\n {\n mstore(add(add(array_1, i), _2), mload(add(add(offset, i), _2)))\n }\n if gt(i, _1)\n {\n mstore(add(add(array_1, _1), _2), array)\n }\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n if iszero(lt(value_1, 4)) { revert(value0, value0) }\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n let value_1 := calldataload(add(headStart, 64))\n validator_revert_address(value_1)\n value2 := value_1\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_address(value, pos)\n {\n mstore(pos, and(value, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_01ba533ede5bc9857bd888044082beab7540e9985694ecf1b8f2420761091360__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:POL-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_153cdd57b6a54a67c3edead82db53ff9ca80c0d53800cc6e08d94bcd48709063__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:POL-009:SUM_OF_SUM_INSURED\")\n mstore(add(headStart, 96), \"_CAP_ZERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1b7f0a4d9ff2dc985060892cfa5d21ef1861aee5377df8478f07451d1c71c9a4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POL-004:RISKPOOL_NOT_ACTIV\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1bc20430b5420212dd3a6e8be5f546e3de707484a8680f89c18cb18c351384cb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:POL-022:RISKPOOL_SUM_INSUR\")\n mstore(add(headStart, 96), \"ED_CAP_EXCEEDED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_21abf94b5548761de95d02f2a3d6e1d83d6d35330a6e30e85c122e0961c94723__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERROR:POL-010:NOT_PRODUCT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_25c96dd3fff47393c9641d7e3b8d6afd2344a8424f3becb7b10f61348f063fb8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-044:BUNDLE_ID_NOT_IN_S\")\n mstore(add(headStart, 96), \"ET\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2676f82624b5790964b977de4e2922d89874c40d9966c58f2ee005dc0bbd3479__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POL-003:RISKPOOL_NOT_ACTIV\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2a58e30d80b67c427d73fc6164f99768fb9b50c18604efb17c57bf2e875de904__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POL-006:WALLET_ADDRESS_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2f1d6c58669160bcbfc12f912411cc7135fdc211388790e920c997812d46fbf3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:POL-026:RISKPOOL_ID_INVALI\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_32d45b651261a0d41dda08727c81a537b3167117b852006bf8549d74e1a978bf__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 54)\n mstore(add(headStart, 64), \"ERROR:POL-043:MAXIMUM_NUMBER_OF_\")\n mstore(add(headStart, 96), \"ACTIVE_BUNDLES_REACHED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3c1c4902271d3c52f6adb4d23ba17ac60cf40fb4880aa2a0a9d8c9072958ecfa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:POL-007:ERC20_ADDRESS_ZERO\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_44afcf949d770ee053a9529659b3ec99089a2997bdea1c544310c06d7692b840__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:POL-028:LOCKED_CAPITAL_TOO\")\n mstore(add(headStart, 96), \"_LOW\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_53bb344f755768ff8b29ba330a2701e3df8da028fa755fbfd239aa46f33046db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"ERROR:POL-011:NOT_RISKPOOL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_60fd20f0722035656a7179233af7d61a35ed3b471c51ffeacda2e26bd0b3e1fc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:POL-046:COMPONENT_NOT_RISK\")\n mstore(add(headStart, 96), \"POOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_67cc7eb014a79a7e650ab0cfe6e52cae46518112ef7a651a4b1634ad03248e0e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:POL-027:CAPITAL_TOO_LOW\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7116746545d46f1c191ba7298d418be30d7db11a3c9e7fc22ef2d27b419a7e55__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 50)\n mstore(add(headStart, 64), \"ERROR:POL-032:MAX_NUMBER_OF_ACTI\")\n mstore(add(headStart, 96), \"VE_BUNDLES_INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7b7737fa76e23ee54befdf8804430da02fe2a7f8d2077faa42f91454d58fec1e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:POL-020:APPLICATION_STATE_\")\n mstore(add(headStart, 96), \"INVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8112df5365773a5d212dc325b4bcf75d58165a23e61b1a17302f9ca56a1ed0fb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-025:POLICY_STATE_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_966f1f86304de2b3465165e344fb9e74c7781a68f6ea7df637fdc3729caa28d7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-002:NOT_RISKPOOL_SERVI\")\n mstore(add(headStart, 96), \"CE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a4b296530db676cdfea5704a67861f031427c9d329dfdeaaa17866263df6c024__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POL-045:RISKPOOL_DOES_NOT_\")\n mstore(add(headStart, 96), \"EXIST\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:CRC-002:NOT_ON_STORAGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_acad2caacd6ddfafd876b6f7b9565d102fbab77b96c69233dfb71c5f810056a1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"ERROR:POL-008:COLLATERALIZATION_\")\n mstore(add(headStart, 96), \"lEVEl_TOO_HIGH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b086ae5e8f106ca526b0d03899a345f10ddaccb93416929015e592b95b2ec331__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:POL-042:BUNDLE_ID_ALREADY_\")\n mstore(add(headStart, 96), \"IN_SET\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ba78ed8f777c20a07a168d501d7b3d7b92a7f1a27a40caead8609d6c05873a42__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:POL-029:BALANCE_TOO_LOW\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d3836296e71c1859c2c71fd95043696a6e738e6a1a0c4395bee681aed798558c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:POL-040:RISKPOOL_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:CRC-003:NOT_PRODUCT_SERVIC\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f319dea6556041246bb86b4f2b8ac2451da0edcfdd502e0f920d7f44141a5322__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-012:RISKPOOL_ALREADY_S\")\n mstore(add(headStart, 96), \"ET\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f58ee845cc4844222cd7fa0a8e8d561077a6aa1109b2c08627d10c4eab87b0d9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:POL-005:RISKPOOL_ALREADY_R\")\n mstore(add(headStart, 96), \"EGISTERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fac70cef27ea13d3b488fdaf23702ddb45d929dc3704ba843e20ef6d9116ebab__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:POL-041:BUNDLE_IDX_TOO_LAR\")\n mstore(add(headStart, 96), \"GE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_Pool_$5502_memory_ptr__to_t_struct$_Pool_$5502_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, mload(value0))\n let memberValue0 := mload(add(value0, 0x20))\n abi_encode_address(memberValue0, add(headStart, 0x20))\n let memberValue0_1 := mload(add(value0, 0x40))\n abi_encode_address(memberValue0_1, add(headStart, 0x40))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n let _1 := 0x0100\n mstore(add(headStart, _1), mload(add(value0, _1)))\n let _2 := 0x0120\n mstore(add(headStart, _2), mload(add(value0, _2)))\n let _3 := 0x0140\n mstore(add(headStart, _3), mload(add(value0, _3)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061014d5760003560e01c8063a65e2cfd116100c3578063eb8021141161007c578063eb802114146102ad578063ec833b0c146102cd578063edb5be30146102e0578063f1d354d0146102e8578063f93b3673146102f6578063fe64372b146103095761014d565b8063a65e2cfd14610239578063c397ae391461024c578063c4d66de81461025f578063d229f3b014610272578063d407ba0014610292578063da68771a146102a55761014d565b806367d42a8b1161011557806367d42a8b146101d25780637cdb808d146101e55780637db32844146101f8578063950be8031461020b578063a054381f1461021e578063a4266a66146102265761014d565b806302108268146101525780631b07b17f146101675780632127fd481461018f57806345fe1c6d146101a257806357419e8f146101bf575b600080fd5b610165610160366004612b08565b61031c565b005b61017a610175366004612af0565b610643565b60405190151581526020015b60405180910390f35b61016561019d366004612d4a565b610c1b565b6101b1670de0b6b3a764000081565b604051908152602001610186565b6101656101cd366004612cf9565b610ce3565b6101656101e0366004612af0565b611030565b6101b16101f3366004612d4a565b611401565b6101b1610206366004612af0565b611461565b610165610219366004612d4a565b611476565b6007546101b1565b6101b1610234366004612af0565b61154d565b610165610247366004612d4a565b61156a565b61016561025a366004612d4a565b6116bf565b61016561026d366004612a98565b611819565b6101b1610280366004612af0565b60009081526003602052604090205490565b6101656102a0366004612d4a565b611997565b6101b1611afd565b6102c06102bb366004612af0565b611b13565b6040516101869190612e98565b6101b16102db366004612d4a565b611c78565b6101b1600181565b670de0b6b3a76400006101b1565b610165610304366004612d4a565b611d07565b610165610317366004612b08565b611fa5565b63141bdbdb60e21b61032d8161245e565b6001600160a01b0316306001600160a01b0316146103665760405162461bcd60e51b815260040161035d90612e20565b60405180910390fd5b6103806d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146103b05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156103f957600080fd5b505afa15801561040d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104359190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190612b29565b60068111156104e957634e487b7160e01b600052602160045260246000fd5b146105065760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105879190810190612bf6565b9050600061059482612546565b604051630d8a70f160e21b8152600481018a9052602481018990529091506001600160a01b03821690633629c3c490604401600060405180830381600087803b1580156105e057600080fd5b505af11580156105f4573d6000803e3d6000fd5b505050506020828101516000908152600382526040808220548083526004909352812060088101805491928b9261062c908490612f65565b909155505042600a90910155505050505050505050565b600063141bdbdb60e21b6106568161245e565b6001600160a01b0316306001600160a01b0316146106865760405162461bcd60e51b815260040161035d90612e20565b6106a06d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146106d05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561071957600080fd5b505afa15801561072d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107559190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612b29565b600681111561080957634e487b7160e01b600052602160045260246000fd5b146108265760405162461bcd60e51b815260040161035d90612d5c565b600954604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a79190810190612b48565b90506000815160038111156108cc57634e487b7160e01b600052602160045260246000fd5b146109295760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f4c2d3032303a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b606482015260840161035d565b60095460405163296586d360e21b8152600481018990526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561096e57600080fd5b505afa158015610982573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109aa9190810190612bf6565b602080820151600090815260039091526040808220549085015192935091906109d38383611401565b60008c81526002602090815260409182902083905581518e81529081018590529081018290529091507f893c64de8e253703b31297be336c07a93e39fe8eaa32127e2e6fff090f0aefae9060600160405180910390a160008381526004602052604090206005810154610a47908490612f65565b81600401541015610ab25760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a504f4c2d3032323a5249534b504f4f4c5f53554d5f494e53555260448201526e115117d0d05417d15610d151511151608a1b606482015260840161035d565b6000610abd86612546565b604051631121f7ef60e31b8152600481018f9052602481018590529091506001600160a01b0382169063890fbf7890604401602060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190612ad0565b9b508b15610bc95783826005016000828254610b5d9190612f65565b9250508190555082826007016000828254610b789190612f65565b909155505042600a83015560408051868152602081018f90529081018590527f66a2033a32603d30bde9ec2b858820c3202972f4ee1c8dd2c6e18391b6bfbaeb9060600160405180910390a1610c0b565b60408051868152602081018f90529081018590527fc6e314ad1256dc0c682dc6bb53e940b53f14aa323070798a8423a7f1d965d0599060600160405180910390a15b5050505050505050505050919050565b610c366e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610c665760405162461bcd60e51b815260040161035d90612dde565b60008111610cd15760405162461bcd60e51b815260206004820152603260248201527f4552524f523a504f4c2d3033323a4d41585f4e554d4245525f4f465f41435449604482015271159157d0955391131154d7d253959053125160721b606482015260840161035d565b60009182526005602052604090912055565b610cfe6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610d2e5760405162461bcd60e51b815260040161035d90612dde565b60008581526004602090815260408083206007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018a90556005909352922055600981015415610ddc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030353a5249534b504f4f4c5f414c52454144595f526044820152681151d254d51154915160ba1b606482015260840161035d565b6001600160a01b038516610e3c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3030363a57414c4c45545f414444524553535f5a45526044820152604f60f81b606482015260840161035d565b6001600160a01b038416610e925760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030373a45524332305f414444524553535f5a45524f604482015260640161035d565b610ea5670de0b6b3a76400006002612f9d565b831115610f0b5760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a504f4c2d3030383a434f4c4c41544552414c495a4154494f4e5f60448201526d0d88aac8ad8bea89e9ebe90928e960931b606482015260840161035d565b60008211610f6d5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030393a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b606482015260840161035d565b8581556001810180546001600160a01b038781166001600160a01b031992831681179093556002840180549188169190921681179091556003830185905560048301849055600060058401819055600684018190556007840181905560088401554260098401819055600a84015560408051898152602081019390935282015260608101849052608081018390527f798f4ae5a0a1e2125e89cf9f810639cd05f69896db5bd4f928bd53e6ef3bf8b99060a00160405180910390a1505050505050565b63141bdbdb60e21b6110418161245e565b6001600160a01b0316306001600160a01b0316146110715760405162461bcd60e51b815260040161035d90612e20565b61108b6d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146110bb5760405162461bcd60e51b815260040161035d90612e57565b60095460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111399190612c74565b905060028151600281111561115e57634e487b7160e01b600052602160045260246000fd5b146111b65760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3032353a504f4c4943595f53544154455f494e56414c604482015261125160f21b606482015260840161035d565b60095460405163296586d360e21b8152600481018590526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156111fb57600080fd5b505afa15801561120f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112379190810190612bf6565b9050600061124482612546565b604051636180264360e11b8152600481018790529091506001600160a01b0382169063c3004c8690602401600060405180830381600087803b15801561128957600080fd5b505af115801561129d573d6000803e3d6000fd5b5050600954604051632f141bd960e21b815260048101899052600093506001600160a01b03909116915063bc506f649060240160006040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113249190810190612b48565b6020808501516000908152600382526040808220548083526004845281832060c08a01518c855260029095529183205494955093909261136391612fbc565b9050836040015182600501600082825461137d9190612fbc565b92505081905550808260070160008282546113989190612fbc565b909155505042600a83015560008981526002602090815260408083209290925581518581529081018b90529081018290527f4948a5a8dbd6a1190cb403d7731211af859364368aafe64e104d3f3b07e846cf9060600160405180910390a1505050505050505050565b60008061140d84611b13565b606001519050670de0b6b3a764000081141561142b5782915061145a565b801561145557670de0b6b3a76400006114448483612f9d565b61144e9190612f7d565b915061145a565b600091505b5092915050565b6000818152600560205260409020545b919050565b6114916e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146114c15760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206114d990826125bf565b6115305760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034343a42554e444c455f49445f4e4f545f494e5f53604482015261115560f21b606482015260840161035d565b600082815260066020526040902061154890826125d7565b505050565b6000818152600660205260408120611564906125e3565b92915050565b6115856e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146115b55760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116349190612b29565b600681111561165357634e487b7160e01b600052602160045260246000fd5b146116705760405162461bcd60e51b815260040161035d90612d9d565b600083815260046020526040812060068101805491928592611693908490612f65565b92505081905550828160080160008282546116ae9190612f65565b909155505042600a90910155505050565b6116da6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b03161461170a5760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561175157600080fd5b505afa158015611765573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117899190612b29565b60068111156117a857634e487b7160e01b600052602160045260246000fd5b146117c55760405162461bcd60e51b815260040161035d90612d9d565b6000838152600460205260409020600681015483116117fd57828160060160008282546117f29190612fbc565b909155506118059050565b600060068201555b828160080160008282546116ae9190612fbc565b600054610100900460ff16158080156118395750600054600160ff909116105b806118535750303b158015611853575060005460ff166001145b6118b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161035d565b6000805460ff1916600117905580156118d9576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611903600090565b6541636365737360d01b14611945576119246541636365737360d01b61245e565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61194d6125ed565b8015611993576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6119b26e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146119e25760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206119fa90826125bf565b15611a565760405162461bcd60e51b815260206004820152602660248201527f4552524f523a504f4c2d3034323a42554e444c455f49445f414c52454144595f604482015265125397d4d15560d21b606482015260840161035d565b6000828152600560209081526040808320546006909252909120611a79906125e3565b10611ae55760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f4c2d3034333a4d4158494d554d5f4e554d4245525f4f465f6044820152751050d512559157d0955391131154d7d4915050d2115160521b606482015260840161035d565b600082815260066020526040902061154890826126f3565b611b10670de0b6b3a76400006002612f9d565b81565b611b826040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506000818152600460208181526040928390208351610160810185528154815260018201546001600160a01b039081169382019390935260028201549092169382019390935260038301546060820152908201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201546101208201819052600a90920154610140820152906114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034303a5249534b504f4f4c5f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b6000828152600660205260408120611c8f906125e3565b8210611ce85760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034313a42554e444c455f4944585f544f4f5f4c4152604482015261474560f01b606482015260840161035d565b6000838152600660205260409020611d0090836126ff565b9392505050565b611d307f496e7374616e63654f70657261746f725365727669636500000000000000000061245e565b6001600160a01b0316336001600160a01b031614611d9c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f4c2d3030313a4e4f545f494e5354414e43455f4f504552416044820152622a27a960e91b606482015260840161035d565b600854604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b158015611de057600080fd5b505afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612ad0565b611e645760405162461bcd60e51b815260206004820152601960248201527f4552524f523a504f4c2d3031303a4e4f545f50524f4455435400000000000000604482015260640161035d565b60085460405163ba80b8ed60e01b8152600481018390526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611ea857600080fd5b505afa158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee09190612ad0565b611f2c5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a504f4c2d3031313a4e4f545f5249534b504f4f4c000000000000604482015260640161035d565b60008281526003602052604090205415611f935760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3031323a5249534b504f4f4c5f414c52454144595f53604482015261115560f21b606482015260840161035d565b60009182526003602052604090912055565b63141bdbdb60e21b611fb68161245e565b6001600160a01b0316306001600160a01b031614611fe65760405162461bcd60e51b815260040161035d90612e20565b6120006d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146120305760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561207957600080fd5b505afa15801561208d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120b59190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561211257600080fd5b505afa158015612126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214a9190612b29565b600681111561216957634e487b7160e01b600052602160045260246000fd5b146121865760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156121cb57600080fd5b505afa1580156121df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122079190810190612bf6565b60208082015160009081526003825260408082205480835260049093529020600981015492935090916122865760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3032363a5249534b504f4f4c5f49445f494e56414c496044820152601160fa1b606482015260840161035d565b87816006015410156122da5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032373a4341504954414c5f544f4f5f4c4f57000000604482015260640161035d565b878160070154101561233a5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3032383a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b606482015260840161035d565b878160080154101561238e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032393a42414c414e43455f544f4f5f4c4f57000000604482015260640161035d565b878160060160008282546123a29190612fbc565b92505081905550878160070160008282546123bd9190612fbc565b92505081905550878160080160008282546123d89190612fbc565b909155505042600a82015560006123ee84612546565b60405163412ac48360e11b8152600481018c9052602481018b90529091506001600160a01b03821690638255890690604401600060405180830381600087803b15801561243a57600080fd5b505af115801561244e573d6000803e3d6000fd5b5050505050505050505050505050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156124a857600080fd5b505afa1580156124bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e09190612ab4565b90506001600160a01b0381166114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b602080820151600090815260039091526040812054806125b65760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034353a5249534b504f4f4c5f444f45535f4e4f545f60448201526411561254d560da1b606482015260840161035d565b611d008161270b565b60008181526001830160205260408120541515611d00565b6000611d00838361285d565b6000611564825490565b600054610100900460ff166126585760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161035d565b61266d6810dbdb5c1bdb995b9d60ba1b61245e565b600880546001600160a01b0319166001600160a01b039290921691909117905561269f65506f6c69637960d01b61245e565b600980546001600160a01b0319166001600160a01b03929092169190911790556126d16542756e646c6560d01b61245e565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000611d00838361297a565b6000611d0083836129c9565b60085460405163ba80b8ed60e01b8152600481018390526000916001600160a01b03169063ba80b8ed9060240160206040518083038186803b15801561275057600080fd5b505afa158015612764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127889190612ad0565b6127e05760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3034363a434f4d504f4e454e545f4e4f545f5249534b6044820152631413d3d360e21b606482015260840161035d565b6008546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561282557600080fd5b505afa158015612839573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d009190612ab4565b60008181526001830160205260408120548015612970576000612881600183612fbc565b855490915060009061289590600190612fbc565b90508181146129165760008660000182815481106128c357634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106128f457634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061293557634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611564565b6000915050611564565b60008181526001830160205260408120546129c157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611564565b506000611564565b60008260000182815481106129ee57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b600082601f830112612a11578081fd5b815167ffffffffffffffff811115612a2b57612a2b612fe9565b6020612a3f601f8301601f19168201612f34565b8281528582848701011115612a52578384fd5b835b83811015612a6f578581018301518282018401528201612a54565b83811115612a7f57848385840101525b5095945050505050565b80516003811061147157600080fd5b600060208284031215612aa9578081fd5b8135611d0081612fff565b600060208284031215612ac5578081fd5b8151611d0081612fff565b600060208284031215612ae1578081fd5b81518015158114611d00578182fd5b600060208284031215612b01578081fd5b5035919050565b60008060408385031215612b1a578081fd5b50508035926020909101359150565b600060208284031215612b3a578081fd5b815160078110611d00578182fd5b600060208284031215612b59578081fd5b815167ffffffffffffffff80821115612b70578283fd5b9083019060c08286031215612b83578283fd5b612b8d60c0612f34565b825160048110612b9b578485fd5b808252506020830151602082015260408301516040820152606083015182811115612bc4578485fd5b612bd087828601612a01565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612c07578081fd5b815167ffffffffffffffff80821115612c1e578283fd5b9083019060c08286031215612c31578283fd5b612c3b60c0612f34565b8251612c4681612fff565b815260208381015190820152612c5e60408401612a89565b6040820152606083015182811115612bc4578485fd5b6000610120808385031215612c87578182fd5b612c9081612f34565b9050612c9b83612a89565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080600080600060a08688031215612d10578081fd5b853594506020860135612d2281612fff565b93506040860135612d3281612fff565b94979396509394606081013594506080013592915050565b60008060408385031215612b1a578182fd5b60208082526021908201527f4552524f523a504f4c2d3030343a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526021908201527f4552524f523a504f4c2d3030333a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526022908201527f4552524f523a504f4c2d3030323a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b81518152602080830151610160830191612ebc908401826001600160a01b03169052565b506040830151612ed760408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612f5d57612f5d612fe9565b604052919050565b60008219821115612f7857612f78612fd3565b500190565b600082612f9857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612fb757612fb7612fd3565b500290565b600082821015612fce57612fce612fd3565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461301457600080fd5b5056fea2646970667358221220c3bffcc2760e53be86521cfbd777e61c2feecb4d34921b699ff2b261b3d0a62164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA65E2CFD GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xEB802114 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xEB802114 EQ PUSH2 0x2AD JUMPI DUP1 PUSH4 0xEC833B0C EQ PUSH2 0x2CD JUMPI DUP1 PUSH4 0xEDB5BE30 EQ PUSH2 0x2E0 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x2E8 JUMPI DUP1 PUSH4 0xF93B3673 EQ PUSH2 0x2F6 JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x309 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0xA65E2CFD EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0xC397AE39 EQ PUSH2 0x24C JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x25F JUMPI DUP1 PUSH4 0xD229F3B0 EQ PUSH2 0x272 JUMPI DUP1 PUSH4 0xD407BA00 EQ PUSH2 0x292 JUMPI DUP1 PUSH4 0xDA68771A EQ PUSH2 0x2A5 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x67D42A8B GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x67D42A8B EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0x7CDB808D EQ PUSH2 0x1E5 JUMPI DUP1 PUSH4 0x7DB32844 EQ PUSH2 0x1F8 JUMPI DUP1 PUSH4 0x950BE803 EQ PUSH2 0x20B JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0xA4266A66 EQ PUSH2 0x226 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x2108268 EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x2127FD48 EQ PUSH2 0x18F JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x57419E8F EQ PUSH2 0x1BF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x165 PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B08 JUMP JUMPDEST PUSH2 0x31C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17A PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x643 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x165 PUSH2 0x19D CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x1B1 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x186 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x1CD CALLDATASIZE PUSH1 0x4 PUSH2 0x2CF9 JUMP JUMPDEST PUSH2 0xCE3 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x1E0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1030 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x1F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1401 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x206 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1461 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x219 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1476 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x1B1 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x234 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x154D JUMP JUMPDEST PUSH2 0x165 PUSH2 0x247 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x156A JUMP JUMPDEST PUSH2 0x165 PUSH2 0x25A CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x16BF JUMP JUMPDEST PUSH2 0x165 PUSH2 0x26D CALLDATASIZE PUSH1 0x4 PUSH2 0x2A98 JUMP JUMPDEST PUSH2 0x1819 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x280 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1997 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x1AFD JUMP JUMPDEST PUSH2 0x2C0 PUSH2 0x2BB CALLDATASIZE PUSH1 0x4 PUSH2 0x2AF0 JUMP JUMPDEST PUSH2 0x1B13 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x2E98 JUMP JUMPDEST PUSH2 0x1B1 PUSH2 0x2DB CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1C78 JUMP JUMPDEST PUSH2 0x1B1 PUSH1 0x1 DUP2 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x1B1 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x304 CALLDATASIZE PUSH1 0x4 PUSH2 0x2D4A JUMP JUMPDEST PUSH2 0x1D07 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x317 CALLDATASIZE PUSH1 0x4 PUSH2 0x2B08 JUMP JUMPDEST PUSH2 0x1FA5 JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x32D DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x366 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x380 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x3B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x40D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x435 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x492 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4CA SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x4E9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x506 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x54B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x55F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x587 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x594 DUP3 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD8A70F1 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x3629C3C4 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x20 DUP3 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE DUP2 KECCAK256 PUSH1 0x8 DUP2 ADD DUP1 SLOAD SWAP2 SWAP3 DUP12 SWAP3 PUSH2 0x62C SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA SWAP1 SWAP2 ADD SSTORE POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x656 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x686 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x6A0 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6D0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x719 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x72D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x755 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7EA SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x809 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x86B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x87F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x8A7 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B48 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x8CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x929 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032303A4150504C49434154494F4E5F53544154455F PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x12539590531251 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x96E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x982 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x9AA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 DUP6 ADD MLOAD SWAP3 SWAP4 POP SWAP2 SWAP1 PUSH2 0x9D3 DUP4 DUP4 PUSH2 0x1401 JUMP JUMPDEST PUSH1 0x0 DUP13 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE DUP2 MLOAD DUP15 DUP2 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0x893C64DE8E253703B31297BE336C07A93E39FE8EAA32127E2E6FFF090F0AEFAE SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x5 DUP2 ADD SLOAD PUSH2 0xA47 SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST DUP2 PUSH1 0x4 ADD SLOAD LT ISZERO PUSH2 0xAB2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032323A5249534B504F4F4C5F53554D5F494E535552 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x115117D0D05417D15610D151511151 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 PUSH2 0xABD DUP7 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1121F7EF PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x890FBF78 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB41 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST SWAP12 POP DUP12 ISZERO PUSH2 0xBC9 JUMPI DUP4 DUP3 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB5D SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP3 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xB78 SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP4 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0x66A2033A32603D30BDE9EC2B858820C3202972F4EE1C8DD2C6E18391B6BFBAEB SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE SWAP1 DUP2 ADD DUP6 SWAP1 MSTORE PUSH32 0xC6E314AD1256DC0C682DC6BB53E940B53F14AA323070798A8423A7F1D965D059 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC36 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xC66 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0xCD1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3033323A4D41585F4E554D4245525F4F465F41435449 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x159157D0955391131154D7D2539590531251 PUSH1 0x72 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH2 0xCFE PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xD2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 DUP1 DUP3 ADD SWAP1 SWAP3 SSTORE PUSH32 0xA66CC928B5EDB82AF9BD49922954155AB7B0942694BEA4CE44661D9A8736C688 ADD DUP11 SWAP1 SSTORE PUSH1 0x5 SWAP1 SWAP4 MSTORE SWAP3 KECCAK256 SSTORE PUSH1 0x9 DUP2 ADD SLOAD ISZERO PUSH2 0xDDC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030353A5249534B504F4F4C5F414C52454144595F52 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x1151D254D511549151 PUSH1 0xBA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH2 0xE3C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030363A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0xE92 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030373A45524332305F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0xEA5 PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 PUSH2 0x2F9D JUMP JUMPDEST DUP4 GT ISZERO PUSH2 0xF0B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030383A434F4C4C41544552414C495A4154494F4E5F PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0xD88AAC8AD8BEA89E9EBE90928E9 PUSH1 0x93 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 GT PUSH2 0xF6D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030393A53554D5F4F465F53554D5F494E5355524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F4341505F5A45524F PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP6 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x2 DUP5 ADD DUP1 SLOAD SWAP2 DUP9 AND SWAP2 SWAP1 SWAP3 AND DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x3 DUP4 ADD DUP6 SWAP1 SSTORE PUSH1 0x4 DUP4 ADD DUP5 SWAP1 SSTORE PUSH1 0x0 PUSH1 0x5 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x6 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x7 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0x8 DUP5 ADD SSTORE TIMESTAMP PUSH1 0x9 DUP5 ADD DUP2 SWAP1 SSTORE PUSH1 0xA DUP5 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP10 DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP3 ADD MSTORE PUSH1 0x60 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x798F4AE5A0A1E2125E89CF9F810639CD05F69896DB5BD4F928BD53E6EF3BF8B9 SWAP1 PUSH1 0xA0 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1041 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1071 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x108B PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10BB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1101 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1115 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1139 SWAP2 SWAP1 PUSH2 0x2C74 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x115E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x11B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032353A504F4C4943595F53544154455F494E56414C PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11FB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x120F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1237 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1244 DUP3 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x61802643 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC3004C86 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1289 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x129D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x0 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12FC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1324 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2B48 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP6 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 DUP5 MSTORE DUP2 DUP4 KECCAK256 PUSH1 0xC0 DUP11 ADD MLOAD DUP13 DUP6 MSTORE PUSH1 0x2 SWAP1 SWAP6 MSTORE SWAP2 DUP4 KECCAK256 SLOAD SWAP5 SWAP6 POP SWAP4 SWAP1 SWAP3 PUSH2 0x1363 SWAP2 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x40 ADD MLOAD DUP3 PUSH1 0x5 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x137D SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 DUP3 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1398 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP4 ADD SSTORE PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP3 SWAP1 SWAP3 SSTORE DUP2 MLOAD DUP6 DUP2 MSTORE SWAP1 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH32 0x4948A5A8DBD6A1190CB403D7731211AF859364368AAFE64E104D3F3B07E846CF SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x140D DUP5 PUSH2 0x1B13 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD SWAP1 POP PUSH8 0xDE0B6B3A7640000 DUP2 EQ ISZERO PUSH2 0x142B JUMPI DUP3 SWAP2 POP PUSH2 0x145A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1455 JUMPI PUSH8 0xDE0B6B3A7640000 PUSH2 0x1444 DUP5 DUP4 PUSH2 0x2F9D JUMP JUMPDEST PUSH2 0x144E SWAP2 SWAP1 PUSH2 0x2F7D JUMP JUMPDEST SWAP2 POP PUSH2 0x145A JUMP JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1491 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x14D9 SWAP1 DUP3 PUSH2 0x25BF JUMP JUMPDEST PUSH2 0x1530 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034343A42554E444C455F49445F4E4F545F494E5F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1155 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1548 SWAP1 DUP3 PUSH2 0x25D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1564 SWAP1 PUSH2 0x25E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1585 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x15B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST DUP2 PUSH1 0x3 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1610 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1634 SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1653 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1670 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D9D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x6 DUP2 ADD DUP1 SLOAD SWAP2 SWAP3 DUP6 SWAP3 PUSH2 0x1693 SWAP1 DUP5 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16AE SWAP2 SWAP1 PUSH2 0x2F65 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA SWAP1 SWAP2 ADD SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x16DA PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x170A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST DUP2 PUSH1 0x3 PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1751 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1765 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1789 SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x17A8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x17C5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D9D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x6 DUP2 ADD SLOAD DUP4 GT PUSH2 0x17FD JUMPI DUP3 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x17F2 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x1805 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 DUP3 ADD SSTORE JUMPDEST DUP3 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16AE SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1839 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1853 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1853 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x18B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x18D9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1903 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1945 JUMPI PUSH2 0x1924 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x194D PUSH2 0x25ED JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1993 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x19B2 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x19E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2DDE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x19FA SWAP1 DUP3 PUSH2 0x25BF JUMP JUMPDEST ISZERO PUSH2 0x1A56 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034323A42554E444C455F49445F414C52454144595F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x125397D4D155 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SLOAD PUSH1 0x6 SWAP1 SWAP3 MSTORE SWAP1 SWAP2 KECCAK256 PUSH2 0x1A79 SWAP1 PUSH2 0x25E3 JUMP JUMPDEST LT PUSH2 0x1AE5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x36 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034333A4D4158494D554D5F4E554D4245525F4F465F PUSH1 0x44 DUP3 ADD MSTORE PUSH22 0x1050D512559157D0955391131154D7D4915050D21151 PUSH1 0x52 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1548 SWAP1 DUP3 PUSH2 0x26F3 JUMP JUMPDEST PUSH2 0x1B10 PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 PUSH2 0x2F9D JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH2 0x1B82 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 SWAP3 DUP4 SWAP1 KECCAK256 DUP4 MLOAD PUSH2 0x160 DUP2 ADD DUP6 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 DUP2 AND SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x2 DUP3 ADD SLOAD SWAP1 SWAP3 AND SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x3 DUP4 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 DUP3 ADD SLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x5 DUP3 ADD SLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x6 DUP3 ADD SLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x7 DUP3 ADD SLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH1 0x8 DUP3 ADD SLOAD PUSH2 0x100 DUP3 ADD MSTORE PUSH1 0x9 DUP3 ADD SLOAD PUSH2 0x120 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0xA SWAP1 SWAP3 ADD SLOAD PUSH2 0x140 DUP3 ADD MSTORE SWAP1 PUSH2 0x1471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034303A5249534B504F4F4C5F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x1C8F SWAP1 PUSH2 0x25E3 JUMP JUMPDEST DUP3 LT PUSH2 0x1CE8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034313A42554E444C455F4944585F544F4F5F4C4152 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4745 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1D00 SWAP1 DUP4 PUSH2 0x26FF JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1D30 PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1D9C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DF4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E18 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x1E64 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031303A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1EBC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EE0 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x1F2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031313A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x1F93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3031323A5249534B504F4F4C5F414C52454144595F53 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1155 PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1FB6 DUP2 PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1FE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E20 JUMP JUMPDEST PUSH2 0x2000 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2030 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2E57 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE DUP5 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2079 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x208D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x20B5 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2112 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2126 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x214A SWAP2 SWAP1 PUSH2 0x2B29 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2169 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2186 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x35D SWAP1 PUSH2 0x2D5C JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21DF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2207 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2BF6 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 DUP3 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD DUP1 DUP4 MSTORE PUSH1 0x4 SWAP1 SWAP4 MSTORE SWAP1 KECCAK256 PUSH1 0x9 DUP2 ADD SLOAD SWAP3 SWAP4 POP SWAP1 SWAP2 PUSH2 0x2286 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032363A5249534B504F4F4C5F49445F494E56414C49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x6 ADD SLOAD LT ISZERO PUSH2 0x22DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032373A4341504954414C5F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x7 ADD SLOAD LT ISZERO PUSH2 0x233A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032383A4C4F434B45445F4341504954414C5F544F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x5F4C4F57 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x8 ADD SLOAD LT ISZERO PUSH2 0x238E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3032393A42414C414E43455F544F4F5F4C4F57000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x35D JUMP JUMPDEST DUP8 DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23A2 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP8 DUP2 PUSH1 0x7 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23BD SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP8 DUP2 PUSH1 0x8 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23D8 SWAP2 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP TIMESTAMP PUSH1 0xA DUP3 ADD SSTORE PUSH1 0x0 PUSH2 0x23EE DUP5 PUSH2 0x2546 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x412AC483 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0x82558906 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x243A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x244E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24E0 SWAP2 SWAP1 PUSH2 0x2AB4 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 PUSH2 0x25B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034353A5249534B504F4F4C5F444F45535F4E4F545F PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x11561254D5 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x1D00 DUP2 PUSH2 0x270B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x1D00 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x285D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1564 DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x2658 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH2 0x266D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x269F PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x26D1 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x245E JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x297A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D00 DUP4 DUP4 PUSH2 0x29C9 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2750 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2764 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2788 SWAP2 SWAP1 PUSH2 0x2AD0 JUMP JUMPDEST PUSH2 0x27E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3034363A434F4D504F4E454E545F4E4F545F5249534B PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x1413D3D3 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x35D JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2825 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2839 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D00 SWAP2 SWAP1 PUSH2 0x2AB4 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x2970 JUMPI PUSH1 0x0 PUSH2 0x2881 PUSH1 0x1 DUP4 PUSH2 0x2FBC JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2895 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2FBC JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x2916 JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x28C3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x28F4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x2935 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x29C1 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x1564 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x1564 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x29EE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A11 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2A2B JUMPI PUSH2 0x2A2B PUSH2 0x2FE9 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x2A3F PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH2 0x2F34 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP6 DUP3 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x2A52 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2A6F JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP3 DUP3 ADD DUP5 ADD MSTORE DUP3 ADD PUSH2 0x2A54 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2A7F JUMPI DUP5 DUP4 DUP6 DUP5 ADD ADD MSTORE JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AA9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1D00 DUP2 PUSH2 0x2FFF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AC5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1D00 DUP2 PUSH2 0x2FFF JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AE1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1D00 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B01 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B1A JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B3A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1D00 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B59 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2B70 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2B83 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2B8D PUSH1 0xC0 PUSH2 0x2F34 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x2B9B JUMPI DUP5 DUP6 REVERT JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BC4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2BD0 DUP8 DUP3 DUP7 ADD PUSH2 0x2A01 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C07 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2C1E JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2C31 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2C3B PUSH1 0xC0 PUSH2 0x2F34 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x2C46 DUP2 PUSH2 0x2FFF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2C5E PUSH1 0x40 DUP5 ADD PUSH2 0x2A89 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2BC4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2C87 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x2C90 DUP2 PUSH2 0x2F34 JUMP JUMPDEST SWAP1 POP PUSH2 0x2C9B DUP4 PUSH2 0x2A89 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2D10 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD PUSH2 0x2D22 DUP2 PUSH2 0x2FFF JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH2 0x2D32 DUP2 PUSH2 0x2FFF JUMP JUMPDEST SWAP5 SWAP8 SWAP4 SWAP7 POP SWAP4 SWAP5 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP5 POP PUSH1 0x80 ADD CALLDATALOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B1A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030343A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030333A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A504F4C2D3030323A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH2 0x160 DUP4 ADD SWAP2 PUSH2 0x2EBC SWAP1 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2ED7 PUSH1 0x40 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2F5D JUMPI PUSH2 0x2F5D PUSH2 0x2FE9 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x2F78 JUMPI PUSH2 0x2F78 PUSH2 0x2FD3 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x2F98 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x2FB7 JUMPI PUSH2 0x2FB7 PUSH2 0x2FD3 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2FCE JUMPI PUSH2 0x2FCE PUSH2 0x2FD3 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3014 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0xBF 0xFC 0xC2 PUSH23 0xE53BE86521CFBD777E61C2FEECB4D34921B699FF2B261 0xB3 0xD0 0xA6 0x21 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"2976:14040:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10925:574;;;;;;:::i;:::-;;:::i;:::-;;8223:1945;;;;;;:::i;:::-;;:::i;:::-;;;7011:14:103;;7004:22;6986:41;;6974:2;6959:18;8223:1945:78;;;;;;;;13652:345;;;;;;:::i;:::-;;:::i;3251:61::-;;3306:6;3251:61;;;;;7184:25:103;;;7172:2;7157:18;3251:61:78;7139:76:103;5573:1453:78;;;;;;:::i;:::-;;:::i;12489:1157::-;;;;;;:::i;:::-;;:::i;10175:743::-;;;;;;:::i;:::-;;:::i;14003:198::-;;;;;;:::i;:::-;;:::i;15870:383::-;;;;;;:::i;:::-;;:::i;14211:87::-;14276:12;:19;14211:87;;14689:183;;;;;;:::i;:::-;;:::i;7505:306::-;;;;;;:::i;:::-;;:::i;7817:400::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;14532:151:78:-;;;;;;:::i;:::-;14605:18;14642:34;;;:23;:34;;;;;;;14532:151;15251:613;;;;;;:::i;:::-;;:::i;3373:86::-;;;:::i;14305:221::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14878:367::-;;;;;;:::i;:::-;;:::i;3466:64::-;;3529:1;3466:64;;16259:125;3306:6;16259:125;;7032:467;;;;;;:::i;:::-;;:::i;11506:976::-;;;;;;:::i;:::-;;:::i;10925:574::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;;;;;;;;;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;4991:7:78::1;::::0;:30:::1;::::0;-1:-1:-1;;;4991:30:78;;::::1;::::0;::::1;7184:25:103::0;;;11075:9:78;;4956:32:::1;::::0;-1:-1:-1;;;;;4991:7:78;;::::1;::::0;:19:::1;::::0;7157:18:103;;4991:30:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4991:30:78::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;5076:18;::::0;;::::1;::::0;5031::::1;5052:43:::0;;;:23:::1;:43:::0;;;;;;;;4956:65;;-1:-1:-1;5126:10:78::1;::::0;:40:::1;::::0;-1:-1:-1;;;5126:40:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;5126:10:78;;::::1;::::0;:28:::1;::::0;7157:18:103;;5126:40:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;;;;;-1:-1:-1::0;;;5126:76:78::1;;;;;;;;;;5105:157;;;;-1:-1:-1::0;;;5105:157:78::1;;;;;;;:::i;:::-;11135:7:::2;::::0;:30:::2;::::0;-1:-1:-1;;;11135:30:78;;::::2;::::0;::::2;7184:25:103::0;;;11100:32:78::2;::::0;-1:-1:-1;;;;;11135:7:78::2;::::0;:19:::2;::::0;7157:18:103;;11135:30:78::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;11135:30:78::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;11100:65;;11175:18;11196:31;11218:8;11196:21;:31::i;:::-;11237:48;::::0;-1:-1:-1;;;11237:48:78;;::::2;::::0;::::2;7394:25:103::0;;;7435:18;;;7428:34;;;11175:52:78;;-1:-1:-1;;;;;;11237:29:78;::::2;::::0;::::2;::::0;7367:18:103;;11237:48:78::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;;;11341:18:78::2;::::0;;::::2;::::0;11296::::2;11317:43:::0;;;:23:::2;:43:::0;;;;;;;11396:22;;;:10:::2;:22:::0;;;;;11428:12:::2;::::0;::::2;:22:::0;;11396;;11444:6;;11428:22:::2;::::0;11444:6;;11428:22:::2;:::i;:::-;::::0;;;-1:-1:-1;;11477:15:78::2;11460:14;::::0;;::::2;:32:::0;-1:-1:-1;;;;;;;;;10925:574:78:o;8223:1945::-;8381:12;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;4991:7:78::1;::::0;:30:::1;::::0;-1:-1:-1;;;4991:30:78;;::::1;::::0;::::1;7184:25:103::0;;;8354:9:78;;4956:32:::1;::::0;-1:-1:-1;;;;;4991:7:78;;::::1;::::0;:19:::1;::::0;7157:18:103;;4991:30:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4991:30:78::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;5076:18;::::0;;::::1;::::0;5031::::1;5052:43:::0;;;:23:::1;:43:::0;;;;;;;;4956:65;;-1:-1:-1;5126:10:78::1;::::0;:40:::1;::::0;-1:-1:-1;;;5126:40:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;5126:10:78;;::::1;::::0;:28:::1;::::0;7157:18:103;;5126:40:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;;;;;-1:-1:-1::0;;;5126:76:78::1;;;;;;;;;;5105:157;;;;-1:-1:-1::0;;;5105:157:78::1;;;;;;;:::i;:::-;8504:7:::2;::::0;:33:::2;::::0;-1:-1:-1;;;8504:33:78;;::::2;::::0;::::2;7184:25:103::0;;;8463:38:78::2;::::0;-1:-1:-1;;;;;8504:7:78::2;::::0;:22:::2;::::0;7157:18:103;;8504:33:78::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;8504:33:78::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;8463:74:::0;-1:-1:-1;8589:32:78::2;8568:17:::0;;:53:::2;::::0;::::2;;;;-1:-1:-1::0;;;8568:53:78::2;;;;;;;;;;8547:139;;;::::0;-1:-1:-1;;;8547:139:78;;15340:2:103;8547:139:78::2;::::0;::::2;15322:21:103::0;15379:2;15359:18;;;15352:30;15418:34;15398:18;;;15391:62;-1:-1:-1;;;15469:18:103;;;15462:37;15516:19;;8547:139:78::2;15312:229:103::0;8547:139:78::2;8790:7;::::0;:30:::2;::::0;-1:-1:-1;;;8790:30:78;;::::2;::::0;::::2;7184:25:103::0;;;8755:32:78::2;::::0;-1:-1:-1;;;;;8790:7:78::2;::::0;:19:::2;::::0;7157:18:103;;8790:30:78::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;8790:30:78::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;8875:18;::::0;;::::2;::::0;8830::::2;8851:43:::0;;;:23:::2;:43:::0;;;;;;;;8980:28;;::::2;::::0;8755:65;;-1:-1:-1;8851:43:78;8980:28;9045:49:::2;8851:43:::0;8980:28;9045:19:::2;:49::i;:::-;9104:28;::::0;;;:17:::2;:28;::::0;;;;;;;;:47;;;9167:76;;7675:25:103;;;7716:18;;;7709:34;;;7759:18;;;7752:34;;;9104:47:78;;-1:-1:-1;9167:76:78::2;::::0;7663:2:103;7648:18;9167:76:78::2;;;;;;;9350:23;9376:22:::0;;;:10:::2;:22;::::0;;;;9456:26:::2;::::0;::::2;::::0;:45:::2;::::0;9485:16;;9456:45:::2;:::i;:::-;9429:4;:23;;;:72;;9408:166;;;::::0;-1:-1:-1;;;9408:166:78;;9820:2:103;9408:166:78::2;::::0;::::2;9802:21:103::0;9859:2;9839:18;;;9832:30;9898:34;9878:18;;;9871:62;-1:-1:-1;;;9949:18:103;;;9942:45;10004:19;;9408:166:78::2;9792:237:103::0;9408:166:78::2;9631:18;9652:31;9674:8;9652:21;:31::i;:::-;9703:57;::::0;-1:-1:-1;;;9703:57:78;;::::2;::::0;::::2;7394:25:103::0;;;7435:18;;;7428:34;;;9631:52:78;;-1:-1:-1;;;;;;9703:28:78;::::2;::::0;::::2;::::0;7367:18:103;;9703:57:78::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9693:67;;9775:7;9771:391;;;9828:16;9798:4;:26;;;:46;;;;;;;:::i;:::-;;;;;;;;9880:16;9858:4;:18;;;:38;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9927:15:78::2;9910:14;::::0;::::2;:32:::0;9962:78:::2;::::0;;7675:25:103;;;7731:2;7716:18;;7709:34;;;7759:18;;;7752:34;;;9962:78:78::2;::::0;7663:2:103;7648:18;9962:78:78::2;;;;;;;9771:391;;;10076:75;::::0;;7675:25:103;;;7731:2;7716:18;;7709:34;;;7759:18;;;7752:34;;;10076:75:78::2;::::0;7663:2:103;7648:18;10076:75:78::2;;;;;;;9771:391;5272:1;;;;;;;1129::88::1;;;8223:1945:78::0;;;;:::o;13652:345::-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;13842:1:::1;13815:24;:28;13807:91;;;::::0;-1:-1:-1;;;13807:91:78;;14506:2:103;13807:91:78::1;::::0;::::1;14488:21:103::0;14545:2;14525:18;;;14518:30;14584:34;14564:18;;;14557:62;-1:-1:-1;;;14635:18:103;;;14628:48;14693:19;;13807:91:78::1;14478:240:103::0;13807:91:78::1;13908:55;::::0;;;:43:::1;:55;::::0;;;;;:82;13652:345::o;5573:1453::-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;5831:23:::1;5857:22:::0;;;:10:::1;:22;::::0;;;;;;;5889:12:::1;:29:::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;;5928:43:::1;:55:::0;;;;;:94;6049:14:::1;::::0;::::1;::::0;:19;6041:73:::1;;;::::0;-1:-1:-1;;;6041:73:78;;20120:2:103;6041:73:78::1;::::0;::::1;20102:21:103::0;20159:2;20139:18;;;20132:30;20198:34;20178:18;;;20171:62;-1:-1:-1;;;20249:18:103;;;20242:39;20298:19;;6041:73:78::1;20092:231:103::0;6041:73:78::1;-1:-1:-1::0;;;;;6133:20:78;::::1;6125:66;;;::::0;-1:-1:-1;;;6125:66:78;;11395:2:103;6125:66:78::1;::::0;::::1;11377:21:103::0;11434:2;11414:18;;;11407:30;11473:34;11453:18;;;11446:62;-1:-1:-1;;;11524:18:103;;;11517:31;11565:19;;6125:66:78::1;11367:223:103::0;6125:66:78::1;-1:-1:-1::0;;;;;6209:24:78;::::1;6201:69;;;::::0;-1:-1:-1;;;6201:69:78;;12622:2:103;6201:69:78::1;::::0;::::1;12604:21:103::0;;;12641:18;;;12634:30;12700:34;12680:18;;;12673:62;12752:18;;6201:69:78::1;12594:182:103::0;6201:69:78::1;3427:32;3306:6;3427:1;:32;:::i;:::-;6288:22;:53;;6280:112;;;::::0;-1:-1:-1;;;6280:112:78;;17317:2:103;6280:112:78::1;::::0;::::1;17299:21:103::0;17356:2;17336:18;;;17329:30;17395:34;17375:18;;;17368:62;-1:-1:-1;;;17446:18:103;;;17439:44;17500:19;;6280:112:78::1;17289:236:103::0;6280:112:78::1;6431:1;6410:18;:22;6402:76;;;::::0;-1:-1:-1;;;6402:76:78;;9008:2:103;6402:76:78::1;::::0;::::1;8990:21:103::0;9047:2;9027:18;;;9020:30;9086:34;9066:18;;;9059:62;-1:-1:-1;;;9137:18:103;;;9130:39;9186:19;;6402:76:78::1;8980:231:103::0;6402:76:78::1;6489:20:::0;;;6520:11:::1;::::0;::::1;:20:::0;;-1:-1:-1;;;;;6520:20:78;;::::1;-1:-1:-1::0;;;;;;6520:20:78;;::::1;::::0;::::1;::::0;;;6551:15:::1;::::0;::::1;:28:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;6590:27:::1;::::0;::::1;:52:::0;;;6652:23:::1;::::0;::::1;:44:::0;;;-1:-1:-1;6707:26:78::1;::::0;::::1;:30:::0;;;6747:12:::1;::::0;::::1;:16:::0;;;6773:18:::1;::::0;::::1;:22:::0;;;6805:12:::1;::::0;::::1;:16:::0;6849:15:::1;6832:14;::::0;::::1;:32:::0;;;6874:14:::1;::::0;::::1;:32:::0;6922:97:::1;::::0;;22209:25:103;;;22303:2;22288:18;;22281:43;;;;22340:18;;22333:43;22407:2;22392:18;;22385:34;;;22450:3;22435:19;;22428:35;;;6922:97:78::1;::::0;22196:3:103;22181:19;6922:97:78::1;;;;;;;4644:1;5573:1453:::0;;;;;:::o;12489:1157::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;12628:7:78::1;::::0;:28:::1;::::0;-1:-1:-1;;;12628:28:78;;::::1;::::0;::::1;7184:25:103::0;;;12597:28:78::1;::::0;-1:-1:-1;;;;;12628:7:78::1;::::0;:17:::1;::::0;7157:18:103;;12628:28:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12597:59:::0;-1:-1:-1;12703:26:78::1;12687:12:::0;;:42:::1;::::0;::::1;;;;-1:-1:-1::0;;;12687:42:78::1;;;;;;;;;;12666:123;;;::::0;-1:-1:-1;;;12666:123:78;;15748:2:103;12666:123:78::1;::::0;::::1;15730:21:103::0;15787:2;15767:18;;;15760:30;15826:34;15806:18;;;15799:62;-1:-1:-1;;;15877:18:103;;;15870:32;15919:19;;12666:123:78::1;15720:224:103::0;12666:123:78::1;12835:7;::::0;:30:::1;::::0;-1:-1:-1;;;12835:30:78;;::::1;::::0;::::1;7184:25:103::0;;;12800:32:78::1;::::0;-1:-1:-1;;;;;12835:7:78::1;::::0;:19:::1;::::0;7157:18:103;;12835:30:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;12835:30:78::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;12800:65;;12875:18;12896:31;12918:8;12896:21;:31::i;:::-;12937:33;::::0;-1:-1:-1;;;12937:33:78;;::::1;::::0;::::1;7184:25:103::0;;;12875:52:78;;-1:-1:-1;;;;;;12937:22:78;::::1;::::0;::::1;::::0;7157:18:103;;12937:33:78::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13022:7:78::1;::::0;:33:::1;::::0;-1:-1:-1;;;13022:33:78;;::::1;::::0;::::1;7184:25:103::0;;;12981:38:78::1;::::0;-1:-1:-1;;;;;;13022:7:78;;::::1;::::0;-1:-1:-1;13022:22:78::1;::::0;7157:18:103;;13022:33:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;13022:33:78::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;13111:18;::::0;;::::1;::::0;13066::::1;13087:43:::0;;;:23:::1;:43:::0;;;;;;;13166:22;;;:10:::1;:22:::0;;;;;13265:19:::1;::::0;::::1;::::0;13234:28;;;:17:::1;:28:::0;;;;;;;12981:74;;-1:-1:-1;13087:43:78;13166:22;;13234:50:::1;::::0;::::1;:::i;:::-;13198:86;;13325:11;:28;;;13295:4;:26;;;:58;;;;;;;:::i;:::-;;;;;;;;13385:25;13363:4;:18;;;:47;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;13437:15:78::1;13420:14;::::0;::::1;:32:::0;13517:28:::1;::::0;;;:17:::1;:28;::::0;;;;;;;13510:35;;;;13560:79;;7675:25:103;;;7716:18;;;7709:34;;;7759:18;;;7752:34;;;13560:79:78::1;::::0;7663:2:103;7648:18;13560:79:78::1;;;;;;;1129:1:88;;;;;;;12489:1157:78::0;;:::o;10175:743::-;10297:24;10338:25;10366:23;10378:10;10366:11;:23::i;:::-;:46;;;10338:74;;3306:6;10464:17;:49;10460:452;;;10548:16;10529:35;;10460:452;;;10630:21;;10626:286;;3306:6;10687:36;10707:16;10687:17;:36;:::i;:::-;10686:69;;;;:::i;:::-;10667:88;;10626:286;;;10900:1;10881:20;;10626:286;10175:743;;;;;:::o;14003:198::-;14084:36;14139:55;;;:43;:55;;;;;;14003:198;;;;:::o;15870:383::-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;16049:41:::1;::::0;;;:29:::1;:41;::::0;;;;16026:75:::1;::::0;16092:8;16026:22:::1;:75::i;:::-;16005:157;;;::::0;-1:-1:-1;;;16005:157:78;;10590:2:103;16005:157:78::1;::::0;::::1;10572:21:103::0;10629:2;10609:18;;;10602:30;10668:34;10648:18;;;10641:62;-1:-1:-1;;;10719:18:103;;;10712:32;10761:19;;16005:157:78::1;10562:224:103::0;16005:157:78::1;16194:41;::::0;;;:29:::1;:41;::::0;;;;16173:73:::1;::::0;16237:8;16173:20:::1;:73::i;:::-;;15870:383:::0;;:::o;14689:183::-;14754:29;14823:41;;;:29;:41;;;;;14802:63;;:20;:63::i;:::-;14795:70;14689:183;-1:-1:-1;;14689:183:78:o;7505:306::-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;7624:10;4777:32:::1;4733:10;::::0;:40:::1;::::0;-1:-1:-1;;;4733:40:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;4733:10:78;;::::1;::::0;:28:::1;::::0;7157:18:103;;4733:40:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;;;;;-1:-1:-1::0;;;4733:76:78::1;;;;;;;;;;4712:157;;;;-1:-1:-1::0;;;4712:157:78::1;;;;;;;:::i;:::-;7650:23:::2;7676:22:::0;;;:10:::2;:22;::::0;;;;7708:12:::2;::::0;::::2;:22:::0;;7676;;7724:6;;7708:22:::2;::::0;7724:6;;7708:22:::2;:::i;:::-;;;;;;;;7756:6;7740:4;:12;;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;7789:15:78::2;7772:14;::::0;;::::2;:32:::0;-1:-1:-1;;;7505:306:78:o;7817:400::-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;7938:10;4777:32:::1;4733:10;::::0;:40:::1;::::0;-1:-1:-1;;;4733:40:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;4733:10:78;;::::1;::::0;:28:::1;::::0;7157:18:103;;4733:40:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;;;;;-1:-1:-1::0;;;4733:76:78::1;;;;;;;;;;4712:157;;;;-1:-1:-1::0;;;4712:157:78::1;;;;;;;:::i;:::-;7964:23:::2;7990:22:::0;;;:10:::2;:22;::::0;;;;8027:12:::2;::::0;::::2;::::0;:22;-1:-1:-1;8023:113:78::2;;8069:6;8053:4;:12;;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;8023:113:78::2;::::0;-1:-1:-1;8023:113:78::2;;8132:1;8117:12;::::0;::::2;:16:::0;8023:113:::2;8162:6;8146:4;:12;;;:22;;;;;;;:::i;1143:232:88:-:0;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;14925:2:103;3146:190:47;;;14907:21:103;14964:2;14944:18;;;14937:30;15003:34;14983:18;;;14976:62;-1:-1:-1;;;15054:18:103;;;15047:44;15108:19;;3146:190:47;14897:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;7949:36:103;;3531:14:47;;7937:2:103;7922:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;15251:613:78:-;4536:38;-1:-1:-1;;;4536:19:78;:38::i;:::-;-1:-1:-1;;;;;4520:54:78;719:10:59;-1:-1:-1;;;;;4520:54:78;;4499:135;;;;-1:-1:-1;;;4499:135:78;;;;;;;:::i;:::-;15426:41:::1;::::0;;;:29:::1;:41;::::0;;;;15403:75:::1;::::0;15469:8;15403:22:::1;:75::i;:::-;15402:76;15381:162;;;::::0;-1:-1:-1;;;15381:162:78;;17732:2:103;15381:162:78::1;::::0;::::1;17714:21:103::0;17771:2;17751:18;;;17744:30;17810:34;17790:18;;;17783:62;-1:-1:-1;;;17861:18:103;;;17854:36;17907:19;;15381:162:78::1;17704:228:103::0;15381:162:78::1;15640:55;::::0;;;:43:::1;:55;::::0;;;;;;;;15595:29:::1;:41:::0;;;;;;15574:63:::1;::::0;:20:::1;:63::i;:::-;:121;15553:223;;;::::0;-1:-1:-1;;;15553:223:78;;12199:2:103;15553:223:78::1;::::0;::::1;12181:21:103::0;12238:2;12218:18;;;12211:30;12277:34;12257:18;;;12250:62;-1:-1:-1;;;12328:18:103;;;12321:52;12390:19;;15553:223:78::1;12171:244:103::0;15553:223:78::1;15805:41;::::0;;;:29:::1;:41;::::0;;;;15787:70:::1;::::0;15848:8;15787:17:::1;:70::i;3373:86::-:0;3427:32;3306:6;3427:1;:32;:::i;:::-;3373:86;:::o;14305:221::-;14366:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14366:26:78;-1:-1:-1;14415:22:78;;;;:10;:22;;;;;;;;;14404:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;14404:33:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14447:72;;;;-1:-1:-1;;;14447:72:78;;18497:2:103;14447:72:78;;;18479:21:103;18536:2;18516:18;;;18509:30;18575:34;18555:18;;;18548:62;-1:-1:-1;;;18626:18:103;;;18619:35;18671:19;;14447:72:78;18469:227:103;14878:367:78;14966:16;15048:41;;;:29;:41;;;;;15027:63;;:20;:63::i;:::-;15015:9;:75;14994:156;;;;-1:-1:-1;;;14994:156:78;;20530:2:103;14994:156:78;;;20512:21:103;20569:2;20549:18;;;20542:30;20608:34;20588:18;;;20581:62;-1:-1:-1;;;20659:18:103;;;20652:32;20701:19;;14994:156:78;20502:224:103;14994:156:78;15185:41;;;;:29;:41;;;;;15168:70;;15228:9;15168:16;:70::i;:::-;15161:77;14878:367;-1:-1:-1;;;14878:367:78:o;7032:467::-;4327:46;;:19;:46::i;:::-;-1:-1:-1;;;;;4311:62:78;719:10:59;-1:-1:-1;;;;;4311:62:78;;4290:144;;;;-1:-1:-1;;;4290:144:78;;8198:2:103;4290:144:78;;;8180:21:103;8237:2;8217:18;;;8210:30;8276:34;8256:18;;;8249:62;-1:-1:-1;;;8327:18:103;;;8320:33;8370:19;;4290:144:78;8170:225:103;4290:144:78;7187:10:::1;::::0;:31:::1;::::0;-1:-1:-1;;;7187:31:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;7187:10:78;;::::1;::::0;:20:::1;::::0;7157:18:103;;7187:31:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7179:69;;;::::0;-1:-1:-1;;;7179:69:78;;10236:2:103;7179:69:78::1;::::0;::::1;10218:21:103::0;10275:2;10255:18;;;10248:30;10314:27;10294:18;;;10287:55;10359:18;;7179:69:78::1;10208:175:103::0;7179:69:78::1;7266:10;::::0;:33:::1;::::0;-1:-1:-1;;;7266:33:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;7266:10:78;;::::1;::::0;:21:::1;::::0;7157:18:103;;7266:33:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7258:72;;;::::0;-1:-1:-1;;;7258:72:78;;13388:2:103;7258:72:78::1;::::0;::::1;13370:21:103::0;13427:2;13407:18;;;13400:30;13466:28;13446:18;;;13439:56;13512:18;;7258:72:78::1;13360:176:103::0;7258:72:78::1;7348:34;::::0;;;:23:::1;:34;::::0;;;;;:39;7340:86:::1;;;::::0;-1:-1:-1;;;7340:86:78;;19717:2:103;7340:86:78::1;::::0;::::1;19699:21:103::0;19756:2;19736:18;;;19729:30;19795:34;19775:18;;;19768:62;-1:-1:-1;;;19846:18:103;;;19839:32;19888:19;;7340:86:78::1;19689:224:103::0;7340:86:78::1;7445:34;::::0;;;:23:::1;:34;::::0;;;;;:47;7032:467::o;11506:976::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;;;;;;:::i;:::-;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;4991:7:78::1;::::0;:30:::1;::::0;-1:-1:-1;;;4991:30:78;;::::1;::::0;::::1;7184:25:103::0;;;11655:9:78;;4956:32:::1;::::0;-1:-1:-1;;;;;4991:7:78;;::::1;::::0;:19:::1;::::0;7157:18:103;;4991:30:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4991:30:78::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;5076:18;::::0;;::::1;::::0;5031::::1;5052:43:::0;;;:23:::1;:43:::0;;;;;;;;4956:65;;-1:-1:-1;5126:10:78::1;::::0;:40:::1;::::0;-1:-1:-1;;;5126:40:78;;::::1;::::0;::::1;7184:25:103::0;;;-1:-1:-1;;;;;5126:10:78;;::::1;::::0;:28:::1;::::0;7157:18:103;;5126:40:78::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:76;;;;;;-1:-1:-1::0;;;5126:76:78::1;;;;;;;;;;5105:157;;;;-1:-1:-1::0;;;5105:157:78::1;;;;;;;:::i;:::-;11715:7:::2;::::0;:30:::2;::::0;-1:-1:-1;;;11715:30:78;;::::2;::::0;::::2;7184:25:103::0;;;11680:32:78::2;::::0;-1:-1:-1;;;;;11715:7:78::2;::::0;:19:::2;::::0;7157:18:103;;11715:30:78::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;11715:30:78::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;11800:18;::::0;;::::2;::::0;11755::::2;11776:43:::0;;;:23:::2;:43:::0;;;;;;;11855:22;;;:10:::2;:22:::0;;;;;11895:14:::2;::::0;::::2;::::0;11680:65;;-1:-1:-1;11776:43:78;;11887:64:::2;;;::::0;-1:-1:-1;;;11887:64:78;;11797:2:103;11887:64:78::2;::::0;::::2;11779:21:103::0;11836:2;11816:18;;;11809:30;11875:34;11855:18;;;11848:62;-1:-1:-1;;;11926:18:103;;;11919:31;11967:19;;11887:64:78::2;11769:223:103::0;11887:64:78::2;11985:6;11969:4;:12;;;:22;;11961:64;;;::::0;-1:-1:-1;;;11961:64:78;;14148:2:103;11961:64:78::2;::::0;::::2;14130:21:103::0;14187:2;14167:18;;;14160:30;14226:31;14206:18;;;14199:59;14275:18;;11961:64:78::2;14120:179:103::0;11961:64:78::2;12065:6;12043:4;:18;;;:28;;12035:77;;;::::0;-1:-1:-1;;;12035:77:78;;12983:2:103;12035:77:78::2;::::0;::::2;12965:21:103::0;13022:2;13002:18;;;12995:30;13061:34;13041:18;;;13034:62;-1:-1:-1;;;13112:18:103;;;13105:34;13156:19;;12035:77:78::2;12955:226:103::0;12035:77:78::2;12146:6;12130:4;:12;;;:22;;12122:64;;;::::0;-1:-1:-1;;;12122:64:78;;18139:2:103;12122:64:78::2;::::0;::::2;18121:21:103::0;18178:2;18158:18;;;18151:30;18217:31;18197:18;;;18190:59;18266:18;;12122:64:78::2;18111:179:103::0;12122:64:78::2;12213:6;12197:4;:12;;;:22;;;;;;;:::i;:::-;;;;;;;;12251:6;12229:4;:18;;;:28;;;;;;;:::i;:::-;;;;;;;;12283:6;12267:4;:12;;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12316:15:78::2;12299:14;::::0;::::2;:32:::0;12366:18:::2;12387:31;12409:8:::0;12387:21:::2;:31::i;:::-;12428:47;::::0;-1:-1:-1;;;12428:47:78;;::::2;::::0;::::2;7394:25:103::0;;;7435:18;;;7428:34;;;12366:52:78;;-1:-1:-1;;;;;;12428:28:78;::::2;::::0;::::2;::::0;7367:18:103;;12428:47:78::2;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;5272:1;;;;1129::88::1;;;11506:976:78::0;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;7184:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;7157:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;8602:2:103;1703:113:88;;;8584:21:103;8641:2;8621:18;;;8614:30;8680:34;8660:18;;;8653:62;-1:-1:-1;;;8731:18:103;;;8724:35;8776:19;;1703:113:88;8574:227:103;16390:314:78;16553:18;;;;;16478;16529:43;;;:23;:43;;;;;;;16590:14;16582:64;;;;-1:-1:-1;;;16582:64:78;;16554:2:103;16582:64:78;;;16536:21:103;16593:2;16573:18;;;16566:30;16632:34;16612:18;;;16605:62;-1:-1:-1;;;16683:18:103;;;16676:35;16728:19;;16582:64:78;16526:227:103;16582:64:78;16668:29;16686:10;16668:17;:29::i;11029:144:64:-;11106:4;4250:19;;;:12;;;:19;;;;;;:24;;11129:37;4154:127;10813:135;10883:4;10906:35;10914:3;10934:5;10906:7;:35::i;11254:112::-;11314:7;11340:19;11348:3;4444:18;;4362:107;5286:280:78;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;18903:2:103;4880:69:47;;;18885:21:103;18942:2;18922:18;;;18915:30;18981:34;18961:18;;;18954:62;-1:-1:-1;;;19032:18:103;;;19025:41;19083:19;;4880:69:47;18875:233:103;4880:69:47;5392:32:78::1;-1:-1:-1::0;;;5392:19:78::1;:32::i;:::-;5359:10;:66:::0;;-1:-1:-1;;;;;;5359:66:78::1;-1:-1:-1::0;;;;;5359:66:78;;;::::1;::::0;;;::::1;::::0;;5462:29:::1;-1:-1:-1::0;;;5462:19:78::1;:29::i;:::-;5435:7;:57:::0;;-1:-1:-1;;;;;;5435:57:78::1;-1:-1:-1::0;;;;;5435:57:78;;;::::1;::::0;;;::::1;::::0;;5529:29:::1;-1:-1:-1::0;;;5529:19:78::1;:29::i;:::-;5502:7;:57:::0;;-1:-1:-1;;;;;;5502:57:78::1;-1:-1:-1::0;;;;;5502:57:78;;;::::1;::::0;;;::::1;::::0;;5286:280::o;10516:129:64:-;10583:4;10606:32;10611:3;10631:5;10606:4;:32::i;11708:135::-;11779:7;11813:22;11817:3;11829:5;11813:3;:22::i;16710:304:78:-;16818:10;;:33;;-1:-1:-1;;;16818:33:78;;;;;7184:25:103;;;16780:18:78;;-1:-1:-1;;;;;16818:10:78;;:21;;7157:18:103;;16818:33:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16810:82;;;;-1:-1:-1;;;16810:82:78;;13743:2:103;16810:82:78;;;13725:21:103;13782:2;13762:18;;;13755:30;13821:34;13801:18;;;13794:62;-1:-1:-1;;;13872:18:103;;;13865:34;13916:19;;16810:82:78;13715:226:103;16810:82:78;16928:10;;:35;;-1:-1:-1;;;16928:35:78;;;;;7184:25:103;;;16911:14:78;;-1:-1:-1;;;;;16928:10:78;;:23;;7157:18:103;;16928:35:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2685:1388:64:-;2751:4;2888:19;;;:12;;;:19;;;;;;2922:15;;2918:1149;;3291:21;3315:14;3328:1;3315:10;:14;:::i;:::-;3363:18;;3291:38;;-1:-1:-1;3343:17:64;;3363:22;;3384:1;;3363:22;:::i;:::-;3343:42;;3417:13;3404:9;:26;3400:398;;3450:17;3470:3;:11;;3482:9;3470:22;;;;;;-1:-1:-1;;;3470:22:64;;;;;;;;;;;;;;;;;3450:42;;3621:9;3592:3;:11;;3604:13;3592:26;;;;;;-1:-1:-1;;;3592:26:64;;;;;;;;;;;;;;;;;;;;:38;;;;3704:23;;;:12;;;:23;;;;;:36;;;3400:398;3876:17;;:3;;:17;;;-1:-1:-1;;;3876:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;3968:3;:12;;:19;3981:5;3968:19;;;;;;;;;;;3961:26;;;4009:4;4002:11;;;;;;;2918:1149;4051:5;4044:12;;;;;2113:404;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;4811:118;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;14:718:103:-;;120:3;113:4;105:6;101:17;97:27;87:2;;142:5;135;128:20;87:2;175:6;169:13;201:18;197:2;194:26;191:2;;;223:18;;:::i;:::-;262:4;290:53;333:2;314:13;;-1:-1:-1;;310:27:103;306:36;;290:53;:::i;:::-;368:2;359:7;352:19;412:3;407:2;402;394:6;390:15;386:24;383:33;380:2;;;433:5;426;419:20;380:2;459:5;473:134;487:2;484:1;481:9;473:134;;;576:14;;;572:23;;566:30;544:15;;;540:24;;533:64;498:10;;473:134;;;625:2;622:1;619:9;616:2;;;685:5;680:2;675;666:7;662:16;658:25;651:40;616:2;-1:-1:-1;719:7:103;77:655;-1:-1:-1;;;;;77:655:103:o;737:160::-;829:13;;871:1;861:12;;851:2;;887:1;884;877:12;902:257;;1014:2;1002:9;993:7;989:23;985:32;982:2;;;1035:6;1027;1020:22;982:2;1079:9;1066:23;1098:31;1123:5;1098:31;:::i;1164:261::-;;1287:2;1275:9;1266:7;1262:23;1258:32;1255:2;;;1308:6;1300;1293:22;1255:2;1345:9;1339:16;1364:31;1389:5;1364:31;:::i;1430:297::-;;1550:2;1538:9;1529:7;1525:23;1521:32;1518:2;;;1571:6;1563;1556:22;1518:2;1608:9;1602:16;1661:5;1654:13;1647:21;1640:5;1637:32;1627:2;;1688:6;1680;1673:22;1732:190;;1844:2;1832:9;1823:7;1819:23;1815:32;1812:2;;;1865:6;1857;1850:22;1812:2;-1:-1:-1;1893:23:103;;1802:120;-1:-1:-1;1802:120:103:o;1927:258::-;;;2056:2;2044:9;2035:7;2031:23;2027:32;2024:2;;;2077:6;2069;2062:22;2024:2;-1:-1:-1;;2105:23:103;;;2175:2;2160:18;;;2147:32;;-1:-1:-1;2014:171:103:o;2475:299::-;;2617:2;2605:9;2596:7;2592:23;2588:32;2585:2;;;2638:6;2630;2623:22;2585:2;2675:9;2669:16;2714:1;2707:5;2704:12;2694:2;;2735:6;2727;2720:22;2779:1010;;2931:2;2919:9;2910:7;2906:23;2902:32;2899:2;;;2952:6;2944;2937:22;2899:2;2990:9;2984:16;3019:18;3060:2;3052:6;3049:14;3046:2;;;3081:6;3073;3066:22;3046:2;3109:22;;;;3165:4;3147:16;;;3143:27;3140:2;;;3188:6;3180;3173:22;3140:2;3219:21;3235:4;3219:21;:::i;:::-;3270:2;3264:9;3304:1;3295:7;3292:14;3282:2;;3325:6;3317;3310:22;3282:2;3357:7;3350:5;3343:22;;3411:2;3407;3403:11;3397:18;3392:2;3385:5;3381:14;3374:42;3462:2;3458;3454:11;3448:18;3443:2;3436:5;3432:14;3425:42;3506:2;3502;3498:11;3492:18;3535:2;3525:8;3522:16;3519:2;;;3556:6;3548;3541:22;3519:2;3597:55;3644:7;3633:8;3629:2;3625:17;3597:55;:::i;:::-;3592:2;3585:5;3581:14;3574:79;;3700:3;3696:2;3692:12;3686:19;3680:3;3673:5;3669:15;3662:44;3753:3;3749:2;3745:12;3739:19;3733:3;3726:5;3722:15;3715:44;3778:5;3768:15;;;;;2889:900;;;;:::o;3794:1025::-;;3943:2;3931:9;3922:7;3918:23;3914:32;3911:2;;;3964:6;3956;3949:22;3911:2;4002:9;3996:16;4031:18;4072:2;4064:6;4061:14;4058:2;;;4093:6;4085;4078:22;4058:2;4121:22;;;;4177:4;4159:16;;;4155:27;4152:2;;;4200:6;4192;4185:22;4152:2;4231:21;4247:4;4231:21;:::i;:::-;4282:2;4276:9;4294:33;4319:7;4294:33;:::i;:::-;4336:22;;4404:2;4396:11;;;4390:18;4374:14;;;4367:42;4441:55;4492:2;4484:11;;4441:55;:::i;:::-;4436:2;4429:5;4425:14;4418:79;4536:2;4532;4528:11;4522:18;4565:2;4555:8;4552:16;4549:2;;;4586:6;4578;4571:22;4824:841;;4949:3;4993:2;4981:9;4972:7;4968:23;4964:32;4961:2;;;5014:6;5006;4999:22;4961:2;5045:19;5061:2;5045:19;:::i;:::-;5032:32;;5087:53;5130:9;5087:53;:::i;:::-;5080:5;5073:68;5194:2;5183:9;5179:18;5173:25;5168:2;5161:5;5157:14;5150:49;5252:2;5241:9;5237:18;5231:25;5226:2;5219:5;5215:14;5208:49;5310:2;5299:9;5295:18;5289:25;5284:2;5277:5;5273:14;5266:49;5369:3;5358:9;5354:19;5348:26;5342:3;5335:5;5331:15;5324:51;5429:3;5418:9;5414:19;5408:26;5402:3;5395:5;5391:15;5384:51;5489:3;5478:9;5474:19;5468:26;5462:3;5455:5;5451:15;5444:51;5549:3;5538:9;5534:19;5528:26;5522:3;5515:5;5511:15;5504:51;5574:3;5630:2;5619:9;5615:18;5609:25;5604:2;5597:5;5593:14;5586:49;;5654:5;5644:15;;;4929:736;;;;:::o;5865:604::-;;;;;;6045:3;6033:9;6024:7;6020:23;6016:33;6013:2;;;6067:6;6059;6052:22;6013:2;6108:9;6095:23;6085:33;;6168:2;6157:9;6153:18;6140:32;6181:31;6206:5;6181:31;:::i;:::-;6231:5;-1:-1:-1;6288:2:103;6273:18;;6260:32;6301:33;6260:32;6301:33;:::i;:::-;6003:466;;;;-1:-1:-1;6353:7:103;;6407:2;6392:18;;6379:32;;-1:-1:-1;6458:3:103;6443:19;6430:33;;6003:466;-1:-1:-1;;6003:466:103:o;6474:258::-;;;6603:2;6591:9;6582:7;6578:23;6574:32;6571:2;;;6624:6;6616;6609:22;9216:397;9418:2;9400:21;;;9457:2;9437:18;;;9430:30;9496:34;9491:2;9476:18;;9469:62;-1:-1:-1;;;9562:2:103;9547:18;;9540:31;9603:3;9588:19;;9390:223::o;10791:397::-;10993:2;10975:21;;;11032:2;11012:18;;;11005:30;11071:34;11066:2;11051:18;;11044:62;-1:-1:-1;;;11137:2:103;11122:18;;11115:31;11178:3;11163:19;;10965:223::o;15949:398::-;16151:2;16133:21;;;16190:2;16170:18;;;16163:30;16229:34;16224:2;16209:18;;16202:62;-1:-1:-1;;;16295:2:103;16280:18;;16273:32;16337:3;16322:19;;16123:224::o;16758:352::-;16960:2;16942:21;;;16999:2;16979:18;;;16972:30;17038;17033:2;17018:18;;17011:58;17101:2;17086:18;;16932:178::o;19113:397::-;19315:2;19297:21;;;19354:2;19334:18;;;19327:30;19393:34;19388:2;19373:18;;19366:62;-1:-1:-1;;;19459:2:103;19444:18;;19437:31;19500:3;19485:19;;19287:223::o;20731:1032::-;20940:13;;20922:32;;21001:4;20989:17;;;20983:24;20909:3;20894:19;;;21016:54;;21049:20;;20983:24;-1:-1:-1;;;;;6803:31:103;6791:44;;6781:60;21016:54;;21119:4;21111:6;21107:17;21101:24;21134:56;21184:4;21173:9;21169:20;21153:14;-1:-1:-1;;;;;6803:31:103;6791:44;;6781:60;21134:56;;21246:4;21238:6;21234:17;21228:24;21221:4;21210:9;21206:20;21199:54;21309:4;21301:6;21297:17;21291:24;21284:4;21273:9;21269:20;21262:54;21372:4;21364:6;21360:17;21354:24;21347:4;21336:9;21332:20;21325:54;21435:4;21427:6;21423:17;21417:24;21410:4;21399:9;21395:20;21388:54;21498:4;21490:6;21486:17;21480:24;21473:4;21462:9;21458:20;21451:54;21524:6;21584:2;21576:6;21572:15;21566:22;21561:2;21550:9;21546:18;21539:50;;21608:6;21668:2;21660:6;21656:15;21650:22;21645:2;21634:9;21630:18;21623:50;;21692:6;21752:2;21744:6;21740:15;21734:22;21729:2;21718:9;21714:18;21707:50;;20876:887;;;;:::o;22798:275::-;22869:2;22863:9;22934:2;22915:13;;-1:-1:-1;;22911:27:103;22899:40;;22969:18;22954:34;;22990:22;;;22951:62;22948:2;;;23016:18;;:::i;:::-;23052:2;23045:22;22843:230;;-1:-1:-1;22843:230:103:o;23078:128::-;;23149:1;23145:6;23142:1;23139:13;23136:2;;;23155:18;;:::i;:::-;-1:-1:-1;23191:9:103;;23126:80::o;23211:217::-;;23277:1;23267:2;;-1:-1:-1;;;23302:31:103;;23356:4;23353:1;23346:15;23384:4;23309:1;23374:15;23267:2;-1:-1:-1;23413:9:103;;23257:171::o;23433:168::-;;23539:1;23535;23531:6;23527:14;23524:1;23521:21;23516:1;23509:9;23502:17;23498:45;23495:2;;;23546:18;;:::i;:::-;-1:-1:-1;23586:9:103;;23485:116::o;23606:125::-;;23674:1;23671;23668:8;23665:2;;;23679:18;;:::i;:::-;-1:-1:-1;23716:9:103;;23655:76::o;23736:127::-;23797:10;23792:3;23788:20;23785:1;23778:31;23828:4;23825:1;23818:15;23852:4;23849:1;23842:15;23868:127;23929:10;23924:3;23920:20;23917:1;23910:31;23960:4;23957:1;23950:15;23984:4;23981:1;23974:15;24000:131;-1:-1:-1;;;;;24075:31:103;;24065:42;;24055:2;;24121:1;24118;24111:12;24055:2;24045:86;:::o"},"methodIdentifiers":{"COLLATERALIZATION_LEVEL_CAP()":"da68771a","DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES()":"edb5be30","FULL_COLLATERALIZATION_LEVEL()":"45fe1c6d","activeBundles(uint256)":"a4266a66","addBundleIdToActiveSet(uint256,uint256)":"d407ba00","calculateCollateral(uint256,uint256)":"7cdb808d","defund(uint256,uint256)":"c397ae39","fund(uint256,uint256)":"a65e2cfd","getActiveBundleId(uint256,uint256)":"ec833b0c","getFullCollateralizationLevel()":"f1d354d0","getMaximumNumberOfActiveBundles(uint256)":"7db32844","getRiskPoolForProduct(uint256)":"d229f3b0","getRiskpool(uint256)":"eb802114","initialize(address)":"c4d66de8","processPayout(bytes32,uint256)":"fe64372b","processPremium(bytes32,uint256)":"02108268","registerRiskpool(uint256,address,address,uint256,uint256)":"57419e8f","release(bytes32)":"67d42a8b","removeBundleIdFromActiveSet(uint256,uint256)":"950be803","riskpools()":"a054381f","setMaximumNumberOfActiveBundles(uint256,uint256)":"2127fd48","setRiskpoolForProduct(uint256,uint256)":"f93b3673","underwrite(bytes32)":"1b07b17f"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralizationFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralizationSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateral\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolRequiredCollateral\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COLLATERALIZATION_LEVEL_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_COLLATERALIZATION_LEVEL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"addBundleIdToActiveSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"calculateCollateral\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bundleIdx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"}],\"name\":\"getRiskPoolForProduct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredAtRisk\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPool.Pool\",\"name\":\"riskPool\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"registerRiskpool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"removeBundleIdFromActiveSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"riskpools\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"setRiskpoolForProduct\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract manages riskpools, their registration, funding, defunding, collateralization, and other related operations. - The contract implements the IPool interface and extends the CoreController contract. - It imports other contracts such as ComponentController, PolicyController, BundleController, and CoreController. - It uses the EnumerableSet library from OpenZeppelin for managing sets of bundle IDs. - The contract defines constants for full collateralization level, collateralization level cap, and default maximum number of active bundles. - It maintains mappings to store riskpool information, riskpool IDs for products, maximum number of active bundles for riskpools, and active bundle IDs for riskpools. - The contract has a private array to store riskpool IDs. - It has references to other contracts: ComponentController, PolicyController, and BundleController. - The contract defines modifiers for access control to specific functions. Functions: - `_afterInitialize()`: Called after contract initialization to set addresses of other contracts. - `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration. - `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID. - `fund()`: Adds funds to a specific riskpool. - `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount. - `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure. - `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount. - `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract. - `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout. - `release()`: Releases a policy's collateral from the riskpool. Overall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/PoolController.sol\":\"PoolController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/modules/QueryModule.sol":{"QueryModule":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"LogOracleCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"responsibleOracleId","type":"uint256"}],"name":"LogOracleRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"address","name":"responder","type":"address"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"}],"name":"LogOracleResponded","type":"event"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOracleRequestCount","outputs":[{"internalType":"uint256","name":"_count","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"getProcessId","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"bytes","name":"input","type":"bytes"},{"internalType":"string","name":"callbackMethodName","type":"string"},{"internalType":"address","name":"callbackContractAddress","type":"address"},{"internalType":"uint256","name":"responsibleOracleId","type":"uint256"}],"name":"request","outputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"address","name":"responder","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"respond","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611844806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632c933f221461006757806338aec7cc1461008c57806340e58ee5146100945780639af8c4ba146100a95780639b04ed30146100bc578063c4d66de8146100cf575b600080fd5b61007a61007536600461149c565b6100e2565b60405190815260200160405180910390f35b60035461007a565b6100a76100a236600461156e565b61044d565b005b6100a76100b736600461159e565b61063a565b61007a6100ca36600461156e565b610b9f565b6100a76100dd36600461143d565b610dac565b600064517565727960d81b6100f681610f2a565b6001600160a01b0316306001600160a01b03161461015b5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f524147450000000060448201526064015b60405180910390fd5b6101756d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146101a55760405162461bcd60e51b815260040161015290611706565b600254604051632b1c7f7360e01b81526001600160a01b0386811660048301526000921690632b1c7f739060240160206040518083038186803b1580156101eb57600080fd5b505afa1580156101ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102239190611586565b600254604051630e48080360e21b8152600481018390529192506001600160a01b031690633920200c9060240160206040518083038186803b15801561026857600080fd5b505afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a0919061147c565b6103025760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a5155432d3031303a43414c4c4241434b5f414444524553535f4960448201526c14d7d393d517d41493d11550d5609a1b6064820152608401610152565b600380546001810180835560008381529195509091908590811061033657634e487b7160e01b600052603260045260246000fd5b600091825260209091206006909102018b81559050610359600482018b8b61131e565b5061036860038201898961131e565b506002810180546001600160a01b0319166001600160a01b0388161790556001810185905542600582015561039c85611012565b6001600160a01b031663ffc79065858c8c6040518463ffffffff1660e01b81526004016103cb93929190611771565b600060405180830381600087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b5050604080518e8152602081018890529081018890527f97e3e6ac41333a7d6e86bf69ab3f55df1e83baf81430f285faf030974809c3b19250606001905060405180910390a1505050979650505050505050565b64517565727960d81b61045f81610f2a565b6001600160a01b0316306001600160a01b0316146104bf5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f52414745000000006044820152606401610152565b6104d96d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146105095760405162461bcd60e51b815260040161015290611706565b60006003838154811061052c57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201905060008160050154116105905760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3033303a524551554553545f49445f494e56414c49446044820152606401610152565b600383815481106105b157634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b0319169055906105ea60038301826113a2565b6105f86004830160006113a2565b506000600591909101556040518381527f055856e72174cf1dcf5c10f8a1788a179a6e5c272427edc5ccc7f60becfec6899060200160405180910390a1505050565b6106536c4f7261636c655365727669636560981b610f2a565b6001600160a01b0316336001600160a01b0316146106b35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4352432d3030313a4e4f545f4f5241434c455f534552564943456044820152606401610152565b83836000600383815481106106d857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610744906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610770906117c4565b80156107bd5780601f10610792576101008083540402835291602001916107bd565b820191906000526020600020905b8154815290600101906020018083116107a057829003601f168201915b505050505081526020016004820180546107d6906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610802906117c4565b801561084f5780601f106108245761010080835404028352916020019161084f565b820191906000526020600020905b81548152906001019060200180831161083257829003601f168201915b50505050508152602001600582015481525050905060008160a00151116108b85760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3030323a524551554553545f49445f494e56414c49446044820152606401610152565b602081015160006108c882611012565b9050836001600160a01b0316816001600160a01b0316146109375760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5155432d3030333a4f5241434c455f4e4f545f524553504f4e5360448201526349424c4560e01b6064820152608401610152565b600060038a8154811061095a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602019050600081600301604051602001610980919061163e565b604051602081830303815290604052905060008260000154905060008360020160009054906101000a90046001600160a01b03166001600160a01b0316838e848e8e6040516024016109d59493929190611747565b60408051601f1981840301815290829052916109f091611622565b60408051918290039091206020830180516001600160e01b03166001600160e01b031990921691909117905251610a279190611622565b6000604051808303816000865af19150503d8060008114610a64576040519150601f19603f3d011682016040523d82523d6000602084013e610a69565b606091505b5050905080610ace5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a5155432d3032303a50524f445543545f43414c4c4241434b5f5560448201526a1394d550d0d154d4d1955360aa1b6064820152608401610152565b60038d81548110610aef57634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b031916905590610b2860038301826113a2565b610b366004830160006113a2565b5060006005919091015560408051838152602081018f90526001600160a01b038e1681830152821515606082015290517f4839cd12918767a83a4ef7b6a1abd1878ddfd2598fae0ad3b455c863cc177ad99181900360800190a150505050505050505050505050565b60008060038381548110610bc357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610c2f906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5b906117c4565b8015610ca85780601f10610c7d57610100808354040283529160200191610ca8565b820191906000526020600020905b815481529060010190602001808311610c8b57829003601f168201915b50505050508152602001600482018054610cc1906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906117c4565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b50505050508152602001600582015481525050905060008160a0015111610da35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3034303a524551554553545f49445f494e56414c49446044820152606401610152565b5190505b919050565b600054610100900460ff1615808015610dcc5750600054600160ff909116105b80610de65750303b158015610de6575060005460ff166001145b610e495760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610152565b6000805460ff191660011790558015610e6c576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610e96600090565b6541636365737360d01b14610ed857610eb76541636365737360d01b610f2a565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610ee061127c565b8015610f26576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611460565b90506001600160a01b038116610da75760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610152565b6002546040516309e4fb4360e31b81526004810183905260009182916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561105b57600080fd5b505afa15801561106f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110939190611460565b91508190506000600254604051636ea8e43560e11b8152600481018690526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156110de57600080fd5b505afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611116919061154f565b600281111561113557634e487b7160e01b600052602160045260246000fd5b1461118d5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5155432d3034313a434f4d504f4e454e545f4e4f545f4f5241436044820152614c4560f01b6064820152608401610152565b600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156111d257600080fd5b505afa1580156111e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120a9190611530565b600681111561122957634e487b7160e01b600052602160045260246000fd5b146112765760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5155432d3034323a4f5241434c455f4e4f545f414354495645006044820152606401610152565b50919050565b600054610100900460ff166112e75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610152565b6112fc6810dbdb5c1bdb995b9d60ba1b610f2a565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b82805461132a906117c4565b90600052602060002090601f01602090048101928261134c5760008555611392565b82601f106113655782800160ff19823516178555611392565b82800160010185558215611392579182015b82811115611392578235825591602001919060010190611377565b5061139e9291506113e1565b5090565b5080546113ae906117c4565b6000825580601f106113c057506113de565b601f0160209004906000526020600020908101906113de91906113e1565b50565b5b8082111561139e57600081556001016113e2565b60008083601f840112611407578182fd5b50813567ffffffffffffffff81111561141e578182fd5b60208301915083602082850101111561143657600080fd5b9250929050565b60006020828403121561144e578081fd5b8135611459816117f9565b9392505050565b600060208284031215611471578081fd5b8151611459816117f9565b60006020828403121561148d578081fd5b81518015158114611459578182fd5b600080600080600080600060a0888a0312156114b6578283fd5b87359650602088013567ffffffffffffffff808211156114d4578485fd5b6114e08b838c016113f6565b909850965060408a01359150808211156114f8578485fd5b506115058a828b016113f6565b9095509350506060880135611519816117f9565b809250506080880135905092959891949750929550565b600060208284031215611541578081fd5b815160078110611459578182fd5b600060208284031215611560578081fd5b815160038110611459578182fd5b60006020828403121561157f578081fd5b5035919050565b600060208284031215611597578081fd5b5051919050565b600080600080606085870312156115b3578384fd5b8435935060208501356115c5816117f9565b9250604085013567ffffffffffffffff8111156115e0578283fd5b6115ec878288016113f6565b95989497509550505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251611634818460208701611794565b9190910192915050565b815460009081906002810460018083168061165a57607f831692505b602080841082141561167a57634e487b7160e01b87526022600452602487fd5b81801561168e576001811461169f576116cb565b60ff198616895284890196506116cb565b60008a815260209020885b868110156116c35781548b8201529085019083016116aa565b505084890196505b5050505050506116fe817f2875696e743235362c627974657333322c627974657329000000000000000000815260170190565b949350505050565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b6000858252846020830152606060408301526117676060830184866115f8565b9695505050505050565b60008482526040602083015261178b6040830184866115f8565b95945050505050565b60005b838110156117af578181015183820152602001611797565b838111156117be576000848401525b50505050565b6002810460018216806117d857607f821691505b6020821081141561127657634e487b7160e01b600052602260045260246000fd5b6001600160a01b03811681146113de57600080fdfea264697066735822122041ed1675bdc184dac22d7618a0614577d9e87d9f88a1e8f5c79158a16aa26dc164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x1844 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2C933F22 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x38AEC7CC EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x9AF8C4BA EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x9B04ED30 EQ PUSH2 0xBC JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7A PUSH2 0x75 CALLDATASIZE PUSH1 0x4 PUSH2 0x149C JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x7A JUMP JUMPDEST PUSH2 0xA7 PUSH2 0xA2 CALLDATASIZE PUSH1 0x4 PUSH2 0x156E JUMP JUMPDEST PUSH2 0x44D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA7 PUSH2 0xB7 CALLDATASIZE PUSH1 0x4 PUSH2 0x159E JUMP JUMPDEST PUSH2 0x63A JUMP JUMPDEST PUSH2 0x7A PUSH2 0xCA CALLDATASIZE PUSH1 0x4 PUSH2 0x156E JUMP JUMPDEST PUSH2 0xB9F JUMP JUMPDEST PUSH2 0xA7 PUSH2 0xDD CALLDATASIZE PUSH1 0x4 PUSH2 0x143D JUMP JUMPDEST PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x0 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0xF6 DUP2 PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x15B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x175 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x152 SWAP1 PUSH2 0x1706 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x1586 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x268 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3031303A43414C4C4241434B5F414444524553535F49 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x14D7D393D517D41493D11550D5 PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP6 POP SWAP1 SWAP2 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x336 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP12 DUP2 SSTORE SWAP1 POP PUSH2 0x359 PUSH1 0x4 DUP3 ADD DUP12 DUP12 PUSH2 0x131E JUMP JUMPDEST POP PUSH2 0x368 PUSH1 0x3 DUP3 ADD DUP10 DUP10 PUSH2 0x131E JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH2 0x39C DUP6 PUSH2 0x1012 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFFC79065 DUP6 DUP13 DUP13 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1771 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP15 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x97E3E6AC41333A7D6E86BF69AB3F55DF1E83BAF81430F285FAF030974809C3B1 SWAP3 POP PUSH1 0x60 ADD SWAP1 POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x45F DUP2 PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH2 0x4D9 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x509 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x152 SWAP1 PUSH2 0x1706 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x52C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x5 ADD SLOAD GT PUSH2 0x590 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3033303A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x5B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE SWAP1 PUSH2 0x5EA PUSH1 0x3 DUP4 ADD DUP3 PUSH2 0x13A2 JUMP JUMPDEST PUSH2 0x5F8 PUSH1 0x4 DUP4 ADD PUSH1 0x0 PUSH2 0x13A2 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x5 SWAP2 SWAP1 SWAP2 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x55856E72174CF1DCF5C10F8A1788A179A6E5C272427EDC5CCC7F60BECFEC689 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x653 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F4F5241434C455F53455256494345 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST DUP4 DUP4 PUSH1 0x0 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x6D8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x744 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x770 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7BD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x792 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7BD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x7A0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0x7D6 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x802 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x84F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x824 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x832 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xA0 ADD MLOAD GT PUSH2 0x8B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3030323A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x0 PUSH2 0x8C8 DUP3 PUSH2 0x1012 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x937 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3030333A4F5241434C455F4E4F545F524553504F4E53 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x49424C45 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP11 DUP2 SLOAD DUP2 LT PUSH2 0x95A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x980 SWAP2 SWAP1 PUSH2 0x163E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 DUP15 DUP5 DUP15 DUP15 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x9D5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE SWAP2 PUSH2 0x9F0 SWAP2 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x20 DUP4 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE MLOAD PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xA64 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xACE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3032303A50524F445543545F43414C4C4241434B5F55 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x1394D550D0D154D4D19553 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP14 DUP2 SLOAD DUP2 LT PUSH2 0xAEF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE SWAP1 PUSH2 0xB28 PUSH1 0x3 DUP4 ADD DUP3 PUSH2 0x13A2 JUMP JUMPDEST PUSH2 0xB36 PUSH1 0x4 DUP4 ADD PUSH1 0x0 PUSH2 0x13A2 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x5 SWAP2 SWAP1 SWAP2 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP15 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x4839CD12918767A83A4EF7B6A1ABD1878DDFD2598FAE0AD3B455C863CC177AD9 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xBC3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0xC2F SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC5B SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCA8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC7D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xCA8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC8B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0xCC1 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCED SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD3A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD0F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD3A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD1D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xA0 ADD MLOAD GT PUSH2 0xDA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034303A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xDCC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xDE6 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDE6 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xE49 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xE6C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xE96 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xED8 JUMPI PUSH2 0xEB7 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xEE0 PUSH2 0x127C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF26 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFAC SWAP2 SWAP1 PUSH2 0x1460 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xDA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x105B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x106F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1093 SWAP2 SWAP1 PUSH2 0x1460 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1116 SWAP2 SWAP1 PUSH2 0x154F JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1135 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x118D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034313A434F4D504F4E454E545F4E4F545F4F524143 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4C45 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x120A SWAP2 SWAP1 PUSH2 0x1530 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1229 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1276 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034323A4F5241434C455F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x12E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH2 0x12FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x132A SWAP1 PUSH2 0x17C4 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x134C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1392 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1365 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x1392 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1392 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1392 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1377 JUMP JUMPDEST POP PUSH2 0x139E SWAP3 SWAP2 POP PUSH2 0x13E1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x13AE SWAP1 PUSH2 0x17C4 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x13C0 JUMPI POP PUSH2 0x13DE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x13DE SWAP2 SWAP1 PUSH2 0x13E1 JUMP JUMPDEST POP JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x139E JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x13E2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1407 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x141E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x144E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1459 DUP2 PUSH2 0x17F9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1471 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1459 DUP2 PUSH2 0x17F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x148D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x14B6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x14D4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x14E0 DUP12 DUP4 DUP13 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x14F8 JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x1505 DUP11 DUP3 DUP12 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH2 0x1519 DUP2 PUSH2 0x17F9 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1541 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x157F JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1597 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15B3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x15C5 DUP2 PUSH2 0x17F9 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15E0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x15EC DUP8 DUP3 DUP9 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1634 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP1 DUP4 AND DUP1 PUSH2 0x165A JUMPI PUSH1 0x7F DUP4 AND SWAP3 POP JUMPDEST PUSH1 0x20 DUP1 DUP5 LT DUP3 EQ ISZERO PUSH2 0x167A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP8 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP8 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x168E JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x169F JUMPI PUSH2 0x16CB JUMP JUMPDEST PUSH1 0xFF NOT DUP7 AND DUP10 MSTORE DUP5 DUP10 ADD SWAP7 POP PUSH2 0x16CB JUMP JUMPDEST PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP9 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x16C3 JUMPI DUP2 SLOAD DUP12 DUP3 ADD MSTORE SWAP1 DUP6 ADD SWAP1 DUP4 ADD PUSH2 0x16AA JUMP JUMPDEST POP POP DUP5 DUP10 ADD SWAP7 POP JUMPDEST POP POP POP POP POP POP PUSH2 0x16FE DUP2 PUSH32 0x2875696E743235362C627974657333322C627974657329000000000000000000 DUP2 MSTORE PUSH1 0x17 ADD SWAP1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1767 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x15F8 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE PUSH1 0x40 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x178B PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x15F8 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17AF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1797 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x17BE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x17D8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1276 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x13DE JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE 0xED AND PUSH22 0xBDC184DAC22D7618A0614577D9E87D9F88A1E8F5C791 PC LOG1 PUSH11 0xA26DC164736F6C63430008 MUL STOP CALLER ","sourceMap":"3274:5038:79:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;3274:5038:79;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;3274:5038:79;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:14958:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"86:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"135:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"144:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"154:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"137:6:103"},"nodeType":"YulFunctionCall","src":"137:26:103"},"nodeType":"YulExpressionStatement","src":"137:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"114:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"122:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"110:3:103"},"nodeType":"YulFunctionCall","src":"110:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"129:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"106:3:103"},"nodeType":"YulFunctionCall","src":"106:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"99:6:103"},"nodeType":"YulFunctionCall","src":"99:35:103"},"nodeType":"YulIf","src":"96:2:103"},{"nodeType":"YulAssignment","src":"174:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"197:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"184:12:103"},"nodeType":"YulFunctionCall","src":"184:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"174:6:103"}]},{"body":{"nodeType":"YulBlock","src":"247:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"256:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"266:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"249:6:103"},"nodeType":"YulFunctionCall","src":"249:26:103"},"nodeType":"YulExpressionStatement","src":"249:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"219:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"227:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"216:2:103"},"nodeType":"YulFunctionCall","src":"216:30:103"},"nodeType":"YulIf","src":"213:2:103"},{"nodeType":"YulAssignment","src":"286:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"302:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"310:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"298:3:103"},"nodeType":"YulFunctionCall","src":"298:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"286:8:103"}]},{"body":{"nodeType":"YulBlock","src":"367:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"376:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"379:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"369:6:103"},"nodeType":"YulFunctionCall","src":"369:12:103"},"nodeType":"YulExpressionStatement","src":"369:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"338:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"346:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"334:3:103"},"nodeType":"YulFunctionCall","src":"334:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"355:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"330:3:103"},"nodeType":"YulFunctionCall","src":"330:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"362:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"327:2:103"},"nodeType":"YulFunctionCall","src":"327:39:103"},"nodeType":"YulIf","src":"324:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"49:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"57:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"65:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"75:6:103","type":""}],"src":"14:375:103"},{"body":{"nodeType":"YulBlock","src":"464:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"510:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"519:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"527:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"512:6:103"},"nodeType":"YulFunctionCall","src":"512:22:103"},"nodeType":"YulExpressionStatement","src":"512:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"485:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"494:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"481:3:103"},"nodeType":"YulFunctionCall","src":"481:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"506:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"477:3:103"},"nodeType":"YulFunctionCall","src":"477:32:103"},"nodeType":"YulIf","src":"474:2:103"},{"nodeType":"YulVariableDeclaration","src":"545:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"558:12:103"},"nodeType":"YulFunctionCall","src":"558:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"549:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"615:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"590:24:103"},"nodeType":"YulFunctionCall","src":"590:31:103"},"nodeType":"YulExpressionStatement","src":"590:31:103"},{"nodeType":"YulAssignment","src":"630:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"640:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"630:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"430:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"441:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"453:6:103","type":""}],"src":"394:257:103"},{"body":{"nodeType":"YulBlock","src":"737:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"783:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"800:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"785:6:103"},"nodeType":"YulFunctionCall","src":"785:22:103"},"nodeType":"YulExpressionStatement","src":"785:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"758:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"767:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"754:3:103"},"nodeType":"YulFunctionCall","src":"754:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"779:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"750:3:103"},"nodeType":"YulFunctionCall","src":"750:32:103"},"nodeType":"YulIf","src":"747:2:103"},{"nodeType":"YulVariableDeclaration","src":"818:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"837:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"831:5:103"},"nodeType":"YulFunctionCall","src":"831:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"822:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"881:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"856:24:103"},"nodeType":"YulFunctionCall","src":"856:31:103"},"nodeType":"YulExpressionStatement","src":"856:31:103"},{"nodeType":"YulAssignment","src":"896:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"906:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"896:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"703:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"714:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"726:6:103","type":""}],"src":"656:261:103"},{"body":{"nodeType":"YulBlock","src":"1000:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1046:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1055:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1063:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1048:6:103"},"nodeType":"YulFunctionCall","src":"1048:22:103"},"nodeType":"YulExpressionStatement","src":"1048:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1021:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1030:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1017:3:103"},"nodeType":"YulFunctionCall","src":"1017:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1042:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1013:3:103"},"nodeType":"YulFunctionCall","src":"1013:32:103"},"nodeType":"YulIf","src":"1010:2:103"},{"nodeType":"YulVariableDeclaration","src":"1081:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1100:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1094:5:103"},"nodeType":"YulFunctionCall","src":"1094:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1085:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1163:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1172:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1180:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1165:6:103"},"nodeType":"YulFunctionCall","src":"1165:22:103"},"nodeType":"YulExpressionStatement","src":"1165:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1132:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1153:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1139:6:103"},"nodeType":"YulFunctionCall","src":"1139:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1129:2:103"},"nodeType":"YulFunctionCall","src":"1129:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1122:6:103"},"nodeType":"YulFunctionCall","src":"1122:40:103"},"nodeType":"YulIf","src":"1119:2:103"},{"nodeType":"YulAssignment","src":"1198:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1208:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1198:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"966:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"977:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"989:6:103","type":""}],"src":"922:297:103"},{"body":{"nodeType":"YulBlock","src":"1401:844:103","statements":[{"body":{"nodeType":"YulBlock","src":"1448:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1457:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1465:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1450:6:103"},"nodeType":"YulFunctionCall","src":"1450:22:103"},"nodeType":"YulExpressionStatement","src":"1450:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1422:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1431:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1418:3:103"},"nodeType":"YulFunctionCall","src":"1418:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1443:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1414:3:103"},"nodeType":"YulFunctionCall","src":"1414:33:103"},"nodeType":"YulIf","src":"1411:2:103"},{"nodeType":"YulAssignment","src":"1483:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1506:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1493:12:103"},"nodeType":"YulFunctionCall","src":"1493:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1483:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1525:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1556:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1567:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1552:3:103"},"nodeType":"YulFunctionCall","src":"1552:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1539:12:103"},"nodeType":"YulFunctionCall","src":"1539:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1529:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1580:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1590:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1584:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1635:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1644:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1652:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1637:6:103"},"nodeType":"YulFunctionCall","src":"1637:22:103"},"nodeType":"YulExpressionStatement","src":"1637:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1623:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1631:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1620:2:103"},"nodeType":"YulFunctionCall","src":"1620:14:103"},"nodeType":"YulIf","src":"1617:2:103"},{"nodeType":"YulVariableDeclaration","src":"1670:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1726:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1737:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1722:3:103"},"nodeType":"YulFunctionCall","src":"1722:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1746:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1696:25:103"},"nodeType":"YulFunctionCall","src":"1696:58:103"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"1674:8:103","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"1684:8:103","type":""}]},{"nodeType":"YulAssignment","src":"1763:18:103","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"1773:8:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1763:6:103"}]},{"nodeType":"YulAssignment","src":"1790:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"1800:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1790:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1817:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1850:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1861:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1846:3:103"},"nodeType":"YulFunctionCall","src":"1846:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1833:12:103"},"nodeType":"YulFunctionCall","src":"1833:32:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1821:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1894:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1903:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1911:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1896:6:103"},"nodeType":"YulFunctionCall","src":"1896:22:103"},"nodeType":"YulExpressionStatement","src":"1896:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1880:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1890:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1877:2:103"},"nodeType":"YulFunctionCall","src":"1877:16:103"},"nodeType":"YulIf","src":"1874:2:103"},{"nodeType":"YulVariableDeclaration","src":"1929:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1985:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1996:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1981:3:103"},"nodeType":"YulFunctionCall","src":"1981:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2007:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"1955:25:103"},"nodeType":"YulFunctionCall","src":"1955:60:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"1933:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"1943:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2024:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2034:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2024:6:103"}]},{"nodeType":"YulAssignment","src":"2051:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"2061:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2051:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2078:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2108:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2119:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2104:3:103"},"nodeType":"YulFunctionCall","src":"2104:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2091:12:103"},"nodeType":"YulFunctionCall","src":"2091:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2082:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2157:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2132:24:103"},"nodeType":"YulFunctionCall","src":"2132:31:103"},"nodeType":"YulExpressionStatement","src":"2132:31:103"},{"nodeType":"YulAssignment","src":"2172:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2182:5:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2172:6:103"}]},{"nodeType":"YulAssignment","src":"2196:43:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2223:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2234:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2219:3:103"},"nodeType":"YulFunctionCall","src":"2219:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2206:12:103"},"nodeType":"YulFunctionCall","src":"2206:33:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"2196:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_string_calldata_ptrt_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1319:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1330:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1342:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1350:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1358:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1366:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1374:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1382:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"1390:6:103","type":""}],"src":"1224:1021:103"},{"body":{"nodeType":"YulBlock","src":"2350:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2396:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2405:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2413:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2398:6:103"},"nodeType":"YulFunctionCall","src":"2398:22:103"},"nodeType":"YulExpressionStatement","src":"2398:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2371:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2380:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2367:3:103"},"nodeType":"YulFunctionCall","src":"2367:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2392:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2363:3:103"},"nodeType":"YulFunctionCall","src":"2363:32:103"},"nodeType":"YulIf","src":"2360:2:103"},{"nodeType":"YulVariableDeclaration","src":"2431:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2450:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2444:5:103"},"nodeType":"YulFunctionCall","src":"2444:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2435:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2494:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2469:24:103"},"nodeType":"YulFunctionCall","src":"2469:31:103"},"nodeType":"YulExpressionStatement","src":"2469:31:103"},{"nodeType":"YulAssignment","src":"2509:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2519:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2509:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2316:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2327:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2339:6:103","type":""}],"src":"2250:280:103"},{"body":{"nodeType":"YulBlock","src":"2635:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"2681:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2690:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2698:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2683:6:103"},"nodeType":"YulFunctionCall","src":"2683:22:103"},"nodeType":"YulExpressionStatement","src":"2683:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2656:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2665:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2652:3:103"},"nodeType":"YulFunctionCall","src":"2652:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2677:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2648:3:103"},"nodeType":"YulFunctionCall","src":"2648:32:103"},"nodeType":"YulIf","src":"2645:2:103"},{"nodeType":"YulVariableDeclaration","src":"2716:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2735:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2729:5:103"},"nodeType":"YulFunctionCall","src":"2729:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2720:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2778:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2787:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2795:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2780:6:103"},"nodeType":"YulFunctionCall","src":"2780:22:103"},"nodeType":"YulExpressionStatement","src":"2780:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2767:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2774:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2764:2:103"},"nodeType":"YulFunctionCall","src":"2764:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2757:6:103"},"nodeType":"YulFunctionCall","src":"2757:20:103"},"nodeType":"YulIf","src":"2754:2:103"},{"nodeType":"YulAssignment","src":"2813:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2823:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2813:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2601:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2612:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2624:6:103","type":""}],"src":"2535:299:103"},{"body":{"nodeType":"YulBlock","src":"2938:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"2984:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2993:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3001:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2986:6:103"},"nodeType":"YulFunctionCall","src":"2986:22:103"},"nodeType":"YulExpressionStatement","src":"2986:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2959:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2968:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2955:3:103"},"nodeType":"YulFunctionCall","src":"2955:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2980:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2951:3:103"},"nodeType":"YulFunctionCall","src":"2951:32:103"},"nodeType":"YulIf","src":"2948:2:103"},{"nodeType":"YulVariableDeclaration","src":"3019:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3038:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3032:5:103"},"nodeType":"YulFunctionCall","src":"3032:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3023:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3081:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3090:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3098:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3083:6:103"},"nodeType":"YulFunctionCall","src":"3083:22:103"},"nodeType":"YulExpressionStatement","src":"3083:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3070:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3077:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3067:2:103"},"nodeType":"YulFunctionCall","src":"3067:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3060:6:103"},"nodeType":"YulFunctionCall","src":"3060:20:103"},"nodeType":"YulIf","src":"3057:2:103"},{"nodeType":"YulAssignment","src":"3116:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3126:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3116:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2904:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2915:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2927:6:103","type":""}],"src":"2839:298:103"},{"body":{"nodeType":"YulBlock","src":"3212:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3258:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3267:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3275:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3260:6:103"},"nodeType":"YulFunctionCall","src":"3260:22:103"},"nodeType":"YulExpressionStatement","src":"3260:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3233:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3242:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3229:3:103"},"nodeType":"YulFunctionCall","src":"3229:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3254:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3225:3:103"},"nodeType":"YulFunctionCall","src":"3225:32:103"},"nodeType":"YulIf","src":"3222:2:103"},{"nodeType":"YulAssignment","src":"3293:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3316:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3303:12:103"},"nodeType":"YulFunctionCall","src":"3303:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3293:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3178:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3189:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3201:6:103","type":""}],"src":"3142:190:103"},{"body":{"nodeType":"YulBlock","src":"3418:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"3464:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3473:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3481:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3466:6:103"},"nodeType":"YulFunctionCall","src":"3466:22:103"},"nodeType":"YulExpressionStatement","src":"3466:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3439:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3448:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3435:3:103"},"nodeType":"YulFunctionCall","src":"3435:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3460:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3431:3:103"},"nodeType":"YulFunctionCall","src":"3431:32:103"},"nodeType":"YulIf","src":"3428:2:103"},{"nodeType":"YulAssignment","src":"3499:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3515:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3509:5:103"},"nodeType":"YulFunctionCall","src":"3509:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3499:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3384:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3395:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3407:6:103","type":""}],"src":"3337:194:103"},{"body":{"nodeType":"YulBlock","src":"3659:509:103","statements":[{"body":{"nodeType":"YulBlock","src":"3705:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3714:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3722:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3707:6:103"},"nodeType":"YulFunctionCall","src":"3707:22:103"},"nodeType":"YulExpressionStatement","src":"3707:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3680:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3689:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3676:3:103"},"nodeType":"YulFunctionCall","src":"3676:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3701:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3672:3:103"},"nodeType":"YulFunctionCall","src":"3672:32:103"},"nodeType":"YulIf","src":"3669:2:103"},{"nodeType":"YulAssignment","src":"3740:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3763:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3750:12:103"},"nodeType":"YulFunctionCall","src":"3750:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3740:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3782:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3812:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3823:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3808:3:103"},"nodeType":"YulFunctionCall","src":"3808:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3795:12:103"},"nodeType":"YulFunctionCall","src":"3795:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3786:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3861:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3836:24:103"},"nodeType":"YulFunctionCall","src":"3836:31:103"},"nodeType":"YulExpressionStatement","src":"3836:31:103"},{"nodeType":"YulAssignment","src":"3876:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3886:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3876:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"3900:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3931:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3942:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3927:3:103"},"nodeType":"YulFunctionCall","src":"3927:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3914:12:103"},"nodeType":"YulFunctionCall","src":"3914:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3904:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3989:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3998:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4006:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3991:6:103"},"nodeType":"YulFunctionCall","src":"3991:22:103"},"nodeType":"YulExpressionStatement","src":"3991:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3961:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3969:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3958:2:103"},"nodeType":"YulFunctionCall","src":"3958:30:103"},"nodeType":"YulIf","src":"3955:2:103"},{"nodeType":"YulVariableDeclaration","src":"4024:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4080:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4091:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4076:3:103"},"nodeType":"YulFunctionCall","src":"4076:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4100:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"4050:25:103"},"nodeType":"YulFunctionCall","src":"4050:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"4028:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"4038:8:103","type":""}]},{"nodeType":"YulAssignment","src":"4117:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"4127:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4117:6:103"}]},{"nodeType":"YulAssignment","src":"4144:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"4154:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"4144:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_addresst_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3601:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3612:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3624:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3632:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3640:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3648:6:103","type":""}],"src":"3536:632:103"},{"body":{"nodeType":"YulBlock","src":"4239:202:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4256:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4261:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4249:6:103"},"nodeType":"YulFunctionCall","src":"4249:19:103"},"nodeType":"YulExpressionStatement","src":"4249:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4294:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4290:3:103"},"nodeType":"YulFunctionCall","src":"4290:14:103"},{"name":"start","nodeType":"YulIdentifier","src":"4306:5:103"},{"name":"length","nodeType":"YulIdentifier","src":"4313:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"4277:12:103"},"nodeType":"YulFunctionCall","src":"4277:43:103"},"nodeType":"YulExpressionStatement","src":"4277:43:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4344:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4349:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4340:3:103"},"nodeType":"YulFunctionCall","src":"4340:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4358:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4336:3:103"},"nodeType":"YulFunctionCall","src":"4336:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"4365:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4329:6:103"},"nodeType":"YulFunctionCall","src":"4329:40:103"},"nodeType":"YulExpressionStatement","src":"4329:40:103"},{"nodeType":"YulAssignment","src":"4378:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4393:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4406:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4414:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4402:3:103"},"nodeType":"YulFunctionCall","src":"4402:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4423:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4419:3:103"},"nodeType":"YulFunctionCall","src":"4419:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4398:3:103"},"nodeType":"YulFunctionCall","src":"4398:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"4430:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4385:3:103"},"nodeType":"YulFunctionCall","src":"4385:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4378:3:103"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"4208:5:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"4215:6:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"4223:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4231:3:103","type":""}],"src":"4173:268:103"},{"body":{"nodeType":"YulBlock","src":"4496:82:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4513:3:103"},{"kind":"string","nodeType":"YulLiteral","src":"4518:25:103","type":"","value":"(uint256,bytes32,bytes)"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4506:6:103"},"nodeType":"YulFunctionCall","src":"4506:38:103"},"nodeType":"YulExpressionStatement","src":"4506:38:103"},{"nodeType":"YulAssignment","src":"4553:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4564:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"4569:2:103","type":"","value":"23"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4560:3:103"},"nodeType":"YulFunctionCall","src":"4560:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4553:3:103"}]}]},"name":"abi_encode_stringliteral","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4480:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4488:3:103","type":""}],"src":"4446:132:103"},{"body":{"nodeType":"YulBlock","src":"4720:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4730:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4750:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4744:5:103"},"nodeType":"YulFunctionCall","src":"4744:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4734:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4792:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4800:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4788:3:103"},"nodeType":"YulFunctionCall","src":"4788:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"4807:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4812:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4766:21:103"},"nodeType":"YulFunctionCall","src":"4766:53:103"},"nodeType":"YulExpressionStatement","src":"4766:53:103"},{"nodeType":"YulAssignment","src":"4828:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4839:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4844:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4835:3:103"},"nodeType":"YulFunctionCall","src":"4835:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4828:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4696:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4701:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4712:3:103","type":""}],"src":"4583:274:103"},{"body":{"nodeType":"YulBlock","src":"5001:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"5011:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5031:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5025:5:103"},"nodeType":"YulFunctionCall","src":"5025:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5015:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5073:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5081:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5069:3:103"},"nodeType":"YulFunctionCall","src":"5069:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"5088:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5093:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"5047:21:103"},"nodeType":"YulFunctionCall","src":"5047:53:103"},"nodeType":"YulExpressionStatement","src":"5047:53:103"},{"nodeType":"YulAssignment","src":"5109:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5120:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5125:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5116:3:103"},"nodeType":"YulFunctionCall","src":"5116:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5109:3:103"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4977:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4982:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4993:3:103","type":""}],"src":"4862:276:103"},{"body":{"nodeType":"YulBlock","src":"5380:992:103","statements":[{"nodeType":"YulVariableDeclaration","src":"5390:14:103","value":{"name":"end","nodeType":"YulIdentifier","src":"5401:3:103"},"variables":[{"name":"ret","nodeType":"YulTypedName","src":"5394:3:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5413:30:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5436:6:103"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"5430:5:103"},"nodeType":"YulFunctionCall","src":"5430:13:103"},"variables":[{"name":"slotValue","nodeType":"YulTypedName","src":"5417:9:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5452:17:103","value":{"name":"end","nodeType":"YulIdentifier","src":"5466:3:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5456:6:103","type":""}]},{"nodeType":"YulAssignment","src":"5478:27:103","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5492:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5503:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5488:3:103"},"nodeType":"YulFunctionCall","src":"5488:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5478:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5514:11:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5524:1:103","type":"","value":"1"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5518:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5534:44:103","value":{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5564:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5575:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5560:3:103"},"nodeType":"YulFunctionCall","src":"5560:18:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5538:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5617:31:103","statements":[{"nodeType":"YulAssignment","src":"5619:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5633:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5641:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5629:3:103"},"nodeType":"YulFunctionCall","src":"5629:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5619:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5597:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5590:6:103"},"nodeType":"YulFunctionCall","src":"5590:26:103"},"nodeType":"YulIf","src":"5587:2:103"},{"nodeType":"YulVariableDeclaration","src":"5657:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5667:2:103","type":"","value":"32"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5661:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5728:115:103","statements":[{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"5749:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5763:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5754:3:103"},"nodeType":"YulFunctionCall","src":"5754:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5742:6:103"},"nodeType":"YulFunctionCall","src":"5742:33:103"},"nodeType":"YulExpressionStatement","src":"5742:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5795:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5798:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5788:6:103"},"nodeType":"YulFunctionCall","src":"5788:15:103"},"nodeType":"YulExpressionStatement","src":"5788:15:103"},{"expression":{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"5823:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5828:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5816:6:103"},"nodeType":"YulFunctionCall","src":"5816:17:103"},"nodeType":"YulExpressionStatement","src":"5816:17:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5684:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5707:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5715:2:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5704:2:103"},"nodeType":"YulFunctionCall","src":"5704:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5681:2:103"},"nodeType":"YulFunctionCall","src":"5681:38:103"},"nodeType":"YulIf","src":"5678:2:103"},{"cases":[{"body":{"nodeType":"YulBlock","src":"5893:97:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5914:3:103"},{"arguments":[{"name":"slotValue","nodeType":"YulIdentifier","src":"5923:9:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5938:3:103","type":"","value":"255"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5934:3:103"},"nodeType":"YulFunctionCall","src":"5934:8:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5919:3:103"},"nodeType":"YulFunctionCall","src":"5919:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5907:6:103"},"nodeType":"YulFunctionCall","src":"5907:37:103"},"nodeType":"YulExpressionStatement","src":"5907:37:103"},{"nodeType":"YulAssignment","src":"5957:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5968:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"5973:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5964:3:103"},"nodeType":"YulFunctionCall","src":"5964:16:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5957:3:103"}]}]},"nodeType":"YulCase","src":"5886:104:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5891:1:103","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"6006:315:103","statements":[{"nodeType":"YulVariableDeclaration","src":"6020:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6065:6:103"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"6035:29:103"},"nodeType":"YulFunctionCall","src":"6035:37:103"},"variables":[{"name":"dataPos","nodeType":"YulTypedName","src":"6024:7:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6085:12:103","value":{"name":"end","nodeType":"YulIdentifier","src":"6094:3:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"6089:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6164:111:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6193:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"6198:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6189:3:103"},"nodeType":"YulFunctionCall","src":"6189:11:103"},{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"6208:7:103"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"6202:5:103"},"nodeType":"YulFunctionCall","src":"6202:14:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6182:6:103"},"nodeType":"YulFunctionCall","src":"6182:35:103"},"nodeType":"YulExpressionStatement","src":"6182:35:103"},{"nodeType":"YulAssignment","src":"6234:27:103","value":{"arguments":[{"name":"dataPos","nodeType":"YulIdentifier","src":"6249:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6258:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6245:3:103"},"nodeType":"YulFunctionCall","src":"6245:16:103"},"variableNames":[{"name":"dataPos","nodeType":"YulIdentifier","src":"6234:7:103"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6121:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"6124:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6118:2:103"},"nodeType":"YulFunctionCall","src":"6118:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"6132:19:103","statements":[{"nodeType":"YulAssignment","src":"6134:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"6143:1:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6146:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6139:3:103"},"nodeType":"YulFunctionCall","src":"6139:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"6134:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"6114:3:103","statements":[]},"src":"6110:165:103"},{"nodeType":"YulAssignment","src":"6288:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6299:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"6304:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6295:3:103"},"nodeType":"YulFunctionCall","src":"6295:16:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"6288:3:103"}]}]},"nodeType":"YulCase","src":"5999:322:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6004:1:103","type":"","value":"1"}}],"expression":{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5859:18:103"},"nodeType":"YulSwitch","src":"5852:469:103"},{"nodeType":"YulAssignment","src":"6330:36:103","value":{"arguments":[{"name":"ret","nodeType":"YulIdentifier","src":"6362:3:103"}],"functionName":{"name":"abi_encode_stringliteral","nodeType":"YulIdentifier","src":"6337:24:103"},"nodeType":"YulFunctionCall","src":"6337:29:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6330:3:103"}]}]},"name":"abi_encode_tuple_packed_t_string_storage_t_stringliteral_69789469aba347ea3006333936a8384eb77a6c0f6b3710119647786d588df94c__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"5356:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5361:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5372:3:103","type":""}],"src":"5143:1229:103"},{"body":{"nodeType":"YulBlock","src":"6478:102:103","statements":[{"nodeType":"YulAssignment","src":"6488:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6500:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6511:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6496:3:103"},"nodeType":"YulFunctionCall","src":"6496:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6488:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6530:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6545:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6561:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6566:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6557:3:103"},"nodeType":"YulFunctionCall","src":"6557:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6570:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6553:3:103"},"nodeType":"YulFunctionCall","src":"6553:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6541:3:103"},"nodeType":"YulFunctionCall","src":"6541:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6523:6:103"},"nodeType":"YulFunctionCall","src":"6523:51:103"},"nodeType":"YulExpressionStatement","src":"6523:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6447:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6458:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6469:4:103","type":""}],"src":"6377:203:103"},{"body":{"nodeType":"YulBlock","src":"6686:76:103","statements":[{"nodeType":"YulAssignment","src":"6696:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6708:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6719:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6704:3:103"},"nodeType":"YulFunctionCall","src":"6704:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6696:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6738:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6749:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6731:6:103"},"nodeType":"YulFunctionCall","src":"6731:25:103"},"nodeType":"YulExpressionStatement","src":"6731:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6655:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6666:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6677:4:103","type":""}],"src":"6585:177:103"},{"body":{"nodeType":"YulBlock","src":"6946:248:103","statements":[{"nodeType":"YulAssignment","src":"6956:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6968:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6979:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6964:3:103"},"nodeType":"YulFunctionCall","src":"6964:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6956:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6999:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7010:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6992:6:103"},"nodeType":"YulFunctionCall","src":"6992:25:103"},"nodeType":"YulExpressionStatement","src":"6992:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7037:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7048:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7033:3:103"},"nodeType":"YulFunctionCall","src":"7033:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7053:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7026:6:103"},"nodeType":"YulFunctionCall","src":"7026:34:103"},"nodeType":"YulExpressionStatement","src":"7026:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7080:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7091:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7076:3:103"},"nodeType":"YulFunctionCall","src":"7076:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7100:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7116:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7121:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7112:3:103"},"nodeType":"YulFunctionCall","src":"7112:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7125:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7108:3:103"},"nodeType":"YulFunctionCall","src":"7108:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7096:3:103"},"nodeType":"YulFunctionCall","src":"7096:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7069:6:103"},"nodeType":"YulFunctionCall","src":"7069:60:103"},"nodeType":"YulExpressionStatement","src":"7069:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7149:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7160:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7145:3:103"},"nodeType":"YulFunctionCall","src":"7145:18:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7179:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7172:6:103"},"nodeType":"YulFunctionCall","src":"7172:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7165:6:103"},"nodeType":"YulFunctionCall","src":"7165:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7138:6:103"},"nodeType":"YulFunctionCall","src":"7138:50:103"},"nodeType":"YulExpressionStatement","src":"7138:50:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bool__to_t_bytes32_t_uint256_t_address_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6891:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6902:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6910:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6918:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6926:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6937:4:103","type":""}],"src":"6767:427:103"},{"body":{"nodeType":"YulBlock","src":"7356:162:103","statements":[{"nodeType":"YulAssignment","src":"7366:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7378:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7389:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7374:3:103"},"nodeType":"YulFunctionCall","src":"7374:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7366:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7408:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7419:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7401:6:103"},"nodeType":"YulFunctionCall","src":"7401:25:103"},"nodeType":"YulExpressionStatement","src":"7401:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7446:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7457:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7442:3:103"},"nodeType":"YulFunctionCall","src":"7442:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7462:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7435:6:103"},"nodeType":"YulFunctionCall","src":"7435:34:103"},"nodeType":"YulExpressionStatement","src":"7435:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7489:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7500:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7485:3:103"},"nodeType":"YulFunctionCall","src":"7485:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7505:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7478:6:103"},"nodeType":"YulFunctionCall","src":"7478:34:103"},"nodeType":"YulExpressionStatement","src":"7478:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7309:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7320:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7328:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7336:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7347:4:103","type":""}],"src":"7199:319:103"},{"body":{"nodeType":"YulBlock","src":"7630:87:103","statements":[{"nodeType":"YulAssignment","src":"7640:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7663:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7648:3:103"},"nodeType":"YulFunctionCall","src":"7648:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7640:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7682:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7697:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7705:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7693:3:103"},"nodeType":"YulFunctionCall","src":"7693:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7675:6:103"},"nodeType":"YulFunctionCall","src":"7675:36:103"},"nodeType":"YulExpressionStatement","src":"7675:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7599:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7610:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7621:4:103","type":""}],"src":"7523:194:103"},{"body":{"nodeType":"YulBlock","src":"7896:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7913:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7924:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7906:6:103"},"nodeType":"YulFunctionCall","src":"7906:21:103"},"nodeType":"YulExpressionStatement","src":"7906:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7947:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7958:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7943:3:103"},"nodeType":"YulFunctionCall","src":"7943:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7963:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7936:6:103"},"nodeType":"YulFunctionCall","src":"7936:30:103"},"nodeType":"YulExpressionStatement","src":"7936:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7986:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7997:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7982:3:103"},"nodeType":"YulFunctionCall","src":"7982:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8002:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7975:6:103"},"nodeType":"YulFunctionCall","src":"7975:62:103"},"nodeType":"YulExpressionStatement","src":"7975:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8068:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8053:3:103"},"nodeType":"YulFunctionCall","src":"8053:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8073:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8046:6:103"},"nodeType":"YulFunctionCall","src":"8046:35:103"},"nodeType":"YulExpressionStatement","src":"8046:35:103"},{"nodeType":"YulAssignment","src":"8090:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8102:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8113:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8098:3:103"},"nodeType":"YulFunctionCall","src":"8098:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8090:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7873:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7887:4:103","type":""}],"src":"7722:401:103"},{"body":{"nodeType":"YulBlock","src":"8302:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8319:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8330:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8312:6:103"},"nodeType":"YulFunctionCall","src":"8312:21:103"},"nodeType":"YulExpressionStatement","src":"8312:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8353:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8364:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8349:3:103"},"nodeType":"YulFunctionCall","src":"8349:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8369:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8342:6:103"},"nodeType":"YulFunctionCall","src":"8342:30:103"},"nodeType":"YulExpressionStatement","src":"8342:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8392:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8403:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8388:3:103"},"nodeType":"YulFunctionCall","src":"8388:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8408:33:103","type":"","value":"ERROR:QUC-042:ORACLE_NOT_ACTIVE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8381:6:103"},"nodeType":"YulFunctionCall","src":"8381:61:103"},"nodeType":"YulExpressionStatement","src":"8381:61:103"},{"nodeType":"YulAssignment","src":"8451:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8474:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8459:3:103"},"nodeType":"YulFunctionCall","src":"8459:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8451:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1effa1aafe7739318f52d8e7636d12568aefa8c489aaee728a51f66427ce3363__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8279:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8293:4:103","type":""}],"src":"8128:355:103"},{"body":{"nodeType":"YulBlock","src":"8662:235:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8679:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8690:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8672:6:103"},"nodeType":"YulFunctionCall","src":"8672:21:103"},"nodeType":"YulExpressionStatement","src":"8672:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8713:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8724:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8709:3:103"},"nodeType":"YulFunctionCall","src":"8709:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8729:2:103","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8702:6:103"},"nodeType":"YulFunctionCall","src":"8702:30:103"},"nodeType":"YulExpressionStatement","src":"8702:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8752:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8763:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8748:3:103"},"nodeType":"YulFunctionCall","src":"8748:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8768:34:103","type":"","value":"ERROR:QUC-010:CALLBACK_ADDRESS_I"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8741:6:103"},"nodeType":"YulFunctionCall","src":"8741:62:103"},"nodeType":"YulExpressionStatement","src":"8741:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8823:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8834:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8819:3:103"},"nodeType":"YulFunctionCall","src":"8819:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8839:15:103","type":"","value":"S_NOT_PRODUCT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8812:6:103"},"nodeType":"YulFunctionCall","src":"8812:43:103"},"nodeType":"YulExpressionStatement","src":"8812:43:103"},{"nodeType":"YulAssignment","src":"8864:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8876:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8887:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8872:3:103"},"nodeType":"YulFunctionCall","src":"8872:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8864:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_37bddfa86d88e5af8c7eccd224ca962e184394ace054b6f62464e40201ad9c08__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8639:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8653:4:103","type":""}],"src":"8488:409:103"},{"body":{"nodeType":"YulBlock","src":"9076:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9093:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9104:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9086:6:103"},"nodeType":"YulFunctionCall","src":"9086:21:103"},"nodeType":"YulExpressionStatement","src":"9086:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9127:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9138:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9123:3:103"},"nodeType":"YulFunctionCall","src":"9123:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9143:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9116:6:103"},"nodeType":"YulFunctionCall","src":"9116:30:103"},"nodeType":"YulExpressionStatement","src":"9116:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9166:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9177:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9162:3:103"},"nodeType":"YulFunctionCall","src":"9162:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9182:34:103","type":"","value":"ERROR:QUC-041:COMPONENT_NOT_ORAC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9155:6:103"},"nodeType":"YulFunctionCall","src":"9155:62:103"},"nodeType":"YulExpressionStatement","src":"9155:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9237:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9248:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9233:3:103"},"nodeType":"YulFunctionCall","src":"9233:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9253:4:103","type":"","value":"LE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9226:6:103"},"nodeType":"YulFunctionCall","src":"9226:32:103"},"nodeType":"YulExpressionStatement","src":"9226:32:103"},{"nodeType":"YulAssignment","src":"9267:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9290:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9275:3:103"},"nodeType":"YulFunctionCall","src":"9275:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9267:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4390b2a7de90bd955cc7d20e4d8918121e4301d01ba56c2d0318a2494be55fcb__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9053:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9067:4:103","type":""}],"src":"8902:398:103"},{"body":{"nodeType":"YulBlock","src":"9479:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9507:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9489:6:103"},"nodeType":"YulFunctionCall","src":"9489:21:103"},"nodeType":"YulExpressionStatement","src":"9489:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9541:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9526:3:103"},"nodeType":"YulFunctionCall","src":"9526:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9546:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9519:6:103"},"nodeType":"YulFunctionCall","src":"9519:30:103"},"nodeType":"YulExpressionStatement","src":"9519:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9580:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9565:3:103"},"nodeType":"YulFunctionCall","src":"9565:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9585:34:103","type":"","value":"ERROR:QUC-030:REQUEST_ID_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9558:6:103"},"nodeType":"YulFunctionCall","src":"9558:62:103"},"nodeType":"YulExpressionStatement","src":"9558:62:103"},{"nodeType":"YulAssignment","src":"9629:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9641:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9652:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9637:3:103"},"nodeType":"YulFunctionCall","src":"9637:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9629:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_774daad1cbf28a623c1273bcf077e47a159a045263db1d1d1a81c1c69daed74c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9456:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9470:4:103","type":""}],"src":"9305:356:103"},{"body":{"nodeType":"YulBlock","src":"9840:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9868:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9850:6:103"},"nodeType":"YulFunctionCall","src":"9850:21:103"},"nodeType":"YulExpressionStatement","src":"9850:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9891:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9902:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9887:3:103"},"nodeType":"YulFunctionCall","src":"9887:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9907:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9880:6:103"},"nodeType":"YulFunctionCall","src":"9880:30:103"},"nodeType":"YulExpressionStatement","src":"9880:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9930:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9941:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9926:3:103"},"nodeType":"YulFunctionCall","src":"9926:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9946:34:103","type":"","value":"ERROR:QUC-003:ORACLE_NOT_RESPONS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9919:6:103"},"nodeType":"YulFunctionCall","src":"9919:62:103"},"nodeType":"YulExpressionStatement","src":"9919:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10001:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10012:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9997:3:103"},"nodeType":"YulFunctionCall","src":"9997:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10017:6:103","type":"","value":"IBLE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9990:6:103"},"nodeType":"YulFunctionCall","src":"9990:34:103"},"nodeType":"YulExpressionStatement","src":"9990:34:103"},{"nodeType":"YulAssignment","src":"10033:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10045:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10056:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10041:3:103"},"nodeType":"YulFunctionCall","src":"10041:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10033:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_79c2419dd3836252a491e5fd1368db9c3868a0e1853d9bbe27ed6a8000a2b07d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9817:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9831:4:103","type":""}],"src":"9666:400:103"},{"body":{"nodeType":"YulBlock","src":"10245:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10262:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10273:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10255:6:103"},"nodeType":"YulFunctionCall","src":"10255:21:103"},"nodeType":"YulExpressionStatement","src":"10255:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10296:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10307:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10292:3:103"},"nodeType":"YulFunctionCall","src":"10292:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10312:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10285:6:103"},"nodeType":"YulFunctionCall","src":"10285:30:103"},"nodeType":"YulExpressionStatement","src":"10285:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10335:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10346:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10331:3:103"},"nodeType":"YulFunctionCall","src":"10331:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10351:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10324:6:103"},"nodeType":"YulFunctionCall","src":"10324:62:103"},"nodeType":"YulExpressionStatement","src":"10324:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10406:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10417:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10402:3:103"},"nodeType":"YulFunctionCall","src":"10402:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10422:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10395:6:103"},"nodeType":"YulFunctionCall","src":"10395:44:103"},"nodeType":"YulExpressionStatement","src":"10395:44:103"},{"nodeType":"YulAssignment","src":"10448:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10460:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10471:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10456:3:103"},"nodeType":"YulFunctionCall","src":"10456:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10448:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10222:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10236:4:103","type":""}],"src":"10071:410:103"},{"body":{"nodeType":"YulBlock","src":"10660:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10688:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10670:6:103"},"nodeType":"YulFunctionCall","src":"10670:21:103"},"nodeType":"YulExpressionStatement","src":"10670:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10711:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10722:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10707:3:103"},"nodeType":"YulFunctionCall","src":"10707:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10727:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10700:6:103"},"nodeType":"YulFunctionCall","src":"10700:30:103"},"nodeType":"YulExpressionStatement","src":"10700:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10750:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10761:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10746:3:103"},"nodeType":"YulFunctionCall","src":"10746:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10766:34:103","type":"","value":"ERROR:QUC-040:REQUEST_ID_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10739:6:103"},"nodeType":"YulFunctionCall","src":"10739:62:103"},"nodeType":"YulExpressionStatement","src":"10739:62:103"},{"nodeType":"YulAssignment","src":"10810:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10822:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10833:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10818:3:103"},"nodeType":"YulFunctionCall","src":"10818:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10810:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_988f80e03fa488be4da0a6e0b159af5f52d5707b3995562df14a79cc9e3d2889__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10637:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10651:4:103","type":""}],"src":"10486:356:103"},{"body":{"nodeType":"YulBlock","src":"11021:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11038:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11049:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11031:6:103"},"nodeType":"YulFunctionCall","src":"11031:21:103"},"nodeType":"YulExpressionStatement","src":"11031:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11072:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11083:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11068:3:103"},"nodeType":"YulFunctionCall","src":"11068:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11088:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11061:6:103"},"nodeType":"YulFunctionCall","src":"11061:30:103"},"nodeType":"YulExpressionStatement","src":"11061:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11111:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11122:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11107:3:103"},"nodeType":"YulFunctionCall","src":"11107:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11127:30:103","type":"","value":"ERROR:CRC-002:NOT_ON_STORAGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11100:6:103"},"nodeType":"YulFunctionCall","src":"11100:58:103"},"nodeType":"YulExpressionStatement","src":"11100:58:103"},{"nodeType":"YulAssignment","src":"11167:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11179:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11190:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11175:3:103"},"nodeType":"YulFunctionCall","src":"11175:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11167:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10998:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11012:4:103","type":""}],"src":"10847:352:103"},{"body":{"nodeType":"YulBlock","src":"11378:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11395:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11406:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11388:6:103"},"nodeType":"YulFunctionCall","src":"11388:21:103"},"nodeType":"YulExpressionStatement","src":"11388:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11440:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11425:3:103"},"nodeType":"YulFunctionCall","src":"11425:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11445:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11418:6:103"},"nodeType":"YulFunctionCall","src":"11418:30:103"},"nodeType":"YulExpressionStatement","src":"11418:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11468:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11479:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11464:3:103"},"nodeType":"YulFunctionCall","src":"11464:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11484:34:103","type":"","value":"ERROR:CRC-001:NOT_ORACLE_SERVICE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11457:6:103"},"nodeType":"YulFunctionCall","src":"11457:62:103"},"nodeType":"YulExpressionStatement","src":"11457:62:103"},{"nodeType":"YulAssignment","src":"11528:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11540:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11551:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11536:3:103"},"nodeType":"YulFunctionCall","src":"11536:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11528:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b09558737285c53e42f0cbb18d7098ce341b428cc4a700a20d5110ababfaf7a6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11355:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11369:4:103","type":""}],"src":"11204:356:103"},{"body":{"nodeType":"YulBlock","src":"11739:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11756:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11767:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11749:6:103"},"nodeType":"YulFunctionCall","src":"11749:21:103"},"nodeType":"YulExpressionStatement","src":"11749:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11790:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11801:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11786:3:103"},"nodeType":"YulFunctionCall","src":"11786:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11806:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11779:6:103"},"nodeType":"YulFunctionCall","src":"11779:30:103"},"nodeType":"YulExpressionStatement","src":"11779:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11829:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11840:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11825:3:103"},"nodeType":"YulFunctionCall","src":"11825:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11845:34:103","type":"","value":"ERROR:QUC-020:PRODUCT_CALLBACK_U"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11818:6:103"},"nodeType":"YulFunctionCall","src":"11818:62:103"},"nodeType":"YulExpressionStatement","src":"11818:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11900:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11911:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11896:3:103"},"nodeType":"YulFunctionCall","src":"11896:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11916:13:103","type":"","value":"NSUCCESSFUL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11889:6:103"},"nodeType":"YulFunctionCall","src":"11889:41:103"},"nodeType":"YulExpressionStatement","src":"11889:41:103"},{"nodeType":"YulAssignment","src":"11939:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11951:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11962:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11947:3:103"},"nodeType":"YulFunctionCall","src":"11947:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11939:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d2f7aff00631a903459db5e8faa0ab3073999f8b7c86b53a3df8a9ddbd8d8350__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11716:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11730:4:103","type":""}],"src":"11565:407:103"},{"body":{"nodeType":"YulBlock","src":"12151:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12168:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12179:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12161:6:103"},"nodeType":"YulFunctionCall","src":"12161:21:103"},"nodeType":"YulExpressionStatement","src":"12161:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12202:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12213:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12198:3:103"},"nodeType":"YulFunctionCall","src":"12198:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12218:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12191:6:103"},"nodeType":"YulFunctionCall","src":"12191:30:103"},"nodeType":"YulExpressionStatement","src":"12191:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12252:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12237:3:103"},"nodeType":"YulFunctionCall","src":"12237:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12257:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12230:6:103"},"nodeType":"YulFunctionCall","src":"12230:62:103"},"nodeType":"YulExpressionStatement","src":"12230:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12312:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12323:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12308:3:103"},"nodeType":"YulFunctionCall","src":"12308:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12328:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12301:6:103"},"nodeType":"YulFunctionCall","src":"12301:41:103"},"nodeType":"YulExpressionStatement","src":"12301:41:103"},{"nodeType":"YulAssignment","src":"12351:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12363:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12374:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12359:3:103"},"nodeType":"YulFunctionCall","src":"12359:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12351:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12128:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12142:4:103","type":""}],"src":"11977:407:103"},{"body":{"nodeType":"YulBlock","src":"12563:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12591:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12573:6:103"},"nodeType":"YulFunctionCall","src":"12573:21:103"},"nodeType":"YulExpressionStatement","src":"12573:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12614:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12625:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12610:3:103"},"nodeType":"YulFunctionCall","src":"12610:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12630:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12603:6:103"},"nodeType":"YulFunctionCall","src":"12603:30:103"},"nodeType":"YulExpressionStatement","src":"12603:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12653:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12664:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12649:3:103"},"nodeType":"YulFunctionCall","src":"12649:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12669:34:103","type":"","value":"ERROR:CRC-003:NOT_PRODUCT_SERVIC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12642:6:103"},"nodeType":"YulFunctionCall","src":"12642:62:103"},"nodeType":"YulExpressionStatement","src":"12642:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12724:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12735:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12720:3:103"},"nodeType":"YulFunctionCall","src":"12720:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12740:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12713:6:103"},"nodeType":"YulFunctionCall","src":"12713:31:103"},"nodeType":"YulExpressionStatement","src":"12713:31:103"},{"nodeType":"YulAssignment","src":"12753:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12765:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12776:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12761:3:103"},"nodeType":"YulFunctionCall","src":"12761:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12753:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12540:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12554:4:103","type":""}],"src":"12389:397:103"},{"body":{"nodeType":"YulBlock","src":"12965:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12993:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12975:6:103"},"nodeType":"YulFunctionCall","src":"12975:21:103"},"nodeType":"YulExpressionStatement","src":"12975:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13016:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13027:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13012:3:103"},"nodeType":"YulFunctionCall","src":"13012:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13032:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13005:6:103"},"nodeType":"YulFunctionCall","src":"13005:30:103"},"nodeType":"YulExpressionStatement","src":"13005:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13051:3:103"},"nodeType":"YulFunctionCall","src":"13051:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13071:34:103","type":"","value":"ERROR:QUC-002:REQUEST_ID_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13044:6:103"},"nodeType":"YulFunctionCall","src":"13044:62:103"},"nodeType":"YulExpressionStatement","src":"13044:62:103"},{"nodeType":"YulAssignment","src":"13115:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13127:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13138:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13123:3:103"},"nodeType":"YulFunctionCall","src":"13123:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13115:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f9911dbe79685a0b4bf01426459429095d797386123a16b8f4eb178ae8660c1c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12942:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12956:4:103","type":""}],"src":"12791:356:103"},{"body":{"nodeType":"YulBlock","src":"13253:76:103","statements":[{"nodeType":"YulAssignment","src":"13263:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13275:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13286:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13271:3:103"},"nodeType":"YulFunctionCall","src":"13271:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13263:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13305:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13316:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13298:6:103"},"nodeType":"YulFunctionCall","src":"13298:25:103"},"nodeType":"YulExpressionStatement","src":"13298:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13222:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13233:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13244:4:103","type":""}],"src":"13152:177:103"},{"body":{"nodeType":"YulBlock","src":"13519:201:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13536:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13547:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13529:6:103"},"nodeType":"YulFunctionCall","src":"13529:25:103"},"nodeType":"YulExpressionStatement","src":"13529:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13574:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13585:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13570:3:103"},"nodeType":"YulFunctionCall","src":"13570:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13590:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13563:6:103"},"nodeType":"YulFunctionCall","src":"13563:34:103"},"nodeType":"YulExpressionStatement","src":"13563:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13617:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13628:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13613:3:103"},"nodeType":"YulFunctionCall","src":"13613:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13633:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13606:6:103"},"nodeType":"YulFunctionCall","src":"13606:30:103"},"nodeType":"YulExpressionStatement","src":"13606:30:103"},{"nodeType":"YulAssignment","src":"13645:69:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13679:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"13687:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13699:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13710:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13695:3:103"},"nodeType":"YulFunctionCall","src":"13695:18:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13653:25:103"},"nodeType":"YulFunctionCall","src":"13653:61:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13645:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_bytes_calldata_ptr__to_t_uint256_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13464:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"13475:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13483:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13491:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13510:4:103","type":""}],"src":"13334:386:103"},{"body":{"nodeType":"YulBlock","src":"13882:158:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13899:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13910:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13892:6:103"},"nodeType":"YulFunctionCall","src":"13892:25:103"},"nodeType":"YulExpressionStatement","src":"13892:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13937:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13948:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13933:3:103"},"nodeType":"YulFunctionCall","src":"13933:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13953:2:103","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13926:6:103"},"nodeType":"YulFunctionCall","src":"13926:30:103"},"nodeType":"YulExpressionStatement","src":"13926:30:103"},{"nodeType":"YulAssignment","src":"13965:69:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13999:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"14007:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14030:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14015:3:103"},"nodeType":"YulFunctionCall","src":"14015:18:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"13973:25:103"},"nodeType":"YulFunctionCall","src":"13973:61:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13965:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13835:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13846:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13854:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13862:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13873:4:103","type":""}],"src":"13725:315:103"},{"body":{"nodeType":"YulBlock","src":"14101:71:103","statements":[{"expression":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14118:4:103"},{"name":"ptr","nodeType":"YulIdentifier","src":"14124:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14111:6:103"},"nodeType":"YulFunctionCall","src":"14111:17:103"},"nodeType":"YulExpressionStatement","src":"14111:17:103"},{"nodeType":"YulAssignment","src":"14137:29:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14155:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"14161:4:103","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"14145:9:103"},"nodeType":"YulFunctionCall","src":"14145:21:103"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"14137:4:103"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"14084:3:103","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"14092:4:103","type":""}],"src":"14045:127:103"},{"body":{"nodeType":"YulBlock","src":"14230:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"14240:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"14249:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"14244:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"14309:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14334:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"14339:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14330:3:103"},"nodeType":"YulFunctionCall","src":"14330:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14353:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"14358:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14349:3:103"},"nodeType":"YulFunctionCall","src":"14349:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14343:5:103"},"nodeType":"YulFunctionCall","src":"14343:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14323:6:103"},"nodeType":"YulFunctionCall","src":"14323:39:103"},"nodeType":"YulExpressionStatement","src":"14323:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14270:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"14273:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14267:2:103"},"nodeType":"YulFunctionCall","src":"14267:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"14281:19:103","statements":[{"nodeType":"YulAssignment","src":"14283:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14292:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"14295:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14288:3:103"},"nodeType":"YulFunctionCall","src":"14288:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"14283:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"14263:3:103","statements":[]},"src":"14259:113:103"},{"body":{"nodeType":"YulBlock","src":"14398:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14411:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"14416:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14407:3:103"},"nodeType":"YulFunctionCall","src":"14407:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"14425:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14400:6:103"},"nodeType":"YulFunctionCall","src":"14400:27:103"},"nodeType":"YulExpressionStatement","src":"14400:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14387:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"14390:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14384:2:103"},"nodeType":"YulFunctionCall","src":"14384:13:103"},"nodeType":"YulIf","src":"14381:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"14208:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"14213:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"14218:6:103","type":""}],"src":"14177:258:103"},{"body":{"nodeType":"YulBlock","src":"14495:325:103","statements":[{"nodeType":"YulAssignment","src":"14505:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14519:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"14525:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14515:3:103"},"nodeType":"YulFunctionCall","src":"14515:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14505:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"14536:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14566:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"14572:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14562:3:103"},"nodeType":"YulFunctionCall","src":"14562:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"14540:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"14613:31:103","statements":[{"nodeType":"YulAssignment","src":"14615:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14629:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"14637:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14625:3:103"},"nodeType":"YulFunctionCall","src":"14625:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14615:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14593:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14586:6:103"},"nodeType":"YulFunctionCall","src":"14586:26:103"},"nodeType":"YulIf","src":"14583:2:103"},{"body":{"nodeType":"YulBlock","src":"14703:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14724:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14731:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14736:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14727:3:103"},"nodeType":"YulFunctionCall","src":"14727:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14717:6:103"},"nodeType":"YulFunctionCall","src":"14717:31:103"},"nodeType":"YulExpressionStatement","src":"14717:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14768:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14771:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14761:6:103"},"nodeType":"YulFunctionCall","src":"14761:15:103"},"nodeType":"YulExpressionStatement","src":"14761:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14796:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14799:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14789:6:103"},"nodeType":"YulFunctionCall","src":"14789:15:103"},"nodeType":"YulExpressionStatement","src":"14789:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14659:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14682:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"14690:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14679:2:103"},"nodeType":"YulFunctionCall","src":"14679:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14656:2:103"},"nodeType":"YulFunctionCall","src":"14656:38:103"},"nodeType":"YulIf","src":"14653:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"14475:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14484:6:103","type":""}],"src":"14440:380:103"},{"body":{"nodeType":"YulBlock","src":"14870:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"14934:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14943:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14946:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14936:6:103"},"nodeType":"YulFunctionCall","src":"14936:12:103"},"nodeType":"YulExpressionStatement","src":"14936:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14893:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14904:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14919:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14924:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14915:3:103"},"nodeType":"YulFunctionCall","src":"14915:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14928:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14911:3:103"},"nodeType":"YulFunctionCall","src":"14911:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14900:3:103"},"nodeType":"YulFunctionCall","src":"14900:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14890:2:103"},"nodeType":"YulFunctionCall","src":"14890:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14883:6:103"},"nodeType":"YulFunctionCall","src":"14883:50:103"},"nodeType":"YulIf","src":"14880:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14859:5:103","type":""}],"src":"14825:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32t_bytes_calldata_ptrt_string_calldata_ptrt_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let value := calldataload(add(headStart, 96))\n validator_revert_address(value)\n value5 := value\n value6 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 3)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_stringliteral(pos) -> end\n {\n mstore(pos, \"(uint256,bytes32,bytes)\")\n end := add(pos, 23)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_string_storage_t_stringliteral_69789469aba347ea3006333936a8384eb77a6c0f6b3710119647786d588df94c__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let ret := end\n let slotValue := sload(value0)\n let length := end\n length := div(slotValue, 2)\n let _1 := 1\n let outOfPlaceEncoding := and(slotValue, _1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n let _2 := 32\n if eq(outOfPlaceEncoding, lt(length, _2))\n {\n mstore(end, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(end, 0x24)\n }\n switch outOfPlaceEncoding\n case 0 {\n mstore(pos, and(slotValue, not(255)))\n ret := add(pos, length)\n }\n case 1 {\n let dataPos := array_dataslot_string_storage(value0)\n let i := end\n for { } lt(i, length) { i := add(i, _2) }\n {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, _1)\n }\n ret := add(pos, length)\n }\n end := abi_encode_stringliteral(ret)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_address_t_bool__to_t_bytes32_t_uint256_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1effa1aafe7739318f52d8e7636d12568aefa8c489aaee728a51f66427ce3363__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:QUC-042:ORACLE_NOT_ACTIVE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_37bddfa86d88e5af8c7eccd224ca962e184394ace054b6f62464e40201ad9c08__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 45)\n mstore(add(headStart, 64), \"ERROR:QUC-010:CALLBACK_ADDRESS_I\")\n mstore(add(headStart, 96), \"S_NOT_PRODUCT\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4390b2a7de90bd955cc7d20e4d8918121e4301d01ba56c2d0318a2494be55fcb__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:QUC-041:COMPONENT_NOT_ORAC\")\n mstore(add(headStart, 96), \"LE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_774daad1cbf28a623c1273bcf077e47a159a045263db1d1d1a81c1c69daed74c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:QUC-030:REQUEST_ID_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_79c2419dd3836252a491e5fd1368db9c3868a0e1853d9bbe27ed6a8000a2b07d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:QUC-003:ORACLE_NOT_RESPONS\")\n mstore(add(headStart, 96), \"IBLE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_988f80e03fa488be4da0a6e0b159af5f52d5707b3995562df14a79cc9e3d2889__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:QUC-040:REQUEST_ID_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:CRC-002:NOT_ON_STORAGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b09558737285c53e42f0cbb18d7098ce341b428cc4a700a20d5110ababfaf7a6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:CRC-001:NOT_ORACLE_SERVICE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d2f7aff00631a903459db5e8faa0ab3073999f8b7c86b53a3df8a9ddbd8d8350__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:QUC-020:PRODUCT_CALLBACK_U\")\n mstore(add(headStart, 96), \"NSUCCESSFUL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:CRC-003:NOT_PRODUCT_SERVIC\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f9911dbe79685a0b4bf01426459429095d797386123a16b8f4eb178ae8660c1c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:QUC-002:REQUEST_ID_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_bytes_calldata_ptr__to_t_uint256_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes_calldata(value2, value3, add(headStart, 96))\n }\n function abi_encode_tuple_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes_calldata(value1, value2, add(headStart, 64))\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(data, ptr)\n data := keccak256(data, 0x20)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100625760003560e01c80632c933f221461006757806338aec7cc1461008c57806340e58ee5146100945780639af8c4ba146100a95780639b04ed30146100bc578063c4d66de8146100cf575b600080fd5b61007a61007536600461149c565b6100e2565b60405190815260200160405180910390f35b60035461007a565b6100a76100a236600461156e565b61044d565b005b6100a76100b736600461159e565b61063a565b61007a6100ca36600461156e565b610b9f565b6100a76100dd36600461143d565b610dac565b600064517565727960d81b6100f681610f2a565b6001600160a01b0316306001600160a01b03161461015b5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f524147450000000060448201526064015b60405180910390fd5b6101756d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146101a55760405162461bcd60e51b815260040161015290611706565b600254604051632b1c7f7360e01b81526001600160a01b0386811660048301526000921690632b1c7f739060240160206040518083038186803b1580156101eb57600080fd5b505afa1580156101ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102239190611586565b600254604051630e48080360e21b8152600481018390529192506001600160a01b031690633920200c9060240160206040518083038186803b15801561026857600080fd5b505afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a0919061147c565b6103025760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a5155432d3031303a43414c4c4241434b5f414444524553535f4960448201526c14d7d393d517d41493d11550d5609a1b6064820152608401610152565b600380546001810180835560008381529195509091908590811061033657634e487b7160e01b600052603260045260246000fd5b600091825260209091206006909102018b81559050610359600482018b8b61131e565b5061036860038201898961131e565b506002810180546001600160a01b0319166001600160a01b0388161790556001810185905542600582015561039c85611012565b6001600160a01b031663ffc79065858c8c6040518463ffffffff1660e01b81526004016103cb93929190611771565b600060405180830381600087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b5050604080518e8152602081018890529081018890527f97e3e6ac41333a7d6e86bf69ab3f55df1e83baf81430f285faf030974809c3b19250606001905060405180910390a1505050979650505050505050565b64517565727960d81b61045f81610f2a565b6001600160a01b0316306001600160a01b0316146104bf5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f52414745000000006044820152606401610152565b6104d96d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146105095760405162461bcd60e51b815260040161015290611706565b60006003838154811061052c57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201905060008160050154116105905760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3033303a524551554553545f49445f494e56414c49446044820152606401610152565b600383815481106105b157634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b0319169055906105ea60038301826113a2565b6105f86004830160006113a2565b506000600591909101556040518381527f055856e72174cf1dcf5c10f8a1788a179a6e5c272427edc5ccc7f60becfec6899060200160405180910390a1505050565b6106536c4f7261636c655365727669636560981b610f2a565b6001600160a01b0316336001600160a01b0316146106b35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4352432d3030313a4e4f545f4f5241434c455f534552564943456044820152606401610152565b83836000600383815481106106d857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610744906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610770906117c4565b80156107bd5780601f10610792576101008083540402835291602001916107bd565b820191906000526020600020905b8154815290600101906020018083116107a057829003601f168201915b505050505081526020016004820180546107d6906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610802906117c4565b801561084f5780601f106108245761010080835404028352916020019161084f565b820191906000526020600020905b81548152906001019060200180831161083257829003601f168201915b50505050508152602001600582015481525050905060008160a00151116108b85760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3030323a524551554553545f49445f494e56414c49446044820152606401610152565b602081015160006108c882611012565b9050836001600160a01b0316816001600160a01b0316146109375760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5155432d3030333a4f5241434c455f4e4f545f524553504f4e5360448201526349424c4560e01b6064820152608401610152565b600060038a8154811061095a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602019050600081600301604051602001610980919061163e565b604051602081830303815290604052905060008260000154905060008360020160009054906101000a90046001600160a01b03166001600160a01b0316838e848e8e6040516024016109d59493929190611747565b60408051601f1981840301815290829052916109f091611622565b60408051918290039091206020830180516001600160e01b03166001600160e01b031990921691909117905251610a279190611622565b6000604051808303816000865af19150503d8060008114610a64576040519150601f19603f3d011682016040523d82523d6000602084013e610a69565b606091505b5050905080610ace5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a5155432d3032303a50524f445543545f43414c4c4241434b5f5560448201526a1394d550d0d154d4d1955360aa1b6064820152608401610152565b60038d81548110610aef57634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b031916905590610b2860038301826113a2565b610b366004830160006113a2565b5060006005919091015560408051838152602081018f90526001600160a01b038e1681830152821515606082015290517f4839cd12918767a83a4ef7b6a1abd1878ddfd2598fae0ad3b455c863cc177ad99181900360800190a150505050505050505050505050565b60008060038381548110610bc357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610c2f906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5b906117c4565b8015610ca85780601f10610c7d57610100808354040283529160200191610ca8565b820191906000526020600020905b815481529060010190602001808311610c8b57829003601f168201915b50505050508152602001600482018054610cc1906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906117c4565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b50505050508152602001600582015481525050905060008160a0015111610da35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3034303a524551554553545f49445f494e56414c49446044820152606401610152565b5190505b919050565b600054610100900460ff1615808015610dcc5750600054600160ff909116105b80610de65750303b158015610de6575060005460ff166001145b610e495760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610152565b6000805460ff191660011790558015610e6c576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610e96600090565b6541636365737360d01b14610ed857610eb76541636365737360d01b610f2a565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610ee061127c565b8015610f26576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611460565b90506001600160a01b038116610da75760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610152565b6002546040516309e4fb4360e31b81526004810183905260009182916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561105b57600080fd5b505afa15801561106f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110939190611460565b91508190506000600254604051636ea8e43560e11b8152600481018690526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156110de57600080fd5b505afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611116919061154f565b600281111561113557634e487b7160e01b600052602160045260246000fd5b1461118d5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5155432d3034313a434f4d504f4e454e545f4e4f545f4f5241436044820152614c4560f01b6064820152608401610152565b600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156111d257600080fd5b505afa1580156111e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120a9190611530565b600681111561122957634e487b7160e01b600052602160045260246000fd5b146112765760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5155432d3034323a4f5241434c455f4e4f545f414354495645006044820152606401610152565b50919050565b600054610100900460ff166112e75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610152565b6112fc6810dbdb5c1bdb995b9d60ba1b610f2a565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b82805461132a906117c4565b90600052602060002090601f01602090048101928261134c5760008555611392565b82601f106113655782800160ff19823516178555611392565b82800160010185558215611392579182015b82811115611392578235825591602001919060010190611377565b5061139e9291506113e1565b5090565b5080546113ae906117c4565b6000825580601f106113c057506113de565b601f0160209004906000526020600020908101906113de91906113e1565b50565b5b8082111561139e57600081556001016113e2565b60008083601f840112611407578182fd5b50813567ffffffffffffffff81111561141e578182fd5b60208301915083602082850101111561143657600080fd5b9250929050565b60006020828403121561144e578081fd5b8135611459816117f9565b9392505050565b600060208284031215611471578081fd5b8151611459816117f9565b60006020828403121561148d578081fd5b81518015158114611459578182fd5b600080600080600080600060a0888a0312156114b6578283fd5b87359650602088013567ffffffffffffffff808211156114d4578485fd5b6114e08b838c016113f6565b909850965060408a01359150808211156114f8578485fd5b506115058a828b016113f6565b9095509350506060880135611519816117f9565b809250506080880135905092959891949750929550565b600060208284031215611541578081fd5b815160078110611459578182fd5b600060208284031215611560578081fd5b815160038110611459578182fd5b60006020828403121561157f578081fd5b5035919050565b600060208284031215611597578081fd5b5051919050565b600080600080606085870312156115b3578384fd5b8435935060208501356115c5816117f9565b9250604085013567ffffffffffffffff8111156115e0578283fd5b6115ec878288016113f6565b95989497509550505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251611634818460208701611794565b9190910192915050565b815460009081906002810460018083168061165a57607f831692505b602080841082141561167a57634e487b7160e01b87526022600452602487fd5b81801561168e576001811461169f576116cb565b60ff198616895284890196506116cb565b60008a815260209020885b868110156116c35781548b8201529085019083016116aa565b505084890196505b5050505050506116fe817f2875696e743235362c627974657333322c627974657329000000000000000000815260170190565b949350505050565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b6000858252846020830152606060408301526117676060830184866115f8565b9695505050505050565b60008482526040602083015261178b6040830184866115f8565b95945050505050565b60005b838110156117af578181015183820152602001611797565b838111156117be576000848401525b50505050565b6002810460018216806117d857607f821691505b6020821081141561127657634e487b7160e01b600052602260045260246000fd5b6001600160a01b03811681146113de57600080fdfea264697066735822122041ed1675bdc184dac22d7618a0614577d9e87d9f88a1e8f5c79158a16aa26dc164736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x62 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2C933F22 EQ PUSH2 0x67 JUMPI DUP1 PUSH4 0x38AEC7CC EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x94 JUMPI DUP1 PUSH4 0x9AF8C4BA EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0x9B04ED30 EQ PUSH2 0xBC JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xCF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7A PUSH2 0x75 CALLDATASIZE PUSH1 0x4 PUSH2 0x149C JUMP JUMPDEST PUSH2 0xE2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x3 SLOAD PUSH2 0x7A JUMP JUMPDEST PUSH2 0xA7 PUSH2 0xA2 CALLDATASIZE PUSH1 0x4 PUSH2 0x156E JUMP JUMPDEST PUSH2 0x44D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA7 PUSH2 0xB7 CALLDATASIZE PUSH1 0x4 PUSH2 0x159E JUMP JUMPDEST PUSH2 0x63A JUMP JUMPDEST PUSH2 0x7A PUSH2 0xCA CALLDATASIZE PUSH1 0x4 PUSH2 0x156E JUMP JUMPDEST PUSH2 0xB9F JUMP JUMPDEST PUSH2 0xA7 PUSH2 0xDD CALLDATASIZE PUSH1 0x4 PUSH2 0x143D JUMP JUMPDEST PUSH2 0xDAC JUMP JUMPDEST PUSH1 0x0 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0xF6 DUP2 PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x15B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x175 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x152 SWAP1 PUSH2 0x1706 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x1586 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x268 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A0 SWAP2 SWAP1 PUSH2 0x147C JUMP JUMPDEST PUSH2 0x302 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3031303A43414C4C4241434B5F414444524553535F49 PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x14D7D393D517D41493D11550D5 PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP1 DUP4 SSTORE PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 SWAP6 POP SWAP1 SWAP2 SWAP1 DUP6 SWAP1 DUP2 LT PUSH2 0x336 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP12 DUP2 SSTORE SWAP1 POP PUSH2 0x359 PUSH1 0x4 DUP3 ADD DUP12 DUP12 PUSH2 0x131E JUMP JUMPDEST POP PUSH2 0x368 PUSH1 0x3 DUP3 ADD DUP10 DUP10 PUSH2 0x131E JUMP JUMPDEST POP PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE PUSH1 0x1 DUP2 ADD DUP6 SWAP1 SSTORE TIMESTAMP PUSH1 0x5 DUP3 ADD SSTORE PUSH2 0x39C DUP6 PUSH2 0x1012 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xFFC79065 DUP6 DUP13 DUP13 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1771 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP15 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP9 SWAP1 MSTORE SWAP1 DUP2 ADD DUP9 SWAP1 MSTORE PUSH32 0x97E3E6AC41333A7D6E86BF69AB3F55DF1E83BAF81430F285FAF030974809C3B1 SWAP3 POP PUSH1 0x60 ADD SWAP1 POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x45F DUP2 PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4BF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH2 0x4D9 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x509 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x152 SWAP1 PUSH2 0x1706 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x52C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x5 ADD SLOAD GT PUSH2 0x590 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3033303A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x5B1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE SWAP1 PUSH2 0x5EA PUSH1 0x3 DUP4 ADD DUP3 PUSH2 0x13A2 JUMP JUMPDEST PUSH2 0x5F8 PUSH1 0x4 DUP4 ADD PUSH1 0x0 PUSH2 0x13A2 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x5 SWAP2 SWAP1 SWAP2 ADD SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE PUSH32 0x55856E72174CF1DCF5C10F8A1788A179A6E5C272427EDC5CCC7F60BECFEC689 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x653 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F4F5241434C455F53455256494345 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST DUP4 DUP4 PUSH1 0x0 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x6D8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x744 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x770 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x7BD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x792 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x7BD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x7A0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0x7D6 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x802 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x84F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x824 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x84F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x832 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xA0 ADD MLOAD GT PUSH2 0x8B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3030323A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x0 PUSH2 0x8C8 DUP3 PUSH2 0x1012 JUMP JUMPDEST SWAP1 POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x937 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3030333A4F5241434C455F4E4F545F524553504F4E53 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x49424C45 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP11 DUP2 SLOAD DUP2 LT PUSH2 0x95A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 ADD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x980 SWAP2 SWAP1 PUSH2 0x163E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD SLOAD SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x2 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 DUP15 DUP5 DUP15 DUP15 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x9D5 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1747 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP1 DUP3 SWAP1 MSTORE SWAP2 PUSH2 0x9F0 SWAP2 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 SWAP1 SUB SWAP1 SWAP2 KECCAK256 PUSH1 0x20 DUP4 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE MLOAD PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x1622 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xA64 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0xACE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3032303A50524F445543545F43414C4C4241434B5F55 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x1394D550D0D154D4D19553 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x3 DUP14 DUP2 SLOAD DUP2 LT PUSH2 0xAEF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 KECCAK256 PUSH1 0x6 SWAP1 SWAP2 MUL ADD DUP2 DUP2 SSTORE PUSH1 0x1 DUP2 ADD DUP3 SWAP1 SSTORE PUSH1 0x2 DUP2 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE SWAP1 PUSH2 0xB28 PUSH1 0x3 DUP4 ADD DUP3 PUSH2 0x13A2 JUMP JUMPDEST PUSH2 0xB36 PUSH1 0x4 DUP4 ADD PUSH1 0x0 PUSH2 0x13A2 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x5 SWAP2 SWAP1 SWAP2 ADD SSTORE PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP15 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x4839CD12918767A83A4EF7B6A1ABD1878DDFD2598FAE0AD3B455C863CC177AD9 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x3 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xBC3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x6 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0xC2F SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xC5B SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCA8 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xC7D JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xCA8 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xC8B JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD DUP1 SLOAD PUSH2 0xCC1 SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xCED SWAP1 PUSH2 0x17C4 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD3A JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xD0F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD3A JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xD1D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0xA0 ADD MLOAD GT PUSH2 0xDA3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034303A524551554553545F49445F494E56414C4944 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST MLOAD SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xDCC JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xDE6 JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDE6 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xE49 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xE6C JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xE96 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xED8 JUMPI PUSH2 0xEB7 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xEE0 PUSH2 0x127C JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF26 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFAC SWAP2 SWAP1 PUSH2 0x1460 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xDA7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x105B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x106F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1093 SWAP2 SWAP1 PUSH2 0x1460 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1116 SWAP2 SWAP1 PUSH2 0x154F JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1135 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x118D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034313A434F4D504F4E454E545F4E4F545F4F524143 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4C45 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x120A SWAP2 SWAP1 PUSH2 0x1530 JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1229 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1276 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5155432D3034323A4F5241434C455F4E4F545F41435449564500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x152 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x12E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x152 JUMP JUMPDEST PUSH2 0x12FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0xF2A JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x132A SWAP1 PUSH2 0x17C4 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x134C JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x1392 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x1365 JUMPI DUP3 DUP1 ADD PUSH1 0xFF NOT DUP3 CALLDATALOAD AND OR DUP6 SSTORE PUSH2 0x1392 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x1392 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x1392 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x1377 JUMP JUMPDEST POP PUSH2 0x139E SWAP3 SWAP2 POP PUSH2 0x13E1 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x13AE SWAP1 PUSH2 0x17C4 JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x13C0 JUMPI POP PUSH2 0x13DE JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x13DE SWAP2 SWAP1 PUSH2 0x13E1 JUMP JUMPDEST POP JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x139E JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x13E2 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1407 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x141E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x144E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1459 DUP2 PUSH2 0x17F9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1471 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1459 DUP2 PUSH2 0x17F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x148D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x14B6 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x14D4 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x14E0 DUP12 DUP4 DUP13 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP1 SWAP9 POP SWAP7 POP PUSH1 0x40 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x14F8 JUMPI DUP5 DUP6 REVERT JUMPDEST POP PUSH2 0x1505 DUP11 DUP3 DUP12 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH2 0x1519 DUP2 PUSH2 0x17F9 JUMP JUMPDEST DUP1 SWAP3 POP POP PUSH1 0x80 DUP9 ADD CALLDATALOAD SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP2 SWAP5 SWAP8 POP SWAP3 SWAP6 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1541 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x1459 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x157F JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1597 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x15B3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x15C5 DUP2 PUSH2 0x17F9 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x15E0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x15EC DUP8 DUP3 DUP9 ADD PUSH2 0x13F6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1634 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x1794 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP1 DUP4 AND DUP1 PUSH2 0x165A JUMPI PUSH1 0x7F DUP4 AND SWAP3 POP JUMPDEST PUSH1 0x20 DUP1 DUP5 LT DUP3 EQ ISZERO PUSH2 0x167A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP8 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 DUP8 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x168E JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x169F JUMPI PUSH2 0x16CB JUMP JUMPDEST PUSH1 0xFF NOT DUP7 AND DUP10 MSTORE DUP5 DUP10 ADD SWAP7 POP PUSH2 0x16CB JUMP JUMPDEST PUSH1 0x0 DUP11 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 DUP9 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x16C3 JUMPI DUP2 SLOAD DUP12 DUP3 ADD MSTORE SWAP1 DUP6 ADD SWAP1 DUP4 ADD PUSH2 0x16AA JUMP JUMPDEST POP POP DUP5 DUP10 ADD SWAP7 POP JUMPDEST POP POP POP POP POP POP PUSH2 0x16FE DUP2 PUSH32 0x2875696E743235362C627974657333322C627974657329000000000000000000 DUP2 MSTORE PUSH1 0x17 ADD SWAP1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1767 PUSH1 0x60 DUP4 ADD DUP5 DUP7 PUSH2 0x15F8 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE PUSH1 0x40 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x178B PUSH1 0x40 DUP4 ADD DUP5 DUP7 PUSH2 0x15F8 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x17AF JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1797 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x17BE JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x17D8 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1276 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x13DE JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 COINBASE 0xED AND PUSH22 0xBDC184DAC22D7618A0614577D9E87D9F88A1E8F5C791 PC LOG1 PUSH11 0xA26DC164736F6C63430008 MUL STOP CALLER ","sourceMap":"3274:5038:79:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4514:1203;;;;;;:::i;:::-;;:::i;:::-;;;6731:25:103;;;6719:2;6704:18;4514:1203:79;;;;;;;7699:116;7786:15;:22;7699:116;;7024:349;;;;;;:::i;:::-;;:::i;:::-;;5999:1019;;;;;;:::i;:::-;;:::i;7380:312::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;4514:1203:79:-;4802:17;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;11049:2:103;790:119:88;;;11031:21:103;11088:2;11068:18;;;11061:30;11127;11107:18;;;11100:58;11175:18;;790:119:88;;;;;;;;;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;4858:10:79::1;::::0;:50:::1;::::0;-1:-1:-1;;;4858:50:79;;-1:-1:-1;;;;;6541:32:103;;;4858:50:79::1;::::0;::::1;6523:51:103::0;4836:19:79::1;::::0;4858:10:::1;::::0;:25:::1;::::0;6496:18:103;;4858:50:79::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4939:10;::::0;:33:::1;::::0;-1:-1:-1;;;4939:33:79;;::::1;::::0;::::1;6731:25:103::0;;;4836:72:79;;-1:-1:-1;;;;;;4939:10:79::1;::::0;:20:::1;::::0;6704:18:103;;4939:33:79::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4918:125;;;::::0;-1:-1:-1;;;4918:125:79;;8690:2:103;4918:125:79::1;::::0;::::1;8672:21:103::0;8729:2;8709:18;;;8702:30;8768:34;8748:18;;;8741:62;-1:-1:-1;;;8819:18:103;;;8812:43;8872:19;;4918:125:79::1;8662:235:103::0;4918:125:79::1;5074:15;:22:::0;;5106::::1;::::0;::::1;::::0;;;-1:-1:-1;5106:22:79;;;5074;;-1:-1:-1;;;5074:15:79;:22;;5208:26;::::1;;;-1:-1:-1::0;;;5208:26:79::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;;5244:25:::0;;;5208:26;-1:-1:-1;5279:16:79::1;:8;::::0;::::1;5290:5:::0;;5279:16:::1;:::i;:::-;-1:-1:-1::0;5305:43:79::1;:22;::::0;::::1;5330:18:::0;;5305:43:::1;:::i;:::-;-1:-1:-1::0;5358:27:79::1;::::0;::::1;:53:::0;;-1:-1:-1;;;;;;5358:53:79::1;-1:-1:-1::0;;;;;5358:53:79;::::1;;::::0;;-1:-1:-1;5421:23:79;::::1;:45:::0;;;5492:15:::1;5476:13;::::0;::::1;:31:::0;5542::::1;5421:45:::0;5542:10:::1;:31::i;:::-;-1:-1:-1::0;;;;;5542:39:79::1;;5595:9;5618:5;;5542:91;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5649:61:79::1;::::0;;7401:25:103;;;7457:2;7442:18;;7435:34;;;7485:18;;;7478:34;;;5649:61:79::1;::::0;-1:-1:-1;7389:2:103;7374:18;;-1:-1:-1;5649:61:79::1;;;;;;;1129:1:88;;4514:1203:79::0;;;;;;;;;;:::o;7024:349::-;-1:-1:-1;;;828:27:88;848:6;828:19;:27::i;:::-;-1:-1:-1;;;;;811:44:88;819:4;-1:-1:-1;;;;;811:44:88;;790:119;;;;-1:-1:-1;;;790:119:88;;11049:2:103;790:119:88;;;11031:21:103;11088:2;11068:18;;;11061:30;11127;11107:18;;;11100:58;11175:18;;790:119:88;11021:178:103;790:119:88;1023:37;-1:-1:-1;;;1023:19:88;:37::i;:::-;-1:-1:-1;;;;;1007:53:88;719:10:59;-1:-1:-1;;;;;1007:53:88;;986:133;;;;-1:-1:-1;;;986:133:88;;;;;;;:::i;:::-;7134:35:79::1;7172:15;7188:9;7172:26;;;;;;-1:-1:-1::0;;;7172:26:79::1;;;;;;;;;;;;;;;;;;;7134:64;;7242:1;7216:13;:23;;;:27;7208:72;;;::::0;-1:-1:-1;;;7208:72:79;;9507:2:103;7208:72:79::1;::::0;::::1;9489:21:103::0;;;9526:18;;;9519:30;9585:34;9565:18;;;9558:62;9637:18;;7208:72:79::1;9479:182:103::0;7208:72:79::1;7297:15;7313:9;7297:26;;;;;;-1:-1:-1::0;;;7297:26:79::1;;;;;;;;;;::::0;;;::::1;::::0;;::::1;::::0;;::::1;;7290:33:::0;;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;7290:33:79::1;::::0;;7297:26;7290:33:::1;;::::0;::::1;7297:26:::0;7290:33:::1;:::i;:::-;;;::::0;::::1;;;:::i;:::-;-1:-1:-1::0;7290:33:79::1;;::::0;;;::::1;::::0;7338:28:::1;::::0;6731:25:103;;;7338:28:79::1;::::0;6719:2:103;6704:18;7338:28:79::1;;;;;;;1129:1:88;7024:349:79::0;;:::o;5999:1019::-;3503:36;-1:-1:-1;;;3503:19:79;:36::i;:::-;-1:-1:-1;;;;;3487:52:79;719:10:59;-1:-1:-1;;;;;3487:52:79;;3466:131;;;;-1:-1:-1;;;3466:131:79;;11406:2:103;3466:131:79;;;11388:21:103;;;11425:18;;;11418:30;11484:34;11464:18;;;11457:62;11536:18;;3466:131:79;11378:182:103;3466:131:79;6190:9:::1;6201;3700:34;3737:15;3753:9;3737:26;;;;;;-1:-1:-1::0;;;3737:26:79::1;;;;;;;;;;;;;;;;;;;3700:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;3700:63:79::1;-1:-1:-1::0;;;;;3700:63:79::1;-1:-1:-1::0;;;;;3700:63:79::1;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;3821:1;3795:13;:23;;;:27;3774:106;;;::::0;-1:-1:-1;;;3774:106:79;;12993:2:103;3774:106:79::1;::::0;::::1;12975:21:103::0;;;13012:18;;;13005:30;13071:34;13051:18;;;13044:62;13123:18;;3774:106:79::1;12965:182:103::0;3774:106:79::1;3910:33;::::0;::::1;::::0;3891:16:::1;3985:20;3910:33:::0;3985:10:::1;:20::i;:::-;3953:53;;4054:9;-1:-1:-1::0;;;;;4037:26:79::1;:13;-1:-1:-1::0;;;;;4037:26:79::1;;4016:109;;;::::0;-1:-1:-1;;;4016:109:79;;9868:2:103;4016:109:79::1;::::0;::::1;9850:21:103::0;9907:2;9887:18;;;9880:30;9946:34;9926:18;;;9919:62;-1:-1:-1;;;9997:18:103;;;9990:34;10041:19;;4016:109:79::1;9840:226:103::0;4016:109:79::1;6227:25:::2;6255:15;6271:9;6255:26;;;;;;-1:-1:-1::0;;;6255:26:79::2;;;;;;;;;;;;;;;;;;;6227:54;;6291:31;6379:3;:22;;6345:113;;;;;;;;:::i;:::-;;;;;;;;;;;;;6291:168;;6469:17;6489:3;:13;;;6469:33;;6514:12;6544:3;:27;;;;;;;;;;-1:-1:-1::0;;;;;6544:27:79::2;-1:-1:-1::0;;;;;6544:32:79::2;6639:17;6678:9;6709;6740:4;;6594:168;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;6594:168:79;;::::2;::::0;;;;;;;;::::2;::::0;::::2;:::i;:::-;;::::0;;;;;::::2;::::0;;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;6594:168:79::2;-1:-1:-1::0;;;;;;6594:168:79;;::::2;::::0;;;::::2;::::0;;6544:232;::::2;::::0;6594:168;6544:232:::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6513:263;;;6795:7;6787:63;;;::::0;-1:-1:-1;;;6787:63:79;;11767:2:103;6787:63:79::2;::::0;::::2;11749:21:103::0;11806:2;11786:18;;;11779:30;11845:34;11825:18;;;11818:62;-1:-1:-1;;;11896:18:103;;;11889:41;11947:19;;6787:63:79::2;11739:233:103::0;6787:63:79::2;6867:15;6883:9;6867:26;;;;;;-1:-1:-1::0;;;6867:26:79::2;;;;;;;;;;::::0;;;::::2;::::0;;::::2;::::0;;::::2;;6860:33:::0;;;::::2;::::0;::::2;::::0;;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;;6860:33:79::2;::::0;;6867:26;6860:33:::2;;::::0;::::2;6867:26:::0;6860:33:::2;:::i;:::-;;;::::0;::::2;;;:::i;:::-;-1:-1:-1::0;6860:33:79::2;;::::0;;;::::2;::::0;6951:60:::2;::::0;;6992:25:103;;;7048:2;7033:18;;7026:34;;;-1:-1:-1;;;;;7096:32:103;;7076:18;;;7069:60;7172:14;;7165:22;7160:2;7145:18;;7138:50;6951:60:79;;::::2;::::0;;;;6979:3:103;6951:60:79;;::::2;4135:1;;;;3607::::1;;;;;5999:1019:::0;;;;:::o;7380:312::-;7467:17;7500:34;7537:15;7553:9;7537:26;;;;;;-1:-1:-1;;;7537:26:79;;;;;;;;;;;;;;;;;;;7500:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7500:63:79;-1:-1:-1;;;;;7500:63:79;-1:-1:-1;;;;;7500:63:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7607:1;7581:13;:23;;;:27;7573:72;;;;-1:-1:-1;;;7573:72:79;;10688:2:103;7573:72:79;;;10670:21:103;;;10707:18;;;10700:30;10766:34;10746:18;;;10739:62;10818:18;;7573:72:79;10660:182:103;7573:72:79;7662:23;;-1:-1:-1;7380:312:79;;;;:::o;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;10273:2:103;3146:190:47;;;10255:21:103;10312:2;10292:18;;;10285:30;10351:34;10331:18;;;10324:62;-1:-1:-1;;;10402:18:103;;;10395:44;10456:19;;3146:190:47;10245:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;7675:36:103;;3531:14:47;;7663:2:103;7648:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;1530:293::-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;6731:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;6704:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;7924:2:103;1703:113:88;;;7906:21:103;7963:2;7943:18;;;7936:30;8002:34;7982:18;;;7975:62;-1:-1:-1;;;8053:18:103;;;8046:35;8098:19;;1703:113:88;7896:227:103;7821:489:79;7919:10;;:27;;-1:-1:-1;;;7919:27:79;;;;;6731:25:103;;;7876:14:79;;;;-1:-1:-1;;;;;7919:10:79;;;;:23;;6704:18:103;;7919:27:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7902:44;-1:-1:-1;7902:44:79;;-1:-1:-1;8053:31:79;8018:10;;:31;;-1:-1:-1;;;8018:31:79;;;;;6731:25:103;;;-1:-1:-1;;;;;8018:10:79;;;;:27;;6704:18:103;;8018:31:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:66;;;;;;-1:-1:-1;;;8018:66:79;;;;;;;;;;7997:148;;;;-1:-1:-1;;;7997:148:79;;9104:2:103;7997:148:79;;;9086:21:103;9143:2;9123:18;;;9116:30;9182:34;9162:18;;;9155:62;-1:-1:-1;;;9233:18:103;;;9226:32;9275:19;;7997:148:79;9076:224:103;7997:148:79;8177:10;;:32;;-1:-1:-1;;;8177:32:79;;;;;6731:25:103;;;8213:32:79;;-1:-1:-1;;;;;8177:10:79;;:28;;6704:18:103;;8177:32:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:68;;;;;;-1:-1:-1;;;8177:68:79;;;;;;;;;;8156:147;;;;-1:-1:-1;;;8156:147:79;;8330:2:103;8156:147:79;;;8312:21:103;8369:2;8349:18;;;8342:30;8408:33;8388:18;;;8381:61;8459:18;;8156:147:79;8302:181:103;8156:147:79;7821:489;;;;:::o;4149:146::-;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;12179:2:103;4880:69:47;;;12161:21:103;12218:2;12198:18;;;12191:30;12257:34;12237:18;;;12230:62;-1:-1:-1;;;12308:18:103;;;12301:41;12359:19;;4880:69:47;12151:233:103;4880:69:47;4255:32:79::1;-1:-1:-1::0;;;4255:19:79::1;:32::i;:::-;4222:10;:66:::0;;-1:-1:-1;;;;;;4222:66:79::1;-1:-1:-1::0;;;;;4222:66:79;;;::::1;::::0;;;::::1;::::0;;4149:146::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:375:103;;;129:3;122:4;114:6;110:17;106:27;96:2;;154:8;144;137:26;96:2;-1:-1:-1;184:20:103;;227:18;216:30;;213:2;;;266:8;256;249:26;213:2;310:4;302:6;298:17;286:29;;362:3;355:4;346:6;338;334:19;330:30;327:39;324:2;;;379:1;376;369:12;324:2;86:303;;;;;:::o;394:257::-;;506:2;494:9;485:7;481:23;477:32;474:2;;;527:6;519;512:22;474:2;571:9;558:23;590:31;615:5;590:31;:::i;:::-;640:5;464:187;-1:-1:-1;;;464:187:103:o;656:261::-;;779:2;767:9;758:7;754:23;750:32;747:2;;;800:6;792;785:22;747:2;837:9;831:16;856:31;881:5;856:31;:::i;922:297::-;;1042:2;1030:9;1021:7;1017:23;1013:32;1010:2;;;1063:6;1055;1048:22;1010:2;1100:9;1094:16;1153:5;1146:13;1139:21;1132:5;1129:32;1119:2;;1180:6;1172;1165:22;1224:1021;;;;;;;;1443:3;1431:9;1422:7;1418:23;1414:33;1411:2;;;1465:6;1457;1450:22;1411:2;1506:9;1493:23;1483:33;;1567:2;1556:9;1552:18;1539:32;1590:18;1631:2;1623:6;1620:14;1617:2;;;1652:6;1644;1637:22;1617:2;1696:58;1746:7;1737:6;1726:9;1722:22;1696:58;:::i;:::-;1773:8;;-1:-1:-1;1670:84:103;-1:-1:-1;1861:2:103;1846:18;;1833:32;;-1:-1:-1;1877:16:103;;;1874:2;;;1911:6;1903;1896:22;1874:2;;1955:60;2007:7;1996:8;1985:9;1981:24;1955:60;:::i;:::-;2034:8;;-1:-1:-1;1929:86:103;-1:-1:-1;;2119:2:103;2104:18;;2091:32;2132:31;2091:32;2132:31;:::i;:::-;2182:5;2172:15;;;2234:3;2223:9;2219:19;2206:33;2196:43;;1401:844;;;;;;;;;;:::o;2535:299::-;;2677:2;2665:9;2656:7;2652:23;2648:32;2645:2;;;2698:6;2690;2683:22;2645:2;2735:9;2729:16;2774:1;2767:5;2764:12;2754:2;;2795:6;2787;2780:22;2839:298;;2980:2;2968:9;2959:7;2955:23;2951:32;2948:2;;;3001:6;2993;2986:22;2948:2;3038:9;3032:16;3077:1;3070:5;3067:12;3057:2;;3098:6;3090;3083:22;3142:190;;3254:2;3242:9;3233:7;3229:23;3225:32;3222:2;;;3275:6;3267;3260:22;3222:2;-1:-1:-1;3303:23:103;;3212:120;-1:-1:-1;3212:120:103:o;3337:194::-;;3460:2;3448:9;3439:7;3435:23;3431:32;3428:2;;;3481:6;3473;3466:22;3428:2;-1:-1:-1;3509:16:103;;3418:113;-1:-1:-1;3418:113:103:o;3536:632::-;;;;;3701:2;3689:9;3680:7;3676:23;3672:32;3669:2;;;3722:6;3714;3707:22;3669:2;3763:9;3750:23;3740:33;;3823:2;3812:9;3808:18;3795:32;3836:31;3861:5;3836:31;:::i;:::-;3886:5;-1:-1:-1;3942:2:103;3927:18;;3914:32;3969:18;3958:30;;3955:2;;;4006:6;3998;3991:22;3955:2;4050:58;4100:7;4091:6;4080:9;4076:22;4050:58;:::i;:::-;3659:509;;;;-1:-1:-1;4127:8:103;-1:-1:-1;;;;3659:509:103:o;4173:268::-;;4261:6;4256:3;4249:19;4313:6;4306:5;4299:4;4294:3;4290:14;4277:43;4365:3;4358:4;4349:6;4344:3;4340:16;4336:27;4329:40;4430:4;4423:2;4419:7;4414:2;4406:6;4402:15;4398:29;4393:3;4389:39;4385:50;4378:57;;4239:202;;;;;:::o;4583:274::-;;4750:6;4744:13;4766:53;4812:6;4807:3;4800:4;4792:6;4788:17;4766:53;:::i;:::-;4835:16;;;;;4720:137;-1:-1:-1;;4720:137:103:o;5143:1229::-;5430:13;;5143:1229;;;;5503:1;5488:17;;5524:1;5560:18;;;;5587:2;;5641:4;5633:6;5629:17;5619:27;;5587:2;5667;5715;5707:6;5704:14;5684:18;5681:38;5678:2;;;-1:-1:-1;;;5742:33:103;;5798:4;5795:1;5788:15;5828:4;5749:3;5816:17;5678:2;5859:18;5886:104;;;;6004:1;5999:322;;;;5852:469;;5886:104;-1:-1:-1;;5919:24:103;;5907:37;;5964:16;;;;-1:-1:-1;5886:104:103;;5999:322;14045:127;14111:17;;;14161:4;14145:21;;6094:3;6110:165;6124:6;6121:1;6118:13;6110:165;;;6202:14;;6189:11;;;6182:35;6245:16;;;;6139:10;;6110:165;;;6114:3;;6304:6;6299:3;6295:16;6288:23;;5852:469;;;;;;;6337:29;6362:3;4518:25;4506:38;;4569:2;4560:12;;4496:82;6337:29;6330:36;5380:992;-1:-1:-1;;;;5380:992:103:o;12389:397::-;12591:2;12573:21;;;12630:2;12610:18;;;12603:30;12669:34;12664:2;12649:18;;12642:62;-1:-1:-1;;;12735:2:103;12720:18;;12713:31;12776:3;12761:19;;12563:223::o;13334:386::-;;13547:6;13536:9;13529:25;13590:6;13585:2;13574:9;13570:18;13563:34;13633:2;13628;13617:9;13613:18;13606:30;13653:61;13710:2;13699:9;13695:18;13687:6;13679;13653:61;:::i;:::-;13645:69;13519:201;-1:-1:-1;;;;;;13519:201:103:o;13725:315::-;;13910:6;13899:9;13892:25;13953:2;13948;13937:9;13933:18;13926:30;13973:61;14030:2;14019:9;14015:18;14007:6;13999;13973:61;:::i;:::-;13965:69;13882:158;-1:-1:-1;;;;;13882:158:103:o;14177:258::-;14249:1;14259:113;14273:6;14270:1;14267:13;14259:113;;;14349:11;;;14343:18;14330:11;;;14323:39;14295:2;14288:10;14259:113;;;14390:6;14387:1;14384:13;14381:2;;;14425:1;14416:6;14411:3;14407:16;14400:27;14381:2;;14230:205;;;:::o;14440:380::-;14525:1;14515:12;;14572:1;14562:12;;;14583:2;;14637:4;14629:6;14625:17;14615:27;;14583:2;14690;14682:6;14679:14;14659:18;14656:38;14653:2;;;14736:10;14731:3;14727:20;14724:1;14717:31;14771:4;14768:1;14761:15;14799:4;14796:1;14789:15;14825:131;-1:-1:-1;;;;;14900:31:103;;14890:42;;14880:2;;14946:1;14943;14936:12"},"methodIdentifiers":{"cancel(uint256)":"40e58ee5","getOracleRequestCount()":"38aec7cc","getProcessId(uint256)":"9b04ed30","initialize(address)":"c4d66de8","request(bytes32,bytes,string,address,uint256)":"2c933f22","respond(uint256,address,bytes)":"9af8c4ba"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"LogOracleCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"LogOracleRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"responder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"LogOracleResponded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleRequestCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"getProcessId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"callbackMethodName\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"callbackContractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"responsibleOracleId\",\"type\":\"uint256\"}],\"name\":\"request\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"responder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"respond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract implements the \\\"IQuery\\\" interface and extends the \\\"CoreController\\\" contract. The contract imports several external contracts from the \\\"etherisc/gif-interface\\\" repository, including \\\"IComponent.sol\\\", \\\"IOracle.sol\\\", \\\"IQuery.sol\\\", and \\\"IInstanceService.sol\\\". It also imports two local contracts, \\\"ComponentController.sol\\\" and \\\"CoreController.sol\\\". The contract defines a private variable `_component` of type \\\"ComponentController\\\" and an array `_oracleRequests` of type \\\"OracleRequest[]\\\". The contract includes two modifiers: 1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the \\\"OracleService\\\" contract address stored in the CoreController. 2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`. The contract provides the following functions: - `_afterInitialize()`: Sets the `_component` variable to the address of the \\\"ComponentController\\\" contract. It is called after contract initialization and only during the initialization phase. - `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the \\\"Query\\\" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event. - `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the \\\"OracleService\\\" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event. - `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the \\\"Query\\\" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event. - `getProcessId()`: Returns the process ID associated with a given `requestId`. - `getOracleRequestCount()`: Returns the number of oracle requests made. - `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component. The contract emits the following events: 1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID. 2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status. 3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/QueryModule.sol\":\"QueryModule\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/QueryModule.sol\":{\"keccak256\":\"0x2485de3fc1c10d0f73f1fe642b77fc3752142b00b8c0e67ea9166a04ea4a0c14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3104393b75a5e7ad6ee0059e0eff0f885a5531cdba307cf0e81da8998251b1fe\",\"dweb:/ipfs/QmahXuYLomYGj3jJeM5Z6SUXhAW6e9gwk4bi2MUQurfcEB\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/RegistryController.sol":{"RegistryController":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"LogContractDeregistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isNew","type":"bool"}],"name":"LogContractRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"}],"name":"LogReleasePrepared","type":"event"},{"inputs":[],"name":"MAX_CONTRACTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_contracts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_contractsInRelease","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"contractName","outputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contracts","outputs":[{"internalType":"uint256","name":"_numberOfContracts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregisterInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"ensureSender","outputs":[{"internalType":"bool","name":"_senderMatches","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContract","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractInRelease","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRelease","outputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_initialRelease","type":"bytes32"}],"name":"initializeRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newRelease","type":"bytes32"}],"name":"prepareRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"registerInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"release","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6116b3806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806376b707b7116100a2578063c4d66de811610071578063c4d66de814610248578063d22057a91461025b578063dc527b081461026e578063e16c7d9814610281578063f6b3e7d01461029457610116565b806376b707b71461021157806386d1a69f14610219578063893917ea14610222578063b0ef18a01461023557610116565b806348cd4cb1116100e957806348cd4cb1146101815780634a941e5e1461018a57806356bbc19d146101d657806369923515146101e95780636c0f79b61461020957610116565b80631d5e73141461011b578063208131541461013057806324042a0a146101435780632ca65a791461015e575b600080fd5b61012e61012936600461150b565b6102a7565b005b61012e61013e3660046114a3565b610368565b61014b606481565b6040519081526020015b60405180910390f35b61017161016c366004611458565b61041d565b6040519015158152602001610155565b61014b60035481565b6101be6101983660046114ea565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610155565b61012e6101e43660046114a3565b610447565b61014b6101f73660046114a3565b60056020526000908152604090205481565b61014b6105bb565b60025461014b565b61014b60025481565b61012e6102303660046114a3565b6105da565b6101be6102433660046114ea565b6107ef565b61012e610256366004611420565b610802565b61012e6102693660046114bb565b610938565b61012e61027c3660046114ea565b6109ed565b6101be61028f3660046114a3565b610a9d565b61014b6102a23660046114a3565b610ab1565b6000546201000090046001600160a01b0316632ca65a796102c53390565b6040518263ffffffff1660e01b81526004016102e19190611543565b60206040518083038186803b1580156102f957600080fd5b505afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103319190611483565b6103565760405162461bcd60e51b815260040161034d906115c5565b60405180910390fd5b6103638360008484610acc565b505050565b6000546201000090046001600160a01b0316632ca65a796103863390565b6040518263ffffffff1660e01b81526004016103a29190611543565b60206040518083038186803b1580156103ba57600080fd5b505afa1580156103ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f29190611483565b61040e5760405162461bcd60e51b815260040161034d906115c5565b61041a60025482610e86565b50565b600061042b600254836110a8565b6001600160a01b0316836001600160a01b031614905092915050565b600054610100900460ff16158080156104675750600054600160ff909116105b806104885750610476306110ce565b158015610488575060005460ff166001145b6104a45760405162461bcd60e51b815260040161034d90611577565b6000805460ff1916600117905580156104c7576000805461ff0019166101001790555b6000805462010000600160b01b03191630620100000217905560028290556104ec3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b039790971696909617909555925482526006905220610556916110e1565b506002546000908152600560205260409020600190554360035580156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b60025460009081526006602052604081206105d5906110ed565b905090565b6000546201000090046001600160a01b0316632ca65a796105f83390565b6040518263ffffffff1660e01b81526004016106149190611543565b60206040518083038186803b15801561062c57600080fd5b505afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611483565b6106805760405162461bcd60e51b815260040161034d906115c5565b600254600090815260056020526040902054806106df5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c454153450000000000604482015260640161034d565b600082815260056020526040902054156107475760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b606482015260840161034d565b60005b818110156107b957600254600090815260066020526040812061076d90836110f7565b60025460009081526004602090815260408083208484529091529020549091506107a690859060019084906001600160a01b0316610acc565b506107b2600182611608565b905061074a565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b4906020016105ae565b60006107fb83836110a8565b9392505050565b600054610100900460ff16158080156108225750600054600160ff909116105b806108435750610831306110ce565b158015610843575060005460ff166001145b61085f5760405162461bcd60e51b815260040161034d90611577565b6000805460ff191660011790558015610882576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556108ac600090565b6541636365737360d01b146108ee576108cd6541636365737360d01b611103565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108f66111eb565b80156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016105ae565b6000546201000090046001600160a01b0316632ca65a796109563390565b6040518263ffffffff1660e01b81526004016109729190611543565b60206040518083038186803b15801561098a57600080fd5b505afa15801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c29190611483565b6109de5760405162461bcd60e51b815260040161034d906115c5565b6105b760025460008484610acc565b6000546201000090046001600160a01b0316632ca65a79610a0b3390565b6040518263ffffffff1660e01b8152600401610a279190611543565b60206040518083038186803b158015610a3f57600080fd5b505afa158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a779190611483565b610a935760405162461bcd60e51b815260040161034d906115c5565b6105b78282610e86565b6000610aab600254836110a8565b92915050565b6002546000908152600660205260408120610aab90836110f7565b6000848152600660205260408120606490610ae6906110ed565b10610b3d5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b606482015260840161034d565b600085815260056020526040902054151580610b565750835b610ba25760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e000000604482015260640161034d565b82610bf95760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b606482015260840161034d565b6000858152600660205260409020610c119084611258565b1580610c6257508276496e7374616e63654f70657261746f725365727669636560481b148015610c62575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610cb95760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b606482015260840161034d565b6001600160a01b038216610d1b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b606482015260840161034d565b60008581526004602090815260408083208684529091529020546001600160a01b0316610d7f576000858152600660205260409020610d5a90846110e1565b506000858152600560205260408120805491610d7583611637565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610dc4906110ed565b60008681526005602052604090205414610e2f5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a79610ea43390565b6040518263ffffffff1660e01b8152600401610ec09190611543565b60206040518083038186803b158015610ed857600080fd5b505afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f109190611483565b610f2c5760405162461bcd60e51b815260040161034d906115c5565b6000828152600660205260409020610f449082611258565b610f905760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e0000604482015260640161034d565b6000828152600660205260409020610fa89082611270565b506000828152600560205260408120805460019290610fc8908490611620565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b031916905584835260069091529020611007906110ed565b600083815260056020526040902054146110725760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a13191016105ae565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b60006107fb838361127c565b6000610aab825490565b60006107fb83836112cb565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611185919061143c565b90506001600160a01b0381166110dc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161034d565b600054610100900460ff166112565760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161034d565b565b600081815260018301602052604081205415156107fb565b60006107fb8383611303565b60008181526001830160205260408120546112c357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610aab565b506000610aab565b60008260000182815481106112f057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120548015611416576000611327600183611620565b855490915060009061133b90600190611620565b90508181146113bc57600086600001828154811061136957634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061139a57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806113db57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610aab565b6000915050610aab565b600060208284031215611431578081fd5b81356107fb81611668565b60006020828403121561144d578081fd5b81516107fb81611668565b6000806040838503121561146a578081fd5b823561147581611668565b946020939093013593505050565b600060208284031215611494578081fd5b815180151581146107fb578182fd5b6000602082840312156114b4578081fd5b5035919050565b600080604083850312156114cd578182fd5b8235915060208301356114df81611668565b809150509250929050565b600080604083850312156114fc578182fd5b50508035926020909101359150565b60008060006060848603121561151f578081fd5b8335925060208401359150604084013561153881611668565b809150509250925092565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000821982111561161b5761161b611652565b500190565b60008282101561163257611632611652565b500390565b600060001982141561164b5761164b611652565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461041a57600080fdfea264697066735822122010fc0f128c1a977b4951f6dee77033c18bcc4363fb956c3ba337add63496ccbf64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x16B3 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B707B7 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x294 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x76B707B7 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x86D1A69F EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0xB0EF18A0 EQ PUSH2 0x235 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x48CD4CB1 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x48CD4CB1 EQ PUSH2 0x181 JUMPI DUP1 PUSH4 0x4A941E5E EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x56BBC19D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x69923515 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x209 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x24042A0A EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x2CA65A79 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x150B JUMP JUMPDEST PUSH2 0x2A7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12E PUSH2 0x13E CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST PUSH2 0x14B PUSH1 0x64 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x171 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1458 JUMP JUMPDEST PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x155 JUMP JUMPDEST PUSH2 0x14B PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x155 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x447 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x14B JUMP JUMPDEST PUSH2 0x14B PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH2 0x7EF JUMP JUMPDEST PUSH2 0x12E PUSH2 0x256 CALLDATASIZE PUSH1 0x4 PUSH2 0x1420 JUMP JUMPDEST PUSH2 0x802 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x269 CALLDATASIZE PUSH1 0x4 PUSH2 0x14BB JUMP JUMPDEST PUSH2 0x938 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH2 0x9ED JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0xA9D JUMP JUMPDEST PUSH2 0x14B PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x2C5 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x331 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x356 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x363 DUP4 PUSH1 0x0 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x386 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A2 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x40E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x41A PUSH1 0x2 SLOAD DUP3 PUSH2 0xE86 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42B PUSH1 0x2 SLOAD DUP4 PUSH2 0x10A8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x467 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x488 JUMPI POP PUSH2 0x476 ADDRESS PUSH2 0x10CE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x488 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x4A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND ADDRESS PUSH3 0x10000 MUL OR SWAP1 SSTORE PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH2 0x4EC CALLER SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 SWAP1 SWAP8 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE SWAP3 SLOAD DUP3 MSTORE PUSH1 0x6 SWAP1 MSTORE KECCAK256 PUSH2 0x556 SWAP2 PUSH2 0x10E1 JUMP JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE NUMBER PUSH1 0x3 SSTORE DUP1 ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x5D5 SWAP1 PUSH2 0x10ED JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x5F8 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x614 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x62C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x640 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x664 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x680 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030313A454D5054595F52454C454153450000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030323A4E45575F52454C454153455F4E4F545F454D PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x505459 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B9 JUMPI PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x76D SWAP1 DUP4 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x7A6 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xACC JUMP JUMPDEST POP PUSH2 0x7B2 PUSH1 0x1 DUP3 PUSH2 0x1608 JUMP JUMPDEST SWAP1 POP PUSH2 0x74A JUMP JUMPDEST POP PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD50692EB75750D216C747528A2DFCED5915EAB7B4EE40BCF8120D0D035297B4 SWAP1 PUSH1 0x20 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x10A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x822 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x843 JUMPI POP PUSH2 0x831 ADDRESS PUSH2 0x10CE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x843 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x882 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x8AC PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x8EE JUMPI PUSH2 0x8CD PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1103 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x8F6 PUSH2 0x11EB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x956 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x972 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x98A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x99E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9C2 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x9DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x5B7 PUSH1 0x2 SLOAD PUSH1 0x0 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xA0B CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA77 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0xA93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x5B7 DUP3 DUP3 PUSH2 0xE86 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAB PUSH1 0x2 SLOAD DUP4 PUSH2 0x10A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xAAB SWAP1 DUP4 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x64 SWAP1 PUSH2 0xAE6 SWAP1 PUSH2 0x10ED JUMP JUMPDEST LT PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031303A4D41585F434F4E5452414354535F4C494D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO DUP1 PUSH2 0xB56 JUMPI POP DUP4 JUMPDEST PUSH2 0xBA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031313A52454C454153455F554E4B4E4F574E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST DUP3 PUSH2 0xBF9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031323A434F4E54524143545F4E414D455F454D5054 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x59 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC11 SWAP1 DUP5 PUSH2 0x1258 JUMP JUMPDEST ISZERO DUP1 PUSH2 0xC62 JUMPI POP DUP3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL EQ DUP1 ISZERO PUSH2 0xC62 JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0xCB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031333A434F4E54524143545F4E414D455F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xD1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031343A434F4E54524143545F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD7F JUMPI PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xD5A SWAP1 DUP5 PUSH2 0x10E1 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xD75 DUP4 PUSH2 0x1637 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE DUP8 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0xDC4 SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0xE2F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031353A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x7C5C4E97E59CBD96C53653DFD3F538E50D7BAB44BAA352481FDC3FA7F18E3008 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xEA4 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC0 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xED8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF10 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0xF2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xF44 SWAP1 DUP3 PUSH2 0x1258 JUMP JUMPDEST PUSH2 0xF90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032303A434F4E54524143545F554E4B4E4F574E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xFA8 SWAP1 DUP3 PUSH2 0x1270 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xFC8 SWAP1 DUP5 SWAP1 PUSH2 0x1620 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0x1007 SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1072 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032313A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x95BD8DB0F80EC14D4D7E375FB7FB3603144BA5B594106E0410243553F97A131 SWAP2 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP3 DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x127C JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAB DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x12CB JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x143C JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x10DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1256 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x7FB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x1303 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x12C3 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xAAB JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x12F0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1416 JUMPI PUSH1 0x0 PUSH2 0x1327 PUSH1 0x1 DUP4 PUSH2 0x1620 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x133B SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1620 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x13BC JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1369 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x139A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x13DB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1431 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7FB DUP2 PUSH2 0x1668 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x144D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7FB DUP2 PUSH2 0x1668 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x146A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1475 DUP2 PUSH2 0x1668 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1494 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x7FB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14B4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14CD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x14DF DUP2 PUSH2 0x1668 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14FC JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x151F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x1538 DUP2 PUSH2 0x1668 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x161B JUMPI PUSH2 0x161B PUSH2 0x1652 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1632 JUMPI PUSH2 0x1632 PUSH2 0x1652 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x164B JUMPI PUSH2 0x164B PUSH2 0x1652 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT 0xFC 0xF SLT DUP13 BYTE SWAP8 PUSH28 0x4951F6DEE77033C18BCC4363FB956C3BA337ADD63496CCBF64736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"2981:7567:80:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;2981:7567:80;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;2981:7567:80;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:10771:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"629:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"675:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"684:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"692:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"677:6:103"},"nodeType":"YulFunctionCall","src":"677:22:103"},"nodeType":"YulExpressionStatement","src":"677:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"650:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"659:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"646:3:103"},"nodeType":"YulFunctionCall","src":"646:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"671:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"642:3:103"},"nodeType":"YulFunctionCall","src":"642:32:103"},"nodeType":"YulIf","src":"639:2:103"},{"nodeType":"YulVariableDeclaration","src":"710:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"736:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"723:12:103"},"nodeType":"YulFunctionCall","src":"723:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"714:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"780:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"755:24:103"},"nodeType":"YulFunctionCall","src":"755:31:103"},"nodeType":"YulExpressionStatement","src":"755:31:103"},{"nodeType":"YulAssignment","src":"795:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"805:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"795:6:103"}]},{"nodeType":"YulAssignment","src":"819:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"846:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"857:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"842:3:103"},"nodeType":"YulFunctionCall","src":"842:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"829:12:103"},"nodeType":"YulFunctionCall","src":"829:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"819:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"587:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"598:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"610:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"618:6:103","type":""}],"src":"542:325:103"},{"body":{"nodeType":"YulBlock","src":"950:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"996:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1005:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1013:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"998:6:103"},"nodeType":"YulFunctionCall","src":"998:22:103"},"nodeType":"YulExpressionStatement","src":"998:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"971:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"980:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"992:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"963:3:103"},"nodeType":"YulFunctionCall","src":"963:32:103"},"nodeType":"YulIf","src":"960:2:103"},{"nodeType":"YulVariableDeclaration","src":"1031:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1050:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1044:5:103"},"nodeType":"YulFunctionCall","src":"1044:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1035:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1113:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1122:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1130:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1115:6:103"},"nodeType":"YulFunctionCall","src":"1115:22:103"},"nodeType":"YulExpressionStatement","src":"1115:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1082:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1103:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1096:6:103"},"nodeType":"YulFunctionCall","src":"1096:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1089:6:103"},"nodeType":"YulFunctionCall","src":"1089:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1079:2:103"},"nodeType":"YulFunctionCall","src":"1079:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1072:6:103"},"nodeType":"YulFunctionCall","src":"1072:40:103"},"nodeType":"YulIf","src":"1069:2:103"},{"nodeType":"YulAssignment","src":"1148:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1158:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1148:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"916:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"927:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"939:6:103","type":""}],"src":"872:297:103"},{"body":{"nodeType":"YulBlock","src":"1244:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1290:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1299:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1307:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1292:6:103"},"nodeType":"YulFunctionCall","src":"1292:22:103"},"nodeType":"YulExpressionStatement","src":"1292:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1265:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1274:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1261:3:103"},"nodeType":"YulFunctionCall","src":"1261:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1286:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1257:3:103"},"nodeType":"YulFunctionCall","src":"1257:32:103"},"nodeType":"YulIf","src":"1254:2:103"},{"nodeType":"YulAssignment","src":"1325:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1348:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1335:12:103"},"nodeType":"YulFunctionCall","src":"1335:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1325:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1210:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1221:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1233:6:103","type":""}],"src":"1174:190:103"},{"body":{"nodeType":"YulBlock","src":"1456:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"1502:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1511:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1519:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1504:6:103"},"nodeType":"YulFunctionCall","src":"1504:22:103"},"nodeType":"YulExpressionStatement","src":"1504:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1477:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1486:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1473:3:103"},"nodeType":"YulFunctionCall","src":"1473:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1498:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1469:3:103"},"nodeType":"YulFunctionCall","src":"1469:32:103"},"nodeType":"YulIf","src":"1466:2:103"},{"nodeType":"YulAssignment","src":"1537:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1560:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1547:12:103"},"nodeType":"YulFunctionCall","src":"1547:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1537:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1579:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1620:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1605:3:103"},"nodeType":"YulFunctionCall","src":"1605:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1592:12:103"},"nodeType":"YulFunctionCall","src":"1592:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1583:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1658:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1633:24:103"},"nodeType":"YulFunctionCall","src":"1633:31:103"},"nodeType":"YulExpressionStatement","src":"1633:31:103"},{"nodeType":"YulAssignment","src":"1673:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1683:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1673:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1414:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1425:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1437:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1445:6:103","type":""}],"src":"1369:325:103"},{"body":{"nodeType":"YulBlock","src":"1786:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"1832:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1841:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1849:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1834:6:103"},"nodeType":"YulFunctionCall","src":"1834:22:103"},"nodeType":"YulExpressionStatement","src":"1834:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1807:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1816:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1803:3:103"},"nodeType":"YulFunctionCall","src":"1803:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1828:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1799:3:103"},"nodeType":"YulFunctionCall","src":"1799:32:103"},"nodeType":"YulIf","src":"1796:2:103"},{"nodeType":"YulAssignment","src":"1867:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1890:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1877:12:103"},"nodeType":"YulFunctionCall","src":"1877:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1867:6:103"}]},{"nodeType":"YulAssignment","src":"1909:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1936:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1947:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1932:3:103"},"nodeType":"YulFunctionCall","src":"1932:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1919:12:103"},"nodeType":"YulFunctionCall","src":"1919:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1909:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1744:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1755:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1767:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1775:6:103","type":""}],"src":"1699:258:103"},{"body":{"nodeType":"YulBlock","src":"2066:289:103","statements":[{"body":{"nodeType":"YulBlock","src":"2112:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2121:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2129:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2114:6:103"},"nodeType":"YulFunctionCall","src":"2114:22:103"},"nodeType":"YulExpressionStatement","src":"2114:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2087:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2096:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2083:3:103"},"nodeType":"YulFunctionCall","src":"2083:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2108:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2079:3:103"},"nodeType":"YulFunctionCall","src":"2079:32:103"},"nodeType":"YulIf","src":"2076:2:103"},{"nodeType":"YulAssignment","src":"2147:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2170:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2157:12:103"},"nodeType":"YulFunctionCall","src":"2157:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2147:6:103"}]},{"nodeType":"YulAssignment","src":"2189:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2227:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2212:3:103"},"nodeType":"YulFunctionCall","src":"2212:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2199:12:103"},"nodeType":"YulFunctionCall","src":"2199:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2189:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2240:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2270:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2281:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2266:3:103"},"nodeType":"YulFunctionCall","src":"2266:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2253:12:103"},"nodeType":"YulFunctionCall","src":"2253:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2244:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2319:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2294:24:103"},"nodeType":"YulFunctionCall","src":"2294:31:103"},"nodeType":"YulExpressionStatement","src":"2294:31:103"},{"nodeType":"YulAssignment","src":"2334:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2344:5:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2334:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2016:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2027:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2039:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2047:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2055:6:103","type":""}],"src":"1962:393:103"},{"body":{"nodeType":"YulBlock","src":"2430:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2476:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2485:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2493:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2478:6:103"},"nodeType":"YulFunctionCall","src":"2478:22:103"},"nodeType":"YulExpressionStatement","src":"2478:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2451:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2460:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2447:3:103"},"nodeType":"YulFunctionCall","src":"2447:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2472:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2443:3:103"},"nodeType":"YulFunctionCall","src":"2443:32:103"},"nodeType":"YulIf","src":"2440:2:103"},{"nodeType":"YulAssignment","src":"2511:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2534:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2521:12:103"},"nodeType":"YulFunctionCall","src":"2521:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2511:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2396:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2407:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2419:6:103","type":""}],"src":"2360:190:103"},{"body":{"nodeType":"YulBlock","src":"2656:102:103","statements":[{"nodeType":"YulAssignment","src":"2666:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2678:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2689:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2674:3:103"},"nodeType":"YulFunctionCall","src":"2674:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2666:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2708:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2723:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2739:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2744:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2735:3:103"},"nodeType":"YulFunctionCall","src":"2735:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2748:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2731:3:103"},"nodeType":"YulFunctionCall","src":"2731:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2719:3:103"},"nodeType":"YulFunctionCall","src":"2719:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2701:6:103"},"nodeType":"YulFunctionCall","src":"2701:51:103"},"nodeType":"YulExpressionStatement","src":"2701:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2625:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2636:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2647:4:103","type":""}],"src":"2555:203:103"},{"body":{"nodeType":"YulBlock","src":"2955:164:103","statements":[{"nodeType":"YulAssignment","src":"2965:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2977:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2988:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2973:3:103"},"nodeType":"YulFunctionCall","src":"2973:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2965:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3007:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3022:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3038:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3043:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3034:3:103"},"nodeType":"YulFunctionCall","src":"3034:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3047:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3030:3:103"},"nodeType":"YulFunctionCall","src":"3030:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3018:3:103"},"nodeType":"YulFunctionCall","src":"3018:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3000:6:103"},"nodeType":"YulFunctionCall","src":"3000:51:103"},"nodeType":"YulExpressionStatement","src":"3000:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3071:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3082:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3067:3:103"},"nodeType":"YulFunctionCall","src":"3067:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3087:25:103","type":"","value":"InstanceOperatorService"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3060:6:103"},"nodeType":"YulFunctionCall","src":"3060:53:103"},"nodeType":"YulExpressionStatement","src":"3060:53:103"}]},"name":"abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2924:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2935:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2946:4:103","type":""}],"src":"2763:356:103"},{"body":{"nodeType":"YulBlock","src":"3219:92:103","statements":[{"nodeType":"YulAssignment","src":"3229:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3241:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3252:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3237:3:103"},"nodeType":"YulFunctionCall","src":"3237:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3229:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3271:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3296:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3289:6:103"},"nodeType":"YulFunctionCall","src":"3289:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3282:6:103"},"nodeType":"YulFunctionCall","src":"3282:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3264:6:103"},"nodeType":"YulFunctionCall","src":"3264:41:103"},"nodeType":"YulExpressionStatement","src":"3264:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3188:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3199:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3210:4:103","type":""}],"src":"3124:187:103"},{"body":{"nodeType":"YulBlock","src":"3417:76:103","statements":[{"nodeType":"YulAssignment","src":"3427:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3439:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3450:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3435:3:103"},"nodeType":"YulFunctionCall","src":"3435:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3427:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3469:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3480:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3462:6:103"},"nodeType":"YulFunctionCall","src":"3462:25:103"},"nodeType":"YulExpressionStatement","src":"3462:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3386:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3397:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3408:4:103","type":""}],"src":"3316:177:103"},{"body":{"nodeType":"YulBlock","src":"3627:119:103","statements":[{"nodeType":"YulAssignment","src":"3637:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3649:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3660:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3645:3:103"},"nodeType":"YulFunctionCall","src":"3645:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3637:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3679:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3690:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3672:6:103"},"nodeType":"YulFunctionCall","src":"3672:25:103"},"nodeType":"YulExpressionStatement","src":"3672:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3717:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3728:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3713:3:103"},"nodeType":"YulFunctionCall","src":"3713:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3733:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3706:6:103"},"nodeType":"YulFunctionCall","src":"3706:34:103"},"nodeType":"YulExpressionStatement","src":"3706:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3588:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3599:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3607:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3618:4:103","type":""}],"src":"3498:248:103"},{"body":{"nodeType":"YulBlock","src":"3930:248:103","statements":[{"nodeType":"YulAssignment","src":"3940:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3952:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3963:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3948:3:103"},"nodeType":"YulFunctionCall","src":"3948:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3940:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3983:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3994:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:25:103"},"nodeType":"YulExpressionStatement","src":"3976:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4021:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4032:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4017:3:103"},"nodeType":"YulFunctionCall","src":"4017:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"4037:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4010:6:103"},"nodeType":"YulFunctionCall","src":"4010:34:103"},"nodeType":"YulExpressionStatement","src":"4010:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4064:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4075:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4060:3:103"},"nodeType":"YulFunctionCall","src":"4060:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4084:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4100:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4105:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4096:3:103"},"nodeType":"YulFunctionCall","src":"4096:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4109:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4092:3:103"},"nodeType":"YulFunctionCall","src":"4092:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4080:3:103"},"nodeType":"YulFunctionCall","src":"4080:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4053:6:103"},"nodeType":"YulFunctionCall","src":"4053:60:103"},"nodeType":"YulExpressionStatement","src":"4053:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4144:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4129:3:103"},"nodeType":"YulFunctionCall","src":"4129:18:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"4163:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4156:6:103"},"nodeType":"YulFunctionCall","src":"4156:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4149:6:103"},"nodeType":"YulFunctionCall","src":"4149:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4122:6:103"},"nodeType":"YulFunctionCall","src":"4122:50:103"},"nodeType":"YulExpressionStatement","src":"4122:50:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_address_t_bool__to_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3875:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3886:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3894:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3902:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3910:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3921:4:103","type":""}],"src":"3751:427:103"},{"body":{"nodeType":"YulBlock","src":"4290:87:103","statements":[{"nodeType":"YulAssignment","src":"4300:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4312:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4323:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4308:3:103"},"nodeType":"YulFunctionCall","src":"4308:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4300:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4342:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4357:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4365:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4353:3:103"},"nodeType":"YulFunctionCall","src":"4353:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4335:6:103"},"nodeType":"YulFunctionCall","src":"4335:36:103"},"nodeType":"YulExpressionStatement","src":"4335:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4259:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4270:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4281:4:103","type":""}],"src":"4183:194:103"},{"body":{"nodeType":"YulBlock","src":"4556:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4584:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4566:6:103"},"nodeType":"YulFunctionCall","src":"4566:21:103"},"nodeType":"YulExpressionStatement","src":"4566:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4607:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4618:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4603:3:103"},"nodeType":"YulFunctionCall","src":"4603:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4623:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4596:6:103"},"nodeType":"YulFunctionCall","src":"4596:30:103"},"nodeType":"YulExpressionStatement","src":"4596:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4646:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4657:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4642:3:103"},"nodeType":"YulFunctionCall","src":"4642:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4662:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4635:6:103"},"nodeType":"YulFunctionCall","src":"4635:62:103"},"nodeType":"YulExpressionStatement","src":"4635:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4717:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4728:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4713:3:103"},"nodeType":"YulFunctionCall","src":"4713:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4733:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4706:6:103"},"nodeType":"YulFunctionCall","src":"4706:35:103"},"nodeType":"YulExpressionStatement","src":"4706:35:103"},{"nodeType":"YulAssignment","src":"4750:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4762:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4773:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4758:3:103"},"nodeType":"YulFunctionCall","src":"4758:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4750:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4533:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4547:4:103","type":""}],"src":"4382:401:103"},{"body":{"nodeType":"YulBlock","src":"4962:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4979:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4990:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4972:6:103"},"nodeType":"YulFunctionCall","src":"4972:21:103"},"nodeType":"YulExpressionStatement","src":"4972:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5024:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5009:3:103"},"nodeType":"YulFunctionCall","src":"5009:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5029:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5002:6:103"},"nodeType":"YulFunctionCall","src":"5002:30:103"},"nodeType":"YulExpressionStatement","src":"5002:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5052:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5063:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5048:3:103"},"nodeType":"YulFunctionCall","src":"5048:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5068:34:103","type":"","value":"ERROR:REC-021:CONTRACT_NUMBER_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5041:6:103"},"nodeType":"YulFunctionCall","src":"5041:62:103"},"nodeType":"YulExpressionStatement","src":"5041:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5123:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5134:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5119:3:103"},"nodeType":"YulFunctionCall","src":"5119:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5139:8:103","type":"","value":"SMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5112:6:103"},"nodeType":"YulFunctionCall","src":"5112:36:103"},"nodeType":"YulExpressionStatement","src":"5112:36:103"},{"nodeType":"YulAssignment","src":"5157:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5180:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5165:3:103"},"nodeType":"YulFunctionCall","src":"5165:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5157:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4953:4:103","type":""}],"src":"4788:402:103"},{"body":{"nodeType":"YulBlock","src":"5369:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5397:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5379:6:103"},"nodeType":"YulFunctionCall","src":"5379:21:103"},"nodeType":"YulExpressionStatement","src":"5379:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5431:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5416:3:103"},"nodeType":"YulFunctionCall","src":"5416:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5436:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5409:6:103"},"nodeType":"YulFunctionCall","src":"5409:30:103"},"nodeType":"YulExpressionStatement","src":"5409:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5470:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5455:3:103"},"nodeType":"YulFunctionCall","src":"5455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5475:34:103","type":"","value":"ERROR:REC-012:CONTRACT_NAME_EMPT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5448:6:103"},"nodeType":"YulFunctionCall","src":"5448:62:103"},"nodeType":"YulExpressionStatement","src":"5448:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5541:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5526:3:103"},"nodeType":"YulFunctionCall","src":"5526:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5546:3:103","type":"","value":"Y"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5519:6:103"},"nodeType":"YulFunctionCall","src":"5519:31:103"},"nodeType":"YulExpressionStatement","src":"5519:31:103"},{"nodeType":"YulAssignment","src":"5559:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5582:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5567:3:103"},"nodeType":"YulFunctionCall","src":"5567:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5559:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5346:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5360:4:103","type":""}],"src":"5195:397:103"},{"body":{"nodeType":"YulBlock","src":"5771:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5788:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5799:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5781:6:103"},"nodeType":"YulFunctionCall","src":"5781:21:103"},"nodeType":"YulExpressionStatement","src":"5781:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5822:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5833:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5818:3:103"},"nodeType":"YulFunctionCall","src":"5818:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5838:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5811:6:103"},"nodeType":"YulFunctionCall","src":"5811:30:103"},"nodeType":"YulExpressionStatement","src":"5811:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5872:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5857:3:103"},"nodeType":"YulFunctionCall","src":"5857:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5877:29:103","type":"","value":"ERROR:REC-001:EMPTY_RELEASE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5850:6:103"},"nodeType":"YulFunctionCall","src":"5850:57:103"},"nodeType":"YulExpressionStatement","src":"5850:57:103"},{"nodeType":"YulAssignment","src":"5916:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5928:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5939:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5924:3:103"},"nodeType":"YulFunctionCall","src":"5924:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5916:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5748:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5762:4:103","type":""}],"src":"5597:351:103"},{"body":{"nodeType":"YulBlock","src":"6127:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6144:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6155:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6137:6:103"},"nodeType":"YulFunctionCall","src":"6137:21:103"},"nodeType":"YulExpressionStatement","src":"6137:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6178:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6189:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6174:3:103"},"nodeType":"YulFunctionCall","src":"6174:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6194:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6167:6:103"},"nodeType":"YulFunctionCall","src":"6167:30:103"},"nodeType":"YulExpressionStatement","src":"6167:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6228:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6213:3:103"},"nodeType":"YulFunctionCall","src":"6213:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6233:34:103","type":"","value":"ERROR:REC-015:CONTRACT_NUMBER_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6206:6:103"},"nodeType":"YulFunctionCall","src":"6206:62:103"},"nodeType":"YulExpressionStatement","src":"6206:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6288:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6299:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6284:3:103"},"nodeType":"YulFunctionCall","src":"6284:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6304:8:103","type":"","value":"SMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6277:6:103"},"nodeType":"YulFunctionCall","src":"6277:36:103"},"nodeType":"YulExpressionStatement","src":"6277:36:103"},{"nodeType":"YulAssignment","src":"6322:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6334:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6345:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6330:3:103"},"nodeType":"YulFunctionCall","src":"6330:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6322:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6104:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6118:4:103","type":""}],"src":"5953:402:103"},{"body":{"nodeType":"YulBlock","src":"6534:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6551:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6562:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6544:6:103"},"nodeType":"YulFunctionCall","src":"6544:21:103"},"nodeType":"YulExpressionStatement","src":"6544:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6585:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6596:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6581:3:103"},"nodeType":"YulFunctionCall","src":"6581:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6601:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6574:6:103"},"nodeType":"YulFunctionCall","src":"6574:30:103"},"nodeType":"YulExpressionStatement","src":"6574:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6624:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6635:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6620:3:103"},"nodeType":"YulFunctionCall","src":"6620:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6640:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6613:6:103"},"nodeType":"YulFunctionCall","src":"6613:62:103"},"nodeType":"YulExpressionStatement","src":"6613:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6695:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6706:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6691:3:103"},"nodeType":"YulFunctionCall","src":"6691:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6711:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6684:6:103"},"nodeType":"YulFunctionCall","src":"6684:44:103"},"nodeType":"YulExpressionStatement","src":"6684:44:103"},{"nodeType":"YulAssignment","src":"6737:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6749:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6760:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6745:3:103"},"nodeType":"YulFunctionCall","src":"6745:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6737:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6511:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6525:4:103","type":""}],"src":"6360:410:103"},{"body":{"nodeType":"YulBlock","src":"6949:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6977:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6959:6:103"},"nodeType":"YulFunctionCall","src":"6959:21:103"},"nodeType":"YulExpressionStatement","src":"6959:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7000:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7011:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6996:3:103"},"nodeType":"YulFunctionCall","src":"6996:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7016:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6989:6:103"},"nodeType":"YulFunctionCall","src":"6989:30:103"},"nodeType":"YulExpressionStatement","src":"6989:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7039:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7050:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7035:3:103"},"nodeType":"YulFunctionCall","src":"7035:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7055:34:103","type":"","value":"ERROR:REC-002:NEW_RELEASE_NOT_EM"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7028:6:103"},"nodeType":"YulFunctionCall","src":"7028:62:103"},"nodeType":"YulExpressionStatement","src":"7028:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7121:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7106:3:103"},"nodeType":"YulFunctionCall","src":"7106:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7126:5:103","type":"","value":"PTY"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7099:6:103"},"nodeType":"YulFunctionCall","src":"7099:33:103"},"nodeType":"YulExpressionStatement","src":"7099:33:103"},{"nodeType":"YulAssignment","src":"7141:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7164:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7149:3:103"},"nodeType":"YulFunctionCall","src":"7149:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7141:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6926:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6940:4:103","type":""}],"src":"6775:399:103"},{"body":{"nodeType":"YulBlock","src":"7353:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7370:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7381:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7363:6:103"},"nodeType":"YulFunctionCall","src":"7363:21:103"},"nodeType":"YulExpressionStatement","src":"7363:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7404:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7415:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7400:3:103"},"nodeType":"YulFunctionCall","src":"7400:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7420:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7393:6:103"},"nodeType":"YulFunctionCall","src":"7393:30:103"},"nodeType":"YulExpressionStatement","src":"7393:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7443:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7454:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7439:3:103"},"nodeType":"YulFunctionCall","src":"7439:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7459:34:103","type":"","value":"ERROR:REC-013:CONTRACT_NAME_EXIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7432:6:103"},"nodeType":"YulFunctionCall","src":"7432:62:103"},"nodeType":"YulExpressionStatement","src":"7432:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7514:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7525:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7510:3:103"},"nodeType":"YulFunctionCall","src":"7510:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7530:4:103","type":"","value":"TS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7503:6:103"},"nodeType":"YulFunctionCall","src":"7503:32:103"},"nodeType":"YulExpressionStatement","src":"7503:32:103"},{"nodeType":"YulAssignment","src":"7544:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7556:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7567:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7552:3:103"},"nodeType":"YulFunctionCall","src":"7552:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7544:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7330:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7344:4:103","type":""}],"src":"7179:398:103"},{"body":{"nodeType":"YulBlock","src":"7756:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7784:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7766:6:103"},"nodeType":"YulFunctionCall","src":"7766:21:103"},"nodeType":"YulExpressionStatement","src":"7766:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7807:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7818:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7803:3:103"},"nodeType":"YulFunctionCall","src":"7803:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7823:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7796:6:103"},"nodeType":"YulFunctionCall","src":"7796:30:103"},"nodeType":"YulExpressionStatement","src":"7796:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7846:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7857:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7842:3:103"},"nodeType":"YulFunctionCall","src":"7842:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7862:34:103","type":"","value":"ERROR:REC-014:CONTRACT_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7835:6:103"},"nodeType":"YulFunctionCall","src":"7835:62:103"},"nodeType":"YulExpressionStatement","src":"7835:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7917:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7928:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7913:3:103"},"nodeType":"YulFunctionCall","src":"7913:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7933:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7906:6:103"},"nodeType":"YulFunctionCall","src":"7906:33:103"},"nodeType":"YulExpressionStatement","src":"7906:33:103"},{"nodeType":"YulAssignment","src":"7948:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7960:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7971:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7956:3:103"},"nodeType":"YulFunctionCall","src":"7956:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7948:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7733:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7747:4:103","type":""}],"src":"7582:399:103"},{"body":{"nodeType":"YulBlock","src":"8160:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8177:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8188:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8170:6:103"},"nodeType":"YulFunctionCall","src":"8170:21:103"},"nodeType":"YulExpressionStatement","src":"8170:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8211:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8222:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8207:3:103"},"nodeType":"YulFunctionCall","src":"8207:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8227:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8200:6:103"},"nodeType":"YulFunctionCall","src":"8200:30:103"},"nodeType":"YulExpressionStatement","src":"8200:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8261:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8246:3:103"},"nodeType":"YulFunctionCall","src":"8246:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8266:32:103","type":"","value":"ERROR:REC-020:CONTRACT_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8239:6:103"},"nodeType":"YulFunctionCall","src":"8239:60:103"},"nodeType":"YulExpressionStatement","src":"8239:60:103"},{"nodeType":"YulAssignment","src":"8308:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8320:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8331:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8316:3:103"},"nodeType":"YulFunctionCall","src":"8316:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8308:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8137:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8151:4:103","type":""}],"src":"7986:354:103"},{"body":{"nodeType":"YulBlock","src":"8519:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8536:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8547:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8529:6:103"},"nodeType":"YulFunctionCall","src":"8529:21:103"},"nodeType":"YulExpressionStatement","src":"8529:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8570:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8581:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8566:3:103"},"nodeType":"YulFunctionCall","src":"8566:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8586:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8559:6:103"},"nodeType":"YulFunctionCall","src":"8559:30:103"},"nodeType":"YulExpressionStatement","src":"8559:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8620:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8605:3:103"},"nodeType":"YulFunctionCall","src":"8605:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8625:34:103","type":"","value":"ERROR:CRC-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8598:6:103"},"nodeType":"YulFunctionCall","src":"8598:62:103"},"nodeType":"YulExpressionStatement","src":"8598:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8691:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8676:3:103"},"nodeType":"YulFunctionCall","src":"8676:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8696:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8669:6:103"},"nodeType":"YulFunctionCall","src":"8669:33:103"},"nodeType":"YulExpressionStatement","src":"8669:33:103"},{"nodeType":"YulAssignment","src":"8711:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8723:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8734:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8719:3:103"},"nodeType":"YulFunctionCall","src":"8719:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8711:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8496:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8510:4:103","type":""}],"src":"8345:399:103"},{"body":{"nodeType":"YulBlock","src":"8923:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8940:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8951:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8933:6:103"},"nodeType":"YulFunctionCall","src":"8933:21:103"},"nodeType":"YulExpressionStatement","src":"8933:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8974:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8985:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8970:3:103"},"nodeType":"YulFunctionCall","src":"8970:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8990:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8963:6:103"},"nodeType":"YulFunctionCall","src":"8963:30:103"},"nodeType":"YulExpressionStatement","src":"8963:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9024:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9009:3:103"},"nodeType":"YulFunctionCall","src":"9009:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9029:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9002:6:103"},"nodeType":"YulFunctionCall","src":"9002:62:103"},"nodeType":"YulExpressionStatement","src":"9002:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9095:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9080:3:103"},"nodeType":"YulFunctionCall","src":"9080:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9100:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9073:6:103"},"nodeType":"YulFunctionCall","src":"9073:41:103"},"nodeType":"YulExpressionStatement","src":"9073:41:103"},{"nodeType":"YulAssignment","src":"9123:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9135:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9146:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9131:3:103"},"nodeType":"YulFunctionCall","src":"9131:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9123:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8900:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8914:4:103","type":""}],"src":"8749:407:103"},{"body":{"nodeType":"YulBlock","src":"9335:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9352:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9363:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9345:6:103"},"nodeType":"YulFunctionCall","src":"9345:21:103"},"nodeType":"YulExpressionStatement","src":"9345:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9397:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9382:3:103"},"nodeType":"YulFunctionCall","src":"9382:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9402:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9375:6:103"},"nodeType":"YulFunctionCall","src":"9375:30:103"},"nodeType":"YulExpressionStatement","src":"9375:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9425:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9436:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9421:3:103"},"nodeType":"YulFunctionCall","src":"9421:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9441:34:103","type":"","value":"ERROR:REC-010:MAX_CONTRACTS_LIMI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9414:6:103"},"nodeType":"YulFunctionCall","src":"9414:62:103"},"nodeType":"YulExpressionStatement","src":"9414:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9507:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9492:3:103"},"nodeType":"YulFunctionCall","src":"9492:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9512:3:103","type":"","value":"T"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9485:6:103"},"nodeType":"YulFunctionCall","src":"9485:31:103"},"nodeType":"YulExpressionStatement","src":"9485:31:103"},{"nodeType":"YulAssignment","src":"9525:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9548:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9533:3:103"},"nodeType":"YulFunctionCall","src":"9533:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9525:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9312:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9326:4:103","type":""}],"src":"9161:397:103"},{"body":{"nodeType":"YulBlock","src":"9737:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9754:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9765:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9747:6:103"},"nodeType":"YulFunctionCall","src":"9747:21:103"},"nodeType":"YulExpressionStatement","src":"9747:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9788:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9799:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9784:3:103"},"nodeType":"YulFunctionCall","src":"9784:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9804:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9777:6:103"},"nodeType":"YulFunctionCall","src":"9777:30:103"},"nodeType":"YulExpressionStatement","src":"9777:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9827:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9838:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9823:3:103"},"nodeType":"YulFunctionCall","src":"9823:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9843:31:103","type":"","value":"ERROR:REC-011:RELEASE_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9816:6:103"},"nodeType":"YulFunctionCall","src":"9816:59:103"},"nodeType":"YulExpressionStatement","src":"9816:59:103"},{"nodeType":"YulAssignment","src":"9884:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9896:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9907:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9892:3:103"},"nodeType":"YulFunctionCall","src":"9892:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9884:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9714:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9728:4:103","type":""}],"src":"9563:353:103"},{"body":{"nodeType":"YulBlock","src":"10022:76:103","statements":[{"nodeType":"YulAssignment","src":"10032:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10044:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10055:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10040:3:103"},"nodeType":"YulFunctionCall","src":"10040:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10032:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10074:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10085:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10067:6:103"},"nodeType":"YulFunctionCall","src":"10067:25:103"},"nodeType":"YulExpressionStatement","src":"10067:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9991:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10002:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10013:4:103","type":""}],"src":"9921:177:103"},{"body":{"nodeType":"YulBlock","src":"10151:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"10178:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10180:16:103"},"nodeType":"YulFunctionCall","src":"10180:18:103"},"nodeType":"YulExpressionStatement","src":"10180:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10167:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"10174:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10170:3:103"},"nodeType":"YulFunctionCall","src":"10170:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10164:2:103"},"nodeType":"YulFunctionCall","src":"10164:13:103"},"nodeType":"YulIf","src":"10161:2:103"},{"nodeType":"YulAssignment","src":"10209:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10220:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"10223:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10216:3:103"},"nodeType":"YulFunctionCall","src":"10216:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"10209:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10134:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"10137:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"10143:3:103","type":""}],"src":"10103:128:103"},{"body":{"nodeType":"YulBlock","src":"10285:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"10307:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10309:16:103"},"nodeType":"YulFunctionCall","src":"10309:18:103"},"nodeType":"YulExpressionStatement","src":"10309:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10301:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"10304:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10298:2:103"},"nodeType":"YulFunctionCall","src":"10298:8:103"},"nodeType":"YulIf","src":"10295:2:103"},{"nodeType":"YulAssignment","src":"10338:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"10350:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"10353:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10346:3:103"},"nodeType":"YulFunctionCall","src":"10346:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"10338:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"10267:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"10270:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"10276:4:103","type":""}],"src":"10236:125:103"},{"body":{"nodeType":"YulBlock","src":"10413:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"10444:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"10446:16:103"},"nodeType":"YulFunctionCall","src":"10446:18:103"},"nodeType":"YulExpressionStatement","src":"10446:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10429:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10440:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10436:3:103"},"nodeType":"YulFunctionCall","src":"10436:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10426:2:103"},"nodeType":"YulFunctionCall","src":"10426:17:103"},"nodeType":"YulIf","src":"10423:2:103"},{"nodeType":"YulAssignment","src":"10475:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10486:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10493:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10482:3:103"},"nodeType":"YulFunctionCall","src":"10482:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"10475:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10395:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"10405:3:103","type":""}],"src":"10366:135:103"},{"body":{"nodeType":"YulBlock","src":"10538:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10555:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10562:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10567:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10558:3:103"},"nodeType":"YulFunctionCall","src":"10558:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10548:6:103"},"nodeType":"YulFunctionCall","src":"10548:31:103"},"nodeType":"YulExpressionStatement","src":"10548:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10595:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10598:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10588:6:103"},"nodeType":"YulFunctionCall","src":"10588:15:103"},"nodeType":"YulExpressionStatement","src":"10588:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10619:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10622:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10612:6:103"},"nodeType":"YulFunctionCall","src":"10612:15:103"},"nodeType":"YulExpressionStatement","src":"10612:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"10506:127:103"},{"body":{"nodeType":"YulBlock","src":"10683:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"10747:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10756:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10759:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10749:6:103"},"nodeType":"YulFunctionCall","src":"10749:12:103"},"nodeType":"YulExpressionStatement","src":"10749:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10706:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10717:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10732:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10737:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10728:3:103"},"nodeType":"YulFunctionCall","src":"10728:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10741:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10724:3:103"},"nodeType":"YulFunctionCall","src":"10724:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10713:3:103"},"nodeType":"YulFunctionCall","src":"10713:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10703:2:103"},"nodeType":"YulFunctionCall","src":"10703:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10696:6:103"},"nodeType":"YulFunctionCall","src":"10696:50:103"},"nodeType":"YulIf","src":"10693:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10672:5:103","type":""}],"src":"10638:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), \"InstanceOperatorService\")\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_address_t_bool__to_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:REC-021:CONTRACT_NUMBER_MI\")\n mstore(add(headStart, 96), \"SMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:REC-012:CONTRACT_NAME_EMPT\")\n mstore(add(headStart, 96), \"Y\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:REC-001:EMPTY_RELEASE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:REC-015:CONTRACT_NUMBER_MI\")\n mstore(add(headStart, 96), \"SMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:REC-002:NEW_RELEASE_NOT_EM\")\n mstore(add(headStart, 96), \"PTY\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:REC-013:CONTRACT_NAME_EXIS\")\n mstore(add(headStart, 96), \"TS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:REC-014:CONTRACT_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:REC-020:CONTRACT_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CRC-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:REC-010:MAX_CONTRACTS_LIMI\")\n mstore(add(headStart, 96), \"T\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:REC-011:RELEASE_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101165760003560e01c806376b707b7116100a2578063c4d66de811610071578063c4d66de814610248578063d22057a91461025b578063dc527b081461026e578063e16c7d9814610281578063f6b3e7d01461029457610116565b806376b707b71461021157806386d1a69f14610219578063893917ea14610222578063b0ef18a01461023557610116565b806348cd4cb1116100e957806348cd4cb1146101815780634a941e5e1461018a57806356bbc19d146101d657806369923515146101e95780636c0f79b61461020957610116565b80631d5e73141461011b578063208131541461013057806324042a0a146101435780632ca65a791461015e575b600080fd5b61012e61012936600461150b565b6102a7565b005b61012e61013e3660046114a3565b610368565b61014b606481565b6040519081526020015b60405180910390f35b61017161016c366004611458565b61041d565b6040519015158152602001610155565b61014b60035481565b6101be6101983660046114ea565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610155565b61012e6101e43660046114a3565b610447565b61014b6101f73660046114a3565b60056020526000908152604090205481565b61014b6105bb565b60025461014b565b61014b60025481565b61012e6102303660046114a3565b6105da565b6101be6102433660046114ea565b6107ef565b61012e610256366004611420565b610802565b61012e6102693660046114bb565b610938565b61012e61027c3660046114ea565b6109ed565b6101be61028f3660046114a3565b610a9d565b61014b6102a23660046114a3565b610ab1565b6000546201000090046001600160a01b0316632ca65a796102c53390565b6040518263ffffffff1660e01b81526004016102e19190611543565b60206040518083038186803b1580156102f957600080fd5b505afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103319190611483565b6103565760405162461bcd60e51b815260040161034d906115c5565b60405180910390fd5b6103638360008484610acc565b505050565b6000546201000090046001600160a01b0316632ca65a796103863390565b6040518263ffffffff1660e01b81526004016103a29190611543565b60206040518083038186803b1580156103ba57600080fd5b505afa1580156103ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f29190611483565b61040e5760405162461bcd60e51b815260040161034d906115c5565b61041a60025482610e86565b50565b600061042b600254836110a8565b6001600160a01b0316836001600160a01b031614905092915050565b600054610100900460ff16158080156104675750600054600160ff909116105b806104885750610476306110ce565b158015610488575060005460ff166001145b6104a45760405162461bcd60e51b815260040161034d90611577565b6000805460ff1916600117905580156104c7576000805461ff0019166101001790555b6000805462010000600160b01b03191630620100000217905560028290556104ec3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b039790971696909617909555925482526006905220610556916110e1565b506002546000908152600560205260409020600190554360035580156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b60025460009081526006602052604081206105d5906110ed565b905090565b6000546201000090046001600160a01b0316632ca65a796105f83390565b6040518263ffffffff1660e01b81526004016106149190611543565b60206040518083038186803b15801561062c57600080fd5b505afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611483565b6106805760405162461bcd60e51b815260040161034d906115c5565b600254600090815260056020526040902054806106df5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c454153450000000000604482015260640161034d565b600082815260056020526040902054156107475760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b606482015260840161034d565b60005b818110156107b957600254600090815260066020526040812061076d90836110f7565b60025460009081526004602090815260408083208484529091529020549091506107a690859060019084906001600160a01b0316610acc565b506107b2600182611608565b905061074a565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b4906020016105ae565b60006107fb83836110a8565b9392505050565b600054610100900460ff16158080156108225750600054600160ff909116105b806108435750610831306110ce565b158015610843575060005460ff166001145b61085f5760405162461bcd60e51b815260040161034d90611577565b6000805460ff191660011790558015610882576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556108ac600090565b6541636365737360d01b146108ee576108cd6541636365737360d01b611103565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108f66111eb565b80156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016105ae565b6000546201000090046001600160a01b0316632ca65a796109563390565b6040518263ffffffff1660e01b81526004016109729190611543565b60206040518083038186803b15801561098a57600080fd5b505afa15801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c29190611483565b6109de5760405162461bcd60e51b815260040161034d906115c5565b6105b760025460008484610acc565b6000546201000090046001600160a01b0316632ca65a79610a0b3390565b6040518263ffffffff1660e01b8152600401610a279190611543565b60206040518083038186803b158015610a3f57600080fd5b505afa158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a779190611483565b610a935760405162461bcd60e51b815260040161034d906115c5565b6105b78282610e86565b6000610aab600254836110a8565b92915050565b6002546000908152600660205260408120610aab90836110f7565b6000848152600660205260408120606490610ae6906110ed565b10610b3d5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b606482015260840161034d565b600085815260056020526040902054151580610b565750835b610ba25760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e000000604482015260640161034d565b82610bf95760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b606482015260840161034d565b6000858152600660205260409020610c119084611258565b1580610c6257508276496e7374616e63654f70657261746f725365727669636560481b148015610c62575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610cb95760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b606482015260840161034d565b6001600160a01b038216610d1b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b606482015260840161034d565b60008581526004602090815260408083208684529091529020546001600160a01b0316610d7f576000858152600660205260409020610d5a90846110e1565b506000858152600560205260408120805491610d7583611637565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610dc4906110ed565b60008681526005602052604090205414610e2f5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a79610ea43390565b6040518263ffffffff1660e01b8152600401610ec09190611543565b60206040518083038186803b158015610ed857600080fd5b505afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f109190611483565b610f2c5760405162461bcd60e51b815260040161034d906115c5565b6000828152600660205260409020610f449082611258565b610f905760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e0000604482015260640161034d565b6000828152600660205260409020610fa89082611270565b506000828152600560205260408120805460019290610fc8908490611620565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b031916905584835260069091529020611007906110ed565b600083815260056020526040902054146110725760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a13191016105ae565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b60006107fb838361127c565b6000610aab825490565b60006107fb83836112cb565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611185919061143c565b90506001600160a01b0381166110dc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161034d565b600054610100900460ff166112565760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161034d565b565b600081815260018301602052604081205415156107fb565b60006107fb8383611303565b60008181526001830160205260408120546112c357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610aab565b506000610aab565b60008260000182815481106112f057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120548015611416576000611327600183611620565b855490915060009061133b90600190611620565b90508181146113bc57600086600001828154811061136957634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061139a57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806113db57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610aab565b6000915050610aab565b600060208284031215611431578081fd5b81356107fb81611668565b60006020828403121561144d578081fd5b81516107fb81611668565b6000806040838503121561146a578081fd5b823561147581611668565b946020939093013593505050565b600060208284031215611494578081fd5b815180151581146107fb578182fd5b6000602082840312156114b4578081fd5b5035919050565b600080604083850312156114cd578182fd5b8235915060208301356114df81611668565b809150509250929050565b600080604083850312156114fc578182fd5b50508035926020909101359150565b60008060006060848603121561151f578081fd5b8335925060208401359150604084013561153881611668565b809150509250925092565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000821982111561161b5761161b611652565b500190565b60008282101561163257611632611652565b500390565b600060001982141561164b5761164b611652565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461041a57600080fdfea264697066735822122010fc0f128c1a977b4951f6dee77033c18bcc4363fb956c3ba337add63496ccbf64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x116 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B707B7 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x248 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x25B JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x26E JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x294 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x76B707B7 EQ PUSH2 0x211 JUMPI DUP1 PUSH4 0x86D1A69F EQ PUSH2 0x219 JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x222 JUMPI DUP1 PUSH4 0xB0EF18A0 EQ PUSH2 0x235 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x48CD4CB1 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0x48CD4CB1 EQ PUSH2 0x181 JUMPI DUP1 PUSH4 0x4A941E5E EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x56BBC19D EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x69923515 EQ PUSH2 0x1E9 JUMPI DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x209 JUMPI PUSH2 0x116 JUMP JUMPDEST DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x11B JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x24042A0A EQ PUSH2 0x143 JUMPI DUP1 PUSH4 0x2CA65A79 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12E PUSH2 0x129 CALLDATASIZE PUSH1 0x4 PUSH2 0x150B JUMP JUMPDEST PUSH2 0x2A7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12E PUSH2 0x13E CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x368 JUMP JUMPDEST PUSH2 0x14B PUSH1 0x64 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x171 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1458 JUMP JUMPDEST PUSH2 0x41D JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x155 JUMP JUMPDEST PUSH2 0x14B PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x198 CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x155 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x1E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x447 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x1F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x14B PUSH2 0x5BB JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x14B JUMP JUMPDEST PUSH2 0x14B PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x230 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0x5DA JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x243 CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH2 0x7EF JUMP JUMPDEST PUSH2 0x12E PUSH2 0x256 CALLDATASIZE PUSH1 0x4 PUSH2 0x1420 JUMP JUMPDEST PUSH2 0x802 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x269 CALLDATASIZE PUSH1 0x4 PUSH2 0x14BB JUMP JUMPDEST PUSH2 0x938 JUMP JUMPDEST PUSH2 0x12E PUSH2 0x27C CALLDATASIZE PUSH1 0x4 PUSH2 0x14EA JUMP JUMPDEST PUSH2 0x9ED JUMP JUMPDEST PUSH2 0x1BE PUSH2 0x28F CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0xA9D JUMP JUMPDEST PUSH2 0x14B PUSH2 0x2A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x14A3 JUMP JUMPDEST PUSH2 0xAB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x2C5 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E1 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x331 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x356 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x363 DUP4 PUSH1 0x0 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x386 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A2 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3F2 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x40E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x41A PUSH1 0x2 SLOAD DUP3 PUSH2 0xE86 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42B PUSH1 0x2 SLOAD DUP4 PUSH2 0x10A8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x467 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x488 JUMPI POP PUSH2 0x476 ADDRESS PUSH2 0x10CE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x488 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x4A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND ADDRESS PUSH3 0x10000 MUL OR SWAP1 SSTORE PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH2 0x4EC CALLER SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 SWAP1 SWAP8 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE SWAP3 SLOAD DUP3 MSTORE PUSH1 0x6 SWAP1 MSTORE KECCAK256 PUSH2 0x556 SWAP2 PUSH2 0x10E1 JUMP JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE NUMBER PUSH1 0x3 SSTORE DUP1 ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x5D5 SWAP1 PUSH2 0x10ED JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x5F8 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x614 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x62C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x640 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x664 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x680 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x6DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030313A454D5054595F52454C454153450000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x747 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030323A4E45575F52454C454153455F4E4F545F454D PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x505459 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x7B9 JUMPI PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x76D SWAP1 DUP4 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x7A6 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xACC JUMP JUMPDEST POP PUSH2 0x7B2 PUSH1 0x1 DUP3 PUSH2 0x1608 JUMP JUMPDEST SWAP1 POP PUSH2 0x74A JUMP JUMPDEST POP PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD50692EB75750D216C747528A2DFCED5915EAB7B4EE40BCF8120D0D035297B4 SWAP1 PUSH1 0x20 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x10A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x822 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x843 JUMPI POP PUSH2 0x831 ADDRESS PUSH2 0x10CE JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x843 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x85F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x1577 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x882 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x8AC PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x8EE JUMPI PUSH2 0x8CD PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1103 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x8F6 PUSH2 0x11EB JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x956 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x972 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x98A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x99E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9C2 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0x9DE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x5B7 PUSH1 0x2 SLOAD PUSH1 0x0 DUP5 DUP5 PUSH2 0xACC JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xA0B CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA27 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA53 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA77 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0xA93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH2 0x5B7 DUP3 DUP3 PUSH2 0xE86 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAB PUSH1 0x2 SLOAD DUP4 PUSH2 0x10A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xAAB SWAP1 DUP4 PUSH2 0x10F7 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x64 SWAP1 PUSH2 0xAE6 SWAP1 PUSH2 0x10ED JUMP JUMPDEST LT PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031303A4D41585F434F4E5452414354535F4C494D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO DUP1 PUSH2 0xB56 JUMPI POP DUP4 JUMPDEST PUSH2 0xBA2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031313A52454C454153455F554E4B4E4F574E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST DUP3 PUSH2 0xBF9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031323A434F4E54524143545F4E414D455F454D5054 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x59 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xC11 SWAP1 DUP5 PUSH2 0x1258 JUMP JUMPDEST ISZERO DUP1 PUSH2 0xC62 JUMPI POP DUP3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL EQ DUP1 ISZERO PUSH2 0xC62 JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0xCB9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031333A434F4E54524143545F4E414D455F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xD1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031343A434F4E54524143545F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD7F JUMPI PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xD5A SWAP1 DUP5 PUSH2 0x10E1 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xD75 DUP4 PUSH2 0x1637 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE DUP8 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0xDC4 SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0xE2F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031353A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x7C5C4E97E59CBD96C53653DFD3F538E50D7BAB44BAA352481FDC3FA7F18E3008 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xEA4 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEC0 SWAP2 SWAP1 PUSH2 0x1543 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xED8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF10 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH2 0xF2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x34D SWAP1 PUSH2 0x15C5 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xF44 SWAP1 DUP3 PUSH2 0x1258 JUMP JUMPDEST PUSH2 0xF90 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032303A434F4E54524143545F554E4B4E4F574E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xFA8 SWAP1 DUP3 PUSH2 0x1270 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xFC8 SWAP1 DUP5 SWAP1 PUSH2 0x1620 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0x1007 SWAP1 PUSH2 0x10ED JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1072 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032313A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x95BD8DB0F80EC14D4D7E375FB7FB3603144BA5B594106E0410243553F97A131 SWAP2 ADD PUSH2 0x5AE JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP3 DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x127C JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAAB DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x12CB JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x114D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x143C JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x10DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1256 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x34D JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x7FB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7FB DUP4 DUP4 PUSH2 0x1303 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x12C3 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xAAB JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x12F0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1416 JUMPI PUSH1 0x0 PUSH2 0x1327 PUSH1 0x1 DUP4 PUSH2 0x1620 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x133B SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1620 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x13BC JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1369 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x139A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x13DB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xAAB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1431 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x7FB DUP2 PUSH2 0x1668 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x144D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x7FB DUP2 PUSH2 0x1668 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x146A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1475 DUP2 PUSH2 0x1668 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1494 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x7FB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14B4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14CD JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x14DF DUP2 PUSH2 0x1668 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x14FC JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x151F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x1538 DUP2 PUSH2 0x1668 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x161B JUMPI PUSH2 0x161B PUSH2 0x1652 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x1632 JUMPI PUSH2 0x1632 PUSH2 0x1652 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x164B JUMPI PUSH2 0x164B PUSH2 0x1652 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x41A JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LT 0xFC 0xF SLT DUP13 BYTE SWAP8 PUSH28 0x4951F6DEE77033C18BCC4363FB956C3BA337ADD63496CCBF64736F6C PUSH4 0x43000802 STOP CALLER ","sourceMap":"2981:7567:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5996:241;;;;;;:::i;:::-;;:::i;:::-;;5474:166;;;;;;:::i;:::-;;:::i;3217:43::-;;3257:3;3217:43;;;;;3462:25:103;;;3450:2;3435:18;3217:43:80;;;;;;;;4442:227;;;;;;:::i;:::-;;:::i;:::-;;;3289:14:103;;3282:22;3264:41;;3252:2;3237:18;4442:227:80;3219:92:103;3379:25:80;;;;;;3411:122;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3411:122:80;;;;;;-1:-1:-1;;;;;2719:32:103;;;2701:51;;2689:2;2674:18;3411:122:80;2656:102:103;3759:677:80;;;;;;:::i;:::-;;:::i;3539:105::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7336:164;;;:::i;4723:130::-;4839:7;;4723:130;;3346:22;;;;;;6525:805;;;;;;:::i;:::-;;:::i;5716:209::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;5187:210:80:-;;;;;;:::i;:::-;;:::i;6243:191::-;;;;;;:::i;:::-;;:::i;4933:179::-;;;;;;:::i;:::-;;:::i;7506:169::-;;;;;;:::i;:::-;;:::i;5996:241::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;;;;;;;;;6162:68:80::1;6181:8;6191:5;6198:13;6213:16;6162:18;:68::i;:::-;5996:241:::0;;;:::o;5474:166::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5589:44:80::1;5610:7;;5619:13;5589:20;:44::i;:::-;5474:166:::0;:::o;4442:227::-;4552:19;4616:45;4638:7;;4647:13;4616:21;:45::i;:::-;-1:-1:-1;;;;;4606:55:80;:6;-1:-1:-1;;;;;4606:55:80;;4588:74;;4442:227;;;;:::o;3759:677::-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;;;;;;:::i;:::-;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;3883:9:80::1;:16:::0;;-1:-1:-1;;;;;;3883:16:80::1;3895:4;3883:16:::0;::::1;;::::0;;:9:::1;4117:25:::0;;;4201:12:::1;719:10:59::0;640:96;;4201:12:80::1;4163:7;::::0;;4152:19:::1;::::0;;;:10:::1;:19;::::0;;;;;;;-1:-1:-1;;;4152:46:80;;;;;;;;;:61;;-1:-1:-1;;;;;;4152:61:80::1;-1:-1:-1::0;;;;;4152:61:80;;;::::1;::::0;;;::::1;::::0;;;4256:7;;4241:23;;:14:::1;:23:::0;;;4223:69:::1;::::0;:17:::1;:69::i;:::-;-1:-1:-1::0;4322:7:80::1;::::0;4302:28:::1;::::0;;;:19:::1;:28;::::0;;;;4333:1:::1;4302:32:::0;;4417:12:::1;4404:10;:25:::0;3457:99:47;;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;4335:36:103;;3531:14:47;;4323:2:103;4308:18;3531:14:47;;;;;;;;3457:99;3759:677:80;;:::o;7336:164::-;7484:7;;7389:26;7469:23;;;:14;:23;;;;;7448:45;;:20;:45::i;:::-;7427:66;;7336:164;:::o;6525:805::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6687:7:80::1;::::0;6642:22:::1;6667:28:::0;;;:19:::1;:28;::::0;;;;;6714:18;6706:58:::1;;;::::0;-1:-1:-1;;;6706:58:80;;5799:2:103;6706:58:80::1;::::0;::::1;5781:21:103::0;5838:2;5818:18;;;5811:30;5877:29;5857:18;;;5850:57;5924:18;;6706:58:80::1;5771:177:103::0;6706:58:80::1;6795:32;::::0;;;:19:::1;:32;::::0;;;;;:37;6774:119:::1;;;::::0;-1:-1:-1;;;6774:119:80;;6977:2:103;6774:119:80::1;::::0;::::1;6959:21:103::0;7016:2;6996:18;;;6989:30;7055:34;7035:18;;;7028:62;-1:-1:-1;;;7106:18:103;;;7099:33;7149:19;;6774:119:80::1;6949:225:103::0;6774:119:80::1;6960:9;6955:294;6979:14;6975:1;:18;6955:294;;;7064:7;::::0;7017:12:::1;7049:23:::0;;;:14:::1;:23;::::0;;;;7032:44:::1;::::0;7074:1;7032:16:::1;:44::i;:::-;7210:7;::::0;7199:19:::1;::::0;;;:10:::1;:19;::::0;;;;;;;:25;;;;;;;;;7017:59;;-1:-1:-1;7090:148:80::1;::::0;7126:11;;7155:4:::1;::::0;7017:59;;-1:-1:-1;;;;;7199:25:80::1;7090:18;:148::i;:::-;-1:-1:-1::0;6995:6:80::1;7000:1;6995:6:::0;::::1;:::i;:::-;;;6955:294;;;-1:-1:-1::0;7259:7:80::1;:21:::0;;;7296:27:::1;::::0;3462:25:103;;;7296:27:80::1;::::0;3450:2:103;3435:18;7296:27:80::1;3417:76:103::0;5716:209:80;5835:13;5872:46;5894:8;5904:13;5872:21;:46::i;:::-;5864:54;5716:209;-1:-1:-1;;;5716:209:80:o;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;;;;;;:::i;:::-;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;4335:36:103;;3531:14:47;;4323:2:103;4308:18;3531:14:47;4290:87:103;5187:210:80;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5323:67:80::1;5342:7;;5351:5;5358:13;5373:16;5323:18;:67::i;6243:191::-:0;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6382:45:80::1;6403:8;6413:13;6382:20;:45::i;4933:179::-:0;5023:13;5060:45;5082:7;;5091:13;5060:21;:45::i;:::-;5052:53;4933:179;-1:-1:-1;;4933:179:80:o;7506:169::-;7654:7;;7573:21;7639:23;;;:14;:23;;;;;7622:46;;7664:3;7622:16;:46::i;8012:1798::-;8196:10;8267:24;;;:14;:24;;;;;3257:3;;8246:46;;:20;:46::i;:::-;:62;8225:142;;;;-1:-1:-1;;;8225:142:80;;9363:2:103;8225:142:80;;;9345:21:103;9402:2;9382:18;;;9375:30;9441:34;9421:18;;;9414:62;-1:-1:-1;;;9492:18:103;;;9485:31;9533:19;;8225:142:80;9335:223:103;8225:142:80;8523:1;8491:29;;;:19;:29;;;;;;:33;;;:49;;;8528:12;8491:49;8483:91;;;;-1:-1:-1;;;8483:91:80;;9765:2:103;8483:91:80;;;9747:21:103;9804:2;9784:18;;;9777:30;9843:31;9823:18;;;9816:59;9892:18;;8483:91:80;9737:179:103;8483:91:80;8592:21;8584:67;;;;-1:-1:-1;;;8584:67:80;;5397:2:103;8584:67:80;;;5379:21:103;5436:2;5416:18;;;5409:30;5475:34;5455:18;;;5448:62;-1:-1:-1;;;5526:18:103;;;5519:31;5567:19;;8584:67:80;5369:223:103;8584:67:80;8708:24;;;;:14;:24;;;;;8685:63;;8734:13;8685:22;:63::i;:::-;8683:65;8682:378;;;;8962:13;-1:-1:-1;;;8962:42:80;:97;;;;-1:-1:-1;9008:20:80;;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;9008:35:80;719:10:59;9008:51:80;8962:97;8661:451;;;;-1:-1:-1;;;8661:451:80;;7381:2:103;8661:451:80;;;7363:21:103;7420:2;7400:18;;;7393:30;7459:34;7439:18;;;7432:62;-1:-1:-1;;;7510:18:103;;;7503:32;7552:19;;8661:451:80;7353:224:103;8661:451:80;-1:-1:-1;;;;;9130:30:80;;9122:78;;;;-1:-1:-1;;;9122:78:80;;7784:2:103;9122:78:80;;;7766:21:103;7823:2;7803:18;;;7796:30;7862:34;7842:18;;;7835:62;-1:-1:-1;;;7913:18:103;;;7906:33;7956:19;;9122:78:80;7756:225:103;9122:78:80;9262:1;9215:20;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;9215:35:80;9211:209;;9298:24;;;;:14;:24;;;;;9280:58;;9324:13;9280:17;:58::i;:::-;-1:-1:-1;9352:29:80;;;;:19;:29;;;;;:31;;;;;;:::i;:::-;;;;;;9405:4;9397:12;;9211:209;9430:20;;;;:10;:20;;;;;;;;:35;;;;;;;;:54;;-1:-1:-1;;;;;;9430:54:80;-1:-1:-1;;;;;9430:54:80;;;;;9569:24;;;:14;:24;;;;;9548:46;;:20;:46::i;:::-;9515:29;;;;:19;:29;;;;;;:79;9494:164;;;;-1:-1:-1;;;9494:164:80;;6155:2:103;9494:164:80;;;6137:21:103;6194:2;6174:18;;;6167:30;6233:34;6213:18;;;6206:62;-1:-1:-1;;;6284:18:103;;;6277:36;6330:19;;9494:164:80;6127:228:103;9494:164:80;9674:129;;;3976:25:103;;;4032:2;4017:18;;4010:34;;;-1:-1:-1;;;;;4080:32:103;;4060:18;;;4053:60;4156:14;;4149:22;4144:2;4129:18;;4122:50;9674:129:80;;;;;;;3963:3:103;9674:129:80;;;8012:1798;;;;;:::o;9884:662::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;10046:24:80::1;::::0;;;:14:::1;:24;::::0;;;;10023:63:::1;::::0;10072:13;10023:22:::1;:63::i;:::-;10015:106;;;::::0;-1:-1:-1;;;10015:106:80;;8188:2:103;10015:106:80::1;::::0;::::1;8170:21:103::0;8227:2;8207:18;;;8200:30;8266:32;8246:18;;;8239:60;8316:18;;10015:106:80::1;8160:180:103::0;10015:106:80::1;10153:24;::::0;;;:14:::1;:24;::::0;;;;10132:61:::1;::::0;10179:13;10132:20:::1;:61::i;:::-;-1:-1:-1::0;10204:29:80::1;::::0;;;:19:::1;:29;::::0;;;;:34;;10237:1:::1;::::0;10204:29;:34:::1;::::0;10237:1;;10204:34:::1;:::i;:::-;::::0;;;-1:-1:-1;;10255:20:80::1;::::0;;;:10:::1;:20;::::0;;;;;;;:35;;;;;;;;10248:42;;-1:-1:-1;;;;;;10248:42:80::1;::::0;;10384:24;;;:14:::1;:24:::0;;;;;10363:46:::1;::::0;:20:::1;:46::i;:::-;10330:29;::::0;;;:19:::1;:29;::::0;;;;;:79:::1;10309:155;;;::::0;-1:-1:-1;;;10309:155:80;;4990:2:103;10309:155:80::1;::::0;::::1;4972:21:103::0;5029:2;5009:18;;;5002:30;5068:34;5048:18;;;5041:62;-1:-1:-1;;;5119:18:103;;;5112:36;5165:19;;10309:155:80::1;4962:228:103::0;10309:155:80::1;10479:48;::::0;;3672:25:103;;;3728:2;3713:18;;3706:34;;;10479:48:80::1;::::0;3645:18:103;10479:48:80::1;3627:119:103::0;7751:190:80;7862:13;7899:20;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;7899:35:80;;7751:190::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;5818:123:64:-;5888:4;5911:23;5916:3;5928:5;5911:4;:23::i;6538:115::-;6601:7;6627:19;6635:3;4444:18;;4362:107;6995:129;7069:7;7095:22;7099:3;7111:5;7095:3;:22::i;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;3462:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;3435:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;4584:2:103;1703:113:88;;;4566:21:103;4623:2;4603:18;;;4596:30;4662:34;4642:18;;;4635:62;-1:-1:-1;;;4713:18:103;;;4706:35;4758:19;;1703:113:88;4556:227:103;1460:64:88;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;8951:2:103;4880:69:47;;;8933:21:103;8990:2;8970:18;;;8963:30;9029:34;9009:18;;;9002:62;-1:-1:-1;;;9080:18:103;;;9073:41;9131:19;;4880:69:47;8923:233:103;4880:69:47;1460:64:88:o;6319:138:64:-;6399:4;4250:19;;;:12;;;:19;;;;;;:24;;6422:28;4154:127;6109:129;6182:4;6205:26;6213:3;6225:5;6205:7;:26::i;2113:404::-;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;4811:118;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;2685:1388::-;2751:4;2888:19;;;:12;;;:19;;;;;;2922:15;;2918:1149;;3291:21;3315:14;3328:1;3315:10;:14;:::i;:::-;3363:18;;3291:38;;-1:-1:-1;3343:17:64;;3363:22;;3384:1;;3363:22;:::i;:::-;3343:42;;3417:13;3404:9;:26;3400:398;;3450:17;3470:3;:11;;3482:9;3470:22;;;;;;-1:-1:-1;;;3470:22:64;;;;;;;;;;;;;;;;;3450:42;;3621:9;3592:3;:11;;3604:13;3592:26;;;;;;-1:-1:-1;;;3592:26:64;;;;;;;;;;;;;;;;;;;;:38;;;;3704:23;;;:12;;;:23;;;;;:36;;;3400:398;3876:17;;:3;;:17;;;-1:-1:-1;;;3876:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;3968:3;:12;;:19;3981:5;3968:19;;;;;;;;;;;3961:26;;;4009:4;4002:11;;;;;;;2918:1149;4051:5;4044:12;;;;;14:257:103;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:325::-;;;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;857:2;842:18;;;;829:32;;-1:-1:-1;;;629:238:103:o;872:297::-;;992:2;980:9;971:7;967:23;963:32;960:2;;;1013:6;1005;998:22;960:2;1050:9;1044:16;1103:5;1096:13;1089:21;1082:5;1079:32;1069:2;;1130:6;1122;1115:22;1174:190;;1286:2;1274:9;1265:7;1261:23;1257:32;1254:2;;;1307:6;1299;1292:22;1254:2;-1:-1:-1;1335:23:103;;1244:120;-1:-1:-1;1244:120:103:o;1369:325::-;;;1498:2;1486:9;1477:7;1473:23;1469:32;1466:2;;;1519:6;1511;1504:22;1466:2;1560:9;1547:23;1537:33;;1620:2;1609:9;1605:18;1592:32;1633:31;1658:5;1633:31;:::i;:::-;1683:5;1673:15;;;1456:238;;;;;:::o;1699:258::-;;;1828:2;1816:9;1807:7;1803:23;1799:32;1796:2;;;1849:6;1841;1834:22;1796:2;-1:-1:-1;;1877:23:103;;;1947:2;1932:18;;;1919:32;;-1:-1:-1;1786:171:103:o;1962:393::-;;;;2108:2;2096:9;2087:7;2083:23;2079:32;2076:2;;;2129:6;2121;2114:22;2076:2;2170:9;2157:23;2147:33;;2227:2;2216:9;2212:18;2199:32;2189:42;;2281:2;2270:9;2266:18;2253:32;2294:31;2319:5;2294:31;:::i;:::-;2344:5;2334:15;;;2066:289;;;;;:::o;2763:356::-;-1:-1:-1;;;;;3018:32:103;;;;3000:51;;-1:-1:-1;;;3082:2:103;3067:18;;3060:53;2988:2;2973:18;;2955:164::o;6360:410::-;6562:2;6544:21;;;6601:2;6581:18;;;6574:30;6640:34;6635:2;6620:18;;6613:62;-1:-1:-1;;;6706:2:103;6691:18;;6684:44;6760:3;6745:19;;6534:236::o;8345:399::-;8547:2;8529:21;;;8586:2;8566:18;;;8559:30;8625:34;8620:2;8605:18;;8598:62;-1:-1:-1;;;8691:2:103;8676:18;;8669:33;8734:3;8719:19;;8519:225::o;10103:128::-;;10174:1;10170:6;10167:1;10164:13;10161:2;;;10180:18;;:::i;:::-;-1:-1:-1;10216:9:103;;10151:80::o;10236:125::-;;10304:1;10301;10298:8;10295:2;;;10309:18;;:::i;:::-;-1:-1:-1;10346:9:103;;10285:76::o;10366:135::-;;-1:-1:-1;;10426:17:103;;10423:2;;;10446:18;;:::i;:::-;-1:-1:-1;10493:1:103;10482:13;;10413:88::o;10506:127::-;10567:10;10562:3;10558:20;10555:1;10548:31;10598:4;10595:1;10588:15;10622:4;10619:1;10612:15;10638:131;-1:-1:-1;;;;;10713:31:103;;10703:42;;10693:2;;10759:1;10756;10749:12"},"methodIdentifiers":{"MAX_CONTRACTS()":"24042a0a","_contracts(bytes32,bytes32)":"4a941e5e","_contractsInRelease(bytes32)":"69923515","contractName(uint256)":"f6b3e7d0","contracts()":"6c0f79b6","deregister(bytes32)":"20813154","deregisterInRelease(bytes32,bytes32)":"dc527b08","ensureSender(address,bytes32)":"2ca65a79","getContract(bytes32)":"e16c7d98","getContractInRelease(bytes32,bytes32)":"b0ef18a0","getRelease()":"76b707b7","initialize(address)":"c4d66de8","initializeRegistry(bytes32)":"56bbc19d","prepareRelease(bytes32)":"893917ea","register(bytes32,address)":"d22057a9","registerInRelease(bytes32,bytes32,address)":"1d5e7314","release()":"86d1a69f","startBlock()":"48cd4cb1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"LogContractDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isNew\",\"type\":\"bool\"}],\"name\":\"LogContractRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"}],\"name\":\"LogReleasePrepared\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_CONTRACTS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"_contracts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"_contractsInRelease\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"contractName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_numberOfContracts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregisterInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"ensureSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_senderMatches\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractInRelease\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRelease\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_initialRelease\",\"type\":\"bytes32\"}],\"name\":\"initializeRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newRelease\",\"type\":\"bytes32\"}],\"name\":\"prepareRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"registerInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"release\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deregister(bytes32)\":{\"details\":\"Deregister contract in the current release\"},\"getContract(bytes32)\":{\"details\":\"Get contract's address in the current release\"},\"getContractInRelease(bytes32,bytes32)\":{\"details\":\"Get contract's address in certain release\"},\"getRelease()\":{\"details\":\"get current release\"},\"prepareRelease(bytes32)\":{\"details\":\"Create new release, copy contracts from previous release\"},\"register(bytes32,address)\":{\"details\":\"Register contract in the current release\"},\"registerInRelease(bytes32,bytes32,address)\":{\"details\":\"Register contract in certain release\"}},\"stateVariables\":{\"MAX_CONTRACTS\":{\"details\":\"Save number of items to iterate through Currently we have < 20 contracts.\"},\"release\":{\"details\":\"Current release We use semantic versioning.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract implements the `IRegistry` interface and inherits from the `CoreController` contract. The contract provides functionality for registering, deregistering, and accessing contracts within different releases. It maintains mappings and sets to store contract names and addresses in different releases. - `MAX_CONTRACTS`: A constant variable set to 100, representing the maximum number of contracts allowed in a release. - `release`: A bytes32 variable representing the current release identifier. - `startBlock`: An unsigned integer storing the block number at which the contract was deployed. - `_contracts`: A nested mapping that stores contract addresses based on the release and contract name. - `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release. - `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release. Functions: - `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs. - `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release. - `getRelease()`: Returns the current release identifier. - `getContract()`: Returns the address of a contract by its name in the current release. - `register()`: Registers a contract with a given name and address in the current release. - `deregister()`: Deregisters a contract from the current release. - `getContractInRelease()`: Returns the address of a specific contract within a given release. - `registerInRelease()`: Registers a contract in a specific release. - `deregisterInRelease()`: Deregisters a contract name from a specific release. - `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one. - `contracts()`: Returns the number of contracts in the current release. - `contractName()`: Returns the name of the contract at the specified index in the contractNames set. Internal functions: - `_getContractInRelease()`: Returns the address of a contract in a specific release. - `_registerInRelease()`: Registers a contract in a release. - `_deregisterInRelease()`: Deregisters a contract in a specific release. The contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered. Overall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/RegistryController.sol\":\"RegistryController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/RegistryController.sol\":{\"keccak256\":\"0x509cc6e92d7d46a87f3c7bb05b23570f45d1a5a96a30af82bfff77f0237a0d44\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://66d5cca04102b54cb7bdb1d3e08f7864c2bdefd1c4246741b36882f3c4ea459d\",\"dweb:/ipfs/QmYBhsMAj1pvMNNDkB8ccW1yoJJraJobsvdQX7rRUrfx5y\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/modules/TreasuryModule.sol":{"TreasuryModule":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"callSuccess","type":"bool"},{"indexed":false,"internalType":"uint256","name":"returnDataLength","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"LogTransferHelperCallFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tokenIsContract","type":"bool"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"LogTransferHelperInputValidation1Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allowance","type":"uint256"}],"name":"LogTransferHelperInputValidation2Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fixedFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fractionalFee","type":"uint256"}],"name":"LogTreasuryCapitalFeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryCapitalProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryCapitalTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"instanceWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryFeesTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"walletAddress","type":"address"}],"name":"LogTreasuryInstanceWalletSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPayoutTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fixedFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fractionalFee","type":"uint256"}],"name":"LogTreasuryPremiumFeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryPremiumTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"productId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"erc20Address","type":"address"}],"name":"LogTreasuryProductTokenSet","type":"event"},{"anonymous":false,"inputs":[],"name":"LogTreasuryResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"address","name":"walletAddress","type":"address"}],"name":"LogTreasuryRiskpoolWalletSet","type":"event"},{"anonymous":false,"inputs":[],"name":"LogTreasurySuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryWithdrawalProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolWalletAddress","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTreasuryWithdrawalTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"FRACTIONAL_FEE_MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FRACTION_FULL_UNIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateFee","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"}],"name":"createFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentToken","outputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFractionFullUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getInstanceWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpoolWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"capitalAmount","type":"uint256"}],"name":"processCapital","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netCapitalAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPayoutAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"processPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netPremiumAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processWithdrawal","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setCapitalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"instanceWalletAddress","type":"address"}],"name":"setInstanceWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setPremiumFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"}],"name":"setProductToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"riskpoolWalletAddress","type":"address"}],"name":"setRiskpoolWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspend","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c6200002f565b6001805460ff60a01b19169055620000f1565b600054610100900460ff16156200009c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000ef576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61474180620001016000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638ca946aa116100c3578063cab2504d1161007c578063cab2504d1461030d578063cc9cf8cd14610320578063d935807514610333578063e6400bbe14610346578063f964690d1461034e578063fe64372b146103565761014d565b80638ca946aa1461029c5780638ccf5ca2146102af578063a434f0ad146102c7578063a44330c4146102da578063b79f5eab146102eb578063c4d66de8146102fa5761014d565b806334e731221161011557806334e73122146101f7578063490816371461020a5780635c975abb146102335780635ecc078e1461025657806362f0ab551461026957806386039aed146102895761014d565b806301132a7f146101525780630210826814610167578063038696bb1461019c578063046f7da2146101c757806326debdaa146101cf575b600080fd5b610165610160366004613e2c565b610369565b005b61017a610175366004613d37565b6105a3565b6040805193151584526020840192909252908201526060015b60405180910390f35b6101af6101aa366004613d1f565b610aac565b6040516001600160a01b039091168152602001610193565b610165610c24565b6101e26101dd36600461405a565b610cfd565b60408051928352602083019190915201610193565b6101e261020536600461405a565b6113b4565b6101af610218366004613d1f565b6000908152600360205260409020546001600160a01b031690565b610246600154600160a01b900460ff1690565b6040519015158152602001610193565b61017a610264366004613d1f565b611438565b61027c61027736600461406c565b6115b5565b60405161019391906143cb565b61016561029736600461402b565b611825565b6101656102aa366004613e2c565b611b08565b670de0b6b3a76400005b604051908152602001610193565b61027c6102d5366004613d1f565b611d31565b6002546001600160a01b03166101af565b6102b9670de0b6b3a764000081565b610165610308366004613cc0565b611e53565b61016561031b366004613cc0565b611fcd565b61016561032e36600461402b565b612157565b6101e261034136600461405a565b6126ce565b610165612d04565b6102b9612ddd565b6101e2610364366004613d37565b612df3565b61037c600154600160a01b900460ff1690565b156103a25760405162461bcd60e51b815260040161039990614294565b60405180910390fd5b6000546201000090046001600160a01b0316632ca65a796103c03390565b6040518263ffffffff1660e01b81526004016103dc9190614160565b60206040518083038186803b1580156103f457600080fd5b505afa158015610408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042c9190613cff565b6104485760405162461bcd60e51b815260040161039990614347565b600754604051630e48080360e21b8152823560048201526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561048c57600080fd5b505afa1580156104a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c49190613cff565b6105105760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3032323a4e4f545f50524f44554354000000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290610534828261466e565b505080156105545781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527f389ab9b2665a8ef1adf5a151c45e2546c4b1ffe8cfa537dd96a5eb8046b06efe906060015b60405180910390a15050565b60008060006105bb600154600160a01b900460ff1690565b156105d85760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166106005760405162461bcd60e51b81526004016103999061424d565b8460008061060d8361333e565b90925090506001600160a01b0381166106385760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b61064d816134c9565b6001600160a01b0316306001600160a01b03161461067d5760405162461bcd60e51b8152600401610399906142c9565b6106976d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146106c75760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018b90526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561070d57600080fd5b505afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190613f8e565b9050806020015189826040015161075c9190614456565b11156107aa5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5452532d3033303a414d4f554e545f544f4f5f424947000000006044820152606401610399565b60085460405163296586d360e21b8152600481018c90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156107ef57600080fd5b505afa158015610803573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082b9190810190613e64565b905061083b81602001518b6113b4565b6020830151919950975060009061085190610aac565b8251604051636eb1769f60e11b81526001600160a01b0391821660048201523060248201529192508c919083169063dd62ed3e9060440160206040518083038186803b1580156108a057600080fd5b505afa1580156108b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190614013565b10156108ea5760009950505050610aa1565b81516002546109049183916001600160a01b03168c6135b1565b8251600254604051929c507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e9261094792916001600160a01b0316908d9061413c565b60405180910390a1896109a65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3033313a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b6000806109b28e61333e565b915091506109c6838560000151838d6135b1565b9b507f6e18cdd81334cca9a49a7b3a4305750ab3d5e62ee7fa04ab08b28f21a53486718460000151828c6040516109ff9392919061413c565b60405180910390a18b610a625760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3033323a5052454d49554d5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b604080518f8152602081018f90527fc78d1fffca4ae6e34ee8442f7e1bc6fe124bf1a3374c7a902cae38d496ced322910160405180910390a150505050505b505050509250925092565b600754604051630e48080360e21b8152600481018390526000916001600160a01b031690633920200c9060240160206040518083038186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b299190613cff565b80610bab575060075460405163ba80b8ed60e01b8152600481018490526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab9190613cff565b610c055760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3037303a4e4f545f50524f445543545f4f525f52495360448201526412d413d3d360da1b6064820152608401610399565b506000818152600560205260409020546001600160a01b03165b919050565b6000546201000090046001600160a01b0316632ca65a79610c423390565b6040518263ffffffff1660e01b8152600401610c5e9190614160565b60206040518083038186803b158015610c7657600080fd5b505afa158015610c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cae9190613cff565b610cca5760405162461bcd60e51b815260040161039990614347565b610cd26138c3565b6040517f7bd43c6857df1d4fd40c4e86f9cf80ba02adf2e9fdadf03d9e8057eb429fcc5b90600090a1565b600080610d13600154600160a01b900460ff1690565b15610d305760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316610d585760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610da157600080fd5b505afa158015610db5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ddd9190810190613d58565b905060006001600160a01b0316610e0d82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b03161415610e345760405162461bcd60e51b815260040161039990614300565b610e4f6e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b031614610e7f5760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610ec457600080fd5b505afa158015610ed8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f009190810190613d58565b60065460405163620d1b0560e11b8152600481018a90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b158015610f4a57600080fd5b505afa158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190613ce3565b90506000610f938360200151611d31565b90506000816080015111610fe95760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3035303a4645455f535045435f554e444546494e45446044820152606401610399565b6020808401516000908152600590915260409020546001600160a01b0316611011828a613918565b975061101d888a6144ad565b6040516370a0823160e01b81526001600160a01b0385811660048301529198508a918316906370a082319060240160206040518083038186803b15801561106357600080fd5b505afa158015611077573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109b9190614013565b10156110e95760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5452532d3035323a42414c414e43455f544f4f5f534d414c4c006044820152606401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190614013565b10156111d45760405162461bcd60e51b815260206004820152603260248201527f4552524f523a5452532d3035333a4341504954414c5f5452414e534645525f41604482015271131313d5d05390d157d513d3d7d4d350531360721b6064820152608401610399565b6002546000906111f190839086906001600160a01b03168c6135b1565b6002546040519192507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e916112359187916001600160a01b03909116908d9061413c565b60405180910390a1806112945760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3035343a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b60006112b986602001516000908152600360205260409020546001600160a01b031690565b90506112c78386838c6135b1565b91507f4a9a3e028031198ad78a401460c1524a9322592291fed6b5306710aae5ff6d3985828b6040516112fc9392919061413c565b60405180910390a18161135f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3035353a4341504954414c5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b602080870151604080519182529181018e90529081018c90527f855e172a7eb8b6ab1abf4014f1e3683e97000f5c207690b9d8447c9df1c00eb39060600160405180910390a150505050505050509250929050565b60008060006113c285611d31565b905060008160800151116114185760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3032343a4645455f535045435f554e444546494e45446044820152606401610399565b6114228185613918565b925061142e83856144ad565b9150509250929050565b6000806000611450600154600160a01b900460ff1690565b1561146d5760405162461bcd60e51b815260040161039990614294565b67547265617375727960c01b611482816134c9565b6001600160a01b0316306001600160a01b0316146114b25760405162461bcd60e51b8152600401610399906142c9565b6114cc6d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146114fc5760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018790526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561154257600080fd5b505afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613f8e565b90508060200151816040015110156115ac576115a4868260400151836020015161017591906144ad565b919650945092505b50509193909250565b6115ee6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600754604051630e48080360e21b8152600481018890526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561163257600080fd5b505afa158015611646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166a9190613cff565b806116ec575060075460405163ba80b8ed60e01b8152600481018890526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b1580156116b457600080fd5b505afa1580156116c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ec9190613cff565b6117495760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3032303a49445f4e4f545f50524f445543545f4f525f604482015267149254d2d413d3d360c21b6064820152608401610399565b61175c6004670de0b6b3a764000061446e565b8411156117b75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5452532d3032313a46524143494f4e414c5f4645455f544f4f5f60448201526242494760e81b6064820152608401610399565b6040518060c0016040528087815260200186815260200185815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525042602082018190526040909101529695505050505050565b611838600154600160a01b900460ff1690565b156118555760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796118733390565b6040518263ffffffff1660e01b815260040161188f9190614160565b60206040518083038186803b1580156118a757600080fd5b505afa1580156118bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118df9190613cff565b6118fb5760405162461bcd60e51b815260040161039990614347565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119789190613ce3565b60075460405163ba80b8ed60e01b8152600481018690529192506001600160a01b03169063ba80b8ed9060240160206040518083038186803b1580156119bd57600080fd5b505afa1580156119d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f59190613cff565b611a415760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3031363a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b6001600160a01b038216611aa15760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031373a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b60008381526003602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251868152918201527f347fbbd524a9e157686795820f5abf777a026670f7dbaa751f4f190abc52f3a2910160405180910390a1505050565b611b1b600154600160a01b900460ff1690565b15611b385760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a79611b563390565b6040518263ffffffff1660e01b8152600401611b729190614160565b60206040518083038186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190613cff565b611bde5760405162461bcd60e51b815260040161039990614347565b60075460405163ba80b8ed60e01b8152823560048201526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611c2257600080fd5b505afa158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a9190613cff565b611ca65760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3032333a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290611cca828261466e565b50508015611cea5781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527fc3ef28d06d8c4c14101ca058d5b1507f9710ae8e34940a185cff056c375671a990606001610597565b611d6a6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600460008381526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382018054611db690614607565b80601f0160208091040260200160405190810160405280929190818152602001828054611de290614607565b8015611e2f5780601f10611e0457610100808354040283529160200191611e2f565b820191906000526020600020905b815481529060010190602001808311611e1257829003601f168201915b50505050508152602001600482015481526020016005820154815250509050919050565b600054610100900460ff1615808015611e735750600054600160ff909116105b80611e8d5750303b158015611e8d575060005460ff166001145b611ef05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610399565b6000805460ff191660011790558015611f13576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f3d600090565b6541636365737360d01b14611f7f57611f5e6541636365737360d01b6134c9565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611f87613a1c565b8015611fc9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610597565b5050565b611fe0600154600160a01b900460ff1690565b15611ffd5760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a7961201b3390565b6040518263ffffffff1660e01b81526004016120379190614160565b60206040518083038186803b15801561204f57600080fd5b505afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190613cff565b6120a35760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166121035760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031353a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f3769187331e10b0394c677689372317cc625318f5e50b76cb4da221dbdf05ef89060200160405180910390a150565b61216a600154600160a01b900460ff1690565b156121875760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796121a53390565b6040518263ffffffff1660e01b81526004016121c19190614160565b60206040518083038186803b1580156121d957600080fd5b505afa1580156121ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122119190613cff565b61222d5760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166122835760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3031303a544f4b454e5f414444524553535f5a45524f6044820152606401610399565b600754604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ff9190613cff565b61234b5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3031313a4e4f545f50524f44554354000000000000006044820152606401610399565b6000828152600560205260409020546001600160a01b0316156123c05760405162461bcd60e51b815260206004820152602760248201527f4552524f523a5452532d3031323a50524f445543545f544f4b454e5f414c524560448201526610511657d4d15560ca1b6064820152608401610399565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561240557600080fd5b505afa158015612419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243d9190613ce3565b9050816001600160a01b0316816001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561248257600080fd5b505afa158015612496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ba9190613ce3565b6001600160a01b0316146125295760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031333a50524f445543545f544f4b454e5f4144445260448201526f4553535f4e4f545f4d41544348494e4760801b6064820152608401610399565b600954604051630d229f3b60e41b8152600481018590526000916001600160a01b03169063d229f3b09060240160206040518083038186803b15801561256e57600080fd5b505afa158015612582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a69190614013565b6000818152600560205260409020549091506001600160a01b031615806125e657506000818152600560205260409020546001600160a01b038481169116145b61264b5760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031343a5249534b504f4f4c5f544f4b454e5f41444460448201526f524553535f4e4f545f4d414348494e4760801b6064820152608401610399565b600084815260056020908152604080832080546001600160a01b0388166001600160a01b03199182168117909255858552938290208054909416811790935580518781529182018490528101919091527f78b40e42f597552da073de514ce9a92a14a8e48cb9bb12a1fae74564a0dcf3ab9060600160405180910390a150505050565b6000806126e4600154600160a01b900460ff1690565b156127015760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166127295760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561277257600080fd5b505afa158015612786573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127ae9190810190613d58565b905060006001600160a01b03166127de82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b031614156128055760405162461bcd60e51b815260040161039990614300565b6128206e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b0316146128505760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561289557600080fd5b505afa1580156128a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128d19190810190613d58565b9050858160c001516128e39190614456565b8160a00151101580612906575060c08101511580156129065750858160e0015110155b6129785760405162461bcd60e51b815260206004820152603960248201527f4552524f523a5452532d3036303a43415041434954595f4f525f42414c414e4360448201527f455f534d414c4c45525f5448414e5f5749544844524157414c000000000000006064820152608401610399565b600061299d82602001516000908152600360205260409020546001600160a01b031690565b60065460405163620d1b0560e11b8152600481018b90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b1580156129e757600080fd5b505afa1580156129fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1f9190613ce3565b602084810151600090815260059091526040908190205490516370a0823160e01b81526001600160a01b038581166004830152929350911690899082906370a082319060240160206040518083038186803b158015612a7d57600080fd5b505afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab59190614013565b1015612b1b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3036313a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b158015612b6557600080fd5b505afa158015612b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9d9190614013565b1015612c005760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a5452532d3036323a5749544844524157414c5f414c4c4f57414e60448201526b10d157d513d3d7d4d350531360a21b6064820152608401610399565b600097508896506000612c158285858b6135b1565b90507fbe5d373e2476acbcb4aa97c605f358cfe7748bebff73d2d3195f587dc61f59c384848a604051612c4a9392919061413c565b60405180910390a180612cb05760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3036333a5749544844524157414c5f5452414e5346456044820152671497d1905253115160c21b6064820152608401610399565b602080860151604080519182529181018d90529081018990527fdbb3ae752b98a0c1c3c26fe1b0a7faa343da1c6fe5e0a80624f36e8e25e22edf9060600160405180910390a1505050505050509250929050565b6000546201000090046001600160a01b0316632ca65a79612d223390565b6040518263ffffffff1660e01b8152600401612d3e9190614160565b60206040518083038186803b158015612d5657600080fd5b505afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190613cff565b612daa5760405162461bcd60e51b815260040161039990614347565b612db2613b52565b6040517f5508e022c084f2aba2d9ebf198ee0e2e205840df815b91112781505e6798bfdc90600090a1565b612df06004670de0b6b3a764000061446e565b81565b600080612e09600154600160a01b900460ff1690565b15612e265760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316612e4e5760405162461bcd60e51b81526004016103999061424d565b83600080612e5b8361333e565b90925090506001600160a01b038116612e865760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b612e9b816134c9565b6001600160a01b0316306001600160a01b031614612ecb5760405162461bcd60e51b8152600401610399906142c9565b612ee56d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b031614612f155760405162461bcd60e51b81526004016103999061438a565b60085460405163296586d360e21b8152600481018a90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015612f5a57600080fd5b505afa158015612f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f969190810190613e64565b90506000612fa78260200151610aac565b9050600080612fb58c61333e565b915091506000600860009054906101000a90046001600160a01b03166001600160a01b031663cef58f138e8e6040518363ffffffff1660e01b8152600401613007929190918252602082015260400190565b60006040518083038186803b15801561301f57600080fd5b505afa158015613033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261305b9190810190613f14565b60408082015190516370a0823160e01b81526001600160a01b03858116600483015292935090918616906370a082319060240160206040518083038186803b1580156130a657600080fd5b505afa1580156130ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130de9190614013565b10156131445760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3034323a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b6040818101519051636eb1769f60e11b81526001600160a01b03848116600483015230602483015286169063dd62ed3e9060440160206040518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190614013565b10156132275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3034333a5041594f55545f414c4c4f57414e43455f5460448201526713d3d7d4d350531360c21b6064820152608401610399565b600061323d8584886000015185604001516135b1565b6040808401518851915160009f50909d509192507f967b0d7f4806051ef2c1375d324be9be0c739a4e34845bc060210577fd677f85916132809186918f9061413c565b60405180910390a1806132e15760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5452532d3034343a5041594f55545f5452414e534645525f46416044820152631253115160e21b6064820152608401610399565b855160408381015181518781526001600160a01b03909316602084015282820152517f8b5ad77a07a1f8dbb7f91bd53d28ecf3c900534c88f13672f6f2ddcf01ec7f859181900360600190a1505050505050505050509250929050565b60085460405163296586d360e21b815260048101839052600091829182916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561338757600080fd5b505afa15801561339b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133c39190810190613e64565b6009546020820151604051630d229f3b60e41b815260048101919091529192506001600160a01b03169063d229f3b09060240160206040518083038186803b15801561340e57600080fd5b505afa158015613422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134469190614013565b9250600083116134a75760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5452532d3039323a50524f445543545f574954484f55545f524960448201526514d2d413d3d360d21b6064820152608401610399565b505060008181526003602052604090205490926001600160a01b039091169150565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561351357600080fd5b505afa158015613527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354b9190613ce3565b90506001600160a01b038116610c1f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610399565b6000846001600160a01b038082163b151590861615806135d857506001600160a01b038516155b806135e1575080155b1561363c576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a16000925050506138bb565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561368157600080fd5b505afa158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b99190614013565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b15801561370657600080fd5b505afa15801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190614013565b90508582108061374d57508581105b156137985760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a160009450505050506138bb565b6000808a6001600160a01b03166323b872dd8b8b8b6040516024016137bf9392919061413c565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516137f89190614120565b6000604051808303816000865af19150503d8060008114613835576040519150601f19603f3d011682016040523d82523d6000602084013e61383a565b606091505b50915091508180156138705750805115806138705750805160201480156138705750808060200190518101906138709190613cff565b9650866138b4577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b828251836040516138ab9392919061419a565b60405180910390a15b5050505050505b949350505050565b6138cb613b95565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b606082015151600090156139875760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3039303a4645455f43414c43554c4154494f4e5f444160448201526f151057d393d517d4d5541413d495115160821b6064820152608401610399565b5060208201516040830151156139c757670de0b6b3a76400008284604001516139b0919061448e565b6139ba919061446e565b6139c49082614456565b90505b818110613a165760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3039313a4645455f544f4f5f424947000000000000006044820152606401610399565b92915050565b600054610100900460ff16613a875760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610399565b613a996542756e646c6560d01b6134c9565b600680546001600160a01b0319166001600160a01b0392909216919091179055613ace6810dbdb5c1bdb995b9d60ba1b6134c9565b600780546001600160a01b0319166001600160a01b0392909216919091179055613b0065506f6c69637960d01b6134c9565b600880546001600160a01b0319166001600160a01b0392909216919091179055613b3063141bdbdb60e21b6134c9565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b613b5a613bed565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138fb3390565b613ba8600154600160a01b900460ff1690565b613beb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610399565b565b613c00600154600160a01b900460ff1690565b15613beb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610399565b600082601f830112613c50578081fd5b815167ffffffffffffffff811115613c6a57613c6a614658565b613c7d601f8201601f1916602001614425565b818152846020838601011115613c91578283fd5b6138bb8260208301602087016145d7565b805160048110610c1f57600080fd5b805160038110610c1f57600080fd5b600060208284031215613cd1578081fd5b8135613cdc816146f3565b9392505050565b600060208284031215613cf4578081fd5b8151613cdc816146f3565b600060208284031215613d10578081fd5b81518015158114613cdc578182fd5b600060208284031215613d30578081fd5b5035919050565b60008060408385031215613d49578081fd5b50508035926020909101359150565b600060208284031215613d69578081fd5b815167ffffffffffffffff80821115613d80578283fd5b8184019150610140808387031215613d96578384fd5b613d9f81614425565b9050825181526020830151602082015260408301516040820152613dc560608401613ca2565b6060820152608083015182811115613ddb578485fd5b613de787828601613c40565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613e3d578081fd5b813567ffffffffffffffff811115613e53578182fd5b820160c08185031215613cdc578182fd5b600060208284031215613e75578081fd5b815167ffffffffffffffff80821115613e8c578283fd5b9083019060c08286031215613e9f578283fd5b613ea960c0614425565b8251613eb4816146f3565b815260208381015190820152613ecc60408401613cb1565b6040820152606083015182811115613ee2578485fd5b613eee87828601613c40565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613f25578081fd5b815167ffffffffffffffff80821115613f3c578283fd5b9083019060c08286031215613f4f578283fd5b613f5960c0614425565b82518152602083015160028110613f6e578485fd5b602082015260408381015190820152606083015182811115613ee2578485fd5b6000610120808385031215613fa1578182fd5b613faa81614425565b9050613fb583613cb1565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060208284031215614024578081fd5b5051919050565b6000806040838503121561403d578182fd5b82359150602083013561404f816146f3565b809150509250929050565b60008060408385031215613d49578182fd5b600080600080600060808688031215614083578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff808211156140af578283fd5b818801915088601f8301126140c2578283fd5b8135818111156140d0578384fd5b8960208285010111156140e1578384fd5b9699959850939650602001949392505050565b6000815180845261410c8160208601602086016145d7565b601f01601f19169290920160200192915050565b600082516141328184602087016145d7565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60008415158252836020830152606060408301526141bb60608301846140f4565b95945050505050565b60208082526027908201527f4552524f523a5452532d3030323a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526022908201527f4552524f523a5452532d3030353a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b60208082526027908201527f4552524f523a5452532d3030313a494e5354414e43455f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b6020808252818101527f4552524f523a5452532d3030343a54524541535552595f53555350454e444544604082015260600190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526027908201527f4552524f523a5452532d3030333a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015261440560e08401826140f4565b9050608084015160a084015260a084015160c08401528091505092915050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561444e5761444e614658565b604052919050565b6000821982111561446957614469614642565b500190565b60008261448957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156144a8576144a8614642565b500290565b6000828210156144bf576144bf614642565b500390565b5b81811015611fc957600081556001016144c5565b67ffffffffffffffff8311156144f1576144f1614658565b6144fb8154614607565b600080601f8611601f84118181171561451a5760008681526020902092505b8015614549576020601f890104830160208910156145355750825b6145476020601f8801048501826144c4565b505b50806001811461457b57600094508715614564578387013594505b6002880260001960088a021c1986161786556145cd565b601f198816945082845b868110156145a55788860135825560209586019560019092019101614585565b50888610156145c257878501356000196008601f8c16021c191681555b506001600289020186555b5050505050505050565b60005b838110156145f25781810151838201526020016145da565b83811115614601576000848401525b50505050565b60028104600182168061461b57607f821691505b6020821081141561463c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8135815560208201356001820155604082013560028201556060820135601e1983360301811261469d57600080fd5b8201803567ffffffffffffffff8111156146b657600080fd5b6020820191508036038213156146cb57600080fd5b6146d98183600386016144d9565b50506080820135600482015560a082013560058201555050565b6001600160a01b038116811461470857600080fd5b5056fea26469706673582212209c6e17d64e138985579699ae8a3c6c60853f74a96d720c58205175e0cdbe5ef264736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x2F JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH3 0xF1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x9C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xEF JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x4741 DUP1 PUSH3 0x101 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8CA946AA GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xCAB2504D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xCAB2504D EQ PUSH2 0x30D JUMPI DUP1 PUSH4 0xCC9CF8CD EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0xD9358075 EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0xE6400BBE EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xF964690D EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x356 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x8CA946AA EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x8CCF5CA2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xA434F0AD EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0xA44330C4 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0xB79F5EAB EQ PUSH2 0x2EB JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x2FA JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x34E73122 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x34E73122 EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0x49081637 EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0x5ECC078E EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0x62F0AB55 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x86039AED EQ PUSH2 0x289 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1132A7F EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x2108268 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x38696BB EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0x46F7DA2 EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x26DEBDAA EQ PUSH2 0x1CF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x165 PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E2C JUMP JUMPDEST PUSH2 0x369 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17A PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D37 JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH2 0x1AA CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0xAAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x165 PUSH2 0xC24 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x1DD CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0xCFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x205 CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0x13B4 JUMP JUMPDEST PUSH2 0x1AF PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x246 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x17A PUSH2 0x264 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0x1438 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x277 CALLDATASIZE PUSH1 0x4 PUSH2 0x406C JUMP JUMPDEST PUSH2 0x15B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x43CB JUMP JUMPDEST PUSH2 0x165 PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x1825 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x3E2C JUMP JUMPDEST PUSH2 0x1B08 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x2D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0x1D31 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1AF JUMP JUMPDEST PUSH2 0x2B9 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x308 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CC0 JUMP JUMPDEST PUSH2 0x1E53 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x31B CALLDATASIZE PUSH1 0x4 PUSH2 0x3CC0 JUMP JUMPDEST PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x165 PUSH2 0x32E CALLDATASIZE PUSH1 0x4 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x2157 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0x26CE JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2D04 JUMP JUMPDEST PUSH2 0x2B9 PUSH2 0x2DDD JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D37 JUMP JUMPDEST PUSH2 0x2DF3 JUMP JUMPDEST PUSH2 0x37C PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3C0 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3DC SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x408 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE DUP3 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x48C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x510 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032323A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 DUP3 SWAP1 PUSH2 0x534 DUP3 DUP3 PUSH2 0x466E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x554 JUMPI DUP2 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP2 DUP5 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x389AB9B2665A8EF1ADF5A151C45E2546C4B1FFE8CFA537DD96A5EB8046B06EFE SWAP1 PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x5BB PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x5D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x600 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST DUP5 PUSH1 0x0 DUP1 PUSH2 0x60D DUP4 PUSH2 0x333E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x638 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x41C4 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x64D DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x67D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x697 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x70D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x721 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x745 SWAP2 SWAP1 PUSH2 0x3F8E JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP10 DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x75C SWAP2 SWAP1 PUSH2 0x4456 JUMP JUMPDEST GT ISZERO PUSH2 0x7AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033303A414D4F554E545F544F4F5F42494700000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x803 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x82B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST SWAP1 POP PUSH2 0x83B DUP2 PUSH1 0x20 ADD MLOAD DUP12 PUSH2 0x13B4 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP1 PUSH2 0x851 SWAP1 PUSH2 0xAAC JUMP JUMPDEST DUP3 MLOAD PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE SWAP2 SWAP3 POP DUP13 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8D8 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x8EA JUMPI PUSH1 0x0 SWAP10 POP POP POP POP PUSH2 0xAA1 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x2 SLOAD PUSH2 0x904 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH2 0x35B1 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP13 POP PUSH32 0xACB52383128D246C2AB215825C8705382E85E3D779899196DDD096C74C70880E SWAP3 PUSH2 0x947 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP14 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP10 PUSH2 0x9A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033313A4645455F5452414E534645525F4641494C45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9B2 DUP15 PUSH2 0x333E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9C6 DUP4 DUP6 PUSH1 0x0 ADD MLOAD DUP4 DUP14 PUSH2 0x35B1 JUMP JUMPDEST SWAP12 POP PUSH32 0x6E18CDD81334CCA9A49A7B3A4305750AB3D5E62EE7FA04AB08B28F21A5348671 DUP5 PUSH1 0x0 ADD MLOAD DUP3 DUP13 PUSH1 0x40 MLOAD PUSH2 0x9FF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 PUSH2 0xA62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033323A5052454D49554D5F5452414E534645525F46 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1052531151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP16 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE PUSH32 0xC78D1FFFCA4AE6E34EE8442F7E1BC6FE124BF1A3374C7A902CAE38D496CED322 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMPDEST POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB29 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST DUP1 PUSH2 0xBAB JUMPI POP PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB87 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBAB SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0xC05 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3037303A4E4F545F50524F445543545F4F525F524953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x12D413D3D3 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xC42 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC5E SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC8A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCAE SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0xCCA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH2 0xCD2 PUSH2 0x38C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7BD43C6857DF1D4FD40C4E86F9CF80BA02ADF2E9FDADF03D9E8057EB429FCC5B SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD13 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0xD30 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD58 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE DUP6 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xDDD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE0D DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0xE34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4300 JUMP JUMPDEST PUSH2 0xE4F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE7F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xED8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xF00 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x620D1B05 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC41A360A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF5E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF82 SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xF93 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x1D31 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0xFE9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035303A4645455F535045435F554E444546494E4544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1011 DUP3 DUP11 PUSH2 0x3918 JUMP JUMPDEST SWAP8 POP PUSH2 0x101D DUP9 DUP11 PUSH2 0x44AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP9 POP DUP11 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1063 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1077 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x109B SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x10E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035323A42414C414E43455F544F4F5F534D414C4C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP11 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1147 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x116B SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x11D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035333A4341504954414C5F5452414E534645525F41 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x131313D5D05390D157D513D3D7D4D3505313 PUSH1 0x72 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x11F1 SWAP1 DUP4 SWAP1 DUP7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH32 0xACB52383128D246C2AB215825C8705382E85E3D779899196DDD096C74C70880E SWAP2 PUSH2 0x1235 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP14 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x1294 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035343A4645455F5452414E534645525F4641494C45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B9 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x12C7 DUP4 DUP7 DUP4 DUP13 PUSH2 0x35B1 JUMP JUMPDEST SWAP2 POP PUSH32 0x4A9A3E028031198AD78A401460C1524A9322592291FED6B5306710AAE5FF6D39 DUP6 DUP3 DUP12 PUSH1 0x40 MLOAD PUSH2 0x12FC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH2 0x135F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035353A4341504954414C5F5452414E534645525F46 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1052531151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP8 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE SWAP2 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 DUP2 ADD DUP13 SWAP1 MSTORE PUSH32 0x855E172A7EB8B6AB1ABF4014F1E3683E97000F5C207690B9D8447C9DF1C00EB3 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x13C2 DUP6 PUSH2 0x1D31 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1418 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032343A4645455F535045435F554E444546494E4544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x1422 DUP2 DUP6 PUSH2 0x3918 JUMP JUMPDEST SWAP3 POP PUSH2 0x142E DUP4 DUP6 PUSH2 0x44AD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1450 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x146D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1482 DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x14CC PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1556 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x157A SWAP2 SWAP1 PUSH2 0x3F8E JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x15AC JUMPI PUSH2 0x15A4 DUP7 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x44AD JUMP JUMPDEST SWAP2 SWAP7 POP SWAP5 POP SWAP3 POP JUMPDEST POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH2 0x15EE PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1646 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x166A SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST DUP1 PUSH2 0x16EC JUMPI POP PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16EC SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032303A49445F4E4F545F50524F445543545F4F525F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x149254D2D413D3D3 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x175C PUSH1 0x4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x446E JUMP JUMPDEST DUP5 GT ISZERO PUSH2 0x17B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032313A46524143494F4E414C5F4645455F544F4F5F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x424947 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP1 DUP3 MSTORE POP TIMESTAMP PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1838 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1855 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x1873 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x188F SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18DF SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x18FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1978 SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19D1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F5 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1A41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031363A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1AA1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031373A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP7 DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0x347FBBD524A9E157686795820F5ABF777A026670F7DBAA751F4F190ABC52F3A2 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1B1B PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1B38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x1B56 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B72 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B9E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BC2 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1BDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE DUP3 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C36 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C5A SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1CA6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032333A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 DUP3 SWAP1 PUSH2 0x1CCA DUP3 DUP3 PUSH2 0x466E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x1CEA JUMPI DUP2 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP2 DUP5 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC3EF28D06D8C4C14101CA058D5B1507F9710AE8E34940A185CFF056C375671A9 SWAP1 PUSH1 0x60 ADD PUSH2 0x597 JUMP JUMPDEST PUSH2 0x1D6A PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x1DB6 SWAP1 PUSH2 0x4607 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DE2 SWAP1 PUSH2 0x4607 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E2F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E04 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1E2F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1E12 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1E73 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1E8D JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E8D JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1EF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1F13 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1F3D PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1F7F JUMPI PUSH2 0x1F5E PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1F87 PUSH2 0x3A1C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x597 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1FE0 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1FFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x201B CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2037 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x204F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2063 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2087 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x20A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2103 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031353A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x3769187331E10B0394C677689372317CC625318F5E50B76CB4DA221DBDF05EF8 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x216A PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x21A5 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C1 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2211 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x222D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2283 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031303A544F4B454E5F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22DB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22FF SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x234B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031313A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x23C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031323A50524F445543545F544F4B454E5F414C5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x10511657D4D155 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2419 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x243D SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x21DF0DA7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2496 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24BA SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2529 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031333A50524F445543545F544F4B454E5F41444452 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x4553535F4E4F545F4D41544348494E47 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD229F3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD229F3B0 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x256E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2582 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x25A6 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO DUP1 PUSH2 0x25E6 JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 AND EQ JUMPDEST PUSH2 0x264B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031343A5249534B504F4F4C5F544F4B454E5F414444 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x524553535F4E4F545F4D414348494E47 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE DUP6 DUP6 MSTORE SWAP4 DUP3 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP5 AND DUP2 OR SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x78B40E42F597552DA073DE514CE9A92A14A8E48CB9BB12A1FAE74564A0DCF3AB SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x26E4 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2701 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2729 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE DUP6 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2786 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x27AE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x27DE DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x2805 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4300 JUMP JUMPDEST PUSH2 0x2820 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2850 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2895 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x28D1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x28E3 SWAP2 SWAP1 PUSH2 0x4456 JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD LT ISZERO DUP1 PUSH2 0x2906 JUMPI POP PUSH1 0xC0 DUP2 ADD MLOAD ISZERO DUP1 ISZERO PUSH2 0x2906 JUMPI POP DUP6 DUP2 PUSH1 0xE0 ADD MLOAD LT ISZERO JUMPDEST PUSH2 0x2978 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036303A43415041434954595F4F525F42414C414E43 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x455F534D414C4C45525F5448414E5F5749544844524157414C00000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x299D DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x620D1B05 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC41A360A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x29FB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A1F SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x20 DUP5 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP2 AND SWAP1 DUP10 SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A91 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AB5 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x2B1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036313A5249534B504F4F4C5F57414C4C45545F4241 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x13105390D157D513D3D7D4D3505313 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP11 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B79 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B9D SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x2C00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036323A5749544844524157414C5F414C4C4F57414E PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x10D157D513D3D7D4D3505313 PUSH1 0xA2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 SWAP8 POP DUP9 SWAP7 POP PUSH1 0x0 PUSH2 0x2C15 DUP3 DUP6 DUP6 DUP12 PUSH2 0x35B1 JUMP JUMPDEST SWAP1 POP PUSH32 0xBE5D373E2476ACBCB4AA97C605F358CFE7748BEBFF73D2D3195F587DC61F59C3 DUP5 DUP5 DUP11 PUSH1 0x40 MLOAD PUSH2 0x2C4A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x2CB0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036333A5749544844524157414C5F5452414E534645 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x1497D19052531151 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP7 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE SWAP2 DUP2 ADD DUP14 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0xDBB3AE752B98A0C1C3C26FE1B0A7FAA343DA1C6FE5E0A80624F36E8E25E22EDF SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x2D22 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D3E SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D6A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D8E SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x2DAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH2 0x2DB2 PUSH2 0x3B52 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x5508E022C084F2ABA2D9EBF198EE0E2E205840DF815B91112781505E6798BFDC SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2DF0 PUSH1 0x4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x446E JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2E09 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2E26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E4E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST DUP4 PUSH1 0x0 DUP1 PUSH2 0x2E5B DUP4 PUSH2 0x333E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2E86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x41C4 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x2E9B DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2ECB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x2EE5 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2F15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2F96 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2FA7 DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0xAAC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2FB5 DUP13 PUSH2 0x333E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xCEF58F13 DUP15 DUP15 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3007 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3033 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x305B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3F14 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD SWAP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP1 SWAP2 DUP7 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30DE SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x3144 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034323A5249534B504F4F4C5F57414C4C45545F4241 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x13105390D157D513D3D7D4D3505313 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD SWAP1 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP7 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3190 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31C8 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x3227 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034333A5041594F55545F414C4C4F57414E43455F54 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D3D7D4D3505313 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x323D DUP6 DUP5 DUP9 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP5 ADD MLOAD DUP9 MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP16 POP SWAP1 SWAP14 POP SWAP2 SWAP3 POP PUSH32 0x967B0D7F4806051EF2C1375D324BE9BE0C739A4E34845BC060210577FD677F85 SWAP2 PUSH2 0x3280 SWAP2 DUP7 SWAP2 DUP16 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x32E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034343A5041594F55545F5452414E534645525F4641 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x12531151 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST DUP6 MLOAD PUSH1 0x40 DUP4 DUP2 ADD MLOAD DUP2 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x20 DUP5 ADD MSTORE DUP3 DUP3 ADD MSTORE MLOAD PUSH32 0x8B5AD77A07A1F8DBB7F91BD53D28ECF3C900534C88F13672F6F2DDCF01EC7F85 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x339B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x33C3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xD229F3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD229F3B0 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x340E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3422 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3446 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x34A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039323A50524F445543545F574954484F55545F5249 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x14D2D413D3D3 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3527 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x354B SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x35D8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0x35E1 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x363C JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x38BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3681 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3695 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x36B9 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x371A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x373E SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x374D JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x3798 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x38BB JUMP JUMPDEST PUSH1 0x0 DUP1 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x37BF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x37F8 SWAP2 SWAP1 PUSH2 0x4120 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3835 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x383A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x3870 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x3870 JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x3870 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3870 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x38B4 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x38AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x419A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x38CB PUSH2 0x3B95 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MLOAD MLOAD PUSH1 0x0 SWAP1 ISZERO PUSH2 0x3987 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039303A4645455F43414C43554C4154494F4E5F4441 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x151057D393D517D4D5541413D4951151 PUSH1 0x82 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP4 ADD MLOAD ISZERO PUSH2 0x39C7 JUMPI PUSH8 0xDE0B6B3A7640000 DUP3 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x39B0 SWAP2 SWAP1 PUSH2 0x448E JUMP JUMPDEST PUSH2 0x39BA SWAP2 SWAP1 PUSH2 0x446E JUMP JUMPDEST PUSH2 0x39C4 SWAP1 DUP3 PUSH2 0x4456 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT PUSH2 0x3A16 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039313A4645455F544F4F5F42494700000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3A87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x3A99 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3ACE PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3B00 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3B30 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3B5A PUSH2 0x3BED JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x38FB CALLER SWAP1 JUMP JUMPDEST PUSH2 0x3BA8 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x3BEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x3C00 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x3BEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3C50 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C6A JUMPI PUSH2 0x3C6A PUSH2 0x4658 JUMP JUMPDEST PUSH2 0x3C7D PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x4425 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3C91 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x38BB DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x45D7 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CD1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3CDC DUP2 PUSH2 0x46F3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CF4 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3CDC DUP2 PUSH2 0x46F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D10 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3CDC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D30 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D49 JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D69 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3D80 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x3D96 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3D9F DUP2 PUSH2 0x4425 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x3DC5 PUSH1 0x60 DUP5 ADD PUSH2 0x3CA2 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3DDB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3DE7 DUP8 DUP3 DUP7 ADD PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E3D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E53 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0xC0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x3CDC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E75 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3E8C JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3E9F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3EA9 PUSH1 0xC0 PUSH2 0x4425 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x3EB4 DUP2 PUSH2 0x46F3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x3ECC PUSH1 0x40 DUP5 ADD PUSH2 0x3CB1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3EE2 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3EEE DUP8 DUP3 DUP7 ADD PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F25 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3F3C JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3F4F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3F59 PUSH1 0xC0 PUSH2 0x4425 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x3F6E JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3EE2 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3FA1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x3FAA DUP2 PUSH2 0x4425 JUMP JUMPDEST SWAP1 POP PUSH2 0x3FB5 DUP4 PUSH2 0x3CB1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4024 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x403D JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x404F DUP2 PUSH2 0x46F3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D49 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4083 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x40AF JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x40C2 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x40D0 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x40E1 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x410C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x45D7 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4132 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x45D7 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x41BB PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x40F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030323A5249534B504F4F4C5F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030353A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030313A494E5354414E43455F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4552524F523A5452532D3030343A54524541535552595F53555350454E444544 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030333A5249534B504F4F4C5F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4405 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x40F4 JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x444E JUMPI PUSH2 0x444E PUSH2 0x4658 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4469 JUMPI PUSH2 0x4469 PUSH2 0x4642 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4489 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x44A8 JUMPI PUSH2 0x44A8 PUSH2 0x4642 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x44BF JUMPI PUSH2 0x44BF PUSH2 0x4642 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x44F1 JUMPI PUSH2 0x44F1 PUSH2 0x4658 JUMP JUMPDEST PUSH2 0x44FB DUP2 SLOAD PUSH2 0x4607 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP7 GT PUSH1 0x1F DUP5 GT DUP2 DUP2 OR ISZERO PUSH2 0x451A JUMPI PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP3 POP JUMPDEST DUP1 ISZERO PUSH2 0x4549 JUMPI PUSH1 0x20 PUSH1 0x1F DUP10 ADD DIV DUP4 ADD PUSH1 0x20 DUP10 LT ISZERO PUSH2 0x4535 JUMPI POP DUP3 JUMPDEST PUSH2 0x4547 PUSH1 0x20 PUSH1 0x1F DUP9 ADD DIV DUP6 ADD DUP3 PUSH2 0x44C4 JUMP JUMPDEST POP JUMPDEST POP DUP1 PUSH1 0x1 DUP2 EQ PUSH2 0x457B JUMPI PUSH1 0x0 SWAP5 POP DUP8 ISZERO PUSH2 0x4564 JUMPI DUP4 DUP8 ADD CALLDATALOAD SWAP5 POP JUMPDEST PUSH1 0x2 DUP9 MUL PUSH1 0x0 NOT PUSH1 0x8 DUP11 MUL SHR NOT DUP7 AND OR DUP7 SSTORE PUSH2 0x45CD JUMP JUMPDEST PUSH1 0x1F NOT DUP9 AND SWAP5 POP DUP3 DUP5 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x45A5 JUMPI DUP9 DUP7 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4585 JUMP JUMPDEST POP DUP9 DUP7 LT ISZERO PUSH2 0x45C2 JUMPI DUP8 DUP6 ADD CALLDATALOAD PUSH1 0x0 NOT PUSH1 0x8 PUSH1 0x1F DUP13 AND MUL SHR NOT AND DUP2 SSTORE JUMPDEST POP PUSH1 0x1 PUSH1 0x2 DUP10 MUL ADD DUP7 SSTORE JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x45F2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x45DA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4601 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x461B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x463C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 SSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x469D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x46CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x46D9 DUP2 DUP4 PUSH1 0x3 DUP7 ADD PUSH2 0x44D9 JUMP JUMPDEST POP POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0x5 DUP3 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4708 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 PUSH15 0x17D64E138985579699AE8A3C6C6085 EXTCODEHASH PUSH21 0xA96D720C58205175E0CDBE5EF264736F6C63430008 MUL STOP CALLER ","sourceMap":"3548:18091:81:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;996:7:48;:15;;-1:-1:-1;;;;996:15:48;;;3548:18091:81;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;3548:18091:81;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:37821:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"77:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"126:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"135:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"142:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"128:6:103"},"nodeType":"YulFunctionCall","src":"128:20:103"},"nodeType":"YulExpressionStatement","src":"128:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"113:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"120:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"90:6:103"},"nodeType":"YulFunctionCall","src":"90:35:103"},"nodeType":"YulIf","src":"87:2:103"},{"nodeType":"YulVariableDeclaration","src":"159:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"175:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"169:5:103"},"nodeType":"YulFunctionCall","src":"169:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"163:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"221:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"223:16:103"},"nodeType":"YulFunctionCall","src":"223:18:103"},"nodeType":"YulExpressionStatement","src":"223:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"197:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"201:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"194:2:103"},"nodeType":"YulFunctionCall","src":"194:26:103"},"nodeType":"YulIf","src":"191:2:103"},{"nodeType":"YulVariableDeclaration","src":"252:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"295:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"299:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"291:3:103"},"nodeType":"YulFunctionCall","src":"291:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"310:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"306:3:103"},"nodeType":"YulFunctionCall","src":"306:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"287:3:103"},"nodeType":"YulFunctionCall","src":"287:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"316:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"283:3:103"},"nodeType":"YulFunctionCall","src":"283:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"267:15:103"},"nodeType":"YulFunctionCall","src":"267:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"256:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"338:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"347:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"331:6:103"},"nodeType":"YulFunctionCall","src":"331:19:103"},"nodeType":"YulExpressionStatement","src":"331:19:103"},{"body":{"nodeType":"YulBlock","src":"398:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"407:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"414:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"400:6:103"},"nodeType":"YulFunctionCall","src":"400:20:103"},"nodeType":"YulExpressionStatement","src":"400:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"373:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"381:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:103"},"nodeType":"YulFunctionCall","src":"369:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"386:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:103"},"nodeType":"YulFunctionCall","src":"365:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"393:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"362:2:103"},"nodeType":"YulFunctionCall","src":"362:35:103"},"nodeType":"YulIf","src":"359:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"457:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"465:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"453:3:103"},"nodeType":"YulFunctionCall","src":"453:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"476:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"485:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"472:3:103"},"nodeType":"YulFunctionCall","src":"472:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"492:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"431:21:103"},"nodeType":"YulFunctionCall","src":"431:64:103"},"nodeType":"YulExpressionStatement","src":"431:64:103"},{"nodeType":"YulAssignment","src":"504:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"513:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"504:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"51:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"59:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"67:5:103","type":""}],"src":"14:512:103"},{"body":{"nodeType":"YulBlock","src":"600:87:103","statements":[{"nodeType":"YulAssignment","src":"610:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"625:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"619:5:103"},"nodeType":"YulFunctionCall","src":"619:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"610:5:103"}]},{"body":{"nodeType":"YulBlock","src":"665:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"674:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"677:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"667:6:103"},"nodeType":"YulFunctionCall","src":"667:12:103"},"nodeType":"YulExpressionStatement","src":"667:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"654:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"661:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"651:2:103"},"nodeType":"YulFunctionCall","src":"651:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"644:6:103"},"nodeType":"YulFunctionCall","src":"644:20:103"},"nodeType":"YulIf","src":"641:2:103"}]},"name":"abi_decode_enum_BundleState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"579:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"590:5:103","type":""}],"src":"531:156:103"},{"body":{"nodeType":"YulBlock","src":"765:87:103","statements":[{"nodeType":"YulAssignment","src":"775:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"790:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"784:5:103"},"nodeType":"YulFunctionCall","src":"784:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"775:5:103"}]},{"body":{"nodeType":"YulBlock","src":"830:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"839:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"842:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"832:6:103"},"nodeType":"YulFunctionCall","src":"832:12:103"},"nodeType":"YulExpressionStatement","src":"832:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"819:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"826:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"816:2:103"},"nodeType":"YulFunctionCall","src":"816:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"809:6:103"},"nodeType":"YulFunctionCall","src":"809:20:103"},"nodeType":"YulIf","src":"806:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"744:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"755:5:103","type":""}],"src":"692:160:103"},{"body":{"nodeType":"YulBlock","src":"927:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"973:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"982:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"990:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"975:6:103"},"nodeType":"YulFunctionCall","src":"975:22:103"},"nodeType":"YulExpressionStatement","src":"975:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"948:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"957:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"944:3:103"},"nodeType":"YulFunctionCall","src":"944:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"969:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"940:3:103"},"nodeType":"YulFunctionCall","src":"940:32:103"},"nodeType":"YulIf","src":"937:2:103"},{"nodeType":"YulVariableDeclaration","src":"1008:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1034:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1021:12:103"},"nodeType":"YulFunctionCall","src":"1021:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1012:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1078:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1053:24:103"},"nodeType":"YulFunctionCall","src":"1053:31:103"},"nodeType":"YulExpressionStatement","src":"1053:31:103"},{"nodeType":"YulAssignment","src":"1093:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1103:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1093:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"893:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"904:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"916:6:103","type":""}],"src":"857:257:103"},{"body":{"nodeType":"YulBlock","src":"1200:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1246:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1255:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1263:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1248:6:103"},"nodeType":"YulFunctionCall","src":"1248:22:103"},"nodeType":"YulExpressionStatement","src":"1248:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1221:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1230:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1217:3:103"},"nodeType":"YulFunctionCall","src":"1217:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1242:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1213:3:103"},"nodeType":"YulFunctionCall","src":"1213:32:103"},"nodeType":"YulIf","src":"1210:2:103"},{"nodeType":"YulVariableDeclaration","src":"1281:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1300:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1294:5:103"},"nodeType":"YulFunctionCall","src":"1294:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1285:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1344:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1319:24:103"},"nodeType":"YulFunctionCall","src":"1319:31:103"},"nodeType":"YulExpressionStatement","src":"1319:31:103"},{"nodeType":"YulAssignment","src":"1359:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1369:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1359:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1166:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1177:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1189:6:103","type":""}],"src":"1119:261:103"},{"body":{"nodeType":"YulBlock","src":"1463:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1509:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1518:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1526:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1511:6:103"},"nodeType":"YulFunctionCall","src":"1511:22:103"},"nodeType":"YulExpressionStatement","src":"1511:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1484:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1493:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1480:3:103"},"nodeType":"YulFunctionCall","src":"1480:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1505:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1476:3:103"},"nodeType":"YulFunctionCall","src":"1476:32:103"},"nodeType":"YulIf","src":"1473:2:103"},{"nodeType":"YulVariableDeclaration","src":"1544:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1563:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1557:5:103"},"nodeType":"YulFunctionCall","src":"1557:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1548:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1626:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1635:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1643:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1628:6:103"},"nodeType":"YulFunctionCall","src":"1628:22:103"},"nodeType":"YulExpressionStatement","src":"1628:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1595:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1616:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1609:6:103"},"nodeType":"YulFunctionCall","src":"1609:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1602:6:103"},"nodeType":"YulFunctionCall","src":"1602:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1592:2:103"},"nodeType":"YulFunctionCall","src":"1592:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1585:6:103"},"nodeType":"YulFunctionCall","src":"1585:40:103"},"nodeType":"YulIf","src":"1582:2:103"},{"nodeType":"YulAssignment","src":"1661:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1671:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1661:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1429:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1440:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1452:6:103","type":""}],"src":"1385:297:103"},{"body":{"nodeType":"YulBlock","src":"1757:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1803:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1812:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1820:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1805:6:103"},"nodeType":"YulFunctionCall","src":"1805:22:103"},"nodeType":"YulExpressionStatement","src":"1805:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1778:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1787:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1774:3:103"},"nodeType":"YulFunctionCall","src":"1774:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1799:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1770:3:103"},"nodeType":"YulFunctionCall","src":"1770:32:103"},"nodeType":"YulIf","src":"1767:2:103"},{"nodeType":"YulAssignment","src":"1838:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1861:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1848:12:103"},"nodeType":"YulFunctionCall","src":"1848:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1838:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1723:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1734:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1746:6:103","type":""}],"src":"1687:190:103"},{"body":{"nodeType":"YulBlock","src":"1969:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2015:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2024:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2032:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2017:6:103"},"nodeType":"YulFunctionCall","src":"2017:22:103"},"nodeType":"YulExpressionStatement","src":"2017:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1990:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1999:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1986:3:103"},"nodeType":"YulFunctionCall","src":"1986:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2011:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1982:3:103"},"nodeType":"YulFunctionCall","src":"1982:32:103"},"nodeType":"YulIf","src":"1979:2:103"},{"nodeType":"YulAssignment","src":"2050:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2073:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2060:12:103"},"nodeType":"YulFunctionCall","src":"2060:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2050:6:103"}]},{"nodeType":"YulAssignment","src":"2092:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2130:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2115:3:103"},"nodeType":"YulFunctionCall","src":"2115:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2102:12:103"},"nodeType":"YulFunctionCall","src":"2102:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2092:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1927:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1938:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1950:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1958:6:103","type":""}],"src":"1882:258:103"},{"body":{"nodeType":"YulBlock","src":"2245:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2291:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2300:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2308:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2293:6:103"},"nodeType":"YulFunctionCall","src":"2293:22:103"},"nodeType":"YulExpressionStatement","src":"2293:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2266:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2275:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2262:3:103"},"nodeType":"YulFunctionCall","src":"2262:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2287:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2258:3:103"},"nodeType":"YulFunctionCall","src":"2258:32:103"},"nodeType":"YulIf","src":"2255:2:103"},{"nodeType":"YulVariableDeclaration","src":"2326:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2345:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2339:5:103"},"nodeType":"YulFunctionCall","src":"2339:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2330:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2389:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2364:24:103"},"nodeType":"YulFunctionCall","src":"2364:31:103"},"nodeType":"YulExpressionStatement","src":"2364:31:103"},{"nodeType":"YulAssignment","src":"2404:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2414:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2404:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2211:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2222:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2234:6:103","type":""}],"src":"2145:280:103"},{"body":{"nodeType":"YulBlock","src":"2535:1114:103","statements":[{"body":{"nodeType":"YulBlock","src":"2581:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2590:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2598:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2583:6:103"},"nodeType":"YulFunctionCall","src":"2583:22:103"},"nodeType":"YulExpressionStatement","src":"2583:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2556:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2565:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2552:3:103"},"nodeType":"YulFunctionCall","src":"2552:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2577:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2548:3:103"},"nodeType":"YulFunctionCall","src":"2548:32:103"},"nodeType":"YulIf","src":"2545:2:103"},{"nodeType":"YulVariableDeclaration","src":"2616:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2636:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2630:5:103"},"nodeType":"YulFunctionCall","src":"2630:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2620:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2655:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2665:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2659:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2710:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2719:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2727:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2712:6:103"},"nodeType":"YulFunctionCall","src":"2712:22:103"},"nodeType":"YulExpressionStatement","src":"2712:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2698:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2706:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2695:2:103"},"nodeType":"YulFunctionCall","src":"2695:14:103"},"nodeType":"YulIf","src":"2692:2:103"},{"nodeType":"YulVariableDeclaration","src":"2745:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2759:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2770:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2755:3:103"},"nodeType":"YulFunctionCall","src":"2755:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2749:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2786:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2796:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2790:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2840:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2849:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2857:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2842:6:103"},"nodeType":"YulFunctionCall","src":"2842:22:103"},"nodeType":"YulExpressionStatement","src":"2842:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2822:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"2831:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2818:3:103"},"nodeType":"YulFunctionCall","src":"2818:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2836:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2814:3:103"},"nodeType":"YulFunctionCall","src":"2814:25:103"},"nodeType":"YulIf","src":"2811:2:103"},{"nodeType":"YulVariableDeclaration","src":"2875:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2904:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2888:15:103"},"nodeType":"YulFunctionCall","src":"2888:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2879:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2923:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2936:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2930:5:103"},"nodeType":"YulFunctionCall","src":"2930:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2916:6:103"},"nodeType":"YulFunctionCall","src":"2916:24:103"},"nodeType":"YulExpressionStatement","src":"2916:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2960:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2967:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2956:3:103"},"nodeType":"YulFunctionCall","src":"2956:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2982:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2986:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2978:3:103"},"nodeType":"YulFunctionCall","src":"2978:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2972:5:103"},"nodeType":"YulFunctionCall","src":"2972:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2949:6:103"},"nodeType":"YulFunctionCall","src":"2949:42:103"},"nodeType":"YulExpressionStatement","src":"2949:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3011:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3018:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3007:3:103"},"nodeType":"YulFunctionCall","src":"3007:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3033:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3037:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3029:3:103"},"nodeType":"YulFunctionCall","src":"3029:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3023:5:103"},"nodeType":"YulFunctionCall","src":"3023:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3000:6:103"},"nodeType":"YulFunctionCall","src":"3000:42:103"},"nodeType":"YulExpressionStatement","src":"3000:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3062:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3069:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3058:3:103"},"nodeType":"YulFunctionCall","src":"3058:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3117:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3121:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3113:3:103"},"nodeType":"YulFunctionCall","src":"3113:11:103"}],"functionName":{"name":"abi_decode_enum_BundleState_fromMemory","nodeType":"YulIdentifier","src":"3074:38:103"},"nodeType":"YulFunctionCall","src":"3074:51:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3051:6:103"},"nodeType":"YulFunctionCall","src":"3051:75:103"},"nodeType":"YulExpressionStatement","src":"3051:75:103"},{"nodeType":"YulVariableDeclaration","src":"3135:35:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3161:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3165:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3157:3:103"},"nodeType":"YulFunctionCall","src":"3157:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3151:5:103"},"nodeType":"YulFunctionCall","src":"3151:19:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3139:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3199:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3208:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3216:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3201:6:103"},"nodeType":"YulFunctionCall","src":"3201:22:103"},"nodeType":"YulExpressionStatement","src":"3201:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3185:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3195:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3182:2:103"},"nodeType":"YulFunctionCall","src":"3182:16:103"},"nodeType":"YulIf","src":"3179:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3245:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3252:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3241:3:103"},"nodeType":"YulFunctionCall","src":"3241:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3290:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3294:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3286:3:103"},"nodeType":"YulFunctionCall","src":"3286:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3305:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"3258:27:103"},"nodeType":"YulFunctionCall","src":"3258:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3234:6:103"},"nodeType":"YulFunctionCall","src":"3234:80:103"},"nodeType":"YulExpressionStatement","src":"3234:80:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3334:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3341:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3330:3:103"},"nodeType":"YulFunctionCall","src":"3330:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3357:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3361:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3353:3:103"},"nodeType":"YulFunctionCall","src":"3353:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3347:5:103"},"nodeType":"YulFunctionCall","src":"3347:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3323:6:103"},"nodeType":"YulFunctionCall","src":"3323:44:103"},"nodeType":"YulExpressionStatement","src":"3323:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3387:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3394:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3383:3:103"},"nodeType":"YulFunctionCall","src":"3383:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3410:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3414:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3406:3:103"},"nodeType":"YulFunctionCall","src":"3406:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3400:5:103"},"nodeType":"YulFunctionCall","src":"3400:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3376:6:103"},"nodeType":"YulFunctionCall","src":"3376:44:103"},"nodeType":"YulExpressionStatement","src":"3376:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3440:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3436:3:103"},"nodeType":"YulFunctionCall","src":"3436:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3463:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3467:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3459:3:103"},"nodeType":"YulFunctionCall","src":"3459:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3453:5:103"},"nodeType":"YulFunctionCall","src":"3453:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:44:103"},"nodeType":"YulExpressionStatement","src":"3429:44:103"},{"nodeType":"YulVariableDeclaration","src":"3482:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3492:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"3486:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3515:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"3522:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3511:3:103"},"nodeType":"YulFunctionCall","src":"3511:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3537:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"3541:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3533:3:103"},"nodeType":"YulFunctionCall","src":"3533:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3527:5:103"},"nodeType":"YulFunctionCall","src":"3527:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3504:6:103"},"nodeType":"YulFunctionCall","src":"3504:42:103"},"nodeType":"YulExpressionStatement","src":"3504:42:103"},{"nodeType":"YulVariableDeclaration","src":"3555:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3565:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"3559:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3588:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"3595:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3584:3:103"},"nodeType":"YulFunctionCall","src":"3584:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3610:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"3614:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3606:3:103"},"nodeType":"YulFunctionCall","src":"3606:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3600:5:103"},"nodeType":"YulFunctionCall","src":"3600:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3577:6:103"},"nodeType":"YulFunctionCall","src":"3577:42:103"},"nodeType":"YulExpressionStatement","src":"3577:42:103"},{"nodeType":"YulAssignment","src":"3628:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3638:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3628:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2501:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2512:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2524:6:103","type":""}],"src":"2430:1219:103"},{"body":{"nodeType":"YulBlock","src":"3760:320:103","statements":[{"body":{"nodeType":"YulBlock","src":"3806:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3815:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3823:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3808:6:103"},"nodeType":"YulFunctionCall","src":"3808:22:103"},"nodeType":"YulExpressionStatement","src":"3808:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3781:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3790:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3777:3:103"},"nodeType":"YulFunctionCall","src":"3777:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3802:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3773:3:103"},"nodeType":"YulFunctionCall","src":"3773:32:103"},"nodeType":"YulIf","src":"3770:2:103"},{"nodeType":"YulVariableDeclaration","src":"3841:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3868:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3855:12:103"},"nodeType":"YulFunctionCall","src":"3855:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3845:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3921:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3930:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3938:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3923:6:103"},"nodeType":"YulFunctionCall","src":"3923:22:103"},"nodeType":"YulExpressionStatement","src":"3923:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3893:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3901:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3890:2:103"},"nodeType":"YulFunctionCall","src":"3890:30:103"},"nodeType":"YulIf","src":"3887:2:103"},{"nodeType":"YulVariableDeclaration","src":"3956:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3970:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3981:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3966:3:103"},"nodeType":"YulFunctionCall","src":"3966:22:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3960:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4027:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4036:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4044:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4029:6:103"},"nodeType":"YulFunctionCall","src":"4029:22:103"},"nodeType":"YulExpressionStatement","src":"4029:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4008:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4017:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4004:3:103"},"nodeType":"YulFunctionCall","src":"4004:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4022:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4000:3:103"},"nodeType":"YulFunctionCall","src":"4000:26:103"},"nodeType":"YulIf","src":"3997:2:103"},{"nodeType":"YulAssignment","src":"4062:12:103","value":{"name":"_1","nodeType":"YulIdentifier","src":"4072:2:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4062:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3726:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3737:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3749:6:103","type":""}],"src":"3654:426:103"},{"body":{"nodeType":"YulBlock","src":"4192:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"4238:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4247:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4255:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4240:6:103"},"nodeType":"YulFunctionCall","src":"4240:22:103"},"nodeType":"YulExpressionStatement","src":"4240:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4213:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4222:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4209:3:103"},"nodeType":"YulFunctionCall","src":"4209:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4234:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4205:3:103"},"nodeType":"YulFunctionCall","src":"4205:32:103"},"nodeType":"YulIf","src":"4202:2:103"},{"nodeType":"YulVariableDeclaration","src":"4273:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4293:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4287:5:103"},"nodeType":"YulFunctionCall","src":"4287:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4277:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4312:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4322:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4316:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4367:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4376:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4384:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4369:6:103"},"nodeType":"YulFunctionCall","src":"4369:22:103"},"nodeType":"YulExpressionStatement","src":"4369:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4355:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4363:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4352:2:103"},"nodeType":"YulFunctionCall","src":"4352:14:103"},"nodeType":"YulIf","src":"4349:2:103"},{"nodeType":"YulVariableDeclaration","src":"4402:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4416:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4427:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4412:3:103"},"nodeType":"YulFunctionCall","src":"4412:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4406:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4474:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4483:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4491:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4476:6:103"},"nodeType":"YulFunctionCall","src":"4476:22:103"},"nodeType":"YulExpressionStatement","src":"4476:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4454:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4463:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4450:3:103"},"nodeType":"YulFunctionCall","src":"4450:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4468:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4446:3:103"},"nodeType":"YulFunctionCall","src":"4446:27:103"},"nodeType":"YulIf","src":"4443:2:103"},{"nodeType":"YulVariableDeclaration","src":"4509:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4538:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4522:15:103"},"nodeType":"YulFunctionCall","src":"4522:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4513:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4552:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4573:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4567:5:103"},"nodeType":"YulFunctionCall","src":"4567:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4556:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4610:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4585:24:103"},"nodeType":"YulFunctionCall","src":"4585:33:103"},"nodeType":"YulExpressionStatement","src":"4585:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4634:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"4641:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4627:6:103"},"nodeType":"YulFunctionCall","src":"4627:22:103"},"nodeType":"YulExpressionStatement","src":"4627:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4669:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4676:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4665:3:103"},"nodeType":"YulFunctionCall","src":"4665:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4691:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4695:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4687:3:103"},"nodeType":"YulFunctionCall","src":"4687:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4681:5:103"},"nodeType":"YulFunctionCall","src":"4681:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4658:6:103"},"nodeType":"YulFunctionCall","src":"4658:42:103"},"nodeType":"YulExpressionStatement","src":"4658:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4720:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4727:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4716:3:103"},"nodeType":"YulFunctionCall","src":"4716:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4779:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4783:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4775:3:103"},"nodeType":"YulFunctionCall","src":"4775:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"4732:42:103"},"nodeType":"YulFunctionCall","src":"4732:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4709:6:103"},"nodeType":"YulFunctionCall","src":"4709:79:103"},"nodeType":"YulExpressionStatement","src":"4709:79:103"},{"nodeType":"YulVariableDeclaration","src":"4797:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4823:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4827:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4819:3:103"},"nodeType":"YulFunctionCall","src":"4819:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4813:5:103"},"nodeType":"YulFunctionCall","src":"4813:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4801:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4860:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4869:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4877:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4862:6:103"},"nodeType":"YulFunctionCall","src":"4862:22:103"},"nodeType":"YulExpressionStatement","src":"4862:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4846:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4856:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4843:2:103"},"nodeType":"YulFunctionCall","src":"4843:16:103"},"nodeType":"YulIf","src":"4840:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4906:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4913:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4902:3:103"},"nodeType":"YulFunctionCall","src":"4902:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4950:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4954:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4946:3:103"},"nodeType":"YulFunctionCall","src":"4946:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4965:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"4918:27:103"},"nodeType":"YulFunctionCall","src":"4918:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4895:6:103"},"nodeType":"YulFunctionCall","src":"4895:79:103"},"nodeType":"YulExpressionStatement","src":"4895:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4994:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5001:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4990:3:103"},"nodeType":"YulFunctionCall","src":"4990:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5017:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5021:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5013:3:103"},"nodeType":"YulFunctionCall","src":"5013:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5007:5:103"},"nodeType":"YulFunctionCall","src":"5007:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4983:6:103"},"nodeType":"YulFunctionCall","src":"4983:44:103"},"nodeType":"YulExpressionStatement","src":"4983:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5047:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5054:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5043:3:103"},"nodeType":"YulFunctionCall","src":"5043:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5070:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5074:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5066:3:103"},"nodeType":"YulFunctionCall","src":"5066:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5060:5:103"},"nodeType":"YulFunctionCall","src":"5060:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5036:6:103"},"nodeType":"YulFunctionCall","src":"5036:44:103"},"nodeType":"YulExpressionStatement","src":"5036:44:103"},{"nodeType":"YulAssignment","src":"5089:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5099:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5089:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4158:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4169:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4181:6:103","type":""}],"src":"4085:1025:103"},{"body":{"nodeType":"YulBlock","src":"5220:900:103","statements":[{"body":{"nodeType":"YulBlock","src":"5266:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5275:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5283:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5268:6:103"},"nodeType":"YulFunctionCall","src":"5268:22:103"},"nodeType":"YulExpressionStatement","src":"5268:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5241:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5250:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5237:3:103"},"nodeType":"YulFunctionCall","src":"5237:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5262:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5233:3:103"},"nodeType":"YulFunctionCall","src":"5233:32:103"},"nodeType":"YulIf","src":"5230:2:103"},{"nodeType":"YulVariableDeclaration","src":"5301:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5321:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5315:5:103"},"nodeType":"YulFunctionCall","src":"5315:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5305:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5340:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5350:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5344:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5395:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5404:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5412:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5397:6:103"},"nodeType":"YulFunctionCall","src":"5397:22:103"},"nodeType":"YulExpressionStatement","src":"5397:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5383:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5391:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5380:2:103"},"nodeType":"YulFunctionCall","src":"5380:14:103"},"nodeType":"YulIf","src":"5377:2:103"},{"nodeType":"YulVariableDeclaration","src":"5430:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5444:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5455:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5440:3:103"},"nodeType":"YulFunctionCall","src":"5440:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5434:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5502:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5511:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5519:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5504:6:103"},"nodeType":"YulFunctionCall","src":"5504:22:103"},"nodeType":"YulExpressionStatement","src":"5504:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5482:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5491:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5478:3:103"},"nodeType":"YulFunctionCall","src":"5478:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"5496:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5474:3:103"},"nodeType":"YulFunctionCall","src":"5474:27:103"},"nodeType":"YulIf","src":"5471:2:103"},{"nodeType":"YulVariableDeclaration","src":"5537:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5566:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5550:15:103"},"nodeType":"YulFunctionCall","src":"5550:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5541:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5587:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5600:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5594:5:103"},"nodeType":"YulFunctionCall","src":"5594:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5580:6:103"},"nodeType":"YulFunctionCall","src":"5580:24:103"},"nodeType":"YulExpressionStatement","src":"5580:24:103"},{"nodeType":"YulVariableDeclaration","src":"5613:33:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5638:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5642:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5634:3:103"},"nodeType":"YulFunctionCall","src":"5634:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5628:5:103"},"nodeType":"YulFunctionCall","src":"5628:18:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5617:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5681:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5690:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5698:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5683:6:103"},"nodeType":"YulFunctionCall","src":"5683:22:103"},"nodeType":"YulExpressionStatement","src":"5683:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5668:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"5677:1:103","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5665:2:103"},"nodeType":"YulFunctionCall","src":"5665:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5658:6:103"},"nodeType":"YulFunctionCall","src":"5658:22:103"},"nodeType":"YulIf","src":"5655:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5727:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5734:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5723:3:103"},"nodeType":"YulFunctionCall","src":"5723:14:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"5739:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5716:6:103"},"nodeType":"YulFunctionCall","src":"5716:31:103"},"nodeType":"YulExpressionStatement","src":"5716:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5767:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5774:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5763:3:103"},"nodeType":"YulFunctionCall","src":"5763:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5789:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5793:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5785:3:103"},"nodeType":"YulFunctionCall","src":"5785:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5779:5:103"},"nodeType":"YulFunctionCall","src":"5779:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5756:6:103"},"nodeType":"YulFunctionCall","src":"5756:42:103"},"nodeType":"YulExpressionStatement","src":"5756:42:103"},{"nodeType":"YulVariableDeclaration","src":"5807:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5833:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5837:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5829:3:103"},"nodeType":"YulFunctionCall","src":"5829:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5823:5:103"},"nodeType":"YulFunctionCall","src":"5823:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5811:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5870:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5879:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5887:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5872:6:103"},"nodeType":"YulFunctionCall","src":"5872:22:103"},"nodeType":"YulExpressionStatement","src":"5872:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5856:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5866:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5853:2:103"},"nodeType":"YulFunctionCall","src":"5853:16:103"},"nodeType":"YulIf","src":"5850:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5916:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5923:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5912:3:103"},"nodeType":"YulFunctionCall","src":"5912:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5960:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5964:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5956:3:103"},"nodeType":"YulFunctionCall","src":"5956:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5975:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"5928:27:103"},"nodeType":"YulFunctionCall","src":"5928:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5905:6:103"},"nodeType":"YulFunctionCall","src":"5905:79:103"},"nodeType":"YulExpressionStatement","src":"5905:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6004:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6011:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6000:3:103"},"nodeType":"YulFunctionCall","src":"6000:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6027:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6031:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6023:3:103"},"nodeType":"YulFunctionCall","src":"6023:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6017:5:103"},"nodeType":"YulFunctionCall","src":"6017:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5993:6:103"},"nodeType":"YulFunctionCall","src":"5993:44:103"},"nodeType":"YulExpressionStatement","src":"5993:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6057:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6064:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6053:3:103"},"nodeType":"YulFunctionCall","src":"6053:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6080:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6084:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6076:3:103"},"nodeType":"YulFunctionCall","src":"6076:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6070:5:103"},"nodeType":"YulFunctionCall","src":"6070:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6046:6:103"},"nodeType":"YulFunctionCall","src":"6046:44:103"},"nodeType":"YulExpressionStatement","src":"6046:44:103"},{"nodeType":"YulAssignment","src":"6099:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6109:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6099:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5186:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5197:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5209:6:103","type":""}],"src":"5115:1005:103"},{"body":{"nodeType":"YulBlock","src":"6230:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"6240:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6250:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6244:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6298:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6307:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6315:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6300:6:103"},"nodeType":"YulFunctionCall","src":"6300:22:103"},"nodeType":"YulExpressionStatement","src":"6300:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6273:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6282:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6269:3:103"},"nodeType":"YulFunctionCall","src":"6269:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6294:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6265:3:103"},"nodeType":"YulFunctionCall","src":"6265:32:103"},"nodeType":"YulIf","src":"6262:2:103"},{"nodeType":"YulVariableDeclaration","src":"6333:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6362:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6346:15:103"},"nodeType":"YulFunctionCall","src":"6346:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6337:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6381:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6431:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"6388:42:103"},"nodeType":"YulFunctionCall","src":"6388:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6374:6:103"},"nodeType":"YulFunctionCall","src":"6374:68:103"},"nodeType":"YulExpressionStatement","src":"6374:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6462:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6469:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6458:3:103"},"nodeType":"YulFunctionCall","src":"6458:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6484:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6495:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6480:3:103"},"nodeType":"YulFunctionCall","src":"6480:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6474:5:103"},"nodeType":"YulFunctionCall","src":"6474:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6451:6:103"},"nodeType":"YulFunctionCall","src":"6451:49:103"},"nodeType":"YulExpressionStatement","src":"6451:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6520:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6527:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6516:3:103"},"nodeType":"YulFunctionCall","src":"6516:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6553:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6538:3:103"},"nodeType":"YulFunctionCall","src":"6538:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6532:5:103"},"nodeType":"YulFunctionCall","src":"6532:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6509:6:103"},"nodeType":"YulFunctionCall","src":"6509:49:103"},"nodeType":"YulExpressionStatement","src":"6509:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6578:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6585:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6574:3:103"},"nodeType":"YulFunctionCall","src":"6574:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6600:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6611:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6596:3:103"},"nodeType":"YulFunctionCall","src":"6596:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6590:5:103"},"nodeType":"YulFunctionCall","src":"6590:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6567:6:103"},"nodeType":"YulFunctionCall","src":"6567:49:103"},"nodeType":"YulExpressionStatement","src":"6567:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6636:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6643:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6632:3:103"},"nodeType":"YulFunctionCall","src":"6632:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6659:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6670:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6655:3:103"},"nodeType":"YulFunctionCall","src":"6655:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6649:5:103"},"nodeType":"YulFunctionCall","src":"6649:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6625:6:103"},"nodeType":"YulFunctionCall","src":"6625:51:103"},"nodeType":"YulExpressionStatement","src":"6625:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6696:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6703:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6692:3:103"},"nodeType":"YulFunctionCall","src":"6692:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6730:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6715:3:103"},"nodeType":"YulFunctionCall","src":"6715:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6709:5:103"},"nodeType":"YulFunctionCall","src":"6709:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6685:6:103"},"nodeType":"YulFunctionCall","src":"6685:51:103"},"nodeType":"YulExpressionStatement","src":"6685:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6756:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6763:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6752:3:103"},"nodeType":"YulFunctionCall","src":"6752:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6779:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6790:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6775:3:103"},"nodeType":"YulFunctionCall","src":"6775:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6769:5:103"},"nodeType":"YulFunctionCall","src":"6769:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6745:6:103"},"nodeType":"YulFunctionCall","src":"6745:51:103"},"nodeType":"YulExpressionStatement","src":"6745:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6816:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6823:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6812:3:103"},"nodeType":"YulFunctionCall","src":"6812:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6839:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6850:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6835:3:103"},"nodeType":"YulFunctionCall","src":"6835:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6829:5:103"},"nodeType":"YulFunctionCall","src":"6829:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6805:6:103"},"nodeType":"YulFunctionCall","src":"6805:51:103"},"nodeType":"YulExpressionStatement","src":"6805:51:103"},{"nodeType":"YulVariableDeclaration","src":"6865:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6875:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6869:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6898:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6905:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6894:3:103"},"nodeType":"YulFunctionCall","src":"6894:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6920:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6931:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6916:3:103"},"nodeType":"YulFunctionCall","src":"6916:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6910:5:103"},"nodeType":"YulFunctionCall","src":"6910:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6887:6:103"},"nodeType":"YulFunctionCall","src":"6887:49:103"},"nodeType":"YulExpressionStatement","src":"6887:49:103"},{"nodeType":"YulAssignment","src":"6945:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6955:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6945:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6196:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6207:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6219:6:103","type":""}],"src":"6125:841:103"},{"body":{"nodeType":"YulBlock","src":"7041:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"7087:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7096:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7104:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7089:6:103"},"nodeType":"YulFunctionCall","src":"7089:22:103"},"nodeType":"YulExpressionStatement","src":"7089:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7062:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7071:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7058:3:103"},"nodeType":"YulFunctionCall","src":"7058:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7083:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7054:3:103"},"nodeType":"YulFunctionCall","src":"7054:32:103"},"nodeType":"YulIf","src":"7051:2:103"},{"nodeType":"YulAssignment","src":"7122:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7145:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7132:12:103"},"nodeType":"YulFunctionCall","src":"7132:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7122:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7007:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7018:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7030:6:103","type":""}],"src":"6971:190:103"},{"body":{"nodeType":"YulBlock","src":"7247:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"7293:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7302:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7310:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7295:6:103"},"nodeType":"YulFunctionCall","src":"7295:22:103"},"nodeType":"YulExpressionStatement","src":"7295:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7268:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7277:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7264:3:103"},"nodeType":"YulFunctionCall","src":"7264:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7289:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7260:3:103"},"nodeType":"YulFunctionCall","src":"7260:32:103"},"nodeType":"YulIf","src":"7257:2:103"},{"nodeType":"YulAssignment","src":"7328:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7344:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7338:5:103"},"nodeType":"YulFunctionCall","src":"7338:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7328:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7213:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7224:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7236:6:103","type":""}],"src":"7166:194:103"},{"body":{"nodeType":"YulBlock","src":"7452:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"7498:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7507:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7515:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7500:6:103"},"nodeType":"YulFunctionCall","src":"7500:22:103"},"nodeType":"YulExpressionStatement","src":"7500:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7473:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7482:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7469:3:103"},"nodeType":"YulFunctionCall","src":"7469:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7494:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7465:3:103"},"nodeType":"YulFunctionCall","src":"7465:32:103"},"nodeType":"YulIf","src":"7462:2:103"},{"nodeType":"YulAssignment","src":"7533:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7556:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7543:12:103"},"nodeType":"YulFunctionCall","src":"7543:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7533:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"7575:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7616:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7601:3:103"},"nodeType":"YulFunctionCall","src":"7601:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7588:12:103"},"nodeType":"YulFunctionCall","src":"7588:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7579:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7654:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7629:24:103"},"nodeType":"YulFunctionCall","src":"7629:31:103"},"nodeType":"YulExpressionStatement","src":"7629:31:103"},{"nodeType":"YulAssignment","src":"7669:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7679:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7669:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7410:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7421:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7433:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7441:6:103","type":""}],"src":"7365:325:103"},{"body":{"nodeType":"YulBlock","src":"7782:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"7828:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7837:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7845:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7830:6:103"},"nodeType":"YulFunctionCall","src":"7830:22:103"},"nodeType":"YulExpressionStatement","src":"7830:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7803:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7812:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7799:3:103"},"nodeType":"YulFunctionCall","src":"7799:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7824:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7795:3:103"},"nodeType":"YulFunctionCall","src":"7795:32:103"},"nodeType":"YulIf","src":"7792:2:103"},{"nodeType":"YulAssignment","src":"7863:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7886:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7873:12:103"},"nodeType":"YulFunctionCall","src":"7873:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7863:6:103"}]},{"nodeType":"YulAssignment","src":"7905:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7932:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7943:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7928:3:103"},"nodeType":"YulFunctionCall","src":"7928:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7915:12:103"},"nodeType":"YulFunctionCall","src":"7915:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7905:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7740:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7751:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7763:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7771:6:103","type":""}],"src":"7695:258:103"},{"body":{"nodeType":"YulBlock","src":"8098:706:103","statements":[{"body":{"nodeType":"YulBlock","src":"8145:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8154:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8162:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8147:6:103"},"nodeType":"YulFunctionCall","src":"8147:22:103"},"nodeType":"YulExpressionStatement","src":"8147:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8115:3:103"},"nodeType":"YulFunctionCall","src":"8115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8140:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8111:3:103"},"nodeType":"YulFunctionCall","src":"8111:33:103"},"nodeType":"YulIf","src":"8108:2:103"},{"nodeType":"YulAssignment","src":"8180:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8203:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8190:12:103"},"nodeType":"YulFunctionCall","src":"8190:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8180:6:103"}]},{"nodeType":"YulAssignment","src":"8222:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8260:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8245:3:103"},"nodeType":"YulFunctionCall","src":"8245:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8232:12:103"},"nodeType":"YulFunctionCall","src":"8232:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8222:6:103"}]},{"nodeType":"YulAssignment","src":"8273:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8300:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8311:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8296:3:103"},"nodeType":"YulFunctionCall","src":"8296:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8283:12:103"},"nodeType":"YulFunctionCall","src":"8283:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"8273:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"8324:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8355:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8366:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8351:3:103"},"nodeType":"YulFunctionCall","src":"8351:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8338:12:103"},"nodeType":"YulFunctionCall","src":"8338:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8328:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8379:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8389:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8383:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8434:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8443:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8451:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8436:6:103"},"nodeType":"YulFunctionCall","src":"8436:22:103"},"nodeType":"YulExpressionStatement","src":"8436:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8422:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8430:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8419:2:103"},"nodeType":"YulFunctionCall","src":"8419:14:103"},"nodeType":"YulIf","src":"8416:2:103"},{"nodeType":"YulVariableDeclaration","src":"8469:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8483:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"8494:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8479:3:103"},"nodeType":"YulFunctionCall","src":"8479:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8473:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8549:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8558:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8566:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8551:6:103"},"nodeType":"YulFunctionCall","src":"8551:22:103"},"nodeType":"YulExpressionStatement","src":"8551:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8528:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8532:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8524:3:103"},"nodeType":"YulFunctionCall","src":"8524:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8539:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8520:3:103"},"nodeType":"YulFunctionCall","src":"8520:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8513:6:103"},"nodeType":"YulFunctionCall","src":"8513:35:103"},"nodeType":"YulIf","src":"8510:2:103"},{"nodeType":"YulVariableDeclaration","src":"8584:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8611:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8598:12:103"},"nodeType":"YulFunctionCall","src":"8598:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8588:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8641:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8650:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8658:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8643:6:103"},"nodeType":"YulFunctionCall","src":"8643:22:103"},"nodeType":"YulExpressionStatement","src":"8643:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8629:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8637:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8626:2:103"},"nodeType":"YulFunctionCall","src":"8626:14:103"},"nodeType":"YulIf","src":"8623:2:103"},{"body":{"nodeType":"YulBlock","src":"8717:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"8726:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"8734:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8719:6:103"},"nodeType":"YulFunctionCall","src":"8719:22:103"},"nodeType":"YulExpressionStatement","src":"8719:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8690:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"8694:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8686:3:103"},"nodeType":"YulFunctionCall","src":"8686:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"8703:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8682:3:103"},"nodeType":"YulFunctionCall","src":"8682:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8708:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8679:2:103"},"nodeType":"YulFunctionCall","src":"8679:37:103"},"nodeType":"YulIf","src":"8676:2:103"},{"nodeType":"YulAssignment","src":"8752:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8766:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8770:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8762:3:103"},"nodeType":"YulFunctionCall","src":"8762:11:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"8752:6:103"}]},{"nodeType":"YulAssignment","src":"8782:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"8792:6:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"8782:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8032:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8043:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8055:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8063:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8071:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8079:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8087:6:103","type":""}],"src":"7958:846:103"},{"body":{"nodeType":"YulBlock","src":"8858:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8868:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8888:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8882:5:103"},"nodeType":"YulFunctionCall","src":"8882:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8872:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8910:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"8915:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8903:6:103"},"nodeType":"YulFunctionCall","src":"8903:19:103"},"nodeType":"YulExpressionStatement","src":"8903:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8957:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8964:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8953:3:103"},"nodeType":"YulFunctionCall","src":"8953:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8975:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"8980:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8971:3:103"},"nodeType":"YulFunctionCall","src":"8971:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"8987:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"8931:21:103"},"nodeType":"YulFunctionCall","src":"8931:63:103"},"nodeType":"YulExpressionStatement","src":"8931:63:103"},{"nodeType":"YulAssignment","src":"9003:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9018:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"9031:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9039:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9027:3:103"},"nodeType":"YulFunctionCall","src":"9027:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9048:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9044:3:103"},"nodeType":"YulFunctionCall","src":"9044:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9023:3:103"},"nodeType":"YulFunctionCall","src":"9023:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9014:3:103"},"nodeType":"YulFunctionCall","src":"9014:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"9055:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9010:3:103"},"nodeType":"YulFunctionCall","src":"9010:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9003:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8835:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8842:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8850:3:103","type":""}],"src":"8809:257:103"},{"body":{"nodeType":"YulBlock","src":"9208:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"9218:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9238:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9232:5:103"},"nodeType":"YulFunctionCall","src":"9232:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"9222:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9280:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9288:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9276:3:103"},"nodeType":"YulFunctionCall","src":"9276:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"9295:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"9300:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9254:21:103"},"nodeType":"YulFunctionCall","src":"9254:53:103"},"nodeType":"YulExpressionStatement","src":"9254:53:103"},{"nodeType":"YulAssignment","src":"9316:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"9327:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"9332:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9323:3:103"},"nodeType":"YulFunctionCall","src":"9323:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9316:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"9184:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9189:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"9200:3:103","type":""}],"src":"9071:274:103"},{"body":{"nodeType":"YulBlock","src":"9451:102:103","statements":[{"nodeType":"YulAssignment","src":"9461:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9473:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9484:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9469:3:103"},"nodeType":"YulFunctionCall","src":"9469:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9461:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9503:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9518:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9534:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9539:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9530:3:103"},"nodeType":"YulFunctionCall","src":"9530:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9543:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9526:3:103"},"nodeType":"YulFunctionCall","src":"9526:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9514:3:103"},"nodeType":"YulFunctionCall","src":"9514:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9496:6:103"},"nodeType":"YulFunctionCall","src":"9496:51:103"},"nodeType":"YulExpressionStatement","src":"9496:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9420:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9431:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9442:4:103","type":""}],"src":"9350:203:103"},{"body":{"nodeType":"YulBlock","src":"9687:175:103","statements":[{"nodeType":"YulAssignment","src":"9697:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9720:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9705:3:103"},"nodeType":"YulFunctionCall","src":"9705:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9697:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"9732:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9750:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9755:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9746:3:103"},"nodeType":"YulFunctionCall","src":"9746:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9759:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9742:3:103"},"nodeType":"YulFunctionCall","src":"9742:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9736:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9777:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9792:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9800:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9788:3:103"},"nodeType":"YulFunctionCall","src":"9788:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9770:6:103"},"nodeType":"YulFunctionCall","src":"9770:34:103"},"nodeType":"YulExpressionStatement","src":"9770:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9824:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9835:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9820:3:103"},"nodeType":"YulFunctionCall","src":"9820:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9844:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9852:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9840:3:103"},"nodeType":"YulFunctionCall","src":"9840:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9813:6:103"},"nodeType":"YulFunctionCall","src":"9813:43:103"},"nodeType":"YulExpressionStatement","src":"9813:43:103"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9648:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9659:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9667:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9678:4:103","type":""}],"src":"9558:304:103"},{"body":{"nodeType":"YulBlock","src":"10024:218:103","statements":[{"nodeType":"YulAssignment","src":"10034:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10046:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10057:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10042:3:103"},"nodeType":"YulFunctionCall","src":"10042:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10034:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"10069:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10087:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10092:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10083:3:103"},"nodeType":"YulFunctionCall","src":"10083:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10096:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10079:3:103"},"nodeType":"YulFunctionCall","src":"10079:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10073:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10114:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10129:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10137:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10125:3:103"},"nodeType":"YulFunctionCall","src":"10125:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10107:6:103"},"nodeType":"YulFunctionCall","src":"10107:34:103"},"nodeType":"YulExpressionStatement","src":"10107:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10172:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10157:3:103"},"nodeType":"YulFunctionCall","src":"10157:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10181:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10189:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10177:3:103"},"nodeType":"YulFunctionCall","src":"10177:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10150:6:103"},"nodeType":"YulFunctionCall","src":"10150:43:103"},"nodeType":"YulExpressionStatement","src":"10150:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10213:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10224:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10209:3:103"},"nodeType":"YulFunctionCall","src":"10209:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10229:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10202:6:103"},"nodeType":"YulFunctionCall","src":"10202:34:103"},"nodeType":"YulExpressionStatement","src":"10202:34:103"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9977:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9988:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9996:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10004:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10015:4:103","type":""}],"src":"9867:375:103"},{"body":{"nodeType":"YulBlock","src":"10439:164:103","statements":[{"nodeType":"YulAssignment","src":"10449:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10461:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10472:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10457:3:103"},"nodeType":"YulFunctionCall","src":"10457:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10449:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10491:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10506:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10522:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10527:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10518:3:103"},"nodeType":"YulFunctionCall","src":"10518:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10531:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10514:3:103"},"nodeType":"YulFunctionCall","src":"10514:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10502:3:103"},"nodeType":"YulFunctionCall","src":"10502:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10484:6:103"},"nodeType":"YulFunctionCall","src":"10484:51:103"},"nodeType":"YulExpressionStatement","src":"10484:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10555:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10566:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10551:3:103"},"nodeType":"YulFunctionCall","src":"10551:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10571:25:103","type":"","value":"InstanceOperatorService"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10544:6:103"},"nodeType":"YulFunctionCall","src":"10544:53:103"},"nodeType":"YulExpressionStatement","src":"10544:53:103"}]},"name":"abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10408:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10419:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10430:4:103","type":""}],"src":"10247:356:103"},{"body":{"nodeType":"YulBlock","src":"10703:92:103","statements":[{"nodeType":"YulAssignment","src":"10713:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10736:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10721:3:103"},"nodeType":"YulFunctionCall","src":"10721:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10713:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10755:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10780:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10773:6:103"},"nodeType":"YulFunctionCall","src":"10773:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10766:6:103"},"nodeType":"YulFunctionCall","src":"10766:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10748:6:103"},"nodeType":"YulFunctionCall","src":"10748:41:103"},"nodeType":"YulExpressionStatement","src":"10748:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10672:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10683:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10694:4:103","type":""}],"src":"10608:187:103"},{"body":{"nodeType":"YulBlock","src":"10951:234:103","statements":[{"nodeType":"YulAssignment","src":"10961:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10973:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10984:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10969:3:103"},"nodeType":"YulFunctionCall","src":"10969:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10961:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11003:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11028:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11021:6:103"},"nodeType":"YulFunctionCall","src":"11021:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11014:6:103"},"nodeType":"YulFunctionCall","src":"11014:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10996:6:103"},"nodeType":"YulFunctionCall","src":"10996:41:103"},"nodeType":"YulExpressionStatement","src":"10996:41:103"},{"nodeType":"YulVariableDeclaration","src":"11046:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11064:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11069:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11060:3:103"},"nodeType":"YulFunctionCall","src":"11060:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"11073:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11056:3:103"},"nodeType":"YulFunctionCall","src":"11056:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11050:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11095:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11106:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11091:3:103"},"nodeType":"YulFunctionCall","src":"11091:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11115:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"11123:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11111:3:103"},"nodeType":"YulFunctionCall","src":"11111:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11084:6:103"},"nodeType":"YulFunctionCall","src":"11084:43:103"},"nodeType":"YulExpressionStatement","src":"11084:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11147:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11158:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11143:3:103"},"nodeType":"YulFunctionCall","src":"11143:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11167:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"11175:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11163:3:103"},"nodeType":"YulFunctionCall","src":"11163:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11136:6:103"},"nodeType":"YulFunctionCall","src":"11136:43:103"},"nodeType":"YulExpressionStatement","src":"11136:43:103"}]},"name":"abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10904:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10915:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10923:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10931:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10942:4:103","type":""}],"src":"10800:385:103"},{"body":{"nodeType":"YulBlock","src":"11359:200:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11376:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11401:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11394:6:103"},"nodeType":"YulFunctionCall","src":"11394:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11387:6:103"},"nodeType":"YulFunctionCall","src":"11387:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11369:6:103"},"nodeType":"YulFunctionCall","src":"11369:41:103"},"nodeType":"YulExpressionStatement","src":"11369:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11430:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11441:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11426:3:103"},"nodeType":"YulFunctionCall","src":"11426:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11446:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11419:6:103"},"nodeType":"YulFunctionCall","src":"11419:34:103"},"nodeType":"YulExpressionStatement","src":"11419:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11473:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11484:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11469:3:103"},"nodeType":"YulFunctionCall","src":"11469:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11489:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11462:6:103"},"nodeType":"YulFunctionCall","src":"11462:30:103"},"nodeType":"YulExpressionStatement","src":"11462:30:103"},{"nodeType":"YulAssignment","src":"11501:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11526:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11538:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11549:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11534:3:103"},"nodeType":"YulFunctionCall","src":"11534:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11509:16:103"},"nodeType":"YulFunctionCall","src":"11509:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11501:4:103"}]}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11312:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11323:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11331:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11339:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11350:4:103","type":""}],"src":"11190:369:103"},{"body":{"nodeType":"YulBlock","src":"11715:178:103","statements":[{"nodeType":"YulAssignment","src":"11725:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11737:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11748:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11733:3:103"},"nodeType":"YulFunctionCall","src":"11733:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11725:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11767:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11792:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11785:6:103"},"nodeType":"YulFunctionCall","src":"11785:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11778:6:103"},"nodeType":"YulFunctionCall","src":"11778:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11760:6:103"},"nodeType":"YulFunctionCall","src":"11760:41:103"},"nodeType":"YulExpressionStatement","src":"11760:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11821:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11832:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11817:3:103"},"nodeType":"YulFunctionCall","src":"11817:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11837:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11810:6:103"},"nodeType":"YulFunctionCall","src":"11810:34:103"},"nodeType":"YulExpressionStatement","src":"11810:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11864:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11875:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11860:3:103"},"nodeType":"YulFunctionCall","src":"11860:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"11880:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11853:6:103"},"nodeType":"YulFunctionCall","src":"11853:34:103"},"nodeType":"YulExpressionStatement","src":"11853:34:103"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11668:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11679:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11687:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11695:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11706:4:103","type":""}],"src":"11564:329:103"},{"body":{"nodeType":"YulBlock","src":"11999:76:103","statements":[{"nodeType":"YulAssignment","src":"12009:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12021:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12032:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12017:3:103"},"nodeType":"YulFunctionCall","src":"12017:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12009:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12051:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12062:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12044:6:103"},"nodeType":"YulFunctionCall","src":"12044:25:103"},"nodeType":"YulExpressionStatement","src":"12044:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11968:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11979:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11990:4:103","type":""}],"src":"11898:177:103"},{"body":{"nodeType":"YulBlock","src":"12209:119:103","statements":[{"nodeType":"YulAssignment","src":"12219:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12231:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12242:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12227:3:103"},"nodeType":"YulFunctionCall","src":"12227:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12219:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12261:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12272:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12254:6:103"},"nodeType":"YulFunctionCall","src":"12254:25:103"},"nodeType":"YulExpressionStatement","src":"12254:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12299:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12310:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12295:3:103"},"nodeType":"YulFunctionCall","src":"12295:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"12315:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12288:6:103"},"nodeType":"YulFunctionCall","src":"12288:34:103"},"nodeType":"YulExpressionStatement","src":"12288:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12170:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12181:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12189:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12200:4:103","type":""}],"src":"12080:248:103"},{"body":{"nodeType":"YulBlock","src":"12449:102:103","statements":[{"nodeType":"YulAssignment","src":"12459:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12471:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12482:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12467:3:103"},"nodeType":"YulFunctionCall","src":"12467:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12459:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12501:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12516:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12532:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12537:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12528:3:103"},"nodeType":"YulFunctionCall","src":"12528:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"12541:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12524:3:103"},"nodeType":"YulFunctionCall","src":"12524:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12512:3:103"},"nodeType":"YulFunctionCall","src":"12512:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12494:6:103"},"nodeType":"YulFunctionCall","src":"12494:51:103"},"nodeType":"YulExpressionStatement","src":"12494:51:103"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$8831__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12418:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12429:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12440:4:103","type":""}],"src":"12333:218:103"},{"body":{"nodeType":"YulBlock","src":"12663:87:103","statements":[{"nodeType":"YulAssignment","src":"12673:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12685:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12696:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12681:3:103"},"nodeType":"YulFunctionCall","src":"12681:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12673:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12715:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12730:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12738:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12726:3:103"},"nodeType":"YulFunctionCall","src":"12726:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12708:6:103"},"nodeType":"YulFunctionCall","src":"12708:36:103"},"nodeType":"YulExpressionStatement","src":"12708:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12632:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12643:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12654:4:103","type":""}],"src":"12556:194:103"},{"body":{"nodeType":"YulBlock","src":"12929:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12946:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12957:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12939:6:103"},"nodeType":"YulFunctionCall","src":"12939:21:103"},"nodeType":"YulExpressionStatement","src":"12939:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12980:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12991:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12976:3:103"},"nodeType":"YulFunctionCall","src":"12976:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12996:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12969:6:103"},"nodeType":"YulFunctionCall","src":"12969:30:103"},"nodeType":"YulExpressionStatement","src":"12969:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13030:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13015:3:103"},"nodeType":"YulFunctionCall","src":"13015:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13035:27:103","type":"","value":"ERROR:TRS-022:NOT_PRODUCT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13008:6:103"},"nodeType":"YulFunctionCall","src":"13008:55:103"},"nodeType":"YulExpressionStatement","src":"13008:55:103"},{"nodeType":"YulAssignment","src":"13072:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13095:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13080:3:103"},"nodeType":"YulFunctionCall","src":"13080:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13072:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_002d2121ea321e9dc7af161d487859644848c89f417a8b4f6cd3c64e88216019__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12906:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12920:4:103","type":""}],"src":"12755:349:103"},{"body":{"nodeType":"YulBlock","src":"13283:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13300:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13311:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13293:6:103"},"nodeType":"YulFunctionCall","src":"13293:21:103"},"nodeType":"YulExpressionStatement","src":"13293:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13334:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13345:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13330:3:103"},"nodeType":"YulFunctionCall","src":"13330:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13350:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13323:6:103"},"nodeType":"YulFunctionCall","src":"13323:30:103"},"nodeType":"YulExpressionStatement","src":"13323:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13373:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13384:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13369:3:103"},"nodeType":"YulFunctionCall","src":"13369:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13389:34:103","type":"","value":"ERROR:TRS-015:WALLET_ADDRESS_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13362:6:103"},"nodeType":"YulFunctionCall","src":"13362:62:103"},"nodeType":"YulExpressionStatement","src":"13362:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13444:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13455:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13440:3:103"},"nodeType":"YulFunctionCall","src":"13440:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13460:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13433:6:103"},"nodeType":"YulFunctionCall","src":"13433:31:103"},"nodeType":"YulExpressionStatement","src":"13433:31:103"},{"nodeType":"YulAssignment","src":"13473:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13485:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13496:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13481:3:103"},"nodeType":"YulFunctionCall","src":"13481:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13473:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_023e61203cb0be5307b17a41d4b69495f70210073b02aa48d79a82beee2c037a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13260:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13274:4:103","type":""}],"src":"13109:397:103"},{"body":{"nodeType":"YulBlock","src":"13685:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13702:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13713:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13695:6:103"},"nodeType":"YulFunctionCall","src":"13695:21:103"},"nodeType":"YulExpressionStatement","src":"13695:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13736:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13747:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13732:3:103"},"nodeType":"YulFunctionCall","src":"13732:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13752:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13725:6:103"},"nodeType":"YulFunctionCall","src":"13725:30:103"},"nodeType":"YulExpressionStatement","src":"13725:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13775:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13786:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13771:3:103"},"nodeType":"YulFunctionCall","src":"13771:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13791:34:103","type":"","value":"ERROR:TRS-002:RISKPOOL_WALLET_UN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13764:6:103"},"nodeType":"YulFunctionCall","src":"13764:62:103"},"nodeType":"YulExpressionStatement","src":"13764:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13846:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13857:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13842:3:103"},"nodeType":"YulFunctionCall","src":"13842:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13862:9:103","type":"","value":"DEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13835:6:103"},"nodeType":"YulFunctionCall","src":"13835:37:103"},"nodeType":"YulExpressionStatement","src":"13835:37:103"},{"nodeType":"YulAssignment","src":"13881:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13893:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13904:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13889:3:103"},"nodeType":"YulFunctionCall","src":"13889:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13881:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0426c9e38488694ef5fcd21b7d01546e3f09d04e0204867e9068633df2d21047__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13662:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13676:4:103","type":""}],"src":"13511:403:103"},{"body":{"nodeType":"YulBlock","src":"14093:170:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14121:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14103:6:103"},"nodeType":"YulFunctionCall","src":"14103:21:103"},"nodeType":"YulExpressionStatement","src":"14103:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14144:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14155:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14140:3:103"},"nodeType":"YulFunctionCall","src":"14140:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14160:2:103","type":"","value":"20"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14133:6:103"},"nodeType":"YulFunctionCall","src":"14133:30:103"},"nodeType":"YulExpressionStatement","src":"14133:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14183:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14194:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14179:3:103"},"nodeType":"YulFunctionCall","src":"14179:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14199:22:103","type":"","value":"Pausable: not paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14172:6:103"},"nodeType":"YulFunctionCall","src":"14172:50:103"},"nodeType":"YulExpressionStatement","src":"14172:50:103"},{"nodeType":"YulAssignment","src":"14231:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14243:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14254:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14239:3:103"},"nodeType":"YulFunctionCall","src":"14239:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14231:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14070:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14084:4:103","type":""}],"src":"13919:344:103"},{"body":{"nodeType":"YulBlock","src":"14442:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14470:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14452:6:103"},"nodeType":"YulFunctionCall","src":"14452:21:103"},"nodeType":"YulExpressionStatement","src":"14452:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14493:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14504:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14489:3:103"},"nodeType":"YulFunctionCall","src":"14489:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14509:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14482:6:103"},"nodeType":"YulFunctionCall","src":"14482:30:103"},"nodeType":"YulExpressionStatement","src":"14482:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14532:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14543:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14528:3:103"},"nodeType":"YulFunctionCall","src":"14528:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14548:34:103","type":"","value":"ERROR:TRS-070:NOT_PRODUCT_OR_RIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14521:6:103"},"nodeType":"YulFunctionCall","src":"14521:62:103"},"nodeType":"YulExpressionStatement","src":"14521:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14603:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14614:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14599:3:103"},"nodeType":"YulFunctionCall","src":"14599:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14619:7:103","type":"","value":"KPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14592:6:103"},"nodeType":"YulFunctionCall","src":"14592:35:103"},"nodeType":"YulExpressionStatement","src":"14592:35:103"},{"nodeType":"YulAssignment","src":"14636:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14648:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14659:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14644:3:103"},"nodeType":"YulFunctionCall","src":"14644:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14636:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0df3c78e93cd9b7c9045f326b01178dc9332f2f6498582ce9cff7c8821aa1d20__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14419:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14433:4:103","type":""}],"src":"14268:401:103"},{"body":{"nodeType":"YulBlock","src":"14848:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14876:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14858:6:103"},"nodeType":"YulFunctionCall","src":"14858:21:103"},"nodeType":"YulExpressionStatement","src":"14858:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14899:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14910:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14895:3:103"},"nodeType":"YulFunctionCall","src":"14895:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14915:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14888:6:103"},"nodeType":"YulFunctionCall","src":"14888:30:103"},"nodeType":"YulExpressionStatement","src":"14888:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14938:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14949:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14934:3:103"},"nodeType":"YulFunctionCall","src":"14934:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14954:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14927:6:103"},"nodeType":"YulFunctionCall","src":"14927:62:103"},"nodeType":"YulExpressionStatement","src":"14927:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15020:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15005:3:103"},"nodeType":"YulFunctionCall","src":"15005:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15025:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14998:6:103"},"nodeType":"YulFunctionCall","src":"14998:35:103"},"nodeType":"YulExpressionStatement","src":"14998:35:103"},{"nodeType":"YulAssignment","src":"15042:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15054:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15065:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15050:3:103"},"nodeType":"YulFunctionCall","src":"15050:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15042:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14825:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14839:4:103","type":""}],"src":"14674:401:103"},{"body":{"nodeType":"YulBlock","src":"15254:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15264:6:103"},"nodeType":"YulFunctionCall","src":"15264:21:103"},"nodeType":"YulExpressionStatement","src":"15264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15301:3:103"},"nodeType":"YulFunctionCall","src":"15301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15321:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15294:6:103"},"nodeType":"YulFunctionCall","src":"15294:30:103"},"nodeType":"YulExpressionStatement","src":"15294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15340:3:103"},"nodeType":"YulFunctionCall","src":"15340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15360:34:103","type":"","value":"ERROR:TRS-005:NOT_RISKPOOL_SERVI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15333:6:103"},"nodeType":"YulFunctionCall","src":"15333:62:103"},"nodeType":"YulExpressionStatement","src":"15333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15411:3:103"},"nodeType":"YulFunctionCall","src":"15411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15431:4:103","type":"","value":"CE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15404:6:103"},"nodeType":"YulFunctionCall","src":"15404:32:103"},"nodeType":"YulExpressionStatement","src":"15404:32:103"},{"nodeType":"YulAssignment","src":"15445:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15457:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15468:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15453:3:103"},"nodeType":"YulFunctionCall","src":"15453:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15445:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1c57f116b2d23b472e497701710f194d47bb249cf3bdd21579f4ccec35ce6514__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15245:4:103","type":""}],"src":"15080:398:103"},{"body":{"nodeType":"YulBlock","src":"15657:240:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15674:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15685:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15667:6:103"},"nodeType":"YulFunctionCall","src":"15667:21:103"},"nodeType":"YulExpressionStatement","src":"15667:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15708:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15719:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15704:3:103"},"nodeType":"YulFunctionCall","src":"15704:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15724:2:103","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15697:6:103"},"nodeType":"YulFunctionCall","src":"15697:30:103"},"nodeType":"YulExpressionStatement","src":"15697:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15747:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15758:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15743:3:103"},"nodeType":"YulFunctionCall","src":"15743:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15763:34:103","type":"","value":"ERROR:TRS-053:CAPITAL_TRANSFER_A"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15736:6:103"},"nodeType":"YulFunctionCall","src":"15736:62:103"},"nodeType":"YulExpressionStatement","src":"15736:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15829:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15814:3:103"},"nodeType":"YulFunctionCall","src":"15814:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15834:20:103","type":"","value":"LLOWANCE_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15807:6:103"},"nodeType":"YulFunctionCall","src":"15807:48:103"},"nodeType":"YulExpressionStatement","src":"15807:48:103"},{"nodeType":"YulAssignment","src":"15864:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15876:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15887:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15872:3:103"},"nodeType":"YulFunctionCall","src":"15872:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15864:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_211791b6640da73c43884462143c95a88a879b6ed92d3aff6ce166c1d61a88f2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15634:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15648:4:103","type":""}],"src":"15483:414:103"},{"body":{"nodeType":"YulBlock","src":"16076:176:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16093:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16104:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16086:6:103"},"nodeType":"YulFunctionCall","src":"16086:21:103"},"nodeType":"YulExpressionStatement","src":"16086:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16127:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16138:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16123:3:103"},"nodeType":"YulFunctionCall","src":"16123:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16143:2:103","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16116:6:103"},"nodeType":"YulFunctionCall","src":"16116:30:103"},"nodeType":"YulExpressionStatement","src":"16116:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16166:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16177:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16162:3:103"},"nodeType":"YulFunctionCall","src":"16162:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16182:28:103","type":"","value":"ERROR:TRS-016:NOT_RISKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16155:6:103"},"nodeType":"YulFunctionCall","src":"16155:56:103"},"nodeType":"YulExpressionStatement","src":"16155:56:103"},{"nodeType":"YulAssignment","src":"16220:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16232:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16243:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16228:3:103"},"nodeType":"YulFunctionCall","src":"16228:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16220:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2929b40534bc3751b2a6ec3225ca6171f4a79ecde38ee6c1fce17106a98b0991__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16053:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16067:4:103","type":""}],"src":"15902:350:103"},{"body":{"nodeType":"YulBlock","src":"16431:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16448:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16459:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16441:6:103"},"nodeType":"YulFunctionCall","src":"16441:21:103"},"nodeType":"YulExpressionStatement","src":"16441:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16493:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16478:3:103"},"nodeType":"YulFunctionCall","src":"16478:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16498:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16471:6:103"},"nodeType":"YulFunctionCall","src":"16471:30:103"},"nodeType":"YulExpressionStatement","src":"16471:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16521:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16532:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16517:3:103"},"nodeType":"YulFunctionCall","src":"16517:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16537:34:103","type":"","value":"ERROR:TRS-001:INSTANCE_WALLET_UN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16510:6:103"},"nodeType":"YulFunctionCall","src":"16510:62:103"},"nodeType":"YulExpressionStatement","src":"16510:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16603:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16588:3:103"},"nodeType":"YulFunctionCall","src":"16588:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16608:9:103","type":"","value":"DEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16581:6:103"},"nodeType":"YulFunctionCall","src":"16581:37:103"},"nodeType":"YulExpressionStatement","src":"16581:37:103"},{"nodeType":"YulAssignment","src":"16627:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16639:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16650:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16635:3:103"},"nodeType":"YulFunctionCall","src":"16635:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16627:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2b46fae8951b5666cf5036a2bfff9803d02b9a299525a4505cc74a99e0633220__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16408:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16422:4:103","type":""}],"src":"16257:403:103"},{"body":{"nodeType":"YulBlock","src":"16839:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16856:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16867:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16849:6:103"},"nodeType":"YulFunctionCall","src":"16849:21:103"},"nodeType":"YulExpressionStatement","src":"16849:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16890:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16901:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16886:3:103"},"nodeType":"YulFunctionCall","src":"16886:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16906:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16879:6:103"},"nodeType":"YulFunctionCall","src":"16879:30:103"},"nodeType":"YulExpressionStatement","src":"16879:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16929:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16940:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16925:3:103"},"nodeType":"YulFunctionCall","src":"16925:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16945:34:103","type":"","value":"ERROR:TRS-004:TREASURY_SUSPENDED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16918:6:103"},"nodeType":"YulFunctionCall","src":"16918:62:103"},"nodeType":"YulExpressionStatement","src":"16918:62:103"},{"nodeType":"YulAssignment","src":"16989:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17001:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17012:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16997:3:103"},"nodeType":"YulFunctionCall","src":"16997:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16989:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3716cf2f5864d6ed7dbe013f132263c98f75980b1bc9e53587b62e45d53b8001__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16816:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16830:4:103","type":""}],"src":"16665:356:103"},{"body":{"nodeType":"YulBlock","src":"17200:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17228:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17210:6:103"},"nodeType":"YulFunctionCall","src":"17210:21:103"},"nodeType":"YulExpressionStatement","src":"17210:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17262:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17247:3:103"},"nodeType":"YulFunctionCall","src":"17247:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17267:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17240:6:103"},"nodeType":"YulFunctionCall","src":"17240:30:103"},"nodeType":"YulExpressionStatement","src":"17240:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17290:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17301:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17286:3:103"},"nodeType":"YulFunctionCall","src":"17286:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17306:34:103","type":"","value":"ERROR:TRS-017:WALLET_ADDRESS_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17279:6:103"},"nodeType":"YulFunctionCall","src":"17279:62:103"},"nodeType":"YulExpressionStatement","src":"17279:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17361:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17372:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17357:3:103"},"nodeType":"YulFunctionCall","src":"17357:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17377:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17350:6:103"},"nodeType":"YulFunctionCall","src":"17350:31:103"},"nodeType":"YulExpressionStatement","src":"17350:31:103"},{"nodeType":"YulAssignment","src":"17390:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17402:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17413:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17398:3:103"},"nodeType":"YulFunctionCall","src":"17398:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17390:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3acbd6322e617e55df208025743cb9bdef35beedf84134e8e69828378743af76__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17177:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17191:4:103","type":""}],"src":"17026:397:103"},{"body":{"nodeType":"YulBlock","src":"17602:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17619:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17630:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17612:6:103"},"nodeType":"YulFunctionCall","src":"17612:21:103"},"nodeType":"YulExpressionStatement","src":"17612:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17653:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17664:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17649:3:103"},"nodeType":"YulFunctionCall","src":"17649:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17669:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17642:6:103"},"nodeType":"YulFunctionCall","src":"17642:30:103"},"nodeType":"YulExpressionStatement","src":"17642:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17692:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17703:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17688:3:103"},"nodeType":"YulFunctionCall","src":"17688:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17708:34:103","type":"","value":"ERROR:TRS-061:RISKPOOL_WALLET_BA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17681:6:103"},"nodeType":"YulFunctionCall","src":"17681:62:103"},"nodeType":"YulExpressionStatement","src":"17681:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17763:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17774:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17759:3:103"},"nodeType":"YulFunctionCall","src":"17759:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17779:17:103","type":"","value":"LANCE_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17752:6:103"},"nodeType":"YulFunctionCall","src":"17752:45:103"},"nodeType":"YulExpressionStatement","src":"17752:45:103"},{"nodeType":"YulAssignment","src":"17806:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17829:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17814:3:103"},"nodeType":"YulFunctionCall","src":"17814:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17806:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4ff8d3b4e484daf7626b33b4e51d57bdf16ceea6f454579b2b8cc97aa218b830__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17579:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17593:4:103","type":""}],"src":"17428:411:103"},{"body":{"nodeType":"YulBlock","src":"18018:176:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18035:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18046:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18028:6:103"},"nodeType":"YulFunctionCall","src":"18028:21:103"},"nodeType":"YulExpressionStatement","src":"18028:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18069:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18080:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18065:3:103"},"nodeType":"YulFunctionCall","src":"18065:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18085:2:103","type":"","value":"26"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18058:6:103"},"nodeType":"YulFunctionCall","src":"18058:30:103"},"nodeType":"YulExpressionStatement","src":"18058:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18108:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18119:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18104:3:103"},"nodeType":"YulFunctionCall","src":"18104:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18124:28:103","type":"","value":"ERROR:TRS-023:NOT_RISKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18097:6:103"},"nodeType":"YulFunctionCall","src":"18097:56:103"},"nodeType":"YulExpressionStatement","src":"18097:56:103"},{"nodeType":"YulAssignment","src":"18162:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18185:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18170:3:103"},"nodeType":"YulFunctionCall","src":"18170:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18162:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_51470dc3834195a38b6a47115f9352e7c4e977a95b9739b912cca2a00008681e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17995:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18009:4:103","type":""}],"src":"17844:350:103"},{"body":{"nodeType":"YulBlock","src":"18373:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18401:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18383:6:103"},"nodeType":"YulFunctionCall","src":"18383:21:103"},"nodeType":"YulExpressionStatement","src":"18383:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18424:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18435:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18420:3:103"},"nodeType":"YulFunctionCall","src":"18420:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18440:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18413:6:103"},"nodeType":"YulFunctionCall","src":"18413:30:103"},"nodeType":"YulExpressionStatement","src":"18413:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18474:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18459:3:103"},"nodeType":"YulFunctionCall","src":"18459:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18479:34:103","type":"","value":"ERROR:TRS-032:PREMIUM_TRANSFER_F"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18452:6:103"},"nodeType":"YulFunctionCall","src":"18452:62:103"},"nodeType":"YulExpressionStatement","src":"18452:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18534:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18545:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18530:3:103"},"nodeType":"YulFunctionCall","src":"18530:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18550:7:103","type":"","value":"AILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18523:6:103"},"nodeType":"YulFunctionCall","src":"18523:35:103"},"nodeType":"YulExpressionStatement","src":"18523:35:103"},{"nodeType":"YulAssignment","src":"18567:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18579:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18590:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18575:3:103"},"nodeType":"YulFunctionCall","src":"18575:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18567:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5cf18c155db3e0e44074585a9cca469fe44a6111772a61c46ab85216052cb52e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18350:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18364:4:103","type":""}],"src":"18199:401:103"},{"body":{"nodeType":"YulBlock","src":"18779:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18796:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18807:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18789:6:103"},"nodeType":"YulFunctionCall","src":"18789:21:103"},"nodeType":"YulExpressionStatement","src":"18789:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18830:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18841:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18826:3:103"},"nodeType":"YulFunctionCall","src":"18826:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18846:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18819:6:103"},"nodeType":"YulFunctionCall","src":"18819:30:103"},"nodeType":"YulExpressionStatement","src":"18819:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18869:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18880:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18865:3:103"},"nodeType":"YulFunctionCall","src":"18865:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18885:30:103","type":"","value":"ERROR:TRS-030:AMOUNT_TOO_BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18858:6:103"},"nodeType":"YulFunctionCall","src":"18858:58:103"},"nodeType":"YulExpressionStatement","src":"18858:58:103"},{"nodeType":"YulAssignment","src":"18925:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18937:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18948:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18933:3:103"},"nodeType":"YulFunctionCall","src":"18933:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18925:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_61e1f4ff42e3123af58f70ed814e76c339065814b9eabd9415d5cb832ae5bb26__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18756:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18770:4:103","type":""}],"src":"18605:352:103"},{"body":{"nodeType":"YulBlock","src":"19136:166:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19164:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19146:6:103"},"nodeType":"YulFunctionCall","src":"19146:21:103"},"nodeType":"YulExpressionStatement","src":"19146:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19187:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19198:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19183:3:103"},"nodeType":"YulFunctionCall","src":"19183:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19203:2:103","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19176:6:103"},"nodeType":"YulFunctionCall","src":"19176:30:103"},"nodeType":"YulExpressionStatement","src":"19176:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19237:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19222:3:103"},"nodeType":"YulFunctionCall","src":"19222:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19242:18:103","type":"","value":"Pausable: paused"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19215:6:103"},"nodeType":"YulFunctionCall","src":"19215:46:103"},"nodeType":"YulExpressionStatement","src":"19215:46:103"},{"nodeType":"YulAssignment","src":"19270:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19282:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19293:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19278:3:103"},"nodeType":"YulFunctionCall","src":"19278:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19270:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19113:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19127:4:103","type":""}],"src":"18962:340:103"},{"body":{"nodeType":"YulBlock","src":"19481:238:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19498:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19509:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19491:6:103"},"nodeType":"YulFunctionCall","src":"19491:21:103"},"nodeType":"YulExpressionStatement","src":"19491:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19532:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19543:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19528:3:103"},"nodeType":"YulFunctionCall","src":"19528:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19548:2:103","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19521:6:103"},"nodeType":"YulFunctionCall","src":"19521:30:103"},"nodeType":"YulExpressionStatement","src":"19521:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19582:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19567:3:103"},"nodeType":"YulFunctionCall","src":"19567:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19587:34:103","type":"","value":"ERROR:TRS-090:FEE_CALCULATION_DA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19560:6:103"},"nodeType":"YulFunctionCall","src":"19560:62:103"},"nodeType":"YulExpressionStatement","src":"19560:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19653:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19638:3:103"},"nodeType":"YulFunctionCall","src":"19638:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19658:18:103","type":"","value":"TA_NOT_SUPPORTED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19631:6:103"},"nodeType":"YulFunctionCall","src":"19631:46:103"},"nodeType":"YulExpressionStatement","src":"19631:46:103"},{"nodeType":"YulAssignment","src":"19686:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19698:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19709:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19694:3:103"},"nodeType":"YulFunctionCall","src":"19694:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19686:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6a7920c070ee7c8d85c964148119b679dffd62a937b57794605d2b978251dbac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19458:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19472:4:103","type":""}],"src":"19307:412:103"},{"body":{"nodeType":"YulBlock","src":"19898:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19926:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19908:6:103"},"nodeType":"YulFunctionCall","src":"19908:21:103"},"nodeType":"YulExpressionStatement","src":"19908:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19949:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19960:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19945:3:103"},"nodeType":"YulFunctionCall","src":"19945:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19965:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19938:6:103"},"nodeType":"YulFunctionCall","src":"19938:30:103"},"nodeType":"YulExpressionStatement","src":"19938:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19988:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19999:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19984:3:103"},"nodeType":"YulFunctionCall","src":"19984:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20004:34:103","type":"","value":"ERROR:TRS-020:ID_NOT_PRODUCT_OR_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19977:6:103"},"nodeType":"YulFunctionCall","src":"19977:62:103"},"nodeType":"YulExpressionStatement","src":"19977:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20059:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20070:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20055:3:103"},"nodeType":"YulFunctionCall","src":"20055:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20075:10:103","type":"","value":"RISKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20048:6:103"},"nodeType":"YulFunctionCall","src":"20048:38:103"},"nodeType":"YulExpressionStatement","src":"20048:38:103"},{"nodeType":"YulAssignment","src":"20095:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20107:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20118:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20103:3:103"},"nodeType":"YulFunctionCall","src":"20103:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20095:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6bade88963632687c264d794f9df0a7fbb1e4e45c72ac6b0eea83aa8d3c453de__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19875:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19889:4:103","type":""}],"src":"19724:404:103"},{"body":{"nodeType":"YulBlock","src":"20307:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20324:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20335:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20317:6:103"},"nodeType":"YulFunctionCall","src":"20317:21:103"},"nodeType":"YulExpressionStatement","src":"20317:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20358:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20369:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20354:3:103"},"nodeType":"YulFunctionCall","src":"20354:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20374:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20347:6:103"},"nodeType":"YulFunctionCall","src":"20347:30:103"},"nodeType":"YulExpressionStatement","src":"20347:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20408:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20393:3:103"},"nodeType":"YulFunctionCall","src":"20393:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20413:34:103","type":"","value":"ERROR:TRS-054:FEE_TRANSFER_FAILE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20386:6:103"},"nodeType":"YulFunctionCall","src":"20386:62:103"},"nodeType":"YulExpressionStatement","src":"20386:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20468:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20479:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20464:3:103"},"nodeType":"YulFunctionCall","src":"20464:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20484:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20457:6:103"},"nodeType":"YulFunctionCall","src":"20457:31:103"},"nodeType":"YulExpressionStatement","src":"20457:31:103"},{"nodeType":"YulAssignment","src":"20497:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20520:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20505:3:103"},"nodeType":"YulFunctionCall","src":"20505:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20497:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_77500f959cf782554c0ce0c1dde202048b680670f0cce75f17feb23a8e0308ef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20284:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20298:4:103","type":""}],"src":"20133:397:103"},{"body":{"nodeType":"YulBlock","src":"20709:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20726:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20737:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20719:6:103"},"nodeType":"YulFunctionCall","src":"20719:21:103"},"nodeType":"YulExpressionStatement","src":"20719:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20760:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20771:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20756:3:103"},"nodeType":"YulFunctionCall","src":"20756:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"20776:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20749:6:103"},"nodeType":"YulFunctionCall","src":"20749:30:103"},"nodeType":"YulExpressionStatement","src":"20749:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20810:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20795:3:103"},"nodeType":"YulFunctionCall","src":"20795:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20815:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20788:6:103"},"nodeType":"YulFunctionCall","src":"20788:62:103"},"nodeType":"YulExpressionStatement","src":"20788:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20870:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20881:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20866:3:103"},"nodeType":"YulFunctionCall","src":"20866:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"20886:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20859:6:103"},"nodeType":"YulFunctionCall","src":"20859:44:103"},"nodeType":"YulExpressionStatement","src":"20859:44:103"},{"nodeType":"YulAssignment","src":"20912:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20924:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20935:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20920:3:103"},"nodeType":"YulFunctionCall","src":"20920:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20912:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20686:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20700:4:103","type":""}],"src":"20535:410:103"},{"body":{"nodeType":"YulBlock","src":"21124:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21152:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21134:6:103"},"nodeType":"YulFunctionCall","src":"21134:21:103"},"nodeType":"YulExpressionStatement","src":"21134:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21186:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21171:3:103"},"nodeType":"YulFunctionCall","src":"21171:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21191:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21164:6:103"},"nodeType":"YulFunctionCall","src":"21164:30:103"},"nodeType":"YulExpressionStatement","src":"21164:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21214:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21225:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21210:3:103"},"nodeType":"YulFunctionCall","src":"21210:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21230:27:103","type":"","value":"ERROR:TRS-011:NOT_PRODUCT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21203:6:103"},"nodeType":"YulFunctionCall","src":"21203:55:103"},"nodeType":"YulExpressionStatement","src":"21203:55:103"},{"nodeType":"YulAssignment","src":"21267:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21290:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21275:3:103"},"nodeType":"YulFunctionCall","src":"21275:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21267:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7da3c4275d49aeca81de3efd989371cdf344763b44123371517a3e6b02efcce4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21101:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21115:4:103","type":""}],"src":"20950:349:103"},{"body":{"nodeType":"YulBlock","src":"21478:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21495:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21506:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21488:6:103"},"nodeType":"YulFunctionCall","src":"21488:21:103"},"nodeType":"YulExpressionStatement","src":"21488:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21529:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21540:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21525:3:103"},"nodeType":"YulFunctionCall","src":"21525:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21545:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21518:6:103"},"nodeType":"YulFunctionCall","src":"21518:30:103"},"nodeType":"YulExpressionStatement","src":"21518:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21568:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21579:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21564:3:103"},"nodeType":"YulFunctionCall","src":"21564:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21584:33:103","type":"","value":"ERROR:TRS-052:BALANCE_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21557:6:103"},"nodeType":"YulFunctionCall","src":"21557:61:103"},"nodeType":"YulExpressionStatement","src":"21557:61:103"},{"nodeType":"YulAssignment","src":"21627:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21639:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21650:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21635:3:103"},"nodeType":"YulFunctionCall","src":"21635:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21627:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7de95b395fb2e1b69ae5bfa415c7293d3911661a8a5a83a9008160da9346bd51__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21455:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21469:4:103","type":""}],"src":"21304:355:103"},{"body":{"nodeType":"YulBlock","src":"21838:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21855:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21866:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21848:6:103"},"nodeType":"YulFunctionCall","src":"21848:21:103"},"nodeType":"YulExpressionStatement","src":"21848:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21889:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21900:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21885:3:103"},"nodeType":"YulFunctionCall","src":"21885:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"21905:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21878:6:103"},"nodeType":"YulFunctionCall","src":"21878:30:103"},"nodeType":"YulExpressionStatement","src":"21878:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21928:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21939:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21924:3:103"},"nodeType":"YulFunctionCall","src":"21924:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"21944:34:103","type":"","value":"ERROR:TRS-043:PAYOUT_ALLOWANCE_T"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21917:6:103"},"nodeType":"YulFunctionCall","src":"21917:62:103"},"nodeType":"YulExpressionStatement","src":"21917:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21999:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22010:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21995:3:103"},"nodeType":"YulFunctionCall","src":"21995:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22015:10:103","type":"","value":"OO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21988:6:103"},"nodeType":"YulFunctionCall","src":"21988:38:103"},"nodeType":"YulExpressionStatement","src":"21988:38:103"},{"nodeType":"YulAssignment","src":"22035:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22047:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22058:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22043:3:103"},"nodeType":"YulFunctionCall","src":"22043:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22035:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8e9183e17ad533b95e8b637459b508b75172f9edd7e8c99c80d386496a06de75__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21815:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21829:4:103","type":""}],"src":"21664:404:103"},{"body":{"nodeType":"YulBlock","src":"22247:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22264:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22275:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22257:6:103"},"nodeType":"YulFunctionCall","src":"22257:21:103"},"nodeType":"YulExpressionStatement","src":"22257:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22298:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22309:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22294:3:103"},"nodeType":"YulFunctionCall","src":"22294:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22314:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22287:6:103"},"nodeType":"YulFunctionCall","src":"22287:30:103"},"nodeType":"YulExpressionStatement","src":"22287:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22337:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22348:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22333:3:103"},"nodeType":"YulFunctionCall","src":"22333:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22353:34:103","type":"","value":"ERROR:TRS-012:PRODUCT_TOKEN_ALRE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22326:6:103"},"nodeType":"YulFunctionCall","src":"22326:62:103"},"nodeType":"YulExpressionStatement","src":"22326:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22408:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22419:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22404:3:103"},"nodeType":"YulFunctionCall","src":"22404:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22424:9:103","type":"","value":"ADY_SET"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22397:6:103"},"nodeType":"YulFunctionCall","src":"22397:37:103"},"nodeType":"YulExpressionStatement","src":"22397:37:103"},{"nodeType":"YulAssignment","src":"22443:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22455:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22466:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22451:3:103"},"nodeType":"YulFunctionCall","src":"22451:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22443:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_91cd09a8272bca29602366afa78499ab462a45026fab37c8b88437074a1814d2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22224:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22238:4:103","type":""}],"src":"22073:403:103"},{"body":{"nodeType":"YulBlock","src":"22655:238:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22672:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22683:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22665:6:103"},"nodeType":"YulFunctionCall","src":"22665:21:103"},"nodeType":"YulExpressionStatement","src":"22665:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22706:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22717:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22702:3:103"},"nodeType":"YulFunctionCall","src":"22702:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"22722:2:103","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22695:6:103"},"nodeType":"YulFunctionCall","src":"22695:30:103"},"nodeType":"YulExpressionStatement","src":"22695:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22745:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22756:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22741:3:103"},"nodeType":"YulFunctionCall","src":"22741:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22761:34:103","type":"","value":"ERROR:TRS-013:PRODUCT_TOKEN_ADDR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22734:6:103"},"nodeType":"YulFunctionCall","src":"22734:62:103"},"nodeType":"YulExpressionStatement","src":"22734:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22816:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22827:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22812:3:103"},"nodeType":"YulFunctionCall","src":"22812:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"22832:18:103","type":"","value":"ESS_NOT_MATCHING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22805:6:103"},"nodeType":"YulFunctionCall","src":"22805:46:103"},"nodeType":"YulExpressionStatement","src":"22805:46:103"},{"nodeType":"YulAssignment","src":"22860:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22872:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22883:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22868:3:103"},"nodeType":"YulFunctionCall","src":"22868:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22860:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9defa563bbba994121b588e9e6ffee73848f6557b51cbbd6b857b473a53fa73e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22632:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22646:4:103","type":""}],"src":"22481:412:103"},{"body":{"nodeType":"YulBlock","src":"23072:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23089:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23100:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23082:6:103"},"nodeType":"YulFunctionCall","src":"23082:21:103"},"nodeType":"YulExpressionStatement","src":"23082:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23123:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23134:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23119:3:103"},"nodeType":"YulFunctionCall","src":"23119:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23139:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23112:6:103"},"nodeType":"YulFunctionCall","src":"23112:30:103"},"nodeType":"YulExpressionStatement","src":"23112:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23162:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23173:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23158:3:103"},"nodeType":"YulFunctionCall","src":"23158:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23178:34:103","type":"","value":"ERROR:TRS-092:PRODUCT_WITHOUT_RI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23151:6:103"},"nodeType":"YulFunctionCall","src":"23151:62:103"},"nodeType":"YulExpressionStatement","src":"23151:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23233:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23244:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23229:3:103"},"nodeType":"YulFunctionCall","src":"23229:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23249:8:103","type":"","value":"SKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23222:6:103"},"nodeType":"YulFunctionCall","src":"23222:36:103"},"nodeType":"YulExpressionStatement","src":"23222:36:103"},{"nodeType":"YulAssignment","src":"23267:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23290:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23275:3:103"},"nodeType":"YulFunctionCall","src":"23275:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23267:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a12cb855de85ca500fa62d405caf8e8c48f5df6ba8af9f453603b23bd9e4d04d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23049:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23063:4:103","type":""}],"src":"22898:402:103"},{"body":{"nodeType":"YulBlock","src":"23479:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23507:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23489:6:103"},"nodeType":"YulFunctionCall","src":"23489:21:103"},"nodeType":"YulExpressionStatement","src":"23489:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23541:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23526:3:103"},"nodeType":"YulFunctionCall","src":"23526:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23546:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23519:6:103"},"nodeType":"YulFunctionCall","src":"23519:30:103"},"nodeType":"YulExpressionStatement","src":"23519:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23580:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23565:3:103"},"nodeType":"YulFunctionCall","src":"23565:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23585:34:103","type":"","value":"ERROR:TRS-021:FRACIONAL_FEE_TOO_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23558:6:103"},"nodeType":"YulFunctionCall","src":"23558:62:103"},"nodeType":"YulExpressionStatement","src":"23558:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23640:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23651:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23636:3:103"},"nodeType":"YulFunctionCall","src":"23636:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23656:5:103","type":"","value":"BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23629:6:103"},"nodeType":"YulFunctionCall","src":"23629:33:103"},"nodeType":"YulExpressionStatement","src":"23629:33:103"},{"nodeType":"YulAssignment","src":"23671:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23683:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23694:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23679:3:103"},"nodeType":"YulFunctionCall","src":"23679:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23671:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a583f75e567de5febc61daea2db74bc5d44cccb6bb5cd7ea41b386478b7592a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23456:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23470:4:103","type":""}],"src":"23305:399:103"},{"body":{"nodeType":"YulBlock","src":"23883:247:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23900:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23911:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23893:6:103"},"nodeType":"YulFunctionCall","src":"23893:21:103"},"nodeType":"YulExpressionStatement","src":"23893:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23930:3:103"},"nodeType":"YulFunctionCall","src":"23930:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"23950:2:103","type":"","value":"57"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23923:6:103"},"nodeType":"YulFunctionCall","src":"23923:30:103"},"nodeType":"YulExpressionStatement","src":"23923:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23973:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23984:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23969:3:103"},"nodeType":"YulFunctionCall","src":"23969:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"23989:34:103","type":"","value":"ERROR:TRS-060:CAPACITY_OR_BALANC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23962:6:103"},"nodeType":"YulFunctionCall","src":"23962:62:103"},"nodeType":"YulExpressionStatement","src":"23962:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24044:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24055:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24040:3:103"},"nodeType":"YulFunctionCall","src":"24040:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24060:27:103","type":"","value":"E_SMALLER_THAN_WITHDRAWAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24033:6:103"},"nodeType":"YulFunctionCall","src":"24033:55:103"},"nodeType":"YulExpressionStatement","src":"24033:55:103"},{"nodeType":"YulAssignment","src":"24097:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24109:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24120:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24105:3:103"},"nodeType":"YulFunctionCall","src":"24105:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24097:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_abefc76b4190bc32094fc332397abd635b177c21ff1892fa5ed5fd71e1968656__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23860:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23874:4:103","type":""}],"src":"23709:421:103"},{"body":{"nodeType":"YulBlock","src":"24309:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24326:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24337:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24319:6:103"},"nodeType":"YulFunctionCall","src":"24319:21:103"},"nodeType":"YulExpressionStatement","src":"24319:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24360:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24371:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24356:3:103"},"nodeType":"YulFunctionCall","src":"24356:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24376:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24349:6:103"},"nodeType":"YulFunctionCall","src":"24349:30:103"},"nodeType":"YulExpressionStatement","src":"24349:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24399:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24410:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24395:3:103"},"nodeType":"YulFunctionCall","src":"24395:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24415:30:103","type":"","value":"ERROR:CRC-002:NOT_ON_STORAGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24388:6:103"},"nodeType":"YulFunctionCall","src":"24388:58:103"},"nodeType":"YulExpressionStatement","src":"24388:58:103"},{"nodeType":"YulAssignment","src":"24455:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24467:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24478:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24463:3:103"},"nodeType":"YulFunctionCall","src":"24463:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24455:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24286:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24300:4:103","type":""}],"src":"24135:352:103"},{"body":{"nodeType":"YulBlock","src":"24666:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24683:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24694:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24676:6:103"},"nodeType":"YulFunctionCall","src":"24676:21:103"},"nodeType":"YulExpressionStatement","src":"24676:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24717:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24728:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24713:3:103"},"nodeType":"YulFunctionCall","src":"24713:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"24733:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24706:6:103"},"nodeType":"YulFunctionCall","src":"24706:30:103"},"nodeType":"YulExpressionStatement","src":"24706:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24756:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24767:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24752:3:103"},"nodeType":"YulFunctionCall","src":"24752:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24772:34:103","type":"","value":"ERROR:TRS-044:PAYOUT_TRANSFER_FA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24745:6:103"},"nodeType":"YulFunctionCall","src":"24745:62:103"},"nodeType":"YulExpressionStatement","src":"24745:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24827:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24838:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24823:3:103"},"nodeType":"YulFunctionCall","src":"24823:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"24843:6:103","type":"","value":"ILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24816:6:103"},"nodeType":"YulFunctionCall","src":"24816:34:103"},"nodeType":"YulExpressionStatement","src":"24816:34:103"},{"nodeType":"YulAssignment","src":"24859:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24871:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24882:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24867:3:103"},"nodeType":"YulFunctionCall","src":"24867:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24859:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b8f0baf95c395dce72ff03341babefe990689bb1ce08b121a2a99bc20faec980__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24643:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24657:4:103","type":""}],"src":"24492:400:103"},{"body":{"nodeType":"YulBlock","src":"25071:237:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25099:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25081:6:103"},"nodeType":"YulFunctionCall","src":"25081:21:103"},"nodeType":"YulExpressionStatement","src":"25081:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25133:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25118:3:103"},"nodeType":"YulFunctionCall","src":"25118:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25138:2:103","type":"","value":"47"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25111:6:103"},"nodeType":"YulFunctionCall","src":"25111:30:103"},"nodeType":"YulExpressionStatement","src":"25111:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25172:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25157:3:103"},"nodeType":"YulFunctionCall","src":"25157:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25177:34:103","type":"","value":"ERROR:TRS-042:RISKPOOL_WALLET_BA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25150:6:103"},"nodeType":"YulFunctionCall","src":"25150:62:103"},"nodeType":"YulExpressionStatement","src":"25150:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25232:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25243:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25228:3:103"},"nodeType":"YulFunctionCall","src":"25228:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25248:17:103","type":"","value":"LANCE_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25221:6:103"},"nodeType":"YulFunctionCall","src":"25221:45:103"},"nodeType":"YulExpressionStatement","src":"25221:45:103"},{"nodeType":"YulAssignment","src":"25275:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25287:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25298:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25283:3:103"},"nodeType":"YulFunctionCall","src":"25283:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25275:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_bbbd206bf526f712f36d054d860aea94d102517fedd4615662eb1c115a60beea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25048:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25062:4:103","type":""}],"src":"24897:411:103"},{"body":{"nodeType":"YulBlock","src":"25487:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25504:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25515:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25497:6:103"},"nodeType":"YulFunctionCall","src":"25497:21:103"},"nodeType":"YulExpressionStatement","src":"25497:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25538:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25549:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25534:3:103"},"nodeType":"YulFunctionCall","src":"25534:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25554:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25527:6:103"},"nodeType":"YulFunctionCall","src":"25527:30:103"},"nodeType":"YulExpressionStatement","src":"25527:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25577:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25588:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25573:3:103"},"nodeType":"YulFunctionCall","src":"25573:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25593:34:103","type":"","value":"ERROR:TRS-003:RISKPOOL_WALLET_UN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25566:6:103"},"nodeType":"YulFunctionCall","src":"25566:62:103"},"nodeType":"YulExpressionStatement","src":"25566:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25648:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25659:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25644:3:103"},"nodeType":"YulFunctionCall","src":"25644:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"25664:9:103","type":"","value":"DEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25637:6:103"},"nodeType":"YulFunctionCall","src":"25637:37:103"},"nodeType":"YulExpressionStatement","src":"25637:37:103"},{"nodeType":"YulAssignment","src":"25683:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25695:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25706:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25691:3:103"},"nodeType":"YulFunctionCall","src":"25691:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25683:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_bc89108457ff0693a34e0e46b7b733b4220c89a4cb97d3006bf3a51034cca2c9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25464:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25478:4:103","type":""}],"src":"25313:403:103"},{"body":{"nodeType":"YulBlock","src":"25895:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25912:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25923:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25905:6:103"},"nodeType":"YulFunctionCall","src":"25905:21:103"},"nodeType":"YulExpressionStatement","src":"25905:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25946:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25957:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25942:3:103"},"nodeType":"YulFunctionCall","src":"25942:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"25962:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25935:6:103"},"nodeType":"YulFunctionCall","src":"25935:30:103"},"nodeType":"YulExpressionStatement","src":"25935:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25981:3:103"},"nodeType":"YulFunctionCall","src":"25981:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26001:34:103","type":"","value":"ERROR:TRS-063:WITHDRAWAL_TRANSFE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25974:6:103"},"nodeType":"YulFunctionCall","src":"25974:62:103"},"nodeType":"YulExpressionStatement","src":"25974:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26056:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26067:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26052:3:103"},"nodeType":"YulFunctionCall","src":"26052:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26072:10:103","type":"","value":"R_FAILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26045:6:103"},"nodeType":"YulFunctionCall","src":"26045:38:103"},"nodeType":"YulExpressionStatement","src":"26045:38:103"},{"nodeType":"YulAssignment","src":"26092:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26104:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26115:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26100:3:103"},"nodeType":"YulFunctionCall","src":"26100:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26092:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c3c791ba0a21dcb3428b822dcce6828d8b36ff48be0d7f71d7205920e54c15b3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25872:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25886:4:103","type":""}],"src":"25721:404:103"},{"body":{"nodeType":"YulBlock","src":"26304:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26321:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26332:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26314:6:103"},"nodeType":"YulFunctionCall","src":"26314:21:103"},"nodeType":"YulExpressionStatement","src":"26314:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26355:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26366:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26351:3:103"},"nodeType":"YulFunctionCall","src":"26351:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26371:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26344:6:103"},"nodeType":"YulFunctionCall","src":"26344:30:103"},"nodeType":"YulExpressionStatement","src":"26344:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26394:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26405:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26390:3:103"},"nodeType":"YulFunctionCall","src":"26390:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26410:34:103","type":"","value":"ERROR:TRS-031:FEE_TRANSFER_FAILE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26383:6:103"},"nodeType":"YulFunctionCall","src":"26383:62:103"},"nodeType":"YulExpressionStatement","src":"26383:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26476:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26461:3:103"},"nodeType":"YulFunctionCall","src":"26461:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26481:3:103","type":"","value":"D"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26454:6:103"},"nodeType":"YulFunctionCall","src":"26454:31:103"},"nodeType":"YulExpressionStatement","src":"26454:31:103"},{"nodeType":"YulAssignment","src":"26494:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26506:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26517:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26502:3:103"},"nodeType":"YulFunctionCall","src":"26502:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26494:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c64a6a11b68791be2b7fc40e3fe3e71aed151a6ed457ee8c919ac899d8679ba6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26281:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26295:4:103","type":""}],"src":"26130:397:103"},{"body":{"nodeType":"YulBlock","src":"26706:238:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26723:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26734:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26716:6:103"},"nodeType":"YulFunctionCall","src":"26716:21:103"},"nodeType":"YulExpressionStatement","src":"26716:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26757:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26768:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26753:3:103"},"nodeType":"YulFunctionCall","src":"26753:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"26773:2:103","type":"","value":"48"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26746:6:103"},"nodeType":"YulFunctionCall","src":"26746:30:103"},"nodeType":"YulExpressionStatement","src":"26746:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26796:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26807:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26792:3:103"},"nodeType":"YulFunctionCall","src":"26792:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26812:34:103","type":"","value":"ERROR:TRS-014:RISKPOOL_TOKEN_ADD"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26785:6:103"},"nodeType":"YulFunctionCall","src":"26785:62:103"},"nodeType":"YulExpressionStatement","src":"26785:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26867:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26878:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26863:3:103"},"nodeType":"YulFunctionCall","src":"26863:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"26883:18:103","type":"","value":"RESS_NOT_MACHING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26856:6:103"},"nodeType":"YulFunctionCall","src":"26856:46:103"},"nodeType":"YulExpressionStatement","src":"26856:46:103"},{"nodeType":"YulAssignment","src":"26911:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"26923:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"26934:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26919:3:103"},"nodeType":"YulFunctionCall","src":"26919:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"26911:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_cbf92c04d1a98b7ef606e69dd4b1bdfb97cdaa3f5e71e07471d88f1ddf906147__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"26683:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"26697:4:103","type":""}],"src":"26532:412:103"},{"body":{"nodeType":"YulBlock","src":"27123:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27140:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27151:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27133:6:103"},"nodeType":"YulFunctionCall","src":"27133:21:103"},"nodeType":"YulExpressionStatement","src":"27133:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27174:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27185:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27170:3:103"},"nodeType":"YulFunctionCall","src":"27170:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27190:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27163:6:103"},"nodeType":"YulFunctionCall","src":"27163:30:103"},"nodeType":"YulExpressionStatement","src":"27163:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27213:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27224:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27209:3:103"},"nodeType":"YulFunctionCall","src":"27209:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27229:34:103","type":"","value":"ERROR:TRS-010:TOKEN_ADDRESS_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27202:6:103"},"nodeType":"YulFunctionCall","src":"27202:62:103"},"nodeType":"YulExpressionStatement","src":"27202:62:103"},{"nodeType":"YulAssignment","src":"27273:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27285:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27296:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27281:3:103"},"nodeType":"YulFunctionCall","src":"27281:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27273:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ceb0bf7951c332a40d75b8b4b45101b45a65b113825ab60387d5b818680891fa__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27100:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27114:4:103","type":""}],"src":"26949:356:103"},{"body":{"nodeType":"YulBlock","src":"27484:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27501:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27512:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27494:6:103"},"nodeType":"YulFunctionCall","src":"27494:21:103"},"nodeType":"YulExpressionStatement","src":"27494:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27535:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27546:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27531:3:103"},"nodeType":"YulFunctionCall","src":"27531:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27551:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27524:6:103"},"nodeType":"YulFunctionCall","src":"27524:30:103"},"nodeType":"YulExpressionStatement","src":"27524:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27574:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27585:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27570:3:103"},"nodeType":"YulFunctionCall","src":"27570:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27590:34:103","type":"","value":"ERROR:CRC-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27563:6:103"},"nodeType":"YulFunctionCall","src":"27563:62:103"},"nodeType":"YulExpressionStatement","src":"27563:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27645:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27656:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27641:3:103"},"nodeType":"YulFunctionCall","src":"27641:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27661:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27634:6:103"},"nodeType":"YulFunctionCall","src":"27634:33:103"},"nodeType":"YulExpressionStatement","src":"27634:33:103"},{"nodeType":"YulAssignment","src":"27676:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27699:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27684:3:103"},"nodeType":"YulFunctionCall","src":"27684:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"27676:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27461:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27475:4:103","type":""}],"src":"27310:399:103"},{"body":{"nodeType":"YulBlock","src":"27888:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27905:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27916:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27898:6:103"},"nodeType":"YulFunctionCall","src":"27898:21:103"},"nodeType":"YulExpressionStatement","src":"27898:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27939:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27950:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27935:3:103"},"nodeType":"YulFunctionCall","src":"27935:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"27955:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27928:6:103"},"nodeType":"YulFunctionCall","src":"27928:30:103"},"nodeType":"YulExpressionStatement","src":"27928:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"27978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"27989:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"27974:3:103"},"nodeType":"YulFunctionCall","src":"27974:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"27994:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27967:6:103"},"nodeType":"YulFunctionCall","src":"27967:62:103"},"nodeType":"YulExpressionStatement","src":"27967:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28049:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28060:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28045:3:103"},"nodeType":"YulFunctionCall","src":"28045:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28065:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28038:6:103"},"nodeType":"YulFunctionCall","src":"28038:41:103"},"nodeType":"YulExpressionStatement","src":"28038:41:103"},{"nodeType":"YulAssignment","src":"28088:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28100:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28111:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28096:3:103"},"nodeType":"YulFunctionCall","src":"28096:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28088:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"27865:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"27879:4:103","type":""}],"src":"27714:407:103"},{"body":{"nodeType":"YulBlock","src":"28300:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28317:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28328:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28310:6:103"},"nodeType":"YulFunctionCall","src":"28310:21:103"},"nodeType":"YulExpressionStatement","src":"28310:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28351:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28362:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28347:3:103"},"nodeType":"YulFunctionCall","src":"28347:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28367:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28340:6:103"},"nodeType":"YulFunctionCall","src":"28340:30:103"},"nodeType":"YulExpressionStatement","src":"28340:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28401:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28386:3:103"},"nodeType":"YulFunctionCall","src":"28386:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28406:34:103","type":"","value":"ERROR:CRC-003:NOT_PRODUCT_SERVIC"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28379:6:103"},"nodeType":"YulFunctionCall","src":"28379:62:103"},"nodeType":"YulExpressionStatement","src":"28379:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28461:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28472:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28457:3:103"},"nodeType":"YulFunctionCall","src":"28457:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28477:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28450:6:103"},"nodeType":"YulFunctionCall","src":"28450:31:103"},"nodeType":"YulExpressionStatement","src":"28450:31:103"},{"nodeType":"YulAssignment","src":"28490:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28502:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28513:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28498:3:103"},"nodeType":"YulFunctionCall","src":"28498:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28490:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28277:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28291:4:103","type":""}],"src":"28126:397:103"},{"body":{"nodeType":"YulBlock","src":"28702:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28730:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28712:6:103"},"nodeType":"YulFunctionCall","src":"28712:21:103"},"nodeType":"YulExpressionStatement","src":"28712:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28764:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28749:3:103"},"nodeType":"YulFunctionCall","src":"28749:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"28769:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28742:6:103"},"nodeType":"YulFunctionCall","src":"28742:30:103"},"nodeType":"YulExpressionStatement","src":"28742:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28792:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28803:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28788:3:103"},"nodeType":"YulFunctionCall","src":"28788:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"28808:27:103","type":"","value":"ERROR:TRS-091:FEE_TOO_BIG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"28781:6:103"},"nodeType":"YulFunctionCall","src":"28781:55:103"},"nodeType":"YulExpressionStatement","src":"28781:55:103"},{"nodeType":"YulAssignment","src":"28845:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"28857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"28868:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"28853:3:103"},"nodeType":"YulFunctionCall","src":"28853:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"28845:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e106755395283005e5aee6caae70ff5d864aa76c26b2d96a6a077ed12733afd7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"28679:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"28693:4:103","type":""}],"src":"28528:349:103"},{"body":{"nodeType":"YulBlock","src":"29056:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29073:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29084:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29066:6:103"},"nodeType":"YulFunctionCall","src":"29066:21:103"},"nodeType":"YulExpressionStatement","src":"29066:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29107:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29118:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29103:3:103"},"nodeType":"YulFunctionCall","src":"29103:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29123:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29096:6:103"},"nodeType":"YulFunctionCall","src":"29096:30:103"},"nodeType":"YulExpressionStatement","src":"29096:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29146:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29157:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29142:3:103"},"nodeType":"YulFunctionCall","src":"29142:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29162:34:103","type":"","value":"ERROR:TRS-055:CAPITAL_TRANSFER_F"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29135:6:103"},"nodeType":"YulFunctionCall","src":"29135:62:103"},"nodeType":"YulExpressionStatement","src":"29135:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29228:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29213:3:103"},"nodeType":"YulFunctionCall","src":"29213:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29233:7:103","type":"","value":"AILED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29206:6:103"},"nodeType":"YulFunctionCall","src":"29206:35:103"},"nodeType":"YulExpressionStatement","src":"29206:35:103"},{"nodeType":"YulAssignment","src":"29250:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29262:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29273:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29258:3:103"},"nodeType":"YulFunctionCall","src":"29258:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29250:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ee072957df3bcc0b6a380c5eb268686cec614b16dbbda8cabbd506c7cad3be44__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29033:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29047:4:103","type":""}],"src":"28882:401:103"},{"body":{"nodeType":"YulBlock","src":"29462:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29479:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29490:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29472:6:103"},"nodeType":"YulFunctionCall","src":"29472:21:103"},"nodeType":"YulExpressionStatement","src":"29472:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29513:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29524:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29509:3:103"},"nodeType":"YulFunctionCall","src":"29509:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29529:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29502:6:103"},"nodeType":"YulFunctionCall","src":"29502:30:103"},"nodeType":"YulExpressionStatement","src":"29502:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29552:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29563:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29548:3:103"},"nodeType":"YulFunctionCall","src":"29548:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29568:34:103","type":"","value":"ERROR:TRS-024:FEE_SPEC_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29541:6:103"},"nodeType":"YulFunctionCall","src":"29541:62:103"},"nodeType":"YulExpressionStatement","src":"29541:62:103"},{"nodeType":"YulAssignment","src":"29612:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29624:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29635:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29620:3:103"},"nodeType":"YulFunctionCall","src":"29620:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29612:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f3bfd224a81d9a321038f24de2588f8f485d74dd9e38c360b2708398c4728895__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29439:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29453:4:103","type":""}],"src":"29288:356:103"},{"body":{"nodeType":"YulBlock","src":"29823:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29840:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29851:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29833:6:103"},"nodeType":"YulFunctionCall","src":"29833:21:103"},"nodeType":"YulExpressionStatement","src":"29833:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29874:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29885:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29870:3:103"},"nodeType":"YulFunctionCall","src":"29870:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"29890:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29863:6:103"},"nodeType":"YulFunctionCall","src":"29863:30:103"},"nodeType":"YulExpressionStatement","src":"29863:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29913:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29924:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29909:3:103"},"nodeType":"YulFunctionCall","src":"29909:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"29929:34:103","type":"","value":"ERROR:TRS-050:FEE_SPEC_UNDEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"29902:6:103"},"nodeType":"YulFunctionCall","src":"29902:62:103"},"nodeType":"YulExpressionStatement","src":"29902:62:103"},{"nodeType":"YulAssignment","src":"29973:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"29985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"29996:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"29981:3:103"},"nodeType":"YulFunctionCall","src":"29981:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"29973:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f5e24e1787cfb8007a3eb3c3796c431645b0dfa466828874ea644c38e8537028__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"29800:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"29814:4:103","type":""}],"src":"29649:356:103"},{"body":{"nodeType":"YulBlock","src":"30184:234:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30201:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30212:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30194:6:103"},"nodeType":"YulFunctionCall","src":"30194:21:103"},"nodeType":"YulExpressionStatement","src":"30194:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30235:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30246:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30231:3:103"},"nodeType":"YulFunctionCall","src":"30231:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"30251:2:103","type":"","value":"44"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30224:6:103"},"nodeType":"YulFunctionCall","src":"30224:30:103"},"nodeType":"YulExpressionStatement","src":"30224:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30274:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30285:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30270:3:103"},"nodeType":"YulFunctionCall","src":"30270:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30290:34:103","type":"","value":"ERROR:TRS-062:WITHDRAWAL_ALLOWAN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30263:6:103"},"nodeType":"YulFunctionCall","src":"30263:62:103"},"nodeType":"YulExpressionStatement","src":"30263:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30345:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30356:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30341:3:103"},"nodeType":"YulFunctionCall","src":"30341:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"30361:14:103","type":"","value":"CE_TOO_SMALL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30334:6:103"},"nodeType":"YulFunctionCall","src":"30334:42:103"},"nodeType":"YulExpressionStatement","src":"30334:42:103"},{"nodeType":"YulAssignment","src":"30385:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30408:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30393:3:103"},"nodeType":"YulFunctionCall","src":"30393:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"30385:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fe68ccbc21a2bc35481ec1ba83353491017fc775b9abae87cf31e492c23093ec__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30161:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30175:4:103","type":""}],"src":"30010:408:103"},{"body":{"nodeType":"YulBlock","src":"30592:518:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30620:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30602:6:103"},"nodeType":"YulFunctionCall","src":"30602:21:103"},"nodeType":"YulExpressionStatement","src":"30602:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30654:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30639:3:103"},"nodeType":"YulFunctionCall","src":"30639:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30665:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30659:5:103"},"nodeType":"YulFunctionCall","src":"30659:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30632:6:103"},"nodeType":"YulFunctionCall","src":"30632:41:103"},"nodeType":"YulExpressionStatement","src":"30632:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30693:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30704:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30689:3:103"},"nodeType":"YulFunctionCall","src":"30689:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30719:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"30727:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30715:3:103"},"nodeType":"YulFunctionCall","src":"30715:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30709:5:103"},"nodeType":"YulFunctionCall","src":"30709:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30682:6:103"},"nodeType":"YulFunctionCall","src":"30682:50:103"},"nodeType":"YulExpressionStatement","src":"30682:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30752:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30763:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30748:3:103"},"nodeType":"YulFunctionCall","src":"30748:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30778:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"30786:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30774:3:103"},"nodeType":"YulFunctionCall","src":"30774:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30768:5:103"},"nodeType":"YulFunctionCall","src":"30768:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30741:6:103"},"nodeType":"YulFunctionCall","src":"30741:50:103"},"nodeType":"YulExpressionStatement","src":"30741:50:103"},{"nodeType":"YulVariableDeclaration","src":"30800:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"30830:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"30838:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30826:3:103"},"nodeType":"YulFunctionCall","src":"30826:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30820:5:103"},"nodeType":"YulFunctionCall","src":"30820:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"30804:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30862:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30873:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30858:3:103"},"nodeType":"YulFunctionCall","src":"30858:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"30879:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30851:6:103"},"nodeType":"YulFunctionCall","src":"30851:33:103"},"nodeType":"YulExpressionStatement","src":"30851:33:103"},{"nodeType":"YulVariableDeclaration","src":"30893:65:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"30924:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30953:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30938:3:103"},"nodeType":"YulFunctionCall","src":"30938:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"30907:16:103"},"nodeType":"YulFunctionCall","src":"30907:51:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"30897:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"30978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"30989:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"30974:3:103"},"nodeType":"YulFunctionCall","src":"30974:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"31005:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"31013:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31001:3:103"},"nodeType":"YulFunctionCall","src":"31001:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"30995:5:103"},"nodeType":"YulFunctionCall","src":"30995:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"30967:6:103"},"nodeType":"YulFunctionCall","src":"30967:52:103"},"nodeType":"YulExpressionStatement","src":"30967:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31039:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31050:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31035:3:103"},"nodeType":"YulFunctionCall","src":"31035:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"31067:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"31075:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31063:3:103"},"nodeType":"YulFunctionCall","src":"31063:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"31057:5:103"},"nodeType":"YulFunctionCall","src":"31057:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31028:6:103"},"nodeType":"YulFunctionCall","src":"31028:53:103"},"nodeType":"YulExpressionStatement","src":"31028:53:103"},{"nodeType":"YulAssignment","src":"31090:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"31098:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31090:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"30561:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"30572:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"30583:4:103","type":""}],"src":"30423:687:103"},{"body":{"nodeType":"YulBlock","src":"31216:76:103","statements":[{"nodeType":"YulAssignment","src":"31226:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31238:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31249:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31234:3:103"},"nodeType":"YulFunctionCall","src":"31234:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31226:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31268:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"31279:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31261:6:103"},"nodeType":"YulFunctionCall","src":"31261:25:103"},"nodeType":"YulExpressionStatement","src":"31261:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31185:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31196:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31207:4:103","type":""}],"src":"31115:177:103"},{"body":{"nodeType":"YulBlock","src":"31426:145:103","statements":[{"nodeType":"YulAssignment","src":"31436:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31448:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31459:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31444:3:103"},"nodeType":"YulFunctionCall","src":"31444:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31436:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31478:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"31489:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31471:6:103"},"nodeType":"YulFunctionCall","src":"31471:25:103"},"nodeType":"YulExpressionStatement","src":"31471:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31516:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31527:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31512:3:103"},"nodeType":"YulFunctionCall","src":"31512:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"31536:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31552:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"31557:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31548:3:103"},"nodeType":"YulFunctionCall","src":"31548:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"31561:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31544:3:103"},"nodeType":"YulFunctionCall","src":"31544:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31532:3:103"},"nodeType":"YulFunctionCall","src":"31532:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31505:6:103"},"nodeType":"YulFunctionCall","src":"31505:60:103"},"nodeType":"YulExpressionStatement","src":"31505:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31387:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"31398:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31406:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31417:4:103","type":""}],"src":"31297:274:103"},{"body":{"nodeType":"YulBlock","src":"31733:188:103","statements":[{"nodeType":"YulAssignment","src":"31743:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31755:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31766:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31751:3:103"},"nodeType":"YulFunctionCall","src":"31751:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"31743:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31785:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"31796:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31778:6:103"},"nodeType":"YulFunctionCall","src":"31778:25:103"},"nodeType":"YulExpressionStatement","src":"31778:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31823:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31834:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31819:3:103"},"nodeType":"YulFunctionCall","src":"31819:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"31843:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"31859:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"31864:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"31855:3:103"},"nodeType":"YulFunctionCall","src":"31855:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"31868:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"31851:3:103"},"nodeType":"YulFunctionCall","src":"31851:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"31839:3:103"},"nodeType":"YulFunctionCall","src":"31839:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31812:6:103"},"nodeType":"YulFunctionCall","src":"31812:60:103"},"nodeType":"YulExpressionStatement","src":"31812:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"31892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"31903:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"31888:3:103"},"nodeType":"YulFunctionCall","src":"31888:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"31908:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"31881:6:103"},"nodeType":"YulFunctionCall","src":"31881:34:103"},"nodeType":"YulExpressionStatement","src":"31881:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_uint256__to_t_uint256_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"31686:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"31697:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"31705:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"31713:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"31724:4:103","type":""}],"src":"31576:345:103"},{"body":{"nodeType":"YulBlock","src":"32055:119:103","statements":[{"nodeType":"YulAssignment","src":"32065:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32077:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32088:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32073:3:103"},"nodeType":"YulFunctionCall","src":"32073:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32065:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32107:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"32118:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32100:6:103"},"nodeType":"YulFunctionCall","src":"32100:25:103"},"nodeType":"YulExpressionStatement","src":"32100:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32145:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32156:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32141:3:103"},"nodeType":"YulFunctionCall","src":"32141:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"32161:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32134:6:103"},"nodeType":"YulFunctionCall","src":"32134:34:103"},"nodeType":"YulExpressionStatement","src":"32134:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32016:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"32027:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"32035:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32046:4:103","type":""}],"src":"31926:248:103"},{"body":{"nodeType":"YulBlock","src":"32336:188:103","statements":[{"nodeType":"YulAssignment","src":"32346:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32358:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32369:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32354:3:103"},"nodeType":"YulFunctionCall","src":"32354:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32346:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32388:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"32399:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32381:6:103"},"nodeType":"YulFunctionCall","src":"32381:25:103"},"nodeType":"YulExpressionStatement","src":"32381:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32437:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32422:3:103"},"nodeType":"YulFunctionCall","src":"32422:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"32442:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32415:6:103"},"nodeType":"YulFunctionCall","src":"32415:34:103"},"nodeType":"YulExpressionStatement","src":"32415:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32469:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32480:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32465:3:103"},"nodeType":"YulFunctionCall","src":"32465:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"32489:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32505:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"32510:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"32501:3:103"},"nodeType":"YulFunctionCall","src":"32501:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"32514:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"32497:3:103"},"nodeType":"YulFunctionCall","src":"32497:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32485:3:103"},"nodeType":"YulFunctionCall","src":"32485:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32458:6:103"},"nodeType":"YulFunctionCall","src":"32458:60:103"},"nodeType":"YulExpressionStatement","src":"32458:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32289:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"32300:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"32308:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"32316:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32327:4:103","type":""}],"src":"32179:345:103"},{"body":{"nodeType":"YulBlock","src":"32686:162:103","statements":[{"nodeType":"YulAssignment","src":"32696:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32708:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32719:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32704:3:103"},"nodeType":"YulFunctionCall","src":"32704:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"32696:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32738:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"32749:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32731:6:103"},"nodeType":"YulFunctionCall","src":"32731:25:103"},"nodeType":"YulExpressionStatement","src":"32731:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32776:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32787:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32772:3:103"},"nodeType":"YulFunctionCall","src":"32772:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"32792:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32765:6:103"},"nodeType":"YulFunctionCall","src":"32765:34:103"},"nodeType":"YulExpressionStatement","src":"32765:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"32819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"32830:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32815:3:103"},"nodeType":"YulFunctionCall","src":"32815:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"32835:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"32808:6:103"},"nodeType":"YulFunctionCall","src":"32808:34:103"},"nodeType":"YulExpressionStatement","src":"32808:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"32639:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"32650:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"32658:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"32666:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"32677:4:103","type":""}],"src":"32529:319:103"},{"body":{"nodeType":"YulBlock","src":"32898:230:103","statements":[{"nodeType":"YulAssignment","src":"32908:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32924:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"32918:5:103"},"nodeType":"YulFunctionCall","src":"32918:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"32908:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"32936:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"32958:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"32974:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"32980:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32970:3:103"},"nodeType":"YulFunctionCall","src":"32970:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"32989:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"32985:3:103"},"nodeType":"YulFunctionCall","src":"32985:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"32966:3:103"},"nodeType":"YulFunctionCall","src":"32966:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"32954:3:103"},"nodeType":"YulFunctionCall","src":"32954:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"32940:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"33069:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"33071:16:103"},"nodeType":"YulFunctionCall","src":"33071:18:103"},"nodeType":"YulExpressionStatement","src":"33071:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"33012:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"33024:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"33009:2:103"},"nodeType":"YulFunctionCall","src":"33009:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"33048:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"33060:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"33045:2:103"},"nodeType":"YulFunctionCall","src":"33045:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"33006:2:103"},"nodeType":"YulFunctionCall","src":"33006:62:103"},"nodeType":"YulIf","src":"33003:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33107:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"33111:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33100:6:103"},"nodeType":"YulFunctionCall","src":"33100:22:103"},"nodeType":"YulExpressionStatement","src":"33100:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"32878:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"32887:6:103","type":""}],"src":"32853:275:103"},{"body":{"nodeType":"YulBlock","src":"33188:71:103","statements":[{"expression":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"33205:4:103"},{"name":"ptr","nodeType":"YulIdentifier","src":"33211:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33198:6:103"},"nodeType":"YulFunctionCall","src":"33198:17:103"},"nodeType":"YulExpressionStatement","src":"33198:17:103"},{"nodeType":"YulAssignment","src":"33224:29:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"33242:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"33248:4:103","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"33232:9:103"},"nodeType":"YulFunctionCall","src":"33232:21:103"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"33224:4:103"}]}]},"name":"array_dataslot_bytes_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"33171:3:103","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"33179:4:103","type":""}],"src":"33133:126:103"},{"body":{"nodeType":"YulBlock","src":"33312:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"33339:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"33341:16:103"},"nodeType":"YulFunctionCall","src":"33341:18:103"},"nodeType":"YulExpressionStatement","src":"33341:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33328:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"33335:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"33331:3:103"},"nodeType":"YulFunctionCall","src":"33331:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"33325:2:103"},"nodeType":"YulFunctionCall","src":"33325:13:103"},"nodeType":"YulIf","src":"33322:2:103"},{"nodeType":"YulAssignment","src":"33370:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33381:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"33384:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"33377:3:103"},"nodeType":"YulFunctionCall","src":"33377:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"33370:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"33295:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"33298:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"33304:3:103","type":""}],"src":"33264:128:103"},{"body":{"nodeType":"YulBlock","src":"33443:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"33474:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"33495:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33502:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"33507:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"33498:3:103"},"nodeType":"YulFunctionCall","src":"33498:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33488:6:103"},"nodeType":"YulFunctionCall","src":"33488:31:103"},"nodeType":"YulExpressionStatement","src":"33488:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33539:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"33542:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"33532:6:103"},"nodeType":"YulFunctionCall","src":"33532:15:103"},"nodeType":"YulExpressionStatement","src":"33532:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"33567:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"33570:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"33560:6:103"},"nodeType":"YulFunctionCall","src":"33560:15:103"},"nodeType":"YulExpressionStatement","src":"33560:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"33463:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33456:6:103"},"nodeType":"YulFunctionCall","src":"33456:9:103"},"nodeType":"YulIf","src":"33453:2:103"},{"nodeType":"YulAssignment","src":"33594:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33603:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"33606:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"33599:3:103"},"nodeType":"YulFunctionCall","src":"33599:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"33594:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"33428:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"33431:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"33437:1:103","type":""}],"src":"33397:217:103"},{"body":{"nodeType":"YulBlock","src":"33671:116:103","statements":[{"body":{"nodeType":"YulBlock","src":"33730:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"33732:16:103"},"nodeType":"YulFunctionCall","src":"33732:18:103"},"nodeType":"YulExpressionStatement","src":"33732:18:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33702:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33695:6:103"},"nodeType":"YulFunctionCall","src":"33695:9:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"33688:6:103"},"nodeType":"YulFunctionCall","src":"33688:17:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"33710:1:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"33721:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"33717:3:103"},"nodeType":"YulFunctionCall","src":"33717:6:103"},{"name":"x","nodeType":"YulIdentifier","src":"33725:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"33713:3:103"},"nodeType":"YulFunctionCall","src":"33713:14:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"33707:2:103"},"nodeType":"YulFunctionCall","src":"33707:21:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"33684:3:103"},"nodeType":"YulFunctionCall","src":"33684:45:103"},"nodeType":"YulIf","src":"33681:2:103"},{"nodeType":"YulAssignment","src":"33761:20:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33776:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"33779:1:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"33772:3:103"},"nodeType":"YulFunctionCall","src":"33772:9:103"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"33761:7:103"}]}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"33650:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"33653:1:103","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"33659:7:103","type":""}],"src":"33619:168:103"},{"body":{"nodeType":"YulBlock","src":"33841:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"33863:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"33865:16:103"},"nodeType":"YulFunctionCall","src":"33865:18:103"},"nodeType":"YulExpressionStatement","src":"33865:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33857:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"33860:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"33854:2:103"},"nodeType":"YulFunctionCall","src":"33854:8:103"},"nodeType":"YulIf","src":"33851:2:103"},{"nodeType":"YulAssignment","src":"33894:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"33906:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"33909:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"33902:3:103"},"nodeType":"YulFunctionCall","src":"33902:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"33894:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"33823:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"33826:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"33832:4:103","type":""}],"src":"33792:125:103"},{"body":{"nodeType":"YulBlock","src":"33974:94:103","statements":[{"body":{"nodeType":"YulBlock","src":"34042:20:103","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"34051:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"34058:1:103","type":"","value":"0"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"34044:6:103"},"nodeType":"YulFunctionCall","src":"34044:16:103"},"nodeType":"YulExpressionStatement","src":"34044:16:103"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"33995:5:103"},{"name":"end","nodeType":"YulIdentifier","src":"34002:3:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"33992:2:103"},"nodeType":"YulFunctionCall","src":"33992:14:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"34007:26:103","statements":[{"nodeType":"YulAssignment","src":"34009:22:103","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"34022:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"34029:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34018:3:103"},"nodeType":"YulFunctionCall","src":"34018:13:103"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"34009:5:103"}]}]},"pre":{"nodeType":"YulBlock","src":"33988:3:103","statements":[]},"src":"33984:78:103"}]},"name":"clear_storage_range_bytes1","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"33958:5:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"33965:3:103","type":""}],"src":"33922:146:103"},{"body":{"nodeType":"YulBlock","src":"34158:1490:103","statements":[{"body":{"nodeType":"YulBlock","src":"34199:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"34201:16:103"},"nodeType":"YulFunctionCall","src":"34201:18:103"},"nodeType":"YulExpressionStatement","src":"34201:18:103"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"34174:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"34179:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"34171:2:103"},"nodeType":"YulFunctionCall","src":"34171:27:103"},"nodeType":"YulIf","src":"34168:2:103"},{"nodeType":"YulVariableDeclaration","src":"34230:52:103","value":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"34276:4:103"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"34270:5:103"},"nodeType":"YulFunctionCall","src":"34270:11:103"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"34244:25:103"},"nodeType":"YulFunctionCall","src":"34244:38:103"},"variables":[{"name":"oldLen","nodeType":"YulTypedName","src":"34234:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34291:18:103","value":{"kind":"number","nodeType":"YulLiteral","src":"34308:1:103","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"34295:9:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34318:28:103","value":{"name":"srcOffset","nodeType":"YulIdentifier","src":"34337:9:103"},"variables":[{"name":"dstDataArea","nodeType":"YulTypedName","src":"34322:11:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34355:21:103","value":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"34368:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"34373:2:103","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"34365:2:103"},"nodeType":"YulFunctionCall","src":"34365:11:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"34359:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34385:24:103","value":{"arguments":[{"name":"oldLen","nodeType":"YulIdentifier","src":"34398:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34406:2:103","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"34395:2:103"},"nodeType":"YulFunctionCall","src":"34395:14:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"34389:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"34440:73:103","statements":[{"nodeType":"YulAssignment","src":"34454:49:103","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"34498:4:103"}],"functionName":{"name":"array_dataslot_bytes_storage","nodeType":"YulIdentifier","src":"34469:28:103"},"nodeType":"YulFunctionCall","src":"34469:34:103"},"variableNames":[{"name":"dstDataArea","nodeType":"YulIdentifier","src":"34454:11:103"}]}]},"condition":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"34424:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"34428:2:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"34421:2:103"},"nodeType":"YulFunctionCall","src":"34421:10:103"},"nodeType":"YulIf","src":"34418:2:103"},{"body":{"nodeType":"YulBlock","src":"34536:236:103","statements":[{"nodeType":"YulVariableDeclaration","src":"34550:58:103","value":{"arguments":[{"name":"dstDataArea","nodeType":"YulIdentifier","src":"34573:11:103"},{"arguments":[{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"34594:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"34599:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34590:3:103"},"nodeType":"YulFunctionCall","src":"34590:12:103"},{"kind":"number","nodeType":"YulLiteral","src":"34604:2:103","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"34586:3:103"},"nodeType":"YulFunctionCall","src":"34586:21:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34569:3:103"},"nodeType":"YulFunctionCall","src":"34569:39:103"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"34554:11:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"34636:30:103","statements":[{"nodeType":"YulAssignment","src":"34638:26:103","value":{"name":"dstDataArea","nodeType":"YulIdentifier","src":"34653:11:103"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"34638:11:103"}]}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"34627:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"34632:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"34624:2:103"},"nodeType":"YulFunctionCall","src":"34624:11:103"},"nodeType":"YulIf","src":"34621:2:103"},{"expression":{"arguments":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"34706:11:103"},{"arguments":[{"name":"dstDataArea","nodeType":"YulIdentifier","src":"34723:11:103"},{"arguments":[{"arguments":[{"name":"oldLen","nodeType":"YulIdentifier","src":"34744:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"34752:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34740:3:103"},"nodeType":"YulFunctionCall","src":"34740:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"34757:2:103","type":"","value":"32"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"34736:3:103"},"nodeType":"YulFunctionCall","src":"34736:24:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34719:3:103"},"nodeType":"YulFunctionCall","src":"34719:42:103"}],"functionName":{"name":"clear_storage_range_bytes1","nodeType":"YulIdentifier","src":"34679:26:103"},"nodeType":"YulFunctionCall","src":"34679:83:103"},"nodeType":"YulExpressionStatement","src":"34679:83:103"}]},"condition":{"name":"_2","nodeType":"YulIdentifier","src":"34525:2:103"},"nodeType":"YulIf","src":"34522:2:103"},{"cases":[{"body":{"nodeType":"YulBlock","src":"34806:584:103","statements":[{"nodeType":"YulVariableDeclaration","src":"34820:32:103","value":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"34839:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"34848:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"34844:3:103"},"nodeType":"YulFunctionCall","src":"34844:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"34835:3:103"},"nodeType":"YulFunctionCall","src":"34835:17:103"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"34824:7:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34865:25:103","value":{"name":"dstDataArea","nodeType":"YulIdentifier","src":"34879:11:103"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"34869:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"34903:18:103","value":{"name":"srcOffset","nodeType":"YulIdentifier","src":"34912:9:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"34907:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"34991:172:103","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"35016:6:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"35041:3:103"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"35046:9:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35037:3:103"},"nodeType":"YulFunctionCall","src":"35037:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"35024:12:103"},"nodeType":"YulFunctionCall","src":"35024:33:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"35009:6:103"},"nodeType":"YulFunctionCall","src":"35009:49:103"},"nodeType":"YulExpressionStatement","src":"35009:49:103"},{"nodeType":"YulAssignment","src":"35075:24:103","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"35089:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"35097:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35085:3:103"},"nodeType":"YulFunctionCall","src":"35085:14:103"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"35075:6:103"}]},{"nodeType":"YulAssignment","src":"35116:33:103","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"35133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"35144:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35129:3:103"},"nodeType":"YulFunctionCall","src":"35129:20:103"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"35116:9:103"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"34945:1:103"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"34948:7:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"34942:2:103"},"nodeType":"YulFunctionCall","src":"34942:14:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"34957:21:103","statements":[{"nodeType":"YulAssignment","src":"34959:17:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"34968:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"34971:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"34964:3:103"},"nodeType":"YulFunctionCall","src":"34964:12:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"34959:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"34938:3:103","statements":[]},"src":"34934:229:103"},{"body":{"nodeType":"YulBlock","src":"35208:126:103","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"35233:6:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"35262:3:103"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"35267:9:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35258:3:103"},"nodeType":"YulFunctionCall","src":"35258:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"35245:12:103"},"nodeType":"YulFunctionCall","src":"35245:33:103"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"35292:1:103","type":"","value":"8"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"35299:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"35304:2:103","type":"","value":"31"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"35295:3:103"},"nodeType":"YulFunctionCall","src":"35295:12:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"35288:3:103"},"nodeType":"YulFunctionCall","src":"35288:20:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"35314:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"35310:3:103"},"nodeType":"YulFunctionCall","src":"35310:6:103"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"35284:3:103"},"nodeType":"YulFunctionCall","src":"35284:33:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"35280:3:103"},"nodeType":"YulFunctionCall","src":"35280:38:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"35241:3:103"},"nodeType":"YulFunctionCall","src":"35241:78:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"35226:6:103"},"nodeType":"YulFunctionCall","src":"35226:94:103"},"nodeType":"YulExpressionStatement","src":"35226:94:103"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"35182:7:103"},{"name":"len","nodeType":"YulIdentifier","src":"35191:3:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"35179:2:103"},"nodeType":"YulFunctionCall","src":"35179:16:103"},"nodeType":"YulIf","src":"35176:2:103"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"35354:4:103"},{"arguments":[{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"35368:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"35373:1:103","type":"","value":"2"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"35364:3:103"},"nodeType":"YulFunctionCall","src":"35364:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"35377:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35360:3:103"},"nodeType":"YulFunctionCall","src":"35360:19:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"35347:6:103"},"nodeType":"YulFunctionCall","src":"35347:33:103"},"nodeType":"YulExpressionStatement","src":"35347:33:103"}]},"nodeType":"YulCase","src":"34799:591:103","value":{"kind":"number","nodeType":"YulLiteral","src":"34804:1:103","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"35407:235:103","statements":[{"nodeType":"YulVariableDeclaration","src":"35421:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35434:1:103","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"35425:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"35467:74:103","statements":[{"nodeType":"YulAssignment","src":"35485:42:103","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"35511:3:103"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"35516:9:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35507:3:103"},"nodeType":"YulFunctionCall","src":"35507:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"35494:12:103"},"nodeType":"YulFunctionCall","src":"35494:33:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"35485:5:103"}]}]},"condition":{"name":"len","nodeType":"YulIdentifier","src":"35451:3:103"},"nodeType":"YulIf","src":"35448:2:103"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"35561:4:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"35620:5:103"},{"name":"len","nodeType":"YulIdentifier","src":"35627:3:103"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"35567:52:103"},"nodeType":"YulFunctionCall","src":"35567:64:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"35554:6:103"},"nodeType":"YulFunctionCall","src":"35554:78:103"},"nodeType":"YulExpressionStatement","src":"35554:78:103"}]},"nodeType":"YulCase","src":"35399:243:103","value":"default"}],"expression":{"name":"_1","nodeType":"YulIdentifier","src":"34788:2:103"},"nodeType":"YulSwitch","src":"34781:861:103"}]},"name":"copy_byte_array_to_storage_from_bytes_calldata_to_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"34138:4:103","type":""},{"name":"src","nodeType":"YulTypedName","src":"34144:3:103","type":""},{"name":"len","nodeType":"YulTypedName","src":"34149:3:103","type":""}],"src":"34073:1575:103"},{"body":{"nodeType":"YulBlock","src":"35706:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"35716:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"35725:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"35720:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"35785:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"35810:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"35815:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35806:3:103"},"nodeType":"YulFunctionCall","src":"35806:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"35829:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"35834:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35825:3:103"},"nodeType":"YulFunctionCall","src":"35825:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"35819:5:103"},"nodeType":"YulFunctionCall","src":"35819:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35799:6:103"},"nodeType":"YulFunctionCall","src":"35799:39:103"},"nodeType":"YulExpressionStatement","src":"35799:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"35746:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"35749:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"35743:2:103"},"nodeType":"YulFunctionCall","src":"35743:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"35757:19:103","statements":[{"nodeType":"YulAssignment","src":"35759:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"35768:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"35771:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35764:3:103"},"nodeType":"YulFunctionCall","src":"35764:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"35759:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"35739:3:103","statements":[]},"src":"35735:113:103"},{"body":{"nodeType":"YulBlock","src":"35874:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"35887:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"35892:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"35883:3:103"},"nodeType":"YulFunctionCall","src":"35883:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"35901:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"35876:6:103"},"nodeType":"YulFunctionCall","src":"35876:27:103"},"nodeType":"YulExpressionStatement","src":"35876:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"35863:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"35866:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"35860:2:103"},"nodeType":"YulFunctionCall","src":"35860:13:103"},"nodeType":"YulIf","src":"35857:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"35684:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"35689:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"35694:6:103","type":""}],"src":"35653:258:103"},{"body":{"nodeType":"YulBlock","src":"35971:325:103","statements":[{"nodeType":"YulAssignment","src":"35981:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"35995:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"36001:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"35991:3:103"},"nodeType":"YulFunctionCall","src":"35991:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"35981:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"36012:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"36042:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"36048:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36038:3:103"},"nodeType":"YulFunctionCall","src":"36038:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"36016:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"36089:31:103","statements":[{"nodeType":"YulAssignment","src":"36091:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"36105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"36113:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36101:3:103"},"nodeType":"YulFunctionCall","src":"36101:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"36091:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"36069:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"36062:6:103"},"nodeType":"YulFunctionCall","src":"36062:26:103"},"nodeType":"YulIf","src":"36059:2:103"},{"body":{"nodeType":"YulBlock","src":"36179:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36200:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36207:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"36212:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"36203:3:103"},"nodeType":"YulFunctionCall","src":"36203:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36193:6:103"},"nodeType":"YulFunctionCall","src":"36193:31:103"},"nodeType":"YulExpressionStatement","src":"36193:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36244:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"36247:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36237:6:103"},"nodeType":"YulFunctionCall","src":"36237:15:103"},"nodeType":"YulExpressionStatement","src":"36237:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36272:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"36275:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"36265:6:103"},"nodeType":"YulFunctionCall","src":"36265:15:103"},"nodeType":"YulExpressionStatement","src":"36265:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"36135:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"36158:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"36166:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"36155:2:103"},"nodeType":"YulFunctionCall","src":"36155:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"36132:2:103"},"nodeType":"YulFunctionCall","src":"36132:38:103"},"nodeType":"YulIf","src":"36129:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"35951:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"35960:6:103","type":""}],"src":"35916:380:103"},{"body":{"nodeType":"YulBlock","src":"36386:81:103","statements":[{"nodeType":"YulAssignment","src":"36396:65:103","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"36411:4:103"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36429:1:103","type":"","value":"8"},{"name":"len","nodeType":"YulIdentifier","src":"36432:3:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"36425:3:103"},"nodeType":"YulFunctionCall","src":"36425:11:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36442:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"36438:3:103"},"nodeType":"YulFunctionCall","src":"36438:6:103"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"36421:3:103"},"nodeType":"YulFunctionCall","src":"36421:24:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"36417:3:103"},"nodeType":"YulFunctionCall","src":"36417:29:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"36407:3:103"},"nodeType":"YulFunctionCall","src":"36407:40:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36453:1:103","type":"","value":"2"},{"name":"len","nodeType":"YulIdentifier","src":"36456:3:103"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"36449:3:103"},"nodeType":"YulFunctionCall","src":"36449:11:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"36404:2:103"},"nodeType":"YulFunctionCall","src":"36404:57:103"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"36396:4:103"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"36363:4:103","type":""},{"name":"len","nodeType":"YulTypedName","src":"36369:3:103","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"36377:4:103","type":""}],"src":"36301:166:103"},{"body":{"nodeType":"YulBlock","src":"36504:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36521:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36528:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"36533:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"36524:3:103"},"nodeType":"YulFunctionCall","src":"36524:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36514:6:103"},"nodeType":"YulFunctionCall","src":"36514:31:103"},"nodeType":"YulExpressionStatement","src":"36514:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36561:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"36564:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36554:6:103"},"nodeType":"YulFunctionCall","src":"36554:15:103"},"nodeType":"YulExpressionStatement","src":"36554:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36585:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"36588:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"36578:6:103"},"nodeType":"YulFunctionCall","src":"36578:15:103"},"nodeType":"YulExpressionStatement","src":"36578:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"36472:127:103"},{"body":{"nodeType":"YulBlock","src":"36636:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36653:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36660:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"36665:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"36656:3:103"},"nodeType":"YulFunctionCall","src":"36656:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36646:6:103"},"nodeType":"YulFunctionCall","src":"36646:31:103"},"nodeType":"YulExpressionStatement","src":"36646:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36693:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"36696:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"36686:6:103"},"nodeType":"YulFunctionCall","src":"36686:15:103"},"nodeType":"YulExpressionStatement","src":"36686:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"36717:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"36720:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"36710:6:103"},"nodeType":"YulFunctionCall","src":"36710:15:103"},"nodeType":"YulExpressionStatement","src":"36710:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"36604:127:103"},{"body":{"nodeType":"YulBlock","src":"36881:802:103","statements":[{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"36898:4:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"36917:5:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"36904:12:103"},"nodeType":"YulFunctionCall","src":"36904:19:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"36891:6:103"},"nodeType":"YulFunctionCall","src":"36891:33:103"},"nodeType":"YulExpressionStatement","src":"36891:33:103"},{"expression":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"36944:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"36950:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36940:3:103"},"nodeType":"YulFunctionCall","src":"36940:12:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"36971:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"36978:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36967:3:103"},"nodeType":"YulFunctionCall","src":"36967:14:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"36954:12:103"},"nodeType":"YulFunctionCall","src":"36954:28:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"36933:6:103"},"nodeType":"YulFunctionCall","src":"36933:50:103"},"nodeType":"YulExpressionStatement","src":"36933:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"37003:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"37009:1:103","type":"","value":"2"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"36999:3:103"},"nodeType":"YulFunctionCall","src":"36999:12:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37030:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"37037:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37026:3:103"},"nodeType":"YulFunctionCall","src":"37026:14:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"37013:12:103"},"nodeType":"YulFunctionCall","src":"37013:28:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"36992:6:103"},"nodeType":"YulFunctionCall","src":"36992:50:103"},"nodeType":"YulExpressionStatement","src":"36992:50:103"},{"nodeType":"YulVariableDeclaration","src":"37051:54:103","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37094:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"37101:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37090:3:103"},"nodeType":"YulFunctionCall","src":"37090:14:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"37077:12:103"},"nodeType":"YulFunctionCall","src":"37077:28:103"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"37055:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"37191:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37200:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37203:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37193:6:103"},"nodeType":"YulFunctionCall","src":"37193:12:103"},"nodeType":"YulExpressionStatement","src":"37193:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"37128:18:103"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"37156:12:103"},"nodeType":"YulFunctionCall","src":"37156:14:103"},{"name":"value","nodeType":"YulIdentifier","src":"37172:5:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37152:3:103"},"nodeType":"YulFunctionCall","src":"37152:26:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37184:2:103","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"37180:3:103"},"nodeType":"YulFunctionCall","src":"37180:7:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37148:3:103"},"nodeType":"YulFunctionCall","src":"37148:40:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"37124:3:103"},"nodeType":"YulFunctionCall","src":"37124:65:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37117:6:103"},"nodeType":"YulFunctionCall","src":"37117:73:103"},"nodeType":"YulIf","src":"37114:2:103"},{"nodeType":"YulVariableDeclaration","src":"37216:42:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37232:5:103"},{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"37239:18:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37228:3:103"},"nodeType":"YulFunctionCall","src":"37228:30:103"},"variables":[{"name":"addr","nodeType":"YulTypedName","src":"37220:4:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"37267:32:103","value":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"37294:4:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"37281:12:103"},"nodeType":"YulFunctionCall","src":"37281:18:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"37271:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"37342:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37351:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37354:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37344:6:103"},"nodeType":"YulFunctionCall","src":"37344:12:103"},"nodeType":"YulExpressionStatement","src":"37344:12:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"37314:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"37322:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"37311:2:103"},"nodeType":"YulFunctionCall","src":"37311:30:103"},"nodeType":"YulIf","src":"37308:2:103"},{"nodeType":"YulVariableDeclaration","src":"37367:27:103","value":{"arguments":[{"name":"addr","nodeType":"YulIdentifier","src":"37385:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"37391:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37381:3:103"},"nodeType":"YulFunctionCall","src":"37381:13:103"},"variables":[{"name":"addr_1","nodeType":"YulTypedName","src":"37371:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"37447:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37456:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37459:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37449:6:103"},"nodeType":"YulFunctionCall","src":"37449:12:103"},"nodeType":"YulExpressionStatement","src":"37449:12:103"}]},"condition":{"arguments":[{"name":"addr_1","nodeType":"YulIdentifier","src":"37410:6:103"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"37422:12:103"},"nodeType":"YulFunctionCall","src":"37422:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"37438:6:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37418:3:103"},"nodeType":"YulFunctionCall","src":"37418:27:103"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"37406:3:103"},"nodeType":"YulFunctionCall","src":"37406:40:103"},"nodeType":"YulIf","src":"37403:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"37532:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"37538:1:103","type":"","value":"3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37528:3:103"},"nodeType":"YulFunctionCall","src":"37528:12:103"},{"name":"addr_1","nodeType":"YulIdentifier","src":"37542:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"37550:6:103"}],"functionName":{"name":"copy_byte_array_to_storage_from_bytes_calldata_to_bytes","nodeType":"YulIdentifier","src":"37472:55:103"},"nodeType":"YulFunctionCall","src":"37472:85:103"},"nodeType":"YulExpressionStatement","src":"37472:85:103"},{"expression":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"37577:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"37583:1:103","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37573:3:103"},"nodeType":"YulFunctionCall","src":"37573:12:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37604:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"37611:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37600:3:103"},"nodeType":"YulFunctionCall","src":"37600:15:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"37587:12:103"},"nodeType":"YulFunctionCall","src":"37587:29:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"37566:6:103"},"nodeType":"YulFunctionCall","src":"37566:51:103"},"nodeType":"YulExpressionStatement","src":"37566:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"37637:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"37643:1:103","type":"","value":"5"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37633:3:103"},"nodeType":"YulFunctionCall","src":"37633:12:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37664:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"37671:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"37660:3:103"},"nodeType":"YulFunctionCall","src":"37660:15:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"37647:12:103"},"nodeType":"YulFunctionCall","src":"37647:29:103"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"37626:6:103"},"nodeType":"YulFunctionCall","src":"37626:51:103"},"nodeType":"YulExpressionStatement","src":"37626:51:103"}]},"name":"update_storage_value_offset_0t_struct$_FeeSpecification_$5838_calldata_ptr_to_t_struct$_FeeSpecification_$5838_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"36864:4:103","type":""},{"name":"value","nodeType":"YulTypedName","src":"36870:5:103","type":""}],"src":"36736:947:103"},{"body":{"nodeType":"YulBlock","src":"37733:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"37797:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37806:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"37809:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"37799:6:103"},"nodeType":"YulFunctionCall","src":"37799:12:103"},"nodeType":"YulExpressionStatement","src":"37799:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37756:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"37767:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"37782:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"37787:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"37778:3:103"},"nodeType":"YulFunctionCall","src":"37778:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"37791:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"37774:3:103"},"nodeType":"YulFunctionCall","src":"37774:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"37763:3:103"},"nodeType":"YulFunctionCall","src":"37763:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"37753:2:103"},"nodeType":"YulFunctionCall","src":"37753:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"37746:6:103"},"nodeType":"YulFunctionCall","src":"37746:50:103"},"nodeType":"YulIf","src":"37743:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"37722:5:103","type":""}],"src":"37688:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_BundleState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_BundleState_fromMemory(add(_2, 96)))\n let offset_1 := mload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), mload(add(_2, 160)))\n mstore(add(value, 192), mload(add(_2, 192)))\n mstore(add(value, 224), mload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), mload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), mload(add(_2, _5)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n let _1 := add(headStart, offset)\n if slt(sub(dataEnd, _1), 192) { revert(value0, value0) }\n value0 := _1\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n mstore(value, mload(_2))\n let value_1 := mload(add(_2, 32))\n if iszero(lt(value_1, 2)) { revert(value0, value0) }\n mstore(add(value, 32), value_1)\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value4, value4) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value4, value4) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value4, value4) }\n value3 := add(_2, 32)\n value4 := length\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), \"InstanceOperatorService\")\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_contract$_IERC20_$8831__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_002d2121ea321e9dc7af161d487859644848c89f417a8b4f6cd3c64e88216019__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERROR:TRS-022:NOT_PRODUCT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_023e61203cb0be5307b17a41d4b69495f70210073b02aa48d79a82beee2c037a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:TRS-015:WALLET_ADDRESS_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0426c9e38488694ef5fcd21b7d01546e3f09d04e0204867e9068633df2d21047__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:TRS-002:RISKPOOL_WALLET_UN\")\n mstore(add(headStart, 96), \"DEFINED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Pausable: not paused\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0df3c78e93cd9b7c9045f326b01178dc9332f2f6498582ce9cff7c8821aa1d20__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:TRS-070:NOT_PRODUCT_OR_RIS\")\n mstore(add(headStart, 96), \"KPOOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1c57f116b2d23b472e497701710f194d47bb249cf3bdd21579f4ccec35ce6514__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:TRS-005:NOT_RISKPOOL_SERVI\")\n mstore(add(headStart, 96), \"CE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_211791b6640da73c43884462143c95a88a879b6ed92d3aff6ce166c1d61a88f2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 50)\n mstore(add(headStart, 64), \"ERROR:TRS-053:CAPITAL_TRANSFER_A\")\n mstore(add(headStart, 96), \"LLOWANCE_TOO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2929b40534bc3751b2a6ec3225ca6171f4a79ecde38ee6c1fce17106a98b0991__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"ERROR:TRS-016:NOT_RISKPOOL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2b46fae8951b5666cf5036a2bfff9803d02b9a299525a4505cc74a99e0633220__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:TRS-001:INSTANCE_WALLET_UN\")\n mstore(add(headStart, 96), \"DEFINED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3716cf2f5864d6ed7dbe013f132263c98f75980b1bc9e53587b62e45d53b8001__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:TRS-004:TREASURY_SUSPENDED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3acbd6322e617e55df208025743cb9bdef35beedf84134e8e69828378743af76__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:TRS-017:WALLET_ADDRESS_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4ff8d3b4e484daf7626b33b4e51d57bdf16ceea6f454579b2b8cc97aa218b830__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:TRS-061:RISKPOOL_WALLET_BA\")\n mstore(add(headStart, 96), \"LANCE_TOO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_51470dc3834195a38b6a47115f9352e7c4e977a95b9739b912cca2a00008681e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"ERROR:TRS-023:NOT_RISKPOOL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_5cf18c155db3e0e44074585a9cca469fe44a6111772a61c46ab85216052cb52e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:TRS-032:PREMIUM_TRANSFER_F\")\n mstore(add(headStart, 96), \"AILED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_61e1f4ff42e3123af58f70ed814e76c339065814b9eabd9415d5cb832ae5bb26__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:TRS-030:AMOUNT_TOO_BIG\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Pausable: paused\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6a7920c070ee7c8d85c964148119b679dffd62a937b57794605d2b978251dbac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"ERROR:TRS-090:FEE_CALCULATION_DA\")\n mstore(add(headStart, 96), \"TA_NOT_SUPPORTED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6bade88963632687c264d794f9df0a7fbb1e4e45c72ac6b0eea83aa8d3c453de__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:TRS-020:ID_NOT_PRODUCT_OR_\")\n mstore(add(headStart, 96), \"RISKPOOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_77500f959cf782554c0ce0c1dde202048b680670f0cce75f17feb23a8e0308ef__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:TRS-054:FEE_TRANSFER_FAILE\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7da3c4275d49aeca81de3efd989371cdf344763b44123371517a3e6b02efcce4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERROR:TRS-011:NOT_PRODUCT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7de95b395fb2e1b69ae5bfa415c7293d3911661a8a5a83a9008160da9346bd51__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:TRS-052:BALANCE_TOO_SMALL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8e9183e17ad533b95e8b637459b508b75172f9edd7e8c99c80d386496a06de75__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:TRS-043:PAYOUT_ALLOWANCE_T\")\n mstore(add(headStart, 96), \"OO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_91cd09a8272bca29602366afa78499ab462a45026fab37c8b88437074a1814d2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:TRS-012:PRODUCT_TOKEN_ALRE\")\n mstore(add(headStart, 96), \"ADY_SET\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9defa563bbba994121b588e9e6ffee73848f6557b51cbbd6b857b473a53fa73e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"ERROR:TRS-013:PRODUCT_TOKEN_ADDR\")\n mstore(add(headStart, 96), \"ESS_NOT_MATCHING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a12cb855de85ca500fa62d405caf8e8c48f5df6ba8af9f453603b23bd9e4d04d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:TRS-092:PRODUCT_WITHOUT_RI\")\n mstore(add(headStart, 96), \"SKPOOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a583f75e567de5febc61daea2db74bc5d44cccb6bb5cd7ea41b386478b7592a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:TRS-021:FRACIONAL_FEE_TOO_\")\n mstore(add(headStart, 96), \"BIG\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_abefc76b4190bc32094fc332397abd635b177c21ff1892fa5ed5fd71e1968656__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 57)\n mstore(add(headStart, 64), \"ERROR:TRS-060:CAPACITY_OR_BALANC\")\n mstore(add(headStart, 96), \"E_SMALLER_THAN_WITHDRAWAL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ac3eb591ac3909b9f0bbae9d36ee03b1d7c2c943a70b5dea1ee6992346dcbcd4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:CRC-002:NOT_ON_STORAGE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b8f0baf95c395dce72ff03341babefe990689bb1ce08b121a2a99bc20faec980__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:TRS-044:PAYOUT_TRANSFER_FA\")\n mstore(add(headStart, 96), \"ILED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_bbbd206bf526f712f36d054d860aea94d102517fedd4615662eb1c115a60beea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 47)\n mstore(add(headStart, 64), \"ERROR:TRS-042:RISKPOOL_WALLET_BA\")\n mstore(add(headStart, 96), \"LANCE_TOO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_bc89108457ff0693a34e0e46b7b733b4220c89a4cb97d3006bf3a51034cca2c9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"ERROR:TRS-003:RISKPOOL_WALLET_UN\")\n mstore(add(headStart, 96), \"DEFINED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c3c791ba0a21dcb3428b822dcce6828d8b36ff48be0d7f71d7205920e54c15b3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:TRS-063:WITHDRAWAL_TRANSFE\")\n mstore(add(headStart, 96), \"R_FAILED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c64a6a11b68791be2b7fc40e3fe3e71aed151a6ed457ee8c919ac899d8679ba6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:TRS-031:FEE_TRANSFER_FAILE\")\n mstore(add(headStart, 96), \"D\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_cbf92c04d1a98b7ef606e69dd4b1bdfb97cdaa3f5e71e07471d88f1ddf906147__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 48)\n mstore(add(headStart, 64), \"ERROR:TRS-014:RISKPOOL_TOKEN_ADD\")\n mstore(add(headStart, 96), \"RESS_NOT_MACHING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ceb0bf7951c332a40d75b8b4b45101b45a65b113825ab60387d5b818680891fa__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:TRS-010:TOKEN_ADDRESS_ZERO\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CRC-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_daba6d4f8168e6c5c18c70dafe4890a19902bb1f9bd9ebb62ac7a88c2fd63dd0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:CRC-003:NOT_PRODUCT_SERVIC\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e106755395283005e5aee6caae70ff5d864aa76c26b2d96a6a077ed12733afd7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERROR:TRS-091:FEE_TOO_BIG\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_ee072957df3bcc0b6a380c5eb268686cec614b16dbbda8cabbd506c7cad3be44__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:TRS-055:CAPITAL_TRANSFER_F\")\n mstore(add(headStart, 96), \"AILED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f3bfd224a81d9a321038f24de2588f8f485d74dd9e38c360b2708398c4728895__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:TRS-024:FEE_SPEC_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f5e24e1787cfb8007a3eb3c3796c431645b0dfa466828874ea644c38e8537028__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:TRS-050:FEE_SPEC_UNDEFINED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_fe68ccbc21a2bc35481ec1ba83353491017fc775b9abae87cf31e492c23093ec__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 44)\n mstore(add(headStart, 64), \"ERROR:TRS-062:WITHDRAWAL_ALLOWAN\")\n mstore(add(headStart, 96), \"CE_TOO_SMALL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_address_t_uint256__to_t_uint256_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_dataslot_bytes_storage(ptr) -> data\n {\n mstore(data, ptr)\n data := keccak256(data, 0x20)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := div(x, y)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function clear_storage_range_bytes1(start, end)\n {\n for { } lt(start, end) { start := add(start, 1) }\n { sstore(start, 0) }\n }\n function copy_byte_array_to_storage_from_bytes_calldata_to_bytes(slot, src, len)\n {\n if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n let oldLen := extract_byte_array_length(sload(slot))\n let srcOffset := 0\n let dstDataArea := srcOffset\n let _1 := gt(len, 31)\n let _2 := gt(oldLen, 31)\n if or(_2, _1)\n {\n dstDataArea := array_dataslot_bytes_storage(slot)\n }\n if _2\n {\n let deleteStart := add(dstDataArea, div(add(len, 31), 32))\n if lt(len, 32) { deleteStart := dstDataArea }\n clear_storage_range_bytes1(deleteStart, add(dstDataArea, div(add(oldLen, 31), 32)))\n }\n switch _1\n case 1 {\n let loopEnd := and(len, not(31))\n let dstPtr := dstDataArea\n let i := srcOffset\n for { } lt(i, loopEnd) { i := add(i, 0x20) }\n {\n sstore(dstPtr, calldataload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 0x20)\n }\n if lt(loopEnd, len)\n {\n sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(mul(8, and(len, 31)), not(0)))))\n }\n sstore(slot, add(mul(len, 2), 1))\n }\n default {\n let value := 0\n if len\n {\n value := calldataload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n }\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(mul(8, len), not(0)))), mul(2, len))\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function update_storage_value_offset_0t_struct$_FeeSpecification_$5838_calldata_ptr_to_t_struct$_FeeSpecification_$5838_storage(slot, value)\n {\n sstore(slot, calldataload(value))\n sstore(add(slot, 1), calldataload(add(value, 32)))\n sstore(add(slot, 2), calldataload(add(value, 64)))\n let rel_offset_of_tail := calldataload(add(value, 96))\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), value), not(30)))) { revert(0, 0) }\n let addr := add(value, rel_offset_of_tail)\n let length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n let addr_1 := add(addr, 32)\n if sgt(addr_1, sub(calldatasize(), length)) { revert(0, 0) }\n copy_byte_array_to_storage_from_bytes_calldata_to_bytes(add(slot, 3), addr_1, length)\n sstore(add(slot, 4), calldataload(add(value, 128)))\n sstore(add(slot, 5), calldataload(add(value, 160)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061014d5760003560e01c80638ca946aa116100c3578063cab2504d1161007c578063cab2504d1461030d578063cc9cf8cd14610320578063d935807514610333578063e6400bbe14610346578063f964690d1461034e578063fe64372b146103565761014d565b80638ca946aa1461029c5780638ccf5ca2146102af578063a434f0ad146102c7578063a44330c4146102da578063b79f5eab146102eb578063c4d66de8146102fa5761014d565b806334e731221161011557806334e73122146101f7578063490816371461020a5780635c975abb146102335780635ecc078e1461025657806362f0ab551461026957806386039aed146102895761014d565b806301132a7f146101525780630210826814610167578063038696bb1461019c578063046f7da2146101c757806326debdaa146101cf575b600080fd5b610165610160366004613e2c565b610369565b005b61017a610175366004613d37565b6105a3565b6040805193151584526020840192909252908201526060015b60405180910390f35b6101af6101aa366004613d1f565b610aac565b6040516001600160a01b039091168152602001610193565b610165610c24565b6101e26101dd36600461405a565b610cfd565b60408051928352602083019190915201610193565b6101e261020536600461405a565b6113b4565b6101af610218366004613d1f565b6000908152600360205260409020546001600160a01b031690565b610246600154600160a01b900460ff1690565b6040519015158152602001610193565b61017a610264366004613d1f565b611438565b61027c61027736600461406c565b6115b5565b60405161019391906143cb565b61016561029736600461402b565b611825565b6101656102aa366004613e2c565b611b08565b670de0b6b3a76400005b604051908152602001610193565b61027c6102d5366004613d1f565b611d31565b6002546001600160a01b03166101af565b6102b9670de0b6b3a764000081565b610165610308366004613cc0565b611e53565b61016561031b366004613cc0565b611fcd565b61016561032e36600461402b565b612157565b6101e261034136600461405a565b6126ce565b610165612d04565b6102b9612ddd565b6101e2610364366004613d37565b612df3565b61037c600154600160a01b900460ff1690565b156103a25760405162461bcd60e51b815260040161039990614294565b60405180910390fd5b6000546201000090046001600160a01b0316632ca65a796103c03390565b6040518263ffffffff1660e01b81526004016103dc9190614160565b60206040518083038186803b1580156103f457600080fd5b505afa158015610408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042c9190613cff565b6104485760405162461bcd60e51b815260040161039990614347565b600754604051630e48080360e21b8152823560048201526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561048c57600080fd5b505afa1580156104a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c49190613cff565b6105105760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3032323a4e4f545f50524f44554354000000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290610534828261466e565b505080156105545781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527f389ab9b2665a8ef1adf5a151c45e2546c4b1ffe8cfa537dd96a5eb8046b06efe906060015b60405180910390a15050565b60008060006105bb600154600160a01b900460ff1690565b156105d85760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166106005760405162461bcd60e51b81526004016103999061424d565b8460008061060d8361333e565b90925090506001600160a01b0381166106385760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b61064d816134c9565b6001600160a01b0316306001600160a01b03161461067d5760405162461bcd60e51b8152600401610399906142c9565b6106976d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146106c75760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018b90526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561070d57600080fd5b505afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190613f8e565b9050806020015189826040015161075c9190614456565b11156107aa5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5452532d3033303a414d4f554e545f544f4f5f424947000000006044820152606401610399565b60085460405163296586d360e21b8152600481018c90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156107ef57600080fd5b505afa158015610803573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082b9190810190613e64565b905061083b81602001518b6113b4565b6020830151919950975060009061085190610aac565b8251604051636eb1769f60e11b81526001600160a01b0391821660048201523060248201529192508c919083169063dd62ed3e9060440160206040518083038186803b1580156108a057600080fd5b505afa1580156108b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190614013565b10156108ea5760009950505050610aa1565b81516002546109049183916001600160a01b03168c6135b1565b8251600254604051929c507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e9261094792916001600160a01b0316908d9061413c565b60405180910390a1896109a65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3033313a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b6000806109b28e61333e565b915091506109c6838560000151838d6135b1565b9b507f6e18cdd81334cca9a49a7b3a4305750ab3d5e62ee7fa04ab08b28f21a53486718460000151828c6040516109ff9392919061413c565b60405180910390a18b610a625760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3033323a5052454d49554d5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b604080518f8152602081018f90527fc78d1fffca4ae6e34ee8442f7e1bc6fe124bf1a3374c7a902cae38d496ced322910160405180910390a150505050505b505050509250925092565b600754604051630e48080360e21b8152600481018390526000916001600160a01b031690633920200c9060240160206040518083038186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b299190613cff565b80610bab575060075460405163ba80b8ed60e01b8152600481018490526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab9190613cff565b610c055760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3037303a4e4f545f50524f445543545f4f525f52495360448201526412d413d3d360da1b6064820152608401610399565b506000818152600560205260409020546001600160a01b03165b919050565b6000546201000090046001600160a01b0316632ca65a79610c423390565b6040518263ffffffff1660e01b8152600401610c5e9190614160565b60206040518083038186803b158015610c7657600080fd5b505afa158015610c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cae9190613cff565b610cca5760405162461bcd60e51b815260040161039990614347565b610cd26138c3565b6040517f7bd43c6857df1d4fd40c4e86f9cf80ba02adf2e9fdadf03d9e8057eb429fcc5b90600090a1565b600080610d13600154600160a01b900460ff1690565b15610d305760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316610d585760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610da157600080fd5b505afa158015610db5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ddd9190810190613d58565b905060006001600160a01b0316610e0d82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b03161415610e345760405162461bcd60e51b815260040161039990614300565b610e4f6e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b031614610e7f5760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610ec457600080fd5b505afa158015610ed8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f009190810190613d58565b60065460405163620d1b0560e11b8152600481018a90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b158015610f4a57600080fd5b505afa158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190613ce3565b90506000610f938360200151611d31565b90506000816080015111610fe95760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3035303a4645455f535045435f554e444546494e45446044820152606401610399565b6020808401516000908152600590915260409020546001600160a01b0316611011828a613918565b975061101d888a6144ad565b6040516370a0823160e01b81526001600160a01b0385811660048301529198508a918316906370a082319060240160206040518083038186803b15801561106357600080fd5b505afa158015611077573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109b9190614013565b10156110e95760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5452532d3035323a42414c414e43455f544f4f5f534d414c4c006044820152606401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190614013565b10156111d45760405162461bcd60e51b815260206004820152603260248201527f4552524f523a5452532d3035333a4341504954414c5f5452414e534645525f41604482015271131313d5d05390d157d513d3d7d4d350531360721b6064820152608401610399565b6002546000906111f190839086906001600160a01b03168c6135b1565b6002546040519192507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e916112359187916001600160a01b03909116908d9061413c565b60405180910390a1806112945760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3035343a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b60006112b986602001516000908152600360205260409020546001600160a01b031690565b90506112c78386838c6135b1565b91507f4a9a3e028031198ad78a401460c1524a9322592291fed6b5306710aae5ff6d3985828b6040516112fc9392919061413c565b60405180910390a18161135f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3035353a4341504954414c5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b602080870151604080519182529181018e90529081018c90527f855e172a7eb8b6ab1abf4014f1e3683e97000f5c207690b9d8447c9df1c00eb39060600160405180910390a150505050505050509250929050565b60008060006113c285611d31565b905060008160800151116114185760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3032343a4645455f535045435f554e444546494e45446044820152606401610399565b6114228185613918565b925061142e83856144ad565b9150509250929050565b6000806000611450600154600160a01b900460ff1690565b1561146d5760405162461bcd60e51b815260040161039990614294565b67547265617375727960c01b611482816134c9565b6001600160a01b0316306001600160a01b0316146114b25760405162461bcd60e51b8152600401610399906142c9565b6114cc6d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146114fc5760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018790526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561154257600080fd5b505afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613f8e565b90508060200151816040015110156115ac576115a4868260400151836020015161017591906144ad565b919650945092505b50509193909250565b6115ee6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600754604051630e48080360e21b8152600481018890526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561163257600080fd5b505afa158015611646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166a9190613cff565b806116ec575060075460405163ba80b8ed60e01b8152600481018890526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b1580156116b457600080fd5b505afa1580156116c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ec9190613cff565b6117495760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3032303a49445f4e4f545f50524f445543545f4f525f604482015267149254d2d413d3d360c21b6064820152608401610399565b61175c6004670de0b6b3a764000061446e565b8411156117b75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5452532d3032313a46524143494f4e414c5f4645455f544f4f5f60448201526242494760e81b6064820152608401610399565b6040518060c0016040528087815260200186815260200185815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525042602082018190526040909101529695505050505050565b611838600154600160a01b900460ff1690565b156118555760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796118733390565b6040518263ffffffff1660e01b815260040161188f9190614160565b60206040518083038186803b1580156118a757600080fd5b505afa1580156118bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118df9190613cff565b6118fb5760405162461bcd60e51b815260040161039990614347565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119789190613ce3565b60075460405163ba80b8ed60e01b8152600481018690529192506001600160a01b03169063ba80b8ed9060240160206040518083038186803b1580156119bd57600080fd5b505afa1580156119d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f59190613cff565b611a415760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3031363a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b6001600160a01b038216611aa15760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031373a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b60008381526003602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251868152918201527f347fbbd524a9e157686795820f5abf777a026670f7dbaa751f4f190abc52f3a2910160405180910390a1505050565b611b1b600154600160a01b900460ff1690565b15611b385760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a79611b563390565b6040518263ffffffff1660e01b8152600401611b729190614160565b60206040518083038186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190613cff565b611bde5760405162461bcd60e51b815260040161039990614347565b60075460405163ba80b8ed60e01b8152823560048201526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611c2257600080fd5b505afa158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a9190613cff565b611ca65760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3032333a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290611cca828261466e565b50508015611cea5781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527fc3ef28d06d8c4c14101ca058d5b1507f9710ae8e34940a185cff056c375671a990606001610597565b611d6a6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600460008381526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382018054611db690614607565b80601f0160208091040260200160405190810160405280929190818152602001828054611de290614607565b8015611e2f5780601f10611e0457610100808354040283529160200191611e2f565b820191906000526020600020905b815481529060010190602001808311611e1257829003601f168201915b50505050508152602001600482015481526020016005820154815250509050919050565b600054610100900460ff1615808015611e735750600054600160ff909116105b80611e8d5750303b158015611e8d575060005460ff166001145b611ef05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610399565b6000805460ff191660011790558015611f13576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f3d600090565b6541636365737360d01b14611f7f57611f5e6541636365737360d01b6134c9565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611f87613a1c565b8015611fc9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610597565b5050565b611fe0600154600160a01b900460ff1690565b15611ffd5760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a7961201b3390565b6040518263ffffffff1660e01b81526004016120379190614160565b60206040518083038186803b15801561204f57600080fd5b505afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190613cff565b6120a35760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166121035760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031353a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f3769187331e10b0394c677689372317cc625318f5e50b76cb4da221dbdf05ef89060200160405180910390a150565b61216a600154600160a01b900460ff1690565b156121875760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796121a53390565b6040518263ffffffff1660e01b81526004016121c19190614160565b60206040518083038186803b1580156121d957600080fd5b505afa1580156121ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122119190613cff565b61222d5760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166122835760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3031303a544f4b454e5f414444524553535f5a45524f6044820152606401610399565b600754604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ff9190613cff565b61234b5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3031313a4e4f545f50524f44554354000000000000006044820152606401610399565b6000828152600560205260409020546001600160a01b0316156123c05760405162461bcd60e51b815260206004820152602760248201527f4552524f523a5452532d3031323a50524f445543545f544f4b454e5f414c524560448201526610511657d4d15560ca1b6064820152608401610399565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561240557600080fd5b505afa158015612419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243d9190613ce3565b9050816001600160a01b0316816001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561248257600080fd5b505afa158015612496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ba9190613ce3565b6001600160a01b0316146125295760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031333a50524f445543545f544f4b454e5f4144445260448201526f4553535f4e4f545f4d41544348494e4760801b6064820152608401610399565b600954604051630d229f3b60e41b8152600481018590526000916001600160a01b03169063d229f3b09060240160206040518083038186803b15801561256e57600080fd5b505afa158015612582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a69190614013565b6000818152600560205260409020549091506001600160a01b031615806125e657506000818152600560205260409020546001600160a01b038481169116145b61264b5760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031343a5249534b504f4f4c5f544f4b454e5f41444460448201526f524553535f4e4f545f4d414348494e4760801b6064820152608401610399565b600084815260056020908152604080832080546001600160a01b0388166001600160a01b03199182168117909255858552938290208054909416811790935580518781529182018490528101919091527f78b40e42f597552da073de514ce9a92a14a8e48cb9bb12a1fae74564a0dcf3ab9060600160405180910390a150505050565b6000806126e4600154600160a01b900460ff1690565b156127015760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166127295760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561277257600080fd5b505afa158015612786573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127ae9190810190613d58565b905060006001600160a01b03166127de82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b031614156128055760405162461bcd60e51b815260040161039990614300565b6128206e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b0316146128505760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561289557600080fd5b505afa1580156128a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128d19190810190613d58565b9050858160c001516128e39190614456565b8160a00151101580612906575060c08101511580156129065750858160e0015110155b6129785760405162461bcd60e51b815260206004820152603960248201527f4552524f523a5452532d3036303a43415041434954595f4f525f42414c414e4360448201527f455f534d414c4c45525f5448414e5f5749544844524157414c000000000000006064820152608401610399565b600061299d82602001516000908152600360205260409020546001600160a01b031690565b60065460405163620d1b0560e11b8152600481018b90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b1580156129e757600080fd5b505afa1580156129fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1f9190613ce3565b602084810151600090815260059091526040908190205490516370a0823160e01b81526001600160a01b038581166004830152929350911690899082906370a082319060240160206040518083038186803b158015612a7d57600080fd5b505afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab59190614013565b1015612b1b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3036313a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b158015612b6557600080fd5b505afa158015612b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9d9190614013565b1015612c005760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a5452532d3036323a5749544844524157414c5f414c4c4f57414e60448201526b10d157d513d3d7d4d350531360a21b6064820152608401610399565b600097508896506000612c158285858b6135b1565b90507fbe5d373e2476acbcb4aa97c605f358cfe7748bebff73d2d3195f587dc61f59c384848a604051612c4a9392919061413c565b60405180910390a180612cb05760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3036333a5749544844524157414c5f5452414e5346456044820152671497d1905253115160c21b6064820152608401610399565b602080860151604080519182529181018d90529081018990527fdbb3ae752b98a0c1c3c26fe1b0a7faa343da1c6fe5e0a80624f36e8e25e22edf9060600160405180910390a1505050505050509250929050565b6000546201000090046001600160a01b0316632ca65a79612d223390565b6040518263ffffffff1660e01b8152600401612d3e9190614160565b60206040518083038186803b158015612d5657600080fd5b505afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190613cff565b612daa5760405162461bcd60e51b815260040161039990614347565b612db2613b52565b6040517f5508e022c084f2aba2d9ebf198ee0e2e205840df815b91112781505e6798bfdc90600090a1565b612df06004670de0b6b3a764000061446e565b81565b600080612e09600154600160a01b900460ff1690565b15612e265760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316612e4e5760405162461bcd60e51b81526004016103999061424d565b83600080612e5b8361333e565b90925090506001600160a01b038116612e865760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b612e9b816134c9565b6001600160a01b0316306001600160a01b031614612ecb5760405162461bcd60e51b8152600401610399906142c9565b612ee56d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b031614612f155760405162461bcd60e51b81526004016103999061438a565b60085460405163296586d360e21b8152600481018a90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015612f5a57600080fd5b505afa158015612f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f969190810190613e64565b90506000612fa78260200151610aac565b9050600080612fb58c61333e565b915091506000600860009054906101000a90046001600160a01b03166001600160a01b031663cef58f138e8e6040518363ffffffff1660e01b8152600401613007929190918252602082015260400190565b60006040518083038186803b15801561301f57600080fd5b505afa158015613033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261305b9190810190613f14565b60408082015190516370a0823160e01b81526001600160a01b03858116600483015292935090918616906370a082319060240160206040518083038186803b1580156130a657600080fd5b505afa1580156130ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130de9190614013565b10156131445760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3034323a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b6040818101519051636eb1769f60e11b81526001600160a01b03848116600483015230602483015286169063dd62ed3e9060440160206040518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190614013565b10156132275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3034333a5041594f55545f414c4c4f57414e43455f5460448201526713d3d7d4d350531360c21b6064820152608401610399565b600061323d8584886000015185604001516135b1565b6040808401518851915160009f50909d509192507f967b0d7f4806051ef2c1375d324be9be0c739a4e34845bc060210577fd677f85916132809186918f9061413c565b60405180910390a1806132e15760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5452532d3034343a5041594f55545f5452414e534645525f46416044820152631253115160e21b6064820152608401610399565b855160408381015181518781526001600160a01b03909316602084015282820152517f8b5ad77a07a1f8dbb7f91bd53d28ecf3c900534c88f13672f6f2ddcf01ec7f859181900360600190a1505050505050505050509250929050565b60085460405163296586d360e21b815260048101839052600091829182916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561338757600080fd5b505afa15801561339b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133c39190810190613e64565b6009546020820151604051630d229f3b60e41b815260048101919091529192506001600160a01b03169063d229f3b09060240160206040518083038186803b15801561340e57600080fd5b505afa158015613422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134469190614013565b9250600083116134a75760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5452532d3039323a50524f445543545f574954484f55545f524960448201526514d2d413d3d360d21b6064820152608401610399565b505060008181526003602052604090205490926001600160a01b039091169150565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561351357600080fd5b505afa158015613527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354b9190613ce3565b90506001600160a01b038116610c1f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610399565b6000846001600160a01b038082163b151590861615806135d857506001600160a01b038516155b806135e1575080155b1561363c576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a16000925050506138bb565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561368157600080fd5b505afa158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b99190614013565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b15801561370657600080fd5b505afa15801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190614013565b90508582108061374d57508581105b156137985760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a160009450505050506138bb565b6000808a6001600160a01b03166323b872dd8b8b8b6040516024016137bf9392919061413c565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516137f89190614120565b6000604051808303816000865af19150503d8060008114613835576040519150601f19603f3d011682016040523d82523d6000602084013e61383a565b606091505b50915091508180156138705750805115806138705750805160201480156138705750808060200190518101906138709190613cff565b9650866138b4577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b828251836040516138ab9392919061419a565b60405180910390a15b5050505050505b949350505050565b6138cb613b95565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b606082015151600090156139875760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3039303a4645455f43414c43554c4154494f4e5f444160448201526f151057d393d517d4d5541413d495115160821b6064820152608401610399565b5060208201516040830151156139c757670de0b6b3a76400008284604001516139b0919061448e565b6139ba919061446e565b6139c49082614456565b90505b818110613a165760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3039313a4645455f544f4f5f424947000000000000006044820152606401610399565b92915050565b600054610100900460ff16613a875760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610399565b613a996542756e646c6560d01b6134c9565b600680546001600160a01b0319166001600160a01b0392909216919091179055613ace6810dbdb5c1bdb995b9d60ba1b6134c9565b600780546001600160a01b0319166001600160a01b0392909216919091179055613b0065506f6c69637960d01b6134c9565b600880546001600160a01b0319166001600160a01b0392909216919091179055613b3063141bdbdb60e21b6134c9565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b613b5a613bed565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138fb3390565b613ba8600154600160a01b900460ff1690565b613beb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610399565b565b613c00600154600160a01b900460ff1690565b15613beb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610399565b600082601f830112613c50578081fd5b815167ffffffffffffffff811115613c6a57613c6a614658565b613c7d601f8201601f1916602001614425565b818152846020838601011115613c91578283fd5b6138bb8260208301602087016145d7565b805160048110610c1f57600080fd5b805160038110610c1f57600080fd5b600060208284031215613cd1578081fd5b8135613cdc816146f3565b9392505050565b600060208284031215613cf4578081fd5b8151613cdc816146f3565b600060208284031215613d10578081fd5b81518015158114613cdc578182fd5b600060208284031215613d30578081fd5b5035919050565b60008060408385031215613d49578081fd5b50508035926020909101359150565b600060208284031215613d69578081fd5b815167ffffffffffffffff80821115613d80578283fd5b8184019150610140808387031215613d96578384fd5b613d9f81614425565b9050825181526020830151602082015260408301516040820152613dc560608401613ca2565b6060820152608083015182811115613ddb578485fd5b613de787828601613c40565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613e3d578081fd5b813567ffffffffffffffff811115613e53578182fd5b820160c08185031215613cdc578182fd5b600060208284031215613e75578081fd5b815167ffffffffffffffff80821115613e8c578283fd5b9083019060c08286031215613e9f578283fd5b613ea960c0614425565b8251613eb4816146f3565b815260208381015190820152613ecc60408401613cb1565b6040820152606083015182811115613ee2578485fd5b613eee87828601613c40565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613f25578081fd5b815167ffffffffffffffff80821115613f3c578283fd5b9083019060c08286031215613f4f578283fd5b613f5960c0614425565b82518152602083015160028110613f6e578485fd5b602082015260408381015190820152606083015182811115613ee2578485fd5b6000610120808385031215613fa1578182fd5b613faa81614425565b9050613fb583613cb1565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060208284031215614024578081fd5b5051919050565b6000806040838503121561403d578182fd5b82359150602083013561404f816146f3565b809150509250929050565b60008060408385031215613d49578182fd5b600080600080600060808688031215614083578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff808211156140af578283fd5b818801915088601f8301126140c2578283fd5b8135818111156140d0578384fd5b8960208285010111156140e1578384fd5b9699959850939650602001949392505050565b6000815180845261410c8160208601602086016145d7565b601f01601f19169290920160200192915050565b600082516141328184602087016145d7565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60008415158252836020830152606060408301526141bb60608301846140f4565b95945050505050565b60208082526027908201527f4552524f523a5452532d3030323a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526022908201527f4552524f523a5452532d3030353a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b60208082526027908201527f4552524f523a5452532d3030313a494e5354414e43455f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b6020808252818101527f4552524f523a5452532d3030343a54524541535552595f53555350454e444544604082015260600190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526027908201527f4552524f523a5452532d3030333a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015261440560e08401826140f4565b9050608084015160a084015260a084015160c08401528091505092915050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561444e5761444e614658565b604052919050565b6000821982111561446957614469614642565b500190565b60008261448957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156144a8576144a8614642565b500290565b6000828210156144bf576144bf614642565b500390565b5b81811015611fc957600081556001016144c5565b67ffffffffffffffff8311156144f1576144f1614658565b6144fb8154614607565b600080601f8611601f84118181171561451a5760008681526020902092505b8015614549576020601f890104830160208910156145355750825b6145476020601f8801048501826144c4565b505b50806001811461457b57600094508715614564578387013594505b6002880260001960088a021c1986161786556145cd565b601f198816945082845b868110156145a55788860135825560209586019560019092019101614585565b50888610156145c257878501356000196008601f8c16021c191681555b506001600289020186555b5050505050505050565b60005b838110156145f25781810151838201526020016145da565b83811115614601576000848401525b50505050565b60028104600182168061461b57607f821691505b6020821081141561463c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8135815560208201356001820155604082013560028201556060820135601e1983360301811261469d57600080fd5b8201803567ffffffffffffffff8111156146b657600080fd5b6020820191508036038213156146cb57600080fd5b6146d98183600386016144d9565b50506080820135600482015560a082013560058201555050565b6001600160a01b038116811461470857600080fd5b5056fea26469706673582212209c6e17d64e138985579699ae8a3c6c60853f74a96d720c58205175e0cdbe5ef264736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x14D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8CA946AA GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xCAB2504D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xCAB2504D EQ PUSH2 0x30D JUMPI DUP1 PUSH4 0xCC9CF8CD EQ PUSH2 0x320 JUMPI DUP1 PUSH4 0xD9358075 EQ PUSH2 0x333 JUMPI DUP1 PUSH4 0xE6400BBE EQ PUSH2 0x346 JUMPI DUP1 PUSH4 0xF964690D EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x356 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x8CA946AA EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x8CCF5CA2 EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0xA434F0AD EQ PUSH2 0x2C7 JUMPI DUP1 PUSH4 0xA44330C4 EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0xB79F5EAB EQ PUSH2 0x2EB JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x2FA JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x34E73122 GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x34E73122 EQ PUSH2 0x1F7 JUMPI DUP1 PUSH4 0x49081637 EQ PUSH2 0x20A JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0x233 JUMPI DUP1 PUSH4 0x5ECC078E EQ PUSH2 0x256 JUMPI DUP1 PUSH4 0x62F0AB55 EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0x86039AED EQ PUSH2 0x289 JUMPI PUSH2 0x14D JUMP JUMPDEST DUP1 PUSH4 0x1132A7F EQ PUSH2 0x152 JUMPI DUP1 PUSH4 0x2108268 EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x38696BB EQ PUSH2 0x19C JUMPI DUP1 PUSH4 0x46F7DA2 EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x26DEBDAA EQ PUSH2 0x1CF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x165 PUSH2 0x160 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E2C JUMP JUMPDEST PUSH2 0x369 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x17A PUSH2 0x175 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D37 JUMP JUMPDEST PUSH2 0x5A3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AF PUSH2 0x1AA CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0xAAC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x165 PUSH2 0xC24 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x1DD CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0xCFD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x205 CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0x13B4 JUMP JUMPDEST PUSH2 0x1AF PUSH2 0x218 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x246 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x17A PUSH2 0x264 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0x1438 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x277 CALLDATASIZE PUSH1 0x4 PUSH2 0x406C JUMP JUMPDEST PUSH2 0x15B5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x43CB JUMP JUMPDEST PUSH2 0x165 PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x1825 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x3E2C JUMP JUMPDEST PUSH2 0x1B08 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x193 JUMP JUMPDEST PUSH2 0x27C PUSH2 0x2D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D1F JUMP JUMPDEST PUSH2 0x1D31 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1AF JUMP JUMPDEST PUSH2 0x2B9 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x308 CALLDATASIZE PUSH1 0x4 PUSH2 0x3CC0 JUMP JUMPDEST PUSH2 0x1E53 JUMP JUMPDEST PUSH2 0x165 PUSH2 0x31B CALLDATASIZE PUSH1 0x4 PUSH2 0x3CC0 JUMP JUMPDEST PUSH2 0x1FCD JUMP JUMPDEST PUSH2 0x165 PUSH2 0x32E CALLDATASIZE PUSH1 0x4 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x2157 JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x341 CALLDATASIZE PUSH1 0x4 PUSH2 0x405A JUMP JUMPDEST PUSH2 0x26CE JUMP JUMPDEST PUSH2 0x165 PUSH2 0x2D04 JUMP JUMPDEST PUSH2 0x2B9 PUSH2 0x2DDD JUMP JUMPDEST PUSH2 0x1E2 PUSH2 0x364 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D37 JUMP JUMPDEST PUSH2 0x2DF3 JUMP JUMPDEST PUSH2 0x37C PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3C0 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3DC SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x408 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x42C SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x448 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE DUP3 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x48C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4C4 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x510 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032323A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 DUP3 SWAP1 PUSH2 0x534 DUP3 DUP3 PUSH2 0x466E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x554 JUMPI DUP2 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP2 DUP5 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x389AB9B2665A8EF1ADF5A151C45E2546C4B1FFE8CFA537DD96A5EB8046B06EFE SWAP1 PUSH1 0x60 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x5BB PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x5D8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x600 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST DUP5 PUSH1 0x0 DUP1 PUSH2 0x60D DUP4 PUSH2 0x333E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x638 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x41C4 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x64D DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x67D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x697 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x6C7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x70D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x721 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x745 SWAP2 SWAP1 PUSH2 0x3F8E JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP10 DUP3 PUSH1 0x40 ADD MLOAD PUSH2 0x75C SWAP2 SWAP1 PUSH2 0x4456 JUMP JUMPDEST GT ISZERO PUSH2 0x7AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033303A414D4F554E545F544F4F5F42494700000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x803 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x82B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST SWAP1 POP PUSH2 0x83B DUP2 PUSH1 0x20 ADD MLOAD DUP12 PUSH2 0x13B4 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MLOAD SWAP2 SWAP10 POP SWAP8 POP PUSH1 0x0 SWAP1 PUSH2 0x851 SWAP1 PUSH2 0xAAC JUMP JUMPDEST DUP3 MLOAD PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE ADDRESS PUSH1 0x24 DUP3 ADD MSTORE SWAP2 SWAP3 POP DUP13 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8B4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8D8 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x8EA JUMPI PUSH1 0x0 SWAP10 POP POP POP POP PUSH2 0xAA1 JUMP JUMPDEST DUP2 MLOAD PUSH1 0x2 SLOAD PUSH2 0x904 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH2 0x35B1 JUMP JUMPDEST DUP3 MLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD SWAP3 SWAP13 POP PUSH32 0xACB52383128D246C2AB215825C8705382E85E3D779899196DDD096C74C70880E SWAP3 PUSH2 0x947 SWAP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 DUP14 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP10 PUSH2 0x9A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033313A4645455F5452414E534645525F4641494C45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x9B2 DUP15 PUSH2 0x333E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x9C6 DUP4 DUP6 PUSH1 0x0 ADD MLOAD DUP4 DUP14 PUSH2 0x35B1 JUMP JUMPDEST SWAP12 POP PUSH32 0x6E18CDD81334CCA9A49A7B3A4305750AB3D5E62EE7FA04AB08B28F21A5348671 DUP5 PUSH1 0x0 ADD MLOAD DUP3 DUP13 PUSH1 0x40 MLOAD PUSH2 0x9FF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 PUSH2 0xA62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3033323A5052454D49554D5F5452414E534645525F46 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1052531151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP16 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP16 SWAP1 MSTORE PUSH32 0xC78D1FFFCA4AE6E34EE8442F7E1BC6FE124BF1A3374C7A902CAE38D496CED322 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP JUMPDEST POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB29 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST DUP1 PUSH2 0xBAB JUMPI POP PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB73 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB87 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBAB SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0xC05 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3037303A4E4F545F50524F445543545F4F525F524953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x12D413D3D3 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xC42 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC5E SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC76 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC8A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCAE SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0xCCA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH2 0xCD2 PUSH2 0x38C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x7BD43C6857DF1D4FD40C4E86F9CF80BA02ADF2E9FDADF03D9E8057EB429FCC5B SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD13 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0xD30 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xD58 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE DUP6 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xDDD SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE0D DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0xE34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4300 JUMP JUMPDEST PUSH2 0xE4F PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE7F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEC4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xED8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xF00 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x620D1B05 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC41A360A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF5E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF82 SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xF93 DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x1D31 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0xFE9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035303A4645455F535045435F554E444546494E4544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1011 DUP3 DUP11 PUSH2 0x3918 JUMP JUMPDEST SWAP8 POP PUSH2 0x101D DUP9 DUP11 PUSH2 0x44AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP9 POP DUP11 SWAP2 DUP4 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1063 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1077 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x109B SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x10E9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035323A42414C414E43455F544F4F5F534D414C4C00 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP11 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1133 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1147 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x116B SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x11D4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x32 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035333A4341504954414C5F5452414E534645525F41 PUSH1 0x44 DUP3 ADD MSTORE PUSH18 0x131313D5D05390D157D513D3D7D4D3505313 PUSH1 0x72 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH2 0x11F1 SWAP1 DUP4 SWAP1 DUP7 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP13 PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD SWAP2 SWAP3 POP PUSH32 0xACB52383128D246C2AB215825C8705382E85E3D779899196DDD096C74C70880E SWAP2 PUSH2 0x1235 SWAP2 DUP8 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP14 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x1294 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035343A4645455F5452414E534645525F4641494C45 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B9 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP PUSH2 0x12C7 DUP4 DUP7 DUP4 DUP13 PUSH2 0x35B1 JUMP JUMPDEST SWAP2 POP PUSH32 0x4A9A3E028031198AD78A401460C1524A9322592291FED6B5306710AAE5FF6D39 DUP6 DUP3 DUP12 PUSH1 0x40 MLOAD PUSH2 0x12FC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH2 0x135F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3035353A4341504954414C5F5452414E534645525F46 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1052531151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP8 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE SWAP2 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 DUP2 ADD DUP13 SWAP1 MSTORE PUSH32 0x855E172A7EB8B6AB1ABF4014F1E3683E97000F5C207690B9D8447C9DF1C00EB3 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x13C2 DUP6 PUSH2 0x1D31 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x80 ADD MLOAD GT PUSH2 0x1418 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032343A4645455F535045435F554E444546494E4544 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x1422 DUP2 DUP6 PUSH2 0x3918 JUMP JUMPDEST SWAP3 POP PUSH2 0x142E DUP4 DUP6 PUSH2 0x44AD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x1450 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x146D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1482 DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x14CC PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x14FC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1542 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1556 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x157A SWAP2 SWAP1 PUSH2 0x3F8E JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x15AC JUMPI PUSH2 0x15A4 DUP7 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x44AD JUMP JUMPDEST SWAP2 SWAP7 POP SWAP5 POP SWAP3 POP JUMPDEST POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH2 0x15EE PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1632 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1646 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x166A SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST DUP1 PUSH2 0x16EC JUMPI POP PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16C8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x16EC SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032303A49445F4E4F545F50524F445543545F4F525F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x149254D2D413D3D3 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x175C PUSH1 0x4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x446E JUMP JUMPDEST DUP5 GT ISZERO PUSH2 0x17B7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032313A46524143494F4E414C5F4645455F544F4F5F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x424947 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP POP SWAP1 DUP3 MSTORE POP TIMESTAMP PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1838 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1855 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x1873 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x188F SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x18DF SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x18FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1940 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1978 SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19D1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19F5 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1A41 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031363A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x1AA1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031373A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP3 MLOAD DUP7 DUP2 MSTORE SWAP2 DUP3 ADD MSTORE PUSH32 0x347FBBD524A9E157686795820F5ABF777A026670F7DBAA751F4F190ABC52F3A2 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x1B1B PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1B38 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x1B56 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B72 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B9E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BC2 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1BDE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBA80B8ED PUSH1 0xE0 SHL DUP2 MSTORE DUP3 CALLDATALOAD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBA80B8ED SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C22 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C36 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1C5A SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x1CA6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3032333A4E4F545F5249534B504F4F4C000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SWAP1 DUP2 ADD SLOAD SWAP1 DUP3 SWAP1 PUSH2 0x1CCA DUP3 DUP3 PUSH2 0x466E JUMP JUMPDEST POP POP DUP1 ISZERO PUSH2 0x1CEA JUMPI DUP2 CALLDATALOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 ADD DUP2 SWAP1 SSTORE JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD CALLDATALOAD SWAP1 DUP3 ADD MSTORE DUP2 DUP5 ADD CALLDATALOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC3EF28D06D8C4C14101CA058D5B1507F9710AE8E34940A185CFF056C375671A9 SWAP1 PUSH1 0x60 ADD PUSH2 0x597 JUMP JUMPDEST PUSH2 0x1D6A PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x1DB6 SWAP1 PUSH2 0x4607 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1DE2 SWAP1 PUSH2 0x4607 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E2F JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1E04 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1E2F JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1E12 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x5 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1E73 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1E8D JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E8D JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1EF0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1F13 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x1F3D PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1F7F JUMPI PUSH2 0x1F5E PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1F87 PUSH2 0x3A1C JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x597 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x1FE0 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x1FFD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x201B CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2037 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x204F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2063 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2087 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x20A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2103 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031353A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x3769187331E10B0394C677689372317CC625318F5E50B76CB4DA221DBDF05EF8 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0x216A PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2187 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x21A5 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21C1 SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x21ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2211 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x222D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2283 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031303A544F4B454E5F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x3920200C SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22DB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22FF SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x234B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031313A4E4F545F50524F4455435400000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x23C0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031323A50524F445543545F544F4B454E5F414C5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x10511657D4D155 PUSH1 0xCA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2405 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2419 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x243D SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x21DF0DA7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2482 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2496 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24BA SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2529 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031333A50524F445543545F544F4B454E5F41444452 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x4553535F4E4F545F4D41544348494E47 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD229F3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD229F3B0 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x256E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2582 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x25A6 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO DUP1 PUSH2 0x25E6 JUMPI POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 AND EQ JUMPDEST PUSH2 0x264B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3031343A5249534B504F4F4C5F544F4B454E5F414444 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x524553535F4E4F545F4D414348494E47 PUSH1 0x80 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND DUP2 OR SWAP1 SWAP3 SSTORE DUP6 DUP6 MSTORE SWAP4 DUP3 SWAP1 KECCAK256 DUP1 SLOAD SWAP1 SWAP5 AND DUP2 OR SWAP1 SWAP4 SSTORE DUP1 MLOAD DUP8 DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x78B40E42F597552DA073DE514CE9A92A14A8E48CB9BB12A1FAE74564A0DCF3AB SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x26E4 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2701 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2729 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE DUP6 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2772 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2786 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x27AE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x27DE DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x2805 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4300 JUMP JUMPDEST PUSH2 0x2820 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2850 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2895 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x28D1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3D58 JUMP JUMPDEST SWAP1 POP DUP6 DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x28E3 SWAP2 SWAP1 PUSH2 0x4456 JUMP JUMPDEST DUP2 PUSH1 0xA0 ADD MLOAD LT ISZERO DUP1 PUSH2 0x2906 JUMPI POP PUSH1 0xC0 DUP2 ADD MLOAD ISZERO DUP1 ISZERO PUSH2 0x2906 JUMPI POP DUP6 DUP2 PUSH1 0xE0 ADD MLOAD LT ISZERO JUMPDEST PUSH2 0x2978 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036303A43415041434954595F4F525F42414C414E43 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x455F534D414C4C45525F5448414E5F5749544844524157414C00000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x299D DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x620D1B05 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC41A360A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x29FB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2A1F SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST PUSH1 0x20 DUP5 DUP2 ADD MLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD SWAP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP2 AND SWAP1 DUP10 SWAP1 DUP3 SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2A91 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2AB5 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x2B1B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036313A5249534B504F4F4C5F57414C4C45545F4241 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x13105390D157D513D3D7D4D3505313 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP11 SWAP2 SWAP1 DUP4 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B79 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B9D SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x2C00 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036323A5749544844524157414C5F414C4C4F57414E PUSH1 0x44 DUP3 ADD MSTORE PUSH12 0x10D157D513D3D7D4D3505313 PUSH1 0xA2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 SWAP8 POP DUP9 SWAP7 POP PUSH1 0x0 PUSH2 0x2C15 DUP3 DUP6 DUP6 DUP12 PUSH2 0x35B1 JUMP JUMPDEST SWAP1 POP PUSH32 0xBE5D373E2476ACBCB4AA97C605F358CFE7748BEBFF73D2D3195F587DC61F59C3 DUP5 DUP5 DUP11 PUSH1 0x40 MLOAD PUSH2 0x2C4A SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x2CB0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3036333A5749544844524157414C5F5452414E534645 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x1497D19052531151 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP7 ADD MLOAD PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE SWAP2 DUP2 ADD DUP14 SWAP1 MSTORE SWAP1 DUP2 ADD DUP10 SWAP1 MSTORE PUSH32 0xDBB3AE752B98A0C1C3C26FE1B0A7FAA343DA1C6FE5E0A80624F36E8E25E22EDF SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x2D22 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D3E SWAP2 SWAP1 PUSH2 0x4160 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D56 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D6A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2D8E SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST PUSH2 0x2DAA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4347 JUMP JUMPDEST PUSH2 0x2DB2 PUSH2 0x3B52 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x5508E022C084F2ABA2D9EBF198EE0E2E205840DF815B91112781505E6798BFDC SWAP1 PUSH1 0x0 SWAP1 LOG1 JUMP JUMPDEST PUSH2 0x2DF0 PUSH1 0x4 PUSH8 0xDE0B6B3A7640000 PUSH2 0x446E JUMP JUMPDEST DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2E09 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x2E26 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x4294 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E4E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x424D JUMP JUMPDEST DUP4 PUSH1 0x0 DUP1 PUSH2 0x2E5B DUP4 PUSH2 0x333E JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2E86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x41C4 JUMP JUMPDEST PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x2E9B DUP2 PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ADDRESS PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2ECB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x42C9 JUMP JUMPDEST PUSH2 0x2EE5 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x2F15 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x399 SWAP1 PUSH2 0x438A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2F96 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2FA7 DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0xAAC JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x2FB5 DUP13 PUSH2 0x333E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x8 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xCEF58F13 DUP15 DUP15 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3007 SWAP3 SWAP2 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x301F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3033 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x305B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3F14 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP3 ADD MLOAD SWAP1 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP3 SWAP4 POP SWAP1 SWAP2 DUP7 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x30A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30DE SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x3144 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034323A5249534B504F4F4C5F57414C4C45545F4241 PUSH1 0x44 DUP3 ADD MSTORE PUSH15 0x13105390D157D513D3D7D4D3505313 PUSH1 0x8A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD MLOAD SWAP1 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE DUP7 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3190 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x31C8 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST LT ISZERO PUSH2 0x3227 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034333A5041594F55545F414C4C4F57414E43455F54 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x13D3D7D4D3505313 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x323D DUP6 DUP5 DUP9 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x35B1 JUMP JUMPDEST PUSH1 0x40 DUP1 DUP5 ADD MLOAD DUP9 MLOAD SWAP2 MLOAD PUSH1 0x0 SWAP16 POP SWAP1 SWAP14 POP SWAP2 SWAP3 POP PUSH32 0x967B0D7F4806051EF2C1375D324BE9BE0C739A4E34845BC060210577FD677F85 SWAP2 PUSH2 0x3280 SWAP2 DUP7 SWAP2 DUP16 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH2 0x32E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3034343A5041594F55545F5452414E534645525F4641 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x12531151 PUSH1 0xE2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST DUP6 MLOAD PUSH1 0x40 DUP4 DUP2 ADD MLOAD DUP2 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP4 AND PUSH1 0x20 DUP5 ADD MSTORE DUP3 DUP3 ADD MSTORE MLOAD PUSH32 0x8B5AD77A07A1F8DBB7F91BD53D28ECF3C900534C88F13672F6F2DDCF01EC7F85 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 POP POP POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x339B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x33C3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3E64 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xD229F3B PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD229F3B0 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x340E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3422 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3446 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 DUP4 GT PUSH2 0x34A7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039323A50524F445543545F574954484F55545F5249 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x14D2D413D3D3 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3527 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x354B SWAP2 SWAP1 PUSH2 0x3CE3 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xC1F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x35D8 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0x35E1 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x363C JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x38BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3681 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3695 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x36B9 SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3706 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x371A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x373E SWAP2 SWAP1 PUSH2 0x4013 JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x374D JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x3798 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x38BB JUMP JUMPDEST PUSH1 0x0 DUP1 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x23B872DD DUP12 DUP12 DUP12 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x37BF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x413C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP PUSH1 0x40 MLOAD PUSH2 0x37F8 SWAP2 SWAP1 PUSH2 0x4120 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x3835 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x383A JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x3870 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x3870 JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x3870 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x3870 SWAP2 SWAP1 PUSH2 0x3CFF JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x38B4 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x38AB SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x419A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x38CB PUSH2 0x3B95 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND SWAP1 SSTORE PUSH32 0x5DB9EE0A495BF2E6FF9C91A7834C1BA4FDD244A5E8AA4E537BD38AEAE4B073AA CALLER JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MLOAD MLOAD PUSH1 0x0 SWAP1 ISZERO PUSH2 0x3987 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x30 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039303A4645455F43414C43554C4154494F4E5F4441 PUSH1 0x44 DUP3 ADD MSTORE PUSH16 0x151057D393D517D4D5541413D4951151 PUSH1 0x82 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP4 ADD MLOAD ISZERO PUSH2 0x39C7 JUMPI PUSH8 0xDE0B6B3A7640000 DUP3 DUP5 PUSH1 0x40 ADD MLOAD PUSH2 0x39B0 SWAP2 SWAP1 PUSH2 0x448E JUMP JUMPDEST PUSH2 0x39BA SWAP2 SWAP1 PUSH2 0x446E JUMP JUMPDEST PUSH2 0x39C4 SWAP1 DUP3 PUSH2 0x4456 JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT PUSH2 0x3A16 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3039313A4645455F544F4F5F42494700000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3A87 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x399 JUMP JUMPDEST PUSH2 0x3A99 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3ACE PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3B00 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3B30 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x34C9 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x3B5A PUSH2 0x3BED JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0xFF PUSH1 0xA0 SHL NOT AND PUSH1 0x1 PUSH1 0xA0 SHL OR SWAP1 SSTORE PUSH32 0x62E78CEA01BEE320CD4E420270B5EA74000D11B0C9F74754EBDBFC544B05A258 PUSH2 0x38FB CALLER SWAP1 JUMP JUMPDEST PUSH2 0x3BA8 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x3BEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x14185D5CD8589B194E881B9BDD081C185D5CD959 PUSH1 0x62 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x3C00 PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 SHL SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST ISZERO PUSH2 0x3BEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x14185D5CD8589B194E881C185D5CD959 PUSH1 0x82 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x399 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3C50 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3C6A JUMPI PUSH2 0x3C6A PUSH2 0x4658 JUMP JUMPDEST PUSH2 0x3C7D PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x4425 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3C91 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x38BB DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x45D7 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xC1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CD1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3CDC DUP2 PUSH2 0x46F3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3CF4 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3CDC DUP2 PUSH2 0x46F3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D10 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3CDC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D30 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D49 JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D69 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3D80 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x3D96 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3D9F DUP2 PUSH2 0x4425 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x3DC5 PUSH1 0x60 DUP5 ADD PUSH2 0x3CA2 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3DDB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3DE7 DUP8 DUP3 DUP7 ADD PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E3D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E53 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0xC0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x3CDC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E75 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3E8C JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3E9F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3EA9 PUSH1 0xC0 PUSH2 0x4425 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x3EB4 DUP2 PUSH2 0x46F3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x3ECC PUSH1 0x40 DUP5 ADD PUSH2 0x3CB1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3EE2 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3EEE DUP8 DUP3 DUP7 ADD PUSH2 0x3C40 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F25 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3F3C JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x3F4F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x3F59 PUSH1 0xC0 PUSH2 0x4425 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x3F6E JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3EE2 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3FA1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x3FAA DUP2 PUSH2 0x4425 JUMP JUMPDEST SWAP1 POP PUSH2 0x3FB5 DUP4 PUSH2 0x3CB1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4024 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x403D JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x404F DUP2 PUSH2 0x46F3 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D49 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x4083 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x40AF JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP9 ADD SWAP2 POP DUP9 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x40C2 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x40D0 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP10 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x40E1 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP PUSH1 0x20 ADD SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x410C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x45D7 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x4132 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x45D7 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP4 DUP5 AND DUP2 MSTORE SWAP2 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH32 0x496E7374616E63654F70657261746F7253657276696365000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x41BB PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x40F4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030323A5249534B504F4F4C5F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030353A4E4F545F5249534B504F4F4C5F5345525649 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x4345 PUSH1 0xF0 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030313A494E5354414E43455F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x4552524F523A5452532D3030343A54524541535552595F53555350454E444544 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1C SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030323A4E4F545F4F4E5F53544F5241474500000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x27 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5452532D3030333A5249534B504F4F4C5F57414C4C45545F554E PUSH1 0x40 DUP3 ADD MSTORE PUSH7 0x11115192539151 PUSH1 0xCA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030333A4E4F545F50524F445543545F534552564943 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x4405 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x40F4 JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x444E JUMPI PUSH2 0x444E PUSH2 0x4658 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x4469 JUMPI PUSH2 0x4469 PUSH2 0x4642 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4489 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 NOT DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x44A8 JUMPI PUSH2 0x44A8 PUSH2 0x4642 JUMP JUMPDEST POP MUL SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x44BF JUMPI PUSH2 0x44BF PUSH2 0x4642 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1FC9 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x44C5 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP4 GT ISZERO PUSH2 0x44F1 JUMPI PUSH2 0x44F1 PUSH2 0x4658 JUMP JUMPDEST PUSH2 0x44FB DUP2 SLOAD PUSH2 0x4607 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1F DUP7 GT PUSH1 0x1F DUP5 GT DUP2 DUP2 OR ISZERO PUSH2 0x451A JUMPI PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 SWAP3 POP JUMPDEST DUP1 ISZERO PUSH2 0x4549 JUMPI PUSH1 0x20 PUSH1 0x1F DUP10 ADD DIV DUP4 ADD PUSH1 0x20 DUP10 LT ISZERO PUSH2 0x4535 JUMPI POP DUP3 JUMPDEST PUSH2 0x4547 PUSH1 0x20 PUSH1 0x1F DUP9 ADD DIV DUP6 ADD DUP3 PUSH2 0x44C4 JUMP JUMPDEST POP JUMPDEST POP DUP1 PUSH1 0x1 DUP2 EQ PUSH2 0x457B JUMPI PUSH1 0x0 SWAP5 POP DUP8 ISZERO PUSH2 0x4564 JUMPI DUP4 DUP8 ADD CALLDATALOAD SWAP5 POP JUMPDEST PUSH1 0x2 DUP9 MUL PUSH1 0x0 NOT PUSH1 0x8 DUP11 MUL SHR NOT DUP7 AND OR DUP7 SSTORE PUSH2 0x45CD JUMP JUMPDEST PUSH1 0x1F NOT DUP9 AND SWAP5 POP DUP3 DUP5 JUMPDEST DUP7 DUP2 LT ISZERO PUSH2 0x45A5 JUMPI DUP9 DUP7 ADD CALLDATALOAD DUP3 SSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x4585 JUMP JUMPDEST POP DUP9 DUP7 LT ISZERO PUSH2 0x45C2 JUMPI DUP8 DUP6 ADD CALLDATALOAD PUSH1 0x0 NOT PUSH1 0x8 PUSH1 0x1F DUP13 AND MUL SHR NOT AND DUP2 SSTORE JUMPDEST POP PUSH1 0x1 PUSH1 0x2 DUP10 MUL ADD DUP7 SSTORE JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x45F2 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x45DA JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4601 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x461B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x463C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 SSTORE PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH1 0x1E NOT DUP4 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x469D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP1 CALLDATASIZE SUB DUP3 SGT ISZERO PUSH2 0x46CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x46D9 DUP2 DUP4 PUSH1 0x3 DUP7 ADD PUSH2 0x44D9 JUMP JUMPDEST POP POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x4 DUP3 ADD SSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0x5 DUP3 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4708 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 PUSH15 0x17D64E138985579699AE8A3C6C6085 EXTCODEHASH PUSH21 0xA96D720C58205175E0CDBE5EF264736F6C63430008 MUL STOP CALLER ","sourceMap":"3548:18091:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9244:748;;;;;;:::i;:::-;;:::i;:::-;;12251:1864;;;;;;:::i;:::-;;:::i;:::-;;;;11785:14:103;;11778:22;11760:41;;11832:2;11817:18;;11810:34;;;;11860:18;;;11853:34;11748:2;11733:18;12251:1864:81;;;;;;;;19290:304;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;9514:32:103;;;9496:51;;9484:2;9469:18;19290:304:81;9451:102:103;6191:132:81;;;:::i;15577:1964::-;;;;;;:::i;:::-;;:::i;:::-;;;;12254:25:103;;;12310:2;12295:18;;12288:34;;;;12227:18;15577:1964:81;12209:119:103;10748:397:81;;;;;;:::i;:::-;;:::i;19992:136::-;;;;;;:::i;:::-;20068:7;20094:27;;;:15;:27;;;;;;-1:-1:-1;;;;;20094:27:81;;19992:136;1615:84:48;;1685:7;;-1:-1:-1;;;1685:7:48;;;;;1615:84;;;;10773:14:103;;10766:22;10748:41;;10736:2;10721:18;1615:84:48;10703:92:103;11436:572:81;;;;;;:::i;:::-;;:::i;8492:746::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7934:552::-;;;;;;:::i;:::-;;:::i;9999:742::-;;;;;;:::i;:::-;;:::i;19752:113::-;3675:6;19752:113;;;12044:25:103;;;12032:2;12017:18;19752:113:81;11999:76:103;19600:146:81;;;;;;:::i;:::-;;:::i;19871:115::-;19956:22;;-1:-1:-1;;;;;19956:22:81;19871:115;;3630:51;;3675:6;3630:51;;1143:232:88;;;;;;:::i;:::-;;:::i;7563:365:81:-;;;;;;:::i;:::-;;:::i;6329:1228::-;;;;;;:::i;:::-;;:::i;17547:1736::-;;;;;;:::i;:::-;;:::i;6052:133::-;;;:::i;3687:67::-;;;:::i;14122:1449::-;;;;;;:::i;:::-;;:::i;9244:748::-;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;;;;;;;;;564:9:88::1;::::0;;;::::1;-1:-1:-1::0;;;;;564:9:88::1;:22;587:12;719:10:59::0;640:96;;587:12:88::1;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1::0;;;543:136:88::1;;;;;;;:::i;:::-;9406:10:81::2;::::0;:41:::2;::::0;-1:-1:-1;;;9406:41:81;;9427:19;::::2;9406:41;::::0;::::2;12044:25:103::0;-1:-1:-1;;;;;9406:10:81;;::::2;::::0;:20:::2;::::0;12017:18:103;;9406:41:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9398:79;;;::::0;-1:-1:-1;;;9398:79:81;;12957:2:103;9398:79:81::2;::::0;::::2;12939:21:103::0;12996:2;12976:18;;;12969:30;13035:27;13015:18;;;13008:55;13080:18;;9398:79:81::2;12929:175:103::0;9398:79:81::2;9578:19:::0;::::2;9544:25;9572:26:::0;;;:5:::2;:26;::::0;;;;;;;:36;;::::2;::::0;;9578:7;;9618:36:::2;9578:7:::0;9572:26;9618:36:::2;:::i;:::-;-1:-1:-1::0;;9740:21:81;;9736:108:::2;;9783:19:::0;::::2;9777:26;::::0;;;:5:::2;:26;::::0;;;;;;;:36:::2;:56:::0;;;9736:108:::2;9963:21;9859:126:::0;;9899:19;::::2;32731:25:103::0;;9932:16:81::2;::::0;;::::2;;32772:18:103::0;;;32765:34;9963:21:81;;::::2;;32815:18:103::0;;;32808:34;;;;9859:126:81::2;::::0;32719:2:103;32704:18;9859:126:81::2;;;;;;;;689:1:88;9244:748:81::0;:::o;12251:1864::-;12506:12;12533:17;12565;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;4617:22:::1;::::0;-1:-1:-1;;;;;4617:22:81::1;4596:113;;;;-1:-1:-1::0;;;4596:113:81::1;;;;;;;:::i;:::-;12431:9:::2;4804:18;4824:21:::0;4849:29:::2;4868:9;4849:18;:29::i;:::-;4803:75:::0;;-1:-1:-1;4803:75:81;-1:-1:-1;;;;;;4909:27:81;::::2;4888:104;;;;-1:-1:-1::0;;;4888:104:81::2;;;;;;;:::i;:::-;-1:-1:-1::0;;;828:27:88::3;848:6;828:19;:27::i;:::-;-1:-1:-1::0;;;;;811:44:88::3;819:4;-1:-1:-1::0;;;;;811:44:88::3;;790:119;;;;-1:-1:-1::0;;;790:119:88::3;;;;;;;:::i;:::-;1023:37;-1:-1:-1::0;;;1023:19:88::3;:37::i;:::-;-1:-1:-1::0;;;;;1007:53:88::3;719:10:59::0;-1:-1:-1;;;;;1007:53:88::3;;986:133;;;;-1:-1:-1::0;;;986:133:88::3;;;;;;;:::i;:::-;12640:7:81::4;::::0;:28:::4;::::0;-1:-1:-1;;;12640:28:81;;::::4;::::0;::::4;12044:25:103::0;;;12608:28:81::4;::::0;-1:-1:-1;;;;;12640:7:81::4;::::0;:17:::4;::::0;12017:18:103;;12640:28:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12608:60;;12736:6;:28;;;12726:6;12699;:24;;;:33;;;;:::i;:::-;:65;;12678:141;;;::::0;-1:-1:-1;;;12678:141:81;;18807:2:103;12678:141:81::4;::::0;::::4;18789:21:103::0;18846:2;18826:18;;;18819:30;18885;18865:18;;;18858:58;18933:18;;12678:141:81::4;18779:178:103::0;12678:141:81::4;12865:7;::::0;:30:::4;::::0;-1:-1:-1;;;12865:30:81;;::::4;::::0;::::4;12044:25:103::0;;;12830:32:81::4;::::0;-1:-1:-1;;;;;12865:7:81::4;::::0;:19:::4;::::0;12017:18:103;;12865:30:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;::::0;;::::4;-1:-1:-1::0;;12865:30:81::4;::::0;::::4;;::::0;::::4;::::0;;;::::4;::::0;::::4;:::i;:::-;12830:65;;12943:40;12956:8;:18;;;12976:6;12943:12;:40::i;:::-;13081:18;::::0;::::4;::::0;12905:78;;-1:-1:-1;12905:78:81;-1:-1:-1;13048:12:81::4;::::0;13063:37:::4;::::0;:17:::4;:37::i;:::-;13130:14:::0;;13114:46:::4;::::0;-1:-1:-1;;;13114:46:81;;-1:-1:-1;;;;;9788:15:103;;;13114:46:81::4;::::0;::::4;9770:34:103::0;13154:4:81::4;9820:18:103::0;;;9813:43;13048:52:81;;-1:-1:-1;13163:6:81;;13114:15;;::::4;::::0;::::4;::::0;9705:18:103;;13114:46:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:55;13110:153;;;13195:5;13185:15;;13214:38;;;;;13110:153;13357:14:::0;;13373:22:::4;::::0;13315:92:::4;::::0;13350:5;;-1:-1:-1;;;;;13373:22:81::4;13397:9:::0;13315:34:::4;:92::i;:::-;13449:14:::0;;13465:22:::4;::::0;13422:77:::4;::::0;13305:102;;-1:-1:-1;13422:77:81::4;::::0;::::4;::::0;13449:14;-1:-1:-1;;;;;13465:22:81::4;::::0;13489:9;;13422:77:::4;:::i;:::-;;;;;;;;13517:7;13509:53;;;::::0;-1:-1:-1;;;13509:53:81;;26332:2:103;13509:53:81::4;::::0;::::4;26314:21:103::0;26371:2;26351:18;;;26344:30;26410:34;26390:18;;;26383:62;-1:-1:-1;;;26461:18:103;;;26454:31;26502:19;;13509:53:81::4;26304:223:103::0;13509:53:81::4;13691:18;13711:29:::0;13744::::4;13763:9;13744:18;:29::i;:::-;13690:83;;;;13793:91;13828:5;13835:8;:14;;;13851:21;13874:9;13793:34;:91::i;:::-;13783:101;;13900:79;13930:8;:14;;;13946:21;13969:9;13900:79;;;;;;;;:::i;:::-;;;;;;;;13997:7;13989:57;;;::::0;-1:-1:-1;;;13989:57:81;;18401:2:103;13989:57:81::4;::::0;::::4;18383:21:103::0;18440:2;18420:18;;;18413:30;18479:34;18459:18;;;18452:62;-1:-1:-1;;;18530:18:103;;;18523:35;18575:19;;13989:57:81::4;18373:227:103::0;13989:57:81::4;14062:46;::::0;;12254:25:103;;;12310:2;12295:18;;12288:34;;;14062:46:81::4;::::0;12227:18:103;14062:46:81::4;;;;;;;1129:1:88;;;;;;5002::81::3;4719::::2;;;12251:1864:::0;;;;;:::o;19290:304::-;19429:10;;:33;;-1:-1:-1;;;19429:33:81;;;;;12044:25:103;;;19392:12:81;;-1:-1:-1;;;;;19429:10:81;;:20;;12017:18:103;;19429:33:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:71;;;-1:-1:-1;19466:10:81;;:34;;-1:-1:-1;;;19466:34:81;;;;;12044:25:103;;;-1:-1:-1;;;;;19466:10:81;;;;:21;;12017:18:103;;19466:34:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19421:121;;;;-1:-1:-1;;;19421:121:81;;14470:2:103;19421:121:81;;;14452:21:103;14509:2;14489:18;;;14482:30;14548:34;14528:18;;;14521:62;-1:-1:-1;;;14599:18:103;;;14592:35;14644:19;;19421:121:81;14442:227:103;19421:121:81;-1:-1:-1;19559:28:81;;;;:15;:28;;;;;;-1:-1:-1;;;;;19559:28:81;19290:304;;;;:::o;6191:132::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6271:10:81::1;:8;:10::i;:::-;6296:20;::::0;::::1;::::0;;;::::1;6191:132::o:0;15577:1964::-;15831:17;15862:24;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;4617:22:::1;::::0;-1:-1:-1;;;;;4617:22:81::1;4596:113;;;;-1:-1:-1::0;;;4596:113:81::1;;;;;;;:::i;:::-;5115:7:::2;::::0;:27:::2;::::0;-1:-1:-1;;;5115:27:81;;::::2;::::0;::::2;12044:25:103::0;;;15764:8:81;;5084:28:::2;::::0;-1:-1:-1;;;;;5115:7:81;;::::2;::::0;:17:::2;::::0;12017:18:103;;5115:27:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;5115:27:81::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;5084:58;;5221:1;-1:-1:-1::0;;;;;5173:50:81::2;:36;5191:6;:17;;;20068:7:::0;20094:27;;;:15;:27;;;;;;-1:-1:-1;;;;;20094:27:81;;19992:136;5173:36:::2;-1:-1:-1::0;;;;;5173:50:81::2;;;5152:127;;;;-1:-1:-1::0;;;5152:127:81::2;;;;;;;:::i;:::-;5583:38:::3;-1:-1:-1::0;;;5583:19:81::3;:38::i;:::-;-1:-1:-1::0;;;;;5567:54:81::3;719:10:59::0;-1:-1:-1;;;;;5567:54:81::3;;5546:135;;;;-1:-1:-1::0;;;5546:135:81::3;;;;;;;:::i;:::-;15987:7:::4;::::0;:27:::4;::::0;-1:-1:-1;;;15987:27:81;;::::4;::::0;::::4;12044:25:103::0;;;15956:28:81::4;::::0;-1:-1:-1;;;;;15987:7:81::4;::::0;:17:::4;::::0;12017:18:103;;15987:27:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;::::0;;::::4;-1:-1:-1::0;;15987:27:81::4;::::0;::::4;;::::0;::::4;::::0;;;::::4;::::0;::::4;:::i;:::-;16046:7;::::0;:26:::4;::::0;-1:-1:-1;;;16046:26:81;;::::4;::::0;::::4;12044:25:103::0;;;15956:58:81;;-1:-1:-1;16024:19:81::4;::::0;-1:-1:-1;;;;;16046:7:81;;::::4;::::0;:16:::4;::::0;12017:18:103;;16046:26:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16024:48;;16083:31;16117:38;16137:6;:17;;;16117:19;:38::i;:::-;16083:72;;16193:1;16173:7;:17;;;:21;16165:66;;;::::0;-1:-1:-1;;;16165:66:81;;29851:2:103;16165:66:81::4;::::0;::::4;29833:21:103::0;;;29870:18;;;29863:30;29929:34;29909:18;;;29902:62;29981:18;;16165:66:81::4;29823:182:103::0;16165:66:81::4;16332:17;::::0;;::::4;::::0;16301:12:::4;16316:34:::0;;;:15:::4;:34:::0;;;;;;;-1:-1:-1;;;;;16316:34:81::4;16415:37;16429:7:::0;16438:13;16415::::4;:37::i;:::-;16403:49:::0;-1:-1:-1;16481:25:81::4;16403:49:::0;16481:13;:25:::4;:::i;:::-;16594:28;::::0;-1:-1:-1;;;16594:28:81;;-1:-1:-1;;;;;9514:32:103;;;16594:28:81::4;::::0;::::4;9496:51:103::0;16462:44:81;;-1:-1:-1;16626:13:81;;16594:15;::::4;::::0;::::4;::::0;9469:18:103;;16594:28:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;16586:89;;;::::0;-1:-1:-1;;;16586:89:81;;21506:2:103;16586:89:81::4;::::0;::::4;21488:21:103::0;21545:2;21525:18;;;21518:30;21584:33;21564:18;;;21557:61;21635:18;;16586:89:81::4;21478:181:103::0;16586:89:81::4;16693:43;::::0;-1:-1:-1;;;16693:43:81;;-1:-1:-1;;;;;9788:15:103;;;16693:43:81::4;::::0;::::4;9770:34:103::0;16730:4:81::4;9820:18:103::0;;;9813:43;16740:13:81;;16693:15;;::::4;::::0;::::4;::::0;9705:18:103;;16693:43:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;16685:123;;;::::0;-1:-1:-1;;;16685:123:81;;15685:2:103;16685:123:81::4;::::0;::::4;15667:21:103::0;15724:2;15704:18;;;15697:30;15763:34;15743:18;;;15736:62;-1:-1:-1;;;15814:18:103;;;15807:48;15872:19;;16685:123:81::4;15657:240:103::0;16685:123:81::4;16889:22;::::0;16819:12:::4;::::0;16834:89:::4;::::0;16869:5;;16876:11;;-1:-1:-1;;;;;16889:22:81::4;16913:9:::0;16834:34:::4;:89::i;:::-;16979:22;::::0;16939:74:::4;::::0;16819:104;;-1:-1:-1;16939:74:81::4;::::0;::::4;::::0;16966:11;;-1:-1:-1;;;;;16979:22:81;;::::4;::::0;17003:9;;16939:74:::4;:::i;:::-;;;;;;;;17031:7;17023:53;;;::::0;-1:-1:-1;;;17023:53:81;;20335:2:103;17023:53:81::4;::::0;::::4;20317:21:103::0;20374:2;20354:18;;;20347:30;20413:34;20393:18;;;20386:62;-1:-1:-1;;;20464:18:103;;;20457:31;20505:19;;17023:53:81::4;20307:223:103::0;17023:53:81::4;17119:22;17144:36;17162:6;:17;;;20068:7:::0;20094:27;;;:15;:27;;;;;;-1:-1:-1;;;;;20094:27:81;;19992:136;17144:36:::4;17119:61;;17200:88;17235:5;17242:11;17255:14;17271:16;17200:34;:88::i;:::-;17190:98;;17304:76;17334:11;17347:14;17363:16;17304:76;;;;;;;;:::i;:::-;;;;;;;;17398:7;17390:57;;;::::0;-1:-1:-1;;;17390:57:81;;29084:2:103;17390:57:81::4;::::0;::::4;29066:21:103::0;29123:2;29103:18;;;29096:30;29162:34;29142:18;;;29135:62;-1:-1:-1;;;29213:18:103;;;29206:35;29258:19;;17390:57:81::4;29056:227:103::0;17390:57:81::4;17491:17;::::0;;::::4;::::0;17463:71:::4;::::0;;32731:25:103;;;32772:18;;;32765:34;;;32815:18;;;32808:34;;;17463:71:81::4;::::0;32719:2:103;32704:18;17463:71:81::4;;;;;;;5691:1;;;;;;4719::::2;;15577:1964:::0;;;;;:::o;10748:397::-;10852:17;10871;10904:31;10938:32;10958:11;10938:19;:32::i;:::-;10904:66;;11008:1;10988:7;:17;;;:21;10980:66;;;;-1:-1:-1;;;10980:66:81;;29490:2:103;10980:66:81;;;29472:21:103;;;29509:18;;;29502:30;29568:34;29548:18;;;29541:62;29620:18;;10980:66:81;29462:182:103;10980:66:81;11068:30;11082:7;11091:6;11068:13;:30::i;:::-;11056:42;-1:-1:-1;11120:18:81;11056:42;11120:6;:18;:::i;:::-;11108:30;;10748:397;;;;;;:::o;11436:572::-;11596:12;11623:17;11655:24;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;-1:-1:-1;;;828:27:88::1;848:6;828:19;:27::i;:::-;-1:-1:-1::0;;;;;811:44:88::1;819:4;-1:-1:-1::0;;;;;811:44:88::1;;790:119;;;;-1:-1:-1::0;;;790:119:88::1;;;;;;;:::i;:::-;1023:37;-1:-1:-1::0;;;1023:19:88::1;:37::i;:::-;-1:-1:-1::0;;;;;1007:53:88::1;719:10:59::0;-1:-1:-1;;;;;1007:53:88::1;;986:133;;;;-1:-1:-1::0;;;986:133:88::1;;;;;;;:::i;:::-;11737:7:81::2;::::0;:28:::2;::::0;-1:-1:-1;;;11737:28:81;;::::2;::::0;::::2;12044:25:103::0;;;11705:28:81::2;::::0;-1:-1:-1;;;;;11737:7:81::2;::::0;:17:::2;::::0;12017:18:103;;11737:28:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11705:60;;11807:6;:28;;;11780:6;:24;;;:55;11776:226;;;11909:82;11924:9;11966:6;:24;;;11935:6;:28;;;:55;;;;:::i;11909:82::-;11851:140:::0;;-1:-1:-1;11851:140:81;-1:-1:-1;11851:140:81;-1:-1:-1;11776:226:81::2;1129:1:88;5491::81::1;11436:572:::0;;;;;:::o;8492:746::-;8715:23;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8715:23:81;8762:10;;:33;;-1:-1:-1;;;8762:33:81;;;;;12044:25:103;;;-1:-1:-1;;;;;8762:10:81;;;;:20;;12017:18:103;;8762:33:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:71;;;-1:-1:-1;8799:10:81;;:34;;-1:-1:-1;;;8799:34:81;;;;;12044:25:103;;;-1:-1:-1;;;;;8799:10:81;;;;:21;;12017:18:103;;8799:34:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8754:124;;;;-1:-1:-1;;;8754:124:81;;19926:2:103;8754:124:81;;;19908:21:103;19965:2;19945:18;;;19938:30;20004:34;19984:18;;;19977:62;-1:-1:-1;;;20055:18:103;;;20048:38;20103:19;;8754:124:81;19898:230:103;8754:124:81;3732:22;3753:1;3675:6;3732:22;:::i;:::-;8896:13;:35;;8888:83;;;;-1:-1:-1;;;8888:83:81;;23507:2:103;8888:83:81;;;23489:21:103;23546:2;23526:18;;;23519:30;23585:34;23565:18;;;23558:62;-1:-1:-1;;;23636:18:103;;;23629:33;23679:19;;8888:83:81;23479:225:103;8888:83:81;8989:241;;;;;;;;9019:11;8989:241;;;;9044:8;8989:241;;;;9066:13;8989:241;;;;9093:18;;8989:241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8989:241:81;;;-1:-1:-1;9125:15:81;8989:241;;;;;;;;;;;8982:248;8492:746;-1:-1:-1;;;;;;8492:746:81:o;7934:552::-;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;564:9:88::1;::::0;;;::::1;-1:-1:-1::0;;;;;564:9:88::1;:22;587:12;719:10:59::0;640:96;;587:12:88::1;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1::0;;;543:136:88::1;;;;;;;:::i;:::-;8130:10:81::2;::::0;:35:::2;::::0;-1:-1:-1;;;8130:35:81;;::::2;::::0;::::2;12044:25:103::0;;;8107:20:81::2;::::0;-1:-1:-1;;;;;8130:10:81::2;::::0;:23:::2;::::0;12017:18:103;;8130:35:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8183:10;::::0;:33:::2;::::0;-1:-1:-1;;;8183:33:81;;::::2;::::0;::::2;12044:25:103::0;;;8107:58:81;;-1:-1:-1;;;;;;8183:10:81::2;::::0;:21:::2;::::0;12017:18:103;;8183:33:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8175:72;;;::::0;-1:-1:-1;;;8175:72:81;;16104:2:103;8175:72:81::2;::::0;::::2;16086:21:103::0;16143:2;16123:18;;;16116:30;16182:28;16162:18;;;16155:56;16228:18;;8175:72:81::2;16076:176:103::0;8175:72:81::2;-1:-1:-1::0;;;;;8265:35:81;::::2;8257:81;;;::::0;-1:-1:-1;;;8257:81:81;;17228:2:103;8257:81:81::2;::::0;::::2;17210:21:103::0;17267:2;17247:18;;;17240:30;17306:34;17286:18;;;17279:62;-1:-1:-1;;;17357:18:103;;;17350:31;17398:19;;8257:81:81::2;17200:223:103::0;8257:81:81::2;8348:27;::::0;;;:15:::2;:27;::::0;;;;;;;;:51;;-1:-1:-1;;;;;;8348:51:81::2;-1:-1:-1::0;;;;;8348:51:81;::::2;::::0;;::::2;::::0;;;8415:64;;31471:25:103;;;31512:18;;;31505:60;8415:64:81::2;::::0;31444:18:103;8415:64:81::2;;;;;;;689:1:88;7934:552:81::0;;:::o;9999:742::-;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;564:9:88::1;::::0;;;::::1;-1:-1:-1::0;;;;;564:9:88::1;:22;587:12;719:10:59::0;640:96;;587:12:88::1;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1::0;;;543:136:88::1;;;;;;;:::i;:::-;10161:10:81::2;::::0;:42:::2;::::0;-1:-1:-1;;;10161:42:81;;10183:19;::::2;10161:42;::::0;::::2;12044:25:103::0;-1:-1:-1;;;;;10161:10:81;;::::2;::::0;:21:::2;::::0;12017:18:103;;10161:42:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10153:81;;;::::0;-1:-1:-1;;;10153:81:81;;18046:2:103;10153:81:81::2;::::0;::::2;18028:21:103::0;18085:2;18065:18;;;18058:30;18124:28;18104:18;;;18097:56;18170:18;;10153:81:81::2;18018:176:103::0;10153:81:81::2;10327:19:::0;::::2;10293:25;10321:26:::0;;;:5:::2;:26;::::0;;;;;;;:36;;::::2;::::0;;10327:7;;10367:36:::2;10327:7:::0;10321:26;10367:36:::2;:::i;:::-;-1:-1:-1::0;;10489:21:81;;10485:108:::2;;10532:19:::0;::::2;10526:26;::::0;;;:5:::2;:26;::::0;;;;;;;:36:::2;:56:::0;;;10485:108:::2;10712:21;10608:126:::0;;10648:19;::::2;32731:25:103::0;;10681:16:81::2;::::0;;::::2;;32772:18:103::0;;;32765:34;10712:21:81;;::::2;;32815:18:103::0;;;32808:34;;;;10608:126:81::2;::::0;32719:2:103;32704:18;10608:126:81::2;32686:162:103::0;19600:146:81;19679:23;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19679:23:81;19721:5;:18;19727:11;19721:18;;;;;;;;;;;19714:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19600:146;;;:::o;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;20737:2:103;3146:190:47;;;20719:21:103;20776:2;20756:18;;;20749:30;20815:34;20795:18;;;20788:62;-1:-1:-1;;;20866:18:103;;;20859:44;20920:19;;3146:190:47;20709:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;12708:36:103;;3531:14:47;;12696:2:103;12681:18;3531:14:47;12663:87:103;3457:99:47;1143:232:88;;:::o;7563:365:81:-;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;564:9:88::1;::::0;;;::::1;-1:-1:-1::0;;;;;564:9:88::1;:22;587:12;719:10:59::0;640:96;;587:12:88::1;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1::0;;;543:136:88::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7724:35:81;::::2;7716:81;;;::::0;-1:-1:-1;;;7716:81:81;;13311:2:103;7716:81:81::2;::::0;::::2;13293:21:103::0;13350:2;13330:18;;;13323:30;13389:34;13369:18;;;13362:62;-1:-1:-1;;;13440:18:103;;;13433:31;13481:19;;7716:81:81::2;13283:223:103::0;7716:81:81::2;7807:22;:46:::0;;-1:-1:-1;;;;;;7807:46:81::2;-1:-1:-1::0;;;;;7807:46:81;::::2;::::0;;::::2;::::0;;;7869:52:::2;::::0;9496:51:103;;;7869:52:81::2;::::0;9484:2:103;9469:18;7869:52:81::2;;;;;;;7563:365:::0;:::o;6329:1228::-;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;564:9:88::1;::::0;;;::::1;-1:-1:-1::0;;;;;564:9:88::1;:22;587:12;719:10:59::0;640:96;;587:12:88::1;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1::0;;;543:136:88::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6497:26:81;::::2;6489:71;;;::::0;-1:-1:-1;;;6489:71:81;;27151:2:103;6489:71:81::2;::::0;::::2;27133:21:103::0;;;27170:18;;;27163:30;27229:34;27209:18;;;27202:62;27281:18;;6489:71:81::2;27123:182:103::0;6489:71:81::2;6579:10;::::0;:31:::2;::::0;-1:-1:-1;;;6579:31:81;;::::2;::::0;::::2;12044:25:103::0;;;-1:-1:-1;;;;;6579:10:81;;::::2;::::0;:20:::2;::::0;12017:18:103;;6579:31:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6571:69;;;::::0;-1:-1:-1;;;6571:69:81;;21152:2:103;6571:69:81::2;::::0;::::2;21134:21:103::0;21191:2;21171:18;;;21164:30;21230:27;21210:18;;;21203:55;21275:18;;6571:69:81::2;21124:175:103::0;6571:69:81::2;6705:1;6666:26:::0;;;:15:::2;:26;::::0;;;;;-1:-1:-1;;;;;6666:26:81::2;6658:49:::0;6650:101:::2;;;::::0;-1:-1:-1;;;6650:101:81;;22275:2:103;6650:101:81::2;::::0;::::2;22257:21:103::0;22314:2;22294:18;;;22287:30;22353:34;22333:18;;;22326:62;-1:-1:-1;;;22404:18:103;;;22397:37;22451:19;;6650:101:81::2;22247:229:103::0;6650:101:81::2;6797:10;::::0;:34:::2;::::0;-1:-1:-1;;;6797:34:81;;::::2;::::0;::::2;12044:25:103::0;;;6774:20:81::2;::::0;-1:-1:-1;;;;;6797:10:81::2;::::0;:23:::2;::::0;12017:18:103;;6797:34:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6774:57;;6901:12;-1:-1:-1::0;;;;;6849:64:81::2;6874:9;-1:-1:-1::0;;;;;6857:37:81::2;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6849:64:81::2;;6841:125;;;::::0;-1:-1:-1;;;6841:125:81;;22683:2:103;6841:125:81::2;::::0;::::2;22665:21:103::0;22722:2;22702:18;;;22695:30;22761:34;22741:18;;;22734:62;-1:-1:-1;;;22812:18:103;;;22805:46;22868:19;;6841:125:81::2;22655:238:103::0;6841:125:81::2;6998:5;::::0;:38:::2;::::0;-1:-1:-1;;;6998:38:81;;::::2;::::0;::::2;12044:25:103::0;;;6977:18:81::2;::::0;-1:-1:-1;;;;;6998:5:81::2;::::0;:27:::2;::::0;12017:18:103;;6998:38:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7199:1;7159:27:::0;;;:15:::2;:27;::::0;;;;;6977:59;;-1:-1:-1;;;;;;7159:27:81::2;7151:50:::0;;:122:::2;;-1:-1:-1::0;7229:27:81::2;::::0;;;:15:::2;:27;::::0;;;;;-1:-1:-1;;;;;7221:52:81;;::::2;7229:27:::0;::::2;7221:52;7151:122;7143:200;;;::::0;-1:-1:-1;;;7143:200:81;;26734:2:103;7143:200:81::2;::::0;::::2;26716:21:103::0;26773:2;26753:18;;;26746:30;26812:34;26792:18;;;26785:62;-1:-1:-1;;;26863:18:103;;;26856:46;26919:19;;7143:200:81::2;26706:238:103::0;7143:200:81::2;7362:26;::::0;;;:15:::2;:26;::::0;;;;;;;:49;;-1:-1:-1;;;;;7362:49:81;::::2;-1:-1:-1::0;;;;;;7362:49:81;;::::2;::::0;::::2;::::0;;;7421:27;;;;;;;:50;;;;::::2;::::0;::::2;::::0;;;7487:63;;32381:25:103;;;32422:18;;;32415:34;;;32465:18;;32458:60;;;;7487:63:81::2;::::0;32369:2:103;32354:18;7487:63:81::2;;;;;;;689:1:88;;6329:1228:81::0;;:::o;17547:1736::-;17796:17;17827;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;4617:22:::1;::::0;-1:-1:-1;;;;;4617:22:81::1;4596:113;;;;-1:-1:-1::0;;;4596:113:81::1;;;;;;;:::i;:::-;5115:7:::2;::::0;:27:::2;::::0;-1:-1:-1;;;5115:27:81;;::::2;::::0;::::2;12044:25:103::0;;;17729:8:81;;5084:28:::2;::::0;-1:-1:-1;;;;;5115:7:81;;::::2;::::0;:17:::2;::::0;12017:18:103;;5115:27:81::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;::::0;;::::2;-1:-1:-1::0;;5115:27:81::2;::::0;::::2;;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;5084:58;;5221:1;-1:-1:-1::0;;;;;5173:50:81::2;:36;5191:6;:17;;;20068:7:::0;20094:27;;;:15;:27;;;;;;-1:-1:-1;;;;;20094:27:81;;19992:136;5173:36:::2;-1:-1:-1::0;;;;;5173:50:81::2;;;5152:127;;;;-1:-1:-1::0;;;5152:127:81::2;;;;;;;:::i;:::-;5583:38:::3;-1:-1:-1::0;;;5583:19:81::3;:38::i;:::-;-1:-1:-1::0;;;;;5567:54:81::3;719:10:59::0;-1:-1:-1;;;;;5567:54:81::3;;5546:135;;;;-1:-1:-1::0;;;5546:135:81::3;;;;;;;:::i;:::-;17939:7:::4;::::0;:27:::4;::::0;-1:-1:-1;;;17939:27:81;;::::4;::::0;::::4;12044:25:103::0;;;17908:28:81::4;::::0;-1:-1:-1;;;;;17939:7:81::4;::::0;:17:::4;::::0;12017:18:103;;17939:27:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;::::0;;::::4;-1:-1:-1::0;;17939:27:81::4;::::0;::::4;;::::0;::::4;::::0;;;::::4;::::0;::::4;:::i;:::-;17908:58;;18038:6;18015;:20;;;:29;;;;:::i;:::-;17997:6;:14;;;:47;;:118;;;-1:-1:-1::0;18061:20:81::4;::::0;::::4;::::0;:25;:53;::::4;;;;18108:6;18090;:14;;;:24;;18061:53;17976:222;;;::::0;-1:-1:-1;;;17976:222:81;;23911:2:103;17976:222:81::4;::::0;::::4;23893:21:103::0;23950:2;23930:18;;;23923:30;23989:34;23969:18;;;23962:62;24060:27;24040:18;;;24033:55;24105:19;;17976:222:81::4;23883:247:103::0;17976:222:81::4;18268:22;18293:36;18311:6;:17;;;20068:7:::0;20094:27;;;:15;:27;;;;;;-1:-1:-1;;;;;20094:27:81;;19992:136;18293:36:::4;18361:7;::::0;:26:::4;::::0;-1:-1:-1;;;18361:26:81;;::::4;::::0;::::4;12044:25:103::0;;;18268:61:81;;-1:-1:-1;18339:19:81::4;::::0;-1:-1:-1;;;;;18361:7:81;;::::4;::::0;:16:::4;::::0;12017:18:103;;18361:26:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18428:17;::::0;;::::4;::::0;18397:12:::4;18412:34:::0;;;:15:::4;:34:::0;;;;;;;;;18478:31;;-1:-1:-1;;;18478:31:81;;-1:-1:-1;;;;;9514:32:103;;;18478:31:81::4;::::0;::::4;9496:51:103::0;18339:48:81;;-1:-1:-1;18412:34:81;::::4;::::0;18513:6;;18412:34;;18478:15:::4;::::0;9469:18:103;;18478:31:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;18457:136;;;::::0;-1:-1:-1;;;18457:136:81;;17630:2:103;18457:136:81::4;::::0;::::4;17612:21:103::0;17669:2;17649:18;;;17642:30;17708:34;17688:18;;;17681:62;-1:-1:-1;;;17759:18:103;;;17752:45;17814:19;;18457:136:81::4;17602:237:103::0;18457:136:81::4;18624:46;::::0;-1:-1:-1;;;18624:46:81;;-1:-1:-1;;;;;9788:15:103;;;18624:46:81::4;::::0;::::4;9770:34:103::0;18664:4:81::4;9820:18:103::0;;;9813:43;18674:6:81;;18624:15;;::::4;::::0;::::4;::::0;9705:18:103;;18624:46:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;18603:148;;;::::0;-1:-1:-1;;;18603:148:81;;30212:2:103;18603:148:81::4;::::0;::::4;30194:21:103::0;30251:2;30231:18;;;30224:30;30290:34;30270:18;;;30263:62;-1:-1:-1;;;30341:18:103;;;30334:42;30393:19;;18603:148:81::4;30184:234:103::0;18603:148:81::4;18897:1;18885:13;;18920:6;18908:18;;18936:12;18951:81;18986:5;18993:14;19009:11;19022:9;18951:34;:81::i;:::-;18936:96;;19048:72;19081:14;19097:11;19110:9;19048:72;;;;;;;;:::i;:::-;;;;;;;;19138:7;19130:60;;;::::0;-1:-1:-1;;;19130:60:81;;25923:2:103;19130:60:81::4;::::0;::::4;25905:21:103::0;25962:2;25942:18;;;25935:30;26001:34;25981:18;;;25974:62;-1:-1:-1;;;26052:18:103;;;26045:38;26100:19;;19130:60:81::4;25895:230:103::0;19130:60:81::4;19237:17;::::0;;::::4;::::0;19206:70:::4;::::0;;32731:25:103;;;32772:18;;;32765:34;;;32815:18;;;32808:34;;;19206:70:81::4;::::0;32719:2:103;32704:18;19206:70:81::4;;;;;;;5691:1;;;;;4719::::2;;17547:1736:::0;;;;;:::o;6052:133::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6133:8:81::1;:6;:8::i;:::-;6156:22;::::0;::::1;::::0;;;::::1;6052:133::o:0;3687:67::-;3732:22;3753:1;3675:6;3732:22;:::i;:::-;3687:67;:::o;14122:1449::-;14379:17;14410:23;5436:8;1685:7:48;;-1:-1:-1;;;1685:7:48;;;;;1615:84;5436:8:81;5435:9;5427:54;;;;-1:-1:-1;;;5427:54:81;;;;;;;:::i;:::-;4617:22:::1;::::0;-1:-1:-1;;;;;4617:22:81::1;4596:113;;;;-1:-1:-1::0;;;4596:113:81::1;;;;;;;:::i;:::-;14304:9:::2;4804:18;4824:21:::0;4849:29:::2;4868:9;4849:18;:29::i;:::-;4803:75:::0;;-1:-1:-1;4803:75:81;-1:-1:-1;;;;;;4909:27:81;::::2;4888:104;;;;-1:-1:-1::0;;;4888:104:81::2;;;;;;;:::i;:::-;-1:-1:-1::0;;;828:27:88::3;848:6;828:19;:27::i;:::-;-1:-1:-1::0;;;;;811:44:88::3;819:4;-1:-1:-1::0;;;;;811:44:88::3;;790:119;;;;-1:-1:-1::0;;;790:119:88::3;;;;;;;:::i;:::-;1023:37;-1:-1:-1::0;;;1023:19:88::3;:37::i;:::-;-1:-1:-1::0;;;;;1007:53:88::3;719:10:59::0;-1:-1:-1;;;;;1007:53:88::3;;986:133;;;;-1:-1:-1::0;;;986:133:88::3;;;;;;;:::i;:::-;14493:7:81::4;::::0;:30:::4;::::0;-1:-1:-1;;;14493:30:81;;::::4;::::0;::::4;12044:25:103::0;;;14458:32:81::4;::::0;-1:-1:-1;;;;;14493:7:81::4;::::0;:19:::4;::::0;12017:18:103;;14493:30:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;::::0;;::::4;-1:-1:-1::0;;14493:30:81::4;::::0;::::4;;::::0;::::4;::::0;;;::::4;::::0;::::4;:::i;:::-;14458:65;;14533:12;14548:37;14566:8;:18;;;14548:17;:37::i;:::-;14533:52;;14596:18;14616:29:::0;14649::::4;14668:9;14649:18;:29::i;:::-;14595:83;;;;14689:28;14721:7;;;;;;;;;-1:-1:-1::0;;;;;14721:7:81::4;-1:-1:-1::0;;;;;14721:17:81::4;;14739:9;14750:8;14721:38;;;;;;;;;;;;;;;12254:25:103::0;;;12310:2;12295:18;;12288:34;12242:2;12227:18;;12209:119;14721:38:81::4;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;::::0;;::::4;-1:-1:-1::0;;14721:38:81::4;::::0;::::4;;::::0;::::4;::::0;;;::::4;::::0;::::4;:::i;:::-;14832:13;::::0;;::::4;::::0;14790:38;;-1:-1:-1;;;14790:38:81;;-1:-1:-1;;;;;9514:32:103;;;14790:38:81::4;::::0;::::4;9496:51:103::0;14689:70:81;;-1:-1:-1;14832:13:81;;14790:15;::::4;::::0;::::4;::::0;9469:18:103;;14790:38:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:55;;14769:150;;;::::0;-1:-1:-1;;;14769:150:81;;25099:2:103;14769:150:81::4;::::0;::::4;25081:21:103::0;25138:2;25118:18;;;25111:30;25177:34;25157:18;;;25150:62;-1:-1:-1;;;25228:18:103;;;25221:45;25283:19;;14769:150:81::4;25071:237:103::0;14769:150:81::4;15007:13;::::0;;::::4;::::0;14950:53;;-1:-1:-1;;;14950:53:81;;-1:-1:-1;;;;;9788:15:103;;;14950:53:81::4;::::0;::::4;9770:34:103::0;14997:4:81::4;9820:18:103::0;;;9813:43;14950:15:81;::::4;::::0;::::4;::::0;9705:18:103;;14950:53:81::4;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:70;;14929:158;;;::::0;-1:-1:-1;;;14929:158:81;;21866:2:103;14929:158:81::4;::::0;::::4;21848:21:103::0;21905:2;21885:18;;;21878:30;21944:34;21924:18;;;21917:62;-1:-1:-1;;;21995:18:103;;;21988:38;22043:19;;14929:158:81::4;21838:230:103::0;14929:158:81::4;15140:12;15155:95;15190:5;15197:21;15220:8;:14;;;15236:6;:13;;;15155:34;:95::i;:::-;15301:13;::::0;;::::4;::::0;15382:14;;15330:82;;15272:1:::4;::::0;-1:-1:-1;15301:13:81;;-1:-1:-1;15140:110:81;;-1:-1:-1;15330:82:81::4;::::0;::::4;::::0;15359:21;;15301:13;;15330:82:::4;:::i;:::-;;;;;;;;15430:7;15422:56;;;::::0;-1:-1:-1;;;15422:56:81;;24694:2:103;15422:56:81::4;::::0;::::4;24676:21:103::0;24733:2;24713:18;;;24706:30;24772:34;24752:18;;;24745:62;-1:-1:-1;;;24823:18:103;;;24816:34;24867:19;;15422:56:81::4;24666:226:103::0;15422:56:81::4;15534:14:::0;;15550:13:::4;::::0;;::::4;::::0;15494:70;;31778:25:103;;;-1:-1:-1;;;;;31839:32:103;;;31834:2;31819:18;;31812:60;31888:18;;;31881:34;15494:70:81;::::4;::::0;;;;31766:2:103;15494:70:81;;::::4;1129:1:88;;;;;;5002::81::3;4719::::2;;;14122:1449:::0;;;;;:::o;21201:436::-;21394:7;;:30;;-1:-1:-1;;;21394:30:81;;;;;12044:25:103;;;21294:18:81;;;;;;-1:-1:-1;;;;;21394:7:81;;:19;;12017:18:103;;21394:30:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21394:30:81;;;;;;;;;;;;:::i;:::-;21447:5;;21475:18;;;;21447:47;;-1:-1:-1;;;21447:47:81;;;;;12044:25:103;;;;21475:18:81;;-1:-1:-1;;;;;;21447:5:81;;:27;;12017:18:103;;21447:47:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21434:60;;21525:1;21512:10;:14;21504:65;;;;-1:-1:-1;;;21504:65:81;;23100:2:103;21504:65:81;;;23082:21:103;23139:2;23119:18;;;23112:30;23178:34;23158:18;;;23151:62;-1:-1:-1;;;23229:18:103;;;23222:36;23275:19;;21504:65:81;23072:228:103;21504:65:81;-1:-1:-1;;21603:27:81;;;;:15;:27;;;;;;21619:10;;-1:-1:-1;;;;;21603:27:81;;;;-1:-1:-1;21201:436:81:o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;12044:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;12017:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;14876:2:103;1703:113:88;;;14858:21:103;14915:2;14895:18;;;14888:30;14954:34;14934:18;;;14927:62;-1:-1:-1;;;15005:18:103;;;14998:35;15050:19;;1703:113:88;14848:227:103;913:1422:90;1068:12;1162:5;-1:-1:-1;;;;;1202:24:90;;;;:28;;;1245:18;;;;:39;;-1:-1:-1;;;;;;1267:17:90;;;1245:39;:59;;;;1289:15;1288:16;1245:59;1241:187;;;1325:66;;;11021:14:103;;11014:22;10996:41;;-1:-1:-1;;;;;11111:15:103;;;11106:2;11091:18;;11084:43;11163:15;;11143:18;;;11136:43;1325:66:90;;;;;;;10984:2:103;1325:66:90;;;1412:5;1405:12;;;;;;1241:187;1499:21;;-1:-1:-1;;;1499:21:90;;-1:-1:-1;;;;;9514:32:103;;;1499:21:90;;;9496:51:103;1481:15:90;;1499;;;;;;9469:18:103;;1499:21:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1550:36;;-1:-1:-1;;;1550:36:90;;-1:-1:-1;;;;;9788:15:103;;;1550:36:90;;;9770:34:103;1580:4:90;9820:18:103;;;9813:43;1481:39:90;;-1:-1:-1;1530:17:90;;1550:15;;;;;9705:18:103;;1550:36:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1530:56;;1610:5;1600:7;:15;:36;;;;1631:5;1619:9;:17;1600:36;1596:157;;;1657:59;;;12254:25:103;;;12310:2;12295:18;;12288:34;;;1657:59:90;;12227:18:103;1657:59:90;;;;;;;1737:5;1730:12;;;;;;;;1596:157;1884:16;1902:17;1931:5;-1:-1:-1;;;;;1923:19:90;1996:10;2025:4;2048:2;2069:5;1956:119;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1956:119:90;;;;;;;;;;;1923:153;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1883:193;;;;2097:11;:118;;;;-1:-1:-1;2134:11:90;;:16;2113:101;;;;2168:4;:11;2183:2;2168:17;:45;;;;;2200:4;2189:24;;;;;;;;;;;;:::i;:::-;2087:128;;2231:7;2226:103;;2259:59;2287:11;2300:4;:11;2313:4;2259:59;;;;;;;;:::i;:::-;;;;;;;;2226:103;913:1422;;;;;;;;;;;;;:::o;2433:117:48:-;1486:16;:14;:16::i;:::-;2491:7:::1;:15:::0;;-1:-1:-1;;;;2491:15:48::1;::::0;;2521:22:::1;719:10:59::0;2530:12:48::1;2521:22;::::0;-1:-1:-1;;;;;9514:32:103;;;9496:51;;9484:2;9469:18;2521:22:48::1;;;;;;;2433:117::o:0;20529:665:81:-;20708:26;;;;:33;20671:17;;20708:37;20704:126;;20761:58;;-1:-1:-1;;;20761:58:81;;19509:2:103;20761:58:81;;;19491:21:103;19548:2;19528:18;;;19521:30;19587:34;19567:18;;;19560:62;-1:-1:-1;;;19638:18:103;;;19631:46;19694:19;;20761:58:81;19481:238:103;20704:126:81;-1:-1:-1;20884:16:81;;;;20952:21;;;;:25;20948:122;;3675:6;21031;21007:7;:21;;;:30;;;;:::i;:::-;21006:53;;;;:::i;:::-;20993:66;;;;:::i;:::-;;;20948:122;21151:6;21139:9;:18;21131:56;;;;-1:-1:-1;;;21131:56:81;;28730:2:103;21131:56:81;;;28712:21:103;28769:2;28749:18;;;28742:30;28808:27;28788:18;;;28781:55;28853:18;;21131:56:81;28702:175:103;21131:56:81;20529:665;;;;:::o;5705:341::-;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;27916:2:103;4880:69:47;;;27898:21:103;27955:2;27935:18;;;27928:30;27994:34;27974:18;;;27967:62;-1:-1:-1;;;28045:18:103;;;28038:41;28096:19;;4880:69:47;27888:233:103;4880:69:47;5805:29:81::1;-1:-1:-1::0;;;5805:19:81::1;:29::i;:::-;5778:7;:57:::0;;-1:-1:-1;;;;;;5778:57:81::1;-1:-1:-1::0;;;;;5778:57:81;;;::::1;::::0;;;::::1;::::0;;5878:32:::1;-1:-1:-1::0;;;5878:19:81::1;:32::i;:::-;5845:10;:66:::0;;-1:-1:-1;;;;;;5845:66:81::1;-1:-1:-1::0;;;;;5845:66:81;;;::::1;::::0;;;::::1;::::0;;5948:29:::1;-1:-1:-1::0;;;5948:19:81::1;:29::i;:::-;5921:7;:57:::0;;-1:-1:-1;;;;;;5921:57:81::1;-1:-1:-1::0;;;;;5921:57:81;;;::::1;::::0;;;::::1;::::0;;6011:27:::1;-1:-1:-1::0;;;6011:19:81::1;:27::i;:::-;5988:5;:51:::0;;-1:-1:-1;;;;;;5988:51:81::1;-1:-1:-1::0;;;;;5988:51:81;;;::::1;::::0;;;::::1;::::0;;5705:341::o;2186:115:48:-;1239:19;:17;:19::i;:::-;2255:4:::1;2245:14:::0;;-1:-1:-1;;;;2245:14:48::1;-1:-1:-1::0;;;2245:14:48::1;::::0;;2274:20:::1;2281:12;719:10:59::0;640:96;;1945:106:48;2011:8;1685:7;;-1:-1:-1;;;1685:7:48;;;;;1615:84;2011:8;2003:41;;;;-1:-1:-1;;;2003:41:48;;14121:2:103;2003:41:48;;;14103:21:103;14160:2;14140:18;;;14133:30;-1:-1:-1;;;14179:18:103;;;14172:50;14239:18;;2003:41:48;14093:170:103;2003:41:48;1945:106::o;1767:::-;1837:8;1685:7;;-1:-1:-1;;;1685:7:48;;;;;1615:84;1837:8;1836:9;1828:38;;;;-1:-1:-1;;;1828:38:48;;19164:2:103;1828:38:48;;;19146:21:103;19203:2;19183:18;;;19176:30;-1:-1:-1;;;19222:18:103;;;19215:46;19278:18;;1828:38:48;19136:166:103;14:512;;120:3;113:4;105:6;101:17;97:27;87:2;;142:5;135;128:20;87:2;175:6;169:13;201:18;197:2;194:26;191:2;;;223:18;;:::i;:::-;267:55;310:2;291:13;;-1:-1:-1;;287:27:103;316:4;283:38;267:55;:::i;:::-;347:2;338:7;331:19;393:3;386:4;381:2;373:6;369:15;365:26;362:35;359:2;;;414:5;407;400:20;359:2;431:64;492:2;485:4;476:7;472:18;465:4;457:6;453:17;431:64;:::i;531:156::-;619:13;;661:1;651:12;;641:2;;677:1;674;667:12;692:160;784:13;;826:1;816:12;;806:2;;842:1;839;832:12;857:257;;969:2;957:9;948:7;944:23;940:32;937:2;;;990:6;982;975:22;937:2;1034:9;1021:23;1053:31;1078:5;1053:31;:::i;:::-;1103:5;927:187;-1:-1:-1;;;927:187:103:o;1119:261::-;;1242:2;1230:9;1221:7;1217:23;1213:32;1210:2;;;1263:6;1255;1248:22;1210:2;1300:9;1294:16;1319:31;1344:5;1319:31;:::i;1385:297::-;;1505:2;1493:9;1484:7;1480:23;1476:32;1473:2;;;1526:6;1518;1511:22;1473:2;1563:9;1557:16;1616:5;1609:13;1602:21;1595:5;1592:32;1582:2;;1643:6;1635;1628:22;1687:190;;1799:2;1787:9;1778:7;1774:23;1770:32;1767:2;;;1820:6;1812;1805:22;1767:2;-1:-1:-1;1848:23:103;;1757:120;-1:-1:-1;1757:120:103:o;1882:258::-;;;2011:2;1999:9;1990:7;1986:23;1982:32;1979:2;;;2032:6;2024;2017:22;1979:2;-1:-1:-1;;2060:23:103;;;2130:2;2115:18;;;2102:32;;-1:-1:-1;1969:171:103:o;2430:1219::-;;2577:2;2565:9;2556:7;2552:23;2548:32;2545:2;;;2598:6;2590;2583:22;2545:2;2636:9;2630:16;2665:18;2706:2;2698:6;2695:14;2692:2;;;2727:6;2719;2712:22;2692:2;2770:6;2759:9;2755:22;2745:32;;2796:6;2836:2;2831;2822:7;2818:16;2814:25;2811:2;;;2857:6;2849;2842:22;2811:2;2888:19;2904:2;2888:19;:::i;:::-;2875:32;;2936:2;2930:9;2923:5;2916:24;2986:2;2982;2978:11;2972:18;2967:2;2960:5;2956:14;2949:42;3037:2;3033;3029:11;3023:18;3018:2;3011:5;3007:14;3000:42;3074:51;3121:2;3117;3113:11;3074:51;:::i;:::-;3069:2;3062:5;3058:14;3051:75;3165:3;3161:2;3157:12;3151:19;3195:2;3185:8;3182:16;3179:2;;;3216:6;3208;3201:22;3179:2;3258:55;3305:7;3294:8;3290:2;3286:17;3258:55;:::i;:::-;3252:3;3241:15;;3234:80;-1:-1:-1;3361:3:103;3353:12;;;3347:19;3330:15;;;3323:44;3414:3;3406:12;;;3400:19;3383:15;;;3376:44;3467:3;3459:12;;;3453:19;3436:15;;;3429:44;3492:3;3533:11;;;3527:18;3511:14;;;3504:42;3565:3;3606:11;;;3600:18;3584:14;;;3577:42;;;;-1:-1:-1;3245:5:103;2535:1114;-1:-1:-1;;;2535:1114:103:o;3654:426::-;;3802:2;3790:9;3781:7;3777:23;3773:32;3770:2;;;3823:6;3815;3808:22;3770:2;3868:9;3855:23;3901:18;3893:6;3890:30;3887:2;;;3938:6;3930;3923:22;3887:2;3966:22;;4022:3;4004:16;;;4000:26;3997:2;;;4044:6;4036;4029:22;4085:1025;;4234:2;4222:9;4213:7;4209:23;4205:32;4202:2;;;4255:6;4247;4240:22;4202:2;4293:9;4287:16;4322:18;4363:2;4355:6;4352:14;4349:2;;;4384:6;4376;4369:22;4349:2;4412:22;;;;4468:4;4450:16;;;4446:27;4443:2;;;4491:6;4483;4476:22;4443:2;4522:21;4538:4;4522:21;:::i;:::-;4573:2;4567:9;4585:33;4610:7;4585:33;:::i;:::-;4627:22;;4695:2;4687:11;;;4681:18;4665:14;;;4658:42;4732:55;4783:2;4775:11;;4732:55;:::i;:::-;4727:2;4720:5;4716:14;4709:79;4827:2;4823;4819:11;4813:18;4856:2;4846:8;4843:16;4840:2;;;4877:6;4869;4862:22;4840:2;4918:55;4965:7;4954:8;4950:2;4946:17;4918:55;:::i;:::-;4913:2;4906:5;4902:14;4895:79;;5021:3;5017:2;5013:12;5007:19;5001:3;4994:5;4990:15;4983:44;5074:3;5070:2;5066:12;5060:19;5054:3;5047:5;5043:15;5036:44;5099:5;5089:15;;;;;4192:918;;;;:::o;5115:1005::-;;5262:2;5250:9;5241:7;5237:23;5233:32;5230:2;;;5283:6;5275;5268:22;5230:2;5321:9;5315:16;5350:18;5391:2;5383:6;5380:14;5377:2;;;5412:6;5404;5397:22;5377:2;5440:22;;;;5496:4;5478:16;;;5474:27;5471:2;;;5519:6;5511;5504:22;5471:2;5550:21;5566:4;5550:21;:::i;:::-;5600:2;5594:9;5587:5;5580:24;5642:2;5638;5634:11;5628:18;5677:1;5668:7;5665:14;5655:2;;5698:6;5690;5683:22;5655:2;5734;5723:14;;5716:31;5793:2;5785:11;;;5779:18;5763:14;;;5756:42;5837:2;5829:11;;5823:18;5853:16;;;5850:2;;;5887:6;5879;5872:22;6125:841;;6250:3;6294:2;6282:9;6273:7;6269:23;6265:32;6262:2;;;6315:6;6307;6300:22;6262:2;6346:19;6362:2;6346:19;:::i;:::-;6333:32;;6388:53;6431:9;6388:53;:::i;:::-;6381:5;6374:68;6495:2;6484:9;6480:18;6474:25;6469:2;6462:5;6458:14;6451:49;6553:2;6542:9;6538:18;6532:25;6527:2;6520:5;6516:14;6509:49;6611:2;6600:9;6596:18;6590:25;6585:2;6578:5;6574:14;6567:49;6670:3;6659:9;6655:19;6649:26;6643:3;6636:5;6632:15;6625:51;6730:3;6719:9;6715:19;6709:26;6703:3;6696:5;6692:15;6685:51;6790:3;6779:9;6775:19;6769:26;6763:3;6756:5;6752:15;6745:51;6850:3;6839:9;6835:19;6829:26;6823:3;6816:5;6812:15;6805:51;6875:3;6931:2;6920:9;6916:18;6910:25;6905:2;6898:5;6894:14;6887:49;;6955:5;6945:15;;;6230:736;;;;:::o;7166:194::-;;7289:2;7277:9;7268:7;7264:23;7260:32;7257:2;;;7310:6;7302;7295:22;7257:2;-1:-1:-1;7338:16:103;;7247:113;-1:-1:-1;7247:113:103:o;7365:325::-;;;7494:2;7482:9;7473:7;7469:23;7465:32;7462:2;;;7515:6;7507;7500:22;7462:2;7556:9;7543:23;7533:33;;7616:2;7605:9;7601:18;7588:32;7629:31;7654:5;7629:31;:::i;:::-;7679:5;7669:15;;;7452:238;;;;;:::o;7695:258::-;;;7824:2;7812:9;7803:7;7799:23;7795:32;7792:2;;;7845:6;7837;7830:22;7958:846;;;;;;8140:3;8128:9;8119:7;8115:23;8111:33;8108:2;;;8162:6;8154;8147:22;8108:2;8203:9;8190:23;8180:33;;8260:2;8249:9;8245:18;8232:32;8222:42;;8311:2;8300:9;8296:18;8283:32;8273:42;;8366:2;8355:9;8351:18;8338:32;8389:18;8430:2;8422:6;8419:14;8416:2;;;8451:6;8443;8436:22;8416:2;8494:6;8483:9;8479:22;8469:32;;8539:7;8532:4;8528:2;8524:13;8520:27;8510:2;;8566:6;8558;8551:22;8510:2;8611;8598:16;8637:2;8629:6;8626:14;8623:2;;;8658:6;8650;8643:22;8623:2;8708:7;8703:2;8694:6;8690:2;8686:15;8682:24;8679:37;8676:2;;;8734:6;8726;8719:22;8676:2;8098:706;;;;-1:-1:-1;8098:706:103;;-1:-1:-1;8770:2:103;8762:11;;8792:6;8098:706;-1:-1:-1;;;8098:706:103:o;8809:257::-;;8888:5;8882:12;8915:6;8910:3;8903:19;8931:63;8987:6;8980:4;8975:3;8971:14;8964:4;8957:5;8953:16;8931:63;:::i;:::-;9048:2;9027:15;-1:-1:-1;;9023:29:103;9014:39;;;;9055:4;9010:50;;8858:208;-1:-1:-1;;8858:208:103:o;9071:274::-;;9238:6;9232:13;9254:53;9300:6;9295:3;9288:4;9280:6;9276:17;9254:53;:::i;:::-;9323:16;;;;;9208:137;-1:-1:-1;;9208:137:103:o;9867:375::-;-1:-1:-1;;;;;10125:15:103;;;10107:34;;10177:15;;;;10172:2;10157:18;;10150:43;10224:2;10209:18;;10202:34;;;;10057:2;10042:18;;10024:218::o;10247:356::-;-1:-1:-1;;;;;10502:32:103;;;;10484:51;;10571:25;10566:2;10551:18;;10544:53;10472:2;10457:18;;10439:164::o;11190:369::-;;11401:6;11394:14;11387:22;11376:9;11369:41;11446:6;11441:2;11430:9;11426:18;11419:34;11489:2;11484;11473:9;11469:18;11462:30;11509:44;11549:2;11538:9;11534:18;11526:6;11509:44;:::i;:::-;11501:52;11359:200;-1:-1:-1;;;;;11359:200:103:o;13511:403::-;13713:2;13695:21;;;13752:2;13732:18;;;13725:30;13791:34;13786:2;13771:18;;13764:62;-1:-1:-1;;;13857:2:103;13842:18;;13835:37;13904:3;13889:19;;13685:229::o;15080:398::-;15282:2;15264:21;;;15321:2;15301:18;;;15294:30;15360:34;15355:2;15340:18;;15333:62;-1:-1:-1;;;15426:2:103;15411:18;;15404:32;15468:3;15453:19;;15254:224::o;16257:403::-;16459:2;16441:21;;;16498:2;16478:18;;;16471:30;16537:34;16532:2;16517:18;;16510:62;-1:-1:-1;;;16603:2:103;16588:18;;16581:37;16650:3;16635:19;;16431:229::o;16665:356::-;16867:2;16849:21;;;16886:18;;;16879:30;16945:34;16940:2;16925:18;;16918:62;17012:2;16997:18;;16839:182::o;24135:352::-;24337:2;24319:21;;;24376:2;24356:18;;;24349:30;24415;24410:2;24395:18;;24388:58;24478:2;24463:18;;24309:178::o;25313:403::-;25515:2;25497:21;;;25554:2;25534:18;;;25527:30;25593:34;25588:2;25573:18;;25566:62;-1:-1:-1;;;25659:2:103;25644:18;;25637:37;25706:3;25691:19;;25487:229::o;27310:399::-;27512:2;27494:21;;;27551:2;27531:18;;;27524:30;27590:34;27585:2;27570:18;;27563:62;-1:-1:-1;;;27656:2:103;27641:18;;27634:33;27699:3;27684:19;;27484:225::o;28126:397::-;28328:2;28310:21;;;28367:2;28347:18;;;28340:30;28406:34;28401:2;28386:18;;28379:62;-1:-1:-1;;;28472:2:103;28457:18;;28450:31;28513:3;28498:19;;28300:223::o;30423:687::-;;30620:2;30609:9;30602:21;30665:6;30659:13;30654:2;30643:9;30639:18;30632:41;30727:2;30719:6;30715:15;30709:22;30704:2;30693:9;30689:18;30682:50;30786:2;30778:6;30774:15;30768:22;30763:2;30752:9;30748:18;30741:50;30838:2;30830:6;30826:15;30820:22;30879:4;30873:3;30862:9;30858:19;30851:33;30907:51;30953:3;30942:9;30938:19;30924:12;30907:51;:::i;:::-;30893:65;;31013:3;31005:6;31001:16;30995:23;30989:3;30978:9;30974:19;30967:52;31075:3;31067:6;31063:16;31057:23;31050:4;31039:9;31035:20;31028:53;31098:6;31090:14;;;30592:518;;;;:::o;32853:275::-;32924:2;32918:9;32989:2;32970:13;;-1:-1:-1;;32966:27:103;32954:40;;33024:18;33009:34;;33045:22;;;33006:62;33003:2;;;33071:18;;:::i;:::-;33107:2;33100:22;32898:230;;-1:-1:-1;32898:230:103:o;33264:128::-;;33335:1;33331:6;33328:1;33325:13;33322:2;;;33341:18;;:::i;:::-;-1:-1:-1;33377:9:103;;33312:80::o;33397:217::-;;33463:1;33453:2;;-1:-1:-1;;;33488:31:103;;33542:4;33539:1;33532:15;33570:4;33495:1;33560:15;33453:2;-1:-1:-1;33599:9:103;;33443:171::o;33619:168::-;;33725:1;33721;33717:6;33713:14;33710:1;33707:21;33702:1;33695:9;33688:17;33684:45;33681:2;;;33732:18;;:::i;:::-;-1:-1:-1;33772:9:103;;33671:116::o;33792:125::-;;33860:1;33857;33854:8;33851:2;;;33865:18;;:::i;:::-;-1:-1:-1;33902:9:103;;33841:76::o;33922:146::-;33984:78;34002:3;33995:5;33992:14;33984:78;;;34058:1;34044:16;;34029:1;34018:13;33984:78;;34073:1575;34179:18;34174:3;34171:27;34168:2;;;34201:18;;:::i;:::-;34244:38;34276:4;34270:11;34244:38;:::i;:::-;34308:1;34337:9;34373:2;34368:3;34365:11;34406:2;34398:6;34395:14;34428:2;34424;34421:10;34418:2;;;33133:126;33198:17;;;33248:4;33232:21;;34454:49;;34418:2;34525;34522;;;34604;34599;34594:3;34590:12;34586:21;34573:11;34569:39;34632:2;34627:3;34624:11;34621:2;;;-1:-1:-1;34653:11:103;34621:2;34679:83;34757:2;34752;34744:6;34740:15;34736:24;34723:11;34719:42;34706:11;34679:83;:::i;:::-;;34522:2;;34788;34804:1;34799:591;;;;35434:1;35421:14;;35451:3;35448:2;;;35516:9;35511:3;35507:19;35494:33;35485:42;;35448:2;36453:1;36449:11;;-1:-1:-1;;36429:1:103;36425:11;;36421:24;36417:29;36407:40;;36404:57;35561:4;35554:78;34781:861;;34799:591;-1:-1:-1;;34835:17:103;;;-1:-1:-1;34879:11:103;34912:9;34934:229;34948:7;34945:1;34942:14;34934:229;;;35037:19;;;35024:33;35009:49;;35144:4;35129:20;;;;35097:1;35085:14;;;;34964:12;34934:229;;;34938:3;35191;35182:7;35179:16;35176:2;;;35258:19;;;35245:33;-1:-1:-1;;35292:1:103;35304:2;35295:12;;35288:20;35284:33;35280:38;35241:78;35226:94;;35176:2;;35377:1;35373;35368:3;35364:11;35360:19;35354:4;35347:33;34781:861;;;;;;34158:1490;;;:::o;35653:258::-;35725:1;35735:113;35749:6;35746:1;35743:13;35735:113;;;35825:11;;;35819:18;35806:11;;;35799:39;35771:2;35764:10;35735:113;;;35866:6;35863:1;35860:13;35857:2;;;35901:1;35892:6;35887:3;35883:16;35876:27;35857:2;;35706:205;;;:::o;35916:380::-;36001:1;35991:12;;36048:1;36038:12;;;36059:2;;36113:4;36105:6;36101:17;36091:27;;36059:2;36166;36158:6;36155:14;36135:18;36132:38;36129:2;;;36212:10;36207:3;36203:20;36200:1;36193:31;36247:4;36244:1;36237:15;36275:4;36272:1;36265:15;36129:2;;35971:325;;;:::o;36472:127::-;36533:10;36528:3;36524:20;36521:1;36514:31;36564:4;36561:1;36554:15;36588:4;36585:1;36578:15;36604:127;36665:10;36660:3;36656:20;36653:1;36646:31;36696:4;36693:1;36686:15;36720:4;36717:1;36710:15;36736:947;36917:5;36904:19;36898:4;36891:33;36978:2;36971:5;36967:14;36954:28;36950:1;36944:4;36940:12;36933:50;37037:2;37030:5;37026:14;37013:28;37009:1;37003:4;36999:12;36992:50;37101:2;37094:5;37090:14;37077:28;37184:2;37180:7;37172:5;37156:14;37152:26;37148:40;37128:18;37124:65;37114:2;;37203:1;37200;37193:12;37114:2;37228:30;;37281:18;;37322;37311:30;;37308:2;;;37354:1;37351;37344:12;37308:2;37391;37385:4;37381:13;37367:27;;37438:6;37422:14;37418:27;37410:6;37406:40;37403:2;;;37459:1;37456;37449:12;37403:2;37472:85;37550:6;37542;37538:1;37532:4;37528:12;37472:85;:::i;:::-;;;37611:3;37604:5;37600:15;37587:29;37583:1;37577:4;37573:12;37566:51;37671:3;37664:5;37660:15;37647:29;37643:1;37637:4;37633:12;37626:51;36881:802;;:::o;37688:131::-;-1:-1:-1;;;;;37763:31:103;;37753:42;;37743:2;;37809:1;37806;37799:12;37743:2;37733:86;:::o"},"methodIdentifiers":{"FRACTIONAL_FEE_MAX()":"f964690d","FRACTION_FULL_UNIT()":"b79f5eab","calculateFee(uint256,uint256)":"34e73122","createFeeSpecification(uint256,uint256,uint256,bytes)":"62f0ab55","getComponentToken(uint256)":"038696bb","getFeeSpecification(uint256)":"a434f0ad","getFractionFullUnit()":"8ccf5ca2","getInstanceWallet()":"a44330c4","getRiskpoolWallet(uint256)":"49081637","initialize(address)":"c4d66de8","paused()":"5c975abb","processCapital(uint256,uint256)":"26debdaa","processPayout(bytes32,uint256)":"fe64372b","processPremium(bytes32)":"5ecc078e","processPremium(bytes32,uint256)":"02108268","processWithdrawal(uint256,uint256)":"d9358075","resume()":"046f7da2","setCapitalFees((uint256,uint256,uint256,bytes,uint256,uint256))":"8ca946aa","setInstanceWallet(address)":"cab2504d","setPremiumFees((uint256,uint256,uint256,bytes,uint256,uint256))":"01132a7f","setProductToken(uint256,address)":"cc9cf8cd","setRiskpoolWallet(uint256,address)":"86039aed","suspend()":"e6400bbe"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callSuccess\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"returnDataLength\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"LogTransferHelperCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"tokenIsContract\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"LogTransferHelperInputValidation1Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"}],\"name\":\"LogTransferHelperInputValidation2Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalFeesSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryCapitalTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"instanceWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryFeesTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"LogTreasuryInstanceWalletSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPayoutTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumFeesSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryPremiumTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"LogTreasuryProductTokenSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LogTreasuryResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"LogTreasuryRiskpoolWalletSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LogTreasurySuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryWithdrawalProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTreasuryWithdrawalTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FRACTIONAL_FEE_MAX\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FRACTION_FULL_UNIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calculateFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"}],\"name\":\"createFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFractionFullUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"capitalAmount\",\"type\":\"uint256\"}],\"name\":\"processCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netCapitalAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPayoutAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"processPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremiumAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processWithdrawal\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setCapitalFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instanceWalletAddress\",\"type\":\"address\"}],\"name\":\"setInstanceWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setPremiumFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"setProductToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"}],\"name\":\"setRiskpoolWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspend\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"The smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts. The contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the \\\"etherisc/gif-interface\\\" and \\\"openzeppelin/contracts\\\" libraries. The contract defines several state variables, including: - FRACTION_FULL_UNIT: a constant representing the full unit value (10^18). - FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%). - event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation. - event LogTransferHelperInputValidation2Failed: an event that logs a failed input validation. - event LogTransferHelperCallFailed: an event that logs a failed external call. - _instanceWalletAddress: a private variable representing the address of the instance wallet. - _riskpoolWallet: a mapping of riskpool IDs to wallet addresses. - _fees: a mapping of component IDs to FeeSpecification structs. - _componentToken: a mapping of product IDs/riskpool IDs to ERC20 token addresses. - _bundle: an instance of the BundleController contract. - _component: an instance of the ComponentController contract. - _policy: an instance of the PolicyController contract. - _pool: an instance of the PoolController contract. The contract includes several modifiers that enforce certain conditions on function execution, such as the instanceWalletDefined modifier, which requires the instance wallet address to be defined; the riskpoolWalletDefinedForProcess modifier, which requires the riskpool wallet address to be defined for a given process ID; the riskpoolWalletDefinedForBundle modifier, which requires the riskpool wallet address to be defined for a given bundle ID; the whenNotSuspended modifier, which requires the contract to not be paused; and the onlyRiskpoolService modifier, which restricts access to the RiskpoolService contract. The contract contains various functions for managing the treasury, such as setting the product token address, setting the instance wallet address, setting the riskpool wallet address, creating fee specifications, and setting premium and capital fees for components. There are also functions for suspending and resuming the treasury contract. The contract includes a function to calculate the fee amount and net amount for a given component ID and amount. It also includes functions to process premium payments for policies, either for the remaining premium amount or for a specific amount. Overall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/modules/TreasuryModule.sol\":\"TreasuryModule\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/modules/TreasuryModule.sol\":{\"keccak256\":\"0x5b816938607e52b8e3811a426b7c31377109b12c665d3889bdc0fc38b5d1039c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81900732664f85ed367e3c78020bc2bd78e8521dd928f3fd5bcd39ce0ce1dcf0\",\"dweb:/ipfs/QmPcRYLq6SJvZkMnoSZAocCKw9m83oXezNaDsmHJ6UWr4E\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/services/ComponentOwnerService.sol":{"ComponentOwnerService":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IComponent","name":"component","type":"address"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6118e0806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806393c829fc1161005b57806393c829fc146100bd578063a694fc3a146100d0578063c4d66de8146100e3578063fabc1cbc146100f65761007d565b80630126795114610082578063136439dd146100975780632e1a7d4d146100aa575b600080fd5b610095610090366004611700565b610109565b005b6100956100a5366004611796565b610422565b6100956100b8366004611796565b610764565b6100956100cb366004611796565b610a94565b6100956100de366004611796565b610da1565b6100956100f1366004611700565b6110d1565b610095610104366004611796565b611256565b806000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561014557600080fd5b505afa158015610159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017d9190611723565b90506000600260009054906101000a90046001600160a01b03166001600160a01b0316635af89a47846001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101de57600080fd5b505afa1580156101f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102169190611777565b6040518263ffffffff1660e01b815260040161023291906117ae565b60206040518083038186803b15801561024a57600080fd5b505afa15801561025e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610282919061175f565b9050336001600160a01b038316146102e15760405162461bcd60e51b815260206004820152601760248201527f4552524f523a434f532d3030313a4e4f545f4f574e455200000000000000000060448201526064015b60405180910390fd5b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561032d57600080fd5b505afa158015610341573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610365919061173f565b6103bd5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030323a52455155495245445f524f4c455f4d495353604482015262494e4760e81b60648201526084016102d8565b600254604051630126795160e01b81526001600160a01b03868116600483015290911690630126795190602401600060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b5050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561046b57600080fd5b505afa15801561047f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a39190611723565b90506001600160a01b0381166104cb5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561050657600080fd5b505afa15801561051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053e9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b15801561059057600080fd5b505afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c89190611777565b6040518263ffffffff1660e01b81526004016105e491906117ae565b60206040518083038186803b1580156105fc57600080fd5b505afa158015610610573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610634919061175f565b9050336001600160a01b0383161461065e5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156106aa57600080fd5b505afa1580156106be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e2919061173f565b6106fe5760405162461bcd60e51b81526004016102d89061180d565b60025460405163136439dd60e01b8152600481018790526001600160a01b039091169063136439dd906024015b600060405180830381600087803b15801561074557600080fd5b505af1158015610759573d6000803e3d6000fd5b505050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e59190611723565b90506001600160a01b03811661080d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561084857600080fd5b505afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611777565b6040518263ffffffff1660e01b815260040161092691906117ae565b60206040518083038186803b15801561093e57600080fd5b505afa158015610952573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610976919061175f565b9050336001600160a01b038316146109a05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156109ec57600080fd5b505afa158015610a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a24919061173f565b610a405760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030373a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190611723565b90506001600160a01b038116610b3d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7857600080fd5b505afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb09190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610c0257600080fd5b505afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a9190611777565b6040518263ffffffff1660e01b8152600401610c5691906117ae565b60206040518083038186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca6919061175f565b9050336001600160a01b03831614610cd05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b158015610d1c57600080fd5b505afa158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d54919061173f565b610d705760405162461bcd60e51b81526004016102d89061180d565b600254604051636bc607b360e01b8152600481018790526001600160a01b0390911690636bc607b39060240161072b565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610dea57600080fd5b505afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e229190611723565b90506001600160a01b038116610e4a5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8557600080fd5b505afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190611777565b6040518263ffffffff1660e01b8152600401610f6391906117ae565b60206040518083038186803b158015610f7b57600080fd5b505afa158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb3919061175f565b9050336001600160a01b03831614610fdd5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611061919061173f565b61107d5760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030363a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b600054610100900460ff16158080156110f15750600054600160ff909116105b80611112575061110030611563565b158015611112575060005460ff166001145b6111755760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102d8565b6000805460ff191660011790558015611198576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111c2600090565b6541636365737360d01b14611204576111e36541636365737360d01b611576565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61120c61165e565b8015611252576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561129f57600080fd5b505afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190611723565b90506001600160a01b0381166112ff5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156113c457600080fd5b505afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc9190611777565b6040518263ffffffff1660e01b815260040161141891906117ae565b60206040518083038186803b15801561143057600080fd5b505afa158015611444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611468919061175f565b9050336001600160a01b038316146114925760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156114de57600080fd5b505afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611516919061173f565b6115325760405162461bcd60e51b81526004016102d89061180d565b600254604051633eaf072f60e21b8152600481018790526001600160a01b039091169063fabc1cbc9060240161072b565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156115c057600080fd5b505afa1580156115d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f89190611723565b90506001600160a01b0381166115715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016102d8565b600054610100900460ff166116c95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102d8565b6116de6810dbdb5c1bdb995b9d60ba1b611576565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215611711578081fd5b813561171c81611892565b9392505050565b600060208284031215611734578081fd5b815161171c81611892565b600060208284031215611750578081fd5b8151801515811461171c578182fd5b600060208284031215611770578081fd5b5051919050565b600060208284031215611788578081fd5b81516003811061171c578182fd5b6000602082840312156117a7578081fd5b5035919050565b60208101600383106117d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208082526017908201527f4552524f523a434f532d3030343a4e4f545f4f574e4552000000000000000000604082015260600190565b60208082526023908201527f4552524f523a434f532d3030353a52455155495245445f524f4c455f4d495353604082015262494e4760e81b606082015260800190565b60208082526022908201527f4552524f523a434f532d3030333a434f4d504f4e454e545f49445f494e56414c604082015261125160f21b606082015260800190565b6001600160a01b03811681146118a757600080fd5b5056fea26469706673582212204fada8cc38a6834cba510a9d1fd15248263b594551f2057738c5fe9a6731ec8e64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x18E0 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x93C829FC GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x93C829FC EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0xA694FC3A EQ PUSH2 0xD0 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xFABC1CBC EQ PUSH2 0xF6 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x1267951 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x136439DD EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0xAA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x1700 JUMP JUMPDEST PUSH2 0x109 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x422 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x764 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xCB CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xDE CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xDA1 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1700 JUMP JUMPDEST PUSH2 0x10D1 JUMP JUMPDEST PUSH2 0x95 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x1256 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x159 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5AF89A47 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x15DAE03E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x216 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x2E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030313A4E4F545F4F574E4552000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x341 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x365 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x3BD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030323A52455155495245445F524F4C455F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1267951 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x1267951 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x47F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4A3 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x506 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x51A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x53E SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C8 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x610 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x634 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x65E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6E2 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x6FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136439DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x136439DD SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x759 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x80D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x85C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x880 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x926 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x93E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x952 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x976 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x9A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA00 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA24 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030373A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB15 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBB0 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC3A SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC56 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCA6 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0xCD0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD54 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0xD70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6BC607B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6BC607B3 SWAP1 PUSH1 0x24 ADD PUSH2 0x72B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE22 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xE4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE99 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEBD SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF47 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF63 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB3 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0xFDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1029 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x103D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1061 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x107D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030363A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x10F1 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1112 JUMPI POP PUSH2 0x1100 ADDRESS PUSH2 0x1563 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x1112 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1175 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1198 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x11C2 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1204 JUMPI PUSH2 0x11E3 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1576 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x120C PUSH2 0x165E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1252 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x129F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12D7 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1372 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13D8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13FC SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1418 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1444 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1468 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x1492 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1516 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x1532 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3EAF072F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFABC1CBC SWAP1 PUSH1 0x24 ADD PUSH2 0x72B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15F8 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1571 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x16C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH2 0x16DE PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1576 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1711 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x171C DUP2 PUSH2 0x1892 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1734 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x171C DUP2 PUSH2 0x1892 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1750 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x171C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1770 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1788 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x171C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17A7 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x17D0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x17 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030343A4E4F545F4F574E4552000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030353A52455155495245445F524F4C455F4D495353 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030333A434F4D504F4E454E545F49445F494E56414C PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F 0xAD 0xA8 0xCC CODESIZE 0xA6 DUP4 0x4C 0xBA MLOAD EXP SWAP14 0x1F 0xD1 MSTORE 0x48 0x26 EXTCODESIZE MSIZE GASLIMIT MLOAD CALLCODE SDIV PUSH24 0x38C5FE9A6731EC8E64736F6C634300080200330000000000 ","sourceMap":"488:2163:82:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;488:2163:82;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;488:2163:82;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7616:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"620:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"666:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"675:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"683:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"668:6:103"},"nodeType":"YulFunctionCall","src":"668:22:103"},"nodeType":"YulExpressionStatement","src":"668:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"641:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"650:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"637:3:103"},"nodeType":"YulFunctionCall","src":"637:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"662:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"633:3:103"},"nodeType":"YulFunctionCall","src":"633:32:103"},"nodeType":"YulIf","src":"630:2:103"},{"nodeType":"YulVariableDeclaration","src":"701:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"720:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"714:5:103"},"nodeType":"YulFunctionCall","src":"714:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"705:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"783:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"800:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"785:6:103"},"nodeType":"YulFunctionCall","src":"785:22:103"},"nodeType":"YulExpressionStatement","src":"785:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"752:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"773:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"766:6:103"},"nodeType":"YulFunctionCall","src":"766:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"759:6:103"},"nodeType":"YulFunctionCall","src":"759:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"749:2:103"},"nodeType":"YulFunctionCall","src":"749:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"742:6:103"},"nodeType":"YulFunctionCall","src":"742:40:103"},"nodeType":"YulIf","src":"739:2:103"},{"nodeType":"YulAssignment","src":"818:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"828:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"818:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"586:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"597:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"609:6:103","type":""}],"src":"542:297:103"},{"body":{"nodeType":"YulBlock","src":"925:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"971:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"980:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"988:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"973:6:103"},"nodeType":"YulFunctionCall","src":"973:22:103"},"nodeType":"YulExpressionStatement","src":"973:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"946:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"955:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"942:3:103"},"nodeType":"YulFunctionCall","src":"942:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"967:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"938:3:103"},"nodeType":"YulFunctionCall","src":"938:32:103"},"nodeType":"YulIf","src":"935:2:103"},{"nodeType":"YulAssignment","src":"1006:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1022:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1016:5:103"},"nodeType":"YulFunctionCall","src":"1016:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1006:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"891:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"902:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"914:6:103","type":""}],"src":"844:194:103"},{"body":{"nodeType":"YulBlock","src":"1132:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1178:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1187:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1195:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1180:6:103"},"nodeType":"YulFunctionCall","src":"1180:22:103"},"nodeType":"YulExpressionStatement","src":"1180:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1153:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1162:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1149:3:103"},"nodeType":"YulFunctionCall","src":"1149:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1174:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1145:3:103"},"nodeType":"YulFunctionCall","src":"1145:32:103"},"nodeType":"YulIf","src":"1142:2:103"},{"nodeType":"YulVariableDeclaration","src":"1213:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1239:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1226:12:103"},"nodeType":"YulFunctionCall","src":"1226:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1217:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1283:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1258:24:103"},"nodeType":"YulFunctionCall","src":"1258:31:103"},"nodeType":"YulExpressionStatement","src":"1258:31:103"},{"nodeType":"YulAssignment","src":"1298:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1308:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1298:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1098:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1109:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1121:6:103","type":""}],"src":"1043:276:103"},{"body":{"nodeType":"YulBlock","src":"1424:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1470:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1479:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1487:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1472:6:103"},"nodeType":"YulFunctionCall","src":"1472:22:103"},"nodeType":"YulExpressionStatement","src":"1472:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1445:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1454:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1441:3:103"},"nodeType":"YulFunctionCall","src":"1441:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1466:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1437:3:103"},"nodeType":"YulFunctionCall","src":"1437:32:103"},"nodeType":"YulIf","src":"1434:2:103"},{"nodeType":"YulVariableDeclaration","src":"1505:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1524:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1518:5:103"},"nodeType":"YulFunctionCall","src":"1518:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1509:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1568:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1543:24:103"},"nodeType":"YulFunctionCall","src":"1543:31:103"},"nodeType":"YulExpressionStatement","src":"1543:31:103"},{"nodeType":"YulAssignment","src":"1583:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1593:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1583:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1390:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1401:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1413:6:103","type":""}],"src":"1324:280:103"},{"body":{"nodeType":"YulBlock","src":"1708:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"1754:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1763:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1771:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1756:6:103"},"nodeType":"YulFunctionCall","src":"1756:22:103"},"nodeType":"YulExpressionStatement","src":"1756:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1729:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1738:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1725:3:103"},"nodeType":"YulFunctionCall","src":"1725:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1750:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1721:3:103"},"nodeType":"YulFunctionCall","src":"1721:32:103"},"nodeType":"YulIf","src":"1718:2:103"},{"nodeType":"YulVariableDeclaration","src":"1789:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1808:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1802:5:103"},"nodeType":"YulFunctionCall","src":"1802:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1793:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1851:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1860:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1853:6:103"},"nodeType":"YulFunctionCall","src":"1853:22:103"},"nodeType":"YulExpressionStatement","src":"1853:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1840:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1847:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1837:2:103"},"nodeType":"YulFunctionCall","src":"1837:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1830:6:103"},"nodeType":"YulFunctionCall","src":"1830:20:103"},"nodeType":"YulIf","src":"1827:2:103"},{"nodeType":"YulAssignment","src":"1886:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1896:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1886:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1674:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1685:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1697:6:103","type":""}],"src":"1609:298:103"},{"body":{"nodeType":"YulBlock","src":"1982:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2028:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2037:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2045:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2030:6:103"},"nodeType":"YulFunctionCall","src":"2030:22:103"},"nodeType":"YulExpressionStatement","src":"2030:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2003:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2012:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1999:3:103"},"nodeType":"YulFunctionCall","src":"1999:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2024:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1995:3:103"},"nodeType":"YulFunctionCall","src":"1995:32:103"},"nodeType":"YulIf","src":"1992:2:103"},{"nodeType":"YulAssignment","src":"2063:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2086:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2073:12:103"},"nodeType":"YulFunctionCall","src":"2073:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2063:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1948:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1959:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1971:6:103","type":""}],"src":"1912:190:103"},{"body":{"nodeType":"YulBlock","src":"2208:76:103","statements":[{"nodeType":"YulAssignment","src":"2218:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2230:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2241:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2226:3:103"},"nodeType":"YulFunctionCall","src":"2226:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2218:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2260:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2271:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2253:6:103"},"nodeType":"YulFunctionCall","src":"2253:25:103"},"nodeType":"YulExpressionStatement","src":"2253:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2177:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2188:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2199:4:103","type":""}],"src":"2107:177:103"},{"body":{"nodeType":"YulBlock","src":"2418:145:103","statements":[{"nodeType":"YulAssignment","src":"2428:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2451:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2436:3:103"},"nodeType":"YulFunctionCall","src":"2436:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2428:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2470:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2481:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2463:6:103"},"nodeType":"YulFunctionCall","src":"2463:25:103"},"nodeType":"YulExpressionStatement","src":"2463:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2508:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2519:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2504:3:103"},"nodeType":"YulFunctionCall","src":"2504:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2528:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2544:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2549:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2540:3:103"},"nodeType":"YulFunctionCall","src":"2540:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2553:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2536:3:103"},"nodeType":"YulFunctionCall","src":"2536:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2524:3:103"},"nodeType":"YulFunctionCall","src":"2524:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2497:6:103"},"nodeType":"YulFunctionCall","src":"2497:60:103"},"nodeType":"YulExpressionStatement","src":"2497:60:103"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2379:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2390:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2398:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2409:4:103","type":""}],"src":"2289:274:103"},{"body":{"nodeType":"YulBlock","src":"2688:102:103","statements":[{"nodeType":"YulAssignment","src":"2698:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2710:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2721:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2706:3:103"},"nodeType":"YulFunctionCall","src":"2706:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2698:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2740:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2755:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2771:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2776:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2767:3:103"},"nodeType":"YulFunctionCall","src":"2767:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2780:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2763:3:103"},"nodeType":"YulFunctionCall","src":"2763:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2751:3:103"},"nodeType":"YulFunctionCall","src":"2751:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2733:6:103"},"nodeType":"YulFunctionCall","src":"2733:51:103"},"nodeType":"YulExpressionStatement","src":"2733:51:103"}]},"name":"abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2657:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2668:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2679:4:103","type":""}],"src":"2568:222:103"},{"body":{"nodeType":"YulBlock","src":"2912:229:103","statements":[{"nodeType":"YulAssignment","src":"2922:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2930:3:103"},"nodeType":"YulFunctionCall","src":"2930:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2922:4:103"}]},{"body":{"nodeType":"YulBlock","src":"2990:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3011:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3018:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3023:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3014:3:103"},"nodeType":"YulFunctionCall","src":"3014:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3004:6:103"},"nodeType":"YulFunctionCall","src":"3004:31:103"},"nodeType":"YulExpressionStatement","src":"3004:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3055:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3058:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3048:6:103"},"nodeType":"YulFunctionCall","src":"3048:15:103"},"nodeType":"YulExpressionStatement","src":"3048:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3083:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3086:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3076:6:103"},"nodeType":"YulFunctionCall","src":"3076:15:103"},"nodeType":"YulExpressionStatement","src":"3076:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2970:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2978:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2967:2:103"},"nodeType":"YulFunctionCall","src":"2967:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2960:6:103"},"nodeType":"YulFunctionCall","src":"2960:21:103"},"nodeType":"YulIf","src":"2957:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3117:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3128:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3110:6:103"},"nodeType":"YulFunctionCall","src":"3110:25:103"},"nodeType":"YulExpressionStatement","src":"3110:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2881:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2892:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2903:4:103","type":""}],"src":"2795:346:103"},{"body":{"nodeType":"YulBlock","src":"3253:87:103","statements":[{"nodeType":"YulAssignment","src":"3263:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3275:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3286:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3271:3:103"},"nodeType":"YulFunctionCall","src":"3271:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3263:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3305:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3320:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3328:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3316:3:103"},"nodeType":"YulFunctionCall","src":"3316:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3298:6:103"},"nodeType":"YulFunctionCall","src":"3298:36:103"},"nodeType":"YulExpressionStatement","src":"3298:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3222:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3233:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3244:4:103","type":""}],"src":"3146:194:103"},{"body":{"nodeType":"YulBlock","src":"3519:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3536:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3547:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3529:6:103"},"nodeType":"YulFunctionCall","src":"3529:21:103"},"nodeType":"YulExpressionStatement","src":"3529:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3570:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3581:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3566:3:103"},"nodeType":"YulFunctionCall","src":"3566:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3586:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3559:6:103"},"nodeType":"YulFunctionCall","src":"3559:30:103"},"nodeType":"YulExpressionStatement","src":"3559:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3620:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3605:3:103"},"nodeType":"YulFunctionCall","src":"3605:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3625:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3598:6:103"},"nodeType":"YulFunctionCall","src":"3598:62:103"},"nodeType":"YulExpressionStatement","src":"3598:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3691:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3676:3:103"},"nodeType":"YulFunctionCall","src":"3676:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3696:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3669:6:103"},"nodeType":"YulFunctionCall","src":"3669:35:103"},"nodeType":"YulExpressionStatement","src":"3669:35:103"},{"nodeType":"YulAssignment","src":"3713:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3736:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3721:3:103"},"nodeType":"YulFunctionCall","src":"3721:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3713:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3496:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3510:4:103","type":""}],"src":"3345:401:103"},{"body":{"nodeType":"YulBlock","src":"3925:173:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3953:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3935:6:103"},"nodeType":"YulFunctionCall","src":"3935:21:103"},"nodeType":"YulExpressionStatement","src":"3935:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3976:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3987:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3972:3:103"},"nodeType":"YulFunctionCall","src":"3972:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3992:2:103","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3965:6:103"},"nodeType":"YulFunctionCall","src":"3965:30:103"},"nodeType":"YulExpressionStatement","src":"3965:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4015:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4026:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4011:3:103"},"nodeType":"YulFunctionCall","src":"4011:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4031:25:103","type":"","value":"ERROR:COS-004:NOT_OWNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4004:6:103"},"nodeType":"YulFunctionCall","src":"4004:53:103"},"nodeType":"YulExpressionStatement","src":"4004:53:103"},{"nodeType":"YulAssignment","src":"4066:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4089:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4074:3:103"},"nodeType":"YulFunctionCall","src":"4074:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4066:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3dfee339654c8563649f4df81de163cc439c725d11fcbc6e2de5d26baaee8ff7__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3902:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3916:4:103","type":""}],"src":"3751:347:103"},{"body":{"nodeType":"YulBlock","src":"4277:173:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4294:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4305:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4287:6:103"},"nodeType":"YulFunctionCall","src":"4287:21:103"},"nodeType":"YulExpressionStatement","src":"4287:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4328:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4339:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4324:3:103"},"nodeType":"YulFunctionCall","src":"4324:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4344:2:103","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4317:6:103"},"nodeType":"YulFunctionCall","src":"4317:30:103"},"nodeType":"YulExpressionStatement","src":"4317:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4367:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4378:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4363:3:103"},"nodeType":"YulFunctionCall","src":"4363:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4383:25:103","type":"","value":"ERROR:COS-001:NOT_OWNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4356:6:103"},"nodeType":"YulFunctionCall","src":"4356:53:103"},"nodeType":"YulExpressionStatement","src":"4356:53:103"},{"nodeType":"YulAssignment","src":"4418:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4430:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4441:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4426:3:103"},"nodeType":"YulFunctionCall","src":"4426:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4418:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_465d2c87dcb0f9e507f01f9bd011e20013cefede3ead0fe8442c34503dee279a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4254:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4268:4:103","type":""}],"src":"4103:347:103"},{"body":{"nodeType":"YulBlock","src":"4629:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4646:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4657:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4639:6:103"},"nodeType":"YulFunctionCall","src":"4639:21:103"},"nodeType":"YulExpressionStatement","src":"4639:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4691:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4676:3:103"},"nodeType":"YulFunctionCall","src":"4676:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4696:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4669:6:103"},"nodeType":"YulFunctionCall","src":"4669:30:103"},"nodeType":"YulExpressionStatement","src":"4669:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4730:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4715:3:103"},"nodeType":"YulFunctionCall","src":"4715:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4735:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4708:6:103"},"nodeType":"YulFunctionCall","src":"4708:62:103"},"nodeType":"YulExpressionStatement","src":"4708:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4790:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4801:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4786:3:103"},"nodeType":"YulFunctionCall","src":"4786:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4806:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4779:6:103"},"nodeType":"YulFunctionCall","src":"4779:44:103"},"nodeType":"YulExpressionStatement","src":"4779:44:103"},{"nodeType":"YulAssignment","src":"4832:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4855:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4840:3:103"},"nodeType":"YulFunctionCall","src":"4840:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4832:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4606:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4620:4:103","type":""}],"src":"4455:410:103"},{"body":{"nodeType":"YulBlock","src":"5044:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5061:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5072:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5054:6:103"},"nodeType":"YulFunctionCall","src":"5054:21:103"},"nodeType":"YulExpressionStatement","src":"5054:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5095:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5106:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5091:3:103"},"nodeType":"YulFunctionCall","src":"5091:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5111:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5084:6:103"},"nodeType":"YulFunctionCall","src":"5084:30:103"},"nodeType":"YulExpressionStatement","src":"5084:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5134:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5145:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5130:3:103"},"nodeType":"YulFunctionCall","src":"5130:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5150:34:103","type":"","value":"ERROR:COS-005:REQUIRED_ROLE_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5123:6:103"},"nodeType":"YulFunctionCall","src":"5123:62:103"},"nodeType":"YulExpressionStatement","src":"5123:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5216:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5201:3:103"},"nodeType":"YulFunctionCall","src":"5201:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5221:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5194:6:103"},"nodeType":"YulFunctionCall","src":"5194:33:103"},"nodeType":"YulExpressionStatement","src":"5194:33:103"},{"nodeType":"YulAssignment","src":"5236:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5259:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5244:3:103"},"nodeType":"YulFunctionCall","src":"5244:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5236:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_88c17061477e2a1abea4e769d8a1e347027489fb75476594ddd18ce8ec84d271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5021:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5035:4:103","type":""}],"src":"4870:399:103"},{"body":{"nodeType":"YulBlock","src":"5448:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5476:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5458:6:103"},"nodeType":"YulFunctionCall","src":"5458:21:103"},"nodeType":"YulExpressionStatement","src":"5458:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5499:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5510:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5495:3:103"},"nodeType":"YulFunctionCall","src":"5495:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5515:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5488:6:103"},"nodeType":"YulFunctionCall","src":"5488:30:103"},"nodeType":"YulExpressionStatement","src":"5488:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5538:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5549:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5534:3:103"},"nodeType":"YulFunctionCall","src":"5534:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5554:34:103","type":"","value":"ERROR:COS-006:IMPLEMENATION_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5527:6:103"},"nodeType":"YulFunctionCall","src":"5527:62:103"},"nodeType":"YulExpressionStatement","src":"5527:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5620:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5605:3:103"},"nodeType":"YulFunctionCall","src":"5605:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5625:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5598:6:103"},"nodeType":"YulFunctionCall","src":"5598:33:103"},"nodeType":"YulExpressionStatement","src":"5598:33:103"},{"nodeType":"YulAssignment","src":"5640:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5663:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5648:3:103"},"nodeType":"YulFunctionCall","src":"5648:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5640:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8c33643b536d9b9641d49decf8b2e52fa547e9e6beac65134376f36156613b58__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5425:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5439:4:103","type":""}],"src":"5274:399:103"},{"body":{"nodeType":"YulBlock","src":"5852:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5869:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5880:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5862:6:103"},"nodeType":"YulFunctionCall","src":"5862:21:103"},"nodeType":"YulExpressionStatement","src":"5862:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5914:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5899:3:103"},"nodeType":"YulFunctionCall","src":"5899:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5919:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5892:6:103"},"nodeType":"YulFunctionCall","src":"5892:30:103"},"nodeType":"YulExpressionStatement","src":"5892:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5953:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5938:3:103"},"nodeType":"YulFunctionCall","src":"5938:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5958:34:103","type":"","value":"ERROR:COS-002:REQUIRED_ROLE_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5931:6:103"},"nodeType":"YulFunctionCall","src":"5931:62:103"},"nodeType":"YulExpressionStatement","src":"5931:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6024:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6009:3:103"},"nodeType":"YulFunctionCall","src":"6009:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6029:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6002:6:103"},"nodeType":"YulFunctionCall","src":"6002:33:103"},"nodeType":"YulExpressionStatement","src":"6002:33:103"},{"nodeType":"YulAssignment","src":"6044:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6056:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6067:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6052:3:103"},"nodeType":"YulFunctionCall","src":"6052:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6044:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ba7f3dd1050d0760c96ec2016b668c5029825c4f0129279369d1f9706925f324__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5829:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5843:4:103","type":""}],"src":"5678:399:103"},{"body":{"nodeType":"YulBlock","src":"6256:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6273:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6284:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6266:6:103"},"nodeType":"YulFunctionCall","src":"6266:21:103"},"nodeType":"YulExpressionStatement","src":"6266:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6307:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6318:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6303:3:103"},"nodeType":"YulFunctionCall","src":"6303:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6323:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6296:6:103"},"nodeType":"YulFunctionCall","src":"6296:30:103"},"nodeType":"YulExpressionStatement","src":"6296:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6346:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6357:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6342:3:103"},"nodeType":"YulFunctionCall","src":"6342:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6362:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6335:6:103"},"nodeType":"YulFunctionCall","src":"6335:62:103"},"nodeType":"YulExpressionStatement","src":"6335:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6417:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6428:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6413:3:103"},"nodeType":"YulFunctionCall","src":"6413:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6433:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6406:6:103"},"nodeType":"YulFunctionCall","src":"6406:41:103"},"nodeType":"YulExpressionStatement","src":"6406:41:103"},{"nodeType":"YulAssignment","src":"6456:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6468:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6479:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6464:3:103"},"nodeType":"YulFunctionCall","src":"6464:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6456:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6233:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6247:4:103","type":""}],"src":"6082:407:103"},{"body":{"nodeType":"YulBlock","src":"6668:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6685:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6696:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6678:6:103"},"nodeType":"YulFunctionCall","src":"6678:21:103"},"nodeType":"YulExpressionStatement","src":"6678:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6719:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6730:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6715:3:103"},"nodeType":"YulFunctionCall","src":"6715:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6735:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6708:6:103"},"nodeType":"YulFunctionCall","src":"6708:30:103"},"nodeType":"YulExpressionStatement","src":"6708:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6758:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6769:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6754:3:103"},"nodeType":"YulFunctionCall","src":"6754:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6774:34:103","type":"","value":"ERROR:COS-003:COMPONENT_ID_INVAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6747:6:103"},"nodeType":"YulFunctionCall","src":"6747:62:103"},"nodeType":"YulExpressionStatement","src":"6747:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6829:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6840:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6825:3:103"},"nodeType":"YulFunctionCall","src":"6825:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6845:4:103","type":"","value":"ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6818:6:103"},"nodeType":"YulFunctionCall","src":"6818:32:103"},"nodeType":"YulExpressionStatement","src":"6818:32:103"},{"nodeType":"YulAssignment","src":"6859:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6871:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6882:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6867:3:103"},"nodeType":"YulFunctionCall","src":"6867:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6859:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_dd56e2e72358a9edc326877a1e38d84909493861f3901cf215f515edfe95f5df__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6645:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6659:4:103","type":""}],"src":"6494:398:103"},{"body":{"nodeType":"YulBlock","src":"7071:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7088:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7099:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7081:6:103"},"nodeType":"YulFunctionCall","src":"7081:21:103"},"nodeType":"YulExpressionStatement","src":"7081:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7133:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7118:3:103"},"nodeType":"YulFunctionCall","src":"7118:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7138:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7111:6:103"},"nodeType":"YulFunctionCall","src":"7111:30:103"},"nodeType":"YulExpressionStatement","src":"7111:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7172:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7157:3:103"},"nodeType":"YulFunctionCall","src":"7157:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7177:34:103","type":"","value":"ERROR:COS-007:IMPLEMENATION_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7150:6:103"},"nodeType":"YulFunctionCall","src":"7150:62:103"},"nodeType":"YulExpressionStatement","src":"7150:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7232:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7243:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7228:3:103"},"nodeType":"YulFunctionCall","src":"7228:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7248:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7221:6:103"},"nodeType":"YulFunctionCall","src":"7221:33:103"},"nodeType":"YulExpressionStatement","src":"7221:33:103"},{"nodeType":"YulAssignment","src":"7263:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7275:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7286:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7271:3:103"},"nodeType":"YulFunctionCall","src":"7271:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7263:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb6da26fba0466dffcc83682913bbbb22b0d48dbbc0bda69e09fccb7c56e2455__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7048:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7062:4:103","type":""}],"src":"6897:399:103"},{"body":{"nodeType":"YulBlock","src":"7402:76:103","statements":[{"nodeType":"YulAssignment","src":"7412:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7424:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7435:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7420:3:103"},"nodeType":"YulFunctionCall","src":"7420:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7412:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7454:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7465:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7447:6:103"},"nodeType":"YulFunctionCall","src":"7447:25:103"},"nodeType":"YulExpressionStatement","src":"7447:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7371:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7382:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7393:4:103","type":""}],"src":"7301:177:103"},{"body":{"nodeType":"YulBlock","src":"7528:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"7592:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7601:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7604:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7594:6:103"},"nodeType":"YulFunctionCall","src":"7594:12:103"},"nodeType":"YulExpressionStatement","src":"7594:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7551:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7562:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7577:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7582:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7573:3:103"},"nodeType":"YulFunctionCall","src":"7573:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7586:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7569:3:103"},"nodeType":"YulFunctionCall","src":"7569:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7558:3:103"},"nodeType":"YulFunctionCall","src":"7558:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"7548:2:103"},"nodeType":"YulFunctionCall","src":"7548:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7541:6:103"},"nodeType":"YulFunctionCall","src":"7541:50:103"},"nodeType":"YulIf","src":"7538:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7517:5:103","type":""}],"src":"7483:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 3)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3dfee339654c8563649f4df81de163cc439c725d11fcbc6e2de5d26baaee8ff7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"ERROR:COS-004:NOT_OWNER\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_465d2c87dcb0f9e507f01f9bd011e20013cefede3ead0fe8442c34503dee279a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"ERROR:COS-001:NOT_OWNER\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_88c17061477e2a1abea4e769d8a1e347027489fb75476594ddd18ce8ec84d271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:COS-005:REQUIRED_ROLE_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8c33643b536d9b9641d49decf8b2e52fa547e9e6beac65134376f36156613b58__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:COS-006:IMPLEMENATION_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ba7f3dd1050d0760c96ec2016b668c5029825c4f0129279369d1f9706925f324__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:COS-002:REQUIRED_ROLE_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_dd56e2e72358a9edc326877a1e38d84909493861f3901cf215f515edfe95f5df__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:COS-003:COMPONENT_ID_INVAL\")\n mstore(add(headStart, 96), \"ID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fb6da26fba0466dffcc83682913bbbb22b0d48dbbc0bda69e09fccb7c56e2455__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:COS-007:IMPLEMENATION_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061007d5760003560e01c806393c829fc1161005b57806393c829fc146100bd578063a694fc3a146100d0578063c4d66de8146100e3578063fabc1cbc146100f65761007d565b80630126795114610082578063136439dd146100975780632e1a7d4d146100aa575b600080fd5b610095610090366004611700565b610109565b005b6100956100a5366004611796565b610422565b6100956100b8366004611796565b610764565b6100956100cb366004611796565b610a94565b6100956100de366004611796565b610da1565b6100956100f1366004611700565b6110d1565b610095610104366004611796565b611256565b806000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561014557600080fd5b505afa158015610159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017d9190611723565b90506000600260009054906101000a90046001600160a01b03166001600160a01b0316635af89a47846001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101de57600080fd5b505afa1580156101f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102169190611777565b6040518263ffffffff1660e01b815260040161023291906117ae565b60206040518083038186803b15801561024a57600080fd5b505afa15801561025e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610282919061175f565b9050336001600160a01b038316146102e15760405162461bcd60e51b815260206004820152601760248201527f4552524f523a434f532d3030313a4e4f545f4f574e455200000000000000000060448201526064015b60405180910390fd5b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561032d57600080fd5b505afa158015610341573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610365919061173f565b6103bd5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030323a52455155495245445f524f4c455f4d495353604482015262494e4760e81b60648201526084016102d8565b600254604051630126795160e01b81526001600160a01b03868116600483015290911690630126795190602401600060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b5050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561046b57600080fd5b505afa15801561047f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a39190611723565b90506001600160a01b0381166104cb5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561050657600080fd5b505afa15801561051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053e9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b15801561059057600080fd5b505afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c89190611777565b6040518263ffffffff1660e01b81526004016105e491906117ae565b60206040518083038186803b1580156105fc57600080fd5b505afa158015610610573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610634919061175f565b9050336001600160a01b0383161461065e5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156106aa57600080fd5b505afa1580156106be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e2919061173f565b6106fe5760405162461bcd60e51b81526004016102d89061180d565b60025460405163136439dd60e01b8152600481018790526001600160a01b039091169063136439dd906024015b600060405180830381600087803b15801561074557600080fd5b505af1158015610759573d6000803e3d6000fd5b505050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e59190611723565b90506001600160a01b03811661080d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561084857600080fd5b505afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611777565b6040518263ffffffff1660e01b815260040161092691906117ae565b60206040518083038186803b15801561093e57600080fd5b505afa158015610952573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610976919061175f565b9050336001600160a01b038316146109a05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156109ec57600080fd5b505afa158015610a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a24919061173f565b610a405760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030373a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190611723565b90506001600160a01b038116610b3d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7857600080fd5b505afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb09190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610c0257600080fd5b505afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a9190611777565b6040518263ffffffff1660e01b8152600401610c5691906117ae565b60206040518083038186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca6919061175f565b9050336001600160a01b03831614610cd05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b158015610d1c57600080fd5b505afa158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d54919061173f565b610d705760405162461bcd60e51b81526004016102d89061180d565b600254604051636bc607b360e01b8152600481018790526001600160a01b0390911690636bc607b39060240161072b565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610dea57600080fd5b505afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e229190611723565b90506001600160a01b038116610e4a5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8557600080fd5b505afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190611777565b6040518263ffffffff1660e01b8152600401610f6391906117ae565b60206040518083038186803b158015610f7b57600080fd5b505afa158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb3919061175f565b9050336001600160a01b03831614610fdd5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611061919061173f565b61107d5760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030363a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b600054610100900460ff16158080156110f15750600054600160ff909116105b80611112575061110030611563565b158015611112575060005460ff166001145b6111755760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102d8565b6000805460ff191660011790558015611198576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111c2600090565b6541636365737360d01b14611204576111e36541636365737360d01b611576565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61120c61165e565b8015611252576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561129f57600080fd5b505afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190611723565b90506001600160a01b0381166112ff5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156113c457600080fd5b505afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc9190611777565b6040518263ffffffff1660e01b815260040161141891906117ae565b60206040518083038186803b15801561143057600080fd5b505afa158015611444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611468919061175f565b9050336001600160a01b038316146114925760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156114de57600080fd5b505afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611516919061173f565b6115325760405162461bcd60e51b81526004016102d89061180d565b600254604051633eaf072f60e21b8152600481018790526001600160a01b039091169063fabc1cbc9060240161072b565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156115c057600080fd5b505afa1580156115d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f89190611723565b90506001600160a01b0381166115715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016102d8565b600054610100900460ff166116c95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102d8565b6116de6810dbdb5c1bdb995b9d60ba1b611576565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215611711578081fd5b813561171c81611892565b9392505050565b600060208284031215611734578081fd5b815161171c81611892565b600060208284031215611750578081fd5b8151801515811461171c578182fd5b600060208284031215611770578081fd5b5051919050565b600060208284031215611788578081fd5b81516003811061171c578182fd5b6000602082840312156117a7578081fd5b5035919050565b60208101600383106117d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208082526017908201527f4552524f523a434f532d3030343a4e4f545f4f574e4552000000000000000000604082015260600190565b60208082526023908201527f4552524f523a434f532d3030353a52455155495245445f524f4c455f4d495353604082015262494e4760e81b606082015260800190565b60208082526022908201527f4552524f523a434f532d3030333a434f4d504f4e454e545f49445f494e56414c604082015261125160f21b606082015260800190565b6001600160a01b03811681146118a757600080fd5b5056fea26469706673582212204fada8cc38a6834cba510a9d1fd15248263b594551f2057738c5fe9a6731ec8e64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x93C829FC GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x93C829FC EQ PUSH2 0xBD JUMPI DUP1 PUSH4 0xA694FC3A EQ PUSH2 0xD0 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xE3 JUMPI DUP1 PUSH4 0xFABC1CBC EQ PUSH2 0xF6 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x1267951 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x136439DD EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0xAA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x1700 JUMP JUMPDEST PUSH2 0x109 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x95 PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x422 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xB8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x764 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xCB CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xDE CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xDA1 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF1 CALLDATASIZE PUSH1 0x4 PUSH2 0x1700 JUMP JUMPDEST PUSH2 0x10D1 JUMP JUMPDEST PUSH2 0x95 PUSH2 0x104 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x1256 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x145 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x159 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5AF89A47 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x15DAE03E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x216 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x25E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x2E1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030313A4E4F545F4F574E4552000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x32D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x341 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x365 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x3BD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030323A52455155495245445F524F4C455F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1267951 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x1267951 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x404 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x418 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x46B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x47F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4A3 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x4CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x506 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x51A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x53E SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x590 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x5A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5C8 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E4 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x610 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x634 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x65E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6BE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6E2 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x6FE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136439DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x136439DD SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x745 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x759 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x80D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x848 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x85C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x880 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x926 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x93E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x952 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x976 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x9A0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA00 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA24 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0xA40 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030373A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB15 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB3D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB8C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBB0 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC3A SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC56 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC82 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCA6 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0xCD0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD30 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD54 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0xD70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6BC607B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6BC607B3 SWAP1 PUSH1 0x24 ADD PUSH2 0x72B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE22 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xE4A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xE99 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xEBD SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF47 SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF63 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF8F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB3 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0xFDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1029 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x103D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1061 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x107D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030363A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x10F1 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x1112 JUMPI POP PUSH2 0x1100 ADDRESS PUSH2 0x1563 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x1112 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x1175 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x1198 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x11C2 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x1204 JUMPI PUSH2 0x11E3 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1576 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x120C PUSH2 0x165E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1252 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x129F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12B3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12D7 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x1850 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x893D20E8 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x134E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1372 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x5AF89A47 SWAP1 DUP3 SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x13D8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13FC SWAP2 SWAP1 PUSH2 0x1777 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1418 SWAP2 SWAP1 PUSH2 0x17AE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1430 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1444 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1468 SWAP2 SWAP1 PUSH2 0x175F JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND EQ PUSH2 0x1492 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x17D6 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1516 SWAP2 SWAP1 PUSH2 0x173F JUMP JUMPDEST PUSH2 0x1532 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D8 SWAP1 PUSH2 0x180D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3EAF072F PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFABC1CBC SWAP1 PUSH1 0x24 ADD PUSH2 0x72B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x15C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15D4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x15F8 SWAP2 SWAP1 PUSH2 0x1723 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1571 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x16C9 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x2D8 JUMP JUMPDEST PUSH2 0x16DE PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1576 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1711 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x171C DUP2 PUSH2 0x1892 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1734 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x171C DUP2 PUSH2 0x1892 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1750 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x171C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1770 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1788 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x171C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17A7 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x17D0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x17 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030343A4E4F545F4F574E4552000000000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030353A52455155495245445F524F4C455F4D495353 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x22 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434F532D3030333A434F4D504F4E454E545F49445F494E56414C PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1251 PUSH1 0xF2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x18A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F 0xAD 0xA8 0xCC CODESIZE 0xA6 DUP4 0x4C 0xBA MLOAD EXP SWAP14 0x1F 0xD1 MSTORE 0x48 0x26 EXTCODESIZE MSIZE GASLIMIT MLOAD CALLCODE SDIV PUSH24 0x38C5FE9A6731EC8E64736F6C634300080200330000000000 ","sourceMap":"488:2163:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1689:172;;;;;;:::i;:::-;;:::i;:::-;;2211:131;;;;;;:::i;:::-;;:::i;2034:159::-;;;;;;:::i;:::-;;:::i;2494:154::-;;;;;;:::i;:::-;;:::i;1869:157::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;2350:136:82:-;;;;;;:::i;:::-;;:::i;1689:172::-;1796:9;700:13;716:9;-1:-1:-1;;;;;716:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;700:36;;747:20;770:10;;;;;;;;;-1:-1:-1;;;;;770:10:82;-1:-1:-1;;;;;770:26:82;;797:9;-1:-1:-1;;;;;797:17:82;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;770:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;747:70;-1:-1:-1;719:10:59;-1:-1:-1;;;;;836:21:82;;;828:57;;;;-1:-1:-1;;;828:57:82;;4305:2:103;828:57:82;;;4287:21:103;4344:2;4324:18;;;4317:30;4383:25;4363:18;;;4356:53;4426:18;;828:57:82;;;;;;;;;904:7;;:36;;-1:-1:-1;;;904:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;904:7:82;;;;:15;;2436:18:103;;904:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;896:84;;;;-1:-1:-1;;;896:84:82;;5880:2:103;896:84:82;;;5862:21:103;5919:2;5899:18;;;5892:30;5958:34;5938:18;;;5931:62;-1:-1:-1;;;6009:18:103;;;6002:33;6052:19;;896:84:82;5852:225:103;896:84:82;1824:10:::1;::::0;:29:::1;::::0;-1:-1:-1;;;1824:29:82;;-1:-1:-1;;;;;2751:32:103;;;1824:29:82::1;::::0;::::1;2733:51:103::0;1824:10:82;;::::1;::::0;:18:::1;::::0;2706::103;;1824:29:82::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1689:172:::0;;;;:::o;2211:131::-;1081:10;;:27;;-1:-1:-1;;;1081:27:82;;;;;2253:25:103;;;2293:2:82;;1058:20;;-1:-1:-1;;;;;1081:10:82;;;;:23;;2226:18:103;;1081:27:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1058:50;-1:-1:-1;;;;;;1127:32:82;;1119:79;;;;-1:-1:-1;;;1119:79:82;;;;;;;:::i;:::-;1211:13;1227:9;-1:-1:-1;;;;;1227:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:10;;1308:31;;-1:-1:-1;;;1308:31:82;;;;;2253:25:103;;;1211:36:82;;-1:-1:-1;1258:20:82;;-1:-1:-1;;;;;1281:10:82;;;;:26;;:10;;1308:27;;2226:18:103;;1308:31:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1258:82;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1361:21:82;;;1353:57;;;;-1:-1:-1;;;1353:57:82;;;;;;;:::i;:::-;1429:7;;:36;;-1:-1:-1;;;1429:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;1429:7:82;;;;:15;;2436:18:103;;1429:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:84;;;;-1:-1:-1;;;1421:84:82;;;;;;;:::i;:::-;2314:10:::1;::::0;:20:::1;::::0;-1:-1:-1;;;2314:20:82;;::::1;::::0;::::1;2253:25:103::0;;;-1:-1:-1;;;;;2314:10:82;;::::1;::::0;:16:::1;::::0;2226:18:103;;2314:20:82::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2211:131:::0;;;;;:::o;2034:159::-;1081:10;;:27;;-1:-1:-1;;;1081:27:82;;;;;2253:25:103;;;2119:2:82;;1058:20;;-1:-1:-1;;;;;1081:10:82;;;;:23;;2226:18:103;;1081:27:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1058:50;-1:-1:-1;;;;;;1127:32:82;;1119:79;;;;-1:-1:-1;;;1119:79:82;;;;;;;:::i;:::-;1211:13;1227:9;-1:-1:-1;;;;;1227:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:10;;1308:31;;-1:-1:-1;;;1308:31:82;;;;;2253:25:103;;;1211:36:82;;-1:-1:-1;1258:20:82;;-1:-1:-1;;;;;1281:10:82;;;;:26;;:10;;1308:27;;2226:18:103;;1308:31:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1258:82;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1361:21:82;;;1353:57;;;;-1:-1:-1;;;1353:57:82;;;;;;;:::i;:::-;1429:7;;:36;;-1:-1:-1;;;1429:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;1429:7:82;;;;:15;;2436:18:103;;1429:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:84;;;;-1:-1:-1;;;1421:84:82;;;;;;;:::i;:::-;2140:45:::1;::::0;-1:-1:-1;;;2140:45:82;;7099:2:103;2140:45:82::1;::::0;::::1;7081:21:103::0;7138:2;7118:18;;;7111:30;7177:34;7157:18;;;7150:62;-1:-1:-1;;;7228:18:103;;;7221:33;7271:19;;2140:45:82::1;7071:225:103::0;2494:154:82;1081:10;;:27;;-1:-1:-1;;;1081:27:82;;;;;2253:25:103;;;2579:2:82;;1058:20;;-1:-1:-1;;;;;1081:10:82;;;;:23;;2226:18:103;;1081:27:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1058:50;-1:-1:-1;;;;;;1127:32:82;;1119:79;;;;-1:-1:-1;;;1119:79:82;;;;;;;:::i;:::-;1211:13;1227:9;-1:-1:-1;;;;;1227:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:10;;1308:31;;-1:-1:-1;;;1308:31:82;;;;;2253:25:103;;;1211:36:82;;-1:-1:-1;1258:20:82;;-1:-1:-1;;;;;1281:10:82;;;;:26;;:10;;1308:27;;2226:18:103;;1308:31:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1258:82;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1361:21:82;;;1353:57;;;;-1:-1:-1;;;1353:57:82;;;;;;;:::i;:::-;1429:7;;:36;;-1:-1:-1;;;1429:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;1429:7:82;;;;:15;;2436:18:103;;1429:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:84;;;;-1:-1:-1;;;1421:84:82;;;;;;;:::i;:::-;2600:10:::1;::::0;:40:::1;::::0;-1:-1:-1;;;2600:40:82;;::::1;::::0;::::1;2253:25:103::0;;;-1:-1:-1;;;;;2600:10:82;;::::1;::::0;:36:::1;::::0;2226:18:103;;2600:40:82::1;2208:76:103::0;1869:157:82;1081:10;;:27;;-1:-1:-1;;;1081:27:82;;;;;2253:25:103;;;1952:2:82;;1058:20;;-1:-1:-1;;;;;1081:10:82;;;;:23;;2226:18:103;;1081:27:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1058:50;-1:-1:-1;;;;;;1127:32:82;;1119:79;;;;-1:-1:-1;;;1119:79:82;;;;;;;:::i;:::-;1211:13;1227:9;-1:-1:-1;;;;;1227:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:10;;1308:31;;-1:-1:-1;;;1308:31:82;;;;;2253:25:103;;;1211:36:82;;-1:-1:-1;1258:20:82;;-1:-1:-1;;;;;1281:10:82;;;;:26;;:10;;1308:27;;2226:18:103;;1308:31:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1258:82;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1361:21:82;;;1353:57;;;;-1:-1:-1;;;1353:57:82;;;;;;;:::i;:::-;1429:7;;:36;;-1:-1:-1;;;1429:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;1429:7:82;;;;:15;;2436:18:103;;1429:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:84;;;;-1:-1:-1;;;1421:84:82;;;;;;;:::i;:::-;1973:45:::1;::::0;-1:-1:-1;;;1973:45:82;;5476:2:103;1973:45:82::1;::::0;::::1;5458:21:103::0;5515:2;5495:18;;;5488:30;5554:34;5534:18;;;5527:62;-1:-1:-1;;;5605:18:103;;;5598:33;5648:19;;1973:45:82::1;5448:225:103::0;1143:232:88;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;4657:2:103;3146:190:47;;;4639:21:103;4696:2;4676:18;;;4669:30;4735:34;4715:18;;;4708:62;-1:-1:-1;;;4786:18:103;;;4779:44;4840:19;;3146:190:47;4629:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;3298:36:103;;3531:14:47;;3286:2:103;3271:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;2350:136:82:-;1081:10;;:27;;-1:-1:-1;;;1081:27:82;;;;;2253:25:103;;;2435:2:82;;1058:20;;-1:-1:-1;;;;;1081:10:82;;;;:23;;2226:18:103;;1081:27:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1058:50;-1:-1:-1;;;;;;1127:32:82;;1119:79;;;;-1:-1:-1;;;1119:79:82;;;;;;;:::i;:::-;1211:13;1227:9;-1:-1:-1;;;;;1227:18:82;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:10;;1308:31;;-1:-1:-1;;;1308:31:82;;;;;2253:25:103;;;1211:36:82;;-1:-1:-1;1258:20:82;;-1:-1:-1;;;;;1281:10:82;;;;:26;;:10;;1308:27;;2226:18:103;;1308:31:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1281:59;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1258:82;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1361:21:82;;;1353:57;;;;-1:-1:-1;;;1353:57:82;;;;;;;:::i;:::-;1429:7;;:36;;-1:-1:-1;;;1429:36:82;;;;;2463:25:103;;;-1:-1:-1;;;;;2524:32:103;;;2504:18;;;2497:60;1429:7:82;;;;:15;;2436:18:103;;1429:36:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:84;;;;-1:-1:-1;;;1421:84:82;;;;;;;:::i;:::-;2456:10:::1;::::0;:22:::1;::::0;-1:-1:-1;;;2456:22:82;;::::1;::::0;::::1;2253:25:103::0;;;-1:-1:-1;;;;;2456:10:82;;::::1;::::0;:18:::1;::::0;2226::103;;2456:22:82::1;2208:76:103::0;1175:320:58;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;2253:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;2226:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;3547:2:103;1703:113:88;;;3529:21:103;3586:2;3566:18;;;3559:30;3625:34;3605:18;;;3598:62;-1:-1:-1;;;3676:18:103;;;3669:35;3721:19;;1703:113:88;3519:227:103;1533:148:82;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;6284:2:103;4880:69:47;;;6266:21:103;6323:2;6303:18;;;6296:30;6362:34;6342:18;;;6335:62;-1:-1:-1;;;6413:18:103;;;6406:41;6464:19;;4880:69:47;6256:233:103;4880:69:47;1640:32:82::1;-1:-1:-1::0;;;1640:19:82::1;:32::i;:::-;1607:10;:66:::0;;-1:-1:-1;;;;;;1607:66:82::1;-1:-1:-1::0;;;;;1607:66:82;;;::::1;::::0;;;::::1;::::0;;1533:148::o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:297::-;;662:2;650:9;641:7;637:23;633:32;630:2;;;683:6;675;668:22;630:2;720:9;714:16;773:5;766:13;759:21;752:5;749:32;739:2;;800:6;792;785:22;844:194;;967:2;955:9;946:7;942:23;938:32;935:2;;;988:6;980;973:22;935:2;-1:-1:-1;1016:16:103;;925:113;-1:-1:-1;925:113:103:o;1609:298::-;;1750:2;1738:9;1729:7;1725:23;1721:32;1718:2;;;1771:6;1763;1756:22;1718:2;1808:9;1802:16;1847:1;1840:5;1837:12;1827:2;;1868:6;1860;1853:22;1912:190;;2024:2;2012:9;2003:7;1999:23;1995:32;1992:2;;;2045:6;2037;2030:22;1992:2;-1:-1:-1;2073:23:103;;1982:120;-1:-1:-1;1982:120:103:o;2795:346::-;2945:2;2930:18;;2978:1;2967:13;;2957:2;;3023:10;3018:3;3014:20;3011:1;3004:31;3058:4;3055:1;3048:15;3086:4;3083:1;3076:15;2957:2;3110:25;;;2912:229;:::o;3751:347::-;3953:2;3935:21;;;3992:2;3972:18;;;3965:30;4031:25;4026:2;4011:18;;4004:53;4089:2;4074:18;;3925:173::o;4870:399::-;5072:2;5054:21;;;5111:2;5091:18;;;5084:30;5150:34;5145:2;5130:18;;5123:62;-1:-1:-1;;;5216:2:103;5201:18;;5194:33;5259:3;5244:19;;5044:225::o;6494:398::-;6696:2;6678:21;;;6735:2;6715:18;;;6708:30;6774:34;6769:2;6754:18;;6747:62;-1:-1:-1;;;6840:2:103;6825:18;;6818:32;6882:3;6867:19;;6668:224::o;7483:131::-;-1:-1:-1;;;;;7558:31:103;;7548:42;;7538:2;;7604:1;7601;7594:12;7538:2;7528:86;:::o"},"methodIdentifiers":{"archive(uint256)":"93c829fc","initialize(address)":"c4d66de8","pause(uint256)":"136439dd","propose(address)":"01267951","stake(uint256)":"a694fc3a","unpause(uint256)":"fabc1cbc","withdraw(uint256)":"2e1a7d4d"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"component\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/ComponentOwnerService.sol\":\"ComponentOwnerService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/services/ComponentOwnerService.sol\":{\"keccak256\":\"0xcff52fe17865cf4f1bd373a5e98060ca6982ae8168da41e2e76596e9291c3834\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://19b0f8ecbf6547e41fb8e2029b4e76f124363e40a8d2637b019a9421a7d0804e\",\"dweb:/ipfs/QmUdJipqY2TBXamtB6wT2ogP8TmE5EWkUPPnhj9BpKyKww\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/services/InstanceOperatorService.sol":{"InstanceOperatorService":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"adjustStakingRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"archive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"}],"name":"createFeeSpecification","outputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"}],"name":"createRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregisterInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"}],"name":"invalidateRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newRelease","type":"bytes32"}],"name":"prepareRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"registerInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"resume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setCapitalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"componentType","type":"uint16"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"setDefaultStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"walletAddress","type":"address"}],"name":"setInstanceWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"componentId","type":"uint256"},{"internalType":"uint256","name":"fixedFee","type":"uint256"},{"internalType":"uint256","name":"fractionalFee","type":"uint256"},{"internalType":"bytes","name":"feeCalculationData","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct ITreasury.FeeSpecification","name":"feeSpec","type":"tuple"}],"name":"setPremiumFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"address","name":"erc20Address","type":"address"}],"name":"setProductToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"riskpoolWalletAddress","type":"address"}],"name":"setRiskpoolWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"suspend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610019610027565b610022336100e7565b610139565b600054610100900460ff16156100935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611be380620001496000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063cc9cf8cd11610097578063d547741f11610071578063d547741f1461039b578063d5fe1f10146103ae578063dc527b08146103b6578063f2fde38b146103c9576101c4565b8063cc9cf8cd14610362578063d17d023314610375578063d22057a914610388576101c4565b8063b759f954116100d3578063b759f95414610316578063c42994a214610329578063c4d66de81461033c578063cab2504d1461034f576101c4565b80638da5cb5b146102d557806393c829fc146102f0578063a0355f4e14610303576101c4565b80634b8658461161016657806372beb6fb1161014057806372beb6fb1461028957806386039aed1461029c578063893917ea146102af5780638ca946aa146102c2576101c4565b80634b8658461461024557806362f0ab5514610258578063715018a614610281576101c4565b806320813154116101a257806320813154146101f95780632f2ff15d1461020c578063394c78ba1461021f578063414000b514610232576101c4565b806301132a7f146101c957806310a81c4a146101de5780631d5e7314146101e6575b600080fd5b6101dc6101d7366004611794565b6103dc565b005b6101dc610474565b6101dc6101f436600461175c565b610508565b6101dc6102073660046116f4565b6105ac565b6101dc61021a36600461170c565b61060c565b6101dc61022d36600461186c565b6106a1565b6101dc6102403660046116f4565b61071f565b6101dc6102533660046116f4565b61077a565b61026b610266366004611920565b6107d5565b6040516102789190611a82565b60405180910390f35b6101dc6108a4565b6101dc6102973660046118ef565b6108b8565b6101dc6102aa3660046118dd565b610936565b6101dc6102bd3660046116f4565b610999565b6101dc6102d0366004611794565b6109f9565b6002546040516001600160a01b039091168152602001610278565b6101dc6102fe3660046116f4565b610a53565b6101dc6103113660046116f4565b610aae565b6101dc6103243660046116f4565b610b09565b6101dc6103373660046116f4565b610d58565b6101dc61034a366004611695565b610db3565b6101dc61035d366004611695565b610f38565b6101dc6103703660046118dd565b610f94565b6101dc6103833660046116f4565b610ff7565b6101dc61039636600461170c565b611052565b6101dc6103a936600461170c565b6110bc565b6101dc61111f565b6101dc6103c436600461173b565b611199565b6101dc6103d7366004611695565b611200565b6002546001600160a01b0316331461040f5760405162461bcd60e51b8152600401610406906119a9565b60405180910390fd5b6005546040516301132a7f60e01b81526001600160a01b03909116906301132a7f9061043f9084906004016119ec565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b5050505050565b6002546001600160a01b0316331461049e5760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663046f7da26040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b50505050565b6002546001600160a01b031633146105325760405162461bcd60e51b8152600401610406906119a9565b6000546040516307579cc560e21b815260048101859052602481018490526001600160a01b0383811660448301526201000090920490911690631d5e7314906064015b600060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b50505050505050565b6002546001600160a01b031633146105d65760405162461bcd60e51b8152600401610406906119a9565b6000546040516308204c5560e21b815260048101839052620100009091046001600160a01b03169063208131549060240161043f565b6002546001600160a01b031633146106365760405162461bcd60e51b8152600401610406906119a9565b600154604051632f2ff15d60e01b8152600481018490526001600160a01b03838116602483015290911690632f2ff15d906044015b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505050565b6002546001600160a01b031633146106cb5760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031303a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146107495760405162461bcd60e51b8152600401610406906119a9565b60035460405163414000b560e01b8152600481018390526001600160a01b039091169063414000b59060240161043f565b6002546001600160a01b031633146107a45760405162461bcd60e51b8152600401610406906119a9565b6003546040516325c32c2360e11b8152600481018390526001600160a01b0390911690634b8658469060240161043f565b61080e6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b6005546040516362f0ab5560e01b81526001600160a01b03909116906362f0ab55906108469089908990899089908990600401611af4565b60006040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089a91908101906117cc565b9695505050505050565b6108ac611276565b6108b660006112d0565b565b6002546001600160a01b031633146108e25760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031313a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146109605760405162461bcd60e51b8152600401610406906119a9565b6005546040516386039aed60e01b8152600481018490526001600160a01b038381166024830152909116906386039aed9060440161066b565b6002546001600160a01b031633146109c35760405162461bcd60e51b8152600401610406906119a9565b60005460405163449c8bf560e11b815260048101839052620100009091046001600160a01b03169063893917ea9060240161043f565b6002546001600160a01b03163314610a235760405162461bcd60e51b8152600401610406906119a9565b600554604051634654a35560e11b81526001600160a01b0390911690638ca946aa9061043f9084906004016119ec565b6002546001600160a01b03163314610a7d5760405162461bcd60e51b8152600401610406906119a9565b6003546040516307aed1d360e11b8152600481018390526001600160a01b0390911690630f5da3a69060240161043f565b6002546001600160a01b03163314610ad85760405162461bcd60e51b8152600401610406906119a9565b60035460405163501aafa760e11b8152600481018390526001600160a01b039091169063a0355f4e9060240161043f565b6002546001600160a01b03163314610b335760405162461bcd60e51b8152600401610406906119a9565b600354604051632dd67e5560e21b8152600481018390526001600160a01b039091169063b759f95490602401600060405180830381600087803b158015610b7957600080fd5b505af1158015610b8d573d6000803e3d6000fd5b5050600354604051630e48080360e21b8152600481018590526001600160a01b039091169250633920200c915060240160206040518083038186803b158015610bd557600080fd5b505afa158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0d91906116d4565b15610d55576003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da189060240160206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f91906116b8565b90506000819050600460009054906101000a90046001600160a01b03166001600160a01b031663f93b367384836001600160a01b03166370d2fe536040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c91906118c5565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401610575565b50565b6002546001600160a01b03163314610d825760405162461bcd60e51b8152600401610406906119a9565b60015460405163274b02a760e01b8152600481018390526001600160a01b039091169063274b02a79060240161043f565b600054610100900460ff1615808015610dd35750600054600160ff909116105b80610df45750610de230611322565b158015610df4575060005460ff166001145b610e575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610406565b6000805460ff191660011790558015610e7a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610ea4600090565b6541636365737360d01b14610ee657610ec56541636365737360d01b611335565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610eee61141d565b8015610f34576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b03163314610f625760405162461bcd60e51b8152600401610406906119a9565b60055460405163cab2504d60e01b81526001600160a01b0383811660048301529091169063cab2504d9060240161043f565b6002546001600160a01b03163314610fbe5760405162461bcd60e51b8152600401610406906119a9565b60055460405163cc9cf8cd60e01b8152600481018490526001600160a01b0383811660248301529091169063cc9cf8cd9060440161066b565b6002546001600160a01b031633146110215760405162461bcd60e51b8152600401610406906119a9565b60015460405163d17d023360e01b8152600481018390526001600160a01b039091169063d17d02339060240161043f565b6002546001600160a01b0316331461107c5760405162461bcd60e51b8152600401610406906119a9565b60005460405163d22057a960e01b8152600481018490526001600160a01b038381166024830152620100009092049091169063d22057a99060440161066b565b6002546001600160a01b031633146110e65760405162461bcd60e51b8152600401610406906119a9565b60015460405163d547741f60e01b8152600481018490526001600160a01b0383811660248301529091169063d547741f9060440161066b565b6002546001600160a01b031633146111495760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663e6400bbe6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b6002546001600160a01b031633146111c35760405162461bcd60e51b8152600401610406906119a9565b600054604051631b8a4f6160e31b81526004810184905260248101839052620100009091046001600160a01b03169063dc527b089060440161066b565b611208611276565b6001600160a01b03811661126d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610406565b610d55816112d0565b6002546001600160a01b031633146108b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610406565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561137f57600080fd5b505afa158015611393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b791906116b8565b90506001600160a01b0381166113305760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610406565b600054610100900460ff166114885760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610406565b61149d6810dbdb5c1bdb995b9d60ba1b611335565b600380546001600160a01b0319166001600160a01b03929092169190911790556114cd63141bdbdb60e21b611335565b600480546001600160a01b0319166001600160a01b039290921691909117905561150167547265617375727960c01b611335565b600580546001600160a01b0319166001600160a01b039290921691909117905561153061152b3390565b6112d0565b611538611540565b6108b66115a1565b60006115596a213ab7323632aa37b5b2b760a91b611335565b9050600061156f6542756e646c6560d01b611335565b6040516328e2dc5360e21b81526001600160a01b0380831660048301529192509083169063a38b714c9060240161066b565b60006115b56541636365737360d01b611335565b60405163c19010a760e01b81523060048201529091506001600160a01b0382169063c19010a79060240161043f565b60008083601f8401126115f5578182fd5b50813567ffffffffffffffff81111561160c578182fd5b60208301915083602082850101111561162457600080fd5b9250929050565b600082601f83011261163b578081fd5b815167ffffffffffffffff81111561165557611655611b82565b611668601f8201601f1916602001611b25565b81815284602083860101111561167c578283fd5b61168d826020830160208701611b56565b949350505050565b6000602082840312156116a6578081fd5b81356116b181611b98565b9392505050565b6000602082840312156116c9578081fd5b81516116b181611b98565b6000602082840312156116e5578081fd5b815180151581146116b1578182fd5b600060208284031215611705578081fd5b5035919050565b6000806040838503121561171e578081fd5b82359150602083013561173081611b98565b809150509250929050565b6000806040838503121561174d578182fd5b50508035926020909101359150565b600080600060608486031215611770578081fd5b8335925060208401359150604084013561178981611b98565b809150509250925092565b6000602082840312156117a5578081fd5b813567ffffffffffffffff8111156117bb578182fd5b820160c081850312156116b1578182fd5b6000602082840312156117dd578081fd5b815167ffffffffffffffff808211156117f4578283fd5b9083019060c08286031215611807578283fd5b61181160c0611b25565b82518152602083015160208201526040830151604082015260608301518281111561183a578485fd5b6118468782860161162b565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600080600060408486031215611880578283fd5b833561ffff81168114611891578384fd5b9250602084013567ffffffffffffffff8111156118ac578283fd5b6118b8868287016115e4565b9497909650939450505050565b6000602082840312156118d6578081fd5b5051919050565b6000806040838503121561171e578182fd5b600080600060408486031215611903578081fd5b83359250602084013567ffffffffffffffff8111156118ac578182fd5b600080600080600060808688031215611937578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115611962578182fd5b61196e888289016115e4565b969995985093965092949392505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60208082526023908201527f4552524f523a494f532d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000602082528235602083015260208301356040830152604083013560608301526060830135601e19843603018112611a23578182fd5b8301803567ffffffffffffffff811115611a3b578283fd5b803603851315611a49578283fd5b60c06080850152611a6160e08501826020850161197f565b915050608084013560a084015260a084013560c08401528091505092915050565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015280518060e0850152610100611aca8282870160208601611b56565b608086015160a0868101919091529095015160c0850152601f01601f191690920190920192915050565b600086825285602083015284604083015260806060830152611b1a60808301848661197f565b979650505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611b4e57611b4e611b82565b604052919050565b60005b83811015611b71578181015183820152602001611b59565b838111156105025750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d5557600080fdfea2646970667358221220333f2e0637b224e8cc6c846170351f725e19eaaf413aa2f641b275607074212c64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x27 JUMP JUMPDEST PUSH2 0x22 CALLER PUSH2 0xE7 JUMP JUMPDEST PUSH2 0x139 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xE5 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x1BE3 DUP1 PUSH3 0x149 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xCC9CF8CD GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x39B JUMPI DUP1 PUSH4 0xD5FE1F10 EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x3B6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3C9 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0xCC9CF8CD EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0xD17D0233 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x388 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0xB759F954 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0xB759F954 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0xC42994A2 EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x33C JUMPI DUP1 PUSH4 0xCAB2504D EQ PUSH2 0x34F JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x93C829FC EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0xA0355F4E EQ PUSH2 0x303 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x4B865846 GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x72BEB6FB GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x72BEB6FB EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0x86039AED EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0x8CA946AA EQ PUSH2 0x2C2 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x4B865846 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x62F0AB55 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x281 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x20813154 GT PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x394C78BA EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x414000B5 EQ PUSH2 0x232 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x1132A7F EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x10A81C4A EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x1E6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x3DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DC PUSH2 0x474 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x175C JUMP JUMPDEST PUSH2 0x508 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x60C JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x186C JUMP JUMPDEST PUSH2 0x6A1 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x240 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x71F JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x253 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x77A JUMP JUMPDEST PUSH2 0x26B PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x1920 JUMP JUMPDEST PUSH2 0x7D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DC PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x8B8 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x18DD JUMP JUMPDEST PUSH2 0x936 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2BD CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x999 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x9F9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x278 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xAAE JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x324 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x337 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xD58 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x35D CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0xF38 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x370 CALLDATASIZE PUSH1 0x4 PUSH2 0x18DD JUMP JUMPDEST PUSH2 0xF94 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x383 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xFF7 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x396 CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x1052 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x10BC JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x111F JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x173B JUMP JUMPDEST PUSH2 0x1199 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0x1200 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x40F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1132A7F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1132A7F SWAP1 PUSH2 0x43F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x19EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x46D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x49E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x46F7DA2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x502 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x532 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7579CC5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0x1D5E7314 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x8204C55 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x20813154 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F2FF15D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x2F2FF15D SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x685 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x699 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3031303A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x414000B5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x414000B5 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x25C32C23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4B865846 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH2 0x80E PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62F0AB55 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x62F0AB55 SWAP1 PUSH2 0x846 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1AF4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x872 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x89A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x17CC JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8AC PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x8B6 PUSH1 0x0 PUSH2 0x12D0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3031313A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x960 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x86039AED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x86039AED SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x9C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x449C8BF5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x893917EA SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA23 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4654A355 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8CA946AA SWAP1 PUSH2 0x43F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x19EC JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7AED1D3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xF5DA3A6 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xAD8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x501AAFA7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA0355F4E SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB33 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2DD67E55 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB759F954 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB8D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x3920200C SWAP2 POP PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBE9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC0D SWAP2 SWAP1 PUSH2 0x16D4 JUMP JUMPDEST ISZERO PUSH2 0xD55 JUMPI PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC6B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC8F SWAP2 SWAP1 PUSH2 0x16B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF93B3673 DUP5 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70D2FE53 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD08 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD2C SWAP2 SWAP1 PUSH2 0x18C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x575 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x274B02A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x274B02A7 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xDD3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xDF4 JUMPI POP PUSH2 0xDE2 ADDRESS PUSH2 0x1322 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xDF4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xE57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xE7A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xEA4 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xEE6 JUMPI PUSH2 0xEC5 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xEEE PUSH2 0x141D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF34 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xF62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCAB2504D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xCAB2504D SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xFBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCC9CF8CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xCC9CF8CD SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1021 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD17D0233 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD17D0233 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x107C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD22057A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0xD22057A9 SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x10E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD547741F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xD547741F SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1149 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE6400BBE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x11C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B8A4F61 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xDC527B08 SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH2 0x1208 PUSH2 0x1276 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x126D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH2 0xD55 DUP2 PUSH2 0x12D0 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x137F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1393 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13B7 SWAP2 SWAP1 PUSH2 0x16B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1330 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1488 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH2 0x149D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14CD PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1501 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1530 PUSH2 0x152B CALLER SWAP1 JUMP JUMPDEST PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x1538 PUSH2 0x1540 JUMP JUMPDEST PUSH2 0x8B6 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1559 PUSH11 0x213AB7323632AA37B5B2B7 PUSH1 0xA9 SHL PUSH2 0x1335 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x156F PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x28E2DC53 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP4 AND SWAP1 PUSH4 0xA38B714C SWAP1 PUSH1 0x24 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B5 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC19010A7 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC19010A7 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x15F5 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x160C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x163B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1655 JUMPI PUSH2 0x1655 PUSH2 0x1B82 JUMP JUMPDEST PUSH2 0x1668 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1B25 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x167C JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x168D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1B56 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16B1 DUP2 PUSH2 0x1B98 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x16B1 DUP2 PUSH2 0x1B98 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16E5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x16B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1705 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1730 DUP2 PUSH2 0x1B98 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x174D JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1770 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x1789 DUP2 PUSH2 0x1B98 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17A5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17BB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0xC0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x16B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x17F4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x1807 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x1811 PUSH1 0xC0 PUSH2 0x1B25 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x183A JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1846 DUP8 DUP3 DUP7 ADD PUSH2 0x162B JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1880 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1891 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18AC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x18B8 DUP7 DUP3 DUP8 ADD PUSH2 0x15E4 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18D6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1903 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18AC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1937 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x196E DUP9 DUP3 DUP10 ADD PUSH2 0x15E4 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1A23 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A3B JUMPI DUP3 DUP4 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP6 SGT ISZERO PUSH2 0x1A49 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0xC0 PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x1A61 PUSH1 0xE0 DUP6 ADD DUP3 PUSH1 0x20 DUP6 ADD PUSH2 0x197F JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE DUP1 MLOAD DUP1 PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 PUSH2 0x1ACA DUP3 DUP3 DUP8 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1B56 JUMP JUMPDEST PUSH1 0x80 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 SWAP3 ADD SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1B1A PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x197F JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1B4E JUMPI PUSH2 0x1B4E PUSH2 0x1B82 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B71 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1B59 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x502 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD55 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER EXTCODEHASH 0x2E MOD CALLDATACOPY 0xB2 0x24 0xE8 0xCC PUSH13 0x846170351F725E19EAAF413AA2 0xF6 COINBASE 0xB2 PUSH22 0x607074212C64736F6C63430008020033000000000000 ","sourceMap":"786:6300:83:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;936:32:41;719:10:59;936:18:41;:32::i;:::-;786:6300:83;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;2433:187:41:-;2525:6;;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;519:87:103:-;786:6300:83;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15943:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"86:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"135:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"144:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"154:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"137:6:103"},"nodeType":"YulFunctionCall","src":"137:26:103"},"nodeType":"YulExpressionStatement","src":"137:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"114:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"122:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"110:3:103"},"nodeType":"YulFunctionCall","src":"110:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"129:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"106:3:103"},"nodeType":"YulFunctionCall","src":"106:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"99:6:103"},"nodeType":"YulFunctionCall","src":"99:35:103"},"nodeType":"YulIf","src":"96:2:103"},{"nodeType":"YulAssignment","src":"174:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"197:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"184:12:103"},"nodeType":"YulFunctionCall","src":"184:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"174:6:103"}]},{"body":{"nodeType":"YulBlock","src":"247:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"256:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"266:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"249:6:103"},"nodeType":"YulFunctionCall","src":"249:26:103"},"nodeType":"YulExpressionStatement","src":"249:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"219:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"227:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"216:2:103"},"nodeType":"YulFunctionCall","src":"216:30:103"},"nodeType":"YulIf","src":"213:2:103"},{"nodeType":"YulAssignment","src":"286:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"302:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"310:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"298:3:103"},"nodeType":"YulFunctionCall","src":"298:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"286:8:103"}]},{"body":{"nodeType":"YulBlock","src":"367:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"376:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"379:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"369:6:103"},"nodeType":"YulFunctionCall","src":"369:12:103"},"nodeType":"YulExpressionStatement","src":"369:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"338:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"346:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"334:3:103"},"nodeType":"YulFunctionCall","src":"334:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"355:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"330:3:103"},"nodeType":"YulFunctionCall","src":"330:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"362:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"327:2:103"},"nodeType":"YulFunctionCall","src":"327:39:103"},"nodeType":"YulIf","src":"324:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"49:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"57:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"65:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"75:6:103","type":""}],"src":"14:375:103"},{"body":{"nodeType":"YulBlock","src":"457:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"506:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"515:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"522:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"508:6:103"},"nodeType":"YulFunctionCall","src":"508:20:103"},"nodeType":"YulExpressionStatement","src":"508:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"485:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"493:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"481:3:103"},"nodeType":"YulFunctionCall","src":"481:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"500:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"477:3:103"},"nodeType":"YulFunctionCall","src":"477:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"470:6:103"},"nodeType":"YulFunctionCall","src":"470:35:103"},"nodeType":"YulIf","src":"467:2:103"},{"nodeType":"YulVariableDeclaration","src":"539:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"555:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"549:5:103"},"nodeType":"YulFunctionCall","src":"549:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"543:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"601:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"603:16:103"},"nodeType":"YulFunctionCall","src":"603:18:103"},"nodeType":"YulExpressionStatement","src":"603:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"577:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"581:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"574:2:103"},"nodeType":"YulFunctionCall","src":"574:26:103"},"nodeType":"YulIf","src":"571:2:103"},{"nodeType":"YulVariableDeclaration","src":"632:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"675:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"679:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"671:3:103"},"nodeType":"YulFunctionCall","src":"671:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"690:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"686:3:103"},"nodeType":"YulFunctionCall","src":"686:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"667:3:103"},"nodeType":"YulFunctionCall","src":"667:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"696:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"663:3:103"},"nodeType":"YulFunctionCall","src":"663:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"647:15:103"},"nodeType":"YulFunctionCall","src":"647:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"636:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"718:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"727:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"711:6:103"},"nodeType":"YulFunctionCall","src":"711:19:103"},"nodeType":"YulExpressionStatement","src":"711:19:103"},{"body":{"nodeType":"YulBlock","src":"778:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"787:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"794:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"780:6:103"},"nodeType":"YulFunctionCall","src":"780:20:103"},"nodeType":"YulExpressionStatement","src":"780:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"753:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"761:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"749:3:103"},"nodeType":"YulFunctionCall","src":"749:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"766:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"745:3:103"},"nodeType":"YulFunctionCall","src":"745:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"773:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"742:2:103"},"nodeType":"YulFunctionCall","src":"742:35:103"},"nodeType":"YulIf","src":"739:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"837:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"845:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"833:3:103"},"nodeType":"YulFunctionCall","src":"833:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"856:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"852:3:103"},"nodeType":"YulFunctionCall","src":"852:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"872:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"811:21:103"},"nodeType":"YulFunctionCall","src":"811:64:103"},"nodeType":"YulExpressionStatement","src":"811:64:103"},{"nodeType":"YulAssignment","src":"884:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"893:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"884:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"431:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"439:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"447:5:103","type":""}],"src":"394:512:103"},{"body":{"nodeType":"YulBlock","src":"981:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1027:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1036:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1044:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1029:6:103"},"nodeType":"YulFunctionCall","src":"1029:22:103"},"nodeType":"YulExpressionStatement","src":"1029:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1002:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1011:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"998:3:103"},"nodeType":"YulFunctionCall","src":"998:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1023:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"994:3:103"},"nodeType":"YulFunctionCall","src":"994:32:103"},"nodeType":"YulIf","src":"991:2:103"},{"nodeType":"YulVariableDeclaration","src":"1062:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1088:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1075:12:103"},"nodeType":"YulFunctionCall","src":"1075:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1066:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1132:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1107:24:103"},"nodeType":"YulFunctionCall","src":"1107:31:103"},"nodeType":"YulExpressionStatement","src":"1107:31:103"},{"nodeType":"YulAssignment","src":"1147:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1157:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1147:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"947:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"958:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"970:6:103","type":""}],"src":"911:257:103"},{"body":{"nodeType":"YulBlock","src":"1254:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1300:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1309:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1317:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1302:6:103"},"nodeType":"YulFunctionCall","src":"1302:22:103"},"nodeType":"YulExpressionStatement","src":"1302:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1275:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1284:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1271:3:103"},"nodeType":"YulFunctionCall","src":"1271:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1296:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1267:3:103"},"nodeType":"YulFunctionCall","src":"1267:32:103"},"nodeType":"YulIf","src":"1264:2:103"},{"nodeType":"YulVariableDeclaration","src":"1335:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1354:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1348:5:103"},"nodeType":"YulFunctionCall","src":"1348:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1339:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1398:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1373:24:103"},"nodeType":"YulFunctionCall","src":"1373:31:103"},"nodeType":"YulExpressionStatement","src":"1373:31:103"},{"nodeType":"YulAssignment","src":"1413:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1423:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1413:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1220:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1231:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1243:6:103","type":""}],"src":"1173:261:103"},{"body":{"nodeType":"YulBlock","src":"1517:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1563:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1572:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1580:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1565:6:103"},"nodeType":"YulFunctionCall","src":"1565:22:103"},"nodeType":"YulExpressionStatement","src":"1565:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1538:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1547:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1534:3:103"},"nodeType":"YulFunctionCall","src":"1534:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1559:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1530:3:103"},"nodeType":"YulFunctionCall","src":"1530:32:103"},"nodeType":"YulIf","src":"1527:2:103"},{"nodeType":"YulVariableDeclaration","src":"1598:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1617:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1611:5:103"},"nodeType":"YulFunctionCall","src":"1611:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1602:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1680:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1689:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1697:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1682:6:103"},"nodeType":"YulFunctionCall","src":"1682:22:103"},"nodeType":"YulExpressionStatement","src":"1682:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1649:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1670:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1663:6:103"},"nodeType":"YulFunctionCall","src":"1663:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1656:6:103"},"nodeType":"YulFunctionCall","src":"1656:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1646:2:103"},"nodeType":"YulFunctionCall","src":"1646:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1639:6:103"},"nodeType":"YulFunctionCall","src":"1639:40:103"},"nodeType":"YulIf","src":"1636:2:103"},{"nodeType":"YulAssignment","src":"1715:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1725:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1715:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1483:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1494:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1506:6:103","type":""}],"src":"1439:297:103"},{"body":{"nodeType":"YulBlock","src":"1811:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1857:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1866:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1874:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1859:6:103"},"nodeType":"YulFunctionCall","src":"1859:22:103"},"nodeType":"YulExpressionStatement","src":"1859:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1832:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1841:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1828:3:103"},"nodeType":"YulFunctionCall","src":"1828:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1853:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1824:3:103"},"nodeType":"YulFunctionCall","src":"1824:32:103"},"nodeType":"YulIf","src":"1821:2:103"},{"nodeType":"YulAssignment","src":"1892:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1915:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1902:12:103"},"nodeType":"YulFunctionCall","src":"1902:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1892:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1788:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1800:6:103","type":""}],"src":"1741:190:103"},{"body":{"nodeType":"YulBlock","src":"2023:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"2069:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2078:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2086:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2071:6:103"},"nodeType":"YulFunctionCall","src":"2071:22:103"},"nodeType":"YulExpressionStatement","src":"2071:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2044:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2053:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2040:3:103"},"nodeType":"YulFunctionCall","src":"2040:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2065:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2036:3:103"},"nodeType":"YulFunctionCall","src":"2036:32:103"},"nodeType":"YulIf","src":"2033:2:103"},{"nodeType":"YulAssignment","src":"2104:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2127:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2114:12:103"},"nodeType":"YulFunctionCall","src":"2114:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2104:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2146:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2176:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2187:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2172:3:103"},"nodeType":"YulFunctionCall","src":"2172:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2159:12:103"},"nodeType":"YulFunctionCall","src":"2159:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2150:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2225:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2200:24:103"},"nodeType":"YulFunctionCall","src":"2200:31:103"},"nodeType":"YulExpressionStatement","src":"2200:31:103"},{"nodeType":"YulAssignment","src":"2240:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2250:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2240:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1981:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1992:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2004:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2012:6:103","type":""}],"src":"1936:325:103"},{"body":{"nodeType":"YulBlock","src":"2353:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2399:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2408:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2416:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2401:6:103"},"nodeType":"YulFunctionCall","src":"2401:22:103"},"nodeType":"YulExpressionStatement","src":"2401:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2374:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2383:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2370:3:103"},"nodeType":"YulFunctionCall","src":"2370:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2395:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2366:3:103"},"nodeType":"YulFunctionCall","src":"2366:32:103"},"nodeType":"YulIf","src":"2363:2:103"},{"nodeType":"YulAssignment","src":"2434:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2457:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2444:12:103"},"nodeType":"YulFunctionCall","src":"2444:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2434:6:103"}]},{"nodeType":"YulAssignment","src":"2476:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2503:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2514:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2499:3:103"},"nodeType":"YulFunctionCall","src":"2499:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2486:12:103"},"nodeType":"YulFunctionCall","src":"2486:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2476:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2311:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2322:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2334:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2342:6:103","type":""}],"src":"2266:258:103"},{"body":{"nodeType":"YulBlock","src":"2633:289:103","statements":[{"body":{"nodeType":"YulBlock","src":"2679:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2688:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2696:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2681:6:103"},"nodeType":"YulFunctionCall","src":"2681:22:103"},"nodeType":"YulExpressionStatement","src":"2681:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2654:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2663:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2650:3:103"},"nodeType":"YulFunctionCall","src":"2650:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2675:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2646:3:103"},"nodeType":"YulFunctionCall","src":"2646:32:103"},"nodeType":"YulIf","src":"2643:2:103"},{"nodeType":"YulAssignment","src":"2714:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2737:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2724:12:103"},"nodeType":"YulFunctionCall","src":"2724:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2714:6:103"}]},{"nodeType":"YulAssignment","src":"2756:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2783:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2794:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2779:3:103"},"nodeType":"YulFunctionCall","src":"2779:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2766:12:103"},"nodeType":"YulFunctionCall","src":"2766:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2756:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2807:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2837:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2848:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2833:3:103"},"nodeType":"YulFunctionCall","src":"2833:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2820:12:103"},"nodeType":"YulFunctionCall","src":"2820:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2811:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2886:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2861:24:103"},"nodeType":"YulFunctionCall","src":"2861:31:103"},"nodeType":"YulExpressionStatement","src":"2861:31:103"},{"nodeType":"YulAssignment","src":"2901:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2911:5:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2901:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2583:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2594:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2606:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2614:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2622:6:103","type":""}],"src":"2529:393:103"},{"body":{"nodeType":"YulBlock","src":"3027:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"3073:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3082:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3090:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3075:6:103"},"nodeType":"YulFunctionCall","src":"3075:22:103"},"nodeType":"YulExpressionStatement","src":"3075:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3048:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3057:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3044:3:103"},"nodeType":"YulFunctionCall","src":"3044:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3069:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3040:3:103"},"nodeType":"YulFunctionCall","src":"3040:32:103"},"nodeType":"YulIf","src":"3037:2:103"},{"nodeType":"YulVariableDeclaration","src":"3108:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3127:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3121:5:103"},"nodeType":"YulFunctionCall","src":"3121:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3112:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3171:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3146:24:103"},"nodeType":"YulFunctionCall","src":"3146:31:103"},"nodeType":"YulExpressionStatement","src":"3146:31:103"},{"nodeType":"YulAssignment","src":"3186:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3196:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3186:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2993:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3004:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3016:6:103","type":""}],"src":"2927:280:103"},{"body":{"nodeType":"YulBlock","src":"3318:320:103","statements":[{"body":{"nodeType":"YulBlock","src":"3364:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3373:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3381:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3366:6:103"},"nodeType":"YulFunctionCall","src":"3366:22:103"},"nodeType":"YulExpressionStatement","src":"3366:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3339:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3348:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3335:3:103"},"nodeType":"YulFunctionCall","src":"3335:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3360:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3331:3:103"},"nodeType":"YulFunctionCall","src":"3331:32:103"},"nodeType":"YulIf","src":"3328:2:103"},{"nodeType":"YulVariableDeclaration","src":"3399:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3426:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3413:12:103"},"nodeType":"YulFunctionCall","src":"3413:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3403:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3479:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3488:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3496:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3481:6:103"},"nodeType":"YulFunctionCall","src":"3481:22:103"},"nodeType":"YulExpressionStatement","src":"3481:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3451:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3459:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3448:2:103"},"nodeType":"YulFunctionCall","src":"3448:30:103"},"nodeType":"YulIf","src":"3445:2:103"},{"nodeType":"YulVariableDeclaration","src":"3514:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3528:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3539:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3524:3:103"},"nodeType":"YulFunctionCall","src":"3524:22:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3518:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3585:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3594:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3602:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3587:6:103"},"nodeType":"YulFunctionCall","src":"3587:22:103"},"nodeType":"YulExpressionStatement","src":"3587:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3566:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3575:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3562:3:103"},"nodeType":"YulFunctionCall","src":"3562:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3580:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3558:3:103"},"nodeType":"YulFunctionCall","src":"3558:26:103"},"nodeType":"YulIf","src":"3555:2:103"},{"nodeType":"YulAssignment","src":"3620:12:103","value":{"name":"_1","nodeType":"YulIdentifier","src":"3630:2:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3620:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3284:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3295:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3307:6:103","type":""}],"src":"3212:426:103"},{"body":{"nodeType":"YulBlock","src":"3758:808:103","statements":[{"body":{"nodeType":"YulBlock","src":"3804:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3813:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3821:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3806:6:103"},"nodeType":"YulFunctionCall","src":"3806:22:103"},"nodeType":"YulExpressionStatement","src":"3806:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3779:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3788:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3775:3:103"},"nodeType":"YulFunctionCall","src":"3775:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3800:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3771:3:103"},"nodeType":"YulFunctionCall","src":"3771:32:103"},"nodeType":"YulIf","src":"3768:2:103"},{"nodeType":"YulVariableDeclaration","src":"3839:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3859:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3853:5:103"},"nodeType":"YulFunctionCall","src":"3853:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3843:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3878:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3888:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3882:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3933:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3942:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3950:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3935:6:103"},"nodeType":"YulFunctionCall","src":"3935:22:103"},"nodeType":"YulExpressionStatement","src":"3935:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3921:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3929:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3918:2:103"},"nodeType":"YulFunctionCall","src":"3918:14:103"},"nodeType":"YulIf","src":"3915:2:103"},{"nodeType":"YulVariableDeclaration","src":"3968:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3982:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3993:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3978:3:103"},"nodeType":"YulFunctionCall","src":"3978:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3972:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4040:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4049:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4057:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4042:6:103"},"nodeType":"YulFunctionCall","src":"4042:22:103"},"nodeType":"YulExpressionStatement","src":"4042:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4020:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4029:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4016:3:103"},"nodeType":"YulFunctionCall","src":"4016:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4034:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4012:3:103"},"nodeType":"YulFunctionCall","src":"4012:27:103"},"nodeType":"YulIf","src":"4009:2:103"},{"nodeType":"YulVariableDeclaration","src":"4075:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4104:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4088:15:103"},"nodeType":"YulFunctionCall","src":"4088:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4079:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4125:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4138:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4132:5:103"},"nodeType":"YulFunctionCall","src":"4132:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4118:6:103"},"nodeType":"YulFunctionCall","src":"4118:24:103"},"nodeType":"YulExpressionStatement","src":"4118:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4162:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4169:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4158:3:103"},"nodeType":"YulFunctionCall","src":"4158:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4184:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4188:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4180:3:103"},"nodeType":"YulFunctionCall","src":"4180:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4174:5:103"},"nodeType":"YulFunctionCall","src":"4174:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4151:6:103"},"nodeType":"YulFunctionCall","src":"4151:42:103"},"nodeType":"YulExpressionStatement","src":"4151:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4213:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4220:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4209:3:103"},"nodeType":"YulFunctionCall","src":"4209:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4235:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4239:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4231:3:103"},"nodeType":"YulFunctionCall","src":"4231:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4225:5:103"},"nodeType":"YulFunctionCall","src":"4225:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4202:6:103"},"nodeType":"YulFunctionCall","src":"4202:42:103"},"nodeType":"YulExpressionStatement","src":"4202:42:103"},{"nodeType":"YulVariableDeclaration","src":"4253:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4279:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4283:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4275:3:103"},"nodeType":"YulFunctionCall","src":"4275:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4269:5:103"},"nodeType":"YulFunctionCall","src":"4269:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4257:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4316:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4325:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4333:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4318:6:103"},"nodeType":"YulFunctionCall","src":"4318:22:103"},"nodeType":"YulExpressionStatement","src":"4318:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4302:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4312:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4299:2:103"},"nodeType":"YulFunctionCall","src":"4299:16:103"},"nodeType":"YulIf","src":"4296:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4362:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4369:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4358:3:103"},"nodeType":"YulFunctionCall","src":"4358:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4406:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4410:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4402:3:103"},"nodeType":"YulFunctionCall","src":"4402:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4421:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"4374:27:103"},"nodeType":"YulFunctionCall","src":"4374:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4351:6:103"},"nodeType":"YulFunctionCall","src":"4351:79:103"},"nodeType":"YulExpressionStatement","src":"4351:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4450:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4457:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4446:3:103"},"nodeType":"YulFunctionCall","src":"4446:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4473:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4477:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4469:3:103"},"nodeType":"YulFunctionCall","src":"4469:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4463:5:103"},"nodeType":"YulFunctionCall","src":"4463:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4439:6:103"},"nodeType":"YulFunctionCall","src":"4439:44:103"},"nodeType":"YulExpressionStatement","src":"4439:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4503:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4510:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4499:3:103"},"nodeType":"YulFunctionCall","src":"4499:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4526:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4530:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4522:3:103"},"nodeType":"YulFunctionCall","src":"4522:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4516:5:103"},"nodeType":"YulFunctionCall","src":"4516:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4492:6:103"},"nodeType":"YulFunctionCall","src":"4492:44:103"},"nodeType":"YulExpressionStatement","src":"4492:44:103"},{"nodeType":"YulAssignment","src":"4545:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4555:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4545:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3724:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3735:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3747:6:103","type":""}],"src":"3643:923:103"},{"body":{"nodeType":"YulBlock","src":"4676:494:103","statements":[{"body":{"nodeType":"YulBlock","src":"4722:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4731:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4739:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4724:6:103"},"nodeType":"YulFunctionCall","src":"4724:22:103"},"nodeType":"YulExpressionStatement","src":"4724:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4697:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4706:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4693:3:103"},"nodeType":"YulFunctionCall","src":"4693:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4718:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4689:3:103"},"nodeType":"YulFunctionCall","src":"4689:32:103"},"nodeType":"YulIf","src":"4686:2:103"},{"nodeType":"YulVariableDeclaration","src":"4757:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4783:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4770:12:103"},"nodeType":"YulFunctionCall","src":"4770:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4761:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4843:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4852:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4860:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4845:6:103"},"nodeType":"YulFunctionCall","src":"4845:22:103"},"nodeType":"YulExpressionStatement","src":"4845:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4815:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4826:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4833:6:103","type":"","value":"0xffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4822:3:103"},"nodeType":"YulFunctionCall","src":"4822:18:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4812:2:103"},"nodeType":"YulFunctionCall","src":"4812:29:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4805:6:103"},"nodeType":"YulFunctionCall","src":"4805:37:103"},"nodeType":"YulIf","src":"4802:2:103"},{"nodeType":"YulAssignment","src":"4878:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4888:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4878:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"4902:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4933:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4944:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4929:3:103"},"nodeType":"YulFunctionCall","src":"4929:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4916:12:103"},"nodeType":"YulFunctionCall","src":"4916:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4906:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4991:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5000:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5008:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4993:6:103"},"nodeType":"YulFunctionCall","src":"4993:22:103"},"nodeType":"YulExpressionStatement","src":"4993:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4963:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4971:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4960:2:103"},"nodeType":"YulFunctionCall","src":"4960:30:103"},"nodeType":"YulIf","src":"4957:2:103"},{"nodeType":"YulVariableDeclaration","src":"5026:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5082:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5093:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5078:3:103"},"nodeType":"YulFunctionCall","src":"5078:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5102:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"5052:25:103"},"nodeType":"YulFunctionCall","src":"5052:58:103"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"5030:8:103","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"5040:8:103","type":""}]},{"nodeType":"YulAssignment","src":"5119:18:103","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"5129:8:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5119:6:103"}]},{"nodeType":"YulAssignment","src":"5146:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"5156:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5146:6:103"}]}]},"name":"abi_decode_tuple_t_uint16t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4626:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4637:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4649:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4657:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4665:6:103","type":""}],"src":"4571:599:103"},{"body":{"nodeType":"YulBlock","src":"5245:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"5291:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5300:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5308:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5293:6:103"},"nodeType":"YulFunctionCall","src":"5293:22:103"},"nodeType":"YulExpressionStatement","src":"5293:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5266:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5275:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5262:3:103"},"nodeType":"YulFunctionCall","src":"5262:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5287:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5258:3:103"},"nodeType":"YulFunctionCall","src":"5258:32:103"},"nodeType":"YulIf","src":"5255:2:103"},{"nodeType":"YulAssignment","src":"5326:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5349:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5336:12:103"},"nodeType":"YulFunctionCall","src":"5336:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5326:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5211:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5222:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5234:6:103","type":""}],"src":"5175:190:103"},{"body":{"nodeType":"YulBlock","src":"5451:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"5497:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5506:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5514:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5499:6:103"},"nodeType":"YulFunctionCall","src":"5499:22:103"},"nodeType":"YulExpressionStatement","src":"5499:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5472:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5481:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5468:3:103"},"nodeType":"YulFunctionCall","src":"5468:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5493:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5464:3:103"},"nodeType":"YulFunctionCall","src":"5464:32:103"},"nodeType":"YulIf","src":"5461:2:103"},{"nodeType":"YulAssignment","src":"5532:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5548:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5542:5:103"},"nodeType":"YulFunctionCall","src":"5542:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5532:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5417:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5428:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5440:6:103","type":""}],"src":"5370:194:103"},{"body":{"nodeType":"YulBlock","src":"5656:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"5702:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5711:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5719:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5704:6:103"},"nodeType":"YulFunctionCall","src":"5704:22:103"},"nodeType":"YulExpressionStatement","src":"5704:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5677:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5686:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5673:3:103"},"nodeType":"YulFunctionCall","src":"5673:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5698:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5669:3:103"},"nodeType":"YulFunctionCall","src":"5669:32:103"},"nodeType":"YulIf","src":"5666:2:103"},{"nodeType":"YulAssignment","src":"5737:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5760:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5747:12:103"},"nodeType":"YulFunctionCall","src":"5747:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5737:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5779:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5809:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5820:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5805:3:103"},"nodeType":"YulFunctionCall","src":"5805:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5792:12:103"},"nodeType":"YulFunctionCall","src":"5792:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5783:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5858:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"5833:24:103"},"nodeType":"YulFunctionCall","src":"5833:31:103"},"nodeType":"YulExpressionStatement","src":"5833:31:103"},{"nodeType":"YulAssignment","src":"5873:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5883:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5873:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5614:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5625:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5637:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5645:6:103","type":""}],"src":"5569:325:103"},{"body":{"nodeType":"YulBlock","src":"6005:391:103","statements":[{"body":{"nodeType":"YulBlock","src":"6051:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6060:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6068:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6053:6:103"},"nodeType":"YulFunctionCall","src":"6053:22:103"},"nodeType":"YulExpressionStatement","src":"6053:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6026:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6035:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6022:3:103"},"nodeType":"YulFunctionCall","src":"6022:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6047:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6018:3:103"},"nodeType":"YulFunctionCall","src":"6018:32:103"},"nodeType":"YulIf","src":"6015:2:103"},{"nodeType":"YulAssignment","src":"6086:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6109:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6096:12:103"},"nodeType":"YulFunctionCall","src":"6096:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6086:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6128:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6159:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6170:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6155:3:103"},"nodeType":"YulFunctionCall","src":"6155:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6142:12:103"},"nodeType":"YulFunctionCall","src":"6142:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6132:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6217:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6226:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6234:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6219:6:103"},"nodeType":"YulFunctionCall","src":"6219:22:103"},"nodeType":"YulExpressionStatement","src":"6219:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6189:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6197:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6186:2:103"},"nodeType":"YulFunctionCall","src":"6186:30:103"},"nodeType":"YulIf","src":"6183:2:103"},{"nodeType":"YulVariableDeclaration","src":"6252:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6308:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6319:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6304:3:103"},"nodeType":"YulFunctionCall","src":"6304:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6328:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"6278:25:103"},"nodeType":"YulFunctionCall","src":"6278:58:103"},"variables":[{"name":"value1_1","nodeType":"YulTypedName","src":"6256:8:103","type":""},{"name":"value2_1","nodeType":"YulTypedName","src":"6266:8:103","type":""}]},{"nodeType":"YulAssignment","src":"6345:18:103","value":{"name":"value1_1","nodeType":"YulIdentifier","src":"6355:8:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6345:6:103"}]},{"nodeType":"YulAssignment","src":"6372:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"6382:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6372:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5955:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5966:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5978:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5986:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5994:6:103","type":""}],"src":"5899:497:103"},{"body":{"nodeType":"YulBlock","src":"6541:494:103","statements":[{"body":{"nodeType":"YulBlock","src":"6588:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"6597:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"6605:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6590:6:103"},"nodeType":"YulFunctionCall","src":"6590:22:103"},"nodeType":"YulExpressionStatement","src":"6590:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6562:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6571:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6558:3:103"},"nodeType":"YulFunctionCall","src":"6558:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6583:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6554:3:103"},"nodeType":"YulFunctionCall","src":"6554:33:103"},"nodeType":"YulIf","src":"6551:2:103"},{"nodeType":"YulAssignment","src":"6623:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6646:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6633:12:103"},"nodeType":"YulFunctionCall","src":"6633:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6623:6:103"}]},{"nodeType":"YulAssignment","src":"6665:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6692:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6703:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6688:3:103"},"nodeType":"YulFunctionCall","src":"6688:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6675:12:103"},"nodeType":"YulFunctionCall","src":"6675:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6665:6:103"}]},{"nodeType":"YulAssignment","src":"6716:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6743:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6754:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6739:3:103"},"nodeType":"YulFunctionCall","src":"6739:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6726:12:103"},"nodeType":"YulFunctionCall","src":"6726:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6716:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6767:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6794:3:103"},"nodeType":"YulFunctionCall","src":"6794:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6781:12:103"},"nodeType":"YulFunctionCall","src":"6781:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6771:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6856:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6865:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6873:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6858:6:103"},"nodeType":"YulFunctionCall","src":"6858:22:103"},"nodeType":"YulExpressionStatement","src":"6858:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6828:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6836:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6825:2:103"},"nodeType":"YulFunctionCall","src":"6825:30:103"},"nodeType":"YulIf","src":"6822:2:103"},{"nodeType":"YulVariableDeclaration","src":"6891:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6947:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6958:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6943:3:103"},"nodeType":"YulFunctionCall","src":"6943:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6967:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"6917:25:103"},"nodeType":"YulFunctionCall","src":"6917:58:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"6895:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"6905:8:103","type":""}]},{"nodeType":"YulAssignment","src":"6984:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"6994:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6984:6:103"}]},{"nodeType":"YulAssignment","src":"7011:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"7021:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7011:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6475:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6486:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6498:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6506:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6514:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6522:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6530:6:103","type":""}],"src":"6401:634:103"},{"body":{"nodeType":"YulBlock","src":"7106:202:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7123:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"7128:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7116:6:103"},"nodeType":"YulFunctionCall","src":"7116:19:103"},"nodeType":"YulExpressionStatement","src":"7116:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7161:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"7166:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7157:3:103"},"nodeType":"YulFunctionCall","src":"7157:14:103"},{"name":"start","nodeType":"YulIdentifier","src":"7173:5:103"},{"name":"length","nodeType":"YulIdentifier","src":"7180:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"7144:12:103"},"nodeType":"YulFunctionCall","src":"7144:43:103"},"nodeType":"YulExpressionStatement","src":"7144:43:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7211:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"7216:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7207:3:103"},"nodeType":"YulFunctionCall","src":"7207:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"7225:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7203:3:103"},"nodeType":"YulFunctionCall","src":"7203:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"7232:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7196:6:103"},"nodeType":"YulFunctionCall","src":"7196:40:103"},"nodeType":"YulExpressionStatement","src":"7196:40:103"},{"nodeType":"YulAssignment","src":"7245:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7260:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7273:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7281:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7269:3:103"},"nodeType":"YulFunctionCall","src":"7269:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7290:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7286:3:103"},"nodeType":"YulFunctionCall","src":"7286:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7265:3:103"},"nodeType":"YulFunctionCall","src":"7265:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7256:3:103"},"nodeType":"YulFunctionCall","src":"7256:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"7297:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7252:3:103"},"nodeType":"YulFunctionCall","src":"7252:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7245:3:103"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"7075:5:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"7082:6:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"7090:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7098:3:103","type":""}],"src":"7040:268:103"},{"body":{"nodeType":"YulBlock","src":"7414:102:103","statements":[{"nodeType":"YulAssignment","src":"7424:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7447:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7432:3:103"},"nodeType":"YulFunctionCall","src":"7432:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7424:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7466:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7481:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7497:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7502:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7493:3:103"},"nodeType":"YulFunctionCall","src":"7493:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7506:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7489:3:103"},"nodeType":"YulFunctionCall","src":"7489:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7477:3:103"},"nodeType":"YulFunctionCall","src":"7477:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7459:6:103"},"nodeType":"YulFunctionCall","src":"7459:51:103"},"nodeType":"YulExpressionStatement","src":"7459:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7383:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7394:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7405:4:103","type":""}],"src":"7313:203:103"},{"body":{"nodeType":"YulBlock","src":"7622:76:103","statements":[{"nodeType":"YulAssignment","src":"7632:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7655:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7640:3:103"},"nodeType":"YulFunctionCall","src":"7640:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7632:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7674:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7685:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7667:6:103"},"nodeType":"YulFunctionCall","src":"7667:25:103"},"nodeType":"YulExpressionStatement","src":"7667:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7591:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7602:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7613:4:103","type":""}],"src":"7521:177:103"},{"body":{"nodeType":"YulBlock","src":"7832:145:103","statements":[{"nodeType":"YulAssignment","src":"7842:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7865:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7850:3:103"},"nodeType":"YulFunctionCall","src":"7850:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7842:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7884:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7895:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7877:6:103"},"nodeType":"YulFunctionCall","src":"7877:25:103"},"nodeType":"YulExpressionStatement","src":"7877:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7922:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7933:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7918:3:103"},"nodeType":"YulFunctionCall","src":"7918:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7942:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7958:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7963:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7954:3:103"},"nodeType":"YulFunctionCall","src":"7954:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7967:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7950:3:103"},"nodeType":"YulFunctionCall","src":"7950:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7938:3:103"},"nodeType":"YulFunctionCall","src":"7938:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7911:6:103"},"nodeType":"YulFunctionCall","src":"7911:60:103"},"nodeType":"YulExpressionStatement","src":"7911:60:103"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7793:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7804:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7812:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7823:4:103","type":""}],"src":"7703:274:103"},{"body":{"nodeType":"YulBlock","src":"8111:119:103","statements":[{"nodeType":"YulAssignment","src":"8121:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8144:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8129:3:103"},"nodeType":"YulFunctionCall","src":"8129:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8121:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8163:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8174:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8156:6:103"},"nodeType":"YulFunctionCall","src":"8156:25:103"},"nodeType":"YulExpressionStatement","src":"8156:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8201:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8212:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8197:3:103"},"nodeType":"YulFunctionCall","src":"8197:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8217:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8190:6:103"},"nodeType":"YulFunctionCall","src":"8190:34:103"},"nodeType":"YulExpressionStatement","src":"8190:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8072:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8083:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8091:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8102:4:103","type":""}],"src":"7982:248:103"},{"body":{"nodeType":"YulBlock","src":"8392:188:103","statements":[{"nodeType":"YulAssignment","src":"8402:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8414:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8425:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8410:3:103"},"nodeType":"YulFunctionCall","src":"8410:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8402:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8444:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8455:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8437:6:103"},"nodeType":"YulFunctionCall","src":"8437:25:103"},"nodeType":"YulExpressionStatement","src":"8437:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8493:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8478:3:103"},"nodeType":"YulFunctionCall","src":"8478:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8498:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8471:6:103"},"nodeType":"YulFunctionCall","src":"8471:34:103"},"nodeType":"YulExpressionStatement","src":"8471:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8536:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8521:3:103"},"nodeType":"YulFunctionCall","src":"8521:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8545:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8561:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8566:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8557:3:103"},"nodeType":"YulFunctionCall","src":"8557:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"8570:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8553:3:103"},"nodeType":"YulFunctionCall","src":"8553:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8541:3:103"},"nodeType":"YulFunctionCall","src":"8541:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8514:6:103"},"nodeType":"YulFunctionCall","src":"8514:60:103"},"nodeType":"YulExpressionStatement","src":"8514:60:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_address__to_t_bytes32_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8345:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8356:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8364:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8372:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8383:4:103","type":""}],"src":"8235:345:103"},{"body":{"nodeType":"YulBlock","src":"8692:87:103","statements":[{"nodeType":"YulAssignment","src":"8702:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8714:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8725:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8710:3:103"},"nodeType":"YulFunctionCall","src":"8710:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8702:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8744:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8759:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"8767:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8755:3:103"},"nodeType":"YulFunctionCall","src":"8755:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8737:6:103"},"nodeType":"YulFunctionCall","src":"8737:36:103"},"nodeType":"YulExpressionStatement","src":"8737:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8661:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8672:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8683:4:103","type":""}],"src":"8585:194:103"},{"body":{"nodeType":"YulBlock","src":"8958:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8986:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8968:6:103"},"nodeType":"YulFunctionCall","src":"8968:21:103"},"nodeType":"YulExpressionStatement","src":"8968:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9020:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9005:3:103"},"nodeType":"YulFunctionCall","src":"9005:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9025:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8998:6:103"},"nodeType":"YulFunctionCall","src":"8998:30:103"},"nodeType":"YulExpressionStatement","src":"8998:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9048:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9059:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9044:3:103"},"nodeType":"YulFunctionCall","src":"9044:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9064:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9037:6:103"},"nodeType":"YulFunctionCall","src":"9037:62:103"},"nodeType":"YulExpressionStatement","src":"9037:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9119:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9130:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9115:3:103"},"nodeType":"YulFunctionCall","src":"9115:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9135:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9108:6:103"},"nodeType":"YulFunctionCall","src":"9108:35:103"},"nodeType":"YulExpressionStatement","src":"9108:35:103"},{"nodeType":"YulAssignment","src":"9152:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9164:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9175:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9160:3:103"},"nodeType":"YulFunctionCall","src":"9160:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9152:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8935:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8949:4:103","type":""}],"src":"8784:401:103"},{"body":{"nodeType":"YulBlock","src":"9364:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9392:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9374:6:103"},"nodeType":"YulFunctionCall","src":"9374:21:103"},"nodeType":"YulExpressionStatement","src":"9374:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9426:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9411:3:103"},"nodeType":"YulFunctionCall","src":"9411:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9431:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9404:6:103"},"nodeType":"YulFunctionCall","src":"9404:30:103"},"nodeType":"YulExpressionStatement","src":"9404:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9465:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9450:3:103"},"nodeType":"YulFunctionCall","src":"9450:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9470:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9443:6:103"},"nodeType":"YulFunctionCall","src":"9443:62:103"},"nodeType":"YulExpressionStatement","src":"9443:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9536:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9521:3:103"},"nodeType":"YulFunctionCall","src":"9521:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9541:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9514:6:103"},"nodeType":"YulFunctionCall","src":"9514:36:103"},"nodeType":"YulExpressionStatement","src":"9514:36:103"},{"nodeType":"YulAssignment","src":"9559:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9582:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9567:3:103"},"nodeType":"YulFunctionCall","src":"9567:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9559:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9341:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9355:4:103","type":""}],"src":"9190:402:103"},{"body":{"nodeType":"YulBlock","src":"9771:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9788:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9799:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9781:6:103"},"nodeType":"YulFunctionCall","src":"9781:21:103"},"nodeType":"YulExpressionStatement","src":"9781:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9822:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9833:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9818:3:103"},"nodeType":"YulFunctionCall","src":"9818:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9838:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9811:6:103"},"nodeType":"YulFunctionCall","src":"9811:30:103"},"nodeType":"YulExpressionStatement","src":"9811:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9872:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9857:3:103"},"nodeType":"YulFunctionCall","src":"9857:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9877:34:103","type":"","value":"ERROR:IOS-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9850:6:103"},"nodeType":"YulFunctionCall","src":"9850:62:103"},"nodeType":"YulExpressionStatement","src":"9850:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9932:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9943:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9928:3:103"},"nodeType":"YulFunctionCall","src":"9928:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9948:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9921:6:103"},"nodeType":"YulFunctionCall","src":"9921:33:103"},"nodeType":"YulExpressionStatement","src":"9921:33:103"},{"nodeType":"YulAssignment","src":"9963:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9986:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9971:3:103"},"nodeType":"YulFunctionCall","src":"9971:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9963:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4f9a629a891ef96edc5744c3431f880a108556562b68950708236c732d2e7e88__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9748:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9762:4:103","type":""}],"src":"9597:399:103"},{"body":{"nodeType":"YulBlock","src":"10175:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10192:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10203:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10185:6:103"},"nodeType":"YulFunctionCall","src":"10185:21:103"},"nodeType":"YulExpressionStatement","src":"10185:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10237:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10222:3:103"},"nodeType":"YulFunctionCall","src":"10222:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10242:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10215:6:103"},"nodeType":"YulFunctionCall","src":"10215:30:103"},"nodeType":"YulExpressionStatement","src":"10215:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10265:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10276:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10261:3:103"},"nodeType":"YulFunctionCall","src":"10261:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10281:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10254:6:103"},"nodeType":"YulFunctionCall","src":"10254:62:103"},"nodeType":"YulExpressionStatement","src":"10254:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10336:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10347:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10332:3:103"},"nodeType":"YulFunctionCall","src":"10332:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10352:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10325:6:103"},"nodeType":"YulFunctionCall","src":"10325:44:103"},"nodeType":"YulExpressionStatement","src":"10325:44:103"},{"nodeType":"YulAssignment","src":"10378:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10401:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10386:3:103"},"nodeType":"YulFunctionCall","src":"10386:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10378:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10152:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10166:4:103","type":""}],"src":"10001:410:103"},{"body":{"nodeType":"YulBlock","src":"10590:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10607:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10618:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10600:6:103"},"nodeType":"YulFunctionCall","src":"10600:21:103"},"nodeType":"YulExpressionStatement","src":"10600:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10641:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10652:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10637:3:103"},"nodeType":"YulFunctionCall","src":"10637:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10657:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10630:6:103"},"nodeType":"YulFunctionCall","src":"10630:30:103"},"nodeType":"YulExpressionStatement","src":"10630:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10691:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10676:3:103"},"nodeType":"YulFunctionCall","src":"10676:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10696:34:103","type":"","value":"ERROR:IOS-011:IMPLEMENATION_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10669:6:103"},"nodeType":"YulFunctionCall","src":"10669:62:103"},"nodeType":"YulExpressionStatement","src":"10669:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10751:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10762:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10747:3:103"},"nodeType":"YulFunctionCall","src":"10747:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10767:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10740:6:103"},"nodeType":"YulFunctionCall","src":"10740:33:103"},"nodeType":"YulExpressionStatement","src":"10740:33:103"},{"nodeType":"YulAssignment","src":"10782:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10794:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10805:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10790:3:103"},"nodeType":"YulFunctionCall","src":"10790:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10782:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_82cd723e08c6881587ec30a3dfe2f83ddd1d3003fc073eb1e0f321714bc7396c__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10567:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10581:4:103","type":""}],"src":"10416:399:103"},{"body":{"nodeType":"YulBlock","src":"10994:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11011:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11022:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11004:6:103"},"nodeType":"YulFunctionCall","src":"11004:21:103"},"nodeType":"YulExpressionStatement","src":"11004:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11045:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11056:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11041:3:103"},"nodeType":"YulFunctionCall","src":"11041:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11061:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11034:6:103"},"nodeType":"YulFunctionCall","src":"11034:30:103"},"nodeType":"YulExpressionStatement","src":"11034:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11095:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11080:3:103"},"nodeType":"YulFunctionCall","src":"11080:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11100:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11073:6:103"},"nodeType":"YulFunctionCall","src":"11073:62:103"},"nodeType":"YulExpressionStatement","src":"11073:62:103"},{"nodeType":"YulAssignment","src":"11144:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11156:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11167:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11152:3:103"},"nodeType":"YulFunctionCall","src":"11152:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11144:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10971:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10985:4:103","type":""}],"src":"10820:356:103"},{"body":{"nodeType":"YulBlock","src":"11355:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11372:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11383:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11365:6:103"},"nodeType":"YulFunctionCall","src":"11365:21:103"},"nodeType":"YulExpressionStatement","src":"11365:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11406:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11417:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11402:3:103"},"nodeType":"YulFunctionCall","src":"11402:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11422:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11395:6:103"},"nodeType":"YulFunctionCall","src":"11395:30:103"},"nodeType":"YulExpressionStatement","src":"11395:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11445:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11456:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11441:3:103"},"nodeType":"YulFunctionCall","src":"11441:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11461:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11434:6:103"},"nodeType":"YulFunctionCall","src":"11434:62:103"},"nodeType":"YulExpressionStatement","src":"11434:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11516:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11527:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11512:3:103"},"nodeType":"YulFunctionCall","src":"11512:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11532:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11505:6:103"},"nodeType":"YulFunctionCall","src":"11505:41:103"},"nodeType":"YulExpressionStatement","src":"11505:41:103"},{"nodeType":"YulAssignment","src":"11555:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11578:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11563:3:103"},"nodeType":"YulFunctionCall","src":"11563:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11555:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11332:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11346:4:103","type":""}],"src":"11181:407:103"},{"body":{"nodeType":"YulBlock","src":"11767:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11784:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11795:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11777:6:103"},"nodeType":"YulFunctionCall","src":"11777:21:103"},"nodeType":"YulExpressionStatement","src":"11777:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11829:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11814:3:103"},"nodeType":"YulFunctionCall","src":"11814:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11834:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11807:6:103"},"nodeType":"YulFunctionCall","src":"11807:30:103"},"nodeType":"YulExpressionStatement","src":"11807:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11868:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11853:3:103"},"nodeType":"YulFunctionCall","src":"11853:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11873:34:103","type":"","value":"ERROR:IOS-010:IMPLEMENATION_MISS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11846:6:103"},"nodeType":"YulFunctionCall","src":"11846:62:103"},"nodeType":"YulExpressionStatement","src":"11846:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11928:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11939:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11924:3:103"},"nodeType":"YulFunctionCall","src":"11924:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11944:5:103","type":"","value":"ING"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11917:6:103"},"nodeType":"YulFunctionCall","src":"11917:33:103"},"nodeType":"YulExpressionStatement","src":"11917:33:103"},{"nodeType":"YulAssignment","src":"11959:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11971:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11982:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11967:3:103"},"nodeType":"YulFunctionCall","src":"11967:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11959:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_eced10d50b8ba1711cfe37b4eb88407a5eaeb66e7a413a20b76444cdfd898ea4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11744:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11758:4:103","type":""}],"src":"11593:399:103"},{"body":{"nodeType":"YulBlock","src":"12168:929:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12185:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12196:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12178:6:103"},"nodeType":"YulFunctionCall","src":"12178:21:103"},"nodeType":"YulExpressionStatement","src":"12178:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12219:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12230:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12215:3:103"},"nodeType":"YulFunctionCall","src":"12215:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12248:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12235:12:103"},"nodeType":"YulFunctionCall","src":"12235:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12208:6:103"},"nodeType":"YulFunctionCall","src":"12208:48:103"},"nodeType":"YulExpressionStatement","src":"12208:48:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12276:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12287:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12272:3:103"},"nodeType":"YulFunctionCall","src":"12272:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12309:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12317:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12305:3:103"},"nodeType":"YulFunctionCall","src":"12305:15:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12292:12:103"},"nodeType":"YulFunctionCall","src":"12292:29:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12265:6:103"},"nodeType":"YulFunctionCall","src":"12265:57:103"},"nodeType":"YulExpressionStatement","src":"12265:57:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12353:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12338:3:103"},"nodeType":"YulFunctionCall","src":"12338:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12375:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12383:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12371:3:103"},"nodeType":"YulFunctionCall","src":"12371:15:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12358:12:103"},"nodeType":"YulFunctionCall","src":"12358:29:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12331:6:103"},"nodeType":"YulFunctionCall","src":"12331:57:103"},"nodeType":"YulExpressionStatement","src":"12331:57:103"},{"nodeType":"YulVariableDeclaration","src":"12397:55:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12440:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12448:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12436:3:103"},"nodeType":"YulFunctionCall","src":"12436:15:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12423:12:103"},"nodeType":"YulFunctionCall","src":"12423:29:103"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"12401:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12539:22:103","statements":[{"expression":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12548:4:103"},{"name":"tail","nodeType":"YulIdentifier","src":"12554:4:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12541:6:103"},"nodeType":"YulFunctionCall","src":"12541:18:103"},"nodeType":"YulExpressionStatement","src":"12541:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"12475:18:103"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"12503:12:103"},"nodeType":"YulFunctionCall","src":"12503:14:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12519:6:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12499:3:103"},"nodeType":"YulFunctionCall","src":"12499:27:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12532:2:103","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12528:3:103"},"nodeType":"YulFunctionCall","src":"12528:7:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12495:3:103"},"nodeType":"YulFunctionCall","src":"12495:41:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"12471:3:103"},"nodeType":"YulFunctionCall","src":"12471:66:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12464:6:103"},"nodeType":"YulFunctionCall","src":"12464:74:103"},"nodeType":"YulIf","src":"12461:2:103"},{"nodeType":"YulVariableDeclaration","src":"12570:44:103","value":{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"12587:18:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12607:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12583:3:103"},"nodeType":"YulFunctionCall","src":"12583:31:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"12574:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12623:33:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12650:5:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12637:12:103"},"nodeType":"YulFunctionCall","src":"12637:19:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12627:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12699:22:103","statements":[{"expression":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12708:4:103"},{"name":"tail","nodeType":"YulIdentifier","src":"12714:4:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12701:6:103"},"nodeType":"YulFunctionCall","src":"12701:18:103"},"nodeType":"YulExpressionStatement","src":"12701:18:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12671:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12679:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12668:2:103"},"nodeType":"YulFunctionCall","src":"12668:30:103"},"nodeType":"YulIf","src":"12665:2:103"},{"body":{"nodeType":"YulBlock","src":"12774:22:103","statements":[{"expression":{"arguments":[{"name":"tail","nodeType":"YulIdentifier","src":"12783:4:103"},{"name":"tail","nodeType":"YulIdentifier","src":"12789:4:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12776:6:103"},"nodeType":"YulFunctionCall","src":"12776:18:103"},"nodeType":"YulExpressionStatement","src":"12776:18:103"}]},"condition":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12737:6:103"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"12749:12:103"},"nodeType":"YulFunctionCall","src":"12749:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"12765:6:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12745:3:103"},"nodeType":"YulFunctionCall","src":"12745:27:103"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"12733:3:103"},"nodeType":"YulFunctionCall","src":"12733:40:103"},"nodeType":"YulIf","src":"12730:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12816:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12827:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12812:3:103"},"nodeType":"YulFunctionCall","src":"12812:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"12833:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12805:6:103"},"nodeType":"YulFunctionCall","src":"12805:33:103"},"nodeType":"YulExpressionStatement","src":"12805:33:103"},{"nodeType":"YulVariableDeclaration","src":"12847:84:103","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12891:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"12898:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12887:3:103"},"nodeType":"YulFunctionCall","src":"12887:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"12903:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12926:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12911:3:103"},"nodeType":"YulFunctionCall","src":"12911:19:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"12861:25:103"},"nodeType":"YulFunctionCall","src":"12861:70:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"12851:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12951:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12962:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12947:3:103"},"nodeType":"YulFunctionCall","src":"12947:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12985:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12993:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12981:3:103"},"nodeType":"YulFunctionCall","src":"12981:16:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12968:12:103"},"nodeType":"YulFunctionCall","src":"12968:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12940:6:103"},"nodeType":"YulFunctionCall","src":"12940:59:103"},"nodeType":"YulExpressionStatement","src":"12940:59:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13030:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13015:3:103"},"nodeType":"YulFunctionCall","src":"13015:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13054:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13062:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13050:3:103"},"nodeType":"YulFunctionCall","src":"13050:16:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"13037:12:103"},"nodeType":"YulFunctionCall","src":"13037:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13008:6:103"},"nodeType":"YulFunctionCall","src":"13008:60:103"},"nodeType":"YulExpressionStatement","src":"13008:60:103"},{"nodeType":"YulAssignment","src":"13077:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"13085:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13077:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12137:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12148:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12159:4:103","type":""}],"src":"11997:1100:103"},{"body":{"nodeType":"YulBlock","src":"13271:681:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13288:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13299:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13281:6:103"},"nodeType":"YulFunctionCall","src":"13281:21:103"},"nodeType":"YulExpressionStatement","src":"13281:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13333:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13318:3:103"},"nodeType":"YulFunctionCall","src":"13318:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13344:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13338:5:103"},"nodeType":"YulFunctionCall","src":"13338:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13311:6:103"},"nodeType":"YulFunctionCall","src":"13311:41:103"},"nodeType":"YulExpressionStatement","src":"13311:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13372:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13383:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13368:3:103"},"nodeType":"YulFunctionCall","src":"13368:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13398:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13406:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13394:3:103"},"nodeType":"YulFunctionCall","src":"13394:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13388:5:103"},"nodeType":"YulFunctionCall","src":"13388:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13361:6:103"},"nodeType":"YulFunctionCall","src":"13361:50:103"},"nodeType":"YulExpressionStatement","src":"13361:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13431:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13442:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13427:3:103"},"nodeType":"YulFunctionCall","src":"13427:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13457:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13465:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13453:3:103"},"nodeType":"YulFunctionCall","src":"13453:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13447:5:103"},"nodeType":"YulFunctionCall","src":"13447:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13420:6:103"},"nodeType":"YulFunctionCall","src":"13420:50:103"},"nodeType":"YulExpressionStatement","src":"13420:50:103"},{"nodeType":"YulVariableDeclaration","src":"13479:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13509:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13517:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13505:3:103"},"nodeType":"YulFunctionCall","src":"13505:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13499:5:103"},"nodeType":"YulFunctionCall","src":"13499:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"13483:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13552:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13537:3:103"},"nodeType":"YulFunctionCall","src":"13537:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"13558:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13530:6:103"},"nodeType":"YulFunctionCall","src":"13530:33:103"},"nodeType":"YulExpressionStatement","src":"13530:33:103"},{"nodeType":"YulVariableDeclaration","src":"13572:33:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"13592:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13586:5:103"},"nodeType":"YulFunctionCall","src":"13586:19:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"13576:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13625:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13636:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13621:3:103"},"nodeType":"YulFunctionCall","src":"13621:19:103"},{"name":"length","nodeType":"YulIdentifier","src":"13642:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13614:6:103"},"nodeType":"YulFunctionCall","src":"13614:35:103"},"nodeType":"YulExpressionStatement","src":"13614:35:103"},{"nodeType":"YulVariableDeclaration","src":"13658:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"13668:3:103","type":"","value":"256"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"13662:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"13706:12:103"},{"kind":"number","nodeType":"YulLiteral","src":"13720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13702:3:103"},"nodeType":"YulFunctionCall","src":"13702:21:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13729:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13740:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13725:3:103"},"nodeType":"YulFunctionCall","src":"13725:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"13745:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"13680:21:103"},"nodeType":"YulFunctionCall","src":"13680:72:103"},"nodeType":"YulExpressionStatement","src":"13680:72:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13772:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13783:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13768:3:103"},"nodeType":"YulFunctionCall","src":"13768:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13799:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13807:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13795:3:103"},"nodeType":"YulFunctionCall","src":"13795:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13789:5:103"},"nodeType":"YulFunctionCall","src":"13789:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13761:6:103"},"nodeType":"YulFunctionCall","src":"13761:52:103"},"nodeType":"YulExpressionStatement","src":"13761:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13844:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13829:3:103"},"nodeType":"YulFunctionCall","src":"13829:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13861:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13869:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13857:3:103"},"nodeType":"YulFunctionCall","src":"13857:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13851:5:103"},"nodeType":"YulFunctionCall","src":"13851:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13822:6:103"},"nodeType":"YulFunctionCall","src":"13822:53:103"},"nodeType":"YulExpressionStatement","src":"13822:53:103"},{"nodeType":"YulAssignment","src":"13884:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13900:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"13919:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"13927:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13915:3:103"},"nodeType":"YulFunctionCall","src":"13915:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13936:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13932:3:103"},"nodeType":"YulFunctionCall","src":"13932:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13911:3:103"},"nodeType":"YulFunctionCall","src":"13911:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13896:3:103"},"nodeType":"YulFunctionCall","src":"13896:45:103"},{"name":"_1","nodeType":"YulIdentifier","src":"13943:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13892:3:103"},"nodeType":"YulFunctionCall","src":"13892:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13884:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13240:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13251:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13262:4:103","type":""}],"src":"13102:850:103"},{"body":{"nodeType":"YulBlock","src":"14058:76:103","statements":[{"nodeType":"YulAssignment","src":"14068:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14080:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14091:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14076:3:103"},"nodeType":"YulFunctionCall","src":"14076:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14068:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14110:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14121:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14103:6:103"},"nodeType":"YulFunctionCall","src":"14103:25:103"},"nodeType":"YulExpressionStatement","src":"14103:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14027:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14038:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14049:4:103","type":""}],"src":"13957:177:103"},{"body":{"nodeType":"YulBlock","src":"14268:145:103","statements":[{"nodeType":"YulAssignment","src":"14278:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14290:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14301:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14286:3:103"},"nodeType":"YulFunctionCall","src":"14286:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14278:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14320:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14331:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14313:6:103"},"nodeType":"YulFunctionCall","src":"14313:25:103"},"nodeType":"YulExpressionStatement","src":"14313:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14358:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14369:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14354:3:103"},"nodeType":"YulFunctionCall","src":"14354:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14378:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14394:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14399:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14390:3:103"},"nodeType":"YulFunctionCall","src":"14390:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14403:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14386:3:103"},"nodeType":"YulFunctionCall","src":"14386:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14374:3:103"},"nodeType":"YulFunctionCall","src":"14374:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14347:6:103"},"nodeType":"YulFunctionCall","src":"14347:60:103"},"nodeType":"YulExpressionStatement","src":"14347:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14229:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14240:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14248:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14259:4:103","type":""}],"src":"14139:274:103"},{"body":{"nodeType":"YulBlock","src":"14547:119:103","statements":[{"nodeType":"YulAssignment","src":"14557:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14580:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14565:3:103"},"nodeType":"YulFunctionCall","src":"14565:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14557:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14599:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14610:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14592:6:103"},"nodeType":"YulFunctionCall","src":"14592:25:103"},"nodeType":"YulExpressionStatement","src":"14592:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14637:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14648:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14633:3:103"},"nodeType":"YulFunctionCall","src":"14633:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14653:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14626:6:103"},"nodeType":"YulFunctionCall","src":"14626:34:103"},"nodeType":"YulExpressionStatement","src":"14626:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14508:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14519:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14527:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14538:4:103","type":""}],"src":"14418:248:103"},{"body":{"nodeType":"YulBlock","src":"14884:246:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14901:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14912:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14894:6:103"},"nodeType":"YulFunctionCall","src":"14894:25:103"},"nodeType":"YulExpressionStatement","src":"14894:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14939:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14950:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14935:3:103"},"nodeType":"YulFunctionCall","src":"14935:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14955:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14928:6:103"},"nodeType":"YulFunctionCall","src":"14928:34:103"},"nodeType":"YulExpressionStatement","src":"14928:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14982:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14993:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14978:3:103"},"nodeType":"YulFunctionCall","src":"14978:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"14998:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14971:6:103"},"nodeType":"YulFunctionCall","src":"14971:34:103"},"nodeType":"YulExpressionStatement","src":"14971:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15025:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15036:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15021:3:103"},"nodeType":"YulFunctionCall","src":"15021:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15041:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15014:6:103"},"nodeType":"YulFunctionCall","src":"15014:31:103"},"nodeType":"YulExpressionStatement","src":"15014:31:103"},{"nodeType":"YulAssignment","src":"15054:70:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"15088:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"15096:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15108:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15119:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15104:3:103"},"nodeType":"YulFunctionCall","src":"15104:19:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"15062:25:103"},"nodeType":"YulFunctionCall","src":"15062:62:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15054:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14821:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14832:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14840:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14848:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14856:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14864:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14875:4:103","type":""}],"src":"14671:459:103"},{"body":{"nodeType":"YulBlock","src":"15180:230:103","statements":[{"nodeType":"YulAssignment","src":"15190:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15206:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15200:5:103"},"nodeType":"YulFunctionCall","src":"15200:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"15190:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"15218:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"15240:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"15256:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"15262:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15252:3:103"},"nodeType":"YulFunctionCall","src":"15252:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15271:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15267:3:103"},"nodeType":"YulFunctionCall","src":"15267:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15248:3:103"},"nodeType":"YulFunctionCall","src":"15248:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15236:3:103"},"nodeType":"YulFunctionCall","src":"15236:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"15222:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"15351:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"15353:16:103"},"nodeType":"YulFunctionCall","src":"15353:18:103"},"nodeType":"YulExpressionStatement","src":"15353:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15294:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"15306:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15291:2:103"},"nodeType":"YulFunctionCall","src":"15291:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15330:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"15342:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15327:2:103"},"nodeType":"YulFunctionCall","src":"15327:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"15288:2:103"},"nodeType":"YulFunctionCall","src":"15288:62:103"},"nodeType":"YulIf","src":"15285:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15389:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15393:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15382:6:103"},"nodeType":"YulFunctionCall","src":"15382:22:103"},"nodeType":"YulExpressionStatement","src":"15382:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"15160:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"15169:6:103","type":""}],"src":"15135:275:103"},{"body":{"nodeType":"YulBlock","src":"15468:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"15478:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"15487:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"15482:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"15547:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"15572:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"15577:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15568:3:103"},"nodeType":"YulFunctionCall","src":"15568:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"15591:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"15596:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15587:3:103"},"nodeType":"YulFunctionCall","src":"15587:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15581:5:103"},"nodeType":"YulFunctionCall","src":"15581:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15561:6:103"},"nodeType":"YulFunctionCall","src":"15561:39:103"},"nodeType":"YulExpressionStatement","src":"15561:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15508:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"15511:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15505:2:103"},"nodeType":"YulFunctionCall","src":"15505:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"15519:19:103","statements":[{"nodeType":"YulAssignment","src":"15521:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15530:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"15533:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15526:3:103"},"nodeType":"YulFunctionCall","src":"15526:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"15521:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"15501:3:103","statements":[]},"src":"15497:113:103"},{"body":{"nodeType":"YulBlock","src":"15636:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"15649:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"15654:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15645:3:103"},"nodeType":"YulFunctionCall","src":"15645:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"15663:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15638:6:103"},"nodeType":"YulFunctionCall","src":"15638:27:103"},"nodeType":"YulExpressionStatement","src":"15638:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"15625:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"15628:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15622:2:103"},"nodeType":"YulFunctionCall","src":"15622:13:103"},"nodeType":"YulIf","src":"15619:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"15446:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"15451:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"15456:6:103","type":""}],"src":"15415:258:103"},{"body":{"nodeType":"YulBlock","src":"15710:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15727:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15734:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15739:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15730:3:103"},"nodeType":"YulFunctionCall","src":"15730:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15720:6:103"},"nodeType":"YulFunctionCall","src":"15720:31:103"},"nodeType":"YulExpressionStatement","src":"15720:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15767:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15770:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15760:6:103"},"nodeType":"YulFunctionCall","src":"15760:15:103"},"nodeType":"YulExpressionStatement","src":"15760:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15791:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15794:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15784:6:103"},"nodeType":"YulFunctionCall","src":"15784:15:103"},"nodeType":"YulExpressionStatement","src":"15784:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"15678:127:103"},{"body":{"nodeType":"YulBlock","src":"15855:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"15919:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15928:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15931:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15921:6:103"},"nodeType":"YulFunctionCall","src":"15921:12:103"},"nodeType":"YulExpressionStatement","src":"15921:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15878:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15889:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15904:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15909:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15900:3:103"},"nodeType":"YulFunctionCall","src":"15900:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15913:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15896:3:103"},"nodeType":"YulFunctionCall","src":"15896:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15885:3:103"},"nodeType":"YulFunctionCall","src":"15885:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15875:2:103"},"nodeType":"YulFunctionCall","src":"15875:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15868:6:103"},"nodeType":"YulFunctionCall","src":"15868:50:103"},"nodeType":"YulIf","src":"15865:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15844:5:103","type":""}],"src":"15810:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n let _1 := add(headStart, offset)\n if slt(sub(dataEnd, _1), 192) { revert(value0, value0) }\n value0 := _1\n }\n function abi_decode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_uint16t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, 0xffff))) { revert(value0, value0) }\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(value1, value1) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value2, value2) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value1_1, value2_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_address__to_t_bytes32_t_bytes32_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_4f9a629a891ef96edc5744c3431f880a108556562b68950708236c732d2e7e88__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:IOS-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_82cd723e08c6881587ec30a3dfe2f83ddd1d3003fc073eb1e0f321714bc7396c__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:IOS-011:IMPLEMENATION_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_eced10d50b8ba1711cfe37b4eb88407a5eaeb66e7a413a20b76444cdfd898ea4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:IOS-010:IMPLEMENATION_MISS\")\n mstore(add(headStart, 96), \"ING\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_FeeSpecification_$5838_calldata_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), calldataload(value0))\n mstore(add(headStart, 64), calldataload(add(value0, 32)))\n mstore(add(headStart, 96), calldataload(add(value0, 64)))\n let rel_offset_of_tail := calldataload(add(value0, 96))\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), value0), not(30)))) { revert(tail, tail) }\n let value := add(rel_offset_of_tail, value0)\n let length := calldataload(value)\n if gt(length, 0xffffffffffffffff) { revert(tail, tail) }\n if sgt(value0, sub(calldatasize(), length)) { revert(tail, tail) }\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes_calldata(add(value, 32), length, add(headStart, 224))\n mstore(add(headStart, 160), calldataload(add(value0, 128)))\n mstore(add(headStart, 0xc0), calldataload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_FeeSpecification_$5838_memory_ptr__to_t_struct$_FeeSpecification_$5838_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let length := mload(memberValue0)\n mstore(add(headStart, 224), length)\n let _1 := 256\n copy_memory_to_memory(add(memberValue0, 32), add(headStart, _1), length)\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := add(add(headStart, and(add(length, 31), not(31))), _1)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_uint256_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes_calldata(value3, value4, add(headStart, 128))\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063cc9cf8cd11610097578063d547741f11610071578063d547741f1461039b578063d5fe1f10146103ae578063dc527b08146103b6578063f2fde38b146103c9576101c4565b8063cc9cf8cd14610362578063d17d023314610375578063d22057a914610388576101c4565b8063b759f954116100d3578063b759f95414610316578063c42994a214610329578063c4d66de81461033c578063cab2504d1461034f576101c4565b80638da5cb5b146102d557806393c829fc146102f0578063a0355f4e14610303576101c4565b80634b8658461161016657806372beb6fb1161014057806372beb6fb1461028957806386039aed1461029c578063893917ea146102af5780638ca946aa146102c2576101c4565b80634b8658461461024557806362f0ab5514610258578063715018a614610281576101c4565b806320813154116101a257806320813154146101f95780632f2ff15d1461020c578063394c78ba1461021f578063414000b514610232576101c4565b806301132a7f146101c957806310a81c4a146101de5780631d5e7314146101e6575b600080fd5b6101dc6101d7366004611794565b6103dc565b005b6101dc610474565b6101dc6101f436600461175c565b610508565b6101dc6102073660046116f4565b6105ac565b6101dc61021a36600461170c565b61060c565b6101dc61022d36600461186c565b6106a1565b6101dc6102403660046116f4565b61071f565b6101dc6102533660046116f4565b61077a565b61026b610266366004611920565b6107d5565b6040516102789190611a82565b60405180910390f35b6101dc6108a4565b6101dc6102973660046118ef565b6108b8565b6101dc6102aa3660046118dd565b610936565b6101dc6102bd3660046116f4565b610999565b6101dc6102d0366004611794565b6109f9565b6002546040516001600160a01b039091168152602001610278565b6101dc6102fe3660046116f4565b610a53565b6101dc6103113660046116f4565b610aae565b6101dc6103243660046116f4565b610b09565b6101dc6103373660046116f4565b610d58565b6101dc61034a366004611695565b610db3565b6101dc61035d366004611695565b610f38565b6101dc6103703660046118dd565b610f94565b6101dc6103833660046116f4565b610ff7565b6101dc61039636600461170c565b611052565b6101dc6103a936600461170c565b6110bc565b6101dc61111f565b6101dc6103c436600461173b565b611199565b6101dc6103d7366004611695565b611200565b6002546001600160a01b0316331461040f5760405162461bcd60e51b8152600401610406906119a9565b60405180910390fd5b6005546040516301132a7f60e01b81526001600160a01b03909116906301132a7f9061043f9084906004016119ec565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b5050505050565b6002546001600160a01b0316331461049e5760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663046f7da26040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b50505050565b6002546001600160a01b031633146105325760405162461bcd60e51b8152600401610406906119a9565b6000546040516307579cc560e21b815260048101859052602481018490526001600160a01b0383811660448301526201000090920490911690631d5e7314906064015b600060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b50505050505050565b6002546001600160a01b031633146105d65760405162461bcd60e51b8152600401610406906119a9565b6000546040516308204c5560e21b815260048101839052620100009091046001600160a01b03169063208131549060240161043f565b6002546001600160a01b031633146106365760405162461bcd60e51b8152600401610406906119a9565b600154604051632f2ff15d60e01b8152600481018490526001600160a01b03838116602483015290911690632f2ff15d906044015b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505050565b6002546001600160a01b031633146106cb5760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031303a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146107495760405162461bcd60e51b8152600401610406906119a9565b60035460405163414000b560e01b8152600481018390526001600160a01b039091169063414000b59060240161043f565b6002546001600160a01b031633146107a45760405162461bcd60e51b8152600401610406906119a9565b6003546040516325c32c2360e11b8152600481018390526001600160a01b0390911690634b8658469060240161043f565b61080e6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b6005546040516362f0ab5560e01b81526001600160a01b03909116906362f0ab55906108469089908990899089908990600401611af4565b60006040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089a91908101906117cc565b9695505050505050565b6108ac611276565b6108b660006112d0565b565b6002546001600160a01b031633146108e25760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031313a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146109605760405162461bcd60e51b8152600401610406906119a9565b6005546040516386039aed60e01b8152600481018490526001600160a01b038381166024830152909116906386039aed9060440161066b565b6002546001600160a01b031633146109c35760405162461bcd60e51b8152600401610406906119a9565b60005460405163449c8bf560e11b815260048101839052620100009091046001600160a01b03169063893917ea9060240161043f565b6002546001600160a01b03163314610a235760405162461bcd60e51b8152600401610406906119a9565b600554604051634654a35560e11b81526001600160a01b0390911690638ca946aa9061043f9084906004016119ec565b6002546001600160a01b03163314610a7d5760405162461bcd60e51b8152600401610406906119a9565b6003546040516307aed1d360e11b8152600481018390526001600160a01b0390911690630f5da3a69060240161043f565b6002546001600160a01b03163314610ad85760405162461bcd60e51b8152600401610406906119a9565b60035460405163501aafa760e11b8152600481018390526001600160a01b039091169063a0355f4e9060240161043f565b6002546001600160a01b03163314610b335760405162461bcd60e51b8152600401610406906119a9565b600354604051632dd67e5560e21b8152600481018390526001600160a01b039091169063b759f95490602401600060405180830381600087803b158015610b7957600080fd5b505af1158015610b8d573d6000803e3d6000fd5b5050600354604051630e48080360e21b8152600481018590526001600160a01b039091169250633920200c915060240160206040518083038186803b158015610bd557600080fd5b505afa158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0d91906116d4565b15610d55576003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da189060240160206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f91906116b8565b90506000819050600460009054906101000a90046001600160a01b03166001600160a01b031663f93b367384836001600160a01b03166370d2fe536040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c91906118c5565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401610575565b50565b6002546001600160a01b03163314610d825760405162461bcd60e51b8152600401610406906119a9565b60015460405163274b02a760e01b8152600481018390526001600160a01b039091169063274b02a79060240161043f565b600054610100900460ff1615808015610dd35750600054600160ff909116105b80610df45750610de230611322565b158015610df4575060005460ff166001145b610e575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610406565b6000805460ff191660011790558015610e7a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610ea4600090565b6541636365737360d01b14610ee657610ec56541636365737360d01b611335565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610eee61141d565b8015610f34576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b03163314610f625760405162461bcd60e51b8152600401610406906119a9565b60055460405163cab2504d60e01b81526001600160a01b0383811660048301529091169063cab2504d9060240161043f565b6002546001600160a01b03163314610fbe5760405162461bcd60e51b8152600401610406906119a9565b60055460405163cc9cf8cd60e01b8152600481018490526001600160a01b0383811660248301529091169063cc9cf8cd9060440161066b565b6002546001600160a01b031633146110215760405162461bcd60e51b8152600401610406906119a9565b60015460405163d17d023360e01b8152600481018390526001600160a01b039091169063d17d02339060240161043f565b6002546001600160a01b0316331461107c5760405162461bcd60e51b8152600401610406906119a9565b60005460405163d22057a960e01b8152600481018490526001600160a01b038381166024830152620100009092049091169063d22057a99060440161066b565b6002546001600160a01b031633146110e65760405162461bcd60e51b8152600401610406906119a9565b60015460405163d547741f60e01b8152600481018490526001600160a01b0383811660248301529091169063d547741f9060440161066b565b6002546001600160a01b031633146111495760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663e6400bbe6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b6002546001600160a01b031633146111c35760405162461bcd60e51b8152600401610406906119a9565b600054604051631b8a4f6160e31b81526004810184905260248101839052620100009091046001600160a01b03169063dc527b089060440161066b565b611208611276565b6001600160a01b03811661126d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610406565b610d55816112d0565b6002546001600160a01b031633146108b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610406565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561137f57600080fd5b505afa158015611393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b791906116b8565b90506001600160a01b0381166113305760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610406565b600054610100900460ff166114885760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610406565b61149d6810dbdb5c1bdb995b9d60ba1b611335565b600380546001600160a01b0319166001600160a01b03929092169190911790556114cd63141bdbdb60e21b611335565b600480546001600160a01b0319166001600160a01b039290921691909117905561150167547265617375727960c01b611335565b600580546001600160a01b0319166001600160a01b039290921691909117905561153061152b3390565b6112d0565b611538611540565b6108b66115a1565b60006115596a213ab7323632aa37b5b2b760a91b611335565b9050600061156f6542756e646c6560d01b611335565b6040516328e2dc5360e21b81526001600160a01b0380831660048301529192509083169063a38b714c9060240161066b565b60006115b56541636365737360d01b611335565b60405163c19010a760e01b81523060048201529091506001600160a01b0382169063c19010a79060240161043f565b60008083601f8401126115f5578182fd5b50813567ffffffffffffffff81111561160c578182fd5b60208301915083602082850101111561162457600080fd5b9250929050565b600082601f83011261163b578081fd5b815167ffffffffffffffff81111561165557611655611b82565b611668601f8201601f1916602001611b25565b81815284602083860101111561167c578283fd5b61168d826020830160208701611b56565b949350505050565b6000602082840312156116a6578081fd5b81356116b181611b98565b9392505050565b6000602082840312156116c9578081fd5b81516116b181611b98565b6000602082840312156116e5578081fd5b815180151581146116b1578182fd5b600060208284031215611705578081fd5b5035919050565b6000806040838503121561171e578081fd5b82359150602083013561173081611b98565b809150509250929050565b6000806040838503121561174d578182fd5b50508035926020909101359150565b600080600060608486031215611770578081fd5b8335925060208401359150604084013561178981611b98565b809150509250925092565b6000602082840312156117a5578081fd5b813567ffffffffffffffff8111156117bb578182fd5b820160c081850312156116b1578182fd5b6000602082840312156117dd578081fd5b815167ffffffffffffffff808211156117f4578283fd5b9083019060c08286031215611807578283fd5b61181160c0611b25565b82518152602083015160208201526040830151604082015260608301518281111561183a578485fd5b6118468782860161162b565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600080600060408486031215611880578283fd5b833561ffff81168114611891578384fd5b9250602084013567ffffffffffffffff8111156118ac578283fd5b6118b8868287016115e4565b9497909650939450505050565b6000602082840312156118d6578081fd5b5051919050565b6000806040838503121561171e578182fd5b600080600060408486031215611903578081fd5b83359250602084013567ffffffffffffffff8111156118ac578182fd5b600080600080600060808688031215611937578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115611962578182fd5b61196e888289016115e4565b969995985093965092949392505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60208082526023908201527f4552524f523a494f532d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000602082528235602083015260208301356040830152604083013560608301526060830135601e19843603018112611a23578182fd5b8301803567ffffffffffffffff811115611a3b578283fd5b803603851315611a49578283fd5b60c06080850152611a6160e08501826020850161197f565b915050608084013560a084015260a084013560c08401528091505092915050565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015280518060e0850152610100611aca8282870160208601611b56565b608086015160a0868101919091529095015160c0850152601f01601f191690920190920192915050565b600086825285602083015284604083015260806060830152611b1a60808301848661197f565b979650505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611b4e57611b4e611b82565b604052919050565b60005b83811015611b71578181015183820152602001611b59565b838111156105025750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d5557600080fdfea2646970667358221220333f2e0637b224e8cc6c846170351f725e19eaaf413aa2f641b275607074212c64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1C4 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xCC9CF8CD GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xD547741F GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x39B JUMPI DUP1 PUSH4 0xD5FE1F10 EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x3B6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x3C9 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0xCC9CF8CD EQ PUSH2 0x362 JUMPI DUP1 PUSH4 0xD17D0233 EQ PUSH2 0x375 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x388 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0xB759F954 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0xB759F954 EQ PUSH2 0x316 JUMPI DUP1 PUSH4 0xC42994A2 EQ PUSH2 0x329 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x33C JUMPI DUP1 PUSH4 0xCAB2504D EQ PUSH2 0x34F JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x93C829FC EQ PUSH2 0x2F0 JUMPI DUP1 PUSH4 0xA0355F4E EQ PUSH2 0x303 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x4B865846 GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x72BEB6FB GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x72BEB6FB EQ PUSH2 0x289 JUMPI DUP1 PUSH4 0x86039AED EQ PUSH2 0x29C JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x2AF JUMPI DUP1 PUSH4 0x8CA946AA EQ PUSH2 0x2C2 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x4B865846 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x62F0AB55 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x281 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x20813154 GT PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x1F9 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x394C78BA EQ PUSH2 0x21F JUMPI DUP1 PUSH4 0x414000B5 EQ PUSH2 0x232 JUMPI PUSH2 0x1C4 JUMP JUMPDEST DUP1 PUSH4 0x1132A7F EQ PUSH2 0x1C9 JUMPI DUP1 PUSH4 0x10A81C4A EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x1E6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1DC PUSH2 0x1D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x3DC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1DC PUSH2 0x474 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x1F4 CALLDATASIZE PUSH1 0x4 PUSH2 0x175C JUMP JUMPDEST PUSH2 0x508 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x207 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x5AC JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x21A CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x60C JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x22D CALLDATASIZE PUSH1 0x4 PUSH2 0x186C JUMP JUMPDEST PUSH2 0x6A1 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x240 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x71F JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x253 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x77A JUMP JUMPDEST PUSH2 0x26B PUSH2 0x266 CALLDATASIZE PUSH1 0x4 PUSH2 0x1920 JUMP JUMPDEST PUSH2 0x7D5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x278 SWAP2 SWAP1 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DC PUSH2 0x8A4 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x297 CALLDATASIZE PUSH1 0x4 PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x8B8 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2AA CALLDATASIZE PUSH1 0x4 PUSH2 0x18DD JUMP JUMPDEST PUSH2 0x936 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2BD CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0x999 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1794 JUMP JUMPDEST PUSH2 0x9F9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x278 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xA53 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xAAE JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x324 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x337 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xD58 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x34A CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0xDB3 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x35D CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0xF38 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x370 CALLDATASIZE PUSH1 0x4 PUSH2 0x18DD JUMP JUMPDEST PUSH2 0xF94 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x383 CALLDATASIZE PUSH1 0x4 PUSH2 0x16F4 JUMP JUMPDEST PUSH2 0xFF7 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x396 CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x1052 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x170C JUMP JUMPDEST PUSH2 0x10BC JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x111F JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3C4 CALLDATASIZE PUSH1 0x4 PUSH2 0x173B JUMP JUMPDEST PUSH2 0x1199 JUMP JUMPDEST PUSH2 0x1DC PUSH2 0x3D7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1695 JUMP JUMPDEST PUSH2 0x1200 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x40F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1132A7F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x1132A7F SWAP1 PUSH2 0x43F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x19EC JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x46D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x49E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x46F7DA2 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x502 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x532 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7579CC5 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0x1D5E7314 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x5D6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x8204C55 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x20813154 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x636 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F2FF15D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x2F2FF15D SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x685 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x699 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x6CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3031303A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x749 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x414000B5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x414000B5 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x7A4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x25C32C23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4B865846 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH2 0x80E PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62F0AB55 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x62F0AB55 SWAP1 PUSH2 0x846 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x1AF4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x872 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x89A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x17CC JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x8AC PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x8B6 PUSH1 0x0 PUSH2 0x12D0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8E2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3031313A494D504C454D454E4154494F4E5F4D495353 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x494E47 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x960 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x86039AED PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0x86039AED SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x9C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x449C8BF5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x893917EA SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA23 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4654A355 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8CA946AA SWAP1 PUSH2 0x43F SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x19EC JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xA7D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7AED1D3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xF5DA3A6 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xAD8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x501AAFA7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA0355F4E SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB33 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2DD67E55 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB759F954 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB79 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB8D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xE480803 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x3920200C SWAP2 POP PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBE9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC0D SWAP2 SWAP1 PUSH2 0x16D4 JUMP JUMPDEST ISZERO PUSH2 0xD55 JUMPI PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC6B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC8F SWAP2 SWAP1 PUSH2 0x16B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xF93B3673 DUP5 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x70D2FE53 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCF4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD08 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD2C SWAP2 SWAP1 PUSH2 0x18C5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP6 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 ADD PUSH2 0x575 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xD82 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x274B02A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x274B02A7 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0xDD3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xDF4 JUMPI POP PUSH2 0xDE2 ADDRESS PUSH2 0x1322 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xDF4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xE57 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xE7A JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xEA4 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xEE6 JUMPI PUSH2 0xEC5 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xEEE PUSH2 0x141D JUMP JUMPDEST DUP1 ISZERO PUSH2 0xF34 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xF62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCAB2504D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xCAB2504D SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xFBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCC9CF8CD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xCC9CF8CD SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1021 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD17D0233 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD17D0233 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x107C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD22057A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV SWAP1 SWAP2 AND SWAP1 PUSH4 0xD22057A9 SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x10E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD547741F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE SWAP1 SWAP2 AND SWAP1 PUSH4 0xD547741F SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1149 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xE6400BBE PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x11C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x406 SWAP1 PUSH2 0x19A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B8A4F61 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xDC527B08 SWAP1 PUSH1 0x44 ADD PUSH2 0x66B JUMP JUMPDEST PUSH2 0x1208 PUSH2 0x1276 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x126D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH2 0xD55 DUP2 PUSH2 0x12D0 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x137F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1393 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13B7 SWAP2 SWAP1 PUSH2 0x16B8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1330 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1488 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x406 JUMP JUMPDEST PUSH2 0x149D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x14CD PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1501 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1530 PUSH2 0x152B CALLER SWAP1 JUMP JUMPDEST PUSH2 0x12D0 JUMP JUMPDEST PUSH2 0x1538 PUSH2 0x1540 JUMP JUMPDEST PUSH2 0x8B6 PUSH2 0x15A1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1559 PUSH11 0x213AB7323632AA37B5B2B7 PUSH1 0xA9 SHL PUSH2 0x1335 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x156F PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x28E2DC53 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP4 AND PUSH1 0x4 DUP4 ADD MSTORE SWAP2 SWAP3 POP SWAP1 DUP4 AND SWAP1 PUSH4 0xA38B714C SWAP1 PUSH1 0x24 ADD PUSH2 0x66B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B5 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1335 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC19010A7 PUSH1 0xE0 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC19010A7 SWAP1 PUSH1 0x24 ADD PUSH2 0x43F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x15F5 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x160C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x1624 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x163B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1655 JUMPI PUSH2 0x1655 PUSH2 0x1B82 JUMP JUMPDEST PUSH2 0x1668 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x1B25 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x167C JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x168D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x1B56 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16A6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x16B1 DUP2 PUSH2 0x1B98 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x16B1 DUP2 PUSH2 0x1B98 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16E5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x16B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1705 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x1730 DUP2 PUSH2 0x1B98 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x174D JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1770 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x1789 DUP2 PUSH2 0x1B98 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17A5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x17BB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0xC0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x16B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17DD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x17F4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x1807 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x1811 PUSH1 0xC0 PUSH2 0x1B25 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x183A JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x1846 DUP8 DUP3 DUP7 ADD PUSH2 0x162B JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1880 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0xFFFF DUP2 AND DUP2 EQ PUSH2 0x1891 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18AC JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x18B8 DUP7 DUP3 DUP8 ADD PUSH2 0x15E4 JUMP JUMPDEST SWAP5 SWAP8 SWAP1 SWAP7 POP SWAP4 SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x18D6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x171E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1903 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x18AC JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x80 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1937 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH1 0x20 DUP7 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 DUP7 ADD CALLDATALOAD SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1962 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x196E DUP9 DUP3 DUP10 ADD PUSH2 0x15E4 JUMP JUMPDEST SWAP7 SWAP10 SWAP6 SWAP9 POP SWAP4 SWAP7 POP SWAP3 SWAP5 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A494F532D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x1A23 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1A3B JUMPI DUP3 DUP4 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP6 SGT ISZERO PUSH2 0x1A49 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0xC0 PUSH1 0x80 DUP6 ADD MSTORE PUSH2 0x1A61 PUSH1 0xE0 DUP6 ADD DUP3 PUSH1 0x20 DUP6 ADD PUSH2 0x197F JUMP JUMPDEST SWAP2 POP POP PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE DUP1 MLOAD DUP1 PUSH1 0xE0 DUP6 ADD MSTORE PUSH2 0x100 PUSH2 0x1ACA DUP3 DUP3 DUP8 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1B56 JUMP JUMPDEST PUSH1 0x80 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP1 SWAP3 ADD SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1B1A PUSH1 0x80 DUP4 ADD DUP5 DUP7 PUSH2 0x197F JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1B4E JUMPI PUSH2 0x1B4E PUSH2 0x1B82 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x1B71 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1B59 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x502 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xD55 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER EXTCODEHASH 0x2E MOD CALLDATACOPY 0xB2 0x24 0xE8 0xCC PUSH13 0x846170351F725E19EAAF413AA2 0xF6 COINBASE 0xB2 PUSH22 0x607074212C64736F6C63430008020033000000000000 ","sourceMap":"786:6300:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6706:186;;;;;;:::i;:::-;;:::i;:::-;;5509:129;;;:::i;2560:280::-;;;;;;:::i;:::-;;:::i;2390:164::-;;;;;;:::i;:::-;;:::i;3387:169::-;;;;;;:::i;:::-;;:::i;4845:221::-;;;;;;:::i;:::-;;:::i;4470:135::-;;;;;;:::i;:::-;;:::i;4327:137::-;;;;;;:::i;:::-;;:::i;6262:434::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1831:101:41;;;:::i;5128:219:83:-;;;;;;:::i;:::-;;:::i;5826:224::-;;;;;;:::i;:::-;;:::i;2009:168::-;;;;;;:::i;:::-;;:::i;6898:186::-;;;;;;:::i;:::-;;:::i;1201:85:41:-;1273:6;;1201:85;;-1:-1:-1;;;;;1273:6:41;;;7459:51:103;;7447:2;7432:18;1201:85:41;7414:102:103;4611:157:83;;;;;;:::i;:::-;;:::i;4184:137::-;;;;;;:::i;:::-;;:::i;3762:416::-;;;;;;:::i;:::-;;:::i;3080:142::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;5644:176:83:-;;;;;;:::i;:::-;;:::i;6056:200::-;;;;;;:::i;:::-;;:::i;3228:153::-;;;;;;:::i;:::-;;:::i;2183:201::-;;;;;;:::i;:::-;;:::i;3562:174::-;;;;;;:::i;:::-;;:::i;5372:131::-;;;:::i;2846:207::-;;;;;;:::i;:::-;;:::i;2081:198:41:-;;;;;;:::i;:::-;;:::i;6706:186:83:-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;;;;;;;;;6852:9:::1;::::0;:33:::1;::::0;-1:-1:-1;;;6852:33:83;;-1:-1:-1;;;;;6852:9:83;;::::1;::::0;:24:::1;::::0;:33:::1;::::0;6877:7;;6852:33:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6706:186:::0;:::o;5509:129::-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5613:9:::1;;;;;;;;;-1:-1:-1::0;;;;;5613:9:83::1;-1:-1:-1::0;;;;;5613:16:83::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5509:129::o:0;2560:280::-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;2763:9:::1;::::0;:70:::1;::::0;-1:-1:-1;;;2763:70:83;;::::1;::::0;::::1;8437:25:103::0;;;8478:18;;;8471:34;;;-1:-1:-1;;;;;8541:32:103;;;8521:18;;;8514:60;2763:9:83;;;::::1;::::0;;::::1;::::0;:27:::1;::::0;8410:18:103;;2763:70:83::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2560:280:::0;;;:::o;2390:164::-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;2512:9:::1;::::0;:35:::1;::::0;-1:-1:-1;;;2512:35:83;;::::1;::::0;::::1;7667:25:103::0;;;2512:9:83;;;::::1;-1:-1:-1::0;;;;;2512:9:83::1;::::0;:20:::1;::::0;7640:18:103;;2512:35:83::1;7622:76:103::0;3387:169:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;3515:7:::1;::::0;:34:::1;::::0;-1:-1:-1;;;3515:34:83;;::::1;::::0;::::1;7877:25:103::0;;;-1:-1:-1;;;;;7938:32:103;;;7918:18;;;7911:60;3515:7:83;;::::1;::::0;:17:::1;::::0;7850:18:103;;3515:34:83::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3387:169:::0;;:::o;4845:221::-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5014:45:::1;::::0;-1:-1:-1;;;5014:45:83;;11795:2:103;5014:45:83::1;::::0;::::1;11777:21:103::0;11834:2;11814:18;;;11807:30;11873:34;11853:18;;;11846:62;-1:-1:-1;;;11924:18:103;;;11917:33;11967:19;;5014:45:83::1;11767:225:103::0;4470:135:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;4577:10:::1;::::0;:21:::1;::::0;-1:-1:-1;;;4577:21:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;4577:10:83;;::::1;::::0;:17:::1;::::0;7640:18:103;;4577:21:83::1;7622:76:103::0;4327:137:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;4435:10:::1;::::0;:22:::1;::::0;-1:-1:-1;;;4435:22:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;4435:10:83;;::::1;::::0;:18:::1;::::0;7640::103;;4435:22:83::1;7622:76:103::0;6262:434:83;6485:33;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6485:33:83;6541:9;;:148;;-1:-1:-1;;;6541:148:83;;-1:-1:-1;;;;;6541:9:83;;;;:32;;:148;;6587:11;;6612:8;;6634:13;;6661:18;;;;6541:148;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6541:148:83;;;;;;;;;;;;:::i;:::-;6534:155;6262:434;-1:-1:-1;;;;;;6262:434:83:o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;5128:219:83:-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5295:45:::1;::::0;-1:-1:-1;;;5295:45:83;;10618:2:103;5295:45:83::1;::::0;::::1;10600:21:103::0;10657:2;10637:18;;;10630:30;10696:34;10676:18;;;10669:62;-1:-1:-1;;;10747:18:103;;;10740:33;10790:19;;5295:45:83::1;10590:225:103::0;5826:224:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5981:9:::1;::::0;:62:::1;::::0;-1:-1:-1;;;5981:62:83;;::::1;::::0;::::1;7877:25:103::0;;;-1:-1:-1;;;;;7938:32:103;;;7918:18;;;7911:60;5981:9:83;;::::1;::::0;:27:::1;::::0;7850:18:103;;5981:62:83::1;7832:145:103::0;2009:168:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;2133:9:::1;::::0;:37:::1;::::0;-1:-1:-1;;;2133:37:83;;::::1;::::0;::::1;7667:25:103::0;;;2133:9:83;;;::::1;-1:-1:-1::0;;;;;2133:9:83::1;::::0;:24:::1;::::0;7640:18:103;;2133:37:83::1;7622:76:103::0;6898:186:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;7044:9:::1;::::0;:33:::1;::::0;-1:-1:-1;;;7044:33:83;;-1:-1:-1;;;;;7044:9:83;;::::1;::::0;:24:::1;::::0;:33:::1;::::0;7069:7;;7044:33:::1;;;:::i;4611:157::-:0;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;4719:10:::1;::::0;:42:::1;::::0;-1:-1:-1;;;4719:42:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;4719:10:83;;::::1;::::0;:38:::1;::::0;7640:18:103;;4719:42:83::1;7622:76:103::0;4184:137:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;4292:10:::1;::::0;:22:::1;::::0;-1:-1:-1;;;4292:22:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;4292:10:83;;::::1;::::0;:18:::1;::::0;7640::103;;4292:22:83::1;7622:76:103::0;3762:416:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;3869:10:::1;::::0;:22:::1;::::0;-1:-1:-1;;;3869:22:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;3869:10:83;;::::1;::::0;:18:::1;::::0;7640::103;;3869:22:83::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;3906:10:83::1;::::0;:24:::1;::::0;-1:-1:-1;;;3906:24:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;3906:10:83;;::::1;::::0;-1:-1:-1;3906:20:83::1;::::0;-1:-1:-1;7640:18:103;;3906:24:83::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3902:270;;;3969:10;::::0;:27:::1;::::0;-1:-1:-1;;;3969:27:83;;::::1;::::0;::::1;7667:25:103::0;;;3946:20:83::1;::::0;-1:-1:-1;;;;;3969:10:83::1;::::0;:23:::1;::::0;7640:18:103;;3969:27:83::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3946:50;;4010:16;4046:9;4010:47;;4072:5;;;;;;;;;-1:-1:-1::0;;;;;4072:5:83::1;-1:-1:-1::0;;;;;4072:27:83::1;;4117:2;4137:7;-1:-1:-1::0;;;;;4137:21:83::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4072:89;::::0;-1:-1:-1;;;;;;4072:89:83::1;::::0;;;;;;::::1;::::0;::::1;8156:25:103::0;;;;8197:18;;;8190:34;8129:18;;4072:89:83::1;8111:119:103::0;3902:270:83::1;3762:416:::0;:::o;3080:142::-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;3193:7:::1;::::0;:22:::1;::::0;-1:-1:-1;;;3193:22:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;3193:7:83;;::::1;::::0;:15:::1;::::0;7640:18:103;;3193:22:83::1;7622:76:103::0;1143:232:88;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;10203:2:103;3146:190:47;;;10185:21:103;10242:2;10222:18;;;10215:30;10281:34;10261:18;;;10254:62;-1:-1:-1;;;10332:18:103;;;10325:44;10386:19;;3146:190:47;10175:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;8737:36:103;;3531:14:47;;8725:2:103;8710:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;5644:176:83:-;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5771:9:::1;::::0;:42:::1;::::0;-1:-1:-1;;;5771:42:83;;-1:-1:-1;;;;;7477:32:103;;;5771:42:83::1;::::0;::::1;7459:51:103::0;5771:9:83;;::::1;::::0;:27:::1;::::0;7432:18:103;;5771:42:83::1;7414:102:103::0;6056:200:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;6199:9:::1;::::0;:50:::1;::::0;-1:-1:-1;;;6199:50:83;;::::1;::::0;::::1;7877:25:103::0;;;-1:-1:-1;;;;;7938:32:103;;;7918:18;;;7911:60;6199:9:83;;::::1;::::0;:25:::1;::::0;7850:18:103;;6199:50:83::1;7832:145:103::0;3228:153:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;3345:7:::1;::::0;:29:::1;::::0;-1:-1:-1;;;3345:29:83;;::::1;::::0;::::1;7667:25:103::0;;;-1:-1:-1;;;;;3345:7:83;;::::1;::::0;:22:::1;::::0;7640:18:103;;3345:29:83::1;7622:76:103::0;2183:201:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;2326:9:::1;::::0;:51:::1;::::0;-1:-1:-1;;;2326:51:83;;::::1;::::0;::::1;7877:25:103::0;;;-1:-1:-1;;;;;7938:32:103;;;7918:18;;;7911:60;2326:9:83;;;::::1;::::0;;::::1;::::0;:18:::1;::::0;7850::103;;2326:51:83::1;7832:145:103::0;3562:174:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;3694:7:::1;::::0;:35:::1;::::0;-1:-1:-1;;;3694:35:83;;::::1;::::0;::::1;7877:25:103::0;;;-1:-1:-1;;;;;7938:32:103;;;7918:18;;;7911:60;3694:7:83;;::::1;::::0;:18:::1;::::0;7850::103;;3694:35:83::1;7832:145:103::0;5372:131:83;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;5477:9:::1;;;;;;;;;-1:-1:-1::0;;;;;5477:9:83::1;-1:-1:-1::0;;;;;5477:17:83::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;2846:207:::0;1273:6:41;;-1:-1:-1;;;;;1273:6:41;719:10:59;1068:23:83;1060:71;;;;-1:-1:-1;;;1060:71:83;;;;;;;:::i;:::-;2992:9:::1;::::0;:54:::1;::::0;-1:-1:-1;;;2992:54:83;;::::1;::::0;::::1;8156:25:103::0;;;8197:18;;;8190:34;;;2992:9:83;;;::::1;-1:-1:-1::0;;;;;2992:9:83::1;::::0;:29:::1;::::0;8129:18:103;;2992:54:83::1;8111:119:103::0;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;9392:2:103;2161:73:41::1;::::0;::::1;9374:21:103::0;9431:2;9411:18;;;9404:30;9470:34;9450:18;;;9443:62;-1:-1:-1;;;9521:18:103;;;9514:36;9567:19;;2161:73:41::1;9364:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;1359:130::-:0;1273:6;;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;11022:2:103;1414:68:41;;;11004:21:103;;;11041:18;;;11034:30;11100:34;11080:18;;;11073:62;11152:18;;1414:68:41;10994:182:103;2433:187:41;2525:6;;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;7667:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;7640:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;8986:2:103;1703:113:88;;;8968:21:103;9025:2;9005:18;;;8998:30;9064:34;9044:18;;;9037:62;-1:-1:-1;;;9115:18:103;;;9108:35;9160:19;;1703:113:88;8958:227:103;1155:393:83;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;11383:2:103;4880:69:47;;;11365:21:103;11422:2;11402:18;;;11395:30;11461:34;11441:18;;;11434:62;-1:-1:-1;;;11512:18:103;;;11505:41;11563:19;;4880:69:47;11355:233:103;4880:69:47;1261:32:83::1;-1:-1:-1::0;;;1261:19:83::1;:32::i;:::-;1228:10;:66:::0;;-1:-1:-1;;;;;;1228:66:83::1;-1:-1:-1::0;;;;;1228:66:83;;;::::1;::::0;;;::::1;::::0;;1327:27:::1;-1:-1:-1::0;;;1327:19:83::1;:27::i;:::-;1304:5;:51:::0;;-1:-1:-1;;;;;;1304:51:83::1;-1:-1:-1::0;;;;;1304:51:83;;;::::1;::::0;;;::::1;::::0;;1392:31:::1;-1:-1:-1::0;;;1392:19:83::1;:31::i;:::-;1365:9;:59:::0;;-1:-1:-1;;;;;;1365:59:83::1;-1:-1:-1::0;;;;;1365:59:83;;;::::1;::::0;;;::::1;::::0;;1435:32:::1;1454:12;719:10:59::0;640:96;;1454:12:83::1;1435:18;:32::i;:::-;1477;:30;:32::i;:::-;1519:22;:20;:22::i;1741:243::-:0;1801:17;1833:34;-1:-1:-1;;;1833:19:83;:34::i;:::-;1801:67;;1878:21;1902:29;-1:-1:-1;;;1902:19:83;:29::i;:::-;1941:36;;-1:-1:-1;;;1941:36:83;;-1:-1:-1;;;;;7477:32:103;;;1941:36:83;;;7459:51:103;1878:53:83;;-1:-1:-1;1941:21:83;;;;;;7432:18:103;;1941:36:83;7414:102:103;1554:181:83;1604:23;1647:29;-1:-1:-1;;;1647:19:83;:29::i;:::-;1687:41;;-1:-1:-1;;;1687:41:83;;1722:4;1687:41;;;7459:51:103;1604:73:83;;-1:-1:-1;;;;;;1687:26:83;;;;;7432:18:103;;1687:41:83;7414:102:103;14:375;;;129:3;122:4;114:6;110:17;106:27;96:2;;154:8;144;137:26;96:2;-1:-1:-1;184:20:103;;227:18;216:30;;213:2;;;266:8;256;249:26;213:2;310:4;302:6;298:17;286:29;;362:3;355:4;346:6;338;334:19;330:30;327:39;324:2;;;379:1;376;369:12;324:2;86:303;;;;;:::o;394:512::-;;500:3;493:4;485:6;481:17;477:27;467:2;;522:5;515;508:20;467:2;555:6;549:13;581:18;577:2;574:26;571:2;;;603:18;;:::i;:::-;647:55;690:2;671:13;;-1:-1:-1;;667:27:103;696:4;663:38;647:55;:::i;:::-;727:2;718:7;711:19;773:3;766:4;761:2;753:6;749:15;745:26;742:35;739:2;;;794:5;787;780:20;739:2;811:64;872:2;865:4;856:7;852:18;845:4;837:6;833:17;811:64;:::i;:::-;893:7;457:449;-1:-1:-1;;;;457:449:103:o;911:257::-;;1023:2;1011:9;1002:7;998:23;994:32;991:2;;;1044:6;1036;1029:22;991:2;1088:9;1075:23;1107:31;1132:5;1107:31;:::i;:::-;1157:5;981:187;-1:-1:-1;;;981:187:103:o;1173:261::-;;1296:2;1284:9;1275:7;1271:23;1267:32;1264:2;;;1317:6;1309;1302:22;1264:2;1354:9;1348:16;1373:31;1398:5;1373:31;:::i;1439:297::-;;1559:2;1547:9;1538:7;1534:23;1530:32;1527:2;;;1580:6;1572;1565:22;1527:2;1617:9;1611:16;1670:5;1663:13;1656:21;1649:5;1646:32;1636:2;;1697:6;1689;1682:22;1741:190;;1853:2;1841:9;1832:7;1828:23;1824:32;1821:2;;;1874:6;1866;1859:22;1821:2;-1:-1:-1;1902:23:103;;1811:120;-1:-1:-1;1811:120:103:o;1936:325::-;;;2065:2;2053:9;2044:7;2040:23;2036:32;2033:2;;;2086:6;2078;2071:22;2033:2;2127:9;2114:23;2104:33;;2187:2;2176:9;2172:18;2159:32;2200:31;2225:5;2200:31;:::i;:::-;2250:5;2240:15;;;2023:238;;;;;:::o;2266:258::-;;;2395:2;2383:9;2374:7;2370:23;2366:32;2363:2;;;2416:6;2408;2401:22;2363:2;-1:-1:-1;;2444:23:103;;;2514:2;2499:18;;;2486:32;;-1:-1:-1;2353:171:103:o;2529:393::-;;;;2675:2;2663:9;2654:7;2650:23;2646:32;2643:2;;;2696:6;2688;2681:22;2643:2;2737:9;2724:23;2714:33;;2794:2;2783:9;2779:18;2766:32;2756:42;;2848:2;2837:9;2833:18;2820:32;2861:31;2886:5;2861:31;:::i;:::-;2911:5;2901:15;;;2633:289;;;;;:::o;3212:426::-;;3360:2;3348:9;3339:7;3335:23;3331:32;3328:2;;;3381:6;3373;3366:22;3328:2;3426:9;3413:23;3459:18;3451:6;3448:30;3445:2;;;3496:6;3488;3481:22;3445:2;3524:22;;3580:3;3562:16;;;3558:26;3555:2;;;3602:6;3594;3587:22;3643:923;;3800:2;3788:9;3779:7;3775:23;3771:32;3768:2;;;3821:6;3813;3806:22;3768:2;3859:9;3853:16;3888:18;3929:2;3921:6;3918:14;3915:2;;;3950:6;3942;3935:22;3915:2;3978:22;;;;4034:4;4016:16;;;4012:27;4009:2;;;4057:6;4049;4042:22;4009:2;4088:21;4104:4;4088:21;:::i;:::-;4138:2;4132:9;4125:5;4118:24;4188:2;4184;4180:11;4174:18;4169:2;4162:5;4158:14;4151:42;4239:2;4235;4231:11;4225:18;4220:2;4213:5;4209:14;4202:42;4283:2;4279;4275:11;4269:18;4312:2;4302:8;4299:16;4296:2;;;4333:6;4325;4318:22;4296:2;4374:55;4421:7;4410:8;4406:2;4402:17;4374:55;:::i;:::-;4369:2;4362:5;4358:14;4351:79;;4477:3;4473:2;4469:12;4463:19;4457:3;4450:5;4446:15;4439:44;4530:3;4526:2;4522:12;4516:19;4510:3;4503:5;4499:15;4492:44;4555:5;4545:15;;;;;3758:808;;;;:::o;4571:599::-;;;;4718:2;4706:9;4697:7;4693:23;4689:32;4686:2;;;4739:6;4731;4724:22;4686:2;4783:9;4770:23;4833:6;4826:5;4822:18;4815:5;4812:29;4802:2;;4860:6;4852;4845:22;4802:2;4888:5;-1:-1:-1;4944:2:103;4929:18;;4916:32;4971:18;4960:30;;4957:2;;;5008:6;5000;4993:22;4957:2;5052:58;5102:7;5093:6;5082:9;5078:22;5052:58;:::i;:::-;4676:494;;5129:8;;-1:-1:-1;5026:84:103;;-1:-1:-1;;;;4676:494:103:o;5370:194::-;;5493:2;5481:9;5472:7;5468:23;5464:32;5461:2;;;5514:6;5506;5499:22;5461:2;-1:-1:-1;5542:16:103;;5451:113;-1:-1:-1;5451:113:103:o;5569:325::-;;;5698:2;5686:9;5677:7;5673:23;5669:32;5666:2;;;5719:6;5711;5704:22;5899:497;;;;6047:2;6035:9;6026:7;6022:23;6018:32;6015:2;;;6068:6;6060;6053:22;6015:2;6109:9;6096:23;6086:33;;6170:2;6159:9;6155:18;6142:32;6197:18;6189:6;6186:30;6183:2;;;6234:6;6226;6219:22;6401:634;;;;;;6583:3;6571:9;6562:7;6558:23;6554:33;6551:2;;;6605:6;6597;6590:22;6551:2;6646:9;6633:23;6623:33;;6703:2;6692:9;6688:18;6675:32;6665:42;;6754:2;6743:9;6739:18;6726:32;6716:42;;6809:2;6798:9;6794:18;6781:32;6836:18;6828:6;6825:30;6822:2;;;6873:6;6865;6858:22;6822:2;6917:58;6967:7;6958:6;6947:9;6943:22;6917:58;:::i;:::-;6541:494;;;;-1:-1:-1;6541:494:103;;-1:-1:-1;6994:8:103;;6891:84;6541:494;-1:-1:-1;;;6541:494:103:o;7040:268::-;;7128:6;7123:3;7116:19;7180:6;7173:5;7166:4;7161:3;7157:14;7144:43;7232:3;7225:4;7216:6;7211:3;7207:16;7203:27;7196:40;7297:4;7290:2;7286:7;7281:2;7273:6;7269:15;7265:29;7260:3;7256:39;7252:50;7245:57;;7106:202;;;;;:::o;9597:399::-;9799:2;9781:21;;;9838:2;9818:18;;;9811:30;9877:34;9872:2;9857:18;;9850:62;-1:-1:-1;;;9943:2:103;9928:18;;9921:33;9986:3;9971:19;;9771:225::o;11997:1100::-;;12196:2;12185:9;12178:21;12248:6;12235:20;12230:2;12219:9;12215:18;12208:48;12317:2;12309:6;12305:15;12292:29;12287:2;12276:9;12272:18;12265:57;12383:2;12375:6;12371:15;12358:29;12353:2;12342:9;12338:18;12331:57;12448:2;12440:6;12436:15;12423:29;12532:2;12528:7;12519:6;12503:14;12499:27;12495:41;12475:18;12471:66;12461:2;;12554:4;12548;12541:18;12461:2;12583:31;;12637:19;;12679:18;12668:30;;12665:2;;;12714:4;12708;12701:18;12665:2;12765:6;12749:14;12745:27;12737:6;12733:40;12730:2;;;12789:4;12783;12776:18;12730:2;12833:4;12827:3;12816:9;12812:19;12805:33;12861:70;12926:3;12915:9;12911:19;12903:6;12898:2;12891:5;12887:14;12861:70;:::i;:::-;12847:84;;;12993:3;12985:6;12981:16;12968:30;12962:3;12951:9;12947:19;12940:59;13062:3;13054:6;13050:16;13037:30;13030:4;13019:9;13015:20;13008:60;13085:6;13077:14;;;12168:929;;;;:::o;13102:850::-;;13299:2;13288:9;13281:21;13344:6;13338:13;13333:2;13322:9;13318:18;13311:41;13406:2;13398:6;13394:15;13388:22;13383:2;13372:9;13368:18;13361:50;13465:2;13457:6;13453:15;13447:22;13442:2;13431:9;13427:18;13420:50;13517:2;13509:6;13505:15;13499:22;13558:4;13552:3;13541:9;13537:19;13530:33;13592:12;13586:19;13642:6;13636:3;13625:9;13621:19;13614:35;13668:3;13680:72;13745:6;13740:2;13729:9;13725:18;13720:2;13706:12;13702:21;13680:72;:::i;:::-;13807:3;13795:16;;13789:23;13783:3;13768:19;;;13761:52;;;;13857:16;;;13851:23;13844:4;13829:20;;13822:53;13936:2;13915:15;-1:-1:-1;;13911:29:103;13896:45;;;13892:54;;;;13271:681;-1:-1:-1;;13271:681:103:o;14671:459::-;;14912:6;14901:9;14894:25;14955:6;14950:2;14939:9;14935:18;14928:34;14998:6;14993:2;14982:9;14978:18;14971:34;15041:3;15036:2;15025:9;15021:18;15014:31;15062:62;15119:3;15108:9;15104:19;15096:6;15088;15062:62;:::i;:::-;15054:70;14884:246;-1:-1:-1;;;;;;;14884:246:103:o;15135:275::-;15206:2;15200:9;15271:2;15252:13;;-1:-1:-1;;15248:27:103;15236:40;;15306:18;15291:34;;15327:22;;;15288:62;15285:2;;;15353:18;;:::i;:::-;15389:2;15382:22;15180:230;;-1:-1:-1;15180:230:103:o;15415:258::-;15487:1;15497:113;15511:6;15508:1;15505:13;15497:113;;;15587:11;;;15581:18;15568:11;;;15561:39;15533:2;15526:10;15497:113;;;15628:6;15625:1;15622:13;15619:2;;;-1:-1:-1;;15663:1:103;15645:16;;15638:27;15468:205::o;15678:127::-;15739:10;15734:3;15730:20;15727:1;15720:31;15770:4;15767:1;15760:15;15794:4;15791:1;15784:15;15810:131;-1:-1:-1;;;;;15885:31:103;;15875:42;;15865:2;;15931:1;15928;15921:12"},"methodIdentifiers":{"adjustStakingRequirements(uint256,bytes)":"72beb6fb","approve(uint256)":"b759f954","archive(uint256)":"93c829fc","createFeeSpecification(uint256,uint256,uint256,bytes)":"62f0ab55","createRole(bytes32)":"c42994a2","decline(uint256)":"a0355f4e","deregister(bytes32)":"20813154","deregisterInRelease(bytes32,bytes32)":"dc527b08","grantRole(bytes32,address)":"2f2ff15d","initialize(address)":"c4d66de8","invalidateRole(bytes32)":"d17d0233","owner()":"8da5cb5b","prepareRelease(bytes32)":"893917ea","register(bytes32,address)":"d22057a9","registerInRelease(bytes32,bytes32,address)":"1d5e7314","renounceOwnership()":"715018a6","resume(uint256)":"414000b5","resumeTreasury()":"10a81c4a","revokeRole(bytes32,address)":"d547741f","setCapitalFees((uint256,uint256,uint256,bytes,uint256,uint256))":"8ca946aa","setDefaultStaking(uint16,bytes)":"394c78ba","setInstanceWallet(address)":"cab2504d","setPremiumFees((uint256,uint256,uint256,bytes,uint256,uint256))":"01132a7f","setProductToken(uint256,address)":"cc9cf8cd","setRiskpoolWallet(uint256,address)":"86039aed","suspend(uint256)":"4b865846","suspendTreasury()":"d5fe1f10","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"adjustStakingRequirements\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"archive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"}],\"name\":\"createFeeSpecification\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"createRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregisterInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"invalidateRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newRelease\",\"type\":\"bytes32\"}],\"name\":\"prepareRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"registerInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setCapitalFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"componentType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDefaultStaking\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"walletAddress\",\"type\":\"address\"}],\"name\":\"setInstanceWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fractionalFee\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"feeCalculationData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct ITreasury.FeeSpecification\",\"name\":\"feeSpec\",\"type\":\"tuple\"}],\"name\":\"setPremiumFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Address\",\"type\":\"address\"}],\"name\":\"setProductToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"riskpoolWalletAddress\",\"type\":\"address\"}],\"name\":\"setRiskpoolWallet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"suspend\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/InstanceOperatorService.sol\":\"InstanceOperatorService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Product.sol\":{\"keccak256\":\"0xdf55ff9638da4db1501362fc2ffcd26858b7c09b7cc5e0701f1bb31081142815\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fdbfbd830dafe0d721150778469cbbdf01058f8713c3636d2ba48234761e8590\",\"dweb:/ipfs/QmZ9K5X2ant5TtUhA9kgXUAMe7y9MUHpnv3PQUKAmxwVYj\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/AccessController.sol\":{\"keccak256\":\"0xc8293dfdc5c092e2fcea16d8a68117c9367dd09b3d951b5e730a588652212928\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://91e551839506ea79fadff0e2ea72c033c5d68d61a8414301307a172dc770f885\",\"dweb:/ipfs/QmWibGimWPLxXgNcpKUPidyTTBqvyjdV2dnQfNGfWMDgJ8\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/modules/TreasuryModule.sol\":{\"keccak256\":\"0x5b816938607e52b8e3811a426b7c31377109b12c665d3889bdc0fc38b5d1039c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81900732664f85ed367e3c78020bc2bd78e8521dd928f3fd5bcd39ce0ce1dcf0\",\"dweb:/ipfs/QmPcRYLq6SJvZkMnoSZAocCKw9m83oXezNaDsmHJ6UWr4E\"]},\"contracts/services/InstanceOperatorService.sol\":{\"keccak256\":\"0xc81b4b5142137add01ca290d8ebfa560b487c73a074df4d914ad734f047bfba2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8a2679741b690346dc2d2488d5a57693fe5a080882a78b5cfccc68258a710e5f\",\"dweb:/ipfs/QmUGDdo53xM1iWVcZ9MtYBb5LYXXemS6vfwnpXSGcuJEL8\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/test/TestProduct.sol\":{\"keccak256\":\"0x2e678b5aa5698dcd7869eef379bfd156677dd4f5ece499e0dcc29614437e58a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://87e6535b924036b2b8d08c516519de66ea362dec109249675acc95471cb71989\",\"dweb:/ipfs/QmVnFPF4u2XZPHXSkqQD5qPDMnDPAYoDwjquVTrUnXVxh7\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/services/InstanceService.sol":{"InstanceService":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"BUNDLE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COMPONENT_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COMPONENT_OWNER_SERVICE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INSTANCE_OPERATOR_SERVICE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE_SERVICE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POLICY_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POOL_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRODUCT_SERVICE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISKPOOL_SERVICE_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TREASURY_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"numberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"claims","outputs":[{"internalType":"uint256","name":"numberOfClaims","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"contractName","outputs":[{"internalType":"bytes32","name":"name","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contracts","outputs":[{"internalType":"uint256","name":"numberOfContracts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"bundleIdx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getApplication","outputs":[{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"balanceAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBundleToken","outputs":[{"internalType":"contract IBundleToken","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"capacityAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getCapital","outputs":[{"internalType":"uint256","name":"capitalAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainName","outputs":[{"internalType":"string","name":"chainName","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"getClaim","outputs":[{"components":[{"internalType":"enum IPolicy.ClaimState","name":"state","type":"uint8"},{"internalType":"uint256","name":"claimAmount","type":"uint256"},{"internalType":"uint256","name":"paidAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Claim","name":"claim","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getComponent","outputs":[{"internalType":"contract IComponent","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"componentAddress","type":"address"}],"name":"getComponentId","outputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getComponentOwnerService","outputs":[{"internalType":"contract IComponentOwnerService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"componentState","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"getComponentType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDefaultAdminRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeFractionFullUnit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceId","outputs":[{"internalType":"bytes32","name":"instanceId","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceOperator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceOperatorService","outputs":[{"internalType":"contract IInstanceOperatorService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInstanceWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"bpKey","type":"bytes32"}],"name":"getMetadata","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"productId","type":"uint256"},{"internalType":"enum IPolicy.PolicyFlowState","name":"state","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Metadata","name":"metadata","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getOracleId","outputs":[{"internalType":"uint256","name":"oracleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleProviderRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleService","outputs":[{"internalType":"contract IOracleService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"getPayout","outputs":[{"components":[{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"enum IPolicy.PayoutState","name":"state","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Payout","name":"payout","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"getPolicy","outputs":[{"components":[{"internalType":"enum IPolicy.PolicyState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumExpectedAmount","type":"uint256"},{"internalType":"uint256","name":"premiumPaidAmount","type":"uint256"},{"internalType":"uint256","name":"claimsCount","type":"uint256"},{"internalType":"uint256","name":"openClaimsCount","type":"uint256"},{"internalType":"uint256","name":"payoutMaxAmount","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Policy","name":"policy","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getProductId","outputs":[{"internalType":"uint256","name":"productId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProductOwnerRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProductService","outputs":[{"internalType":"contract IProductService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpool","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredAtRisk","type":"uint256"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPool.Pool","name":"riskPool","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolKeeperRole","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolService","outputs":[{"internalType":"contract IRiskpoolService","name":"service","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getRiskpoolWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getStakedAssets","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getStakingRequirements","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"totalValueLockedAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTreasuryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"principal","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"oracles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"payouts","outputs":[{"internalType":"uint256","name":"numberOfPayouts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"processIds","outputs":[{"internalType":"uint256","name":"numberOfProcessIds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"products","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"riskpools","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"name":"unburntBundles","outputs":[{"internalType":"uint256","name":"numberOfUnburntBundles","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612ebd80620000f46000396000f3fe608060405234801561001057600080fd5b50600436106103e65760003560e01c80637f22c2d91161020a578063c4d66de811610125578063e543ecb9116100b8578063ec833b0c11610087578063ec833b0c14610894578063eff0f592146108a7578063f1d354d0146108ba578063f6b3e7d0146108c2578063ff3f3883146108d5576103e6565b8063e543ecb91461083b578063e882892214610854578063eb35783c1461086c578063eb80211414610874576103e6565b8063d49d21c0116100f4578063d49d21c0146107fa578063d722b0bc14610802578063dd51c86a1461080a578063e00246041461082a576103e6565b8063c4d66de8146107aa578063c559783e146107bf578063c71e261f146107d2578063cef58f13146107da576103e6565b8063a44330c41161019d578063ab9c6ee41161016c578063ab9c6ee41461075e578063aeddb90514610771578063bc506f6414610784578063bcd5349f14610797576103e6565b8063a44330c41461071b578063a5961b4c14610723578063a5c0f5a114610743578063a7ecda3614610756576103e6565b8063a3f66bd2116101d9578063a3f66bd2146106bf578063a3f685f9146106e0578063a4266a6614610700578063a427056e14610713576103e6565b80637f22c2d91461066157806391d14854146106815780639f77a605146106a4578063a054381f146106b7576103e6565b80633ffdd2f31161030557806352b5b0ef116102985780636319112b116102675780636319112b1461062e5780636c0f79b6146106365780636fa298531461063e578063775a4048146106465780637db328441461064e576103e6565b806352b5b0ef146105c75780635ab1bd53146105e65780635e6877be146105fe5780635e966e451461060e576103e6565b80634f27da18116102d45780634f27da181461058757806350e1a19b1461059a57806351b2fb90146105ac57806352a9c8d7146105bf576103e6565b80633ffdd2f31461055c5780634288121d14610564578063442ed8171461056c5780634908163714610574576103e6565b80632898312f1161037d5780633408e4701161034c5780633408e4701461051b57806339c6fa90146105215780633a42b053146105295780633f5d923514610549576103e6565b80632898312f146104be57806329560980146104d55780632b1c7f73146104e85780632d0821b7146104fb576103e6565b806318442e63116103b957806318442e631461048b57806318ff21c3146104935780631e010439146104a35780632857373a146104b6576103e6565b8063038696bb146103eb578063091924dc1461041b5780630c131757146104235780631551100f1461043f575b600080fd5b6103fe6103f93660046125e1565b6108e8565b6040516001600160a01b0390911681526020015b60405180910390f35b6103fe61096e565b61043163141bdbdb60e21b81565b604051908152602001610412565b61043160008054604080514660208201526201000090920460601b6bffffffffffffffffffffffff19169082015260540160405160208183030381529060405280519060200120905090565b610431610998565b61043165506f6c69637960d01b81565b6104316104b13660046125e1565b610a15565b610431610a9e565b6104316c4f7261636c655365727669636560981b81565b6104316104e33660046125e1565b610ae3565b6104316104f6366004612589565b610b6b565b61050e6105093660046125e1565b610bea565b6040516104129190612b14565b46610431565b6103fe610c72565b61053c6105373660046125e1565b610d11565b6040516104129190612a75565b6104316105573660046125e1565b610d6c565b610431610df4565b6103fe610e39565b6103fe610e55565b6103fe6105823660046125e1565b610e72565b6103fe6105953660046125e1565b610ea4565b61043167547265617375727960c01b81565b6104316810dbdb5c1bdb995b9d60ba1b81565b610431610ed6565b61043174436f6d706f6e656e744f776e65725365727669636560581b81565b6103fe6000546201000090046001600160a01b031690565b6104316542756e646c6560d01b81565b61062161061c3660046125e1565b610f1b565b6040516104129190612a88565b610431610f98565b610431610fdd565b6103fe61102c565b61043161104f565b61043161065c3660046125e1565b611094565b61067461066f366004612640565b6110c6565b6040516104129190612aaf565b61069461068f366004612611565b61118c565b6040519015158152602001610412565b6104316106b23660046125e1565b611211565b610431611243565b61043176496e7374616e63654f70657261746f725365727669636560481b81565b6106f36106ee3660046125e1565b611288565b6040516104129190612c44565b61043161070e3660046125e1565b611353565b610431611385565b6103fe6113d5565b6107366107313660046125e1565b611452565b6040516104129190612bab565b6104316107513660046125e1565b611509565b6103fe61153b565b61053c61076c3660046125e1565b611556565b61043161077f3660046125e1565b6115ac565b6106746107923660046125e1565b6115e0565b6104316107a53660046125e1565b611698565b6107bd6107b8366004612589565b611730565b005b6104316107cd3660046125e1565b6118ae565b6104316118e0565b6107ed6107e8366004612640565b611925565b6040516104129190612bf8565b6104316119e4565b61053c611a29565b61081d6108183660046125e1565b611aca565b6040516104129190612aa2565b6006546001600160a01b03166103fe565b6104316e5269736b706f6f6c5365727669636560881b81565b6104316d50726f647563745365727669636560901b81565b6103fe611b47565b6108876108823660046125e1565b611bd6565b6040516104129190612cb1565b6104316108a2366004612640565b611cc2565b6104316108b53660046125e1565b611d46565b610431611d7a565b6104316108d03660046125e1565b611dbf565b6104316108e33660046125e1565b611df6565b60065460405163038696bb60e01b8152600481018390526000916001600160a01b03169063038696bb906024015b60206040518083038186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125a5565b90505b919050565b600061099376496e7374616e63654f70657261746f725365727669636560481b611e2b565b905090565b600254604080516318442e6360e01b815290516000926001600160a01b0316916318442e63916004808301926020929190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125f9565b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610a5b57600080fd5b505afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a939190612998565b610100015192915050565b6003546040805163142b9b9d60e11b815290516000926001600160a01b031691632857373a916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610b2957600080fd5b505afa158015610b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b619190612998565b60c0015192915050565b600354604051632b1c7f7360e01b81526001600160a01b0383811660048301526000921690632b1c7f73906024015b60206040518083038186803b158015610bb257600080fd5b505afa158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125f9565b610bf26123f3565b600254604051632d0821b760e01b8152600481018490526001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3657600080fd5b505afa158015610c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109669190810190612747565b600080610c9876496e7374616e63654f70657261746f725365727669636560481b611e2b565b9050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd357600080fd5b505afa158015610ce7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0b91906125a5565b91505090565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030323a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b60648201526060906084015b60405180910390fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610db257600080fd5b505afa158015610dc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dea9190612998565b60e0015192915050565b60015460408051633ffdd2f360e01b815290516000926001600160a01b031691633ffdd2f3916004808301926020929190829003018186803b1580156109dd57600080fd5b60006109936d50726f647563745365727669636560901b611e2b565b60006109936e5269736b706f6f6c5365727669636560881b611e2b565b600654604051634908163760e01b8152600481018390526000916001600160a01b031690634908163790602401610916565b6003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da1890602401610916565b600154604080516352a9c8d760e01b815290516000926001600160a01b0316916352a9c8d7916004808301926020929190829003018186803b1580156109dd57600080fd5b600354604051635e966e4560e01b8152600481018390526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610f6057600080fd5b505afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612661565b60065460408051634667ae5160e11b815290516000926001600160a01b031691638ccf5ca2916004808301926020929190829003018186803b1580156109dd57600080fd5b60008060029054906101000a90046001600160a01b03166001600160a01b0316636c0f79b66040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b600061099374436f6d706f6e656e744f776e65725365727669636560581b611e2b565b60015460408051630eeb480960e31b815290516000926001600160a01b03169163775a4048916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051631f6cca1160e21b8152600481018390526000916001600160a01b031690637db3284490602401610b9a565b6111006040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051637f22c2d960e01b8152918201859052602482018490526001600160a01b031690637f22c2d99060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611185919081019061269c565b9392505050565b600154604051632474521560e21b8152600481018490526001600160a01b03838116602483015260009216906391d148549060440160206040518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125c1565b600354604051639f77a60560e01b8152600481018390526000916001600160a01b031690639f77a60590602401610b9a565b6003546040805163a054381f60e01b815290516000926001600160a01b03169163a054381f916004808301926020929190829003018186803b1580156109dd57600080fd5b6112d8604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6004805460405163a3f685f960e01b81529182018490526001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612913565b600554604051635213353360e11b8152600481018390526000916001600160a01b03169063a4266a6690602401610b9a565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663a427056e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b60065460408051632910cc3160e21b815290516000926001600160a01b03169163a44330c4916004808301926020929190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125a5565b61148b6040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b6004805460405163296586d360e21b81529182018490526001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061281b565b60035460405163a5c0f5a160e01b8152600481018390526000916001600160a01b03169063a5c0f5a190602401610b9a565b60006109936c4f7261636c655365727669636560981b611e2b565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030313a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b6064820152606090608401610d63565b6004805460405163be183b1160e01b81529182018390526000916001600160a01b039091169063be183b1190602401610b9a565b61161a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051632f141bd960e21b81529182018490526001600160a01b03169063bc506f649060240160006040518083038186803b15801561165c57600080fd5b505afa158015611670573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061269c565b600554604051633ae0084560e21b81526004810183905260009182916001600160a01b039091169063eb802114906024016101606040518083038186803b1580156116e257600080fd5b505afa1580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a9190612998565b90508060e001518160c001516111859190612d7e565b600054610100900460ff16158080156117505750600054600160ff909116105b8061176a5750303b15801561176a575060005460ff166001145b6117cd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d63565b6000805460ff1916600117905580156117f0576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561181a600090565b6541636365737360d01b1461185c5761183b6541636365737360d01b611e2b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611864611f13565b80156118aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516362acbc1f60e11b8152600481018390526000916001600160a01b03169063c559783e90602401610b9a565b6003546040805163c71e261f60e01b815290516000926001600160a01b03169163c71e261f916004808301926020929190829003018186803b1580156109dd57600080fd5b61195f6040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6004805460405163cef58f1360e01b8152918201859052602482018490526001600160a01b03169063cef58f139060440160006040518083038186803b1580156119a857600080fd5b505afa1580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111859190810190612899565b60015460408051630352748760e61b815290516000926001600160a01b03169163d49d21c0916004808301926020929190829003018186803b1580156109dd57600080fd5b466000908152600760205260409020805460609190611a4790612dd1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7390612dd1565b8015611ac05780601f10611a9557610100808354040283529160200191611ac0565b820191906000526020600020905b815481529060010190602001808311611aa357829003601f168201915b5050505050905090565b600354604051636ea8e43560e11b8152600481018390526000916001600160a01b03169063dd51c86a9060240160206040518083038186803b158015611b0f57600080fd5b505afa158015611b23573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612680565b600080600260009054906101000a90046001600160a01b03166001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906125a5565b92915050565b611c456040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600554604051633ae0084560e21b8152600481018490526001600160a01b039091169063eb802114906024016101606040518083038186803b158015611c8a57600080fd5b505afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612998565b600554604051633b20cec360e21b815260048101849052602481018390526000916001600160a01b03169063ec833b0c9060440160206040518083038186803b158015611d0e57600080fd5b505afa158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125f9565b6004805460405163163c4b3160e31b81529182018390526000916001600160a01b039091169063b1e2598890602401610b9a565b60055460408051630f1d354d60e41b815290516000926001600160a01b03169163f1d354d0916004808301926020929190829003018186803b1580156109dd57600080fd5b60008054604051630f6b3e7d60e41b815260048101849052620100009091046001600160a01b03169063f6b3e7d090602401610b9a565b600354604051600162c0c77d60e01b03198152600481018390526000916001600160a01b03169063ff3f388390602401610b9a565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611e7557600080fd5b505afa158015611e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ead91906125a5565b90506001600160a01b0381166109695760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610d63565b600054610100900460ff16611f7e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610d63565b611f906542756e646c6560d01b611e2b565b600280546001600160a01b0319166001600160a01b0392909216919091179055611fc56810dbdb5c1bdb995b9d60ba1b611e2b565b600380546001600160a01b0319166001600160a01b0392909216919091179055611ff765506f6c69637960d01b611e2b565b600480546001600160a01b0319166001600160a01b039290921691909117905561202763141bdbdb60e21b611e2b565b600580546001600160a01b0319166001600160a01b039290921691909117905561205b67547265617375727960c01b611e2b565b600680546001600160a01b0319166001600160a01b0392909216919091179055612083612085565b565b60408051808201909152601481527308ae8d0cae4caeada409ac2d2dcdccae85e8aa8960631b602080830191825260016000526007905290516120e9917fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82891612465565b5060408051808201909152600a81526908edecae4d8d25e8aa8960b31b60208083019182526005600052600790529051612144917fbcdda56b5d08466ec462cbbe0adfa57cb0a15fcc8940ef68f702f21b787bc93591612465565b506040805180820190915260078082526647616e6163686560c81b602080840191825261053960005291909152905161219e917f96a76633116ac3161b66b4be70f114c9a245f4bbf414dc7a4d0edce8c01734cf91612465565b5060408051808201909152600b81526a476e6f7369732f7844616960a81b602080830191825260646000526007905290516121fa917f06179e496907eb3333fef2ed2194553681badbb6d717316349bf33d21ec47e1291612465565b5060408051808201909152600a815269536f6b6f6c2f53504f4160b01b6020808301918252604d600052600790529051612255917f58f3d94c4a880e721e755344405d3fe6076875bf5b3ad388d0a326a85bcabfb591612465565b50604080518082019091526015815274506f6c79676f6e204d61696e6e65742f4d4154494360581b602080830191825260896000526007905290516122bb917f65420a8d28339aeca441a0c94a464f6387b468f3f5ea5c247a6df59a5f7b886691612465565b5060408051808201909152600c81526b4d756d6261692f4d4154494360a01b6020808301918252611f41600052600790529051612319917f4d67172c71df6b75e948764b65521db84c0c61e94d5f3739b666417e9471e58491612465565b50604080518082019091526016815275082ecc2d8c2dcc6d0ca40865a86d0c2d2dc5e82ac82b60531b602080830191825261a86a600052600790529051612381917fa4356065248d86930c73e944e85f9d029fb0f52c0b8312d1a61bfbc9797ef51491612465565b5060408051808201909152601b81527f4176616c616e6368652046756a6920546573746e65742f415641580000000000602080830191825261a8696000526007905290516123f0917f57a00da22bfc0a372532b5dfacb7ddf387626f66de87422d191e09ea7493495691612465565b50565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561243557634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461247190612dd1565b90600052602060002090601f01602090048101928261249357600085556124d9565b82601f106124ac57805160ff19168380011785556124d9565b828001600101855582156124d9579182015b828111156124d95782518255916020019190600101906124be565b506124e59291506124e9565b5090565b5b808211156124e557600081556001016124ea565b805161096981612e58565b600082601f830112612519578081fd5b815167ffffffffffffffff81111561253357612533612e22565b612546601f8201601f1916602001612d4d565b81815284602083860101111561255a578283fd5b61256b826020830160208701612da1565b949350505050565b805161096981612e6d565b805161096981612e7a565b60006020828403121561259a578081fd5b813561118581612e58565b6000602082840312156125b6578081fd5b815161118581612e58565b6000602082840312156125d2578081fd5b81518015158114611185578182fd5b6000602082840312156125f2578081fd5b5035919050565b60006020828403121561260a578081fd5b5051919050565b60008060408385031215612623578081fd5b82359150602083013561263581612e58565b809150509250929050565b60008060408385031215612652578182fd5b50508035926020909101359150565b600060208284031215612672578081fd5b815160078110611185578182fd5b600060208284031215612691578081fd5b815161118581612e7a565b6000602082840312156126ad578081fd5b815167ffffffffffffffff808211156126c4578283fd5b9083019060c082860312156126d7578283fd5b6126e160c0612d4d565b82516126ec81612e6d565b808252506020830151602082015260408301516040820152606083015182811115612715578485fd5b61272187828601612509565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612758578081fd5b815167ffffffffffffffff8082111561276f578283fd5b8184019150610140808387031215612785578384fd5b61278e81612d4d565b90508251815260208301516020820152604083015160408201526127b460608401612573565b60608201526080830151828111156127ca578485fd5b6127d687828601612509565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60006020828403121561282c578081fd5b815167ffffffffffffffff80821115612843578283fd5b9083019060c08286031215612856578283fd5b61286060c0612d4d565b825161286b81612e58565b8152602083810151908201526128836040840161257e565b6040820152606083015182811115612715578485fd5b6000602082840312156128aa578081fd5b815167ffffffffffffffff808211156128c1578283fd5b9083019060c082860312156128d4578283fd5b6128de60c0612d4d565b825181526020830151600281106128f3578485fd5b602082015260408381015190820152606083015182811115612715578485fd5b6000610120808385031215612926578182fd5b61292f81612d4d565b905061293a8361257e565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006101608083850312156129ab578182fd5b6129b481612d4d565b9050825181526129c6602084016124fe565b60208201526129d7604084016124fe565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152508091505092915050565b60008151808452612a54816020860160208601612da1565b601f01601f19169290920160200192915050565b612a7181612e38565b9052565b6000602082526111856020830184612a3c565b6020810160078310612a9c57612a9c612e0c565b91905290565b60208101612a9c83612e48565b6000602082528251612ac081612e38565b806020840152506020830151604083015260408301516060830152606083015160c06080840152612af460e0840182612a3c565b9050608084015160a084015260a084015160c08401528091505092915050565b6000602082528251602083015260208301516040830152604083015160608301526060830151612b476080840182612a68565b5060808301516101408060a0850152612b64610160850183612a3c565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b60006020825260018060a01b038351166020830152602083015160408301526040830151612bd881612e48565b80606084015250606083015160c06080840152612af460e0840182612a3c565b60006020825282516020830152602083015160028110612c1a57612c1a612e0c565b8060408401525060408301516060830152606083015160c06080840152612af460e0840182612a3c565b8151610120820190612c5581612e48565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b81518152602080830151610160830191612cd5908401826001600160a01b03169052565b506040830151612cf060408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7657612d76612e22565b604052919050565b600082821015612d9c57634e487b7160e01b81526011600452602481fd5b500390565b60005b83811015612dbc578181015183820152602001612da4565b83811115612dcb576000848401525b50505050565b600281046001821680612de557607f821691505b60208210811415612e0657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600481106123f0576123f0612e0c565b600381106123f0576123f0612e0c565b6001600160a01b03811681146123f057600080fd5b600481106123f057600080fd5b600381106123f057600080fdfea26469706673582212208baa8d3664a94bfb7869664ce5bc59b2293ec35862ba4906c74e8d5f75cdd5f464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x22 JUMP JUMPDEST PUSH3 0xE4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xE2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x2EBD DUP1 PUSH3 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3E6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F22C2D9 GT PUSH2 0x20A JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xE543ECB9 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xEC833B0C GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xEC833B0C EQ PUSH2 0x894 JUMPI DUP1 PUSH4 0xEFF0F592 EQ PUSH2 0x8A7 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x8BA JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x8C2 JUMPI DUP1 PUSH4 0xFF3F3883 EQ PUSH2 0x8D5 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xE543ECB9 EQ PUSH2 0x83B JUMPI DUP1 PUSH4 0xE8828922 EQ PUSH2 0x854 JUMPI DUP1 PUSH4 0xEB35783C EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0xEB802114 EQ PUSH2 0x874 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xD49D21C0 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xD49D21C0 EQ PUSH2 0x7FA JUMPI DUP1 PUSH4 0xD722B0BC EQ PUSH2 0x802 JUMPI DUP1 PUSH4 0xDD51C86A EQ PUSH2 0x80A JUMPI DUP1 PUSH4 0xE0024604 EQ PUSH2 0x82A JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x7AA JUMPI DUP1 PUSH4 0xC559783E EQ PUSH2 0x7BF JUMPI DUP1 PUSH4 0xC71E261F EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0xCEF58F13 EQ PUSH2 0x7DA JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA44330C4 GT PUSH2 0x19D JUMPI DUP1 PUSH4 0xAB9C6EE4 GT PUSH2 0x16C JUMPI DUP1 PUSH4 0xAB9C6EE4 EQ PUSH2 0x75E JUMPI DUP1 PUSH4 0xAEDDB905 EQ PUSH2 0x771 JUMPI DUP1 PUSH4 0xBC506F64 EQ PUSH2 0x784 JUMPI DUP1 PUSH4 0xBCD5349F EQ PUSH2 0x797 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA44330C4 EQ PUSH2 0x71B JUMPI DUP1 PUSH4 0xA5961B4C EQ PUSH2 0x723 JUMPI DUP1 PUSH4 0xA5C0F5A1 EQ PUSH2 0x743 JUMPI DUP1 PUSH4 0xA7ECDA36 EQ PUSH2 0x756 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA3F66BD2 GT PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xA3F66BD2 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0xA3F685F9 EQ PUSH2 0x6E0 JUMPI DUP1 PUSH4 0xA4266A66 EQ PUSH2 0x700 JUMPI DUP1 PUSH4 0xA427056E EQ PUSH2 0x713 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x7F22C2D9 EQ PUSH2 0x661 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x681 JUMPI DUP1 PUSH4 0x9F77A605 EQ PUSH2 0x6A4 JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x6B7 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x3FFDD2F3 GT PUSH2 0x305 JUMPI DUP1 PUSH4 0x52B5B0EF GT PUSH2 0x298 JUMPI DUP1 PUSH4 0x6319112B GT PUSH2 0x267 JUMPI DUP1 PUSH4 0x6319112B EQ PUSH2 0x62E JUMPI DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x636 JUMPI DUP1 PUSH4 0x6FA29853 EQ PUSH2 0x63E JUMPI DUP1 PUSH4 0x775A4048 EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0x7DB32844 EQ PUSH2 0x64E JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x52B5B0EF EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0x5E6877BE EQ PUSH2 0x5FE JUMPI DUP1 PUSH4 0x5E966E45 EQ PUSH2 0x60E JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x4F27DA18 GT PUSH2 0x2D4 JUMPI DUP1 PUSH4 0x4F27DA18 EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0x50E1A19B EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x51B2FB90 EQ PUSH2 0x5AC JUMPI DUP1 PUSH4 0x52A9C8D7 EQ PUSH2 0x5BF JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x3FFDD2F3 EQ PUSH2 0x55C JUMPI DUP1 PUSH4 0x4288121D EQ PUSH2 0x564 JUMPI DUP1 PUSH4 0x442ED817 EQ PUSH2 0x56C JUMPI DUP1 PUSH4 0x49081637 EQ PUSH2 0x574 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x2898312F GT PUSH2 0x37D JUMPI DUP1 PUSH4 0x3408E470 GT PUSH2 0x34C JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x51B JUMPI DUP1 PUSH4 0x39C6FA90 EQ PUSH2 0x521 JUMPI DUP1 PUSH4 0x3A42B053 EQ PUSH2 0x529 JUMPI DUP1 PUSH4 0x3F5D9235 EQ PUSH2 0x549 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x2898312F EQ PUSH2 0x4BE JUMPI DUP1 PUSH4 0x29560980 EQ PUSH2 0x4D5 JUMPI DUP1 PUSH4 0x2B1C7F73 EQ PUSH2 0x4E8 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x4FB JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x18442E63 GT PUSH2 0x3B9 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x48B JUMPI DUP1 PUSH4 0x18FF21C3 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x1E010439 EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0x2857373A EQ PUSH2 0x4B6 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x38696BB EQ PUSH2 0x3EB JUMPI DUP1 PUSH4 0x91924DC EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xC131757 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x1551100F EQ PUSH2 0x43F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3FE PUSH2 0x3F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FE PUSH2 0x96E JUMP JUMPDEST PUSH2 0x431 PUSH4 0x141BDBDB PUSH1 0xE2 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x412 JUMP JUMPDEST PUSH2 0x431 PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD CHAINID PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV PUSH1 0x60 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP3 ADD MSTORE PUSH1 0x54 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x998 JUMP JUMPDEST PUSH2 0x431 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xA15 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xA9E JUMP JUMPDEST PUSH2 0x431 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xAE3 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0xB6B JUMP JUMPDEST PUSH2 0x50E PUSH2 0x509 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xBEA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2B14 JUMP JUMPDEST CHAINID PUSH2 0x431 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xC72 JUMP JUMPDEST PUSH2 0x53C PUSH2 0x537 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xD11 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2A75 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x557 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xD6C JUMP JUMPDEST PUSH2 0x431 PUSH2 0xDF4 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xE39 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xE55 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x595 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xEA4 JUMP JUMPDEST PUSH2 0x431 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xED6 JUMP JUMPDEST PUSH2 0x431 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL DUP2 JUMP JUMPDEST PUSH2 0x3FE PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x431 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x621 PUSH2 0x61C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xF1B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2A88 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xF98 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xFDD JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x102C JUMP JUMPDEST PUSH2 0x431 PUSH2 0x104F JUMP JUMPDEST PUSH2 0x431 PUSH2 0x65C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1094 JUMP JUMPDEST PUSH2 0x674 PUSH2 0x66F CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x10C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2AAF JUMP JUMPDEST PUSH2 0x694 PUSH2 0x68F CALLDATASIZE PUSH1 0x4 PUSH2 0x2611 JUMP JUMPDEST PUSH2 0x118C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x412 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x6B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1211 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1243 JUMP JUMPDEST PUSH2 0x431 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP2 JUMP JUMPDEST PUSH2 0x6F3 PUSH2 0x6EE CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1288 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x70E CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1353 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1385 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x13D5 JUMP JUMPDEST PUSH2 0x736 PUSH2 0x731 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1452 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2BAB JUMP JUMPDEST PUSH2 0x431 PUSH2 0x751 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1509 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x153B JUMP JUMPDEST PUSH2 0x53C PUSH2 0x76C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1556 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x77F CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x15AC JUMP JUMPDEST PUSH2 0x674 PUSH2 0x792 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x15E0 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x7A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1698 JUMP JUMPDEST PUSH2 0x7BD PUSH2 0x7B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0x1730 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x431 PUSH2 0x7CD CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x18AE JUMP JUMPDEST PUSH2 0x431 PUSH2 0x18E0 JUMP JUMPDEST PUSH2 0x7ED PUSH2 0x7E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x1925 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2BF8 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x19E4 JUMP JUMPDEST PUSH2 0x53C PUSH2 0x1A29 JUMP JUMPDEST PUSH2 0x81D PUSH2 0x818 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1ACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2AA2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x431 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL DUP2 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x1B47 JUMP JUMPDEST PUSH2 0x887 PUSH2 0x882 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1BD6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2CB1 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x1CC2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1D46 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1D7A JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1DBF JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1DF6 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x38696BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x38696BB SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x92E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x942 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1E2B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x18442E63 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x18442E63 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x993 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA93 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH2 0x100 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x142B9B9D PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x2857373A SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB61 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH2 0xBF2 PUSH2 0x23F3 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2747 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC98 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1E2B JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A49532D3030323A494D504C454D454E4154494F4E5F4D49535349 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4E47 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x60 SWAP1 PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDEA SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3FFDD2F3 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x3FFDD2F3 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x49081637 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x49081637 SWAP1 PUSH1 0x24 ADD PUSH2 0x916 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH2 0x916 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x52A9C8D7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x52A9C8D7 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF74 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2661 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x4667AE51 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x8CCF5CA2 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6C0F79B6 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xEEB4809 PUSH1 0xE3 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x775A4048 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x1100 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1185 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x269C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x25C1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9F77A605 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x9F77A605 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xA054381F PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xA054381F SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12D8 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x131B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x132F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2913 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA427056E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x2910CC31 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xA44330C4 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x142E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x993 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x281B JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA5C0F5A1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5C0F5A1 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A49532D3030313A494D504C454D454E4154494F4E5F4D49535349 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4E47 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x60 SWAP1 PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBE183B11 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBE183B11 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x161A PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x165C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1670 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x269C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x171A SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xE0 ADD MLOAD DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x2D7E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1750 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x176A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x176A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x17CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x17F0 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x181A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x185C JUMPI PUSH2 0x183B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1864 PUSH2 0x1F13 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x18AA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xC71E261F PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xC71E261F SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x195F PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCEF58F13 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xCEF58F13 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1185 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2899 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3527487 PUSH1 0xE6 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD49D21C0 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CHAINID PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH2 0x1A47 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1A73 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1AC0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A95 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1AC0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1AA3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2680 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x21DF0DA7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BD0 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1C45 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C9E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x163C4B31 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB1E25988 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xF1D354D PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xF1D354D0 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xF6B3E7D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF6B3E7D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0xC0C77D PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFF3F3883 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EAD SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x969 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1F7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH2 0x1F90 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1FC5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1FF7 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2027 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x205B PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2083 PUSH2 0x2085 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP2 MSTORE PUSH20 0x8AE8D0CAE4CAEADA409AC2D2DCDCCAE85E8AA89 PUSH1 0x63 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x20E9 SWAP2 PUSH32 0xB39221ACE053465EC3453CE2B36430BD138B997ECEA25C1043DA0C366812B828 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x8EDECAE4D8D25E8AA89 PUSH1 0xB3 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x5 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2144 SWAP2 PUSH32 0xBCDDA56B5D08466EC462CBBE0ADFA57CB0A15FCC8940EF68F702F21B787BC935 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x7 DUP1 DUP3 MSTORE PUSH7 0x47616E61636865 PUSH1 0xC8 SHL PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE PUSH2 0x539 PUSH1 0x0 MSTORE SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH2 0x219E SWAP2 PUSH32 0x96A76633116AC3161B66B4BE70F114C9A245F4BBF414DC7A4D0EDCE8C01734CF SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xB DUP2 MSTORE PUSH11 0x476E6F7369732F78446169 PUSH1 0xA8 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x64 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x21FA SWAP2 PUSH32 0x6179E496907EB3333FEF2ED2194553681BADBB6D717316349BF33D21EC47E12 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x536F6B6F6C2F53504F41 PUSH1 0xB0 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x4D PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2255 SWAP2 PUSH32 0x58F3D94C4A880E721E755344405D3FE6076875BF5B3AD388D0A326A85BCABFB5 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH21 0x506F6C79676F6E204D61696E6E65742F4D41544943 PUSH1 0x58 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x89 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x22BB SWAP2 PUSH32 0x65420A8D28339AECA441A0C94A464F6387B468F3F5EA5C247A6DF59A5F7B8866 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xC DUP2 MSTORE PUSH12 0x4D756D6261692F4D41544943 PUSH1 0xA0 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0x1F41 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2319 SWAP2 PUSH32 0x4D67172C71DF6B75E948764B65521DB84C0C61E94D5F3739B666417E9471E584 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH22 0x82ECC2D8C2DCC6D0CA40865A86D0C2D2DC5E82AC82B PUSH1 0x53 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0xA86A PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2381 SWAP2 PUSH32 0xA4356065248D86930C73E944E85F9D029FB0F52C0B8312D1A61BFBC9797EF514 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH32 0x4176616C616E6368652046756A6920546573746E65742F415641580000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0xA869 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x23F0 SWAP2 PUSH32 0x57A00DA22BFC0A372532B5DFACB7DDF387626F66DE87422D191E09EA74934956 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2435 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2471 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2493 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x24D9 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x24AC JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x24D9 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x24D9 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x24D9 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x24BE JUMP JUMPDEST POP PUSH2 0x24E5 SWAP3 SWAP2 POP PUSH2 0x24E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x24EA JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2519 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2533 JUMPI PUSH2 0x2533 PUSH2 0x2E22 JUMP JUMPDEST PUSH2 0x2546 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2D4D JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x255A JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x256B DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2DA1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E6D JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x259A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1185 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25B6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1185 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25D2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1185 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25F2 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x260A JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2623 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2635 DUP2 PUSH2 0x2E58 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2652 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2672 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1185 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2691 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1185 DUP2 PUSH2 0x2E7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x26C4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x26D7 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x26E1 PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD PUSH2 0x26EC DUP2 PUSH2 0x2E6D JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2721 DUP8 DUP3 DUP7 ADD PUSH2 0x2509 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2758 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x276F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2785 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x278E DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x27B4 PUSH1 0x60 DUP5 ADD PUSH2 0x2573 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x27CA JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x27D6 DUP8 DUP3 DUP7 ADD PUSH2 0x2509 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2843 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2856 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2860 PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD PUSH2 0x286B DUP2 PUSH2 0x2E58 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2883 PUSH1 0x40 DUP5 ADD PUSH2 0x257E JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28AA JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x28C1 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x28D4 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x28DE PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x28F3 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2926 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x292F DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP PUSH2 0x293A DUP4 PUSH2 0x257E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29AB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x29B4 DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH2 0x29C6 PUSH1 0x20 DUP5 ADD PUSH2 0x24FE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x29D7 PUSH1 0x40 DUP5 ADD PUSH2 0x24FE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2A54 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2DA1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2A71 DUP2 PUSH2 0x2E38 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1185 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A3C JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2A9C JUMPI PUSH2 0x2A9C PUSH2 0x2E0C JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2A9C DUP4 PUSH2 0x2E48 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH2 0x2AC0 DUP2 PUSH2 0x2E38 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2B47 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2A68 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2B64 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2A3C JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2BD8 DUP2 PUSH2 0x2E48 JUMP JUMPDEST DUP1 PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x2C1A JUMPI PUSH2 0x2C1A PUSH2 0x2E0C JUMP JUMPDEST DUP1 PUSH1 0x40 DUP5 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST DUP2 MLOAD PUSH2 0x120 DUP3 ADD SWAP1 PUSH2 0x2C55 DUP2 PUSH2 0x2E48 JUMP JUMPDEST DUP1 DUP4 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH2 0x160 DUP4 ADD SWAP2 PUSH2 0x2CD5 SWAP1 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2CF0 PUSH1 0x40 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2D76 JUMPI PUSH2 0x2D76 PUSH2 0x2E22 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2D9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2DBC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2DA4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2DCB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2DE5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2E06 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x23F0 JUMPI PUSH2 0x23F0 PUSH2 0x2E0C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x23F0 JUMPI PUSH2 0x23F0 PUSH2 0x2E0C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP12 0xAA DUP14 CALLDATASIZE PUSH5 0xA94BFB7869 PUSH7 0x4CE5BC59B2293E 0xC3 PC PUSH3 0xBA4906 0xC7 0x4E DUP14 0x5F PUSH22 0xCDD5F464736F6C634300080200330000000000000000 ","sourceMap":"1407:11001:84:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;1407:11001:84;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;1407:11001:84;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:27789:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:78:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"140:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"115:24:103"},"nodeType":"YulFunctionCall","src":"115:31:103"},"nodeType":"YulExpressionStatement","src":"115:31:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:138:103"},{"body":{"nodeType":"YulBlock","src":"220:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"269:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"278:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"285:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"271:6:103"},"nodeType":"YulFunctionCall","src":"271:20:103"},"nodeType":"YulExpressionStatement","src":"271:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"248:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"256:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"244:3:103"},"nodeType":"YulFunctionCall","src":"244:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"263:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"240:3:103"},"nodeType":"YulFunctionCall","src":"240:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"233:6:103"},"nodeType":"YulFunctionCall","src":"233:35:103"},"nodeType":"YulIf","src":"230:2:103"},{"nodeType":"YulVariableDeclaration","src":"302:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"318:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"312:5:103"},"nodeType":"YulFunctionCall","src":"312:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"306:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"364:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"366:16:103"},"nodeType":"YulFunctionCall","src":"366:18:103"},"nodeType":"YulExpressionStatement","src":"366:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"340:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"344:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"337:2:103"},"nodeType":"YulFunctionCall","src":"337:26:103"},"nodeType":"YulIf","src":"334:2:103"},{"nodeType":"YulVariableDeclaration","src":"395:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"438:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"442:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"434:3:103"},"nodeType":"YulFunctionCall","src":"434:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"453:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"449:3:103"},"nodeType":"YulFunctionCall","src":"449:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"430:3:103"},"nodeType":"YulFunctionCall","src":"430:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"459:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"426:3:103"},"nodeType":"YulFunctionCall","src":"426:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"410:15:103"},"nodeType":"YulFunctionCall","src":"410:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"399:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"481:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"490:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"474:6:103"},"nodeType":"YulFunctionCall","src":"474:19:103"},"nodeType":"YulExpressionStatement","src":"474:19:103"},{"body":{"nodeType":"YulBlock","src":"541:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"550:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"557:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"543:6:103"},"nodeType":"YulFunctionCall","src":"543:20:103"},"nodeType":"YulExpressionStatement","src":"543:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"516:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"524:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"512:3:103"},"nodeType":"YulFunctionCall","src":"512:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"529:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"508:3:103"},"nodeType":"YulFunctionCall","src":"508:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"536:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"505:2:103"},"nodeType":"YulFunctionCall","src":"505:35:103"},"nodeType":"YulIf","src":"502:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"600:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"608:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"596:3:103"},"nodeType":"YulFunctionCall","src":"596:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"619:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"628:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"615:3:103"},"nodeType":"YulFunctionCall","src":"615:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"635:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"574:21:103"},"nodeType":"YulFunctionCall","src":"574:64:103"},"nodeType":"YulExpressionStatement","src":"574:64:103"},{"nodeType":"YulAssignment","src":"647:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"656:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"647:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"194:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"202:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"210:5:103","type":""}],"src":"157:512:103"},{"body":{"nodeType":"YulBlock","src":"748:92:103","statements":[{"nodeType":"YulAssignment","src":"758:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"773:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"767:5:103"},"nodeType":"YulFunctionCall","src":"767:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"758:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"828:5:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"789:38:103"},"nodeType":"YulFunctionCall","src":"789:45:103"},"nodeType":"YulExpressionStatement","src":"789:45:103"}]},"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"727:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"738:5:103","type":""}],"src":"674:166:103"},{"body":{"nodeType":"YulBlock","src":"916:89:103","statements":[{"nodeType":"YulAssignment","src":"926:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"941:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"935:5:103"},"nodeType":"YulFunctionCall","src":"935:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"926:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"993:5:103"}],"functionName":{"name":"validator_revert_enum_ComponentType","nodeType":"YulIdentifier","src":"957:35:103"},"nodeType":"YulFunctionCall","src":"957:42:103"},"nodeType":"YulExpressionStatement","src":"957:42:103"}]},"name":"abi_decode_enum_ComponentType_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"895:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"906:5:103","type":""}],"src":"845:160:103"},{"body":{"nodeType":"YulBlock","src":"1080:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1126:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1135:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1143:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1128:6:103"},"nodeType":"YulFunctionCall","src":"1128:22:103"},"nodeType":"YulExpressionStatement","src":"1128:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1101:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1110:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1097:3:103"},"nodeType":"YulFunctionCall","src":"1097:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1122:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1093:3:103"},"nodeType":"YulFunctionCall","src":"1093:32:103"},"nodeType":"YulIf","src":"1090:2:103"},{"nodeType":"YulVariableDeclaration","src":"1161:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1187:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1174:12:103"},"nodeType":"YulFunctionCall","src":"1174:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1165:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1231:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1206:24:103"},"nodeType":"YulFunctionCall","src":"1206:31:103"},"nodeType":"YulExpressionStatement","src":"1206:31:103"},{"nodeType":"YulAssignment","src":"1246:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1256:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1246:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1046:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1057:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1069:6:103","type":""}],"src":"1010:257:103"},{"body":{"nodeType":"YulBlock","src":"1353:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1399:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1408:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1416:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1401:6:103"},"nodeType":"YulFunctionCall","src":"1401:22:103"},"nodeType":"YulExpressionStatement","src":"1401:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1374:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1383:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1370:3:103"},"nodeType":"YulFunctionCall","src":"1370:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1395:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1366:3:103"},"nodeType":"YulFunctionCall","src":"1366:32:103"},"nodeType":"YulIf","src":"1363:2:103"},{"nodeType":"YulVariableDeclaration","src":"1434:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1453:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1447:5:103"},"nodeType":"YulFunctionCall","src":"1447:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1438:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1497:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1472:24:103"},"nodeType":"YulFunctionCall","src":"1472:31:103"},"nodeType":"YulExpressionStatement","src":"1472:31:103"},{"nodeType":"YulAssignment","src":"1512:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1522:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1512:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1319:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1330:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1342:6:103","type":""}],"src":"1272:261:103"},{"body":{"nodeType":"YulBlock","src":"1616:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"1662:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1671:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1679:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1664:6:103"},"nodeType":"YulFunctionCall","src":"1664:22:103"},"nodeType":"YulExpressionStatement","src":"1664:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1637:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1646:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1633:3:103"},"nodeType":"YulFunctionCall","src":"1633:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1658:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1629:3:103"},"nodeType":"YulFunctionCall","src":"1629:32:103"},"nodeType":"YulIf","src":"1626:2:103"},{"nodeType":"YulVariableDeclaration","src":"1697:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1716:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1710:5:103"},"nodeType":"YulFunctionCall","src":"1710:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1701:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1779:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1788:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1796:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1781:6:103"},"nodeType":"YulFunctionCall","src":"1781:22:103"},"nodeType":"YulExpressionStatement","src":"1781:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1748:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1769:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1762:6:103"},"nodeType":"YulFunctionCall","src":"1762:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1755:6:103"},"nodeType":"YulFunctionCall","src":"1755:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1745:2:103"},"nodeType":"YulFunctionCall","src":"1745:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1738:6:103"},"nodeType":"YulFunctionCall","src":"1738:40:103"},"nodeType":"YulIf","src":"1735:2:103"},{"nodeType":"YulAssignment","src":"1814:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1824:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1814:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1582:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1593:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1605:6:103","type":""}],"src":"1538:297:103"},{"body":{"nodeType":"YulBlock","src":"1910:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1956:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1965:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1973:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1958:6:103"},"nodeType":"YulFunctionCall","src":"1958:22:103"},"nodeType":"YulExpressionStatement","src":"1958:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1931:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1940:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1927:3:103"},"nodeType":"YulFunctionCall","src":"1927:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1952:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1923:3:103"},"nodeType":"YulFunctionCall","src":"1923:32:103"},"nodeType":"YulIf","src":"1920:2:103"},{"nodeType":"YulAssignment","src":"1991:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2014:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2001:12:103"},"nodeType":"YulFunctionCall","src":"2001:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1991:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1876:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1887:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1899:6:103","type":""}],"src":"1840:190:103"},{"body":{"nodeType":"YulBlock","src":"2116:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"2162:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2171:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2179:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2164:6:103"},"nodeType":"YulFunctionCall","src":"2164:22:103"},"nodeType":"YulExpressionStatement","src":"2164:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2137:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2146:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2133:3:103"},"nodeType":"YulFunctionCall","src":"2133:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2158:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2129:3:103"},"nodeType":"YulFunctionCall","src":"2129:32:103"},"nodeType":"YulIf","src":"2126:2:103"},{"nodeType":"YulAssignment","src":"2197:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2213:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2207:5:103"},"nodeType":"YulFunctionCall","src":"2207:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2197:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2082:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2093:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2105:6:103","type":""}],"src":"2035:194:103"},{"body":{"nodeType":"YulBlock","src":"2321:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"2367:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2376:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2384:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2369:6:103"},"nodeType":"YulFunctionCall","src":"2369:22:103"},"nodeType":"YulExpressionStatement","src":"2369:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2342:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2351:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2338:3:103"},"nodeType":"YulFunctionCall","src":"2338:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2363:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2334:3:103"},"nodeType":"YulFunctionCall","src":"2334:32:103"},"nodeType":"YulIf","src":"2331:2:103"},{"nodeType":"YulAssignment","src":"2402:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2425:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2412:12:103"},"nodeType":"YulFunctionCall","src":"2412:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2402:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2444:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2474:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2485:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2470:3:103"},"nodeType":"YulFunctionCall","src":"2470:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2457:12:103"},"nodeType":"YulFunctionCall","src":"2457:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2448:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2523:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2498:24:103"},"nodeType":"YulFunctionCall","src":"2498:31:103"},"nodeType":"YulExpressionStatement","src":"2498:31:103"},{"nodeType":"YulAssignment","src":"2538:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2548:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2538:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2279:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2290:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2302:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2310:6:103","type":""}],"src":"2234:325:103"},{"body":{"nodeType":"YulBlock","src":"2651:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2697:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2706:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2714:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2699:6:103"},"nodeType":"YulFunctionCall","src":"2699:22:103"},"nodeType":"YulExpressionStatement","src":"2699:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2672:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2681:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2668:3:103"},"nodeType":"YulFunctionCall","src":"2668:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2693:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2664:3:103"},"nodeType":"YulFunctionCall","src":"2664:32:103"},"nodeType":"YulIf","src":"2661:2:103"},{"nodeType":"YulAssignment","src":"2732:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2755:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2742:12:103"},"nodeType":"YulFunctionCall","src":"2742:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2732:6:103"}]},{"nodeType":"YulAssignment","src":"2774:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2801:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2812:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2797:3:103"},"nodeType":"YulFunctionCall","src":"2797:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2784:12:103"},"nodeType":"YulFunctionCall","src":"2784:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2774:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2609:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2620:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2632:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2640:6:103","type":""}],"src":"2564:258:103"},{"body":{"nodeType":"YulBlock","src":"2929:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2975:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2984:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2992:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2977:6:103"},"nodeType":"YulFunctionCall","src":"2977:22:103"},"nodeType":"YulExpressionStatement","src":"2977:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2950:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2959:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2946:3:103"},"nodeType":"YulFunctionCall","src":"2946:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2971:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2942:3:103"},"nodeType":"YulFunctionCall","src":"2942:32:103"},"nodeType":"YulIf","src":"2939:2:103"},{"nodeType":"YulVariableDeclaration","src":"3010:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3029:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3023:5:103"},"nodeType":"YulFunctionCall","src":"3023:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3014:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3073:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3048:24:103"},"nodeType":"YulFunctionCall","src":"3048:31:103"},"nodeType":"YulExpressionStatement","src":"3048:31:103"},{"nodeType":"YulAssignment","src":"3088:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3098:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3088:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_BundleToken_$28751_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2895:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2906:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2918:6:103","type":""}],"src":"2827:282:103"},{"body":{"nodeType":"YulBlock","src":"3214:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"3260:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3269:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3277:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3262:6:103"},"nodeType":"YulFunctionCall","src":"3262:22:103"},"nodeType":"YulExpressionStatement","src":"3262:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3235:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3244:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3231:3:103"},"nodeType":"YulFunctionCall","src":"3231:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3256:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3227:3:103"},"nodeType":"YulFunctionCall","src":"3227:32:103"},"nodeType":"YulIf","src":"3224:2:103"},{"nodeType":"YulVariableDeclaration","src":"3295:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3314:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3308:5:103"},"nodeType":"YulFunctionCall","src":"3308:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3299:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3358:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3333:24:103"},"nodeType":"YulFunctionCall","src":"3333:31:103"},"nodeType":"YulExpressionStatement","src":"3333:31:103"},{"nodeType":"YulAssignment","src":"3373:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3383:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3373:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3180:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3191:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3203:6:103","type":""}],"src":"3114:280:103"},{"body":{"nodeType":"YulBlock","src":"3495:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"3541:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3550:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3558:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3543:6:103"},"nodeType":"YulFunctionCall","src":"3543:22:103"},"nodeType":"YulExpressionStatement","src":"3543:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3516:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3525:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3512:3:103"},"nodeType":"YulFunctionCall","src":"3512:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3537:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3508:3:103"},"nodeType":"YulFunctionCall","src":"3508:32:103"},"nodeType":"YulIf","src":"3505:2:103"},{"nodeType":"YulVariableDeclaration","src":"3576:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3595:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3589:5:103"},"nodeType":"YulFunctionCall","src":"3589:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3580:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3639:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3614:24:103"},"nodeType":"YulFunctionCall","src":"3614:31:103"},"nodeType":"YulExpressionStatement","src":"3614:31:103"},{"nodeType":"YulAssignment","src":"3654:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3664:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3654:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$8831_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3461:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3472:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3484:6:103","type":""}],"src":"3399:276:103"},{"body":{"nodeType":"YulBlock","src":"3780:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"3826:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3835:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3843:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3828:6:103"},"nodeType":"YulFunctionCall","src":"3828:22:103"},"nodeType":"YulExpressionStatement","src":"3828:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3801:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3810:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3797:3:103"},"nodeType":"YulFunctionCall","src":"3797:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3822:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3793:3:103"},"nodeType":"YulFunctionCall","src":"3793:32:103"},"nodeType":"YulIf","src":"3790:2:103"},{"nodeType":"YulVariableDeclaration","src":"3861:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3880:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3874:5:103"},"nodeType":"YulFunctionCall","src":"3874:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3865:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3923:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3932:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3940:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3925:6:103"},"nodeType":"YulFunctionCall","src":"3925:22:103"},"nodeType":"YulExpressionStatement","src":"3925:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3912:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3919:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3909:2:103"},"nodeType":"YulFunctionCall","src":"3909:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3902:6:103"},"nodeType":"YulFunctionCall","src":"3902:20:103"},"nodeType":"YulIf","src":"3899:2:103"},{"nodeType":"YulAssignment","src":"3958:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3968:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3958:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3746:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3757:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3769:6:103","type":""}],"src":"3680:299:103"},{"body":{"nodeType":"YulBlock","src":"4083:191:103","statements":[{"body":{"nodeType":"YulBlock","src":"4129:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4138:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4146:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4131:6:103"},"nodeType":"YulFunctionCall","src":"4131:22:103"},"nodeType":"YulExpressionStatement","src":"4131:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4104:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4113:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4100:3:103"},"nodeType":"YulFunctionCall","src":"4100:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4125:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4096:3:103"},"nodeType":"YulFunctionCall","src":"4096:32:103"},"nodeType":"YulIf","src":"4093:2:103"},{"nodeType":"YulVariableDeclaration","src":"4164:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4183:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4177:5:103"},"nodeType":"YulFunctionCall","src":"4177:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4168:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4238:5:103"}],"functionName":{"name":"validator_revert_enum_ComponentType","nodeType":"YulIdentifier","src":"4202:35:103"},"nodeType":"YulFunctionCall","src":"4202:42:103"},"nodeType":"YulExpressionStatement","src":"4202:42:103"},{"nodeType":"YulAssignment","src":"4253:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4263:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4253:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4049:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4060:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4072:6:103","type":""}],"src":"3984:290:103"},{"body":{"nodeType":"YulBlock","src":"4389:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"4435:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4444:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4452:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4437:6:103"},"nodeType":"YulFunctionCall","src":"4437:22:103"},"nodeType":"YulExpressionStatement","src":"4437:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4410:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4419:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4406:3:103"},"nodeType":"YulFunctionCall","src":"4406:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4431:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4402:3:103"},"nodeType":"YulFunctionCall","src":"4402:32:103"},"nodeType":"YulIf","src":"4399:2:103"},{"nodeType":"YulVariableDeclaration","src":"4470:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4490:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4484:5:103"},"nodeType":"YulFunctionCall","src":"4484:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4474:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4509:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4519:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4513:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4564:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4573:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4581:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4566:6:103"},"nodeType":"YulFunctionCall","src":"4566:22:103"},"nodeType":"YulExpressionStatement","src":"4566:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4552:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4560:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4549:2:103"},"nodeType":"YulFunctionCall","src":"4549:14:103"},"nodeType":"YulIf","src":"4546:2:103"},{"nodeType":"YulVariableDeclaration","src":"4599:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4613:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4624:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4609:3:103"},"nodeType":"YulFunctionCall","src":"4609:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4603:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4671:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4680:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4688:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4673:6:103"},"nodeType":"YulFunctionCall","src":"4673:22:103"},"nodeType":"YulExpressionStatement","src":"4673:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4651:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4660:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4647:3:103"},"nodeType":"YulFunctionCall","src":"4647:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4643:3:103"},"nodeType":"YulFunctionCall","src":"4643:27:103"},"nodeType":"YulIf","src":"4640:2:103"},{"nodeType":"YulVariableDeclaration","src":"4706:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4735:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4719:15:103"},"nodeType":"YulFunctionCall","src":"4719:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4710:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4749:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4770:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4764:5:103"},"nodeType":"YulFunctionCall","src":"4764:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4753:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4821:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"4782:38:103"},"nodeType":"YulFunctionCall","src":"4782:47:103"},"nodeType":"YulExpressionStatement","src":"4782:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4845:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"4852:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4838:6:103"},"nodeType":"YulFunctionCall","src":"4838:22:103"},"nodeType":"YulExpressionStatement","src":"4838:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4880:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4887:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4876:3:103"},"nodeType":"YulFunctionCall","src":"4876:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4902:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4906:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4898:3:103"},"nodeType":"YulFunctionCall","src":"4898:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4892:5:103"},"nodeType":"YulFunctionCall","src":"4892:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4869:6:103"},"nodeType":"YulFunctionCall","src":"4869:42:103"},"nodeType":"YulExpressionStatement","src":"4869:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4931:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4938:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4927:3:103"},"nodeType":"YulFunctionCall","src":"4927:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4953:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4957:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4949:3:103"},"nodeType":"YulFunctionCall","src":"4949:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4943:5:103"},"nodeType":"YulFunctionCall","src":"4943:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4920:6:103"},"nodeType":"YulFunctionCall","src":"4920:42:103"},"nodeType":"YulExpressionStatement","src":"4920:42:103"},{"nodeType":"YulVariableDeclaration","src":"4971:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4997:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5001:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4993:3:103"},"nodeType":"YulFunctionCall","src":"4993:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4987:5:103"},"nodeType":"YulFunctionCall","src":"4987:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4975:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5034:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5043:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5051:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5036:6:103"},"nodeType":"YulFunctionCall","src":"5036:22:103"},"nodeType":"YulExpressionStatement","src":"5036:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5020:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5030:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5017:2:103"},"nodeType":"YulFunctionCall","src":"5017:16:103"},"nodeType":"YulIf","src":"5014:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5080:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5087:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5076:3:103"},"nodeType":"YulFunctionCall","src":"5076:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5124:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5128:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5120:3:103"},"nodeType":"YulFunctionCall","src":"5120:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5139:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"5092:27:103"},"nodeType":"YulFunctionCall","src":"5092:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5069:6:103"},"nodeType":"YulFunctionCall","src":"5069:79:103"},"nodeType":"YulExpressionStatement","src":"5069:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5168:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5175:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5164:3:103"},"nodeType":"YulFunctionCall","src":"5164:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5191:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5195:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5187:3:103"},"nodeType":"YulFunctionCall","src":"5187:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5181:5:103"},"nodeType":"YulFunctionCall","src":"5181:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5157:6:103"},"nodeType":"YulFunctionCall","src":"5157:44:103"},"nodeType":"YulExpressionStatement","src":"5157:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5221:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5228:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5217:3:103"},"nodeType":"YulFunctionCall","src":"5217:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5244:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5248:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5240:3:103"},"nodeType":"YulFunctionCall","src":"5240:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5234:5:103"},"nodeType":"YulFunctionCall","src":"5234:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5210:6:103"},"nodeType":"YulFunctionCall","src":"5210:44:103"},"nodeType":"YulExpressionStatement","src":"5210:44:103"},{"nodeType":"YulAssignment","src":"5263:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5273:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5263:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4355:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4366:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4378:6:103","type":""}],"src":"4279:1005:103"},{"body":{"nodeType":"YulBlock","src":"5394:1119:103","statements":[{"body":{"nodeType":"YulBlock","src":"5440:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5449:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5457:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5442:6:103"},"nodeType":"YulFunctionCall","src":"5442:22:103"},"nodeType":"YulExpressionStatement","src":"5442:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5415:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5424:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5411:3:103"},"nodeType":"YulFunctionCall","src":"5411:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5436:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5407:3:103"},"nodeType":"YulFunctionCall","src":"5407:32:103"},"nodeType":"YulIf","src":"5404:2:103"},{"nodeType":"YulVariableDeclaration","src":"5475:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5495:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5489:5:103"},"nodeType":"YulFunctionCall","src":"5489:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5479:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5514:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5524:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5518:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5569:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5578:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5586:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5571:6:103"},"nodeType":"YulFunctionCall","src":"5571:22:103"},"nodeType":"YulExpressionStatement","src":"5571:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5557:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5565:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5554:2:103"},"nodeType":"YulFunctionCall","src":"5554:14:103"},"nodeType":"YulIf","src":"5551:2:103"},{"nodeType":"YulVariableDeclaration","src":"5604:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5618:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5629:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5614:3:103"},"nodeType":"YulFunctionCall","src":"5614:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5608:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5645:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5655:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5649:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5699:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5708:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5716:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5701:6:103"},"nodeType":"YulFunctionCall","src":"5701:22:103"},"nodeType":"YulExpressionStatement","src":"5701:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5681:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5690:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5677:3:103"},"nodeType":"YulFunctionCall","src":"5677:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"5695:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5673:3:103"},"nodeType":"YulFunctionCall","src":"5673:25:103"},"nodeType":"YulIf","src":"5670:2:103"},{"nodeType":"YulVariableDeclaration","src":"5734:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5763:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5747:15:103"},"nodeType":"YulFunctionCall","src":"5747:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5738:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5782:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5795:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5789:5:103"},"nodeType":"YulFunctionCall","src":"5789:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5775:6:103"},"nodeType":"YulFunctionCall","src":"5775:24:103"},"nodeType":"YulExpressionStatement","src":"5775:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5819:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5826:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5815:3:103"},"nodeType":"YulFunctionCall","src":"5815:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5841:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5845:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5837:3:103"},"nodeType":"YulFunctionCall","src":"5837:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5831:5:103"},"nodeType":"YulFunctionCall","src":"5831:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5808:6:103"},"nodeType":"YulFunctionCall","src":"5808:42:103"},"nodeType":"YulExpressionStatement","src":"5808:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5870:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5877:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5866:3:103"},"nodeType":"YulFunctionCall","src":"5866:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5892:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5896:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5888:3:103"},"nodeType":"YulFunctionCall","src":"5888:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5882:5:103"},"nodeType":"YulFunctionCall","src":"5882:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5859:6:103"},"nodeType":"YulFunctionCall","src":"5859:42:103"},"nodeType":"YulExpressionStatement","src":"5859:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5921:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5928:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5917:3:103"},"nodeType":"YulFunctionCall","src":"5917:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5981:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5985:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5977:3:103"},"nodeType":"YulFunctionCall","src":"5977:11:103"}],"functionName":{"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulIdentifier","src":"5933:43:103"},"nodeType":"YulFunctionCall","src":"5933:56:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5910:6:103"},"nodeType":"YulFunctionCall","src":"5910:80:103"},"nodeType":"YulExpressionStatement","src":"5910:80:103"},{"nodeType":"YulVariableDeclaration","src":"5999:35:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6025:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6029:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6021:3:103"},"nodeType":"YulFunctionCall","src":"6021:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6015:5:103"},"nodeType":"YulFunctionCall","src":"6015:19:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6003:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6063:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6072:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6080:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6065:6:103"},"nodeType":"YulFunctionCall","src":"6065:22:103"},"nodeType":"YulExpressionStatement","src":"6065:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6049:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6059:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6046:2:103"},"nodeType":"YulFunctionCall","src":"6046:16:103"},"nodeType":"YulIf","src":"6043:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6109:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6116:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6105:3:103"},"nodeType":"YulFunctionCall","src":"6105:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6154:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6158:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6150:3:103"},"nodeType":"YulFunctionCall","src":"6150:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6169:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"6122:27:103"},"nodeType":"YulFunctionCall","src":"6122:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6098:6:103"},"nodeType":"YulFunctionCall","src":"6098:80:103"},"nodeType":"YulExpressionStatement","src":"6098:80:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6198:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6205:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6194:3:103"},"nodeType":"YulFunctionCall","src":"6194:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6221:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6225:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6217:3:103"},"nodeType":"YulFunctionCall","src":"6217:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6211:5:103"},"nodeType":"YulFunctionCall","src":"6211:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6187:6:103"},"nodeType":"YulFunctionCall","src":"6187:44:103"},"nodeType":"YulExpressionStatement","src":"6187:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6251:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6258:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6247:3:103"},"nodeType":"YulFunctionCall","src":"6247:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6274:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6278:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6270:3:103"},"nodeType":"YulFunctionCall","src":"6270:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6264:5:103"},"nodeType":"YulFunctionCall","src":"6264:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6240:6:103"},"nodeType":"YulFunctionCall","src":"6240:44:103"},"nodeType":"YulExpressionStatement","src":"6240:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6304:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6311:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6300:3:103"},"nodeType":"YulFunctionCall","src":"6300:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6327:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6331:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6323:3:103"},"nodeType":"YulFunctionCall","src":"6323:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6317:5:103"},"nodeType":"YulFunctionCall","src":"6317:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6293:6:103"},"nodeType":"YulFunctionCall","src":"6293:44:103"},"nodeType":"YulExpressionStatement","src":"6293:44:103"},{"nodeType":"YulVariableDeclaration","src":"6346:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6356:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"6350:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6379:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"6386:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6375:3:103"},"nodeType":"YulFunctionCall","src":"6375:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6401:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"6405:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6397:3:103"},"nodeType":"YulFunctionCall","src":"6397:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6391:5:103"},"nodeType":"YulFunctionCall","src":"6391:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6368:6:103"},"nodeType":"YulFunctionCall","src":"6368:42:103"},"nodeType":"YulExpressionStatement","src":"6368:42:103"},{"nodeType":"YulVariableDeclaration","src":"6419:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6429:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"6423:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6452:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"6459:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6448:3:103"},"nodeType":"YulFunctionCall","src":"6448:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6474:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"6478:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6470:3:103"},"nodeType":"YulFunctionCall","src":"6470:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6464:5:103"},"nodeType":"YulFunctionCall","src":"6464:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6441:6:103"},"nodeType":"YulFunctionCall","src":"6441:42:103"},"nodeType":"YulExpressionStatement","src":"6441:42:103"},{"nodeType":"YulAssignment","src":"6492:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6502:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6492:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5360:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5371:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5383:6:103","type":""}],"src":"5289:1224:103"},{"body":{"nodeType":"YulBlock","src":"6622:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"6668:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6677:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6685:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6670:6:103"},"nodeType":"YulFunctionCall","src":"6670:22:103"},"nodeType":"YulExpressionStatement","src":"6670:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6643:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6652:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6639:3:103"},"nodeType":"YulFunctionCall","src":"6639:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6664:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6635:3:103"},"nodeType":"YulFunctionCall","src":"6635:32:103"},"nodeType":"YulIf","src":"6632:2:103"},{"nodeType":"YulVariableDeclaration","src":"6703:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6723:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6717:5:103"},"nodeType":"YulFunctionCall","src":"6717:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6707:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6742:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6752:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6746:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6797:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6806:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6814:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6799:6:103"},"nodeType":"YulFunctionCall","src":"6799:22:103"},"nodeType":"YulExpressionStatement","src":"6799:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6785:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6793:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6782:2:103"},"nodeType":"YulFunctionCall","src":"6782:14:103"},"nodeType":"YulIf","src":"6779:2:103"},{"nodeType":"YulVariableDeclaration","src":"6832:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6846:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6857:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6842:3:103"},"nodeType":"YulFunctionCall","src":"6842:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6836:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6904:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6913:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6921:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6906:6:103"},"nodeType":"YulFunctionCall","src":"6906:22:103"},"nodeType":"YulExpressionStatement","src":"6906:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6884:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6893:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6880:3:103"},"nodeType":"YulFunctionCall","src":"6880:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"6898:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6876:3:103"},"nodeType":"YulFunctionCall","src":"6876:27:103"},"nodeType":"YulIf","src":"6873:2:103"},{"nodeType":"YulVariableDeclaration","src":"6939:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6968:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6952:15:103"},"nodeType":"YulFunctionCall","src":"6952:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6943:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6982:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7003:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6997:5:103"},"nodeType":"YulFunctionCall","src":"6997:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6986:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7054:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"7015:38:103"},"nodeType":"YulFunctionCall","src":"7015:47:103"},"nodeType":"YulExpressionStatement","src":"7015:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7078:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"7085:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7071:6:103"},"nodeType":"YulFunctionCall","src":"7071:22:103"},"nodeType":"YulExpressionStatement","src":"7071:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7113:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7120:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7109:3:103"},"nodeType":"YulFunctionCall","src":"7109:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7135:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7139:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7131:3:103"},"nodeType":"YulFunctionCall","src":"7131:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7125:5:103"},"nodeType":"YulFunctionCall","src":"7125:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7102:6:103"},"nodeType":"YulFunctionCall","src":"7102:42:103"},"nodeType":"YulExpressionStatement","src":"7102:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7164:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7171:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7160:3:103"},"nodeType":"YulFunctionCall","src":"7160:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7186:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7190:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7182:3:103"},"nodeType":"YulFunctionCall","src":"7182:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7176:5:103"},"nodeType":"YulFunctionCall","src":"7176:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7153:6:103"},"nodeType":"YulFunctionCall","src":"7153:42:103"},"nodeType":"YulExpressionStatement","src":"7153:42:103"},{"nodeType":"YulVariableDeclaration","src":"7204:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7230:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7234:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7226:3:103"},"nodeType":"YulFunctionCall","src":"7226:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7220:5:103"},"nodeType":"YulFunctionCall","src":"7220:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7208:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7267:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7276:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7284:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7269:6:103"},"nodeType":"YulFunctionCall","src":"7269:22:103"},"nodeType":"YulExpressionStatement","src":"7269:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7253:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7263:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7250:2:103"},"nodeType":"YulFunctionCall","src":"7250:16:103"},"nodeType":"YulIf","src":"7247:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7313:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7320:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7309:3:103"},"nodeType":"YulFunctionCall","src":"7309:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7357:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7361:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7353:3:103"},"nodeType":"YulFunctionCall","src":"7353:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7372:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"7325:27:103"},"nodeType":"YulFunctionCall","src":"7325:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7302:6:103"},"nodeType":"YulFunctionCall","src":"7302:79:103"},"nodeType":"YulExpressionStatement","src":"7302:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7401:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7408:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7397:3:103"},"nodeType":"YulFunctionCall","src":"7397:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7424:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7428:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7420:3:103"},"nodeType":"YulFunctionCall","src":"7420:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7414:5:103"},"nodeType":"YulFunctionCall","src":"7414:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7390:6:103"},"nodeType":"YulFunctionCall","src":"7390:44:103"},"nodeType":"YulExpressionStatement","src":"7390:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7454:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7461:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7450:3:103"},"nodeType":"YulFunctionCall","src":"7450:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7477:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7481:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7473:3:103"},"nodeType":"YulFunctionCall","src":"7473:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7467:5:103"},"nodeType":"YulFunctionCall","src":"7467:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7443:6:103"},"nodeType":"YulFunctionCall","src":"7443:44:103"},"nodeType":"YulExpressionStatement","src":"7443:44:103"},{"nodeType":"YulAssignment","src":"7496:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7506:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7496:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6588:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6599:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6611:6:103","type":""}],"src":"6518:999:103"},{"body":{"nodeType":"YulBlock","src":"7629:916:103","statements":[{"body":{"nodeType":"YulBlock","src":"7675:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7684:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7692:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7677:6:103"},"nodeType":"YulFunctionCall","src":"7677:22:103"},"nodeType":"YulExpressionStatement","src":"7677:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7650:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7659:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7646:3:103"},"nodeType":"YulFunctionCall","src":"7646:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7671:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7642:3:103"},"nodeType":"YulFunctionCall","src":"7642:32:103"},"nodeType":"YulIf","src":"7639:2:103"},{"nodeType":"YulVariableDeclaration","src":"7710:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7730:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7724:5:103"},"nodeType":"YulFunctionCall","src":"7724:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7714:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7749:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7759:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7753:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7804:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7813:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7821:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7806:6:103"},"nodeType":"YulFunctionCall","src":"7806:22:103"},"nodeType":"YulExpressionStatement","src":"7806:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7792:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7800:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7789:2:103"},"nodeType":"YulFunctionCall","src":"7789:14:103"},"nodeType":"YulIf","src":"7786:2:103"},{"nodeType":"YulVariableDeclaration","src":"7839:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7853:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"7864:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7849:3:103"},"nodeType":"YulFunctionCall","src":"7849:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7843:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7911:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7920:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7928:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7913:6:103"},"nodeType":"YulFunctionCall","src":"7913:22:103"},"nodeType":"YulExpressionStatement","src":"7913:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7891:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"7900:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7887:3:103"},"nodeType":"YulFunctionCall","src":"7887:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"7905:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7883:3:103"},"nodeType":"YulFunctionCall","src":"7883:27:103"},"nodeType":"YulIf","src":"7880:2:103"},{"nodeType":"YulVariableDeclaration","src":"7946:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7975:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"7959:15:103"},"nodeType":"YulFunctionCall","src":"7959:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7950:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7989:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8010:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8004:5:103"},"nodeType":"YulFunctionCall","src":"8004:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7993:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8047:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"8022:24:103"},"nodeType":"YulFunctionCall","src":"8022:33:103"},"nodeType":"YulExpressionStatement","src":"8022:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8071:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"8078:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8064:6:103"},"nodeType":"YulFunctionCall","src":"8064:22:103"},"nodeType":"YulExpressionStatement","src":"8064:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8106:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8113:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8102:3:103"},"nodeType":"YulFunctionCall","src":"8102:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8128:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8132:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8124:3:103"},"nodeType":"YulFunctionCall","src":"8124:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8118:5:103"},"nodeType":"YulFunctionCall","src":"8118:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8095:6:103"},"nodeType":"YulFunctionCall","src":"8095:42:103"},"nodeType":"YulExpressionStatement","src":"8095:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8157:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8164:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8153:3:103"},"nodeType":"YulFunctionCall","src":"8153:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8214:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8218:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8210:3:103"},"nodeType":"YulFunctionCall","src":"8210:11:103"}],"functionName":{"name":"abi_decode_enum_ComponentType_fromMemory","nodeType":"YulIdentifier","src":"8169:40:103"},"nodeType":"YulFunctionCall","src":"8169:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8146:6:103"},"nodeType":"YulFunctionCall","src":"8146:77:103"},"nodeType":"YulExpressionStatement","src":"8146:77:103"},{"nodeType":"YulVariableDeclaration","src":"8232:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8258:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8262:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8254:3:103"},"nodeType":"YulFunctionCall","src":"8254:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8248:5:103"},"nodeType":"YulFunctionCall","src":"8248:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"8236:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8295:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8304:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8312:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8297:6:103"},"nodeType":"YulFunctionCall","src":"8297:22:103"},"nodeType":"YulExpressionStatement","src":"8297:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"8281:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8291:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8278:2:103"},"nodeType":"YulFunctionCall","src":"8278:16:103"},"nodeType":"YulIf","src":"8275:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8341:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8348:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8337:3:103"},"nodeType":"YulFunctionCall","src":"8337:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8385:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"8389:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8381:3:103"},"nodeType":"YulFunctionCall","src":"8381:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"8400:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"8353:27:103"},"nodeType":"YulFunctionCall","src":"8353:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8330:6:103"},"nodeType":"YulFunctionCall","src":"8330:79:103"},"nodeType":"YulExpressionStatement","src":"8330:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8429:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8436:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8425:3:103"},"nodeType":"YulFunctionCall","src":"8425:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8452:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8456:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8448:3:103"},"nodeType":"YulFunctionCall","src":"8448:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8442:5:103"},"nodeType":"YulFunctionCall","src":"8442:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8418:6:103"},"nodeType":"YulFunctionCall","src":"8418:44:103"},"nodeType":"YulExpressionStatement","src":"8418:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8482:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8489:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8478:3:103"},"nodeType":"YulFunctionCall","src":"8478:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8505:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"8509:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8501:3:103"},"nodeType":"YulFunctionCall","src":"8501:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8495:5:103"},"nodeType":"YulFunctionCall","src":"8495:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8471:6:103"},"nodeType":"YulFunctionCall","src":"8471:44:103"},"nodeType":"YulExpressionStatement","src":"8471:44:103"},{"nodeType":"YulAssignment","src":"8524:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"8534:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8524:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7595:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7606:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7618:6:103","type":""}],"src":"7522:1023:103"},{"body":{"nodeType":"YulBlock","src":"8655:900:103","statements":[{"body":{"nodeType":"YulBlock","src":"8701:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8710:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8718:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8703:6:103"},"nodeType":"YulFunctionCall","src":"8703:22:103"},"nodeType":"YulExpressionStatement","src":"8703:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8676:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8685:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8672:3:103"},"nodeType":"YulFunctionCall","src":"8672:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8697:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8668:3:103"},"nodeType":"YulFunctionCall","src":"8668:32:103"},"nodeType":"YulIf","src":"8665:2:103"},{"nodeType":"YulVariableDeclaration","src":"8736:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8756:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8750:5:103"},"nodeType":"YulFunctionCall","src":"8750:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"8740:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"8775:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8785:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8779:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8830:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8839:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8847:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8832:6:103"},"nodeType":"YulFunctionCall","src":"8832:22:103"},"nodeType":"YulExpressionStatement","src":"8832:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"8818:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8826:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"8815:2:103"},"nodeType":"YulFunctionCall","src":"8815:14:103"},"nodeType":"YulIf","src":"8812:2:103"},{"nodeType":"YulVariableDeclaration","src":"8865:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8879:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"8890:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8875:3:103"},"nodeType":"YulFunctionCall","src":"8875:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8869:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8937:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8946:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8954:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8939:6:103"},"nodeType":"YulFunctionCall","src":"8939:22:103"},"nodeType":"YulExpressionStatement","src":"8939:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8917:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"8926:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8913:3:103"},"nodeType":"YulFunctionCall","src":"8913:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"8931:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8909:3:103"},"nodeType":"YulFunctionCall","src":"8909:27:103"},"nodeType":"YulIf","src":"8906:2:103"},{"nodeType":"YulVariableDeclaration","src":"8972:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9001:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8985:15:103"},"nodeType":"YulFunctionCall","src":"8985:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8976:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9022:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9035:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9029:5:103"},"nodeType":"YulFunctionCall","src":"9029:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9015:6:103"},"nodeType":"YulFunctionCall","src":"9015:24:103"},"nodeType":"YulExpressionStatement","src":"9015:24:103"},{"nodeType":"YulVariableDeclaration","src":"9048:33:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9073:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9077:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9069:3:103"},"nodeType":"YulFunctionCall","src":"9069:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9063:5:103"},"nodeType":"YulFunctionCall","src":"9063:18:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"9052:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9116:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9125:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9133:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9118:6:103"},"nodeType":"YulFunctionCall","src":"9118:22:103"},"nodeType":"YulExpressionStatement","src":"9118:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"9103:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"9112:1:103","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9100:2:103"},"nodeType":"YulFunctionCall","src":"9100:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9093:6:103"},"nodeType":"YulFunctionCall","src":"9093:22:103"},"nodeType":"YulIf","src":"9090:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9162:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9169:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9158:3:103"},"nodeType":"YulFunctionCall","src":"9158:14:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"9174:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9151:6:103"},"nodeType":"YulFunctionCall","src":"9151:31:103"},"nodeType":"YulExpressionStatement","src":"9151:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9202:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9209:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9198:3:103"},"nodeType":"YulFunctionCall","src":"9198:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9224:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9228:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9220:3:103"},"nodeType":"YulFunctionCall","src":"9220:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9214:5:103"},"nodeType":"YulFunctionCall","src":"9214:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9191:6:103"},"nodeType":"YulFunctionCall","src":"9191:42:103"},"nodeType":"YulExpressionStatement","src":"9191:42:103"},{"nodeType":"YulVariableDeclaration","src":"9242:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9268:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9272:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9264:3:103"},"nodeType":"YulFunctionCall","src":"9264:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9258:5:103"},"nodeType":"YulFunctionCall","src":"9258:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"9246:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9305:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9314:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9322:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9307:6:103"},"nodeType":"YulFunctionCall","src":"9307:22:103"},"nodeType":"YulExpressionStatement","src":"9307:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"9291:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9301:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9288:2:103"},"nodeType":"YulFunctionCall","src":"9288:16:103"},"nodeType":"YulIf","src":"9285:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9351:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9358:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9347:3:103"},"nodeType":"YulFunctionCall","src":"9347:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9395:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"9399:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9391:3:103"},"nodeType":"YulFunctionCall","src":"9391:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9410:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"9363:27:103"},"nodeType":"YulFunctionCall","src":"9363:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9340:6:103"},"nodeType":"YulFunctionCall","src":"9340:79:103"},"nodeType":"YulExpressionStatement","src":"9340:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9439:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9446:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9435:3:103"},"nodeType":"YulFunctionCall","src":"9435:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9462:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9466:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9458:3:103"},"nodeType":"YulFunctionCall","src":"9458:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9452:5:103"},"nodeType":"YulFunctionCall","src":"9452:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9428:6:103"},"nodeType":"YulFunctionCall","src":"9428:44:103"},"nodeType":"YulExpressionStatement","src":"9428:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9492:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9499:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9488:3:103"},"nodeType":"YulFunctionCall","src":"9488:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"9515:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"9519:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9511:3:103"},"nodeType":"YulFunctionCall","src":"9511:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9505:5:103"},"nodeType":"YulFunctionCall","src":"9505:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9481:6:103"},"nodeType":"YulFunctionCall","src":"9481:44:103"},"nodeType":"YulExpressionStatement","src":"9481:44:103"},{"nodeType":"YulAssignment","src":"9534:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"9544:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9534:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8621:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8632:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8644:6:103","type":""}],"src":"8550:1005:103"},{"body":{"nodeType":"YulBlock","src":"9665:734:103","statements":[{"nodeType":"YulVariableDeclaration","src":"9675:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"9685:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9679:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9733:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9742:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9750:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9735:6:103"},"nodeType":"YulFunctionCall","src":"9735:22:103"},"nodeType":"YulExpressionStatement","src":"9735:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9708:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9717:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9704:3:103"},"nodeType":"YulFunctionCall","src":"9704:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9729:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9700:3:103"},"nodeType":"YulFunctionCall","src":"9700:32:103"},"nodeType":"YulIf","src":"9697:2:103"},{"nodeType":"YulVariableDeclaration","src":"9768:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"9797:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"9781:15:103"},"nodeType":"YulFunctionCall","src":"9781:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"9772:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9816:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9864:9:103"}],"functionName":{"name":"abi_decode_enum_ComponentType_fromMemory","nodeType":"YulIdentifier","src":"9823:40:103"},"nodeType":"YulFunctionCall","src":"9823:51:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9809:6:103"},"nodeType":"YulFunctionCall","src":"9809:66:103"},"nodeType":"YulExpressionStatement","src":"9809:66:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9895:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9902:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9891:3:103"},"nodeType":"YulFunctionCall","src":"9891:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9917:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9928:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9913:3:103"},"nodeType":"YulFunctionCall","src":"9913:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9907:5:103"},"nodeType":"YulFunctionCall","src":"9907:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9884:6:103"},"nodeType":"YulFunctionCall","src":"9884:49:103"},"nodeType":"YulExpressionStatement","src":"9884:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"9953:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"9960:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9949:3:103"},"nodeType":"YulFunctionCall","src":"9949:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9975:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9986:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9971:3:103"},"nodeType":"YulFunctionCall","src":"9971:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9965:5:103"},"nodeType":"YulFunctionCall","src":"9965:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9942:6:103"},"nodeType":"YulFunctionCall","src":"9942:49:103"},"nodeType":"YulExpressionStatement","src":"9942:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10011:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10018:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10007:3:103"},"nodeType":"YulFunctionCall","src":"10007:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10033:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10044:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10029:3:103"},"nodeType":"YulFunctionCall","src":"10029:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10023:5:103"},"nodeType":"YulFunctionCall","src":"10023:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10000:6:103"},"nodeType":"YulFunctionCall","src":"10000:49:103"},"nodeType":"YulExpressionStatement","src":"10000:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10069:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10076:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10065:3:103"},"nodeType":"YulFunctionCall","src":"10065:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10092:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10103:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10088:3:103"},"nodeType":"YulFunctionCall","src":"10088:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10082:5:103"},"nodeType":"YulFunctionCall","src":"10082:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10058:6:103"},"nodeType":"YulFunctionCall","src":"10058:51:103"},"nodeType":"YulExpressionStatement","src":"10058:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10129:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10136:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10125:3:103"},"nodeType":"YulFunctionCall","src":"10125:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10152:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10163:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10148:3:103"},"nodeType":"YulFunctionCall","src":"10148:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10142:5:103"},"nodeType":"YulFunctionCall","src":"10142:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10118:6:103"},"nodeType":"YulFunctionCall","src":"10118:51:103"},"nodeType":"YulExpressionStatement","src":"10118:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10189:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10196:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10185:3:103"},"nodeType":"YulFunctionCall","src":"10185:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10212:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10223:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10208:3:103"},"nodeType":"YulFunctionCall","src":"10208:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10202:5:103"},"nodeType":"YulFunctionCall","src":"10202:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10178:6:103"},"nodeType":"YulFunctionCall","src":"10178:51:103"},"nodeType":"YulExpressionStatement","src":"10178:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10249:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10256:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10245:3:103"},"nodeType":"YulFunctionCall","src":"10245:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10272:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10283:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10268:3:103"},"nodeType":"YulFunctionCall","src":"10268:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10262:5:103"},"nodeType":"YulFunctionCall","src":"10262:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10238:6:103"},"nodeType":"YulFunctionCall","src":"10238:51:103"},"nodeType":"YulExpressionStatement","src":"10238:51:103"},{"nodeType":"YulVariableDeclaration","src":"10298:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"10308:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"10302:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10331:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"10338:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10327:3:103"},"nodeType":"YulFunctionCall","src":"10327:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10353:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"10364:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10349:3:103"},"nodeType":"YulFunctionCall","src":"10349:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10343:5:103"},"nodeType":"YulFunctionCall","src":"10343:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10320:6:103"},"nodeType":"YulFunctionCall","src":"10320:49:103"},"nodeType":"YulExpressionStatement","src":"10320:49:103"},{"nodeType":"YulAssignment","src":"10378:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"10388:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10378:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9631:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9642:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9654:6:103","type":""}],"src":"9560:839:103"},{"body":{"nodeType":"YulBlock","src":"10507:907:103","statements":[{"nodeType":"YulVariableDeclaration","src":"10517:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"10527:3:103","type":"","value":"352"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10521:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10575:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10584:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10592:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10577:6:103"},"nodeType":"YulFunctionCall","src":"10577:22:103"},"nodeType":"YulExpressionStatement","src":"10577:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10550:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"10559:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10546:3:103"},"nodeType":"YulFunctionCall","src":"10546:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10571:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10542:3:103"},"nodeType":"YulFunctionCall","src":"10542:32:103"},"nodeType":"YulIf","src":"10539:2:103"},{"nodeType":"YulVariableDeclaration","src":"10610:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10639:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"10623:15:103"},"nodeType":"YulFunctionCall","src":"10623:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"10614:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10658:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10671:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10665:5:103"},"nodeType":"YulFunctionCall","src":"10665:16:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10651:6:103"},"nodeType":"YulFunctionCall","src":"10651:31:103"},"nodeType":"YulExpressionStatement","src":"10651:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10702:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10709:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10698:3:103"},"nodeType":"YulFunctionCall","src":"10698:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10759:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10744:3:103"},"nodeType":"YulFunctionCall","src":"10744:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"10714:29:103"},"nodeType":"YulFunctionCall","src":"10714:49:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10691:6:103"},"nodeType":"YulFunctionCall","src":"10691:73:103"},"nodeType":"YulExpressionStatement","src":"10691:73:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10784:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10791:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10780:3:103"},"nodeType":"YulFunctionCall","src":"10780:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10830:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10841:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10826:3:103"},"nodeType":"YulFunctionCall","src":"10826:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"10796:29:103"},"nodeType":"YulFunctionCall","src":"10796:49:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10773:6:103"},"nodeType":"YulFunctionCall","src":"10773:73:103"},"nodeType":"YulExpressionStatement","src":"10773:73:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10866:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10873:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10862:3:103"},"nodeType":"YulFunctionCall","src":"10862:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10888:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10899:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10884:3:103"},"nodeType":"YulFunctionCall","src":"10884:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10878:5:103"},"nodeType":"YulFunctionCall","src":"10878:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10855:6:103"},"nodeType":"YulFunctionCall","src":"10855:49:103"},"nodeType":"YulExpressionStatement","src":"10855:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10924:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10931:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10920:3:103"},"nodeType":"YulFunctionCall","src":"10920:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10947:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10958:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10943:3:103"},"nodeType":"YulFunctionCall","src":"10943:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10937:5:103"},"nodeType":"YulFunctionCall","src":"10937:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10913:6:103"},"nodeType":"YulFunctionCall","src":"10913:51:103"},"nodeType":"YulExpressionStatement","src":"10913:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10984:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10991:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10980:3:103"},"nodeType":"YulFunctionCall","src":"10980:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11007:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11018:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11003:3:103"},"nodeType":"YulFunctionCall","src":"11003:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10997:5:103"},"nodeType":"YulFunctionCall","src":"10997:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10973:6:103"},"nodeType":"YulFunctionCall","src":"10973:51:103"},"nodeType":"YulExpressionStatement","src":"10973:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11044:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"11051:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11040:3:103"},"nodeType":"YulFunctionCall","src":"11040:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11067:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11078:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11063:3:103"},"nodeType":"YulFunctionCall","src":"11063:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11057:5:103"},"nodeType":"YulFunctionCall","src":"11057:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11033:6:103"},"nodeType":"YulFunctionCall","src":"11033:51:103"},"nodeType":"YulExpressionStatement","src":"11033:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11104:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"11111:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11100:3:103"},"nodeType":"YulFunctionCall","src":"11100:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11127:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11138:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11123:3:103"},"nodeType":"YulFunctionCall","src":"11123:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11117:5:103"},"nodeType":"YulFunctionCall","src":"11117:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11093:6:103"},"nodeType":"YulFunctionCall","src":"11093:51:103"},"nodeType":"YulExpressionStatement","src":"11093:51:103"},{"nodeType":"YulVariableDeclaration","src":"11153:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"11163:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"11157:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11186:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"11193:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11182:3:103"},"nodeType":"YulFunctionCall","src":"11182:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11208:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"11219:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11204:3:103"},"nodeType":"YulFunctionCall","src":"11204:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11198:5:103"},"nodeType":"YulFunctionCall","src":"11198:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11175:6:103"},"nodeType":"YulFunctionCall","src":"11175:49:103"},"nodeType":"YulExpressionStatement","src":"11175:49:103"},{"nodeType":"YulVariableDeclaration","src":"11233:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"11243:3:103","type":"","value":"288"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"11237:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11266:5:103"},{"name":"_3","nodeType":"YulIdentifier","src":"11273:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11262:3:103"},"nodeType":"YulFunctionCall","src":"11262:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11288:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"11299:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11284:3:103"},"nodeType":"YulFunctionCall","src":"11284:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11278:5:103"},"nodeType":"YulFunctionCall","src":"11278:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11255:6:103"},"nodeType":"YulFunctionCall","src":"11255:49:103"},"nodeType":"YulExpressionStatement","src":"11255:49:103"},{"nodeType":"YulVariableDeclaration","src":"11313:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"11323:3:103","type":"","value":"320"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"11317:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11346:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"11353:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11342:3:103"},"nodeType":"YulFunctionCall","src":"11342:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11368:9:103"},{"name":"_4","nodeType":"YulIdentifier","src":"11379:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11364:3:103"},"nodeType":"YulFunctionCall","src":"11364:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11358:5:103"},"nodeType":"YulFunctionCall","src":"11358:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11335:6:103"},"nodeType":"YulFunctionCall","src":"11335:49:103"},"nodeType":"YulExpressionStatement","src":"11335:49:103"},{"nodeType":"YulAssignment","src":"11393:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"11403:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11393:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Pool_$5502_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10473:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10484:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10496:6:103","type":""}],"src":"10404:1010:103"},{"body":{"nodeType":"YulBlock","src":"11489:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"11535:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11544:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11552:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11537:6:103"},"nodeType":"YulFunctionCall","src":"11537:22:103"},"nodeType":"YulExpressionStatement","src":"11537:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11510:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11519:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11506:3:103"},"nodeType":"YulFunctionCall","src":"11506:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11531:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11502:3:103"},"nodeType":"YulFunctionCall","src":"11502:32:103"},"nodeType":"YulIf","src":"11499:2:103"},{"nodeType":"YulAssignment","src":"11570:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11593:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11580:12:103"},"nodeType":"YulFunctionCall","src":"11580:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11570:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11455:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11466:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11478:6:103","type":""}],"src":"11419:190:103"},{"body":{"nodeType":"YulBlock","src":"11695:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"11741:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11750:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11758:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11743:6:103"},"nodeType":"YulFunctionCall","src":"11743:22:103"},"nodeType":"YulExpressionStatement","src":"11743:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11716:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11725:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11712:3:103"},"nodeType":"YulFunctionCall","src":"11712:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11737:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11708:3:103"},"nodeType":"YulFunctionCall","src":"11708:32:103"},"nodeType":"YulIf","src":"11705:2:103"},{"nodeType":"YulAssignment","src":"11776:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11792:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11786:5:103"},"nodeType":"YulFunctionCall","src":"11786:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11776:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11661:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11672:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11684:6:103","type":""}],"src":"11614:194:103"},{"body":{"nodeType":"YulBlock","src":"11900:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"11946:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11955:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11963:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11948:6:103"},"nodeType":"YulFunctionCall","src":"11948:22:103"},"nodeType":"YulExpressionStatement","src":"11948:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11921:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11930:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11917:3:103"},"nodeType":"YulFunctionCall","src":"11917:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"11942:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11913:3:103"},"nodeType":"YulFunctionCall","src":"11913:32:103"},"nodeType":"YulIf","src":"11910:2:103"},{"nodeType":"YulAssignment","src":"11981:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12004:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11991:12:103"},"nodeType":"YulFunctionCall","src":"11991:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11981:6:103"}]},{"nodeType":"YulAssignment","src":"12023:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12050:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12061:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12046:3:103"},"nodeType":"YulFunctionCall","src":"12046:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"12033:12:103"},"nodeType":"YulFunctionCall","src":"12033:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"12023:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11858:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11869:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11881:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11889:6:103","type":""}],"src":"11813:258:103"},{"body":{"nodeType":"YulBlock","src":"12120:60:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12137:3:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12146:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12161:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"12166:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12157:3:103"},"nodeType":"YulFunctionCall","src":"12157:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"12170:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12153:3:103"},"nodeType":"YulFunctionCall","src":"12153:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12142:3:103"},"nodeType":"YulFunctionCall","src":"12142:31:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12130:6:103"},"nodeType":"YulFunctionCall","src":"12130:44:103"},"nodeType":"YulExpressionStatement","src":"12130:44:103"}]},"name":"abi_encode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12104:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12111:3:103","type":""}],"src":"12076:104:103"},{"body":{"nodeType":"YulBlock","src":"12234:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"12244:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12264:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12258:5:103"},"nodeType":"YulFunctionCall","src":"12258:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12248:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12286:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12291:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12279:6:103"},"nodeType":"YulFunctionCall","src":"12279:19:103"},"nodeType":"YulExpressionStatement","src":"12279:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12333:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"12340:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12329:3:103"},"nodeType":"YulFunctionCall","src":"12329:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12351:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"12356:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12347:3:103"},"nodeType":"YulFunctionCall","src":"12347:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"12363:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12307:21:103"},"nodeType":"YulFunctionCall","src":"12307:63:103"},"nodeType":"YulExpressionStatement","src":"12307:63:103"},{"nodeType":"YulAssignment","src":"12379:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12394:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12407:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12415:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12403:3:103"},"nodeType":"YulFunctionCall","src":"12403:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12424:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12420:3:103"},"nodeType":"YulFunctionCall","src":"12420:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12399:3:103"},"nodeType":"YulFunctionCall","src":"12399:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12390:3:103"},"nodeType":"YulFunctionCall","src":"12390:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"12431:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12386:3:103"},"nodeType":"YulFunctionCall","src":"12386:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12379:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12211:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12218:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12226:3:103","type":""}],"src":"12185:257:103"},{"body":{"nodeType":"YulBlock","src":"12500:88:103","statements":[{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12549:5:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"12510:38:103"},"nodeType":"YulFunctionCall","src":"12510:45:103"},"nodeType":"YulExpressionStatement","src":"12510:45:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12571:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"12576:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12564:6:103"},"nodeType":"YulFunctionCall","src":"12564:18:103"},"nodeType":"YulExpressionStatement","src":"12564:18:103"}]},"name":"abi_encode_enum_BundleState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12484:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"12491:3:103","type":""}],"src":"12447:141:103"},{"body":{"nodeType":"YulBlock","src":"12740:147:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12757:3:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12762:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12750:6:103"},"nodeType":"YulFunctionCall","src":"12750:19:103"},"nodeType":"YulExpressionStatement","src":"12750:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12789:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"12794:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12785:3:103"},"nodeType":"YulFunctionCall","src":"12785:12:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12807:2:103","type":"","value":"96"},{"name":"value1","nodeType":"YulIdentifier","src":"12811:6:103"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12803:3:103"},"nodeType":"YulFunctionCall","src":"12803:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12824:26:103","type":"","value":"0xffffffffffffffffffffffff"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12820:3:103"},"nodeType":"YulFunctionCall","src":"12820:31:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12799:3:103"},"nodeType":"YulFunctionCall","src":"12799:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12778:6:103"},"nodeType":"YulFunctionCall","src":"12778:75:103"},"nodeType":"YulExpressionStatement","src":"12778:75:103"},{"nodeType":"YulAssignment","src":"12862:19:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"12873:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"12878:2:103","type":"","value":"52"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12869:3:103"},"nodeType":"YulFunctionCall","src":"12869:12:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"12862:3:103"}]}]},"name":"abi_encode_tuple_packed_t_uint256_t_address__to_t_uint256_t_address__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"12708:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12713:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12721:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"12732:3:103","type":""}],"src":"12593:294:103"},{"body":{"nodeType":"YulBlock","src":"12993:102:103","statements":[{"nodeType":"YulAssignment","src":"13003:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13015:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13026:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13011:3:103"},"nodeType":"YulFunctionCall","src":"13011:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13003:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13045:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13060:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13076:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13081:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13072:3:103"},"nodeType":"YulFunctionCall","src":"13072:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13085:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13068:3:103"},"nodeType":"YulFunctionCall","src":"13068:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13056:3:103"},"nodeType":"YulFunctionCall","src":"13056:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13038:6:103"},"nodeType":"YulFunctionCall","src":"13038:51:103"},"nodeType":"YulExpressionStatement","src":"13038:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12962:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12973:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12984:4:103","type":""}],"src":"12892:203:103"},{"body":{"nodeType":"YulBlock","src":"13195:92:103","statements":[{"nodeType":"YulAssignment","src":"13205:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13217:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13228:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13213:3:103"},"nodeType":"YulFunctionCall","src":"13213:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13205:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13247:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"13272:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13265:6:103"},"nodeType":"YulFunctionCall","src":"13265:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13258:6:103"},"nodeType":"YulFunctionCall","src":"13258:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13240:6:103"},"nodeType":"YulFunctionCall","src":"13240:41:103"},"nodeType":"YulExpressionStatement","src":"13240:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13164:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13175:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13186:4:103","type":""}],"src":"13100:187:103"},{"body":{"nodeType":"YulBlock","src":"13393:76:103","statements":[{"nodeType":"YulAssignment","src":"13403:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13426:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13411:3:103"},"nodeType":"YulFunctionCall","src":"13411:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13403:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13445:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13456:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13438:6:103"},"nodeType":"YulFunctionCall","src":"13438:25:103"},"nodeType":"YulExpressionStatement","src":"13438:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13362:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13373:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13384:4:103","type":""}],"src":"13292:177:103"},{"body":{"nodeType":"YulBlock","src":"13603:145:103","statements":[{"nodeType":"YulAssignment","src":"13613:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13625:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13636:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13621:3:103"},"nodeType":"YulFunctionCall","src":"13621:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13613:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13655:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13666:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13648:6:103"},"nodeType":"YulFunctionCall","src":"13648:25:103"},"nodeType":"YulExpressionStatement","src":"13648:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13693:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13704:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13689:3:103"},"nodeType":"YulFunctionCall","src":"13689:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13713:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13729:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13734:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13725:3:103"},"nodeType":"YulFunctionCall","src":"13725:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13738:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13721:3:103"},"nodeType":"YulFunctionCall","src":"13721:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13709:3:103"},"nodeType":"YulFunctionCall","src":"13709:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13682:6:103"},"nodeType":"YulFunctionCall","src":"13682:60:103"},"nodeType":"YulExpressionStatement","src":"13682:60:103"}]},"name":"abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13564:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13575:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13583:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13594:4:103","type":""}],"src":"13474:274:103"},{"body":{"nodeType":"YulBlock","src":"13882:119:103","statements":[{"nodeType":"YulAssignment","src":"13892:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13904:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13915:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13900:3:103"},"nodeType":"YulFunctionCall","src":"13900:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13892:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13934:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13945:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13927:6:103"},"nodeType":"YulFunctionCall","src":"13927:25:103"},"nodeType":"YulExpressionStatement","src":"13927:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13972:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13983:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13968:3:103"},"nodeType":"YulFunctionCall","src":"13968:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13988:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13961:6:103"},"nodeType":"YulFunctionCall","src":"13961:34:103"},"nodeType":"YulExpressionStatement","src":"13961:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13843:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13854:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13862:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13873:4:103","type":""}],"src":"13753:248:103"},{"body":{"nodeType":"YulBlock","src":"14125:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14142:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14153:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14135:6:103"},"nodeType":"YulFunctionCall","src":"14135:21:103"},"nodeType":"YulExpressionStatement","src":"14135:21:103"},{"nodeType":"YulAssignment","src":"14165:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14190:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14202:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14213:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14198:3:103"},"nodeType":"YulFunctionCall","src":"14198:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"14173:16:103"},"nodeType":"YulFunctionCall","src":"14173:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14165:4:103"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14094:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14105:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14116:4:103","type":""}],"src":"14006:217:103"},{"body":{"nodeType":"YulBlock","src":"14350:102:103","statements":[{"nodeType":"YulAssignment","src":"14360:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14372:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14383:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14368:3:103"},"nodeType":"YulFunctionCall","src":"14368:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14360:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14402:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14417:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14433:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14438:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14429:3:103"},"nodeType":"YulFunctionCall","src":"14429:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14442:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14425:3:103"},"nodeType":"YulFunctionCall","src":"14425:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14413:3:103"},"nodeType":"YulFunctionCall","src":"14413:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14395:6:103"},"nodeType":"YulFunctionCall","src":"14395:51:103"},"nodeType":"YulExpressionStatement","src":"14395:51:103"}]},"name":"abi_encode_tuple_t_contract$_IBundleToken_$6825__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14319:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14330:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14341:4:103","type":""}],"src":"14228:224:103"},{"body":{"nodeType":"YulBlock","src":"14589:102:103","statements":[{"nodeType":"YulAssignment","src":"14599:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14611:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14622:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14607:3:103"},"nodeType":"YulFunctionCall","src":"14607:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14599:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14641:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14656:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14672:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14677:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14668:3:103"},"nodeType":"YulFunctionCall","src":"14668:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14681:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14664:3:103"},"nodeType":"YulFunctionCall","src":"14664:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14652:3:103"},"nodeType":"YulFunctionCall","src":"14652:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14634:6:103"},"nodeType":"YulFunctionCall","src":"14634:51:103"},"nodeType":"YulExpressionStatement","src":"14634:51:103"}]},"name":"abi_encode_tuple_t_contract$_IComponentOwnerService_$6009__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14558:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14569:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14580:4:103","type":""}],"src":"14457:234:103"},{"body":{"nodeType":"YulBlock","src":"14816:102:103","statements":[{"nodeType":"YulAssignment","src":"14826:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14838:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14849:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14834:3:103"},"nodeType":"YulFunctionCall","src":"14834:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14826:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14868:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14883:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14899:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14904:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14895:3:103"},"nodeType":"YulFunctionCall","src":"14895:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14908:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14891:3:103"},"nodeType":"YulFunctionCall","src":"14891:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14879:3:103"},"nodeType":"YulFunctionCall","src":"14879:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14861:6:103"},"nodeType":"YulFunctionCall","src":"14861:51:103"},"nodeType":"YulExpressionStatement","src":"14861:51:103"}]},"name":"abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14785:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14796:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14807:4:103","type":""}],"src":"14696:222:103"},{"body":{"nodeType":"YulBlock","src":"15039:102:103","statements":[{"nodeType":"YulAssignment","src":"15049:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15061:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15072:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15057:3:103"},"nodeType":"YulFunctionCall","src":"15057:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15049:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15091:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15106:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15122:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15127:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15118:3:103"},"nodeType":"YulFunctionCall","src":"15118:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15131:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15114:3:103"},"nodeType":"YulFunctionCall","src":"15114:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15102:3:103"},"nodeType":"YulFunctionCall","src":"15102:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15084:6:103"},"nodeType":"YulFunctionCall","src":"15084:51:103"},"nodeType":"YulExpressionStatement","src":"15084:51:103"}]},"name":"abi_encode_tuple_t_contract$_IERC20_$8831__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15008:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15019:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15030:4:103","type":""}],"src":"14923:218:103"},{"body":{"nodeType":"YulBlock","src":"15280:102:103","statements":[{"nodeType":"YulAssignment","src":"15290:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15302:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15313:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15298:3:103"},"nodeType":"YulFunctionCall","src":"15298:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15290:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15332:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15347:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15363:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15368:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15359:3:103"},"nodeType":"YulFunctionCall","src":"15359:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15372:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15355:3:103"},"nodeType":"YulFunctionCall","src":"15355:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15343:3:103"},"nodeType":"YulFunctionCall","src":"15343:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15325:6:103"},"nodeType":"YulFunctionCall","src":"15325:51:103"},"nodeType":"YulExpressionStatement","src":"15325:51:103"}]},"name":"abi_encode_tuple_t_contract$_IInstanceOperatorService_$6160__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15249:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15260:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15271:4:103","type":""}],"src":"15146:236:103"},{"body":{"nodeType":"YulBlock","src":"15511:102:103","statements":[{"nodeType":"YulAssignment","src":"15521:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15533:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15544:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15529:3:103"},"nodeType":"YulFunctionCall","src":"15529:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15521:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15563:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15578:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15594:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15599:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15590:3:103"},"nodeType":"YulFunctionCall","src":"15590:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15603:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15586:3:103"},"nodeType":"YulFunctionCall","src":"15586:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15574:3:103"},"nodeType":"YulFunctionCall","src":"15574:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15556:6:103"},"nodeType":"YulFunctionCall","src":"15556:51:103"},"nodeType":"YulExpressionStatement","src":"15556:51:103"}]},"name":"abi_encode_tuple_t_contract$_IOracleService_$6519__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15480:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15491:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15502:4:103","type":""}],"src":"15387:226:103"},{"body":{"nodeType":"YulBlock","src":"15743:102:103","statements":[{"nodeType":"YulAssignment","src":"15753:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15765:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15776:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15761:3:103"},"nodeType":"YulFunctionCall","src":"15761:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15753:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15795:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15810:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15826:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"15831:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15822:3:103"},"nodeType":"YulFunctionCall","src":"15822:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"15835:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"15818:3:103"},"nodeType":"YulFunctionCall","src":"15818:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15806:3:103"},"nodeType":"YulFunctionCall","src":"15806:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15788:6:103"},"nodeType":"YulFunctionCall","src":"15788:51:103"},"nodeType":"YulExpressionStatement","src":"15788:51:103"}]},"name":"abi_encode_tuple_t_contract$_IProductService_$6664__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15712:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15723:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15734:4:103","type":""}],"src":"15618:227:103"},{"body":{"nodeType":"YulBlock","src":"15969:102:103","statements":[{"nodeType":"YulAssignment","src":"15979:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15991:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16002:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15987:3:103"},"nodeType":"YulFunctionCall","src":"15987:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15979:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16021:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16036:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16052:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16057:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16048:3:103"},"nodeType":"YulFunctionCall","src":"16048:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"16061:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16044:3:103"},"nodeType":"YulFunctionCall","src":"16044:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16032:3:103"},"nodeType":"YulFunctionCall","src":"16032:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16014:6:103"},"nodeType":"YulFunctionCall","src":"16014:51:103"},"nodeType":"YulExpressionStatement","src":"16014:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15938:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15949:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15960:4:103","type":""}],"src":"15850:221:103"},{"body":{"nodeType":"YulBlock","src":"16202:102:103","statements":[{"nodeType":"YulAssignment","src":"16212:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16224:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16235:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16220:3:103"},"nodeType":"YulFunctionCall","src":"16220:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16212:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16254:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16269:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16285:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16290:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16281:3:103"},"nodeType":"YulFunctionCall","src":"16281:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"16294:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16277:3:103"},"nodeType":"YulFunctionCall","src":"16277:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16265:3:103"},"nodeType":"YulFunctionCall","src":"16265:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16247:6:103"},"nodeType":"YulFunctionCall","src":"16247:51:103"},"nodeType":"YulExpressionStatement","src":"16247:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRiskpoolService_$6770__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16171:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16182:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16193:4:103","type":""}],"src":"16076:228:103"},{"body":{"nodeType":"YulBlock","src":"16427:132:103","statements":[{"nodeType":"YulAssignment","src":"16437:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16449:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16460:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16445:3:103"},"nodeType":"YulFunctionCall","src":"16445:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16437:4:103"}]},{"body":{"nodeType":"YulBlock","src":"16497:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"16499:16:103"},"nodeType":"YulFunctionCall","src":"16499:18:103"},"nodeType":"YulExpressionStatement","src":"16499:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16485:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"16493:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"16482:2:103"},"nodeType":"YulFunctionCall","src":"16482:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16475:6:103"},"nodeType":"YulFunctionCall","src":"16475:21:103"},"nodeType":"YulIf","src":"16472:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16535:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16546:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16528:6:103"},"nodeType":"YulFunctionCall","src":"16528:25:103"},"nodeType":"YulExpressionStatement","src":"16528:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16396:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16407:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16418:4:103","type":""}],"src":"16309:250:103"},{"body":{"nodeType":"YulBlock","src":"16681:128:103","statements":[{"nodeType":"YulAssignment","src":"16691:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16703:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16714:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16699:3:103"},"nodeType":"YulFunctionCall","src":"16699:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16691:4:103"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16762:6:103"}],"functionName":{"name":"validator_assert_enum_ComponentType","nodeType":"YulIdentifier","src":"16726:35:103"},"nodeType":"YulFunctionCall","src":"16726:43:103"},"nodeType":"YulExpressionStatement","src":"16726:43:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16785:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16796:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16778:6:103"},"nodeType":"YulFunctionCall","src":"16778:25:103"},"nodeType":"YulExpressionStatement","src":"16778:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16650:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16661:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16672:4:103","type":""}],"src":"16564:245:103"},{"body":{"nodeType":"YulBlock","src":"16921:87:103","statements":[{"nodeType":"YulAssignment","src":"16931:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16943:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16954:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16939:3:103"},"nodeType":"YulFunctionCall","src":"16939:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16931:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16973:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16988:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"16996:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16984:3:103"},"nodeType":"YulFunctionCall","src":"16984:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16966:6:103"},"nodeType":"YulFunctionCall","src":"16966:36:103"},"nodeType":"YulExpressionStatement","src":"16966:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16890:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16901:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16912:4:103","type":""}],"src":"16814:194:103"},{"body":{"nodeType":"YulBlock","src":"17134:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17162:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17144:6:103"},"nodeType":"YulFunctionCall","src":"17144:21:103"},"nodeType":"YulExpressionStatement","src":"17144:21:103"},{"nodeType":"YulAssignment","src":"17174:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"17199:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17211:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17222:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17207:3:103"},"nodeType":"YulFunctionCall","src":"17207:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"17182:16:103"},"nodeType":"YulFunctionCall","src":"17182:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17174:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17103:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17114:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17125:4:103","type":""}],"src":"17013:219:103"},{"body":{"nodeType":"YulBlock","src":"17411:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17428:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17439:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17421:6:103"},"nodeType":"YulFunctionCall","src":"17421:21:103"},"nodeType":"YulExpressionStatement","src":"17421:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17473:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17458:3:103"},"nodeType":"YulFunctionCall","src":"17458:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17478:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17451:6:103"},"nodeType":"YulFunctionCall","src":"17451:30:103"},"nodeType":"YulExpressionStatement","src":"17451:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17501:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17512:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17497:3:103"},"nodeType":"YulFunctionCall","src":"17497:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17517:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17490:6:103"},"nodeType":"YulFunctionCall","src":"17490:62:103"},"nodeType":"YulExpressionStatement","src":"17490:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17572:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17583:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17568:3:103"},"nodeType":"YulFunctionCall","src":"17568:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17588:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17561:6:103"},"nodeType":"YulFunctionCall","src":"17561:35:103"},"nodeType":"YulExpressionStatement","src":"17561:35:103"},{"nodeType":"YulAssignment","src":"17605:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17617:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17628:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17613:3:103"},"nodeType":"YulFunctionCall","src":"17613:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17605:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17388:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17402:4:103","type":""}],"src":"17237:401:103"},{"body":{"nodeType":"YulBlock","src":"17817:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17834:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17845:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17827:6:103"},"nodeType":"YulFunctionCall","src":"17827:21:103"},"nodeType":"YulExpressionStatement","src":"17827:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17868:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17879:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17864:3:103"},"nodeType":"YulFunctionCall","src":"17864:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17884:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17857:6:103"},"nodeType":"YulFunctionCall","src":"17857:30:103"},"nodeType":"YulExpressionStatement","src":"17857:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17918:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17903:3:103"},"nodeType":"YulFunctionCall","src":"17903:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17923:34:103","type":"","value":"ERROR:IS-002:IMPLEMENATION_MISSI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17896:6:103"},"nodeType":"YulFunctionCall","src":"17896:62:103"},"nodeType":"YulExpressionStatement","src":"17896:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17989:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17974:3:103"},"nodeType":"YulFunctionCall","src":"17974:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17994:4:103","type":"","value":"NG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17967:6:103"},"nodeType":"YulFunctionCall","src":"17967:32:103"},"nodeType":"YulExpressionStatement","src":"17967:32:103"},{"nodeType":"YulAssignment","src":"18008:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18020:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18031:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18016:3:103"},"nodeType":"YulFunctionCall","src":"18016:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18008:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3538b2b40dc1579a3c1803dfe60abab88e636a7c9369729bbd4ce7b793360801__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17794:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17808:4:103","type":""}],"src":"17643:398:103"},{"body":{"nodeType":"YulBlock","src":"18220:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18237:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18248:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18230:6:103"},"nodeType":"YulFunctionCall","src":"18230:21:103"},"nodeType":"YulExpressionStatement","src":"18230:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18282:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18267:3:103"},"nodeType":"YulFunctionCall","src":"18267:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18287:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18260:6:103"},"nodeType":"YulFunctionCall","src":"18260:30:103"},"nodeType":"YulExpressionStatement","src":"18260:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18310:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18321:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18306:3:103"},"nodeType":"YulFunctionCall","src":"18306:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18326:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18299:6:103"},"nodeType":"YulFunctionCall","src":"18299:62:103"},"nodeType":"YulExpressionStatement","src":"18299:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18392:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18377:3:103"},"nodeType":"YulFunctionCall","src":"18377:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18397:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18370:6:103"},"nodeType":"YulFunctionCall","src":"18370:44:103"},"nodeType":"YulExpressionStatement","src":"18370:44:103"},{"nodeType":"YulAssignment","src":"18423:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18435:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18446:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18431:3:103"},"nodeType":"YulFunctionCall","src":"18431:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18423:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18197:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18211:4:103","type":""}],"src":"18046:410:103"},{"body":{"nodeType":"YulBlock","src":"18635:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18652:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18663:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18645:6:103"},"nodeType":"YulFunctionCall","src":"18645:21:103"},"nodeType":"YulExpressionStatement","src":"18645:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18686:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18697:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18682:3:103"},"nodeType":"YulFunctionCall","src":"18682:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18702:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18675:6:103"},"nodeType":"YulFunctionCall","src":"18675:30:103"},"nodeType":"YulExpressionStatement","src":"18675:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18725:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18736:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18721:3:103"},"nodeType":"YulFunctionCall","src":"18721:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18741:34:103","type":"","value":"ERROR:IS-001:IMPLEMENATION_MISSI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18714:6:103"},"nodeType":"YulFunctionCall","src":"18714:62:103"},"nodeType":"YulExpressionStatement","src":"18714:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18796:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18807:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18792:3:103"},"nodeType":"YulFunctionCall","src":"18792:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"18812:4:103","type":"","value":"NG"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18785:6:103"},"nodeType":"YulFunctionCall","src":"18785:32:103"},"nodeType":"YulExpressionStatement","src":"18785:32:103"},{"nodeType":"YulAssignment","src":"18826:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18838:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18849:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18834:3:103"},"nodeType":"YulFunctionCall","src":"18834:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18826:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9f10dbd7637aa20fb8b54a4dbdfe5499f4b0287e8df0e24d98f28636def7ca3d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18612:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18626:4:103","type":""}],"src":"18461:398:103"},{"body":{"nodeType":"YulBlock","src":"19038:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19066:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19048:6:103"},"nodeType":"YulFunctionCall","src":"19048:21:103"},"nodeType":"YulExpressionStatement","src":"19048:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19089:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19100:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19085:3:103"},"nodeType":"YulFunctionCall","src":"19085:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"19105:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19078:6:103"},"nodeType":"YulFunctionCall","src":"19078:30:103"},"nodeType":"YulExpressionStatement","src":"19078:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19128:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19139:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19124:3:103"},"nodeType":"YulFunctionCall","src":"19124:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19144:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19117:6:103"},"nodeType":"YulFunctionCall","src":"19117:62:103"},"nodeType":"YulExpressionStatement","src":"19117:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19199:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19210:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19195:3:103"},"nodeType":"YulFunctionCall","src":"19195:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"19215:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19188:6:103"},"nodeType":"YulFunctionCall","src":"19188:41:103"},"nodeType":"YulExpressionStatement","src":"19188:41:103"},{"nodeType":"YulAssignment","src":"19238:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19261:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19246:3:103"},"nodeType":"YulFunctionCall","src":"19246:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"19238:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19015:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19029:4:103","type":""}],"src":"18864:407:103"},{"body":{"nodeType":"YulBlock","src":"19435:590:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19452:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19463:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19445:6:103"},"nodeType":"YulFunctionCall","src":"19445:21:103"},"nodeType":"YulExpressionStatement","src":"19445:21:103"},{"nodeType":"YulVariableDeclaration","src":"19475:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19491:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19485:5:103"},"nodeType":"YulFunctionCall","src":"19485:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19479:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"19546:2:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"19507:38:103"},"nodeType":"YulFunctionCall","src":"19507:42:103"},"nodeType":"YulExpressionStatement","src":"19507:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19569:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19580:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19565:3:103"},"nodeType":"YulFunctionCall","src":"19565:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"19585:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19558:6:103"},"nodeType":"YulFunctionCall","src":"19558:30:103"},"nodeType":"YulExpressionStatement","src":"19558:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19608:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19619:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19604:3:103"},"nodeType":"YulFunctionCall","src":"19604:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19634:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"19642:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19630:3:103"},"nodeType":"YulFunctionCall","src":"19630:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19624:5:103"},"nodeType":"YulFunctionCall","src":"19624:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19597:6:103"},"nodeType":"YulFunctionCall","src":"19597:50:103"},"nodeType":"YulExpressionStatement","src":"19597:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19667:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19678:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19663:3:103"},"nodeType":"YulFunctionCall","src":"19663:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19693:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"19701:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19689:3:103"},"nodeType":"YulFunctionCall","src":"19689:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19683:5:103"},"nodeType":"YulFunctionCall","src":"19683:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19656:6:103"},"nodeType":"YulFunctionCall","src":"19656:50:103"},"nodeType":"YulExpressionStatement","src":"19656:50:103"},{"nodeType":"YulVariableDeclaration","src":"19715:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19745:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"19753:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19741:3:103"},"nodeType":"YulFunctionCall","src":"19741:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19735:5:103"},"nodeType":"YulFunctionCall","src":"19735:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"19719:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19777:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19788:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19773:3:103"},"nodeType":"YulFunctionCall","src":"19773:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"19794:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19766:6:103"},"nodeType":"YulFunctionCall","src":"19766:33:103"},"nodeType":"YulExpressionStatement","src":"19766:33:103"},{"nodeType":"YulVariableDeclaration","src":"19808:65:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"19839:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19868:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19853:3:103"},"nodeType":"YulFunctionCall","src":"19853:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"19822:16:103"},"nodeType":"YulFunctionCall","src":"19822:51:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"19812:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19893:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19904:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19889:3:103"},"nodeType":"YulFunctionCall","src":"19889:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19920:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"19928:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19916:3:103"},"nodeType":"YulFunctionCall","src":"19916:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19910:5:103"},"nodeType":"YulFunctionCall","src":"19910:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19882:6:103"},"nodeType":"YulFunctionCall","src":"19882:52:103"},"nodeType":"YulExpressionStatement","src":"19882:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"19954:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"19965:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19950:3:103"},"nodeType":"YulFunctionCall","src":"19950:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"19982:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"19990:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19978:3:103"},"nodeType":"YulFunctionCall","src":"19978:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19972:5:103"},"nodeType":"YulFunctionCall","src":"19972:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19943:6:103"},"nodeType":"YulFunctionCall","src":"19943:53:103"},"nodeType":"YulExpressionStatement","src":"19943:53:103"},{"nodeType":"YulAssignment","src":"20005:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"20013:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"20005:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Application_$5262_memory_ptr__to_t_struct$_Application_$5262_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"19404:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"19415:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"19426:4:103","type":""}],"src":"19276:749:103"},{"body":{"nodeType":"YulBlock","src":"20179:931:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20196:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20207:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20189:6:103"},"nodeType":"YulFunctionCall","src":"20189:21:103"},"nodeType":"YulExpressionStatement","src":"20189:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20230:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20241:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20226:3:103"},"nodeType":"YulFunctionCall","src":"20226:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20252:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20246:5:103"},"nodeType":"YulFunctionCall","src":"20246:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20219:6:103"},"nodeType":"YulFunctionCall","src":"20219:41:103"},"nodeType":"YulExpressionStatement","src":"20219:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20280:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20291:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20276:3:103"},"nodeType":"YulFunctionCall","src":"20276:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20306:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20314:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20302:3:103"},"nodeType":"YulFunctionCall","src":"20302:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20296:5:103"},"nodeType":"YulFunctionCall","src":"20296:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20269:6:103"},"nodeType":"YulFunctionCall","src":"20269:50:103"},"nodeType":"YulExpressionStatement","src":"20269:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20339:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20350:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20335:3:103"},"nodeType":"YulFunctionCall","src":"20335:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20365:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20373:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20361:3:103"},"nodeType":"YulFunctionCall","src":"20361:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20355:5:103"},"nodeType":"YulFunctionCall","src":"20355:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20328:6:103"},"nodeType":"YulFunctionCall","src":"20328:50:103"},"nodeType":"YulExpressionStatement","src":"20328:50:103"},{"nodeType":"YulVariableDeclaration","src":"20387:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20417:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20425:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20413:3:103"},"nodeType":"YulFunctionCall","src":"20413:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20407:5:103"},"nodeType":"YulFunctionCall","src":"20407:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"20391:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"20466:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20484:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20495:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20480:3:103"},"nodeType":"YulFunctionCall","src":"20480:19:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"20438:27:103"},"nodeType":"YulFunctionCall","src":"20438:62:103"},"nodeType":"YulExpressionStatement","src":"20438:62:103"},{"nodeType":"YulVariableDeclaration","src":"20509:45:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20541:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20549:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20537:3:103"},"nodeType":"YulFunctionCall","src":"20537:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20531:5:103"},"nodeType":"YulFunctionCall","src":"20531:23:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"20513:14:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20563:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"20573:6:103","type":"","value":"0x0140"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"20567:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20599:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20610:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20595:3:103"},"nodeType":"YulFunctionCall","src":"20595:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"20616:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20588:6:103"},"nodeType":"YulFunctionCall","src":"20588:31:103"},"nodeType":"YulExpressionStatement","src":"20588:31:103"},{"nodeType":"YulVariableDeclaration","src":"20628:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"20659:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20679:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20690:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20675:3:103"},"nodeType":"YulFunctionCall","src":"20675:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"20642:16:103"},"nodeType":"YulFunctionCall","src":"20642:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"20632:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20715:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20726:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20711:3:103"},"nodeType":"YulFunctionCall","src":"20711:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20742:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20750:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20738:3:103"},"nodeType":"YulFunctionCall","src":"20738:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20732:5:103"},"nodeType":"YulFunctionCall","src":"20732:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20704:6:103"},"nodeType":"YulFunctionCall","src":"20704:52:103"},"nodeType":"YulExpressionStatement","src":"20704:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20776:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"20787:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20772:3:103"},"nodeType":"YulFunctionCall","src":"20772:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20803:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20811:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20799:3:103"},"nodeType":"YulFunctionCall","src":"20799:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20793:5:103"},"nodeType":"YulFunctionCall","src":"20793:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20765:6:103"},"nodeType":"YulFunctionCall","src":"20765:52:103"},"nodeType":"YulExpressionStatement","src":"20765:52:103"},{"nodeType":"YulVariableDeclaration","src":"20826:33:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20846:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"20854:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20842:3:103"},"nodeType":"YulFunctionCall","src":"20842:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20836:5:103"},"nodeType":"YulFunctionCall","src":"20836:23:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"20830:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20868:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"20878:3:103","type":"","value":"256"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"20872:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"20901:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"20912:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20897:3:103"},"nodeType":"YulFunctionCall","src":"20897:18:103"},{"name":"_2","nodeType":"YulIdentifier","src":"20917:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20890:6:103"},"nodeType":"YulFunctionCall","src":"20890:30:103"},"nodeType":"YulExpressionStatement","src":"20890:30:103"},{"nodeType":"YulVariableDeclaration","src":"20929:32:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"20949:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"20957:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20945:3:103"},"nodeType":"YulFunctionCall","src":"20945:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"20939:5:103"},"nodeType":"YulFunctionCall","src":"20939:22:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"20933:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"20970:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"20980:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"20974:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21003:9:103"},{"name":"_5","nodeType":"YulIdentifier","src":"21014:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"20999:3:103"},"nodeType":"YulFunctionCall","src":"20999:18:103"},{"name":"_4","nodeType":"YulIdentifier","src":"21019:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20992:6:103"},"nodeType":"YulFunctionCall","src":"20992:30:103"},"nodeType":"YulExpressionStatement","src":"20992:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21042:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"21053:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21038:3:103"},"nodeType":"YulFunctionCall","src":"21038:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21068:6:103"},{"name":"_5","nodeType":"YulIdentifier","src":"21076:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21064:3:103"},"nodeType":"YulFunctionCall","src":"21064:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21058:5:103"},"nodeType":"YulFunctionCall","src":"21058:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21031:6:103"},"nodeType":"YulFunctionCall","src":"21031:50:103"},"nodeType":"YulExpressionStatement","src":"21031:50:103"},{"nodeType":"YulAssignment","src":"21090:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"21098:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21090:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"20148:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"20159:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"20170:4:103","type":""}],"src":"20030:1080:103"},{"body":{"nodeType":"YulBlock","src":"21262:590:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21279:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21290:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21272:6:103"},"nodeType":"YulFunctionCall","src":"21272:21:103"},"nodeType":"YulExpressionStatement","src":"21272:21:103"},{"nodeType":"YulVariableDeclaration","src":"21302:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21318:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21312:5:103"},"nodeType":"YulFunctionCall","src":"21312:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"21306:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"21373:2:103"}],"functionName":{"name":"validator_assert_enum_ApplicationState","nodeType":"YulIdentifier","src":"21334:38:103"},"nodeType":"YulFunctionCall","src":"21334:42:103"},"nodeType":"YulExpressionStatement","src":"21334:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21407:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21392:3:103"},"nodeType":"YulFunctionCall","src":"21392:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"21412:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21385:6:103"},"nodeType":"YulFunctionCall","src":"21385:30:103"},"nodeType":"YulExpressionStatement","src":"21385:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21435:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21446:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21431:3:103"},"nodeType":"YulFunctionCall","src":"21431:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21461:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21469:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21457:3:103"},"nodeType":"YulFunctionCall","src":"21457:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21451:5:103"},"nodeType":"YulFunctionCall","src":"21451:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21424:6:103"},"nodeType":"YulFunctionCall","src":"21424:50:103"},"nodeType":"YulExpressionStatement","src":"21424:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21494:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21505:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21490:3:103"},"nodeType":"YulFunctionCall","src":"21490:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21520:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21528:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21516:3:103"},"nodeType":"YulFunctionCall","src":"21516:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21510:5:103"},"nodeType":"YulFunctionCall","src":"21510:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21483:6:103"},"nodeType":"YulFunctionCall","src":"21483:50:103"},"nodeType":"YulExpressionStatement","src":"21483:50:103"},{"nodeType":"YulVariableDeclaration","src":"21542:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21572:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21580:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21568:3:103"},"nodeType":"YulFunctionCall","src":"21568:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21562:5:103"},"nodeType":"YulFunctionCall","src":"21562:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"21546:12:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21615:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21600:3:103"},"nodeType":"YulFunctionCall","src":"21600:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"21621:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21593:6:103"},"nodeType":"YulFunctionCall","src":"21593:33:103"},"nodeType":"YulExpressionStatement","src":"21593:33:103"},{"nodeType":"YulVariableDeclaration","src":"21635:65:103","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"21666:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21684:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21695:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21680:3:103"},"nodeType":"YulFunctionCall","src":"21680:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"21649:16:103"},"nodeType":"YulFunctionCall","src":"21649:51:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"21639:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21720:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21731:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21716:3:103"},"nodeType":"YulFunctionCall","src":"21716:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21747:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21755:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21743:3:103"},"nodeType":"YulFunctionCall","src":"21743:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21737:5:103"},"nodeType":"YulFunctionCall","src":"21737:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21709:6:103"},"nodeType":"YulFunctionCall","src":"21709:52:103"},"nodeType":"YulExpressionStatement","src":"21709:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"21781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"21792:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21777:3:103"},"nodeType":"YulFunctionCall","src":"21777:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"21809:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"21817:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"21805:3:103"},"nodeType":"YulFunctionCall","src":"21805:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"21799:5:103"},"nodeType":"YulFunctionCall","src":"21799:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"21770:6:103"},"nodeType":"YulFunctionCall","src":"21770:53:103"},"nodeType":"YulExpressionStatement","src":"21770:53:103"},{"nodeType":"YulAssignment","src":"21832:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"21840:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"21832:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Claim_$5296_memory_ptr__to_t_struct$_Claim_$5296_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21231:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21242:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"21253:4:103","type":""}],"src":"21115:737:103"},{"body":{"nodeType":"YulBlock","src":"22010:647:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22027:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22038:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22020:6:103"},"nodeType":"YulFunctionCall","src":"22020:21:103"},"nodeType":"YulExpressionStatement","src":"22020:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22061:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22072:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22057:3:103"},"nodeType":"YulFunctionCall","src":"22057:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22087:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22081:5:103"},"nodeType":"YulFunctionCall","src":"22081:13:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"22104:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"22109:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"22100:3:103"},"nodeType":"YulFunctionCall","src":"22100:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"22113:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"22096:3:103"},"nodeType":"YulFunctionCall","src":"22096:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"22077:3:103"},"nodeType":"YulFunctionCall","src":"22077:39:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22050:6:103"},"nodeType":"YulFunctionCall","src":"22050:67:103"},"nodeType":"YulExpressionStatement","src":"22050:67:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22137:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22148:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22133:3:103"},"nodeType":"YulFunctionCall","src":"22133:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22163:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22171:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22159:3:103"},"nodeType":"YulFunctionCall","src":"22159:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22153:5:103"},"nodeType":"YulFunctionCall","src":"22153:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22126:6:103"},"nodeType":"YulFunctionCall","src":"22126:50:103"},"nodeType":"YulExpressionStatement","src":"22126:50:103"},{"nodeType":"YulVariableDeclaration","src":"22185:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22223:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22211:3:103"},"nodeType":"YulFunctionCall","src":"22211:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22205:5:103"},"nodeType":"YulFunctionCall","src":"22205:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"22189:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"22272:12:103"}],"functionName":{"name":"validator_assert_enum_ComponentType","nodeType":"YulIdentifier","src":"22236:35:103"},"nodeType":"YulFunctionCall","src":"22236:49:103"},"nodeType":"YulExpressionStatement","src":"22236:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22316:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22301:3:103"},"nodeType":"YulFunctionCall","src":"22301:18:103"},{"name":"memberValue0","nodeType":"YulIdentifier","src":"22321:12:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22294:6:103"},"nodeType":"YulFunctionCall","src":"22294:40:103"},"nodeType":"YulExpressionStatement","src":"22294:40:103"},{"nodeType":"YulVariableDeclaration","src":"22343:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22375:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22383:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22371:3:103"},"nodeType":"YulFunctionCall","src":"22371:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22365:5:103"},"nodeType":"YulFunctionCall","src":"22365:22:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"22347:14:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22407:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22418:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22403:3:103"},"nodeType":"YulFunctionCall","src":"22403:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"22424:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22396:6:103"},"nodeType":"YulFunctionCall","src":"22396:33:103"},"nodeType":"YulExpressionStatement","src":"22396:33:103"},{"nodeType":"YulVariableDeclaration","src":"22438:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"22469:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22489:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22500:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22485:3:103"},"nodeType":"YulFunctionCall","src":"22485:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"22452:16:103"},"nodeType":"YulFunctionCall","src":"22452:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"22442:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22536:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22521:3:103"},"nodeType":"YulFunctionCall","src":"22521:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22552:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22560:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22548:3:103"},"nodeType":"YulFunctionCall","src":"22548:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22542:5:103"},"nodeType":"YulFunctionCall","src":"22542:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22514:6:103"},"nodeType":"YulFunctionCall","src":"22514:52:103"},"nodeType":"YulExpressionStatement","src":"22514:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22586:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22597:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22582:3:103"},"nodeType":"YulFunctionCall","src":"22582:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22614:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22622:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22610:3:103"},"nodeType":"YulFunctionCall","src":"22610:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22604:5:103"},"nodeType":"YulFunctionCall","src":"22604:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22575:6:103"},"nodeType":"YulFunctionCall","src":"22575:53:103"},"nodeType":"YulExpressionStatement","src":"22575:53:103"},{"nodeType":"YulAssignment","src":"22637:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"22645:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"22637:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Metadata_$5248_memory_ptr__to_t_struct$_Metadata_$5248_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"21979:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"21990:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22001:4:103","type":""}],"src":"21857:800:103"},{"body":{"nodeType":"YulBlock","src":"22811:625:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22828:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22839:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22821:6:103"},"nodeType":"YulFunctionCall","src":"22821:21:103"},"nodeType":"YulExpressionStatement","src":"22821:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"22862:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"22873:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22858:3:103"},"nodeType":"YulFunctionCall","src":"22858:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22884:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22878:5:103"},"nodeType":"YulFunctionCall","src":"22878:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"22851:6:103"},"nodeType":"YulFunctionCall","src":"22851:41:103"},"nodeType":"YulExpressionStatement","src":"22851:41:103"},{"nodeType":"YulVariableDeclaration","src":"22901:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"22931:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"22939:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"22927:3:103"},"nodeType":"YulFunctionCall","src":"22927:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"22921:5:103"},"nodeType":"YulFunctionCall","src":"22921:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"22905:12:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"22983:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"22985:16:103"},"nodeType":"YulFunctionCall","src":"22985:18:103"},"nodeType":"YulExpressionStatement","src":"22985:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"22965:12:103"},{"kind":"number","nodeType":"YulLiteral","src":"22979:1:103","type":"","value":"2"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"22962:2:103"},"nodeType":"YulFunctionCall","src":"22962:19:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"22955:6:103"},"nodeType":"YulFunctionCall","src":"22955:27:103"},"nodeType":"YulIf","src":"22952:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23025:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23036:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23021:3:103"},"nodeType":"YulFunctionCall","src":"23021:18:103"},{"name":"memberValue0","nodeType":"YulIdentifier","src":"23041:12:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23014:6:103"},"nodeType":"YulFunctionCall","src":"23014:40:103"},"nodeType":"YulExpressionStatement","src":"23014:40:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23074:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23085:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23070:3:103"},"nodeType":"YulFunctionCall","src":"23070:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23100:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23108:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23096:3:103"},"nodeType":"YulFunctionCall","src":"23096:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23090:5:103"},"nodeType":"YulFunctionCall","src":"23090:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23063:6:103"},"nodeType":"YulFunctionCall","src":"23063:50:103"},"nodeType":"YulExpressionStatement","src":"23063:50:103"},{"nodeType":"YulVariableDeclaration","src":"23122:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23154:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23162:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23150:3:103"},"nodeType":"YulFunctionCall","src":"23150:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23144:5:103"},"nodeType":"YulFunctionCall","src":"23144:22:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"23126:14:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23186:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23197:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23182:3:103"},"nodeType":"YulFunctionCall","src":"23182:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"23203:4:103","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23175:6:103"},"nodeType":"YulFunctionCall","src":"23175:33:103"},"nodeType":"YulExpressionStatement","src":"23175:33:103"},{"nodeType":"YulVariableDeclaration","src":"23217:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"23248:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23268:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23279:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23264:3:103"},"nodeType":"YulFunctionCall","src":"23264:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"23231:16:103"},"nodeType":"YulFunctionCall","src":"23231:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"23221:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23315:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23300:3:103"},"nodeType":"YulFunctionCall","src":"23300:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23331:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23339:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23327:3:103"},"nodeType":"YulFunctionCall","src":"23327:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23321:5:103"},"nodeType":"YulFunctionCall","src":"23321:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23293:6:103"},"nodeType":"YulFunctionCall","src":"23293:52:103"},"nodeType":"YulExpressionStatement","src":"23293:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23376:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23361:3:103"},"nodeType":"YulFunctionCall","src":"23361:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23393:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23401:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23389:3:103"},"nodeType":"YulFunctionCall","src":"23389:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23383:5:103"},"nodeType":"YulFunctionCall","src":"23383:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23354:6:103"},"nodeType":"YulFunctionCall","src":"23354:53:103"},"nodeType":"YulExpressionStatement","src":"23354:53:103"},{"nodeType":"YulAssignment","src":"23416:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"23424:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23416:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Payout_$5310_memory_ptr__to_t_struct$_Payout_$5310_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"22780:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"22791:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"22802:4:103","type":""}],"src":"22662:774:103"},{"body":{"nodeType":"YulBlock","src":"23590:678:103","statements":[{"nodeType":"YulAssignment","src":"23600:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23612:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23623:3:103","type":"","value":"288"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23608:3:103"},"nodeType":"YulFunctionCall","src":"23608:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"23600:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"23636:23:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23652:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23646:5:103"},"nodeType":"YulFunctionCall","src":"23646:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"23640:2:103","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"23704:2:103"}],"functionName":{"name":"validator_assert_enum_ComponentType","nodeType":"YulIdentifier","src":"23668:35:103"},"nodeType":"YulFunctionCall","src":"23668:39:103"},"nodeType":"YulExpressionStatement","src":"23668:39:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23723:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"23734:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23716:6:103"},"nodeType":"YulFunctionCall","src":"23716:21:103"},"nodeType":"YulExpressionStatement","src":"23716:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23757:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23768:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23753:3:103"},"nodeType":"YulFunctionCall","src":"23753:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23785:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23793:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23781:3:103"},"nodeType":"YulFunctionCall","src":"23781:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23775:5:103"},"nodeType":"YulFunctionCall","src":"23775:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23746:6:103"},"nodeType":"YulFunctionCall","src":"23746:54:103"},"nodeType":"YulExpressionStatement","src":"23746:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23831:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23816:3:103"},"nodeType":"YulFunctionCall","src":"23816:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23848:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23856:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23844:3:103"},"nodeType":"YulFunctionCall","src":"23844:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23838:5:103"},"nodeType":"YulFunctionCall","src":"23838:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23809:6:103"},"nodeType":"YulFunctionCall","src":"23809:54:103"},"nodeType":"YulExpressionStatement","src":"23809:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23883:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23894:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23879:3:103"},"nodeType":"YulFunctionCall","src":"23879:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23911:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23919:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23907:3:103"},"nodeType":"YulFunctionCall","src":"23907:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23901:5:103"},"nodeType":"YulFunctionCall","src":"23901:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23872:6:103"},"nodeType":"YulFunctionCall","src":"23872:54:103"},"nodeType":"YulExpressionStatement","src":"23872:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"23946:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"23957:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23942:3:103"},"nodeType":"YulFunctionCall","src":"23942:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"23974:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"23982:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"23970:3:103"},"nodeType":"YulFunctionCall","src":"23970:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"23964:5:103"},"nodeType":"YulFunctionCall","src":"23964:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23935:6:103"},"nodeType":"YulFunctionCall","src":"23935:54:103"},"nodeType":"YulExpressionStatement","src":"23935:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24009:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24020:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24005:3:103"},"nodeType":"YulFunctionCall","src":"24005:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24037:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24045:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24033:3:103"},"nodeType":"YulFunctionCall","src":"24033:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24027:5:103"},"nodeType":"YulFunctionCall","src":"24027:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"23998:6:103"},"nodeType":"YulFunctionCall","src":"23998:54:103"},"nodeType":"YulExpressionStatement","src":"23998:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24072:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24083:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24068:3:103"},"nodeType":"YulFunctionCall","src":"24068:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24100:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24108:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24096:3:103"},"nodeType":"YulFunctionCall","src":"24096:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24090:5:103"},"nodeType":"YulFunctionCall","src":"24090:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24061:6:103"},"nodeType":"YulFunctionCall","src":"24061:54:103"},"nodeType":"YulExpressionStatement","src":"24061:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24135:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24146:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24131:3:103"},"nodeType":"YulFunctionCall","src":"24131:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24163:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24171:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24159:3:103"},"nodeType":"YulFunctionCall","src":"24159:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24153:5:103"},"nodeType":"YulFunctionCall","src":"24153:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24124:6:103"},"nodeType":"YulFunctionCall","src":"24124:54:103"},"nodeType":"YulExpressionStatement","src":"24124:54:103"},{"nodeType":"YulVariableDeclaration","src":"24187:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"24197:6:103","type":"","value":"0x0100"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"24191:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24223:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"24234:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24219:3:103"},"nodeType":"YulFunctionCall","src":"24219:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24249:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"24257:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24245:3:103"},"nodeType":"YulFunctionCall","src":"24245:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24239:5:103"},"nodeType":"YulFunctionCall","src":"24239:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24212:6:103"},"nodeType":"YulFunctionCall","src":"24212:50:103"},"nodeType":"YulExpressionStatement","src":"24212:50:103"}]},"name":"abi_encode_tuple_t_struct$_Policy_$5282_memory_ptr__to_t_struct$_Policy_$5282_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"23559:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"23570:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"23581:4:103","type":""}],"src":"23441:827:103"},{"body":{"nodeType":"YulBlock","src":"24418:887:103","statements":[{"nodeType":"YulAssignment","src":"24428:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24451:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24436:3:103"},"nodeType":"YulFunctionCall","src":"24436:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"24428:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24471:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24488:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24482:5:103"},"nodeType":"YulFunctionCall","src":"24482:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24464:6:103"},"nodeType":"YulFunctionCall","src":"24464:32:103"},"nodeType":"YulExpressionStatement","src":"24464:32:103"},{"nodeType":"YulVariableDeclaration","src":"24505:44:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24535:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24543:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24531:3:103"},"nodeType":"YulFunctionCall","src":"24531:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24525:5:103"},"nodeType":"YulFunctionCall","src":"24525:24:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"24509:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"24577:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24595:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24606:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24591:3:103"},"nodeType":"YulFunctionCall","src":"24591:20:103"}],"functionName":{"name":"abi_encode_address","nodeType":"YulIdentifier","src":"24558:18:103"},"nodeType":"YulFunctionCall","src":"24558:54:103"},"nodeType":"YulExpressionStatement","src":"24558:54:103"},{"nodeType":"YulVariableDeclaration","src":"24621:46:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24653:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24661:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24649:3:103"},"nodeType":"YulFunctionCall","src":"24649:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24643:5:103"},"nodeType":"YulFunctionCall","src":"24643:24:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"24625:14:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"24695:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24715:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24726:4:103","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24711:3:103"},"nodeType":"YulFunctionCall","src":"24711:20:103"}],"functionName":{"name":"abi_encode_address","nodeType":"YulIdentifier","src":"24676:18:103"},"nodeType":"YulFunctionCall","src":"24676:56:103"},"nodeType":"YulExpressionStatement","src":"24676:56:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24752:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24763:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24748:3:103"},"nodeType":"YulFunctionCall","src":"24748:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24780:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24788:4:103","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24776:3:103"},"nodeType":"YulFunctionCall","src":"24776:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24770:5:103"},"nodeType":"YulFunctionCall","src":"24770:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24741:6:103"},"nodeType":"YulFunctionCall","src":"24741:54:103"},"nodeType":"YulExpressionStatement","src":"24741:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24815:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24826:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24811:3:103"},"nodeType":"YulFunctionCall","src":"24811:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24843:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24851:4:103","type":"","value":"0x80"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24839:3:103"},"nodeType":"YulFunctionCall","src":"24839:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24833:5:103"},"nodeType":"YulFunctionCall","src":"24833:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24804:6:103"},"nodeType":"YulFunctionCall","src":"24804:54:103"},"nodeType":"YulExpressionStatement","src":"24804:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24878:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24889:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24874:3:103"},"nodeType":"YulFunctionCall","src":"24874:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24906:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24914:4:103","type":"","value":"0xa0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24902:3:103"},"nodeType":"YulFunctionCall","src":"24902:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24896:5:103"},"nodeType":"YulFunctionCall","src":"24896:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24867:6:103"},"nodeType":"YulFunctionCall","src":"24867:54:103"},"nodeType":"YulExpressionStatement","src":"24867:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"24941:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"24952:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24937:3:103"},"nodeType":"YulFunctionCall","src":"24937:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"24969:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"24977:4:103","type":"","value":"0xc0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"24965:3:103"},"nodeType":"YulFunctionCall","src":"24965:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"24959:5:103"},"nodeType":"YulFunctionCall","src":"24959:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24930:6:103"},"nodeType":"YulFunctionCall","src":"24930:54:103"},"nodeType":"YulExpressionStatement","src":"24930:54:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25004:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25015:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25000:3:103"},"nodeType":"YulFunctionCall","src":"25000:20:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25032:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"25040:4:103","type":"","value":"0xe0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25028:3:103"},"nodeType":"YulFunctionCall","src":"25028:17:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25022:5:103"},"nodeType":"YulFunctionCall","src":"25022:24:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"24993:6:103"},"nodeType":"YulFunctionCall","src":"24993:54:103"},"nodeType":"YulExpressionStatement","src":"24993:54:103"},{"nodeType":"YulVariableDeclaration","src":"25056:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"25066:6:103","type":"","value":"0x0100"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"25060:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25092:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"25103:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25088:3:103"},"nodeType":"YulFunctionCall","src":"25088:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25118:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"25126:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25114:3:103"},"nodeType":"YulFunctionCall","src":"25114:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25108:5:103"},"nodeType":"YulFunctionCall","src":"25108:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25081:6:103"},"nodeType":"YulFunctionCall","src":"25081:50:103"},"nodeType":"YulExpressionStatement","src":"25081:50:103"},{"nodeType":"YulVariableDeclaration","src":"25140:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"25150:6:103","type":"","value":"0x0120"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"25144:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25176:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"25187:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25172:3:103"},"nodeType":"YulFunctionCall","src":"25172:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25202:6:103"},{"name":"_2","nodeType":"YulIdentifier","src":"25210:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25198:3:103"},"nodeType":"YulFunctionCall","src":"25198:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25192:5:103"},"nodeType":"YulFunctionCall","src":"25192:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25165:6:103"},"nodeType":"YulFunctionCall","src":"25165:50:103"},"nodeType":"YulExpressionStatement","src":"25165:50:103"},{"nodeType":"YulVariableDeclaration","src":"25224:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"25234:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"25228:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25260:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"25271:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25256:3:103"},"nodeType":"YulFunctionCall","src":"25256:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"25286:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"25294:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25282:3:103"},"nodeType":"YulFunctionCall","src":"25282:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25276:5:103"},"nodeType":"YulFunctionCall","src":"25276:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25249:6:103"},"nodeType":"YulFunctionCall","src":"25249:50:103"},"nodeType":"YulExpressionStatement","src":"25249:50:103"}]},"name":"abi_encode_tuple_t_struct$_Pool_$5502_memory_ptr__to_t_struct$_Pool_$5502_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"24387:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"24398:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"24409:4:103","type":""}],"src":"24273:1032:103"},{"body":{"nodeType":"YulBlock","src":"25411:76:103","statements":[{"nodeType":"YulAssignment","src":"25421:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25444:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25429:3:103"},"nodeType":"YulFunctionCall","src":"25429:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25421:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25463:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"25474:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25456:6:103"},"nodeType":"YulFunctionCall","src":"25456:25:103"},"nodeType":"YulExpressionStatement","src":"25456:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25380:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25391:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25402:4:103","type":""}],"src":"25310:177:103"},{"body":{"nodeType":"YulBlock","src":"25621:119:103","statements":[{"nodeType":"YulAssignment","src":"25631:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25654:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25639:3:103"},"nodeType":"YulFunctionCall","src":"25639:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"25631:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25673:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"25684:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25666:6:103"},"nodeType":"YulFunctionCall","src":"25666:25:103"},"nodeType":"YulExpressionStatement","src":"25666:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"25711:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"25722:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25707:3:103"},"nodeType":"YulFunctionCall","src":"25707:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"25727:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25700:6:103"},"nodeType":"YulFunctionCall","src":"25700:34:103"},"nodeType":"YulExpressionStatement","src":"25700:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"25582:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"25593:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"25601:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"25612:4:103","type":""}],"src":"25492:248:103"},{"body":{"nodeType":"YulBlock","src":"25790:230:103","statements":[{"nodeType":"YulAssignment","src":"25800:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25816:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"25810:5:103"},"nodeType":"YulFunctionCall","src":"25810:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"25800:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"25828:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"25850:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"25866:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"25872:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25862:3:103"},"nodeType":"YulFunctionCall","src":"25862:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25881:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"25877:3:103"},"nodeType":"YulFunctionCall","src":"25877:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"25858:3:103"},"nodeType":"YulFunctionCall","src":"25858:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"25846:3:103"},"nodeType":"YulFunctionCall","src":"25846:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"25832:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"25961:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"25963:16:103"},"nodeType":"YulFunctionCall","src":"25963:18:103"},"nodeType":"YulExpressionStatement","src":"25963:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"25904:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"25916:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"25901:2:103"},"nodeType":"YulFunctionCall","src":"25901:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"25940:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"25952:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"25937:2:103"},"nodeType":"YulFunctionCall","src":"25937:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"25898:2:103"},"nodeType":"YulFunctionCall","src":"25898:62:103"},"nodeType":"YulIf","src":"25895:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"25999:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"26003:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"25992:6:103"},"nodeType":"YulFunctionCall","src":"25992:22:103"},"nodeType":"YulExpressionStatement","src":"25992:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"25770:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"25779:6:103","type":""}],"src":"25745:275:103"},{"body":{"nodeType":"YulBlock","src":"26074:179:103","statements":[{"body":{"nodeType":"YulBlock","src":"26104:117:103","statements":[{"expression":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"26125:4:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26135:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"26140:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26131:3:103"},"nodeType":"YulFunctionCall","src":"26131:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26118:6:103"},"nodeType":"YulFunctionCall","src":"26118:34:103"},"nodeType":"YulExpressionStatement","src":"26118:34:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26172:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"26175:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26165:6:103"},"nodeType":"YulFunctionCall","src":"26165:15:103"},"nodeType":"YulExpressionStatement","src":"26165:15:103"},{"expression":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"26200:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"26206:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"26193:6:103"},"nodeType":"YulFunctionCall","src":"26193:18:103"},"nodeType":"YulExpressionStatement","src":"26193:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26090:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"26093:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26087:2:103"},"nodeType":"YulFunctionCall","src":"26087:8:103"},"nodeType":"YulIf","src":"26084:2:103"},{"nodeType":"YulAssignment","src":"26230:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"26242:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"26245:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"26238:3:103"},"nodeType":"YulFunctionCall","src":"26238:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"26230:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"26056:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"26059:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"26065:4:103","type":""}],"src":"26025:228:103"},{"body":{"nodeType":"YulBlock","src":"26311:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"26321:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"26330:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"26325:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"26390:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"26415:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"26420:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26411:3:103"},"nodeType":"YulFunctionCall","src":"26411:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"26434:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"26439:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26430:3:103"},"nodeType":"YulFunctionCall","src":"26430:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"26424:5:103"},"nodeType":"YulFunctionCall","src":"26424:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26404:6:103"},"nodeType":"YulFunctionCall","src":"26404:39:103"},"nodeType":"YulExpressionStatement","src":"26404:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26351:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"26354:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26348:2:103"},"nodeType":"YulFunctionCall","src":"26348:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"26362:19:103","statements":[{"nodeType":"YulAssignment","src":"26364:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26373:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"26376:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26369:3:103"},"nodeType":"YulFunctionCall","src":"26369:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"26364:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"26344:3:103","statements":[]},"src":"26340:113:103"},{"body":{"nodeType":"YulBlock","src":"26479:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"26492:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"26497:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"26488:3:103"},"nodeType":"YulFunctionCall","src":"26488:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"26506:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26481:6:103"},"nodeType":"YulFunctionCall","src":"26481:27:103"},"nodeType":"YulExpressionStatement","src":"26481:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"26468:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"26471:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"26465:2:103"},"nodeType":"YulFunctionCall","src":"26465:13:103"},"nodeType":"YulIf","src":"26462:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"26289:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"26294:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"26299:6:103","type":""}],"src":"26258:258:103"},{"body":{"nodeType":"YulBlock","src":"26576:325:103","statements":[{"nodeType":"YulAssignment","src":"26586:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"26600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"26606:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"26596:3:103"},"nodeType":"YulFunctionCall","src":"26596:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"26586:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"26617:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"26647:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"26653:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26643:3:103"},"nodeType":"YulFunctionCall","src":"26643:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"26621:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"26694:31:103","statements":[{"nodeType":"YulAssignment","src":"26696:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"26710:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"26718:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"26706:3:103"},"nodeType":"YulFunctionCall","src":"26706:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"26696:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"26674:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"26667:6:103"},"nodeType":"YulFunctionCall","src":"26667:26:103"},"nodeType":"YulIf","src":"26664:2:103"},{"body":{"nodeType":"YulBlock","src":"26784:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26805:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26812:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"26817:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26808:3:103"},"nodeType":"YulFunctionCall","src":"26808:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26798:6:103"},"nodeType":"YulFunctionCall","src":"26798:31:103"},"nodeType":"YulExpressionStatement","src":"26798:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26849:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"26852:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26842:6:103"},"nodeType":"YulFunctionCall","src":"26842:15:103"},"nodeType":"YulExpressionStatement","src":"26842:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26877:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"26880:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"26870:6:103"},"nodeType":"YulFunctionCall","src":"26870:15:103"},"nodeType":"YulExpressionStatement","src":"26870:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"26740:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"26763:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"26771:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"26760:2:103"},"nodeType":"YulFunctionCall","src":"26760:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"26737:2:103"},"nodeType":"YulFunctionCall","src":"26737:38:103"},"nodeType":"YulIf","src":"26734:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"26556:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"26565:6:103","type":""}],"src":"26521:380:103"},{"body":{"nodeType":"YulBlock","src":"26938:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26955:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26962:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"26967:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"26958:3:103"},"nodeType":"YulFunctionCall","src":"26958:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26948:6:103"},"nodeType":"YulFunctionCall","src":"26948:31:103"},"nodeType":"YulExpressionStatement","src":"26948:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"26995:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"26998:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"26988:6:103"},"nodeType":"YulFunctionCall","src":"26988:15:103"},"nodeType":"YulExpressionStatement","src":"26988:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27019:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27022:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27012:6:103"},"nodeType":"YulFunctionCall","src":"27012:15:103"},"nodeType":"YulExpressionStatement","src":"27012:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"26906:127:103"},{"body":{"nodeType":"YulBlock","src":"27070:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27087:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27094:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"27099:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27090:3:103"},"nodeType":"YulFunctionCall","src":"27090:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27080:6:103"},"nodeType":"YulFunctionCall","src":"27080:31:103"},"nodeType":"YulExpressionStatement","src":"27080:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27127:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"27130:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"27120:6:103"},"nodeType":"YulFunctionCall","src":"27120:15:103"},"nodeType":"YulExpressionStatement","src":"27120:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27151:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27154:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27144:6:103"},"nodeType":"YulFunctionCall","src":"27144:15:103"},"nodeType":"YulExpressionStatement","src":"27144:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"27038:127:103"},{"body":{"nodeType":"YulBlock","src":"27229:62:103","statements":[{"body":{"nodeType":"YulBlock","src":"27263:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"27265:16:103"},"nodeType":"YulFunctionCall","src":"27265:18:103"},"nodeType":"YulExpressionStatement","src":"27265:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27252:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"27259:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27249:2:103"},"nodeType":"YulFunctionCall","src":"27249:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27242:6:103"},"nodeType":"YulFunctionCall","src":"27242:20:103"},"nodeType":"YulIf","src":"27239:2:103"}]},"name":"validator_assert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27218:5:103","type":""}],"src":"27170:121:103"},{"body":{"nodeType":"YulBlock","src":"27352:62:103","statements":[{"body":{"nodeType":"YulBlock","src":"27386:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"27388:16:103"},"nodeType":"YulFunctionCall","src":"27388:18:103"},"nodeType":"YulExpressionStatement","src":"27388:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27375:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"27382:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27372:2:103"},"nodeType":"YulFunctionCall","src":"27372:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27365:6:103"},"nodeType":"YulFunctionCall","src":"27365:20:103"},"nodeType":"YulIf","src":"27362:2:103"}]},"name":"validator_assert_enum_ComponentType","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27341:5:103","type":""}],"src":"27296:118:103"},{"body":{"nodeType":"YulBlock","src":"27464:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"27528:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27537:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27540:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27530:6:103"},"nodeType":"YulFunctionCall","src":"27530:12:103"},"nodeType":"YulExpressionStatement","src":"27530:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27487:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27498:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27513:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"27518:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"27509:3:103"},"nodeType":"YulFunctionCall","src":"27509:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"27522:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"27505:3:103"},"nodeType":"YulFunctionCall","src":"27505:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"27494:3:103"},"nodeType":"YulFunctionCall","src":"27494:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"27484:2:103"},"nodeType":"YulFunctionCall","src":"27484:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27477:6:103"},"nodeType":"YulFunctionCall","src":"27477:50:103"},"nodeType":"YulIf","src":"27474:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27453:5:103","type":""}],"src":"27419:131:103"},{"body":{"nodeType":"YulBlock","src":"27614:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"27648:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27657:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27660:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27650:6:103"},"nodeType":"YulFunctionCall","src":"27650:12:103"},"nodeType":"YulExpressionStatement","src":"27650:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27637:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"27644:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27634:2:103"},"nodeType":"YulFunctionCall","src":"27634:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27627:6:103"},"nodeType":"YulFunctionCall","src":"27627:20:103"},"nodeType":"YulIf","src":"27624:2:103"}]},"name":"validator_revert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27603:5:103","type":""}],"src":"27555:115:103"},{"body":{"nodeType":"YulBlock","src":"27731:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"27765:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"27774:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"27777:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"27767:6:103"},"nodeType":"YulFunctionCall","src":"27767:12:103"},"nodeType":"YulExpressionStatement","src":"27767:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"27754:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"27761:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"27751:2:103"},"nodeType":"YulFunctionCall","src":"27751:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"27744:6:103"},"nodeType":"YulFunctionCall","src":"27744:20:103"},"nodeType":"YulIf","src":"27741:2:103"}]},"name":"validator_revert_enum_ComponentType","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"27720:5:103","type":""}],"src":"27675:112:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_address(value)\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_ApplicationState_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_enum_ApplicationState(value)\n }\n function abi_decode_enum_ComponentType_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_enum_ComponentType(value)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_contract$_BundleToken_$28751_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_contract$_IComponent_$2988_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_contract$_IERC20_$8831_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_enum_ComponentType(value)\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_ApplicationState_fromMemory(add(_2, 96)))\n let offset_1 := mload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), mload(add(_2, 160)))\n mstore(add(value, 192), mload(add(_2, 192)))\n mstore(add(value, 224), mload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), mload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), mload(add(_2, _5)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_ComponentType_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Payout_$5310_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n mstore(value, mload(_2))\n let value_1 := mload(add(_2, 32))\n if iszero(lt(value_1, 2)) { revert(value0, value0) }\n mstore(add(value, 32), value_1)\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_ComponentType_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Pool_$5502_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 352\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, mload(headStart))\n mstore(add(value, 32), abi_decode_address_fromMemory(add(headStart, 32)))\n mstore(add(value, 64), abi_decode_address_fromMemory(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n let _3 := 288\n mstore(add(value, _3), mload(add(headStart, _3)))\n let _4 := 320\n mstore(add(value, _4), mload(add(headStart, _4)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_address(value, pos)\n {\n mstore(pos, and(value, sub(shl(160, 1), 1)))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_BundleState(value, pos)\n {\n validator_assert_enum_ApplicationState(value)\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_uint256_t_address__to_t_uint256_t_address__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), and(shl(96, value1), not(0xffffffffffffffffffffffff)))\n end := add(pos, 52)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_IBundleToken_$6825__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IComponentOwnerService_$6009__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IComponent_$2988__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IERC20_$8831__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IInstanceOperatorService_$6160__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IOracleService_$6519__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IProductService_$6664__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IRiskpoolService_$6770__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n validator_assert_enum_ComponentType(value0)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3538b2b40dc1579a3c1803dfe60abab88e636a7c9369729bbd4ce7b793360801__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:IS-002:IMPLEMENATION_MISSI\")\n mstore(add(headStart, 96), \"NG\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9f10dbd7637aa20fb8b54a4dbdfe5499f4b0287e8df0e24d98f28636def7ca3d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:IS-001:IMPLEMENATION_MISSI\")\n mstore(add(headStart, 96), \"NG\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_Application_$5262_memory_ptr__to_t_struct$_Application_$5262_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let _1 := mload(value0)\n validator_assert_enum_ApplicationState(_1)\n mstore(add(headStart, 32), _1)\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n abi_encode_enum_BundleState(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 128))\n let _1 := 0x0140\n mstore(add(headStart, 160), _1)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 352))\n mstore(add(headStart, 192), mload(add(value0, 160)))\n mstore(add(headStart, 224), mload(add(value0, 192)))\n let _2 := mload(add(value0, 224))\n let _3 := 256\n mstore(add(headStart, _3), _2)\n let _4 := mload(add(value0, _3))\n let _5 := 288\n mstore(add(headStart, _5), _4)\n mstore(add(headStart, _1), mload(add(value0, _5)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Claim_$5296_memory_ptr__to_t_struct$_Claim_$5296_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let _1 := mload(value0)\n validator_assert_enum_ApplicationState(_1)\n mstore(add(headStart, 32), _1)\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Metadata_$5248_memory_ptr__to_t_struct$_Metadata_$5248_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), and(mload(value0), sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n let memberValue0 := mload(add(value0, 64))\n validator_assert_enum_ComponentType(memberValue0)\n mstore(add(headStart, 96), memberValue0)\n let memberValue0_1 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Payout_$5310_memory_ptr__to_t_struct$_Payout_$5310_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n let memberValue0 := mload(add(value0, 32))\n if iszero(lt(memberValue0, 2)) { panic_error_0x21() }\n mstore(add(headStart, 64), memberValue0)\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0_1 := mload(add(value0, 96))\n mstore(add(headStart, 128), 0xc0)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 224))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n mstore(add(headStart, 0xc0), mload(add(value0, 160)))\n tail := tail_1\n }\n function abi_encode_tuple_t_struct$_Policy_$5282_memory_ptr__to_t_struct$_Policy_$5282_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 288)\n let _1 := mload(value0)\n validator_assert_enum_ComponentType(_1)\n mstore(headStart, _1)\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n let _2 := 0x0100\n mstore(add(headStart, _2), mload(add(value0, _2)))\n }\n function abi_encode_tuple_t_struct$_Pool_$5502_memory_ptr__to_t_struct$_Pool_$5502_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 352)\n mstore(headStart, mload(value0))\n let memberValue0 := mload(add(value0, 0x20))\n abi_encode_address(memberValue0, add(headStart, 0x20))\n let memberValue0_1 := mload(add(value0, 0x40))\n abi_encode_address(memberValue0_1, add(headStart, 0x40))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n mstore(add(headStart, 0xa0), mload(add(value0, 0xa0)))\n mstore(add(headStart, 0xc0), mload(add(value0, 0xc0)))\n mstore(add(headStart, 0xe0), mload(add(value0, 0xe0)))\n let _1 := 0x0100\n mstore(add(headStart, _1), mload(add(value0, _1)))\n let _2 := 0x0120\n mstore(add(headStart, _2), mload(add(value0, _2)))\n let _3 := 0x0140\n mstore(add(headStart, _3), mload(add(value0, _3)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y)\n {\n mstore(diff, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(diff, 0x24)\n }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_assert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { panic_error_0x21() }\n }\n function validator_assert_enum_ComponentType(value)\n {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n function validator_revert_enum_ComponentType(value)\n {\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106103e65760003560e01c80637f22c2d91161020a578063c4d66de811610125578063e543ecb9116100b8578063ec833b0c11610087578063ec833b0c14610894578063eff0f592146108a7578063f1d354d0146108ba578063f6b3e7d0146108c2578063ff3f3883146108d5576103e6565b8063e543ecb91461083b578063e882892214610854578063eb35783c1461086c578063eb80211414610874576103e6565b8063d49d21c0116100f4578063d49d21c0146107fa578063d722b0bc14610802578063dd51c86a1461080a578063e00246041461082a576103e6565b8063c4d66de8146107aa578063c559783e146107bf578063c71e261f146107d2578063cef58f13146107da576103e6565b8063a44330c41161019d578063ab9c6ee41161016c578063ab9c6ee41461075e578063aeddb90514610771578063bc506f6414610784578063bcd5349f14610797576103e6565b8063a44330c41461071b578063a5961b4c14610723578063a5c0f5a114610743578063a7ecda3614610756576103e6565b8063a3f66bd2116101d9578063a3f66bd2146106bf578063a3f685f9146106e0578063a4266a6614610700578063a427056e14610713576103e6565b80637f22c2d91461066157806391d14854146106815780639f77a605146106a4578063a054381f146106b7576103e6565b80633ffdd2f31161030557806352b5b0ef116102985780636319112b116102675780636319112b1461062e5780636c0f79b6146106365780636fa298531461063e578063775a4048146106465780637db328441461064e576103e6565b806352b5b0ef146105c75780635ab1bd53146105e65780635e6877be146105fe5780635e966e451461060e576103e6565b80634f27da18116102d45780634f27da181461058757806350e1a19b1461059a57806351b2fb90146105ac57806352a9c8d7146105bf576103e6565b80633ffdd2f31461055c5780634288121d14610564578063442ed8171461056c5780634908163714610574576103e6565b80632898312f1161037d5780633408e4701161034c5780633408e4701461051b57806339c6fa90146105215780633a42b053146105295780633f5d923514610549576103e6565b80632898312f146104be57806329560980146104d55780632b1c7f73146104e85780632d0821b7146104fb576103e6565b806318442e63116103b957806318442e631461048b57806318ff21c3146104935780631e010439146104a35780632857373a146104b6576103e6565b8063038696bb146103eb578063091924dc1461041b5780630c131757146104235780631551100f1461043f575b600080fd5b6103fe6103f93660046125e1565b6108e8565b6040516001600160a01b0390911681526020015b60405180910390f35b6103fe61096e565b61043163141bdbdb60e21b81565b604051908152602001610412565b61043160008054604080514660208201526201000090920460601b6bffffffffffffffffffffffff19169082015260540160405160208183030381529060405280519060200120905090565b610431610998565b61043165506f6c69637960d01b81565b6104316104b13660046125e1565b610a15565b610431610a9e565b6104316c4f7261636c655365727669636560981b81565b6104316104e33660046125e1565b610ae3565b6104316104f6366004612589565b610b6b565b61050e6105093660046125e1565b610bea565b6040516104129190612b14565b46610431565b6103fe610c72565b61053c6105373660046125e1565b610d11565b6040516104129190612a75565b6104316105573660046125e1565b610d6c565b610431610df4565b6103fe610e39565b6103fe610e55565b6103fe6105823660046125e1565b610e72565b6103fe6105953660046125e1565b610ea4565b61043167547265617375727960c01b81565b6104316810dbdb5c1bdb995b9d60ba1b81565b610431610ed6565b61043174436f6d706f6e656e744f776e65725365727669636560581b81565b6103fe6000546201000090046001600160a01b031690565b6104316542756e646c6560d01b81565b61062161061c3660046125e1565b610f1b565b6040516104129190612a88565b610431610f98565b610431610fdd565b6103fe61102c565b61043161104f565b61043161065c3660046125e1565b611094565b61067461066f366004612640565b6110c6565b6040516104129190612aaf565b61069461068f366004612611565b61118c565b6040519015158152602001610412565b6104316106b23660046125e1565b611211565b610431611243565b61043176496e7374616e63654f70657261746f725365727669636560481b81565b6106f36106ee3660046125e1565b611288565b6040516104129190612c44565b61043161070e3660046125e1565b611353565b610431611385565b6103fe6113d5565b6107366107313660046125e1565b611452565b6040516104129190612bab565b6104316107513660046125e1565b611509565b6103fe61153b565b61053c61076c3660046125e1565b611556565b61043161077f3660046125e1565b6115ac565b6106746107923660046125e1565b6115e0565b6104316107a53660046125e1565b611698565b6107bd6107b8366004612589565b611730565b005b6104316107cd3660046125e1565b6118ae565b6104316118e0565b6107ed6107e8366004612640565b611925565b6040516104129190612bf8565b6104316119e4565b61053c611a29565b61081d6108183660046125e1565b611aca565b6040516104129190612aa2565b6006546001600160a01b03166103fe565b6104316e5269736b706f6f6c5365727669636560881b81565b6104316d50726f647563745365727669636560901b81565b6103fe611b47565b6108876108823660046125e1565b611bd6565b6040516104129190612cb1565b6104316108a2366004612640565b611cc2565b6104316108b53660046125e1565b611d46565b610431611d7a565b6104316108d03660046125e1565b611dbf565b6104316108e33660046125e1565b611df6565b60065460405163038696bb60e01b8152600481018390526000916001600160a01b03169063038696bb906024015b60206040518083038186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125a5565b90505b919050565b600061099376496e7374616e63654f70657261746f725365727669636560481b611e2b565b905090565b600254604080516318442e6360e01b815290516000926001600160a01b0316916318442e63916004808301926020929190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125f9565b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610a5b57600080fd5b505afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a939190612998565b610100015192915050565b6003546040805163142b9b9d60e11b815290516000926001600160a01b031691632857373a916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610b2957600080fd5b505afa158015610b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b619190612998565b60c0015192915050565b600354604051632b1c7f7360e01b81526001600160a01b0383811660048301526000921690632b1c7f73906024015b60206040518083038186803b158015610bb257600080fd5b505afa158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125f9565b610bf26123f3565b600254604051632d0821b760e01b8152600481018490526001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3657600080fd5b505afa158015610c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109669190810190612747565b600080610c9876496e7374616e63654f70657261746f725365727669636560481b611e2b565b9050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd357600080fd5b505afa158015610ce7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0b91906125a5565b91505090565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030323a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b60648201526060906084015b60405180910390fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610db257600080fd5b505afa158015610dc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dea9190612998565b60e0015192915050565b60015460408051633ffdd2f360e01b815290516000926001600160a01b031691633ffdd2f3916004808301926020929190829003018186803b1580156109dd57600080fd5b60006109936d50726f647563745365727669636560901b611e2b565b60006109936e5269736b706f6f6c5365727669636560881b611e2b565b600654604051634908163760e01b8152600481018390526000916001600160a01b031690634908163790602401610916565b6003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da1890602401610916565b600154604080516352a9c8d760e01b815290516000926001600160a01b0316916352a9c8d7916004808301926020929190829003018186803b1580156109dd57600080fd5b600354604051635e966e4560e01b8152600481018390526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610f6057600080fd5b505afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612661565b60065460408051634667ae5160e11b815290516000926001600160a01b031691638ccf5ca2916004808301926020929190829003018186803b1580156109dd57600080fd5b60008060029054906101000a90046001600160a01b03166001600160a01b0316636c0f79b66040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b600061099374436f6d706f6e656e744f776e65725365727669636560581b611e2b565b60015460408051630eeb480960e31b815290516000926001600160a01b03169163775a4048916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051631f6cca1160e21b8152600481018390526000916001600160a01b031690637db3284490602401610b9a565b6111006040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051637f22c2d960e01b8152918201859052602482018490526001600160a01b031690637f22c2d99060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611185919081019061269c565b9392505050565b600154604051632474521560e21b8152600481018490526001600160a01b03838116602483015260009216906391d148549060440160206040518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125c1565b600354604051639f77a60560e01b8152600481018390526000916001600160a01b031690639f77a60590602401610b9a565b6003546040805163a054381f60e01b815290516000926001600160a01b03169163a054381f916004808301926020929190829003018186803b1580156109dd57600080fd5b6112d8604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6004805460405163a3f685f960e01b81529182018490526001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612913565b600554604051635213353360e11b8152600481018390526000916001600160a01b03169063a4266a6690602401610b9a565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663a427056e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b60065460408051632910cc3160e21b815290516000926001600160a01b03169163a44330c4916004808301926020929190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125a5565b61148b6040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b6004805460405163296586d360e21b81529182018490526001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061281b565b60035460405163a5c0f5a160e01b8152600481018390526000916001600160a01b03169063a5c0f5a190602401610b9a565b60006109936c4f7261636c655365727669636560981b611e2b565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030313a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b6064820152606090608401610d63565b6004805460405163be183b1160e01b81529182018390526000916001600160a01b039091169063be183b1190602401610b9a565b61161a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051632f141bd960e21b81529182018490526001600160a01b03169063bc506f649060240160006040518083038186803b15801561165c57600080fd5b505afa158015611670573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061269c565b600554604051633ae0084560e21b81526004810183905260009182916001600160a01b039091169063eb802114906024016101606040518083038186803b1580156116e257600080fd5b505afa1580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a9190612998565b90508060e001518160c001516111859190612d7e565b600054610100900460ff16158080156117505750600054600160ff909116105b8061176a5750303b15801561176a575060005460ff166001145b6117cd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d63565b6000805460ff1916600117905580156117f0576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561181a600090565b6541636365737360d01b1461185c5761183b6541636365737360d01b611e2b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611864611f13565b80156118aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516362acbc1f60e11b8152600481018390526000916001600160a01b03169063c559783e90602401610b9a565b6003546040805163c71e261f60e01b815290516000926001600160a01b03169163c71e261f916004808301926020929190829003018186803b1580156109dd57600080fd5b61195f6040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6004805460405163cef58f1360e01b8152918201859052602482018490526001600160a01b03169063cef58f139060440160006040518083038186803b1580156119a857600080fd5b505afa1580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111859190810190612899565b60015460408051630352748760e61b815290516000926001600160a01b03169163d49d21c0916004808301926020929190829003018186803b1580156109dd57600080fd5b466000908152600760205260409020805460609190611a4790612dd1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7390612dd1565b8015611ac05780601f10611a9557610100808354040283529160200191611ac0565b820191906000526020600020905b815481529060010190602001808311611aa357829003601f168201915b5050505050905090565b600354604051636ea8e43560e11b8152600481018390526000916001600160a01b03169063dd51c86a9060240160206040518083038186803b158015611b0f57600080fd5b505afa158015611b23573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612680565b600080600260009054906101000a90046001600160a01b03166001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906125a5565b92915050565b611c456040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600554604051633ae0084560e21b8152600481018490526001600160a01b039091169063eb802114906024016101606040518083038186803b158015611c8a57600080fd5b505afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612998565b600554604051633b20cec360e21b815260048101849052602481018390526000916001600160a01b03169063ec833b0c9060440160206040518083038186803b158015611d0e57600080fd5b505afa158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125f9565b6004805460405163163c4b3160e31b81529182018390526000916001600160a01b039091169063b1e2598890602401610b9a565b60055460408051630f1d354d60e41b815290516000926001600160a01b03169163f1d354d0916004808301926020929190829003018186803b1580156109dd57600080fd5b60008054604051630f6b3e7d60e41b815260048101849052620100009091046001600160a01b03169063f6b3e7d090602401610b9a565b600354604051600162c0c77d60e01b03198152600481018390526000916001600160a01b03169063ff3f388390602401610b9a565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611e7557600080fd5b505afa158015611e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ead91906125a5565b90506001600160a01b0381166109695760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610d63565b600054610100900460ff16611f7e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610d63565b611f906542756e646c6560d01b611e2b565b600280546001600160a01b0319166001600160a01b0392909216919091179055611fc56810dbdb5c1bdb995b9d60ba1b611e2b565b600380546001600160a01b0319166001600160a01b0392909216919091179055611ff765506f6c69637960d01b611e2b565b600480546001600160a01b0319166001600160a01b039290921691909117905561202763141bdbdb60e21b611e2b565b600580546001600160a01b0319166001600160a01b039290921691909117905561205b67547265617375727960c01b611e2b565b600680546001600160a01b0319166001600160a01b0392909216919091179055612083612085565b565b60408051808201909152601481527308ae8d0cae4caeada409ac2d2dcdccae85e8aa8960631b602080830191825260016000526007905290516120e9917fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82891612465565b5060408051808201909152600a81526908edecae4d8d25e8aa8960b31b60208083019182526005600052600790529051612144917fbcdda56b5d08466ec462cbbe0adfa57cb0a15fcc8940ef68f702f21b787bc93591612465565b506040805180820190915260078082526647616e6163686560c81b602080840191825261053960005291909152905161219e917f96a76633116ac3161b66b4be70f114c9a245f4bbf414dc7a4d0edce8c01734cf91612465565b5060408051808201909152600b81526a476e6f7369732f7844616960a81b602080830191825260646000526007905290516121fa917f06179e496907eb3333fef2ed2194553681badbb6d717316349bf33d21ec47e1291612465565b5060408051808201909152600a815269536f6b6f6c2f53504f4160b01b6020808301918252604d600052600790529051612255917f58f3d94c4a880e721e755344405d3fe6076875bf5b3ad388d0a326a85bcabfb591612465565b50604080518082019091526015815274506f6c79676f6e204d61696e6e65742f4d4154494360581b602080830191825260896000526007905290516122bb917f65420a8d28339aeca441a0c94a464f6387b468f3f5ea5c247a6df59a5f7b886691612465565b5060408051808201909152600c81526b4d756d6261692f4d4154494360a01b6020808301918252611f41600052600790529051612319917f4d67172c71df6b75e948764b65521db84c0c61e94d5f3739b666417e9471e58491612465565b50604080518082019091526016815275082ecc2d8c2dcc6d0ca40865a86d0c2d2dc5e82ac82b60531b602080830191825261a86a600052600790529051612381917fa4356065248d86930c73e944e85f9d029fb0f52c0b8312d1a61bfbc9797ef51491612465565b5060408051808201909152601b81527f4176616c616e6368652046756a6920546573746e65742f415641580000000000602080830191825261a8696000526007905290516123f0917f57a00da22bfc0a372532b5dfacb7ddf387626f66de87422d191e09ea7493495691612465565b50565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561243557634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461247190612dd1565b90600052602060002090601f01602090048101928261249357600085556124d9565b82601f106124ac57805160ff19168380011785556124d9565b828001600101855582156124d9579182015b828111156124d95782518255916020019190600101906124be565b506124e59291506124e9565b5090565b5b808211156124e557600081556001016124ea565b805161096981612e58565b600082601f830112612519578081fd5b815167ffffffffffffffff81111561253357612533612e22565b612546601f8201601f1916602001612d4d565b81815284602083860101111561255a578283fd5b61256b826020830160208701612da1565b949350505050565b805161096981612e6d565b805161096981612e7a565b60006020828403121561259a578081fd5b813561118581612e58565b6000602082840312156125b6578081fd5b815161118581612e58565b6000602082840312156125d2578081fd5b81518015158114611185578182fd5b6000602082840312156125f2578081fd5b5035919050565b60006020828403121561260a578081fd5b5051919050565b60008060408385031215612623578081fd5b82359150602083013561263581612e58565b809150509250929050565b60008060408385031215612652578182fd5b50508035926020909101359150565b600060208284031215612672578081fd5b815160078110611185578182fd5b600060208284031215612691578081fd5b815161118581612e7a565b6000602082840312156126ad578081fd5b815167ffffffffffffffff808211156126c4578283fd5b9083019060c082860312156126d7578283fd5b6126e160c0612d4d565b82516126ec81612e6d565b808252506020830151602082015260408301516040820152606083015182811115612715578485fd5b61272187828601612509565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612758578081fd5b815167ffffffffffffffff8082111561276f578283fd5b8184019150610140808387031215612785578384fd5b61278e81612d4d565b90508251815260208301516020820152604083015160408201526127b460608401612573565b60608201526080830151828111156127ca578485fd5b6127d687828601612509565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60006020828403121561282c578081fd5b815167ffffffffffffffff80821115612843578283fd5b9083019060c08286031215612856578283fd5b61286060c0612d4d565b825161286b81612e58565b8152602083810151908201526128836040840161257e565b6040820152606083015182811115612715578485fd5b6000602082840312156128aa578081fd5b815167ffffffffffffffff808211156128c1578283fd5b9083019060c082860312156128d4578283fd5b6128de60c0612d4d565b825181526020830151600281106128f3578485fd5b602082015260408381015190820152606083015182811115612715578485fd5b6000610120808385031215612926578182fd5b61292f81612d4d565b905061293a8361257e565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006101608083850312156129ab578182fd5b6129b481612d4d565b9050825181526129c6602084016124fe565b60208201526129d7604084016124fe565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152508091505092915050565b60008151808452612a54816020860160208601612da1565b601f01601f19169290920160200192915050565b612a7181612e38565b9052565b6000602082526111856020830184612a3c565b6020810160078310612a9c57612a9c612e0c565b91905290565b60208101612a9c83612e48565b6000602082528251612ac081612e38565b806020840152506020830151604083015260408301516060830152606083015160c06080840152612af460e0840182612a3c565b9050608084015160a084015260a084015160c08401528091505092915050565b6000602082528251602083015260208301516040830152604083015160608301526060830151612b476080840182612a68565b5060808301516101408060a0850152612b64610160850183612a3c565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b60006020825260018060a01b038351166020830152602083015160408301526040830151612bd881612e48565b80606084015250606083015160c06080840152612af460e0840182612a3c565b60006020825282516020830152602083015160028110612c1a57612c1a612e0c565b8060408401525060408301516060830152606083015160c06080840152612af460e0840182612a3c565b8151610120820190612c5581612e48565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b81518152602080830151610160830191612cd5908401826001600160a01b03169052565b506040830151612cf060408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7657612d76612e22565b604052919050565b600082821015612d9c57634e487b7160e01b81526011600452602481fd5b500390565b60005b83811015612dbc578181015183820152602001612da4565b83811115612dcb576000848401525b50505050565b600281046001821680612de557607f821691505b60208210811415612e0657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600481106123f0576123f0612e0c565b600381106123f0576123f0612e0c565b6001600160a01b03811681146123f057600080fd5b600481106123f057600080fd5b600381106123f057600080fdfea26469706673582212208baa8d3664a94bfb7869664ce5bc59b2293ec35862ba4906c74e8d5f75cdd5f464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3E6 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F22C2D9 GT PUSH2 0x20A JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x125 JUMPI DUP1 PUSH4 0xE543ECB9 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xEC833B0C GT PUSH2 0x87 JUMPI DUP1 PUSH4 0xEC833B0C EQ PUSH2 0x894 JUMPI DUP1 PUSH4 0xEFF0F592 EQ PUSH2 0x8A7 JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x8BA JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x8C2 JUMPI DUP1 PUSH4 0xFF3F3883 EQ PUSH2 0x8D5 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xE543ECB9 EQ PUSH2 0x83B JUMPI DUP1 PUSH4 0xE8828922 EQ PUSH2 0x854 JUMPI DUP1 PUSH4 0xEB35783C EQ PUSH2 0x86C JUMPI DUP1 PUSH4 0xEB802114 EQ PUSH2 0x874 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xD49D21C0 GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0xD49D21C0 EQ PUSH2 0x7FA JUMPI DUP1 PUSH4 0xD722B0BC EQ PUSH2 0x802 JUMPI DUP1 PUSH4 0xDD51C86A EQ PUSH2 0x80A JUMPI DUP1 PUSH4 0xE0024604 EQ PUSH2 0x82A JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x7AA JUMPI DUP1 PUSH4 0xC559783E EQ PUSH2 0x7BF JUMPI DUP1 PUSH4 0xC71E261F EQ PUSH2 0x7D2 JUMPI DUP1 PUSH4 0xCEF58F13 EQ PUSH2 0x7DA JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA44330C4 GT PUSH2 0x19D JUMPI DUP1 PUSH4 0xAB9C6EE4 GT PUSH2 0x16C JUMPI DUP1 PUSH4 0xAB9C6EE4 EQ PUSH2 0x75E JUMPI DUP1 PUSH4 0xAEDDB905 EQ PUSH2 0x771 JUMPI DUP1 PUSH4 0xBC506F64 EQ PUSH2 0x784 JUMPI DUP1 PUSH4 0xBCD5349F EQ PUSH2 0x797 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA44330C4 EQ PUSH2 0x71B JUMPI DUP1 PUSH4 0xA5961B4C EQ PUSH2 0x723 JUMPI DUP1 PUSH4 0xA5C0F5A1 EQ PUSH2 0x743 JUMPI DUP1 PUSH4 0xA7ECDA36 EQ PUSH2 0x756 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0xA3F66BD2 GT PUSH2 0x1D9 JUMPI DUP1 PUSH4 0xA3F66BD2 EQ PUSH2 0x6BF JUMPI DUP1 PUSH4 0xA3F685F9 EQ PUSH2 0x6E0 JUMPI DUP1 PUSH4 0xA4266A66 EQ PUSH2 0x700 JUMPI DUP1 PUSH4 0xA427056E EQ PUSH2 0x713 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x7F22C2D9 EQ PUSH2 0x661 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x681 JUMPI DUP1 PUSH4 0x9F77A605 EQ PUSH2 0x6A4 JUMPI DUP1 PUSH4 0xA054381F EQ PUSH2 0x6B7 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x3FFDD2F3 GT PUSH2 0x305 JUMPI DUP1 PUSH4 0x52B5B0EF GT PUSH2 0x298 JUMPI DUP1 PUSH4 0x6319112B GT PUSH2 0x267 JUMPI DUP1 PUSH4 0x6319112B EQ PUSH2 0x62E JUMPI DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x636 JUMPI DUP1 PUSH4 0x6FA29853 EQ PUSH2 0x63E JUMPI DUP1 PUSH4 0x775A4048 EQ PUSH2 0x646 JUMPI DUP1 PUSH4 0x7DB32844 EQ PUSH2 0x64E JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x52B5B0EF EQ PUSH2 0x5C7 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x5E6 JUMPI DUP1 PUSH4 0x5E6877BE EQ PUSH2 0x5FE JUMPI DUP1 PUSH4 0x5E966E45 EQ PUSH2 0x60E JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x4F27DA18 GT PUSH2 0x2D4 JUMPI DUP1 PUSH4 0x4F27DA18 EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0x50E1A19B EQ PUSH2 0x59A JUMPI DUP1 PUSH4 0x51B2FB90 EQ PUSH2 0x5AC JUMPI DUP1 PUSH4 0x52A9C8D7 EQ PUSH2 0x5BF JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x3FFDD2F3 EQ PUSH2 0x55C JUMPI DUP1 PUSH4 0x4288121D EQ PUSH2 0x564 JUMPI DUP1 PUSH4 0x442ED817 EQ PUSH2 0x56C JUMPI DUP1 PUSH4 0x49081637 EQ PUSH2 0x574 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x2898312F GT PUSH2 0x37D JUMPI DUP1 PUSH4 0x3408E470 GT PUSH2 0x34C JUMPI DUP1 PUSH4 0x3408E470 EQ PUSH2 0x51B JUMPI DUP1 PUSH4 0x39C6FA90 EQ PUSH2 0x521 JUMPI DUP1 PUSH4 0x3A42B053 EQ PUSH2 0x529 JUMPI DUP1 PUSH4 0x3F5D9235 EQ PUSH2 0x549 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x2898312F EQ PUSH2 0x4BE JUMPI DUP1 PUSH4 0x29560980 EQ PUSH2 0x4D5 JUMPI DUP1 PUSH4 0x2B1C7F73 EQ PUSH2 0x4E8 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x4FB JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x18442E63 GT PUSH2 0x3B9 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x48B JUMPI DUP1 PUSH4 0x18FF21C3 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x1E010439 EQ PUSH2 0x4A3 JUMPI DUP1 PUSH4 0x2857373A EQ PUSH2 0x4B6 JUMPI PUSH2 0x3E6 JUMP JUMPDEST DUP1 PUSH4 0x38696BB EQ PUSH2 0x3EB JUMPI DUP1 PUSH4 0x91924DC EQ PUSH2 0x41B JUMPI DUP1 PUSH4 0xC131757 EQ PUSH2 0x423 JUMPI DUP1 PUSH4 0x1551100F EQ PUSH2 0x43F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3FE PUSH2 0x3F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x8E8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3FE PUSH2 0x96E JUMP JUMPDEST PUSH2 0x431 PUSH4 0x141BDBDB PUSH1 0xE2 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x412 JUMP JUMPDEST PUSH2 0x431 PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD CHAINID PUSH1 0x20 DUP3 ADD MSTORE PUSH3 0x10000 SWAP1 SWAP3 DIV PUSH1 0x60 SHL PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 DUP3 ADD MSTORE PUSH1 0x54 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x998 JUMP JUMPDEST PUSH2 0x431 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4B1 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xA15 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xA9E JUMP JUMPDEST PUSH2 0x431 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xAE3 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x4F6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0xB6B JUMP JUMPDEST PUSH2 0x50E PUSH2 0x509 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xBEA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2B14 JUMP JUMPDEST CHAINID PUSH2 0x431 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xC72 JUMP JUMPDEST PUSH2 0x53C PUSH2 0x537 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xD11 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2A75 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x557 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xD6C JUMP JUMPDEST PUSH2 0x431 PUSH2 0xDF4 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xE39 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0xE55 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x582 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xE72 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x595 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xEA4 JUMP JUMPDEST PUSH2 0x431 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xED6 JUMP JUMPDEST PUSH2 0x431 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL DUP2 JUMP JUMPDEST PUSH2 0x3FE PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH2 0x431 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x621 PUSH2 0x61C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0xF1B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2A88 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xF98 JUMP JUMPDEST PUSH2 0x431 PUSH2 0xFDD JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x102C JUMP JUMPDEST PUSH2 0x431 PUSH2 0x104F JUMP JUMPDEST PUSH2 0x431 PUSH2 0x65C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1094 JUMP JUMPDEST PUSH2 0x674 PUSH2 0x66F CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x10C6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2AAF JUMP JUMPDEST PUSH2 0x694 PUSH2 0x68F CALLDATASIZE PUSH1 0x4 PUSH2 0x2611 JUMP JUMPDEST PUSH2 0x118C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x412 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x6B2 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1211 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1243 JUMP JUMPDEST PUSH2 0x431 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP2 JUMP JUMPDEST PUSH2 0x6F3 PUSH2 0x6EE CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1288 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2C44 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x70E CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1353 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1385 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x13D5 JUMP JUMPDEST PUSH2 0x736 PUSH2 0x731 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1452 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2BAB JUMP JUMPDEST PUSH2 0x431 PUSH2 0x751 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1509 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x153B JUMP JUMPDEST PUSH2 0x53C PUSH2 0x76C CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1556 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x77F CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x15AC JUMP JUMPDEST PUSH2 0x674 PUSH2 0x792 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x15E0 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x7A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1698 JUMP JUMPDEST PUSH2 0x7BD PUSH2 0x7B8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2589 JUMP JUMPDEST PUSH2 0x1730 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x431 PUSH2 0x7CD CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x18AE JUMP JUMPDEST PUSH2 0x431 PUSH2 0x18E0 JUMP JUMPDEST PUSH2 0x7ED PUSH2 0x7E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x1925 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2BF8 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x19E4 JUMP JUMPDEST PUSH2 0x53C PUSH2 0x1A29 JUMP JUMPDEST PUSH2 0x81D PUSH2 0x818 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1ACA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2AA2 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x3FE JUMP JUMPDEST PUSH2 0x431 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL DUP2 JUMP JUMPDEST PUSH2 0x431 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL DUP2 JUMP JUMPDEST PUSH2 0x3FE PUSH2 0x1B47 JUMP JUMPDEST PUSH2 0x887 PUSH2 0x882 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1BD6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x412 SWAP2 SWAP1 PUSH2 0x2CB1 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8A2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2640 JUMP JUMPDEST PUSH2 0x1CC2 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8B5 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1D46 JUMP JUMPDEST PUSH2 0x431 PUSH2 0x1D7A JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1DBF JUMP JUMPDEST PUSH2 0x431 PUSH2 0x8E3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25E1 JUMP JUMPDEST PUSH2 0x1DF6 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x38696BB PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x38696BB SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x92E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x942 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1E2B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x18442E63 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x18442E63 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x993 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA6F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA93 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH2 0x100 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x142B9B9D PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x2857373A SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB61 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0xC0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2B1C7F73 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x2B1C7F73 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH2 0xBF2 PUSH2 0x23F3 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC36 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC4A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2747 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xC98 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH2 0x1E2B JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8DA5CB5B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCE7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD0B SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A49532D3030323A494D504C454D454E4154494F4E5F4D49535349 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4E47 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x60 SWAP1 PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDC6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDEA SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0xE0 ADD MLOAD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3FFDD2F3 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x3FFDD2F3 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 MLOAD PUSH4 0x49081637 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x49081637 SWAP1 PUSH1 0x24 ADD PUSH2 0x916 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9E4FB43 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4F27DA18 SWAP1 PUSH1 0x24 ADD PUSH2 0x916 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x52A9C8D7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x52A9C8D7 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF74 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2661 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x4667AE51 PUSH1 0xE1 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x8CCF5CA2 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x6C0F79B6 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH21 0x436F6D706F6E656E744F776E657253657276696365 PUSH1 0x58 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xEEB4809 PUSH1 0xE3 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x775A4048 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x1100 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1149 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x115D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1185 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x269C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x24745215 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x0 SWAP3 AND SWAP1 PUSH4 0x91D14854 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11ED JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x25C1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x9F77A605 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x9F77A605 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xA054381F PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xA054381F SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x12D8 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x131B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x132F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2913 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xA427056E PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x2910CC31 PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xA44330C4 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x141A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x142E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x993 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST PUSH2 0x148B PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14CD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x281B JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA5C0F5A1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5C0F5A1 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x993 PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A49532D3030313A494D504C454D454E4154494F4E5F4D49535349 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x4E47 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x60 SWAP1 PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBE183B11 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBE183B11 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH2 0x161A PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x165C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1670 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x966 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x269C JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16F6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x171A SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0xE0 ADD MLOAD DUP2 PUSH1 0xC0 ADD MLOAD PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x2D7E JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x1750 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x176A JUMPI POP ADDRESS EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x176A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x17CD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x17F0 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x181A PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x185C JUMPI PUSH2 0x183B PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1864 PUSH2 0x1F13 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x18AA JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xC71E261F PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xC71E261F SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x195F PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xCEF58F13 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xCEF58F13 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19A8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19BC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1185 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2899 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3527487 PUSH1 0xE6 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD49D21C0 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CHAINID PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH2 0x1A47 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1A73 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1AC0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1A95 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1AC0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1AA3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1B23 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2680 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x21DF0DA7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1BAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BD0 SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1C45 PUSH1 0x40 MLOAD DUP1 PUSH2 0x160 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3AE00845 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEB802114 SWAP1 PUSH1 0x24 ADD PUSH2 0x160 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1C9E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x966 SWAP2 SWAP1 PUSH2 0x2998 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D22 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x25F9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x163C4B31 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB1E25988 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0xF1D354D PUSH1 0xE4 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xF1D354D0 SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xF6B3E7D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xF6B3E7D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0xC0C77D PUSH1 0xE0 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFF3F3883 SWAP1 PUSH1 0x24 ADD PUSH2 0xB9A JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E89 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1EAD SWAP2 SWAP1 PUSH2 0x25A5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x969 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1F7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xD63 JUMP JUMPDEST PUSH2 0x1F90 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1FC5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x1FF7 PUSH6 0x506F6C696379 PUSH1 0xD0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2027 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x205B PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x1E2B JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2083 PUSH2 0x2085 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x14 DUP2 MSTORE PUSH20 0x8AE8D0CAE4CAEADA409AC2D2DCDCCAE85E8AA89 PUSH1 0x63 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x20E9 SWAP2 PUSH32 0xB39221ACE053465EC3453CE2B36430BD138B997ECEA25C1043DA0C366812B828 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x8EDECAE4D8D25E8AA89 PUSH1 0xB3 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x5 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2144 SWAP2 PUSH32 0xBCDDA56B5D08466EC462CBBE0ADFA57CB0A15FCC8940EF68F702F21B787BC935 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x7 DUP1 DUP3 MSTORE PUSH7 0x47616E61636865 PUSH1 0xC8 SHL PUSH1 0x20 DUP1 DUP5 ADD SWAP2 DUP3 MSTORE PUSH2 0x539 PUSH1 0x0 MSTORE SWAP2 SWAP1 SWAP2 MSTORE SWAP1 MLOAD PUSH2 0x219E SWAP2 PUSH32 0x96A76633116AC3161B66B4BE70F114C9A245F4BBF414DC7A4D0EDCE8C01734CF SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xB DUP2 MSTORE PUSH11 0x476E6F7369732F78446169 PUSH1 0xA8 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x64 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x21FA SWAP2 PUSH32 0x6179E496907EB3333FEF2ED2194553681BADBB6D717316349BF33D21EC47E12 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xA DUP2 MSTORE PUSH10 0x536F6B6F6C2F53504F41 PUSH1 0xB0 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x4D PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2255 SWAP2 PUSH32 0x58F3D94C4A880E721E755344405D3FE6076875BF5B3AD388D0A326A85BCABFB5 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x15 DUP2 MSTORE PUSH21 0x506F6C79676F6E204D61696E6E65742F4D41544943 PUSH1 0x58 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH1 0x89 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x22BB SWAP2 PUSH32 0x65420A8D28339AECA441A0C94A464F6387B468F3F5EA5C247A6DF59A5F7B8866 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0xC DUP2 MSTORE PUSH12 0x4D756D6261692F4D41544943 PUSH1 0xA0 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0x1F41 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2319 SWAP2 PUSH32 0x4D67172C71DF6B75E948764B65521DB84C0C61E94D5F3739B666417E9471E584 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x16 DUP2 MSTORE PUSH22 0x82ECC2D8C2DCC6D0CA40865A86D0C2D2DC5E82AC82B PUSH1 0x53 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0xA86A PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x2381 SWAP2 PUSH32 0xA4356065248D86930C73E944E85F9D029FB0F52C0B8312D1A61BFBC9797EF514 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1B DUP2 MSTORE PUSH32 0x4176616C616E6368652046756A6920546573746E65742F415641580000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE PUSH2 0xA869 PUSH1 0x0 MSTORE PUSH1 0x7 SWAP1 MSTORE SWAP1 MLOAD PUSH2 0x23F0 SWAP2 PUSH32 0x57A00DA22BFC0A372532B5DFACB7DDF387626F66DE87422D191E09EA74934956 SWAP2 PUSH2 0x2465 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2435 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x2471 SWAP1 PUSH2 0x2DD1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x2493 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x24D9 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x24AC JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x24D9 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x24D9 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x24D9 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x24BE JUMP JUMPDEST POP PUSH2 0x24E5 SWAP3 SWAP2 POP PUSH2 0x24E9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x24EA JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2519 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2533 JUMPI PUSH2 0x2533 PUSH2 0x2E22 JUMP JUMPDEST PUSH2 0x2546 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2D4D JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x255A JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x256B DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2DA1 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E6D JUMP JUMPDEST DUP1 MLOAD PUSH2 0x969 DUP2 PUSH2 0x2E7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x259A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1185 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25B6 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1185 DUP2 PUSH2 0x2E58 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25D2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1185 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25F2 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x260A JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2623 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x2635 DUP2 PUSH2 0x2E58 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2652 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2672 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1185 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2691 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1185 DUP2 PUSH2 0x2E7A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26AD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x26C4 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x26D7 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x26E1 PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD PUSH2 0x26EC DUP2 PUSH2 0x2E6D JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2721 DUP8 DUP3 DUP7 ADD PUSH2 0x2509 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2758 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x276F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2785 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x278E DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x27B4 PUSH1 0x60 DUP5 ADD PUSH2 0x2573 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x27CA JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x27D6 DUP8 DUP3 DUP7 ADD PUSH2 0x2509 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x282C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2843 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2856 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2860 PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD PUSH2 0x286B DUP2 PUSH2 0x2E58 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2883 PUSH1 0x40 DUP5 ADD PUSH2 0x257E JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x28AA JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x28C1 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x28D4 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x28DE PUSH1 0xC0 PUSH2 0x2D4D JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x28F3 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2715 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2926 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x292F DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP PUSH2 0x293A DUP4 PUSH2 0x257E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29AB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x29B4 DUP2 PUSH2 0x2D4D JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH2 0x29C6 PUSH1 0x20 DUP5 ADD PUSH2 0x24FE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x29D7 PUSH1 0x40 DUP5 ADD PUSH2 0x24FE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x2A54 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2DA1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2A71 DUP2 PUSH2 0x2E38 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1185 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2A3C JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2A9C JUMPI PUSH2 0x2A9C PUSH2 0x2E0C JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH2 0x2A9C DUP4 PUSH2 0x2E48 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH2 0x2AC0 DUP2 PUSH2 0x2E38 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP5 ADD MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST SWAP1 POP PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP5 ADD MSTORE PUSH1 0xA0 DUP5 ADD MLOAD PUSH1 0xC0 DUP5 ADD MSTORE DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x2B47 PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x2A68 JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2B64 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x2A3C JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP4 MLOAD AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2BD8 DUP2 PUSH2 0x2E48 JUMP JUMPDEST DUP1 PUSH1 0x60 DUP5 ADD MSTORE POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x2 DUP2 LT PUSH2 0x2C1A JUMPI PUSH2 0x2C1A PUSH2 0x2E0C JUMP JUMPDEST DUP1 PUSH1 0x40 DUP5 ADD MSTORE POP PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0xC0 PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x2AF4 PUSH1 0xE0 DUP5 ADD DUP3 PUSH2 0x2A3C JUMP JUMPDEST DUP2 MLOAD PUSH2 0x120 DUP3 ADD SWAP1 PUSH2 0x2C55 DUP2 PUSH2 0x2E48 JUMP JUMPDEST DUP1 DUP4 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP4 ADD MLOAD PUSH2 0x160 DUP4 ADD SWAP2 PUSH2 0x2CD5 SWAP1 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x2CF0 PUSH1 0x40 DUP5 ADD DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP4 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP PUSH2 0x140 DUP1 DUP5 ADD MLOAD DUP2 DUP5 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2D76 JUMPI PUSH2 0x2D76 PUSH2 0x2E22 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2D9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2DBC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2DA4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x2DCB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2DE5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x2E06 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x23F0 JUMPI PUSH2 0x23F0 PUSH2 0x2E0C JUMP JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x23F0 JUMPI PUSH2 0x23F0 PUSH2 0x2E0C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x23F0 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP12 0xAA DUP14 CALLDATASIZE PUSH5 0xA94BFB7869 PUSH7 0x4CE5BC59B2293E 0xC3 PC PUSH3 0xBA4906 0xC7 0x4E DUP14 0x5F PUSH22 0xCDD5F464736F6C634300080200330000000000000000 ","sourceMap":"1407:11001:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12119:152;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;13056:32:103;;;13038:51;;13026:2;13011:18;12119:152:84;;;;;;;;4253:204;;;:::i;1646:42::-;;-1:-1:-1;;;1646:42:84;;;;;13438:25:103;;;13426:2;13411:18;1646:42:84;13393:76:103;3581:213:84;;3635:18;3775:9;;3701:85;;;3735:13;3701:85;;;12750:19:103;3775:9:84;;;;12807:2:103;12803:15;-1:-1:-1;;12803:15:103;12785:12;;;12778:75;12869:12;;3701:85:84;;;;;;;;;;;;3678:109;;;;;;3665:122;;3581:213;;11399:101;;;:::i;1594:46::-;;-1:-1:-1;;;1594:46:84;;10307:155;;;;;;:::i;:::-;;:::i;6240:103::-;;;:::i;1923:61::-;;-1:-1:-1;;;1923:61:84;;9738:155;;;;;;:::i;:::-;;:::i;6462:169::-;;;;;;:::i;:::-;;:::i;11241:152::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3329:108::-;3417:13;3329:108;;3800:222;;;:::i;7839:179::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9899:::-;;;;;;:::i;:::-;;:::i;5805:128::-;;;:::i;4632:167::-;;;:::i;4805:171::-;;;:::i;11962:151::-;;;;;;:::i;:::-;;:::i;7087:128::-;;;;;;:::i;:::-;;:::i;1694:50::-;;-1:-1:-1;;;1694:50:84;;1536:52;;-1:-1:-1;;;1536:52:84;;5411:124;;;:::i;1751:78::-;;-1:-1:-1;;;1751:78:84;;5001:97;;5046:17;5082:9;;;;-1:-1:-1;;;;;5082:9:84;;5001:97;1484:46;;-1:-1:-1;;;1484:46:84;;6855:226;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12277:129::-;;;:::i;5104:138::-;;;:::i;4051:196::-;;;:::i;5541:124::-;;;:::i;10824:203::-;;;;;;:::i;:::-;;:::i;9038:175::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5939:164::-;;;;;;:::i;:::-;;:::i;:::-;;;13265:14:103;;13258:22;13240:41;;13228:2;13213:18;5939:164:84;13195:92:103;7487:127:84;;;;;;:::i;:::-;;:::i;6349:107::-;;;:::i;1835:82::-;;-1:-1:-1;;;1835:82:84;;8531:153;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10468:160::-;;;;;;:::i;:::-;;:::i;8041:139::-;;;:::i;11833:123::-;;;:::i;8186:155::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7221:124::-;;;;;;:::i;:::-;;:::i;4463:163::-;;;:::i;7646:187::-;;;;;;:::i;:::-;;:::i;8864:164::-;;;;;;:::i;:::-;;:::i;8347:178::-;;;;;;:::i;:::-;;:::i;10084:217::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;:::-;;11506:183:84;;;;;;:::i;:::-;;:::i;6129:105::-;;;:::i;9223:182::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5671:128::-;;;:::i;3443:132::-;;;:::i;6637:212::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11714:113::-;11810:9;;-1:-1:-1;;;;;11810:9:84;11714:113;;2059:65;;-1:-1:-1;;;2059:65:84;;1990:63;;-1:-1:-1;;;1990:63:84;;11050:181;;;:::i;9430:153::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10634:185::-;;;;;;:::i;:::-;;:::i;8694:160::-;;;;;;:::i;:::-;;:::i;9589:143::-;;;:::i;5256:132::-;;;;;;:::i;:::-;;:::i;7351:130::-;;;;;;:::i;:::-;;:::i;12119:152::-;12224:9;;:40;;-1:-1:-1;;;12224:40:84;;;;;13438:25:103;;;12198:6:84;;-1:-1:-1;;;;;12224:9:84;;:27;;13411:18:103;;12224:40:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12217:47;;12119:152;;;;:::o;4253:204::-;4322:32;4398:51;-1:-1:-1;;;4398:19:84;:51::i;:::-;4366:84;;4253:204;:::o;11399:101::-;11476:7;;:17;;;-1:-1:-1;;;11476:17:84;;;;11450:7;;-1:-1:-1;;;;;11476:7:84;;:15;;:17;;;;;;;;;;;;;;:7;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10307:155::-;10418:5;;:29;;-1:-1:-1;;;10418:29:84;;;;;13438:25:103;;;10378:21:84;;-1:-1:-1;;;;;10418:5:84;;:17;;13411:18:103;;10418:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;;;10307:155;-1:-1:-1;;10307:155:84:o;6240:103::-;6316:10;;:20;;;-1:-1:-1;;;6316:20:84;;;;6290:7;;-1:-1:-1;;;;;6316:10:84;;:18;;:20;;;;;;;;;;;;;;:10;:20;;;;;;;;;;9738:155;9849:5;;:29;;-1:-1:-1;;;9849:29:84;;;;;13438:25:103;;;9809:21:84;;-1:-1:-1;;;;;9849:5:84;;:17;;13411:18:103;;9849:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;;;9738:155;-1:-1:-1;;9738:155:84:o;6462:169::-;6581:10;;:43;;-1:-1:-1;;;6581:43:84;;-1:-1:-1;;;;;13056:32:103;;;6581:43:84;;;13038:51:103;6543:19:84;;6581:10;;:25;;13011:18:103;;6581:43:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11241:152::-;11310:28;;:::i;:::-;11359:7;;:27;;-1:-1:-1;;;11359:27:84;;;;;13438:25:103;;;-1:-1:-1;;;;;11359:7:84;;;;:17;;13411:18:103;;11359:27:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11359:27:84;;;;;;;;;;;;:::i;3800:222::-;3862:7;3881:27;3935:51;-1:-1:-1;;;3935:19:84;:51::i;:::-;3881:106;;4004:3;-1:-1:-1;;;;;4004:9:84;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3997:18;;;3800:222;:::o;7839:179::-;7967:44;;-1:-1:-1;;;7967:44:84;;17845:2:103;7967:44:84;;;17827:21:103;17884:2;17864:18;;;17857:30;17923:34;17903:18;;;17896:62;-1:-1:-1;;;17974:18:103;;;17967:32;7933:17:84;;18016:19:103;;7967:44:84;;;;;;;;9899:179;10028:5;;:29;;-1:-1:-1;;;10028:29:84;;;;;13438:25:103;;;9979:30:84;;-1:-1:-1;;;;;10028:5:84;;:17;;13411:18:103;;10028:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:43;;;;9899:179;-1:-1:-1;;9899:179:84:o;5805:128::-;5895:7;;:31;;;-1:-1:-1;;;5895:31:84;;;;5869:7;;-1:-1:-1;;;;;5895:7:84;;:29;;:31;;;;;;;;;;;;;;:7;:31;;;;;;;;;;4632:167;4692:23;4750:41;-1:-1:-1;;;4750:19:84;:41::i;4805:171::-;4866:24;4926:42;-1:-1:-1;;;4926:19:84;:42::i;11962:151::-;12067:9;;:39;;-1:-1:-1;;;12067:39:84;;;;;13438:25:103;;;12040:7:84;;-1:-1:-1;;;;;12067:9:84;;:27;;13411:18:103;;12067:39:84;13393:76:103;7087:128:84;7181:10;;:27;;-1:-1:-1;;;7181:27:84;;;;;13438:25:103;;;7152:10:84;;-1:-1:-1;;;;;7181:10:84;;:23;;13411:18:103;;7181:27:84;13393:76:103;5411:124:84;5499:7;;:29;;;-1:-1:-1;;;5499:29:84;;;;5473:7;;-1:-1:-1;;;;;5499:7:84;;:27;;:29;;;;;;;;;;;;;;:7;:29;;;;;;;;;;6855:226;7033:10;;:41;;-1:-1:-1;;;7033:41:84;;;;;13438:25:103;;;6960:40:84;;-1:-1:-1;;;;;7033:10:84;;:28;;13411:18:103;;7033:41:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12277:129::-;12368:9;;:31;;;-1:-1:-1;;;12368:31:84;;;;12342:7;;-1:-1:-1;;;;;12368:9:84;;:29;;:31;;;;;;;;;;;;;;:9;:31;;;;;;;;;;5104:138;5157:25;5214:9;;;;;;;;;-1:-1:-1;;;;;5214:9:84;-1:-1:-1;;;;;5214:19:84;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4051:196;4118:30;4190:49;-1:-1:-1;;;4190:19:84;:49::i;5541:124::-;5629:7;;:29;;;-1:-1:-1;;;5629:29:84;;;;5603:7;;-1:-1:-1;;;;;5629:7:84;;:27;;:29;;;;;;;;;;;;;;:7;:29;;;;;;;;;;10824:203;10971:5;;:49;;-1:-1:-1;;;10971:49:84;;;;;13438:25:103;;;10916:36:84;;-1:-1:-1;;;;;10971:5:84;;:37;;13411:18:103;;10971:49:84;13393:76:103;9038:175:84;9124:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9124:26:84;9170:7;;;:36;;-1:-1:-1;;;9170:36:84;;;;;13927:25:103;;;13968:18;;;13961:34;;;-1:-1:-1;;;;;9170:7:84;;:16;;13900:18:103;;9170:36:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9170:36:84;;;;;;;;;;;;:::i;:::-;9162:44;9038:175;-1:-1:-1;;;9038:175:84:o;5939:164::-;6064:7;;:32;;-1:-1:-1;;;6064:32:84;;;;;13648:25:103;;;-1:-1:-1;;;;;13709:32:103;;;13689:18;;;13682:60;6037:4:84;;6064:7;;:15;;13621:18:103;;6064:32:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7487:127::-;7579:10;;:28;;-1:-1:-1;;;7579:28:84;;;;;13438:25:103;;;7543:17:84;;-1:-1:-1;;;;;7579:10:84;;:23;;13411:18:103;;7579:28:84;13393:76:103;6349:107:84;6427:10;;:22;;;-1:-1:-1;;;6427:22:84;;;;6401:7;;-1:-1:-1;;;;;6427:10:84;;:20;;:22;;;;;;;;;;;;;;:10;:22;;;;;;;;;;8531:153;8600:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8600:28:84;8649:7;;;:28;;-1:-1:-1;;;8649:28:84;;;;;13438:25:103;;;-1:-1:-1;;;;;8649:7:84;;:17;;13411:18:103;;8649:28:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10468:160::-;10590:5;;:31;;-1:-1:-1;;;10590:31:84;;;;;13438:25:103;;;10542:29:84;;-1:-1:-1;;;;;10590:5:84;;:19;;13411:18:103;;10590:31:84;13393:76:103;8041:139:84;8094:26;8153:7;;;;;;;;;-1:-1:-1;;;;;8153:7:84;-1:-1:-1;;;;;8153:18:84;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11833:123;11920:9;;:29;;;-1:-1:-1;;;11920:29:84;;;;11893:7;;-1:-1:-1;;;;;11920:9:84;;:27;;:29;;;;;;;;;;;;;;:9;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8186:155::-;8253:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8253:32:84;8308:7;;;:26;;-1:-1:-1;;;8308:26:84;;;;;13438:25:103;;;-1:-1:-1;;;;;8308:7:84;;:19;;13411:18:103;;8308:26:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8308:26:84;;;;;;;;;;;;:::i;7221:124::-;7311:10;;:27;;-1:-1:-1;;;7311:27:84;;;;;13438:25:103;;;7276:16:84;;-1:-1:-1;;;;;7311:10:84;;:22;;13411:18:103;;7311:27:84;13393:76:103;4463:163:84;4522:22;4578:40;-1:-1:-1;;;4578:19:84;:40::i;7646:187::-;7782:44;;-1:-1:-1;;;7782:44:84;;18663:2:103;7782:44:84;;;18645:21:103;18702:2;18682:18;;;18675:30;18741:34;18721:18;;;18714:62;-1:-1:-1;;;18792:18:103;;;18785:32;7748:17:84;;18834:19:103;;7782:44:84;18635:224:103;8864:164:84;8984:7;;;:37;;-1:-1:-1;;;8984:37:84;;;;;13438:25:103;;;8931:23:84;;-1:-1:-1;;;;;8984:7:84;;;;:26;;13411:18:103;;8984:37:84;13393:76:103;8347:178:84;8421:38;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8421:38:84;8485:7;;;:33;;-1:-1:-1;;;8485:33:84;;;;;13438:25:103;;;-1:-1:-1;;;;;8485:7:84;;:22;;13411:18:103;;8485:33:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8485:33:84;;;;;;;;;;;;:::i;10084:217::-;10215:5;;:29;;-1:-1:-1;;;10215:29:84;;;;;13438:25:103;;;10156:22:84;;;;-1:-1:-1;;;;;10215:5:84;;;;:17;;13411:18:103;;10215:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10190:54;;10276:4;:18;;;10261:4;:12;;;:33;;;;:::i;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;-1:-1:-1;3236:4:47;1465:19:58;:23;;;3208:55:47;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;18248:2:103;3146:190:47;;;18230:21:103;18287:2;18267:18;;;18260:30;18326:34;18306:18;;;18299:62;-1:-1:-1;;;18377:18:103;;;18370:44;18431:19;;3146:190:47;18220:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;16966:36:103;;3531:14:47;;16954:2:103;16939:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;11506:183:84:-;11648:7;;:34;;-1:-1:-1;;;11648:34:84;;;;;13438:25:103;;;11581:30:84;;-1:-1:-1;;;;;11648:7:84;;:22;;13411:18:103;;11648:34:84;13393:76:103;6129:105:84;6206:10;;:21;;;-1:-1:-1;;;6206:21:84;;;;6180:7;;-1:-1:-1;;;;;6206:10:84;;:19;;:21;;;;;;;;;;;;;;:10;:21;;;;;;;;;;9223:182;9311:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9311:28:84;9360:7;;;:38;;-1:-1:-1;;;9360:38:84;;;;;13927:25:103;;;13968:18;;;13961:34;;;-1:-1:-1;;;;;9360:7:84;;:17;;13900:18:103;;9360:38:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9360:38:84;;;;;;;;;;;;:::i;5671:128::-;5761:7;;:31;;;-1:-1:-1;;;5761:31:84;;;;5735:7;;-1:-1:-1;;;;;5761:7:84;;:29;;:31;;;;;;;;;;;;;;:7;:31;;;;;;;;;;3443:132;3554:13;3543:25;;;;:10;:25;;;;;3531:37;;3496:23;;3543:25;3531:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3443:132;:::o;6637:212::-;6802:10;;:40;;-1:-1:-1;;;6802:40:84;;;;;13438:25:103;;;6741:38:84;;-1:-1:-1;;;;;6802:10:84;;:27;;13411:18:103;;6802:40:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11050:181::-;11107:18;11137:23;11163:7;;;;;;;;;-1:-1:-1;;;;;11163:7:84;-1:-1:-1;;;;;11163:16:84;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11137:44;11050:181;-1:-1:-1;;11050:181:84:o;9430:153::-;9502:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9502:26:84;9547:5;;:29;;-1:-1:-1;;;9547:29:84;;;;;13438:25:103;;;-1:-1:-1;;;;;9547:5:84;;;;:17;;13411:18:103;;9547:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10634:185::-;10766:5;;:46;;-1:-1:-1;;;10766:46:84;;;;;13927:25:103;;;13968:18;;;13961:34;;;10731:16:84;;-1:-1:-1;;;;;10766:5:84;;:23;;13900:18:103;;10766:46:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8694:160::-;8811:7;;;:36;;-1:-1:-1;;;8811:36:84;;;;;13438:25:103;;;8760:22:84;;-1:-1:-1;;;;;8811:7:84;;;;:25;;13411:18:103;;8811:36:84;13393:76:103;9589:143:84;9688:5;;:37;;;-1:-1:-1;;;9688:37:84;;;;9662:7;;-1:-1:-1;;;;;9688:5:84;;:35;;:37;;;;;;;;;;;;;;:5;:37;;;;;;;;;;5256:132;5323:12;5354:9;;:27;;-1:-1:-1;;;5354:27:84;;;;;13438:25:103;;;5354:9:84;;;;-1:-1:-1;;;;;5354:9:84;;:22;;13411:18:103;;5354:27:84;13393:76:103;7351:130:84;7445:10;;:29;;-1:-1:-1;;;;;;7445:29:84;;;;;13438:25:103;;;7408:18:84;;-1:-1:-1;;;;;7445:10:84;;:24;;13411:18:103;;7445:29:84;13393:76:103;1530:293:88;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;13438:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;13411:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;17439:2:103;1703:113:88;;;17421:21:103;17478:2;17458:18;;;17451:30;17517:34;17497:18;;;17490:62;-1:-1:-1;;;17568:18:103;;;17561:35;17613:19;;1703:113:88;17411:227:103;2376:452:84;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;19066:2:103;4880:69:47;;;19048:21:103;19105:2;19085:18;;;19078:30;19144:34;19124:18;;;19117:62;-1:-1:-1;;;19195:18:103;;;19188:41;19246:19;;4880:69:47;19038:233:103;4880:69:47;2476:32:84::1;-1:-1:-1::0;;;2476:19:84::1;:32::i;:::-;2449:7;:60:::0;;-1:-1:-1;;;;;;2449:60:84::1;-1:-1:-1::0;;;;;2449:60:84;;;::::1;::::0;;;::::1;::::0;;2552:35:::1;-1:-1:-1::0;;;2552:19:84::1;:35::i;:::-;2519:10;:69:::0;;-1:-1:-1;;;;;;2519:69:84::1;-1:-1:-1::0;;;;;2519:69:84;;;::::1;::::0;;;::::1;::::0;;2625:32:::1;-1:-1:-1::0;;;2625:19:84::1;:32::i;:::-;2598:7;:60:::0;;-1:-1:-1;;;;;;2598:60:84::1;-1:-1:-1::0;;;;;2598:60:84;;;::::1;::::0;;;::::1;::::0;;2691:30:::1;-1:-1:-1::0;;;2691:19:84::1;:30::i;:::-;2668:5;:54:::0;;-1:-1:-1;;;;;;2668:54:84::1;-1:-1:-1::0;;;;;2668:54:84;;;::::1;::::0;;;::::1;::::0;;2759:34:::1;-1:-1:-1::0;;;2759:19:84::1;:34::i;:::-;2732:9;:62:::0;;-1:-1:-1;;;;;;2732:62:84::1;-1:-1:-1::0;;;;;2732:62:84;;;::::1;::::0;;;::::1;::::0;;2805:16:::1;:14;:16::i;:::-;2376:452::o:0;2834:462::-;2879:38;;;;;;;;;;;;-1:-1:-1;;;2879:38:84;;;;;;;2890:1;-1:-1:-1;2879:13:84;:10;:13;;:38;;;;:13;;:38;:::i;:::-;-1:-1:-1;2928:28:84;;;;;;;;;;;;-1:-1:-1;;;2928:28:84;;;;;;;2939:1;-1:-1:-1;2928:13:84;:10;:13;;:28;;;;:13;;:28;:::i;:::-;-1:-1:-1;2967:28:84;;;;;;;;;;;;;-1:-1:-1;;;2967:28:84;;;;;;;2978:4;-1:-1:-1;2967:16:84;;;;;:28;;;;:16;;:28;:::i;:::-;-1:-1:-1;3006:31:84;;;;;;;;;;;;-1:-1:-1;;;3006:31:84;;;;;;;3017:3;-1:-1:-1;3006:15:84;:10;:15;;:31;;;;:15;;:31;:::i;:::-;-1:-1:-1;3048:29:84;;;;;;;;;;;;-1:-1:-1;;;3048:29:84;;;;;;;3059:2;-1:-1:-1;3048:14:84;:10;:14;;:29;;;;:14;;:29;:::i;:::-;-1:-1:-1;3088:41:84;;;;;;;;;;;;-1:-1:-1;;;3088:41:84;;;;;;;3099:3;-1:-1:-1;3088:15:84;:10;:15;;:41;;;;:15;;:41;:::i;:::-;-1:-1:-1;3140:33:84;;;;;;;;;;;;-1:-1:-1;;;3140:33:84;;;;;;;3151:4;-1:-1:-1;3140:16:84;:10;:16;;:33;;;;:16;;:33;:::i;:::-;-1:-1:-1;3184:44:84;;;;;;;;;;;;-1:-1:-1;;;3184:44:84;;;;;;;3195:5;-1:-1:-1;3184:17:84;:10;:17;;:44;;;;:17;;:44;:::i;:::-;-1:-1:-1;3239:49:84;;;;;;;;;;;;;;;;;;;;3250:5;-1:-1:-1;3239:17:84;:10;:17;;:49;;;;:17;;:49;:::i;:::-;;2834:462::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:138:103;93:13;;115:31;93:13;115:31;:::i;157:512::-;;263:3;256:4;248:6;244:17;240:27;230:2;;285:5;278;271:20;230:2;318:6;312:13;344:18;340:2;337:26;334:2;;;366:18;;:::i;:::-;410:55;453:2;434:13;;-1:-1:-1;;430:27:103;459:4;426:38;410:55;:::i;:::-;490:2;481:7;474:19;536:3;529:4;524:2;516:6;512:15;508:26;505:35;502:2;;;557:5;550;543:20;502:2;574:64;635:2;628:4;619:7;615:18;608:4;600:6;596:17;574:64;:::i;:::-;656:7;220:449;-1:-1:-1;;;;220:449:103:o;674:166::-;767:13;;789:45;767:13;789:45;:::i;845:160::-;935:13;;957:42;935:13;957:42;:::i;1010:257::-;;1122:2;1110:9;1101:7;1097:23;1093:32;1090:2;;;1143:6;1135;1128:22;1090:2;1187:9;1174:23;1206:31;1231:5;1206:31;:::i;1272:261::-;;1395:2;1383:9;1374:7;1370:23;1366:32;1363:2;;;1416:6;1408;1401:22;1363:2;1453:9;1447:16;1472:31;1497:5;1472:31;:::i;1538:297::-;;1658:2;1646:9;1637:7;1633:23;1629:32;1626:2;;;1679:6;1671;1664:22;1626:2;1716:9;1710:16;1769:5;1762:13;1755:21;1748:5;1745:32;1735:2;;1796:6;1788;1781:22;1840:190;;1952:2;1940:9;1931:7;1927:23;1923:32;1920:2;;;1973:6;1965;1958:22;1920:2;-1:-1:-1;2001:23:103;;1910:120;-1:-1:-1;1910:120:103:o;2035:194::-;;2158:2;2146:9;2137:7;2133:23;2129:32;2126:2;;;2179:6;2171;2164:22;2126:2;-1:-1:-1;2207:16:103;;2116:113;-1:-1:-1;2116:113:103:o;2234:325::-;;;2363:2;2351:9;2342:7;2338:23;2334:32;2331:2;;;2384:6;2376;2369:22;2331:2;2425:9;2412:23;2402:33;;2485:2;2474:9;2470:18;2457:32;2498:31;2523:5;2498:31;:::i;:::-;2548:5;2538:15;;;2321:238;;;;;:::o;2564:258::-;;;2693:2;2681:9;2672:7;2668:23;2664:32;2661:2;;;2714:6;2706;2699:22;2661:2;-1:-1:-1;;2742:23:103;;;2812:2;2797:18;;;2784:32;;-1:-1:-1;2651:171:103:o;3680:299::-;;3822:2;3810:9;3801:7;3797:23;3793:32;3790:2;;;3843:6;3835;3828:22;3790:2;3880:9;3874:16;3919:1;3912:5;3909:12;3899:2;;3940:6;3932;3925:22;3984:290;;4125:2;4113:9;4104:7;4100:23;4096:32;4093:2;;;4146:6;4138;4131:22;4093:2;4183:9;4177:16;4202:42;4238:5;4202:42;:::i;4279:1005::-;;4431:2;4419:9;4410:7;4406:23;4402:32;4399:2;;;4452:6;4444;4437:22;4399:2;4490:9;4484:16;4519:18;4560:2;4552:6;4549:14;4546:2;;;4581:6;4573;4566:22;4546:2;4609:22;;;;4665:4;4647:16;;;4643:27;4640:2;;;4688:6;4680;4673:22;4640:2;4719:21;4735:4;4719:21;:::i;:::-;4770:2;4764:9;4782:47;4821:7;4782:47;:::i;:::-;4852:7;4845:5;4838:22;;4906:2;4902;4898:11;4892:18;4887:2;4880:5;4876:14;4869:42;4957:2;4953;4949:11;4943:18;4938:2;4931:5;4927:14;4920:42;5001:2;4997;4993:11;4987:18;5030:2;5020:8;5017:16;5014:2;;;5051:6;5043;5036:22;5014:2;5092:55;5139:7;5128:8;5124:2;5120:17;5092:55;:::i;:::-;5087:2;5080:5;5076:14;5069:79;;5195:3;5191:2;5187:12;5181:19;5175:3;5168:5;5164:15;5157:44;5248:3;5244:2;5240:12;5234:19;5228:3;5221:5;5217:15;5210:44;5273:5;5263:15;;;;;4389:895;;;;:::o;5289:1224::-;;5436:2;5424:9;5415:7;5411:23;5407:32;5404:2;;;5457:6;5449;5442:22;5404:2;5495:9;5489:16;5524:18;5565:2;5557:6;5554:14;5551:2;;;5586:6;5578;5571:22;5551:2;5629:6;5618:9;5614:22;5604:32;;5655:6;5695:2;5690;5681:7;5677:16;5673:25;5670:2;;;5716:6;5708;5701:22;5670:2;5747:19;5763:2;5747:19;:::i;:::-;5734:32;;5795:2;5789:9;5782:5;5775:24;5845:2;5841;5837:11;5831:18;5826:2;5819:5;5815:14;5808:42;5896:2;5892;5888:11;5882:18;5877:2;5870:5;5866:14;5859:42;5933:56;5985:2;5981;5977:11;5933:56;:::i;:::-;5928:2;5921:5;5917:14;5910:80;6029:3;6025:2;6021:12;6015:19;6059:2;6049:8;6046:16;6043:2;;;6080:6;6072;6065:22;6043:2;6122:55;6169:7;6158:8;6154:2;6150:17;6122:55;:::i;:::-;6116:3;6105:15;;6098:80;-1:-1:-1;6225:3:103;6217:12;;;6211:19;6194:15;;;6187:44;6278:3;6270:12;;;6264:19;6247:15;;;6240:44;6331:3;6323:12;;;6317:19;6300:15;;;6293:44;6356:3;6397:11;;;6391:18;6375:14;;;6368:42;6429:3;6470:11;;;6464:18;6448:14;;;6441:42;;;;-1:-1:-1;6109:5:103;5394:1119;-1:-1:-1;;;5394:1119:103:o;7522:1023::-;;7671:2;7659:9;7650:7;7646:23;7642:32;7639:2;;;7692:6;7684;7677:22;7639:2;7730:9;7724:16;7759:18;7800:2;7792:6;7789:14;7786:2;;;7821:6;7813;7806:22;7786:2;7849:22;;;;7905:4;7887:16;;;7883:27;7880:2;;;7928:6;7920;7913:22;7880:2;7959:21;7975:4;7959:21;:::i;:::-;8010:2;8004:9;8022:33;8047:7;8022:33;:::i;:::-;8064:22;;8132:2;8124:11;;;8118:18;8102:14;;;8095:42;8169:53;8218:2;8210:11;;8169:53;:::i;:::-;8164:2;8157:5;8153:14;8146:77;8262:2;8258;8254:11;8248:18;8291:2;8281:8;8278:16;8275:2;;;8312:6;8304;8297:22;8550:1005;;8697:2;8685:9;8676:7;8672:23;8668:32;8665:2;;;8718:6;8710;8703:22;8665:2;8756:9;8750:16;8785:18;8826:2;8818:6;8815:14;8812:2;;;8847:6;8839;8832:22;8812:2;8875:22;;;;8931:4;8913:16;;;8909:27;8906:2;;;8954:6;8946;8939:22;8906:2;8985:21;9001:4;8985:21;:::i;:::-;9035:2;9029:9;9022:5;9015:24;9077:2;9073;9069:11;9063:18;9112:1;9103:7;9100:14;9090:2;;9133:6;9125;9118:22;9090:2;9169;9158:14;;9151:31;9228:2;9220:11;;;9214:18;9198:14;;;9191:42;9272:2;9264:11;;9258:18;9288:16;;;9285:2;;;9322:6;9314;9307:22;9560:839;;9685:3;9729:2;9717:9;9708:7;9704:23;9700:32;9697:2;;;9750:6;9742;9735:22;9697:2;9781:19;9797:2;9781:19;:::i;:::-;9768:32;;9823:51;9864:9;9823:51;:::i;:::-;9816:5;9809:66;9928:2;9917:9;9913:18;9907:25;9902:2;9895:5;9891:14;9884:49;9986:2;9975:9;9971:18;9965:25;9960:2;9953:5;9949:14;9942:49;10044:2;10033:9;10029:18;10023:25;10018:2;10011:5;10007:14;10000:49;10103:3;10092:9;10088:19;10082:26;10076:3;10069:5;10065:15;10058:51;10163:3;10152:9;10148:19;10142:26;10136:3;10129:5;10125:15;10118:51;10223:3;10212:9;10208:19;10202:26;10196:3;10189:5;10185:15;10178:51;10283:3;10272:9;10268:19;10262:26;10256:3;10249:5;10245:15;10238:51;10308:3;10364:2;10353:9;10349:18;10343:25;10338:2;10331:5;10327:14;10320:49;;10388:5;10378:15;;;9665:734;;;;:::o;10404:1010::-;;10527:3;10571:2;10559:9;10550:7;10546:23;10542:32;10539:2;;;10592:6;10584;10577:22;10539:2;10623:19;10639:2;10623:19;:::i;:::-;10610:32;;10671:9;10665:16;10658:5;10651:31;10714:49;10759:2;10748:9;10744:18;10714:49;:::i;:::-;10709:2;10702:5;10698:14;10691:73;10796:49;10841:2;10830:9;10826:18;10796:49;:::i;:::-;10791:2;10784:5;10780:14;10773:73;10899:2;10888:9;10884:18;10878:25;10873:2;10866:5;10862:14;10855:49;10958:3;10947:9;10943:19;10937:26;10931:3;10924:5;10920:15;10913:51;11018:3;11007:9;11003:19;10997:26;10991:3;10984:5;10980:15;10973:51;11078:3;11067:9;11063:19;11057:26;11051:3;11044:5;11040:15;11033:51;11138:3;11127:9;11123:19;11117:26;11111:3;11104:5;11100:15;11093:51;11163:3;11219:2;11208:9;11204:18;11198:25;11193:2;11186:5;11182:14;11175:49;;11243:3;11299:2;11288:9;11284:18;11278:25;11273:2;11266:5;11262:14;11255:49;;11323:3;11379:2;11368:9;11364:18;11358:25;11353:2;11346:5;11342:14;11335:49;;11403:5;11393:15;;;10507:907;;;;:::o;12185:257::-;;12264:5;12258:12;12291:6;12286:3;12279:19;12307:63;12363:6;12356:4;12351:3;12347:14;12340:4;12333:5;12329:16;12307:63;:::i;:::-;12424:2;12403:15;-1:-1:-1;;12399:29:103;12390:39;;;;12431:4;12386:50;;12234:208;-1:-1:-1;;12234:208:103:o;12447:141::-;12510:45;12549:5;12510:45;:::i;:::-;12564:18;;12500:88::o;14006:217::-;;14153:2;14142:9;14135:21;14173:44;14213:2;14202:9;14198:18;14190:6;14173:44;:::i;16309:250::-;16460:2;16445:18;;16493:1;16482:13;;16472:2;;16499:18;;:::i;:::-;16528:25;;;16427:132;:::o;16564:245::-;16714:2;16699:18;;16726:43;16762:6;16726:43;:::i;19276:749::-;;19463:2;19452:9;19445:21;19491:6;19485:13;19507:42;19546:2;19507:42;:::i;:::-;19585:2;19580;19569:9;19565:18;19558:30;;19642:2;19634:6;19630:15;19624:22;19619:2;19608:9;19604:18;19597:50;19701:2;19693:6;19689:15;19683:22;19678:2;19667:9;19663:18;19656:50;19753:2;19745:6;19741:15;19735:22;19794:4;19788:3;19777:9;19773:19;19766:33;19822:51;19868:3;19857:9;19853:19;19839:12;19822:51;:::i;:::-;19808:65;;19928:3;19920:6;19916:16;19910:23;19904:3;19893:9;19889:19;19882:52;19990:3;19982:6;19978:16;19972:23;19965:4;19954:9;19950:20;19943:53;20013:6;20005:14;;;19435:590;;;;:::o;20030:1080::-;;20207:2;20196:9;20189:21;20252:6;20246:13;20241:2;20230:9;20226:18;20219:41;20314:2;20306:6;20302:15;20296:22;20291:2;20280:9;20276:18;20269:50;20373:2;20365:6;20361:15;20355:22;20350:2;20339:9;20335:18;20328:50;20425:2;20417:6;20413:15;20407:22;20438:62;20495:3;20484:9;20480:19;20466:12;20438:62;:::i;:::-;;20549:3;20541:6;20537:16;20531:23;20573:6;20616:2;20610:3;20599:9;20595:19;20588:31;20642:53;20690:3;20679:9;20675:19;20659:14;20642:53;:::i;:::-;20628:67;;20750:3;20742:6;20738:16;20732:23;20726:3;20715:9;20711:19;20704:52;20811:3;20803:6;20799:16;20793:23;20787:3;20776:9;20772:19;20765:52;20854:3;20846:6;20842:16;20836:23;20878:3;20917:2;20912;20901:9;20897:18;20890:30;20957:2;20949:6;20945:15;20939:22;20929:32;;;20980:3;21019:2;21014;21003:9;20999:18;20992:30;21076:2;21068:6;21064:15;21058:22;21053:2;21042:9;21038:18;21031:50;;;;21098:6;21090:14;;;20179:931;;;;:::o;21857:800::-;;22038:2;22027:9;22020:21;22113:1;22109;22104:3;22100:11;22096:19;22087:6;22081:13;22077:39;22072:2;22061:9;22057:18;22050:67;22171:2;22163:6;22159:15;22153:22;22148:2;22137:9;22133:18;22126:50;22223:2;22215:6;22211:15;22205:22;22236:49;22272:12;22236:49;:::i;:::-;22321:12;22316:2;22305:9;22301:18;22294:40;;22383:2;22375:6;22371:15;22365:22;22424:4;22418:3;22407:9;22403:19;22396:33;22452:53;22500:3;22489:9;22485:19;22469:14;22452:53;:::i;22662:774::-;;22839:2;22828:9;22821:21;22884:6;22878:13;22873:2;22862:9;22858:18;22851:41;22939:2;22931:6;22927:15;22921:22;22979:1;22965:12;22962:19;22952:2;;22985:18;;:::i;:::-;23041:12;23036:2;23025:9;23021:18;23014:40;;23108:2;23100:6;23096:15;23090:22;23085:2;23074:9;23070:18;23063:50;23162:2;23154:6;23150:15;23144:22;23203:4;23197:3;23186:9;23182:19;23175:33;23231:53;23279:3;23268:9;23264:19;23248:14;23231:53;:::i;23441:827::-;23646:13;;23623:3;23608:19;;;23668:39;23646:13;23668:39;:::i;:::-;23734:2;23723:9;23716:21;;23793:4;23785:6;23781:17;23775:24;23768:4;23757:9;23753:20;23746:54;23856:4;23848:6;23844:17;23838:24;23831:4;23820:9;23816:20;23809:54;23919:4;23911:6;23907:17;23901:24;23894:4;23883:9;23879:20;23872:54;23982:4;23974:6;23970:17;23964:24;23957:4;23946:9;23942:20;23935:54;24045:4;24037:6;24033:17;24027:24;24020:4;24009:9;24005:20;23998:54;24108:4;24100:6;24096:17;24090:24;24083:4;24072:9;24068:20;24061:54;24171:4;24163:6;24159:17;24153:24;24146:4;24135:9;24131:20;24124:54;24197:6;24257:2;24249:6;24245:15;24239:22;24234:2;24223:9;24219:18;24212:50;;23590:678;;;;:::o;24273:1032::-;24482:13;;24464:32;;24543:4;24531:17;;;24525:24;24451:3;24436:19;;;24558:54;;24591:20;;24525:24;-1:-1:-1;;;;;12142:31:103;12130:44;;12120:60;24558:54;;24661:4;24653:6;24649:17;24643:24;24676:56;24726:4;24715:9;24711:20;24695:14;-1:-1:-1;;;;;12142:31:103;12130:44;;12120:60;24676:56;;24788:4;24780:6;24776:17;24770:24;24763:4;24752:9;24748:20;24741:54;24851:4;24843:6;24839:17;24833:24;24826:4;24815:9;24811:20;24804:54;24914:4;24906:6;24902:17;24896:24;24889:4;24878:9;24874:20;24867:54;24977:4;24969:6;24965:17;24959:24;24952:4;24941:9;24937:20;24930:54;25040:4;25032:6;25028:17;25022:24;25015:4;25004:9;25000:20;24993:54;25066:6;25126:2;25118:6;25114:15;25108:22;25103:2;25092:9;25088:18;25081:50;;25150:6;25210:2;25202:6;25198:15;25192:22;25187:2;25176:9;25172:18;25165:50;;25234:6;25294:2;25286:6;25282:15;25276:22;25271:2;25260:9;25256:18;25249:50;;24418:887;;;;:::o;25745:275::-;25816:2;25810:9;25881:2;25862:13;;-1:-1:-1;;25858:27:103;25846:40;;25916:18;25901:34;;25937:22;;;25898:62;25895:2;;;25963:18;;:::i;:::-;25999:2;25992:22;25790:230;;-1:-1:-1;25790:230:103:o;26025:228::-;;26093:1;26090;26087:8;26084:2;;;-1:-1:-1;;;26118:34:103;;26175:4;26172:1;26165:15;26206:4;26125;26193:18;26084:2;-1:-1:-1;26238:9:103;;26074:179::o;26258:258::-;26330:1;26340:113;26354:6;26351:1;26348:13;26340:113;;;26430:11;;;26424:18;26411:11;;;26404:39;26376:2;26369:10;26340:113;;;26471:6;26468:1;26465:13;26462:2;;;26506:1;26497:6;26492:3;26488:16;26481:27;26462:2;;26311:205;;;:::o;26521:380::-;26606:1;26596:12;;26653:1;26643:12;;;26664:2;;26718:4;26710:6;26706:17;26696:27;;26664:2;26771;26763:6;26760:14;26740:18;26737:38;26734:2;;;26817:10;26812:3;26808:20;26805:1;26798:31;26852:4;26849:1;26842:15;26880:4;26877:1;26870:15;26734:2;;26576:325;;;:::o;26906:127::-;26967:10;26962:3;26958:20;26955:1;26948:31;26998:4;26995:1;26988:15;27022:4;27019:1;27012:15;27038:127;27099:10;27094:3;27090:20;27087:1;27080:31;27130:4;27127:1;27120:15;27154:4;27151:1;27144:15;27170:121;27259:1;27252:5;27249:12;27239:2;;27265:18;;:::i;27296:118::-;27382:1;27375:5;27372:12;27362:2;;27388:18;;:::i;27419:131::-;-1:-1:-1;;;;;27494:31:103;;27484:42;;27474:2;;27540:1;27537;27530:12;27555:115;27644:1;27637:5;27634:12;27624:2;;27660:1;27657;27650:12;27675:112;27761:1;27754:5;27751:12;27741:2;;27777:1;27774;27767:12"},"methodIdentifiers":{"BUNDLE_NAME()":"5e6877be","COMPONENT_NAME()":"51b2fb90","COMPONENT_OWNER_SERVICE_NAME()":"52b5b0ef","INSTANCE_OPERATOR_SERVICE_NAME()":"a3f66bd2","ORACLE_SERVICE_NAME()":"2898312f","POLICY_NAME()":"18ff21c3","POOL_NAME()":"0c131757","PRODUCT_SERVICE_NAME()":"e8828922","RISKPOOL_SERVICE_NAME()":"e543ecb9","TREASURY_NAME()":"50e1a19b","activeBundles(uint256)":"a4266a66","bundles()":"18442e63","claims(bytes32)":"eff0f592","contractName(uint256)":"f6b3e7d0","contracts()":"6c0f79b6","getActiveBundleId(uint256,uint256)":"ec833b0c","getApplication(bytes32)":"bc506f64","getBalance(uint256)":"1e010439","getBundle(uint256)":"2d0821b7","getBundleToken()":"eb35783c","getCapacity(uint256)":"bcd5349f","getCapital(uint256)":"29560980","getChainId()":"3408e470","getChainName()":"d722b0bc","getClaim(bytes32,uint256)":"7f22c2d9","getComponent(uint256)":"4f27da18","getComponentId(address)":"2b1c7f73","getComponentOwnerService()":"6fa29853","getComponentState(uint256)":"5e966e45","getComponentToken(uint256)":"038696bb","getComponentType(uint256)":"dd51c86a","getDefaultAdminRole()":"52a9c8d7","getFeeFractionFullUnit()":"6319112b","getFullCollateralizationLevel()":"f1d354d0","getInstanceId()":"1551100f","getInstanceOperator()":"39c6fa90","getInstanceOperatorService()":"091924dc","getInstanceWallet()":"a44330c4","getMaximumNumberOfActiveBundles(uint256)":"7db32844","getMetadata(bytes32)":"a5961b4c","getOracleId(uint256)":"a5c0f5a1","getOracleProviderRole()":"d49d21c0","getOracleService()":"a7ecda36","getPayout(bytes32,uint256)":"cef58f13","getPolicy(bytes32)":"a3f685f9","getProductId(uint256)":"9f77a605","getProductOwnerRole()":"775a4048","getProductService()":"4288121d","getRegistry()":"5ab1bd53","getRiskpool(uint256)":"eb802114","getRiskpoolId(uint256)":"ff3f3883","getRiskpoolKeeperRole()":"3ffdd2f3","getRiskpoolService()":"442ed817","getRiskpoolWallet(uint256)":"49081637","getStakedAssets(uint256)":"3a42b053","getStakingRequirements(uint256)":"ab9c6ee4","getTotalValueLocked(uint256)":"3f5d9235","getTreasuryAddress()":"e0024604","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","oracles()":"2857373a","payouts(bytes32)":"aeddb905","processIds()":"a427056e","products()":"c71e261f","riskpools()":"a054381f","unburntBundles(uint256)":"c559783e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BUNDLE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMPONENT_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMPONENT_OWNER_SERVICE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INSTANCE_OPERATOR_SERVICE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ORACLE_SERVICE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POLICY_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POOL_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRODUCT_SERVICE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RISKPOOL_SERVICE_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfClaims\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"contractName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfContracts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bundleIdx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getApplication\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balanceAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBundleToken\",\"outputs\":[{\"internalType\":\"contract IBundleToken\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"capacityAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"capitalAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"chainName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"getClaim\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.ClaimState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paidAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Claim\",\"name\":\"claim\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getComponent\",\"outputs\":[{\"internalType\":\"contract IComponent\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"}],\"name\":\"getComponentId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getComponentOwnerService\",\"outputs\":[{\"internalType\":\"contract IComponentOwnerService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"componentState\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"getComponentType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDefaultAdminRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeFractionFullUnit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"instanceId\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceOperator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceOperatorService\",\"outputs\":[{\"internalType\":\"contract IInstanceOperatorService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInstanceWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bpKey\",\"type\":\"bytes32\"}],\"name\":\"getMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PolicyFlowState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getOracleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"oracleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleProviderRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOracleService\",\"outputs\":[{\"internalType\":\"contract IOracleService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"getPayout\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"enum IPolicy.PayoutState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Payout\",\"name\":\"payout\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"getPolicy\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IPolicy.PolicyState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumExpectedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"premiumPaidAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openClaimsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutMaxAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Policy\",\"name\":\"policy\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getProductId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"productId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductOwnerRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProductService\",\"outputs\":[{\"internalType\":\"contract IProductService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpool\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredAtRisk\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPool.Pool\",\"name\":\"riskPool\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolKeeperRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolService\",\"outputs\":[{\"internalType\":\"contract IRiskpoolService\",\"name\":\"service\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getRiskpoolWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getStakedAssets\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getStakingRequirements\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalValueLockedAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasuryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"principal\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"payouts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfPayouts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"processIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfProcessIds\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"products\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"riskpools\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"name\":\"unburntBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfUnburntBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/InstanceService.sol\":\"InstanceService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Product.sol\":{\"keccak256\":\"0xdf55ff9638da4db1501362fc2ffcd26858b7c09b7cc5e0701f1bb31081142815\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fdbfbd830dafe0d721150778469cbbdf01058f8713c3636d2ba48234761e8590\",\"dweb:/ipfs/QmZ9K5X2ant5TtUhA9kgXUAMe7y9MUHpnv3PQUKAmxwVYj\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x5b35d8e68aeaccc685239bd9dd79b9ba01a0357930f8a3307ab85511733d9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba8eb2d22f9321bd4660f6617c181d9611ff30a9b089408b8c6e2216d6d5cdc5\",\"dweb:/ipfs/QmTSJvhjHfnUV1j4hsqDv8PmLvGBLRs9gHLjTUXrUJ5Y9q\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/AccessController.sol\":{\"keccak256\":\"0xc8293dfdc5c092e2fcea16d8a68117c9367dd09b3d951b5e730a588652212928\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://91e551839506ea79fadff0e2ea72c033c5d68d61a8414301307a172dc770f885\",\"dweb:/ipfs/QmWibGimWPLxXgNcpKUPidyTTBqvyjdV2dnQfNGfWMDgJ8\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/modules/TreasuryModule.sol\":{\"keccak256\":\"0x5b816938607e52b8e3811a426b7c31377109b12c665d3889bdc0fc38b5d1039c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81900732664f85ed367e3c78020bc2bd78e8521dd928f3fd5bcd39ce0ce1dcf0\",\"dweb:/ipfs/QmPcRYLq6SJvZkMnoSZAocCKw9m83oXezNaDsmHJ6UWr4E\"]},\"contracts/services/InstanceOperatorService.sol\":{\"keccak256\":\"0xc81b4b5142137add01ca290d8ebfa560b487c73a074df4d914ad734f047bfba2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8a2679741b690346dc2d2488d5a57693fe5a080882a78b5cfccc68258a710e5f\",\"dweb:/ipfs/QmUGDdo53xM1iWVcZ9MtYBb5LYXXemS6vfwnpXSGcuJEL8\"]},\"contracts/services/InstanceService.sol\":{\"keccak256\":\"0x3c8e07cdea76938530dee66981d77f49f53194b074a7298ce9214842ae48296e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1154648e46a9996186b546542557a3addbb4aa639d9923b160ff24c1d2c366ff\",\"dweb:/ipfs/QmRbCqxXpe9zMcTPoRKCQU6m8kPDbfuvk7cF1fSsoayrre\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/test/TestProduct.sol\":{\"keccak256\":\"0x2e678b5aa5698dcd7869eef379bfd156677dd4f5ece499e0dcc29614437e58a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://87e6535b924036b2b8d08c516519de66ea362dec109249675acc95471cb71989\",\"dweb:/ipfs/QmVnFPF4u2XZPHXSkqQD5qPDMnDPAYoDwjquVTrUnXVxh7\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/services/OracleService.sol":{"OracleService":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_requestId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"respond","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61053c806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063e409534a14610050575b600080fd5b61004e6100493660046103f1565b610063565b005b61004e61005e366004610430565b6101ed565b600054610100900460ff16158080156100835750600054600160ff909116105b806100a4575061009230610258565b1580156100a4575060005460ff166001145b61010c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561012f576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610159600090565b6541636365737360d01b1461019b5761017a6541636365737360d01b61026b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101a3610353565b80156101e9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b0316639af8c4ba843385856040518563ffffffff1660e01b815260040161022194939291906104a7565b600060405180830381600087803b15801561023b57600080fd5b505af115801561024f573d6000803e3d6000fd5b50505050505050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156102b557600080fd5b505afa1580156102c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ed9190610414565b90506001600160a01b0381166102665760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610103565b600054610100900460ff166103be5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610103565b6103cf64517565727960d81b61026b565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610402578081fd5b813561040d816104ee565b9392505050565b600060208284031215610425578081fd5b815161040d816104ee565b600080600060408486031215610444578182fd5b83359250602084013567ffffffffffffffff80821115610462578384fd5b818601915086601f830112610475578384fd5b813581811115610483578485fd5b876020828501011115610494578485fd5b6020830194508093505050509250925092565b8481526001600160a01b03841660208201526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6001600160a01b038116811461050357600080fd5b5056fea26469706673582212204a53d69cc77e9e0eeba3f4165d92870605fe025baa935bbfaef8c2a6955096a464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x53C DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE409534A EQ PUSH2 0x50 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F1 JUMP JUMPDEST PUSH2 0x63 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4E PUSH2 0x5E CALLDATASIZE PUSH1 0x4 PUSH2 0x430 JUMP JUMPDEST PUSH2 0x1ED JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x83 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xA4 JUMPI POP PUSH2 0x92 ADDRESS PUSH2 0x258 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xA4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x10C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x12F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x159 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x19B JUMPI PUSH2 0x17A PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x26B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1A3 PUSH2 0x353 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9AF8C4BA DUP5 CALLER DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x221 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0x414 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x266 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x3CF PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x26B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x402 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x40D DUP2 PUSH2 0x4EE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x425 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x40D DUP2 PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x444 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x462 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x475 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x483 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x494 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A MSTORE8 0xD6 SWAP13 0xC7 PUSH31 0x9E0EEBA3F4165D92870605FE025BAA935BBFAEF8C2A6955096A464736F6C63 NUMBER STOP ADDMOD MUL STOP CALLER ","sourceMap":"240:447:85:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;240:447:85;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;240:447:85;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3570:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"648:603:103","statements":[{"body":{"nodeType":"YulBlock","src":"694:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"703:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"711:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"696:6:103"},"nodeType":"YulFunctionCall","src":"696:22:103"},"nodeType":"YulExpressionStatement","src":"696:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"669:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"678:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"665:3:103"},"nodeType":"YulFunctionCall","src":"665:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"690:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"661:3:103"},"nodeType":"YulFunctionCall","src":"661:32:103"},"nodeType":"YulIf","src":"658:2:103"},{"nodeType":"YulAssignment","src":"729:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"752:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"739:12:103"},"nodeType":"YulFunctionCall","src":"739:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"729:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"771:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"813:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"798:3:103"},"nodeType":"YulFunctionCall","src":"798:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"785:12:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"775:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"826:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"836:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"830:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"881:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"890:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"898:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"883:6:103"},"nodeType":"YulFunctionCall","src":"883:22:103"},"nodeType":"YulExpressionStatement","src":"883:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"869:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"877:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"866:2:103"},"nodeType":"YulFunctionCall","src":"866:14:103"},"nodeType":"YulIf","src":"863:2:103"},{"nodeType":"YulVariableDeclaration","src":"916:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"930:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"941:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"926:3:103"},"nodeType":"YulFunctionCall","src":"926:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"920:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"996:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1005:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1013:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"998:6:103"},"nodeType":"YulFunctionCall","src":"998:22:103"},"nodeType":"YulExpressionStatement","src":"998:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"975:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"979:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"971:3:103"},"nodeType":"YulFunctionCall","src":"971:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"986:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"960:6:103"},"nodeType":"YulFunctionCall","src":"960:35:103"},"nodeType":"YulIf","src":"957:2:103"},{"nodeType":"YulVariableDeclaration","src":"1031:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1058:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1045:12:103"},"nodeType":"YulFunctionCall","src":"1045:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1035:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1088:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1097:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1105:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1090:6:103"},"nodeType":"YulFunctionCall","src":"1090:22:103"},"nodeType":"YulExpressionStatement","src":"1090:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1076:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1084:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1073:2:103"},"nodeType":"YulFunctionCall","src":"1073:14:103"},"nodeType":"YulIf","src":"1070:2:103"},{"body":{"nodeType":"YulBlock","src":"1164:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1173:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1181:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1166:6:103"},"nodeType":"YulFunctionCall","src":"1166:22:103"},"nodeType":"YulExpressionStatement","src":"1166:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1137:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"1141:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1133:3:103"},"nodeType":"YulFunctionCall","src":"1133:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"1150:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1129:3:103"},"nodeType":"YulFunctionCall","src":"1129:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1155:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1126:2:103"},"nodeType":"YulFunctionCall","src":"1126:37:103"},"nodeType":"YulIf","src":"1123:2:103"},{"nodeType":"YulAssignment","src":"1199:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1213:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1217:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1209:3:103"},"nodeType":"YulFunctionCall","src":"1209:11:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1199:6:103"}]},{"nodeType":"YulAssignment","src":"1229:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"1239:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1229:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"598:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"609:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"621:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"629:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"637:6:103","type":""}],"src":"542:709:103"},{"body":{"nodeType":"YulBlock","src":"1357:76:103","statements":[{"nodeType":"YulAssignment","src":"1367:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1379:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1390:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1375:3:103"},"nodeType":"YulFunctionCall","src":"1375:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1367:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1409:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1420:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1402:6:103"},"nodeType":"YulFunctionCall","src":"1402:25:103"},"nodeType":"YulExpressionStatement","src":"1402:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1326:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1337:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1348:4:103","type":""}],"src":"1256:177:103"},{"body":{"nodeType":"YulBlock","src":"1545:87:103","statements":[{"nodeType":"YulAssignment","src":"1555:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1567:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1578:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1563:3:103"},"nodeType":"YulFunctionCall","src":"1563:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1555:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1597:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1612:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1620:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1608:3:103"},"nodeType":"YulFunctionCall","src":"1608:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1590:6:103"},"nodeType":"YulFunctionCall","src":"1590:36:103"},"nodeType":"YulExpressionStatement","src":"1590:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1514:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1525:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1536:4:103","type":""}],"src":"1438:194:103"},{"body":{"nodeType":"YulBlock","src":"1811:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1828:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1839:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1821:6:103"},"nodeType":"YulFunctionCall","src":"1821:21:103"},"nodeType":"YulExpressionStatement","src":"1821:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1862:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1873:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1858:3:103"},"nodeType":"YulFunctionCall","src":"1858:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1878:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1851:6:103"},"nodeType":"YulFunctionCall","src":"1851:30:103"},"nodeType":"YulExpressionStatement","src":"1851:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1901:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1912:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1897:3:103"},"nodeType":"YulFunctionCall","src":"1897:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1917:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1890:6:103"},"nodeType":"YulFunctionCall","src":"1890:62:103"},"nodeType":"YulExpressionStatement","src":"1890:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1972:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1983:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1968:3:103"},"nodeType":"YulFunctionCall","src":"1968:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1988:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1961:6:103"},"nodeType":"YulFunctionCall","src":"1961:35:103"},"nodeType":"YulExpressionStatement","src":"1961:35:103"},{"nodeType":"YulAssignment","src":"2005:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2017:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2028:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2013:3:103"},"nodeType":"YulFunctionCall","src":"2013:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2005:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1788:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1802:4:103","type":""}],"src":"1637:401:103"},{"body":{"nodeType":"YulBlock","src":"2217:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2234:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2245:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2227:6:103"},"nodeType":"YulFunctionCall","src":"2227:21:103"},"nodeType":"YulExpressionStatement","src":"2227:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2268:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2279:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2264:3:103"},"nodeType":"YulFunctionCall","src":"2264:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2284:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2257:6:103"},"nodeType":"YulFunctionCall","src":"2257:30:103"},"nodeType":"YulExpressionStatement","src":"2257:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2307:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2318:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2303:3:103"},"nodeType":"YulFunctionCall","src":"2303:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2323:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2296:6:103"},"nodeType":"YulFunctionCall","src":"2296:62:103"},"nodeType":"YulExpressionStatement","src":"2296:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2378:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2389:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2374:3:103"},"nodeType":"YulFunctionCall","src":"2374:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2394:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2367:6:103"},"nodeType":"YulFunctionCall","src":"2367:44:103"},"nodeType":"YulExpressionStatement","src":"2367:44:103"},{"nodeType":"YulAssignment","src":"2420:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2432:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2443:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2428:3:103"},"nodeType":"YulFunctionCall","src":"2428:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2420:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2194:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2208:4:103","type":""}],"src":"2043:410:103"},{"body":{"nodeType":"YulBlock","src":"2632:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2649:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2660:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2642:6:103"},"nodeType":"YulFunctionCall","src":"2642:21:103"},"nodeType":"YulExpressionStatement","src":"2642:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2683:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2694:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2679:3:103"},"nodeType":"YulFunctionCall","src":"2679:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2699:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2672:6:103"},"nodeType":"YulFunctionCall","src":"2672:30:103"},"nodeType":"YulExpressionStatement","src":"2672:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2722:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2733:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2718:3:103"},"nodeType":"YulFunctionCall","src":"2718:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2738:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2711:6:103"},"nodeType":"YulFunctionCall","src":"2711:62:103"},"nodeType":"YulExpressionStatement","src":"2711:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2793:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2804:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2789:3:103"},"nodeType":"YulFunctionCall","src":"2789:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2809:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2782:6:103"},"nodeType":"YulFunctionCall","src":"2782:41:103"},"nodeType":"YulExpressionStatement","src":"2782:41:103"},{"nodeType":"YulAssignment","src":"2832:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2855:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2840:3:103"},"nodeType":"YulFunctionCall","src":"2840:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2832:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2609:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2623:4:103","type":""}],"src":"2458:407:103"},{"body":{"nodeType":"YulBlock","src":"3055:377:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3072:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3083:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3065:6:103"},"nodeType":"YulFunctionCall","src":"3065:25:103"},"nodeType":"YulExpressionStatement","src":"3065:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3121:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3106:3:103"},"nodeType":"YulFunctionCall","src":"3106:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"3130:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3146:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3151:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3142:3:103"},"nodeType":"YulFunctionCall","src":"3142:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3155:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3138:3:103"},"nodeType":"YulFunctionCall","src":"3138:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3126:3:103"},"nodeType":"YulFunctionCall","src":"3126:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3099:6:103"},"nodeType":"YulFunctionCall","src":"3099:60:103"},"nodeType":"YulExpressionStatement","src":"3099:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3179:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3190:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3175:3:103"},"nodeType":"YulFunctionCall","src":"3175:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3195:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3168:6:103"},"nodeType":"YulFunctionCall","src":"3168:30:103"},"nodeType":"YulExpressionStatement","src":"3168:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3218:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3229:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3214:3:103"},"nodeType":"YulFunctionCall","src":"3214:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"3234:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3207:6:103"},"nodeType":"YulFunctionCall","src":"3207:34:103"},"nodeType":"YulExpressionStatement","src":"3207:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3267:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3278:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3263:3:103"},"nodeType":"YulFunctionCall","src":"3263:19:103"},{"name":"value2","nodeType":"YulIdentifier","src":"3284:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"3292:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3250:12:103"},"nodeType":"YulFunctionCall","src":"3250:49:103"},"nodeType":"YulExpressionStatement","src":"3250:49:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3323:9:103"},{"name":"value3","nodeType":"YulIdentifier","src":"3334:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3319:3:103"},"nodeType":"YulFunctionCall","src":"3319:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"3343:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3315:3:103"},"nodeType":"YulFunctionCall","src":"3315:32:103"},{"name":"tail","nodeType":"YulIdentifier","src":"3349:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3308:6:103"},"nodeType":"YulFunctionCall","src":"3308:46:103"},"nodeType":"YulExpressionStatement","src":"3308:46:103"},{"nodeType":"YulAssignment","src":"3363:63:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3379:9:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"3398:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3406:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3394:3:103"},"nodeType":"YulFunctionCall","src":"3394:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3415:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3411:3:103"},"nodeType":"YulFunctionCall","src":"3411:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3390:3:103"},"nodeType":"YulFunctionCall","src":"3390:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3375:3:103"},"nodeType":"YulFunctionCall","src":"3375:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"3422:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3371:3:103"},"nodeType":"YulFunctionCall","src":"3371:55:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3363:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_address_t_bytes_calldata_ptr__to_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3000:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3011:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3019:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3027:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3035:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3046:4:103","type":""}],"src":"2870:562:103"},{"body":{"nodeType":"YulBlock","src":"3482:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"3546:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3555:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3558:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3548:6:103"},"nodeType":"YulFunctionCall","src":"3548:12:103"},"nodeType":"YulExpressionStatement","src":"3548:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3505:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3516:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3531:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3536:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3527:3:103"},"nodeType":"YulFunctionCall","src":"3527:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3540:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3523:3:103"},"nodeType":"YulFunctionCall","src":"3523:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3512:3:103"},"nodeType":"YulFunctionCall","src":"3512:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3502:2:103"},"nodeType":"YulFunctionCall","src":"3502:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3495:6:103"},"nodeType":"YulFunctionCall","src":"3495:50:103"},"nodeType":"YulIf","src":"3492:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3471:5:103","type":""}],"src":"3437:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value1, value1) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value1, value1) }\n value1 := add(_2, 32)\n value2 := length\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256_t_address_t_bytes_calldata_ptr__to_t_uint256_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), 96)\n mstore(add(headStart, 96), value3)\n calldatacopy(add(headStart, 128), value2, value3)\n mstore(add(add(headStart, value3), 128), tail)\n tail := add(add(headStart, and(add(value3, 31), not(31))), 128)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063e409534a14610050575b600080fd5b61004e6100493660046103f1565b610063565b005b61004e61005e366004610430565b6101ed565b600054610100900460ff16158080156100835750600054600160ff909116105b806100a4575061009230610258565b1580156100a4575060005460ff166001145b61010c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561012f576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610159600090565b6541636365737360d01b1461019b5761017a6541636365737360d01b61026b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101a3610353565b80156101e9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b0316639af8c4ba843385856040518563ffffffff1660e01b815260040161022194939291906104a7565b600060405180830381600087803b15801561023b57600080fd5b505af115801561024f573d6000803e3d6000fd5b50505050505050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156102b557600080fd5b505afa1580156102c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ed9190610414565b90506001600160a01b0381166102665760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610103565b600054610100900460ff166103be5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610103565b6103cf64517565727960d81b61026b565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610402578081fd5b813561040d816104ee565b9392505050565b600060208284031215610425578081fd5b815161040d816104ee565b600080600060408486031215610444578182fd5b83359250602084013567ffffffffffffffff80821115610462578384fd5b818601915086601f830112610475578384fd5b813581811115610483578485fd5b876020828501011115610494578485fd5b6020830194508093505050509250925092565b8481526001600160a01b03841660208201526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6001600160a01b038116811461050357600080fd5b5056fea26469706673582212204a53d69cc77e9e0eeba3f4165d92870605fe025baa935bbfaef8c2a6955096a464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE409534A EQ PUSH2 0x50 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x49 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F1 JUMP JUMPDEST PUSH2 0x63 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x4E PUSH2 0x5E CALLDATASIZE PUSH1 0x4 PUSH2 0x430 JUMP JUMPDEST PUSH2 0x1ED JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x83 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0xA4 JUMPI POP PUSH2 0x92 ADDRESS PUSH2 0x258 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0xA4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x10C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x12F JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x159 PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x19B JUMPI PUSH2 0x17A PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x26B JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x1A3 PUSH2 0x353 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1E9 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x9AF8C4BA DUP5 CALLER DUP6 DUP6 PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x221 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ED SWAP2 SWAP1 PUSH2 0x414 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x266 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x103 JUMP JUMPDEST PUSH2 0x3CF PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x26B JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x402 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x40D DUP2 PUSH2 0x4EE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x425 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x40D DUP2 PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x444 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x462 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x475 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x483 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x494 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x503 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A MSTORE8 0xD6 SWAP13 0xC7 PUSH31 0x9E0EEBA3F4165D92870605FE025BAA935BBFAEF8C2A6955096A464736F6C63 NUMBER STOP ADDMOD MUL STOP CALLER ","sourceMap":"240:447:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1143:232:88;;;;;;:::i;:::-;;:::i;:::-;;472:213:85;;;;;;:::i;:::-;;:::i;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;2245:2:103;3146:190:47;;;2227:21:103;2284:2;2264:18;;;2257:30;2323:34;2303:18;;;2296:62;-1:-1:-1;;;2374:18:103;;;2367:44;2428:19;;3146:190:47;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;1590:36:103;;3531:14:47;;1578:2:103;1563:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;472:213:85:-;631:6;;-1:-1:-1;;;;;631:6:85;:14;646:10;719::59;672:5:85;;631:47;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;472:213;;;:::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;1402:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;1375:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;1839:2:103;1703:113:88;;;1821:21:103;1878:2;1858:18;;;1851:30;1917:34;1897:18;;;1890:62;-1:-1:-1;;;1968:18:103;;;1961:35;2013:19;;1703:113:88;1811:227:103;341:125:85;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;2660:2:103;4880:69:47;;;2642:21:103;2699:2;2679:18;;;2672:30;2738:34;2718:18;;;2711:62;-1:-1:-1;;;2789:18:103;;;2782:41;2840:19;;4880:69:47;2632:233:103;4880:69:47;430:28:85::1;-1:-1:-1::0;;;430:19:85::1;:28::i;:::-;414:6;:45:::0;;-1:-1:-1;;;;;;414:45:85::1;-1:-1:-1::0;;;;;414:45:85;;;::::1;::::0;;;::::1;::::0;;341:125::o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:709::-;;;;690:2;678:9;669:7;665:23;661:32;658:2;;;711:6;703;696:22;658:2;752:9;739:23;729:33;;813:2;802:9;798:18;785:32;836:18;877:2;869:6;866:14;863:2;;;898:6;890;883:22;863:2;941:6;930:9;926:22;916:32;;986:7;979:4;975:2;971:13;967:27;957:2;;1013:6;1005;998:22;957:2;1058;1045:16;1084:2;1076:6;1073:14;1070:2;;;1105:6;1097;1090:22;1070:2;1155:7;1150:2;1141:6;1137:2;1133:15;1129:24;1126:37;1123:2;;;1181:6;1173;1166:22;1123:2;1217;1213;1209:11;1199:21;;1239:6;1229:16;;;;;648:603;;;;;:::o;2870:562::-;3065:25;;;-1:-1:-1;;;;;3126:32:103;;3121:2;3106:18;;3099:60;3195:2;3190;3175:18;;3168:30;;;3214:18;;3207:34;;;2870:562;3234:6;3284;3278:3;3263:19;;3250:49;3319:22;;;3343:3;3315:32;;;3308:46;;;;3415:2;3394:15;;;-1:-1:-1;;3390:29:103;3375:45;3371:55;;3055:377;-1:-1:-1;;;3055:377:103:o;3437:131::-;-1:-1:-1;;;;;3512:31:103;;3502:42;;3492:2;;3558:1;3555;3548:12;3492:2;3482:86;:::o"},"methodIdentifiers":{"initialize(address)":"c4d66de8","respond(uint256,bytes)":"e409534a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"respond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/OracleService.sol\":\"OracleService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IQuery.sol\":{\"keccak256\":\"0x258f4e8ea95adda3b3057f78d3fdb203bf8a4c4b2eac2a8124b24049e3956a60\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce628088811c284b372fdc54e8f8611fe2f791e9c762ed81ccc2ede213789d32\",\"dweb:/ipfs/QmXWhBAJNb4MZ9SHcuH4kHjUauPzUwkJR7cqd61RhxgeU9\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/services/OracleService.sol\":{\"keccak256\":\"0xb5e050650453ba1bf9f4d0051fafbe5db98175b2b06c7719beac9124f7527225\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e1a4223153a73395e0faa213851966b6d7ef235cc1ee18603b7a44dfd15a3935\",\"dweb:/ipfs/QmdvmZHfD7q2Y4Hq9dp6rbsY5woKBAsTfCuihn6ALnoCJq\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/services/ProductService.sol":{"ProductService":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractFromRegistry","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:326:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:229:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"268:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"277:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"285:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"270:6:103"},"nodeType":"YulFunctionCall","src":"270:22:103"},"nodeType":"YulExpressionStatement","src":"270:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"238:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"249:3:103"},"nodeType":"YulFunctionCall","src":"249:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"245:3:103"},"nodeType":"YulFunctionCall","src":"245:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"234:3:103"},"nodeType":"YulFunctionCall","src":"234:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"224:2:103"},"nodeType":"YulFunctionCall","src":"224:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"217:6:103"},"nodeType":"YulFunctionCall","src":"217:50:103"},"nodeType":"YulIf","src":"214:2:103"},{"nodeType":"YulAssignment","src":"303:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"313:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:310:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b506040516104f03803806104f083398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c61045261009e600039600081816101a00152818161023a01526102fe01526104526000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80637b1039991461019b578063a3f4df7e146101df578063a5b25e7114610205575b60008061004c610218565b6001600160a01b031663d3e9c314336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160606040518083038186803b15801561009a57600080fd5b505afa1580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d291906103db565b9250925050816101295760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5052532d3030313a4e4f545f415554484f52495a45440000000060448201526064015b60405180910390fd5b6001600160a01b03811661018e5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5052532d3030323a504f4c4943595f464c4f575f4e4f545f524560448201526514d3d315915160d21b6064820152608401610120565b610197816102c1565b5050005b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f76d50726f647563745365727669636560901b81565b6040519081526020016101d6565b6101c26102133660046103c3565b6102e5565b604051631c2d8fb360e31b8152664c6963656e736560c81b60048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561028457600080fd5b505afa158015610298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bc91906103a2565b905090565b3660008037600080366000845af43d6000803e8080156102e0573d6000f35b3d6000fd5b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561034857600080fd5b505afa15801561035c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038091906103a2565b92915050565b80516001600160a01b038116811461039d57600080fd5b919050565b6000602082840312156103b3578081fd5b6103bc82610386565b9392505050565b6000602082840312156103d4578081fd5b5035919050565b6000806000606084860312156103ef578182fd5b8351925060208401518015158114610405578283fd5b915061041360408501610386565b9050925092509256fea26469706673582212207b859cebd9125a360f4471ca57be175d7287894fb1de6366e38c493b36feefb564736f6c63430008020033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x4F0 CODESIZE SUB DUP1 PUSH2 0x4F0 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x44 JUMP JUMPDEST PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH2 0x72 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x55 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6B JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x452 PUSH2 0x9E PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH2 0x1A0 ADD MSTORE DUP2 DUP2 PUSH2 0x23A ADD MSTORE PUSH2 0x2FE ADD MSTORE PUSH2 0x452 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x205 JUMPI JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4C PUSH2 0x218 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD3E9C314 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x3DB JUMP JUMPDEST SWAP3 POP SWAP3 POP POP DUP2 PUSH2 0x129 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052532D3030313A4E4F545F415554484F52495A454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x18E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052532D3030323A504F4C4943595F464C4F575F4E4F545F5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x14D3D3159151 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x120 JUMP JUMPDEST PUSH2 0x197 DUP2 PUSH2 0x2C1 JUMP JUMPDEST POP POP STOP JUMPDEST PUSH2 0x1C2 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F7 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1D6 JUMP JUMPDEST PUSH2 0x1C2 PUSH2 0x213 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C3 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH7 0x4C6963656E7365 PUSH1 0xC8 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x284 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x298 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2BC SWAP2 SWAP1 PUSH2 0x3A2 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x2E0 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x35C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x380 SWAP2 SWAP1 PUSH2 0x3A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3BC DUP3 PUSH2 0x386 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3EF JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x405 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP2 POP PUSH2 0x413 PUSH1 0x40 DUP6 ADD PUSH2 0x386 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x859CEBD9125A360F4471CA57BE175D7287894FB1DE6366E38C493B36 INVALID 0xEF 0xB5 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"261:2015:86:-:0;;;450:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1300:31:91;;-1:-1:-1;;;;;;1300:31:91;;;261:2015:86;;14:310:103;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:103;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:103:o;:::-;261:2015:86;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2687:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"489:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"535:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"544:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"552:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"537:6:103"},"nodeType":"YulFunctionCall","src":"537:22:103"},"nodeType":"YulExpressionStatement","src":"537:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"510:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"519:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"506:3:103"},"nodeType":"YulFunctionCall","src":"506:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"531:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"502:3:103"},"nodeType":"YulFunctionCall","src":"502:32:103"},"nodeType":"YulIf","src":"499:2:103"},{"nodeType":"YulAssignment","src":"570:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"593:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"580:12:103"},"nodeType":"YulFunctionCall","src":"580:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"570:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"455:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"466:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"478:6:103","type":""}],"src":"419:190:103"},{"body":{"nodeType":"YulBlock","src":"726:331:103","statements":[{"body":{"nodeType":"YulBlock","src":"772:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"781:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"789:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"774:6:103"},"nodeType":"YulFunctionCall","src":"774:22:103"},"nodeType":"YulExpressionStatement","src":"774:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"747:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"756:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"743:3:103"},"nodeType":"YulFunctionCall","src":"743:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"768:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"739:3:103"},"nodeType":"YulFunctionCall","src":"739:32:103"},"nodeType":"YulIf","src":"736:2:103"},{"nodeType":"YulAssignment","src":"807:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"823:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"817:5:103"},"nodeType":"YulFunctionCall","src":"817:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"807:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"842:38:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"876:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"861:3:103"},"nodeType":"YulFunctionCall","src":"861:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"855:5:103"},"nodeType":"YulFunctionCall","src":"855:25:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"846:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"933:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"942:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"950:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"935:6:103"},"nodeType":"YulFunctionCall","src":"935:22:103"},"nodeType":"YulExpressionStatement","src":"935:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"902:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"923:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"916:6:103"},"nodeType":"YulFunctionCall","src":"916:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"909:6:103"},"nodeType":"YulFunctionCall","src":"909:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"899:2:103"},"nodeType":"YulFunctionCall","src":"899:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"892:6:103"},"nodeType":"YulFunctionCall","src":"892:40:103"},"nodeType":"YulIf","src":"889:2:103"},{"nodeType":"YulAssignment","src":"968:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"978:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"968:6:103"}]},{"nodeType":"YulAssignment","src":"992:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1047:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1032:3:103"},"nodeType":"YulFunctionCall","src":"1032:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1002:29:103"},"nodeType":"YulFunctionCall","src":"1002:49:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"992:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_boolt_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"676:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"687:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"699:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"707:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"715:6:103","type":""}],"src":"614:443:103"},{"body":{"nodeType":"YulBlock","src":"1163:102:103","statements":[{"nodeType":"YulAssignment","src":"1173:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1185:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1196:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1181:3:103"},"nodeType":"YulFunctionCall","src":"1181:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1173:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1215:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1230:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1246:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1251:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1242:3:103"},"nodeType":"YulFunctionCall","src":"1242:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1255:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1238:3:103"},"nodeType":"YulFunctionCall","src":"1238:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1226:3:103"},"nodeType":"YulFunctionCall","src":"1226:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1208:6:103"},"nodeType":"YulFunctionCall","src":"1208:51:103"},"nodeType":"YulExpressionStatement","src":"1208:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1132:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1143:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1154:4:103","type":""}],"src":"1062:203:103"},{"body":{"nodeType":"YulBlock","src":"1371:76:103","statements":[{"nodeType":"YulAssignment","src":"1381:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1404:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1389:3:103"},"nodeType":"YulFunctionCall","src":"1389:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1381:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1423:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1434:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1416:6:103"},"nodeType":"YulFunctionCall","src":"1416:25:103"},"nodeType":"YulExpressionStatement","src":"1416:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1340:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1351:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1362:4:103","type":""}],"src":"1270:177:103"},{"body":{"nodeType":"YulBlock","src":"1571:102:103","statements":[{"nodeType":"YulAssignment","src":"1581:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1593:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1604:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1589:3:103"},"nodeType":"YulFunctionCall","src":"1589:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1581:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1623:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1638:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1654:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1659:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1650:3:103"},"nodeType":"YulFunctionCall","src":"1650:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1663:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1646:3:103"},"nodeType":"YulFunctionCall","src":"1646:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1634:3:103"},"nodeType":"YulFunctionCall","src":"1634:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1616:6:103"},"nodeType":"YulFunctionCall","src":"1616:51:103"},"nodeType":"YulExpressionStatement","src":"1616:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1540:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1551:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1562:4:103","type":""}],"src":"1452:221:103"},{"body":{"nodeType":"YulBlock","src":"1852:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1869:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1880:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1862:6:103"},"nodeType":"YulFunctionCall","src":"1862:21:103"},"nodeType":"YulExpressionStatement","src":"1862:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1914:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1899:3:103"},"nodeType":"YulFunctionCall","src":"1899:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1919:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1892:6:103"},"nodeType":"YulFunctionCall","src":"1892:30:103"},"nodeType":"YulExpressionStatement","src":"1892:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1953:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1938:3:103"},"nodeType":"YulFunctionCall","src":"1938:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1958:30:103","type":"","value":"ERROR:PRS-001:NOT_AUTHORIZED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1931:6:103"},"nodeType":"YulFunctionCall","src":"1931:58:103"},"nodeType":"YulExpressionStatement","src":"1931:58:103"},{"nodeType":"YulAssignment","src":"1998:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2010:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2021:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2006:3:103"},"nodeType":"YulFunctionCall","src":"2006:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1998:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2ea29d619e783380245e9479bc50992b7e9e66d498084c15d9aeb14649a09dc3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1829:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1843:4:103","type":""}],"src":"1678:352:103"},{"body":{"nodeType":"YulBlock","src":"2209:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2237:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2219:6:103"},"nodeType":"YulFunctionCall","src":"2219:21:103"},"nodeType":"YulExpressionStatement","src":"2219:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2260:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2271:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2256:3:103"},"nodeType":"YulFunctionCall","src":"2256:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2276:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2249:6:103"},"nodeType":"YulFunctionCall","src":"2249:30:103"},"nodeType":"YulExpressionStatement","src":"2249:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2299:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2310:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2295:3:103"},"nodeType":"YulFunctionCall","src":"2295:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2315:34:103","type":"","value":"ERROR:PRS-002:POLICY_FLOW_NOT_RE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2288:6:103"},"nodeType":"YulFunctionCall","src":"2288:62:103"},"nodeType":"YulExpressionStatement","src":"2288:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2370:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2381:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2366:3:103"},"nodeType":"YulFunctionCall","src":"2366:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2386:8:103","type":"","value":"SOLVED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2359:6:103"},"nodeType":"YulFunctionCall","src":"2359:36:103"},"nodeType":"YulExpressionStatement","src":"2359:36:103"},{"nodeType":"YulAssignment","src":"2404:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2427:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2412:3:103"},"nodeType":"YulFunctionCall","src":"2412:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2404:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3481a442355178eff70c53b479d1406dd857fddda3e91ffea746909cf740d5cd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2186:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2200:4:103","type":""}],"src":"2035:402:103"},{"body":{"nodeType":"YulBlock","src":"2606:79:103","statements":[{"nodeType":"YulAssignment","src":"2616:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2628:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2639:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2624:3:103"},"nodeType":"YulFunctionCall","src":"2624:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2616:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2658:9:103"},{"kind":"string","nodeType":"YulLiteral","src":"2669:9:103","type":"","value":"License"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2651:6:103"},"nodeType":"YulFunctionCall","src":"2651:28:103"},"nodeType":"YulExpressionStatement","src":"2651:28:103"}]},"name":"abi_encode_tuple_t_stringliteral_3b9d03c09d4e108ca3b630bc72507e91ae7da8eb1de63663acbce1d12cfbfb3a__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2583:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2597:4:103","type":""}],"src":"2442:243:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_boolt_address_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value1, value1) }\n value0 := mload(headStart)\n let value := mload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(value1, value1) }\n value1 := value\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_2ea29d619e783380245e9479bc50992b7e9e66d498084c15d9aeb14649a09dc3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERROR:PRS-001:NOT_AUTHORIZED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3481a442355178eff70c53b479d1406dd857fddda3e91ffea746909cf740d5cd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:PRS-002:POLICY_FLOW_NOT_RE\")\n mstore(add(headStart, 96), \"SOLVED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b9d03c09d4e108ca3b630bc72507e91ae7da8eb1de63663acbce1d12cfbfb3a__to_t_bytes32__fromStack_reversed(headStart) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, \"License\")\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"26665":[{"length":32,"start":416},{"length":32,"start":570},{"length":32,"start":766}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100415760003560e01c80637b1039991461019b578063a3f4df7e146101df578063a5b25e7114610205575b60008061004c610218565b6001600160a01b031663d3e9c314336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160606040518083038186803b15801561009a57600080fd5b505afa1580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d291906103db565b9250925050816101295760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5052532d3030313a4e4f545f415554484f52495a45440000000060448201526064015b60405180910390fd5b6001600160a01b03811661018e5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5052532d3030323a504f4c4943595f464c4f575f4e4f545f524560448201526514d3d315915160d21b6064820152608401610120565b610197816102c1565b5050005b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f76d50726f647563745365727669636560901b81565b6040519081526020016101d6565b6101c26102133660046103c3565b6102e5565b604051631c2d8fb360e31b8152664c6963656e736560c81b60048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561028457600080fd5b505afa158015610298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bc91906103a2565b905090565b3660008037600080366000845af43d6000803e8080156102e0573d6000f35b3d6000fd5b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561034857600080fd5b505afa15801561035c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038091906103a2565b92915050565b80516001600160a01b038116811461039d57600080fd5b919050565b6000602082840312156103b3578081fd5b6103bc82610386565b9392505050565b6000602082840312156103d4578081fd5b5035919050565b6000806000606084860312156103ef578182fd5b8351925060208401518015158114610405578283fd5b915061041360408501610386565b9050925092509256fea26469706673582212207b859cebd9125a360f4471ca57be175d7287894fb1de6366e38c493b36feefb564736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x205 JUMPI JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x4C PUSH2 0x218 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xD3E9C314 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD2 SWAP2 SWAP1 PUSH2 0x3DB JUMP JUMPDEST SWAP3 POP SWAP3 POP POP DUP2 PUSH2 0x129 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052532D3030313A4E4F545F415554484F52495A454400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x18E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052532D3030323A504F4C4943595F464C4F575F4E4F545F5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x14D3D3159151 PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x120 JUMP JUMPDEST PUSH2 0x197 DUP2 PUSH2 0x2C1 JUMP JUMPDEST POP POP STOP JUMPDEST PUSH2 0x1C2 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1F7 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1D6 JUMP JUMPDEST PUSH2 0x1C2 PUSH2 0x213 CALLDATASIZE PUSH1 0x4 PUSH2 0x3C3 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH7 0x4C6963656E7365 PUSH1 0xC8 SHL PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x284 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x298 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2BC SWAP2 SWAP1 PUSH2 0x3A2 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x2E0 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x35C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x380 SWAP2 SWAP1 PUSH2 0x3A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x39D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3BC DUP3 PUSH2 0x386 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D4 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3EF JUMPI DUP2 DUP3 REVERT JUMPDEST DUP4 MLOAD SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x405 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP2 POP PUSH2 0x413 PUSH1 0x40 DUP6 ADD PUSH2 0x386 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH28 0x859CEBD9125A360F4471CA57BE175D7287894FB1DE6366E38C493B36 INVALID 0xEF 0xB5 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"261:2015:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:17;645:18;667:10;:8;:10::i;:::-;-1:-1:-1;;;;;667:33:86;;719:10:59;667:47:86;;-1:-1:-1;;;;;;667:47:86;;;;;;;-1:-1:-1;;;;;1226:32:103;;;667:47:86;;;1208:51:103;1181:18;;667:47:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;624:90;;;;;733:12;725:53;;;;-1:-1:-1;;;725:53:86;;1880:2:103;725:53:86;;;1862:21:103;1919:2;1899:18;;;1892:30;1958;1938:18;;;1931:58;2006:18;;725:53:86;;;;;;;;;-1:-1:-1;;;;;796:24:86;;788:74;;;;-1:-1:-1;;;788:74:86;;2237:2:103;788:74:86;;;2219:21:103;2276:2;2256:18;;;2249:30;2315:34;2295:18;;;2288:62;-1:-1:-1;;;2366:18:103;;;2359:36;2412:19;;788:74:86;2209:228:103;788:74:86;873:21;883:10;873:9;:21::i;:::-;513:388;;261:2015;412:35:91;;;;;;;;-1:-1:-1;;;;;1226:32:103;;;1208:51;;1196:2;1181:18;412:35:91;;;;;;;;347:47:86;;-1:-1:-1;;;347:47:86;;;;;1416:25:103;;;1404:2;1389:18;347:47:86;1371:76:103;1344:200:91;;;;;;:::i;:::-;;:::i;2155:118:86:-;2234:31;;-1:-1:-1;;;2234:31:86;;-1:-1:-1;;;2234:31:86;;;2651:28:103;2198:8:86;;2234;-1:-1:-1;;;;;2234:20:86;;;;2624:18:103;;2234:31:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2218:48;;2155:118;:::o;1262:887::-;1592:14;1589:1;1586;1573:34;1806:1;1803;1787:14;1784:1;1768:14;1761:5;1748:60;1882:16;1879:1;1876;1861:38;1920:6;1987:66;;;;2102:16;2099:1;2092:27;1987:66;2022:16;2019:1;2012:27;1344:200:91;1502:35;;-1:-1:-1;;;1502:35:91;;;;;1416:25:103;;;1465:13:91;;1502:8;-1:-1:-1;;;;;1502:20:91;;;;1389:18:103;;1502:35:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1494:43;1344:200;-1:-1:-1;;1344:200:91:o;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;115:2;74:117;;;:::o;196:218::-;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:190::-;;531:2;519:9;510:7;506:23;502:32;499:2;;;552:6;544;537:22;499:2;-1:-1:-1;580:23:103;;489:120;-1:-1:-1;489:120:103:o;614:443::-;;;;768:2;756:9;747:7;743:23;739:32;736:2;;;789:6;781;774:22;736:2;823:9;817:16;807:26;;876:2;865:9;861:18;855:25;923:5;916:13;909:21;902:5;899:32;889:2;;950:6;942;935:22;889:2;978:5;-1:-1:-1;1002:49:103;1047:2;1032:18;;1002:49;:::i;:::-;992:59;;726:331;;;;;:::o"},"methodIdentifiers":{"NAME()":"a3f4df7e","getContractFromRegistry(bytes32)":"a5b25e71","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractFromRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/ProductService.sol\":\"ProductService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/ILicense.sol\":{\"keccak256\":\"0x2fcefcbe60dfa44e7a1d947ae2059ccfdc3d1a151a8604fb7e96c734e0ffb9be\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6af56dc46b2adeb0c0d88ccd0ca4e9857195c4d647ccf7e3df61a91da24f45ab\",\"dweb:/ipfs/QmX1eYC9nFwFE4PJchjApCDYgErdrtfS9qYEtzbbfc4Ssz\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/services/ProductService.sol\":{\"keccak256\":\"0x10c24ed496abd23a16567d64acfcad6d34ec890b70f08b95bc8775dea30ff944\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://265a06064ff8c882b3ba6580ee90c1138ee15d0be2502410a04ecd33202577a3\",\"dweb:/ipfs/QmUgigrJDBuwfmdGvAZV5aRNJtPeiGC5mTvA3RmNt9bogT\"]},\"contracts/shared/WithRegistry.sol\":{\"keccak256\":\"0x1d52c8ad35ee149c4a0106ceb1f35d458c196248d02cb8d7b605e9963d47f706\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5780ec200f79f55f69d2e4030ceccccdbf78bc233561d03f334c4361c5425d17\",\"dweb:/ipfs/QmPjynmkMEjD9GHpreVLpWuK6qncwkKwAtNyYCyoeyzkHZ\"]}},\"version\":1}"}},"contracts/services/RiskpoolService.sol":{"RiskpoolService":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"RISKPOOL_NAME","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialCapital","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"uint256","name":"collateralizationLevel","type":"uint256"},{"internalType":"uint256","name":"sumOfSumInsuredCap","type":"uint256"}],"name":"registerRiskpool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"maxNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b613f9c80620000f46000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806389002da511610097578063b726742011610066578063b7267420146101de578063bb540df6146101f1578063bf2e354614610204578063c4d66de814610217576100f5565b806389002da5146101925780638c483e5a146101a5578063a17030d5146101b8578063b299cc26146101cb576100f5565b8063316c5348116100d3578063316c53481461014657806336153f3a146101595780634d03f9b71461016c578063587e59d01461017f576100f5565b806304f5f96e146100fa57806315fc1e741461011e5780632127fd4814610131575b600080fd5b61010c67149a5cdadc1bdbdb60c21b81565b60405190815260200160405180910390f35b61010c61012c366004613b9d565b61022a565b61014461013f366004613d7f565b61078a565b005b610144610154366004613d4f565b610a8c565b61010c610167366004613d7f565b610ea5565b61014461017a366004613da0565b611419565b61014461018d366004613d4f565b611749565b61010c6101a0366004613d7f565b611cbf565b6101446101b3366004613d4f565b6121d8565b6101446101c6366004613d4f565b612657565b6101446101d9366004613da0565b612a3a565b6101446101ec366004613da0565b612d32565b61010c6101ff366004613d7f565b61302a565b610144610212366004613b58565b613375565b610144610225366004613b19565b6136ca565b60025460009081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561028057600080fd5b505afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156102ff57600080fd5b505afa158015610313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103379190613c5c565b600281111561035657634e487b7160e01b600052602160045260246000fd5b146103b25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030333a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084015b60405180910390fd5b600254604051635e966e4560e01b8152600481018390526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156103f757600080fd5b505afa15801561040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042f9190613c3d565b600681111561044e57634e487b7160e01b600052602160045260246000fd5b146104a55760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030343a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156104f957600080fd5b505afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190613d67565b600354604051633039c50160e21b81529192506001600160a01b03169063c0e714049061056b908a9085908b908b90600090600401613dee565b602060405180830381600087803b15801561058557600080fd5b505af1158015610599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bd9190613d67565b60048054604051626a03dd60e91b81529295506001600160a01b03169163d407ba00916105f7918591889101918252602082015260400190565b600060405180830381600087803b15801561061157600080fd5b505af1158015610625573d6000803e3d6000fd5b505060055460405163136f5ed560e11b81526004810187905260248101889052600093508392506001600160a01b03909116906326debdaa906044016040805180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190613dcb565b60035460405163a65e2cfd60e01b815260048101899052602481018390529294509092506001600160a01b03169063a65e2cfd90604401600060405180830381600087803b15801561070357600080fd5b505af1158015610717573d6000803e3d6000fd5b50506004805460405163a65e2cfd60e01b8152918201879052602482018590526001600160a01b0316925063a65e2cfd9150604401600060405180830381600087803b15801561076657600080fd5b505af115801561077a573d6000803e3d6000fd5b5050505050505050949350505050565b60025482906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156107e357600080fd5b505afa1580156107f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081b9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c9190613c5c565b60028111156108bb57634e487b7160e01b600052602160045260246000fd5b1490508080156108ca57508382145b6109275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3030383a53454e4445525f4e4f545f4f574e494e475f604482015267149254d2d413d3d360c21b60648201526084016103a9565b8215610a2057600254604051635e966e4560e01b8152600481018490526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa9190613c3d565b60068111156109c957634e487b7160e01b600052602160045260246000fd5b14610a205760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030393a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b60048054604051630424ffa960e31b8152918201889052602482018790526001600160a01b031690632127fd48906044015b600060405180830381600087803b158015610a6c57600080fd5b505af1158015610a80573d6000803e3d6000fd5b50505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ae557600080fd5b505afa158015610af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1d9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610b6657600080fd5b505afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190613c5c565b6002811115610bbd57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c449190810190613c7b565b905081610c635760405162461bcd60e51b81526004016103a990613e3f565b80602001518314610c865760405162461bcd60e51b81526004016103a990613ec1565b8315610d4557600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d099190613c3d565b6006811115610d2857634e487b7160e01b600052602160045260246000fd5b14610d455760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610d9957600080fd5b505afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190613d67565b60048054604051626a03dd60e91b81529293506001600160a01b03169163d407ba0091610e0b9185918c9101918252602082015260400190565b600060405180830381600087803b158015610e2557600080fd5b505af1158015610e39573d6000803e3d6000fd5b5050600354604051636198e33960e01b8152600481018b90526001600160a01b039091169250636198e33991506024015b600060405180830381600087803b158015610e8457600080fd5b505af1158015610e98573d6000803e3d6000fd5b5050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f389190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190613c5c565b6002811115610fd857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561102357600080fd5b505afa158015611037573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261105f9190810190613c7b565b90508161107e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146110a15760405162461bcd60e51b81526004016103a990613ec1565b831561116057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156110ec57600080fd5b505afa158015611100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111249190613c3d565b600681111561114357634e487b7160e01b600052602160045260246000fd5b146111605760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156111a557600080fd5b505afa1580156111b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111e19190810190613c7b565b905060038160600151600381111561120957634e487b7160e01b600052602160045260246000fd5b14156112575760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5250532d3031313a42554e444c455f4255524e4544000000000060448201526064016103a9565b60055460405163d935807560e01b8152600481018b9052602481018a90526000916001600160a01b03169063d9358075906044016040805180830381600087803b1580156112a457600080fd5b505af11580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190613dcb565b985090508888146113405760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3031333a554e45585045435445445f4645455f5355426044820152672a2920a1aa24a7a760c11b60648201526084016103a9565b60035460405163c397ae3960e01b8152600481018c9052602481018b90526001600160a01b039091169063c397ae3990604401600060405180830381600087803b15801561138d57600080fd5b505af11580156113a1573d6000803e3d6000fd5b505060048054602086015160405163c397ae3960e01b815292830152602482018c90526001600160a01b0316925063c397ae3991506044015b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050505050505050505092915050565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561147257600080fd5b505afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156114f357600080fd5b505afa158015611507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152b9190613c5c565b600281111561154a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561159557600080fd5b505afa1580156115a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115d19190810190613c7b565b9050816115f05760405162461bcd60e51b81526004016103a990613e3f565b806020015183146116135760405162461bcd60e51b81526004016103a990613ec1565b83156116d257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561165e57600080fd5b505afa158015611672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116969190613c3d565b60068111156116b557634e487b7160e01b600052602160045260246000fd5b146116d25760405162461bcd60e51b81526004016103a990613e80565b600354604051634d03f9b760e01b8152600481018a905260248101899052604481018890526001600160a01b0390911690634d03f9b7906064015b600060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b505050505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156117a257600080fd5b505afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b9190613c5c565b600281111561187a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156118c557600080fd5b505afa1580156118d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119019190810190613c7b565b9050816119205760405162461bcd60e51b81526004016103a990613e3f565b806020015183146119435760405162461bcd60e51b81526004016103a990613ec1565b8315611a0257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561198e57600080fd5b505afa1580156119a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c69190613c3d565b60068111156119e557634e487b7160e01b600052602160045260246000fd5b14611a025760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a839190810190613c7b565b9050600281606001516003811115611aab57634e487b7160e01b600052602160045260246000fd5b14611af85760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5250532d3032303a42554e444c455f4e4f545f434c4f5345440060448201526064016103a9565b60055460e082015160405163d935807560e01b8152600481018a9052602481019190915260009182916001600160a01b039091169063d9358075906044016040805180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b879190613dcb565b60035460405163c397ae3960e01b8152600481018d9052602481018390529294509092506001600160a01b03169063c397ae3990604401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505060048054602087015160405163c397ae3960e01b815292830152602482018590526001600160a01b0316925063c397ae399150604401600060405180830381600087803b158015611c3e57600080fd5b505af1158015611c52573d6000803e3d6000fd5b5050600354604051630852cd8d60e31b8152600481018d90526001600160a01b0390911692506342966c689150602401600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b50505050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015611d1a57600080fd5b505afa158015611d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d529190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd39190613c5c565b6002811115611df257634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611e3d57600080fd5b505afa158015611e51573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e799190810190613c7b565b905081611e985760405162461bcd60e51b81526004016103a990613e3f565b80602001518314611ebb5760405162461bcd60e51b81526004016103a990613ec1565b8315611f7a57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e9190613c3d565b6006811115611f5d57634e487b7160e01b600052602160045260246000fd5b14611f7a5760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611fbf57600080fd5b505afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb9190810190613c7b565b905060028160600151600381111561202357634e487b7160e01b600052602160045260246000fd5b14158015612055575060038160600151600381111561205257634e487b7160e01b600052602160045260246000fd5b14155b6120af5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5250532d3031303a42554e444c455f434c4f5345445f4f525f42604482015264155493915160da1b60648201526084016103a9565b60055460405163136f5ed560e11b8152600481018b9052602481018a90526000916001600160a01b0316906326debdaa906044016040805180830381600087803b1580156120fc57600080fd5b505af1158015612110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121349190613dcb565b60035460405163a65e2cfd60e01b8152600481018e905260248101839052919a509192506001600160a01b039091169063a65e2cfd90604401600060405180830381600087803b15801561218757600080fd5b505af115801561219b573d6000803e3d6000fd5b505060048054602086015160405163a65e2cfd60e01b815292830152602482018c90526001600160a01b0316925063a65e2cfd91506044016113da565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561223157600080fd5b505afa158015612245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122699190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156122b257600080fd5b505afa1580156122c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ea9190613c5c565b600281111561230957634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561235457600080fd5b505afa158015612368573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123909190810190613c7b565b9050816123af5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146123d25760405162461bcd60e51b81526004016103a990613ec1565b831561249157600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190613c3d565b600681111561247457634e487b7160e01b600052602160045260246000fd5b146124915760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156124e557600080fd5b505afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190613d67565b9050600060035460405163089935e560e31b8152600481018a90526001600160a01b03909116906344c9af289060240160206040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d9190613c23565b60038111156125bc57634e487b7160e01b600052602160045260246000fd5b1415612626576004805460405163950be80360e01b8152918201839052602482018990526001600160a01b03169063950be80390604401600060405180830381600087803b15801561260d57600080fd5b505af1158015612621573d6000803e3d6000fd5b505050505b600354604051630575f5a760e11b8152600481018990526001600160a01b0390911690630aebeb4e90602401610e6a565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156126b057600080fd5b505afa1580156126c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e89190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561273157600080fd5b505afa158015612745573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127699190613c5c565b600281111561278857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156127d357600080fd5b505afa1580156127e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261280f9190810190613c7b565b90508161282e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146128515760405162461bcd60e51b81526004016103a990613ec1565b831561291057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561289c57600080fd5b505afa1580156128b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d49190613c3d565b60068111156128f357634e487b7160e01b600052602160045260246000fd5b146129105760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561296457600080fd5b505afa158015612978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299c9190613d67565b6004805460405163950be80360e01b81529293506001600160a01b03169163950be803916129d79185918c9101918252602082015260400190565b600060405180830381600087803b1580156129f157600080fd5b505af1158015612a05573d6000803e3d6000fd5b50506003546040516337519c1960e21b8152600481018b90526001600160a01b03909116925063dd4670649150602401610e6a565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612a9357600080fd5b505afa158015612aa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acb9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612b1457600080fd5b505afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4c9190613c5c565b6002811115612b6b57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612bb657600080fd5b505afa158015612bca573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bf29190810190613c7b565b905081612c115760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612c345760405162461bcd60e51b81526004016103a990613ec1565b8315612cf357600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612c7f57600080fd5b505afa158015612c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb79190613c3d565b6006811115612cd657634e487b7160e01b600052602160045260246000fd5b14612cf35760405162461bcd60e51b81526004016103a990613e80565b60035460405163594ce61360e11b8152600481018a905260248101899052604481018890526001600160a01b039091169063b299cc269060640161170d565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612d8b57600080fd5b505afa158015612d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc39190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612e0c57600080fd5b505afa158015612e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e449190613c5c565b6002811115612e6357634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612eae57600080fd5b505afa158015612ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612eea9190810190613c7b565b905081612f095760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612f2c5760405162461bcd60e51b81526004016103a990613ec1565b8315612feb57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612f7757600080fd5b505afa158015612f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612faf9190613c3d565b6006811115612fce57634e487b7160e01b600052602160045260246000fd5b14612feb5760405162461bcd60e51b81526004016103a990613e80565b6003546040516305b933a160e51b8152600481018a905260248101899052604481018890526001600160a01b039091169063b72674209060640161170d565b6002546000908390829081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561308457600080fd5b505afa158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561310557600080fd5b505afa158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d9190613c5c565b600281111561315c57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156131a757600080fd5b505afa1580156131bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131e39190810190613c7b565b9050816132025760405162461bcd60e51b81526004016103a990613e3f565b806020015183146132255760405162461bcd60e51b81526004016103a990613ec1565b83156132e457600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561327057600080fd5b505afa158015613284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a89190613c3d565b60068111156132c757634e487b7160e01b600052602160045260246000fd5b146132e45760405162461bcd60e51b81526004016103a990613e80565b600354604051635daa06fb60e11b8152600481018a9052602481018990526001600160a01b039091169063bb540df690604401602060405180830381600087803b15801561333157600080fd5b505af1158015613345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133699190613d67565b98975050505050505050565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156133c957600080fd5b505afa1580156133dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134019190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134809190613c5c565b600281111561349f57634e487b7160e01b600052602160045260246000fd5b146134f65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030313a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084016103a9565b600254604051635e966e4560e01b8152600481018390526001916001600160a01b031690635e966e459060240160206040518083038186803b15801561353b57600080fd5b505afa15801561354f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135739190613c3d565b600681111561359257634e487b7160e01b600052602160045260246000fd5b146135eb5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5250532d3030323a5249534b504f4f4c5f4e4f545f50524f504f60448201526214d15160ea1b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561363f57600080fd5b505afa158015613653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136779190613d67565b600480546040516357419e8f60e01b81529182018390526001600160a01b0389811660248401528881166044840152606483018890526084830187905292935091909116906357419e8f9060a401610a52565b600054610100900460ff16158080156136ea5750600054600160ff909116105b8061370b57506136f93061384f565b15801561370b575060005460ff166001145b61376e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a9565b6000805460ff191660011790558015613791576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556137bb600090565b6541636365737360d01b146137fd576137dc6541636365737360d01b613862565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61380561394a565b801561384b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156138ac57600080fd5b505afa1580156138c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e49190613b3c565b90506001600160a01b03811661385d5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166139b55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b6139c76542756e646c6560d01b613862565b600380546001600160a01b0319166001600160a01b03929092169190911790556139fc6810dbdb5c1bdb995b9d60ba1b613862565b600280546001600160a01b0319166001600160a01b0392909216919091179055613a2c63141bdbdb60e21b613862565b600480546001600160a01b0319166001600160a01b0392909216919091179055613a6067547265617375727960c01b613862565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b600082601f830112613a92578081fd5b815167ffffffffffffffff811115613aac57613aac613f38565b6020613ac0601f8301601f19168201613f07565b8281528582848701011115613ad3578384fd5b835b83811015613af0578581018301518282018401528201613ad5565b83811115613b0057848385840101525b5095945050505050565b80516004811061385d57600080fd5b600060208284031215613b2a578081fd5b8135613b3581613f4e565b9392505050565b600060208284031215613b4d578081fd5b8151613b3581613f4e565b60008060008060808587031215613b6d578283fd5b8435613b7881613f4e565b93506020850135613b8881613f4e565b93969395505050506040820135916060013590565b60008060008060608587031215613bb2578384fd5b8435613bbd81613f4e565b9350602085013567ffffffffffffffff80821115613bd9578485fd5b818701915087601f830112613bec578485fd5b813581811115613bfa578586fd5b886020828501011115613c0b578586fd5b95986020929092019750949560400135945092505050565b600060208284031215613c34578081fd5b613b3582613b0a565b600060208284031215613c4e578081fd5b815160078110613b35578182fd5b600060208284031215613c6d578081fd5b815160038110613b35578182fd5b600060208284031215613c8c578081fd5b815167ffffffffffffffff80821115613ca3578283fd5b8184019150610140808387031215613cb9578384fd5b613cc281613f07565b9050825181526020830151602082015260408301516040820152613ce860608401613b0a565b6060820152608083015182811115613cfe578485fd5b613d0a87828601613a82565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613d60578081fd5b5035919050565b600060208284031215613d78578081fd5b5051919050565b60008060408385031215613d91578182fd5b50508035926020909101359150565b600080600060608486031215613db4578283fd5b505081359360208301359350604090920135919050565b60008060408385031215613ddd578182fd5b505080516020909101519092909150565b6001600160a01b03861681526020810185905260806040820181905281018390526000838560a08401378060a0858401015260a0601f19601f86011683010190508260608301529695505050505050565b60208082526021908201527f4552524f523a5250532d3030353a53454e4445525f4e4f545f5249534b504f4f6040820152601360fa1b606082015260800190565b60208082526021908201527f4552524f523a5250532d3030373a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526026908201527f4552524f523a5250532d3030363a42554e444c455f5249534b504f4f4c5f4d496040820152650a69a82a886960d31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f3057613f30613f38565b604052919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114613f6357600080fd5b5056fea26469706673582212209a54242b6373dab5b01e37d770361bdd347dbf612e95820001979e25479ba64464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x1C PUSH3 0x22 JUMP JUMPDEST PUSH3 0xE4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH3 0x8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH3 0xE2 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x3F9C DUP1 PUSH3 0xF4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x89002DA5 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xB7267420 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xB7267420 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0xBB540DF6 EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0xBF2E3546 EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x217 JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0xB299CC26 EQ PUSH2 0x1CB JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x316C5348 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x4D03F9B7 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x17F JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x4F5F96E EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x15FC1E74 EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0x2127FD48 EQ PUSH2 0x131 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C PUSH8 0x149A5CDADC1BDBDB PUSH1 0xC2 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH2 0x12C CALLDATASIZE PUSH1 0x4 PUSH2 0x3B9D JUMP JUMPDEST PUSH2 0x22A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x78A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x144 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST PUSH2 0x10C PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0xEA5 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x1419 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x1749 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x1CBF JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x21D8 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x2657 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x2A3A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1EC CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x2D32 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x302A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x212 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B58 JUMP JUMPDEST PUSH2 0x3375 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B19 JUMP JUMPDEST PUSH2 0x36CA JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x294 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B8 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x313 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x356 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x3B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030333A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x40B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x44E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x4A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030343A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x50D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x531 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3039C501 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC0E71404 SWAP1 PUSH2 0x56B SWAP1 DUP11 SWAP1 DUP6 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x3DEE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x599 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5BD SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH3 0x6A03DD PUSH1 0xE9 SHL DUP2 MSTORE SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD407BA00 SWAP2 PUSH2 0x5F7 SWAP2 DUP6 SWAP2 DUP9 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x625 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136F5ED5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP4 POP DUP4 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x26DEBDAA SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x67A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x68E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6B2 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA65E2CFD SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x717 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xA65E2CFD SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x766 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x77A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP3 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x81B SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x878 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x89C SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x8CA JUMPI POP DUP4 DUP3 EQ JUMPDEST PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030383A53454E4445525F4E4F545F4F574E494E475F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x149254D2D413D3D3 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST DUP3 ISZERO PUSH2 0xA20 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x9C9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xA20 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030393A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB1D SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB9E SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC44 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0xC63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0xC86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0xD45 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCE5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD09 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0xD28 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xD45 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD1 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH3 0x6A03DD PUSH1 0xE9 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD407BA00 SWAP2 PUSH2 0xE0B SWAP2 DUP6 SWAP2 DUP13 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6198E339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x6198E339 SWAP2 POP PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF38 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB9 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFD8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1023 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1037 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x105F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x107E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x10A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1160 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1100 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1124 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1143 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1160 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x11E1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x3 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1209 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1257 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031313A42554E444C455F4255524E45440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD9358075 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD9358075 SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12DC SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST SWAP9 POP SWAP1 POP DUP9 DUP9 EQ PUSH2 0x1340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031333A554E45585045435445445F4645455F535542 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x2A2920A1AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC397AE39 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13A1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xC397AE39 SWAP2 POP PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1408 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1472 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1486 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14AA SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1507 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x152B SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x154A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x15D1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x15F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1613 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x16D2 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x165E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1672 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1696 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x16B5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x16D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1727 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x173B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17DA SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1837 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x185B SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1901 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x1920 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1943 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1A02 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x198E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19C6 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x19E5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1A02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1A83 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1AAB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1AF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3032303A42554E444C455F4E4F545F434C4F53454400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xD9358075 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD9358075 SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B87 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC397AE39 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xC397AE39 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x42966C68 SWAP2 POP PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D52 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DD3 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1DF2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1E79 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x1E98 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1EBB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1F7A JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F3E SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1F5D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1F7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FD3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1FFB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2023 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x2055 JUMPI POP PUSH1 0x3 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2052 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO JUMPDEST PUSH2 0x20AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031303A42554E444C455F434C4F5345445F4F525F42 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1554939151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136F5ED5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x26DEBDAA SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2110 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2134 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP11 POP SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA65E2CFD SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xA65E2CFD SWAP2 POP PUSH1 0x44 ADD PUSH2 0x13DA JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2245 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2269 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22EA SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2309 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2368 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2390 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x23AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x23D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2491 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x241D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2431 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2455 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2474 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2491 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x251D SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89935E5 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x44C9AF28 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2565 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2579 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x259D SWAP2 SWAP1 PUSH2 0x3C23 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x25BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2626 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x950BE803 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x950BE803 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x260D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2621 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x575F5A7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xAEBEB4E SWAP1 PUSH1 0x24 ADD PUSH2 0xE6A JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26E8 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2731 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2745 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2769 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2788 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x280F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x282E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2851 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2910 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x289C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28D4 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x28F3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2910 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2964 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2978 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x299C SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x950BE803 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x950BE803 SWAP2 PUSH2 0x29D7 SWAP2 DUP6 SWAP2 DUP13 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x37519C19 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0xDD467064 SWAP2 POP PUSH1 0x24 ADD PUSH2 0xE6A JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AA7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ACB SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B28 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B4C SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2B6B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2BF2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x2C11 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2C34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2CF3 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2CB7 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2CD6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2CF3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x170D JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2DC3 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E20 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E44 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2E63 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EC2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2EEA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x2F09 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2F2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2FEB JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2FAF SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2FCE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2FEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD PUSH2 0x170D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3084 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3098 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30BC SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3119 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313D SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x315C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x31E3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x3202 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x3225 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x32E4 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3284 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32A8 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x32C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x32E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3345 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3369 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x33C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3401 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x345C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3480 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x349F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x34F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030313A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x353B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x354F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3573 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x3592 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x35EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030323A5249534B504F4F4C5F4E4F545F50524F504F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x14D151 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x363F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3653 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3677 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57419E8F PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x24 DUP5 ADD MSTORE DUP9 DUP2 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP9 SWAP1 MSTORE PUSH1 0x84 DUP4 ADD DUP8 SWAP1 MSTORE SWAP3 SWAP4 POP SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x57419E8F SWAP1 PUSH1 0xA4 ADD PUSH2 0xA52 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x36EA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x370B JUMPI POP PUSH2 0x36F9 ADDRESS PUSH2 0x384F JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x370B JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x376E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x3791 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x37BB PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x37FD JUMPI PUSH2 0x37DC PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x3805 PUSH2 0x394A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x384B JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x38AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38E4 SWAP2 SWAP1 PUSH2 0x3B3C JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x385D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x39B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH2 0x39C7 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x39FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3A2C PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3A60 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3A92 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3AAC JUMPI PUSH2 0x3AAC PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x3AC0 PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH2 0x3F07 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP6 DUP3 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x3AD3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3AF0 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP3 DUP3 ADD DUP5 ADD MSTORE DUP3 ADD PUSH2 0x3AD5 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3B00 JUMPI DUP5 DUP4 DUP6 DUP5 ADD ADD MSTORE JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x385D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B2A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3B35 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B4D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3B35 DUP2 PUSH2 0x3F4E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3B6D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3B78 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3B88 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3BB2 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3BBD DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BD9 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3BEC JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3BFA JUMPI DUP6 DUP7 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3C0B JUMPI DUP6 DUP7 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C34 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3B35 DUP3 PUSH2 0x3B0A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C4E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x3B35 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C6D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x3B35 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C8C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3CA3 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x3CB9 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3CC2 DUP2 PUSH2 0x3F07 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x3CE8 PUSH1 0x60 DUP5 ADD PUSH2 0x3B0A JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3CFE JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3D0A DUP8 DUP3 DUP7 ADD PUSH2 0x3A82 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D60 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D78 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D91 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3DB4 JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3DDD JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 DUP4 DUP6 PUSH1 0xA0 DUP5 ADD CALLDATACOPY DUP1 PUSH1 0xA0 DUP6 DUP5 ADD ADD MSTORE PUSH1 0xA0 PUSH1 0x1F NOT PUSH1 0x1F DUP7 ADD AND DUP4 ADD ADD SWAP1 POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030353A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030373A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x26 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030363A42554E444C455F5249534B504F4F4C5F4D49 PUSH1 0x40 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3F30 JUMPI PUSH2 0x3F30 PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3F63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 SLOAD 0x24 0x2B PUSH4 0x73DAB5B0 0x1E CALLDATACOPY 0xD7 PUSH17 0x361BDD347DBF612E95820001979E25479B 0xA6 DIFFICULTY PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"439:8208:87:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;439:8208:87;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;439:8208:87;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:16119:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"77:655:103","statements":[{"body":{"nodeType":"YulBlock","src":"126:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"135:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"142:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"128:6:103"},"nodeType":"YulFunctionCall","src":"128:20:103"},"nodeType":"YulExpressionStatement","src":"128:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"113:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"120:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"90:6:103"},"nodeType":"YulFunctionCall","src":"90:35:103"},"nodeType":"YulIf","src":"87:2:103"},{"nodeType":"YulVariableDeclaration","src":"159:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"175:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"169:5:103"},"nodeType":"YulFunctionCall","src":"169:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"163:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"221:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"223:16:103"},"nodeType":"YulFunctionCall","src":"223:18:103"},"nodeType":"YulExpressionStatement","src":"223:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"197:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"201:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"194:2:103"},"nodeType":"YulFunctionCall","src":"194:26:103"},"nodeType":"YulIf","src":"191:2:103"},{"nodeType":"YulVariableDeclaration","src":"252:14:103","value":{"kind":"number","nodeType":"YulLiteral","src":"262:4:103","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"256:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"275:68:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"318:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"322:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"314:3:103"},"nodeType":"YulFunctionCall","src":"314:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"333:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"329:3:103"},"nodeType":"YulFunctionCall","src":"329:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"310:3:103"},"nodeType":"YulFunctionCall","src":"310:27:103"},{"name":"_2","nodeType":"YulIdentifier","src":"339:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"306:3:103"},"nodeType":"YulFunctionCall","src":"306:36:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"290:15:103"},"nodeType":"YulFunctionCall","src":"290:53:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"279:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"359:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"368:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"352:6:103"},"nodeType":"YulFunctionCall","src":"352:19:103"},"nodeType":"YulExpressionStatement","src":"352:19:103"},{"body":{"nodeType":"YulBlock","src":"417:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"426:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"433:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"419:6:103"},"nodeType":"YulFunctionCall","src":"419:20:103"},"nodeType":"YulExpressionStatement","src":"419:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"394:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"402:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"390:3:103"},"nodeType":"YulFunctionCall","src":"390:15:103"},{"name":"_2","nodeType":"YulIdentifier","src":"407:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"386:3:103"},"nodeType":"YulFunctionCall","src":"386:24:103"},{"name":"end","nodeType":"YulIdentifier","src":"412:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"383:2:103"},"nodeType":"YulFunctionCall","src":"383:33:103"},"nodeType":"YulIf","src":"380:2:103"},{"nodeType":"YulVariableDeclaration","src":"450:14:103","value":{"name":"array","nodeType":"YulIdentifier","src":"459:5:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"454:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"519:88:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"548:7:103"},{"name":"i","nodeType":"YulIdentifier","src":"557:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"544:3:103"},"nodeType":"YulFunctionCall","src":"544:15:103"},{"name":"_2","nodeType":"YulIdentifier","src":"561:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"540:3:103"},"nodeType":"YulFunctionCall","src":"540:24:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"580:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"588:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"576:3:103"},"nodeType":"YulFunctionCall","src":"576:14:103"},{"name":"_2","nodeType":"YulIdentifier","src":"592:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"572:3:103"},"nodeType":"YulFunctionCall","src":"572:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"566:5:103"},"nodeType":"YulFunctionCall","src":"566:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"533:6:103"},"nodeType":"YulFunctionCall","src":"533:64:103"},"nodeType":"YulExpressionStatement","src":"533:64:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"484:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"487:2:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"481:2:103"},"nodeType":"YulFunctionCall","src":"481:9:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"491:19:103","statements":[{"nodeType":"YulAssignment","src":"493:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"502:1:103"},{"name":"_2","nodeType":"YulIdentifier","src":"505:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:103"},"nodeType":"YulFunctionCall","src":"498:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"493:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"477:3:103","statements":[]},"src":"473:134:103"},{"body":{"nodeType":"YulBlock","src":"637:64:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"666:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"675:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"662:3:103"},"nodeType":"YulFunctionCall","src":"662:16:103"},{"name":"_2","nodeType":"YulIdentifier","src":"680:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"658:3:103"},"nodeType":"YulFunctionCall","src":"658:25:103"},{"name":"array","nodeType":"YulIdentifier","src":"685:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"651:6:103"},"nodeType":"YulFunctionCall","src":"651:40:103"},"nodeType":"YulExpressionStatement","src":"651:40:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"622:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"625:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"619:2:103"},"nodeType":"YulFunctionCall","src":"619:9:103"},"nodeType":"YulIf","src":"616:2:103"},{"nodeType":"YulAssignment","src":"710:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"719:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"710:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"51:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"59:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"67:5:103","type":""}],"src":"14:718:103"},{"body":{"nodeType":"YulBlock","src":"806:87:103","statements":[{"nodeType":"YulAssignment","src":"816:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"831:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"825:5:103"},"nodeType":"YulFunctionCall","src":"825:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"816:5:103"}]},{"body":{"nodeType":"YulBlock","src":"871:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"880:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"883:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"873:6:103"},"nodeType":"YulFunctionCall","src":"873:12:103"},"nodeType":"YulExpressionStatement","src":"873:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"860:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"867:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"857:2:103"},"nodeType":"YulFunctionCall","src":"857:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"850:6:103"},"nodeType":"YulFunctionCall","src":"850:20:103"},"nodeType":"YulIf","src":"847:2:103"}]},"name":"abi_decode_enum_BundleState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"785:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"796:5:103","type":""}],"src":"737:156:103"},{"body":{"nodeType":"YulBlock","src":"968:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1014:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1023:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1031:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1016:6:103"},"nodeType":"YulFunctionCall","src":"1016:22:103"},"nodeType":"YulExpressionStatement","src":"1016:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"989:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"998:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"985:3:103"},"nodeType":"YulFunctionCall","src":"985:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1010:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:32:103"},"nodeType":"YulIf","src":"978:2:103"},{"nodeType":"YulVariableDeclaration","src":"1049:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1075:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1062:12:103"},"nodeType":"YulFunctionCall","src":"1062:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1053:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1119:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1094:24:103"},"nodeType":"YulFunctionCall","src":"1094:31:103"},"nodeType":"YulExpressionStatement","src":"1094:31:103"},{"nodeType":"YulAssignment","src":"1134:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1144:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1134:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"934:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"945:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"957:6:103","type":""}],"src":"898:257:103"},{"body":{"nodeType":"YulBlock","src":"1241:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1287:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1296:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1304:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1289:6:103"},"nodeType":"YulFunctionCall","src":"1289:22:103"},"nodeType":"YulExpressionStatement","src":"1289:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1262:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1271:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1258:3:103"},"nodeType":"YulFunctionCall","src":"1258:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1283:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1254:3:103"},"nodeType":"YulFunctionCall","src":"1254:32:103"},"nodeType":"YulIf","src":"1251:2:103"},{"nodeType":"YulVariableDeclaration","src":"1322:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1341:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1335:5:103"},"nodeType":"YulFunctionCall","src":"1335:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1326:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1385:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1360:24:103"},"nodeType":"YulFunctionCall","src":"1360:31:103"},"nodeType":"YulExpressionStatement","src":"1360:31:103"},{"nodeType":"YulAssignment","src":"1400:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1410:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1400:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1207:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1218:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1230:6:103","type":""}],"src":"1160:261:103"},{"body":{"nodeType":"YulBlock","src":"1547:414:103","statements":[{"body":{"nodeType":"YulBlock","src":"1594:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1603:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1611:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1596:6:103"},"nodeType":"YulFunctionCall","src":"1596:22:103"},"nodeType":"YulExpressionStatement","src":"1596:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1568:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1577:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1564:3:103"},"nodeType":"YulFunctionCall","src":"1564:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1589:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1560:3:103"},"nodeType":"YulFunctionCall","src":"1560:33:103"},"nodeType":"YulIf","src":"1557:2:103"},{"nodeType":"YulVariableDeclaration","src":"1629:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1655:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1642:12:103"},"nodeType":"YulFunctionCall","src":"1642:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1633:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1699:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1674:24:103"},"nodeType":"YulFunctionCall","src":"1674:31:103"},"nodeType":"YulExpressionStatement","src":"1674:31:103"},{"nodeType":"YulAssignment","src":"1714:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1724:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1714:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1738:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1770:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1781:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1766:3:103"},"nodeType":"YulFunctionCall","src":"1766:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1753:12:103"},"nodeType":"YulFunctionCall","src":"1753:32:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1742:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1819:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1794:24:103"},"nodeType":"YulFunctionCall","src":"1794:33:103"},"nodeType":"YulExpressionStatement","src":"1794:33:103"},{"nodeType":"YulAssignment","src":"1836:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"1846:7:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1836:6:103"}]},{"nodeType":"YulAssignment","src":"1862:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1889:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1900:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1885:3:103"},"nodeType":"YulFunctionCall","src":"1885:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1872:12:103"},"nodeType":"YulFunctionCall","src":"1872:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1862:6:103"}]},{"nodeType":"YulAssignment","src":"1913:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1940:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1951:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1936:3:103"},"nodeType":"YulFunctionCall","src":"1936:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1923:12:103"},"nodeType":"YulFunctionCall","src":"1923:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"1913:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1489:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1500:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1512:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1520:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1528:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1536:6:103","type":""}],"src":"1426:535:103"},{"body":{"nodeType":"YulBlock","src":"2089:721:103","statements":[{"body":{"nodeType":"YulBlock","src":"2135:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2144:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2152:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2137:6:103"},"nodeType":"YulFunctionCall","src":"2137:22:103"},"nodeType":"YulExpressionStatement","src":"2137:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2110:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2119:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2106:3:103"},"nodeType":"YulFunctionCall","src":"2106:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2131:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2102:3:103"},"nodeType":"YulFunctionCall","src":"2102:32:103"},"nodeType":"YulIf","src":"2099:2:103"},{"nodeType":"YulVariableDeclaration","src":"2170:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2196:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2183:12:103"},"nodeType":"YulFunctionCall","src":"2183:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2174:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2240:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2215:24:103"},"nodeType":"YulFunctionCall","src":"2215:31:103"},"nodeType":"YulExpressionStatement","src":"2215:31:103"},{"nodeType":"YulAssignment","src":"2255:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2265:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2255:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2279:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2310:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2306:3:103"},"nodeType":"YulFunctionCall","src":"2306:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2293:12:103"},"nodeType":"YulFunctionCall","src":"2293:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2283:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2334:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2344:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2338:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2389:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2398:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2406:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2391:6:103"},"nodeType":"YulFunctionCall","src":"2391:22:103"},"nodeType":"YulExpressionStatement","src":"2391:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2377:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2385:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2374:2:103"},"nodeType":"YulFunctionCall","src":"2374:14:103"},"nodeType":"YulIf","src":"2371:2:103"},{"nodeType":"YulVariableDeclaration","src":"2424:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2438:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2449:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2434:3:103"},"nodeType":"YulFunctionCall","src":"2434:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2428:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2504:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2513:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2521:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2506:6:103"},"nodeType":"YulFunctionCall","src":"2506:22:103"},"nodeType":"YulExpressionStatement","src":"2506:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2483:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2487:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2479:3:103"},"nodeType":"YulFunctionCall","src":"2479:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2494:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2475:3:103"},"nodeType":"YulFunctionCall","src":"2475:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2468:6:103"},"nodeType":"YulFunctionCall","src":"2468:35:103"},"nodeType":"YulIf","src":"2465:2:103"},{"nodeType":"YulVariableDeclaration","src":"2539:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2566:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2553:12:103"},"nodeType":"YulFunctionCall","src":"2553:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"2543:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2596:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2605:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2613:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2598:6:103"},"nodeType":"YulFunctionCall","src":"2598:22:103"},"nodeType":"YulExpressionStatement","src":"2598:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2584:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2592:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2581:2:103"},"nodeType":"YulFunctionCall","src":"2581:14:103"},"nodeType":"YulIf","src":"2578:2:103"},{"body":{"nodeType":"YulBlock","src":"2672:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2681:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2689:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2674:6:103"},"nodeType":"YulFunctionCall","src":"2674:22:103"},"nodeType":"YulExpressionStatement","src":"2674:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2645:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"2649:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2641:3:103"},"nodeType":"YulFunctionCall","src":"2641:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"2658:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2637:3:103"},"nodeType":"YulFunctionCall","src":"2637:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2663:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2634:2:103"},"nodeType":"YulFunctionCall","src":"2634:37:103"},"nodeType":"YulIf","src":"2631:2:103"},{"nodeType":"YulAssignment","src":"2707:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2721:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2717:3:103"},"nodeType":"YulFunctionCall","src":"2717:11:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2707:6:103"}]},{"nodeType":"YulAssignment","src":"2737:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"2747:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2737:6:103"}]},{"nodeType":"YulAssignment","src":"2762:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2789:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2800:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2785:3:103"},"nodeType":"YulFunctionCall","src":"2785:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2772:12:103"},"nodeType":"YulFunctionCall","src":"2772:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2762:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2031:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2042:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2054:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2062:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2070:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2078:6:103","type":""}],"src":"1966:844:103"},{"body":{"nodeType":"YulBlock","src":"2912:146:103","statements":[{"body":{"nodeType":"YulBlock","src":"2958:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2967:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2975:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2960:6:103"},"nodeType":"YulFunctionCall","src":"2960:22:103"},"nodeType":"YulExpressionStatement","src":"2960:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2933:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2942:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2929:3:103"},"nodeType":"YulFunctionCall","src":"2929:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2954:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2925:3:103"},"nodeType":"YulFunctionCall","src":"2925:32:103"},"nodeType":"YulIf","src":"2922:2:103"},{"nodeType":"YulAssignment","src":"2993:59:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3042:9:103"}],"functionName":{"name":"abi_decode_enum_BundleState_fromMemory","nodeType":"YulIdentifier","src":"3003:38:103"},"nodeType":"YulFunctionCall","src":"3003:49:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2993:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_BundleState_$4914_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2878:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2889:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2901:6:103","type":""}],"src":"2815:243:103"},{"body":{"nodeType":"YulBlock","src":"3163:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"3209:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3218:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3226:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3211:6:103"},"nodeType":"YulFunctionCall","src":"3211:22:103"},"nodeType":"YulExpressionStatement","src":"3211:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3184:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3193:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3180:3:103"},"nodeType":"YulFunctionCall","src":"3180:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3205:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3176:3:103"},"nodeType":"YulFunctionCall","src":"3176:32:103"},"nodeType":"YulIf","src":"3173:2:103"},{"nodeType":"YulVariableDeclaration","src":"3244:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3263:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3257:5:103"},"nodeType":"YulFunctionCall","src":"3257:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3248:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3306:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3315:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3323:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3308:6:103"},"nodeType":"YulFunctionCall","src":"3308:22:103"},"nodeType":"YulExpressionStatement","src":"3308:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3295:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3302:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3292:2:103"},"nodeType":"YulFunctionCall","src":"3292:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3285:6:103"},"nodeType":"YulFunctionCall","src":"3285:20:103"},"nodeType":"YulIf","src":"3282:2:103"},{"nodeType":"YulAssignment","src":"3341:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3351:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3341:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3129:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3140:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3152:6:103","type":""}],"src":"3063:299:103"},{"body":{"nodeType":"YulBlock","src":"3466:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"3512:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3521:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3529:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3514:6:103"},"nodeType":"YulFunctionCall","src":"3514:22:103"},"nodeType":"YulExpressionStatement","src":"3514:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3487:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3496:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3483:3:103"},"nodeType":"YulFunctionCall","src":"3483:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3508:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3479:3:103"},"nodeType":"YulFunctionCall","src":"3479:32:103"},"nodeType":"YulIf","src":"3476:2:103"},{"nodeType":"YulVariableDeclaration","src":"3547:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3566:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3560:5:103"},"nodeType":"YulFunctionCall","src":"3560:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3551:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3609:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3618:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3626:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3611:6:103"},"nodeType":"YulFunctionCall","src":"3611:22:103"},"nodeType":"YulExpressionStatement","src":"3611:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3598:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3605:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3595:2:103"},"nodeType":"YulFunctionCall","src":"3595:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3588:6:103"},"nodeType":"YulFunctionCall","src":"3588:20:103"},"nodeType":"YulIf","src":"3585:2:103"},{"nodeType":"YulAssignment","src":"3644:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3654:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3644:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3432:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3443:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3455:6:103","type":""}],"src":"3367:298:103"},{"body":{"nodeType":"YulBlock","src":"3775:1114:103","statements":[{"body":{"nodeType":"YulBlock","src":"3821:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3830:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3838:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3823:6:103"},"nodeType":"YulFunctionCall","src":"3823:22:103"},"nodeType":"YulExpressionStatement","src":"3823:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3796:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3805:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3792:3:103"},"nodeType":"YulFunctionCall","src":"3792:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3817:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3788:3:103"},"nodeType":"YulFunctionCall","src":"3788:32:103"},"nodeType":"YulIf","src":"3785:2:103"},{"nodeType":"YulVariableDeclaration","src":"3856:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3876:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3870:5:103"},"nodeType":"YulFunctionCall","src":"3870:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3860:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3895:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3905:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3899:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3950:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3959:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3967:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3952:6:103"},"nodeType":"YulFunctionCall","src":"3952:22:103"},"nodeType":"YulExpressionStatement","src":"3952:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3938:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3946:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3935:2:103"},"nodeType":"YulFunctionCall","src":"3935:14:103"},"nodeType":"YulIf","src":"3932:2:103"},{"nodeType":"YulVariableDeclaration","src":"3985:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3999:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4010:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3995:3:103"},"nodeType":"YulFunctionCall","src":"3995:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3989:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4026:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4036:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"4030:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4080:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4089:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4097:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4082:6:103"},"nodeType":"YulFunctionCall","src":"4082:22:103"},"nodeType":"YulExpressionStatement","src":"4082:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4062:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4071:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4058:3:103"},"nodeType":"YulFunctionCall","src":"4058:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"4076:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4054:3:103"},"nodeType":"YulFunctionCall","src":"4054:25:103"},"nodeType":"YulIf","src":"4051:2:103"},{"nodeType":"YulVariableDeclaration","src":"4115:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4144:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4128:15:103"},"nodeType":"YulFunctionCall","src":"4128:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4119:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4163:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4176:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4170:5:103"},"nodeType":"YulFunctionCall","src":"4170:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4156:6:103"},"nodeType":"YulFunctionCall","src":"4156:24:103"},"nodeType":"YulExpressionStatement","src":"4156:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4200:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4207:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4196:3:103"},"nodeType":"YulFunctionCall","src":"4196:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4222:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4226:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4218:3:103"},"nodeType":"YulFunctionCall","src":"4218:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4212:5:103"},"nodeType":"YulFunctionCall","src":"4212:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4189:6:103"},"nodeType":"YulFunctionCall","src":"4189:42:103"},"nodeType":"YulExpressionStatement","src":"4189:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4251:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4258:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4247:3:103"},"nodeType":"YulFunctionCall","src":"4247:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4273:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4277:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4269:3:103"},"nodeType":"YulFunctionCall","src":"4269:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4263:5:103"},"nodeType":"YulFunctionCall","src":"4263:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4240:6:103"},"nodeType":"YulFunctionCall","src":"4240:42:103"},"nodeType":"YulExpressionStatement","src":"4240:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4302:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4309:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4298:3:103"},"nodeType":"YulFunctionCall","src":"4298:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4357:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4361:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4353:3:103"},"nodeType":"YulFunctionCall","src":"4353:11:103"}],"functionName":{"name":"abi_decode_enum_BundleState_fromMemory","nodeType":"YulIdentifier","src":"4314:38:103"},"nodeType":"YulFunctionCall","src":"4314:51:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4291:6:103"},"nodeType":"YulFunctionCall","src":"4291:75:103"},"nodeType":"YulExpressionStatement","src":"4291:75:103"},{"nodeType":"YulVariableDeclaration","src":"4375:35:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4401:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4405:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4397:3:103"},"nodeType":"YulFunctionCall","src":"4397:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4391:5:103"},"nodeType":"YulFunctionCall","src":"4391:19:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4379:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4439:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4448:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4456:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4441:6:103"},"nodeType":"YulFunctionCall","src":"4441:22:103"},"nodeType":"YulExpressionStatement","src":"4441:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4425:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4435:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4422:2:103"},"nodeType":"YulFunctionCall","src":"4422:16:103"},"nodeType":"YulIf","src":"4419:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4485:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4492:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4481:3:103"},"nodeType":"YulFunctionCall","src":"4481:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4530:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4534:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4526:3:103"},"nodeType":"YulFunctionCall","src":"4526:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4545:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"4498:27:103"},"nodeType":"YulFunctionCall","src":"4498:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4474:6:103"},"nodeType":"YulFunctionCall","src":"4474:80:103"},"nodeType":"YulExpressionStatement","src":"4474:80:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4574:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4581:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4570:3:103"},"nodeType":"YulFunctionCall","src":"4570:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4597:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4601:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4593:3:103"},"nodeType":"YulFunctionCall","src":"4593:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4587:5:103"},"nodeType":"YulFunctionCall","src":"4587:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4563:6:103"},"nodeType":"YulFunctionCall","src":"4563:44:103"},"nodeType":"YulExpressionStatement","src":"4563:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4627:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4634:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4623:3:103"},"nodeType":"YulFunctionCall","src":"4623:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4650:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4654:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4646:3:103"},"nodeType":"YulFunctionCall","src":"4646:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4640:5:103"},"nodeType":"YulFunctionCall","src":"4640:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4616:6:103"},"nodeType":"YulFunctionCall","src":"4616:44:103"},"nodeType":"YulExpressionStatement","src":"4616:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4680:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4687:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4676:3:103"},"nodeType":"YulFunctionCall","src":"4676:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4703:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4707:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4699:3:103"},"nodeType":"YulFunctionCall","src":"4699:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4693:5:103"},"nodeType":"YulFunctionCall","src":"4693:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4669:6:103"},"nodeType":"YulFunctionCall","src":"4669:44:103"},"nodeType":"YulExpressionStatement","src":"4669:44:103"},{"nodeType":"YulVariableDeclaration","src":"4722:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4732:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"4726:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4755:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"4762:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4751:3:103"},"nodeType":"YulFunctionCall","src":"4751:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4777:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"4781:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4773:3:103"},"nodeType":"YulFunctionCall","src":"4773:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4767:5:103"},"nodeType":"YulFunctionCall","src":"4767:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4744:6:103"},"nodeType":"YulFunctionCall","src":"4744:42:103"},"nodeType":"YulExpressionStatement","src":"4744:42:103"},{"nodeType":"YulVariableDeclaration","src":"4795:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4805:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"4799:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4828:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"4835:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4824:3:103"},"nodeType":"YulFunctionCall","src":"4824:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4850:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"4854:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4846:3:103"},"nodeType":"YulFunctionCall","src":"4846:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4840:5:103"},"nodeType":"YulFunctionCall","src":"4840:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4817:6:103"},"nodeType":"YulFunctionCall","src":"4817:42:103"},"nodeType":"YulExpressionStatement","src":"4817:42:103"},{"nodeType":"YulAssignment","src":"4868:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4878:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4868:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3741:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3752:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3764:6:103","type":""}],"src":"3670:1219:103"},{"body":{"nodeType":"YulBlock","src":"4964:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"5010:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5019:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5027:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5012:6:103"},"nodeType":"YulFunctionCall","src":"5012:22:103"},"nodeType":"YulExpressionStatement","src":"5012:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4985:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4994:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4981:3:103"},"nodeType":"YulFunctionCall","src":"4981:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5006:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4977:3:103"},"nodeType":"YulFunctionCall","src":"4977:32:103"},"nodeType":"YulIf","src":"4974:2:103"},{"nodeType":"YulAssignment","src":"5045:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5068:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5055:12:103"},"nodeType":"YulFunctionCall","src":"5055:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5045:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4930:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4941:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4953:6:103","type":""}],"src":"4894:190:103"},{"body":{"nodeType":"YulBlock","src":"5170:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"5216:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5225:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5233:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5218:6:103"},"nodeType":"YulFunctionCall","src":"5218:22:103"},"nodeType":"YulExpressionStatement","src":"5218:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5191:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5187:3:103"},"nodeType":"YulFunctionCall","src":"5187:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5212:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5183:3:103"},"nodeType":"YulFunctionCall","src":"5183:32:103"},"nodeType":"YulIf","src":"5180:2:103"},{"nodeType":"YulAssignment","src":"5251:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5267:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5261:5:103"},"nodeType":"YulFunctionCall","src":"5261:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5251:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5136:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5147:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5159:6:103","type":""}],"src":"5089:194:103"},{"body":{"nodeType":"YulBlock","src":"5375:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"5421:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5430:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5438:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5423:6:103"},"nodeType":"YulFunctionCall","src":"5423:22:103"},"nodeType":"YulExpressionStatement","src":"5423:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5396:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5405:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5392:3:103"},"nodeType":"YulFunctionCall","src":"5392:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5417:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5388:3:103"},"nodeType":"YulFunctionCall","src":"5388:32:103"},"nodeType":"YulIf","src":"5385:2:103"},{"nodeType":"YulAssignment","src":"5456:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5479:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5466:12:103"},"nodeType":"YulFunctionCall","src":"5466:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5456:6:103"}]},{"nodeType":"YulAssignment","src":"5498:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5536:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5521:3:103"},"nodeType":"YulFunctionCall","src":"5521:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5508:12:103"},"nodeType":"YulFunctionCall","src":"5508:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5498:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5333:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5344:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5356:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5364:6:103","type":""}],"src":"5288:258:103"},{"body":{"nodeType":"YulBlock","src":"5655:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"5701:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5710:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5718:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5703:6:103"},"nodeType":"YulFunctionCall","src":"5703:22:103"},"nodeType":"YulExpressionStatement","src":"5703:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5676:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5685:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5672:3:103"},"nodeType":"YulFunctionCall","src":"5672:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5697:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5668:3:103"},"nodeType":"YulFunctionCall","src":"5668:32:103"},"nodeType":"YulIf","src":"5665:2:103"},{"nodeType":"YulAssignment","src":"5736:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5759:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5746:12:103"},"nodeType":"YulFunctionCall","src":"5746:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5736:6:103"}]},{"nodeType":"YulAssignment","src":"5778:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5805:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5816:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5801:3:103"},"nodeType":"YulFunctionCall","src":"5801:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5788:12:103"},"nodeType":"YulFunctionCall","src":"5788:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5778:6:103"}]},{"nodeType":"YulAssignment","src":"5829:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5856:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5867:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5852:3:103"},"nodeType":"YulFunctionCall","src":"5852:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5839:12:103"},"nodeType":"YulFunctionCall","src":"5839:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5829:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5605:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5616:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5628:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5636:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5644:6:103","type":""}],"src":"5551:326:103"},{"body":{"nodeType":"YulBlock","src":"5969:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"6015:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6024:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6032:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6017:6:103"},"nodeType":"YulFunctionCall","src":"6017:22:103"},"nodeType":"YulExpressionStatement","src":"6017:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5990:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5999:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5986:3:103"},"nodeType":"YulFunctionCall","src":"5986:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6011:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5982:3:103"},"nodeType":"YulFunctionCall","src":"5982:32:103"},"nodeType":"YulIf","src":"5979:2:103"},{"nodeType":"YulAssignment","src":"6050:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6073:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6060:12:103"},"nodeType":"YulFunctionCall","src":"6060:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6050:6:103"}]},{"nodeType":"YulAssignment","src":"6092:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6119:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6130:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6115:3:103"},"nodeType":"YulFunctionCall","src":"6115:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6102:12:103"},"nodeType":"YulFunctionCall","src":"6102:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6092:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5927:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5938:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5950:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5958:6:103","type":""}],"src":"5882:258:103"},{"body":{"nodeType":"YulBlock","src":"6243:157:103","statements":[{"body":{"nodeType":"YulBlock","src":"6289:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6298:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6306:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6291:6:103"},"nodeType":"YulFunctionCall","src":"6291:22:103"},"nodeType":"YulExpressionStatement","src":"6291:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6264:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6273:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6260:3:103"},"nodeType":"YulFunctionCall","src":"6260:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6285:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6256:3:103"},"nodeType":"YulFunctionCall","src":"6256:32:103"},"nodeType":"YulIf","src":"6253:2:103"},{"nodeType":"YulAssignment","src":"6324:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6340:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6334:5:103"},"nodeType":"YulFunctionCall","src":"6334:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6324:6:103"}]},{"nodeType":"YulAssignment","src":"6359:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6379:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6390:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6375:3:103"},"nodeType":"YulFunctionCall","src":"6375:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6369:5:103"},"nodeType":"YulFunctionCall","src":"6369:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6359:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6201:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6212:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6224:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6232:6:103","type":""}],"src":"6145:255:103"},{"body":{"nodeType":"YulBlock","src":"6506:102:103","statements":[{"nodeType":"YulAssignment","src":"6516:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6528:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6539:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6524:3:103"},"nodeType":"YulFunctionCall","src":"6524:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6516:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6558:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6573:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6589:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6594:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6585:3:103"},"nodeType":"YulFunctionCall","src":"6585:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6598:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6581:3:103"},"nodeType":"YulFunctionCall","src":"6581:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6569:3:103"},"nodeType":"YulFunctionCall","src":"6569:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6551:6:103"},"nodeType":"YulFunctionCall","src":"6551:51:103"},"nodeType":"YulExpressionStatement","src":"6551:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6475:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6486:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6497:4:103","type":""}],"src":"6405:203:103"},{"body":{"nodeType":"YulBlock","src":"6834:422:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6851:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6866:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6882:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6887:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6878:3:103"},"nodeType":"YulFunctionCall","src":"6878:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6891:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6874:3:103"},"nodeType":"YulFunctionCall","src":"6874:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6862:3:103"},"nodeType":"YulFunctionCall","src":"6862:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6844:6:103"},"nodeType":"YulFunctionCall","src":"6844:51:103"},"nodeType":"YulExpressionStatement","src":"6844:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6926:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6911:3:103"},"nodeType":"YulFunctionCall","src":"6911:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"6931:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6904:6:103"},"nodeType":"YulFunctionCall","src":"6904:34:103"},"nodeType":"YulExpressionStatement","src":"6904:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6958:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6969:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6954:3:103"},"nodeType":"YulFunctionCall","src":"6954:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6974:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6947:6:103"},"nodeType":"YulFunctionCall","src":"6947:31:103"},"nodeType":"YulExpressionStatement","src":"6947:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6998:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7009:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6994:3:103"},"nodeType":"YulFunctionCall","src":"6994:19:103"},{"name":"value3","nodeType":"YulIdentifier","src":"7015:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6987:6:103"},"nodeType":"YulFunctionCall","src":"6987:35:103"},"nodeType":"YulExpressionStatement","src":"6987:35:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7048:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7059:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7044:3:103"},"nodeType":"YulFunctionCall","src":"7044:19:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7065:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"7073:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"7031:12:103"},"nodeType":"YulFunctionCall","src":"7031:49:103"},"nodeType":"YulExpressionStatement","src":"7031:49:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7104:9:103"},{"name":"value3","nodeType":"YulIdentifier","src":"7115:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7100:3:103"},"nodeType":"YulFunctionCall","src":"7100:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"7124:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7096:3:103"},"nodeType":"YulFunctionCall","src":"7096:32:103"},{"name":"tail","nodeType":"YulIdentifier","src":"7130:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7089:6:103"},"nodeType":"YulFunctionCall","src":"7089:46:103"},"nodeType":"YulExpressionStatement","src":"7089:46:103"},{"nodeType":"YulAssignment","src":"7144:63:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7160:9:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7179:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7187:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7175:3:103"},"nodeType":"YulFunctionCall","src":"7175:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7196:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7192:3:103"},"nodeType":"YulFunctionCall","src":"7192:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7171:3:103"},"nodeType":"YulFunctionCall","src":"7171:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7156:3:103"},"nodeType":"YulFunctionCall","src":"7156:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"7203:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7152:3:103"},"nodeType":"YulFunctionCall","src":"7152:55:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7144:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7227:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7238:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7223:3:103"},"nodeType":"YulFunctionCall","src":"7223:18:103"},{"name":"value4","nodeType":"YulIdentifier","src":"7243:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7216:6:103"},"nodeType":"YulFunctionCall","src":"7216:34:103"},"nodeType":"YulExpressionStatement","src":"7216:34:103"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_rational_0_by_1__to_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6771:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6782:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6790:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6798:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6806:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6814:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6825:4:103","type":""}],"src":"6613:643:103"},{"body":{"nodeType":"YulBlock","src":"7362:76:103","statements":[{"nodeType":"YulAssignment","src":"7372:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7384:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7395:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7380:3:103"},"nodeType":"YulFunctionCall","src":"7380:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7372:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7414:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7425:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7407:6:103"},"nodeType":"YulFunctionCall","src":"7407:25:103"},"nodeType":"YulExpressionStatement","src":"7407:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7331:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7342:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7353:4:103","type":""}],"src":"7261:177:103"},{"body":{"nodeType":"YulBlock","src":"7550:87:103","statements":[{"nodeType":"YulAssignment","src":"7560:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7572:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7583:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7568:3:103"},"nodeType":"YulFunctionCall","src":"7568:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7560:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7602:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7617:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"7625:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7613:3:103"},"nodeType":"YulFunctionCall","src":"7613:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7595:6:103"},"nodeType":"YulFunctionCall","src":"7595:36:103"},"nodeType":"YulExpressionStatement","src":"7595:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7519:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7530:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7541:4:103","type":""}],"src":"7443:194:103"},{"body":{"nodeType":"YulBlock","src":"7816:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7844:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7826:6:103"},"nodeType":"YulFunctionCall","src":"7826:21:103"},"nodeType":"YulExpressionStatement","src":"7826:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7867:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7878:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7863:3:103"},"nodeType":"YulFunctionCall","src":"7863:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7883:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7856:6:103"},"nodeType":"YulFunctionCall","src":"7856:30:103"},"nodeType":"YulExpressionStatement","src":"7856:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7906:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7917:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7902:3:103"},"nodeType":"YulFunctionCall","src":"7902:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7922:34:103","type":"","value":"ERROR:RPS-002:RISKPOOL_NOT_PROPO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7895:6:103"},"nodeType":"YulFunctionCall","src":"7895:62:103"},"nodeType":"YulExpressionStatement","src":"7895:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7977:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7988:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7973:3:103"},"nodeType":"YulFunctionCall","src":"7973:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7993:5:103","type":"","value":"SED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7966:6:103"},"nodeType":"YulFunctionCall","src":"7966:33:103"},"nodeType":"YulExpressionStatement","src":"7966:33:103"},{"nodeType":"YulAssignment","src":"8008:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8020:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8031:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8016:3:103"},"nodeType":"YulFunctionCall","src":"8016:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8008:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0c96a51f00cf9612773d15d17720eae05a0f2c52cc3d14d5ed17e37cdf11d67e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7793:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7807:4:103","type":""}],"src":"7642:399:103"},{"body":{"nodeType":"YulBlock","src":"8220:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8237:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8248:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8230:6:103"},"nodeType":"YulFunctionCall","src":"8230:21:103"},"nodeType":"YulExpressionStatement","src":"8230:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8282:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8267:3:103"},"nodeType":"YulFunctionCall","src":"8267:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8287:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8260:6:103"},"nodeType":"YulFunctionCall","src":"8260:30:103"},"nodeType":"YulExpressionStatement","src":"8260:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8310:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8321:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8306:3:103"},"nodeType":"YulFunctionCall","src":"8306:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8326:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8299:6:103"},"nodeType":"YulFunctionCall","src":"8299:62:103"},"nodeType":"YulExpressionStatement","src":"8299:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8381:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8392:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8377:3:103"},"nodeType":"YulFunctionCall","src":"8377:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8397:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8370:6:103"},"nodeType":"YulFunctionCall","src":"8370:35:103"},"nodeType":"YulExpressionStatement","src":"8370:35:103"},{"nodeType":"YulAssignment","src":"8414:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8437:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8422:3:103"},"nodeType":"YulFunctionCall","src":"8422:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8414:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8197:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8211:4:103","type":""}],"src":"8046:401:103"},{"body":{"nodeType":"YulBlock","src":"8626:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8654:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8636:6:103"},"nodeType":"YulFunctionCall","src":"8636:21:103"},"nodeType":"YulExpressionStatement","src":"8636:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8688:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8673:3:103"},"nodeType":"YulFunctionCall","src":"8673:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8693:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8666:6:103"},"nodeType":"YulFunctionCall","src":"8666:30:103"},"nodeType":"YulExpressionStatement","src":"8666:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8716:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8727:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8712:3:103"},"nodeType":"YulFunctionCall","src":"8712:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8732:34:103","type":"","value":"ERROR:RPS-013:UNEXPECTED_FEE_SUB"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8705:6:103"},"nodeType":"YulFunctionCall","src":"8705:62:103"},"nodeType":"YulExpressionStatement","src":"8705:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8787:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8798:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8783:3:103"},"nodeType":"YulFunctionCall","src":"8783:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8803:10:103","type":"","value":"TRACTION"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8776:6:103"},"nodeType":"YulFunctionCall","src":"8776:38:103"},"nodeType":"YulExpressionStatement","src":"8776:38:103"},{"nodeType":"YulAssignment","src":"8823:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8835:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8846:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8831:3:103"},"nodeType":"YulFunctionCall","src":"8831:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8823:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_258a3c9af06bd81d9eb902a8f510faf45f4bdbbc4357a4c707327ecc2c7180b8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8603:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8617:4:103","type":""}],"src":"8452:404:103"},{"body":{"nodeType":"YulBlock","src":"9035:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9052:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9063:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9045:6:103"},"nodeType":"YulFunctionCall","src":"9045:21:103"},"nodeType":"YulExpressionStatement","src":"9045:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9086:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9097:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9082:3:103"},"nodeType":"YulFunctionCall","src":"9082:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9102:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9075:6:103"},"nodeType":"YulFunctionCall","src":"9075:30:103"},"nodeType":"YulExpressionStatement","src":"9075:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9125:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9136:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9121:3:103"},"nodeType":"YulFunctionCall","src":"9121:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9141:34:103","type":"","value":"ERROR:RPS-005:SENDER_NOT_RISKPOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9114:6:103"},"nodeType":"YulFunctionCall","src":"9114:62:103"},"nodeType":"YulExpressionStatement","src":"9114:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9196:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9207:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9192:3:103"},"nodeType":"YulFunctionCall","src":"9192:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9212:3:103","type":"","value":"L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9185:6:103"},"nodeType":"YulFunctionCall","src":"9185:31:103"},"nodeType":"YulExpressionStatement","src":"9185:31:103"},{"nodeType":"YulAssignment","src":"9225:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9237:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9248:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9233:3:103"},"nodeType":"YulFunctionCall","src":"9233:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9225:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_309fb80389ae2cf275d3bd06f653b63b4bb0fb9d9ee3e0d9b947706f44385d1f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9012:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9026:4:103","type":""}],"src":"8861:397:103"},{"body":{"nodeType":"YulBlock","src":"9437:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9465:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9447:6:103"},"nodeType":"YulFunctionCall","src":"9447:21:103"},"nodeType":"YulExpressionStatement","src":"9447:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9488:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9499:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9484:3:103"},"nodeType":"YulFunctionCall","src":"9484:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9504:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9477:6:103"},"nodeType":"YulFunctionCall","src":"9477:30:103"},"nodeType":"YulExpressionStatement","src":"9477:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9527:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9538:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9523:3:103"},"nodeType":"YulFunctionCall","src":"9523:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9543:33:103","type":"","value":"ERROR:RPS-020:BUNDLE_NOT_CLOSED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9516:6:103"},"nodeType":"YulFunctionCall","src":"9516:61:103"},"nodeType":"YulExpressionStatement","src":"9516:61:103"},{"nodeType":"YulAssignment","src":"9586:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9598:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9609:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9594:3:103"},"nodeType":"YulFunctionCall","src":"9594:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9586:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_386d499e9b35cf070593adbf1e04c00337097d278207b271aae54ef291324f75__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9414:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9428:4:103","type":""}],"src":"9263:355:103"},{"body":{"nodeType":"YulBlock","src":"9797:230:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9825:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9807:6:103"},"nodeType":"YulFunctionCall","src":"9807:21:103"},"nodeType":"YulExpressionStatement","src":"9807:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9848:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9859:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9844:3:103"},"nodeType":"YulFunctionCall","src":"9844:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9864:2:103","type":"","value":"40"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9837:6:103"},"nodeType":"YulFunctionCall","src":"9837:30:103"},"nodeType":"YulExpressionStatement","src":"9837:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9887:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9898:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9883:3:103"},"nodeType":"YulFunctionCall","src":"9883:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9903:34:103","type":"","value":"ERROR:RPS-008:SENDER_NOT_OWNING_"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9876:6:103"},"nodeType":"YulFunctionCall","src":"9876:62:103"},"nodeType":"YulExpressionStatement","src":"9876:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9958:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9969:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9954:3:103"},"nodeType":"YulFunctionCall","src":"9954:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9974:10:103","type":"","value":"RISKPOOL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9947:6:103"},"nodeType":"YulFunctionCall","src":"9947:38:103"},"nodeType":"YulExpressionStatement","src":"9947:38:103"},{"nodeType":"YulAssignment","src":"9994:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10006:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10017:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10002:3:103"},"nodeType":"YulFunctionCall","src":"10002:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9994:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3c31b8742a47ea96bb8a5dda4954f2d206e7ddf3e59e186c3dda9736791081f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9774:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9788:4:103","type":""}],"src":"9623:404:103"},{"body":{"nodeType":"YulBlock","src":"10206:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10223:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10234:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10216:6:103"},"nodeType":"YulFunctionCall","src":"10216:21:103"},"nodeType":"YulExpressionStatement","src":"10216:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10257:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10268:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10253:3:103"},"nodeType":"YulFunctionCall","src":"10253:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10273:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10246:6:103"},"nodeType":"YulFunctionCall","src":"10246:30:103"},"nodeType":"YulExpressionStatement","src":"10246:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10296:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10307:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10292:3:103"},"nodeType":"YulFunctionCall","src":"10292:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10312:34:103","type":"","value":"ERROR:RPS-010:BUNDLE_CLOSED_OR_B"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10285:6:103"},"nodeType":"YulFunctionCall","src":"10285:62:103"},"nodeType":"YulExpressionStatement","src":"10285:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10367:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10378:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10363:3:103"},"nodeType":"YulFunctionCall","src":"10363:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10383:7:103","type":"","value":"URNED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10356:6:103"},"nodeType":"YulFunctionCall","src":"10356:35:103"},"nodeType":"YulExpressionStatement","src":"10356:35:103"},{"nodeType":"YulAssignment","src":"10400:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10412:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10423:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10408:3:103"},"nodeType":"YulFunctionCall","src":"10408:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10400:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_578b4367808291b575492ac361c0e3d01cfd1dc40e85f0622444de502d7a0138__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10183:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10197:4:103","type":""}],"src":"10032:401:103"},{"body":{"nodeType":"YulBlock","src":"10612:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10629:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10640:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10622:6:103"},"nodeType":"YulFunctionCall","src":"10622:21:103"},"nodeType":"YulExpressionStatement","src":"10622:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10663:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10674:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10659:3:103"},"nodeType":"YulFunctionCall","src":"10659:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10679:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10652:6:103"},"nodeType":"YulFunctionCall","src":"10652:30:103"},"nodeType":"YulExpressionStatement","src":"10652:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10702:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10713:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10698:3:103"},"nodeType":"YulFunctionCall","src":"10698:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10718:34:103","type":"","value":"ERROR:RPS-009:RISKPOOL_NOT_ACTIV"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10691:6:103"},"nodeType":"YulFunctionCall","src":"10691:62:103"},"nodeType":"YulExpressionStatement","src":"10691:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10784:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10769:3:103"},"nodeType":"YulFunctionCall","src":"10769:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10789:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10762:6:103"},"nodeType":"YulFunctionCall","src":"10762:31:103"},"nodeType":"YulExpressionStatement","src":"10762:31:103"},{"nodeType":"YulAssignment","src":"10802:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10825:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10810:3:103"},"nodeType":"YulFunctionCall","src":"10810:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10802:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5997ac91a2b36c0c5a522febf3408a4cfa08d11c8d231513f8127518fd86198f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10589:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10603:4:103","type":""}],"src":"10438:397:103"},{"body":{"nodeType":"YulBlock","src":"11014:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11031:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11042:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11024:6:103"},"nodeType":"YulFunctionCall","src":"11024:21:103"},"nodeType":"YulExpressionStatement","src":"11024:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11065:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11076:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11061:3:103"},"nodeType":"YulFunctionCall","src":"11061:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11081:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11054:6:103"},"nodeType":"YulFunctionCall","src":"11054:30:103"},"nodeType":"YulExpressionStatement","src":"11054:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11104:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11115:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11100:3:103"},"nodeType":"YulFunctionCall","src":"11100:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11120:34:103","type":"","value":"ERROR:RPS-004:RISKPOOL_NOT_ACTIV"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11093:6:103"},"nodeType":"YulFunctionCall","src":"11093:62:103"},"nodeType":"YulExpressionStatement","src":"11093:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11186:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11171:3:103"},"nodeType":"YulFunctionCall","src":"11171:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11191:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11164:6:103"},"nodeType":"YulFunctionCall","src":"11164:31:103"},"nodeType":"YulExpressionStatement","src":"11164:31:103"},{"nodeType":"YulAssignment","src":"11204:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11227:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11212:3:103"},"nodeType":"YulFunctionCall","src":"11212:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11204:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6aeeb671cb04d5a48d011c2b888ef50bedbd1cccc4d6e15aa35591a7f0d67c8d__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10991:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11005:4:103","type":""}],"src":"10840:397:103"},{"body":{"nodeType":"YulBlock","src":"11416:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11444:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11426:6:103"},"nodeType":"YulFunctionCall","src":"11426:21:103"},"nodeType":"YulExpressionStatement","src":"11426:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11467:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11478:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11463:3:103"},"nodeType":"YulFunctionCall","src":"11463:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11483:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11456:6:103"},"nodeType":"YulFunctionCall","src":"11456:30:103"},"nodeType":"YulExpressionStatement","src":"11456:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11506:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11517:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11502:3:103"},"nodeType":"YulFunctionCall","src":"11502:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11522:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11495:6:103"},"nodeType":"YulFunctionCall","src":"11495:62:103"},"nodeType":"YulExpressionStatement","src":"11495:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11577:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11588:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11573:3:103"},"nodeType":"YulFunctionCall","src":"11573:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11593:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11566:6:103"},"nodeType":"YulFunctionCall","src":"11566:44:103"},"nodeType":"YulExpressionStatement","src":"11566:44:103"},{"nodeType":"YulAssignment","src":"11619:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11642:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11627:3:103"},"nodeType":"YulFunctionCall","src":"11627:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11619:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11393:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11407:4:103","type":""}],"src":"11242:410:103"},{"body":{"nodeType":"YulBlock","src":"11831:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11848:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11859:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11841:6:103"},"nodeType":"YulFunctionCall","src":"11841:21:103"},"nodeType":"YulExpressionStatement","src":"11841:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11882:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11893:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11878:3:103"},"nodeType":"YulFunctionCall","src":"11878:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11898:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11871:6:103"},"nodeType":"YulFunctionCall","src":"11871:30:103"},"nodeType":"YulExpressionStatement","src":"11871:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11921:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11932:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11917:3:103"},"nodeType":"YulFunctionCall","src":"11917:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11937:34:103","type":"","value":"ERROR:RPS-007:RISKPOOL_NOT_ACTIV"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11910:6:103"},"nodeType":"YulFunctionCall","src":"11910:62:103"},"nodeType":"YulExpressionStatement","src":"11910:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12003:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11988:3:103"},"nodeType":"YulFunctionCall","src":"11988:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12008:3:103","type":"","value":"E"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11981:6:103"},"nodeType":"YulFunctionCall","src":"11981:31:103"},"nodeType":"YulExpressionStatement","src":"11981:31:103"},{"nodeType":"YulAssignment","src":"12021:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12033:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12044:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12029:3:103"},"nodeType":"YulFunctionCall","src":"12029:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12021:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_82c4beee20530787664c8ead0427e62fb92780c18734e94848452ff578617680__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11808:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11822:4:103","type":""}],"src":"11657:397:103"},{"body":{"nodeType":"YulBlock","src":"12233:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12250:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12261:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12243:6:103"},"nodeType":"YulFunctionCall","src":"12243:21:103"},"nodeType":"YulExpressionStatement","src":"12243:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12284:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12295:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12280:3:103"},"nodeType":"YulFunctionCall","src":"12280:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12300:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12273:6:103"},"nodeType":"YulFunctionCall","src":"12273:30:103"},"nodeType":"YulExpressionStatement","src":"12273:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12323:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12334:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12319:3:103"},"nodeType":"YulFunctionCall","src":"12319:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12339:34:103","type":"","value":"ERROR:RPS-006:BUNDLE_RISKPOOL_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12312:6:103"},"nodeType":"YulFunctionCall","src":"12312:62:103"},"nodeType":"YulExpressionStatement","src":"12312:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12394:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12405:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12390:3:103"},"nodeType":"YulFunctionCall","src":"12390:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12410:8:103","type":"","value":"SMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12383:6:103"},"nodeType":"YulFunctionCall","src":"12383:36:103"},"nodeType":"YulExpressionStatement","src":"12383:36:103"},{"nodeType":"YulAssignment","src":"12428:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12451:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12436:3:103"},"nodeType":"YulFunctionCall","src":"12436:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12428:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_855b2be9e098fb1f219f436687f12dd85abab2ace616e4294e271e6704a1c399__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12210:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12224:4:103","type":""}],"src":"12059:402:103"},{"body":{"nodeType":"YulBlock","src":"12640:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12657:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12668:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12650:6:103"},"nodeType":"YulFunctionCall","src":"12650:21:103"},"nodeType":"YulExpressionStatement","src":"12650:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12691:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12702:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12687:3:103"},"nodeType":"YulFunctionCall","src":"12687:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12707:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12680:6:103"},"nodeType":"YulFunctionCall","src":"12680:30:103"},"nodeType":"YulExpressionStatement","src":"12680:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12730:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12741:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12726:3:103"},"nodeType":"YulFunctionCall","src":"12726:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12746:34:103","type":"","value":"ERROR:RPS-001:SENDER_NOT_RISKPOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12719:6:103"},"nodeType":"YulFunctionCall","src":"12719:62:103"},"nodeType":"YulExpressionStatement","src":"12719:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12801:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12812:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12797:3:103"},"nodeType":"YulFunctionCall","src":"12797:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12817:3:103","type":"","value":"L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12790:6:103"},"nodeType":"YulFunctionCall","src":"12790:31:103"},"nodeType":"YulExpressionStatement","src":"12790:31:103"},{"nodeType":"YulAssignment","src":"12830:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12842:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12853:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12838:3:103"},"nodeType":"YulFunctionCall","src":"12838:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12830:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_ae48b1a9c680c35d2a9f667f2fed37c9f73ddafd56231c776d44d9e8be57b7c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12617:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12631:4:103","type":""}],"src":"12466:397:103"},{"body":{"nodeType":"YulBlock","src":"13042:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13059:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13070:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13052:6:103"},"nodeType":"YulFunctionCall","src":"13052:21:103"},"nodeType":"YulExpressionStatement","src":"13052:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13093:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13104:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13089:3:103"},"nodeType":"YulFunctionCall","src":"13089:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13109:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13082:6:103"},"nodeType":"YulFunctionCall","src":"13082:30:103"},"nodeType":"YulExpressionStatement","src":"13082:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13132:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13143:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13128:3:103"},"nodeType":"YulFunctionCall","src":"13128:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13148:34:103","type":"","value":"ERROR:RPS-003:SENDER_NOT_RISKPOO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13121:6:103"},"nodeType":"YulFunctionCall","src":"13121:62:103"},"nodeType":"YulExpressionStatement","src":"13121:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13203:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13214:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13199:3:103"},"nodeType":"YulFunctionCall","src":"13199:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13219:3:103","type":"","value":"L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13192:6:103"},"nodeType":"YulFunctionCall","src":"13192:31:103"},"nodeType":"YulExpressionStatement","src":"13192:31:103"},{"nodeType":"YulAssignment","src":"13232:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13244:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13255:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13240:3:103"},"nodeType":"YulFunctionCall","src":"13240:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13232:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d0cf53bcac0823b95001502ace6e4a3ba31149781e27fb2df5d3fca0a348d9e0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13019:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13033:4:103","type":""}],"src":"12868:397:103"},{"body":{"nodeType":"YulBlock","src":"13444:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13461:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13472:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13454:6:103"},"nodeType":"YulFunctionCall","src":"13454:21:103"},"nodeType":"YulExpressionStatement","src":"13454:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13495:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13506:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13491:3:103"},"nodeType":"YulFunctionCall","src":"13491:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13511:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13484:6:103"},"nodeType":"YulFunctionCall","src":"13484:30:103"},"nodeType":"YulExpressionStatement","src":"13484:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13534:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13545:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13530:3:103"},"nodeType":"YulFunctionCall","src":"13530:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13550:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13523:6:103"},"nodeType":"YulFunctionCall","src":"13523:62:103"},"nodeType":"YulExpressionStatement","src":"13523:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13616:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13601:3:103"},"nodeType":"YulFunctionCall","src":"13601:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13621:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13594:6:103"},"nodeType":"YulFunctionCall","src":"13594:41:103"},"nodeType":"YulExpressionStatement","src":"13594:41:103"},{"nodeType":"YulAssignment","src":"13644:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13656:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13667:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13652:3:103"},"nodeType":"YulFunctionCall","src":"13652:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13644:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13421:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13435:4:103","type":""}],"src":"13270:407:103"},{"body":{"nodeType":"YulBlock","src":"13856:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13873:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13884:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13866:6:103"},"nodeType":"YulFunctionCall","src":"13866:21:103"},"nodeType":"YulExpressionStatement","src":"13866:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13918:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13903:3:103"},"nodeType":"YulFunctionCall","src":"13903:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13923:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13896:6:103"},"nodeType":"YulFunctionCall","src":"13896:30:103"},"nodeType":"YulExpressionStatement","src":"13896:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13946:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13957:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13942:3:103"},"nodeType":"YulFunctionCall","src":"13942:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13962:29:103","type":"","value":"ERROR:RPS-011:BUNDLE_BURNED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13935:6:103"},"nodeType":"YulFunctionCall","src":"13935:57:103"},"nodeType":"YulExpressionStatement","src":"13935:57:103"},{"nodeType":"YulAssignment","src":"14001:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14024:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14009:3:103"},"nodeType":"YulFunctionCall","src":"14009:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14001:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e1f2a051d0acedf2156c1900d0e6d10c218e8acd8875eeacadd2cd00fdd5a714__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13833:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13847:4:103","type":""}],"src":"13682:351:103"},{"body":{"nodeType":"YulBlock","src":"14139:76:103","statements":[{"nodeType":"YulAssignment","src":"14149:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14161:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14172:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14157:3:103"},"nodeType":"YulFunctionCall","src":"14157:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14149:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14191:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14202:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14184:6:103"},"nodeType":"YulFunctionCall","src":"14184:25:103"},"nodeType":"YulExpressionStatement","src":"14184:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14108:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14119:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14130:4:103","type":""}],"src":"14038:177:103"},{"body":{"nodeType":"YulBlock","src":"14433:306:103","statements":[{"nodeType":"YulAssignment","src":"14443:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14455:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14466:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14451:3:103"},"nodeType":"YulFunctionCall","src":"14451:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14443:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14486:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14497:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14479:6:103"},"nodeType":"YulFunctionCall","src":"14479:25:103"},"nodeType":"YulExpressionStatement","src":"14479:25:103"},{"nodeType":"YulVariableDeclaration","src":"14513:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14531:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14536:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14527:3:103"},"nodeType":"YulFunctionCall","src":"14527:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14540:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14523:3:103"},"nodeType":"YulFunctionCall","src":"14523:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"14517:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14562:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14573:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14558:3:103"},"nodeType":"YulFunctionCall","src":"14558:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"14582:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"14590:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14578:3:103"},"nodeType":"YulFunctionCall","src":"14578:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14551:6:103"},"nodeType":"YulFunctionCall","src":"14551:43:103"},"nodeType":"YulExpressionStatement","src":"14551:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14614:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14625:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14610:3:103"},"nodeType":"YulFunctionCall","src":"14610:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"14634:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"14642:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14630:3:103"},"nodeType":"YulFunctionCall","src":"14630:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14603:6:103"},"nodeType":"YulFunctionCall","src":"14603:43:103"},"nodeType":"YulExpressionStatement","src":"14603:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14666:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14677:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14662:3:103"},"nodeType":"YulFunctionCall","src":"14662:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"14682:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14655:6:103"},"nodeType":"YulFunctionCall","src":"14655:34:103"},"nodeType":"YulExpressionStatement","src":"14655:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14720:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14705:3:103"},"nodeType":"YulFunctionCall","src":"14705:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"14726:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14698:6:103"},"nodeType":"YulFunctionCall","src":"14698:35:103"},"nodeType":"YulExpressionStatement","src":"14698:35:103"}]},"name":"abi_encode_tuple_t_uint256_t_address_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14370:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"14381:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14389:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14397:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14405:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14413:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14424:4:103","type":""}],"src":"14220:519:103"},{"body":{"nodeType":"YulBlock","src":"14873:119:103","statements":[{"nodeType":"YulAssignment","src":"14883:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14895:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14906:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14891:3:103"},"nodeType":"YulFunctionCall","src":"14891:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14883:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14925:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14936:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14918:6:103"},"nodeType":"YulFunctionCall","src":"14918:25:103"},"nodeType":"YulExpressionStatement","src":"14918:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14963:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14974:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14959:3:103"},"nodeType":"YulFunctionCall","src":"14959:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14979:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14952:6:103"},"nodeType":"YulFunctionCall","src":"14952:34:103"},"nodeType":"YulExpressionStatement","src":"14952:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14834:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14845:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14853:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14864:4:103","type":""}],"src":"14744:248:103"},{"body":{"nodeType":"YulBlock","src":"15154:162:103","statements":[{"nodeType":"YulAssignment","src":"15164:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15176:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15187:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15172:3:103"},"nodeType":"YulFunctionCall","src":"15172:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15164:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15206:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15217:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15199:6:103"},"nodeType":"YulFunctionCall","src":"15199:25:103"},"nodeType":"YulExpressionStatement","src":"15199:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15244:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15255:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15240:3:103"},"nodeType":"YulFunctionCall","src":"15240:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"15260:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15233:6:103"},"nodeType":"YulFunctionCall","src":"15233:34:103"},"nodeType":"YulExpressionStatement","src":"15233:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15287:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15298:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15283:3:103"},"nodeType":"YulFunctionCall","src":"15283:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"15303:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15276:6:103"},"nodeType":"YulFunctionCall","src":"15276:34:103"},"nodeType":"YulExpressionStatement","src":"15276:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15107:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"15118:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15126:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15134:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15145:4:103","type":""}],"src":"14997:319:103"},{"body":{"nodeType":"YulBlock","src":"15450:119:103","statements":[{"nodeType":"YulAssignment","src":"15460:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15472:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15483:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15468:3:103"},"nodeType":"YulFunctionCall","src":"15468:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15460:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15502:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15513:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15495:6:103"},"nodeType":"YulFunctionCall","src":"15495:25:103"},"nodeType":"YulExpressionStatement","src":"15495:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15540:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15551:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15536:3:103"},"nodeType":"YulFunctionCall","src":"15536:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"15556:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15529:6:103"},"nodeType":"YulFunctionCall","src":"15529:34:103"},"nodeType":"YulExpressionStatement","src":"15529:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15411:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"15422:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15430:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15441:4:103","type":""}],"src":"15321:248:103"},{"body":{"nodeType":"YulBlock","src":"15619:230:103","statements":[{"nodeType":"YulAssignment","src":"15629:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15645:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15639:5:103"},"nodeType":"YulFunctionCall","src":"15639:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"15629:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"15657:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"15679:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"15695:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"15701:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15691:3:103"},"nodeType":"YulFunctionCall","src":"15691:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15710:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"15706:3:103"},"nodeType":"YulFunctionCall","src":"15706:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15687:3:103"},"nodeType":"YulFunctionCall","src":"15687:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15675:3:103"},"nodeType":"YulFunctionCall","src":"15675:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"15661:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"15790:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"15792:16:103"},"nodeType":"YulFunctionCall","src":"15792:18:103"},"nodeType":"YulExpressionStatement","src":"15792:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15733:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"15745:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"15730:2:103"},"nodeType":"YulFunctionCall","src":"15730:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15769:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"15781:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15766:2:103"},"nodeType":"YulFunctionCall","src":"15766:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"15727:2:103"},"nodeType":"YulFunctionCall","src":"15727:62:103"},"nodeType":"YulIf","src":"15724:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15828:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"15832:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15821:6:103"},"nodeType":"YulFunctionCall","src":"15821:22:103"},"nodeType":"YulExpressionStatement","src":"15821:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"15599:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"15608:6:103","type":""}],"src":"15574:275:103"},{"body":{"nodeType":"YulBlock","src":"15886:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15903:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15910:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15915:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15906:3:103"},"nodeType":"YulFunctionCall","src":"15906:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15896:6:103"},"nodeType":"YulFunctionCall","src":"15896:31:103"},"nodeType":"YulExpressionStatement","src":"15896:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15943:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15946:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15936:6:103"},"nodeType":"YulFunctionCall","src":"15936:15:103"},"nodeType":"YulExpressionStatement","src":"15936:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15967:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15970:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15960:6:103"},"nodeType":"YulFunctionCall","src":"15960:15:103"},"nodeType":"YulExpressionStatement","src":"15960:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"15854:127:103"},{"body":{"nodeType":"YulBlock","src":"16031:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"16095:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16104:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"16107:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"16097:6:103"},"nodeType":"YulFunctionCall","src":"16097:12:103"},"nodeType":"YulExpressionStatement","src":"16097:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16054:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"16065:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"16080:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"16085:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"16076:3:103"},"nodeType":"YulFunctionCall","src":"16076:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"16089:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"16072:3:103"},"nodeType":"YulFunctionCall","src":"16072:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"16061:3:103"},"nodeType":"YulFunctionCall","src":"16061:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"16051:2:103"},"nodeType":"YulFunctionCall","src":"16051:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16044:6:103"},"nodeType":"YulFunctionCall","src":"16044:50:103"},"nodeType":"YulIf","src":"16041:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"16020:5:103","type":""}],"src":"15986:131:103"}]},"contents":"{\n { }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let _2 := 0x20\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), _2))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), _2), end) { revert(array, array) }\n let i := array\n for { } lt(i, _1) { i := add(i, _2) }\n {\n mstore(add(add(array_1, i), _2), mload(add(add(offset, i), _2)))\n }\n if gt(i, _1)\n {\n mstore(add(add(array_1, _1), _2), array)\n }\n array := array_1\n }\n function abi_decode_enum_BundleState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_addresst_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value1, value1) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value1, value1) }\n value1 := add(_2, 32)\n value2 := length\n value3 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_enum$_BundleState_$4914_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_enum_BundleState_fromMemory(headStart)\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentType_$2891_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 3)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_BundleState_fromMemory(add(_2, 96)))\n let offset_1 := mload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), mload(add(_2, 160)))\n mstore(add(value, 192), mload(add(_2, 192)))\n mstore(add(value, 224), mload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), mload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), mload(add(_2, _5)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_uint256_t_bytes_calldata_ptr_t_rational_0_by_1__to_t_address_t_uint256_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 128)\n mstore(add(headStart, 128), value3)\n calldatacopy(add(headStart, 160), value2, value3)\n mstore(add(add(headStart, value3), 160), tail)\n tail := add(add(headStart, and(add(value3, 31), not(31))), 160)\n mstore(add(headStart, 96), value4)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_0c96a51f00cf9612773d15d17720eae05a0f2c52cc3d14d5ed17e37cdf11d67e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:RPS-002:RISKPOOL_NOT_PROPO\")\n mstore(add(headStart, 96), \"SED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_258a3c9af06bd81d9eb902a8f510faf45f4bdbbc4357a4c707327ecc2c7180b8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:RPS-013:UNEXPECTED_FEE_SUB\")\n mstore(add(headStart, 96), \"TRACTION\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_309fb80389ae2cf275d3bd06f653b63b4bb0fb9d9ee3e0d9b947706f44385d1f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-005:SENDER_NOT_RISKPOO\")\n mstore(add(headStart, 96), \"L\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_386d499e9b35cf070593adbf1e04c00337097d278207b271aae54ef291324f75__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:RPS-020:BUNDLE_NOT_CLOSED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3c31b8742a47ea96bb8a5dda4954f2d206e7ddf3e59e186c3dda9736791081f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 40)\n mstore(add(headStart, 64), \"ERROR:RPS-008:SENDER_NOT_OWNING_\")\n mstore(add(headStart, 96), \"RISKPOOL\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_578b4367808291b575492ac361c0e3d01cfd1dc40e85f0622444de502d7a0138__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:RPS-010:BUNDLE_CLOSED_OR_B\")\n mstore(add(headStart, 96), \"URNED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5997ac91a2b36c0c5a522febf3408a4cfa08d11c8d231513f8127518fd86198f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-009:RISKPOOL_NOT_ACTIV\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6aeeb671cb04d5a48d011c2b888ef50bedbd1cccc4d6e15aa35591a7f0d67c8d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-004:RISKPOOL_NOT_ACTIV\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_82c4beee20530787664c8ead0427e62fb92780c18734e94848452ff578617680__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-007:RISKPOOL_NOT_ACTIV\")\n mstore(add(headStart, 96), \"E\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_855b2be9e098fb1f219f436687f12dd85abab2ace616e4294e271e6704a1c399__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:RPS-006:BUNDLE_RISKPOOL_MI\")\n mstore(add(headStart, 96), \"SMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_ae48b1a9c680c35d2a9f667f2fed37c9f73ddafd56231c776d44d9e8be57b7c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-001:SENDER_NOT_RISKPOO\")\n mstore(add(headStart, 96), \"L\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d0cf53bcac0823b95001502ace6e4a3ba31149781e27fb2df5d3fca0a348d9e0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPS-003:SENDER_NOT_RISKPOO\")\n mstore(add(headStart, 96), \"L\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e1f2a051d0acedf2156c1900d0e6d10c218e8acd8875eeacadd2cd00fdd5a714__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:RPS-011:BUNDLE_BURNED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_address_t_address_t_uint256_t_uint256__to_t_uint256_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100f55760003560e01c806389002da511610097578063b726742011610066578063b7267420146101de578063bb540df6146101f1578063bf2e354614610204578063c4d66de814610217576100f5565b806389002da5146101925780638c483e5a146101a5578063a17030d5146101b8578063b299cc26146101cb576100f5565b8063316c5348116100d3578063316c53481461014657806336153f3a146101595780634d03f9b71461016c578063587e59d01461017f576100f5565b806304f5f96e146100fa57806315fc1e741461011e5780632127fd4814610131575b600080fd5b61010c67149a5cdadc1bdbdb60c21b81565b60405190815260200160405180910390f35b61010c61012c366004613b9d565b61022a565b61014461013f366004613d7f565b61078a565b005b610144610154366004613d4f565b610a8c565b61010c610167366004613d7f565b610ea5565b61014461017a366004613da0565b611419565b61014461018d366004613d4f565b611749565b61010c6101a0366004613d7f565b611cbf565b6101446101b3366004613d4f565b6121d8565b6101446101c6366004613d4f565b612657565b6101446101d9366004613da0565b612a3a565b6101446101ec366004613da0565b612d32565b61010c6101ff366004613d7f565b61302a565b610144610212366004613b58565b613375565b610144610225366004613b19565b6136ca565b60025460009081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561028057600080fd5b505afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156102ff57600080fd5b505afa158015610313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103379190613c5c565b600281111561035657634e487b7160e01b600052602160045260246000fd5b146103b25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030333a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084015b60405180910390fd5b600254604051635e966e4560e01b8152600481018390526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156103f757600080fd5b505afa15801561040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042f9190613c3d565b600681111561044e57634e487b7160e01b600052602160045260246000fd5b146104a55760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030343a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156104f957600080fd5b505afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190613d67565b600354604051633039c50160e21b81529192506001600160a01b03169063c0e714049061056b908a9085908b908b90600090600401613dee565b602060405180830381600087803b15801561058557600080fd5b505af1158015610599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bd9190613d67565b60048054604051626a03dd60e91b81529295506001600160a01b03169163d407ba00916105f7918591889101918252602082015260400190565b600060405180830381600087803b15801561061157600080fd5b505af1158015610625573d6000803e3d6000fd5b505060055460405163136f5ed560e11b81526004810187905260248101889052600093508392506001600160a01b03909116906326debdaa906044016040805180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190613dcb565b60035460405163a65e2cfd60e01b815260048101899052602481018390529294509092506001600160a01b03169063a65e2cfd90604401600060405180830381600087803b15801561070357600080fd5b505af1158015610717573d6000803e3d6000fd5b50506004805460405163a65e2cfd60e01b8152918201879052602482018590526001600160a01b0316925063a65e2cfd9150604401600060405180830381600087803b15801561076657600080fd5b505af115801561077a573d6000803e3d6000fd5b5050505050505050949350505050565b60025482906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156107e357600080fd5b505afa1580156107f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081b9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c9190613c5c565b60028111156108bb57634e487b7160e01b600052602160045260246000fd5b1490508080156108ca57508382145b6109275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3030383a53454e4445525f4e4f545f4f574e494e475f604482015267149254d2d413d3d360c21b60648201526084016103a9565b8215610a2057600254604051635e966e4560e01b8152600481018490526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa9190613c3d565b60068111156109c957634e487b7160e01b600052602160045260246000fd5b14610a205760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030393a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b60048054604051630424ffa960e31b8152918201889052602482018790526001600160a01b031690632127fd48906044015b600060405180830381600087803b158015610a6c57600080fd5b505af1158015610a80573d6000803e3d6000fd5b50505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ae557600080fd5b505afa158015610af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1d9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610b6657600080fd5b505afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190613c5c565b6002811115610bbd57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c449190810190613c7b565b905081610c635760405162461bcd60e51b81526004016103a990613e3f565b80602001518314610c865760405162461bcd60e51b81526004016103a990613ec1565b8315610d4557600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d099190613c3d565b6006811115610d2857634e487b7160e01b600052602160045260246000fd5b14610d455760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610d9957600080fd5b505afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190613d67565b60048054604051626a03dd60e91b81529293506001600160a01b03169163d407ba0091610e0b9185918c9101918252602082015260400190565b600060405180830381600087803b158015610e2557600080fd5b505af1158015610e39573d6000803e3d6000fd5b5050600354604051636198e33960e01b8152600481018b90526001600160a01b039091169250636198e33991506024015b600060405180830381600087803b158015610e8457600080fd5b505af1158015610e98573d6000803e3d6000fd5b5050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f389190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190613c5c565b6002811115610fd857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561102357600080fd5b505afa158015611037573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261105f9190810190613c7b565b90508161107e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146110a15760405162461bcd60e51b81526004016103a990613ec1565b831561116057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156110ec57600080fd5b505afa158015611100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111249190613c3d565b600681111561114357634e487b7160e01b600052602160045260246000fd5b146111605760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156111a557600080fd5b505afa1580156111b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111e19190810190613c7b565b905060038160600151600381111561120957634e487b7160e01b600052602160045260246000fd5b14156112575760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5250532d3031313a42554e444c455f4255524e4544000000000060448201526064016103a9565b60055460405163d935807560e01b8152600481018b9052602481018a90526000916001600160a01b03169063d9358075906044016040805180830381600087803b1580156112a457600080fd5b505af11580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190613dcb565b985090508888146113405760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3031333a554e45585045435445445f4645455f5355426044820152672a2920a1aa24a7a760c11b60648201526084016103a9565b60035460405163c397ae3960e01b8152600481018c9052602481018b90526001600160a01b039091169063c397ae3990604401600060405180830381600087803b15801561138d57600080fd5b505af11580156113a1573d6000803e3d6000fd5b505060048054602086015160405163c397ae3960e01b815292830152602482018c90526001600160a01b0316925063c397ae3991506044015b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050505050505050505092915050565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561147257600080fd5b505afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156114f357600080fd5b505afa158015611507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152b9190613c5c565b600281111561154a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561159557600080fd5b505afa1580156115a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115d19190810190613c7b565b9050816115f05760405162461bcd60e51b81526004016103a990613e3f565b806020015183146116135760405162461bcd60e51b81526004016103a990613ec1565b83156116d257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561165e57600080fd5b505afa158015611672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116969190613c3d565b60068111156116b557634e487b7160e01b600052602160045260246000fd5b146116d25760405162461bcd60e51b81526004016103a990613e80565b600354604051634d03f9b760e01b8152600481018a905260248101899052604481018890526001600160a01b0390911690634d03f9b7906064015b600060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b505050505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156117a257600080fd5b505afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b9190613c5c565b600281111561187a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156118c557600080fd5b505afa1580156118d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119019190810190613c7b565b9050816119205760405162461bcd60e51b81526004016103a990613e3f565b806020015183146119435760405162461bcd60e51b81526004016103a990613ec1565b8315611a0257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561198e57600080fd5b505afa1580156119a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c69190613c3d565b60068111156119e557634e487b7160e01b600052602160045260246000fd5b14611a025760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a839190810190613c7b565b9050600281606001516003811115611aab57634e487b7160e01b600052602160045260246000fd5b14611af85760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5250532d3032303a42554e444c455f4e4f545f434c4f5345440060448201526064016103a9565b60055460e082015160405163d935807560e01b8152600481018a9052602481019190915260009182916001600160a01b039091169063d9358075906044016040805180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b879190613dcb565b60035460405163c397ae3960e01b8152600481018d9052602481018390529294509092506001600160a01b03169063c397ae3990604401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505060048054602087015160405163c397ae3960e01b815292830152602482018590526001600160a01b0316925063c397ae399150604401600060405180830381600087803b158015611c3e57600080fd5b505af1158015611c52573d6000803e3d6000fd5b5050600354604051630852cd8d60e31b8152600481018d90526001600160a01b0390911692506342966c689150602401600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b50505050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015611d1a57600080fd5b505afa158015611d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d529190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd39190613c5c565b6002811115611df257634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611e3d57600080fd5b505afa158015611e51573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e799190810190613c7b565b905081611e985760405162461bcd60e51b81526004016103a990613e3f565b80602001518314611ebb5760405162461bcd60e51b81526004016103a990613ec1565b8315611f7a57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e9190613c3d565b6006811115611f5d57634e487b7160e01b600052602160045260246000fd5b14611f7a5760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611fbf57600080fd5b505afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb9190810190613c7b565b905060028160600151600381111561202357634e487b7160e01b600052602160045260246000fd5b14158015612055575060038160600151600381111561205257634e487b7160e01b600052602160045260246000fd5b14155b6120af5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5250532d3031303a42554e444c455f434c4f5345445f4f525f42604482015264155493915160da1b60648201526084016103a9565b60055460405163136f5ed560e11b8152600481018b9052602481018a90526000916001600160a01b0316906326debdaa906044016040805180830381600087803b1580156120fc57600080fd5b505af1158015612110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121349190613dcb565b60035460405163a65e2cfd60e01b8152600481018e905260248101839052919a509192506001600160a01b039091169063a65e2cfd90604401600060405180830381600087803b15801561218757600080fd5b505af115801561219b573d6000803e3d6000fd5b505060048054602086015160405163a65e2cfd60e01b815292830152602482018c90526001600160a01b0316925063a65e2cfd91506044016113da565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561223157600080fd5b505afa158015612245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122699190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156122b257600080fd5b505afa1580156122c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ea9190613c5c565b600281111561230957634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561235457600080fd5b505afa158015612368573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123909190810190613c7b565b9050816123af5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146123d25760405162461bcd60e51b81526004016103a990613ec1565b831561249157600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190613c3d565b600681111561247457634e487b7160e01b600052602160045260246000fd5b146124915760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156124e557600080fd5b505afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190613d67565b9050600060035460405163089935e560e31b8152600481018a90526001600160a01b03909116906344c9af289060240160206040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d9190613c23565b60038111156125bc57634e487b7160e01b600052602160045260246000fd5b1415612626576004805460405163950be80360e01b8152918201839052602482018990526001600160a01b03169063950be80390604401600060405180830381600087803b15801561260d57600080fd5b505af1158015612621573d6000803e3d6000fd5b505050505b600354604051630575f5a760e11b8152600481018990526001600160a01b0390911690630aebeb4e90602401610e6a565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156126b057600080fd5b505afa1580156126c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e89190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561273157600080fd5b505afa158015612745573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127699190613c5c565b600281111561278857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156127d357600080fd5b505afa1580156127e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261280f9190810190613c7b565b90508161282e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146128515760405162461bcd60e51b81526004016103a990613ec1565b831561291057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561289c57600080fd5b505afa1580156128b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d49190613c3d565b60068111156128f357634e487b7160e01b600052602160045260246000fd5b146129105760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561296457600080fd5b505afa158015612978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299c9190613d67565b6004805460405163950be80360e01b81529293506001600160a01b03169163950be803916129d79185918c9101918252602082015260400190565b600060405180830381600087803b1580156129f157600080fd5b505af1158015612a05573d6000803e3d6000fd5b50506003546040516337519c1960e21b8152600481018b90526001600160a01b03909116925063dd4670649150602401610e6a565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612a9357600080fd5b505afa158015612aa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acb9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612b1457600080fd5b505afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4c9190613c5c565b6002811115612b6b57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612bb657600080fd5b505afa158015612bca573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bf29190810190613c7b565b905081612c115760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612c345760405162461bcd60e51b81526004016103a990613ec1565b8315612cf357600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612c7f57600080fd5b505afa158015612c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb79190613c3d565b6006811115612cd657634e487b7160e01b600052602160045260246000fd5b14612cf35760405162461bcd60e51b81526004016103a990613e80565b60035460405163594ce61360e11b8152600481018a905260248101899052604481018890526001600160a01b039091169063b299cc269060640161170d565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612d8b57600080fd5b505afa158015612d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc39190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612e0c57600080fd5b505afa158015612e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e449190613c5c565b6002811115612e6357634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612eae57600080fd5b505afa158015612ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612eea9190810190613c7b565b905081612f095760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612f2c5760405162461bcd60e51b81526004016103a990613ec1565b8315612feb57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612f7757600080fd5b505afa158015612f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612faf9190613c3d565b6006811115612fce57634e487b7160e01b600052602160045260246000fd5b14612feb5760405162461bcd60e51b81526004016103a990613e80565b6003546040516305b933a160e51b8152600481018a905260248101899052604481018890526001600160a01b039091169063b72674209060640161170d565b6002546000908390829081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561308457600080fd5b505afa158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561310557600080fd5b505afa158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d9190613c5c565b600281111561315c57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156131a757600080fd5b505afa1580156131bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131e39190810190613c7b565b9050816132025760405162461bcd60e51b81526004016103a990613e3f565b806020015183146132255760405162461bcd60e51b81526004016103a990613ec1565b83156132e457600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561327057600080fd5b505afa158015613284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a89190613c3d565b60068111156132c757634e487b7160e01b600052602160045260246000fd5b146132e45760405162461bcd60e51b81526004016103a990613e80565b600354604051635daa06fb60e11b8152600481018a9052602481018990526001600160a01b039091169063bb540df690604401602060405180830381600087803b15801561333157600080fd5b505af1158015613345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133699190613d67565b98975050505050505050565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156133c957600080fd5b505afa1580156133dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134019190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134809190613c5c565b600281111561349f57634e487b7160e01b600052602160045260246000fd5b146134f65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030313a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084016103a9565b600254604051635e966e4560e01b8152600481018390526001916001600160a01b031690635e966e459060240160206040518083038186803b15801561353b57600080fd5b505afa15801561354f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135739190613c3d565b600681111561359257634e487b7160e01b600052602160045260246000fd5b146135eb5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5250532d3030323a5249534b504f4f4c5f4e4f545f50524f504f60448201526214d15160ea1b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561363f57600080fd5b505afa158015613653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136779190613d67565b600480546040516357419e8f60e01b81529182018390526001600160a01b0389811660248401528881166044840152606483018890526084830187905292935091909116906357419e8f9060a401610a52565b600054610100900460ff16158080156136ea5750600054600160ff909116105b8061370b57506136f93061384f565b15801561370b575060005460ff166001145b61376e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a9565b6000805460ff191660011790558015613791576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556137bb600090565b6541636365737360d01b146137fd576137dc6541636365737360d01b613862565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61380561394a565b801561384b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156138ac57600080fd5b505afa1580156138c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e49190613b3c565b90506001600160a01b03811661385d5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166139b55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b6139c76542756e646c6560d01b613862565b600380546001600160a01b0319166001600160a01b03929092169190911790556139fc6810dbdb5c1bdb995b9d60ba1b613862565b600280546001600160a01b0319166001600160a01b0392909216919091179055613a2c63141bdbdb60e21b613862565b600480546001600160a01b0319166001600160a01b0392909216919091179055613a6067547265617375727960c01b613862565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b600082601f830112613a92578081fd5b815167ffffffffffffffff811115613aac57613aac613f38565b6020613ac0601f8301601f19168201613f07565b8281528582848701011115613ad3578384fd5b835b83811015613af0578581018301518282018401528201613ad5565b83811115613b0057848385840101525b5095945050505050565b80516004811061385d57600080fd5b600060208284031215613b2a578081fd5b8135613b3581613f4e565b9392505050565b600060208284031215613b4d578081fd5b8151613b3581613f4e565b60008060008060808587031215613b6d578283fd5b8435613b7881613f4e565b93506020850135613b8881613f4e565b93969395505050506040820135916060013590565b60008060008060608587031215613bb2578384fd5b8435613bbd81613f4e565b9350602085013567ffffffffffffffff80821115613bd9578485fd5b818701915087601f830112613bec578485fd5b813581811115613bfa578586fd5b886020828501011115613c0b578586fd5b95986020929092019750949560400135945092505050565b600060208284031215613c34578081fd5b613b3582613b0a565b600060208284031215613c4e578081fd5b815160078110613b35578182fd5b600060208284031215613c6d578081fd5b815160038110613b35578182fd5b600060208284031215613c8c578081fd5b815167ffffffffffffffff80821115613ca3578283fd5b8184019150610140808387031215613cb9578384fd5b613cc281613f07565b9050825181526020830151602082015260408301516040820152613ce860608401613b0a565b6060820152608083015182811115613cfe578485fd5b613d0a87828601613a82565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613d60578081fd5b5035919050565b600060208284031215613d78578081fd5b5051919050565b60008060408385031215613d91578182fd5b50508035926020909101359150565b600080600060608486031215613db4578283fd5b505081359360208301359350604090920135919050565b60008060408385031215613ddd578182fd5b505080516020909101519092909150565b6001600160a01b03861681526020810185905260806040820181905281018390526000838560a08401378060a0858401015260a0601f19601f86011683010190508260608301529695505050505050565b60208082526021908201527f4552524f523a5250532d3030353a53454e4445525f4e4f545f5249534b504f4f6040820152601360fa1b606082015260800190565b60208082526021908201527f4552524f523a5250532d3030373a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526026908201527f4552524f523a5250532d3030363a42554e444c455f5249534b504f4f4c5f4d496040820152650a69a82a886960d31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f3057613f30613f38565b604052919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114613f6357600080fd5b5056fea26469706673582212209a54242b6373dab5b01e37d770361bdd347dbf612e95820001979e25479ba64464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xF5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x89002DA5 GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xB7267420 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xB7267420 EQ PUSH2 0x1DE JUMPI DUP1 PUSH4 0xBB540DF6 EQ PUSH2 0x1F1 JUMPI DUP1 PUSH4 0xBF2E3546 EQ PUSH2 0x204 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x217 JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x1A5 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x1B8 JUMPI DUP1 PUSH4 0xB299CC26 EQ PUSH2 0x1CB JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x316C5348 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x146 JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x159 JUMPI DUP1 PUSH4 0x4D03F9B7 EQ PUSH2 0x16C JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x17F JUMPI PUSH2 0xF5 JUMP JUMPDEST DUP1 PUSH4 0x4F5F96E EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0x15FC1E74 EQ PUSH2 0x11E JUMPI DUP1 PUSH4 0x2127FD48 EQ PUSH2 0x131 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C PUSH8 0x149A5CDADC1BDBDB PUSH1 0xC2 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10C PUSH2 0x12C CALLDATASIZE PUSH1 0x4 PUSH2 0x3B9D JUMP JUMPDEST PUSH2 0x22A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x13F CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x78A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x144 PUSH2 0x154 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0xA8C JUMP JUMPDEST PUSH2 0x10C PUSH2 0x167 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0xEA5 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x17A CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x1419 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x1749 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x1CBF JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x21D8 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1C6 CALLDATASIZE PUSH1 0x4 PUSH2 0x3D4F JUMP JUMPDEST PUSH2 0x2657 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x2A3A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x1EC CALLDATASIZE PUSH1 0x4 PUSH2 0x3DA0 JUMP JUMPDEST PUSH2 0x2D32 JUMP JUMPDEST PUSH2 0x10C PUSH2 0x1FF CALLDATASIZE PUSH1 0x4 PUSH2 0x3D7F JUMP JUMPDEST PUSH2 0x302A JUMP JUMPDEST PUSH2 0x144 PUSH2 0x212 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B58 JUMP JUMPDEST PUSH2 0x3375 JUMP JUMPDEST PUSH2 0x144 PUSH2 0x225 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B19 JUMP JUMPDEST PUSH2 0x36CA JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x294 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B8 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x313 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x337 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x356 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x3B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030333A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x40B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x42F SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x44E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x4A5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030343A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x50D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x531 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3039C501 PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC0E71404 SWAP1 PUSH2 0x56B SWAP1 DUP11 SWAP1 DUP6 SWAP1 DUP12 SWAP1 DUP12 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x4 ADD PUSH2 0x3DEE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x599 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x5BD SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH3 0x6A03DD PUSH1 0xE9 SHL DUP2 MSTORE SWAP3 SWAP6 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD407BA00 SWAP2 PUSH2 0x5F7 SWAP2 DUP6 SWAP2 DUP9 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x611 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x625 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136F5ED5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP4 POP DUP4 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x26DEBDAA SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x67A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x68E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6B2 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA65E2CFD SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x703 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x717 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xA65E2CFD SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x766 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x77A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP3 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7F7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x81B SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x864 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x878 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x89C SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x8BB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP DUP1 DUP1 ISZERO PUSH2 0x8CA JUMPI POP DUP4 DUP3 EQ JUMPDEST PUSH2 0x927 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030383A53454E4445525F4E4F545F4F574E494E475F PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x149254D2D413D3D3 PUSH1 0xC2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST DUP3 ISZERO PUSH2 0xA20 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x972 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x986 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9AA SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x9C9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xA20 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030393A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAE5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB1D SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB7A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB9E SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBBD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC1C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC44 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0xC63 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0xC86 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0xD45 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCD1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCE5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD09 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0xD28 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0xD45 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD1 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH3 0x6A03DD PUSH1 0xE9 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xD407BA00 SWAP2 PUSH2 0xE0B SWAP2 DUP6 SWAP2 DUP13 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE25 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6198E339 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x6198E339 SWAP2 POP PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF38 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF95 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xFB9 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xFD8 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1023 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1037 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x105F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x107E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x10A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1160 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1100 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1124 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1143 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1160 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x11A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x11B9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x11E1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x3 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1209 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x1257 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031313A42554E444C455F4255524E45440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0xD9358075 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xD9358075 SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x12B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x12DC SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST SWAP9 POP SWAP1 POP DUP9 DUP9 EQ PUSH2 0x1340 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031333A554E45585045435445445F4645455F535542 PUSH1 0x44 DUP3 ADD MSTORE PUSH8 0x2A2920A1AA24A7A7 PUSH1 0xC1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP13 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC397AE39 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x138D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x13A1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xC397AE39 SWAP2 POP PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1408 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1472 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1486 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x14AA SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1507 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x152B SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x154A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1595 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x15A9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x15D1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x15F0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1613 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x16D2 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x165E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1672 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1696 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x16B5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x16D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1727 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x173B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x17B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x17DA SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1823 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1837 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x185B SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x187A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x18C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x18D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1901 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x1920 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1943 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1A02 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x198E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x19A2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19C6 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x19E5 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1A02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A47 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A5B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1A83 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x1AAB JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1AF8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3032303A42554E444C455F4E4F545F434C4F53454400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xE0 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xD9358075 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xD9358075 SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B63 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B87 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP3 SWAP5 POP SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC397AE39 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1BEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP8 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xC397AE39 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xC397AE39 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1C52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x852CD8D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0x42966C68 SWAP2 POP PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 PUSH1 0x1 SWAP1 DUP4 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D1A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D2E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1D52 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1DD3 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1DF2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1E79 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x1E98 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x1EBB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x1F7A JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1F1A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1F3E SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1F5D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x1F7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1FD3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1FFB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2023 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO DUP1 ISZERO PUSH2 0x2055 JUMPI POP PUSH1 0x3 DUP2 PUSH1 0x60 ADD MLOAD PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2052 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO JUMPDEST PUSH2 0x20AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3031303A42554E444C455F434C4F5345445F4F525F42 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1554939151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x136F5ED5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x26DEBDAA SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2110 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2134 SWAP2 SWAP1 PUSH2 0x3DCB JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP11 POP SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA65E2CFD SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2187 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x219B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x20 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xA65E2CFD PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP13 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 POP PUSH4 0xA65E2CFD SWAP2 POP PUSH1 0x44 ADD PUSH2 0x13DA JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2245 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2269 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x22C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x22EA SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2309 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2354 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2368 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2390 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x23AF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x23D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2491 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x241D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2431 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2455 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2474 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2491 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x24F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x251D SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89935E5 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x44C9AF28 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2565 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2579 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x259D SWAP2 SWAP1 PUSH2 0x3C23 JUMP JUMPDEST PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x25BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ ISZERO PUSH2 0x2626 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x950BE803 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x950BE803 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x260D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2621 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x575F5A7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xAEBEB4E SWAP1 PUSH1 0x24 ADD PUSH2 0xE6A JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x26B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x26C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x26E8 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2731 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2745 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2769 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2788 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x27E7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x280F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x282E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2851 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2910 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x289C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x28B0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x28D4 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x28F3 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2910 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2964 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2978 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x299C SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x950BE803 PUSH1 0xE0 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0x950BE803 SWAP2 PUSH2 0x29D7 SWAP2 DUP6 SWAP2 DUP13 SWAP2 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x29F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2A05 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x37519C19 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP3 POP PUSH4 0xDD467064 SWAP2 POP PUSH1 0x24 ADD PUSH2 0xE6A JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2A93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AA7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2ACB SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B28 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2B4C SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2B6B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2BCA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2BF2 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x2C11 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2C34 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2CF3 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2CB7 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2CD6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2CF3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x170D JUMP JUMPDEST PUSH1 0x2 SLOAD DUP4 SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2D8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D9F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2DC3 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2E0C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E20 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E44 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x2E63 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2EAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2EC2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2EEA SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x2F09 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x2F2C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x2FEB JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F8B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2FAF SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2FCE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x2FEB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD PUSH2 0x170D JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP4 SWAP1 DUP3 SWAP1 DUP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3084 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3098 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x30BC SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3119 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313D SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x315C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE SWAP2 SWAP1 SWAP3 EQ SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x31A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x31BB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x31E3 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3C7B JUMP JUMPDEST SWAP1 POP DUP2 PUSH2 0x3202 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E3F JUMP JUMPDEST DUP1 PUSH1 0x20 ADD MLOAD DUP4 EQ PUSH2 0x3225 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3EC1 JUMP JUMPDEST DUP4 ISZERO PUSH2 0x32E4 JUMPI PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3270 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3284 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32A8 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x32C7 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x32E4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x3E80 JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3345 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3369 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x33C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x33DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3401 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x6EA8E435 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xDD51C86A SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3448 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x345C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3480 SWAP2 SWAP1 PUSH2 0x3C5C JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x349F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x34F6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030313A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x353B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x354F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3573 SWAP2 SWAP1 PUSH2 0x3C3D JUMP JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x3592 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ PUSH2 0x35EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030323A5249534B504F4F4C5F4E4F545F50524F504F PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x14D151 PUSH1 0xEA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2B1C7F73 CALLER PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT PUSH1 0xE0 DUP5 SWAP1 SHL AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x363F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3653 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3677 SWAP2 SWAP1 PUSH2 0x3D67 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57419E8F PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x24 DUP5 ADD MSTORE DUP9 DUP2 AND PUSH1 0x44 DUP5 ADD MSTORE PUSH1 0x64 DUP4 ADD DUP9 SWAP1 MSTORE PUSH1 0x84 DUP4 ADD DUP8 SWAP1 MSTORE SWAP3 SWAP4 POP SWAP2 SWAP1 SWAP2 AND SWAP1 PUSH4 0x57419E8F SWAP1 PUSH1 0xA4 ADD PUSH2 0xA52 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x36EA JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x370B JUMPI POP PUSH2 0x36F9 ADDRESS PUSH2 0x384F JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x370B JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x376E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x3791 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x37BB PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x37FD JUMPI PUSH2 0x37DC PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x3805 PUSH2 0x394A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x384B JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x38AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x38C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38E4 SWAP2 SWAP1 PUSH2 0x3B3C JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x385D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x39B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH2 0x39C7 PUSH6 0x42756E646C65 PUSH1 0xD0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x39FC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3A2C PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3A60 PUSH8 0x5472656173757279 PUSH1 0xC0 SHL PUSH2 0x3862 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3A92 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3AAC JUMPI PUSH2 0x3AAC PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x20 PUSH2 0x3AC0 PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH2 0x3F07 JUMP JUMPDEST DUP3 DUP2 MSTORE DUP6 DUP3 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x3AD3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP4 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3AF0 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP3 DUP3 ADD DUP5 ADD MSTORE DUP3 ADD PUSH2 0x3AD5 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3B00 JUMPI DUP5 DUP4 DUP6 DUP5 ADD ADD MSTORE JUMPDEST POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x4 DUP2 LT PUSH2 0x385D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B2A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3B35 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B4D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3B35 DUP2 PUSH2 0x3F4E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3B6D JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3B78 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3B88 DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 SWAP7 SWAP4 SWAP6 POP POP POP POP PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3BB2 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3BBD DUP2 PUSH2 0x3F4E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3BD9 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3BEC JUMPI DUP5 DUP6 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x3BFA JUMPI DUP6 DUP7 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x3C0B JUMPI DUP6 DUP7 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C34 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3B35 DUP3 PUSH2 0x3B0A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C4E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x3B35 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C6D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0x3B35 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C8C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3CA3 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x3CB9 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3CC2 DUP2 PUSH2 0x3F07 JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x3CE8 PUSH1 0x60 DUP5 ADD PUSH2 0x3B0A JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x3CFE JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3D0A DUP8 DUP3 DUP7 ADD PUSH2 0x3A82 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D60 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3D78 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3D91 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3DB4 JUMPI DUP3 DUP4 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3DDD JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 DUP4 DUP6 PUSH1 0xA0 DUP5 ADD CALLDATACOPY DUP1 PUSH1 0xA0 DUP6 DUP5 ADD ADD MSTORE PUSH1 0xA0 PUSH1 0x1F NOT PUSH1 0x1F DUP7 ADD AND DUP4 ADD ADD SWAP1 POP DUP3 PUSH1 0x60 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030353A53454E4445525F4E4F545F5249534B504F4F PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0xFA SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x21 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030373A5249534B504F4F4C5F4E4F545F4143544956 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x45 PUSH1 0xF8 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x26 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5250532D3030363A42554E444C455F5249534B504F4F4C5F4D49 PUSH1 0x40 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3F30 JUMPI PUSH2 0x3F30 PUSH2 0x3F38 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3F63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 SLOAD 0x24 0x2B PUSH4 0x73DAB5B0 0x1E CALLDATACOPY 0xD7 PUSH17 0x361BDD347DBF612E95820001979E25479B 0xA6 DIFFICULTY PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"439:8208:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;515:50;;-1:-1:-1;;;515:50:87;;;;;7407:25:103;;;7395:2;7380:18;515:50:87;;;;;;;3915:605;;;;;;:::i;:::-;;:::i;8378:264::-;;;;;;:::i;:::-;;:::i;:::-;;6120:286;;;;;;:::i;:::-;;:::i;5166:651::-;;;;;;:::i;:::-;;:::i;7403:251::-;;;;;;:::i;:::-;;:::i;6796:597::-;;;;;;:::i;:::-;;:::i;4527:632::-;;;;;;:::i;:::-;;:::i;6413:377::-;;;;;;:::i;:::-;;:::i;5824:289::-;;;;;;:::i;:::-;;:::i;7892:218::-;;;;;;:::i;:::-;;:::i;7660:226::-;;;;;;:::i;:::-;;:::i;8116:256::-;;;;;;:::i;:::-;;:::i;3432:477::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;3915:605:87:-;1254:10;;4101:16;;;;-1:-1:-1;;;;;1254:10:87;:25;719:10:59;1254:39:87;;-1:-1:-1;;;;;;1254:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1254:39:87;;;6551:51:103;6524:18;;1254:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1232:61;-1:-1:-1;1368:33:87;1324:10;;:40;;-1:-1:-1;;;1324:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1324:10:87;;;;:27;;7380:18:103;;1324:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1324:77:87;;;;;;;;;;1303:157;;;;-1:-1:-1;;;1303:157:87;;13070:2:103;1303:157:87;;;13052:21:103;13109:2;13089:18;;;13082:30;13148:34;13128:18;;;13121:62;-1:-1:-1;;;13199:18:103;;;13192:31;13240:19;;1303:157:87;;;;;;;;;1491:10;;:41;;-1:-1:-1;;;1491:41:87;;;;;7407:25:103;;;1536:32:87;;-1:-1:-1;;;;;1491:10:87;;:28;;7380:18:103;;1491:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1491:77:87;;;;;;;;;;1470:157;;;;-1:-1:-1;;;1470:157:87;;11042:2:103;1470:157:87;;;11024:21:103;11081:2;11061:18;;;11054:30;11120:34;11100:18;;;11093:62;-1:-1:-1;;;11171:18:103;;;11164:31;11212:19;;1470:157:87;11014:223:103;1470:157:87;4154:10:::1;::::0;4133:18:::1;::::0;-1:-1:-1;;;;;4154:10:87::1;:25;719:10:59::0;4154:39:87::1;::::0;-1:-1:-1;;;;;;4154:39:87::1;::::0;;;;;;-1:-1:-1;;;;;6569:32:103;;;4154:39:87::1;::::0;::::1;6551:51:103::0;6524:18;;4154:39:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4214:7;::::0;:44:::1;::::0;-1:-1:-1;;;4214:44:87;;4133:60;;-1:-1:-1;;;;;;4214:7:87::1;::::0;:14:::1;::::0;:44:::1;::::0;4229:5;;4133:60;;4248:6;;;;4214:7:::1;::::0;:44:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4277:5;::::0;;:50:::1;::::0;-1:-1:-1;;;4277:50:87;;4203:55;;-1:-1:-1;;;;;;4277:5:87::1;::::0;:28:::1;::::0;:50:::1;::::0;4306:10;;4203:55;;4277:50:::1;14918:25:103::0;;;14974:2;14959:18;;14952:34;14906:2;14891:18;;14873:119;4277:50:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4374:9:87::1;::::0;:50:::1;::::0;-1:-1:-1;;;4374:50:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;4339:11:87::1;::::0;-1:-1:-1;4339:11:87;;-1:-1:-1;;;;;;4374:9:87;;::::1;::::0;:24:::1;::::0;14891:18:103;;4374:50:87::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4435:7;::::0;:34:::1;::::0;-1:-1:-1;;;4435:34:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;4338:86:87;;-1:-1:-1;4338:86:87;;-1:-1:-1;;;;;;4435:7:87::1;::::0;:12:::1;::::0;14891:18:103;;4435:34:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4479:5:87::1;::::0;;:34:::1;::::0;-1:-1:-1;;;4479:34:87;;;;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;-1:-1:-1;;;;;4479:5:87::1;::::0;-1:-1:-1;4479:10:87::1;::::0;-1:-1:-1;14891:18:103;;4479:34:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1637:1;;;3915:605:::0;;;;;;;:::o;8378:264::-;2533:10;;8528;;8540:4;;2511:19;;-1:-1:-1;;;;;2533:10:87;:25;719:10:59;2533:39:87;;-1:-1:-1;;;;;;2533:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;2533:39:87;;;6551:51:103;6524:18;;2533:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2511:61;-1:-1:-1;2582:15:87;2644:33;2600:10;;:40;;-1:-1:-1;;;2600:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;2600:10:87;;;;:27;;7380:18:103;;2600:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2600:77:87;;;;;;;;;;2582:95;;2708:10;:39;;;;;2737:10;2722:11;:25;2708:39;2687:126;;;;-1:-1:-1;;;2687:126:87;;9825:2:103;2687:126:87;;;9807:21:103;9864:2;9844:18;;;9837:30;9903:34;9883:18;;;9876:62;-1:-1:-1;;;9954:18:103;;;9947:38;10002:19;;2687:126:87;9797:230:103;2687:126:87;2827:12;2823:212;;;2880:10;;:41;;-1:-1:-1;;;2880:41:87;;;;;7407:25:103;;;2925:32:87;;-1:-1:-1;;;;;2880:10:87;;:28;;7380:18:103;;2880:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2880:77:87;;;;;;;;;;2855:169;;;;-1:-1:-1;;;2855:169:87;;10640:2:103;2855:169:87;;;10622:21:103;10679:2;10659:18;;;10652:30;10718:34;10698:18;;;10691:62;-1:-1:-1;;;10769:18:103;;;10762:31;10810:19;;2855:169:87;10612:223:103;2855:169:87;8560:5:::1;::::0;;:75:::1;::::0;-1:-1:-1;;;8560:75:87;;;;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;-1:-1:-1;;;;;8560:5:87::1;::::0;:37:::1;::::0;14891:18:103;;8560:75:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8378:264:::0;;;;;;:::o;6120:286::-;1748:10;;6213:8;;6223:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;6266:10:::1;::::0;6245:18:::1;::::0;-1:-1:-1;;;;;6266:10:87::1;:25;719:10:59::0;6266:39:87::1;::::0;-1:-1:-1;;;;;;6266:39:87::1;::::0;;;;;;-1:-1:-1;;;;;6569:32:103;;;6266:39:87::1;::::0;::::1;6551:51:103::0;6524:18;;6266:39:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6315:5;::::0;;:50:::1;::::0;-1:-1:-1;;;6315:50:87;;6245:60;;-1:-1:-1;;;;;;6315:5:87::1;::::0;:28:::1;::::0;:50:::1;::::0;6245:60;;6356:8;;6315:50:::1;14918:25:103::0;;;14974:2;14959:18;;14952:34;14906:2;14891:18;;14873:119;6315:50:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6375:7:87::1;::::0;:24:::1;::::0;-1:-1:-1;;;6375:24:87;;::::1;::::0;::::1;7407:25:103::0;;;-1:-1:-1;;;;;6375:7:87;;::::1;::::0;-1:-1:-1;6375:14:87::1;::::0;-1:-1:-1;7380:18:103;;6375:24:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2418:1;6120:286:::0;;;;;;:::o;5166:651::-;1748:10;;5307:17;;5275:8;;5285:4;;5307:17;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;5371:7:::1;::::0;:27:::1;::::0;-1:-1:-1;;;5371:27:87;;::::1;::::0;::::1;7407:25:103::0;;;5340:28:87::1;::::0;-1:-1:-1;;;;;5371:7:87::1;::::0;:17:::1;::::0;7380:18:103;;5371:27:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;5371:27:87::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;5340:58:::0;-1:-1:-1;5445:26:87::1;5429:6;:12;;;:42;;;;;;-1:-1:-1::0;;;5429:42:87::1;;;;;;;;;;;5408:117;;;::::0;-1:-1:-1;;;5408:117:87;;13884:2:103;5408:117:87::1;::::0;::::1;13866:21:103::0;13923:2;13903:18;;;13896:30;13962:29;13942:18;;;13935:57;14009:18;;5408:117:87::1;13856:177:103::0;5408:117:87::1;5588:9;::::0;:45:::1;::::0;-1:-1:-1;;;5588:45:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;5536:17:87::1;::::0;-1:-1:-1;;;;;5588:9:87::1;::::0;:27:::1;::::0;14891:18:103;;5588:45:87::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5563:70:::0;-1:-1:-1;5563:70:87;-1:-1:-1;5651:19:87;;::::1;5643:72;;;::::0;-1:-1:-1;;;5643:72:87;;8654:2:103;5643:72:87::1;::::0;::::1;8636:21:103::0;8693:2;8673:18;;;8666:30;8732:34;8712:18;;;8705:62;-1:-1:-1;;;8783:18:103;;;8776:38;8831:19;;5643:72:87::1;8626:230:103::0;5643:72:87::1;5726:7;::::0;:32:::1;::::0;-1:-1:-1;;;5726:32:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;-1:-1:-1;;;;;5726:7:87;;::::1;::::0;:14:::1;::::0;14891:18:103;;5726:32:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5768:5:87::1;::::0;;5781:17:::1;::::0;::::1;::::0;5768:42:::1;::::0;-1:-1:-1;;;5768:42:87;;;;::::1;14918:25:103::0;14959:18;;;14952:34;;;-1:-1:-1;;;;;5768:5:87::1;::::0;-1:-1:-1;5768:12:87::1;::::0;-1:-1:-1;14891:18:103;;5768:42:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2418:1;;5166:651:::0;;;;;;;;;:::o;7403:251::-;1748:10;;7549:8;;7559:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;7581:7:::1;::::0;:66:::1;::::0;-1:-1:-1;;;7581:66:87;;::::1;::::0;::::1;15199:25:103::0;;;15240:18;;;15233:34;;;15283:18;;;15276:34;;;-1:-1:-1;;;;;7581:7:87;;::::1;::::0;:27:::1;::::0;15172:18:103;;7581:66:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7403:251:::0;;;;;;;;:::o;6796:597::-;1748:10;;6887:8;;6897:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;6985:7:::1;::::0;:27:::1;::::0;-1:-1:-1;;;6985:27:87;;::::1;::::0;::::1;7407:25:103::0;;;6954:28:87::1;::::0;-1:-1:-1;;;;;6985:7:87::1;::::0;:17:::1;::::0;7380:18:103;;6985:27:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;6985:27:87::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;6954:58:::0;-1:-1:-1;7046:26:87::1;7030:6;:12;;;:42;;;;;;-1:-1:-1::0;;;7030:42:87::1;;;;;;;;;;7022:86;;;::::0;-1:-1:-1;;;7022:86:87;;9465:2:103;7022:86:87::1;::::0;::::1;9447:21:103::0;9504:2;9484:18;;;9477:30;9543:33;9523:18;;;9516:61;9594:18;;7022:86:87::1;9437:181:103::0;7022:86:87::1;7198:9;::::0;7236:14:::1;::::0;::::1;::::0;7198:53:::1;::::0;-1:-1:-1;;;7198:53:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;;7158:17:87::1;::::0;;;-1:-1:-1;;;;;7198:9:87;;::::1;::::0;:27:::1;::::0;14891:18:103;;7198:53:87::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7266:7;::::0;:35:::1;::::0;-1:-1:-1;;;7266:35:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;7157:94:87;;-1:-1:-1;7157:94:87;;-1:-1:-1;;;;;;7266:7:87::1;::::0;:14:::1;::::0;14891:18:103;;7266:35:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7311:5:87::1;::::0;;7324:17:::1;::::0;::::1;::::0;7311:42:::1;::::0;-1:-1:-1;;;7311:42:87;;;;::::1;14918:25:103::0;14959:18;;;14952:34;;;-1:-1:-1;;;;;7311:5:87::1;::::0;-1:-1:-1;7311:12:87::1;::::0;-1:-1:-1;14891:18:103;;7311:42:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7364:7:87::1;::::0;:22:::1;::::0;-1:-1:-1;;;7364:22:87;;::::1;::::0;::::1;7407:25:103::0;;;-1:-1:-1;;;;;7364:7:87;;::::1;::::0;-1:-1:-1;7364:12:87::1;::::0;-1:-1:-1;7380:18:103;;7364:22:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2418:1;;;6796:597:::0;;;;;;:::o;4527:632::-;1748:10;;4667:17;;4634:8;;4644:4;;4667:17;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;4731:7:::1;::::0;:27:::1;::::0;-1:-1:-1;;;4731:27:87;;::::1;::::0;::::1;7407:25:103::0;;;4700:28:87::1;::::0;-1:-1:-1;;;;;4731:7:87::1;::::0;:17:::1;::::0;7380:18:103;;4731:27:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;4731:27:87::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;4700:58:::0;-1:-1:-1;4805:26:87::1;4789:6;:12;;;:42;;;;;;-1:-1:-1::0;;;4789:42:87::1;;;;;;;;;;;:100;;;;-1:-1:-1::0;4863:26:87::1;4847:6;:12;;;:42;;;;;;-1:-1:-1::0;;;4847:42:87::1;;;;;;;;;;;4789:100;4768:185;;;::::0;-1:-1:-1;;;4768:185:87;;10234:2:103;4768:185:87::1;::::0;::::1;10216:21:103::0;10273:2;10253:18;;;10246:30;10312:34;10292:18;;;10285:62;-1:-1:-1;;;10363:18:103;;;10356:35;10408:19;;4768:185:87::1;10206:227:103::0;4768:185:87::1;5016:9;::::0;:42:::1;::::0;-1:-1:-1;;;5016:42:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;4964:17:87::1;::::0;-1:-1:-1;;;;;5016:9:87::1;::::0;:24:::1;::::0;14891:18:103;;5016:42:87::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5069:7;::::0;:33:::1;::::0;-1:-1:-1;;;5069:33:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;4991:67:87;;-1:-1:-1;4991:67:87;;-1:-1:-1;;;;;;5069:7:87;;::::1;::::0;:12:::1;::::0;14891:18:103;;5069:33:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5112:5:87::1;::::0;;5123:17:::1;::::0;::::1;::::0;5112:40:::1;::::0;-1:-1:-1;;;5112:40:87;;;;::::1;14918:25:103::0;14959:18;;;14952:34;;;-1:-1:-1;;;;;5112:5:87::1;::::0;-1:-1:-1;5112:10:87::1;::::0;-1:-1:-1;14891:18:103;;5112:40:87::1;14873:119:103::0;6413:377:87;1748:10;;6505:8;;6515:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;6558:10:::1;::::0;6537:18:::1;::::0;-1:-1:-1;;;;;6558:10:87::1;:25;719:10:59::0;6558:39:87::1;::::0;-1:-1:-1;;;;;;6558:39:87::1;::::0;;;;;;-1:-1:-1;;;;;6569:32:103;;;6558:39:87::1;::::0;::::1;6551:51:103::0;6524:18;;6558:39:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6537:60:::0;-1:-1:-1;6642:26:87::1;6612:7;::::0;:26:::1;::::0;-1:-1:-1;;;6612:26:87;;::::1;::::0;::::1;7407:25:103::0;;;-1:-1:-1;;;;;6612:7:87;;::::1;::::0;:16:::1;::::0;7380:18:103;;6612:26:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;;;;-1:-1:-1::0;;;6612:56:87::1;;;;;;;;;;6608:142;;;6684:5;::::0;;:55:::1;::::0;-1:-1:-1;;;6684:55:87;;;;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;-1:-1:-1;;;;;6684:5:87::1;::::0;:33:::1;::::0;14891:18:103;;6684:55:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6608:142;6760:7;::::0;:23:::1;::::0;-1:-1:-1;;;6760:23:87;;::::1;::::0;::::1;7407:25:103::0;;;-1:-1:-1;;;;;6760:7:87;;::::1;::::0;:13:::1;::::0;7380:18:103;;6760:23:87::1;7362:76:103::0;5824:289:87;1748:10;;5915:8;;5925:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;5970:10:::1;::::0;5949:18:::1;::::0;-1:-1:-1;;;;;5970:10:87::1;:25;719:10:59::0;5970:39:87::1;::::0;-1:-1:-1;;;;;;5970:39:87::1;::::0;;;;;;-1:-1:-1;;;;;6569:32:103;;;5970:39:87::1;::::0;::::1;6551:51:103::0;6524:18;;5970:39:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6019:5;::::0;;:55:::1;::::0;-1:-1:-1;;;6019:55:87;;5949:60;;-1:-1:-1;;;;;;6019:5:87::1;::::0;:33:::1;::::0;:55:::1;::::0;5949:60;;6065:8;;6019:55:::1;14918:25:103::0;;;14974:2;14959:18;;14952:34;14906:2;14891:18;;14873:119;6019:55:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6084:7:87::1;::::0;:22:::1;::::0;-1:-1:-1;;;6084:22:87;;::::1;::::0;::::1;7407:25:103::0;;;-1:-1:-1;;;;;6084:7:87;;::::1;::::0;-1:-1:-1;6084:12:87::1;::::0;-1:-1:-1;7380:18:103;;6084:22:87::1;7362:76:103::0;7892:218:87;1748:10;;8021:8;;8031:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;8053:7:::1;::::0;:50:::1;::::0;-1:-1:-1;;;8053:50:87;;::::1;::::0;::::1;15199:25:103::0;;;15240:18;;;15233:34;;;15283:18;;;15276:34;;;-1:-1:-1;;;;;8053:7:87;;::::1;::::0;:21:::1;::::0;15172:18:103;;8053:50:87::1;15154:162:103::0;7660:226:87;1748:10;;7790:8;;7800:4;;1726:19;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;7828:7:::1;::::0;:51:::1;::::0;-1:-1:-1;;;7828:51:87;;::::1;::::0;::::1;15199:25:103::0;;;15240:18;;;15233:34;;;15283:18;;;15276:34;;;-1:-1:-1;;;;;7828:7:87;;::::1;::::0;:22:::1;::::0;15172:18:103;;7828:51:87::1;15154:162:103::0;8116:256:87;1748:10;;8264:24;;8229:8;;8264:24;;;;-1:-1:-1;;;;;1748:10:87;:25;719:10:59;1748:39:87;;-1:-1:-1;;;;;;1748:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;1748:39:87;;;6551:51:103;6524:18;;1748:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1726:61;-1:-1:-1;1797:15:87;1859:33;1815:10;;:40;;-1:-1:-1;;;1815:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;1815:10:87;;;;:27;;7380:18:103;;1815:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;1815:77:87;;;;;;;;;1933:7;;:27;;-1:-1:-1;;;1933:27:87;;;;;7407:25:103;;;1815:77:87;;;;;-1:-1:-1;1902:28:87;;-1:-1:-1;;;;;1933:7:87;;:17;;7380:18:103;;1933:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1933:27:87;;;;;;;;;;;;:::i;:::-;1902:58;;1991:10;1970:90;;;;-1:-1:-1;;;1970:90:87;;;;;;;:::i;:::-;2106:6;:17;;;2091:11;:32;2070:117;;;;-1:-1:-1;;;2070:117:87;;;;;;;:::i;:::-;2201:12;2197:212;;;2254:10;;:41;;-1:-1:-1;;;2254:41:87;;;;;7407:25:103;;;2299:32:87;;-1:-1:-1;;;;;2254:10:87;;:28;;7380:18:103;;2254:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;2254:77:87;;;;;;;;;;2229:169;;;;-1:-1:-1;;;2229:169:87;;;;;;;:::i;:::-;8323:7:::1;::::0;:42:::1;::::0;-1:-1:-1;;;8323:42:87;;::::1;::::0;::::1;14918:25:103::0;;;14959:18;;;14952:34;;;-1:-1:-1;;;;;8323:7:87;;::::1;::::0;:21:::1;::::0;14891:18:103;;8323:42:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8304:61:::0;8116:256;-1:-1:-1;;;;;;;;8116:256:87:o;3432:477::-;791:10;;769:19;;-1:-1:-1;;;;;791:10:87;:25;719:10:59;791:39:87;;-1:-1:-1;;;;;;791:39:87;;;;;;;-1:-1:-1;;;;;6569:32:103;;;791:39:87;;;6551:51:103;6524:18;;791:39:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;769:61;-1:-1:-1;905:33:87;861:10;;:40;;-1:-1:-1;;;861:40:87;;;;;7407:25:103;;;-1:-1:-1;;;;;861:10:87;;;;:27;;7380:18:103;;861:40:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:77;;;;;;-1:-1:-1;;;861:77:87;;;;;;;;;;840:157;;;;-1:-1:-1;;;840:157:87;;12668:2:103;840:157:87;;;12650:21:103;12707:2;12687:18;;;12680:30;12746:34;12726:18;;;12719:62;-1:-1:-1;;;12797:18:103;;;12790:31;12838:19;;840:157:87;12640:223:103;840:157:87;1028:10;;:41;;-1:-1:-1;;;1028:41:87;;;;;7407:25:103;;;1073:34:87;;-1:-1:-1;;;;;1028:10:87;;:28;;7380:18:103;;1028:41:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:79;;;;;;-1:-1:-1;;;1028:79:87;;;;;;;;;;1007:161;;;;-1:-1:-1;;;1007:161:87;;7844:2:103;1007:161:87;;;7826:21:103;7883:2;7863:18;;;7856:30;7922:34;7902:18;;;7895:62;-1:-1:-1;;;7973:18:103;;;7966:33;8016:19;;1007:161:87;7816:225:103;1007:161:87;3683:10:::1;::::0;3662:18:::1;::::0;-1:-1:-1;;;;;3683:10:87::1;:25;719:10:59::0;3683:39:87::1;::::0;-1:-1:-1;;;;;;3683:39:87::1;::::0;;;;;;-1:-1:-1;;;;;6569:32:103;;;3683:39:87::1;::::0;::::1;6551:51:103::0;6524:18;;3683:39:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3732:5;::::0;;:170:::1;::::0;-1:-1:-1;;;3732:170:87;;;;::::1;14479:25:103::0;;;-1:-1:-1;;;;;14578:15:103;;;14558:18;;;14551:43;14630:15;;;14610:18;;;14603:43;14662:18;;;14655:34;;;14705:19;;;14698:35;;;3662:60:87;;-1:-1:-1;3732:5:87;;;::::1;::::0;:22:::1;::::0;14451:19:103;;3732:170:87::1;14433:306:103::0;1143:232:88;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;11444:2:103;3146:190:47;;;11426:21:103;11483:2;11463:18;;;11456:30;11522:34;11502:18;;;11495:62;-1:-1:-1;;;11573:18:103;;;11566:44;11627:19;;3146:190:47;11416:236:103;3146:190:47;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;7595:36:103;;3531:14:47;;7583:2:103;7568:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;7407:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;7380:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;8248:2:103;1703:113:88;;;8230:21:103;8287:2;8267:18;;;8260:30;8326:34;8306:18;;;8299:62;-1:-1:-1;;;8377:18:103;;;8370:35;8422:19;;1703:113:88;8220:227:103;3059:366:87;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;13472:2:103;4880:69:47;;;13454:21:103;13511:2;13491:18;;;13484:30;13550:34;13530:18;;;13523:62;-1:-1:-1;;;13601:18:103;;;13594:41;13652:19;;4880:69:47;13444:233:103;4880:69:47;3182:29:87::1;-1:-1:-1::0;;;3182:19:87::1;:29::i;:::-;3155:7;:57:::0;;-1:-1:-1;;;;;;3155:57:87::1;-1:-1:-1::0;;;;;3155:57:87;;;::::1;::::0;;;::::1;::::0;;3255:32:::1;-1:-1:-1::0;;;3255:19:87::1;:32::i;:::-;3222:10;:66:::0;;-1:-1:-1;;;;;;3222:66:87::1;-1:-1:-1::0;;;;;3222:66:87;;;::::1;::::0;;;::::1;::::0;;3321:27:::1;-1:-1:-1::0;;;3321:19:87::1;:27::i;:::-;3298:5;:51:::0;;-1:-1:-1;;;;;;3298:51:87::1;-1:-1:-1::0;;;;;3298:51:87;;;::::1;::::0;;;::::1;::::0;;3386:31:::1;-1:-1:-1::0;;;3386:19:87::1;:31::i;:::-;3359:9;:59:::0;;-1:-1:-1;;;;;;3359:59:87::1;-1:-1:-1::0;;;;;3359:59:87;;;::::1;::::0;;;::::1;::::0;;3059:366::o;14:718:103:-;;120:3;113:4;105:6;101:17;97:27;87:2;;142:5;135;128:20;87:2;175:6;169:13;201:18;197:2;194:26;191:2;;;223:18;;:::i;:::-;262:4;290:53;333:2;314:13;;-1:-1:-1;;310:27:103;306:36;;290:53;:::i;:::-;368:2;359:7;352:19;412:3;407:2;402;394:6;390:15;386:24;383:33;380:2;;;433:5;426;419:20;380:2;459:5;473:134;487:2;484:1;481:9;473:134;;;576:14;;;572:23;;566:30;544:15;;;540:24;;533:64;498:10;;473:134;;;625:2;622:1;619:9;616:2;;;685:5;680:2;675;666:7;662:16;658:25;651:40;616:2;-1:-1:-1;719:7:103;77:655;-1:-1:-1;;;;;77:655:103:o;737:156::-;825:13;;867:1;857:12;;847:2;;883:1;880;873:12;898:257;;1010:2;998:9;989:7;985:23;981:32;978:2;;;1031:6;1023;1016:22;978:2;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;968:187;-1:-1:-1;;;968:187:103:o;1160:261::-;;1283:2;1271:9;1262:7;1258:23;1254:32;1251:2;;;1304:6;1296;1289:22;1251:2;1341:9;1335:16;1360:31;1385:5;1360:31;:::i;1426:535::-;;;;;1589:3;1577:9;1568:7;1564:23;1560:33;1557:2;;;1611:6;1603;1596:22;1557:2;1655:9;1642:23;1674:31;1699:5;1674:31;:::i;:::-;1724:5;-1:-1:-1;1781:2:103;1766:18;;1753:32;1794:33;1753:32;1794:33;:::i;:::-;1547:414;;1846:7;;-1:-1:-1;;;;1900:2:103;1885:18;;1872:32;;1951:2;1936:18;1923:32;;1547:414::o;1966:844::-;;;;;2131:2;2119:9;2110:7;2106:23;2102:32;2099:2;;;2152:6;2144;2137:22;2099:2;2196:9;2183:23;2215:31;2240:5;2215:31;:::i;:::-;2265:5;-1:-1:-1;2321:2:103;2306:18;;2293:32;2344:18;2374:14;;;2371:2;;;2406:6;2398;2391:22;2371:2;2449:6;2438:9;2434:22;2424:32;;2494:7;2487:4;2483:2;2479:13;2475:27;2465:2;;2521:6;2513;2506:22;2465:2;2566;2553:16;2592:2;2584:6;2581:14;2578:2;;;2613:6;2605;2598:22;2578:2;2663:7;2658:2;2649:6;2645:2;2641:15;2637:24;2634:37;2631:2;;;2689:6;2681;2674:22;2631:2;2089:721;;2725:2;2717:11;;;;;-1:-1:-1;2747:6:103;;2800:2;2785:18;2772:32;;-1:-1:-1;2089:721:103;-1:-1:-1;;;2089:721:103:o;2815:243::-;;2954:2;2942:9;2933:7;2929:23;2925:32;2922:2;;;2975:6;2967;2960:22;2922:2;3003:49;3042:9;3003:49;:::i;3063:299::-;;3205:2;3193:9;3184:7;3180:23;3176:32;3173:2;;;3226:6;3218;3211:22;3173:2;3263:9;3257:16;3302:1;3295:5;3292:12;3282:2;;3323:6;3315;3308:22;3367:298;;3508:2;3496:9;3487:7;3483:23;3479:32;3476:2;;;3529:6;3521;3514:22;3476:2;3566:9;3560:16;3605:1;3598:5;3595:12;3585:2;;3626:6;3618;3611:22;3670:1219;;3817:2;3805:9;3796:7;3792:23;3788:32;3785:2;;;3838:6;3830;3823:22;3785:2;3876:9;3870:16;3905:18;3946:2;3938:6;3935:14;3932:2;;;3967:6;3959;3952:22;3932:2;4010:6;3999:9;3995:22;3985:32;;4036:6;4076:2;4071;4062:7;4058:16;4054:25;4051:2;;;4097:6;4089;4082:22;4051:2;4128:19;4144:2;4128:19;:::i;:::-;4115:32;;4176:2;4170:9;4163:5;4156:24;4226:2;4222;4218:11;4212:18;4207:2;4200:5;4196:14;4189:42;4277:2;4273;4269:11;4263:18;4258:2;4251:5;4247:14;4240:42;4314:51;4361:2;4357;4353:11;4314:51;:::i;:::-;4309:2;4302:5;4298:14;4291:75;4405:3;4401:2;4397:12;4391:19;4435:2;4425:8;4422:16;4419:2;;;4456:6;4448;4441:22;4419:2;4498:55;4545:7;4534:8;4530:2;4526:17;4498:55;:::i;:::-;4492:3;4481:15;;4474:80;-1:-1:-1;4601:3:103;4593:12;;;4587:19;4570:15;;;4563:44;4654:3;4646:12;;;4640:19;4623:15;;;4616:44;4707:3;4699:12;;;4693:19;4676:15;;;4669:44;4732:3;4773:11;;;4767:18;4751:14;;;4744:42;4805:3;4846:11;;;4840:18;4824:14;;;4817:42;;;;-1:-1:-1;4485:5:103;3775:1114;-1:-1:-1;;;3775:1114:103:o;4894:190::-;;5006:2;4994:9;4985:7;4981:23;4977:32;4974:2;;;5027:6;5019;5012:22;4974:2;-1:-1:-1;5055:23:103;;4964:120;-1:-1:-1;4964:120:103:o;5089:194::-;;5212:2;5200:9;5191:7;5187:23;5183:32;5180:2;;;5233:6;5225;5218:22;5180:2;-1:-1:-1;5261:16:103;;5170:113;-1:-1:-1;5170:113:103:o;5288:258::-;;;5417:2;5405:9;5396:7;5392:23;5388:32;5385:2;;;5438:6;5430;5423:22;5385:2;-1:-1:-1;;5466:23:103;;;5536:2;5521:18;;;5508:32;;-1:-1:-1;5375:171:103:o;5551:326::-;;;;5697:2;5685:9;5676:7;5672:23;5668:32;5665:2;;;5718:6;5710;5703:22;5665:2;-1:-1:-1;;5746:23:103;;;5816:2;5801:18;;5788:32;;-1:-1:-1;5867:2:103;5852:18;;;5839:32;;5655:222;-1:-1:-1;5655:222:103:o;6145:255::-;;;6285:2;6273:9;6264:7;6260:23;6256:32;6253:2;;;6306:6;6298;6291:22;6253:2;-1:-1:-1;;6334:16:103;;6390:2;6375:18;;;6369:25;6334:16;;6369:25;;-1:-1:-1;6243:157:103:o;6613:643::-;-1:-1:-1;;;;;6862:32:103;;6844:51;;6926:2;6911:18;;6904:34;;;6974:3;6969:2;6954:18;;6947:31;;;6994:19;;6987:35;;;6613:643;7015:6;7065;6882:3;7044:19;;7031:49;7130:4;7124:3;7115:6;7104:9;7100:22;7096:32;7089:46;7203:3;7196:2;7192:7;7187:2;7179:6;7175:15;7171:29;7160:9;7156:45;7152:55;7144:63;;7243:6;7238:2;7227:9;7223:18;7216:34;6834:422;;;;;;;;:::o;8861:397::-;9063:2;9045:21;;;9102:2;9082:18;;;9075:30;9141:34;9136:2;9121:18;;9114:62;-1:-1:-1;;;9207:2:103;9192:18;;9185:31;9248:3;9233:19;;9035:223::o;11657:397::-;11859:2;11841:21;;;11898:2;11878:18;;;11871:30;11937:34;11932:2;11917:18;;11910:62;-1:-1:-1;;;12003:2:103;11988:18;;11981:31;12044:3;12029:19;;11831:223::o;12059:402::-;12261:2;12243:21;;;12300:2;12280:18;;;12273:30;12339:34;12334:2;12319:18;;12312:62;-1:-1:-1;;;12405:2:103;12390:18;;12383:36;12451:3;12436:19;;12233:228::o;15574:275::-;15645:2;15639:9;15710:2;15691:13;;-1:-1:-1;;15687:27:103;15675:40;;15745:18;15730:34;;15766:22;;;15727:62;15724:2;;;15792:18;;:::i;:::-;15828:2;15821:22;15619:230;;-1:-1:-1;15619:230:103:o;15854:127::-;15915:10;15910:3;15906:20;15903:1;15896:31;15946:4;15943:1;15936:15;15970:4;15967:1;15960:15;15986:131;-1:-1:-1;;;;;16061:31:103;;16051:42;;16041:2;;16107:1;16104;16097:12;16041:2;16031:86;:::o"},"methodIdentifiers":{"RISKPOOL_NAME()":"04f5f96e","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(uint256,bytes32,uint256)":"4d03f9b7","createBundle(address,bytes,uint256)":"15fc1e74","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","initialize(address)":"c4d66de8","lockBundle(uint256)":"a17030d5","processPayout(uint256,bytes32,uint256)":"b299cc26","processPremium(uint256,bytes32,uint256)":"b7267420","registerRiskpool(address,address,uint256,uint256)":"bf2e3546","releasePolicy(uint256,bytes32)":"bb540df6","setMaximumNumberOfActiveBundles(uint256,uint256)":"2127fd48","unlockBundle(uint256)":"316c5348"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"RISKPOOL_NAME\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialCapital\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"collateralizationLevel\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumOfSumInsuredCap\",\"type\":\"uint256\"}],\"name\":\"registerRiskpool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/services/RiskpoolService.sol\":\"RiskpoolService\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/security/Pausable.sol\":{\"keccak256\":\"0x0849d93b16c9940beb286a7864ed02724b248b93e0d80ef6355af5ef15c64773\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ddabb16009cd17eaca3143feadf450ac13e72919ebe2ca50e00f61cb78bc004\",\"dweb:/ipfs/QmSPwPxX7d6TTWakN5jy5wsaGkS1y9TW8fuhGSraMkLk2B\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/BundleController.sol\":{\"keccak256\":\"0xace856717c8933ae099b82782a336348e8d4969256573a3b1a8ea77f72613ab9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://50ce5ce5f0073efb4a7c35e9fb8fa1d96554bed2acd6081ec9321c090debe166\",\"dweb:/ipfs/QmT2phENgJHUgqZ7o48QHFthjj2QYDSHbYyfczFbEU3kFF\"]},\"contracts/modules/ComponentController.sol\":{\"keccak256\":\"0xde42c1a975bc0d6f932b53f540f781a4139639b67e744e7b886e7b7b9229aaba\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a3c63dffef841be6a67e5fe4f5dd0c2d8054790955eff4b01f322bab373a4017\",\"dweb:/ipfs/QmY3TA6dyxNmYNc9xbuVqfUPXoun4RNZsisSp5F2w5Z2s6\"]},\"contracts/modules/PolicyController.sol\":{\"keccak256\":\"0xad44b41e21d69c61214bd243576883fb537983ede2b39add84659645956aeff4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://967e6f0d4148a14196dcc1a4c8bbe7b284f4f8007962f254168854559ed1df90\",\"dweb:/ipfs/QmcuRPrfdXyPv5FKM99k8YfmLNv9TNvb79fLwKBUhfrQos\"]},\"contracts/modules/PoolController.sol\":{\"keccak256\":\"0x32661526841f0be5e518f0edd4ed212735f6f6b53bc11f84a50bfc68a4a7883e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://24a03437a7648d680290c61595f4722dabfde1290797dd3bfcf1a7559b9cfd24\",\"dweb:/ipfs/QmVSS1SPd3814qzJGiE23vkaZj2ymFGCm15MtXRCakPcik\"]},\"contracts/modules/TreasuryModule.sol\":{\"keccak256\":\"0x5b816938607e52b8e3811a426b7c31377109b12c665d3889bdc0fc38b5d1039c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://81900732664f85ed367e3c78020bc2bd78e8521dd928f3fd5bcd39ce0ce1dcf0\",\"dweb:/ipfs/QmPcRYLq6SJvZkMnoSZAocCKw9m83oXezNaDsmHJ6UWr4E\"]},\"contracts/services/RiskpoolService.sol\":{\"keccak256\":\"0x3862cc16ca6d31d1d2bce977fd111cd07c9d590ae54460bff4a76eb942f8263f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://98f858b193f48a695993cf6d73aaf7503f550d09f454e049d9e72c0fbde9fa10\",\"dweb:/ipfs/QmdsXwoSuEwRBuz79yPwYznzGxEp3mipWjfbr9jS8wQbes\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/shared/CoreController.sol":{"CoreController":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6103c0806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c4d66de814610030575b600080fd5b61004361003e366004610337565b610045565b005b600054610100900460ff16158080156100655750600054600160ff909116105b806100865750610074306101cf565b158015610086575060005460ff166001145b6100ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610111576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561013b600090565b6541636365737360d01b1461017d5761015c6541636365737360d01b6101e2565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101856102ca565b80156101cb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561022c57600080fd5b505afa158015610240573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610264919061035a565b90506001600160a01b0381166101dd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016100e5565b600054610100900460ff166103355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016100e5565b565b600060208284031215610348578081fd5b813561035381610372565b9392505050565b60006020828403121561036b578081fd5b8151610353815b6001600160a01b038116811461038757600080fd5b5056fea26469706673582212207a5000e854af590ede146fd80aeb1020a519941888a6dccd93415a3d32e7307364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x3C0 DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x337 JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x65 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x86 JUMPI POP PUSH2 0x74 ADDRESS PUSH2 0x1CF JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x86 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x111 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x13B PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x17D JUMPI PUSH2 0x15C PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1E2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x185 PUSH2 0x2CA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x240 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x264 SWAP2 SWAP1 PUSH2 0x35A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x335 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x348 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x353 DUP2 PUSH2 0x372 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x353 DUP2 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0x5000E854AF590EDE146FD80AEB1020A519941888A6DCCD93415A3D ORIGIN 0xE7 ADDRESS PUSH20 0x64736F6C63430008020033000000000000000000 ","sourceMap":"311:1514:88:-:0;;;441:54;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;311:1514;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;311:1514:88;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2289:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"643:76:103","statements":[{"nodeType":"YulAssignment","src":"653:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"665:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"676:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"661:3:103"},"nodeType":"YulFunctionCall","src":"661:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"653:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"695:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"706:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"688:6:103"},"nodeType":"YulFunctionCall","src":"688:25:103"},"nodeType":"YulExpressionStatement","src":"688:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"612:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"623:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"634:4:103","type":""}],"src":"542:177:103"},{"body":{"nodeType":"YulBlock","src":"831:87:103","statements":[{"nodeType":"YulAssignment","src":"841:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"853:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"864:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"849:3:103"},"nodeType":"YulFunctionCall","src":"849:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"841:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"883:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"898:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"906:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"894:3:103"},"nodeType":"YulFunctionCall","src":"894:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"876:6:103"},"nodeType":"YulFunctionCall","src":"876:36:103"},"nodeType":"YulExpressionStatement","src":"876:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"800:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"811:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"822:4:103","type":""}],"src":"724:194:103"},{"body":{"nodeType":"YulBlock","src":"1097:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1114:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1125:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1107:6:103"},"nodeType":"YulFunctionCall","src":"1107:21:103"},"nodeType":"YulExpressionStatement","src":"1107:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1148:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1159:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1144:3:103"},"nodeType":"YulFunctionCall","src":"1144:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1164:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1137:6:103"},"nodeType":"YulFunctionCall","src":"1137:30:103"},"nodeType":"YulExpressionStatement","src":"1137:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1187:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1198:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1183:3:103"},"nodeType":"YulFunctionCall","src":"1183:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1203:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1176:6:103"},"nodeType":"YulFunctionCall","src":"1176:62:103"},"nodeType":"YulExpressionStatement","src":"1176:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1258:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1269:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1254:3:103"},"nodeType":"YulFunctionCall","src":"1254:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1274:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1247:6:103"},"nodeType":"YulFunctionCall","src":"1247:35:103"},"nodeType":"YulExpressionStatement","src":"1247:35:103"},{"nodeType":"YulAssignment","src":"1291:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1303:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1314:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1299:3:103"},"nodeType":"YulFunctionCall","src":"1299:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1291:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1074:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1088:4:103","type":""}],"src":"923:401:103"},{"body":{"nodeType":"YulBlock","src":"1503:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1520:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1531:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1513:6:103"},"nodeType":"YulFunctionCall","src":"1513:21:103"},"nodeType":"YulExpressionStatement","src":"1513:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1554:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1565:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1550:3:103"},"nodeType":"YulFunctionCall","src":"1550:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1570:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1543:6:103"},"nodeType":"YulFunctionCall","src":"1543:30:103"},"nodeType":"YulExpressionStatement","src":"1543:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1593:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1604:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1589:3:103"},"nodeType":"YulFunctionCall","src":"1589:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1609:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1582:6:103"},"nodeType":"YulFunctionCall","src":"1582:62:103"},"nodeType":"YulExpressionStatement","src":"1582:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1664:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1675:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1660:3:103"},"nodeType":"YulFunctionCall","src":"1660:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1680:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1653:6:103"},"nodeType":"YulFunctionCall","src":"1653:44:103"},"nodeType":"YulExpressionStatement","src":"1653:44:103"},{"nodeType":"YulAssignment","src":"1706:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1718:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1729:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1714:3:103"},"nodeType":"YulFunctionCall","src":"1714:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1706:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1480:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1494:4:103","type":""}],"src":"1329:410:103"},{"body":{"nodeType":"YulBlock","src":"1918:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1935:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1946:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1928:6:103"},"nodeType":"YulFunctionCall","src":"1928:21:103"},"nodeType":"YulExpressionStatement","src":"1928:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1980:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1965:3:103"},"nodeType":"YulFunctionCall","src":"1965:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1985:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1958:6:103"},"nodeType":"YulFunctionCall","src":"1958:30:103"},"nodeType":"YulExpressionStatement","src":"1958:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2008:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2019:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2004:3:103"},"nodeType":"YulFunctionCall","src":"2004:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2024:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1997:6:103"},"nodeType":"YulFunctionCall","src":"1997:62:103"},"nodeType":"YulExpressionStatement","src":"1997:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2079:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2090:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2075:3:103"},"nodeType":"YulFunctionCall","src":"2075:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2095:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2068:6:103"},"nodeType":"YulFunctionCall","src":"2068:41:103"},"nodeType":"YulExpressionStatement","src":"2068:41:103"},{"nodeType":"YulAssignment","src":"2118:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2130:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2141:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2126:3:103"},"nodeType":"YulFunctionCall","src":"2126:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2118:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1895:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1909:4:103","type":""}],"src":"1744:407:103"},{"body":{"nodeType":"YulBlock","src":"2201:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"2265:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2274:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2277:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2267:6:103"},"nodeType":"YulFunctionCall","src":"2267:12:103"},"nodeType":"YulExpressionStatement","src":"2267:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2224:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2235:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2250:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2255:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2246:3:103"},"nodeType":"YulFunctionCall","src":"2246:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2259:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2242:3:103"},"nodeType":"YulFunctionCall","src":"2242:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2231:3:103"},"nodeType":"YulFunctionCall","src":"2231:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2221:2:103"},"nodeType":"YulFunctionCall","src":"2221:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2214:6:103"},"nodeType":"YulFunctionCall","src":"2214:50:103"},"nodeType":"YulIf","src":"2211:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2190:5:103","type":""}],"src":"2156:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c4d66de814610030575b600080fd5b61004361003e366004610337565b610045565b005b600054610100900460ff16158080156100655750600054600160ff909116105b806100865750610074306101cf565b158015610086575060005460ff166001145b6100ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610111576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561013b600090565b6541636365737360d01b1461017d5761015c6541636365737360d01b6101e2565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101856102ca565b80156101cb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561022c57600080fd5b505afa158015610240573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610264919061035a565b90506001600160a01b0381166101dd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016100e5565b600054610100900460ff166103355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016100e5565b565b600060208284031215610348578081fd5b813561035381610372565b9392505050565b60006020828403121561036b578081fd5b8151610353815b6001600160a01b038116811461038757600080fd5b5056fea26469706673582212207a5000e854af590ede146fd80aeb1020a519941888a6dccd93415a3d32e7307364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x337 JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x65 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x86 JUMPI POP PUSH2 0x74 ADDRESS PUSH2 0x1CF JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x86 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0xEE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x44 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x111 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0x13B PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0x17D JUMPI PUSH2 0x15C PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1E2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0x185 PUSH2 0x2CA JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CB JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x240 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x264 SWAP2 SWAP1 PUSH2 0x35A JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1DD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x335 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xE5 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x348 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x353 DUP2 PUSH2 0x372 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x36B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x353 DUP2 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x387 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0x5000E854AF590EDE146FD80AEB1020A519941888A6DCCD93415A3D ORIGIN 0xE7 ADDRESS PUSH20 0x64736F6C63430008020033000000000000000000 ","sourceMap":"311:1514:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1143:232;;;;;;:::i;:::-;;:::i;:::-;;;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;1531:2:103;3146:190:47;;;1513:21:103;1570:2;1550:18;;;1543:30;1609:34;1589:18;;;1582:62;-1:-1:-1;;;1660:18:103;;;1653:44;1714:19;;3146:190:47;;;;;;;;;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;876:36:103;;3531:14:47;;864:2:103;849:18;3531:14:47;;;;;;;3457:99;1143:232:88;;:::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;688:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;661:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;1125:2:103;1703:113:88;;;1107:21:103;1164:2;1144:18;;;1137:30;1203:34;1183:18;;;1176:62;-1:-1:-1;;;1254:18:103;;;1247:35;1299:19;;1703:113:88;1097:227:103;1460:64:88;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;1946:2:103;4880:69:47;;;1928:21:103;1985:2;1965:18;;;1958:30;2024:34;2004:18;;;1997:62;-1:-1:-1;;;2075:18:103;;;2068:41;2126:19;;4880:69:47;1918:233:103;4880:69:47;1460:64:88:o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;2156:131;-1:-1:-1;;;;;2231:31:103;;2221:42;;2211:2;;2277:1;2274;2267:12;2211:2;2201:86;:::o"},"methodIdentifiers":{"initialize(address)":"c4d66de8"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/CoreController.sol\":\"CoreController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]}},\"version\":1}"}},"contracts/shared/CoreProxy.sol":{"CoreProxy":{"abi":[{"inputs":[{"internalType":"address","name":"_controller","type":"address"},{"internalType":"bytes","name":"encoded_initializer","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldImplementation","type":"address"},{"indexed":false,"internalType":"address","name":"newImplemntation","type":"address"}],"name":"LogCoreContractUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3715:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"121:993:103","statements":[{"body":{"nodeType":"YulBlock","src":"167:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"176:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"184:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"169:6:103"},"nodeType":"YulFunctionCall","src":"169:22:103"},"nodeType":"YulExpressionStatement","src":"169:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"142:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"151:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"138:3:103"},"nodeType":"YulFunctionCall","src":"138:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"134:3:103"},"nodeType":"YulFunctionCall","src":"134:32:103"},"nodeType":"YulIf","src":"131:2:103"},{"nodeType":"YulVariableDeclaration","src":"202:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"221:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"215:5:103"},"nodeType":"YulFunctionCall","src":"215:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"206:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"294:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"311:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"296:6:103"},"nodeType":"YulFunctionCall","src":"296:22:103"},"nodeType":"YulExpressionStatement","src":"296:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"253:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"264:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"279:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"284:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"288:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"271:3:103"},"nodeType":"YulFunctionCall","src":"271:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"260:3:103"},"nodeType":"YulFunctionCall","src":"260:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"250:2:103"},"nodeType":"YulFunctionCall","src":"250:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"243:6:103"},"nodeType":"YulFunctionCall","src":"243:50:103"},"nodeType":"YulIf","src":"240:2:103"},{"nodeType":"YulAssignment","src":"329:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"339:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"329:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"353:39:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"377:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"373:3:103"},"nodeType":"YulFunctionCall","src":"373:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"367:5:103"},"nodeType":"YulFunctionCall","src":"367:25:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"357:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"401:28:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"419:2:103","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"423:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"415:3:103"},"nodeType":"YulFunctionCall","src":"415:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"427:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"411:3:103"},"nodeType":"YulFunctionCall","src":"411:18:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"405:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"456:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"465:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"473:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"458:6:103"},"nodeType":"YulFunctionCall","src":"458:22:103"},"nodeType":"YulExpressionStatement","src":"458:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"444:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"452:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"441:2:103"},"nodeType":"YulFunctionCall","src":"441:14:103"},"nodeType":"YulIf","src":"438:2:103"},{"nodeType":"YulVariableDeclaration","src":"491:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"505:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"516:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"501:3:103"},"nodeType":"YulFunctionCall","src":"501:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"495:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"571:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"580:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"588:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"573:6:103"},"nodeType":"YulFunctionCall","src":"573:22:103"},"nodeType":"YulExpressionStatement","src":"573:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"550:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"554:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"546:3:103"},"nodeType":"YulFunctionCall","src":"546:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"561:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"542:3:103"},"nodeType":"YulFunctionCall","src":"542:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"535:6:103"},"nodeType":"YulFunctionCall","src":"535:35:103"},"nodeType":"YulIf","src":"532:2:103"},{"nodeType":"YulVariableDeclaration","src":"606:19:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"622:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"616:5:103"},"nodeType":"YulFunctionCall","src":"616:9:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"610:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"648:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"650:16:103"},"nodeType":"YulFunctionCall","src":"650:18:103"},"nodeType":"YulExpressionStatement","src":"650:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"640:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"644:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"637:2:103"},"nodeType":"YulFunctionCall","src":"637:10:103"},"nodeType":"YulIf","src":"634:2:103"},{"nodeType":"YulVariableDeclaration","src":"679:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"693:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"689:3:103"},"nodeType":"YulFunctionCall","src":"689:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"683:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"705:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"725:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"719:5:103"},"nodeType":"YulFunctionCall","src":"719:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"709:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"737:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"759:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"783:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"787:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"779:3:103"},"nodeType":"YulFunctionCall","src":"779:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"794:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"775:3:103"},"nodeType":"YulFunctionCall","src":"775:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"799:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"771:3:103"},"nodeType":"YulFunctionCall","src":"771:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"804:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"767:3:103"},"nodeType":"YulFunctionCall","src":"767:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"755:3:103"},"nodeType":"YulFunctionCall","src":"755:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"741:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"867:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"869:16:103"},"nodeType":"YulFunctionCall","src":"869:18:103"},"nodeType":"YulExpressionStatement","src":"869:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"826:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"838:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"823:2:103"},"nodeType":"YulFunctionCall","src":"823:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"846:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"858:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"843:2:103"},"nodeType":"YulFunctionCall","src":"843:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"820:2:103"},"nodeType":"YulFunctionCall","src":"820:46:103"},"nodeType":"YulIf","src":"817:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"905:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"909:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"898:6:103"},"nodeType":"YulFunctionCall","src":"898:22:103"},"nodeType":"YulExpressionStatement","src":"898:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"936:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"944:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"929:6:103"},"nodeType":"YulFunctionCall","src":"929:18:103"},"nodeType":"YulExpressionStatement","src":"929:18:103"},{"body":{"nodeType":"YulBlock","src":"993:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1002:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1010:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"995:6:103"},"nodeType":"YulFunctionCall","src":"995:22:103"},"nodeType":"YulExpressionStatement","src":"995:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"970:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"974:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"966:3:103"},"nodeType":"YulFunctionCall","src":"966:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"979:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"962:3:103"},"nodeType":"YulFunctionCall","src":"962:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"984:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"959:2:103"},"nodeType":"YulFunctionCall","src":"959:33:103"},"nodeType":"YulIf","src":"956:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1054:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1058:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1050:3:103"},"nodeType":"YulFunctionCall","src":"1050:11:103"},{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1067:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1075:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1063:3:103"},"nodeType":"YulFunctionCall","src":"1063:15:103"},{"name":"_3","nodeType":"YulIdentifier","src":"1080:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1028:21:103"},"nodeType":"YulFunctionCall","src":"1028:55:103"},"nodeType":"YulExpressionStatement","src":"1028:55:103"},{"nodeType":"YulAssignment","src":"1092:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1102:6:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1092:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"79:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"90:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"102:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"110:6:103","type":""}],"src":"14:1100:103"},{"body":{"nodeType":"YulBlock","src":"1256:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1266:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1286:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1280:5:103"},"nodeType":"YulFunctionCall","src":"1280:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1270:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1328:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1336:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1324:3:103"},"nodeType":"YulFunctionCall","src":"1324:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"1343:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1348:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1302:21:103"},"nodeType":"YulFunctionCall","src":"1302:53:103"},"nodeType":"YulExpressionStatement","src":"1302:53:103"},{"nodeType":"YulAssignment","src":"1364:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1375:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1380:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1371:3:103"},"nodeType":"YulFunctionCall","src":"1371:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1364:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"1232:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1237:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1248:3:103","type":""}],"src":"1119:274:103"},{"body":{"nodeType":"YulBlock","src":"1527:175:103","statements":[{"nodeType":"YulAssignment","src":"1537:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1549:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1560:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1545:3:103"},"nodeType":"YulFunctionCall","src":"1545:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1537:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"1572:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1590:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1595:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1586:3:103"},"nodeType":"YulFunctionCall","src":"1586:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1599:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1582:3:103"},"nodeType":"YulFunctionCall","src":"1582:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1576:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1617:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1632:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1640:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1628:3:103"},"nodeType":"YulFunctionCall","src":"1628:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1610:6:103"},"nodeType":"YulFunctionCall","src":"1610:34:103"},"nodeType":"YulExpressionStatement","src":"1610:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1664:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1675:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1660:3:103"},"nodeType":"YulFunctionCall","src":"1660:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1684:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1692:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1680:3:103"},"nodeType":"YulFunctionCall","src":"1680:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1653:6:103"},"nodeType":"YulFunctionCall","src":"1653:43:103"},"nodeType":"YulExpressionStatement","src":"1653:43:103"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1488:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1499:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1507:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1518:4:103","type":""}],"src":"1398:304:103"},{"body":{"nodeType":"YulBlock","src":"1828:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1845:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1856:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1838:6:103"},"nodeType":"YulFunctionCall","src":"1838:21:103"},"nodeType":"YulExpressionStatement","src":"1838:21:103"},{"nodeType":"YulVariableDeclaration","src":"1868:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1888:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1882:5:103"},"nodeType":"YulFunctionCall","src":"1882:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1872:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1926:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1911:3:103"},"nodeType":"YulFunctionCall","src":"1911:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1931:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1904:6:103"},"nodeType":"YulFunctionCall","src":"1904:34:103"},"nodeType":"YulExpressionStatement","src":"1904:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1973:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1981:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1969:3:103"},"nodeType":"YulFunctionCall","src":"1969:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1990:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2001:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1986:3:103"},"nodeType":"YulFunctionCall","src":"1986:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"2006:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1947:21:103"},"nodeType":"YulFunctionCall","src":"1947:66:103"},"nodeType":"YulExpressionStatement","src":"1947:66:103"},{"nodeType":"YulAssignment","src":"2022:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2038:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2057:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2065:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2053:3:103"},"nodeType":"YulFunctionCall","src":"2053:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2074:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2070:3:103"},"nodeType":"YulFunctionCall","src":"2070:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2049:3:103"},"nodeType":"YulFunctionCall","src":"2049:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2081:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2030:3:103"},"nodeType":"YulFunctionCall","src":"2030:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2022:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1797:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1808:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1819:4:103","type":""}],"src":"1707:383:103"},{"body":{"nodeType":"YulBlock","src":"2269:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2286:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2297:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2279:6:103"},"nodeType":"YulFunctionCall","src":"2279:21:103"},"nodeType":"YulExpressionStatement","src":"2279:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2320:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2331:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2316:3:103"},"nodeType":"YulFunctionCall","src":"2316:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2336:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2309:6:103"},"nodeType":"YulFunctionCall","src":"2309:30:103"},"nodeType":"YulExpressionStatement","src":"2309:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2359:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2370:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2355:3:103"},"nodeType":"YulFunctionCall","src":"2355:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2375:34:103","type":"","value":"ERC1967: new admin is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2348:6:103"},"nodeType":"YulFunctionCall","src":"2348:62:103"},"nodeType":"YulExpressionStatement","src":"2348:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2430:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2441:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2426:3:103"},"nodeType":"YulFunctionCall","src":"2426:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2446:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2419:6:103"},"nodeType":"YulFunctionCall","src":"2419:36:103"},"nodeType":"YulExpressionStatement","src":"2419:36:103"},{"nodeType":"YulAssignment","src":"2464:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2476:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2487:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2472:3:103"},"nodeType":"YulFunctionCall","src":"2472:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2464:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2246:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2260:4:103","type":""}],"src":"2095:402:103"},{"body":{"nodeType":"YulBlock","src":"2676:235:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2693:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2704:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2686:6:103"},"nodeType":"YulFunctionCall","src":"2686:21:103"},"nodeType":"YulExpressionStatement","src":"2686:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2738:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2723:3:103"},"nodeType":"YulFunctionCall","src":"2723:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2743:2:103","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2716:6:103"},"nodeType":"YulFunctionCall","src":"2716:30:103"},"nodeType":"YulExpressionStatement","src":"2716:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2766:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2777:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2762:3:103"},"nodeType":"YulFunctionCall","src":"2762:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2782:34:103","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2755:6:103"},"nodeType":"YulFunctionCall","src":"2755:62:103"},"nodeType":"YulExpressionStatement","src":"2755:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2837:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2848:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2833:3:103"},"nodeType":"YulFunctionCall","src":"2833:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2853:15:103","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2826:6:103"},"nodeType":"YulFunctionCall","src":"2826:43:103"},"nodeType":"YulExpressionStatement","src":"2826:43:103"},{"nodeType":"YulAssignment","src":"2878:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2890:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2901:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2886:3:103"},"nodeType":"YulFunctionCall","src":"2886:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2878:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2653:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2667:4:103","type":""}],"src":"2502:409:103"},{"body":{"nodeType":"YulBlock","src":"3090:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3107:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3118:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3100:6:103"},"nodeType":"YulFunctionCall","src":"3100:21:103"},"nodeType":"YulExpressionStatement","src":"3100:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3152:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3137:3:103"},"nodeType":"YulFunctionCall","src":"3137:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3157:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3130:6:103"},"nodeType":"YulFunctionCall","src":"3130:30:103"},"nodeType":"YulExpressionStatement","src":"3130:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3180:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3191:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3176:3:103"},"nodeType":"YulFunctionCall","src":"3176:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3196:34:103","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3169:6:103"},"nodeType":"YulFunctionCall","src":"3169:62:103"},"nodeType":"YulExpressionStatement","src":"3169:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3262:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3247:3:103"},"nodeType":"YulFunctionCall","src":"3247:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3267:8:103","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3240:6:103"},"nodeType":"YulFunctionCall","src":"3240:36:103"},"nodeType":"YulExpressionStatement","src":"3240:36:103"},{"nodeType":"YulAssignment","src":"3285:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3297:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3308:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3293:3:103"},"nodeType":"YulFunctionCall","src":"3293:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3285:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3067:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3081:4:103","type":""}],"src":"2916:402:103"},{"body":{"nodeType":"YulBlock","src":"3376:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3386:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3395:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3390:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3455:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3480:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3485:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3476:3:103"},"nodeType":"YulFunctionCall","src":"3476:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3499:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3504:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3495:3:103"},"nodeType":"YulFunctionCall","src":"3495:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3489:5:103"},"nodeType":"YulFunctionCall","src":"3489:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3469:6:103"},"nodeType":"YulFunctionCall","src":"3469:39:103"},"nodeType":"YulExpressionStatement","src":"3469:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3416:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3419:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3413:2:103"},"nodeType":"YulFunctionCall","src":"3413:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3427:19:103","statements":[{"nodeType":"YulAssignment","src":"3429:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3438:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"3441:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3434:3:103"},"nodeType":"YulFunctionCall","src":"3434:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3429:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"3409:3:103","statements":[]},"src":"3405:113:103"},{"body":{"nodeType":"YulBlock","src":"3544:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3557:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3562:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3553:3:103"},"nodeType":"YulFunctionCall","src":"3553:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3571:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3546:6:103"},"nodeType":"YulFunctionCall","src":"3546:27:103"},"nodeType":"YulExpressionStatement","src":"3546:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3533:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3536:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3530:2:103"},"nodeType":"YulFunctionCall","src":"3530:13:103"},"nodeType":"YulIf","src":"3527:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3354:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"3359:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"3364:6:103","type":""}],"src":"3323:258:103"},{"body":{"nodeType":"YulBlock","src":"3618:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3635:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3642:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3647:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3638:3:103"},"nodeType":"YulFunctionCall","src":"3638:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3628:6:103"},"nodeType":"YulFunctionCall","src":"3628:31:103"},"nodeType":"YulExpressionStatement","src":"3628:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3675:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3678:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3668:6:103"},"nodeType":"YulFunctionCall","src":"3668:15:103"},"nodeType":"YulExpressionStatement","src":"3668:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3699:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3702:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3692:6:103"},"nodeType":"YulFunctionCall","src":"3692:15:103"},"nodeType":"YulExpressionStatement","src":"3692:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"3586:127:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n let offset := mload(add(headStart, 32))\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let _3 := mload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value1, value1) }\n copy_memory_to_memory(add(_2, 32), add(memPtr, 32), _3)\n value1 := memPtr\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC1967: new admin is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 45)\n mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n mstore(add(headStart, 96), \"ot a contract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000c0c38038062000c0c83398101604081905262000034916200043b565b818162000044828260006200005a565b506200005290503362000097565b5050620005a9565b6200006583620000f2565b600082511180620000735750805b1562000092576200009083836200013460201b620001ae1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c262000163565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ef816200019c565b50565b620000fd8162000251565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015c838360405180606001604052806027815260200162000be56027913962000305565b9392505050565b60006200018d60008051602062000bc583398151915260001b620003eb60201b620001da1760201c565b546001600160a01b0316905090565b6001600160a01b038116620002075760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200023060008051602062000bc583398151915260001b620003eb60201b620001da1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200026781620003ee60201b620001dd1760201c565b620002cb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001fe565b80620002307f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003eb60201b620001da1760201c565b60606001600160a01b0384163b6200036f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001fe565b600080856001600160a01b0316856040516200038c919062000511565b600060405180830381855af49150503d8060008114620003c9576040519150601f19603f3d011682016040523d82523d6000602084013e620003ce565b606091505b509092509050620003e1828286620003fd565b9695505050505050565b90565b6001600160a01b03163b151590565b606083156200040e5750816200015c565b8251156200041f5782518084602001fd5b8160405162461bcd60e51b8152600401620001fe91906200052f565b600080604083850312156200044e578182fd5b82516001600160a01b038116811462000465578283fd5b60208401519092506001600160401b038082111562000482578283fd5b818501915085601f83011262000496578283fd5b815181811115620004ab57620004ab62000593565b604051601f8201601f19908116603f01168101908382118183101715620004d657620004d662000593565b81604052828152886020848701011115620004ef578586fd5b6200050283602083016020880162000564565b80955050505050509250929050565b600082516200052581846020870162000564565b9190910192915050565b60006020825282518060208401526200055081604085016020870162000564565b601f01601f19169190910160400192915050565b60005b838110156200058157818101518382015260200162000567565b83811115620000905750506000910152565b634e487b7160e01b600052604160045260246000fd5b61060c80620005b96000396000f3fe60806040526004361061002d5760003560e01c80634f1ef286146100445780635c60da1b146100575761003c565b3661003c5761003a610088565b005b61003a610088565b61003a6100523660046104a9565b61009a565b34801561006357600080fd5b5061006c61019f565b6040516001600160a01b03909116815260200160405180910390f35b6100986100936101ec565b6101f6565b565b6100a261021f565b6001600160a01b0316336001600160a01b0316146101075760405162461bcd60e51b815260206004820152601760248201527f4552524f523a4352502d3030313a4e4f545f41444d494e00000000000000000060448201526064015b60405180910390fd5b60006101116101ec565b90506101568484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610252915050565b604080516001600160a01b038084168252861660208201527faca1087105eb43beb9d5a0283455ab4c7fc8e7412810dca909839c8c2f8be7b5910160405180910390a150505050565b60006101a96101ec565b905090565b60606101d383836040518060600160405280602781526020016105b06027913961027d565b9392505050565b90565b6001600160a01b03163b151590565b60006101a961035a565b3660008037600080366000845af43d6000803e808015610215573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b61025b83610382565b6000825111806102685750805b1561021a5761027783836101ae565b50505050565b60606001600160a01b0384163b6102e55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016100fe565b600080856001600160a01b0316856040516103009190610534565b600060405180830381855af49150503d806000811461033b576040519150601f19603f3d011682016040523d82523d6000602084013e610340565b606091505b50915091506103508282866103c2565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610243565b61038b816103fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156103d15750816101d3565b8251156103e15782518084602001fd5b8160405162461bcd60e51b81526004016100fe9190610550565b6001600160a01b0381163b6104685760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100fe565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000604084860312156104bd578283fd5b83356001600160a01b03811681146104d3578384fd5b9250602084013567ffffffffffffffff808211156104ef578384fd5b818601915086601f830112610502578384fd5b813581811115610510578485fd5b876020828501011115610521578485fd5b6020830194508093505050509250925092565b60008251610546818460208701610583565b9190910192915050565b600060208252825180602084015261056f816040850160208701610583565b601f01601f19169190910160400192915050565b60005b8381101561059e578181015183820152602001610586565b83811115610277575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1938722abe7a1266a6059456b8e2596f1ccd82ddbf52882350a27c535c239964736f6c63430008020033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xC0C CODESIZE SUB DUP1 PUSH3 0xC0C DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x43B JUMP JUMPDEST DUP2 DUP2 PUSH3 0x44 DUP3 DUP3 PUSH1 0x0 PUSH3 0x5A JUMP JUMPDEST POP PUSH3 0x52 SWAP1 POP CALLER PUSH3 0x97 JUMP JUMPDEST POP POP PUSH3 0x5A9 JUMP JUMPDEST PUSH3 0x65 DUP4 PUSH3 0xF2 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH3 0x73 JUMPI POP DUP1 JUMPDEST ISZERO PUSH3 0x92 JUMPI PUSH3 0x90 DUP4 DUP4 PUSH3 0x134 PUSH1 0x20 SHL PUSH3 0x1AE OR PUSH1 0x20 SHR JUMP JUMPDEST POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH32 0x7E644D79422F17C01E4894B5F4F588D331EBFA28653D42AE832DC59E38C9798F PUSH3 0xC2 PUSH3 0x163 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND DUP2 MSTORE SWAP2 DUP5 AND PUSH1 0x20 DUP4 ADD MSTORE ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH3 0xEF DUP2 PUSH3 0x19C JUMP JUMPDEST POP JUMP JUMPDEST PUSH3 0xFD DUP2 PUSH3 0x251 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 PUSH3 0x15C DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xBE5 PUSH1 0x27 SWAP2 CODECOPY PUSH3 0x305 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x18D PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0xBC5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SHL PUSH3 0x3EB PUSH1 0x20 SHL PUSH3 0x1DA OR PUSH1 0x20 SHR JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0x207 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E65772061646D696E20697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH3 0x230 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH3 0xBC5 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH1 0x0 SHL PUSH3 0x3EB PUSH1 0x20 SHL PUSH3 0x1DA OR PUSH1 0x20 SHR JUMP JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH3 0x267 DUP2 PUSH3 0x3EE PUSH1 0x20 SHL PUSH3 0x1DD OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x2CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0x1FE JUMP JUMPDEST DUP1 PUSH3 0x230 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH1 0x0 SHL PUSH3 0x3EB PUSH1 0x20 SHL PUSH3 0x1DA OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH3 0x36F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0x1FE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH3 0x38C SWAP2 SWAP1 PUSH3 0x511 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH3 0x3C9 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH3 0x3CE JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH3 0x3E1 DUP3 DUP3 DUP7 PUSH3 0x3FD JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH3 0x40E JUMPI POP DUP2 PUSH3 0x15C JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH3 0x41F JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x1FE SWAP2 SWAP1 PUSH3 0x52F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x44E JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x465 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x482 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x496 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x4AB JUMPI PUSH3 0x4AB PUSH3 0x593 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x4D6 JUMPI PUSH3 0x4D6 PUSH3 0x593 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH3 0x4EF JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH3 0x502 DUP4 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP9 ADD PUSH3 0x564 JUMP JUMPDEST DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH3 0x525 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH3 0x564 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH3 0x550 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH3 0x564 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x581 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH3 0x567 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x90 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x60C DUP1 PUSH3 0x5B9 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x57 JUMPI PUSH2 0x3C JUMP JUMPDEST CALLDATASIZE PUSH2 0x3C JUMPI PUSH2 0x3A PUSH2 0x88 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A PUSH2 0x88 JUMP JUMPDEST PUSH2 0x3A PUSH2 0x52 CALLDATASIZE PUSH1 0x4 PUSH2 0x4A9 JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C PUSH2 0x19F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x98 PUSH2 0x93 PUSH2 0x1EC JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xA2 PUSH2 0x21F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x107 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352502D3030313A4E4F545F41444D494E000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x111 PUSH2 0x1EC JUMP JUMPDEST SWAP1 POP PUSH2 0x156 DUP5 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x252 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xACA1087105EB43BEB9D5A0283455AB4C7FC8E7412810DCA909839C8C2F8BE7B5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A9 PUSH2 0x1EC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1D3 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5B0 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x27D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A9 PUSH2 0x35A JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x25B DUP4 PUSH2 0x382 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x268 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x21A JUMPI PUSH2 0x277 DUP4 DUP4 PUSH2 0x1AE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x2E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xFE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x300 SWAP2 SWAP1 PUSH2 0x534 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x33B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x340 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x350 DUP3 DUP3 DUP7 PUSH2 0x3C2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x243 JUMP JUMPDEST PUSH2 0x38B DUP2 PUSH2 0x3FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3D1 JUMPI POP DUP2 PUSH2 0x1D3 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x3E1 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x550 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x468 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xFE JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4BD JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4D3 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x4EF JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x502 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x510 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x521 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x546 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x56F DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x59E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x586 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x277 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212203E1938 PUSH19 0x2ABE7A1266A6059456B8E2596F1CCD82DDBF52 DUP9 0x23 POP LOG2 PUSH29 0x535C239964736F6C63430008020033B53127684A568B3173AE13B9F8A6 ADD PUSH15 0x243E63B6E8EE1178D6A717850B5D61 SUB COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C65640000 ","sourceMap":"203:881:89:-:0;;;420:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;510:11;523:19;1024:39:43;510:11:89;523:19;1057:5:43;1024:17;:39::i;:::-;-1:-1:-1;561:24:89::1;::::0;-1:-1:-1;574:10:89::1;561:12;:24::i;:::-;420:173:::0;;203:881;;2183:295:44;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;;;;;:53;;:::i;:::-;;2360:112;2183:295;;;:::o;4624:135::-;4688:35;4701:11;:9;:11::i;:::-;4688:35;;;-1:-1:-1;;;;;1628:15:103;;;1610:34;;1680:15;;;1675:2;1660:18;;1653:43;1545:18;4688:35:44;;;;;;;4733:19;4743:8;4733:9;:19::i;:::-;4624:135;:::o;1897:152::-;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:44;;;;;;;;1897:152;:::o;6570:198:58:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:58:o;4108:122:44:-;4152:7;4178:39;-1:-1:-1;;;;;;;;;;;4205:11:44;;4178:26;;;;;:39;;:::i;:::-;:45;-1:-1:-1;;;;;4178:45:44;;-1:-1:-1;4108:122:44;:::o;4312:201::-;-1:-1:-1;;;;;4375:22:44;;4367:73;;;;-1:-1:-1;;;4367:73:44;;2297:2:103;4367:73:44;;;2279:21:103;2336:2;2316:18;;;2309:30;2375:34;2355:18;;;2348:62;-1:-1:-1;;;2426:18:103;;;2419:36;2472:19;;4367:73:44;;;;;;;;;4498:8;4450:39;-1:-1:-1;;;;;;;;;;;4477:11:44;;4450:26;;;;;:39;;:::i;:::-;:56;;-1:-1:-1;;;;;;4450:56:44;-1:-1:-1;;;;;4450:56:44;;;;;;;;;;-1:-1:-1;4312:201:44:o;1532:259::-;1613:37;1632:17;1613:18;;;;;:37;;:::i;:::-;1605:95;;;;-1:-1:-1;;;1605:95:44;;2704:2:103;1605:95:44;;;2686:21:103;2743:2;2723:18;;;2716:30;2782:34;2762:18;;;2755:62;-1:-1:-1;;;2833:18:103;;;2826:43;2886:19;;1605:95:44;2676:235:103;1605:95:44;1767:17;1710:48;1030:66;1737:20;;1710:26;;;;;:48;;:::i;6954:387:58:-;7095:12;-1:-1:-1;;;;;1465:19:58;;;7119:69;;;;-1:-1:-1;;;7119:69:58;;3118:2:103;7119:69:58;;;3100:21:103;3157:2;3137:18;;;3130:30;3196:34;3176:18;;;3169:62;-1:-1:-1;;;3247:18:103;;;3240:36;3293:19;;7119:69:58;3090:228:103;7119:69:58;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:58;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7199:67:58;;-1:-1:-1;7199:67:58;-1:-1:-1;7283:51:58;7199:67;;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:58:o;1614:190:60:-;1784:4;1760:38::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;:23;;;1175:320::o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:58;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:58;;;;;;;;:::i;14:1100:103:-;;;163:2;151:9;142:7;138:23;134:32;131:2;;;184:6;176;169:22;131:2;215:16;;-1:-1:-1;;;;;260:31:103;;250:42;;240:2;;311:6;303;296:22;240:2;388;373:18;;367:25;339:5;;-1:-1:-1;;;;;;441:14:103;;;438:2;;;473:6;465;458:22;438:2;516:6;505:9;501:22;491:32;;561:7;554:4;550:2;546:13;542:27;532:2;;588:6;580;573:22;532:2;622;616:9;644:2;640;637:10;634:2;;;650:18;;:::i;:::-;725:2;719:9;693:2;779:13;;-1:-1:-1;;775:22:103;;;799:2;771:31;767:40;755:53;;;823:18;;;843:22;;;820:46;817:2;;;869:18;;:::i;:::-;909:10;905:2;898:22;944:2;936:6;929:18;984:7;979:2;974;970;966:11;962:20;959:33;956:2;;;1010:6;1002;995:22;956:2;1028:55;1080:2;1075;1067:6;1063:15;1058:2;1054;1050:11;1028:55;:::i;:::-;1102:6;1092:16;;;;;;;121:993;;;;;:::o;1119:274::-;;1286:6;1280:13;1302:53;1348:6;1343:3;1336:4;1328:6;1324:17;1302:53;:::i;:::-;1371:16;;;;;1256:137;-1:-1:-1;;1256:137:103:o;1707:383::-;;1856:2;1845:9;1838:21;1888:6;1882:13;1931:6;1926:2;1915:9;1911:18;1904:34;1947:66;2006:6;2001:2;1990:9;1986:18;1981:2;1973:6;1969:15;1947:66;:::i;:::-;2074:2;2053:15;-1:-1:-1;;2049:29:103;2034:45;;;;2081:2;2030:54;;1828:262;-1:-1:-1;;1828:262:103:o;3323:258::-;3395:1;3405:113;3419:6;3416:1;3413:13;3405:113;;;3495:11;;;3489:18;3476:11;;;3469:39;3441:2;3434:10;3405:113;;;3536:6;3533:1;3530:13;3527:2;;;-1:-1:-1;;3571:1:103;3553:16;;3546:27;3376:205::o;3586:127::-;3647:10;3642:3;3638:20;3635:1;3628:31;3678:4;3675:1;3668:15;3702:4;3699:1;3692:15;3618:95;203:881:89;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3461:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"120:719:103","statements":[{"body":{"nodeType":"YulBlock","src":"166:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"175:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"183:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"168:6:103"},"nodeType":"YulFunctionCall","src":"168:22:103"},"nodeType":"YulExpressionStatement","src":"168:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"141:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"150:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"137:3:103"},"nodeType":"YulFunctionCall","src":"137:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"162:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"133:3:103"},"nodeType":"YulFunctionCall","src":"133:32:103"},"nodeType":"YulIf","src":"130:2:103"},{"nodeType":"YulVariableDeclaration","src":"201:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"227:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"214:12:103"},"nodeType":"YulFunctionCall","src":"214:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"205:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"300:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"309:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"302:6:103"},"nodeType":"YulFunctionCall","src":"302:22:103"},"nodeType":"YulExpressionStatement","src":"302:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"259:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"270:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"285:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"290:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"281:3:103"},"nodeType":"YulFunctionCall","src":"281:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"294:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"277:3:103"},"nodeType":"YulFunctionCall","src":"277:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"266:3:103"},"nodeType":"YulFunctionCall","src":"266:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"256:2:103"},"nodeType":"YulFunctionCall","src":"256:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"249:6:103"},"nodeType":"YulFunctionCall","src":"249:50:103"},"nodeType":"YulIf","src":"246:2:103"},{"nodeType":"YulAssignment","src":"335:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"345:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"335:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"359:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"390:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"401:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"386:3:103"},"nodeType":"YulFunctionCall","src":"386:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"373:12:103"},"nodeType":"YulFunctionCall","src":"373:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"363:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"414:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"424:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"418:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"469:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"478:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"486:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"471:6:103"},"nodeType":"YulFunctionCall","src":"471:22:103"},"nodeType":"YulExpressionStatement","src":"471:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"457:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"465:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"454:2:103"},"nodeType":"YulFunctionCall","src":"454:14:103"},"nodeType":"YulIf","src":"451:2:103"},{"nodeType":"YulVariableDeclaration","src":"504:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"518:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"529:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"514:3:103"},"nodeType":"YulFunctionCall","src":"514:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"508:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"584:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"593:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"601:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"586:6:103"},"nodeType":"YulFunctionCall","src":"586:22:103"},"nodeType":"YulExpressionStatement","src":"586:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"563:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"567:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"559:3:103"},"nodeType":"YulFunctionCall","src":"559:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"574:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"555:3:103"},"nodeType":"YulFunctionCall","src":"555:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"548:6:103"},"nodeType":"YulFunctionCall","src":"548:35:103"},"nodeType":"YulIf","src":"545:2:103"},{"nodeType":"YulVariableDeclaration","src":"619:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"646:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"633:12:103"},"nodeType":"YulFunctionCall","src":"633:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"623:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"676:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"685:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"693:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"678:6:103"},"nodeType":"YulFunctionCall","src":"678:22:103"},"nodeType":"YulExpressionStatement","src":"678:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"664:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"672:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"661:2:103"},"nodeType":"YulFunctionCall","src":"661:14:103"},"nodeType":"YulIf","src":"658:2:103"},{"body":{"nodeType":"YulBlock","src":"752:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"761:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"769:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"754:6:103"},"nodeType":"YulFunctionCall","src":"754:22:103"},"nodeType":"YulExpressionStatement","src":"754:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"725:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"729:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"721:3:103"},"nodeType":"YulFunctionCall","src":"721:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"738:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"717:3:103"},"nodeType":"YulFunctionCall","src":"717:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"743:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"714:2:103"},"nodeType":"YulFunctionCall","src":"714:37:103"},"nodeType":"YulIf","src":"711:2:103"},{"nodeType":"YulAssignment","src":"787:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"801:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"805:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"797:3:103"},"nodeType":"YulFunctionCall","src":"797:11:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"787:6:103"}]},{"nodeType":"YulAssignment","src":"817:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"827:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"817:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"70:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"81:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"93:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"101:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"109:6:103","type":""}],"src":"14:825:103"},{"body":{"nodeType":"YulBlock","src":"981:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"991:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1011:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1005:5:103"},"nodeType":"YulFunctionCall","src":"1005:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"995:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1053:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1061:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1049:3:103"},"nodeType":"YulFunctionCall","src":"1049:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"1068:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1073:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1027:21:103"},"nodeType":"YulFunctionCall","src":"1027:53:103"},"nodeType":"YulExpressionStatement","src":"1027:53:103"},{"nodeType":"YulAssignment","src":"1089:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1100:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1105:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1096:3:103"},"nodeType":"YulFunctionCall","src":"1096:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1089:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"957:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"962:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"973:3:103","type":""}],"src":"844:274:103"},{"body":{"nodeType":"YulBlock","src":"1224:102:103","statements":[{"nodeType":"YulAssignment","src":"1234:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1246:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1257:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1242:3:103"},"nodeType":"YulFunctionCall","src":"1242:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1234:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1276:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1291:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1307:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1312:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1303:3:103"},"nodeType":"YulFunctionCall","src":"1303:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1316:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1299:3:103"},"nodeType":"YulFunctionCall","src":"1299:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1287:3:103"},"nodeType":"YulFunctionCall","src":"1287:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1269:6:103"},"nodeType":"YulFunctionCall","src":"1269:51:103"},"nodeType":"YulExpressionStatement","src":"1269:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1193:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1204:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1215:4:103","type":""}],"src":"1123:203:103"},{"body":{"nodeType":"YulBlock","src":"1460:175:103","statements":[{"nodeType":"YulAssignment","src":"1470:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1493:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1478:3:103"},"nodeType":"YulFunctionCall","src":"1478:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1470:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"1505:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1523:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1528:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1519:3:103"},"nodeType":"YulFunctionCall","src":"1519:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1532:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1515:3:103"},"nodeType":"YulFunctionCall","src":"1515:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1509:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1550:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1565:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1573:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1561:3:103"},"nodeType":"YulFunctionCall","src":"1561:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1543:6:103"},"nodeType":"YulFunctionCall","src":"1543:34:103"},"nodeType":"YulExpressionStatement","src":"1543:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1597:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1608:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1593:3:103"},"nodeType":"YulFunctionCall","src":"1593:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1617:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1625:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1613:3:103"},"nodeType":"YulFunctionCall","src":"1613:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1586:6:103"},"nodeType":"YulFunctionCall","src":"1586:43:103"},"nodeType":"YulExpressionStatement","src":"1586:43:103"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1421:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1432:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1440:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1451:4:103","type":""}],"src":"1331:304:103"},{"body":{"nodeType":"YulBlock","src":"1761:262:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1778:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1789:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1771:6:103"},"nodeType":"YulFunctionCall","src":"1771:21:103"},"nodeType":"YulExpressionStatement","src":"1771:21:103"},{"nodeType":"YulVariableDeclaration","src":"1801:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1821:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1815:5:103"},"nodeType":"YulFunctionCall","src":"1815:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1805:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1848:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1859:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1844:3:103"},"nodeType":"YulFunctionCall","src":"1844:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1864:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1837:6:103"},"nodeType":"YulFunctionCall","src":"1837:34:103"},"nodeType":"YulExpressionStatement","src":"1837:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1906:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1914:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1902:3:103"},"nodeType":"YulFunctionCall","src":"1902:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1923:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1934:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1919:3:103"},"nodeType":"YulFunctionCall","src":"1919:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1939:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1880:21:103"},"nodeType":"YulFunctionCall","src":"1880:66:103"},"nodeType":"YulExpressionStatement","src":"1880:66:103"},{"nodeType":"YulAssignment","src":"1955:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1971:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1990:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1998:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1986:3:103"},"nodeType":"YulFunctionCall","src":"1986:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2007:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2003:3:103"},"nodeType":"YulFunctionCall","src":"2003:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1982:3:103"},"nodeType":"YulFunctionCall","src":"1982:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1967:3:103"},"nodeType":"YulFunctionCall","src":"1967:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2014:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1963:3:103"},"nodeType":"YulFunctionCall","src":"1963:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1955:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1730:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1741:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1752:4:103","type":""}],"src":"1640:383:103"},{"body":{"nodeType":"YulBlock","src":"2202:173:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2219:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2230:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2212:6:103"},"nodeType":"YulFunctionCall","src":"2212:21:103"},"nodeType":"YulExpressionStatement","src":"2212:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2253:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2264:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2249:3:103"},"nodeType":"YulFunctionCall","src":"2249:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:103","type":"","value":"23"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2242:6:103"},"nodeType":"YulFunctionCall","src":"2242:30:103"},"nodeType":"YulExpressionStatement","src":"2242:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2303:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2288:3:103"},"nodeType":"YulFunctionCall","src":"2288:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2308:25:103","type":"","value":"ERROR:CRP-001:NOT_ADMIN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2281:6:103"},"nodeType":"YulFunctionCall","src":"2281:53:103"},"nodeType":"YulExpressionStatement","src":"2281:53:103"},{"nodeType":"YulAssignment","src":"2343:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2355:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2366:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2351:3:103"},"nodeType":"YulFunctionCall","src":"2351:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2343:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0040c7b535fe8d83323ecc73a5169249b6133b5d656b3adacba7405479c95dea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2179:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2193:4:103","type":""}],"src":"2028:347:103"},{"body":{"nodeType":"YulBlock","src":"2554:235:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2571:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2582:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2564:6:103"},"nodeType":"YulFunctionCall","src":"2564:21:103"},"nodeType":"YulExpressionStatement","src":"2564:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2605:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2616:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2601:3:103"},"nodeType":"YulFunctionCall","src":"2601:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2621:2:103","type":"","value":"45"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2594:6:103"},"nodeType":"YulFunctionCall","src":"2594:30:103"},"nodeType":"YulExpressionStatement","src":"2594:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2640:3:103"},"nodeType":"YulFunctionCall","src":"2640:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2660:34:103","type":"","value":"ERC1967: new implementation is n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2633:6:103"},"nodeType":"YulFunctionCall","src":"2633:62:103"},"nodeType":"YulExpressionStatement","src":"2633:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2715:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2726:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2711:3:103"},"nodeType":"YulFunctionCall","src":"2711:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2731:15:103","type":"","value":"ot a contract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2704:6:103"},"nodeType":"YulFunctionCall","src":"2704:43:103"},"nodeType":"YulExpressionStatement","src":"2704:43:103"},{"nodeType":"YulAssignment","src":"2756:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2779:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2764:3:103"},"nodeType":"YulFunctionCall","src":"2764:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2756:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2531:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2545:4:103","type":""}],"src":"2380:409:103"},{"body":{"nodeType":"YulBlock","src":"2968:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2996:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2978:6:103"},"nodeType":"YulFunctionCall","src":"2978:21:103"},"nodeType":"YulExpressionStatement","src":"2978:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3030:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3015:3:103"},"nodeType":"YulFunctionCall","src":"3015:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3035:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3008:6:103"},"nodeType":"YulFunctionCall","src":"3008:30:103"},"nodeType":"YulExpressionStatement","src":"3008:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3058:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3069:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3054:3:103"},"nodeType":"YulFunctionCall","src":"3054:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3074:34:103","type":"","value":"Address: delegate call to non-co"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3047:6:103"},"nodeType":"YulFunctionCall","src":"3047:62:103"},"nodeType":"YulExpressionStatement","src":"3047:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3129:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3140:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3125:3:103"},"nodeType":"YulFunctionCall","src":"3125:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3145:8:103","type":"","value":"ntract"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3118:6:103"},"nodeType":"YulFunctionCall","src":"3118:36:103"},"nodeType":"YulExpressionStatement","src":"3118:36:103"},{"nodeType":"YulAssignment","src":"3163:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3186:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3171:3:103"},"nodeType":"YulFunctionCall","src":"3171:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3163:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2945:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2959:4:103","type":""}],"src":"2794:402:103"},{"body":{"nodeType":"YulBlock","src":"3254:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3264:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3273:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3268:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3333:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3358:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3363:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3354:3:103"},"nodeType":"YulFunctionCall","src":"3354:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3377:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3382:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3373:3:103"},"nodeType":"YulFunctionCall","src":"3373:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3367:5:103"},"nodeType":"YulFunctionCall","src":"3367:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3347:6:103"},"nodeType":"YulFunctionCall","src":"3347:39:103"},"nodeType":"YulExpressionStatement","src":"3347:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3294:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3297:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3291:2:103"},"nodeType":"YulFunctionCall","src":"3291:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3305:19:103","statements":[{"nodeType":"YulAssignment","src":"3307:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3316:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"3319:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3312:3:103"},"nodeType":"YulFunctionCall","src":"3312:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3307:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"3287:3:103","statements":[]},"src":"3283:113:103"},{"body":{"nodeType":"YulBlock","src":"3422:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3435:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3440:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3431:3:103"},"nodeType":"YulFunctionCall","src":"3431:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3449:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3424:6:103"},"nodeType":"YulFunctionCall","src":"3424:27:103"},"nodeType":"YulExpressionStatement","src":"3424:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3411:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3414:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3408:2:103"},"nodeType":"YulFunctionCall","src":"3408:13:103"},"nodeType":"YulIf","src":"3405:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3232:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"3237:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"3242:6:103","type":""}],"src":"3201:258:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_addresst_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value1, value1) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value1, value1) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value1, value1) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value1, value1) }\n value1 := add(_2, 32)\n value2 := length\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0040c7b535fe8d83323ecc73a5169249b6133b5d656b3adacba7405479c95dea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"ERROR:CRP-001:NOT_ADMIN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 45)\n mstore(add(headStart, 64), \"ERC1967: new implementation is n\")\n mstore(add(headStart, 96), \"ot a contract\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Address: delegate call to non-co\")\n mstore(add(headStart, 96), \"ntract\")\n tail := add(headStart, 128)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061002d5760003560e01c80634f1ef286146100445780635c60da1b146100575761003c565b3661003c5761003a610088565b005b61003a610088565b61003a6100523660046104a9565b61009a565b34801561006357600080fd5b5061006c61019f565b6040516001600160a01b03909116815260200160405180910390f35b6100986100936101ec565b6101f6565b565b6100a261021f565b6001600160a01b0316336001600160a01b0316146101075760405162461bcd60e51b815260206004820152601760248201527f4552524f523a4352502d3030313a4e4f545f41444d494e00000000000000000060448201526064015b60405180910390fd5b60006101116101ec565b90506101568484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610252915050565b604080516001600160a01b038084168252861660208201527faca1087105eb43beb9d5a0283455ab4c7fc8e7412810dca909839c8c2f8be7b5910160405180910390a150505050565b60006101a96101ec565b905090565b60606101d383836040518060600160405280602781526020016105b06027913961027d565b9392505050565b90565b6001600160a01b03163b151590565b60006101a961035a565b3660008037600080366000845af43d6000803e808015610215573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b61025b83610382565b6000825111806102685750805b1561021a5761027783836101ae565b50505050565b60606001600160a01b0384163b6102e55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016100fe565b600080856001600160a01b0316856040516103009190610534565b600060405180830381855af49150503d806000811461033b576040519150601f19603f3d011682016040523d82523d6000602084013e610340565b606091505b50915091506103508282866103c2565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610243565b61038b816103fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156103d15750816101d3565b8251156103e15782518084602001fd5b8160405162461bcd60e51b81526004016100fe9190610550565b6001600160a01b0381163b6104685760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100fe565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000604084860312156104bd578283fd5b83356001600160a01b03811681146104d3578384fd5b9250602084013567ffffffffffffffff808211156104ef578384fd5b818601915086601f830112610502578384fd5b813581811115610510578485fd5b876020828501011115610521578485fd5b6020830194508093505050509250925092565b60008251610546818460208701610583565b9190910192915050565b600060208252825180602084015261056f816040850160208701610583565b601f01601f19169190910160400192915050565b60005b8381101561059e578181015183820152602001610586565b83811115610277575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1938722abe7a1266a6059456b8e2596f1ccd82ddbf52882350a27c535c239964736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4F1EF286 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x57 JUMPI PUSH2 0x3C JUMP JUMPDEST CALLDATASIZE PUSH2 0x3C JUMPI PUSH2 0x3A PUSH2 0x88 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A PUSH2 0x88 JUMP JUMPDEST PUSH2 0x3A PUSH2 0x52 CALLDATASIZE PUSH1 0x4 PUSH2 0x4A9 JUMP JUMPDEST PUSH2 0x9A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C PUSH2 0x19F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x98 PUSH2 0x93 PUSH2 0x1EC JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST JUMP JUMPDEST PUSH2 0xA2 PUSH2 0x21F JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x107 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352502D3030313A4E4F545F41444D494E000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x111 PUSH2 0x1EC JUMP JUMPDEST SWAP1 POP PUSH2 0x156 DUP5 DUP5 DUP5 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH1 0x1 SWAP3 POP PUSH2 0x252 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP5 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0xACA1087105EB43BEB9D5A0283455AB4C7FC8E7412810DCA909839C8C2F8BE7B5 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A9 PUSH2 0x1EC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1D3 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x5B0 PUSH1 0x27 SWAP2 CODECOPY PUSH2 0x27D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A9 PUSH2 0x35A JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0x215 JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xB53127684A568B3173AE13B9F8A6016E243E63B6E8EE1178D6A717850B5D6103 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x25B DUP4 PUSH2 0x382 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD GT DUP1 PUSH2 0x268 JUMPI POP DUP1 JUMPDEST ISZERO PUSH2 0x21A JUMPI PUSH2 0x277 DUP4 DUP4 PUSH2 0x1AE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x2E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xFE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x300 SWAP2 SWAP1 PUSH2 0x534 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x33B JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x340 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x350 DUP3 DUP3 DUP7 PUSH2 0x3C2 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC PUSH2 0x243 JUMP JUMPDEST PUSH2 0x38B DUP2 PUSH2 0x3FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x3D1 JUMPI POP DUP2 PUSH2 0x1D3 JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x3E1 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xFE SWAP2 SWAP1 PUSH2 0x550 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE PUSH2 0x468 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x455243313936373A206E657720696D706C656D656E746174696F6E206973206E PUSH1 0x44 DUP3 ADD MSTORE PUSH13 0x1BDD08184818DBDB9D1C9858DD PUSH1 0x9A SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xFE JUMP JUMPDEST PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x4BD JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4D3 JUMPI DUP4 DUP5 REVERT JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x4EF JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x502 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x510 JUMPI DUP5 DUP6 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x521 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x546 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x56F DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x583 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x59E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x586 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x277 JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212203E1938 PUSH19 0x2ABE7A1266A6059456B8E2596F1CCD82DDBF52 DUP9 0x23 POP LOG2 PUSH29 0x535C239964736F6C634300080200330000000000000000000000000000 ","sourceMap":"203:881:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2898:11:45;:9;:11::i;:::-;203:881:89;;2675:11:45;:9;:11::i;710:367:89:-;;;;;;:::i;:::-;;:::i;601:101::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1287:32:103;;;1269:51;;1257:2;1242:18;601:101:89;;;;;;;2322:110:45;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;710:367:89:-;340:11;:9;:11::i;:::-;-1:-1:-1;;;;;326:25:89;:10;-1:-1:-1;;;;;326:25:89;;304:88;;;;-1:-1:-1;;;304:88:89;;2230:2:103;304:88:89;;;2212:21:103;2269:2;2249:18;;;2242:30;2308:25;2288:18;;;2281:53;2351:18;;304:88:89;;;;;;;;;855:25:::1;884:17;:15;:17::i;:::-;855:46;;914:48;932:17;951:4;;914:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;957:4:89::1;::::0;-1:-1:-1;914:17:89::1;::::0;-1:-1:-1;;914:48:89:i:1;:::-;980:89;::::0;;-1:-1:-1;;;;;1561:15:103;;;1543:34;;1613:15;;1608:2;1593:18;;1586:43;980:89:89::1;::::0;1478:18:103;980:89:89::1;;;;;;;403:1;710:367:::0;;;:::o;601:101::-;650:7;677:17;:15;:17::i;:::-;670:24;;601:101;:::o;6570:198:58:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:58:o;1614:190:60:-;1784:4;1760:38::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;:23;;;1175:320::o;1148:140:43:-;1215:12;1246:35;:33;:35::i;948:895:45:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27;1607:220;;;1027:810;:::o;4108:122:44:-;4152:7;3842:66;4178:39;:45;-1:-1:-1;;;;;4178:45:44;;-1:-1:-1;4108:122:44;:::o;2183:295::-;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;:53::i;:::-;;2183:295;;;:::o;6954:387:58:-;7095:12;-1:-1:-1;;;;;1465:19:58;;;7119:69;;;;-1:-1:-1;;;7119:69:58;;2996:2:103;7119:69:58;;;2978:21:103;3035:2;3015:18;;;3008:30;3074:34;3054:18;;;3047:62;-1:-1:-1;;;3125:18:103;;;3118:36;3171:19;;7119:69:58;2968:228:103;7119:69:58;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:58;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:67;;;;7283:51;7300:7;7309:10;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:58:o;1301:140:44:-;1354:7;1030:66;1380:48;1760:38:60;1897:152:44;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:44;;;;;;;;1897:152;:::o;7561:742:58:-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:58;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:58;;;;;;;;:::i;1532:259:44:-;-1:-1:-1;;;;;1465:19:58;;;1605:95:44;;;;-1:-1:-1;;;1605:95:44;;2582:2:103;1605:95:44;;;2564:21:103;2621:2;2601:18;;;2594:30;2660:34;2640:18;;;2633:62;-1:-1:-1;;;2711:18:103;;;2704:43;2764:19;;1605:95:44;2554:235:103;1605:95:44;1030:66;1710:74;;-1:-1:-1;;;;;;1710:74:44;-1:-1:-1;;;;;1710:74:44;;;;;;;;;;1532:259::o;14:825:103:-;;;;162:2;150:9;141:7;137:23;133:32;130:2;;;183:6;175;168:22;130:2;214:23;;-1:-1:-1;;;;;266:31:103;;256:42;;246:2;;317:6;309;302:22;246:2;345:5;-1:-1:-1;401:2:103;386:18;;373:32;424:18;454:14;;;451:2;;;486:6;478;471:22;451:2;529:6;518:9;514:22;504:32;;574:7;567:4;563:2;559:13;555:27;545:2;;601:6;593;586:22;545:2;646;633:16;672:2;664:6;661:14;658:2;;;693:6;685;678:22;658:2;743:7;738:2;729:6;725:2;721:15;717:24;714:37;711:2;;;769:6;761;754:22;711:2;805;801;797:11;787:21;;827:6;817:16;;;;;120:719;;;;;:::o;844:274::-;;1011:6;1005:13;1027:53;1073:6;1068:3;1061:4;1053:6;1049:17;1027:53;:::i;:::-;1096:16;;;;;981:137;-1:-1:-1;;981:137:103:o;1640:383::-;;1789:2;1778:9;1771:21;1821:6;1815:13;1864:6;1859:2;1848:9;1844:18;1837:34;1880:66;1939:6;1934:2;1923:9;1919:18;1914:2;1906:6;1902:15;1880:66;:::i;:::-;2007:2;1986:15;-1:-1:-1;;1982:29:103;1967:45;;;;2014:2;1963:54;;1761:262;-1:-1:-1;;1761:262:103:o;3201:258::-;3273:1;3283:113;3297:6;3294:1;3291:13;3283:113;;;3373:11;;;3367:18;3354:11;;;3347:39;3319:2;3312:10;3283:113;;;3414:6;3411:1;3408:13;3405:2;;;-1:-1:-1;;3449:1:103;3431:16;;3424:27;3254:205::o"},"methodIdentifiers":{"implementation()":"5c60da1b","upgradeToAndCall(address,bytes)":"4f1ef286"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encoded_initializer\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oldImplementation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newImplemntation\",\"type\":\"address\"}],\"name\":\"LogCoreContractUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/CoreProxy.sol\":\"CoreProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/shared/ICoreProxy.sol\":{\"keccak256\":\"0xf223e92c2b295866c5826c62b63874f6822bd218d58fcc78b5792c0c6c682317\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6c3958aa0390c9e535c2892522729795fe5ed956f7e31409b339b19ab7bf1d5b\",\"dweb:/ipfs/QmW6ie3Gp1wKnAyAC1eciNfbHZJa9NtC2bd6fRv75PFHPh\"]},\"@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"contracts/shared/CoreProxy.sol\":{\"keccak256\":\"0xc688443620597ee1251e513d6cf44c2c16d84e797c45afa6ebe4f20333941e1d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://68e998e0a20b0ed578e258eecd36ce6ce4ecfca8c7107263c5124d44804c0dc5\",\"dweb:/ipfs/QmNpvZzWeZBuQsatcGgytRxtjHAeocHJsJcztugSYABpFy\"]}},\"version\":1}"}},"contracts/shared/TransferHelper.sol":{"TransferHelper":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"callSuccess","type":"bool"},{"indexed":false,"internalType":"uint256","name":"returnDataLength","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"LogTransferHelperCallFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tokenIsContract","type":"bool"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"LogTransferHelperInputValidation1Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allowance","type":"uint256"}],"name":"LogTransferHelperInputValidation2Failed","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd7fbdf31ee1e4bfbfa5b4bef9f2c1150e2a776badabfd872b32c5ef7a2de43a64736f6c63430008020033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD PUSH32 0xBDF31EE1E4BFBFA5B4BEF9F2C1150E2A776BADABFD872B32C5EF7A2DE43A6473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"595:1742:90:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;595:1742:90;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd7fbdf31ee1e4bfbfa5b4bef9f2c1150e2a776badabfd872b32c5ef7a2de43a64736f6c63430008020033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCD PUSH32 0xBDF31EE1E4BFBFA5B4BEF9F2C1150E2A776BADABFD872B32C5EF7A2DE43A6473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"595:1742:90:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callSuccess\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"returnDataLength\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"LogTransferHelperCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"tokenIsContract\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"LogTransferHelperInputValidation1Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"}],\"name\":\"LogTransferHelperInputValidation2Failed\",\"type\":\"event\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/TransferHelper.sol\":\"TransferHelper\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]}},\"version\":1}"}},"contracts/shared/WithRegistry.sol":{"WithRegistry":{"abi":[{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractFromRegistry","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:326:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:229:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"268:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"277:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"285:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"270:6:103"},"nodeType":"YulFunctionCall","src":"270:22:103"},"nodeType":"YulExpressionStatement","src":"270:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"238:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"249:3:103"},"nodeType":"YulFunctionCall","src":"249:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"245:3:103"},"nodeType":"YulFunctionCall","src":"245:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"234:3:103"},"nodeType":"YulFunctionCall","src":"234:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"224:2:103"},"nodeType":"YulFunctionCall","src":"224:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"217:6:103"},"nodeType":"YulFunctionCall","src":"217:50:103"},"nodeType":"YulIf","src":"214:2:103"},{"nodeType":"YulAssignment","src":"303:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"313:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:310:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60a060405234801561001057600080fd5b5060405161023e38038061023e83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6101a9610095600039600081816040015260a501526101a96000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063a5b25e711461007e575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61006261008c36600461015b565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b1580156100ef57600080fd5b505afa158015610103573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610127919061012d565b92915050565b60006020828403121561013e578081fd5b81516001600160a01b0381168114610154578182fd5b9392505050565b60006020828403121561016c578081fd5b503591905056fea264697066735822122073f6d3467796894695daf3d0106c32b32e072c548ba560293d99c61a987563a964736f6c63430008020033","opcodes":"PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x23E CODESIZE SUB DUP1 PUSH2 0x23E DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x44 JUMP JUMPDEST PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH2 0x72 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x55 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6B JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x1A9 PUSH2 0x95 PUSH1 0x0 CODECOPY PUSH1 0x0 DUP2 DUP2 PUSH1 0x40 ADD MSTORE PUSH1 0xA5 ADD MSTORE PUSH2 0x1A9 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x62 PUSH2 0x8C CALLDATASIZE PUSH1 0x4 PUSH2 0x15B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x103 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x12D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x154 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xF6D3467796894695DAF3D0106C32B32E072C548B 0xA5 PUSH1 0x29 RETURNDATASIZE SWAP10 0xC6 BYTE SWAP9 PUSH22 0x63A964736F6C63430008020033000000000000000000 ","sourceMap":"130:1780:91:-:0;;;1259:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1300:31;;-1:-1:-1;;;;;;1300:31:91;;;130:1780;;14:310:103;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:103;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:103:o;:::-;130:1780:91;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1137:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:229:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"268:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"277:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"285:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"270:6:103"},"nodeType":"YulFunctionCall","src":"270:22:103"},"nodeType":"YulExpressionStatement","src":"270:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"227:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"238:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"253:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"258:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"249:3:103"},"nodeType":"YulFunctionCall","src":"249:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"262:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"245:3:103"},"nodeType":"YulFunctionCall","src":"245:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"234:3:103"},"nodeType":"YulFunctionCall","src":"234:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"224:2:103"},"nodeType":"YulFunctionCall","src":"224:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"217:6:103"},"nodeType":"YulFunctionCall","src":"217:50:103"},"nodeType":"YulIf","src":"214:2:103"},{"nodeType":"YulAssignment","src":"303:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"313:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"303:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:310:103"},{"body":{"nodeType":"YulBlock","src":"399:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"445:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"454:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"462:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"447:6:103"},"nodeType":"YulFunctionCall","src":"447:22:103"},"nodeType":"YulExpressionStatement","src":"447:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"420:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"429:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"416:3:103"},"nodeType":"YulFunctionCall","src":"416:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"441:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"412:3:103"},"nodeType":"YulFunctionCall","src":"412:32:103"},"nodeType":"YulIf","src":"409:2:103"},{"nodeType":"YulAssignment","src":"480:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"503:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"490:12:103"},"nodeType":"YulFunctionCall","src":"490:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"480:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"365:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"376:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"388:6:103","type":""}],"src":"329:190:103"},{"body":{"nodeType":"YulBlock","src":"625:102:103","statements":[{"nodeType":"YulAssignment","src":"635:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"658:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"643:3:103"},"nodeType":"YulFunctionCall","src":"643:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"635:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"677:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"692:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"708:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"713:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"704:3:103"},"nodeType":"YulFunctionCall","src":"704:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"717:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"700:3:103"},"nodeType":"YulFunctionCall","src":"700:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"688:3:103"},"nodeType":"YulFunctionCall","src":"688:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"670:6:103"},"nodeType":"YulFunctionCall","src":"670:51:103"},"nodeType":"YulExpressionStatement","src":"670:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"594:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"605:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"616:4:103","type":""}],"src":"524:203:103"},{"body":{"nodeType":"YulBlock","src":"833:76:103","statements":[{"nodeType":"YulAssignment","src":"843:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"855:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"866:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"851:3:103"},"nodeType":"YulFunctionCall","src":"851:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"843:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"885:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"896:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"878:6:103"},"nodeType":"YulFunctionCall","src":"878:25:103"},"nodeType":"YulExpressionStatement","src":"878:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"802:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"813:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"824:4:103","type":""}],"src":"732:177:103"},{"body":{"nodeType":"YulBlock","src":"1033:102:103","statements":[{"nodeType":"YulAssignment","src":"1043:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1066:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1051:3:103"},"nodeType":"YulFunctionCall","src":"1051:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1043:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1085:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1100:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1116:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1121:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1112:3:103"},"nodeType":"YulFunctionCall","src":"1112:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1125:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1108:3:103"},"nodeType":"YulFunctionCall","src":"1108:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1096:3:103"},"nodeType":"YulFunctionCall","src":"1096:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1078:6:103"},"nodeType":"YulFunctionCall","src":"1078:51:103"},"nodeType":"YulExpressionStatement","src":"1078:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1002:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1013:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1024:4:103","type":""}],"src":"914:221:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{"26665":[{"length":32,"start":64},{"length":32,"start":165}]},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063a5b25e711461007e575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61006261008c36600461015b565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b1580156100ef57600080fd5b505afa158015610103573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610127919061012d565b92915050565b60006020828403121561013e578081fd5b81516001600160a01b0381168114610154578182fd5b9392505050565b60006020828403121561016c578081fd5b503591905056fea264697066735822122073f6d3467796894695daf3d0106c32b32e072c548ba560293d99c61a987563a964736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7B103999 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA5B25E71 EQ PUSH2 0x7E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x62 PUSH2 0x8C CALLDATASIZE PUSH1 0x4 PUSH2 0x15B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH32 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x103 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x12D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x154 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xF6D3467796894695DAF3D0106C32B32E072C548B 0xA5 PUSH1 0x29 RETURNDATASIZE SWAP10 0xC6 BYTE SWAP9 PUSH22 0x63A964736F6C63430008020033000000000000000000 ","sourceMap":"130:1780:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;412:35;;;;;;;;-1:-1:-1;;;;;688:32:103;;;670:51;;658:2;643:18;412:35:91;;;;;;;1344:200;;;;;;:::i;:::-;1502:35;;-1:-1:-1;;;1502:35:91;;;;;878:25:103;;;1465:13:91;;1502:8;-1:-1:-1;;;;;1502:20:91;;;;851:18:103;;1502:35:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1494:43;1344:200;-1:-1:-1;;1344:200:91:o;14:310:103:-;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;189:16;;-1:-1:-1;;;;;234:31:103;;224:42;;214:2;;285:6;277;270:22;214:2;313:5;95:229;-1:-1:-1;;;95:229:103:o;329:190::-;;441:2;429:9;420:7;416:23;412:32;409:2;;;462:6;454;447:22;409:2;-1:-1:-1;490:23:103;;399:120;-1:-1:-1;399:120:103:o"},"methodIdentifiers":{"getContractFromRegistry(bytes32)":"a5b25e71","registry()":"7b103999"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractFromRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/shared/WithRegistry.sol\":\"WithRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"contracts/shared/WithRegistry.sol\":{\"keccak256\":\"0x1d52c8ad35ee149c4a0106ceb1f35d458c196248d02cb8d7b605e9963d47f706\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5780ec200f79f55f69d2e4030ceccccdbf78bc233561d03f334c4361c5425d17\",\"dweb:/ipfs/QmPjynmkMEjD9GHpreVLpWuK6qncwkKwAtNyYCyoeyzkHZ\"]}},\"version\":1}"}},"contracts/test/TestCoin.sol":{"TestCoin":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1172:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:33:103","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:61:103"},"nodeType":"YulExpressionStatement","src":"267:61:103"},{"nodeType":"YulAssignment","src":"337:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"337:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:355:103"},{"body":{"nodeType":"YulBlock","src":"475:76:103","statements":[{"nodeType":"YulAssignment","src":"485:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"508:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"485:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"527:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"538:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"520:6:103"},"nodeType":"YulFunctionCall","src":"520:25:103"},"nodeType":"YulExpressionStatement","src":"520:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"444:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"455:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"466:4:103","type":""}],"src":"374:177:103"},{"body":{"nodeType":"YulBlock","src":"604:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"639:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"660:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"669:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"674:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"665:3:103"},"nodeType":"YulFunctionCall","src":"665:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"653:6:103"},"nodeType":"YulFunctionCall","src":"653:33:103"},"nodeType":"YulExpressionStatement","src":"653:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"706:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"709:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"699:6:103"},"nodeType":"YulFunctionCall","src":"699:15:103"},"nodeType":"YulExpressionStatement","src":"699:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"734:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"739:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"727:6:103"},"nodeType":"YulFunctionCall","src":"727:17:103"},"nodeType":"YulExpressionStatement","src":"727:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"620:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"627:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"623:3:103"},"nodeType":"YulFunctionCall","src":"623:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"617:2:103"},"nodeType":"YulFunctionCall","src":"617:13:103"},"nodeType":"YulIf","src":"614:2:103"},{"nodeType":"YulAssignment","src":"763:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"774:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"777:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"770:3:103"},"nodeType":"YulFunctionCall","src":"770:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"763:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"587:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"590:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"596:3:103","type":""}],"src":"556:229:103"},{"body":{"nodeType":"YulBlock","src":"845:325:103","statements":[{"nodeType":"YulAssignment","src":"855:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"869:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"875:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"865:3:103"},"nodeType":"YulFunctionCall","src":"865:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"855:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"886:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"916:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"922:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"912:3:103"},"nodeType":"YulFunctionCall","src":"912:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"890:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"963:31:103","statements":[{"nodeType":"YulAssignment","src":"965:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"979:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"987:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"975:3:103"},"nodeType":"YulFunctionCall","src":"975:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"965:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"943:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"936:6:103"},"nodeType":"YulFunctionCall","src":"936:26:103"},"nodeType":"YulIf","src":"933:2:103"},{"body":{"nodeType":"YulBlock","src":"1053:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1074:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1081:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1086:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1077:3:103"},"nodeType":"YulFunctionCall","src":"1077:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1067:6:103"},"nodeType":"YulFunctionCall","src":"1067:31:103"},"nodeType":"YulExpressionStatement","src":"1067:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1118:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1121:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1111:6:103"},"nodeType":"YulFunctionCall","src":"1111:15:103"},"nodeType":"YulExpressionStatement","src":"1111:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1146:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1149:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1139:6:103"},"nodeType":"YulFunctionCall","src":"1139:15:103"},"nodeType":"YulExpressionStatement","src":"1139:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1009:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1032:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1040:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1029:2:103"},"nodeType":"YulFunctionCall","src":"1029:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1006:2:103"},"nodeType":"YulFunctionCall","src":"1006:38:103"},"nodeType":"YulIf","src":"1003:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"825:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"834:6:103","type":""}],"src":"790:380:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040518060400160405280600a815260200169546573742044756d6d7960b01b8152506040518060400160405280600381526020016254445960e81b81525081600390805190602001906200006992919062000199565b5080516200007f90600490602084019062000199565b505050620000a762000096620000ad60201b60201c565b69d3c21bcecceda1000000620000b1565b620002a1565b3390565b6001600160a01b0382166200010c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012091906200023f565b90915550506001600160a01b038216600090815260208190526040812080548392906200014f9084906200023f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001a79062000264565b90600052602060002090601f016020900481019282620001cb576000855562000216565b82601f10620001e657805160ff191683800117855562000216565b8280016001018555821562000216579182015b8281111562000216578251825591602001919060010190620001f9565b506200022492915062000228565b5090565b5b8082111562000224576000815560010162000229565b600082198211156200025f57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200027957607f821691505b602082108114156200029b57634e487b7160e01b600052602260045260246000fd5b50919050565b61092080620002b16000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101cc578063a9059cbb146101df578063dd62ed3e146101f2578063f76f8d7814610205576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610227565b6040516101049190610838565b60405180910390f35b61012061011b36600461080f565b6102b9565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d4565b6102d1565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461080f565b6102f5565b610134610196366004610781565b610317565b6100f7610336565b6100f76040518060400160405280600a815260200169546573742044756d6d7960b01b81525081565b6101206101da36600461080f565b610345565b6101206101ed36600461080f565b6103c5565b6101346102003660046107a2565b6103d3565b6100f76040518060400160405280600381526020016254445960e81b81525081565b606060038054610236906108af565b80601f0160208091040260200160405190810160405280929190818152602001828054610262906108af565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000336102c78185856103fe565b5060019392505050565b6000336102df858285610522565b6102ea85858561059c565b506001949350505050565b6000336102c781858561030883836103d3565b610312919061088b565b6103fe565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610236906108af565b6000338161035382866103d3565b9050838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ea82868684036103fe565b6000336102c781858561059c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166104c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052e84846103d3565b9050600019811461059657818110156105895760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b61059684848484036103fe565b50505050565b6001600160a01b0383166106005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b0382166106625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156106da5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071190849061088b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075d91815260200190565b60405180910390a3610596565b80356001600160a01b038116811461033157600080fd5b600060208284031215610792578081fd5b61079b8261076a565b9392505050565b600080604083850312156107b4578081fd5b6107bd8361076a565b91506107cb6020840161076a565b90509250929050565b6000806000606084860312156107e8578081fd5b6107f18461076a565b92506107ff6020850161076a565b9150604084013590509250925092565b60008060408385031215610821578182fd5b61082a8361076a565b946020939093013593505050565b6000602080835283518082850152825b8181101561086457858101830151858201604001528201610848565b818111156108755783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108aa57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c357607f821691505b602082108114156108e457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220bc4a89f4c007a366f56184c546e091f3566d682752848dd871a3ce1c929429d464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x546573742044756D6D79 PUSH1 0xB0 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544459 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x69 SWAP3 SWAP2 SWAP1 PUSH3 0x199 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x7F SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x199 JUMP JUMPDEST POP POP POP PUSH3 0xA7 PUSH3 0x96 PUSH3 0xAD PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH10 0xD3C21BCECCEDA1000000 PUSH3 0xB1 JUMP JUMPDEST PUSH3 0x2A1 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x10C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x120 SWAP2 SWAP1 PUSH3 0x23F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH3 0x14F SWAP1 DUP5 SWAP1 PUSH3 0x23F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x1A7 SWAP1 PUSH3 0x264 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x1CB JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x216 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1E6 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x216 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x216 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x216 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1F9 JUMP JUMPDEST POP PUSH3 0x224 SWAP3 SWAP2 POP PUSH3 0x228 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x224 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x229 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x25F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x279 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x29B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x920 DUP1 PUSH3 0x2B1 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F2 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x205 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x838 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x7D4 JUMP JUMPDEST PUSH2 0x2D1 JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x781 JUMP JUMPDEST PUSH2 0x317 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x336 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x546573742044756D6D79 PUSH1 0xB0 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x345 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1ED CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x3C5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x200 CALLDATASIZE PUSH1 0x4 PUSH2 0x7A2 JUMP JUMPDEST PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544459 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0x8AF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0x8AF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x3FE JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2DF DUP6 DUP3 DUP6 PUSH2 0x522 JUMP JUMPDEST PUSH2 0x2EA DUP6 DUP6 DUP6 PUSH2 0x59C JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x308 DUP4 DUP4 PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x312 SWAP2 SWAP1 PUSH2 0x88B JUMP JUMPDEST PUSH2 0x3FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x353 DUP3 DUP7 PUSH2 0x3D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2EA DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3FE JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x59C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x460 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP5 DUP5 PUSH2 0x3D3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x596 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x589 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH2 0x596 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3FE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x600 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x711 SWAP1 DUP5 SWAP1 PUSH2 0x88B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x75D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x596 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x792 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x79B DUP3 PUSH2 0x76A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7B4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7BD DUP4 PUSH2 0x76A JUMP JUMPDEST SWAP2 POP PUSH2 0x7CB PUSH1 0x20 DUP5 ADD PUSH2 0x76A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7E8 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7F1 DUP5 PUSH2 0x76A JUMP JUMPDEST SWAP3 POP PUSH2 0x7FF PUSH1 0x20 DUP6 ADD PUSH2 0x76A JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x821 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x82A DUP4 PUSH2 0x76A JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x864 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x848 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x875 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x8AA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x8C3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBC 0x4A DUP10 DELEGATECALL 0xC0 SMOD LOG3 PUSH7 0xF56184C546E091 RETURN JUMP PUSH14 0x682752848DD871A3CE1C929429D4 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"125:329:92:-:0;;;312:139;;;;;;;;;;341:4;;;;;;;;;;;;;-1:-1:-1;;;341:4:92;;;347:6;;;;;;;;;;;;;-1:-1:-1;;;347:6:92;;;2052:5:49;2044;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;371:72:92::1;391:12;:10;;;:12;;:::i;:::-;297:6;371:5;:72::i;:::-;125:329:::0;;640:96:59;719:10;640:96;:::o;8402:389:49:-;-1:-1:-1;;;;;8485:21:49;;8477:65;;;;-1:-1:-1;;;8477:65:49;;216:2:103;8477:65:49;;;198:21:103;255:2;235:18;;;228:30;294:33;274:18;;;267:61;345:18;;8477:65:49;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:49;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:49;;520:25:103;;;-1:-1:-1;;;;;8688:37:49;;;8705:1;;8688:37;;508:2:103;493:18;8688:37:49;;;;;;;8402:389;;:::o;125:329:92:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;125:329:92;;;-1:-1:-1;125:329:92;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;556:229:103;;627:1;623:6;620:1;617:13;614:2;;;-1:-1:-1;;;653:33:103;;709:4;706:1;699:15;739:4;660:3;727:17;614:2;-1:-1:-1;770:9:103;;604:181::o;790:380::-;875:1;865:12;;922:1;912:12;;;933:2;;987:4;979:6;975:17;965:27;;933:2;1040;1032:6;1029:14;1009:18;1006:38;1003:2;;;1086:10;1081:3;1077:20;1074:1;1067:31;1121:4;1118:1;1111:15;1149:4;1146:1;1139:15;1003:2;;845:325;;;:::o;:::-;125:329:92;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5856:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1375:92:103","statements":[{"nodeType":"YulAssignment","src":"1385:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:103"},"nodeType":"YulFunctionCall","src":"1393:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:103"},"nodeType":"YulFunctionCall","src":"1445:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:103"},"nodeType":"YulFunctionCall","src":"1438:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:103"},"nodeType":"YulFunctionCall","src":"1420:41:103"},"nodeType":"YulExpressionStatement","src":"1420:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:103","type":""}],"src":"1280:187:103"},{"body":{"nodeType":"YulBlock","src":"1593:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:103"},"nodeType":"YulFunctionCall","src":"1624:21:103"},"nodeType":"YulExpressionStatement","src":"1624:21:103"},{"nodeType":"YulVariableDeclaration","src":"1654:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:103"},"nodeType":"YulFunctionCall","src":"1668:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:103"},"nodeType":"YulFunctionCall","src":"1697:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:103"},"nodeType":"YulFunctionCall","src":"1690:34:103"},"nodeType":"YulExpressionStatement","src":"1690:34:103"},{"nodeType":"YulVariableDeclaration","src":"1733:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:103"},"nodeType":"YulFunctionCall","src":"1826:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:103"},"nodeType":"YulFunctionCall","src":"1854:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:103"},"nodeType":"YulFunctionCall","src":"1819:66:103"},"nodeType":"YulExpressionStatement","src":"1819:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:103"},"nodeType":"YulFunctionCall","src":"1763:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:103","statements":[{"nodeType":"YulAssignment","src":"1779:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:103"},"nodeType":"YulFunctionCall","src":"1784:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:103","statements":[]},"src":"1755:140:103"},{"body":{"nodeType":"YulBlock","src":"1929:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:103"},"nodeType":"YulFunctionCall","src":"1954:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:103"},"nodeType":"YulFunctionCall","src":"1950:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:103"},"nodeType":"YulFunctionCall","src":"1943:45:103"},"nodeType":"YulExpressionStatement","src":"1943:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:103"},"nodeType":"YulFunctionCall","src":"1907:13:103"},"nodeType":"YulIf","src":"1904:2:103"},{"nodeType":"YulAssignment","src":"2007:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:103"},"nodeType":"YulFunctionCall","src":"2038:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:103"},"nodeType":"YulFunctionCall","src":"2055:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:103"},"nodeType":"YulFunctionCall","src":"2019:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:103"},"nodeType":"YulFunctionCall","src":"2015:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:103","type":""}],"src":"1472:603:103"},{"body":{"nodeType":"YulBlock","src":"2254:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:103"},"nodeType":"YulFunctionCall","src":"2264:21:103"},"nodeType":"YulExpressionStatement","src":"2264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:103"},"nodeType":"YulFunctionCall","src":"2294:30:103"},"nodeType":"YulExpressionStatement","src":"2294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:62:103"},"nodeType":"YulExpressionStatement","src":"2333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:103"},"nodeType":"YulFunctionCall","src":"2411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:103"},"nodeType":"YulFunctionCall","src":"2404:33:103"},"nodeType":"YulExpressionStatement","src":"2404:33:103"},{"nodeType":"YulAssignment","src":"2446:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:103"},"nodeType":"YulFunctionCall","src":"2454:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:103","type":""}],"src":"2080:399:103"},{"body":{"nodeType":"YulBlock","src":"2658:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:103"},"nodeType":"YulFunctionCall","src":"2668:21:103"},"nodeType":"YulExpressionStatement","src":"2668:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:103"},"nodeType":"YulFunctionCall","src":"2698:30:103"},"nodeType":"YulExpressionStatement","src":"2698:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:103"},"nodeType":"YulFunctionCall","src":"2737:62:103"},"nodeType":"YulExpressionStatement","src":"2737:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:103"},"nodeType":"YulFunctionCall","src":"2815:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:103"},"nodeType":"YulFunctionCall","src":"2808:32:103"},"nodeType":"YulExpressionStatement","src":"2808:32:103"},{"nodeType":"YulAssignment","src":"2849:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:103"},"nodeType":"YulFunctionCall","src":"2857:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:103","type":""}],"src":"2484:398:103"},{"body":{"nodeType":"YulBlock","src":"3061:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:21:103"},"nodeType":"YulExpressionStatement","src":"3071:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:103"},"nodeType":"YulFunctionCall","src":"3108:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:103"},"nodeType":"YulFunctionCall","src":"3101:30:103"},"nodeType":"YulExpressionStatement","src":"3101:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:103"},"nodeType":"YulFunctionCall","src":"3140:59:103"},"nodeType":"YulExpressionStatement","src":"3140:59:103"},{"nodeType":"YulAssignment","src":"3208:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:103"},"nodeType":"YulFunctionCall","src":"3216:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:103","type":""}],"src":"2887:353:103"},{"body":{"nodeType":"YulBlock","src":"3419:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:21:103"},"nodeType":"YulExpressionStatement","src":"3429:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:103"},"nodeType":"YulFunctionCall","src":"3459:30:103"},"nodeType":"YulExpressionStatement","src":"3459:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:62:103"},"nodeType":"YulExpressionStatement","src":"3498:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:103"},"nodeType":"YulFunctionCall","src":"3569:36:103"},"nodeType":"YulExpressionStatement","src":"3569:36:103"},{"nodeType":"YulAssignment","src":"3614:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:103","type":""}],"src":"3245:402:103"},{"body":{"nodeType":"YulBlock","src":"3826:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:103"},"nodeType":"YulFunctionCall","src":"3836:21:103"},"nodeType":"YulExpressionStatement","src":"3836:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:103"},"nodeType":"YulFunctionCall","src":"3873:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:103"},"nodeType":"YulFunctionCall","src":"3866:30:103"},"nodeType":"YulExpressionStatement","src":"3866:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:103"},"nodeType":"YulFunctionCall","src":"3912:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:103"},"nodeType":"YulFunctionCall","src":"3905:62:103"},"nodeType":"YulExpressionStatement","src":"3905:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:103"},"nodeType":"YulFunctionCall","src":"3983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:35:103"},"nodeType":"YulExpressionStatement","src":"3976:35:103"},{"nodeType":"YulAssignment","src":"4020:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:103","type":""}],"src":"3652:401:103"},{"body":{"nodeType":"YulBlock","src":"4232:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:103"},"nodeType":"YulFunctionCall","src":"4242:21:103"},"nodeType":"YulExpressionStatement","src":"4242:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:103"},"nodeType":"YulFunctionCall","src":"4279:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:103"},"nodeType":"YulFunctionCall","src":"4272:30:103"},"nodeType":"YulExpressionStatement","src":"4272:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:103"},"nodeType":"YulFunctionCall","src":"4318:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:103"},"nodeType":"YulFunctionCall","src":"4311:62:103"},"nodeType":"YulExpressionStatement","src":"4311:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:103"},"nodeType":"YulFunctionCall","src":"4382:34:103"},"nodeType":"YulExpressionStatement","src":"4382:34:103"},{"nodeType":"YulAssignment","src":"4425:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:103"},"nodeType":"YulFunctionCall","src":"4433:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:103","type":""}],"src":"4058:400:103"},{"body":{"nodeType":"YulBlock","src":"4637:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:21:103"},"nodeType":"YulExpressionStatement","src":"4647:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:103"},"nodeType":"YulFunctionCall","src":"4677:30:103"},"nodeType":"YulExpressionStatement","src":"4677:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:103"},"nodeType":"YulFunctionCall","src":"4723:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:103"},"nodeType":"YulFunctionCall","src":"4716:62:103"},"nodeType":"YulExpressionStatement","src":"4716:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:103"},"nodeType":"YulFunctionCall","src":"4794:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:103"},"nodeType":"YulFunctionCall","src":"4787:35:103"},"nodeType":"YulExpressionStatement","src":"4787:35:103"},{"nodeType":"YulAssignment","src":"4831:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:103"},"nodeType":"YulFunctionCall","src":"4839:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:103","type":""}],"src":"4463:401:103"},{"body":{"nodeType":"YulBlock","src":"4970:76:103","statements":[{"nodeType":"YulAssignment","src":"4980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4988:3:103"},"nodeType":"YulFunctionCall","src":"4988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5015:6:103"},"nodeType":"YulFunctionCall","src":"5015:25:103"},"nodeType":"YulExpressionStatement","src":"5015:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4961:4:103","type":""}],"src":"4869:177:103"},{"body":{"nodeType":"YulBlock","src":"5148:87:103","statements":[{"nodeType":"YulAssignment","src":"5158:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:103"},"nodeType":"YulFunctionCall","src":"5166:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5223:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5211:3:103"},"nodeType":"YulFunctionCall","src":"5211:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:103"},"nodeType":"YulFunctionCall","src":"5193:36:103"},"nodeType":"YulExpressionStatement","src":"5193:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5117:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5128:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5139:4:103","type":""}],"src":"5051:184:103"},{"body":{"nodeType":"YulBlock","src":"5288:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"5323:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5344:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:103"},"nodeType":"YulFunctionCall","src":"5349:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:103"},"nodeType":"YulFunctionCall","src":"5337:33:103"},"nodeType":"YulExpressionStatement","src":"5337:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5390:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5393:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:103"},"nodeType":"YulFunctionCall","src":"5383:15:103"},"nodeType":"YulExpressionStatement","src":"5383:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5418:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5423:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5411:6:103"},"nodeType":"YulFunctionCall","src":"5411:17:103"},"nodeType":"YulExpressionStatement","src":"5411:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5304:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5311:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5307:3:103"},"nodeType":"YulFunctionCall","src":"5307:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5301:2:103"},"nodeType":"YulFunctionCall","src":"5301:13:103"},"nodeType":"YulIf","src":"5298:2:103"},{"nodeType":"YulAssignment","src":"5447:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5458:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5461:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:103"},"nodeType":"YulFunctionCall","src":"5454:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5447:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5271:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5274:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5280:3:103","type":""}],"src":"5240:229:103"},{"body":{"nodeType":"YulBlock","src":"5529:325:103","statements":[{"nodeType":"YulAssignment","src":"5539:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5553:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5559:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5549:3:103"},"nodeType":"YulFunctionCall","src":"5549:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5539:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5570:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5606:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5596:3:103"},"nodeType":"YulFunctionCall","src":"5596:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5574:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5647:31:103","statements":[{"nodeType":"YulAssignment","src":"5649:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5663:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5671:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5659:3:103"},"nodeType":"YulFunctionCall","src":"5659:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5649:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5627:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5620:6:103"},"nodeType":"YulFunctionCall","src":"5620:26:103"},"nodeType":"YulIf","src":"5617:2:103"},{"body":{"nodeType":"YulBlock","src":"5737:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5765:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5770:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5761:3:103"},"nodeType":"YulFunctionCall","src":"5761:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5751:6:103"},"nodeType":"YulFunctionCall","src":"5751:31:103"},"nodeType":"YulExpressionStatement","src":"5751:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5802:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5805:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5795:6:103"},"nodeType":"YulFunctionCall","src":"5795:15:103"},"nodeType":"YulExpressionStatement","src":"5795:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5833:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5823:6:103"},"nodeType":"YulFunctionCall","src":"5823:15:103"},"nodeType":"YulExpressionStatement","src":"5823:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5693:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5716:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5724:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5713:2:103"},"nodeType":"YulFunctionCall","src":"5713:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5690:2:103"},"nodeType":"YulFunctionCall","src":"5690:38:103"},"nodeType":"YulIf","src":"5687:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5509:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5518:6:103","type":""}],"src":"5474:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101cc578063a9059cbb146101df578063dd62ed3e146101f2578063f76f8d7814610205576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610227565b6040516101049190610838565b60405180910390f35b61012061011b36600461080f565b6102b9565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d4565b6102d1565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461080f565b6102f5565b610134610196366004610781565b610317565b6100f7610336565b6100f76040518060400160405280600a815260200169546573742044756d6d7960b01b81525081565b6101206101da36600461080f565b610345565b6101206101ed36600461080f565b6103c5565b6101346102003660046107a2565b6103d3565b6100f76040518060400160405280600381526020016254445960e81b81525081565b606060038054610236906108af565b80601f0160208091040260200160405190810160405280929190818152602001828054610262906108af565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000336102c78185856103fe565b5060019392505050565b6000336102df858285610522565b6102ea85858561059c565b506001949350505050565b6000336102c781858561030883836103d3565b610312919061088b565b6103fe565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610236906108af565b6000338161035382866103d3565b9050838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ea82868684036103fe565b6000336102c781858561059c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166104c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052e84846103d3565b9050600019811461059657818110156105895760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b61059684848484036103fe565b50505050565b6001600160a01b0383166106005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b0382166106625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156106da5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071190849061088b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075d91815260200190565b60405180910390a3610596565b80356001600160a01b038116811461033157600080fd5b600060208284031215610792578081fd5b61079b8261076a565b9392505050565b600080604083850312156107b4578081fd5b6107bd8361076a565b91506107cb6020840161076a565b90509250929050565b6000806000606084860312156107e8578081fd5b6107f18461076a565b92506107ff6020850161076a565b9150604084013590509250925092565b60008060408385031215610821578182fd5b61082a8361076a565b946020939093013593505050565b6000602080835283518082850152825b8181101561086457858101830151858201604001528201610848565b818111156108755783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108aa57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c357607f821691505b602082108114156108e457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220bc4a89f4c007a366f56184c546e091f3566d682752848dd871a3ce1c929429d464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F2 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x205 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x838 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x7D4 JUMP JUMPDEST PUSH2 0x2D1 JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x781 JUMP JUMPDEST PUSH2 0x317 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x336 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x546573742044756D6D79 PUSH1 0xB0 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1DA CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x345 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1ED CALLDATASIZE PUSH1 0x4 PUSH2 0x80F JUMP JUMPDEST PUSH2 0x3C5 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x200 CALLDATASIZE PUSH1 0x4 PUSH2 0x7A2 JUMP JUMPDEST PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544459 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0x8AF JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0x8AF JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x3FE JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2DF DUP6 DUP3 DUP6 PUSH2 0x522 JUMP JUMPDEST PUSH2 0x2EA DUP6 DUP6 DUP6 PUSH2 0x59C JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x308 DUP4 DUP4 PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x312 SWAP2 SWAP1 PUSH2 0x88B JUMP JUMPDEST PUSH2 0x3FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0x8AF JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x353 DUP3 DUP7 PUSH2 0x3D3 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2EA DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3FE JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C7 DUP2 DUP6 DUP6 PUSH2 0x59C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x460 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x52E DUP5 DUP5 PUSH2 0x3D3 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x596 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x589 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH2 0x596 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3FE JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x600 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x662 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3AF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x711 SWAP1 DUP5 SWAP1 PUSH2 0x88B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x75D SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x596 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x792 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x79B DUP3 PUSH2 0x76A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7B4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7BD DUP4 PUSH2 0x76A JUMP JUMPDEST SWAP2 POP PUSH2 0x7CB PUSH1 0x20 DUP5 ADD PUSH2 0x76A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7E8 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7F1 DUP5 PUSH2 0x76A JUMP JUMPDEST SWAP3 POP PUSH2 0x7FF PUSH1 0x20 DUP6 ADD PUSH2 0x76A JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x821 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x82A DUP4 PUSH2 0x76A JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x864 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x848 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x875 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x8AA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x8C3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBC 0x4A DUP10 DELEGATECALL 0xC0 SMOD LOG3 PUSH7 0xF56184C546E091 RETURN JUMP PUSH14 0x682752848DD871A3CE1C929429D4 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"125:329:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:49;1375:92:103;3244:106:49;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:49;4970:76:103;5192:286:49;;;;;;:::i;:::-;;:::i;256:47:92:-;;297:6;256:47;;3093:91:49;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:49;5148:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;161:42:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;161:42:92;;;;;6594:427:49;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;210:37:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;210:37:92;;;;;2156:98:49;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:49;;5192:286;-1:-1:-1;;;;5192:286:49:o;5873:234::-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;4665:2:103;6803:85:49;;;4647:21:103;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:103;;;4787:35;4839:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;4260:2:103;10233:68:49;;;4242:21:103;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:103;;;4382:34;4433:19;;10233:68:49;4232:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;2686:2:103;10311:68:49;;;2668:21:103;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:103;;;2808:32;2857:19;;10311:68:49;2658:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:103;;;10441:32:49;;4988:18:103;10441:32:49;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;3089:2:103;11010:68:49;;;3071:21:103;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:49;3061:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;3854:2:103;7593:68:49;;;3836:21:103;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:103;;;3976:35;4028:19;;7593:68:49;3826:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;2282:2:103;7671:64:49;;;2264:21:103;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:103;;;2404:33;2454:19;;7671:64:49;2254:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;3447:2:103;7842:72:49;;;3429:21:103;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:103;;;3569:36;3622:19;;7842:72:49;3419:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;5015:25:103;;5003:2;4988:18;;4970:76;8045:26:49;;;;;;;;8082:37;11786:121;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:103:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:103;2038:15;-1:-1:-1;;2034:29:103;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:103:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:103;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:103;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o"},"methodIdentifiers":{"INITIAL_SUPPLY()":"2ff2e9dc","NAME()":"a3f4df7e","SYMBOL()":"f76f8d78","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"INITIAL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYMBOL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestCoin.sol\":\"TestCoin\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/test/TestCoin.sol\":{\"keccak256\":\"0xe784a80ba4235683a529548905fe411d4806df472e2ef352eb43f430dd51b7d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a2a9d54f2975a970ad4b00244021679e35d3041795e4f72df2a3cb323c44d596\",\"dweb:/ipfs/QmbHHdMH1i9Ud5FvvHHKm3HUKahHZsvgzn1oJoeii5YS6f\"]}},\"version\":1}"},"TestCoinX":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1172:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:33:103","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:61:103"},"nodeType":"YulExpressionStatement","src":"267:61:103"},{"nodeType":"YulAssignment","src":"337:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"337:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:355:103"},{"body":{"nodeType":"YulBlock","src":"475:76:103","statements":[{"nodeType":"YulAssignment","src":"485:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"508:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"485:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"527:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"538:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"520:6:103"},"nodeType":"YulFunctionCall","src":"520:25:103"},"nodeType":"YulExpressionStatement","src":"520:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"444:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"455:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"466:4:103","type":""}],"src":"374:177:103"},{"body":{"nodeType":"YulBlock","src":"604:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"639:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"660:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"669:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"674:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"665:3:103"},"nodeType":"YulFunctionCall","src":"665:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"653:6:103"},"nodeType":"YulFunctionCall","src":"653:33:103"},"nodeType":"YulExpressionStatement","src":"653:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"706:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"709:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"699:6:103"},"nodeType":"YulFunctionCall","src":"699:15:103"},"nodeType":"YulExpressionStatement","src":"699:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"734:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"739:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"727:6:103"},"nodeType":"YulFunctionCall","src":"727:17:103"},"nodeType":"YulExpressionStatement","src":"727:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"620:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"627:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"623:3:103"},"nodeType":"YulFunctionCall","src":"623:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"617:2:103"},"nodeType":"YulFunctionCall","src":"617:13:103"},"nodeType":"YulIf","src":"614:2:103"},{"nodeType":"YulAssignment","src":"763:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"774:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"777:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"770:3:103"},"nodeType":"YulFunctionCall","src":"770:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"763:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"587:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"590:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"596:3:103","type":""}],"src":"556:229:103"},{"body":{"nodeType":"YulBlock","src":"845:325:103","statements":[{"nodeType":"YulAssignment","src":"855:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"869:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"875:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"865:3:103"},"nodeType":"YulFunctionCall","src":"865:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"855:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"886:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"916:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"922:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"912:3:103"},"nodeType":"YulFunctionCall","src":"912:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"890:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"963:31:103","statements":[{"nodeType":"YulAssignment","src":"965:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"979:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"987:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"975:3:103"},"nodeType":"YulFunctionCall","src":"975:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"965:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"943:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"936:6:103"},"nodeType":"YulFunctionCall","src":"936:26:103"},"nodeType":"YulIf","src":"933:2:103"},{"body":{"nodeType":"YulBlock","src":"1053:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1074:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1081:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1086:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1077:3:103"},"nodeType":"YulFunctionCall","src":"1077:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1067:6:103"},"nodeType":"YulFunctionCall","src":"1067:31:103"},"nodeType":"YulExpressionStatement","src":"1067:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1118:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1121:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1111:6:103"},"nodeType":"YulFunctionCall","src":"1111:15:103"},"nodeType":"YulExpressionStatement","src":"1111:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1146:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1149:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1139:6:103"},"nodeType":"YulFunctionCall","src":"1139:15:103"},"nodeType":"YulExpressionStatement","src":"1139:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1009:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1032:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1040:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1029:2:103"},"nodeType":"YulFunctionCall","src":"1029:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1006:2:103"},"nodeType":"YulFunctionCall","src":"1006:38:103"},"nodeType":"YulIf","src":"1003:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"825:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"834:6:103","type":""}],"src":"790:380:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b815250604051806040016040528060038152602001620a888b60eb1b81525081600390805190602001906200006b9291906200019b565b508051620000819060049060208401906200019b565b505050620000a962000098620000af60201b60201c565b69d3c21bcecceda1000000620000b3565b620002a3565b3390565b6001600160a01b0382166200010e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000122919062000241565b90915550506001600160a01b038216600090815260208190526040812080548392906200015190849062000241565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001a99062000266565b90600052602060002090601f016020900481019282620001cd576000855562000218565b82601f10620001e857805160ff191683800117855562000218565b8280016001018555821562000218579182015b8281111562000218578251825591602001919060010190620001fb565b50620002269291506200022a565b5090565b5b808211156200022657600081556001016200022b565b600082198211156200026157634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200027b57607f821691505b602082108114156200029d57634e487b7160e01b600052602260045260246000fd5b50919050565b61092280620002b36000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101ce578063a9059cbb146101e1578063dd62ed3e146101f4578063f76f8d7814610207576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610229565b604051610104919061083a565b60405180910390f35b61012061011b366004610811565b6102bb565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d6565b6102d3565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b610120610183366004610811565b6102f7565b610134610196366004610783565b610319565b6100f7610338565b6100f76040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b81525081565b6101206101dc366004610811565b610347565b6101206101ef366004610811565b6103c7565b6101346102023660046107a4565b6103d5565b6100f7604051806040016040528060038152602001620a888b60eb1b81525081565b606060038054610238906108b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906108b1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b5050505050905090565b6000336102c9818585610400565b5060019392505050565b6000336102e1858285610524565b6102ec85858561059e565b506001949350505050565b6000336102c981858561030a83836103d5565b610314919061088d565b610400565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610238906108b1565b6000338161035582866103d5565b9050838110156103ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ec8286868403610400565b6000336102c981858561059e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b1565b6001600160a01b0382166104c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053084846103d5565b90506000198114610598578181101561058b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103b1565b6105988484848403610400565b50505050565b6001600160a01b0383166106025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b1565b6001600160a01b0382166106645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b1565b6001600160a01b038316600090815260208190526040902054818110156106dc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103b1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071390849061088d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075f91815260200190565b60405180910390a3610598565b80356001600160a01b038116811461033357600080fd5b600060208284031215610794578081fd5b61079d8261076c565b9392505050565b600080604083850312156107b6578081fd5b6107bf8361076c565b91506107cd6020840161076c565b90509250929050565b6000806000606084860312156107ea578081fd5b6107f38461076c565b92506108016020850161076c565b9150604084013590509250925092565b60008060408385031215610823578182fd5b61082c8361076c565b946020939093013593505050565b6000602080835283518082850152825b818110156108665785810183015185820160400152820161084a565b818111156108775783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108ac57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c557607f821691505b602082108114156108e657634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202a8e76e1b4e5b8026b2d39aa0fb86dd6fc4365a817df004296a5841464fe79a864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0xA8CAE6E84088EADADAF240B PUSH1 0xA3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA888B PUSH1 0xEB SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x6B SWAP3 SWAP2 SWAP1 PUSH3 0x19B JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x81 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x19B JUMP JUMPDEST POP POP POP PUSH3 0xA9 PUSH3 0x98 PUSH3 0xAF PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH10 0xD3C21BCECCEDA1000000 PUSH3 0xB3 JUMP JUMPDEST PUSH3 0x2A3 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x10E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x122 SWAP2 SWAP1 PUSH3 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH3 0x151 SWAP1 DUP5 SWAP1 PUSH3 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x1A9 SWAP1 PUSH3 0x266 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x1CD JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x218 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1E8 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x218 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x218 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x218 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1FB JUMP JUMPDEST POP PUSH3 0x226 SWAP3 SWAP2 POP PUSH3 0x22A JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x226 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x22B JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x261 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x27B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x29D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x922 DUP1 PUSH3 0x2B3 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x207 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x229 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x2BB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x7D6 JUMP JUMPDEST PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x2F7 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x783 JUMP JUMPDEST PUSH2 0x319 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x338 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0xA8CAE6E84088EADADAF240B PUSH1 0xA3 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1DC CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x347 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0x7A4 JUMP JUMPDEST PUSH2 0x3D5 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA888B PUSH1 0xEB SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x238 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x264 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2B1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x286 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2B1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x294 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x400 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2E1 DUP6 DUP3 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH2 0x2EC DUP6 DUP6 DUP6 PUSH2 0x59E JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x30A DUP4 DUP4 PUSH2 0x3D5 JUMP JUMPDEST PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x238 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x355 DUP3 DUP7 PUSH2 0x3D5 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2EC DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x400 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x59E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x530 DUP5 DUP5 PUSH2 0x3D5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x598 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x58B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH2 0x598 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x400 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x602 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x664 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x713 SWAP1 DUP5 SWAP1 PUSH2 0x88D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x75F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x598 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x794 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x79D DUP3 PUSH2 0x76C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7B6 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7BF DUP4 PUSH2 0x76C JUMP JUMPDEST SWAP2 POP PUSH2 0x7CD PUSH1 0x20 DUP5 ADD PUSH2 0x76C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7EA JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7F3 DUP5 PUSH2 0x76C JUMP JUMPDEST SWAP3 POP PUSH2 0x801 PUSH1 0x20 DUP6 ADD PUSH2 0x76C JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x823 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x82C DUP4 PUSH2 0x76C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x866 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x84A JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x877 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x8AC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x8C5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A DUP15 PUSH23 0xE1B4E5B8026B2D39AA0FB86DD6FC4365A817DF004296A5 DUP5 EQ PUSH5 0xFE79A86473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"458:332:92:-:0;;;648:139;;;;;;;;;;677:4;;;;;;;;;;;;;-1:-1:-1;;;677:4:92;;;683:6;;;;;;;;;;;;;-1:-1:-1;;;683:6:92;;;2052:5:49;2044;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;707:72:92::1;727:12;:10;;;:12;;:::i;:::-;633:6;707:5;:72::i;:::-;458:332:::0;;640:96:59;719:10;640:96;:::o;8402:389:49:-;-1:-1:-1;;;;;8485:21:49;;8477:65;;;;-1:-1:-1;;;8477:65:49;;216:2:103;8477:65:49;;;198:21:103;255:2;235:18;;;228:30;294:33;274:18;;;267:61;345:18;;8477:65:49;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:49;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:49;;520:25:103;;;-1:-1:-1;;;;;8688:37:49;;;8705:1;;8688:37;;508:2:103;493:18;8688:37:49;;;;;;;8402:389;;:::o;458:332:92:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;458:332:92;;;-1:-1:-1;458:332:92;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;556:229:103;;627:1;623:6;620:1;617:13;614:2;;;-1:-1:-1;;;653:33:103;;709:4;706:1;699:15;739:4;660:3;727:17;614:2;-1:-1:-1;770:9:103;;604:181::o;790:380::-;875:1;865:12;;922:1;912:12;;;933:2;;987:4;979:6;975:17;965:27;;933:2;1040;1032:6;1029:14;1009:18;1006:38;1003:2;;;1086:10;1081:3;1077:20;1074:1;1067:31;1121:4;1118:1;1111:15;1149:4;1146:1;1139:15;1003:2;;845:325;;;:::o;:::-;458:332:92;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5856:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1375:92:103","statements":[{"nodeType":"YulAssignment","src":"1385:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:103"},"nodeType":"YulFunctionCall","src":"1393:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:103"},"nodeType":"YulFunctionCall","src":"1445:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:103"},"nodeType":"YulFunctionCall","src":"1438:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:103"},"nodeType":"YulFunctionCall","src":"1420:41:103"},"nodeType":"YulExpressionStatement","src":"1420:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:103","type":""}],"src":"1280:187:103"},{"body":{"nodeType":"YulBlock","src":"1593:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:103"},"nodeType":"YulFunctionCall","src":"1624:21:103"},"nodeType":"YulExpressionStatement","src":"1624:21:103"},{"nodeType":"YulVariableDeclaration","src":"1654:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:103"},"nodeType":"YulFunctionCall","src":"1668:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:103"},"nodeType":"YulFunctionCall","src":"1697:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:103"},"nodeType":"YulFunctionCall","src":"1690:34:103"},"nodeType":"YulExpressionStatement","src":"1690:34:103"},{"nodeType":"YulVariableDeclaration","src":"1733:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:103"},"nodeType":"YulFunctionCall","src":"1826:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:103"},"nodeType":"YulFunctionCall","src":"1854:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:103"},"nodeType":"YulFunctionCall","src":"1819:66:103"},"nodeType":"YulExpressionStatement","src":"1819:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:103"},"nodeType":"YulFunctionCall","src":"1763:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:103","statements":[{"nodeType":"YulAssignment","src":"1779:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:103"},"nodeType":"YulFunctionCall","src":"1784:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:103","statements":[]},"src":"1755:140:103"},{"body":{"nodeType":"YulBlock","src":"1929:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:103"},"nodeType":"YulFunctionCall","src":"1954:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:103"},"nodeType":"YulFunctionCall","src":"1950:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:103"},"nodeType":"YulFunctionCall","src":"1943:45:103"},"nodeType":"YulExpressionStatement","src":"1943:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:103"},"nodeType":"YulFunctionCall","src":"1907:13:103"},"nodeType":"YulIf","src":"1904:2:103"},{"nodeType":"YulAssignment","src":"2007:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:103"},"nodeType":"YulFunctionCall","src":"2038:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:103"},"nodeType":"YulFunctionCall","src":"2055:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:103"},"nodeType":"YulFunctionCall","src":"2019:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:103"},"nodeType":"YulFunctionCall","src":"2015:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:103","type":""}],"src":"1472:603:103"},{"body":{"nodeType":"YulBlock","src":"2254:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:103"},"nodeType":"YulFunctionCall","src":"2264:21:103"},"nodeType":"YulExpressionStatement","src":"2264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:103"},"nodeType":"YulFunctionCall","src":"2294:30:103"},"nodeType":"YulExpressionStatement","src":"2294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:62:103"},"nodeType":"YulExpressionStatement","src":"2333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:103"},"nodeType":"YulFunctionCall","src":"2411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:103"},"nodeType":"YulFunctionCall","src":"2404:33:103"},"nodeType":"YulExpressionStatement","src":"2404:33:103"},{"nodeType":"YulAssignment","src":"2446:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:103"},"nodeType":"YulFunctionCall","src":"2454:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:103","type":""}],"src":"2080:399:103"},{"body":{"nodeType":"YulBlock","src":"2658:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:103"},"nodeType":"YulFunctionCall","src":"2668:21:103"},"nodeType":"YulExpressionStatement","src":"2668:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:103"},"nodeType":"YulFunctionCall","src":"2698:30:103"},"nodeType":"YulExpressionStatement","src":"2698:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:103"},"nodeType":"YulFunctionCall","src":"2737:62:103"},"nodeType":"YulExpressionStatement","src":"2737:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:103"},"nodeType":"YulFunctionCall","src":"2815:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:103"},"nodeType":"YulFunctionCall","src":"2808:32:103"},"nodeType":"YulExpressionStatement","src":"2808:32:103"},{"nodeType":"YulAssignment","src":"2849:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:103"},"nodeType":"YulFunctionCall","src":"2857:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:103","type":""}],"src":"2484:398:103"},{"body":{"nodeType":"YulBlock","src":"3061:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:21:103"},"nodeType":"YulExpressionStatement","src":"3071:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:103"},"nodeType":"YulFunctionCall","src":"3108:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:103"},"nodeType":"YulFunctionCall","src":"3101:30:103"},"nodeType":"YulExpressionStatement","src":"3101:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:103"},"nodeType":"YulFunctionCall","src":"3140:59:103"},"nodeType":"YulExpressionStatement","src":"3140:59:103"},{"nodeType":"YulAssignment","src":"3208:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:103"},"nodeType":"YulFunctionCall","src":"3216:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:103","type":""}],"src":"2887:353:103"},{"body":{"nodeType":"YulBlock","src":"3419:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:21:103"},"nodeType":"YulExpressionStatement","src":"3429:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:103"},"nodeType":"YulFunctionCall","src":"3459:30:103"},"nodeType":"YulExpressionStatement","src":"3459:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:62:103"},"nodeType":"YulExpressionStatement","src":"3498:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:103"},"nodeType":"YulFunctionCall","src":"3569:36:103"},"nodeType":"YulExpressionStatement","src":"3569:36:103"},{"nodeType":"YulAssignment","src":"3614:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:103","type":""}],"src":"3245:402:103"},{"body":{"nodeType":"YulBlock","src":"3826:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:103"},"nodeType":"YulFunctionCall","src":"3836:21:103"},"nodeType":"YulExpressionStatement","src":"3836:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:103"},"nodeType":"YulFunctionCall","src":"3873:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:103"},"nodeType":"YulFunctionCall","src":"3866:30:103"},"nodeType":"YulExpressionStatement","src":"3866:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:103"},"nodeType":"YulFunctionCall","src":"3912:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:103"},"nodeType":"YulFunctionCall","src":"3905:62:103"},"nodeType":"YulExpressionStatement","src":"3905:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:103"},"nodeType":"YulFunctionCall","src":"3983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:35:103"},"nodeType":"YulExpressionStatement","src":"3976:35:103"},{"nodeType":"YulAssignment","src":"4020:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:103","type":""}],"src":"3652:401:103"},{"body":{"nodeType":"YulBlock","src":"4232:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:103"},"nodeType":"YulFunctionCall","src":"4242:21:103"},"nodeType":"YulExpressionStatement","src":"4242:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:103"},"nodeType":"YulFunctionCall","src":"4279:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:103"},"nodeType":"YulFunctionCall","src":"4272:30:103"},"nodeType":"YulExpressionStatement","src":"4272:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:103"},"nodeType":"YulFunctionCall","src":"4318:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:103"},"nodeType":"YulFunctionCall","src":"4311:62:103"},"nodeType":"YulExpressionStatement","src":"4311:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:103"},"nodeType":"YulFunctionCall","src":"4382:34:103"},"nodeType":"YulExpressionStatement","src":"4382:34:103"},{"nodeType":"YulAssignment","src":"4425:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:103"},"nodeType":"YulFunctionCall","src":"4433:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:103","type":""}],"src":"4058:400:103"},{"body":{"nodeType":"YulBlock","src":"4637:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:21:103"},"nodeType":"YulExpressionStatement","src":"4647:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:103"},"nodeType":"YulFunctionCall","src":"4677:30:103"},"nodeType":"YulExpressionStatement","src":"4677:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:103"},"nodeType":"YulFunctionCall","src":"4723:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:103"},"nodeType":"YulFunctionCall","src":"4716:62:103"},"nodeType":"YulExpressionStatement","src":"4716:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:103"},"nodeType":"YulFunctionCall","src":"4794:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:103"},"nodeType":"YulFunctionCall","src":"4787:35:103"},"nodeType":"YulExpressionStatement","src":"4787:35:103"},{"nodeType":"YulAssignment","src":"4831:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:103"},"nodeType":"YulFunctionCall","src":"4839:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:103","type":""}],"src":"4463:401:103"},{"body":{"nodeType":"YulBlock","src":"4970:76:103","statements":[{"nodeType":"YulAssignment","src":"4980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4988:3:103"},"nodeType":"YulFunctionCall","src":"4988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5015:6:103"},"nodeType":"YulFunctionCall","src":"5015:25:103"},"nodeType":"YulExpressionStatement","src":"5015:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4961:4:103","type":""}],"src":"4869:177:103"},{"body":{"nodeType":"YulBlock","src":"5148:87:103","statements":[{"nodeType":"YulAssignment","src":"5158:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:103"},"nodeType":"YulFunctionCall","src":"5166:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5223:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5211:3:103"},"nodeType":"YulFunctionCall","src":"5211:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:103"},"nodeType":"YulFunctionCall","src":"5193:36:103"},"nodeType":"YulExpressionStatement","src":"5193:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5117:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5128:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5139:4:103","type":""}],"src":"5051:184:103"},{"body":{"nodeType":"YulBlock","src":"5288:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"5323:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5344:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:103"},"nodeType":"YulFunctionCall","src":"5349:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:103"},"nodeType":"YulFunctionCall","src":"5337:33:103"},"nodeType":"YulExpressionStatement","src":"5337:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5390:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5393:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:103"},"nodeType":"YulFunctionCall","src":"5383:15:103"},"nodeType":"YulExpressionStatement","src":"5383:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5418:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5423:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5411:6:103"},"nodeType":"YulFunctionCall","src":"5411:17:103"},"nodeType":"YulExpressionStatement","src":"5411:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5304:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5311:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5307:3:103"},"nodeType":"YulFunctionCall","src":"5307:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5301:2:103"},"nodeType":"YulFunctionCall","src":"5301:13:103"},"nodeType":"YulIf","src":"5298:2:103"},{"nodeType":"YulAssignment","src":"5447:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5458:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5461:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:103"},"nodeType":"YulFunctionCall","src":"5454:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5447:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5271:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5274:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5280:3:103","type":""}],"src":"5240:229:103"},{"body":{"nodeType":"YulBlock","src":"5529:325:103","statements":[{"nodeType":"YulAssignment","src":"5539:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5553:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5559:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5549:3:103"},"nodeType":"YulFunctionCall","src":"5549:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5539:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5570:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5606:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5596:3:103"},"nodeType":"YulFunctionCall","src":"5596:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5574:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5647:31:103","statements":[{"nodeType":"YulAssignment","src":"5649:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5663:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5671:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5659:3:103"},"nodeType":"YulFunctionCall","src":"5659:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5649:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5627:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5620:6:103"},"nodeType":"YulFunctionCall","src":"5620:26:103"},"nodeType":"YulIf","src":"5617:2:103"},{"body":{"nodeType":"YulBlock","src":"5737:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5765:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5770:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5761:3:103"},"nodeType":"YulFunctionCall","src":"5761:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5751:6:103"},"nodeType":"YulFunctionCall","src":"5751:31:103"},"nodeType":"YulExpressionStatement","src":"5751:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5802:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5805:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5795:6:103"},"nodeType":"YulFunctionCall","src":"5795:15:103"},"nodeType":"YulExpressionStatement","src":"5795:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5833:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5823:6:103"},"nodeType":"YulFunctionCall","src":"5823:15:103"},"nodeType":"YulExpressionStatement","src":"5823:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5693:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5716:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5724:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5713:2:103"},"nodeType":"YulFunctionCall","src":"5713:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5690:2:103"},"nodeType":"YulFunctionCall","src":"5690:38:103"},"nodeType":"YulIf","src":"5687:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5509:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5518:6:103","type":""}],"src":"5474:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101ce578063a9059cbb146101e1578063dd62ed3e146101f4578063f76f8d7814610207576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610229565b604051610104919061083a565b60405180910390f35b61012061011b366004610811565b6102bb565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d6565b6102d3565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b610120610183366004610811565b6102f7565b610134610196366004610783565b610319565b6100f7610338565b6100f76040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b81525081565b6101206101dc366004610811565b610347565b6101206101ef366004610811565b6103c7565b6101346102023660046107a4565b6103d5565b6100f7604051806040016040528060038152602001620a888b60eb1b81525081565b606060038054610238906108b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906108b1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b5050505050905090565b6000336102c9818585610400565b5060019392505050565b6000336102e1858285610524565b6102ec85858561059e565b506001949350505050565b6000336102c981858561030a83836103d5565b610314919061088d565b610400565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610238906108b1565b6000338161035582866103d5565b9050838110156103ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ec8286868403610400565b6000336102c981858561059e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b1565b6001600160a01b0382166104c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053084846103d5565b90506000198114610598578181101561058b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103b1565b6105988484848403610400565b50505050565b6001600160a01b0383166106025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b1565b6001600160a01b0382166106645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b1565b6001600160a01b038316600090815260208190526040902054818110156106dc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103b1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071390849061088d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075f91815260200190565b60405180910390a3610598565b80356001600160a01b038116811461033357600080fd5b600060208284031215610794578081fd5b61079d8261076c565b9392505050565b600080604083850312156107b6578081fd5b6107bf8361076c565b91506107cd6020840161076c565b90509250929050565b6000806000606084860312156107ea578081fd5b6107f38461076c565b92506108016020850161076c565b9150604084013590509250925092565b60008060408385031215610823578182fd5b61082c8361076c565b946020939093013593505050565b6000602080835283518082850152825b818110156108665785810183015185820160400152820161084a565b818111156108775783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108ac57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c557607f821691505b602082108114156108e657634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202a8e76e1b4e5b8026b2d39aa0fb86dd6fc4365a817df004296a5841464fe79a864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1E1 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F4 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x207 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x229 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x83A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x2BB JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x7D6 JUMP JUMPDEST PUSH2 0x2D3 JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x2F7 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x783 JUMP JUMPDEST PUSH2 0x319 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x338 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0xA8CAE6E84088EADADAF240B PUSH1 0xA3 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1DC CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x347 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1EF CALLDATASIZE PUSH1 0x4 PUSH2 0x811 JUMP JUMPDEST PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x202 CALLDATASIZE PUSH1 0x4 PUSH2 0x7A4 JUMP JUMPDEST PUSH2 0x3D5 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0xA888B PUSH1 0xEB SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x238 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x264 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2B1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x286 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2B1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x294 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x400 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2E1 DUP6 DUP3 DUP6 PUSH2 0x524 JUMP JUMPDEST PUSH2 0x2EC DUP6 DUP6 DUP6 PUSH2 0x59E JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x30A DUP4 DUP4 PUSH2 0x3D5 JUMP JUMPDEST PUSH2 0x314 SWAP2 SWAP1 PUSH2 0x88D JUMP JUMPDEST PUSH2 0x400 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x238 SWAP1 PUSH2 0x8B1 JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x355 DUP3 DUP7 PUSH2 0x3D5 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x3BA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2EC DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x400 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2C9 DUP2 DUP6 DUP6 PUSH2 0x59E JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x462 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4C3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x530 DUP5 DUP5 PUSH2 0x3D5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x598 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x58B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH2 0x598 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x400 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x602 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x664 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3B1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x713 SWAP1 DUP5 SWAP1 PUSH2 0x88D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x75F SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x598 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x333 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x794 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x79D DUP3 PUSH2 0x76C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7B6 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7BF DUP4 PUSH2 0x76C JUMP JUMPDEST SWAP2 POP PUSH2 0x7CD PUSH1 0x20 DUP5 ADD PUSH2 0x76C JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7EA JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7F3 DUP5 PUSH2 0x76C JUMP JUMPDEST SWAP3 POP PUSH2 0x801 PUSH1 0x20 DUP6 ADD PUSH2 0x76C JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x823 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x82C DUP4 PUSH2 0x76C JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x866 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x84A JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x877 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x8AC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x8C5 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8E6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A DUP15 PUSH23 0xE1B4E5B8026B2D39AA0FB86DD6FC4365A817DF004296A5 DUP5 EQ PUSH5 0xFE79A86473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"458:332:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:49;1375:92:103;3244:106:49;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:49;4970:76:103;5192:286:49;;;;;;:::i;:::-;;:::i;592:47:92:-;;633:6;592:47;;3093:91:49;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:49;5148:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;495:44:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;495:44:92;;;;;6594:427:49;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;546:37:92:-;;;;;;;;;;;;;;;-1:-1:-1;;;546:37:92;;;;;2156:98:49;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:49;;5192:286;-1:-1:-1;;;;5192:286:49:o;5873:234::-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;4665:2:103;6803:85:49;;;4647:21:103;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:103;;;4787:35;4839:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;4260:2:103;10233:68:49;;;4242:21:103;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:103;;;4382:34;4433:19;;10233:68:49;4232:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;2686:2:103;10311:68:49;;;2668:21:103;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:103;;;2808:32;2857:19;;10311:68:49;2658:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:103;;;10441:32:49;;4988:18:103;10441:32:49;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;3089:2:103;11010:68:49;;;3071:21:103;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:49;3061:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;3854:2:103;7593:68:49;;;3836:21:103;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:103;;;3976:35;4028:19;;7593:68:49;3826:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;2282:2:103;7671:64:49;;;2264:21:103;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:103;;;2404:33;2454:19;;7671:64:49;2254:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;3447:2:103;7842:72:49;;;3429:21:103;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:103;;;3569:36;3622:19;;7842:72:49;3419:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;5015:25:103;;5003:2;4988:18;;4970:76;8045:26:49;;;;;;;;8082:37;11786:121;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:103:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:103;2038:15;-1:-1:-1;;2034:29:103;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:103:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:103;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:103;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o"},"methodIdentifiers":{"INITIAL_SUPPLY()":"2ff2e9dc","NAME()":"a3f4df7e","SYMBOL()":"f76f8d78","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"INITIAL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYMBOL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestCoin.sol\":\"TestCoinX\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/test/TestCoin.sol\":{\"keccak256\":\"0xe784a80ba4235683a529548905fe411d4806df472e2ef352eb43f430dd51b7d6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a2a9d54f2975a970ad4b00244021679e35d3041795e4f72df2a3cb323c44d596\",\"dweb:/ipfs/QmbHHdMH1i9Ud5FvvHHKm3HUKahHZsvgzn1oJoeii5YS6f\"]}},\"version\":1}"}},"contracts/test/TestCoinAlternativeImplementation.sol":{"TestCoinAlternativeImplementation":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1172:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:33:103","type":"","value":"ERC20: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:61:103"},"nodeType":"YulExpressionStatement","src":"267:61:103"},{"nodeType":"YulAssignment","src":"337:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"337:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:355:103"},{"body":{"nodeType":"YulBlock","src":"475:76:103","statements":[{"nodeType":"YulAssignment","src":"485:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"508:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"485:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"527:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"538:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"520:6:103"},"nodeType":"YulFunctionCall","src":"520:25:103"},"nodeType":"YulExpressionStatement","src":"520:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"444:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"455:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"466:4:103","type":""}],"src":"374:177:103"},{"body":{"nodeType":"YulBlock","src":"604:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"639:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"660:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"669:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"674:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"665:3:103"},"nodeType":"YulFunctionCall","src":"665:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"653:6:103"},"nodeType":"YulFunctionCall","src":"653:33:103"},"nodeType":"YulExpressionStatement","src":"653:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"706:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"709:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"699:6:103"},"nodeType":"YulFunctionCall","src":"699:15:103"},"nodeType":"YulExpressionStatement","src":"699:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"734:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"739:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"727:6:103"},"nodeType":"YulFunctionCall","src":"727:17:103"},"nodeType":"YulExpressionStatement","src":"727:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"620:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"627:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"623:3:103"},"nodeType":"YulFunctionCall","src":"623:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"617:2:103"},"nodeType":"YulFunctionCall","src":"617:13:103"},"nodeType":"YulIf","src":"614:2:103"},{"nodeType":"YulAssignment","src":"763:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"774:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"777:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"770:3:103"},"nodeType":"YulFunctionCall","src":"770:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"763:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"587:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"590:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"596:3:103","type":""}],"src":"556:229:103"},{"body":{"nodeType":"YulBlock","src":"845:325:103","statements":[{"nodeType":"YulAssignment","src":"855:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"869:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"875:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"865:3:103"},"nodeType":"YulFunctionCall","src":"865:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"855:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"886:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"916:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"922:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"912:3:103"},"nodeType":"YulFunctionCall","src":"912:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"890:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"963:31:103","statements":[{"nodeType":"YulAssignment","src":"965:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"979:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"987:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"975:3:103"},"nodeType":"YulFunctionCall","src":"975:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"965:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"943:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"936:6:103"},"nodeType":"YulFunctionCall","src":"936:26:103"},"nodeType":"YulIf","src":"933:2:103"},{"body":{"nodeType":"YulBlock","src":"1053:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1074:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1081:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1086:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1077:3:103"},"nodeType":"YulFunctionCall","src":"1077:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1067:6:103"},"nodeType":"YulFunctionCall","src":"1067:31:103"},"nodeType":"YulExpressionStatement","src":"1067:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1118:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1121:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1111:6:103"},"nodeType":"YulFunctionCall","src":"1111:15:103"},"nodeType":"YulExpressionStatement","src":"1111:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1146:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1149:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1139:6:103"},"nodeType":"YulFunctionCall","src":"1139:15:103"},"nodeType":"YulExpressionStatement","src":"1139:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1009:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1032:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1040:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1029:2:103"},"nodeType":"YulFunctionCall","src":"1029:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1006:2:103"},"nodeType":"YulFunctionCall","src":"1006:38:103"},"nodeType":"YulIf","src":"1003:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"825:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"834:6:103","type":""}],"src":"790:380:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERC20: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b506040518060400160405280601581526020017f5465737420416c7465726e617469766520436f696e00000000000000000000008152506040518060400160405280600381526020016254414360e81b81525081600390805190602001906200007c929190620001ac565b50805162000092906004906020840190620001ac565b505050620000ba620000a9620000c060201b60201c565b69d3c21bcecceda1000000620000c4565b620002b4565b3390565b6001600160a01b0382166200011f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000133919062000252565b90915550506001600160a01b038216600090815260208190526040812080548392906200016290849062000252565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001ba9062000277565b90600052602060002090601f016020900481019282620001de576000855562000229565b82601f10620001f957805160ff191683800117855562000229565b8280016001018555821562000229579182015b82811115620002295782518255916020019190600101906200020c565b50620002379291506200023b565b5090565b5b808211156200023757600081556001016200023c565b600082198211156200027257634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200028c57607f821691505b60208210811415620002ae57634e487b7160e01b600052602260045260246000fd5b50919050565b6109b080620002c46000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101d7578063a9059cbb146101ea578063dd62ed3e146101fd578063f76f8d7814610210576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610232565b60405161010491906108c8565b60405180910390f35b61012061011b36600461089f565b6102c4565b6040519015158152602001610104565b6002545b604051908152602001610104565b610120610150366004610864565b6102dc565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461089f565b610370565b610134610196366004610818565b610392565b6100f76103b1565b6100f7604051806040016040528060158152602001742a32b9ba1020b63a32b93730ba34bb329021b7b4b760591b81525081565b6101206101e536600461089f565b6103c0565b6101206101f836600461089f565b61044b565b61013461020b366004610832565b610459565b6100f76040518060400160405280600381526020016254414360e81b81525081565b6060600380546102419061093f565b80601f016020809104026020016040519081016040528092919081815260200182805461026d9061093f565b80156102ba5780601f1061028f576101008083540402835291602001916102ba565b820191906000526020600020905b81548152906001019060200180831161029d57829003601f168201915b5050505050905090565b6000336102d2818585610484565b5060019392505050565b6000816102e885610392565b101580156102ff5750816102fc8533610459565b10155b8015610326575061030f83610392565b8261031985610392565b610323919061091b565b10155b801561033a57506001600160a01b03841615155b801561034e57506001600160a01b03831615155b156103655761035e8484846105a8565b9050610369565b5060005b9392505050565b6000336102d28185856103838383610459565b61038d919061091b565b610484565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102419061093f565b600033816103ce8286610459565b9050838110156104335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6104408286868403610484565b506001949350505050565b6000336102d28185856105bd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161042a565b6001600160a01b0382166105475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161042a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000336105b685828561078d565b6104408585855b6001600160a01b0383166106215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161042a565b6001600160a01b0382166106835760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161042a565b6001600160a01b038316600090815260208190526040902054818110156106fb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161042a565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061073290849061091b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161077e91815260200190565b60405180910390a35b50505050565b60006107998484610459565b9050600019811461078757818110156107f45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161042a565b6107878484848403610484565b80356001600160a01b03811681146103ac57600080fd5b600060208284031215610829578081fd5b61036982610801565b60008060408385031215610844578081fd5b61084d83610801565b915061085b60208401610801565b90509250929050565b600080600060608486031215610878578081fd5b61088184610801565b925061088f60208501610801565b9150604084013590509250925092565b600080604083850312156108b1578182fd5b6108ba83610801565b946020939093013593505050565b6000602080835283518082850152825b818110156108f4578581018301518582016040015282016108d8565b818111156109055783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561093a57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061095357607f821691505b6020821081141561097457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220fe54507b3ea268ebc7a74b0b506365823cec572537e192781708c94b808aa2e464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5465737420416C7465726E617469766520436F696E0000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544143 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0x7C SWAP3 SWAP2 SWAP1 PUSH3 0x1AC JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x92 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0x1AC JUMP JUMPDEST POP POP POP PUSH3 0xBA PUSH3 0xA9 PUSH3 0xC0 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH10 0xD3C21BCECCEDA1000000 PUSH3 0xC4 JUMP JUMPDEST PUSH3 0x2B4 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x11F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A206D696E7420746F20746865207A65726F206164647265737300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x133 SWAP2 SWAP1 PUSH3 0x252 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD DUP4 SWAP3 SWAP1 PUSH3 0x162 SWAP1 DUP5 SWAP1 PUSH3 0x252 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x1BA SWAP1 PUSH3 0x277 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x1DE JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x229 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1F9 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x229 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x229 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x229 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x20C JUMP JUMPDEST POP PUSH3 0x237 SWAP3 SWAP2 POP PUSH3 0x23B JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x237 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x23C JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH3 0x272 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x28C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x2AE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9B0 DUP1 PUSH3 0x2C4 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1FD JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x210 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x8C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x864 JUMP JUMPDEST PUSH2 0x2DC JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x370 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x818 JUMP JUMPDEST PUSH2 0x392 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x3B1 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH21 0x2A32B9BA1020B63A32B93730BA34BB329021B7B4B7 PUSH1 0x59 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x44B JUMP JUMPDEST PUSH2 0x134 PUSH2 0x20B CALLDATASIZE PUSH1 0x4 PUSH2 0x832 JUMP JUMPDEST PUSH2 0x459 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544143 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x241 SWAP1 PUSH2 0x93F JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x26D SWAP1 PUSH2 0x93F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2BA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x28F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2BA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x29D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x484 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2E8 DUP6 PUSH2 0x392 JUMP JUMPDEST LT ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI POP DUP2 PUSH2 0x2FC DUP6 CALLER PUSH2 0x459 JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x326 JUMPI POP PUSH2 0x30F DUP4 PUSH2 0x392 JUMP JUMPDEST DUP3 PUSH2 0x319 DUP6 PUSH2 0x392 JUMP JUMPDEST PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x91B JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x33A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x34E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x365 JUMPI PUSH2 0x35E DUP5 DUP5 DUP5 PUSH2 0x5A8 JUMP JUMPDEST SWAP1 POP PUSH2 0x369 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x383 DUP4 DUP4 PUSH2 0x459 JUMP JUMPDEST PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x91B JUMP JUMPDEST PUSH2 0x484 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x241 SWAP1 PUSH2 0x93F JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x3CE DUP3 DUP7 PUSH2 0x459 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x433 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x440 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x484 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x5BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x547 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x5B6 DUP6 DUP3 DUP6 PUSH2 0x78D JUMP JUMPDEST PUSH2 0x440 DUP6 DUP6 DUP6 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x621 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x732 SWAP1 DUP5 SWAP1 PUSH2 0x91B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x77E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x799 DUP5 DUP5 PUSH2 0x459 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x787 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42A JUMP JUMPDEST PUSH2 0x787 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x484 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x829 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x369 DUP3 PUSH2 0x801 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x844 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x84D DUP4 PUSH2 0x801 JUMP JUMPDEST SWAP2 POP PUSH2 0x85B PUSH1 0x20 DUP5 ADD PUSH2 0x801 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x878 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x881 DUP5 PUSH2 0x801 JUMP JUMPDEST SWAP3 POP PUSH2 0x88F PUSH1 0x20 DUP6 ADD PUSH2 0x801 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x8BA DUP4 PUSH2 0x801 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8F4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x8D8 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x905 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x93A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x953 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x974 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID SLOAD POP PUSH28 0x3EA268EBC7A74B0B506365823CEC572537E192781708C94B808AA2E4 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"125:1192:93:-:0;;;348:139;;;;;;;;;;377:4;;;;;;;;;;;;;;;;;383:6;;;;;;;;;;;;;-1:-1:-1;;;383:6:93;;;2052:5:49;2044;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;407:72:93::1;427:12;:10;;;:12;;:::i;:::-;333:6;407:5;:72::i;:::-;125:1192:::0;;640:96:59;719:10;640:96;:::o;8402:389:49:-;-1:-1:-1;;;;;8485:21:49;;8477:65;;;;-1:-1:-1;;;8477:65:49;;216:2:103;8477:65:49;;;198:21:103;255:2;235:18;;;228:30;294:33;274:18;;;267:61;345:18;;8477:65:49;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:49;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:49;;520:25:103;;;-1:-1:-1;;;;;8688:37:49;;;8705:1;;8688:37;;508:2:103;493:18;8688:37:49;;;;;;;8402:389;;:::o;125:1192:93:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;125:1192:93;;;-1:-1:-1;125:1192:93;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;556:229:103;;627:1;623:6;620:1;617:13;614:2;;;-1:-1:-1;;;653:33:103;;709:4;706:1;699:15;739:4;660:3;727:17;614:2;-1:-1:-1;770:9:103;;604:181::o;790:380::-;875:1;865:12;;922:1;912:12;;;933:2;;987:4;979:6;975:17;965:27;;933:2;1040;1032:6;1029:14;1009:18;1006:38;1003:2;;;1086:10;1081:3;1077:20;1074:1;1067:31;1121:4;1118:1;1111:15;1149:4;1146:1;1139:15;1003:2;;845:325;;;:::o;:::-;125:1192:93;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5856:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1375:92:103","statements":[{"nodeType":"YulAssignment","src":"1385:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:103"},"nodeType":"YulFunctionCall","src":"1393:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:103"},"nodeType":"YulFunctionCall","src":"1445:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:103"},"nodeType":"YulFunctionCall","src":"1438:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:103"},"nodeType":"YulFunctionCall","src":"1420:41:103"},"nodeType":"YulExpressionStatement","src":"1420:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:103","type":""}],"src":"1280:187:103"},{"body":{"nodeType":"YulBlock","src":"1593:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:103"},"nodeType":"YulFunctionCall","src":"1624:21:103"},"nodeType":"YulExpressionStatement","src":"1624:21:103"},{"nodeType":"YulVariableDeclaration","src":"1654:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:103"},"nodeType":"YulFunctionCall","src":"1668:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:103"},"nodeType":"YulFunctionCall","src":"1697:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:103"},"nodeType":"YulFunctionCall","src":"1690:34:103"},"nodeType":"YulExpressionStatement","src":"1690:34:103"},{"nodeType":"YulVariableDeclaration","src":"1733:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:103"},"nodeType":"YulFunctionCall","src":"1826:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:103"},"nodeType":"YulFunctionCall","src":"1854:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:103"},"nodeType":"YulFunctionCall","src":"1819:66:103"},"nodeType":"YulExpressionStatement","src":"1819:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:103"},"nodeType":"YulFunctionCall","src":"1763:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:103","statements":[{"nodeType":"YulAssignment","src":"1779:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:103"},"nodeType":"YulFunctionCall","src":"1784:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:103","statements":[]},"src":"1755:140:103"},{"body":{"nodeType":"YulBlock","src":"1929:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:103"},"nodeType":"YulFunctionCall","src":"1954:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:103"},"nodeType":"YulFunctionCall","src":"1950:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:103"},"nodeType":"YulFunctionCall","src":"1943:45:103"},"nodeType":"YulExpressionStatement","src":"1943:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:103"},"nodeType":"YulFunctionCall","src":"1907:13:103"},"nodeType":"YulIf","src":"1904:2:103"},{"nodeType":"YulAssignment","src":"2007:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:103"},"nodeType":"YulFunctionCall","src":"2038:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:103"},"nodeType":"YulFunctionCall","src":"2055:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:103"},"nodeType":"YulFunctionCall","src":"2019:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:103"},"nodeType":"YulFunctionCall","src":"2015:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:103","type":""}],"src":"1472:603:103"},{"body":{"nodeType":"YulBlock","src":"2254:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:103"},"nodeType":"YulFunctionCall","src":"2264:21:103"},"nodeType":"YulExpressionStatement","src":"2264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:103"},"nodeType":"YulFunctionCall","src":"2294:30:103"},"nodeType":"YulExpressionStatement","src":"2294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:62:103"},"nodeType":"YulExpressionStatement","src":"2333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:103"},"nodeType":"YulFunctionCall","src":"2411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:103"},"nodeType":"YulFunctionCall","src":"2404:33:103"},"nodeType":"YulExpressionStatement","src":"2404:33:103"},{"nodeType":"YulAssignment","src":"2446:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:103"},"nodeType":"YulFunctionCall","src":"2454:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:103","type":""}],"src":"2080:399:103"},{"body":{"nodeType":"YulBlock","src":"2658:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:103"},"nodeType":"YulFunctionCall","src":"2668:21:103"},"nodeType":"YulExpressionStatement","src":"2668:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:103"},"nodeType":"YulFunctionCall","src":"2698:30:103"},"nodeType":"YulExpressionStatement","src":"2698:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:103"},"nodeType":"YulFunctionCall","src":"2737:62:103"},"nodeType":"YulExpressionStatement","src":"2737:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:103"},"nodeType":"YulFunctionCall","src":"2815:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:103"},"nodeType":"YulFunctionCall","src":"2808:32:103"},"nodeType":"YulExpressionStatement","src":"2808:32:103"},{"nodeType":"YulAssignment","src":"2849:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:103"},"nodeType":"YulFunctionCall","src":"2857:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:103","type":""}],"src":"2484:398:103"},{"body":{"nodeType":"YulBlock","src":"3061:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:21:103"},"nodeType":"YulExpressionStatement","src":"3071:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:103"},"nodeType":"YulFunctionCall","src":"3108:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:103"},"nodeType":"YulFunctionCall","src":"3101:30:103"},"nodeType":"YulExpressionStatement","src":"3101:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:103"},"nodeType":"YulFunctionCall","src":"3140:59:103"},"nodeType":"YulExpressionStatement","src":"3140:59:103"},{"nodeType":"YulAssignment","src":"3208:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:103"},"nodeType":"YulFunctionCall","src":"3216:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:103","type":""}],"src":"2887:353:103"},{"body":{"nodeType":"YulBlock","src":"3419:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:21:103"},"nodeType":"YulExpressionStatement","src":"3429:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:103"},"nodeType":"YulFunctionCall","src":"3459:30:103"},"nodeType":"YulExpressionStatement","src":"3459:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:62:103"},"nodeType":"YulExpressionStatement","src":"3498:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:103"},"nodeType":"YulFunctionCall","src":"3569:36:103"},"nodeType":"YulExpressionStatement","src":"3569:36:103"},{"nodeType":"YulAssignment","src":"3614:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:103","type":""}],"src":"3245:402:103"},{"body":{"nodeType":"YulBlock","src":"3826:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:103"},"nodeType":"YulFunctionCall","src":"3836:21:103"},"nodeType":"YulExpressionStatement","src":"3836:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:103"},"nodeType":"YulFunctionCall","src":"3873:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:103"},"nodeType":"YulFunctionCall","src":"3866:30:103"},"nodeType":"YulExpressionStatement","src":"3866:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:103"},"nodeType":"YulFunctionCall","src":"3912:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:103"},"nodeType":"YulFunctionCall","src":"3905:62:103"},"nodeType":"YulExpressionStatement","src":"3905:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:103"},"nodeType":"YulFunctionCall","src":"3983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:35:103"},"nodeType":"YulExpressionStatement","src":"3976:35:103"},{"nodeType":"YulAssignment","src":"4020:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:103","type":""}],"src":"3652:401:103"},{"body":{"nodeType":"YulBlock","src":"4232:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:103"},"nodeType":"YulFunctionCall","src":"4242:21:103"},"nodeType":"YulExpressionStatement","src":"4242:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:103"},"nodeType":"YulFunctionCall","src":"4279:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:103"},"nodeType":"YulFunctionCall","src":"4272:30:103"},"nodeType":"YulExpressionStatement","src":"4272:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:103"},"nodeType":"YulFunctionCall","src":"4318:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:103"},"nodeType":"YulFunctionCall","src":"4311:62:103"},"nodeType":"YulExpressionStatement","src":"4311:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:103"},"nodeType":"YulFunctionCall","src":"4382:34:103"},"nodeType":"YulExpressionStatement","src":"4382:34:103"},{"nodeType":"YulAssignment","src":"4425:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:103"},"nodeType":"YulFunctionCall","src":"4433:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:103","type":""}],"src":"4058:400:103"},{"body":{"nodeType":"YulBlock","src":"4637:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:21:103"},"nodeType":"YulExpressionStatement","src":"4647:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:103"},"nodeType":"YulFunctionCall","src":"4677:30:103"},"nodeType":"YulExpressionStatement","src":"4677:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:103"},"nodeType":"YulFunctionCall","src":"4723:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:103"},"nodeType":"YulFunctionCall","src":"4716:62:103"},"nodeType":"YulExpressionStatement","src":"4716:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:103"},"nodeType":"YulFunctionCall","src":"4794:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:103"},"nodeType":"YulFunctionCall","src":"4787:35:103"},"nodeType":"YulExpressionStatement","src":"4787:35:103"},{"nodeType":"YulAssignment","src":"4831:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:103"},"nodeType":"YulFunctionCall","src":"4839:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:103","type":""}],"src":"4463:401:103"},{"body":{"nodeType":"YulBlock","src":"4970:76:103","statements":[{"nodeType":"YulAssignment","src":"4980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4988:3:103"},"nodeType":"YulFunctionCall","src":"4988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5015:6:103"},"nodeType":"YulFunctionCall","src":"5015:25:103"},"nodeType":"YulExpressionStatement","src":"5015:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4961:4:103","type":""}],"src":"4869:177:103"},{"body":{"nodeType":"YulBlock","src":"5148:87:103","statements":[{"nodeType":"YulAssignment","src":"5158:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:103"},"nodeType":"YulFunctionCall","src":"5166:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5223:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5211:3:103"},"nodeType":"YulFunctionCall","src":"5211:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:103"},"nodeType":"YulFunctionCall","src":"5193:36:103"},"nodeType":"YulExpressionStatement","src":"5193:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5117:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5128:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5139:4:103","type":""}],"src":"5051:184:103"},{"body":{"nodeType":"YulBlock","src":"5288:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"5323:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5344:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:103"},"nodeType":"YulFunctionCall","src":"5349:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:103"},"nodeType":"YulFunctionCall","src":"5337:33:103"},"nodeType":"YulExpressionStatement","src":"5337:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5390:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5393:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:103"},"nodeType":"YulFunctionCall","src":"5383:15:103"},"nodeType":"YulExpressionStatement","src":"5383:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5418:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5423:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5411:6:103"},"nodeType":"YulFunctionCall","src":"5411:17:103"},"nodeType":"YulExpressionStatement","src":"5411:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5304:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5311:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5307:3:103"},"nodeType":"YulFunctionCall","src":"5307:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5301:2:103"},"nodeType":"YulFunctionCall","src":"5301:13:103"},"nodeType":"YulIf","src":"5298:2:103"},{"nodeType":"YulAssignment","src":"5447:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5458:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5461:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:103"},"nodeType":"YulFunctionCall","src":"5454:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5447:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5271:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5274:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5280:3:103","type":""}],"src":"5240:229:103"},{"body":{"nodeType":"YulBlock","src":"5529:325:103","statements":[{"nodeType":"YulAssignment","src":"5539:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5553:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5559:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5549:3:103"},"nodeType":"YulFunctionCall","src":"5549:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5539:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5570:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5606:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5596:3:103"},"nodeType":"YulFunctionCall","src":"5596:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5574:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5647:31:103","statements":[{"nodeType":"YulAssignment","src":"5649:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5663:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5671:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5659:3:103"},"nodeType":"YulFunctionCall","src":"5659:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5649:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5627:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5620:6:103"},"nodeType":"YulFunctionCall","src":"5620:26:103"},"nodeType":"YulIf","src":"5617:2:103"},{"body":{"nodeType":"YulBlock","src":"5737:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5765:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5770:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5761:3:103"},"nodeType":"YulFunctionCall","src":"5761:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5751:6:103"},"nodeType":"YulFunctionCall","src":"5751:31:103"},"nodeType":"YulExpressionStatement","src":"5751:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5802:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5805:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5795:6:103"},"nodeType":"YulFunctionCall","src":"5795:15:103"},"nodeType":"YulExpressionStatement","src":"5795:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5833:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5823:6:103"},"nodeType":"YulFunctionCall","src":"5823:15:103"},"nodeType":"YulExpressionStatement","src":"5823:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5693:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5716:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5724:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5713:2:103"},"nodeType":"YulFunctionCall","src":"5713:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5690:2:103"},"nodeType":"YulFunctionCall","src":"5690:38:103"},"nodeType":"YulIf","src":"5687:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5509:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5518:6:103","type":""}],"src":"5474:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101d7578063a9059cbb146101ea578063dd62ed3e146101fd578063f76f8d7814610210576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610232565b60405161010491906108c8565b60405180910390f35b61012061011b36600461089f565b6102c4565b6040519015158152602001610104565b6002545b604051908152602001610104565b610120610150366004610864565b6102dc565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461089f565b610370565b610134610196366004610818565b610392565b6100f76103b1565b6100f7604051806040016040528060158152602001742a32b9ba1020b63a32b93730ba34bb329021b7b4b760591b81525081565b6101206101e536600461089f565b6103c0565b6101206101f836600461089f565b61044b565b61013461020b366004610832565b610459565b6100f76040518060400160405280600381526020016254414360e81b81525081565b6060600380546102419061093f565b80601f016020809104026020016040519081016040528092919081815260200182805461026d9061093f565b80156102ba5780601f1061028f576101008083540402835291602001916102ba565b820191906000526020600020905b81548152906001019060200180831161029d57829003601f168201915b5050505050905090565b6000336102d2818585610484565b5060019392505050565b6000816102e885610392565b101580156102ff5750816102fc8533610459565b10155b8015610326575061030f83610392565b8261031985610392565b610323919061091b565b10155b801561033a57506001600160a01b03841615155b801561034e57506001600160a01b03831615155b156103655761035e8484846105a8565b9050610369565b5060005b9392505050565b6000336102d28185856103838383610459565b61038d919061091b565b610484565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102419061093f565b600033816103ce8286610459565b9050838110156104335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6104408286868403610484565b506001949350505050565b6000336102d28185856105bd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161042a565b6001600160a01b0382166105475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161042a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000336105b685828561078d565b6104408585855b6001600160a01b0383166106215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161042a565b6001600160a01b0382166106835760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161042a565b6001600160a01b038316600090815260208190526040902054818110156106fb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161042a565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061073290849061091b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161077e91815260200190565b60405180910390a35b50505050565b60006107998484610459565b9050600019811461078757818110156107f45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161042a565b6107878484848403610484565b80356001600160a01b03811681146103ac57600080fd5b600060208284031215610829578081fd5b61036982610801565b60008060408385031215610844578081fd5b61084d83610801565b915061085b60208401610801565b90509250929050565b600080600060608486031215610878578081fd5b61088184610801565b925061088f60208501610801565b9150604084013590509250925092565b600080604083850312156108b1578182fd5b6108ba83610801565b946020939093013593505050565b6000602080835283518082850152825b818110156108f4578581018301518582016040015282016108d8565b818111156109055783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561093a57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061095357607f821691505b6020821081141561097457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220fe54507b3ea268ebc7a74b0b506365823cec572537e192781708c94b808aa2e464736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xEA JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1D7 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1EA JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1FD JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x210 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x1A3 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0xC8 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x142 JUMPI DUP1 PUSH4 0x2FF2E9DC EQ PUSH2 0x155 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x166 JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x175 JUMPI PUSH2 0xEA JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x130 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF7 PUSH2 0x232 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x8C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x120 PUSH2 0x11B CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x2C4 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x150 CALLDATASIZE PUSH1 0x4 PUSH2 0x864 JUMP JUMPDEST PUSH2 0x2DC JUMP JUMPDEST PUSH2 0x134 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x183 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x370 JUMP JUMPDEST PUSH2 0x134 PUSH2 0x196 CALLDATASIZE PUSH1 0x4 PUSH2 0x818 JUMP JUMPDEST PUSH2 0x392 JUMP JUMPDEST PUSH2 0xF7 PUSH2 0x3B1 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x15 DUP2 MSTORE PUSH1 0x20 ADD PUSH21 0x2A32B9BA1020B63A32B93730BA34BB329021B7B4B7 PUSH1 0x59 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1E5 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x3C0 JUMP JUMPDEST PUSH2 0x120 PUSH2 0x1F8 CALLDATASIZE PUSH1 0x4 PUSH2 0x89F JUMP JUMPDEST PUSH2 0x44B JUMP JUMPDEST PUSH2 0x134 PUSH2 0x20B CALLDATASIZE PUSH1 0x4 PUSH2 0x832 JUMP JUMPDEST PUSH2 0x459 JUMP JUMPDEST PUSH2 0xF7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x544143 PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x241 SWAP1 PUSH2 0x93F JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x26D SWAP1 PUSH2 0x93F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2BA JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x28F JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2BA JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x29D JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x484 JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x2E8 DUP6 PUSH2 0x392 JUMP JUMPDEST LT ISZERO DUP1 ISZERO PUSH2 0x2FF JUMPI POP DUP2 PUSH2 0x2FC DUP6 CALLER PUSH2 0x459 JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x326 JUMPI POP PUSH2 0x30F DUP4 PUSH2 0x392 JUMP JUMPDEST DUP3 PUSH2 0x319 DUP6 PUSH2 0x392 JUMP JUMPDEST PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x91B JUMP JUMPDEST LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x33A JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND ISZERO ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x34E JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND ISZERO ISZERO JUMPDEST ISZERO PUSH2 0x365 JUMPI PUSH2 0x35E DUP5 DUP5 DUP5 PUSH2 0x5A8 JUMP JUMPDEST SWAP1 POP PUSH2 0x369 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x383 DUP4 DUP4 PUSH2 0x459 JUMP JUMPDEST PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x91B JUMP JUMPDEST PUSH2 0x484 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x241 SWAP1 PUSH2 0x93F JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x3CE DUP3 DUP7 PUSH2 0x459 JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x433 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x440 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x484 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2D2 DUP2 DUP6 DUP6 PUSH2 0x5BD JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x4E6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x547 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x5B6 DUP6 DUP3 DUP6 PUSH2 0x78D JUMP JUMPDEST PUSH2 0x440 DUP6 DUP6 DUP6 JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x621 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x683 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6FB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x42A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x732 SWAP1 DUP5 SWAP1 PUSH2 0x91B JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x77E SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x799 DUP5 DUP5 PUSH2 0x459 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x787 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x42A JUMP JUMPDEST PUSH2 0x787 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x484 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x829 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x369 DUP3 PUSH2 0x801 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x844 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x84D DUP4 PUSH2 0x801 JUMP JUMPDEST SWAP2 POP PUSH2 0x85B PUSH1 0x20 DUP5 ADD PUSH2 0x801 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x878 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x881 DUP5 PUSH2 0x801 JUMP JUMPDEST SWAP3 POP PUSH2 0x88F PUSH1 0x20 DUP6 ADD PUSH2 0x801 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x8B1 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x8BA DUP4 PUSH2 0x801 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x8F4 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x8D8 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x905 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x93A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x953 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x974 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 INVALID SLOAD POP PUSH28 0x3EA268EBC7A74B0B506365823CEC572537E192781708C94B808AA2E4 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"125:1192:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:49;1375:92:103;3244:106:49;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:49;4970:76:103;596:718:93;;;;;;:::i;:::-;;:::i;292:47::-;;333:6;292:47;;3093:91:49;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:49;5148:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;186:53:93:-;;;;;;;;;;;;;;;-1:-1:-1;;;186:53:93;;;;;6594:427:49;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;246:37:93:-;;;;;;;;;;;;;;;-1:-1:-1;;;246:37:93;;;;;2156:98:49;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;596:718:93:-;701:4;748:6;728:16;738:5;728:9;:16::i;:::-;:26;;:130;;;;;852:6;820:28;830:5;837:10;820:9;:28::i;:::-;:38;;728:130;:224;;;;;938:14;948:3;938:9;:14::i;:::-;928:6;911:14;921:3;911:9;:14::i;:::-;:23;;;;:::i;:::-;:41;;728:224;:280;;;;-1:-1:-1;;;;;;989:19:93;;;;728:280;:367;;;;-1:-1:-1;;;;;;1078:17:93;;;;728:367;724:583;;;1185:38;1204:5;1211:3;1216:6;1185:18;:38::i;:::-;1178:45;;;;724:583;-1:-1:-1;1289:5:93;724:583;596:718;;;;;:::o;5873:234:49:-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;4665:2:103;6803:85:49;;;4647:21:103;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:103;;;4787:35;4839:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;:::-;-1:-1:-1;7010:4:49;;6594:427;-1:-1:-1;;;;6594:427:49:o;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;4260:2:103;10233:68:49;;;4242:21:103;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:103;;;4382:34;4433:19;;10233:68:49;4232:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;2686:2:103;10311:68:49;;;2668:21:103;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:103;;;2808:32;2857:19;;10311:68:49;2658:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:103;;;10441:32:49;;4988:18:103;10441:32:49;;;;;;;10110:370;;;:::o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;7475:651;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;3854:2:103;7593:68:49;;;3836:21:103;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:103;;;3976:35;4028:19;;7593:68:49;3826:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;2282:2:103;7671:64:49;;;2264:21:103;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:103;;;2404:33;2454:19;;7671:64:49;2254:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;3447:2:103;7842:72:49;;;3429:21:103;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:103;;;3569:36;3622:19;;7842:72:49;3419:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;5015:25:103;;5003:2;4988:18;;4970:76;8045:26:49;;;;;;;;8082:37;7475:651;;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;3089:2:103;11010:68:49;;;3071:21:103;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:49;3061:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;14:173:103:-;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:103;2038:15;-1:-1:-1;;2034:29:103;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:103:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:103;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:103;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o"},"methodIdentifiers":{"INITIAL_SUPPLY()":"2ff2e9dc","NAME()":"a3f4df7e","SYMBOL()":"f76f8d78","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"INITIAL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYMBOL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestCoinAlternativeImplementation.sol\":\"TestCoinAlternativeImplementation\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/test/TestCoinAlternativeImplementation.sol\":{\"keccak256\":\"0x2ef920a343dda4bffeb954a1009eb6c251616a73f4f968b54ef06b15ffdd76dc\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://faaff0df2becca964e89538250fb2eb4cb5ada69292bf984dba317c6e6f8f9cd\",\"dweb:/ipfs/QmSABZFzP8sTciiBn769K5m3FejENqsJ52etQcRw4rpjoH\"]}},\"version\":1}"}},"contracts/test/TestCompromisedProduct.sol":{"TestCompromisedProduct":{"abi":[{"inputs":[{"internalType":"bytes32","name":"fakeProductName","type":"bytes32"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"fakeComponentId","type":"uint256"},{"internalType":"uint256","name":"fakeRiskpoolId","type":"uint256"},{"internalType":"address","name":"registryAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"productAddress","type":"address"}],"name":"LogProductCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"FAKE_STATE","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POLICY_FLOW","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"sumInsured","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"applyForPolicy","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"collectPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getApplicationDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPayoutDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"policyFlow","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"riskpoolId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"riskPoolCapacityCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"submitClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1091:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"568:339:103","statements":[{"body":{"nodeType":"YulBlock","src":"615:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"624:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"632:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"617:6:103"},"nodeType":"YulFunctionCall","src":"617:22:103"},"nodeType":"YulExpressionStatement","src":"617:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"589:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"598:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"585:3:103"},"nodeType":"YulFunctionCall","src":"585:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"610:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"581:3:103"},"nodeType":"YulFunctionCall","src":"581:33:103"},"nodeType":"YulIf","src":"578:2:103"},{"nodeType":"YulAssignment","src":"650:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"666:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"660:5:103"},"nodeType":"YulFunctionCall","src":"660:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"650:6:103"}]},{"nodeType":"YulAssignment","src":"685:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"729:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"740:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"725:3:103"},"nodeType":"YulFunctionCall","src":"725:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"695:29:103"},"nodeType":"YulFunctionCall","src":"695:49:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"685:6:103"}]},{"nodeType":"YulAssignment","src":"753:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"784:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:103"},"nodeType":"YulFunctionCall","src":"769:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"763:5:103"},"nodeType":"YulFunctionCall","src":"763:25:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"753:6:103"}]},{"nodeType":"YulAssignment","src":"797:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"817:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"828:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"813:3:103"},"nodeType":"YulFunctionCall","src":"813:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"807:5:103"},"nodeType":"YulFunctionCall","src":"807:25:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"797:6:103"}]},{"nodeType":"YulAssignment","src":"841:60:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"885:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"896:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:103"},"nodeType":"YulFunctionCall","src":"881:19:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"851:29:103"},"nodeType":"YulFunctionCall","src":"851:50:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"841:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_uint256t_uint256t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"502:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"513:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"525:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"533:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"541:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"549:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"557:6:103","type":""}],"src":"419:488:103"},{"body":{"nodeType":"YulBlock","src":"1013:76:103","statements":[{"nodeType":"YulAssignment","src":"1023:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1035:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1046:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1031:3:103"},"nodeType":"YulFunctionCall","src":"1031:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1023:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1065:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1076:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1058:6:103"},"nodeType":"YulFunctionCall","src":"1058:25:103"},"nodeType":"YulExpressionStatement","src":"1058:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"982:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"993:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1004:4:103","type":""}],"src":"912:177:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32t_addresst_uint256t_uint256t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n value3 := mload(add(headStart, 96))\n value4 := abi_decode_address_fromMemory(add(headStart, 128))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604051620014f0380380620014f0833981016040819052620000349162000306565b6200003f3362000171565b6001859055600280546001600160a01b038087166001600160a01b03199283161790925560038590556004849055600580549284169290911691909117905562000088620001c1565b600680546001600160a01b0319166001600160a01b0392909216919091179055620000b2620001dc565b600780546001600160a01b0319166001600160a01b0392909216919091179055620000dc62000209565b600880546001600160a01b0319166001600160a01b03929092169190911790556200011b70506f6c69637944656661756c74466c6f7760781b62000223565b600980546001600160a01b0319166001600160a01b039290921691909117905562000145620002ac565b600a80546001600160a01b0319166001600160a01b0392909216919091179055506200035a9350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620001d76541636365737360d01b62000223565b905090565b6000620001d77f436f6d706f6e656e744f776e657253657276696365000000000000000000000062000223565b6000620001d76e496e7374616e63655365727669636560881b5b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200026957600080fd5b505afa1580156200027e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a49190620002e2565b90505b919050565b6000620001d76d50726f647563745365727669636560901b62000223565b80516001600160a01b0381168114620002a757600080fd5b600060208284031215620002f4578081fd5b620002ff82620002ca565b9392505050565b600080600080600060a086880312156200031e578081fd5b855194506200033060208701620002ca565b935060408601519250606086015191506200034e60808701620002ca565b90509295509295909350565b611186806200036a6000396000f3fe6080604052600436106101ee5760003560e01c806370d2fe531161010d578063b9ea8d66116100a0578063d73cd9921161006f578063d73cd9921461027c578063e0815f0d1461042a578063e6f95edd1461043e578063f2fde38b14610451578063f4fdc1fa1461040c576101ee565b8063b9ea8d66146103ec578063bd1fe5d01461027c578063be169e7e1461027c578063d0e0ba951461040c576101ee565b806394f64ff4116100dc57806394f64ff4146102fe5780639a82f890146102be578063a18f5ae21461027c578063b3fca9bd1461027c576101ee565b806370d2fe5314610382578063715018a614610397578063893d20e8146103ac5780638da5cb5b146103ce576101ee565b806339cf5e16116101855780635ab1bd53116101545780635ab1bd531461033a5780635d1ca63114610358578063637d08f41461036d578063638ce0ba1461027c576101ee565b806339cf5e16146102fe5780633b5284b6146103255780633ec92bda146102fe57806359dacc6a1461027c576101ee565b80631b867c63116101c15780631b867c631461027c57806321df0da71461028c578063258d560c146102be5780632b677841146102de576101ee565b806309128d83146101f357806315dae03e1461022e57806317d7de7c1461024a5780631865c57d1461025f575b600080fd5b3480156101ff57600080fd5b5061021b70506f6c69637944656661756c74466c6f7760781b81565b6040519081526020015b60405180910390f35b34801561023a57600080fd5b5060016040516102259190611063565b34801561025657600080fd5b5060015461021b565b34801561026b57600080fd5b5060035b6040516102259190611049565b34801561028857600080fd5b505b005b34801561029857600080fd5b506002546001600160a01b03165b6040516001600160a01b039091168152602001610225565b3480156102ca57600080fd5b5060005b6040519015158152602001610225565b3480156102ea57600080fd5b5061028a6102f9366004610d54565b610473565b34801561030a57600080fd5b50604080516020810182526000815290516102259190611077565b34801561033157600080fd5b5061026f600381565b34801561034657600080fd5b506005546001600160a01b03166102a6565b34801561036457600080fd5b5060035461021b565b34801561037957600080fd5b506102a66107bd565b34801561038e57600080fd5b5060045461021b565b3480156103a357600080fd5b5061028a6107e1565b3480156103b857600080fd5b506102a6600080546001600160a01b03166107dc565b3480156103da57600080fd5b506000546001600160a01b03166102a6565b3480156103f857600080fd5b5061028a610407366004610d24565b6107f3565b34801561041857600080fd5b5061028a610427366004610d24565b50565b34801561043657600080fd5b5060016102ce565b61021b61044c366004610ecd565b610904565b34801561045d57600080fd5b5061028a61046c366004610c97565b610a22565b565b60085460405163296586d360e21b81526004810184905283916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104f89190810190610d75565b519050336001600160a01b038216146105645760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5443502d313a494e56414c49445f504f4c4943595f4f525f484f604482015263262222a960e11b60648201526084015b60405180910390fd5b6001600c600082825461057791906110bb565b9091555050600a546040805160006020808301829052835180840390910181528284019384905263fae43d1560e01b909352926001600160a01b03169163fae43d15916105cb918991899190604401610ff2565b602060405180830381600087803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061d9190610d3c565b600a54604051634e02c63f60e01b81526004810188905260248101839052604481018790529192506001600160a01b031690634e02c63f90606401600060405180830381600087803b15801561067257600080fd5b505af1158015610686573d6000803e3d6000fd5b5050600a5460408051600060208083018290528351808403909101815282840193849052633c0ebc2360e11b90935294506001600160a01b03909216925063781d7846916106dc918a9187918b9160440161101a565b602060405180830381600087803b1580156106f657600080fd5b505af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e9190610d3c565b600a5460405163fe64372b60e01b815260048101899052602481018390529192506001600160a01b03169063fe64372b906044016040805180830381600087803b15801561077b57600080fd5b505af115801561078f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b39190610eaa565b5050505050505050565b60006107dc70506f6c69637944656661756c74466c6f7760781b610a98565b905090565b6107e9610b1d565b6104716000610b77565b60085460405163a3f685f960e01b8152600481018390526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190610e25565b600a54602082015160405163e3ebdea560e01b81526004810186905260248101919091529192506001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fd9190610cf0565b5050505050565b60008033600a546040516349dc20a560e11b81529192506001600160a01b0316906393b8414a906109459084908c908c908c908c908c908c90600401610fa3565b602060405180830381600087803b15801561095f57600080fd5b505af1158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190610d3c565b600a54604051631b07b17f60e01b8152600481018390529193506001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190610cd6565b50509695505050505050565b610a2a610b1d565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055b565b61042781610b77565b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190610cba565b90505b919050565b6000546001600160a01b031633146104715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80518015158114610b1857600080fd5b60008083601f840112610be8578182fd5b50813567ffffffffffffffff811115610bff578182fd5b602083019150836020828501011115610c1757600080fd5b9250929050565b600082601f830112610c2e578081fd5b815167ffffffffffffffff811115610c4857610c48611125565b610c5b601f8201601f191660200161108a565b818152846020838601011115610c6f578283fd5b610c808260208301602087016110df565b949350505050565b805160038110610b1857600080fd5b600060208284031215610ca8578081fd5b8135610cb38161113b565b9392505050565b600060208284031215610ccb578081fd5b8151610cb38161113b565b600060208284031215610ce7578081fd5b610cb382610bc7565b600080600060608486031215610d04578182fd5b610d0d84610bc7565b925060208401519150604084015190509250925092565b600060208284031215610d35578081fd5b5035919050565b600060208284031215610d4d578081fd5b5051919050565b60008060408385031215610d66578182fd5b50508035926020909101359150565b600060208284031215610d86578081fd5b815167ffffffffffffffff80821115610d9d578283fd5b9083019060c08286031215610db0578283fd5b610dba60c061108a565b8251610dc58161113b565b815260208381015190820152610ddd60408401610c88565b6040820152606083015182811115610df3578485fd5b610dff87828601610c1e565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215610e38578182fd5b610e418161108a565b9050610e4c83610c88565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060408385031215610ebc578182fd5b505080516020909101519092909150565b60008060008060008060808789031215610ee5578384fd5b8635955060208701359450604087013567ffffffffffffffff80821115610f0a578586fd5b610f168a838b01610bd7565b90965094506060890135915080821115610f2e578384fd5b50610f3b89828a01610bd7565b979a9699509497509295939492505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452610f8f8160208601602086016110df565b601f01601f19169290920160200192915050565b600060018060a01b038916825287602083015286604083015260a06060830152610fd160a083018688610f4d565b8281036080840152610fe4818587610f4d565b9a9950505050505050505050565b6000848252836020830152606060408301526110116060830184610f77565b95945050505050565b60008582528460208301528360408301526080606083015261103f6080830184610f77565b9695505050505050565b602081016007831061105d5761105d61110f565b91905290565b602081016003831061105d5761105d61110f565b600060208252610cb36020830184610f77565b604051601f8201601f1916810167ffffffffffffffff811182821017156110b3576110b3611125565b604052919050565b600082198211156110da57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156110fa5781810151838201526020016110e2565b83811115611109576000848401525b50505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461042757600080fdfea2646970667358221220d035e3de5b3a00e05b9cb799c298a86d18cc827ca95856c5337177a97dceacf664736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x14F0 CODESIZE SUB DUP1 PUSH3 0x14F0 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x306 JUMP JUMPDEST PUSH3 0x3F CALLER PUSH3 0x171 JUMP JUMPDEST PUSH1 0x1 DUP6 SWAP1 SSTORE PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP8 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x3 DUP6 SWAP1 SSTORE PUSH1 0x4 DUP5 SWAP1 SSTORE PUSH1 0x5 DUP1 SLOAD SWAP3 DUP5 AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x88 PUSH3 0x1C1 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0xB2 PUSH3 0x1DC JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0xDC PUSH3 0x209 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x11B PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL PUSH3 0x223 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x145 PUSH3 0x2AC JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x35A SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D7 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x223 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D7 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x223 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D7 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x27E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x2A4 SWAP2 SWAP1 PUSH3 0x2E2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x1D7 PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH3 0x223 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x2A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x2F4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH3 0x2FF DUP3 PUSH3 0x2CA JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x31E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 MLOAD SWAP5 POP PUSH3 0x330 PUSH1 0x20 DUP8 ADD PUSH3 0x2CA JUMP JUMPDEST SWAP4 POP PUSH1 0x40 DUP7 ADD MLOAD SWAP3 POP PUSH1 0x60 DUP7 ADD MLOAD SWAP2 POP PUSH3 0x34E PUSH1 0x80 DUP8 ADD PUSH3 0x2CA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH2 0x1186 DUP1 PUSH3 0x36A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1EE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70D2FE53 GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xD73CD992 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x42A JUMPI DUP1 PUSH4 0xE6F95EDD EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x40C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x3EC JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x40C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x94F64FF4 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x382 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3CE JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x39CF5E16 GT PUSH2 0x185 JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x154 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x3B5284B6 EQ PUSH2 0x325 JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x1B867C63 GT PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0x2B677841 EQ PUSH2 0x2DE JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x9128D83 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x22E JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x25F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21B PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1063 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1049 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x2F9 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x473 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1077 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH1 0x3 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x379 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH2 0x7BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x7E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7DC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x407 CALLDATASIZE PUSH1 0x4 PUSH2 0xD24 JUMP JUMPDEST PUSH2 0x7F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0xD24 JUMP JUMPDEST POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH2 0x2CE JUMP JUMPDEST PUSH2 0x21B PUSH2 0x44C CALLDATASIZE PUSH1 0x4 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x904 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x46C CALLDATASIZE PUSH1 0x4 PUSH2 0xC97 JUMP JUMPDEST PUSH2 0xA22 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE DUP4 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x4F8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xD75 JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x564 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5443502D313A494E56414C49445F504F4C4943595F4F525F484F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x262222A9 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xC PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x577 SWAP2 SWAP1 PUSH2 0x10BB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE DUP3 DUP5 ADD SWAP4 DUP5 SWAP1 MSTORE PUSH4 0xFAE43D15 PUSH1 0xE0 SHL SWAP1 SWAP4 MSTORE SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xFAE43D15 SWAP2 PUSH2 0x5CB SWAP2 DUP10 SWAP2 DUP10 SWAP2 SWAP1 PUSH1 0x44 ADD PUSH2 0xFF2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x61D SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x686 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE DUP3 DUP5 ADD SWAP4 DUP5 SWAP1 MSTORE PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL SWAP1 SWAP4 MSTORE SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 POP PUSH4 0x781D7846 SWAP2 PUSH2 0x6DC SWAP2 DUP11 SWAP2 DUP8 SWAP2 DUP12 SWAP2 PUSH1 0x44 ADD PUSH2 0x101A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x70A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x72E SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x78F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0xEAA JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DC PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL PUSH2 0xA98 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7E9 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x471 PUSH1 0x0 PUSH2 0xB77 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x84D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x871 SWAP2 SWAP1 PUSH2 0xE25 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8FD SWAP2 SWAP1 PUSH2 0xCF0 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x945 SWAP1 DUP5 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0xFA3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x95F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x973 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x997 SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA16 SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA2A PUSH2 0xB1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x55B JUMP JUMPDEST PUSH2 0x427 DUP2 PUSH2 0xB77 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB15 SWAP2 SWAP1 PUSH2 0xCBA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x55B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xB18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xBE8 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBFF JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC2E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC48 JUMPI PUSH2 0xC48 PUSH2 0x1125 JUMP JUMPDEST PUSH2 0xC5B PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x108A JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xC6F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xC80 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x10DF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xB18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCA8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCB3 DUP2 PUSH2 0x113B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCCB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCB3 DUP2 PUSH2 0x113B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE7 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCB3 DUP3 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD04 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xD0D DUP5 PUSH2 0xBC7 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD35 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4D JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD66 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD86 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD9D JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0xDB0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xDBA PUSH1 0xC0 PUSH2 0x108A JUMP JUMPDEST DUP3 MLOAD PUSH2 0xDC5 DUP2 PUSH2 0x113B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0xDDD PUSH1 0x40 DUP5 ADD PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0xDF3 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0xDFF DUP8 DUP3 DUP7 ADD PUSH2 0xC1E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE38 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xE41 DUP2 PUSH2 0x108A JUMP JUMPDEST SWAP1 POP PUSH2 0xE4C DUP4 PUSH2 0xC88 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEBC JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xEE5 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xF0A JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0xF16 DUP11 DUP4 DUP12 ADD PUSH2 0xBD7 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xF2E JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0xF3B DUP10 DUP3 DUP11 ADD PUSH2 0xBD7 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xF8F DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x10DF JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP10 AND DUP3 MSTORE DUP8 PUSH1 0x20 DUP4 ADD MSTORE DUP7 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xFD1 PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0xF4D JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0xFE4 DUP2 DUP6 DUP8 PUSH2 0xF4D JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1011 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x103F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x105D JUMPI PUSH2 0x105D PUSH2 0x110F JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x105D JUMPI PUSH2 0x105D PUSH2 0x110F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xCB3 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10B3 JUMPI PUSH2 0x10B3 PUSH2 0x1125 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x10DA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10FA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E2 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1109 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x427 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD0 CALLDATALOAD 0xE3 0xDE JUMPDEST GASPRICE STOP 0xE0 JUMPDEST SWAP13 0xB7 SWAP10 0xC2 SWAP9 0xA8 PUSH14 0x18CC827CA95856C5337177A97DCE 0xAC 0xF6 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1116:6274:94:-:0;;;2097:684;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:41;719:10:59;936:18:41;:32::i;:::-;2318:14:94::1;:32:::0;;;2361:13:::1;:28:::0;;-1:-1:-1;;;;;2361:28:94;;::::1;-1:-1:-1::0;;;;;;2361:28:94;;::::1;;::::0;;;2400:12:::1;:30:::0;;;2441:11:::1;:28:::0;;;2482:9:::1;:38:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;2541:12:::1;:10;:12::i;:::-;2531:7;:22:::0;;-1:-1:-1;;;;;;2531:22:94::1;-1:-1:-1::0;;;;;2531:22:94;;;::::1;::::0;;;::::1;::::0;;2589:27:::1;:25;:27::i;:::-;2564:22;:52:::0;;-1:-1:-1;;;;;;2564:52:94::1;-1:-1:-1::0;;;;;2564:52:94;;;::::1;::::0;;;::::1;::::0;;2646:21:::1;:19;:21::i;:::-;2627:16;:40:::0;;-1:-1:-1;;;;;;2627:40:94::1;-1:-1:-1::0;;;;;2627:40:94;;;::::1;::::0;;;::::1;::::0;;2692:32:::1;-1:-1:-1::0;;;2692:19:94::1;:32::i;:::-;2678:11;:46:::0;;-1:-1:-1;;;;;;2678:46:94::1;-1:-1:-1::0;;;;;2678:46:94;;;::::1;::::0;;;::::1;::::0;;2753:20:::1;:18;:20::i;:::-;2735:15;:38:::0;;-1:-1:-1;;;;;;2735:38:94::1;-1:-1:-1::0;;;;;2735:38:94;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1116:6274:94;;-1:-1:-1;;;;1116:6274:94;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;6581:125:94:-;6625:7;6660:29;-1:-1:-1;;;6660:19:94;:29::i;:::-;6645:45;;6581:125;:::o;6883:185::-;6942:22;7007:44;;:19;:44::i;6714:161::-;6767:16;6820:38;-1:-1:-1;;;7241:144:94;7342:9;;:35;;-1:-1:-1;;;7342:35:94;;;;;1058:25:103;;;7314:7:94;;-1:-1:-1;;;;;7342:9:94;;:21;;1031:18:103;;7342:35:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7335:42;;7241:144;;;;:::o;7076:157::-;7128:15;7179:37;-1:-1:-1;;;7179:19:94;:37::i;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;196:218;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:488::-;;;;;;610:3;598:9;589:7;585:23;581:33;578:2;;;632:6;624;617:22;578:2;666:9;660:16;650:26;;695:49;740:2;729:9;725:18;695:49;:::i;:::-;685:59;;784:2;773:9;769:18;763:25;753:35;;828:2;817:9;813:18;807:25;797:35;;851:50;896:3;885:9;881:19;851:50;:::i;:::-;841:60;;568:339;;;;;;;;:::o;1013:76::-;1116:6274:94;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:13273:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"71:107:103","statements":[{"nodeType":"YulAssignment","src":"81:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"96:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"90:5:103"},"nodeType":"YulFunctionCall","src":"90:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"81:5:103"}]},{"body":{"nodeType":"YulBlock","src":"156:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"165:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"168:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"158:6:103"},"nodeType":"YulFunctionCall","src":"158:12:103"},"nodeType":"YulExpressionStatement","src":"158:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"125:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"146:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"139:6:103"},"nodeType":"YulFunctionCall","src":"139:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"122:2:103"},"nodeType":"YulFunctionCall","src":"122:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"115:6:103"},"nodeType":"YulFunctionCall","src":"115:40:103"},"nodeType":"YulIf","src":"112:2:103"}]},"name":"abi_decode_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"50:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"61:5:103","type":""}],"src":"14:164:103"},{"body":{"nodeType":"YulBlock","src":"255:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"304:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"313:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"323:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"306:6:103"},"nodeType":"YulFunctionCall","src":"306:26:103"},"nodeType":"YulExpressionStatement","src":"306:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"283:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"291:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"298:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"268:6:103"},"nodeType":"YulFunctionCall","src":"268:35:103"},"nodeType":"YulIf","src":"265:2:103"},{"nodeType":"YulAssignment","src":"343:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"366:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"353:12:103"},"nodeType":"YulFunctionCall","src":"353:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"343:6:103"}]},{"body":{"nodeType":"YulBlock","src":"416:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"425:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"435:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"418:6:103"},"nodeType":"YulFunctionCall","src":"418:26:103"},"nodeType":"YulExpressionStatement","src":"418:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"388:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"396:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"385:2:103"},"nodeType":"YulFunctionCall","src":"385:30:103"},"nodeType":"YulIf","src":"382:2:103"},{"nodeType":"YulAssignment","src":"455:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"471:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"479:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"467:3:103"},"nodeType":"YulFunctionCall","src":"467:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"455:8:103"}]},{"body":{"nodeType":"YulBlock","src":"536:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"545:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"548:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"538:6:103"},"nodeType":"YulFunctionCall","src":"538:12:103"},"nodeType":"YulExpressionStatement","src":"538:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"507:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"515:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"503:3:103"},"nodeType":"YulFunctionCall","src":"503:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"524:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"499:3:103"},"nodeType":"YulFunctionCall","src":"499:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"531:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"496:2:103"},"nodeType":"YulFunctionCall","src":"496:39:103"},"nodeType":"YulIf","src":"493:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"218:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"226:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"234:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"244:6:103","type":""}],"src":"183:375:103"},{"body":{"nodeType":"YulBlock","src":"626:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"675:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"684:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"691:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"677:6:103"},"nodeType":"YulFunctionCall","src":"677:20:103"},"nodeType":"YulExpressionStatement","src":"677:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"654:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"662:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"650:3:103"},"nodeType":"YulFunctionCall","src":"650:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"669:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"646:3:103"},"nodeType":"YulFunctionCall","src":"646:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"639:6:103"},"nodeType":"YulFunctionCall","src":"639:35:103"},"nodeType":"YulIf","src":"636:2:103"},{"nodeType":"YulVariableDeclaration","src":"708:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"724:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"718:5:103"},"nodeType":"YulFunctionCall","src":"718:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"712:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"770:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"772:16:103"},"nodeType":"YulFunctionCall","src":"772:18:103"},"nodeType":"YulExpressionStatement","src":"772:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"746:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"750:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"743:2:103"},"nodeType":"YulFunctionCall","src":"743:26:103"},"nodeType":"YulIf","src":"740:2:103"},{"nodeType":"YulVariableDeclaration","src":"801:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"844:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"848:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"840:3:103"},"nodeType":"YulFunctionCall","src":"840:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"859:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"855:3:103"},"nodeType":"YulFunctionCall","src":"855:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"836:3:103"},"nodeType":"YulFunctionCall","src":"836:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"832:3:103"},"nodeType":"YulFunctionCall","src":"832:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"816:15:103"},"nodeType":"YulFunctionCall","src":"816:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"805:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"887:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"896:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"880:6:103"},"nodeType":"YulFunctionCall","src":"880:19:103"},"nodeType":"YulExpressionStatement","src":"880:19:103"},{"body":{"nodeType":"YulBlock","src":"947:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"956:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"963:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"949:6:103"},"nodeType":"YulFunctionCall","src":"949:20:103"},"nodeType":"YulExpressionStatement","src":"949:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"922:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"930:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"918:3:103"},"nodeType":"YulFunctionCall","src":"918:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"935:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"914:3:103"},"nodeType":"YulFunctionCall","src":"914:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"942:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"911:2:103"},"nodeType":"YulFunctionCall","src":"911:35:103"},"nodeType":"YulIf","src":"908:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1006:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1014:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1002:3:103"},"nodeType":"YulFunctionCall","src":"1002:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1025:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"1034:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1021:3:103"},"nodeType":"YulFunctionCall","src":"1021:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1041:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"980:21:103"},"nodeType":"YulFunctionCall","src":"980:64:103"},"nodeType":"YulExpressionStatement","src":"980:64:103"},{"nodeType":"YulAssignment","src":"1053:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"1062:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1053:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"600:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"608:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"616:5:103","type":""}],"src":"563:512:103"},{"body":{"nodeType":"YulBlock","src":"1153:87:103","statements":[{"nodeType":"YulAssignment","src":"1163:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1178:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1172:5:103"},"nodeType":"YulFunctionCall","src":"1172:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1163:5:103"}]},{"body":{"nodeType":"YulBlock","src":"1218:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1227:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1230:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1220:6:103"},"nodeType":"YulFunctionCall","src":"1220:12:103"},"nodeType":"YulExpressionStatement","src":"1220:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1207:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1214:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1204:2:103"},"nodeType":"YulFunctionCall","src":"1204:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1197:6:103"},"nodeType":"YulFunctionCall","src":"1197:20:103"},"nodeType":"YulIf","src":"1194:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1132:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1143:5:103","type":""}],"src":"1080:160:103"},{"body":{"nodeType":"YulBlock","src":"1315:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1361:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1370:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1378:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1363:6:103"},"nodeType":"YulFunctionCall","src":"1363:22:103"},"nodeType":"YulExpressionStatement","src":"1363:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1336:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1345:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1332:3:103"},"nodeType":"YulFunctionCall","src":"1332:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1357:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1328:3:103"},"nodeType":"YulFunctionCall","src":"1328:32:103"},"nodeType":"YulIf","src":"1325:2:103"},{"nodeType":"YulVariableDeclaration","src":"1396:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1422:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1409:12:103"},"nodeType":"YulFunctionCall","src":"1409:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1400:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1466:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1441:24:103"},"nodeType":"YulFunctionCall","src":"1441:31:103"},"nodeType":"YulExpressionStatement","src":"1441:31:103"},{"nodeType":"YulAssignment","src":"1481:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1491:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1481:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1281:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1292:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1304:6:103","type":""}],"src":"1245:257:103"},{"body":{"nodeType":"YulBlock","src":"1588:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1634:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1643:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1651:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1636:6:103"},"nodeType":"YulFunctionCall","src":"1636:22:103"},"nodeType":"YulExpressionStatement","src":"1636:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1609:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1618:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1605:3:103"},"nodeType":"YulFunctionCall","src":"1605:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1630:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1601:3:103"},"nodeType":"YulFunctionCall","src":"1601:32:103"},"nodeType":"YulIf","src":"1598:2:103"},{"nodeType":"YulVariableDeclaration","src":"1669:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1688:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1682:5:103"},"nodeType":"YulFunctionCall","src":"1682:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1673:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1732:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1707:24:103"},"nodeType":"YulFunctionCall","src":"1707:31:103"},"nodeType":"YulExpressionStatement","src":"1707:31:103"},{"nodeType":"YulAssignment","src":"1747:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1757:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1747:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1554:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1565:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1577:6:103","type":""}],"src":"1507:261:103"},{"body":{"nodeType":"YulBlock","src":"1851:134:103","statements":[{"body":{"nodeType":"YulBlock","src":"1897:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1906:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1914:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1899:6:103"},"nodeType":"YulFunctionCall","src":"1899:22:103"},"nodeType":"YulExpressionStatement","src":"1899:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1872:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1881:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1868:3:103"},"nodeType":"YulFunctionCall","src":"1868:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1893:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:32:103"},"nodeType":"YulIf","src":"1861:2:103"},{"nodeType":"YulAssignment","src":"1932:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1969:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"1942:26:103"},"nodeType":"YulFunctionCall","src":"1942:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1932:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1817:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1828:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1840:6:103","type":""}],"src":"1773:212:103"},{"body":{"nodeType":"YulBlock","src":"2102:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"2148:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2157:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2165:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2150:6:103"},"nodeType":"YulFunctionCall","src":"2150:22:103"},"nodeType":"YulExpressionStatement","src":"2150:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2123:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2132:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2119:3:103"},"nodeType":"YulFunctionCall","src":"2119:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2144:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2115:3:103"},"nodeType":"YulFunctionCall","src":"2115:32:103"},"nodeType":"YulIf","src":"2112:2:103"},{"nodeType":"YulAssignment","src":"2183:47:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2220:9:103"}],"functionName":{"name":"abi_decode_bool_fromMemory","nodeType":"YulIdentifier","src":"2193:26:103"},"nodeType":"YulFunctionCall","src":"2193:37:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2183:6:103"}]},{"nodeType":"YulAssignment","src":"2239:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2259:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2270:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2255:3:103"},"nodeType":"YulFunctionCall","src":"2255:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2249:5:103"},"nodeType":"YulFunctionCall","src":"2249:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2239:6:103"}]},{"nodeType":"YulAssignment","src":"2283:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2303:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2314:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2299:3:103"},"nodeType":"YulFunctionCall","src":"2299:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2293:5:103"},"nodeType":"YulFunctionCall","src":"2293:25:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2283:6:103"}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2052:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2063:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2075:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2083:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2091:6:103","type":""}],"src":"1990:334:103"},{"body":{"nodeType":"YulBlock","src":"2399:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2445:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2454:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2462:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2447:6:103"},"nodeType":"YulFunctionCall","src":"2447:22:103"},"nodeType":"YulExpressionStatement","src":"2447:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2420:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2429:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2416:3:103"},"nodeType":"YulFunctionCall","src":"2416:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2441:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2412:3:103"},"nodeType":"YulFunctionCall","src":"2412:32:103"},"nodeType":"YulIf","src":"2409:2:103"},{"nodeType":"YulAssignment","src":"2480:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2503:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2490:12:103"},"nodeType":"YulFunctionCall","src":"2490:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2480:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2365:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2376:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2388:6:103","type":""}],"src":"2329:190:103"},{"body":{"nodeType":"YulBlock","src":"2605:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"2651:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2660:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2668:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2653:6:103"},"nodeType":"YulFunctionCall","src":"2653:22:103"},"nodeType":"YulExpressionStatement","src":"2653:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2626:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2635:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2622:3:103"},"nodeType":"YulFunctionCall","src":"2622:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2647:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2618:3:103"},"nodeType":"YulFunctionCall","src":"2618:32:103"},"nodeType":"YulIf","src":"2615:2:103"},{"nodeType":"YulAssignment","src":"2686:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2702:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2696:5:103"},"nodeType":"YulFunctionCall","src":"2696:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2686:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2571:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2582:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2594:6:103","type":""}],"src":"2524:194:103"},{"body":{"nodeType":"YulBlock","src":"2810:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2856:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2865:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2873:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2858:6:103"},"nodeType":"YulFunctionCall","src":"2858:22:103"},"nodeType":"YulExpressionStatement","src":"2858:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2831:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2840:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2827:3:103"},"nodeType":"YulFunctionCall","src":"2827:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2852:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2823:3:103"},"nodeType":"YulFunctionCall","src":"2823:32:103"},"nodeType":"YulIf","src":"2820:2:103"},{"nodeType":"YulAssignment","src":"2891:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2914:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2901:12:103"},"nodeType":"YulFunctionCall","src":"2901:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2891:6:103"}]},{"nodeType":"YulAssignment","src":"2933:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2960:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2971:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2956:3:103"},"nodeType":"YulFunctionCall","src":"2956:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2943:12:103"},"nodeType":"YulFunctionCall","src":"2943:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2933:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2768:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2779:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2791:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2799:6:103","type":""}],"src":"2723:258:103"},{"body":{"nodeType":"YulBlock","src":"3093:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"3139:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3148:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3156:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3141:6:103"},"nodeType":"YulFunctionCall","src":"3141:22:103"},"nodeType":"YulExpressionStatement","src":"3141:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3114:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3123:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3110:3:103"},"nodeType":"YulFunctionCall","src":"3110:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3135:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3106:3:103"},"nodeType":"YulFunctionCall","src":"3106:32:103"},"nodeType":"YulIf","src":"3103:2:103"},{"nodeType":"YulVariableDeclaration","src":"3174:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3194:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3188:5:103"},"nodeType":"YulFunctionCall","src":"3188:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3178:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3213:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3223:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3217:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3268:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3277:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3285:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3270:6:103"},"nodeType":"YulFunctionCall","src":"3270:22:103"},"nodeType":"YulExpressionStatement","src":"3270:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3256:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3264:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3253:2:103"},"nodeType":"YulFunctionCall","src":"3253:14:103"},"nodeType":"YulIf","src":"3250:2:103"},{"nodeType":"YulVariableDeclaration","src":"3303:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3317:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3328:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3313:3:103"},"nodeType":"YulFunctionCall","src":"3313:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3307:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3375:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3384:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3392:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3377:6:103"},"nodeType":"YulFunctionCall","src":"3377:22:103"},"nodeType":"YulExpressionStatement","src":"3377:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3355:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"3364:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3351:3:103"},"nodeType":"YulFunctionCall","src":"3351:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3369:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3347:3:103"},"nodeType":"YulFunctionCall","src":"3347:27:103"},"nodeType":"YulIf","src":"3344:2:103"},{"nodeType":"YulVariableDeclaration","src":"3410:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3439:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"3423:15:103"},"nodeType":"YulFunctionCall","src":"3423:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3414:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3453:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3474:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3468:5:103"},"nodeType":"YulFunctionCall","src":"3468:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"3457:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"3511:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3486:24:103"},"nodeType":"YulFunctionCall","src":"3486:33:103"},"nodeType":"YulExpressionStatement","src":"3486:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3535:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"3542:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3528:6:103"},"nodeType":"YulFunctionCall","src":"3528:22:103"},"nodeType":"YulExpressionStatement","src":"3528:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3570:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3577:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3566:3:103"},"nodeType":"YulFunctionCall","src":"3566:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3592:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3596:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3588:3:103"},"nodeType":"YulFunctionCall","src":"3588:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3582:5:103"},"nodeType":"YulFunctionCall","src":"3582:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3559:6:103"},"nodeType":"YulFunctionCall","src":"3559:42:103"},"nodeType":"YulExpressionStatement","src":"3559:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3621:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3617:3:103"},"nodeType":"YulFunctionCall","src":"3617:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3680:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3684:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3676:3:103"},"nodeType":"YulFunctionCall","src":"3676:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"3633:42:103"},"nodeType":"YulFunctionCall","src":"3633:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3610:6:103"},"nodeType":"YulFunctionCall","src":"3610:79:103"},"nodeType":"YulExpressionStatement","src":"3610:79:103"},{"nodeType":"YulVariableDeclaration","src":"3698:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3724:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3728:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3720:3:103"},"nodeType":"YulFunctionCall","src":"3720:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3714:5:103"},"nodeType":"YulFunctionCall","src":"3714:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3702:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3761:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3770:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3778:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3763:6:103"},"nodeType":"YulFunctionCall","src":"3763:22:103"},"nodeType":"YulExpressionStatement","src":"3763:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3747:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3757:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3744:2:103"},"nodeType":"YulFunctionCall","src":"3744:16:103"},"nodeType":"YulIf","src":"3741:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3807:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3814:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3803:3:103"},"nodeType":"YulFunctionCall","src":"3803:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3851:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3855:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3847:3:103"},"nodeType":"YulFunctionCall","src":"3847:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3866:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"3819:27:103"},"nodeType":"YulFunctionCall","src":"3819:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3796:6:103"},"nodeType":"YulFunctionCall","src":"3796:79:103"},"nodeType":"YulExpressionStatement","src":"3796:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3895:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3902:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3891:3:103"},"nodeType":"YulFunctionCall","src":"3891:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3918:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3922:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3914:3:103"},"nodeType":"YulFunctionCall","src":"3914:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3908:5:103"},"nodeType":"YulFunctionCall","src":"3908:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3884:6:103"},"nodeType":"YulFunctionCall","src":"3884:44:103"},"nodeType":"YulExpressionStatement","src":"3884:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3948:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3955:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3944:3:103"},"nodeType":"YulFunctionCall","src":"3944:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3971:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3975:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3967:3:103"},"nodeType":"YulFunctionCall","src":"3967:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3961:5:103"},"nodeType":"YulFunctionCall","src":"3961:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3937:6:103"},"nodeType":"YulFunctionCall","src":"3937:44:103"},"nodeType":"YulExpressionStatement","src":"3937:44:103"},{"nodeType":"YulAssignment","src":"3990:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4000:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3990:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3059:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3070:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3082:6:103","type":""}],"src":"2986:1025:103"},{"body":{"nodeType":"YulBlock","src":"4121:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4131:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4141:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4135:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4189:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4198:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4206:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4191:6:103"},"nodeType":"YulFunctionCall","src":"4191:22:103"},"nodeType":"YulExpressionStatement","src":"4191:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4164:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4173:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4160:3:103"},"nodeType":"YulFunctionCall","src":"4160:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4185:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4156:3:103"},"nodeType":"YulFunctionCall","src":"4156:32:103"},"nodeType":"YulIf","src":"4153:2:103"},{"nodeType":"YulVariableDeclaration","src":"4224:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"4253:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4237:15:103"},"nodeType":"YulFunctionCall","src":"4237:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4228:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4272:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"4279:42:103"},"nodeType":"YulFunctionCall","src":"4279:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4265:6:103"},"nodeType":"YulFunctionCall","src":"4265:68:103"},"nodeType":"YulExpressionStatement","src":"4265:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4353:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4360:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4349:3:103"},"nodeType":"YulFunctionCall","src":"4349:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4375:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4386:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4371:3:103"},"nodeType":"YulFunctionCall","src":"4371:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4365:5:103"},"nodeType":"YulFunctionCall","src":"4365:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4342:6:103"},"nodeType":"YulFunctionCall","src":"4342:49:103"},"nodeType":"YulExpressionStatement","src":"4342:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4411:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4418:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4407:3:103"},"nodeType":"YulFunctionCall","src":"4407:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4444:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4429:3:103"},"nodeType":"YulFunctionCall","src":"4429:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4423:5:103"},"nodeType":"YulFunctionCall","src":"4423:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4400:6:103"},"nodeType":"YulFunctionCall","src":"4400:49:103"},"nodeType":"YulExpressionStatement","src":"4400:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4469:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4476:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4465:3:103"},"nodeType":"YulFunctionCall","src":"4465:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4491:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4502:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4487:3:103"},"nodeType":"YulFunctionCall","src":"4487:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4481:5:103"},"nodeType":"YulFunctionCall","src":"4481:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4458:6:103"},"nodeType":"YulFunctionCall","src":"4458:49:103"},"nodeType":"YulExpressionStatement","src":"4458:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4527:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4534:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4523:3:103"},"nodeType":"YulFunctionCall","src":"4523:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4550:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4561:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4546:3:103"},"nodeType":"YulFunctionCall","src":"4546:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4540:5:103"},"nodeType":"YulFunctionCall","src":"4540:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4516:6:103"},"nodeType":"YulFunctionCall","src":"4516:51:103"},"nodeType":"YulExpressionStatement","src":"4516:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4587:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4594:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4583:3:103"},"nodeType":"YulFunctionCall","src":"4583:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4610:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4621:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4606:3:103"},"nodeType":"YulFunctionCall","src":"4606:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4600:5:103"},"nodeType":"YulFunctionCall","src":"4600:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4576:6:103"},"nodeType":"YulFunctionCall","src":"4576:51:103"},"nodeType":"YulExpressionStatement","src":"4576:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4647:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4654:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4643:3:103"},"nodeType":"YulFunctionCall","src":"4643:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4670:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4681:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4666:3:103"},"nodeType":"YulFunctionCall","src":"4666:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4660:5:103"},"nodeType":"YulFunctionCall","src":"4660:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4636:6:103"},"nodeType":"YulFunctionCall","src":"4636:51:103"},"nodeType":"YulExpressionStatement","src":"4636:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4707:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4714:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4703:3:103"},"nodeType":"YulFunctionCall","src":"4703:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4730:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4741:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4726:3:103"},"nodeType":"YulFunctionCall","src":"4726:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4720:5:103"},"nodeType":"YulFunctionCall","src":"4720:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4696:6:103"},"nodeType":"YulFunctionCall","src":"4696:51:103"},"nodeType":"YulExpressionStatement","src":"4696:51:103"},{"nodeType":"YulVariableDeclaration","src":"4756:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4766:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4760:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4789:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4796:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4785:3:103"},"nodeType":"YulFunctionCall","src":"4785:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4811:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4822:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4807:3:103"},"nodeType":"YulFunctionCall","src":"4807:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4801:5:103"},"nodeType":"YulFunctionCall","src":"4801:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4778:6:103"},"nodeType":"YulFunctionCall","src":"4778:49:103"},"nodeType":"YulExpressionStatement","src":"4778:49:103"},{"nodeType":"YulAssignment","src":"4836:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4846:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4836:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4087:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4098:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4110:6:103","type":""}],"src":"4016:841:103"},{"body":{"nodeType":"YulBlock","src":"4932:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"4978:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4987:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4995:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4980:6:103"},"nodeType":"YulFunctionCall","src":"4980:22:103"},"nodeType":"YulExpressionStatement","src":"4980:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4953:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4962:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4949:3:103"},"nodeType":"YulFunctionCall","src":"4949:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4974:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4945:3:103"},"nodeType":"YulFunctionCall","src":"4945:32:103"},"nodeType":"YulIf","src":"4942:2:103"},{"nodeType":"YulAssignment","src":"5013:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5036:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5023:12:103"},"nodeType":"YulFunctionCall","src":"5023:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5013:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4898:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4909:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4921:6:103","type":""}],"src":"4862:190:103"},{"body":{"nodeType":"YulBlock","src":"5138:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"5184:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5193:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5201:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5186:6:103"},"nodeType":"YulFunctionCall","src":"5186:22:103"},"nodeType":"YulExpressionStatement","src":"5186:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5159:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5168:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5155:3:103"},"nodeType":"YulFunctionCall","src":"5155:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5180:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5151:3:103"},"nodeType":"YulFunctionCall","src":"5151:32:103"},"nodeType":"YulIf","src":"5148:2:103"},{"nodeType":"YulAssignment","src":"5219:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5235:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5229:5:103"},"nodeType":"YulFunctionCall","src":"5229:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5219:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5104:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5115:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5127:6:103","type":""}],"src":"5057:194:103"},{"body":{"nodeType":"YulBlock","src":"5354:157:103","statements":[{"body":{"nodeType":"YulBlock","src":"5400:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5409:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5417:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5402:6:103"},"nodeType":"YulFunctionCall","src":"5402:22:103"},"nodeType":"YulExpressionStatement","src":"5402:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5375:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5384:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5371:3:103"},"nodeType":"YulFunctionCall","src":"5371:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5396:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5367:3:103"},"nodeType":"YulFunctionCall","src":"5367:32:103"},"nodeType":"YulIf","src":"5364:2:103"},{"nodeType":"YulAssignment","src":"5435:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5451:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5445:5:103"},"nodeType":"YulFunctionCall","src":"5445:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5435:6:103"}]},{"nodeType":"YulAssignment","src":"5470:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5490:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5501:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5486:3:103"},"nodeType":"YulFunctionCall","src":"5486:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5480:5:103"},"nodeType":"YulFunctionCall","src":"5480:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5470:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5312:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5323:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5335:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5343:6:103","type":""}],"src":"5256:255:103"},{"body":{"nodeType":"YulBlock","src":"5675:725:103","statements":[{"body":{"nodeType":"YulBlock","src":"5722:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5731:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5739:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5724:6:103"},"nodeType":"YulFunctionCall","src":"5724:22:103"},"nodeType":"YulExpressionStatement","src":"5724:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5696:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5705:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5692:3:103"},"nodeType":"YulFunctionCall","src":"5692:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5717:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5688:3:103"},"nodeType":"YulFunctionCall","src":"5688:33:103"},"nodeType":"YulIf","src":"5685:2:103"},{"nodeType":"YulAssignment","src":"5757:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5780:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5767:12:103"},"nodeType":"YulFunctionCall","src":"5767:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5757:6:103"}]},{"nodeType":"YulAssignment","src":"5799:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5826:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5837:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5822:3:103"},"nodeType":"YulFunctionCall","src":"5822:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5809:12:103"},"nodeType":"YulFunctionCall","src":"5809:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5799:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5850:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5881:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5892:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5877:3:103"},"nodeType":"YulFunctionCall","src":"5877:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5864:12:103"},"nodeType":"YulFunctionCall","src":"5864:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5854:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5905:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5915:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5909:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5960:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5969:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5977:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5962:6:103"},"nodeType":"YulFunctionCall","src":"5962:22:103"},"nodeType":"YulExpressionStatement","src":"5962:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5948:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5956:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5945:2:103"},"nodeType":"YulFunctionCall","src":"5945:14:103"},"nodeType":"YulIf","src":"5942:2:103"},{"nodeType":"YulVariableDeclaration","src":"5995:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6051:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6062:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6047:3:103"},"nodeType":"YulFunctionCall","src":"6047:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6071:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"6021:25:103"},"nodeType":"YulFunctionCall","src":"6021:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"5999:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"6009:8:103","type":""}]},{"nodeType":"YulAssignment","src":"6088:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"6098:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6088:6:103"}]},{"nodeType":"YulAssignment","src":"6115:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"6125:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6115:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"6142:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6186:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6171:3:103"},"nodeType":"YulFunctionCall","src":"6171:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6158:12:103"},"nodeType":"YulFunctionCall","src":"6158:32:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6146:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6219:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"6228:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"6236:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6221:6:103"},"nodeType":"YulFunctionCall","src":"6221:22:103"},"nodeType":"YulExpressionStatement","src":"6221:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6205:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6215:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6202:2:103"},"nodeType":"YulFunctionCall","src":"6202:16:103"},"nodeType":"YulIf","src":"6199:2:103"},{"nodeType":"YulVariableDeclaration","src":"6254:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6310:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6321:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6306:3:103"},"nodeType":"YulFunctionCall","src":"6306:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6332:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"6280:25:103"},"nodeType":"YulFunctionCall","src":"6280:60:103"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"6258:8:103","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"6268:8:103","type":""}]},{"nodeType":"YulAssignment","src":"6349:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"6359:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"6349:6:103"}]},{"nodeType":"YulAssignment","src":"6376:18:103","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"6386:8:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"6376:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5601:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5612:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5624:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5632:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5640:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5648:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"5656:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"5664:6:103","type":""}],"src":"5516:884:103"},{"body":{"nodeType":"YulBlock","src":"6471:202:103","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6488:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"6493:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6481:6:103"},"nodeType":"YulFunctionCall","src":"6481:19:103"},"nodeType":"YulExpressionStatement","src":"6481:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6526:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"6531:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6522:3:103"},"nodeType":"YulFunctionCall","src":"6522:14:103"},{"name":"start","nodeType":"YulIdentifier","src":"6538:5:103"},{"name":"length","nodeType":"YulIdentifier","src":"6545:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"6509:12:103"},"nodeType":"YulFunctionCall","src":"6509:43:103"},"nodeType":"YulExpressionStatement","src":"6509:43:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6576:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"6581:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6572:3:103"},"nodeType":"YulFunctionCall","src":"6572:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"6590:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6568:3:103"},"nodeType":"YulFunctionCall","src":"6568:27:103"},{"name":"end","nodeType":"YulIdentifier","src":"6597:3:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6561:6:103"},"nodeType":"YulFunctionCall","src":"6561:40:103"},"nodeType":"YulExpressionStatement","src":"6561:40:103"},{"nodeType":"YulAssignment","src":"6610:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6625:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6638:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6646:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6634:3:103"},"nodeType":"YulFunctionCall","src":"6634:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6655:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6651:3:103"},"nodeType":"YulFunctionCall","src":"6651:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6630:3:103"},"nodeType":"YulFunctionCall","src":"6630:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6621:3:103"},"nodeType":"YulFunctionCall","src":"6621:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"6662:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6617:3:103"},"nodeType":"YulFunctionCall","src":"6617:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6610:3:103"}]}]},"name":"abi_encode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"6440:5:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"6447:6:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6455:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6463:3:103","type":""}],"src":"6405:268:103"},{"body":{"nodeType":"YulBlock","src":"6727:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"6737:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6757:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6751:5:103"},"nodeType":"YulFunctionCall","src":"6751:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6741:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6779:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"6784:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6772:6:103"},"nodeType":"YulFunctionCall","src":"6772:19:103"},"nodeType":"YulExpressionStatement","src":"6772:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6826:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6833:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6822:3:103"},"nodeType":"YulFunctionCall","src":"6822:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6844:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"6849:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6840:3:103"},"nodeType":"YulFunctionCall","src":"6840:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"6856:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6800:21:103"},"nodeType":"YulFunctionCall","src":"6800:63:103"},"nodeType":"YulExpressionStatement","src":"6800:63:103"},{"nodeType":"YulAssignment","src":"6872:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6887:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6900:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"6908:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6896:3:103"},"nodeType":"YulFunctionCall","src":"6896:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6917:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6913:3:103"},"nodeType":"YulFunctionCall","src":"6913:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6892:3:103"},"nodeType":"YulFunctionCall","src":"6892:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6883:3:103"},"nodeType":"YulFunctionCall","src":"6883:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"6924:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6879:3:103"},"nodeType":"YulFunctionCall","src":"6879:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6872:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6704:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6711:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6719:3:103","type":""}],"src":"6678:257:103"},{"body":{"nodeType":"YulBlock","src":"7041:102:103","statements":[{"nodeType":"YulAssignment","src":"7051:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7063:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7074:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7059:3:103"},"nodeType":"YulFunctionCall","src":"7059:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7051:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7093:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7108:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7124:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7129:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7120:3:103"},"nodeType":"YulFunctionCall","src":"7120:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7133:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7116:3:103"},"nodeType":"YulFunctionCall","src":"7116:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7104:3:103"},"nodeType":"YulFunctionCall","src":"7104:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7086:6:103"},"nodeType":"YulFunctionCall","src":"7086:51:103"},"nodeType":"YulExpressionStatement","src":"7086:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7010:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7021:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7032:4:103","type":""}],"src":"6940:203:103"},{"body":{"nodeType":"YulBlock","src":"7425:404:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7442:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7457:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7473:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7478:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7469:3:103"},"nodeType":"YulFunctionCall","src":"7469:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"7482:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7465:3:103"},"nodeType":"YulFunctionCall","src":"7465:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7453:3:103"},"nodeType":"YulFunctionCall","src":"7453:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7435:6:103"},"nodeType":"YulFunctionCall","src":"7435:51:103"},"nodeType":"YulExpressionStatement","src":"7435:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7506:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7517:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7502:3:103"},"nodeType":"YulFunctionCall","src":"7502:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7522:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7495:6:103"},"nodeType":"YulFunctionCall","src":"7495:34:103"},"nodeType":"YulExpressionStatement","src":"7495:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7549:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7560:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7545:3:103"},"nodeType":"YulFunctionCall","src":"7545:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"7565:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7538:6:103"},"nodeType":"YulFunctionCall","src":"7538:34:103"},"nodeType":"YulExpressionStatement","src":"7538:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7603:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7588:3:103"},"nodeType":"YulFunctionCall","src":"7588:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7608:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7581:6:103"},"nodeType":"YulFunctionCall","src":"7581:31:103"},"nodeType":"YulExpressionStatement","src":"7581:31:103"},{"nodeType":"YulVariableDeclaration","src":"7621:76:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7661:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"7669:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7681:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7692:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7677:3:103"},"nodeType":"YulFunctionCall","src":"7677:19:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"7635:25:103"},"nodeType":"YulFunctionCall","src":"7635:62:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"7625:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7717:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7728:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7713:3:103"},"nodeType":"YulFunctionCall","src":"7713:19:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"7738:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7746:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7734:3:103"},"nodeType":"YulFunctionCall","src":"7734:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7706:6:103"},"nodeType":"YulFunctionCall","src":"7706:51:103"},"nodeType":"YulExpressionStatement","src":"7706:51:103"},{"nodeType":"YulAssignment","src":"7766:57:103","value":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"7800:6:103"},{"name":"value6","nodeType":"YulIdentifier","src":"7808:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"7816:6:103"}],"functionName":{"name":"abi_encode_bytes_calldata","nodeType":"YulIdentifier","src":"7774:25:103"},"nodeType":"YulFunctionCall","src":"7774:49:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7766:4:103"}]}]},"name":"abi_encode_tuple_t_address_payable_t_uint256_t_uint256_t_bytes_calldata_ptr_t_bytes_calldata_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7346:9:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"7357:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"7365:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7373:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7381:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7389:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7397:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7405:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7416:4:103","type":""}],"src":"7148:681:103"},{"body":{"nodeType":"YulBlock","src":"7929:92:103","statements":[{"nodeType":"YulAssignment","src":"7939:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7951:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7962:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7947:3:103"},"nodeType":"YulFunctionCall","src":"7947:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7939:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7981:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8006:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7999:6:103"},"nodeType":"YulFunctionCall","src":"7999:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7992:6:103"},"nodeType":"YulFunctionCall","src":"7992:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7974:6:103"},"nodeType":"YulFunctionCall","src":"7974:41:103"},"nodeType":"YulExpressionStatement","src":"7974:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7898:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7909:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7920:4:103","type":""}],"src":"7834:187:103"},{"body":{"nodeType":"YulBlock","src":"8127:76:103","statements":[{"nodeType":"YulAssignment","src":"8137:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8149:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8160:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8145:3:103"},"nodeType":"YulFunctionCall","src":"8145:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8137:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8179:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8190:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8172:6:103"},"nodeType":"YulFunctionCall","src":"8172:25:103"},"nodeType":"YulExpressionStatement","src":"8172:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8096:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8107:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8118:4:103","type":""}],"src":"8026:177:103"},{"body":{"nodeType":"YulBlock","src":"8337:119:103","statements":[{"nodeType":"YulAssignment","src":"8347:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8359:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8370:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8355:3:103"},"nodeType":"YulFunctionCall","src":"8355:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8347:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8389:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8400:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8382:6:103"},"nodeType":"YulFunctionCall","src":"8382:25:103"},"nodeType":"YulExpressionStatement","src":"8382:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8427:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8438:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8423:3:103"},"nodeType":"YulFunctionCall","src":"8423:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8443:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8416:6:103"},"nodeType":"YulFunctionCall","src":"8416:34:103"},"nodeType":"YulExpressionStatement","src":"8416:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8298:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8309:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8317:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8328:4:103","type":""}],"src":"8208:248:103"},{"body":{"nodeType":"YulBlock","src":"8636:184:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8653:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8664:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8646:6:103"},"nodeType":"YulFunctionCall","src":"8646:25:103"},"nodeType":"YulExpressionStatement","src":"8646:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8691:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8702:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8687:3:103"},"nodeType":"YulFunctionCall","src":"8687:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"8707:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8680:6:103"},"nodeType":"YulFunctionCall","src":"8680:34:103"},"nodeType":"YulExpressionStatement","src":"8680:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8734:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8745:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8730:3:103"},"nodeType":"YulFunctionCall","src":"8730:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8750:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8723:6:103"},"nodeType":"YulFunctionCall","src":"8723:30:103"},"nodeType":"YulExpressionStatement","src":"8723:30:103"},{"nodeType":"YulAssignment","src":"8762:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8787:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8810:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8795:3:103"},"nodeType":"YulFunctionCall","src":"8795:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8770:16:103"},"nodeType":"YulFunctionCall","src":"8770:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8762:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8589:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8600:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8608:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8616:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8627:4:103","type":""}],"src":"8461:359:103"},{"body":{"nodeType":"YulBlock","src":"8982:162:103","statements":[{"nodeType":"YulAssignment","src":"8992:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9004:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9015:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9000:3:103"},"nodeType":"YulFunctionCall","src":"9000:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8992:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9034:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9045:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9027:6:103"},"nodeType":"YulFunctionCall","src":"9027:25:103"},"nodeType":"YulExpressionStatement","src":"9027:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9072:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9083:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9068:3:103"},"nodeType":"YulFunctionCall","src":"9068:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"9088:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9061:6:103"},"nodeType":"YulFunctionCall","src":"9061:34:103"},"nodeType":"YulExpressionStatement","src":"9061:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9115:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9126:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9111:3:103"},"nodeType":"YulFunctionCall","src":"9111:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9131:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9104:6:103"},"nodeType":"YulFunctionCall","src":"9104:34:103"},"nodeType":"YulExpressionStatement","src":"9104:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8935:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8946:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8954:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8962:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8973:4:103","type":""}],"src":"8825:319:103"},{"body":{"nodeType":"YulBlock","src":"9352:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9369:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9380:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9362:6:103"},"nodeType":"YulFunctionCall","src":"9362:25:103"},"nodeType":"YulExpressionStatement","src":"9362:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9407:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9418:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9403:3:103"},"nodeType":"YulFunctionCall","src":"9403:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"9423:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9396:6:103"},"nodeType":"YulFunctionCall","src":"9396:34:103"},"nodeType":"YulExpressionStatement","src":"9396:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9450:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9461:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9446:3:103"},"nodeType":"YulFunctionCall","src":"9446:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9466:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9439:6:103"},"nodeType":"YulFunctionCall","src":"9439:34:103"},"nodeType":"YulExpressionStatement","src":"9439:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9493:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9504:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9489:3:103"},"nodeType":"YulFunctionCall","src":"9489:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9509:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9482:6:103"},"nodeType":"YulFunctionCall","src":"9482:31:103"},"nodeType":"YulExpressionStatement","src":"9482:31:103"},{"nodeType":"YulAssignment","src":"9522:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9547:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9559:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9570:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9555:3:103"},"nodeType":"YulFunctionCall","src":"9555:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"9530:16:103"},"nodeType":"YulFunctionCall","src":"9530:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9522:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9297:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9308:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9316:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9324:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9332:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9343:4:103","type":""}],"src":"9149:432:103"},{"body":{"nodeType":"YulBlock","src":"9705:102:103","statements":[{"nodeType":"YulAssignment","src":"9715:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9738:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9723:3:103"},"nodeType":"YulFunctionCall","src":"9723:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9715:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9757:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9772:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9788:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9793:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9784:3:103"},"nodeType":"YulFunctionCall","src":"9784:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9797:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9780:3:103"},"nodeType":"YulFunctionCall","src":"9780:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9768:3:103"},"nodeType":"YulFunctionCall","src":"9768:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9750:6:103"},"nodeType":"YulFunctionCall","src":"9750:51:103"},"nodeType":"YulExpressionStatement","src":"9750:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9674:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9685:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9696:4:103","type":""}],"src":"9586:221:103"},{"body":{"nodeType":"YulBlock","src":"9930:132:103","statements":[{"nodeType":"YulAssignment","src":"9940:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9952:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9963:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9948:3:103"},"nodeType":"YulFunctionCall","src":"9948:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9940:4:103"}]},{"body":{"nodeType":"YulBlock","src":"10000:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"10002:16:103"},"nodeType":"YulFunctionCall","src":"10002:18:103"},"nodeType":"YulExpressionStatement","src":"10002:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9988:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9996:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"9985:2:103"},"nodeType":"YulFunctionCall","src":"9985:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9978:6:103"},"nodeType":"YulFunctionCall","src":"9978:21:103"},"nodeType":"YulIf","src":"9975:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10038:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10049:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10031:6:103"},"nodeType":"YulFunctionCall","src":"10031:25:103"},"nodeType":"YulExpressionStatement","src":"10031:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9899:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9910:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9921:4:103","type":""}],"src":"9812:250:103"},{"body":{"nodeType":"YulBlock","src":"10184:132:103","statements":[{"nodeType":"YulAssignment","src":"10194:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10206:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10217:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10202:3:103"},"nodeType":"YulFunctionCall","src":"10202:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10194:4:103"}]},{"body":{"nodeType":"YulBlock","src":"10254:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"10256:16:103"},"nodeType":"YulFunctionCall","src":"10256:18:103"},"nodeType":"YulExpressionStatement","src":"10256:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10242:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"10250:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10239:2:103"},"nodeType":"YulFunctionCall","src":"10239:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10232:6:103"},"nodeType":"YulFunctionCall","src":"10232:21:103"},"nodeType":"YulIf","src":"10229:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10292:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10303:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10285:6:103"},"nodeType":"YulFunctionCall","src":"10285:25:103"},"nodeType":"YulExpressionStatement","src":"10285:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10153:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10164:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10175:4:103","type":""}],"src":"10067:249:103"},{"body":{"nodeType":"YulBlock","src":"10428:87:103","statements":[{"nodeType":"YulAssignment","src":"10438:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10450:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10461:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10446:3:103"},"nodeType":"YulFunctionCall","src":"10446:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10438:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10480:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10495:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"10503:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10491:3:103"},"nodeType":"YulFunctionCall","src":"10491:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10473:6:103"},"nodeType":"YulFunctionCall","src":"10473:36:103"},"nodeType":"YulExpressionStatement","src":"10473:36:103"}]},"name":"abi_encode_tuple_t_rational_0_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10397:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10408:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10419:4:103","type":""}],"src":"10321:194:103"},{"body":{"nodeType":"YulBlock","src":"10641:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10658:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10669:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10651:6:103"},"nodeType":"YulFunctionCall","src":"10651:21:103"},"nodeType":"YulExpressionStatement","src":"10651:21:103"},{"nodeType":"YulAssignment","src":"10681:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10706:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10718:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10729:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10714:3:103"},"nodeType":"YulFunctionCall","src":"10714:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"10689:16:103"},"nodeType":"YulFunctionCall","src":"10689:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10681:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10610:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10621:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10632:4:103","type":""}],"src":"10520:219:103"},{"body":{"nodeType":"YulBlock","src":"10918:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10935:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10946:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10928:6:103"},"nodeType":"YulFunctionCall","src":"10928:21:103"},"nodeType":"YulExpressionStatement","src":"10928:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10980:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10965:3:103"},"nodeType":"YulFunctionCall","src":"10965:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10985:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10958:6:103"},"nodeType":"YulFunctionCall","src":"10958:30:103"},"nodeType":"YulExpressionStatement","src":"10958:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11008:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11019:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11004:3:103"},"nodeType":"YulFunctionCall","src":"11004:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11024:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10997:6:103"},"nodeType":"YulFunctionCall","src":"10997:62:103"},"nodeType":"YulExpressionStatement","src":"10997:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11079:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11090:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11075:3:103"},"nodeType":"YulFunctionCall","src":"11075:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11095:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11068:6:103"},"nodeType":"YulFunctionCall","src":"11068:36:103"},"nodeType":"YulExpressionStatement","src":"11068:36:103"},{"nodeType":"YulAssignment","src":"11113:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11125:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11136:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11121:3:103"},"nodeType":"YulFunctionCall","src":"11121:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11113:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10895:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10909:4:103","type":""}],"src":"10744:402:103"},{"body":{"nodeType":"YulBlock","src":"11325:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11353:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11335:6:103"},"nodeType":"YulFunctionCall","src":"11335:21:103"},"nodeType":"YulExpressionStatement","src":"11335:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11376:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11387:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11372:3:103"},"nodeType":"YulFunctionCall","src":"11372:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11392:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11365:6:103"},"nodeType":"YulFunctionCall","src":"11365:30:103"},"nodeType":"YulExpressionStatement","src":"11365:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11426:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11411:3:103"},"nodeType":"YulFunctionCall","src":"11411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11431:34:103","type":"","value":"ERROR:TCP-1:INVALID_POLICY_OR_HO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11404:6:103"},"nodeType":"YulFunctionCall","src":"11404:62:103"},"nodeType":"YulExpressionStatement","src":"11404:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11486:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11497:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11482:3:103"},"nodeType":"YulFunctionCall","src":"11482:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11502:6:103","type":"","value":"LDER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11475:6:103"},"nodeType":"YulFunctionCall","src":"11475:34:103"},"nodeType":"YulExpressionStatement","src":"11475:34:103"},{"nodeType":"YulAssignment","src":"11518:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11541:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11526:3:103"},"nodeType":"YulFunctionCall","src":"11526:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11518:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_45b7c023a985c9e867fb92bc16a50e3a4287536d298108f611ee335f5fdad6ba__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11302:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11316:4:103","type":""}],"src":"11151:400:103"},{"body":{"nodeType":"YulBlock","src":"11730:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11747:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11758:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11740:6:103"},"nodeType":"YulFunctionCall","src":"11740:21:103"},"nodeType":"YulExpressionStatement","src":"11740:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11792:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11777:3:103"},"nodeType":"YulFunctionCall","src":"11777:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11797:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11770:6:103"},"nodeType":"YulFunctionCall","src":"11770:30:103"},"nodeType":"YulExpressionStatement","src":"11770:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11820:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11831:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11816:3:103"},"nodeType":"YulFunctionCall","src":"11816:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11836:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11809:6:103"},"nodeType":"YulFunctionCall","src":"11809:62:103"},"nodeType":"YulExpressionStatement","src":"11809:62:103"},{"nodeType":"YulAssignment","src":"11880:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11892:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11903:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11888:3:103"},"nodeType":"YulFunctionCall","src":"11888:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11880:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11707:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11721:4:103","type":""}],"src":"11556:356:103"},{"body":{"nodeType":"YulBlock","src":"12018:76:103","statements":[{"nodeType":"YulAssignment","src":"12028:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12040:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12051:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12036:3:103"},"nodeType":"YulFunctionCall","src":"12036:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12028:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12070:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12081:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12063:6:103"},"nodeType":"YulFunctionCall","src":"12063:25:103"},"nodeType":"YulExpressionStatement","src":"12063:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11987:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11998:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12009:4:103","type":""}],"src":"11917:177:103"},{"body":{"nodeType":"YulBlock","src":"12144:230:103","statements":[{"nodeType":"YulAssignment","src":"12154:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12170:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12164:5:103"},"nodeType":"YulFunctionCall","src":"12164:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12154:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"12182:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12204:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"12220:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"12226:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12216:3:103"},"nodeType":"YulFunctionCall","src":"12216:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12235:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12231:3:103"},"nodeType":"YulFunctionCall","src":"12231:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12212:3:103"},"nodeType":"YulFunctionCall","src":"12212:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12200:3:103"},"nodeType":"YulFunctionCall","src":"12200:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"12186:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12315:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"12317:16:103"},"nodeType":"YulFunctionCall","src":"12317:18:103"},"nodeType":"YulExpressionStatement","src":"12317:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"12258:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"12270:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12255:2:103"},"nodeType":"YulFunctionCall","src":"12255:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"12294:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"12306:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12291:2:103"},"nodeType":"YulFunctionCall","src":"12291:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"12252:2:103"},"nodeType":"YulFunctionCall","src":"12252:62:103"},"nodeType":"YulIf","src":"12249:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12353:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"12357:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12346:6:103"},"nodeType":"YulFunctionCall","src":"12346:22:103"},"nodeType":"YulExpressionStatement","src":"12346:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"12124:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"12133:6:103","type":""}],"src":"12099:275:103"},{"body":{"nodeType":"YulBlock","src":"12427:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"12462:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"12483:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12492:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12497:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12488:3:103"},"nodeType":"YulFunctionCall","src":"12488:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12476:6:103"},"nodeType":"YulFunctionCall","src":"12476:33:103"},"nodeType":"YulExpressionStatement","src":"12476:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12529:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12532:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12522:6:103"},"nodeType":"YulFunctionCall","src":"12522:15:103"},"nodeType":"YulExpressionStatement","src":"12522:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"12557:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"12562:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12550:6:103"},"nodeType":"YulFunctionCall","src":"12550:17:103"},"nodeType":"YulExpressionStatement","src":"12550:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12443:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12450:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12446:3:103"},"nodeType":"YulFunctionCall","src":"12446:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12440:2:103"},"nodeType":"YulFunctionCall","src":"12440:13:103"},"nodeType":"YulIf","src":"12437:2:103"},{"nodeType":"YulAssignment","src":"12586:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12597:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"12600:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12593:3:103"},"nodeType":"YulFunctionCall","src":"12593:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"12586:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12410:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"12413:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12419:3:103","type":""}],"src":"12379:229:103"},{"body":{"nodeType":"YulBlock","src":"12666:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"12676:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"12685:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"12680:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12745:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12770:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"12775:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12766:3:103"},"nodeType":"YulFunctionCall","src":"12766:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"12789:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"12794:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12785:3:103"},"nodeType":"YulFunctionCall","src":"12785:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12779:5:103"},"nodeType":"YulFunctionCall","src":"12779:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12759:6:103"},"nodeType":"YulFunctionCall","src":"12759:39:103"},"nodeType":"YulExpressionStatement","src":"12759:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12706:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"12709:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12703:2:103"},"nodeType":"YulFunctionCall","src":"12703:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12717:19:103","statements":[{"nodeType":"YulAssignment","src":"12719:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12728:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"12731:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12724:3:103"},"nodeType":"YulFunctionCall","src":"12724:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12719:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"12699:3:103","statements":[]},"src":"12695:113:103"},{"body":{"nodeType":"YulBlock","src":"12834:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12847:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"12852:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12843:3:103"},"nodeType":"YulFunctionCall","src":"12843:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"12861:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12836:6:103"},"nodeType":"YulFunctionCall","src":"12836:27:103"},"nodeType":"YulExpressionStatement","src":"12836:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12823:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"12826:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12820:2:103"},"nodeType":"YulFunctionCall","src":"12820:13:103"},"nodeType":"YulIf","src":"12817:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"12644:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"12649:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"12654:6:103","type":""}],"src":"12613:258:103"},{"body":{"nodeType":"YulBlock","src":"12908:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12925:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12932:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12937:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12928:3:103"},"nodeType":"YulFunctionCall","src":"12928:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12918:6:103"},"nodeType":"YulFunctionCall","src":"12918:31:103"},"nodeType":"YulExpressionStatement","src":"12918:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12965:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12968:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12958:6:103"},"nodeType":"YulFunctionCall","src":"12958:15:103"},"nodeType":"YulExpressionStatement","src":"12958:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12989:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12992:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12982:6:103"},"nodeType":"YulFunctionCall","src":"12982:15:103"},"nodeType":"YulExpressionStatement","src":"12982:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"12876:127:103"},{"body":{"nodeType":"YulBlock","src":"13040:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13057:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13064:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13069:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13060:3:103"},"nodeType":"YulFunctionCall","src":"13060:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13050:6:103"},"nodeType":"YulFunctionCall","src":"13050:31:103"},"nodeType":"YulExpressionStatement","src":"13050:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13097:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13100:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13090:6:103"},"nodeType":"YulFunctionCall","src":"13090:15:103"},"nodeType":"YulExpressionStatement","src":"13090:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13121:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13124:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13114:6:103"},"nodeType":"YulFunctionCall","src":"13114:15:103"},"nodeType":"YulExpressionStatement","src":"13114:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"13008:127:103"},{"body":{"nodeType":"YulBlock","src":"13185:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"13249:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13258:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13261:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13251:6:103"},"nodeType":"YulFunctionCall","src":"13251:12:103"},"nodeType":"YulExpressionStatement","src":"13251:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13208:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13219:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13234:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13239:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13230:3:103"},"nodeType":"YulFunctionCall","src":"13230:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13243:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13226:3:103"},"nodeType":"YulFunctionCall","src":"13226:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13215:3:103"},"nodeType":"YulFunctionCall","src":"13215:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"13205:2:103"},"nodeType":"YulFunctionCall","src":"13205:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13198:6:103"},"nodeType":"YulFunctionCall","src":"13198:50:103"},"nodeType":"YulIf","src":"13195:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13174:5:103","type":""}],"src":"13140:131:103"}]},"contents":"{\n { }\n function abi_decode_bool_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_bool_fromMemory(headStart)\n }\n function abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value1, value1) }\n value0 := abi_decode_bool_fromMemory(headStart)\n value1 := mload(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_payable_t_uint256_t_uint256_t_bytes_calldata_ptr_t_bytes_calldata_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 160)\n let tail_1 := abi_encode_bytes_calldata(value3, value4, add(headStart, 160))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n tail := abi_encode_bytes_calldata(value5, value6, tail_1)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_0_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_45b7c023a985c9e867fb92bc16a50e3a4287536d298108f611ee335f5fdad6ba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:TCP-1:INVALID_POLICY_OR_HO\")\n mstore(add(headStart, 96), \"LDER\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106101ee5760003560e01c806370d2fe531161010d578063b9ea8d66116100a0578063d73cd9921161006f578063d73cd9921461027c578063e0815f0d1461042a578063e6f95edd1461043e578063f2fde38b14610451578063f4fdc1fa1461040c576101ee565b8063b9ea8d66146103ec578063bd1fe5d01461027c578063be169e7e1461027c578063d0e0ba951461040c576101ee565b806394f64ff4116100dc57806394f64ff4146102fe5780639a82f890146102be578063a18f5ae21461027c578063b3fca9bd1461027c576101ee565b806370d2fe5314610382578063715018a614610397578063893d20e8146103ac5780638da5cb5b146103ce576101ee565b806339cf5e16116101855780635ab1bd53116101545780635ab1bd531461033a5780635d1ca63114610358578063637d08f41461036d578063638ce0ba1461027c576101ee565b806339cf5e16146102fe5780633b5284b6146103255780633ec92bda146102fe57806359dacc6a1461027c576101ee565b80631b867c63116101c15780631b867c631461027c57806321df0da71461028c578063258d560c146102be5780632b677841146102de576101ee565b806309128d83146101f357806315dae03e1461022e57806317d7de7c1461024a5780631865c57d1461025f575b600080fd5b3480156101ff57600080fd5b5061021b70506f6c69637944656661756c74466c6f7760781b81565b6040519081526020015b60405180910390f35b34801561023a57600080fd5b5060016040516102259190611063565b34801561025657600080fd5b5060015461021b565b34801561026b57600080fd5b5060035b6040516102259190611049565b34801561028857600080fd5b505b005b34801561029857600080fd5b506002546001600160a01b03165b6040516001600160a01b039091168152602001610225565b3480156102ca57600080fd5b5060005b6040519015158152602001610225565b3480156102ea57600080fd5b5061028a6102f9366004610d54565b610473565b34801561030a57600080fd5b50604080516020810182526000815290516102259190611077565b34801561033157600080fd5b5061026f600381565b34801561034657600080fd5b506005546001600160a01b03166102a6565b34801561036457600080fd5b5060035461021b565b34801561037957600080fd5b506102a66107bd565b34801561038e57600080fd5b5060045461021b565b3480156103a357600080fd5b5061028a6107e1565b3480156103b857600080fd5b506102a6600080546001600160a01b03166107dc565b3480156103da57600080fd5b506000546001600160a01b03166102a6565b3480156103f857600080fd5b5061028a610407366004610d24565b6107f3565b34801561041857600080fd5b5061028a610427366004610d24565b50565b34801561043657600080fd5b5060016102ce565b61021b61044c366004610ecd565b610904565b34801561045d57600080fd5b5061028a61046c366004610c97565b610a22565b565b60085460405163296586d360e21b81526004810184905283916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104f89190810190610d75565b519050336001600160a01b038216146105645760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5443502d313a494e56414c49445f504f4c4943595f4f525f484f604482015263262222a960e11b60648201526084015b60405180910390fd5b6001600c600082825461057791906110bb565b9091555050600a546040805160006020808301829052835180840390910181528284019384905263fae43d1560e01b909352926001600160a01b03169163fae43d15916105cb918991899190604401610ff2565b602060405180830381600087803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061d9190610d3c565b600a54604051634e02c63f60e01b81526004810188905260248101839052604481018790529192506001600160a01b031690634e02c63f90606401600060405180830381600087803b15801561067257600080fd5b505af1158015610686573d6000803e3d6000fd5b5050600a5460408051600060208083018290528351808403909101815282840193849052633c0ebc2360e11b90935294506001600160a01b03909216925063781d7846916106dc918a9187918b9160440161101a565b602060405180830381600087803b1580156106f657600080fd5b505af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e9190610d3c565b600a5460405163fe64372b60e01b815260048101899052602481018390529192506001600160a01b03169063fe64372b906044016040805180830381600087803b15801561077b57600080fd5b505af115801561078f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b39190610eaa565b5050505050505050565b60006107dc70506f6c69637944656661756c74466c6f7760781b610a98565b905090565b6107e9610b1d565b6104716000610b77565b60085460405163a3f685f960e01b8152600481018390526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190610e25565b600a54602082015160405163e3ebdea560e01b81526004810186905260248101919091529192506001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fd9190610cf0565b5050505050565b60008033600a546040516349dc20a560e11b81529192506001600160a01b0316906393b8414a906109459084908c908c908c908c908c908c90600401610fa3565b602060405180830381600087803b15801561095f57600080fd5b505af1158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190610d3c565b600a54604051631b07b17f60e01b8152600481018390529193506001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190610cd6565b50509695505050505050565b610a2a610b1d565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055b565b61042781610b77565b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190610cba565b90505b919050565b6000546001600160a01b031633146104715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80518015158114610b1857600080fd5b60008083601f840112610be8578182fd5b50813567ffffffffffffffff811115610bff578182fd5b602083019150836020828501011115610c1757600080fd5b9250929050565b600082601f830112610c2e578081fd5b815167ffffffffffffffff811115610c4857610c48611125565b610c5b601f8201601f191660200161108a565b818152846020838601011115610c6f578283fd5b610c808260208301602087016110df565b949350505050565b805160038110610b1857600080fd5b600060208284031215610ca8578081fd5b8135610cb38161113b565b9392505050565b600060208284031215610ccb578081fd5b8151610cb38161113b565b600060208284031215610ce7578081fd5b610cb382610bc7565b600080600060608486031215610d04578182fd5b610d0d84610bc7565b925060208401519150604084015190509250925092565b600060208284031215610d35578081fd5b5035919050565b600060208284031215610d4d578081fd5b5051919050565b60008060408385031215610d66578182fd5b50508035926020909101359150565b600060208284031215610d86578081fd5b815167ffffffffffffffff80821115610d9d578283fd5b9083019060c08286031215610db0578283fd5b610dba60c061108a565b8251610dc58161113b565b815260208381015190820152610ddd60408401610c88565b6040820152606083015182811115610df3578485fd5b610dff87828601610c1e565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215610e38578182fd5b610e418161108a565b9050610e4c83610c88565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060408385031215610ebc578182fd5b505080516020909101519092909150565b60008060008060008060808789031215610ee5578384fd5b8635955060208701359450604087013567ffffffffffffffff80821115610f0a578586fd5b610f168a838b01610bd7565b90965094506060890135915080821115610f2e578384fd5b50610f3b89828a01610bd7565b979a9699509497509295939492505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452610f8f8160208601602086016110df565b601f01601f19169290920160200192915050565b600060018060a01b038916825287602083015286604083015260a06060830152610fd160a083018688610f4d565b8281036080840152610fe4818587610f4d565b9a9950505050505050505050565b6000848252836020830152606060408301526110116060830184610f77565b95945050505050565b60008582528460208301528360408301526080606083015261103f6080830184610f77565b9695505050505050565b602081016007831061105d5761105d61110f565b91905290565b602081016003831061105d5761105d61110f565b600060208252610cb36020830184610f77565b604051601f8201601f1916810167ffffffffffffffff811182821017156110b3576110b3611125565b604052919050565b600082198211156110da57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156110fa5781810151838201526020016110e2565b83811115611109576000848401525b50505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461042757600080fdfea2646970667358221220d035e3de5b3a00e05b9cb799c298a86d18cc827ca95856c5337177a97dceacf664736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1EE JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70D2FE53 GT PUSH2 0x10D JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xD73CD992 GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x42A JUMPI DUP1 PUSH4 0xE6F95EDD EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x40C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x3EC JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x40C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x94F64FF4 GT PUSH2 0xDC JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x382 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x397 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3AC JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3CE JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x39CF5E16 GT PUSH2 0x185 JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x154 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x33A JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x358 JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x36D JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x3B5284B6 EQ PUSH2 0x325 JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x27C JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x1B867C63 GT PUSH2 0x1C1 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x27C JUMPI DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x28C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0x2B677841 EQ PUSH2 0x2DE JUMPI PUSH2 0x1EE JUMP JUMPDEST DUP1 PUSH4 0x9128D83 EQ PUSH2 0x1F3 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x22E JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x25F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x21B PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1063 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x256 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1049 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x288 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x298 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x225 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x2F9 CALLDATASIZE PUSH1 0x4 PUSH2 0xD54 JUMP JUMPDEST PUSH2 0x473 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x30A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 MLOAD PUSH2 0x225 SWAP2 SWAP1 PUSH2 0x1077 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x331 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x26F PUSH1 0x3 DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x346 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x364 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x379 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH2 0x7BD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x38E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 SLOAD PUSH2 0x21B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x7E1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7DC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x407 CALLDATASIZE PUSH1 0x4 PUSH2 0xD24 JUMP JUMPDEST PUSH2 0x7F3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x418 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x427 CALLDATASIZE PUSH1 0x4 PUSH2 0xD24 JUMP JUMPDEST POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x436 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH2 0x2CE JUMP JUMPDEST PUSH2 0x21B PUSH2 0x44C CALLDATASIZE PUSH1 0x4 PUSH2 0xECD JUMP JUMPDEST PUSH2 0x904 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x28A PUSH2 0x46C CALLDATASIZE PUSH1 0x4 PUSH2 0xC97 JUMP JUMPDEST PUSH2 0xA22 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE DUP4 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x4BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x4F8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0xD75 JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x564 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5443502D313A494E56414C49445F504F4C4943595F4F525F484F PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x262222A9 PUSH1 0xE1 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xC PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x577 SWAP2 SWAP1 PUSH2 0x10BB JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE DUP3 DUP5 ADD SWAP4 DUP5 SWAP1 MSTORE PUSH4 0xFAE43D15 PUSH1 0xE0 SHL SWAP1 SWAP4 MSTORE SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH4 0xFAE43D15 SWAP2 PUSH2 0x5CB SWAP2 DUP10 SWAP2 DUP10 SWAP2 SWAP1 PUSH1 0x44 ADD PUSH2 0xFF2 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x5E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x5F9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x61D SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP8 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x672 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x686 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0xA SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE DUP3 DUP5 ADD SWAP4 DUP5 SWAP1 MSTORE PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL SWAP1 SWAP4 MSTORE SWAP5 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 POP PUSH4 0x781D7846 SWAP2 PUSH2 0x6DC SWAP2 DUP11 SWAP2 DUP8 SWAP2 DUP12 SWAP2 PUSH1 0x44 ADD PUSH2 0x101A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x70A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x72E SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP10 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x78F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7B3 SWAP2 SWAP1 PUSH2 0xEAA JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7DC PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL PUSH2 0xA98 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7E9 PUSH2 0xB1D JUMP JUMPDEST PUSH2 0x471 PUSH1 0x0 PUSH2 0xB77 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x839 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x84D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x871 SWAP2 SWAP1 PUSH2 0xE25 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x8C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8FD SWAP2 SWAP1 PUSH2 0xCF0 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x945 SWAP1 DUP5 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 DUP13 SWAP1 PUSH1 0x4 ADD PUSH2 0xFA3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x95F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x973 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x997 SWAP2 SWAP1 PUSH2 0xD3C JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x9F2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xA16 SWAP2 SWAP1 PUSH2 0xCD6 JUMP JUMPDEST POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xA2A PUSH2 0xB1D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xA8F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x55B JUMP JUMPDEST PUSH2 0x427 DUP2 PUSH2 0xB77 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xADD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAF1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB15 SWAP2 SWAP1 PUSH2 0xCBA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x471 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x55B JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xB18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xBE8 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBFF JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xC17 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xC2E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC48 JUMPI PUSH2 0xC48 PUSH2 0x1125 JUMP JUMPDEST PUSH2 0xC5B PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x108A JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xC6F JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xC80 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x10DF JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xB18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCA8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xCB3 DUP2 PUSH2 0x113B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCCB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xCB3 DUP2 PUSH2 0x113B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE7 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xCB3 DUP3 PUSH2 0xBC7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD04 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xD0D DUP5 PUSH2 0xBC7 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH1 0x40 DUP5 ADD MLOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD35 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4D JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD66 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD86 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD9D JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0xDB0 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xDBA PUSH1 0xC0 PUSH2 0x108A JUMP JUMPDEST DUP3 MLOAD PUSH2 0xDC5 DUP2 PUSH2 0x113B JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0xDDD PUSH1 0x40 DUP5 ADD PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0xDF3 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0xDFF DUP8 DUP3 DUP7 ADD PUSH2 0xC1E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE38 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0xE41 DUP2 PUSH2 0x108A JUMP JUMPDEST SWAP1 POP PUSH2 0xE4C DUP4 PUSH2 0xC88 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xEBC JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xEE5 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xF0A JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0xF16 DUP11 DUP4 DUP12 ADD PUSH2 0xBD7 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xF2E JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0xF3B DUP10 DUP3 DUP11 ADD PUSH2 0xBD7 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xF8F DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x10DF JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP10 AND DUP3 MSTORE DUP8 PUSH1 0x20 DUP4 ADD MSTORE DUP7 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0xFD1 PUSH1 0xA0 DUP4 ADD DUP7 DUP9 PUSH2 0xF4D JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0xFE4 DUP2 DUP6 DUP8 PUSH2 0xF4D JUMP JUMPDEST SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x1011 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x103F PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x105D JUMPI PUSH2 0x105D PUSH2 0x110F JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x105D JUMPI PUSH2 0x105D PUSH2 0x110F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xCB3 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x10B3 JUMPI PUSH2 0x10B3 PUSH2 0x1125 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x10DA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x10FA JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x10E2 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1109 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x427 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD0 CALLDATALOAD 0xE3 0xDE JUMPDEST GASPRICE STOP 0xE0 JUMPDEST SWAP13 0xB7 SWAP10 0xC2 SWAP9 0xA8 PUSH14 0x18CC827CA95856C5337177A97DCE 0xAC 0xF6 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"1116:6274:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1289:57;;;;;;;;;;;;-1:-1:-1;;;1289:57:94;;;;;8172:25:103;;;8160:2;8145:18;1289:57:94;;;;;;;;5506:109;;;;;;;;;;-1:-1:-1;5580:32:94;5506:109;;;;;;:::i;5328:85::-;;;;;;;;;;-1:-1:-1;5396:14:94;;5328:85;;5621:111;;;;;;;;;;-1:-1:-1;5697:32:94;5621:111;;;;;;;:::i;6209:48::-;;;;;;;;;;;;;4408:91;;;;;;;;;;-1:-1:-1;4483:13:94;;-1:-1:-1;;;;;4483:13:94;4408:91;;;-1:-1:-1;;;;;7104:32:103;;;7086:51;;7074:2;7059:18;4408:91:94;7041:102:103;6073:74:94;;;;;;;;;;-1:-1:-1;6124:4:94;6073:74;;;7999:14:103;;7992:22;7974:41;;7962:2;7947:18;6073:74:94;7929:92:103;3640:596:94;;;;;;;;;;-1:-1:-1;3640:596:94;;;;;:::i;:::-;;:::i;4970:108::-;;;;;;;;;;-1:-1:-1;5066:9:94;;;;;;;;-1:-1:-1;5066:9:94;;4970:108;;;;5066:9;4970:108;:::i;1189:87::-;;;;;;;;;;;;1244:32;1189:87;;5823:86;;;;;;;;;;-1:-1:-1;5897:9:94;;-1:-1:-1;;;;;5897:9:94;5823:86;;5419:81;;;;;;;;;;-1:-1:-1;5485:12:94;;5419:81;;4505:120;;;;;;;;;;;;;:::i;4631:99::-;;;;;;;;;;-1:-1:-1;4716:11:94;;4631:99;;1831:101:41;;;;;;;;;;;;;:::i;5738:79:94:-;;;;;;;;;;;;5789:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;5807:7:94;1201:85:41;;;;;;;;;;;-1:-1:-1;1247:7:41;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;3398:234:94;;;;;;;;;;-1:-1:-1;3398:234:94;;;;;:::i;:::-;;:::i;5247:47::-;;;;;;;;;;-1:-1:-1;5247:47:94;;;;;:::i;:::-;;;5917:72;;;;;;;;;;-1:-1:-1;5580:32:94;5917:72;5506:109;2789:601;;;;;;:::i;:::-;;:::i;2081:198:41:-;;;;;;;;;;-1:-1:-1;2081:198:41;;;;;:::i;:::-;;:::i;6209:48:94:-;:::o;3640:596::-;1899:16;;:38;;-1:-1:-1;;;1899:38:94;;;;;8172:25:103;;;3745:8:94;;1876:20;;-1:-1:-1;;;;;1899:16:94;;;;:28;;8145:18:103;;1899:38:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1899:38:94;;;;;;;;;;;;:::i;:::-;:44;;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1976:28:94;;;1954:115;;;;-1:-1:-1;;;1954:115:94;;11353:2:103;1954:115:94;;;11335:21:103;11392:2;11372:18;;;11365:30;11431:34;11411:18;;;11404:62;-1:-1:-1;;;11482:18:103;;;11475:34;11526:19;;1954:115:94;;;;;;;;;3818:1:::1;3807:7;;:12;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;3898:15:94::1;::::0;3946:13:::1;::::0;;3880:15:::1;3946:13;::::0;;::::1;10473:36:103::0;;;3946:13:94;;;;;;;;;;10446:18:103;;;3946:13:94;;;;-1:-1:-1;;;3898:62:94;;;3880:15;-1:-1:-1;;;;;3898:15:94::1;::::0;:24:::1;::::0;:62:::1;::::0;3923:8;;3933:11;;3946:13;3898:62;;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3971:15;::::0;:60:::1;::::0;-1:-1:-1;;;3971:60:94;;::::1;::::0;::::1;9027:25:103::0;;;9068:18;;;9061:34;;;9111:18;;;9104:34;;;3880:80:94;;-1:-1:-1;;;;;;3971:15:94::1;::::0;:28:::1;::::0;9000:18:103;;3971:60:94::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4096:15:94::1;::::0;4154:13:::1;::::0;;4077:16:::1;4154:13;::::0;;::::1;10473:36:103::0;;;4154:13:94;;;;;;;;;;10446:18:103;;;4154:13:94;;;;-1:-1:-1;;;4096:72:94;;;4077:16;-1:-1:-1;;;;;;4096:15:94;;::::1;::::0;-1:-1:-1;4096:25:94::1;::::0;:72:::1;::::0;4122:8;;4132:7;;4141:11;;4096:72;;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4179:15;::::0;:49:::1;::::0;-1:-1:-1;;;4179:49:94;;::::1;::::0;::::1;8382:25:103::0;;;8423:18;;;8416:34;;;4077:91:94;;-1:-1:-1;;;;;;4179:15:94::1;::::0;:29:::1;::::0;8355:18:103;;4179:49:94::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2080:1;;3640:596:::0;;;;:::o;4505:120::-;4561:18;4590:32;-1:-1:-1;;;4590:19:94;:32::i;:::-;4583:39;;4505:120;:::o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;3398:234:94:-:0;3507:16;;:36;;-1:-1:-1;;;3507:36:94;;;;;8172:25:103;;;3476:28:94;;-1:-1:-1;;;;;3507:16:94;;:26;;8145:18:103;;3507:36:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3554:15;;3595:28;;;;3554:70;;-1:-1:-1;;;3554:70:94;;;;;8382:25:103;;;8423:18;;;8416:34;;;;3595:28:94;;-1:-1:-1;;;;;;3554:15:94;;:30;;8355:18:103;;3554:70:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;3398:234;;:::o;2789:601::-;3007:17;;719:10:59;3170:15:94;;:162;;-1:-1:-1;;;3170:162:94;;3043:52;;-1:-1:-1;;;;;;3170:15:94;;:30;;:162;;3043:52;;3243:7;;3266:10;;3292:8;;;;3316:15;;;;3170:162;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3345:15;;:37;;-1:-1:-1;;;3345:37:94;;;;;8172:25:103;;;3158:174:94;;-1:-1:-1;;;;;;3345:15:94;;:26;;8145:18:103;;3345:37:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2789:601;;;;;;;;;:::o;2081:198:41:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;10946:2:103;2161:73:41::1;::::0;::::1;10928:21:103::0;10985:2;10965:18;;;10958:30;11024:34;11004:18;;;10997:62;-1:-1:-1;;;11075:18:103;;;11068:36;11121:19;;2161:73:41::1;10918:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;7241:144:94:-:0;7342:9;;:35;;-1:-1:-1;;;7342:35:94;;;;;8172:25:103;;;7314:7:94;;-1:-1:-1;;;;;7342:9:94;;:21;;8145:18:103;;7342:35:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7335:42;;7241:144;;;;:::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;11758:2:103;1414:68:41;;;11740:21:103;;;11777:18;;;11770:30;11836:34;11816:18;;;11809:62;11888:18;;1414:68:41;11730:182:103;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;14:164:103:-;90:13;;139;;132:21;122:32;;112:2;;168:1;165;158:12;183:375;;;298:3;291:4;283:6;279:17;275:27;265:2;;323:8;313;306:26;265:2;-1:-1:-1;353:20:103;;396:18;385:30;;382:2;;;435:8;425;418:26;382:2;479:4;471:6;467:17;455:29;;531:3;524:4;515:6;507;503:19;499:30;496:39;493:2;;;548:1;545;538:12;493:2;255:303;;;;;:::o;563:512::-;;669:3;662:4;654:6;650:17;646:27;636:2;;691:5;684;677:20;636:2;724:6;718:13;750:18;746:2;743:26;740:2;;;772:18;;:::i;:::-;816:55;859:2;840:13;;-1:-1:-1;;836:27:103;865:4;832:38;816:55;:::i;:::-;896:2;887:7;880:19;942:3;935:4;930:2;922:6;918:15;914:26;911:35;908:2;;;963:5;956;949:20;908:2;980:64;1041:2;1034:4;1025:7;1021:18;1014:4;1006:6;1002:17;980:64;:::i;:::-;1062:7;626:449;-1:-1:-1;;;;626:449:103:o;1080:160::-;1172:13;;1214:1;1204:12;;1194:2;;1230:1;1227;1220:12;1245:257;;1357:2;1345:9;1336:7;1332:23;1328:32;1325:2;;;1378:6;1370;1363:22;1325:2;1422:9;1409:23;1441:31;1466:5;1441:31;:::i;:::-;1491:5;1315:187;-1:-1:-1;;;1315:187:103:o;1507:261::-;;1630:2;1618:9;1609:7;1605:23;1601:32;1598:2;;;1651:6;1643;1636:22;1598:2;1688:9;1682:16;1707:31;1732:5;1707:31;:::i;1773:212::-;;1893:2;1881:9;1872:7;1868:23;1864:32;1861:2;;;1914:6;1906;1899:22;1861:2;1942:37;1969:9;1942:37;:::i;1990:334::-;;;;2144:2;2132:9;2123:7;2119:23;2115:32;2112:2;;;2165:6;2157;2150:22;2112:2;2193:37;2220:9;2193:37;:::i;:::-;2183:47;;2270:2;2259:9;2255:18;2249:25;2239:35;;2314:2;2303:9;2299:18;2293:25;2283:35;;2102:222;;;;;:::o;2329:190::-;;2441:2;2429:9;2420:7;2416:23;2412:32;2409:2;;;2462:6;2454;2447:22;2409:2;-1:-1:-1;2490:23:103;;2399:120;-1:-1:-1;2399:120:103:o;2524:194::-;;2647:2;2635:9;2626:7;2622:23;2618:32;2615:2;;;2668:6;2660;2653:22;2615:2;-1:-1:-1;2696:16:103;;2605:113;-1:-1:-1;2605:113:103:o;2723:258::-;;;2852:2;2840:9;2831:7;2827:23;2823:32;2820:2;;;2873:6;2865;2858:22;2820:2;-1:-1:-1;;2901:23:103;;;2971:2;2956:18;;;2943:32;;-1:-1:-1;2810:171:103:o;2986:1025::-;;3135:2;3123:9;3114:7;3110:23;3106:32;3103:2;;;3156:6;3148;3141:22;3103:2;3194:9;3188:16;3223:18;3264:2;3256:6;3253:14;3250:2;;;3285:6;3277;3270:22;3250:2;3313:22;;;;3369:4;3351:16;;;3347:27;3344:2;;;3392:6;3384;3377:22;3344:2;3423:21;3439:4;3423:21;:::i;:::-;3474:2;3468:9;3486:33;3511:7;3486:33;:::i;:::-;3528:22;;3596:2;3588:11;;;3582:18;3566:14;;;3559:42;3633:55;3684:2;3676:11;;3633:55;:::i;:::-;3628:2;3621:5;3617:14;3610:79;3728:2;3724;3720:11;3714:18;3757:2;3747:8;3744:16;3741:2;;;3778:6;3770;3763:22;3741:2;3819:55;3866:7;3855:8;3851:2;3847:17;3819:55;:::i;:::-;3814:2;3807:5;3803:14;3796:79;;3922:3;3918:2;3914:12;3908:19;3902:3;3895:5;3891:15;3884:44;3975:3;3971:2;3967:12;3961:19;3955:3;3948:5;3944:15;3937:44;4000:5;3990:15;;;;;3093:918;;;;:::o;4016:841::-;;4141:3;4185:2;4173:9;4164:7;4160:23;4156:32;4153:2;;;4206:6;4198;4191:22;4153:2;4237:19;4253:2;4237:19;:::i;:::-;4224:32;;4279:53;4322:9;4279:53;:::i;:::-;4272:5;4265:68;4386:2;4375:9;4371:18;4365:25;4360:2;4353:5;4349:14;4342:49;4444:2;4433:9;4429:18;4423:25;4418:2;4411:5;4407:14;4400:49;4502:2;4491:9;4487:18;4481:25;4476:2;4469:5;4465:14;4458:49;4561:3;4550:9;4546:19;4540:26;4534:3;4527:5;4523:15;4516:51;4621:3;4610:9;4606:19;4600:26;4594:3;4587:5;4583:15;4576:51;4681:3;4670:9;4666:19;4660:26;4654:3;4647:5;4643:15;4636:51;4741:3;4730:9;4726:19;4720:26;4714:3;4707:5;4703:15;4696:51;4766:3;4822:2;4811:9;4807:18;4801:25;4796:2;4789:5;4785:14;4778:49;;4846:5;4836:15;;;4121:736;;;;:::o;5256:255::-;;;5396:2;5384:9;5375:7;5371:23;5367:32;5364:2;;;5417:6;5409;5402:22;5364:2;-1:-1:-1;;5445:16:103;;5501:2;5486:18;;;5480:25;5445:16;;5480:25;;-1:-1:-1;5354:157:103:o;5516:884::-;;;;;;;5717:3;5705:9;5696:7;5692:23;5688:33;5685:2;;;5739:6;5731;5724:22;5685:2;5780:9;5767:23;5757:33;;5837:2;5826:9;5822:18;5809:32;5799:42;;5892:2;5881:9;5877:18;5864:32;5915:18;5956:2;5948:6;5945:14;5942:2;;;5977:6;5969;5962:22;5942:2;6021:58;6071:7;6062:6;6051:9;6047:22;6021:58;:::i;:::-;6098:8;;-1:-1:-1;5995:84:103;-1:-1:-1;6186:2:103;6171:18;;6158:32;;-1:-1:-1;6202:16:103;;;6199:2;;;6236:6;6228;6221:22;6199:2;;6280:60;6332:7;6321:8;6310:9;6306:24;6280:60;:::i;:::-;5675:725;;;;-1:-1:-1;5675:725:103;;-1:-1:-1;5675:725:103;;6359:8;;5675:725;-1:-1:-1;;;5675:725:103:o;6405:268::-;;6493:6;6488:3;6481:19;6545:6;6538:5;6531:4;6526:3;6522:14;6509:43;6597:3;6590:4;6581:6;6576:3;6572:16;6568:27;6561:40;6662:4;6655:2;6651:7;6646:2;6638:6;6634:15;6630:29;6625:3;6621:39;6617:50;6610:57;;6471:202;;;;;:::o;6678:257::-;;6757:5;6751:12;6784:6;6779:3;6772:19;6800:63;6856:6;6849:4;6844:3;6840:14;6833:4;6826:5;6822:16;6800:63;:::i;:::-;6917:2;6896:15;-1:-1:-1;;6892:29:103;6883:39;;;;6924:4;6879:50;;6727:208;-1:-1:-1;;6727:208:103:o;7148:681::-;;7482:1;7478;7473:3;7469:11;7465:19;7457:6;7453:32;7442:9;7435:51;7522:6;7517:2;7506:9;7502:18;7495:34;7565:6;7560:2;7549:9;7545:18;7538:34;7608:3;7603:2;7592:9;7588:18;7581:31;7635:62;7692:3;7681:9;7677:19;7669:6;7661;7635:62;:::i;:::-;7746:9;7738:6;7734:22;7728:3;7717:9;7713:19;7706:51;7774:49;7816:6;7808;7800;7774:49;:::i;:::-;7766:57;7425:404;-1:-1:-1;;;;;;;;;;7425:404:103:o;8461:359::-;;8664:6;8653:9;8646:25;8707:6;8702:2;8691:9;8687:18;8680:34;8750:2;8745;8734:9;8730:18;8723:30;8770:44;8810:2;8799:9;8795:18;8787:6;8770:44;:::i;:::-;8762:52;8636:184;-1:-1:-1;;;;;8636:184:103:o;9149:432::-;;9380:6;9369:9;9362:25;9423:6;9418:2;9407:9;9403:18;9396:34;9466:6;9461:2;9450:9;9446:18;9439:34;9509:3;9504:2;9493:9;9489:18;9482:31;9530:45;9570:3;9559:9;9555:19;9547:6;9530:45;:::i;:::-;9522:53;9352:229;-1:-1:-1;;;;;;9352:229:103:o;9812:250::-;9963:2;9948:18;;9996:1;9985:13;;9975:2;;10002:18;;:::i;:::-;10031:25;;;9930:132;:::o;10067:249::-;10217:2;10202:18;;10250:1;10239:13;;10229:2;;10256:18;;:::i;10520:219::-;;10669:2;10658:9;10651:21;10689:44;10729:2;10718:9;10714:18;10706:6;10689:44;:::i;12099:275::-;12170:2;12164:9;12235:2;12216:13;;-1:-1:-1;;12212:27:103;12200:40;;12270:18;12255:34;;12291:22;;;12252:62;12249:2;;;12317:18;;:::i;:::-;12353:2;12346:22;12144:230;;-1:-1:-1;12144:230:103:o;12379:229::-;;12450:1;12446:6;12443:1;12440:13;12437:2;;;-1:-1:-1;;;12476:33:103;;12532:4;12529:1;12522:15;12562:4;12483:3;12550:17;12437:2;-1:-1:-1;12593:9:103;;12427:181::o;12613:258::-;12685:1;12695:113;12709:6;12706:1;12703:13;12695:113;;;12785:11;;;12779:18;12766:11;;;12759:39;12731:2;12724:10;12695:113;;;12826:6;12823:1;12820:13;12817:2;;;12861:1;12852:6;12847:3;12843:16;12836:27;12817:2;;12666:205;;;:::o;12876:127::-;12937:10;12932:3;12928:20;12925:1;12918:31;12968:4;12965:1;12958:15;12992:4;12989:1;12982:15;13008:127;13069:10;13064:3;13060:20;13057:1;13050:31;13100:4;13097:1;13090:15;13124:4;13121:1;13114:15;13140:131;-1:-1:-1;;;;;13215:31:103;;13205:42;;13195:2;;13261:1;13258;13251:12"},"methodIdentifiers":{"FAKE_STATE()":"3b5284b6","POLICY_FLOW()":"09128d83","applyForPolicy(uint256,uint256,bytes,bytes)":"e6f95edd","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","collectPremium(bytes32)":"b9ea8d66","declineCallback()":"bd1fe5d0","getApplicationDataStructure()":"94f64ff4","getClaimDataStructure()":"3ec92bda","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getPayoutDataStructure()":"39cf5e16","getPolicyFlow()":"637d08f4","getRegistry()":"5ab1bd53","getRiskpoolId()":"70d2fe53","getState()":"1865c57d","getToken()":"21df0da7","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","owner()":"8da5cb5b","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","riskPoolCapacityCallback(uint256)":"f4fdc1fa","setId(uint256)":"d0e0ba95","submitClaim(bytes32,uint256)":"2b677841","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"fakeProductName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fakeComponentId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fakeRiskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"LogProductCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"FAKE_STATE\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POLICY_FLOW\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"applyForPolicy\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"collectPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApplicationDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayoutDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"policyFlow\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"riskPoolCapacityCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"submitClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestCompromisedProduct.sol\":\"TestCompromisedProduct\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/test/TestCompromisedProduct.sol\":{\"keccak256\":\"0x7438a6b38aef27de18bd4618a7546aad8de0ca5b62ad7b0d24b20c84cf3aaf03\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://974040b6737de6e01116a24809110c2a432b921737f7151ab17f13326bec75af\",\"dweb:/ipfs/QmbWYQufuTEdxTcrSK9KNTGc1qtscK56jFDh8HWH3yBY2w\"]}},\"version\":1}"}},"contracts/test/TestOracle.sol":{"TestOracle":{"abi":[{"inputs":[{"internalType":"bytes32","name":"oracleName","type":"bytes32"},{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oracleAddress","type":"address"}],"name":"LogOracleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogOracleProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes","name":"input","type":"bytes"}],"name":"request","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bool","name":"isLossEvent","type":"bool"}],"name":"respond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2115:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"517:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"563:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"572:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"580:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"565:6:103"},"nodeType":"YulFunctionCall","src":"565:22:103"},"nodeType":"YulExpressionStatement","src":"565:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"538:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"547:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"534:3:103"},"nodeType":"YulFunctionCall","src":"534:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"559:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"530:3:103"},"nodeType":"YulFunctionCall","src":"530:32:103"},"nodeType":"YulIf","src":"527:2:103"},{"nodeType":"YulAssignment","src":"598:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"614:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"608:5:103"},"nodeType":"YulFunctionCall","src":"608:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"598:6:103"}]},{"nodeType":"YulAssignment","src":"633:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"688:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"673:3:103"},"nodeType":"YulFunctionCall","src":"673:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"643:29:103"},"nodeType":"YulFunctionCall","src":"643:49:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"633:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"475:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"486:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"498:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"506:6:103","type":""}],"src":"419:279:103"},{"body":{"nodeType":"YulBlock","src":"804:102:103","statements":[{"nodeType":"YulAssignment","src":"814:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"826:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"837:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"822:3:103"},"nodeType":"YulFunctionCall","src":"822:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"814:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"856:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"871:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"887:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"892:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"883:3:103"},"nodeType":"YulFunctionCall","src":"883:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"896:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"879:3:103"},"nodeType":"YulFunctionCall","src":"879:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"867:3:103"},"nodeType":"YulFunctionCall","src":"867:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"849:6:103"},"nodeType":"YulFunctionCall","src":"849:51:103"},"nodeType":"YulExpressionStatement","src":"849:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"773:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"784:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"795:4:103","type":""}],"src":"703:203:103"},{"body":{"nodeType":"YulBlock","src":"1012:76:103","statements":[{"nodeType":"YulAssignment","src":"1022:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1034:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1045:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1030:3:103"},"nodeType":"YulFunctionCall","src":"1030:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1022:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1064:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1075:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1057:6:103"},"nodeType":"YulFunctionCall","src":"1057:25:103"},"nodeType":"YulExpressionStatement","src":"1057:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"981:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"992:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1003:4:103","type":""}],"src":"911:177:103"},{"body":{"nodeType":"YulBlock","src":"1294:415:103","statements":[{"nodeType":"YulAssignment","src":"1304:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1316:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1327:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1312:3:103"},"nodeType":"YulFunctionCall","src":"1312:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1304:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1347:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1358:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1340:6:103"},"nodeType":"YulFunctionCall","src":"1340:25:103"},"nodeType":"YulExpressionStatement","src":"1340:25:103"},{"body":{"nodeType":"YulBlock","src":"1407:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1428:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1435:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1440:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1431:3:103"},"nodeType":"YulFunctionCall","src":"1431:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1421:6:103"},"nodeType":"YulFunctionCall","src":"1421:31:103"},"nodeType":"YulExpressionStatement","src":"1421:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1472:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1475:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1465:6:103"},"nodeType":"YulFunctionCall","src":"1465:15:103"},"nodeType":"YulExpressionStatement","src":"1465:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1500:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1503:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1493:6:103"},"nodeType":"YulFunctionCall","src":"1493:15:103"},"nodeType":"YulExpressionStatement","src":"1493:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1387:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1395:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1384:2:103"},"nodeType":"YulFunctionCall","src":"1384:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1377:6:103"},"nodeType":"YulFunctionCall","src":"1377:21:103"},"nodeType":"YulIf","src":"1374:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1538:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1549:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1534:3:103"},"nodeType":"YulFunctionCall","src":"1534:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1554:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1527:6:103"},"nodeType":"YulFunctionCall","src":"1527:34:103"},"nodeType":"YulExpressionStatement","src":"1527:34:103"},{"nodeType":"YulVariableDeclaration","src":"1570:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1588:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1593:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1584:3:103"},"nodeType":"YulFunctionCall","src":"1584:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1597:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1580:3:103"},"nodeType":"YulFunctionCall","src":"1580:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1574:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1619:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1630:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1615:3:103"},"nodeType":"YulFunctionCall","src":"1615:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1639:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1647:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1635:3:103"},"nodeType":"YulFunctionCall","src":"1635:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1608:6:103"},"nodeType":"YulFunctionCall","src":"1608:43:103"},"nodeType":"YulExpressionStatement","src":"1608:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1671:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1682:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1667:3:103"},"nodeType":"YulFunctionCall","src":"1667:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1691:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1699:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1687:3:103"},"nodeType":"YulFunctionCall","src":"1687:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1660:6:103"},"nodeType":"YulFunctionCall","src":"1660:43:103"},"nodeType":"YulExpressionStatement","src":"1660:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1239:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1250:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1258:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1266:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1274:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1285:4:103","type":""}],"src":"1093:616:103"},{"body":{"nodeType":"YulBlock","src":"1888:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1905:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1916:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1898:6:103"},"nodeType":"YulFunctionCall","src":"1898:21:103"},"nodeType":"YulExpressionStatement","src":"1898:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1939:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1950:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1935:3:103"},"nodeType":"YulFunctionCall","src":"1935:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"1955:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1928:6:103"},"nodeType":"YulFunctionCall","src":"1928:30:103"},"nodeType":"YulExpressionStatement","src":"1928:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1978:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1989:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1974:3:103"},"nodeType":"YulFunctionCall","src":"1974:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"1994:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1967:6:103"},"nodeType":"YulFunctionCall","src":"1967:62:103"},"nodeType":"YulExpressionStatement","src":"1967:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2049:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2060:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2045:3:103"},"nodeType":"YulFunctionCall","src":"2045:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2065:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2038:6:103"},"nodeType":"YulFunctionCall","src":"2038:33:103"},"nodeType":"YulExpressionStatement","src":"2038:33:103"},{"nodeType":"YulAssignment","src":"2080:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2092:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2103:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2088:3:103"},"nodeType":"YulFunctionCall","src":"2088:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2080:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1865:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1879:4:103","type":""}],"src":"1714:399:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := mload(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000f6138038062000f618339810160408190526200003491620003d6565b81818160008262000045336200025a565b6001600160a01b038116620000ac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b606482015260840160405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000d6620002aa565b600480546001600160a01b0319166001600160a01b039290921691909117905562000100620002c5565b600580546001600160a01b0319166001600160a01b03929092169190911790556200012a620002f2565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200017d57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001d192909160ff82169130916101009091046001600160a01b03169062000404565b60405180910390a1505050620001fd6c4f7261636c655365727669636560981b6200030c60201b60201c565b600780546001600160a01b0319166001600160a01b03929092169190911790556040513081527f77dee27cd265ac28cb5ba0d4f1a792ad0425ca4ae8bd0c6253b99ec26ac454109060200160405180910390a1505050506200044f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620002c06541636365737360d01b6200030c565b905090565b6000620002c07f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200030c565b6000620002c06e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200035757600080fd5b505afa1580156200036c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003929190620003b2565b90505b919050565b80516001600160a01b03811681146200039557600080fd5b600060208284031215620003c4578081fd5b620003cf826200039a565b9392505050565b60008060408385031215620003e9578081fd5b82519150620003fb602084016200039a565b90509250929050565b84815260808101600385106200042a57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b610b02806200045f6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063be169e7e1161007c578063be169e7e146101d5578063d0e0ba951461026d578063d73cd992146101d5578063e0815f0d14610280578063f2fde38b14610288578063ffc790651461029b57610158565b80638da5cb5b146102395780639a82f8901461024a578063a18f5ae2146101d5578063a9c577c514610252578063b3fca9bd146101d5578063bd1fe5d01461026557610158565b806359dacc6a1161011557806359dacc6a146101d55780635ab1bd53146101dd5780635d1ca6311461020c578063638ce0ba14610214578063715018a61461021c578063893d20e81461022457610158565b806315dae03e1461015d57806317d7de7c146101795780631865c57d1461018b5780631b867c63146101a0578063258d560c146101aa57806340e58ee5146101c2575b600080fd5b60035460ff1660405161017091906109db565b60405180910390f35b6001545b604051908152602001610170565b6101936102ae565b60405161017091906109c1565b6101a8610334565b005b6101b261038c565b6040519015158152602001610170565b6101a86101d03660046108ff565b6103bc565b6101a86103c7565b6101f460035461010090046001600160a01b031690565b6040516001600160a01b039091168152602001610170565b60025461017d565b6101a8610411565b6101a861045e565b6101f4600080546001600160a01b031661032f565b6000546001600160a01b03166101f4565b6101b2610470565b6101a8610260366004610917565b610478565b6101a86104a8565b6101a861027b3660046108ff565b6104f5565b6101b261053f565b6101a86102963660046108a1565b610548565b6101a86102a936600461094a565b6105be565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156102f757600080fd5b505afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906108e0565b905090565b6103496810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146103825760405162461bcd60e51b8152600401610379906109ef565b60405180910390fd5b61038a6106f0565b565b600060025b60035460ff1660028111156103b657634e487b7160e01b600052602160045260246000fd5b14905090565b6103c461072d565b50565b6103dc6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461040c5760405162461bcd60e51b8152600401610379906109ef565b61038a565b6104266810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104565760405162461bcd60e51b8152600401610379906109ef565b61038a610787565b61046661072d565b61038a60006107b1565b600080610391565b6040805182151560208201526000910160405160208183030381529060405290506104a38382610801565b505050565b6104bd6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104ed5760405162461bcd60e51b8152600401610379906109ef565b61038a610861565b61050a6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461053a5760405162461bcd60e51b8152600401610379906109ef565b600255565b60006001610391565b61055061072d565b6001600160a01b0381166105b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610379565b6103c4816107b1565b6105cf64517565727960d81b610668565b6001600160a01b0316336001600160a01b03161461062f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e49454400000000006044820152606401610379565b60008061063e83850185610917565b9150915080156106615760006106538361088b565b905061065f8682610478565b505b5050505050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea91906108c4565b92915050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b2361071a60025490565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461038a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610379565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e661071a60025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a906108339085908590600401610a26565b600060405180830381600087803b15801561084d57600080fd5b505af115801561065f573d6000803e3d6000fd5b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d61071a60025490565b6000610898600283610a81565b60011492915050565b6000602082840312156108b2578081fd5b81356108bd81610ab7565b9392505050565b6000602082840312156108d5578081fd5b81516108bd81610ab7565b6000602082840312156108f1578081fd5b8151600781106108bd578182fd5b600060208284031215610910578081fd5b5035919050565b60008060408385031215610929578081fd5b823591506020830135801515811461093f578182fd5b809150509250929050565b60008060006040848603121561095e578081fd5b83359250602084013567ffffffffffffffff8082111561097c578283fd5b818601915086601f83011261098f578283fd5b81358181111561099d578384fd5b8760208285010111156109ae578384fd5b6020830194508093505050509250925092565b60208101600783106109d5576109d5610aa1565b91905290565b60208101600383106109d5576109d5610aa1565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260206040818401528351806040850152825b81811015610a5957858101830151858201606001528201610a3d565b81811115610a6a5783606083870101525b50601f01601f191692909201606001949350505050565b600082610a9c57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146103c457600080fdfea26469706673582212207cdbbd98d4220fcfcf29de531380c5e9d77ba0bb75aa63d715c0b748d14b43e964736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xF61 CODESIZE SUB DUP1 PUSH3 0xF61 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x3D6 JUMP JUMPDEST DUP2 DUP2 DUP2 PUSH1 0x0 DUP3 PUSH3 0x45 CALLER PUSH3 0x25A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xD6 PUSH3 0x2AA JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x100 PUSH3 0x2C5 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x12A PUSH3 0x2F2 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x17D JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1D1 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x404 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP PUSH3 0x1FD PUSH13 0x4F7261636C6553657276696365 PUSH1 0x98 SHL PUSH3 0x30C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 MLOAD ADDRESS DUP2 MSTORE PUSH32 0x77DEE27CD265AC28CB5BA0D4F1A792AD0425CA4AE8BD0C6253B99EC26AC45410 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP PUSH3 0x44F JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2C0 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x30C JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2C0 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x30C JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2C0 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x357 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x36C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x392 SWAP2 SWAP1 PUSH3 0x3B2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x395 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x3C4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH3 0x3CF DUP3 PUSH3 0x39A JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x3E9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 MLOAD SWAP2 POP PUSH3 0x3FB PUSH1 0x20 DUP5 ADD PUSH3 0x39A JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x42A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB02 DUP1 PUSH3 0x45F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x158 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xBE169E7E GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0xFFC79065 EQ PUSH2 0x29B JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xA9C577C5 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x265 JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x214 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x224 JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x18B JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x1C2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x193 PUSH2 0x2AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x9C1 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B2 PUSH2 0x38C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x1D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x8FF JUMP JUMPDEST PUSH2 0x3BC JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x1F4 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x17D JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x411 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x45E JUMP JUMPDEST PUSH2 0x1F4 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x32F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F4 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x470 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x260 CALLDATASIZE PUSH1 0x4 PUSH2 0x917 JUMP JUMPDEST PUSH2 0x478 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x4A8 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x8FF JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x53F JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x296 CALLDATASIZE PUSH1 0x4 PUSH2 0x8A1 JUMP JUMPDEST PUSH2 0x548 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x2A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x94A JUMP JUMPDEST PUSH2 0x5BE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32F SWAP2 SWAP1 PUSH2 0x8E0 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x349 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x382 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38A PUSH2 0x6F0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x3B6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x3C4 PUSH2 0x72D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x3DC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x40C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A JUMP JUMPDEST PUSH2 0x426 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A PUSH2 0x787 JUMP JUMPDEST PUSH2 0x466 PUSH2 0x72D JUMP JUMPDEST PUSH2 0x38A PUSH1 0x0 PUSH2 0x7B1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x391 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x4A3 DUP4 DUP3 PUSH2 0x801 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4BD PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A PUSH2 0x861 JUMP JUMPDEST PUSH2 0x50A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x53A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x550 PUSH2 0x72D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x379 JUMP JUMPDEST PUSH2 0x3C4 DUP2 PUSH2 0x7B1 JUMP JUMPDEST PUSH2 0x5CF PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x62F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4F52412D3030313A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x379 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x63E DUP4 DUP6 ADD DUP6 PUSH2 0x917 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 ISZERO PUSH2 0x661 JUMPI PUSH1 0x0 PUSH2 0x653 DUP4 PUSH2 0x88B JUMP JUMPDEST SWAP1 POP PUSH2 0x65F DUP7 DUP3 PUSH2 0x478 JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6EA SWAP2 SWAP1 PUSH2 0x8C4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x33A6EC8D94D03F2C0A2DA3411552B0777613E4220ABD6CE5679DECB30AF09B23 PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x38A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x379 JUMP JUMPDEST PUSH32 0xDB7E2F5405EA10CAD5583CE31A1BDE125FF32946EDB3CE5972D70EA3F2C214E6 PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7204A9A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE409534A SWAP1 PUSH2 0x833 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0xA26 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x84D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x65F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH32 0x1855FCCE92CB172C06FD991F1B19774237130B37CF6806BC01AA4E3A0C359E2D PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x898 PUSH1 0x2 DUP4 PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8B2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x8BD DUP2 PUSH2 0xAB7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8D5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x8BD DUP2 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8F1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x8BD JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x910 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x929 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x93F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x95E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x97C JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x98F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x99D JUMPI DUP4 DUP5 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x9AE JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D5 PUSH2 0xAA1 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D5 PUSH2 0xAA1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP3 MSTORE PUSH1 0x20 PUSH1 0x40 DUP2 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA59 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0xA3D JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xA6A JUMPI DUP4 PUSH1 0x60 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x60 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xA9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH29 0xDBBD98D4220FCFCF29DE531380C5E9D77BA0BB75AA63D715C0B748D14B NUMBER 0xE9 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"135:1710:95:-:0;;;174:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;265:10;277:8;265:10;580:20:17;277:8:95;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;1916:2:103;1619:70:12::1;::::0;::::1;1898:21:103::0;1955:2;1935:18;;;1928:30;1994:34;1974:18;;;1967:62;-1:-1:-1;;;2045:18:103;;;2038:33;2088:19;;1619:70:12::1;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;1466:657:::0;;;660:36:17::1;-1:-1:-1::0;;;660:19:17::1;;;:36;;:::i;:::-;628:14;:69:::0;;-1:-1:-1;;;;;;628:69:17::1;-1:-1:-1::0;;;;;628:69:17;;;::::1;::::0;;;::::1;::::0;;713:31:::1;::::0;738:4:::1;849:51:103::0;;713:31:17::1;::::0;837:2:103;822:18;713:31:17::1;;;;;;;486:266:::0;;174:121:95;;135:1710;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1057:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1030:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;;4875:145;;;;:::o;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;196:218;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:279::-;;;559:2;547:9;538:7;534:23;530:32;527:2;;;580:6;572;565:22;527:2;614:9;608:16;598:26;;643:49;688:2;677:9;673:18;643:49;:::i;:::-;633:59;;517:181;;;;;:::o;1093:616::-;1340:25;;;1327:3;1312:19;;1395:1;1384:13;;1374:2;;1440:10;1435:3;1431:20;1428:1;1421:31;1475:4;1472:1;1465:15;1503:4;1500:1;1493:15;1374:2;1549;1534:18;;1527:34;;;;-1:-1:-1;;;;;1635:15:103;;;1630:2;1615:18;;1608:43;1687:15;;1682:2;1667:18;;;1660:43;1294:415;;-1:-1:-1;1294:415:103:o;1888:225::-;135:1710:95;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6256:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"642:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"688:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"697:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"705:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"690:6:103"},"nodeType":"YulFunctionCall","src":"690:22:103"},"nodeType":"YulExpressionStatement","src":"690:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"663:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"672:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"659:3:103"},"nodeType":"YulFunctionCall","src":"659:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"684:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"655:3:103"},"nodeType":"YulFunctionCall","src":"655:32:103"},"nodeType":"YulIf","src":"652:2:103"},{"nodeType":"YulVariableDeclaration","src":"723:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"742:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"736:5:103"},"nodeType":"YulFunctionCall","src":"736:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"727:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"785:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"794:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"802:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"787:6:103"},"nodeType":"YulFunctionCall","src":"787:22:103"},"nodeType":"YulExpressionStatement","src":"787:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"774:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"781:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"771:2:103"},"nodeType":"YulFunctionCall","src":"771:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"764:6:103"},"nodeType":"YulFunctionCall","src":"764:20:103"},"nodeType":"YulIf","src":"761:2:103"},{"nodeType":"YulAssignment","src":"820:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"830:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"820:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"608:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"619:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"631:6:103","type":""}],"src":"542:299:103"},{"body":{"nodeType":"YulBlock","src":"916:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"962:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"971:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"979:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"964:6:103"},"nodeType":"YulFunctionCall","src":"964:22:103"},"nodeType":"YulExpressionStatement","src":"964:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"937:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"946:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"933:3:103"},"nodeType":"YulFunctionCall","src":"933:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"958:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"929:3:103"},"nodeType":"YulFunctionCall","src":"929:32:103"},"nodeType":"YulIf","src":"926:2:103"},{"nodeType":"YulAssignment","src":"997:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1020:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1007:12:103"},"nodeType":"YulFunctionCall","src":"1007:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"997:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"882:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"893:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"905:6:103","type":""}],"src":"846:190:103"},{"body":{"nodeType":"YulBlock","src":"1125:277:103","statements":[{"body":{"nodeType":"YulBlock","src":"1171:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1180:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1188:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1173:6:103"},"nodeType":"YulFunctionCall","src":"1173:22:103"},"nodeType":"YulExpressionStatement","src":"1173:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1146:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1155:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1142:3:103"},"nodeType":"YulFunctionCall","src":"1142:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1167:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1138:3:103"},"nodeType":"YulFunctionCall","src":"1138:32:103"},"nodeType":"YulIf","src":"1135:2:103"},{"nodeType":"YulAssignment","src":"1206:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1229:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1216:12:103"},"nodeType":"YulFunctionCall","src":"1216:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1206:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1248:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1289:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1274:3:103"},"nodeType":"YulFunctionCall","src":"1274:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1261:12:103"},"nodeType":"YulFunctionCall","src":"1261:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1252:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1346:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1355:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1363:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1348:6:103"},"nodeType":"YulFunctionCall","src":"1348:22:103"},"nodeType":"YulExpressionStatement","src":"1348:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1315:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1336:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1329:6:103"},"nodeType":"YulFunctionCall","src":"1329:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1322:6:103"},"nodeType":"YulFunctionCall","src":"1322:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1312:2:103"},"nodeType":"YulFunctionCall","src":"1312:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1305:6:103"},"nodeType":"YulFunctionCall","src":"1305:40:103"},"nodeType":"YulIf","src":"1302:2:103"},{"nodeType":"YulAssignment","src":"1381:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1391:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1381:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1083:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1094:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1106:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1114:6:103","type":""}],"src":"1041:361:103"},{"body":{"nodeType":"YulBlock","src":"1513:603:103","statements":[{"body":{"nodeType":"YulBlock","src":"1559:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1568:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"1576:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1561:6:103"},"nodeType":"YulFunctionCall","src":"1561:22:103"},"nodeType":"YulExpressionStatement","src":"1561:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1534:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1543:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1530:3:103"},"nodeType":"YulFunctionCall","src":"1530:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1555:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1526:3:103"},"nodeType":"YulFunctionCall","src":"1526:32:103"},"nodeType":"YulIf","src":"1523:2:103"},{"nodeType":"YulAssignment","src":"1594:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1617:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1604:12:103"},"nodeType":"YulFunctionCall","src":"1604:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1594:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1636:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1667:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1678:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1663:3:103"},"nodeType":"YulFunctionCall","src":"1663:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1650:12:103"},"nodeType":"YulFunctionCall","src":"1650:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1640:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1691:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1701:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1695:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1746:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1755:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"1763:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1748:6:103"},"nodeType":"YulFunctionCall","src":"1748:22:103"},"nodeType":"YulExpressionStatement","src":"1748:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1734:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1742:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1731:2:103"},"nodeType":"YulFunctionCall","src":"1731:14:103"},"nodeType":"YulIf","src":"1728:2:103"},{"nodeType":"YulVariableDeclaration","src":"1781:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1795:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1806:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1791:3:103"},"nodeType":"YulFunctionCall","src":"1791:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1785:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1861:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1870:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"1878:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1863:6:103"},"nodeType":"YulFunctionCall","src":"1863:22:103"},"nodeType":"YulExpressionStatement","src":"1863:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1840:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1836:3:103"},"nodeType":"YulFunctionCall","src":"1836:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1851:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1832:3:103"},"nodeType":"YulFunctionCall","src":"1832:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1825:6:103"},"nodeType":"YulFunctionCall","src":"1825:35:103"},"nodeType":"YulIf","src":"1822:2:103"},{"nodeType":"YulVariableDeclaration","src":"1896:30:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1923:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1910:12:103"},"nodeType":"YulFunctionCall","src":"1910:16:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1900:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1953:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1962:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"1970:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1955:6:103"},"nodeType":"YulFunctionCall","src":"1955:22:103"},"nodeType":"YulExpressionStatement","src":"1955:22:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1941:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1949:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1938:2:103"},"nodeType":"YulFunctionCall","src":"1938:14:103"},"nodeType":"YulIf","src":"1935:2:103"},{"body":{"nodeType":"YulBlock","src":"2029:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2038:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2046:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2031:6:103"},"nodeType":"YulFunctionCall","src":"2031:22:103"},"nodeType":"YulExpressionStatement","src":"2031:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2002:2:103"},{"name":"length","nodeType":"YulIdentifier","src":"2006:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1998:3:103"},"nodeType":"YulFunctionCall","src":"1998:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"2015:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:103"},"nodeType":"YulFunctionCall","src":"1994:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2020:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1991:2:103"},"nodeType":"YulFunctionCall","src":"1991:37:103"},"nodeType":"YulIf","src":"1988:2:103"},{"nodeType":"YulAssignment","src":"2064:21:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2078:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2082:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2074:3:103"},"nodeType":"YulFunctionCall","src":"2074:11:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2064:6:103"}]},{"nodeType":"YulAssignment","src":"2094:16:103","value":{"name":"length","nodeType":"YulIdentifier","src":"2104:6:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2094:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1463:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1474:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1486:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1494:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1502:6:103","type":""}],"src":"1407:709:103"},{"body":{"nodeType":"YulBlock","src":"2222:102:103","statements":[{"nodeType":"YulAssignment","src":"2232:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2244:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2255:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2240:3:103"},"nodeType":"YulFunctionCall","src":"2240:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2232:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2274:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2289:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2305:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2310:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2314:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2297:3:103"},"nodeType":"YulFunctionCall","src":"2297:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2285:3:103"},"nodeType":"YulFunctionCall","src":"2285:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2267:6:103"},"nodeType":"YulFunctionCall","src":"2267:51:103"},"nodeType":"YulExpressionStatement","src":"2267:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2191:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2202:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2213:4:103","type":""}],"src":"2121:203:103"},{"body":{"nodeType":"YulBlock","src":"2424:92:103","statements":[{"nodeType":"YulAssignment","src":"2434:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2446:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2457:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2442:3:103"},"nodeType":"YulFunctionCall","src":"2442:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2434:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2476:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2501:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2494:6:103"},"nodeType":"YulFunctionCall","src":"2494:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2487:6:103"},"nodeType":"YulFunctionCall","src":"2487:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2469:6:103"},"nodeType":"YulFunctionCall","src":"2469:41:103"},"nodeType":"YulExpressionStatement","src":"2469:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2393:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2404:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2415:4:103","type":""}],"src":"2329:187:103"},{"body":{"nodeType":"YulBlock","src":"2622:76:103","statements":[{"nodeType":"YulAssignment","src":"2632:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2644:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2655:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2640:3:103"},"nodeType":"YulFunctionCall","src":"2640:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2632:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2674:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2685:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2667:6:103"},"nodeType":"YulFunctionCall","src":"2667:25:103"},"nodeType":"YulExpressionStatement","src":"2667:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2591:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2602:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2613:4:103","type":""}],"src":"2521:177:103"},{"body":{"nodeType":"YulBlock","src":"2822:102:103","statements":[{"nodeType":"YulAssignment","src":"2832:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2855:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2840:3:103"},"nodeType":"YulFunctionCall","src":"2840:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2832:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2874:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2889:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2905:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2910:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2901:3:103"},"nodeType":"YulFunctionCall","src":"2901:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2914:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2897:3:103"},"nodeType":"YulFunctionCall","src":"2897:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2885:3:103"},"nodeType":"YulFunctionCall","src":"2885:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2867:6:103"},"nodeType":"YulFunctionCall","src":"2867:51:103"},"nodeType":"YulExpressionStatement","src":"2867:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2791:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2802:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2813:4:103","type":""}],"src":"2703:221:103"},{"body":{"nodeType":"YulBlock","src":"3047:132:103","statements":[{"nodeType":"YulAssignment","src":"3057:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3069:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3080:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3065:3:103"},"nodeType":"YulFunctionCall","src":"3065:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3057:4:103"}]},{"body":{"nodeType":"YulBlock","src":"3117:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"3119:16:103"},"nodeType":"YulFunctionCall","src":"3119:18:103"},"nodeType":"YulExpressionStatement","src":"3119:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3105:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3113:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3102:2:103"},"nodeType":"YulFunctionCall","src":"3102:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3095:6:103"},"nodeType":"YulFunctionCall","src":"3095:21:103"},"nodeType":"YulIf","src":"3092:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3155:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3166:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3148:6:103"},"nodeType":"YulFunctionCall","src":"3148:25:103"},"nodeType":"YulExpressionStatement","src":"3148:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3016:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3027:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3038:4:103","type":""}],"src":"2929:250:103"},{"body":{"nodeType":"YulBlock","src":"3301:132:103","statements":[{"nodeType":"YulAssignment","src":"3311:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3323:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3334:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3319:3:103"},"nodeType":"YulFunctionCall","src":"3319:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3311:4:103"}]},{"body":{"nodeType":"YulBlock","src":"3371:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"3373:16:103"},"nodeType":"YulFunctionCall","src":"3373:18:103"},"nodeType":"YulExpressionStatement","src":"3373:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3359:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3367:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3356:2:103"},"nodeType":"YulFunctionCall","src":"3356:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3349:6:103"},"nodeType":"YulFunctionCall","src":"3349:21:103"},"nodeType":"YulIf","src":"3346:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3409:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3420:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3402:6:103"},"nodeType":"YulFunctionCall","src":"3402:25:103"},"nodeType":"YulExpressionStatement","src":"3402:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3270:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3281:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3292:4:103","type":""}],"src":"3184:249:103"},{"body":{"nodeType":"YulBlock","src":"3612:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3629:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3640:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3622:6:103"},"nodeType":"YulFunctionCall","src":"3622:21:103"},"nodeType":"YulExpressionStatement","src":"3622:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3663:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3674:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3659:3:103"},"nodeType":"YulFunctionCall","src":"3659:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3679:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3652:6:103"},"nodeType":"YulFunctionCall","src":"3652:30:103"},"nodeType":"YulExpressionStatement","src":"3652:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3702:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3713:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3698:3:103"},"nodeType":"YulFunctionCall","src":"3698:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3718:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3691:6:103"},"nodeType":"YulFunctionCall","src":"3691:57:103"},"nodeType":"YulExpressionStatement","src":"3691:57:103"},{"nodeType":"YulAssignment","src":"3757:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3769:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3780:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3765:3:103"},"nodeType":"YulFunctionCall","src":"3765:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3757:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3589:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3603:4:103","type":""}],"src":"3438:351:103"},{"body":{"nodeType":"YulBlock","src":"3968:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3996:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3978:6:103"},"nodeType":"YulFunctionCall","src":"3978:21:103"},"nodeType":"YulExpressionStatement","src":"3978:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4030:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4015:3:103"},"nodeType":"YulFunctionCall","src":"4015:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4035:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4008:6:103"},"nodeType":"YulFunctionCall","src":"4008:30:103"},"nodeType":"YulExpressionStatement","src":"4008:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4058:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4069:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4054:3:103"},"nodeType":"YulFunctionCall","src":"4054:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4074:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4047:6:103"},"nodeType":"YulFunctionCall","src":"4047:62:103"},"nodeType":"YulExpressionStatement","src":"4047:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4129:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4140:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4125:3:103"},"nodeType":"YulFunctionCall","src":"4125:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4145:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4118:6:103"},"nodeType":"YulFunctionCall","src":"4118:36:103"},"nodeType":"YulExpressionStatement","src":"4118:36:103"},{"nodeType":"YulAssignment","src":"4163:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4175:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4186:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4171:3:103"},"nodeType":"YulFunctionCall","src":"4171:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4163:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3945:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3959:4:103","type":""}],"src":"3794:402:103"},{"body":{"nodeType":"YulBlock","src":"4375:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4392:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4403:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4385:6:103"},"nodeType":"YulFunctionCall","src":"4385:21:103"},"nodeType":"YulExpressionStatement","src":"4385:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4426:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4437:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4422:3:103"},"nodeType":"YulFunctionCall","src":"4422:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4442:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4415:6:103"},"nodeType":"YulFunctionCall","src":"4415:30:103"},"nodeType":"YulExpressionStatement","src":"4415:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4476:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4461:3:103"},"nodeType":"YulFunctionCall","src":"4461:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4481:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4454:6:103"},"nodeType":"YulFunctionCall","src":"4454:62:103"},"nodeType":"YulExpressionStatement","src":"4454:62:103"},{"nodeType":"YulAssignment","src":"4525:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4548:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4533:3:103"},"nodeType":"YulFunctionCall","src":"4533:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4525:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4352:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4366:4:103","type":""}],"src":"4201:356:103"},{"body":{"nodeType":"YulBlock","src":"4736:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4764:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4746:6:103"},"nodeType":"YulFunctionCall","src":"4746:21:103"},"nodeType":"YulExpressionStatement","src":"4746:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4787:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4798:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4783:3:103"},"nodeType":"YulFunctionCall","src":"4783:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4803:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4776:6:103"},"nodeType":"YulFunctionCall","src":"4776:30:103"},"nodeType":"YulExpressionStatement","src":"4776:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4826:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4837:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4822:3:103"},"nodeType":"YulFunctionCall","src":"4822:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4842:29:103","type":"","value":"ERROR:ORA-001:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4815:6:103"},"nodeType":"YulFunctionCall","src":"4815:57:103"},"nodeType":"YulExpressionStatement","src":"4815:57:103"},{"nodeType":"YulAssignment","src":"4881:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4893:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4904:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4889:3:103"},"nodeType":"YulFunctionCall","src":"4889:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4881:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4713:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4727:4:103","type":""}],"src":"4562:351:103"},{"body":{"nodeType":"YulBlock","src":"5019:76:103","statements":[{"nodeType":"YulAssignment","src":"5029:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5041:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5052:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5037:3:103"},"nodeType":"YulFunctionCall","src":"5037:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5029:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5071:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5082:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5064:6:103"},"nodeType":"YulFunctionCall","src":"5064:25:103"},"nodeType":"YulExpressionStatement","src":"5064:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4988:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4999:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5010:4:103","type":""}],"src":"4918:177:103"},{"body":{"nodeType":"YulBlock","src":"5247:525:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5264:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5275:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5257:6:103"},"nodeType":"YulFunctionCall","src":"5257:25:103"},"nodeType":"YulExpressionStatement","src":"5257:25:103"},{"nodeType":"YulVariableDeclaration","src":"5291:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5301:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5295:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5323:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5334:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5319:3:103"},"nodeType":"YulFunctionCall","src":"5319:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5339:2:103","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5312:6:103"},"nodeType":"YulFunctionCall","src":"5312:30:103"},"nodeType":"YulExpressionStatement","src":"5312:30:103"},{"nodeType":"YulVariableDeclaration","src":"5351:27:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5371:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5365:5:103"},"nodeType":"YulFunctionCall","src":"5365:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5355:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5398:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5409:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5394:3:103"},"nodeType":"YulFunctionCall","src":"5394:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"5414:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5387:6:103"},"nodeType":"YulFunctionCall","src":"5387:34:103"},"nodeType":"YulExpressionStatement","src":"5387:34:103"},{"nodeType":"YulVariableDeclaration","src":"5430:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"5439:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5434:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5502:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5531:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"5542:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5527:3:103"},"nodeType":"YulFunctionCall","src":"5527:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"5546:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5523:3:103"},"nodeType":"YulFunctionCall","src":"5523:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5565:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"5573:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5561:3:103"},"nodeType":"YulFunctionCall","src":"5561:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5577:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5557:3:103"},"nodeType":"YulFunctionCall","src":"5557:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5551:5:103"},"nodeType":"YulFunctionCall","src":"5551:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5516:6:103"},"nodeType":"YulFunctionCall","src":"5516:66:103"},"nodeType":"YulExpressionStatement","src":"5516:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5463:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5466:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5460:2:103"},"nodeType":"YulFunctionCall","src":"5460:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5474:19:103","statements":[{"nodeType":"YulAssignment","src":"5476:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5485:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5488:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5481:3:103"},"nodeType":"YulFunctionCall","src":"5481:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5476:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"5456:3:103","statements":[]},"src":"5452:140:103"},{"body":{"nodeType":"YulBlock","src":"5626:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5655:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"5666:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5651:3:103"},"nodeType":"YulFunctionCall","src":"5651:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"5675:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5647:3:103"},"nodeType":"YulFunctionCall","src":"5647:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"5680:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5640:6:103"},"nodeType":"YulFunctionCall","src":"5640:45:103"},"nodeType":"YulExpressionStatement","src":"5640:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5607:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5610:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5604:2:103"},"nodeType":"YulFunctionCall","src":"5604:13:103"},"nodeType":"YulIf","src":"5601:2:103"},{"nodeType":"YulAssignment","src":"5704:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5720:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5739:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5747:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5735:3:103"},"nodeType":"YulFunctionCall","src":"5735:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5756:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5752:3:103"},"nodeType":"YulFunctionCall","src":"5752:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5731:3:103"},"nodeType":"YulFunctionCall","src":"5731:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5716:3:103"},"nodeType":"YulFunctionCall","src":"5716:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"5763:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5712:3:103"},"nodeType":"YulFunctionCall","src":"5712:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5704:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5208:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5219:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5227:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5238:4:103","type":""}],"src":"5100:672:103"},{"body":{"nodeType":"YulBlock","src":"5815:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"5846:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"5867:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5874:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5879:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5870:3:103"},"nodeType":"YulFunctionCall","src":"5870:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5860:6:103"},"nodeType":"YulFunctionCall","src":"5860:31:103"},"nodeType":"YulExpressionStatement","src":"5860:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5911:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5914:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5904:6:103"},"nodeType":"YulFunctionCall","src":"5904:15:103"},"nodeType":"YulExpressionStatement","src":"5904:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"5939:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"5942:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5932:6:103"},"nodeType":"YulFunctionCall","src":"5932:15:103"},"nodeType":"YulExpressionStatement","src":"5932:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5835:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5828:6:103"},"nodeType":"YulFunctionCall","src":"5828:9:103"},"nodeType":"YulIf","src":"5825:2:103"},{"nodeType":"YulAssignment","src":"5966:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5975:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5978:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"5971:3:103"},"nodeType":"YulFunctionCall","src":"5971:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5966:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5800:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5803:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"5809:1:103","type":""}],"src":"5777:209:103"},{"body":{"nodeType":"YulBlock","src":"6023:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6040:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6047:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6052:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6043:3:103"},"nodeType":"YulFunctionCall","src":"6043:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6033:6:103"},"nodeType":"YulFunctionCall","src":"6033:31:103"},"nodeType":"YulExpressionStatement","src":"6033:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6080:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"6083:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6073:6:103"},"nodeType":"YulFunctionCall","src":"6073:15:103"},"nodeType":"YulExpressionStatement","src":"6073:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6104:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6107:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6097:6:103"},"nodeType":"YulFunctionCall","src":"6097:15:103"},"nodeType":"YulExpressionStatement","src":"6097:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"5991:127:103"},{"body":{"nodeType":"YulBlock","src":"6168:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"6232:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6241:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6244:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6234:6:103"},"nodeType":"YulFunctionCall","src":"6234:12:103"},"nodeType":"YulExpressionStatement","src":"6234:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6191:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6202:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6217:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"6222:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6213:3:103"},"nodeType":"YulFunctionCall","src":"6213:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"6226:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6209:3:103"},"nodeType":"YulFunctionCall","src":"6209:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6198:3:103"},"nodeType":"YulFunctionCall","src":"6198:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"6188:2:103"},"nodeType":"YulFunctionCall","src":"6188:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6181:6:103"},"nodeType":"YulFunctionCall","src":"6181:50:103"},"nodeType":"YulIf","src":"6178:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6157:5:103","type":""}],"src":"6123:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(value1, value1) }\n value1 := value\n }\n function abi_decode_tuple_t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value2, value2) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value2, value2) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value2, value2) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(value2, value2) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(value2, value2) }\n value1 := add(_2, 32)\n value2 := length\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_a3214b105f8e4fc42f2f6a7934ad3971d0ae822439cb6ceb58541fba4df7e8c0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:ORA-001:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bytes_memory_ptr__to_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, value0)\n let _1 := 32\n mstore(add(headStart, _1), 64)\n let length := mload(value1)\n mstore(add(headStart, 64), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 96), mload(add(add(value1, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 96), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 96)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := mod(x, y)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063be169e7e1161007c578063be169e7e146101d5578063d0e0ba951461026d578063d73cd992146101d5578063e0815f0d14610280578063f2fde38b14610288578063ffc790651461029b57610158565b80638da5cb5b146102395780639a82f8901461024a578063a18f5ae2146101d5578063a9c577c514610252578063b3fca9bd146101d5578063bd1fe5d01461026557610158565b806359dacc6a1161011557806359dacc6a146101d55780635ab1bd53146101dd5780635d1ca6311461020c578063638ce0ba14610214578063715018a61461021c578063893d20e81461022457610158565b806315dae03e1461015d57806317d7de7c146101795780631865c57d1461018b5780631b867c63146101a0578063258d560c146101aa57806340e58ee5146101c2575b600080fd5b60035460ff1660405161017091906109db565b60405180910390f35b6001545b604051908152602001610170565b6101936102ae565b60405161017091906109c1565b6101a8610334565b005b6101b261038c565b6040519015158152602001610170565b6101a86101d03660046108ff565b6103bc565b6101a86103c7565b6101f460035461010090046001600160a01b031690565b6040516001600160a01b039091168152602001610170565b60025461017d565b6101a8610411565b6101a861045e565b6101f4600080546001600160a01b031661032f565b6000546001600160a01b03166101f4565b6101b2610470565b6101a8610260366004610917565b610478565b6101a86104a8565b6101a861027b3660046108ff565b6104f5565b6101b261053f565b6101a86102963660046108a1565b610548565b6101a86102a936600461094a565b6105be565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156102f757600080fd5b505afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906108e0565b905090565b6103496810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146103825760405162461bcd60e51b8152600401610379906109ef565b60405180910390fd5b61038a6106f0565b565b600060025b60035460ff1660028111156103b657634e487b7160e01b600052602160045260246000fd5b14905090565b6103c461072d565b50565b6103dc6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461040c5760405162461bcd60e51b8152600401610379906109ef565b61038a565b6104266810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104565760405162461bcd60e51b8152600401610379906109ef565b61038a610787565b61046661072d565b61038a60006107b1565b600080610391565b6040805182151560208201526000910160405160208183030381529060405290506104a38382610801565b505050565b6104bd6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104ed5760405162461bcd60e51b8152600401610379906109ef565b61038a610861565b61050a6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461053a5760405162461bcd60e51b8152600401610379906109ef565b600255565b60006001610391565b61055061072d565b6001600160a01b0381166105b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610379565b6103c4816107b1565b6105cf64517565727960d81b610668565b6001600160a01b0316336001600160a01b03161461062f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e49454400000000006044820152606401610379565b60008061063e83850185610917565b9150915080156106615760006106538361088b565b905061065f8682610478565b505b5050505050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea91906108c4565b92915050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b2361071a60025490565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461038a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610379565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e661071a60025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a906108339085908590600401610a26565b600060405180830381600087803b15801561084d57600080fd5b505af115801561065f573d6000803e3d6000fd5b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d61071a60025490565b6000610898600283610a81565b60011492915050565b6000602082840312156108b2578081fd5b81356108bd81610ab7565b9392505050565b6000602082840312156108d5578081fd5b81516108bd81610ab7565b6000602082840312156108f1578081fd5b8151600781106108bd578182fd5b600060208284031215610910578081fd5b5035919050565b60008060408385031215610929578081fd5b823591506020830135801515811461093f578182fd5b809150509250929050565b60008060006040848603121561095e578081fd5b83359250602084013567ffffffffffffffff8082111561097c578283fd5b818601915086601f83011261098f578283fd5b81358181111561099d578384fd5b8760208285010111156109ae578384fd5b6020830194508093505050509250925092565b60208101600783106109d5576109d5610aa1565b91905290565b60208101600383106109d5576109d5610aa1565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260206040818401528351806040850152825b81811015610a5957858101830151858201606001528201610a3d565b81811115610a6a5783606083870101525b50601f01601f191692909201606001949350505050565b600082610a9c57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146103c457600080fdfea26469706673582212207cdbbd98d4220fcfcf29de531380c5e9d77ba0bb75aa63d715c0b748d14b43e964736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x158 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xC3 JUMPI DUP1 PUSH4 0xBE169E7E GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x280 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x288 JUMPI DUP1 PUSH4 0xFFC79065 EQ PUSH2 0x29B JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x239 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x24A JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xA9C577C5 EQ PUSH2 0x252 JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x265 JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A GT PUSH2 0x115 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x1D5 JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x1DD JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x214 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x21C JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x224 JUMPI PUSH2 0x158 JUMP JUMPDEST DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x18B JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x1AA JUMPI DUP1 PUSH4 0x40E58EE5 EQ PUSH2 0x1C2 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x193 PUSH2 0x2AE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x170 SWAP2 SWAP1 PUSH2 0x9C1 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x334 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1B2 PUSH2 0x38C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x1D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x8FF JUMP JUMPDEST PUSH2 0x3BC JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x3C7 JUMP JUMPDEST PUSH2 0x1F4 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x170 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x17D JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x411 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x45E JUMP JUMPDEST PUSH2 0x1F4 PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x32F JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1F4 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x470 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x260 CALLDATASIZE PUSH1 0x4 PUSH2 0x917 JUMP JUMPDEST PUSH2 0x478 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x4A8 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x27B CALLDATASIZE PUSH1 0x4 PUSH2 0x8FF JUMP JUMPDEST PUSH2 0x4F5 JUMP JUMPDEST PUSH2 0x1B2 PUSH2 0x53F JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x296 CALLDATASIZE PUSH1 0x4 PUSH2 0x8A1 JUMP JUMPDEST PUSH2 0x548 JUMP JUMPDEST PUSH2 0x1A8 PUSH2 0x2A9 CALLDATASIZE PUSH1 0x4 PUSH2 0x94A JUMP JUMPDEST PUSH2 0x5BE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x30B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x32F SWAP2 SWAP1 PUSH2 0x8E0 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x349 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x382 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x38A PUSH2 0x6F0 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x3B6 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x3C4 PUSH2 0x72D JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x3DC PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x40C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A JUMP JUMPDEST PUSH2 0x426 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x456 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A PUSH2 0x787 JUMP JUMPDEST PUSH2 0x466 PUSH2 0x72D JUMP JUMPDEST PUSH2 0x38A PUSH1 0x0 PUSH2 0x7B1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x391 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 SWAP2 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x4A3 DUP4 DUP3 PUSH2 0x801 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x4BD PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x4ED JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH2 0x38A PUSH2 0x861 JUMP JUMPDEST PUSH2 0x50A PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x53A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x379 SWAP1 PUSH2 0x9EF JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x391 JUMP JUMPDEST PUSH2 0x550 PUSH2 0x72D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x5B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x379 JUMP JUMPDEST PUSH2 0x3C4 DUP2 PUSH2 0x7B1 JUMP JUMPDEST PUSH2 0x5CF PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x668 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x62F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4F52412D3030313A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x379 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x63E DUP4 DUP6 ADD DUP6 PUSH2 0x917 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 ISZERO PUSH2 0x661 JUMPI PUSH1 0x0 PUSH2 0x653 DUP4 PUSH2 0x88B JUMP JUMPDEST SWAP1 POP PUSH2 0x65F DUP7 DUP3 PUSH2 0x478 JUMP JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6C6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6EA SWAP2 SWAP1 PUSH2 0x8C4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x33A6EC8D94D03F2C0A2DA3411552B0777613E4220ABD6CE5679DECB30AF09B23 PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x38A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x379 JUMP JUMPDEST PUSH32 0xDB7E2F5405EA10CAD5583CE31A1BDE125FF32946EDB3CE5972D70EA3F2C214E6 PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x7204A9A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xE409534A SWAP1 PUSH2 0x833 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0xA26 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x84D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x65F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH32 0x1855FCCE92CB172C06FD991F1B19774237130B37CF6806BC01AA4E3A0C359E2D PUSH2 0x71A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x898 PUSH1 0x2 DUP4 PUSH2 0xA81 JUMP JUMPDEST PUSH1 0x1 EQ SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8B2 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x8BD DUP2 PUSH2 0xAB7 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8D5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x8BD DUP2 PUSH2 0xAB7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8F1 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x8BD JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x910 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x929 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x93F JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x95E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x97C JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x98F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x99D JUMPI DUP4 DUP5 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x9AE JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D5 PUSH2 0xAA1 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x9D5 JUMPI PUSH2 0x9D5 PUSH2 0xAA1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP3 MSTORE PUSH1 0x20 PUSH1 0x40 DUP2 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x40 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA59 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x60 ADD MSTORE DUP3 ADD PUSH2 0xA3D JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0xA6A JUMPI DUP4 PUSH1 0x60 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x60 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0xA9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH29 0xDBBD98D4220FCFCF29DE531380C5E9D77BA0BB75AA63D715C0B748D14B NUMBER 0xE9 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"135:1710:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:100:12;2477:14;;;;2394:100;;;;;;:::i;:::-;;;;;;;;2220:83;2286:14;;2220:83;;;2667:25:103;;;2655:2;2640:18;2220:83:12;2622:76:103;2500:136:12;;;:::i;:::-;;;;;;;:::i;3279:78::-;;;:::i;:::-;;2973:120;;;:::i;:::-;;;2494:14:103;;2487:22;2469:41;;2457:2;2442:18;2973:120:12;2424:92:103;889:220:95;;;;;;:::i;:::-;;:::i;3689:77:12:-;;;:::i;3101:86::-;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;;;;-1:-1:-1;;;;;2285:32:103;;;2267:51;;2255:2;2240:18;3101:86:12;2222:102:103;2309:79:12;2373:12;;2309:79;;3195:78;;;:::i;1831:101:41:-;;;:::i;2642:77:12:-;;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;2851:116:12;;;:::i;1265:279:95:-;;;;;;:::i;:::-;;:::i;3363:77:12:-;;;:::i;2131:81::-;;;;;;:::i;:::-;;:::i;2727:118::-;;;:::i;2081:198:41:-;;;;;;:::i;:::-;;:::i;303:578:95:-;;;;;;:::i;:::-;;:::i;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;2667:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;2640:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2578:55;;2500:136;:::o;3279:78::-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;;;;;;;;;3339:15:::1;:13;:15::i;:::-;3279:78::o:0;2973:120::-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;889:220:95:-;1094:13:41;:11;:13::i;:::-;889:220:95;:::o;3689:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3748:15:::1;3279:78:::0;3195;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;1831:101:41:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;2851:116:12:-:0;2900:4;;2915:49;;1265:279:95;1419:29;;;2494:14:103;;2487:22;1419:29:95;;;2469:41:103;1397:19:95;;2442:18:103;1419:29:95;;;;;;;;;;;;1397:51;;1509:27;1518:9;1529:6;1509:8;:27::i;:::-;1265:279;;;:::o;3363:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3422:15:::1;:13;:15::i;2131:81::-:0;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;2727:118::-;2777:4;2810:32;2792:50;;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;3996:2:103;2161:73:41::1;::::0;::::1;3978:21:103::0;4035:2;4015:18;;;4008:30;4074:34;4054:18;;;4047:62;-1:-1:-1;;;4125:18:103;;;4118:36;4171:19;;2161:73:41::1;3968:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;303:578:95:-:0;375:28:17;-1:-1:-1;;;375:19:17;:28::i;:::-;-1:-1:-1;;;;;359:44:17;719:10:59;-1:-1:-1;;;;;359:44:17;;336:122;;;;-1:-1:-1;;;336:122:17;;4764:2:103;336:122:17;;;4746:21:103;4803:2;4783:18;;;4776:30;4842:29;4822:18;;;4815:57;4889:18;;336:122:17;4736:177:103;336:122:17;438:15:95::1;::::0;481:34:::1;::::0;;::::1;492:5:::0;481:34:::1;:::i;:::-;437:78;;;;532:17;528:346;;;770:16;789:27;808:7;789:18;:27::i;:::-;770:46;;831:31;839:9;850:11;831:7;:31::i;:::-;528:346;;469:1:17;;303:578:95::0;;;:::o;4875:145:12:-;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;2667:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;2640:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;4875:145;-1:-1:-1;;4875:145:12:o;810:95:17:-;870:26;888:7;2373:12:12;;2309:79;;888:7:17;870:26;;2667:25:103;;;2655:2;2640:18;870:26:17;;;;;;;810:95::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;4403:2:103;1414:68:41;;;4385:21:103;;;4422:18;;;4415:30;4481:34;4461:18;;;4454:62;4533:18;;1414:68:41;4375:182:103;913:79:17;963:26;981:7;2373:12:12;;2309:79;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;1085:123:17:-;1161:14;;:39;;-1:-1:-1;;;1161:39:17;;-1:-1:-1;;;;;1161:14:17;;;;:22;;:39;;1184:9;;1195:4;;1161:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;998:79;1048:26;1066:7;2373:12:12;;2309:79;;1706:132:95;1769:16;1813:11;1823:1;1813:7;:11;:::i;:::-;1828:1;1813:16;;1706:132;-1:-1:-1;;1706:132:95:o;14:257:103:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:103:o;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:299::-;;684:2;672:9;663:7;659:23;655:32;652:2;;;705:6;697;690:22;652:2;742:9;736:16;781:1;774:5;771:12;761:2;;802:6;794;787:22;846:190;;958:2;946:9;937:7;933:23;929:32;926:2;;;979:6;971;964:22;926:2;-1:-1:-1;1007:23:103;;916:120;-1:-1:-1;916:120:103:o;1041:361::-;;;1167:2;1155:9;1146:7;1142:23;1138:32;1135:2;;;1188:6;1180;1173:22;1135:2;1229:9;1216:23;1206:33;;1289:2;1278:9;1274:18;1261:32;1336:5;1329:13;1322:21;1315:5;1312:32;1302:2;;1363:6;1355;1348:22;1302:2;1391:5;1381:15;;;1125:277;;;;;:::o;1407:709::-;;;;1555:2;1543:9;1534:7;1530:23;1526:32;1523:2;;;1576:6;1568;1561:22;1523:2;1617:9;1604:23;1594:33;;1678:2;1667:9;1663:18;1650:32;1701:18;1742:2;1734:6;1731:14;1728:2;;;1763:6;1755;1748:22;1728:2;1806:6;1795:9;1791:22;1781:32;;1851:7;1844:4;1840:2;1836:13;1832:27;1822:2;;1878:6;1870;1863:22;1822:2;1923;1910:16;1949:2;1941:6;1938:14;1935:2;;;1970:6;1962;1955:22;1935:2;2020:7;2015:2;2006:6;2002:2;1998:15;1994:24;1991:37;1988:2;;;2046:6;2038;2031:22;1988:2;2082;2078;2074:11;2064:21;;2104:6;2094:16;;;;;1513:603;;;;;:::o;2929:250::-;3080:2;3065:18;;3113:1;3102:13;;3092:2;;3119:18;;:::i;:::-;3148:25;;;3047:132;:::o;3184:249::-;3334:2;3319:18;;3367:1;3356:13;;3346:2;;3373:18;;:::i;3438:351::-;3640:2;3622:21;;;3679:2;3659:18;;;3652:30;3718:29;3713:2;3698:18;;3691:57;3780:2;3765:18;;3612:177::o;5100:672::-;;5275:6;5264:9;5257:25;5301:2;5339;5334;5323:9;5319:18;5312:30;5371:6;5365:13;5414:6;5409:2;5398:9;5394:18;5387:34;5439:4;5452:140;5466:6;5463:1;5460:13;5452:140;;;5561:14;;;5557:23;;5551:30;5527:17;;;5546:2;5523:26;5516:66;5481:10;;5452:140;;;5610:6;5607:1;5604:13;5601:2;;;5680:4;5675:2;5666:6;5655:9;5651:22;5647:31;5640:45;5601:2;-1:-1:-1;5756:2:103;5735:15;-1:-1:-1;;5731:29:103;5716:45;;;;5763:2;5712:54;;5247:525;-1:-1:-1;;;;5247:525:103:o;5777:209::-;;5835:1;5825:2;;-1:-1:-1;;;5860:31:103;;5914:4;5911:1;5904:15;5942:4;5867:1;5932:15;5825:2;-1:-1:-1;5971:9:103;;5815:171::o;5991:127::-;6052:10;6047:3;6043:20;6040:1;6033:31;6083:4;6080:1;6073:15;6107:4;6104:1;6097:15;6123:131;-1:-1:-1;;;;;6198:31:103;;6188:42;;6178:2;;6244:1;6241;6234:12"},"methodIdentifiers":{"approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","cancel(uint256)":"40e58ee5","declineCallback()":"bd1fe5d0","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","owner()":"8da5cb5b","pauseCallback()":"d73cd992","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","request(uint256,bytes)":"ffc79065","respond(uint256,bool)":"a9c577c5","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"oracleName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"}],\"name\":\"LogOracleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogOracleProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"name\":\"cancel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"request\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isLossEvent\",\"type\":\"bool\"}],\"name\":\"respond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestOracle.sol\":\"TestOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IOracle.sol\":{\"keccak256\":\"0xaf74fd43bab2fabfef16759398531851e9c41ed0a7dc6ac4487a6cdf43ff0d56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3894bdbb1891143ba07b53c58917edcc94b12fead360ce7b1f2fdfa64936306d\",\"dweb:/ipfs/QmNmDbg8xVK1qPU72XeTogyAkXV3Yrr7SvnctjJYF2SSt5\"]},\"@etherisc/gif-interface/contracts/components/Oracle.sol\":{\"keccak256\":\"0xc0de2df5ab9dbde82f5bba5e0bd311b4b0e708a90a7541c453581cd369795d66\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cbfa0790664076b9a1f2c983a27f60ce5b66d9357df9dd17c29f1909a0cdfef6\",\"dweb:/ipfs/Qmco66eWdxHYNJZbaMC6oi1Pqq3WptZgtDs469kF2RkUXB\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/test/TestOracle.sol\":{\"keccak256\":\"0x38fdfad83ddc712c458da0a002025891bd416abc6ba34bf4f8216039c46ff4d9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://00963a8297b88cbdc8675d9f0319fc7e1cf28e1e96552addd9a3ade8f6e7ce6a\",\"dweb:/ipfs/QmdgvR64xFW28fnbiyQKSazVkQo6ogeM56LvoPqoJhur6J\"]}},\"version\":1}"}},"contracts/test/TestProduct.sol":{"TestProduct":{"abi":[{"inputs":[{"internalType":"bytes32","name":"productName","type":"bytes32"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"address","name":"capitalOwner","type":"address"},{"internalType":"uint256","name":"oracleId","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"address","name":"registryAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"productAddress","type":"address"}],"name":"LogProductCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"componentId","type":"uint256"}],"name":"LogProductProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"requestId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"policyId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"response","type":"bytes"}],"name":"LogTestOracleCallbackReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogTestProductFundingReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"ORACLE_CALLBACK_METHOD_NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POLICY_FLOW","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"expectedPremiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"}],"name":"adjustPremiumSumInsured","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"applications","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"policyHolder","type":"address"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"sumInsured","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"applyForPolicy","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"sumInsured","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"applyForPolicy","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claims","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"close","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"closeClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"netPremium","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"collectPremium","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"netPremium","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"confirmedAmount","type":"uint256"}],"name":"confirmClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"}],"name":"createPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"decline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"}],"name":"declineClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"expire","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getApplicationDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClaimDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"getClaimId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPayoutDataStructure","outputs":[{"internalType":"string","name":"dataStructure","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"}],"name":"getPayoutId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPolicyFlow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRiskpoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"sumInsured","type":"uint256"},{"internalType":"bytes","name":"metaData","type":"bytes"},{"internalType":"bytes","name":"applicationData","type":"bytes"}],"name":"newAppliation","outputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"payoutAmount","type":"uint256"}],"name":"newPayout","outputs":[{"internalType":"uint256","name":"payoutId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"bytes","name":"responseData","type":"bytes"}],"name":"oracleCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"policies","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"payoutId","type":"uint256"}],"name":"processPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"revoke","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"capacity","type":"uint256"}],"name":"riskPoolCapacityCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"submitClaim","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"submitClaimNoOracle","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"policyId","type":"bytes32"},{"internalType":"uint256","name":"claimAmount","type":"uint256"}],"name":"submitClaimWithDeferredResponse","outputs":[{"internalType":"uint256","name":"claimId","type":"uint256"},{"internalType":"uint256","name":"requestId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"underwrite","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2768:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"74:117:103","statements":[{"nodeType":"YulAssignment","src":"84:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"99:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"93:5:103"},"nodeType":"YulFunctionCall","src":"93:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"84:5:103"}]},{"body":{"nodeType":"YulBlock","src":"169:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"178:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"181:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"171:6:103"},"nodeType":"YulFunctionCall","src":"171:12:103"},"nodeType":"YulExpressionStatement","src":"171:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"128:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"139:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"154:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"150:3:103"},"nodeType":"YulFunctionCall","src":"150:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"163:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"135:3:103"},"nodeType":"YulFunctionCall","src":"135:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"125:2:103"},"nodeType":"YulFunctionCall","src":"125:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"118:6:103"},"nodeType":"YulFunctionCall","src":"118:50:103"},"nodeType":"YulIf","src":"115:2:103"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"53:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"64:5:103","type":""}],"src":"14:177:103"},{"body":{"nodeType":"YulBlock","src":"277:137:103","statements":[{"body":{"nodeType":"YulBlock","src":"323:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"332:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"340:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"325:6:103"},"nodeType":"YulFunctionCall","src":"325:22:103"},"nodeType":"YulExpressionStatement","src":"325:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"298:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"307:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"294:3:103"},"nodeType":"YulFunctionCall","src":"294:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"319:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"290:3:103"},"nodeType":"YulFunctionCall","src":"290:32:103"},"nodeType":"YulIf","src":"287:2:103"},{"nodeType":"YulAssignment","src":"358:50:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"398:9:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"368:29:103"},"nodeType":"YulFunctionCall","src":"368:40:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"358:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"243:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"254:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"266:6:103","type":""}],"src":"196:218:103"},{"body":{"nodeType":"YulBlock","src":"585:408:103","statements":[{"body":{"nodeType":"YulBlock","src":"632:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"641:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"649:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"634:6:103"},"nodeType":"YulFunctionCall","src":"634:22:103"},"nodeType":"YulExpressionStatement","src":"634:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"606:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"615:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"602:3:103"},"nodeType":"YulFunctionCall","src":"602:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"627:3:103","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"598:3:103"},"nodeType":"YulFunctionCall","src":"598:33:103"},"nodeType":"YulIf","src":"595:2:103"},{"nodeType":"YulAssignment","src":"667:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"683:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"677:5:103"},"nodeType":"YulFunctionCall","src":"677:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"667:6:103"}]},{"nodeType":"YulAssignment","src":"702:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"757:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"742:3:103"},"nodeType":"YulFunctionCall","src":"742:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"712:29:103"},"nodeType":"YulFunctionCall","src":"712:49:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"702:6:103"}]},{"nodeType":"YulAssignment","src":"770:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"825:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"810:3:103"},"nodeType":"YulFunctionCall","src":"810:18:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"780:29:103"},"nodeType":"YulFunctionCall","src":"780:49:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"770:6:103"}]},{"nodeType":"YulAssignment","src":"838:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"858:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"869:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"854:3:103"},"nodeType":"YulFunctionCall","src":"854:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"848:5:103"},"nodeType":"YulFunctionCall","src":"848:25:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"838:6:103"}]},{"nodeType":"YulAssignment","src":"882:36:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"902:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"913:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"898:3:103"},"nodeType":"YulFunctionCall","src":"898:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"892:5:103"},"nodeType":"YulFunctionCall","src":"892:26:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"882:6:103"}]},{"nodeType":"YulAssignment","src":"927:60:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"971:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"982:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:19:103"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"937:29:103"},"nodeType":"YulFunctionCall","src":"937:50:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"927:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_addresst_addresst_uint256t_uint256t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"511:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"522:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"534:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"542:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"550:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"558:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"566:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"574:6:103","type":""}],"src":"419:574:103"},{"body":{"nodeType":"YulBlock","src":"1099:102:103","statements":[{"nodeType":"YulAssignment","src":"1109:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:103"},"nodeType":"YulFunctionCall","src":"1117:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1166:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1182:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1187:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1178:3:103"},"nodeType":"YulFunctionCall","src":"1178:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1191:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1174:3:103"},"nodeType":"YulFunctionCall","src":"1174:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1162:3:103"},"nodeType":"YulFunctionCall","src":"1162:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:103"},"nodeType":"YulFunctionCall","src":"1144:51:103"},"nodeType":"YulExpressionStatement","src":"1144:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:103","type":""}],"src":"998:203:103"},{"body":{"nodeType":"YulBlock","src":"1307:76:103","statements":[{"nodeType":"YulAssignment","src":"1317:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1329:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1340:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1325:3:103"},"nodeType":"YulFunctionCall","src":"1325:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1317:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1359:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1370:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1352:6:103"},"nodeType":"YulFunctionCall","src":"1352:25:103"},"nodeType":"YulExpressionStatement","src":"1352:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1276:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1287:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1298:4:103","type":""}],"src":"1206:177:103"},{"body":{"nodeType":"YulBlock","src":"1589:415:103","statements":[{"nodeType":"YulAssignment","src":"1599:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1611:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1622:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1607:3:103"},"nodeType":"YulFunctionCall","src":"1607:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1599:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1642:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1653:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1635:6:103"},"nodeType":"YulFunctionCall","src":"1635:25:103"},"nodeType":"YulExpressionStatement","src":"1635:25:103"},{"body":{"nodeType":"YulBlock","src":"1702:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1723:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1730:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1735:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1726:3:103"},"nodeType":"YulFunctionCall","src":"1726:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1716:6:103"},"nodeType":"YulFunctionCall","src":"1716:31:103"},"nodeType":"YulExpressionStatement","src":"1716:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1767:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1770:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1760:6:103"},"nodeType":"YulFunctionCall","src":"1760:15:103"},"nodeType":"YulExpressionStatement","src":"1760:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1795:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1798:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1788:6:103"},"nodeType":"YulFunctionCall","src":"1788:15:103"},"nodeType":"YulExpressionStatement","src":"1788:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1682:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1690:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1679:2:103"},"nodeType":"YulFunctionCall","src":"1679:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1672:6:103"},"nodeType":"YulFunctionCall","src":"1672:21:103"},"nodeType":"YulIf","src":"1669:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1833:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1844:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1829:3:103"},"nodeType":"YulFunctionCall","src":"1829:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1849:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1822:6:103"},"nodeType":"YulFunctionCall","src":"1822:34:103"},"nodeType":"YulExpressionStatement","src":"1822:34:103"},{"nodeType":"YulVariableDeclaration","src":"1865:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1883:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1888:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1879:3:103"},"nodeType":"YulFunctionCall","src":"1879:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1892:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1875:3:103"},"nodeType":"YulFunctionCall","src":"1875:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1869:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1925:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1910:3:103"},"nodeType":"YulFunctionCall","src":"1910:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1934:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1942:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1930:3:103"},"nodeType":"YulFunctionCall","src":"1930:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1903:6:103"},"nodeType":"YulFunctionCall","src":"1903:43:103"},"nodeType":"YulExpressionStatement","src":"1903:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1977:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1962:3:103"},"nodeType":"YulFunctionCall","src":"1962:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1986:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1994:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1982:3:103"},"nodeType":"YulFunctionCall","src":"1982:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1955:6:103"},"nodeType":"YulFunctionCall","src":"1955:43:103"},"nodeType":"YulExpressionStatement","src":"1955:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1534:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1545:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1553:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1561:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1569:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1580:4:103","type":""}],"src":"1388:616:103"},{"body":{"nodeType":"YulBlock","src":"2183:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2200:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2211:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2193:6:103"},"nodeType":"YulFunctionCall","src":"2193:21:103"},"nodeType":"YulExpressionStatement","src":"2193:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2234:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2245:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2230:3:103"},"nodeType":"YulFunctionCall","src":"2230:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2250:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2223:6:103"},"nodeType":"YulFunctionCall","src":"2223:30:103"},"nodeType":"YulExpressionStatement","src":"2223:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2273:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2284:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2269:3:103"},"nodeType":"YulFunctionCall","src":"2269:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2289:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2262:6:103"},"nodeType":"YulFunctionCall","src":"2262:62:103"},"nodeType":"YulExpressionStatement","src":"2262:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:33:103"},"nodeType":"YulExpressionStatement","src":"2333:33:103"},{"nodeType":"YulAssignment","src":"2375:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2387:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2398:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2383:3:103"},"nodeType":"YulFunctionCall","src":"2383:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2375:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2160:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2174:4:103","type":""}],"src":"2009:399:103"},{"body":{"nodeType":"YulBlock","src":"2587:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2604:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2615:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2597:6:103"},"nodeType":"YulFunctionCall","src":"2597:21:103"},"nodeType":"YulExpressionStatement","src":"2597:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2649:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2634:3:103"},"nodeType":"YulFunctionCall","src":"2634:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2654:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2627:6:103"},"nodeType":"YulFunctionCall","src":"2627:30:103"},"nodeType":"YulExpressionStatement","src":"2627:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2677:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2688:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2673:3:103"},"nodeType":"YulFunctionCall","src":"2673:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2693:31:103","type":"","value":"ERROR:TI-2:TOKEN_ADDRESS_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2666:6:103"},"nodeType":"YulFunctionCall","src":"2666:59:103"},"nodeType":"YulExpressionStatement","src":"2666:59:103"},{"nodeType":"YulAssignment","src":"2734:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2757:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2742:3:103"},"nodeType":"YulFunctionCall","src":"2742:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2734:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6003834a90355bc6c34bf2f1e5e7831d67694839f4cff894321a4e1852368d7b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2564:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2578:4:103","type":""}],"src":"2413:353:103"}]},"contents":"{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address_fromMemory(headStart)\n }\n function abi_decode_tuple_t_bytes32t_addresst_addresst_uint256t_uint256t_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n value2 := abi_decode_address_fromMemory(add(headStart, 64))\n value3 := mload(add(headStart, 96))\n value4 := mload(add(headStart, 128))\n value5 := abi_decode_address_fromMemory(add(headStart, 160))\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_6003834a90355bc6c34bf2f1e5e7831d67694839f4cff894321a4e1852368d7b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:TI-2:TOKEN_ADDRESS_ZERO\")\n tail := add(headStart, 96)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162002eff38038062002eff8339810160408190526200003491620004f5565b858570506f6c69637944656661756c74466c6f7760781b8484846001826200005c3362000379565b6001600160a01b038116620000c45760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000ee620003c9565b600480546001600160a01b0319166001600160a01b039290921691909117905562000118620003e4565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014262000411565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019557634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001e992909160ff82169130916101009091046001600160a01b0316906200055a565b60405180910390a15050600880546001600160a01b0319166001600160a01b0387161790555060098290556200021f836200042b565b600780546001600160a01b0319166001600160a01b03929092169190911790556200025b6d50726f647563745365727669636560901b6200042b565b600a80546001600160a01b0319166001600160a01b0392909216919091179055620002986e496e7374616e63655365727669636560881b6200042b565b600b80546001600160a01b0319166001600160a01b03929092169190911790556040513081527fced180b842b890d77dab95dcbf4654065589a164226ef9faa91a7601fb67c4679060200160405180910390a150505050506001600160a01b038516620003485760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a54492d323a544f4b454e5f414444524553535f5a45524f0000006044820152606401620000bb565b50600c80546001600160a01b0319166001600160a01b039490941693909317909255600d55600e5550620005a59050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620003df6541636365737360d01b6200042b565b905090565b6000620003df7f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200042b565b6000620003df6e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200047657600080fd5b505afa1580156200048b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b19190620004d1565b90505b919050565b80516001600160a01b0381168114620004b457600080fd5b600060208284031215620004e3578081fd5b620004ee82620004b9565b9392505050565b60008060008060008060c087890312156200050e578182fd5b865195506200052060208801620004b9565b94506200053060408801620004b9565b935060608701519250608087015191506200054e60a08801620004b9565b90509295509295509295565b84815260808101600385106200058057634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b61294a80620005b56000396000f3fe60806040526004361061036b5760003560e01c806370d2fe53116101c6578063b9ea8d66116100f7578063e0815f0d11610095578063ec8b4a9a1161006f578063ec8b4a9a146108f7578063f2fde38b1461092c578063f4fdc1fa1461094c578063fe64372b1461096a5761036b565b8063e0815f0d146108af578063e3ebdea5146108c4578063e6f95edd146108e45761036b565b8063c6441798116100d1578063c64417981461085a578063d0e0ba951461087a578063d73cd9921461061e578063dcc59b6f1461089a5761036b565b8063b9ea8d6614610808578063bd1fe5d014610845578063be169e7e1461061e5761036b565b80638da5cb5b11610164578063a18f5ae21161013e578063a18f5ae21461061e578063ab72c4e1146107bb578063b3fca9bd1461061e578063b75c7dc6146107e85761036b565b80638da5cb5b1461078857806394f64ff41461058a5780639a82f890146107a65761036b565b80637ce5e82f116101a05780637ce5e82f1461071e5780637f29dba214610733578063893d20e8146107535780638cc7d3d1146107685761036b565b806370d2fe53146106d4578063715018a6146106e957806379ed5209146106fe5761036b565b806339c79e0c116102a057806359dacc6a1161023e5780635e61aa63116102185780635e61aa631461066c578063637d08f41461068c578063638ce0ba146106aa578063702e7e1f146106bf5761036b565b806359dacc6a1461061e5780635ab1bd53146106335780635d1ca631146106575761036b565b80633ec92bda1161027a5780633ec92bda1461058a5780634703dc8d146105be5780634cda0de9146105de5780634e02c63f146105fe5761036b565b806339c79e0c1461056a57806339cf5e161461058a5780633dcabeab146105ab5761036b565b806321df0da71161030d57806329abdbd7116102e757806329abdbd7146104ea5780632b1994ba1461050a5780632b6778411461052a57806330a73da51461054a5761036b565b806321df0da71461044c578063232d346a1461047e578063258d560c146104c55761036b565b806317d7de7c1161034957806317d7de7c146103de5780631865c57d146103f35780631b07b17f146104155780631b867c63146104375761036b565b806303f0ac1a1461037057806309128d831461039657806315dae03e146103be575b600080fd5b61038361037e366004612594565b61098a565b6040519081526020015b60405180910390f35b3480156103a257600080fd5b5061038370506f6c69637944656661756c74466c6f7760781b81565b3480156103ca57600080fd5b5060035460ff1660405161038d9190612732565b3480156103ea57600080fd5b50600154610383565b3480156103ff57600080fd5b50610408610a47565b60405161038d9190612718565b34801561042157600080fd5b506104356104303660046122d7565b610acd565b005b34801561044357600080fd5b50610435610b22565b34801561045857600080fd5b506008546001600160a01b03165b6040516001600160a01b03909116815260200161038d565b34801561048a57600080fd5b506104b86040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b81525081565b60405161038d9190612746565b3480156104d157600080fd5b506104da610b7a565b604051901515815260200161038d565b3480156104f657600080fd5b506103836105053660046122d7565b610baa565b34801561051657600080fd5b50610383610525366004612328565b610bbf565b34801561053657600080fd5b50610383610545366004612307565b610bfc565b34801561055657600080fd5b50610435610565366004612328565b610d56565b34801561057657600080fd5b506104356105853660046122d7565b610d66565b34801561059657600080fd5b506040805160208101909152600081526104b8565b6103836105b93660046121d6565b610d77565b3480156105ca57600080fd5b506103836105d9366004612328565b610e79565b3480156105ea57600080fd5b506104356105f9366004612307565b610eb3565b34801561060a57600080fd5b50610435610619366004612328565b610ec5565b34801561062a57600080fd5b50610435610ed8565b34801561063f57600080fd5b5061046660035461010090046001600160a01b031690565b34801561066357600080fd5b50600254610383565b34801561067857600080fd5b50610435610687366004612520565b610f22565b34801561069857600080fd5b506007546001600160a01b0316610466565b3480156106b657600080fd5b50610435611086565b3480156106cb57600080fd5b50601054610383565b3480156106e057600080fd5b50600954610383565b3480156106f557600080fd5b506104356110d3565b34801561070a57600080fd5b50610383610719366004612307565b6110e5565b34801561072a57600080fd5b50600f54610383565b34801561073f57600080fd5b5061043561074e366004612307565b6111df565b34801561075f57600080fd5b506104666111f1565b34801561077457600080fd5b506104356107833660046122d7565b611203565b34801561079457600080fd5b506000546001600160a01b0316610466565b3480156107b257600080fd5b506104da611214565b3480156107c757600080fd5b506103836107d63660046122d7565b60009081526012602052604090205490565b3480156107f457600080fd5b506104356108033660046122d7565b61121c565b34801561081457600080fd5b506108286108233660046122d7565b6112d5565b60408051931515845260208401929092529082015260600161038d565b34801561085157600080fd5b506104356112f8565b34801561086657600080fd5b506104356108753660046122d7565b611345565b34801561088657600080fd5b506104356108953660046122d7565b611356565b3480156108a657600080fd5b50601154610383565b3480156108bb57600080fd5b506104da6113a0565b3480156108d057600080fd5b506108286108df366004612307565b6113a9565b6103836108f2366004612594565b6113ce565b34801561090357600080fd5b50610917610912366004612307565b6114d4565b6040805192835260208301919091520161038d565b34801561093857600080fd5b5061043561094736600461219e565b611634565b34801561095857600080fd5b506104356109673660046122d7565b50565b34801561097657600080fd5b50610435610985366004612307565b6116aa565b600080339050610a0681898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f80546001810182556000919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020181905598975050505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190612353565b905090565b610ad5611757565b6000610ae0826117b1565b90508015610b1e57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b5050565b610b376810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610b705760405162461bcd60e51b8152600401610b6790612759565b60405180910390fd5b610b786118b8565b565b600060025b60035460ff166002811115610ba457634e487b7160e01b600052602160045260246000fd5b14905090565b6000818152601360205260409020545b919050565b6000610bc9611757565b6040805160006020820152610bf491869186918691015b6040516020818303038152906040526118f5565b949350505050565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c81919081019061241d565b519050336001600160a01b03821614610cac5760405162461bcd60e51b8152600401610b6790612790565b60118054906000610cbc83612887565b9190505550610cdb858560405180602001604052806000815250611987565b600086815260126020908152604080832084905560115481519283015260019082018190529295506060016040516020818303038152906040529050610d4b87826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b505050505092915050565b610d61838383611a47565b505050565b610d6e611757565b61096781611ab9565b6000610def88888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a91508990819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80201829055909150610e2f826117b1565b90508015610e6d57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b50979650505050505050565b6000610e83611757565b6040805160006020820152610e9e9186918691869101610be0565b9050610eaa8482611b1b565b50509392505050565b610ebb611757565b610b1e8282611baf565b610ecd611757565b610d61838383611c11565b610eed6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610f1d5760405162461bcd60e51b8152600401610b6790612759565b610b78565b610f3364517565727960d81b611836565b6001600160a01b0316336001600160a01b031614610f935760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610b67565b7f76f1662da8419575225dd3addaf14184129f5230097a533de445a2d5688a399e84848484604051610fc894939291906127d6565b60405180910390a16000610fde82840184612269565b600085815260126020526040902054909150811561107457610fff85611c50565b50600061100c8683611d0a565b602081015190915061101f878483611c11565b604080516000602080830182905283518084039091018152918301909252829161104b8a8785856118f5565b60008b815260136020526040902081905590506110688a82611b1b565b5050505050505061107e565b61107e8582611baf565b505050505050565b61109b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b0316146110cb5760405162461bcd60e51b8152600401610b6790612759565b610b78611dd2565b6110db611757565b610b786000611dfc565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116a919081019061241d565b519050336001600160a01b038216146111955760405162461bcd60e51b8152600401610b6790612790565b601180549060006111a583612887565b91905055506111c4858560405180602001604052806000815250611987565b60009586526012602052604090952085905550929392505050565b6111e7611757565b610b1e8282611e4c565b600080546001600160a01b0316610ac8565b61120b611757565b61096781611e84565b600080610b7f565b600b5460405163296586d360e21b81526004810183905282916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561126557600080fd5b505afa158015611279573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112a1919081019061241d565b519050336001600160a01b038216146112cc5760405162461bcd60e51b8152600401610b6790612790565b610d6183611eb5565b60008060006112e2611757565b6112eb84611ee6565b9196909550909350915050565b61130d6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461133d5760405162461bcd60e51b8152600401610b6790612759565b610b78611f34565b61134d611757565b61096781611f5e565b61136b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461139b5760405162461bcd60e51b8152600401610b6790612759565b600255565b60006001610b7f565b60008060006113b6611757565b6113c08585611f8f565b919790965090945092505050565b60008033905061144a81898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020182905590925061148a836117b1565b905080156114c857601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018390555b50509695505050505050565b600b5460405163296586d360e21b8152600481018490526000918291859183916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561152157600080fd5b505afa158015611535573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261155d919081019061241d565b519050336001600160a01b038216146115885760405162461bcd60e51b8152600401610b6790612790565b6011805490600061159883612887565b91905055506115b7868660405180602001604052806000815250611987565b60008781526012602090815260408083208490556011548151928301528101829052919550908190606001604051602081830303815290604052905061162788826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b9450505050509250929050565b61163c611757565b6001600160a01b0381166116a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b67565b61096781611dfc565b6116b2611757565b6116bc8282611b1b565b50505050565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a906116fb9089908990899089908990600401612640565b602060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d91906122ef565b9695505050505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b67565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156117f857600080fd5b505af115801561180c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118309190612285565b92915050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561188057600080fd5b505afa158015611894573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183091906121ba565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616118e260025490565b60405190815260200160405180910390a1565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d78469061192c9088908890889088906004016126f3565b602060405180830381600087803b15801561194657600080fd5b505af115801561195a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197e91906122ef565b95945050505050565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d15906119bc908790879087906004016126d4565b602060405180830381600087803b1580156119d657600080fd5b505af11580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf491906122ef565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f229061192c908890889088903090899060040161268b565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064015b600060405180830381600087803b158015611a9c57600080fd5b505af1158015611ab0573d6000803e3d6000fd5b50505050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c906024015b600060405180830381600087803b158015611b0057600080fd5b505af1158015611b14573d6000803e3d6000fd5b5050505050565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b158015611b6c57600080fd5b505af1158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190612571565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b158015611bfd57600080fd5b505af115801561107e573d6000803e3d6000fd5b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f90606401611a82565b611c8a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118309190810190612372565b611d446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051637f22c2d960e01b815260048101859052602481018490526001600160a01b0390911690637f22c2d99060440160006040518083038186803b158015611d8f57600080fd5b505afa158015611da3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dcb9190810190612372565b9392505050565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96118e260025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba290604401611be3565b600a54604051638cc7d3d160e01b8152600481018390526001600160a01b0390911690638cc7d3d190602401611ae6565b600a54604051635bae3ee360e11b8152600481018390526001600160a01b039091169063b75c7dc690602401611ae6565b600080600080611ef585612019565b9050806020015181604001511015611f2c57611f248582604001518360200151611f1f9190612844565b611f8f565b919550935091505b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556118e260025490565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c644179890602401611ae6565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b158015611fe157600080fd5b505af1158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c091906122a1565b612069604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b1580156120ae57600080fd5b505afa1580156120c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611830919061249b565b60008083601f8401126120f7578182fd5b50813567ffffffffffffffff81111561210e578182fd5b60208301915083602082850101111561212657600080fd5b9250929050565b600082601f83011261213d578081fd5b815167ffffffffffffffff811115612157576121576128ce565b61216a601f8201601f1916602001612813565b81815284602083860101111561217e578283fd5b610bf482602083016020870161285b565b805160038110610bba57600080fd5b6000602082840312156121af578081fd5b8135611dcb816128e4565b6000602082840312156121cb578081fd5b8151611dcb816128e4565b600080600080600080600060a0888a0312156121f0578283fd5b87356121fb816128e4565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612225578485fd5b6122318b838c016120e6565b909650945060808a0135915080821115612249578384fd5b506122568a828b016120e6565b989b979a50959850939692959293505050565b60006020828403121561227a578081fd5b8135611dcb816128f9565b600060208284031215612296578081fd5b8151611dcb816128f9565b6000806000606084860312156122b5578081fd5b83516122c0816128f9565b602085015160409095015190969495509392505050565b6000602082840312156122e8578081fd5b5035919050565b600060208284031215612300578081fd5b5051919050565b60008060408385031215612319578182fd5b50508035926020909101359150565b60008060006060848603121561233c578081fd5b505081359360208301359350604090920135919050565b600060208284031215612364578081fd5b815160078110611dcb578182fd5b600060208284031215612383578081fd5b815167ffffffffffffffff8082111561239a578283fd5b9083019060c082860312156123ad578283fd5b6123b760c0612813565b82516123c281612907565b8082525060208301516020820152604083015160408201526060830151828111156123eb578485fd5b6123f78782860161212d565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561242e578081fd5b815167ffffffffffffffff80821115612445578283fd5b9083019060c08286031215612458578283fd5b61246260c0612813565b825161246d816128e4565b8152602083810151908201526124856040840161218f565b60408201526060830151828111156123eb578485fd5b60006101208083850312156124ae578182fd5b6124b781612813565b90506124c28361218f565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215612535578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612559578283fd5b612565878288016120e6565b95989497509550505050565b60008060408385031215612583578182fd5b505080516020909101519092909150565b600080600080600080608087890312156125ac578384fd5b8635955060208701359450604087013567ffffffffffffffff808211156125d1578586fd5b6125dd8a838b016120e6565b909650945060608901359150808211156125f5578384fd5b5061260289828a016120e6565b979a9699509497509295939492505050565b6000815180845261262c81602086016020860161285b565b601f01601f19169290920160200192915050565b600060018060a01b038716825285602083015284604083015260a0606083015261266d60a0830185612614565b828103608084015261267f8185612614565b98975050505050505050565b600086825260a060208301526126a460a0830187612614565b82810360408401526126b68187612614565b6001600160a01b039590951660608401525050608001529392505050565b60008482528360208301526060604083015261197e6060830184612614565b60008582528460208301528360408301526080606083015261174d6080830184612614565b602081016007831061272c5761272c6128b8565b91905290565b602081016003831061272c5761272c6128b8565b600060208252611dcb6020830184612614565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60208082526026908201527f4552524f523a5052442d3030313a504f4c4943595f4f525f484f4c4445525f4960408201526513959053125160d21b606082015260800190565b60008582528460208301526060604083015282606083015282846080840137818301608090810191909152601f909201601f191601019392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561283c5761283c6128ce565b604052919050565b600082821015612856576128566128a2565b500390565b60005b8381101561287657818101518382015260200161285e565b838111156116bc5750506000910152565b600060001982141561289b5761289b6128a2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096757600080fd5b801515811461096757600080fd5b6004811061096757600080fdfea2646970667358221220c8724aa3eebe95b1d2b318ce70a883306561edfcdce90d9ce1e8ee50df556e2864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x2EFF CODESIZE SUB DUP1 PUSH3 0x2EFF DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x4F5 JUMP JUMPDEST DUP6 DUP6 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP5 DUP5 DUP5 PUSH1 0x1 DUP3 PUSH3 0x5C CALLER PUSH3 0x379 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xC4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xEE PUSH3 0x3C9 JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x118 PUSH3 0x3E4 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x142 PUSH3 0x411 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x195 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1E9 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x55A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE POP PUSH1 0x9 DUP3 SWAP1 SSTORE PUSH3 0x21F DUP4 PUSH3 0x42B JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x25B PUSH14 0x50726F6475637453657276696365 PUSH1 0x90 SHL PUSH3 0x42B JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x298 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL PUSH3 0x42B JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x40 MLOAD ADDRESS DUP2 MSTORE PUSH32 0xCED180B842B890D77DAB95DCBF4654065589A164226EF9FAA91A7601FB67C467 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH3 0x348 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A54492D323A544F4B454E5F414444524553535F5A45524F000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xBB JUMP JUMPDEST POP PUSH1 0xC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR SWAP1 SWAP3 SSTORE PUSH1 0xD SSTORE PUSH1 0xE SSTORE POP PUSH3 0x5A5 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3DF PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x42B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3DF PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x42B JUMP JUMPDEST PUSH1 0x0 PUSH3 0x3DF PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x476 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x48B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x4B1 SWAP2 SWAP1 PUSH3 0x4D1 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x4E3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH3 0x4EE DUP3 PUSH3 0x4B9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH3 0x50E JUMPI DUP2 DUP3 REVERT JUMPDEST DUP7 MLOAD SWAP6 POP PUSH3 0x520 PUSH1 0x20 DUP9 ADD PUSH3 0x4B9 JUMP JUMPDEST SWAP5 POP PUSH3 0x530 PUSH1 0x40 DUP9 ADD PUSH3 0x4B9 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD MLOAD SWAP3 POP PUSH1 0x80 DUP8 ADD MLOAD SWAP2 POP PUSH3 0x54E PUSH1 0xA0 DUP9 ADD PUSH3 0x4B9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x580 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x294A DUP1 PUSH3 0x5B5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70D2FE53 GT PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xEC8B4A9A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xEC8B4A9A EQ PUSH2 0x8F7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x92C JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x94C JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x96A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x8AF JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x8C4 JUMPI DUP1 PUSH4 0xE6F95EDD EQ PUSH2 0x8E4 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xC6441798 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xC6441798 EQ PUSH2 0x85A JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x87A JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x89A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x808 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x845 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x61E JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x164 JUMPI DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xAB72C4E1 EQ PUSH2 0x7BB JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xB75C7DC6 EQ PUSH2 0x7E8 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x788 JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x7A6 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x7CE5E82F GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x7CE5E82F EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0x8CC7D3D1 EQ PUSH2 0x768 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x6D4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x6E9 JUMPI DUP1 PUSH4 0x79ED5209 EQ PUSH2 0x6FE JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x39C79E0C GT PUSH2 0x2A0 JUMPI DUP1 PUSH4 0x59DACC6A GT PUSH2 0x23E JUMPI DUP1 PUSH4 0x5E61AA63 GT PUSH2 0x218 JUMPI DUP1 PUSH4 0x5E61AA63 EQ PUSH2 0x66C JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x68C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x6AA JUMPI DUP1 PUSH4 0x702E7E1F EQ PUSH2 0x6BF JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x657 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x3EC92BDA GT PUSH2 0x27A JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x4703DC8D EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x5FE JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x39C79E0C EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x3DCABEAB EQ PUSH2 0x5AB JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x21DF0DA7 GT PUSH2 0x30D JUMPI DUP1 PUSH4 0x29ABDBD7 GT PUSH2 0x2E7 JUMPI DUP1 PUSH4 0x29ABDBD7 EQ PUSH2 0x4EA JUMPI DUP1 PUSH4 0x2B1994BA EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0x2B677841 EQ PUSH2 0x52A JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x54A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x232D346A EQ PUSH2 0x47E JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x4C5 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x17D7DE7C GT PUSH2 0x349 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x437 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x3F0AC1A EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0x9128D83 EQ PUSH2 0x396 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x3BE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x383 PUSH2 0x37E CALLDATASIZE PUSH1 0x4 PUSH2 0x2594 JUMP JUMPDEST PUSH2 0x98A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2732 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2718 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x430 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xACD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0xB22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2746 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x505 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x516 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x525 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xBBF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x536 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x545 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0xBFC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x565 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xD56 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x585 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xD66 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH2 0x4B8 JUMP JUMPDEST PUSH2 0x383 PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x21D6 JUMP JUMPDEST PUSH2 0xD77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xE79 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x5F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0xEB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x619 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xEC5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0xED8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x678 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x687 CALLDATASIZE PUSH1 0x4 PUSH2 0x2520 JUMP JUMPDEST PUSH2 0xF22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x698 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x466 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x1086 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x10 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x10D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x719 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x10E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xF SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x74E CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x11DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH2 0x11F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x774 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x783 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1203 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x794 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x466 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0x1214 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x7D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x803 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x121C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x828 PUSH2 0x823 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x12F8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x875 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1345 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x895 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1356 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0x13A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x828 PUSH2 0x8DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x383 PUSH2 0x8F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2594 JUMP JUMPDEST PUSH2 0x13CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x917 PUSH2 0x912 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x14D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x947 CALLDATASIZE PUSH1 0x4 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x1634 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x958 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x967 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x985 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x16AA JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xA06 DUP2 DUP10 DUP10 DUP10 DUP10 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE SWAP3 POP DUP12 SWAP2 POP DUP11 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP2 SWAP1 SSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC8 SWAP2 SWAP1 PUSH2 0x2353 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAD5 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE0 DUP3 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xB1E JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP3 SWAP1 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xB37 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB78 PUSH2 0x18B8 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBA4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC9 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xBF4 SWAP2 DUP7 SWAP2 DUP7 SWAP2 DUP7 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x18F5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC81 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xCAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xCBC DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0xCDB DUP6 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x11 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD MSTORE PUSH1 0x1 SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE SWAP3 SWAP6 POP PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xD4B DUP8 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xD SLOAD PUSH2 0x1A0E JUMP JUMPDEST POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD61 DUP4 DUP4 DUP4 PUSH2 0x1A47 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xD6E PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1AB9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDEF DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP13 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP11 DUP2 MSTORE SWAP3 POP DUP11 SWAP2 POP DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP3 SWAP1 SSTORE SWAP1 SWAP2 POP PUSH2 0xE2F DUP3 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xE6D JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP3 SWAP1 SSTORE JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE83 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xE9E SWAP2 DUP7 SWAP2 DUP7 SWAP2 DUP7 SWAP2 ADD PUSH2 0xBE0 JUMP JUMPDEST SWAP1 POP PUSH2 0xEAA DUP5 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEBB PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB1E DUP3 DUP3 PUSH2 0x1BAF JUMP JUMPDEST PUSH2 0xECD PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xD61 DUP4 DUP4 DUP4 PUSH2 0x1C11 JUMP JUMPDEST PUSH2 0xEED PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 JUMP JUMPDEST PUSH2 0xF33 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030333A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH32 0x76F1662DA8419575225DD3ADDAF14184129F5230097A533DE445A2D5688A399E DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xFC8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xFDE DUP3 DUP5 ADD DUP5 PUSH2 0x2269 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP2 ISZERO PUSH2 0x1074 JUMPI PUSH2 0xFFF DUP6 PUSH2 0x1C50 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x100C DUP7 DUP4 PUSH2 0x1D0A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH2 0x101F DUP8 DUP5 DUP4 PUSH2 0x1C11 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE SWAP2 DUP4 ADD SWAP1 SWAP3 MSTORE DUP3 SWAP2 PUSH2 0x104B DUP11 DUP8 DUP6 DUP6 PUSH2 0x18F5 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP1 POP PUSH2 0x1068 DUP11 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP POP POP POP POP POP PUSH2 0x107E JUMP JUMPDEST PUSH2 0x107E DUP6 DUP3 PUSH2 0x1BAF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x109B PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 PUSH2 0x1DD2 JUMP JUMPDEST PUSH2 0x10DB PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB78 PUSH1 0x0 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x112E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x116A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1195 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x11A5 DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x11C4 DUP6 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 SWAP6 DUP7 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 DUP6 SWAP1 SSTORE POP SWAP3 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x11E7 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB1E DUP3 DUP3 PUSH2 0x1E4C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xAC8 JUMP JUMPDEST PUSH2 0x120B PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB7F JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1279 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12A1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x12CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH2 0xD61 DUP4 PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x12E2 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x12EB DUP5 PUSH2 0x1EE6 JUMP JUMPDEST SWAP2 SWAP7 SWAP1 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH2 0x130D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x133D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x134D PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x136B PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x139B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x13B6 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x13C0 DUP6 DUP6 PUSH2 0x1F8F JUMP JUMPDEST SWAP2 SWAP8 SWAP1 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0x144A DUP2 DUP10 DUP10 DUP10 DUP10 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE SWAP3 POP DUP12 SWAP2 POP DUP11 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH2 0x148A DUP4 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP4 SWAP1 SSTORE JUMPDEST POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP6 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1521 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1535 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x155D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x1598 DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x15B7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x11 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD MSTORE DUP2 ADD DUP3 SWAP1 MSTORE SWAP2 SWAP6 POP SWAP1 DUP2 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1627 DUP9 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xD SLOAD PUSH2 0x1A0E JUMP JUMPDEST SWAP5 POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x163C PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x16A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1DFC JUMP JUMPDEST PUSH2 0x16B2 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x16BC DUP3 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x16FB SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2640 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1729 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x174D SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x180C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x2285 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1894 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x21BA JUMP JUMPDEST PUSH32 0xB79D34516B55D664B61192AA41FBC0625B132FB7129BD3B3A31F46D1BEFA7061 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x781D7846 SWAP1 PUSH2 0x192C SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26F3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1946 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x195A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x197E SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFAE43D15 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFAE43D15 SWAP1 PUSH2 0x19BC SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26D4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBF4 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x16499F91 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2C933F22 SWAP1 PUSH2 0x192C SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x268B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE71E783 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x39C79E0C SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BA4 SWAP2 SWAP1 PUSH2 0x2571 JUMP JUMPDEST SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x107E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD PUSH2 0x1A82 JUMP JUMPDEST PUSH2 0x1C8A PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CE2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1830 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2372 JUMP JUMPDEST PUSH2 0x1D44 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1DCB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2372 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xCFF3B7B8B07D4D8F74BF41F05737717140D5916781B9DFF86EA0B996F2FDB9F9 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0x1BE3 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x8CC7D3D1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8CC7D3D1 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x5BAE3EE3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB75C7DC6 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1EF5 DUP6 PUSH2 0x2019 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x1F2C JUMPI PUSH2 0x1F24 DUP6 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x1F1F SWAP2 SWAP1 PUSH2 0x2844 JUMP JUMPDEST PUSH2 0x1F8F JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP JUMPDEST POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH32 0x38954B1D025D5A8FFCF9B42D431BE2745CDCD05D32B0E5AD33EE2DB025EF5B55 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C882F3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC6441798 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13C0 SWAP2 SWAP1 PUSH2 0x22A1 JUMP JUMPDEST PUSH2 0x2069 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x249B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x20F7 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x210E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x213D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2157 JUMPI PUSH2 0x2157 PUSH2 0x28CE JUMP JUMPDEST PUSH2 0x216A PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2813 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x217E JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xBF4 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x285B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xBBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21AF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1DCB DUP2 PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21CB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1DCB DUP2 PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x21F0 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH2 0x21FB DUP2 PUSH2 0x28E4 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2225 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2231 DUP12 DUP4 DUP13 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2249 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2256 DUP11 DUP3 DUP12 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x227A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1DCB DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2296 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1DCB DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x22B5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x22C0 DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x40 SWAP1 SWAP6 ADD MLOAD SWAP1 SWAP7 SWAP5 SWAP6 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22E8 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2300 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2319 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x233C JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2364 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1DCB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2383 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x239A JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x23AD JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x23B7 PUSH1 0xC0 PUSH2 0x2813 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x23C2 DUP2 PUSH2 0x2907 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x23EB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x23F7 DUP8 DUP3 DUP7 ADD PUSH2 0x212D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x242E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2445 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2458 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2462 PUSH1 0xC0 PUSH2 0x2813 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x246D DUP2 PUSH2 0x28E4 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2485 PUSH1 0x40 DUP5 ADD PUSH2 0x218F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x23EB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24AE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x24B7 DUP2 PUSH2 0x2813 JUMP JUMPDEST SWAP1 POP PUSH2 0x24C2 DUP4 PUSH2 0x218F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2535 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2559 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2565 DUP8 DUP3 DUP9 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2583 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x25AC JUMPI DUP4 DUP5 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25D1 JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x25DD DUP11 DUP4 DUP12 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x25F5 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2602 DUP10 DUP3 DUP11 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x262C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x285B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x266D PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x2614 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x267F DUP2 DUP6 PUSH2 0x2614 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x26A4 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2614 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x26B6 DUP2 DUP8 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x197E PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x174D PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x272C JUMPI PUSH2 0x272C PUSH2 0x28B8 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x272C JUMPI PUSH2 0x272C PUSH2 0x28B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1DCB PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x26 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030313A504F4C4943595F4F525F484F4C4445525F49 PUSH1 0x40 DUP3 ADD MSTORE PUSH6 0x139590531251 PUSH1 0xD2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 PUSH1 0x60 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x283C JUMPI PUSH2 0x283C PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2856 JUMPI PUSH2 0x2856 PUSH2 0x28A2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2876 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x285E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x16BC JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x289B JUMPI PUSH2 0x289B PUSH2 0x28A2 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 PUSH19 0x4AA3EEBE95B1D2B318CE70A883306561EDFCDC 0xE9 0xD SWAP13 0xE1 0xE8 0xEE POP 0xDF SSTORE PUSH15 0x2864736F6C63430008020033000000 ","sourceMap":"409:10172:96:-:0;;;1112:492;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1330:11;1343:12;-1:-1:-1;;;1370:10:96;1382:15;1330:11;1412:21:18;1382:15:96;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;2211:2:103;1619:70:12::1;::::0;::::1;2193:21:103::0;2250:2;2230:18;;;2223:30;2289:34;2269:18;;;2262:62;-1:-1:-1;;;2340:18:103;;;2333:33;2383:19;;1619:70:12::1;;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;;1459:6:18::1;:14:::0;;-1:-1:-1;;;;;;1459:14:18::1;-1:-1:-1::0;;;;;1459:14:18;::::1;;::::0;;-1:-1:-1;1483:11:18::1;:24:::0;;;1579:31:::1;1599:10:::0;1579:19:::1;:31::i;:::-;1565:11;:45:::0;;-1:-1:-1;;;;;;1565:45:18::1;-1:-1:-1::0;;;;;1565:45:18;;;::::1;::::0;;;::::1;::::0;;1654:37:::1;-1:-1:-1::0;;;1654:19:18::1;:37::i;:::-;1620:15;:72:::0;;-1:-1:-1;;;;;;1620:72:18::1;-1:-1:-1::0;;;;;1620:72:18;;;::::1;::::0;;;::::1;::::0;;1738:38:::1;-1:-1:-1::0;;;1738:19:18::1;:38::i;:::-;1702:16;:75:::0;;-1:-1:-1;;;;;;1702:75:18::1;-1:-1:-1::0;;;;;1702:75:18;;;::::1;::::0;;;::::1;::::0;;1793:32:::1;::::0;1819:4:::1;1144:51:103::0;;1793:32:18::1;::::0;1132:2:103;1117:18;1793:32:18::1;;;;;;;-1:-1:-1::0;;;;;;;;;;1423:26:96;::::1;1415:68;;;::::0;-1:-1:-1;;;1415:68:96;;2615:2:103;1415:68:96::1;::::0;::::1;2597:21:103::0;2654:2;2634:18;;;2627:30;2693:31;2673:18;;;2666:59;2742:18;;1415:68:96::1;2587:179:103::0;1415:68:96::1;-1:-1:-1::0;1494:13:96::1;:28:::0;;-1:-1:-1;;;;;;1494:28:96::1;-1:-1:-1::0;;;;;1494:28:96;;;::::1;::::0;;;::::1;::::0;;;1533:13:::1;:24:::0;1568:15:::1;:28:::0;-1:-1:-1;409:10172:96;;-1:-1:-1;409:10172:96;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1352:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1325:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;;4875:145;;;;:::o;14:177:103:-;93:13;;-1:-1:-1;;;;;135:31:103;;125:42;;115:2;;181:1;178;171:12;196:218;;319:2;307:9;298:7;294:23;290:32;287:2;;;340:6;332;325:22;287:2;368:40;398:9;368:40;:::i;:::-;358:50;277:137;-1:-1:-1;;;277:137:103:o;419:574::-;;;;;;;627:3;615:9;606:7;602:23;598:33;595:2;;;649:6;641;634:22;595:2;683:9;677:16;667:26;;712:49;757:2;746:9;742:18;712:49;:::i;:::-;702:59;;780:49;825:2;814:9;810:18;780:49;:::i;:::-;770:59;;869:2;858:9;854:18;848:25;838:35;;913:3;902:9;898:19;892:26;882:36;;937:50;982:3;971:9;967:19;937:50;:::i;:::-;927:60;;585:408;;;;;;;;:::o;1388:616::-;1635:25;;;1622:3;1607:19;;1690:1;1679:13;;1669:2;;1735:10;1730:3;1726:20;1723:1;1716:31;1770:4;1767:1;1760:15;1798:4;1795:1;1788:15;1669:2;1844;1829:18;;1822:34;;;;-1:-1:-1;;;;;1930:15:103;;;1925:2;1910:18;;1903:43;1982:15;;1977:2;1962:18;;;1955:43;1589:415;;-1:-1:-1;1589:415:103:o;2587:179::-;409:10172:96;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:20505:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"86:303:103","statements":[{"body":{"nodeType":"YulBlock","src":"135:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"144:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"154:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"137:6:103"},"nodeType":"YulFunctionCall","src":"137:26:103"},"nodeType":"YulExpressionStatement","src":"137:26:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"114:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"122:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"110:3:103"},"nodeType":"YulFunctionCall","src":"110:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"129:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"106:3:103"},"nodeType":"YulFunctionCall","src":"106:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"99:6:103"},"nodeType":"YulFunctionCall","src":"99:35:103"},"nodeType":"YulIf","src":"96:2:103"},{"nodeType":"YulAssignment","src":"174:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"197:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"184:12:103"},"nodeType":"YulFunctionCall","src":"184:20:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"174:6:103"}]},{"body":{"nodeType":"YulBlock","src":"247:30:103","statements":[{"expression":{"arguments":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"256:8:103"},{"name":"arrayPos","nodeType":"YulIdentifier","src":"266:8:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"249:6:103"},"nodeType":"YulFunctionCall","src":"249:26:103"},"nodeType":"YulExpressionStatement","src":"249:26:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"219:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"227:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"216:2:103"},"nodeType":"YulFunctionCall","src":"216:30:103"},"nodeType":"YulIf","src":"213:2:103"},{"nodeType":"YulAssignment","src":"286:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"302:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"310:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"298:3:103"},"nodeType":"YulFunctionCall","src":"298:17:103"},"variableNames":[{"name":"arrayPos","nodeType":"YulIdentifier","src":"286:8:103"}]},{"body":{"nodeType":"YulBlock","src":"367:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"376:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"379:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"369:6:103"},"nodeType":"YulFunctionCall","src":"369:12:103"},"nodeType":"YulExpressionStatement","src":"369:12:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"338:6:103"},{"name":"length","nodeType":"YulIdentifier","src":"346:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"334:3:103"},"nodeType":"YulFunctionCall","src":"334:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"355:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"330:3:103"},"nodeType":"YulFunctionCall","src":"330:30:103"},{"name":"end","nodeType":"YulIdentifier","src":"362:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"327:2:103"},"nodeType":"YulFunctionCall","src":"327:39:103"},"nodeType":"YulIf","src":"324:2:103"}]},"name":"abi_decode_bytes_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"49:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"57:3:103","type":""}],"returnVariables":[{"name":"arrayPos","nodeType":"YulTypedName","src":"65:8:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"75:6:103","type":""}],"src":"14:375:103"},{"body":{"nodeType":"YulBlock","src":"457:449:103","statements":[{"body":{"nodeType":"YulBlock","src":"506:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"515:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"522:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"508:6:103"},"nodeType":"YulFunctionCall","src":"508:20:103"},"nodeType":"YulExpressionStatement","src":"508:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"485:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"493:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"481:3:103"},"nodeType":"YulFunctionCall","src":"481:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"500:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"477:3:103"},"nodeType":"YulFunctionCall","src":"477:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"470:6:103"},"nodeType":"YulFunctionCall","src":"470:35:103"},"nodeType":"YulIf","src":"467:2:103"},{"nodeType":"YulVariableDeclaration","src":"539:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"555:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"549:5:103"},"nodeType":"YulFunctionCall","src":"549:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"543:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"601:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"603:16:103"},"nodeType":"YulFunctionCall","src":"603:18:103"},"nodeType":"YulExpressionStatement","src":"603:18:103"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"577:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"581:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"574:2:103"},"nodeType":"YulFunctionCall","src":"574:26:103"},"nodeType":"YulIf","src":"571:2:103"},{"nodeType":"YulVariableDeclaration","src":"632:70:103","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"675:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"679:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"671:3:103"},"nodeType":"YulFunctionCall","src":"671:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"690:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"686:3:103"},"nodeType":"YulFunctionCall","src":"686:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"667:3:103"},"nodeType":"YulFunctionCall","src":"667:27:103"},{"kind":"number","nodeType":"YulLiteral","src":"696:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"663:3:103"},"nodeType":"YulFunctionCall","src":"663:38:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"647:15:103"},"nodeType":"YulFunctionCall","src":"647:55:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"636:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"718:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"727:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"711:6:103"},"nodeType":"YulFunctionCall","src":"711:19:103"},"nodeType":"YulExpressionStatement","src":"711:19:103"},{"body":{"nodeType":"YulBlock","src":"778:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"787:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"794:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"780:6:103"},"nodeType":"YulFunctionCall","src":"780:20:103"},"nodeType":"YulExpressionStatement","src":"780:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"753:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"761:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"749:3:103"},"nodeType":"YulFunctionCall","src":"749:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"766:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"745:3:103"},"nodeType":"YulFunctionCall","src":"745:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"773:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"742:2:103"},"nodeType":"YulFunctionCall","src":"742:35:103"},"nodeType":"YulIf","src":"739:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"837:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"845:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"833:3:103"},"nodeType":"YulFunctionCall","src":"833:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"856:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"865:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"852:3:103"},"nodeType":"YulFunctionCall","src":"852:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"872:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"811:21:103"},"nodeType":"YulFunctionCall","src":"811:64:103"},"nodeType":"YulExpressionStatement","src":"811:64:103"},{"nodeType":"YulAssignment","src":"884:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"893:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"884:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"431:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"439:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"447:5:103","type":""}],"src":"394:512:103"},{"body":{"nodeType":"YulBlock","src":"984:87:103","statements":[{"nodeType":"YulAssignment","src":"994:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1009:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1003:5:103"},"nodeType":"YulFunctionCall","src":"1003:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"994:5:103"}]},{"body":{"nodeType":"YulBlock","src":"1049:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1058:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1061:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1051:6:103"},"nodeType":"YulFunctionCall","src":"1051:12:103"},"nodeType":"YulExpressionStatement","src":"1051:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1038:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1045:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1035:2:103"},"nodeType":"YulFunctionCall","src":"1035:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1028:6:103"},"nodeType":"YulFunctionCall","src":"1028:20:103"},"nodeType":"YulIf","src":"1025:2:103"}]},"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"963:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"974:5:103","type":""}],"src":"911:160:103"},{"body":{"nodeType":"YulBlock","src":"1146:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"1192:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1201:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1209:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1194:6:103"},"nodeType":"YulFunctionCall","src":"1194:22:103"},"nodeType":"YulExpressionStatement","src":"1194:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1167:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1176:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1163:3:103"},"nodeType":"YulFunctionCall","src":"1163:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1188:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1159:3:103"},"nodeType":"YulFunctionCall","src":"1159:32:103"},"nodeType":"YulIf","src":"1156:2:103"},{"nodeType":"YulVariableDeclaration","src":"1227:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1253:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1240:12:103"},"nodeType":"YulFunctionCall","src":"1240:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1231:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1297:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1272:24:103"},"nodeType":"YulFunctionCall","src":"1272:31:103"},"nodeType":"YulExpressionStatement","src":"1272:31:103"},{"nodeType":"YulAssignment","src":"1312:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1322:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1312:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1112:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1123:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1135:6:103","type":""}],"src":"1076:257:103"},{"body":{"nodeType":"YulBlock","src":"1419:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1465:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1474:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1482:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1467:6:103"},"nodeType":"YulFunctionCall","src":"1467:22:103"},"nodeType":"YulExpressionStatement","src":"1467:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1440:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1449:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1436:3:103"},"nodeType":"YulFunctionCall","src":"1436:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1461:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1432:3:103"},"nodeType":"YulFunctionCall","src":"1432:32:103"},"nodeType":"YulIf","src":"1429:2:103"},{"nodeType":"YulVariableDeclaration","src":"1500:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1519:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1513:5:103"},"nodeType":"YulFunctionCall","src":"1513:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1504:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1563:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1538:24:103"},"nodeType":"YulFunctionCall","src":"1538:31:103"},"nodeType":"YulExpressionStatement","src":"1538:31:103"},{"nodeType":"YulAssignment","src":"1578:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1588:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1578:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1385:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1396:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1408:6:103","type":""}],"src":"1338:261:103"},{"body":{"nodeType":"YulBlock","src":"1788:844:103","statements":[{"body":{"nodeType":"YulBlock","src":"1835:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"1844:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"1852:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1837:6:103"},"nodeType":"YulFunctionCall","src":"1837:22:103"},"nodeType":"YulExpressionStatement","src":"1837:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1809:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1818:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1805:3:103"},"nodeType":"YulFunctionCall","src":"1805:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1830:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1801:3:103"},"nodeType":"YulFunctionCall","src":"1801:33:103"},"nodeType":"YulIf","src":"1798:2:103"},{"nodeType":"YulVariableDeclaration","src":"1870:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1896:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1883:12:103"},"nodeType":"YulFunctionCall","src":"1883:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1874:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1940:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1915:24:103"},"nodeType":"YulFunctionCall","src":"1915:31:103"},"nodeType":"YulExpressionStatement","src":"1915:31:103"},{"nodeType":"YulAssignment","src":"1955:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1965:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1955:6:103"}]},{"nodeType":"YulAssignment","src":"1979:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2006:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2017:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:103"},"nodeType":"YulFunctionCall","src":"2002:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1989:12:103"},"nodeType":"YulFunctionCall","src":"1989:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1979:6:103"}]},{"nodeType":"YulAssignment","src":"2030:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2068:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2053:3:103"},"nodeType":"YulFunctionCall","src":"2053:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2040:12:103"},"nodeType":"YulFunctionCall","src":"2040:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2030:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2081:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2123:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2108:3:103"},"nodeType":"YulFunctionCall","src":"2108:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2095:12:103"},"nodeType":"YulFunctionCall","src":"2095:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2085:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2136:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2146:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2140:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2191:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2200:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"2208:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2193:6:103"},"nodeType":"YulFunctionCall","src":"2193:22:103"},"nodeType":"YulExpressionStatement","src":"2193:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2179:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2187:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2176:2:103"},"nodeType":"YulFunctionCall","src":"2176:14:103"},"nodeType":"YulIf","src":"2173:2:103"},{"nodeType":"YulVariableDeclaration","src":"2226:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2282:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2293:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2278:3:103"},"nodeType":"YulFunctionCall","src":"2278:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2302:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2252:25:103"},"nodeType":"YulFunctionCall","src":"2252:58:103"},"variables":[{"name":"value3_1","nodeType":"YulTypedName","src":"2230:8:103","type":""},{"name":"value4_1","nodeType":"YulTypedName","src":"2240:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2319:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"2329:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2319:6:103"}]},{"nodeType":"YulAssignment","src":"2346:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"2356:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2346:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2373:49:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2406:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2417:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:103"},"nodeType":"YulFunctionCall","src":"2402:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2389:12:103"},"nodeType":"YulFunctionCall","src":"2389:33:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2377:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2451:26:103","statements":[{"expression":{"arguments":[{"name":"value5","nodeType":"YulIdentifier","src":"2460:6:103"},{"name":"value5","nodeType":"YulIdentifier","src":"2468:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2453:6:103"},"nodeType":"YulFunctionCall","src":"2453:22:103"},"nodeType":"YulExpressionStatement","src":"2453:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2437:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2447:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2434:2:103"},"nodeType":"YulFunctionCall","src":"2434:16:103"},"nodeType":"YulIf","src":"2431:2:103"},{"nodeType":"YulVariableDeclaration","src":"2486:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2542:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2553:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2538:3:103"},"nodeType":"YulFunctionCall","src":"2538:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2564:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"2512:25:103"},"nodeType":"YulFunctionCall","src":"2512:60:103"},"variables":[{"name":"value5_1","nodeType":"YulTypedName","src":"2490:8:103","type":""},{"name":"value6_1","nodeType":"YulTypedName","src":"2500:8:103","type":""}]},{"nodeType":"YulAssignment","src":"2581:18:103","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"2591:8:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"2581:6:103"}]},{"nodeType":"YulAssignment","src":"2608:18:103","value":{"name":"value6_1","nodeType":"YulIdentifier","src":"2618:8:103"},"variableNames":[{"name":"value6","nodeType":"YulIdentifier","src":"2608:6:103"}]}]},"name":"abi_decode_tuple_t_address_payablet_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1706:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1717:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1729:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1737:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1745:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1753:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"1761:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"1769:6:103","type":""},{"name":"value6","nodeType":"YulTypedName","src":"1777:6:103","type":""}],"src":"1604:1028:103"},{"body":{"nodeType":"YulBlock","src":"2704:184:103","statements":[{"body":{"nodeType":"YulBlock","src":"2750:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2759:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2767:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2752:6:103"},"nodeType":"YulFunctionCall","src":"2752:22:103"},"nodeType":"YulExpressionStatement","src":"2752:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2725:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2734:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2721:3:103"},"nodeType":"YulFunctionCall","src":"2721:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2746:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2717:3:103"},"nodeType":"YulFunctionCall","src":"2717:32:103"},"nodeType":"YulIf","src":"2714:2:103"},{"nodeType":"YulVariableDeclaration","src":"2785:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2811:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2798:12:103"},"nodeType":"YulFunctionCall","src":"2798:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2789:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2852:5:103"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"2830:21:103"},"nodeType":"YulFunctionCall","src":"2830:28:103"},"nodeType":"YulExpressionStatement","src":"2830:28:103"},{"nodeType":"YulAssignment","src":"2867:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2877:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2867:6:103"}]}]},"name":"abi_decode_tuple_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2670:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2681:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2693:6:103","type":""}],"src":"2637:251:103"},{"body":{"nodeType":"YulBlock","src":"2971:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"3017:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3026:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3034:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3019:6:103"},"nodeType":"YulFunctionCall","src":"3019:22:103"},"nodeType":"YulExpressionStatement","src":"3019:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2992:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3001:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2988:3:103"},"nodeType":"YulFunctionCall","src":"2988:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3013:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2984:3:103"},"nodeType":"YulFunctionCall","src":"2984:32:103"},"nodeType":"YulIf","src":"2981:2:103"},{"nodeType":"YulVariableDeclaration","src":"3052:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3071:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3065:5:103"},"nodeType":"YulFunctionCall","src":"3065:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3056:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3112:5:103"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"3090:21:103"},"nodeType":"YulFunctionCall","src":"3090:28:103"},"nodeType":"YulExpressionStatement","src":"3090:28:103"},{"nodeType":"YulAssignment","src":"3127:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3137:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3127:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2937:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2948:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2960:6:103","type":""}],"src":"2893:255:103"},{"body":{"nodeType":"YulBlock","src":"3265:265:103","statements":[{"body":{"nodeType":"YulBlock","src":"3311:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3320:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"3328:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3313:6:103"},"nodeType":"YulFunctionCall","src":"3313:22:103"},"nodeType":"YulExpressionStatement","src":"3313:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3286:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3295:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3282:3:103"},"nodeType":"YulFunctionCall","src":"3282:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3307:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3278:3:103"},"nodeType":"YulFunctionCall","src":"3278:32:103"},"nodeType":"YulIf","src":"3275:2:103"},{"nodeType":"YulVariableDeclaration","src":"3346:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3365:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3359:5:103"},"nodeType":"YulFunctionCall","src":"3359:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3350:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3406:5:103"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"3384:21:103"},"nodeType":"YulFunctionCall","src":"3384:28:103"},"nodeType":"YulExpressionStatement","src":"3384:28:103"},{"nodeType":"YulAssignment","src":"3421:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3431:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3421:6:103"}]},{"nodeType":"YulAssignment","src":"3445:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3476:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3461:3:103"},"nodeType":"YulFunctionCall","src":"3461:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3455:5:103"},"nodeType":"YulFunctionCall","src":"3455:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3445:6:103"}]},{"nodeType":"YulAssignment","src":"3489:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3499:5:103"},"nodeType":"YulFunctionCall","src":"3499:25:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3489:6:103"}]}]},"name":"abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3215:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3226:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3238:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3246:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3254:6:103","type":""}],"src":"3153:377:103"},{"body":{"nodeType":"YulBlock","src":"3605:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3651:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3660:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3668:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3653:6:103"},"nodeType":"YulFunctionCall","src":"3653:22:103"},"nodeType":"YulExpressionStatement","src":"3653:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3626:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3635:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3647:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3618:3:103"},"nodeType":"YulFunctionCall","src":"3618:32:103"},"nodeType":"YulIf","src":"3615:2:103"},{"nodeType":"YulAssignment","src":"3686:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3709:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3696:12:103"},"nodeType":"YulFunctionCall","src":"3696:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3686:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3571:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3582:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3594:6:103","type":""}],"src":"3535:190:103"},{"body":{"nodeType":"YulBlock","src":"3811:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"3857:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3866:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3874:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3859:6:103"},"nodeType":"YulFunctionCall","src":"3859:22:103"},"nodeType":"YulExpressionStatement","src":"3859:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3832:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3841:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3828:3:103"},"nodeType":"YulFunctionCall","src":"3828:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3853:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3824:3:103"},"nodeType":"YulFunctionCall","src":"3824:32:103"},"nodeType":"YulIf","src":"3821:2:103"},{"nodeType":"YulAssignment","src":"3892:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3908:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3902:5:103"},"nodeType":"YulFunctionCall","src":"3902:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3892:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3777:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3788:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3800:6:103","type":""}],"src":"3730:194:103"},{"body":{"nodeType":"YulBlock","src":"4016:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"4062:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4071:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4079:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4064:6:103"},"nodeType":"YulFunctionCall","src":"4064:22:103"},"nodeType":"YulExpressionStatement","src":"4064:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4037:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4046:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4033:3:103"},"nodeType":"YulFunctionCall","src":"4033:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4058:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4029:3:103"},"nodeType":"YulFunctionCall","src":"4029:32:103"},"nodeType":"YulIf","src":"4026:2:103"},{"nodeType":"YulAssignment","src":"4097:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4120:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4107:12:103"},"nodeType":"YulFunctionCall","src":"4107:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4097:6:103"}]},{"nodeType":"YulAssignment","src":"4139:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4166:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4177:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4162:3:103"},"nodeType":"YulFunctionCall","src":"4162:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4149:12:103"},"nodeType":"YulFunctionCall","src":"4149:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4139:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3974:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3985:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3997:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4005:6:103","type":""}],"src":"3929:258:103"},{"body":{"nodeType":"YulBlock","src":"4296:222:103","statements":[{"body":{"nodeType":"YulBlock","src":"4342:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"4351:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"4359:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4344:6:103"},"nodeType":"YulFunctionCall","src":"4344:22:103"},"nodeType":"YulExpressionStatement","src":"4344:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4317:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4326:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4313:3:103"},"nodeType":"YulFunctionCall","src":"4313:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4338:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4309:3:103"},"nodeType":"YulFunctionCall","src":"4309:32:103"},"nodeType":"YulIf","src":"4306:2:103"},{"nodeType":"YulAssignment","src":"4377:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4400:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4387:12:103"},"nodeType":"YulFunctionCall","src":"4387:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4377:6:103"}]},{"nodeType":"YulAssignment","src":"4419:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4446:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4457:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4442:3:103"},"nodeType":"YulFunctionCall","src":"4442:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4429:12:103"},"nodeType":"YulFunctionCall","src":"4429:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4419:6:103"}]},{"nodeType":"YulAssignment","src":"4470:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4508:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4493:3:103"},"nodeType":"YulFunctionCall","src":"4493:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4480:12:103"},"nodeType":"YulFunctionCall","src":"4480:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4470:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4246:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4257:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4269:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4277:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4285:6:103","type":""}],"src":"4192:326:103"},{"body":{"nodeType":"YulBlock","src":"4623:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"4669:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4678:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4686:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4671:6:103"},"nodeType":"YulFunctionCall","src":"4671:22:103"},"nodeType":"YulExpressionStatement","src":"4671:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4644:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4653:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4640:3:103"},"nodeType":"YulFunctionCall","src":"4640:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4636:3:103"},"nodeType":"YulFunctionCall","src":"4636:32:103"},"nodeType":"YulIf","src":"4633:2:103"},{"nodeType":"YulVariableDeclaration","src":"4704:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4723:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4717:5:103"},"nodeType":"YulFunctionCall","src":"4717:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4708:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4766:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4775:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4783:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4768:6:103"},"nodeType":"YulFunctionCall","src":"4768:22:103"},"nodeType":"YulExpressionStatement","src":"4768:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4755:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4762:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4752:2:103"},"nodeType":"YulFunctionCall","src":"4752:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4745:6:103"},"nodeType":"YulFunctionCall","src":"4745:20:103"},"nodeType":"YulIf","src":"4742:2:103"},{"nodeType":"YulAssignment","src":"4801:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4811:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4801:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4589:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4600:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4612:6:103","type":""}],"src":"4523:299:103"},{"body":{"nodeType":"YulBlock","src":"4937:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"4983:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4992:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5000:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4985:6:103"},"nodeType":"YulFunctionCall","src":"4985:22:103"},"nodeType":"YulExpressionStatement","src":"4985:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4958:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4967:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4954:3:103"},"nodeType":"YulFunctionCall","src":"4954:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4979:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4950:3:103"},"nodeType":"YulFunctionCall","src":"4950:32:103"},"nodeType":"YulIf","src":"4947:2:103"},{"nodeType":"YulVariableDeclaration","src":"5018:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5038:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5032:5:103"},"nodeType":"YulFunctionCall","src":"5032:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5022:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5057:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5067:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5061:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5112:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5121:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5129:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5114:6:103"},"nodeType":"YulFunctionCall","src":"5114:22:103"},"nodeType":"YulExpressionStatement","src":"5114:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5100:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5108:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5097:2:103"},"nodeType":"YulFunctionCall","src":"5097:14:103"},"nodeType":"YulIf","src":"5094:2:103"},{"nodeType":"YulVariableDeclaration","src":"5147:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5161:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5172:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5157:3:103"},"nodeType":"YulFunctionCall","src":"5157:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5151:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5219:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5228:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5236:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5221:6:103"},"nodeType":"YulFunctionCall","src":"5221:22:103"},"nodeType":"YulExpressionStatement","src":"5221:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5199:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5208:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5195:3:103"},"nodeType":"YulFunctionCall","src":"5195:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"5213:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5191:3:103"},"nodeType":"YulFunctionCall","src":"5191:27:103"},"nodeType":"YulIf","src":"5188:2:103"},{"nodeType":"YulVariableDeclaration","src":"5254:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5283:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5267:15:103"},"nodeType":"YulFunctionCall","src":"5267:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5258:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5297:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5318:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5312:5:103"},"nodeType":"YulFunctionCall","src":"5312:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"5301:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"5369:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"5330:38:103"},"nodeType":"YulFunctionCall","src":"5330:47:103"},"nodeType":"YulExpressionStatement","src":"5330:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5393:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"5400:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5386:6:103"},"nodeType":"YulFunctionCall","src":"5386:22:103"},"nodeType":"YulExpressionStatement","src":"5386:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5428:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5435:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5424:3:103"},"nodeType":"YulFunctionCall","src":"5424:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5450:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5454:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5446:3:103"},"nodeType":"YulFunctionCall","src":"5446:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5440:5:103"},"nodeType":"YulFunctionCall","src":"5440:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5417:6:103"},"nodeType":"YulFunctionCall","src":"5417:42:103"},"nodeType":"YulExpressionStatement","src":"5417:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5479:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5486:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5475:3:103"},"nodeType":"YulFunctionCall","src":"5475:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5501:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5505:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5497:3:103"},"nodeType":"YulFunctionCall","src":"5497:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5491:5:103"},"nodeType":"YulFunctionCall","src":"5491:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5468:6:103"},"nodeType":"YulFunctionCall","src":"5468:42:103"},"nodeType":"YulExpressionStatement","src":"5468:42:103"},{"nodeType":"YulVariableDeclaration","src":"5519:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5545:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5549:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5541:3:103"},"nodeType":"YulFunctionCall","src":"5541:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5535:5:103"},"nodeType":"YulFunctionCall","src":"5535:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5523:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5582:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5591:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5599:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5584:6:103"},"nodeType":"YulFunctionCall","src":"5584:22:103"},"nodeType":"YulExpressionStatement","src":"5584:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5568:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5578:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5565:2:103"},"nodeType":"YulFunctionCall","src":"5565:16:103"},"nodeType":"YulIf","src":"5562:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5628:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5635:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5624:3:103"},"nodeType":"YulFunctionCall","src":"5624:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5672:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5676:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5668:3:103"},"nodeType":"YulFunctionCall","src":"5668:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5687:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"5640:27:103"},"nodeType":"YulFunctionCall","src":"5640:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5617:6:103"},"nodeType":"YulFunctionCall","src":"5617:79:103"},"nodeType":"YulExpressionStatement","src":"5617:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5716:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5723:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5712:3:103"},"nodeType":"YulFunctionCall","src":"5712:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5739:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5743:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5735:3:103"},"nodeType":"YulFunctionCall","src":"5735:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5729:5:103"},"nodeType":"YulFunctionCall","src":"5729:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5705:6:103"},"nodeType":"YulFunctionCall","src":"5705:44:103"},"nodeType":"YulExpressionStatement","src":"5705:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5769:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5776:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5765:3:103"},"nodeType":"YulFunctionCall","src":"5765:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5792:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5796:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5788:3:103"},"nodeType":"YulFunctionCall","src":"5788:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5782:5:103"},"nodeType":"YulFunctionCall","src":"5782:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5758:6:103"},"nodeType":"YulFunctionCall","src":"5758:44:103"},"nodeType":"YulExpressionStatement","src":"5758:44:103"},{"nodeType":"YulAssignment","src":"5811:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5821:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5811:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4903:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4914:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4926:6:103","type":""}],"src":"4827:1005:103"},{"body":{"nodeType":"YulBlock","src":"5941:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"5987:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5996:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6004:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5989:6:103"},"nodeType":"YulFunctionCall","src":"5989:22:103"},"nodeType":"YulExpressionStatement","src":"5989:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5962:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"5971:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5958:3:103"},"nodeType":"YulFunctionCall","src":"5958:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"5983:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5954:3:103"},"nodeType":"YulFunctionCall","src":"5954:32:103"},"nodeType":"YulIf","src":"5951:2:103"},{"nodeType":"YulVariableDeclaration","src":"6022:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6042:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6036:5:103"},"nodeType":"YulFunctionCall","src":"6036:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6026:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6061:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6071:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6065:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6116:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6125:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6133:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6118:6:103"},"nodeType":"YulFunctionCall","src":"6118:22:103"},"nodeType":"YulExpressionStatement","src":"6118:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6104:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6112:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6101:2:103"},"nodeType":"YulFunctionCall","src":"6101:14:103"},"nodeType":"YulIf","src":"6098:2:103"},{"nodeType":"YulVariableDeclaration","src":"6151:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6165:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6176:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6161:3:103"},"nodeType":"YulFunctionCall","src":"6161:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6155:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6223:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6232:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6240:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6225:6:103"},"nodeType":"YulFunctionCall","src":"6225:22:103"},"nodeType":"YulExpressionStatement","src":"6225:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6203:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6212:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6199:3:103"},"nodeType":"YulFunctionCall","src":"6199:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"6217:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6195:3:103"},"nodeType":"YulFunctionCall","src":"6195:27:103"},"nodeType":"YulIf","src":"6192:2:103"},{"nodeType":"YulVariableDeclaration","src":"6258:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6287:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6271:15:103"},"nodeType":"YulFunctionCall","src":"6271:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6262:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6301:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6322:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6316:5:103"},"nodeType":"YulFunctionCall","src":"6316:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"6305:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"6373:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"6334:38:103"},"nodeType":"YulFunctionCall","src":"6334:47:103"},"nodeType":"YulExpressionStatement","src":"6334:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6397:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"6404:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6390:6:103"},"nodeType":"YulFunctionCall","src":"6390:22:103"},"nodeType":"YulExpressionStatement","src":"6390:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6432:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6439:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6428:3:103"},"nodeType":"YulFunctionCall","src":"6428:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6454:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6458:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6450:3:103"},"nodeType":"YulFunctionCall","src":"6450:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6444:5:103"},"nodeType":"YulFunctionCall","src":"6444:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6421:6:103"},"nodeType":"YulFunctionCall","src":"6421:42:103"},"nodeType":"YulExpressionStatement","src":"6421:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6483:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6490:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6479:3:103"},"nodeType":"YulFunctionCall","src":"6479:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6505:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6509:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6501:3:103"},"nodeType":"YulFunctionCall","src":"6501:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6495:5:103"},"nodeType":"YulFunctionCall","src":"6495:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6472:6:103"},"nodeType":"YulFunctionCall","src":"6472:42:103"},"nodeType":"YulExpressionStatement","src":"6472:42:103"},{"nodeType":"YulVariableDeclaration","src":"6523:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6549:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6553:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6545:3:103"},"nodeType":"YulFunctionCall","src":"6545:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6539:5:103"},"nodeType":"YulFunctionCall","src":"6539:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6527:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6586:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6595:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6603:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6588:6:103"},"nodeType":"YulFunctionCall","src":"6588:22:103"},"nodeType":"YulExpressionStatement","src":"6588:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6572:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6582:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6569:2:103"},"nodeType":"YulFunctionCall","src":"6569:16:103"},"nodeType":"YulIf","src":"6566:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6632:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6639:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6628:3:103"},"nodeType":"YulFunctionCall","src":"6628:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6676:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6680:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6672:3:103"},"nodeType":"YulFunctionCall","src":"6672:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6691:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"6644:27:103"},"nodeType":"YulFunctionCall","src":"6644:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6621:6:103"},"nodeType":"YulFunctionCall","src":"6621:79:103"},"nodeType":"YulExpressionStatement","src":"6621:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6720:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6727:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6716:3:103"},"nodeType":"YulFunctionCall","src":"6716:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6743:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6747:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6739:3:103"},"nodeType":"YulFunctionCall","src":"6739:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6733:5:103"},"nodeType":"YulFunctionCall","src":"6733:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6709:6:103"},"nodeType":"YulFunctionCall","src":"6709:44:103"},"nodeType":"YulExpressionStatement","src":"6709:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6773:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6780:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6769:3:103"},"nodeType":"YulFunctionCall","src":"6769:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6796:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6800:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6792:3:103"},"nodeType":"YulFunctionCall","src":"6792:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6786:5:103"},"nodeType":"YulFunctionCall","src":"6786:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6762:6:103"},"nodeType":"YulFunctionCall","src":"6762:44:103"},"nodeType":"YulExpressionStatement","src":"6762:44:103"},{"nodeType":"YulAssignment","src":"6815:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"6825:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6815:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5907:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5918:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5930:6:103","type":""}],"src":"5837:999:103"},{"body":{"nodeType":"YulBlock","src":"6948:918:103","statements":[{"body":{"nodeType":"YulBlock","src":"6994:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7003:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7011:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6996:6:103"},"nodeType":"YulFunctionCall","src":"6996:22:103"},"nodeType":"YulExpressionStatement","src":"6996:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6969:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6978:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6965:3:103"},"nodeType":"YulFunctionCall","src":"6965:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6990:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6961:3:103"},"nodeType":"YulFunctionCall","src":"6961:32:103"},"nodeType":"YulIf","src":"6958:2:103"},{"nodeType":"YulVariableDeclaration","src":"7029:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7049:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7043:5:103"},"nodeType":"YulFunctionCall","src":"7043:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"7033:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7068:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7078:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7072:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7123:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7132:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7140:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7125:6:103"},"nodeType":"YulFunctionCall","src":"7125:22:103"},"nodeType":"YulExpressionStatement","src":"7125:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"7111:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7119:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7108:2:103"},"nodeType":"YulFunctionCall","src":"7108:14:103"},"nodeType":"YulIf","src":"7105:2:103"},{"nodeType":"YulVariableDeclaration","src":"7158:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7172:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"7183:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7168:3:103"},"nodeType":"YulFunctionCall","src":"7168:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"7162:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7230:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7239:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7247:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7232:6:103"},"nodeType":"YulFunctionCall","src":"7232:22:103"},"nodeType":"YulExpressionStatement","src":"7232:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7210:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"7219:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7206:3:103"},"nodeType":"YulFunctionCall","src":"7206:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"7224:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7202:3:103"},"nodeType":"YulFunctionCall","src":"7202:27:103"},"nodeType":"YulIf","src":"7199:2:103"},{"nodeType":"YulVariableDeclaration","src":"7265:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7294:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"7278:15:103"},"nodeType":"YulFunctionCall","src":"7278:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"7269:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"7308:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7329:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7323:5:103"},"nodeType":"YulFunctionCall","src":"7323:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"7312:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"7366:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"7341:24:103"},"nodeType":"YulFunctionCall","src":"7341:33:103"},"nodeType":"YulExpressionStatement","src":"7341:33:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7390:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"7397:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7383:6:103"},"nodeType":"YulFunctionCall","src":"7383:22:103"},"nodeType":"YulExpressionStatement","src":"7383:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7425:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7432:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7421:3:103"},"nodeType":"YulFunctionCall","src":"7421:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7447:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7451:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7443:3:103"},"nodeType":"YulFunctionCall","src":"7443:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7437:5:103"},"nodeType":"YulFunctionCall","src":"7437:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7414:6:103"},"nodeType":"YulFunctionCall","src":"7414:42:103"},"nodeType":"YulExpressionStatement","src":"7414:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7476:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7483:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7472:3:103"},"nodeType":"YulFunctionCall","src":"7472:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7535:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7539:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7531:3:103"},"nodeType":"YulFunctionCall","src":"7531:11:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"7488:42:103"},"nodeType":"YulFunctionCall","src":"7488:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7465:6:103"},"nodeType":"YulFunctionCall","src":"7465:79:103"},"nodeType":"YulExpressionStatement","src":"7465:79:103"},{"nodeType":"YulVariableDeclaration","src":"7553:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7579:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7583:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7575:3:103"},"nodeType":"YulFunctionCall","src":"7575:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7569:5:103"},"nodeType":"YulFunctionCall","src":"7569:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7557:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7616:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7625:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7633:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7618:6:103"},"nodeType":"YulFunctionCall","src":"7618:22:103"},"nodeType":"YulExpressionStatement","src":"7618:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7602:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7612:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7599:2:103"},"nodeType":"YulFunctionCall","src":"7599:16:103"},"nodeType":"YulIf","src":"7596:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7662:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7669:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7658:3:103"},"nodeType":"YulFunctionCall","src":"7658:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7706:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7710:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7702:3:103"},"nodeType":"YulFunctionCall","src":"7702:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7721:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"7674:27:103"},"nodeType":"YulFunctionCall","src":"7674:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7651:6:103"},"nodeType":"YulFunctionCall","src":"7651:79:103"},"nodeType":"YulExpressionStatement","src":"7651:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7750:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7757:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7746:3:103"},"nodeType":"YulFunctionCall","src":"7746:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7773:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7777:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7769:3:103"},"nodeType":"YulFunctionCall","src":"7769:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7763:5:103"},"nodeType":"YulFunctionCall","src":"7763:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7739:6:103"},"nodeType":"YulFunctionCall","src":"7739:44:103"},"nodeType":"YulExpressionStatement","src":"7739:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7803:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7810:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7799:3:103"},"nodeType":"YulFunctionCall","src":"7799:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7826:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7830:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7822:3:103"},"nodeType":"YulFunctionCall","src":"7822:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7816:5:103"},"nodeType":"YulFunctionCall","src":"7816:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7792:6:103"},"nodeType":"YulFunctionCall","src":"7792:44:103"},"nodeType":"YulExpressionStatement","src":"7792:44:103"},{"nodeType":"YulAssignment","src":"7845:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7855:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7845:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6914:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6925:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6937:6:103","type":""}],"src":"6841:1025:103"},{"body":{"nodeType":"YulBlock","src":"7976:736:103","statements":[{"nodeType":"YulVariableDeclaration","src":"7986:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7996:3:103","type":"","value":"288"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"7990:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"8044:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8053:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8061:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8046:6:103"},"nodeType":"YulFunctionCall","src":"8046:22:103"},"nodeType":"YulExpressionStatement","src":"8046:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8019:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8028:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8015:3:103"},"nodeType":"YulFunctionCall","src":"8015:23:103"},{"name":"_1","nodeType":"YulIdentifier","src":"8040:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8011:3:103"},"nodeType":"YulFunctionCall","src":"8011:32:103"},"nodeType":"YulIf","src":"8008:2:103"},{"nodeType":"YulVariableDeclaration","src":"8079:32:103","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"8108:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"8092:15:103"},"nodeType":"YulFunctionCall","src":"8092:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8083:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8127:5:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8177:9:103"}],"functionName":{"name":"abi_decode_enum_PolicyFlowState_fromMemory","nodeType":"YulIdentifier","src":"8134:42:103"},"nodeType":"YulFunctionCall","src":"8134:53:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8120:6:103"},"nodeType":"YulFunctionCall","src":"8120:68:103"},"nodeType":"YulExpressionStatement","src":"8120:68:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8208:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8215:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8204:3:103"},"nodeType":"YulFunctionCall","src":"8204:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8230:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8241:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8226:3:103"},"nodeType":"YulFunctionCall","src":"8226:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8220:5:103"},"nodeType":"YulFunctionCall","src":"8220:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8197:6:103"},"nodeType":"YulFunctionCall","src":"8197:49:103"},"nodeType":"YulExpressionStatement","src":"8197:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8266:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8273:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8262:3:103"},"nodeType":"YulFunctionCall","src":"8262:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8288:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8299:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8284:3:103"},"nodeType":"YulFunctionCall","src":"8284:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8278:5:103"},"nodeType":"YulFunctionCall","src":"8278:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8255:6:103"},"nodeType":"YulFunctionCall","src":"8255:49:103"},"nodeType":"YulExpressionStatement","src":"8255:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8324:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8331:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8320:3:103"},"nodeType":"YulFunctionCall","src":"8320:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8346:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8357:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8342:3:103"},"nodeType":"YulFunctionCall","src":"8342:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8336:5:103"},"nodeType":"YulFunctionCall","src":"8336:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8313:6:103"},"nodeType":"YulFunctionCall","src":"8313:49:103"},"nodeType":"YulExpressionStatement","src":"8313:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8382:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8389:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8378:3:103"},"nodeType":"YulFunctionCall","src":"8378:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8405:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8416:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8401:3:103"},"nodeType":"YulFunctionCall","src":"8401:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8395:5:103"},"nodeType":"YulFunctionCall","src":"8395:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8371:6:103"},"nodeType":"YulFunctionCall","src":"8371:51:103"},"nodeType":"YulExpressionStatement","src":"8371:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8442:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8449:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8438:3:103"},"nodeType":"YulFunctionCall","src":"8438:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8465:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8476:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8461:3:103"},"nodeType":"YulFunctionCall","src":"8461:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8455:5:103"},"nodeType":"YulFunctionCall","src":"8455:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8431:6:103"},"nodeType":"YulFunctionCall","src":"8431:51:103"},"nodeType":"YulExpressionStatement","src":"8431:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8502:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8509:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8498:3:103"},"nodeType":"YulFunctionCall","src":"8498:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8536:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8521:3:103"},"nodeType":"YulFunctionCall","src":"8521:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8515:5:103"},"nodeType":"YulFunctionCall","src":"8515:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8491:6:103"},"nodeType":"YulFunctionCall","src":"8491:51:103"},"nodeType":"YulExpressionStatement","src":"8491:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8562:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8569:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8558:3:103"},"nodeType":"YulFunctionCall","src":"8558:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8585:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8596:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8581:3:103"},"nodeType":"YulFunctionCall","src":"8581:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8575:5:103"},"nodeType":"YulFunctionCall","src":"8575:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8551:6:103"},"nodeType":"YulFunctionCall","src":"8551:51:103"},"nodeType":"YulExpressionStatement","src":"8551:51:103"},{"nodeType":"YulVariableDeclaration","src":"8611:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"8621:3:103","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8615:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8644:5:103"},{"name":"_2","nodeType":"YulIdentifier","src":"8651:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8640:3:103"},"nodeType":"YulFunctionCall","src":"8640:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8666:9:103"},{"name":"_2","nodeType":"YulIdentifier","src":"8677:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8662:3:103"},"nodeType":"YulFunctionCall","src":"8662:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8656:5:103"},"nodeType":"YulFunctionCall","src":"8656:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8633:6:103"},"nodeType":"YulFunctionCall","src":"8633:49:103"},"nodeType":"YulExpressionStatement","src":"8633:49:103"},{"nodeType":"YulAssignment","src":"8691:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"8701:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8691:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7942:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7953:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7965:6:103","type":""}],"src":"7871:841:103"},{"body":{"nodeType":"YulBlock","src":"8787:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"8833:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8842:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8850:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8835:6:103"},"nodeType":"YulFunctionCall","src":"8835:22:103"},"nodeType":"YulExpressionStatement","src":"8835:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8808:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8817:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8804:3:103"},"nodeType":"YulFunctionCall","src":"8804:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8829:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8800:3:103"},"nodeType":"YulFunctionCall","src":"8800:32:103"},"nodeType":"YulIf","src":"8797:2:103"},{"nodeType":"YulAssignment","src":"8868:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8891:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8878:12:103"},"nodeType":"YulFunctionCall","src":"8878:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8868:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8753:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8764:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8776:6:103","type":""}],"src":"8717:190:103"},{"body":{"nodeType":"YulBlock","src":"8993:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"9039:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9048:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9056:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9041:6:103"},"nodeType":"YulFunctionCall","src":"9041:22:103"},"nodeType":"YulExpressionStatement","src":"9041:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9014:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9023:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9010:3:103"},"nodeType":"YulFunctionCall","src":"9010:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9035:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9006:3:103"},"nodeType":"YulFunctionCall","src":"9006:32:103"},"nodeType":"YulIf","src":"9003:2:103"},{"nodeType":"YulAssignment","src":"9074:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9090:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9084:5:103"},"nodeType":"YulFunctionCall","src":"9084:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9074:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8959:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8970:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8982:6:103","type":""}],"src":"8912:194:103"},{"body":{"nodeType":"YulBlock","src":"9234:442:103","statements":[{"body":{"nodeType":"YulBlock","src":"9280:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9289:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9297:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9282:6:103"},"nodeType":"YulFunctionCall","src":"9282:22:103"},"nodeType":"YulExpressionStatement","src":"9282:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9255:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9264:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9251:3:103"},"nodeType":"YulFunctionCall","src":"9251:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9276:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9247:3:103"},"nodeType":"YulFunctionCall","src":"9247:32:103"},"nodeType":"YulIf","src":"9244:2:103"},{"nodeType":"YulAssignment","src":"9315:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9338:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9325:12:103"},"nodeType":"YulFunctionCall","src":"9325:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9315:6:103"}]},{"nodeType":"YulAssignment","src":"9357:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9384:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9395:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9380:3:103"},"nodeType":"YulFunctionCall","src":"9380:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9367:12:103"},"nodeType":"YulFunctionCall","src":"9367:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9357:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"9408:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9439:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9450:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9435:3:103"},"nodeType":"YulFunctionCall","src":"9435:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"9422:12:103"},"nodeType":"YulFunctionCall","src":"9422:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"9412:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"9497:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9506:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9514:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9499:6:103"},"nodeType":"YulFunctionCall","src":"9499:22:103"},"nodeType":"YulExpressionStatement","src":"9499:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"9469:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"9477:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"9466:2:103"},"nodeType":"YulFunctionCall","src":"9466:30:103"},"nodeType":"YulIf","src":"9463:2:103"},{"nodeType":"YulVariableDeclaration","src":"9532:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9588:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"9599:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9584:3:103"},"nodeType":"YulFunctionCall","src":"9584:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"9608:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"9558:25:103"},"nodeType":"YulFunctionCall","src":"9558:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"9536:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"9546:8:103","type":""}]},{"nodeType":"YulAssignment","src":"9625:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"9635:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"9625:6:103"}]},{"nodeType":"YulAssignment","src":"9652:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"9662:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"9652:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_bytes32t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9176:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9187:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9199:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9207:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9215:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9223:6:103","type":""}],"src":"9111:565:103"},{"body":{"nodeType":"YulBlock","src":"9779:157:103","statements":[{"body":{"nodeType":"YulBlock","src":"9825:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9834:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9842:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"9827:6:103"},"nodeType":"YulFunctionCall","src":"9827:22:103"},"nodeType":"YulExpressionStatement","src":"9827:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"9800:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"9809:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9796:3:103"},"nodeType":"YulFunctionCall","src":"9796:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"9821:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"9792:3:103"},"nodeType":"YulFunctionCall","src":"9792:32:103"},"nodeType":"YulIf","src":"9789:2:103"},{"nodeType":"YulAssignment","src":"9860:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9876:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9870:5:103"},"nodeType":"YulFunctionCall","src":"9870:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"9860:6:103"}]},{"nodeType":"YulAssignment","src":"9895:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9915:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9926:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9911:3:103"},"nodeType":"YulFunctionCall","src":"9911:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9905:5:103"},"nodeType":"YulFunctionCall","src":"9905:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"9895:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9737:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"9748:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"9760:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9768:6:103","type":""}],"src":"9681:255:103"},{"body":{"nodeType":"YulBlock","src":"10100:725:103","statements":[{"body":{"nodeType":"YulBlock","src":"10147:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10156:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10164:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10149:6:103"},"nodeType":"YulFunctionCall","src":"10149:22:103"},"nodeType":"YulExpressionStatement","src":"10149:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"10121:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"10130:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10117:3:103"},"nodeType":"YulFunctionCall","src":"10117:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"10142:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"10113:3:103"},"nodeType":"YulFunctionCall","src":"10113:33:103"},"nodeType":"YulIf","src":"10110:2:103"},{"nodeType":"YulAssignment","src":"10182:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10205:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10192:12:103"},"nodeType":"YulFunctionCall","src":"10192:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"10182:6:103"}]},{"nodeType":"YulAssignment","src":"10224:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10251:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10262:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10247:3:103"},"nodeType":"YulFunctionCall","src":"10247:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10234:12:103"},"nodeType":"YulFunctionCall","src":"10234:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"10224:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"10275:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10306:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10317:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10302:3:103"},"nodeType":"YulFunctionCall","src":"10302:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10289:12:103"},"nodeType":"YulFunctionCall","src":"10289:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"10279:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10330:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"10340:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10334:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10385:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10394:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"10402:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10387:6:103"},"nodeType":"YulFunctionCall","src":"10387:22:103"},"nodeType":"YulExpressionStatement","src":"10387:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"10373:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10381:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10370:2:103"},"nodeType":"YulFunctionCall","src":"10370:14:103"},"nodeType":"YulIf","src":"10367:2:103"},{"nodeType":"YulVariableDeclaration","src":"10420:84:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10476:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"10487:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10472:3:103"},"nodeType":"YulFunctionCall","src":"10472:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10496:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"10446:25:103"},"nodeType":"YulFunctionCall","src":"10446:58:103"},"variables":[{"name":"value2_1","nodeType":"YulTypedName","src":"10424:8:103","type":""},{"name":"value3_1","nodeType":"YulTypedName","src":"10434:8:103","type":""}]},{"nodeType":"YulAssignment","src":"10513:18:103","value":{"name":"value2_1","nodeType":"YulIdentifier","src":"10523:8:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"10513:6:103"}]},{"nodeType":"YulAssignment","src":"10540:18:103","value":{"name":"value3_1","nodeType":"YulIdentifier","src":"10550:8:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"10540:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"10567:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10600:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10611:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10596:3:103"},"nodeType":"YulFunctionCall","src":"10596:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"10583:12:103"},"nodeType":"YulFunctionCall","src":"10583:32:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"10571:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"10644:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"10653:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"10661:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10646:6:103"},"nodeType":"YulFunctionCall","src":"10646:22:103"},"nodeType":"YulExpressionStatement","src":"10646:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"10630:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"10640:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10627:2:103"},"nodeType":"YulFunctionCall","src":"10627:16:103"},"nodeType":"YulIf","src":"10624:2:103"},{"nodeType":"YulVariableDeclaration","src":"10679:86:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10735:9:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"10746:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10731:3:103"},"nodeType":"YulFunctionCall","src":"10731:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"10757:7:103"}],"functionName":{"name":"abi_decode_bytes_calldata","nodeType":"YulIdentifier","src":"10705:25:103"},"nodeType":"YulFunctionCall","src":"10705:60:103"},"variables":[{"name":"value4_1","nodeType":"YulTypedName","src":"10683:8:103","type":""},{"name":"value5_1","nodeType":"YulTypedName","src":"10693:8:103","type":""}]},{"nodeType":"YulAssignment","src":"10774:18:103","value":{"name":"value4_1","nodeType":"YulIdentifier","src":"10784:8:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"10774:6:103"}]},{"nodeType":"YulAssignment","src":"10801:18:103","value":{"name":"value5_1","nodeType":"YulIdentifier","src":"10811:8:103"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"10801:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10026:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"10037:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"10049:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10057:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10065:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10073:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"10081:6:103","type":""},{"name":"value5","nodeType":"YulTypedName","src":"10089:6:103","type":""}],"src":"9941:884:103"},{"body":{"nodeType":"YulBlock","src":"10879:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"10889:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10909:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10903:5:103"},"nodeType":"YulFunctionCall","src":"10903:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10893:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10931:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"10936:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10924:6:103"},"nodeType":"YulFunctionCall","src":"10924:19:103"},"nodeType":"YulExpressionStatement","src":"10924:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10978:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"10985:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10974:3:103"},"nodeType":"YulFunctionCall","src":"10974:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10996:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"11001:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10992:3:103"},"nodeType":"YulFunctionCall","src":"10992:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"11008:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"10952:21:103"},"nodeType":"YulFunctionCall","src":"10952:63:103"},"nodeType":"YulExpressionStatement","src":"10952:63:103"},{"nodeType":"YulAssignment","src":"11024:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11039:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11052:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"11060:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11048:3:103"},"nodeType":"YulFunctionCall","src":"11048:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11069:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11065:3:103"},"nodeType":"YulFunctionCall","src":"11065:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11044:3:103"},"nodeType":"YulFunctionCall","src":"11044:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11035:3:103"},"nodeType":"YulFunctionCall","src":"11035:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"11076:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11031:3:103"},"nodeType":"YulFunctionCall","src":"11031:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11024:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10856:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"10863:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10871:3:103","type":""}],"src":"10830:257:103"},{"body":{"nodeType":"YulBlock","src":"11193:102:103","statements":[{"nodeType":"YulAssignment","src":"11203:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11215:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11226:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11211:3:103"},"nodeType":"YulFunctionCall","src":"11211:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11203:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11245:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11260:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11276:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11281:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11272:3:103"},"nodeType":"YulFunctionCall","src":"11272:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"11285:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11268:3:103"},"nodeType":"YulFunctionCall","src":"11268:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11256:3:103"},"nodeType":"YulFunctionCall","src":"11256:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11238:6:103"},"nodeType":"YulFunctionCall","src":"11238:51:103"},"nodeType":"YulExpressionStatement","src":"11238:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11162:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11173:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11184:4:103","type":""}],"src":"11092:203:103"},{"body":{"nodeType":"YulBlock","src":"11549:370:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11566:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11581:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11597:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"11602:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"11593:3:103"},"nodeType":"YulFunctionCall","src":"11593:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"11606:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11589:3:103"},"nodeType":"YulFunctionCall","src":"11589:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11577:3:103"},"nodeType":"YulFunctionCall","src":"11577:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11559:6:103"},"nodeType":"YulFunctionCall","src":"11559:51:103"},"nodeType":"YulExpressionStatement","src":"11559:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11630:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11641:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11626:3:103"},"nodeType":"YulFunctionCall","src":"11626:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"11646:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11619:6:103"},"nodeType":"YulFunctionCall","src":"11619:34:103"},"nodeType":"YulExpressionStatement","src":"11619:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11673:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11684:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11669:3:103"},"nodeType":"YulFunctionCall","src":"11669:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"11689:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11662:6:103"},"nodeType":"YulFunctionCall","src":"11662:34:103"},"nodeType":"YulExpressionStatement","src":"11662:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11716:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11727:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11712:3:103"},"nodeType":"YulFunctionCall","src":"11712:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11732:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11705:6:103"},"nodeType":"YulFunctionCall","src":"11705:31:103"},"nodeType":"YulExpressionStatement","src":"11705:31:103"},{"nodeType":"YulVariableDeclaration","src":"11745:59:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"11776:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11788:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11799:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11784:3:103"},"nodeType":"YulFunctionCall","src":"11784:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11759:16:103"},"nodeType":"YulFunctionCall","src":"11759:45:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"11749:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11824:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11835:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11820:3:103"},"nodeType":"YulFunctionCall","src":"11820:19:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"11845:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"11853:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11841:3:103"},"nodeType":"YulFunctionCall","src":"11841:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11813:6:103"},"nodeType":"YulFunctionCall","src":"11813:51:103"},"nodeType":"YulExpressionStatement","src":"11813:51:103"},{"nodeType":"YulAssignment","src":"11873:40:103","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"11898:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"11906:6:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11881:16:103"},"nodeType":"YulFunctionCall","src":"11881:32:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11873:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11486:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"11497:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"11505:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"11513:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11521:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11529:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11540:4:103","type":""}],"src":"11300:619:103"},{"body":{"nodeType":"YulBlock","src":"12019:92:103","statements":[{"nodeType":"YulAssignment","src":"12029:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12041:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12052:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12037:3:103"},"nodeType":"YulFunctionCall","src":"12037:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12029:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12071:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12096:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12089:6:103"},"nodeType":"YulFunctionCall","src":"12089:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12082:6:103"},"nodeType":"YulFunctionCall","src":"12082:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12064:6:103"},"nodeType":"YulFunctionCall","src":"12064:41:103"},"nodeType":"YulExpressionStatement","src":"12064:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11988:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11999:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12010:4:103","type":""}],"src":"11924:187:103"},{"body":{"nodeType":"YulBlock","src":"12267:178:103","statements":[{"nodeType":"YulAssignment","src":"12277:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12289:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12300:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12285:3:103"},"nodeType":"YulFunctionCall","src":"12285:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12277:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12319:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12344:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12337:6:103"},"nodeType":"YulFunctionCall","src":"12337:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12330:6:103"},"nodeType":"YulFunctionCall","src":"12330:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12312:6:103"},"nodeType":"YulFunctionCall","src":"12312:41:103"},"nodeType":"YulExpressionStatement","src":"12312:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12373:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12384:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12369:3:103"},"nodeType":"YulFunctionCall","src":"12369:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"12389:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12362:6:103"},"nodeType":"YulFunctionCall","src":"12362:34:103"},"nodeType":"YulExpressionStatement","src":"12362:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12416:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12427:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12412:3:103"},"nodeType":"YulFunctionCall","src":"12412:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"12432:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12405:6:103"},"nodeType":"YulFunctionCall","src":"12405:34:103"},"nodeType":"YulExpressionStatement","src":"12405:34:103"}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12220:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12231:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12239:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12247:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12258:4:103","type":""}],"src":"12116:329:103"},{"body":{"nodeType":"YulBlock","src":"12551:76:103","statements":[{"nodeType":"YulAssignment","src":"12561:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12573:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12584:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12569:3:103"},"nodeType":"YulFunctionCall","src":"12569:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12561:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12603:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12614:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12596:6:103"},"nodeType":"YulFunctionCall","src":"12596:25:103"},"nodeType":"YulExpressionStatement","src":"12596:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12520:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12531:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12542:4:103","type":""}],"src":"12450:177:103"},{"body":{"nodeType":"YulBlock","src":"12883:370:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12900:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12911:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12893:6:103"},"nodeType":"YulFunctionCall","src":"12893:25:103"},"nodeType":"YulExpressionStatement","src":"12893:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12938:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12949:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12934:3:103"},"nodeType":"YulFunctionCall","src":"12934:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12954:3:103","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12927:6:103"},"nodeType":"YulFunctionCall","src":"12927:31:103"},"nodeType":"YulExpressionStatement","src":"12927:31:103"},{"nodeType":"YulVariableDeclaration","src":"12967:59:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12998:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13010:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13021:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13006:3:103"},"nodeType":"YulFunctionCall","src":"13006:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"12981:16:103"},"nodeType":"YulFunctionCall","src":"12981:45:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"12971:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13046:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13057:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13042:3:103"},"nodeType":"YulFunctionCall","src":"13042:18:103"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"13066:6:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"13074:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13062:3:103"},"nodeType":"YulFunctionCall","src":"13062:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13035:6:103"},"nodeType":"YulFunctionCall","src":"13035:50:103"},"nodeType":"YulExpressionStatement","src":"13035:50:103"},{"nodeType":"YulAssignment","src":"13094:40:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13119:6:103"},{"name":"tail_1","nodeType":"YulIdentifier","src":"13127:6:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"13102:16:103"},"nodeType":"YulFunctionCall","src":"13102:32:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13094:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13154:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13165:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13150:3:103"},"nodeType":"YulFunctionCall","src":"13150:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"13174:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13190:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13195:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13186:3:103"},"nodeType":"YulFunctionCall","src":"13186:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13199:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13182:3:103"},"nodeType":"YulFunctionCall","src":"13182:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13170:3:103"},"nodeType":"YulFunctionCall","src":"13170:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13143:6:103"},"nodeType":"YulFunctionCall","src":"13143:60:103"},"nodeType":"YulExpressionStatement","src":"13143:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13223:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13234:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13219:3:103"},"nodeType":"YulFunctionCall","src":"13219:19:103"},{"name":"value4","nodeType":"YulIdentifier","src":"13240:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13212:6:103"},"nodeType":"YulFunctionCall","src":"13212:35:103"},"nodeType":"YulExpressionStatement","src":"13212:35:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12820:9:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"12831:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"12839:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12847:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12855:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12863:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12874:4:103","type":""}],"src":"12632:621:103"},{"body":{"nodeType":"YulBlock","src":"13387:119:103","statements":[{"nodeType":"YulAssignment","src":"13397:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13409:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13420:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13405:3:103"},"nodeType":"YulFunctionCall","src":"13405:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13397:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13439:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13450:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13432:6:103"},"nodeType":"YulFunctionCall","src":"13432:25:103"},"nodeType":"YulExpressionStatement","src":"13432:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13477:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13488:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13473:3:103"},"nodeType":"YulFunctionCall","src":"13473:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13493:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13466:6:103"},"nodeType":"YulFunctionCall","src":"13466:34:103"},"nodeType":"YulExpressionStatement","src":"13466:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13348:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13359:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13367:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13378:4:103","type":""}],"src":"13258:248:103"},{"body":{"nodeType":"YulBlock","src":"13686:184:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13703:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13714:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13696:6:103"},"nodeType":"YulFunctionCall","src":"13696:25:103"},"nodeType":"YulExpressionStatement","src":"13696:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13741:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13752:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13737:3:103"},"nodeType":"YulFunctionCall","src":"13737:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13757:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13730:6:103"},"nodeType":"YulFunctionCall","src":"13730:34:103"},"nodeType":"YulExpressionStatement","src":"13730:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13784:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13795:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13780:3:103"},"nodeType":"YulFunctionCall","src":"13780:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13800:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13773:6:103"},"nodeType":"YulFunctionCall","src":"13773:30:103"},"nodeType":"YulExpressionStatement","src":"13773:30:103"},{"nodeType":"YulAssignment","src":"13812:52:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13837:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13849:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13860:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13845:3:103"},"nodeType":"YulFunctionCall","src":"13845:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"13820:16:103"},"nodeType":"YulFunctionCall","src":"13820:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13812:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13639:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13650:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13658:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13666:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13677:4:103","type":""}],"src":"13511:359:103"},{"body":{"nodeType":"YulBlock","src":"14032:162:103","statements":[{"nodeType":"YulAssignment","src":"14042:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14054:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14065:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14050:3:103"},"nodeType":"YulFunctionCall","src":"14050:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14042:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14084:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14095:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14077:6:103"},"nodeType":"YulFunctionCall","src":"14077:25:103"},"nodeType":"YulExpressionStatement","src":"14077:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14122:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14133:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14118:3:103"},"nodeType":"YulFunctionCall","src":"14118:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14138:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14111:6:103"},"nodeType":"YulFunctionCall","src":"14111:34:103"},"nodeType":"YulExpressionStatement","src":"14111:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14165:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14176:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14161:3:103"},"nodeType":"YulFunctionCall","src":"14161:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"14181:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14154:6:103"},"nodeType":"YulFunctionCall","src":"14154:34:103"},"nodeType":"YulExpressionStatement","src":"14154:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13985:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13996:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14004:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14012:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14023:4:103","type":""}],"src":"13875:319:103"},{"body":{"nodeType":"YulBlock","src":"14402:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14419:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"14430:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14412:6:103"},"nodeType":"YulFunctionCall","src":"14412:25:103"},"nodeType":"YulExpressionStatement","src":"14412:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14457:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14468:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14453:3:103"},"nodeType":"YulFunctionCall","src":"14453:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"14473:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14446:6:103"},"nodeType":"YulFunctionCall","src":"14446:34:103"},"nodeType":"YulExpressionStatement","src":"14446:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14500:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14511:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14496:3:103"},"nodeType":"YulFunctionCall","src":"14496:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"14516:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14489:6:103"},"nodeType":"YulFunctionCall","src":"14489:34:103"},"nodeType":"YulExpressionStatement","src":"14489:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14543:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14554:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14539:3:103"},"nodeType":"YulFunctionCall","src":"14539:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14559:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14532:6:103"},"nodeType":"YulFunctionCall","src":"14532:31:103"},"nodeType":"YulExpressionStatement","src":"14532:31:103"},{"nodeType":"YulAssignment","src":"14572:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"14597:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14620:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14605:3:103"},"nodeType":"YulFunctionCall","src":"14605:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"14580:16:103"},"nodeType":"YulFunctionCall","src":"14580:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14572:4:103"}]}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14347:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"14358:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"14366:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14374:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14382:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14393:4:103","type":""}],"src":"14199:432:103"},{"body":{"nodeType":"YulBlock","src":"14755:102:103","statements":[{"nodeType":"YulAssignment","src":"14765:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14777:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14788:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14773:3:103"},"nodeType":"YulFunctionCall","src":"14773:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14765:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14807:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"14822:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14838:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"14843:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14834:3:103"},"nodeType":"YulFunctionCall","src":"14834:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"14847:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"14830:3:103"},"nodeType":"YulFunctionCall","src":"14830:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14818:3:103"},"nodeType":"YulFunctionCall","src":"14818:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14800:6:103"},"nodeType":"YulFunctionCall","src":"14800:51:103"},"nodeType":"YulExpressionStatement","src":"14800:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14724:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14735:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14746:4:103","type":""}],"src":"14636:221:103"},{"body":{"nodeType":"YulBlock","src":"14980:132:103","statements":[{"nodeType":"YulAssignment","src":"14990:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15002:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15013:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14998:3:103"},"nodeType":"YulFunctionCall","src":"14998:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14990:4:103"}]},{"body":{"nodeType":"YulBlock","src":"15050:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"15052:16:103"},"nodeType":"YulFunctionCall","src":"15052:18:103"},"nodeType":"YulExpressionStatement","src":"15052:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15038:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15046:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15035:2:103"},"nodeType":"YulFunctionCall","src":"15035:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15028:6:103"},"nodeType":"YulFunctionCall","src":"15028:21:103"},"nodeType":"YulIf","src":"15025:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15088:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15099:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15081:6:103"},"nodeType":"YulFunctionCall","src":"15081:25:103"},"nodeType":"YulExpressionStatement","src":"15081:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14949:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14960:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14971:4:103","type":""}],"src":"14862:250:103"},{"body":{"nodeType":"YulBlock","src":"15234:132:103","statements":[{"nodeType":"YulAssignment","src":"15244:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15256:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15267:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15252:3:103"},"nodeType":"YulFunctionCall","src":"15252:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15244:4:103"}]},{"body":{"nodeType":"YulBlock","src":"15304:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"15306:16:103"},"nodeType":"YulFunctionCall","src":"15306:18:103"},"nodeType":"YulExpressionStatement","src":"15306:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15292:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15300:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"15289:2:103"},"nodeType":"YulFunctionCall","src":"15289:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15282:6:103"},"nodeType":"YulFunctionCall","src":"15282:21:103"},"nodeType":"YulIf","src":"15279:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15342:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"15353:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15335:6:103"},"nodeType":"YulFunctionCall","src":"15335:25:103"},"nodeType":"YulExpressionStatement","src":"15335:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15203:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15214:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15225:4:103","type":""}],"src":"15117:249:103"},{"body":{"nodeType":"YulBlock","src":"15478:87:103","statements":[{"nodeType":"YulAssignment","src":"15488:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15500:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15511:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15496:3:103"},"nodeType":"YulFunctionCall","src":"15496:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15488:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15530:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15545:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15553:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15541:3:103"},"nodeType":"YulFunctionCall","src":"15541:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15523:6:103"},"nodeType":"YulFunctionCall","src":"15523:36:103"},"nodeType":"YulExpressionStatement","src":"15523:36:103"}]},"name":"abi_encode_tuple_t_rational_0_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15447:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15458:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15469:4:103","type":""}],"src":"15371:194:103"},{"body":{"nodeType":"YulBlock","src":"15691:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15708:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15719:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15701:6:103"},"nodeType":"YulFunctionCall","src":"15701:21:103"},"nodeType":"YulExpressionStatement","src":"15701:21:103"},{"nodeType":"YulAssignment","src":"15731:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15756:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15779:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15764:3:103"},"nodeType":"YulFunctionCall","src":"15764:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"15739:16:103"},"nodeType":"YulFunctionCall","src":"15739:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15731:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15660:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15671:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15682:4:103","type":""}],"src":"15570:219:103"},{"body":{"nodeType":"YulBlock","src":"15968:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15996:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15978:6:103"},"nodeType":"YulFunctionCall","src":"15978:21:103"},"nodeType":"YulExpressionStatement","src":"15978:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16030:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16015:3:103"},"nodeType":"YulFunctionCall","src":"16015:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16035:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16008:6:103"},"nodeType":"YulFunctionCall","src":"16008:30:103"},"nodeType":"YulExpressionStatement","src":"16008:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16058:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16069:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16054:3:103"},"nodeType":"YulFunctionCall","src":"16054:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16074:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16047:6:103"},"nodeType":"YulFunctionCall","src":"16047:57:103"},"nodeType":"YulExpressionStatement","src":"16047:57:103"},{"nodeType":"YulAssignment","src":"16113:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16125:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16136:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16121:3:103"},"nodeType":"YulFunctionCall","src":"16121:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16113:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15945:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15959:4:103","type":""}],"src":"15794:351:103"},{"body":{"nodeType":"YulBlock","src":"16324:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16341:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16352:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16334:6:103"},"nodeType":"YulFunctionCall","src":"16334:21:103"},"nodeType":"YulExpressionStatement","src":"16334:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16375:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16386:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16371:3:103"},"nodeType":"YulFunctionCall","src":"16371:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16391:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16364:6:103"},"nodeType":"YulFunctionCall","src":"16364:30:103"},"nodeType":"YulExpressionStatement","src":"16364:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16414:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16425:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16410:3:103"},"nodeType":"YulFunctionCall","src":"16410:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16430:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16403:6:103"},"nodeType":"YulFunctionCall","src":"16403:62:103"},"nodeType":"YulExpressionStatement","src":"16403:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16485:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16496:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16481:3:103"},"nodeType":"YulFunctionCall","src":"16481:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16501:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16474:6:103"},"nodeType":"YulFunctionCall","src":"16474:36:103"},"nodeType":"YulExpressionStatement","src":"16474:36:103"},{"nodeType":"YulAssignment","src":"16519:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16531:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16542:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16527:3:103"},"nodeType":"YulFunctionCall","src":"16527:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16519:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16301:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16315:4:103","type":""}],"src":"16150:402:103"},{"body":{"nodeType":"YulBlock","src":"16731:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16759:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16741:6:103"},"nodeType":"YulFunctionCall","src":"16741:21:103"},"nodeType":"YulExpressionStatement","src":"16741:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16782:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16793:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16778:3:103"},"nodeType":"YulFunctionCall","src":"16778:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"16798:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16771:6:103"},"nodeType":"YulFunctionCall","src":"16771:30:103"},"nodeType":"YulExpressionStatement","src":"16771:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16821:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16832:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16817:3:103"},"nodeType":"YulFunctionCall","src":"16817:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"16837:29:103","type":"","value":"ERROR:PRD-003:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16810:6:103"},"nodeType":"YulFunctionCall","src":"16810:57:103"},"nodeType":"YulExpressionStatement","src":"16810:57:103"},{"nodeType":"YulAssignment","src":"16876:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16888:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16899:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16884:3:103"},"nodeType":"YulFunctionCall","src":"16884:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16876:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16708:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16722:4:103","type":""}],"src":"16557:351:103"},{"body":{"nodeType":"YulBlock","src":"17087:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17104:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17115:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17097:6:103"},"nodeType":"YulFunctionCall","src":"17097:21:103"},"nodeType":"YulExpressionStatement","src":"17097:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17138:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17149:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17134:3:103"},"nodeType":"YulFunctionCall","src":"17134:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17154:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17127:6:103"},"nodeType":"YulFunctionCall","src":"17127:30:103"},"nodeType":"YulExpressionStatement","src":"17127:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17177:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17188:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17173:3:103"},"nodeType":"YulFunctionCall","src":"17173:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17193:34:103","type":"","value":"ERROR:PRD-001:POLICY_OR_HOLDER_I"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17166:6:103"},"nodeType":"YulFunctionCall","src":"17166:62:103"},"nodeType":"YulExpressionStatement","src":"17166:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17248:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17259:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17244:3:103"},"nodeType":"YulFunctionCall","src":"17244:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17264:8:103","type":"","value":"NVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17237:6:103"},"nodeType":"YulFunctionCall","src":"17237:36:103"},"nodeType":"YulExpressionStatement","src":"17237:36:103"},{"nodeType":"YulAssignment","src":"17282:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17294:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17305:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17290:3:103"},"nodeType":"YulFunctionCall","src":"17290:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17282:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8c751e03794b568011bdacc7506cfc24e9e6da1a04bd63102218013a02fcc8b2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17064:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17078:4:103","type":""}],"src":"16913:402:103"},{"body":{"nodeType":"YulBlock","src":"17494:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17511:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17522:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17504:6:103"},"nodeType":"YulFunctionCall","src":"17504:21:103"},"nodeType":"YulExpressionStatement","src":"17504:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17545:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17556:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17541:3:103"},"nodeType":"YulFunctionCall","src":"17541:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"17561:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17534:6:103"},"nodeType":"YulFunctionCall","src":"17534:30:103"},"nodeType":"YulExpressionStatement","src":"17534:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17584:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17595:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17580:3:103"},"nodeType":"YulFunctionCall","src":"17580:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"17600:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17573:6:103"},"nodeType":"YulFunctionCall","src":"17573:62:103"},"nodeType":"YulExpressionStatement","src":"17573:62:103"},{"nodeType":"YulAssignment","src":"17644:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17656:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17667:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17652:3:103"},"nodeType":"YulFunctionCall","src":"17652:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17644:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17471:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17485:4:103","type":""}],"src":"17320:356:103"},{"body":{"nodeType":"YulBlock","src":"17782:76:103","statements":[{"nodeType":"YulAssignment","src":"17792:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17804:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17815:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17800:3:103"},"nodeType":"YulFunctionCall","src":"17800:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17792:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17834:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17845:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17827:6:103"},"nodeType":"YulFunctionCall","src":"17827:25:103"},"nodeType":"YulExpressionStatement","src":"17827:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17751:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17762:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17773:4:103","type":""}],"src":"17681:177:103"},{"body":{"nodeType":"YulBlock","src":"17986:135:103","statements":[{"nodeType":"YulAssignment","src":"17996:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18008:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18019:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18004:3:103"},"nodeType":"YulFunctionCall","src":"18004:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17996:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18038:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18049:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18031:6:103"},"nodeType":"YulFunctionCall","src":"18031:25:103"},"nodeType":"YulExpressionStatement","src":"18031:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18076:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18087:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18072:3:103"},"nodeType":"YulFunctionCall","src":"18072:18:103"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18106:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18099:6:103"},"nodeType":"YulFunctionCall","src":"18099:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"18092:6:103"},"nodeType":"YulFunctionCall","src":"18092:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18065:6:103"},"nodeType":"YulFunctionCall","src":"18065:50:103"},"nodeType":"YulExpressionStatement","src":"18065:50:103"}]},"name":"abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17947:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17958:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17966:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17977:4:103","type":""}],"src":"17863:258:103"},{"body":{"nodeType":"YulBlock","src":"18311:351:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18328:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18339:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18321:6:103"},"nodeType":"YulFunctionCall","src":"18321:25:103"},"nodeType":"YulExpressionStatement","src":"18321:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18366:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18377:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18362:3:103"},"nodeType":"YulFunctionCall","src":"18362:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"18382:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18355:6:103"},"nodeType":"YulFunctionCall","src":"18355:34:103"},"nodeType":"YulExpressionStatement","src":"18355:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18409:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18420:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18405:3:103"},"nodeType":"YulFunctionCall","src":"18405:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"18425:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18398:6:103"},"nodeType":"YulFunctionCall","src":"18398:30:103"},"nodeType":"YulExpressionStatement","src":"18398:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18448:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18459:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18444:3:103"},"nodeType":"YulFunctionCall","src":"18444:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"18464:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18437:6:103"},"nodeType":"YulFunctionCall","src":"18437:34:103"},"nodeType":"YulExpressionStatement","src":"18437:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18508:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18493:3:103"},"nodeType":"YulFunctionCall","src":"18493:19:103"},{"name":"value2","nodeType":"YulIdentifier","src":"18514:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"18522:6:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"18480:12:103"},"nodeType":"YulFunctionCall","src":"18480:49:103"},"nodeType":"YulExpressionStatement","src":"18480:49:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18553:9:103"},{"name":"value3","nodeType":"YulIdentifier","src":"18564:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18549:3:103"},"nodeType":"YulFunctionCall","src":"18549:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"18573:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18545:3:103"},"nodeType":"YulFunctionCall","src":"18545:32:103"},{"name":"tail","nodeType":"YulIdentifier","src":"18579:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18538:6:103"},"nodeType":"YulFunctionCall","src":"18538:46:103"},"nodeType":"YulExpressionStatement","src":"18538:46:103"},{"nodeType":"YulAssignment","src":"18593:63:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18609:9:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"18628:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18636:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18624:3:103"},"nodeType":"YulFunctionCall","src":"18624:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18645:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18641:3:103"},"nodeType":"YulFunctionCall","src":"18641:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18620:3:103"},"nodeType":"YulFunctionCall","src":"18620:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18605:3:103"},"nodeType":"YulFunctionCall","src":"18605:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"18652:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18601:3:103"},"nodeType":"YulFunctionCall","src":"18601:55:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18593:4:103"}]}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_bytes_calldata_ptr__to_t_uint256_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18256:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"18267:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"18275:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18283:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18291:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18302:4:103","type":""}],"src":"18126:536:103"},{"body":{"nodeType":"YulBlock","src":"18796:119:103","statements":[{"nodeType":"YulAssignment","src":"18806:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18818:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18829:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18814:3:103"},"nodeType":"YulFunctionCall","src":"18814:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18806:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18848:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18859:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18841:6:103"},"nodeType":"YulFunctionCall","src":"18841:25:103"},"nodeType":"YulExpressionStatement","src":"18841:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18886:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18897:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18882:3:103"},"nodeType":"YulFunctionCall","src":"18882:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"18902:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18875:6:103"},"nodeType":"YulFunctionCall","src":"18875:34:103"},"nodeType":"YulExpressionStatement","src":"18875:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18757:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18768:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18776:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18787:4:103","type":""}],"src":"18667:248:103"},{"body":{"nodeType":"YulBlock","src":"18965:230:103","statements":[{"nodeType":"YulAssignment","src":"18975:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18991:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18985:5:103"},"nodeType":"YulFunctionCall","src":"18985:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18975:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"19003:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"19025:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"19041:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"19047:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19037:3:103"},"nodeType":"YulFunctionCall","src":"19037:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19056:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19052:3:103"},"nodeType":"YulFunctionCall","src":"19052:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19033:3:103"},"nodeType":"YulFunctionCall","src":"19033:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19021:3:103"},"nodeType":"YulFunctionCall","src":"19021:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"19007:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"19136:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"19138:16:103"},"nodeType":"YulFunctionCall","src":"19138:18:103"},"nodeType":"YulExpressionStatement","src":"19138:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"19079:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"19091:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19076:2:103"},"nodeType":"YulFunctionCall","src":"19076:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"19115:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"19127:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19112:2:103"},"nodeType":"YulFunctionCall","src":"19112:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"19073:2:103"},"nodeType":"YulFunctionCall","src":"19073:62:103"},"nodeType":"YulIf","src":"19070:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19174:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"19178:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19167:6:103"},"nodeType":"YulFunctionCall","src":"19167:22:103"},"nodeType":"YulExpressionStatement","src":"19167:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"18945:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"18954:6:103","type":""}],"src":"18920:275:103"},{"body":{"nodeType":"YulBlock","src":"19249:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"19271:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19273:16:103"},"nodeType":"YulFunctionCall","src":"19273:18:103"},"nodeType":"YulExpressionStatement","src":"19273:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19265:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"19268:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19262:2:103"},"nodeType":"YulFunctionCall","src":"19262:8:103"},"nodeType":"YulIf","src":"19259:2:103"},{"nodeType":"YulAssignment","src":"19302:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19314:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"19317:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19310:3:103"},"nodeType":"YulFunctionCall","src":"19310:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"19302:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19231:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"19234:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"19240:4:103","type":""}],"src":"19200:125:103"},{"body":{"nodeType":"YulBlock","src":"19383:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"19393:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"19402:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"19397:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"19462:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19487:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"19492:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19483:3:103"},"nodeType":"YulFunctionCall","src":"19483:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"19506:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"19511:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19502:3:103"},"nodeType":"YulFunctionCall","src":"19502:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19496:5:103"},"nodeType":"YulFunctionCall","src":"19496:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19476:6:103"},"nodeType":"YulFunctionCall","src":"19476:39:103"},"nodeType":"YulExpressionStatement","src":"19476:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19423:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"19426:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19420:2:103"},"nodeType":"YulFunctionCall","src":"19420:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"19434:19:103","statements":[{"nodeType":"YulAssignment","src":"19436:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19445:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"19448:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19441:3:103"},"nodeType":"YulFunctionCall","src":"19441:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"19436:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"19416:3:103","statements":[]},"src":"19412:113:103"},{"body":{"nodeType":"YulBlock","src":"19551:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19564:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"19569:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19560:3:103"},"nodeType":"YulFunctionCall","src":"19560:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"19578:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19553:6:103"},"nodeType":"YulFunctionCall","src":"19553:27:103"},"nodeType":"YulExpressionStatement","src":"19553:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19540:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"19543:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19537:2:103"},"nodeType":"YulFunctionCall","src":"19537:13:103"},"nodeType":"YulIf","src":"19534:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"19361:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"19366:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"19371:6:103","type":""}],"src":"19330:258:103"},{"body":{"nodeType":"YulBlock","src":"19640:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"19671:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19673:16:103"},"nodeType":"YulFunctionCall","src":"19673:18:103"},"nodeType":"YulExpressionStatement","src":"19673:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19656:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19667:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19663:3:103"},"nodeType":"YulFunctionCall","src":"19663:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"19653:2:103"},"nodeType":"YulFunctionCall","src":"19653:17:103"},"nodeType":"YulIf","src":"19650:2:103"},{"nodeType":"YulAssignment","src":"19702:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19713:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"19720:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19709:3:103"},"nodeType":"YulFunctionCall","src":"19709:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19702:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19622:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"19632:3:103","type":""}],"src":"19593:135:103"},{"body":{"nodeType":"YulBlock","src":"19765:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19782:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19789:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19794:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19785:3:103"},"nodeType":"YulFunctionCall","src":"19785:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19775:6:103"},"nodeType":"YulFunctionCall","src":"19775:31:103"},"nodeType":"YulExpressionStatement","src":"19775:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19822:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"19825:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19815:6:103"},"nodeType":"YulFunctionCall","src":"19815:15:103"},"nodeType":"YulExpressionStatement","src":"19815:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19846:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19849:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19839:6:103"},"nodeType":"YulFunctionCall","src":"19839:15:103"},"nodeType":"YulExpressionStatement","src":"19839:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"19733:127:103"},{"body":{"nodeType":"YulBlock","src":"19897:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19914:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19921:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19926:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19917:3:103"},"nodeType":"YulFunctionCall","src":"19917:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19907:6:103"},"nodeType":"YulFunctionCall","src":"19907:31:103"},"nodeType":"YulExpressionStatement","src":"19907:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19954:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"19957:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19947:6:103"},"nodeType":"YulFunctionCall","src":"19947:15:103"},"nodeType":"YulExpressionStatement","src":"19947:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19978:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"19981:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19971:6:103"},"nodeType":"YulFunctionCall","src":"19971:15:103"},"nodeType":"YulExpressionStatement","src":"19971:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"19865:127:103"},{"body":{"nodeType":"YulBlock","src":"20029:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20046:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20053:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"20058:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20049:3:103"},"nodeType":"YulFunctionCall","src":"20049:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20039:6:103"},"nodeType":"YulFunctionCall","src":"20039:31:103"},"nodeType":"YulExpressionStatement","src":"20039:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20086:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20089:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20079:6:103"},"nodeType":"YulFunctionCall","src":"20079:15:103"},"nodeType":"YulExpressionStatement","src":"20079:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20110:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20113:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20103:6:103"},"nodeType":"YulFunctionCall","src":"20103:15:103"},"nodeType":"YulExpressionStatement","src":"20103:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"19997:127:103"},{"body":{"nodeType":"YulBlock","src":"20174:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"20238:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20247:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20250:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20240:6:103"},"nodeType":"YulFunctionCall","src":"20240:12:103"},"nodeType":"YulExpressionStatement","src":"20240:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20197:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20208:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20223:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"20228:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20219:3:103"},"nodeType":"YulFunctionCall","src":"20219:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"20232:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20215:3:103"},"nodeType":"YulFunctionCall","src":"20215:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20204:3:103"},"nodeType":"YulFunctionCall","src":"20204:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"20194:2:103"},"nodeType":"YulFunctionCall","src":"20194:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20187:6:103"},"nodeType":"YulFunctionCall","src":"20187:50:103"},"nodeType":"YulIf","src":"20184:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20163:5:103","type":""}],"src":"20129:131:103"},{"body":{"nodeType":"YulBlock","src":"20307:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"20361:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20370:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20373:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20363:6:103"},"nodeType":"YulFunctionCall","src":"20363:12:103"},"nodeType":"YulExpressionStatement","src":"20363:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20330:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20351:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20344:6:103"},"nodeType":"YulFunctionCall","src":"20344:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20337:6:103"},"nodeType":"YulFunctionCall","src":"20337:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"20327:2:103"},"nodeType":"YulFunctionCall","src":"20327:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20320:6:103"},"nodeType":"YulFunctionCall","src":"20320:40:103"},"nodeType":"YulIf","src":"20317:2:103"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20296:5:103","type":""}],"src":"20265:118:103"},{"body":{"nodeType":"YulBlock","src":"20447:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"20481:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20490:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20493:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20483:6:103"},"nodeType":"YulFunctionCall","src":"20483:12:103"},"nodeType":"YulExpressionStatement","src":"20483:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20470:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"20477:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20467:2:103"},"nodeType":"YulFunctionCall","src":"20467:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20460:6:103"},"nodeType":"YulFunctionCall","src":"20460:20:103"},"nodeType":"YulIf","src":"20457:2:103"}]},"name":"validator_revert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20436:5:103","type":""}],"src":"20388:115:103"}]},"contents":"{\n { }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_PolicyFlowState_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(lt(value, 3)) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_payablet_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let offset_1 := calldataload(add(headStart, 128))\n if gt(offset_1, _1) { revert(value5, value5) }\n let value5_1, value6_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value5 := value5_1\n value6 := value6_1\n }\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_decode_tuple_t_boolt_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n value1 := mload(add(headStart, 32))\n value2 := mload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Claim_$5296_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Metadata_$5248_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_address(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), abi_decode_enum_PolicyFlowState_fromMemory(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Policy_$5282_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 288\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let value := allocate_memory(_1)\n mstore(value, abi_decode_enum_PolicyFlowState_fromMemory(headStart))\n mstore(add(value, 32), mload(add(headStart, 32)))\n mstore(add(value, 64), mload(add(headStart, 64)))\n mstore(add(value, 96), mload(add(headStart, 96)))\n mstore(add(value, 128), mload(add(headStart, 128)))\n mstore(add(value, 160), mload(add(headStart, 160)))\n mstore(add(value, 192), mload(add(headStart, 192)))\n mstore(add(value, 224), mload(add(headStart, 224)))\n let _2 := 256\n mstore(add(value, _2), mload(add(headStart, _2)))\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_bytes32t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256t_bytes_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value2, value2) }\n let value2_1, value3_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_address_t_uint256_t_uint256_t_bytes_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 160)\n let tail_1 := abi_encode_bytes(value3, add(headStart, 160))\n mstore(add(headStart, 128), sub(tail_1, headStart))\n tail := abi_encode_bytes(value4, tail_1)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_uint256__to_t_bool_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__to_t_bytes32_t_bytes_memory_ptr_t_string_memory_ptr_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 160)\n let tail_1 := abi_encode_bytes(value1, add(headStart, 160))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_bytes(value2, tail_1)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_bytes32_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_rational_0_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2d47153b44a132de51be507c0cde899d6ab2b1668d3efae9650b7c79b6fd010f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:PRD-003:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8c751e03794b568011bdacc7506cfc24e9e6da1a04bd63102218013a02fcc8b2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:PRD-001:POLICY_OR_HOLDER_I\")\n mstore(add(headStart, 96), \"NVALID\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), iszero(iszero(value1)))\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_bytes_calldata_ptr__to_t_uint256_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n mstore(add(headStart, 96), value3)\n calldatacopy(add(headStart, 128), value2, value3)\n mstore(add(add(headStart, value3), 128), tail)\n tail := add(add(headStart, and(add(value3, 31), not(31))), 128)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function validator_revert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061036b5760003560e01c806370d2fe53116101c6578063b9ea8d66116100f7578063e0815f0d11610095578063ec8b4a9a1161006f578063ec8b4a9a146108f7578063f2fde38b1461092c578063f4fdc1fa1461094c578063fe64372b1461096a5761036b565b8063e0815f0d146108af578063e3ebdea5146108c4578063e6f95edd146108e45761036b565b8063c6441798116100d1578063c64417981461085a578063d0e0ba951461087a578063d73cd9921461061e578063dcc59b6f1461089a5761036b565b8063b9ea8d6614610808578063bd1fe5d014610845578063be169e7e1461061e5761036b565b80638da5cb5b11610164578063a18f5ae21161013e578063a18f5ae21461061e578063ab72c4e1146107bb578063b3fca9bd1461061e578063b75c7dc6146107e85761036b565b80638da5cb5b1461078857806394f64ff41461058a5780639a82f890146107a65761036b565b80637ce5e82f116101a05780637ce5e82f1461071e5780637f29dba214610733578063893d20e8146107535780638cc7d3d1146107685761036b565b806370d2fe53146106d4578063715018a6146106e957806379ed5209146106fe5761036b565b806339c79e0c116102a057806359dacc6a1161023e5780635e61aa63116102185780635e61aa631461066c578063637d08f41461068c578063638ce0ba146106aa578063702e7e1f146106bf5761036b565b806359dacc6a1461061e5780635ab1bd53146106335780635d1ca631146106575761036b565b80633ec92bda1161027a5780633ec92bda1461058a5780634703dc8d146105be5780634cda0de9146105de5780634e02c63f146105fe5761036b565b806339c79e0c1461056a57806339cf5e161461058a5780633dcabeab146105ab5761036b565b806321df0da71161030d57806329abdbd7116102e757806329abdbd7146104ea5780632b1994ba1461050a5780632b6778411461052a57806330a73da51461054a5761036b565b806321df0da71461044c578063232d346a1461047e578063258d560c146104c55761036b565b806317d7de7c1161034957806317d7de7c146103de5780631865c57d146103f35780631b07b17f146104155780631b867c63146104375761036b565b806303f0ac1a1461037057806309128d831461039657806315dae03e146103be575b600080fd5b61038361037e366004612594565b61098a565b6040519081526020015b60405180910390f35b3480156103a257600080fd5b5061038370506f6c69637944656661756c74466c6f7760781b81565b3480156103ca57600080fd5b5060035460ff1660405161038d9190612732565b3480156103ea57600080fd5b50600154610383565b3480156103ff57600080fd5b50610408610a47565b60405161038d9190612718565b34801561042157600080fd5b506104356104303660046122d7565b610acd565b005b34801561044357600080fd5b50610435610b22565b34801561045857600080fd5b506008546001600160a01b03165b6040516001600160a01b03909116815260200161038d565b34801561048a57600080fd5b506104b86040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b81525081565b60405161038d9190612746565b3480156104d157600080fd5b506104da610b7a565b604051901515815260200161038d565b3480156104f657600080fd5b506103836105053660046122d7565b610baa565b34801561051657600080fd5b50610383610525366004612328565b610bbf565b34801561053657600080fd5b50610383610545366004612307565b610bfc565b34801561055657600080fd5b50610435610565366004612328565b610d56565b34801561057657600080fd5b506104356105853660046122d7565b610d66565b34801561059657600080fd5b506040805160208101909152600081526104b8565b6103836105b93660046121d6565b610d77565b3480156105ca57600080fd5b506103836105d9366004612328565b610e79565b3480156105ea57600080fd5b506104356105f9366004612307565b610eb3565b34801561060a57600080fd5b50610435610619366004612328565b610ec5565b34801561062a57600080fd5b50610435610ed8565b34801561063f57600080fd5b5061046660035461010090046001600160a01b031690565b34801561066357600080fd5b50600254610383565b34801561067857600080fd5b50610435610687366004612520565b610f22565b34801561069857600080fd5b506007546001600160a01b0316610466565b3480156106b657600080fd5b50610435611086565b3480156106cb57600080fd5b50601054610383565b3480156106e057600080fd5b50600954610383565b3480156106f557600080fd5b506104356110d3565b34801561070a57600080fd5b50610383610719366004612307565b6110e5565b34801561072a57600080fd5b50600f54610383565b34801561073f57600080fd5b5061043561074e366004612307565b6111df565b34801561075f57600080fd5b506104666111f1565b34801561077457600080fd5b506104356107833660046122d7565b611203565b34801561079457600080fd5b506000546001600160a01b0316610466565b3480156107b257600080fd5b506104da611214565b3480156107c757600080fd5b506103836107d63660046122d7565b60009081526012602052604090205490565b3480156107f457600080fd5b506104356108033660046122d7565b61121c565b34801561081457600080fd5b506108286108233660046122d7565b6112d5565b60408051931515845260208401929092529082015260600161038d565b34801561085157600080fd5b506104356112f8565b34801561086657600080fd5b506104356108753660046122d7565b611345565b34801561088657600080fd5b506104356108953660046122d7565b611356565b3480156108a657600080fd5b50601154610383565b3480156108bb57600080fd5b506104da6113a0565b3480156108d057600080fd5b506108286108df366004612307565b6113a9565b6103836108f2366004612594565b6113ce565b34801561090357600080fd5b50610917610912366004612307565b6114d4565b6040805192835260208301919091520161038d565b34801561093857600080fd5b5061043561094736600461219e565b611634565b34801561095857600080fd5b506104356109673660046122d7565b50565b34801561097657600080fd5b50610435610985366004612307565b6116aa565b600080339050610a0681898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f80546001810182556000919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020181905598975050505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190612353565b905090565b610ad5611757565b6000610ae0826117b1565b90508015610b1e57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b5050565b610b376810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610b705760405162461bcd60e51b8152600401610b6790612759565b60405180910390fd5b610b786118b8565b565b600060025b60035460ff166002811115610ba457634e487b7160e01b600052602160045260246000fd5b14905090565b6000818152601360205260409020545b919050565b6000610bc9611757565b6040805160006020820152610bf491869186918691015b6040516020818303038152906040526118f5565b949350505050565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c81919081019061241d565b519050336001600160a01b03821614610cac5760405162461bcd60e51b8152600401610b6790612790565b60118054906000610cbc83612887565b9190505550610cdb858560405180602001604052806000815250611987565b600086815260126020908152604080832084905560115481519283015260019082018190529295506060016040516020818303038152906040529050610d4b87826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b505050505092915050565b610d61838383611a47565b505050565b610d6e611757565b61096781611ab9565b6000610def88888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a91508990819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80201829055909150610e2f826117b1565b90508015610e6d57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b50979650505050505050565b6000610e83611757565b6040805160006020820152610e9e9186918691869101610be0565b9050610eaa8482611b1b565b50509392505050565b610ebb611757565b610b1e8282611baf565b610ecd611757565b610d61838383611c11565b610eed6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610f1d5760405162461bcd60e51b8152600401610b6790612759565b610b78565b610f3364517565727960d81b611836565b6001600160a01b0316336001600160a01b031614610f935760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610b67565b7f76f1662da8419575225dd3addaf14184129f5230097a533de445a2d5688a399e84848484604051610fc894939291906127d6565b60405180910390a16000610fde82840184612269565b600085815260126020526040902054909150811561107457610fff85611c50565b50600061100c8683611d0a565b602081015190915061101f878483611c11565b604080516000602080830182905283518084039091018152918301909252829161104b8a8785856118f5565b60008b815260136020526040902081905590506110688a82611b1b565b5050505050505061107e565b61107e8582611baf565b505050505050565b61109b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b0316146110cb5760405162461bcd60e51b8152600401610b6790612759565b610b78611dd2565b6110db611757565b610b786000611dfc565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116a919081019061241d565b519050336001600160a01b038216146111955760405162461bcd60e51b8152600401610b6790612790565b601180549060006111a583612887565b91905055506111c4858560405180602001604052806000815250611987565b60009586526012602052604090952085905550929392505050565b6111e7611757565b610b1e8282611e4c565b600080546001600160a01b0316610ac8565b61120b611757565b61096781611e84565b600080610b7f565b600b5460405163296586d360e21b81526004810183905282916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561126557600080fd5b505afa158015611279573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112a1919081019061241d565b519050336001600160a01b038216146112cc5760405162461bcd60e51b8152600401610b6790612790565b610d6183611eb5565b60008060006112e2611757565b6112eb84611ee6565b9196909550909350915050565b61130d6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461133d5760405162461bcd60e51b8152600401610b6790612759565b610b78611f34565b61134d611757565b61096781611f5e565b61136b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461139b5760405162461bcd60e51b8152600401610b6790612759565b600255565b60006001610b7f565b60008060006113b6611757565b6113c08585611f8f565b919790965090945092505050565b60008033905061144a81898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020182905590925061148a836117b1565b905080156114c857601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018390555b50509695505050505050565b600b5460405163296586d360e21b8152600481018490526000918291859183916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561152157600080fd5b505afa158015611535573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261155d919081019061241d565b519050336001600160a01b038216146115885760405162461bcd60e51b8152600401610b6790612790565b6011805490600061159883612887565b91905055506115b7868660405180602001604052806000815250611987565b60008781526012602090815260408083208490556011548151928301528101829052919550908190606001604051602081830303815290604052905061162788826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b9450505050509250929050565b61163c611757565b6001600160a01b0381166116a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b67565b61096781611dfc565b6116b2611757565b6116bc8282611b1b565b50505050565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a906116fb9089908990899089908990600401612640565b602060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d91906122ef565b9695505050505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b67565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156117f857600080fd5b505af115801561180c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118309190612285565b92915050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561188057600080fd5b505afa158015611894573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183091906121ba565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616118e260025490565b60405190815260200160405180910390a1565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d78469061192c9088908890889088906004016126f3565b602060405180830381600087803b15801561194657600080fd5b505af115801561195a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197e91906122ef565b95945050505050565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d15906119bc908790879087906004016126d4565b602060405180830381600087803b1580156119d657600080fd5b505af11580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf491906122ef565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f229061192c908890889088903090899060040161268b565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064015b600060405180830381600087803b158015611a9c57600080fd5b505af1158015611ab0573d6000803e3d6000fd5b50505050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c906024015b600060405180830381600087803b158015611b0057600080fd5b505af1158015611b14573d6000803e3d6000fd5b5050505050565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b158015611b6c57600080fd5b505af1158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190612571565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b158015611bfd57600080fd5b505af115801561107e573d6000803e3d6000fd5b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f90606401611a82565b611c8a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118309190810190612372565b611d446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051637f22c2d960e01b815260048101859052602481018490526001600160a01b0390911690637f22c2d99060440160006040518083038186803b158015611d8f57600080fd5b505afa158015611da3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dcb9190810190612372565b9392505050565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96118e260025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba290604401611be3565b600a54604051638cc7d3d160e01b8152600481018390526001600160a01b0390911690638cc7d3d190602401611ae6565b600a54604051635bae3ee360e11b8152600481018390526001600160a01b039091169063b75c7dc690602401611ae6565b600080600080611ef585612019565b9050806020015181604001511015611f2c57611f248582604001518360200151611f1f9190612844565b611f8f565b919550935091505b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556118e260025490565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c644179890602401611ae6565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b158015611fe157600080fd5b505af1158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c091906122a1565b612069604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b1580156120ae57600080fd5b505afa1580156120c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611830919061249b565b60008083601f8401126120f7578182fd5b50813567ffffffffffffffff81111561210e578182fd5b60208301915083602082850101111561212657600080fd5b9250929050565b600082601f83011261213d578081fd5b815167ffffffffffffffff811115612157576121576128ce565b61216a601f8201601f1916602001612813565b81815284602083860101111561217e578283fd5b610bf482602083016020870161285b565b805160038110610bba57600080fd5b6000602082840312156121af578081fd5b8135611dcb816128e4565b6000602082840312156121cb578081fd5b8151611dcb816128e4565b600080600080600080600060a0888a0312156121f0578283fd5b87356121fb816128e4565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612225578485fd5b6122318b838c016120e6565b909650945060808a0135915080821115612249578384fd5b506122568a828b016120e6565b989b979a50959850939692959293505050565b60006020828403121561227a578081fd5b8135611dcb816128f9565b600060208284031215612296578081fd5b8151611dcb816128f9565b6000806000606084860312156122b5578081fd5b83516122c0816128f9565b602085015160409095015190969495509392505050565b6000602082840312156122e8578081fd5b5035919050565b600060208284031215612300578081fd5b5051919050565b60008060408385031215612319578182fd5b50508035926020909101359150565b60008060006060848603121561233c578081fd5b505081359360208301359350604090920135919050565b600060208284031215612364578081fd5b815160078110611dcb578182fd5b600060208284031215612383578081fd5b815167ffffffffffffffff8082111561239a578283fd5b9083019060c082860312156123ad578283fd5b6123b760c0612813565b82516123c281612907565b8082525060208301516020820152604083015160408201526060830151828111156123eb578485fd5b6123f78782860161212d565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561242e578081fd5b815167ffffffffffffffff80821115612445578283fd5b9083019060c08286031215612458578283fd5b61246260c0612813565b825161246d816128e4565b8152602083810151908201526124856040840161218f565b60408201526060830151828111156123eb578485fd5b60006101208083850312156124ae578182fd5b6124b781612813565b90506124c28361218f565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215612535578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612559578283fd5b612565878288016120e6565b95989497509550505050565b60008060408385031215612583578182fd5b505080516020909101519092909150565b600080600080600080608087890312156125ac578384fd5b8635955060208701359450604087013567ffffffffffffffff808211156125d1578586fd5b6125dd8a838b016120e6565b909650945060608901359150808211156125f5578384fd5b5061260289828a016120e6565b979a9699509497509295939492505050565b6000815180845261262c81602086016020860161285b565b601f01601f19169290920160200192915050565b600060018060a01b038716825285602083015284604083015260a0606083015261266d60a0830185612614565b828103608084015261267f8185612614565b98975050505050505050565b600086825260a060208301526126a460a0830187612614565b82810360408401526126b68187612614565b6001600160a01b039590951660608401525050608001529392505050565b60008482528360208301526060604083015261197e6060830184612614565b60008582528460208301528360408301526080606083015261174d6080830184612614565b602081016007831061272c5761272c6128b8565b91905290565b602081016003831061272c5761272c6128b8565b600060208252611dcb6020830184612614565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60208082526026908201527f4552524f523a5052442d3030313a504f4c4943595f4f525f484f4c4445525f4960408201526513959053125160d21b606082015260800190565b60008582528460208301526060604083015282606083015282846080840137818301608090810191909152601f909201601f191601019392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561283c5761283c6128ce565b604052919050565b600082821015612856576128566128a2565b500390565b60005b8381101561287657818101518382015260200161285e565b838111156116bc5750506000910152565b600060001982141561289b5761289b6128a2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096757600080fd5b801515811461096757600080fd5b6004811061096757600080fdfea2646970667358221220c8724aa3eebe95b1d2b318ce70a883306561edfcdce90d9ce1e8ee50df556e2864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70D2FE53 GT PUSH2 0x1C6 JUMPI DUP1 PUSH4 0xB9EA8D66 GT PUSH2 0xF7 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x95 JUMPI DUP1 PUSH4 0xEC8B4A9A GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xEC8B4A9A EQ PUSH2 0x8F7 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x92C JUMPI DUP1 PUSH4 0xF4FDC1FA EQ PUSH2 0x94C JUMPI DUP1 PUSH4 0xFE64372B EQ PUSH2 0x96A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x8AF JUMPI DUP1 PUSH4 0xE3EBDEA5 EQ PUSH2 0x8C4 JUMPI DUP1 PUSH4 0xE6F95EDD EQ PUSH2 0x8E4 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xC6441798 GT PUSH2 0xD1 JUMPI DUP1 PUSH4 0xC6441798 EQ PUSH2 0x85A JUMPI DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x87A JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xDCC59B6F EQ PUSH2 0x89A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0xB9EA8D66 EQ PUSH2 0x808 JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x845 JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x61E JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x164 JUMPI DUP1 PUSH4 0xA18F5AE2 GT PUSH2 0x13E JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xAB72C4E1 EQ PUSH2 0x7BB JUMPI DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xB75C7DC6 EQ PUSH2 0x7E8 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x788 JUMPI DUP1 PUSH4 0x94F64FF4 EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x7A6 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x7CE5E82F GT PUSH2 0x1A0 JUMPI DUP1 PUSH4 0x7CE5E82F EQ PUSH2 0x71E JUMPI DUP1 PUSH4 0x7F29DBA2 EQ PUSH2 0x733 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x753 JUMPI DUP1 PUSH4 0x8CC7D3D1 EQ PUSH2 0x768 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x70D2FE53 EQ PUSH2 0x6D4 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x6E9 JUMPI DUP1 PUSH4 0x79ED5209 EQ PUSH2 0x6FE JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x39C79E0C GT PUSH2 0x2A0 JUMPI DUP1 PUSH4 0x59DACC6A GT PUSH2 0x23E JUMPI DUP1 PUSH4 0x5E61AA63 GT PUSH2 0x218 JUMPI DUP1 PUSH4 0x5E61AA63 EQ PUSH2 0x66C JUMPI DUP1 PUSH4 0x637D08F4 EQ PUSH2 0x68C JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x6AA JUMPI DUP1 PUSH4 0x702E7E1F EQ PUSH2 0x6BF JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x633 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x657 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x3EC92BDA GT PUSH2 0x27A JUMPI DUP1 PUSH4 0x3EC92BDA EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x4703DC8D EQ PUSH2 0x5BE JUMPI DUP1 PUSH4 0x4CDA0DE9 EQ PUSH2 0x5DE JUMPI DUP1 PUSH4 0x4E02C63F EQ PUSH2 0x5FE JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x39C79E0C EQ PUSH2 0x56A JUMPI DUP1 PUSH4 0x39CF5E16 EQ PUSH2 0x58A JUMPI DUP1 PUSH4 0x3DCABEAB EQ PUSH2 0x5AB JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x21DF0DA7 GT PUSH2 0x30D JUMPI DUP1 PUSH4 0x29ABDBD7 GT PUSH2 0x2E7 JUMPI DUP1 PUSH4 0x29ABDBD7 EQ PUSH2 0x4EA JUMPI DUP1 PUSH4 0x2B1994BA EQ PUSH2 0x50A JUMPI DUP1 PUSH4 0x2B677841 EQ PUSH2 0x52A JUMPI DUP1 PUSH4 0x30A73DA5 EQ PUSH2 0x54A JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x21DF0DA7 EQ PUSH2 0x44C JUMPI DUP1 PUSH4 0x232D346A EQ PUSH2 0x47E JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x4C5 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x17D7DE7C GT PUSH2 0x349 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x1865C57D EQ PUSH2 0x3F3 JUMPI DUP1 PUSH4 0x1B07B17F EQ PUSH2 0x415 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x437 JUMPI PUSH2 0x36B JUMP JUMPDEST DUP1 PUSH4 0x3F0AC1A EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0x9128D83 EQ PUSH2 0x396 JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x3BE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x383 PUSH2 0x37E CALLDATASIZE PUSH1 0x4 PUSH2 0x2594 JUMP JUMPDEST PUSH2 0x98A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH17 0x506F6C69637944656661756C74466C6F77 PUSH1 0x78 SHL DUP2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2732 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH2 0xA47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2718 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x421 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x430 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xACD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x443 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0xB22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x458 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x48A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4B8 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x2746 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0xB7A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x505 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x516 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x525 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xBBF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x536 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x545 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0xBFC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x556 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x565 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xD56 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x576 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x585 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0xD66 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x596 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH2 0x4B8 JUMP JUMPDEST PUSH2 0x383 PUSH2 0x5B9 CALLDATASIZE PUSH1 0x4 PUSH2 0x21D6 JUMP JUMPDEST PUSH2 0xD77 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x5D9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xE79 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x5F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0xEB3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x619 CALLDATASIZE PUSH1 0x4 PUSH2 0x2328 JUMP JUMPDEST PUSH2 0xEC5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x62A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0xED8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x63F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x663 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x2 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x678 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x687 CALLDATASIZE PUSH1 0x4 PUSH2 0x2520 JUMP JUMPDEST PUSH2 0xF22 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x698 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x466 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x1086 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x10 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x9 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x6F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x10D3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x719 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x10E5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x72A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xF SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x73F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x74E CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x11DF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x75F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x466 PUSH2 0x11F1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x774 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x783 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1203 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x794 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x466 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0x1214 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x383 PUSH2 0x7D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x803 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x121C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x814 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x828 PUSH2 0x823 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x12D5 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP4 ISZERO ISZERO DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x12F8 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x866 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x875 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1345 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x895 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST PUSH2 0x1356 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x11 SLOAD PUSH2 0x383 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4DA PUSH2 0x13A0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x828 PUSH2 0x8DF CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x383 PUSH2 0x8F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2594 JUMP JUMPDEST PUSH2 0x13CE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x903 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x917 PUSH2 0x912 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x14D4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE ADD PUSH2 0x38D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x938 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x947 CALLDATASIZE PUSH1 0x4 PUSH2 0x219E JUMP JUMPDEST PUSH2 0x1634 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x958 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x967 CALLDATASIZE PUSH1 0x4 PUSH2 0x22D7 JUMP JUMPDEST POP JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x976 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x435 PUSH2 0x985 CALLDATASIZE PUSH1 0x4 PUSH2 0x2307 JUMP JUMPDEST PUSH2 0x16AA JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0xA06 DUP2 DUP10 DUP10 DUP10 DUP10 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE SWAP3 POP DUP12 SWAP2 POP DUP11 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP2 SWAP1 SSTORE SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xAA4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC8 SWAP2 SWAP1 PUSH2 0x2353 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xAD5 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAE0 DUP3 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xB1E JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP3 SWAP1 SSTORE JUMPDEST POP POP JUMP JUMPDEST PUSH2 0xB37 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xB70 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB78 PUSH2 0x18B8 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xBA4 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC9 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xBF4 SWAP2 DUP7 SWAP2 DUP7 SWAP2 DUP7 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x18F5 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC59 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC81 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xCAC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xCBC DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0xCDB DUP6 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x11 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD MSTORE PUSH1 0x1 SWAP1 DUP3 ADD DUP2 SWAP1 MSTORE SWAP3 SWAP6 POP PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0xD4B DUP8 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xD SLOAD PUSH2 0x1A0E JUMP JUMPDEST POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD61 DUP4 DUP4 DUP4 PUSH2 0x1A47 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0xD6E PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1AB9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDEF DUP9 DUP9 DUP9 DUP9 DUP9 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP13 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP11 DUP2 MSTORE SWAP3 POP DUP11 SWAP2 POP DUP10 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP3 SWAP1 SSTORE SWAP1 SWAP2 POP PUSH2 0xE2F DUP3 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0xE6D JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP3 SWAP1 SSTORE JUMPDEST POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE83 PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0xE9E SWAP2 DUP7 SWAP2 DUP7 SWAP2 DUP7 SWAP2 ADD PUSH2 0xBE0 JUMP JUMPDEST SWAP1 POP PUSH2 0xEAA DUP5 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xEBB PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB1E DUP3 DUP3 PUSH2 0x1BAF JUMP JUMPDEST PUSH2 0xECD PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xD61 DUP4 DUP4 DUP4 PUSH2 0x1C11 JUMP JUMPDEST PUSH2 0xEED PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF1D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 JUMP JUMPDEST PUSH2 0xF33 PUSH5 0x5175657279 PUSH1 0xD8 SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF93 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030333A4143434553535F44454E4945440000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH32 0x76F1662DA8419575225DD3ADDAF14184129F5230097A533DE445A2D5688A399E DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH2 0xFC8 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x27D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 PUSH2 0xFDE DUP3 DUP5 ADD DUP5 PUSH2 0x2269 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP DUP2 ISZERO PUSH2 0x1074 JUMPI PUSH2 0xFFF DUP6 PUSH2 0x1C50 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x100C DUP7 DUP4 PUSH2 0x1D0A JUMP JUMPDEST PUSH1 0x20 DUP2 ADD MLOAD SWAP1 SWAP2 POP PUSH2 0x101F DUP8 DUP5 DUP4 PUSH2 0x1C11 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 ADD DUP3 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE SWAP2 DUP4 ADD SWAP1 SWAP3 MSTORE DUP3 SWAP2 PUSH2 0x104B DUP11 DUP8 DUP6 DUP6 PUSH2 0x18F5 JUMP JUMPDEST PUSH1 0x0 DUP12 DUP2 MSTORE PUSH1 0x13 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP2 SWAP1 SSTORE SWAP1 POP PUSH2 0x1068 DUP11 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP POP POP POP POP POP PUSH2 0x107E JUMP JUMPDEST PUSH2 0x107E DUP6 DUP3 PUSH2 0x1BAF JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x109B PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10CB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 PUSH2 0x1DD2 JUMP JUMPDEST PUSH2 0x10DB PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB78 PUSH1 0x0 PUSH2 0x1DFC JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x112E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1142 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x116A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1195 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x11A5 DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x11C4 DUP6 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 SWAP6 DUP7 MSTORE PUSH1 0x12 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP6 KECCAK256 DUP6 SWAP1 SSTORE POP SWAP3 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x11E7 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0xB1E DUP3 DUP3 PUSH2 0x1E4C JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xAC8 JUMP JUMPDEST PUSH2 0x120B PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB7F JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1265 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1279 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12A1 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x12CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH2 0xD61 DUP4 PUSH2 0x1EB5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x12E2 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x12EB DUP5 PUSH2 0x1EE6 JUMP JUMPDEST SWAP2 SWAP7 SWAP1 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH2 0x130D PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x133D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH2 0xB78 PUSH2 0x1F34 JUMP JUMPDEST PUSH2 0x134D PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1F5E JUMP JUMPDEST PUSH2 0x136B PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x1836 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x139B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2759 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0xB7F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x13B6 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x13C0 DUP6 DUP6 PUSH2 0x1F8F JUMP JUMPDEST SWAP2 SWAP8 SWAP1 SWAP7 POP SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER SWAP1 POP PUSH2 0x144A DUP2 DUP10 DUP10 DUP10 DUP10 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 PUSH1 0x1F DUP14 ADD DUP2 SWAP1 DIV DUP2 MUL DUP3 ADD DUP2 ADD SWAP1 SWAP3 MSTORE DUP12 DUP2 MSTORE SWAP3 POP DUP12 SWAP2 POP DUP11 SWAP1 DUP2 SWAP1 DUP5 ADD DUP4 DUP3 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x16C2 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xF DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH32 0x8D1108E10BCB7C27DDDFC02ED9D693A074039D026CF4EA4240B40F7D581AC802 ADD DUP3 SWAP1 SSTORE SWAP1 SWAP3 POP PUSH2 0x148A DUP4 PUSH2 0x17B1 JUMP JUMPDEST SWAP1 POP DUP1 ISZERO PUSH2 0x14C8 JUMPI PUSH1 0x10 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x1B6847DC741A1B0CD08D278845F9D819D87B734759AFB55FE2DE5CB82A9AE672 ADD DUP4 SWAP1 SSTORE JUMPDEST POP POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x296586D3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP6 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA5961B4C SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1521 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1535 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x155D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241D JUMP JUMPDEST MLOAD SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1588 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB67 SWAP1 PUSH2 0x2790 JUMP JUMPDEST PUSH1 0x11 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0x1598 DUP4 PUSH2 0x2887 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x15B7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x0 DUP8 DUP2 MSTORE PUSH1 0x12 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x11 SLOAD DUP2 MLOAD SWAP3 DUP4 ADD MSTORE DUP2 ADD DUP3 SWAP1 MSTORE SWAP2 SWAP6 POP SWAP1 DUP2 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1627 DUP9 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xE DUP2 MSTORE PUSH1 0x20 ADD PUSH14 0x6F7261636C6543616C6C6261636B PUSH1 0x90 SHL DUP2 MSTORE POP PUSH1 0xD SLOAD PUSH2 0x1A0E JUMP JUMPDEST SWAP5 POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x163C PUSH2 0x1757 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x16A1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH2 0x967 DUP2 PUSH2 0x1DFC JUMP JUMPDEST PUSH2 0x16B2 PUSH2 0x1757 JUMP JUMPDEST PUSH2 0x16BC DUP3 DUP3 PUSH2 0x1B1B JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x49DC20A5 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x93B8414A SWAP1 PUSH2 0x16FB SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x2640 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1715 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1729 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x174D SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0xB78 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB67 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B07B17F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1B07B17F SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x17F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x180C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x2285 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1880 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1894 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x21BA JUMP JUMPDEST PUSH32 0xB79D34516B55D664B61192AA41FBC0625B132FB7129BD3B3A31F46D1BEFA7061 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3C0EBC23 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x781D7846 SWAP1 PUSH2 0x192C SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26F3 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1946 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x195A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x197E SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFAE43D15 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xFAE43D15 SWAP1 PUSH2 0x19BC SWAP1 DUP8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x26D4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x19D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x19EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBF4 SWAP2 SWAP1 PUSH2 0x22EF JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x16499F91 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2C933F22 SWAP1 PUSH2 0x192C SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 ADDRESS SWAP1 DUP10 SWAP1 PUSH1 0x4 ADD PUSH2 0x268B JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x30A73DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x30A73DA5 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE71E783 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x39C79E0C SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xFE64372B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xFE64372B SWAP1 PUSH1 0x44 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1BA4 SWAP2 SWAP1 PUSH2 0x2571 JUMP JUMPDEST SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4CDA0DE9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4CDA0DE9 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BFD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x107E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x4E02C63F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4E02C63F SWAP1 PUSH1 0x64 ADD PUSH2 0x1A82 JUMP JUMPDEST PUSH2 0x1C8A PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1CCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1CE2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1830 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2372 JUMP JUMPDEST PUSH2 0x1D44 PUSH1 0x40 DUP1 MLOAD PUSH1 0xC0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0x7F22C2D9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F22C2D9 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1DCB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2372 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xCFF3B7B8B07D4D8F74BF41F05737717140D5916781B9DFF86EA0B996F2FDB9F9 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F94EDD1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x7F29DBA2 SWAP1 PUSH1 0x44 ADD PUSH2 0x1BE3 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x8CC7D3D1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8CC7D3D1 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x5BAE3EE3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xB75C7DC6 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x1EF5 DUP6 PUSH2 0x2019 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x20 ADD MLOAD DUP2 PUSH1 0x40 ADD MLOAD LT ISZERO PUSH2 0x1F2C JUMPI PUSH2 0x1F24 DUP6 DUP3 PUSH1 0x40 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x1F1F SWAP2 SWAP1 PUSH2 0x2844 JUMP JUMPDEST PUSH2 0x1F8F JUMP JUMPDEST SWAP2 SWAP6 POP SWAP4 POP SWAP2 POP JUMPDEST POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH32 0x38954B1D025D5A8FFCF9B42D431BE2745CDCD05D32B0E5AD33EE2DB025EF5B55 PUSH2 0x18E2 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0x18C882F3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xC6441798 SWAP1 PUSH1 0x24 ADD PUSH2 0x1AE6 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH1 0x40 MLOAD PUSH4 0xE3EBDEA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE3EBDEA5 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1FE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13C0 SWAP2 SWAP1 PUSH2 0x22A1 JUMP JUMPDEST PUSH2 0x2069 PUSH1 0x40 DUP1 MLOAD PUSH2 0x120 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x40 MLOAD PUSH4 0xA3F685F9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA3F685F9 SWAP1 PUSH1 0x24 ADD PUSH2 0x120 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x20AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20C2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1830 SWAP2 SWAP1 PUSH2 0x249B JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x20F7 JUMPI DUP2 DUP3 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x210E JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x2126 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x213D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2157 JUMPI PUSH2 0x2157 PUSH2 0x28CE JUMP JUMPDEST PUSH2 0x216A PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x2813 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x217E JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0xBF4 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x285B JUMP JUMPDEST DUP1 MLOAD PUSH1 0x3 DUP2 LT PUSH2 0xBBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21AF JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1DCB DUP2 PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21CB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1DCB DUP2 PUSH2 0x28E4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP9 DUP11 SUB SLT ISZERO PUSH2 0x21F0 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP8 CALLDATALOAD PUSH2 0x21FB DUP2 PUSH2 0x28E4 JUMP JUMPDEST SWAP7 POP PUSH1 0x20 DUP9 ADD CALLDATALOAD SWAP6 POP PUSH1 0x40 DUP9 ADD CALLDATALOAD SWAP5 POP PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2225 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2231 DUP12 DUP4 DUP13 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x80 DUP11 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x2249 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2256 DUP11 DUP3 DUP12 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP9 SWAP12 SWAP8 SWAP11 POP SWAP6 SWAP9 POP SWAP4 SWAP7 SWAP3 SWAP6 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x227A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1DCB DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2296 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x1DCB DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x22B5 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 MLOAD PUSH2 0x22C0 DUP2 PUSH2 0x28F9 JUMP JUMPDEST PUSH1 0x20 DUP6 ADD MLOAD PUSH1 0x40 SWAP1 SWAP6 ADD MLOAD SWAP1 SWAP7 SWAP5 SWAP6 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22E8 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2300 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2319 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x233C JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2364 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x1DCB JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2383 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x239A JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x23AD JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x23B7 PUSH1 0xC0 PUSH2 0x2813 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x23C2 DUP2 PUSH2 0x2907 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x23EB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x23F7 DUP8 DUP3 DUP7 ADD PUSH2 0x212D JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x242E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2445 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2458 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2462 PUSH1 0xC0 PUSH2 0x2813 JUMP JUMPDEST DUP3 MLOAD PUSH2 0x246D DUP2 PUSH2 0x28E4 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2485 PUSH1 0x40 DUP5 ADD PUSH2 0x218F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x23EB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x24AE JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x24B7 DUP2 PUSH2 0x2813 JUMP JUMPDEST SWAP1 POP PUSH2 0x24C2 DUP4 PUSH2 0x218F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD MLOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD MLOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2535 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP5 CALLDATALOAD SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2559 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2565 DUP8 DUP3 DUP9 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2583 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP8 DUP10 SUB SLT ISZERO PUSH2 0x25AC JUMPI DUP4 DUP5 REVERT JUMPDEST DUP7 CALLDATALOAD SWAP6 POP PUSH1 0x20 DUP8 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25D1 JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x25DD DUP11 DUP4 DUP12 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP1 SWAP7 POP SWAP5 POP PUSH1 0x60 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x25F5 JUMPI DUP4 DUP5 REVERT JUMPDEST POP PUSH2 0x2602 DUP10 DUP3 DUP11 ADD PUSH2 0x20E6 JUMP JUMPDEST SWAP8 SWAP11 SWAP7 SWAP10 POP SWAP5 SWAP8 POP SWAP3 SWAP6 SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x262C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x285B JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP8 AND DUP3 MSTORE DUP6 PUSH1 0x20 DUP4 ADD MSTORE DUP5 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x266D PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x2614 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x80 DUP5 ADD MSTORE PUSH2 0x267F DUP2 DUP6 PUSH2 0x2614 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP7 DUP3 MSTORE PUSH1 0xA0 PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x26A4 PUSH1 0xA0 DUP4 ADD DUP8 PUSH2 0x2614 JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x26B6 DUP2 DUP8 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP6 SWAP1 SWAP6 AND PUSH1 0x60 DUP5 ADD MSTORE POP POP PUSH1 0x80 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x197E PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE DUP4 PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x80 PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x174D PUSH1 0x80 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x272C JUMPI PUSH2 0x272C PUSH2 0x28B8 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x272C JUMPI PUSH2 0x272C PUSH2 0x28B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x1DCB PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2614 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x26 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A5052442D3030313A504F4C4943595F4F525F484F4C4445525F49 PUSH1 0x40 DUP3 ADD MSTORE PUSH6 0x139590531251 PUSH1 0xD2 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP3 MSTORE DUP5 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 PUSH1 0x60 DUP4 ADD MSTORE DUP3 DUP5 PUSH1 0x80 DUP5 ADD CALLDATACOPY DUP2 DUP4 ADD PUSH1 0x80 SWAP1 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND ADD ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x283C JUMPI PUSH2 0x283C PUSH2 0x28CE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2856 JUMPI PUSH2 0x2856 PUSH2 0x28A2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2876 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x285E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x16BC JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x289B JUMPI PUSH2 0x289B PUSH2 0x28A2 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x967 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 PUSH19 0x4AA3EEBE95B1D2B318CE70A883306561EDFCDC 0xE9 0xD SWAP13 0xE1 0xE8 0xEE POP 0xDF SSTORE PUSH15 0x2864736F6C63430008020033000000 ","sourceMap":"409:10172:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2904:524;;;;;;:::i;:::-;;:::i;:::-;;;12596:25:103;;;12584:2;12569:18;2904:524:96;;;;;;;;456:57;;;;;;;;;;;;-1:-1:-1;;;456:57:96;;2394:100:12;;;;;;;;;;-1:-1:-1;2477:14:12;;;;2394:100;;;;;;:::i;2220:83::-;;;;;;;;;;-1:-1:-1;2286:14:12;;2220:83;;2500:136;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3658:190:96:-;;;;;;;;;;-1:-1:-1;3658:190:96;;;;;:::i;:::-;;:::i;:::-;;3279:78:12;;;;;;;;;;;;;:::i;1838:88:18:-;;;;;;;;;;-1:-1:-1;1913:6:18;;-1:-1:-1;;;;;1913:6:18;1838:88;;;-1:-1:-1;;;;;11256:32:103;;;11238:51;;11226:2;11211:18;1838:88:18;11193:102:103;520:69:96;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;520:69:96;;;;;;;;;;;;:::i;2973:120:12:-;;;;;;;;;;;;;:::i;:::-;;;12089:14:103;;12082:22;12064:41;;12052:2;12037:18;2973:120:12;12019:92:103;10211:112:96;;;;;;;;;;-1:-1:-1;10211:112:96;;;;;:::i;:::-;;:::i;8030:334::-;;;;;;;;;;-1:-1:-1;8030:334:96;;;;;:::i;:::-;;:::i;4783:824::-;;;;;;;;;;-1:-1:-1;4783:824:96;;;;;:::i;:::-;;:::i;4322:261::-;;;;;;;;;;-1:-1:-1;4322:261:96;;;;;:::i;:::-;;:::i;4688:87::-;;;;;;;;;;-1:-1:-1;4688:87:96;;;;;:::i;:::-;;:::i;7872:128:18:-;;;;;;;;;;-1:-1:-1;7984:9:18;;;;;;;;;-1:-1:-1;7984:9:18;;7872:128;;2270:624:96;;;;;;:::i;:::-;;:::i;7626:396::-;;;;;;;;;;-1:-1:-1;7626:396:96;;;;;:::i;:::-;;:::i;7260:177::-;;;;;;;;;;-1:-1:-1;7260:177:96;;;;;:::i;:::-;;:::i;7023:229::-;;;;;;;;;;-1:-1:-1;7023:229:96;;;;;:::i;:::-;;:::i;3689:77:12:-;;;;;;;;;;;;;:::i;3101:86::-;;;;;;;;;;;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;2309:79;;;;;;;;;;-1:-1:-1;2373:12:12;;2309:79;;8561:1526:96;;;;;;;;;;-1:-1:-1;8561:1526:96;;;;;:::i;:::-;;:::i;1932:98:18:-;;;;;;;;;;-1:-1:-1;2012:11:18;;-1:-1:-1;;;;;2012:11:18;1932:98;;3195:78:12;;;;;;;;;;;;;:::i;10423:80:96:-;;;;;;;;;;-1:-1:-1;10484:9:96;:16;10423:80;;2036:98:18;;;;;;;;;;-1:-1:-1;2116:11:18;;2036:98;;1831:101:41;;;;;;;;;;;;;:::i;5615:512:96:-;;;;;;;;;;-1:-1:-1;5615:512:96;;;;;:::i;:::-;;:::i;10329:88::-;;;;;;;;;;-1:-1:-1;10394:13:96;:20;10329:88;;7445:173;;;;;;;;;;-1:-1:-1;7445:173:96;;;;;:::i;:::-;;:::i;2642:77:12:-;;;;;;;;;;;;;:::i;3556:94:96:-;;;;;;;;;;-1:-1:-1;3556:94:96;;;;;:::i;:::-;;:::i;1201:85:41:-;;;;;;;;;;-1:-1:-1;1247:7:41;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;2851:116:12;;;;;;;;;;;;;:::i;10095:110:96:-;;;;;;;;;;-1:-1:-1;10095:110:96;;;;;:::i;:::-;10156:7;10174:28;;;:18;:28;;;;;;;10095:110;3438;;;;;;;;;;-1:-1:-1;3438:110:96;;;;;:::i;:::-;;:::i;3856:213::-;;;;;;;;;;-1:-1:-1;3856:213:96;;;;;:::i;:::-;;:::i;:::-;;;;12337:14:103;;12330:22;12312:41;;12384:2;12369:18;;12362:34;;;;12412:18;;;12405:34;12300:2;12285:18;3856:213:96;12267:178:103;3363:77:12;;;;;;;;;;;;;:::i;4591:89:96:-;;;;;;;;;;-1:-1:-1;4591:89:96;;;;;:::i;:::-;;:::i;2131:81:12:-;;;;;;;;;;-1:-1:-1;2131:81:12;;;;;:::i;:::-;;:::i;10509:69:96:-;;;;;;;;;;-1:-1:-1;10568:7:96;;10509:69;;2727:118:12;;;;;;;;;;;;;:::i;4077:237:96:-;;;;;;;;;;-1:-1:-1;4077:237:96;;;;;:::i;:::-;;:::i;1612:650::-;;;;;;:::i;:::-;;:::i;6139:876::-;;;;;;;;;;-1:-1:-1;6139:876:96;;;;;:::i;:::-;;:::i;:::-;;;;13432:25:103;;;13488:2;13473:18;;13466:34;;;;13405:18;6139:876:96;13387:119:103;2081:198:41;;;;;;;;;;-1:-1:-1;2081:198:41;;;;;:::i;:::-;;:::i;8006:81:18:-;;;;;;;;;;-1:-1:-1;8006:81:18;;;;;:::i;:::-;4688:87:96;;8372:181;;;;;;;;;;-1:-1:-1;8372:181:96;;;;;:::i;:::-;;:::i;2904:524::-;3121:17;;719:10:59;3157:52:96;;3234:144;3264:12;3291:7;3314:10;3339:8;;3234:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3234:144:96;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3362:15:96;;-1:-1:-1;3362:15:96;;;;3234:144;;3362:15;;;;3234:144;;;;;;;;;-1:-1:-1;3234:15:96;;-1:-1:-1;;;3234:144:96:i;:::-;3391:13;:29;;;;;;;-1:-1:-1;3391:29:96;;;;;;;;;3222:156;2904:524;-1:-1:-1;;;;;;;;2904:524:96:o;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;12596:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;12569:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2578:55;;2500:136;:::o;3658:190:96:-;1094:13:41;:11;:13::i;:::-;3728:12:96::1;3743:22;3755:9;3743:11;:22::i;:::-;3728:37;;3780:7;3776:65;;;3804:9;:25:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;3804:25:96;;;;;::::1;::::0;;;3776:65:::1;1117:1:41;3658:190:96::0;:::o;3279:78:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;;;;;;;;;3339:15:::1;:13;:15::i;:::-;3279:78::o:0;2973:120::-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;10211:112:96:-;10273:7;10291:29;;;:19;:29;;;;;;10211:112;;;;:::o;8030:334::-;8197:16;1094:13:41;:11;:13::i;:::-;8342::96::1;::::0;;8353:1:::1;8342:13;::::0;::::1;15523:36:103::0;8242:114:96::1;::::0;8267:8;;8291:7;;8314:12;;15496:18:103;8342:13:96::1;;;;;;;;;;;;;8242:10;:114::i;:::-;8231:125:::0;8030:334;-1:-1:-1;;;;8030:334:96:o;4783:824::-;702:16:18;;:38;;-1:-1:-1;;;702:38:18;;;;;12596:25:103;;;4915:15:96;;4888:8;;4915:15;;-1:-1:-1;;;;;702:16:18;;:28;;12569:18:103;;702:38:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;702:38:18;;;;;;;;;;;;:::i;:::-;:44;;-1:-1:-1;719:10:59;-1:-1:-1;;;;;777:28:18;;;756:114;;;;-1:-1:-1;;;756:114:18;;;;;;;:::i;:::-;5124:7:96::1;:9:::0;;;:7:::1;:9;::::0;::::1;:::i;:::-;;;;;;5194:36;5204:8;5214:11;5194:36;;;;;;;;;;;::::0;:9:::1;:36::i;:::-;5241:28;::::0;;;:18:::1;:28;::::0;;;;;;;:38;;;5425:7:::1;::::0;5414:38;;;;::::1;18031:25:103::0;5374:4:96::1;18072:18:103::0;;;18065:50;;;5241:38:96;;-1:-1:-1;18004:18:103;;5414:38:96::1;;;;;;;;;;;;5389:63;;5463:136;5486:8;5509:9;5533:27;;;;;;;;;;;;;-1:-1:-1::0;;;5533:27:96::1;;::::0;5575:13:::1;;5463:8;:136::i;:::-;;880:1:18;;4783:824:96::0;;;;;;:::o;4322:261::-;4499:76;4524:9;4535:21;4558:16;4499:24;:76::i;:::-;4322:261;;;:::o;4688:87::-;1094:13:41;:11;:13::i;:::-;4751:16:96::1;4758:8;4751:6;:16::i;2270:624::-:0;2527:17;2575:144;2605:12;2632:7;2655:10;2680:8;;2575:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2575:144:96;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2703:15:96;;-1:-1:-1;2703:15:96;;;;2575:144;;2703:15;;;;2575:144;;;;;;;;;-1:-1:-1;2575:15:96;;-1:-1:-1;;;2575:144:96:i;:::-;2732:13;:29;;;;;;;-1:-1:-1;2732:29:96;;;;;;;;2563:156;;-1:-1:-1;2789:22:96;2563:156;2789:11;:22::i;:::-;2774:37;;2826:7;2822:65;;;2850:9;:25;;;;;;;-1:-1:-1;2850:25:96;;;;;;;;;2822:65;2270:624;;;;;;;;;;:::o;7626:396::-;7796:16;1094:13:41;:11;:13::i;:::-;7941::96::1;::::0;;7952:1:::1;7941:13;::::0;::::1;15523:36:103::0;7841:114:96::1;::::0;7866:8;;7890:7;;7913:12;;15496:18:103;7941:13:96::1;15478:87:103::0;7841:114:96::1;7830:125;;7980:34;7995:8;8005;7980:14;:34::i;:::-;;;7626:396:::0;;;;;:::o;7260:177::-;1094:13:41;:11;:13::i;:::-;7397:32:96::1;7411:8;7421:7;7397:13;:32::i;7023:229::-:0;1094:13:41;:11;:13::i;:::-;7195:49:96::1;7209:8;7219:7;7228:15;7195:13;:49::i;3689:77:12:-:0;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3748:15:::1;3279:78:::0;8561:1526:96;1138:28:18;-1:-1:-1;;;1138:19:18;:28::i;:::-;-1:-1:-1;;;;;1122:44:18;719:10:59;-1:-1:-1;;;;;1122:44:18;;1100:119;;;;-1:-1:-1;;;1100:119:18;;16759:2:103;1100:119:18;;;16741:21:103;16798:2;16778:18;;;16771:30;16837:29;16817:18;;;16810:57;16884:18;;1100:119:18;16731:177:103;1100:119:18;8746:64:96::1;8776:9;8787:8;8797:12;;8746:64;;;;;;;;;:::i;:::-;;;;;;;;8861:16;8881:32;::::0;;::::1;8892:12:::0;8881:32:::1;:::i;:::-;8924:15;8942:28:::0;;;:18:::1;:28;::::0;;;;;8860:53;;-1:-1:-1;9029:1051:96;::::1;;;9124:25;9140:8;9124:15;:25::i;:::-;;9166:26;9213:28;9223:8;9233:7;9213:9;:28::i;:::-;9320:17;::::0;::::1;::::0;9166:75;;-1:-1:-1;9352:49:96::1;9366:8:::0;9376:7;9320:17;9352:13:::1;:49::i;:::-;9534:13;::::0;;9455:20:::1;9534:13;::::0;;::::1;15523:36:103::0;;;9534:13:96;;;;;;;;;;15496:18:103;;;9534:13:96;;;9478:15;;9581:55:::1;9592:8:::0;9602:7;9478:15;9534:13;9581:10:::1;:55::i;:::-;9651:29;::::0;;;:19:::1;:29;::::0;;;;:40;;;9562:74;-1:-1:-1;9708:34:96::1;9671:8:::0;9562:74;9708:14:::1;:34::i;:::-;;;9029:1051;;;;;;;;10036:32;10050:8;10060:7;10036:13;:32::i;:::-;1229:1:18;;8561:1526:96::0;;;;:::o;3195:78:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;1831:101:41:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;5615:512:96:-:0;702:16:18;;:38;;-1:-1:-1;;;702:38:18;;;;;12596:25:103;;;5755:15:96;;5728:8;;5755:15;;-1:-1:-1;;;;;702:16:18;;:28;;12569:18:103;;702:38:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;702:38:18;;;;;;;;;;;;:::i;:::-;:44;;-1:-1:-1;719:10:59;-1:-1:-1;;;;;777:28:18;;;756:114;;;;-1:-1:-1;;;756:114:18;;;;;;;:::i;:::-;5964:7:96::1;:9:::0;;;:7:::1;:9;::::0;::::1;:::i;:::-;;;;;;6034:36;6044:8;6054:11;6034:36;;;;;;;;;;;::::0;:9:::1;:36::i;:::-;6081:28;::::0;;;:18:::1;:28;::::0;;;;;:38;;;-1:-1:-1;6024:46:96;;5615:512;-1:-1:-1;;;5615:512:96:o;7445:173::-;1094:13:41;:11;:13::i;:::-;7580:30:96::1;7592:8;7602:7;7580:11;:30::i;2642:77:12:-:0;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;3556:94:96;1094:13:41;:11;:13::i;:::-;3623:19:96::1;3632:9;3623:8;:19::i;2851:116:12:-:0;2900:4;;2915:49;;3438:110:96;702:16:18;;:38;;-1:-1:-1;;;702:38:18;;;;;12596:25:103;;;3499:9:96;;679:20:18;;-1:-1:-1;;;;;702:16:18;;;;:28;;12569:18:103;;702:38:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;702:38:18;;;;;;;;;;;;:::i;:::-;:44;;-1:-1:-1;719:10:59;-1:-1:-1;;;;;777:28:18;;;756:114;;;;-1:-1:-1;;;756:114:18;;;;;;;:::i;:::-;3522:18:96::1;3530:9;3522:7;:18::i;3856:213::-:0;3944:12;3958:11;3971:18;1094:13:41;:11;:13::i;:::-;4036:25:96::1;4052:8;4036:15;:25::i;:::-;4007:54:::0;;;;-1:-1:-1;4007:54:96;;-1:-1:-1;3856:213:96;-1:-1:-1;;3856:213:96:o;3363:77:12:-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3422:15:::1;:13;:15::i;4591:89:96:-:0;1094:13:41;:11;:13::i;:::-;4655:17:96::1;4663:8;4655:7;:17::i;2131:81:12:-:0;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;2727:118::-;2777:4;2810:32;2792:50;;4077:237:96;4181:12;4195:11;4208:18;1094:13:41;:11;:13::i;:::-;4273:33:96::1;4289:8;4299:6;4273:15;:33::i;:::-;4244:62:::0;;;;-1:-1:-1;4244:62:96;;-1:-1:-1;4077:237:96;-1:-1:-1;;;4077:237:96:o;1612:650::-;1830:17;;719:10:59;1866:52:96;;1943:144;1973:12;2000:7;2023:10;2048:8;;1943:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1943:144:96;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2071:15:96;;-1:-1:-1;2071:15:96;;;;1943:144;;2071:15;;;;1943:144;;;;;;;;;-1:-1:-1;1943:15:96;;-1:-1:-1;;;1943:144:96:i;:::-;2100:13;:29;;;;;;;-1:-1:-1;2100:29:96;;;;;;;;1931:156;;-1:-1:-1;2157:22:96;1931:156;2157:11;:22::i;:::-;2142:37;;2194:7;2190:65;;;2218:9;:25;;;;;;;-1:-1:-1;2218:25:96;;;;;;;;;2190:65;1612:650;;;;;;;;;;:::o;6139:876::-;702:16:18;;:38;;-1:-1:-1;;;702:38:18;;;;;12596:25:103;;;6291:15:96;;;;6264:8;;6291:15;;-1:-1:-1;;;;;702:16:18;;;;:28;;12569:18:103;;702:38:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;702:38:18;;;;;;;;;;;;:::i;:::-;:44;;-1:-1:-1;719:10:59;-1:-1:-1;;;;;777:28:18;;;756:114;;;;-1:-1:-1;;;756:114:18;;;;;;;:::i;:::-;6519:7:96::1;:9:::0;;;:7:::1;:9;::::0;::::1;:::i;:::-;;;;;;6589:36;6599:8;6609:11;6589:36;;;;;;;;;;;::::0;:9:::1;:36::i;:::-;6636:28;::::0;;;:18:::1;:28;::::0;;;;;;;:38;;;6821:7:::1;::::0;6810:38;;;;::::1;18031:25:103::0;18072:18;;18065:50;;;6579:46:96;;-1:-1:-1;6636:28:96;;;18004:18:103;;6810:38:96::1;;;;;;;;;;;;6785:63;;6871:136;6894:8;6917:9;6941:27;;;;;;;;;;;;;-1:-1:-1::0;;;6941:27:96::1;;::::0;6983:13:::1;;6871:8;:136::i;:::-;6859:148;;880:1:18;;6139:876:96::0;;;;;;;:::o;2081:198:41:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;16352:2:103;2161:73:41::1;::::0;::::1;16334:21:103::0;16391:2;16371:18;;;16364:30;16430:34;16410:18;;;16403:62;-1:-1:-1;;;16481:18:103;;;16474:36;16527:19;;2161:73:41::1;16324:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;8372:181:96:-:0;1094:13:41;:11;:13::i;:::-;8511:34:96::1;8526:8;8536;8511:14;:34::i;:::-;;;8372:181:::0;;:::o;2446:459:18:-;2725:15;;:173;;-1:-1:-1;;;2725:173:18;;2680:17;;-1:-1:-1;;;;;2725:15:18;;:30;;:173;;2769:16;;2800:13;;2828:16;;2859:8;;2882:15;;2725:173;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2713:185;2446:459;-1:-1:-1;;;;;;2446:459:18:o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;17522:2:103;1414:68:41;;;17504:21:103;;;17541:18;;;17534:30;17600:34;17580:18;;;17573:62;17652:18;;1414:68:41;17494:182:103;4142:135:18;4233:15;;:37;;-1:-1:-1;;;4233:37:18;;;;;12596:25:103;;;4199:12:18;;-1:-1:-1;;;;;4233:15:18;;:26;;12569:18:103;;4233:37:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4223:47;4142:135;-1:-1:-1;;4142:135:18:o;4875:145:12:-;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;12596:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;12569:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2189:80:18:-;2239:27;2258:7;2373:12:12;;2309:79;;2258:7:18;2239:27;;12596:25:103;;;12584:2;12569:18;2239:27:18;;;;;;;2189:80::o;5407:271::-;5612:15;;:59;;-1:-1:-1;;;5612:59:18;;5569:16;;-1:-1:-1;;;;;5612:15:18;;:25;;:59;;5638:9;;5649:7;;5658:6;;5666:4;;5612:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5601:70;5407:271;-1:-1:-1;;;;;5407:271:18:o;4586:285::-;4771:15;;:93;;-1:-1:-1;;;4771:93:18;;4730:15;;-1:-1:-1;;;;;4771:15:18;;:24;;:93;;4809:9;;4833:11;;4859:4;;4771:93;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6020:411::-;6257:15;;:167;;-1:-1:-1;;;6257:167:18;;6212:17;;-1:-1:-1;;;;;6257:15:18;;:23;;:167;;6294:9;;6317:5;;6336:18;;6376:4;;6395:19;;6257:167;;;:::i;3778:257::-;3937:15;;:91;;-1:-1:-1;;;3937:91:18;;;;;14077:25:103;;;14118:18;;;14111:34;;;14161:18;;;14154:34;;;-1:-1:-1;;;;;3937:15:18;;;;:39;;14050:18:103;;3937:91:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3778:257;;;:::o;4487:93::-;4541:15;;:32;;-1:-1:-1;;;4541:32:18;;;;;12596:25:103;;;-1:-1:-1;;;;;4541:15:18;;;;:21;;12569:18:103;;4541:32:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4487:93;:::o;5684:330::-;5957:15;;:50;;-1:-1:-1;;;5957:50:18;;;;;13432:25:103;;;13473:18;;;13466:34;;;5813:17:18;;;;-1:-1:-1;;;;;5957:15:18;;;;:29;;13405:18:103;;5957:50:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5892:115;;;;-1:-1:-1;5684:330:18;-1:-1:-1;;;5684:330:18:o;5133:133::-;5211:15;;:48;;-1:-1:-1;;;5211:48:18;;;;;13432:25:103;;;13473:18;;;13466:34;;;-1:-1:-1;;;;;5211:15:18;;;;:28;;13405:18:103;;5211:48:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4877:250;5019:15;;:101;;-1:-1:-1;;;5019:101:18;;;;;14077:25:103;;;14118:18;;;14111:34;;;14161:18;;;14154:34;;;-1:-1:-1;;;;;5019:15:18;;;;:28;;14050:18:103;;5019:101:18;14032:162:103;6763:205:18;6857:38;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6857:38:18;6919:16;;:42;;-1:-1:-1;;;6919:42:18;;;;;12596:25:103;;;-1:-1:-1;;;;;6919:16:18;;;;:31;;12569:18:103;;6919:42:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6919:42:18;;;;;;;;;;;;:::i;7165:207::-;7270:26;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7270:26:18;7320:16;;:45;;-1:-1:-1;;;7320:45:18;;;;;13432:25:103;;;13473:18;;;13466:34;;;-1:-1:-1;;;;;7320:16:18;;;;:25;;13405:18:103;;7320:45:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7320:45:18;;;;;;;;;;;;:::i;:::-;7313:52;7165:207;-1:-1:-1;;;7165:207:18:o;2275:80::-;2325:27;2344:7;2373:12:12;;2309:79;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;5272:129:18:-;5348:15;;:46;;-1:-1:-1;;;5348:46:18;;;;;13432:25:103;;;13473:18;;;13466:34;;;-1:-1:-1;;;;;5348:15:18;;;;:26;;13405:18:103;;5348:46:18;13387:119:103;4283:97:18;4339:15;;:34;;-1:-1:-1;;;4339:34:18;;;;;12596:25:103;;;-1:-1:-1;;;;;4339:15:18;;;;:23;;12569:18:103;;4339:34:18;12551:76:103;4041:95:18;4096:15;;:33;;-1:-1:-1;;;4096:33:18;;;;;12596:25:103;;;-1:-1:-1;;;;;4096:15:18;;;;:22;;12569:18:103;;4096:33:18;12551:76:103;2911:538:18;3002:12;3028:17;3059;3101:28;3132:21;3143:9;3132:10;:21::i;:::-;3101:52;;3195:6;:28;;;3168:6;:24;;;:55;3164:279;;;3290:142;3327:9;3390:6;:24;;;3359:6;:28;;;:55;;;;:::i;:::-;3290:15;:142::i;:::-;3239:193;;-1:-1:-1;3239:193:18;-1:-1:-1;3239:193:18;-1:-1:-1;3164:279:18;2911:538;;;;;;:::o;2360:80::-;2410:27;2429:7;2373:12:12;;2309:79;;4386:95:18;4441:15;;:33;;-1:-1:-1;;;4441:33:18;;;;;12596:25:103;;;-1:-1:-1;;;;;4441:15:18;;;;:22;;12569:18:103;;4441:33:18;12551:76:103;3455:317:18;3716:15;;:49;;-1:-1:-1;;;3716:49:18;;;;;13432:25:103;;;13473:18;;;13466:34;;;3583:12:18;;;;;;-1:-1:-1;;;;;3716:15:18;;:30;;13405:18:103;;3716:49:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6974:185::-;7063:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7063:28:18;7115:16;;:37;;-1:-1:-1;;;7115:37:18;;;;;12596:25:103;;;-1:-1:-1;;;;;7115:16:18;;;;:26;;12569:18:103;;7115:37:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:375:103:-;;;129:3;122:4;114:6;110:17;106:27;96:2;;154:8;144;137:26;96:2;-1:-1:-1;184:20:103;;227:18;216:30;;213:2;;;266:8;256;249:26;213:2;310:4;302:6;298:17;286:29;;362:3;355:4;346:6;338;334:19;330:30;327:39;324:2;;;379:1;376;369:12;324:2;86:303;;;;;:::o;394:512::-;;500:3;493:4;485:6;481:17;477:27;467:2;;522:5;515;508:20;467:2;555:6;549:13;581:18;577:2;574:26;571:2;;;603:18;;:::i;:::-;647:55;690:2;671:13;;-1:-1:-1;;667:27:103;696:4;663:38;647:55;:::i;:::-;727:2;718:7;711:19;773:3;766:4;761:2;753:6;749:15;745:26;742:35;739:2;;;794:5;787;780:20;739:2;811:64;872:2;865:4;856:7;852:18;845:4;837:6;833:17;811:64;:::i;911:160::-;1003:13;;1045:1;1035:12;;1025:2;;1061:1;1058;1051:12;1076:257;;1188:2;1176:9;1167:7;1163:23;1159:32;1156:2;;;1209:6;1201;1194:22;1156:2;1253:9;1240:23;1272:31;1297:5;1272:31;:::i;1338:261::-;;1461:2;1449:9;1440:7;1436:23;1432:32;1429:2;;;1482:6;1474;1467:22;1429:2;1519:9;1513:16;1538:31;1563:5;1538:31;:::i;1604:1028::-;;;;;;;;1830:3;1818:9;1809:7;1805:23;1801:33;1798:2;;;1852:6;1844;1837:22;1798:2;1896:9;1883:23;1915:31;1940:5;1915:31;:::i;:::-;1965:5;-1:-1:-1;2017:2:103;2002:18;;1989:32;;-1:-1:-1;2068:2:103;2053:18;;2040:32;;-1:-1:-1;2123:2:103;2108:18;;2095:32;2146:18;2176:14;;;2173:2;;;2208:6;2200;2193:22;2173:2;2252:58;2302:7;2293:6;2282:9;2278:22;2252:58;:::i;:::-;2329:8;;-1:-1:-1;2226:84:103;-1:-1:-1;2417:3:103;2402:19;;2389:33;;-1:-1:-1;2434:16:103;;;2431:2;;;2468:6;2460;2453:22;2431:2;;2512:60;2564:7;2553:8;2542:9;2538:24;2512:60;:::i;:::-;1788:844;;;;-1:-1:-1;1788:844:103;;-1:-1:-1;1788:844:103;;;;2486:86;;-1:-1:-1;;;1788:844:103:o;2637:251::-;;2746:2;2734:9;2725:7;2721:23;2717:32;2714:2;;;2767:6;2759;2752:22;2714:2;2811:9;2798:23;2830:28;2852:5;2830:28;:::i;2893:255::-;;3013:2;3001:9;2992:7;2988:23;2984:32;2981:2;;;3034:6;3026;3019:22;2981:2;3071:9;3065:16;3090:28;3112:5;3090:28;:::i;3153:377::-;;;;3307:2;3295:9;3286:7;3282:23;3278:32;3275:2;;;3328:6;3320;3313:22;3275:2;3365:9;3359:16;3384:28;3406:5;3384:28;:::i;:::-;3476:2;3461:18;;3455:25;3520:2;3505:18;;;3499:25;3431:5;;3455:25;;-1:-1:-1;3499:25:103;3265:265;-1:-1:-1;;;3265:265:103:o;3535:190::-;;3647:2;3635:9;3626:7;3622:23;3618:32;3615:2;;;3668:6;3660;3653:22;3615:2;-1:-1:-1;3696:23:103;;3605:120;-1:-1:-1;3605:120:103:o;3730:194::-;;3853:2;3841:9;3832:7;3828:23;3824:32;3821:2;;;3874:6;3866;3859:22;3821:2;-1:-1:-1;3902:16:103;;3811:113;-1:-1:-1;3811:113:103:o;3929:258::-;;;4058:2;4046:9;4037:7;4033:23;4029:32;4026:2;;;4079:6;4071;4064:22;4026:2;-1:-1:-1;;4107:23:103;;;4177:2;4162:18;;;4149:32;;-1:-1:-1;4016:171:103:o;4192:326::-;;;;4338:2;4326:9;4317:7;4313:23;4309:32;4306:2;;;4359:6;4351;4344:22;4306:2;-1:-1:-1;;4387:23:103;;;4457:2;4442:18;;4429:32;;-1:-1:-1;4508:2:103;4493:18;;;4480:32;;4296:222;-1:-1:-1;4296:222:103:o;4523:299::-;;4665:2;4653:9;4644:7;4640:23;4636:32;4633:2;;;4686:6;4678;4671:22;4633:2;4723:9;4717:16;4762:1;4755:5;4752:12;4742:2;;4783:6;4775;4768:22;4827:1005;;4979:2;4967:9;4958:7;4954:23;4950:32;4947:2;;;5000:6;4992;4985:22;4947:2;5038:9;5032:16;5067:18;5108:2;5100:6;5097:14;5094:2;;;5129:6;5121;5114:22;5094:2;5157:22;;;;5213:4;5195:16;;;5191:27;5188:2;;;5236:6;5228;5221:22;5188:2;5267:21;5283:4;5267:21;:::i;:::-;5318:2;5312:9;5330:47;5369:7;5330:47;:::i;:::-;5400:7;5393:5;5386:22;;5454:2;5450;5446:11;5440:18;5435:2;5428:5;5424:14;5417:42;5505:2;5501;5497:11;5491:18;5486:2;5479:5;5475:14;5468:42;5549:2;5545;5541:11;5535:18;5578:2;5568:8;5565:16;5562:2;;;5599:6;5591;5584:22;5562:2;5640:55;5687:7;5676:8;5672:2;5668:17;5640:55;:::i;:::-;5635:2;5628:5;5624:14;5617:79;;5743:3;5739:2;5735:12;5729:19;5723:3;5716:5;5712:15;5705:44;5796:3;5792:2;5788:12;5782:19;5776:3;5769:5;5765:15;5758:44;5821:5;5811:15;;;;;4937:895;;;;:::o;6841:1025::-;;6990:2;6978:9;6969:7;6965:23;6961:32;6958:2;;;7011:6;7003;6996:22;6958:2;7049:9;7043:16;7078:18;7119:2;7111:6;7108:14;7105:2;;;7140:6;7132;7125:22;7105:2;7168:22;;;;7224:4;7206:16;;;7202:27;7199:2;;;7247:6;7239;7232:22;7199:2;7278:21;7294:4;7278:21;:::i;:::-;7329:2;7323:9;7341:33;7366:7;7341:33;:::i;:::-;7383:22;;7451:2;7443:11;;;7437:18;7421:14;;;7414:42;7488:55;7539:2;7531:11;;7488:55;:::i;:::-;7483:2;7476:5;7472:14;7465:79;7583:2;7579;7575:11;7569:18;7612:2;7602:8;7599:16;7596:2;;;7633:6;7625;7618:22;7871:841;;7996:3;8040:2;8028:9;8019:7;8015:23;8011:32;8008:2;;;8061:6;8053;8046:22;8008:2;8092:19;8108:2;8092:19;:::i;:::-;8079:32;;8134:53;8177:9;8134:53;:::i;:::-;8127:5;8120:68;8241:2;8230:9;8226:18;8220:25;8215:2;8208:5;8204:14;8197:49;8299:2;8288:9;8284:18;8278:25;8273:2;8266:5;8262:14;8255:49;8357:2;8346:9;8342:18;8336:25;8331:2;8324:5;8320:14;8313:49;8416:3;8405:9;8401:19;8395:26;8389:3;8382:5;8378:15;8371:51;8476:3;8465:9;8461:19;8455:26;8449:3;8442:5;8438:15;8431:51;8536:3;8525:9;8521:19;8515:26;8509:3;8502:5;8498:15;8491:51;8596:3;8585:9;8581:19;8575:26;8569:3;8562:5;8558:15;8551:51;8621:3;8677:2;8666:9;8662:18;8656:25;8651:2;8644:5;8640:14;8633:49;;8701:5;8691:15;;;7976:736;;;;:::o;9111:565::-;;;;;9276:2;9264:9;9255:7;9251:23;9247:32;9244:2;;;9297:6;9289;9282:22;9244:2;9338:9;9325:23;9315:33;;9395:2;9384:9;9380:18;9367:32;9357:42;;9450:2;9439:9;9435:18;9422:32;9477:18;9469:6;9466:30;9463:2;;;9514:6;9506;9499:22;9463:2;9558:58;9608:7;9599:6;9588:9;9584:22;9558:58;:::i;:::-;9234:442;;;;-1:-1:-1;9635:8:103;-1:-1:-1;;;;9234:442:103:o;9681:255::-;;;9821:2;9809:9;9800:7;9796:23;9792:32;9789:2;;;9842:6;9834;9827:22;9789:2;-1:-1:-1;;9870:16:103;;9926:2;9911:18;;;9905:25;9870:16;;9905:25;;-1:-1:-1;9779:157:103:o;9941:884::-;;;;;;;10142:3;10130:9;10121:7;10117:23;10113:33;10110:2;;;10164:6;10156;10149:22;10110:2;10205:9;10192:23;10182:33;;10262:2;10251:9;10247:18;10234:32;10224:42;;10317:2;10306:9;10302:18;10289:32;10340:18;10381:2;10373:6;10370:14;10367:2;;;10402:6;10394;10387:22;10367:2;10446:58;10496:7;10487:6;10476:9;10472:22;10446:58;:::i;:::-;10523:8;;-1:-1:-1;10420:84:103;-1:-1:-1;10611:2:103;10596:18;;10583:32;;-1:-1:-1;10627:16:103;;;10624:2;;;10661:6;10653;10646:22;10624:2;;10705:60;10757:7;10746:8;10735:9;10731:24;10705:60;:::i;:::-;10100:725;;;;-1:-1:-1;10100:725:103;;-1:-1:-1;10100:725:103;;10784:8;;10100:725;-1:-1:-1;;;10100:725:103:o;10830:257::-;;10909:5;10903:12;10936:6;10931:3;10924:19;10952:63;11008:6;11001:4;10996:3;10992:14;10985:4;10978:5;10974:16;10952:63;:::i;:::-;11069:2;11048:15;-1:-1:-1;;11044:29:103;11035:39;;;;11076:4;11031:50;;10879:208;-1:-1:-1;;10879:208:103:o;11300:619::-;;11606:1;11602;11597:3;11593:11;11589:19;11581:6;11577:32;11566:9;11559:51;11646:6;11641:2;11630:9;11626:18;11619:34;11689:6;11684:2;11673:9;11669:18;11662:34;11732:3;11727:2;11716:9;11712:18;11705:31;11759:45;11799:3;11788:9;11784:19;11776:6;11759:45;:::i;:::-;11853:9;11845:6;11841:22;11835:3;11824:9;11820:19;11813:51;11881:32;11906:6;11898;11881:32;:::i;:::-;11873:40;11549:370;-1:-1:-1;;;;;;;;11549:370:103:o;12632:621::-;;12911:6;12900:9;12893:25;12954:3;12949:2;12938:9;12934:18;12927:31;12981:45;13021:3;13010:9;13006:19;12998:6;12981:45;:::i;:::-;13074:9;13066:6;13062:22;13057:2;13046:9;13042:18;13035:50;13102:32;13127:6;13119;13102:32;:::i;:::-;-1:-1:-1;;;;;13170:32:103;;;;13165:2;13150:18;;13143:60;-1:-1:-1;;13234:3:103;13219:19;13212:35;13094:40;12883:370;-1:-1:-1;;;12883:370:103:o;13511:359::-;;13714:6;13703:9;13696:25;13757:6;13752:2;13741:9;13737:18;13730:34;13800:2;13795;13784:9;13780:18;13773:30;13820:44;13860:2;13849:9;13845:18;13837:6;13820:44;:::i;14199:432::-;;14430:6;14419:9;14412:25;14473:6;14468:2;14457:9;14453:18;14446:34;14516:6;14511:2;14500:9;14496:18;14489:34;14559:3;14554:2;14543:9;14539:18;14532:31;14580:45;14620:3;14609:9;14605:19;14597:6;14580:45;:::i;14862:250::-;15013:2;14998:18;;15046:1;15035:13;;15025:2;;15052:18;;:::i;:::-;15081:25;;;14980:132;:::o;15117:249::-;15267:2;15252:18;;15300:1;15289:13;;15279:2;;15306:18;;:::i;15570:219::-;;15719:2;15708:9;15701:21;15739:44;15779:2;15768:9;15764:18;15756:6;15739:44;:::i;15794:351::-;15996:2;15978:21;;;16035:2;16015:18;;;16008:30;16074:29;16069:2;16054:18;;16047:57;16136:2;16121:18;;15968:177::o;16913:402::-;17115:2;17097:21;;;17154:2;17134:18;;;17127:30;17193:34;17188:2;17173:18;;17166:62;-1:-1:-1;;;17259:2:103;17244:18;;17237:36;17305:3;17290:19;;17087:228::o;18126:536::-;;18339:6;18328:9;18321:25;18382:6;18377:2;18366:9;18362:18;18355:34;18425:2;18420;18409:9;18405:18;18398:30;18464:6;18459:2;18448:9;18444:18;18437:34;18522:6;18514;18508:3;18497:9;18493:19;18480:49;18549:22;;;18573:3;18545:32;;;18538:46;;;;18645:2;18624:15;;;-1:-1:-1;;18620:29:103;18605:45;18601:55;;18311:351;-1:-1:-1;;;18311:351:103:o;18920:275::-;18991:2;18985:9;19056:2;19037:13;;-1:-1:-1;;19033:27:103;19021:40;;19091:18;19076:34;;19112:22;;;19073:62;19070:2;;;19138:18;;:::i;:::-;19174:2;19167:22;18965:230;;-1:-1:-1;18965:230:103:o;19200:125::-;;19268:1;19265;19262:8;19259:2;;;19273:18;;:::i;:::-;-1:-1:-1;19310:9:103;;19249:76::o;19330:258::-;19402:1;19412:113;19426:6;19423:1;19420:13;19412:113;;;19502:11;;;19496:18;19483:11;;;19476:39;19448:2;19441:10;19412:113;;;19543:6;19540:1;19537:13;19534:2;;;-1:-1:-1;;19578:1:103;19560:16;;19553:27;19383:205::o;19593:135::-;;-1:-1:-1;;19653:17:103;;19650:2;;;19673:18;;:::i;:::-;-1:-1:-1;19720:1:103;19709:13;;19640:88::o;19733:127::-;19794:10;19789:3;19785:20;19782:1;19775:31;19825:4;19822:1;19815:15;19849:4;19846:1;19839:15;19865:127;19926:10;19921:3;19917:20;19914:1;19907:31;19957:4;19954:1;19947:15;19981:4;19978:1;19971:15;19997:127;20058:10;20053:3;20049:20;20046:1;20039:31;20089:4;20086:1;20079:15;20113:4;20110:1;20103:15;20129:131;-1:-1:-1;;;;;20204:31:103;;20194:42;;20184:2;;20250:1;20247;20240:12;20265:118;20351:5;20344:13;20337:21;20330:5;20327:32;20317:2;;20373:1;20370;20363:12;20388:115;20477:1;20470:5;20467:12;20457:2;;20493:1;20490;20483:12"},"methodIdentifiers":{"ORACLE_CALLBACK_METHOD_NAME()":"232d346a","POLICY_FLOW()":"09128d83","adjustPremiumSumInsured(bytes32,uint256,uint256)":"30a73da5","applications()":"7ce5e82f","applyForPolicy(address,uint256,uint256,bytes,bytes)":"3dcabeab","applyForPolicy(uint256,uint256,bytes,bytes)":"e6f95edd","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","claims()":"dcc59b6f","close(bytes32)":"39c79e0c","closeClaim(bytes32,uint256)":"7f29dba2","collectPremium(bytes32)":"b9ea8d66","collectPremium(bytes32,uint256)":"e3ebdea5","confirmClaim(bytes32,uint256,uint256)":"4e02c63f","createPayout(bytes32,uint256,uint256)":"4703dc8d","decline(bytes32)":"8cc7d3d1","declineCallback()":"bd1fe5d0","declineClaim(bytes32,uint256)":"4cda0de9","expire(bytes32)":"c6441798","getApplicationDataStructure()":"94f64ff4","getClaimDataStructure()":"3ec92bda","getClaimId(bytes32)":"ab72c4e1","getId()":"5d1ca631","getName()":"17d7de7c","getOwner()":"893d20e8","getPayoutDataStructure()":"39cf5e16","getPayoutId(bytes32)":"29abdbd7","getPolicyFlow()":"637d08f4","getRegistry()":"5ab1bd53","getRiskpoolId()":"70d2fe53","getState()":"1865c57d","getToken()":"21df0da7","getType()":"15dae03e","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","newAppliation(uint256,uint256,bytes,bytes)":"03f0ac1a","newPayout(bytes32,uint256,uint256)":"2b1994ba","oracleCallback(uint256,bytes32,bytes)":"5e61aa63","owner()":"8da5cb5b","pauseCallback()":"d73cd992","policies()":"702e7e1f","processPayout(bytes32,uint256)":"fe64372b","proposalCallback()":"638ce0ba","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","revoke(bytes32)":"b75c7dc6","riskPoolCapacityCallback(uint256)":"f4fdc1fa","setId(uint256)":"d0e0ba95","submitClaim(bytes32,uint256)":"2b677841","submitClaimNoOracle(bytes32,uint256)":"79ed5209","submitClaimWithDeferredResponse(bytes32,uint256)":"ec8b4a9a","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","underwrite(bytes32)":"1b07b17f","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"productName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"capitalOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"oracleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"productAddress\",\"type\":\"address\"}],\"name\":\"LogProductCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"componentId\",\"type\":\"uint256\"}],\"name\":\"LogProductProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"name\":\"LogTestOracleCallbackReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogTestProductFundingReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ORACLE_CALLBACK_METHOD_NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"POLICY_FLOW\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expectedPremiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"}],\"name\":\"adjustPremiumSumInsured\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"applications\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"policyHolder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"applyForPolicy\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"applyForPolicy\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"closeClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremium\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"collectPremium\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"netPremium\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confirmedAmount\",\"type\":\"uint256\"}],\"name\":\"confirmClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"}],\"name\":\"createPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"decline\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"name\":\"declineClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"expire\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApplicationDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"getClaimId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPayoutDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"dataStructure\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"}],\"name\":\"getPayoutId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPolicyFlow\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRiskpoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"premium\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsured\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"metaData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"applicationData\",\"type\":\"bytes\"}],\"name\":\"newAppliation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"payoutAmount\",\"type\":\"uint256\"}],\"name\":\"newPayout\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"responseData\",\"type\":\"bytes\"}],\"name\":\"oracleCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"policies\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"payoutId\",\"type\":\"uint256\"}],\"name\":\"processPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"revoke\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"name\":\"riskPoolCapacityCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"submitClaim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"submitClaimNoOracle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"policyId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"claimAmount\",\"type\":\"uint256\"}],\"name\":\"submitClaimWithDeferredResponse\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"claimId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"underwrite\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestProduct.sol\":\"TestProduct\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IProduct.sol\":{\"keccak256\":\"0x816acded1225dd1807b62579a251870bbe0bc1bbe705cb485f80a96ce58f2b8a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6b77780362c2c38219140e934fb5d585cb436d176bd0c23eea39de9bdfe71dec\",\"dweb:/ipfs/Qmb9x5zwoao38oxE7uaH3fp5VxQZaLKH1hhhZ9FEdz1KpR\"]},\"@etherisc/gif-interface/contracts/components/Product.sol\":{\"keccak256\":\"0xdf55ff9638da4db1501362fc2ffcd26858b7c09b7cc5e0701f1bb31081142815\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fdbfbd830dafe0d721150778469cbbdf01058f8713c3636d2ba48234761e8590\",\"dweb:/ipfs/QmZ9K5X2ant5TtUhA9kgXUAMe7y9MUHpnv3PQUKAmxwVYj\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/test/TestProduct.sol\":{\"keccak256\":\"0x2e678b5aa5698dcd7869eef379bfd156677dd4f5ece499e0dcc29614437e58a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://87e6535b924036b2b8d08c516519de66ea362dec109249675acc95471cb71989\",\"dweb:/ipfs/QmVnFPF4u2XZPHXSkqQD5qPDMnDPAYoDwjquVTrUnXVxh7\"]}},\"version\":1}"}},"contracts/test/TestRegistryCompromisedController.sol":{"TestRegistryCompromisedController":{"abi":[{"inputs":[],"name":"POLICY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"QUERY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"contracts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"getContract","outputs":[{"internalType":"address","name":"moduleAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"compromisedPolicyModuleAddress","type":"address"},{"internalType":"address","name":"originalQueryModuleAddress","type":"address"}],"name":"upgradeToV2","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610223806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea26469706673582212200a56ef5fcc359265f1d34843e958bb8fae6aa679c1a712a74bb7703e4ce8270864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x223 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BC0D7FB EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x4F6FC0B1 EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xDADBCCEE EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0xEC56A373 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE9 PUSH2 0x6A CALLDATASIZE PUSH1 0x4 PUSH2 0x1A3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH32 0xF51CCB208F64C7678632570548CD6BA9FF8006466EC703412C917B708A19C9E0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH5 0x5175657279 PUSH1 0xD8 SHL SWAP1 SWAP2 MSTORE PUSH32 0x4BBCC452808EC518CF1B5B4BB97D91D9D8D47960BBF45A7ADAB13B29DDCA3753 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFA PUSH5 0x5175657279 PUSH1 0xD8 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFA PUSH6 0x506F6C696379 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x12B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B5 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1BE DUP4 PUSH2 0x187 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CC PUSH1 0x20 DUP5 ADD PUSH2 0x187 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXP JUMP 0xEF 0x5F 0xCC CALLDATALOAD SWAP3 PUSH6 0xF1D34843E958 0xBB DUP16 0xAE PUSH11 0xA679C1A712A74BB7703E4C 0xE8 0x27 ADDMOD PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"66:681:97:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1049:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"279:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"325:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"334:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"342:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"327:6:103"},"nodeType":"YulFunctionCall","src":"327:22:103"},"nodeType":"YulExpressionStatement","src":"327:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"300:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"309:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"296:3:103"},"nodeType":"YulFunctionCall","src":"296:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"321:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"292:3:103"},"nodeType":"YulFunctionCall","src":"292:32:103"},"nodeType":"YulIf","src":"289:2:103"},{"nodeType":"YulAssignment","src":"360:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"389:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"370:18:103"},"nodeType":"YulFunctionCall","src":"370:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"360:6:103"}]},{"nodeType":"YulAssignment","src":"408:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"441:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"452:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"437:3:103"},"nodeType":"YulFunctionCall","src":"437:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"418:18:103"},"nodeType":"YulFunctionCall","src":"418:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"408:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"237:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"248:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"260:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"268:6:103","type":""}],"src":"192:270:103"},{"body":{"nodeType":"YulBlock","src":"537:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"583:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"592:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"600:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"585:6:103"},"nodeType":"YulFunctionCall","src":"585:22:103"},"nodeType":"YulExpressionStatement","src":"585:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"558:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"567:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"554:3:103"},"nodeType":"YulFunctionCall","src":"554:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"579:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"550:3:103"},"nodeType":"YulFunctionCall","src":"550:32:103"},"nodeType":"YulIf","src":"547:2:103"},{"nodeType":"YulAssignment","src":"618:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"641:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"628:12:103"},"nodeType":"YulFunctionCall","src":"628:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"618:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"503:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"514:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"526:6:103","type":""}],"src":"467:190:103"},{"body":{"nodeType":"YulBlock","src":"763:102:103","statements":[{"nodeType":"YulAssignment","src":"773:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"785:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"796:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"781:3:103"},"nodeType":"YulFunctionCall","src":"781:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"773:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"815:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"830:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"846:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"851:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"842:3:103"},"nodeType":"YulFunctionCall","src":"842:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"855:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"838:3:103"},"nodeType":"YulFunctionCall","src":"838:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"826:3:103"},"nodeType":"YulFunctionCall","src":"826:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"808:6:103"},"nodeType":"YulFunctionCall","src":"808:51:103"},"nodeType":"YulExpressionStatement","src":"808:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"732:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"743:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"754:4:103","type":""}],"src":"662:203:103"},{"body":{"nodeType":"YulBlock","src":"971:76:103","statements":[{"nodeType":"YulAssignment","src":"981:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"993:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1004:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"989:3:103"},"nodeType":"YulFunctionCall","src":"989:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"981:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1023:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1034:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1016:6:103"},"nodeType":"YulFunctionCall","src":"1016:25:103"},"nodeType":"YulExpressionStatement","src":"1016:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"940:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"951:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"962:4:103","type":""}],"src":"870:177:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea26469706673582212200a56ef5fcc359265f1d34843e958bb8fae6aa679c1a712a74bb7703e4ce8270864736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BC0D7FB EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x4F6FC0B1 EQ PUSH2 0xEB JUMPI DUP1 PUSH4 0xDADBCCEE EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0xEC56A373 EQ PUSH2 0x15E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE9 PUSH2 0x6A CALLDATASIZE PUSH1 0x4 PUSH2 0x1A3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH32 0xF51CCB208F64C7678632570548CD6BA9FF8006466EC703412C917B708A19C9E0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH5 0x5175657279 PUSH1 0xD8 SHL SWAP1 SWAP2 MSTORE PUSH32 0x4BBCC452808EC518CF1B5B4BB97D91D9D8D47960BBF45A7ADAB13B29DDCA3753 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFA PUSH5 0x5175657279 PUSH1 0xD8 SHL DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFA PUSH6 0x506F6C696379 PUSH1 0xD0 SHL DUP2 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x12B CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x104 JUMP JUMPDEST PUSH2 0x146 PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x1D5 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B5 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1BE DUP4 PUSH2 0x187 JUMP JUMPDEST SWAP2 POP PUSH2 0x1CC PUSH1 0x20 DUP5 ADD PUSH2 0x187 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXP JUMP 0xEF 0x5F 0xCC CALLDATALOAD SWAP3 PUSH6 0xF1D34843E958 0xBB DUP16 0xAE PUSH11 0xA679C1A712A74BB7703E4C 0xE8 0x27 ADDMOD PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"66:681:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;472:272;;;;;;:::i;:::-;630:9;:17;;;;;:50;;-1:-1:-1;;;;;630:50:97;;;-1:-1:-1;;;;;;630:50:97;;;;;;;-1:-1:-1;;;691:16:97;;;;:45;;;;;;;;;;;472:272;;;175:48;;-1:-1:-1;;;175:48:97;;;;;1016:25:103;;;1004:2;989:18;175:48:97;;;;;;;;118:50;;-1:-1:-1;;;118:50:97;;285:179;;;;;;:::i;:::-;378:21;433:23;;;;;;;;;;;-1:-1:-1;;;;;433:23:97;;285:179;;;;-1:-1:-1;;;;;826:32:103;;;808:51;;796:2;781:18;285:179:97;763:102:103;232:44:97;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;232:44:97;;;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:270::-;;;321:2;309:9;300:7;296:23;292:32;289:2;;;342:6;334;327:22;289:2;370:29;389:9;370:29;:::i;:::-;360:39;;418:38;452:2;441:9;437:18;418:38;:::i;:::-;408:48;;279:183;;;;;:::o;467:190::-;;579:2;567:9;558:7;554:23;550:32;547:2;;;600:6;592;585:22;547:2;-1:-1:-1;628:23:103;;537:120;-1:-1:-1;537:120:103:o"},"methodIdentifiers":{"POLICY()":"dadbccee","QUERY()":"4f6fc0b1","contracts(bytes32)":"ec56a373","getContract(bytes32)":"e16c7d98","upgradeToV2(address,address)":"2bc0d7fb"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"POLICY\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"QUERY\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"getContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"moduleAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"compromisedPolicyModuleAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"originalQueryModuleAddress\",\"type\":\"address\"}],\"name\":\"upgradeToV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestRegistryCompromisedController.sol\":\"TestRegistryCompromisedController\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/test/TestRegistryCompromisedController.sol\":{\"keccak256\":\"0x69c91063aec505ec3a1a05b77f153b7a42100eae759fcc7507042df2d05b2080\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e5fed7d819178feb828930773ef2d4a61ef22b572b60b76f9b4cb2919382f6b5\",\"dweb:/ipfs/QmY5ZBDzHGLkyBqxyN8L7zVrLjEKqQwyq1sQ5afD4A13bL\"]}},\"version\":1}"}},"contracts/test/TestRegistryControllerUpdated.sol":{"TestRegistryControllerUpdated":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"}],"name":"LogContractDeregistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"contractName","type":"bytes32"},{"indexed":false,"internalType":"address","name":"contractAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isNew","type":"bool"}],"name":"LogContractRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"release","type":"bytes32"}],"name":"LogReleasePrepared","type":"event"},{"inputs":[],"name":"MAX_CONTRACTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_contracts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_contractsInRelease","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"contractName","outputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contracts","outputs":[{"internalType":"uint256","name":"_numberOfContracts","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"deregisterInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"ensureSender","outputs":[{"internalType":"bool","name":"_senderMatches","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContract","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"}],"name":"getContractInRelease","outputs":[{"internalType":"address","name":"_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMessage","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRelease","outputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_initialRelease","type":"bytes32"}],"name":"initializeRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newRelease","type":"bytes32"}],"name":"prepareRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"register","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_release","type":"bytes32"},{"internalType":"bytes32","name":"_contractName","type":"bytes32"},{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"registerInRelease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"release","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_message","type":"string"}],"name":"setMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_message","type":"string"}],"name":"upgradeToV2","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:608:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"188:229:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"216:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"198:6:103"},"nodeType":"YulFunctionCall","src":"198:21:103"},"nodeType":"YulExpressionStatement","src":"198:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"250:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"235:3:103"},"nodeType":"YulFunctionCall","src":"235:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"255:2:103","type":"","value":"39"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"228:6:103"},"nodeType":"YulFunctionCall","src":"228:30:103"},"nodeType":"YulExpressionStatement","src":"228:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"289:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"274:3:103"},"nodeType":"YulFunctionCall","src":"274:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"294:34:103","type":"","value":"Initializable: contract is initi"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"267:6:103"},"nodeType":"YulFunctionCall","src":"267:62:103"},"nodeType":"YulExpressionStatement","src":"267:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"360:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"345:3:103"},"nodeType":"YulFunctionCall","src":"345:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"365:9:103","type":"","value":"alizing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"338:6:103"},"nodeType":"YulFunctionCall","src":"338:37:103"},"nodeType":"YulExpressionStatement","src":"338:37:103"},{"nodeType":"YulAssignment","src":"384:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"396:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"407:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"384:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"165:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"179:4:103","type":""}],"src":"14:403:103"},{"body":{"nodeType":"YulBlock","src":"519:87:103","statements":[{"nodeType":"YulAssignment","src":"529:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"541:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"552:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"537:3:103"},"nodeType":"YulFunctionCall","src":"537:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"529:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"571:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"586:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"594:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"582:3:103"},"nodeType":"YulFunctionCall","src":"582:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"564:6:103"},"nodeType":"YulFunctionCall","src":"564:36:103"},"nodeType":"YulExpressionStatement","src":"564:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"488:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"499:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"510:4:103","type":""}],"src":"422:184:103"}]},"contents":"{\n { }\n function abi_encode_tuple_t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 39)\n mstore(add(headStart, 64), \"Initializable: contract is initi\")\n mstore(add(headStart, 96), \"alizing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611aad806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80636c0f79b6116100b8578063c4d66de81161007c578063c4d66de81461028f578063ce6d41de146102a2578063d22057a9146102b7578063dc527b08146102ca578063e16c7d98146102dd578063f6b3e7d0146102f057610137565b80636c0f79b61461025057806376b707b71461025857806386d1a69f14610260578063893917ea14610269578063b0ef18a01461027c57610137565b8063368b8772116100ff578063368b8772146101b557806348cd4cb1146101c85780634a941e5e146101d157806356bbc19d1461021d578063699235151461023057610137565b80631d5e73141461013c578063208131541461015157806324042a0a146101645780632b34378a1461017f5780632ca65a7914610192575b600080fd5b61014f61014a3660046117b7565b610303565b005b61014f61015f36600461174f565b6103c4565b61016c606481565b6040519081526020015b60405180910390f35b61014f61018d3660046117ef565b610479565b6101a56101a0366004611704565b6104e2565b6040519015158152602001610176565b61014f6101c33660046117ef565b61050c565b61016c60035481565b6102056101df366004611796565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61014f61022b36600461174f565b6105c9565b61016c61023e36600461174f565b60056020526000908152604090205481565b61016c61073c565b60025461016c565b61016c60025481565b61014f61027736600461174f565b61075b565b61020561028a366004611796565b610970565b61014f61029d3660046116cc565b610983565b6102aa610ab9565b60405161017691906118cd565b61014f6102c5366004611767565b610b4b565b61014f6102d8366004611796565b610c00565b6102056102eb36600461174f565b610cb0565b61016c6102fe36600461174f565b610cc4565b6000546201000090046001600160a01b0316632ca65a796103213390565b6040518263ffffffff1660e01b815260040161033d9190611899565b60206040518083038186803b15801561035557600080fd5b505afa158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d919061172f565b6103b25760405162461bcd60e51b81526004016103a99061196e565b60405180910390fd5b6103bf8360008484610cdf565b505050565b6000546201000090046001600160a01b0316632ca65a796103e23390565b6040518263ffffffff1660e01b81526004016103fe9190611899565b60206040518083038186803b15801561041657600080fd5b505afa15801561042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044e919061172f565b61046a5760405162461bcd60e51b81526004016103a99061196e565b61047660025482611099565b50565b60085460ff16156104cc5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5245432d3130323a555047524144455f4f4e43455f4f4d4c590060448201526064016103a9565b6008805460ff191660011790556104768161050c565b60006104f0600254836112bb565b6001600160a01b0316836001600160a01b031614905092915050565b6000546201000090046001600160a01b0316632ca65a7961052a3390565b6040518263ffffffff1660e01b81526004016105469190611899565b60206040518083038186803b15801561055e57600080fd5b505afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610596919061172f565b6105b25760405162461bcd60e51b81526004016103a99061196e565b80516105c5906007906020840190611633565b5050565b600054610100900460ff16158080156105e95750600054600160ff909116105b8061060a57506105f8306112e1565b15801561060a575060005460ff166001145b6106265760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610649576000805461ff0019166101001790555b6000805462010000600160b01b031916306201000002179055600282905561066e3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b0397909716969096179095559254825260069052206106d8916112f4565b506002546000908152600560205260409020600190554360035580156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b600254600090815260066020526040812061075690611300565b905090565b6000546201000090046001600160a01b0316632ca65a796107793390565b6040518263ffffffff1660e01b81526004016107959190611899565b60206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e5919061172f565b6108015760405162461bcd60e51b81526004016103a99061196e565b600254600090815260056020526040902054806108605760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c45415345000000000060448201526064016103a9565b600082815260056020526040902054156108c85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b60648201526084016103a9565b60005b8181101561093a5760025460009081526006602052604081206108ee908361130a565b600254600090815260046020908152604080832084845290915290205490915061092790859060019084906001600160a01b0316610cdf565b506109336001826119b1565b90506108cb565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b490602001610730565b600061097c83836112bb565b9392505050565b600054610100900460ff16158080156109a35750600054600160ff909116105b806109c457506109b2306112e1565b1580156109c4575060005460ff166001145b6109e05760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610a03576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610a2d600090565b6541636365737360d01b14610a6f57610a4e6541636365737360d01b611316565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610a776113fe565b80156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610730565b606060078054610ac8906119e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610af4906119e0565b8015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b5050505050905090565b6000546201000090046001600160a01b0316632ca65a79610b693390565b6040518263ffffffff1660e01b8152600401610b859190611899565b60206040518083038186803b158015610b9d57600080fd5b505afa158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd5919061172f565b610bf15760405162461bcd60e51b81526004016103a99061196e565b6105c560025460008484610cdf565b6000546201000090046001600160a01b0316632ca65a79610c1e3390565b6040518263ffffffff1660e01b8152600401610c3a9190611899565b60206040518083038186803b158015610c5257600080fd5b505afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a919061172f565b610ca65760405162461bcd60e51b81526004016103a99061196e565b6105c58282611099565b6000610cbe600254836112bb565b92915050565b6002546000908152600660205260408120610cbe908361130a565b6000848152600660205260408120606490610cf990611300565b10610d505760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b60648201526084016103a9565b600085815260056020526040902054151580610d695750835b610db55760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e00000060448201526064016103a9565b82610e0c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b60648201526084016103a9565b6000858152600660205260409020610e24908461146b565b1580610e7557508276496e7374616e63654f70657261746f725365727669636560481b148015610e75575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610ecc5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b60648201526084016103a9565b6001600160a01b038216610f2e5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b60648201526084016103a9565b60008581526004602090815260408083208684529091529020546001600160a01b0316610f92576000858152600660205260409020610f6d90846112f4565b506000858152600560205260408120805491610f8883611a1b565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610fd790611300565b600086815260056020526040902054146110425760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a796110b73390565b6040518263ffffffff1660e01b81526004016110d39190611899565b60206040518083038186803b1580156110eb57600080fd5b505afa1580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611123919061172f565b61113f5760405162461bcd60e51b81526004016103a99061196e565b6000828152600660205260409020611157908261146b565b6111a35760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e000060448201526064016103a9565b60008281526006602052604090206111bb9082611483565b5060008281526005602052604081208054600192906111db9084906119c9565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b03191690558483526006909152902061121a90611300565b600083815260056020526040902054146112855760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a1319101610730565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b600061097c838361148f565b6000610cbe825490565b600061097c83836114de565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561136057600080fd5b505afa158015611374573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139891906116e8565b90506001600160a01b0381166112ef5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166114695760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b565b6000818152600183016020526040812054151561097c565b600061097c8383611516565b60008181526001830160205260408120546114d657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cbe565b506000610cbe565b600082600001828154811061150357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054801561162957600061153a6001836119c9565b855490915060009061154e906001906119c9565b90508181146115cf57600086600001828154811061157c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106115ad57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115ee57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cbe565b6000915050610cbe565b82805461163f906119e0565b90600052602060002090601f01602090048101928261166157600085556116a7565b82601f1061167a57805160ff19168380011785556116a7565b828001600101855582156116a7579182015b828111156116a757825182559160200191906001019061168c565b506116b39291506116b7565b5090565b5b808211156116b357600081556001016116b8565b6000602082840312156116dd578081fd5b813561097c81611a62565b6000602082840312156116f9578081fd5b815161097c81611a62565b60008060408385031215611716578081fd5b823561172181611a62565b946020939093013593505050565b600060208284031215611740578081fd5b8151801515811461097c578182fd5b600060208284031215611760578081fd5b5035919050565b60008060408385031215611779578182fd5b82359150602083013561178b81611a62565b809150509250929050565b600080604083850312156117a8578182fd5b50508035926020909101359150565b6000806000606084860312156117cb578081fd5b833592506020840135915060408401356117e481611a62565b809150509250925092565b600060208284031215611800578081fd5b813567ffffffffffffffff80821115611817578283fd5b818401915084601f83011261182a578283fd5b81358181111561183c5761183c611a4c565b604051601f8201601f19908116603f0116810190838211818310171561186457611864611a4c565b8160405282815287602084870101111561187c578586fd5b826020860160208301379182016020019490945295945050505050565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6000602080835283518082850152825b818110156118f9578581018301518582016040015282016118dd565b8181111561190a5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b600082198211156119c4576119c4611a36565b500190565b6000828210156119db576119db611a36565b500390565b6002810460018216806119f457607f821691505b60208210811415611a1557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611a2f57611a2f611a36565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461047657600080fdfea26469706673582212204c7f94f441c1f862908cff0be31a75f685e50b915477a4cbe46f145ab6d61f9264736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19 PUSH2 0x1E JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x8A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x27 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320696E697469 PUSH1 0x44 DUP3 ADD MSTORE PUSH7 0x616C697A696E67 PUSH1 0xC8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xFF SWAP1 DUP2 AND LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0xFF SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST JUMP JUMPDEST PUSH2 0x1AAD DUP1 PUSH2 0xED PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x137 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6C0F79B6 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xCE6D41DE EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x2F0 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x76B707B7 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x86D1A69F EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0xB0EF18A0 EQ PUSH2 0x27C JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x368B8772 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x368B8772 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x48CD4CB1 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x4A941E5E EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x56BBC19D EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x69923515 EQ PUSH2 0x230 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x24042A0A EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x2B34378A EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x2CA65A79 EQ PUSH2 0x192 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0x17B7 JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x3C4 JUMP JUMPDEST PUSH2 0x16C PUSH1 0x64 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x479 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1704 JUMP JUMPDEST PUSH2 0x4E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH2 0x16C PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x22B CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x5C9 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x23E CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x73C JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x16C JUMP JUMPDEST PUSH2 0x16C PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x277 CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x75B JUMP JUMPDEST PUSH2 0x205 PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x970 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x16CC JUMP JUMPDEST PUSH2 0x983 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x176 SWAP2 SWAP1 PUSH2 0x18CD JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1767 JUMP JUMPDEST PUSH2 0xB4B JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xC00 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0xCB0 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0xCC4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x321 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33D SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x369 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x3B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3BF DUP4 PUSH1 0x0 DUP5 DUP5 PUSH2 0xCDF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3E2 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3FE SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x42A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x44E SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x46A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x476 PUSH1 0x2 SLOAD DUP3 PUSH2 0x1099 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3130323A555047524144455F4F4E43455F4F4D4C5900 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x476 DUP2 PUSH2 0x50C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F0 PUSH1 0x2 SLOAD DUP4 PUSH2 0x12BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x52A CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x55E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x572 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x5B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST DUP1 MLOAD PUSH2 0x5C5 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x1633 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x5E9 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x60A JUMPI POP PUSH2 0x5F8 ADDRESS PUSH2 0x12E1 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x60A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x1920 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x649 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND ADDRESS PUSH3 0x10000 MUL OR SWAP1 SSTORE PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH2 0x66E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 SWAP1 SWAP8 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE SWAP3 SLOAD DUP3 MSTORE PUSH1 0x6 SWAP1 MSTORE KECCAK256 PUSH2 0x6D8 SWAP2 PUSH2 0x12F4 JUMP JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE NUMBER PUSH1 0x3 SSTORE DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x756 SWAP1 PUSH2 0x1300 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x779 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x795 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x801 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x860 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030313A454D5054595F52454C454153450000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030323A4E45575F52454C454153455F4E4F545F454D PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x505459 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x93A JUMPI PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x8EE SWAP1 DUP4 PUSH2 0x130A JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x927 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xCDF JUMP JUMPDEST POP PUSH2 0x933 PUSH1 0x1 DUP3 PUSH2 0x19B1 JUMP JUMPDEST SWAP1 POP PUSH2 0x8CB JUMP JUMPDEST POP PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD50692EB75750D216C747528A2DFCED5915EAB7B4EE40BCF8120D0D035297B4 SWAP1 PUSH1 0x20 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x12BB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x9A3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x9C4 JUMPI POP PUSH2 0x9B2 ADDRESS PUSH2 0x12E1 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x9C4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x9E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x1920 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xA03 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xA2D PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xA6F JUMPI PUSH2 0xA4E PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1316 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xA77 PUSH2 0x13FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x7 DUP1 SLOAD PUSH2 0xAC8 SWAP1 PUSH2 0x19E0 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF4 SWAP1 PUSH2 0x19E0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB41 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB16 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB41 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB24 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xB69 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB85 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBD5 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0xBF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5C5 PUSH1 0x2 SLOAD PUSH1 0x0 DUP5 DUP5 PUSH2 0xCDF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xC1E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC8A SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0xCA6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5C5 DUP3 DUP3 PUSH2 0x1099 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE PUSH1 0x2 SLOAD DUP4 PUSH2 0x12BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xCBE SWAP1 DUP4 PUSH2 0x130A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x64 SWAP1 PUSH2 0xCF9 SWAP1 PUSH2 0x1300 JUMP JUMPDEST LT PUSH2 0xD50 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031303A4D41585F434F4E5452414354535F4C494D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO DUP1 PUSH2 0xD69 JUMPI POP DUP4 JUMPDEST PUSH2 0xDB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031313A52454C454153455F554E4B4E4F574E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST DUP3 PUSH2 0xE0C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031323A434F4E54524143545F4E414D455F454D5054 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x59 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xE24 SWAP1 DUP5 PUSH2 0x146B JUMP JUMPDEST ISZERO DUP1 PUSH2 0xE75 JUMPI POP DUP3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL EQ DUP1 ISZERO PUSH2 0xE75 JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0xECC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031333A434F4E54524143545F4E414D455F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031343A434F4E54524143545F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xF92 JUMPI PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xF6D SWAP1 DUP5 PUSH2 0x12F4 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xF88 DUP4 PUSH2 0x1A1B JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE DUP8 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0xFD7 SWAP1 PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1042 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031353A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x7C5C4E97E59CBD96C53653DFD3F538E50D7BAB44BAA352481FDC3FA7F18E3008 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x10B7 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10D3 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1123 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x113F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1157 SWAP1 DUP3 PUSH2 0x146B JUMP JUMPDEST PUSH2 0x11A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032303A434F4E54524143545F554E4B4E4F574E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x11BB SWAP1 DUP3 PUSH2 0x1483 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x11DB SWAP1 DUP5 SWAP1 PUSH2 0x19C9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0x121A SWAP1 PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1285 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032313A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x95BD8DB0F80EC14D4D7E375FB7FB3603144BA5B594106E0410243553F97A131 SWAP2 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP3 DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x148F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x14DE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1374 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1398 SWAP2 SWAP1 PUSH2 0x16E8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1469 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x97C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x1516 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x14D6 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xCBE JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xCBE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1503 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1629 JUMPI PUSH1 0x0 PUSH2 0x153A PUSH1 0x1 DUP4 PUSH2 0x19C9 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x154E SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x19C9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x15CF JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x157C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x15AD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x15EE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xCBE JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xCBE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x163F SWAP1 PUSH2 0x19E0 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1661 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x16A7 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x167A JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x16A7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x16A7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x16A7 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x168C JUMP JUMPDEST POP PUSH2 0x16B3 SWAP3 SWAP2 POP PUSH2 0x16B7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x16B3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x16B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16DD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x97C DUP2 PUSH2 0x1A62 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x97C DUP2 PUSH2 0x1A62 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1716 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1721 DUP2 PUSH2 0x1A62 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1740 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x97C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1760 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1779 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x178B DUP2 PUSH2 0x1A62 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17A8 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x17CB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x17E4 DUP2 PUSH2 0x1A62 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1800 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1817 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x182A JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x183C JUMPI PUSH2 0x183C PUSH2 0x1A4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1864 JUMPI PUSH2 0x1864 PUSH2 0x1A4C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x187C JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x18F9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x18DD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x190A JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x19C4 JUMPI PUSH2 0x19C4 PUSH2 0x1A36 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x19DB JUMPI PUSH2 0x19DB PUSH2 0x1A36 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x19F4 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1A15 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1A2F JUMPI PUSH2 0x1A2F PUSH2 0x1A36 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C PUSH32 0x94F441C1F862908CFF0BE31A75F685E50B915477A4CBE46F145AB6D61F926473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"115:490:98:-:0;;;;;;;;;;;;-1:-1:-1;466:22:88;:20;:22::i;:::-;115:490:98;;5366:279:47;5434:13;;;;;;;5433:14;5425:66;;;;-1:-1:-1;;;5425:66:47;;216:2:103;5425:66:47;;;198:21:103;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:103;;;338:37;392:19;;5425:66:47;;;;;;;;5505:12;;5520:15;5505:12;;;:30;5501:138;;;5551:12;:30;;-1:-1:-1;;5551:30:47;5566:15;5551:30;;;;;;5600:28;;564:36:103;;;5600:28:47;;552:2:103;537:18;5600:28:47;;;;;;;5501:138;5366:279::o;519:87:103:-;115:490:98;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:13228:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"130:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"139:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:103"},"nodeType":"YulFunctionCall","src":"132:22:103"},"nodeType":"YulExpressionStatement","src":"132:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:103"},"nodeType":"YulFunctionCall","src":"101:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:103"},"nodeType":"YulFunctionCall","src":"97:32:103"},"nodeType":"YulIf","src":"94:2:103"},{"nodeType":"YulVariableDeclaration","src":"165:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"191:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"178:12:103"},"nodeType":"YulFunctionCall","src":"178:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"169:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"235:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"210:24:103"},"nodeType":"YulFunctionCall","src":"210:31:103"},"nodeType":"YulExpressionStatement","src":"210:31:103"},{"nodeType":"YulAssignment","src":"250:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"260:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"250:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:103","type":""}],"src":"14:257:103"},{"body":{"nodeType":"YulBlock","src":"357:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"403:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"412:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"420:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"405:6:103"},"nodeType":"YulFunctionCall","src":"405:22:103"},"nodeType":"YulExpressionStatement","src":"405:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"378:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"387:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"374:3:103"},"nodeType":"YulFunctionCall","src":"374:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"399:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"370:3:103"},"nodeType":"YulFunctionCall","src":"370:32:103"},"nodeType":"YulIf","src":"367:2:103"},{"nodeType":"YulVariableDeclaration","src":"438:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"457:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"451:5:103"},"nodeType":"YulFunctionCall","src":"451:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"442:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"501:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"476:24:103"},"nodeType":"YulFunctionCall","src":"476:31:103"},"nodeType":"YulExpressionStatement","src":"476:31:103"},{"nodeType":"YulAssignment","src":"516:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"526:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"516:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"323:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"334:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"346:6:103","type":""}],"src":"276:261:103"},{"body":{"nodeType":"YulBlock","src":"629:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"675:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"684:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"692:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"677:6:103"},"nodeType":"YulFunctionCall","src":"677:22:103"},"nodeType":"YulExpressionStatement","src":"677:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"650:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"659:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"646:3:103"},"nodeType":"YulFunctionCall","src":"646:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"671:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"642:3:103"},"nodeType":"YulFunctionCall","src":"642:32:103"},"nodeType":"YulIf","src":"639:2:103"},{"nodeType":"YulVariableDeclaration","src":"710:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"736:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"723:12:103"},"nodeType":"YulFunctionCall","src":"723:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"714:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"780:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"755:24:103"},"nodeType":"YulFunctionCall","src":"755:31:103"},"nodeType":"YulExpressionStatement","src":"755:31:103"},{"nodeType":"YulAssignment","src":"795:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"805:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"795:6:103"}]},{"nodeType":"YulAssignment","src":"819:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"846:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"857:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"842:3:103"},"nodeType":"YulFunctionCall","src":"842:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"829:12:103"},"nodeType":"YulFunctionCall","src":"829:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"819:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"587:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"598:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"610:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"618:6:103","type":""}],"src":"542:325:103"},{"body":{"nodeType":"YulBlock","src":"950:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"996:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1005:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1013:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"998:6:103"},"nodeType":"YulFunctionCall","src":"998:22:103"},"nodeType":"YulExpressionStatement","src":"998:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"971:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"980:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"967:3:103"},"nodeType":"YulFunctionCall","src":"967:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"992:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"963:3:103"},"nodeType":"YulFunctionCall","src":"963:32:103"},"nodeType":"YulIf","src":"960:2:103"},{"nodeType":"YulVariableDeclaration","src":"1031:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1050:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1044:5:103"},"nodeType":"YulFunctionCall","src":"1044:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1035:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1113:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1122:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1130:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1115:6:103"},"nodeType":"YulFunctionCall","src":"1115:22:103"},"nodeType":"YulExpressionStatement","src":"1115:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1082:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1103:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1096:6:103"},"nodeType":"YulFunctionCall","src":"1096:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1089:6:103"},"nodeType":"YulFunctionCall","src":"1089:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1079:2:103"},"nodeType":"YulFunctionCall","src":"1079:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1072:6:103"},"nodeType":"YulFunctionCall","src":"1072:40:103"},"nodeType":"YulIf","src":"1069:2:103"},{"nodeType":"YulAssignment","src":"1148:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1158:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1148:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"916:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"927:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"939:6:103","type":""}],"src":"872:297:103"},{"body":{"nodeType":"YulBlock","src":"1244:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"1290:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1299:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1307:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1292:6:103"},"nodeType":"YulFunctionCall","src":"1292:22:103"},"nodeType":"YulExpressionStatement","src":"1292:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1265:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1274:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1261:3:103"},"nodeType":"YulFunctionCall","src":"1261:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1286:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1257:3:103"},"nodeType":"YulFunctionCall","src":"1257:32:103"},"nodeType":"YulIf","src":"1254:2:103"},{"nodeType":"YulAssignment","src":"1325:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1348:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1335:12:103"},"nodeType":"YulFunctionCall","src":"1335:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1325:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1210:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1221:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1233:6:103","type":""}],"src":"1174:190:103"},{"body":{"nodeType":"YulBlock","src":"1456:238:103","statements":[{"body":{"nodeType":"YulBlock","src":"1502:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1511:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1519:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1504:6:103"},"nodeType":"YulFunctionCall","src":"1504:22:103"},"nodeType":"YulExpressionStatement","src":"1504:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1477:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1486:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1473:3:103"},"nodeType":"YulFunctionCall","src":"1473:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1498:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1469:3:103"},"nodeType":"YulFunctionCall","src":"1469:32:103"},"nodeType":"YulIf","src":"1466:2:103"},{"nodeType":"YulAssignment","src":"1537:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1560:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1547:12:103"},"nodeType":"YulFunctionCall","src":"1547:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1537:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1579:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1609:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1620:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1605:3:103"},"nodeType":"YulFunctionCall","src":"1605:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1592:12:103"},"nodeType":"YulFunctionCall","src":"1592:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1583:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1658:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1633:24:103"},"nodeType":"YulFunctionCall","src":"1633:31:103"},"nodeType":"YulExpressionStatement","src":"1633:31:103"},{"nodeType":"YulAssignment","src":"1673:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1683:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1673:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1414:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1425:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1437:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1445:6:103","type":""}],"src":"1369:325:103"},{"body":{"nodeType":"YulBlock","src":"1786:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"1832:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1841:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1849:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1834:6:103"},"nodeType":"YulFunctionCall","src":"1834:22:103"},"nodeType":"YulExpressionStatement","src":"1834:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1807:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1816:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1803:3:103"},"nodeType":"YulFunctionCall","src":"1803:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1828:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1799:3:103"},"nodeType":"YulFunctionCall","src":"1799:32:103"},"nodeType":"YulIf","src":"1796:2:103"},{"nodeType":"YulAssignment","src":"1867:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1890:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1877:12:103"},"nodeType":"YulFunctionCall","src":"1877:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1867:6:103"}]},{"nodeType":"YulAssignment","src":"1909:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1936:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1947:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1932:3:103"},"nodeType":"YulFunctionCall","src":"1932:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1919:12:103"},"nodeType":"YulFunctionCall","src":"1919:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1909:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1744:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1755:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1767:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1775:6:103","type":""}],"src":"1699:258:103"},{"body":{"nodeType":"YulBlock","src":"2066:289:103","statements":[{"body":{"nodeType":"YulBlock","src":"2112:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2121:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2129:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2114:6:103"},"nodeType":"YulFunctionCall","src":"2114:22:103"},"nodeType":"YulExpressionStatement","src":"2114:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2087:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2096:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2083:3:103"},"nodeType":"YulFunctionCall","src":"2083:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2108:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2079:3:103"},"nodeType":"YulFunctionCall","src":"2079:32:103"},"nodeType":"YulIf","src":"2076:2:103"},{"nodeType":"YulAssignment","src":"2147:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2170:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2157:12:103"},"nodeType":"YulFunctionCall","src":"2157:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2147:6:103"}]},{"nodeType":"YulAssignment","src":"2189:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2216:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2227:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2212:3:103"},"nodeType":"YulFunctionCall","src":"2212:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2199:12:103"},"nodeType":"YulFunctionCall","src":"2199:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2189:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2240:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2270:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2281:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2266:3:103"},"nodeType":"YulFunctionCall","src":"2266:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2253:12:103"},"nodeType":"YulFunctionCall","src":"2253:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2244:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2319:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2294:24:103"},"nodeType":"YulFunctionCall","src":"2294:31:103"},"nodeType":"YulExpressionStatement","src":"2294:31:103"},{"nodeType":"YulAssignment","src":"2334:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2344:5:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2334:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes32t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2016:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2027:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2039:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2047:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2055:6:103","type":""}],"src":"1962:393:103"},{"body":{"nodeType":"YulBlock","src":"2440:887:103","statements":[{"body":{"nodeType":"YulBlock","src":"2486:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2495:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2503:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2488:6:103"},"nodeType":"YulFunctionCall","src":"2488:22:103"},"nodeType":"YulExpressionStatement","src":"2488:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2461:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2470:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2457:3:103"},"nodeType":"YulFunctionCall","src":"2457:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2482:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2453:3:103"},"nodeType":"YulFunctionCall","src":"2453:32:103"},"nodeType":"YulIf","src":"2450:2:103"},{"nodeType":"YulVariableDeclaration","src":"2521:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2548:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2535:12:103"},"nodeType":"YulFunctionCall","src":"2535:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2525:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2567:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"2577:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2571:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2622:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2631:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2639:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2624:6:103"},"nodeType":"YulFunctionCall","src":"2624:22:103"},"nodeType":"YulExpressionStatement","src":"2624:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2610:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2618:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2607:2:103"},"nodeType":"YulFunctionCall","src":"2607:14:103"},"nodeType":"YulIf","src":"2604:2:103"},{"nodeType":"YulVariableDeclaration","src":"2657:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2671:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"2682:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2667:3:103"},"nodeType":"YulFunctionCall","src":"2667:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2661:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2737:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2746:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2754:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2739:6:103"},"nodeType":"YulFunctionCall","src":"2739:22:103"},"nodeType":"YulExpressionStatement","src":"2739:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2716:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2712:3:103"},"nodeType":"YulFunctionCall","src":"2712:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2727:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2708:3:103"},"nodeType":"YulFunctionCall","src":"2708:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2701:6:103"},"nodeType":"YulFunctionCall","src":"2701:35:103"},"nodeType":"YulIf","src":"2698:2:103"},{"nodeType":"YulVariableDeclaration","src":"2772:26:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2795:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2782:12:103"},"nodeType":"YulFunctionCall","src":"2782:16:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2776:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2821:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2823:16:103"},"nodeType":"YulFunctionCall","src":"2823:18:103"},"nodeType":"YulExpressionStatement","src":"2823:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2813:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2817:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2810:2:103"},"nodeType":"YulFunctionCall","src":"2810:10:103"},"nodeType":"YulIf","src":"2807:2:103"},{"nodeType":"YulVariableDeclaration","src":"2852:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2866:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2862:3:103"},"nodeType":"YulFunctionCall","src":"2862:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2856:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2878:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2898:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2892:5:103"},"nodeType":"YulFunctionCall","src":"2892:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2882:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2910:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2932:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2956:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2960:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2952:3:103"},"nodeType":"YulFunctionCall","src":"2952:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"2967:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2948:3:103"},"nodeType":"YulFunctionCall","src":"2948:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"2972:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2944:3:103"},"nodeType":"YulFunctionCall","src":"2944:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"2977:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2940:3:103"},"nodeType":"YulFunctionCall","src":"2940:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2928:3:103"},"nodeType":"YulFunctionCall","src":"2928:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2914:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3040:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3042:16:103"},"nodeType":"YulFunctionCall","src":"3042:18:103"},"nodeType":"YulExpressionStatement","src":"3042:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2999:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"3011:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2996:2:103"},"nodeType":"YulFunctionCall","src":"2996:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3019:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"3031:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3016:2:103"},"nodeType":"YulFunctionCall","src":"3016:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2993:2:103"},"nodeType":"YulFunctionCall","src":"2993:46:103"},"nodeType":"YulIf","src":"2990:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3078:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"3082:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:22:103"},"nodeType":"YulExpressionStatement","src":"3071:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3109:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"3117:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3102:6:103"},"nodeType":"YulFunctionCall","src":"3102:18:103"},"nodeType":"YulExpressionStatement","src":"3102:18:103"},{"body":{"nodeType":"YulBlock","src":"3166:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3175:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3183:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3168:6:103"},"nodeType":"YulFunctionCall","src":"3168:22:103"},"nodeType":"YulExpressionStatement","src":"3168:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3143:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"3147:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3139:3:103"},"nodeType":"YulFunctionCall","src":"3139:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3152:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3135:3:103"},"nodeType":"YulFunctionCall","src":"3135:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3157:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3132:2:103"},"nodeType":"YulFunctionCall","src":"3132:33:103"},"nodeType":"YulIf","src":"3129:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3218:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3226:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3214:3:103"},"nodeType":"YulFunctionCall","src":"3214:15:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3235:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"3239:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3231:3:103"},"nodeType":"YulFunctionCall","src":"3231:11:103"},{"name":"_3","nodeType":"YulIdentifier","src":"3244:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"3201:12:103"},"nodeType":"YulFunctionCall","src":"3201:46:103"},"nodeType":"YulExpressionStatement","src":"3201:46:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"3271:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"3279:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3267:3:103"},"nodeType":"YulFunctionCall","src":"3267:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"3284:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3263:3:103"},"nodeType":"YulFunctionCall","src":"3263:24:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3289:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3256:6:103"},"nodeType":"YulFunctionCall","src":"3256:40:103"},"nodeType":"YulExpressionStatement","src":"3256:40:103"},{"nodeType":"YulAssignment","src":"3305:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"3315:6:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3305:6:103"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2406:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2417:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2429:6:103","type":""}],"src":"2360:967:103"},{"body":{"nodeType":"YulBlock","src":"3402:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3448:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3457:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3465:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3450:6:103"},"nodeType":"YulFunctionCall","src":"3450:22:103"},"nodeType":"YulExpressionStatement","src":"3450:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3423:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3432:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3419:3:103"},"nodeType":"YulFunctionCall","src":"3419:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3444:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3415:3:103"},"nodeType":"YulFunctionCall","src":"3415:32:103"},"nodeType":"YulIf","src":"3412:2:103"},{"nodeType":"YulAssignment","src":"3483:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3506:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3493:12:103"},"nodeType":"YulFunctionCall","src":"3493:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3483:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3368:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3379:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3391:6:103","type":""}],"src":"3332:190:103"},{"body":{"nodeType":"YulBlock","src":"3628:102:103","statements":[{"nodeType":"YulAssignment","src":"3638:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3650:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3661:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3646:3:103"},"nodeType":"YulFunctionCall","src":"3646:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3638:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3680:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3695:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3711:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3716:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3707:3:103"},"nodeType":"YulFunctionCall","src":"3707:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3720:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3703:3:103"},"nodeType":"YulFunctionCall","src":"3703:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3691:3:103"},"nodeType":"YulFunctionCall","src":"3691:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3673:6:103"},"nodeType":"YulFunctionCall","src":"3673:51:103"},"nodeType":"YulExpressionStatement","src":"3673:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3597:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3608:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3619:4:103","type":""}],"src":"3527:203:103"},{"body":{"nodeType":"YulBlock","src":"3927:164:103","statements":[{"nodeType":"YulAssignment","src":"3937:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3949:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3960:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3945:3:103"},"nodeType":"YulFunctionCall","src":"3945:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3937:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3979:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3994:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4010:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4015:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4006:3:103"},"nodeType":"YulFunctionCall","src":"4006:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4019:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4002:3:103"},"nodeType":"YulFunctionCall","src":"4002:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3990:3:103"},"nodeType":"YulFunctionCall","src":"3990:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3972:6:103"},"nodeType":"YulFunctionCall","src":"3972:51:103"},"nodeType":"YulExpressionStatement","src":"3972:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4043:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4054:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4039:3:103"},"nodeType":"YulFunctionCall","src":"4039:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4059:25:103","type":"","value":"InstanceOperatorService"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4032:6:103"},"nodeType":"YulFunctionCall","src":"4032:53:103"},"nodeType":"YulExpressionStatement","src":"4032:53:103"}]},"name":"abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3896:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3907:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3918:4:103","type":""}],"src":"3735:356:103"},{"body":{"nodeType":"YulBlock","src":"4191:92:103","statements":[{"nodeType":"YulAssignment","src":"4201:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4213:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4224:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4209:3:103"},"nodeType":"YulFunctionCall","src":"4209:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4201:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4243:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4268:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4261:6:103"},"nodeType":"YulFunctionCall","src":"4261:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4254:6:103"},"nodeType":"YulFunctionCall","src":"4254:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4236:6:103"},"nodeType":"YulFunctionCall","src":"4236:41:103"},"nodeType":"YulExpressionStatement","src":"4236:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4160:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4171:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4182:4:103","type":""}],"src":"4096:187:103"},{"body":{"nodeType":"YulBlock","src":"4389:76:103","statements":[{"nodeType":"YulAssignment","src":"4399:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4411:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4422:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4407:3:103"},"nodeType":"YulFunctionCall","src":"4407:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4399:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4441:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4452:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4434:6:103"},"nodeType":"YulFunctionCall","src":"4434:25:103"},"nodeType":"YulExpressionStatement","src":"4434:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4358:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4369:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4380:4:103","type":""}],"src":"4288:177:103"},{"body":{"nodeType":"YulBlock","src":"4599:119:103","statements":[{"nodeType":"YulAssignment","src":"4609:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4621:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4632:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4617:3:103"},"nodeType":"YulFunctionCall","src":"4617:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4609:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4651:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4662:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4644:6:103"},"nodeType":"YulFunctionCall","src":"4644:25:103"},"nodeType":"YulExpressionStatement","src":"4644:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4689:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4700:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4685:3:103"},"nodeType":"YulFunctionCall","src":"4685:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"4705:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4678:6:103"},"nodeType":"YulFunctionCall","src":"4678:34:103"},"nodeType":"YulExpressionStatement","src":"4678:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4560:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4571:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4579:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4590:4:103","type":""}],"src":"4470:248:103"},{"body":{"nodeType":"YulBlock","src":"4902:248:103","statements":[{"nodeType":"YulAssignment","src":"4912:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4924:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4935:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4920:3:103"},"nodeType":"YulFunctionCall","src":"4920:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4912:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4955:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4966:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4948:6:103"},"nodeType":"YulFunctionCall","src":"4948:25:103"},"nodeType":"YulExpressionStatement","src":"4948:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4993:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5004:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4989:3:103"},"nodeType":"YulFunctionCall","src":"4989:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"5009:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4982:6:103"},"nodeType":"YulFunctionCall","src":"4982:34:103"},"nodeType":"YulExpressionStatement","src":"4982:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5047:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5032:3:103"},"nodeType":"YulFunctionCall","src":"5032:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5056:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5072:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5077:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5068:3:103"},"nodeType":"YulFunctionCall","src":"5068:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5081:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5064:3:103"},"nodeType":"YulFunctionCall","src":"5064:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5052:3:103"},"nodeType":"YulFunctionCall","src":"5052:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5025:6:103"},"nodeType":"YulFunctionCall","src":"5025:60:103"},"nodeType":"YulExpressionStatement","src":"5025:60:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5105:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5116:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5101:3:103"},"nodeType":"YulFunctionCall","src":"5101:18:103"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5135:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5128:6:103"},"nodeType":"YulFunctionCall","src":"5128:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5121:6:103"},"nodeType":"YulFunctionCall","src":"5121:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5094:6:103"},"nodeType":"YulFunctionCall","src":"5094:50:103"},"nodeType":"YulExpressionStatement","src":"5094:50:103"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32_t_address_t_bool__to_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4847:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4858:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4866:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4874:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4882:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4893:4:103","type":""}],"src":"4723:427:103"},{"body":{"nodeType":"YulBlock","src":"5262:87:103","statements":[{"nodeType":"YulAssignment","src":"5272:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5284:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5295:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5280:3:103"},"nodeType":"YulFunctionCall","src":"5280:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5272:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5314:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5329:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5337:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5325:3:103"},"nodeType":"YulFunctionCall","src":"5325:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5307:6:103"},"nodeType":"YulFunctionCall","src":"5307:36:103"},"nodeType":"YulExpressionStatement","src":"5307:36:103"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5231:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5242:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5253:4:103","type":""}],"src":"5155:194:103"},{"body":{"nodeType":"YulBlock","src":"5475:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"5485:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5495:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5489:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5513:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5524:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5506:6:103"},"nodeType":"YulFunctionCall","src":"5506:21:103"},"nodeType":"YulExpressionStatement","src":"5506:21:103"},{"nodeType":"YulVariableDeclaration","src":"5536:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5556:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5550:5:103"},"nodeType":"YulFunctionCall","src":"5550:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5540:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5583:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5594:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5579:3:103"},"nodeType":"YulFunctionCall","src":"5579:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"5599:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5572:6:103"},"nodeType":"YulFunctionCall","src":"5572:34:103"},"nodeType":"YulExpressionStatement","src":"5572:34:103"},{"nodeType":"YulVariableDeclaration","src":"5615:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"5624:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5619:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5687:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5716:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"5727:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5712:3:103"},"nodeType":"YulFunctionCall","src":"5712:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"5731:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5708:3:103"},"nodeType":"YulFunctionCall","src":"5708:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5750:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"5758:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5746:3:103"},"nodeType":"YulFunctionCall","src":"5746:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5762:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5742:3:103"},"nodeType":"YulFunctionCall","src":"5742:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5736:5:103"},"nodeType":"YulFunctionCall","src":"5736:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5701:6:103"},"nodeType":"YulFunctionCall","src":"5701:66:103"},"nodeType":"YulExpressionStatement","src":"5701:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5648:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5651:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5645:2:103"},"nodeType":"YulFunctionCall","src":"5645:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5659:19:103","statements":[{"nodeType":"YulAssignment","src":"5661:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5670:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5673:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5666:3:103"},"nodeType":"YulFunctionCall","src":"5666:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5661:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"5641:3:103","statements":[]},"src":"5637:140:103"},{"body":{"nodeType":"YulBlock","src":"5811:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5840:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"5851:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5836:3:103"},"nodeType":"YulFunctionCall","src":"5836:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"5860:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5832:3:103"},"nodeType":"YulFunctionCall","src":"5832:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"5865:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5825:6:103"},"nodeType":"YulFunctionCall","src":"5825:45:103"},"nodeType":"YulExpressionStatement","src":"5825:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5792:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"5795:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5789:2:103"},"nodeType":"YulFunctionCall","src":"5789:13:103"},"nodeType":"YulIf","src":"5786:2:103"},{"nodeType":"YulAssignment","src":"5889:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5905:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5924:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5932:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5920:3:103"},"nodeType":"YulFunctionCall","src":"5920:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5941:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5937:3:103"},"nodeType":"YulFunctionCall","src":"5937:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5916:3:103"},"nodeType":"YulFunctionCall","src":"5916:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5901:3:103"},"nodeType":"YulFunctionCall","src":"5901:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"5948:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5897:3:103"},"nodeType":"YulFunctionCall","src":"5897:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5889:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5444:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5455:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5466:4:103","type":""}],"src":"5354:603:103"},{"body":{"nodeType":"YulBlock","src":"6136:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6153:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6164:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6146:6:103"},"nodeType":"YulFunctionCall","src":"6146:21:103"},"nodeType":"YulExpressionStatement","src":"6146:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6187:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6198:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6183:3:103"},"nodeType":"YulFunctionCall","src":"6183:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6203:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6176:6:103"},"nodeType":"YulFunctionCall","src":"6176:30:103"},"nodeType":"YulExpressionStatement","src":"6176:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6226:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6237:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6222:3:103"},"nodeType":"YulFunctionCall","src":"6222:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6242:34:103","type":"","value":"ERROR:CRC-004:CONTRACT_NOT_REGIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6215:6:103"},"nodeType":"YulFunctionCall","src":"6215:62:103"},"nodeType":"YulExpressionStatement","src":"6215:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6297:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6308:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6293:3:103"},"nodeType":"YulFunctionCall","src":"6293:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6313:7:103","type":"","value":"TERED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6286:6:103"},"nodeType":"YulFunctionCall","src":"6286:35:103"},"nodeType":"YulExpressionStatement","src":"6286:35:103"},{"nodeType":"YulAssignment","src":"6330:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6342:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6353:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6338:3:103"},"nodeType":"YulFunctionCall","src":"6338:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6330:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6113:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6127:4:103","type":""}],"src":"5962:401:103"},{"body":{"nodeType":"YulBlock","src":"6542:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6559:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6570:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6552:6:103"},"nodeType":"YulFunctionCall","src":"6552:21:103"},"nodeType":"YulExpressionStatement","src":"6552:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6593:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6604:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6589:3:103"},"nodeType":"YulFunctionCall","src":"6589:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6609:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6582:6:103"},"nodeType":"YulFunctionCall","src":"6582:30:103"},"nodeType":"YulExpressionStatement","src":"6582:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6632:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6643:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6628:3:103"},"nodeType":"YulFunctionCall","src":"6628:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6648:34:103","type":"","value":"ERROR:REC-021:CONTRACT_NUMBER_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6621:6:103"},"nodeType":"YulFunctionCall","src":"6621:62:103"},"nodeType":"YulExpressionStatement","src":"6621:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6703:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6714:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6699:3:103"},"nodeType":"YulFunctionCall","src":"6699:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6719:8:103","type":"","value":"SMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6692:6:103"},"nodeType":"YulFunctionCall","src":"6692:36:103"},"nodeType":"YulExpressionStatement","src":"6692:36:103"},{"nodeType":"YulAssignment","src":"6737:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6749:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6760:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6745:3:103"},"nodeType":"YulFunctionCall","src":"6745:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6737:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6519:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6533:4:103","type":""}],"src":"6368:402:103"},{"body":{"nodeType":"YulBlock","src":"6949:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6966:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6977:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6959:6:103"},"nodeType":"YulFunctionCall","src":"6959:21:103"},"nodeType":"YulExpressionStatement","src":"6959:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7000:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7011:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6996:3:103"},"nodeType":"YulFunctionCall","src":"6996:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7016:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6989:6:103"},"nodeType":"YulFunctionCall","src":"6989:30:103"},"nodeType":"YulExpressionStatement","src":"6989:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7039:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7050:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7035:3:103"},"nodeType":"YulFunctionCall","src":"7035:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7055:34:103","type":"","value":"ERROR:REC-012:CONTRACT_NAME_EMPT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7028:6:103"},"nodeType":"YulFunctionCall","src":"7028:62:103"},"nodeType":"YulExpressionStatement","src":"7028:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7121:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7106:3:103"},"nodeType":"YulFunctionCall","src":"7106:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7126:3:103","type":"","value":"Y"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7099:6:103"},"nodeType":"YulFunctionCall","src":"7099:31:103"},"nodeType":"YulExpressionStatement","src":"7099:31:103"},{"nodeType":"YulAssignment","src":"7139:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7162:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7147:3:103"},"nodeType":"YulFunctionCall","src":"7147:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7139:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6926:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6940:4:103","type":""}],"src":"6775:397:103"},{"body":{"nodeType":"YulBlock","src":"7351:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7368:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7379:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7361:6:103"},"nodeType":"YulFunctionCall","src":"7361:21:103"},"nodeType":"YulExpressionStatement","src":"7361:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7402:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7413:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7398:3:103"},"nodeType":"YulFunctionCall","src":"7398:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7418:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7391:6:103"},"nodeType":"YulFunctionCall","src":"7391:30:103"},"nodeType":"YulExpressionStatement","src":"7391:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7441:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7452:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7437:3:103"},"nodeType":"YulFunctionCall","src":"7437:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7457:29:103","type":"","value":"ERROR:REC-001:EMPTY_RELEASE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7430:6:103"},"nodeType":"YulFunctionCall","src":"7430:57:103"},"nodeType":"YulExpressionStatement","src":"7430:57:103"},{"nodeType":"YulAssignment","src":"7496:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7508:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7519:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7504:3:103"},"nodeType":"YulFunctionCall","src":"7504:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7496:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7328:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7342:4:103","type":""}],"src":"7177:351:103"},{"body":{"nodeType":"YulBlock","src":"7707:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7724:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7735:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7717:6:103"},"nodeType":"YulFunctionCall","src":"7717:21:103"},"nodeType":"YulExpressionStatement","src":"7717:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7758:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7769:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7754:3:103"},"nodeType":"YulFunctionCall","src":"7754:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7774:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7747:6:103"},"nodeType":"YulFunctionCall","src":"7747:30:103"},"nodeType":"YulExpressionStatement","src":"7747:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7797:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7808:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7793:3:103"},"nodeType":"YulFunctionCall","src":"7793:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7813:33:103","type":"","value":"ERROR:REC-102:UPGRADE_ONCE_OMLY"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7786:6:103"},"nodeType":"YulFunctionCall","src":"7786:61:103"},"nodeType":"YulExpressionStatement","src":"7786:61:103"},{"nodeType":"YulAssignment","src":"7856:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7868:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7879:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7864:3:103"},"nodeType":"YulFunctionCall","src":"7864:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7856:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_584862d2e254607edab8323f691596b09145970a7a655d210eb1f81c78c94e40__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7684:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7698:4:103","type":""}],"src":"7533:355:103"},{"body":{"nodeType":"YulBlock","src":"8067:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8084:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8095:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8077:6:103"},"nodeType":"YulFunctionCall","src":"8077:21:103"},"nodeType":"YulExpressionStatement","src":"8077:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8118:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8129:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8114:3:103"},"nodeType":"YulFunctionCall","src":"8114:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8134:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8107:6:103"},"nodeType":"YulFunctionCall","src":"8107:30:103"},"nodeType":"YulExpressionStatement","src":"8107:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8157:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8168:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8153:3:103"},"nodeType":"YulFunctionCall","src":"8153:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8173:34:103","type":"","value":"ERROR:REC-015:CONTRACT_NUMBER_MI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8146:6:103"},"nodeType":"YulFunctionCall","src":"8146:62:103"},"nodeType":"YulExpressionStatement","src":"8146:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8228:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8239:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8224:3:103"},"nodeType":"YulFunctionCall","src":"8224:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8244:8:103","type":"","value":"SMATCH"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8217:6:103"},"nodeType":"YulFunctionCall","src":"8217:36:103"},"nodeType":"YulExpressionStatement","src":"8217:36:103"},{"nodeType":"YulAssignment","src":"8262:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8274:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8285:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8270:3:103"},"nodeType":"YulFunctionCall","src":"8270:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8262:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8044:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8058:4:103","type":""}],"src":"7893:402:103"},{"body":{"nodeType":"YulBlock","src":"8474:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8491:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8502:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8484:6:103"},"nodeType":"YulFunctionCall","src":"8484:21:103"},"nodeType":"YulExpressionStatement","src":"8484:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8525:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8536:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8521:3:103"},"nodeType":"YulFunctionCall","src":"8521:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8541:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8514:6:103"},"nodeType":"YulFunctionCall","src":"8514:30:103"},"nodeType":"YulExpressionStatement","src":"8514:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8564:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8575:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8560:3:103"},"nodeType":"YulFunctionCall","src":"8560:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8580:34:103","type":"","value":"Initializable: contract is alrea"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8553:6:103"},"nodeType":"YulFunctionCall","src":"8553:62:103"},"nodeType":"YulExpressionStatement","src":"8553:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8635:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8646:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8631:3:103"},"nodeType":"YulFunctionCall","src":"8631:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8651:16:103","type":"","value":"dy initialized"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8624:6:103"},"nodeType":"YulFunctionCall","src":"8624:44:103"},"nodeType":"YulExpressionStatement","src":"8624:44:103"},{"nodeType":"YulAssignment","src":"8677:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8689:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8700:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8685:3:103"},"nodeType":"YulFunctionCall","src":"8685:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8677:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8451:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8465:4:103","type":""}],"src":"8300:410:103"},{"body":{"nodeType":"YulBlock","src":"8889:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8906:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8917:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8899:6:103"},"nodeType":"YulFunctionCall","src":"8899:21:103"},"nodeType":"YulExpressionStatement","src":"8899:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8940:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8951:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8936:3:103"},"nodeType":"YulFunctionCall","src":"8936:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8956:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8929:6:103"},"nodeType":"YulFunctionCall","src":"8929:30:103"},"nodeType":"YulExpressionStatement","src":"8929:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8979:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8990:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8975:3:103"},"nodeType":"YulFunctionCall","src":"8975:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8995:34:103","type":"","value":"ERROR:REC-002:NEW_RELEASE_NOT_EM"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8968:6:103"},"nodeType":"YulFunctionCall","src":"8968:62:103"},"nodeType":"YulExpressionStatement","src":"8968:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9050:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9061:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9046:3:103"},"nodeType":"YulFunctionCall","src":"9046:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9066:5:103","type":"","value":"PTY"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9039:6:103"},"nodeType":"YulFunctionCall","src":"9039:33:103"},"nodeType":"YulExpressionStatement","src":"9039:33:103"},{"nodeType":"YulAssignment","src":"9081:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9093:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9104:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9089:3:103"},"nodeType":"YulFunctionCall","src":"9089:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9081:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8866:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8880:4:103","type":""}],"src":"8715:399:103"},{"body":{"nodeType":"YulBlock","src":"9293:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9310:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9321:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9303:6:103"},"nodeType":"YulFunctionCall","src":"9303:21:103"},"nodeType":"YulExpressionStatement","src":"9303:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9355:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9340:3:103"},"nodeType":"YulFunctionCall","src":"9340:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9360:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9333:6:103"},"nodeType":"YulFunctionCall","src":"9333:30:103"},"nodeType":"YulExpressionStatement","src":"9333:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9383:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9394:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9379:3:103"},"nodeType":"YulFunctionCall","src":"9379:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9399:34:103","type":"","value":"ERROR:REC-013:CONTRACT_NAME_EXIS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9372:6:103"},"nodeType":"YulFunctionCall","src":"9372:62:103"},"nodeType":"YulExpressionStatement","src":"9372:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9465:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9450:3:103"},"nodeType":"YulFunctionCall","src":"9450:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9470:4:103","type":"","value":"TS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9443:6:103"},"nodeType":"YulFunctionCall","src":"9443:32:103"},"nodeType":"YulExpressionStatement","src":"9443:32:103"},{"nodeType":"YulAssignment","src":"9484:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9507:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9492:3:103"},"nodeType":"YulFunctionCall","src":"9492:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9484:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9270:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9284:4:103","type":""}],"src":"9119:398:103"},{"body":{"nodeType":"YulBlock","src":"9696:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9713:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9724:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9706:6:103"},"nodeType":"YulFunctionCall","src":"9706:21:103"},"nodeType":"YulExpressionStatement","src":"9706:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9747:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9758:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9743:3:103"},"nodeType":"YulFunctionCall","src":"9743:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9763:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9736:6:103"},"nodeType":"YulFunctionCall","src":"9736:30:103"},"nodeType":"YulExpressionStatement","src":"9736:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9786:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9797:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9782:3:103"},"nodeType":"YulFunctionCall","src":"9782:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9802:34:103","type":"","value":"ERROR:REC-014:CONTRACT_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9775:6:103"},"nodeType":"YulFunctionCall","src":"9775:62:103"},"nodeType":"YulExpressionStatement","src":"9775:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9857:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9868:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9853:3:103"},"nodeType":"YulFunctionCall","src":"9853:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9873:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9846:6:103"},"nodeType":"YulFunctionCall","src":"9846:33:103"},"nodeType":"YulExpressionStatement","src":"9846:33:103"},{"nodeType":"YulAssignment","src":"9888:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9900:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9911:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9896:3:103"},"nodeType":"YulFunctionCall","src":"9896:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9888:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9673:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9687:4:103","type":""}],"src":"9522:399:103"},{"body":{"nodeType":"YulBlock","src":"10100:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10117:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10128:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10110:6:103"},"nodeType":"YulFunctionCall","src":"10110:21:103"},"nodeType":"YulExpressionStatement","src":"10110:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10162:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10147:3:103"},"nodeType":"YulFunctionCall","src":"10147:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10167:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10140:6:103"},"nodeType":"YulFunctionCall","src":"10140:30:103"},"nodeType":"YulExpressionStatement","src":"10140:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10190:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10201:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10186:3:103"},"nodeType":"YulFunctionCall","src":"10186:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10206:32:103","type":"","value":"ERROR:REC-020:CONTRACT_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10179:6:103"},"nodeType":"YulFunctionCall","src":"10179:60:103"},"nodeType":"YulExpressionStatement","src":"10179:60:103"},{"nodeType":"YulAssignment","src":"10248:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10260:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10271:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10256:3:103"},"nodeType":"YulFunctionCall","src":"10256:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10248:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10077:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10091:4:103","type":""}],"src":"9926:354:103"},{"body":{"nodeType":"YulBlock","src":"10459:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10476:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10487:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10469:6:103"},"nodeType":"YulFunctionCall","src":"10469:21:103"},"nodeType":"YulExpressionStatement","src":"10469:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10510:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10521:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10506:3:103"},"nodeType":"YulFunctionCall","src":"10506:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10526:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10499:6:103"},"nodeType":"YulFunctionCall","src":"10499:30:103"},"nodeType":"YulExpressionStatement","src":"10499:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10549:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10560:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10545:3:103"},"nodeType":"YulFunctionCall","src":"10545:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10565:34:103","type":"","value":"ERROR:CRC-001:NOT_INSTANCE_OPERA"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10538:6:103"},"nodeType":"YulFunctionCall","src":"10538:62:103"},"nodeType":"YulExpressionStatement","src":"10538:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10620:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10631:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10616:3:103"},"nodeType":"YulFunctionCall","src":"10616:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10636:5:103","type":"","value":"TOR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10609:6:103"},"nodeType":"YulFunctionCall","src":"10609:33:103"},"nodeType":"YulExpressionStatement","src":"10609:33:103"},{"nodeType":"YulAssignment","src":"10651:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10663:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10674:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10659:3:103"},"nodeType":"YulFunctionCall","src":"10659:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10651:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10436:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10450:4:103","type":""}],"src":"10285:399:103"},{"body":{"nodeType":"YulBlock","src":"10863:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10880:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10891:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10873:6:103"},"nodeType":"YulFunctionCall","src":"10873:21:103"},"nodeType":"YulExpressionStatement","src":"10873:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10914:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10925:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10910:3:103"},"nodeType":"YulFunctionCall","src":"10910:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10930:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10903:6:103"},"nodeType":"YulFunctionCall","src":"10903:30:103"},"nodeType":"YulExpressionStatement","src":"10903:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10953:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10964:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10949:3:103"},"nodeType":"YulFunctionCall","src":"10949:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10969:34:103","type":"","value":"Initializable: contract is not i"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10942:6:103"},"nodeType":"YulFunctionCall","src":"10942:62:103"},"nodeType":"YulExpressionStatement","src":"10942:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11024:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11035:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11020:3:103"},"nodeType":"YulFunctionCall","src":"11020:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11040:13:103","type":"","value":"nitializing"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11013:6:103"},"nodeType":"YulFunctionCall","src":"11013:41:103"},"nodeType":"YulExpressionStatement","src":"11013:41:103"},{"nodeType":"YulAssignment","src":"11063:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11075:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11086:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11071:3:103"},"nodeType":"YulFunctionCall","src":"11071:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11063:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10840:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10854:4:103","type":""}],"src":"10689:407:103"},{"body":{"nodeType":"YulBlock","src":"11275:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11303:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11285:6:103"},"nodeType":"YulFunctionCall","src":"11285:21:103"},"nodeType":"YulExpressionStatement","src":"11285:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11326:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11337:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11322:3:103"},"nodeType":"YulFunctionCall","src":"11322:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11342:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11315:6:103"},"nodeType":"YulFunctionCall","src":"11315:30:103"},"nodeType":"YulExpressionStatement","src":"11315:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11376:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11361:3:103"},"nodeType":"YulFunctionCall","src":"11361:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11381:34:103","type":"","value":"ERROR:REC-010:MAX_CONTRACTS_LIMI"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11354:6:103"},"nodeType":"YulFunctionCall","src":"11354:62:103"},"nodeType":"YulExpressionStatement","src":"11354:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11447:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11432:3:103"},"nodeType":"YulFunctionCall","src":"11432:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11452:3:103","type":"","value":"T"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11425:6:103"},"nodeType":"YulFunctionCall","src":"11425:31:103"},"nodeType":"YulExpressionStatement","src":"11425:31:103"},{"nodeType":"YulAssignment","src":"11465:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11477:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11488:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11473:3:103"},"nodeType":"YulFunctionCall","src":"11473:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11465:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11252:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11266:4:103","type":""}],"src":"11101:397:103"},{"body":{"nodeType":"YulBlock","src":"11677:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11694:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11705:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11687:6:103"},"nodeType":"YulFunctionCall","src":"11687:21:103"},"nodeType":"YulExpressionStatement","src":"11687:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11728:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11739:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11724:3:103"},"nodeType":"YulFunctionCall","src":"11724:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11744:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11717:6:103"},"nodeType":"YulFunctionCall","src":"11717:30:103"},"nodeType":"YulExpressionStatement","src":"11717:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11778:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11763:3:103"},"nodeType":"YulFunctionCall","src":"11763:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11783:31:103","type":"","value":"ERROR:REC-011:RELEASE_UNKNOWN"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11756:6:103"},"nodeType":"YulFunctionCall","src":"11756:59:103"},"nodeType":"YulExpressionStatement","src":"11756:59:103"},{"nodeType":"YulAssignment","src":"11824:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11836:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11847:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11832:3:103"},"nodeType":"YulFunctionCall","src":"11832:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11824:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11654:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11668:4:103","type":""}],"src":"11503:353:103"},{"body":{"nodeType":"YulBlock","src":"11962:76:103","statements":[{"nodeType":"YulAssignment","src":"11972:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11984:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11995:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11980:3:103"},"nodeType":"YulFunctionCall","src":"11980:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11972:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12014:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12025:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12007:6:103"},"nodeType":"YulFunctionCall","src":"12007:25:103"},"nodeType":"YulExpressionStatement","src":"12007:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11931:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11942:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11953:4:103","type":""}],"src":"11861:177:103"},{"body":{"nodeType":"YulBlock","src":"12091:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"12118:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12120:16:103"},"nodeType":"YulFunctionCall","src":"12120:18:103"},"nodeType":"YulExpressionStatement","src":"12120:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12107:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"12114:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12110:3:103"},"nodeType":"YulFunctionCall","src":"12110:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12104:2:103"},"nodeType":"YulFunctionCall","src":"12104:13:103"},"nodeType":"YulIf","src":"12101:2:103"},{"nodeType":"YulAssignment","src":"12149:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12160:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"12163:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12156:3:103"},"nodeType":"YulFunctionCall","src":"12156:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"12149:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12074:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"12077:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"12083:3:103","type":""}],"src":"12043:128:103"},{"body":{"nodeType":"YulBlock","src":"12225:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"12247:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12249:16:103"},"nodeType":"YulFunctionCall","src":"12249:18:103"},"nodeType":"YulExpressionStatement","src":"12249:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12241:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"12244:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12238:2:103"},"nodeType":"YulFunctionCall","src":"12238:8:103"},"nodeType":"YulIf","src":"12235:2:103"},{"nodeType":"YulAssignment","src":"12278:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"12290:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"12293:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"12286:3:103"},"nodeType":"YulFunctionCall","src":"12286:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"12278:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"12207:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"12210:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"12216:4:103","type":""}],"src":"12176:125:103"},{"body":{"nodeType":"YulBlock","src":"12361:325:103","statements":[{"nodeType":"YulAssignment","src":"12371:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"12385:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"12391:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"12381:3:103"},"nodeType":"YulFunctionCall","src":"12381:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"12371:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"12402:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"12432:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"12438:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12428:3:103"},"nodeType":"YulFunctionCall","src":"12428:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"12406:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"12479:31:103","statements":[{"nodeType":"YulAssignment","src":"12481:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12495:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12503:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12491:3:103"},"nodeType":"YulFunctionCall","src":"12491:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"12481:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"12459:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12452:6:103"},"nodeType":"YulFunctionCall","src":"12452:26:103"},"nodeType":"YulIf","src":"12449:2:103"},{"body":{"nodeType":"YulBlock","src":"12569:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12590:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12597:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12602:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12593:3:103"},"nodeType":"YulFunctionCall","src":"12593:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12583:6:103"},"nodeType":"YulFunctionCall","src":"12583:31:103"},"nodeType":"YulExpressionStatement","src":"12583:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12634:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12637:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12627:6:103"},"nodeType":"YulFunctionCall","src":"12627:15:103"},"nodeType":"YulExpressionStatement","src":"12627:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12662:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12665:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12655:6:103"},"nodeType":"YulFunctionCall","src":"12655:15:103"},"nodeType":"YulExpressionStatement","src":"12655:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"12525:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12548:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"12556:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12545:2:103"},"nodeType":"YulFunctionCall","src":"12545:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12522:2:103"},"nodeType":"YulFunctionCall","src":"12522:38:103"},"nodeType":"YulIf","src":"12519:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"12341:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"12350:6:103","type":""}],"src":"12306:380:103"},{"body":{"nodeType":"YulBlock","src":"12738:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"12769:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"12771:16:103"},"nodeType":"YulFunctionCall","src":"12771:18:103"},"nodeType":"YulExpressionStatement","src":"12771:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12754:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12765:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12761:3:103"},"nodeType":"YulFunctionCall","src":"12761:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12751:2:103"},"nodeType":"YulFunctionCall","src":"12751:17:103"},"nodeType":"YulIf","src":"12748:2:103"},{"nodeType":"YulAssignment","src":"12800:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12811:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"12818:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12807:3:103"},"nodeType":"YulFunctionCall","src":"12807:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"12800:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12720:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"12730:3:103","type":""}],"src":"12691:135:103"},{"body":{"nodeType":"YulBlock","src":"12863:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12880:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12887:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12892:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12883:3:103"},"nodeType":"YulFunctionCall","src":"12883:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12873:6:103"},"nodeType":"YulFunctionCall","src":"12873:31:103"},"nodeType":"YulExpressionStatement","src":"12873:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12920:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"12923:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12913:6:103"},"nodeType":"YulFunctionCall","src":"12913:15:103"},"nodeType":"YulExpressionStatement","src":"12913:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12944:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12947:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12937:6:103"},"nodeType":"YulFunctionCall","src":"12937:15:103"},"nodeType":"YulExpressionStatement","src":"12937:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"12831:127:103"},{"body":{"nodeType":"YulBlock","src":"12995:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13012:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13019:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"13024:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13015:3:103"},"nodeType":"YulFunctionCall","src":"13015:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13005:6:103"},"nodeType":"YulFunctionCall","src":"13005:31:103"},"nodeType":"YulExpressionStatement","src":"13005:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13052:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"13055:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13045:6:103"},"nodeType":"YulFunctionCall","src":"13045:15:103"},"nodeType":"YulExpressionStatement","src":"13045:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13076:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13079:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13069:6:103"},"nodeType":"YulFunctionCall","src":"13069:15:103"},"nodeType":"YulExpressionStatement","src":"13069:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"12963:127:103"},{"body":{"nodeType":"YulBlock","src":"13140:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"13204:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13213:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13216:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13206:6:103"},"nodeType":"YulFunctionCall","src":"13206:12:103"},"nodeType":"YulExpressionStatement","src":"13206:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13163:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13174:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13189:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13194:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13185:3:103"},"nodeType":"YulFunctionCall","src":"13185:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13198:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13181:3:103"},"nodeType":"YulFunctionCall","src":"13181:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13170:3:103"},"nodeType":"YulFunctionCall","src":"13170:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"13160:2:103"},"nodeType":"YulFunctionCall","src":"13160:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13153:6:103"},"nodeType":"YulFunctionCall","src":"13153:50:103"},"nodeType":"YulIf","src":"13150:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"13129:5:103","type":""}],"src":"13095:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_addresst_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n validator_revert_address(value)\n value1 := value\n }\n function abi_decode_tuple_t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value0, value0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value0, value0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), value0)\n value0 := memPtr\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544__to_t_address_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), \"InstanceOperatorService\")\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_address_t_bool__to_t_bytes32_t_bytes32_t_address_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_1151568b2e90fb41f06ae2a42f53bc473041310a718fc5f2f0306fc15b7a1271__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERROR:CRC-004:CONTRACT_NOT_REGIS\")\n mstore(add(headStart, 96), \"TERED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_180b38f219c546fbd69dfdd9ad47b748cf86c8b918d48ccf90e5dc416342720f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:REC-021:CONTRACT_NUMBER_MI\")\n mstore(add(headStart, 96), \"SMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_21751005e38a1fa3ae203ebc30e09dbb9a3f47a92f708e975218c782a70f8ad2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:REC-012:CONTRACT_NAME_EMPT\")\n mstore(add(headStart, 96), \"Y\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2f82b8c565b52cc4654ee74cb01e6b7500eb9320a7eb78428d883378eef415fd__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:REC-001:EMPTY_RELEASE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_584862d2e254607edab8323f691596b09145970a7a655d210eb1f81c78c94e40__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:REC-102:UPGRADE_ONCE_OMLY\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6f01df9afa154eb187e5e1b949d753d2da1bc21497166c559aae0cfbb0c0ab42__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERROR:REC-015:CONTRACT_NUMBER_MI\")\n mstore(add(headStart, 96), \"SMATCH\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_839e903059c133d19aa1f6183e57c1d4caf65f25a4c409751bd10f6b2b47bf59__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:REC-002:NEW_RELEASE_NOT_EM\")\n mstore(add(headStart, 96), \"PTY\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9686b67662367955dcf7ea4614c07f967fd3088386f913d0572f47e002dba0a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERROR:REC-013:CONTRACT_NAME_EXIS\")\n mstore(add(headStart, 96), \"TS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_9a8dc10cc7c8a4e70a3eb1cd9f3d2b21a77a31b3a3ee6f28583df67db0f39c0b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:REC-014:CONTRACT_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c06773e54bc1d95ef74526ae4f90e5272daab695e29554a17c33fb4b6c757d77__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:REC-020:CONTRACT_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_d157a75ec4da2afc8e9060e47a13bbf5445dd536a21de8b93f5ec497779f5fc1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CRC-001:NOT_INSTANCE_OPERA\")\n mstore(add(headStart, 96), \"TOR\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"Initializable: contract is not i\")\n mstore(add(headStart, 96), \"nitializing\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e7b7070d33bc921163ee68c4ac9ef2ff9b70b1d8db5e0b432ef6998decbd2aef__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:REC-010:MAX_CONTRACTS_LIMI\")\n mstore(add(headStart, 96), \"T\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_fa3b39dde81df1fee44e40a004e0fb8e579477811621d7e84233a81786219693__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:REC-011:RELEASE_UNKNOWN\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101375760003560e01c80636c0f79b6116100b8578063c4d66de81161007c578063c4d66de81461028f578063ce6d41de146102a2578063d22057a9146102b7578063dc527b08146102ca578063e16c7d98146102dd578063f6b3e7d0146102f057610137565b80636c0f79b61461025057806376b707b71461025857806386d1a69f14610260578063893917ea14610269578063b0ef18a01461027c57610137565b8063368b8772116100ff578063368b8772146101b557806348cd4cb1146101c85780634a941e5e146101d157806356bbc19d1461021d578063699235151461023057610137565b80631d5e73141461013c578063208131541461015157806324042a0a146101645780632b34378a1461017f5780632ca65a7914610192575b600080fd5b61014f61014a3660046117b7565b610303565b005b61014f61015f36600461174f565b6103c4565b61016c606481565b6040519081526020015b60405180910390f35b61014f61018d3660046117ef565b610479565b6101a56101a0366004611704565b6104e2565b6040519015158152602001610176565b61014f6101c33660046117ef565b61050c565b61016c60035481565b6102056101df366004611796565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61014f61022b36600461174f565b6105c9565b61016c61023e36600461174f565b60056020526000908152604090205481565b61016c61073c565b60025461016c565b61016c60025481565b61014f61027736600461174f565b61075b565b61020561028a366004611796565b610970565b61014f61029d3660046116cc565b610983565b6102aa610ab9565b60405161017691906118cd565b61014f6102c5366004611767565b610b4b565b61014f6102d8366004611796565b610c00565b6102056102eb36600461174f565b610cb0565b61016c6102fe36600461174f565b610cc4565b6000546201000090046001600160a01b0316632ca65a796103213390565b6040518263ffffffff1660e01b815260040161033d9190611899565b60206040518083038186803b15801561035557600080fd5b505afa158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d919061172f565b6103b25760405162461bcd60e51b81526004016103a99061196e565b60405180910390fd5b6103bf8360008484610cdf565b505050565b6000546201000090046001600160a01b0316632ca65a796103e23390565b6040518263ffffffff1660e01b81526004016103fe9190611899565b60206040518083038186803b15801561041657600080fd5b505afa15801561042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044e919061172f565b61046a5760405162461bcd60e51b81526004016103a99061196e565b61047660025482611099565b50565b60085460ff16156104cc5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5245432d3130323a555047524144455f4f4e43455f4f4d4c590060448201526064016103a9565b6008805460ff191660011790556104768161050c565b60006104f0600254836112bb565b6001600160a01b0316836001600160a01b031614905092915050565b6000546201000090046001600160a01b0316632ca65a7961052a3390565b6040518263ffffffff1660e01b81526004016105469190611899565b60206040518083038186803b15801561055e57600080fd5b505afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610596919061172f565b6105b25760405162461bcd60e51b81526004016103a99061196e565b80516105c5906007906020840190611633565b5050565b600054610100900460ff16158080156105e95750600054600160ff909116105b8061060a57506105f8306112e1565b15801561060a575060005460ff166001145b6106265760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610649576000805461ff0019166101001790555b6000805462010000600160b01b031916306201000002179055600282905561066e3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b0397909716969096179095559254825260069052206106d8916112f4565b506002546000908152600560205260409020600190554360035580156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b600254600090815260066020526040812061075690611300565b905090565b6000546201000090046001600160a01b0316632ca65a796107793390565b6040518263ffffffff1660e01b81526004016107959190611899565b60206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e5919061172f565b6108015760405162461bcd60e51b81526004016103a99061196e565b600254600090815260056020526040902054806108605760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c45415345000000000060448201526064016103a9565b600082815260056020526040902054156108c85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b60648201526084016103a9565b60005b8181101561093a5760025460009081526006602052604081206108ee908361130a565b600254600090815260046020908152604080832084845290915290205490915061092790859060019084906001600160a01b0316610cdf565b506109336001826119b1565b90506108cb565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b490602001610730565b600061097c83836112bb565b9392505050565b600054610100900460ff16158080156109a35750600054600160ff909116105b806109c457506109b2306112e1565b1580156109c4575060005460ff166001145b6109e05760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610a03576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610a2d600090565b6541636365737360d01b14610a6f57610a4e6541636365737360d01b611316565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610a776113fe565b80156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610730565b606060078054610ac8906119e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610af4906119e0565b8015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b5050505050905090565b6000546201000090046001600160a01b0316632ca65a79610b693390565b6040518263ffffffff1660e01b8152600401610b859190611899565b60206040518083038186803b158015610b9d57600080fd5b505afa158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd5919061172f565b610bf15760405162461bcd60e51b81526004016103a99061196e565b6105c560025460008484610cdf565b6000546201000090046001600160a01b0316632ca65a79610c1e3390565b6040518263ffffffff1660e01b8152600401610c3a9190611899565b60206040518083038186803b158015610c5257600080fd5b505afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a919061172f565b610ca65760405162461bcd60e51b81526004016103a99061196e565b6105c58282611099565b6000610cbe600254836112bb565b92915050565b6002546000908152600660205260408120610cbe908361130a565b6000848152600660205260408120606490610cf990611300565b10610d505760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b60648201526084016103a9565b600085815260056020526040902054151580610d695750835b610db55760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e00000060448201526064016103a9565b82610e0c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b60648201526084016103a9565b6000858152600660205260409020610e24908461146b565b1580610e7557508276496e7374616e63654f70657261746f725365727669636560481b148015610e75575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610ecc5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b60648201526084016103a9565b6001600160a01b038216610f2e5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b60648201526084016103a9565b60008581526004602090815260408083208684529091529020546001600160a01b0316610f92576000858152600660205260409020610f6d90846112f4565b506000858152600560205260408120805491610f8883611a1b565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610fd790611300565b600086815260056020526040902054146110425760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a796110b73390565b6040518263ffffffff1660e01b81526004016110d39190611899565b60206040518083038186803b1580156110eb57600080fd5b505afa1580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611123919061172f565b61113f5760405162461bcd60e51b81526004016103a99061196e565b6000828152600660205260409020611157908261146b565b6111a35760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e000060448201526064016103a9565b60008281526006602052604090206111bb9082611483565b5060008281526005602052604081208054600192906111db9084906119c9565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b03191690558483526006909152902061121a90611300565b600083815260056020526040902054146112855760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a1319101610730565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b600061097c838361148f565b6000610cbe825490565b600061097c83836114de565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561136057600080fd5b505afa158015611374573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139891906116e8565b90506001600160a01b0381166112ef5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166114695760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b565b6000818152600183016020526040812054151561097c565b600061097c8383611516565b60008181526001830160205260408120546114d657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cbe565b506000610cbe565b600082600001828154811061150357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054801561162957600061153a6001836119c9565b855490915060009061154e906001906119c9565b90508181146115cf57600086600001828154811061157c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106115ad57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115ee57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cbe565b6000915050610cbe565b82805461163f906119e0565b90600052602060002090601f01602090048101928261166157600085556116a7565b82601f1061167a57805160ff19168380011785556116a7565b828001600101855582156116a7579182015b828111156116a757825182559160200191906001019061168c565b506116b39291506116b7565b5090565b5b808211156116b357600081556001016116b8565b6000602082840312156116dd578081fd5b813561097c81611a62565b6000602082840312156116f9578081fd5b815161097c81611a62565b60008060408385031215611716578081fd5b823561172181611a62565b946020939093013593505050565b600060208284031215611740578081fd5b8151801515811461097c578182fd5b600060208284031215611760578081fd5b5035919050565b60008060408385031215611779578182fd5b82359150602083013561178b81611a62565b809150509250929050565b600080604083850312156117a8578182fd5b50508035926020909101359150565b6000806000606084860312156117cb578081fd5b833592506020840135915060408401356117e481611a62565b809150509250925092565b600060208284031215611800578081fd5b813567ffffffffffffffff80821115611817578283fd5b818401915084601f83011261182a578283fd5b81358181111561183c5761183c611a4c565b604051601f8201601f19908116603f0116810190838211818310171561186457611864611a4c565b8160405282815287602084870101111561187c578586fd5b826020860160208301379182016020019490945295945050505050565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6000602080835283518082850152825b818110156118f9578581018301518582016040015282016118dd565b8181111561190a5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b600082198211156119c4576119c4611a36565b500190565b6000828210156119db576119db611a36565b500390565b6002810460018216806119f457607f821691505b60208210811415611a1557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611a2f57611a2f611a36565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461047657600080fdfea26469706673582212204c7f94f441c1f862908cff0be31a75f685e50b915477a4cbe46f145ab6d61f9264736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x137 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6C0F79B6 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xC4D66DE8 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x28F JUMPI DUP1 PUSH4 0xCE6D41DE EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xD22057A9 EQ PUSH2 0x2B7 JUMPI DUP1 PUSH4 0xDC527B08 EQ PUSH2 0x2CA JUMPI DUP1 PUSH4 0xE16C7D98 EQ PUSH2 0x2DD JUMPI DUP1 PUSH4 0xF6B3E7D0 EQ PUSH2 0x2F0 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x6C0F79B6 EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x76B707B7 EQ PUSH2 0x258 JUMPI DUP1 PUSH4 0x86D1A69F EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x893917EA EQ PUSH2 0x269 JUMPI DUP1 PUSH4 0xB0EF18A0 EQ PUSH2 0x27C JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x368B8772 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x368B8772 EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0x48CD4CB1 EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0x4A941E5E EQ PUSH2 0x1D1 JUMPI DUP1 PUSH4 0x56BBC19D EQ PUSH2 0x21D JUMPI DUP1 PUSH4 0x69923515 EQ PUSH2 0x230 JUMPI PUSH2 0x137 JUMP JUMPDEST DUP1 PUSH4 0x1D5E7314 EQ PUSH2 0x13C JUMPI DUP1 PUSH4 0x20813154 EQ PUSH2 0x151 JUMPI DUP1 PUSH4 0x24042A0A EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x2B34378A EQ PUSH2 0x17F JUMPI DUP1 PUSH4 0x2CA65A79 EQ PUSH2 0x192 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F PUSH2 0x14A CALLDATASIZE PUSH1 0x4 PUSH2 0x17B7 JUMP JUMPDEST PUSH2 0x303 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x14F PUSH2 0x15F CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x3C4 JUMP JUMPDEST PUSH2 0x16C PUSH1 0x64 DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x14F PUSH2 0x18D CALLDATASIZE PUSH1 0x4 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x479 JUMP JUMPDEST PUSH2 0x1A5 PUSH2 0x1A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1704 JUMP JUMPDEST PUSH2 0x4E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x17EF JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST PUSH2 0x16C PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x1DF CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP1 SWAP2 MSTORE SWAP1 DUP3 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x176 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x22B CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x5C9 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x23E CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x73C JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x16C JUMP JUMPDEST PUSH2 0x16C PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x277 CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0x75B JUMP JUMPDEST PUSH2 0x205 PUSH2 0x28A CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0x970 JUMP JUMPDEST PUSH2 0x14F PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x16CC JUMP JUMPDEST PUSH2 0x983 JUMP JUMPDEST PUSH2 0x2AA PUSH2 0xAB9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x176 SWAP2 SWAP1 PUSH2 0x18CD JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x1767 JUMP JUMPDEST PUSH2 0xB4B JUMP JUMPDEST PUSH2 0x14F PUSH2 0x2D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1796 JUMP JUMPDEST PUSH2 0xC00 JUMP JUMPDEST PUSH2 0x205 PUSH2 0x2EB CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0xCB0 JUMP JUMPDEST PUSH2 0x16C PUSH2 0x2FE CALLDATASIZE PUSH1 0x4 PUSH2 0x174F JUMP JUMPDEST PUSH2 0xCC4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x321 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x33D SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x355 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x369 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x3B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x3BF DUP4 PUSH1 0x0 DUP5 DUP5 PUSH2 0xCDF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x3E2 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3FE SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x416 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x42A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x44E SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x46A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x476 PUSH1 0x2 SLOAD DUP3 PUSH2 0x1099 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x4CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3130323A555047524144455F4F4E43455F4F4D4C5900 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH2 0x476 DUP2 PUSH2 0x50C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F0 PUSH1 0x2 SLOAD DUP4 PUSH2 0x12BB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x52A CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x546 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x55E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x572 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x596 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x5B2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST DUP1 MLOAD PUSH2 0x5C5 SWAP1 PUSH1 0x7 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x1633 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x5E9 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x60A JUMPI POP PUSH2 0x5F8 ADDRESS PUSH2 0x12E1 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x60A JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x1920 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0x649 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND ADDRESS PUSH3 0x10000 MUL OR SWAP1 SSTORE PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH2 0x66E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP1 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL DUP1 DUP6 MSTORE SWAP1 DUP4 MSTORE DUP2 DUP5 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP8 SWAP1 SWAP8 AND SWAP7 SWAP1 SWAP7 OR SWAP1 SWAP6 SSTORE SWAP3 SLOAD DUP3 MSTORE PUSH1 0x6 SWAP1 MSTORE KECCAK256 PUSH2 0x6D8 SWAP2 PUSH2 0x12F4 JUMP JUMPDEST POP PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 SWAP1 SSTORE NUMBER PUSH1 0x3 SSTORE DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x756 SWAP1 PUSH2 0x1300 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x779 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x795 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7C1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7E5 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x801 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP1 PUSH2 0x860 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030313A454D5054595F52454C454153450000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x8C8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3030323A4E45575F52454C454153455F4E4F545F454D PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x505459 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x93A JUMPI PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0x8EE SWAP1 DUP4 PUSH2 0x130A JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH2 0x927 SWAP1 DUP6 SWAP1 PUSH1 0x1 SWAP1 DUP5 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xCDF JUMP JUMPDEST POP PUSH2 0x933 PUSH1 0x1 DUP3 PUSH2 0x19B1 JUMP JUMPDEST SWAP1 POP PUSH2 0x8CB JUMP JUMPDEST POP PUSH1 0x2 DUP3 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP3 DUP2 MSTORE PUSH32 0xBD50692EB75750D216C747528A2DFCED5915EAB7B4EE40BCF8120D0D035297B4 SWAP1 PUSH1 0x20 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x12BB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND ISZERO DUP1 DUP1 ISZERO PUSH2 0x9A3 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0xFF SWAP1 SWAP2 AND LT JUMPDEST DUP1 PUSH2 0x9C4 JUMPI POP PUSH2 0x9B2 ADDRESS PUSH2 0x12E1 JUMP JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x9C4 JUMPI POP PUSH1 0x0 SLOAD PUSH1 0xFF AND PUSH1 0x1 EQ JUMPDEST PUSH2 0x9E0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x1920 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE DUP1 ISZERO PUSH2 0xA03 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 OR SWAP1 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH3 0x10000 PUSH1 0x1 PUSH1 0xB0 SHL SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND MUL OR SWAP1 SSTORE PUSH2 0xA2D PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH6 0x416363657373 PUSH1 0xD0 SHL EQ PUSH2 0xA6F JUMPI PUSH2 0xA4E PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH2 0x1316 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMPDEST PUSH2 0xA77 PUSH2 0x13FE JUMP JUMPDEST DUP1 ISZERO PUSH2 0x5C5 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH2 0xFF00 NOT AND SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0x7F26B83FF96E1F2B6A682F133852F6798A09C465DA95921460CEFB3847402498 SWAP1 PUSH1 0x20 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x7 DUP1 SLOAD PUSH2 0xAC8 SWAP1 PUSH2 0x19E0 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xAF4 SWAP1 PUSH2 0x19E0 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xB41 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xB16 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xB41 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB24 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xB69 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB85 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xBB1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xBD5 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0xBF1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5C5 PUSH1 0x2 SLOAD PUSH1 0x0 DUP5 DUP5 PUSH2 0xCDF JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0xC1E CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC66 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC8A SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0xCA6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH2 0x5C5 DUP3 DUP3 PUSH2 0x1099 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE PUSH1 0x2 SLOAD DUP4 PUSH2 0x12BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH2 0xCBE SWAP1 DUP4 PUSH2 0x130A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 PUSH1 0x64 SWAP1 PUSH2 0xCF9 SWAP1 PUSH2 0x1300 JUMP JUMPDEST LT PUSH2 0xD50 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031303A4D41585F434F4E5452414354535F4C494D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x15 PUSH1 0xFA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO DUP1 PUSH2 0xD69 JUMPI POP DUP4 JUMPDEST PUSH2 0xDB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031313A52454C454153455F554E4B4E4F574E000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST DUP3 PUSH2 0xE0C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031323A434F4E54524143545F4E414D455F454D5054 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x59 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xE24 SWAP1 DUP5 PUSH2 0x146B JUMP JUMPDEST ISZERO DUP1 PUSH2 0xE75 JUMPI POP DUP3 PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL EQ DUP1 ISZERO PUSH2 0xE75 JUMPI POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ JUMPDEST PUSH2 0xECC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031333A434F4E54524143545F4E414D455F45584953 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x5453 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xF2E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031343A434F4E54524143545F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xF92 JUMPI PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0xF6D SWAP1 DUP5 PUSH2 0x12F4 JUMP JUMPDEST POP PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0xF88 DUP4 PUSH2 0x1A1B JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH1 0x1 SWAP1 POP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP7 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND OR SWAP1 SSTORE DUP8 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0xFD7 SWAP1 PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1042 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3031353A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE DUP3 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE SWAP1 MLOAD PUSH32 0x7C5C4E97E59CBD96C53653DFD3F538E50D7BAB44BAA352481FDC3FA7F18E3008 SWAP2 DUP2 SWAP1 SUB PUSH1 0x80 ADD SWAP1 LOG1 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x2CA65A79 PUSH2 0x10B7 CALLER SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10D3 SWAP2 SWAP1 PUSH2 0x1899 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1123 SWAP2 SWAP1 PUSH2 0x172F JUMP JUMPDEST PUSH2 0x113F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3A9 SWAP1 PUSH2 0x196E JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x1157 SWAP1 DUP3 PUSH2 0x146B JUMP JUMPDEST PUSH2 0x11A3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032303A434F4E54524143545F554E4B4E4F574E0000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x6 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH2 0x11BB SWAP1 DUP3 PUSH2 0x1483 JUMP JUMPDEST POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x11DB SWAP1 DUP5 SWAP1 PUSH2 0x19C9 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP5 DUP5 MSTORE DUP3 MSTORE DUP1 DUP4 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE DUP5 DUP4 MSTORE PUSH1 0x6 SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 PUSH2 0x121A SWAP1 PUSH2 0x1300 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x1285 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A5245432D3032313A434F4E54524143545F4E554D4245525F4D49 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0xA69A82A8869 PUSH1 0xD3 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x95BD8DB0F80EC14D4D7E375FB7FB3603144BA5B594106E0410243553F97A131 SWAP2 ADD PUSH2 0x730 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x4 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP5 KECCAK256 SWAP3 DUP5 MSTORE SWAP2 SWAP1 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND EXTCODESIZE ISZERO ISZERO JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x148F JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCBE DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x14DE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH3 0x10000 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1360 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1374 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1398 SWAP2 SWAP1 PUSH2 0x16E8 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x12EF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030343A434F4E54524143545F4E4F545F5245474953 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x1511549151 PUSH1 0xDA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x1469 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E7472616374206973206E6F742069 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x6E697469616C697A696E67 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3A9 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x97C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x97C DUP4 DUP4 PUSH2 0x1516 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x14D6 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0xCBE JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xCBE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x1503 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x1629 JUMPI PUSH1 0x0 PUSH2 0x153A PUSH1 0x1 DUP4 PUSH2 0x19C9 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x154E SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x19C9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 EQ PUSH2 0x15CF JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x157C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x15AD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x15EE JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0xCBE JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0xCBE JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x163F SWAP1 PUSH2 0x19E0 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x1661 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x16A7 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x167A JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x16A7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x16A7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x16A7 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x168C JUMP JUMPDEST POP PUSH2 0x16B3 SWAP3 SWAP2 POP PUSH2 0x16B7 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x16B3 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x16B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16DD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x97C DUP2 PUSH2 0x1A62 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16F9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x97C DUP2 PUSH2 0x1A62 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1716 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x1721 DUP2 PUSH2 0x1A62 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1740 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x97C JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1760 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1779 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x178B DUP2 PUSH2 0x1A62 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17A8 JUMPI DUP2 DUP3 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x17CB JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x17E4 DUP2 PUSH2 0x1A62 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1800 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1817 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP DUP5 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x182A JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x183C JUMPI PUSH2 0x183C PUSH2 0x1A4C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1864 JUMPI PUSH2 0x1864 PUSH2 0x1A4C JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP8 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x187C JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH23 0x496E7374616E63654F70657261746F7253657276696365 PUSH1 0x48 SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x18F9 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x18DD JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x190A JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x496E697469616C697A61626C653A20636F6E747261637420697320616C726561 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x191E481A5B9A5D1A585B1A5E9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x23 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4352432D3030313A4E4F545F494E5354414E43455F4F50455241 PUSH1 0x40 DUP3 ADD MSTORE PUSH3 0x2A27A9 PUSH1 0xE9 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x19C4 JUMPI PUSH2 0x19C4 PUSH2 0x1A36 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x19DB JUMPI PUSH2 0x19DB PUSH2 0x1A36 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x19F4 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1A15 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1A2F JUMPI PUSH2 0x1A2F PUSH2 0x1A36 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x476 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C PUSH32 0x94F441C1F862908CFF0BE31A75F685E50B915477A4CBE46F145AB6D61F926473 PUSH16 0x6C634300080200330000000000000000 ","sourceMap":"115:490:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5996:241:80;;;;;;:::i;:::-;;:::i;:::-;;5474:166;;;;;;:::i;:::-;;:::i;3217:43::-;;3257:3;3217:43;;;;;4434:25:103;;;4422:2;4407:18;3217:43:80;;;;;;;;415:187:98;;;;;;:::i;:::-;;:::i;4442:227:80:-;;;;;;:::i;:::-;;:::i;:::-;;;4261:14:103;;4254:22;4236:41;;4224:2;4209:18;4442:227:80;4191:92:103;229:95:98;;;;;;:::i;:::-;;:::i;3379:25:80:-;;;;;;3411:122;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3411:122:80;;;;;;-1:-1:-1;;;;;3691:32:103;;;3673:51;;3661:2;3646:18;3411:122:80;3628:102:103;3759:677:80;;;;;;:::i;:::-;;:::i;3539:105::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7336:164;;;:::i;4723:130::-;4839:7;;4723:130;;3346:22;;;;;;6525:805;;;;;;:::i;:::-;;:::i;5716:209::-;;;;;;:::i;:::-;;:::i;1143:232:88:-;;;;;;:::i;:::-;;:::i;330:77:98:-;;;:::i;:::-;;;;;;;:::i;5187:210:80:-;;;;;;:::i;:::-;;:::i;6243:191::-;;;;;;:::i;:::-;;:::i;4933:179::-;;;;;;:::i;:::-;;:::i;7506:169::-;;;;;;:::i;:::-;;:::i;5996:241::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;;;;;;;;;6162:68:80::1;6181:8;6191:5;6198:13;6213:16;6162:18;:68::i;:::-;5996:241:::0;;;:::o;5474:166::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5589:44:80::1;5610:7;;5619:13;5589:20;:44::i;:::-;5474:166:::0;:::o;415:187:98:-;488:9;;;;487:10;479:54;;;;-1:-1:-1;;;479:54:98;;7735:2:103;479:54:98;;;7717:21:103;7774:2;7754:18;;;7747:30;7813:33;7793:18;;;7786:61;7864:18;;479:54:98;7707:181:103;479:54:98;544:9;:16;;-1:-1:-1;;544:16:98;556:4;544:16;;;573:20;584:8;573:10;:20::i;4442:227:80:-;4552:19;4616:45;4638:7;;4647:13;4616:21;:45::i;:::-;-1:-1:-1;;;;;4606:55:80;:6;-1:-1:-1;;;;;4606:55:80;;4588:74;;4442:227;;;;:::o;229:95:98:-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;303:18:98;;::::1;::::0;:7:::1;::::0;:18:::1;::::0;::::1;::::0;::::1;:::i;:::-;;229:95:::0;:::o;3759:677:80:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;;;;;;:::i;:::-;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;3883:9:80::1;:16:::0;;-1:-1:-1;;;;;;3883:16:80::1;3895:4;3883:16:::0;::::1;;::::0;;:9:::1;4117:25:::0;;;4201:12:::1;719:10:59::0;640:96;;4201:12:80::1;4163:7;::::0;;4152:19:::1;::::0;;;:10:::1;:19;::::0;;;;;;;-1:-1:-1;;;4152:46:80;;;;;;;;;:61;;-1:-1:-1;;;;;;4152:61:80::1;-1:-1:-1::0;;;;;4152:61:80;;;::::1;::::0;;;::::1;::::0;;;4256:7;;4241:23;;:14:::1;:23:::0;;;4223:69:::1;::::0;:17:::1;:69::i;:::-;-1:-1:-1::0;4322:7:80::1;::::0;4302:28:::1;::::0;;;:19:::1;:28;::::0;;;;4333:1:::1;4302:32:::0;;4417:12:::1;4404:10;:25:::0;3457:99:47;;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;5307:36:103;;3531:14:47;;5295:2:103;5280:18;3531:14:47;;;;;;;;3759:677:80;;:::o;7336:164::-;7484:7;;7389:26;7469:23;;;:14;:23;;;;;7448:45;;:20;:45::i;:::-;7427:66;;7336:164;:::o;6525:805::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6687:7:80::1;::::0;6642:22:::1;6667:28:::0;;;:19:::1;:28;::::0;;;;;6714:18;6706:58:::1;;;::::0;-1:-1:-1;;;6706:58:80;;7379:2:103;6706:58:80::1;::::0;::::1;7361:21:103::0;7418:2;7398:18;;;7391:30;7457:29;7437:18;;;7430:57;7504:18;;6706:58:80::1;7351:177:103::0;6706:58:80::1;6795:32;::::0;;;:19:::1;:32;::::0;;;;;:37;6774:119:::1;;;::::0;-1:-1:-1;;;6774:119:80;;8917:2:103;6774:119:80::1;::::0;::::1;8899:21:103::0;8956:2;8936:18;;;8929:30;8995:34;8975:18;;;8968:62;-1:-1:-1;;;9046:18:103;;;9039:33;9089:19;;6774:119:80::1;8889:225:103::0;6774:119:80::1;6960:9;6955:294;6979:14;6975:1;:18;6955:294;;;7064:7;::::0;7017:12:::1;7049:23:::0;;;:14:::1;:23;::::0;;;;7032:44:::1;::::0;7074:1;7032:16:::1;:44::i;:::-;7210:7;::::0;7199:19:::1;::::0;;;:10:::1;:19;::::0;;;;;;;:25;;;;;;;;;7017:59;;-1:-1:-1;7090:148:80::1;::::0;7126:11;;7155:4:::1;::::0;7017:59;;-1:-1:-1;;;;;7199:25:80::1;7090:18;:148::i;:::-;-1:-1:-1::0;6995:6:80::1;7000:1;6995:6:::0;::::1;:::i;:::-;;;6955:294;;;-1:-1:-1::0;7259:7:80::1;:21:::0;;;7296:27:::1;::::0;4434:25:103;;;7296:27:80::1;::::0;4422:2:103;4407:18;7296:27:80::1;4389:76:103::0;5716:209:80;5835:13;5872:46;5894:8;5904:13;5872:21;:46::i;:::-;5864:54;5716:209;-1:-1:-1;;;5716:209:80:o;1143:232:88:-;3100:19:47;3123:13;;;;;;3122:14;;3168:34;;;;-1:-1:-1;3186:12:47;;3201:1;3186:12;;;;:16;3168:34;3167:97;;;;3209:33;3236:4;3209:18;:33::i;:::-;3208:34;:55;;;;-1:-1:-1;3246:12:47;;;;;:17;3208:55;3146:190;;;;-1:-1:-1;;;3146:190:47;;;;;;;:::i;:::-;3346:12;:16;;-1:-1:-1;;3346:16:47;3361:1;3346:16;;;3372:65;;;;3406:13;:20;;-1:-1:-1;;3406:20:47;;;;;3372:65;1210:9:88::1;:31:::0;;-1:-1:-1;;;;;;1210:31:88::1;::::0;-1:-1:-1;;;;;1210:31:88;::::1;;;::::0;;1255:10:::1;1431:7:::0;1381:73;;1255:10:::1;-1:-1:-1::0;;;1255:22:88::1;1251:81;;1299:29;-1:-1:-1::0;;;1299:19:88::1;:29::i;:::-;1281:7;:48:::0;;-1:-1:-1;;;;;;1281:48:88::1;-1:-1:-1::0;;;;;1281:48:88;;;::::1;::::0;;;::::1;::::0;;1251:81:::1;1350:18;:16;:18::i;:::-;3461:14:47::0;3457:99;;;3507:5;3491:21;;-1:-1:-1;;3491:21:47;;;3531:14;;-1:-1:-1;5307:36:103;;3531:14:47;;5295:2:103;5280:18;3531:14:47;5262:87:103;330:77:98;373:13;397:7;390:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;330:77;:::o;5187:210:80:-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;5323:67:80::1;5342:7;;5351:5;5358:13;5373:16;5323:18;:67::i;6243:191::-:0;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;6382:45:80::1;6403:8;6413:13;6382:20;:45::i;4933:179::-:0;5023:13;5060:45;5082:7;;5091:13;5060:21;:45::i;:::-;5052:53;4933:179;-1:-1:-1;;4933:179:80:o;7506:169::-;7654:7;;7573:21;7639:23;;;:14;:23;;;;;7622:46;;7664:3;7622:16;:46::i;8012:1798::-;8196:10;8267:24;;;:14;:24;;;;;3257:3;;8246:46;;:20;:46::i;:::-;:62;8225:142;;;;-1:-1:-1;;;8225:142:80;;11303:2:103;8225:142:80;;;11285:21:103;11342:2;11322:18;;;11315:30;11381:34;11361:18;;;11354:62;-1:-1:-1;;;11432:18:103;;;11425:31;11473:19;;8225:142:80;11275:223:103;8225:142:80;8523:1;8491:29;;;:19;:29;;;;;;:33;;;:49;;;8528:12;8491:49;8483:91;;;;-1:-1:-1;;;8483:91:80;;11705:2:103;8483:91:80;;;11687:21:103;11744:2;11724:18;;;11717:30;11783:31;11763:18;;;11756:59;11832:18;;8483:91:80;11677:179:103;8483:91:80;8592:21;8584:67;;;;-1:-1:-1;;;8584:67:80;;6977:2:103;8584:67:80;;;6959:21:103;7016:2;6996:18;;;6989:30;7055:34;7035:18;;;7028:62;-1:-1:-1;;;7106:18:103;;;7099:31;7147:19;;8584:67:80;6949:223:103;8584:67:80;8708:24;;;;:14;:24;;;;;8685:63;;8734:13;8685:22;:63::i;:::-;8683:65;8682:378;;;;8962:13;-1:-1:-1;;;8962:42:80;:97;;;;-1:-1:-1;9008:20:80;;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;9008:35:80;719:10:59;9008:51:80;8962:97;8661:451;;;;-1:-1:-1;;;8661:451:80;;9321:2:103;8661:451:80;;;9303:21:103;9360:2;9340:18;;;9333:30;9399:34;9379:18;;;9372:62;-1:-1:-1;;;9450:18:103;;;9443:32;9492:19;;8661:451:80;9293:224:103;8661:451:80;-1:-1:-1;;;;;9130:30:80;;9122:78;;;;-1:-1:-1;;;9122:78:80;;9724:2:103;9122:78:80;;;9706:21:103;9763:2;9743:18;;;9736:30;9802:34;9782:18;;;9775:62;-1:-1:-1;;;9853:18:103;;;9846:33;9896:19;;9122:78:80;9696:225:103;9122:78:80;9262:1;9215:20;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;9215:35:80;9211:209;;9298:24;;;;:14;:24;;;;;9280:58;;9324:13;9280:17;:58::i;:::-;-1:-1:-1;9352:29:80;;;;:19;:29;;;;;:31;;;;;;:::i;:::-;;;;;;9405:4;9397:12;;9211:209;9430:20;;;;:10;:20;;;;;;;;:35;;;;;;;;:54;;-1:-1:-1;;;;;;9430:54:80;-1:-1:-1;;;;;9430:54:80;;;;;9569:24;;;:14;:24;;;;;9548:46;;:20;:46::i;:::-;9515:29;;;;:19;:29;;;;;;:79;9494:164;;;;-1:-1:-1;;;9494:164:80;;8095:2:103;9494:164:80;;;8077:21:103;8134:2;8114:18;;;8107:30;8173:34;8153:18;;;8146:62;-1:-1:-1;;;8224:18:103;;;8217:36;8270:19;;9494:164:80;8067:228:103;9494:164:80;9674:129;;;4948:25:103;;;5004:2;4989:18;;4982:34;;;-1:-1:-1;;;;;5052:32:103;;5032:18;;;5025:60;5128:14;;5121:22;5116:2;5101:18;;5094:50;9674:129:80;;;;;;;4935:3:103;9674:129:80;;;8012:1798;;;;;:::o;9884:662::-;564:9:88;;;;;-1:-1:-1;;;;;564:9:88;:22;587:12;719:10:59;640:96;;587:12:88;564:63;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;543:136;;;;-1:-1:-1;;;543:136:88;;;;;;;:::i;:::-;10046:24:80::1;::::0;;;:14:::1;:24;::::0;;;;10023:63:::1;::::0;10072:13;10023:22:::1;:63::i;:::-;10015:106;;;::::0;-1:-1:-1;;;10015:106:80;;10128:2:103;10015:106:80::1;::::0;::::1;10110:21:103::0;10167:2;10147:18;;;10140:30;10206:32;10186:18;;;10179:60;10256:18;;10015:106:80::1;10100:180:103::0;10015:106:80::1;10153:24;::::0;;;:14:::1;:24;::::0;;;;10132:61:::1;::::0;10179:13;10132:20:::1;:61::i;:::-;-1:-1:-1::0;10204:29:80::1;::::0;;;:19:::1;:29;::::0;;;;:34;;10237:1:::1;::::0;10204:29;:34:::1;::::0;10237:1;;10204:34:::1;:::i;:::-;::::0;;;-1:-1:-1;;10255:20:80::1;::::0;;;:10:::1;:20;::::0;;;;;;;:35;;;;;;;;10248:42;;-1:-1:-1;;;;;;10248:42:80::1;::::0;;10384:24;;;:14:::1;:24:::0;;;;;10363:46:::1;::::0;:20:::1;:46::i;:::-;10330:29;::::0;;;:19:::1;:29;::::0;;;;;:79:::1;10309:155;;;::::0;-1:-1:-1;;;10309:155:80;;6570:2:103;10309:155:80::1;::::0;::::1;6552:21:103::0;6609:2;6589:18;;;6582:30;6648:34;6628:18;;;6621:62;-1:-1:-1;;;6699:18:103;;;6692:36;6745:19;;10309:155:80::1;6542:228:103::0;10309:155:80::1;10479:48;::::0;;4644:25:103;;;4700:2;4685:18;;4678:34;;;10479:48:80::1;::::0;4617:18:103;10479:48:80::1;4599:119:103::0;7751:190:80;7862:13;7899:20;;;:10;:20;;;;;;;;:35;;;;;;;;;-1:-1:-1;;;;;7899:35:80;;7751:190::o;1175:320:58:-;-1:-1:-1;;;;;1465:19:58;;;:23;;1175:320;;;;:::o;5818:123:64:-;5888:4;5911:23;5916:3;5928:5;5911:4;:23::i;6538:115::-;6601:7;6627:19;6635:3;4444:18;;4362:107;6995:129;7069:7;7095:22;7099:3;7111:5;7095:3;:22::i;1530:293:88:-;1604:23;1658:9;;:35;;-1:-1:-1;;;1658:35:88;;;;;4434:25:103;;;1658:9:88;;;;-1:-1:-1;;;;;1658:9:88;;:21;;4407:18:103;;1658:35:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1640:53;-1:-1:-1;;;;;;1724:29:88;;1703:113;;;;-1:-1:-1;;;1703:113:88;;6164:2:103;1703:113:88;;;6146:21:103;6203:2;6183:18;;;6176:30;6242:34;6222:18;;;6215:62;-1:-1:-1;;;6293:18:103;;;6286:35;6338:19;;1703:113:88;6136:227:103;1460:64:88;4888:13:47;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:47;;10891:2:103;4880:69:47;;;10873:21:103;10930:2;10910:18;;;10903:30;10969:34;10949:18;;;10942:62;-1:-1:-1;;;11020:18:103;;;11013:41;11071:19;;4880:69:47;10863:233:103;4880:69:47;1460:64:88:o;6319:138:64:-;6399:4;4250:19;;;:12;;;:19;;;;;;:24;;6422:28;4154:127;6109:129;6182:4;6205:26;6213:3;6225:5;6205:7;:26::i;2113:404::-;2176:4;4250:19;;;:12;;;:19;;;;;;2192:319;;-1:-1:-1;2234:23:64;;;;;;;;:11;:23;;;;;;;;;;;;;2414:18;;2392:19;;;:12;;;:19;;;;;;:40;;;;2446:11;;2192:319;-1:-1:-1;2495:5:64;2488:12;;4811:118;4878:7;4904:3;:11;;4916:5;4904:18;;;;;;-1:-1:-1;;;4904:18:64;;;;;;;;;;;;;;;;;4897:25;;4811:118;;;;:::o;2685:1388::-;2751:4;2888:19;;;:12;;;:19;;;;;;2922:15;;2918:1149;;3291:21;3315:14;3328:1;3315:10;:14;:::i;:::-;3363:18;;3291:38;;-1:-1:-1;3343:17:64;;3363:22;;3384:1;;3363:22;:::i;:::-;3343:42;;3417:13;3404:9;:26;3400:398;;3450:17;3470:3;:11;;3482:9;3470:22;;;;;;-1:-1:-1;;;3470:22:64;;;;;;;;;;;;;;;;;3450:42;;3621:9;3592:3;:11;;3604:13;3592:26;;;;;;-1:-1:-1;;;3592:26:64;;;;;;;;;;;;;;;;;;;;:38;;;;3704:23;;;:12;;;:23;;;;;:36;;;3400:398;3876:17;;:3;;:17;;;-1:-1:-1;;;3876:17:64;;;;;;;;;;;;;;;;;;;;;;;;;;3968:3;:12;;:19;3981:5;3968:19;;;;;;;;;;;3961:26;;;4009:4;4002:11;;;;;;;2918:1149;4051:5;4044:12;;;;;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:257:103;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:325::-;;;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;857:2;842:18;;;;829:32;;-1:-1:-1;;;629:238:103:o;872:297::-;;992:2;980:9;971:7;967:23;963:32;960:2;;;1013:6;1005;998:22;960:2;1050:9;1044:16;1103:5;1096:13;1089:21;1082:5;1079:32;1069:2;;1130:6;1122;1115:22;1174:190;;1286:2;1274:9;1265:7;1261:23;1257:32;1254:2;;;1307:6;1299;1292:22;1254:2;-1:-1:-1;1335:23:103;;1244:120;-1:-1:-1;1244:120:103:o;1369:325::-;;;1498:2;1486:9;1477:7;1473:23;1469:32;1466:2;;;1519:6;1511;1504:22;1466:2;1560:9;1547:23;1537:33;;1620:2;1609:9;1605:18;1592:32;1633:31;1658:5;1633:31;:::i;:::-;1683:5;1673:15;;;1456:238;;;;;:::o;1699:258::-;;;1828:2;1816:9;1807:7;1803:23;1799:32;1796:2;;;1849:6;1841;1834:22;1796:2;-1:-1:-1;;1877:23:103;;;1947:2;1932:18;;;1919:32;;-1:-1:-1;1786:171:103:o;1962:393::-;;;;2108:2;2096:9;2087:7;2083:23;2079:32;2076:2;;;2129:6;2121;2114:22;2076:2;2170:9;2157:23;2147:33;;2227:2;2216:9;2212:18;2199:32;2189:42;;2281:2;2270:9;2266:18;2253:32;2294:31;2319:5;2294:31;:::i;:::-;2344:5;2334:15;;;2066:289;;;;;:::o;2360:967::-;;2482:2;2470:9;2461:7;2457:23;2453:32;2450:2;;;2503:6;2495;2488:22;2450:2;2548:9;2535:23;2577:18;2618:2;2610:6;2607:14;2604:2;;;2639:6;2631;2624:22;2604:2;2682:6;2671:9;2667:22;2657:32;;2727:7;2720:4;2716:2;2712:13;2708:27;2698:2;;2754:6;2746;2739:22;2698:2;2795;2782:16;2817:2;2813;2810:10;2807:2;;;2823:18;;:::i;:::-;2898:2;2892:9;2866:2;2952:13;;-1:-1:-1;;2948:22:103;;;2972:2;2944:31;2940:40;2928:53;;;2996:18;;;3016:22;;;2993:46;2990:2;;;3042:18;;:::i;:::-;3082:10;3078:2;3071:22;3117:2;3109:6;3102:18;3157:7;3152:2;3147;3143;3139:11;3135:20;3132:33;3129:2;;;3183:6;3175;3168:22;3129:2;3244;3239;3235;3231:11;3226:2;3218:6;3214:15;3201:46;3267:15;;;3284:2;3263:24;3256:40;;;;3271:6;2440:887;-1:-1:-1;;;;;2440:887:103:o;3735:356::-;-1:-1:-1;;;;;3990:32:103;;;;3972:51;;-1:-1:-1;;;4054:2:103;4039:18;;4032:53;3960:2;3945:18;;3927:164::o;5354:603::-;;5495:2;5524;5513:9;5506:21;5556:6;5550:13;5599:6;5594:2;5583:9;5579:18;5572:34;5624:4;5637:140;5651:6;5648:1;5645:13;5637:140;;;5746:14;;;5742:23;;5736:30;5712:17;;;5731:2;5708:26;5701:66;5666:10;;5637:140;;;5795:6;5792:1;5789:13;5786:2;;;5865:4;5860:2;5851:6;5840:9;5836:22;5832:31;5825:45;5786:2;-1:-1:-1;5941:2:103;5920:15;-1:-1:-1;;5916:29:103;5901:45;;;;5948:2;5897:54;;5475:482;-1:-1:-1;;;5475:482:103:o;8300:410::-;8502:2;8484:21;;;8541:2;8521:18;;;8514:30;8580:34;8575:2;8560:18;;8553:62;-1:-1:-1;;;8646:2:103;8631:18;;8624:44;8700:3;8685:19;;8474:236::o;10285:399::-;10487:2;10469:21;;;10526:2;10506:18;;;10499:30;10565:34;10560:2;10545:18;;10538:62;-1:-1:-1;;;10631:2:103;10616:18;;10609:33;10674:3;10659:19;;10459:225::o;12043:128::-;;12114:1;12110:6;12107:1;12104:13;12101:2;;;12120:18;;:::i;:::-;-1:-1:-1;12156:9:103;;12091:80::o;12176:125::-;;12244:1;12241;12238:8;12235:2;;;12249:18;;:::i;:::-;-1:-1:-1;12286:9:103;;12225:76::o;12306:380::-;12391:1;12381:12;;12438:1;12428:12;;;12449:2;;12503:4;12495:6;12491:17;12481:27;;12449:2;12556;12548:6;12545:14;12525:18;12522:38;12519:2;;;12602:10;12597:3;12593:20;12590:1;12583:31;12637:4;12634:1;12627:15;12665:4;12662:1;12655:15;12519:2;;12361:325;;;:::o;12691:135::-;;-1:-1:-1;;12751:17:103;;12748:2;;;12771:18;;:::i;:::-;-1:-1:-1;12818:1:103;12807:13;;12738:88::o;12831:127::-;12892:10;12887:3;12883:20;12880:1;12873:31;12923:4;12920:1;12913:15;12947:4;12944:1;12937:15;12963:127;13024:10;13019:3;13015:20;13012:1;13005:31;13055:4;13052:1;13045:15;13079:4;13076:1;13069:15;13095:131;-1:-1:-1;;;;;13170:31:103;;13160:42;;13150:2;;13216:1;13213;13206:12"},"methodIdentifiers":{"MAX_CONTRACTS()":"24042a0a","_contracts(bytes32,bytes32)":"4a941e5e","_contractsInRelease(bytes32)":"69923515","contractName(uint256)":"f6b3e7d0","contracts()":"6c0f79b6","deregister(bytes32)":"20813154","deregisterInRelease(bytes32,bytes32)":"dc527b08","ensureSender(address,bytes32)":"2ca65a79","getContract(bytes32)":"e16c7d98","getContractInRelease(bytes32,bytes32)":"b0ef18a0","getMessage()":"ce6d41de","getRelease()":"76b707b7","initialize(address)":"c4d66de8","initializeRegistry(bytes32)":"56bbc19d","prepareRelease(bytes32)":"893917ea","register(bytes32,address)":"d22057a9","registerInRelease(bytes32,bytes32,address)":"1d5e7314","release()":"86d1a69f","setMessage(string)":"368b8772","startBlock()":"48cd4cb1","upgradeToV2(string)":"2b34378a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"}],\"name\":\"LogContractDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contractName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isNew\",\"type\":\"bool\"}],\"name\":\"LogContractRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"release\",\"type\":\"bytes32\"}],\"name\":\"LogReleasePrepared\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_CONTRACTS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"_contracts\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"_contractsInRelease\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"contractName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_numberOfContracts\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregister\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"deregisterInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"ensureSender\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_senderMatches\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getContractInRelease\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMessage\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRelease\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_initialRelease\",\"type\":\"bytes32\"}],\"name\":\"initializeRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newRelease\",\"type\":\"bytes32\"}],\"name\":\"prepareRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"register\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_release\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"registerInRelease\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"release\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"setMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_message\",\"type\":\"string\"}],\"name\":\"upgradeToV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"deregister(bytes32)\":{\"details\":\"Deregister contract in the current release\"},\"getContract(bytes32)\":{\"details\":\"Get contract's address in the current release\"},\"getContractInRelease(bytes32,bytes32)\":{\"details\":\"Get contract's address in certain release\"},\"getRelease()\":{\"details\":\"get current release\"},\"prepareRelease(bytes32)\":{\"details\":\"Create new release, copy contracts from previous release\"},\"register(bytes32,address)\":{\"details\":\"Register contract in the current release\"},\"registerInRelease(bytes32,bytes32,address)\":{\"details\":\"Register contract in certain release\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestRegistryControllerUpdated.sol\":\"TestRegistryControllerUpdated\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x5050943b32b6a8f282573d166b2e9d87ab7eb4dbba4ab6acf36ecb54fe6995e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4831d777a29ebdf9f2caecd70e74b97bff1b70e53622fd0a02aed01e21c8271\",\"dweb:/ipfs/QmUqurVVnCc7XkMxb2k23TVQUtuhHZduJ3hTZarTJrqU24\"]},\"contracts/modules/RegistryController.sol\":{\"keccak256\":\"0x509cc6e92d7d46a87f3c7bb05b23570f45d1a5a96a30af82bfff77f0237a0d44\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://66d5cca04102b54cb7bdb1d3e08f7864c2bdefd1c4246741b36882f3c4ea459d\",\"dweb:/ipfs/QmYBhsMAj1pvMNNDkB8ccW1yoJJraJobsvdQX7rRUrfx5y\"]},\"contracts/shared/CoreController.sol\":{\"keccak256\":\"0x605a7943a3717ee88c97cd93940af88a71bcd71d72c7fdd55bdbc4031fb4d401\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c1b8cc6984c4e7e6ebc91c704429607aaa564ca2f187d6b47a05ee0378ac17c3\",\"dweb:/ipfs/Qmbi8xBK2a9HBTJnqcjif5QnE35xkXja3eKeeT8UCXaz1H\"]},\"contracts/test/TestRegistryControllerUpdated.sol\":{\"keccak256\":\"0x5a7d84848a8c5a439a1dea054f04f906a4a93f739ee541f306a525bafd40c523\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://de049a6953aa0808f26462c3573a417247d6f63d1bad3ea8e61c89af6ad1c738\",\"dweb:/ipfs/QmTVen8XG3HWDp2wJvqYECynnhMRPw7WqC7K8SPgMy6KRk\"]}},\"version\":1}"}},"contracts/test/TestRiskpool.sol":{"TestRiskpool":{"abi":[{"inputs":[{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"uint256","name":"collateralization","type":"uint256"},{"internalType":"address","name":"erc20Token","type":"address"},{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"activeBundles","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"LogBasicRiskpoolBundlesAndPolicies","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogBasicRiskpoolCandidateBundleAmountCheck","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentArchived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"address","name":"registryAddress","type":"address"}],"name":"LogComponentCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"componentName","type":"bytes32"},{"indexed":false,"internalType":"enum IComponent.ComponentType","name":"componentType","type":"uint8"},{"indexed":false,"internalType":"address","name":"componentAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateOld","type":"uint8"},{"indexed":false,"internalType":"enum IComponent.ComponentState","name":"stateNew","type":"uint8"}],"name":"LogComponentStateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentSuspended","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogComponentUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolBundleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isMatching","type":"bool"}],"name":"LogRiskpoolBundleMatchesPolicy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isSecured","type":"bool"}],"name":"LogRiskpoolCollateralLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"LogRiskpoolCollateralReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"riskpoolAddress","type":"address"}],"name":"LogRiskpoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolDeclined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPayoutProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"processId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogRiskpoolPremiumProcessed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"LogRiskpoolProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"DEFAULT_FILTER_DATA_STRUCTURE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FULL_COLLATERALIZATION_LEVEL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUM_OF_SUM_INSURED_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeBundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approvalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"archiveCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"bundle","type":"tuple"},{"components":[{"internalType":"enum IPolicy.ApplicationState","name":"state","type":"uint8"},{"internalType":"uint256","name":"premiumAmount","type":"uint256"},{"internalType":"uint256","name":"sumInsuredAmount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IPolicy.Application","name":"application","type":"tuple"}],"name":"bundleMatchesApplication","outputs":[{"internalType":"bool","name":"isMatching","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"bundles","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"burnBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"closeBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"collateralAmount","type":"uint256"}],"name":"collateralizePolicy","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"initialAmount","type":"uint256"}],"name":"createBundle","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"declineCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"defundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"fundBundle","outputs":[{"internalType":"uint256","name":"netAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getActiveBundleId","outputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"getBundle","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"riskpoolId","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"enum IBundle.BundleState","name":"state","type":"uint8"},{"internalType":"bytes","name":"filter","type":"bytes"},{"internalType":"uint256","name":"capital","type":"uint256"},{"internalType":"uint256","name":"lockedCapital","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"internalType":"struct IBundle.Bundle","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCapital","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getErc20Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFilterDataStructure","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getFullCollateralizationLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaximumNumberOfActiveBundles","outputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getState","outputs":[{"internalType":"enum IComponent.ComponentState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSumOfSumInsuredCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalValueLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getType","outputs":[{"internalType":"enum IComponent.ComponentType","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isProduct","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRiskpool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"lockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPayout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"processPolicyPremium","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposalCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"processId","type":"bytes32"}],"name":"releasePolicy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resumeCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"setId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maximumNumberOfActiveBundles","type":"uint256"}],"name":"setMaximumNumberOfActiveBundles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"suspendCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"}],"name":"unlockBundle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpauseCallback","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3738:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"141:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"150:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"158:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:103"},"nodeType":"YulFunctionCall","src":"143:22:103"},"nodeType":"YulExpressionStatement","src":"143:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:103"},"nodeType":"YulFunctionCall","src":"112:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:103"},"nodeType":"YulFunctionCall","src":"108:32:103"},"nodeType":"YulIf","src":"105:2:103"},{"nodeType":"YulVariableDeclaration","src":"176:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"195:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"189:5:103"},"nodeType":"YulFunctionCall","src":"189:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"180:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"239:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"214:24:103"},"nodeType":"YulFunctionCall","src":"214:31:103"},"nodeType":"YulExpressionStatement","src":"214:31:103"},{"nodeType":"YulAssignment","src":"254:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"264:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"254:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:103","type":""}],"src":"14:261:103"},{"body":{"nodeType":"YulBlock","src":"429:504:103","statements":[{"body":{"nodeType":"YulBlock","src":"476:26:103","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"485:6:103"},{"name":"value4","nodeType":"YulIdentifier","src":"493:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"478:6:103"},"nodeType":"YulFunctionCall","src":"478:22:103"},"nodeType":"YulExpressionStatement","src":"478:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"450:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"459:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"446:3:103"},"nodeType":"YulFunctionCall","src":"446:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"471:3:103","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"442:3:103"},"nodeType":"YulFunctionCall","src":"442:33:103"},"nodeType":"YulIf","src":"439:2:103"},{"nodeType":"YulAssignment","src":"511:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"527:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"521:5:103"},"nodeType":"YulFunctionCall","src":"521:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"511:6:103"}]},{"nodeType":"YulAssignment","src":"546:35:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"566:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"577:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"562:3:103"},"nodeType":"YulFunctionCall","src":"562:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"556:5:103"},"nodeType":"YulFunctionCall","src":"556:25:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"546:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"590:38:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"613:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"624:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"609:3:103"},"nodeType":"YulFunctionCall","src":"609:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"603:5:103"},"nodeType":"YulFunctionCall","src":"603:25:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"594:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"662:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"637:24:103"},"nodeType":"YulFunctionCall","src":"637:31:103"},"nodeType":"YulExpressionStatement","src":"637:31:103"},{"nodeType":"YulAssignment","src":"677:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"687:5:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"677:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"701:40:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"726:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"737:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"722:3:103"},"nodeType":"YulFunctionCall","src":"722:18:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"716:5:103"},"nodeType":"YulFunctionCall","src":"716:25:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"705:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"775:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"750:24:103"},"nodeType":"YulFunctionCall","src":"750:33:103"},"nodeType":"YulExpressionStatement","src":"750:33:103"},{"nodeType":"YulAssignment","src":"792:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"802:7:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"792:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"818:41:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"839:3:103"},"nodeType":"YulFunctionCall","src":"839:19:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"833:5:103"},"nodeType":"YulFunctionCall","src":"833:26:103"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"822:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"893:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"868:24:103"},"nodeType":"YulFunctionCall","src":"868:33:103"},"nodeType":"YulExpressionStatement","src":"868:33:103"},{"nodeType":"YulAssignment","src":"910:17:103","value":{"name":"value_2","nodeType":"YulIdentifier","src":"920:7:103"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"910:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256t_addresst_addresst_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"363:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"374:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"386:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"394:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"402:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"410:6:103","type":""},{"name":"value4","nodeType":"YulTypedName","src":"418:6:103","type":""}],"src":"280:653:103"},{"body":{"nodeType":"YulBlock","src":"1040:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"1086:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1095:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1103:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1088:6:103"},"nodeType":"YulFunctionCall","src":"1088:22:103"},"nodeType":"YulExpressionStatement","src":"1088:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1061:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1070:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1057:3:103"},"nodeType":"YulFunctionCall","src":"1057:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1082:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1053:3:103"},"nodeType":"YulFunctionCall","src":"1053:32:103"},"nodeType":"YulIf","src":"1050:2:103"},{"nodeType":"YulVariableDeclaration","src":"1121:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1140:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1134:5:103"},"nodeType":"YulFunctionCall","src":"1134:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1125:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1184:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"1159:24:103"},"nodeType":"YulFunctionCall","src":"1159:31:103"},"nodeType":"YulExpressionStatement","src":"1159:31:103"},{"nodeType":"YulAssignment","src":"1199:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"1209:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1199:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IBundleToken_$6825_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1006:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1017:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1029:6:103","type":""}],"src":"938:282:103"},{"body":{"nodeType":"YulBlock","src":"1326:76:103","statements":[{"nodeType":"YulAssignment","src":"1336:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1348:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1359:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1344:3:103"},"nodeType":"YulFunctionCall","src":"1344:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1336:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1378:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1389:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1371:6:103"},"nodeType":"YulFunctionCall","src":"1371:25:103"},"nodeType":"YulExpressionStatement","src":"1371:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1295:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1306:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1317:4:103","type":""}],"src":"1225:177:103"},{"body":{"nodeType":"YulBlock","src":"1608:415:103","statements":[{"nodeType":"YulAssignment","src":"1618:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1630:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1641:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1626:3:103"},"nodeType":"YulFunctionCall","src":"1626:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1618:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1661:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1672:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1654:6:103"},"nodeType":"YulFunctionCall","src":"1654:25:103"},"nodeType":"YulExpressionStatement","src":"1654:25:103"},{"body":{"nodeType":"YulBlock","src":"1721:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1742:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1749:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1754:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1745:3:103"},"nodeType":"YulFunctionCall","src":"1745:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1735:6:103"},"nodeType":"YulFunctionCall","src":"1735:31:103"},"nodeType":"YulExpressionStatement","src":"1735:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1786:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1789:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1779:6:103"},"nodeType":"YulFunctionCall","src":"1779:15:103"},"nodeType":"YulExpressionStatement","src":"1779:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1814:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1817:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1807:6:103"},"nodeType":"YulFunctionCall","src":"1807:15:103"},"nodeType":"YulExpressionStatement","src":"1807:15:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1701:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1709:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1698:2:103"},"nodeType":"YulFunctionCall","src":"1698:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1691:6:103"},"nodeType":"YulFunctionCall","src":"1691:21:103"},"nodeType":"YulIf","src":"1688:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1852:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1863:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1848:3:103"},"nodeType":"YulFunctionCall","src":"1848:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"1868:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1841:6:103"},"nodeType":"YulFunctionCall","src":"1841:34:103"},"nodeType":"YulExpressionStatement","src":"1841:34:103"},{"nodeType":"YulVariableDeclaration","src":"1884:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1902:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1907:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1898:3:103"},"nodeType":"YulFunctionCall","src":"1898:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1911:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1894:3:103"},"nodeType":"YulFunctionCall","src":"1894:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1888:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1933:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1944:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1929:3:103"},"nodeType":"YulFunctionCall","src":"1929:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"1953:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1961:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1949:3:103"},"nodeType":"YulFunctionCall","src":"1949:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1922:6:103"},"nodeType":"YulFunctionCall","src":"1922:43:103"},"nodeType":"YulExpressionStatement","src":"1922:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1996:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1981:3:103"},"nodeType":"YulFunctionCall","src":"1981:18:103"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2005:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2013:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2001:3:103"},"nodeType":"YulFunctionCall","src":"2001:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1974:6:103"},"nodeType":"YulFunctionCall","src":"1974:43:103"},"nodeType":"YulExpressionStatement","src":"1974:43:103"}]},"name":"abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1553:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1564:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1572:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1580:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1588:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1599:4:103","type":""}],"src":"1407:616:103"},{"body":{"nodeType":"YulBlock","src":"2202:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2219:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2230:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2212:6:103"},"nodeType":"YulFunctionCall","src":"2212:21:103"},"nodeType":"YulExpressionStatement","src":"2212:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2253:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2264:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2249:3:103"},"nodeType":"YulFunctionCall","src":"2249:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2269:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2242:6:103"},"nodeType":"YulFunctionCall","src":"2242:30:103"},"nodeType":"YulExpressionStatement","src":"2242:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2303:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2288:3:103"},"nodeType":"YulFunctionCall","src":"2288:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2308:34:103","type":"","value":"ERROR:CMP-004:REGISTRY_ADDRESS_Z"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2281:6:103"},"nodeType":"YulFunctionCall","src":"2281:62:103"},"nodeType":"YulExpressionStatement","src":"2281:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2363:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2374:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2359:3:103"},"nodeType":"YulFunctionCall","src":"2359:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2379:5:103","type":"","value":"ERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2352:6:103"},"nodeType":"YulFunctionCall","src":"2352:33:103"},"nodeType":"YulExpressionStatement","src":"2352:33:103"},{"nodeType":"YulAssignment","src":"2394:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2406:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2417:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:103"},"nodeType":"YulFunctionCall","src":"2402:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2394:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2179:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2193:4:103","type":""}],"src":"2028:399:103"},{"body":{"nodeType":"YulBlock","src":"2606:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2623:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2634:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2616:6:103"},"nodeType":"YulFunctionCall","src":"2616:21:103"},"nodeType":"YulExpressionStatement","src":"2616:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2657:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2668:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2653:3:103"},"nodeType":"YulFunctionCall","src":"2653:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2673:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2646:6:103"},"nodeType":"YulFunctionCall","src":"2646:30:103"},"nodeType":"YulExpressionStatement","src":"2646:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2696:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2707:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2692:3:103"},"nodeType":"YulFunctionCall","src":"2692:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2712:34:103","type":"","value":"ERROR:RPL-003:ERC20_ADDRESS_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2685:6:103"},"nodeType":"YulFunctionCall","src":"2685:62:103"},"nodeType":"YulExpressionStatement","src":"2685:62:103"},{"nodeType":"YulAssignment","src":"2756:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2768:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2779:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2764:3:103"},"nodeType":"YulFunctionCall","src":"2764:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2756:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2583:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2597:4:103","type":""}],"src":"2432:356:103"},{"body":{"nodeType":"YulBlock","src":"2967:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2984:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2995:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2977:6:103"},"nodeType":"YulFunctionCall","src":"2977:21:103"},"nodeType":"YulExpressionStatement","src":"2977:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3018:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3029:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3014:3:103"},"nodeType":"YulFunctionCall","src":"3014:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3034:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3007:6:103"},"nodeType":"YulFunctionCall","src":"3007:30:103"},"nodeType":"YulExpressionStatement","src":"3007:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3057:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3068:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3053:3:103"},"nodeType":"YulFunctionCall","src":"3053:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3073:34:103","type":"","value":"ERROR:RPL-004:WALLET_ADDRESS_ZER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3046:6:103"},"nodeType":"YulFunctionCall","src":"3046:62:103"},"nodeType":"YulExpressionStatement","src":"3046:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3128:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3139:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3124:3:103"},"nodeType":"YulFunctionCall","src":"3124:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3144:3:103","type":"","value":"O"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3117:6:103"},"nodeType":"YulFunctionCall","src":"3117:31:103"},"nodeType":"YulExpressionStatement","src":"3117:31:103"},{"nodeType":"YulAssignment","src":"3157:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3180:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3165:3:103"},"nodeType":"YulFunctionCall","src":"3165:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3157:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2944:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2958:4:103","type":""}],"src":"2793:397:103"},{"body":{"nodeType":"YulBlock","src":"3369:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3386:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3397:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3379:6:103"},"nodeType":"YulFunctionCall","src":"3379:21:103"},"nodeType":"YulExpressionStatement","src":"3379:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3431:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3416:3:103"},"nodeType":"YulFunctionCall","src":"3416:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3436:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3409:6:103"},"nodeType":"YulFunctionCall","src":"3409:30:103"},"nodeType":"YulExpressionStatement","src":"3409:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3459:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3470:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3455:3:103"},"nodeType":"YulFunctionCall","src":"3455:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3475:34:103","type":"","value":"ERROR:RPL-002:SUM_OF_SUM_INSURED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3448:6:103"},"nodeType":"YulFunctionCall","src":"3448:62:103"},"nodeType":"YulExpressionStatement","src":"3448:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3530:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3541:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3526:3:103"},"nodeType":"YulFunctionCall","src":"3526:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3546:11:103","type":"","value":"_CAP_ZERO"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3519:6:103"},"nodeType":"YulFunctionCall","src":"3519:39:103"},"nodeType":"YulExpressionStatement","src":"3519:39:103"},{"nodeType":"YulAssignment","src":"3567:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3579:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3590:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3575:3:103"},"nodeType":"YulFunctionCall","src":"3575:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3567:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3346:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3360:4:103","type":""}],"src":"3195:405:103"},{"body":{"nodeType":"YulBlock","src":"3650:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"3714:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3723:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3726:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3716:6:103"},"nodeType":"YulFunctionCall","src":"3716:12:103"},"nodeType":"YulExpressionStatement","src":"3716:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3673:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3684:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3699:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3704:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3695:3:103"},"nodeType":"YulFunctionCall","src":"3695:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"3708:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3691:3:103"},"nodeType":"YulFunctionCall","src":"3691:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3680:3:103"},"nodeType":"YulFunctionCall","src":"3680:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3670:2:103"},"nodeType":"YulFunctionCall","src":"3670:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3663:6:103"},"nodeType":"YulFunctionCall","src":"3663:50:103"},"nodeType":"YulIf","src":"3660:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3639:5:103","type":""}],"src":"3605:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes32t_uint256t_addresst_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := mload(add(headStart, 32))\n let value := mload(add(headStart, 64))\n validator_revert_address(value)\n value2 := value\n let value_1 := mload(add(headStart, 96))\n validator_revert_address(value_1)\n value3 := value_1\n let value_2 := mload(add(headStart, 128))\n validator_revert_address(value_2)\n value4 := value_2\n }\n function abi_decode_tuple_t_contract$_IBundleToken_$6825_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_enum$_ComponentType_$2891_t_address_t_address__to_t_bytes32_t_uint8_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n if iszero(lt(value1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_stringliteral_5dcfc840a63d8a5a46ba6b85476b7d901628bd3e28990c52c8816700a9111acc__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERROR:CMP-004:REGISTRY_ADDRESS_Z\")\n mstore(add(headStart, 96), \"ERO\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERROR:RPL-004:WALLET_ADDRESS_ZER\")\n mstore(add(headStart, 96), \"O\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERROR:RPL-002:SUM_OF_SUM_INSURED\")\n mstore(add(headStart, 96), \"_CAP_ZERO\")\n tail := add(headStart, 128)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040526011805463ffffffff191690553480156200001e57600080fd5b5060405162003118380380620031188339810160408190526200004191620005e1565b848469d3c21bcecceda10000008585858585858585858560028262000066336200047d565b6001600160a01b038116620000ce5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000f8620004cd565b600480546001600160a01b0319166001600160a01b039290921691909117905562000122620004e8565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014c62000515565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019f57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001f392909160ff82169130916101009091046001600160a01b03169062000648565b60405180910390a1505050600d85905583620002645760405162461bcd60e51b815260206004820152602960248201527f4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b6064820152608401620000c5565b600e8490556001600160a01b038316620002c15760405162461bcd60e51b815260206004820181905260248201527f4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f6044820152606401620000c5565b600c80546001600160a01b0319166001600160a01b038581169190911790915582166200033b5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401620000c5565b600b80546001600160a01b0319166001600160a01b038416179055620003736e496e7374616e63655365727669636560881b6200052f565b600780546001600160a01b0319166001600160a01b0392909216919091179055620003b06e5269736b706f6f6c5365727669636560881b6200052f565b600880546001600160a01b0319166001600160a01b0392831617905560075460408051633acd5e0f60e21b81529051919092169163eb35783c916004808301926020929190829003018186803b1580156200040a57600080fd5b505afa1580156200041f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004459190620005bb565b600980546001600160a01b0319166001600160a01b039290921691909117905550620006ac9f50505050505050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620004e36541636365737360d01b6200052f565b905090565b6000620004e37f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200052f565b6000620004e36e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200057a57600080fd5b505afa1580156200058f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005b59190620005bb565b92915050565b600060208284031215620005cd578081fd5b8151620005da8162000693565b9392505050565b600080600080600060a08688031215620005f9578081fd5b85519450602086015193506040860151620006148162000693565b6060870151909350620006278162000693565b60808701519092506200063a8162000693565b809150509295509295909350565b84815260808101600385106200066e57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6001600160a01b0381168114620006a957600080fd5b50565b612a5c80620006bc6000396000f3fe608060405234801561001057600080fd5b506004361061030c5760003560e01c80637f3b69801161019d578063b3fca9bd116100e9578063d0e0ba95116100a2578063e0815f0d1161007c578063e0815f0d146105ce578063f1d354d0146105d6578063f2fde38b146105e4578063feb1824b146105f75761030c565b8063d0e0ba95146105b3578063d73cd9921461039c578063e0032383146105c65761030c565b8063b3fca9bd1461039c578063bd1fe5d01461039c578063be169e7e1461057f578063be61e91e14610587578063c3004c8614610598578063c40000d4146105ab5761030c565b80638c483e5a11610156578063a17030d511610130578063a17030d51461055c578063a18aa1281461056f578063a18f5ae21461039c578063b26025aa146105775761030c565b80638c483e5a146105305780638da5cb5b146105435780639a82f890146105545761030c565b80637f3b6980146104d157806382558906146104d957806386c71288146104ec57806389002da514610502578063890fbf7814610515578063893d20e8146105285761030c565b80633dcdde171161025c5780635ab1bd5311610215578063652028e5116101ef578063652028e51461048d578063715018a6146104a05780637888a2ff146104a85780637893c7bc146104bb5761030c565b80635ab1bd53146104665780635d1ca6311461047d578063638ce0ba146104855761030c565b80633dcdde17146104175780634101b90c1461043457806345fe1c6d1461043c57806354afef631461044b578063587e59d01461045357806359dacc6a1461039c5761030c565b80631865c57d116102c95780632d0821b7116102a35780632d0821b7146103be578063316c5348146103de57806336153f3a146103f15780633629c3c4146104045761030c565b80631865c57d146103875780631b867c631461039c578063258d560c146103a65761030c565b80630676cb0e1461031157806312065fe014610337578063132996041461033f57806315dae03e1461036457806317d7de7c1461037757806318442e631461037f575b600080fd5b61032461031f366004612380565b610608565b6040519081526020015b60405180910390f35b610324610784565b600b546001600160a01b03165b6040516001600160a01b03909116815260200161032e565b60035460ff1660405161032e919061274c565b600154610324565b600a54610324565b61038f610814565b60405161032e9190612732565b6103a461089a565b005b6103ae6108e1565b604051901515815260200161032e565b6103d16103cc366004612380565b610911565b60405161032e9190612818565b6103a46103ec366004612380565b610a26565b6103246103ff3660046126ac565b610bc7565b6103a4610412366004612398565b610d93565b6040805160208101909152600081525b60405161032e9190612760565b610324610e1b565b610324670de0b6b3a764000081565b600d54610324565b6103a4610461366004612380565b610e59565b61034c60035461010090046001600160a01b031690565b600254610324565b6103a4610fc6565b6103a461049b366004612380565b611013565b6103a4611090565b6103246104b63660046123b9565b6110a2565b6104276040518060200160405280600081525081565b6103246111a5565b6103a46104e7366004612398565b6111e3565b6103ae6104fa36600461259a565b506001919050565b6103246105103660046126ac565b611263565b6103ae610523366004612398565b6113d7565b61034c61146e565b6103a461053e366004612380565b611480565b6000546001600160a01b031661034c565b6103ae6115ed565b6103a461056a366004612380565b6115f5565b600e54610324565b610324611762565b6103a46117a0565b61032469d3c21bcecceda100000081565b6103a46105a6366004612380565b6117ed565b610324611871565b6103a46105c1366004612380565b6118af565b6103246118f9565b6103ae611936565b670de0b6b3a7640000610324565b6103a46105f2366004612341565b61193f565b600c546001600160a01b031661034c565b60008061061460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190612694565b83106106f85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190612694565b9150505b919050565b60008061079060025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b1580156107d657600080fd5b505afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e9190612694565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561085d57600080fd5b505afa158015610871573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089591906123fc565b905090565b6108af6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146108df5760405162461bcd60e51b81526004016106ef90612773565b565b600060025b60035460ff16600281111561090b57634e487b7160e01b600052602160045260246000fd5b14905090565b610919612197565b600a5482106109765760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b60648201526084016106ef565b6000600a838154811061099957634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b1580156109ea57600080fd5b505afa1580156109fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077b91908101906124c6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aab91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610ae89160040190815260200190565b60206040518083038186803b158015610b0057600080fd5b505afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190612364565b9050336001600160a01b03821614610b625760405162461bcd60e51b81526004016106ef906127aa565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c4c91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610c899160040190815260200190565b60206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612364565b9050336001600160a01b03821614610d035760405162461bcd60e51b81526004016106ef906127aa565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610d5157600080fd5b505af1158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190612694565b9695505050505050565b610da363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b031614610dd35760405162461bcd60e51b81526004016106ef906127e1565b610ddd8282611a40565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b600080610e2760025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a66906024016107be565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ede91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610f1b9160040190815260200190565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612364565b9050336001600160a01b03821614610f955760405162461bcd60e51b81526004016106ef906127aa565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610b8f565b610fdb6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b03161461100b5760405162461bcd60e51b81526004016106ef90612773565b6108df611ac2565b61101b611b43565b600061102660025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505050505050565b611098611b43565b6108df6000611b9d565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e74906110db908490889088906004016126fe565b602060405180830381600087803b1580156110f557600080fd5b505af1158015611109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112d9190612694565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000806111b160025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db32844906024016107be565b6111f363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146112235760405162461bcd60e51b81526004016106ef906127e1565b61122d8282611bed565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610e0f565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b1580156112ac57600080fd5b505afa1580156112c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e891908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916113259160040190815260200190565b60206040518083038186803b15801561133d57600080fd5b505afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190612364565b9050336001600160a01b0382161461139f5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610d37565b60006113e963141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146114195760405162461bcd60e51b81526004016106ef906127e1565b6114238383611c3c565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610895565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156114c957600080fd5b505afa1580156114dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150591908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916115429160040190815260200190565b60206040518083038186803b15801561155a57600080fd5b505afa15801561156e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115929190612364565b9050336001600160a01b038216146115bc5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610b8f565b6000806108e6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261167a91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116b79160040190815260200190565b60206040518083038186803b1580156116cf57600080fd5b505afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190612364565b9050336001600160a01b038216146117315760405162461bcd60e51b81526004016106ef906127aa565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610b8f565b60008061176e60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d9235906024016107be565b6117b56810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146117e55760405162461bcd60e51b81526004016106ef90612773565b6108df61203f565b6117fd63141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b03161461182d5760405162461bcd60e51b81526004016106ef906127e1565b600061183882612127565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610e0f565b60008061187d60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f906024016107be565b6118c46810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146118f45760405162461bcd60e51b81526004016106ef90612773565b600255565b60008061190560025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b0316906329560980906024016107be565b600060016108e6565b611947611b43565b6001600160a01b0381166119ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ef565b6119b581611b9d565b50565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611a0257600080fd5b505afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190612364565b92915050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611aa557600080fd5b505af1158015611ab9573d6000803e3d6000fd5b50505050505050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146108df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ef565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611a8b565b600080611c47610e1b565b90506000611c536118f9565b90506000611c5f611762565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a160008311611cf45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c45530060448201526064016106ef565b808211611d435760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c00000060448201526064016106ef565b611d4d8582612908565b821061203657600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b158015611d9857600080fd5b505afa158015611dac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd4919081019061241b565b601154909150600090611dee90869063ffffffff166129a2565b905060005b8581108015611e00575086155b15612032576000611e1083610608565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015611e5a57600080fd5b505afa158015611e6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9691908101906124c6565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a1801561201c5760008260c001518360a00151611ef59190612920565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b811061200157600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b158015611f9b57600080fd5b505af1158015611faf573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff16925090611fdd8361297e565b91906101000a81548163ffffffff021916908363ffffffff1602179055505061201a565b8961200d876001612908565b61201791906129a2565b95505b505b505050808061202a90612963565b915050611df3565b5050505b50505092915050565b600061204a60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561208f57600080fd5b505afa1580156120a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c79190612694565b156119b55760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b60648201526084016106ef565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561218357600080fd5b505af1158015610757573d6000803e3d6000fd5b604051806101400160405280600081526020016000815260200160008152602001600060038111156121d957634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612219578081fd5b813561222c612227826128e0565b6128af565b818152846020838601011115612240578283fd5b816020850160208301379081016020019190915292915050565b600082601f83011261226a578081fd5b8151612278612227826128e0565b81815284602083860101111561228c578283fd5b61229d826020830160208701612937565b949350505050565b803561077f81612a19565b805161077f81612a19565b600060c082840312156122cc578081fd5b6122d660c06128af565b905081356122e381612a19565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561231557600080fd5b61232184828501612209565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612352578081fd5b813561235d81612a04565b9392505050565b600060208284031215612375578081fd5b815161235d81612a04565b600060208284031215612391578081fd5b5035919050565b600080604083850312156123aa578081fd5b50508035926020909101359150565b600080604083850312156123cb578182fd5b823567ffffffffffffffff8111156123e1578283fd5b6123ed85828601612209565b95602094909401359450505050565b60006020828403121561240d578081fd5b81516007811061235d578182fd5b60006020828403121561242c578081fd5b815167ffffffffffffffff80821115612443578283fd5b9083019060c08286031215612456578283fd5b61246060c06128af565b825161246b81612a19565b808252506020830151602082015260408301516040820152606083015182811115612494578485fd5b6124a08782860161225a565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000602082840312156124d7578081fd5b815167ffffffffffffffff808211156124ee578283fd5b8184019150610140808387031215612504578384fd5b61250d816128af565b9050825181526020830151602082015260408301516040820152612533606084016122b0565b6060820152608083015182811115612549578485fd5b6125558782860161225a565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600080604083850312156125ac578182fd5b823567ffffffffffffffff808211156125c3578384fd5b81850191506101408083880312156125d9578485fd5b6125e2816128af565b9050823581526020830135602082015260408301356040820152612608606084016122a5565b606082015260808301358281111561261e578586fd5b61262a88828601612209565b60808301525060a083013560a082015260c083013560c082015260e083013560e082015261010080840135818301525061012080840135818301525080945050602085013591508082111561267d578283fd5b5061268a858286016122bb565b9150509250929050565b6000602082840312156126a5578081fd5b5051919050565b600080604083850312156123aa578182fd5b600081518084526126d6816020860160208601612937565b601f01601f19169290920160200192915050565b600481106126fa576126fa6129d8565b9052565b6001600160a01b0384168152606060208201819052600090612722908301856126be565b9050826040830152949350505050565b6020810160078310612746576127466129d8565b91905290565b6020810160038310612746576127466129d8565b60006020825261235d60208301846126be565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b600060208252825160208301526020830151604083015260408301516060830152606083015161284b60808401826126ea565b5060808301516101408060a08501526128686101608501836126be565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128d8576128d86129ee565b604052919050565b600067ffffffffffffffff8211156128fa576128fa6129ee565b50601f01601f191660200190565b6000821982111561291b5761291b6129c2565b500190565b600082821015612932576129326129c2565b500390565b60005b8381101561295257818101518382015260200161293a565b83811115611b3d5750506000910152565b6000600019821415612977576129776129c2565b5060010190565b600063ffffffff80831681811415612998576129986129c2565b6001019392505050565b6000826129bd57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146119b557600080fd5b600481106119b557600080fdfea264697066735822122027465eb2540f515511bab31c2e975b912c7cb02ee862dca2d6d9395445502f7364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x11 DUP1 SLOAD PUSH4 0xFFFFFFFF NOT AND SWAP1 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x1E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x3118 CODESIZE SUB DUP1 PUSH3 0x3118 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x41 SWAP2 PUSH3 0x5E1 JUMP JUMPDEST DUP5 DUP5 PUSH10 0xD3C21BCECCEDA1000000 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH1 0x2 DUP3 PUSH3 0x66 CALLER PUSH3 0x47D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH3 0xCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030343A52454749535452595F414444524553535F5A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x45524F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND MUL OR SWAP1 SSTORE PUSH3 0xF8 PUSH3 0x4CD JUMP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x122 PUSH3 0x4E8 JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x14C PUSH3 0x515 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 DUP4 DUP2 SSTORE PUSH1 0x3 DUP1 SLOAD DUP5 SWAP3 PUSH1 0xFF NOT SWAP1 SWAP2 AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH3 0x19F JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x1 SLOAD PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH32 0x4A2DEA3211D6352F30925875B6E2E984642F84E1BCFFE65FFAA1B04C1197B7A SWAP3 PUSH3 0x1F3 SWAP3 SWAP1 SWAP2 PUSH1 0xFF DUP3 AND SWAP2 ADDRESS SWAP2 PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH3 0x648 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP PUSH1 0xD DUP6 SWAP1 SSTORE DUP4 PUSH3 0x264 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030323A53554D5F4F465F53554D5F494E5355524544 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x5F4341505F5A45524F PUSH1 0xB8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xE DUP5 SWAP1 SSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH3 0x2C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030333A45524332305F414444524553535F5A45524F PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xC DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP3 AND PUSH3 0x33B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030343A57414C4C45545F414444524553535F5A4552 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x4F PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH3 0xC5 JUMP JUMPDEST PUSH1 0xB DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE PUSH3 0x373 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL PUSH3 0x52F JUMP JUMPDEST PUSH1 0x7 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH3 0x3B0 PUSH15 0x5269736B706F6F6C53657276696365 PUSH1 0x88 SHL PUSH3 0x52F JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND OR SWAP1 SSTORE PUSH1 0x7 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH4 0x3ACD5E0F PUSH1 0xE2 SHL DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP2 PUSH4 0xEB35783C SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x40A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x41F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x445 SWAP2 SWAP1 PUSH3 0x5BB JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x6AC SWAP16 POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4E3 PUSH6 0x416363657373 PUSH1 0xD0 SHL PUSH3 0x52F JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4E3 PUSH32 0x436F6D706F6E656E744F776E6572536572766963650000000000000000000000 PUSH3 0x52F JUMP JUMPDEST PUSH1 0x0 PUSH3 0x4E3 PUSH15 0x496E7374616E636553657276696365 PUSH1 0x88 SHL JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x57A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH3 0x58F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH3 0x5B5 SWAP2 SWAP1 PUSH3 0x5BB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x5CD JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH3 0x5DA DUP2 PUSH3 0x693 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH3 0x5F9 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP6 MLOAD SWAP5 POP PUSH1 0x20 DUP7 ADD MLOAD SWAP4 POP PUSH1 0x40 DUP7 ADD MLOAD PUSH3 0x614 DUP2 PUSH3 0x693 JUMP JUMPDEST PUSH1 0x60 DUP8 ADD MLOAD SWAP1 SWAP4 POP PUSH3 0x627 DUP2 PUSH3 0x693 JUMP JUMPDEST PUSH1 0x80 DUP8 ADD MLOAD SWAP1 SWAP3 POP PUSH3 0x63A DUP2 PUSH3 0x693 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST DUP5 DUP2 MSTORE PUSH1 0x80 DUP2 ADD PUSH1 0x3 DUP6 LT PUSH3 0x66E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP3 ADD SWAP5 SWAP1 SWAP5 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x40 DUP3 ADD MSTORE SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2A5C DUP1 PUSH3 0x6BC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x30C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3B6980 GT PUSH2 0x19D JUMPI DUP1 PUSH4 0xB3FCA9BD GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xD0E0BA95 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x5D6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5E4 JUMPI DUP1 PUSH4 0xFEB1824B EQ PUSH2 0x5F7 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x5B3 JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xE0032383 EQ PUSH2 0x5C6 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x57F JUMPI DUP1 PUSH4 0xBE61E91E EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xC3004C86 EQ PUSH2 0x598 JUMPI DUP1 PUSH4 0xC40000D4 EQ PUSH2 0x5AB JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A GT PUSH2 0x156 JUMPI DUP1 PUSH4 0xA17030D5 GT PUSH2 0x130 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x55C JUMPI DUP1 PUSH4 0xA18AA128 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xB26025AA EQ PUSH2 0x577 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x543 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x554 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x7F3B6980 EQ PUSH2 0x4D1 JUMPI DUP1 PUSH4 0x82558906 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0x86C71288 EQ PUSH2 0x4EC JUMPI DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0x890FBF78 EQ PUSH2 0x515 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x528 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x3DCDDE17 GT PUSH2 0x25C JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x215 JUMPI DUP1 PUSH4 0x652028E5 GT PUSH2 0x1EF JUMPI DUP1 PUSH4 0x652028E5 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x7888A2FF EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0x7893C7BC EQ PUSH2 0x4BB JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x466 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x47D JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x485 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x3DCDDE17 EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0x4101B90C EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x43C JUMPI DUP1 PUSH4 0x54AFEF63 EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x453 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x39C JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x1865C57D GT PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x3F1 JUMPI DUP1 PUSH4 0x3629C3C4 EQ PUSH2 0x404 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x1865C57D EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x3A6 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x676CB0E EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x13299604 EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x377 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x37F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x324 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x324 PUSH2 0x784 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x274C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x38F PUSH2 0x814 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x89A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3AE PUSH2 0x8E1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x3D1 PUSH2 0x3CC CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2818 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x3EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0xA26 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x26AC JUMP JUMPDEST PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x412 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0xD93 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2760 JUMP JUMPDEST PUSH2 0x324 PUSH2 0xE1B JUMP JUMPDEST PUSH2 0x324 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x461 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0xE59 JUMP JUMPDEST PUSH2 0x34C PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0xFC6 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x1013 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x1090 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x4B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x23B9 JUMP JUMPDEST PUSH2 0x10A2 JUMP JUMPDEST PUSH2 0x427 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x11A5 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x4E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x11E3 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x4FA CALLDATASIZE PUSH1 0x4 PUSH2 0x259A JUMP JUMPDEST POP PUSH1 0x1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x324 PUSH2 0x510 CALLDATASIZE PUSH1 0x4 PUSH2 0x26AC JUMP JUMPDEST PUSH2 0x1263 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x523 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x13D7 JUMP JUMPDEST PUSH2 0x34C PUSH2 0x146E JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x53E CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x1480 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x34C JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x15ED JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x56A CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x15F5 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x1762 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x17A0 JUMP JUMPDEST PUSH2 0x324 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x17ED JUMP JUMPDEST PUSH2 0x324 PUSH2 0x1871 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x18AF JUMP JUMPDEST PUSH2 0x324 PUSH2 0x18F9 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x1936 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2341 JUMP JUMPDEST PUSH2 0x193F JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x34C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x614 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x659 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x66D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x691 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST DUP4 LT PUSH2 0x6F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030373A4143544956455F42554E444C455F494E4445 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x585F544F4F5F4C41524745 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x77B SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x790 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1E010439 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1E010439 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x80E SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x871 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x895 SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8AF PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x90B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x919 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0xA SLOAD DUP3 LT PUSH2 0x976 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030363A42554E444C455F494E4445585F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x999 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x77B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA83 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xAAB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xAE8 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB38 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xB62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62D8A69 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x316C5348 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC4C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xC89 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCD9 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xD03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B0A9F9D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x36153F3A SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDA3 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDD3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0xDDD DUP3 DUP3 PUSH2 0x1A40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xD910A5091EEA39C3EFEED9891A9E2B4694BD064808F5B0A4DE415D70B313EC52 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE27 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEB6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xEDE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xF1B SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF47 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xF95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x587E59D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x587E59D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH2 0xFDB PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x100B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH2 0x8DF PUSH2 0x1AC2 JUMP JUMPDEST PUSH2 0x101B PUSH2 0x1B43 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1026 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1074 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1088 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1098 PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0x8DF PUSH1 0x0 PUSH2 0x1B9D JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57F079D PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x15FC1E74 SWAP1 PUSH2 0x10DB SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26FE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1109 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x112D SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC65A7BB8D6351C1CF70C95A316CC6A92839C986682D98BC35F958F4883F9D2A8 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH32 0xD17D9DC3726BA31D9AF5D3A3425289766158A8EA95520E1C299CCBE4A2978B34 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11B1 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x11F3 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1223 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0x122D DUP3 DUP3 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xEE37957C2D37326FA4E3897FC3947BBDBD8E1082639A302C1C206B4D1C5E695 SWAP2 ADD PUSH2 0xE0F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12E8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1325 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1351 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1375 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x139F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89002DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x89002DA5 SWAP1 PUSH1 0x44 ADD PUSH2 0xD37 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13E9 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1419 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0x1423 DUP4 DUP4 PUSH2 0x1C3C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP3 ISZERO ISZERO DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9D0F25E972AD53428B0A94CD615FA731919562FA34769DF0F9C3EED71B0BD81E SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x895 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1505 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1542 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x156E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1592 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x15BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x46241F2D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8C483E5A SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8E6 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1652 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x167A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x16B7 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1707 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA17030D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA17030D5 SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x176E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F5D9235 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3F5D9235 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x17B5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH2 0x8DF PUSH2 0x203F JUMP JUMPDEST PUSH2 0x17FD PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x182D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1838 DUP3 PUSH2 0x2127 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x22BF66455B4BF54C9548E2BB650543CFA753A53CAB13AF4020DDBFA76C231B0F SWAP2 ADD PUSH2 0xE0F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x187D PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBCD5349F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBCD5349F SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x18C4 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x18F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1905 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH3 0x52AC13 PUSH1 0xE7 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x29560980 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x8E6 JUMP JUMPDEST PUSH2 0x1947 PUSH2 0x1B43 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x19AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH2 0x19B5 DUP2 PUSH2 0x1B9D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A3A SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH1 0xD SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x5F971AA3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x64 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0xBF2E3546 SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x1A8B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1C47 PUSH2 0xE1B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C53 PUSH2 0x18F9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C5F PUSH2 0x1762 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7296D1A54B2D02C3A2F8F0B83B688D6B8415618F2AB8C3D5F761DD678DCC4B29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 GT PUSH2 0x1CF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030313A4E4F5F4143544956455F42554E444C455300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST DUP1 DUP3 GT PUSH2 0x1D43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030323A4E4F5F465245455F4341504954414C000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH2 0x1D4D DUP6 DUP3 PUSH2 0x2908 JUMP JUMPDEST DUP3 LT PUSH2 0x2036 JUMPI PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1DD4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241B JUMP JUMPDEST PUSH1 0x11 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1DEE SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x29A2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT DUP1 ISZERO PUSH2 0x1E00 JUMPI POP DUP7 ISZERO JUMPDEST ISZERO PUSH2 0x2032 JUMPI PUSH1 0x0 PUSH2 0x1E10 DUP4 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1E96 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x4FB0F8B19E3CE187A133519BFF1FCBDF3DFBC1B55F8BC334A3DA5BCADBEEA2A7 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 ISZERO PUSH2 0x201C JUMPI PUSH1 0x0 DUP3 PUSH1 0xC0 ADD MLOAD DUP4 PUSH1 0xA0 ADD MLOAD PUSH2 0x1EF5 SWAP2 SWAP1 PUSH2 0x2920 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xE54EF564BEE7E49A6E78296E638947532DE075D47CD66E331104B4812756F119 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 DUP2 LT PUSH2 0x2001 JUMPI PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP15 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP7 SWAP1 SSTORE PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 SWAP15 POP PUSH4 0xFFFFFFFF AND SWAP3 POP SWAP1 PUSH2 0x1FDD DUP4 PUSH2 0x297E JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x201A JUMP JUMPDEST DUP10 PUSH2 0x200D DUP8 PUSH1 0x1 PUSH2 0x2908 JUMP JUMPDEST PUSH2 0x2017 SWAP2 SWAP1 PUSH2 0x29A2 JUMP JUMPDEST SWAP6 POP JUMPDEST POP JUMPDEST POP POP POP DUP1 DUP1 PUSH2 0x202A SWAP1 PUSH2 0x2963 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1DF3 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x204A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20C7 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST ISZERO PUSH2 0x19B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3031303A5249534B504F4F4C5F4841535F554E425552 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x4E545F42554E444C4553 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2183 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2219 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x222C PUSH2 0x2227 DUP3 PUSH2 0x28E0 JUMP JUMPDEST PUSH2 0x28AF JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2240 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x226A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2278 PUSH2 0x2227 DUP3 PUSH2 0x28E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x228C JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x229D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2937 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x77F DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x77F DUP2 PUSH2 0x2A19 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22CC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x22D6 PUSH1 0xC0 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x22E3 DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2321 DUP5 DUP3 DUP6 ADD PUSH2 0x2209 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2352 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x235D DUP2 PUSH2 0x2A04 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2375 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x235D DUP2 PUSH2 0x2A04 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2391 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23AA JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23CB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23E1 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x23ED DUP6 DUP3 DUP7 ADD PUSH2 0x2209 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x235D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x242C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2443 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2456 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2460 PUSH1 0xC0 PUSH2 0x28AF JUMP JUMPDEST DUP3 MLOAD PUSH2 0x246B DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2494 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x24A0 DUP8 DUP3 DUP7 ADD PUSH2 0x225A JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24D7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x24EE JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2504 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x250D DUP2 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2533 PUSH1 0x60 DUP5 ADD PUSH2 0x22B0 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2549 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2555 DUP8 DUP3 DUP7 ADD PUSH2 0x225A JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25AC JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25C3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP9 SUB SLT ISZERO PUSH2 0x25D9 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x25E2 DUP2 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2608 PUSH1 0x60 DUP5 ADD PUSH2 0x22A5 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x261E JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x262A DUP9 DUP3 DUP7 ADD PUSH2 0x2209 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD CALLDATALOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x267D JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x268A DUP6 DUP3 DUP7 ADD PUSH2 0x22BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26A5 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23AA JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x26D6 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2937 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x26FA JUMPI PUSH2 0x26FA PUSH2 0x29D8 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2722 SWAP1 DUP4 ADD DUP6 PUSH2 0x26BE JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2746 JUMPI PUSH2 0x2746 PUSH2 0x29D8 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x2746 JUMPI PUSH2 0x2746 PUSH2 0x29D8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x235D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26BE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F42554E444C455F4F574E45520000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030313A4143434553535F44454E4945440000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x284B PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x26EA JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2868 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x26BE JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x28D8 JUMPI PUSH2 0x28D8 PUSH2 0x29EE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28FA JUMPI PUSH2 0x28FA PUSH2 0x29EE JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x291B JUMPI PUSH2 0x291B PUSH2 0x29C2 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2932 JUMPI PUSH2 0x2932 PUSH2 0x29C2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2952 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x293A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1B3D JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2977 JUMPI PUSH2 0x2977 PUSH2 0x29C2 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2998 JUMPI PUSH2 0x2998 PUSH2 0x29C2 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x29BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x19B5 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x27 CHAINID 0x5E 0xB2 SLOAD 0xF MLOAD SSTORE GT 0xBA 0xB3 SHR 0x2E SWAP8 JUMPDEST SWAP2 0x2C PUSH29 0xB02EE862DCA2D6D9395445502F7364736F6C6343000802003300000000 ","sourceMap":"272:702:99:-:0;;;769:35:11;;;-1:-1:-1;;769:35:11;;;384:269:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;566:4;572:17;369:6;615:10;627:6;635:8;566:4;572:17;369:6;615:10;627:6;635:8;566:4;1887:22:19;635:8:99;936:32:41;719:10:59;936:18:41;:32::i;:::-;-1:-1:-1;;;;;1627:22:12;::::1;1619:70;;;::::0;-1:-1:-1;;;1619:70:12;;2230:2:103;1619:70:12::1;::::0;::::1;2212:21:103::0;2269:2;2249:18;;;2242:30;2308:34;2288:18;;;2281:62;-1:-1:-1;;;2359:18:103;;;2352:33;2402:19;;1619:70:12::1;;;;;;;;;1702:9;:31:::0;;-1:-1:-1;;;;;;1702:31:12::1;;-1:-1:-1::0;;;;;1702:31:12;::::1;;;::::0;;1754:12:::1;:10;:12::i;:::-;1744:7;:22:::0;;-1:-1:-1;;;;;;1744:22:12::1;-1:-1:-1::0;;;;;1744:22:12;;;::::1;::::0;;;::::1;::::0;;1802:27:::1;:25;:27::i;:::-;1777:22;:52:::0;;-1:-1:-1;;;;;;1777:52:12::1;-1:-1:-1::0;;;;;1777:52:12;;;::::1;::::0;;;::::1;::::0;;1859:21:::1;:19;:21::i;:::-;1840:16;:40:::0;;-1:-1:-1;;;;;;1840:40:12::1;-1:-1:-1::0;;;;;1840:40:12;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1893:21:12;;;1925:14:::1;:30:::0;;1942:13;;-1:-1:-1;;1925:30:12;;::::1;::::0;1942:13;1925:30:::1;::::0;::::1;;;;-1:-1:-1::0;;;1925:30:12::1;;;;;;;;;;;::::0;;-1:-1:-1;2007:14:12::1;::::0;2037::::1;::::0;1973:142:::1;::::0;::::1;::::0;::::1;::::0;2007:14;;2037::::1;::::0;::::1;::::0;2075:4:::1;::::0;2037:14:::1;2104:9:::0;;::::1;-1:-1:-1::0;;;;;2104:9:12::1;::::0;1973:142:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;;;1938:18:19::1;:38:::0;;;1997:23;1989:77:::1;;;::::0;-1:-1:-1;;;1989:77:19;;3397:2:103;1989:77:19::1;::::0;::::1;3379:21:103::0;3436:2;3416:18;;;3409:30;3475:34;3455:18;;;3448:62;-1:-1:-1;;;3526:18:103;;;3519:39;3575:19;;1989:77:19::1;3369:231:103::0;1989:77:19::1;2077:19;:40:::0;;;-1:-1:-1;;;;;2138:24:19;::::1;2130:69;;;::::0;-1:-1:-1;;;2130:69:19;;2634:2:103;2130:69:19::1;::::0;::::1;2616:21:103::0;;;2653:18;;;2646:30;2712:34;2692:18;;;2685:62;2764:18;;2130:69:19::1;2606:182:103::0;2130:69:19::1;2210:11;:24:::0;;-1:-1:-1;;;;;;2210:24:19::1;-1:-1:-1::0;;;;;2210:24:19;;::::1;::::0;;;::::1;::::0;;;2255:20;::::1;2247:66;;;::::0;-1:-1:-1;;;2247:66:19;;2995:2:103;2247:66:19::1;::::0;::::1;2977:21:103::0;3034:2;3014:18;;;3007:30;3073:34;3053:18;;;3046:62;-1:-1:-1;;;3124:18:103;;;3117:31;3165:19;;2247:66:19::1;2967:223:103::0;2247:66:19::1;2324:7;:16:::0;;-1:-1:-1;;;;;;2324:16:19::1;-1:-1:-1::0;;;;;2324:16:19;::::1;;::::0;;2389:38:::1;-1:-1:-1::0;;;2389:19:19::1;:38::i;:::-;2353:16;:75:::0;;-1:-1:-1;;;;;;2353:75:19::1;-1:-1:-1::0;;;;;2353:75:19;;;::::1;::::0;;;::::1;::::0;;2476:38:::1;-1:-1:-1::0;;;2476:19:19::1;:38::i;:::-;2440:16;:75:::0;;-1:-1:-1;;;;;;2440:75:19::1;-1:-1:-1::0;;;;;2440:75:19;;::::1;;::::0;;2541:16:::1;::::0;:33:::1;::::0;;-1:-1:-1;;;2541:33:19;;;;:16;;;::::1;::::0;:31:::1;::::0;:33:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:16;:33;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2526:12;:48:::0;;-1:-1:-1;;;;;;2526:48:19::1;-1:-1:-1::0;;;;;2526:48:19;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;272:702:99;;-1:-1:-1;;;;;;;;;;;;;;;;272:702:99;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;4377:126:12:-;4422:7;4457:29;-1:-1:-1;;;4457:19:12;:29::i;:::-;4442:45;;4377:126;:::o;4681:186::-;4741:22;4806:44;;:19;:44::i;4511:162::-;4565:16;4618:38;-1:-1:-1;;;4875:145:12;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;1371:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;1344:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;4875:145;-1:-1:-1;;4875:145:12:o;14:261:103:-;;137:2;125:9;116:7;112:23;108:32;105:2;;;158:6;150;143:22;105:2;195:9;189:16;214:31;239:5;214:31;:::i;:::-;264:5;95:180;-1:-1:-1;;;95:180:103:o;280:653::-;;;;;;471:3;459:9;450:7;446:23;442:33;439:2;;;493:6;485;478:22;439:2;527:9;521:16;511:26;;577:2;566:9;562:18;556:25;546:35;;624:2;613:9;609:18;603:25;637:31;662:5;637:31;:::i;:::-;737:2;722:18;;716:25;687:5;;-1:-1:-1;750:33:103;716:25;750:33;:::i;:::-;854:3;839:19;;833:26;802:7;;-1:-1:-1;868:33:103;833:26;868:33;:::i;:::-;920:7;910:17;;;429:504;;;;;;;;:::o;1407:616::-;1654:25;;;1641:3;1626:19;;1709:1;1698:13;;1688:2;;1754:10;1749:3;1745:20;1742:1;1735:31;1789:4;1786:1;1779:15;1817:4;1814:1;1807:15;1688:2;1863;1848:18;;1841:34;;;;-1:-1:-1;;;;;1949:15:103;;;1944:2;1929:18;;1922:43;2001:15;;1996:2;1981:18;;;1974:43;1608:415;;-1:-1:-1;1608:415:103:o;3605:131::-;-1:-1:-1;;;;;3680:31:103;;3670:42;;3660:2;;3726:1;3723;3716:12;3660:2;3650:86;:::o;:::-;272:702:99;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:20565:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"66:430:103","statements":[{"body":{"nodeType":"YulBlock","src":"115:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"124:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"131:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"117:6:103"},"nodeType":"YulFunctionCall","src":"117:20:103"},"nodeType":"YulExpressionStatement","src":"117:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"94:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"102:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"90:3:103"},"nodeType":"YulFunctionCall","src":"90:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"109:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"86:3:103"},"nodeType":"YulFunctionCall","src":"86:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"79:6:103"},"nodeType":"YulFunctionCall","src":"79:35:103"},"nodeType":"YulIf","src":"76:2:103"},{"nodeType":"YulVariableDeclaration","src":"148:30:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"171:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"158:12:103"},"nodeType":"YulFunctionCall","src":"158:20:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"152:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"187:63:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"246:2:103"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"218:27:103"},"nodeType":"YulFunctionCall","src":"218:31:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"202:15:103"},"nodeType":"YulFunctionCall","src":"202:48:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"191:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"266:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"275:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"259:6:103"},"nodeType":"YulFunctionCall","src":"259:19:103"},"nodeType":"YulExpressionStatement","src":"259:19:103"},{"body":{"nodeType":"YulBlock","src":"326:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"335:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"342:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"328:6:103"},"nodeType":"YulFunctionCall","src":"328:20:103"},"nodeType":"YulExpressionStatement","src":"328:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"301:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"309:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"297:3:103"},"nodeType":"YulFunctionCall","src":"297:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"314:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"293:3:103"},"nodeType":"YulFunctionCall","src":"293:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"321:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"290:2:103"},"nodeType":"YulFunctionCall","src":"290:35:103"},"nodeType":"YulIf","src":"287:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"376:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"385:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"372:3:103"},"nodeType":"YulFunctionCall","src":"372:18:103"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"396:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"404:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"392:3:103"},"nodeType":"YulFunctionCall","src":"392:17:103"},{"name":"_1","nodeType":"YulIdentifier","src":"411:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"359:12:103"},"nodeType":"YulFunctionCall","src":"359:55:103"},"nodeType":"YulExpressionStatement","src":"359:55:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"438:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"447:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"434:3:103"},"nodeType":"YulFunctionCall","src":"434:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"452:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"430:3:103"},"nodeType":"YulFunctionCall","src":"430:27:103"},{"name":"array","nodeType":"YulIdentifier","src":"459:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"423:6:103"},"nodeType":"YulFunctionCall","src":"423:42:103"},"nodeType":"YulExpressionStatement","src":"423:42:103"},{"nodeType":"YulAssignment","src":"474:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"483:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"474:5:103"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"40:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"48:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"56:5:103","type":""}],"src":"14:482:103"},{"body":{"nodeType":"YulBlock","src":"564:381:103","statements":[{"body":{"nodeType":"YulBlock","src":"613:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"622:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"629:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"615:6:103"},"nodeType":"YulFunctionCall","src":"615:20:103"},"nodeType":"YulExpressionStatement","src":"615:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"592:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"600:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"588:3:103"},"nodeType":"YulFunctionCall","src":"588:17:103"},{"name":"end","nodeType":"YulIdentifier","src":"607:3:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"584:3:103"},"nodeType":"YulFunctionCall","src":"584:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"577:6:103"},"nodeType":"YulFunctionCall","src":"577:35:103"},"nodeType":"YulIf","src":"574:2:103"},{"nodeType":"YulVariableDeclaration","src":"646:23:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"662:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"656:5:103"},"nodeType":"YulFunctionCall","src":"656:13:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"650:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"678:63:103","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"737:2:103"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"709:27:103"},"nodeType":"YulFunctionCall","src":"709:31:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"693:15:103"},"nodeType":"YulFunctionCall","src":"693:48:103"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"682:7:103","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"757:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"766:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"750:6:103"},"nodeType":"YulFunctionCall","src":"750:19:103"},"nodeType":"YulExpressionStatement","src":"750:19:103"},{"body":{"nodeType":"YulBlock","src":"817:24:103","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"826:5:103"},{"name":"array","nodeType":"YulIdentifier","src":"833:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"819:6:103"},"nodeType":"YulFunctionCall","src":"819:20:103"},"nodeType":"YulExpressionStatement","src":"819:20:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"792:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"800:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"788:3:103"},"nodeType":"YulFunctionCall","src":"788:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"805:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"784:3:103"},"nodeType":"YulFunctionCall","src":"784:26:103"},{"name":"end","nodeType":"YulIdentifier","src":"812:3:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"781:2:103"},"nodeType":"YulFunctionCall","src":"781:35:103"},"nodeType":"YulIf","src":"778:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"876:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"884:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"872:3:103"},"nodeType":"YulFunctionCall","src":"872:17:103"},{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"895:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"904:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"891:3:103"},"nodeType":"YulFunctionCall","src":"891:18:103"},{"name":"_1","nodeType":"YulIdentifier","src":"911:2:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"850:21:103"},"nodeType":"YulFunctionCall","src":"850:64:103"},"nodeType":"YulExpressionStatement","src":"850:64:103"},{"nodeType":"YulAssignment","src":"923:16:103","value":{"name":"array_1","nodeType":"YulIdentifier","src":"932:7:103"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"923:5:103"}]}]},"name":"abi_decode_bytes_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"538:6:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"546:3:103","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"554:5:103","type":""}],"src":"501:444:103"},{"body":{"nodeType":"YulBlock","src":"1013:99:103","statements":[{"nodeType":"YulAssignment","src":"1023:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1045:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1032:12:103"},"nodeType":"YulFunctionCall","src":"1032:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1023:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1100:5:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1061:38:103"},"nodeType":"YulFunctionCall","src":"1061:45:103"},"nodeType":"YulExpressionStatement","src":"1061:45:103"}]},"name":"abi_decode_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"992:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1003:5:103","type":""}],"src":"950:162:103"},{"body":{"nodeType":"YulBlock","src":"1191:92:103","statements":[{"nodeType":"YulAssignment","src":"1201:22:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1216:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1210:5:103"},"nodeType":"YulFunctionCall","src":"1210:13:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1201:5:103"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1271:5:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1232:38:103"},"nodeType":"YulFunctionCall","src":"1232:45:103"},"nodeType":"YulExpressionStatement","src":"1232:45:103"}]},"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1170:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1181:5:103","type":""}],"src":"1117:166:103"},{"body":{"nodeType":"YulBlock","src":"1356:703:103","statements":[{"body":{"nodeType":"YulBlock","src":"1400:24:103","statements":[{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1409:5:103"},{"name":"value","nodeType":"YulIdentifier","src":"1416:5:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1402:6:103"},"nodeType":"YulFunctionCall","src":"1402:20:103"},"nodeType":"YulExpressionStatement","src":"1402:20:103"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nodeType":"YulIdentifier","src":"1377:3:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1382:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1373:3:103"},"nodeType":"YulFunctionCall","src":"1373:19:103"},{"kind":"number","nodeType":"YulLiteral","src":"1394:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1369:3:103"},"nodeType":"YulFunctionCall","src":"1369:30:103"},"nodeType":"YulIf","src":"1366:2:103"},{"nodeType":"YulAssignment","src":"1433:30:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1458:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1442:15:103"},"nodeType":"YulFunctionCall","src":"1442:21:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1433:5:103"}]},{"nodeType":"YulVariableDeclaration","src":"1472:38:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1500:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1487:12:103"},"nodeType":"YulFunctionCall","src":"1487:23:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"1476:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"1558:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"1519:38:103"},"nodeType":"YulFunctionCall","src":"1519:47:103"},"nodeType":"YulExpressionStatement","src":"1519:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1582:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"1589:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1575:6:103"},"nodeType":"YulFunctionCall","src":"1575:22:103"},"nodeType":"YulExpressionStatement","src":"1575:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1617:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1624:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1613:3:103"},"nodeType":"YulFunctionCall","src":"1613:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1646:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1657:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1642:3:103"},"nodeType":"YulFunctionCall","src":"1642:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1629:12:103"},"nodeType":"YulFunctionCall","src":"1629:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1606:6:103"},"nodeType":"YulFunctionCall","src":"1606:56:103"},"nodeType":"YulExpressionStatement","src":"1606:56:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1682:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1689:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1678:3:103"},"nodeType":"YulFunctionCall","src":"1678:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1711:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1722:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1707:3:103"},"nodeType":"YulFunctionCall","src":"1707:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1694:12:103"},"nodeType":"YulFunctionCall","src":"1694:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1671:6:103"},"nodeType":"YulFunctionCall","src":"1671:56:103"},"nodeType":"YulExpressionStatement","src":"1671:56:103"},{"nodeType":"YulVariableDeclaration","src":"1736:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1767:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1778:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1763:3:103"},"nodeType":"YulFunctionCall","src":"1763:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1750:12:103"},"nodeType":"YulFunctionCall","src":"1750:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1740:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1825:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1834:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1837:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1827:6:103"},"nodeType":"YulFunctionCall","src":"1827:12:103"},"nodeType":"YulExpressionStatement","src":"1827:12:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1797:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1805:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1794:2:103"},"nodeType":"YulFunctionCall","src":"1794:30:103"},"nodeType":"YulIf","src":"1791:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1861:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1868:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1857:3:103"},"nodeType":"YulFunctionCall","src":"1857:14:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1894:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1905:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1890:3:103"},"nodeType":"YulFunctionCall","src":"1890:22:103"},{"name":"end","nodeType":"YulIdentifier","src":"1914:3:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"1873:16:103"},"nodeType":"YulFunctionCall","src":"1873:45:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1850:6:103"},"nodeType":"YulFunctionCall","src":"1850:69:103"},"nodeType":"YulExpressionStatement","src":"1850:69:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1939:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"1946:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1935:3:103"},"nodeType":"YulFunctionCall","src":"1935:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1969:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1980:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1965:3:103"},"nodeType":"YulFunctionCall","src":"1965:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1952:12:103"},"nodeType":"YulFunctionCall","src":"1952:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1928:6:103"},"nodeType":"YulFunctionCall","src":"1928:58:103"},"nodeType":"YulExpressionStatement","src":"1928:58:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2006:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"2013:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:103"},"nodeType":"YulFunctionCall","src":"2002:15:103"},{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2036:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2047:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2032:3:103"},"nodeType":"YulFunctionCall","src":"2032:19:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2019:12:103"},"nodeType":"YulFunctionCall","src":"2019:33:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1995:6:103"},"nodeType":"YulFunctionCall","src":"1995:58:103"},"nodeType":"YulExpressionStatement","src":"1995:58:103"}]},"name":"abi_decode_struct_Application","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1327:9:103","type":""},{"name":"end","nodeType":"YulTypedName","src":"1338:3:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1346:5:103","type":""}],"src":"1288:771:103"},{"body":{"nodeType":"YulBlock","src":"2134:187:103","statements":[{"body":{"nodeType":"YulBlock","src":"2180:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2189:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2197:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2182:6:103"},"nodeType":"YulFunctionCall","src":"2182:22:103"},"nodeType":"YulExpressionStatement","src":"2182:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2155:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2164:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2151:3:103"},"nodeType":"YulFunctionCall","src":"2151:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2176:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2147:3:103"},"nodeType":"YulFunctionCall","src":"2147:32:103"},"nodeType":"YulIf","src":"2144:2:103"},{"nodeType":"YulVariableDeclaration","src":"2215:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2241:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2228:12:103"},"nodeType":"YulFunctionCall","src":"2228:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2219:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2285:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2260:24:103"},"nodeType":"YulFunctionCall","src":"2260:31:103"},"nodeType":"YulExpressionStatement","src":"2260:31:103"},{"nodeType":"YulAssignment","src":"2300:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2310:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2300:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2100:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2111:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2123:6:103","type":""}],"src":"2064:257:103"},{"body":{"nodeType":"YulBlock","src":"2407:180:103","statements":[{"body":{"nodeType":"YulBlock","src":"2453:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2462:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2470:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2455:6:103"},"nodeType":"YulFunctionCall","src":"2455:22:103"},"nodeType":"YulExpressionStatement","src":"2455:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2428:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2437:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2424:3:103"},"nodeType":"YulFunctionCall","src":"2424:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2449:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2420:3:103"},"nodeType":"YulFunctionCall","src":"2420:32:103"},"nodeType":"YulIf","src":"2417:2:103"},{"nodeType":"YulVariableDeclaration","src":"2488:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2507:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2501:5:103"},"nodeType":"YulFunctionCall","src":"2501:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2492:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2551:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2526:24:103"},"nodeType":"YulFunctionCall","src":"2526:31:103"},"nodeType":"YulExpressionStatement","src":"2526:31:103"},{"nodeType":"YulAssignment","src":"2566:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2576:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2566:6:103"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2373:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2384:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2396:6:103","type":""}],"src":"2326:261:103"},{"body":{"nodeType":"YulBlock","src":"2662:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"2708:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2717:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2725:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2710:6:103"},"nodeType":"YulFunctionCall","src":"2710:22:103"},"nodeType":"YulExpressionStatement","src":"2710:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2683:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2692:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2679:3:103"},"nodeType":"YulFunctionCall","src":"2679:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2704:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2675:3:103"},"nodeType":"YulFunctionCall","src":"2675:32:103"},"nodeType":"YulIf","src":"2672:2:103"},{"nodeType":"YulAssignment","src":"2743:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2766:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2753:12:103"},"nodeType":"YulFunctionCall","src":"2753:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2743:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2628:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2639:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2651:6:103","type":""}],"src":"2592:190:103"},{"body":{"nodeType":"YulBlock","src":"2874:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"2920:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2929:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2937:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2922:6:103"},"nodeType":"YulFunctionCall","src":"2922:22:103"},"nodeType":"YulExpressionStatement","src":"2922:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2895:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2904:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2891:3:103"},"nodeType":"YulFunctionCall","src":"2891:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2916:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2887:3:103"},"nodeType":"YulFunctionCall","src":"2887:32:103"},"nodeType":"YulIf","src":"2884:2:103"},{"nodeType":"YulAssignment","src":"2955:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2978:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2965:12:103"},"nodeType":"YulFunctionCall","src":"2965:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2955:6:103"}]},{"nodeType":"YulAssignment","src":"2997:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3024:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3035:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3020:3:103"},"nodeType":"YulFunctionCall","src":"3020:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3007:12:103"},"nodeType":"YulFunctionCall","src":"3007:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2997:6:103"}]}]},"name":"abi_decode_tuple_t_bytes32t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2832:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2843:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2855:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2863:6:103","type":""}],"src":"2787:258:103"},{"body":{"nodeType":"YulBlock","src":"3146:312:103","statements":[{"body":{"nodeType":"YulBlock","src":"3192:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3201:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3209:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3194:6:103"},"nodeType":"YulFunctionCall","src":"3194:22:103"},"nodeType":"YulExpressionStatement","src":"3194:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3167:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3176:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3163:3:103"},"nodeType":"YulFunctionCall","src":"3163:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3188:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3159:3:103"},"nodeType":"YulFunctionCall","src":"3159:32:103"},"nodeType":"YulIf","src":"3156:2:103"},{"nodeType":"YulVariableDeclaration","src":"3227:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3254:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3241:12:103"},"nodeType":"YulFunctionCall","src":"3241:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3231:6:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3307:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3316:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3324:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3309:6:103"},"nodeType":"YulFunctionCall","src":"3309:22:103"},"nodeType":"YulExpressionStatement","src":"3309:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3279:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3287:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3276:2:103"},"nodeType":"YulFunctionCall","src":"3276:30:103"},"nodeType":"YulIf","src":"3273:2:103"},{"nodeType":"YulAssignment","src":"3342:59:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3373:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"3384:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3369:3:103"},"nodeType":"YulFunctionCall","src":"3369:22:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3393:7:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3352:16:103"},"nodeType":"YulFunctionCall","src":"3352:49:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3342:6:103"}]},{"nodeType":"YulAssignment","src":"3410:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3448:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3433:3:103"},"nodeType":"YulFunctionCall","src":"3433:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3420:12:103"},"nodeType":"YulFunctionCall","src":"3420:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3410:6:103"}]}]},"name":"abi_decode_tuple_t_bytes_memory_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3104:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3115:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3127:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3135:6:103","type":""}],"src":"3050:408:103"},{"body":{"nodeType":"YulBlock","src":"3563:199:103","statements":[{"body":{"nodeType":"YulBlock","src":"3609:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3618:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3626:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3611:6:103"},"nodeType":"YulFunctionCall","src":"3611:22:103"},"nodeType":"YulExpressionStatement","src":"3611:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3584:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3593:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3580:3:103"},"nodeType":"YulFunctionCall","src":"3580:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3605:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:32:103"},"nodeType":"YulIf","src":"3573:2:103"},{"nodeType":"YulVariableDeclaration","src":"3644:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3663:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3657:5:103"},"nodeType":"YulFunctionCall","src":"3657:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3648:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3706:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3715:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3723:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3708:6:103"},"nodeType":"YulFunctionCall","src":"3708:22:103"},"nodeType":"YulExpressionStatement","src":"3708:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3695:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3702:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3692:2:103"},"nodeType":"YulFunctionCall","src":"3692:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3685:6:103"},"nodeType":"YulFunctionCall","src":"3685:20:103"},"nodeType":"YulIf","src":"3682:2:103"},{"nodeType":"YulAssignment","src":"3741:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3751:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3741:6:103"}]}]},"name":"abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3529:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3540:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3552:6:103","type":""}],"src":"3463:299:103"},{"body":{"nodeType":"YulBlock","src":"3877:895:103","statements":[{"body":{"nodeType":"YulBlock","src":"3923:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3932:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3940:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3925:6:103"},"nodeType":"YulFunctionCall","src":"3925:22:103"},"nodeType":"YulExpressionStatement","src":"3925:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3898:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3907:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3894:3:103"},"nodeType":"YulFunctionCall","src":"3894:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3919:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3890:3:103"},"nodeType":"YulFunctionCall","src":"3890:32:103"},"nodeType":"YulIf","src":"3887:2:103"},{"nodeType":"YulVariableDeclaration","src":"3958:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3978:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3972:5:103"},"nodeType":"YulFunctionCall","src":"3972:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3962:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3997:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"4007:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4001:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4052:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4061:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4069:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4054:6:103"},"nodeType":"YulFunctionCall","src":"4054:22:103"},"nodeType":"YulExpressionStatement","src":"4054:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4040:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4048:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4037:2:103"},"nodeType":"YulFunctionCall","src":"4037:14:103"},"nodeType":"YulIf","src":"4034:2:103"},{"nodeType":"YulVariableDeclaration","src":"4087:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4101:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"4112:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4097:3:103"},"nodeType":"YulFunctionCall","src":"4097:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4091:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4159:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4168:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4176:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4161:6:103"},"nodeType":"YulFunctionCall","src":"4161:22:103"},"nodeType":"YulExpressionStatement","src":"4161:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4139:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"4148:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4135:3:103"},"nodeType":"YulFunctionCall","src":"4135:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"4153:4:103","type":"","value":"0xc0"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4131:3:103"},"nodeType":"YulFunctionCall","src":"4131:27:103"},"nodeType":"YulIf","src":"4128:2:103"},{"nodeType":"YulVariableDeclaration","src":"4194:34:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4223:4:103","type":"","value":"0xc0"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"4207:15:103"},"nodeType":"YulFunctionCall","src":"4207:21:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4198:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4237:24:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4258:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4252:5:103"},"nodeType":"YulFunctionCall","src":"4252:9:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"4241:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"4309:7:103"}],"functionName":{"name":"validator_revert_enum_ApplicationState","nodeType":"YulIdentifier","src":"4270:38:103"},"nodeType":"YulFunctionCall","src":"4270:47:103"},"nodeType":"YulExpressionStatement","src":"4270:47:103"},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4333:5:103"},{"name":"value_1","nodeType":"YulIdentifier","src":"4340:7:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4326:6:103"},"nodeType":"YulFunctionCall","src":"4326:22:103"},"nodeType":"YulExpressionStatement","src":"4326:22:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4368:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4375:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4364:3:103"},"nodeType":"YulFunctionCall","src":"4364:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4390:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4394:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4386:3:103"},"nodeType":"YulFunctionCall","src":"4386:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4380:5:103"},"nodeType":"YulFunctionCall","src":"4380:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4357:6:103"},"nodeType":"YulFunctionCall","src":"4357:42:103"},"nodeType":"YulExpressionStatement","src":"4357:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4419:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4426:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4415:3:103"},"nodeType":"YulFunctionCall","src":"4415:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4441:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4445:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4437:3:103"},"nodeType":"YulFunctionCall","src":"4437:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4431:5:103"},"nodeType":"YulFunctionCall","src":"4431:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4408:6:103"},"nodeType":"YulFunctionCall","src":"4408:42:103"},"nodeType":"YulExpressionStatement","src":"4408:42:103"},{"nodeType":"YulVariableDeclaration","src":"4459:34:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4485:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4489:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4481:3:103"},"nodeType":"YulFunctionCall","src":"4481:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4475:5:103"},"nodeType":"YulFunctionCall","src":"4475:18:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4463:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"4522:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4531:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4539:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4524:6:103"},"nodeType":"YulFunctionCall","src":"4524:22:103"},"nodeType":"YulExpressionStatement","src":"4524:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4508:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"4518:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4505:2:103"},"nodeType":"YulFunctionCall","src":"4505:16:103"},"nodeType":"YulIf","src":"4502:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4568:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4575:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4564:3:103"},"nodeType":"YulFunctionCall","src":"4564:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4612:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4616:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4608:3:103"},"nodeType":"YulFunctionCall","src":"4608:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4627:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"4580:27:103"},"nodeType":"YulFunctionCall","src":"4580:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4557:6:103"},"nodeType":"YulFunctionCall","src":"4557:79:103"},"nodeType":"YulExpressionStatement","src":"4557:79:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4656:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4663:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4652:3:103"},"nodeType":"YulFunctionCall","src":"4652:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4679:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4683:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4675:3:103"},"nodeType":"YulFunctionCall","src":"4675:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4669:5:103"},"nodeType":"YulFunctionCall","src":"4669:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4645:6:103"},"nodeType":"YulFunctionCall","src":"4645:44:103"},"nodeType":"YulExpressionStatement","src":"4645:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4709:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"4716:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4705:3:103"},"nodeType":"YulFunctionCall","src":"4705:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4732:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"4736:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4728:3:103"},"nodeType":"YulFunctionCall","src":"4728:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4722:5:103"},"nodeType":"YulFunctionCall","src":"4722:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4698:6:103"},"nodeType":"YulFunctionCall","src":"4698:44:103"},"nodeType":"YulExpressionStatement","src":"4698:44:103"},{"nodeType":"YulAssignment","src":"4751:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"4761:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4751:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3843:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3854:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3866:6:103","type":""}],"src":"3767:1005:103"},{"body":{"nodeType":"YulBlock","src":"4882:1119:103","statements":[{"body":{"nodeType":"YulBlock","src":"4928:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4937:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"4945:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4930:6:103"},"nodeType":"YulFunctionCall","src":"4930:22:103"},"nodeType":"YulExpressionStatement","src":"4930:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4903:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"4912:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4899:3:103"},"nodeType":"YulFunctionCall","src":"4899:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"4924:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4895:3:103"},"nodeType":"YulFunctionCall","src":"4895:32:103"},"nodeType":"YulIf","src":"4892:2:103"},{"nodeType":"YulVariableDeclaration","src":"4963:30:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4983:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4977:5:103"},"nodeType":"YulFunctionCall","src":"4977:16:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4967:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5002:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5012:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5006:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5057:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5066:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5074:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5059:6:103"},"nodeType":"YulFunctionCall","src":"5059:22:103"},"nodeType":"YulExpressionStatement","src":"5059:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5045:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5053:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5042:2:103"},"nodeType":"YulFunctionCall","src":"5042:14:103"},"nodeType":"YulIf","src":"5039:2:103"},{"nodeType":"YulVariableDeclaration","src":"5092:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5106:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"5117:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5102:3:103"},"nodeType":"YulFunctionCall","src":"5102:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5096:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5133:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5143:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5137:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5187:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5196:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5204:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5189:6:103"},"nodeType":"YulFunctionCall","src":"5189:22:103"},"nodeType":"YulExpressionStatement","src":"5189:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5169:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"5178:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5165:3:103"},"nodeType":"YulFunctionCall","src":"5165:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"5183:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5161:3:103"},"nodeType":"YulFunctionCall","src":"5161:25:103"},"nodeType":"YulIf","src":"5158:2:103"},{"nodeType":"YulVariableDeclaration","src":"5222:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5251:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"5235:15:103"},"nodeType":"YulFunctionCall","src":"5235:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5226:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5270:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5283:2:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5277:5:103"},"nodeType":"YulFunctionCall","src":"5277:9:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5263:6:103"},"nodeType":"YulFunctionCall","src":"5263:24:103"},"nodeType":"YulExpressionStatement","src":"5263:24:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5307:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5314:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5303:3:103"},"nodeType":"YulFunctionCall","src":"5303:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5329:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5333:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5325:3:103"},"nodeType":"YulFunctionCall","src":"5325:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5319:5:103"},"nodeType":"YulFunctionCall","src":"5319:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5296:6:103"},"nodeType":"YulFunctionCall","src":"5296:42:103"},"nodeType":"YulExpressionStatement","src":"5296:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5358:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5365:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5354:3:103"},"nodeType":"YulFunctionCall","src":"5354:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5380:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5384:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5376:3:103"},"nodeType":"YulFunctionCall","src":"5376:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5370:5:103"},"nodeType":"YulFunctionCall","src":"5370:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5347:6:103"},"nodeType":"YulFunctionCall","src":"5347:42:103"},"nodeType":"YulExpressionStatement","src":"5347:42:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5409:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5416:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5405:3:103"},"nodeType":"YulFunctionCall","src":"5405:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5469:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5473:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5465:3:103"},"nodeType":"YulFunctionCall","src":"5465:11:103"}],"functionName":{"name":"abi_decode_enum_ApplicationState_fromMemory","nodeType":"YulIdentifier","src":"5421:43:103"},"nodeType":"YulFunctionCall","src":"5421:56:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5398:6:103"},"nodeType":"YulFunctionCall","src":"5398:80:103"},"nodeType":"YulExpressionStatement","src":"5398:80:103"},{"nodeType":"YulVariableDeclaration","src":"5487:35:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5513:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5517:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5509:3:103"},"nodeType":"YulFunctionCall","src":"5509:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5503:5:103"},"nodeType":"YulFunctionCall","src":"5503:19:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"5491:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5551:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5560:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5568:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5553:6:103"},"nodeType":"YulFunctionCall","src":"5553:22:103"},"nodeType":"YulExpressionStatement","src":"5553:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"5537:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5547:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5534:2:103"},"nodeType":"YulFunctionCall","src":"5534:16:103"},"nodeType":"YulIf","src":"5531:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5597:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5604:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5593:3:103"},"nodeType":"YulFunctionCall","src":"5593:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5642:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"5646:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5638:3:103"},"nodeType":"YulFunctionCall","src":"5638:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5657:7:103"}],"functionName":{"name":"abi_decode_bytes_fromMemory","nodeType":"YulIdentifier","src":"5610:27:103"},"nodeType":"YulFunctionCall","src":"5610:55:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5586:6:103"},"nodeType":"YulFunctionCall","src":"5586:80:103"},"nodeType":"YulExpressionStatement","src":"5586:80:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5686:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5693:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5682:3:103"},"nodeType":"YulFunctionCall","src":"5682:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5709:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5713:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5705:3:103"},"nodeType":"YulFunctionCall","src":"5705:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5699:5:103"},"nodeType":"YulFunctionCall","src":"5699:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5675:6:103"},"nodeType":"YulFunctionCall","src":"5675:44:103"},"nodeType":"YulExpressionStatement","src":"5675:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5739:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5746:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5735:3:103"},"nodeType":"YulFunctionCall","src":"5735:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5762:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5766:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5758:3:103"},"nodeType":"YulFunctionCall","src":"5758:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5752:5:103"},"nodeType":"YulFunctionCall","src":"5752:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5728:6:103"},"nodeType":"YulFunctionCall","src":"5728:44:103"},"nodeType":"YulExpressionStatement","src":"5728:44:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5792:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"5799:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5788:3:103"},"nodeType":"YulFunctionCall","src":"5788:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5815:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"5819:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5811:3:103"},"nodeType":"YulFunctionCall","src":"5811:12:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5805:5:103"},"nodeType":"YulFunctionCall","src":"5805:19:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5781:6:103"},"nodeType":"YulFunctionCall","src":"5781:44:103"},"nodeType":"YulExpressionStatement","src":"5781:44:103"},{"nodeType":"YulVariableDeclaration","src":"5834:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5844:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"5838:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5867:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"5874:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5863:3:103"},"nodeType":"YulFunctionCall","src":"5863:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5889:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"5893:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5885:3:103"},"nodeType":"YulFunctionCall","src":"5885:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5879:5:103"},"nodeType":"YulFunctionCall","src":"5879:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5856:6:103"},"nodeType":"YulFunctionCall","src":"5856:42:103"},"nodeType":"YulExpressionStatement","src":"5856:42:103"},{"nodeType":"YulVariableDeclaration","src":"5907:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"5917:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"5911:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5940:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"5947:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5936:3:103"},"nodeType":"YulFunctionCall","src":"5936:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5962:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"5966:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5958:3:103"},"nodeType":"YulFunctionCall","src":"5958:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5952:5:103"},"nodeType":"YulFunctionCall","src":"5952:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5929:6:103"},"nodeType":"YulFunctionCall","src":"5929:42:103"},"nodeType":"YulExpressionStatement","src":"5929:42:103"},{"nodeType":"YulAssignment","src":"5980:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"5990:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5980:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4848:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4859:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4871:6:103","type":""}],"src":"4777:1224:103"},{"body":{"nodeType":"YulBlock","src":"6146:1362:103","statements":[{"body":{"nodeType":"YulBlock","src":"6192:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6201:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6209:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6194:6:103"},"nodeType":"YulFunctionCall","src":"6194:22:103"},"nodeType":"YulExpressionStatement","src":"6194:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6167:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"6176:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6163:3:103"},"nodeType":"YulFunctionCall","src":"6163:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"6188:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6159:3:103"},"nodeType":"YulFunctionCall","src":"6159:32:103"},"nodeType":"YulIf","src":"6156:2:103"},{"nodeType":"YulVariableDeclaration","src":"6227:37:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6254:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6241:12:103"},"nodeType":"YulFunctionCall","src":"6241:23:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6231:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6273:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6283:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6277:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6328:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6337:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6345:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6330:6:103"},"nodeType":"YulFunctionCall","src":"6330:22:103"},"nodeType":"YulExpressionStatement","src":"6330:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6316:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6324:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6313:2:103"},"nodeType":"YulFunctionCall","src":"6313:14:103"},"nodeType":"YulIf","src":"6310:2:103"},{"nodeType":"YulVariableDeclaration","src":"6363:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6377:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"6388:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6373:3:103"},"nodeType":"YulFunctionCall","src":"6373:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6367:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6404:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"6414:6:103","type":"","value":"0x0140"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"6408:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6458:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6467:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6475:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6460:6:103"},"nodeType":"YulFunctionCall","src":"6460:22:103"},"nodeType":"YulExpressionStatement","src":"6460:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6440:7:103"},{"name":"_2","nodeType":"YulIdentifier","src":"6449:2:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6436:3:103"},"nodeType":"YulFunctionCall","src":"6436:16:103"},{"name":"_3","nodeType":"YulIdentifier","src":"6454:2:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6432:3:103"},"nodeType":"YulFunctionCall","src":"6432:25:103"},"nodeType":"YulIf","src":"6429:2:103"},{"nodeType":"YulVariableDeclaration","src":"6493:32:103","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"6522:2:103"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6506:15:103"},"nodeType":"YulFunctionCall","src":"6506:19:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6497:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6541:5:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6561:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6548:12:103"},"nodeType":"YulFunctionCall","src":"6548:16:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6534:6:103"},"nodeType":"YulFunctionCall","src":"6534:31:103"},"nodeType":"YulExpressionStatement","src":"6534:31:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6585:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6592:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6581:3:103"},"nodeType":"YulFunctionCall","src":"6581:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6614:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6618:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6610:3:103"},"nodeType":"YulFunctionCall","src":"6610:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6597:12:103"},"nodeType":"YulFunctionCall","src":"6597:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6574:6:103"},"nodeType":"YulFunctionCall","src":"6574:49:103"},"nodeType":"YulExpressionStatement","src":"6574:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6643:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6650:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6639:3:103"},"nodeType":"YulFunctionCall","src":"6639:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6672:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6676:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6668:3:103"},"nodeType":"YulFunctionCall","src":"6668:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6655:12:103"},"nodeType":"YulFunctionCall","src":"6655:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6632:6:103"},"nodeType":"YulFunctionCall","src":"6632:49:103"},"nodeType":"YulExpressionStatement","src":"6632:49:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6701:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6708:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6697:3:103"},"nodeType":"YulFunctionCall","src":"6697:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6750:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6754:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6746:3:103"},"nodeType":"YulFunctionCall","src":"6746:11:103"}],"functionName":{"name":"abi_decode_enum_ApplicationState","nodeType":"YulIdentifier","src":"6713:32:103"},"nodeType":"YulFunctionCall","src":"6713:45:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6690:6:103"},"nodeType":"YulFunctionCall","src":"6690:69:103"},"nodeType":"YulExpressionStatement","src":"6690:69:103"},{"nodeType":"YulVariableDeclaration","src":"6768:42:103","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6801:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6805:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6797:3:103"},"nodeType":"YulFunctionCall","src":"6797:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6784:12:103"},"nodeType":"YulFunctionCall","src":"6784:26:103"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"6772:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"6839:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6848:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"6856:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6841:6:103"},"nodeType":"YulFunctionCall","src":"6841:22:103"},"nodeType":"YulExpressionStatement","src":"6841:22:103"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"6825:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"6835:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6822:2:103"},"nodeType":"YulFunctionCall","src":"6822:16:103"},"nodeType":"YulIf","src":"6819:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6885:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6892:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6881:3:103"},"nodeType":"YulFunctionCall","src":"6881:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6919:2:103"},{"name":"offset_1","nodeType":"YulIdentifier","src":"6923:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6915:3:103"},"nodeType":"YulFunctionCall","src":"6915:17:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6934:7:103"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6898:16:103"},"nodeType":"YulFunctionCall","src":"6898:44:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6874:6:103"},"nodeType":"YulFunctionCall","src":"6874:69:103"},"nodeType":"YulExpressionStatement","src":"6874:69:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6963:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"6970:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6959:3:103"},"nodeType":"YulFunctionCall","src":"6959:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6993:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"6997:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6989:3:103"},"nodeType":"YulFunctionCall","src":"6989:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6976:12:103"},"nodeType":"YulFunctionCall","src":"6976:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6952:6:103"},"nodeType":"YulFunctionCall","src":"6952:51:103"},"nodeType":"YulExpressionStatement","src":"6952:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7023:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7030:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7019:3:103"},"nodeType":"YulFunctionCall","src":"7019:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7053:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7057:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7049:3:103"},"nodeType":"YulFunctionCall","src":"7049:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7036:12:103"},"nodeType":"YulFunctionCall","src":"7036:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7012:6:103"},"nodeType":"YulFunctionCall","src":"7012:51:103"},"nodeType":"YulExpressionStatement","src":"7012:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7083:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"7090:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7079:3:103"},"nodeType":"YulFunctionCall","src":"7079:15:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7113:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"7117:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7109:3:103"},"nodeType":"YulFunctionCall","src":"7109:12:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7096:12:103"},"nodeType":"YulFunctionCall","src":"7096:26:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7072:6:103"},"nodeType":"YulFunctionCall","src":"7072:51:103"},"nodeType":"YulExpressionStatement","src":"7072:51:103"},{"nodeType":"YulVariableDeclaration","src":"7132:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7142:3:103","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"7136:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7165:5:103"},{"name":"_4","nodeType":"YulIdentifier","src":"7172:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7161:3:103"},"nodeType":"YulFunctionCall","src":"7161:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7194:2:103"},{"name":"_4","nodeType":"YulIdentifier","src":"7198:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7190:3:103"},"nodeType":"YulFunctionCall","src":"7190:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7177:12:103"},"nodeType":"YulFunctionCall","src":"7177:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7154:6:103"},"nodeType":"YulFunctionCall","src":"7154:49:103"},"nodeType":"YulExpressionStatement","src":"7154:49:103"},{"nodeType":"YulVariableDeclaration","src":"7212:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"7222:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"7216:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7245:5:103"},{"name":"_5","nodeType":"YulIdentifier","src":"7252:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7241:3:103"},"nodeType":"YulFunctionCall","src":"7241:14:103"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"7274:2:103"},{"name":"_5","nodeType":"YulIdentifier","src":"7278:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7270:3:103"},"nodeType":"YulFunctionCall","src":"7270:11:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7257:12:103"},"nodeType":"YulFunctionCall","src":"7257:25:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7234:6:103"},"nodeType":"YulFunctionCall","src":"7234:49:103"},"nodeType":"YulExpressionStatement","src":"7234:49:103"},{"nodeType":"YulAssignment","src":"7292:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"7302:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7292:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"7316:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7349:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7360:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7345:3:103"},"nodeType":"YulFunctionCall","src":"7345:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7332:12:103"},"nodeType":"YulFunctionCall","src":"7332:32:103"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"7320:8:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"7393:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7402:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"7410:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7395:6:103"},"nodeType":"YulFunctionCall","src":"7395:22:103"},"nodeType":"YulExpressionStatement","src":"7395:22:103"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"7379:8:103"},{"name":"_1","nodeType":"YulIdentifier","src":"7389:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7376:2:103"},"nodeType":"YulFunctionCall","src":"7376:16:103"},"nodeType":"YulIf","src":"7373:2:103"},{"nodeType":"YulAssignment","src":"7428:74:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7472:9:103"},{"name":"offset_2","nodeType":"YulIdentifier","src":"7483:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7468:3:103"},"nodeType":"YulFunctionCall","src":"7468:24:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7494:7:103"}],"functionName":{"name":"abi_decode_struct_Application","nodeType":"YulIdentifier","src":"7438:29:103"},"nodeType":"YulFunctionCall","src":"7438:64:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"7428:6:103"}]}]},"name":"abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptrt_struct$_Application_$5262_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6104:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6115:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6127:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6135:6:103","type":""}],"src":"6006:1502:103"},{"body":{"nodeType":"YulBlock","src":"7583:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"7629:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7638:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7646:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7631:6:103"},"nodeType":"YulFunctionCall","src":"7631:22:103"},"nodeType":"YulExpressionStatement","src":"7631:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7604:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7613:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7600:3:103"},"nodeType":"YulFunctionCall","src":"7600:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7625:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7596:3:103"},"nodeType":"YulFunctionCall","src":"7596:32:103"},"nodeType":"YulIf","src":"7593:2:103"},{"nodeType":"YulAssignment","src":"7664:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7687:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7674:12:103"},"nodeType":"YulFunctionCall","src":"7674:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7664:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7549:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7560:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7572:6:103","type":""}],"src":"7513:190:103"},{"body":{"nodeType":"YulBlock","src":"7789:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"7835:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7844:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"7852:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7837:6:103"},"nodeType":"YulFunctionCall","src":"7837:22:103"},"nodeType":"YulExpressionStatement","src":"7837:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7810:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"7819:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7806:3:103"},"nodeType":"YulFunctionCall","src":"7806:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"7831:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7802:3:103"},"nodeType":"YulFunctionCall","src":"7802:32:103"},"nodeType":"YulIf","src":"7799:2:103"},{"nodeType":"YulAssignment","src":"7870:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7886:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7880:5:103"},"nodeType":"YulFunctionCall","src":"7880:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7870:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7755:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7766:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7778:6:103","type":""}],"src":"7708:194:103"},{"body":{"nodeType":"YulBlock","src":"7994:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"8040:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8049:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"8057:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8042:6:103"},"nodeType":"YulFunctionCall","src":"8042:22:103"},"nodeType":"YulExpressionStatement","src":"8042:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8015:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"8024:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8011:3:103"},"nodeType":"YulFunctionCall","src":"8011:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"8036:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8007:3:103"},"nodeType":"YulFunctionCall","src":"8007:32:103"},"nodeType":"YulIf","src":"8004:2:103"},{"nodeType":"YulAssignment","src":"8075:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8098:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8085:12:103"},"nodeType":"YulFunctionCall","src":"8085:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8075:6:103"}]},{"nodeType":"YulAssignment","src":"8117:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8144:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8155:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8140:3:103"},"nodeType":"YulFunctionCall","src":"8140:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8127:12:103"},"nodeType":"YulFunctionCall","src":"8127:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"8117:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7952:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7963:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7975:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7983:6:103","type":""}],"src":"7907:258:103"},{"body":{"nodeType":"YulBlock","src":"8219:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"8229:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8249:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8243:5:103"},"nodeType":"YulFunctionCall","src":"8243:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8233:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8271:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"8276:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8264:6:103"},"nodeType":"YulFunctionCall","src":"8264:19:103"},"nodeType":"YulExpressionStatement","src":"8264:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8318:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8325:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8314:3:103"},"nodeType":"YulFunctionCall","src":"8314:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8336:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"8341:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8332:3:103"},"nodeType":"YulFunctionCall","src":"8332:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"8348:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"8292:21:103"},"nodeType":"YulFunctionCall","src":"8292:63:103"},"nodeType":"YulExpressionStatement","src":"8292:63:103"},{"nodeType":"YulAssignment","src":"8364:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8379:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"8392:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"8400:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8388:3:103"},"nodeType":"YulFunctionCall","src":"8388:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8409:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"8405:3:103"},"nodeType":"YulFunctionCall","src":"8405:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8384:3:103"},"nodeType":"YulFunctionCall","src":"8384:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8375:3:103"},"nodeType":"YulFunctionCall","src":"8375:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"8416:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8371:3:103"},"nodeType":"YulFunctionCall","src":"8371:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8364:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8196:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8203:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8211:3:103","type":""}],"src":"8170:257:103"},{"body":{"nodeType":"YulBlock","src":"8485:89:103","statements":[{"body":{"nodeType":"YulBlock","src":"8519:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"8521:16:103"},"nodeType":"YulFunctionCall","src":"8521:18:103"},"nodeType":"YulExpressionStatement","src":"8521:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8508:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"8515:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"8505:2:103"},"nodeType":"YulFunctionCall","src":"8505:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8498:6:103"},"nodeType":"YulFunctionCall","src":"8498:20:103"},"nodeType":"YulIf","src":"8495:2:103"},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8557:3:103"},{"name":"value","nodeType":"YulIdentifier","src":"8562:5:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8550:6:103"},"nodeType":"YulFunctionCall","src":"8550:18:103"},"nodeType":"YulExpressionStatement","src":"8550:18:103"}]},"name":"abi_encode_enum_BundleState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"8469:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"8476:3:103","type":""}],"src":"8432:142:103"},{"body":{"nodeType":"YulBlock","src":"8680:102:103","statements":[{"nodeType":"YulAssignment","src":"8690:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8702:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8713:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8698:3:103"},"nodeType":"YulFunctionCall","src":"8698:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8690:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8732:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8747:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8763:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"8768:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8759:3:103"},"nodeType":"YulFunctionCall","src":"8759:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"8772:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8755:3:103"},"nodeType":"YulFunctionCall","src":"8755:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"8743:3:103"},"nodeType":"YulFunctionCall","src":"8743:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8725:6:103"},"nodeType":"YulFunctionCall","src":"8725:51:103"},"nodeType":"YulExpressionStatement","src":"8725:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8649:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8660:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8671:4:103","type":""}],"src":"8579:203:103"},{"body":{"nodeType":"YulBlock","src":"8972:262:103","statements":[{"nodeType":"YulAssignment","src":"8982:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8994:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9005:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8990:3:103"},"nodeType":"YulFunctionCall","src":"8990:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8982:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"9018:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9036:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9041:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9032:3:103"},"nodeType":"YulFunctionCall","src":"9032:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9045:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9028:3:103"},"nodeType":"YulFunctionCall","src":"9028:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9022:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9063:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9078:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9086:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9074:3:103"},"nodeType":"YulFunctionCall","src":"9074:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9056:6:103"},"nodeType":"YulFunctionCall","src":"9056:34:103"},"nodeType":"YulExpressionStatement","src":"9056:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9110:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9121:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9106:3:103"},"nodeType":"YulFunctionCall","src":"9106:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9130:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"9138:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9126:3:103"},"nodeType":"YulFunctionCall","src":"9126:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9099:6:103"},"nodeType":"YulFunctionCall","src":"9099:43:103"},"nodeType":"YulExpressionStatement","src":"9099:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9162:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9173:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9158:3:103"},"nodeType":"YulFunctionCall","src":"9158:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9178:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9151:6:103"},"nodeType":"YulFunctionCall","src":"9151:34:103"},"nodeType":"YulExpressionStatement","src":"9151:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9205:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9216:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9201:3:103"},"nodeType":"YulFunctionCall","src":"9201:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"9221:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9194:6:103"},"nodeType":"YulFunctionCall","src":"9194:34:103"},"nodeType":"YulExpressionStatement","src":"9194:34:103"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8917:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8928:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8936:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8944:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8952:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8963:4:103","type":""}],"src":"8787:447:103"},{"body":{"nodeType":"YulBlock","src":"9414:210:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9431:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9446:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9462:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9467:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9458:3:103"},"nodeType":"YulFunctionCall","src":"9458:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"9471:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9454:3:103"},"nodeType":"YulFunctionCall","src":"9454:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9442:3:103"},"nodeType":"YulFunctionCall","src":"9442:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9424:6:103"},"nodeType":"YulFunctionCall","src":"9424:51:103"},"nodeType":"YulExpressionStatement","src":"9424:51:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9495:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9506:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9491:3:103"},"nodeType":"YulFunctionCall","src":"9491:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9511:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9484:6:103"},"nodeType":"YulFunctionCall","src":"9484:30:103"},"nodeType":"YulExpressionStatement","src":"9484:30:103"},{"nodeType":"YulAssignment","src":"9523:52:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9548:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9560:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9571:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9556:3:103"},"nodeType":"YulFunctionCall","src":"9556:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"9531:16:103"},"nodeType":"YulFunctionCall","src":"9531:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9523:4:103"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9595:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9606:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9591:3:103"},"nodeType":"YulFunctionCall","src":"9591:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"9611:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9584:6:103"},"nodeType":"YulFunctionCall","src":"9584:34:103"},"nodeType":"YulExpressionStatement","src":"9584:34:103"}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9367:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9378:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9386:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9394:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9405:4:103","type":""}],"src":"9239:385:103"},{"body":{"nodeType":"YulBlock","src":"9724:92:103","statements":[{"nodeType":"YulAssignment","src":"9734:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9757:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9742:3:103"},"nodeType":"YulFunctionCall","src":"9742:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9734:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9776:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9801:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9794:6:103"},"nodeType":"YulFunctionCall","src":"9794:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9787:6:103"},"nodeType":"YulFunctionCall","src":"9787:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9769:6:103"},"nodeType":"YulFunctionCall","src":"9769:41:103"},"nodeType":"YulExpressionStatement","src":"9769:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9693:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9704:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9715:4:103","type":""}],"src":"9629:187:103"},{"body":{"nodeType":"YulBlock","src":"9922:76:103","statements":[{"nodeType":"YulAssignment","src":"9932:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9944:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9955:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9940:3:103"},"nodeType":"YulFunctionCall","src":"9940:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9932:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9974:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"9985:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9967:6:103"},"nodeType":"YulFunctionCall","src":"9967:25:103"},"nodeType":"YulExpressionStatement","src":"9967:25:103"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9891:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9902:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9913:4:103","type":""}],"src":"9821:177:103"},{"body":{"nodeType":"YulBlock","src":"10132:119:103","statements":[{"nodeType":"YulAssignment","src":"10142:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10154:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10165:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10150:3:103"},"nodeType":"YulFunctionCall","src":"10150:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10142:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10184:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10195:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10177:6:103"},"nodeType":"YulFunctionCall","src":"10177:25:103"},"nodeType":"YulExpressionStatement","src":"10177:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10222:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10233:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10218:3:103"},"nodeType":"YulFunctionCall","src":"10218:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"10238:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10211:6:103"},"nodeType":"YulFunctionCall","src":"10211:34:103"},"nodeType":"YulExpressionStatement","src":"10211:34:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10093:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10104:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10112:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10123:4:103","type":""}],"src":"10003:248:103"},{"body":{"nodeType":"YulBlock","src":"10407:178:103","statements":[{"nodeType":"YulAssignment","src":"10417:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10429:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10440:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10425:3:103"},"nodeType":"YulFunctionCall","src":"10425:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10417:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10459:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"10470:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10452:6:103"},"nodeType":"YulFunctionCall","src":"10452:25:103"},"nodeType":"YulExpressionStatement","src":"10452:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10497:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10508:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10493:3:103"},"nodeType":"YulFunctionCall","src":"10493:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"10513:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10486:6:103"},"nodeType":"YulFunctionCall","src":"10486:34:103"},"nodeType":"YulExpressionStatement","src":"10486:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10540:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10551:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10536:3:103"},"nodeType":"YulFunctionCall","src":"10536:18:103"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"10570:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10563:6:103"},"nodeType":"YulFunctionCall","src":"10563:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10556:6:103"},"nodeType":"YulFunctionCall","src":"10556:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10529:6:103"},"nodeType":"YulFunctionCall","src":"10529:50:103"},"nodeType":"YulExpressionStatement","src":"10529:50:103"}]},"name":"abi_encode_tuple_t_bytes32_t_uint256_t_bool__to_t_bytes32_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10360:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10371:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10379:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10387:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10398:4:103","type":""}],"src":"10256:329:103"},{"body":{"nodeType":"YulBlock","src":"10709:102:103","statements":[{"nodeType":"YulAssignment","src":"10719:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10731:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10742:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10727:3:103"},"nodeType":"YulFunctionCall","src":"10727:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10719:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10761:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10776:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10792:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10797:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10788:3:103"},"nodeType":"YulFunctionCall","src":"10788:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"10801:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10784:3:103"},"nodeType":"YulFunctionCall","src":"10784:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10772:3:103"},"nodeType":"YulFunctionCall","src":"10772:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10754:6:103"},"nodeType":"YulFunctionCall","src":"10754:51:103"},"nodeType":"YulExpressionStatement","src":"10754:51:103"}]},"name":"abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10678:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10689:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10700:4:103","type":""}],"src":"10590:221:103"},{"body":{"nodeType":"YulBlock","src":"10934:132:103","statements":[{"nodeType":"YulAssignment","src":"10944:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10956:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10967:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10952:3:103"},"nodeType":"YulFunctionCall","src":"10952:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10944:4:103"}]},{"body":{"nodeType":"YulBlock","src":"11004:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"11006:16:103"},"nodeType":"YulFunctionCall","src":"11006:18:103"},"nodeType":"YulExpressionStatement","src":"11006:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10992:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"11000:1:103","type":"","value":"7"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10989:2:103"},"nodeType":"YulFunctionCall","src":"10989:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"10982:6:103"},"nodeType":"YulFunctionCall","src":"10982:21:103"},"nodeType":"YulIf","src":"10979:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11042:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11053:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11035:6:103"},"nodeType":"YulFunctionCall","src":"11035:25:103"},"nodeType":"YulExpressionStatement","src":"11035:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10903:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10914:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10925:4:103","type":""}],"src":"10816:250:103"},{"body":{"nodeType":"YulBlock","src":"11188:132:103","statements":[{"nodeType":"YulAssignment","src":"11198:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11210:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11221:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11206:3:103"},"nodeType":"YulFunctionCall","src":"11206:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11198:4:103"}]},{"body":{"nodeType":"YulBlock","src":"11258:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nodeType":"YulIdentifier","src":"11260:16:103"},"nodeType":"YulFunctionCall","src":"11260:18:103"},"nodeType":"YulExpressionStatement","src":"11260:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11246:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"11254:1:103","type":"","value":"3"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11243:2:103"},"nodeType":"YulFunctionCall","src":"11243:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11236:6:103"},"nodeType":"YulFunctionCall","src":"11236:21:103"},"nodeType":"YulIf","src":"11233:2:103"},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11296:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"11307:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11289:6:103"},"nodeType":"YulFunctionCall","src":"11289:25:103"},"nodeType":"YulExpressionStatement","src":"11289:25:103"}]},"name":"abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11157:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11168:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11179:4:103","type":""}],"src":"11071:249:103"},{"body":{"nodeType":"YulBlock","src":"11446:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11474:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11456:6:103"},"nodeType":"YulFunctionCall","src":"11456:21:103"},"nodeType":"YulExpressionStatement","src":"11456:21:103"},{"nodeType":"YulAssignment","src":"11486:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11511:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11523:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11534:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11519:3:103"},"nodeType":"YulFunctionCall","src":"11519:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11494:16:103"},"nodeType":"YulFunctionCall","src":"11494:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11486:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11415:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11426:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11437:4:103","type":""}],"src":"11325:219:103"},{"body":{"nodeType":"YulBlock","src":"11723:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11740:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11751:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11733:6:103"},"nodeType":"YulFunctionCall","src":"11733:21:103"},"nodeType":"YulExpressionStatement","src":"11733:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11774:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11785:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11770:3:103"},"nodeType":"YulFunctionCall","src":"11770:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11790:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11763:6:103"},"nodeType":"YulFunctionCall","src":"11763:30:103"},"nodeType":"YulExpressionStatement","src":"11763:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11813:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11824:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11809:3:103"},"nodeType":"YulFunctionCall","src":"11809:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11829:29:103","type":"","value":"ERROR:CMP-002:NOT_COMPONENT"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11802:6:103"},"nodeType":"YulFunctionCall","src":"11802:57:103"},"nodeType":"YulExpressionStatement","src":"11802:57:103"},{"nodeType":"YulAssignment","src":"11868:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11880:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11891:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11876:3:103"},"nodeType":"YulFunctionCall","src":"11876:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11868:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11700:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11714:4:103","type":""}],"src":"11549:351:103"},{"body":{"nodeType":"YulBlock","src":"12079:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12096:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12107:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12089:6:103"},"nodeType":"YulFunctionCall","src":"12089:21:103"},"nodeType":"YulExpressionStatement","src":"12089:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12130:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12141:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12126:3:103"},"nodeType":"YulFunctionCall","src":"12126:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12146:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12119:6:103"},"nodeType":"YulFunctionCall","src":"12119:30:103"},"nodeType":"YulExpressionStatement","src":"12119:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12180:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12165:3:103"},"nodeType":"YulFunctionCall","src":"12165:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12185:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12158:6:103"},"nodeType":"YulFunctionCall","src":"12158:62:103"},"nodeType":"YulExpressionStatement","src":"12158:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12240:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12251:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12236:3:103"},"nodeType":"YulFunctionCall","src":"12236:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12256:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12229:6:103"},"nodeType":"YulFunctionCall","src":"12229:36:103"},"nodeType":"YulExpressionStatement","src":"12229:36:103"},{"nodeType":"YulAssignment","src":"12274:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12286:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12297:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12282:3:103"},"nodeType":"YulFunctionCall","src":"12282:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12274:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12056:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12070:4:103","type":""}],"src":"11905:402:103"},{"body":{"nodeType":"YulBlock","src":"12486:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12503:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12514:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12496:6:103"},"nodeType":"YulFunctionCall","src":"12496:21:103"},"nodeType":"YulExpressionStatement","src":"12496:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12537:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12548:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12533:3:103"},"nodeType":"YulFunctionCall","src":"12533:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12553:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12526:6:103"},"nodeType":"YulFunctionCall","src":"12526:30:103"},"nodeType":"YulExpressionStatement","src":"12526:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12576:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12587:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12572:3:103"},"nodeType":"YulFunctionCall","src":"12572:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12592:34:103","type":"","value":"ERROR:RPL-006:BUNDLE_INDEX_TOO_L"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12565:6:103"},"nodeType":"YulFunctionCall","src":"12565:62:103"},"nodeType":"YulExpressionStatement","src":"12565:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12647:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12658:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12643:3:103"},"nodeType":"YulFunctionCall","src":"12643:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12663:6:103","type":"","value":"ARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12636:6:103"},"nodeType":"YulFunctionCall","src":"12636:34:103"},"nodeType":"YulExpressionStatement","src":"12636:34:103"},{"nodeType":"YulAssignment","src":"12679:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12691:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12702:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12687:3:103"},"nodeType":"YulFunctionCall","src":"12687:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12679:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12463:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12477:4:103","type":""}],"src":"12312:400:103"},{"body":{"nodeType":"YulBlock","src":"12891:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12908:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12919:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12901:6:103"},"nodeType":"YulFunctionCall","src":"12901:21:103"},"nodeType":"YulExpressionStatement","src":"12901:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12942:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12953:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12938:3:103"},"nodeType":"YulFunctionCall","src":"12938:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12958:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12931:6:103"},"nodeType":"YulFunctionCall","src":"12931:30:103"},"nodeType":"YulExpressionStatement","src":"12931:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12981:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12992:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12977:3:103"},"nodeType":"YulFunctionCall","src":"12977:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12997:33:103","type":"","value":"ERROR:BRP-001:NO_ACTIVE_BUNDLES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12970:6:103"},"nodeType":"YulFunctionCall","src":"12970:61:103"},"nodeType":"YulExpressionStatement","src":"12970:61:103"},{"nodeType":"YulAssignment","src":"13040:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13052:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13063:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13048:3:103"},"nodeType":"YulFunctionCall","src":"13048:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13040:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12868:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12882:4:103","type":""}],"src":"12717:355:103"},{"body":{"nodeType":"YulBlock","src":"13251:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13268:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13279:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13261:6:103"},"nodeType":"YulFunctionCall","src":"13261:21:103"},"nodeType":"YulExpressionStatement","src":"13261:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13302:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13313:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13298:3:103"},"nodeType":"YulFunctionCall","src":"13298:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13318:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13291:6:103"},"nodeType":"YulFunctionCall","src":"13291:30:103"},"nodeType":"YulExpressionStatement","src":"13291:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13341:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13352:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13337:3:103"},"nodeType":"YulFunctionCall","src":"13337:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13357:34:103","type":"","value":"ERROR:RPL-007:ACTIVE_BUNDLE_INDE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13330:6:103"},"nodeType":"YulFunctionCall","src":"13330:62:103"},"nodeType":"YulExpressionStatement","src":"13330:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13412:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13423:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13408:3:103"},"nodeType":"YulFunctionCall","src":"13408:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13428:13:103","type":"","value":"X_TOO_LARGE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13401:6:103"},"nodeType":"YulFunctionCall","src":"13401:41:103"},"nodeType":"YulExpressionStatement","src":"13401:41:103"},{"nodeType":"YulAssignment","src":"13451:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13463:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13474:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13459:3:103"},"nodeType":"YulFunctionCall","src":"13459:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13451:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13228:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13242:4:103","type":""}],"src":"13077:407:103"},{"body":{"nodeType":"YulBlock","src":"13663:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13680:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13691:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13673:6:103"},"nodeType":"YulFunctionCall","src":"13673:21:103"},"nodeType":"YulExpressionStatement","src":"13673:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13714:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13725:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13710:3:103"},"nodeType":"YulFunctionCall","src":"13710:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"13730:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13703:6:103"},"nodeType":"YulFunctionCall","src":"13703:30:103"},"nodeType":"YulExpressionStatement","src":"13703:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13753:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13764:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13749:3:103"},"nodeType":"YulFunctionCall","src":"13749:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"13769:31:103","type":"","value":"ERROR:BRP-002:NO_FREE_CAPITAL"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13742:6:103"},"nodeType":"YulFunctionCall","src":"13742:59:103"},"nodeType":"YulExpressionStatement","src":"13742:59:103"},{"nodeType":"YulAssignment","src":"13810:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13822:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13833:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13818:3:103"},"nodeType":"YulFunctionCall","src":"13818:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13810:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13640:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13654:4:103","type":""}],"src":"13489:353:103"},{"body":{"nodeType":"YulBlock","src":"14021:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14038:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14049:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14031:6:103"},"nodeType":"YulFunctionCall","src":"14031:21:103"},"nodeType":"YulExpressionStatement","src":"14031:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14072:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14083:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14068:3:103"},"nodeType":"YulFunctionCall","src":"14068:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14088:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14061:6:103"},"nodeType":"YulFunctionCall","src":"14061:30:103"},"nodeType":"YulExpressionStatement","src":"14061:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14111:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14122:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14107:3:103"},"nodeType":"YulFunctionCall","src":"14107:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14127:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14100:6:103"},"nodeType":"YulFunctionCall","src":"14100:62:103"},"nodeType":"YulExpressionStatement","src":"14100:62:103"},{"nodeType":"YulAssignment","src":"14171:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14183:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14194:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14179:3:103"},"nodeType":"YulFunctionCall","src":"14179:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14171:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13998:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14012:4:103","type":""}],"src":"13847:356:103"},{"body":{"nodeType":"YulBlock","src":"14382:232:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14399:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14410:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14392:6:103"},"nodeType":"YulFunctionCall","src":"14392:21:103"},"nodeType":"YulExpressionStatement","src":"14392:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14433:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14444:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14429:3:103"},"nodeType":"YulFunctionCall","src":"14429:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14449:2:103","type":"","value":"42"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14422:6:103"},"nodeType":"YulFunctionCall","src":"14422:30:103"},"nodeType":"YulExpressionStatement","src":"14422:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14472:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14483:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14468:3:103"},"nodeType":"YulFunctionCall","src":"14468:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14488:34:103","type":"","value":"ERROR:RPL-010:RISKPOOL_HAS_UNBUR"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14461:6:103"},"nodeType":"YulFunctionCall","src":"14461:62:103"},"nodeType":"YulExpressionStatement","src":"14461:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14543:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14554:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14539:3:103"},"nodeType":"YulFunctionCall","src":"14539:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14559:12:103","type":"","value":"NT_BUNDLES"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14532:6:103"},"nodeType":"YulFunctionCall","src":"14532:40:103"},"nodeType":"YulExpressionStatement","src":"14532:40:103"},{"nodeType":"YulAssignment","src":"14581:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14593:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14604:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14589:3:103"},"nodeType":"YulFunctionCall","src":"14589:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14581:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14359:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14373:4:103","type":""}],"src":"14208:406:103"},{"body":{"nodeType":"YulBlock","src":"14793:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14810:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14821:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14803:6:103"},"nodeType":"YulFunctionCall","src":"14803:21:103"},"nodeType":"YulExpressionStatement","src":"14803:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14844:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14855:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14840:3:103"},"nodeType":"YulFunctionCall","src":"14840:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"14860:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14833:6:103"},"nodeType":"YulFunctionCall","src":"14833:30:103"},"nodeType":"YulExpressionStatement","src":"14833:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14883:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14894:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14879:3:103"},"nodeType":"YulFunctionCall","src":"14879:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"14899:32:103","type":"","value":"ERROR:BUC-001:NOT_BUNDLE_OWNER"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14872:6:103"},"nodeType":"YulFunctionCall","src":"14872:60:103"},"nodeType":"YulExpressionStatement","src":"14872:60:103"},{"nodeType":"YulAssignment","src":"14941:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14953:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"14964:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14949:3:103"},"nodeType":"YulFunctionCall","src":"14949:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14941:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14770:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14784:4:103","type":""}],"src":"14619:354:103"},{"body":{"nodeType":"YulBlock","src":"15152:177:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15169:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15180:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15162:6:103"},"nodeType":"YulFunctionCall","src":"15162:21:103"},"nodeType":"YulExpressionStatement","src":"15162:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15203:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15214:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15199:3:103"},"nodeType":"YulFunctionCall","src":"15199:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"15219:2:103","type":"","value":"27"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15192:6:103"},"nodeType":"YulFunctionCall","src":"15192:30:103"},"nodeType":"YulExpressionStatement","src":"15192:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15242:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15253:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15238:3:103"},"nodeType":"YulFunctionCall","src":"15238:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"15258:29:103","type":"","value":"ERROR:RPL-001:ACCESS_DENIED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15231:6:103"},"nodeType":"YulFunctionCall","src":"15231:57:103"},"nodeType":"YulExpressionStatement","src":"15231:57:103"},{"nodeType":"YulAssignment","src":"15297:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15309:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15320:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15305:3:103"},"nodeType":"YulFunctionCall","src":"15305:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"15297:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15129:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15143:4:103","type":""}],"src":"14978:351:103"},{"body":{"nodeType":"YulBlock","src":"15483:931:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15500:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15511:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15493:6:103"},"nodeType":"YulFunctionCall","src":"15493:21:103"},"nodeType":"YulExpressionStatement","src":"15493:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15534:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15545:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15530:3:103"},"nodeType":"YulFunctionCall","src":"15530:18:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15556:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15550:5:103"},"nodeType":"YulFunctionCall","src":"15550:13:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15523:6:103"},"nodeType":"YulFunctionCall","src":"15523:41:103"},"nodeType":"YulExpressionStatement","src":"15523:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15584:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15595:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15580:3:103"},"nodeType":"YulFunctionCall","src":"15580:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15610:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15618:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15606:3:103"},"nodeType":"YulFunctionCall","src":"15606:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15600:5:103"},"nodeType":"YulFunctionCall","src":"15600:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15573:6:103"},"nodeType":"YulFunctionCall","src":"15573:50:103"},"nodeType":"YulExpressionStatement","src":"15573:50:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15643:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15654:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15639:3:103"},"nodeType":"YulFunctionCall","src":"15639:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15669:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15677:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15665:3:103"},"nodeType":"YulFunctionCall","src":"15665:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15659:5:103"},"nodeType":"YulFunctionCall","src":"15659:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15632:6:103"},"nodeType":"YulFunctionCall","src":"15632:50:103"},"nodeType":"YulExpressionStatement","src":"15632:50:103"},{"nodeType":"YulVariableDeclaration","src":"15691:42:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15721:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15729:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15717:3:103"},"nodeType":"YulFunctionCall","src":"15717:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15711:5:103"},"nodeType":"YulFunctionCall","src":"15711:22:103"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"15695:12:103","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"15770:12:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15788:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15799:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15784:3:103"},"nodeType":"YulFunctionCall","src":"15784:19:103"}],"functionName":{"name":"abi_encode_enum_BundleState","nodeType":"YulIdentifier","src":"15742:27:103"},"nodeType":"YulFunctionCall","src":"15742:62:103"},"nodeType":"YulExpressionStatement","src":"15742:62:103"},{"nodeType":"YulVariableDeclaration","src":"15813:45:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15845:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"15853:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15841:3:103"},"nodeType":"YulFunctionCall","src":"15841:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15835:5:103"},"nodeType":"YulFunctionCall","src":"15835:23:103"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"15817:14:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15867:16:103","value":{"kind":"number","nodeType":"YulLiteral","src":"15877:6:103","type":"","value":"0x0140"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15871:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15903:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15914:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15899:3:103"},"nodeType":"YulFunctionCall","src":"15899:19:103"},{"name":"_1","nodeType":"YulIdentifier","src":"15920:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15892:6:103"},"nodeType":"YulFunctionCall","src":"15892:31:103"},"nodeType":"YulExpressionStatement","src":"15892:31:103"},{"nodeType":"YulVariableDeclaration","src":"15932:67:103","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"15963:14:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"15983:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"15994:3:103","type":"","value":"352"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15979:3:103"},"nodeType":"YulFunctionCall","src":"15979:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"15946:16:103"},"nodeType":"YulFunctionCall","src":"15946:53:103"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"15936:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16019:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16030:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16015:3:103"},"nodeType":"YulFunctionCall","src":"16015:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16046:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"16054:3:103","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16042:3:103"},"nodeType":"YulFunctionCall","src":"16042:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16036:5:103"},"nodeType":"YulFunctionCall","src":"16036:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16008:6:103"},"nodeType":"YulFunctionCall","src":"16008:52:103"},"nodeType":"YulExpressionStatement","src":"16008:52:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16080:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16091:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16076:3:103"},"nodeType":"YulFunctionCall","src":"16076:19:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16107:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"16115:3:103","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16103:3:103"},"nodeType":"YulFunctionCall","src":"16103:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16097:5:103"},"nodeType":"YulFunctionCall","src":"16097:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16069:6:103"},"nodeType":"YulFunctionCall","src":"16069:52:103"},"nodeType":"YulExpressionStatement","src":"16069:52:103"},{"nodeType":"YulVariableDeclaration","src":"16130:33:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16150:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"16158:3:103","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16146:3:103"},"nodeType":"YulFunctionCall","src":"16146:16:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16140:5:103"},"nodeType":"YulFunctionCall","src":"16140:23:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"16134:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16172:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"16182:3:103","type":"","value":"256"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"16176:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16205:9:103"},{"name":"_3","nodeType":"YulIdentifier","src":"16216:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16201:3:103"},"nodeType":"YulFunctionCall","src":"16201:18:103"},{"name":"_2","nodeType":"YulIdentifier","src":"16221:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16194:6:103"},"nodeType":"YulFunctionCall","src":"16194:30:103"},"nodeType":"YulExpressionStatement","src":"16194:30:103"},{"nodeType":"YulVariableDeclaration","src":"16233:32:103","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16253:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"16261:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16249:3:103"},"nodeType":"YulFunctionCall","src":"16249:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16243:5:103"},"nodeType":"YulFunctionCall","src":"16243:22:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"16237:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"16274:13:103","value":{"kind":"number","nodeType":"YulLiteral","src":"16284:3:103","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"16278:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16307:9:103"},{"name":"_5","nodeType":"YulIdentifier","src":"16318:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16303:3:103"},"nodeType":"YulFunctionCall","src":"16303:18:103"},{"name":"_4","nodeType":"YulIdentifier","src":"16323:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16296:6:103"},"nodeType":"YulFunctionCall","src":"16296:30:103"},"nodeType":"YulExpressionStatement","src":"16296:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16346:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"16357:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16342:3:103"},"nodeType":"YulFunctionCall","src":"16342:18:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"16372:6:103"},{"name":"_5","nodeType":"YulIdentifier","src":"16380:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16368:3:103"},"nodeType":"YulFunctionCall","src":"16368:15:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"16362:5:103"},"nodeType":"YulFunctionCall","src":"16362:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16335:6:103"},"nodeType":"YulFunctionCall","src":"16335:50:103"},"nodeType":"YulExpressionStatement","src":"16335:50:103"},{"nodeType":"YulAssignment","src":"16394:14:103","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"16402:6:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16394:4:103"}]}]},"name":"abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"15452:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"15463:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"15474:4:103","type":""}],"src":"15334:1080:103"},{"body":{"nodeType":"YulBlock","src":"16520:76:103","statements":[{"nodeType":"YulAssignment","src":"16530:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16542:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16553:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16538:3:103"},"nodeType":"YulFunctionCall","src":"16538:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16530:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16572:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16583:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16565:6:103"},"nodeType":"YulFunctionCall","src":"16565:25:103"},"nodeType":"YulExpressionStatement","src":"16565:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16489:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16500:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16511:4:103","type":""}],"src":"16419:177:103"},{"body":{"nodeType":"YulBlock","src":"16724:135:103","statements":[{"nodeType":"YulAssignment","src":"16734:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16746:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16757:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16742:3:103"},"nodeType":"YulFunctionCall","src":"16742:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"16734:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16776:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"16787:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16769:6:103"},"nodeType":"YulFunctionCall","src":"16769:25:103"},"nodeType":"YulExpressionStatement","src":"16769:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"16814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"16825:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"16810:3:103"},"nodeType":"YulFunctionCall","src":"16810:18:103"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"16844:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16837:6:103"},"nodeType":"YulFunctionCall","src":"16837:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"16830:6:103"},"nodeType":"YulFunctionCall","src":"16830:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"16803:6:103"},"nodeType":"YulFunctionCall","src":"16803:50:103"},"nodeType":"YulExpressionStatement","src":"16803:50:103"}]},"name":"abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16685:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16696:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16704:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16715:4:103","type":""}],"src":"16601:258:103"},{"body":{"nodeType":"YulBlock","src":"16993:119:103","statements":[{"nodeType":"YulAssignment","src":"17003:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17015:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17026:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17011:3:103"},"nodeType":"YulFunctionCall","src":"17011:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17003:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17045:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17056:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17038:6:103"},"nodeType":"YulFunctionCall","src":"17038:25:103"},"nodeType":"YulExpressionStatement","src":"17038:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17083:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17094:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17079:3:103"},"nodeType":"YulFunctionCall","src":"17079:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17099:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17072:6:103"},"nodeType":"YulFunctionCall","src":"17072:34:103"},"nodeType":"YulExpressionStatement","src":"17072:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"16954:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"16965:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"16973:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"16984:4:103","type":""}],"src":"16864:248:103"},{"body":{"nodeType":"YulBlock","src":"17274:162:103","statements":[{"nodeType":"YulAssignment","src":"17284:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17296:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17307:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17292:3:103"},"nodeType":"YulFunctionCall","src":"17292:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17284:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17326:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17337:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17319:6:103"},"nodeType":"YulFunctionCall","src":"17319:25:103"},"nodeType":"YulExpressionStatement","src":"17319:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17364:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17375:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17360:3:103"},"nodeType":"YulFunctionCall","src":"17360:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17380:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17353:6:103"},"nodeType":"YulFunctionCall","src":"17353:34:103"},"nodeType":"YulExpressionStatement","src":"17353:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17407:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17418:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17403:3:103"},"nodeType":"YulFunctionCall","src":"17403:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"17423:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17396:6:103"},"nodeType":"YulFunctionCall","src":"17396:34:103"},"nodeType":"YulExpressionStatement","src":"17396:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17227:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17238:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17246:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17254:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17265:4:103","type":""}],"src":"17117:319:103"},{"body":{"nodeType":"YulBlock","src":"17570:119:103","statements":[{"nodeType":"YulAssignment","src":"17580:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17603:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17588:3:103"},"nodeType":"YulFunctionCall","src":"17588:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17580:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17622:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17633:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17615:6:103"},"nodeType":"YulFunctionCall","src":"17615:25:103"},"nodeType":"YulExpressionStatement","src":"17615:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17660:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17671:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17656:3:103"},"nodeType":"YulFunctionCall","src":"17656:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17676:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17649:6:103"},"nodeType":"YulFunctionCall","src":"17649:34:103"},"nodeType":"YulExpressionStatement","src":"17649:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17531:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17542:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17550:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17561:4:103","type":""}],"src":"17441:248:103"},{"body":{"nodeType":"YulBlock","src":"17879:206:103","statements":[{"nodeType":"YulAssignment","src":"17889:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17901:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17912:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17897:3:103"},"nodeType":"YulFunctionCall","src":"17897:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"17889:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17932:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"17943:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17925:6:103"},"nodeType":"YulFunctionCall","src":"17925:25:103"},"nodeType":"YulExpressionStatement","src":"17925:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"17970:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"17981:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"17966:3:103"},"nodeType":"YulFunctionCall","src":"17966:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"17986:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"17959:6:103"},"nodeType":"YulFunctionCall","src":"17959:34:103"},"nodeType":"YulExpressionStatement","src":"17959:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18013:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18024:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18009:3:103"},"nodeType":"YulFunctionCall","src":"18009:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"18029:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18002:6:103"},"nodeType":"YulFunctionCall","src":"18002:34:103"},"nodeType":"YulExpressionStatement","src":"18002:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18056:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18067:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18052:3:103"},"nodeType":"YulFunctionCall","src":"18052:18:103"},{"name":"value3","nodeType":"YulIdentifier","src":"18072:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18045:6:103"},"nodeType":"YulFunctionCall","src":"18045:34:103"},"nodeType":"YulExpressionStatement","src":"18045:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"17824:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"17835:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"17843:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"17851:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"17859:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"17870:4:103","type":""}],"src":"17694:391:103"},{"body":{"nodeType":"YulBlock","src":"18218:136:103","statements":[{"nodeType":"YulAssignment","src":"18228:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18240:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18251:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18236:3:103"},"nodeType":"YulFunctionCall","src":"18236:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"18228:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18270:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"18281:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18263:6:103"},"nodeType":"YulFunctionCall","src":"18263:25:103"},"nodeType":"YulExpressionStatement","src":"18263:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"18308:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"18319:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18304:3:103"},"nodeType":"YulFunctionCall","src":"18304:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"18328:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18336:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18324:3:103"},"nodeType":"YulFunctionCall","src":"18324:23:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18297:6:103"},"nodeType":"YulFunctionCall","src":"18297:51:103"},"nodeType":"YulExpressionStatement","src":"18297:51:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint32__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"18179:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"18190:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"18198:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"18209:4:103","type":""}],"src":"18090:264:103"},{"body":{"nodeType":"YulBlock","src":"18404:230:103","statements":[{"nodeType":"YulAssignment","src":"18414:19:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18430:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"18424:5:103"},"nodeType":"YulFunctionCall","src":"18424:9:103"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18414:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"18442:58:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"18464:6:103"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"18480:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"18486:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18476:3:103"},"nodeType":"YulFunctionCall","src":"18476:13:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18495:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18491:3:103"},"nodeType":"YulFunctionCall","src":"18491:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18472:3:103"},"nodeType":"YulFunctionCall","src":"18472:27:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18460:3:103"},"nodeType":"YulFunctionCall","src":"18460:40:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"18446:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"18575:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"18577:16:103"},"nodeType":"YulFunctionCall","src":"18577:18:103"},"nodeType":"YulExpressionStatement","src":"18577:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18518:10:103"},{"kind":"number","nodeType":"YulLiteral","src":"18530:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18515:2:103"},"nodeType":"YulFunctionCall","src":"18515:34:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18554:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"18566:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"18551:2:103"},"nodeType":"YulFunctionCall","src":"18551:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"18512:2:103"},"nodeType":"YulFunctionCall","src":"18512:62:103"},"nodeType":"YulIf","src":"18509:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18613:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"18617:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"18606:6:103"},"nodeType":"YulFunctionCall","src":"18606:22:103"},"nodeType":"YulExpressionStatement","src":"18606:22:103"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"18384:4:103","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"18393:6:103","type":""}],"src":"18359:275:103"},{"body":{"nodeType":"YulBlock","src":"18696:129:103","statements":[{"body":{"nodeType":"YulBlock","src":"18740:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"18742:16:103"},"nodeType":"YulFunctionCall","src":"18742:18:103"},"nodeType":"YulExpressionStatement","src":"18742:18:103"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"18712:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18720:18:103","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18709:2:103"},"nodeType":"YulFunctionCall","src":"18709:30:103"},"nodeType":"YulIf","src":"18706:2:103"},{"nodeType":"YulAssignment","src":"18771:48:103","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"18791:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"18799:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18787:3:103"},"nodeType":"YulFunctionCall","src":"18787:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"18808:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18804:3:103"},"nodeType":"YulFunctionCall","src":"18804:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"18783:3:103"},"nodeType":"YulFunctionCall","src":"18783:29:103"},{"kind":"number","nodeType":"YulLiteral","src":"18814:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18779:3:103"},"nodeType":"YulFunctionCall","src":"18779:40:103"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"18771:4:103"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"18676:6:103","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"18687:4:103","type":""}],"src":"18639:186:103"},{"body":{"nodeType":"YulBlock","src":"18878:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"18905:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"18907:16:103"},"nodeType":"YulFunctionCall","src":"18907:18:103"},"nodeType":"YulExpressionStatement","src":"18907:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18894:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"18901:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"18897:3:103"},"nodeType":"YulFunctionCall","src":"18897:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"18891:2:103"},"nodeType":"YulFunctionCall","src":"18891:13:103"},"nodeType":"YulIf","src":"18888:2:103"},{"nodeType":"YulAssignment","src":"18936:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"18947:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"18950:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"18943:3:103"},"nodeType":"YulFunctionCall","src":"18943:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"18936:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18861:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"18864:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"18870:3:103","type":""}],"src":"18830:128:103"},{"body":{"nodeType":"YulBlock","src":"19012:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"19034:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19036:16:103"},"nodeType":"YulFunctionCall","src":"19036:18:103"},"nodeType":"YulExpressionStatement","src":"19036:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19028:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"19031:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19025:2:103"},"nodeType":"YulFunctionCall","src":"19025:8:103"},"nodeType":"YulIf","src":"19022:2:103"},{"nodeType":"YulAssignment","src":"19065:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19077:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"19080:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"19073:3:103"},"nodeType":"YulFunctionCall","src":"19073:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"19065:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"18994:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"18997:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"19003:4:103","type":""}],"src":"18963:125:103"},{"body":{"nodeType":"YulBlock","src":"19146:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"19156:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"19165:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"19160:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"19225:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19250:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"19255:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19246:3:103"},"nodeType":"YulFunctionCall","src":"19246:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"19269:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"19274:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19265:3:103"},"nodeType":"YulFunctionCall","src":"19265:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"19259:5:103"},"nodeType":"YulFunctionCall","src":"19259:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19239:6:103"},"nodeType":"YulFunctionCall","src":"19239:39:103"},"nodeType":"YulExpressionStatement","src":"19239:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19186:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"19189:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"19183:2:103"},"nodeType":"YulFunctionCall","src":"19183:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"19197:19:103","statements":[{"nodeType":"YulAssignment","src":"19199:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19208:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"19211:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19204:3:103"},"nodeType":"YulFunctionCall","src":"19204:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"19199:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"19179:3:103","statements":[]},"src":"19175:113:103"},{"body":{"nodeType":"YulBlock","src":"19314:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"19327:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"19332:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19323:3:103"},"nodeType":"YulFunctionCall","src":"19323:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"19341:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19316:6:103"},"nodeType":"YulFunctionCall","src":"19316:27:103"},"nodeType":"YulExpressionStatement","src":"19316:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"19303:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"19306:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"19300:2:103"},"nodeType":"YulFunctionCall","src":"19300:13:103"},"nodeType":"YulIf","src":"19297:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"19124:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"19129:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"19134:6:103","type":""}],"src":"19093:258:103"},{"body":{"nodeType":"YulBlock","src":"19403:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"19434:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19436:16:103"},"nodeType":"YulFunctionCall","src":"19436:18:103"},"nodeType":"YulExpressionStatement","src":"19436:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19419:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19430:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"19426:3:103"},"nodeType":"YulFunctionCall","src":"19426:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"19416:2:103"},"nodeType":"YulFunctionCall","src":"19416:17:103"},"nodeType":"YulIf","src":"19413:2:103"},{"nodeType":"YulAssignment","src":"19465:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19476:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"19483:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19472:3:103"},"nodeType":"YulFunctionCall","src":"19472:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19465:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19385:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"19395:3:103","type":""}],"src":"19356:135:103"},{"body":{"nodeType":"YulBlock","src":"19542:155:103","statements":[{"nodeType":"YulVariableDeclaration","src":"19552:20:103","value":{"kind":"number","nodeType":"YulLiteral","src":"19562:10:103","type":"","value":"0xffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"19556:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"19581:29:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"19600:5:103"},{"name":"_1","nodeType":"YulIdentifier","src":"19607:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"19596:3:103"},"nodeType":"YulFunctionCall","src":"19596:14:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"19585:7:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"19638:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"19640:16:103"},"nodeType":"YulFunctionCall","src":"19640:18:103"},"nodeType":"YulExpressionStatement","src":"19640:18:103"}]},"condition":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"19625:7:103"},{"name":"_1","nodeType":"YulIdentifier","src":"19634:2:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"19622:2:103"},"nodeType":"YulFunctionCall","src":"19622:15:103"},"nodeType":"YulIf","src":"19619:2:103"},{"nodeType":"YulAssignment","src":"19669:22:103","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"19680:7:103"},{"kind":"number","nodeType":"YulLiteral","src":"19689:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"19676:3:103"},"nodeType":"YulFunctionCall","src":"19676:15:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"19669:3:103"}]}]},"name":"increment_t_uint32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"19524:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"19534:3:103","type":""}],"src":"19496:201:103"},{"body":{"nodeType":"YulBlock","src":"19740:171:103","statements":[{"body":{"nodeType":"YulBlock","src":"19771:111:103","statements":[{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"19792:1:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19799:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19804:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19795:3:103"},"nodeType":"YulFunctionCall","src":"19795:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19785:6:103"},"nodeType":"YulFunctionCall","src":"19785:31:103"},"nodeType":"YulExpressionStatement","src":"19785:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19836:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"19839:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19829:6:103"},"nodeType":"YulFunctionCall","src":"19829:15:103"},"nodeType":"YulExpressionStatement","src":"19829:15:103"},{"expression":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"19864:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"19867:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"19857:6:103"},"nodeType":"YulFunctionCall","src":"19857:15:103"},"nodeType":"YulExpressionStatement","src":"19857:15:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"19760:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"19753:6:103"},"nodeType":"YulFunctionCall","src":"19753:9:103"},"nodeType":"YulIf","src":"19750:2:103"},{"nodeType":"YulAssignment","src":"19891:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"19900:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"19903:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"19896:3:103"},"nodeType":"YulFunctionCall","src":"19896:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"19891:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"19725:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"19728:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"19734:1:103","type":""}],"src":"19702:209:103"},{"body":{"nodeType":"YulBlock","src":"19948:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19965:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"19972:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"19977:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"19968:3:103"},"nodeType":"YulFunctionCall","src":"19968:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19958:6:103"},"nodeType":"YulFunctionCall","src":"19958:31:103"},"nodeType":"YulExpressionStatement","src":"19958:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20005:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20008:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"19998:6:103"},"nodeType":"YulFunctionCall","src":"19998:15:103"},"nodeType":"YulExpressionStatement","src":"19998:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20029:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20032:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20022:6:103"},"nodeType":"YulFunctionCall","src":"20022:15:103"},"nodeType":"YulExpressionStatement","src":"20022:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"19916:127:103"},{"body":{"nodeType":"YulBlock","src":"20080:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20097:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20104:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"20109:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20100:3:103"},"nodeType":"YulFunctionCall","src":"20100:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20090:6:103"},"nodeType":"YulFunctionCall","src":"20090:31:103"},"nodeType":"YulExpressionStatement","src":"20090:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20137:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20140:4:103","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20130:6:103"},"nodeType":"YulFunctionCall","src":"20130:15:103"},"nodeType":"YulExpressionStatement","src":"20130:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20161:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20164:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20154:6:103"},"nodeType":"YulFunctionCall","src":"20154:15:103"},"nodeType":"YulExpressionStatement","src":"20154:15:103"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"20048:127:103"},{"body":{"nodeType":"YulBlock","src":"20212:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20229:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20236:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"20241:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20232:3:103"},"nodeType":"YulFunctionCall","src":"20232:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20222:6:103"},"nodeType":"YulFunctionCall","src":"20222:31:103"},"nodeType":"YulExpressionStatement","src":"20222:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20269:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"20272:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"20262:6:103"},"nodeType":"YulFunctionCall","src":"20262:15:103"},"nodeType":"YulExpressionStatement","src":"20262:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20293:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20296:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20286:6:103"},"nodeType":"YulFunctionCall","src":"20286:15:103"},"nodeType":"YulExpressionStatement","src":"20286:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"20180:127:103"},{"body":{"nodeType":"YulBlock","src":"20357:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"20421:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20430:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20433:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20423:6:103"},"nodeType":"YulFunctionCall","src":"20423:12:103"},"nodeType":"YulExpressionStatement","src":"20423:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20380:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20391:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20406:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"20411:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"20402:3:103"},"nodeType":"YulFunctionCall","src":"20402:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"20415:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"20398:3:103"},"nodeType":"YulFunctionCall","src":"20398:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"20387:3:103"},"nodeType":"YulFunctionCall","src":"20387:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"20377:2:103"},"nodeType":"YulFunctionCall","src":"20377:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20370:6:103"},"nodeType":"YulFunctionCall","src":"20370:50:103"},"nodeType":"YulIf","src":"20367:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20346:5:103","type":""}],"src":"20312:131:103"},{"body":{"nodeType":"YulBlock","src":"20507:56:103","statements":[{"body":{"nodeType":"YulBlock","src":"20541:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"20550:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"20553:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"20543:6:103"},"nodeType":"YulFunctionCall","src":"20543:12:103"},"nodeType":"YulExpressionStatement","src":"20543:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"20530:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"20537:1:103","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"20527:2:103"},"nodeType":"YulFunctionCall","src":"20527:12:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"20520:6:103"},"nodeType":"YulFunctionCall","src":"20520:20:103"},"nodeType":"YulIf","src":"20517:2:103"}]},"name":"validator_revert_enum_ApplicationState","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"20496:5:103","type":""}],"src":"20448:115:103"}]},"contents":"{\n { }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), array)\n array := array_1\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n let _1 := mload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n copy_memory_to_memory(add(offset, 0x20), add(array_1, 0x20), _1)\n array := array_1\n }\n function abi_decode_enum_ApplicationState(offset) -> value\n {\n value := calldataload(offset)\n validator_revert_enum_ApplicationState(value)\n }\n function abi_decode_enum_ApplicationState_fromMemory(offset) -> value\n {\n value := mload(offset)\n validator_revert_enum_ApplicationState(value)\n }\n function abi_decode_struct_Application(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0xc0) { revert(value, value) }\n value := allocate_memory(0xc0)\n let value_1 := calldataload(headStart)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), calldataload(add(headStart, 32)))\n mstore(add(value, 64), calldataload(add(headStart, 64)))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value, 96), abi_decode_bytes(add(headStart, offset), end))\n mstore(add(value, 128), calldataload(add(headStart, 128)))\n mstore(add(value, 160), calldataload(add(headStart, 160)))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes_memory_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_enum$_ComponentState_$2899_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(lt(value, 7)) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Application_$5262_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n if slt(sub(dataEnd, _2), 0xc0) { revert(value0, value0) }\n let value := allocate_memory(0xc0)\n let value_1 := mload(_2)\n validator_revert_enum_ApplicationState(value_1)\n mstore(value, value_1)\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n let offset_1 := mload(add(_2, 96))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 96), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 128), mload(add(_2, 128)))\n mstore(add(value, 160), mload(add(_2, 160)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let offset := mload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, mload(_2))\n mstore(add(value, 32), mload(add(_2, 32)))\n mstore(add(value, 64), mload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_ApplicationState_fromMemory(add(_2, 96)))\n let offset_1 := mload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes_fromMemory(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), mload(add(_2, 160)))\n mstore(add(value, 192), mload(add(_2, 192)))\n mstore(add(value, 224), mload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), mload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), mload(add(_2, _5)))\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Bundle_$4936_memory_ptrt_struct$_Application_$5262_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value0, value0) }\n let _2 := add(headStart, offset)\n let _3 := 0x0140\n if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n let value := allocate_memory(_3)\n mstore(value, calldataload(_2))\n mstore(add(value, 32), calldataload(add(_2, 32)))\n mstore(add(value, 64), calldataload(add(_2, 64)))\n mstore(add(value, 96), abi_decode_enum_ApplicationState(add(_2, 96)))\n let offset_1 := calldataload(add(_2, 128))\n if gt(offset_1, _1) { revert(value0, value0) }\n mstore(add(value, 128), abi_decode_bytes(add(_2, offset_1), dataEnd))\n mstore(add(value, 160), calldataload(add(_2, 160)))\n mstore(add(value, 192), calldataload(add(_2, 192)))\n mstore(add(value, 224), calldataload(add(_2, 224)))\n let _4 := 256\n mstore(add(value, _4), calldataload(add(_2, _4)))\n let _5 := 288\n mstore(add(value, _5), calldataload(add(_2, _5)))\n value0 := value\n let offset_2 := calldataload(add(headStart, 32))\n if gt(offset_2, _1) { revert(value1, value1) }\n value1 := abi_decode_struct_Application(add(headStart, offset_2), dataEnd)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_BundleState(value, pos)\n {\n if iszero(lt(value, 4)) { panic_error_0x21() }\n mstore(pos, value)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256__to_t_address_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_address_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 96)\n tail := abi_encode_bytes(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_bytes32_t_uint256__to_t_bytes32_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_bool__to_t_bytes32_t_uint256_t_bool__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), iszero(iszero(value2)))\n }\n function abi_encode_tuple_t_contract$_IRegistry_$5714__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_enum$_ComponentState_$2899__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 7)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_enum$_ComponentType_$2891__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n if iszero(lt(value0, 3)) { panic_error_0x21() }\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_13d854cfce65ca3d798b24f0152adbdef51328a4972814c276101e4a34ebcd4a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:CMP-002:NOT_COMPONENT\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERROR:RPL-006:BUNDLE_INDEX_TOO_L\")\n mstore(add(headStart, 96), \"ARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_5f018d5c9d0ffbe4a6bed940729e864f2f328246ad7beca8b4bb8a10cde0ff08__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:BRP-001:NO_ACTIVE_BUNDLES\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:RPL-007:ACTIVE_BUNDLE_INDE\")\n mstore(add(headStart, 96), \"X_TOO_LARGE\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8666a6be95c8b59292bddcec1001319daf412450a7c966dd3f24e54df39de22a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:BRP-002:NO_FREE_CAPITAL\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 42)\n mstore(add(headStart, 64), \"ERROR:RPL-010:RISKPOOL_HAS_UNBUR\")\n mstore(add(headStart, 96), \"NT_BUNDLES\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:BUC-001:NOT_BUNDLE_OWNER\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 27)\n mstore(add(headStart, 64), \"ERROR:RPL-001:ACCESS_DENIED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_struct$_Bundle_$4936_memory_ptr__to_t_struct$_Bundle_$4936_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), mload(add(value0, 32)))\n mstore(add(headStart, 96), mload(add(value0, 64)))\n let memberValue0 := mload(add(value0, 96))\n abi_encode_enum_BundleState(memberValue0, add(headStart, 128))\n let memberValue0_1 := mload(add(value0, 128))\n let _1 := 0x0140\n mstore(add(headStart, 160), _1)\n let tail_1 := abi_encode_bytes(memberValue0_1, add(headStart, 352))\n mstore(add(headStart, 192), mload(add(value0, 160)))\n mstore(add(headStart, 224), mload(add(value0, 192)))\n let _2 := mload(add(value0, 224))\n let _3 := 256\n mstore(add(headStart, _3), _2)\n let _4 := mload(add(value0, _3))\n let _5 := 288\n mstore(add(headStart, _5), _4)\n mstore(add(headStart, _1), mload(add(value0, _5)))\n tail := tail_1\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_bool__to_t_uint256_t_bool__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), iszero(iszero(value1)))\n }\n function abi_encode_tuple_t_uint256_t_bytes32__to_t_uint256_t_bytes32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_bytes32_t_uint256__to_t_uint256_t_bytes32_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_uint256_t_uint32__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffff))\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function increment_t_uint32(value) -> ret\n {\n let _1 := 0xffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y)\n {\n mstore(r, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(r, 0x24)\n }\n r := mod(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_enum_ApplicationState(value)\n {\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061030c5760003560e01c80637f3b69801161019d578063b3fca9bd116100e9578063d0e0ba95116100a2578063e0815f0d1161007c578063e0815f0d146105ce578063f1d354d0146105d6578063f2fde38b146105e4578063feb1824b146105f75761030c565b8063d0e0ba95146105b3578063d73cd9921461039c578063e0032383146105c65761030c565b8063b3fca9bd1461039c578063bd1fe5d01461039c578063be169e7e1461057f578063be61e91e14610587578063c3004c8614610598578063c40000d4146105ab5761030c565b80638c483e5a11610156578063a17030d511610130578063a17030d51461055c578063a18aa1281461056f578063a18f5ae21461039c578063b26025aa146105775761030c565b80638c483e5a146105305780638da5cb5b146105435780639a82f890146105545761030c565b80637f3b6980146104d157806382558906146104d957806386c71288146104ec57806389002da514610502578063890fbf7814610515578063893d20e8146105285761030c565b80633dcdde171161025c5780635ab1bd5311610215578063652028e5116101ef578063652028e51461048d578063715018a6146104a05780637888a2ff146104a85780637893c7bc146104bb5761030c565b80635ab1bd53146104665780635d1ca6311461047d578063638ce0ba146104855761030c565b80633dcdde17146104175780634101b90c1461043457806345fe1c6d1461043c57806354afef631461044b578063587e59d01461045357806359dacc6a1461039c5761030c565b80631865c57d116102c95780632d0821b7116102a35780632d0821b7146103be578063316c5348146103de57806336153f3a146103f15780633629c3c4146104045761030c565b80631865c57d146103875780631b867c631461039c578063258d560c146103a65761030c565b80630676cb0e1461031157806312065fe014610337578063132996041461033f57806315dae03e1461036457806317d7de7c1461037757806318442e631461037f575b600080fd5b61032461031f366004612380565b610608565b6040519081526020015b60405180910390f35b610324610784565b600b546001600160a01b03165b6040516001600160a01b03909116815260200161032e565b60035460ff1660405161032e919061274c565b600154610324565b600a54610324565b61038f610814565b60405161032e9190612732565b6103a461089a565b005b6103ae6108e1565b604051901515815260200161032e565b6103d16103cc366004612380565b610911565b60405161032e9190612818565b6103a46103ec366004612380565b610a26565b6103246103ff3660046126ac565b610bc7565b6103a4610412366004612398565b610d93565b6040805160208101909152600081525b60405161032e9190612760565b610324610e1b565b610324670de0b6b3a764000081565b600d54610324565b6103a4610461366004612380565b610e59565b61034c60035461010090046001600160a01b031690565b600254610324565b6103a4610fc6565b6103a461049b366004612380565b611013565b6103a4611090565b6103246104b63660046123b9565b6110a2565b6104276040518060200160405280600081525081565b6103246111a5565b6103a46104e7366004612398565b6111e3565b6103ae6104fa36600461259a565b506001919050565b6103246105103660046126ac565b611263565b6103ae610523366004612398565b6113d7565b61034c61146e565b6103a461053e366004612380565b611480565b6000546001600160a01b031661034c565b6103ae6115ed565b6103a461056a366004612380565b6115f5565b600e54610324565b610324611762565b6103a46117a0565b61032469d3c21bcecceda100000081565b6103a46105a6366004612380565b6117ed565b610324611871565b6103a46105c1366004612380565b6118af565b6103246118f9565b6103ae611936565b670de0b6b3a7640000610324565b6103a46105f2366004612341565b61193f565b600c546001600160a01b031661034c565b60008061061460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190612694565b83106106f85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190612694565b9150505b919050565b60008061079060025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b1580156107d657600080fd5b505afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e9190612694565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561085d57600080fd5b505afa158015610871573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089591906123fc565b905090565b6108af6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146108df5760405162461bcd60e51b81526004016106ef90612773565b565b600060025b60035460ff16600281111561090b57634e487b7160e01b600052602160045260246000fd5b14905090565b610919612197565b600a5482106109765760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b60648201526084016106ef565b6000600a838154811061099957634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b1580156109ea57600080fd5b505afa1580156109fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077b91908101906124c6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aab91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610ae89160040190815260200190565b60206040518083038186803b158015610b0057600080fd5b505afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190612364565b9050336001600160a01b03821614610b625760405162461bcd60e51b81526004016106ef906127aa565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c4c91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610c899160040190815260200190565b60206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612364565b9050336001600160a01b03821614610d035760405162461bcd60e51b81526004016106ef906127aa565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610d5157600080fd5b505af1158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190612694565b9695505050505050565b610da363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b031614610dd35760405162461bcd60e51b81526004016106ef906127e1565b610ddd8282611a40565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b600080610e2760025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a66906024016107be565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ede91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610f1b9160040190815260200190565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612364565b9050336001600160a01b03821614610f955760405162461bcd60e51b81526004016106ef906127aa565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610b8f565b610fdb6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b03161461100b5760405162461bcd60e51b81526004016106ef90612773565b6108df611ac2565b61101b611b43565b600061102660025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505050505050565b611098611b43565b6108df6000611b9d565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e74906110db908490889088906004016126fe565b602060405180830381600087803b1580156110f557600080fd5b505af1158015611109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112d9190612694565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000806111b160025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db32844906024016107be565b6111f363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146112235760405162461bcd60e51b81526004016106ef906127e1565b61122d8282611bed565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610e0f565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b1580156112ac57600080fd5b505afa1580156112c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e891908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916113259160040190815260200190565b60206040518083038186803b15801561133d57600080fd5b505afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190612364565b9050336001600160a01b0382161461139f5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610d37565b60006113e963141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146114195760405162461bcd60e51b81526004016106ef906127e1565b6114238383611c3c565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610895565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156114c957600080fd5b505afa1580156114dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150591908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916115429160040190815260200190565b60206040518083038186803b15801561155a57600080fd5b505afa15801561156e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115929190612364565b9050336001600160a01b038216146115bc5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610b8f565b6000806108e6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261167a91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116b79160040190815260200190565b60206040518083038186803b1580156116cf57600080fd5b505afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190612364565b9050336001600160a01b038216146117315760405162461bcd60e51b81526004016106ef906127aa565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610b8f565b60008061176e60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d9235906024016107be565b6117b56810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146117e55760405162461bcd60e51b81526004016106ef90612773565b6108df61203f565b6117fd63141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b03161461182d5760405162461bcd60e51b81526004016106ef906127e1565b600061183882612127565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610e0f565b60008061187d60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f906024016107be565b6118c46810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146118f45760405162461bcd60e51b81526004016106ef90612773565b600255565b60008061190560025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b0316906329560980906024016107be565b600060016108e6565b611947611b43565b6001600160a01b0381166119ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ef565b6119b581611b9d565b50565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611a0257600080fd5b505afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190612364565b92915050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611aa557600080fd5b505af1158015611ab9573d6000803e3d6000fd5b50505050505050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146108df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ef565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611a8b565b600080611c47610e1b565b90506000611c536118f9565b90506000611c5f611762565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a160008311611cf45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c45530060448201526064016106ef565b808211611d435760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c00000060448201526064016106ef565b611d4d8582612908565b821061203657600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b158015611d9857600080fd5b505afa158015611dac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd4919081019061241b565b601154909150600090611dee90869063ffffffff166129a2565b905060005b8581108015611e00575086155b15612032576000611e1083610608565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015611e5a57600080fd5b505afa158015611e6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9691908101906124c6565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a1801561201c5760008260c001518360a00151611ef59190612920565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b811061200157600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b158015611f9b57600080fd5b505af1158015611faf573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff16925090611fdd8361297e565b91906101000a81548163ffffffff021916908363ffffffff1602179055505061201a565b8961200d876001612908565b61201791906129a2565b95505b505b505050808061202a90612963565b915050611df3565b5050505b50505092915050565b600061204a60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561208f57600080fd5b505afa1580156120a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c79190612694565b156119b55760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b60648201526084016106ef565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561218357600080fd5b505af1158015610757573d6000803e3d6000fd5b604051806101400160405280600081526020016000815260200160008152602001600060038111156121d957634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612219578081fd5b813561222c612227826128e0565b6128af565b818152846020838601011115612240578283fd5b816020850160208301379081016020019190915292915050565b600082601f83011261226a578081fd5b8151612278612227826128e0565b81815284602083860101111561228c578283fd5b61229d826020830160208701612937565b949350505050565b803561077f81612a19565b805161077f81612a19565b600060c082840312156122cc578081fd5b6122d660c06128af565b905081356122e381612a19565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561231557600080fd5b61232184828501612209565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612352578081fd5b813561235d81612a04565b9392505050565b600060208284031215612375578081fd5b815161235d81612a04565b600060208284031215612391578081fd5b5035919050565b600080604083850312156123aa578081fd5b50508035926020909101359150565b600080604083850312156123cb578182fd5b823567ffffffffffffffff8111156123e1578283fd5b6123ed85828601612209565b95602094909401359450505050565b60006020828403121561240d578081fd5b81516007811061235d578182fd5b60006020828403121561242c578081fd5b815167ffffffffffffffff80821115612443578283fd5b9083019060c08286031215612456578283fd5b61246060c06128af565b825161246b81612a19565b808252506020830151602082015260408301516040820152606083015182811115612494578485fd5b6124a08782860161225a565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000602082840312156124d7578081fd5b815167ffffffffffffffff808211156124ee578283fd5b8184019150610140808387031215612504578384fd5b61250d816128af565b9050825181526020830151602082015260408301516040820152612533606084016122b0565b6060820152608083015182811115612549578485fd5b6125558782860161225a565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600080604083850312156125ac578182fd5b823567ffffffffffffffff808211156125c3578384fd5b81850191506101408083880312156125d9578485fd5b6125e2816128af565b9050823581526020830135602082015260408301356040820152612608606084016122a5565b606082015260808301358281111561261e578586fd5b61262a88828601612209565b60808301525060a083013560a082015260c083013560c082015260e083013560e082015261010080840135818301525061012080840135818301525080945050602085013591508082111561267d578283fd5b5061268a858286016122bb565b9150509250929050565b6000602082840312156126a5578081fd5b5051919050565b600080604083850312156123aa578182fd5b600081518084526126d6816020860160208601612937565b601f01601f19169290920160200192915050565b600481106126fa576126fa6129d8565b9052565b6001600160a01b0384168152606060208201819052600090612722908301856126be565b9050826040830152949350505050565b6020810160078310612746576127466129d8565b91905290565b6020810160038310612746576127466129d8565b60006020825261235d60208301846126be565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b600060208252825160208301526020830151604083015260408301516060830152606083015161284b60808401826126ea565b5060808301516101408060a08501526128686101608501836126be565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128d8576128d86129ee565b604052919050565b600067ffffffffffffffff8211156128fa576128fa6129ee565b50601f01601f191660200190565b6000821982111561291b5761291b6129c2565b500190565b600082821015612932576129326129c2565b500390565b60005b8381101561295257818101518382015260200161293a565b83811115611b3d5750506000910152565b6000600019821415612977576129776129c2565b5060010190565b600063ffffffff80831681811415612998576129986129c2565b6001019392505050565b6000826129bd57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146119b557600080fd5b600481106119b557600080fdfea264697066735822122027465eb2540f515511bab31c2e975b912c7cb02ee862dca2d6d9395445502f7364736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x30C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7F3B6980 GT PUSH2 0x19D JUMPI DUP1 PUSH4 0xB3FCA9BD GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xD0E0BA95 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xE0815F0D GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xE0815F0D EQ PUSH2 0x5CE JUMPI DUP1 PUSH4 0xF1D354D0 EQ PUSH2 0x5D6 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x5E4 JUMPI DUP1 PUSH4 0xFEB1824B EQ PUSH2 0x5F7 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0xD0E0BA95 EQ PUSH2 0x5B3 JUMPI DUP1 PUSH4 0xD73CD992 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xE0032383 EQ PUSH2 0x5C6 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0xB3FCA9BD EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xBD1FE5D0 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xBE169E7E EQ PUSH2 0x57F JUMPI DUP1 PUSH4 0xBE61E91E EQ PUSH2 0x587 JUMPI DUP1 PUSH4 0xC3004C86 EQ PUSH2 0x598 JUMPI DUP1 PUSH4 0xC40000D4 EQ PUSH2 0x5AB JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A GT PUSH2 0x156 JUMPI DUP1 PUSH4 0xA17030D5 GT PUSH2 0x130 JUMPI DUP1 PUSH4 0xA17030D5 EQ PUSH2 0x55C JUMPI DUP1 PUSH4 0xA18AA128 EQ PUSH2 0x56F JUMPI DUP1 PUSH4 0xA18F5AE2 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xB26025AA EQ PUSH2 0x577 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x8C483E5A EQ PUSH2 0x530 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x543 JUMPI DUP1 PUSH4 0x9A82F890 EQ PUSH2 0x554 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x7F3B6980 EQ PUSH2 0x4D1 JUMPI DUP1 PUSH4 0x82558906 EQ PUSH2 0x4D9 JUMPI DUP1 PUSH4 0x86C71288 EQ PUSH2 0x4EC JUMPI DUP1 PUSH4 0x89002DA5 EQ PUSH2 0x502 JUMPI DUP1 PUSH4 0x890FBF78 EQ PUSH2 0x515 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x528 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x3DCDDE17 GT PUSH2 0x25C JUMPI DUP1 PUSH4 0x5AB1BD53 GT PUSH2 0x215 JUMPI DUP1 PUSH4 0x652028E5 GT PUSH2 0x1EF JUMPI DUP1 PUSH4 0x652028E5 EQ PUSH2 0x48D JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4A0 JUMPI DUP1 PUSH4 0x7888A2FF EQ PUSH2 0x4A8 JUMPI DUP1 PUSH4 0x7893C7BC EQ PUSH2 0x4BB JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x5AB1BD53 EQ PUSH2 0x466 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x47D JUMPI DUP1 PUSH4 0x638CE0BA EQ PUSH2 0x485 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x3DCDDE17 EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0x4101B90C EQ PUSH2 0x434 JUMPI DUP1 PUSH4 0x45FE1C6D EQ PUSH2 0x43C JUMPI DUP1 PUSH4 0x54AFEF63 EQ PUSH2 0x44B JUMPI DUP1 PUSH4 0x587E59D0 EQ PUSH2 0x453 JUMPI DUP1 PUSH4 0x59DACC6A EQ PUSH2 0x39C JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x1865C57D GT PUSH2 0x2C9 JUMPI DUP1 PUSH4 0x2D0821B7 GT PUSH2 0x2A3 JUMPI DUP1 PUSH4 0x2D0821B7 EQ PUSH2 0x3BE JUMPI DUP1 PUSH4 0x316C5348 EQ PUSH2 0x3DE JUMPI DUP1 PUSH4 0x36153F3A EQ PUSH2 0x3F1 JUMPI DUP1 PUSH4 0x3629C3C4 EQ PUSH2 0x404 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x1865C57D EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x1B867C63 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0x258D560C EQ PUSH2 0x3A6 JUMPI PUSH2 0x30C JUMP JUMPDEST DUP1 PUSH4 0x676CB0E EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x337 JUMPI DUP1 PUSH4 0x13299604 EQ PUSH2 0x33F JUMPI DUP1 PUSH4 0x15DAE03E EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0x17D7DE7C EQ PUSH2 0x377 JUMPI DUP1 PUSH4 0x18442E63 EQ PUSH2 0x37F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x324 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x324 PUSH2 0x784 JUMP JUMPDEST PUSH1 0xB SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x32E JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x274C JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH1 0xA SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x38F PUSH2 0x814 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2732 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x89A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3AE PUSH2 0x8E1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x32E JUMP JUMPDEST PUSH2 0x3D1 PUSH2 0x3CC CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x911 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2818 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x3EC CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0xA26 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x3FF CALLDATASIZE PUSH1 0x4 PUSH2 0x26AC JUMP JUMPDEST PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x412 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0xD93 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x32E SWAP2 SWAP1 PUSH2 0x2760 JUMP JUMPDEST PUSH2 0x324 PUSH2 0xE1B JUMP JUMPDEST PUSH2 0x324 PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH1 0xD SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x461 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0xE59 JUMP JUMPDEST PUSH2 0x34C PUSH1 0x3 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0xFC6 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x49B CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x1013 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x1090 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x4B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x23B9 JUMP JUMPDEST PUSH2 0x10A2 JUMP JUMPDEST PUSH2 0x427 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x11A5 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x4E7 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x11E3 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x4FA CALLDATASIZE PUSH1 0x4 PUSH2 0x259A JUMP JUMPDEST POP PUSH1 0x1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x324 PUSH2 0x510 CALLDATASIZE PUSH1 0x4 PUSH2 0x26AC JUMP JUMPDEST PUSH2 0x1263 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x523 CALLDATASIZE PUSH1 0x4 PUSH2 0x2398 JUMP JUMPDEST PUSH2 0x13D7 JUMP JUMPDEST PUSH2 0x34C PUSH2 0x146E JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x53E CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x1480 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x34C JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x15ED JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x56A CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x15F5 JUMP JUMPDEST PUSH1 0xE SLOAD PUSH2 0x324 JUMP JUMPDEST PUSH2 0x324 PUSH2 0x1762 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x17A0 JUMP JUMPDEST PUSH2 0x324 PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5A6 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x17ED JUMP JUMPDEST PUSH2 0x324 PUSH2 0x1871 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5C1 CALLDATASIZE PUSH1 0x4 PUSH2 0x2380 JUMP JUMPDEST PUSH2 0x18AF JUMP JUMPDEST PUSH2 0x324 PUSH2 0x18F9 JUMP JUMPDEST PUSH2 0x3AE PUSH2 0x1936 JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH2 0x324 JUMP JUMPDEST PUSH2 0x3A4 PUSH2 0x5F2 CALLDATASIZE PUSH1 0x4 PUSH2 0x2341 JUMP JUMPDEST PUSH2 0x193F JUMP JUMPDEST PUSH1 0xC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x34C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x614 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x659 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x66D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x691 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST DUP4 LT PUSH2 0x6F8 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030373A4143544956455F42554E444C455F494E4445 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x585F544F4F5F4C41524745 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3B20CEC3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xEC833B0C SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x743 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x77B SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x790 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1E010439 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x1E010439 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x7D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x7EA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x80E SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD PUSH4 0x5E966E45 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x5E966E45 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x85D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x871 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x895 SWAP2 SWAP1 PUSH2 0x23FC JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x8AF PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x8DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 JUMPDEST PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x90B JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST EQ SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x919 PUSH2 0x2197 JUMP JUMPDEST PUSH1 0xA SLOAD DUP3 LT PUSH2 0x976 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030363A42554E444C455F494E4445585F544F4F5F4C PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x41524745 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x999 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x9EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x9FE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x77B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA6F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA83 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xAAB SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xAE8 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB14 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB38 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xB62 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62D8A69 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x316C5348 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBBD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC24 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC4C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xC89 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xCB5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCD9 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xD03 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1B0A9F9D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x36153F3A SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD65 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDA3 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xDD3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0xDDD DUP3 DUP3 PUSH2 0x1A40 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xD910A5091EEA39C3EFEED9891A9E2B4694BD064808F5B0A4DE415D70B313EC52 SWAP2 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE27 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x52133533 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xA4266A66 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xEB6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xEDE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0xF1B SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xF47 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xF6B SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0xF95 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x587E59D PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x587E59D0 SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH2 0xFDB PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x100B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH2 0x8DF PUSH2 0x1AC2 JUMP JUMPDEST PUSH2 0x101B PUSH2 0x1B43 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1026 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x424FFA9 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2127FD48 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1074 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1088 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1098 PUSH2 0x1B43 JUMP JUMPDEST PUSH2 0x8DF PUSH1 0x0 PUSH2 0x1B9D JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x57F079D PUSH1 0xE2 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x15FC1E74 SWAP1 PUSH2 0x10DB SWAP1 DUP5 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x26FE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x10F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1109 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x112D SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST PUSH1 0xA DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0xC65A7BB8D6351C1CF70C95A316CC6A92839C986682D98BC35F958F4883F9D2A8 ADD DUP2 SWAP1 SSTORE PUSH1 0x40 DUP1 MLOAD DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP7 SWAP1 MSTORE SWAP2 SWAP4 POP PUSH32 0xD17D9DC3726BA31D9AF5D3A3425289766158A8EA95520E1C299CCBE4A2978B34 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x11B1 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1F6CCA11 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7DB32844 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x11F3 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1223 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0x122D DUP3 DUP3 PUSH2 0x1BED JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0xEE37957C2D37326FA4E3897FC3947BBDBD8E1082639A302C1C206B4D1C5E695 SWAP2 ADD PUSH2 0xE0F JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 SWAP2 DUP4 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x12AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x12C0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x12E8 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1325 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x133D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1351 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1375 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x139F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x89002DA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x89002DA5 SWAP1 PUSH1 0x44 ADD PUSH2 0xD37 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13E9 PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1419 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH2 0x1423 DUP4 DUP4 PUSH2 0x1C3C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP6 SWAP1 MSTORE DUP3 ISZERO ISZERO DUP2 DUP4 ADD MSTORE SWAP1 MLOAD SWAP2 SWAP3 POP PUSH32 0x9D0F25E972AD53428B0A94CD615FA731919562FA34769DF0F9C3EED71B0BD81E SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x895 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x14C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x14DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1505 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x1542 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x155A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x156E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1592 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x15BC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x46241F2D PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x8C483E5A SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x8E6 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE DUP3 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x163E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1652 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x167A SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST PUSH1 0x9 SLOAD PUSH1 0x40 DUP1 DUP4 ADD MLOAD SWAP1 MLOAD PUSH4 0x31A9108F PUSH1 0xE1 SHL DUP2 MSTORE SWAP3 SWAP4 POP PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x6352211E SWAP2 PUSH2 0x16B7 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x16CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x16E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1707 SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP1 POP CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ PUSH2 0x1731 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27AA JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0xA17030D5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0xA17030D5 SWAP1 PUSH1 0x24 ADD PUSH2 0xB8F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x176E PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3F5D9235 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x3F5D9235 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x17B5 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x17E5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH2 0x8DF PUSH2 0x203F JUMP JUMPDEST PUSH2 0x17FD PUSH4 0x141BDBDB PUSH1 0xE2 SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x182D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x27E1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1838 DUP3 PUSH2 0x2127 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH32 0x22BF66455B4BF54C9548E2BB650543CFA753A53CAB13AF4020DDBFA76C231B0F SWAP2 ADD PUSH2 0xE0F JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x187D PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0xBCD5349F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBCD5349F SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH2 0x18C4 PUSH9 0x10DBDB5C1BDB995B9D PUSH1 0xBA SHL PUSH2 0x19B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x18F4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6EF SWAP1 PUSH2 0x2773 JUMP JUMPDEST PUSH1 0x2 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1905 PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH3 0x52AC13 PUSH1 0xE7 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x29560980 SWAP1 PUSH1 0x24 ADD PUSH2 0x7BE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH2 0x8E6 JUMP JUMPDEST PUSH2 0x1947 PUSH2 0x1B43 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x19AC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH2 0x19B5 DUP2 PUSH2 0x1B9D JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x3 SLOAD PUSH1 0x40 MLOAD PUSH4 0x1C2D8FB3 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH2 0x100 SWAP1 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xE16C7D98 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1A02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1A16 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1A3A SWAP2 SWAP1 PUSH2 0x2364 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5B933A1 PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB7267420 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1AA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1AB9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0xB SLOAD PUSH1 0xC SLOAD PUSH1 0xD SLOAD PUSH1 0xE SLOAD PUSH1 0x40 MLOAD PUSH4 0x5F971AA3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP5 DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 DUP5 AND PUSH1 0x24 DUP5 ADD MSTORE PUSH1 0x44 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x64 DUP3 ADD MSTORE SWAP2 AND SWAP1 PUSH4 0xBF2E3546 SWAP1 PUSH1 0x84 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1B3D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x8DF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x594CE613 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xB299CC26 SWAP1 PUSH1 0x64 ADD PUSH2 0x1A8B JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1C47 PUSH2 0xE1B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C53 PUSH2 0x18F9 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C5F PUSH2 0x1762 JUMP JUMPDEST PUSH1 0x11 SLOAD PUSH1 0x40 DUP1 MLOAD DUP7 DUP2 MSTORE PUSH4 0xFFFFFFFF SWAP1 SWAP3 AND PUSH1 0x20 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x7296D1A54B2D02C3A2F8F0B83B688D6B8415618F2AB8C3D5F761DD678DCC4B29 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 DUP4 GT PUSH2 0x1CF4 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030313A4E4F5F4143544956455F42554E444C455300 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST DUP1 DUP3 GT PUSH2 0x1D43 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A4252502D3030323A4E4F5F465245455F4341504954414C000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH2 0x1D4D DUP6 DUP3 PUSH2 0x2908 JUMP JUMPDEST DUP3 LT PUSH2 0x2036 JUMPI PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2F141BD9 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBC506F64 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D98 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1DAC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1DD4 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x241B JUMP JUMPDEST PUSH1 0x11 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x1DEE SWAP1 DUP7 SWAP1 PUSH4 0xFFFFFFFF AND PUSH2 0x29A2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP6 DUP2 LT DUP1 ISZERO PUSH2 0x1E00 JUMPI POP DUP7 ISZERO JUMPDEST ISZERO PUSH2 0x2032 JUMPI PUSH1 0x0 PUSH2 0x1E10 DUP4 PUSH2 0x608 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x2D0821B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x2D0821B7 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1E5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1E6E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1E96 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x24C6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x40 DUP1 MLOAD DUP6 DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE SWAP2 SWAP3 POP PUSH32 0x4FB0F8B19E3CE187A133519BFF1FCBDF3DFBC1B55F8BC334A3DA5BCADBEEA2A7 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 ISZERO PUSH2 0x201C JUMPI PUSH1 0x0 DUP3 PUSH1 0xC0 ADD MLOAD DUP4 PUSH1 0xA0 ADD MLOAD PUSH2 0x1EF5 SWAP2 SWAP1 PUSH2 0x2920 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP9 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP8 SWAP1 MSTORE SWAP1 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP15 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xE54EF564BEE7E49A6E78296E638947532DE075D47CD66E331104B4812756F119 SWAP1 PUSH1 0x80 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP12 DUP2 LT PUSH2 0x2001 JUMPI PUSH1 0x8 SLOAD PUSH1 0x40 MLOAD PUSH4 0x4D03F9B7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP16 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP15 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4D03F9B7 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1F9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1FAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP PUSH1 0x0 DUP15 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP7 SWAP1 SSTORE PUSH1 0x11 DUP1 SLOAD PUSH1 0x1 SWAP15 POP PUSH4 0xFFFFFFFF AND SWAP3 POP SWAP1 PUSH2 0x1FDD DUP4 PUSH2 0x297E JUMP JUMPDEST SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH4 0xFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH4 0xFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x201A JUMP JUMPDEST DUP10 PUSH2 0x200D DUP8 PUSH1 0x1 PUSH2 0x2908 JUMP JUMPDEST PUSH2 0x2017 SWAP2 SWAP1 PUSH2 0x29A2 JUMP JUMPDEST SWAP6 POP JUMPDEST POP JUMPDEST POP POP POP DUP1 DUP1 PUSH2 0x202A SWAP1 PUSH2 0x2963 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1DF3 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x204A PUSH1 0x2 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x7 SLOAD PUSH1 0x40 MLOAD PUSH4 0x62ACBC1F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xC559783E SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x208F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20A3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x20C7 SWAP2 SWAP1 PUSH2 0x2694 JUMP JUMPDEST ISZERO PUSH2 0x19B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3031303A5249534B504F4F4C5F4841535F554E425552 PUSH1 0x44 DUP3 ADD MSTORE PUSH10 0x4E545F42554E444C4553 PUSH1 0xB0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x6EF JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x10 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD PUSH1 0x8 SLOAD SWAP2 MLOAD PUSH4 0x5DAA06FB PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE SWAP1 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0xBB540DF6 SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2183 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x757 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x140 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x21D9 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2219 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x222C PUSH2 0x2227 DUP3 PUSH2 0x28E0 JUMP JUMPDEST PUSH2 0x28AF JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x2240 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x226A JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x2278 PUSH2 0x2227 DUP3 PUSH2 0x28E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x228C JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x229D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2937 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x77F DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 MLOAD PUSH2 0x77F DUP2 PUSH2 0x2A19 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22CC JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x22D6 PUSH1 0xC0 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP2 CALLDATALOAD PUSH2 0x22E3 DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2321 DUP5 DUP3 DUP6 ADD PUSH2 0x2209 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2352 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x235D DUP2 PUSH2 0x2A04 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2375 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x235D DUP2 PUSH2 0x2A04 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2391 JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23AA JUMPI DUP1 DUP2 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23CB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x23E1 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x23ED DUP6 DUP3 DUP7 ADD PUSH2 0x2209 JUMP JUMPDEST SWAP6 PUSH1 0x20 SWAP5 SWAP1 SWAP5 ADD CALLDATALOAD SWAP5 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x240D JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x7 DUP2 LT PUSH2 0x235D JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x242C JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x2443 JUMPI DUP3 DUP4 REVERT JUMPDEST SWAP1 DUP4 ADD SWAP1 PUSH1 0xC0 DUP3 DUP7 SUB SLT ISZERO PUSH2 0x2456 JUMPI DUP3 DUP4 REVERT JUMPDEST PUSH2 0x2460 PUSH1 0xC0 PUSH2 0x28AF JUMP JUMPDEST DUP3 MLOAD PUSH2 0x246B DUP2 PUSH2 0x2A19 JUMP JUMPDEST DUP1 DUP3 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2494 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x24A0 DUP8 DUP3 DUP7 ADD PUSH2 0x225A JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xA0 DUP4 ADD MLOAD PUSH1 0xA0 DUP3 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24D7 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x24EE JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x2504 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x250D DUP2 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2533 PUSH1 0x60 DUP5 ADD PUSH2 0x22B0 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD DUP3 DUP2 GT ISZERO PUSH2 0x2549 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x2555 DUP8 DUP3 DUP7 ADD PUSH2 0x225A JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xC0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x120 SWAP3 DUP4 ADD MLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25AC JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x25C3 JUMPI DUP4 DUP5 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP PUSH2 0x140 DUP1 DUP4 DUP9 SUB SLT ISZERO PUSH2 0x25D9 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x25E2 DUP2 PUSH2 0x28AF JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP4 ADD CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x2608 PUSH1 0x60 DUP5 ADD PUSH2 0x22A5 JUMP JUMPDEST PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x261E JUMPI DUP6 DUP7 REVERT JUMPDEST PUSH2 0x262A DUP9 DUP3 DUP7 ADD PUSH2 0x2209 JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP4 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP4 ADD CALLDATALOAD PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0xE0 DUP4 ADD CALLDATALOAD PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP PUSH2 0x120 DUP1 DUP5 ADD CALLDATALOAD DUP2 DUP4 ADD MSTORE POP DUP1 SWAP5 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0x267D JUMPI DUP3 DUP4 REVERT JUMPDEST POP PUSH2 0x268A DUP6 DUP3 DUP7 ADD PUSH2 0x22BB JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x26A5 JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x23AA JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x26D6 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x2937 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x26FA JUMPI PUSH2 0x26FA PUSH2 0x29D8 JUMP JUMPDEST SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x2722 SWAP1 DUP4 ADD DUP6 PUSH2 0x26BE JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x7 DUP4 LT PUSH2 0x2746 JUMPI PUSH2 0x2746 PUSH2 0x29D8 JUMP JUMPDEST SWAP2 SWAP1 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP2 ADD PUSH1 0x3 DUP4 LT PUSH2 0x2746 JUMPI PUSH2 0x2746 PUSH2 0x29D8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x235D PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x26BE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A434D502D3030323A4E4F545F434F4D504F4E454E540000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A4255432D3030313A4E4F545F42554E444C455F4F574E45520000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x1B SWAP1 DUP3 ADD MSTORE PUSH32 0x4552524F523A52504C2D3030313A4143434553535F44454E4945440000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x284B PUSH1 0x80 DUP5 ADD DUP3 PUSH2 0x26EA JUMP JUMPDEST POP PUSH1 0x80 DUP4 ADD MLOAD PUSH2 0x140 DUP1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH2 0x2868 PUSH2 0x160 DUP6 ADD DUP4 PUSH2 0x26BE JUMP JUMPDEST SWAP2 POP PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xE0 DUP6 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH2 0x100 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD SWAP2 POP POP PUSH2 0x120 DUP2 DUP2 DUP8 ADD MSTORE DUP1 DUP8 ADD MLOAD DUP4 DUP8 ADD MSTORE POP POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x28D8 JUMPI PUSH2 0x28D8 PUSH2 0x29EE JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x28FA JUMPI PUSH2 0x28FA PUSH2 0x29EE JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x291B JUMPI PUSH2 0x291B PUSH2 0x29C2 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x2932 JUMPI PUSH2 0x2932 PUSH2 0x29C2 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2952 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x293A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x1B3D JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x2977 JUMPI PUSH2 0x2977 PUSH2 0x29C2 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP1 DUP4 AND DUP2 DUP2 EQ ISZERO PUSH2 0x2998 JUMPI PUSH2 0x2998 PUSH2 0x29C2 JUMP JUMPDEST PUSH1 0x1 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x29BD JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x19B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 DUP2 LT PUSH2 0x19B5 JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x27 CHAINID 0x5E 0xB2 SLOAD 0xF MLOAD SSTORE GT 0xBA 0xB3 SHR 0x2E SWAP8 JUMPDEST SWAP2 0x2C PUSH29 0xB02EE862DCA2D6D9395445502F7364736F6C6343000802003300000000 ","sourceMap":"272:702:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7157:320:19;;;;;;:::i;:::-;;:::i;:::-;;;9967:25:103;;;9955:2;9940:18;7157:320:19;;;;;;;;8164:164;;;:::i;5982:92::-;6059:7;;-1:-1:-1;;;;;6059:7:19;5982:92;;;-1:-1:-1;;;;;8743:32:103;;;8725:51;;8713:2;8698:18;5982:92:19;8680:102:103;2394:100:12;2477:14;;;;2394:100;;;;;;:::i;2220:83::-;2286:14;;2220:83;;6585:100:19;6660:10;:17;6585:100;;2500:136:12;;;:::i;:::-;;;;;;;:::i;3279:78::-;;;:::i;:::-;;2973:120;;;:::i;:::-;;;9794:14:103;;9787:22;9769:41;;9757:2;9742:18;2973:120:12;9724:92:103;6693:278:19;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3875:165::-;;;;;;:::i;:::-;;:::i;3461:237::-;;;;;;:::i;:::-;;:::i;4942:230::-;;;;;;:::i;:::-;;:::i;7485:135::-;7583:29;;;;;;;;;-1:-1:-1;7583:29:19;;7485:135;;;;;;;:::i;6979:170::-;;;:::i;580:61::-;;635:6;580:61;;6457:120;6551:18;;6457:120;;4219:161;;;;;;:::i;:::-;;:::i;3101:86:12:-;;3175:9;;;;;-1:-1:-1;;;;;3175:9:12;;3101:86;2309:79;2373:12;;2309:79;;3195:78;;;:::i;5430:278:19:-;;;;;;:::i;:::-;;:::i;1831:101:41:-;;;:::i;2828:383:19:-;;;;;;:::i;:::-;;:::i;648:57::-;;;;;;;;;;;;;;;;5716:258;;;:::i;4707:227::-;;;;;;:::i;:::-;;:::i;723:246:99:-;;;;;;:::i;:::-;-1:-1:-1;957:4:99;;723:246;-1:-1:-1;723:246:99;3219:234:19;;;;;;:::i;:::-;;:::i;4388:311::-;;;;;;:::i;:::-;;:::i;2642:77:12:-;;;:::i;4048:163:19:-;;;;;;:::i;:::-;;:::i;1201:85:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;1201:85;;2851:116:12;;;:::i;3706:161:19:-;;;;;;:::i;:::-;;:::i;6190:117::-;6280:19;;6190:117;;7800:182;;;:::i;3772:77:12:-;;;:::i;320:55:99:-;;369:6;320:55;;5180:242:19;;;;;;:::i;:::-;;:::i;7990:166::-;;;:::i;2131:81:12:-;;;;;;:::i;:::-;;:::i;7628:164:19:-;;;:::i;2727:118:12:-;;;:::i;6315:134:19:-;635:6;6315:134;;2081:198:41;;;;;;:::i;:::-;;:::i;6082:100:19:-;6163:11;;-1:-1:-1;;;;;6163:11:19;6082:100;;7157:320;7226:16;7255:18;7276:7;2373:12:12;;2309:79;;7276:7:19;7308:16;;:42;;-1:-1:-1;;;7308:42:19;;;;;9967:25:103;;;7255:28:19;;-1:-1:-1;;;;;;7308:16:19;;:30;;9940:18:103;;7308:42:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7302:3;:48;7294:104;;;;-1:-1:-1;;;7294:104:19;;13279:2:103;7294:104:19;;;13261:21:103;13318:2;13298:18;;;13291:30;13357:34;13337:18;;;13330:62;-1:-1:-1;;;13408:18:103;;;13401:41;13459:19;;7294:104:19;;;;;;;;;7418:16;;:51;;-1:-1:-1;;;7418:51:19;;;;;10177:25:103;;;10218:18;;;10211:34;;;-1:-1:-1;;;;;7418:16:19;;;;:34;;10150:18:103;;7418:51:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7411:58;;;7157:320;;;;:::o;8164:164::-;8215:7;8235:18;8256:7;2373:12:12;;2309:79;;8256:7:19;8281:16;;:39;;-1:-1:-1;;;8281:39:19;;;;;9967:25:103;;;8235:28:19;;-1:-1:-1;;;;;;8281:16:19;;:27;;9940:18:103;;8281:39:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8274:46;;;8164:164;:::o;2500:136:12:-;2585:16;;2620:12;;2585:48;;-1:-1:-1;;;2585:48:12;;;;;9967:25:103;;;;2549::12;;-1:-1:-1;;;;;2585:16:12;;:34;;9940:18:103;;2585:48:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2578:55;;2500:136;:::o;3279:78::-;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3279:78::o;2973:120::-;3024:4;3057:33;3039:51;:14;;;;:51;;;;;;-1:-1:-1;;;3039:51:12;;;;;;;;;;3032:58;;2973:120;:::o;6693:278:19:-;6754:21;;:::i;:::-;6802:10;:17;6796:23;;6788:72;;;;-1:-1:-1;;;6788:72:19;;12514:2:103;6788:72:19;;;12496:21:103;12553:2;12533:18;;;12526:30;12592:34;12572:18;;;12565:62;-1:-1:-1;;;12643:18:103;;;12636:34;12687:19;;6788:72:19;12486:226:103;6788:72:19;6873:17;6893:10;6904:3;6893:15;;;;;;-1:-1:-1;;;6893:15:19;;;;;;;;;;;;;;;;;;;6926:16;;:37;;-1:-1:-1;;;6926:37:19;;;;;9967:25:103;;;6893:15:19;;-1:-1:-1;;;;;;6926:16:19;;:26;;9940:18:103;;6926:37:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6926:37:19;;;;;;;;;;;;:::i;3875:165::-;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;3967:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3993:16:::1;::::0;:39:::1;::::0;-1:-1:-1;;;3993:39:19;;::::1;::::0;::::1;9967:25:103::0;;;-1:-1:-1;;;;;3993:16:19;;::::1;::::0;:29:::1;::::0;9940:18:103;;3993:39:19::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3875:165:::0;;;;:::o;3461:237::-;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;3596:17:19;;3569:8;;3596:17;;-1:-1:-1;;;;;1413:16:19;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3643:16:::1;::::0;:47:::1;::::0;-1:-1:-1;;;3643:47:19;;::::1;::::0;::::1;10177:25:103::0;;;10218:18;;;10211:34;;;-1:-1:-1;;;;;3643:16:19;;::::1;::::0;:29:::1;::::0;10150:18:103;;3643:47:19::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3631:59:::0;3461:237;-1:-1:-1;;;;;;3461:237:19:o;4942:230::-;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;5068:34:::1;5084:9;5095:6;5068:15;:34::i;:::-;5118:46;::::0;;10177:25:103;;;10233:2;10218:18;;10211:34;;;5118:46:19::1;::::0;10150:18:103;5118:46:19::1;;;;;;;;4942:230:::0;;:::o;6979:170::-;7033:7;7053:18;7074:7;2373:12:12;;2309:79;;7074:7:19;7099:16;;:42;;-1:-1:-1;;;7099:42:19;;;;;9967:25:103;;;7053:28:19;;-1:-1:-1;;;;;;7099:16:19;;:30;;9940:18:103;;7099:42:19;9922:76:103;4219:161:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;4309:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;4335:16:::1;::::0;:37:::1;::::0;-1:-1:-1;;;4335:37:19;;::::1;::::0;::::1;9967:25:103::0;;;-1:-1:-1;;;;;4335:16:19;;::::1;::::0;:27:::1;::::0;9940:18:103;;4335:37:19::1;9922:76:103::0;3195:78:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3255:15:::1;:13;:15::i;5430:278:19:-:0;1094:13:41;:11;:13::i;:::-;5571:18:19::1;5592:7;2373:12:12::0;;2309:79;;5592:7:19::1;5610:16;::::0;:90:::1;::::0;-1:-1:-1;;;5610:90:19;;::::1;::::0;::::1;10177:25:103::0;;;10218:18;;;10211:34;;;5571:28:19;;-1:-1:-1;;;;;;5610:16:19::1;::::0;:48:::1;::::0;10150:18:103;;5610:90:19::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1117:1:41;5430:278:19::0;:::o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;2828:383:19:-:0;2945:16;;719:10:59;3035:16:19;;:65;;-1:-1:-1;;;3035:65:19;;2979:34;;-1:-1:-1;;;;;;3035:16:19;;:29;;:65;;2979:34;;3078:6;;3086:13;;3035:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3111:10;:25;;;;;;;-1:-1:-1;3111:25:19;;;;;;;;;3154:49;;;10177:25:103;;;10233:2;10218:18;;10211:34;;;3111:25:19;;-1:-1:-1;3154:49:19;;10150:18:103;3154:49:19;;;;;;;2828:383;;;;;:::o;5716:258::-;5806:36;5860:18;5881:7;2373:12:12;;2309:79;;5881:7:19;5906:16;;:60;;-1:-1:-1;;;5906:60:19;;;;;9967:25:103;;;5860:28:19;;-1:-1:-1;;;;;;5906:16:19;;:48;;9940:18:103;;5906:60:19;9922:76:103;4707:227:19;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;4832:33:::1;4847:9;4858:6;4832:14;:33::i;:::-;4881:45;::::0;;10177:25:103;;;10233:2;10218:18;;10211:34;;;4881:45:19::1;::::0;10150:18:103;4881:45:19::1;10132:119:103::0;3219:234:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;3353:17:19;;3326:8;;3353:17;;-1:-1:-1;;;;;1413:16:19;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3400:16:::1;::::0;:45:::1;::::0;-1:-1:-1;;;3400:45:19;;::::1;::::0;::::1;10177:25:103::0;;;10218:18;;;10211:34;;;-1:-1:-1;;;;;3400:16:19;;::::1;::::0;:27:::1;::::0;10150:18:103;;3400:45:19::1;10132:119:103::0;4388:311:19;4525:12;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;4566:44:::1;4582:9;4593:16;4566:15;:44::i;:::-;4626:65;::::0;;10452:25:103;;;10508:2;10493:18;;10486:34;;;10563:14;;10556:22;10536:18;;;10529:50;4626:65:19;;10563:14:103;;-1:-1:-1;4626:65:19::1;::::0;;;;;10440:2:103;4626:65:19;;::::1;4388:311:::0;;;;:::o;2642:77:12:-;2691:7;1273:6:41;;-1:-1:-1;;;;;1273:6:41;2709:7:12;1201:85:41;4048:163:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;4139:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;4165:16:::1;::::0;:38:::1;::::0;-1:-1:-1;;;4165:38:19;;::::1;::::0;::::1;9967:25:103::0;;;-1:-1:-1;;;;;4165:16:19;;::::1;::::0;:28:::1;::::0;9940:18:103;;4165:38:19::1;9922:76:103::0;2851:116:12;2900:4;;2915:49;;3706:161:19;1413:16;;:36;;-1:-1:-1;;;1413:36:19;;;;;9967:25:103;;;3796:8:19;;1382:28;;-1:-1:-1;;;;;1413:16:19;;;;:26;;9940:18:103;;1413:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:36:19;;;;;;;;;;;;:::i;:::-;1482:12;;1503:14;;;;;1482:36;;-1:-1:-1;;;1482:36:19;;1382:67;;-1:-1:-1;1460:19:19;;-1:-1:-1;;;;;1482:12:19;;;;:20;;:36;;;;9967:25:103;;;9955:2;9940:18;;9922:76;1482:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1460:58;-1:-1:-1;719:10:59;-1:-1:-1;;;;;1553:27:19;;;1531:107;;;;-1:-1:-1;;;1531:107:19;;;;;;;:::i;:::-;3822:16:::1;::::0;:37:::1;::::0;-1:-1:-1;;;3822:37:19;;::::1;::::0;::::1;9967:25:103::0;;;-1:-1:-1;;;;;3822:16:19;;::::1;::::0;:27:::1;::::0;9940:18:103;;3822:37:19::1;9922:76:103::0;7800:182:19;7860:7;7880:18;7901:7;2373:12:12;;2309:79;;7901:7:19;7926:16;;:48;;-1:-1:-1;;;7926:48:19;;;;;9967:25:103;;;7880:28:19;;-1:-1:-1;;;;;;7926:16:19;;:36;;9940:18:103;;7926:48:19;9922:76:103;3772:77:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;3831:15:::1;:13;:15::i;5180:242:19:-:0;1218:27;-1:-1:-1;;;1218:19:19;:27::i;:::-;-1:-1:-1;;;;;1202:43:19;719:10:59;-1:-1:-1;;;;;1202:43:19;;1180:120;;;;-1:-1:-1;;;1180:120:19;;;;;;;:::i;:::-;5284:24:::1;5311:29;5330:9;5311:18;:29::i;:::-;5356:58;::::0;;10177:25:103;;;10233:2;10218:18;;10211:34;;;5284:56:19;;-1:-1:-1;5356:58:19::1;::::0;10150:18:103;5356:58:19::1;10132:119:103::0;7990:166:19;8042:7;8062:18;8083:7;2373:12:12;;2309:79;;8083:7:19;8108:16;;:40;;-1:-1:-1;;;8108:40:19;;;;;9967:25:103;;;8062:28:19;;-1:-1:-1;;;;;;8108:16:19;;:28;;9940:18:103;;8108:40:19;9922:76:103;2131:81:12;1156:32;-1:-1:-1;;;1156:19:12;:32::i;:::-;-1:-1:-1;;;;;1140:48:12;719:10:59;-1:-1:-1;;;;;1140:48:12;;1117:116;;;;-1:-1:-1;;;1117:116:12;;;;;;;:::i;:::-;2192:12:::1;:17:::0;2131:81::o;7628:164:19:-;7679:7;7699:18;7720:7;2373:12:12;;2309:79;;7720:7:19;7745:16;;:39;;-1:-1:-1;;;7745:39:19;;;;;9967:25:103;;;7699:28:19;;-1:-1:-1;;;;;;7745:16:19;;:27;;9940:18:103;;7745:39:19;9922:76:103;2727:118:12;2777:4;2810:32;2792:50;;2081:198:41;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;12107:2:103;2161:73:41::1;::::0;::::1;12089:21:103::0;12146:2;12126:18;;;12119:30;12185:34;12165:18;;;12158:62;-1:-1:-1;;;12236:18:103;;;12229:36;12282:19;;2161:73:41::1;12079:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;4875:145:12:-;4977:9;;:35;;-1:-1:-1;;;4977:35:12;;;;;9967:25:103;;;4949:7:12;;4977:9;;;-1:-1:-1;;;;;4977:9:12;;:21;;9940:18:103;;4977:35:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4970:42;4875:145;-1:-1:-1;;4875:145:12:o;4177:229:11:-;4280:16;4299:28;;;:17;:28;;;;;;;;4338:16;;:60;;-1:-1:-1;;;4338:60:11;;;;;17319:25:103;;;17360:18;;;17353:34;;;17403:18;;;17396:34;;;4299:28:11;;-1:-1:-1;;;;;4338:16:11;;:31;;17292:18:103;;4338:60:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4177:229;;;:::o;2590:230:19:-;2652:16;;2700:7;;2722:11;;2749:18;;2782:19;;2652:160;;-1:-1:-1;;;2652:160:19;;-1:-1:-1;;;;;2700:7:19;;;2652:160;;;9056:34:103;2722:11:19;;;9106:18:103;;;9099:43;9158:18;;;9151:34;;;;9201:18;;;9194:34;2652:16:19;;;:33;;8990:19:103;;2652:160:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2590:230::o;1359:130:41:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;14049:2:103;1414:68:41;;;14031:21:103;;;14068:18;;;14061:30;14127:34;14107:18;;;14100:62;14179:18;;1414:68:41;14021:182:103;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2433:187;;:::o;3942:227:11:-;4044:16;4063:28;;;:17;:28;;;;;;;;4102:16;;:59;;-1:-1:-1;;;4102:59:11;;;;;17319:25:103;;;17360:18;;;17353:34;;;17403:18;;;17396:34;;;4063:28:11;;-1:-1:-1;;;;;4102:16:11;;:30;;17292:18:103;;4102:59:11;17274:162:103;1533:2401:11;1648:12;1679:21;1703:15;:13;:15::i;:::-;1679:39;;1729:15;1747:12;:10;:12::i;:::-;1729:30;;1770:21;1794;:19;:21::i;:::-;1883:16;;1833:67;;;18263:25:103;;;1883:16:11;;;;18319:2:103;18304:18;;18297:51;1770:45:11;;-1:-1:-1;1833:67:11;;18236:18:103;1833:67:11;;;;;;;1935:1;1919:13;:17;1911:61;;;;-1:-1:-1;;;1911:61:11;;12919:2:103;1911:61:11;;;12901:21:103;12958:2;12938:18;;;12931:30;12997:33;12977:18;;;12970:61;13048:18;;1911:61:11;12891:181:103;1911:61:11;2001:13;1991:7;:23;1983:65;;;;-1:-1:-1;;;1983:65:11;;13691:2:103;1983:65:11;;;13673:21:103;13730:2;13710:18;;;13703:30;13769:31;13749:18;;;13742:59;13818:18;;1983:65:11;13663:179:103;1983:65:11;2135:32;2151:16;2135:13;:32;:::i;:::-;2124:7;:43;2121:1806;;2225:16;;:42;;-1:-1:-1;;;2225:42:11;;;;;9967:25:103;;;2184:38:11;;-1:-1:-1;;;;;2225:16:11;;:31;;9940:18:103;;2225:42:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2225:42:11;;;;;;;;;;;;:::i;:::-;2374:16;;2184:83;;-1:-1:-1;2363:8:11;;2374:32;;2393:13;;2374:16;;:32;:::i;:::-;2363:43;;2870:9;2865:1051;2889:13;2885:1;:17;:29;;;;;2907:7;2906:8;2885:29;2865:1051;;;2940:16;2959:22;2977:3;2959:17;:22::i;:::-;3031:16;;:36;;-1:-1:-1;;;3031:36:11;;;;;9967:25:103;;;2940:41:11;;-1:-1:-1;3000:28:11;;-1:-1:-1;;;;;3031:16:11;;;;:26;;9940:18:103;;3031:36:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3031:36:11;;;;;;;;;;;;:::i;:::-;3000:67;-1:-1:-1;3086:15:11;957:4:99;3173:52:11;;;16769:25:103;;;16837:14;;16830:22;16825:2;16810:18;;16803:50;3086:63:11;;-1:-1:-1;3173:52:11;;16742:18:103;3173:52:11;;;;;;;3250:10;3246:655;;;3285:17;3322:6;:20;;;3305:6;:14;;;:37;;;;:::i;:::-;3370:86;;;17925:25:103;;;17981:2;17966:18;;17959:34;;;18009:18;;;18002:34;;;18067:2;18052:18;;18045:34;;;3285:57:11;;-1:-1:-1;3370:86:11;;17912:3:103;17897:19;3370:86:11;;;;;;;3498:16;3485:9;:29;3481:401;;3543:16;;:75;;-1:-1:-1;;;3543:75:11;;;;;17319:25:103;;;17360:18;;;17353:34;;;17403:18;;;17396:34;;;-1:-1:-1;;;;;3543:16:11;;;;:36;;17292:18:103;;3543:75:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3645:28:11;;;;:17;:28;;;;;:39;;;3752:16;:18;;3721:4;;-1:-1:-1;3752:18:11;;;-1:-1:-1;3752:16:11;:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3481:401;;;3845:13;3834:7;:3;3840:1;3834:7;:::i;:::-;3833:25;;;;:::i;:::-;3827:31;;3481:401;3246:655;;2865:1051;;;2916:3;;;;;:::i;:::-;;;;2865:1051;;;;2121:1806;;;1533:2401;;;;;;;:::o;8528:252:19:-;8588:18;8609:7;2373:12:12;;2309:79;;8609:7:19;8649:16;;:43;;-1:-1:-1;;;8649:43:19;;;;;9967:25:103;;;8588:28:19;;-1:-1:-1;;;;;;8649:16:19;;:31;;9940:18:103;;8649:43:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;8627:145;;;;-1:-1:-1;;;8627:145:19;;14410:2:103;8627:145:19;;;14392:21:103;14449:2;14429:18;;;14422:30;14488:34;14468:18;;;14461:62;-1:-1:-1;;;14539:18:103;;;14532:40;14589:19;;8627:145:19;14382:232:103;4414:279:11;4506:24;4576:28;;;:17;:28;;;;;;;4634:16;;:51;;-1:-1:-1;;;4634:51:11;;;;;10177:25:103;;;10218:18;;;10211:34;;;4576:28:11;;-1:-1:-1;;;;;4634:16:11;;:30;;10150:18:103;;4634:51:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:482:103:-;;109:3;102:4;94:6;90:17;86:27;76:2;;131:5;124;117:20;76:2;171:6;158:20;202:48;218:31;246:2;218:31;:::i;:::-;202:48;:::i;:::-;275:2;266:7;259:19;321:3;314:4;309:2;301:6;297:15;293:26;290:35;287:2;;;342:5;335;328:20;287:2;411;404:4;396:6;392:17;385:4;376:7;372:18;359:55;434:16;;;452:4;430:27;423:42;;;;438:7;66:430;-1:-1:-1;;66:430:103:o;501:444::-;;607:3;600:4;592:6;588:17;584:27;574:2;;629:5;622;615:20;574:2;662:6;656:13;693:48;709:31;737:2;709:31;:::i;693:48::-;766:2;757:7;750:19;812:3;805:4;800:2;792:6;788:15;784:26;781:35;778:2;;;833:5;826;819:20;778:2;850:64;911:2;904:4;895:7;891:18;884:4;876:6;872:17;850:64;:::i;:::-;932:7;564:381;-1:-1:-1;;;;564:381:103:o;950:162::-;1032:20;;1061:45;1032:20;1061:45;:::i;1117:166::-;1210:13;;1232:45;1210:13;1232:45;:::i;1288:771::-;;1394:4;1382:9;1377:3;1373:19;1369:30;1366:2;;;1416:5;1409;1402:20;1366:2;1442:21;1458:4;1442:21;:::i;:::-;1433:30;;1500:9;1487:23;1519:47;1558:7;1519:47;:::i;:::-;1589:7;1582:5;1575:22;;1657:2;1646:9;1642:18;1629:32;1624:2;1617:5;1613:14;1606:56;1722:2;1711:9;1707:18;1694:32;1689:2;1682:5;1678:14;1671:56;1778:2;1767:9;1763:18;1750:32;1805:18;1797:6;1794:30;1791:2;;;1837:1;1834;1827:12;1791:2;1873:45;1914:3;1905:6;1894:9;1890:22;1873:45;:::i;:::-;1868:2;1861:5;1857:14;1850:69;;1980:3;1969:9;1965:19;1952:33;1946:3;1939:5;1935:15;1928:58;2047:3;2036:9;2032:19;2019:33;2013:3;2006:5;2002:15;1995:58;1356:703;;;;:::o;2064:257::-;;2176:2;2164:9;2155:7;2151:23;2147:32;2144:2;;;2197:6;2189;2182:22;2144:2;2241:9;2228:23;2260:31;2285:5;2260:31;:::i;:::-;2310:5;2134:187;-1:-1:-1;;;2134:187:103:o;2326:261::-;;2449:2;2437:9;2428:7;2424:23;2420:32;2417:2;;;2470:6;2462;2455:22;2417:2;2507:9;2501:16;2526:31;2551:5;2526:31;:::i;2592:190::-;;2704:2;2692:9;2683:7;2679:23;2675:32;2672:2;;;2725:6;2717;2710:22;2672:2;-1:-1:-1;2753:23:103;;2662:120;-1:-1:-1;2662:120:103:o;2787:258::-;;;2916:2;2904:9;2895:7;2891:23;2887:32;2884:2;;;2937:6;2929;2922:22;2884:2;-1:-1:-1;;2965:23:103;;;3035:2;3020:18;;;3007:32;;-1:-1:-1;2874:171:103:o;3050:408::-;;;3188:2;3176:9;3167:7;3163:23;3159:32;3156:2;;;3209:6;3201;3194:22;3156:2;3254:9;3241:23;3287:18;3279:6;3276:30;3273:2;;;3324:6;3316;3309:22;3273:2;3352:49;3393:7;3384:6;3373:9;3369:22;3352:49;:::i;:::-;3342:59;3448:2;3433:18;;;;3420:32;;-1:-1:-1;;;;3146:312:103:o;3463:299::-;;3605:2;3593:9;3584:7;3580:23;3576:32;3573:2;;;3626:6;3618;3611:22;3573:2;3663:9;3657:16;3702:1;3695:5;3692:12;3682:2;;3723:6;3715;3708:22;3767:1005;;3919:2;3907:9;3898:7;3894:23;3890:32;3887:2;;;3940:6;3932;3925:22;3887:2;3978:9;3972:16;4007:18;4048:2;4040:6;4037:14;4034:2;;;4069:6;4061;4054:22;4034:2;4097:22;;;;4153:4;4135:16;;;4131:27;4128:2;;;4176:6;4168;4161:22;4128:2;4207:21;4223:4;4207:21;:::i;:::-;4258:2;4252:9;4270:47;4309:7;4270:47;:::i;:::-;4340:7;4333:5;4326:22;;4394:2;4390;4386:11;4380:18;4375:2;4368:5;4364:14;4357:42;4445:2;4441;4437:11;4431:18;4426:2;4419:5;4415:14;4408:42;4489:2;4485;4481:11;4475:18;4518:2;4508:8;4505:16;4502:2;;;4539:6;4531;4524:22;4502:2;4580:55;4627:7;4616:8;4612:2;4608:17;4580:55;:::i;:::-;4575:2;4568:5;4564:14;4557:79;;4683:3;4679:2;4675:12;4669:19;4663:3;4656:5;4652:15;4645:44;4736:3;4732:2;4728:12;4722:19;4716:3;4709:5;4705:15;4698:44;4761:5;4751:15;;;;;3877:895;;;;:::o;4777:1224::-;;4924:2;4912:9;4903:7;4899:23;4895:32;4892:2;;;4945:6;4937;4930:22;4892:2;4983:9;4977:16;5012:18;5053:2;5045:6;5042:14;5039:2;;;5074:6;5066;5059:22;5039:2;5117:6;5106:9;5102:22;5092:32;;5143:6;5183:2;5178;5169:7;5165:16;5161:25;5158:2;;;5204:6;5196;5189:22;5158:2;5235:19;5251:2;5235:19;:::i;:::-;5222:32;;5283:2;5277:9;5270:5;5263:24;5333:2;5329;5325:11;5319:18;5314:2;5307:5;5303:14;5296:42;5384:2;5380;5376:11;5370:18;5365:2;5358:5;5354:14;5347:42;5421:56;5473:2;5469;5465:11;5421:56;:::i;:::-;5416:2;5409:5;5405:14;5398:80;5517:3;5513:2;5509:12;5503:19;5547:2;5537:8;5534:16;5531:2;;;5568:6;5560;5553:22;5531:2;5610:55;5657:7;5646:8;5642:2;5638:17;5610:55;:::i;:::-;5604:3;5593:15;;5586:80;-1:-1:-1;5713:3:103;5705:12;;;5699:19;5682:15;;;5675:44;5766:3;5758:12;;;5752:19;5735:15;;;5728:44;5819:3;5811:12;;;5805:19;5788:15;;;5781:44;5844:3;5885:11;;;5879:18;5863:14;;;5856:42;5917:3;5958:11;;;5952:18;5936:14;;;5929:42;;;;-1:-1:-1;5597:5:103;4882:1119;-1:-1:-1;;;4882:1119:103:o;6006:1502::-;;;6188:2;6176:9;6167:7;6163:23;6159:32;6156:2;;;6209:6;6201;6194:22;6156:2;6254:9;6241:23;6283:18;6324:2;6316:6;6313:14;6310:2;;;6345:6;6337;6330:22;6310:2;6388:6;6377:9;6373:22;6363:32;;6414:6;6454:2;6449;6440:7;6436:16;6432:25;6429:2;;;6475:6;6467;6460:22;6429:2;6506:19;6522:2;6506:19;:::i;:::-;6493:32;;6561:2;6548:16;6541:5;6534:31;6618:2;6614;6610:11;6597:25;6592:2;6585:5;6581:14;6574:49;6676:2;6672;6668:11;6655:25;6650:2;6643:5;6639:14;6632:49;6713:45;6754:2;6750;6746:11;6713:45;:::i;:::-;6708:2;6701:5;6697:14;6690:69;6805:3;6801:2;6797:12;6784:26;6835:2;6825:8;6822:16;6819:2;;;6856:6;6848;6841:22;6819:2;6898:44;6934:7;6923:8;6919:2;6915:17;6898:44;:::i;:::-;6892:3;6885:5;6881:15;6874:69;;6997:3;6993:2;6989:12;6976:26;6970:3;6963:5;6959:15;6952:51;7057:3;7053:2;7049:12;7036:26;7030:3;7023:5;7019:15;7012:51;7117:3;7113:2;7109:12;7096:26;7090:3;7083:5;7079:15;7072:51;7142:3;7198:2;7194;7190:11;7177:25;7172:2;7165:5;7161:14;7154:49;;7222:3;7278:2;7274;7270:11;7257:25;7252:2;7245:5;7241:14;7234:49;;7302:5;7292:15;;;7360:2;7349:9;7345:18;7332:32;7316:48;;7389:2;7379:8;7376:16;7373:2;;;7410:6;7402;7395:22;7373:2;;7438:64;7494:7;7483:8;7472:9;7468:24;7438:64;:::i;:::-;7428:74;;;6146:1362;;;;;:::o;7708:194::-;;7831:2;7819:9;7810:7;7806:23;7802:32;7799:2;;;7852:6;7844;7837:22;7799:2;-1:-1:-1;7880:16:103;;7789:113;-1:-1:-1;7789:113:103:o;7907:258::-;;;8036:2;8024:9;8015:7;8011:23;8007:32;8004:2;;;8057:6;8049;8042:22;8170:257;;8249:5;8243:12;8276:6;8271:3;8264:19;8292:63;8348:6;8341:4;8336:3;8332:14;8325:4;8318:5;8314:16;8292:63;:::i;:::-;8409:2;8388:15;-1:-1:-1;;8384:29:103;8375:39;;;;8416:4;8371:50;;8219:208;-1:-1:-1;;8219:208:103:o;8432:142::-;8515:1;8508:5;8505:12;8495:2;;8521:18;;:::i;:::-;8550;;8485:89::o;9239:385::-;-1:-1:-1;;;;;9442:32:103;;9424:51;;9511:2;9506;9491:18;;9484:30;;;9239:385;;9531:44;;9556:18;;9548:6;9531:44;:::i;:::-;9523:52;;9611:6;9606:2;9595:9;9591:18;9584:34;9414:210;;;;;;:::o;10816:250::-;10967:2;10952:18;;11000:1;10989:13;;10979:2;;11006:18;;:::i;:::-;11035:25;;;10934:132;:::o;11071:249::-;11221:2;11206:18;;11254:1;11243:13;;11233:2;;11260:18;;:::i;11325:219::-;;11474:2;11463:9;11456:21;11494:44;11534:2;11523:9;11519:18;11511:6;11494:44;:::i;11549:351::-;11751:2;11733:21;;;11790:2;11770:18;;;11763:30;11829:29;11824:2;11809:18;;11802:57;11891:2;11876:18;;11723:177::o;14619:354::-;14821:2;14803:21;;;14860:2;14840:18;;;14833:30;14899:32;14894:2;14879:18;;14872:60;14964:2;14949:18;;14793:180::o;14978:351::-;15180:2;15162:21;;;15219:2;15199:18;;;15192:30;15258:29;15253:2;15238:18;;15231:57;15320:2;15305:18;;15152:177::o;15334:1080::-;;15511:2;15500:9;15493:21;15556:6;15550:13;15545:2;15534:9;15530:18;15523:41;15618:2;15610:6;15606:15;15600:22;15595:2;15584:9;15580:18;15573:50;15677:2;15669:6;15665:15;15659:22;15654:2;15643:9;15639:18;15632:50;15729:2;15721:6;15717:15;15711:22;15742:62;15799:3;15788:9;15784:19;15770:12;15742:62;:::i;:::-;;15853:3;15845:6;15841:16;15835:23;15877:6;15920:2;15914:3;15903:9;15899:19;15892:31;15946:53;15994:3;15983:9;15979:19;15963:14;15946:53;:::i;:::-;15932:67;;16054:3;16046:6;16042:16;16036:23;16030:3;16019:9;16015:19;16008:52;16115:3;16107:6;16103:16;16097:23;16091:3;16080:9;16076:19;16069:52;16158:3;16150:6;16146:16;16140:23;16182:3;16221:2;16216;16205:9;16201:18;16194:30;16261:2;16253:6;16249:15;16243:22;16233:32;;;16284:3;16323:2;16318;16307:9;16303:18;16296:30;16380:2;16372:6;16368:15;16362:22;16357:2;16346:9;16342:18;16335:50;;;;16402:6;16394:14;;;15483:931;;;;:::o;18359:275::-;18430:2;18424:9;18495:2;18476:13;;-1:-1:-1;;18472:27:103;18460:40;;18530:18;18515:34;;18551:22;;;18512:62;18509:2;;;18577:18;;:::i;:::-;18613:2;18606:22;18404:230;;-1:-1:-1;18404:230:103:o;18639:186::-;;18720:18;18712:6;18709:30;18706:2;;;18742:18;;:::i;:::-;-1:-1:-1;18808:2:103;18787:15;-1:-1:-1;;18783:29:103;18814:4;18779:40;;18696:129::o;18830:128::-;;18901:1;18897:6;18894:1;18891:13;18888:2;;;18907:18;;:::i;:::-;-1:-1:-1;18943:9:103;;18878:80::o;18963:125::-;;19031:1;19028;19025:8;19022:2;;;19036:18;;:::i;:::-;-1:-1:-1;19073:9:103;;19012:76::o;19093:258::-;19165:1;19175:113;19189:6;19186:1;19183:13;19175:113;;;19265:11;;;19259:18;19246:11;;;19239:39;19211:2;19204:10;19175:113;;;19306:6;19303:1;19300:13;19297:2;;;-1:-1:-1;;19341:1:103;19323:16;;19316:27;19146:205::o;19356:135::-;;-1:-1:-1;;19416:17:103;;19413:2;;;19436:18;;:::i;:::-;-1:-1:-1;19483:1:103;19472:13;;19403:88::o;19496:201::-;;19562:10;19607:2;19600:5;19596:14;19634:2;19625:7;19622:15;19619:2;;;19640:18;;:::i;:::-;19689:1;19676:15;;19542:155;-1:-1:-1;;;19542:155:103:o;19702:209::-;;19760:1;19750:2;;-1:-1:-1;;;19785:31:103;;19839:4;19836:1;19829:15;19867:4;19792:1;19857:15;19750:2;-1:-1:-1;19896:9:103;;19740:171::o;19916:127::-;19977:10;19972:3;19968:20;19965:1;19958:31;20008:4;20005:1;19998:15;20032:4;20029:1;20022:15;20048:127;20109:10;20104:3;20100:20;20097:1;20090:31;20140:4;20137:1;20130:15;20164:4;20161:1;20154:15;20180:127;20241:10;20236:3;20232:20;20229:1;20222:31;20272:4;20269:1;20262:15;20296:4;20293:1;20286:15;20312:131;-1:-1:-1;;;;;20387:31:103;;20377:42;;20367:2;;20433:1;20430;20423:12;20448:115;20537:1;20530:5;20527:12;20517:2;;20553:1;20550;20543:12"},"methodIdentifiers":{"DEFAULT_FILTER_DATA_STRUCTURE()":"7893c7bc","FULL_COLLATERALIZATION_LEVEL()":"45fe1c6d","SUM_OF_SUM_INSURED_CAP()":"be61e91e","activeBundles()":"4101b90c","approvalCallback()":"1b867c63","archiveCallback()":"be169e7e","bundleMatchesApplication((uint256,uint256,uint256,uint8,bytes,uint256,uint256,uint256,uint256,uint256),(uint8,uint256,uint256,bytes,uint256,uint256))":"86c71288","bundles()":"18442e63","burnBundle(uint256)":"587e59d0","closeBundle(uint256)":"8c483e5a","collateralizePolicy(bytes32,uint256)":"890fbf78","createBundle(bytes,uint256)":"7888a2ff","declineCallback()":"bd1fe5d0","defundBundle(uint256,uint256)":"36153f3a","fundBundle(uint256,uint256)":"89002da5","getActiveBundleId(uint256)":"0676cb0e","getBalance()":"12065fe0","getBundle(uint256)":"2d0821b7","getCapacity()":"c40000d4","getCapital()":"e0032383","getCollateralizationLevel()":"54afef63","getErc20Token()":"feb1824b","getFilterDataStructure()":"3dcdde17","getFullCollateralizationLevel()":"f1d354d0","getId()":"5d1ca631","getMaximumNumberOfActiveBundles()":"7f3b6980","getName()":"17d7de7c","getOwner()":"893d20e8","getRegistry()":"5ab1bd53","getState()":"1865c57d","getSumOfSumInsuredCap()":"a18aa128","getTotalValueLocked()":"b26025aa","getType()":"15dae03e","getWallet()":"13299604","isOracle()":"9a82f890","isProduct()":"e0815f0d","isRiskpool()":"258d560c","lockBundle(uint256)":"a17030d5","owner()":"8da5cb5b","pauseCallback()":"d73cd992","processPolicyPayout(bytes32,uint256)":"82558906","processPolicyPremium(bytes32,uint256)":"3629c3c4","proposalCallback()":"638ce0ba","releasePolicy(bytes32)":"c3004c86","renounceOwnership()":"715018a6","resumeCallback()":"a18f5ae2","setId(uint256)":"d0e0ba95","setMaximumNumberOfActiveBundles(uint256)":"652028e5","suspendCallback()":"b3fca9bd","transferOwnership(address)":"f2fde38b","unlockBundle(uint256)":"316c5348","unpauseCallback()":"59dacc6a"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralization\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"erc20Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wallet\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"activeBundles\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolBundlesAndPolicies\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogBasicRiskpoolCandidateBundleAmountCheck\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentArchived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryAddress\",\"type\":\"address\"}],\"name\":\"LogComponentCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentPaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"componentName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"componentType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"componentAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentResumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateOld\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"stateNew\",\"type\":\"uint8\"}],\"name\":\"LogComponentStateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentSuspended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogComponentUnpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolBundleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolBundleMatchesPolicy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSecured\",\"type\":\"bool\"}],\"name\":\"LogRiskpoolCollateralLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolCollateralReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"riskpoolAddress\",\"type\":\"address\"}],\"name\":\"LogRiskpoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolDeclined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPayoutProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolPremiumProcessed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"LogRiskpoolProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_FILTER_DATA_STRUCTURE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FULL_COLLATERALIZATION_LEVEL\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUM_OF_SUM_INSURED_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activeBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approvalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"archiveCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"bundle\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IPolicy.ApplicationState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"premiumAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sumInsuredAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IPolicy.Application\",\"name\":\"application\",\"type\":\"tuple\"}],\"name\":\"bundleMatchesApplication\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMatching\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"burnBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"closeBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"}],\"name\":\"collateralizePolicy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"initialAmount\",\"type\":\"uint256\"}],\"name\":\"createBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"declineCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"defundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"fundBundle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"netAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getActiveBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idx\",\"type\":\"uint256\"}],\"name\":\"getBundle\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"riskpoolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum IBundle.BundleState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"filter\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"capital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockedCapital\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"}],\"internalType\":\"struct IBundle.Bundle\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getErc20Token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFilterDataStructure\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFullCollateralizationLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaximumNumberOfActiveBundles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getState\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSumOfSumInsuredCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalValueLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getType\",\"outputs\":[{\"internalType\":\"enum IComponent.ComponentType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isOracle\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isProduct\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRiskpool\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"lockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPayout\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"processPolicyPremium\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"processId\",\"type\":\"bytes32\"}],\"name\":\"releasePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"resumeCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"setId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maximumNumberOfActiveBundles\",\"type\":\"uint256\"}],\"name\":\"setMaximumNumberOfActiveBundles\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"suspendCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"}],\"name\":\"unlockBundle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpauseCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestRiskpool.sol\":\"TestRiskpool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/components/BasicRiskpool.sol\":{\"keccak256\":\"0xb86d781f945942220e37e1903420537fa3ad5539c0f341c4cccdfb1b11d196ee\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bb61f5c4724bcf6ece000fa46359dfabd60a91e82b8e637bf27e3028119047c\",\"dweb:/ipfs/QmWJ5zhmwCSKemq6PKhddWbbiEMsVVS9abCz5tU6s7b8f3\"]},\"@etherisc/gif-interface/contracts/components/Component.sol\":{\"keccak256\":\"0x987710356d154a48840e0f35568ea1efb762bd8c62f1f3e8aa3430db5ee24e9e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0bca96c5a86ac204a69c7052705fd1a6e04c9cf4ae05fd6c110031f7186b50e5\",\"dweb:/ipfs/QmSFEWYNbtBRCXgcgzvNdSxhVtttaajL91PMATrR4bvE4n\"]},\"@etherisc/gif-interface/contracts/components/IComponent.sol\":{\"keccak256\":\"0x8ff832edb9f25a49284591125fd41ce16e426f6fd342a086c3db4405acb3ba62\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9223f48746a1c5aa1b45026fcf6f125aa44d1da21c74ec5c57b55b876ebb031e\",\"dweb:/ipfs/QmQ5DGwB7nAYdSHMGXF9uSJb9kbSguSG4xqv8KPVeGpZSM\"]},\"@etherisc/gif-interface/contracts/components/IRiskpool.sol\":{\"keccak256\":\"0x0d315748d595604da67cdd61ffb5c1161efffe47fbd6f0f89fe2ef92eecb0c39\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b935b7aa4eb129c1ec0c9bf7885df075409001ecdcf8b1d3bacbe2d975934650\",\"dweb:/ipfs/QmQHndskSv3XArRk4tFrRazrH3tAbuv7zafJNyZseDe7YF\"]},\"@etherisc/gif-interface/contracts/components/Riskpool.sol\":{\"keccak256\":\"0x627c05cef03e42f2b798004db6d000d574c0edc383d185952592425895ada20e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d20ecfaf1ed6c983cd81482d982373b8d4d00f6cbe6ed0e67e78255e71c7ac86\",\"dweb:/ipfs/QmdwKC99b54yMa3rKJdwD4RjcbLgX6hkLV6SYjfgFbLi5T\"]},\"@etherisc/gif-interface/contracts/modules/IAccess.sol\":{\"keccak256\":\"0x58b700ed6f289c4f3c72b169416fb6e4f55dafa7d6b87a12f2f2d658060ac864\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e28c5099679bb1a53bdf66d890c104dc62569839d968ef8fabed6363e549a125\",\"dweb:/ipfs/QmXPREnMHbSFLgo6ucB1bzdriKC4e84rhpYvrrNFmHUNNn\"]},\"@etherisc/gif-interface/contracts/modules/IBundle.sol\":{\"keccak256\":\"0x741cce54783a2778e145bc5bd35f7d3044f530e1d084745cea970abe92cc44e3\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9f3f910bd4d979c32d2a969d930b805c24de0c2c3a58ca09ed36b3b76ecf597e\",\"dweb:/ipfs/QmRVXJRzCU4Xzw4b8HeFmXt5TsttmZctsAXg2ZW1f4JH7U\"]},\"@etherisc/gif-interface/contracts/modules/IComponentEvents.sol\":{\"keccak256\":\"0x973d60d911b341be05b6ca663c88f0b40a48a9e653fbf2ba82d97cd9ead02d99\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://346ffc9f53d673a6da8013d64ab304b3d0f54835b25efc216afe48a68ba49b00\",\"dweb:/ipfs/QmQW9WHHQNtMcXkxZQRjCM3C6AVz5R5Cf8VkKekmPBoArU\"]},\"@etherisc/gif-interface/contracts/modules/IPolicy.sol\":{\"keccak256\":\"0xb6d8c8c44c7a0930f3543615a6505072ea8ce16ce7fe74c6a91ac38927a53fae\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d97d4671cbe029b635c4e8a3a86a9bb38d57d7c495a099a25b6e10fa14eaccf1\",\"dweb:/ipfs/QmbPEHWk8xzopCDHLDt6SZNZ97YAiEJwx7oVWmXwzKi7c8\"]},\"@etherisc/gif-interface/contracts/modules/IPool.sol\":{\"keccak256\":\"0x4ab06e6ed29c101d54b0f16cbb35a57e107c316541c8064f520b88885759fe27\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c144e9c2c5580e44167b6d01f9d76e57f24d09b814222e1a2054d915f52cfaad\",\"dweb:/ipfs/Qmc7KVWtaVk5215QxRDNoE1svCcM8tcGFznDGQpFnRSNdy\"]},\"@etherisc/gif-interface/contracts/modules/IRegistry.sol\":{\"keccak256\":\"0xcba04be963a4f9a358af03ccb4577f8a0b7441ba03fed35a94d1ebc8bd63976c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b80c19d271d21439c61ebb3591d6db46b1ce4759e6ecef114d874ae20709e83e\",\"dweb:/ipfs/QmdW4RfpKF4UErbjq9JGy9uvTvJ9KYwU58TzhvhTmi92KB\"]},\"@etherisc/gif-interface/contracts/modules/ITreasury.sol\":{\"keccak256\":\"0x409d5a30e38a3494f4b54d636789ccf4b02ecf6798bd5388d3e1ed0129c7f82a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://26cecfe437c91cbc6fbfead434a94ba08720bf237ab3be1c2e98f1098b8a748f\",\"dweb:/ipfs/QmUvKEtPYGEn93KHxPCVuy4CZcMKSGpQffiH9XoHAyi9pD\"]},\"@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol\":{\"keccak256\":\"0x1bc9d5965f3b5b4be4df8b2c996a1092c7fc18cf251c6997ec8756730a86adfd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://caf64fd8b29daaf3c9f56bb37a06c0ebb4c7212408a6284c9642904f5f29a02c\",\"dweb:/ipfs/QmPebUgmhmcgoxme3LGQ8P4P6Q9QEw1xU6cigrSa5RnfYm\"]},\"@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol\":{\"keccak256\":\"0xf3e212c032326a8c8071c710c173d744fb8500fd5d241600541b2360093f0dad\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://858b15bdf891e572a18a7ac91cde078bd1677901369437badaaf0e9730fd209e\",\"dweb:/ipfs/QmYCNe3VkCcn66oz8V7Ykh5k35PvbpHtrusbatrVJSFpCJ\"]},\"@etherisc/gif-interface/contracts/services/IInstanceService.sol\":{\"keccak256\":\"0xe4af18ba1cd6f2679a3c8571f8a5aac93995b6c27a4ec5c9a8c054125415eb77\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ce471c208fe21fb57311b46e804a9b768fe93c60a7cbaad30f01a3ea84e52856\",\"dweb:/ipfs/QmVzP35o5QWazuK44adjYmkLK1f4rSEsGgQ13iDsa2tpJS\"]},\"@etherisc/gif-interface/contracts/services/IOracleService.sol\":{\"keccak256\":\"0xba5b7ea294d16da45aa531a03d88ad4927b238c24215b4404018f5beb170f41d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://74ca077f901afe4cf4c54f473a7ae169789bfdbea8184cb1ff45596d333001bd\",\"dweb:/ipfs/QmRnL4MCdyNhKasj1qTHkumYkmf6LKGSCi7M2MPo5Eg5mZ\"]},\"@etherisc/gif-interface/contracts/services/IProductService.sol\":{\"keccak256\":\"0xbf9be43694891979846ba7513ee5887f55693b62a7cfcdb3cd6ec892e4a99fd6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5eb2469f2b220147a73fa491bbc0dc3665a72c22c0eb7d8af6b92720629b93de\",\"dweb:/ipfs/QmfYD9RC54aWygcPpR1CyV4ZU6hD5XssP52zVYHzyZWFay\"]},\"@etherisc/gif-interface/contracts/services/IRiskpoolService.sol\":{\"keccak256\":\"0x240cdf725ec62d7af5ac1178accf3c692f245c45eca1a9a71a2908118f72e745\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://672dcd9ad3f4e3bc038bd796308ebd4559394723ae87ab4c373984dddcf99dbd\",\"dweb:/ipfs/QmUiYqCMszchy5APwL6sDzRsePL2ATqAyRZa9xuet7rcaE\"]},\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/test/TestRiskpool.sol\":{\"keccak256\":\"0xf53ae63047a001a3a973d0b6c60b6fa4b6ca7a1fb561eb7f55044367fa9f6211\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0e0f3b6068d7c66f5532b353f7a0a38c44354743bcdb4a4ee6e1b1e3d110d3fe\",\"dweb:/ipfs/Qmc8R6z3vvXkYmicCUVBEznLJDwFSQkPN8o3JLtu3X6FVk\"]}},\"version\":1}"}},"contracts/test/TestTransferFrom.sol":{"TestTransferFrom":{"abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"callSuccess","type":"bool"},{"indexed":false,"internalType":"uint256","name":"returnDataLength","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"returnData","type":"bytes"}],"name":"LogTransferHelperCallFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"tokenIsContract","type":"bool"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"LogTransferHelperInputValidation1Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"allowance","type":"uint256"}],"name":"LogTransferHelperInputValidation2Failed","type":"event"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unifiedTransferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b506104f1806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806386aa75d714610030575b600080fd5b61004361003e3660046103ac565b610057565b604051901515815260200160405180910390f35b600061006585858585610070565b90505b949350505050565b6000846001600160a01b038082163b1515908616158061009757506001600160a01b038516155b806100a0575080155b156100fb576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a1600092505050610068565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561014057600080fd5b505afa158015610154573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017891906103fc565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156101c557600080fd5b505afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906103fc565b90508582108061020c57508581105b156102575760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a16000945050505050610068565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916102bb9190610414565b6000604051808303816000865af19150503d80600081146102f8576040519150601f19603f3d011682016040523d82523d6000602084013e6102fd565b606091505b50915091508180156103335750805115806103335750805160201480156103335750808060200190518101906103339190610385565b965086610377577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161036e93929190610430565b60405180910390a15b505050505050949350505050565b600060208284031215610396578081fd5b815180151581146103a5578182fd5b9392505050565b600080600080608085870312156103c1578283fd5b84356103cc816104a3565b935060208501356103dc816104a3565b925060408501356103ec816104a3565b9396929550929360600135925050565b60006020828403121561040d578081fd5b5051919050565b60008251610426818460208701610473565b9190910192915050565b6000841515825283602083015260606040830152825180606084015261045d816080850160208701610473565b601f01601f191691909101608001949350505050565b60005b8381101561048e578181015183820152602001610476565b8381111561049d576000848401525b50505050565b6001600160a01b03811681146104b857600080fd5b5056fea26469706673582212204cd47de7139602c38bd878e742df2f0bda2fca7a0fe902f95fd7daa762c597cd64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F1 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x86AA75D7 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x57 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x65 DUP6 DUP6 DUP6 DUP6 PUSH2 0x70 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x97 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0xA0 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xFB JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x154 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x20C JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x257 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x68 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP11 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP14 AND SWAP2 PUSH2 0x2BB SWAP2 SWAP1 PUSH2 0x414 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2F8 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x333 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x333 JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x333 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x385 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x377 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x36E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x430 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x396 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3A5 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3C1 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3CC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3DC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x3EC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40D JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x426 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x473 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 MLOAD DUP1 PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x45D DUP2 PUSH1 0x80 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x473 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x80 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x48E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x476 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x49D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C 0xD4 PUSH30 0xE7139602C38BD878E742DF2F0BDA2FCA7A0FE902F95FD7DAA762C597CD64 PUSH20 0x6F6C634300080200330000000000000000000000 ","sourceMap":"168:596:100:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4090:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"92:219:103","statements":[{"body":{"nodeType":"YulBlock","src":"138:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"147:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"155:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"140:6:103"},"nodeType":"YulFunctionCall","src":"140:22:103"},"nodeType":"YulExpressionStatement","src":"140:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"113:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"122:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"109:3:103"},"nodeType":"YulFunctionCall","src":"109:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"134:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"105:3:103"},"nodeType":"YulFunctionCall","src":"105:32:103"},"nodeType":"YulIf","src":"102:2:103"},{"nodeType":"YulVariableDeclaration","src":"173:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"192:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"186:5:103"},"nodeType":"YulFunctionCall","src":"186:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"177:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"255:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"264:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"272:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"257:6:103"},"nodeType":"YulFunctionCall","src":"257:22:103"},"nodeType":"YulExpressionStatement","src":"257:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"224:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"245:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"238:6:103"},"nodeType":"YulFunctionCall","src":"238:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"231:6:103"},"nodeType":"YulFunctionCall","src":"231:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"221:2:103"},"nodeType":"YulFunctionCall","src":"221:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"214:6:103"},"nodeType":"YulFunctionCall","src":"214:40:103"},"nodeType":"YulIf","src":"211:2:103"},{"nodeType":"YulAssignment","src":"290:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"300:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"290:6:103"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"58:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"69:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"81:6:103","type":""}],"src":"14:297:103"},{"body":{"nodeType":"YulBlock","src":"452:487:103","statements":[{"body":{"nodeType":"YulBlock","src":"499:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"508:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"516:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"501:6:103"},"nodeType":"YulFunctionCall","src":"501:22:103"},"nodeType":"YulExpressionStatement","src":"501:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"473:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"482:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"469:3:103"},"nodeType":"YulFunctionCall","src":"469:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"494:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"465:3:103"},"nodeType":"YulFunctionCall","src":"465:33:103"},"nodeType":"YulIf","src":"462:2:103"},{"nodeType":"YulVariableDeclaration","src":"534:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"560:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"547:12:103"},"nodeType":"YulFunctionCall","src":"547:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"538:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"604:5:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"579:24:103"},"nodeType":"YulFunctionCall","src":"579:31:103"},"nodeType":"YulExpressionStatement","src":"579:31:103"},{"nodeType":"YulAssignment","src":"619:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"629:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"619:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"643:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"686:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"671:3:103"},"nodeType":"YulFunctionCall","src":"671:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"658:12:103"},"nodeType":"YulFunctionCall","src":"658:32:103"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"647:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"724:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"699:24:103"},"nodeType":"YulFunctionCall","src":"699:33:103"},"nodeType":"YulExpressionStatement","src":"699:33:103"},{"nodeType":"YulAssignment","src":"741:17:103","value":{"name":"value_1","nodeType":"YulIdentifier","src":"751:7:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"741:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"767:47:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"799:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"810:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"795:3:103"},"nodeType":"YulFunctionCall","src":"795:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"782:12:103"},"nodeType":"YulFunctionCall","src":"782:32:103"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"771:7:103","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"848:7:103"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"823:24:103"},"nodeType":"YulFunctionCall","src":"823:33:103"},"nodeType":"YulExpressionStatement","src":"823:33:103"},{"nodeType":"YulAssignment","src":"865:17:103","value":{"name":"value_2","nodeType":"YulIdentifier","src":"875:7:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"865:6:103"}]},{"nodeType":"YulAssignment","src":"891:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"918:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"929:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"914:3:103"},"nodeType":"YulFunctionCall","src":"914:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"901:12:103"},"nodeType":"YulFunctionCall","src":"901:32:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"891:6:103"}]}]},"name":"abi_decode_tuple_t_contract$_IERC20_$8831t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"394:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"405:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"417:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"425:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"433:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"441:6:103","type":""}],"src":"316:623:103"},{"body":{"nodeType":"YulBlock","src":"1025:113:103","statements":[{"body":{"nodeType":"YulBlock","src":"1071:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1080:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1088:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1073:6:103"},"nodeType":"YulFunctionCall","src":"1073:22:103"},"nodeType":"YulExpressionStatement","src":"1073:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1046:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1055:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1042:3:103"},"nodeType":"YulFunctionCall","src":"1042:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1067:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1038:3:103"},"nodeType":"YulFunctionCall","src":"1038:32:103"},"nodeType":"YulIf","src":"1035:2:103"},{"nodeType":"YulAssignment","src":"1106:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1122:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1116:5:103"},"nodeType":"YulFunctionCall","src":"1116:16:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1106:6:103"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"991:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1002:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1014:6:103","type":""}],"src":"944:194:103"},{"body":{"nodeType":"YulBlock","src":"1280:137:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1290:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1310:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1304:5:103"},"nodeType":"YulFunctionCall","src":"1304:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1294:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1352:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"1360:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1348:3:103"},"nodeType":"YulFunctionCall","src":"1348:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"1367:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1372:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"1326:21:103"},"nodeType":"YulFunctionCall","src":"1326:53:103"},"nodeType":"YulExpressionStatement","src":"1326:53:103"},{"nodeType":"YulAssignment","src":"1388:23:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1399:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"1404:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1395:3:103"},"nodeType":"YulFunctionCall","src":"1395:16:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1388:3:103"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"1256:3:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1261:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1272:3:103","type":""}],"src":"1143:274:103"},{"body":{"nodeType":"YulBlock","src":"1523:102:103","statements":[{"nodeType":"YulAssignment","src":"1533:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1545:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1556:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1541:3:103"},"nodeType":"YulFunctionCall","src":"1541:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1533:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1575:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1590:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1606:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1611:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1602:3:103"},"nodeType":"YulFunctionCall","src":"1602:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1615:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1598:3:103"},"nodeType":"YulFunctionCall","src":"1598:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1586:3:103"},"nodeType":"YulFunctionCall","src":"1586:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1568:6:103"},"nodeType":"YulFunctionCall","src":"1568:51:103"},"nodeType":"YulExpressionStatement","src":"1568:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1492:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1503:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1514:4:103","type":""}],"src":"1422:203:103"},{"body":{"nodeType":"YulBlock","src":"1759:175:103","statements":[{"nodeType":"YulAssignment","src":"1769:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1792:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1777:3:103"},"nodeType":"YulFunctionCall","src":"1777:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1769:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"1804:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1822:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1827:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1818:3:103"},"nodeType":"YulFunctionCall","src":"1818:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"1831:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1814:3:103"},"nodeType":"YulFunctionCall","src":"1814:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1808:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1849:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1864:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1872:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1842:6:103"},"nodeType":"YulFunctionCall","src":"1842:34:103"},"nodeType":"YulExpressionStatement","src":"1842:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1896:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1907:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1892:3:103"},"nodeType":"YulFunctionCall","src":"1892:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1916:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1924:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1912:3:103"},"nodeType":"YulFunctionCall","src":"1912:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1885:6:103"},"nodeType":"YulFunctionCall","src":"1885:43:103"},"nodeType":"YulExpressionStatement","src":"1885:43:103"}]},"name":"abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1720:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1731:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1739:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1750:4:103","type":""}],"src":"1630:304:103"},{"body":{"nodeType":"YulBlock","src":"2096:218:103","statements":[{"nodeType":"YulAssignment","src":"2106:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2118:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2129:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2114:3:103"},"nodeType":"YulFunctionCall","src":"2114:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2106:4:103"}]},{"nodeType":"YulVariableDeclaration","src":"2141:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2159:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2164:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2155:3:103"},"nodeType":"YulFunctionCall","src":"2155:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2168:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2151:3:103"},"nodeType":"YulFunctionCall","src":"2151:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2145:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2186:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2201:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2209:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2197:3:103"},"nodeType":"YulFunctionCall","src":"2197:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2179:6:103"},"nodeType":"YulFunctionCall","src":"2179:34:103"},"nodeType":"YulExpressionStatement","src":"2179:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2233:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2244:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2229:3:103"},"nodeType":"YulFunctionCall","src":"2229:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2253:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2261:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2249:3:103"},"nodeType":"YulFunctionCall","src":"2249:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2222:6:103"},"nodeType":"YulFunctionCall","src":"2222:43:103"},"nodeType":"YulExpressionStatement","src":"2222:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2285:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2296:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2281:3:103"},"nodeType":"YulFunctionCall","src":"2281:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"2301:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2274:6:103"},"nodeType":"YulFunctionCall","src":"2274:34:103"},"nodeType":"YulExpressionStatement","src":"2274:34:103"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2049:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2060:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2068:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2076:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2087:4:103","type":""}],"src":"1939:375:103"},{"body":{"nodeType":"YulBlock","src":"2414:92:103","statements":[{"nodeType":"YulAssignment","src":"2424:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2447:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2432:3:103"},"nodeType":"YulFunctionCall","src":"2432:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2424:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2466:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2491:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2484:6:103"},"nodeType":"YulFunctionCall","src":"2484:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2477:6:103"},"nodeType":"YulFunctionCall","src":"2477:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2459:6:103"},"nodeType":"YulFunctionCall","src":"2459:41:103"},"nodeType":"YulExpressionStatement","src":"2459:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2383:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2394:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2405:4:103","type":""}],"src":"2319:187:103"},{"body":{"nodeType":"YulBlock","src":"2662:234:103","statements":[{"nodeType":"YulAssignment","src":"2672:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2684:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2695:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2680:3:103"},"nodeType":"YulFunctionCall","src":"2680:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2672:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2714:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2739:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2732:6:103"},"nodeType":"YulFunctionCall","src":"2732:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2725:6:103"},"nodeType":"YulFunctionCall","src":"2725:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2707:6:103"},"nodeType":"YulFunctionCall","src":"2707:41:103"},"nodeType":"YulExpressionStatement","src":"2707:41:103"},{"nodeType":"YulVariableDeclaration","src":"2757:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2775:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"2780:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2771:3:103"},"nodeType":"YulFunctionCall","src":"2771:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2784:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2767:3:103"},"nodeType":"YulFunctionCall","src":"2767:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2761:2:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2806:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2817:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2802:3:103"},"nodeType":"YulFunctionCall","src":"2802:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2826:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2834:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2822:3:103"},"nodeType":"YulFunctionCall","src":"2822:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2795:6:103"},"nodeType":"YulFunctionCall","src":"2795:43:103"},"nodeType":"YulExpressionStatement","src":"2795:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2858:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2869:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2854:3:103"},"nodeType":"YulFunctionCall","src":"2854:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"2878:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"2886:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2874:3:103"},"nodeType":"YulFunctionCall","src":"2874:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2847:6:103"},"nodeType":"YulFunctionCall","src":"2847:43:103"},"nodeType":"YulExpressionStatement","src":"2847:43:103"}]},"name":"abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2615:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2626:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2634:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2642:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2653:4:103","type":""}],"src":"2511:385:103"},{"body":{"nodeType":"YulBlock","src":"3070:366:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3087:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3112:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3105:6:103"},"nodeType":"YulFunctionCall","src":"3105:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3098:6:103"},"nodeType":"YulFunctionCall","src":"3098:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3080:6:103"},"nodeType":"YulFunctionCall","src":"3080:41:103"},"nodeType":"YulExpressionStatement","src":"3080:41:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3141:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3152:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3137:3:103"},"nodeType":"YulFunctionCall","src":"3137:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3157:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3130:6:103"},"nodeType":"YulFunctionCall","src":"3130:34:103"},"nodeType":"YulExpressionStatement","src":"3130:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3184:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3195:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3180:3:103"},"nodeType":"YulFunctionCall","src":"3180:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3200:2:103","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3173:6:103"},"nodeType":"YulFunctionCall","src":"3173:30:103"},"nodeType":"YulExpressionStatement","src":"3173:30:103"},{"nodeType":"YulVariableDeclaration","src":"3212:27:103","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3232:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3226:5:103"},"nodeType":"YulFunctionCall","src":"3226:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3216:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3259:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3270:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3255:3:103"},"nodeType":"YulFunctionCall","src":"3255:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"3275:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3248:6:103"},"nodeType":"YulFunctionCall","src":"3248:34:103"},"nodeType":"YulExpressionStatement","src":"3248:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"3317:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3325:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3313:3:103"},"nodeType":"YulFunctionCall","src":"3313:15:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3334:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3345:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3330:3:103"},"nodeType":"YulFunctionCall","src":"3330:19:103"},{"name":"length","nodeType":"YulIdentifier","src":"3351:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3291:21:103"},"nodeType":"YulFunctionCall","src":"3291:67:103"},"nodeType":"YulExpressionStatement","src":"3291:67:103"},{"nodeType":"YulAssignment","src":"3367:63:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3383:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3402:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"3410:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3398:3:103"},"nodeType":"YulFunctionCall","src":"3398:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3419:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3415:3:103"},"nodeType":"YulFunctionCall","src":"3415:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3394:3:103"},"nodeType":"YulFunctionCall","src":"3394:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3379:3:103"},"nodeType":"YulFunctionCall","src":"3379:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"3426:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3375:3:103"},"nodeType":"YulFunctionCall","src":"3375:55:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3367:4:103"}]}]},"name":"abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3023:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3034:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3042:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3050:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3061:4:103","type":""}],"src":"2901:535:103"},{"body":{"nodeType":"YulBlock","src":"3570:119:103","statements":[{"nodeType":"YulAssignment","src":"3580:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3592:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3603:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3588:3:103"},"nodeType":"YulFunctionCall","src":"3588:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3580:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3622:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3633:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3615:6:103"},"nodeType":"YulFunctionCall","src":"3615:25:103"},"nodeType":"YulExpressionStatement","src":"3615:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3660:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3671:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3656:3:103"},"nodeType":"YulFunctionCall","src":"3656:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"3676:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3649:6:103"},"nodeType":"YulFunctionCall","src":"3649:34:103"},"nodeType":"YulExpressionStatement","src":"3649:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3531:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3542:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3550:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3561:4:103","type":""}],"src":"3441:248:103"},{"body":{"nodeType":"YulBlock","src":"3747:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3757:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"3766:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3761:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"3826:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3851:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3856:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3847:3:103"},"nodeType":"YulFunctionCall","src":"3847:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3870:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"3875:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3866:3:103"},"nodeType":"YulFunctionCall","src":"3866:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3860:5:103"},"nodeType":"YulFunctionCall","src":"3860:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3840:6:103"},"nodeType":"YulFunctionCall","src":"3840:39:103"},"nodeType":"YulExpressionStatement","src":"3840:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3787:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3790:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3784:2:103"},"nodeType":"YulFunctionCall","src":"3784:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3798:19:103","statements":[{"nodeType":"YulAssignment","src":"3800:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3809:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"3812:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3805:3:103"},"nodeType":"YulFunctionCall","src":"3805:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3800:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"3780:3:103","statements":[]},"src":"3776:113:103"},{"body":{"nodeType":"YulBlock","src":"3915:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3928:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3933:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3924:3:103"},"nodeType":"YulFunctionCall","src":"3924:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"3942:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3917:6:103"},"nodeType":"YulFunctionCall","src":"3917:27:103"},"nodeType":"YulExpressionStatement","src":"3917:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3904:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"3907:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3901:2:103"},"nodeType":"YulFunctionCall","src":"3901:13:103"},"nodeType":"YulIf","src":"3898:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"3725:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"3730:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"3735:6:103","type":""}],"src":"3694:258:103"},{"body":{"nodeType":"YulBlock","src":"4002:86:103","statements":[{"body":{"nodeType":"YulBlock","src":"4066:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4075:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4078:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4068:6:103"},"nodeType":"YulFunctionCall","src":"4068:12:103"},"nodeType":"YulExpressionStatement","src":"4068:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4025:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4036:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4051:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4056:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4047:3:103"},"nodeType":"YulFunctionCall","src":"4047:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4060:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4043:3:103"},"nodeType":"YulFunctionCall","src":"4043:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4032:3:103"},"nodeType":"YulFunctionCall","src":"4032:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4022:2:103"},"nodeType":"YulFunctionCall","src":"4022:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4015:6:103"},"nodeType":"YulFunctionCall","src":"4015:50:103"},"nodeType":"YulIf","src":"4012:2:103"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3991:5:103","type":""}],"src":"3957:131:103"}]},"contents":"{\n { }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_contract$_IERC20_$8831t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value1, value1) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let value_2 := calldataload(add(headStart, 64))\n validator_revert_address(value_2)\n value2 := value_2\n value3 := calldataload(add(headStart, 96))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bool_t_address_t_address__to_t_bool_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, iszero(iszero(value0)))\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_encode_tuple_t_bool_t_uint256_t_bytes_memory_ptr__to_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), 96)\n let length := mload(value2)\n mstore(add(headStart, 96), length)\n copy_memory_to_memory(add(value2, 32), add(headStart, 128), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 128)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c806386aa75d714610030575b600080fd5b61004361003e3660046103ac565b610057565b604051901515815260200160405180910390f35b600061006585858585610070565b90505b949350505050565b6000846001600160a01b038082163b1515908616158061009757506001600160a01b038516155b806100a0575080155b156100fb576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a1600092505050610068565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561014057600080fd5b505afa158015610154573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017891906103fc565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156101c557600080fd5b505afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906103fc565b90508582108061020c57508581105b156102575760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a16000945050505050610068565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916102bb9190610414565b6000604051808303816000865af19150503d80600081146102f8576040519150601f19603f3d011682016040523d82523d6000602084013e6102fd565b606091505b50915091508180156103335750805115806103335750805160201480156103335750808060200190518101906103339190610385565b965086610377577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161036e93929190610430565b60405180910390a15b505050505050949350505050565b600060208284031215610396578081fd5b815180151581146103a5578182fd5b9392505050565b600080600080608085870312156103c1578283fd5b84356103cc816104a3565b935060208501356103dc816104a3565b925060408501356103ec816104a3565b9396929550929360600135925050565b60006020828403121561040d578081fd5b5051919050565b60008251610426818460208701610473565b9190910192915050565b6000841515825283602083015260606040830152825180606084015261045d816080850160208701610473565b601f01601f191691909101608001949350505050565b60005b8381101561048e578181015183820152602001610476565b8381111561049d576000848401525b50505050565b6001600160a01b03811681146104b857600080fd5b5056fea26469706673582212204cd47de7139602c38bd878e742df2f0bda2fca7a0fe902f95fd7daa762c597cd64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x86AA75D7 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x3AC JUMP JUMPDEST PUSH2 0x57 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x65 DUP6 DUP6 DUP6 DUP6 PUSH2 0x70 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND EXTCODESIZE ISZERO ISZERO SWAP1 DUP7 AND ISZERO DUP1 PUSH2 0x97 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND ISZERO JUMPDEST DUP1 PUSH2 0xA0 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xFB JUMPI PUSH1 0x40 DUP1 MLOAD DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE DUP8 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xE2A67C968620B6E8891E10A48C5D0C958EC8DC14D420FF7A2A1B16E7C5EDE2B7 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 PUSH1 0x0 SWAP3 POP POP POP PUSH2 0x68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x70A08231 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP10 AND SWAP1 PUSH4 0x70A08231 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x154 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6EB1769F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP10 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP11 AND SWAP1 PUSH4 0xDD62ED3E SWAP1 PUSH1 0x44 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1D9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FD SWAP2 SWAP1 PUSH2 0x3FC JUMP JUMPDEST SWAP1 POP DUP6 DUP3 LT DUP1 PUSH2 0x20C JUMPI POP DUP6 DUP2 LT JUMPDEST ISZERO PUSH2 0x257 JUMPI PUSH1 0x40 DUP1 MLOAD DUP4 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x80F73CF7014D047C01587FB6C83A8052D5088F7DC1AA8C47E37544397B9D643A SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x68 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP11 DUP2 AND PUSH1 0x24 DUP4 ADD MSTORE DUP10 DUP2 AND PUSH1 0x44 DUP4 ADD MSTORE PUSH1 0x64 DUP1 DUP4 ADD DUP11 SWAP1 MSTORE DUP4 MLOAD DUP1 DUP5 SUB SWAP1 SWAP2 ADD DUP2 MSTORE PUSH1 0x84 SWAP1 SWAP3 ADD DUP4 MSTORE PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x23B872DD PUSH1 0xE0 SHL OR SWAP1 MSTORE SWAP2 MLOAD PUSH1 0x0 SWAP3 DUP4 SWAP3 SWAP1 DUP14 AND SWAP2 PUSH2 0x2BB SWAP2 SWAP1 PUSH2 0x414 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2F8 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2FD JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 DUP1 ISZERO PUSH2 0x333 JUMPI POP DUP1 MLOAD ISZERO DUP1 PUSH2 0x333 JUMPI POP DUP1 MLOAD PUSH1 0x20 EQ DUP1 ISZERO PUSH2 0x333 JUMPI POP DUP1 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x333 SWAP2 SWAP1 PUSH2 0x385 JUMP JUMPDEST SWAP7 POP DUP7 PUSH2 0x377 JUMPI PUSH32 0x16B21B374049DCEBF0872579E85D4E9D5902788178B61BD82892C4B70584814B DUP3 DUP3 MLOAD DUP4 PUSH1 0x40 MLOAD PUSH2 0x36E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x430 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x396 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3A5 JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3C1 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x3CC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x3DC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0x3EC DUP2 PUSH2 0x4A3 JUMP JUMPDEST SWAP4 SWAP7 SWAP3 SWAP6 POP SWAP3 SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x40D JUMPI DUP1 DUP2 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x426 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x473 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 ISZERO ISZERO DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP4 ADD MSTORE DUP3 MLOAD DUP1 PUSH1 0x60 DUP5 ADD MSTORE PUSH2 0x45D DUP2 PUSH1 0x80 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x473 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x80 ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x48E JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x476 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x49D JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x4B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4C 0xD4 PUSH30 0xE7139602C38BD878E742DF2F0BDA2FCA7A0FE902F95FD7DAA762C597CD64 PUSH20 0x6F6C634300080200330000000000000000000000 ","sourceMap":"168:596:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;495:264;;;;;;:::i;:::-;;:::i;:::-;;;2484:14:103;;2477:22;2459:41;;2447:2;2432:18;495:264:100;;;;;;;;663:4;692:59;727:5;734:4;740:2;744:6;692:34;:59::i;:::-;685:66;;495:264;;;;;;;:::o;913:1422:90:-;1068:12;1162:5;-1:-1:-1;;;;;1202:24:90;;;;:28;;;1245:18;;;;:39;;-1:-1:-1;;;;;;1267:17:90;;;1245:39;:59;;;;1289:15;1288:16;1245:59;1241:187;;;1325:66;;;2732:14:103;;2725:22;2707:41;;-1:-1:-1;;;;;2822:15:103;;;2817:2;2802:18;;2795:43;2874:15;;2854:18;;;2847:43;1325:66:90;;;;;;;2695:2:103;1325:66:90;;;1412:5;1405:12;;;;;;1241:187;1499:21;;-1:-1:-1;;;1499:21:90;;-1:-1:-1;;;;;1586:32:103;;;1499:21:90;;;1568:51:103;1481:15:90;;1499;;;;;;1541:18:103;;1499:21:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1550:36;;-1:-1:-1;;;1550:36:90;;-1:-1:-1;;;;;1860:15:103;;;1550:36:90;;;1842:34:103;1580:4:90;1892:18:103;;;1885:43;1481:39:90;;-1:-1:-1;1530:17:90;;1550:15;;;;;1777:18:103;;1550:36:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1530:56;;1610:5;1600:7;:15;:36;;;;1631:5;1619:9;:17;1600:36;1596:157;;;1657:59;;;3615:25:103;;;3671:2;3656:18;;3649:34;;;1657:59:90;;3588:18:103;1657:59:90;;;;;;;1737:5;1730:12;;;;;;;;1596:157;1956:119;;;-1:-1:-1;;;;;2197:15:103;;;1956:119:90;;;2179:34:103;2249:15;;;2229:18;;;2222:43;2281:18;;;;2274:34;;;1956:119:90;;;;;;;;;;2114:18:103;;;;1956:119:90;;;;;;;-1:-1:-1;;;;;1956:119:90;-1:-1:-1;;;1956:119:90;;;1923:153;;-1:-1:-1;;;;1923:19:90;;;;:153;;1956:119;1923:153;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1883:193;;;;2097:11;:118;;;;-1:-1:-1;2134:11:90;;:16;2113:101;;;;2168:4;:11;2183:2;2168:17;:45;;;;;2200:4;2189:24;;;;;;;;;;;;:::i;:::-;2087:128;;2231:7;2226:103;;2259:59;2287:11;2300:4;:11;2313:4;2259:59;;;;;;;;:::i;:::-;;;;;;;;2226:103;913:1422;;;;;;;;;;;;:::o;14:297:103:-;;134:2;122:9;113:7;109:23;105:32;102:2;;;155:6;147;140:22;102:2;192:9;186:16;245:5;238:13;231:21;224:5;221:32;211:2;;272:6;264;257:22;211:2;300:5;92:219;-1:-1:-1;;;92:219:103:o;316:623::-;;;;;494:3;482:9;473:7;469:23;465:33;462:2;;;516:6;508;501:22;462:2;560:9;547:23;579:31;604:5;579:31;:::i;:::-;629:5;-1:-1:-1;686:2:103;671:18;;658:32;699:33;658:32;699:33;:::i;:::-;751:7;-1:-1:-1;810:2:103;795:18;;782:32;823:33;782:32;823:33;:::i;:::-;452:487;;;;-1:-1:-1;875:7:103;;929:2;914:18;901:32;;-1:-1:-1;;452:487:103:o;944:194::-;;1067:2;1055:9;1046:7;1042:23;1038:32;1035:2;;;1088:6;1080;1073:22;1035:2;-1:-1:-1;1116:16:103;;1025:113;-1:-1:-1;1025:113:103:o;1143:274::-;;1310:6;1304:13;1326:53;1372:6;1367:3;1360:4;1352:6;1348:17;1326:53;:::i;:::-;1395:16;;;;;1280:137;-1:-1:-1;;1280:137:103:o;2901:535::-;;3112:6;3105:14;3098:22;3087:9;3080:41;3157:6;3152:2;3141:9;3137:18;3130:34;3200:2;3195;3184:9;3180:18;3173:30;3232:6;3226:13;3275:6;3270:2;3259:9;3255:18;3248:34;3291:67;3351:6;3345:3;3334:9;3330:19;3325:2;3317:6;3313:15;3291:67;:::i;:::-;3419:2;3398:15;-1:-1:-1;;3394:29:103;3379:45;;;;3426:3;3375:55;;3070:366;-1:-1:-1;;;;3070:366:103:o;3694:258::-;3766:1;3776:113;3790:6;3787:1;3784:13;3776:113;;;3866:11;;;3860:18;3847:11;;;3840:39;3812:2;3805:10;3776:113;;;3907:6;3904:1;3901:13;3898:2;;;3942:1;3933:6;3928:3;3924:16;3917:27;3898:2;;3747:205;;;:::o;3957:131::-;-1:-1:-1;;;;;4032:31:103;;4022:42;;4012:2;;4078:1;4075;4068:12;4012:2;4002:86;:::o"},"methodIdentifiers":{"unifiedTransferFrom(address,address,address,uint256)":"86aa75d7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callSuccess\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"returnDataLength\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"name\":\"LogTransferHelperCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"tokenIsContract\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"LogTransferHelperInputValidation1Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"}],\"name\":\"LogTransferHelperInputValidation2Failed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unifiedTransferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/TestTransferFrom.sol\":\"TestTransferFrom\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"contracts/shared/TransferHelper.sol\":{\"keccak256\":\"0x91b89e0c510146e77251a66736d9fe2e12638febe082acbe8249dbf250669ac9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bcfac10aceb493d68e596b3d32ef554b5b55a39428b41890439cb0978cc9de8a\",\"dweb:/ipfs/QmQeVKZuYZ7TXFk4jjEtmwtotdiisiv12aWGsHpvqw13pp\"]},\"contracts/test/TestTransferFrom.sol\":{\"keccak256\":\"0x1e2c2d198517b5107ef8d17de8fb14d4d713f74db5c97e5a8dc8820264233c95\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://13b86cc3053b716c6bf6613d3871980e975d74e0369595045c33799abf6a8008\",\"dweb:/ipfs/QmYrHj7hYaotpF4XocFxSg9Npkr1sRXaaxNubbXsztWoJV\"]}},\"version\":1}"}},"contracts/tokens/BundleToken.sol":{"BundleToken":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"LogBundleTokenBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"bundleId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"address","name":"tokenOwner","type":"address"}],"name":"LogBundleTokenMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"bundleIdForTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burned","outputs":[{"internalType":"bool","name":"isBurned","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"exists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getBundleId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBundleModuleAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bundleId","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"bundleModule","type":"address"}],"name":"setBundleModule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"tokenCount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:396:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"69:325:103","statements":[{"nodeType":"YulAssignment","src":"79:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"93:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"99:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"89:3:103"},"nodeType":"YulFunctionCall","src":"89:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"79:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"110:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"140:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"146:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"136:3:103"},"nodeType":"YulFunctionCall","src":"136:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"114:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"187:31:103","statements":[{"nodeType":"YulAssignment","src":"189:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"203:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"211:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"199:3:103"},"nodeType":"YulFunctionCall","src":"199:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"189:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"167:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"160:6:103"},"nodeType":"YulFunctionCall","src":"160:26:103"},"nodeType":"YulIf","src":"157:2:103"},{"body":{"nodeType":"YulBlock","src":"277:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"298:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"305:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"310:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"301:3:103"},"nodeType":"YulFunctionCall","src":"301:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"291:6:103"},"nodeType":"YulFunctionCall","src":"291:31:103"},"nodeType":"YulExpressionStatement","src":"291:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"342:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"345:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"335:6:103"},"nodeType":"YulFunctionCall","src":"335:15:103"},"nodeType":"YulExpressionStatement","src":"335:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"370:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"373:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"363:6:103"},"nodeType":"YulFunctionCall","src":"363:15:103"},"nodeType":"YulExpressionStatement","src":"363:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"233:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"256:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"264:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"253:2:103"},"nodeType":"YulFunctionCall","src":"253:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"230:2:103"},"nodeType":"YulFunctionCall","src":"230:38:103"},"nodeType":"YulIf","src":"227:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"49:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"58:6:103","type":""}],"src":"14:380:103"}]},"contents":"{\n { }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b50604080518082018252601081526f23a4a310213ab7323632902a37b5b2b760811b60208083019182528351808501909452600384526242544b60e81b9084015281519192916200006591600091620000f4565b5080516200007b906001906020840190620000f4565b50505062000098620000926200009e60201b60201c565b620000a2565b620001d7565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b82805462000102906200019a565b90600052602060002090601f01602090048101928262000126576000855562000171565b82601f106200014157805160ff191683800117855562000171565b8280016001018555821562000171579182015b828111156200017157825182559160200191906001019062000154565b506200017f92915062000183565b5090565b5b808211156200017f576000815560010162000184565b600281046001821680620001af57607f821691505b60208210811415620001d157634e487b7160e01b600052602260045260246000fd5b50919050565b611aa580620001e76000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636ae9d6e8116100f9578063a38b714c11610097578063c87b56dd11610071578063c87b56dd146103b2578063e985e9c5146103c5578063f2fde38b14610401578063f76f8d7814610414576101a9565b8063a38b714c1461035d578063a3f4df7e14610370578063b88d4fde1461039f576101a9565b80638da5cb5b116100d35780638da5cb5b1461031e57806394bf804d1461032f57806395d89b4114610342578063a22cb4651461034a576101a9565b80636ae9d6e8146102e357806370a0823114610303578063715018a614610316576101a9565b806323b872dd1161016657806342966c681161014057806342966c68146102965780634f558e79146102a95780636352211e146102bf5780636ae73384146102d2576101a9565b806323b872dd1461025057806329a630831461026357806342842e0e14610283576101a9565b806301ffc9a7146101ae57806306fdde03146101d6578063081812fc146101eb578063095ea7b31461021657806318160ddd1461022b57806323250cae1461023d575b600080fd5b6101c16101bc366004611781565b610436565b60405190151581526020015b60405180910390f35b6101de61048a565b6040516101cd919061188b565b6101fe6101f93660046117b9565b61051c565b6040516001600160a01b0390911681526020016101cd565b610229610224366004611758565b610543565b005b6009545b6040519081526020016101cd565b6101c161024b3660046117b9565b61065e565b61022961025e36600461160e565b61068a565b61022f6102713660046117b9565b60009081526007602052604090205490565b61022961029136600461160e565b6106bb565b6102296102a43660046117b9565b6106d6565b6101c16102b73660046117b9565b600954101590565b6101fe6102cd3660046117b9565b61084a565b6008546001600160a01b03166101fe565b61022f6102f13660046117b9565b60076020526000908152604090205481565b61022f6103113660046115c2565b6108aa565b610229610930565b6006546001600160a01b03166101fe565b61022f61033d3660046117d1565b610944565b6101de610a85565b61022961035836600461171e565b610a94565b61022961036b3660046115c2565b610aa3565b6101de6040518060400160405280601081526020016f23a4a310213ab7323632902a37b5b2b760811b81525081565b6102296103ad366004611649565b610b9c565b6101de6103c03660046117b9565b610bd4565b6101c16103d33660046115dc565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61022961040f3660046115c2565b610c48565b6101de6040518060400160405280600381526020016242544b60e81b81525081565b60006001600160e01b031982166380ac58cd60e01b148061046757506001600160e01b03198216635b5e139f60e01b145b8061048257506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b606060008054610499906119ad565b80601f01602080910402602001604051908101604052809291908181526020018280546104c5906119ad565b80156105125780601f106104e757610100808354040283529160200191610512565b820191906000526020600020905b8154815290600101906020018083116104f557829003601f168201915b5050505050905090565b600061052782610cc1565b506000908152600460205260409020546001600160a01b031690565b600061054e8261084a565b9050806001600160a01b0316836001600160a01b031614156105c15760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105dd57506105dd81336103d3565b61064f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016105b8565b6106598383610d20565b505050565b600060095482111580156104825750506000908152600260205260409020546001600160a01b03161590565b6106943382610d8e565b6106b05760405162461bcd60e51b81526004016105b8906118f0565b610659838383610e0d565b61065983838360405180602001604052806000815250610b9c565b6008546001600160a01b031661072e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b0316146107915760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b6000818152600260205260409020546001600160a01b03166107f55760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42544b2d3030353a544f4b454e5f49445f494e56414c4944000060448201526064016105b8565b6107fe81610fa9565b6000818152600760209081526040918290205482519081529081018390527f9b94bd6eee531d53aaede5ff8a93d142b0afb2cf7fbbce1135a75efd7f29cb55910160405180910390a150565b6000818152600260205260408120546001600160a01b0316806104825760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b60006001600160a01b0382166109145760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105b8565b506001600160a01b031660009081526003602052604090205490565b610938611045565b610942600061109f565b565b6008546000906001600160a01b031661099f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b031614610a025760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b60098054906000610a12836119e8565b909155505060095460008181526007602052604090208490559050610a3782826110f1565b60408051848152602081018390526001600160a01b0384168183015290517ffd51d5a3232267986482b6be627e03dabfb0a2ce2025276823100423b5f558679181900360600190a192915050565b606060018054610499906119ad565b610a9f33838361110b565b5050565b6008546001600160a01b031615610b105760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030333a42554e444c455f4d4f44554c455f414c524560448201526a10511657d111519253915160aa1b60648201526084016105b8565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030343a494e56414c49445f42554e444c455f4d4f4460448201526a554c455f4144445245535360a81b60648201526084016105b8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610ba63383610d8e565b610bc25760405162461bcd60e51b81526004016105b8906118f0565b610bce848484846111da565b50505050565b6060610bdf82610cc1565b6000610bf660408051602081019091526000815290565b90506000815111610c165760405180602001604052806000815250610c41565b80610c208461120d565b604051602001610c3192919061181f565b6040516020818303038152906040525b9392505050565b610c50611045565b6001600160a01b038116610cb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b8565b610cbe8161109f565b50565b6000818152600260205260409020546001600160a01b0316610cbe5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610d558261084a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d9a8361084a565b9050806001600160a01b0316846001600160a01b03161480610de157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610e055750836001600160a01b0316610dfa8461051c565b6001600160a01b0316145b949350505050565b826001600160a01b0316610e208261084a565b6001600160a01b031614610e845760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016105b8565b6001600160a01b038216610ee65760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105b8565b610ef1600082610d20565b6001600160a01b0383166000908152600360205260408120805460019290610f1a90849061196a565b90915550506001600160a01b0382166000908152600360205260408120805460019290610f4890849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4610659565b6000610fb48261084a565b9050610fc1600083610d20565b6001600160a01b0381166000908152600360205260408120805460019290610fea90849061196a565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4610a9f565b6006546001600160a01b031633146109425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b8565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610a9f828260405180602001604052806000815250611328565b816001600160a01b0316836001600160a01b0316141561116d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105b8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6111e5848484610e0d565b6111f18484848461135b565b610bce5760405162461bcd60e51b81526004016105b89061189e565b60608161123257506040805180820190915260018152600360fc1b6020820152610485565b8160005b811561125c5780611246816119e8565b91506112559050600a83611956565b9150611236565b60008167ffffffffffffffff81111561128557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112af576020820181803683370190505b5090505b8415610e05576112c460018361196a565b91506112d1600a86611a03565b6112dc90603061193e565b60f81b8183815181106112ff57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611321600a86611956565b94506112b3565b6113328383611468565b61133f600084848461135b565b6106595760405162461bcd60e51b81526004016105b89061189e565b60006001600160a01b0384163b1561145d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061139f90339089908890889060040161184e565b602060405180830381600087803b1580156113b957600080fd5b505af19250505080156113e9575060408051601f3d908101601f191682019092526113e69181019061179d565b60015b611443573d808015611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50805161143b5760405162461bcd60e51b81526004016105b89061189e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610e05565b506001949350505050565b6001600160a01b0382166114be5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105b8565b6000818152600260205260409020546001600160a01b0316156115235760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105b8565b6001600160a01b038216600090815260036020526040812080546001929061154c90849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4610a9f565b80356001600160a01b038116811461048557600080fd5b6000602082840312156115d3578081fd5b610c41826115ab565b600080604083850312156115ee578081fd5b6115f7836115ab565b9150611605602084016115ab565b90509250929050565b600080600060608486031215611622578081fd5b61162b846115ab565b9250611639602085016115ab565b9150604084013590509250925092565b6000806000806080858703121561165e578081fd5b611667856115ab565b9350611675602086016115ab565b925060408501359150606085013567ffffffffffffffff80821115611698578283fd5b818701915087601f8301126116ab578283fd5b8135818111156116bd576116bd611a43565b604051601f8201601f19908116603f011681019083821181831017156116e5576116e5611a43565b816040528281528a60208487010111156116fd578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215611730578182fd5b611739836115ab565b91506020830135801515811461174d578182fd5b809150509250929050565b6000806040838503121561176a578182fd5b611773836115ab565b946020939093013593505050565b600060208284031215611792578081fd5b8135610c4181611a59565b6000602082840312156117ae578081fd5b8151610c4181611a59565b6000602082840312156117ca578081fd5b5035919050565b600080604083850312156117e3578182fd5b82359150611605602084016115ab565b6000815180845261180b816020860160208601611981565b601f01601f19169290920160200192915050565b60008351611831818460208801611981565b835190830190611845818360208801611981565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611881908301846117f3565b9695505050505050565b600060208252610c4160208301846117f3565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000821982111561195157611951611a17565b500190565b60008261196557611965611a2d565b500490565b60008282101561197c5761197c611a17565b500390565b60005b8381101561199c578181015183820152602001611984565b83811115610bce5750506000910152565b6002810460018216806119c157607f821691505b602082108114156119e257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119fc576119fc611a17565b5060010190565b600082611a1257611a12611a2d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610cbe57600080fdfea264697066735822122032918e0ae1816ccf1a3674eda3a468fbc7e9aedcee3910edd8f9f7aeb8199bcb64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH16 0x23A4A310213AB7323632902A37B5B2B7 PUSH1 0x81 SHL PUSH1 0x20 DUP1 DUP4 ADD SWAP2 DUP3 MSTORE DUP4 MLOAD DUP1 DUP6 ADD SWAP1 SWAP5 MSTORE PUSH1 0x3 DUP5 MSTORE PUSH3 0x42544B PUSH1 0xE8 SHL SWAP1 DUP5 ADD MSTORE DUP2 MLOAD SWAP2 SWAP3 SWAP2 PUSH3 0x65 SWAP2 PUSH1 0x0 SWAP2 PUSH3 0xF4 JUMP JUMPDEST POP DUP1 MLOAD PUSH3 0x7B SWAP1 PUSH1 0x1 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH3 0xF4 JUMP JUMPDEST POP POP POP PUSH3 0x98 PUSH3 0x92 PUSH3 0x9E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0xA2 JUMP JUMPDEST PUSH3 0x1D7 JUMP JUMPDEST CALLER SWAP1 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x102 SWAP1 PUSH3 0x19A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x126 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x171 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x141 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x171 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x171 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x171 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x154 JUMP JUMPDEST POP PUSH3 0x17F SWAP3 SWAP2 POP PUSH3 0x183 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x17F JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x184 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x1AF JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x1D1 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1AA5 DUP1 PUSH3 0x1E7 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6AE9D6E8 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xA38B714C GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xC87B56DD GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x414 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xA38B714C EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x39F JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x31E JUMPI DUP1 PUSH4 0x94BF804D EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x34A JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x6AE9D6E8 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x316 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x296 JUMPI DUP1 PUSH4 0x4F558E79 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x6AE73384 EQ PUSH2 0x2D2 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x29A63083 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x283 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0x23250CAE EQ PUSH2 0x23D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x1781 JUMP JUMPDEST PUSH2 0x436 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DE PUSH2 0x48A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x188B JUMP JUMPDEST PUSH2 0x1FE PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x51C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1CD JUMP JUMPDEST PUSH2 0x229 PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0x1758 JUMP JUMPDEST PUSH2 0x543 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x9 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1CD JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x24B CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x65E JUMP JUMPDEST PUSH2 0x229 PUSH2 0x25E CALLDATASIZE PUSH1 0x4 PUSH2 0x160E JUMP JUMPDEST PUSH2 0x68A JUMP JUMPDEST PUSH2 0x22F PUSH2 0x271 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x291 CALLDATASIZE PUSH1 0x4 PUSH2 0x160E JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST PUSH2 0x229 PUSH2 0x2A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x2B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x9 SLOAD LT ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x1FE PUSH2 0x2CD CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x84A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1FE JUMP JUMPDEST PUSH2 0x22F PUSH2 0x2F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0x8AA JUMP JUMPDEST PUSH2 0x229 PUSH2 0x930 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1FE JUMP JUMPDEST PUSH2 0x22F PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x17D1 JUMP JUMPDEST PUSH2 0x944 JUMP JUMPDEST PUSH2 0x1DE PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x358 CALLDATASIZE PUSH1 0x4 PUSH2 0x171E JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x36B CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0xAA3 JUMP JUMPDEST PUSH2 0x1DE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH16 0x23A4A310213AB7323632902A37B5B2B7 PUSH1 0x81 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x3AD CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH2 0xB9C JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x3C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0xBD4 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x3D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x15DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x1DE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x42544B PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x467 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x482 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x499 SWAP1 PUSH2 0x19AD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C5 SWAP1 PUSH2 0x19AD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x512 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x512 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x527 DUP3 PUSH2 0xCC1 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54E DUP3 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x5C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x5DD JUMPI POP PUSH2 0x5DD DUP2 CALLER PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x64F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206E6F7220617070726F76656420666F7220616C6C0000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 PUSH2 0xD20 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD DUP3 GT ISZERO DUP1 ISZERO PUSH2 0x482 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x694 CALLER DUP3 PUSH2 0xD8E JUMP JUMPDEST PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x18F0 JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 DUP4 PUSH2 0xE0D JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x72E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030313A4E4F545F494E495449414C495A4544000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x791 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030323A4E4F545F42554E444C455F4D4F44554C4500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030353A544F4B454E5F49445F494E56414C49440000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0x7FE DUP2 PUSH2 0xFA9 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x9B94BD6EEE531D53AAEDE5FF8A93D142B0AFB2CF7FBBCE1135A75EFD7F29CB55 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x482 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x914 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x938 PUSH2 0x1045 JUMP JUMPDEST PUSH2 0x942 PUSH1 0x0 PUSH2 0x109F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x99F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030313A4E4F545F494E495449414C495A4544000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030323A4E4F545F42554E444C455F4D4F44554C4500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xA12 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x9 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE SWAP1 POP PUSH2 0xA37 DUP3 DUP3 PUSH2 0x10F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xFD51D5A3232267986482B6BE627E03DABFB0A2CE2025276823100423B5F55867 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x499 SWAP1 PUSH2 0x19AD JUMP JUMPDEST PUSH2 0xA9F CALLER DUP4 DUP4 PUSH2 0x110B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xB10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030333A42554E444C455F4D4F44554C455F414C5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x10511657D1115192539151 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030343A494E56414C49445F42554E444C455F4D4F44 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x554C455F41444452455353 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xBA6 CALLER DUP4 PUSH2 0xD8E JUMP JUMPDEST PUSH2 0xBC2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x18F0 JUMP JUMPDEST PUSH2 0xBCE DUP5 DUP5 DUP5 DUP5 PUSH2 0x11DA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xBDF DUP3 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF6 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xC16 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xC41 JUMP JUMPDEST DUP1 PUSH2 0xC20 DUP5 PUSH2 0x120D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC31 SWAP3 SWAP2 SWAP1 PUSH2 0x181F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC50 PUSH2 0x1045 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xCB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0xCBE DUP2 PUSH2 0x109F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0xD55 DUP3 PUSH2 0x84A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD9A DUP4 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xDE1 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0xE05 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xDFA DUP5 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE20 DUP3 PUSH2 0x84A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xEE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0xEF1 PUSH1 0x0 DUP3 PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xF1A SWAP1 DUP5 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xF48 SWAP1 DUP5 SWAP1 PUSH2 0x193E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP5 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 PUSH2 0x659 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFB4 DUP3 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP PUSH2 0xFC1 PUSH1 0x0 DUP4 PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xFEA SWAP1 DUP5 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP4 SWAP1 LOG4 PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x942 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xA9F DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1328 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x116D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x11E5 DUP5 DUP5 DUP5 PUSH2 0xE0D JUMP JUMPDEST PUSH2 0x11F1 DUP5 DUP5 DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST PUSH2 0xBCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1232 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x485 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x125C JUMPI DUP1 PUSH2 0x1246 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1255 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0x1956 JUMP JUMPDEST SWAP2 POP PUSH2 0x1236 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1285 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x12AF JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0xE05 JUMPI PUSH2 0x12C4 PUSH1 0x1 DUP4 PUSH2 0x196A JUMP JUMPDEST SWAP2 POP PUSH2 0x12D1 PUSH1 0xA DUP7 PUSH2 0x1A03 JUMP JUMPDEST PUSH2 0x12DC SWAP1 PUSH1 0x30 PUSH2 0x193E JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x12FF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x1321 PUSH1 0xA DUP7 PUSH2 0x1956 JUMP JUMPDEST SWAP5 POP PUSH2 0x12B3 JUMP JUMPDEST PUSH2 0x1332 DUP4 DUP4 PUSH2 0x1468 JUMP JUMPDEST PUSH2 0x133F PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST PUSH2 0x659 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x145D JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x139F SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x184E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x13E9 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x13E6 SWAP2 DUP2 ADD SWAP1 PUSH2 0x179D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1443 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1417 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x141C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0x143B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0xE05 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x14BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1523 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x154C SWAP1 DUP5 SWAP1 PUSH2 0x193E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 SWAP3 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 PUSH2 0xA9F JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15D3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC41 DUP3 PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x15EE JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x15F7 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH2 0x1605 PUSH1 0x20 DUP5 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1622 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x162B DUP5 PUSH2 0x15AB JUMP JUMPDEST SWAP3 POP PUSH2 0x1639 PUSH1 0x20 DUP6 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x165E JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1667 DUP6 PUSH2 0x15AB JUMP JUMPDEST SWAP4 POP PUSH2 0x1675 PUSH1 0x20 DUP7 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1698 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16AB JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x16BD JUMPI PUSH2 0x16BD PUSH2 0x1A43 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x16E5 JUMPI PUSH2 0x16E5 PUSH2 0x1A43 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x16FD JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1730 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1739 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x174D JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x176A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1773 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1792 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC41 DUP2 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17AE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xC41 DUP2 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17CA JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17E3 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1605 PUSH1 0x20 DUP5 ADD PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x180B DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1981 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1831 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1981 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1845 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1981 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1881 SWAP1 DUP4 ADD DUP5 PUSH2 0x17F3 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xC41 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x17F3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x1C881B9BDC88185C1C1C9BDD9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1951 JUMPI PUSH2 0x1951 PUSH2 0x1A17 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1965 JUMPI PUSH2 0x1965 PUSH2 0x1A2D JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x197C JUMPI PUSH2 0x197C PUSH2 0x1A17 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x199C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1984 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xBCE JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x19C1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x19E2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x19FC JUMPI PUSH2 0x19FC PUSH2 0x1A17 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A12 JUMPI PUSH2 0x1A12 PUSH2 0x1A2D JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xCBE JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN SWAP2 DUP15 EXP 0xE1 DUP2 PUSH13 0xCF1A3674EDA3A468FBC7E9AEDC 0xEE CODECOPY LT 0xED 0xD8 0xF9 0xF7 0xAE 0xB8 NOT SWAP12 0xCB PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"244:2162:101:-:0;;;789:48;;;;;;;;;-1:-1:-1;810:4:101;;;;;;;;;;;-1:-1:-1;;;810:4:101;;;;;;;816:6;;;;;;;;;;;-1:-1:-1;;;816:6:101;;;;1456:13:54;;810:4:101;;816:6;1456:13:54;;-1:-1:-1;;1456:13:54;:::i;:::-;-1:-1:-1;1479:17:54;;;;:7;;:17;;;;;:::i;:::-;;1390:113;;936:32:41;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;244:2162:101;;640:96:59;719:10;640:96;:::o;2433:187:41:-;2525:6;;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;244:2162:101:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;244:2162:101;;;-1:-1:-1;244:2162:101;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:380:103;99:1;89:12;;146:1;136:12;;;157:2;;211:4;203:6;199:17;189:27;;157:2;264;256:6;253:14;233:18;230:38;227:2;;;310:10;305:3;301:20;298:1;291:31;345:4;342:1;335:15;373:4;370:1;363:15;227:2;;69:325;;;:::o;:::-;244:2162:101;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15271:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1141:1053:103","statements":[{"body":{"nodeType":"YulBlock","src":"1188:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1197:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1205:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1190:6:103"},"nodeType":"YulFunctionCall","src":"1190:22:103"},"nodeType":"YulExpressionStatement","src":"1190:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1162:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1171:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1158:3:103"},"nodeType":"YulFunctionCall","src":"1158:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1183:3:103","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1154:3:103"},"nodeType":"YulFunctionCall","src":"1154:33:103"},"nodeType":"YulIf","src":"1151:2:103"},{"nodeType":"YulAssignment","src":"1223:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1252:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1233:18:103"},"nodeType":"YulFunctionCall","src":"1233:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1223:6:103"}]},{"nodeType":"YulAssignment","src":"1271:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1304:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1315:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:103"},"nodeType":"YulFunctionCall","src":"1300:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1281:18:103"},"nodeType":"YulFunctionCall","src":"1281:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1271:6:103"}]},{"nodeType":"YulAssignment","src":"1328:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1355:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1366:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1351:3:103"},"nodeType":"YulFunctionCall","src":"1351:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1338:12:103"},"nodeType":"YulFunctionCall","src":"1338:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1328:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"1379:46:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1410:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1421:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1406:3:103"},"nodeType":"YulFunctionCall","src":"1406:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1393:12:103"},"nodeType":"YulFunctionCall","src":"1393:32:103"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1383:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1434:28:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1444:18:103","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1438:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1489:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1498:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1506:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1491:6:103"},"nodeType":"YulFunctionCall","src":"1491:22:103"},"nodeType":"YulExpressionStatement","src":"1491:22:103"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1477:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1485:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1474:2:103"},"nodeType":"YulFunctionCall","src":"1474:14:103"},"nodeType":"YulIf","src":"1471:2:103"},{"nodeType":"YulVariableDeclaration","src":"1524:32:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1538:9:103"},{"name":"offset","nodeType":"YulIdentifier","src":"1549:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1534:3:103"},"nodeType":"YulFunctionCall","src":"1534:22:103"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1528:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1604:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"1613:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"1621:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1606:6:103"},"nodeType":"YulFunctionCall","src":"1606:22:103"},"nodeType":"YulExpressionStatement","src":"1606:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1583:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1587:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1579:3:103"},"nodeType":"YulFunctionCall","src":"1579:13:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1594:7:103"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1575:3:103"},"nodeType":"YulFunctionCall","src":"1575:27:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1568:6:103"},"nodeType":"YulFunctionCall","src":"1568:35:103"},"nodeType":"YulIf","src":"1565:2:103"},{"nodeType":"YulVariableDeclaration","src":"1639:26:103","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1662:2:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1649:12:103"},"nodeType":"YulFunctionCall","src":"1649:16:103"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1643:2:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1688:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1690:16:103"},"nodeType":"YulFunctionCall","src":"1690:18:103"},"nodeType":"YulExpressionStatement","src":"1690:18:103"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1680:2:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1684:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1677:2:103"},"nodeType":"YulFunctionCall","src":"1677:10:103"},"nodeType":"YulIf","src":"1674:2:103"},{"nodeType":"YulVariableDeclaration","src":"1719:17:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1733:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1729:3:103"},"nodeType":"YulFunctionCall","src":"1729:7:103"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1723:2:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1745:23:103","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1765:2:103","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1759:5:103"},"nodeType":"YulFunctionCall","src":"1759:9:103"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1749:6:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1777:71:103","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1799:6:103"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1823:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"1827:4:103","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1819:3:103"},"nodeType":"YulFunctionCall","src":"1819:13:103"},{"name":"_4","nodeType":"YulIdentifier","src":"1834:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1815:3:103"},"nodeType":"YulFunctionCall","src":"1815:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1839:2:103","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1811:3:103"},"nodeType":"YulFunctionCall","src":"1811:31:103"},{"name":"_4","nodeType":"YulIdentifier","src":"1844:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1807:3:103"},"nodeType":"YulFunctionCall","src":"1807:40:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1795:3:103"},"nodeType":"YulFunctionCall","src":"1795:53:103"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"1781:10:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1907:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1909:16:103"},"nodeType":"YulFunctionCall","src":"1909:18:103"},"nodeType":"YulExpressionStatement","src":"1909:18:103"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1866:10:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1878:2:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1863:2:103"},"nodeType":"YulFunctionCall","src":"1863:18:103"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1886:10:103"},{"name":"memPtr","nodeType":"YulIdentifier","src":"1898:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1883:2:103"},"nodeType":"YulFunctionCall","src":"1883:22:103"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1860:2:103"},"nodeType":"YulFunctionCall","src":"1860:46:103"},"nodeType":"YulIf","src":"1857:2:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1945:2:103","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1949:10:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1938:6:103"},"nodeType":"YulFunctionCall","src":"1938:22:103"},"nodeType":"YulExpressionStatement","src":"1938:22:103"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1976:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"1984:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1969:6:103"},"nodeType":"YulFunctionCall","src":"1969:18:103"},"nodeType":"YulExpressionStatement","src":"1969:18:103"},{"body":{"nodeType":"YulBlock","src":"2033:26:103","statements":[{"expression":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"2042:6:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2050:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2035:6:103"},"nodeType":"YulFunctionCall","src":"2035:22:103"},"nodeType":"YulExpressionStatement","src":"2035:22:103"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2010:2:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2014:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2006:3:103"},"nodeType":"YulFunctionCall","src":"2006:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"2019:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2002:3:103"},"nodeType":"YulFunctionCall","src":"2002:20:103"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2024:7:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1999:2:103"},"nodeType":"YulFunctionCall","src":"1999:33:103"},"nodeType":"YulIf","src":"1996:2:103"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2085:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2093:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2081:3:103"},"nodeType":"YulFunctionCall","src":"2081:15:103"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2102:2:103"},{"kind":"number","nodeType":"YulLiteral","src":"2106:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2098:3:103"},"nodeType":"YulFunctionCall","src":"2098:11:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2111:2:103"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"2068:12:103"},"nodeType":"YulFunctionCall","src":"2068:46:103"},"nodeType":"YulExpressionStatement","src":"2068:46:103"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2138:6:103"},{"name":"_3","nodeType":"YulIdentifier","src":"2146:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2134:3:103"},"nodeType":"YulFunctionCall","src":"2134:15:103"},{"kind":"number","nodeType":"YulLiteral","src":"2151:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2130:3:103"},"nodeType":"YulFunctionCall","src":"2130:24:103"},{"name":"value3","nodeType":"YulIdentifier","src":"2156:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2123:6:103"},"nodeType":"YulFunctionCall","src":"2123:40:103"},"nodeType":"YulExpressionStatement","src":"2123:40:103"},{"nodeType":"YulAssignment","src":"2172:16:103","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"2182:6:103"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2172:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1083:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1094:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1106:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1114:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1122:6:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"1130:6:103","type":""}],"src":"1011:1183:103"},{"body":{"nodeType":"YulBlock","src":"2283:283:103","statements":[{"body":{"nodeType":"YulBlock","src":"2329:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2338:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2346:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2331:6:103"},"nodeType":"YulFunctionCall","src":"2331:22:103"},"nodeType":"YulExpressionStatement","src":"2331:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2304:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2313:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2300:3:103"},"nodeType":"YulFunctionCall","src":"2300:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2325:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2296:3:103"},"nodeType":"YulFunctionCall","src":"2296:32:103"},"nodeType":"YulIf","src":"2293:2:103"},{"nodeType":"YulAssignment","src":"2364:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2393:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2374:18:103"},"nodeType":"YulFunctionCall","src":"2374:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2364:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"2412:45:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2442:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2453:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2438:3:103"},"nodeType":"YulFunctionCall","src":"2438:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2425:12:103"},"nodeType":"YulFunctionCall","src":"2425:32:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2416:5:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"2510:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2519:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"2527:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2512:6:103"},"nodeType":"YulFunctionCall","src":"2512:22:103"},"nodeType":"YulExpressionStatement","src":"2512:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2479:5:103"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2500:5:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2493:6:103"},"nodeType":"YulFunctionCall","src":"2493:13:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2486:6:103"},"nodeType":"YulFunctionCall","src":"2486:21:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2476:2:103"},"nodeType":"YulFunctionCall","src":"2476:32:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2469:6:103"},"nodeType":"YulFunctionCall","src":"2469:40:103"},"nodeType":"YulIf","src":"2466:2:103"},{"nodeType":"YulAssignment","src":"2545:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"2555:5:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2545:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2241:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2252:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2264:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2272:6:103","type":""}],"src":"2199:367:103"},{"body":{"nodeType":"YulBlock","src":"2658:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"2704:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2713:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2721:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2706:6:103"},"nodeType":"YulFunctionCall","src":"2706:22:103"},"nodeType":"YulExpressionStatement","src":"2706:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2679:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2688:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2675:3:103"},"nodeType":"YulFunctionCall","src":"2675:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2700:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2671:3:103"},"nodeType":"YulFunctionCall","src":"2671:32:103"},"nodeType":"YulIf","src":"2668:2:103"},{"nodeType":"YulAssignment","src":"2739:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2768:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2749:18:103"},"nodeType":"YulFunctionCall","src":"2749:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2739:6:103"}]},{"nodeType":"YulAssignment","src":"2787:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2814:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2825:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2810:3:103"},"nodeType":"YulFunctionCall","src":"2810:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2797:12:103"},"nodeType":"YulFunctionCall","src":"2797:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2787:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2616:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2627:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2639:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2647:6:103","type":""}],"src":"2571:264:103"},{"body":{"nodeType":"YulBlock","src":"2909:186:103","statements":[{"body":{"nodeType":"YulBlock","src":"2955:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2964:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"2972:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2957:6:103"},"nodeType":"YulFunctionCall","src":"2957:22:103"},"nodeType":"YulExpressionStatement","src":"2957:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2930:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"2939:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2926:3:103"},"nodeType":"YulFunctionCall","src":"2926:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"2951:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2922:3:103"},"nodeType":"YulFunctionCall","src":"2922:32:103"},"nodeType":"YulIf","src":"2919:2:103"},{"nodeType":"YulVariableDeclaration","src":"2990:36:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3016:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3003:12:103"},"nodeType":"YulFunctionCall","src":"3003:23:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2994:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3059:5:103"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"3035:23:103"},"nodeType":"YulFunctionCall","src":"3035:30:103"},"nodeType":"YulExpressionStatement","src":"3035:30:103"},{"nodeType":"YulAssignment","src":"3074:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3084:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3074:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2875:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2886:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2898:6:103","type":""}],"src":"2840:255:103"},{"body":{"nodeType":"YulBlock","src":"3180:179:103","statements":[{"body":{"nodeType":"YulBlock","src":"3226:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3235:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3243:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3228:6:103"},"nodeType":"YulFunctionCall","src":"3228:22:103"},"nodeType":"YulExpressionStatement","src":"3228:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3201:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3210:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3197:3:103"},"nodeType":"YulFunctionCall","src":"3197:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3222:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3193:3:103"},"nodeType":"YulFunctionCall","src":"3193:32:103"},"nodeType":"YulIf","src":"3190:2:103"},{"nodeType":"YulVariableDeclaration","src":"3261:29:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3280:9:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3274:5:103"},"nodeType":"YulFunctionCall","src":"3274:16:103"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3265:5:103","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3323:5:103"}],"functionName":{"name":"validator_revert_bytes4","nodeType":"YulIdentifier","src":"3299:23:103"},"nodeType":"YulFunctionCall","src":"3299:30:103"},"nodeType":"YulExpressionStatement","src":"3299:30:103"},{"nodeType":"YulAssignment","src":"3338:15:103","value":{"name":"value","nodeType":"YulIdentifier","src":"3348:5:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3338:6:103"}]}]},"name":"abi_decode_tuple_t_bytes4_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3146:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3157:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3169:6:103","type":""}],"src":"3100:259:103"},{"body":{"nodeType":"YulBlock","src":"3434:120:103","statements":[{"body":{"nodeType":"YulBlock","src":"3480:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3489:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3497:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3482:6:103"},"nodeType":"YulFunctionCall","src":"3482:22:103"},"nodeType":"YulExpressionStatement","src":"3482:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3455:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3464:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3451:3:103"},"nodeType":"YulFunctionCall","src":"3451:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3476:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3447:3:103"},"nodeType":"YulFunctionCall","src":"3447:32:103"},"nodeType":"YulIf","src":"3444:2:103"},{"nodeType":"YulAssignment","src":"3515:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3538:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3525:12:103"},"nodeType":"YulFunctionCall","src":"3525:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3515:6:103"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3400:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3411:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3423:6:103","type":""}],"src":"3364:190:103"},{"body":{"nodeType":"YulBlock","src":"3646:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"3692:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3701:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"3709:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3694:6:103"},"nodeType":"YulFunctionCall","src":"3694:22:103"},"nodeType":"YulExpressionStatement","src":"3694:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3667:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"3676:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3663:3:103"},"nodeType":"YulFunctionCall","src":"3663:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"3688:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3659:3:103"},"nodeType":"YulFunctionCall","src":"3659:32:103"},"nodeType":"YulIf","src":"3656:2:103"},{"nodeType":"YulAssignment","src":"3727:33:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3750:9:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3737:12:103"},"nodeType":"YulFunctionCall","src":"3737:23:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3727:6:103"}]},{"nodeType":"YulAssignment","src":"3769:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3802:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3813:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3798:3:103"},"nodeType":"YulFunctionCall","src":"3798:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3779:18:103"},"nodeType":"YulFunctionCall","src":"3779:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3769:6:103"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3604:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3615:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3627:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3635:6:103","type":""}],"src":"3559:264:103"},{"body":{"nodeType":"YulBlock","src":"3877:208:103","statements":[{"nodeType":"YulVariableDeclaration","src":"3887:26:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3907:5:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3901:5:103"},"nodeType":"YulFunctionCall","src":"3901:12:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3891:6:103","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3929:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"3934:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3922:6:103"},"nodeType":"YulFunctionCall","src":"3922:19:103"},"nodeType":"YulExpressionStatement","src":"3922:19:103"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3976:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"3983:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3972:3:103"},"nodeType":"YulFunctionCall","src":"3972:16:103"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3994:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"3999:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3990:3:103"},"nodeType":"YulFunctionCall","src":"3990:14:103"},{"name":"length","nodeType":"YulIdentifier","src":"4006:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3950:21:103"},"nodeType":"YulFunctionCall","src":"3950:63:103"},"nodeType":"YulExpressionStatement","src":"3950:63:103"},{"nodeType":"YulAssignment","src":"4022:57:103","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4037:3:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4050:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4058:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4046:3:103"},"nodeType":"YulFunctionCall","src":"4046:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4067:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4063:3:103"},"nodeType":"YulFunctionCall","src":"4063:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4042:3:103"},"nodeType":"YulFunctionCall","src":"4042:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4033:3:103"},"nodeType":"YulFunctionCall","src":"4033:39:103"},{"kind":"number","nodeType":"YulLiteral","src":"4074:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4029:3:103"},"nodeType":"YulFunctionCall","src":"4029:50:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4022:3:103"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3854:5:103","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3861:3:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3869:3:103","type":""}],"src":"3828:257:103"},{"body":{"nodeType":"YulBlock","src":"4277:283:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4287:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4307:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4301:5:103"},"nodeType":"YulFunctionCall","src":"4301:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4291:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4349:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4357:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4345:3:103"},"nodeType":"YulFunctionCall","src":"4345:17:103"},{"name":"pos","nodeType":"YulIdentifier","src":"4364:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4369:6:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4323:21:103"},"nodeType":"YulFunctionCall","src":"4323:53:103"},"nodeType":"YulExpressionStatement","src":"4323:53:103"},{"nodeType":"YulVariableDeclaration","src":"4385:29:103","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4402:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"4407:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4398:3:103"},"nodeType":"YulFunctionCall","src":"4398:16:103"},"variables":[{"name":"end_1","nodeType":"YulTypedName","src":"4389:5:103","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4423:29:103","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4445:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4439:5:103"},"nodeType":"YulFunctionCall","src":"4439:13:103"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"4427:8:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"4487:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"4495:4:103","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4483:3:103"},"nodeType":"YulFunctionCall","src":"4483:17:103"},{"name":"end_1","nodeType":"YulIdentifier","src":"4502:5:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"4509:8:103"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4461:21:103"},"nodeType":"YulFunctionCall","src":"4461:57:103"},"nodeType":"YulExpressionStatement","src":"4461:57:103"},{"nodeType":"YulAssignment","src":"4527:27:103","value":{"arguments":[{"name":"end_1","nodeType":"YulIdentifier","src":"4538:5:103"},{"name":"length_1","nodeType":"YulIdentifier","src":"4545:8:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4534:3:103"},"nodeType":"YulFunctionCall","src":"4534:20:103"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4527:3:103"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4245:3:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4250:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4258:6:103","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4269:3:103","type":""}],"src":"4090:470:103"},{"body":{"nodeType":"YulBlock","src":"4666:102:103","statements":[{"nodeType":"YulAssignment","src":"4676:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4676:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4718:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4733:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4749:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4754:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4745:3:103"},"nodeType":"YulFunctionCall","src":"4745:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"4758:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4741:3:103"},"nodeType":"YulFunctionCall","src":"4741:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4729:3:103"},"nodeType":"YulFunctionCall","src":"4729:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4711:6:103"},"nodeType":"YulFunctionCall","src":"4711:51:103"},"nodeType":"YulExpressionStatement","src":"4711:51:103"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4635:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4646:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4657:4:103","type":""}],"src":"4565:203:103"},{"body":{"nodeType":"YulBlock","src":"4976:285:103","statements":[{"nodeType":"YulVariableDeclaration","src":"4986:29:103","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5004:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5009:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5000:3:103"},"nodeType":"YulFunctionCall","src":"5000:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"5013:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4996:3:103"},"nodeType":"YulFunctionCall","src":"4996:19:103"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4990:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5031:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5046:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5054:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5042:3:103"},"nodeType":"YulFunctionCall","src":"5042:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5024:6:103"},"nodeType":"YulFunctionCall","src":"5024:34:103"},"nodeType":"YulExpressionStatement","src":"5024:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5089:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5074:3:103"},"nodeType":"YulFunctionCall","src":"5074:18:103"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5098:6:103"},{"name":"_1","nodeType":"YulIdentifier","src":"5106:2:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5094:3:103"},"nodeType":"YulFunctionCall","src":"5094:15:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5067:6:103"},"nodeType":"YulFunctionCall","src":"5067:43:103"},"nodeType":"YulExpressionStatement","src":"5067:43:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5130:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5141:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5126:3:103"},"nodeType":"YulFunctionCall","src":"5126:18:103"},{"name":"value2","nodeType":"YulIdentifier","src":"5146:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5119:6:103"},"nodeType":"YulFunctionCall","src":"5119:34:103"},"nodeType":"YulExpressionStatement","src":"5119:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5173:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5184:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5169:3:103"},"nodeType":"YulFunctionCall","src":"5169:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5189:3:103","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5162:6:103"},"nodeType":"YulFunctionCall","src":"5162:31:103"},"nodeType":"YulExpressionStatement","src":"5162:31:103"},{"nodeType":"YulAssignment","src":"5202:53:103","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5227:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5239:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5250:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5235:3:103"},"nodeType":"YulFunctionCall","src":"5235:19:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5210:16:103"},"nodeType":"YulFunctionCall","src":"5210:45:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5202:4:103"}]}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4921:9:103","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4932:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4940:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4948:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4956:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4967:4:103","type":""}],"src":"4773:488:103"},{"body":{"nodeType":"YulBlock","src":"5361:92:103","statements":[{"nodeType":"YulAssignment","src":"5371:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5383:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5394:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5379:3:103"},"nodeType":"YulFunctionCall","src":"5379:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5371:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5413:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5438:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5431:6:103"},"nodeType":"YulFunctionCall","src":"5431:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5424:6:103"},"nodeType":"YulFunctionCall","src":"5424:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5406:6:103"},"nodeType":"YulFunctionCall","src":"5406:41:103"},"nodeType":"YulExpressionStatement","src":"5406:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5330:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5341:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5352:4:103","type":""}],"src":"5266:187:103"},{"body":{"nodeType":"YulBlock","src":"5579:98:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5596:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5607:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5589:6:103"},"nodeType":"YulFunctionCall","src":"5589:21:103"},"nodeType":"YulExpressionStatement","src":"5589:21:103"},{"nodeType":"YulAssignment","src":"5619:52:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5644:6:103"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5656:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5667:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5652:3:103"},"nodeType":"YulFunctionCall","src":"5652:18:103"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"5627:16:103"},"nodeType":"YulFunctionCall","src":"5627:44:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5619:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5548:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5559:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5570:4:103","type":""}],"src":"5458:219:103"},{"body":{"nodeType":"YulBlock","src":"5856:240:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5873:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5884:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5866:6:103"},"nodeType":"YulFunctionCall","src":"5866:21:103"},"nodeType":"YulExpressionStatement","src":"5866:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5918:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5903:3:103"},"nodeType":"YulFunctionCall","src":"5903:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"5923:2:103","type":"","value":"50"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5896:6:103"},"nodeType":"YulFunctionCall","src":"5896:30:103"},"nodeType":"YulExpressionStatement","src":"5896:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5946:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5957:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5942:3:103"},"nodeType":"YulFunctionCall","src":"5942:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"5962:34:103","type":"","value":"ERC721: transfer to non ERC721Re"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5935:6:103"},"nodeType":"YulFunctionCall","src":"5935:62:103"},"nodeType":"YulExpressionStatement","src":"5935:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6017:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6028:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6013:3:103"},"nodeType":"YulFunctionCall","src":"6013:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6033:20:103","type":"","value":"ceiver implementer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6006:6:103"},"nodeType":"YulFunctionCall","src":"6006:48:103"},"nodeType":"YulExpressionStatement","src":"6006:48:103"},{"nodeType":"YulAssignment","src":"6063:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6075:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6086:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6071:3:103"},"nodeType":"YulFunctionCall","src":"6071:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6063:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5833:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5847:4:103","type":""}],"src":"5682:414:103"},{"body":{"nodeType":"YulBlock","src":"6275:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6292:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6303:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6285:6:103"},"nodeType":"YulFunctionCall","src":"6285:21:103"},"nodeType":"YulExpressionStatement","src":"6285:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6326:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6337:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6322:3:103"},"nodeType":"YulFunctionCall","src":"6322:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6342:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6315:6:103"},"nodeType":"YulFunctionCall","src":"6315:30:103"},"nodeType":"YulExpressionStatement","src":"6315:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6376:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6361:3:103"},"nodeType":"YulFunctionCall","src":"6361:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6381:34:103","type":"","value":"Ownable: new owner is the zero a"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6354:6:103"},"nodeType":"YulFunctionCall","src":"6354:62:103"},"nodeType":"YulExpressionStatement","src":"6354:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6447:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6432:3:103"},"nodeType":"YulFunctionCall","src":"6432:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6452:8:103","type":"","value":"ddress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6425:6:103"},"nodeType":"YulFunctionCall","src":"6425:36:103"},"nodeType":"YulExpressionStatement","src":"6425:36:103"},{"nodeType":"YulAssignment","src":"6470:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6482:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6493:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6478:3:103"},"nodeType":"YulFunctionCall","src":"6478:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6470:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6252:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6266:4:103","type":""}],"src":"6101:402:103"},{"body":{"nodeType":"YulBlock","src":"6682:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6699:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6710:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6692:6:103"},"nodeType":"YulFunctionCall","src":"6692:21:103"},"nodeType":"YulExpressionStatement","src":"6692:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6733:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6744:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6729:3:103"},"nodeType":"YulFunctionCall","src":"6729:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"6749:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6722:6:103"},"nodeType":"YulFunctionCall","src":"6722:30:103"},"nodeType":"YulExpressionStatement","src":"6722:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6772:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6783:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6768:3:103"},"nodeType":"YulFunctionCall","src":"6768:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6788:34:103","type":"","value":"ERC721: transfer from incorrect "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6761:6:103"},"nodeType":"YulFunctionCall","src":"6761:62:103"},"nodeType":"YulExpressionStatement","src":"6761:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6854:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6839:3:103"},"nodeType":"YulFunctionCall","src":"6839:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"6859:7:103","type":"","value":"owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6832:6:103"},"nodeType":"YulFunctionCall","src":"6832:35:103"},"nodeType":"YulExpressionStatement","src":"6832:35:103"},{"nodeType":"YulAssignment","src":"6876:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6888:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"6899:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6884:3:103"},"nodeType":"YulFunctionCall","src":"6884:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6876:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6659:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6673:4:103","type":""}],"src":"6508:401:103"},{"body":{"nodeType":"YulBlock","src":"7088:178:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7105:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7116:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7098:6:103"},"nodeType":"YulFunctionCall","src":"7098:21:103"},"nodeType":"YulExpressionStatement","src":"7098:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7139:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7150:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7135:3:103"},"nodeType":"YulFunctionCall","src":"7135:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7155:2:103","type":"","value":"28"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7128:6:103"},"nodeType":"YulFunctionCall","src":"7128:30:103"},"nodeType":"YulExpressionStatement","src":"7128:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7178:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7189:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7174:3:103"},"nodeType":"YulFunctionCall","src":"7174:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7194:30:103","type":"","value":"ERC721: token already minted"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7167:6:103"},"nodeType":"YulFunctionCall","src":"7167:58:103"},"nodeType":"YulExpressionStatement","src":"7167:58:103"},{"nodeType":"YulAssignment","src":"7234:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7246:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7257:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7242:3:103"},"nodeType":"YulFunctionCall","src":"7242:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7234:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7065:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7079:4:103","type":""}],"src":"6914:352:103"},{"body":{"nodeType":"YulBlock","src":"7445:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7462:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7473:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7455:6:103"},"nodeType":"YulFunctionCall","src":"7455:21:103"},"nodeType":"YulExpressionStatement","src":"7455:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7496:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7507:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7492:3:103"},"nodeType":"YulFunctionCall","src":"7492:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7512:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7485:6:103"},"nodeType":"YulFunctionCall","src":"7485:30:103"},"nodeType":"YulExpressionStatement","src":"7485:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7535:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7546:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7531:3:103"},"nodeType":"YulFunctionCall","src":"7531:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7551:34:103","type":"","value":"ERC721: transfer to the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7524:6:103"},"nodeType":"YulFunctionCall","src":"7524:62:103"},"nodeType":"YulExpressionStatement","src":"7524:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7606:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7617:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7602:3:103"},"nodeType":"YulFunctionCall","src":"7602:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7622:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7595:6:103"},"nodeType":"YulFunctionCall","src":"7595:34:103"},"nodeType":"YulExpressionStatement","src":"7595:34:103"},{"nodeType":"YulAssignment","src":"7638:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7650:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7661:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7646:3:103"},"nodeType":"YulFunctionCall","src":"7646:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7638:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7422:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7436:4:103","type":""}],"src":"7271:400:103"},{"body":{"nodeType":"YulBlock","src":"7850:175:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7867:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7878:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7860:6:103"},"nodeType":"YulFunctionCall","src":"7860:21:103"},"nodeType":"YulExpressionStatement","src":"7860:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7901:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7912:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7897:3:103"},"nodeType":"YulFunctionCall","src":"7897:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"7917:2:103","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7890:6:103"},"nodeType":"YulFunctionCall","src":"7890:30:103"},"nodeType":"YulExpressionStatement","src":"7890:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7940:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"7951:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7936:3:103"},"nodeType":"YulFunctionCall","src":"7936:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"7956:27:103","type":"","value":"ERC721: approve to caller"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7929:6:103"},"nodeType":"YulFunctionCall","src":"7929:55:103"},"nodeType":"YulExpressionStatement","src":"7929:55:103"},{"nodeType":"YulAssignment","src":"7993:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8005:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8016:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8001:3:103"},"nodeType":"YulFunctionCall","src":"8001:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7993:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7827:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7841:4:103","type":""}],"src":"7676:349:103"},{"body":{"nodeType":"YulBlock","src":"8204:231:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8221:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8232:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8214:6:103"},"nodeType":"YulFunctionCall","src":"8214:21:103"},"nodeType":"YulExpressionStatement","src":"8214:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8255:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8266:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8251:3:103"},"nodeType":"YulFunctionCall","src":"8251:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8271:2:103","type":"","value":"41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8244:6:103"},"nodeType":"YulFunctionCall","src":"8244:30:103"},"nodeType":"YulExpressionStatement","src":"8244:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8294:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8305:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8290:3:103"},"nodeType":"YulFunctionCall","src":"8290:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8310:34:103","type":"","value":"ERC721: address zero is not a va"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8283:6:103"},"nodeType":"YulFunctionCall","src":"8283:62:103"},"nodeType":"YulExpressionStatement","src":"8283:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8365:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8376:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8361:3:103"},"nodeType":"YulFunctionCall","src":"8361:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8381:11:103","type":"","value":"lid owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8354:6:103"},"nodeType":"YulFunctionCall","src":"8354:39:103"},"nodeType":"YulExpressionStatement","src":"8354:39:103"},{"nodeType":"YulAssignment","src":"8402:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8414:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8425:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8410:3:103"},"nodeType":"YulFunctionCall","src":"8410:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8402:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8181:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8195:4:103","type":""}],"src":"8030:405:103"},{"body":{"nodeType":"YulBlock","src":"8614:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8631:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8642:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8624:6:103"},"nodeType":"YulFunctionCall","src":"8624:21:103"},"nodeType":"YulExpressionStatement","src":"8624:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8665:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8676:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8661:3:103"},"nodeType":"YulFunctionCall","src":"8661:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"8681:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8654:6:103"},"nodeType":"YulFunctionCall","src":"8654:30:103"},"nodeType":"YulExpressionStatement","src":"8654:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8704:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8715:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8700:3:103"},"nodeType":"YulFunctionCall","src":"8700:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"8720:31:103","type":"","value":"ERROR:BTK-001:NOT_INITIALIZED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8693:6:103"},"nodeType":"YulFunctionCall","src":"8693:59:103"},"nodeType":"YulExpressionStatement","src":"8693:59:103"},{"nodeType":"YulAssignment","src":"8761:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8773:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"8784:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8769:3:103"},"nodeType":"YulFunctionCall","src":"8769:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8761:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_71c345712a418cc2c46cd273ab8511c6cbb55feb2ba9f1d283511627144b0e51__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8591:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8605:4:103","type":""}],"src":"8440:353:103"},{"body":{"nodeType":"YulBlock","src":"8972:252:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8989:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9000:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8982:6:103"},"nodeType":"YulFunctionCall","src":"8982:21:103"},"nodeType":"YulExpressionStatement","src":"8982:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9023:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9034:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9019:3:103"},"nodeType":"YulFunctionCall","src":"9019:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9039:2:103","type":"","value":"62"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9012:6:103"},"nodeType":"YulFunctionCall","src":"9012:30:103"},"nodeType":"YulExpressionStatement","src":"9012:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9062:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9073:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9058:3:103"},"nodeType":"YulFunctionCall","src":"9058:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9078:34:103","type":"","value":"ERC721: approve caller is not to"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9051:6:103"},"nodeType":"YulFunctionCall","src":"9051:62:103"},"nodeType":"YulExpressionStatement","src":"9051:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9133:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9144:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9129:3:103"},"nodeType":"YulFunctionCall","src":"9129:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9149:32:103","type":"","value":"ken owner nor approved for all"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9122:6:103"},"nodeType":"YulFunctionCall","src":"9122:60:103"},"nodeType":"YulExpressionStatement","src":"9122:60:103"},{"nodeType":"YulAssignment","src":"9191:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9203:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9214:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9199:3:103"},"nodeType":"YulFunctionCall","src":"9199:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9191:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8949:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8963:4:103","type":""}],"src":"8798:426:103"},{"body":{"nodeType":"YulBlock","src":"9403:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9420:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9431:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9413:6:103"},"nodeType":"YulFunctionCall","src":"9413:21:103"},"nodeType":"YulExpressionStatement","src":"9413:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9454:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9465:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9450:3:103"},"nodeType":"YulFunctionCall","src":"9450:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9470:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9443:6:103"},"nodeType":"YulFunctionCall","src":"9443:30:103"},"nodeType":"YulExpressionStatement","src":"9443:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9493:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9504:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9489:3:103"},"nodeType":"YulFunctionCall","src":"9489:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9509:34:103","type":"","value":"ERC721: mint to the zero address"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9482:6:103"},"nodeType":"YulFunctionCall","src":"9482:62:103"},"nodeType":"YulExpressionStatement","src":"9482:62:103"},{"nodeType":"YulAssignment","src":"9553:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9565:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9576:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9561:3:103"},"nodeType":"YulFunctionCall","src":"9561:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9553:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9380:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9394:4:103","type":""}],"src":"9229:356:103"},{"body":{"nodeType":"YulBlock","src":"9764:182:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9781:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9792:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9774:6:103"},"nodeType":"YulFunctionCall","src":"9774:21:103"},"nodeType":"YulExpressionStatement","src":"9774:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9815:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9826:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9811:3:103"},"nodeType":"YulFunctionCall","src":"9811:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"9831:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9804:6:103"},"nodeType":"YulFunctionCall","src":"9804:30:103"},"nodeType":"YulExpressionStatement","src":"9804:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9854:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9865:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9850:3:103"},"nodeType":"YulFunctionCall","src":"9850:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"9870:34:103","type":"","value":"Ownable: caller is not the owner"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9843:6:103"},"nodeType":"YulFunctionCall","src":"9843:62:103"},"nodeType":"YulExpressionStatement","src":"9843:62:103"},{"nodeType":"YulAssignment","src":"9914:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9926:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"9937:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9922:3:103"},"nodeType":"YulFunctionCall","src":"9922:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9914:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9741:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9755:4:103","type":""}],"src":"9590:356:103"},{"body":{"nodeType":"YulBlock","src":"10125:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10142:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10153:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10135:6:103"},"nodeType":"YulFunctionCall","src":"10135:21:103"},"nodeType":"YulExpressionStatement","src":"10135:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10176:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10187:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10172:3:103"},"nodeType":"YulFunctionCall","src":"10172:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10192:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10165:6:103"},"nodeType":"YulFunctionCall","src":"10165:30:103"},"nodeType":"YulExpressionStatement","src":"10165:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10215:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10226:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10211:3:103"},"nodeType":"YulFunctionCall","src":"10211:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10231:34:103","type":"","value":"ERROR:BTK-003:BUNDLE_MODULE_ALRE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10204:6:103"},"nodeType":"YulFunctionCall","src":"10204:62:103"},"nodeType":"YulExpressionStatement","src":"10204:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10286:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10297:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10282:3:103"},"nodeType":"YulFunctionCall","src":"10282:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10302:13:103","type":"","value":"ADY_DEFINED"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10275:6:103"},"nodeType":"YulFunctionCall","src":"10275:41:103"},"nodeType":"YulExpressionStatement","src":"10275:41:103"},{"nodeType":"YulAssignment","src":"10325:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10337:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10348:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10333:3:103"},"nodeType":"YulFunctionCall","src":"10333:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10325:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_abc636ae2799ac58b80df921189c05433792fe090199f11c917db3daf328f355__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10102:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10116:4:103","type":""}],"src":"9951:407:103"},{"body":{"nodeType":"YulBlock","src":"10537:174:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10554:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10565:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10547:6:103"},"nodeType":"YulFunctionCall","src":"10547:21:103"},"nodeType":"YulExpressionStatement","src":"10547:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10588:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10599:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10584:3:103"},"nodeType":"YulFunctionCall","src":"10584:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10604:2:103","type":"","value":"24"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10577:6:103"},"nodeType":"YulFunctionCall","src":"10577:30:103"},"nodeType":"YulExpressionStatement","src":"10577:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10627:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10638:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10623:3:103"},"nodeType":"YulFunctionCall","src":"10623:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10643:26:103","type":"","value":"ERC721: invalid token ID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10616:6:103"},"nodeType":"YulFunctionCall","src":"10616:54:103"},"nodeType":"YulExpressionStatement","src":"10616:54:103"},{"nodeType":"YulAssignment","src":"10679:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10691:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10702:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10687:3:103"},"nodeType":"YulFunctionCall","src":"10687:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10679:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10514:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10528:4:103","type":""}],"src":"10363:348:103"},{"body":{"nodeType":"YulBlock","src":"10890:223:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10907:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10918:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10900:6:103"},"nodeType":"YulFunctionCall","src":"10900:21:103"},"nodeType":"YulExpressionStatement","src":"10900:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10941:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10952:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10937:3:103"},"nodeType":"YulFunctionCall","src":"10937:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"10957:2:103","type":"","value":"33"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10930:6:103"},"nodeType":"YulFunctionCall","src":"10930:30:103"},"nodeType":"YulExpressionStatement","src":"10930:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10980:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"10991:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10976:3:103"},"nodeType":"YulFunctionCall","src":"10976:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"10996:34:103","type":"","value":"ERC721: approval to current owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10969:6:103"},"nodeType":"YulFunctionCall","src":"10969:62:103"},"nodeType":"YulExpressionStatement","src":"10969:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11051:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11062:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11047:3:103"},"nodeType":"YulFunctionCall","src":"11047:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11067:3:103","type":"","value":"r"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11040:6:103"},"nodeType":"YulFunctionCall","src":"11040:31:103"},"nodeType":"YulExpressionStatement","src":"11040:31:103"},{"nodeType":"YulAssignment","src":"11080:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11092:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11103:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11088:3:103"},"nodeType":"YulFunctionCall","src":"11088:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11080:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10867:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10881:4:103","type":""}],"src":"10716:397:103"},{"body":{"nodeType":"YulBlock","src":"11292:233:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11309:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11320:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11302:6:103"},"nodeType":"YulFunctionCall","src":"11302:21:103"},"nodeType":"YulExpressionStatement","src":"11302:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11343:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11354:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11339:3:103"},"nodeType":"YulFunctionCall","src":"11339:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11359:2:103","type":"","value":"43"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11332:6:103"},"nodeType":"YulFunctionCall","src":"11332:30:103"},"nodeType":"YulExpressionStatement","src":"11332:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11382:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11393:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11378:3:103"},"nodeType":"YulFunctionCall","src":"11378:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11398:34:103","type":"","value":"ERROR:BTK-004:INVALID_BUNDLE_MOD"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11371:6:103"},"nodeType":"YulFunctionCall","src":"11371:62:103"},"nodeType":"YulExpressionStatement","src":"11371:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11453:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11464:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11449:3:103"},"nodeType":"YulFunctionCall","src":"11449:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11469:13:103","type":"","value":"ULE_ADDRESS"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11442:6:103"},"nodeType":"YulFunctionCall","src":"11442:41:103"},"nodeType":"YulExpressionStatement","src":"11442:41:103"},{"nodeType":"YulAssignment","src":"11492:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11504:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11515:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11500:3:103"},"nodeType":"YulFunctionCall","src":"11500:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11492:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_b8c7de1baab44a0acb8a288a8111919b2fbe55231df4bb3c2c01062efb0d0040__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11269:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11283:4:103","type":""}],"src":"11118:407:103"},{"body":{"nodeType":"YulBlock","src":"11704:181:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11721:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11732:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11714:6:103"},"nodeType":"YulFunctionCall","src":"11714:21:103"},"nodeType":"YulExpressionStatement","src":"11714:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11755:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11766:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11751:3:103"},"nodeType":"YulFunctionCall","src":"11751:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"11771:2:103","type":"","value":"31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11744:6:103"},"nodeType":"YulFunctionCall","src":"11744:30:103"},"nodeType":"YulExpressionStatement","src":"11744:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11794:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11805:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11790:3:103"},"nodeType":"YulFunctionCall","src":"11790:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"11810:33:103","type":"","value":"ERROR:BTK-002:NOT_BUNDLE_MODULE"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11783:6:103"},"nodeType":"YulFunctionCall","src":"11783:61:103"},"nodeType":"YulExpressionStatement","src":"11783:61:103"},{"nodeType":"YulAssignment","src":"11853:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11865:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"11876:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11861:3:103"},"nodeType":"YulFunctionCall","src":"11861:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11853:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e4463d809287d808796cb4a3a161ee1bce186c0b33e3e1818bc6844ffcc5748f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11681:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11695:4:103","type":""}],"src":"11530:355:103"},{"body":{"nodeType":"YulBlock","src":"12064:180:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12081:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12092:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12074:6:103"},"nodeType":"YulFunctionCall","src":"12074:21:103"},"nodeType":"YulExpressionStatement","src":"12074:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12115:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12126:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12111:3:103"},"nodeType":"YulFunctionCall","src":"12111:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12131:2:103","type":"","value":"30"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12104:6:103"},"nodeType":"YulFunctionCall","src":"12104:30:103"},"nodeType":"YulExpressionStatement","src":"12104:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12154:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12165:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12150:3:103"},"nodeType":"YulFunctionCall","src":"12150:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12170:32:103","type":"","value":"ERROR:BTK-005:TOKEN_ID_INVALID"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12143:6:103"},"nodeType":"YulFunctionCall","src":"12143:60:103"},"nodeType":"YulExpressionStatement","src":"12143:60:103"},{"nodeType":"YulAssignment","src":"12212:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12224:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12235:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12220:3:103"},"nodeType":"YulFunctionCall","src":"12220:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12212:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_e9b135c0fcb89fd6fb27d63d9c9b41b2ffa3e6cec6119734a095764dd4d45f96__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12041:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12055:4:103","type":""}],"src":"11890:354:103"},{"body":{"nodeType":"YulBlock","src":"12423:236:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12440:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12451:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12433:6:103"},"nodeType":"YulFunctionCall","src":"12433:21:103"},"nodeType":"YulExpressionStatement","src":"12433:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12474:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12485:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12470:3:103"},"nodeType":"YulFunctionCall","src":"12470:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"12490:2:103","type":"","value":"46"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12463:6:103"},"nodeType":"YulFunctionCall","src":"12463:30:103"},"nodeType":"YulExpressionStatement","src":"12463:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12513:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12524:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12509:3:103"},"nodeType":"YulFunctionCall","src":"12509:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12529:34:103","type":"","value":"ERC721: caller is not token owne"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12502:6:103"},"nodeType":"YulFunctionCall","src":"12502:62:103"},"nodeType":"YulExpressionStatement","src":"12502:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12584:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12595:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12580:3:103"},"nodeType":"YulFunctionCall","src":"12580:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"12600:16:103","type":"","value":"r nor approved"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12573:6:103"},"nodeType":"YulFunctionCall","src":"12573:44:103"},"nodeType":"YulExpressionStatement","src":"12573:44:103"},{"nodeType":"YulAssignment","src":"12626:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12638:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12649:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12634:3:103"},"nodeType":"YulFunctionCall","src":"12634:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12626:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12400:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12414:4:103","type":""}],"src":"12249:410:103"},{"body":{"nodeType":"YulBlock","src":"12765:76:103","statements":[{"nodeType":"YulAssignment","src":"12775:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12787:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"12798:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12783:3:103"},"nodeType":"YulFunctionCall","src":"12783:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12775:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12817:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"12828:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12810:6:103"},"nodeType":"YulFunctionCall","src":"12810:25:103"},"nodeType":"YulExpressionStatement","src":"12810:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12734:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12745:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12756:4:103","type":""}],"src":"12664:177:103"},{"body":{"nodeType":"YulBlock","src":"12975:119:103","statements":[{"nodeType":"YulAssignment","src":"12985:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12997:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13008:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12993:3:103"},"nodeType":"YulFunctionCall","src":"12993:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12985:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13027:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13038:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13020:6:103"},"nodeType":"YulFunctionCall","src":"13020:25:103"},"nodeType":"YulExpressionStatement","src":"13020:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13065:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13076:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13061:3:103"},"nodeType":"YulFunctionCall","src":"13061:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13081:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13054:6:103"},"nodeType":"YulFunctionCall","src":"13054:34:103"},"nodeType":"YulExpressionStatement","src":"13054:34:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12936:9:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12947:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12955:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12966:4:103","type":""}],"src":"12846:248:103"},{"body":{"nodeType":"YulBlock","src":"13256:188:103","statements":[{"nodeType":"YulAssignment","src":"13266:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13278:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13289:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13274:3:103"},"nodeType":"YulFunctionCall","src":"13274:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13266:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13308:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"13319:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13301:6:103"},"nodeType":"YulFunctionCall","src":"13301:25:103"},"nodeType":"YulExpressionStatement","src":"13301:25:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13346:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13357:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13342:3:103"},"nodeType":"YulFunctionCall","src":"13342:18:103"},{"name":"value1","nodeType":"YulIdentifier","src":"13362:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13335:6:103"},"nodeType":"YulFunctionCall","src":"13335:34:103"},"nodeType":"YulExpressionStatement","src":"13335:34:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13389:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"13400:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13385:3:103"},"nodeType":"YulFunctionCall","src":"13385:18:103"},{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"13409:6:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13425:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"13430:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13421:3:103"},"nodeType":"YulFunctionCall","src":"13421:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"13434:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13417:3:103"},"nodeType":"YulFunctionCall","src":"13417:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"13405:3:103"},"nodeType":"YulFunctionCall","src":"13405:32:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13378:6:103"},"nodeType":"YulFunctionCall","src":"13378:60:103"},"nodeType":"YulExpressionStatement","src":"13378:60:103"}]},"name":"abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13209:9:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"13220:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"13228:6:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"13236:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13247:4:103","type":""}],"src":"13099:345:103"},{"body":{"nodeType":"YulBlock","src":"13497:80:103","statements":[{"body":{"nodeType":"YulBlock","src":"13524:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13526:16:103"},"nodeType":"YulFunctionCall","src":"13526:18:103"},"nodeType":"YulExpressionStatement","src":"13526:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13513:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13520:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13516:3:103"},"nodeType":"YulFunctionCall","src":"13516:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"13510:2:103"},"nodeType":"YulFunctionCall","src":"13510:13:103"},"nodeType":"YulIf","src":"13507:2:103"},{"nodeType":"YulAssignment","src":"13555:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13566:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13569:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13562:3:103"},"nodeType":"YulFunctionCall","src":"13562:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"13555:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13480:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13483:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"13489:3:103","type":""}],"src":"13449:128:103"},{"body":{"nodeType":"YulBlock","src":"13628:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"13651:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"13653:16:103"},"nodeType":"YulFunctionCall","src":"13653:18:103"},"nodeType":"YulExpressionStatement","src":"13653:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"13648:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"13641:6:103"},"nodeType":"YulFunctionCall","src":"13641:9:103"},"nodeType":"YulIf","src":"13638:2:103"},{"nodeType":"YulAssignment","src":"13682:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13691:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13694:1:103"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"13687:3:103"},"nodeType":"YulFunctionCall","src":"13687:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"13682:1:103"}]}]},"name":"checked_div_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13613:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13616:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"13622:1:103","type":""}],"src":"13582:120:103"},{"body":{"nodeType":"YulBlock","src":"13756:76:103","statements":[{"body":{"nodeType":"YulBlock","src":"13778:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"13780:16:103"},"nodeType":"YulFunctionCall","src":"13780:18:103"},"nodeType":"YulExpressionStatement","src":"13780:18:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13772:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13775:1:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13769:2:103"},"nodeType":"YulFunctionCall","src":"13769:8:103"},"nodeType":"YulIf","src":"13766:2:103"},{"nodeType":"YulAssignment","src":"13809:17:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"13821:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"13824:1:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13817:3:103"},"nodeType":"YulFunctionCall","src":"13817:9:103"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"13809:4:103"}]}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"13738:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"13741:1:103","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"13747:4:103","type":""}],"src":"13707:125:103"},{"body":{"nodeType":"YulBlock","src":"13890:205:103","statements":[{"nodeType":"YulVariableDeclaration","src":"13900:10:103","value":{"kind":"number","nodeType":"YulLiteral","src":"13909:1:103","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"13904:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"13969:63:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"13994:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"13999:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13990:3:103"},"nodeType":"YulFunctionCall","src":"13990:11:103"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"14013:3:103"},{"name":"i","nodeType":"YulIdentifier","src":"14018:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14009:3:103"},"nodeType":"YulFunctionCall","src":"14009:11:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"14003:5:103"},"nodeType":"YulFunctionCall","src":"14003:18:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13983:6:103"},"nodeType":"YulFunctionCall","src":"13983:39:103"},"nodeType":"YulExpressionStatement","src":"13983:39:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13930:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"13933:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13927:2:103"},"nodeType":"YulFunctionCall","src":"13927:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13941:19:103","statements":[{"nodeType":"YulAssignment","src":"13943:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13952:1:103"},{"kind":"number","nodeType":"YulLiteral","src":"13955:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13948:3:103"},"nodeType":"YulFunctionCall","src":"13948:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"13943:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"13923:3:103","statements":[]},"src":"13919:113:103"},{"body":{"nodeType":"YulBlock","src":"14058:31:103","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"14071:3:103"},{"name":"length","nodeType":"YulIdentifier","src":"14076:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14067:3:103"},"nodeType":"YulFunctionCall","src":"14067:16:103"},{"kind":"number","nodeType":"YulLiteral","src":"14085:1:103","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14060:6:103"},"nodeType":"YulFunctionCall","src":"14060:27:103"},"nodeType":"YulExpressionStatement","src":"14060:27:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"14047:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"14050:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"14044:2:103"},"nodeType":"YulFunctionCall","src":"14044:13:103"},"nodeType":"YulIf","src":"14041:2:103"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"13868:3:103","type":""},{"name":"dst","nodeType":"YulTypedName","src":"13873:3:103","type":""},{"name":"length","nodeType":"YulTypedName","src":"13878:6:103","type":""}],"src":"13837:258:103"},{"body":{"nodeType":"YulBlock","src":"14155:325:103","statements":[{"nodeType":"YulAssignment","src":"14165:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14179:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"14185:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"14175:3:103"},"nodeType":"YulFunctionCall","src":"14175:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14165:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"14196:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"14226:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"14232:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14222:3:103"},"nodeType":"YulFunctionCall","src":"14222:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"14200:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"14273:31:103","statements":[{"nodeType":"YulAssignment","src":"14275:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14289:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"14297:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"14285:3:103"},"nodeType":"YulFunctionCall","src":"14285:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"14275:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14253:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14246:6:103"},"nodeType":"YulFunctionCall","src":"14246:26:103"},"nodeType":"YulIf","src":"14243:2:103"},{"body":{"nodeType":"YulBlock","src":"14363:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14384:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14391:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14396:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14387:3:103"},"nodeType":"YulFunctionCall","src":"14387:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14377:6:103"},"nodeType":"YulFunctionCall","src":"14377:31:103"},"nodeType":"YulExpressionStatement","src":"14377:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14428:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14431:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14421:6:103"},"nodeType":"YulFunctionCall","src":"14421:15:103"},"nodeType":"YulExpressionStatement","src":"14421:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14456:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14459:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14449:6:103"},"nodeType":"YulFunctionCall","src":"14449:15:103"},"nodeType":"YulExpressionStatement","src":"14449:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"14319:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"14342:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"14350:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"14339:2:103"},"nodeType":"YulFunctionCall","src":"14339:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14316:2:103"},"nodeType":"YulFunctionCall","src":"14316:38:103"},"nodeType":"YulIf","src":"14313:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"14135:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"14144:6:103","type":""}],"src":"14100:380:103"},{"body":{"nodeType":"YulBlock","src":"14532:88:103","statements":[{"body":{"nodeType":"YulBlock","src":"14563:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"14565:16:103"},"nodeType":"YulFunctionCall","src":"14565:18:103"},"nodeType":"YulExpressionStatement","src":"14565:18:103"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14548:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14559:1:103","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"14555:3:103"},"nodeType":"YulFunctionCall","src":"14555:6:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"14545:2:103"},"nodeType":"YulFunctionCall","src":"14545:17:103"},"nodeType":"YulIf","src":"14542:2:103"},{"nodeType":"YulAssignment","src":"14594:20:103","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"14605:5:103"},{"kind":"number","nodeType":"YulLiteral","src":"14612:1:103","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14601:3:103"},"nodeType":"YulFunctionCall","src":"14601:13:103"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"14594:3:103"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"14514:5:103","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"14524:3:103","type":""}],"src":"14485:135:103"},{"body":{"nodeType":"YulBlock","src":"14663:74:103","statements":[{"body":{"nodeType":"YulBlock","src":"14686:22:103","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x12","nodeType":"YulIdentifier","src":"14688:16:103"},"nodeType":"YulFunctionCall","src":"14688:18:103"},"nodeType":"YulExpressionStatement","src":"14688:18:103"}]},"condition":{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"14683:1:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"14676:6:103"},"nodeType":"YulFunctionCall","src":"14676:9:103"},"nodeType":"YulIf","src":"14673:2:103"},{"nodeType":"YulAssignment","src":"14717:14:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"14726:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"14729:1:103"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"14722:3:103"},"nodeType":"YulFunctionCall","src":"14722:9:103"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"14717:1:103"}]}]},"name":"mod_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"14648:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"14651:1:103","type":""}],"returnVariables":[{"name":"r","nodeType":"YulTypedName","src":"14657:1:103","type":""}],"src":"14625:112:103"},{"body":{"nodeType":"YulBlock","src":"14774:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14791:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14798:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14803:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14794:3:103"},"nodeType":"YulFunctionCall","src":"14794:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14784:6:103"},"nodeType":"YulFunctionCall","src":"14784:31:103"},"nodeType":"YulExpressionStatement","src":"14784:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14831:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14834:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14824:6:103"},"nodeType":"YulFunctionCall","src":"14824:15:103"},"nodeType":"YulExpressionStatement","src":"14824:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14855:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14858:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14848:6:103"},"nodeType":"YulFunctionCall","src":"14848:15:103"},"nodeType":"YulExpressionStatement","src":"14848:15:103"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"14742:127:103"},{"body":{"nodeType":"YulBlock","src":"14906:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14923:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14930:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"14935:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"14926:3:103"},"nodeType":"YulFunctionCall","src":"14926:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14916:6:103"},"nodeType":"YulFunctionCall","src":"14916:31:103"},"nodeType":"YulExpressionStatement","src":"14916:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14963:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"14966:4:103","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14956:6:103"},"nodeType":"YulFunctionCall","src":"14956:15:103"},"nodeType":"YulExpressionStatement","src":"14956:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"14987:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"14990:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"14980:6:103"},"nodeType":"YulFunctionCall","src":"14980:15:103"},"nodeType":"YulExpressionStatement","src":"14980:15:103"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"14874:127:103"},{"body":{"nodeType":"YulBlock","src":"15038:95:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15055:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15062:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15067:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15058:3:103"},"nodeType":"YulFunctionCall","src":"15058:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15048:6:103"},"nodeType":"YulFunctionCall","src":"15048:31:103"},"nodeType":"YulExpressionStatement","src":"15048:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15095:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15098:4:103","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15088:6:103"},"nodeType":"YulFunctionCall","src":"15088:15:103"},"nodeType":"YulExpressionStatement","src":"15088:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15119:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15122:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15112:6:103"},"nodeType":"YulFunctionCall","src":"15112:15:103"},"nodeType":"YulExpressionStatement","src":"15112:15:103"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"15006:127:103"},{"body":{"nodeType":"YulBlock","src":"15182:87:103","statements":[{"body":{"nodeType":"YulBlock","src":"15247:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15256:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15259:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15249:6:103"},"nodeType":"YulFunctionCall","src":"15249:12:103"},"nodeType":"YulExpressionStatement","src":"15249:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15205:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"15216:5:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15227:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15232:10:103","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15223:3:103"},"nodeType":"YulFunctionCall","src":"15223:20:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"15212:3:103"},"nodeType":"YulFunctionCall","src":"15212:32:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"15202:2:103"},"nodeType":"YulFunctionCall","src":"15202:43:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"15195:6:103"},"nodeType":"YulFunctionCall","src":"15195:51:103"},"nodeType":"YulIf","src":"15192:2:103"}]},"name":"validator_revert_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"15171:5:103","type":""}],"src":"15138:131:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value3, value3) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value3, value3) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(value3, value3) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(value3, value3) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), value3)\n value3 := memPtr\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, iszero(iszero(value)))) { revert(value1, value1) }\n value1 := value\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := calldataload(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory(add(value1, 0x20), end_1, length_1)\n end := add(end_1, length_1)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 50)\n mstore(add(headStart, 64), \"ERC721: transfer to non ERC721Re\")\n mstore(add(headStart, 96), \"ceiver implementer\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"Ownable: new owner is the zero a\")\n mstore(add(headStart, 96), \"ddress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC721: transfer from incorrect \")\n mstore(add(headStart, 96), \"owner\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"ERC721: token already minted\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC721: transfer to the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"ERC721: approve to caller\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 41)\n mstore(add(headStart, 64), \"ERC721: address zero is not a va\")\n mstore(add(headStart, 96), \"lid owner\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_71c345712a418cc2c46cd273ab8511c6cbb55feb2ba9f1d283511627144b0e51__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERROR:BTK-001:NOT_INITIALIZED\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8a333355a81806ed720720a526142c1e97d1086371f6be2b18561203134ef304__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 62)\n mstore(add(headStart, 64), \"ERC721: approve caller is not to\")\n mstore(add(headStart, 96), \"ken owner nor approved for all\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"ERC721: mint to the zero address\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Ownable: caller is not the owner\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_abc636ae2799ac58b80df921189c05433792fe090199f11c917db3daf328f355__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:BTK-003:BUNDLE_MODULE_ALRE\")\n mstore(add(headStart, 96), \"ADY_DEFINED\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"ERC721: invalid token ID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"ERC721: approval to current owne\")\n mstore(add(headStart, 96), \"r\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_b8c7de1baab44a0acb8a288a8111919b2fbe55231df4bb3c2c01062efb0d0040__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"ERROR:BTK-004:INVALID_BUNDLE_MOD\")\n mstore(add(headStart, 96), \"ULE_ADDRESS\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_e4463d809287d808796cb4a3a161ee1bce186c0b33e3e1818bc6844ffcc5748f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 31)\n mstore(add(headStart, 64), \"ERROR:BTK-002:NOT_BUNDLE_MODULE\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_e9b135c0fcb89fd6fb27d63d9c9b41b2ffa3e6cec6119734a095764dd4d45f96__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"ERROR:BTK-005:TOKEN_ID_INVALID\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_eb80b9f25203511adb7b7660e6222669e088cedd0909cd81ed7470e34dcd010b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"ERC721: caller is not token owne\")\n mstore(add(headStart, 96), \"r nor approved\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function mod_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := mod(x, y)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106101a95760003560e01c80636ae9d6e8116100f9578063a38b714c11610097578063c87b56dd11610071578063c87b56dd146103b2578063e985e9c5146103c5578063f2fde38b14610401578063f76f8d7814610414576101a9565b8063a38b714c1461035d578063a3f4df7e14610370578063b88d4fde1461039f576101a9565b80638da5cb5b116100d35780638da5cb5b1461031e57806394bf804d1461032f57806395d89b4114610342578063a22cb4651461034a576101a9565b80636ae9d6e8146102e357806370a0823114610303578063715018a614610316576101a9565b806323b872dd1161016657806342966c681161014057806342966c68146102965780634f558e79146102a95780636352211e146102bf5780636ae73384146102d2576101a9565b806323b872dd1461025057806329a630831461026357806342842e0e14610283576101a9565b806301ffc9a7146101ae57806306fdde03146101d6578063081812fc146101eb578063095ea7b31461021657806318160ddd1461022b57806323250cae1461023d575b600080fd5b6101c16101bc366004611781565b610436565b60405190151581526020015b60405180910390f35b6101de61048a565b6040516101cd919061188b565b6101fe6101f93660046117b9565b61051c565b6040516001600160a01b0390911681526020016101cd565b610229610224366004611758565b610543565b005b6009545b6040519081526020016101cd565b6101c161024b3660046117b9565b61065e565b61022961025e36600461160e565b61068a565b61022f6102713660046117b9565b60009081526007602052604090205490565b61022961029136600461160e565b6106bb565b6102296102a43660046117b9565b6106d6565b6101c16102b73660046117b9565b600954101590565b6101fe6102cd3660046117b9565b61084a565b6008546001600160a01b03166101fe565b61022f6102f13660046117b9565b60076020526000908152604090205481565b61022f6103113660046115c2565b6108aa565b610229610930565b6006546001600160a01b03166101fe565b61022f61033d3660046117d1565b610944565b6101de610a85565b61022961035836600461171e565b610a94565b61022961036b3660046115c2565b610aa3565b6101de6040518060400160405280601081526020016f23a4a310213ab7323632902a37b5b2b760811b81525081565b6102296103ad366004611649565b610b9c565b6101de6103c03660046117b9565b610bd4565b6101c16103d33660046115dc565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61022961040f3660046115c2565b610c48565b6101de6040518060400160405280600381526020016242544b60e81b81525081565b60006001600160e01b031982166380ac58cd60e01b148061046757506001600160e01b03198216635b5e139f60e01b145b8061048257506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b606060008054610499906119ad565b80601f01602080910402602001604051908101604052809291908181526020018280546104c5906119ad565b80156105125780601f106104e757610100808354040283529160200191610512565b820191906000526020600020905b8154815290600101906020018083116104f557829003601f168201915b5050505050905090565b600061052782610cc1565b506000908152600460205260409020546001600160a01b031690565b600061054e8261084a565b9050806001600160a01b0316836001600160a01b031614156105c15760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105dd57506105dd81336103d3565b61064f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016105b8565b6106598383610d20565b505050565b600060095482111580156104825750506000908152600260205260409020546001600160a01b03161590565b6106943382610d8e565b6106b05760405162461bcd60e51b81526004016105b8906118f0565b610659838383610e0d565b61065983838360405180602001604052806000815250610b9c565b6008546001600160a01b031661072e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b0316146107915760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b6000818152600260205260409020546001600160a01b03166107f55760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42544b2d3030353a544f4b454e5f49445f494e56414c4944000060448201526064016105b8565b6107fe81610fa9565b6000818152600760209081526040918290205482519081529081018390527f9b94bd6eee531d53aaede5ff8a93d142b0afb2cf7fbbce1135a75efd7f29cb55910160405180910390a150565b6000818152600260205260408120546001600160a01b0316806104825760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b60006001600160a01b0382166109145760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105b8565b506001600160a01b031660009081526003602052604090205490565b610938611045565b610942600061109f565b565b6008546000906001600160a01b031661099f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b031614610a025760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b60098054906000610a12836119e8565b909155505060095460008181526007602052604090208490559050610a3782826110f1565b60408051848152602081018390526001600160a01b0384168183015290517ffd51d5a3232267986482b6be627e03dabfb0a2ce2025276823100423b5f558679181900360600190a192915050565b606060018054610499906119ad565b610a9f33838361110b565b5050565b6008546001600160a01b031615610b105760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030333a42554e444c455f4d4f44554c455f414c524560448201526a10511657d111519253915160aa1b60648201526084016105b8565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030343a494e56414c49445f42554e444c455f4d4f4460448201526a554c455f4144445245535360a81b60648201526084016105b8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610ba63383610d8e565b610bc25760405162461bcd60e51b81526004016105b8906118f0565b610bce848484846111da565b50505050565b6060610bdf82610cc1565b6000610bf660408051602081019091526000815290565b90506000815111610c165760405180602001604052806000815250610c41565b80610c208461120d565b604051602001610c3192919061181f565b6040516020818303038152906040525b9392505050565b610c50611045565b6001600160a01b038116610cb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b8565b610cbe8161109f565b50565b6000818152600260205260409020546001600160a01b0316610cbe5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610d558261084a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d9a8361084a565b9050806001600160a01b0316846001600160a01b03161480610de157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610e055750836001600160a01b0316610dfa8461051c565b6001600160a01b0316145b949350505050565b826001600160a01b0316610e208261084a565b6001600160a01b031614610e845760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016105b8565b6001600160a01b038216610ee65760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105b8565b610ef1600082610d20565b6001600160a01b0383166000908152600360205260408120805460019290610f1a90849061196a565b90915550506001600160a01b0382166000908152600360205260408120805460019290610f4890849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4610659565b6000610fb48261084a565b9050610fc1600083610d20565b6001600160a01b0381166000908152600360205260408120805460019290610fea90849061196a565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4610a9f565b6006546001600160a01b031633146109425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b8565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610a9f828260405180602001604052806000815250611328565b816001600160a01b0316836001600160a01b0316141561116d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105b8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6111e5848484610e0d565b6111f18484848461135b565b610bce5760405162461bcd60e51b81526004016105b89061189e565b60608161123257506040805180820190915260018152600360fc1b6020820152610485565b8160005b811561125c5780611246816119e8565b91506112559050600a83611956565b9150611236565b60008167ffffffffffffffff81111561128557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112af576020820181803683370190505b5090505b8415610e05576112c460018361196a565b91506112d1600a86611a03565b6112dc90603061193e565b60f81b8183815181106112ff57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611321600a86611956565b94506112b3565b6113328383611468565b61133f600084848461135b565b6106595760405162461bcd60e51b81526004016105b89061189e565b60006001600160a01b0384163b1561145d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061139f90339089908890889060040161184e565b602060405180830381600087803b1580156113b957600080fd5b505af19250505080156113e9575060408051601f3d908101601f191682019092526113e69181019061179d565b60015b611443573d808015611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50805161143b5760405162461bcd60e51b81526004016105b89061189e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610e05565b506001949350505050565b6001600160a01b0382166114be5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105b8565b6000818152600260205260409020546001600160a01b0316156115235760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105b8565b6001600160a01b038216600090815260036020526040812080546001929061154c90849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4610a9f565b80356001600160a01b038116811461048557600080fd5b6000602082840312156115d3578081fd5b610c41826115ab565b600080604083850312156115ee578081fd5b6115f7836115ab565b9150611605602084016115ab565b90509250929050565b600080600060608486031215611622578081fd5b61162b846115ab565b9250611639602085016115ab565b9150604084013590509250925092565b6000806000806080858703121561165e578081fd5b611667856115ab565b9350611675602086016115ab565b925060408501359150606085013567ffffffffffffffff80821115611698578283fd5b818701915087601f8301126116ab578283fd5b8135818111156116bd576116bd611a43565b604051601f8201601f19908116603f011681019083821181831017156116e5576116e5611a43565b816040528281528a60208487010111156116fd578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215611730578182fd5b611739836115ab565b91506020830135801515811461174d578182fd5b809150509250929050565b6000806040838503121561176a578182fd5b611773836115ab565b946020939093013593505050565b600060208284031215611792578081fd5b8135610c4181611a59565b6000602082840312156117ae578081fd5b8151610c4181611a59565b6000602082840312156117ca578081fd5b5035919050565b600080604083850312156117e3578182fd5b82359150611605602084016115ab565b6000815180845261180b816020860160208601611981565b601f01601f19169290920160200192915050565b60008351611831818460208801611981565b835190830190611845818360208801611981565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611881908301846117f3565b9695505050505050565b600060208252610c4160208301846117f3565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000821982111561195157611951611a17565b500190565b60008261196557611965611a2d565b500490565b60008282101561197c5761197c611a17565b500390565b60005b8381101561199c578181015183820152602001611984565b83811115610bce5750506000910152565b6002810460018216806119c157607f821691505b602082108114156119e257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119fc576119fc611a17565b5060010190565b600082611a1257611a12611a2d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610cbe57600080fdfea264697066735822122032918e0ae1816ccf1a3674eda3a468fbc7e9aedcee3910edd8f9f7aeb8199bcb64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1A9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6AE9D6E8 GT PUSH2 0xF9 JUMPI DUP1 PUSH4 0xA38B714C GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xC87B56DD GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xC87B56DD EQ PUSH2 0x3B2 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x414 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0xA38B714C EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x370 JUMPI DUP1 PUSH4 0xB88D4FDE EQ PUSH2 0x39F JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x31E JUMPI DUP1 PUSH4 0x94BF804D EQ PUSH2 0x32F JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x342 JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x34A JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x6AE9D6E8 EQ PUSH2 0x2E3 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x303 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x316 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD GT PUSH2 0x166 JUMPI DUP1 PUSH4 0x42966C68 GT PUSH2 0x140 JUMPI DUP1 PUSH4 0x42966C68 EQ PUSH2 0x296 JUMPI DUP1 PUSH4 0x4F558E79 EQ PUSH2 0x2A9 JUMPI DUP1 PUSH4 0x6352211E EQ PUSH2 0x2BF JUMPI DUP1 PUSH4 0x6AE73384 EQ PUSH2 0x2D2 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x23B872DD EQ PUSH2 0x250 JUMPI DUP1 PUSH4 0x29A63083 EQ PUSH2 0x263 JUMPI DUP1 PUSH4 0x42842E0E EQ PUSH2 0x283 JUMPI PUSH2 0x1A9 JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x1D6 JUMPI DUP1 PUSH4 0x81812FC EQ PUSH2 0x1EB JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x216 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x22B JUMPI DUP1 PUSH4 0x23250CAE EQ PUSH2 0x23D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1C1 PUSH2 0x1BC CALLDATASIZE PUSH1 0x4 PUSH2 0x1781 JUMP JUMPDEST PUSH2 0x436 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DE PUSH2 0x48A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x188B JUMP JUMPDEST PUSH2 0x1FE PUSH2 0x1F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x51C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1CD JUMP JUMPDEST PUSH2 0x229 PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0x1758 JUMP JUMPDEST PUSH2 0x543 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x9 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1CD JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x24B CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x65E JUMP JUMPDEST PUSH2 0x229 PUSH2 0x25E CALLDATASIZE PUSH1 0x4 PUSH2 0x160E JUMP JUMPDEST PUSH2 0x68A JUMP JUMPDEST PUSH2 0x22F PUSH2 0x271 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x291 CALLDATASIZE PUSH1 0x4 PUSH2 0x160E JUMP JUMPDEST PUSH2 0x6BB JUMP JUMPDEST PUSH2 0x229 PUSH2 0x2A4 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x2B7 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x9 SLOAD LT ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x1FE PUSH2 0x2CD CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0x84A JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1FE JUMP JUMPDEST PUSH2 0x22F PUSH2 0x2F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 JUMP JUMPDEST PUSH2 0x22F PUSH2 0x311 CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0x8AA JUMP JUMPDEST PUSH2 0x229 PUSH2 0x930 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x1FE JUMP JUMPDEST PUSH2 0x22F PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x17D1 JUMP JUMPDEST PUSH2 0x944 JUMP JUMPDEST PUSH2 0x1DE PUSH2 0xA85 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x358 CALLDATASIZE PUSH1 0x4 PUSH2 0x171E JUMP JUMPDEST PUSH2 0xA94 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x36B CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0xAA3 JUMP JUMPDEST PUSH2 0x1DE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH16 0x23A4A310213AB7323632902A37B5B2B7 PUSH1 0x81 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x3AD CALLDATASIZE PUSH1 0x4 PUSH2 0x1649 JUMP JUMPDEST PUSH2 0xB9C JUMP JUMPDEST PUSH2 0x1DE PUSH2 0x3C0 CALLDATASIZE PUSH1 0x4 PUSH2 0x17B9 JUMP JUMPDEST PUSH2 0xBD4 JUMP JUMPDEST PUSH2 0x1C1 PUSH2 0x3D3 CALLDATASIZE PUSH1 0x4 PUSH2 0x15DC JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x229 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0xC48 JUMP JUMPDEST PUSH2 0x1DE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x42544B PUSH1 0xE8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x80AC58CD PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x467 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5B5E139F PUSH1 0xE0 SHL EQ JUMPDEST DUP1 PUSH2 0x482 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD PUSH2 0x499 SWAP1 PUSH2 0x19AD JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x4C5 SWAP1 PUSH2 0x19AD JUMP JUMPDEST DUP1 ISZERO PUSH2 0x512 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E7 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x512 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x4F5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x527 DUP3 PUSH2 0xCC1 JUMP JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54E DUP3 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x5C1 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76616C20746F2063757272656E74206F776E65 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x39 PUSH1 0xF9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND EQ DUP1 PUSH2 0x5DD JUMPI POP PUSH2 0x5DD DUP2 CALLER PUSH2 0x3D3 JUMP JUMPDEST PUSH2 0x64F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x3E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F76652063616C6C6572206973206E6F7420746F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6B656E206F776E6572206E6F7220617070726F76656420666F7220616C6C0000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 PUSH2 0xD20 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x9 SLOAD DUP3 GT ISZERO DUP1 ISZERO PUSH2 0x482 JUMPI POP POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO SWAP1 JUMP JUMPDEST PUSH2 0x694 CALLER DUP3 PUSH2 0xD8E JUMP JUMPDEST PUSH2 0x6B0 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x18F0 JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 DUP4 PUSH2 0xE0D JUMP JUMPDEST PUSH2 0x659 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xB9C JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x72E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030313A4E4F545F494E495449414C495A4544000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x791 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030323A4E4F545F42554E444C455F4D4F44554C4500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x7F5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030353A544F4B454E5F49445F494E56414C49440000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0x7FE DUP2 PUSH2 0xFA9 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 SLOAD DUP3 MLOAD SWAP1 DUP2 MSTORE SWAP1 DUP2 ADD DUP4 SWAP1 MSTORE PUSH32 0x9B94BD6EEE531D53AAEDE5FF8A93D142B0AFB2CF7FBBCE1135A75EFD7F29CB55 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP1 PUSH2 0x482 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x914 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x29 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A2061646472657373207A65726F206973206E6F742061207661 PUSH1 0x44 DUP3 ADD MSTORE PUSH9 0x3634B21037BBB732B9 PUSH1 0xB9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x938 PUSH2 0x1045 JUMP JUMPDEST PUSH2 0x942 PUSH1 0x0 PUSH2 0x109F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x0 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x99F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030313A4E4F545F494E495449414C495A4544000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1F PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030323A4E4F545F42554E444C455F4D4F44554C4500 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x9 DUP1 SLOAD SWAP1 PUSH1 0x0 PUSH2 0xA12 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x9 SLOAD PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x7 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP5 SWAP1 SSTORE SWAP1 POP PUSH2 0xA37 DUP3 DUP3 PUSH2 0x10F1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH32 0xFD51D5A3232267986482B6BE627E03DABFB0A2CE2025276823100423B5F55867 SWAP2 DUP2 SWAP1 SUB PUSH1 0x60 ADD SWAP1 LOG1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x499 SWAP1 PUSH2 0x19AD JUMP JUMPDEST PUSH2 0xA9F CALLER DUP4 DUP4 PUSH2 0x110B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x8 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0xB10 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030333A42554E444C455F4D4F44554C455F414C5245 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x10511657D1115192539151 PUSH1 0xAA SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xB7A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552524F523A42544B2D3030343A494E56414C49445F42554E444C455F4D4F44 PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0x554C455F41444452455353 PUSH1 0xA8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x8 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xBA6 CALLER DUP4 PUSH2 0xD8E JUMP JUMPDEST PUSH2 0xBC2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x18F0 JUMP JUMPDEST PUSH2 0xBCE DUP5 DUP5 DUP5 DUP5 PUSH2 0x11DA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0xBDF DUP3 PUSH2 0xCC1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF6 PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT PUSH2 0xC16 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xC41 JUMP JUMPDEST DUP1 PUSH2 0xC20 DUP5 PUSH2 0x120D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC31 SWAP3 SWAP2 SWAP1 PUSH2 0x181F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC50 PUSH2 0x1045 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0xCB5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x646472657373 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0xCBE DUP2 PUSH2 0x109F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xCBE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH24 0x115490CDCC8C4E881A5B9D985B1A59081D1BDAD95B881251 PUSH1 0x42 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE DUP2 SWAP1 PUSH2 0xD55 DUP3 PUSH2 0x84A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD9A DUP4 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ DUP1 PUSH2 0xDE1 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP9 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0xFF AND JUMPDEST DUP1 PUSH2 0xE05 JUMPI POP DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xDFA DUP5 PUSH2 0x51C JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0xE20 DUP3 PUSH2 0x84A JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xE84 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E736665722066726F6D20696E636F727265637420 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x37BBB732B9 PUSH1 0xD9 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0xEE6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH2 0xEF1 PUSH1 0x0 DUP3 PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xF1A SWAP1 DUP5 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xF48 SWAP1 DUP5 SWAP1 PUSH2 0x193E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 DUP2 AND SWAP2 DUP3 OR SWAP1 SWAP3 SSTORE SWAP2 MLOAD DUP5 SWAP4 SWAP2 DUP8 AND SWAP2 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP2 LOG4 PUSH2 0x659 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFB4 DUP3 PUSH2 0x84A JUMP JUMPDEST SWAP1 POP PUSH2 0xFC1 PUSH1 0x0 DUP4 PUSH2 0xD20 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0xFEA SWAP1 DUP5 SWAP1 PUSH2 0x196A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND SWAP1 SSTORE MLOAD DUP4 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP4 SWAP1 LOG4 PUSH2 0xA9F JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x942 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR SWAP1 SWAP4 SSTORE PUSH1 0x40 MLOAD SWAP2 AND SWAP2 SWAP1 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xA9F DUP3 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1328 JUMP JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ ISZERO PUSH2 0x116D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20617070726F766520746F2063616C6C657200000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND DUP7 ISZERO ISZERO SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP2 DUP3 MSTORE PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH2 0x11E5 DUP5 DUP5 DUP5 PUSH2 0xE0D JUMP JUMPDEST PUSH2 0x11F1 DUP5 DUP5 DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST PUSH2 0xBCE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1232 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x485 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x125C JUMPI DUP1 PUSH2 0x1246 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1255 SWAP1 POP PUSH1 0xA DUP4 PUSH2 0x1956 JUMP JUMPDEST SWAP2 POP PUSH2 0x1236 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1285 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x12AF JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP JUMPDEST DUP5 ISZERO PUSH2 0xE05 JUMPI PUSH2 0x12C4 PUSH1 0x1 DUP4 PUSH2 0x196A JUMP JUMPDEST SWAP2 POP PUSH2 0x12D1 PUSH1 0xA DUP7 PUSH2 0x1A03 JUMP JUMPDEST PUSH2 0x12DC SWAP1 PUSH1 0x30 PUSH2 0x193E JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x12FF JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH2 0x1321 PUSH1 0xA DUP7 PUSH2 0x1956 JUMP JUMPDEST SWAP5 POP PUSH2 0x12B3 JUMP JUMPDEST PUSH2 0x1332 DUP4 DUP4 PUSH2 0x1468 JUMP JUMPDEST PUSH2 0x133F PUSH1 0x0 DUP5 DUP5 DUP5 PUSH2 0x135B JUMP JUMPDEST PUSH2 0x659 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE ISZERO PUSH2 0x145D JUMPI PUSH1 0x40 MLOAD PUSH4 0xA85BD01 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND SWAP1 PUSH4 0x150B7A02 SWAP1 PUSH2 0x139F SWAP1 CALLER SWAP1 DUP10 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x184E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x13B9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x13E9 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD SWAP1 SWAP3 MSTORE PUSH2 0x13E6 SWAP2 DUP2 ADD SWAP1 PUSH2 0x179D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1443 JUMPI RETURNDATASIZE DUP1 DUP1 ISZERO PUSH2 0x1417 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x141C JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP DUP1 MLOAD PUSH2 0x143B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5B8 SWAP1 PUSH2 0x189E JUMP JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH4 0xA85BD01 PUSH1 0xE1 SHL EQ SWAP1 POP PUSH2 0xE05 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x14BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A206D696E7420746F20746865207A65726F2061646472657373 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND ISZERO PUSH2 0x1523 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4552433732313A20746F6B656E20616C7265616479206D696E74656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x5B8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD PUSH1 0x1 SWAP3 SWAP1 PUSH2 0x154C SWAP1 DUP5 SWAP1 PUSH2 0x193E JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SWAP1 MLOAD DUP4 SWAP3 SWAP1 PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF SWAP1 DUP3 SWAP1 LOG4 PUSH2 0xA9F JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x485 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x15D3 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC41 DUP3 PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x15EE JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x15F7 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH2 0x1605 PUSH1 0x20 DUP5 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1622 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x162B DUP5 PUSH2 0x15AB JUMP JUMPDEST SWAP3 POP PUSH2 0x1639 PUSH1 0x20 DUP6 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x165E JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x1667 DUP6 PUSH2 0x15AB JUMP JUMPDEST SWAP4 POP PUSH2 0x1675 PUSH1 0x20 DUP7 ADD PUSH2 0x15AB JUMP JUMPDEST SWAP3 POP PUSH1 0x40 DUP6 ADD CALLDATALOAD SWAP2 POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x1698 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x16AB JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x16BD JUMPI PUSH2 0x16BD PUSH2 0x1A43 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x16E5 JUMPI PUSH2 0x16E5 PUSH2 0x1A43 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP11 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x16FD JUMPI DUP6 DUP7 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP2 DUP3 ADD PUSH1 0x20 ADD SWAP5 SWAP1 SWAP5 MSTORE SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP3 SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1730 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1739 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x174D JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x176A JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1773 DUP4 PUSH2 0x15AB JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1792 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC41 DUP2 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17AE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xC41 DUP2 PUSH2 0x1A59 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x17CA JUMPI DUP1 DUP2 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x17E3 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1605 PUSH1 0x20 DUP5 ADD PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x180B DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x1981 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH2 0x1831 DUP2 DUP5 PUSH1 0x20 DUP9 ADD PUSH2 0x1981 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x1845 DUP2 DUP4 PUSH1 0x20 DUP9 ADD PUSH2 0x1981 JUMP JUMPDEST ADD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP3 MSTORE DUP5 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x80 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1881 SWAP1 DUP4 ADD DUP5 PUSH2 0x17F3 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0xC41 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x17F3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x32 SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A207472616E7366657220746F206E6F6E204552433732315265 PUSH1 0x40 DUP3 ADD MSTORE PUSH18 0x31B2B4BB32B91034B6B83632B6B2B73A32B9 PUSH1 0x71 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x2E SWAP1 DUP3 ADD MSTORE PUSH32 0x4552433732313A2063616C6C6572206973206E6F7420746F6B656E206F776E65 PUSH1 0x40 DUP3 ADD MSTORE PUSH14 0x1C881B9BDC88185C1C1C9BDD9959 PUSH1 0x92 SHL PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x80 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x1951 JUMPI PUSH2 0x1951 PUSH2 0x1A17 JUMP JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1965 JUMPI PUSH2 0x1965 PUSH2 0x1A2D JUMP JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x197C JUMPI PUSH2 0x197C PUSH2 0x1A17 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x199C JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x1984 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xBCE JUMPI POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x19C1 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x19E2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x19FC JUMPI PUSH2 0x19FC PUSH2 0x1A17 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A12 JUMPI PUSH2 0x1A12 PUSH2 0x1A2D JUMP JUMPDEST POP MOD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xCBE JUMPI PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN SWAP2 DUP15 EXP 0xE1 DUP2 PUSH13 0xCF1A3674EDA3A468FBC7E9AEDC 0xEE CODECOPY LT 0xED 0xD8 0xF9 0xF7 0xAE 0xB8 NOT SWAP12 0xCB PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"244:2162:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:300:54;;;;;;:::i;:::-;;:::i;:::-;;;5431:14:103;;5424:22;5406:41;;5394:2;5379:18;1570:300:54;;;;;;;;2470:98;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4729:32:103;;;4711:51;;4699:2;4684:18;3935:167:54;4666:102:103;3467:407:54;;;;;;:::i;:::-;;:::i;:::-;;2306:98:101;2389:12;;2306:98;;;12810:25:103;;;12798:2;12783:18;2306:98:101;12765:76:103;1794:178:101;;;;;;:::i;:::-;;:::i;4612:327:54:-;;;;;;:::i;:::-;;:::i;1978:117:101:-;;;;;;:::i;:::-;2047:7;2065:27;;;:18;:27;;;;;;;1978:117;5005:179:54;;;;;;:::i;:::-;;:::i;1517:271:101:-;;;;;;:::i;:::-;;:::i;2196:105::-;;;;;;:::i;:::-;2286:12;;-1:-1:-1;2275:23:101;;2196:105;2190:218:54;;;;;;:::i;:::-;;:::i;2100:90:101:-;2174:13;;-1:-1:-1;;;;;2174:13:101;2100:90;;415:84;;;;;;:::i;:::-;;;;;;;;;;;;;;1929:204:54;;;;;;:::i;:::-;;:::i;1831:101:41:-;;;:::i;1201:85::-;1273:6;;-1:-1:-1;;;;;1273:6:41;1201:85;;1148:362:101;;;;;;:::i;:::-;;:::i;2632:102:54:-;;;:::i;4169:153::-;;;;;;:::i;:::-;;:::i;843:298:101:-;;;;;;:::i;:::-;;:::i;317:48::-;;;;;;;;;;;;;;;-1:-1:-1;;;317:48:101;;;;;5250:315:54;;;;;;:::i;:::-;;:::i;2800:276::-;;;;;;:::i;:::-;;:::i;4388:162::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4508:25:54;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;2081:198:41;;;;;;:::i;:::-;;:::i;371:37:101:-;;;;;;;;;;;;;;;-1:-1:-1;;;371:37:101;;;;;1570:300:54;1672:4;-1:-1:-1;;;;;;1707:40:54;;-1:-1:-1;;;1707:40:54;;:104;;-1:-1:-1;;;;;;;1763:48:54;;-1:-1:-1;;;1763:48:54;1707:104;:156;;;-1:-1:-1;;;;;;;;;;937:40:62;;;1827:36:54;1688:175;;1570:300;;;;:::o;2470:98::-;2524:13;2556:5;2549:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2470:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:54;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:54;;3935:167::o;3467:407::-;3547:13;3563:23;3578:7;3563:14;:23::i;:::-;3547:39;;3610:5;-1:-1:-1;;;;;3604:11:54;:2;-1:-1:-1;;;;;3604:11:54;;;3596:57;;;;-1:-1:-1;;;3596:57:54;;10918:2:103;3596:57:54;;;10900:21:103;10957:2;10937:18;;;10930:30;10996:34;10976:18;;;10969:62;-1:-1:-1;;;11047:18:103;;;11040:31;11088:19;;3596:57:54;;;;;;;;;719:10:59;-1:-1:-1;;;;;3685:21:54;;;;:62;;-1:-1:-1;3710:37:54;3727:5;719:10:59;3734:12:54;640:96:59;3710:37:54;3664:171;;;;-1:-1:-1;;;3664:171:54;;9000:2:103;3664:171:54;;;8982:21:103;9039:2;9019:18;;;9012:30;9078:34;9058:18;;;9051:62;9149:32;9129:18;;;9122:60;9199:19;;3664:171:54;8972:252:103;3664:171:54;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3467:407;;;:::o;1794:178:101:-;1881:13;1932:12;;1921:7;:23;;:44;;;;-1:-1:-1;;7099:4:54;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:54;:30;;1794:178:101:o;4612:327:54:-;4801:41;719:10:59;4834:7:54;4801:18;:41::i;:::-;4793:100;;;;-1:-1:-1;;;4793:100:54;;;;;;;:::i;:::-;4904:28;4914:4;4920:2;4924:7;4904:9;:28::i;5005:179::-;5138:39;5155:4;5161:2;5165:7;5138:39;;;;;;;;;;;;:16;:39::i;1517:271:101:-;621:13;;-1:-1:-1;;;;;621:13:101;613:69;;;;-1:-1:-1;;;613:69:101;;8642:2:103;613:69:101;;;8624:21:103;8681:2;8661:18;;;8654:30;8720:31;8700:18;;;8693:59;8769:18;;613:69:101;8614:179:103;613:69:101;716:13;;-1:-1:-1;;;;;716:13:101;719:10:59;-1:-1:-1;;;;;700:29:101;;692:73;;;;-1:-1:-1;;;692:73:101;;11732:2:103;692:73:101;;;11714:21:103;11771:2;11751:18;;;11744:30;11810:33;11790:18;;;11783:61;11861:18;;692:73:101;11704:181:103;692:73:101;7099:4:54;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:54;1605:59:101::1;;;::::0;-1:-1:-1;;;1605:59:101;;12092:2:103;1605:59:101::1;::::0;::::1;12074:21:103::0;12131:2;12111:18;;;12104:30;12170:32;12150:18;;;12143:60;12220:18;;1605:59:101::1;12064:180:103::0;1605:59:101::1;1682:14;1688:7;1682:5;:14::i;:::-;1741:27;::::0;;;:18:::1;:27;::::0;;;;;;;;;1720:58;;13020:25:103;;;13061:18;;;13054:34;;;1720:58:101::1;::::0;12993:18:103;1720:58:101::1;;;;;;;1517:271:::0;:::o;2190:218:54:-;2262:7;2297:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2297:16:54;2331:19;2323:56;;;;-1:-1:-1;;;2323:56:54;;10565:2:103;2323:56:54;;;10547:21:103;10604:2;10584:18;;;10577:30;-1:-1:-1;;;10623:18:103;;;10616:54;10687:18;;2323:56:54;10537:174:103;1929:204:54;2001:7;-1:-1:-1;;;;;2028:19:54;;2020:73;;;;-1:-1:-1;;;2020:73:54;;8232:2:103;2020:73:54;;;8214:21:103;8271:2;8251:18;;;8244:30;8310:34;8290:18;;;8283:62;-1:-1:-1;;;8361:18:103;;;8354:39;8410:19;;2020:73:54;8204:231:103;2020:73:54;-1:-1:-1;;;;;;2110:16:54;;;;;:9;:16;;;;;;;1929:204::o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1148:362:101:-;621:13;;1251:15;;-1:-1:-1;;;;;621:13:101;613:69;;;;-1:-1:-1;;;613:69:101;;8642:2:103;613:69:101;;;8624:21:103;8681:2;8661:18;;;8654:30;8720:31;8700:18;;;8693:59;8769:18;;613:69:101;8614:179:103;613:69:101;716:13;;-1:-1:-1;;;;;716:13:101;719:10:59;-1:-1:-1;;;;;700:29:101;;692:73;;;;-1:-1:-1;;;692:73:101;;11732:2:103;692:73:101;;;11714:21:103;11771:2;11751:18;;;11744:30;11810:33;11790:18;;;11783:61;11861:18;;692:73:101;11704:181:103;692:73:101;1282:12:::1;:14:::0;;;:12:::1;:14;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;1316:12:101::1;::::0;1338:27:::1;::::0;;;:18:::1;:27;::::0;;;;:38;;;1316:12;-1:-1:-1;1403:22:101::1;1413:2:::0;1316:12;1403:9:::1;:22::i;:::-;1449:43;::::0;;13301:25:103;;;13357:2;13342:18;;13335:34;;;-1:-1:-1;;;;;13405:32:103;;13385:18;;;13378:60;1449:43:101;;::::1;::::0;;;;13289:2:103;1449:43:101;;::::1;1148:362:::0;;;;:::o;2632:102:54:-;2688:13;2720:7;2713:14;;;;;:::i;4169:153::-;4263:52;719:10:59;4296:8:54;4306;4263:18;:52::i;:::-;4169:153;;:::o;843:298:101:-;929:13;;-1:-1:-1;;;;;929:13:101;:27;921:83;;;;-1:-1:-1;;;921:83:101;;10153:2:103;921:83:101;;;10135:21:103;10192:2;10172:18;;;10165:30;10231:34;10211:18;;;10204:62;-1:-1:-1;;;10282:18:103;;;10275:41;10333:19;;921:83:101;10125:233:103;921:83:101;-1:-1:-1;;;;;1022:26:101;;1014:82;;;;-1:-1:-1;;;1014:82:101;;11320:2:103;1014:82:101;;;11302:21:103;11359:2;11339:18;;;11332:30;11398:34;11378:18;;;11371:62;-1:-1:-1;;;11449:18:103;;;11442:41;11500:19;;1014:82:101;11292:233:103;1014:82:101;1106:13;:28;;-1:-1:-1;;;;;;1106:28:101;-1:-1:-1;;;;;1106:28:101;;;;;;;;;;843:298::o;5250:315:54:-;5418:41;719:10:59;5451:7:54;5418:18;:41::i;:::-;5410:100;;;;-1:-1:-1;;;5410:100:54;;;;;;;:::i;:::-;5520:38;5534:4;5540:2;5544:7;5553:4;5520:13;:38::i;:::-;5250:315;;;;:::o;2800:276::-;2873:13;2898:23;2913:7;2898:14;:23::i;:::-;2932:21;2956:10;3394:9;;;;;;;;;-1:-1:-1;3394:9:54;;3318:92;;2956:10;2932:34;;3007:1;2989:7;2983:21;:25;:86;;;;;;;;;;;;;;;;;3035:7;3044:18;:7;:16;:18::i;:::-;3018:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2983:86;2976:93;2800:276;-1:-1:-1;;;2800:276:54:o;2081:198:41:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;6303:2:103;2161:73:41::1;::::0;::::1;6285:21:103::0;6342:2;6322:18;;;6315:30;6381:34;6361:18;;;6354:62;-1:-1:-1;;;6432:18:103;;;6425:36;6478:19;;2161:73:41::1;6275:228:103::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;11657:133:54:-;7099:4;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:54;11730:53;;;;-1:-1:-1;;;11730:53:54;;10565:2:103;11730:53:54;;;10547:21:103;10604:2;10584:18;;;10577:30;-1:-1:-1;;;10623:18:103;;;10616:54;10687:18;;11730:53:54;10537:174:103;10959:171:54;11033:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;11033:29:54;-1:-1:-1;;;;;11033:29:54;;;;;;;;:24;;11086:23;11033:24;11086:14;:23::i;:::-;-1:-1:-1;;;;;11077:46:54;;;;;;;;;;;10959:171;;:::o;7317:261::-;7410:4;7426:13;7442:23;7457:7;7442:14;:23::i;:::-;7426:39;;7494:5;-1:-1:-1;;;;;7483:16:54;:7;-1:-1:-1;;;;;7483:16:54;;:52;;;-1:-1:-1;;;;;;4508:25:54;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7503:32;7483:87;;;;7563:7;-1:-1:-1;;;;;7539:31:54;:20;7551:7;7539:11;:20::i;:::-;-1:-1:-1;;;;;7539:31:54;;7483:87;7475:96;7317:261;-1:-1:-1;;;;7317:261:54:o;10242:605::-;10396:4;-1:-1:-1;;;;;10369:31:54;:23;10384:7;10369:14;:23::i;:::-;-1:-1:-1;;;;;10369:31:54;;10361:81;;;;-1:-1:-1;;;10361:81:54;;6710:2:103;10361:81:54;;;6692:21:103;6749:2;6729:18;;;6722:30;6788:34;6768:18;;;6761:62;-1:-1:-1;;;6839:18:103;;;6832:35;6884:19;;10361:81:54;6682:227:103;10361:81:54;-1:-1:-1;;;;;10460:16:54;;10452:65;;;;-1:-1:-1;;;10452:65:54;;7473:2:103;10452:65:54;;;7455:21:103;7512:2;7492:18;;;7485:30;7551:34;7531:18;;;7524:62;-1:-1:-1;;;7602:18:103;;;7595:34;7646:19;;10452:65:54;7445:226:103;10452:65:54;10629:29;10646:1;10650:7;10629:8;:29::i;:::-;-1:-1:-1;;;;;10669:15:54;;;;;;:9;:15;;;;;:20;;10688:1;;10669:15;:20;;10688:1;;10669:20;:::i;:::-;;;;-1:-1:-1;;;;;;;10699:13:54;;;;;;:9;:13;;;;;:18;;10716:1;;10699:13;:18;;10716:1;;10699:18;:::i;:::-;;;;-1:-1:-1;;10727:16:54;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10727:21:54;-1:-1:-1;;;;;10727:21:54;;;;;;;;;10764:27;;10727:16;;10764:27;;;;;;;10802:38;3467:407;9512:406;9571:13;9587:23;9602:7;9587:14;:23::i;:::-;9571:39;;9707:29;9724:1;9728:7;9707:8;:29::i;:::-;-1:-1:-1;;;;;9747:16:54;;;;;;:9;:16;;;;;:21;;9767:1;;9747:16;:21;;9767:1;;9747:21;:::i;:::-;;;;-1:-1:-1;;9785:16:54;;;;:7;:16;;;;;;9778:23;;-1:-1:-1;;;;;;9778:23:54;;;9817:36;9793:7;;9785:16;-1:-1:-1;;;;;9817:36:54;;;;;9785:16;;9817:36;9864:47;3467:407;1359:130:41;1273:6;;-1:-1:-1;;;;;1273:6:41;719:10:59;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;9792:2:103;1414:68:41;;;9774:21:103;;;9811:18;;;9804:30;9870:34;9850:18;;;9843:62;9922:18;;1414:68:41;9764:182:103;2433:187:41;2525:6;;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2433:187;;:::o;7908:108:54:-;7983:26;7993:2;7997:7;7983:26;;;;;;;;;;;;:9;:26::i;11266:307::-;11416:8;-1:-1:-1;;;;;11407:17:54;:5;-1:-1:-1;;;;;11407:17:54;;;11399:55;;;;-1:-1:-1;;;11399:55:54;;7878:2:103;11399:55:54;;;7860:21:103;7917:2;7897:18;;;7890:30;7956:27;7936:18;;;7929:55;8001:18;;11399:55:54;7850:175:103;11399:55:54;-1:-1:-1;;;;;11464:25:54;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11464:46:54;;;;;;;;;;11525:41;;5406::103;;;11525::54;;5379:18:103;11525:41:54;;;;;;;11266:307;;;:::o;6426:305::-;6576:28;6586:4;6592:2;6596:7;6576:9;:28::i;:::-;6622:47;6645:4;6651:2;6655:7;6664:4;6622:22;:47::i;:::-;6614:110;;;;-1:-1:-1;;;6614:110:54;;;;;;;:::i;392:703:61:-;448:13;665:10;661:51;;-1:-1:-1;691:10:61;;;;;;;;;;;;-1:-1:-1;;;691:10:61;;;;;;661:51;736:5;721:12;775:75;782:9;;775:75;;807:8;;;;:::i;:::-;;-1:-1:-1;829:10:61;;-1:-1:-1;837:2:61;829:10;;:::i;:::-;;;775:75;;;859:19;891:6;881:17;;;;;;-1:-1:-1;;;881:17:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;881:17:61;;859:39;;908:150;915:10;;908:150;;941:11;951:1;941:11;;:::i;:::-;;-1:-1:-1;1009:10:61;1017:2;1009:5;:10;:::i;:::-;996:24;;:2;:24;:::i;:::-;983:39;;966:6;973;966:14;;;;;;-1:-1:-1;;;966:14:61;;;;;;;;;;;;:56;-1:-1:-1;;;;;966:56:61;;;;;;;;-1:-1:-1;1036:11:61;1045:2;1036:11;;:::i;:::-;;;908:150;;8237:309:54;8361:18;8367:2;8371:7;8361:5;:18::i;:::-;8410:53;8441:1;8445:2;8449:7;8458:4;8410:22;:53::i;:::-;8389:150;;;;-1:-1:-1;;;8389:150:54;;;;;;;:::i;12342:831::-;12491:4;-1:-1:-1;;;;;12511:13:54;;1465:19:58;:23;12507:660:54;;12546:71;;-1:-1:-1;;;12546:71:54;;-1:-1:-1;;;;;12546:36:54;;;;;:71;;719:10:59;;12597:4:54;;12603:7;;12612:4;;12546:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12546:71:54;;;;;;;;-1:-1:-1;;12546:71:54;;;;;;;;;;;;:::i;:::-;;;12542:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12784:13:54;;12780:321;;12826:60;;-1:-1:-1;;;12826:60:54;;;;;;;:::i;12780:321::-;13053:6;13047:13;13038:6;13034:2;13030:15;13023:38;12542:573;-1:-1:-1;;;;;;12667:51:54;-1:-1:-1;;;12667:51:54;;-1:-1:-1;12660:58:54;;12507:660;-1:-1:-1;13152:4:54;12342:831;;;;;;:::o;8868:427::-;-1:-1:-1;;;;;8947:16:54;;8939:61;;;;-1:-1:-1;;;8939:61:54;;9431:2:103;8939:61:54;;;9413:21:103;;;9450:18;;;9443:30;9509:34;9489:18;;;9482:62;9561:18;;8939:61:54;9403:182:103;8939:61:54;7099:4;7122:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7122:16:54;:30;9010:58;;;;-1:-1:-1;;;9010:58:54;;7116:2:103;9010:58:54;;;7098:21:103;7155:2;7135:18;;;7128:30;7194;7174:18;;;7167:58;7242:18;;9010:58:54;7088:178:103;9010:58:54;-1:-1:-1;;;;;9135:13:54;;;;;;:9;:13;;;;;:18;;9152:1;;9135:13;:18;;9152:1;;9135:18;:::i;:::-;;;;-1:-1:-1;;9163:16:54;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9163:21:54;-1:-1:-1;;;;;9163:21:54;;;;;;;;9200:33;;9163:16;;;9200:33;;9163:16;;9200:33;9244:44;3467:407;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:1183::-;;;;;1183:3;1171:9;1162:7;1158:23;1154:33;1151:2;;;1205:6;1197;1190:22;1151:2;1233:29;1252:9;1233:29;:::i;:::-;1223:39;;1281:38;1315:2;1304:9;1300:18;1281:38;:::i;:::-;1271:48;;1366:2;1355:9;1351:18;1338:32;1328:42;;1421:2;1410:9;1406:18;1393:32;1444:18;1485:2;1477:6;1474:14;1471:2;;;1506:6;1498;1491:22;1471:2;1549:6;1538:9;1534:22;1524:32;;1594:7;1587:4;1583:2;1579:13;1575:27;1565:2;;1621:6;1613;1606:22;1565:2;1662;1649:16;1684:2;1680;1677:10;1674:2;;;1690:18;;:::i;:::-;1765:2;1759:9;1733:2;1819:13;;-1:-1:-1;;1815:22:103;;;1839:2;1811:31;1807:40;1795:53;;;1863:18;;;1883:22;;;1860:46;1857:2;;;1909:18;;:::i;:::-;1949:10;1945:2;1938:22;1984:2;1976:6;1969:18;2024:7;2019:2;2014;2010;2006:11;2002:20;1999:33;1996:2;;;2050:6;2042;2035:22;1996:2;2111;2106;2102;2098:11;2093:2;2085:6;2081:15;2068:46;2134:15;;;2151:2;2130:24;2123:40;;;;1141:1053;;;;-1:-1:-1;1141:1053:103;;-1:-1:-1;;;;1141:1053:103:o;2199:367::-;;;2325:2;2313:9;2304:7;2300:23;2296:32;2293:2;;;2346:6;2338;2331:22;2293:2;2374:29;2393:9;2374:29;:::i;:::-;2364:39;;2453:2;2442:9;2438:18;2425:32;2500:5;2493:13;2486:21;2479:5;2476:32;2466:2;;2527:6;2519;2512:22;2466:2;2555:5;2545:15;;;2283:283;;;;;:::o;2571:264::-;;;2700:2;2688:9;2679:7;2675:23;2671:32;2668:2;;;2721:6;2713;2706:22;2668:2;2749:29;2768:9;2749:29;:::i;:::-;2739:39;2825:2;2810:18;;;;2797:32;;-1:-1:-1;;;2658:177:103:o;2840:255::-;;2951:2;2939:9;2930:7;2926:23;2922:32;2919:2;;;2972:6;2964;2957:22;2919:2;3016:9;3003:23;3035:30;3059:5;3035:30;:::i;3100:259::-;;3222:2;3210:9;3201:7;3197:23;3193:32;3190:2;;;3243:6;3235;3228:22;3190:2;3280:9;3274:16;3299:30;3323:5;3299:30;:::i;3364:190::-;;3476:2;3464:9;3455:7;3451:23;3447:32;3444:2;;;3497:6;3489;3482:22;3444:2;-1:-1:-1;3525:23:103;;3434:120;-1:-1:-1;3434:120:103:o;3559:264::-;;;3688:2;3676:9;3667:7;3663:23;3659:32;3656:2;;;3709:6;3701;3694:22;3656:2;3750:9;3737:23;3727:33;;3779:38;3813:2;3802:9;3798:18;3779:38;:::i;3828:257::-;;3907:5;3901:12;3934:6;3929:3;3922:19;3950:63;4006:6;3999:4;3994:3;3990:14;3983:4;3976:5;3972:16;3950:63;:::i;:::-;4067:2;4046:15;-1:-1:-1;;4042:29:103;4033:39;;;;4074:4;4029:50;;3877:208;-1:-1:-1;;3877:208:103:o;4090:470::-;;4307:6;4301:13;4323:53;4369:6;4364:3;4357:4;4349:6;4345:17;4323:53;:::i;:::-;4439:13;;4398:16;;;;4461:57;4439:13;4398:16;4495:4;4483:17;;4461:57;:::i;:::-;4534:20;;4277:283;-1:-1:-1;;;;4277:283:103:o;4773:488::-;-1:-1:-1;;;;;5042:15:103;;;5024:34;;5094:15;;5089:2;5074:18;;5067:43;5141:2;5126:18;;5119:34;;;5189:3;5184:2;5169:18;;5162:31;;;4773:488;;5210:45;;5235:19;;5227:6;5210:45;:::i;:::-;5202:53;4976:285;-1:-1:-1;;;;;;4976:285:103:o;5458:219::-;;5607:2;5596:9;5589:21;5627:44;5667:2;5656:9;5652:18;5644:6;5627:44;:::i;5682:414::-;5884:2;5866:21;;;5923:2;5903:18;;;5896:30;5962:34;5957:2;5942:18;;5935:62;-1:-1:-1;;;6028:2:103;6013:18;;6006:48;6086:3;6071:19;;5856:240::o;12249:410::-;12451:2;12433:21;;;12490:2;12470:18;;;12463:30;12529:34;12524:2;12509:18;;12502:62;-1:-1:-1;;;12595:2:103;12580:18;;12573:44;12649:3;12634:19;;12423:236::o;13449:128::-;;13520:1;13516:6;13513:1;13510:13;13507:2;;;13526:18;;:::i;:::-;-1:-1:-1;13562:9:103;;13497:80::o;13582:120::-;;13648:1;13638:2;;13653:18;;:::i;:::-;-1:-1:-1;13687:9:103;;13628:74::o;13707:125::-;;13775:1;13772;13769:8;13766:2;;;13780:18;;:::i;:::-;-1:-1:-1;13817:9:103;;13756:76::o;13837:258::-;13909:1;13919:113;13933:6;13930:1;13927:13;13919:113;;;14009:11;;;14003:18;13990:11;;;13983:39;13955:2;13948:10;13919:113;;;14050:6;14047:1;14044:13;14041:2;;;-1:-1:-1;;14085:1:103;14067:16;;14060:27;13890:205::o;14100:380::-;14185:1;14175:12;;14232:1;14222:12;;;14243:2;;14297:4;14289:6;14285:17;14275:27;;14243:2;14350;14342:6;14339:14;14319:18;14316:38;14313:2;;;14396:10;14391:3;14387:20;14384:1;14377:31;14431:4;14428:1;14421:15;14459:4;14456:1;14449:15;14313:2;;14155:325;;;:::o;14485:135::-;;-1:-1:-1;;14545:17:103;;14542:2;;;14565:18;;:::i;:::-;-1:-1:-1;14612:1:103;14601:13;;14532:88::o;14625:112::-;;14683:1;14673:2;;14688:18;;:::i;:::-;-1:-1:-1;14722:9:103;;14663:74::o;14742:127::-;14803:10;14798:3;14794:20;14791:1;14784:31;14834:4;14831:1;14824:15;14858:4;14855:1;14848:15;14874:127;14935:10;14930:3;14926:20;14923:1;14916:31;14966:4;14963:1;14956:15;14990:4;14987:1;14980:15;15006:127;15067:10;15062:3;15058:20;15055:1;15048:31;15098:4;15095:1;15088:15;15122:4;15119:1;15112:15;15138:131;-1:-1:-1;;;;;;15212:32:103;;15202:43;;15192:2;;15259:1;15256;15249:12"},"methodIdentifiers":{"NAME()":"a3f4df7e","SYMBOL()":"f76f8d78","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","bundleIdForTokenId(uint256)":"6ae9d6e8","burn(uint256)":"42966c68","burned(uint256)":"23250cae","exists(uint256)":"4f558e79","getApproved(uint256)":"081812fc","getBundleId(uint256)":"29a63083","getBundleModuleAddress()":"6ae73384","isApprovedForAll(address,address)":"e985e9c5","mint(uint256,address)":"94bf804d","name()":"06fdde03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setBundleModule(address)":"a38b714c","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"LogBundleTokenBurned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenOwner\",\"type\":\"address\"}],\"name\":\"LogBundleTokenMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYMBOL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"bundleIdForTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burned\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isBurned\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getBundleId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBundleModuleAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bundleId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bundleModule\",\"type\":\"address\"}],\"name\":\"setBundleModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/tokens/BundleToken.sol\":\"BundleToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@etherisc/gif-interface/contracts/tokens/IBundleToken.sol\":{\"keccak256\":\"0x7ed985537191ca20c7a076e205b3bd4f02f05950d76f28c3f33029636f86ace8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://addb2f3eeac1806b2e93091af8cc9a5f89510ccd77b984b6ada94bba955ee5ff\",\"dweb:/ipfs/Qma23aCuj3gRyJmng6fJykxmPcDjbt66iRvLfb5CJqE5QD\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"contracts/tokens/BundleToken.sol\":{\"keccak256\":\"0x4e6ba5fa6ab17ae54360684eb1b211eef9794417dd008ed7ca5604a1142255f7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f36baf69a301e093772ed1ee962b48398f3c0ff2588184d4ae565a9c414745e7\",\"dweb:/ipfs/QmTyEkrxQVjnk1xZdNvxur7spUk9B1R3BZa35VXrQ46bAJ\"]}},\"version\":1}"}},"contracts/tokens/RiskpoolToken.sol":{"RiskpoolToken":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:396:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"69:325:103","statements":[{"nodeType":"YulAssignment","src":"79:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"93:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"99:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"89:3:103"},"nodeType":"YulFunctionCall","src":"89:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"79:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"110:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"140:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"146:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"136:3:103"},"nodeType":"YulFunctionCall","src":"136:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"114:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"187:31:103","statements":[{"nodeType":"YulAssignment","src":"189:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"203:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"211:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"199:3:103"},"nodeType":"YulFunctionCall","src":"199:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"189:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"167:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"160:6:103"},"nodeType":"YulFunctionCall","src":"160:26:103"},"nodeType":"YulIf","src":"157:2:103"},{"body":{"nodeType":"YulBlock","src":"277:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"298:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"305:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"310:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"301:3:103"},"nodeType":"YulFunctionCall","src":"301:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"291:6:103"},"nodeType":"YulFunctionCall","src":"291:31:103"},"nodeType":"YulExpressionStatement","src":"291:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"342:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"345:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"335:6:103"},"nodeType":"YulFunctionCall","src":"335:15:103"},"nodeType":"YulExpressionStatement","src":"335:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"370:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"373:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"363:6:103"},"nodeType":"YulFunctionCall","src":"363:15:103"},"nodeType":"YulExpressionStatement","src":"363:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"233:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"256:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"264:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"253:2:103"},"nodeType":"YulFunctionCall","src":"253:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"230:2:103"},"nodeType":"YulFunctionCall","src":"230:38:103"},"nodeType":"YulIf","src":"227:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"49:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"58:6:103","type":""}],"src":"14:380:103"}]},"contents":"{\n { }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b506040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b8152506040518060400160405280600381526020016214941560ea1b815250816003908051906020019061006e92919061008a565b50805161008290600490602084019061008a565b50505061015e565b82805461009690610123565b90600052602060002090601f0160209004810192826100b857600085556100fe565b82601f106100d157805160ff19168380011785556100fe565b828001600101855582156100fe579182015b828111156100fe5782518255916020019190600101906100e3565b5061010a92915061010e565b5090565b5b8082111561010a576000815560010161010f565b60028104600182168061013757607f821691505b6020821081141561015857634e487b7160e01b600052602260045260246000fd5b50919050565b6108fc8061016d6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101a8578063a9059cbb146101bb578063dd62ed3e146101ce578063f76f8d78146101e1576100cf565b806370a082311461015c57806395d89b411461016f578063a3f4df7e14610177576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610203565b6040516100e99190610814565b60405180910390f35b6101056101003660046107eb565b610295565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107b0565b6102ad565b604051601281526020016100e9565b6101056101573660046107eb565b6102d1565b61011961016a36600461075d565b6102f3565b6100dc610312565b6100dc6040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b81525081565b6101056101b63660046107eb565b610321565b6101056101c93660046107eb565b6103a1565b6101196101dc36600461077e565b6103af565b6100dc6040518060400160405280600381526020016214941560ea1b81525081565b6060600380546102129061088b565b80601f016020809104026020016040519081016040528092919081815260200182805461023e9061088b565b801561028b5780601f106102605761010080835404028352916020019161028b565b820191906000526020600020905b81548152906001019060200180831161026e57829003601f168201915b5050505050905090565b6000336102a38185856103da565b5060019392505050565b6000336102bb8582856104fe565b6102c6858585610578565b506001949350505050565b6000336102a38185856102e483836103af565b6102ee9190610867565b6103da565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102129061088b565b6000338161032f82866103af565b9050838110156103945760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102c682868684036103da565b6000336102a3818585610578565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038b565b6001600160a01b03821661049d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061050a84846103af565b9050600019811461057257818110156105655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038b565b61057284848484036103da565b50505050565b6001600160a01b0383166105dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038b565b6001600160a01b03821661063e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038b565b6001600160a01b038316600090815260208190526040902054818110156106b65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161038b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106ed908490610867565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161073991815260200190565b60405180910390a3610572565b80356001600160a01b038116811461030d57600080fd5b60006020828403121561076e578081fd5b61077782610746565b9392505050565b60008060408385031215610790578081fd5b61079983610746565b91506107a760208401610746565b90509250929050565b6000806000606084860312156107c4578081fd5b6107cd84610746565b92506107db60208501610746565b9150604084013590509250925092565b600080604083850312156107fd578182fd5b61080683610746565b946020939093013593505050565b6000602080835283518082850152825b8181101561084057858101830151858201604001528201610824565b818111156108515783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561088657634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061089f57607f821691505b602082108114156108c057634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212200894a2a8aec7d823a7bf129c100a556aaf32c5c98f4e46c38df545cdf613f4dd64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH18 0x23A4A3102934B9B5B837B7B6102A37B5B2B7 PUSH1 0x71 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x149415 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x6E SWAP3 SWAP2 SWAP1 PUSH2 0x8A JUMP JUMPDEST POP DUP1 MLOAD PUSH2 0x82 SWAP1 PUSH1 0x4 SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 PUSH2 0x8A JUMP JUMPDEST POP POP POP PUSH2 0x15E JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x96 SWAP1 PUSH2 0x123 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0xB8 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0xFE JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0xD1 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xFE JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xFE JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xFE JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xE3 JUMP JUMPDEST POP PUSH2 0x10A SWAP3 SWAP2 POP PUSH2 0x10E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x10F JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x137 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x158 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8FC DUP1 PUSH2 0x16D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x1E1 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x177 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x814 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B0 JUMP JUMPDEST PUSH2 0x2AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x2D1 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x2F3 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x312 JUMP JUMPDEST PUSH2 0xDC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH18 0x23A4A3102934B9B5B837B7B6102A37B5B2B7 PUSH1 0x71 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x3A1 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1DC CALLDATASIZE PUSH1 0x4 PUSH2 0x77E JUMP JUMPDEST PUSH2 0x3AF JUMP JUMPDEST PUSH2 0xDC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x149415 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x212 SWAP1 PUSH2 0x88B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x23E SWAP1 PUSH2 0x88B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x28B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x260 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x28B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x26E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x3DA JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2BB DUP6 DUP3 DUP6 PUSH2 0x4FE JUMP JUMPDEST PUSH2 0x2C6 DUP6 DUP6 DUP6 PUSH2 0x578 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x2E4 DUP4 DUP4 PUSH2 0x3AF JUMP JUMPDEST PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x867 JUMP JUMPDEST PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x212 SWAP1 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x32F DUP3 DUP7 PUSH2 0x3AF JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x394 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2C6 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x578 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x43C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x49D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A DUP5 DUP5 PUSH2 0x3AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x572 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x565 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x38B JUMP JUMPDEST PUSH2 0x572 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3DA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x63E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x6ED SWAP1 DUP5 SWAP1 PUSH2 0x867 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x739 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x572 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x76E JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x777 DUP3 PUSH2 0x746 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x790 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x799 DUP4 PUSH2 0x746 JUMP JUMPDEST SWAP2 POP PUSH2 0x7A7 PUSH1 0x20 DUP5 ADD PUSH2 0x746 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7C4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7CD DUP5 PUSH2 0x746 JUMP JUMPDEST SWAP3 POP PUSH2 0x7DB PUSH1 0x20 DUP6 ADD PUSH2 0x746 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7FD JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x806 DUP4 PUSH2 0x746 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x840 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x824 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x851 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x886 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x89F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8C0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDMOD SWAP5 LOG2 0xA8 0xAE 0xC7 0xD8 0x23 0xA7 0xBF SLT SWAP13 LT EXP SSTORE PUSH11 0xAF32C5C98F4E46C38DF545 0xCD 0xF6 SGT DELEGATECALL 0xDD PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"120:199:102:-:0;;;262:55;;;;;;;;;;291:4;;;;;;;;;;;;;-1:-1:-1;;;291:4:102;;;297:6;;;;;;;;;;;;;-1:-1:-1;;;297:6:102;;;2052:5:49;2044;:13;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2067:17:49;;;;:7;;:17;;;;;:::i;:::-;;1978:113;;120:199:102;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;120:199:102;;;-1:-1:-1;120:199:102;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:380:103;99:1;89:12;;146:1;136:12;;;157:2;;211:4;203:6;199:17;189:27;;157:2;264;256:6;253:14;233:18;230:38;227:2;;;310:10;305:3;301:20;298:1;291:31;345:4;342:1;335:15;373:4;370:1;363:15;227:2;;69:325;;;:::o;:::-;120:199:102;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5856:103","statements":[{"nodeType":"YulBlock","src":"6:3:103","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:103","statements":[{"nodeType":"YulAssignment","src":"73:29:103","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:103"},"nodeType":"YulFunctionCall","src":"82:20:103"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:103"}]},{"body":{"nodeType":"YulBlock","src":"165:16:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:103","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:103"},"nodeType":"YulFunctionCall","src":"167:12:103"},"nodeType":"YulExpressionStatement","src":"167:12:103"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:103"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:103"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:103","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:103","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:103"},"nodeType":"YulFunctionCall","src":"146:11:103"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:103","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:103"},"nodeType":"YulFunctionCall","src":"142:19:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:103"},"nodeType":"YulFunctionCall","src":"131:31:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:103"},"nodeType":"YulFunctionCall","src":"121:42:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:103"},"nodeType":"YulFunctionCall","src":"114:50:103"},"nodeType":"YulIf","src":"111:2:103"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:103","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:103","type":""}],"src":"14:173:103"},{"body":{"nodeType":"YulBlock","src":"262:126:103","statements":[{"body":{"nodeType":"YulBlock","src":"308:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"317:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"325:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"310:6:103"},"nodeType":"YulFunctionCall","src":"310:22:103"},"nodeType":"YulExpressionStatement","src":"310:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"283:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"292:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"279:3:103"},"nodeType":"YulFunctionCall","src":"279:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"304:2:103","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"275:3:103"},"nodeType":"YulFunctionCall","src":"275:32:103"},"nodeType":"YulIf","src":"272:2:103"},{"nodeType":"YulAssignment","src":"343:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"372:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"353:18:103"},"nodeType":"YulFunctionCall","src":"353:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"343:6:103"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"228:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"239:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"251:6:103","type":""}],"src":"192:196:103"},{"body":{"nodeType":"YulBlock","src":"480:183:103","statements":[{"body":{"nodeType":"YulBlock","src":"526:26:103","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"535:6:103"},{"name":"value1","nodeType":"YulIdentifier","src":"543:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"528:6:103"},"nodeType":"YulFunctionCall","src":"528:22:103"},"nodeType":"YulExpressionStatement","src":"528:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"501:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"497:3:103"},"nodeType":"YulFunctionCall","src":"497:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"522:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"493:3:103"},"nodeType":"YulFunctionCall","src":"493:32:103"},"nodeType":"YulIf","src":"490:2:103"},{"nodeType":"YulAssignment","src":"561:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"590:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"571:18:103"},"nodeType":"YulFunctionCall","src":"571:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"561:6:103"}]},{"nodeType":"YulAssignment","src":"609:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"642:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"653:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"638:3:103"},"nodeType":"YulFunctionCall","src":"638:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"619:18:103"},"nodeType":"YulFunctionCall","src":"619:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"609:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"438:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"449:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"461:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"469:6:103","type":""}],"src":"393:270:103"},{"body":{"nodeType":"YulBlock","src":"772:234:103","statements":[{"body":{"nodeType":"YulBlock","src":"818:26:103","statements":[{"expression":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"827:6:103"},{"name":"value2","nodeType":"YulIdentifier","src":"835:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"820:6:103"},"nodeType":"YulFunctionCall","src":"820:22:103"},"nodeType":"YulExpressionStatement","src":"820:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"793:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"802:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"789:3:103"},"nodeType":"YulFunctionCall","src":"789:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"814:2:103","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"785:3:103"},"nodeType":"YulFunctionCall","src":"785:32:103"},"nodeType":"YulIf","src":"782:2:103"},{"nodeType":"YulAssignment","src":"853:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"882:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"863:18:103"},"nodeType":"YulFunctionCall","src":"863:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"853:6:103"}]},{"nodeType":"YulAssignment","src":"901:48:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"934:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"945:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"930:3:103"},"nodeType":"YulFunctionCall","src":"930:18:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"911:18:103"},"nodeType":"YulFunctionCall","src":"911:38:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"901:6:103"}]},{"nodeType":"YulAssignment","src":"958:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"985:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"996:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"981:3:103"},"nodeType":"YulFunctionCall","src":"981:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"968:12:103"},"nodeType":"YulFunctionCall","src":"968:32:103"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"958:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"722:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"733:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"745:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"753:6:103","type":""},{"name":"value2","nodeType":"YulTypedName","src":"761:6:103","type":""}],"src":"668:338:103"},{"body":{"nodeType":"YulBlock","src":"1098:177:103","statements":[{"body":{"nodeType":"YulBlock","src":"1144:26:103","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1153:6:103"},{"name":"value0","nodeType":"YulIdentifier","src":"1161:6:103"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1146:6:103"},"nodeType":"YulFunctionCall","src":"1146:22:103"},"nodeType":"YulExpressionStatement","src":"1146:22:103"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1119:7:103"},{"name":"headStart","nodeType":"YulIdentifier","src":"1128:9:103"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1115:3:103"},"nodeType":"YulFunctionCall","src":"1115:23:103"},{"kind":"number","nodeType":"YulLiteral","src":"1140:2:103","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1111:3:103"},"nodeType":"YulFunctionCall","src":"1111:32:103"},"nodeType":"YulIf","src":"1108:2:103"},{"nodeType":"YulAssignment","src":"1179:39:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1208:9:103"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1189:18:103"},"nodeType":"YulFunctionCall","src":"1189:29:103"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1179:6:103"}]},{"nodeType":"YulAssignment","src":"1227:42:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1254:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1265:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1250:3:103"},"nodeType":"YulFunctionCall","src":"1250:18:103"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1237:12:103"},"nodeType":"YulFunctionCall","src":"1237:32:103"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1227:6:103"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1056:9:103","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1067:7:103","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1079:6:103","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1087:6:103","type":""}],"src":"1011:264:103"},{"body":{"nodeType":"YulBlock","src":"1375:92:103","statements":[{"nodeType":"YulAssignment","src":"1385:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1397:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"1408:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1393:3:103"},"nodeType":"YulFunctionCall","src":"1393:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1385:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1427:9:103"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1452:6:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1445:6:103"},"nodeType":"YulFunctionCall","src":"1445:14:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1438:6:103"},"nodeType":"YulFunctionCall","src":"1438:22:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1420:6:103"},"nodeType":"YulFunctionCall","src":"1420:41:103"},"nodeType":"YulExpressionStatement","src":"1420:41:103"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1344:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1355:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1366:4:103","type":""}],"src":"1280:187:103"},{"body":{"nodeType":"YulBlock","src":"1593:482:103","statements":[{"nodeType":"YulVariableDeclaration","src":"1603:12:103","value":{"kind":"number","nodeType":"YulLiteral","src":"1613:2:103","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1607:2:103","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1631:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1642:2:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1624:6:103"},"nodeType":"YulFunctionCall","src":"1624:21:103"},"nodeType":"YulExpressionStatement","src":"1624:21:103"},{"nodeType":"YulVariableDeclaration","src":"1654:27:103","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1674:6:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1668:5:103"},"nodeType":"YulFunctionCall","src":"1668:13:103"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1658:6:103","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1701:9:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1712:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1697:3:103"},"nodeType":"YulFunctionCall","src":"1697:18:103"},{"name":"length","nodeType":"YulIdentifier","src":"1717:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1690:6:103"},"nodeType":"YulFunctionCall","src":"1690:34:103"},"nodeType":"YulExpressionStatement","src":"1690:34:103"},{"nodeType":"YulVariableDeclaration","src":"1733:13:103","value":{"name":"tail","nodeType":"YulIdentifier","src":"1742:4:103"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1737:1:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"1805:90:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:103"},{"name":"i","nodeType":"YulIdentifier","src":"1845:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:103"},"nodeType":"YulFunctionCall","src":"1830:17:103"},{"kind":"number","nodeType":"YulLiteral","src":"1849:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:103"},"nodeType":"YulFunctionCall","src":"1826:26:103"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1868:6:103"},{"name":"i","nodeType":"YulIdentifier","src":"1876:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1864:3:103"},"nodeType":"YulFunctionCall","src":"1864:14:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1880:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1860:3:103"},"nodeType":"YulFunctionCall","src":"1860:23:103"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1854:5:103"},"nodeType":"YulFunctionCall","src":"1854:30:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1819:6:103"},"nodeType":"YulFunctionCall","src":"1819:66:103"},"nodeType":"YulExpressionStatement","src":"1819:66:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1766:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1769:6:103"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1763:2:103"},"nodeType":"YulFunctionCall","src":"1763:13:103"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1777:19:103","statements":[{"nodeType":"YulAssignment","src":"1779:15:103","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1788:1:103"},{"name":"_1","nodeType":"YulIdentifier","src":"1791:2:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1784:3:103"},"nodeType":"YulFunctionCall","src":"1784:10:103"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1779:1:103"}]}]},"pre":{"nodeType":"YulBlock","src":"1759:3:103","statements":[]},"src":"1755:140:103"},{"body":{"nodeType":"YulBlock","src":"1929:69:103","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1958:9:103"},{"name":"length","nodeType":"YulIdentifier","src":"1969:6:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1954:3:103"},"nodeType":"YulFunctionCall","src":"1954:22:103"},{"kind":"number","nodeType":"YulLiteral","src":"1978:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1950:3:103"},"nodeType":"YulFunctionCall","src":"1950:31:103"},{"name":"tail","nodeType":"YulIdentifier","src":"1983:4:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1943:6:103"},"nodeType":"YulFunctionCall","src":"1943:45:103"},"nodeType":"YulExpressionStatement","src":"1943:45:103"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1910:1:103"},{"name":"length","nodeType":"YulIdentifier","src":"1913:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1907:2:103"},"nodeType":"YulFunctionCall","src":"1907:13:103"},"nodeType":"YulIf","src":"1904:2:103"},{"nodeType":"YulAssignment","src":"2007:62:103","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:103"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2042:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"2050:2:103","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2038:3:103"},"nodeType":"YulFunctionCall","src":"2038:15:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2059:2:103","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2055:3:103"},"nodeType":"YulFunctionCall","src":"2055:7:103"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2034:3:103"},"nodeType":"YulFunctionCall","src":"2034:29:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2019:3:103"},"nodeType":"YulFunctionCall","src":"2019:45:103"},{"kind":"number","nodeType":"YulLiteral","src":"2066:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:103"},"nodeType":"YulFunctionCall","src":"2015:54:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2007:4:103"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1562:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1573:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1584:4:103","type":""}],"src":"1472:603:103"},{"body":{"nodeType":"YulBlock","src":"2254:225:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2271:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2282:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2264:6:103"},"nodeType":"YulFunctionCall","src":"2264:21:103"},"nodeType":"YulExpressionStatement","src":"2264:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2305:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2316:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2301:3:103"},"nodeType":"YulFunctionCall","src":"2301:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2321:2:103","type":"","value":"35"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2294:6:103"},"nodeType":"YulFunctionCall","src":"2294:30:103"},"nodeType":"YulExpressionStatement","src":"2294:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2344:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2355:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2340:3:103"},"nodeType":"YulFunctionCall","src":"2340:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2360:34:103","type":"","value":"ERC20: transfer to the zero addr"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2333:6:103"},"nodeType":"YulFunctionCall","src":"2333:62:103"},"nodeType":"YulExpressionStatement","src":"2333:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2415:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2426:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2411:3:103"},"nodeType":"YulFunctionCall","src":"2411:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2431:5:103","type":"","value":"ess"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2404:6:103"},"nodeType":"YulFunctionCall","src":"2404:33:103"},"nodeType":"YulExpressionStatement","src":"2404:33:103"},{"nodeType":"YulAssignment","src":"2446:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2458:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2469:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:103"},"nodeType":"YulFunctionCall","src":"2454:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2446:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2231:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2245:4:103","type":""}],"src":"2080:399:103"},{"body":{"nodeType":"YulBlock","src":"2658:224:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2675:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2686:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2668:6:103"},"nodeType":"YulFunctionCall","src":"2668:21:103"},"nodeType":"YulExpressionStatement","src":"2668:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2709:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2720:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2705:3:103"},"nodeType":"YulFunctionCall","src":"2705:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"2725:2:103","type":"","value":"34"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2698:6:103"},"nodeType":"YulFunctionCall","src":"2698:30:103"},"nodeType":"YulExpressionStatement","src":"2698:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2748:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2759:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2744:3:103"},"nodeType":"YulFunctionCall","src":"2744:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2764:34:103","type":"","value":"ERC20: approve to the zero addre"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2737:6:103"},"nodeType":"YulFunctionCall","src":"2737:62:103"},"nodeType":"YulExpressionStatement","src":"2737:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2819:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2830:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2815:3:103"},"nodeType":"YulFunctionCall","src":"2815:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"2835:4:103","type":"","value":"ss"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2808:6:103"},"nodeType":"YulFunctionCall","src":"2808:32:103"},"nodeType":"YulExpressionStatement","src":"2808:32:103"},{"nodeType":"YulAssignment","src":"2849:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2861:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"2872:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2857:3:103"},"nodeType":"YulFunctionCall","src":"2857:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2849:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2635:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2649:4:103","type":""}],"src":"2484:398:103"},{"body":{"nodeType":"YulBlock","src":"3061:179:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3078:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3089:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3071:6:103"},"nodeType":"YulFunctionCall","src":"3071:21:103"},"nodeType":"YulExpressionStatement","src":"3071:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3112:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3123:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3108:3:103"},"nodeType":"YulFunctionCall","src":"3108:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:103","type":"","value":"29"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3101:6:103"},"nodeType":"YulFunctionCall","src":"3101:30:103"},"nodeType":"YulExpressionStatement","src":"3101:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:103"},"nodeType":"YulFunctionCall","src":"3147:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3167:31:103","type":"","value":"ERC20: insufficient allowance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:103"},"nodeType":"YulFunctionCall","src":"3140:59:103"},"nodeType":"YulExpressionStatement","src":"3140:59:103"},{"nodeType":"YulAssignment","src":"3208:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3220:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3231:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3216:3:103"},"nodeType":"YulFunctionCall","src":"3216:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3208:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3038:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3052:4:103","type":""}],"src":"2887:353:103"},{"body":{"nodeType":"YulBlock","src":"3419:228:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3436:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3447:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3429:6:103"},"nodeType":"YulFunctionCall","src":"3429:21:103"},"nodeType":"YulExpressionStatement","src":"3429:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3470:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3481:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3466:3:103"},"nodeType":"YulFunctionCall","src":"3466:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3486:2:103","type":"","value":"38"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3459:6:103"},"nodeType":"YulFunctionCall","src":"3459:30:103"},"nodeType":"YulExpressionStatement","src":"3459:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3509:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3520:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3505:3:103"},"nodeType":"YulFunctionCall","src":"3505:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3525:34:103","type":"","value":"ERC20: transfer amount exceeds b"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3498:6:103"},"nodeType":"YulFunctionCall","src":"3498:62:103"},"nodeType":"YulExpressionStatement","src":"3498:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3580:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3591:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3576:3:103"},"nodeType":"YulFunctionCall","src":"3576:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3596:8:103","type":"","value":"alance"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3569:6:103"},"nodeType":"YulFunctionCall","src":"3569:36:103"},"nodeType":"YulExpressionStatement","src":"3569:36:103"},{"nodeType":"YulAssignment","src":"3614:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3626:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3637:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3622:3:103"},"nodeType":"YulFunctionCall","src":"3622:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3614:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3396:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3410:4:103","type":""}],"src":"3245:402:103"},{"body":{"nodeType":"YulBlock","src":"3826:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3854:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3836:6:103"},"nodeType":"YulFunctionCall","src":"3836:21:103"},"nodeType":"YulExpressionStatement","src":"3836:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3877:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3888:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3873:3:103"},"nodeType":"YulFunctionCall","src":"3873:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"3893:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3866:6:103"},"nodeType":"YulFunctionCall","src":"3866:30:103"},"nodeType":"YulExpressionStatement","src":"3866:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3916:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3927:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3912:3:103"},"nodeType":"YulFunctionCall","src":"3912:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"3932:34:103","type":"","value":"ERC20: transfer from the zero ad"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3905:6:103"},"nodeType":"YulFunctionCall","src":"3905:62:103"},"nodeType":"YulExpressionStatement","src":"3905:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3987:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"3998:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3983:3:103"},"nodeType":"YulFunctionCall","src":"3983:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4003:7:103","type":"","value":"dress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3976:6:103"},"nodeType":"YulFunctionCall","src":"3976:35:103"},"nodeType":"YulExpressionStatement","src":"3976:35:103"},{"nodeType":"YulAssignment","src":"4020:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4032:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4043:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4028:3:103"},"nodeType":"YulFunctionCall","src":"4028:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4020:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3803:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3817:4:103","type":""}],"src":"3652:401:103"},{"body":{"nodeType":"YulBlock","src":"4232:226:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4249:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4260:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4242:6:103"},"nodeType":"YulFunctionCall","src":"4242:21:103"},"nodeType":"YulExpressionStatement","src":"4242:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4283:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4294:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4279:3:103"},"nodeType":"YulFunctionCall","src":"4279:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4299:2:103","type":"","value":"36"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4272:6:103"},"nodeType":"YulFunctionCall","src":"4272:30:103"},"nodeType":"YulExpressionStatement","src":"4272:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4322:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4333:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4318:3:103"},"nodeType":"YulFunctionCall","src":"4318:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4338:34:103","type":"","value":"ERC20: approve from the zero add"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4311:6:103"},"nodeType":"YulFunctionCall","src":"4311:62:103"},"nodeType":"YulExpressionStatement","src":"4311:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4393:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4404:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4389:3:103"},"nodeType":"YulFunctionCall","src":"4389:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4409:6:103","type":"","value":"ress"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4382:6:103"},"nodeType":"YulFunctionCall","src":"4382:34:103"},"nodeType":"YulExpressionStatement","src":"4382:34:103"},{"nodeType":"YulAssignment","src":"4425:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4448:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:103"},"nodeType":"YulFunctionCall","src":"4433:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4209:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4223:4:103","type":""}],"src":"4058:400:103"},{"body":{"nodeType":"YulBlock","src":"4637:227:103","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4654:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4665:2:103","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4647:6:103"},"nodeType":"YulFunctionCall","src":"4647:21:103"},"nodeType":"YulExpressionStatement","src":"4647:21:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4688:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4699:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4684:3:103"},"nodeType":"YulFunctionCall","src":"4684:18:103"},{"kind":"number","nodeType":"YulLiteral","src":"4704:2:103","type":"","value":"37"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4677:6:103"},"nodeType":"YulFunctionCall","src":"4677:30:103"},"nodeType":"YulExpressionStatement","src":"4677:30:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4727:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4738:2:103","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4723:3:103"},"nodeType":"YulFunctionCall","src":"4723:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4743:34:103","type":"","value":"ERC20: decreased allowance below"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4716:6:103"},"nodeType":"YulFunctionCall","src":"4716:62:103"},"nodeType":"YulExpressionStatement","src":"4716:62:103"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4798:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4809:2:103","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4794:3:103"},"nodeType":"YulFunctionCall","src":"4794:18:103"},{"kind":"string","nodeType":"YulLiteral","src":"4814:7:103","type":"","value":" zero"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4787:6:103"},"nodeType":"YulFunctionCall","src":"4787:35:103"},"nodeType":"YulExpressionStatement","src":"4787:35:103"},{"nodeType":"YulAssignment","src":"4831:27:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4843:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"4854:3:103","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4839:3:103"},"nodeType":"YulFunctionCall","src":"4839:19:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4831:4:103"}]}]},"name":"abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4614:9:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4628:4:103","type":""}],"src":"4463:401:103"},{"body":{"nodeType":"YulBlock","src":"4970:76:103","statements":[{"nodeType":"YulAssignment","src":"4980:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4992:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5003:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4988:3:103"},"nodeType":"YulFunctionCall","src":"4988:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4980:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:103"},{"name":"value0","nodeType":"YulIdentifier","src":"5033:6:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5015:6:103"},"nodeType":"YulFunctionCall","src":"5015:25:103"},"nodeType":"YulExpressionStatement","src":"5015:25:103"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4939:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4950:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4961:4:103","type":""}],"src":"4869:177:103"},{"body":{"nodeType":"YulBlock","src":"5148:87:103","statements":[{"nodeType":"YulAssignment","src":"5158:26:103","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5170:9:103"},{"kind":"number","nodeType":"YulLiteral","src":"5181:2:103","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5166:3:103"},"nodeType":"YulFunctionCall","src":"5166:18:103"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5158:4:103"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5200:9:103"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5215:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5223:4:103","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5211:3:103"},"nodeType":"YulFunctionCall","src":"5211:17:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5193:6:103"},"nodeType":"YulFunctionCall","src":"5193:36:103"},"nodeType":"YulExpressionStatement","src":"5193:36:103"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5117:9:103","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5128:6:103","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5139:4:103","type":""}],"src":"5051:184:103"},{"body":{"nodeType":"YulBlock","src":"5288:181:103","statements":[{"body":{"nodeType":"YulBlock","src":"5323:115:103","statements":[{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5344:3:103"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5353:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5358:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5349:3:103"},"nodeType":"YulFunctionCall","src":"5349:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5337:6:103"},"nodeType":"YulFunctionCall","src":"5337:33:103"},"nodeType":"YulExpressionStatement","src":"5337:33:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5390:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5393:4:103","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5383:6:103"},"nodeType":"YulFunctionCall","src":"5383:15:103"},"nodeType":"YulExpressionStatement","src":"5383:15:103"},{"expression":{"arguments":[{"name":"sum","nodeType":"YulIdentifier","src":"5418:3:103"},{"kind":"number","nodeType":"YulLiteral","src":"5423:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5411:6:103"},"nodeType":"YulFunctionCall","src":"5411:17:103"},"nodeType":"YulExpressionStatement","src":"5411:17:103"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5304:1:103"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"5311:1:103"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5307:3:103"},"nodeType":"YulFunctionCall","src":"5307:6:103"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5301:2:103"},"nodeType":"YulFunctionCall","src":"5301:13:103"},"nodeType":"YulIf","src":"5298:2:103"},{"nodeType":"YulAssignment","src":"5447:16:103","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5458:1:103"},{"name":"y","nodeType":"YulIdentifier","src":"5461:1:103"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5454:3:103"},"nodeType":"YulFunctionCall","src":"5454:9:103"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"5447:3:103"}]}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5271:1:103","type":""},{"name":"y","nodeType":"YulTypedName","src":"5274:1:103","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"5280:3:103","type":""}],"src":"5240:229:103"},{"body":{"nodeType":"YulBlock","src":"5529:325:103","statements":[{"nodeType":"YulAssignment","src":"5539:22:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5553:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5559:1:103","type":"","value":"2"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"5549:3:103"},"nodeType":"YulFunctionCall","src":"5549:12:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5539:6:103"}]},{"nodeType":"YulVariableDeclaration","src":"5570:38:103","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"5600:4:103"},{"kind":"number","nodeType":"YulLiteral","src":"5606:1:103","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5596:3:103"},"nodeType":"YulFunctionCall","src":"5596:12:103"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"5574:18:103","type":""}]},{"body":{"nodeType":"YulBlock","src":"5647:31:103","statements":[{"nodeType":"YulAssignment","src":"5649:27:103","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5663:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5671:4:103","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5659:3:103"},"nodeType":"YulFunctionCall","src":"5659:17:103"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"5649:6:103"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5627:18:103"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5620:6:103"},"nodeType":"YulFunctionCall","src":"5620:26:103"},"nodeType":"YulIf","src":"5617:2:103"},{"body":{"nodeType":"YulBlock","src":"5737:111:103","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5758:1:103","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5765:3:103","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5770:10:103","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5761:3:103"},"nodeType":"YulFunctionCall","src":"5761:20:103"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5751:6:103"},"nodeType":"YulFunctionCall","src":"5751:31:103"},"nodeType":"YulExpressionStatement","src":"5751:31:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5802:1:103","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5805:4:103","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5795:6:103"},"nodeType":"YulFunctionCall","src":"5795:15:103"},"nodeType":"YulExpressionStatement","src":"5795:15:103"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5830:1:103","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5833:4:103","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5823:6:103"},"nodeType":"YulFunctionCall","src":"5823:15:103"},"nodeType":"YulExpressionStatement","src":"5823:15:103"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"5693:18:103"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"5716:6:103"},{"kind":"number","nodeType":"YulLiteral","src":"5724:2:103","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5713:2:103"},"nodeType":"YulFunctionCall","src":"5713:14:103"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5690:2:103"},"nodeType":"YulFunctionCall","src":"5690:38:103"},"nodeType":"YulIf","src":"5687:2:103"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"5509:4:103","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"5518:6:103","type":""}],"src":"5474:380:103"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := tail\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 64), tail)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"ERC20: transfer to the zero addr\")\n mstore(add(headStart, 96), \"ess\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"ERC20: approve to the zero addre\")\n mstore(add(headStart, 96), \"ss\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"ERC20: insufficient allowance\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 38)\n mstore(add(headStart, 64), \"ERC20: transfer amount exceeds b\")\n mstore(add(headStart, 96), \"alance\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: transfer from the zero ad\")\n mstore(add(headStart, 96), \"dress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"ERC20: approve from the zero add\")\n mstore(add(headStart, 96), \"ress\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 37)\n mstore(add(headStart, 64), \"ERC20: decreased allowance below\")\n mstore(add(headStart, 96), \" zero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y))\n {\n mstore(sum, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(sum, 0x24)\n }\n sum := add(x, y)\n }\n function extract_byte_array_length(data) -> length\n {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n}","id":103,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101a8578063a9059cbb146101bb578063dd62ed3e146101ce578063f76f8d78146101e1576100cf565b806370a082311461015c57806395d89b411461016f578063a3f4df7e14610177576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610203565b6040516100e99190610814565b60405180910390f35b6101056101003660046107eb565b610295565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107b0565b6102ad565b604051601281526020016100e9565b6101056101573660046107eb565b6102d1565b61011961016a36600461075d565b6102f3565b6100dc610312565b6100dc6040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b81525081565b6101056101b63660046107eb565b610321565b6101056101c93660046107eb565b6103a1565b6101196101dc36600461077e565b6103af565b6100dc6040518060400160405280600381526020016214941560ea1b81525081565b6060600380546102129061088b565b80601f016020809104026020016040519081016040528092919081815260200182805461023e9061088b565b801561028b5780601f106102605761010080835404028352916020019161028b565b820191906000526020600020905b81548152906001019060200180831161026e57829003601f168201915b5050505050905090565b6000336102a38185856103da565b5060019392505050565b6000336102bb8582856104fe565b6102c6858585610578565b506001949350505050565b6000336102a38185856102e483836103af565b6102ee9190610867565b6103da565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102129061088b565b6000338161032f82866103af565b9050838110156103945760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102c682868684036103da565b6000336102a3818585610578565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038b565b6001600160a01b03821661049d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061050a84846103af565b9050600019811461057257818110156105655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038b565b61057284848484036103da565b50505050565b6001600160a01b0383166105dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038b565b6001600160a01b03821661063e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038b565b6001600160a01b038316600090815260208190526040902054818110156106b65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161038b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106ed908490610867565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161073991815260200190565b60405180910390a3610572565b80356001600160a01b038116811461030d57600080fd5b60006020828403121561076e578081fd5b61077782610746565b9392505050565b60008060408385031215610790578081fd5b61079983610746565b91506107a760208401610746565b90509250929050565b6000806000606084860312156107c4578081fd5b6107cd84610746565b92506107db60208501610746565b9150604084013590509250925092565b600080604083850312156107fd578182fd5b61080683610746565b946020939093013593505050565b6000602080835283518082850152825b8181101561084057858101830151858201604001528201610824565b818111156108515783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561088657634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061089f57607f821691505b602082108114156108c057634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212200894a2a8aec7d823a7bf129c100a556aaf32c5c98f4e46c38df545cdf613f4dd64736f6c63430008020033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x70A08231 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0xA457C2D7 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xA457C2D7 EQ PUSH2 0x1A8 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1BB JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1CE JUMPI DUP1 PUSH4 0xF76F8D78 EQ PUSH2 0x1E1 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15C JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x16F JUMPI DUP1 PUSH4 0xA3F4DF7E EQ PUSH2 0x177 JUMPI PUSH2 0xCF JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x39509351 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x203 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x814 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x295 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7B0 JUMP JUMPDEST PUSH2 0x2AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x2D1 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x16A CALLDATASIZE PUSH1 0x4 PUSH2 0x75D JUMP JUMPDEST PUSH2 0x2F3 JUMP JUMPDEST PUSH2 0xDC PUSH2 0x312 JUMP JUMPDEST PUSH2 0xDC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH18 0x23A4A3102934B9B5B837B7B6102A37B5B2B7 PUSH1 0x71 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1B6 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1C9 CALLDATASIZE PUSH1 0x4 PUSH2 0x7EB JUMP JUMPDEST PUSH2 0x3A1 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1DC CALLDATASIZE PUSH1 0x4 PUSH2 0x77E JUMP JUMPDEST PUSH2 0x3AF JUMP JUMPDEST PUSH2 0xDC PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x149415 PUSH1 0xEA SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x212 SWAP1 PUSH2 0x88B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x23E SWAP1 PUSH2 0x88B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x28B JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x260 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x28B JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x26E JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x3DA JUMP JUMPDEST POP PUSH1 0x1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2BB DUP6 DUP3 DUP6 PUSH2 0x4FE JUMP JUMPDEST PUSH2 0x2C6 DUP6 DUP6 DUP6 PUSH2 0x578 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x2E4 DUP4 DUP4 PUSH2 0x3AF JUMP JUMPDEST PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x867 JUMP JUMPDEST PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x212 SWAP1 PUSH2 0x88B JUMP JUMPDEST PUSH1 0x0 CALLER DUP2 PUSH2 0x32F DUP3 DUP7 PUSH2 0x3AF JUMP JUMPDEST SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x394 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A2064656372656173656420616C6C6F77616E63652062656C6F77 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x207A65726F PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x2C6 DUP3 DUP7 DUP7 DUP5 SUB PUSH2 0x3DA JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2A3 DUP2 DUP6 DUP6 PUSH2 0x578 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x43C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP1 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F76652066726F6D20746865207A65726F20616464 PUSH1 0x44 DUP3 ADD MSTORE PUSH4 0x72657373 PUSH1 0xE0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x49D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20617070726F766520746F20746865207A65726F206164647265 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x7373 PUSH1 0xF0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP8 AND DUP1 DUP5 MSTORE SWAP5 DUP3 MSTORE SWAP2 DUP3 SWAP1 KECCAK256 DUP6 SWAP1 SSTORE SWAP1 MLOAD DUP5 DUP2 MSTORE PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x50A DUP5 DUP5 PUSH2 0x3AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 NOT DUP2 EQ PUSH2 0x572 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x565 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1D PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A20696E73756666696369656E7420616C6C6F77616E6365000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x38B JUMP JUMPDEST PUSH2 0x572 DUP5 DUP5 DUP5 DUP5 SUB PUSH2 0x3DA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x5DC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x25 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E736665722066726F6D20746865207A65726F206164 PUSH1 0x44 DUP3 ADD MSTORE PUSH5 0x6472657373 PUSH1 0xD8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x63E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220746F20746865207A65726F2061646472 PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x657373 PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x6B6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x45524332303A207472616E7366657220616D6F756E7420657863656564732062 PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x616C616E6365 PUSH1 0xD0 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x38B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP6 DUP6 SUB SWAP1 SSTORE SWAP2 DUP6 AND DUP2 MSTORE SWAP1 DUP2 KECCAK256 DUP1 SLOAD DUP5 SWAP3 SWAP1 PUSH2 0x6ED SWAP1 DUP5 SWAP1 PUSH2 0x867 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP5 PUSH1 0x40 MLOAD PUSH2 0x739 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x572 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x30D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x76E JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x777 DUP3 PUSH2 0x746 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x790 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x799 DUP4 PUSH2 0x746 JUMP JUMPDEST SWAP2 POP PUSH2 0x7A7 PUSH1 0x20 DUP5 ADD PUSH2 0x746 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7C4 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x7CD DUP5 PUSH2 0x746 JUMP JUMPDEST SWAP3 POP PUSH2 0x7DB PUSH1 0x20 DUP6 ADD PUSH2 0x746 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7FD JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x806 DUP4 PUSH2 0x746 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x840 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x824 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x851 JUMPI DUP4 PUSH1 0x40 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 NOT DUP3 GT ISZERO PUSH2 0x886 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 DUP2 REVERT JUMPDEST POP ADD SWAP1 JUMP JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x89F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8C0 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDMOD SWAP5 LOG2 0xA8 0xAE 0xC7 0xD8 0x23 0xA7 0xBF SLT SWAP13 LT EXP SSTORE PUSH11 0xAF32C5C98F4E46C38DF545 0xCD 0xF6 SGT DELEGATECALL 0xDD PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ","sourceMap":"120:199:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1445:14:103;;1438:22;1420:41;;1408:2;1393:18;4433:197:49;1375:92:103;3244:106:49;3331:12;;3244:106;;;5015:25:103;;;5003:2;4988:18;3244:106:49;4970:76:103;5192:286:49;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;5193:36:103;;5181:2;5166:18;3093:91:49;5148:87:103;5873:234:49;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;;:::i;2367:102::-;;;:::i;162:50:102:-;;;;;;;;;;;;;;;-1:-1:-1;;;162:50:102;;;;;6594:427:49;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;;:::i;218:37:102:-;;;;;;;;;;;;;;;-1:-1:-1;;;218:37:102;;;;;2156:98:49;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:59;4570:32:49;719:10:59;4586:7:49;4595:6;4570:8;:32::i;:::-;-1:-1:-1;4619:4:49;;4433:197;-1:-1:-1;;;4433:197:49:o;5192:286::-;5319:4;719:10:59;5375:38:49;5391:4;719:10:59;5406:6:49;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:49;;5192:286;-1:-1:-1;;;;5192:286:49:o;5873:234::-;5961:4;719:10:59;6015:64:49;719:10:59;6031:7:49;6068:10;6040:25;719:10:59;6031:7:49;6040:9;:25::i;:::-;:38;;;;:::i;:::-;6015:8;:64::i;3408:125::-;-1:-1:-1;;;;;3508:18:49;;3482:7;3508:18;;;;;;;;;;;3408:125;;;;:::o;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;6687:4;719:10:59;6687:4:49;6768:25;719:10:59;6785:7:49;6768:9;:25::i;:::-;6741:52;;6831:15;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:49;;4665:2:103;6803:85:49;;;4647:21:103;4704:2;4684:18;;;4677:30;4743:34;4723:18;;;4716:62;-1:-1:-1;;;4794:18:103;;;4787:35;4839:19;;6803:85:49;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:59;3862:28:49;719:10:59;3879:2:49;3883:6;3862:9;:28::i;3976:149::-;-1:-1:-1;;;;;4091:18:49;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149::o;10110:370::-;-1:-1:-1;;;;;10241:19:49;;10233:68;;;;-1:-1:-1;;;10233:68:49;;4260:2:103;10233:68:49;;;4242:21:103;4299:2;4279:18;;;4272:30;4338:34;4318:18;;;4311:62;-1:-1:-1;;;4389:18:103;;;4382:34;4433:19;;10233:68:49;4232:226:103;10233:68:49;-1:-1:-1;;;;;10319:21:49;;10311:68;;;;-1:-1:-1;;;10311:68:49;;2686:2:103;10311:68:49;;;2668:21:103;2725:2;2705:18;;;2698:30;2764:34;2744:18;;;2737:62;-1:-1:-1;;;2815:18:103;;;2808:32;2857:19;;10311:68:49;2658:224:103;10311:68:49;-1:-1:-1;;;;;10390:18:49;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;5015:25:103;;;10441:32:49;;4988:18:103;10441:32:49;;;;;;;10110:370;;;:::o;10761:441::-;10891:24;10918:25;10928:5;10935:7;10918:9;:25::i;:::-;10891:52;;-1:-1:-1;;10957:16:49;:37;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:49;;3089:2:103;11010:68:49;;;3071:21:103;3128:2;3108:18;;;3101:30;3167:31;3147:18;;;3140:59;3216:18;;11010:68:49;3061:179:103;11010:68:49;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10761:441;;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:49;;7593:68;;;;-1:-1:-1;;;7593:68:49;;3854:2:103;7593:68:49;;;3836:21:103;3893:2;3873:18;;;3866:30;3932:34;3912:18;;;3905:62;-1:-1:-1;;;3983:18:103;;;3976:35;4028:19;;7593:68:49;3826:227:103;7593:68:49;-1:-1:-1;;;;;7679:16:49;;7671:64;;;;-1:-1:-1;;;7671:64:49;;2282:2:103;7671:64:49;;;2264:21:103;2321:2;2301:18;;;2294:30;2360:34;2340:18;;;2333:62;-1:-1:-1;;;2411:18:103;;;2404:33;2454:19;;7671:64:49;2254:225:103;7671:64:49;-1:-1:-1;;;;;7817:15:49;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:49;;3447:2:103;7842:72:49;;;3429:21:103;3486:2;3466:18;;;3459:30;3525:34;3505:18;;;3498:62;-1:-1:-1;;;3576:18:103;;;3569:36;3622:19;;7842:72:49;3419:228:103;7842:72:49;-1:-1:-1;;;;;7948:15:49;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:49;8054:4;-1:-1:-1;;;;;8045:26:49;;8064:6;8045:26;;;;5015:25:103;;5003:2;4988:18;;4970:76;8045:26:49;;;;;;;;8082:37;11786:121;14:173:103;82:20;;-1:-1:-1;;;;;131:31:103;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:103:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:103:o;1472:603::-;;1613:2;1642;1631:9;1624:21;1674:6;1668:13;1717:6;1712:2;1701:9;1697:18;1690:34;1742:4;1755:140;1769:6;1766:1;1763:13;1755:140;;;1864:14;;;1860:23;;1854:30;1830:17;;;1849:2;1826:26;1819:66;1784:10;;1755:140;;;1913:6;1910:1;1907:13;1904:2;;;1983:4;1978:2;1969:6;1958:9;1954:22;1950:31;1943:45;1904:2;-1:-1:-1;2059:2:103;2038:15;-1:-1:-1;;2034:29:103;2019:45;;;;2066:2;2015:54;;1593:482;-1:-1:-1;;;1593:482:103:o;5240:229::-;;5311:1;5307:6;5304:1;5301:13;5298:2;;;-1:-1:-1;;;5337:33:103;;5393:4;5390:1;5383:15;5423:4;5344:3;5411:17;5298:2;-1:-1:-1;5454:9:103;;5288:181::o;5474:380::-;5559:1;5549:12;;5606:1;5596:12;;;5617:2;;5671:4;5663:6;5659:17;5649:27;;5617:2;5724;5716:6;5713:14;5693:18;5690:38;5687:2;;;5770:10;5765:3;5761:20;5758:1;5751:31;5805:4;5802:1;5795:15;5833:4;5830:1;5823:15;5687:2;;5529:325;;;:::o"},"methodIdentifiers":{"NAME()":"a3f4df7e","SYMBOL()":"f76f8d78","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.2+commit.661d1103\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"NAME\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYMBOL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless this function is overridden; NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/tokens/RiskpoolToken.sol\":\"RiskpoolToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"contracts/tokens/RiskpoolToken.sol\":{\"keccak256\":\"0x984bcd9eaefa54e14c386e54d947afafd4d6a89d392547ea6743107d4552c50d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d4c3c94eaa0c721df43d5c2c57d5532a29b1834ec3cd5ee17c2845241b2c7963\",\"dweb:/ipfs/QmbdybfE1iWinviSTEG4n4b6VEENKjZeJGDofZoUPx5ZFR\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/artifacts/contracts/Migrations.sol/Migrations.dbg.json b/artifacts/contracts/Migrations.sol/Migrations.dbg.json deleted file mode 100644 index 92f60070..00000000 --- a/artifacts/contracts/Migrations.sol/Migrations.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/Migrations.sol/Migrations.json b/artifacts/contracts/Migrations.sol/Migrations.json deleted file mode 100644 index b2f2f321..00000000 --- a/artifacts/contracts/Migrations.sol/Migrations.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Migrations", - "sourceName": "contracts/Migrations.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "last_completed_migration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_completed", - "type": "uint256" - } - ], - "name": "setCompleted", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newAddress", - "type": "address" - } - ], - "name": "upgrade", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101d1806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610082578063fdacd576146100ad575b600080fd5b61006461005f366004610155565b6100c0565b005b61006f60015481565b6040519081526020015b60405180910390f35b600054610095906001600160a01b031681565b6040516001600160a01b039091168152602001610079565b6100646100bb366004610183565b61013d565b6000546001600160a01b031633141561013a57600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916101069160040190815260200190565b600060405180830381600087803b15801561012057600080fd5b505af1158015610134573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031633141561013a57600155565b600060208284031215610166578081fd5b81356001600160a01b038116811461017c578182fd5b9392505050565b600060208284031215610194578081fd5b503591905056fea2646970667358221220a7ffc413689af522848c08543fae43e42c89e0f98d7b3bbedcc1c037759491e064736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610082578063fdacd576146100ad575b600080fd5b61006461005f366004610155565b6100c0565b005b61006f60015481565b6040519081526020015b60405180910390f35b600054610095906001600160a01b031681565b6040516001600160a01b039091168152602001610079565b6100646100bb366004610183565b61013d565b6000546001600160a01b031633141561013a57600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916101069160040190815260200190565b600060405180830381600087803b15801561012057600080fd5b505af1158015610134573d6000803e3d6000fd5b50505050505b50565b6000546001600160a01b031633141561013a57600155565b600060208284031215610166578081fd5b81356001600160a01b038116811461017c578182fd5b9392505050565b600060208284031215610194578081fd5b503591905056fea2646970667358221220a7ffc413689af522848c08543fae43e42c89e0f98d7b3bbedcc1c037759491e064736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.dbg.json b/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.json b/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.json deleted file mode 100644 index c786f0bc..00000000 --- a/artifacts/contracts/examples/AyiiOracle.sol/AyiiOracle.json +++ /dev/null @@ -1,844 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "AyiiOracle", - "sourceName": "contracts/examples/AyiiOracle.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_name", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_registry", - "type": "address" - }, - { - "internalType": "address", - "name": "_chainLinkToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_chainLinkOperator", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_jobId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_payment", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - } - ], - "name": "ChainlinkCancelled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - } - ], - "name": "ChainlinkFulfilled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - } - ], - "name": "ChainlinkRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "chainlinkRequestId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "projectId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "uaiId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "cropId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "aaay", - "type": "uint256" - } - ], - "name": "LogAyiiFulfill", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "chainlinkRequestId", - "type": "bytes32" - } - ], - "name": "LogAyiiRequest", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "oracleAddress", - "type": "address" - } - ], - "name": "LogOracleCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "cancel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "chainlinkRequestId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "projectId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "uaiId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "cropId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "aaay", - "type": "uint256" - } - ], - "name": "encodeFulfillParameters", - "outputs": [ - { - "internalType": "bytes", - "name": "parameterData", - "type": "bytes" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "chainlinkRequestId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "projectId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "uaiId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "cropId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "aaay", - "type": "uint256" - } - ], - "name": "fulfill", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getChainlinkJobId", - "outputs": [ - { - "internalType": "bytes32", - "name": "chainlinkJobId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getChainlinkOperator", - "outputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getChainlinkPayment", - "outputs": [ - { - "internalType": "uint256", - "name": "paymentAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getChainlinkToken", - "outputs": [ - { - "internalType": "address", - "name": "linkTokenAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "gifRequests", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "jobId", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "payment", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "gifRequestId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "input", - "type": "bytes" - } - ], - "name": "request", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_chainLinkToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_chainLinkOperator", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_jobId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_payment", - "type": "uint256" - } - ], - "name": "updateRequestDetails", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526001600c553480156200001657600080fd5b506040516200206d3803806200206d8339810160408190526200003991620004bc565b8585816000826200004a3362000273565b6001600160a01b038116620000b25760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000dc620002c3565b600480546001600160a01b0319166001600160a01b039290921691909117905562000106620002de565b600580546001600160a01b0319166001600160a01b0392909216919091179055620001306200030b565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200018357634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001d792909160ff82169130916101009091046001600160a01b03169062000521565b60405180910390a1505050620002036c4f7261636c655365727669636560981b6200032560201b60201c565b600780546001600160a01b0319166001600160a01b03929092169190911790556040513081527f77dee27cd265ac28cb5ba0d4f1a792ad0425ca4ae8bd0c6253b99ec26ac454109060200160405180910390a15062000267905084848484620003b3565b5050505050506200056c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620002d96541636365737360d01b62000325565b905090565b6000620002d97f436f6d706f6e656e744f776e657253657276696365000000000000000000000062000325565b6000620002d96e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200037057600080fd5b505afa15801562000385573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ab919062000498565b90505b919050565b620003bd62000422565b6001600160a01b03841615620003e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b038316156200041557600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6000546001600160a01b031633146200047e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620000a9565b565b80516001600160a01b0381168114620003ae57600080fd5b600060208284031215620004aa578081fd5b620004b58262000480565b9392505050565b60008060008060008060c08789031215620004d5578182fd5b86519550620004e76020880162000480565b9450620004f76040880162000480565b9350620005076060880162000480565b92506080870151915060a087015190509295509295509295565b84815260808101600385106200054757634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b611af1806200057c6000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063893d20e81161011a578063be169e7e116100ad578063d73cd9921161007c578063d73cd99214610319578063e0815f0d146103d8578063e8f8e1c1146103e0578063f2fde38b146103e8578063ffc79065146103fb576101fb565b8063be169e7e14610319578063c2939d97146103a9578063ca5ddcf3146103b2578063d0e0ba95146103c5576101fb565b8063a18f5ae2116100e9578063a18f5ae214610319578063b3fca9bd14610319578063b6e45ee014610399578063bd1fe5d0146103a1576101fb565b8063893d20e8146103585780638da5cb5b1461036d57806397e873e91461037e5780639a82f89014610391576101fb565b8063423b3b7a116101925780635b16d9b2116101615780635b16d9b2146103385780635d1ca63114610340578063638ce0ba14610348578063715018a614610350576101fb565b8063423b3b7a146102b857806342f6487a1461031057806359dacc6a146103195780635ab1bd5314610321576101fb565b80631b867c63116101ce5780631b867c6314610263578063258d560c1461026d5780633fb80f511461028557806340e58ee5146102a5576101fb565b806315dae03e14610200578063165d35e11461021c57806317d7de7c1461023c5780631865c57d1461024e575b600080fd5b60035460ff166040516102139190611876565b60405180910390f35b61022461040e565b6040516001600160a01b039091168152602001610213565b6001545b604051908152602001610213565b610256610427565b604051610213919061185c565b61026b6104a8565b005b610275610500565b6040519015158152602001610213565b610240610293366004611653565b600e6020526000908152604090205481565b61026b6102b3366004611653565b610530565b6103036102c6366004611696565b604080516020810196909652858101949094526060850192909252608084015260a0808401919091528151808403909101815260c0909201905290565b6040516102139190611849565b61024060105481565b61026b61053b565b61022460035461010090046001600160a01b031690565b601054610240565b600254610240565b61026b610585565b61026b6105d2565b610224600080546001600160a01b0316610422565b6000546001600160a01b0316610224565b61026b61038c366004611696565b6105e4565b610275610761565b600f54610240565b61026b610769565b610240600f5481565b61026b6103c03660046115ee565b6107b6565b61026b6103d3366004611653565b610821565b61027561086b565b610224610874565b61026b6103f63660046115b6565b610888565b61026b6104093660046116ef565b6108fe565b6000610422600a546001600160a01b031690565b905090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561047057600080fd5b505afa158015610484573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906116d0565b6104bd6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146104f65760405162461bcd60e51b81526004016104ed9061188a565b60405180910390fd5b6104fe610b0b565b565b600060025b60035460ff16600281111561052a57634e487b7160e01b600052602160045260246000fd5b14905090565b610538610b48565b50565b6105506810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105805760405162461bcd60e51b81526004016104ed9061188a565b6104fe565b61059a6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105ca5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610ba2565b6105da610b48565b6104fe6000610bcc565b6000858152600d602052604090205485906001600160a01b0316331461065d5760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084016104ed565b6000818152600d602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a26000868152600e602090815260408083205481519283018990529082018790526060820186905260808201859052919060a00160405160208183030381529060405290506106ee8282610c1c565b6000888152600e602090815260408083209290925581518481529081018a9052908101889052606081018790526080810186905260a081018590527fd3d5b0141a5d81ac8c98139f284f1b25fb3061bc81857f74de9a702e382916349060c0015b60405180910390a15050505050505050565b600080610505565b61077e6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146107ae5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610c84565b6107be610b48565b6001600160a01b038416156107e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383161561081457600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6108366810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146108665760405162461bcd60e51b81526004016104ed9061188a565b600255565b60006001610505565b6000610422600b546001600160a01b031690565b610890610b48565b6001600160a01b0381166108f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61053881610bcc565b61090f64517565727960d81b610a81565b6001600160a01b0316336001600160a01b03161461096f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e494544000000000060448201526064016104ed565b6000610985600f54306397e873e960e01b610cae565b9050600080806109978587018761166b565b9250925092506109d3604051806040016040528060098152602001681c1c9bda9958dd125960ba1b8152506109cb85610cd5565b869190610d8d565b6109fd604051806040016040528060058152602001641d585a525960da1b8152506109cb84610cd5565b610a286040518060400160405280600681526020016518dc9bdc125960d21b8152506109cb83610cd5565b6000610a3685601054610db0565b6000818152600e60209081526040918290208b905581518b81529081018390529192507f09ee0ce04d9140f363cd342b605f7aaae55e9c0d84a975c417e55ce074b49332910161074f565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0391906115d2565b90505b919050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b23610b3560025490565b60405190815260200160405180910390a1565b6000546001600160a01b031633146104fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e6610b3560025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a90610c4e90859085906004016118c1565b600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505050565b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d610b3560025490565b610cb661157b565b610cbe61157b565b610cca81868686610dd3565b9150505b9392505050565b6060610cf4604051806040016040528060008152602001600081525090565b6040516020810160405283815280602083015250610d1183610e19565b80825260009067ffffffffffffffff811115610d3d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610d67576020820181803683370190505b5090506000602082019050610d858184602001518560000151610f03565b509392505050565b6080830151610d9c9083610f7d565b6080830151610dab9082610f7d565b505050565b600b54600090610dca906001600160a01b03168484610f94565b90505b92915050565b610ddb61157b565b610deb8560800151610100611027565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b60008082610e2b576000915050610b06565b6fffffffffffffffffffffffffffffffff8316610e6057610e4d6010826118da565b9050610e5d600160801b846118f2565b92505b67ffffffffffffffff8316610e9257610e7a6008826118da565b9050610e8f68010000000000000000846118f2565b92505b63ffffffff8316610ebc57610ea86004826118da565b9050610eb9640100000000846118f2565b92505b61ffff8316610ee257610ed06002826118da565b9050610edf62010000846118f2565b92505b60ff8316610ef857610ef56001826118da565b90505b610cce816020611a39565b60208110610f3b5781518352610f1a6020846118da565b9250610f276020836118da565b9150610f34602082611a39565b9050610f03565b6000198115610f6a576001610f51836020611a39565b610f5d9061010061194c565b610f679190611a39565b90505b9151835183169219169190911790915250565b610f8a826003835161108c565b610dab82826111a7565b600c54600090610fa58160016118da565b600c55835160408086015160808701515191516000936320214ca360e11b93610fdd9386938493923092918a916001916024016117b1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061101d868386846111ce565b9695505050505050565b604080518082019091526060815260006020820152611047602083611a50565b1561106f57611057602083611a50565b611062906020611a39565b61106c90836118da565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116110b7576110b18360e0600585901b16831761133b565b50610dab565b60ff8167ffffffffffffffff16116110f5576110de836018611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166001611360565b61ffff8167ffffffffffffffff16116111345761111d836019611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166002611360565b63ffffffff8167ffffffffffffffff16116111755761115e83601a611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166004611360565b61118a83601b611fe0600586901b161761133b565b506111a18367ffffffffffffffff83166008611360565b50505050565b604080518082019091526060815260006020820152610dca83846000015151848551611386565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600d90925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600a54604051630200057560e51b81526001600160a01b0390911690634000aea09061129190889087908790600401611819565b602060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e39190611633565b610e115760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b60648201526084016104ed565b604080518082019091526060815260006020820152610dca8384600001515184611470565b604080518082019091526060815260006020820152610e118485600001515185856114cc565b60408051808201909152606081526000602082015282518211156113a957600080fd5b60208501516113b883866118da565b11156113eb576113eb856113db876020015187866113d691906118da565b61154d565b6113e6906002611a1a565b611564565b60008086518051876020830101935080888701111561140a5787860182525b505050602084015b6020841061144a57805182526114296020836118da565b91506114366020826118da565b9050611443602085611a39565b9350611412565b51815160001960208690036101000a019081169019919091161790525083949350505050565b604080518082019091526060815260006020820152836020015183106114a5576114a584856020015160026113e69190611a1a565b8351805160208583010184815350808514156114c2576001810182525b5093949350505050565b60408051808201909152606081526000602082015260208501516114f085846118da565b111561150457611504856113db86856118da565b600060016115148461010061194c565b61151e9190611a39565b90508551838682010185831982511617815250805184870111156115425783860181525b509495945050505050565b60008183111561155e575081610dcd565b50919050565b81516115708383611027565b506111a183826111a7565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000602082840312156115c7578081fd5b8135610cce81611aa6565b6000602082840312156115e3578081fd5b8151610cce81611aa6565b60008060008060808587031215611603578283fd5b843561160e81611aa6565b9350602085013561161e81611aa6565b93969395505050506040820135916060013590565b600060208284031215611644578081fd5b81518015158114610cce578182fd5b600060208284031215611664578081fd5b5035919050565b60008060006060848603121561167f578283fd5b505081359360208301359350604090920135919050565b600080600080600060a086880312156116ad578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000602082840312156116e1578081fd5b815160078110610cce578182fd5b600080600060408486031215611703578283fd5b83359250602084013567ffffffffffffffff80821115611721578384fd5b818601915086601f830112611734578384fd5b813581811115611742578485fd5b876020828501011115611753578485fd5b6020830194508093505050509250925092565b60008151808452815b8181101561178b5760208185018101518683018201520161176f565b8181111561179c5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061180a83820185611766565b9b9a5050505050505050505050565b600060018060a01b0385168252836020830152606060408301526118406060830184611766565b95945050505050565b600060208252610dca6020830184611766565b602081016007831061187057611870611a90565b91905290565b602081016003831061187057611870611a90565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260406020830152610e116040830184611766565b600082198211156118ed576118ed611a64565b500190565b60008261190157611901611a7a565b500490565b80825b60018086116119185750611943565b81870482111561192a5761192a611a64565b8086161561193757918102915b9490941c938002611909565b94509492505050565b6000610dca600019848460008261196557506001610cce565b8161197257506000610cce565b81600181146119885760028114611992576119bf565b6001915050610cce565b60ff8411156119a3576119a3611a64565b6001841b9150848211156119b9576119b9611a64565b50610cce565b5060208310610133831016604e8410600b84101617156119f2575081810a838111156119ed576119ed611a64565b610cce565b6119ff8484846001611906565b808604821115611a1157611a11611a64565b02949350505050565b6000816000190483118215151615611a3457611a34611a64565b500290565b600082821015611a4b57611a4b611a64565b500390565b600082611a5f57611a5f611a7a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038116811461053857600080fdfea264697066735822122032e1343ae3cf45cc987315ea3df5115358453bec437a4d8d956c9c7ac8dc31c064736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c8063893d20e81161011a578063be169e7e116100ad578063d73cd9921161007c578063d73cd99214610319578063e0815f0d146103d8578063e8f8e1c1146103e0578063f2fde38b146103e8578063ffc79065146103fb576101fb565b8063be169e7e14610319578063c2939d97146103a9578063ca5ddcf3146103b2578063d0e0ba95146103c5576101fb565b8063a18f5ae2116100e9578063a18f5ae214610319578063b3fca9bd14610319578063b6e45ee014610399578063bd1fe5d0146103a1576101fb565b8063893d20e8146103585780638da5cb5b1461036d57806397e873e91461037e5780639a82f89014610391576101fb565b8063423b3b7a116101925780635b16d9b2116101615780635b16d9b2146103385780635d1ca63114610340578063638ce0ba14610348578063715018a614610350576101fb565b8063423b3b7a146102b857806342f6487a1461031057806359dacc6a146103195780635ab1bd5314610321576101fb565b80631b867c63116101ce5780631b867c6314610263578063258d560c1461026d5780633fb80f511461028557806340e58ee5146102a5576101fb565b806315dae03e14610200578063165d35e11461021c57806317d7de7c1461023c5780631865c57d1461024e575b600080fd5b60035460ff166040516102139190611876565b60405180910390f35b61022461040e565b6040516001600160a01b039091168152602001610213565b6001545b604051908152602001610213565b610256610427565b604051610213919061185c565b61026b6104a8565b005b610275610500565b6040519015158152602001610213565b610240610293366004611653565b600e6020526000908152604090205481565b61026b6102b3366004611653565b610530565b6103036102c6366004611696565b604080516020810196909652858101949094526060850192909252608084015260a0808401919091528151808403909101815260c0909201905290565b6040516102139190611849565b61024060105481565b61026b61053b565b61022460035461010090046001600160a01b031690565b601054610240565b600254610240565b61026b610585565b61026b6105d2565b610224600080546001600160a01b0316610422565b6000546001600160a01b0316610224565b61026b61038c366004611696565b6105e4565b610275610761565b600f54610240565b61026b610769565b610240600f5481565b61026b6103c03660046115ee565b6107b6565b61026b6103d3366004611653565b610821565b61027561086b565b610224610874565b61026b6103f63660046115b6565b610888565b61026b6104093660046116ef565b6108fe565b6000610422600a546001600160a01b031690565b905090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561047057600080fd5b505afa158015610484573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906116d0565b6104bd6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146104f65760405162461bcd60e51b81526004016104ed9061188a565b60405180910390fd5b6104fe610b0b565b565b600060025b60035460ff16600281111561052a57634e487b7160e01b600052602160045260246000fd5b14905090565b610538610b48565b50565b6105506810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105805760405162461bcd60e51b81526004016104ed9061188a565b6104fe565b61059a6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146105ca5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610ba2565b6105da610b48565b6104fe6000610bcc565b6000858152600d602052604090205485906001600160a01b0316331461065d5760405162461bcd60e51b815260206004820152602860248201527f536f75726365206d75737420626520746865206f7261636c65206f6620746865604482015267081c995c5d595cdd60c21b60648201526084016104ed565b6000818152600d602052604080822080546001600160a01b03191690555182917f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a91a26000868152600e602090815260408083205481519283018990529082018790526060820186905260808201859052919060a00160405160208183030381529060405290506106ee8282610c1c565b6000888152600e602090815260408083209290925581518481529081018a9052908101889052606081018790526080810186905260a081018590527fd3d5b0141a5d81ac8c98139f284f1b25fb3061bc81857f74de9a702e382916349060c0015b60405180910390a15050505050505050565b600080610505565b61077e6810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146107ae5760405162461bcd60e51b81526004016104ed9061188a565b6104fe610c84565b6107be610b48565b6001600160a01b038416156107e957600a80546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0383161561081457600b80546001600160a01b0319166001600160a01b0385161790555b600f919091556010555050565b6108366810dbdb5c1bdb995b9d60ba1b610a81565b6001600160a01b0316336001600160a01b0316146108665760405162461bcd60e51b81526004016104ed9061188a565b600255565b60006001610505565b6000610422600b546001600160a01b031690565b610890610b48565b6001600160a01b0381166108f55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b61053881610bcc565b61090f64517565727960d81b610a81565b6001600160a01b0316336001600160a01b03161461096f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e494544000000000060448201526064016104ed565b6000610985600f54306397e873e960e01b610cae565b9050600080806109978587018761166b565b9250925092506109d3604051806040016040528060098152602001681c1c9bda9958dd125960ba1b8152506109cb85610cd5565b869190610d8d565b6109fd604051806040016040528060058152602001641d585a525960da1b8152506109cb84610cd5565b610a286040518060400160405280600681526020016518dc9bdc125960d21b8152506109cb83610cd5565b6000610a3685601054610db0565b6000818152600e60209081526040918290208b905581518b81529081018390529192507f09ee0ce04d9140f363cd342b605f7aaae55e9c0d84a975c417e55ce074b49332910161074f565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0391906115d2565b90505b919050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b23610b3560025490565b60405190815260200160405180910390a1565b6000546001600160a01b031633146104fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e6610b3560025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a90610c4e90859085906004016118c1565b600060405180830381600087803b158015610c6857600080fd5b505af1158015610c7c573d6000803e3d6000fd5b505050505050565b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d610b3560025490565b610cb661157b565b610cbe61157b565b610cca81868686610dd3565b9150505b9392505050565b6060610cf4604051806040016040528060008152602001600081525090565b6040516020810160405283815280602083015250610d1183610e19565b80825260009067ffffffffffffffff811115610d3d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610d67576020820181803683370190505b5090506000602082019050610d858184602001518560000151610f03565b509392505050565b6080830151610d9c9083610f7d565b6080830151610dab9082610f7d565b505050565b600b54600090610dca906001600160a01b03168484610f94565b90505b92915050565b610ddb61157b565b610deb8560800151610100611027565b50508284526001600160a01b03821660208501526001600160e01b031981166040850152835b949350505050565b60008082610e2b576000915050610b06565b6fffffffffffffffffffffffffffffffff8316610e6057610e4d6010826118da565b9050610e5d600160801b846118f2565b92505b67ffffffffffffffff8316610e9257610e7a6008826118da565b9050610e8f68010000000000000000846118f2565b92505b63ffffffff8316610ebc57610ea86004826118da565b9050610eb9640100000000846118f2565b92505b61ffff8316610ee257610ed06002826118da565b9050610edf62010000846118f2565b92505b60ff8316610ef857610ef56001826118da565b90505b610cce816020611a39565b60208110610f3b5781518352610f1a6020846118da565b9250610f276020836118da565b9150610f34602082611a39565b9050610f03565b6000198115610f6a576001610f51836020611a39565b610f5d9061010061194c565b610f679190611a39565b90505b9151835183169219169190911790915250565b610f8a826003835161108c565b610dab82826111a7565b600c54600090610fa58160016118da565b600c55835160408086015160808701515191516000936320214ca360e11b93610fdd9386938493923092918a916001916024016117b1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152905061101d868386846111ce565b9695505050505050565b604080518082019091526060815260006020820152611047602083611a50565b1561106f57611057602083611a50565b611062906020611a39565b61106c90836118da565b91505b506020828101829052604080518085526000815290920101905290565b60178167ffffffffffffffff16116110b7576110b18360e0600585901b16831761133b565b50610dab565b60ff8167ffffffffffffffff16116110f5576110de836018611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166001611360565b61ffff8167ffffffffffffffff16116111345761111d836019611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166002611360565b63ffffffff8167ffffffffffffffff16116111755761115e83601a611fe0600586901b161761133b565b506110b18367ffffffffffffffff83166004611360565b61118a83601b611fe0600586901b161761133b565b506111a18367ffffffffffffffff83166008611360565b50505050565b604080518082019091526060815260006020820152610dca83846000015151848551611386565b6040516bffffffffffffffffffffffff193060601b1660208201526034810184905260009060540160408051808303601f1901815282825280516020918201206000818152600d90925291812080546001600160a01b0319166001600160a01b038a1617905590925082917fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af99190a2600a54604051630200057560e51b81526001600160a01b0390911690634000aea09061129190889087908790600401611819565b602060405180830381600087803b1580156112ab57600080fd5b505af11580156112bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e39190611633565b610e115760405162461bcd60e51b815260206004820152602360248201527f756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261604482015262636c6560e81b60648201526084016104ed565b604080518082019091526060815260006020820152610dca8384600001515184611470565b604080518082019091526060815260006020820152610e118485600001515185856114cc565b60408051808201909152606081526000602082015282518211156113a957600080fd5b60208501516113b883866118da565b11156113eb576113eb856113db876020015187866113d691906118da565b61154d565b6113e6906002611a1a565b611564565b60008086518051876020830101935080888701111561140a5787860182525b505050602084015b6020841061144a57805182526114296020836118da565b91506114366020826118da565b9050611443602085611a39565b9350611412565b51815160001960208690036101000a019081169019919091161790525083949350505050565b604080518082019091526060815260006020820152836020015183106114a5576114a584856020015160026113e69190611a1a565b8351805160208583010184815350808514156114c2576001810182525b5093949350505050565b60408051808201909152606081526000602082015260208501516114f085846118da565b111561150457611504856113db86856118da565b600060016115148461010061194c565b61151e9190611a39565b90508551838682010185831982511617815250805184870111156115425783860181525b509495945050505050565b60008183111561155e575081610dcd565b50919050565b81516115708383611027565b506111a183826111a7565b6040805160a0810182526000808252602080830182905282840182905260608084018390528451808601909552845283015290608082015290565b6000602082840312156115c7578081fd5b8135610cce81611aa6565b6000602082840312156115e3578081fd5b8151610cce81611aa6565b60008060008060808587031215611603578283fd5b843561160e81611aa6565b9350602085013561161e81611aa6565b93969395505050506040820135916060013590565b600060208284031215611644578081fd5b81518015158114610cce578182fd5b600060208284031215611664578081fd5b5035919050565b60008060006060848603121561167f578283fd5b505081359360208301359350604090920135919050565b600080600080600060a086880312156116ad578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000602082840312156116e1578081fd5b815160078110610cce578182fd5b600080600060408486031215611703578283fd5b83359250602084013567ffffffffffffffff80821115611721578384fd5b818601915086601f830112611734578384fd5b813581811115611742578485fd5b876020828501011115611753578485fd5b6020830194508093505050509250925092565b60008151808452815b8181101561178b5760208185018101518683018201520161176f565b8181111561179c5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0389811682526020820189905260408201889052861660608201526001600160e01b03198516608082015260a0810184905260c0810183905261010060e0820181905260009061180a83820185611766565b9b9a5050505050505050505050565b600060018060a01b0385168252836020830152606060408301526118406060830184611766565b95945050505050565b600060208252610dca6020830184611766565b602081016007831061187057611870611a90565b91905290565b602081016003831061187057611870611a90565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260406020830152610e116040830184611766565b600082198211156118ed576118ed611a64565b500190565b60008261190157611901611a7a565b500490565b80825b60018086116119185750611943565b81870482111561192a5761192a611a64565b8086161561193757918102915b9490941c938002611909565b94509492505050565b6000610dca600019848460008261196557506001610cce565b8161197257506000610cce565b81600181146119885760028114611992576119bf565b6001915050610cce565b60ff8411156119a3576119a3611a64565b6001841b9150848211156119b9576119b9611a64565b50610cce565b5060208310610133831016604e8410600b84101617156119f2575081810a838111156119ed576119ed611a64565b610cce565b6119ff8484846001611906565b808604821115611a1157611a11611a64565b02949350505050565b6000816000190483118215151615611a3457611a34611a64565b500290565b600082821015611a4b57611a4b611a64565b500390565b600082611a5f57611a5f611a7a565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6001600160a01b038116811461053857600080fdfea264697066735822122032e1343ae3cf45cc987315ea3df5115358453bec437a4d8d956c9c7ac8dc31c064736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.dbg.json b/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.json b/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.json deleted file mode 100644 index 99e6078f..00000000 --- a/artifacts/contracts/examples/AyiiProduct.sol/AyiiProduct.json +++ /dev/null @@ -1,1972 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "AyiiProduct", - "sourceName": "contracts/examples/AyiiProduct.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "productName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "registry", - "type": "address" - }, - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "oracleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "insurer", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payoutAmount", - "type": "uint256" - } - ], - "name": "LogAyiiClaimCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payoutAmount", - "type": "uint256" - } - ], - "name": "LogAyiiPayoutCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "policyHolder", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "LogAyiiPolicyApplicationCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "policyHolder", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "LogAyiiPolicyCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - } - ], - "name": "LogAyiiPolicyProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "trigger", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "exit", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tsi", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "aph", - "type": "uint256" - } - ], - "name": "LogAyiiRiskDataAfterAdjustment", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "trigger", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "exit", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tsi", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "aph", - "type": "uint256" - } - ], - "name": "LogAyiiRiskDataBeforeAdjustment", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "productId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "uaiId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "cropId", - "type": "bytes32" - } - ], - "name": "LogAyiiRiskDataCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "aaay", - "type": "uint256" - } - ], - "name": "LogAyiiRiskDataReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "LogAyiiRiskDataRequestCancelled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "projectId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "uaiId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "cropId", - "type": "bytes32" - } - ], - "name": "LogAyiiRiskDataRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "policies", - "type": "uint256" - } - ], - "name": "LogAyiiRiskProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "productAddress", - "type": "address" - } - ], - "name": "LogProductCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "callSuccess", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "returnDataLength", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "returnData", - "type": "bytes" - } - ], - "name": "LogTransferHelperCallFailed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "tokenIsContract", - "type": "bool" - }, - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "LogTransferHelperInputValidation1Failed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - } - ], - "name": "LogTransferHelperInputValidation2Failed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [], - "name": "AAAY_MAX", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "AAAY_MIN", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "INSURER_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PERCENTAGE_MULTIPLIER", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "POLICY_FLOW", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "RISK_APH_MAX", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "RISK_EXIT_MAX", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "RISK_TSI_AT_EXIT_MIN", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "expectedPremiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "adjustPremiumSumInsured", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "trigger", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "exit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tsi", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "aph", - "type": "uint256" - } - ], - "name": "adjustRisk", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "applications", - "outputs": [ - { - "internalType": "uint256", - "name": "applicationCount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "policyHolder", - "type": "address" - }, - { - "internalType": "uint256", - "name": "premium", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsured", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - } - ], - "name": "applyForPolicy", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "payoutPercentage", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "calculatePayout", - "outputs": [ - { - "internalType": "uint256", - "name": "payoutAmount", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tsi", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "trigger", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "exit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "aph", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "aaay", - "type": "uint256" - } - ], - "name": "calculatePayoutPercentage", - "outputs": [ - { - "internalType": "uint256", - "name": "payoutPercentage", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "cancelOracleRequest", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - } - ], - "name": "collectPremium", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPremium", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "collectPremium", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPremium", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "projectId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "uaiId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "cropId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "trigger", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "exit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tsi", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "aph", - "type": "uint256" - } - ], - "name": "createRisk", - "outputs": [ - { - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getApplicationDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "applicationIdx", - "type": "uint256" - } - ], - "name": "getApplicationId", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getClaimDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPayoutDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPercentageMultiplier", - "outputs": [ - { - "internalType": "uint256", - "name": "multiplier", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getPolicyFlow", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "policyIdx", - "type": "uint256" - } - ], - "name": "getPolicyId", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - } - ], - "name": "getRisk", - "outputs": [ - { - "components": [ - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "projectId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "uaiId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "cropId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "trigger", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "exit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tsi", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "aph", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "requestTriggered", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "responseAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "aaay", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutPercentage", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct AyiiProduct.Risk", - "name": "risk", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "projectId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "uaiId", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "cropId", - "type": "bytes32" - } - ], - "name": "getRiskId", - "outputs": [ - { - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getRiskId", - "outputs": [ - { - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRiskpoolId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "responseData", - "type": "bytes" - } - ], - "name": "oracleCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - } - ], - "name": "policies", - "outputs": [ - { - "internalType": "uint256", - "name": "policyCount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "riskId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "batchSize", - "type": "uint256" - } - ], - "name": "processPoliciesForRisk", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "processedPolicies", - "type": "bytes32[]" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - } - ], - "name": "processPolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "riskPoolCapacityCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "risks", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "triggerOracle", - "outputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "underwrite", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620049383803806200493883398101604081905262000034916200058b565b858470506f6c69637944656661756c74466c6f7760781b8488846001826200005c336200035b565b6001600160a01b038116620000c35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b606482015260840160405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000ed620003ab565b600480546001600160a01b0319166001600160a01b039290921691909117905562000117620003c6565b600580546001600160a01b0319166001600160a01b039290921691909117905562000141620003f3565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019457634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001e892909160ff82169130916101009091046001600160a01b031690620005f0565b60405180910390a15050600880546001600160a01b0319166001600160a01b0387161790555060098290556200021e836200040d565b600780546001600160a01b0319166001600160a01b03929092169190911790556200025a6d50726f647563745365727669636560901b6200040d565b600a80546001600160a01b0319166001600160a01b0392909216919091179055620002976e496e7374616e63655365727669636560881b6200040d565b600b80546001600160a01b0319166001600160a01b03929092169190911790556040513081527fced180b842b890d77dab95dcbf4654065589a164226ef9faa91a7601fb67c4679060200160405180910390a15050600f80546001600160a01b0319166001600160a01b038916179055505050600e8390556200032360006200031d3390565b6200049b565b6200034f7ff098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955b826200049b565b5050505050506200063b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620003c16541636365737360d01b6200040d565b905090565b6000620003c17f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200040d565b6000620003c16e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200045857600080fd5b505afa1580156200046d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000493919062000567565b90505b919050565b620004a78282620004ab565b5050565b6000828152600c602090815260408083206001600160a01b038516845290915290205460ff16620004a7576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200050b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b80516001600160a01b03811681146200049657600080fd5b60006020828403121562000579578081fd5b62000584826200054f565b9392505050565b60008060008060008060c08789031215620005a4578182fd5b86519550620005b6602088016200054f565b9450620005c6604088016200054f565b93506060870151925060808701519150620005e460a088016200054f565b90509295509295509295565b84815260808101600385106200061657634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6142ed806200064b6000396000f3fe608060405234801561001057600080fd5b50600436106103fc5760003560e01c806366528c3b11610215578063b9ea8d6611610125578063e0815f0d116100b8578063f2fde38b11610087578063f2fde38b14610836578063f406460c14610849578063f4fdc1fa14610851578063f9d7ff8914610862578063ffa1ad741461086a576103fc565b8063e0815f0d146107f5578063e5d58cd8146107fd578063e9960d8a14610810578063eb80733914610823576103fc565b8063d52d2d06116100f4578063d52d2d06146107bc578063d547741f146107cf578063d73cd9921461061a578063ddbfd8ef146107e2576103fc565b8063b9ea8d6614610771578063bd1fe5d0146107a1578063be169e7e1461061a578063d0e0ba95146107a9576103fc565b806391d14854116101a8578063a18f5ae211610177578063a18f5ae21461061a578063a217fddf146105f4578063a3f4df7e1461074a578063aec8de3914610769578063b3fca9bd1461061a576103fc565b806391d14854146106f057806394f64ff4146107035780639a82f8901461072f5780639dce5ff014610737576103fc565b80637ce5e82f116101e45780637ce5e82f146106ba578063893d20e8146106c25780638da5cb5b146106d757806390e1a2ac146106e8576103fc565b806366528c3b1461068d57806370d2fe5314610697578063715018a61461069f57806378a433a5146106a7576103fc565b806336568abe1161031057806354111315116102a35780635ab1bd53116102725780635ab1bd53146106425780635d1ca631146106595780635e61aa6314610661578063637d08f414610674578063638ce0ba14610685576103fc565b806354111315146105fc578063597ee7981461060757806359dacc6a1461061a5780635a60210914610622576103fc565b8063412f91d9116102df578063412f91d9146105bb57806346b937f6146105ce5780634b6eb669146105e15780634ce9d0a7146105f4576103fc565b806336568abe1461057857806339cf5e161461058b5780633dc5f58e146105a85780633ec92bda1461058b576103fc565b80631b07b17f1161039357806321df0da71161036257806321df0da714610502578063248a9ca314610527578063258d560c1461054a5780632f2ff15d1461055257806330a73da514610565576103fc565b80631b07b17f146104bf5780631b867c63146104d25780631c3456dd146104da5780631fd358aa146104e2576103fc565b80630b228d95116103cf5780630b228d951461047a57806315dae03e1461048f57806317d7de7c146104a25780631865c57d146104aa576103fc565b806301ffc9a714610401578063056c99891461042957806306136f281461044c57806309128d831461045f575b600080fd5b61041461040f366004613b88565b610877565b60405190151581526020015b60405180910390f35b61043e60008051602061429883398151915281565b604051908152602001610420565b61043e61045a3660046139f0565b6108b0565b61043e70506f6c69637944656661756c74466c6f7760781b81565b61048d6104883660046139f0565b610a9b565b005b60035460ff166040516104209190614032565b60015461043e565b6104b2610e2c565b6040516104209190614018565b6104146104cd3660046139f0565b610eb2565b61048d610f5f565b61043e610fae565b6104f56104f0366004613b2d565b610fc0565b6040516104209190613f26565b6008546001600160a01b03165b6040516001600160a01b039091168152602001610420565b61043e6105353660046139f0565b6000908152600c602052604090206001015490565b610414611299565b61048d610560366004613a20565b6112c9565b61048d610573366004613a86565b6112f3565b61048d610586366004613a20565b61131c565b6040805160208101909152600081525b6040516104209190614046565b61043e6105b6366004613ae2565b61139a565b61043e6105c9366004613b2d565b6114ff565b61043e6105dc366004613b4e565b611520565b61043e6105ef366004613968565b6115bd565b61043e600081565b61043e630100000081565b61048d6106153660046139f0565b6117d2565b61048d611975565b6106356106303660046139f0565b6119bf565b6040516104209190614090565b61050f60035461010090046001600160a01b031690565b60025461043e565b61048d61066f366004613d80565b611b06565b6007546001600160a01b031661050f565b61048d611e02565b630100000061043e565b60095461043e565b61048d611e4f565b61048d6106b5366004613b4e565b611e61565b60135461043e565b61050f600080546001600160a01b0316610ead565b6000546001600160a01b031661050f565b61043e61202a565b6104146106fe366004613a20565b612039565b60408051808201909152601081526f2862797465733332207269736b49642960801b602082015261059b565b610414612064565b61043e610745366004613b2d565b61206c565b61043e74105c9958565a595b19125b99195e141c9bd91d58dd605a1b81565b61043e600f81565b61078461077f3660046139f0565b612087565b604080519315158452602084019290925290820152606001610420565b61048d6120bb565b61048d6107b73660046139f0565b612108565b61043e6107ca3660046139f0565b612152565b61048d6107dd366004613a20565b612187565b61043e6107f03660046139f0565b6121ac565b6104146121c3565b61078461080b366004613a4f565b6121cc565b61043e61081e366004613a86565b612269565b61043e6108313660046139f0565b6122a0565b61048d610844366004613930565b6122c3565b61043e612339565b61048d61085f3660046139f0565b50565b60105461043e565b61043e62302e3160e81b81565b60006001600160e01b03198216637965db0b60e01b14806108a857506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60006000805160206142988339815191526108ca81612348565b6000601160006108d986612352565b81526020019081526020016000209050600081600d0154116109425760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031303a5249534b5f554e444546494e45440000000060448201526064015b60405180910390fd5b600a810154156109a35760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031313a4f5241434c455f414c52454144595f5245536044820152651413d391115160d21b6064820152608401610939565b60018101546002820154600383015460408051602081019490945283019190915260608201526000906080016040516020818303038152906040529050610a1485826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600e5461237f565b6008830181905560098301805460ff1916600190811790915542600e85015583549084015460028501546003860154604080518681526020810195909552840192909252606083015260808201529094507f983570285d5bc639119bffe47fdb9708eb765c6cac55a784fd1651fbf1360c0f9060a0015b60405180910390a1505050919050565b600080516020614298833981519152610ab381612348565b6000610abe8361240a565b905060008160600151806020019051810190610ada9190613a08565b60008181526011602090815260409182902082516101e08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401526008810154610100840152600981015460ff161515610120840152600a810154610140840152600b810154610160840152600c810154610180840152600d8101546101a0840152600e01546101c0830152919250908214610be75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4159492d3033313a5249534b5f49445f494e56414c49440000006044820152606401610939565b600081610140015111610c4a5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033323a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b6000828152601260205260409020610c6290866124c4565b610cbc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033333a504f4c4943595f464f525f5249534b5f554e60448201526425a727aba760d91b6064820152608401610939565b6000828152601260205260409020610cd490866124dc565b506000610cea826101800151856040015161206c565b90506000610d088783604051806020016040528060008152506124e8565b60408051898152602081018390529081018490529091507ff3b6fa541c2fb440a7135df726575da0735a6968fa3804a462c63690d4330dbd9060600160405180910390a18115610dc95781610d5e888383612577565b6000610d7b898484604051806020016040528060008152506125e9565b9050610d878982612620565b5050604080518a8152602081018490527fe85c538af9d154780befa06f96e8c8d5ff531c715d3735732ca365e541b15ec8910160405180910390a15050610ddd565b610dd387826126b4565b610ddd878261271e565b610de687612756565b610def876127b8565b6040518781527f88873a4c738a1c855a15847c7daf779056bd64e3e5dce2a378085a56b1e65698906020015b60405180910390a150505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190613bb0565b905090565b6000600080516020614298833981519152610ecc81612348565b610ed58361240a565b50610edf836127e9565b91508115610f59576000610ef28461240a565b90506000610eff85612868565b805160208085015160408087015181518b81526001600160a01b039095169385019390935283015260608201529091507f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d190608001610a8b565b50919050565b610f746810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614610fa45760405162461bcd60e51b815260040161093990614059565b610fac6129a3565b565b610fbd6301000000600f6141ac565b81565b6060600080516020614298833981519152610fda81612348565b60008481526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a8201546101408201819052600b830154610160830152600c830154610180830152600d8301546101a0830152600e909201546101c0820152906110f35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033303a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b600085815260126020526040812061110a906129e0565b9050806111625760408051878152600060208201527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a150506040805160008152602081019091529150611292565b8461116f5780945061117c565b61117985826129ea565b94505b8467ffffffffffffffff8111156111a357634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156111cc578160200160208202803683370190505b50935060006111dc6001836141cb565b905060005b8681101561125457600088815260126020526040812061120a9061120584866141cb565b612a01565b905061121581610a9b565b8087838151811061123657634e487b7160e01b600052603260045260246000fd5b6020908102919091010152508061124c81614225565b9150506111e1565b5060408051888152602081018890527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a15050505b5092915050565b600060025b60035460ff1660028111156112c357634e487b7160e01b600052602160045260246000fd5b14905090565b6000828152600c60205260409020600101546112e481612348565b6112ee8383612a0d565b505050565b60008051602061429883398151915261130b81612348565b611316848484612a93565b50505050565b6001600160a01b038116331461138c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610939565b6113968282612ad2565b5050565b60006000805160206142988339815191526113b481612348565b6113c086868686612b39565b6113cb898989612269565b60108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018190556000818152601160205260409020600d81015491935090156114695760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3030313a5249534b5f414c52454144595f45584953546044820152605360f81b6064820152608401610939565b828155600181018a905560028101899055600381018890556004810187905560058101869055600681018590556007810184905542600d8201819055600e82015560408051848152602081018c90529081018a9052606081018990527f817b0e272a7b333532cb6439a34e3ec00922e22926032442220a69868f02d8dc9060800160405180910390a15050979650505050505050565b60008281526012602052604081206115179083612a01565b90505b92915050565b600061152c85846141ac565b61153a6301000000846141ac565b10611547575060006115b4565b61155184846141ac565b61155f6301000000846141ac565b1161156b5750846115b4565b60008361157c8463010000006141ac565b611586919061418c565b905061159285876141cb565b61159c82886141cb565b6115a690896141ac565b6115b0919061418c565b9150505b95945050505050565b60006000805160206142988339815191526115d781612348565b6000838152601160205260409020600d8101546116365760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3030343a5249534b5f554e444546494e4544000000006044820152606401610939565b6001600160a01b03871661168c5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3030353a504f4c4943595f484f4c4445525f5a45524f6044820152606401610939565b6040805160208082018352600082528251808201889052835180820390920182528301909252906116c08989898585612e43565b601380546001810182556000919091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09001819055604080518281526001600160a01b038c1660208201529081018a9052606081018990529095507fb6b5fb82ad406a44dc88433d286d201520c295308f087a476b845f907d3bd6039060800160405180910390a16000611753866127e9565b905080156117c55760008781526012602052604090206117739087612ed8565b50604080518781526001600160a01b038c1660208201529081018a9052606081018990527f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d19060800160405180910390a15b5050505050949350505050565b6000805160206142988339815191526117ea81612348565b6000601160006117f985612352565b81526020019081526020016000209050600081600d01541161185d5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031323a5249534b5f554e444546494e4544000000006044820152606401610939565b600981015460ff166118c05760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031333a4f5241434c455f524551554553545f4e4f5460448201526517d193d5539160d21b6064820152608401610939565b600a810154156119125760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3031343a4558495354494e475f43414c4c4241434b006044820152606401610939565b61191f8160080154612ee4565b60098101805460ff1916905542600e82015560088101546040805185815260208101929092527fdeeac61c3ad18e6efca12eac38425c944b5bbca5b482e39b549671e05544c3dc910160405180910390a1505050565b61198a6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146119ba5760405162461bcd60e51b815260040161093990614059565b610fac565b611a46604051806101e0016040528060008019168152602001600080191681526020016000801916815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060009081526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a820154610140820152600b820154610160820152600c820154610180820152600d8201546101a0820152600e909101546101c082015290565b611b1764517565727960d81b612921565b6001600160a01b0316336001600160a01b031614611b775760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610939565b6000808080611b8885870187613ab1565b93509350935093506000611b9b88612352565b9050611ba8858585612269565b8114611bf65760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4159492d3032303a5249534b5f49445f4d49534d4154434800006044820152606401610939565b6000818152601160205260409020600d810154611c555760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3032313a5249534b5f554e444546494e4544000000006044820152606401610939565b89816008015414611cb25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3032323a524551554553545f49445f4d49534d4154436044820152600960fb1b6064820152608401610939565b600a81015415611d045760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3032333a4558495354494e475f43414c4c4241434b006044820152606401610939565b611d13630100000060006141ac565b8310158015611d2f5750611d2c6301000000600f6141ac565b83105b611d7b5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3032343a414141595f494e56414c49440000000000006044820152606401610939565b600b81018390556006810154600482015460058301546007840154611da39392919087611520565b600c82015542600a8201819055600e820155604080518b8152602081018490529081018490527f357e32cffc9b470fe746dfc76a9dabc81e0441109f95820ff3daeabc21ca3e319060600160405180910390a150505050505050505050565b611e176810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614611e475760405162461bcd60e51b815260040161093990614059565b610fac612f15565b611e57612f3f565b610fac6000612f99565b600080516020614298833981519152611e7981612348565b611e8585858585612b39565b6000868152601160205260409020600d810154611ee45760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3030323a5249534b5f554e4b4e4f574e0000000000006044820152606401610939565b6000878152601260205260409020611efb906129e0565b15611f605760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3030333a5249534b5f574954485f504f4c494349455360448201526e5f4e4f545f41444a55535441424c4560881b6064820152608401610939565b805460048201546005830154600684015460078501546040805195865260208601949094528484019290925260608401526080830152517f5ea522f91ea45156f00d5390cfaf51dc82f9b163ae492c8d6033fcb3af773f589181900360a00190a16004810186905560058101859055600681018490556007810183905580546040805191825260208201889052810186905260608101859052608081018490527f2ef22fcf430acdb3b80e5d30364fcd07242c6081010c6cc9aa2fe4f4105f81279060a001610e1b565b610fbd6002630100000061418c565b6000918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008061129e565b6000630100000061207d83856141ac565b611517919061418c565b60008060006000805160206142988339815191526120a481612348565b6120ad85612fe9565b919790965090945092505050565b6120d06810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146121005760405162461bcd60e51b815260040161093990614059565b610fac61302f565b61211d6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b03161461214d5760405162461bcd60e51b815260040161093990614059565b600255565b60006013828154811061217557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6000828152600c60205260409020600101546121a281612348565b6112ee8383612ad2565b60008181526012602052604081206108a8906129e0565b6000600161129e565b60008060006000805160206142988339815191526121e981612348565b60006121f488612868565b905080600001516001600160a01b0316876001600160a01b03161461224c57600f548151600091612233916001600160a01b03909116908a908a613059565b90508061224a5794506000935085925061225f9050565b505b612256888761336e565b91965094509250505b5093509350939050565b6040805160208082019590955280820193909352606080840192909252805180840390920182526080909201909152805191012090565b60006010828154811061217557634e487b7160e01b600052603260045260246000fd5b6122cb612f3f565b6001600160a01b0381166123305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610939565b61085f81612f99565b610fbd6005630100000061418c565b61085f81336133f8565b60008061235e8361240a565b905080606001518060200190518101906123789190613a08565b9392505050565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f22906123b89088908890889030908990600401613f8b565b602060405180830381600087803b1580156123d257600080fd5b505af11580156123e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b49190613a08565b6124446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b15801561248857600080fd5b505afa15801561249c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613bcf565b60008181526001830160205260408120541515611517565b6000611517838361345c565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d159061251d90879087908790600401613fd4565b602060405180830381600087803b15801561253757600080fd5b505af115801561254b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256f9190613a08565b949350505050565b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f906064015b600060405180830381600087803b1580156125cc57600080fd5b505af11580156125e0573d6000803e3d6000fd5b50505050505050565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d7846906123b8908890889088908890600401613ff3565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b15801561267157600080fd5b505af1158015612685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a99190613dfb565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b15801561270257600080fd5b505af1158015612716573d6000803e3d6000fd5b505050505050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba2906044016126e8565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c6441798906024015b600060405180830381600087803b15801561279d57600080fd5b505af11580156127b1573d6000803e3d6000fd5b5050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c90602401612783565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b15801561283057600080fd5b505af1158015612844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906139a2565b6128a16040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600b5460405163296586d360e21b8152600481018490526001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156128e557600080fd5b505afa1580156128f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613c7d565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561296b57600080fd5b505afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a8919061394c565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616129cd60025490565b60405190815260200160405180910390a1565b60006108a8825490565b6000818311156129fa5781611517565b5090919050565b60006115178383613579565b612a178282612039565b611396576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a4f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064016125b2565b612adc8282612039565b15611396576000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6301000000841115612b995760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4159492d3034303a5249534b5f545249474745525f544f4f5f4c6044820152634152474560e01b6064820152608401610939565b828411612c005760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3034313a5249534b5f545249474745525f4e4f545f4c60448201526e105491d15497d512105397d1561255608a1b6064820152608401610939565b612c0f6005630100000061418c565b831115612c685760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3034323a5249534b5f455849545f544f4f5f4c4152476044820152604560f81b6064820152608401610939565b612c776002630100000061418c565b821015612cc65760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034333a5249534b5f5453495f544f4f5f534d414c4c6044820152606401610939565b6301000000821115612d1a5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034343a5249534b5f5453495f544f4f5f4c415247456044820152606401610939565b6301000000612d298484614174565b1115612d895760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4159492d3034353a5249534b5f5453495f455849545f53554d5f604482015268544f4f5f4c4152474560b81b6064820152608401610939565b60008111612de55760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4159492d3034363a5249534b5f4150485f5a45524f5f494e564160448201526213125160ea1b6064820152608401610939565b612df46301000000600f6141ac565b8111156113165760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034373a5249534b5f4150485f544f4f5f4c415247456044820152606401610939565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a90612e7c9089908990899089908990600401613edb565b602060405180830381600087803b158015612e9657600080fd5b505af1158015612eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ece9190613a08565b9695505050505050565b600061151783836135b1565b600a54604051630c054e5360e21b8152600481018390526001600160a01b0390911690633015394c90602401612783565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96129cd60025490565b6000546001600160a01b03163314610fac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610939565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080612ff885613600565b9050806020015181604001511015613027576120ad858260400151836020015161302291906141cb565b61336e565b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556129cd60025490565b6000846001600160a01b038082163b1515908616158061308057506001600160a01b038516155b80613089575080155b156130e4576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a160009250505061256f565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561312957600080fd5b505afa15801561313d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131619190613a08565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156131ae57600080fd5b505afa1580156131c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e69190613a08565b9050858210806131f557508581105b156132405760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a1600094505050505061256f565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916132a49190613e4a565b6000604051808303816000865af19150503d80600081146132e1576040519150601f19603f3d011682016040523d82523d6000602084013e6132e6565b606091505b509150915081801561331c57508051158061331c57508051602014801561331c57508080602001905181019061331c91906139a2565b965086613360577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161335793929190613f6a565b60405180910390a15b505050505050949350505050565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156133c057600080fd5b505af11580156133d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ad91906139bc565b6134028282612039565b6113965761341a816001600160a01b031660146136cd565b6134258360206136cd565b604051602001613436929190613e66565b60408051601f198184030181529082905262461bcd60e51b825261093991600401614046565b6000818152600183016020526040812054801561356f5760006134806001836141cb565b8554909150600090613494906001906141cb565b90508181146135155760008660000182815481106134c257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106134f357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061353457634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061151a565b600091505061151a565b600082600001828154811061359e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120546135f85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561151a565b50600061151a565b613650604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b15801561369557600080fd5b505afa1580156136a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190613cfb565b606060006136dc8360026141ac565b6136e7906002614174565b67ffffffffffffffff81111561370d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015613737576020820181803683370190505b509050600360fc1b8160008151811061376057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061379d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006137c18460026141ac565b6137cc906001614174565b90505b6001811115613860576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061380e57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061383257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936138598161420e565b90506137cf565b5083156115175760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610939565b805180151581146108ab57600080fd5b600082601f8301126138cf578081fd5b815167ffffffffffffffff8111156138e9576138e961426c565b6138fc601f8201601f1916602001614143565b818152846020838601011115613910578283fd5b61256f8260208301602087016141e2565b8051600381106108ab57600080fd5b600060208284031215613941578081fd5b813561151781614282565b60006020828403121561395d578081fd5b815161151781614282565b6000806000806080858703121561397d578283fd5b843561398881614282565b966020860135965060408601359560600135945092505050565b6000602082840312156139b3578081fd5b611517826138af565b6000806000606084860312156139d0578283fd5b6139d9846138af565b925060208401519150604084015190509250925092565b600060208284031215613a01578081fd5b5035919050565b600060208284031215613a19578081fd5b5051919050565b60008060408385031215613a32578182fd5b823591506020830135613a4481614282565b809150509250929050565b600080600060608486031215613a63578081fd5b833592506020840135613a7581614282565b929592945050506040919091013590565b600080600060608486031215613a9a578081fd5b505081359360208301359350604090920135919050565b60008060008060808587031215613ac6578182fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600060e0888a031215613afc578485fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215613b3f578182fd5b50508035926020909101359150565b600080600080600060a08688031215613b65578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215613b99578081fd5b81356001600160e01b031981168114611517578182fd5b600060208284031215613bc1578081fd5b815160078110611517578182fd5b600060208284031215613be0578081fd5b815167ffffffffffffffff80821115613bf7578283fd5b9083019060c08286031215613c0a578283fd5b613c1460c0614143565b825160048110613c22578485fd5b808252506020830151602082015260408301516040820152606083015182811115613c4b578485fd5b613c57878286016138bf565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613c8e578081fd5b815167ffffffffffffffff80821115613ca5578283fd5b9083019060c08286031215613cb8578283fd5b613cc260c0614143565b8251613ccd81614282565b815260208381015190820152613ce560408401613921565b6040820152606083015182811115613c4b578485fd5b6000610120808385031215613d0e578182fd5b613d1781614143565b9050613d2283613921565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215613d95578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115613dba578384fd5b818701915087601f830112613dcd578384fd5b813581811115613ddb578485fd5b886020828501011115613dec578485fd5b95989497505060200194505050565b60008060408385031215613e0d578182fd5b505080516020909101519092909150565b60008151808452613e368160208601602086016141e2565b601f01601f19169290920160200192915050565b60008251613e5c8184602087016141e2565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351613e9e8160178501602088016141e2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ecf8160288401602088016141e2565b01602801949350505050565b600060018060a01b038716825285602083015284604083015260a06060830152613f0860a0830185613e1e565b8281036080840152613f1a8185613e1e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613f5e57835183529284019291840191600101613f42565b50909695505050505050565b60008415158252836020830152606060408301526115b46060830184613e1e565b600086825260a06020830152613fa460a0830187613e1e565b8281036040840152613fb68187613e1e565b6001600160a01b039590951660608401525050608001529392505050565b6000848252836020830152606060408301526115b46060830184613e1e565b600085825284602083015283604083015260806060830152612ece6080830184613e1e565b602081016007831061402c5761402c614256565b91905290565b602081016003831061402c5761402c614256565b6000602082526115176020830184613e1e565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60006101e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516141038285018215159052565b50506101408381015190830152610160808401519083015261018080840151908301526101a080840151908301526101c092830151929091019190915290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561416c5761416c61426c565b604052919050565b6000821982111561418757614187614240565b500190565b6000826141a757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156141c6576141c6614240565b500290565b6000828210156141dd576141dd614240565b500390565b60005b838110156141fd5781810151838201526020016141e5565b838111156113165750506000910152565b60008161421d5761421d614240565b506000190190565b600060001982141561423957614239614240565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461085f57600080fdfef098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955ba26469706673582212206fbe90c5e63801ca92badc10bc72a58619457eca24171fa149899255b2d6ddb164736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103fc5760003560e01c806366528c3b11610215578063b9ea8d6611610125578063e0815f0d116100b8578063f2fde38b11610087578063f2fde38b14610836578063f406460c14610849578063f4fdc1fa14610851578063f9d7ff8914610862578063ffa1ad741461086a576103fc565b8063e0815f0d146107f5578063e5d58cd8146107fd578063e9960d8a14610810578063eb80733914610823576103fc565b8063d52d2d06116100f4578063d52d2d06146107bc578063d547741f146107cf578063d73cd9921461061a578063ddbfd8ef146107e2576103fc565b8063b9ea8d6614610771578063bd1fe5d0146107a1578063be169e7e1461061a578063d0e0ba95146107a9576103fc565b806391d14854116101a8578063a18f5ae211610177578063a18f5ae21461061a578063a217fddf146105f4578063a3f4df7e1461074a578063aec8de3914610769578063b3fca9bd1461061a576103fc565b806391d14854146106f057806394f64ff4146107035780639a82f8901461072f5780639dce5ff014610737576103fc565b80637ce5e82f116101e45780637ce5e82f146106ba578063893d20e8146106c25780638da5cb5b146106d757806390e1a2ac146106e8576103fc565b806366528c3b1461068d57806370d2fe5314610697578063715018a61461069f57806378a433a5146106a7576103fc565b806336568abe1161031057806354111315116102a35780635ab1bd53116102725780635ab1bd53146106425780635d1ca631146106595780635e61aa6314610661578063637d08f414610674578063638ce0ba14610685576103fc565b806354111315146105fc578063597ee7981461060757806359dacc6a1461061a5780635a60210914610622576103fc565b8063412f91d9116102df578063412f91d9146105bb57806346b937f6146105ce5780634b6eb669146105e15780634ce9d0a7146105f4576103fc565b806336568abe1461057857806339cf5e161461058b5780633dc5f58e146105a85780633ec92bda1461058b576103fc565b80631b07b17f1161039357806321df0da71161036257806321df0da714610502578063248a9ca314610527578063258d560c1461054a5780632f2ff15d1461055257806330a73da514610565576103fc565b80631b07b17f146104bf5780631b867c63146104d25780631c3456dd146104da5780631fd358aa146104e2576103fc565b80630b228d95116103cf5780630b228d951461047a57806315dae03e1461048f57806317d7de7c146104a25780631865c57d146104aa576103fc565b806301ffc9a714610401578063056c99891461042957806306136f281461044c57806309128d831461045f575b600080fd5b61041461040f366004613b88565b610877565b60405190151581526020015b60405180910390f35b61043e60008051602061429883398151915281565b604051908152602001610420565b61043e61045a3660046139f0565b6108b0565b61043e70506f6c69637944656661756c74466c6f7760781b81565b61048d6104883660046139f0565b610a9b565b005b60035460ff166040516104209190614032565b60015461043e565b6104b2610e2c565b6040516104209190614018565b6104146104cd3660046139f0565b610eb2565b61048d610f5f565b61043e610fae565b6104f56104f0366004613b2d565b610fc0565b6040516104209190613f26565b6008546001600160a01b03165b6040516001600160a01b039091168152602001610420565b61043e6105353660046139f0565b6000908152600c602052604090206001015490565b610414611299565b61048d610560366004613a20565b6112c9565b61048d610573366004613a86565b6112f3565b61048d610586366004613a20565b61131c565b6040805160208101909152600081525b6040516104209190614046565b61043e6105b6366004613ae2565b61139a565b61043e6105c9366004613b2d565b6114ff565b61043e6105dc366004613b4e565b611520565b61043e6105ef366004613968565b6115bd565b61043e600081565b61043e630100000081565b61048d6106153660046139f0565b6117d2565b61048d611975565b6106356106303660046139f0565b6119bf565b6040516104209190614090565b61050f60035461010090046001600160a01b031690565b60025461043e565b61048d61066f366004613d80565b611b06565b6007546001600160a01b031661050f565b61048d611e02565b630100000061043e565b60095461043e565b61048d611e4f565b61048d6106b5366004613b4e565b611e61565b60135461043e565b61050f600080546001600160a01b0316610ead565b6000546001600160a01b031661050f565b61043e61202a565b6104146106fe366004613a20565b612039565b60408051808201909152601081526f2862797465733332207269736b49642960801b602082015261059b565b610414612064565b61043e610745366004613b2d565b61206c565b61043e74105c9958565a595b19125b99195e141c9bd91d58dd605a1b81565b61043e600f81565b61078461077f3660046139f0565b612087565b604080519315158452602084019290925290820152606001610420565b61048d6120bb565b61048d6107b73660046139f0565b612108565b61043e6107ca3660046139f0565b612152565b61048d6107dd366004613a20565b612187565b61043e6107f03660046139f0565b6121ac565b6104146121c3565b61078461080b366004613a4f565b6121cc565b61043e61081e366004613a86565b612269565b61043e6108313660046139f0565b6122a0565b61048d610844366004613930565b6122c3565b61043e612339565b61048d61085f3660046139f0565b50565b60105461043e565b61043e62302e3160e81b81565b60006001600160e01b03198216637965db0b60e01b14806108a857506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60006000805160206142988339815191526108ca81612348565b6000601160006108d986612352565b81526020019081526020016000209050600081600d0154116109425760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031303a5249534b5f554e444546494e45440000000060448201526064015b60405180910390fd5b600a810154156109a35760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031313a4f5241434c455f414c52454144595f5245536044820152651413d391115160d21b6064820152608401610939565b60018101546002820154600383015460408051602081019490945283019190915260608201526000906080016040516020818303038152906040529050610a1485826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600e5461237f565b6008830181905560098301805460ff1916600190811790915542600e85015583549084015460028501546003860154604080518681526020810195909552840192909252606083015260808201529094507f983570285d5bc639119bffe47fdb9708eb765c6cac55a784fd1651fbf1360c0f9060a0015b60405180910390a1505050919050565b600080516020614298833981519152610ab381612348565b6000610abe8361240a565b905060008160600151806020019051810190610ada9190613a08565b60008181526011602090815260409182902082516101e08101845281548082526001830154938201939093526002820154938101939093526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e08401526008810154610100840152600981015460ff161515610120840152600a810154610140840152600b810154610160840152600c810154610180840152600d8101546101a0840152600e01546101c0830152919250908214610be75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4159492d3033313a5249534b5f49445f494e56414c49440000006044820152606401610939565b600081610140015111610c4a5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033323a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b6000828152601260205260409020610c6290866124c4565b610cbc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033333a504f4c4943595f464f525f5249534b5f554e60448201526425a727aba760d91b6064820152608401610939565b6000828152601260205260409020610cd490866124dc565b506000610cea826101800151856040015161206c565b90506000610d088783604051806020016040528060008152506124e8565b60408051898152602081018390529081018490529091507ff3b6fa541c2fb440a7135df726575da0735a6968fa3804a462c63690d4330dbd9060600160405180910390a18115610dc95781610d5e888383612577565b6000610d7b898484604051806020016040528060008152506125e9565b9050610d878982612620565b5050604080518a8152602081018490527fe85c538af9d154780befa06f96e8c8d5ff531c715d3735732ca365e541b15ec8910160405180910390a15050610ddd565b610dd387826126b4565b610ddd878261271e565b610de687612756565b610def876127b8565b6040518781527f88873a4c738a1c855a15847c7daf779056bd64e3e5dce2a378085a56b1e65698906020015b60405180910390a150505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610e7557600080fd5b505afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190613bb0565b905090565b6000600080516020614298833981519152610ecc81612348565b610ed58361240a565b50610edf836127e9565b91508115610f59576000610ef28461240a565b90506000610eff85612868565b805160208085015160408087015181518b81526001600160a01b039095169385019390935283015260608201529091507f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d190608001610a8b565b50919050565b610f746810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614610fa45760405162461bcd60e51b815260040161093990614059565b610fac6129a3565b565b610fbd6301000000600f6141ac565b81565b6060600080516020614298833981519152610fda81612348565b60008481526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a8201546101408201819052600b830154610160830152600c830154610180830152600d8301546101a0830152600e909201546101c0820152906110f35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4159492d3033303a4f5241434c455f524553504f4e53455f4d496044820152645353494e4760d81b6064820152608401610939565b600085815260126020526040812061110a906129e0565b9050806111625760408051878152600060208201527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a150506040805160008152602081019091529150611292565b8461116f5780945061117c565b61117985826129ea565b94505b8467ffffffffffffffff8111156111a357634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156111cc578160200160208202803683370190505b50935060006111dc6001836141cb565b905060005b8681101561125457600088815260126020526040812061120a9061120584866141cb565b612a01565b905061121581610a9b565b8087838151811061123657634e487b7160e01b600052603260045260246000fd5b6020908102919091010152508061124c81614225565b9150506111e1565b5060408051888152602081018890527f2f322f1b61d2ff4c9e3d88448830423a8a4a968a916bb6c838f5eb10ced570e3910160405180910390a15050505b5092915050565b600060025b60035460ff1660028111156112c357634e487b7160e01b600052602160045260246000fd5b14905090565b6000828152600c60205260409020600101546112e481612348565b6112ee8383612a0d565b505050565b60008051602061429883398151915261130b81612348565b611316848484612a93565b50505050565b6001600160a01b038116331461138c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610939565b6113968282612ad2565b5050565b60006000805160206142988339815191526113b481612348565b6113c086868686612b39565b6113cb898989612269565b60108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018190556000818152601160205260409020600d81015491935090156114695760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3030313a5249534b5f414c52454144595f45584953546044820152605360f81b6064820152608401610939565b828155600181018a905560028101899055600381018890556004810187905560058101869055600681018590556007810184905542600d8201819055600e82015560408051848152602081018c90529081018a9052606081018990527f817b0e272a7b333532cb6439a34e3ec00922e22926032442220a69868f02d8dc9060800160405180910390a15050979650505050505050565b60008281526012602052604081206115179083612a01565b90505b92915050565b600061152c85846141ac565b61153a6301000000846141ac565b10611547575060006115b4565b61155184846141ac565b61155f6301000000846141ac565b1161156b5750846115b4565b60008361157c8463010000006141ac565b611586919061418c565b905061159285876141cb565b61159c82886141cb565b6115a690896141ac565b6115b0919061418c565b9150505b95945050505050565b60006000805160206142988339815191526115d781612348565b6000838152601160205260409020600d8101546116365760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3030343a5249534b5f554e444546494e4544000000006044820152606401610939565b6001600160a01b03871661168c5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3030353a504f4c4943595f484f4c4445525f5a45524f6044820152606401610939565b6040805160208082018352600082528251808201889052835180820390920182528301909252906116c08989898585612e43565b601380546001810182556000919091527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09001819055604080518281526001600160a01b038c1660208201529081018a9052606081018990529095507fb6b5fb82ad406a44dc88433d286d201520c295308f087a476b845f907d3bd6039060800160405180910390a16000611753866127e9565b905080156117c55760008781526012602052604090206117739087612ed8565b50604080518781526001600160a01b038c1660208201529081018a9052606081018990527f740860d47f9571ac7c5d7d56a42d09a9d575a3d5a025f85a409366d172d4b3d19060800160405180910390a15b5050505050949350505050565b6000805160206142988339815191526117ea81612348565b6000601160006117f985612352565b81526020019081526020016000209050600081600d01541161185d5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3031323a5249534b5f554e444546494e4544000000006044820152606401610939565b600981015460ff166118c05760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4159492d3031333a4f5241434c455f524551554553545f4e4f5460448201526517d193d5539160d21b6064820152608401610939565b600a810154156119125760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3031343a4558495354494e475f43414c4c4241434b006044820152606401610939565b61191f8160080154612ee4565b60098101805460ff1916905542600e82015560088101546040805185815260208101929092527fdeeac61c3ad18e6efca12eac38425c944b5bbca5b482e39b549671e05544c3dc910160405180910390a1505050565b61198a6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146119ba5760405162461bcd60e51b815260040161093990614059565b610fac565b611a46604051806101e0016040528060008019168152602001600080191681526020016000801916815260200160008019168152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081526020016000815260200160008152602001600081525090565b5060009081526011602090815260409182902082516101e081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e08201526008820154610100820152600982015460ff161515610120820152600a820154610140820152600b820154610160820152600c820154610180820152600d8201546101a0820152600e909101546101c082015290565b611b1764517565727960d81b612921565b6001600160a01b0316336001600160a01b031614611b775760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610939565b6000808080611b8885870187613ab1565b93509350935093506000611b9b88612352565b9050611ba8858585612269565b8114611bf65760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4159492d3032303a5249534b5f49445f4d49534d4154434800006044820152606401610939565b6000818152601160205260409020600d810154611c555760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4159492d3032313a5249534b5f554e444546494e4544000000006044820152606401610939565b89816008015414611cb25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3032323a524551554553545f49445f4d49534d4154436044820152600960fb1b6064820152608401610939565b600a81015415611d045760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4159492d3032333a4558495354494e475f43414c4c4241434b006044820152606401610939565b611d13630100000060006141ac565b8310158015611d2f5750611d2c6301000000600f6141ac565b83105b611d7b5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3032343a414141595f494e56414c49440000000000006044820152606401610939565b600b81018390556006810154600482015460058301546007840154611da39392919087611520565b600c82015542600a8201819055600e820155604080518b8152602081018490529081018490527f357e32cffc9b470fe746dfc76a9dabc81e0441109f95820ff3daeabc21ca3e319060600160405180910390a150505050505050505050565b611e176810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b031614611e475760405162461bcd60e51b815260040161093990614059565b610fac612f15565b611e57612f3f565b610fac6000612f99565b600080516020614298833981519152611e7981612348565b611e8585858585612b39565b6000868152601160205260409020600d810154611ee45760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4159492d3030323a5249534b5f554e4b4e4f574e0000000000006044820152606401610939565b6000878152601260205260409020611efb906129e0565b15611f605760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3030333a5249534b5f574954485f504f4c494349455360448201526e5f4e4f545f41444a55535441424c4560881b6064820152608401610939565b805460048201546005830154600684015460078501546040805195865260208601949094528484019290925260608401526080830152517f5ea522f91ea45156f00d5390cfaf51dc82f9b163ae492c8d6033fcb3af773f589181900360a00190a16004810186905560058101859055600681018490556007810183905580546040805191825260208201889052810186905260608101859052608081018490527f2ef22fcf430acdb3b80e5d30364fcd07242c6081010c6cc9aa2fe4f4105f81279060a001610e1b565b610fbd6002630100000061418c565b6000918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008061129e565b6000630100000061207d83856141ac565b611517919061418c565b60008060006000805160206142988339815191526120a481612348565b6120ad85612fe9565b919790965090945092505050565b6120d06810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b0316146121005760405162461bcd60e51b815260040161093990614059565b610fac61302f565b61211d6810dbdb5c1bdb995b9d60ba1b612921565b6001600160a01b0316336001600160a01b03161461214d5760405162461bcd60e51b815260040161093990614059565b600255565b60006013828154811061217557634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b6000828152600c60205260409020600101546121a281612348565b6112ee8383612ad2565b60008181526012602052604081206108a8906129e0565b6000600161129e565b60008060006000805160206142988339815191526121e981612348565b60006121f488612868565b905080600001516001600160a01b0316876001600160a01b03161461224c57600f548151600091612233916001600160a01b03909116908a908a613059565b90508061224a5794506000935085925061225f9050565b505b612256888761336e565b91965094509250505b5093509350939050565b6040805160208082019590955280820193909352606080840192909252805180840390920182526080909201909152805191012090565b60006010828154811061217557634e487b7160e01b600052603260045260246000fd5b6122cb612f3f565b6001600160a01b0381166123305760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610939565b61085f81612f99565b610fbd6005630100000061418c565b61085f81336133f8565b60008061235e8361240a565b905080606001518060200190518101906123789190613a08565b9392505050565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f22906123b89088908890889030908990600401613f8b565b602060405180830381600087803b1580156123d257600080fd5b505af11580156123e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b49190613a08565b6124446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b15801561248857600080fd5b505afa15801561249c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613bcf565b60008181526001830160205260408120541515611517565b6000611517838361345c565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d159061251d90879087908790600401613fd4565b602060405180830381600087803b15801561253757600080fd5b505af115801561254b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256f9190613a08565b949350505050565b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f906064015b600060405180830381600087803b1580156125cc57600080fd5b505af11580156125e0573d6000803e3d6000fd5b50505050505050565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d7846906123b8908890889088908890600401613ff3565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b15801561267157600080fd5b505af1158015612685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a99190613dfb565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b15801561270257600080fd5b505af1158015612716573d6000803e3d6000fd5b505050505050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba2906044016126e8565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c6441798906024015b600060405180830381600087803b15801561279d57600080fd5b505af11580156127b1573d6000803e3d6000fd5b5050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c90602401612783565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b15801561283057600080fd5b505af1158015612844573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906139a2565b6128a16040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600b5460405163296586d360e21b8152600481018490526001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156128e557600080fd5b505afa1580156128f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a89190810190613c7d565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561296b57600080fd5b505afa15801561297f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a8919061394c565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616129cd60025490565b60405190815260200160405180910390a1565b60006108a8825490565b6000818311156129fa5781611517565b5090919050565b60006115178383613579565b612a178282612039565b611396576000828152600c602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a4f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064016125b2565b612adc8282612039565b15611396576000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6301000000841115612b995760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4159492d3034303a5249534b5f545249474745525f544f4f5f4c6044820152634152474560e01b6064820152608401610939565b828411612c005760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4159492d3034313a5249534b5f545249474745525f4e4f545f4c60448201526e105491d15497d512105397d1561255608a1b6064820152608401610939565b612c0f6005630100000061418c565b831115612c685760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4159492d3034323a5249534b5f455849545f544f4f5f4c4152476044820152604560f81b6064820152608401610939565b612c776002630100000061418c565b821015612cc65760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034333a5249534b5f5453495f544f4f5f534d414c4c6044820152606401610939565b6301000000821115612d1a5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034343a5249534b5f5453495f544f4f5f4c415247456044820152606401610939565b6301000000612d298484614174565b1115612d895760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4159492d3034353a5249534b5f5453495f455849545f53554d5f604482015268544f4f5f4c4152474560b81b6064820152608401610939565b60008111612de55760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4159492d3034363a5249534b5f4150485f5a45524f5f494e564160448201526213125160ea1b6064820152608401610939565b612df46301000000600f6141ac565b8111156113165760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4159492d3034373a5249534b5f4150485f544f4f5f4c415247456044820152606401610939565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a90612e7c9089908990899089908990600401613edb565b602060405180830381600087803b158015612e9657600080fd5b505af1158015612eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ece9190613a08565b9695505050505050565b600061151783836135b1565b600a54604051630c054e5360e21b8152600481018390526001600160a01b0390911690633015394c90602401612783565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96129cd60025490565b6000546001600160a01b03163314610fac5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610939565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080612ff885613600565b9050806020015181604001511015613027576120ad858260400151836020015161302291906141cb565b61336e565b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556129cd60025490565b6000846001600160a01b038082163b1515908616158061308057506001600160a01b038516155b80613089575080155b156130e4576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a160009250505061256f565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561312957600080fd5b505afa15801561313d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131619190613a08565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156131ae57600080fd5b505afa1580156131c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e69190613a08565b9050858210806131f557508581105b156132405760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a1600094505050505061256f565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916132a49190613e4a565b6000604051808303816000865af19150503d80600081146132e1576040519150601f19603f3d011682016040523d82523d6000602084013e6132e6565b606091505b509150915081801561331c57508051158061331c57508051602014801561331c57508080602001905181019061331c91906139a2565b965086613360577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161335793929190613f6a565b60405180910390a15b505050505050949350505050565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156133c057600080fd5b505af11580156133d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ad91906139bc565b6134028282612039565b6113965761341a816001600160a01b031660146136cd565b6134258360206136cd565b604051602001613436929190613e66565b60408051601f198184030181529082905262461bcd60e51b825261093991600401614046565b6000818152600183016020526040812054801561356f5760006134806001836141cb565b8554909150600090613494906001906141cb565b90508181146135155760008660000182815481106134c257634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106134f357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061353457634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061151a565b600091505061151a565b600082600001828154811061359e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120546135f85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561151a565b50600061151a565b613650604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b15801561369557600080fd5b505afa1580156136a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a89190613cfb565b606060006136dc8360026141ac565b6136e7906002614174565b67ffffffffffffffff81111561370d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015613737576020820181803683370190505b509050600360fc1b8160008151811061376057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061379d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006137c18460026141ac565b6137cc906001614174565b90505b6001811115613860576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061380e57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061383257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936138598161420e565b90506137cf565b5083156115175760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610939565b805180151581146108ab57600080fd5b600082601f8301126138cf578081fd5b815167ffffffffffffffff8111156138e9576138e961426c565b6138fc601f8201601f1916602001614143565b818152846020838601011115613910578283fd5b61256f8260208301602087016141e2565b8051600381106108ab57600080fd5b600060208284031215613941578081fd5b813561151781614282565b60006020828403121561395d578081fd5b815161151781614282565b6000806000806080858703121561397d578283fd5b843561398881614282565b966020860135965060408601359560600135945092505050565b6000602082840312156139b3578081fd5b611517826138af565b6000806000606084860312156139d0578283fd5b6139d9846138af565b925060208401519150604084015190509250925092565b600060208284031215613a01578081fd5b5035919050565b600060208284031215613a19578081fd5b5051919050565b60008060408385031215613a32578182fd5b823591506020830135613a4481614282565b809150509250929050565b600080600060608486031215613a63578081fd5b833592506020840135613a7581614282565b929592945050506040919091013590565b600080600060608486031215613a9a578081fd5b505081359360208301359350604090920135919050565b60008060008060808587031215613ac6578182fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600060e0888a031215613afc578485fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b60008060408385031215613b3f578182fd5b50508035926020909101359150565b600080600080600060a08688031215613b65578283fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208284031215613b99578081fd5b81356001600160e01b031981168114611517578182fd5b600060208284031215613bc1578081fd5b815160078110611517578182fd5b600060208284031215613be0578081fd5b815167ffffffffffffffff80821115613bf7578283fd5b9083019060c08286031215613c0a578283fd5b613c1460c0614143565b825160048110613c22578485fd5b808252506020830151602082015260408301516040820152606083015182811115613c4b578485fd5b613c57878286016138bf565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613c8e578081fd5b815167ffffffffffffffff80821115613ca5578283fd5b9083019060c08286031215613cb8578283fd5b613cc260c0614143565b8251613ccd81614282565b815260208381015190820152613ce560408401613921565b6040820152606083015182811115613c4b578485fd5b6000610120808385031215613d0e578182fd5b613d1781614143565b9050613d2283613921565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215613d95578182fd5b8435935060208501359250604085013567ffffffffffffffff80821115613dba578384fd5b818701915087601f830112613dcd578384fd5b813581811115613ddb578485fd5b886020828501011115613dec578485fd5b95989497505060200194505050565b60008060408385031215613e0d578182fd5b505080516020909101519092909150565b60008151808452613e368160208601602086016141e2565b601f01601f19169290920160200192915050565b60008251613e5c8184602087016141e2565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351613e9e8160178501602088016141e2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613ecf8160288401602088016141e2565b01602801949350505050565b600060018060a01b038716825285602083015284604083015260a06060830152613f0860a0830185613e1e565b8281036080840152613f1a8185613e1e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015613f5e57835183529284019291840191600101613f42565b50909695505050505050565b60008415158252836020830152606060408301526115b46060830184613e1e565b600086825260a06020830152613fa460a0830187613e1e565b8281036040840152613fb68187613e1e565b6001600160a01b039590951660608401525050608001529392505050565b6000848252836020830152606060408301526115b46060830184613e1e565b600085825284602083015283604083015260806060830152612ece6080830184613e1e565b602081016007831061402c5761402c614256565b91905290565b602081016003831061402c5761402c614256565b6000602082526115176020830184613e1e565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60006101e082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516141038285018215159052565b50506101408381015190830152610160808401519083015261018080840151908301526101a080840151908301526101c092830151929091019190915290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561416c5761416c61426c565b604052919050565b6000821982111561418757614187614240565b500190565b6000826141a757634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156141c6576141c6614240565b500290565b6000828210156141dd576141dd614240565b500390565b60005b838110156141fd5781810151838201526020016141e5565b838111156113165750506000910152565b60008161421d5761421d614240565b506000190190565b600060001982141561423957614239614240565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461085f57600080fdfef098b7742e998f92a3c749f35e64ef555edcecec4b78a00c532a4f385915955ba26469706673582212206fbe90c5e63801ca92badc10bc72a58619457eca24171fa149899255b2d6ddb164736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.dbg.json b/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.json b/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.json deleted file mode 100644 index 83a1feef..00000000 --- a/artifacts/contracts/examples/AyiiRiskpool.sol/AyiiRiskpool.json +++ /dev/null @@ -1,1526 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "AyiiRiskpool", - "sourceName": "contracts/examples/AyiiRiskpool.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "collateralization", - "type": "uint256" - }, - { - "internalType": "address", - "name": "erc20Token", - "type": "address" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "activeBundles", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "LogBasicRiskpoolBundlesAndPolicies", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "index", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maxAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "LogBasicRiskpoolCandidateBundleAmountCheck", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolBundleCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isMatching", - "type": "bool" - } - ], - "name": "LogRiskpoolBundleMatchesPolicy", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isSecured", - "type": "bool" - } - ], - "name": "LogRiskpoolCollateralLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "LogRiskpoolCollateralReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "riskpoolAddress", - "type": "address" - } - ], - "name": "LogRiskpoolCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolPayoutProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolPremiumProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DEFAULT_FILTER_DATA_STRUCTURE", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "FULL_COLLATERALIZATION_LEVEL", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "INVESTOR_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SUM_OF_SUM_INSURED_CAP", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "activeBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "bundle", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum IPolicy.ApplicationState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Application", - "name": "application", - "type": "tuple" - } - ], - "name": "bundleMatchesApplication", - "outputs": [ - { - "internalType": "bool", - "name": "isMatching", - "type": "bool" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "bundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "burnBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "closeBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "collateralizePolicy", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "initialAmount", - "type": "uint256" - } - ], - "name": "createBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "defundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "fundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getActiveBundleId", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getBundle", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCapacity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCapital", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getErc20Token", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFilterDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getFullCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaximumNumberOfActiveBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getSumOfSumInsuredCap", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalValueLocked", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getWallet", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "investor", - "type": "address" - } - ], - "name": "grantInvestorRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "lockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPolicyPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPolicyPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "releasePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "name": "setMaximumNumberOfActiveBundles", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "unlockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526011805463ffffffff191690553480156200001e57600080fd5b5060405162003911380380620039118339810160408190526200004191620006b2565b848469d3c21bcecceda10000008585858585858585858560028262000066336200049a565b6001600160a01b038116620000ce5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000f8620004ea565b600480546001600160a01b0319166001600160a01b03929092169190911790556200012262000505565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014c62000532565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019f57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001f392909160ff82169130916101009091046001600160a01b03169062000719565b60405180910390a1505050600d85905583620002645760405162461bcd60e51b815260206004820152602960248201527f4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b6064820152608401620000c5565b600e8490556001600160a01b038316620002c15760405162461bcd60e51b815260206004820181905260248201527f4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f6044820152606401620000c5565b600c80546001600160a01b0319166001600160a01b038581169190911790915582166200033b5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401620000c5565b600b80546001600160a01b0319166001600160a01b038416179055620003736e496e7374616e63655365727669636560881b6200054c565b600780546001600160a01b0319166001600160a01b0392909216919091179055620003b06e5269736b706f6f6c5365727669636560881b6200054c565b600880546001600160a01b0319166001600160a01b0392831617905560075460408051633acd5e0f60e21b81529051919092169163eb35783c916004808301926020929190829003018186803b1580156200040a57600080fd5b505afa1580156200041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044591906200068c565b600980546001600160a01b0319166001600160a01b0392909216919091179055506200048b9a506000995062000485985062000496975050505050505050565b620005d8565b50505050506200077d565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620005006541636365737360d01b6200054c565b905090565b6000620005007f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200054c565b6000620005006e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200059757600080fd5b505afa158015620005ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d291906200068c565b92915050565b620005e48282620005e8565b5050565b60008281526012602090815260408083206001600160a01b038516845290915290205460ff16620005e45760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620006483390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000602082840312156200069e578081fd5b8151620006ab8162000764565b9392505050565b600080600080600060a08688031215620006ca578081fd5b85519450602086015193506040860151620006e58162000764565b6060870151909350620006f88162000764565b60808701519092506200070b8162000764565b809150509295509295909350565b84815260808101600385106200073f57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6001600160a01b03811681146200077a57600080fd5b50565b613184806200078d6000396000f3fe608060405234801561001057600080fd5b50600436106103af5760003560e01c80637893c7bc116101f4578063a217fddf1161011a578063d0e0ba95116100ad578063e0815f0d1161007c578063e0815f0d14610735578063f1d354d01461073d578063f2fde38b1461074b578063feb1824b1461075e576103af565b8063d0e0ba9514610707578063d547741f1461071a578063d73cd99214610462578063e00323831461072d576103af565b8063be169e7e116100e9578063be169e7e146106d3578063be61e91e146106db578063c3004c86146106ec578063c40000d4146106ff576103af565b8063a217fddf146106c3578063b26025aa146106cb578063b3fca9bd14610462578063bd1fe5d014610462576103af565b80638c483e5a116101925780639a82f890116101615780639a82f890146106a0578063a17030d5146106a8578063a18aa128146106bb578063a18f5ae214610462576103af565b80638c483e5a146106565780638da5cb5b146106695780639088c1191461067a57806391d148541461068d576103af565b806386c71288116101ce57806386c712881461061257806389002da514610628578063890fbf781461063b578063893d20e81461064e576103af565b80637893c7bc146105e15780637f3b6980146105f757806382558906146105ff576103af565b80633629c3c4116102d957806359dacc6a11610277578063652028e511610246578063652028e51461058c578063715018a61461059f57806376082a5e146105a75780637888a2ff146105ce576103af565b806359dacc6a146104625780635ab1bd53146105655780635d1ca6311461057c578063638ce0ba14610584576103af565b80634101b90c116102b35780634101b90c1461053357806345fe1c6d1461053b57806354afef631461054a578063587e59d014610552576103af565b80633629c3c4146104f057806336568abe146105035780633dcdde1714610516576103af565b80631865c57d116103515780632d0821b7116103205780632d0821b7146104975780632f2ff15d146104b7578063316c5348146104ca57806336153f3a146104dd576103af565b80631865c57d1461044d5780631b867c6314610462578063248a9ca31461046c578063258d560c1461048f576103af565b8063132996041161038d578063132996041461040557806315dae03e1461042a57806317d7de7c1461043d57806318442e6314610445576103af565b806301ffc9a7146103b45780630676cb0e146103dc57806312065fe0146103fd575b600080fd5b6103c76103c2366004612a20565b61076f565b60405190151581526020015b60405180910390f35b6103ef6103ea3660046129b8565b6107a8565b6040519081526020016103d3565b6103ef610922565b600b546001600160a01b03165b6040516001600160a01b0390911681526020016103d3565b60035460ff166040516103d39190612e3e565b6001546103ef565b600a546103ef565b6104556109b2565b6040516103d39190612e24565b61046a610a38565b005b6103ef61047a3660046129b8565b60009081526012602052604090206001015490565b6103c7610a7f565b6104aa6104a53660046129b8565b610aaf565b6040516103d39190612f0a565b61046a6104c53660046129d0565b610bc4565b61046a6104d83660046129b8565b610bee565b6103ef6104eb3660046129ff565b610d8f565b61046a6104fe3660046129ff565b610f5b565b61046a6105113660046129d0565b610fe3565b6040805160208101909152600081525b6040516103d39190612e52565b6103ef611061565b6103ef670de0b6b3a764000081565b600d546103ef565b61046a6105603660046129b8565b61109f565b61041260035461010090046001600160a01b031690565b6002546103ef565b61046a61120c565b61046a61059a3660046129b8565b611259565b61046a6112d6565b6103ef7f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93581565b6103ef6105dc366004612a48565b6112e8565b6105266040518060200160405280600081525081565b6103ef611326565b61046a61060d3660046129ff565b611364565b6103c7610620366004612c29565b506001919050565b6103ef6106363660046129ff565b6113e4565b6103c76106493660046129ff565b611558565b6104126115ef565b61046a6106643660046129b8565b611601565b6000546001600160a01b0316610412565b61046a610688366004612980565b61176e565b6103c761069b3660046129d0565b6117a3565b6103c76117ce565b61046a6106b63660046129b8565b6117d6565b600e546103ef565b6103ef600081565b6103ef611943565b61046a611981565b6103ef69d3c21bcecceda100000081565b61046a6106fa3660046129b8565b6119ce565b6103ef611a52565b61046a6107153660046129b8565b611a90565b61046a6107283660046129d0565b611ada565b6103ef611aff565b6103c7611b3c565b670de0b6b3a76400006103ef565b61046a610759366004612980565b611b45565b600c546001600160a01b0316610412565b60006001600160e01b03198216637965db0b60e01b14806107a057506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b6000806107b460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190612d23565b83106108985760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190612d23565b9392505050565b60008061092e60025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190612d23565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156109fb57600080fd5b505afa158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190612a8b565b905090565b610a4d6810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614610a7d5760405162461bcd60e51b815260040161088f90612e65565b565b600060025b60035460ff166002811115610aa957634e487b7160e01b600052602160045260246000fd5b14905090565b610ab76127de565b600a548210610b145760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b606482015260840161088f565b6000600a8381548110610b3757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b158015610b8857600080fd5b505afa158015610b9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091b9190810190612b55565b600082815260126020526040902060010154610bdf81611c3d565b610be98383611c47565b505050565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3757600080fd5b505afa158015610c4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c739190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610cb09160040190815260200190565b60206040518083038186803b158015610cc857600080fd5b505afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d00919061299c565b9050336001600160a01b03821614610d2a5760405162461bcd60e51b815260040161088f90612e9c565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e149190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610e519160040190815260200190565b60206040518083038186803b158015610e6957600080fd5b505afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061299c565b9050336001600160a01b03821614610ecb5760405162461bcd60e51b815260040161088f90612e9c565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610f1957600080fd5b505af1158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f519190612d23565b9695505050505050565b610f6b63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614610f9b5760405162461bcd60e51b815260040161088f90612ed3565b610fa58282611ccd565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b6001600160a01b03811633146110535760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161088f565b61105d8282611d4f565b5050565b60008061106d60025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240161095c565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156110e857600080fd5b505afa1580156110fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111249190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916111619160040190815260200190565b60206040518083038186803b15801561117957600080fd5b505afa15801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b1919061299c565b9050336001600160a01b038216146111db5760405162461bcd60e51b815260040161088f90612e9c565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610d57565b6112216810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146112515760405162461bcd60e51b815260040161088f90612e65565b610a7d611db6565b611261611e37565b600061126c60025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050505050565b6112de611e37565b610a7d6000611e91565b60007f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93561131481611c3d565b61131e8484611ee1565b949350505050565b60008061133260025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db328449060240161095c565b61137463141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b0316146113a45760405162461bcd60e51b815260040161088f90612ed3565b6113ae8282611fe4565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610fd7565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b15801561142d57600080fd5b505afa158015611441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114699190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916114a69160040190815260200190565b60206040518083038186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f6919061299c565b9050336001600160a01b038216146115205760405162461bcd60e51b815260040161088f90612e9c565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610eff565b600061156a63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b03161461159a5760405162461bcd60e51b815260040161088f90612ed3565b6115a48383612033565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610a33565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561164a57600080fd5b505afa15801561165e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116869190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116c39160040190815260200190565b60206040518083038186803b1580156116db57600080fd5b505afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061299c565b9050336001600160a01b0382161461173d5760405162461bcd60e51b815260040161088f90612e9c565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610d57565b611776611e37565b6117a07f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93582612436565b50565b60009182526012602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080610a84565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261185b9190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916118989160040190815260200190565b60206040518083038186803b1580156118b057600080fd5b505afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e8919061299c565b9050336001600160a01b038216146119125760405162461bcd60e51b815260040161088f90612e9c565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610d57565b60008061194f60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d92359060240161095c565b6119966810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146119c65760405162461bcd60e51b815260040161088f90612e65565b610a7d612440565b6119de63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614611a0e5760405162461bcd60e51b815260040161088f90612ed3565b6000611a1982612528565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610fd7565b600080611a5e60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f9060240161095c565b611aa56810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614611ad55760405162461bcd60e51b815260040161088f90612e65565b600255565b600082815260126020526040902060010154611af581611c3d565b610be98383611d4f565b600080611b0b60025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b03169063295609809060240161095c565b60006001610a84565b611b4d611e37565b6001600160a01b038116611bb25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088f565b6117a081611e91565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c0557600080fd5b505afa158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a0919061299c565b6117a08133612598565b611c5182826117a3565b61105d5760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611c893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611d3257600080fd5b505af1158015611d46573d6000803e3d6000fd5b50505050505050565b611d5982826117a3565b1561105d5760008281526012602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e7490611f1a90849088908890600401612df0565b602060405180830381600087803b158015611f3457600080fd5b505af1158015611f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6c9190612d23565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611d18565b60008061203e611061565b9050600061204a611aff565b90506000612056611943565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a1600083116120eb5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c455300604482015260640161088f565b80821161213a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c000000604482015260640161088f565b6121448582612ffa565b821061242d57600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561218f57600080fd5b505afa1580156121a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121cb9190810190612aaa565b6011549091506000906121e590869063ffffffff166130ca565b905060005b85811080156121f7575086155b15612429576000612207836107a8565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561225157600080fd5b505afa158015612265573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261228d9190810190612b55565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a180156124135760008260c001518360a001516122ec9190613031565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b81106123f857600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b15801561239257600080fd5b505af11580156123a6573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff169250906123d4836130a6565b91906101000a81548163ffffffff021916908363ffffffff16021790555050612411565b89612404876001612ffa565b61240e91906130ca565b95505b505b50505080806124219061308b565b9150506121ea565b5050505b50505092915050565b61105d8282611c47565b600061244b60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561249057600080fd5b505afa1580156124a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c89190612d23565b156117a05760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b606482015260840161088f565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561258457600080fd5b505af11580156108f7573d6000803e3d6000fd5b6125a282826117a3565b61105d576125ba816001600160a01b031660146125fc565b6125c58360206125fc565b6040516020016125d6929190612d7b565b60408051601f198184030181529082905262461bcd60e51b825261088f91600401612e52565b6060600061260b836002613012565b612616906002612ffa565b67ffffffffffffffff81111561263c57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612666576020820181803683370190505b509050600360fc1b8160008151811061268f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126cc57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006126f0846002613012565b6126fb906001612ffa565b90505b600181111561278f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061273d57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061276157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361278881613074565b90506126fe565b50831561091b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161088f565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561282057634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612860578081fd5b813561287361286e82612fd2565b612fa1565b818152846020838601011115612887578283fd5b816020850160208301379081016020019190915292915050565b600082601f8301126128b1578081fd5b81516128bf61286e82612fd2565b8181528460208386010111156128d3578283fd5b61131e826020830160208701613048565b80356107a381613141565b80516107a381613141565b600060c0828403121561290b578081fd5b61291560c0612fa1565b9050813561292281613141565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561295457600080fd5b61296084828501612850565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612991578081fd5b813561091b8161312c565b6000602082840312156129ad578081fd5b815161091b8161312c565b6000602082840312156129c9578081fd5b5035919050565b600080604083850312156129e2578081fd5b8235915060208301356129f48161312c565b809150509250929050565b60008060408385031215612a11578182fd5b50508035926020909101359150565b600060208284031215612a31578081fd5b81356001600160e01b03198116811461091b578182fd5b60008060408385031215612a5a578182fd5b823567ffffffffffffffff811115612a70578283fd5b612a7c85828601612850565b95602094909401359450505050565b600060208284031215612a9c578081fd5b81516007811061091b578182fd5b600060208284031215612abb578081fd5b815167ffffffffffffffff80821115612ad2578283fd5b9083019060c08286031215612ae5578283fd5b612aef60c0612fa1565b8251612afa81613141565b808252506020830151602082015260408301516040820152606083015182811115612b23578485fd5b612b2f878286016128a1565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612b66578081fd5b815167ffffffffffffffff80821115612b7d578283fd5b8184019150610140808387031215612b93578384fd5b612b9c81612fa1565b9050825181526020830151602082015260408301516040820152612bc2606084016128ef565b6060820152608083015182811115612bd8578485fd5b612be4878286016128a1565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60008060408385031215612c3b578182fd5b823567ffffffffffffffff80821115612c52578384fd5b8185019150610140808388031215612c68578485fd5b612c7181612fa1565b9050823581526020830135602082015260408301356040820152612c97606084016128e4565b6060820152608083013582811115612cad578586fd5b612cb988828601612850565b60808301525060a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250809450506020850135915080821115612d0c578283fd5b50612d19858286016128fa565b9150509250929050565b600060208284031215612d34578081fd5b5051919050565b60008151808452612d53816020860160208601613048565b601f01601f19169290920160200192915050565b60048110612d7757612d77613100565b9052565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612db3816017850160208801613048565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612de4816028840160208801613048565b01602801949350505050565b6001600160a01b0384168152606060208201819052600090612e1490830185612d3b565b9050826040830152949350505050565b6020810160078310612e3857612e38613100565b91905290565b6020810160038310612e3857612e38613100565b60006020825261091b6020830184612d3b565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612f3d6080840182612d67565b5060808301516101408060a0850152612f5a610160850183612d3b565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612fca57612fca613116565b604052919050565b600067ffffffffffffffff821115612fec57612fec613116565b50601f01601f191660200190565b6000821982111561300d5761300d6130ea565b500190565b600081600019048311821515161561302c5761302c6130ea565b500290565b600082821015613043576130436130ea565b500390565b60005b8381101561306357818101518382015260200161304b565b83811115611e315750506000910152565b600081613083576130836130ea565b506000190190565b600060001982141561309f5761309f6130ea565b5060010190565b600063ffffffff808316818114156130c0576130c06130ea565b6001019392505050565b6000826130e557634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146117a057600080fd5b600481106117a057600080fdfea26469706673582212209e8ff8b71639b58bff88d3c17bb55e56c77f9b7258fc689f49deade934a4a8be64736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103af5760003560e01c80637893c7bc116101f4578063a217fddf1161011a578063d0e0ba95116100ad578063e0815f0d1161007c578063e0815f0d14610735578063f1d354d01461073d578063f2fde38b1461074b578063feb1824b1461075e576103af565b8063d0e0ba9514610707578063d547741f1461071a578063d73cd99214610462578063e00323831461072d576103af565b8063be169e7e116100e9578063be169e7e146106d3578063be61e91e146106db578063c3004c86146106ec578063c40000d4146106ff576103af565b8063a217fddf146106c3578063b26025aa146106cb578063b3fca9bd14610462578063bd1fe5d014610462576103af565b80638c483e5a116101925780639a82f890116101615780639a82f890146106a0578063a17030d5146106a8578063a18aa128146106bb578063a18f5ae214610462576103af565b80638c483e5a146106565780638da5cb5b146106695780639088c1191461067a57806391d148541461068d576103af565b806386c71288116101ce57806386c712881461061257806389002da514610628578063890fbf781461063b578063893d20e81461064e576103af565b80637893c7bc146105e15780637f3b6980146105f757806382558906146105ff576103af565b80633629c3c4116102d957806359dacc6a11610277578063652028e511610246578063652028e51461058c578063715018a61461059f57806376082a5e146105a75780637888a2ff146105ce576103af565b806359dacc6a146104625780635ab1bd53146105655780635d1ca6311461057c578063638ce0ba14610584576103af565b80634101b90c116102b35780634101b90c1461053357806345fe1c6d1461053b57806354afef631461054a578063587e59d014610552576103af565b80633629c3c4146104f057806336568abe146105035780633dcdde1714610516576103af565b80631865c57d116103515780632d0821b7116103205780632d0821b7146104975780632f2ff15d146104b7578063316c5348146104ca57806336153f3a146104dd576103af565b80631865c57d1461044d5780631b867c6314610462578063248a9ca31461046c578063258d560c1461048f576103af565b8063132996041161038d578063132996041461040557806315dae03e1461042a57806317d7de7c1461043d57806318442e6314610445576103af565b806301ffc9a7146103b45780630676cb0e146103dc57806312065fe0146103fd575b600080fd5b6103c76103c2366004612a20565b61076f565b60405190151581526020015b60405180910390f35b6103ef6103ea3660046129b8565b6107a8565b6040519081526020016103d3565b6103ef610922565b600b546001600160a01b03165b6040516001600160a01b0390911681526020016103d3565b60035460ff166040516103d39190612e3e565b6001546103ef565b600a546103ef565b6104556109b2565b6040516103d39190612e24565b61046a610a38565b005b6103ef61047a3660046129b8565b60009081526012602052604090206001015490565b6103c7610a7f565b6104aa6104a53660046129b8565b610aaf565b6040516103d39190612f0a565b61046a6104c53660046129d0565b610bc4565b61046a6104d83660046129b8565b610bee565b6103ef6104eb3660046129ff565b610d8f565b61046a6104fe3660046129ff565b610f5b565b61046a6105113660046129d0565b610fe3565b6040805160208101909152600081525b6040516103d39190612e52565b6103ef611061565b6103ef670de0b6b3a764000081565b600d546103ef565b61046a6105603660046129b8565b61109f565b61041260035461010090046001600160a01b031690565b6002546103ef565b61046a61120c565b61046a61059a3660046129b8565b611259565b61046a6112d6565b6103ef7f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93581565b6103ef6105dc366004612a48565b6112e8565b6105266040518060200160405280600081525081565b6103ef611326565b61046a61060d3660046129ff565b611364565b6103c7610620366004612c29565b506001919050565b6103ef6106363660046129ff565b6113e4565b6103c76106493660046129ff565b611558565b6104126115ef565b61046a6106643660046129b8565b611601565b6000546001600160a01b0316610412565b61046a610688366004612980565b61176e565b6103c761069b3660046129d0565b6117a3565b6103c76117ce565b61046a6106b63660046129b8565b6117d6565b600e546103ef565b6103ef600081565b6103ef611943565b61046a611981565b6103ef69d3c21bcecceda100000081565b61046a6106fa3660046129b8565b6119ce565b6103ef611a52565b61046a6107153660046129b8565b611a90565b61046a6107283660046129d0565b611ada565b6103ef611aff565b6103c7611b3c565b670de0b6b3a76400006103ef565b61046a610759366004612980565b611b45565b600c546001600160a01b0316610412565b60006001600160e01b03198216637965db0b60e01b14806107a057506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b6000806107b460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b1580156107f957600080fd5b505afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108319190612d23565b83106108985760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b9190612d23565b9392505050565b60008061092e60025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b15801561097457600080fd5b505afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190612d23565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156109fb57600080fd5b505afa158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a339190612a8b565b905090565b610a4d6810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614610a7d5760405162461bcd60e51b815260040161088f90612e65565b565b600060025b60035460ff166002811115610aa957634e487b7160e01b600052602160045260246000fd5b14905090565b610ab76127de565b600a548210610b145760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b606482015260840161088f565b6000600a8381548110610b3757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b158015610b8857600080fd5b505afa158015610b9c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261091b9190810190612b55565b600082815260126020526040902060010154610bdf81611c3d565b610be98383611c47565b505050565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3757600080fd5b505afa158015610c4b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c739190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610cb09160040190815260200190565b60206040518083038186803b158015610cc857600080fd5b505afa158015610cdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d00919061299c565b9050336001600160a01b03821614610d2a5760405162461bcd60e51b815260040161088f90612e9c565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e149190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610e519160040190815260200190565b60206040518083038186803b158015610e6957600080fd5b505afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea1919061299c565b9050336001600160a01b03821614610ecb5760405162461bcd60e51b815260040161088f90612e9c565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610f1957600080fd5b505af1158015610f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f519190612d23565b9695505050505050565b610f6b63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614610f9b5760405162461bcd60e51b815260040161088f90612ed3565b610fa58282611ccd565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b6001600160a01b03811633146110535760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161088f565b61105d8282611d4f565b5050565b60008061106d60025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240161095c565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156110e857600080fd5b505afa1580156110fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111249190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916111619160040190815260200190565b60206040518083038186803b15801561117957600080fd5b505afa15801561118d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b1919061299c565b9050336001600160a01b038216146111db5760405162461bcd60e51b815260040161088f90612e9c565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610d57565b6112216810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146112515760405162461bcd60e51b815260040161088f90612e65565b610a7d611db6565b611261611e37565b600061126c60025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050505050565b6112de611e37565b610a7d6000611e91565b60007f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93561131481611c3d565b61131e8484611ee1565b949350505050565b60008061133260025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db328449060240161095c565b61137463141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b0316146113a45760405162461bcd60e51b815260040161088f90612ed3565b6113ae8282611fe4565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610fd7565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b15801561142d57600080fd5b505afa158015611441573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114699190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916114a69160040190815260200190565b60206040518083038186803b1580156114be57600080fd5b505afa1580156114d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f6919061299c565b9050336001600160a01b038216146115205760405162461bcd60e51b815260040161088f90612e9c565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610eff565b600061156a63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b03161461159a5760405162461bcd60e51b815260040161088f90612ed3565b6115a48383612033565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610a33565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561164a57600080fd5b505afa15801561165e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116869190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116c39160040190815260200190565b60206040518083038186803b1580156116db57600080fd5b505afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061299c565b9050336001600160a01b0382161461173d5760405162461bcd60e51b815260040161088f90612e9c565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610d57565b611776611e37565b6117a07f5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d93582612436565b50565b60009182526012602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080610a84565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261185b9190810190612b55565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916118989160040190815260200190565b60206040518083038186803b1580156118b057600080fd5b505afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e8919061299c565b9050336001600160a01b038216146119125760405162461bcd60e51b815260040161088f90612e9c565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610d57565b60008061194f60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d92359060240161095c565b6119966810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b0316146119c65760405162461bcd60e51b815260040161088f90612e65565b610a7d612440565b6119de63141bdbdb60e21b611bbb565b6001600160a01b0316336001600160a01b031614611a0e5760405162461bcd60e51b815260040161088f90612ed3565b6000611a1982612528565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610fd7565b600080611a5e60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f9060240161095c565b611aa56810dbdb5c1bdb995b9d60ba1b611bbb565b6001600160a01b0316336001600160a01b031614611ad55760405162461bcd60e51b815260040161088f90612e65565b600255565b600082815260126020526040902060010154611af581611c3d565b610be98383611d4f565b600080611b0b60025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b03169063295609809060240161095c565b60006001610a84565b611b4d611e37565b6001600160a01b038116611bb25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161088f565b6117a081611e91565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c0557600080fd5b505afa158015611c19573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a0919061299c565b6117a08133612598565b611c5182826117a3565b61105d5760008281526012602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611c893390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611d3257600080fd5b505af1158015611d46573d6000803e3d6000fd5b50505050505050565b611d5982826117a3565b1561105d5760008281526012602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611e1d57600080fd5b505af1158015611e31573d6000803e3d6000fd5b50505050565b6000546001600160a01b03163314610a7d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161088f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e7490611f1a90849088908890600401612df0565b602060405180830381600087803b158015611f3457600080fd5b505af1158015611f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6c9190612d23565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611d18565b60008061203e611061565b9050600061204a611aff565b90506000612056611943565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a1600083116120eb5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c455300604482015260640161088f565b80821161213a5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c000000604482015260640161088f565b6121448582612ffa565b821061242d57600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561218f57600080fd5b505afa1580156121a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121cb9190810190612aaa565b6011549091506000906121e590869063ffffffff166130ca565b905060005b85811080156121f7575086155b15612429576000612207836107a8565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561225157600080fd5b505afa158015612265573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261228d9190810190612b55565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a180156124135760008260c001518360a001516122ec9190613031565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b81106123f857600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b15801561239257600080fd5b505af11580156123a6573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff169250906123d4836130a6565b91906101000a81548163ffffffff021916908363ffffffff16021790555050612411565b89612404876001612ffa565b61240e91906130ca565b95505b505b50505080806124219061308b565b9150506121ea565b5050505b50505092915050565b61105d8282611c47565b600061244b60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561249057600080fd5b505afa1580156124a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c89190612d23565b156117a05760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b606482015260840161088f565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561258457600080fd5b505af11580156108f7573d6000803e3d6000fd5b6125a282826117a3565b61105d576125ba816001600160a01b031660146125fc565b6125c58360206125fc565b6040516020016125d6929190612d7b565b60408051601f198184030181529082905262461bcd60e51b825261088f91600401612e52565b6060600061260b836002613012565b612616906002612ffa565b67ffffffffffffffff81111561263c57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612666576020820181803683370190505b509050600360fc1b8160008151811061268f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106126cc57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006126f0846002613012565b6126fb906001612ffa565b90505b600181111561278f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061273d57634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061276157634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361278881613074565b90506126fe565b50831561091b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161088f565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561282057634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612860578081fd5b813561287361286e82612fd2565b612fa1565b818152846020838601011115612887578283fd5b816020850160208301379081016020019190915292915050565b600082601f8301126128b1578081fd5b81516128bf61286e82612fd2565b8181528460208386010111156128d3578283fd5b61131e826020830160208701613048565b80356107a381613141565b80516107a381613141565b600060c0828403121561290b578081fd5b61291560c0612fa1565b9050813561292281613141565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561295457600080fd5b61296084828501612850565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612991578081fd5b813561091b8161312c565b6000602082840312156129ad578081fd5b815161091b8161312c565b6000602082840312156129c9578081fd5b5035919050565b600080604083850312156129e2578081fd5b8235915060208301356129f48161312c565b809150509250929050565b60008060408385031215612a11578182fd5b50508035926020909101359150565b600060208284031215612a31578081fd5b81356001600160e01b03198116811461091b578182fd5b60008060408385031215612a5a578182fd5b823567ffffffffffffffff811115612a70578283fd5b612a7c85828601612850565b95602094909401359450505050565b600060208284031215612a9c578081fd5b81516007811061091b578182fd5b600060208284031215612abb578081fd5b815167ffffffffffffffff80821115612ad2578283fd5b9083019060c08286031215612ae5578283fd5b612aef60c0612fa1565b8251612afa81613141565b808252506020830151602082015260408301516040820152606083015182811115612b23578485fd5b612b2f878286016128a1565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612b66578081fd5b815167ffffffffffffffff80821115612b7d578283fd5b8184019150610140808387031215612b93578384fd5b612b9c81612fa1565b9050825181526020830151602082015260408301516040820152612bc2606084016128ef565b6060820152608083015182811115612bd8578485fd5b612be4878286016128a1565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60008060408385031215612c3b578182fd5b823567ffffffffffffffff80821115612c52578384fd5b8185019150610140808388031215612c68578485fd5b612c7181612fa1565b9050823581526020830135602082015260408301356040820152612c97606084016128e4565b6060820152608083013582811115612cad578586fd5b612cb988828601612850565b60808301525060a083013560a082015260c083013560c082015260e083013560e0820152610100808401358183015250610120808401358183015250809450506020850135915080821115612d0c578283fd5b50612d19858286016128fa565b9150509250929050565b600060208284031215612d34578081fd5b5051919050565b60008151808452612d53816020860160208601613048565b601f01601f19169290920160200192915050565b60048110612d7757612d77613100565b9052565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351612db3816017850160208801613048565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612de4816028840160208801613048565b01602801949350505050565b6001600160a01b0384168152606060208201819052600090612e1490830185612d3b565b9050826040830152949350505050565b6020810160078310612e3857612e38613100565b91905290565b6020810160038310612e3857612e38613100565b60006020825261091b6020830184612d3b565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612f3d6080840182612d67565b5060808301516101408060a0850152612f5a610160850183612d3b565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612fca57612fca613116565b604052919050565b600067ffffffffffffffff821115612fec57612fec613116565b50601f01601f191660200190565b6000821982111561300d5761300d6130ea565b500190565b600081600019048311821515161561302c5761302c6130ea565b500290565b600082821015613043576130436130ea565b500390565b60005b8381101561306357818101518382015260200161304b565b83811115611e315750506000910152565b600081613083576130836130ea565b506000190190565b600060001982141561309f5761309f6130ea565b5060010190565b600063ffffffff808316818114156130c0576130c06130ea565b6001019392505050565b6000826130e557634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146117a057600080fd5b600481106117a057600080fdfea26469706673582212209e8ff8b71639b58bff88d3c17bb55e56c77f9b7258fc689f49deade934a4a8be64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.dbg.json b/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.json b/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.json deleted file mode 100644 index f735f94c..00000000 --- a/artifacts/contracts/examples/mock/ChainlinkOperator.sol/ChainlinkOperator.json +++ /dev/null @@ -1,328 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ChainlinkOperator", - "sourceName": "contracts/examples/mock/ChainlinkOperator.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address[]", - "name": "senders", - "type": "address[]" - }, - { - "indexed": false, - "internalType": "address", - "name": "changedBy", - "type": "address" - } - ], - "name": "AuthorizedSendersChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "requestId", - "type": "bytes32" - } - ], - "name": "CancelOracleRequest", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "specId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "requester", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "requestId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "callbackAddr", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes4", - "name": "callbackFunctionId", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "cancelExpiration", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "dataVersion", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "OracleRequest", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "requestId", - "type": "bytes32" - } - ], - "name": "OracleResponse", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "requestId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "address", - "name": "callbackAddress", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "callbackFunctionId", - "type": "bytes4" - }, - { - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "fulfillOracleRequest2", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getAuthorizedSenders", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getExpiryTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "onTokenTransfer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "specId", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "callbackAddress", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "callbackFunctionId", - "type": "bytes4" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "dataVersion", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "oracleRequest", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "senders", - "type": "address[]" - } - ], - "name": "setAuthorizedSenders", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fc48061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146101055780638da5cb5b1461010d578063a4c0ed3614610128578063ee56997b1461013b578063f2fde38b1461014e57610093565b80632408afaa1461009857806325cb5bc0146100b657806340429946146100cd5780636ae0bc76146100e2575b600080fd5b6100a0610161565b6040516100ad9190610ee2565b60405180910390f35b6100bf61012c81565b6040519081526020016100ad565b6100e06100db366004610b58565b6101c3565b005b6100f56100f0366004610d2a565b61022d565b60405190151581526020016100ad565b6100e061034e565b6000546040516001600160a01b0390911681526020016100ad565b6100e0610136366004610bf5565b610362565b6100e0610149366004610cbb565b61041f565b6100e061015c366004610b37565b610618565b606060028054806020026020016040519081016040528092919081815260200182805480156101b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161019b575b5050505050905090565b6000806101d48b8b8a8a8a8a610691565b91509150887fd8d7ecc4800d25fa53ce0372f13a416d98907a7ef3d8d3bdd79cf4fe75529c658c848d8f8c878c8c8c60405161021899989796959493929190610e07565b60405180910390a25050505050505050505050565b600061023e888888888860026107c7565b60405188907f9e9bc7616d42c2835d05ae617e508454e63b30b934be8aa932ebc125e0e58a6490600090a262061a805a10156102c15760405162461bcd60e51b815260206004820181905260248201527f4d7573742070726f7669646520636f6e73756d657220656e6f7567682067617360448201526064015b60405180910390fd5b6000866001600160a01b03168685856040516020016102e293929190610daa565b60408051601f19818403018152908290526102fc91610dce565b6000604051808303816000865af19150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b50909a9950505050505050505050565b6103566108cd565b6103606000610927565b565b8260248201528160448201526000306001600160a01b0316826040516103889190610dce565b600060405180830381855af49150503d80600081146103c3576040519150601f19603f3d011682016040523d82523d6000602084013e6103c8565b606091505b50509050806104195760405162461bcd60e51b815260206004820152601860248201527f556e61626c6520746f206372656174652072657175657374000000000000000060448201526064016102b8565b50505050565b610427610977565b6104735760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742073657420617574686f72697a65642073656e6465727300000060448201526064016102b8565b806104cf5760405162461bcd60e51b815260206004820152602660248201527f4d7573742068617665206174206c65617374203120617574686f72697a65642060448201526539b2b73232b960d11b60648201526084016102b8565b60025460005b8181101561054a576000600160006002848154811061050457634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061054281610f47565b9150506104d5565b5060005b828110156105ca57600180600086868581811061057b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906105909190610b37565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806105c281610f47565b91505061054e565b506105d760028484610a49565b507ff263cfb3e4298332e776194610cf9fdc09ccb3ada8b9aa39764d882e11fbf0a083833360405161060b93929190610e81565b60405180910390a1505050565b6106206108cd565b6001600160a01b0381166106855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b8565b61068e81610927565b50565b6040516bffffffffffffffffffffffff19606088901b16602082015260348101839052600090819060540160408051808303601f1901815291815281516020928301206000818152600390935291205490925060081b60ff19161561072f5760405162461bcd60e51b8152602060048201526014602482015273135d5cdd081d5cd94818481d5b9a5c5d5948125160621b60448201526064016102b8565b61073b61012c42610f2f565b9050600061074b8888888561099b565b905060405180604001604052808260ff1916815260200161076b866109f5565b60ff9081169091526000858152600360209081526040909120835181549490920151909216600160f81b0260089190911c6001600160f81b0319909316929092176001600160f81b031691909117905550965096945050505050565b60006107d58686868661099b565b60008881526003602052604090205490915060081b60ff19908116908216146108405760405162461bcd60e51b815260206004820152601e60248201527f506172616d7320646f206e6f74206d617463682072657175657374204944000060448201526064016102b8565b610849826109f5565b60008881526003602052604090205460ff918216600160f81b90910490911611156108b65760405162461bcd60e51b815260206004820152601860248201527f446174612076657273696f6e73206d757374206d61746368000000000000000060448201526064016102b8565b505050600093845250506003602052506040812055565b6000546001600160a01b031633146103605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60003361098c6000546001600160a01b031690565b6001600160a01b031614905090565b6040805160208082019690965260609490941b6bffffffffffffffffffffffff1916848201526001600160e01b03199290921660548401526058808401919091528151808403909101815260789092019052805191012090565b60006101008210610a415760405162461bcd60e51b81526020600482015260166024820152751b9d5b58995c881d1bdbc8189a59c81d1bc818d85cdd60521b60448201526064016102b8565b50805b919050565b828054828255906000526020600020908101928215610a9c579160200282015b82811115610a9c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190610a69565b50610aa8929150610aac565b5090565b5b80821115610aa85760008155600101610aad565b80356001600160a01b0381168114610a4457600080fd5b80356001600160e01b031981168114610a4457600080fd5b60008083601f840112610b01578182fd5b50813567ffffffffffffffff811115610b18578182fd5b602083019150836020828501011115610b3057600080fd5b9250929050565b600060208284031215610b48578081fd5b610b5182610ac1565b9392505050565b60008060008060008060008060006101008a8c031215610b76578485fd5b610b7f8a610ac1565b985060208a0135975060408a01359650610b9b60608b01610ac1565b9550610ba960808b01610ad8565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff811115610bd2578283fd5b610bde8c828d01610af0565b915080935050809150509295985092959850929598565b600080600060608486031215610c09578283fd5b610c1284610ac1565b925060208401359150604084013567ffffffffffffffff80821115610c35578283fd5b818601915086601f830112610c48578283fd5b813581811115610c5a57610c5a610f78565b604051601f8201601f19908116603f01168101908382118183101715610c8257610c82610f78565b81604052828152896020848701011115610c9a578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60008060208385031215610ccd578182fd5b823567ffffffffffffffff80821115610ce4578384fd5b818501915085601f830112610cf7578384fd5b813581811115610d05578485fd5b8660208083028501011115610d18578485fd5b60209290920196919550909350505050565b600080600080600080600060c0888a031215610d44578283fd5b8735965060208801359550610d5b60408901610ac1565b9450610d6960608901610ad8565b93506080880135925060a088013567ffffffffffffffff811115610d8b578283fd5b610d978a828b01610af0565b989b979a50959850939692959293505050565b6001600160e01b031984168152600082846004840137910160040190815292915050565b60008251815b81811015610dee5760208186018101518583015201610dd4565b81811115610dfc5782828501525b509190910192915050565b6001600160a01b038a81168252602082018a905260408201899052871660608201526001600160e01b03198616608082015260a0810185905260c0810184905261010060e0820181905281018290526000610120838582850137828401810191909152601f909201601f1916010198975050505050505050565b6040808252810183905260008460608301825b86811015610ec2576001600160a01b03610ead84610ac1565b16825260209283019290910190600101610e94565b506001600160a01b03949094166020939093019290925250909392505050565b6020808252825182820181905260009190848201906040850190845b81811015610f235783516001600160a01b031683529284019291840191600101610efe565b50909695505050505050565b60008219821115610f4257610f42610f62565b500190565b6000600019821415610f5b57610f5b610f62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220262e5ad4ad92d2986c722791cedda45946b31c84f2cd71f00eb573c7c470f5a364736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063715018a611610066578063715018a6146101055780638da5cb5b1461010d578063a4c0ed3614610128578063ee56997b1461013b578063f2fde38b1461014e57610093565b80632408afaa1461009857806325cb5bc0146100b657806340429946146100cd5780636ae0bc76146100e2575b600080fd5b6100a0610161565b6040516100ad9190610ee2565b60405180910390f35b6100bf61012c81565b6040519081526020016100ad565b6100e06100db366004610b58565b6101c3565b005b6100f56100f0366004610d2a565b61022d565b60405190151581526020016100ad565b6100e061034e565b6000546040516001600160a01b0390911681526020016100ad565b6100e0610136366004610bf5565b610362565b6100e0610149366004610cbb565b61041f565b6100e061015c366004610b37565b610618565b606060028054806020026020016040519081016040528092919081815260200182805480156101b957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161019b575b5050505050905090565b6000806101d48b8b8a8a8a8a610691565b91509150887fd8d7ecc4800d25fa53ce0372f13a416d98907a7ef3d8d3bdd79cf4fe75529c658c848d8f8c878c8c8c60405161021899989796959493929190610e07565b60405180910390a25050505050505050505050565b600061023e888888888860026107c7565b60405188907f9e9bc7616d42c2835d05ae617e508454e63b30b934be8aa932ebc125e0e58a6490600090a262061a805a10156102c15760405162461bcd60e51b815260206004820181905260248201527f4d7573742070726f7669646520636f6e73756d657220656e6f7567682067617360448201526064015b60405180910390fd5b6000866001600160a01b03168685856040516020016102e293929190610daa565b60408051601f19818403018152908290526102fc91610dce565b6000604051808303816000865af19150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b50909a9950505050505050505050565b6103566108cd565b6103606000610927565b565b8260248201528160448201526000306001600160a01b0316826040516103889190610dce565b600060405180830381855af49150503d80600081146103c3576040519150601f19603f3d011682016040523d82523d6000602084013e6103c8565b606091505b50509050806104195760405162461bcd60e51b815260206004820152601860248201527f556e61626c6520746f206372656174652072657175657374000000000000000060448201526064016102b8565b50505050565b610427610977565b6104735760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742073657420617574686f72697a65642073656e6465727300000060448201526064016102b8565b806104cf5760405162461bcd60e51b815260206004820152602660248201527f4d7573742068617665206174206c65617374203120617574686f72697a65642060448201526539b2b73232b960d11b60648201526084016102b8565b60025460005b8181101561054a576000600160006002848154811061050457634e487b7160e01b600052603260045260246000fd5b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff19169115159190911790558061054281610f47565b9150506104d5565b5060005b828110156105ca57600180600086868581811061057b57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906105909190610b37565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806105c281610f47565b91505061054e565b506105d760028484610a49565b507ff263cfb3e4298332e776194610cf9fdc09ccb3ada8b9aa39764d882e11fbf0a083833360405161060b93929190610e81565b60405180910390a1505050565b6106206108cd565b6001600160a01b0381166106855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b8565b61068e81610927565b50565b6040516bffffffffffffffffffffffff19606088901b16602082015260348101839052600090819060540160408051808303601f1901815291815281516020928301206000818152600390935291205490925060081b60ff19161561072f5760405162461bcd60e51b8152602060048201526014602482015273135d5cdd081d5cd94818481d5b9a5c5d5948125160621b60448201526064016102b8565b61073b61012c42610f2f565b9050600061074b8888888561099b565b905060405180604001604052808260ff1916815260200161076b866109f5565b60ff9081169091526000858152600360209081526040909120835181549490920151909216600160f81b0260089190911c6001600160f81b0319909316929092176001600160f81b031691909117905550965096945050505050565b60006107d58686868661099b565b60008881526003602052604090205490915060081b60ff19908116908216146108405760405162461bcd60e51b815260206004820152601e60248201527f506172616d7320646f206e6f74206d617463682072657175657374204944000060448201526064016102b8565b610849826109f5565b60008881526003602052604090205460ff918216600160f81b90910490911611156108b65760405162461bcd60e51b815260206004820152601860248201527f446174612076657273696f6e73206d757374206d61746368000000000000000060448201526064016102b8565b505050600093845250506003602052506040812055565b6000546001600160a01b031633146103605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b8565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60003361098c6000546001600160a01b031690565b6001600160a01b031614905090565b6040805160208082019690965260609490941b6bffffffffffffffffffffffff1916848201526001600160e01b03199290921660548401526058808401919091528151808403909101815260789092019052805191012090565b60006101008210610a415760405162461bcd60e51b81526020600482015260166024820152751b9d5b58995c881d1bdbc8189a59c81d1bc818d85cdd60521b60448201526064016102b8565b50805b919050565b828054828255906000526020600020908101928215610a9c579160200282015b82811115610a9c5781546001600160a01b0319166001600160a01b03843516178255602090920191600190910190610a69565b50610aa8929150610aac565b5090565b5b80821115610aa85760008155600101610aad565b80356001600160a01b0381168114610a4457600080fd5b80356001600160e01b031981168114610a4457600080fd5b60008083601f840112610b01578182fd5b50813567ffffffffffffffff811115610b18578182fd5b602083019150836020828501011115610b3057600080fd5b9250929050565b600060208284031215610b48578081fd5b610b5182610ac1565b9392505050565b60008060008060008060008060006101008a8c031215610b76578485fd5b610b7f8a610ac1565b985060208a0135975060408a01359650610b9b60608b01610ac1565b9550610ba960808b01610ad8565b945060a08a0135935060c08a0135925060e08a013567ffffffffffffffff811115610bd2578283fd5b610bde8c828d01610af0565b915080935050809150509295985092959850929598565b600080600060608486031215610c09578283fd5b610c1284610ac1565b925060208401359150604084013567ffffffffffffffff80821115610c35578283fd5b818601915086601f830112610c48578283fd5b813581811115610c5a57610c5a610f78565b604051601f8201601f19908116603f01168101908382118183101715610c8257610c82610f78565b81604052828152896020848701011115610c9a578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60008060208385031215610ccd578182fd5b823567ffffffffffffffff80821115610ce4578384fd5b818501915085601f830112610cf7578384fd5b813581811115610d05578485fd5b8660208083028501011115610d18578485fd5b60209290920196919550909350505050565b600080600080600080600060c0888a031215610d44578283fd5b8735965060208801359550610d5b60408901610ac1565b9450610d6960608901610ad8565b93506080880135925060a088013567ffffffffffffffff811115610d8b578283fd5b610d978a828b01610af0565b989b979a50959850939692959293505050565b6001600160e01b031984168152600082846004840137910160040190815292915050565b60008251815b81811015610dee5760208186018101518583015201610dd4565b81811115610dfc5782828501525b509190910192915050565b6001600160a01b038a81168252602082018a905260408201899052871660608201526001600160e01b03198616608082015260a0810185905260c0810184905261010060e0820181905281018290526000610120838582850137828401810191909152601f909201601f1916010198975050505050505050565b6040808252810183905260008460608301825b86811015610ec2576001600160a01b03610ead84610ac1565b16825260209283019290910190600101610e94565b506001600160a01b03949094166020939093019290925250909392505050565b6020808252825182820181905260009190848201906040850190845b81811015610f235783516001600160a01b031683529284019291840191600101610efe565b50909695505050505050565b60008219821115610f4257610f42610f62565b500190565b6000600019821415610f5b57610f5b610f62565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220262e5ad4ad92d2986c722791cedda45946b31c84f2cd71f00eb573c7c470f5a364736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.dbg.json b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.json b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.json deleted file mode 100644 index 0204d325..00000000 --- a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ChainlinkToken.json +++ /dev/null @@ -1,326 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ChainlinkToken", - "sourceName": "contracts/examples/mock/ChainlinkToken.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "supply", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "transferAndCall", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000d0338038062000d0383398101604081905262000034916200025f565b6040518060400160405280601581526020017f436861696e6c696e6b2044756d6d7920546f6b656e00000000000000000000008152506040518060400160405280600381526020016210d11560ea1b81525081600390805190602001906200009e929190620001b9565b508051620000b4906004906020840190620001b9565b505050620000c98282620000d160201b60201c565b5050620002fb565b6001600160a01b0382166200012c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000140919062000299565b90915550506001600160a01b038216600090815260208190526040812080548392906200016f90849062000299565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001c790620002be565b90600052602060002090601f016020900481019282620001eb576000855562000236565b82601f106200020657805160ff191683800117855562000236565b8280016001018555821562000236579182015b828111156200023657825182559160200191906001019062000219565b506200024492915062000248565b5090565b5b8082111562000244576000815560010162000249565b6000806040838503121562000272578182fd5b82516001600160a01b038116811462000289578283fd5b6020939093015192949293505050565b60008219821115620002b957634e487b7160e01b81526011600452602481fd5b500190565b600281046001821680620002d357607f821691505b60208210811415620002f557634e487b7160e01b600052602260045260246000fd5b50919050565b6109f8806200030b6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80634000aea0116100715780634000aea01461014157806370a082311461015457806395d89b4114610167578063a457c2d71461016f578063a9059cbb14610182578063dd62ed3e14610195576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101a8565b6040516100ce9190610910565b60405180910390f35b6100ea6100e536600461081d565b61023a565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046107e2565b610252565b604051601281526020016100ce565b6100ea61013c36600461081d565b610276565b6100ea61014f366004610846565b610298565b6100fe61016236600461078f565b6102b8565b6100c16102d7565b6100ea61017d36600461081d565b6102e6565b6100ea61019036600461081d565b610366565b6100fe6101a33660046107b0565b610374565b6060600380546101b790610987565b80601f01602080910402602001604051908101604052809291908181526020018280546101e390610987565b80156102305780601f1061020557610100808354040283529160200191610230565b820191906000526020600020905b81548152906001019060200180831161021357829003601f168201915b5050505050905090565b60003361024881858561039f565b5060019392505050565b6000336102608582856104c3565b61026b85858561053d565b506001949350505050565b6000336102488185856102898383610374565b6102939190610963565b61039f565b60006102a48585610366565b50843b1561026b5761026b8585858561070b565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546101b790610987565b600033816102f48286610374565b9050838110156103595760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61026b828686840361039f565b60003361024881858561053d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610350565b6001600160a01b0382166104625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610350565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104cf8484610374565b90506000198114610537578181101561052a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610350565b610537848484840361039f565b50505050565b6001600160a01b0383166105a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610350565b6001600160a01b0382166106035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610350565b6001600160a01b0383166000908152602081905260409020548181101561067b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610350565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106b2908490610963565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106fe91815260200190565b60405180910390a3610537565b604051635260769b60e11b815284906001600160a01b0382169063a4c0ed369061073f9033908890889088906004016108c8565b600060405180830381600087803b15801561075957600080fd5b505af115801561076d573d6000803e3d6000fd5b505050505050505050565b80356001600160a01b03811681146102d257600080fd5b6000602082840312156107a0578081fd5b6107a982610778565b9392505050565b600080604083850312156107c2578081fd5b6107cb83610778565b91506107d960208401610778565b90509250929050565b6000806000606084860312156107f6578081fd5b6107ff84610778565b925061080d60208501610778565b9150604084013590509250925092565b6000806040838503121561082f578182fd5b61083883610778565b946020939093013593505050565b6000806000806060858703121561085b578081fd5b61086485610778565b935060208501359250604085013567ffffffffffffffff80821115610887578283fd5b818701915087601f83011261089a578283fd5b8135818111156108a8578384fd5b8860208285010111156108b9578384fd5b95989497505060200194505050565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6000602080835283518082850152825b8181101561093c57858101830151858201604001528201610920565b8181111561094d5783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561098257634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061099b57607f821691505b602082108114156109bc57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220f3d8363e9fb1f29b8d17cfb6891464862284d9a7fc6aa7fae16e70cee2835a4064736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80634000aea0116100715780634000aea01461014157806370a082311461015457806395d89b4114610167578063a457c2d71461016f578063a9059cbb14610182578063dd62ed3e14610195576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd146100fa57806323b872dd1461010c578063313ce5671461011f578063395093511461012e575b600080fd5b6100c16101a8565b6040516100ce9190610910565b60405180910390f35b6100ea6100e536600461081d565b61023a565b60405190151581526020016100ce565b6002545b6040519081526020016100ce565b6100ea61011a3660046107e2565b610252565b604051601281526020016100ce565b6100ea61013c36600461081d565b610276565b6100ea61014f366004610846565b610298565b6100fe61016236600461078f565b6102b8565b6100c16102d7565b6100ea61017d36600461081d565b6102e6565b6100ea61019036600461081d565b610366565b6100fe6101a33660046107b0565b610374565b6060600380546101b790610987565b80601f01602080910402602001604051908101604052809291908181526020018280546101e390610987565b80156102305780601f1061020557610100808354040283529160200191610230565b820191906000526020600020905b81548152906001019060200180831161021357829003601f168201915b5050505050905090565b60003361024881858561039f565b5060019392505050565b6000336102608582856104c3565b61026b85858561053d565b506001949350505050565b6000336102488185856102898383610374565b6102939190610963565b61039f565b60006102a48585610366565b50843b1561026b5761026b8585858561070b565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546101b790610987565b600033816102f48286610374565b9050838110156103595760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61026b828686840361039f565b60003361024881858561053d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104015760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610350565b6001600160a01b0382166104625760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610350565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006104cf8484610374565b90506000198114610537578181101561052a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610350565b610537848484840361039f565b50505050565b6001600160a01b0383166105a15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610350565b6001600160a01b0382166106035760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610350565b6001600160a01b0383166000908152602081905260409020548181101561067b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610350565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106b2908490610963565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106fe91815260200190565b60405180910390a3610537565b604051635260769b60e11b815284906001600160a01b0382169063a4c0ed369061073f9033908890889088906004016108c8565b600060405180830381600087803b15801561075957600080fd5b505af115801561076d573d6000803e3d6000fd5b505050505050505050565b80356001600160a01b03811681146102d257600080fd5b6000602082840312156107a0578081fd5b6107a982610778565b9392505050565b600080604083850312156107c2578081fd5b6107cb83610778565b91506107d960208401610778565b90509250929050565b6000806000606084860312156107f6578081fd5b6107ff84610778565b925061080d60208501610778565b9150604084013590509250925092565b6000806040838503121561082f578182fd5b61083883610778565b946020939093013593505050565b6000806000806060858703121561085b578081fd5b61086485610778565b935060208501359250604085013567ffffffffffffffff80821115610887578283fd5b818701915087601f83011261089a578283fd5b8135818111156108a8578384fd5b8860208285010111156108b9578384fd5b95989497505060200194505050565b6001600160a01b0385168152602081018490526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6000602080835283518082850152825b8181101561093c57858101830151858201604001528201610920565b8181111561094d5783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561098257634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061099b57607f821691505b602082108114156109bc57634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220f3d8363e9fb1f29b8d17cfb6891464862284d9a7fc6aa7fae16e70cee2835a4064736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.dbg.json b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.dbg.json deleted file mode 100644 index 58d048c6..00000000 --- a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.json b/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.json deleted file mode 100644 index 7c9e82e7..00000000 --- a/artifacts/contracts/examples/mock/ChainlinkToken.sol/ERC677Receiver.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC677Receiver", - "sourceName": "contracts/examples/mock/ChainlinkToken.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "onTokenTransfer", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/examples/strings.sol/strings.dbg.json b/artifacts/contracts/examples/strings.sol/strings.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/examples/strings.sol/strings.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/examples/strings.sol/strings.json b/artifacts/contracts/examples/strings.sol/strings.json deleted file mode 100644 index ca0f7654..00000000 --- a/artifacts/contracts/examples/strings.sol/strings.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "strings", - "sourceName": "contracts/examples/strings.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a39611688c0ac4789558bf2ee98f59e4dcce4418533237488fd2a2f3474b59c064736f6c63430008020033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a39611688c0ac4789558bf2ee98f59e4dcce4418533237488fd2a2f3474b59c064736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.dbg.json b/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.json b/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.json deleted file mode 100644 index 0bb79287..00000000 --- a/artifacts/contracts/flows/PolicyDefaultFlow.sol/PolicyDefaultFlow.json +++ /dev/null @@ -1,509 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "PolicyDefaultFlow", - "sourceName": "contracts/flows/PolicyDefaultFlow.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_registry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "expectedPremiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "adjustPremiumSumInsured", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "cancelRequest", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "close", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "closeClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "collectPremium", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPremiumAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "confirmedAmount", - "type": "uint256" - } - ], - "name": "confirmClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "decline", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "declineClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "expire", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "getApplicationData", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "getClaimData", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "getContractFromRegistry", - "outputs": [ - { - "internalType": "address", - "name": "_addr", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "getPayoutData", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "metaData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "applicationData", - "type": "bytes" - } - ], - "name": "newApplication", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "newClaim", - "outputs": [ - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "newPayout", - "outputs": [ - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPayoutAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "registry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_input", - "type": "bytes" - }, - { - "internalType": "string", - "name": "_callbackMethodName", - "type": "string" - }, - { - "internalType": "address", - "name": "_callbackContractAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_responsibleOracleId", - "type": "uint256" - } - ], - "name": "request", - "outputs": [ - { - "internalType": "uint256", - "name": "_requestId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "revoke", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "underwrite", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60a06040523480156200001157600080fd5b50604051620033f2380380620033f283398101604081905262000034916200004a565b60601b6001600160601b0319166080526200007a565b6000602082840312156200005c578081fd5b81516001600160a01b038116811462000073578182fd5b9392505050565b60805160601c613352620000a0600039600081816102400152611c1301526133526000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80637f29dba2116100b8578063b75c7dc61161007c578063b75c7dc6146102e1578063c46df94e146102f4578063c644179814610307578063e3ebdea51461031a578063fae43d151461034a578063fe64372b1461035d57610142565b80637f29dba21461027a5780638cc7d3d11461028d57806393b8414a146102a0578063a3f4df7e146102b3578063a5b25e71146102ce57610142565b806330a73da51161010a57806330a73da5146101dc57806339c79e0c146101ef5780634cda0de9146102025780634e02c63f14610215578063781d7846146102285780637b1039991461023b57610142565b806310b96080146101475780631b07b17f1461017057806322f86e7f146101935780632c933f22146101a65780633015394c146101c7575b600080fd5b61015a610155366004612da0565b610370565b60405161016791906131e1565b60405180910390f35b61018361017e366004612cdc565b61040e565b6040519015158152602001610167565b61015a6101a1366004612da0565b610747565b6101b96101b4366004612d0c565b6107d9565b604051908152602001610167565b6101da6101d5366004612cdc565b6109be565b005b6101da6101ea366004612e12565b610c46565b6101da6101fd366004612cdc565b610eff565b6101da610210366004612da0565b61120f565b6101da610223366004612e12565b611392565b6101b9610236366004612e3d565b611554565b6102627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610167565b6101da610288366004612da0565b611733565b6101da61029b366004612cdc565b6118b6565b6101b96102ae366004612bfb565b611a68565b6101b970506f6c69637944656661756c74466c6f7760781b81565b6102626102dc366004612cdc565b611bfa565b6101da6102ef366004612cdc565b611c9b565b61015a610302366004612cdc565b611e17565b6101da610315366004612cdc565b611eaf565b61032d610328366004612da0565b612120565b604080519315158452602084019290925290820152606001610167565b6101b9610358366004612dc1565b6124f9565b61032d61036b366004612da0565b6127cc565b6060600061037c612a9d565b60405163cef58f1360e01b815260048101869052602481018590529091506001600160a01b0382169063cef58f139060440160006040518083038186803b1580156103c657600080fd5b505afa1580156103da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612fc5565b60600151949350505050565b600081600061041b612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561046157600080fd5b505afa158015610475573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261049d9190810190612f47565b905060006104b66810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156104f857600080fd5b505afa15801561050c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105309190612cf4565b82602001511461055b5760405162461bcd60e51b815260040161055290613214565b60405180910390fd5b6000610565612ab6565b604051631b07b17f60e01b8152600481018990529091506001600160a01b03821690631b07b17f90602401602060405180830381600087803b1580156105aa57600080fd5b505af11580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e29190612c8e565b9550851561073d5760006105f4612a9d565b604051630b92aa5160e31b8152600481018a90529091506001600160a01b03821690635c95528890602401600060405180830381600087803b15801561063957600080fd5b505af115801561064d573d6000803e3d6000fd5b505060405163260a666160e11b8152600481018b90526001600160a01b0384169250634c14ccc29150602401600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505060405163a3f685f960e01b8152600481018b9052600092506001600160a01b038416915063a3f685f9906024016101206040518083038186803b1580156106ef57600080fd5b505afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610727919061303f565b9050610737898260200151612120565b50505050505b5050505050919050565b60606000610753612a9d565b604051637f22c2d960e01b815260048101869052602481018590529091506001600160a01b03821690637f22c2d99060440160006040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612e9c565b60008760006107e6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108689190810190612f47565b905060006108816810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156108c357600080fd5b505afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190612cf4565b82602001511461091d5760405162461bcd60e51b815260040161055290613214565b610925612ac8565b6001600160a01b0316632c933f228d8d8d8d8d8d8d6040518863ffffffff1660e01b815260040161095c9796959493929190613143565b602060405180830381600087803b15801561097657600080fd5b505af115801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae9190612cf4565b9c9b505050505050505050505050565b8060006109c9612ac8565b905060006109d5612ac8565b6001600160a01b0316639b04ed30846040518263ffffffff1660e01b8152600401610a0291815260200190565b60206040518083038186803b158015610a1a57600080fd5b505afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190612cf4565b90506000610a5e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae09190810190612f47565b90506000610af96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610b3b57600080fd5b505afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190612cf4565b826020015114610bd65760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5046442d3030353a5245515545535449445f50524f445543545f60448201526709a92a69a82a886960c31b6064820152608401610552565b610bde612ac8565b6001600160a01b03166340e58ee5886040518263ffffffff1660e01b8152600401610c0b91815260200190565b600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b5050505050505050505050565b826000610c51612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610c9657600080fd5b505afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce919061303f565b516002811115610cee57634e487b7160e01b600052602160045260246000fd5b1415610d3c5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b846000610d47612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dc99190810190612f47565b90506000610de26810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c9190612cf4565b826020015114610e7e5760405162461bcd60e51b815260040161055290613214565b6000610e88612a9d565b6040516330a73da560e01b8152600481018c9052602481018b9052604481018a90529091506001600160a01b038216906330a73da590606401600060405180830381600087803b158015610edb57600080fd5b505af1158015610eef573d6000803e3d6000fd5b5050505050505050505050505050565b806000610f0a612a9d565b9050600160405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610f4f57600080fd5b505afa158015610f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f87919061303f565b516002811115610fa757634e487b7160e01b600052602160045260246000fd5b14610ff45760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5046442d3030323a504f4c4943595f4e4f545f455850495245446044820152606401610552565b826000610fff612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110819190810190612f47565b9050600061109a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156110dc57600080fd5b505afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190612cf4565b8260200151146111365760405162461bcd60e51b815260040161055290613214565b6000611140612a9d565b6040516315b95b6560e31b8152600481018a90529091506001600160a01b0382169063adcadb2890602401600060405180830381600087803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b5050505060006111a7612ab6565b6040516367d42a8b60e01b8152600481018b90529091506001600160a01b038216906367d42a8b90602401600060405180830381600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b50505050505050505050505050565b81600061121a612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561126057600080fd5b505afa158015611274573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261129c9190810190612f47565b905060006112b56810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156112f757600080fd5b505afa15801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190612cf4565b8260200151146113515760405162461bcd60e51b815260040161055290613214565b600061135b612a9d565b604051634cda0de960e01b815260048101899052602481018890529091506001600160a01b03821690634cda0de990604401610c0b565b82600061139d612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156113e357600080fd5b505afa1580156113f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141f9190810190612f47565b905060006114386810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b29190612cf4565b8260200151146114d45760405162461bcd60e51b815260040161055290613214565b60006114de612a9d565b604051634e02c63f60e01b8152600481018a905260248101899052604481018890529091506001600160a01b03821690634e02c63f906064015b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050505050505050505050565b6000856000611561612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115e39190810190612f47565b905060006115fc6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116769190612cf4565b8260200151146116985760405162461bcd60e51b815260040161055290613214565b6116a0612a9d565b6001600160a01b031663db42b77b8b8b8b8b8b6040518663ffffffff1660e01b81526004016116d39594939291906131b0565b602060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117259190612cf4565b9a9950505050505050505050565b81600061173e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561178457600080fd5b505afa158015611798573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117c09190810190612f47565b905060006117d96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561181b57600080fd5b505afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118539190612cf4565b8260200151146118755760405162461bcd60e51b815260040161055290613214565b600061187f612a9d565b604051633f94edd160e11b815260048101899052602481018890529091506001600160a01b03821690637f29dba290604401610c0b565b8060006118c1612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561190757600080fd5b505afa15801561191b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119439190810190612f47565b9050600061195c6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561199e57600080fd5b505afa1580156119b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d69190612cf4565b8260200151146119f85760405162461bcd60e51b815260040161055290613214565b6000611a02612a9d565b60405163296d6c7d60e01b8152600481018890529091506001600160a01b0382169063296d6c7d906024015b600060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b50505050505050505050565b600080611a73612adb565b604051632b1c7f7360e01b81523360048201529091506000906001600160a01b03831690632b1c7f739060240160206040518083038186803b158015611ab857600080fd5b505afa158015611acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af09190612cf4565b90506000611afc612a9d565b6040516350c0a50d60e11b81529091506001600160a01b0382169063a1814a1a90611b31908e9086908d908d90600401613111565b602060405180830381600087803b158015611b4b57600080fd5b505af1158015611b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b839190612cf4565b6040516333c019b760e11b81529094506001600160a01b03821690636780336e90611bba9087908e908e908c908c906004016131b0565b600060405180830381600087803b158015611bd457600080fd5b505af1158015611be8573d6000803e3d6000fd5b50505050505050979650505050505050565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c5d57600080fd5b505afa158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190612bd8565b92915050565b806000611ca6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611cec57600080fd5b505afa158015611d00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d289190810190612f47565b90506000611d416810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015611d8357600080fd5b505afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190612cf4565b826020015114611ddd5760405162461bcd60e51b815260040161055290613214565b6000611de7612a9d565b60405163eb96cbed60e01b8152600481018890529091506001600160a01b0382169063eb96cbed90602401611a2e565b60606000611e23612a9d565b604051632f141bd960e21b8152600481018590529091506001600160a01b0382169063bc506f649060240160006040518083038186803b158015611e6657600080fd5b505afa158015611e7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ea29190810190612e9c565b606001519150505b919050565b806000611eba612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015611eff57600080fd5b505afa158015611f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f37919061303f565b516002811115611f5757634e487b7160e01b600052602160045260246000fd5b14611fa45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b826000611faf612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611ff557600080fd5b505afa158015612009573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120319190810190612f47565b9050600061204a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561208c57600080fd5b505afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190612cf4565b8260200151146120e65760405162461bcd60e51b815260040161055290613214565b60006120f0612a9d565b6040516308fc762760e31b8152600481018a90529091506001600160a01b038216906347e3b13890602401611518565b6000806000846000612130612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561217557600080fd5b505afa158015612189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ad919061303f565b5160028111156121cd57634e487b7160e01b600052602160045260246000fd5b141561221b5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b866000612226612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561226c57600080fd5b505afa158015612280573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122a89190810190612f47565b905060006122c16810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561230357600080fd5b505afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612cf4565b82602001511461235d5760405162461bcd60e51b815260040161055290613214565b6000612367612af2565b90506000612373612a9d565b6040516242104d60e31b8152600481018f9052602481018e90529091506001600160a01b03831690630210826890604401606060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f69190612ca8565b919c509a5098508a156124ea576001600160a01b03811663e3ebdea58e61241d8d8d61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801561245b57600080fd5b505af115801561246f573d6000803e3d6000fd5b50505050600061247d612ab6565b9050806001600160a01b031663021082688f8c6040518363ffffffff1660e01b81526004016124b6929190918252602082015260400190565b600060405180830381600087803b1580156124d057600080fd5b505af11580156124e4573d6000803e3d6000fd5b50505050505b50505050505050509250925092565b6000846000612506612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561254b57600080fd5b505afa15801561255f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612583919061303f565b5160028111156125a357634e487b7160e01b600052602160045260246000fd5b146125f05760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b8660006125fb612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561264157600080fd5b505afa158015612655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261267d9190810190612f47565b905060006126966810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156126d857600080fd5b505afa1580156126ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127109190612cf4565b8260200151146127325760405162461bcd60e51b815260040161055290613214565b61273a612a9d565b6001600160a01b031663ec9356688c8c8c8c6040518563ffffffff1660e01b815260040161276b9493929190613190565b602060405180830381600087803b15801561278557600080fd5b505af1158015612799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bd9190612cf4565b9b9a5050505050505050505050565b60008060008460006127dc612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561282257600080fd5b505afa158015612836573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261285e9190810190612f47565b905060006128776810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156128b957600080fd5b505afa1580156128cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f19190612cf4565b8260200151146129135760405162461bcd60e51b815260040161055290613214565b600061291d612af2565b60405163fe64372b60e01b8152600481018c9052602481018b90529091506001600160a01b0382169063fe64372b906044016040805180830381600087803b15801561296857600080fd5b505af115801561297c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a091906130c4565b909750955060006129af612a9d565b60405163fe64372b60e01b8152600481018d9052602481018c90529091506001600160a01b0382169063fe64372b90604401600060405180830381600087803b1580156129fb57600080fd5b505af1158015612a0f573d6000803e3d6000fd5b505050506000612a1d612ab6565b90506001600160a01b03811663fe64372b8d612a398c8c61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b158015612a7757600080fd5b505af1158015612a8b573d6000803e3d6000fd5b50505050505050505050509250925092565b6000612ab165506f6c69637960d01b611bfa565b905090565b6000612ab163141bdbdb60e21b611bfa565b6000612ab164517565727960d81b611bfa565b6000612ab16810dbdb5c1bdb995b9d60ba1b611bfa565b6000612ab167547265617375727960c01b611bfa565b80518015158114611eaa57600080fd5b60008083601f840112612b29578182fd5b50813567ffffffffffffffff811115612b40578182fd5b602083019150836020828501011115612b5857600080fd5b9250929050565b600082601f830112612b6f578081fd5b815167ffffffffffffffff811115612b8957612b896132e1565b612b9c601f8201601f191660200161325c565b818152846020838601011115612bb0578283fd5b612bc18260208301602087016132b1565b949350505050565b805160038110611eaa57600080fd5b600060208284031215612be9578081fd5b8151612bf4816132f7565b9392505050565b600080600080600080600060a0888a031215612c15578283fd5b8735612c20816132f7565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612c4a578485fd5b612c568b838c01612b18565b909650945060808a0135915080821115612c6e578384fd5b50612c7b8a828b01612b18565b989b979a50959850939692959293505050565b600060208284031215612c9f578081fd5b612bf482612b08565b600080600060608486031215612cbc578081fd5b612cc584612b08565b925060208401519150604084015190509250925092565b600060208284031215612ced578081fd5b5035919050565b600060208284031215612d05578081fd5b5051919050565b600080600080600080600060a0888a031215612d26578081fd5b87359650602088013567ffffffffffffffff80821115612d44578283fd5b612d508b838c01612b18565b909850965060408a0135915080821115612d68578283fd5b50612d758a828b01612b18565b9095509350506060880135612d89816132f7565b809250506080880135905092959891949750929550565b60008060408385031215612db2578182fd5b50508035926020909101359150565b60008060008060608587031215612dd6578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612dfa578283fd5b612e0687828801612b18565b95989497509550505050565b600080600060608486031215612e26578081fd5b505081359360208301359350604090920135919050565b600080600080600060808688031215612e54578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115612e7f578182fd5b612e8b88828901612b18565b969995985093965092949392505050565b600060208284031215612ead578081fd5b815167ffffffffffffffff80821115612ec4578283fd5b9083019060c08286031215612ed7578283fd5b612ee160c061325c565b8251612eec8161330f565b808252506020830151602082015260408301516040820152606083015182811115612f15578485fd5b612f2187828601612b5f565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612f58578081fd5b815167ffffffffffffffff80821115612f6f578283fd5b9083019060c08286031215612f82578283fd5b612f8c60c061325c565b8251612f97816132f7565b815260208381015190820152612faf60408401612bc9565b6040820152606083015182811115612f15578485fd5b600060208284031215612fd6578081fd5b815167ffffffffffffffff80821115612fed578283fd5b9083019060c08286031215613000578283fd5b61300a60c061325c565b8251815260208301516002811061301f578485fd5b602082015260408381015190820152606083015182811115612f15578485fd5b6000610120808385031215613052578182fd5b61305b8161325c565b905061306683612bc9565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080604083850312156130d6578182fd5b505080516020909101519092909150565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600060018060a01b0386168252846020830152606060408301526131396060830184866130e7565b9695505050505050565b600088825260a0602083015261315d60a08301888a6130e7565b82810360408401526131708187896130e7565b6001600160a01b0395909516606084015250506080015295945050505050565b6000858252846020830152606060408301526131396060830184866130e7565b6000868252856020830152846040830152608060608301526131d66080830184866130e7565b979650505050505050565b60006020825282518060208401526132008160408501602087016132b1565b601f01601f19169190910160400192915050565b60208082526028908201527f4552524f523a5046442d3030343a50524f4345535349445f50524f445543545f60408201526709a92a69a82a886960c31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613285576132856132e1565b604052919050565b600082198211156132ac57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156132cc5781810151838201526020016132b4565b838111156132db576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461330c57600080fd5b50565b6004811061330c57600080fdfea264697066735822122092c051776eb1683c4470104ec76b5b4902125ab9cd0e8ba206bb1da8cad8d51c64736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80637f29dba2116100b8578063b75c7dc61161007c578063b75c7dc6146102e1578063c46df94e146102f4578063c644179814610307578063e3ebdea51461031a578063fae43d151461034a578063fe64372b1461035d57610142565b80637f29dba21461027a5780638cc7d3d11461028d57806393b8414a146102a0578063a3f4df7e146102b3578063a5b25e71146102ce57610142565b806330a73da51161010a57806330a73da5146101dc57806339c79e0c146101ef5780634cda0de9146102025780634e02c63f14610215578063781d7846146102285780637b1039991461023b57610142565b806310b96080146101475780631b07b17f1461017057806322f86e7f146101935780632c933f22146101a65780633015394c146101c7575b600080fd5b61015a610155366004612da0565b610370565b60405161016791906131e1565b60405180910390f35b61018361017e366004612cdc565b61040e565b6040519015158152602001610167565b61015a6101a1366004612da0565b610747565b6101b96101b4366004612d0c565b6107d9565b604051908152602001610167565b6101da6101d5366004612cdc565b6109be565b005b6101da6101ea366004612e12565b610c46565b6101da6101fd366004612cdc565b610eff565b6101da610210366004612da0565b61120f565b6101da610223366004612e12565b611392565b6101b9610236366004612e3d565b611554565b6102627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610167565b6101da610288366004612da0565b611733565b6101da61029b366004612cdc565b6118b6565b6101b96102ae366004612bfb565b611a68565b6101b970506f6c69637944656661756c74466c6f7760781b81565b6102626102dc366004612cdc565b611bfa565b6101da6102ef366004612cdc565b611c9b565b61015a610302366004612cdc565b611e17565b6101da610315366004612cdc565b611eaf565b61032d610328366004612da0565b612120565b604080519315158452602084019290925290820152606001610167565b6101b9610358366004612dc1565b6124f9565b61032d61036b366004612da0565b6127cc565b6060600061037c612a9d565b60405163cef58f1360e01b815260048101869052602481018590529091506001600160a01b0382169063cef58f139060440160006040518083038186803b1580156103c657600080fd5b505afa1580156103da573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612fc5565b60600151949350505050565b600081600061041b612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561046157600080fd5b505afa158015610475573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261049d9190810190612f47565b905060006104b66810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156104f857600080fd5b505afa15801561050c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105309190612cf4565b82602001511461055b5760405162461bcd60e51b815260040161055290613214565b60405180910390fd5b6000610565612ab6565b604051631b07b17f60e01b8152600481018990529091506001600160a01b03821690631b07b17f90602401602060405180830381600087803b1580156105aa57600080fd5b505af11580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e29190612c8e565b9550851561073d5760006105f4612a9d565b604051630b92aa5160e31b8152600481018a90529091506001600160a01b03821690635c95528890602401600060405180830381600087803b15801561063957600080fd5b505af115801561064d573d6000803e3d6000fd5b505060405163260a666160e11b8152600481018b90526001600160a01b0384169250634c14ccc29150602401600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505060405163a3f685f960e01b8152600481018b9052600092506001600160a01b038416915063a3f685f9906024016101206040518083038186803b1580156106ef57600080fd5b505afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610727919061303f565b9050610737898260200151612120565b50505050505b5050505050919050565b60606000610753612a9d565b604051637f22c2d960e01b815260048101869052602481018590529091506001600160a01b03821690637f22c2d99060440160006040518083038186803b15801561079d57600080fd5b505afa1580156107b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104029190810190612e9c565b60008760006107e6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561082c57600080fd5b505afa158015610840573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108689190810190612f47565b905060006108816810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156108c357600080fd5b505afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190612cf4565b82602001511461091d5760405162461bcd60e51b815260040161055290613214565b610925612ac8565b6001600160a01b0316632c933f228d8d8d8d8d8d8d6040518863ffffffff1660e01b815260040161095c9796959493929190613143565b602060405180830381600087803b15801561097657600080fd5b505af115801561098a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ae9190612cf4565b9c9b505050505050505050505050565b8060006109c9612ac8565b905060006109d5612ac8565b6001600160a01b0316639b04ed30846040518263ffffffff1660e01b8152600401610a0291815260200190565b60206040518083038186803b158015610a1a57600080fd5b505afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190612cf4565b90506000610a5e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ae09190810190612f47565b90506000610af96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610b3b57600080fd5b505afa158015610b4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b739190612cf4565b826020015114610bd65760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5046442d3030353a5245515545535449445f50524f445543545f60448201526709a92a69a82a886960c31b6064820152608401610552565b610bde612ac8565b6001600160a01b03166340e58ee5886040518263ffffffff1660e01b8152600401610c0b91815260200190565b600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b5050505050505050505050565b826000610c51612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610c9657600080fd5b505afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce919061303f565b516002811115610cee57634e487b7160e01b600052602160045260246000fd5b1415610d3c5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b846000610d47612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015610d8d57600080fd5b505afa158015610da1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dc99190810190612f47565b90506000610de26810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015610e2457600080fd5b505afa158015610e38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5c9190612cf4565b826020015114610e7e5760405162461bcd60e51b815260040161055290613214565b6000610e88612a9d565b6040516330a73da560e01b8152600481018c9052602481018b9052604481018a90529091506001600160a01b038216906330a73da590606401600060405180830381600087803b158015610edb57600080fd5b505af1158015610eef573d6000803e3d6000fd5b5050505050505050505050505050565b806000610f0a612a9d565b9050600160405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015610f4f57600080fd5b505afa158015610f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f87919061303f565b516002811115610fa757634e487b7160e01b600052602160045260246000fd5b14610ff45760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5046442d3030323a504f4c4943595f4e4f545f455850495245446044820152606401610552565b826000610fff612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561104557600080fd5b505afa158015611059573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110819190810190612f47565b9050600061109a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156110dc57600080fd5b505afa1580156110f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111149190612cf4565b8260200151146111365760405162461bcd60e51b815260040161055290613214565b6000611140612a9d565b6040516315b95b6560e31b8152600481018a90529091506001600160a01b0382169063adcadb2890602401600060405180830381600087803b15801561118557600080fd5b505af1158015611199573d6000803e3d6000fd5b5050505060006111a7612ab6565b6040516367d42a8b60e01b8152600481018b90529091506001600160a01b038216906367d42a8b90602401600060405180830381600087803b1580156111ec57600080fd5b505af1158015611200573d6000803e3d6000fd5b50505050505050505050505050565b81600061121a612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561126057600080fd5b505afa158015611274573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261129c9190810190612f47565b905060006112b56810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156112f757600080fd5b505afa15801561130b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132f9190612cf4565b8260200151146113515760405162461bcd60e51b815260040161055290613214565b600061135b612a9d565b604051634cda0de960e01b815260048101899052602481018890529091506001600160a01b03821690634cda0de990604401610c0b565b82600061139d612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156113e357600080fd5b505afa1580156113f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261141f9190810190612f47565b905060006114386810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561147a57600080fd5b505afa15801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b29190612cf4565b8260200151146114d45760405162461bcd60e51b815260040161055290613214565b60006114de612a9d565b604051634e02c63f60e01b8152600481018a905260248101899052604481018890529091506001600160a01b03821690634e02c63f906064015b600060405180830381600087803b15801561153257600080fd5b505af1158015611546573d6000803e3d6000fd5b505050505050505050505050565b6000856000611561612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b1580156115a757600080fd5b505afa1580156115bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115e39190810190612f47565b905060006115fc6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116769190612cf4565b8260200151146116985760405162461bcd60e51b815260040161055290613214565b6116a0612a9d565b6001600160a01b031663db42b77b8b8b8b8b8b6040518663ffffffff1660e01b81526004016116d39594939291906131b0565b602060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117259190612cf4565b9a9950505050505050505050565b81600061173e612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561178457600080fd5b505afa158015611798573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117c09190810190612f47565b905060006117d96810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561181b57600080fd5b505afa15801561182f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118539190612cf4565b8260200151146118755760405162461bcd60e51b815260040161055290613214565b600061187f612a9d565b604051633f94edd160e11b815260048101899052602481018890529091506001600160a01b03821690637f29dba290604401610c0b565b8060006118c1612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561190757600080fd5b505afa15801561191b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119439190810190612f47565b9050600061195c6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561199e57600080fd5b505afa1580156119b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d69190612cf4565b8260200151146119f85760405162461bcd60e51b815260040161055290613214565b6000611a02612a9d565b60405163296d6c7d60e01b8152600481018890529091506001600160a01b0382169063296d6c7d906024015b600060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b50505050505050505050565b600080611a73612adb565b604051632b1c7f7360e01b81523360048201529091506000906001600160a01b03831690632b1c7f739060240160206040518083038186803b158015611ab857600080fd5b505afa158015611acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af09190612cf4565b90506000611afc612a9d565b6040516350c0a50d60e11b81529091506001600160a01b0382169063a1814a1a90611b31908e9086908d908d90600401613111565b602060405180830381600087803b158015611b4b57600080fd5b505af1158015611b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b839190612cf4565b6040516333c019b760e11b81529094506001600160a01b03821690636780336e90611bba9087908e908e908c908c906004016131b0565b600060405180830381600087803b158015611bd457600080fd5b505af1158015611be8573d6000803e3d6000fd5b50505050505050979650505050505050565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b158015611c5d57600080fd5b505afa158015611c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c959190612bd8565b92915050565b806000611ca6612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611cec57600080fd5b505afa158015611d00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d289190810190612f47565b90506000611d416810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b158015611d8357600080fd5b505afa158015611d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbb9190612cf4565b826020015114611ddd5760405162461bcd60e51b815260040161055290613214565b6000611de7612a9d565b60405163eb96cbed60e01b8152600481018890529091506001600160a01b0382169063eb96cbed90602401611a2e565b60606000611e23612a9d565b604051632f141bd960e21b8152600481018590529091506001600160a01b0382169063bc506f649060240160006040518083038186803b158015611e6657600080fd5b505afa158015611e7a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ea29190810190612e9c565b606001519150505b919050565b806000611eba612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b158015611eff57600080fd5b505afa158015611f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f37919061303f565b516002811115611f5757634e487b7160e01b600052602160045260246000fd5b14611fa45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b826000611faf612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b158015611ff557600080fd5b505afa158015612009573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120319190810190612f47565b9050600061204a6810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561208c57600080fd5b505afa1580156120a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c49190612cf4565b8260200151146120e65760405162461bcd60e51b815260040161055290613214565b60006120f0612a9d565b6040516308fc762760e31b8152600481018a90529091506001600160a01b038216906347e3b13890602401611518565b6000806000846000612130612a9d565b9050600260405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561217557600080fd5b505afa158015612189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ad919061303f565b5160028111156121cd57634e487b7160e01b600052602160045260246000fd5b141561221b5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5046442d3030333a504f4c4943595f434c4f53454400000000006044820152606401610552565b866000612226612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561226c57600080fd5b505afa158015612280573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122a89190810190612f47565b905060006122c16810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b15801561230357600080fd5b505afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612cf4565b82602001511461235d5760405162461bcd60e51b815260040161055290613214565b6000612367612af2565b90506000612373612a9d565b6040516242104d60e31b8152600481018f9052602481018e90529091506001600160a01b03831690630210826890604401606060405180830381600087803b1580156123be57600080fd5b505af11580156123d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f69190612ca8565b919c509a5098508a156124ea576001600160a01b03811663e3ebdea58e61241d8d8d61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b15801561245b57600080fd5b505af115801561246f573d6000803e3d6000fd5b50505050600061247d612ab6565b9050806001600160a01b031663021082688f8c6040518363ffffffff1660e01b81526004016124b6929190918252602082015260400190565b600060405180830381600087803b1580156124d057600080fd5b505af11580156124e4573d6000803e3d6000fd5b50505050505b50505050505050509250925092565b6000846000612506612a9d565b9050600060405163a3f685f960e01b8152600481018490526001600160a01b0383169063a3f685f9906024016101206040518083038186803b15801561254b57600080fd5b505afa15801561255f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612583919061303f565b5160028111156125a357634e487b7160e01b600052602160045260246000fd5b146125f05760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5046442d3030313a504f4c4943595f4e4f545f414354495645006044820152606401610552565b8660006125fb612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561264157600080fd5b505afa158015612655573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261267d9190810190612f47565b905060006126966810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156126d857600080fd5b505afa1580156126ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127109190612cf4565b8260200151146127325760405162461bcd60e51b815260040161055290613214565b61273a612a9d565b6001600160a01b031663ec9356688c8c8c8c6040518563ffffffff1660e01b815260040161276b9493929190613190565b602060405180830381600087803b15801561278557600080fd5b505af1158015612799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bd9190612cf4565b9b9a5050505050505050505050565b60008060008460006127dc612a9d565b60405163296586d360e21b8152600481018490529091506000906001600160a01b0383169063a5961b4c9060240160006040518083038186803b15801561282257600080fd5b505afa158015612836573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261285e9190810190612f47565b905060006128776810dbdb5c1bdb995b9d60ba1b611bfa565b604051632b1c7f7360e01b81523360048201529091506001600160a01b03821690632b1c7f739060240160206040518083038186803b1580156128b957600080fd5b505afa1580156128cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f19190612cf4565b8260200151146129135760405162461bcd60e51b815260040161055290613214565b600061291d612af2565b60405163fe64372b60e01b8152600481018c9052602481018b90529091506001600160a01b0382169063fe64372b906044016040805180830381600087803b15801561296857600080fd5b505af115801561297c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a091906130c4565b909750955060006129af612a9d565b60405163fe64372b60e01b8152600481018d9052602481018c90529091506001600160a01b0382169063fe64372b90604401600060405180830381600087803b1580156129fb57600080fd5b505af1158015612a0f573d6000803e3d6000fd5b505050506000612a1d612ab6565b90506001600160a01b03811663fe64372b8d612a398c8c61328d565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401600060405180830381600087803b158015612a7757600080fd5b505af1158015612a8b573d6000803e3d6000fd5b50505050505050505050509250925092565b6000612ab165506f6c69637960d01b611bfa565b905090565b6000612ab163141bdbdb60e21b611bfa565b6000612ab164517565727960d81b611bfa565b6000612ab16810dbdb5c1bdb995b9d60ba1b611bfa565b6000612ab167547265617375727960c01b611bfa565b80518015158114611eaa57600080fd5b60008083601f840112612b29578182fd5b50813567ffffffffffffffff811115612b40578182fd5b602083019150836020828501011115612b5857600080fd5b9250929050565b600082601f830112612b6f578081fd5b815167ffffffffffffffff811115612b8957612b896132e1565b612b9c601f8201601f191660200161325c565b818152846020838601011115612bb0578283fd5b612bc18260208301602087016132b1565b949350505050565b805160038110611eaa57600080fd5b600060208284031215612be9578081fd5b8151612bf4816132f7565b9392505050565b600080600080600080600060a0888a031215612c15578283fd5b8735612c20816132f7565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612c4a578485fd5b612c568b838c01612b18565b909650945060808a0135915080821115612c6e578384fd5b50612c7b8a828b01612b18565b989b979a50959850939692959293505050565b600060208284031215612c9f578081fd5b612bf482612b08565b600080600060608486031215612cbc578081fd5b612cc584612b08565b925060208401519150604084015190509250925092565b600060208284031215612ced578081fd5b5035919050565b600060208284031215612d05578081fd5b5051919050565b600080600080600080600060a0888a031215612d26578081fd5b87359650602088013567ffffffffffffffff80821115612d44578283fd5b612d508b838c01612b18565b909850965060408a0135915080821115612d68578283fd5b50612d758a828b01612b18565b9095509350506060880135612d89816132f7565b809250506080880135905092959891949750929550565b60008060408385031215612db2578182fd5b50508035926020909101359150565b60008060008060608587031215612dd6578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612dfa578283fd5b612e0687828801612b18565b95989497509550505050565b600080600060608486031215612e26578081fd5b505081359360208301359350604090920135919050565b600080600080600060808688031215612e54578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115612e7f578182fd5b612e8b88828901612b18565b969995985093965092949392505050565b600060208284031215612ead578081fd5b815167ffffffffffffffff80821115612ec4578283fd5b9083019060c08286031215612ed7578283fd5b612ee160c061325c565b8251612eec8161330f565b808252506020830151602082015260408301516040820152606083015182811115612f15578485fd5b612f2187828601612b5f565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612f58578081fd5b815167ffffffffffffffff80821115612f6f578283fd5b9083019060c08286031215612f82578283fd5b612f8c60c061325c565b8251612f97816132f7565b815260208381015190820152612faf60408401612bc9565b6040820152606083015182811115612f15578485fd5b600060208284031215612fd6578081fd5b815167ffffffffffffffff80821115612fed578283fd5b9083019060c08286031215613000578283fd5b61300a60c061325c565b8251815260208301516002811061301f578485fd5b602082015260408381015190820152606083015182811115612f15578485fd5b6000610120808385031215613052578182fd5b61305b8161325c565b905061306683612bc9565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080604083850312156130d6578182fd5b505080516020909101519092909150565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600060018060a01b0386168252846020830152606060408301526131396060830184866130e7565b9695505050505050565b600088825260a0602083015261315d60a08301888a6130e7565b82810360408401526131708187896130e7565b6001600160a01b0395909516606084015250506080015295945050505050565b6000858252846020830152606060408301526131396060830184866130e7565b6000868252856020830152846040830152608060608301526131d66080830184866130e7565b979650505050505050565b60006020825282518060208401526132008160408501602087016132b1565b601f01601f19169190910160400192915050565b60208082526028908201527f4552524f523a5046442d3030343a50524f4345535349445f50524f445543545f60408201526709a92a69a82a886960c31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613285576132856132e1565b604052919050565b600082198211156132ac57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156132cc5781810151838201526020016132b4565b838111156132db576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461330c57600080fd5b50565b6004811061330c57600080fdfea264697066735822122092c051776eb1683c4470104ec76b5b4902125ab9cd0e8ba206bb1da8cad8d51c64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/modules/AccessController.sol/AccessController.dbg.json b/artifacts/contracts/modules/AccessController.sol/AccessController.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/modules/AccessController.sol/AccessController.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/modules/AccessController.sol/AccessController.json b/artifacts/contracts/modules/AccessController.sol/AccessController.json deleted file mode 100644 index 8248c841..00000000 --- a/artifacts/contracts/modules/AccessController.sol/AccessController.json +++ /dev/null @@ -1,433 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "AccessController", - "sourceName": "contracts/modules/AccessController.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" - } - ], - "name": "RoleAdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleGranted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "RoleRevoked", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ORACLE_PROVIDER_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PRODUCT_OWNER_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "RISKPOOL_KEEPER_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "addRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getDefaultAdminRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getOracleProviderRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getProductOwnerRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getRiskpoolKeeperRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getRoleMember", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleMemberCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "invalidateRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "defaultAdmin", - "type": "address" - } - ], - "name": "setDefaultAdminRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "validRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611548806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063775a4048116100b8578063c19010a71161007c578063c19010a714610301578063c4d66de814610314578063ca15c87314610327578063d17d02331461033a578063d49d21c01461034d578063d547741f1461037357610137565b8063775a40481461026e57806379a863f5146102945780639010d07c146102bb57806391d14854146102e6578063a217fddf146102f957610137565b806336568abe116100ff57806336568abe146101e05780633ffdd2f3146101f357806352a9c8d71461021957806368232c69146102205780636c137ea91461024757610137565b806301ffc9a71461013c57806312f9a85e14610164578063248a9ca314610187578063274b02a7146101b85780632f2ff15d146101cd575b600080fd5b61014f61014a366004611305565b610386565b60405190151581526020015b60405180910390f35b61014f61017236600461129d565b60046020526000908152604090205460ff1681565b6101aa61019536600461129d565b60009081526002602052604090206001015490565b60405190815260200161015b565b6101cb6101c636600461129d565b6103b3565b005b6101cb6101db3660046112b5565b6104ea565b6101cb6101ee3660046112b5565b61060a565b7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6101aa565b60006101aa565b6101aa7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd81565b6101aa7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd81565b7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd6101aa565b6101aa7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa281565b6102ce6102c93660046112e4565b610614565b6040516001600160a01b03909116815260200161015b565b61014f6102f43660046112b5565b610635565b6101aa600081565b6101cb61030f366004611245565b610660565b6101cb610322366004611245565b6106da565b6101aa61033536600461129d565b610909565b6101cb61034836600461129d565b610920565b7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa26101aa565b6101cb6103813660046112b5565b610a4a565b60006001600160e01b03198216635a05180f60e01b14806103ab57506103ab82610afa565b90505b919050565b6000546201000090046001600160a01b0316632ca65a796103d13390565b6040518263ffffffff1660e01b81526004016103ed91906113a2565b60206040518083038186803b15801561040557600080fd5b505afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d919061127d565b6104625760405162461bcd60e51b81526004016104599061140f565b60405180910390fd5b60008181526004602052604090205460ff16156104cf5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030333a524f4c455f4558495354494e475f414e445f604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19166001179055565b6000546201000090046001600160a01b0316632ca65a796105083390565b6040518263ffffffff1660e01b815260040161052491906113a2565b60206040518083038186803b15801561053c57600080fd5b505afa158015610550573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610574919061127d565b6105905760405162461bcd60e51b81526004016104599061140f565b60008281526004602052604090205460ff166105fc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030323a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6106068282610b2f565b5050565b6106068282610b59565b600082815260036020526040812061062c9083610bd3565b90505b92915050565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1661062c565b60055460ff16156106bf5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a41434c2d3030313a41444d494e5f524f4c455f414c524541445960448201526317d4d15560e21b6064820152608401610459565b6005805460ff191660011790556106d7600082610bdf565b50565b600054610100900460ff16158080156106fa5750600054600160ff909116105b806107145750303b158015610714575060005460ff166001145b6107775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610459565b6000805460ff19166001179055801561079a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556107cc6541636365737360d01b90565b6541636365737360d01b1461080e576107ed6541636365737360d01b610c01565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108c060046020527fef04f7ed48b33f0d9d7de17461a6b9fbfc99345543bcd1fd6722a181717386398054600160ff1991821681179092557f0d0f3851d150b47a1a07ba8d8da619d3d280e2d8c7ebd5a88c0ddf69c9320ac580548216831790557f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6000527f8ba76ee23aef2d48c27cf0a3d52ee681c660d5a027be0ef9cc9edc5ce9889bac80549091169091179055565b8015610606576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008181526003602052604081206103ab90610ce9565b6000546201000090046001600160a01b0316632ca65a7961093e3390565b6040518263ffffffff1660e01b815260040161095a91906113a2565b60206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa919061127d565b6109c65760405162461bcd60e51b81526004016104599061140f565b60008181526004602052604090205460ff16610a325760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030343a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19169055565b6000546201000090046001600160a01b0316632ca65a79610a683390565b6040518263ffffffff1660e01b8152600401610a8491906113a2565b60206040518083038186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad4919061127d565b610af05760405162461bcd60e51b81526004016104599061140f565b6106068282610cf3565b60006001600160e01b03198216637965db0b60e01b14806103ab57506301ffc9a760e01b6001600160e01b03198316146103ab565b600082815260026020526040902060010154610b4a81610d18565b610b548383610bdf565b505050565b6001600160a01b0381163314610bc95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610459565b6106068282610d22565b600061062c8383610d44565b610be98282610d7c565b6000828152600360205260409020610b549082610e02565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610c4b57600080fd5b505afa158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c839190611261565b90506001600160a01b0381166103ae5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610459565b60006103ab825490565b600082815260026020526040902060010154610d0e81610d18565b610b548383610d22565b6106d78133610e17565b610d2c8282610e7b565b6000828152600360205260409020610b549082610ee2565b6000826000018281548110610d6957634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b610d868282610635565b6106065760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610dbe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061062c836001600160a01b038416610ef7565b610e218282610635565b61060657610e39816001600160a01b03166014610f46565b610e44836020610f46565b604051602001610e5592919061132d565b60408051601f198184030181529082905262461bcd60e51b8252610459916004016113dc565b610e858282610635565b156106065760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061062c836001600160a01b038416611128565b6000818152600183016020526040812054610f3e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561062f565b50600061062f565b60606000610f5583600261146a565b610f60906002611452565b67ffffffffffffffff811115610f8657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610fb0576020820181803683370190505b509050600360fc1b81600081518110610fd957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061101657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061103a84600261146a565b611045906001611452565b90505b60018111156110d9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061108757634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106110ab57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936110d2816114d0565b9050611048565b50831561062c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610459565b6000818152600183016020526040812054801561123b57600061114c600183611489565b855490915060009061116090600190611489565b90508181146111e157600086600001828154811061118e57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106111bf57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061120057634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061062f565b600091505061062f565b600060208284031215611256578081fd5b813561062c816114fd565b600060208284031215611272578081fd5b815161062c816114fd565b60006020828403121561128e578081fd5b8151801515811461062c578182fd5b6000602082840312156112ae578081fd5b5035919050565b600080604083850312156112c7578081fd5b8235915060208301356112d9816114fd565b809150509250929050565b600080604083850312156112f6578182fd5b50508035926020909101359150565b600060208284031215611316578081fd5b81356001600160e01b03198116811461062c578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516113658160178501602088016114a0565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516113968160288401602088016114a0565b01602801949350505050565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60006020825282518060208401526113fb8160408501602087016114a0565b601f01601f19169190910160400192915050565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60008219821115611465576114656114e7565b500190565b6000816000190483118215151615611484576114846114e7565b500290565b60008282101561149b5761149b6114e7565b500390565b60005b838110156114bb5781810151838201526020016114a3565b838111156114ca576000848401525b50505050565b6000816114df576114df6114e7565b506000190190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146106d757600080fdfea26469706673582212203255f3dbbbf3b49008eb1abb30a00c8783989e7b50781a4462516e4ea3cbf87764736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063775a4048116100b8578063c19010a71161007c578063c19010a714610301578063c4d66de814610314578063ca15c87314610327578063d17d02331461033a578063d49d21c01461034d578063d547741f1461037357610137565b8063775a40481461026e57806379a863f5146102945780639010d07c146102bb57806391d14854146102e6578063a217fddf146102f957610137565b806336568abe116100ff57806336568abe146101e05780633ffdd2f3146101f357806352a9c8d71461021957806368232c69146102205780636c137ea91461024757610137565b806301ffc9a71461013c57806312f9a85e14610164578063248a9ca314610187578063274b02a7146101b85780632f2ff15d146101cd575b600080fd5b61014f61014a366004611305565b610386565b60405190151581526020015b60405180910390f35b61014f61017236600461129d565b60046020526000908152604090205460ff1681565b6101aa61019536600461129d565b60009081526002602052604090206001015490565b60405190815260200161015b565b6101cb6101c636600461129d565b6103b3565b005b6101cb6101db3660046112b5565b6104ea565b6101cb6101ee3660046112b5565b61060a565b7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6101aa565b60006101aa565b6101aa7f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd81565b6101aa7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd81565b7fe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd6101aa565b6101aa7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa281565b6102ce6102c93660046112e4565b610614565b6040516001600160a01b03909116815260200161015b565b61014f6102f43660046112b5565b610635565b6101aa600081565b6101cb61030f366004611245565b610660565b6101cb610322366004611245565b6106da565b6101aa61033536600461129d565b610909565b6101cb61034836600461129d565b610920565b7fd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa26101aa565b6101cb6103813660046112b5565b610a4a565b60006001600160e01b03198216635a05180f60e01b14806103ab57506103ab82610afa565b90505b919050565b6000546201000090046001600160a01b0316632ca65a796103d13390565b6040518263ffffffff1660e01b81526004016103ed91906113a2565b60206040518083038186803b15801561040557600080fd5b505afa158015610419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043d919061127d565b6104625760405162461bcd60e51b81526004016104599061140f565b60405180910390fd5b60008181526004602052604090205460ff16156104cf5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030333a524f4c455f4558495354494e475f414e445f604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19166001179055565b6000546201000090046001600160a01b0316632ca65a796105083390565b6040518263ffffffff1660e01b815260040161052491906113a2565b60206040518083038186803b15801561053c57600080fd5b505afa158015610550573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610574919061127d565b6105905760405162461bcd60e51b81526004016104599061140f565b60008281526004602052604090205460ff166105fc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030323a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6106068282610b2f565b5050565b6106068282610b59565b600082815260036020526040812061062c9083610bd3565b90505b92915050565b60008281526002602090815260408083206001600160a01b038516845290915281205460ff1661062c565b60055460ff16156106bf5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a41434c2d3030313a41444d494e5f524f4c455f414c524541445960448201526317d4d15560e21b6064820152608401610459565b6005805460ff191660011790556106d7600082610bdf565b50565b600054610100900460ff16158080156106fa5750600054600160ff909116105b806107145750303b158015610714575060005460ff166001145b6107775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610459565b6000805460ff19166001179055801561079a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556107cc6541636365737360d01b90565b6541636365737360d01b1461080e576107ed6541636365737360d01b610c01565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108c060046020527fef04f7ed48b33f0d9d7de17461a6b9fbfc99345543bcd1fd6722a181717386398054600160ff1991821681179092557f0d0f3851d150b47a1a07ba8d8da619d3d280e2d8c7ebd5a88c0ddf69c9320ac580548216831790557f3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd6000527f8ba76ee23aef2d48c27cf0a3d52ee681c660d5a027be0ef9cc9edc5ce9889bac80549091169091179055565b8015610606576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008181526003602052604081206103ab90610ce9565b6000546201000090046001600160a01b0316632ca65a7961093e3390565b6040518263ffffffff1660e01b815260040161095a91906113a2565b60206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa919061127d565b6109c65760405162461bcd60e51b81526004016104599061140f565b60008181526004602052604090205460ff16610a325760405162461bcd60e51b815260206004820152602560248201527f4552524f523a41434c2d3030343a524f4c455f554e4b4e4f574e5f4f525f494e604482015264159053125160da1b6064820152608401610459565b6000908152600460205260409020805460ff19169055565b6000546201000090046001600160a01b0316632ca65a79610a683390565b6040518263ffffffff1660e01b8152600401610a8491906113a2565b60206040518083038186803b158015610a9c57600080fd5b505afa158015610ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad4919061127d565b610af05760405162461bcd60e51b81526004016104599061140f565b6106068282610cf3565b60006001600160e01b03198216637965db0b60e01b14806103ab57506301ffc9a760e01b6001600160e01b03198316146103ab565b600082815260026020526040902060010154610b4a81610d18565b610b548383610bdf565b505050565b6001600160a01b0381163314610bc95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610459565b6106068282610d22565b600061062c8383610d44565b610be98282610d7c565b6000828152600360205260409020610b549082610e02565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610c4b57600080fd5b505afa158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c839190611261565b90506001600160a01b0381166103ae5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610459565b60006103ab825490565b600082815260026020526040902060010154610d0e81610d18565b610b548383610d22565b6106d78133610e17565b610d2c8282610e7b565b6000828152600360205260409020610b549082610ee2565b6000826000018281548110610d6957634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b610d868282610635565b6106065760008281526002602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610dbe3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061062c836001600160a01b038416610ef7565b610e218282610635565b61060657610e39816001600160a01b03166014610f46565b610e44836020610f46565b604051602001610e5592919061132d565b60408051601f198184030181529082905262461bcd60e51b8252610459916004016113dc565b610e858282610635565b156106065760008281526002602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061062c836001600160a01b038416611128565b6000818152600183016020526040812054610f3e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561062f565b50600061062f565b60606000610f5583600261146a565b610f60906002611452565b67ffffffffffffffff811115610f8657634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610fb0576020820181803683370190505b509050600360fc1b81600081518110610fd957634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061101657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600061103a84600261146a565b611045906001611452565b90505b60018111156110d9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061108757634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106110ab57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936110d2816114d0565b9050611048565b50831561062c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610459565b6000818152600183016020526040812054801561123b57600061114c600183611489565b855490915060009061116090600190611489565b90508181146111e157600086600001828154811061118e57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106111bf57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061120057634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061062f565b600091505061062f565b600060208284031215611256578081fd5b813561062c816114fd565b600060208284031215611272578081fd5b815161062c816114fd565b60006020828403121561128e578081fd5b8151801515811461062c578182fd5b6000602082840312156112ae578081fd5b5035919050565b600080604083850312156112c7578081fd5b8235915060208301356112d9816114fd565b809150509250929050565b600080604083850312156112f6578182fd5b50508035926020909101359150565b600060208284031215611316578081fd5b81356001600160e01b03198116811461062c578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516113658160178501602088016114a0565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516113968160288401602088016114a0565b01602801949350505050565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60006020825282518060208401526113fb8160408501602087016114a0565b601f01601f19169190910160400192915050565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60008219821115611465576114656114e7565b500190565b6000816000190483118215151615611484576114846114e7565b500290565b60008282101561149b5761149b6114e7565b500390565b60005b838110156114bb5781810151838201526020016114a3565b838111156114ca576000848401525b50505050565b6000816114df576114df6114e7565b506000190190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146106d757600080fdfea26469706673582212203255f3dbbbf3b49008eb1abb30a00c8783989e7b50781a4462516e4ea3cbf87764736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/modules/BundleController.sol/BundleController.dbg.json b/artifacts/contracts/modules/BundleController.sol/BundleController.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/modules/BundleController.sol/BundleController.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/modules/BundleController.sol/BundleController.json b/artifacts/contracts/modules/BundleController.sol/BundleController.json deleted file mode 100644 index 967269bc..00000000 --- a/artifacts/contracts/modules/BundleController.sol/BundleController.json +++ /dev/null @@ -1,693 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BundleController", - "sourceName": "contracts/modules/BundleController.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "LogBundleCapitalProvided", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "LogBundleCapitalWithdrawn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogBundleCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogBundlePayoutProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "LogBundlePolicyCollateralized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "LogBundlePolicyReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IBundle.BundleState", - "name": "oldState", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IBundle.BundleState", - "name": "newState", - "type": "uint8" - } - ], - "name": "LogBundleStateChanged", - "type": "event" - }, - { - "inputs": [], - "name": "bundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "close", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "collateralizePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner_", - "type": "address" - }, - { - "internalType": "uint256", - "name": "riskpoolId_", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "filter_", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "amount_", - "type": "uint256" - } - ], - "name": "create", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "defund", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "fund", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "getBundle", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "getCapacity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "getFilter", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "getState", - "outputs": [ - { - "internalType": "enum IBundle.BundleState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getToken", - "outputs": [ - { - "internalType": "contract BundleToken", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "getTotalValueLocked", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "lock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "releasePolicy", - "outputs": [ - { - "internalType": "uint256", - "name": "remainingCollateralAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "unburntBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "unlock", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612d1180620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063a65e2cfd116100b8578063c0e714041161007c578063c0e71404146102b6578063c397ae39146102c9578063c41a360a146102dc578063c4d66de8146102ef578063c559783e14610302578063dd4670641461032257610142565b8063a65e2cfd14610257578063b299cc261461026a578063b72674201461027d578063bb540df614610290578063bcd5349f146102a357610142565b80632d0821b71161010a5780632d0821b7146101cb5780633f5d9235146101eb57806342966c68146101fe57806344c9af28146102115780634d03f9b7146102315780636198e3391461024457610142565b80630aebeb4e1461014757806318442e631461015c5780631e0104391461017357806321df0da7146101865780632c92fb99146101ab575b600080fd5b61015a610155366004612995565b610335565b005b6008545b6040519081526020015b60405180910390f35b610160610181366004612995565b610405565b6003546001600160a01b03165b6040516001600160a01b03909116815260200161016a565b6101be6101b9366004612995565b61041c565b60405161016a9190612a5f565b6101de6101d9366004612995565b610431565b60405161016a9190612ac2565b6101606101f9366004612995565b6105ed565b61015a61020c366004612995565b610602565b61022461021f366004612995565b6107ba565b60405161016a9190612a72565b61015a61023f3660046129e6565b6107cf565b61015a610252366004612995565b610c1d565b61015a6102653660046129c5565b610c73565b61015a6102783660046129e6565b610e4a565b61015a61028b3660046129e6565b611374565b61016061029e3660046129c5565b611672565b6101606102b1366004612995565b6119d6565b6101606102c43660046127d4565b6119ff565b61015a6102d73660046129c5565b611c28565b6101936102ea366004612995565b611e00565b61015a6102fd36600461279c565b611e90565b610160610310366004612995565b60009081526007602052604090205490565b61015a610330366004612995565b61200d565b6103506e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146103895760405162461bcd60e51b815260040161038090612a80565b60405180910390fd5b600081815260056020526040902054156103f75760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031353a42554e444c455f574954485f4143544956456044820152685f504f4c494349455360b81b6064820152608401610380565b61040281600261214b565b50565b600061041082610431565b60e0015190505b919050565b606061042782610431565b6080015192915050565b610439612618565b600082815260046020908152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600380820154606084019160ff9091169081111561049d57634e487b7160e01b600052602160045260246000fd5b60038111156104bc57634e487b7160e01b600052602160045260246000fd5b81526020016004820180546104d090612c44565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc90612c44565b80156105495780601f1061051e57610100808354040283529160200191610549565b820191906000526020600020905b81548152906001019060200180831161052c57829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505090506000816101000151116105e75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3036303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b92915050565b60006105f882610431565b60c0015192915050565b61061d6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461064d5760405162461bcd60e51b815260040161038090612a80565b6000818152600460205260409020600260038083015460ff169081111561068457634e487b7160e01b600052602160045260246000fd5b146106d15760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3031363a42554e444c455f4e4f545f434c4f534544006044820152606401610380565b6007810154156107235760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4255432d3031373a42554e444c455f4841535f42414c414e43456044820152606401610380565b600354604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b50505050600181810154600090815260076020526040812080549091906107a5908490612bfd565b909155506107b6905082600361214b565b5050565b60006107c582610431565b6060015192915050565b6107ea6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461081a5760405162461bcd60e51b815260040161038090612a80565b60025460405163296586d360e21b8152600481018490526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561085f57600080fd5b505afa158015610873573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089b9190810190612860565b60008581526004602052604090209091506108b46121ac565b6001600160a01b031663d229f3b083602001516040518263ffffffff1660e01b81526004016108e591815260200190565b60206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093591906129ad565b8160010154146109935760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3031393a42554e444c455f4e4f545f494e5f5249534b6044820152631413d3d360e21b6064820152608401610380565b60008160080154116109f35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3032303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff1690811115610a1c57634e487b7160e01b600052602160045260246000fd5b14610a695760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3032313a42554e444c455f4e4f545f414354495645006044820152606401610380565b828160060154610a799190612be5565b81600501541015610acc5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4255432d3032323a43415041434954595f544f4f5f4c4f5700006044820152606401610380565b600085815260066020908152604080832087845290915290205415610b595760405162461bcd60e51b815260206004820152603b60248201527f4552524f523a4255432d3032333a494e4352454d454e54414c5f434f4c4c415460448201527f4552414c495a4154494f4e5f4e4f545f494d504c454d454e54454400000000006064820152608401610380565b82816006016000828254610b6d9190612be5565b90915550504260098201556000858152600560205260408120805460019290610b97908490612be5565b9091555050600085815260066020818152604080842088855290915282208590558201546005830154610bca9190612bfd565b6040805188815260208101889052908101869052606081018290529091507fb253c82cbaad89e2bd0fb78bc565243ccc06da1ac58b640ed94469f69b64ea549060800160405180910390a1505050505050565b610c386e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610c685760405162461bcd60e51b815260040161038090612a80565b61040281600061214b565b610c8e6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610cbe5760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154610d295760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600260038083015460ff1690811115610d5257634e487b7160e01b600052602160045260246000fd5b1415610da05760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4255432d3031323a42554e444c455f434c4f53454400000000006044820152606401610380565b81816005016000828254610db49190612be5565b9250508190555081816007016000828254610dcf9190612be5565b909155505042600982015560068101546005820154600091610df091612bfd565b90507fed746f45e63100861a9a492e092018cdce2d2645b83741099a6f8ecba2af013884335b604080519283526001600160a01b03909116602083015281018590526060810183905260800160405180910390a150505050565b610e656e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610e955760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b158015610edb57600080fd5b505afa158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f139190612910565b9050600281516002811115610f3857634e487b7160e01b600052602160045260246000fd5b1415610f915760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000848152600560205260409020546110005760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3034313a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b60008481526006602090815260408083208684529091529020548211156110825760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4255432d3034323a434f4c4c41544552414c5f494e535546464960448201526f4349454e545f464f525f504f4c49435960801b6064820152608401610380565b600084815260046020526040902060088101546110ed5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3034333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff169081111561111657634e487b7160e01b600052602160045260246000fd5b14806111485750600160038083015460ff169081111561114657634e487b7160e01b600052602160045260246000fd5b145b61119f5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4255432d3034343a42554e444c455f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b82816005015410156111f35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034353a4341504954414c5f544f4f5f4c4f570000006044820152606401610380565b82816006015410156112535760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3034363a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b6064820152608401610380565b82816007015410156112a75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034373a42414c414e43455f544f4f5f4c4f570000006044820152606401610380565b6000858152600660209081526040808320878452909152812080548592906112d0908490612bfd565b92505081905550828160050160008282546112eb9190612bfd565b92505081905550828160060160008282546113069190612bfd565b92505081905550828160070160008282546113219190612bfd565b909155505042600982015560408051868152602081018690529081018490527f34ea3fe7b8e6aa959a187f606dc076e9fb02379d613a2c9356f5a556aac9508c9060600160405180910390a15050505050565b61138f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146113bf5760405162461bcd60e51b815260040161038090612a80565b6000838152600460205260409020600881015484919061142d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3030323a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b60038181015460ff168181111561145457634e487b7160e01b600052602160045260246000fd5b141580156114895750600260038083015460ff169081111561148657634e487b7160e01b600052602160045260246000fd5b14155b6114e35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4255432d3030333a42554e444c455f4255524e45445f4f525f436044820152641313d4d15160da1b6064820152608401610380565b60025460405163a3f685f960e01b8152600481018690526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561152957600080fd5b505afa15801561153d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115619190612910565b905060028151600281111561158657634e487b7160e01b600052602160045260246000fd5b14156115df5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3033303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000868152600460205260409020600881015461164a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3033313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b8481600701600082825461165e9190612be5565b909155505042600990910155505050505050565b600061168f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146116bf5760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612910565b905060028151600281111561176257634e487b7160e01b600052602160045260246000fd5b146117ba5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3035303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b600084815260046020526040902060088101546118255760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3035313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b6000858152600560205260409020546118945760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3035323a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b6000858152600660208181526040808420888552909152909120549082015481111561190e5760405162461bcd60e51b8152602060048201526024808201527f50414e49433a4255432d3035333a554e4c4f434b5f4341504954414c5f544f4f6044820152635f42494760e01b6064820152608401610380565b600086815260056020526040812080546001929061192d908490612bfd565b90915550506000868152600660208181526040808420898552909152822082905583018054839290611960908490612bfd565b90915550504260098301556006820154600583015460009161198191612bfd565b6040805189815260208101899052908101849052606081018290529091507fa7edca0329e0f25a5a213baaa606802692de7155da4cf8a007aedf326d9180759060800160405180910390a15050505092915050565b6000806119e283610431565b90508060c001518160a001516119f89190612bfd565b9392505050565b6000611a1c6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611a4c5760405162461bcd60e51b815260040161038090612a80565b600854611a5a906001612be5565b600081815260046020526040902060088101549192509015611aca5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031303a42554e444c455f414c52454144595f45584960448201526253545360e81b6064820152608401610380565b6003546040516394bf804d60e01b8152600481018490526001600160a01b03898116602483015260009216906394bf804d90604401602060405180830381600087803b158015611b1957600080fd5b505af1158015611b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5191906129ad565b838355600283018190556001830188905560038301805460ff191690559050611b7e60048301878761268a565b50600582018490556007820184905542600880840182905560098401919091558054906000611bac83612c7f565b90915550506000878152600760205260408120805491611bcb83612c7f565b90915550508154600383015460058401546040517f2a6ff62099c2d2515017f639043aef82d6293361b7cb7bdc90854eb2f026b56c93611c159390928c928e9260ff169190612b7a565b60405180910390a1505095945050505050565b611c436e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611c735760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154611cde5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b818160060154611cee9190612be5565b8160050154101580611d1157506006810154158015611d11575081816007015410155b611d6f5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031343a43415041434954595f4f525f42414c414e43604482015268455f544f4f5f4c4f5760b81b6064820152608401610380565b81816005015410611d995781816005016000828254611d8e9190612bfd565b90915550611da19050565b600060058201555b81816007016000828254611db59190612bfd565b909155505042600982015560068101546005820154600091611dd691612bfd565b90507fe3d161947307a0d06b7ac0f3a183176acbc70afff0831bba7e694ef9f47323bd8433610e16565b600080611e0c83610431565b60409081015160035491516331a9108f60e11b8152600481018290529092506001600160a01b0390911690636352211e9060240160206040518083038186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f891906127b8565b600054610100900460ff1615808015611eb05750600054600160ff909116105b80611eca5750303b158015611eca575060005460ff166001145b611f2d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610380565b6000805460ff191660011790558015611f50576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f7a600090565b6541636365737360d01b14611fbc57611f9b6541636365737360d01b612063565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611fc46121c3565b80156107b6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6120286e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146120585760405162461bcd60e51b815260040161038090612a80565b61040281600161214b565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156120ad57600080fd5b505afa1580156120c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e591906127b8565b90506001600160a01b0381166104175760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610380565b6000612156836107ba565b90506121628183612299565b61216c83836125bb565b7f0c318b62e2d75a1d66c8fa6d64604f76f84b646cf3dadfb56e336044d57061f583828460405161219f93929190612b59565b60405180910390a1505050565b60006121be63141bdbdb60e21b612063565b905090565b600054610100900460ff1661222e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610380565b61224065506f6c69637960d01b612063565b600280546001600160a01b0319166001600160a01b03929092169190911790556122776a213ab7323632aa37b5b2b760a91b612063565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008260038111156122bb57634e487b7160e01b600052602160045260246000fd5b141561236f5760018160038111156122e357634e487b7160e01b600052602160045260246000fd5b148061230e5750600281600381111561230c57634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037303a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b6107b6565b600182600381111561239157634e487b7160e01b600052602160045260246000fd5b14156124405760008160038111156123b957634e487b7160e01b600052602160045260246000fd5b14806123e4575060028160038111156123e257634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037313a4c4f434b45445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600282600381111561246257634e487b7160e01b600052602160045260246000fd5b14156124e757600381600381111561248a57634e487b7160e01b600052602160045260246000fd5b1461236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037323a434c4f5345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600382600381111561250957634e487b7160e01b600052602160045260246000fd5b14156125635760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3037333a4255524e45445f49535f46494e414c5f535460448201526241544560e81b6064820152608401610380565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a424f432d3037343a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610380565b600082815260046020526040902060039081018054839260ff199091169060019084908111156125fb57634e487b7160e01b600052602160045260246000fd5b021790555050600090815260046020526040902042600990910155565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561265a57634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461269690612c44565b90600052602060002090601f0160209004810192826126b857600085556126fe565b82601f106126d15782800160ff198235161785556126fe565b828001600101855582156126fe579182015b828111156126fe5782358255916020019190600101906126e3565b5061270a92915061270e565b5090565b5b8082111561270a576000815560010161270f565b600082601f830112612733578081fd5b815167ffffffffffffffff81111561274d5761274d612cb0565b612760601f8201601f1916602001612bb4565b818152846020838601011115612774578283fd5b612785826020830160208701612c14565b949350505050565b80516003811061041757600080fd5b6000602082840312156127ad578081fd5b81356119f881612cc6565b6000602082840312156127c9578081fd5b81516119f881612cc6565b6000806000806000608086880312156127eb578081fd5b85356127f681612cc6565b945060208601359350604086013567ffffffffffffffff80821115612819578283fd5b818801915088601f83011261282c578283fd5b81358181111561283a578384fd5b89602082850101111561284b578384fd5b96999598505060200195606001359392505050565b600060208284031215612871578081fd5b815167ffffffffffffffff80821115612888578283fd5b9083019060c0828603121561289b578283fd5b6128a560c0612bb4565b82516128b081612cc6565b8152602083810151908201526128c86040840161278d565b60408201526060830151828111156128de578485fd5b6128ea87828601612723565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215612923578182fd5b61292c81612bb4565b90506129378361278d565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6000602082840312156129a6578081fd5b5035919050565b6000602082840312156129be578081fd5b5051919050565b600080604083850312156129d7578182fd5b50508035926020909101359150565b6000806000606084860312156129fa578283fd5b505081359360208301359350604090920135919050565b60008151808452612a29816020860160208601612c14565b601f01601f19169290920160200192915050565b60048110612a5b57634e487b7160e01b600052602160045260246000fd5b9052565b6000602082526119f86020830184612a11565b602081016105e78284612a3d565b60208082526022908201527f4552524f523a4255432d3030313a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612af56080840182612a3d565b5060808301516101408060a0850152612b12610160850183612a11565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b83815260608101612b6d6020830185612a3d565b6127856040830184612a3d565b858152602081018590526001600160a01b038416604082015260a08101612ba46060830185612a3d565b8260808301529695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612bdd57612bdd612cb0565b604052919050565b60008219821115612bf857612bf8612c9a565b500190565b600082821015612c0f57612c0f612c9a565b500390565b60005b83811015612c2f578181015183820152602001612c17565b83811115612c3e576000848401525b50505050565b600281046001821680612c5857607f821691505b60208210811415612c7957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c9357612c93612c9a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040257600080fdfea26469706673582212201077787b34730b7d2a802670a61dd1edc7acf97dd1ddeccd189c2edf0833b64664736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c8063a65e2cfd116100b8578063c0e714041161007c578063c0e71404146102b6578063c397ae39146102c9578063c41a360a146102dc578063c4d66de8146102ef578063c559783e14610302578063dd4670641461032257610142565b8063a65e2cfd14610257578063b299cc261461026a578063b72674201461027d578063bb540df614610290578063bcd5349f146102a357610142565b80632d0821b71161010a5780632d0821b7146101cb5780633f5d9235146101eb57806342966c68146101fe57806344c9af28146102115780634d03f9b7146102315780636198e3391461024457610142565b80630aebeb4e1461014757806318442e631461015c5780631e0104391461017357806321df0da7146101865780632c92fb99146101ab575b600080fd5b61015a610155366004612995565b610335565b005b6008545b6040519081526020015b60405180910390f35b610160610181366004612995565b610405565b6003546001600160a01b03165b6040516001600160a01b03909116815260200161016a565b6101be6101b9366004612995565b61041c565b60405161016a9190612a5f565b6101de6101d9366004612995565b610431565b60405161016a9190612ac2565b6101606101f9366004612995565b6105ed565b61015a61020c366004612995565b610602565b61022461021f366004612995565b6107ba565b60405161016a9190612a72565b61015a61023f3660046129e6565b6107cf565b61015a610252366004612995565b610c1d565b61015a6102653660046129c5565b610c73565b61015a6102783660046129e6565b610e4a565b61015a61028b3660046129e6565b611374565b61016061029e3660046129c5565b611672565b6101606102b1366004612995565b6119d6565b6101606102c43660046127d4565b6119ff565b61015a6102d73660046129c5565b611c28565b6101936102ea366004612995565b611e00565b61015a6102fd36600461279c565b611e90565b610160610310366004612995565b60009081526007602052604090205490565b61015a610330366004612995565b61200d565b6103506e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146103895760405162461bcd60e51b815260040161038090612a80565b60405180910390fd5b600081815260056020526040902054156103f75760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031353a42554e444c455f574954485f4143544956456044820152685f504f4c494349455360b81b6064820152608401610380565b61040281600261214b565b50565b600061041082610431565b60e0015190505b919050565b606061042782610431565b6080015192915050565b610439612618565b600082815260046020908152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600380820154606084019160ff9091169081111561049d57634e487b7160e01b600052602160045260246000fd5b60038111156104bc57634e487b7160e01b600052602160045260246000fd5b81526020016004820180546104d090612c44565b80601f01602080910402602001604051908101604052809291908181526020018280546104fc90612c44565b80156105495780601f1061051e57610100808354040283529160200191610549565b820191906000526020600020905b81548152906001019060200180831161052c57829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505090506000816101000151116105e75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3036303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b92915050565b60006105f882610431565b60c0015192915050565b61061d6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461064d5760405162461bcd60e51b815260040161038090612a80565b6000818152600460205260409020600260038083015460ff169081111561068457634e487b7160e01b600052602160045260246000fd5b146106d15760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3031363a42554e444c455f4e4f545f434c4f534544006044820152606401610380565b6007810154156107235760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4255432d3031373a42554e444c455f4841535f42414c414e43456044820152606401610380565b600354604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561076957600080fd5b505af115801561077d573d6000803e3d6000fd5b50505050600181810154600090815260076020526040812080549091906107a5908490612bfd565b909155506107b6905082600361214b565b5050565b60006107c582610431565b6060015192915050565b6107ea6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b03161461081a5760405162461bcd60e51b815260040161038090612a80565b60025460405163296586d360e21b8152600481018490526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561085f57600080fd5b505afa158015610873573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089b9190810190612860565b60008581526004602052604090209091506108b46121ac565b6001600160a01b031663d229f3b083602001516040518263ffffffff1660e01b81526004016108e591815260200190565b60206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093591906129ad565b8160010154146109935760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3031393a42554e444c455f4e4f545f494e5f5249534b6044820152631413d3d360e21b6064820152608401610380565b60008160080154116109f35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3032303a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff1690811115610a1c57634e487b7160e01b600052602160045260246000fd5b14610a695760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4255432d3032313a42554e444c455f4e4f545f414354495645006044820152606401610380565b828160060154610a799190612be5565b81600501541015610acc5760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a4255432d3032323a43415041434954595f544f4f5f4c4f5700006044820152606401610380565b600085815260066020908152604080832087845290915290205415610b595760405162461bcd60e51b815260206004820152603b60248201527f4552524f523a4255432d3032333a494e4352454d454e54414c5f434f4c4c415460448201527f4552414c495a4154494f4e5f4e4f545f494d504c454d454e54454400000000006064820152608401610380565b82816006016000828254610b6d9190612be5565b90915550504260098201556000858152600560205260408120805460019290610b97908490612be5565b9091555050600085815260066020818152604080842088855290915282208590558201546005830154610bca9190612bfd565b6040805188815260208101889052908101869052606081018290529091507fb253c82cbaad89e2bd0fb78bc565243ccc06da1ac58b640ed94469f69b64ea549060800160405180910390a1505050505050565b610c386e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610c685760405162461bcd60e51b815260040161038090612a80565b61040281600061214b565b610c8e6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610cbe5760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154610d295760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600260038083015460ff1690811115610d5257634e487b7160e01b600052602160045260246000fd5b1415610da05760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4255432d3031323a42554e444c455f434c4f53454400000000006044820152606401610380565b81816005016000828254610db49190612be5565b9250508190555081816007016000828254610dcf9190612be5565b909155505042600982015560068101546005820154600091610df091612bfd565b90507fed746f45e63100861a9a492e092018cdce2d2645b83741099a6f8ecba2af013884335b604080519283526001600160a01b03909116602083015281018590526060810183905260800160405180910390a150505050565b610e656e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614610e955760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b158015610edb57600080fd5b505afa158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f139190612910565b9050600281516002811115610f3857634e487b7160e01b600052602160045260246000fd5b1415610f915760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000848152600560205260409020546110005760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3034313a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b60008481526006602090815260408083208684529091529020548211156110825760405162461bcd60e51b815260206004820152603060248201527f4552524f523a4255432d3034323a434f4c4c41544552414c5f494e535546464960448201526f4349454e545f464f525f504f4c49435960801b6064820152608401610380565b600084815260046020526040902060088101546110ed5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3034333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b600060038083015460ff169081111561111657634e487b7160e01b600052602160045260246000fd5b14806111485750600160038083015460ff169081111561114657634e487b7160e01b600052602160045260246000fd5b145b61119f5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4255432d3034343a42554e444c455f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b82816005015410156111f35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034353a4341504954414c5f544f4f5f4c4f570000006044820152606401610380565b82816006015410156112535760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4255432d3034363a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b6064820152608401610380565b82816007015410156112a75760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4255432d3034373a42414c414e43455f544f4f5f4c4f570000006044820152606401610380565b6000858152600660209081526040808320878452909152812080548592906112d0908490612bfd565b92505081905550828160050160008282546112eb9190612bfd565b92505081905550828160060160008282546113069190612bfd565b92505081905550828160070160008282546113219190612bfd565b909155505042600982015560408051868152602081018690529081018490527f34ea3fe7b8e6aa959a187f606dc076e9fb02379d613a2c9356f5a556aac9508c9060600160405180910390a15050505050565b61138f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146113bf5760405162461bcd60e51b815260040161038090612a80565b6000838152600460205260409020600881015484919061142d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3030323a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b60038181015460ff168181111561145457634e487b7160e01b600052602160045260246000fd5b141580156114895750600260038083015460ff169081111561148657634e487b7160e01b600052602160045260246000fd5b14155b6114e35760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4255432d3030333a42554e444c455f4255524e45445f4f525f436044820152641313d4d15160da1b6064820152608401610380565b60025460405163a3f685f960e01b8152600481018690526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561152957600080fd5b505afa15801561153d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115619190612910565b905060028151600281111561158657634e487b7160e01b600052602160045260246000fd5b14156115df5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3033303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b6000868152600460205260409020600881015461164a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3033313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b8481600701600082825461165e9190612be5565b909155505042600990910155505050505050565b600061168f6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146116bf5760405162461bcd60e51b815260040161038090612a80565b60025460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d9190612910565b905060028151600281111561176257634e487b7160e01b600052602160045260246000fd5b146117ba5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3035303a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610380565b600084815260046020526040902060088101546118255760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3035313a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b6000858152600560205260409020546118945760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4255432d3035323a4e4f5f4143544956455f504f4c494349455360448201526a5f464f525f42554e444c4560a81b6064820152608401610380565b6000858152600660208181526040808420888552909152909120549082015481111561190e5760405162461bcd60e51b8152602060048201526024808201527f50414e49433a4255432d3035333a554e4c4f434b5f4341504954414c5f544f4f6044820152635f42494760e01b6064820152608401610380565b600086815260056020526040812080546001929061192d908490612bfd565b90915550506000868152600660208181526040808420898552909152822082905583018054839290611960908490612bfd565b90915550504260098301556006820154600583015460009161198191612bfd565b6040805189815260208101899052908101849052606081018290529091507fa7edca0329e0f25a5a213baaa606802692de7155da4cf8a007aedf326d9180759060800160405180910390a15050505092915050565b6000806119e283610431565b90508060c001518160a001516119f89190612bfd565b9392505050565b6000611a1c6e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611a4c5760405162461bcd60e51b815260040161038090612a80565b600854611a5a906001612be5565b600081815260046020526040902060088101549192509015611aca5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031303a42554e444c455f414c52454144595f45584960448201526253545360e81b6064820152608401610380565b6003546040516394bf804d60e01b8152600481018490526001600160a01b03898116602483015260009216906394bf804d90604401602060405180830381600087803b158015611b1957600080fd5b505af1158015611b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5191906129ad565b838355600283018190556001830188905560038301805460ff191690559050611b7e60048301878761268a565b50600582018490556007820184905542600880840182905560098401919091558054906000611bac83612c7f565b90915550506000878152600760205260408120805491611bcb83612c7f565b90915550508154600383015460058401546040517f2a6ff62099c2d2515017f639043aef82d6293361b7cb7bdc90854eb2f026b56c93611c159390928c928e9260ff169190612b7a565b60405180910390a1505095945050505050565b611c436e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b031614611c735760405162461bcd60e51b815260040161038090612a80565b60008281526004602052604090206008810154611cde5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3031333a42554e444c455f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610380565b818160060154611cee9190612be5565b8160050154101580611d1157506006810154158015611d11575081816007015410155b611d6f5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a4255432d3031343a43415041434954595f4f525f42414c414e43604482015268455f544f4f5f4c4f5760b81b6064820152608401610380565b81816005015410611d995781816005016000828254611d8e9190612bfd565b90915550611da19050565b600060058201555b81816007016000828254611db59190612bfd565b909155505042600982015560068101546005820154600091611dd691612bfd565b90507fe3d161947307a0d06b7ac0f3a183176acbc70afff0831bba7e694ef9f47323bd8433610e16565b600080611e0c83610431565b60409081015160035491516331a9108f60e11b8152600481018290529092506001600160a01b0390911690636352211e9060240160206040518083038186803b158015611e5857600080fd5b505afa158015611e6c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f891906127b8565b600054610100900460ff1615808015611eb05750600054600160ff909116105b80611eca5750303b158015611eca575060005460ff166001145b611f2d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610380565b6000805460ff191660011790558015611f50576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f7a600090565b6541636365737360d01b14611fbc57611f9b6541636365737360d01b612063565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611fc46121c3565b80156107b6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6120286e5269736b706f6f6c5365727669636560881b612063565b6001600160a01b0316336001600160a01b0316146120585760405162461bcd60e51b815260040161038090612a80565b61040281600161214b565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156120ad57600080fd5b505afa1580156120c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e591906127b8565b90506001600160a01b0381166104175760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610380565b6000612156836107ba565b90506121628183612299565b61216c83836125bb565b7f0c318b62e2d75a1d66c8fa6d64604f76f84b646cf3dadfb56e336044d57061f583828460405161219f93929190612b59565b60405180910390a1505050565b60006121be63141bdbdb60e21b612063565b905090565b600054610100900460ff1661222e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610380565b61224065506f6c69637960d01b612063565b600280546001600160a01b0319166001600160a01b03929092169190911790556122776a213ab7323632aa37b5b2b760a91b612063565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60008260038111156122bb57634e487b7160e01b600052602160045260246000fd5b141561236f5760018160038111156122e357634e487b7160e01b600052602160045260246000fd5b148061230e5750600281600381111561230c57634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037303a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b6107b6565b600182600381111561239157634e487b7160e01b600052602160045260246000fd5b14156124405760008160038111156123b957634e487b7160e01b600052602160045260246000fd5b14806123e4575060028160038111156123e257634e487b7160e01b600052602160045260246000fd5b145b61236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037313a4c4f434b45445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600282600381111561246257634e487b7160e01b600052602160045260246000fd5b14156124e757600381600381111561248a57634e487b7160e01b600052602160045260246000fd5b1461236a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4255432d3037323a434c4f5345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610380565b600382600381111561250957634e487b7160e01b600052602160045260246000fd5b14156125635760405162461bcd60e51b815260206004820152602360248201527f4552524f523a4255432d3037333a4255524e45445f49535f46494e414c5f535460448201526241544560e81b6064820152608401610380565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a424f432d3037343a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610380565b600082815260046020526040902060039081018054839260ff199091169060019084908111156125fb57634e487b7160e01b600052602160045260246000fd5b021790555050600090815260046020526040902042600990910155565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561265a57634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461269690612c44565b90600052602060002090601f0160209004810192826126b857600085556126fe565b82601f106126d15782800160ff198235161785556126fe565b828001600101855582156126fe579182015b828111156126fe5782358255916020019190600101906126e3565b5061270a92915061270e565b5090565b5b8082111561270a576000815560010161270f565b600082601f830112612733578081fd5b815167ffffffffffffffff81111561274d5761274d612cb0565b612760601f8201601f1916602001612bb4565b818152846020838601011115612774578283fd5b612785826020830160208701612c14565b949350505050565b80516003811061041757600080fd5b6000602082840312156127ad578081fd5b81356119f881612cc6565b6000602082840312156127c9578081fd5b81516119f881612cc6565b6000806000806000608086880312156127eb578081fd5b85356127f681612cc6565b945060208601359350604086013567ffffffffffffffff80821115612819578283fd5b818801915088601f83011261282c578283fd5b81358181111561283a578384fd5b89602082850101111561284b578384fd5b96999598505060200195606001359392505050565b600060208284031215612871578081fd5b815167ffffffffffffffff80821115612888578283fd5b9083019060c0828603121561289b578283fd5b6128a560c0612bb4565b82516128b081612cc6565b8152602083810151908201526128c86040840161278d565b60408201526060830151828111156128de578485fd5b6128ea87828601612723565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215612923578182fd5b61292c81612bb4565b90506129378361278d565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6000602082840312156129a6578081fd5b5035919050565b6000602082840312156129be578081fd5b5051919050565b600080604083850312156129d7578182fd5b50508035926020909101359150565b6000806000606084860312156129fa578283fd5b505081359360208301359350604090920135919050565b60008151808452612a29816020860160208601612c14565b601f01601f19169290920160200192915050565b60048110612a5b57634e487b7160e01b600052602160045260246000fd5b9052565b6000602082526119f86020830184612a11565b602081016105e78284612a3d565b60208082526022908201527f4552524f523a4255432d3030313a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6000602082528251602083015260208301516040830152604083015160608301526060830151612af56080840182612a3d565b5060808301516101408060a0850152612b12610160850183612a11565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b83815260608101612b6d6020830185612a3d565b6127856040830184612a3d565b858152602081018590526001600160a01b038416604082015260a08101612ba46060830185612a3d565b8260808301529695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612bdd57612bdd612cb0565b604052919050565b60008219821115612bf857612bf8612c9a565b500190565b600082821015612c0f57612c0f612c9a565b500390565b60005b83811015612c2f578181015183820152602001612c17565b83811115612c3e576000848401525b50505050565b600281046001821680612c5857607f821691505b60208210811415612c7957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612c9357612c93612c9a565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040257600080fdfea26469706673582212201077787b34730b7d2a802670a61dd1edc7acf97dd1ddeccd189c2edf0833b64664736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/modules/ComponentController.sol/ComponentController.dbg.json b/artifacts/contracts/modules/ComponentController.sol/ComponentController.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/modules/ComponentController.sol/ComponentController.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/modules/ComponentController.sol/ComponentController.json b/artifacts/contracts/modules/ComponentController.sol/ComponentController.json deleted file mode 100644 index 65f39967..00000000 --- a/artifacts/contracts/modules/ComponentController.sol/ComponentController.json +++ /dev/null @@ -1,600 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ComponentController", - "sourceName": "contracts/modules/ComponentController.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "archiveFromComponentOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "archiveFromInstanceOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "components", - "outputs": [ - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "decline", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "exists", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "getComponent", - "outputs": [ - { - "internalType": "contract IComponent", - "name": "component", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "componentAddress", - "type": "address" - } - ], - "name": "getComponentId", - "outputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "getComponentState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "componentState", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "getComponentType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getOracleId", - "outputs": [ - { - "internalType": "uint256", - "name": "oracleId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - } - ], - "name": "getPolicyFlow", - "outputs": [ - { - "internalType": "address", - "name": "_policyFlow", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getProductId", - "outputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - } - ], - "name": "getRequiredRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getRiskpoolId", - "outputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "oracles", - "outputs": [ - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "products", - "outputs": [ - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IComponent", - "name": "component", - "type": "address" - } - ], - "name": "propose", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "resume", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "riskpools", - "outputs": [ - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "suspend", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6121f980620000ee6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636bc607b3116100f9578063ba80b8ed11610097578063dd51c86a11610071578063dd51c86a146103a9578063e61ae297146103c9578063fabc1cbc146103dc578063ff3f3883146103ef576101a9565b8063ba80b8ed1461037b578063c4d66de81461038e578063c71e261f146103a1576101a9565b8063a054381f116100d3578063a054381f14610345578063a5c0f5a11461034d578063b759f95414610360578063ba62fbe414610373576101a9565b80636bc607b31461030c5780639f77a6051461031f578063a0355f4e14610332576101a9565b80633920200c116101665780634f27da18116101405780634f27da18146102735780634f558e791461029e5780635af89a47146102c95780635e966e45146102dc576101a9565b80633920200c1461023a578063414000b51461024d5780634b86584614610260576101a9565b806301267951146101ae57806309f63ed9146101c35780630f5da3a6146101eb578063136439dd146101fe5780632857373a146102115780632b1c7f7314610227575b600080fd5b6101c16101bc366004611f6e565b610402565b005b6101d66101d136600461201d565b610739565b60405190151581526020015b60405180910390f35b6101c16101f936600461201d565b61074e565b6101c161020c36600461201d565b610827565b6102196108fe565b6040519081526020016101e2565b610219610235366004611f6e565b61090f565b6101d661024836600461201d565b6109da565b6101c161025b36600461201d565b6109e7565b6101c161026e36600461201d565b610ac0565b61028661028136600461201d565b610b99565b6040516001600160a01b0390911681526020016101e2565b6101d66102ac36600461201d565b6000908152600260205260409020546001600160a01b0316151590565b6102196102d7366004611fe5565b610c09565b6102ff6102ea36600461201d565b60009081526005602052604090205460ff1690565b6040516101e29190612088565b6101c161031a36600461201d565b610e00565b61021961032d36600461201d565b610e51565b6101c161034036600461201d565b610e5e565b610219610f37565b61021961035b36600461201d565b610f43565b6101c161036e36600461201d565b610f50565b600c54610219565b6101d661038936600461201d565b6110d5565b6101c161039c366004611f6e565b6110e2565b610219611260565b6103bc6103b736600461201d565b61126c565b6040516101e29190612096565b6102866103d736600461201d565b611309565b6101c16103ea36600461201d565b61137c565b6102196103fd36600461201d565b611453565b61042374436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b03161461045c5760405162461bcd60e51b8152600401610453906120ef565b60405180910390fd5b6001600160a01b038116600090815260046020526040902054156104d15760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4343522d3030333a434f4d504f4e454e545f414c52454144595f60448201526545584953545360d01b6064820152608401610453565b60036000826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190611fcd565b8152602001908152602001600020546000146105b85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4343522d3030343a434f4d504f4e454e545f4e414d455f414c5260448201526a454144595f45584953545360a81b6064820152608401610453565b60006105c382611548565b90507fd9b3d18a6293c46c667fe6a98468c457078489f2e16e356bb4c77bb2e22d2016826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561061f57600080fd5b505afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106579190611fcd565b836001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c89190612001565b84846040516106da9493929190612059565b60405180910390a1816001600160a01b031663638ce0ba6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050505050565b6000610746600883611830565b90505b919050565b61077176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120a4565b6107ac81600661184d565b6040518181527f9e6d5f1811033619318d2fbe9ee7ec46c830175b39f7885248b51e0decb5837a9060200160405180910390a160006107ea82610b99565b9050806001600160a01b031663be169e7e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b61084874436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146108785760405162461bcd60e51b8152600401610453906120ef565b61088381600461184d565b6040518181527f45dbc7e529df39b8d70de83cc9e1d38c088e6ba21ab836e976f7310f1cbb8afd9060200160405180910390a160006108c182610b99565b9050806001600160a01b031663d73cd9926040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a60086118e7565b905090565b60006001600160a01b0382166109735760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3030363a434f4d504f4e454e545f414444524553535f6044820152635a45524f60e01b6064820152608401610453565b506001600160a01b038116600090815260046020526040902054806107495760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4343522d3030373a434f4d504f4e454e545f554e4b4e4f574e006044820152606401610453565b6000610746600683611830565b610a0a76496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610a3a5760405162461bcd60e51b8152600401610453906120a4565b610a4581600361184d565b6040518181527fd24597f0a62b78258ebd8c2fa52051cf673a5000d14d2fb619c91b1ed95c538a9060200160405180910390a16000610a8382610b99565b9050806001600160a01b031663a18f5ae26040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b610ae376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610b135760405162461bcd60e51b8152600401610453906120a4565b610b1e81600561184d565b6040518181527f55d2d8495549e354e6ee012c5aa183eb0e08ee2f256349afb0f7f74d1940f9b39060200160405180910390a16000610b5c82610b99565b9050806001600160a01b031663b3fca9bd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000818152600260205260409020546001600160a01b0316806107495760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030353a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b60006001826002811115610c2d57634e487b7160e01b600052602160045260246000fd5b1415610cc057600160009054906101000a90046001600160a01b03166001600160a01b031663775a40486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b505afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190611fcd565b9050610749565b6000826002811115610ce257634e487b7160e01b600052602160045260246000fd5b1415610d3657600160009054906101000a90046001600160a01b03166001600160a01b031663d49d21c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b6002826002811115610d5857634e487b7160e01b600052602160045260246000fd5b1415610dac57600160009054906101000a90046001600160a01b03166001600160a01b0316633ffdd2f36040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b60405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3031303a434f4d504f4e454e545f545950455f554e4b6044820152632727aba760e11b6064820152608401610453565b610e2174436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120ef565b60006107466006836118f1565b610e8176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610eb15760405162461bcd60e51b8152600401610453906120a4565b610ebc81600261184d565b6040518181527fd541b5f22e9e402fb32220d566405510c49372d27b4f47f1d0da1a153ea2007c9060200160405180910390a16000610efa82610b99565b9050806001600160a01b031663bd1fe5d06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a600a6118e7565b60006107466008836118f1565b610f7376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610fa35760405162461bcd60e51b8152600401610453906120a4565b610fae81600361184d565b6000610fb982610b99565b9050610fc4826109da565b1561106757806001600160a01b031663637d08f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190611f91565b6000838152600d6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b6040518281527ff8d33755281aa5d41b12a70ae3947ee164ef541d786400d733b0b89df719859e9060200160405180910390a1806001600160a01b0316631b867c636040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a83611830565b600054610100900460ff16158080156111025750600054600160ff909116105b8061111c5750303b15801561111c575060005460ff166001145b61117f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff1916600117905580156111a2576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111cc600090565b6541636365737360d01b1461120e576111ed6541636365737360d01b611460565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6112166118fd565b801561125c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061090a60066118e7565b6000611279600683611830565b1561128657506001610749565b611291600883611830565b1561129e57506000610749565b6112a9600a83611830565b156112b657506002610749565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030383a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b6000611314826109da565b6113605760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4343522d3031313a554e4b4e4f574e5f50524f445543545f49446044820152606401610453565b506000908152600d60205260409020546001600160a01b031690565b61139d74436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146113cd5760405162461bcd60e51b8152600401610453906120ef565b6113d881600361184d565b6040518181527f8e78ca4cc29c505d9901fd1582ba8584083396ce204151eddd3e008749a24fe09060200160405180910390a1600061141682610b99565b9050806001600160a01b03166359dacc6a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a836118f1565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156114aa57600080fd5b505afa1580156114be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e29190611f91565b90506001600160a01b0381166107495760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610453565b600c80546000918261155983612161565b9190505550600c54905061156e81600161184d565b60405163d0e0ba9560e01b8152600481018290526001600160a01b0383169063d0e0ba9590602401600060405180830381600087803b1580156115b057600080fd5b505af11580156115c4573d6000803e3d6000fd5b505050600082815260026020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516305f5f79f60e21b815291518695506003949391926317d7de7c926004808301939192829003018186803b15801561162d57600080fd5b505afa158015611641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116659190611fcd565b8152602001908152602001600020819055508060046000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663e0815f0d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116da57600080fd5b505afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190611fad565b156117285761172260068261196a565b50610749565b816001600160a01b0316639a82f8906040518163ffffffff1660e01b815260040160206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190611fad565b156117a95761172260088261196a565b816001600160a01b031663258d560c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117e257600080fd5b505afa1580156117f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181a9190611fad565b156107495761182a600a8261196a565b50919050565b600081815260018301602052604081205415155b90505b92915050565b60008281526005602052604090205460ff166118698183611976565b6000838152600560205260409020805483919060ff191660018360068111156118a257634e487b7160e01b600052602160045260246000fd5b02179055507fd2248d3e400f6333d5de6d43446115557cb942e75002aa7ad26f9cac9b105b1a8382846040516118da93929190612138565b60405180910390a1505050565b6000610746825490565b60006118448383611ee7565b600054610100900460ff166119685760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610453565b565b60006118448383611f1f565b81600681111561199657634e487b7160e01b600052602160045260246000fd5b8160068111156119b657634e487b7160e01b600052602160045260246000fd5b1415611a1c5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4343522d3032303a534f555243455f414e445f5441524745545f60448201526e14d510551157d2511153951250d053608a1b6064820152608401610453565b6000826006811115611a3e57634e487b7160e01b600052602160045260246000fd5b1415611ac9576001816006811115611a6657634e487b7160e01b600052602160045260246000fd5b14611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d3032313a435245415445445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b61125c565b6001826006811115611aeb57634e487b7160e01b600052602160045260246000fd5b1415611b9b576003816006811115611b1357634e487b7160e01b600052602160045260246000fd5b1480611b3e57506002816006811115611b3c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d32323a50524f504f5345445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b6002826006811115611bbd57634e487b7160e01b600052602160045260246000fd5b1415611c195760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4343522d3032333a4445434c494e45445f49535f46494e414c5f604482015264535441544560d81b6064820152608401610453565b6003826006811115611c3b57634e487b7160e01b600052602160045260246000fd5b1415611cea576004816006811115611c6357634e487b7160e01b600052602160045260246000fd5b1480611c8e57506005816006811115611c8c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032343a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6004826006811115611d0c57634e487b7160e01b600052602160045260246000fd5b1415611dbb576003816006811115611d3457634e487b7160e01b600052602160045260246000fd5b1480611d5f57506006816006811115611d5d57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032353a5041555345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6005826006811115611ddd57634e487b7160e01b600052602160045260246000fd5b1415611e8f576003816006811115611e0557634e487b7160e01b600052602160045260246000fd5b1480611e3057506006816006811115611e2e57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a4343522d3032363a53555350454e4445445f494e56414c49445f6044820152692a2920a729a4aa24a7a760b11b6064820152608401610453565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032373a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610453565b6000826000018281548110611f0c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054611f6657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611847565b506000611847565b600060208284031215611f7f578081fd5b8135611f8a8161219e565b9392505050565b600060208284031215611fa2578081fd5b8151611f8a8161219e565b600060208284031215611fbe578081fd5b81518015158114611f8a578182fd5b600060208284031215611fde578081fd5b5051919050565b600060208284031215611ff6578081fd5b8135611f8a816121b6565b600060208284031215612012578081fd5b8151611f8a816121b6565b60006020828403121561202e578081fd5b5035919050565b6007811061204557612045612188565b9052565b6003811061204557612045612188565b8481526080810161206d6020830186612049565b6001600160a01b039390931660408201526060015292915050565b602081016118478284612035565b602081016118478284612049565b6020808252602b908201527f4552524f523a4343522d3030323a4e4f545f494e5354414e43455f4f5045524160408201526a544f525f5345525649434560a81b606082015260800190565b60208082526029908201527f4552524f523a4343522d3030313a4e4f545f434f4d504f4e454e545f4f574e45604082015268525f5345525649434560b81b606082015260800190565b8381526060810161214c6020830185612035565b6121596040830184612035565b949350505050565b600060001982141561218157634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146121b357600080fd5b50565b600381106121b357600080fdfea26469706673582212207b6d7253c522420b015643d5d348125e0e3e34a0bb911fa3cf3939a9d465163864736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80636bc607b3116100f9578063ba80b8ed11610097578063dd51c86a11610071578063dd51c86a146103a9578063e61ae297146103c9578063fabc1cbc146103dc578063ff3f3883146103ef576101a9565b8063ba80b8ed1461037b578063c4d66de81461038e578063c71e261f146103a1576101a9565b8063a054381f116100d3578063a054381f14610345578063a5c0f5a11461034d578063b759f95414610360578063ba62fbe414610373576101a9565b80636bc607b31461030c5780639f77a6051461031f578063a0355f4e14610332576101a9565b80633920200c116101665780634f27da18116101405780634f27da18146102735780634f558e791461029e5780635af89a47146102c95780635e966e45146102dc576101a9565b80633920200c1461023a578063414000b51461024d5780634b86584614610260576101a9565b806301267951146101ae57806309f63ed9146101c35780630f5da3a6146101eb578063136439dd146101fe5780632857373a146102115780632b1c7f7314610227575b600080fd5b6101c16101bc366004611f6e565b610402565b005b6101d66101d136600461201d565b610739565b60405190151581526020015b60405180910390f35b6101c16101f936600461201d565b61074e565b6101c161020c36600461201d565b610827565b6102196108fe565b6040519081526020016101e2565b610219610235366004611f6e565b61090f565b6101d661024836600461201d565b6109da565b6101c161025b36600461201d565b6109e7565b6101c161026e36600461201d565b610ac0565b61028661028136600461201d565b610b99565b6040516001600160a01b0390911681526020016101e2565b6101d66102ac36600461201d565b6000908152600260205260409020546001600160a01b0316151590565b6102196102d7366004611fe5565b610c09565b6102ff6102ea36600461201d565b60009081526005602052604090205460ff1690565b6040516101e29190612088565b6101c161031a36600461201d565b610e00565b61021961032d36600461201d565b610e51565b6101c161034036600461201d565b610e5e565b610219610f37565b61021961035b36600461201d565b610f43565b6101c161036e36600461201d565b610f50565b600c54610219565b6101d661038936600461201d565b6110d5565b6101c161039c366004611f6e565b6110e2565b610219611260565b6103bc6103b736600461201d565b61126c565b6040516101e29190612096565b6102866103d736600461201d565b611309565b6101c16103ea36600461201d565b61137c565b6102196103fd36600461201d565b611453565b61042374436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b03161461045c5760405162461bcd60e51b8152600401610453906120ef565b60405180910390fd5b6001600160a01b038116600090815260046020526040902054156104d15760405162461bcd60e51b815260206004820152602660248201527f4552524f523a4343522d3030333a434f4d504f4e454e545f414c52454144595f60448201526545584953545360d01b6064820152608401610453565b60036000826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190611fcd565b8152602001908152602001600020546000146105b85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4343522d3030343a434f4d504f4e454e545f4e414d455f414c5260448201526a454144595f45584953545360a81b6064820152608401610453565b60006105c382611548565b90507fd9b3d18a6293c46c667fe6a98468c457078489f2e16e356bb4c77bb2e22d2016826001600160a01b03166317d7de7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561061f57600080fd5b505afa158015610633573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106579190611fcd565b836001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c89190612001565b84846040516106da9493929190612059565b60405180910390a1816001600160a01b031663638ce0ba6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b505af1158015610731573d6000803e3d6000fd5b505050505050565b6000610746600883611830565b90505b919050565b61077176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120a4565b6107ac81600661184d565b6040518181527f9e6d5f1811033619318d2fbe9ee7ec46c830175b39f7885248b51e0decb5837a9060200160405180910390a160006107ea82610b99565b9050806001600160a01b031663be169e7e6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b61084874436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146108785760405162461bcd60e51b8152600401610453906120ef565b61088381600461184d565b6040518181527f45dbc7e529df39b8d70de83cc9e1d38c088e6ba21ab836e976f7310f1cbb8afd9060200160405180910390a160006108c182610b99565b9050806001600160a01b031663d73cd9926040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a60086118e7565b905090565b60006001600160a01b0382166109735760405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3030363a434f4d504f4e454e545f414444524553535f6044820152635a45524f60e01b6064820152608401610453565b506001600160a01b038116600090815260046020526040902054806107495760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4343522d3030373a434f4d504f4e454e545f554e4b4e4f574e006044820152606401610453565b6000610746600683611830565b610a0a76496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610a3a5760405162461bcd60e51b8152600401610453906120a4565b610a4581600361184d565b6040518181527fd24597f0a62b78258ebd8c2fa52051cf673a5000d14d2fb619c91b1ed95c538a9060200160405180910390a16000610a8382610b99565b9050806001600160a01b031663a18f5ae26040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b610ae376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610b135760405162461bcd60e51b8152600401610453906120a4565b610b1e81600561184d565b6040518181527f55d2d8495549e354e6ee012c5aa183eb0e08ee2f256349afb0f7f74d1940f9b39060200160405180910390a16000610b5c82610b99565b9050806001600160a01b031663b3fca9bd6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000818152600260205260409020546001600160a01b0316806107495760405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030353a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b60006001826002811115610c2d57634e487b7160e01b600052602160045260246000fd5b1415610cc057600160009054906101000a90046001600160a01b03166001600160a01b031663775a40486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b505afa158015610c95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb99190611fcd565b9050610749565b6000826002811115610ce257634e487b7160e01b600052602160045260246000fd5b1415610d3657600160009054906101000a90046001600160a01b03166001600160a01b031663d49d21c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b6002826002811115610d5857634e487b7160e01b600052602160045260246000fd5b1415610dac57600160009054906101000a90046001600160a01b03166001600160a01b0316633ffdd2f36040518163ffffffff1660e01b815260040160206040518083038186803b158015610c8157600080fd5b60405162461bcd60e51b8152602060048201526024808201527f4552524f523a4343522d3031303a434f4d504f4e454e545f545950455f554e4b6044820152632727aba760e11b6064820152608401610453565b610e2174436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146107a15760405162461bcd60e51b8152600401610453906120ef565b60006107466006836118f1565b610e8176496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610eb15760405162461bcd60e51b8152600401610453906120a4565b610ebc81600261184d565b6040518181527fd541b5f22e9e402fb32220d566405510c49372d27b4f47f1d0da1a153ea2007c9060200160405180910390a16000610efa82610b99565b9050806001600160a01b031663bd1fe5d06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b600061090a600a6118e7565b60006107466008836118f1565b610f7376496e7374616e63654f70657261746f725365727669636560481b611460565b6001600160a01b0316336001600160a01b031614610fa35760405162461bcd60e51b8152600401610453906120a4565b610fae81600361184d565b6000610fb982610b99565b9050610fc4826109da565b1561106757806001600160a01b031663637d08f46040518163ffffffff1660e01b815260040160206040518083038186803b15801561100257600080fd5b505afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190611f91565b6000838152600d6020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b6040518281527ff8d33755281aa5d41b12a70ae3947ee164ef541d786400d733b0b89df719859e9060200160405180910390a1806001600160a01b0316631b867c636040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a83611830565b600054610100900460ff16158080156111025750600054600160ff909116105b8061111c5750303b15801561111c575060005460ff166001145b61117f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610453565b6000805460ff1916600117905580156111a2576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111cc600090565b6541636365737360d01b1461120e576111ed6541636365737360d01b611460565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6112166118fd565b801561125c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600061090a60066118e7565b6000611279600683611830565b1561128657506001610749565b611291600883611830565b1561129e57506000610749565b6112a9600a83611830565b156112b657506002610749565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a4343522d3030383a494e56414c49445f434f4d504f4e454e545f604482015261125160f21b6064820152608401610453565b6000611314826109da565b6113605760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4343522d3031313a554e4b4e4f574e5f50524f445543545f49446044820152606401610453565b506000908152600d60205260409020546001600160a01b031690565b61139d74436f6d706f6e656e744f776e65725365727669636560581b611460565b6001600160a01b0316336001600160a01b0316146113cd5760405162461bcd60e51b8152600401610453906120ef565b6113d881600361184d565b6040518181527f8e78ca4cc29c505d9901fd1582ba8584083396ce204151eddd3e008749a24fe09060200160405180910390a1600061141682610b99565b9050806001600160a01b03166359dacc6a6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561071d57600080fd5b6000610746600a836118f1565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156114aa57600080fd5b505afa1580156114be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e29190611f91565b90506001600160a01b0381166107495760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610453565b600c80546000918261155983612161565b9190505550600c54905061156e81600161184d565b60405163d0e0ba9560e01b8152600481018290526001600160a01b0383169063d0e0ba9590602401600060405180830381600087803b1580156115b057600080fd5b505af11580156115c4573d6000803e3d6000fd5b505050600082815260026020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516305f5f79f60e21b815291518695506003949391926317d7de7c926004808301939192829003018186803b15801561162d57600080fd5b505afa158015611641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116659190611fcd565b8152602001908152602001600020819055508060046000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816001600160a01b031663e0815f0d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156116da57600080fd5b505afa1580156116ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117129190611fad565b156117285761172260068261196a565b50610749565b816001600160a01b0316639a82f8906040518163ffffffff1660e01b815260040160206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190611fad565b156117a95761172260088261196a565b816001600160a01b031663258d560c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156117e257600080fd5b505afa1580156117f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181a9190611fad565b156107495761182a600a8261196a565b50919050565b600081815260018301602052604081205415155b90505b92915050565b60008281526005602052604090205460ff166118698183611976565b6000838152600560205260409020805483919060ff191660018360068111156118a257634e487b7160e01b600052602160045260246000fd5b02179055507fd2248d3e400f6333d5de6d43446115557cb942e75002aa7ad26f9cac9b105b1a8382846040516118da93929190612138565b60405180910390a1505050565b6000610746825490565b60006118448383611ee7565b600054610100900460ff166119685760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610453565b565b60006118448383611f1f565b81600681111561199657634e487b7160e01b600052602160045260246000fd5b8160068111156119b657634e487b7160e01b600052602160045260246000fd5b1415611a1c5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a4343522d3032303a534f555243455f414e445f5441524745545f60448201526e14d510551157d2511153951250d053608a1b6064820152608401610453565b6000826006811115611a3e57634e487b7160e01b600052602160045260246000fd5b1415611ac9576001816006811115611a6657634e487b7160e01b600052602160045260246000fd5b14611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d3032313a435245415445445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b61125c565b6001826006811115611aeb57634e487b7160e01b600052602160045260246000fd5b1415611b9b576003816006811115611b1357634e487b7160e01b600052602160045260246000fd5b1480611b3e57506002816006811115611b3c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a4343522d32323a50524f504f5345445f494e56414c49445f545260448201526720a729a4aa24a7a760c11b6064820152608401610453565b6002826006811115611bbd57634e487b7160e01b600052602160045260246000fd5b1415611c195760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4343522d3032333a4445434c494e45445f49535f46494e414c5f604482015264535441544560d81b6064820152608401610453565b6003826006811115611c3b57634e487b7160e01b600052602160045260246000fd5b1415611cea576004816006811115611c6357634e487b7160e01b600052602160045260246000fd5b1480611c8e57506005816006811115611c8c57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032343a4143544956455f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6004826006811115611d0c57634e487b7160e01b600052602160045260246000fd5b1415611dbb576003816006811115611d3457634e487b7160e01b600052602160045260246000fd5b1480611d5f57506006816006811115611d5d57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032353a5041555345445f494e56414c49445f5452416044820152662729a4aa24a7a760c91b6064820152608401610453565b6005826006811115611ddd57634e487b7160e01b600052602160045260246000fd5b1415611e8f576003816006811115611e0557634e487b7160e01b600052602160045260246000fd5b1480611e3057506006816006811115611e2e57634e487b7160e01b600052602160045260246000fd5b145b611ac45760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a4343522d3032363a53555350454e4445445f494e56414c49445f6044820152692a2920a729a4aa24a7a760b11b6064820152608401610453565b60405162461bcd60e51b815260206004820152602760248201527f4552524f523a4343522d3032373a494e495449414c5f53544154455f4e4f545f6044820152661210539113115160ca1b6064820152608401610453565b6000826000018281548110611f0c57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054611f6657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611847565b506000611847565b600060208284031215611f7f578081fd5b8135611f8a8161219e565b9392505050565b600060208284031215611fa2578081fd5b8151611f8a8161219e565b600060208284031215611fbe578081fd5b81518015158114611f8a578182fd5b600060208284031215611fde578081fd5b5051919050565b600060208284031215611ff6578081fd5b8135611f8a816121b6565b600060208284031215612012578081fd5b8151611f8a816121b6565b60006020828403121561202e578081fd5b5035919050565b6007811061204557612045612188565b9052565b6003811061204557612045612188565b8481526080810161206d6020830186612049565b6001600160a01b039390931660408201526060015292915050565b602081016118478284612035565b602081016118478284612049565b6020808252602b908201527f4552524f523a4343522d3030323a4e4f545f494e5354414e43455f4f5045524160408201526a544f525f5345525649434560a81b606082015260800190565b60208082526029908201527f4552524f523a4343522d3030313a4e4f545f434f4d504f4e454e545f4f574e45604082015268525f5345525649434560b81b606082015260800190565b8381526060810161214c6020830185612035565b6121596040830184612035565b949350505050565b600060001982141561218157634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146121b357600080fd5b50565b600381106121b357600080fdfea26469706673582212207b6d7253c522420b015643d5d348125e0e3e34a0bb911fa3cf3939a9d465163864736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/modules/LicenseController.sol/LicenseController.dbg.json b/artifacts/contracts/modules/LicenseController.sol/LicenseController.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/modules/LicenseController.sol/LicenseController.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/modules/LicenseController.sol/LicenseController.json b/artifacts/contracts/modules/LicenseController.sol/LicenseController.json deleted file mode 100644 index 2d72e3ad..00000000 --- a/artifacts/contracts/modules/LicenseController.sol/LicenseController.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "LicenseController", - "sourceName": "contracts/modules/LicenseController.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "productAddress", - "type": "address" - } - ], - "name": "getAuthorizationStatus", - "outputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "isAuthorized", - "type": "bool" - }, - { - "internalType": "address", - "name": "policyFlow", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b610630806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063d3e9c31414610050575b600080fd5b61004e61004936600461056c565b61008b565b005b61006361005e36600461056c565b610215565b6040805193845291151560208401526001600160a01b03169082015260600160405180910390f35b600054610100900460ff16158080156100ab5750600054600160ff909116105b806100cc57506100ba30610329565b1580156100cc575060005460ff166001145b6101345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610157576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610181600090565b6541636365737360d01b146101c3576101a26541636365737360d01b61033c565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101cb610424565b8015610211576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600254604051632b1c7f7360e01b81526001600160a01b0383811660048301526000928392839290911690632b1c7f739060240160206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029991906105ca565b92506102a4836104c6565b60025460405163e61ae29760e01b8152600481018690529193506001600160a01b03169063e61ae2979060240160206040518083038186803b1580156102e957600080fd5b505afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610321919061058f565b929491935050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061058f565b90506001600160a01b0381166103375760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161012b565b600054610100900460ff1661048f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161012b565b6104a46810dbdb5c1bdb995b9d60ba1b61033c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006003600254604051635e966e4560e01b8152600481018590526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054691906105ab565b600681111561056557634e487b7160e01b600052602160045260246000fd5b1492915050565b60006020828403121561057d578081fd5b8135610588816105e2565b9392505050565b6000602082840312156105a0578081fd5b8151610588816105e2565b6000602082840312156105bc578081fd5b815160078110610588578182fd5b6000602082840312156105db578081fd5b5051919050565b6001600160a01b03811681146105f757600080fd5b5056fea2646970667358221220cea7b50d1ccd58df7ad365e06063b9cd6fc1a8baf876def1c3f83285ceb5b10164736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063d3e9c31414610050575b600080fd5b61004e61004936600461056c565b61008b565b005b61006361005e36600461056c565b610215565b6040805193845291151560208401526001600160a01b03169082015260600160405180910390f35b600054610100900460ff16158080156100ab5750600054600160ff909116105b806100cc57506100ba30610329565b1580156100cc575060005460ff166001145b6101345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610157576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610181600090565b6541636365737360d01b146101c3576101a26541636365737360d01b61033c565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101cb610424565b8015610211576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b600254604051632b1c7f7360e01b81526001600160a01b0383811660048301526000928392839290911690632b1c7f739060240160206040518083038186803b15801561026157600080fd5b505afa158015610275573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029991906105ca565b92506102a4836104c6565b60025460405163e61ae29760e01b8152600481018690529193506001600160a01b03169063e61ae2979060240160206040518083038186803b1580156102e957600080fd5b505afa1580156102fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610321919061058f565b929491935050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061058f565b90506001600160a01b0381166103375760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161012b565b600054610100900460ff1661048f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161012b565b6104a46810dbdb5c1bdb995b9d60ba1b61033c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60006003600254604051635e966e4560e01b8152600481018590526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054691906105ab565b600681111561056557634e487b7160e01b600052602160045260246000fd5b1492915050565b60006020828403121561057d578081fd5b8135610588816105e2565b9392505050565b6000602082840312156105a0578081fd5b8151610588816105e2565b6000602082840312156105bc578081fd5b815160078110610588578182fd5b6000602082840312156105db578081fd5b5051919050565b6001600160a01b03811681146105f757600080fd5b5056fea2646970667358221220cea7b50d1ccd58df7ad365e06063b9cd6fc1a8baf876def1c3f83285ceb5b10164736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/modules/PolicyController.sol/PolicyController.dbg.json b/artifacts/contracts/modules/PolicyController.sol/PolicyController.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/modules/PolicyController.sol/PolicyController.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/modules/PolicyController.sol/PolicyController.json b/artifacts/contracts/modules/PolicyController.sol/PolicyController.json deleted file mode 100644 index 96aee761..00000000 --- a/artifacts/contracts/modules/PolicyController.sol/PolicyController.json +++ /dev/null @@ -1,1333 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "PolicyController", - "sourceName": "contracts/modules/PolicyController.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "LogApplicationCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogApplicationDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumAmountOld", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - } - ], - "name": "LogApplicationPremiumAdjusted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogApplicationRevoked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumInsuredAmountOld", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "LogApplicationSumInsuredAdjusted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogApplicationUnderwritten", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "LogClaimClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "confirmedAmount", - "type": "uint256" - } - ], - "name": "LogClaimConfirmed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - } - ], - "name": "LogClaimCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "LogClaimDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IPolicy.PolicyFlowState", - "name": "state", - "type": "uint8" - } - ], - "name": "LogMetadataCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IPolicy.PolicyFlowState", - "name": "state", - "type": "uint8" - } - ], - "name": "LogMetadataStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogPayoutCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "LogPayoutProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogPolicyClosed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogPolicyCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "LogPolicyExpired", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumExpectedAmountOld", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "premiumExpectedAmount", - "type": "uint256" - } - ], - "name": "LogPolicyPremiumAdjusted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogPremiumCollected", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "expectedPremiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "adjustPremiumSumInsured", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "applications", - "outputs": [ - { - "internalType": "enum IPolicy.ApplicationState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "claims", - "outputs": [ - { - "internalType": "enum IPolicy.ClaimState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paidAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "closeClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "closePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "collectPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "confirmedAmount", - "type": "uint256" - } - ], - "name": "confirmClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "createApplication", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "createClaim", - "outputs": [ - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "createPayout", - "outputs": [ - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "createPolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "createPolicyFlow", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "declineApplication", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "declineClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "expirePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "getApplication", - "outputs": [ - { - "components": [ - { - "internalType": "enum IPolicy.ApplicationState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Application", - "name": "application", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "getClaim", - "outputs": [ - { - "components": [ - { - "internalType": "enum IPolicy.ClaimState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paidAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Claim", - "name": "claim", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "getMetadata", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "enum IPolicy.PolicyFlowState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Metadata", - "name": "_metadata", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "getNumberOfClaims", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfClaims", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "getNumberOfPayouts", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfPayouts", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "getPayout", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "enum IPolicy.PayoutState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Payout", - "name": "payout", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "getPolicy", - "outputs": [ - { - "components": [ - { - "internalType": "enum IPolicy.PolicyState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumExpectedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "premiumPaidAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "claimsCount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "openClaimsCount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutMaxAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Policy", - "name": "policy", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "metadata", - "outputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "enum IPolicy.PolicyFlowState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "payoutCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "payouts", - "outputs": [ - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "enum IPolicy.PayoutState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "policies", - "outputs": [ - { - "internalType": "enum IPolicy.PolicyState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumExpectedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "premiumPaidAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "claimsCount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "openClaimsCount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutMaxAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "processIds", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "revokeApplication", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "underwriteApplication", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6147c880620000f46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063a1814a1a1161010f578063c4d66de8116100a2578063e3ebdea511610071578063e3ebdea5146104d8578063eb96cbed146104eb578063ec935668146104fe578063fe64372b14610511576101e5565b8063c4d66de814610420578063cef58f1314610433578063db42b77b14610453578063ddbfd8ef14610466576101e5565b8063adcadb28116100de578063adcadb28146103c7578063b1e25988146103da578063bc506f64146103ed578063be183b1114610400576101e5565b8063a1814a1a1461036c578063a3f685f91461037f578063a427056e1461039f578063a5961b4c146103a7576101e5565b80634e02c63f116101875780637f22c2d9116101565780637f22c2d9146103015780637f29dba21461032157806380f2122c146103345780639e81f96a14610359576101e5565b80634e02c63f146102a35780635c955288146102b65780636780336e146102c95780637122ba06146102dc576101e5565b806347e3b138116101c357806347e3b138146102455780634c14ccc2146102585780634cafa1211461026b5780634cda0de914610290576101e5565b8063296d6c7d146101ea57806330a73da5146101ff578063357f030a14610212575b600080fd5b6101fd6101f83660046141f4565b610524565b005b6101fd61020d366004614266565b6107a6565b6102326102203660046141f4565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b6101fd6102533660046141f4565b610b85565b6101fd6102663660046141f4565b610d4a565b61027e6102793660046141f4565b61104f565b60405161023c9695949392919061440e565b6101fd61029e36600461420c565b611113565b6101fd6102b1366004614266565b6113bb565b6101fd6102c43660046141f4565b611702565b6101fd6102d7366004614291565b6118c3565b6102ef6102ea3660046141f4565b611bac565b60405161023c969594939291906143a4565b61031461030f36600461420c565b611bea565b60405161023c91906144fe565b6101fd61032f36600461420c565b611db2565b61034761034236600461420c565b612157565b60405161023c96959493929190614660565b61027e61036736600461420c565b612196565b61023261037a36600461417a565b6121d5565b61039261038d3660046141f4565b612576565b60405161023c91906145f3565b600854610232565b6103ba6103b53660046141f4565b6126e0565b60405161023c9190614563565b6101fd6103d53660046141f4565b6128a6565b6102326103e83660046141f4565b612b6b565b6103146103fb3660046141f4565b612b80565b61023261040e3660046141f4565b60009081526007602052604090205490565b6101fd61042e36600461413b565b612d40565b61044661044136600461420c565b612ebe565b60405161023c91906145b0565b610232610461366004614291565b613080565b6104c36104743660046141f4565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460089097015460ff90961697949693959293919290919089565b60405161023c9998979695949392919061443c565b6101fd6104e636600461420c565b61346c565b6101fd6104f93660046141f4565b61358f565b61023261050c36600461422d565b6137fe565b6101fd61051f36600461420c565b613b0e565b65506f6c69637960d01b61053781613e6b565b6001600160a01b0316306001600160a01b0316146105705760405162461bcd60e51b815260040161056790614486565b60405180910390fd5b61058a6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146105ba5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546106275760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031393a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546106975760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032303a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff1660038111156106bd57634e487b7160e01b600052602160045260246000fd5b1461071a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032313a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff1990811660031782554260058084018290556002858101805490941617928390558401556040516000805160206147738339815191529161076491879160ff16906143f1565b60405180910390a16040518481527fd38021ec2bcd4d63a80341a60be320a74cd71c01b04a4f7aac74ef6593d8e5e3906020015b60405180910390a150505050565b65506f6c69637960d01b6107b981613e6b565b6001600160a01b0316306001600160a01b0316146107e95760405162461bcd60e51b815260040161056790614486565b6108036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146108335760405162461bcd60e51b8152600401610567906144bd565b600084815260036020526040902060048101541580159061087757506002815460ff16600381111561087557634e487b7160e01b600052602160045260246000fd5b145b6108d45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032343a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b80600201548311156109475760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f432d3032363a4150504c49434154494f4e5f53554d5f494e60448201527514d554915117d25390d4915054d157d253959053125160521b6064820152608401610567565b600085815260046020526040902060078101541580159061098b57506000815460ff16600281111561098957634e487b7160e01b600052602160045260246000fd5b145b6109e35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032373a504f4c4943595f4143434553535f494e564160448201526213125160ea1b6064820152608401610567565b6000851180156109f7575080600201548510155b8015610a0257508385105b610a605760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f432d3032353a4150504c49434154494f4e5f5052454d49556044820152681357d253959053125160ba1b6064820152608401610567565b81600201548414610acc57600282015460408051888152602081019290925281018590527fa749e55ffd0f07193966d7c449d6238c6514c6b3eb5e8ab21b3ea9d94a5c21789060600160405180910390a160028201849055426005808401829055820185905560088201555b81600101548514610b7d57600182015460408051888152602081019290925281018690527f23e948a9dc44669750ea8ea8b7ca46c359534bd0f04e9260408a7e9bf8c7a5569060600160405180910390a1600182810186905542600584015581015460408051888152602081019290925281018690527ff392e5df923d5d0b6d6c6301c53c86e1c75f58c1c637200c3193dd589e5c8a019060600160405180910390a1600181018590554260088201555b505050505050565b65506f6c69637960d01b610b9881613e6b565b6001600160a01b0316306001600160a01b031614610bc85760405162461bcd60e51b815260040161056790614486565b610be26d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610c125760405162461bcd60e51b8152600401610567906144bd565b60008281526004602052604090206007810154610c7d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032383a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff166002811115610ca357634e487b7160e01b600052602160045260246000fd5b14610d005760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032393a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660011781554260088201556040518381527ff1950800da95964fdd42242722ccdfe6d9dc13d5d4dc7eafefeab77373e3c9ec906020015b60405180910390a1505050565b65506f6c69637960d01b610d5d81613e6b565b6001600160a01b0316306001600160a01b031614610d8d5760405162461bcd60e51b815260040161056790614486565b610da76d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610dd75760405162461bcd60e51b8152600401610567906144bd565b6000828152600360208190526040808320815160c08101909252805491929091839160ff90911690811115610e1c57634e487b7160e01b600052602160045260246000fd5b6003811115610e3b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054610e63906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8f906146b8565b8015610edc5780601f10610eb157610100808354040283529160200191610edc565b820191906000526020600020905b815481529060010190602001808311610ebf57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151118015610f2f5750600281516003811115610f2d57634e487b7160e01b600052602160045260246000fd5b145b610f8c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032323a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b6000838152600460205260409020600781015415610ff85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032333a504f4c4943595f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b805460ff191681556020828101516001830155604080840151600584015542600784018190556008840155518581527f0b979eae60510a4a065f45ddd8a0c9af7ba4d241e253b17bdee3043c2fb992e99101610798565b6003602081905260009182526040909120805460018201546002830154938301805460ff9093169491939192611084906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546110b0906146b8565b80156110fd5780601f106110d2576101008083540402835291602001916110fd565b820191906000526020600020905b8154815290600101906020018083116110e057829003601f168201915b5050505050908060040154908060050154905086565b65506f6c69637960d01b61112681613e6b565b6001600160a01b0316306001600160a01b0316146111565760405162461bcd60e51b815260040161056790614486565b6111706d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146111a05760405162461bcd60e51b8152600401610567906144bd565b6000838152600460205260409020600781015461120b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3036303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116112705760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3036313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b6000848152600560209081526040808320868452909152902060048101546112e55760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3036323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561130b57634e487b7160e01b600052602160045260246000fd5b146113625760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3036333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff191660021781554260058201819055600883015560408051868152602081018690527f5ea526dbb5ca484c7716dcc966fdfc289530cc595ebc9ec7bfda25d010d1a2fc91015b60405180910390a15050505050565b65506f6c69637960d01b6113ce81613e6b565b6001600160a01b0316306001600160a01b0316146113fe5760405162461bcd60e51b815260040161056790614486565b6114186d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146114485760405162461bcd60e51b8152600401610567906144bd565b600084815260046020526040902060078101546114b35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3035303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116115185760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b806005015483826006015461152d9190614672565b111561158c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035323a5041594f55545f4d41585f414d4f554e545f604482015267115610d15151115160c21b6064820152608401610567565b6000858152600560209081526040808320878452909152902060048101546116015760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3035333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561162757634e487b7160e01b600052602160045260246000fd5b1461167e5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3035343a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff19166001908117825581018490554260058201556006820180548591906000906116ad908490614672565b909155505042600883015560408051878152602081018790529081018590527fa39b09b76ccf7db94096e2c5a058215f9b2302b85de726e37edb99efdb6fb2c6906060015b60405180910390a1505050505050565b65506f6c69637960d01b61171581613e6b565b6001600160a01b0316306001600160a01b0316146117455760405162461bcd60e51b815260040161056790614486565b61175f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461178f5760405162461bcd60e51b8152600401610567906144bd565b600082815260036020526040902060048101546117ff5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031373a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561182557634e487b7160e01b600052602160045260246000fd5b146118825760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031383a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660021781554260058201556040518381527f67f56ed3a623b73566d40f65cba052fc97ca9df8afb800a885c2a4fe0228c1f890602001610d3d565b65506f6c69637960d01b6118d681613e6b565b6001600160a01b0316306001600160a01b0316146119065760405162461bcd60e51b815260040161056790614486565b6119206d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146119505760405162461bcd60e51b8152600401610567906144bd565b600086815260026020526040902060048101546119bd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b6000878152600360205260409020600481015415611a2e5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031313a4150504c49434154494f4e5f414c52454144604482015267595f45584953545360c01b6064820152608401610567565b60008711611a885760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3031323a5052454d49554d5f414d4f554e545f5a45526044820152604f60f81b6064820152608401610567565b868611611aea5760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a504f432d3031333a53554d5f494e53555245445f414d4f554e5460448201526917d513d3d7d4d350531360b21b6064820152608401610567565b805460ff191681556001810187905560028101869055611b0e60038201868661405b565b504260048201819055600580830182905560028401805460ff1916600117908190559084019190915560405160008051602061477383398151915291611b59918b9160ff16906143f1565b60405180910390a160408051898152602081018990529081018790527f71b9122c9f32160952b44f0e76b53474f59a5cd9b98ccdfb5ff20672fcae34129060600160405180910390a15050505050505050565b600260208190526000918252604090912080546001820154928201546003830180546001600160a01b03909316949360ff90921692611084906146b8565b611c246040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600083815260056020908152604080832085845290915290819020815160c081019092528054829060ff166003811115611c6e57634e487b7160e01b600052602160045260246000fd5b6003811115611c8d57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054611cb5906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce1906146b8565b8015611d2e5780601f10611d0357610100808354040283529160200191611d2e565b820191906000526020600020905b815481529060010190602001808311611d1157829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3130333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b92915050565b65506f6c69637960d01b611dc581613e6b565b6001600160a01b0316306001600160a01b031614611df55760405162461bcd60e51b815260040161056790614486565b611e0f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614611e3f5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154611eaa5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3037303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411611f0f5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3037313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260056020908152604080832086845290915290206004810154611f845760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3037323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff166003811115611faa57634e487b7160e01b600052602160045260246000fd5b1480611fd957506002815460ff166003811115611fd757634e487b7160e01b600052602160045260246000fd5b145b61202f5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3037333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b6001815460ff16600381111561205557634e487b7160e01b600052602160045260246000fd5b148015612069575080600201548160010154145b8061209757506002815460ff16600381111561209557634e487b7160e01b600052602160045260246000fd5b145b6120f35760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3037343a434c41494d5f574954485f554e504149445f6044820152665041594f55545360c81b6064820152608401610567565b805460ff19166003178155426005820155600482018054906000612116836146a1565b909155505042600883015560408051868152602081018690527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016113ac565b60066020908152600092835260408084209091529082529020805460018201546002830154600384018054939460ff90931693919291611084906146b8565b6005602090815260009283526040808420909152908252902080546001820154600283015460038401805460ff909416949293919291611084906146b8565b600065506f6c69637960d01b6121ea81613e6b565b6001600160a01b0316306001600160a01b03161461221a5760405162461bcd60e51b815260040161056790614486565b6122346d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146122645760405162461bcd60e51b8152600401610567906144bd565b6001600160a01b0386166122ba5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a504f4c2d3030313a494e56414c49445f4f574e455200000000006044820152606401610567565b600954604051630e48080360e21b8152600481018790526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122fe57600080fd5b505afa158015612312573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233691906141d4565b6123825760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3030323a494e56414c49445f50524f445543540000006044820152606401610567565b600954604051635e966e4560e01b8152600481018790526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156123c757600080fd5b505afa1580156123db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ff91906142f0565b600681111561241e57634e487b7160e01b600052602160045260246000fd5b1461246b5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030333a50524f445543545f4e4f545f4143544956456044820152606401610567565b612473613f53565b6000818152600260205260409020600481015491935090156124e55760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3030343a4d455441444154415f414c52454144595f45604482015264584953545360d81b6064820152608401610567565b80546001600160a01b0319166001600160a01b0388161781556001810186905560028101805460ff1916905561251f60038201868661405b565b50426004820181905560058201556040517f19c55cd86637a14907bc12064e09bf8dce1ecda9e5d96cae81099f4b8ae1d3c99061256490899086908a9060009061436e565b60405180910390a15050949350505050565b6125c6604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008281526004602052604090819020815161012081019092528054829060ff16600281111561260657634e487b7160e01b600052602160045260246000fd5b600281111561262557634e487b7160e01b600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481525050905060008160e00151116126db5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130323a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b919050565b6127196040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600082815260026020818152604092839020835160c08101855281546001600160a01b0316815260018201549281019290925280830154919390929084019160ff169081111561277957634e487b7160e01b600052602160045260246000fd5b600281111561279857634e487b7160e01b600052602160045260246000fd5b81526020016003820180546127ac906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546127d8906146b8565b80156128255780601f106127fa57610100808354040283529160200191612825565b820191906000526020600020905b81548152906001019060200180831161280857829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3130303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b65506f6c69637960d01b6128b981613e6b565b6001600160a01b0316306001600160a01b0316146128e95760405162461bcd60e51b815260040161056790614486565b6129036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146129335760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546129a05760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3033303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b60008381526004602052604090206007810154612a0b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3033313a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6001815460ff166002811115612a3157634e487b7160e01b600052602160045260246000fd5b14612a895760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3033323a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610567565b600481015415612ae75760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3033333a504f4c4943595f4841535f4f50454e5f434c60448201526341494d5360e01b6064820152608401610567565b8054600260ff19918216811783554260088401819055848201805490931690911791829055600584015560405160008051602061477383398151915291612b3391879160ff16906143f1565b60405180910390a16040518481527f47682aa751cfef9683dc926c2e0547bf1f6345215278ea52b866564017ac9b9c90602001610798565b6000612b7682612576565b6060015192915050565b612bba6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600082815260036020819052604091829020825160c0810190935280549091839160ff1690811115612bfc57634e487b7160e01b600052602160045260246000fd5b6003811115612c1b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054612c43906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612c6f906146b8565b8015612cbc5780601f10612c9157610100808354040283529160200191612cbc565b820191906000526020600020905b815481529060010190602001808311612c9f57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3130313a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b600054610100900460ff1615808015612d605750600054600160ff909116105b80612d7a5750303b158015612d7a575060005460ff166001145b612ddd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610567565b6000805460ff191660011790558015612e00576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055612e2a600090565b6541636365737360d01b14612e6c57612e4b6541636365737360d01b613e6b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b612e74613fb9565b8015612eba576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b612ef86040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6000838152600660209081526040808320858452825291829020825160c0810190935280548352600180820154919284019160ff1690811115612f4b57634e487b7160e01b600052602160045260246000fd5b6001811115612f6a57634e487b7160e01b600052602160045260246000fd5b815260200160028201548152602001600382018054612f88906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612fb4906146b8565b80156130015780601f10612fd657610100808354040283529160200191613001565b820191906000526020600020905b815481529060010190602001808311612fe457829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130343a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600065506f6c69637960d01b61309581613e6b565b6001600160a01b0316306001600160a01b0316146130c55760405162461bcd60e51b815260040161056790614486565b6130df6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461310f5760405162461bcd60e51b8152600401610567906144bd565b6000878152600460205260409020600781015461317a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008881526005602090815260408083208a8452909152902060048101546131ef5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3038313a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff16600381111561321557634e487b7160e01b600052602160045260246000fd5b1461326c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3038323a434c41494d5f4e4f545f434f4e4649524d456044820152601160fa1b6064820152608401610567565b600087116132cd5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3038333a5041594f55545f414d4f554e545f5a45524f60448201526717d253959053125160c21b6064820152608401610567565b80600101548782600201546132e29190614672565b111561333c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038343a5041594f55545f414d4f554e545f544f4f5f60448201526242494760e81b6064820152608401610567565b60008981526007602090815260408083205460068352818420818552909252909120600481015491955090156133c05760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038353a5041594f55545f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b888155600281018890556133d860038201888861405b565b5060018101805460ff191690554260048201819055600582015560008a815260076020526040812080549161340c836146f3565b9091555050426008840155604080518b8152602081018b9052908101869052606081018990527f223e38f266bc310bbf02cc4e1bb6c706af5c7f9710b3edfe17a12f09e44e84a79060800160405180910390a15050505095945050505050565b600082815260046020526040902060078101546134d75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3131303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b80600101548282600201546134ec9190614672565b111561353a5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a504f432d3131313a414d4f554e545f544f4f5f424947000000006044820152606401610567565b8181600201600082825461354e9190614672565b909155505042600882015560408051848152602081018490527f9bb11018b2a92c286be2bb51bd0ed127dadef34cddc2b557270d0f81873e00569101610d3d565b65506f6c69637960d01b6135a281613e6b565b6001600160a01b0316306001600160a01b0316146135d25760405162461bcd60e51b815260040161056790614486565b6135ec6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461361c5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546136895760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031343a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546136f95760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031353a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561371f57634e487b7160e01b600052602160045260246000fd5b1461377c5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031363a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff199081166001178255426005808401829055600285810180549094161792839055840155604051600080516020614773833981519152916137c691879160ff16906143f1565b60405180910390a16040518481527fbf8b120fb15c8c02daac643f4b8d8542610c41f75bda1d3efcc3f7017c9389fc90602001610798565b600065506f6c69637960d01b61381381613e6b565b6001600160a01b0316306001600160a01b0316146138435760405162461bcd60e51b815260040161056790614486565b61385d6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461388d5760405162461bcd60e51b8152600401610567906144bd565b600086815260046020526040902060078101546138f85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3034303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff16600281111561391e57634e487b7160e01b600052602160045260246000fd5b1461396b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a504f432d3034313a504f4c4943595f4e4f545f414354495645006044820152606401610567565b80600501548682600601546139809190614672565b11156139e45760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a504f432d3034323a434c41494d5f414d4f554e545f455843454560448201526c1114d7d3505617d4105653d555609a1b6064820152608401610567565b60038101546000888152600560209081526040808320848452909152902060048101549194509015613a635760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3034333a434c41494d5f414c52454144595f45584953604482015261545360f01b6064820152608401610567565b805460ff1916815560018101879055613a8060038201878761405b565b5042600482018190556005820155600382018054906000613aa0836146f3565b9091555050600482018054906000613ab7836146f3565b909155505042600883015560408051898152602081018690529081018890527f66d0839d281a46de5ca92181ef89787fbf266333fbd1076c0728149b3a5600fa9060600160405180910390a1505050949350505050565b65506f6c69637960d01b613b2181613e6b565b6001600160a01b0316306001600160a01b031614613b515760405162461bcd60e51b815260040161056790614486565b613b6b6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614613b9b5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154613c065760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411613c6b5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3039313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260066020908152604080832086845290915290206004810154613ce15760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039323a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600060018083015460ff1690811115613d0a57634e487b7160e01b600052602160045260246000fd5b14613d635760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3039333a5041594f55545f414c52454144595f5041496044820152631113d55560e21b6064820152608401610567565b6001818101805460ff1916909117905542600582015560408051868152602081018690527f97a4f1df9bfee1535200a1be1da2c502aec16bda67fdaded9c127eaec704b71f910160405180910390a16000858152600560209081526040808320845484529091528120600280840154908201805492939192909190613de9908490614672565b9091555050426005820155600281015460018201541415610b7d57805460ff1916600317815560048301805460019190600090613e2790849061468a565b909155505042600884015581546040805188815260208101929092527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016116f2565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015613eb557600080fd5b505afa158015613ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eed919061415e565b90506001600160a01b0381166126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610567565b6008805460009182613f64836146f3565b9091555050600054600854604080514660208201526201000090930460601b6bffffffffffffffffffffffff191690830152605482015260740160405160208183030381529060405280519060200120905090565b600054610100900460ff166140245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610567565b6140396810dbdb5c1bdb995b9d60ba1b613e6b565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b828054614067906146b8565b90600052602060002090601f01602090048101928261408957600085556140cf565b82601f106140a25782800160ff198235161785556140cf565b828001600101855582156140cf579182015b828111156140cf5782358255916020019190600101906140b4565b506140db9291506140df565b5090565b5b808211156140db57600081556001016140e0565b60008083601f840112614105578182fd5b50813567ffffffffffffffff81111561411c578182fd5b60208301915083602082850101111561413457600080fd5b9250929050565b60006020828403121561414c578081fd5b81356141578161475d565b9392505050565b60006020828403121561416f578081fd5b81516141578161475d565b6000806000806060858703121561418f578283fd5b843561419a8161475d565b935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b6141c8878288016140f4565b95989497509550505050565b6000602082840312156141e5578081fd5b81518015158114614157578182fd5b600060208284031215614205578081fd5b5035919050565b6000806040838503121561421e578182fd5b50508035926020909101359150565b60008060008060608587031215614242578384fd5b8435935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b60008060006060848603121561427a578283fd5b505081359360208301359350604090920135919050565b6000806000806000608086880312156142a8578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8111156142d3578182fd5b6142df888289016140f4565b969995985093965092949392505050565b600060208284031215614301578081fd5b815160078110614157578182fd5b60008151808452815b8181101561433457602081850181015186830182015201614318565b818111156143455782602083870101525b50601f01601f19169290920160200192915050565b6002811061436a5761436a614724565b9052565b6001600160a01b03851681526020810184905260408101839052608081016143958361474d565b82606083015295945050505050565b6001600160a01b03871681526020810186905260006143c28661474d565b85604083015260c060608301526143dc60c083018661430f565b60808301949094525060a00152949350505050565b828152604081016144018361474d565b8260208301529392505050565b60006144198861473a565b87825286602083015285604083015260c060608301526143dc60c083018661430f565b610120810161444a8b61474d565b998152602081019890985260408801969096526060870194909452608086019290925260a085015260c084015260e08301526101009091015290565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825161450f8161473a565b806020840152506020830151604083015260408301516060830152606083015160c0608084015261454360e084018261430f565b9050608084015160a084015260a084015160c08401528091505092915050565b60006020825260018060a01b0383511660208301526020830151604083015260408301516145908161474d565b80606084015250606083015160c0608084015261454360e084018261430f565b6000602082528251602083015260208301516145cf604084018261435a565b5060408301516060830152606083015160c0608084015261454360e084018261430f565b81516101208201906146048161474d565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b60008782526143c2602083018861435a565b600082198211156146855761468561470e565b500190565b60008282101561469c5761469c61470e565b500390565b6000816146b0576146b061470e565b506000190190565b6002810460018216806146cc57607f821691505b602082108114156146ed57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156147075761470761470e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6004811061474a5761474a614724565b50565b6003811061474a5761474a614724565b6001600160a01b038116811461474a57600080fdfe532394c6ec703c4ecf5944bc8f02b410433362f9bdc2f25cd1d7fe45e7edfc59a2646970667358221220aab73debb705ab2b89e919dd01382f96a906dc6199287419144898b6aa0d558764736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c8063a1814a1a1161010f578063c4d66de8116100a2578063e3ebdea511610071578063e3ebdea5146104d8578063eb96cbed146104eb578063ec935668146104fe578063fe64372b14610511576101e5565b8063c4d66de814610420578063cef58f1314610433578063db42b77b14610453578063ddbfd8ef14610466576101e5565b8063adcadb28116100de578063adcadb28146103c7578063b1e25988146103da578063bc506f64146103ed578063be183b1114610400576101e5565b8063a1814a1a1461036c578063a3f685f91461037f578063a427056e1461039f578063a5961b4c146103a7576101e5565b80634e02c63f116101875780637f22c2d9116101565780637f22c2d9146103015780637f29dba21461032157806380f2122c146103345780639e81f96a14610359576101e5565b80634e02c63f146102a35780635c955288146102b65780636780336e146102c95780637122ba06146102dc576101e5565b806347e3b138116101c357806347e3b138146102455780634c14ccc2146102585780634cafa1211461026b5780634cda0de914610290576101e5565b8063296d6c7d146101ea57806330a73da5146101ff578063357f030a14610212575b600080fd5b6101fd6101f83660046141f4565b610524565b005b6101fd61020d366004614266565b6107a6565b6102326102203660046141f4565b60076020526000908152604090205481565b6040519081526020015b60405180910390f35b6101fd6102533660046141f4565b610b85565b6101fd6102663660046141f4565b610d4a565b61027e6102793660046141f4565b61104f565b60405161023c9695949392919061440e565b6101fd61029e36600461420c565b611113565b6101fd6102b1366004614266565b6113bb565b6101fd6102c43660046141f4565b611702565b6101fd6102d7366004614291565b6118c3565b6102ef6102ea3660046141f4565b611bac565b60405161023c969594939291906143a4565b61031461030f36600461420c565b611bea565b60405161023c91906144fe565b6101fd61032f36600461420c565b611db2565b61034761034236600461420c565b612157565b60405161023c96959493929190614660565b61027e61036736600461420c565b612196565b61023261037a36600461417a565b6121d5565b61039261038d3660046141f4565b612576565b60405161023c91906145f3565b600854610232565b6103ba6103b53660046141f4565b6126e0565b60405161023c9190614563565b6101fd6103d53660046141f4565b6128a6565b6102326103e83660046141f4565b612b6b565b6103146103fb3660046141f4565b612b80565b61023261040e3660046141f4565b60009081526007602052604090205490565b6101fd61042e36600461413b565b612d40565b61044661044136600461420c565b612ebe565b60405161023c91906145b0565b610232610461366004614291565b613080565b6104c36104743660046141f4565b600460208190526000918252604090912080546001820154600283015460038401549484015460058501546006860154600787015460089097015460ff90961697949693959293919290919089565b60405161023c9998979695949392919061443c565b6101fd6104e636600461420c565b61346c565b6101fd6104f93660046141f4565b61358f565b61023261050c36600461422d565b6137fe565b6101fd61051f36600461420c565b613b0e565b65506f6c69637960d01b61053781613e6b565b6001600160a01b0316306001600160a01b0316146105705760405162461bcd60e51b815260040161056790614486565b60405180910390fd5b61058a6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146105ba5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546106275760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031393a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546106975760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032303a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff1660038111156106bd57634e487b7160e01b600052602160045260246000fd5b1461071a5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032313a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff1990811660031782554260058084018290556002858101805490941617928390558401556040516000805160206147738339815191529161076491879160ff16906143f1565b60405180910390a16040518481527fd38021ec2bcd4d63a80341a60be320a74cd71c01b04a4f7aac74ef6593d8e5e3906020015b60405180910390a150505050565b65506f6c69637960d01b6107b981613e6b565b6001600160a01b0316306001600160a01b0316146107e95760405162461bcd60e51b815260040161056790614486565b6108036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146108335760405162461bcd60e51b8152600401610567906144bd565b600084815260036020526040902060048101541580159061087757506002815460ff16600381111561087557634e487b7160e01b600052602160045260246000fd5b145b6108d45760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032343a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b80600201548311156109475760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f432d3032363a4150504c49434154494f4e5f53554d5f494e60448201527514d554915117d25390d4915054d157d253959053125160521b6064820152608401610567565b600085815260046020526040902060078101541580159061098b57506000815460ff16600281111561098957634e487b7160e01b600052602160045260246000fd5b145b6109e35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032373a504f4c4943595f4143434553535f494e564160448201526213125160ea1b6064820152608401610567565b6000851180156109f7575080600201548510155b8015610a0257508385105b610a605760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f432d3032353a4150504c49434154494f4e5f5052454d49556044820152681357d253959053125160ba1b6064820152608401610567565b81600201548414610acc57600282015460408051888152602081019290925281018590527fa749e55ffd0f07193966d7c449d6238c6514c6b3eb5e8ab21b3ea9d94a5c21789060600160405180910390a160028201849055426005808401829055820185905560088201555b81600101548514610b7d57600182015460408051888152602081019290925281018690527f23e948a9dc44669750ea8ea8b7ca46c359534bd0f04e9260408a7e9bf8c7a5569060600160405180910390a1600182810186905542600584015581015460408051888152602081019290925281018690527ff392e5df923d5d0b6d6c6301c53c86e1c75f58c1c637200c3193dd589e5c8a019060600160405180910390a1600181018590554260088201555b505050505050565b65506f6c69637960d01b610b9881613e6b565b6001600160a01b0316306001600160a01b031614610bc85760405162461bcd60e51b815260040161056790614486565b610be26d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610c125760405162461bcd60e51b8152600401610567906144bd565b60008281526004602052604090206007810154610c7d5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032383a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff166002811115610ca357634e487b7160e01b600052602160045260246000fd5b14610d005760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3032393a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660011781554260088201556040518381527ff1950800da95964fdd42242722ccdfe6d9dc13d5d4dc7eafefeab77373e3c9ec906020015b60405180910390a1505050565b65506f6c69637960d01b610d5d81613e6b565b6001600160a01b0316306001600160a01b031614610d8d5760405162461bcd60e51b815260040161056790614486565b610da76d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614610dd75760405162461bcd60e51b8152600401610567906144bd565b6000828152600360208190526040808320815160c08101909252805491929091839160ff90911690811115610e1c57634e487b7160e01b600052602160045260246000fd5b6003811115610e3b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054610e63906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8f906146b8565b8015610edc5780601f10610eb157610100808354040283529160200191610edc565b820191906000526020600020905b815481529060010190602001808311610ebf57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151118015610f2f5750600281516003811115610f2d57634e487b7160e01b600052602160045260246000fd5b145b610f8c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3032323a4150504c49434154494f4e5f41434345535360448201526717d253959053125160c21b6064820152608401610567565b6000838152600460205260409020600781015415610ff85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3032333a504f4c4943595f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b805460ff191681556020828101516001830155604080840151600584015542600784018190556008840155518581527f0b979eae60510a4a065f45ddd8a0c9af7ba4d241e253b17bdee3043c2fb992e99101610798565b6003602081905260009182526040909120805460018201546002830154938301805460ff9093169491939192611084906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546110b0906146b8565b80156110fd5780601f106110d2576101008083540402835291602001916110fd565b820191906000526020600020905b8154815290600101906020018083116110e057829003601f168201915b5050505050908060040154908060050154905086565b65506f6c69637960d01b61112681613e6b565b6001600160a01b0316306001600160a01b0316146111565760405162461bcd60e51b815260040161056790614486565b6111706d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146111a05760405162461bcd60e51b8152600401610567906144bd565b6000838152600460205260409020600781015461120b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3036303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116112705760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3036313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b6000848152600560209081526040808320868452909152902060048101546112e55760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3036323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561130b57634e487b7160e01b600052602160045260246000fd5b146113625760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3036333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff191660021781554260058201819055600883015560408051868152602081018690527f5ea526dbb5ca484c7716dcc966fdfc289530cc595ebc9ec7bfda25d010d1a2fc91015b60405180910390a15050505050565b65506f6c69637960d01b6113ce81613e6b565b6001600160a01b0316306001600160a01b0316146113fe5760405162461bcd60e51b815260040161056790614486565b6114186d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146114485760405162461bcd60e51b8152600401610567906144bd565b600084815260046020526040902060078101546114b35760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3035303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008160040154116115185760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b806005015483826006015461152d9190614672565b111561158c5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3035323a5041594f55545f4d41585f414d4f554e545f604482015267115610d15151115160c21b6064820152608401610567565b6000858152600560209081526040808320878452909152902060048101546116015760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3035333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6000815460ff16600381111561162757634e487b7160e01b600052602160045260246000fd5b1461167e5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3035343a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b805460ff19166001908117825581018490554260058201556006820180548591906000906116ad908490614672565b909155505042600883015560408051878152602081018790529081018590527fa39b09b76ccf7db94096e2c5a058215f9b2302b85de726e37edb99efdb6fb2c6906060015b60405180910390a1505050505050565b65506f6c69637960d01b61171581613e6b565b6001600160a01b0316306001600160a01b0316146117455760405162461bcd60e51b815260040161056790614486565b61175f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461178f5760405162461bcd60e51b8152600401610567906144bd565b600082815260036020526040902060048101546117ff5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031373a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561182557634e487b7160e01b600052602160045260246000fd5b146118825760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031383a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff191660021781554260058201556040518381527f67f56ed3a623b73566d40f65cba052fc97ca9df8afb800a885c2a4fe0228c1f890602001610d3d565b65506f6c69637960d01b6118d681613e6b565b6001600160a01b0316306001600160a01b0316146119065760405162461bcd60e51b815260040161056790614486565b6119206d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146119505760405162461bcd60e51b8152600401610567906144bd565b600086815260026020526040902060048101546119bd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b6000878152600360205260409020600481015415611a2e5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031313a4150504c49434154494f4e5f414c52454144604482015267595f45584953545360c01b6064820152608401610567565b60008711611a885760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3031323a5052454d49554d5f414d4f554e545f5a45526044820152604f60f81b6064820152608401610567565b868611611aea5760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a504f432d3031333a53554d5f494e53555245445f414d4f554e5460448201526917d513d3d7d4d350531360b21b6064820152608401610567565b805460ff191681556001810187905560028101869055611b0e60038201868661405b565b504260048201819055600580830182905560028401805460ff1916600117908190559084019190915560405160008051602061477383398151915291611b59918b9160ff16906143f1565b60405180910390a160408051898152602081018990529081018790527f71b9122c9f32160952b44f0e76b53474f59a5cd9b98ccdfb5ff20672fcae34129060600160405180910390a15050505050505050565b600260208190526000918252604090912080546001820154928201546003830180546001600160a01b03909316949360ff90921692611084906146b8565b611c246040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600083815260056020908152604080832085845290915290819020815160c081019092528054829060ff166003811115611c6e57634e487b7160e01b600052602160045260246000fd5b6003811115611c8d57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054611cb5906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce1906146b8565b8015611d2e5780601f10611d0357610100808354040283529160200191611d2e565b820191906000526020600020905b815481529060010190602001808311611d1157829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3130333a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b92915050565b65506f6c69637960d01b611dc581613e6b565b6001600160a01b0316306001600160a01b031614611df55760405162461bcd60e51b815260040161056790614486565b611e0f6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614611e3f5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154611eaa5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3037303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411611f0f5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3037313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260056020908152604080832086845290915290206004810154611f845760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3037323a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff166003811115611faa57634e487b7160e01b600052602160045260246000fd5b1480611fd957506002815460ff166003811115611fd757634e487b7160e01b600052602160045260246000fd5b145b61202f5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3037333a434c41494d5f53544154455f494e56414c496044820152601160fa1b6064820152608401610567565b6001815460ff16600381111561205557634e487b7160e01b600052602160045260246000fd5b148015612069575080600201548160010154145b8061209757506002815460ff16600381111561209557634e487b7160e01b600052602160045260246000fd5b145b6120f35760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3037343a434c41494d5f574954485f554e504149445f6044820152665041594f55545360c81b6064820152608401610567565b805460ff19166003178155426005820155600482018054906000612116836146a1565b909155505042600883015560408051868152602081018690527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016113ac565b60066020908152600092835260408084209091529082529020805460018201546002830154600384018054939460ff90931693919291611084906146b8565b6005602090815260009283526040808420909152908252902080546001820154600283015460038401805460ff909416949293919291611084906146b8565b600065506f6c69637960d01b6121ea81613e6b565b6001600160a01b0316306001600160a01b03161461221a5760405162461bcd60e51b815260040161056790614486565b6122346d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146122645760405162461bcd60e51b8152600401610567906144bd565b6001600160a01b0386166122ba5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a504f4c2d3030313a494e56414c49445f4f574e455200000000006044820152606401610567565b600954604051630e48080360e21b8152600481018790526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122fe57600080fd5b505afa158015612312573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233691906141d4565b6123825760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3030323a494e56414c49445f50524f445543540000006044820152606401610567565b600954604051635e966e4560e01b8152600481018790526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156123c757600080fd5b505afa1580156123db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ff91906142f0565b600681111561241e57634e487b7160e01b600052602160045260246000fd5b1461246b5760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030333a50524f445543545f4e4f545f4143544956456044820152606401610567565b612473613f53565b6000818152600260205260409020600481015491935090156124e55760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3030343a4d455441444154415f414c52454144595f45604482015264584953545360d81b6064820152608401610567565b80546001600160a01b0319166001600160a01b0388161781556001810186905560028101805460ff1916905561251f60038201868661405b565b50426004820181905560058201556040517f19c55cd86637a14907bc12064e09bf8dce1ecda9e5d96cae81099f4b8ae1d3c99061256490899086908a9060009061436e565b60405180910390a15050949350505050565b6125c6604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60008281526004602052604090819020815161012081019092528054829060ff16600281111561260657634e487b7160e01b600052602160045260246000fd5b600281111561262557634e487b7160e01b600052602160045260246000fd5b815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481525050905060008160e00151116126db5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130323a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b919050565b6127196040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b600082815260026020818152604092839020835160c08101855281546001600160a01b0316815260018201549281019290925280830154919390929084019160ff169081111561277957634e487b7160e01b600052602160045260246000fd5b600281111561279857634e487b7160e01b600052602160045260246000fd5b81526020016003820180546127ac906146b8565b80601f01602080910402602001604051908101604052809291908181526020018280546127d8906146b8565b80156128255780601f106127fa57610100808354040283529160200191612825565b820191906000526020600020905b81548152906001019060200180831161280857829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3130303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b65506f6c69637960d01b6128b981613e6b565b6001600160a01b0316306001600160a01b0316146128e95760405162461bcd60e51b815260040161056790614486565b6129036d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b0316146129335760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546129a05760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3033303a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b60008381526004602052604090206007810154612a0b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3033313a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6001815460ff166002811115612a3157634e487b7160e01b600052602160045260246000fd5b14612a895760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3033323a504f4c4943595f53544154455f494e56414c604482015261125160f21b6064820152608401610567565b600481015415612ae75760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3033333a504f4c4943595f4841535f4f50454e5f434c60448201526341494d5360e01b6064820152608401610567565b8054600260ff19918216811783554260088401819055848201805490931690911791829055600584015560405160008051602061477383398151915291612b3391879160ff16906143f1565b60405180910390a16040518481527f47682aa751cfef9683dc926c2e0547bf1f6345215278ea52b866564017ac9b9c90602001610798565b6000612b7682612576565b6060015192915050565b612bba6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600082815260036020819052604091829020825160c0810190935280549091839160ff1690811115612bfc57634e487b7160e01b600052602160045260246000fd5b6003811115612c1b57634e487b7160e01b600052602160045260246000fd5b81526020016001820154815260200160028201548152602001600382018054612c43906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612c6f906146b8565b8015612cbc5780601f10612c9157610100808354040283529160200191612cbc565b820191906000526020600020905b815481529060010190602001808311612c9f57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905060008160800151116126db5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3130313a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b600054610100900460ff1615808015612d605750600054600160ff909116105b80612d7a5750303b158015612d7a575060005460ff166001145b612ddd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610567565b6000805460ff191660011790558015612e00576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055612e2a600090565b6541636365737360d01b14612e6c57612e4b6541636365737360d01b613e6b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b612e74613fb9565b8015612eba576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b612ef86040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6000838152600660209081526040808320858452825291829020825160c0810190935280548352600180820154919284019160ff1690811115612f4b57634e487b7160e01b600052602160045260246000fd5b6001811115612f6a57634e487b7160e01b600052602160045260246000fd5b815260200160028201548152602001600382018054612f88906146b8565b80601f0160208091040260200160405190810160405280929190818152602001828054612fb4906146b8565b80156130015780601f10612fd657610100808354040283529160200191613001565b820191906000526020600020905b815481529060010190602001808311612fe457829003601f168201915b505050505081526020016004820154815260200160058201548152505090506000816080015111611dac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3130343a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600065506f6c69637960d01b61309581613e6b565b6001600160a01b0316306001600160a01b0316146130c55760405162461bcd60e51b815260040161056790614486565b6130df6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461310f5760405162461bcd60e51b8152600401610567906144bd565b6000878152600460205260409020600781015461317a5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b60008881526005602090815260408083208a8452909152902060048101546131ef5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3038313a434c41494d5f444f45535f4e4f545f45584960448201526114d560f21b6064820152608401610567565b6001815460ff16600381111561321557634e487b7160e01b600052602160045260246000fd5b1461326c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f432d3038323a434c41494d5f4e4f545f434f4e4649524d456044820152601160fa1b6064820152608401610567565b600087116132cd5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3038333a5041594f55545f414d4f554e545f5a45524f60448201526717d253959053125160c21b6064820152608401610567565b80600101548782600201546132e29190614672565b111561333c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038343a5041594f55545f414d4f554e545f544f4f5f60448201526242494760e81b6064820152608401610567565b60008981526007602090815260408083205460068352818420818552909252909120600481015491955090156133c05760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3038353a5041594f55545f414c52454144595f45584960448201526253545360e81b6064820152608401610567565b888155600281018890556133d860038201888861405b565b5060018101805460ff191690554260048201819055600582015560008a815260076020526040812080549161340c836146f3565b9091555050426008840155604080518b8152602081018b9052908101869052606081018990527f223e38f266bc310bbf02cc4e1bb6c706af5c7f9710b3edfe17a12f09e44e84a79060800160405180910390a15050505095945050505050565b600082815260046020526040902060078101546134d75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3131303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b80600101548282600201546134ec9190614672565b111561353a5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a504f432d3131313a414d4f554e545f544f4f5f424947000000006044820152606401610567565b8181600201600082825461354e9190614672565b909155505042600882015560408051848152602081018490527f9bb11018b2a92c286be2bb51bd0ed127dadef34cddc2b557270d0f81873e00569101610d3d565b65506f6c69637960d01b6135a281613e6b565b6001600160a01b0316306001600160a01b0316146135d25760405162461bcd60e51b815260040161056790614486565b6135ec6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461361c5760405162461bcd60e51b8152600401610567906144bd565b600082815260026020526040902060048101546136895760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f432d3031343a4d455441444154415f444f45535f4e4f545f60448201526411561254d560da1b6064820152608401610567565b600083815260036020526040902060048101546136f95760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3031353a4150504c49434154494f4e5f444f45535f4e60448201526713d517d1561254d560c21b6064820152608401610567565b6000815460ff16600381111561371f57634e487b7160e01b600052602160045260246000fd5b1461377c5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f432d3031363a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b6064820152608401610567565b805460ff199081166001178255426005808401829055600285810180549094161792839055840155604051600080516020614773833981519152916137c691879160ff16906143f1565b60405180910390a16040518481527fbf8b120fb15c8c02daac643f4b8d8542610c41f75bda1d3efcc3f7017c9389fc90602001610798565b600065506f6c69637960d01b61381381613e6b565b6001600160a01b0316306001600160a01b0316146138435760405162461bcd60e51b815260040161056790614486565b61385d6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b03161461388d5760405162461bcd60e51b8152600401610567906144bd565b600086815260046020526040902060078101546138f85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3034303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000815460ff16600281111561391e57634e487b7160e01b600052602160045260246000fd5b1461396b5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a504f432d3034313a504f4c4943595f4e4f545f414354495645006044820152606401610567565b80600501548682600601546139809190614672565b11156139e45760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a504f432d3034323a434c41494d5f414d4f554e545f455843454560448201526c1114d7d3505617d4105653d555609a1b6064820152608401610567565b60038101546000888152600560209081526040808320848452909152902060048101549194509015613a635760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f432d3034333a434c41494d5f414c52454144595f45584953604482015261545360f01b6064820152608401610567565b805460ff1916815560018101879055613a8060038201878761405b565b5042600482018190556005820155600382018054906000613aa0836146f3565b9091555050600482018054906000613ab7836146f3565b909155505042600883015560408051898152602081018690529081018890527f66d0839d281a46de5ca92181ef89787fbf266333fbd1076c0728149b3a5600fa9060600160405180910390a1505050949350505050565b65506f6c69637960d01b613b2181613e6b565b6001600160a01b0316306001600160a01b031614613b515760405162461bcd60e51b815260040161056790614486565b613b6b6d50726f647563745365727669636560901b613e6b565b6001600160a01b0316336001600160a01b031614613b9b5760405162461bcd60e51b8152600401610567906144bd565b60008381526004602052604090206007810154613c065760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039303a504f4c4943595f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b6000816004015411613c6b5760405162461bcd60e51b815260206004820152602860248201527f4552524f523a504f432d3039313a504f4c4943595f574954484f55545f4f50456044820152674e5f434c41494d5360c01b6064820152608401610567565b600084815260066020908152604080832086845290915290206004810154613ce15760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f432d3039323a5041594f55545f444f45535f4e4f545f45586044820152621254d560ea1b6064820152608401610567565b600060018083015460ff1690811115613d0a57634e487b7160e01b600052602160045260246000fd5b14613d635760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f432d3039333a5041594f55545f414c52454144595f5041496044820152631113d55560e21b6064820152608401610567565b6001818101805460ff1916909117905542600582015560408051868152602081018690527f97a4f1df9bfee1535200a1be1da2c502aec16bda67fdaded9c127eaec704b71f910160405180910390a16000858152600560209081526040808320845484529091528120600280840154908201805492939192909190613de9908490614672565b9091555050426005820155600281015460018201541415610b7d57805460ff1916600317815560048301805460019190600090613e2790849061468a565b909155505042600884015581546040805188815260208101929092527f482ca72ff614e1aab3860b93209bfcb7382d63292e6004e15ff29639e58e19a791016116f2565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015613eb557600080fd5b505afa158015613ec9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eed919061415e565b90506001600160a01b0381166126db5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610567565b6008805460009182613f64836146f3565b9091555050600054600854604080514660208201526201000090930460601b6bffffffffffffffffffffffff191690830152605482015260740160405160208183030381529060405280519060200120905090565b600054610100900460ff166140245760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610567565b6140396810dbdb5c1bdb995b9d60ba1b613e6b565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b828054614067906146b8565b90600052602060002090601f01602090048101928261408957600085556140cf565b82601f106140a25782800160ff198235161785556140cf565b828001600101855582156140cf579182015b828111156140cf5782358255916020019190600101906140b4565b506140db9291506140df565b5090565b5b808211156140db57600081556001016140e0565b60008083601f840112614105578182fd5b50813567ffffffffffffffff81111561411c578182fd5b60208301915083602082850101111561413457600080fd5b9250929050565b60006020828403121561414c578081fd5b81356141578161475d565b9392505050565b60006020828403121561416f578081fd5b81516141578161475d565b6000806000806060858703121561418f578283fd5b843561419a8161475d565b935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b6141c8878288016140f4565b95989497509550505050565b6000602082840312156141e5578081fd5b81518015158114614157578182fd5b600060208284031215614205578081fd5b5035919050565b6000806040838503121561421e578182fd5b50508035926020909101359150565b60008060008060608587031215614242578384fd5b8435935060208501359250604085013567ffffffffffffffff8111156141bc578283fd5b60008060006060848603121561427a578283fd5b505081359360208301359350604090920135919050565b6000806000806000608086880312156142a8578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff8111156142d3578182fd5b6142df888289016140f4565b969995985093965092949392505050565b600060208284031215614301578081fd5b815160078110614157578182fd5b60008151808452815b8181101561433457602081850181015186830182015201614318565b818111156143455782602083870101525b50601f01601f19169290920160200192915050565b6002811061436a5761436a614724565b9052565b6001600160a01b03851681526020810184905260408101839052608081016143958361474d565b82606083015295945050505050565b6001600160a01b03871681526020810186905260006143c28661474d565b85604083015260c060608301526143dc60c083018661430f565b60808301949094525060a00152949350505050565b828152604081016144018361474d565b8260208301529392505050565b60006144198861473a565b87825286602083015285604083015260c060608301526143dc60c083018661430f565b610120810161444a8b61474d565b998152602081019890985260408801969096526060870194909452608086019290925260a085015260c084015260e08301526101009091015290565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825161450f8161473a565b806020840152506020830151604083015260408301516060830152606083015160c0608084015261454360e084018261430f565b9050608084015160a084015260a084015160c08401528091505092915050565b60006020825260018060a01b0383511660208301526020830151604083015260408301516145908161474d565b80606084015250606083015160c0608084015261454360e084018261430f565b6000602082528251602083015260208301516145cf604084018261435a565b5060408301516060830152606083015160c0608084015261454360e084018261430f565b81516101208201906146048161474d565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b60008782526143c2602083018861435a565b600082198211156146855761468561470e565b500190565b60008282101561469c5761469c61470e565b500390565b6000816146b0576146b061470e565b506000190190565b6002810460018216806146cc57607f821691505b602082108114156146ed57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156147075761470761470e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6004811061474a5761474a614724565b50565b6003811061474a5761474a614724565b6001600160a01b038116811461474a57600080fdfe532394c6ec703c4ecf5944bc8f02b410433362f9bdc2f25cd1d7fe45e7edfc59a2646970667358221220aab73debb705ab2b89e919dd01382f96a906dc6199287419144898b6aa0d558764736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/modules/PoolController.sol/PoolController.dbg.json b/artifacts/contracts/modules/PoolController.sol/PoolController.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/modules/PoolController.sol/PoolController.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/modules/PoolController.sol/PoolController.json b/artifacts/contracts/modules/PoolController.sol/PoolController.json deleted file mode 100644 index f633fb35..00000000 --- a/artifacts/contracts/modules/PoolController.sol/PoolController.json +++ /dev/null @@ -1,629 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "PoolController", - "sourceName": "contracts/modules/PoolController.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolCollateralReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolCollateralizationFailed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolCollateralizationSucceeded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "erc20Token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralizationLevel", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumOfSumInsuredCap", - "type": "uint256" - } - ], - "name": "LogRiskpoolRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "sumInsured", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateral", - "type": "uint256" - } - ], - "name": "LogRiskpoolRequiredCollateral", - "type": "event" - }, - { - "inputs": [], - "name": "COLLATERALIZATION_LEVEL_CAP", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "FULL_COLLATERALIZATION_LEVEL", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "activeBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfActiveBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "addBundleIdToActiveSet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "calculateCollateral", - "outputs": [ - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "defund", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "fund", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bundleIdx", - "type": "uint256" - } - ], - "name": "getActiveBundleId", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFullCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getMaximumNumberOfActiveBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - } - ], - "name": "getRiskPoolForProduct", - "outputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getRiskpool", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "address", - "name": "erc20Token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "collateralizationLevel", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumOfSumInsuredCap", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumOfSumInsuredAtRisk", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPool.Pool", - "name": "riskPool", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "address", - "name": "erc20Token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "collateralizationLevel", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumOfSumInsuredCap", - "type": "uint256" - } - ], - "name": "registerRiskpool", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "release", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "removeBundleIdFromActiveSet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "riskpools", - "outputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxNumberOfActiveBundles", - "type": "uint256" - } - ], - "name": "setMaximumNumberOfActiveBundles", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "setRiskpoolForProduct", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "underwrite", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61304d80620000f46000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063a65e2cfd116100c3578063eb8021141161007c578063eb802114146102ad578063ec833b0c146102cd578063edb5be30146102e0578063f1d354d0146102e8578063f93b3673146102f6578063fe64372b146103095761014d565b8063a65e2cfd14610239578063c397ae391461024c578063c4d66de81461025f578063d229f3b014610272578063d407ba0014610292578063da68771a146102a55761014d565b806367d42a8b1161011557806367d42a8b146101d25780637cdb808d146101e55780637db32844146101f8578063950be8031461020b578063a054381f1461021e578063a4266a66146102265761014d565b806302108268146101525780631b07b17f146101675780632127fd481461018f57806345fe1c6d146101a257806357419e8f146101bf575b600080fd5b610165610160366004612b08565b61031c565b005b61017a610175366004612af0565b610643565b60405190151581526020015b60405180910390f35b61016561019d366004612d4a565b610c1b565b6101b1670de0b6b3a764000081565b604051908152602001610186565b6101656101cd366004612cf9565b610ce3565b6101656101e0366004612af0565b611030565b6101b16101f3366004612d4a565b611401565b6101b1610206366004612af0565b611461565b610165610219366004612d4a565b611476565b6007546101b1565b6101b1610234366004612af0565b61154d565b610165610247366004612d4a565b61156a565b61016561025a366004612d4a565b6116bf565b61016561026d366004612a98565b611819565b6101b1610280366004612af0565b60009081526003602052604090205490565b6101656102a0366004612d4a565b611997565b6101b1611afd565b6102c06102bb366004612af0565b611b13565b6040516101869190612e98565b6101b16102db366004612d4a565b611c78565b6101b1600181565b670de0b6b3a76400006101b1565b610165610304366004612d4a565b611d07565b610165610317366004612b08565b611fa5565b63141bdbdb60e21b61032d8161245e565b6001600160a01b0316306001600160a01b0316146103665760405162461bcd60e51b815260040161035d90612e20565b60405180910390fd5b6103806d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146103b05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156103f957600080fd5b505afa15801561040d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104359190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190612b29565b60068111156104e957634e487b7160e01b600052602160045260246000fd5b146105065760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105879190810190612bf6565b9050600061059482612546565b604051630d8a70f160e21b8152600481018a9052602481018990529091506001600160a01b03821690633629c3c490604401600060405180830381600087803b1580156105e057600080fd5b505af11580156105f4573d6000803e3d6000fd5b505050506020828101516000908152600382526040808220548083526004909352812060088101805491928b9261062c908490612f65565b909155505042600a90910155505050505050505050565b600063141bdbdb60e21b6106568161245e565b6001600160a01b0316306001600160a01b0316146106865760405162461bcd60e51b815260040161035d90612e20565b6106a06d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146106d05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561071957600080fd5b505afa15801561072d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107559190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612b29565b600681111561080957634e487b7160e01b600052602160045260246000fd5b146108265760405162461bcd60e51b815260040161035d90612d5c565b600954604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a79190810190612b48565b90506000815160038111156108cc57634e487b7160e01b600052602160045260246000fd5b146109295760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f4c2d3032303a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b606482015260840161035d565b60095460405163296586d360e21b8152600481018990526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561096e57600080fd5b505afa158015610982573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109aa9190810190612bf6565b602080820151600090815260039091526040808220549085015192935091906109d38383611401565b60008c81526002602090815260409182902083905581518e81529081018590529081018290529091507f893c64de8e253703b31297be336c07a93e39fe8eaa32127e2e6fff090f0aefae9060600160405180910390a160008381526004602052604090206005810154610a47908490612f65565b81600401541015610ab25760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a504f4c2d3032323a5249534b504f4f4c5f53554d5f494e53555260448201526e115117d0d05417d15610d151511151608a1b606482015260840161035d565b6000610abd86612546565b604051631121f7ef60e31b8152600481018f9052602481018590529091506001600160a01b0382169063890fbf7890604401602060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190612ad0565b9b508b15610bc95783826005016000828254610b5d9190612f65565b9250508190555082826007016000828254610b789190612f65565b909155505042600a83015560408051868152602081018f90529081018590527f66a2033a32603d30bde9ec2b858820c3202972f4ee1c8dd2c6e18391b6bfbaeb9060600160405180910390a1610c0b565b60408051868152602081018f90529081018590527fc6e314ad1256dc0c682dc6bb53e940b53f14aa323070798a8423a7f1d965d0599060600160405180910390a15b5050505050505050505050919050565b610c366e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610c665760405162461bcd60e51b815260040161035d90612dde565b60008111610cd15760405162461bcd60e51b815260206004820152603260248201527f4552524f523a504f4c2d3033323a4d41585f4e554d4245525f4f465f41435449604482015271159157d0955391131154d7d253959053125160721b606482015260840161035d565b60009182526005602052604090912055565b610cfe6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610d2e5760405162461bcd60e51b815260040161035d90612dde565b60008581526004602090815260408083206007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018a90556005909352922055600981015415610ddc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030353a5249534b504f4f4c5f414c52454144595f526044820152681151d254d51154915160ba1b606482015260840161035d565b6001600160a01b038516610e3c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3030363a57414c4c45545f414444524553535f5a45526044820152604f60f81b606482015260840161035d565b6001600160a01b038416610e925760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030373a45524332305f414444524553535f5a45524f604482015260640161035d565b610ea5670de0b6b3a76400006002612f9d565b831115610f0b5760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a504f4c2d3030383a434f4c4c41544552414c495a4154494f4e5f60448201526d0d88aac8ad8bea89e9ebe90928e960931b606482015260840161035d565b60008211610f6d5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030393a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b606482015260840161035d565b8581556001810180546001600160a01b038781166001600160a01b031992831681179093556002840180549188169190921681179091556003830185905560048301849055600060058401819055600684018190556007840181905560088401554260098401819055600a84015560408051898152602081019390935282015260608101849052608081018390527f798f4ae5a0a1e2125e89cf9f810639cd05f69896db5bd4f928bd53e6ef3bf8b99060a00160405180910390a1505050505050565b63141bdbdb60e21b6110418161245e565b6001600160a01b0316306001600160a01b0316146110715760405162461bcd60e51b815260040161035d90612e20565b61108b6d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146110bb5760405162461bcd60e51b815260040161035d90612e57565b60095460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111399190612c74565b905060028151600281111561115e57634e487b7160e01b600052602160045260246000fd5b146111b65760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3032353a504f4c4943595f53544154455f494e56414c604482015261125160f21b606482015260840161035d565b60095460405163296586d360e21b8152600481018590526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156111fb57600080fd5b505afa15801561120f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112379190810190612bf6565b9050600061124482612546565b604051636180264360e11b8152600481018790529091506001600160a01b0382169063c3004c8690602401600060405180830381600087803b15801561128957600080fd5b505af115801561129d573d6000803e3d6000fd5b5050600954604051632f141bd960e21b815260048101899052600093506001600160a01b03909116915063bc506f649060240160006040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113249190810190612b48565b6020808501516000908152600382526040808220548083526004845281832060c08a01518c855260029095529183205494955093909261136391612fbc565b9050836040015182600501600082825461137d9190612fbc565b92505081905550808260070160008282546113989190612fbc565b909155505042600a83015560008981526002602090815260408083209290925581518581529081018b90529081018290527f4948a5a8dbd6a1190cb403d7731211af859364368aafe64e104d3f3b07e846cf9060600160405180910390a1505050505050505050565b60008061140d84611b13565b606001519050670de0b6b3a764000081141561142b5782915061145a565b801561145557670de0b6b3a76400006114448483612f9d565b61144e9190612f7d565b915061145a565b600091505b5092915050565b6000818152600560205260409020545b919050565b6114916e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146114c15760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206114d990826125bf565b6115305760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034343a42554e444c455f49445f4e4f545f494e5f53604482015261115560f21b606482015260840161035d565b600082815260066020526040902061154890826125d7565b505050565b6000818152600660205260408120611564906125e3565b92915050565b6115856e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146115b55760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116349190612b29565b600681111561165357634e487b7160e01b600052602160045260246000fd5b146116705760405162461bcd60e51b815260040161035d90612d9d565b600083815260046020526040812060068101805491928592611693908490612f65565b92505081905550828160080160008282546116ae9190612f65565b909155505042600a90910155505050565b6116da6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b03161461170a5760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561175157600080fd5b505afa158015611765573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117899190612b29565b60068111156117a857634e487b7160e01b600052602160045260246000fd5b146117c55760405162461bcd60e51b815260040161035d90612d9d565b6000838152600460205260409020600681015483116117fd57828160060160008282546117f29190612fbc565b909155506118059050565b600060068201555b828160080160008282546116ae9190612fbc565b600054610100900460ff16158080156118395750600054600160ff909116105b806118535750303b158015611853575060005460ff166001145b6118b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161035d565b6000805460ff1916600117905580156118d9576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611903600090565b6541636365737360d01b14611945576119246541636365737360d01b61245e565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61194d6125ed565b8015611993576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6119b26e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146119e25760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206119fa90826125bf565b15611a565760405162461bcd60e51b815260206004820152602660248201527f4552524f523a504f4c2d3034323a42554e444c455f49445f414c52454144595f604482015265125397d4d15560d21b606482015260840161035d565b6000828152600560209081526040808320546006909252909120611a79906125e3565b10611ae55760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f4c2d3034333a4d4158494d554d5f4e554d4245525f4f465f6044820152751050d512559157d0955391131154d7d4915050d2115160521b606482015260840161035d565b600082815260066020526040902061154890826126f3565b611b10670de0b6b3a76400006002612f9d565b81565b611b826040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506000818152600460208181526040928390208351610160810185528154815260018201546001600160a01b039081169382019390935260028201549092169382019390935260038301546060820152908201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201546101208201819052600a90920154610140820152906114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034303a5249534b504f4f4c5f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b6000828152600660205260408120611c8f906125e3565b8210611ce85760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034313a42554e444c455f4944585f544f4f5f4c4152604482015261474560f01b606482015260840161035d565b6000838152600660205260409020611d0090836126ff565b9392505050565b611d307f496e7374616e63654f70657261746f725365727669636500000000000000000061245e565b6001600160a01b0316336001600160a01b031614611d9c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f4c2d3030313a4e4f545f494e5354414e43455f4f504552416044820152622a27a960e91b606482015260840161035d565b600854604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b158015611de057600080fd5b505afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612ad0565b611e645760405162461bcd60e51b815260206004820152601960248201527f4552524f523a504f4c2d3031303a4e4f545f50524f4455435400000000000000604482015260640161035d565b60085460405163ba80b8ed60e01b8152600481018390526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611ea857600080fd5b505afa158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee09190612ad0565b611f2c5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a504f4c2d3031313a4e4f545f5249534b504f4f4c000000000000604482015260640161035d565b60008281526003602052604090205415611f935760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3031323a5249534b504f4f4c5f414c52454144595f53604482015261115560f21b606482015260840161035d565b60009182526003602052604090912055565b63141bdbdb60e21b611fb68161245e565b6001600160a01b0316306001600160a01b031614611fe65760405162461bcd60e51b815260040161035d90612e20565b6120006d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146120305760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561207957600080fd5b505afa15801561208d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120b59190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561211257600080fd5b505afa158015612126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214a9190612b29565b600681111561216957634e487b7160e01b600052602160045260246000fd5b146121865760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156121cb57600080fd5b505afa1580156121df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122079190810190612bf6565b60208082015160009081526003825260408082205480835260049093529020600981015492935090916122865760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3032363a5249534b504f4f4c5f49445f494e56414c496044820152601160fa1b606482015260840161035d565b87816006015410156122da5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032373a4341504954414c5f544f4f5f4c4f57000000604482015260640161035d565b878160070154101561233a5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3032383a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b606482015260840161035d565b878160080154101561238e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032393a42414c414e43455f544f4f5f4c4f57000000604482015260640161035d565b878160060160008282546123a29190612fbc565b92505081905550878160070160008282546123bd9190612fbc565b92505081905550878160080160008282546123d89190612fbc565b909155505042600a82015560006123ee84612546565b60405163412ac48360e11b8152600481018c9052602481018b90529091506001600160a01b03821690638255890690604401600060405180830381600087803b15801561243a57600080fd5b505af115801561244e573d6000803e3d6000fd5b5050505050505050505050505050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156124a857600080fd5b505afa1580156124bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e09190612ab4565b90506001600160a01b0381166114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b602080820151600090815260039091526040812054806125b65760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034353a5249534b504f4f4c5f444f45535f4e4f545f60448201526411561254d560da1b606482015260840161035d565b611d008161270b565b60008181526001830160205260408120541515611d00565b6000611d00838361285d565b6000611564825490565b600054610100900460ff166126585760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161035d565b61266d6810dbdb5c1bdb995b9d60ba1b61245e565b600880546001600160a01b0319166001600160a01b039290921691909117905561269f65506f6c69637960d01b61245e565b600980546001600160a01b0319166001600160a01b03929092169190911790556126d16542756e646c6560d01b61245e565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000611d00838361297a565b6000611d0083836129c9565b60085460405163ba80b8ed60e01b8152600481018390526000916001600160a01b03169063ba80b8ed9060240160206040518083038186803b15801561275057600080fd5b505afa158015612764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127889190612ad0565b6127e05760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3034363a434f4d504f4e454e545f4e4f545f5249534b6044820152631413d3d360e21b606482015260840161035d565b6008546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561282557600080fd5b505afa158015612839573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d009190612ab4565b60008181526001830160205260408120548015612970576000612881600183612fbc565b855490915060009061289590600190612fbc565b90508181146129165760008660000182815481106128c357634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106128f457634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061293557634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611564565b6000915050611564565b60008181526001830160205260408120546129c157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611564565b506000611564565b60008260000182815481106129ee57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b600082601f830112612a11578081fd5b815167ffffffffffffffff811115612a2b57612a2b612fe9565b6020612a3f601f8301601f19168201612f34565b8281528582848701011115612a52578384fd5b835b83811015612a6f578581018301518282018401528201612a54565b83811115612a7f57848385840101525b5095945050505050565b80516003811061147157600080fd5b600060208284031215612aa9578081fd5b8135611d0081612fff565b600060208284031215612ac5578081fd5b8151611d0081612fff565b600060208284031215612ae1578081fd5b81518015158114611d00578182fd5b600060208284031215612b01578081fd5b5035919050565b60008060408385031215612b1a578081fd5b50508035926020909101359150565b600060208284031215612b3a578081fd5b815160078110611d00578182fd5b600060208284031215612b59578081fd5b815167ffffffffffffffff80821115612b70578283fd5b9083019060c08286031215612b83578283fd5b612b8d60c0612f34565b825160048110612b9b578485fd5b808252506020830151602082015260408301516040820152606083015182811115612bc4578485fd5b612bd087828601612a01565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612c07578081fd5b815167ffffffffffffffff80821115612c1e578283fd5b9083019060c08286031215612c31578283fd5b612c3b60c0612f34565b8251612c4681612fff565b815260208381015190820152612c5e60408401612a89565b6040820152606083015182811115612bc4578485fd5b6000610120808385031215612c87578182fd5b612c9081612f34565b9050612c9b83612a89565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080600080600060a08688031215612d10578081fd5b853594506020860135612d2281612fff565b93506040860135612d3281612fff565b94979396509394606081013594506080013592915050565b60008060408385031215612b1a578182fd5b60208082526021908201527f4552524f523a504f4c2d3030343a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526021908201527f4552524f523a504f4c2d3030333a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526022908201527f4552524f523a504f4c2d3030323a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b81518152602080830151610160830191612ebc908401826001600160a01b03169052565b506040830151612ed760408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612f5d57612f5d612fe9565b604052919050565b60008219821115612f7857612f78612fd3565b500190565b600082612f9857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612fb757612fb7612fd3565b500290565b600082821015612fce57612fce612fd3565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461301457600080fd5b5056fea2646970667358221220c3bffcc2760e53be86521cfbd777e61c2feecb4d34921b699ff2b261b3d0a62164736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063a65e2cfd116100c3578063eb8021141161007c578063eb802114146102ad578063ec833b0c146102cd578063edb5be30146102e0578063f1d354d0146102e8578063f93b3673146102f6578063fe64372b146103095761014d565b8063a65e2cfd14610239578063c397ae391461024c578063c4d66de81461025f578063d229f3b014610272578063d407ba0014610292578063da68771a146102a55761014d565b806367d42a8b1161011557806367d42a8b146101d25780637cdb808d146101e55780637db32844146101f8578063950be8031461020b578063a054381f1461021e578063a4266a66146102265761014d565b806302108268146101525780631b07b17f146101675780632127fd481461018f57806345fe1c6d146101a257806357419e8f146101bf575b600080fd5b610165610160366004612b08565b61031c565b005b61017a610175366004612af0565b610643565b60405190151581526020015b60405180910390f35b61016561019d366004612d4a565b610c1b565b6101b1670de0b6b3a764000081565b604051908152602001610186565b6101656101cd366004612cf9565b610ce3565b6101656101e0366004612af0565b611030565b6101b16101f3366004612d4a565b611401565b6101b1610206366004612af0565b611461565b610165610219366004612d4a565b611476565b6007546101b1565b6101b1610234366004612af0565b61154d565b610165610247366004612d4a565b61156a565b61016561025a366004612d4a565b6116bf565b61016561026d366004612a98565b611819565b6101b1610280366004612af0565b60009081526003602052604090205490565b6101656102a0366004612d4a565b611997565b6101b1611afd565b6102c06102bb366004612af0565b611b13565b6040516101869190612e98565b6101b16102db366004612d4a565b611c78565b6101b1600181565b670de0b6b3a76400006101b1565b610165610304366004612d4a565b611d07565b610165610317366004612b08565b611fa5565b63141bdbdb60e21b61032d8161245e565b6001600160a01b0316306001600160a01b0316146103665760405162461bcd60e51b815260040161035d90612e20565b60405180910390fd5b6103806d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146103b05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156103f957600080fd5b505afa15801561040d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104359190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561049257600080fd5b505afa1580156104a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ca9190612b29565b60068111156104e957634e487b7160e01b600052602160045260246000fd5b146105065760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561054b57600080fd5b505afa15801561055f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105879190810190612bf6565b9050600061059482612546565b604051630d8a70f160e21b8152600481018a9052602481018990529091506001600160a01b03821690633629c3c490604401600060405180830381600087803b1580156105e057600080fd5b505af11580156105f4573d6000803e3d6000fd5b505050506020828101516000908152600382526040808220548083526004909352812060088101805491928b9261062c908490612f65565b909155505042600a90910155505050505050505050565b600063141bdbdb60e21b6106568161245e565b6001600160a01b0316306001600160a01b0316146106865760405162461bcd60e51b815260040161035d90612e20565b6106a06d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146106d05760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561071957600080fd5b505afa15801561072d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107559190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ea9190612b29565b600681111561080957634e487b7160e01b600052602160045260246000fd5b146108265760405162461bcd60e51b815260040161035d90612d5c565b600954604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b15801561086b57600080fd5b505afa15801561087f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a79190810190612b48565b90506000815160038111156108cc57634e487b7160e01b600052602160045260246000fd5b146109295760405162461bcd60e51b815260206004820152602760248201527f4552524f523a504f4c2d3032303a4150504c49434154494f4e5f53544154455f6044820152661253959053125160ca1b606482015260840161035d565b60095460405163296586d360e21b8152600481018990526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561096e57600080fd5b505afa158015610982573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109aa9190810190612bf6565b602080820151600090815260039091526040808220549085015192935091906109d38383611401565b60008c81526002602090815260409182902083905581518e81529081018590529081018290529091507f893c64de8e253703b31297be336c07a93e39fe8eaa32127e2e6fff090f0aefae9060600160405180910390a160008381526004602052604090206005810154610a47908490612f65565b81600401541015610ab25760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a504f4c2d3032323a5249534b504f4f4c5f53554d5f494e53555260448201526e115117d0d05417d15610d151511151608a1b606482015260840161035d565b6000610abd86612546565b604051631121f7ef60e31b8152600481018f9052602481018590529091506001600160a01b0382169063890fbf7890604401602060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190612ad0565b9b508b15610bc95783826005016000828254610b5d9190612f65565b9250508190555082826007016000828254610b789190612f65565b909155505042600a83015560408051868152602081018f90529081018590527f66a2033a32603d30bde9ec2b858820c3202972f4ee1c8dd2c6e18391b6bfbaeb9060600160405180910390a1610c0b565b60408051868152602081018f90529081018590527fc6e314ad1256dc0c682dc6bb53e940b53f14aa323070798a8423a7f1d965d0599060600160405180910390a15b5050505050505050505050919050565b610c366e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610c665760405162461bcd60e51b815260040161035d90612dde565b60008111610cd15760405162461bcd60e51b815260206004820152603260248201527f4552524f523a504f4c2d3033323a4d41585f4e554d4245525f4f465f41435449604482015271159157d0955391131154d7d253959053125160721b606482015260840161035d565b60009182526005602052604090912055565b610cfe6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b031614610d2e5760405162461bcd60e51b815260040161035d90612dde565b60008581526004602090815260408083206007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018a90556005909352922055600981015415610ddc5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030353a5249534b504f4f4c5f414c52454144595f526044820152681151d254d51154915160ba1b606482015260840161035d565b6001600160a01b038516610e3c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3030363a57414c4c45545f414444524553535f5a45526044820152604f60f81b606482015260840161035d565b6001600160a01b038416610e925760405162461bcd60e51b815260206004820181905260248201527f4552524f523a504f4c2d3030373a45524332305f414444524553535f5a45524f604482015260640161035d565b610ea5670de0b6b3a76400006002612f9d565b831115610f0b5760405162461bcd60e51b815260206004820152602e60248201527f4552524f523a504f4c2d3030383a434f4c4c41544552414c495a4154494f4e5f60448201526d0d88aac8ad8bea89e9ebe90928e960931b606482015260840161035d565b60008211610f6d5760405162461bcd60e51b815260206004820152602960248201527f4552524f523a504f4c2d3030393a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b606482015260840161035d565b8581556001810180546001600160a01b038781166001600160a01b031992831681179093556002840180549188169190921681179091556003830185905560048301849055600060058401819055600684018190556007840181905560088401554260098401819055600a84015560408051898152602081019390935282015260608101849052608081018390527f798f4ae5a0a1e2125e89cf9f810639cd05f69896db5bd4f928bd53e6ef3bf8b99060a00160405180910390a1505050505050565b63141bdbdb60e21b6110418161245e565b6001600160a01b0316306001600160a01b0316146110715760405162461bcd60e51b815260040161035d90612e20565b61108b6d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146110bb5760405162461bcd60e51b815260040161035d90612e57565b60095460405163a3f685f960e01b8152600481018490526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561110157600080fd5b505afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111399190612c74565b905060028151600281111561115e57634e487b7160e01b600052602160045260246000fd5b146111b65760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3032353a504f4c4943595f53544154455f494e56414c604482015261125160f21b606482015260840161035d565b60095460405163296586d360e21b8152600481018590526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156111fb57600080fd5b505afa15801561120f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112379190810190612bf6565b9050600061124482612546565b604051636180264360e11b8152600481018790529091506001600160a01b0382169063c3004c8690602401600060405180830381600087803b15801561128957600080fd5b505af115801561129d573d6000803e3d6000fd5b5050600954604051632f141bd960e21b815260048101899052600093506001600160a01b03909116915063bc506f649060240160006040518083038186803b1580156112e857600080fd5b505afa1580156112fc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113249190810190612b48565b6020808501516000908152600382526040808220548083526004845281832060c08a01518c855260029095529183205494955093909261136391612fbc565b9050836040015182600501600082825461137d9190612fbc565b92505081905550808260070160008282546113989190612fbc565b909155505042600a83015560008981526002602090815260408083209290925581518581529081018b90529081018290527f4948a5a8dbd6a1190cb403d7731211af859364368aafe64e104d3f3b07e846cf9060600160405180910390a1505050505050505050565b60008061140d84611b13565b606001519050670de0b6b3a764000081141561142b5782915061145a565b801561145557670de0b6b3a76400006114448483612f9d565b61144e9190612f7d565b915061145a565b600091505b5092915050565b6000818152600560205260409020545b919050565b6114916e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146114c15760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206114d990826125bf565b6115305760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034343a42554e444c455f49445f4e4f545f494e5f53604482015261115560f21b606482015260840161035d565b600082815260066020526040902061154890826125d7565b505050565b6000818152600660205260408120611564906125e3565b92915050565b6115856e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146115b55760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116349190612b29565b600681111561165357634e487b7160e01b600052602160045260246000fd5b146116705760405162461bcd60e51b815260040161035d90612d9d565b600083815260046020526040812060068101805491928592611693908490612f65565b92505081905550828160080160008282546116ae9190612f65565b909155505042600a90910155505050565b6116da6e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b03161461170a5760405162461bcd60e51b815260040161035d90612dde565b816003600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561175157600080fd5b505afa158015611765573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117899190612b29565b60068111156117a857634e487b7160e01b600052602160045260246000fd5b146117c55760405162461bcd60e51b815260040161035d90612d9d565b6000838152600460205260409020600681015483116117fd57828160060160008282546117f29190612fbc565b909155506118059050565b600060068201555b828160080160008282546116ae9190612fbc565b600054610100900460ff16158080156118395750600054600160ff909116105b806118535750303b158015611853575060005460ff166001145b6118b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161035d565b6000805460ff1916600117905580156118d9576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611903600090565b6541636365737360d01b14611945576119246541636365737360d01b61245e565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61194d6125ed565b8015611993576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6119b26e5269736b706f6f6c5365727669636560881b61245e565b6001600160a01b0316336001600160a01b0316146119e25760405162461bcd60e51b815260040161035d90612dde565b60008281526006602052604090206119fa90826125bf565b15611a565760405162461bcd60e51b815260206004820152602660248201527f4552524f523a504f4c2d3034323a42554e444c455f49445f414c52454144595f604482015265125397d4d15560d21b606482015260840161035d565b6000828152600560209081526040808320546006909252909120611a79906125e3565b10611ae55760405162461bcd60e51b815260206004820152603660248201527f4552524f523a504f4c2d3034333a4d4158494d554d5f4e554d4245525f4f465f6044820152751050d512559157d0955391131154d7d4915050d2115160521b606482015260840161035d565b600082815260066020526040902061154890826126f3565b611b10670de0b6b3a76400006002612f9d565b81565b611b826040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506000818152600460208181526040928390208351610160810185528154815260018201546001600160a01b039081169382019390935260028201549092169382019390935260038301546060820152908201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201546101208201819052600a90920154610140820152906114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034303a5249534b504f4f4c5f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b6000828152600660205260408120611c8f906125e3565b8210611ce85760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3034313a42554e444c455f4944585f544f4f5f4c4152604482015261474560f01b606482015260840161035d565b6000838152600660205260409020611d0090836126ff565b9392505050565b611d307f496e7374616e63654f70657261746f725365727669636500000000000000000061245e565b6001600160a01b0316336001600160a01b031614611d9c5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a504f4c2d3030313a4e4f545f494e5354414e43455f4f504552416044820152622a27a960e91b606482015260840161035d565b600854604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b158015611de057600080fd5b505afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612ad0565b611e645760405162461bcd60e51b815260206004820152601960248201527f4552524f523a504f4c2d3031303a4e4f545f50524f4455435400000000000000604482015260640161035d565b60085460405163ba80b8ed60e01b8152600481018390526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611ea857600080fd5b505afa158015611ebc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee09190612ad0565b611f2c5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a504f4c2d3031313a4e4f545f5249534b504f4f4c000000000000604482015260640161035d565b60008281526003602052604090205415611f935760405162461bcd60e51b815260206004820152602260248201527f4552524f523a504f4c2d3031323a5249534b504f4f4c5f414c52454144595f53604482015261115560f21b606482015260840161035d565b60009182526003602052604090912055565b63141bdbdb60e21b611fb68161245e565b6001600160a01b0316306001600160a01b031614611fe65760405162461bcd60e51b815260040161035d90612e20565b6120006d50726f647563745365727669636560901b61245e565b6001600160a01b0316336001600160a01b0316146120305760405162461bcd60e51b815260040161035d90612e57565b60095460405163296586d360e21b81526004810185905284916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561207957600080fd5b505afa15801561208d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120b59190810190612bf6565b60208082015160009081526003918290526040902054919250600854604051635e966e4560e01b8152600481018490526001600160a01b0390911690635e966e459060240160206040518083038186803b15801561211257600080fd5b505afa158015612126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214a9190612b29565b600681111561216957634e487b7160e01b600052602160045260246000fd5b146121865760405162461bcd60e51b815260040161035d90612d5c565b60095460405163296586d360e21b8152600481018890526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156121cb57600080fd5b505afa1580156121df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122079190810190612bf6565b60208082015160009081526003825260408082205480835260049093529020600981015492935090916122865760405162461bcd60e51b815260206004820152602160248201527f4552524f523a504f4c2d3032363a5249534b504f4f4c5f49445f494e56414c496044820152601160fa1b606482015260840161035d565b87816006015410156122da5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032373a4341504954414c5f544f4f5f4c4f57000000604482015260640161035d565b878160070154101561233a5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3032383a4c4f434b45445f4341504954414c5f544f4f6044820152635f4c4f5760e01b606482015260840161035d565b878160080154101561238e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a504f4c2d3032393a42414c414e43455f544f4f5f4c4f57000000604482015260640161035d565b878160060160008282546123a29190612fbc565b92505081905550878160070160008282546123bd9190612fbc565b92505081905550878160080160008282546123d89190612fbc565b909155505042600a82015560006123ee84612546565b60405163412ac48360e11b8152600481018c9052602481018b90529091506001600160a01b03821690638255890690604401600060405180830381600087803b15801561243a57600080fd5b505af115801561244e573d6000803e3d6000fd5b5050505050505050505050505050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156124a857600080fd5b505afa1580156124bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124e09190612ab4565b90506001600160a01b0381166114715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161035d565b602080820151600090815260039091526040812054806125b65760405162461bcd60e51b815260206004820152602560248201527f4552524f523a504f4c2d3034353a5249534b504f4f4c5f444f45535f4e4f545f60448201526411561254d560da1b606482015260840161035d565b611d008161270b565b60008181526001830160205260408120541515611d00565b6000611d00838361285d565b6000611564825490565b600054610100900460ff166126585760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161035d565b61266d6810dbdb5c1bdb995b9d60ba1b61245e565b600880546001600160a01b0319166001600160a01b039290921691909117905561269f65506f6c69637960d01b61245e565b600980546001600160a01b0319166001600160a01b03929092169190911790556126d16542756e646c6560d01b61245e565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6000611d00838361297a565b6000611d0083836129c9565b60085460405163ba80b8ed60e01b8152600481018390526000916001600160a01b03169063ba80b8ed9060240160206040518083038186803b15801561275057600080fd5b505afa158015612764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127889190612ad0565b6127e05760405162461bcd60e51b8152602060048201526024808201527f4552524f523a504f4c2d3034363a434f4d504f4e454e545f4e4f545f5249534b6044820152631413d3d360e21b606482015260840161035d565b6008546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561282557600080fd5b505afa158015612839573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d009190612ab4565b60008181526001830160205260408120548015612970576000612881600183612fbc565b855490915060009061289590600190612fbc565b90508181146129165760008660000182815481106128c357634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106128f457634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b855486908061293557634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611564565b6000915050611564565b60008181526001830160205260408120546129c157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611564565b506000611564565b60008260000182815481106129ee57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b600082601f830112612a11578081fd5b815167ffffffffffffffff811115612a2b57612a2b612fe9565b6020612a3f601f8301601f19168201612f34565b8281528582848701011115612a52578384fd5b835b83811015612a6f578581018301518282018401528201612a54565b83811115612a7f57848385840101525b5095945050505050565b80516003811061147157600080fd5b600060208284031215612aa9578081fd5b8135611d0081612fff565b600060208284031215612ac5578081fd5b8151611d0081612fff565b600060208284031215612ae1578081fd5b81518015158114611d00578182fd5b600060208284031215612b01578081fd5b5035919050565b60008060408385031215612b1a578081fd5b50508035926020909101359150565b600060208284031215612b3a578081fd5b815160078110611d00578182fd5b600060208284031215612b59578081fd5b815167ffffffffffffffff80821115612b70578283fd5b9083019060c08286031215612b83578283fd5b612b8d60c0612f34565b825160048110612b9b578485fd5b808252506020830151602082015260408301516040820152606083015182811115612bc4578485fd5b612bd087828601612a01565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612c07578081fd5b815167ffffffffffffffff80821115612c1e578283fd5b9083019060c08286031215612c31578283fd5b612c3b60c0612f34565b8251612c4681612fff565b815260208381015190820152612c5e60408401612a89565b6040820152606083015182811115612bc4578485fd5b6000610120808385031215612c87578182fd5b612c9081612f34565b9050612c9b83612a89565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600080600080600060a08688031215612d10578081fd5b853594506020860135612d2281612fff565b93506040860135612d3281612fff565b94979396509394606081013594506080013592915050565b60008060408385031215612b1a578182fd5b60208082526021908201527f4552524f523a504f4c2d3030343a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526021908201527f4552524f523a504f4c2d3030333a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526022908201527f4552524f523a504f4c2d3030323a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b81518152602080830151610160830191612ebc908401826001600160a01b03169052565b506040830151612ed760408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612f5d57612f5d612fe9565b604052919050565b60008219821115612f7857612f78612fd3565b500190565b600082612f9857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612fb757612fb7612fd3565b500290565b600082821015612fce57612fce612fd3565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461301457600080fd5b5056fea2646970667358221220c3bffcc2760e53be86521cfbd777e61c2feecb4d34921b699ff2b261b3d0a62164736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/modules/QueryModule.sol/QueryModule.dbg.json b/artifacts/contracts/modules/QueryModule.sol/QueryModule.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/modules/QueryModule.sol/QueryModule.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/modules/QueryModule.sol/QueryModule.json b/artifacts/contracts/modules/QueryModule.sol/QueryModule.json deleted file mode 100644 index 56513b82..00000000 --- a/artifacts/contracts/modules/QueryModule.sol/QueryModule.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "QueryModule", - "sourceName": "contracts/modules/QueryModule.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "LogOracleCanceled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "responsibleOracleId", - "type": "uint256" - } - ], - "name": "LogOracleRequested", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "responder", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "name": "LogOracleResponded", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "cancel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getOracleRequestCount", - "outputs": [ - { - "internalType": "uint256", - "name": "_count", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "getProcessId", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "input", - "type": "bytes" - }, - { - "internalType": "string", - "name": "callbackMethodName", - "type": "string" - }, - { - "internalType": "address", - "name": "callbackContractAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "responsibleOracleId", - "type": "uint256" - } - ], - "name": "request", - "outputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "responder", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "respond", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611844806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632c933f221461006757806338aec7cc1461008c57806340e58ee5146100945780639af8c4ba146100a95780639b04ed30146100bc578063c4d66de8146100cf575b600080fd5b61007a61007536600461149c565b6100e2565b60405190815260200160405180910390f35b60035461007a565b6100a76100a236600461156e565b61044d565b005b6100a76100b736600461159e565b61063a565b61007a6100ca36600461156e565b610b9f565b6100a76100dd36600461143d565b610dac565b600064517565727960d81b6100f681610f2a565b6001600160a01b0316306001600160a01b03161461015b5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f524147450000000060448201526064015b60405180910390fd5b6101756d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146101a55760405162461bcd60e51b815260040161015290611706565b600254604051632b1c7f7360e01b81526001600160a01b0386811660048301526000921690632b1c7f739060240160206040518083038186803b1580156101eb57600080fd5b505afa1580156101ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102239190611586565b600254604051630e48080360e21b8152600481018390529192506001600160a01b031690633920200c9060240160206040518083038186803b15801561026857600080fd5b505afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a0919061147c565b6103025760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a5155432d3031303a43414c4c4241434b5f414444524553535f4960448201526c14d7d393d517d41493d11550d5609a1b6064820152608401610152565b600380546001810180835560008381529195509091908590811061033657634e487b7160e01b600052603260045260246000fd5b600091825260209091206006909102018b81559050610359600482018b8b61131e565b5061036860038201898961131e565b506002810180546001600160a01b0319166001600160a01b0388161790556001810185905542600582015561039c85611012565b6001600160a01b031663ffc79065858c8c6040518463ffffffff1660e01b81526004016103cb93929190611771565b600060405180830381600087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b5050604080518e8152602081018890529081018890527f97e3e6ac41333a7d6e86bf69ab3f55df1e83baf81430f285faf030974809c3b19250606001905060405180910390a1505050979650505050505050565b64517565727960d81b61045f81610f2a565b6001600160a01b0316306001600160a01b0316146104bf5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f52414745000000006044820152606401610152565b6104d96d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146105095760405162461bcd60e51b815260040161015290611706565b60006003838154811061052c57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201905060008160050154116105905760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3033303a524551554553545f49445f494e56414c49446044820152606401610152565b600383815481106105b157634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b0319169055906105ea60038301826113a2565b6105f86004830160006113a2565b506000600591909101556040518381527f055856e72174cf1dcf5c10f8a1788a179a6e5c272427edc5ccc7f60becfec6899060200160405180910390a1505050565b6106536c4f7261636c655365727669636560981b610f2a565b6001600160a01b0316336001600160a01b0316146106b35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4352432d3030313a4e4f545f4f5241434c455f534552564943456044820152606401610152565b83836000600383815481106106d857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610744906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610770906117c4565b80156107bd5780601f10610792576101008083540402835291602001916107bd565b820191906000526020600020905b8154815290600101906020018083116107a057829003601f168201915b505050505081526020016004820180546107d6906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610802906117c4565b801561084f5780601f106108245761010080835404028352916020019161084f565b820191906000526020600020905b81548152906001019060200180831161083257829003601f168201915b50505050508152602001600582015481525050905060008160a00151116108b85760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3030323a524551554553545f49445f494e56414c49446044820152606401610152565b602081015160006108c882611012565b9050836001600160a01b0316816001600160a01b0316146109375760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5155432d3030333a4f5241434c455f4e4f545f524553504f4e5360448201526349424c4560e01b6064820152608401610152565b600060038a8154811061095a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602019050600081600301604051602001610980919061163e565b604051602081830303815290604052905060008260000154905060008360020160009054906101000a90046001600160a01b03166001600160a01b0316838e848e8e6040516024016109d59493929190611747565b60408051601f1981840301815290829052916109f091611622565b60408051918290039091206020830180516001600160e01b03166001600160e01b031990921691909117905251610a279190611622565b6000604051808303816000865af19150503d8060008114610a64576040519150601f19603f3d011682016040523d82523d6000602084013e610a69565b606091505b5050905080610ace5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a5155432d3032303a50524f445543545f43414c4c4241434b5f5560448201526a1394d550d0d154d4d1955360aa1b6064820152608401610152565b60038d81548110610aef57634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b031916905590610b2860038301826113a2565b610b366004830160006113a2565b5060006005919091015560408051838152602081018f90526001600160a01b038e1681830152821515606082015290517f4839cd12918767a83a4ef7b6a1abd1878ddfd2598fae0ad3b455c863cc177ad99181900360800190a150505050505050505050505050565b60008060038381548110610bc357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610c2f906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5b906117c4565b8015610ca85780601f10610c7d57610100808354040283529160200191610ca8565b820191906000526020600020905b815481529060010190602001808311610c8b57829003601f168201915b50505050508152602001600482018054610cc1906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906117c4565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b50505050508152602001600582015481525050905060008160a0015111610da35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3034303a524551554553545f49445f494e56414c49446044820152606401610152565b5190505b919050565b600054610100900460ff1615808015610dcc5750600054600160ff909116105b80610de65750303b158015610de6575060005460ff166001145b610e495760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610152565b6000805460ff191660011790558015610e6c576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610e96600090565b6541636365737360d01b14610ed857610eb76541636365737360d01b610f2a565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610ee061127c565b8015610f26576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611460565b90506001600160a01b038116610da75760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610152565b6002546040516309e4fb4360e31b81526004810183905260009182916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561105b57600080fd5b505afa15801561106f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110939190611460565b91508190506000600254604051636ea8e43560e11b8152600481018690526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156110de57600080fd5b505afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611116919061154f565b600281111561113557634e487b7160e01b600052602160045260246000fd5b1461118d5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5155432d3034313a434f4d504f4e454e545f4e4f545f4f5241436044820152614c4560f01b6064820152608401610152565b600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156111d257600080fd5b505afa1580156111e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120a9190611530565b600681111561122957634e487b7160e01b600052602160045260246000fd5b146112765760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5155432d3034323a4f5241434c455f4e4f545f414354495645006044820152606401610152565b50919050565b600054610100900460ff166112e75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610152565b6112fc6810dbdb5c1bdb995b9d60ba1b610f2a565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b82805461132a906117c4565b90600052602060002090601f01602090048101928261134c5760008555611392565b82601f106113655782800160ff19823516178555611392565b82800160010185558215611392579182015b82811115611392578235825591602001919060010190611377565b5061139e9291506113e1565b5090565b5080546113ae906117c4565b6000825580601f106113c057506113de565b601f0160209004906000526020600020908101906113de91906113e1565b50565b5b8082111561139e57600081556001016113e2565b60008083601f840112611407578182fd5b50813567ffffffffffffffff81111561141e578182fd5b60208301915083602082850101111561143657600080fd5b9250929050565b60006020828403121561144e578081fd5b8135611459816117f9565b9392505050565b600060208284031215611471578081fd5b8151611459816117f9565b60006020828403121561148d578081fd5b81518015158114611459578182fd5b600080600080600080600060a0888a0312156114b6578283fd5b87359650602088013567ffffffffffffffff808211156114d4578485fd5b6114e08b838c016113f6565b909850965060408a01359150808211156114f8578485fd5b506115058a828b016113f6565b9095509350506060880135611519816117f9565b809250506080880135905092959891949750929550565b600060208284031215611541578081fd5b815160078110611459578182fd5b600060208284031215611560578081fd5b815160038110611459578182fd5b60006020828403121561157f578081fd5b5035919050565b600060208284031215611597578081fd5b5051919050565b600080600080606085870312156115b3578384fd5b8435935060208501356115c5816117f9565b9250604085013567ffffffffffffffff8111156115e0578283fd5b6115ec878288016113f6565b95989497509550505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251611634818460208701611794565b9190910192915050565b815460009081906002810460018083168061165a57607f831692505b602080841082141561167a57634e487b7160e01b87526022600452602487fd5b81801561168e576001811461169f576116cb565b60ff198616895284890196506116cb565b60008a815260209020885b868110156116c35781548b8201529085019083016116aa565b505084890196505b5050505050506116fe817f2875696e743235362c627974657333322c627974657329000000000000000000815260170190565b949350505050565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b6000858252846020830152606060408301526117676060830184866115f8565b9695505050505050565b60008482526040602083015261178b6040830184866115f8565b95945050505050565b60005b838110156117af578181015183820152602001611797565b838111156117be576000848401525b50505050565b6002810460018216806117d857607f821691505b6020821081141561127657634e487b7160e01b600052602260045260246000fd5b6001600160a01b03811681146113de57600080fdfea264697066735822122041ed1675bdc184dac22d7618a0614577d9e87d9f88a1e8f5c79158a16aa26dc164736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80632c933f221461006757806338aec7cc1461008c57806340e58ee5146100945780639af8c4ba146100a95780639b04ed30146100bc578063c4d66de8146100cf575b600080fd5b61007a61007536600461149c565b6100e2565b60405190815260200160405180910390f35b60035461007a565b6100a76100a236600461156e565b61044d565b005b6100a76100b736600461159e565b61063a565b61007a6100ca36600461156e565b610b9f565b6100a76100dd36600461143d565b610dac565b600064517565727960d81b6100f681610f2a565b6001600160a01b0316306001600160a01b03161461015b5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f524147450000000060448201526064015b60405180910390fd5b6101756d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146101a55760405162461bcd60e51b815260040161015290611706565b600254604051632b1c7f7360e01b81526001600160a01b0386811660048301526000921690632b1c7f739060240160206040518083038186803b1580156101eb57600080fd5b505afa1580156101ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102239190611586565b600254604051630e48080360e21b8152600481018390529192506001600160a01b031690633920200c9060240160206040518083038186803b15801561026857600080fd5b505afa15801561027c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102a0919061147c565b6103025760405162461bcd60e51b815260206004820152602d60248201527f4552524f523a5155432d3031303a43414c4c4241434b5f414444524553535f4960448201526c14d7d393d517d41493d11550d5609a1b6064820152608401610152565b600380546001810180835560008381529195509091908590811061033657634e487b7160e01b600052603260045260246000fd5b600091825260209091206006909102018b81559050610359600482018b8b61131e565b5061036860038201898961131e565b506002810180546001600160a01b0319166001600160a01b0388161790556001810185905542600582015561039c85611012565b6001600160a01b031663ffc79065858c8c6040518463ffffffff1660e01b81526004016103cb93929190611771565b600060405180830381600087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b5050604080518e8152602081018890529081018890527f97e3e6ac41333a7d6e86bf69ab3f55df1e83baf81430f285faf030974809c3b19250606001905060405180910390a1505050979650505050505050565b64517565727960d81b61045f81610f2a565b6001600160a01b0316306001600160a01b0316146104bf5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f52414745000000006044820152606401610152565b6104d96d50726f647563745365727669636560901b610f2a565b6001600160a01b0316336001600160a01b0316146105095760405162461bcd60e51b815260040161015290611706565b60006003838154811061052c57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201905060008160050154116105905760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3033303a524551554553545f49445f494e56414c49446044820152606401610152565b600383815481106105b157634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b0319169055906105ea60038301826113a2565b6105f86004830160006113a2565b506000600591909101556040518381527f055856e72174cf1dcf5c10f8a1788a179a6e5c272427edc5ccc7f60becfec6899060200160405180910390a1505050565b6106536c4f7261636c655365727669636560981b610f2a565b6001600160a01b0316336001600160a01b0316146106b35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a4352432d3030313a4e4f545f4f5241434c455f534552564943456044820152606401610152565b83836000600383815481106106d857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610744906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610770906117c4565b80156107bd5780601f10610792576101008083540402835291602001916107bd565b820191906000526020600020905b8154815290600101906020018083116107a057829003601f168201915b505050505081526020016004820180546107d6906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610802906117c4565b801561084f5780601f106108245761010080835404028352916020019161084f565b820191906000526020600020905b81548152906001019060200180831161083257829003601f168201915b50505050508152602001600582015481525050905060008160a00151116108b85760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3030323a524551554553545f49445f494e56414c49446044820152606401610152565b602081015160006108c882611012565b9050836001600160a01b0316816001600160a01b0316146109375760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5155432d3030333a4f5241434c455f4e4f545f524553504f4e5360448201526349424c4560e01b6064820152608401610152565b600060038a8154811061095a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602019050600081600301604051602001610980919061163e565b604051602081830303815290604052905060008260000154905060008360020160009054906101000a90046001600160a01b03166001600160a01b0316838e848e8e6040516024016109d59493929190611747565b60408051601f1981840301815290829052916109f091611622565b60408051918290039091206020830180516001600160e01b03166001600160e01b031990921691909117905251610a279190611622565b6000604051808303816000865af19150503d8060008114610a64576040519150601f19603f3d011682016040523d82523d6000602084013e610a69565b606091505b5050905080610ace5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a5155432d3032303a50524f445543545f43414c4c4241434b5f5560448201526a1394d550d0d154d4d1955360aa1b6064820152608401610152565b60038d81548110610aef57634e487b7160e01b600052603260045260246000fd5b600091825260208220600690910201818155600181018290556002810180546001600160a01b031916905590610b2860038301826113a2565b610b366004830160006113a2565b5060006005919091015560408051838152602081018f90526001600160a01b038e1681830152821515606082015290517f4839cd12918767a83a4ef7b6a1abd1878ddfd2598fae0ad3b455c863cc177ad99181900360800190a150505050505050505050505050565b60008060038381548110610bc357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600382018054610c2f906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5b906117c4565b8015610ca85780601f10610c7d57610100808354040283529160200191610ca8565b820191906000526020600020905b815481529060010190602001808311610c8b57829003601f168201915b50505050508152602001600482018054610cc1906117c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610ced906117c4565b8015610d3a5780601f10610d0f57610100808354040283529160200191610d3a565b820191906000526020600020905b815481529060010190602001808311610d1d57829003601f168201915b50505050508152602001600582015481525050905060008160a0015111610da35760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5155432d3034303a524551554553545f49445f494e56414c49446044820152606401610152565b5190505b919050565b600054610100900460ff1615808015610dcc5750600054600160ff909116105b80610de65750303b158015610de6575060005460ff166001145b610e495760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610152565b6000805460ff191660011790558015610e6c576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610e96600090565b6541636365737360d01b14610ed857610eb76541636365737360d01b610f2a565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610ee061127c565b8015610f26576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015610f7457600080fd5b505afa158015610f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fac9190611460565b90506001600160a01b038116610da75760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610152565b6002546040516309e4fb4360e31b81526004810183905260009182916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561105b57600080fd5b505afa15801561106f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110939190611460565b91508190506000600254604051636ea8e43560e11b8152600481018690526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156110de57600080fd5b505afa1580156110f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611116919061154f565b600281111561113557634e487b7160e01b600052602160045260246000fd5b1461118d5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5155432d3034313a434f4d504f4e454e545f4e4f545f4f5241436044820152614c4560f01b6064820152608401610152565b600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156111d257600080fd5b505afa1580156111e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120a9190611530565b600681111561122957634e487b7160e01b600052602160045260246000fd5b146112765760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5155432d3034323a4f5241434c455f4e4f545f414354495645006044820152606401610152565b50919050565b600054610100900460ff166112e75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610152565b6112fc6810dbdb5c1bdb995b9d60ba1b610f2a565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b82805461132a906117c4565b90600052602060002090601f01602090048101928261134c5760008555611392565b82601f106113655782800160ff19823516178555611392565b82800160010185558215611392579182015b82811115611392578235825591602001919060010190611377565b5061139e9291506113e1565b5090565b5080546113ae906117c4565b6000825580601f106113c057506113de565b601f0160209004906000526020600020908101906113de91906113e1565b50565b5b8082111561139e57600081556001016113e2565b60008083601f840112611407578182fd5b50813567ffffffffffffffff81111561141e578182fd5b60208301915083602082850101111561143657600080fd5b9250929050565b60006020828403121561144e578081fd5b8135611459816117f9565b9392505050565b600060208284031215611471578081fd5b8151611459816117f9565b60006020828403121561148d578081fd5b81518015158114611459578182fd5b600080600080600080600060a0888a0312156114b6578283fd5b87359650602088013567ffffffffffffffff808211156114d4578485fd5b6114e08b838c016113f6565b909850965060408a01359150808211156114f8578485fd5b506115058a828b016113f6565b9095509350506060880135611519816117f9565b809250506080880135905092959891949750929550565b600060208284031215611541578081fd5b815160078110611459578182fd5b600060208284031215611560578081fd5b815160038110611459578182fd5b60006020828403121561157f578081fd5b5035919050565b600060208284031215611597578081fd5b5051919050565b600080600080606085870312156115b3578384fd5b8435935060208501356115c5816117f9565b9250604085013567ffffffffffffffff8111156115e0578283fd5b6115ec878288016113f6565b95989497509550505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251611634818460208701611794565b9190910192915050565b815460009081906002810460018083168061165a57607f831692505b602080841082141561167a57634e487b7160e01b87526022600452602487fd5b81801561168e576001811461169f576116cb565b60ff198616895284890196506116cb565b60008a815260209020885b868110156116c35781548b8201529085019083016116aa565b505084890196505b5050505050506116fe817f2875696e743235362c627974657333322c627974657329000000000000000000815260170190565b949350505050565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b6000858252846020830152606060408301526117676060830184866115f8565b9695505050505050565b60008482526040602083015261178b6040830184866115f8565b95945050505050565b60005b838110156117af578181015183820152602001611797565b838111156117be576000848401525b50505050565b6002810460018216806117d857607f821691505b6020821081141561127657634e487b7160e01b600052602260045260246000fd5b6001600160a01b03811681146113de57600080fdfea264697066735822122041ed1675bdc184dac22d7618a0614577d9e87d9f88a1e8f5c79158a16aa26dc164736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/modules/RegistryController.sol/RegistryController.dbg.json b/artifacts/contracts/modules/RegistryController.sol/RegistryController.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/modules/RegistryController.sol/RegistryController.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/modules/RegistryController.sol/RegistryController.json b/artifacts/contracts/modules/RegistryController.sol/RegistryController.json deleted file mode 100644 index 23d6bc2a..00000000 --- a/artifacts/contracts/modules/RegistryController.sol/RegistryController.json +++ /dev/null @@ -1,392 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "RegistryController", - "sourceName": "contracts/modules/RegistryController.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "release", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "contractName", - "type": "bytes32" - } - ], - "name": "LogContractDeregistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "release", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "contractName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isNew", - "type": "bool" - } - ], - "name": "LogContractRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "release", - "type": "bytes32" - } - ], - "name": "LogReleasePrepared", - "type": "event" - }, - { - "inputs": [], - "name": "MAX_CONTRACTS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "_contracts", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "_contractsInRelease", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "contractName", - "outputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "contracts", - "outputs": [ - { - "internalType": "uint256", - "name": "_numberOfContracts", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "deregister", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "deregisterInRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "ensureSender", - "outputs": [ - { - "internalType": "bool", - "name": "_senderMatches", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "getContract", - "outputs": [ - { - "internalType": "address", - "name": "_addr", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "getContractInRelease", - "outputs": [ - { - "internalType": "address", - "name": "_addr", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRelease", - "outputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_initialRelease", - "type": "bytes32" - } - ], - "name": "initializeRegistry", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_newRelease", - "type": "bytes32" - } - ], - "name": "prepareRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "name": "registerInRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "release", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "startBlock", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6116b3806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806376b707b7116100a2578063c4d66de811610071578063c4d66de814610248578063d22057a91461025b578063dc527b081461026e578063e16c7d9814610281578063f6b3e7d01461029457610116565b806376b707b71461021157806386d1a69f14610219578063893917ea14610222578063b0ef18a01461023557610116565b806348cd4cb1116100e957806348cd4cb1146101815780634a941e5e1461018a57806356bbc19d146101d657806369923515146101e95780636c0f79b61461020957610116565b80631d5e73141461011b578063208131541461013057806324042a0a146101435780632ca65a791461015e575b600080fd5b61012e61012936600461150b565b6102a7565b005b61012e61013e3660046114a3565b610368565b61014b606481565b6040519081526020015b60405180910390f35b61017161016c366004611458565b61041d565b6040519015158152602001610155565b61014b60035481565b6101be6101983660046114ea565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610155565b61012e6101e43660046114a3565b610447565b61014b6101f73660046114a3565b60056020526000908152604090205481565b61014b6105bb565b60025461014b565b61014b60025481565b61012e6102303660046114a3565b6105da565b6101be6102433660046114ea565b6107ef565b61012e610256366004611420565b610802565b61012e6102693660046114bb565b610938565b61012e61027c3660046114ea565b6109ed565b6101be61028f3660046114a3565b610a9d565b61014b6102a23660046114a3565b610ab1565b6000546201000090046001600160a01b0316632ca65a796102c53390565b6040518263ffffffff1660e01b81526004016102e19190611543565b60206040518083038186803b1580156102f957600080fd5b505afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103319190611483565b6103565760405162461bcd60e51b815260040161034d906115c5565b60405180910390fd5b6103638360008484610acc565b505050565b6000546201000090046001600160a01b0316632ca65a796103863390565b6040518263ffffffff1660e01b81526004016103a29190611543565b60206040518083038186803b1580156103ba57600080fd5b505afa1580156103ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f29190611483565b61040e5760405162461bcd60e51b815260040161034d906115c5565b61041a60025482610e86565b50565b600061042b600254836110a8565b6001600160a01b0316836001600160a01b031614905092915050565b600054610100900460ff16158080156104675750600054600160ff909116105b806104885750610476306110ce565b158015610488575060005460ff166001145b6104a45760405162461bcd60e51b815260040161034d90611577565b6000805460ff1916600117905580156104c7576000805461ff0019166101001790555b6000805462010000600160b01b03191630620100000217905560028290556104ec3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b039790971696909617909555925482526006905220610556916110e1565b506002546000908152600560205260409020600190554360035580156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b60025460009081526006602052604081206105d5906110ed565b905090565b6000546201000090046001600160a01b0316632ca65a796105f83390565b6040518263ffffffff1660e01b81526004016106149190611543565b60206040518083038186803b15801561062c57600080fd5b505afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611483565b6106805760405162461bcd60e51b815260040161034d906115c5565b600254600090815260056020526040902054806106df5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c454153450000000000604482015260640161034d565b600082815260056020526040902054156107475760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b606482015260840161034d565b60005b818110156107b957600254600090815260066020526040812061076d90836110f7565b60025460009081526004602090815260408083208484529091529020549091506107a690859060019084906001600160a01b0316610acc565b506107b2600182611608565b905061074a565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b4906020016105ae565b60006107fb83836110a8565b9392505050565b600054610100900460ff16158080156108225750600054600160ff909116105b806108435750610831306110ce565b158015610843575060005460ff166001145b61085f5760405162461bcd60e51b815260040161034d90611577565b6000805460ff191660011790558015610882576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556108ac600090565b6541636365737360d01b146108ee576108cd6541636365737360d01b611103565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108f66111eb565b80156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016105ae565b6000546201000090046001600160a01b0316632ca65a796109563390565b6040518263ffffffff1660e01b81526004016109729190611543565b60206040518083038186803b15801561098a57600080fd5b505afa15801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c29190611483565b6109de5760405162461bcd60e51b815260040161034d906115c5565b6105b760025460008484610acc565b6000546201000090046001600160a01b0316632ca65a79610a0b3390565b6040518263ffffffff1660e01b8152600401610a279190611543565b60206040518083038186803b158015610a3f57600080fd5b505afa158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a779190611483565b610a935760405162461bcd60e51b815260040161034d906115c5565b6105b78282610e86565b6000610aab600254836110a8565b92915050565b6002546000908152600660205260408120610aab90836110f7565b6000848152600660205260408120606490610ae6906110ed565b10610b3d5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b606482015260840161034d565b600085815260056020526040902054151580610b565750835b610ba25760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e000000604482015260640161034d565b82610bf95760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b606482015260840161034d565b6000858152600660205260409020610c119084611258565b1580610c6257508276496e7374616e63654f70657261746f725365727669636560481b148015610c62575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610cb95760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b606482015260840161034d565b6001600160a01b038216610d1b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b606482015260840161034d565b60008581526004602090815260408083208684529091529020546001600160a01b0316610d7f576000858152600660205260409020610d5a90846110e1565b506000858152600560205260408120805491610d7583611637565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610dc4906110ed565b60008681526005602052604090205414610e2f5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a79610ea43390565b6040518263ffffffff1660e01b8152600401610ec09190611543565b60206040518083038186803b158015610ed857600080fd5b505afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f109190611483565b610f2c5760405162461bcd60e51b815260040161034d906115c5565b6000828152600660205260409020610f449082611258565b610f905760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e0000604482015260640161034d565b6000828152600660205260409020610fa89082611270565b506000828152600560205260408120805460019290610fc8908490611620565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b031916905584835260069091529020611007906110ed565b600083815260056020526040902054146110725760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a13191016105ae565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b60006107fb838361127c565b6000610aab825490565b60006107fb83836112cb565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611185919061143c565b90506001600160a01b0381166110dc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161034d565b600054610100900460ff166112565760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161034d565b565b600081815260018301602052604081205415156107fb565b60006107fb8383611303565b60008181526001830160205260408120546112c357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610aab565b506000610aab565b60008260000182815481106112f057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120548015611416576000611327600183611620565b855490915060009061133b90600190611620565b90508181146113bc57600086600001828154811061136957634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061139a57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806113db57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610aab565b6000915050610aab565b600060208284031215611431578081fd5b81356107fb81611668565b60006020828403121561144d578081fd5b81516107fb81611668565b6000806040838503121561146a578081fd5b823561147581611668565b946020939093013593505050565b600060208284031215611494578081fd5b815180151581146107fb578182fd5b6000602082840312156114b4578081fd5b5035919050565b600080604083850312156114cd578182fd5b8235915060208301356114df81611668565b809150509250929050565b600080604083850312156114fc578182fd5b50508035926020909101359150565b60008060006060848603121561151f578081fd5b8335925060208401359150604084013561153881611668565b809150509250925092565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000821982111561161b5761161b611652565b500190565b60008282101561163257611632611652565b500390565b600060001982141561164b5761164b611652565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461041a57600080fdfea264697066735822122010fc0f128c1a977b4951f6dee77033c18bcc4363fb956c3ba337add63496ccbf64736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c806376b707b7116100a2578063c4d66de811610071578063c4d66de814610248578063d22057a91461025b578063dc527b081461026e578063e16c7d9814610281578063f6b3e7d01461029457610116565b806376b707b71461021157806386d1a69f14610219578063893917ea14610222578063b0ef18a01461023557610116565b806348cd4cb1116100e957806348cd4cb1146101815780634a941e5e1461018a57806356bbc19d146101d657806369923515146101e95780636c0f79b61461020957610116565b80631d5e73141461011b578063208131541461013057806324042a0a146101435780632ca65a791461015e575b600080fd5b61012e61012936600461150b565b6102a7565b005b61012e61013e3660046114a3565b610368565b61014b606481565b6040519081526020015b60405180910390f35b61017161016c366004611458565b61041d565b6040519015158152602001610155565b61014b60035481565b6101be6101983660046114ea565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610155565b61012e6101e43660046114a3565b610447565b61014b6101f73660046114a3565b60056020526000908152604090205481565b61014b6105bb565b60025461014b565b61014b60025481565b61012e6102303660046114a3565b6105da565b6101be6102433660046114ea565b6107ef565b61012e610256366004611420565b610802565b61012e6102693660046114bb565b610938565b61012e61027c3660046114ea565b6109ed565b6101be61028f3660046114a3565b610a9d565b61014b6102a23660046114a3565b610ab1565b6000546201000090046001600160a01b0316632ca65a796102c53390565b6040518263ffffffff1660e01b81526004016102e19190611543565b60206040518083038186803b1580156102f957600080fd5b505afa15801561030d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103319190611483565b6103565760405162461bcd60e51b815260040161034d906115c5565b60405180910390fd5b6103638360008484610acc565b505050565b6000546201000090046001600160a01b0316632ca65a796103863390565b6040518263ffffffff1660e01b81526004016103a29190611543565b60206040518083038186803b1580156103ba57600080fd5b505afa1580156103ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f29190611483565b61040e5760405162461bcd60e51b815260040161034d906115c5565b61041a60025482610e86565b50565b600061042b600254836110a8565b6001600160a01b0316836001600160a01b031614905092915050565b600054610100900460ff16158080156104675750600054600160ff909116105b806104885750610476306110ce565b158015610488575060005460ff166001145b6104a45760405162461bcd60e51b815260040161034d90611577565b6000805460ff1916600117905580156104c7576000805461ff0019166101001790555b6000805462010000600160b01b03191630620100000217905560028290556104ec3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b039790971696909617909555925482526006905220610556916110e1565b506002546000908152600560205260409020600190554360035580156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b60025460009081526006602052604081206105d5906110ed565b905090565b6000546201000090046001600160a01b0316632ca65a796105f83390565b6040518263ffffffff1660e01b81526004016106149190611543565b60206040518083038186803b15801561062c57600080fd5b505afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611483565b6106805760405162461bcd60e51b815260040161034d906115c5565b600254600090815260056020526040902054806106df5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c454153450000000000604482015260640161034d565b600082815260056020526040902054156107475760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b606482015260840161034d565b60005b818110156107b957600254600090815260066020526040812061076d90836110f7565b60025460009081526004602090815260408083208484529091529020549091506107a690859060019084906001600160a01b0316610acc565b506107b2600182611608565b905061074a565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b4906020016105ae565b60006107fb83836110a8565b9392505050565b600054610100900460ff16158080156108225750600054600160ff909116105b806108435750610831306110ce565b158015610843575060005460ff166001145b61085f5760405162461bcd60e51b815260040161034d90611577565b6000805460ff191660011790558015610882576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556108ac600090565b6541636365737360d01b146108ee576108cd6541636365737360d01b611103565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6108f66111eb565b80156105b7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016105ae565b6000546201000090046001600160a01b0316632ca65a796109563390565b6040518263ffffffff1660e01b81526004016109729190611543565b60206040518083038186803b15801561098a57600080fd5b505afa15801561099e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c29190611483565b6109de5760405162461bcd60e51b815260040161034d906115c5565b6105b760025460008484610acc565b6000546201000090046001600160a01b0316632ca65a79610a0b3390565b6040518263ffffffff1660e01b8152600401610a279190611543565b60206040518083038186803b158015610a3f57600080fd5b505afa158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a779190611483565b610a935760405162461bcd60e51b815260040161034d906115c5565b6105b78282610e86565b6000610aab600254836110a8565b92915050565b6002546000908152600660205260408120610aab90836110f7565b6000848152600660205260408120606490610ae6906110ed565b10610b3d5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b606482015260840161034d565b600085815260056020526040902054151580610b565750835b610ba25760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e000000604482015260640161034d565b82610bf95760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b606482015260840161034d565b6000858152600660205260409020610c119084611258565b1580610c6257508276496e7374616e63654f70657261746f725365727669636560481b148015610c62575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610cb95760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b606482015260840161034d565b6001600160a01b038216610d1b5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b606482015260840161034d565b60008581526004602090815260408083208684529091529020546001600160a01b0316610d7f576000858152600660205260409020610d5a90846110e1565b506000858152600560205260408120805491610d7583611637565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610dc4906110ed565b60008681526005602052604090205414610e2f5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a79610ea43390565b6040518263ffffffff1660e01b8152600401610ec09190611543565b60206040518083038186803b158015610ed857600080fd5b505afa158015610eec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f109190611483565b610f2c5760405162461bcd60e51b815260040161034d906115c5565b6000828152600660205260409020610f449082611258565b610f905760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e0000604482015260640161034d565b6000828152600660205260409020610fa89082611270565b506000828152600560205260408120805460019290610fc8908490611620565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b031916905584835260069091529020611007906110ed565b600083815260056020526040902054146110725760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b606482015260840161034d565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a13191016105ae565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b60006107fb838361127c565b6000610aab825490565b60006107fb83836112cb565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611185919061143c565b90506001600160a01b0381166110dc5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b606482015260840161034d565b600054610100900460ff166112565760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161034d565b565b600081815260018301602052604081205415156107fb565b60006107fb8383611303565b60008181526001830160205260408120546112c357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610aab565b506000610aab565b60008260000182815481106112f057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b60008181526001830160205260408120548015611416576000611327600183611620565b855490915060009061133b90600190611620565b90508181146113bc57600086600001828154811061136957634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508087600001848154811061139a57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806113db57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610aab565b6000915050610aab565b600060208284031215611431578081fd5b81356107fb81611668565b60006020828403121561144d578081fd5b81516107fb81611668565b6000806040838503121561146a578081fd5b823561147581611668565b946020939093013593505050565b600060208284031215611494578081fd5b815180151581146107fb578182fd5b6000602082840312156114b4578081fd5b5035919050565b600080604083850312156114cd578182fd5b8235915060208301356114df81611668565b809150509250929050565b600080604083850312156114fc578182fd5b50508035926020909101359150565b60008060006060848603121561151f578081fd5b8335925060208401359150604084013561153881611668565b809150509250925092565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000821982111561161b5761161b611652565b500190565b60008282101561163257611632611652565b500390565b600060001982141561164b5761164b611652565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461041a57600080fdfea264697066735822122010fc0f128c1a977b4951f6dee77033c18bcc4363fb956c3ba337add63496ccbf64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.dbg.json b/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.json b/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.json deleted file mode 100644 index 1893f3cb..00000000 --- a/artifacts/contracts/modules/TreasuryModule.sol/TreasuryModule.json +++ /dev/null @@ -1,1022 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TreasuryModule", - "sourceName": "contracts/modules/TreasuryModule.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "callSuccess", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "returnDataLength", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "returnData", - "type": "bytes" - } - ], - "name": "LogTransferHelperCallFailed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "tokenIsContract", - "type": "bool" - }, - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "LogTransferHelperInputValidation1Failed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - } - ], - "name": "LogTransferHelperInputValidation2Failed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - } - ], - "name": "LogTreasuryCapitalFeesSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryCapitalProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryCapitalTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "instanceWalletAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryFeesTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "walletAddress", - "type": "address" - } - ], - "name": "LogTreasuryInstanceWalletSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryPayoutProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryPayoutTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - } - ], - "name": "LogTreasuryPremiumFeesSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryPremiumProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryPremiumTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "erc20Address", - "type": "address" - } - ], - "name": "LogTreasuryProductTokenSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "LogTreasuryResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "walletAddress", - "type": "address" - } - ], - "name": "LogTreasuryRiskpoolWalletSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "LogTreasurySuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryWithdrawalProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTreasuryWithdrawalTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "inputs": [], - "name": "FRACTIONAL_FEE_MAX", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "FRACTION_FULL_UNIT", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "calculateFee", - "outputs": [ - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - } - ], - "name": "createFeeSpecification", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getComponentToken", - "outputs": [ - { - "internalType": "contract IERC20", - "name": "token", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getFeeSpecification", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFractionFullUnit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getInstanceWallet", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getRiskpoolWallet", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "capitalAmount", - "type": "uint256" - } - ], - "name": "processCapital", - "outputs": [ - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netCapitalAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [ - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPayoutAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPremium", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "processPremium", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPremiumAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processWithdrawal", - "outputs": [ - { - "internalType": "uint256", - "name": "feeAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resume", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "feeSpec", - "type": "tuple" - } - ], - "name": "setCapitalFees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "instanceWalletAddress", - "type": "address" - } - ], - "name": "setInstanceWallet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "feeSpec", - "type": "tuple" - } - ], - "name": "setPremiumFees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "erc20Address", - "type": "address" - } - ], - "name": "setProductToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - } - ], - "name": "setRiskpoolWallet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspend", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506200001c6200002f565b6001805460ff60a01b19169055620000f1565b600054610100900460ff16156200009c5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000ef576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61474180620001016000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638ca946aa116100c3578063cab2504d1161007c578063cab2504d1461030d578063cc9cf8cd14610320578063d935807514610333578063e6400bbe14610346578063f964690d1461034e578063fe64372b146103565761014d565b80638ca946aa1461029c5780638ccf5ca2146102af578063a434f0ad146102c7578063a44330c4146102da578063b79f5eab146102eb578063c4d66de8146102fa5761014d565b806334e731221161011557806334e73122146101f7578063490816371461020a5780635c975abb146102335780635ecc078e1461025657806362f0ab551461026957806386039aed146102895761014d565b806301132a7f146101525780630210826814610167578063038696bb1461019c578063046f7da2146101c757806326debdaa146101cf575b600080fd5b610165610160366004613e2c565b610369565b005b61017a610175366004613d37565b6105a3565b6040805193151584526020840192909252908201526060015b60405180910390f35b6101af6101aa366004613d1f565b610aac565b6040516001600160a01b039091168152602001610193565b610165610c24565b6101e26101dd36600461405a565b610cfd565b60408051928352602083019190915201610193565b6101e261020536600461405a565b6113b4565b6101af610218366004613d1f565b6000908152600360205260409020546001600160a01b031690565b610246600154600160a01b900460ff1690565b6040519015158152602001610193565b61017a610264366004613d1f565b611438565b61027c61027736600461406c565b6115b5565b60405161019391906143cb565b61016561029736600461402b565b611825565b6101656102aa366004613e2c565b611b08565b670de0b6b3a76400005b604051908152602001610193565b61027c6102d5366004613d1f565b611d31565b6002546001600160a01b03166101af565b6102b9670de0b6b3a764000081565b610165610308366004613cc0565b611e53565b61016561031b366004613cc0565b611fcd565b61016561032e36600461402b565b612157565b6101e261034136600461405a565b6126ce565b610165612d04565b6102b9612ddd565b6101e2610364366004613d37565b612df3565b61037c600154600160a01b900460ff1690565b156103a25760405162461bcd60e51b815260040161039990614294565b60405180910390fd5b6000546201000090046001600160a01b0316632ca65a796103c03390565b6040518263ffffffff1660e01b81526004016103dc9190614160565b60206040518083038186803b1580156103f457600080fd5b505afa158015610408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042c9190613cff565b6104485760405162461bcd60e51b815260040161039990614347565b600754604051630e48080360e21b8152823560048201526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561048c57600080fd5b505afa1580156104a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c49190613cff565b6105105760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3032323a4e4f545f50524f44554354000000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290610534828261466e565b505080156105545781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527f389ab9b2665a8ef1adf5a151c45e2546c4b1ffe8cfa537dd96a5eb8046b06efe906060015b60405180910390a15050565b60008060006105bb600154600160a01b900460ff1690565b156105d85760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166106005760405162461bcd60e51b81526004016103999061424d565b8460008061060d8361333e565b90925090506001600160a01b0381166106385760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b61064d816134c9565b6001600160a01b0316306001600160a01b03161461067d5760405162461bcd60e51b8152600401610399906142c9565b6106976d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146106c75760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018b90526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561070d57600080fd5b505afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190613f8e565b9050806020015189826040015161075c9190614456565b11156107aa5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5452532d3033303a414d4f554e545f544f4f5f424947000000006044820152606401610399565b60085460405163296586d360e21b8152600481018c90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156107ef57600080fd5b505afa158015610803573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082b9190810190613e64565b905061083b81602001518b6113b4565b6020830151919950975060009061085190610aac565b8251604051636eb1769f60e11b81526001600160a01b0391821660048201523060248201529192508c919083169063dd62ed3e9060440160206040518083038186803b1580156108a057600080fd5b505afa1580156108b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190614013565b10156108ea5760009950505050610aa1565b81516002546109049183916001600160a01b03168c6135b1565b8251600254604051929c507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e9261094792916001600160a01b0316908d9061413c565b60405180910390a1896109a65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3033313a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b6000806109b28e61333e565b915091506109c6838560000151838d6135b1565b9b507f6e18cdd81334cca9a49a7b3a4305750ab3d5e62ee7fa04ab08b28f21a53486718460000151828c6040516109ff9392919061413c565b60405180910390a18b610a625760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3033323a5052454d49554d5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b604080518f8152602081018f90527fc78d1fffca4ae6e34ee8442f7e1bc6fe124bf1a3374c7a902cae38d496ced322910160405180910390a150505050505b505050509250925092565b600754604051630e48080360e21b8152600481018390526000916001600160a01b031690633920200c9060240160206040518083038186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b299190613cff565b80610bab575060075460405163ba80b8ed60e01b8152600481018490526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab9190613cff565b610c055760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3037303a4e4f545f50524f445543545f4f525f52495360448201526412d413d3d360da1b6064820152608401610399565b506000818152600560205260409020546001600160a01b03165b919050565b6000546201000090046001600160a01b0316632ca65a79610c423390565b6040518263ffffffff1660e01b8152600401610c5e9190614160565b60206040518083038186803b158015610c7657600080fd5b505afa158015610c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cae9190613cff565b610cca5760405162461bcd60e51b815260040161039990614347565b610cd26138c3565b6040517f7bd43c6857df1d4fd40c4e86f9cf80ba02adf2e9fdadf03d9e8057eb429fcc5b90600090a1565b600080610d13600154600160a01b900460ff1690565b15610d305760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316610d585760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610da157600080fd5b505afa158015610db5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ddd9190810190613d58565b905060006001600160a01b0316610e0d82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b03161415610e345760405162461bcd60e51b815260040161039990614300565b610e4f6e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b031614610e7f5760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610ec457600080fd5b505afa158015610ed8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f009190810190613d58565b60065460405163620d1b0560e11b8152600481018a90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b158015610f4a57600080fd5b505afa158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190613ce3565b90506000610f938360200151611d31565b90506000816080015111610fe95760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3035303a4645455f535045435f554e444546494e45446044820152606401610399565b6020808401516000908152600590915260409020546001600160a01b0316611011828a613918565b975061101d888a6144ad565b6040516370a0823160e01b81526001600160a01b0385811660048301529198508a918316906370a082319060240160206040518083038186803b15801561106357600080fd5b505afa158015611077573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109b9190614013565b10156110e95760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5452532d3035323a42414c414e43455f544f4f5f534d414c4c006044820152606401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190614013565b10156111d45760405162461bcd60e51b815260206004820152603260248201527f4552524f523a5452532d3035333a4341504954414c5f5452414e534645525f41604482015271131313d5d05390d157d513d3d7d4d350531360721b6064820152608401610399565b6002546000906111f190839086906001600160a01b03168c6135b1565b6002546040519192507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e916112359187916001600160a01b03909116908d9061413c565b60405180910390a1806112945760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3035343a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b60006112b986602001516000908152600360205260409020546001600160a01b031690565b90506112c78386838c6135b1565b91507f4a9a3e028031198ad78a401460c1524a9322592291fed6b5306710aae5ff6d3985828b6040516112fc9392919061413c565b60405180910390a18161135f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3035353a4341504954414c5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b602080870151604080519182529181018e90529081018c90527f855e172a7eb8b6ab1abf4014f1e3683e97000f5c207690b9d8447c9df1c00eb39060600160405180910390a150505050505050509250929050565b60008060006113c285611d31565b905060008160800151116114185760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3032343a4645455f535045435f554e444546494e45446044820152606401610399565b6114228185613918565b925061142e83856144ad565b9150509250929050565b6000806000611450600154600160a01b900460ff1690565b1561146d5760405162461bcd60e51b815260040161039990614294565b67547265617375727960c01b611482816134c9565b6001600160a01b0316306001600160a01b0316146114b25760405162461bcd60e51b8152600401610399906142c9565b6114cc6d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146114fc5760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018790526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561154257600080fd5b505afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613f8e565b90508060200151816040015110156115ac576115a4868260400151836020015161017591906144ad565b919650945092505b50509193909250565b6115ee6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600754604051630e48080360e21b8152600481018890526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561163257600080fd5b505afa158015611646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166a9190613cff565b806116ec575060075460405163ba80b8ed60e01b8152600481018890526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b1580156116b457600080fd5b505afa1580156116c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ec9190613cff565b6117495760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3032303a49445f4e4f545f50524f445543545f4f525f604482015267149254d2d413d3d360c21b6064820152608401610399565b61175c6004670de0b6b3a764000061446e565b8411156117b75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5452532d3032313a46524143494f4e414c5f4645455f544f4f5f60448201526242494760e81b6064820152608401610399565b6040518060c0016040528087815260200186815260200185815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525042602082018190526040909101529695505050505050565b611838600154600160a01b900460ff1690565b156118555760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796118733390565b6040518263ffffffff1660e01b815260040161188f9190614160565b60206040518083038186803b1580156118a757600080fd5b505afa1580156118bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118df9190613cff565b6118fb5760405162461bcd60e51b815260040161039990614347565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119789190613ce3565b60075460405163ba80b8ed60e01b8152600481018690529192506001600160a01b03169063ba80b8ed9060240160206040518083038186803b1580156119bd57600080fd5b505afa1580156119d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f59190613cff565b611a415760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3031363a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b6001600160a01b038216611aa15760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031373a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b60008381526003602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251868152918201527f347fbbd524a9e157686795820f5abf777a026670f7dbaa751f4f190abc52f3a2910160405180910390a1505050565b611b1b600154600160a01b900460ff1690565b15611b385760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a79611b563390565b6040518263ffffffff1660e01b8152600401611b729190614160565b60206040518083038186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190613cff565b611bde5760405162461bcd60e51b815260040161039990614347565b60075460405163ba80b8ed60e01b8152823560048201526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611c2257600080fd5b505afa158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a9190613cff565b611ca65760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3032333a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290611cca828261466e565b50508015611cea5781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527fc3ef28d06d8c4c14101ca058d5b1507f9710ae8e34940a185cff056c375671a990606001610597565b611d6a6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600460008381526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382018054611db690614607565b80601f0160208091040260200160405190810160405280929190818152602001828054611de290614607565b8015611e2f5780601f10611e0457610100808354040283529160200191611e2f565b820191906000526020600020905b815481529060010190602001808311611e1257829003601f168201915b50505050508152602001600482015481526020016005820154815250509050919050565b600054610100900460ff1615808015611e735750600054600160ff909116105b80611e8d5750303b158015611e8d575060005460ff166001145b611ef05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610399565b6000805460ff191660011790558015611f13576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f3d600090565b6541636365737360d01b14611f7f57611f5e6541636365737360d01b6134c9565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611f87613a1c565b8015611fc9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610597565b5050565b611fe0600154600160a01b900460ff1690565b15611ffd5760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a7961201b3390565b6040518263ffffffff1660e01b81526004016120379190614160565b60206040518083038186803b15801561204f57600080fd5b505afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190613cff565b6120a35760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166121035760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031353a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f3769187331e10b0394c677689372317cc625318f5e50b76cb4da221dbdf05ef89060200160405180910390a150565b61216a600154600160a01b900460ff1690565b156121875760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796121a53390565b6040518263ffffffff1660e01b81526004016121c19190614160565b60206040518083038186803b1580156121d957600080fd5b505afa1580156121ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122119190613cff565b61222d5760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166122835760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3031303a544f4b454e5f414444524553535f5a45524f6044820152606401610399565b600754604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ff9190613cff565b61234b5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3031313a4e4f545f50524f44554354000000000000006044820152606401610399565b6000828152600560205260409020546001600160a01b0316156123c05760405162461bcd60e51b815260206004820152602760248201527f4552524f523a5452532d3031323a50524f445543545f544f4b454e5f414c524560448201526610511657d4d15560ca1b6064820152608401610399565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561240557600080fd5b505afa158015612419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243d9190613ce3565b9050816001600160a01b0316816001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561248257600080fd5b505afa158015612496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ba9190613ce3565b6001600160a01b0316146125295760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031333a50524f445543545f544f4b454e5f4144445260448201526f4553535f4e4f545f4d41544348494e4760801b6064820152608401610399565b600954604051630d229f3b60e41b8152600481018590526000916001600160a01b03169063d229f3b09060240160206040518083038186803b15801561256e57600080fd5b505afa158015612582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a69190614013565b6000818152600560205260409020549091506001600160a01b031615806125e657506000818152600560205260409020546001600160a01b038481169116145b61264b5760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031343a5249534b504f4f4c5f544f4b454e5f41444460448201526f524553535f4e4f545f4d414348494e4760801b6064820152608401610399565b600084815260056020908152604080832080546001600160a01b0388166001600160a01b03199182168117909255858552938290208054909416811790935580518781529182018490528101919091527f78b40e42f597552da073de514ce9a92a14a8e48cb9bb12a1fae74564a0dcf3ab9060600160405180910390a150505050565b6000806126e4600154600160a01b900460ff1690565b156127015760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166127295760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561277257600080fd5b505afa158015612786573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127ae9190810190613d58565b905060006001600160a01b03166127de82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b031614156128055760405162461bcd60e51b815260040161039990614300565b6128206e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b0316146128505760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561289557600080fd5b505afa1580156128a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128d19190810190613d58565b9050858160c001516128e39190614456565b8160a00151101580612906575060c08101511580156129065750858160e0015110155b6129785760405162461bcd60e51b815260206004820152603960248201527f4552524f523a5452532d3036303a43415041434954595f4f525f42414c414e4360448201527f455f534d414c4c45525f5448414e5f5749544844524157414c000000000000006064820152608401610399565b600061299d82602001516000908152600360205260409020546001600160a01b031690565b60065460405163620d1b0560e11b8152600481018b90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b1580156129e757600080fd5b505afa1580156129fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1f9190613ce3565b602084810151600090815260059091526040908190205490516370a0823160e01b81526001600160a01b038581166004830152929350911690899082906370a082319060240160206040518083038186803b158015612a7d57600080fd5b505afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab59190614013565b1015612b1b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3036313a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b158015612b6557600080fd5b505afa158015612b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9d9190614013565b1015612c005760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a5452532d3036323a5749544844524157414c5f414c4c4f57414e60448201526b10d157d513d3d7d4d350531360a21b6064820152608401610399565b600097508896506000612c158285858b6135b1565b90507fbe5d373e2476acbcb4aa97c605f358cfe7748bebff73d2d3195f587dc61f59c384848a604051612c4a9392919061413c565b60405180910390a180612cb05760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3036333a5749544844524157414c5f5452414e5346456044820152671497d1905253115160c21b6064820152608401610399565b602080860151604080519182529181018d90529081018990527fdbb3ae752b98a0c1c3c26fe1b0a7faa343da1c6fe5e0a80624f36e8e25e22edf9060600160405180910390a1505050505050509250929050565b6000546201000090046001600160a01b0316632ca65a79612d223390565b6040518263ffffffff1660e01b8152600401612d3e9190614160565b60206040518083038186803b158015612d5657600080fd5b505afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190613cff565b612daa5760405162461bcd60e51b815260040161039990614347565b612db2613b52565b6040517f5508e022c084f2aba2d9ebf198ee0e2e205840df815b91112781505e6798bfdc90600090a1565b612df06004670de0b6b3a764000061446e565b81565b600080612e09600154600160a01b900460ff1690565b15612e265760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316612e4e5760405162461bcd60e51b81526004016103999061424d565b83600080612e5b8361333e565b90925090506001600160a01b038116612e865760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b612e9b816134c9565b6001600160a01b0316306001600160a01b031614612ecb5760405162461bcd60e51b8152600401610399906142c9565b612ee56d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b031614612f155760405162461bcd60e51b81526004016103999061438a565b60085460405163296586d360e21b8152600481018a90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015612f5a57600080fd5b505afa158015612f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f969190810190613e64565b90506000612fa78260200151610aac565b9050600080612fb58c61333e565b915091506000600860009054906101000a90046001600160a01b03166001600160a01b031663cef58f138e8e6040518363ffffffff1660e01b8152600401613007929190918252602082015260400190565b60006040518083038186803b15801561301f57600080fd5b505afa158015613033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261305b9190810190613f14565b60408082015190516370a0823160e01b81526001600160a01b03858116600483015292935090918616906370a082319060240160206040518083038186803b1580156130a657600080fd5b505afa1580156130ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130de9190614013565b10156131445760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3034323a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b6040818101519051636eb1769f60e11b81526001600160a01b03848116600483015230602483015286169063dd62ed3e9060440160206040518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190614013565b10156132275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3034333a5041594f55545f414c4c4f57414e43455f5460448201526713d3d7d4d350531360c21b6064820152608401610399565b600061323d8584886000015185604001516135b1565b6040808401518851915160009f50909d509192507f967b0d7f4806051ef2c1375d324be9be0c739a4e34845bc060210577fd677f85916132809186918f9061413c565b60405180910390a1806132e15760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5452532d3034343a5041594f55545f5452414e534645525f46416044820152631253115160e21b6064820152608401610399565b855160408381015181518781526001600160a01b03909316602084015282820152517f8b5ad77a07a1f8dbb7f91bd53d28ecf3c900534c88f13672f6f2ddcf01ec7f859181900360600190a1505050505050505050509250929050565b60085460405163296586d360e21b815260048101839052600091829182916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561338757600080fd5b505afa15801561339b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133c39190810190613e64565b6009546020820151604051630d229f3b60e41b815260048101919091529192506001600160a01b03169063d229f3b09060240160206040518083038186803b15801561340e57600080fd5b505afa158015613422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134469190614013565b9250600083116134a75760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5452532d3039323a50524f445543545f574954484f55545f524960448201526514d2d413d3d360d21b6064820152608401610399565b505060008181526003602052604090205490926001600160a01b039091169150565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561351357600080fd5b505afa158015613527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354b9190613ce3565b90506001600160a01b038116610c1f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610399565b6000846001600160a01b038082163b151590861615806135d857506001600160a01b038516155b806135e1575080155b1561363c576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a16000925050506138bb565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561368157600080fd5b505afa158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b99190614013565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b15801561370657600080fd5b505afa15801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190614013565b90508582108061374d57508581105b156137985760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a160009450505050506138bb565b6000808a6001600160a01b03166323b872dd8b8b8b6040516024016137bf9392919061413c565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516137f89190614120565b6000604051808303816000865af19150503d8060008114613835576040519150601f19603f3d011682016040523d82523d6000602084013e61383a565b606091505b50915091508180156138705750805115806138705750805160201480156138705750808060200190518101906138709190613cff565b9650866138b4577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b828251836040516138ab9392919061419a565b60405180910390a15b5050505050505b949350505050565b6138cb613b95565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b606082015151600090156139875760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3039303a4645455f43414c43554c4154494f4e5f444160448201526f151057d393d517d4d5541413d495115160821b6064820152608401610399565b5060208201516040830151156139c757670de0b6b3a76400008284604001516139b0919061448e565b6139ba919061446e565b6139c49082614456565b90505b818110613a165760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3039313a4645455f544f4f5f424947000000000000006044820152606401610399565b92915050565b600054610100900460ff16613a875760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610399565b613a996542756e646c6560d01b6134c9565b600680546001600160a01b0319166001600160a01b0392909216919091179055613ace6810dbdb5c1bdb995b9d60ba1b6134c9565b600780546001600160a01b0319166001600160a01b0392909216919091179055613b0065506f6c69637960d01b6134c9565b600880546001600160a01b0319166001600160a01b0392909216919091179055613b3063141bdbdb60e21b6134c9565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b613b5a613bed565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138fb3390565b613ba8600154600160a01b900460ff1690565b613beb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610399565b565b613c00600154600160a01b900460ff1690565b15613beb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610399565b600082601f830112613c50578081fd5b815167ffffffffffffffff811115613c6a57613c6a614658565b613c7d601f8201601f1916602001614425565b818152846020838601011115613c91578283fd5b6138bb8260208301602087016145d7565b805160048110610c1f57600080fd5b805160038110610c1f57600080fd5b600060208284031215613cd1578081fd5b8135613cdc816146f3565b9392505050565b600060208284031215613cf4578081fd5b8151613cdc816146f3565b600060208284031215613d10578081fd5b81518015158114613cdc578182fd5b600060208284031215613d30578081fd5b5035919050565b60008060408385031215613d49578081fd5b50508035926020909101359150565b600060208284031215613d69578081fd5b815167ffffffffffffffff80821115613d80578283fd5b8184019150610140808387031215613d96578384fd5b613d9f81614425565b9050825181526020830151602082015260408301516040820152613dc560608401613ca2565b6060820152608083015182811115613ddb578485fd5b613de787828601613c40565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613e3d578081fd5b813567ffffffffffffffff811115613e53578182fd5b820160c08185031215613cdc578182fd5b600060208284031215613e75578081fd5b815167ffffffffffffffff80821115613e8c578283fd5b9083019060c08286031215613e9f578283fd5b613ea960c0614425565b8251613eb4816146f3565b815260208381015190820152613ecc60408401613cb1565b6040820152606083015182811115613ee2578485fd5b613eee87828601613c40565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613f25578081fd5b815167ffffffffffffffff80821115613f3c578283fd5b9083019060c08286031215613f4f578283fd5b613f5960c0614425565b82518152602083015160028110613f6e578485fd5b602082015260408381015190820152606083015182811115613ee2578485fd5b6000610120808385031215613fa1578182fd5b613faa81614425565b9050613fb583613cb1565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060208284031215614024578081fd5b5051919050565b6000806040838503121561403d578182fd5b82359150602083013561404f816146f3565b809150509250929050565b60008060408385031215613d49578182fd5b600080600080600060808688031215614083578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff808211156140af578283fd5b818801915088601f8301126140c2578283fd5b8135818111156140d0578384fd5b8960208285010111156140e1578384fd5b9699959850939650602001949392505050565b6000815180845261410c8160208601602086016145d7565b601f01601f19169290920160200192915050565b600082516141328184602087016145d7565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60008415158252836020830152606060408301526141bb60608301846140f4565b95945050505050565b60208082526027908201527f4552524f523a5452532d3030323a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526022908201527f4552524f523a5452532d3030353a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b60208082526027908201527f4552524f523a5452532d3030313a494e5354414e43455f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b6020808252818101527f4552524f523a5452532d3030343a54524541535552595f53555350454e444544604082015260600190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526027908201527f4552524f523a5452532d3030333a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015261440560e08401826140f4565b9050608084015160a084015260a084015160c08401528091505092915050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561444e5761444e614658565b604052919050565b6000821982111561446957614469614642565b500190565b60008261448957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156144a8576144a8614642565b500290565b6000828210156144bf576144bf614642565b500390565b5b81811015611fc957600081556001016144c5565b67ffffffffffffffff8311156144f1576144f1614658565b6144fb8154614607565b600080601f8611601f84118181171561451a5760008681526020902092505b8015614549576020601f890104830160208910156145355750825b6145476020601f8801048501826144c4565b505b50806001811461457b57600094508715614564578387013594505b6002880260001960088a021c1986161786556145cd565b601f198816945082845b868110156145a55788860135825560209586019560019092019101614585565b50888610156145c257878501356000196008601f8c16021c191681555b506001600289020186555b5050505050505050565b60005b838110156145f25781810151838201526020016145da565b83811115614601576000848401525b50505050565b60028104600182168061461b57607f821691505b6020821081141561463c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8135815560208201356001820155604082013560028201556060820135601e1983360301811261469d57600080fd5b8201803567ffffffffffffffff8111156146b657600080fd5b6020820191508036038213156146cb57600080fd5b6146d98183600386016144d9565b50506080820135600482015560a082013560058201555050565b6001600160a01b038116811461470857600080fd5b5056fea26469706673582212209c6e17d64e138985579699ae8a3c6c60853f74a96d720c58205175e0cdbe5ef264736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638ca946aa116100c3578063cab2504d1161007c578063cab2504d1461030d578063cc9cf8cd14610320578063d935807514610333578063e6400bbe14610346578063f964690d1461034e578063fe64372b146103565761014d565b80638ca946aa1461029c5780638ccf5ca2146102af578063a434f0ad146102c7578063a44330c4146102da578063b79f5eab146102eb578063c4d66de8146102fa5761014d565b806334e731221161011557806334e73122146101f7578063490816371461020a5780635c975abb146102335780635ecc078e1461025657806362f0ab551461026957806386039aed146102895761014d565b806301132a7f146101525780630210826814610167578063038696bb1461019c578063046f7da2146101c757806326debdaa146101cf575b600080fd5b610165610160366004613e2c565b610369565b005b61017a610175366004613d37565b6105a3565b6040805193151584526020840192909252908201526060015b60405180910390f35b6101af6101aa366004613d1f565b610aac565b6040516001600160a01b039091168152602001610193565b610165610c24565b6101e26101dd36600461405a565b610cfd565b60408051928352602083019190915201610193565b6101e261020536600461405a565b6113b4565b6101af610218366004613d1f565b6000908152600360205260409020546001600160a01b031690565b610246600154600160a01b900460ff1690565b6040519015158152602001610193565b61017a610264366004613d1f565b611438565b61027c61027736600461406c565b6115b5565b60405161019391906143cb565b61016561029736600461402b565b611825565b6101656102aa366004613e2c565b611b08565b670de0b6b3a76400005b604051908152602001610193565b61027c6102d5366004613d1f565b611d31565b6002546001600160a01b03166101af565b6102b9670de0b6b3a764000081565b610165610308366004613cc0565b611e53565b61016561031b366004613cc0565b611fcd565b61016561032e36600461402b565b612157565b6101e261034136600461405a565b6126ce565b610165612d04565b6102b9612ddd565b6101e2610364366004613d37565b612df3565b61037c600154600160a01b900460ff1690565b156103a25760405162461bcd60e51b815260040161039990614294565b60405180910390fd5b6000546201000090046001600160a01b0316632ca65a796103c03390565b6040518263ffffffff1660e01b81526004016103dc9190614160565b60206040518083038186803b1580156103f457600080fd5b505afa158015610408573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042c9190613cff565b6104485760405162461bcd60e51b815260040161039990614347565b600754604051630e48080360e21b8152823560048201526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561048c57600080fd5b505afa1580156104a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c49190613cff565b6105105760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3032323a4e4f545f50524f44554354000000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290610534828261466e565b505080156105545781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527f389ab9b2665a8ef1adf5a151c45e2546c4b1ffe8cfa537dd96a5eb8046b06efe906060015b60405180910390a15050565b60008060006105bb600154600160a01b900460ff1690565b156105d85760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166106005760405162461bcd60e51b81526004016103999061424d565b8460008061060d8361333e565b90925090506001600160a01b0381166106385760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b61064d816134c9565b6001600160a01b0316306001600160a01b03161461067d5760405162461bcd60e51b8152600401610399906142c9565b6106976d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146106c75760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018b90526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561070d57600080fd5b505afa158015610721573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107459190613f8e565b9050806020015189826040015161075c9190614456565b11156107aa5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5452532d3033303a414d4f554e545f544f4f5f424947000000006044820152606401610399565b60085460405163296586d360e21b8152600481018c90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156107ef57600080fd5b505afa158015610803573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082b9190810190613e64565b905061083b81602001518b6113b4565b6020830151919950975060009061085190610aac565b8251604051636eb1769f60e11b81526001600160a01b0391821660048201523060248201529192508c919083169063dd62ed3e9060440160206040518083038186803b1580156108a057600080fd5b505afa1580156108b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190614013565b10156108ea5760009950505050610aa1565b81516002546109049183916001600160a01b03168c6135b1565b8251600254604051929c507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e9261094792916001600160a01b0316908d9061413c565b60405180910390a1896109a65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3033313a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b6000806109b28e61333e565b915091506109c6838560000151838d6135b1565b9b507f6e18cdd81334cca9a49a7b3a4305750ab3d5e62ee7fa04ab08b28f21a53486718460000151828c6040516109ff9392919061413c565b60405180910390a18b610a625760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3033323a5052454d49554d5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b604080518f8152602081018f90527fc78d1fffca4ae6e34ee8442f7e1bc6fe124bf1a3374c7a902cae38d496ced322910160405180910390a150505050505b505050509250925092565b600754604051630e48080360e21b8152600481018390526000916001600160a01b031690633920200c9060240160206040518083038186803b158015610af157600080fd5b505afa158015610b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b299190613cff565b80610bab575060075460405163ba80b8ed60e01b8152600481018490526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bab9190613cff565b610c055760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3037303a4e4f545f50524f445543545f4f525f52495360448201526412d413d3d360da1b6064820152608401610399565b506000818152600560205260409020546001600160a01b03165b919050565b6000546201000090046001600160a01b0316632ca65a79610c423390565b6040518263ffffffff1660e01b8152600401610c5e9190614160565b60206040518083038186803b158015610c7657600080fd5b505afa158015610c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cae9190613cff565b610cca5760405162461bcd60e51b815260040161039990614347565b610cd26138c3565b6040517f7bd43c6857df1d4fd40c4e86f9cf80ba02adf2e9fdadf03d9e8057eb429fcc5b90600090a1565b600080610d13600154600160a01b900460ff1690565b15610d305760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316610d585760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610da157600080fd5b505afa158015610db5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ddd9190810190613d58565b905060006001600160a01b0316610e0d82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b03161415610e345760405162461bcd60e51b815260040161039990614300565b610e4f6e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b031614610e7f5760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610ec457600080fd5b505afa158015610ed8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f009190810190613d58565b60065460405163620d1b0560e11b8152600481018a90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b158015610f4a57600080fd5b505afa158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f829190613ce3565b90506000610f938360200151611d31565b90506000816080015111610fe95760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3035303a4645455f535045435f554e444546494e45446044820152606401610399565b6020808401516000908152600590915260409020546001600160a01b0316611011828a613918565b975061101d888a6144ad565b6040516370a0823160e01b81526001600160a01b0385811660048301529198508a918316906370a082319060240160206040518083038186803b15801561106357600080fd5b505afa158015611077573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109b9190614013565b10156110e95760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5452532d3035323a42414c414e43455f544f4f5f534d414c4c006044820152606401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b15801561113357600080fd5b505afa158015611147573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061116b9190614013565b10156111d45760405162461bcd60e51b815260206004820152603260248201527f4552524f523a5452532d3035333a4341504954414c5f5452414e534645525f41604482015271131313d5d05390d157d513d3d7d4d350531360721b6064820152608401610399565b6002546000906111f190839086906001600160a01b03168c6135b1565b6002546040519192507facb52383128d246c2ab215825c8705382e85e3d779899196ddd096c74c70880e916112359187916001600160a01b03909116908d9061413c565b60405180910390a1806112945760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3035343a4645455f5452414e534645525f4641494c456044820152601160fa1b6064820152608401610399565b60006112b986602001516000908152600360205260409020546001600160a01b031690565b90506112c78386838c6135b1565b91507f4a9a3e028031198ad78a401460c1524a9322592291fed6b5306710aae5ff6d3985828b6040516112fc9392919061413c565b60405180910390a18161135f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5452532d3035353a4341504954414c5f5452414e534645525f46604482015264105253115160da1b6064820152608401610399565b602080870151604080519182529181018e90529081018c90527f855e172a7eb8b6ab1abf4014f1e3683e97000f5c207690b9d8447c9df1c00eb39060600160405180910390a150505050505050509250929050565b60008060006113c285611d31565b905060008160800151116114185760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3032343a4645455f535045435f554e444546494e45446044820152606401610399565b6114228185613918565b925061142e83856144ad565b9150509250929050565b6000806000611450600154600160a01b900460ff1690565b1561146d5760405162461bcd60e51b815260040161039990614294565b67547265617375727960c01b611482816134c9565b6001600160a01b0316306001600160a01b0316146114b25760405162461bcd60e51b8152600401610399906142c9565b6114cc6d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b0316146114fc5760405162461bcd60e51b81526004016103999061438a565b60085460405163a3f685f960e01b8152600481018790526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561154257600080fd5b505afa158015611556573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157a9190613f8e565b90508060200151816040015110156115ac576115a4868260400151836020015161017591906144ad565b919650945092505b50509193909250565b6115ee6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600754604051630e48080360e21b8152600481018890526001600160a01b0390911690633920200c9060240160206040518083038186803b15801561163257600080fd5b505afa158015611646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166a9190613cff565b806116ec575060075460405163ba80b8ed60e01b8152600481018890526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b1580156116b457600080fd5b505afa1580156116c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ec9190613cff565b6117495760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3032303a49445f4e4f545f50524f445543545f4f525f604482015267149254d2d413d3d360c21b6064820152608401610399565b61175c6004670de0b6b3a764000061446e565b8411156117b75760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5452532d3032313a46524143494f4e414c5f4645455f544f4f5f60448201526242494760e81b6064820152608401610399565b6040518060c0016040528087815260200186815260200185815260200184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525042602082018190526040909101529695505050505050565b611838600154600160a01b900460ff1690565b156118555760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796118733390565b6040518263ffffffff1660e01b815260040161188f9190614160565b60206040518083038186803b1580156118a757600080fd5b505afa1580156118bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118df9190613cff565b6118fb5760405162461bcd60e51b815260040161039990614347565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119789190613ce3565b60075460405163ba80b8ed60e01b8152600481018690529192506001600160a01b03169063ba80b8ed9060240160206040518083038186803b1580156119bd57600080fd5b505afa1580156119d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f59190613cff565b611a415760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3031363a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b6001600160a01b038216611aa15760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031373a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b60008381526003602090815260409182902080546001600160a01b0319166001600160a01b0386169081179091558251868152918201527f347fbbd524a9e157686795820f5abf777a026670f7dbaa751f4f190abc52f3a2910160405180910390a1505050565b611b1b600154600160a01b900460ff1690565b15611b385760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a79611b563390565b6040518263ffffffff1660e01b8152600401611b729190614160565b60206040518083038186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc29190613cff565b611bde5760405162461bcd60e51b815260040161039990614347565b60075460405163ba80b8ed60e01b8152823560048201526001600160a01b039091169063ba80b8ed9060240160206040518083038186803b158015611c2257600080fd5b505afa158015611c36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5a9190613cff565b611ca65760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a5452532d3032333a4e4f545f5249534b504f4f4c0000000000006044820152606401610399565b8035600090815260046020819052604090912090810154908290611cca828261466e565b50508015611cea5781356000908152600460208190526040909120018190555b60408051833581526020808501359082015281840135918101919091527fc3ef28d06d8c4c14101ca058d5b1507f9710ae8e34940a185cff056c375671a990606001610597565b611d6a6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600460008381526020019081526020016000206040518060c0016040529081600082015481526020016001820154815260200160028201548152602001600382018054611db690614607565b80601f0160208091040260200160405190810160405280929190818152602001828054611de290614607565b8015611e2f5780601f10611e0457610100808354040283529160200191611e2f565b820191906000526020600020905b815481529060010190602001808311611e1257829003601f168201915b50505050508152602001600482015481526020016005820154815250509050919050565b600054610100900460ff1615808015611e735750600054600160ff909116105b80611e8d5750303b158015611e8d575060005460ff166001145b611ef05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610399565b6000805460ff191660011790558015611f13576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055611f3d600090565b6541636365737360d01b14611f7f57611f5e6541636365737360d01b6134c9565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611f87613a1c565b8015611fc9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610597565b5050565b611fe0600154600160a01b900460ff1690565b15611ffd5760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a7961201b3390565b6040518263ffffffff1660e01b81526004016120379190614160565b60206040518083038186803b15801561204f57600080fd5b505afa158015612063573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120879190613cff565b6120a35760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166121035760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5452532d3031353a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401610399565b600280546001600160a01b0319166001600160a01b0383169081179091556040519081527f3769187331e10b0394c677689372317cc625318f5e50b76cb4da221dbdf05ef89060200160405180910390a150565b61216a600154600160a01b900460ff1690565b156121875760405162461bcd60e51b815260040161039990614294565b6000546201000090046001600160a01b0316632ca65a796121a53390565b6040518263ffffffff1660e01b81526004016121c19190614160565b60206040518083038186803b1580156121d957600080fd5b505afa1580156121ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122119190613cff565b61222d5760405162461bcd60e51b815260040161039990614347565b6001600160a01b0381166122835760405162461bcd60e51b815260206004820181905260248201527f4552524f523a5452532d3031303a544f4b454e5f414444524553535f5a45524f6044820152606401610399565b600754604051630e48080360e21b8152600481018490526001600160a01b0390911690633920200c9060240160206040518083038186803b1580156122c757600080fd5b505afa1580156122db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ff9190613cff565b61234b5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3031313a4e4f545f50524f44554354000000000000006044820152606401610399565b6000828152600560205260409020546001600160a01b0316156123c05760405162461bcd60e51b815260206004820152602760248201527f4552524f523a5452532d3031323a50524f445543545f544f4b454e5f414c524560448201526610511657d4d15560ca1b6064820152608401610399565b6007546040516309e4fb4360e31b8152600481018490526000916001600160a01b031690634f27da189060240160206040518083038186803b15801561240557600080fd5b505afa158015612419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243d9190613ce3565b9050816001600160a01b0316816001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561248257600080fd5b505afa158015612496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ba9190613ce3565b6001600160a01b0316146125295760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031333a50524f445543545f544f4b454e5f4144445260448201526f4553535f4e4f545f4d41544348494e4760801b6064820152608401610399565b600954604051630d229f3b60e41b8152600481018590526000916001600160a01b03169063d229f3b09060240160206040518083038186803b15801561256e57600080fd5b505afa158015612582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a69190614013565b6000818152600560205260409020549091506001600160a01b031615806125e657506000818152600560205260409020546001600160a01b038481169116145b61264b5760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3031343a5249534b504f4f4c5f544f4b454e5f41444460448201526f524553535f4e4f545f4d414348494e4760801b6064820152608401610399565b600084815260056020908152604080832080546001600160a01b0388166001600160a01b03199182168117909255858552938290208054909416811790935580518781529182018490528101919091527f78b40e42f597552da073de514ce9a92a14a8e48cb9bb12a1fae74564a0dcf3ab9060600160405180910390a150505050565b6000806126e4600154600160a01b900460ff1690565b156127015760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b03166127295760405162461bcd60e51b81526004016103999061424d565b600654604051632d0821b760e01b81526004810186905285916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561277257600080fd5b505afa158015612786573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127ae9190810190613d58565b905060006001600160a01b03166127de82602001516000908152600360205260409020546001600160a01b031690565b6001600160a01b031614156128055760405162461bcd60e51b815260040161039990614300565b6128206e5269736b706f6f6c5365727669636560881b6134c9565b6001600160a01b0316336001600160a01b0316146128505760405162461bcd60e51b81526004016103999061420b565b600654604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561289557600080fd5b505afa1580156128a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128d19190810190613d58565b9050858160c001516128e39190614456565b8160a00151101580612906575060c08101511580156129065750858160e0015110155b6129785760405162461bcd60e51b815260206004820152603960248201527f4552524f523a5452532d3036303a43415041434954595f4f525f42414c414e4360448201527f455f534d414c4c45525f5448414e5f5749544844524157414c000000000000006064820152608401610399565b600061299d82602001516000908152600360205260409020546001600160a01b031690565b60065460405163620d1b0560e11b8152600481018b90529192506000916001600160a01b039091169063c41a360a9060240160206040518083038186803b1580156129e757600080fd5b505afa1580156129fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a1f9190613ce3565b602084810151600090815260059091526040908190205490516370a0823160e01b81526001600160a01b038581166004830152929350911690899082906370a082319060240160206040518083038186803b158015612a7d57600080fd5b505afa158015612a91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab59190614013565b1015612b1b5760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3036313a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b604051636eb1769f60e11b81526001600160a01b0384811660048301523060248301528a919083169063dd62ed3e9060440160206040518083038186803b158015612b6557600080fd5b505afa158015612b79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9d9190614013565b1015612c005760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a5452532d3036323a5749544844524157414c5f414c4c4f57414e60448201526b10d157d513d3d7d4d350531360a21b6064820152608401610399565b600097508896506000612c158285858b6135b1565b90507fbe5d373e2476acbcb4aa97c605f358cfe7748bebff73d2d3195f587dc61f59c384848a604051612c4a9392919061413c565b60405180910390a180612cb05760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3036333a5749544844524157414c5f5452414e5346456044820152671497d1905253115160c21b6064820152608401610399565b602080860151604080519182529181018d90529081018990527fdbb3ae752b98a0c1c3c26fe1b0a7faa343da1c6fe5e0a80624f36e8e25e22edf9060600160405180910390a1505050505050509250929050565b6000546201000090046001600160a01b0316632ca65a79612d223390565b6040518263ffffffff1660e01b8152600401612d3e9190614160565b60206040518083038186803b158015612d5657600080fd5b505afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190613cff565b612daa5760405162461bcd60e51b815260040161039990614347565b612db2613b52565b6040517f5508e022c084f2aba2d9ebf198ee0e2e205840df815b91112781505e6798bfdc90600090a1565b612df06004670de0b6b3a764000061446e565b81565b600080612e09600154600160a01b900460ff1690565b15612e265760405162461bcd60e51b815260040161039990614294565b6002546001600160a01b0316612e4e5760405162461bcd60e51b81526004016103999061424d565b83600080612e5b8361333e565b90925090506001600160a01b038116612e865760405162461bcd60e51b8152600401610399906141c4565b67547265617375727960c01b612e9b816134c9565b6001600160a01b0316306001600160a01b031614612ecb5760405162461bcd60e51b8152600401610399906142c9565b612ee56d50726f647563745365727669636560901b6134c9565b6001600160a01b0316336001600160a01b031614612f155760405162461bcd60e51b81526004016103999061438a565b60085460405163296586d360e21b8152600481018a90526000916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015612f5a57600080fd5b505afa158015612f6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f969190810190613e64565b90506000612fa78260200151610aac565b9050600080612fb58c61333e565b915091506000600860009054906101000a90046001600160a01b03166001600160a01b031663cef58f138e8e6040518363ffffffff1660e01b8152600401613007929190918252602082015260400190565b60006040518083038186803b15801561301f57600080fd5b505afa158015613033573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261305b9190810190613f14565b60408082015190516370a0823160e01b81526001600160a01b03858116600483015292935090918616906370a082319060240160206040518083038186803b1580156130a657600080fd5b505afa1580156130ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130de9190614013565b10156131445760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a5452532d3034323a5249534b504f4f4c5f57414c4c45545f424160448201526e13105390d157d513d3d7d4d3505313608a1b6064820152608401610399565b6040818101519051636eb1769f60e11b81526001600160a01b03848116600483015230602483015286169063dd62ed3e9060440160206040518083038186803b15801561319057600080fd5b505afa1580156131a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c89190614013565b10156132275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5452532d3034333a5041594f55545f414c4c4f57414e43455f5460448201526713d3d7d4d350531360c21b6064820152608401610399565b600061323d8584886000015185604001516135b1565b6040808401518851915160009f50909d509192507f967b0d7f4806051ef2c1375d324be9be0c739a4e34845bc060210577fd677f85916132809186918f9061413c565b60405180910390a1806132e15760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5452532d3034343a5041594f55545f5452414e534645525f46416044820152631253115160e21b6064820152608401610399565b855160408381015181518781526001600160a01b03909316602084015282820152517f8b5ad77a07a1f8dbb7f91bd53d28ecf3c900534c88f13672f6f2ddcf01ec7f859181900360600190a1505050505050505050509250929050565b60085460405163296586d360e21b815260048101839052600091829182916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561338757600080fd5b505afa15801561339b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133c39190810190613e64565b6009546020820151604051630d229f3b60e41b815260048101919091529192506001600160a01b03169063d229f3b09060240160206040518083038186803b15801561340e57600080fd5b505afa158015613422573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134469190614013565b9250600083116134a75760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5452532d3039323a50524f445543545f574954484f55545f524960448201526514d2d413d3d360d21b6064820152608401610399565b505060008181526003602052604090205490926001600160a01b039091169150565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561351357600080fd5b505afa158015613527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061354b9190613ce3565b90506001600160a01b038116610c1f5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610399565b6000846001600160a01b038082163b151590861615806135d857506001600160a01b038516155b806135e1575080155b1561363c576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a16000925050506138bb565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561368157600080fd5b505afa158015613695573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136b99190614013565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b15801561370657600080fd5b505afa15801561371a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373e9190614013565b90508582108061374d57508581105b156137985760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a160009450505050506138bb565b6000808a6001600160a01b03166323b872dd8b8b8b6040516024016137bf9392919061413c565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516137f89190614120565b6000604051808303816000865af19150503d8060008114613835576040519150601f19603f3d011682016040523d82523d6000602084013e61383a565b606091505b50915091508180156138705750805115806138705750805160201480156138705750808060200190518101906138709190613cff565b9650866138b4577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b828251836040516138ab9392919061419a565b60405180910390a15b5050505050505b949350505050565b6138cb613b95565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b606082015151600090156139875760405162461bcd60e51b815260206004820152603060248201527f4552524f523a5452532d3039303a4645455f43414c43554c4154494f4e5f444160448201526f151057d393d517d4d5541413d495115160821b6064820152608401610399565b5060208201516040830151156139c757670de0b6b3a76400008284604001516139b0919061448e565b6139ba919061446e565b6139c49082614456565b90505b818110613a165760405162461bcd60e51b815260206004820152601960248201527f4552524f523a5452532d3039313a4645455f544f4f5f424947000000000000006044820152606401610399565b92915050565b600054610100900460ff16613a875760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610399565b613a996542756e646c6560d01b6134c9565b600680546001600160a01b0319166001600160a01b0392909216919091179055613ace6810dbdb5c1bdb995b9d60ba1b6134c9565b600780546001600160a01b0319166001600160a01b0392909216919091179055613b0065506f6c69637960d01b6134c9565b600880546001600160a01b0319166001600160a01b0392909216919091179055613b3063141bdbdb60e21b6134c9565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b613b5a613bed565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138fb3390565b613ba8600154600160a01b900460ff1690565b613beb5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610399565b565b613c00600154600160a01b900460ff1690565b15613beb5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610399565b600082601f830112613c50578081fd5b815167ffffffffffffffff811115613c6a57613c6a614658565b613c7d601f8201601f1916602001614425565b818152846020838601011115613c91578283fd5b6138bb8260208301602087016145d7565b805160048110610c1f57600080fd5b805160038110610c1f57600080fd5b600060208284031215613cd1578081fd5b8135613cdc816146f3565b9392505050565b600060208284031215613cf4578081fd5b8151613cdc816146f3565b600060208284031215613d10578081fd5b81518015158114613cdc578182fd5b600060208284031215613d30578081fd5b5035919050565b60008060408385031215613d49578081fd5b50508035926020909101359150565b600060208284031215613d69578081fd5b815167ffffffffffffffff80821115613d80578283fd5b8184019150610140808387031215613d96578384fd5b613d9f81614425565b9050825181526020830151602082015260408301516040820152613dc560608401613ca2565b6060820152608083015182811115613ddb578485fd5b613de787828601613c40565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613e3d578081fd5b813567ffffffffffffffff811115613e53578182fd5b820160c08185031215613cdc578182fd5b600060208284031215613e75578081fd5b815167ffffffffffffffff80821115613e8c578283fd5b9083019060c08286031215613e9f578283fd5b613ea960c0614425565b8251613eb4816146f3565b815260208381015190820152613ecc60408401613cb1565b6040820152606083015182811115613ee2578485fd5b613eee87828601613c40565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215613f25578081fd5b815167ffffffffffffffff80821115613f3c578283fd5b9083019060c08286031215613f4f578283fd5b613f5960c0614425565b82518152602083015160028110613f6e578485fd5b602082015260408381015190820152606083015182811115613ee2578485fd5b6000610120808385031215613fa1578182fd5b613faa81614425565b9050613fb583613cb1565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b600060208284031215614024578081fd5b5051919050565b6000806040838503121561403d578182fd5b82359150602083013561404f816146f3565b809150509250929050565b60008060408385031215613d49578182fd5b600080600080600060808688031215614083578081fd5b853594506020860135935060408601359250606086013567ffffffffffffffff808211156140af578283fd5b818801915088601f8301126140c2578283fd5b8135818111156140d0578384fd5b8960208285010111156140e1578384fd5b9699959850939650602001949392505050565b6000815180845261410c8160208601602086016145d7565b601f01601f19169290920160200192915050565b600082516141328184602087016145d7565b9190910192915050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039190911681527f496e7374616e63654f70657261746f7253657276696365000000000000000000602082015260400190565b60008415158252836020830152606060408301526141bb60608301846140f4565b95945050505050565b60208082526027908201527f4552524f523a5452532d3030323a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526022908201527f4552524f523a5452532d3030353a4e4f545f5249534b504f4f4c5f5345525649604082015261434560f01b606082015260800190565b60208082526027908201527f4552524f523a5452532d3030313a494e5354414e43455f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b6020808252818101527f4552524f523a5452532d3030343a54524541535552595f53555350454e444544604082015260600190565b6020808252601c908201527f4552524f523a4352432d3030323a4e4f545f4f4e5f53544f5241474500000000604082015260600190565b60208082526027908201527f4552524f523a5452532d3030333a5249534b504f4f4c5f57414c4c45545f554e6040820152661111519253915160ca1b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b60208082526021908201527f4552524f523a4352432d3030333a4e4f545f50524f445543545f5345525649436040820152604560f81b606082015260800190565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015261440560e08401826140f4565b9050608084015160a084015260a084015160c08401528091505092915050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561444e5761444e614658565b604052919050565b6000821982111561446957614469614642565b500190565b60008261448957634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156144a8576144a8614642565b500290565b6000828210156144bf576144bf614642565b500390565b5b81811015611fc957600081556001016144c5565b67ffffffffffffffff8311156144f1576144f1614658565b6144fb8154614607565b600080601f8611601f84118181171561451a5760008681526020902092505b8015614549576020601f890104830160208910156145355750825b6145476020601f8801048501826144c4565b505b50806001811461457b57600094508715614564578387013594505b6002880260001960088a021c1986161786556145cd565b601f198816945082845b868110156145a55788860135825560209586019560019092019101614585565b50888610156145c257878501356000196008601f8c16021c191681555b506001600289020186555b5050505050505050565b60005b838110156145f25781810151838201526020016145da565b83811115614601576000848401525b50505050565b60028104600182168061461b57607f821691505b6020821081141561463c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8135815560208201356001820155604082013560028201556060820135601e1983360301811261469d57600080fd5b8201803567ffffffffffffffff8111156146b657600080fd5b6020820191508036038213156146cb57600080fd5b6146d98183600386016144d9565b50506080820135600482015560a082013560058201555050565b6001600160a01b038116811461470857600080fd5b5056fea26469706673582212209c6e17d64e138985579699ae8a3c6c60853f74a96d720c58205175e0cdbe5ef264736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.dbg.json b/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.json b/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.json deleted file mode 100644 index fa75c458..00000000 --- a/artifacts/contracts/services/ComponentOwnerService.sol/ComponentOwnerService.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ComponentOwnerService", - "sourceName": "contracts/services/ComponentOwnerService.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "archive", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IComponent", - "name": "component", - "type": "address" - } - ], - "name": "propose", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6118e0806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806393c829fc1161005b57806393c829fc146100bd578063a694fc3a146100d0578063c4d66de8146100e3578063fabc1cbc146100f65761007d565b80630126795114610082578063136439dd146100975780632e1a7d4d146100aa575b600080fd5b610095610090366004611700565b610109565b005b6100956100a5366004611796565b610422565b6100956100b8366004611796565b610764565b6100956100cb366004611796565b610a94565b6100956100de366004611796565b610da1565b6100956100f1366004611700565b6110d1565b610095610104366004611796565b611256565b806000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561014557600080fd5b505afa158015610159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017d9190611723565b90506000600260009054906101000a90046001600160a01b03166001600160a01b0316635af89a47846001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101de57600080fd5b505afa1580156101f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102169190611777565b6040518263ffffffff1660e01b815260040161023291906117ae565b60206040518083038186803b15801561024a57600080fd5b505afa15801561025e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610282919061175f565b9050336001600160a01b038316146102e15760405162461bcd60e51b815260206004820152601760248201527f4552524f523a434f532d3030313a4e4f545f4f574e455200000000000000000060448201526064015b60405180910390fd5b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561032d57600080fd5b505afa158015610341573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610365919061173f565b6103bd5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030323a52455155495245445f524f4c455f4d495353604482015262494e4760e81b60648201526084016102d8565b600254604051630126795160e01b81526001600160a01b03868116600483015290911690630126795190602401600060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b5050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561046b57600080fd5b505afa15801561047f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a39190611723565b90506001600160a01b0381166104cb5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561050657600080fd5b505afa15801561051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053e9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b15801561059057600080fd5b505afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c89190611777565b6040518263ffffffff1660e01b81526004016105e491906117ae565b60206040518083038186803b1580156105fc57600080fd5b505afa158015610610573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610634919061175f565b9050336001600160a01b0383161461065e5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156106aa57600080fd5b505afa1580156106be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e2919061173f565b6106fe5760405162461bcd60e51b81526004016102d89061180d565b60025460405163136439dd60e01b8152600481018790526001600160a01b039091169063136439dd906024015b600060405180830381600087803b15801561074557600080fd5b505af1158015610759573d6000803e3d6000fd5b505050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e59190611723565b90506001600160a01b03811661080d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561084857600080fd5b505afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611777565b6040518263ffffffff1660e01b815260040161092691906117ae565b60206040518083038186803b15801561093e57600080fd5b505afa158015610952573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610976919061175f565b9050336001600160a01b038316146109a05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156109ec57600080fd5b505afa158015610a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a24919061173f565b610a405760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030373a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190611723565b90506001600160a01b038116610b3d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7857600080fd5b505afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb09190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610c0257600080fd5b505afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a9190611777565b6040518263ffffffff1660e01b8152600401610c5691906117ae565b60206040518083038186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca6919061175f565b9050336001600160a01b03831614610cd05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b158015610d1c57600080fd5b505afa158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d54919061173f565b610d705760405162461bcd60e51b81526004016102d89061180d565b600254604051636bc607b360e01b8152600481018790526001600160a01b0390911690636bc607b39060240161072b565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610dea57600080fd5b505afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e229190611723565b90506001600160a01b038116610e4a5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8557600080fd5b505afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190611777565b6040518263ffffffff1660e01b8152600401610f6391906117ae565b60206040518083038186803b158015610f7b57600080fd5b505afa158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb3919061175f565b9050336001600160a01b03831614610fdd5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611061919061173f565b61107d5760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030363a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b600054610100900460ff16158080156110f15750600054600160ff909116105b80611112575061110030611563565b158015611112575060005460ff166001145b6111755760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102d8565b6000805460ff191660011790558015611198576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111c2600090565b6541636365737360d01b14611204576111e36541636365737360d01b611576565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61120c61165e565b8015611252576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561129f57600080fd5b505afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190611723565b90506001600160a01b0381166112ff5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156113c457600080fd5b505afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc9190611777565b6040518263ffffffff1660e01b815260040161141891906117ae565b60206040518083038186803b15801561143057600080fd5b505afa158015611444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611468919061175f565b9050336001600160a01b038316146114925760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156114de57600080fd5b505afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611516919061173f565b6115325760405162461bcd60e51b81526004016102d89061180d565b600254604051633eaf072f60e21b8152600481018790526001600160a01b039091169063fabc1cbc9060240161072b565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156115c057600080fd5b505afa1580156115d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f89190611723565b90506001600160a01b0381166115715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016102d8565b600054610100900460ff166116c95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102d8565b6116de6810dbdb5c1bdb995b9d60ba1b611576565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215611711578081fd5b813561171c81611892565b9392505050565b600060208284031215611734578081fd5b815161171c81611892565b600060208284031215611750578081fd5b8151801515811461171c578182fd5b600060208284031215611770578081fd5b5051919050565b600060208284031215611788578081fd5b81516003811061171c578182fd5b6000602082840312156117a7578081fd5b5035919050565b60208101600383106117d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208082526017908201527f4552524f523a434f532d3030343a4e4f545f4f574e4552000000000000000000604082015260600190565b60208082526023908201527f4552524f523a434f532d3030353a52455155495245445f524f4c455f4d495353604082015262494e4760e81b606082015260800190565b60208082526022908201527f4552524f523a434f532d3030333a434f4d504f4e454e545f49445f494e56414c604082015261125160f21b606082015260800190565b6001600160a01b03811681146118a757600080fd5b5056fea26469706673582212204fada8cc38a6834cba510a9d1fd15248263b594551f2057738c5fe9a6731ec8e64736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806393c829fc1161005b57806393c829fc146100bd578063a694fc3a146100d0578063c4d66de8146100e3578063fabc1cbc146100f65761007d565b80630126795114610082578063136439dd146100975780632e1a7d4d146100aa575b600080fd5b610095610090366004611700565b610109565b005b6100956100a5366004611796565b610422565b6100956100b8366004611796565b610764565b6100956100cb366004611796565b610a94565b6100956100de366004611796565b610da1565b6100956100f1366004611700565b6110d1565b610095610104366004611796565b611256565b806000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561014557600080fd5b505afa158015610159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017d9190611723565b90506000600260009054906101000a90046001600160a01b03166001600160a01b0316635af89a47846001600160a01b03166315dae03e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101de57600080fd5b505afa1580156101f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102169190611777565b6040518263ffffffff1660e01b815260040161023291906117ae565b60206040518083038186803b15801561024a57600080fd5b505afa15801561025e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610282919061175f565b9050336001600160a01b038316146102e15760405162461bcd60e51b815260206004820152601760248201527f4552524f523a434f532d3030313a4e4f545f4f574e455200000000000000000060448201526064015b60405180910390fd5b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561032d57600080fd5b505afa158015610341573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610365919061173f565b6103bd5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030323a52455155495245445f524f4c455f4d495353604482015262494e4760e81b60648201526084016102d8565b600254604051630126795160e01b81526001600160a01b03868116600483015290911690630126795190602401600060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b5050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561046b57600080fd5b505afa15801561047f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a39190611723565b90506001600160a01b0381166104cb5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561050657600080fd5b505afa15801561051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053e9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b15801561059057600080fd5b505afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c89190611777565b6040518263ffffffff1660e01b81526004016105e491906117ae565b60206040518083038186803b1580156105fc57600080fd5b505afa158015610610573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610634919061175f565b9050336001600160a01b0383161461065e5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156106aa57600080fd5b505afa1580156106be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e2919061173f565b6106fe5760405162461bcd60e51b81526004016102d89061180d565b60025460405163136439dd60e01b8152600481018790526001600160a01b039091169063136439dd906024015b600060405180830381600087803b15801561074557600080fd5b505af1158015610759573d6000803e3d6000fd5b505050505050505050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e59190611723565b90506001600160a01b03811661080d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561084857600080fd5b505afa15801561085c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108809190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611777565b6040518263ffffffff1660e01b815260040161092691906117ae565b60206040518083038186803b15801561093e57600080fd5b505afa158015610952573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610976919061175f565b9050336001600160a01b038316146109a05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156109ec57600080fd5b505afa158015610a00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a24919061173f565b610a405760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030373a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190611723565b90506001600160a01b038116610b3d5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610b7857600080fd5b505afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb09190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610c0257600080fd5b505afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a9190611777565b6040518263ffffffff1660e01b8152600401610c5691906117ae565b60206040518083038186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca6919061175f565b9050336001600160a01b03831614610cd05760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b158015610d1c57600080fd5b505afa158015610d30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d54919061173f565b610d705760405162461bcd60e51b81526004016102d89061180d565b600254604051636bc607b360e01b8152600481018790526001600160a01b0390911690636bc607b39060240161072b565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b158015610dea57600080fd5b505afa158015610dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e229190611723565b90506001600160a01b038116610e4a5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8557600080fd5b505afa158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd9190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b158015610f0f57600080fd5b505afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190611777565b6040518263ffffffff1660e01b8152600401610f6391906117ae565b60206040518083038186803b158015610f7b57600080fd5b505afa158015610f8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb3919061175f565b9050336001600160a01b03831614610fdd5760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611061919061173f565b61107d5760405162461bcd60e51b81526004016102d89061180d565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a434f532d3030363a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b60648201526084016102d8565b600054610100900460ff16158080156110f15750600054600160ff909116105b80611112575061110030611563565b158015611112575060005460ff166001145b6111755760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016102d8565b6000805460ff191660011790558015611198576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556111c2600090565b6541636365737360d01b14611204576111e36541636365737360d01b611576565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61120c61165e565b8015611252576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516309e4fb4360e31b81526004810183905282916000916001600160a01b0390911690634f27da189060240160206040518083038186803b15801561129f57600080fd5b505afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190611723565b90506001600160a01b0381166112ff5760405162461bcd60e51b81526004016102d890611850565b6000816001600160a01b031663893d20e86040518163ffffffff1660e01b815260040160206040518083038186803b15801561133a57600080fd5b505afa15801561134e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113729190611723565b600254604051636ea8e43560e11b8152600481018690529192506000916001600160a01b0390911690635af89a4790829063dd51c86a9060240160206040518083038186803b1580156113c457600080fd5b505afa1580156113d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fc9190611777565b6040518263ffffffff1660e01b815260040161141891906117ae565b60206040518083038186803b15801561143057600080fd5b505afa158015611444573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611468919061175f565b9050336001600160a01b038316146114925760405162461bcd60e51b81526004016102d8906117d6565b600154604051632474521560e21b8152600481018390526001600160a01b038481166024830152909116906391d148549060440160206040518083038186803b1580156114de57600080fd5b505afa1580156114f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611516919061173f565b6115325760405162461bcd60e51b81526004016102d89061180d565b600254604051633eaf072f60e21b8152600481018790526001600160a01b039091169063fabc1cbc9060240161072b565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156115c057600080fd5b505afa1580156115d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f89190611723565b90506001600160a01b0381166115715760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016102d8565b600054610100900460ff166116c95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102d8565b6116de6810dbdb5c1bdb995b9d60ba1b611576565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215611711578081fd5b813561171c81611892565b9392505050565b600060208284031215611734578081fd5b815161171c81611892565b600060208284031215611750578081fd5b8151801515811461171c578182fd5b600060208284031215611770578081fd5b5051919050565b600060208284031215611788578081fd5b81516003811061171c578182fd5b6000602082840312156117a7578081fd5b5035919050565b60208101600383106117d057634e487b7160e01b600052602160045260246000fd5b91905290565b60208082526017908201527f4552524f523a434f532d3030343a4e4f545f4f574e4552000000000000000000604082015260600190565b60208082526023908201527f4552524f523a434f532d3030353a52455155495245445f524f4c455f4d495353604082015262494e4760e81b606082015260800190565b60208082526022908201527f4552524f523a434f532d3030333a434f4d504f4e454e545f49445f494e56414c604082015261125160f21b606082015260800190565b6001600160a01b03811681146118a757600080fd5b5056fea26469706673582212204fada8cc38a6834cba510a9d1fd15248263b594551f2057738c5fe9a6731ec8e64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.dbg.json b/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.json b/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.json deleted file mode 100644 index 67f56cb0..00000000 --- a/artifacts/contracts/services/InstanceOperatorService.sol/InstanceOperatorService.json +++ /dev/null @@ -1,556 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "InstanceOperatorService", - "sourceName": "contracts/services/InstanceOperatorService.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "adjustStakingRequirements", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "archive", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - } - ], - "name": "createFeeSpecification", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_role", - "type": "bytes32" - } - ], - "name": "createRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "decline", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "deregister", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "deregisterInRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_role", - "type": "bytes32" - } - ], - "name": "invalidateRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_newRelease", - "type": "bytes32" - } - ], - "name": "prepareRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "name": "registerInRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "resume", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeTreasury", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "feeSpec", - "type": "tuple" - } - ], - "name": "setCapitalFees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint16", - "name": "componentType", - "type": "uint16" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "setDefaultStaking", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "walletAddress", - "type": "address" - } - ], - "name": "setInstanceWallet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fixedFee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fractionalFee", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "feeCalculationData", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct ITreasury.FeeSpecification", - "name": "feeSpec", - "type": "tuple" - } - ], - "name": "setPremiumFees", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "erc20Address", - "type": "address" - } - ], - "name": "setProductToken", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "riskpoolWalletAddress", - "type": "address" - } - ], - "name": "setRiskpoolWallet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "suspend", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendTreasury", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610019610027565b610022336100e7565b610139565b600054610100900460ff16156100935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611be380620001496000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063cc9cf8cd11610097578063d547741f11610071578063d547741f1461039b578063d5fe1f10146103ae578063dc527b08146103b6578063f2fde38b146103c9576101c4565b8063cc9cf8cd14610362578063d17d023314610375578063d22057a914610388576101c4565b8063b759f954116100d3578063b759f95414610316578063c42994a214610329578063c4d66de81461033c578063cab2504d1461034f576101c4565b80638da5cb5b146102d557806393c829fc146102f0578063a0355f4e14610303576101c4565b80634b8658461161016657806372beb6fb1161014057806372beb6fb1461028957806386039aed1461029c578063893917ea146102af5780638ca946aa146102c2576101c4565b80634b8658461461024557806362f0ab5514610258578063715018a614610281576101c4565b806320813154116101a257806320813154146101f95780632f2ff15d1461020c578063394c78ba1461021f578063414000b514610232576101c4565b806301132a7f146101c957806310a81c4a146101de5780631d5e7314146101e6575b600080fd5b6101dc6101d7366004611794565b6103dc565b005b6101dc610474565b6101dc6101f436600461175c565b610508565b6101dc6102073660046116f4565b6105ac565b6101dc61021a36600461170c565b61060c565b6101dc61022d36600461186c565b6106a1565b6101dc6102403660046116f4565b61071f565b6101dc6102533660046116f4565b61077a565b61026b610266366004611920565b6107d5565b6040516102789190611a82565b60405180910390f35b6101dc6108a4565b6101dc6102973660046118ef565b6108b8565b6101dc6102aa3660046118dd565b610936565b6101dc6102bd3660046116f4565b610999565b6101dc6102d0366004611794565b6109f9565b6002546040516001600160a01b039091168152602001610278565b6101dc6102fe3660046116f4565b610a53565b6101dc6103113660046116f4565b610aae565b6101dc6103243660046116f4565b610b09565b6101dc6103373660046116f4565b610d58565b6101dc61034a366004611695565b610db3565b6101dc61035d366004611695565b610f38565b6101dc6103703660046118dd565b610f94565b6101dc6103833660046116f4565b610ff7565b6101dc61039636600461170c565b611052565b6101dc6103a936600461170c565b6110bc565b6101dc61111f565b6101dc6103c436600461173b565b611199565b6101dc6103d7366004611695565b611200565b6002546001600160a01b0316331461040f5760405162461bcd60e51b8152600401610406906119a9565b60405180910390fd5b6005546040516301132a7f60e01b81526001600160a01b03909116906301132a7f9061043f9084906004016119ec565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b5050505050565b6002546001600160a01b0316331461049e5760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663046f7da26040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b50505050565b6002546001600160a01b031633146105325760405162461bcd60e51b8152600401610406906119a9565b6000546040516307579cc560e21b815260048101859052602481018490526001600160a01b0383811660448301526201000090920490911690631d5e7314906064015b600060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b50505050505050565b6002546001600160a01b031633146105d65760405162461bcd60e51b8152600401610406906119a9565b6000546040516308204c5560e21b815260048101839052620100009091046001600160a01b03169063208131549060240161043f565b6002546001600160a01b031633146106365760405162461bcd60e51b8152600401610406906119a9565b600154604051632f2ff15d60e01b8152600481018490526001600160a01b03838116602483015290911690632f2ff15d906044015b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505050565b6002546001600160a01b031633146106cb5760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031303a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146107495760405162461bcd60e51b8152600401610406906119a9565b60035460405163414000b560e01b8152600481018390526001600160a01b039091169063414000b59060240161043f565b6002546001600160a01b031633146107a45760405162461bcd60e51b8152600401610406906119a9565b6003546040516325c32c2360e11b8152600481018390526001600160a01b0390911690634b8658469060240161043f565b61080e6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b6005546040516362f0ab5560e01b81526001600160a01b03909116906362f0ab55906108469089908990899089908990600401611af4565b60006040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089a91908101906117cc565b9695505050505050565b6108ac611276565b6108b660006112d0565b565b6002546001600160a01b031633146108e25760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031313a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146109605760405162461bcd60e51b8152600401610406906119a9565b6005546040516386039aed60e01b8152600481018490526001600160a01b038381166024830152909116906386039aed9060440161066b565b6002546001600160a01b031633146109c35760405162461bcd60e51b8152600401610406906119a9565b60005460405163449c8bf560e11b815260048101839052620100009091046001600160a01b03169063893917ea9060240161043f565b6002546001600160a01b03163314610a235760405162461bcd60e51b8152600401610406906119a9565b600554604051634654a35560e11b81526001600160a01b0390911690638ca946aa9061043f9084906004016119ec565b6002546001600160a01b03163314610a7d5760405162461bcd60e51b8152600401610406906119a9565b6003546040516307aed1d360e11b8152600481018390526001600160a01b0390911690630f5da3a69060240161043f565b6002546001600160a01b03163314610ad85760405162461bcd60e51b8152600401610406906119a9565b60035460405163501aafa760e11b8152600481018390526001600160a01b039091169063a0355f4e9060240161043f565b6002546001600160a01b03163314610b335760405162461bcd60e51b8152600401610406906119a9565b600354604051632dd67e5560e21b8152600481018390526001600160a01b039091169063b759f95490602401600060405180830381600087803b158015610b7957600080fd5b505af1158015610b8d573d6000803e3d6000fd5b5050600354604051630e48080360e21b8152600481018590526001600160a01b039091169250633920200c915060240160206040518083038186803b158015610bd557600080fd5b505afa158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0d91906116d4565b15610d55576003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da189060240160206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f91906116b8565b90506000819050600460009054906101000a90046001600160a01b03166001600160a01b031663f93b367384836001600160a01b03166370d2fe536040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c91906118c5565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401610575565b50565b6002546001600160a01b03163314610d825760405162461bcd60e51b8152600401610406906119a9565b60015460405163274b02a760e01b8152600481018390526001600160a01b039091169063274b02a79060240161043f565b600054610100900460ff1615808015610dd35750600054600160ff909116105b80610df45750610de230611322565b158015610df4575060005460ff166001145b610e575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610406565b6000805460ff191660011790558015610e7a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610ea4600090565b6541636365737360d01b14610ee657610ec56541636365737360d01b611335565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610eee61141d565b8015610f34576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b03163314610f625760405162461bcd60e51b8152600401610406906119a9565b60055460405163cab2504d60e01b81526001600160a01b0383811660048301529091169063cab2504d9060240161043f565b6002546001600160a01b03163314610fbe5760405162461bcd60e51b8152600401610406906119a9565b60055460405163cc9cf8cd60e01b8152600481018490526001600160a01b0383811660248301529091169063cc9cf8cd9060440161066b565b6002546001600160a01b031633146110215760405162461bcd60e51b8152600401610406906119a9565b60015460405163d17d023360e01b8152600481018390526001600160a01b039091169063d17d02339060240161043f565b6002546001600160a01b0316331461107c5760405162461bcd60e51b8152600401610406906119a9565b60005460405163d22057a960e01b8152600481018490526001600160a01b038381166024830152620100009092049091169063d22057a99060440161066b565b6002546001600160a01b031633146110e65760405162461bcd60e51b8152600401610406906119a9565b60015460405163d547741f60e01b8152600481018490526001600160a01b0383811660248301529091169063d547741f9060440161066b565b6002546001600160a01b031633146111495760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663e6400bbe6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b6002546001600160a01b031633146111c35760405162461bcd60e51b8152600401610406906119a9565b600054604051631b8a4f6160e31b81526004810184905260248101839052620100009091046001600160a01b03169063dc527b089060440161066b565b611208611276565b6001600160a01b03811661126d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610406565b610d55816112d0565b6002546001600160a01b031633146108b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610406565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561137f57600080fd5b505afa158015611393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b791906116b8565b90506001600160a01b0381166113305760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610406565b600054610100900460ff166114885760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610406565b61149d6810dbdb5c1bdb995b9d60ba1b611335565b600380546001600160a01b0319166001600160a01b03929092169190911790556114cd63141bdbdb60e21b611335565b600480546001600160a01b0319166001600160a01b039290921691909117905561150167547265617375727960c01b611335565b600580546001600160a01b0319166001600160a01b039290921691909117905561153061152b3390565b6112d0565b611538611540565b6108b66115a1565b60006115596a213ab7323632aa37b5b2b760a91b611335565b9050600061156f6542756e646c6560d01b611335565b6040516328e2dc5360e21b81526001600160a01b0380831660048301529192509083169063a38b714c9060240161066b565b60006115b56541636365737360d01b611335565b60405163c19010a760e01b81523060048201529091506001600160a01b0382169063c19010a79060240161043f565b60008083601f8401126115f5578182fd5b50813567ffffffffffffffff81111561160c578182fd5b60208301915083602082850101111561162457600080fd5b9250929050565b600082601f83011261163b578081fd5b815167ffffffffffffffff81111561165557611655611b82565b611668601f8201601f1916602001611b25565b81815284602083860101111561167c578283fd5b61168d826020830160208701611b56565b949350505050565b6000602082840312156116a6578081fd5b81356116b181611b98565b9392505050565b6000602082840312156116c9578081fd5b81516116b181611b98565b6000602082840312156116e5578081fd5b815180151581146116b1578182fd5b600060208284031215611705578081fd5b5035919050565b6000806040838503121561171e578081fd5b82359150602083013561173081611b98565b809150509250929050565b6000806040838503121561174d578182fd5b50508035926020909101359150565b600080600060608486031215611770578081fd5b8335925060208401359150604084013561178981611b98565b809150509250925092565b6000602082840312156117a5578081fd5b813567ffffffffffffffff8111156117bb578182fd5b820160c081850312156116b1578182fd5b6000602082840312156117dd578081fd5b815167ffffffffffffffff808211156117f4578283fd5b9083019060c08286031215611807578283fd5b61181160c0611b25565b82518152602083015160208201526040830151604082015260608301518281111561183a578485fd5b6118468782860161162b565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600080600060408486031215611880578283fd5b833561ffff81168114611891578384fd5b9250602084013567ffffffffffffffff8111156118ac578283fd5b6118b8868287016115e4565b9497909650939450505050565b6000602082840312156118d6578081fd5b5051919050565b6000806040838503121561171e578182fd5b600080600060408486031215611903578081fd5b83359250602084013567ffffffffffffffff8111156118ac578182fd5b600080600080600060808688031215611937578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115611962578182fd5b61196e888289016115e4565b969995985093965092949392505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60208082526023908201527f4552524f523a494f532d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000602082528235602083015260208301356040830152604083013560608301526060830135601e19843603018112611a23578182fd5b8301803567ffffffffffffffff811115611a3b578283fd5b803603851315611a49578283fd5b60c06080850152611a6160e08501826020850161197f565b915050608084013560a084015260a084013560c08401528091505092915050565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015280518060e0850152610100611aca8282870160208601611b56565b608086015160a0868101919091529095015160c0850152601f01601f191690920190920192915050565b600086825285602083015284604083015260806060830152611b1a60808301848661197f565b979650505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611b4e57611b4e611b82565b604052919050565b60005b83811015611b71578181015183820152602001611b59565b838111156105025750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d5557600080fdfea2646970667358221220333f2e0637b224e8cc6c846170351f725e19eaaf413aa2f641b275607074212c64736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063cc9cf8cd11610097578063d547741f11610071578063d547741f1461039b578063d5fe1f10146103ae578063dc527b08146103b6578063f2fde38b146103c9576101c4565b8063cc9cf8cd14610362578063d17d023314610375578063d22057a914610388576101c4565b8063b759f954116100d3578063b759f95414610316578063c42994a214610329578063c4d66de81461033c578063cab2504d1461034f576101c4565b80638da5cb5b146102d557806393c829fc146102f0578063a0355f4e14610303576101c4565b80634b8658461161016657806372beb6fb1161014057806372beb6fb1461028957806386039aed1461029c578063893917ea146102af5780638ca946aa146102c2576101c4565b80634b8658461461024557806362f0ab5514610258578063715018a614610281576101c4565b806320813154116101a257806320813154146101f95780632f2ff15d1461020c578063394c78ba1461021f578063414000b514610232576101c4565b806301132a7f146101c957806310a81c4a146101de5780631d5e7314146101e6575b600080fd5b6101dc6101d7366004611794565b6103dc565b005b6101dc610474565b6101dc6101f436600461175c565b610508565b6101dc6102073660046116f4565b6105ac565b6101dc61021a36600461170c565b61060c565b6101dc61022d36600461186c565b6106a1565b6101dc6102403660046116f4565b61071f565b6101dc6102533660046116f4565b61077a565b61026b610266366004611920565b6107d5565b6040516102789190611a82565b60405180910390f35b6101dc6108a4565b6101dc6102973660046118ef565b6108b8565b6101dc6102aa3660046118dd565b610936565b6101dc6102bd3660046116f4565b610999565b6101dc6102d0366004611794565b6109f9565b6002546040516001600160a01b039091168152602001610278565b6101dc6102fe3660046116f4565b610a53565b6101dc6103113660046116f4565b610aae565b6101dc6103243660046116f4565b610b09565b6101dc6103373660046116f4565b610d58565b6101dc61034a366004611695565b610db3565b6101dc61035d366004611695565b610f38565b6101dc6103703660046118dd565b610f94565b6101dc6103833660046116f4565b610ff7565b6101dc61039636600461170c565b611052565b6101dc6103a936600461170c565b6110bc565b6101dc61111f565b6101dc6103c436600461173b565b611199565b6101dc6103d7366004611695565b611200565b6002546001600160a01b0316331461040f5760405162461bcd60e51b8152600401610406906119a9565b60405180910390fd5b6005546040516301132a7f60e01b81526001600160a01b03909116906301132a7f9061043f9084906004016119ec565b600060405180830381600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b5050505050565b6002546001600160a01b0316331461049e5760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663046f7da26040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b50505050565b6002546001600160a01b031633146105325760405162461bcd60e51b8152600401610406906119a9565b6000546040516307579cc560e21b815260048101859052602481018490526001600160a01b0383811660448301526201000090920490911690631d5e7314906064015b600060405180830381600087803b15801561058f57600080fd5b505af11580156105a3573d6000803e3d6000fd5b50505050505050565b6002546001600160a01b031633146105d65760405162461bcd60e51b8152600401610406906119a9565b6000546040516308204c5560e21b815260048101839052620100009091046001600160a01b03169063208131549060240161043f565b6002546001600160a01b031633146106365760405162461bcd60e51b8152600401610406906119a9565b600154604051632f2ff15d60e01b8152600481018490526001600160a01b03838116602483015290911690632f2ff15d906044015b600060405180830381600087803b15801561068557600080fd5b505af1158015610699573d6000803e3d6000fd5b505050505050565b6002546001600160a01b031633146106cb5760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031303a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146107495760405162461bcd60e51b8152600401610406906119a9565b60035460405163414000b560e01b8152600481018390526001600160a01b039091169063414000b59060240161043f565b6002546001600160a01b031633146107a45760405162461bcd60e51b8152600401610406906119a9565b6003546040516325c32c2360e11b8152600481018390526001600160a01b0390911690634b8658469060240161043f565b61080e6040518060c001604052806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b6005546040516362f0ab5560e01b81526001600160a01b03909116906362f0ab55906108469089908990899089908990600401611af4565b60006040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089a91908101906117cc565b9695505050505050565b6108ac611276565b6108b660006112d0565b565b6002546001600160a01b031633146108e25760405162461bcd60e51b8152600401610406906119a9565b60405162461bcd60e51b815260206004820152602360248201527f4552524f523a494f532d3031313a494d504c454d454e4154494f4e5f4d495353604482015262494e4760e81b6064820152608401610406565b6002546001600160a01b031633146109605760405162461bcd60e51b8152600401610406906119a9565b6005546040516386039aed60e01b8152600481018490526001600160a01b038381166024830152909116906386039aed9060440161066b565b6002546001600160a01b031633146109c35760405162461bcd60e51b8152600401610406906119a9565b60005460405163449c8bf560e11b815260048101839052620100009091046001600160a01b03169063893917ea9060240161043f565b6002546001600160a01b03163314610a235760405162461bcd60e51b8152600401610406906119a9565b600554604051634654a35560e11b81526001600160a01b0390911690638ca946aa9061043f9084906004016119ec565b6002546001600160a01b03163314610a7d5760405162461bcd60e51b8152600401610406906119a9565b6003546040516307aed1d360e11b8152600481018390526001600160a01b0390911690630f5da3a69060240161043f565b6002546001600160a01b03163314610ad85760405162461bcd60e51b8152600401610406906119a9565b60035460405163501aafa760e11b8152600481018390526001600160a01b039091169063a0355f4e9060240161043f565b6002546001600160a01b03163314610b335760405162461bcd60e51b8152600401610406906119a9565b600354604051632dd67e5560e21b8152600481018390526001600160a01b039091169063b759f95490602401600060405180830381600087803b158015610b7957600080fd5b505af1158015610b8d573d6000803e3d6000fd5b5050600354604051630e48080360e21b8152600481018590526001600160a01b039091169250633920200c915060240160206040518083038186803b158015610bd557600080fd5b505afa158015610be9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0d91906116d4565b15610d55576003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da189060240160206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f91906116b8565b90506000819050600460009054906101000a90046001600160a01b03166001600160a01b031663f93b367384836001600160a01b03166370d2fe536040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c91906118c5565b6040516001600160e01b031960e085901b16815260048101929092526024820152604401610575565b50565b6002546001600160a01b03163314610d825760405162461bcd60e51b8152600401610406906119a9565b60015460405163274b02a760e01b8152600481018390526001600160a01b039091169063274b02a79060240161043f565b600054610100900460ff1615808015610dd35750600054600160ff909116105b80610df45750610de230611322565b158015610df4575060005460ff166001145b610e575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610406565b6000805460ff191660011790558015610e7a576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610ea4600090565b6541636365737360d01b14610ee657610ec56541636365737360d01b611335565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610eee61141d565b8015610f34576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b03163314610f625760405162461bcd60e51b8152600401610406906119a9565b60055460405163cab2504d60e01b81526001600160a01b0383811660048301529091169063cab2504d9060240161043f565b6002546001600160a01b03163314610fbe5760405162461bcd60e51b8152600401610406906119a9565b60055460405163cc9cf8cd60e01b8152600481018490526001600160a01b0383811660248301529091169063cc9cf8cd9060440161066b565b6002546001600160a01b031633146110215760405162461bcd60e51b8152600401610406906119a9565b60015460405163d17d023360e01b8152600481018390526001600160a01b039091169063d17d02339060240161043f565b6002546001600160a01b0316331461107c5760405162461bcd60e51b8152600401610406906119a9565b60005460405163d22057a960e01b8152600481018490526001600160a01b038381166024830152620100009092049091169063d22057a99060440161066b565b6002546001600160a01b031633146110e65760405162461bcd60e51b8152600401610406906119a9565b60015460405163d547741f60e01b8152600481018490526001600160a01b0383811660248301529091169063d547741f9060440161066b565b6002546001600160a01b031633146111495760405162461bcd60e51b8152600401610406906119a9565b600560009054906101000a90046001600160a01b03166001600160a01b031663e6400bbe6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104ee57600080fd5b6002546001600160a01b031633146111c35760405162461bcd60e51b8152600401610406906119a9565b600054604051631b8a4f6160e31b81526004810184905260248101839052620100009091046001600160a01b03169063dc527b089060440161066b565b611208611276565b6001600160a01b03811661126d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610406565b610d55816112d0565b6002546001600160a01b031633146108b65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610406565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561137f57600080fd5b505afa158015611393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b791906116b8565b90506001600160a01b0381166113305760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610406565b600054610100900460ff166114885760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610406565b61149d6810dbdb5c1bdb995b9d60ba1b611335565b600380546001600160a01b0319166001600160a01b03929092169190911790556114cd63141bdbdb60e21b611335565b600480546001600160a01b0319166001600160a01b039290921691909117905561150167547265617375727960c01b611335565b600580546001600160a01b0319166001600160a01b039290921691909117905561153061152b3390565b6112d0565b611538611540565b6108b66115a1565b60006115596a213ab7323632aa37b5b2b760a91b611335565b9050600061156f6542756e646c6560d01b611335565b6040516328e2dc5360e21b81526001600160a01b0380831660048301529192509083169063a38b714c9060240161066b565b60006115b56541636365737360d01b611335565b60405163c19010a760e01b81523060048201529091506001600160a01b0382169063c19010a79060240161043f565b60008083601f8401126115f5578182fd5b50813567ffffffffffffffff81111561160c578182fd5b60208301915083602082850101111561162457600080fd5b9250929050565b600082601f83011261163b578081fd5b815167ffffffffffffffff81111561165557611655611b82565b611668601f8201601f1916602001611b25565b81815284602083860101111561167c578283fd5b61168d826020830160208701611b56565b949350505050565b6000602082840312156116a6578081fd5b81356116b181611b98565b9392505050565b6000602082840312156116c9578081fd5b81516116b181611b98565b6000602082840312156116e5578081fd5b815180151581146116b1578182fd5b600060208284031215611705578081fd5b5035919050565b6000806040838503121561171e578081fd5b82359150602083013561173081611b98565b809150509250929050565b6000806040838503121561174d578182fd5b50508035926020909101359150565b600080600060608486031215611770578081fd5b8335925060208401359150604084013561178981611b98565b809150509250925092565b6000602082840312156117a5578081fd5b813567ffffffffffffffff8111156117bb578182fd5b820160c081850312156116b1578182fd5b6000602082840312156117dd578081fd5b815167ffffffffffffffff808211156117f4578283fd5b9083019060c08286031215611807578283fd5b61181160c0611b25565b82518152602083015160208201526040830151604082015260608301518281111561183a578485fd5b6118468782860161162b565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600080600060408486031215611880578283fd5b833561ffff81168114611891578384fd5b9250602084013567ffffffffffffffff8111156118ac578283fd5b6118b8868287016115e4565b9497909650939450505050565b6000602082840312156118d6578081fd5b5051919050565b6000806040838503121561171e578182fd5b600080600060408486031215611903578081fd5b83359250602084013567ffffffffffffffff8111156118ac578182fd5b600080600080600060808688031215611937578283fd5b853594506020860135935060408601359250606086013567ffffffffffffffff811115611962578182fd5b61196e888289016115e4565b969995985093965092949392505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60208082526023908201527f4552524f523a494f532d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b6000602082528235602083015260208301356040830152604083013560608301526060830135601e19843603018112611a23578182fd5b8301803567ffffffffffffffff811115611a3b578283fd5b803603851315611a49578283fd5b60c06080850152611a6160e08501826020850161197f565b915050608084013560a084015260a084013560c08401528091505092915050565b600060208252825160208301526020830151604083015260408301516060830152606083015160c0608084015280518060e0850152610100611aca8282870160208601611b56565b608086015160a0868101919091529095015160c0850152601f01601f191690920190920192915050565b600086825285602083015284604083015260806060830152611b1a60808301848661197f565b979650505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611b4e57611b4e611b82565b604052919050565b60005b83811015611b71578181015183820152602001611b59565b838111156105025750506000910152565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d5557600080fdfea2646970667358221220333f2e0637b224e8cc6c846170351f725e19eaaf413aa2f641b275607074212c64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/services/InstanceService.sol/InstanceService.dbg.json b/artifacts/contracts/services/InstanceService.sol/InstanceService.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/services/InstanceService.sol/InstanceService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/services/InstanceService.sol/InstanceService.json b/artifacts/contracts/services/InstanceService.sol/InstanceService.json deleted file mode 100644 index 5e1a132f..00000000 --- a/artifacts/contracts/services/InstanceService.sol/InstanceService.json +++ /dev/null @@ -1,1366 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "InstanceService", - "sourceName": "contracts/services/InstanceService.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [], - "name": "BUNDLE_NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "COMPONENT_NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "COMPONENT_OWNER_SERVICE_NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "INSTANCE_OPERATOR_SERVICE_NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "ORACLE_SERVICE_NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "POLICY_NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "POOL_NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PRODUCT_SERVICE_NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "RISKPOOL_SERVICE_NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "TREASURY_NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "activeBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfActiveBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "bundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "claims", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfClaims", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "contractName", - "outputs": [ - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "contracts", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfContracts", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bundleIdx", - "type": "uint256" - } - ], - "name": "getActiveBundleId", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "getApplication", - "outputs": [ - { - "components": [ - { - "internalType": "enum IPolicy.ApplicationState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Application", - "name": "application", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "balanceAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "getBundle", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "bundle", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBundleToken", - "outputs": [ - { - "internalType": "contract IBundleToken", - "name": "token", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getCapacity", - "outputs": [ - { - "internalType": "uint256", - "name": "capacityAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getCapital", - "outputs": [ - { - "internalType": "uint256", - "name": "capitalAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getChainId", - "outputs": [ - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getChainName", - "outputs": [ - { - "internalType": "string", - "name": "chainName", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "getClaim", - "outputs": [ - { - "components": [ - { - "internalType": "enum IPolicy.ClaimState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "paidAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Claim", - "name": "claim", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "getComponent", - "outputs": [ - { - "internalType": "contract IComponent", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "componentAddress", - "type": "address" - } - ], - "name": "getComponentId", - "outputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getComponentOwnerService", - "outputs": [ - { - "internalType": "contract IComponentOwnerService", - "name": "service", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getComponentState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "componentState", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getComponentToken", - "outputs": [ - { - "internalType": "contract IERC20", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "getComponentType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getDefaultAdminRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFeeFractionFullUnit", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFullCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getInstanceId", - "outputs": [ - { - "internalType": "bytes32", - "name": "instanceId", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getInstanceOperator", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getInstanceOperatorService", - "outputs": [ - { - "internalType": "contract IInstanceOperatorService", - "name": "service", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getInstanceWallet", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getMaximumNumberOfActiveBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "bpKey", - "type": "bytes32" - } - ], - "name": "getMetadata", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - }, - { - "internalType": "enum IPolicy.PolicyFlowState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Metadata", - "name": "metadata", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getOracleId", - "outputs": [ - { - "internalType": "uint256", - "name": "oracleId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOracleProviderRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOracleService", - "outputs": [ - { - "internalType": "contract IOracleService", - "name": "service", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "getPayout", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "enum IPolicy.PayoutState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Payout", - "name": "payout", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "getPolicy", - "outputs": [ - { - "components": [ - { - "internalType": "enum IPolicy.PolicyState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumExpectedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "premiumPaidAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "claimsCount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "openClaimsCount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutMaxAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Policy", - "name": "policy", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getProductId", - "outputs": [ - { - "internalType": "uint256", - "name": "productId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProductOwnerRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProductService", - "outputs": [ - { - "internalType": "contract IProductService", - "name": "service", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "service", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getRiskpool", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "address", - "name": "erc20Token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "collateralizationLevel", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumOfSumInsuredCap", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumOfSumInsuredAtRisk", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPool.Pool", - "name": "riskPool", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getRiskpoolId", - "outputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRiskpoolKeeperRole", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRiskpoolService", - "outputs": [ - { - "internalType": "contract IRiskpoolService", - "name": "service", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getRiskpoolWallet", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "getStakedAssets", - "outputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "getStakingRequirements", - "outputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "getTotalValueLocked", - "outputs": [ - { - "internalType": "uint256", - "name": "totalValueLockedAmount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTreasuryAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "principal", - "type": "address" - } - ], - "name": "hasRole", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "oracles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "payouts", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfPayouts", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "processIds", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfProcessIds", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "products", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "riskpools", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "name": "unburntBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "numberOfUnburntBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b612ebd80620000f46000396000f3fe608060405234801561001057600080fd5b50600436106103e65760003560e01c80637f22c2d91161020a578063c4d66de811610125578063e543ecb9116100b8578063ec833b0c11610087578063ec833b0c14610894578063eff0f592146108a7578063f1d354d0146108ba578063f6b3e7d0146108c2578063ff3f3883146108d5576103e6565b8063e543ecb91461083b578063e882892214610854578063eb35783c1461086c578063eb80211414610874576103e6565b8063d49d21c0116100f4578063d49d21c0146107fa578063d722b0bc14610802578063dd51c86a1461080a578063e00246041461082a576103e6565b8063c4d66de8146107aa578063c559783e146107bf578063c71e261f146107d2578063cef58f13146107da576103e6565b8063a44330c41161019d578063ab9c6ee41161016c578063ab9c6ee41461075e578063aeddb90514610771578063bc506f6414610784578063bcd5349f14610797576103e6565b8063a44330c41461071b578063a5961b4c14610723578063a5c0f5a114610743578063a7ecda3614610756576103e6565b8063a3f66bd2116101d9578063a3f66bd2146106bf578063a3f685f9146106e0578063a4266a6614610700578063a427056e14610713576103e6565b80637f22c2d91461066157806391d14854146106815780639f77a605146106a4578063a054381f146106b7576103e6565b80633ffdd2f31161030557806352b5b0ef116102985780636319112b116102675780636319112b1461062e5780636c0f79b6146106365780636fa298531461063e578063775a4048146106465780637db328441461064e576103e6565b806352b5b0ef146105c75780635ab1bd53146105e65780635e6877be146105fe5780635e966e451461060e576103e6565b80634f27da18116102d45780634f27da181461058757806350e1a19b1461059a57806351b2fb90146105ac57806352a9c8d7146105bf576103e6565b80633ffdd2f31461055c5780634288121d14610564578063442ed8171461056c5780634908163714610574576103e6565b80632898312f1161037d5780633408e4701161034c5780633408e4701461051b57806339c6fa90146105215780633a42b053146105295780633f5d923514610549576103e6565b80632898312f146104be57806329560980146104d55780632b1c7f73146104e85780632d0821b7146104fb576103e6565b806318442e63116103b957806318442e631461048b57806318ff21c3146104935780631e010439146104a35780632857373a146104b6576103e6565b8063038696bb146103eb578063091924dc1461041b5780630c131757146104235780631551100f1461043f575b600080fd5b6103fe6103f93660046125e1565b6108e8565b6040516001600160a01b0390911681526020015b60405180910390f35b6103fe61096e565b61043163141bdbdb60e21b81565b604051908152602001610412565b61043160008054604080514660208201526201000090920460601b6bffffffffffffffffffffffff19169082015260540160405160208183030381529060405280519060200120905090565b610431610998565b61043165506f6c69637960d01b81565b6104316104b13660046125e1565b610a15565b610431610a9e565b6104316c4f7261636c655365727669636560981b81565b6104316104e33660046125e1565b610ae3565b6104316104f6366004612589565b610b6b565b61050e6105093660046125e1565b610bea565b6040516104129190612b14565b46610431565b6103fe610c72565b61053c6105373660046125e1565b610d11565b6040516104129190612a75565b6104316105573660046125e1565b610d6c565b610431610df4565b6103fe610e39565b6103fe610e55565b6103fe6105823660046125e1565b610e72565b6103fe6105953660046125e1565b610ea4565b61043167547265617375727960c01b81565b6104316810dbdb5c1bdb995b9d60ba1b81565b610431610ed6565b61043174436f6d706f6e656e744f776e65725365727669636560581b81565b6103fe6000546201000090046001600160a01b031690565b6104316542756e646c6560d01b81565b61062161061c3660046125e1565b610f1b565b6040516104129190612a88565b610431610f98565b610431610fdd565b6103fe61102c565b61043161104f565b61043161065c3660046125e1565b611094565b61067461066f366004612640565b6110c6565b6040516104129190612aaf565b61069461068f366004612611565b61118c565b6040519015158152602001610412565b6104316106b23660046125e1565b611211565b610431611243565b61043176496e7374616e63654f70657261746f725365727669636560481b81565b6106f36106ee3660046125e1565b611288565b6040516104129190612c44565b61043161070e3660046125e1565b611353565b610431611385565b6103fe6113d5565b6107366107313660046125e1565b611452565b6040516104129190612bab565b6104316107513660046125e1565b611509565b6103fe61153b565b61053c61076c3660046125e1565b611556565b61043161077f3660046125e1565b6115ac565b6106746107923660046125e1565b6115e0565b6104316107a53660046125e1565b611698565b6107bd6107b8366004612589565b611730565b005b6104316107cd3660046125e1565b6118ae565b6104316118e0565b6107ed6107e8366004612640565b611925565b6040516104129190612bf8565b6104316119e4565b61053c611a29565b61081d6108183660046125e1565b611aca565b6040516104129190612aa2565b6006546001600160a01b03166103fe565b6104316e5269736b706f6f6c5365727669636560881b81565b6104316d50726f647563745365727669636560901b81565b6103fe611b47565b6108876108823660046125e1565b611bd6565b6040516104129190612cb1565b6104316108a2366004612640565b611cc2565b6104316108b53660046125e1565b611d46565b610431611d7a565b6104316108d03660046125e1565b611dbf565b6104316108e33660046125e1565b611df6565b60065460405163038696bb60e01b8152600481018390526000916001600160a01b03169063038696bb906024015b60206040518083038186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125a5565b90505b919050565b600061099376496e7374616e63654f70657261746f725365727669636560481b611e2b565b905090565b600254604080516318442e6360e01b815290516000926001600160a01b0316916318442e63916004808301926020929190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125f9565b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610a5b57600080fd5b505afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a939190612998565b610100015192915050565b6003546040805163142b9b9d60e11b815290516000926001600160a01b031691632857373a916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610b2957600080fd5b505afa158015610b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b619190612998565b60c0015192915050565b600354604051632b1c7f7360e01b81526001600160a01b0383811660048301526000921690632b1c7f73906024015b60206040518083038186803b158015610bb257600080fd5b505afa158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125f9565b610bf26123f3565b600254604051632d0821b760e01b8152600481018490526001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3657600080fd5b505afa158015610c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109669190810190612747565b600080610c9876496e7374616e63654f70657261746f725365727669636560481b611e2b565b9050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd357600080fd5b505afa158015610ce7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0b91906125a5565b91505090565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030323a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b60648201526060906084015b60405180910390fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610db257600080fd5b505afa158015610dc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dea9190612998565b60e0015192915050565b60015460408051633ffdd2f360e01b815290516000926001600160a01b031691633ffdd2f3916004808301926020929190829003018186803b1580156109dd57600080fd5b60006109936d50726f647563745365727669636560901b611e2b565b60006109936e5269736b706f6f6c5365727669636560881b611e2b565b600654604051634908163760e01b8152600481018390526000916001600160a01b031690634908163790602401610916565b6003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da1890602401610916565b600154604080516352a9c8d760e01b815290516000926001600160a01b0316916352a9c8d7916004808301926020929190829003018186803b1580156109dd57600080fd5b600354604051635e966e4560e01b8152600481018390526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610f6057600080fd5b505afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612661565b60065460408051634667ae5160e11b815290516000926001600160a01b031691638ccf5ca2916004808301926020929190829003018186803b1580156109dd57600080fd5b60008060029054906101000a90046001600160a01b03166001600160a01b0316636c0f79b66040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b600061099374436f6d706f6e656e744f776e65725365727669636560581b611e2b565b60015460408051630eeb480960e31b815290516000926001600160a01b03169163775a4048916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051631f6cca1160e21b8152600481018390526000916001600160a01b031690637db3284490602401610b9a565b6111006040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051637f22c2d960e01b8152918201859052602482018490526001600160a01b031690637f22c2d99060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611185919081019061269c565b9392505050565b600154604051632474521560e21b8152600481018490526001600160a01b03838116602483015260009216906391d148549060440160206040518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125c1565b600354604051639f77a60560e01b8152600481018390526000916001600160a01b031690639f77a60590602401610b9a565b6003546040805163a054381f60e01b815290516000926001600160a01b03169163a054381f916004808301926020929190829003018186803b1580156109dd57600080fd5b6112d8604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6004805460405163a3f685f960e01b81529182018490526001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612913565b600554604051635213353360e11b8152600481018390526000916001600160a01b03169063a4266a6690602401610b9a565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663a427056e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b60065460408051632910cc3160e21b815290516000926001600160a01b03169163a44330c4916004808301926020929190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125a5565b61148b6040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b6004805460405163296586d360e21b81529182018490526001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061281b565b60035460405163a5c0f5a160e01b8152600481018390526000916001600160a01b03169063a5c0f5a190602401610b9a565b60006109936c4f7261636c655365727669636560981b611e2b565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030313a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b6064820152606090608401610d63565b6004805460405163be183b1160e01b81529182018390526000916001600160a01b039091169063be183b1190602401610b9a565b61161a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051632f141bd960e21b81529182018490526001600160a01b03169063bc506f649060240160006040518083038186803b15801561165c57600080fd5b505afa158015611670573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061269c565b600554604051633ae0084560e21b81526004810183905260009182916001600160a01b039091169063eb802114906024016101606040518083038186803b1580156116e257600080fd5b505afa1580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a9190612998565b90508060e001518160c001516111859190612d7e565b600054610100900460ff16158080156117505750600054600160ff909116105b8061176a5750303b15801561176a575060005460ff166001145b6117cd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d63565b6000805460ff1916600117905580156117f0576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561181a600090565b6541636365737360d01b1461185c5761183b6541636365737360d01b611e2b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611864611f13565b80156118aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516362acbc1f60e11b8152600481018390526000916001600160a01b03169063c559783e90602401610b9a565b6003546040805163c71e261f60e01b815290516000926001600160a01b03169163c71e261f916004808301926020929190829003018186803b1580156109dd57600080fd5b61195f6040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6004805460405163cef58f1360e01b8152918201859052602482018490526001600160a01b03169063cef58f139060440160006040518083038186803b1580156119a857600080fd5b505afa1580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111859190810190612899565b60015460408051630352748760e61b815290516000926001600160a01b03169163d49d21c0916004808301926020929190829003018186803b1580156109dd57600080fd5b466000908152600760205260409020805460609190611a4790612dd1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7390612dd1565b8015611ac05780601f10611a9557610100808354040283529160200191611ac0565b820191906000526020600020905b815481529060010190602001808311611aa357829003601f168201915b5050505050905090565b600354604051636ea8e43560e11b8152600481018390526000916001600160a01b03169063dd51c86a9060240160206040518083038186803b158015611b0f57600080fd5b505afa158015611b23573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612680565b600080600260009054906101000a90046001600160a01b03166001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906125a5565b92915050565b611c456040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600554604051633ae0084560e21b8152600481018490526001600160a01b039091169063eb802114906024016101606040518083038186803b158015611c8a57600080fd5b505afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612998565b600554604051633b20cec360e21b815260048101849052602481018390526000916001600160a01b03169063ec833b0c9060440160206040518083038186803b158015611d0e57600080fd5b505afa158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125f9565b6004805460405163163c4b3160e31b81529182018390526000916001600160a01b039091169063b1e2598890602401610b9a565b60055460408051630f1d354d60e41b815290516000926001600160a01b03169163f1d354d0916004808301926020929190829003018186803b1580156109dd57600080fd5b60008054604051630f6b3e7d60e41b815260048101849052620100009091046001600160a01b03169063f6b3e7d090602401610b9a565b600354604051600162c0c77d60e01b03198152600481018390526000916001600160a01b03169063ff3f388390602401610b9a565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611e7557600080fd5b505afa158015611e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ead91906125a5565b90506001600160a01b0381166109695760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610d63565b600054610100900460ff16611f7e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610d63565b611f906542756e646c6560d01b611e2b565b600280546001600160a01b0319166001600160a01b0392909216919091179055611fc56810dbdb5c1bdb995b9d60ba1b611e2b565b600380546001600160a01b0319166001600160a01b0392909216919091179055611ff765506f6c69637960d01b611e2b565b600480546001600160a01b0319166001600160a01b039290921691909117905561202763141bdbdb60e21b611e2b565b600580546001600160a01b0319166001600160a01b039290921691909117905561205b67547265617375727960c01b611e2b565b600680546001600160a01b0319166001600160a01b0392909216919091179055612083612085565b565b60408051808201909152601481527308ae8d0cae4caeada409ac2d2dcdccae85e8aa8960631b602080830191825260016000526007905290516120e9917fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82891612465565b5060408051808201909152600a81526908edecae4d8d25e8aa8960b31b60208083019182526005600052600790529051612144917fbcdda56b5d08466ec462cbbe0adfa57cb0a15fcc8940ef68f702f21b787bc93591612465565b506040805180820190915260078082526647616e6163686560c81b602080840191825261053960005291909152905161219e917f96a76633116ac3161b66b4be70f114c9a245f4bbf414dc7a4d0edce8c01734cf91612465565b5060408051808201909152600b81526a476e6f7369732f7844616960a81b602080830191825260646000526007905290516121fa917f06179e496907eb3333fef2ed2194553681badbb6d717316349bf33d21ec47e1291612465565b5060408051808201909152600a815269536f6b6f6c2f53504f4160b01b6020808301918252604d600052600790529051612255917f58f3d94c4a880e721e755344405d3fe6076875bf5b3ad388d0a326a85bcabfb591612465565b50604080518082019091526015815274506f6c79676f6e204d61696e6e65742f4d4154494360581b602080830191825260896000526007905290516122bb917f65420a8d28339aeca441a0c94a464f6387b468f3f5ea5c247a6df59a5f7b886691612465565b5060408051808201909152600c81526b4d756d6261692f4d4154494360a01b6020808301918252611f41600052600790529051612319917f4d67172c71df6b75e948764b65521db84c0c61e94d5f3739b666417e9471e58491612465565b50604080518082019091526016815275082ecc2d8c2dcc6d0ca40865a86d0c2d2dc5e82ac82b60531b602080830191825261a86a600052600790529051612381917fa4356065248d86930c73e944e85f9d029fb0f52c0b8312d1a61bfbc9797ef51491612465565b5060408051808201909152601b81527f4176616c616e6368652046756a6920546573746e65742f415641580000000000602080830191825261a8696000526007905290516123f0917f57a00da22bfc0a372532b5dfacb7ddf387626f66de87422d191e09ea7493495691612465565b50565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561243557634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461247190612dd1565b90600052602060002090601f01602090048101928261249357600085556124d9565b82601f106124ac57805160ff19168380011785556124d9565b828001600101855582156124d9579182015b828111156124d95782518255916020019190600101906124be565b506124e59291506124e9565b5090565b5b808211156124e557600081556001016124ea565b805161096981612e58565b600082601f830112612519578081fd5b815167ffffffffffffffff81111561253357612533612e22565b612546601f8201601f1916602001612d4d565b81815284602083860101111561255a578283fd5b61256b826020830160208701612da1565b949350505050565b805161096981612e6d565b805161096981612e7a565b60006020828403121561259a578081fd5b813561118581612e58565b6000602082840312156125b6578081fd5b815161118581612e58565b6000602082840312156125d2578081fd5b81518015158114611185578182fd5b6000602082840312156125f2578081fd5b5035919050565b60006020828403121561260a578081fd5b5051919050565b60008060408385031215612623578081fd5b82359150602083013561263581612e58565b809150509250929050565b60008060408385031215612652578182fd5b50508035926020909101359150565b600060208284031215612672578081fd5b815160078110611185578182fd5b600060208284031215612691578081fd5b815161118581612e7a565b6000602082840312156126ad578081fd5b815167ffffffffffffffff808211156126c4578283fd5b9083019060c082860312156126d7578283fd5b6126e160c0612d4d565b82516126ec81612e6d565b808252506020830151602082015260408301516040820152606083015182811115612715578485fd5b61272187828601612509565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612758578081fd5b815167ffffffffffffffff8082111561276f578283fd5b8184019150610140808387031215612785578384fd5b61278e81612d4d565b90508251815260208301516020820152604083015160408201526127b460608401612573565b60608201526080830151828111156127ca578485fd5b6127d687828601612509565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60006020828403121561282c578081fd5b815167ffffffffffffffff80821115612843578283fd5b9083019060c08286031215612856578283fd5b61286060c0612d4d565b825161286b81612e58565b8152602083810151908201526128836040840161257e565b6040820152606083015182811115612715578485fd5b6000602082840312156128aa578081fd5b815167ffffffffffffffff808211156128c1578283fd5b9083019060c082860312156128d4578283fd5b6128de60c0612d4d565b825181526020830151600281106128f3578485fd5b602082015260408381015190820152606083015182811115612715578485fd5b6000610120808385031215612926578182fd5b61292f81612d4d565b905061293a8361257e565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006101608083850312156129ab578182fd5b6129b481612d4d565b9050825181526129c6602084016124fe565b60208201526129d7604084016124fe565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152508091505092915050565b60008151808452612a54816020860160208601612da1565b601f01601f19169290920160200192915050565b612a7181612e38565b9052565b6000602082526111856020830184612a3c565b6020810160078310612a9c57612a9c612e0c565b91905290565b60208101612a9c83612e48565b6000602082528251612ac081612e38565b806020840152506020830151604083015260408301516060830152606083015160c06080840152612af460e0840182612a3c565b9050608084015160a084015260a084015160c08401528091505092915050565b6000602082528251602083015260208301516040830152604083015160608301526060830151612b476080840182612a68565b5060808301516101408060a0850152612b64610160850183612a3c565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b60006020825260018060a01b038351166020830152602083015160408301526040830151612bd881612e48565b80606084015250606083015160c06080840152612af460e0840182612a3c565b60006020825282516020830152602083015160028110612c1a57612c1a612e0c565b8060408401525060408301516060830152606083015160c06080840152612af460e0840182612a3c565b8151610120820190612c5581612e48565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b81518152602080830151610160830191612cd5908401826001600160a01b03169052565b506040830151612cf060408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7657612d76612e22565b604052919050565b600082821015612d9c57634e487b7160e01b81526011600452602481fd5b500390565b60005b83811015612dbc578181015183820152602001612da4565b83811115612dcb576000848401525b50505050565b600281046001821680612de557607f821691505b60208210811415612e0657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600481106123f0576123f0612e0c565b600381106123f0576123f0612e0c565b6001600160a01b03811681146123f057600080fd5b600481106123f057600080fd5b600381106123f057600080fdfea26469706673582212208baa8d3664a94bfb7869664ce5bc59b2293ec35862ba4906c74e8d5f75cdd5f464736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103e65760003560e01c80637f22c2d91161020a578063c4d66de811610125578063e543ecb9116100b8578063ec833b0c11610087578063ec833b0c14610894578063eff0f592146108a7578063f1d354d0146108ba578063f6b3e7d0146108c2578063ff3f3883146108d5576103e6565b8063e543ecb91461083b578063e882892214610854578063eb35783c1461086c578063eb80211414610874576103e6565b8063d49d21c0116100f4578063d49d21c0146107fa578063d722b0bc14610802578063dd51c86a1461080a578063e00246041461082a576103e6565b8063c4d66de8146107aa578063c559783e146107bf578063c71e261f146107d2578063cef58f13146107da576103e6565b8063a44330c41161019d578063ab9c6ee41161016c578063ab9c6ee41461075e578063aeddb90514610771578063bc506f6414610784578063bcd5349f14610797576103e6565b8063a44330c41461071b578063a5961b4c14610723578063a5c0f5a114610743578063a7ecda3614610756576103e6565b8063a3f66bd2116101d9578063a3f66bd2146106bf578063a3f685f9146106e0578063a4266a6614610700578063a427056e14610713576103e6565b80637f22c2d91461066157806391d14854146106815780639f77a605146106a4578063a054381f146106b7576103e6565b80633ffdd2f31161030557806352b5b0ef116102985780636319112b116102675780636319112b1461062e5780636c0f79b6146106365780636fa298531461063e578063775a4048146106465780637db328441461064e576103e6565b806352b5b0ef146105c75780635ab1bd53146105e65780635e6877be146105fe5780635e966e451461060e576103e6565b80634f27da18116102d45780634f27da181461058757806350e1a19b1461059a57806351b2fb90146105ac57806352a9c8d7146105bf576103e6565b80633ffdd2f31461055c5780634288121d14610564578063442ed8171461056c5780634908163714610574576103e6565b80632898312f1161037d5780633408e4701161034c5780633408e4701461051b57806339c6fa90146105215780633a42b053146105295780633f5d923514610549576103e6565b80632898312f146104be57806329560980146104d55780632b1c7f73146104e85780632d0821b7146104fb576103e6565b806318442e63116103b957806318442e631461048b57806318ff21c3146104935780631e010439146104a35780632857373a146104b6576103e6565b8063038696bb146103eb578063091924dc1461041b5780630c131757146104235780631551100f1461043f575b600080fd5b6103fe6103f93660046125e1565b6108e8565b6040516001600160a01b0390911681526020015b60405180910390f35b6103fe61096e565b61043163141bdbdb60e21b81565b604051908152602001610412565b61043160008054604080514660208201526201000090920460601b6bffffffffffffffffffffffff19169082015260540160405160208183030381529060405280519060200120905090565b610431610998565b61043165506f6c69637960d01b81565b6104316104b13660046125e1565b610a15565b610431610a9e565b6104316c4f7261636c655365727669636560981b81565b6104316104e33660046125e1565b610ae3565b6104316104f6366004612589565b610b6b565b61050e6105093660046125e1565b610bea565b6040516104129190612b14565b46610431565b6103fe610c72565b61053c6105373660046125e1565b610d11565b6040516104129190612a75565b6104316105573660046125e1565b610d6c565b610431610df4565b6103fe610e39565b6103fe610e55565b6103fe6105823660046125e1565b610e72565b6103fe6105953660046125e1565b610ea4565b61043167547265617375727960c01b81565b6104316810dbdb5c1bdb995b9d60ba1b81565b610431610ed6565b61043174436f6d706f6e656e744f776e65725365727669636560581b81565b6103fe6000546201000090046001600160a01b031690565b6104316542756e646c6560d01b81565b61062161061c3660046125e1565b610f1b565b6040516104129190612a88565b610431610f98565b610431610fdd565b6103fe61102c565b61043161104f565b61043161065c3660046125e1565b611094565b61067461066f366004612640565b6110c6565b6040516104129190612aaf565b61069461068f366004612611565b61118c565b6040519015158152602001610412565b6104316106b23660046125e1565b611211565b610431611243565b61043176496e7374616e63654f70657261746f725365727669636560481b81565b6106f36106ee3660046125e1565b611288565b6040516104129190612c44565b61043161070e3660046125e1565b611353565b610431611385565b6103fe6113d5565b6107366107313660046125e1565b611452565b6040516104129190612bab565b6104316107513660046125e1565b611509565b6103fe61153b565b61053c61076c3660046125e1565b611556565b61043161077f3660046125e1565b6115ac565b6106746107923660046125e1565b6115e0565b6104316107a53660046125e1565b611698565b6107bd6107b8366004612589565b611730565b005b6104316107cd3660046125e1565b6118ae565b6104316118e0565b6107ed6107e8366004612640565b611925565b6040516104129190612bf8565b6104316119e4565b61053c611a29565b61081d6108183660046125e1565b611aca565b6040516104129190612aa2565b6006546001600160a01b03166103fe565b6104316e5269736b706f6f6c5365727669636560881b81565b6104316d50726f647563745365727669636560901b81565b6103fe611b47565b6108876108823660046125e1565b611bd6565b6040516104129190612cb1565b6104316108a2366004612640565b611cc2565b6104316108b53660046125e1565b611d46565b610431611d7a565b6104316108d03660046125e1565b611dbf565b6104316108e33660046125e1565b611df6565b60065460405163038696bb60e01b8152600481018390526000916001600160a01b03169063038696bb906024015b60206040518083038186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125a5565b90505b919050565b600061099376496e7374616e63654f70657261746f725365727669636560481b611e2b565b905090565b600254604080516318442e6360e01b815290516000926001600160a01b0316916318442e63916004808301926020929190829003018186803b1580156109dd57600080fd5b505afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125f9565b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610a5b57600080fd5b505afa158015610a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a939190612998565b610100015192915050565b6003546040805163142b9b9d60e11b815290516000926001600160a01b031691632857373a916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610b2957600080fd5b505afa158015610b3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b619190612998565b60c0015192915050565b600354604051632b1c7f7360e01b81526001600160a01b0383811660048301526000921690632b1c7f73906024015b60206040518083038186803b158015610bb257600080fd5b505afa158015610bc6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096691906125f9565b610bf26123f3565b600254604051632d0821b760e01b8152600481018490526001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610c3657600080fd5b505afa158015610c4a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109669190810190612747565b600080610c9876496e7374616e63654f70657261746f725365727669636560481b611e2b565b9050806001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd357600080fd5b505afa158015610ce7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0b91906125a5565b91505090565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030323a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b60648201526060906084015b60405180910390fd5b600554604051633ae0084560e21b8152600481018390526000916001600160a01b03169063eb802114906024016101606040518083038186803b158015610db257600080fd5b505afa158015610dc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dea9190612998565b60e0015192915050565b60015460408051633ffdd2f360e01b815290516000926001600160a01b031691633ffdd2f3916004808301926020929190829003018186803b1580156109dd57600080fd5b60006109936d50726f647563745365727669636560901b611e2b565b60006109936e5269736b706f6f6c5365727669636560881b611e2b565b600654604051634908163760e01b8152600481018390526000916001600160a01b031690634908163790602401610916565b6003546040516309e4fb4360e31b8152600481018390526000916001600160a01b031690634f27da1890602401610916565b600154604080516352a9c8d760e01b815290516000926001600160a01b0316916352a9c8d7916004808301926020929190829003018186803b1580156109dd57600080fd5b600354604051635e966e4560e01b8152600481018390526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610f6057600080fd5b505afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612661565b60065460408051634667ae5160e11b815290516000926001600160a01b031691638ccf5ca2916004808301926020929190829003018186803b1580156109dd57600080fd5b60008060029054906101000a90046001600160a01b03166001600160a01b0316636c0f79b66040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b600061099374436f6d706f6e656e744f776e65725365727669636560581b611e2b565b60015460408051630eeb480960e31b815290516000926001600160a01b03169163775a4048916004808301926020929190829003018186803b1580156109dd57600080fd5b600554604051631f6cca1160e21b8152600481018390526000916001600160a01b031690637db3284490602401610b9a565b6111006040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051637f22c2d960e01b8152918201859052602482018490526001600160a01b031690637f22c2d99060440160006040518083038186803b15801561114957600080fd5b505afa15801561115d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611185919081019061269c565b9392505050565b600154604051632474521560e21b8152600481018490526001600160a01b03838116602483015260009216906391d148549060440160206040518083038186803b1580156111d957600080fd5b505afa1580156111ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125c1565b600354604051639f77a60560e01b8152600481018390526000916001600160a01b031690639f77a60590602401610b9a565b6003546040805163a054381f60e01b815290516000926001600160a01b03169163a054381f916004808301926020929190829003018186803b1580156109dd57600080fd5b6112d8604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6004805460405163a3f685f960e01b81529182018490526001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561131b57600080fd5b505afa15801561132f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612913565b600554604051635213353360e11b8152600481018390526000916001600160a01b03169063a4266a6690602401610b9a565b6000600460009054906101000a90046001600160a01b03166001600160a01b031663a427056e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109dd57600080fd5b60065460408051632910cc3160e21b815290516000926001600160a01b03169163a44330c4916004808301926020929190829003018186803b15801561141a57600080fd5b505afa15801561142e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099391906125a5565b61148b6040805160c081018252600080825260208201819052909182019081526020016060815260200160008152602001600081525090565b6004805460405163296586d360e21b81529182018490526001600160a01b03169063a5961b4c9060240160006040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061281b565b60035460405163a5c0f5a160e01b8152600481018390526000916001600160a01b03169063a5c0f5a190602401610b9a565b60006109936c4f7261636c655365727669636560981b611e2b565b60405162461bcd60e51b815260206004820152602260248201527f4552524f523a49532d3030313a494d504c454d454e4154494f4e5f4d495353496044820152614e4760f01b6064820152606090608401610d63565b6004805460405163be183b1160e01b81529182018390526000916001600160a01b039091169063be183b1190602401610b9a565b61161a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b60048054604051632f141bd960e21b81529182018490526001600160a01b03169063bc506f649060240160006040518083038186803b15801561165c57600080fd5b505afa158015611670573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610966919081019061269c565b600554604051633ae0084560e21b81526004810183905260009182916001600160a01b039091169063eb802114906024016101606040518083038186803b1580156116e257600080fd5b505afa1580156116f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171a9190612998565b90508060e001518160c001516111859190612d7e565b600054610100900460ff16158080156117505750600054600160ff909116105b8061176a5750303b15801561176a575060005460ff166001145b6117cd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d63565b6000805460ff1916600117905580156117f0576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561181a600090565b6541636365737360d01b1461185c5761183b6541636365737360d01b611e2b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b611864611f13565b80156118aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546040516362acbc1f60e11b8152600481018390526000916001600160a01b03169063c559783e90602401610b9a565b6003546040805163c71e261f60e01b815290516000926001600160a01b03169163c71e261f916004808301926020929190829003018186803b1580156109dd57600080fd5b61195f6040805160c08101909152600080825260208201908152602001600081526020016060815260200160008152602001600081525090565b6004805460405163cef58f1360e01b8152918201859052602482018490526001600160a01b03169063cef58f139060440160006040518083038186803b1580156119a857600080fd5b505afa1580156119bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111859190810190612899565b60015460408051630352748760e61b815290516000926001600160a01b03169163d49d21c0916004808301926020929190829003018186803b1580156109dd57600080fd5b466000908152600760205260409020805460609190611a4790612dd1565b80601f0160208091040260200160405190810160405280929190818152602001828054611a7390612dd1565b8015611ac05780601f10611a9557610100808354040283529160200191611ac0565b820191906000526020600020905b815481529060010190602001808311611aa357829003601f168201915b5050505050905090565b600354604051636ea8e43560e11b8152600481018390526000916001600160a01b03169063dd51c86a9060240160206040518083038186803b158015611b0f57600080fd5b505afa158015611b23573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612680565b600080600260009054906101000a90046001600160a01b03166001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9857600080fd5b505afa158015611bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd091906125a5565b92915050565b611c456040518061016001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600554604051633ae0084560e21b8152600481018490526001600160a01b039091169063eb802114906024016101606040518083038186803b158015611c8a57600080fd5b505afa158015611c9e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612998565b600554604051633b20cec360e21b815260048101849052602481018390526000916001600160a01b03169063ec833b0c9060440160206040518083038186803b158015611d0e57600080fd5b505afa158015611d22573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118591906125f9565b6004805460405163163c4b3160e31b81529182018390526000916001600160a01b039091169063b1e2598890602401610b9a565b60055460408051630f1d354d60e41b815290516000926001600160a01b03169163f1d354d0916004808301926020929190829003018186803b1580156109dd57600080fd5b60008054604051630f6b3e7d60e41b815260048101849052620100009091046001600160a01b03169063f6b3e7d090602401610b9a565b600354604051600162c0c77d60e01b03198152600481018390526000916001600160a01b03169063ff3f388390602401610b9a565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611e7557600080fd5b505afa158015611e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ead91906125a5565b90506001600160a01b0381166109695760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610d63565b600054610100900460ff16611f7e5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610d63565b611f906542756e646c6560d01b611e2b565b600280546001600160a01b0319166001600160a01b0392909216919091179055611fc56810dbdb5c1bdb995b9d60ba1b611e2b565b600380546001600160a01b0319166001600160a01b0392909216919091179055611ff765506f6c69637960d01b611e2b565b600480546001600160a01b0319166001600160a01b039290921691909117905561202763141bdbdb60e21b611e2b565b600580546001600160a01b0319166001600160a01b039290921691909117905561205b67547265617375727960c01b611e2b565b600680546001600160a01b0319166001600160a01b0392909216919091179055612083612085565b565b60408051808201909152601481527308ae8d0cae4caeada409ac2d2dcdccae85e8aa8960631b602080830191825260016000526007905290516120e9917fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b82891612465565b5060408051808201909152600a81526908edecae4d8d25e8aa8960b31b60208083019182526005600052600790529051612144917fbcdda56b5d08466ec462cbbe0adfa57cb0a15fcc8940ef68f702f21b787bc93591612465565b506040805180820190915260078082526647616e6163686560c81b602080840191825261053960005291909152905161219e917f96a76633116ac3161b66b4be70f114c9a245f4bbf414dc7a4d0edce8c01734cf91612465565b5060408051808201909152600b81526a476e6f7369732f7844616960a81b602080830191825260646000526007905290516121fa917f06179e496907eb3333fef2ed2194553681badbb6d717316349bf33d21ec47e1291612465565b5060408051808201909152600a815269536f6b6f6c2f53504f4160b01b6020808301918252604d600052600790529051612255917f58f3d94c4a880e721e755344405d3fe6076875bf5b3ad388d0a326a85bcabfb591612465565b50604080518082019091526015815274506f6c79676f6e204d61696e6e65742f4d4154494360581b602080830191825260896000526007905290516122bb917f65420a8d28339aeca441a0c94a464f6387b468f3f5ea5c247a6df59a5f7b886691612465565b5060408051808201909152600c81526b4d756d6261692f4d4154494360a01b6020808301918252611f41600052600790529051612319917f4d67172c71df6b75e948764b65521db84c0c61e94d5f3739b666417e9471e58491612465565b50604080518082019091526016815275082ecc2d8c2dcc6d0ca40865a86d0c2d2dc5e82ac82b60531b602080830191825261a86a600052600790529051612381917fa4356065248d86930c73e944e85f9d029fb0f52c0b8312d1a61bfbc9797ef51491612465565b5060408051808201909152601b81527f4176616c616e6368652046756a6920546573746e65742f415641580000000000602080830191825261a8696000526007905290516123f0917f57a00da22bfc0a372532b5dfacb7ddf387626f66de87422d191e09ea7493495691612465565b50565b6040518061014001604052806000815260200160008152602001600081526020016000600381111561243557634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b82805461247190612dd1565b90600052602060002090601f01602090048101928261249357600085556124d9565b82601f106124ac57805160ff19168380011785556124d9565b828001600101855582156124d9579182015b828111156124d95782518255916020019190600101906124be565b506124e59291506124e9565b5090565b5b808211156124e557600081556001016124ea565b805161096981612e58565b600082601f830112612519578081fd5b815167ffffffffffffffff81111561253357612533612e22565b612546601f8201601f1916602001612d4d565b81815284602083860101111561255a578283fd5b61256b826020830160208701612da1565b949350505050565b805161096981612e6d565b805161096981612e7a565b60006020828403121561259a578081fd5b813561118581612e58565b6000602082840312156125b6578081fd5b815161118581612e58565b6000602082840312156125d2578081fd5b81518015158114611185578182fd5b6000602082840312156125f2578081fd5b5035919050565b60006020828403121561260a578081fd5b5051919050565b60008060408385031215612623578081fd5b82359150602083013561263581612e58565b809150509250929050565b60008060408385031215612652578182fd5b50508035926020909101359150565b600060208284031215612672578081fd5b815160078110611185578182fd5b600060208284031215612691578081fd5b815161118581612e7a565b6000602082840312156126ad578081fd5b815167ffffffffffffffff808211156126c4578283fd5b9083019060c082860312156126d7578283fd5b6126e160c0612d4d565b82516126ec81612e6d565b808252506020830151602082015260408301516040820152606083015182811115612715578485fd5b61272187828601612509565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b600060208284031215612758578081fd5b815167ffffffffffffffff8082111561276f578283fd5b8184019150610140808387031215612785578384fd5b61278e81612d4d565b90508251815260208301516020820152604083015160408201526127b460608401612573565b60608201526080830151828111156127ca578485fd5b6127d687828601612509565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b60006020828403121561282c578081fd5b815167ffffffffffffffff80821115612843578283fd5b9083019060c08286031215612856578283fd5b61286060c0612d4d565b825161286b81612e58565b8152602083810151908201526128836040840161257e565b6040820152606083015182811115612715578485fd5b6000602082840312156128aa578081fd5b815167ffffffffffffffff808211156128c1578283fd5b9083019060c082860312156128d4578283fd5b6128de60c0612d4d565b825181526020830151600281106128f3578485fd5b602082015260408381015190820152606083015182811115612715578485fd5b6000610120808385031215612926578182fd5b61292f81612d4d565b905061293a8361257e565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60006101608083850312156129ab578182fd5b6129b481612d4d565b9050825181526129c6602084016124fe565b60208201526129d7604084016124fe565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152508091505092915050565b60008151808452612a54816020860160208601612da1565b601f01601f19169290920160200192915050565b612a7181612e38565b9052565b6000602082526111856020830184612a3c565b6020810160078310612a9c57612a9c612e0c565b91905290565b60208101612a9c83612e48565b6000602082528251612ac081612e38565b806020840152506020830151604083015260408301516060830152606083015160c06080840152612af460e0840182612a3c565b9050608084015160a084015260a084015160c08401528091505092915050565b6000602082528251602083015260208301516040830152604083015160608301526060830151612b476080840182612a68565b5060808301516101408060a0850152612b64610160850183612a3c565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b60006020825260018060a01b038351166020830152602083015160408301526040830151612bd881612e48565b80606084015250606083015160c06080840152612af460e0840182612a3c565b60006020825282516020830152602083015160028110612c1a57612c1a612e0c565b8060408401525060408301516060830152606083015160c06080840152612af460e0840182612a3c565b8151610120820190612c5581612e48565b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525092915050565b81518152602080830151610160830191612cd5908401826001600160a01b03169052565b506040830151612cf060408401826001600160a01b03169052565b50606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151818401525061014080840151818401525092915050565b604051601f8201601f1916810167ffffffffffffffff81118282101715612d7657612d76612e22565b604052919050565b600082821015612d9c57634e487b7160e01b81526011600452602481fd5b500390565b60005b83811015612dbc578181015183820152602001612da4565b83811115612dcb576000848401525b50505050565b600281046001821680612de557607f821691505b60208210811415612e0657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600481106123f0576123f0612e0c565b600381106123f0576123f0612e0c565b6001600160a01b03811681146123f057600080fd5b600481106123f057600080fd5b600381106123f057600080fdfea26469706673582212208baa8d3664a94bfb7869664ce5bc59b2293ec35862ba4906c74e8d5f75cdd5f464736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/services/OracleService.sol/OracleService.dbg.json b/artifacts/contracts/services/OracleService.sol/OracleService.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/services/OracleService.sol/OracleService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/services/OracleService.sol/OracleService.json b/artifacts/contracts/services/OracleService.sol/OracleService.json deleted file mode 100644 index f8358b53..00000000 --- a/artifacts/contracts/services/OracleService.sol/OracleService.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OracleService", - "sourceName": "contracts/services/OracleService.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_requestId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "respond", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61053c806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063e409534a14610050575b600080fd5b61004e6100493660046103f1565b610063565b005b61004e61005e366004610430565b6101ed565b600054610100900460ff16158080156100835750600054600160ff909116105b806100a4575061009230610258565b1580156100a4575060005460ff166001145b61010c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561012f576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610159600090565b6541636365737360d01b1461019b5761017a6541636365737360d01b61026b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101a3610353565b80156101e9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b0316639af8c4ba843385856040518563ffffffff1660e01b815260040161022194939291906104a7565b600060405180830381600087803b15801561023b57600080fd5b505af115801561024f573d6000803e3d6000fd5b50505050505050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156102b557600080fd5b505afa1580156102c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ed9190610414565b90506001600160a01b0381166102665760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610103565b600054610100900460ff166103be5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610103565b6103cf64517565727960d81b61026b565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610402578081fd5b813561040d816104ee565b9392505050565b600060208284031215610425578081fd5b815161040d816104ee565b600080600060408486031215610444578182fd5b83359250602084013567ffffffffffffffff80821115610462578384fd5b818601915086601f830112610475578384fd5b813581811115610483578485fd5b876020828501011115610494578485fd5b6020830194508093505050509250925092565b8481526001600160a01b03841660208201526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6001600160a01b038116811461050357600080fd5b5056fea26469706673582212204a53d69cc77e9e0eeba3f4165d92870605fe025baa935bbfaef8c2a6955096a464736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c4d66de81461003b578063e409534a14610050575b600080fd5b61004e6100493660046103f1565b610063565b005b61004e61005e366004610430565b6101ed565b600054610100900460ff16158080156100835750600054600160ff909116105b806100a4575061009230610258565b1580156100a4575060005460ff166001145b61010c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561012f576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610159600090565b6541636365737360d01b1461019b5761017a6541636365737360d01b61026b565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101a3610353565b80156101e9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6002546001600160a01b0316639af8c4ba843385856040518563ffffffff1660e01b815260040161022194939291906104a7565b600060405180830381600087803b15801561023b57600080fd5b505af115801561024f573d6000803e3d6000fd5b50505050505050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156102b557600080fd5b505afa1580156102c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ed9190610414565b90506001600160a01b0381166102665760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b6064820152608401610103565b600054610100900460ff166103be5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610103565b6103cf64517565727960d81b61026b565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610402578081fd5b813561040d816104ee565b9392505050565b600060208284031215610425578081fd5b815161040d816104ee565b600080600060408486031215610444578182fd5b83359250602084013567ffffffffffffffff80821115610462578384fd5b818601915086601f830112610475578384fd5b813581811115610483578485fd5b876020828501011115610494578485fd5b6020830194508093505050509250925092565b8481526001600160a01b03841660208201526060604082018190528101829052600082846080840137818301608090810191909152601f909201601f191601019392505050565b6001600160a01b038116811461050357600080fd5b5056fea26469706673582212204a53d69cc77e9e0eeba3f4165d92870605fe025baa935bbfaef8c2a6955096a464736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/services/ProductService.sol/ProductService.dbg.json b/artifacts/contracts/services/ProductService.sol/ProductService.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/services/ProductService.sol/ProductService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/services/ProductService.sol/ProductService.json b/artifacts/contracts/services/ProductService.sol/ProductService.json deleted file mode 100644 index 8adbee4e..00000000 --- a/artifacts/contracts/services/ProductService.sol/ProductService.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ProductService", - "sourceName": "contracts/services/ProductService.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_registry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "stateMutability": "nonpayable", - "type": "fallback" - }, - { - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "getContractFromRegistry", - "outputs": [ - { - "internalType": "address", - "name": "_addr", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "registry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60a060405234801561001057600080fd5b506040516104f03803806104f083398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c61045261009e600039600081816101a00152818161023a01526102fe01526104526000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80637b1039991461019b578063a3f4df7e146101df578063a5b25e7114610205575b60008061004c610218565b6001600160a01b031663d3e9c314336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160606040518083038186803b15801561009a57600080fd5b505afa1580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d291906103db565b9250925050816101295760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5052532d3030313a4e4f545f415554484f52495a45440000000060448201526064015b60405180910390fd5b6001600160a01b03811661018e5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5052532d3030323a504f4c4943595f464c4f575f4e4f545f524560448201526514d3d315915160d21b6064820152608401610120565b610197816102c1565b5050005b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f76d50726f647563745365727669636560901b81565b6040519081526020016101d6565b6101c26102133660046103c3565b6102e5565b604051631c2d8fb360e31b8152664c6963656e736560c81b60048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561028457600080fd5b505afa158015610298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bc91906103a2565b905090565b3660008037600080366000845af43d6000803e8080156102e0573d6000f35b3d6000fd5b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561034857600080fd5b505afa15801561035c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038091906103a2565b92915050565b80516001600160a01b038116811461039d57600080fd5b919050565b6000602082840312156103b3578081fd5b6103bc82610386565b9392505050565b6000602082840312156103d4578081fd5b5035919050565b6000806000606084860312156103ef578182fd5b8351925060208401518015158114610405578283fd5b915061041360408501610386565b9050925092509256fea26469706673582212207b859cebd9125a360f4471ca57be175d7287894fb1de6366e38c493b36feefb564736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80637b1039991461019b578063a3f4df7e146101df578063a5b25e7114610205575b60008061004c610218565b6001600160a01b031663d3e9c314336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160606040518083038186803b15801561009a57600080fd5b505afa1580156100ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d291906103db565b9250925050816101295760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a5052532d3030313a4e4f545f415554484f52495a45440000000060448201526064015b60405180910390fd5b6001600160a01b03811661018e5760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5052532d3030323a504f4c4943595f464c4f575f4e4f545f524560448201526514d3d315915160d21b6064820152608401610120565b610197816102c1565b5050005b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f76d50726f647563745365727669636560901b81565b6040519081526020016101d6565b6101c26102133660046103c3565b6102e5565b604051631c2d8fb360e31b8152664c6963656e736560c81b60048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561028457600080fd5b505afa158015610298573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102bc91906103a2565b905090565b3660008037600080366000845af43d6000803e8080156102e0573d6000f35b3d6000fd5b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b15801561034857600080fd5b505afa15801561035c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038091906103a2565b92915050565b80516001600160a01b038116811461039d57600080fd5b919050565b6000602082840312156103b3578081fd5b6103bc82610386565b9392505050565b6000602082840312156103d4578081fd5b5035919050565b6000806000606084860312156103ef578182fd5b8351925060208401518015158114610405578283fd5b915061041360408501610386565b9050925092509256fea26469706673582212207b859cebd9125a360f4471ca57be175d7287894fb1de6366e38c493b36feefb564736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.dbg.json b/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.json b/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.json deleted file mode 100644 index ebf86a3d..00000000 --- a/artifacts/contracts/services/RiskpoolService.sol/RiskpoolService.json +++ /dev/null @@ -1,318 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "RiskpoolService", - "sourceName": "contracts/services/RiskpoolService.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [], - "name": "RISKPOOL_NAME", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "burnBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "closeBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "collateralizePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "initialCapital", - "type": "uint256" - } - ], - "name": "createBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "defundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "fundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "lockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "address", - "name": "erc20Token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "collateralizationLevel", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumOfSumInsuredCap", - "type": "uint256" - } - ], - "name": "registerRiskpool", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "releasePolicy", - "outputs": [ - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxNumberOfActiveBundles", - "type": "uint256" - } - ], - "name": "setMaximumNumberOfActiveBundles", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "unlockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e4565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b613f9c80620000f46000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806389002da511610097578063b726742011610066578063b7267420146101de578063bb540df6146101f1578063bf2e354614610204578063c4d66de814610217576100f5565b806389002da5146101925780638c483e5a146101a5578063a17030d5146101b8578063b299cc26146101cb576100f5565b8063316c5348116100d3578063316c53481461014657806336153f3a146101595780634d03f9b71461016c578063587e59d01461017f576100f5565b806304f5f96e146100fa57806315fc1e741461011e5780632127fd4814610131575b600080fd5b61010c67149a5cdadc1bdbdb60c21b81565b60405190815260200160405180910390f35b61010c61012c366004613b9d565b61022a565b61014461013f366004613d7f565b61078a565b005b610144610154366004613d4f565b610a8c565b61010c610167366004613d7f565b610ea5565b61014461017a366004613da0565b611419565b61014461018d366004613d4f565b611749565b61010c6101a0366004613d7f565b611cbf565b6101446101b3366004613d4f565b6121d8565b6101446101c6366004613d4f565b612657565b6101446101d9366004613da0565b612a3a565b6101446101ec366004613da0565b612d32565b61010c6101ff366004613d7f565b61302a565b610144610212366004613b58565b613375565b610144610225366004613b19565b6136ca565b60025460009081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561028057600080fd5b505afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156102ff57600080fd5b505afa158015610313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103379190613c5c565b600281111561035657634e487b7160e01b600052602160045260246000fd5b146103b25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030333a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084015b60405180910390fd5b600254604051635e966e4560e01b8152600481018390526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156103f757600080fd5b505afa15801561040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042f9190613c3d565b600681111561044e57634e487b7160e01b600052602160045260246000fd5b146104a55760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030343a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156104f957600080fd5b505afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190613d67565b600354604051633039c50160e21b81529192506001600160a01b03169063c0e714049061056b908a9085908b908b90600090600401613dee565b602060405180830381600087803b15801561058557600080fd5b505af1158015610599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bd9190613d67565b60048054604051626a03dd60e91b81529295506001600160a01b03169163d407ba00916105f7918591889101918252602082015260400190565b600060405180830381600087803b15801561061157600080fd5b505af1158015610625573d6000803e3d6000fd5b505060055460405163136f5ed560e11b81526004810187905260248101889052600093508392506001600160a01b03909116906326debdaa906044016040805180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190613dcb565b60035460405163a65e2cfd60e01b815260048101899052602481018390529294509092506001600160a01b03169063a65e2cfd90604401600060405180830381600087803b15801561070357600080fd5b505af1158015610717573d6000803e3d6000fd5b50506004805460405163a65e2cfd60e01b8152918201879052602482018590526001600160a01b0316925063a65e2cfd9150604401600060405180830381600087803b15801561076657600080fd5b505af115801561077a573d6000803e3d6000fd5b5050505050505050949350505050565b60025482906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156107e357600080fd5b505afa1580156107f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081b9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c9190613c5c565b60028111156108bb57634e487b7160e01b600052602160045260246000fd5b1490508080156108ca57508382145b6109275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3030383a53454e4445525f4e4f545f4f574e494e475f604482015267149254d2d413d3d360c21b60648201526084016103a9565b8215610a2057600254604051635e966e4560e01b8152600481018490526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa9190613c3d565b60068111156109c957634e487b7160e01b600052602160045260246000fd5b14610a205760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030393a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b60048054604051630424ffa960e31b8152918201889052602482018790526001600160a01b031690632127fd48906044015b600060405180830381600087803b158015610a6c57600080fd5b505af1158015610a80573d6000803e3d6000fd5b50505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ae557600080fd5b505afa158015610af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1d9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610b6657600080fd5b505afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190613c5c565b6002811115610bbd57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c449190810190613c7b565b905081610c635760405162461bcd60e51b81526004016103a990613e3f565b80602001518314610c865760405162461bcd60e51b81526004016103a990613ec1565b8315610d4557600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d099190613c3d565b6006811115610d2857634e487b7160e01b600052602160045260246000fd5b14610d455760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610d9957600080fd5b505afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190613d67565b60048054604051626a03dd60e91b81529293506001600160a01b03169163d407ba0091610e0b9185918c9101918252602082015260400190565b600060405180830381600087803b158015610e2557600080fd5b505af1158015610e39573d6000803e3d6000fd5b5050600354604051636198e33960e01b8152600481018b90526001600160a01b039091169250636198e33991506024015b600060405180830381600087803b158015610e8457600080fd5b505af1158015610e98573d6000803e3d6000fd5b5050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f389190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190613c5c565b6002811115610fd857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561102357600080fd5b505afa158015611037573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261105f9190810190613c7b565b90508161107e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146110a15760405162461bcd60e51b81526004016103a990613ec1565b831561116057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156110ec57600080fd5b505afa158015611100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111249190613c3d565b600681111561114357634e487b7160e01b600052602160045260246000fd5b146111605760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156111a557600080fd5b505afa1580156111b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111e19190810190613c7b565b905060038160600151600381111561120957634e487b7160e01b600052602160045260246000fd5b14156112575760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5250532d3031313a42554e444c455f4255524e4544000000000060448201526064016103a9565b60055460405163d935807560e01b8152600481018b9052602481018a90526000916001600160a01b03169063d9358075906044016040805180830381600087803b1580156112a457600080fd5b505af11580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190613dcb565b985090508888146113405760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3031333a554e45585045435445445f4645455f5355426044820152672a2920a1aa24a7a760c11b60648201526084016103a9565b60035460405163c397ae3960e01b8152600481018c9052602481018b90526001600160a01b039091169063c397ae3990604401600060405180830381600087803b15801561138d57600080fd5b505af11580156113a1573d6000803e3d6000fd5b505060048054602086015160405163c397ae3960e01b815292830152602482018c90526001600160a01b0316925063c397ae3991506044015b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050505050505050505092915050565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561147257600080fd5b505afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156114f357600080fd5b505afa158015611507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152b9190613c5c565b600281111561154a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561159557600080fd5b505afa1580156115a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115d19190810190613c7b565b9050816115f05760405162461bcd60e51b81526004016103a990613e3f565b806020015183146116135760405162461bcd60e51b81526004016103a990613ec1565b83156116d257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561165e57600080fd5b505afa158015611672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116969190613c3d565b60068111156116b557634e487b7160e01b600052602160045260246000fd5b146116d25760405162461bcd60e51b81526004016103a990613e80565b600354604051634d03f9b760e01b8152600481018a905260248101899052604481018890526001600160a01b0390911690634d03f9b7906064015b600060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b505050505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156117a257600080fd5b505afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b9190613c5c565b600281111561187a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156118c557600080fd5b505afa1580156118d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119019190810190613c7b565b9050816119205760405162461bcd60e51b81526004016103a990613e3f565b806020015183146119435760405162461bcd60e51b81526004016103a990613ec1565b8315611a0257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561198e57600080fd5b505afa1580156119a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c69190613c3d565b60068111156119e557634e487b7160e01b600052602160045260246000fd5b14611a025760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a839190810190613c7b565b9050600281606001516003811115611aab57634e487b7160e01b600052602160045260246000fd5b14611af85760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5250532d3032303a42554e444c455f4e4f545f434c4f5345440060448201526064016103a9565b60055460e082015160405163d935807560e01b8152600481018a9052602481019190915260009182916001600160a01b039091169063d9358075906044016040805180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b879190613dcb565b60035460405163c397ae3960e01b8152600481018d9052602481018390529294509092506001600160a01b03169063c397ae3990604401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505060048054602087015160405163c397ae3960e01b815292830152602482018590526001600160a01b0316925063c397ae399150604401600060405180830381600087803b158015611c3e57600080fd5b505af1158015611c52573d6000803e3d6000fd5b5050600354604051630852cd8d60e31b8152600481018d90526001600160a01b0390911692506342966c689150602401600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b50505050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015611d1a57600080fd5b505afa158015611d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d529190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd39190613c5c565b6002811115611df257634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611e3d57600080fd5b505afa158015611e51573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e799190810190613c7b565b905081611e985760405162461bcd60e51b81526004016103a990613e3f565b80602001518314611ebb5760405162461bcd60e51b81526004016103a990613ec1565b8315611f7a57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e9190613c3d565b6006811115611f5d57634e487b7160e01b600052602160045260246000fd5b14611f7a5760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611fbf57600080fd5b505afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb9190810190613c7b565b905060028160600151600381111561202357634e487b7160e01b600052602160045260246000fd5b14158015612055575060038160600151600381111561205257634e487b7160e01b600052602160045260246000fd5b14155b6120af5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5250532d3031303a42554e444c455f434c4f5345445f4f525f42604482015264155493915160da1b60648201526084016103a9565b60055460405163136f5ed560e11b8152600481018b9052602481018a90526000916001600160a01b0316906326debdaa906044016040805180830381600087803b1580156120fc57600080fd5b505af1158015612110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121349190613dcb565b60035460405163a65e2cfd60e01b8152600481018e905260248101839052919a509192506001600160a01b039091169063a65e2cfd90604401600060405180830381600087803b15801561218757600080fd5b505af115801561219b573d6000803e3d6000fd5b505060048054602086015160405163a65e2cfd60e01b815292830152602482018c90526001600160a01b0316925063a65e2cfd91506044016113da565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561223157600080fd5b505afa158015612245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122699190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156122b257600080fd5b505afa1580156122c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ea9190613c5c565b600281111561230957634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561235457600080fd5b505afa158015612368573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123909190810190613c7b565b9050816123af5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146123d25760405162461bcd60e51b81526004016103a990613ec1565b831561249157600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190613c3d565b600681111561247457634e487b7160e01b600052602160045260246000fd5b146124915760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156124e557600080fd5b505afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190613d67565b9050600060035460405163089935e560e31b8152600481018a90526001600160a01b03909116906344c9af289060240160206040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d9190613c23565b60038111156125bc57634e487b7160e01b600052602160045260246000fd5b1415612626576004805460405163950be80360e01b8152918201839052602482018990526001600160a01b03169063950be80390604401600060405180830381600087803b15801561260d57600080fd5b505af1158015612621573d6000803e3d6000fd5b505050505b600354604051630575f5a760e11b8152600481018990526001600160a01b0390911690630aebeb4e90602401610e6a565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156126b057600080fd5b505afa1580156126c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e89190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561273157600080fd5b505afa158015612745573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127699190613c5c565b600281111561278857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156127d357600080fd5b505afa1580156127e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261280f9190810190613c7b565b90508161282e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146128515760405162461bcd60e51b81526004016103a990613ec1565b831561291057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561289c57600080fd5b505afa1580156128b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d49190613c3d565b60068111156128f357634e487b7160e01b600052602160045260246000fd5b146129105760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561296457600080fd5b505afa158015612978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299c9190613d67565b6004805460405163950be80360e01b81529293506001600160a01b03169163950be803916129d79185918c9101918252602082015260400190565b600060405180830381600087803b1580156129f157600080fd5b505af1158015612a05573d6000803e3d6000fd5b50506003546040516337519c1960e21b8152600481018b90526001600160a01b03909116925063dd4670649150602401610e6a565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612a9357600080fd5b505afa158015612aa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acb9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612b1457600080fd5b505afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4c9190613c5c565b6002811115612b6b57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612bb657600080fd5b505afa158015612bca573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bf29190810190613c7b565b905081612c115760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612c345760405162461bcd60e51b81526004016103a990613ec1565b8315612cf357600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612c7f57600080fd5b505afa158015612c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb79190613c3d565b6006811115612cd657634e487b7160e01b600052602160045260246000fd5b14612cf35760405162461bcd60e51b81526004016103a990613e80565b60035460405163594ce61360e11b8152600481018a905260248101899052604481018890526001600160a01b039091169063b299cc269060640161170d565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612d8b57600080fd5b505afa158015612d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc39190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612e0c57600080fd5b505afa158015612e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e449190613c5c565b6002811115612e6357634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612eae57600080fd5b505afa158015612ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612eea9190810190613c7b565b905081612f095760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612f2c5760405162461bcd60e51b81526004016103a990613ec1565b8315612feb57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612f7757600080fd5b505afa158015612f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612faf9190613c3d565b6006811115612fce57634e487b7160e01b600052602160045260246000fd5b14612feb5760405162461bcd60e51b81526004016103a990613e80565b6003546040516305b933a160e51b8152600481018a905260248101899052604481018890526001600160a01b039091169063b72674209060640161170d565b6002546000908390829081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561308457600080fd5b505afa158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561310557600080fd5b505afa158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d9190613c5c565b600281111561315c57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156131a757600080fd5b505afa1580156131bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131e39190810190613c7b565b9050816132025760405162461bcd60e51b81526004016103a990613e3f565b806020015183146132255760405162461bcd60e51b81526004016103a990613ec1565b83156132e457600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561327057600080fd5b505afa158015613284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a89190613c3d565b60068111156132c757634e487b7160e01b600052602160045260246000fd5b146132e45760405162461bcd60e51b81526004016103a990613e80565b600354604051635daa06fb60e11b8152600481018a9052602481018990526001600160a01b039091169063bb540df690604401602060405180830381600087803b15801561333157600080fd5b505af1158015613345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133699190613d67565b98975050505050505050565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156133c957600080fd5b505afa1580156133dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134019190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134809190613c5c565b600281111561349f57634e487b7160e01b600052602160045260246000fd5b146134f65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030313a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084016103a9565b600254604051635e966e4560e01b8152600481018390526001916001600160a01b031690635e966e459060240160206040518083038186803b15801561353b57600080fd5b505afa15801561354f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135739190613c3d565b600681111561359257634e487b7160e01b600052602160045260246000fd5b146135eb5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5250532d3030323a5249534b504f4f4c5f4e4f545f50524f504f60448201526214d15160ea1b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561363f57600080fd5b505afa158015613653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136779190613d67565b600480546040516357419e8f60e01b81529182018390526001600160a01b0389811660248401528881166044840152606483018890526084830187905292935091909116906357419e8f9060a401610a52565b600054610100900460ff16158080156136ea5750600054600160ff909116105b8061370b57506136f93061384f565b15801561370b575060005460ff166001145b61376e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a9565b6000805460ff191660011790558015613791576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556137bb600090565b6541636365737360d01b146137fd576137dc6541636365737360d01b613862565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61380561394a565b801561384b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156138ac57600080fd5b505afa1580156138c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e49190613b3c565b90506001600160a01b03811661385d5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166139b55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b6139c76542756e646c6560d01b613862565b600380546001600160a01b0319166001600160a01b03929092169190911790556139fc6810dbdb5c1bdb995b9d60ba1b613862565b600280546001600160a01b0319166001600160a01b0392909216919091179055613a2c63141bdbdb60e21b613862565b600480546001600160a01b0319166001600160a01b0392909216919091179055613a6067547265617375727960c01b613862565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b600082601f830112613a92578081fd5b815167ffffffffffffffff811115613aac57613aac613f38565b6020613ac0601f8301601f19168201613f07565b8281528582848701011115613ad3578384fd5b835b83811015613af0578581018301518282018401528201613ad5565b83811115613b0057848385840101525b5095945050505050565b80516004811061385d57600080fd5b600060208284031215613b2a578081fd5b8135613b3581613f4e565b9392505050565b600060208284031215613b4d578081fd5b8151613b3581613f4e565b60008060008060808587031215613b6d578283fd5b8435613b7881613f4e565b93506020850135613b8881613f4e565b93969395505050506040820135916060013590565b60008060008060608587031215613bb2578384fd5b8435613bbd81613f4e565b9350602085013567ffffffffffffffff80821115613bd9578485fd5b818701915087601f830112613bec578485fd5b813581811115613bfa578586fd5b886020828501011115613c0b578586fd5b95986020929092019750949560400135945092505050565b600060208284031215613c34578081fd5b613b3582613b0a565b600060208284031215613c4e578081fd5b815160078110613b35578182fd5b600060208284031215613c6d578081fd5b815160038110613b35578182fd5b600060208284031215613c8c578081fd5b815167ffffffffffffffff80821115613ca3578283fd5b8184019150610140808387031215613cb9578384fd5b613cc281613f07565b9050825181526020830151602082015260408301516040820152613ce860608401613b0a565b6060820152608083015182811115613cfe578485fd5b613d0a87828601613a82565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613d60578081fd5b5035919050565b600060208284031215613d78578081fd5b5051919050565b60008060408385031215613d91578182fd5b50508035926020909101359150565b600080600060608486031215613db4578283fd5b505081359360208301359350604090920135919050565b60008060408385031215613ddd578182fd5b505080516020909101519092909150565b6001600160a01b03861681526020810185905260806040820181905281018390526000838560a08401378060a0858401015260a0601f19601f86011683010190508260608301529695505050505050565b60208082526021908201527f4552524f523a5250532d3030353a53454e4445525f4e4f545f5249534b504f4f6040820152601360fa1b606082015260800190565b60208082526021908201527f4552524f523a5250532d3030373a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526026908201527f4552524f523a5250532d3030363a42554e444c455f5249534b504f4f4c5f4d496040820152650a69a82a886960d31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f3057613f30613f38565b604052919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114613f6357600080fd5b5056fea26469706673582212209a54242b6373dab5b01e37d770361bdd347dbf612e95820001979e25479ba64464736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806389002da511610097578063b726742011610066578063b7267420146101de578063bb540df6146101f1578063bf2e354614610204578063c4d66de814610217576100f5565b806389002da5146101925780638c483e5a146101a5578063a17030d5146101b8578063b299cc26146101cb576100f5565b8063316c5348116100d3578063316c53481461014657806336153f3a146101595780634d03f9b71461016c578063587e59d01461017f576100f5565b806304f5f96e146100fa57806315fc1e741461011e5780632127fd4814610131575b600080fd5b61010c67149a5cdadc1bdbdb60c21b81565b60405190815260200160405180910390f35b61010c61012c366004613b9d565b61022a565b61014461013f366004613d7f565b61078a565b005b610144610154366004613d4f565b610a8c565b61010c610167366004613d7f565b610ea5565b61014461017a366004613da0565b611419565b61014461018d366004613d4f565b611749565b61010c6101a0366004613d7f565b611cbf565b6101446101b3366004613d4f565b6121d8565b6101446101c6366004613d4f565b612657565b6101446101d9366004613da0565b612a3a565b6101446101ec366004613da0565b612d32565b61010c6101ff366004613d7f565b61302a565b610144610212366004613b58565b613375565b610144610225366004613b19565b6136ca565b60025460009081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561028057600080fd5b505afa158015610294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b89190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156102ff57600080fd5b505afa158015610313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103379190613c5c565b600281111561035657634e487b7160e01b600052602160045260246000fd5b146103b25760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030333a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084015b60405180910390fd5b600254604051635e966e4560e01b8152600481018390526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156103f757600080fd5b505afa15801561040b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042f9190613c3d565b600681111561044e57634e487b7160e01b600052602160045260246000fd5b146104a55760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030343a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156104f957600080fd5b505afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190613d67565b600354604051633039c50160e21b81529192506001600160a01b03169063c0e714049061056b908a9085908b908b90600090600401613dee565b602060405180830381600087803b15801561058557600080fd5b505af1158015610599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105bd9190613d67565b60048054604051626a03dd60e91b81529295506001600160a01b03169163d407ba00916105f7918591889101918252602082015260400190565b600060405180830381600087803b15801561061157600080fd5b505af1158015610625573d6000803e3d6000fd5b505060055460405163136f5ed560e11b81526004810187905260248101889052600093508392506001600160a01b03909116906326debdaa906044016040805180830381600087803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190613dcb565b60035460405163a65e2cfd60e01b815260048101899052602481018390529294509092506001600160a01b03169063a65e2cfd90604401600060405180830381600087803b15801561070357600080fd5b505af1158015610717573d6000803e3d6000fd5b50506004805460405163a65e2cfd60e01b8152918201879052602482018590526001600160a01b0316925063a65e2cfd9150604401600060405180830381600087803b15801561076657600080fd5b505af115801561077a573d6000803e3d6000fd5b5050505050505050949350505050565b60025482906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156107e357600080fd5b505afa1580156107f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081b9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089c9190613c5c565b60028111156108bb57634e487b7160e01b600052602160045260246000fd5b1490508080156108ca57508382145b6109275760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3030383a53454e4445525f4e4f545f4f574e494e475f604482015267149254d2d413d3d360c21b60648201526084016103a9565b8215610a2057600254604051635e966e4560e01b8152600481018490526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa9190613c3d565b60068111156109c957634e487b7160e01b600052602160045260246000fd5b14610a205760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030393a5249534b504f4f4c5f4e4f545f41435449566044820152604560f81b60648201526084016103a9565b60048054604051630424ffa960e31b8152918201889052602482018790526001600160a01b031690632127fd48906044015b600060405180830381600087803b158015610a6c57600080fd5b505af1158015610a80573d6000803e3d6000fd5b50505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610ae557600080fd5b505afa158015610af9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1d9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610b6657600080fd5b505afa158015610b7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9e9190613c5c565b6002811115610bbd57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c0857600080fd5b505afa158015610c1c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c449190810190613c7b565b905081610c635760405162461bcd60e51b81526004016103a990613e3f565b80602001518314610c865760405162461bcd60e51b81526004016103a990613ec1565b8315610d4557600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d099190613c3d565b6006811115610d2857634e487b7160e01b600052602160045260246000fd5b14610d455760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610d9957600080fd5b505afa158015610dad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd19190613d67565b60048054604051626a03dd60e91b81529293506001600160a01b03169163d407ba0091610e0b9185918c9101918252602082015260400190565b600060405180830381600087803b158015610e2557600080fd5b505af1158015610e39573d6000803e3d6000fd5b5050600354604051636198e33960e01b8152600481018b90526001600160a01b039091169250636198e33991506024015b600060405180830381600087803b158015610e8457600080fd5b505af1158015610e98573d6000803e3d6000fd5b5050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610f0057600080fd5b505afa158015610f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f389190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb99190613c5c565b6002811115610fd857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561102357600080fd5b505afa158015611037573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261105f9190810190613c7b565b90508161107e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146110a15760405162461bcd60e51b81526004016103a990613ec1565b831561116057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b1580156110ec57600080fd5b505afa158015611100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111249190613c3d565b600681111561114357634e487b7160e01b600052602160045260246000fd5b146111605760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156111a557600080fd5b505afa1580156111b9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111e19190810190613c7b565b905060038160600151600381111561120957634e487b7160e01b600052602160045260246000fd5b14156112575760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5250532d3031313a42554e444c455f4255524e4544000000000060448201526064016103a9565b60055460405163d935807560e01b8152600481018b9052602481018a90526000916001600160a01b03169063d9358075906044016040805180830381600087803b1580156112a457600080fd5b505af11580156112b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dc9190613dcb565b985090508888146113405760405162461bcd60e51b815260206004820152602860248201527f4552524f523a5250532d3031333a554e45585045435445445f4645455f5355426044820152672a2920a1aa24a7a760c11b60648201526084016103a9565b60035460405163c397ae3960e01b8152600481018c9052602481018b90526001600160a01b039091169063c397ae3990604401600060405180830381600087803b15801561138d57600080fd5b505af11580156113a1573d6000803e3d6000fd5b505060048054602086015160405163c397ae3960e01b815292830152602482018c90526001600160a01b0316925063c397ae3991506044015b600060405180830381600087803b1580156113f457600080fd5b505af1158015611408573d6000803e3d6000fd5b505050505050505050505092915050565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561147257600080fd5b505afa158015611486573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114aa9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156114f357600080fd5b505afa158015611507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152b9190613c5c565b600281111561154a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561159557600080fd5b505afa1580156115a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115d19190810190613c7b565b9050816115f05760405162461bcd60e51b81526004016103a990613e3f565b806020015183146116135760405162461bcd60e51b81526004016103a990613ec1565b83156116d257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561165e57600080fd5b505afa158015611672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116969190613c3d565b60068111156116b557634e487b7160e01b600052602160045260246000fd5b146116d25760405162461bcd60e51b81526004016103a990613e80565b600354604051634d03f9b760e01b8152600481018a905260248101899052604481018890526001600160a01b0390911690634d03f9b7906064015b600060405180830381600087803b15801561172757600080fd5b505af115801561173b573d6000803e3d6000fd5b505050505050505050505050565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156117a257600080fd5b505afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b9190613c5c565b600281111561187a57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156118c557600080fd5b505afa1580156118d9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119019190810190613c7b565b9050816119205760405162461bcd60e51b81526004016103a990613e3f565b806020015183146119435760405162461bcd60e51b81526004016103a990613ec1565b8315611a0257600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561198e57600080fd5b505afa1580156119a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c69190613c3d565b60068111156119e557634e487b7160e01b600052602160045260246000fd5b14611a025760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018890526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a839190810190613c7b565b9050600281606001516003811115611aab57634e487b7160e01b600052602160045260246000fd5b14611af85760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5250532d3032303a42554e444c455f4e4f545f434c4f5345440060448201526064016103a9565b60055460e082015160405163d935807560e01b8152600481018a9052602481019190915260009182916001600160a01b039091169063d9358075906044016040805180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b879190613dcb565b60035460405163c397ae3960e01b8152600481018d9052602481018390529294509092506001600160a01b03169063c397ae3990604401600060405180830381600087803b158015611bd857600080fd5b505af1158015611bec573d6000803e3d6000fd5b505060048054602087015160405163c397ae3960e01b815292830152602482018590526001600160a01b0316925063c397ae399150604401600060405180830381600087803b158015611c3e57600080fd5b505af1158015611c52573d6000803e3d6000fd5b5050600354604051630852cd8d60e31b8152600481018d90526001600160a01b0390911692506342966c689150602401600060405180830381600087803b158015611c9c57600080fd5b505af1158015611cb0573d6000803e3d6000fd5b50505050505050505050505050565b600254600090839060019083906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015611d1a57600080fd5b505afa158015611d2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d529190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015611d9b57600080fd5b505afa158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd39190613c5c565b6002811115611df257634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611e3d57600080fd5b505afa158015611e51573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e799190810190613c7b565b905081611e985760405162461bcd60e51b81526004016103a990613e3f565b80602001518314611ebb5760405162461bcd60e51b81526004016103a990613ec1565b8315611f7a57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015611f0657600080fd5b505afa158015611f1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3e9190613c3d565b6006811115611f5d57634e487b7160e01b600052602160045260246000fd5b14611f7a5760405162461bcd60e51b81526004016103a990613e80565b600354604051632d0821b760e01b8152600481018a90526000916001600160a01b031690632d0821b79060240160006040518083038186803b158015611fbf57600080fd5b505afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb9190810190613c7b565b905060028160600151600381111561202357634e487b7160e01b600052602160045260246000fd5b14158015612055575060038160600151600381111561205257634e487b7160e01b600052602160045260246000fd5b14155b6120af5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a5250532d3031303a42554e444c455f434c4f5345445f4f525f42604482015264155493915160da1b60648201526084016103a9565b60055460405163136f5ed560e11b8152600481018b9052602481018a90526000916001600160a01b0316906326debdaa906044016040805180830381600087803b1580156120fc57600080fd5b505af1158015612110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121349190613dcb565b60035460405163a65e2cfd60e01b8152600481018e905260248101839052919a509192506001600160a01b039091169063a65e2cfd90604401600060405180830381600087803b15801561218757600080fd5b505af115801561219b573d6000803e3d6000fd5b505060048054602086015160405163a65e2cfd60e01b815292830152602482018c90526001600160a01b0316925063a65e2cfd91506044016113da565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561223157600080fd5b505afa158015612245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122699190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b1580156122b257600080fd5b505afa1580156122c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ea9190613c5c565b600281111561230957634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b15801561235457600080fd5b505afa158015612368573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123909190810190613c7b565b9050816123af5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146123d25760405162461bcd60e51b81526004016103a990613ec1565b831561249157600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561241d57600080fd5b505afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190613c3d565b600681111561247457634e487b7160e01b600052602160045260246000fd5b146124915760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156124e557600080fd5b505afa1580156124f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251d9190613d67565b9050600060035460405163089935e560e31b8152600481018a90526001600160a01b03909116906344c9af289060240160206040518083038186803b15801561256557600080fd5b505afa158015612579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259d9190613c23565b60038111156125bc57634e487b7160e01b600052602160045260246000fd5b1415612626576004805460405163950be80360e01b8152918201839052602482018990526001600160a01b03169063950be80390604401600060405180830381600087803b15801561260d57600080fd5b505af1158015612621573d6000803e3d6000fd5b505050505b600354604051630575f5a760e11b8152600481018990526001600160a01b0390911690630aebeb4e90602401610e6a565b60025481906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156126b057600080fd5b505afa1580156126c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e89190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561273157600080fd5b505afa158015612745573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127699190613c5c565b600281111561278857634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156127d357600080fd5b505afa1580156127e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261280f9190810190613c7b565b90508161282e5760405162461bcd60e51b81526004016103a990613e3f565b806020015183146128515760405162461bcd60e51b81526004016103a990613ec1565b831561291057600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561289c57600080fd5b505afa1580156128b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128d49190613c3d565b60068111156128f357634e487b7160e01b600052602160045260246000fd5b146129105760405162461bcd60e51b81526004016103a990613e80565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561296457600080fd5b505afa158015612978573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299c9190613d67565b6004805460405163950be80360e01b81529293506001600160a01b03169163950be803916129d79185918c9101918252602082015260400190565b600060405180830381600087803b1580156129f157600080fd5b505af1158015612a05573d6000803e3d6000fd5b50506003546040516337519c1960e21b8152600481018b90526001600160a01b03909116925063dd4670649150602401610e6a565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612a9357600080fd5b505afa158015612aa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acb9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612b1457600080fd5b505afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4c9190613c5c565b6002811115612b6b57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612bb657600080fd5b505afa158015612bca573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612bf29190810190613c7b565b905081612c115760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612c345760405162461bcd60e51b81526004016103a990613ec1565b8315612cf357600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612c7f57600080fd5b505afa158015612c93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb79190613c3d565b6006811115612cd657634e487b7160e01b600052602160045260246000fd5b14612cf35760405162461bcd60e51b81526004016103a990613e80565b60035460405163594ce61360e11b8152600481018a905260248101899052604481018890526001600160a01b039091169063b299cc269060640161170d565b60025483906001906000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015612d8b57600080fd5b505afa158015612d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc39190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b158015612e0c57600080fd5b505afa158015612e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e449190613c5c565b6002811115612e6357634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b158015612eae57600080fd5b505afa158015612ec2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612eea9190810190613c7b565b905081612f095760405162461bcd60e51b81526004016103a990613e3f565b80602001518314612f2c5760405162461bcd60e51b81526004016103a990613ec1565b8315612feb57600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b158015612f7757600080fd5b505afa158015612f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612faf9190613c3d565b6006811115612fce57634e487b7160e01b600052602160045260246000fd5b14612feb5760405162461bcd60e51b81526004016103a990613e80565b6003546040516305b933a160e51b8152600481018a905260248101899052604481018890526001600160a01b039091169063b72674209060640161170d565b6002546000908390829081906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561308457600080fd5b505afa158015613098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bc9190613d67565b9050600060028054604051636ea8e43560e11b8152600481018590526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561310557600080fd5b505afa158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d9190613c5c565b600281111561315c57634e487b7160e01b600052602160045260246000fd5b600354604051632d0821b760e01b8152600481018890529190921492506000916001600160a01b031690632d0821b79060240160006040518083038186803b1580156131a757600080fd5b505afa1580156131bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131e39190810190613c7b565b9050816132025760405162461bcd60e51b81526004016103a990613e3f565b806020015183146132255760405162461bcd60e51b81526004016103a990613ec1565b83156132e457600254604051635e966e4560e01b8152600481018590526003916001600160a01b031690635e966e459060240160206040518083038186803b15801561327057600080fd5b505afa158015613284573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a89190613c3d565b60068111156132c757634e487b7160e01b600052602160045260246000fd5b146132e45760405162461bcd60e51b81526004016103a990613e80565b600354604051635daa06fb60e11b8152600481018a9052602481018990526001600160a01b039091169063bb540df690604401602060405180830381600087803b15801561333157600080fd5b505af1158015613345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133699190613d67565b98975050505050505050565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156133c957600080fd5b505afa1580156133dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134019190613d67565b905060028054604051636ea8e43560e11b8152600481018490526001600160a01b039091169063dd51c86a9060240160206040518083038186803b15801561344857600080fd5b505afa15801561345c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134809190613c5c565b600281111561349f57634e487b7160e01b600052602160045260246000fd5b146134f65760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5250532d3030313a53454e4445525f4e4f545f5249534b504f4f6044820152601360fa1b60648201526084016103a9565b600254604051635e966e4560e01b8152600481018390526001916001600160a01b031690635e966e459060240160206040518083038186803b15801561353b57600080fd5b505afa15801561354f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135739190613c3d565b600681111561359257634e487b7160e01b600052602160045260246000fd5b146135eb5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5250532d3030323a5249534b504f4f4c5f4e4f545f50524f504f60448201526214d15160ea1b60648201526084016103a9565b6002546000906001600160a01b0316632b1c7f73336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561363f57600080fd5b505afa158015613653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136779190613d67565b600480546040516357419e8f60e01b81529182018390526001600160a01b0389811660248401528881166044840152606483018890526084830187905292935091909116906357419e8f9060a401610a52565b600054610100900460ff16158080156136ea5750600054600160ff909116105b8061370b57506136f93061384f565b15801561370b575060005460ff166001145b61376e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a9565b6000805460ff191660011790558015613791576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790556137bb600090565b6541636365737360d01b146137fd576137dc6541636365737360d01b613862565b600180546001600160a01b0319166001600160a01b03929092169190911790555b61380561394a565b801561384b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156138ac57600080fd5b505afa1580156138c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e49190613b3c565b90506001600160a01b03811661385d5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166139b55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b6139c76542756e646c6560d01b613862565b600380546001600160a01b0319166001600160a01b03929092169190911790556139fc6810dbdb5c1bdb995b9d60ba1b613862565b600280546001600160a01b0319166001600160a01b0392909216919091179055613a2c63141bdbdb60e21b613862565b600480546001600160a01b0319166001600160a01b0392909216919091179055613a6067547265617375727960c01b613862565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b600082601f830112613a92578081fd5b815167ffffffffffffffff811115613aac57613aac613f38565b6020613ac0601f8301601f19168201613f07565b8281528582848701011115613ad3578384fd5b835b83811015613af0578581018301518282018401528201613ad5565b83811115613b0057848385840101525b5095945050505050565b80516004811061385d57600080fd5b600060208284031215613b2a578081fd5b8135613b3581613f4e565b9392505050565b600060208284031215613b4d578081fd5b8151613b3581613f4e565b60008060008060808587031215613b6d578283fd5b8435613b7881613f4e565b93506020850135613b8881613f4e565b93969395505050506040820135916060013590565b60008060008060608587031215613bb2578384fd5b8435613bbd81613f4e565b9350602085013567ffffffffffffffff80821115613bd9578485fd5b818701915087601f830112613bec578485fd5b813581811115613bfa578586fd5b886020828501011115613c0b578586fd5b95986020929092019750949560400135945092505050565b600060208284031215613c34578081fd5b613b3582613b0a565b600060208284031215613c4e578081fd5b815160078110613b35578182fd5b600060208284031215613c6d578081fd5b815160038110613b35578182fd5b600060208284031215613c8c578081fd5b815167ffffffffffffffff80821115613ca3578283fd5b8184019150610140808387031215613cb9578384fd5b613cc281613f07565b9050825181526020830151602082015260408301516040820152613ce860608401613b0a565b6060820152608083015182811115613cfe578485fd5b613d0a87828601613a82565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600060208284031215613d60578081fd5b5035919050565b600060208284031215613d78578081fd5b5051919050565b60008060408385031215613d91578182fd5b50508035926020909101359150565b600080600060608486031215613db4578283fd5b505081359360208301359350604090920135919050565b60008060408385031215613ddd578182fd5b505080516020909101519092909150565b6001600160a01b03861681526020810185905260806040820181905281018390526000838560a08401378060a0858401015260a0601f19601f86011683010190508260608301529695505050505050565b60208082526021908201527f4552524f523a5250532d3030353a53454e4445525f4e4f545f5249534b504f4f6040820152601360fa1b606082015260800190565b60208082526021908201527f4552524f523a5250532d3030373a5249534b504f4f4c5f4e4f545f41435449566040820152604560f81b606082015260800190565b60208082526026908201527f4552524f523a5250532d3030363a42554e444c455f5249534b504f4f4c5f4d496040820152650a69a82a886960d31b606082015260800190565b604051601f8201601f1916810167ffffffffffffffff81118282101715613f3057613f30613f38565b604052919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114613f6357600080fd5b5056fea26469706673582212209a54242b6373dab5b01e37d770361bdd347dbf612e95820001979e25479ba64464736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/shared/CoreController.sol/CoreController.dbg.json b/artifacts/contracts/shared/CoreController.sol/CoreController.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/shared/CoreController.sol/CoreController.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/shared/CoreController.sol/CoreController.json b/artifacts/contracts/shared/CoreController.sol/CoreController.json deleted file mode 100644 index 0c6dbb32..00000000 --- a/artifacts/contracts/shared/CoreController.sol/CoreController.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "CoreController", - "sourceName": "contracts/shared/CoreController.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6103c0806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c4d66de814610030575b600080fd5b61004361003e366004610337565b610045565b005b600054610100900460ff16158080156100655750600054600160ff909116105b806100865750610074306101cf565b158015610086575060005460ff166001145b6100ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610111576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561013b600090565b6541636365737360d01b1461017d5761015c6541636365737360d01b6101e2565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101856102ca565b80156101cb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561022c57600080fd5b505afa158015610240573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610264919061035a565b90506001600160a01b0381166101dd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016100e5565b600054610100900460ff166103355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016100e5565b565b600060208284031215610348578081fd5b813561035381610372565b9392505050565b60006020828403121561036b578081fd5b8151610353815b6001600160a01b038116811461038757600080fd5b5056fea26469706673582212207a5000e854af590ede146fd80aeb1020a519941888a6dccd93415a3d32e7307364736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c4d66de814610030575b600080fd5b61004361003e366004610337565b610045565b005b600054610100900460ff16158080156100655750600054600160ff909116105b806100865750610074306101cf565b158015610086575060005460ff166001145b6100ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610111576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b0385160217905561013b600090565b6541636365737360d01b1461017d5761015c6541636365737360d01b6101e2565b600180546001600160a01b0319166001600160a01b03929092169190911790555b6101856102ca565b80156101cb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6001600160a01b0381163b15155b919050565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561022c57600080fd5b505afa158015610240573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610264919061035a565b90506001600160a01b0381166101dd5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016100e5565b600054610100900460ff166103355760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016100e5565b565b600060208284031215610348578081fd5b813561035381610372565b9392505050565b60006020828403121561036b578081fd5b8151610353815b6001600160a01b038116811461038757600080fd5b5056fea26469706673582212207a5000e854af590ede146fd80aeb1020a519941888a6dccd93415a3d32e7307364736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.dbg.json b/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.json b/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.json deleted file mode 100644 index f83cbc82..00000000 --- a/artifacts/contracts/shared/CoreProxy.sol/CoreProxy.json +++ /dev/null @@ -1,130 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "CoreProxy", - "sourceName": "contracts/shared/CoreProxy.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_controller", - "type": "address" - }, - { - "internalType": "bytes", - "name": "encoded_initializer", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beacon", - "type": "address" - } - ], - "name": "BeaconUpgraded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "oldImplementation", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newImplemntation", - "type": "address" - } - ], - "name": "LogCoreContractUpgraded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "inputs": [], - "name": "implementation", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeToAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000c0c38038062000c0c83398101604081905262000034916200043b565b818162000044828260006200005a565b506200005290503362000097565b5050620005a9565b6200006583620000f2565b600082511180620000735750805b1562000092576200009083836200013460201b620001ae1760201c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c262000163565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ef816200019c565b50565b620000fd8162000251565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015c838360405180606001604052806027815260200162000be56027913962000305565b9392505050565b60006200018d60008051602062000bc583398151915260001b620003eb60201b620001da1760201c565b546001600160a01b0316905090565b6001600160a01b038116620002075760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b806200023060008051602062000bc583398151915260001b620003eb60201b620001da1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6200026781620003ee60201b620001dd1760201c565b620002cb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001fe565b80620002307f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b620003eb60201b620001da1760201c565b60606001600160a01b0384163b6200036f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001fe565b600080856001600160a01b0316856040516200038c919062000511565b600060405180830381855af49150503d8060008114620003c9576040519150601f19603f3d011682016040523d82523d6000602084013e620003ce565b606091505b509092509050620003e1828286620003fd565b9695505050505050565b90565b6001600160a01b03163b151590565b606083156200040e5750816200015c565b8251156200041f5782518084602001fd5b8160405162461bcd60e51b8152600401620001fe91906200052f565b600080604083850312156200044e578182fd5b82516001600160a01b038116811462000465578283fd5b60208401519092506001600160401b038082111562000482578283fd5b818501915085601f83011262000496578283fd5b815181811115620004ab57620004ab62000593565b604051601f8201601f19908116603f01168101908382118183101715620004d657620004d662000593565b81604052828152886020848701011115620004ef578586fd5b6200050283602083016020880162000564565b80955050505050509250929050565b600082516200052581846020870162000564565b9190910192915050565b60006020825282518060208401526200055081604085016020870162000564565b601f01601f19169190910160400192915050565b60005b838110156200058157818101518382015260200162000567565b83811115620000905750506000910152565b634e487b7160e01b600052604160045260246000fd5b61060c80620005b96000396000f3fe60806040526004361061002d5760003560e01c80634f1ef286146100445780635c60da1b146100575761003c565b3661003c5761003a610088565b005b61003a610088565b61003a6100523660046104a9565b61009a565b34801561006357600080fd5b5061006c61019f565b6040516001600160a01b03909116815260200160405180910390f35b6100986100936101ec565b6101f6565b565b6100a261021f565b6001600160a01b0316336001600160a01b0316146101075760405162461bcd60e51b815260206004820152601760248201527f4552524f523a4352502d3030313a4e4f545f41444d494e00000000000000000060448201526064015b60405180910390fd5b60006101116101ec565b90506101568484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610252915050565b604080516001600160a01b038084168252861660208201527faca1087105eb43beb9d5a0283455ab4c7fc8e7412810dca909839c8c2f8be7b5910160405180910390a150505050565b60006101a96101ec565b905090565b60606101d383836040518060600160405280602781526020016105b06027913961027d565b9392505050565b90565b6001600160a01b03163b151590565b60006101a961035a565b3660008037600080366000845af43d6000803e808015610215573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b61025b83610382565b6000825111806102685750805b1561021a5761027783836101ae565b50505050565b60606001600160a01b0384163b6102e55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016100fe565b600080856001600160a01b0316856040516103009190610534565b600060405180830381855af49150503d806000811461033b576040519150601f19603f3d011682016040523d82523d6000602084013e610340565b606091505b50915091506103508282866103c2565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610243565b61038b816103fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156103d15750816101d3565b8251156103e15782518084602001fd5b8160405162461bcd60e51b81526004016100fe9190610550565b6001600160a01b0381163b6104685760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100fe565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000604084860312156104bd578283fd5b83356001600160a01b03811681146104d3578384fd5b9250602084013567ffffffffffffffff808211156104ef578384fd5b818601915086601f830112610502578384fd5b813581811115610510578485fd5b876020828501011115610521578485fd5b6020830194508093505050509250925092565b60008251610546818460208701610583565b9190910192915050565b600060208252825180602084015261056f816040850160208701610583565b601f01601f19169190910160400192915050565b60005b8381101561059e578181015183820152602001610586565b83811115610277575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1938722abe7a1266a6059456b8e2596f1ccd82ddbf52882350a27c535c239964736f6c63430008020033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "deployedBytecode": "0x60806040526004361061002d5760003560e01c80634f1ef286146100445780635c60da1b146100575761003c565b3661003c5761003a610088565b005b61003a610088565b61003a6100523660046104a9565b61009a565b34801561006357600080fd5b5061006c61019f565b6040516001600160a01b03909116815260200160405180910390f35b6100986100936101ec565b6101f6565b565b6100a261021f565b6001600160a01b0316336001600160a01b0316146101075760405162461bcd60e51b815260206004820152601760248201527f4552524f523a4352502d3030313a4e4f545f41444d494e00000000000000000060448201526064015b60405180910390fd5b60006101116101ec565b90506101568484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610252915050565b604080516001600160a01b038084168252861660208201527faca1087105eb43beb9d5a0283455ab4c7fc8e7412810dca909839c8c2f8be7b5910160405180910390a150505050565b60006101a96101ec565b905090565b60606101d383836040518060600160405280602781526020016105b06027913961027d565b9392505050565b90565b6001600160a01b03163b151590565b60006101a961035a565b3660008037600080366000845af43d6000803e808015610215573d6000f35b3d6000fd5b505050565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316905090565b61025b83610382565b6000825111806102685750805b1561021a5761027783836101ae565b50505050565b60606001600160a01b0384163b6102e55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016100fe565b600080856001600160a01b0316856040516103009190610534565b600060405180830381855af49150503d806000811461033b576040519150601f19603f3d011682016040523d82523d6000602084013e610340565b606091505b50915091506103508282866103c2565b9695505050505050565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610243565b61038b816103fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156103d15750816101d3565b8251156103e15782518084602001fd5b8160405162461bcd60e51b81526004016100fe9190610550565b6001600160a01b0381163b6104685760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016100fe565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000604084860312156104bd578283fd5b83356001600160a01b03811681146104d3578384fd5b9250602084013567ffffffffffffffff808211156104ef578384fd5b818601915086601f830112610502578384fd5b813581811115610510578485fd5b876020828501011115610521578485fd5b6020830194508093505050509250925092565b60008251610546818460208701610583565b9190910192915050565b600060208252825180602084015261056f816040850160208701610583565b601f01601f19169190910160400192915050565b60005b8381101561059e578181015183820152602001610586565b83811115610277575050600091015256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1938722abe7a1266a6059456b8e2596f1ccd82ddbf52882350a27c535c239964736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.dbg.json b/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.json b/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.json deleted file mode 100644 index 629f94c3..00000000 --- a/artifacts/contracts/shared/TransferHelper.sol/TransferHelper.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TransferHelper", - "sourceName": "contracts/shared/TransferHelper.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "callSuccess", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "returnDataLength", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "returnData", - "type": "bytes" - } - ], - "name": "LogTransferHelperCallFailed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "tokenIsContract", - "type": "bool" - }, - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "LogTransferHelperInputValidation1Failed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - } - ], - "name": "LogTransferHelperInputValidation2Failed", - "type": "event" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd7fbdf31ee1e4bfbfa5b4bef9f2c1150e2a776badabfd872b32c5ef7a2de43a64736f6c63430008020033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd7fbdf31ee1e4bfbfa5b4bef9f2c1150e2a776badabfd872b32c5ef7a2de43a64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.dbg.json b/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.json b/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.json deleted file mode 100644 index 76d71942..00000000 --- a/artifacts/contracts/shared/WithRegistry.sol/WithRegistry.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "WithRegistry", - "sourceName": "contracts/shared/WithRegistry.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_registry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "getContractFromRegistry", - "outputs": [ - { - "internalType": "address", - "name": "_addr", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "registry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60a060405234801561001057600080fd5b5060405161023e38038061023e83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6101a9610095600039600081816040015260a501526101a96000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063a5b25e711461007e575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61006261008c36600461015b565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b1580156100ef57600080fd5b505afa158015610103573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610127919061012d565b92915050565b60006020828403121561013e578081fd5b81516001600160a01b0381168114610154578182fd5b9392505050565b60006020828403121561016c578081fd5b503591905056fea264697066735822122073f6d3467796894695daf3d0106c32b32e072c548ba560293d99c61a987563a964736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80637b1039991461003b578063a5b25e711461007e575b600080fd5b6100627f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61006261008c36600461015b565b604051631c2d8fb360e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e16c7d989060240160206040518083038186803b1580156100ef57600080fd5b505afa158015610103573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610127919061012d565b92915050565b60006020828403121561013e578081fd5b81516001600160a01b0381168114610154578182fd5b9392505050565b60006020828403121561016c578081fd5b503591905056fea264697066735822122073f6d3467796894695daf3d0106c32b32e072c548ba560293d99c61a987563a964736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/test/TestCoin.sol/TestCoin.dbg.json b/artifacts/contracts/test/TestCoin.sol/TestCoin.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/test/TestCoin.sol/TestCoin.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/test/TestCoin.sol/TestCoin.json b/artifacts/contracts/test/TestCoin.sol/TestCoin.json deleted file mode 100644 index 7a6df342..00000000 --- a/artifacts/contracts/test/TestCoin.sol/TestCoin.json +++ /dev/null @@ -1,325 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TestCoin", - "sourceName": "contracts/test/TestCoin.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "INITIAL_SUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SYMBOL", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a815260200169546573742044756d6d7960b01b8152506040518060400160405280600381526020016254445960e81b81525081600390805190602001906200006992919062000199565b5080516200007f90600490602084019062000199565b505050620000a762000096620000ad60201b60201c565b69d3c21bcecceda1000000620000b1565b620002a1565b3390565b6001600160a01b0382166200010c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200012091906200023f565b90915550506001600160a01b038216600090815260208190526040812080548392906200014f9084906200023f565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001a79062000264565b90600052602060002090601f016020900481019282620001cb576000855562000216565b82601f10620001e657805160ff191683800117855562000216565b8280016001018555821562000216579182015b8281111562000216578251825591602001919060010190620001f9565b506200022492915062000228565b5090565b5b8082111562000224576000815560010162000229565b600082198211156200025f57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200027957607f821691505b602082108114156200029b57634e487b7160e01b600052602260045260246000fd5b50919050565b61092080620002b16000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101cc578063a9059cbb146101df578063dd62ed3e146101f2578063f76f8d7814610205576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610227565b6040516101049190610838565b60405180910390f35b61012061011b36600461080f565b6102b9565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d4565b6102d1565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461080f565b6102f5565b610134610196366004610781565b610317565b6100f7610336565b6100f76040518060400160405280600a815260200169546573742044756d6d7960b01b81525081565b6101206101da36600461080f565b610345565b6101206101ed36600461080f565b6103c5565b6101346102003660046107a2565b6103d3565b6100f76040518060400160405280600381526020016254445960e81b81525081565b606060038054610236906108af565b80601f0160208091040260200160405190810160405280929190818152602001828054610262906108af565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000336102c78185856103fe565b5060019392505050565b6000336102df858285610522565b6102ea85858561059c565b506001949350505050565b6000336102c781858561030883836103d3565b610312919061088b565b6103fe565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610236906108af565b6000338161035382866103d3565b9050838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ea82868684036103fe565b6000336102c781858561059c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166104c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052e84846103d3565b9050600019811461059657818110156105895760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b61059684848484036103fe565b50505050565b6001600160a01b0383166106005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b0382166106625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156106da5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071190849061088b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075d91815260200190565b60405180910390a3610596565b80356001600160a01b038116811461033157600080fd5b600060208284031215610792578081fd5b61079b8261076a565b9392505050565b600080604083850312156107b4578081fd5b6107bd8361076a565b91506107cb6020840161076a565b90509250929050565b6000806000606084860312156107e8578081fd5b6107f18461076a565b92506107ff6020850161076a565b9150604084013590509250925092565b60008060408385031215610821578182fd5b61082a8361076a565b946020939093013593505050565b6000602080835283518082850152825b8181101561086457858101830151858201604001528201610848565b818111156108755783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108aa57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c357607f821691505b602082108114156108e457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220bc4a89f4c007a366f56184c546e091f3566d682752848dd871a3ce1c929429d464736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101cc578063a9059cbb146101df578063dd62ed3e146101f2578063f76f8d7814610205576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610227565b6040516101049190610838565b60405180910390f35b61012061011b36600461080f565b6102b9565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d4565b6102d1565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461080f565b6102f5565b610134610196366004610781565b610317565b6100f7610336565b6100f76040518060400160405280600a815260200169546573742044756d6d7960b01b81525081565b6101206101da36600461080f565b610345565b6101206101ed36600461080f565b6103c5565b6101346102003660046107a2565b6103d3565b6100f76040518060400160405280600381526020016254445960e81b81525081565b606060038054610236906108af565b80601f0160208091040260200160405190810160405280929190818152602001828054610262906108af565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000336102c78185856103fe565b5060019392505050565b6000336102df858285610522565b6102ea85858561059c565b506001949350505050565b6000336102c781858561030883836103d3565b610312919061088b565b6103fe565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610236906108af565b6000338161035382866103d3565b9050838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ea82868684036103fe565b6000336102c781858561059c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103af565b6001600160a01b0382166104c15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103af565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061052e84846103d3565b9050600019811461059657818110156105895760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b61059684848484036103fe565b50505050565b6001600160a01b0383166106005760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103af565b6001600160a01b0382166106625760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103af565b6001600160a01b038316600090815260208190526040902054818110156106da5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103af565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071190849061088b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075d91815260200190565b60405180910390a3610596565b80356001600160a01b038116811461033157600080fd5b600060208284031215610792578081fd5b61079b8261076a565b9392505050565b600080604083850312156107b4578081fd5b6107bd8361076a565b91506107cb6020840161076a565b90509250929050565b6000806000606084860312156107e8578081fd5b6107f18461076a565b92506107ff6020850161076a565b9150604084013590509250925092565b60008060408385031215610821578182fd5b61082a8361076a565b946020939093013593505050565b6000602080835283518082850152825b8181101561086457858101830151858201604001528201610848565b818111156108755783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108aa57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c357607f821691505b602082108114156108e457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220bc4a89f4c007a366f56184c546e091f3566d682752848dd871a3ce1c929429d464736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/test/TestCoin.sol/TestCoinX.dbg.json b/artifacts/contracts/test/TestCoin.sol/TestCoinX.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/test/TestCoin.sol/TestCoinX.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/test/TestCoin.sol/TestCoinX.json b/artifacts/contracts/test/TestCoin.sol/TestCoinX.json deleted file mode 100644 index 9c14defd..00000000 --- a/artifacts/contracts/test/TestCoin.sol/TestCoinX.json +++ /dev/null @@ -1,325 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TestCoinX", - "sourceName": "contracts/test/TestCoin.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "INITIAL_SUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SYMBOL", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b815250604051806040016040528060038152602001620a888b60eb1b81525081600390805190602001906200006b9291906200019b565b508051620000819060049060208401906200019b565b505050620000a962000098620000af60201b60201c565b69d3c21bcecceda1000000620000b3565b620002a3565b3390565b6001600160a01b0382166200010e5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000122919062000241565b90915550506001600160a01b038216600090815260208190526040812080548392906200015190849062000241565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001a99062000266565b90600052602060002090601f016020900481019282620001cd576000855562000218565b82601f10620001e857805160ff191683800117855562000218565b8280016001018555821562000218579182015b8281111562000218578251825591602001919060010190620001fb565b50620002269291506200022a565b5090565b5b808211156200022657600081556001016200022b565b600082198211156200026157634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200027b57607f821691505b602082108114156200029d57634e487b7160e01b600052602260045260246000fd5b50919050565b61092280620002b36000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101ce578063a9059cbb146101e1578063dd62ed3e146101f4578063f76f8d7814610207576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610229565b604051610104919061083a565b60405180910390f35b61012061011b366004610811565b6102bb565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d6565b6102d3565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b610120610183366004610811565b6102f7565b610134610196366004610783565b610319565b6100f7610338565b6100f76040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b81525081565b6101206101dc366004610811565b610347565b6101206101ef366004610811565b6103c7565b6101346102023660046107a4565b6103d5565b6100f7604051806040016040528060038152602001620a888b60eb1b81525081565b606060038054610238906108b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906108b1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b5050505050905090565b6000336102c9818585610400565b5060019392505050565b6000336102e1858285610524565b6102ec85858561059e565b506001949350505050565b6000336102c981858561030a83836103d5565b610314919061088d565b610400565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610238906108b1565b6000338161035582866103d5565b9050838110156103ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ec8286868403610400565b6000336102c981858561059e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b1565b6001600160a01b0382166104c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053084846103d5565b90506000198114610598578181101561058b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103b1565b6105988484848403610400565b50505050565b6001600160a01b0383166106025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b1565b6001600160a01b0382166106645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b1565b6001600160a01b038316600090815260208190526040902054818110156106dc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103b1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071390849061088d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075f91815260200190565b60405180910390a3610598565b80356001600160a01b038116811461033357600080fd5b600060208284031215610794578081fd5b61079d8261076c565b9392505050565b600080604083850312156107b6578081fd5b6107bf8361076c565b91506107cd6020840161076c565b90509250929050565b6000806000606084860312156107ea578081fd5b6107f38461076c565b92506108016020850161076c565b9150604084013590509250925092565b60008060408385031215610823578182fd5b61082c8361076c565b946020939093013593505050565b6000602080835283518082850152825b818110156108665785810183015185820160400152820161084a565b818111156108775783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108ac57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c557607f821691505b602082108114156108e657634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202a8e76e1b4e5b8026b2d39aa0fb86dd6fc4365a817df004296a5841464fe79a864736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101ce578063a9059cbb146101e1578063dd62ed3e146101f4578063f76f8d7814610207576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610229565b604051610104919061083a565b60405180910390f35b61012061011b366004610811565b6102bb565b6040519015158152602001610104565b6002545b604051908152602001610104565b6101206101503660046107d6565b6102d3565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b610120610183366004610811565b6102f7565b610134610196366004610783565b610319565b6100f7610338565b6100f76040518060400160405280600c81526020016b0a8cae6e84088eadadaf240b60a31b81525081565b6101206101dc366004610811565b610347565b6101206101ef366004610811565b6103c7565b6101346102023660046107a4565b6103d5565b6100f7604051806040016040528060038152602001620a888b60eb1b81525081565b606060038054610238906108b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610264906108b1565b80156102b15780601f10610286576101008083540402835291602001916102b1565b820191906000526020600020905b81548152906001019060200180831161029457829003601f168201915b5050505050905090565b6000336102c9818585610400565b5060019392505050565b6000336102e1858285610524565b6102ec85858561059e565b506001949350505050565b6000336102c981858561030a83836103d5565b610314919061088d565b610400565b6001600160a01b0381166000908152602081905260409020545b919050565b606060048054610238906108b1565b6000338161035582866103d5565b9050838110156103ba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102ec8286868403610400565b6000336102c981858561059e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103b1565b6001600160a01b0382166104c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061053084846103d5565b90506000198114610598578181101561058b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103b1565b6105988484848403610400565b50505050565b6001600160a01b0383166106025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103b1565b6001600160a01b0382166106645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103b1565b6001600160a01b038316600090815260208190526040902054818110156106dc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103b1565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061071390849061088d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161075f91815260200190565b60405180910390a3610598565b80356001600160a01b038116811461033357600080fd5b600060208284031215610794578081fd5b61079d8261076c565b9392505050565b600080604083850312156107b6578081fd5b6107bf8361076c565b91506107cd6020840161076c565b90509250929050565b6000806000606084860312156107ea578081fd5b6107f38461076c565b92506108016020850161076c565b9150604084013590509250925092565b60008060408385031215610823578182fd5b61082c8361076c565b946020939093013593505050565b6000602080835283518082850152825b818110156108665785810183015185820160400152820161084a565b818111156108775783604083870101525b50601f01601f1916929092016040019392505050565b600082198211156108ac57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806108c557607f821691505b602082108114156108e657634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212202a8e76e1b4e5b8026b2d39aa0fb86dd6fc4365a817df004296a5841464fe79a864736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.dbg.json b/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.json b/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.json deleted file mode 100644 index d950ea81..00000000 --- a/artifacts/contracts/test/TestCoinAlternativeImplementation.sol/TestCoinAlternativeImplementation.json +++ /dev/null @@ -1,325 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TestCoinAlternativeImplementation", - "sourceName": "contracts/test/TestCoinAlternativeImplementation.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "INITIAL_SUPPLY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SYMBOL", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280601581526020017f5465737420416c7465726e617469766520436f696e00000000000000000000008152506040518060400160405280600381526020016254414360e81b81525081600390805190602001906200007c929190620001ac565b50805162000092906004906020840190620001ac565b505050620000ba620000a9620000c060201b60201c565b69d3c21bcecceda1000000620000c4565b620002b4565b3390565b6001600160a01b0382166200011f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825462000133919062000252565b90915550506001600160a01b038216600090815260208190526040812080548392906200016290849062000252565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620001ba9062000277565b90600052602060002090601f016020900481019282620001de576000855562000229565b82601f10620001f957805160ff191683800117855562000229565b8280016001018555821562000229579182015b82811115620002295782518255916020019190600101906200020c565b50620002379291506200023b565b5090565b5b808211156200023757600081556001016200023c565b600082198211156200027257634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200028c57607f821691505b60208210811415620002ae57634e487b7160e01b600052602260045260246000fd5b50919050565b6109b080620002c46000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101d7578063a9059cbb146101ea578063dd62ed3e146101fd578063f76f8d7814610210576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610232565b60405161010491906108c8565b60405180910390f35b61012061011b36600461089f565b6102c4565b6040519015158152602001610104565b6002545b604051908152602001610104565b610120610150366004610864565b6102dc565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461089f565b610370565b610134610196366004610818565b610392565b6100f76103b1565b6100f7604051806040016040528060158152602001742a32b9ba1020b63a32b93730ba34bb329021b7b4b760591b81525081565b6101206101e536600461089f565b6103c0565b6101206101f836600461089f565b61044b565b61013461020b366004610832565b610459565b6100f76040518060400160405280600381526020016254414360e81b81525081565b6060600380546102419061093f565b80601f016020809104026020016040519081016040528092919081815260200182805461026d9061093f565b80156102ba5780601f1061028f576101008083540402835291602001916102ba565b820191906000526020600020905b81548152906001019060200180831161029d57829003601f168201915b5050505050905090565b6000336102d2818585610484565b5060019392505050565b6000816102e885610392565b101580156102ff5750816102fc8533610459565b10155b8015610326575061030f83610392565b8261031985610392565b610323919061091b565b10155b801561033a57506001600160a01b03841615155b801561034e57506001600160a01b03831615155b156103655761035e8484846105a8565b9050610369565b5060005b9392505050565b6000336102d28185856103838383610459565b61038d919061091b565b610484565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102419061093f565b600033816103ce8286610459565b9050838110156104335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6104408286868403610484565b506001949350505050565b6000336102d28185856105bd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161042a565b6001600160a01b0382166105475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161042a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000336105b685828561078d565b6104408585855b6001600160a01b0383166106215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161042a565b6001600160a01b0382166106835760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161042a565b6001600160a01b038316600090815260208190526040902054818110156106fb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161042a565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061073290849061091b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161077e91815260200190565b60405180910390a35b50505050565b60006107998484610459565b9050600019811461078757818110156107f45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161042a565b6107878484848403610484565b80356001600160a01b03811681146103ac57600080fd5b600060208284031215610829578081fd5b61036982610801565b60008060408385031215610844578081fd5b61084d83610801565b915061085b60208401610801565b90509250929050565b600080600060608486031215610878578081fd5b61088184610801565b925061088f60208501610801565b9150604084013590509250925092565b600080604083850312156108b1578182fd5b6108ba83610801565b946020939093013593505050565b6000602080835283518082850152825b818110156108f4578581018301518582016040015282016108d8565b818111156109055783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561093a57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061095357607f821691505b6020821081141561097457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220fe54507b3ea268ebc7a74b0b506365823cec572537e192781708c94b808aa2e464736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101d7578063a9059cbb146101ea578063dd62ed3e146101fd578063f76f8d7814610210576100ea565b806370a082311461018857806395d89b411461019b578063a3f4df7e146101a3576100ea565b806323b872dd116100c857806323b872dd146101425780632ff2e9dc14610155578063313ce567146101665780633950935114610175576100ea565b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610232565b60405161010491906108c8565b60405180910390f35b61012061011b36600461089f565b6102c4565b6040519015158152602001610104565b6002545b604051908152602001610104565b610120610150366004610864565b6102dc565b61013469d3c21bcecceda100000081565b60405160128152602001610104565b61012061018336600461089f565b610370565b610134610196366004610818565b610392565b6100f76103b1565b6100f7604051806040016040528060158152602001742a32b9ba1020b63a32b93730ba34bb329021b7b4b760591b81525081565b6101206101e536600461089f565b6103c0565b6101206101f836600461089f565b61044b565b61013461020b366004610832565b610459565b6100f76040518060400160405280600381526020016254414360e81b81525081565b6060600380546102419061093f565b80601f016020809104026020016040519081016040528092919081815260200182805461026d9061093f565b80156102ba5780601f1061028f576101008083540402835291602001916102ba565b820191906000526020600020905b81548152906001019060200180831161029d57829003601f168201915b5050505050905090565b6000336102d2818585610484565b5060019392505050565b6000816102e885610392565b101580156102ff5750816102fc8533610459565b10155b8015610326575061030f83610392565b8261031985610392565b610323919061091b565b10155b801561033a57506001600160a01b03841615155b801561034e57506001600160a01b03831615155b156103655761035e8484846105a8565b9050610369565b5060005b9392505050565b6000336102d28185856103838383610459565b61038d919061091b565b610484565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102419061093f565b600033816103ce8286610459565b9050838110156104335760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6104408286868403610484565b506001949350505050565b6000336102d28185856105bd565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166104e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161042a565b6001600160a01b0382166105475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161042a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000336105b685828561078d565b6104408585855b6001600160a01b0383166106215760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161042a565b6001600160a01b0382166106835760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161042a565b6001600160a01b038316600090815260208190526040902054818110156106fb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161042a565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061073290849061091b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161077e91815260200190565b60405180910390a35b50505050565b60006107998484610459565b9050600019811461078757818110156107f45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161042a565b6107878484848403610484565b80356001600160a01b03811681146103ac57600080fd5b600060208284031215610829578081fd5b61036982610801565b60008060408385031215610844578081fd5b61084d83610801565b915061085b60208401610801565b90509250929050565b600080600060608486031215610878578081fd5b61088184610801565b925061088f60208501610801565b9150604084013590509250925092565b600080604083850312156108b1578182fd5b6108ba83610801565b946020939093013593505050565b6000602080835283518082850152825b818110156108f4578581018301518582016040015282016108d8565b818111156109055783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561093a57634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061095357607f821691505b6020821081141561097457634e487b7160e01b600052602260045260246000fd5b5091905056fea2646970667358221220fe54507b3ea268ebc7a74b0b506365823cec572537e192781708c94b808aa2e464736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.dbg.json b/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.json b/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.json deleted file mode 100644 index 206a3f4f..00000000 --- a/artifacts/contracts/test/TestCompromisedProduct.sol/TestCompromisedProduct.json +++ /dev/null @@ -1,545 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TestCompromisedProduct", - "sourceName": "contracts/test/TestCompromisedProduct.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "fakeProductName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "tokenAddress", - "type": "address" - }, - { - "internalType": "uint256", - "name": "fakeComponentId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "fakeRiskpoolId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "productAddress", - "type": "address" - } - ], - "name": "LogProductCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "FAKE_STATE", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "POLICY_FLOW", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "premium", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsured", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "metaData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "applicationData", - "type": "bytes" - } - ], - "name": "applyForPolicy", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - } - ], - "name": "collectPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getApplicationDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getClaimDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPayoutDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPolicyFlow", - "outputs": [ - { - "internalType": "address", - "name": "policyFlow", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRiskpoolId", - "outputs": [ - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getToken", - "outputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "riskPoolCapacityCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - } - ], - "name": "submitClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620014f0380380620014f0833981016040819052620000349162000306565b6200003f3362000171565b6001859055600280546001600160a01b038087166001600160a01b03199283161790925560038590556004849055600580549284169290911691909117905562000088620001c1565b600680546001600160a01b0319166001600160a01b0392909216919091179055620000b2620001dc565b600780546001600160a01b0319166001600160a01b0392909216919091179055620000dc62000209565b600880546001600160a01b0319166001600160a01b03929092169190911790556200011b70506f6c69637944656661756c74466c6f7760781b62000223565b600980546001600160a01b0319166001600160a01b039290921691909117905562000145620002ac565b600a80546001600160a01b0319166001600160a01b0392909216919091179055506200035a9350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620001d76541636365737360d01b62000223565b905090565b6000620001d77f436f6d706f6e656e744f776e657253657276696365000000000000000000000062000223565b6000620001d76e496e7374616e63655365727669636560881b5b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200026957600080fd5b505afa1580156200027e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a49190620002e2565b90505b919050565b6000620001d76d50726f647563745365727669636560901b62000223565b80516001600160a01b0381168114620002a757600080fd5b600060208284031215620002f4578081fd5b620002ff82620002ca565b9392505050565b600080600080600060a086880312156200031e578081fd5b855194506200033060208701620002ca565b935060408601519250606086015191506200034e60808701620002ca565b90509295509295909350565b611186806200036a6000396000f3fe6080604052600436106101ee5760003560e01c806370d2fe531161010d578063b9ea8d66116100a0578063d73cd9921161006f578063d73cd9921461027c578063e0815f0d1461042a578063e6f95edd1461043e578063f2fde38b14610451578063f4fdc1fa1461040c576101ee565b8063b9ea8d66146103ec578063bd1fe5d01461027c578063be169e7e1461027c578063d0e0ba951461040c576101ee565b806394f64ff4116100dc57806394f64ff4146102fe5780639a82f890146102be578063a18f5ae21461027c578063b3fca9bd1461027c576101ee565b806370d2fe5314610382578063715018a614610397578063893d20e8146103ac5780638da5cb5b146103ce576101ee565b806339cf5e16116101855780635ab1bd53116101545780635ab1bd531461033a5780635d1ca63114610358578063637d08f41461036d578063638ce0ba1461027c576101ee565b806339cf5e16146102fe5780633b5284b6146103255780633ec92bda146102fe57806359dacc6a1461027c576101ee565b80631b867c63116101c15780631b867c631461027c57806321df0da71461028c578063258d560c146102be5780632b677841146102de576101ee565b806309128d83146101f357806315dae03e1461022e57806317d7de7c1461024a5780631865c57d1461025f575b600080fd5b3480156101ff57600080fd5b5061021b70506f6c69637944656661756c74466c6f7760781b81565b6040519081526020015b60405180910390f35b34801561023a57600080fd5b5060016040516102259190611063565b34801561025657600080fd5b5060015461021b565b34801561026b57600080fd5b5060035b6040516102259190611049565b34801561028857600080fd5b505b005b34801561029857600080fd5b506002546001600160a01b03165b6040516001600160a01b039091168152602001610225565b3480156102ca57600080fd5b5060005b6040519015158152602001610225565b3480156102ea57600080fd5b5061028a6102f9366004610d54565b610473565b34801561030a57600080fd5b50604080516020810182526000815290516102259190611077565b34801561033157600080fd5b5061026f600381565b34801561034657600080fd5b506005546001600160a01b03166102a6565b34801561036457600080fd5b5060035461021b565b34801561037957600080fd5b506102a66107bd565b34801561038e57600080fd5b5060045461021b565b3480156103a357600080fd5b5061028a6107e1565b3480156103b857600080fd5b506102a6600080546001600160a01b03166107dc565b3480156103da57600080fd5b506000546001600160a01b03166102a6565b3480156103f857600080fd5b5061028a610407366004610d24565b6107f3565b34801561041857600080fd5b5061028a610427366004610d24565b50565b34801561043657600080fd5b5060016102ce565b61021b61044c366004610ecd565b610904565b34801561045d57600080fd5b5061028a61046c366004610c97565b610a22565b565b60085460405163296586d360e21b81526004810184905283916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104f89190810190610d75565b519050336001600160a01b038216146105645760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5443502d313a494e56414c49445f504f4c4943595f4f525f484f604482015263262222a960e11b60648201526084015b60405180910390fd5b6001600c600082825461057791906110bb565b9091555050600a546040805160006020808301829052835180840390910181528284019384905263fae43d1560e01b909352926001600160a01b03169163fae43d15916105cb918991899190604401610ff2565b602060405180830381600087803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061d9190610d3c565b600a54604051634e02c63f60e01b81526004810188905260248101839052604481018790529192506001600160a01b031690634e02c63f90606401600060405180830381600087803b15801561067257600080fd5b505af1158015610686573d6000803e3d6000fd5b5050600a5460408051600060208083018290528351808403909101815282840193849052633c0ebc2360e11b90935294506001600160a01b03909216925063781d7846916106dc918a9187918b9160440161101a565b602060405180830381600087803b1580156106f657600080fd5b505af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e9190610d3c565b600a5460405163fe64372b60e01b815260048101899052602481018390529192506001600160a01b03169063fe64372b906044016040805180830381600087803b15801561077b57600080fd5b505af115801561078f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b39190610eaa565b5050505050505050565b60006107dc70506f6c69637944656661756c74466c6f7760781b610a98565b905090565b6107e9610b1d565b6104716000610b77565b60085460405163a3f685f960e01b8152600481018390526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190610e25565b600a54602082015160405163e3ebdea560e01b81526004810186905260248101919091529192506001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fd9190610cf0565b5050505050565b60008033600a546040516349dc20a560e11b81529192506001600160a01b0316906393b8414a906109459084908c908c908c908c908c908c90600401610fa3565b602060405180830381600087803b15801561095f57600080fd5b505af1158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190610d3c565b600a54604051631b07b17f60e01b8152600481018390529193506001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190610cd6565b50509695505050505050565b610a2a610b1d565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055b565b61042781610b77565b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190610cba565b90505b919050565b6000546001600160a01b031633146104715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80518015158114610b1857600080fd5b60008083601f840112610be8578182fd5b50813567ffffffffffffffff811115610bff578182fd5b602083019150836020828501011115610c1757600080fd5b9250929050565b600082601f830112610c2e578081fd5b815167ffffffffffffffff811115610c4857610c48611125565b610c5b601f8201601f191660200161108a565b818152846020838601011115610c6f578283fd5b610c808260208301602087016110df565b949350505050565b805160038110610b1857600080fd5b600060208284031215610ca8578081fd5b8135610cb38161113b565b9392505050565b600060208284031215610ccb578081fd5b8151610cb38161113b565b600060208284031215610ce7578081fd5b610cb382610bc7565b600080600060608486031215610d04578182fd5b610d0d84610bc7565b925060208401519150604084015190509250925092565b600060208284031215610d35578081fd5b5035919050565b600060208284031215610d4d578081fd5b5051919050565b60008060408385031215610d66578182fd5b50508035926020909101359150565b600060208284031215610d86578081fd5b815167ffffffffffffffff80821115610d9d578283fd5b9083019060c08286031215610db0578283fd5b610dba60c061108a565b8251610dc58161113b565b815260208381015190820152610ddd60408401610c88565b6040820152606083015182811115610df3578485fd5b610dff87828601610c1e565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215610e38578182fd5b610e418161108a565b9050610e4c83610c88565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060408385031215610ebc578182fd5b505080516020909101519092909150565b60008060008060008060808789031215610ee5578384fd5b8635955060208701359450604087013567ffffffffffffffff80821115610f0a578586fd5b610f168a838b01610bd7565b90965094506060890135915080821115610f2e578384fd5b50610f3b89828a01610bd7565b979a9699509497509295939492505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452610f8f8160208601602086016110df565b601f01601f19169290920160200192915050565b600060018060a01b038916825287602083015286604083015260a06060830152610fd160a083018688610f4d565b8281036080840152610fe4818587610f4d565b9a9950505050505050505050565b6000848252836020830152606060408301526110116060830184610f77565b95945050505050565b60008582528460208301528360408301526080606083015261103f6080830184610f77565b9695505050505050565b602081016007831061105d5761105d61110f565b91905290565b602081016003831061105d5761105d61110f565b600060208252610cb36020830184610f77565b604051601f8201601f1916810167ffffffffffffffff811182821017156110b3576110b3611125565b604052919050565b600082198211156110da57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156110fa5781810151838201526020016110e2565b83811115611109576000848401525b50505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461042757600080fdfea2646970667358221220d035e3de5b3a00e05b9cb799c298a86d18cc827ca95856c5337177a97dceacf664736f6c63430008020033", - "deployedBytecode": "0x6080604052600436106101ee5760003560e01c806370d2fe531161010d578063b9ea8d66116100a0578063d73cd9921161006f578063d73cd9921461027c578063e0815f0d1461042a578063e6f95edd1461043e578063f2fde38b14610451578063f4fdc1fa1461040c576101ee565b8063b9ea8d66146103ec578063bd1fe5d01461027c578063be169e7e1461027c578063d0e0ba951461040c576101ee565b806394f64ff4116100dc57806394f64ff4146102fe5780639a82f890146102be578063a18f5ae21461027c578063b3fca9bd1461027c576101ee565b806370d2fe5314610382578063715018a614610397578063893d20e8146103ac5780638da5cb5b146103ce576101ee565b806339cf5e16116101855780635ab1bd53116101545780635ab1bd531461033a5780635d1ca63114610358578063637d08f41461036d578063638ce0ba1461027c576101ee565b806339cf5e16146102fe5780633b5284b6146103255780633ec92bda146102fe57806359dacc6a1461027c576101ee565b80631b867c63116101c15780631b867c631461027c57806321df0da71461028c578063258d560c146102be5780632b677841146102de576101ee565b806309128d83146101f357806315dae03e1461022e57806317d7de7c1461024a5780631865c57d1461025f575b600080fd5b3480156101ff57600080fd5b5061021b70506f6c69637944656661756c74466c6f7760781b81565b6040519081526020015b60405180910390f35b34801561023a57600080fd5b5060016040516102259190611063565b34801561025657600080fd5b5060015461021b565b34801561026b57600080fd5b5060035b6040516102259190611049565b34801561028857600080fd5b505b005b34801561029857600080fd5b506002546001600160a01b03165b6040516001600160a01b039091168152602001610225565b3480156102ca57600080fd5b5060005b6040519015158152602001610225565b3480156102ea57600080fd5b5061028a6102f9366004610d54565b610473565b34801561030a57600080fd5b50604080516020810182526000815290516102259190611077565b34801561033157600080fd5b5061026f600381565b34801561034657600080fd5b506005546001600160a01b03166102a6565b34801561036457600080fd5b5060035461021b565b34801561037957600080fd5b506102a66107bd565b34801561038e57600080fd5b5060045461021b565b3480156103a357600080fd5b5061028a6107e1565b3480156103b857600080fd5b506102a6600080546001600160a01b03166107dc565b3480156103da57600080fd5b506000546001600160a01b03166102a6565b3480156103f857600080fd5b5061028a610407366004610d24565b6107f3565b34801561041857600080fd5b5061028a610427366004610d24565b50565b34801561043657600080fd5b5060016102ce565b61021b61044c366004610ecd565b610904565b34801561045d57600080fd5b5061028a61046c366004610c97565b610a22565b565b60085460405163296586d360e21b81526004810184905283916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b1580156104bc57600080fd5b505afa1580156104d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104f89190810190610d75565b519050336001600160a01b038216146105645760405162461bcd60e51b8152602060048201526024808201527f4552524f523a5443502d313a494e56414c49445f504f4c4943595f4f525f484f604482015263262222a960e11b60648201526084015b60405180910390fd5b6001600c600082825461057791906110bb565b9091555050600a546040805160006020808301829052835180840390910181528284019384905263fae43d1560e01b909352926001600160a01b03169163fae43d15916105cb918991899190604401610ff2565b602060405180830381600087803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061d9190610d3c565b600a54604051634e02c63f60e01b81526004810188905260248101839052604481018790529192506001600160a01b031690634e02c63f90606401600060405180830381600087803b15801561067257600080fd5b505af1158015610686573d6000803e3d6000fd5b5050600a5460408051600060208083018290528351808403909101815282840193849052633c0ebc2360e11b90935294506001600160a01b03909216925063781d7846916106dc918a9187918b9160440161101a565b602060405180830381600087803b1580156106f657600080fd5b505af115801561070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072e9190610d3c565b600a5460405163fe64372b60e01b815260048101899052602481018390529192506001600160a01b03169063fe64372b906044016040805180830381600087803b15801561077b57600080fd5b505af115801561078f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b39190610eaa565b5050505050505050565b60006107dc70506f6c69637944656661756c74466c6f7760781b610a98565b905090565b6107e9610b1d565b6104716000610b77565b60085460405163a3f685f960e01b8152600481018390526000916001600160a01b03169063a3f685f9906024016101206040518083038186803b15801561083957600080fd5b505afa15801561084d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108719190610e25565b600a54602082015160405163e3ebdea560e01b81526004810186905260248101919091529192506001600160a01b03169063e3ebdea590604401606060405180830381600087803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fd9190610cf0565b5050505050565b60008033600a546040516349dc20a560e11b81529192506001600160a01b0316906393b8414a906109459084908c908c908c908c908c908c90600401610fa3565b602060405180830381600087803b15801561095f57600080fd5b505af1158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190610d3c565b600a54604051631b07b17f60e01b8152600481018390529193506001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156109de57600080fd5b505af11580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190610cd6565b50509695505050505050565b610a2a610b1d565b6001600160a01b038116610a8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055b565b61042781610b77565b600554604051631c2d8fb360e31b8152600481018390526000916001600160a01b03169063e16c7d989060240160206040518083038186803b158015610add57600080fd5b505afa158015610af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b159190610cba565b90505b919050565b6000546001600160a01b031633146104715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80518015158114610b1857600080fd5b60008083601f840112610be8578182fd5b50813567ffffffffffffffff811115610bff578182fd5b602083019150836020828501011115610c1757600080fd5b9250929050565b600082601f830112610c2e578081fd5b815167ffffffffffffffff811115610c4857610c48611125565b610c5b601f8201601f191660200161108a565b818152846020838601011115610c6f578283fd5b610c808260208301602087016110df565b949350505050565b805160038110610b1857600080fd5b600060208284031215610ca8578081fd5b8135610cb38161113b565b9392505050565b600060208284031215610ccb578081fd5b8151610cb38161113b565b600060208284031215610ce7578081fd5b610cb382610bc7565b600080600060608486031215610d04578182fd5b610d0d84610bc7565b925060208401519150604084015190509250925092565b600060208284031215610d35578081fd5b5035919050565b600060208284031215610d4d578081fd5b5051919050565b60008060408385031215610d66578182fd5b50508035926020909101359150565b600060208284031215610d86578081fd5b815167ffffffffffffffff80821115610d9d578283fd5b9083019060c08286031215610db0578283fd5b610dba60c061108a565b8251610dc58161113b565b815260208381015190820152610ddd60408401610c88565b6040820152606083015182811115610df3578485fd5b610dff87828601610c1e565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000610120808385031215610e38578182fd5b610e418161108a565b9050610e4c83610c88565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060408385031215610ebc578182fd5b505080516020909101519092909150565b60008060008060008060808789031215610ee5578384fd5b8635955060208701359450604087013567ffffffffffffffff80821115610f0a578586fd5b610f168a838b01610bd7565b90965094506060890135915080821115610f2e578384fd5b50610f3b89828a01610bd7565b979a9699509497509295939492505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008151808452610f8f8160208601602086016110df565b601f01601f19169290920160200192915050565b600060018060a01b038916825287602083015286604083015260a06060830152610fd160a083018688610f4d565b8281036080840152610fe4818587610f4d565b9a9950505050505050505050565b6000848252836020830152606060408301526110116060830184610f77565b95945050505050565b60008582528460208301528360408301526080606083015261103f6080830184610f77565b9695505050505050565b602081016007831061105d5761105d61110f565b91905290565b602081016003831061105d5761105d61110f565b600060208252610cb36020830184610f77565b604051601f8201601f1916810167ffffffffffffffff811182821017156110b3576110b3611125565b604052919050565b600082198211156110da57634e487b7160e01b81526011600452602481fd5b500190565b60005b838110156110fa5781810151838201526020016110e2565b83811115611109576000848401525b50505050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461042757600080fdfea2646970667358221220d035e3de5b3a00e05b9cb799c298a86d18cc827ca95856c5337177a97dceacf664736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/test/TestOracle.sol/TestOracle.dbg.json b/artifacts/contracts/test/TestOracle.sol/TestOracle.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/test/TestOracle.sol/TestOracle.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/test/TestOracle.sol/TestOracle.json b/artifacts/contracts/test/TestOracle.sol/TestOracle.json deleted file mode 100644 index 215c6aa8..00000000 --- a/artifacts/contracts/test/TestOracle.sol/TestOracle.json +++ /dev/null @@ -1,544 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TestOracle", - "sourceName": "contracts/test/TestOracle.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "oracleName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "oracleAddress", - "type": "address" - } - ], - "name": "LogOracleCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogOracleProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "name": "cancel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "input", - "type": "bytes" - } - ], - "name": "request", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "isLossEvent", - "type": "bool" - } - ], - "name": "respond", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000f6138038062000f618339810160408190526200003491620003d6565b81818160008262000045336200025a565b6001600160a01b038116620000ac5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b606482015260840160405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000d6620002aa565b600480546001600160a01b0319166001600160a01b039290921691909117905562000100620002c5565b600580546001600160a01b0319166001600160a01b03929092169190911790556200012a620002f2565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200017d57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001d192909160ff82169130916101009091046001600160a01b03169062000404565b60405180910390a1505050620001fd6c4f7261636c655365727669636560981b6200030c60201b60201c565b600780546001600160a01b0319166001600160a01b03929092169190911790556040513081527f77dee27cd265ac28cb5ba0d4f1a792ad0425ca4ae8bd0c6253b99ec26ac454109060200160405180910390a1505050506200044f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620002c06541636365737360d01b6200030c565b905090565b6000620002c07f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200030c565b6000620002c06e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200035757600080fd5b505afa1580156200036c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003929190620003b2565b90505b919050565b80516001600160a01b03811681146200039557600080fd5b600060208284031215620003c4578081fd5b620003cf826200039a565b9392505050565b60008060408385031215620003e9578081fd5b82519150620003fb602084016200039a565b90509250929050565b84815260808101600385106200042a57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b610b02806200045f6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063be169e7e1161007c578063be169e7e146101d5578063d0e0ba951461026d578063d73cd992146101d5578063e0815f0d14610280578063f2fde38b14610288578063ffc790651461029b57610158565b80638da5cb5b146102395780639a82f8901461024a578063a18f5ae2146101d5578063a9c577c514610252578063b3fca9bd146101d5578063bd1fe5d01461026557610158565b806359dacc6a1161011557806359dacc6a146101d55780635ab1bd53146101dd5780635d1ca6311461020c578063638ce0ba14610214578063715018a61461021c578063893d20e81461022457610158565b806315dae03e1461015d57806317d7de7c146101795780631865c57d1461018b5780631b867c63146101a0578063258d560c146101aa57806340e58ee5146101c2575b600080fd5b60035460ff1660405161017091906109db565b60405180910390f35b6001545b604051908152602001610170565b6101936102ae565b60405161017091906109c1565b6101a8610334565b005b6101b261038c565b6040519015158152602001610170565b6101a86101d03660046108ff565b6103bc565b6101a86103c7565b6101f460035461010090046001600160a01b031690565b6040516001600160a01b039091168152602001610170565b60025461017d565b6101a8610411565b6101a861045e565b6101f4600080546001600160a01b031661032f565b6000546001600160a01b03166101f4565b6101b2610470565b6101a8610260366004610917565b610478565b6101a86104a8565b6101a861027b3660046108ff565b6104f5565b6101b261053f565b6101a86102963660046108a1565b610548565b6101a86102a936600461094a565b6105be565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156102f757600080fd5b505afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906108e0565b905090565b6103496810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146103825760405162461bcd60e51b8152600401610379906109ef565b60405180910390fd5b61038a6106f0565b565b600060025b60035460ff1660028111156103b657634e487b7160e01b600052602160045260246000fd5b14905090565b6103c461072d565b50565b6103dc6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461040c5760405162461bcd60e51b8152600401610379906109ef565b61038a565b6104266810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104565760405162461bcd60e51b8152600401610379906109ef565b61038a610787565b61046661072d565b61038a60006107b1565b600080610391565b6040805182151560208201526000910160405160208183030381529060405290506104a38382610801565b505050565b6104bd6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104ed5760405162461bcd60e51b8152600401610379906109ef565b61038a610861565b61050a6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461053a5760405162461bcd60e51b8152600401610379906109ef565b600255565b60006001610391565b61055061072d565b6001600160a01b0381166105b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610379565b6103c4816107b1565b6105cf64517565727960d81b610668565b6001600160a01b0316336001600160a01b03161461062f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e49454400000000006044820152606401610379565b60008061063e83850185610917565b9150915080156106615760006106538361088b565b905061065f8682610478565b505b5050505050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea91906108c4565b92915050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b2361071a60025490565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461038a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610379565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e661071a60025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a906108339085908590600401610a26565b600060405180830381600087803b15801561084d57600080fd5b505af115801561065f573d6000803e3d6000fd5b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d61071a60025490565b6000610898600283610a81565b60011492915050565b6000602082840312156108b2578081fd5b81356108bd81610ab7565b9392505050565b6000602082840312156108d5578081fd5b81516108bd81610ab7565b6000602082840312156108f1578081fd5b8151600781106108bd578182fd5b600060208284031215610910578081fd5b5035919050565b60008060408385031215610929578081fd5b823591506020830135801515811461093f578182fd5b809150509250929050565b60008060006040848603121561095e578081fd5b83359250602084013567ffffffffffffffff8082111561097c578283fd5b818601915086601f83011261098f578283fd5b81358181111561099d578384fd5b8760208285010111156109ae578384fd5b6020830194508093505050509250925092565b60208101600783106109d5576109d5610aa1565b91905290565b60208101600383106109d5576109d5610aa1565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260206040818401528351806040850152825b81811015610a5957858101830151858201606001528201610a3d565b81811115610a6a5783606083870101525b50601f01601f191692909201606001949350505050565b600082610a9c57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146103c457600080fdfea26469706673582212207cdbbd98d4220fcfcf29de531380c5e9d77ba0bb75aa63d715c0b748d14b43e964736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063be169e7e1161007c578063be169e7e146101d5578063d0e0ba951461026d578063d73cd992146101d5578063e0815f0d14610280578063f2fde38b14610288578063ffc790651461029b57610158565b80638da5cb5b146102395780639a82f8901461024a578063a18f5ae2146101d5578063a9c577c514610252578063b3fca9bd146101d5578063bd1fe5d01461026557610158565b806359dacc6a1161011557806359dacc6a146101d55780635ab1bd53146101dd5780635d1ca6311461020c578063638ce0ba14610214578063715018a61461021c578063893d20e81461022457610158565b806315dae03e1461015d57806317d7de7c146101795780631865c57d1461018b5780631b867c63146101a0578063258d560c146101aa57806340e58ee5146101c2575b600080fd5b60035460ff1660405161017091906109db565b60405180910390f35b6001545b604051908152602001610170565b6101936102ae565b60405161017091906109c1565b6101a8610334565b005b6101b261038c565b6040519015158152602001610170565b6101a86101d03660046108ff565b6103bc565b6101a86103c7565b6101f460035461010090046001600160a01b031690565b6040516001600160a01b039091168152602001610170565b60025461017d565b6101a8610411565b6101a861045e565b6101f4600080546001600160a01b031661032f565b6000546001600160a01b03166101f4565b6101b2610470565b6101a8610260366004610917565b610478565b6101a86104a8565b6101a861027b3660046108ff565b6104f5565b6101b261053f565b6101a86102963660046108a1565b610548565b6101a86102a936600461094a565b6105be565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b1580156102f757600080fd5b505afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f91906108e0565b905090565b6103496810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146103825760405162461bcd60e51b8152600401610379906109ef565b60405180910390fd5b61038a6106f0565b565b600060025b60035460ff1660028111156103b657634e487b7160e01b600052602160045260246000fd5b14905090565b6103c461072d565b50565b6103dc6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461040c5760405162461bcd60e51b8152600401610379906109ef565b61038a565b6104266810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104565760405162461bcd60e51b8152600401610379906109ef565b61038a610787565b61046661072d565b61038a60006107b1565b600080610391565b6040805182151560208201526000910160405160208183030381529060405290506104a38382610801565b505050565b6104bd6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b0316146104ed5760405162461bcd60e51b8152600401610379906109ef565b61038a610861565b61050a6810dbdb5c1bdb995b9d60ba1b610668565b6001600160a01b0316336001600160a01b03161461053a5760405162461bcd60e51b8152600401610379906109ef565b600255565b60006001610391565b61055061072d565b6001600160a01b0381166105b55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610379565b6103c4816107b1565b6105cf64517565727960d81b610668565b6001600160a01b0316336001600160a01b03161461062f5760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a4f52412d3030313a4143434553535f44454e49454400000000006044820152606401610379565b60008061063e83850185610917565b9150915080156106615760006106538361088b565b905061065f8682610478565b505b5050505050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156106b257600080fd5b505afa1580156106c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ea91906108c4565b92915050565b7f33a6ec8d94d03f2c0a2da3411552b0777613e4220abd6ce5679decb30af09b2361071a60025490565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461038a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610379565b7fdb7e2f5405ea10cad5583ce31a1bde125ff32946edb3ce5972d70ea3f2c214e661071a60025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600754604051637204a9a560e11b81526001600160a01b039091169063e409534a906108339085908590600401610a26565b600060405180830381600087803b15801561084d57600080fd5b505af115801561065f573d6000803e3d6000fd5b7f1855fcce92cb172c06fd991f1b19774237130b37cf6806bc01aa4e3a0c359e2d61071a60025490565b6000610898600283610a81565b60011492915050565b6000602082840312156108b2578081fd5b81356108bd81610ab7565b9392505050565b6000602082840312156108d5578081fd5b81516108bd81610ab7565b6000602082840312156108f1578081fd5b8151600781106108bd578182fd5b600060208284031215610910578081fd5b5035919050565b60008060408385031215610929578081fd5b823591506020830135801515811461093f578182fd5b809150509250929050565b60008060006040848603121561095e578081fd5b83359250602084013567ffffffffffffffff8082111561097c578283fd5b818601915086601f83011261098f578283fd5b81358181111561099d578384fd5b8760208285010111156109ae578384fd5b6020830194508093505050509250925092565b60208101600783106109d5576109d5610aa1565b91905290565b60208101600383106109d5576109d5610aa1565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b600083825260206040818401528351806040850152825b81811015610a5957858101830151858201606001528201610a3d565b81811115610a6a5783606083870101525b50601f01601f191692909201606001949350505050565b600082610a9c57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052602160045260246000fd5b6001600160a01b03811681146103c457600080fdfea26469706673582212207cdbbd98d4220fcfcf29de531380c5e9d77ba0bb75aa63d715c0b748d14b43e964736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json b/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/test/TestProduct.sol/TestProduct.json b/artifacts/contracts/test/TestProduct.sol/TestProduct.json deleted file mode 100644 index ae16c77a..00000000 --- a/artifacts/contracts/test/TestProduct.sol/TestProduct.json +++ /dev/null @@ -1,1246 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TestProduct", - "sourceName": "contracts/test/TestProduct.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "productName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "tokenAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "capitalOwner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "oracleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "productAddress", - "type": "address" - } - ], - "name": "LogProductCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "componentId", - "type": "uint256" - } - ], - "name": "LogProductProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "name": "LogTestOracleCallbackReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogTestProductFundingReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "ORACLE_CALLBACK_METHOD_NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "POLICY_FLOW", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "expectedPremiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - } - ], - "name": "adjustPremiumSumInsured", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "applications", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address payable", - "name": "policyHolder", - "type": "address" - }, - { - "internalType": "uint256", - "name": "premium", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsured", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "metaData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "applicationData", - "type": "bytes" - } - ], - "name": "applyForPolicy", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "premium", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsured", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "metaData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "applicationData", - "type": "bytes" - } - ], - "name": "applyForPolicy", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "claims", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - } - ], - "name": "close", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "closeClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - } - ], - "name": "collectPremium", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPremium", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "collectPremium", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "netPremium", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "confirmedAmount", - "type": "uint256" - } - ], - "name": "confirmClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutAmount", - "type": "uint256" - } - ], - "name": "createPayout", - "outputs": [ - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "decline", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "name": "declineClaim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - } - ], - "name": "expire", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getApplicationDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getClaimDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - } - ], - "name": "getClaimId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPayoutDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "dataStructure", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - } - ], - "name": "getPayoutId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getPolicyFlow", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRiskpoolId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getToken", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "premium", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsured", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "metaData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "applicationData", - "type": "bytes" - } - ], - "name": "newAppliation", - "outputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "payoutAmount", - "type": "uint256" - } - ], - "name": "newPayout", - "outputs": [ - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "responseData", - "type": "bytes" - } - ], - "name": "oracleCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "policies", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "payoutId", - "type": "uint256" - } - ], - "name": "processPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "revoke", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "name": "riskPoolCapacityCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - } - ], - "name": "submitClaim", - "outputs": [ - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - } - ], - "name": "submitClaimNoOracle", - "outputs": [ - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "policyId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "claimAmount", - "type": "uint256" - } - ], - "name": "submitClaimWithDeferredResponse", - "outputs": [ - { - "internalType": "uint256", - "name": "claimId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "requestId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "underwrite", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162002eff38038062002eff8339810160408190526200003491620004f5565b858570506f6c69637944656661756c74466c6f7760781b8484846001826200005c3362000379565b6001600160a01b038116620000c45760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000ee620003c9565b600480546001600160a01b0319166001600160a01b039290921691909117905562000118620003e4565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014262000411565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019557634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001e992909160ff82169130916101009091046001600160a01b0316906200055a565b60405180910390a15050600880546001600160a01b0319166001600160a01b0387161790555060098290556200021f836200042b565b600780546001600160a01b0319166001600160a01b03929092169190911790556200025b6d50726f647563745365727669636560901b6200042b565b600a80546001600160a01b0319166001600160a01b0392909216919091179055620002986e496e7374616e63655365727669636560881b6200042b565b600b80546001600160a01b0319166001600160a01b03929092169190911790556040513081527fced180b842b890d77dab95dcbf4654065589a164226ef9faa91a7601fb67c4679060200160405180910390a150505050506001600160a01b038516620003485760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a54492d323a544f4b454e5f414444524553535f5a45524f0000006044820152606401620000bb565b50600c80546001600160a01b0319166001600160a01b039490941693909317909255600d55600e5550620005a59050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620003df6541636365737360d01b6200042b565b905090565b6000620003df7f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200042b565b6000620003df6e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200047657600080fd5b505afa1580156200048b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b19190620004d1565b90505b919050565b80516001600160a01b0381168114620004b457600080fd5b600060208284031215620004e3578081fd5b620004ee82620004b9565b9392505050565b60008060008060008060c087890312156200050e578182fd5b865195506200052060208801620004b9565b94506200053060408801620004b9565b935060608701519250608087015191506200054e60a08801620004b9565b90509295509295509295565b84815260808101600385106200058057634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b61294a80620005b56000396000f3fe60806040526004361061036b5760003560e01c806370d2fe53116101c6578063b9ea8d66116100f7578063e0815f0d11610095578063ec8b4a9a1161006f578063ec8b4a9a146108f7578063f2fde38b1461092c578063f4fdc1fa1461094c578063fe64372b1461096a5761036b565b8063e0815f0d146108af578063e3ebdea5146108c4578063e6f95edd146108e45761036b565b8063c6441798116100d1578063c64417981461085a578063d0e0ba951461087a578063d73cd9921461061e578063dcc59b6f1461089a5761036b565b8063b9ea8d6614610808578063bd1fe5d014610845578063be169e7e1461061e5761036b565b80638da5cb5b11610164578063a18f5ae21161013e578063a18f5ae21461061e578063ab72c4e1146107bb578063b3fca9bd1461061e578063b75c7dc6146107e85761036b565b80638da5cb5b1461078857806394f64ff41461058a5780639a82f890146107a65761036b565b80637ce5e82f116101a05780637ce5e82f1461071e5780637f29dba214610733578063893d20e8146107535780638cc7d3d1146107685761036b565b806370d2fe53146106d4578063715018a6146106e957806379ed5209146106fe5761036b565b806339c79e0c116102a057806359dacc6a1161023e5780635e61aa63116102185780635e61aa631461066c578063637d08f41461068c578063638ce0ba146106aa578063702e7e1f146106bf5761036b565b806359dacc6a1461061e5780635ab1bd53146106335780635d1ca631146106575761036b565b80633ec92bda1161027a5780633ec92bda1461058a5780634703dc8d146105be5780634cda0de9146105de5780634e02c63f146105fe5761036b565b806339c79e0c1461056a57806339cf5e161461058a5780633dcabeab146105ab5761036b565b806321df0da71161030d57806329abdbd7116102e757806329abdbd7146104ea5780632b1994ba1461050a5780632b6778411461052a57806330a73da51461054a5761036b565b806321df0da71461044c578063232d346a1461047e578063258d560c146104c55761036b565b806317d7de7c1161034957806317d7de7c146103de5780631865c57d146103f35780631b07b17f146104155780631b867c63146104375761036b565b806303f0ac1a1461037057806309128d831461039657806315dae03e146103be575b600080fd5b61038361037e366004612594565b61098a565b6040519081526020015b60405180910390f35b3480156103a257600080fd5b5061038370506f6c69637944656661756c74466c6f7760781b81565b3480156103ca57600080fd5b5060035460ff1660405161038d9190612732565b3480156103ea57600080fd5b50600154610383565b3480156103ff57600080fd5b50610408610a47565b60405161038d9190612718565b34801561042157600080fd5b506104356104303660046122d7565b610acd565b005b34801561044357600080fd5b50610435610b22565b34801561045857600080fd5b506008546001600160a01b03165b6040516001600160a01b03909116815260200161038d565b34801561048a57600080fd5b506104b86040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b81525081565b60405161038d9190612746565b3480156104d157600080fd5b506104da610b7a565b604051901515815260200161038d565b3480156104f657600080fd5b506103836105053660046122d7565b610baa565b34801561051657600080fd5b50610383610525366004612328565b610bbf565b34801561053657600080fd5b50610383610545366004612307565b610bfc565b34801561055657600080fd5b50610435610565366004612328565b610d56565b34801561057657600080fd5b506104356105853660046122d7565b610d66565b34801561059657600080fd5b506040805160208101909152600081526104b8565b6103836105b93660046121d6565b610d77565b3480156105ca57600080fd5b506103836105d9366004612328565b610e79565b3480156105ea57600080fd5b506104356105f9366004612307565b610eb3565b34801561060a57600080fd5b50610435610619366004612328565b610ec5565b34801561062a57600080fd5b50610435610ed8565b34801561063f57600080fd5b5061046660035461010090046001600160a01b031690565b34801561066357600080fd5b50600254610383565b34801561067857600080fd5b50610435610687366004612520565b610f22565b34801561069857600080fd5b506007546001600160a01b0316610466565b3480156106b657600080fd5b50610435611086565b3480156106cb57600080fd5b50601054610383565b3480156106e057600080fd5b50600954610383565b3480156106f557600080fd5b506104356110d3565b34801561070a57600080fd5b50610383610719366004612307565b6110e5565b34801561072a57600080fd5b50600f54610383565b34801561073f57600080fd5b5061043561074e366004612307565b6111df565b34801561075f57600080fd5b506104666111f1565b34801561077457600080fd5b506104356107833660046122d7565b611203565b34801561079457600080fd5b506000546001600160a01b0316610466565b3480156107b257600080fd5b506104da611214565b3480156107c757600080fd5b506103836107d63660046122d7565b60009081526012602052604090205490565b3480156107f457600080fd5b506104356108033660046122d7565b61121c565b34801561081457600080fd5b506108286108233660046122d7565b6112d5565b60408051931515845260208401929092529082015260600161038d565b34801561085157600080fd5b506104356112f8565b34801561086657600080fd5b506104356108753660046122d7565b611345565b34801561088657600080fd5b506104356108953660046122d7565b611356565b3480156108a657600080fd5b50601154610383565b3480156108bb57600080fd5b506104da6113a0565b3480156108d057600080fd5b506108286108df366004612307565b6113a9565b6103836108f2366004612594565b6113ce565b34801561090357600080fd5b50610917610912366004612307565b6114d4565b6040805192835260208301919091520161038d565b34801561093857600080fd5b5061043561094736600461219e565b611634565b34801561095857600080fd5b506104356109673660046122d7565b50565b34801561097657600080fd5b50610435610985366004612307565b6116aa565b600080339050610a0681898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f80546001810182556000919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020181905598975050505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190612353565b905090565b610ad5611757565b6000610ae0826117b1565b90508015610b1e57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b5050565b610b376810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610b705760405162461bcd60e51b8152600401610b6790612759565b60405180910390fd5b610b786118b8565b565b600060025b60035460ff166002811115610ba457634e487b7160e01b600052602160045260246000fd5b14905090565b6000818152601360205260409020545b919050565b6000610bc9611757565b6040805160006020820152610bf491869186918691015b6040516020818303038152906040526118f5565b949350505050565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c81919081019061241d565b519050336001600160a01b03821614610cac5760405162461bcd60e51b8152600401610b6790612790565b60118054906000610cbc83612887565b9190505550610cdb858560405180602001604052806000815250611987565b600086815260126020908152604080832084905560115481519283015260019082018190529295506060016040516020818303038152906040529050610d4b87826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b505050505092915050565b610d61838383611a47565b505050565b610d6e611757565b61096781611ab9565b6000610def88888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a91508990819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80201829055909150610e2f826117b1565b90508015610e6d57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b50979650505050505050565b6000610e83611757565b6040805160006020820152610e9e9186918691869101610be0565b9050610eaa8482611b1b565b50509392505050565b610ebb611757565b610b1e8282611baf565b610ecd611757565b610d61838383611c11565b610eed6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610f1d5760405162461bcd60e51b8152600401610b6790612759565b610b78565b610f3364517565727960d81b611836565b6001600160a01b0316336001600160a01b031614610f935760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610b67565b7f76f1662da8419575225dd3addaf14184129f5230097a533de445a2d5688a399e84848484604051610fc894939291906127d6565b60405180910390a16000610fde82840184612269565b600085815260126020526040902054909150811561107457610fff85611c50565b50600061100c8683611d0a565b602081015190915061101f878483611c11565b604080516000602080830182905283518084039091018152918301909252829161104b8a8785856118f5565b60008b815260136020526040902081905590506110688a82611b1b565b5050505050505061107e565b61107e8582611baf565b505050505050565b61109b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b0316146110cb5760405162461bcd60e51b8152600401610b6790612759565b610b78611dd2565b6110db611757565b610b786000611dfc565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116a919081019061241d565b519050336001600160a01b038216146111955760405162461bcd60e51b8152600401610b6790612790565b601180549060006111a583612887565b91905055506111c4858560405180602001604052806000815250611987565b60009586526012602052604090952085905550929392505050565b6111e7611757565b610b1e8282611e4c565b600080546001600160a01b0316610ac8565b61120b611757565b61096781611e84565b600080610b7f565b600b5460405163296586d360e21b81526004810183905282916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561126557600080fd5b505afa158015611279573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112a1919081019061241d565b519050336001600160a01b038216146112cc5760405162461bcd60e51b8152600401610b6790612790565b610d6183611eb5565b60008060006112e2611757565b6112eb84611ee6565b9196909550909350915050565b61130d6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461133d5760405162461bcd60e51b8152600401610b6790612759565b610b78611f34565b61134d611757565b61096781611f5e565b61136b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461139b5760405162461bcd60e51b8152600401610b6790612759565b600255565b60006001610b7f565b60008060006113b6611757565b6113c08585611f8f565b919790965090945092505050565b60008033905061144a81898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020182905590925061148a836117b1565b905080156114c857601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018390555b50509695505050505050565b600b5460405163296586d360e21b8152600481018490526000918291859183916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561152157600080fd5b505afa158015611535573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261155d919081019061241d565b519050336001600160a01b038216146115885760405162461bcd60e51b8152600401610b6790612790565b6011805490600061159883612887565b91905055506115b7868660405180602001604052806000815250611987565b60008781526012602090815260408083208490556011548151928301528101829052919550908190606001604051602081830303815290604052905061162788826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b9450505050509250929050565b61163c611757565b6001600160a01b0381166116a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b67565b61096781611dfc565b6116b2611757565b6116bc8282611b1b565b50505050565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a906116fb9089908990899089908990600401612640565b602060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d91906122ef565b9695505050505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b67565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156117f857600080fd5b505af115801561180c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118309190612285565b92915050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561188057600080fd5b505afa158015611894573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183091906121ba565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616118e260025490565b60405190815260200160405180910390a1565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d78469061192c9088908890889088906004016126f3565b602060405180830381600087803b15801561194657600080fd5b505af115801561195a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197e91906122ef565b95945050505050565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d15906119bc908790879087906004016126d4565b602060405180830381600087803b1580156119d657600080fd5b505af11580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf491906122ef565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f229061192c908890889088903090899060040161268b565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064015b600060405180830381600087803b158015611a9c57600080fd5b505af1158015611ab0573d6000803e3d6000fd5b50505050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c906024015b600060405180830381600087803b158015611b0057600080fd5b505af1158015611b14573d6000803e3d6000fd5b5050505050565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b158015611b6c57600080fd5b505af1158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190612571565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b158015611bfd57600080fd5b505af115801561107e573d6000803e3d6000fd5b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f90606401611a82565b611c8a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118309190810190612372565b611d446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051637f22c2d960e01b815260048101859052602481018490526001600160a01b0390911690637f22c2d99060440160006040518083038186803b158015611d8f57600080fd5b505afa158015611da3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dcb9190810190612372565b9392505050565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96118e260025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba290604401611be3565b600a54604051638cc7d3d160e01b8152600481018390526001600160a01b0390911690638cc7d3d190602401611ae6565b600a54604051635bae3ee360e11b8152600481018390526001600160a01b039091169063b75c7dc690602401611ae6565b600080600080611ef585612019565b9050806020015181604001511015611f2c57611f248582604001518360200151611f1f9190612844565b611f8f565b919550935091505b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556118e260025490565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c644179890602401611ae6565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b158015611fe157600080fd5b505af1158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c091906122a1565b612069604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b1580156120ae57600080fd5b505afa1580156120c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611830919061249b565b60008083601f8401126120f7578182fd5b50813567ffffffffffffffff81111561210e578182fd5b60208301915083602082850101111561212657600080fd5b9250929050565b600082601f83011261213d578081fd5b815167ffffffffffffffff811115612157576121576128ce565b61216a601f8201601f1916602001612813565b81815284602083860101111561217e578283fd5b610bf482602083016020870161285b565b805160038110610bba57600080fd5b6000602082840312156121af578081fd5b8135611dcb816128e4565b6000602082840312156121cb578081fd5b8151611dcb816128e4565b600080600080600080600060a0888a0312156121f0578283fd5b87356121fb816128e4565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612225578485fd5b6122318b838c016120e6565b909650945060808a0135915080821115612249578384fd5b506122568a828b016120e6565b989b979a50959850939692959293505050565b60006020828403121561227a578081fd5b8135611dcb816128f9565b600060208284031215612296578081fd5b8151611dcb816128f9565b6000806000606084860312156122b5578081fd5b83516122c0816128f9565b602085015160409095015190969495509392505050565b6000602082840312156122e8578081fd5b5035919050565b600060208284031215612300578081fd5b5051919050565b60008060408385031215612319578182fd5b50508035926020909101359150565b60008060006060848603121561233c578081fd5b505081359360208301359350604090920135919050565b600060208284031215612364578081fd5b815160078110611dcb578182fd5b600060208284031215612383578081fd5b815167ffffffffffffffff8082111561239a578283fd5b9083019060c082860312156123ad578283fd5b6123b760c0612813565b82516123c281612907565b8082525060208301516020820152604083015160408201526060830151828111156123eb578485fd5b6123f78782860161212d565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561242e578081fd5b815167ffffffffffffffff80821115612445578283fd5b9083019060c08286031215612458578283fd5b61246260c0612813565b825161246d816128e4565b8152602083810151908201526124856040840161218f565b60408201526060830151828111156123eb578485fd5b60006101208083850312156124ae578182fd5b6124b781612813565b90506124c28361218f565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215612535578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612559578283fd5b612565878288016120e6565b95989497509550505050565b60008060408385031215612583578182fd5b505080516020909101519092909150565b600080600080600080608087890312156125ac578384fd5b8635955060208701359450604087013567ffffffffffffffff808211156125d1578586fd5b6125dd8a838b016120e6565b909650945060608901359150808211156125f5578384fd5b5061260289828a016120e6565b979a9699509497509295939492505050565b6000815180845261262c81602086016020860161285b565b601f01601f19169290920160200192915050565b600060018060a01b038716825285602083015284604083015260a0606083015261266d60a0830185612614565b828103608084015261267f8185612614565b98975050505050505050565b600086825260a060208301526126a460a0830187612614565b82810360408401526126b68187612614565b6001600160a01b039590951660608401525050608001529392505050565b60008482528360208301526060604083015261197e6060830184612614565b60008582528460208301528360408301526080606083015261174d6080830184612614565b602081016007831061272c5761272c6128b8565b91905290565b602081016003831061272c5761272c6128b8565b600060208252611dcb6020830184612614565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60208082526026908201527f4552524f523a5052442d3030313a504f4c4943595f4f525f484f4c4445525f4960408201526513959053125160d21b606082015260800190565b60008582528460208301526060604083015282606083015282846080840137818301608090810191909152601f909201601f191601019392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561283c5761283c6128ce565b604052919050565b600082821015612856576128566128a2565b500390565b60005b8381101561287657818101518382015260200161285e565b838111156116bc5750506000910152565b600060001982141561289b5761289b6128a2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096757600080fd5b801515811461096757600080fd5b6004811061096757600080fdfea2646970667358221220c8724aa3eebe95b1d2b318ce70a883306561edfcdce90d9ce1e8ee50df556e2864736f6c63430008020033", - "deployedBytecode": "0x60806040526004361061036b5760003560e01c806370d2fe53116101c6578063b9ea8d66116100f7578063e0815f0d11610095578063ec8b4a9a1161006f578063ec8b4a9a146108f7578063f2fde38b1461092c578063f4fdc1fa1461094c578063fe64372b1461096a5761036b565b8063e0815f0d146108af578063e3ebdea5146108c4578063e6f95edd146108e45761036b565b8063c6441798116100d1578063c64417981461085a578063d0e0ba951461087a578063d73cd9921461061e578063dcc59b6f1461089a5761036b565b8063b9ea8d6614610808578063bd1fe5d014610845578063be169e7e1461061e5761036b565b80638da5cb5b11610164578063a18f5ae21161013e578063a18f5ae21461061e578063ab72c4e1146107bb578063b3fca9bd1461061e578063b75c7dc6146107e85761036b565b80638da5cb5b1461078857806394f64ff41461058a5780639a82f890146107a65761036b565b80637ce5e82f116101a05780637ce5e82f1461071e5780637f29dba214610733578063893d20e8146107535780638cc7d3d1146107685761036b565b806370d2fe53146106d4578063715018a6146106e957806379ed5209146106fe5761036b565b806339c79e0c116102a057806359dacc6a1161023e5780635e61aa63116102185780635e61aa631461066c578063637d08f41461068c578063638ce0ba146106aa578063702e7e1f146106bf5761036b565b806359dacc6a1461061e5780635ab1bd53146106335780635d1ca631146106575761036b565b80633ec92bda1161027a5780633ec92bda1461058a5780634703dc8d146105be5780634cda0de9146105de5780634e02c63f146105fe5761036b565b806339c79e0c1461056a57806339cf5e161461058a5780633dcabeab146105ab5761036b565b806321df0da71161030d57806329abdbd7116102e757806329abdbd7146104ea5780632b1994ba1461050a5780632b6778411461052a57806330a73da51461054a5761036b565b806321df0da71461044c578063232d346a1461047e578063258d560c146104c55761036b565b806317d7de7c1161034957806317d7de7c146103de5780631865c57d146103f35780631b07b17f146104155780631b867c63146104375761036b565b806303f0ac1a1461037057806309128d831461039657806315dae03e146103be575b600080fd5b61038361037e366004612594565b61098a565b6040519081526020015b60405180910390f35b3480156103a257600080fd5b5061038370506f6c69637944656661756c74466c6f7760781b81565b3480156103ca57600080fd5b5060035460ff1660405161038d9190612732565b3480156103ea57600080fd5b50600154610383565b3480156103ff57600080fd5b50610408610a47565b60405161038d9190612718565b34801561042157600080fd5b506104356104303660046122d7565b610acd565b005b34801561044357600080fd5b50610435610b22565b34801561045857600080fd5b506008546001600160a01b03165b6040516001600160a01b03909116815260200161038d565b34801561048a57600080fd5b506104b86040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b81525081565b60405161038d9190612746565b3480156104d157600080fd5b506104da610b7a565b604051901515815260200161038d565b3480156104f657600080fd5b506103836105053660046122d7565b610baa565b34801561051657600080fd5b50610383610525366004612328565b610bbf565b34801561053657600080fd5b50610383610545366004612307565b610bfc565b34801561055657600080fd5b50610435610565366004612328565b610d56565b34801561057657600080fd5b506104356105853660046122d7565b610d66565b34801561059657600080fd5b506040805160208101909152600081526104b8565b6103836105b93660046121d6565b610d77565b3480156105ca57600080fd5b506103836105d9366004612328565b610e79565b3480156105ea57600080fd5b506104356105f9366004612307565b610eb3565b34801561060a57600080fd5b50610435610619366004612328565b610ec5565b34801561062a57600080fd5b50610435610ed8565b34801561063f57600080fd5b5061046660035461010090046001600160a01b031690565b34801561066357600080fd5b50600254610383565b34801561067857600080fd5b50610435610687366004612520565b610f22565b34801561069857600080fd5b506007546001600160a01b0316610466565b3480156106b657600080fd5b50610435611086565b3480156106cb57600080fd5b50601054610383565b3480156106e057600080fd5b50600954610383565b3480156106f557600080fd5b506104356110d3565b34801561070a57600080fd5b50610383610719366004612307565b6110e5565b34801561072a57600080fd5b50600f54610383565b34801561073f57600080fd5b5061043561074e366004612307565b6111df565b34801561075f57600080fd5b506104666111f1565b34801561077457600080fd5b506104356107833660046122d7565b611203565b34801561079457600080fd5b506000546001600160a01b0316610466565b3480156107b257600080fd5b506104da611214565b3480156107c757600080fd5b506103836107d63660046122d7565b60009081526012602052604090205490565b3480156107f457600080fd5b506104356108033660046122d7565b61121c565b34801561081457600080fd5b506108286108233660046122d7565b6112d5565b60408051931515845260208401929092529082015260600161038d565b34801561085157600080fd5b506104356112f8565b34801561086657600080fd5b506104356108753660046122d7565b611345565b34801561088657600080fd5b506104356108953660046122d7565b611356565b3480156108a657600080fd5b50601154610383565b3480156108bb57600080fd5b506104da6113a0565b3480156108d057600080fd5b506108286108df366004612307565b6113a9565b6103836108f2366004612594565b6113ce565b34801561090357600080fd5b50610917610912366004612307565b6114d4565b6040805192835260208301919091520161038d565b34801561093857600080fd5b5061043561094736600461219e565b611634565b34801561095857600080fd5b506104356109673660046122d7565b50565b34801561097657600080fd5b50610435610985366004612307565b6116aa565b600080339050610a0681898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f80546001810182556000919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020181905598975050505050505050565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b158015610a9057600080fd5b505afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190612353565b905090565b610ad5611757565b6000610ae0826117b1565b90508015610b1e57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b5050565b610b376810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610b705760405162461bcd60e51b8152600401610b6790612759565b60405180910390fd5b610b786118b8565b565b600060025b60035460ff166002811115610ba457634e487b7160e01b600052602160045260246000fd5b14905090565b6000818152601360205260409020545b919050565b6000610bc9611757565b6040805160006020820152610bf491869186918691015b6040516020818303038152906040526118f5565b949350505050565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c81919081019061241d565b519050336001600160a01b03821614610cac5760405162461bcd60e51b8152600401610b6790612790565b60118054906000610cbc83612887565b9190505550610cdb858560405180602001604052806000815250611987565b600086815260126020908152604080832084905560115481519283015260019082018190529295506060016040516020818303038152906040529050610d4b87826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b505050505092915050565b610d61838383611a47565b505050565b610d6e611757565b61096781611ab9565b6000610def88888888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8c018190048102820181019092528a815292508a91508990819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80201829055909150610e2f826117b1565b90508015610e6d57601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018290555b50979650505050505050565b6000610e83611757565b6040805160006020820152610e9e9186918691869101610be0565b9050610eaa8482611b1b565b50509392505050565b610ebb611757565b610b1e8282611baf565b610ecd611757565b610d61838383611c11565b610eed6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b031614610f1d5760405162461bcd60e51b8152600401610b6790612759565b610b78565b610f3364517565727960d81b611836565b6001600160a01b0316336001600160a01b031614610f935760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5052442d3030333a4143434553535f44454e49454400000000006044820152606401610b67565b7f76f1662da8419575225dd3addaf14184129f5230097a533de445a2d5688a399e84848484604051610fc894939291906127d6565b60405180910390a16000610fde82840184612269565b600085815260126020526040902054909150811561107457610fff85611c50565b50600061100c8683611d0a565b602081015190915061101f878483611c11565b604080516000602080830182905283518084039091018152918301909252829161104b8a8785856118f5565b60008b815260136020526040902081905590506110688a82611b1b565b5050505050505061107e565b61107e8582611baf565b505050505050565b61109b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b0316146110cb5760405162461bcd60e51b8152600401610b6790612759565b610b78611dd2565b6110db611757565b610b786000611dfc565b600b5460405163296586d360e21b815260048101849052600091849183916001600160a01b03169063a5961b4c9060240160006040518083038186803b15801561112e57600080fd5b505afa158015611142573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261116a919081019061241d565b519050336001600160a01b038216146111955760405162461bcd60e51b8152600401610b6790612790565b601180549060006111a583612887565b91905055506111c4858560405180602001604052806000815250611987565b60009586526012602052604090952085905550929392505050565b6111e7611757565b610b1e8282611e4c565b600080546001600160a01b0316610ac8565b61120b611757565b61096781611e84565b600080610b7f565b600b5460405163296586d360e21b81526004810183905282916000916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561126557600080fd5b505afa158015611279573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112a1919081019061241d565b519050336001600160a01b038216146112cc5760405162461bcd60e51b8152600401610b6790612790565b610d6183611eb5565b60008060006112e2611757565b6112eb84611ee6565b9196909550909350915050565b61130d6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461133d5760405162461bcd60e51b8152600401610b6790612759565b610b78611f34565b61134d611757565b61096781611f5e565b61136b6810dbdb5c1bdb995b9d60ba1b611836565b6001600160a01b0316336001600160a01b03161461139b5760405162461bcd60e51b8152600401610b6790612759565b600255565b60006001610b7f565b60008060006113b6611757565b6113c08585611f8f565b919790965090945092505050565b60008033905061144a81898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152506116c292505050565b600f805460018101825560009182527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020182905590925061148a836117b1565b905080156114c857601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672018390555b50509695505050505050565b600b5460405163296586d360e21b8152600481018490526000918291859183916001600160a01b039091169063a5961b4c9060240160006040518083038186803b15801561152157600080fd5b505afa158015611535573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261155d919081019061241d565b519050336001600160a01b038216146115885760405162461bcd60e51b8152600401610b6790612790565b6011805490600061159883612887565b91905055506115b7868660405180602001604052806000815250611987565b60008781526012602090815260408083208490556011548151928301528101829052919550908190606001604051602081830303815290604052905061162788826040518060400160405280600e81526020016d6f7261636c6543616c6c6261636b60901b815250600d54611a0e565b9450505050509250929050565b61163c611757565b6001600160a01b0381166116a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b67565b61096781611dfc565b6116b2611757565b6116bc8282611b1b565b50505050565b600a546040516349dc20a560e11b81526000916001600160a01b0316906393b8414a906116fb9089908990899089908990600401612640565b602060405180830381600087803b15801561171557600080fd5b505af1158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d91906122ef565b9695505050505050565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b67565b600a54604051631b07b17f60e01b8152600481018390526000916001600160a01b031690631b07b17f90602401602060405180830381600087803b1580156117f857600080fd5b505af115801561180c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118309190612285565b92915050565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561188057600080fd5b505afa158015611894573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183091906121ba565b7fb79d34516b55d664b61192aa41fbc0625b132fb7129bd3b3a31f46d1befa70616118e260025490565b60405190815260200160405180910390a1565b600a54604051633c0ebc2360e11b81526000916001600160a01b03169063781d78469061192c9088908890889088906004016126f3565b602060405180830381600087803b15801561194657600080fd5b505af115801561195a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197e91906122ef565b95945050505050565b600a5460405163fae43d1560e01b81526000916001600160a01b03169063fae43d15906119bc908790879087906004016126d4565b602060405180830381600087803b1580156119d657600080fd5b505af11580156119ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf491906122ef565b600a546040516316499f9160e11b81526000916001600160a01b031690632c933f229061192c908890889088903090899060040161268b565b600a546040516330a73da560e01b81526004810185905260248101849052604481018390526001600160a01b03909116906330a73da5906064015b600060405180830381600087803b158015611a9c57600080fd5b505af1158015611ab0573d6000803e3d6000fd5b50505050505050565b600a54604051630e71e78360e21b8152600481018390526001600160a01b03909116906339c79e0c906024015b600060405180830381600087803b158015611b0057600080fd5b505af1158015611b14573d6000803e3d6000fd5b5050505050565b600a5460405163fe64372b60e01b8152600481018490526024810183905260009182916001600160a01b039091169063fe64372b906044016040805180830381600087803b158015611b6c57600080fd5b505af1158015611b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba49190612571565b909590945092505050565b600a54604051634cda0de960e01b815260048101849052602481018390526001600160a01b0390911690634cda0de9906044015b600060405180830381600087803b158015611bfd57600080fd5b505af115801561107e573d6000803e3d6000fd5b600a54604051634e02c63f60e01b81526004810185905260248101849052604481018390526001600160a01b0390911690634e02c63f90606401611a82565b611c8a6040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051632f141bd960e21b8152600481018490526001600160a01b039091169063bc506f649060240160006040518083038186803b158015611cce57600080fd5b505afa158015611ce2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118309190810190612372565b611d446040805160c08101909152806000815260200160008152602001600081526020016060815260200160008152602001600081525090565b600b54604051637f22c2d960e01b815260048101859052602481018490526001600160a01b0390911690637f22c2d99060440160006040518083038186803b158015611d8f57600080fd5b505afa158015611da3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dcb9190810190612372565b9392505050565b7fcff3b7b8b07d4d8f74bf41f05737717140d5916781b9dff86ea0b996f2fdb9f96118e260025490565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600a54604051633f94edd160e11b815260048101849052602481018390526001600160a01b0390911690637f29dba290604401611be3565b600a54604051638cc7d3d160e01b8152600481018390526001600160a01b0390911690638cc7d3d190602401611ae6565b600a54604051635bae3ee360e11b8152600481018390526001600160a01b039091169063b75c7dc690602401611ae6565b600080600080611ef585612019565b9050806020015181604001511015611f2c57611f248582604001518360200151611f1f9190612844565b611f8f565b919550935091505b509193909250565b7f38954b1d025d5a8ffcf9b42d431be2745cdcd05d32b0e5ad33ee2db025ef5b556118e260025490565b600a546040516318c882f360e31b8152600481018390526001600160a01b039091169063c644179890602401611ae6565b600a5460405163e3ebdea560e01b81526004810184905260248101839052600091829182916001600160a01b03169063e3ebdea590604401606060405180830381600087803b158015611fe157600080fd5b505af1158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c091906122a1565b612069604080516101208101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600b5460405163a3f685f960e01b8152600481018490526001600160a01b039091169063a3f685f9906024016101206040518083038186803b1580156120ae57600080fd5b505afa1580156120c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611830919061249b565b60008083601f8401126120f7578182fd5b50813567ffffffffffffffff81111561210e578182fd5b60208301915083602082850101111561212657600080fd5b9250929050565b600082601f83011261213d578081fd5b815167ffffffffffffffff811115612157576121576128ce565b61216a601f8201601f1916602001612813565b81815284602083860101111561217e578283fd5b610bf482602083016020870161285b565b805160038110610bba57600080fd5b6000602082840312156121af578081fd5b8135611dcb816128e4565b6000602082840312156121cb578081fd5b8151611dcb816128e4565b600080600080600080600060a0888a0312156121f0578283fd5b87356121fb816128e4565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612225578485fd5b6122318b838c016120e6565b909650945060808a0135915080821115612249578384fd5b506122568a828b016120e6565b989b979a50959850939692959293505050565b60006020828403121561227a578081fd5b8135611dcb816128f9565b600060208284031215612296578081fd5b8151611dcb816128f9565b6000806000606084860312156122b5578081fd5b83516122c0816128f9565b602085015160409095015190969495509392505050565b6000602082840312156122e8578081fd5b5035919050565b600060208284031215612300578081fd5b5051919050565b60008060408385031215612319578182fd5b50508035926020909101359150565b60008060006060848603121561233c578081fd5b505081359360208301359350604090920135919050565b600060208284031215612364578081fd5b815160078110611dcb578182fd5b600060208284031215612383578081fd5b815167ffffffffffffffff8082111561239a578283fd5b9083019060c082860312156123ad578283fd5b6123b760c0612813565b82516123c281612907565b8082525060208301516020820152604083015160408201526060830151828111156123eb578485fd5b6123f78782860161212d565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561242e578081fd5b815167ffffffffffffffff80821115612445578283fd5b9083019060c08286031215612458578283fd5b61246260c0612813565b825161246d816128e4565b8152602083810151908201526124856040840161218f565b60408201526060830151828111156123eb578485fd5b60006101208083850312156124ae578182fd5b6124b781612813565b90506124c28361218f565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b60008060008060608587031215612535578182fd5b8435935060208501359250604085013567ffffffffffffffff811115612559578283fd5b612565878288016120e6565b95989497509550505050565b60008060408385031215612583578182fd5b505080516020909101519092909150565b600080600080600080608087890312156125ac578384fd5b8635955060208701359450604087013567ffffffffffffffff808211156125d1578586fd5b6125dd8a838b016120e6565b909650945060608901359150808211156125f5578384fd5b5061260289828a016120e6565b979a9699509497509295939492505050565b6000815180845261262c81602086016020860161285b565b601f01601f19169290920160200192915050565b600060018060a01b038716825285602083015284604083015260a0606083015261266d60a0830185612614565b828103608084015261267f8185612614565b98975050505050505050565b600086825260a060208301526126a460a0830187612614565b82810360408401526126b68187612614565b6001600160a01b039590951660608401525050608001529392505050565b60008482528360208301526060604083015261197e6060830184612614565b60008582528460208301528360408301526080606083015261174d6080830184612614565b602081016007831061272c5761272c6128b8565b91905290565b602081016003831061272c5761272c6128b8565b600060208252611dcb6020830184612614565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b60208082526026908201527f4552524f523a5052442d3030313a504f4c4943595f4f525f484f4c4445525f4960408201526513959053125160d21b606082015260800190565b60008582528460208301526060604083015282606083015282846080840137818301608090810191909152601f909201601f191601019392505050565b604051601f8201601f1916810167ffffffffffffffff8111828210171561283c5761283c6128ce565b604052919050565b600082821015612856576128566128a2565b500390565b60005b8381101561287657818101518382015260200161285e565b838111156116bc5750506000910152565b600060001982141561289b5761289b6128a2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461096757600080fd5b801515811461096757600080fd5b6004811061096757600080fdfea2646970667358221220c8724aa3eebe95b1d2b318ce70a883306561edfcdce90d9ce1e8ee50df556e2864736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.dbg.json b/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.json b/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.json deleted file mode 100644 index 968b92b1..00000000 --- a/artifacts/contracts/test/TestRegistryCompromisedController.sol/TestRegistryCompromisedController.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TestRegistryCompromisedController", - "sourceName": "contracts/test/TestRegistryCompromisedController.sol", - "abi": [ - { - "inputs": [], - "name": "POLICY", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "QUERY", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "contracts", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "contractName", - "type": "bytes32" - } - ], - "name": "getContract", - "outputs": [ - { - "internalType": "address", - "name": "moduleAddress", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "compromisedPolicyModuleAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "originalQueryModuleAddress", - "type": "address" - } - ], - "name": "upgradeToV2", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610223806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea26469706673582212200a56ef5fcc359265f1d34843e958bb8fae6aa679c1a712a74bb7703e4ce8270864736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80632bc0d7fb1461005c5780634f6fc0b1146100eb578063dadbccee1461010d578063e16c7d981461011d578063ec56a3731461015e575b600080fd5b6100e961006a3660046101a3565b600060208190527ff51ccb208f64c7678632570548cd6ba9ff8006466ec703412c917b708a19c9e080546001600160a01b039485166001600160a01b03199182161790915564517565727960d81b9091527f4bbcc452808ec518cf1b5b4bb97d91d9d8d47960bbf45a7adab13b29ddca37538054929093169116179055565b005b6100fa64517565727960d81b81565b6040519081526020015b60405180910390f35b6100fa65506f6c69637960d01b81565b61014661012b3660046101d5565b6000908152602081905260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610104565b61014661016c3660046101d5565b6000602081905290815260409020546001600160a01b031681565b80356001600160a01b038116811461019e57600080fd5b919050565b600080604083850312156101b5578182fd5b6101be83610187565b91506101cc60208401610187565b90509250929050565b6000602082840312156101e6578081fd5b503591905056fea26469706673582212200a56ef5fcc359265f1d34843e958bb8fae6aa679c1a712a74bb7703e4ce8270864736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.dbg.json b/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.json b/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.json deleted file mode 100644 index 3fade88d..00000000 --- a/artifacts/contracts/test/TestRegistryControllerUpdated.sol/TestRegistryControllerUpdated.json +++ /dev/null @@ -1,431 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TestRegistryControllerUpdated", - "sourceName": "contracts/test/TestRegistryControllerUpdated.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "release", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "contractName", - "type": "bytes32" - } - ], - "name": "LogContractDeregistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "release", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "contractName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isNew", - "type": "bool" - } - ], - "name": "LogContractRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "release", - "type": "bytes32" - } - ], - "name": "LogReleasePrepared", - "type": "event" - }, - { - "inputs": [], - "name": "MAX_CONTRACTS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "_contracts", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "_contractsInRelease", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "contractName", - "outputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "contracts", - "outputs": [ - { - "internalType": "uint256", - "name": "_numberOfContracts", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "deregister", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "deregisterInRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "ensureSender", - "outputs": [ - { - "internalType": "bool", - "name": "_senderMatches", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "getContract", - "outputs": [ - { - "internalType": "address", - "name": "_addr", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - } - ], - "name": "getContractInRelease", - "outputs": [ - { - "internalType": "address", - "name": "_addr", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMessage", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRelease", - "outputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_initialRelease", - "type": "bytes32" - } - ], - "name": "initializeRegistry", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_newRelease", - "type": "bytes32" - } - ], - "name": "prepareRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "name": "register", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_release", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_contractName", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "_contractAddress", - "type": "address" - } - ], - "name": "registerInRelease", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "release", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_message", - "type": "string" - } - ], - "name": "setMessage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "startBlock", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_message", - "type": "string" - } - ], - "name": "upgradeToV2", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100de565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100dc576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611aad806100ed6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80636c0f79b6116100b8578063c4d66de81161007c578063c4d66de81461028f578063ce6d41de146102a2578063d22057a9146102b7578063dc527b08146102ca578063e16c7d98146102dd578063f6b3e7d0146102f057610137565b80636c0f79b61461025057806376b707b71461025857806386d1a69f14610260578063893917ea14610269578063b0ef18a01461027c57610137565b8063368b8772116100ff578063368b8772146101b557806348cd4cb1146101c85780634a941e5e146101d157806356bbc19d1461021d578063699235151461023057610137565b80631d5e73141461013c578063208131541461015157806324042a0a146101645780632b34378a1461017f5780632ca65a7914610192575b600080fd5b61014f61014a3660046117b7565b610303565b005b61014f61015f36600461174f565b6103c4565b61016c606481565b6040519081526020015b60405180910390f35b61014f61018d3660046117ef565b610479565b6101a56101a0366004611704565b6104e2565b6040519015158152602001610176565b61014f6101c33660046117ef565b61050c565b61016c60035481565b6102056101df366004611796565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61014f61022b36600461174f565b6105c9565b61016c61023e36600461174f565b60056020526000908152604090205481565b61016c61073c565b60025461016c565b61016c60025481565b61014f61027736600461174f565b61075b565b61020561028a366004611796565b610970565b61014f61029d3660046116cc565b610983565b6102aa610ab9565b60405161017691906118cd565b61014f6102c5366004611767565b610b4b565b61014f6102d8366004611796565b610c00565b6102056102eb36600461174f565b610cb0565b61016c6102fe36600461174f565b610cc4565b6000546201000090046001600160a01b0316632ca65a796103213390565b6040518263ffffffff1660e01b815260040161033d9190611899565b60206040518083038186803b15801561035557600080fd5b505afa158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d919061172f565b6103b25760405162461bcd60e51b81526004016103a99061196e565b60405180910390fd5b6103bf8360008484610cdf565b505050565b6000546201000090046001600160a01b0316632ca65a796103e23390565b6040518263ffffffff1660e01b81526004016103fe9190611899565b60206040518083038186803b15801561041657600080fd5b505afa15801561042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044e919061172f565b61046a5760405162461bcd60e51b81526004016103a99061196e565b61047660025482611099565b50565b60085460ff16156104cc5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5245432d3130323a555047524144455f4f4e43455f4f4d4c590060448201526064016103a9565b6008805460ff191660011790556104768161050c565b60006104f0600254836112bb565b6001600160a01b0316836001600160a01b031614905092915050565b6000546201000090046001600160a01b0316632ca65a7961052a3390565b6040518263ffffffff1660e01b81526004016105469190611899565b60206040518083038186803b15801561055e57600080fd5b505afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610596919061172f565b6105b25760405162461bcd60e51b81526004016103a99061196e565b80516105c5906007906020840190611633565b5050565b600054610100900460ff16158080156105e95750600054600160ff909116105b8061060a57506105f8306112e1565b15801561060a575060005460ff166001145b6106265760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610649576000805461ff0019166101001790555b6000805462010000600160b01b031916306201000002179055600282905561066e3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b0397909716969096179095559254825260069052206106d8916112f4565b506002546000908152600560205260409020600190554360035580156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b600254600090815260066020526040812061075690611300565b905090565b6000546201000090046001600160a01b0316632ca65a796107793390565b6040518263ffffffff1660e01b81526004016107959190611899565b60206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e5919061172f565b6108015760405162461bcd60e51b81526004016103a99061196e565b600254600090815260056020526040902054806108605760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c45415345000000000060448201526064016103a9565b600082815260056020526040902054156108c85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b60648201526084016103a9565b60005b8181101561093a5760025460009081526006602052604081206108ee908361130a565b600254600090815260046020908152604080832084845290915290205490915061092790859060019084906001600160a01b0316610cdf565b506109336001826119b1565b90506108cb565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b490602001610730565b600061097c83836112bb565b9392505050565b600054610100900460ff16158080156109a35750600054600160ff909116105b806109c457506109b2306112e1565b1580156109c4575060005460ff166001145b6109e05760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610a03576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610a2d600090565b6541636365737360d01b14610a6f57610a4e6541636365737360d01b611316565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610a776113fe565b80156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610730565b606060078054610ac8906119e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610af4906119e0565b8015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b5050505050905090565b6000546201000090046001600160a01b0316632ca65a79610b693390565b6040518263ffffffff1660e01b8152600401610b859190611899565b60206040518083038186803b158015610b9d57600080fd5b505afa158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd5919061172f565b610bf15760405162461bcd60e51b81526004016103a99061196e565b6105c560025460008484610cdf565b6000546201000090046001600160a01b0316632ca65a79610c1e3390565b6040518263ffffffff1660e01b8152600401610c3a9190611899565b60206040518083038186803b158015610c5257600080fd5b505afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a919061172f565b610ca65760405162461bcd60e51b81526004016103a99061196e565b6105c58282611099565b6000610cbe600254836112bb565b92915050565b6002546000908152600660205260408120610cbe908361130a565b6000848152600660205260408120606490610cf990611300565b10610d505760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b60648201526084016103a9565b600085815260056020526040902054151580610d695750835b610db55760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e00000060448201526064016103a9565b82610e0c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b60648201526084016103a9565b6000858152600660205260409020610e24908461146b565b1580610e7557508276496e7374616e63654f70657261746f725365727669636560481b148015610e75575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610ecc5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b60648201526084016103a9565b6001600160a01b038216610f2e5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b60648201526084016103a9565b60008581526004602090815260408083208684529091529020546001600160a01b0316610f92576000858152600660205260409020610f6d90846112f4565b506000858152600560205260408120805491610f8883611a1b565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610fd790611300565b600086815260056020526040902054146110425760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a796110b73390565b6040518263ffffffff1660e01b81526004016110d39190611899565b60206040518083038186803b1580156110eb57600080fd5b505afa1580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611123919061172f565b61113f5760405162461bcd60e51b81526004016103a99061196e565b6000828152600660205260409020611157908261146b565b6111a35760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e000060448201526064016103a9565b60008281526006602052604090206111bb9082611483565b5060008281526005602052604081208054600192906111db9084906119c9565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b03191690558483526006909152902061121a90611300565b600083815260056020526040902054146112855760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a1319101610730565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b600061097c838361148f565b6000610cbe825490565b600061097c83836114de565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561136057600080fd5b505afa158015611374573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139891906116e8565b90506001600160a01b0381166112ef5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166114695760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b565b6000818152600183016020526040812054151561097c565b600061097c8383611516565b60008181526001830160205260408120546114d657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cbe565b506000610cbe565b600082600001828154811061150357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054801561162957600061153a6001836119c9565b855490915060009061154e906001906119c9565b90508181146115cf57600086600001828154811061157c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106115ad57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115ee57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cbe565b6000915050610cbe565b82805461163f906119e0565b90600052602060002090601f01602090048101928261166157600085556116a7565b82601f1061167a57805160ff19168380011785556116a7565b828001600101855582156116a7579182015b828111156116a757825182559160200191906001019061168c565b506116b39291506116b7565b5090565b5b808211156116b357600081556001016116b8565b6000602082840312156116dd578081fd5b813561097c81611a62565b6000602082840312156116f9578081fd5b815161097c81611a62565b60008060408385031215611716578081fd5b823561172181611a62565b946020939093013593505050565b600060208284031215611740578081fd5b8151801515811461097c578182fd5b600060208284031215611760578081fd5b5035919050565b60008060408385031215611779578182fd5b82359150602083013561178b81611a62565b809150509250929050565b600080604083850312156117a8578182fd5b50508035926020909101359150565b6000806000606084860312156117cb578081fd5b833592506020840135915060408401356117e481611a62565b809150509250925092565b600060208284031215611800578081fd5b813567ffffffffffffffff80821115611817578283fd5b818401915084601f83011261182a578283fd5b81358181111561183c5761183c611a4c565b604051601f8201601f19908116603f0116810190838211818310171561186457611864611a4c565b8160405282815287602084870101111561187c578586fd5b826020860160208301379182016020019490945295945050505050565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6000602080835283518082850152825b818110156118f9578581018301518582016040015282016118dd565b8181111561190a5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b600082198211156119c4576119c4611a36565b500190565b6000828210156119db576119db611a36565b500390565b6002810460018216806119f457607f821691505b60208210811415611a1557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611a2f57611a2f611a36565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461047657600080fdfea26469706673582212204c7f94f441c1f862908cff0be31a75f685e50b915477a4cbe46f145ab6d61f9264736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80636c0f79b6116100b8578063c4d66de81161007c578063c4d66de81461028f578063ce6d41de146102a2578063d22057a9146102b7578063dc527b08146102ca578063e16c7d98146102dd578063f6b3e7d0146102f057610137565b80636c0f79b61461025057806376b707b71461025857806386d1a69f14610260578063893917ea14610269578063b0ef18a01461027c57610137565b8063368b8772116100ff578063368b8772146101b557806348cd4cb1146101c85780634a941e5e146101d157806356bbc19d1461021d578063699235151461023057610137565b80631d5e73141461013c578063208131541461015157806324042a0a146101645780632b34378a1461017f5780632ca65a7914610192575b600080fd5b61014f61014a3660046117b7565b610303565b005b61014f61015f36600461174f565b6103c4565b61016c606481565b6040519081526020015b60405180910390f35b61014f61018d3660046117ef565b610479565b6101a56101a0366004611704565b6104e2565b6040519015158152602001610176565b61014f6101c33660046117ef565b61050c565b61016c60035481565b6102056101df366004611796565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6040516001600160a01b039091168152602001610176565b61014f61022b36600461174f565b6105c9565b61016c61023e36600461174f565b60056020526000908152604090205481565b61016c61073c565b60025461016c565b61016c60025481565b61014f61027736600461174f565b61075b565b61020561028a366004611796565b610970565b61014f61029d3660046116cc565b610983565b6102aa610ab9565b60405161017691906118cd565b61014f6102c5366004611767565b610b4b565b61014f6102d8366004611796565b610c00565b6102056102eb36600461174f565b610cb0565b61016c6102fe36600461174f565b610cc4565b6000546201000090046001600160a01b0316632ca65a796103213390565b6040518263ffffffff1660e01b815260040161033d9190611899565b60206040518083038186803b15801561035557600080fd5b505afa158015610369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038d919061172f565b6103b25760405162461bcd60e51b81526004016103a99061196e565b60405180910390fd5b6103bf8360008484610cdf565b505050565b6000546201000090046001600160a01b0316632ca65a796103e23390565b6040518263ffffffff1660e01b81526004016103fe9190611899565b60206040518083038186803b15801561041657600080fd5b505afa15801561042a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061044e919061172f565b61046a5760405162461bcd60e51b81526004016103a99061196e565b61047660025482611099565b50565b60085460ff16156104cc5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a5245432d3130323a555047524144455f4f4e43455f4f4d4c590060448201526064016103a9565b6008805460ff191660011790556104768161050c565b60006104f0600254836112bb565b6001600160a01b0316836001600160a01b031614905092915050565b6000546201000090046001600160a01b0316632ca65a7961052a3390565b6040518263ffffffff1660e01b81526004016105469190611899565b60206040518083038186803b15801561055e57600080fd5b505afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610596919061172f565b6105b25760405162461bcd60e51b81526004016103a99061196e565b80516105c5906007906020840190611633565b5050565b600054610100900460ff16158080156105e95750600054600160ff909116105b8061060a57506105f8306112e1565b15801561060a575060005460ff166001145b6106265760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610649576000805461ff0019166101001790555b6000805462010000600160b01b031916306201000002179055600282905561066e3390565b60028054600090815260046020908152604080832076496e7374616e63654f70657261746f725365727669636560481b80855290835281842080546001600160a01b0319166001600160a01b0397909716969096179095559254825260069052206106d8916112f4565b506002546000908152600560205260409020600190554360035580156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b600254600090815260066020526040812061075690611300565b905090565b6000546201000090046001600160a01b0316632ca65a796107793390565b6040518263ffffffff1660e01b81526004016107959190611899565b60206040518083038186803b1580156107ad57600080fd5b505afa1580156107c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e5919061172f565b6108015760405162461bcd60e51b81526004016103a99061196e565b600254600090815260056020526040902054806108605760405162461bcd60e51b815260206004820152601b60248201527f4552524f523a5245432d3030313a454d5054595f52454c45415345000000000060448201526064016103a9565b600082815260056020526040902054156108c85760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3030323a4e45575f52454c454153455f4e4f545f454d60448201526250545960e81b60648201526084016103a9565b60005b8181101561093a5760025460009081526006602052604081206108ee908361130a565b600254600090815260046020908152604080832084845290915290205490915061092790859060019084906001600160a01b0316610cdf565b506109336001826119b1565b90506108cb565b5060028290556040518281527fbd50692eb75750d216c747528a2dfced5915eab7b4ee40bcf8120d0d035297b490602001610730565b600061097c83836112bb565b9392505050565b600054610100900460ff16158080156109a35750600054600160ff909116105b806109c457506109b2306112e1565b1580156109c4575060005460ff166001145b6109e05760405162461bcd60e51b81526004016103a990611920565b6000805460ff191660011790558015610a03576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b03851602179055610a2d600090565b6541636365737360d01b14610a6f57610a4e6541636365737360d01b611316565b600180546001600160a01b0319166001600160a01b03929092169190911790555b610a776113fe565b80156105c5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610730565b606060078054610ac8906119e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610af4906119e0565b8015610b415780601f10610b1657610100808354040283529160200191610b41565b820191906000526020600020905b815481529060010190602001808311610b2457829003601f168201915b5050505050905090565b6000546201000090046001600160a01b0316632ca65a79610b693390565b6040518263ffffffff1660e01b8152600401610b859190611899565b60206040518083038186803b158015610b9d57600080fd5b505afa158015610bb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd5919061172f565b610bf15760405162461bcd60e51b81526004016103a99061196e565b6105c560025460008484610cdf565b6000546201000090046001600160a01b0316632ca65a79610c1e3390565b6040518263ffffffff1660e01b8152600401610c3a9190611899565b60206040518083038186803b158015610c5257600080fd5b505afa158015610c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8a919061172f565b610ca65760405162461bcd60e51b81526004016103a99061196e565b6105c58282611099565b6000610cbe600254836112bb565b92915050565b6002546000908152600660205260408120610cbe908361130a565b6000848152600660205260408120606490610cf990611300565b10610d505760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031303a4d41585f434f4e5452414354535f4c494d496044820152601560fa1b60648201526084016103a9565b600085815260056020526040902054151580610d695750835b610db55760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a5245432d3031313a52454c454153455f554e4b4e4f574e00000060448201526064016103a9565b82610e0c5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a5245432d3031323a434f4e54524143545f4e414d455f454d50546044820152605960f81b60648201526084016103a9565b6000858152600660205260409020610e24908461146b565b1580610e7557508276496e7374616e63654f70657261746f725365727669636560481b148015610e75575060008581526004602090815260408083208684529091529020546001600160a01b031633145b610ecc5760405162461bcd60e51b815260206004820152602260248201527f4552524f523a5245432d3031333a434f4e54524143545f4e414d455f45584953604482015261545360f01b60648201526084016103a9565b6001600160a01b038216610f2e5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a5245432d3031343a434f4e54524143545f414444524553535f5a60448201526245524f60e81b60648201526084016103a9565b60008581526004602090815260408083208684529091529020546001600160a01b0316610f92576000858152600660205260409020610f6d90846112f4565b506000858152600560205260408120805491610f8883611a1b565b9190505550600190505b6000858152600460209081526040808320868452825280832080546001600160a01b0319166001600160a01b03871617905587835260069091529020610fd790611300565b600086815260056020526040902054146110425760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3031353a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051868152602081018590526001600160a01b03841681830152821515606082015290517f7c5c4e97e59cbd96c53653dfd3f538e50d7bab44baa352481fdc3fa7f18e30089181900360800190a15050505050565b6000546201000090046001600160a01b0316632ca65a796110b73390565b6040518263ffffffff1660e01b81526004016110d39190611899565b60206040518083038186803b1580156110eb57600080fd5b505afa1580156110ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611123919061172f565b61113f5760405162461bcd60e51b81526004016103a99061196e565b6000828152600660205260409020611157908261146b565b6111a35760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a5245432d3032303a434f4e54524143545f554e4b4e4f574e000060448201526064016103a9565b60008281526006602052604090206111bb9082611483565b5060008281526005602052604081208054600192906111db9084906119c9565b90915550506000828152600460209081526040808320848452825280832080546001600160a01b03191690558483526006909152902061121a90611300565b600083815260056020526040902054146112855760405162461bcd60e51b815260206004820152602660248201527f4552524f523a5245432d3032313a434f4e54524143545f4e554d4245525f4d496044820152650a69a82a886960d31b60648201526084016103a9565b60408051838152602081018390527f095bd8db0f80ec14d4d7e375fb7fb3603144ba5b594106e0410243553f97a1319101610730565b60009182526004602090815260408084209284529190529020546001600160a01b031690565b6001600160a01b0381163b15155b919050565b600061097c838361148f565b6000610cbe825490565b600061097c83836114de565b60008054604051631c2d8fb360e31b815260048101849052620100009091046001600160a01b03169063e16c7d989060240160206040518083038186803b15801561136057600080fd5b505afa158015611374573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139891906116e8565b90506001600160a01b0381166112ef5760405162461bcd60e51b815260206004820152602560248201527f4552524f523a4352432d3030343a434f4e54524143545f4e4f545f5245474953604482015264151154915160da1b60648201526084016103a9565b600054610100900460ff166114695760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103a9565b565b6000818152600183016020526040812054151561097c565b600061097c8383611516565b60008181526001830160205260408120546114d657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cbe565b506000610cbe565b600082600001828154811061150357634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905092915050565b6000818152600183016020526040812054801561162957600061153a6001836119c9565b855490915060009061154e906001906119c9565b90508181146115cf57600086600001828154811061157c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050808760000184815481106115ad57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255918252600188019052604090208390555b85548690806115ee57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cbe565b6000915050610cbe565b82805461163f906119e0565b90600052602060002090601f01602090048101928261166157600085556116a7565b82601f1061167a57805160ff19168380011785556116a7565b828001600101855582156116a7579182015b828111156116a757825182559160200191906001019061168c565b506116b39291506116b7565b5090565b5b808211156116b357600081556001016116b8565b6000602082840312156116dd578081fd5b813561097c81611a62565b6000602082840312156116f9578081fd5b815161097c81611a62565b60008060408385031215611716578081fd5b823561172181611a62565b946020939093013593505050565b600060208284031215611740578081fd5b8151801515811461097c578182fd5b600060208284031215611760578081fd5b5035919050565b60008060408385031215611779578182fd5b82359150602083013561178b81611a62565b809150509250929050565b600080604083850312156117a8578182fd5b50508035926020909101359150565b6000806000606084860312156117cb578081fd5b833592506020840135915060408401356117e481611a62565b809150509250925092565b600060208284031215611800578081fd5b813567ffffffffffffffff80821115611817578283fd5b818401915084601f83011261182a578283fd5b81358181111561183c5761183c611a4c565b604051601f8201601f19908116603f0116810190838211818310171561186457611864611a4c565b8160405282815287602084870101111561187c578586fd5b826020860160208301379182016020019490945295945050505050565b6001600160a01b0391909116815276496e7374616e63654f70657261746f725365727669636560481b602082015260400190565b6000602080835283518082850152825b818110156118f9578581018301518582016040015282016118dd565b8181111561190a5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526023908201527f4552524f523a4352432d3030313a4e4f545f494e5354414e43455f4f504552416040820152622a27a960e91b606082015260800190565b600082198211156119c4576119c4611a36565b500190565b6000828210156119db576119db611a36565b500390565b6002810460018216806119f457607f821691505b60208210811415611a1557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611a2f57611a2f611a36565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461047657600080fdfea26469706673582212204c7f94f441c1f862908cff0be31a75f685e50b915477a4cbe46f145ab6d61f9264736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.dbg.json b/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.json b/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.json deleted file mode 100644 index ac336919..00000000 --- a/artifacts/contracts/test/TestRiskpool.sol/TestRiskpool.json +++ /dev/null @@ -1,1296 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TestRiskpool", - "sourceName": "contracts/test/TestRiskpool.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "collateralization", - "type": "uint256" - }, - { - "internalType": "address", - "name": "erc20Token", - "type": "address" - }, - { - "internalType": "address", - "name": "wallet", - "type": "address" - }, - { - "internalType": "address", - "name": "registry", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "activeBundles", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "LogBasicRiskpoolBundlesAndPolicies", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "index", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "maxAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "LogBasicRiskpoolCandidateBundleAmountCheck", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentArchived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "registryAddress", - "type": "address" - } - ], - "name": "LogComponentCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentPaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "componentName", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentType", - "name": "componentType", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "address", - "name": "componentAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentResumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateOld", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "enum IComponent.ComponentState", - "name": "stateNew", - "type": "uint8" - } - ], - "name": "LogComponentStateChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentSuspended", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogComponentUnpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolApproved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolBundleCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isMatching", - "type": "bool" - } - ], - "name": "LogRiskpoolBundleMatchesPolicy", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isSecured", - "type": "bool" - } - ], - "name": "LogRiskpoolCollateralLocked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "LogRiskpoolCollateralReleased", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "riskpoolAddress", - "type": "address" - } - ], - "name": "LogRiskpoolCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolDeclined", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolPayoutProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "LogRiskpoolPremiumProcessed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "LogRiskpoolProposed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_FILTER_DATA_STRUCTURE", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "FULL_COLLATERALIZATION_LEVEL", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SUM_OF_SUM_INSURED_CAP", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "activeBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "approvalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "archiveCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "bundle", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "enum IPolicy.ApplicationState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "premiumAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "sumInsuredAmount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IPolicy.Application", - "name": "application", - "type": "tuple" - } - ], - "name": "bundleMatchesApplication", - "outputs": [ - { - "internalType": "bool", - "name": "isMatching", - "type": "bool" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "bundles", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "burnBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "closeBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "collateralAmount", - "type": "uint256" - } - ], - "name": "collateralizePolicy", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "initialAmount", - "type": "uint256" - } - ], - "name": "createBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "declineCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "defundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "fundBundle", - "outputs": [ - { - "internalType": "uint256", - "name": "netAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getActiveBundleId", - "outputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idx", - "type": "uint256" - } - ], - "name": "getBundle", - "outputs": [ - { - "components": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "riskpoolId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "enum IBundle.BundleState", - "name": "state", - "type": "uint8" - }, - { - "internalType": "bytes", - "name": "filter", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "capital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "lockedCapital", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "createdAt", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "updatedAt", - "type": "uint256" - } - ], - "internalType": "struct IBundle.Bundle", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCapacity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCapital", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getErc20Token", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getFilterDataStructure", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getFullCollateralizationLevel", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMaximumNumberOfActiveBundles", - "outputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getName", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", - "outputs": [ - { - "internalType": "contract IRegistry", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getState", - "outputs": [ - { - "internalType": "enum IComponent.ComponentState", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getSumOfSumInsuredCap", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getTotalValueLocked", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getType", - "outputs": [ - { - "internalType": "enum IComponent.ComponentType", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getWallet", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isOracle", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isProduct", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isRiskpool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "lockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "pauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPolicyPayout", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "processPolicyPremium", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proposalCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "processId", - "type": "bytes32" - } - ], - "name": "releasePolicy", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "resumeCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "setId", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "maximumNumberOfActiveBundles", - "type": "uint256" - } - ], - "name": "setMaximumNumberOfActiveBundles", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "suspendCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - } - ], - "name": "unlockBundle", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpauseCallback", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040526011805463ffffffff191690553480156200001e57600080fd5b5060405162003118380380620031188339810160408190526200004191620005e1565b848469d3c21bcecceda10000008585858585858585858560028262000066336200047d565b6001600160a01b038116620000ce5760405162461bcd60e51b815260206004820152602360248201527f4552524f523a434d502d3030343a52454749535452595f414444524553535f5a60448201526245524f60e81b60648201526084015b60405180910390fd5b60038054610100600160a81b0319166101006001600160a01b03841602179055620000f8620004cd565b600480546001600160a01b0319166001600160a01b039290921691909117905562000122620004e8565b600580546001600160a01b0319166001600160a01b03929092169190911790556200014c62000515565b600680546001600160a01b0319166001600160a01b0392909216919091179055600183815560038054849260ff19909116908360028111156200019f57634e487b7160e01b600052602160045260246000fd5b02179055506001546003546040517f04a2dea3211d6352f30925875b6e2e984642f84e1bcffe65ffaa1b04c1197b7a92620001f392909160ff82169130916101009091046001600160a01b03169062000648565b60405180910390a1505050600d85905583620002645760405162461bcd60e51b815260206004820152602960248201527f4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245446044820152685f4341505f5a45524f60b81b6064820152608401620000c5565b600e8490556001600160a01b038316620002c15760405162461bcd60e51b815260206004820181905260248201527f4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f6044820152606401620000c5565b600c80546001600160a01b0319166001600160a01b038581169190911790915582166200033b5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45526044820152604f60f81b6064820152608401620000c5565b600b80546001600160a01b0319166001600160a01b038416179055620003736e496e7374616e63655365727669636560881b6200052f565b600780546001600160a01b0319166001600160a01b0392909216919091179055620003b06e5269736b706f6f6c5365727669636560881b6200052f565b600880546001600160a01b0319166001600160a01b0392831617905560075460408051633acd5e0f60e21b81529051919092169163eb35783c916004808301926020929190829003018186803b1580156200040a57600080fd5b505afa1580156200041f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004459190620005bb565b600980546001600160a01b0319166001600160a01b039290921691909117905550620006ac9f50505050505050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000620004e36541636365737360d01b6200052f565b905090565b6000620004e37f436f6d706f6e656e744f776e65725365727669636500000000000000000000006200052f565b6000620004e36e496e7374616e63655365727669636560881b5b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b1580156200057a57600080fd5b505afa1580156200058f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005b59190620005bb565b92915050565b600060208284031215620005cd578081fd5b8151620005da8162000693565b9392505050565b600080600080600060a08688031215620005f9578081fd5b85519450602086015193506040860151620006148162000693565b6060870151909350620006278162000693565b60808701519092506200063a8162000693565b809150509295509295909350565b84815260808101600385106200066e57634e487b7160e01b600052602160045260246000fd5b60208201949094526001600160a01b0392831660408201529116606090910152919050565b6001600160a01b0381168114620006a957600080fd5b50565b612a5c80620006bc6000396000f3fe608060405234801561001057600080fd5b506004361061030c5760003560e01c80637f3b69801161019d578063b3fca9bd116100e9578063d0e0ba95116100a2578063e0815f0d1161007c578063e0815f0d146105ce578063f1d354d0146105d6578063f2fde38b146105e4578063feb1824b146105f75761030c565b8063d0e0ba95146105b3578063d73cd9921461039c578063e0032383146105c65761030c565b8063b3fca9bd1461039c578063bd1fe5d01461039c578063be169e7e1461057f578063be61e91e14610587578063c3004c8614610598578063c40000d4146105ab5761030c565b80638c483e5a11610156578063a17030d511610130578063a17030d51461055c578063a18aa1281461056f578063a18f5ae21461039c578063b26025aa146105775761030c565b80638c483e5a146105305780638da5cb5b146105435780639a82f890146105545761030c565b80637f3b6980146104d157806382558906146104d957806386c71288146104ec57806389002da514610502578063890fbf7814610515578063893d20e8146105285761030c565b80633dcdde171161025c5780635ab1bd5311610215578063652028e5116101ef578063652028e51461048d578063715018a6146104a05780637888a2ff146104a85780637893c7bc146104bb5761030c565b80635ab1bd53146104665780635d1ca6311461047d578063638ce0ba146104855761030c565b80633dcdde17146104175780634101b90c1461043457806345fe1c6d1461043c57806354afef631461044b578063587e59d01461045357806359dacc6a1461039c5761030c565b80631865c57d116102c95780632d0821b7116102a35780632d0821b7146103be578063316c5348146103de57806336153f3a146103f15780633629c3c4146104045761030c565b80631865c57d146103875780631b867c631461039c578063258d560c146103a65761030c565b80630676cb0e1461031157806312065fe014610337578063132996041461033f57806315dae03e1461036457806317d7de7c1461037757806318442e631461037f575b600080fd5b61032461031f366004612380565b610608565b6040519081526020015b60405180910390f35b610324610784565b600b546001600160a01b03165b6040516001600160a01b03909116815260200161032e565b60035460ff1660405161032e919061274c565b600154610324565b600a54610324565b61038f610814565b60405161032e9190612732565b6103a461089a565b005b6103ae6108e1565b604051901515815260200161032e565b6103d16103cc366004612380565b610911565b60405161032e9190612818565b6103a46103ec366004612380565b610a26565b6103246103ff3660046126ac565b610bc7565b6103a4610412366004612398565b610d93565b6040805160208101909152600081525b60405161032e9190612760565b610324610e1b565b610324670de0b6b3a764000081565b600d54610324565b6103a4610461366004612380565b610e59565b61034c60035461010090046001600160a01b031690565b600254610324565b6103a4610fc6565b6103a461049b366004612380565b611013565b6103a4611090565b6103246104b63660046123b9565b6110a2565b6104276040518060200160405280600081525081565b6103246111a5565b6103a46104e7366004612398565b6111e3565b6103ae6104fa36600461259a565b506001919050565b6103246105103660046126ac565b611263565b6103ae610523366004612398565b6113d7565b61034c61146e565b6103a461053e366004612380565b611480565b6000546001600160a01b031661034c565b6103ae6115ed565b6103a461056a366004612380565b6115f5565b600e54610324565b610324611762565b6103a46117a0565b61032469d3c21bcecceda100000081565b6103a46105a6366004612380565b6117ed565b610324611871565b6103a46105c1366004612380565b6118af565b6103246118f9565b6103ae611936565b670de0b6b3a7640000610324565b6103a46105f2366004612341565b61193f565b600c546001600160a01b031661034c565b60008061061460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190612694565b83106106f85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190612694565b9150505b919050565b60008061079060025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b1580156107d657600080fd5b505afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e9190612694565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561085d57600080fd5b505afa158015610871573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089591906123fc565b905090565b6108af6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146108df5760405162461bcd60e51b81526004016106ef90612773565b565b600060025b60035460ff16600281111561090b57634e487b7160e01b600052602160045260246000fd5b14905090565b610919612197565b600a5482106109765760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b60648201526084016106ef565b6000600a838154811061099957634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b1580156109ea57600080fd5b505afa1580156109fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077b91908101906124c6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aab91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610ae89160040190815260200190565b60206040518083038186803b158015610b0057600080fd5b505afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190612364565b9050336001600160a01b03821614610b625760405162461bcd60e51b81526004016106ef906127aa565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c4c91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610c899160040190815260200190565b60206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612364565b9050336001600160a01b03821614610d035760405162461bcd60e51b81526004016106ef906127aa565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610d5157600080fd5b505af1158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190612694565b9695505050505050565b610da363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b031614610dd35760405162461bcd60e51b81526004016106ef906127e1565b610ddd8282611a40565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b600080610e2760025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a66906024016107be565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ede91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610f1b9160040190815260200190565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612364565b9050336001600160a01b03821614610f955760405162461bcd60e51b81526004016106ef906127aa565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610b8f565b610fdb6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b03161461100b5760405162461bcd60e51b81526004016106ef90612773565b6108df611ac2565b61101b611b43565b600061102660025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505050505050565b611098611b43565b6108df6000611b9d565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e74906110db908490889088906004016126fe565b602060405180830381600087803b1580156110f557600080fd5b505af1158015611109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112d9190612694565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000806111b160025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db32844906024016107be565b6111f363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146112235760405162461bcd60e51b81526004016106ef906127e1565b61122d8282611bed565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610e0f565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b1580156112ac57600080fd5b505afa1580156112c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e891908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916113259160040190815260200190565b60206040518083038186803b15801561133d57600080fd5b505afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190612364565b9050336001600160a01b0382161461139f5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610d37565b60006113e963141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146114195760405162461bcd60e51b81526004016106ef906127e1565b6114238383611c3c565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610895565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156114c957600080fd5b505afa1580156114dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150591908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916115429160040190815260200190565b60206040518083038186803b15801561155a57600080fd5b505afa15801561156e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115929190612364565b9050336001600160a01b038216146115bc5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610b8f565b6000806108e6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261167a91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116b79160040190815260200190565b60206040518083038186803b1580156116cf57600080fd5b505afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190612364565b9050336001600160a01b038216146117315760405162461bcd60e51b81526004016106ef906127aa565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610b8f565b60008061176e60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d9235906024016107be565b6117b56810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146117e55760405162461bcd60e51b81526004016106ef90612773565b6108df61203f565b6117fd63141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b03161461182d5760405162461bcd60e51b81526004016106ef906127e1565b600061183882612127565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610e0f565b60008061187d60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f906024016107be565b6118c46810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146118f45760405162461bcd60e51b81526004016106ef90612773565b600255565b60008061190560025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b0316906329560980906024016107be565b600060016108e6565b611947611b43565b6001600160a01b0381166119ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ef565b6119b581611b9d565b50565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611a0257600080fd5b505afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190612364565b92915050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611aa557600080fd5b505af1158015611ab9573d6000803e3d6000fd5b50505050505050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146108df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ef565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611a8b565b600080611c47610e1b565b90506000611c536118f9565b90506000611c5f611762565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a160008311611cf45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c45530060448201526064016106ef565b808211611d435760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c00000060448201526064016106ef565b611d4d8582612908565b821061203657600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b158015611d9857600080fd5b505afa158015611dac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd4919081019061241b565b601154909150600090611dee90869063ffffffff166129a2565b905060005b8581108015611e00575086155b15612032576000611e1083610608565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015611e5a57600080fd5b505afa158015611e6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9691908101906124c6565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a1801561201c5760008260c001518360a00151611ef59190612920565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b811061200157600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b158015611f9b57600080fd5b505af1158015611faf573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff16925090611fdd8361297e565b91906101000a81548163ffffffff021916908363ffffffff1602179055505061201a565b8961200d876001612908565b61201791906129a2565b95505b505b505050808061202a90612963565b915050611df3565b5050505b50505092915050565b600061204a60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561208f57600080fd5b505afa1580156120a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c79190612694565b156119b55760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b60648201526084016106ef565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561218357600080fd5b505af1158015610757573d6000803e3d6000fd5b604051806101400160405280600081526020016000815260200160008152602001600060038111156121d957634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612219578081fd5b813561222c612227826128e0565b6128af565b818152846020838601011115612240578283fd5b816020850160208301379081016020019190915292915050565b600082601f83011261226a578081fd5b8151612278612227826128e0565b81815284602083860101111561228c578283fd5b61229d826020830160208701612937565b949350505050565b803561077f81612a19565b805161077f81612a19565b600060c082840312156122cc578081fd5b6122d660c06128af565b905081356122e381612a19565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561231557600080fd5b61232184828501612209565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612352578081fd5b813561235d81612a04565b9392505050565b600060208284031215612375578081fd5b815161235d81612a04565b600060208284031215612391578081fd5b5035919050565b600080604083850312156123aa578081fd5b50508035926020909101359150565b600080604083850312156123cb578182fd5b823567ffffffffffffffff8111156123e1578283fd5b6123ed85828601612209565b95602094909401359450505050565b60006020828403121561240d578081fd5b81516007811061235d578182fd5b60006020828403121561242c578081fd5b815167ffffffffffffffff80821115612443578283fd5b9083019060c08286031215612456578283fd5b61246060c06128af565b825161246b81612a19565b808252506020830151602082015260408301516040820152606083015182811115612494578485fd5b6124a08782860161225a565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000602082840312156124d7578081fd5b815167ffffffffffffffff808211156124ee578283fd5b8184019150610140808387031215612504578384fd5b61250d816128af565b9050825181526020830151602082015260408301516040820152612533606084016122b0565b6060820152608083015182811115612549578485fd5b6125558782860161225a565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600080604083850312156125ac578182fd5b823567ffffffffffffffff808211156125c3578384fd5b81850191506101408083880312156125d9578485fd5b6125e2816128af565b9050823581526020830135602082015260408301356040820152612608606084016122a5565b606082015260808301358281111561261e578586fd5b61262a88828601612209565b60808301525060a083013560a082015260c083013560c082015260e083013560e082015261010080840135818301525061012080840135818301525080945050602085013591508082111561267d578283fd5b5061268a858286016122bb565b9150509250929050565b6000602082840312156126a5578081fd5b5051919050565b600080604083850312156123aa578182fd5b600081518084526126d6816020860160208601612937565b601f01601f19169290920160200192915050565b600481106126fa576126fa6129d8565b9052565b6001600160a01b0384168152606060208201819052600090612722908301856126be565b9050826040830152949350505050565b6020810160078310612746576127466129d8565b91905290565b6020810160038310612746576127466129d8565b60006020825261235d60208301846126be565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b600060208252825160208301526020830151604083015260408301516060830152606083015161284b60808401826126ea565b5060808301516101408060a08501526128686101608501836126be565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128d8576128d86129ee565b604052919050565b600067ffffffffffffffff8211156128fa576128fa6129ee565b50601f01601f191660200190565b6000821982111561291b5761291b6129c2565b500190565b600082821015612932576129326129c2565b500390565b60005b8381101561295257818101518382015260200161293a565b83811115611b3d5750506000910152565b6000600019821415612977576129776129c2565b5060010190565b600063ffffffff80831681811415612998576129986129c2565b6001019392505050565b6000826129bd57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146119b557600080fd5b600481106119b557600080fdfea264697066735822122027465eb2540f515511bab31c2e975b912c7cb02ee862dca2d6d9395445502f7364736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061030c5760003560e01c80637f3b69801161019d578063b3fca9bd116100e9578063d0e0ba95116100a2578063e0815f0d1161007c578063e0815f0d146105ce578063f1d354d0146105d6578063f2fde38b146105e4578063feb1824b146105f75761030c565b8063d0e0ba95146105b3578063d73cd9921461039c578063e0032383146105c65761030c565b8063b3fca9bd1461039c578063bd1fe5d01461039c578063be169e7e1461057f578063be61e91e14610587578063c3004c8614610598578063c40000d4146105ab5761030c565b80638c483e5a11610156578063a17030d511610130578063a17030d51461055c578063a18aa1281461056f578063a18f5ae21461039c578063b26025aa146105775761030c565b80638c483e5a146105305780638da5cb5b146105435780639a82f890146105545761030c565b80637f3b6980146104d157806382558906146104d957806386c71288146104ec57806389002da514610502578063890fbf7814610515578063893d20e8146105285761030c565b80633dcdde171161025c5780635ab1bd5311610215578063652028e5116101ef578063652028e51461048d578063715018a6146104a05780637888a2ff146104a85780637893c7bc146104bb5761030c565b80635ab1bd53146104665780635d1ca6311461047d578063638ce0ba146104855761030c565b80633dcdde17146104175780634101b90c1461043457806345fe1c6d1461043c57806354afef631461044b578063587e59d01461045357806359dacc6a1461039c5761030c565b80631865c57d116102c95780632d0821b7116102a35780632d0821b7146103be578063316c5348146103de57806336153f3a146103f15780633629c3c4146104045761030c565b80631865c57d146103875780631b867c631461039c578063258d560c146103a65761030c565b80630676cb0e1461031157806312065fe014610337578063132996041461033f57806315dae03e1461036457806317d7de7c1461037757806318442e631461037f575b600080fd5b61032461031f366004612380565b610608565b6040519081526020015b60405180910390f35b610324610784565b600b546001600160a01b03165b6040516001600160a01b03909116815260200161032e565b60035460ff1660405161032e919061274c565b600154610324565b600a54610324565b61038f610814565b60405161032e9190612732565b6103a461089a565b005b6103ae6108e1565b604051901515815260200161032e565b6103d16103cc366004612380565b610911565b60405161032e9190612818565b6103a46103ec366004612380565b610a26565b6103246103ff3660046126ac565b610bc7565b6103a4610412366004612398565b610d93565b6040805160208101909152600081525b60405161032e9190612760565b610324610e1b565b610324670de0b6b3a764000081565b600d54610324565b6103a4610461366004612380565b610e59565b61034c60035461010090046001600160a01b031690565b600254610324565b6103a4610fc6565b6103a461049b366004612380565b611013565b6103a4611090565b6103246104b63660046123b9565b6110a2565b6104276040518060200160405280600081525081565b6103246111a5565b6103a46104e7366004612398565b6111e3565b6103ae6104fa36600461259a565b506001919050565b6103246105103660046126ac565b611263565b6103ae610523366004612398565b6113d7565b61034c61146e565b6103a461053e366004612380565b611480565b6000546001600160a01b031661034c565b6103ae6115ed565b6103a461056a366004612380565b6115f5565b600e54610324565b610324611762565b6103a46117a0565b61032469d3c21bcecceda100000081565b6103a46105a6366004612380565b6117ed565b610324611871565b6103a46105c1366004612380565b6118af565b6103246118f9565b6103ae611936565b670de0b6b3a7640000610324565b6103a46105f2366004612341565b61193f565b600c546001600160a01b031661034c565b60008061061460025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a669060240160206040518083038186803b15801561065957600080fd5b505afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106919190612694565b83106106f85760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e444560448201526a585f544f4f5f4c4152474560a81b60648201526084015b60405180910390fd5b600754604051633b20cec360e21b815260048101839052602481018590526001600160a01b039091169063ec833b0c9060440160206040518083038186803b15801561074357600080fd5b505afa158015610757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077b9190612694565b9150505b919050565b60008061079060025490565b600754604051631e01043960e01b8152600481018390529192506001600160a01b031690631e010439906024015b60206040518083038186803b1580156107d657600080fd5b505afa1580156107ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080e9190612694565b91505090565b600654600254604051635e966e4560e01b815260048101919091526000916001600160a01b031690635e966e459060240160206040518083038186803b15801561085d57600080fd5b505afa158015610871573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089591906123fc565b905090565b6108af6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146108df5760405162461bcd60e51b81526004016106ef90612773565b565b600060025b60035460ff16600281111561090b57634e487b7160e01b600052602160045260246000fd5b14905090565b610919612197565b600a5482106109765760405162461bcd60e51b8152602060048201526024808201527f4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c6044820152634152474560e01b60648201526084016106ef565b6000600a838154811061099957634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600754604051632d0821b760e01b8152600481018390529192506001600160a01b031690632d0821b79060240160006040518083038186803b1580156109ea57600080fd5b505afa1580156109fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261077b91908101906124c6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aab91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610ae89160040190815260200190565b60206040518083038186803b158015610b0057600080fd5b505afa158015610b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b389190612364565b9050336001600160a01b03821614610b625760405162461bcd60e51b81526004016106ef906127aa565b60085460405163062d8a6960e31b8152600481018690526001600160a01b039091169063316c5348906024015b600060405180830381600087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b5050505050505050565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b158015610c1057600080fd5b505afa158015610c24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c4c91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610c899160040190815260200190565b60206040518083038186803b158015610ca157600080fd5b505afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd99190612364565b9050336001600160a01b03821614610d035760405162461bcd60e51b81526004016106ef906127aa565b600854604051631b0a9f9d60e11b815260048101889052602481018790526001600160a01b03909116906336153f3a906044015b602060405180830381600087803b158015610d5157600080fd5b505af1158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190612694565b9695505050505050565b610da363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b031614610dd35760405162461bcd60e51b81526004016106ef906127e1565b610ddd8282611a40565b60408051838152602081018390527fd910a5091eea39c3efeed9891a9e2b4694bd064808f5b0a4de415d70b313ec5291015b60405180910390a15050565b600080610e2760025490565b600754604051635213353360e11b8152600481018390529192506001600160a01b03169063a4266a66906024016107be565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015610ea257600080fd5b505afa158015610eb6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ede91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e91610f1b9160040190815260200190565b60206040518083038186803b158015610f3357600080fd5b505afa158015610f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6b9190612364565b9050336001600160a01b03821614610f955760405162461bcd60e51b81526004016106ef906127aa565b600854604051630587e59d60e41b8152600481018690526001600160a01b039091169063587e59d090602401610b8f565b610fdb6810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b03161461100b5760405162461bcd60e51b81526004016106ef90612773565b6108df611ac2565b61101b611b43565b600061102660025490565b600854604051630424ffa960e31b815260048101839052602481018590529192506001600160a01b031690632127fd4890604401600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505050505050565b611098611b43565b6108df6000611b9d565b6000803360085460405163057f079d60e21b81529192506001600160a01b0316906315fc1e74906110db908490889088906004016126fe565b602060405180830381600087803b1580156110f557600080fd5b505af1158015611109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112d9190612694565b600a80546001810182556000919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80181905560408051828152602081018690529193507fd17d9dc3726ba31d9af5d3a3425289766158a8ea95520e1c299ccbe4a2978b34910160405180910390a15092915050565b6000806111b160025490565b600754604051631f6cca1160e21b8152600481018390529192506001600160a01b031690637db32844906024016107be565b6111f363141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146112235760405162461bcd60e51b81526004016106ef906127e1565b61122d8282611bed565b60408051838152602081018390527f0ee37957c2d37326fa4e3897fc3947bbdbd8e1082639a302c1c206b4d1c5e6959101610e0f565b600754604051632d0821b760e01b815260048101849052600091849183916001600160a01b031690632d0821b79060240160006040518083038186803b1580156112ac57600080fd5b505afa1580156112c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e891908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916113259160040190815260200190565b60206040518083038186803b15801561133d57600080fd5b505afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190612364565b9050336001600160a01b0382161461139f5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516389002da560e01b815260048101889052602481018790526001600160a01b03909116906389002da590604401610d37565b60006113e963141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b0316146114195760405162461bcd60e51b81526004016106ef906127e1565b6114238383611c3c565b60408051858152602081018590528215158183015290519192507f9d0f25e972ad53428b0a94cd615fa731919562fa34769df0f9c3eed71b0bd81e919081900360600190a192915050565b600080546001600160a01b0316610895565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b1580156114c957600080fd5b505afa1580156114dd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150591908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916115429160040190815260200190565b60206040518083038186803b15801561155a57600080fd5b505afa15801561156e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115929190612364565b9050336001600160a01b038216146115bc5760405162461bcd60e51b81526004016106ef906127aa565b6008546040516346241f2d60e11b8152600481018690526001600160a01b0390911690638c483e5a90602401610b8f565b6000806108e6565b600754604051632d0821b760e01b81526004810183905282916000916001600160a01b0390911690632d0821b79060240160006040518083038186803b15801561163e57600080fd5b505afa158015611652573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261167a91908101906124c6565b60095460408083015190516331a9108f60e11b81529293506000926001600160a01b0390921691636352211e916116b79160040190815260200190565b60206040518083038186803b1580156116cf57600080fd5b505afa1580156116e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117079190612364565b9050336001600160a01b038216146117315760405162461bcd60e51b81526004016106ef906127aa565b60085460405163a17030d560e01b8152600481018690526001600160a01b039091169063a17030d590602401610b8f565b60008061176e60025490565b600754604051633f5d923560e01b8152600481018390529192506001600160a01b031690633f5d9235906024016107be565b6117b56810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146117e55760405162461bcd60e51b81526004016106ef90612773565b6108df61203f565b6117fd63141bdbdb60e21b6119b8565b6001600160a01b0316336001600160a01b03161461182d5760405162461bcd60e51b81526004016106ef906127e1565b600061183882612127565b60408051848152602081018390529192507f22bf66455b4bf54c9548e2bb650543cfa753a53cab13af4020ddbfa76c231b0f9101610e0f565b60008061187d60025490565b60075460405163bcd5349f60e01b8152600481018390529192506001600160a01b03169063bcd5349f906024016107be565b6118c46810dbdb5c1bdb995b9d60ba1b6119b8565b6001600160a01b0316336001600160a01b0316146118f45760405162461bcd60e51b81526004016106ef90612773565b600255565b60008061190560025490565b6007546040516252ac1360e71b8152600481018390529192506001600160a01b0316906329560980906024016107be565b600060016108e6565b611947611b43565b6001600160a01b0381166119ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ef565b6119b581611b9d565b50565b600354604051631c2d8fb360e31b81526004810183905260009161010090046001600160a01b03169063e16c7d989060240160206040518083038186803b158015611a0257600080fd5b505afa158015611a16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3a9190612364565b92915050565b600082815260106020526040908190205460085491516305b933a160e51b815260048101829052602481018590526044810184905290916001600160a01b03169063b7267420906064015b600060405180830381600087803b158015611aa557600080fd5b505af1158015611ab9573d6000803e3d6000fd5b50505050505050565b600854600b54600c54600d54600e54604051635f971aa360e11b81526001600160a01b03948516600482015292841660248401526044830191909152606482015291169063bf2e354690608401600060405180830381600087803b158015611b2957600080fd5b505af1158015611b3d573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146108df5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ef565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000828152601060205260409081902054600854915163594ce61360e11b815260048101829052602481018590526044810184905290916001600160a01b03169063b299cc2690606401611a8b565b600080611c47610e1b565b90506000611c536118f9565b90506000611c5f611762565b6011546040805186815263ffffffff90921660208301529192507f7296d1a54b2d02c3a2f8f0b83b688d6b8415618f2ab8c3d5f761dd678dcc4b29910160405180910390a160008311611cf45760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a4252502d3030313a4e4f5f4143544956455f42554e444c45530060448201526064016106ef565b808211611d435760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4252502d3030323a4e4f5f465245455f4341504954414c00000060448201526064016106ef565b611d4d8582612908565b821061203657600754604051632f141bd960e21b8152600481018890526000916001600160a01b03169063bc506f649060240160006040518083038186803b158015611d9857600080fd5b505afa158015611dac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd4919081019061241b565b601154909150600090611dee90869063ffffffff166129a2565b905060005b8581108015611e00575086155b15612032576000611e1083610608565b600754604051632d0821b760e01b8152600481018390529192506000916001600160a01b0390911690632d0821b79060240160006040518083038186803b158015611e5a57600080fd5b505afa158015611e6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9691908101906124c6565b9050600060016040805185815282151560208201529192507f4fb0f8b19e3ce187a133519bff1fcbdf3dfbc1b55f8bc334a3da5bcadbeea2a7910160405180910390a1801561201c5760008260c001518360a00151611ef59190612920565b6040805188815260208101879052908101829052606081018e90529091507fe54ef564bee7e49a6e78296e638947532de075d47cd66e331104b4812756f1199060800160405180910390a18b811061200157600854604051634d03f9b760e01b815260048101869052602481018f9052604481018e90526001600160a01b0390911690634d03f9b790606401600060405180830381600087803b158015611f9b57600080fd5b505af1158015611faf573d6000803e3d6000fd5b50505060008e81526010602052604081208690556011805460019e5063ffffffff16925090611fdd8361297e565b91906101000a81548163ffffffff021916908363ffffffff1602179055505061201a565b8961200d876001612908565b61201791906129a2565b95505b505b505050808061202a90612963565b915050611df3565b5050505b50505092915050565b600061204a60025490565b6007546040516362acbc1f60e11b8152600481018390529192506001600160a01b03169063c559783e9060240160206040518083038186803b15801561208f57600080fd5b505afa1580156120a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c79190612694565b156119b55760405162461bcd60e51b815260206004820152602a60248201527f4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255526044820152694e545f42554e444c455360b01b60648201526084016106ef565b600081815260106020526040808220546008549151635daa06fb60e11b8152600481018290526024810185905290916001600160a01b03169063bb540df690604401602060405180830381600087803b15801561218357600080fd5b505af1158015610757573d6000803e3d6000fd5b604051806101400160405280600081526020016000815260200160008152602001600060038111156121d957634e487b7160e01b600052602160045260246000fd5b81526020016060815260200160008152602001600081526020016000815260200160008152602001600081525090565b600082601f830112612219578081fd5b813561222c612227826128e0565b6128af565b818152846020838601011115612240578283fd5b816020850160208301379081016020019190915292915050565b600082601f83011261226a578081fd5b8151612278612227826128e0565b81815284602083860101111561228c578283fd5b61229d826020830160208701612937565b949350505050565b803561077f81612a19565b805161077f81612a19565b600060c082840312156122cc578081fd5b6122d660c06128af565b905081356122e381612a19565b808252506020820135602082015260408201356040820152606082013567ffffffffffffffff81111561231557600080fd5b61232184828501612209565b6060830152506080820135608082015260a082013560a082015292915050565b600060208284031215612352578081fd5b813561235d81612a04565b9392505050565b600060208284031215612375578081fd5b815161235d81612a04565b600060208284031215612391578081fd5b5035919050565b600080604083850312156123aa578081fd5b50508035926020909101359150565b600080604083850312156123cb578182fd5b823567ffffffffffffffff8111156123e1578283fd5b6123ed85828601612209565b95602094909401359450505050565b60006020828403121561240d578081fd5b81516007811061235d578182fd5b60006020828403121561242c578081fd5b815167ffffffffffffffff80821115612443578283fd5b9083019060c08286031215612456578283fd5b61246060c06128af565b825161246b81612a19565b808252506020830151602082015260408301516040820152606083015182811115612494578485fd5b6124a08782860161225a565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b6000602082840312156124d7578081fd5b815167ffffffffffffffff808211156124ee578283fd5b8184019150610140808387031215612504578384fd5b61250d816128af565b9050825181526020830151602082015260408301516040820152612533606084016122b0565b6060820152608083015182811115612549578485fd5b6125558782860161225a565b60808301525060a0838101519082015260c0808401519082015260e0808401519082015261010080840151908201526101209283015192810192909252509392505050565b600080604083850312156125ac578182fd5b823567ffffffffffffffff808211156125c3578384fd5b81850191506101408083880312156125d9578485fd5b6125e2816128af565b9050823581526020830135602082015260408301356040820152612608606084016122a5565b606082015260808301358281111561261e578586fd5b61262a88828601612209565b60808301525060a083013560a082015260c083013560c082015260e083013560e082015261010080840135818301525061012080840135818301525080945050602085013591508082111561267d578283fd5b5061268a858286016122bb565b9150509250929050565b6000602082840312156126a5578081fd5b5051919050565b600080604083850312156123aa578182fd5b600081518084526126d6816020860160208601612937565b601f01601f19169290920160200192915050565b600481106126fa576126fa6129d8565b9052565b6001600160a01b0384168152606060208201819052600090612722908301856126be565b9050826040830152949350505050565b6020810160078310612746576127466129d8565b91905290565b6020810160038310612746576127466129d8565b60006020825261235d60208301846126be565b6020808252601b908201527f4552524f523a434d502d3030323a4e4f545f434f4d504f4e454e540000000000604082015260600190565b6020808252601e908201527f4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e45520000604082015260600190565b6020808252601b908201527f4552524f523a52504c2d3030313a4143434553535f44454e4945440000000000604082015260600190565b600060208252825160208301526020830151604083015260408301516060830152606083015161284b60808401826126ea565b5060808301516101408060a08501526128686101608501836126be565b915060a085015160c085015260c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151838701525050508091505092915050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128d8576128d86129ee565b604052919050565b600067ffffffffffffffff8211156128fa576128fa6129ee565b50601f01601f191660200190565b6000821982111561291b5761291b6129c2565b500190565b600082821015612932576129326129c2565b500390565b60005b8381101561295257818101518382015260200161293a565b83811115611b3d5750506000910152565b6000600019821415612977576129776129c2565b5060010190565b600063ffffffff80831681811415612998576129986129c2565b6001019392505050565b6000826129bd57634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146119b557600080fd5b600481106119b557600080fdfea264697066735822122027465eb2540f515511bab31c2e975b912c7cb02ee862dca2d6d9395445502f7364736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.dbg.json b/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.json b/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.json deleted file mode 100644 index d9f99be2..00000000 --- a/artifacts/contracts/test/TestTransferFrom.sol/TestTransferFrom.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "TestTransferFrom", - "sourceName": "contracts/test/TestTransferFrom.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "callSuccess", - "type": "bool" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "returnDataLength", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "returnData", - "type": "bytes" - } - ], - "name": "LogTransferHelperCallFailed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "tokenIsContract", - "type": "bool" - }, - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "LogTransferHelperInputValidation1Failed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - } - ], - "name": "LogTransferHelperInputValidation2Failed", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "token", - "type": "address" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "unifiedTransferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506104f1806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806386aa75d714610030575b600080fd5b61004361003e3660046103ac565b610057565b604051901515815260200160405180910390f35b600061006585858585610070565b90505b949350505050565b6000846001600160a01b038082163b1515908616158061009757506001600160a01b038516155b806100a0575080155b156100fb576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a1600092505050610068565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561014057600080fd5b505afa158015610154573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017891906103fc565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156101c557600080fd5b505afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906103fc565b90508582108061020c57508581105b156102575760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a16000945050505050610068565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916102bb9190610414565b6000604051808303816000865af19150503d80600081146102f8576040519150601f19603f3d011682016040523d82523d6000602084013e6102fd565b606091505b50915091508180156103335750805115806103335750805160201480156103335750808060200190518101906103339190610385565b965086610377577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161036e93929190610430565b60405180910390a15b505050505050949350505050565b600060208284031215610396578081fd5b815180151581146103a5578182fd5b9392505050565b600080600080608085870312156103c1578283fd5b84356103cc816104a3565b935060208501356103dc816104a3565b925060408501356103ec816104a3565b9396929550929360600135925050565b60006020828403121561040d578081fd5b5051919050565b60008251610426818460208701610473565b9190910192915050565b6000841515825283602083015260606040830152825180606084015261045d816080850160208701610473565b601f01601f191691909101608001949350505050565b60005b8381101561048e578181015183820152602001610476565b8381111561049d576000848401525b50505050565b6001600160a01b03811681146104b857600080fd5b5056fea26469706673582212204cd47de7139602c38bd878e742df2f0bda2fca7a0fe902f95fd7daa762c597cd64736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c806386aa75d714610030575b600080fd5b61004361003e3660046103ac565b610057565b604051901515815260200160405180910390f35b600061006585858585610070565b90505b949350505050565b6000846001600160a01b038082163b1515908616158061009757506001600160a01b038516155b806100a0575080155b156100fb576040805182151581526001600160a01b03888116602083015287168183015290517fe2a67c968620b6e8891e10a48c5d0c958ec8dc14d420ff7a2a1b16e7c5ede2b79181900360600190a1600092505050610068565b6040516370a0823160e01b81526001600160a01b038781166004830152600091908916906370a082319060240160206040518083038186803b15801561014057600080fd5b505afa158015610154573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017891906103fc565b604051636eb1769f60e11b81526001600160a01b0389811660048301523060248301529192506000918a169063dd62ed3e9060440160206040518083038186803b1580156101c557600080fd5b505afa1580156101d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101fd91906103fc565b90508582108061020c57508581105b156102575760408051838152602081018390527f80f73cf7014d047c01587fb6c83a8052d5088f7dc1aa8c47e37544397b9d643a910160405180910390a16000945050505050610068565b604080516001600160a01b038a81166024830152898116604483015260648083018a905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908d16916102bb9190610414565b6000604051808303816000865af19150503d80600081146102f8576040519150601f19603f3d011682016040523d82523d6000602084013e6102fd565b606091505b50915091508180156103335750805115806103335750805160201480156103335750808060200190518101906103339190610385565b965086610377577f16b21b374049dcebf0872579e85d4e9d5902788178b61bd82892c4b70584814b8282518360405161036e93929190610430565b60405180910390a15b505050505050949350505050565b600060208284031215610396578081fd5b815180151581146103a5578182fd5b9392505050565b600080600080608085870312156103c1578283fd5b84356103cc816104a3565b935060208501356103dc816104a3565b925060408501356103ec816104a3565b9396929550929360600135925050565b60006020828403121561040d578081fd5b5051919050565b60008251610426818460208701610473565b9190910192915050565b6000841515825283602083015260606040830152825180606084015261045d816080850160208701610473565b601f01601f191691909101608001949350505050565b60005b8381101561048e578181015183820152602001610476565b8381111561049d576000848401525b50505050565b6001600160a01b03811681146104b857600080fd5b5056fea26469706673582212204cd47de7139602c38bd878e742df2f0bda2fca7a0fe902f95fd7daa762c597cd64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/tokens/BundleToken.sol/BundleToken.dbg.json b/artifacts/contracts/tokens/BundleToken.sol/BundleToken.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/tokens/BundleToken.sol/BundleToken.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/tokens/BundleToken.sol/BundleToken.json b/artifacts/contracts/tokens/BundleToken.sol/BundleToken.json deleted file mode 100644 index fc8fd87c..00000000 --- a/artifacts/contracts/tokens/BundleToken.sol/BundleToken.json +++ /dev/null @@ -1,620 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BundleToken", - "sourceName": "contracts/tokens/BundleToken.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "approved", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "LogBundleTokenBurned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "tokenOwner", - "type": "address" - } - ], - "name": "LogBundleTokenMinted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SYMBOL", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "bundleIdForTokenId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "burned", - "outputs": [ - { - "internalType": "bool", - "name": "isBurned", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "exists", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "getBundleId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBundleModuleAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "bundleId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - } - ], - "name": "mint", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "bundleModule", - "type": "address" - } - ], - "name": "setBundleModule", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "tokenURI", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "tokenCount", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252601081526f23a4a310213ab7323632902a37b5b2b760811b60208083019182528351808501909452600384526242544b60e81b9084015281519192916200006591600091620000f4565b5080516200007b906001906020840190620000f4565b50505062000098620000926200009e60201b60201c565b620000a2565b620001d7565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b82805462000102906200019a565b90600052602060002090601f01602090048101928262000126576000855562000171565b82601f106200014157805160ff191683800117855562000171565b8280016001018555821562000171579182015b828111156200017157825182559160200191906001019062000154565b506200017f92915062000183565b5090565b5b808211156200017f576000815560010162000184565b600281046001821680620001af57607f821691505b60208210811415620001d157634e487b7160e01b600052602260045260246000fd5b50919050565b611aa580620001e76000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636ae9d6e8116100f9578063a38b714c11610097578063c87b56dd11610071578063c87b56dd146103b2578063e985e9c5146103c5578063f2fde38b14610401578063f76f8d7814610414576101a9565b8063a38b714c1461035d578063a3f4df7e14610370578063b88d4fde1461039f576101a9565b80638da5cb5b116100d35780638da5cb5b1461031e57806394bf804d1461032f57806395d89b4114610342578063a22cb4651461034a576101a9565b80636ae9d6e8146102e357806370a0823114610303578063715018a614610316576101a9565b806323b872dd1161016657806342966c681161014057806342966c68146102965780634f558e79146102a95780636352211e146102bf5780636ae73384146102d2576101a9565b806323b872dd1461025057806329a630831461026357806342842e0e14610283576101a9565b806301ffc9a7146101ae57806306fdde03146101d6578063081812fc146101eb578063095ea7b31461021657806318160ddd1461022b57806323250cae1461023d575b600080fd5b6101c16101bc366004611781565b610436565b60405190151581526020015b60405180910390f35b6101de61048a565b6040516101cd919061188b565b6101fe6101f93660046117b9565b61051c565b6040516001600160a01b0390911681526020016101cd565b610229610224366004611758565b610543565b005b6009545b6040519081526020016101cd565b6101c161024b3660046117b9565b61065e565b61022961025e36600461160e565b61068a565b61022f6102713660046117b9565b60009081526007602052604090205490565b61022961029136600461160e565b6106bb565b6102296102a43660046117b9565b6106d6565b6101c16102b73660046117b9565b600954101590565b6101fe6102cd3660046117b9565b61084a565b6008546001600160a01b03166101fe565b61022f6102f13660046117b9565b60076020526000908152604090205481565b61022f6103113660046115c2565b6108aa565b610229610930565b6006546001600160a01b03166101fe565b61022f61033d3660046117d1565b610944565b6101de610a85565b61022961035836600461171e565b610a94565b61022961036b3660046115c2565b610aa3565b6101de6040518060400160405280601081526020016f23a4a310213ab7323632902a37b5b2b760811b81525081565b6102296103ad366004611649565b610b9c565b6101de6103c03660046117b9565b610bd4565b6101c16103d33660046115dc565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61022961040f3660046115c2565b610c48565b6101de6040518060400160405280600381526020016242544b60e81b81525081565b60006001600160e01b031982166380ac58cd60e01b148061046757506001600160e01b03198216635b5e139f60e01b145b8061048257506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b606060008054610499906119ad565b80601f01602080910402602001604051908101604052809291908181526020018280546104c5906119ad565b80156105125780601f106104e757610100808354040283529160200191610512565b820191906000526020600020905b8154815290600101906020018083116104f557829003601f168201915b5050505050905090565b600061052782610cc1565b506000908152600460205260409020546001600160a01b031690565b600061054e8261084a565b9050806001600160a01b0316836001600160a01b031614156105c15760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105dd57506105dd81336103d3565b61064f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016105b8565b6106598383610d20565b505050565b600060095482111580156104825750506000908152600260205260409020546001600160a01b03161590565b6106943382610d8e565b6106b05760405162461bcd60e51b81526004016105b8906118f0565b610659838383610e0d565b61065983838360405180602001604052806000815250610b9c565b6008546001600160a01b031661072e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b0316146107915760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b6000818152600260205260409020546001600160a01b03166107f55760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42544b2d3030353a544f4b454e5f49445f494e56414c4944000060448201526064016105b8565b6107fe81610fa9565b6000818152600760209081526040918290205482519081529081018390527f9b94bd6eee531d53aaede5ff8a93d142b0afb2cf7fbbce1135a75efd7f29cb55910160405180910390a150565b6000818152600260205260408120546001600160a01b0316806104825760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b60006001600160a01b0382166109145760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105b8565b506001600160a01b031660009081526003602052604090205490565b610938611045565b610942600061109f565b565b6008546000906001600160a01b031661099f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b031614610a025760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b60098054906000610a12836119e8565b909155505060095460008181526007602052604090208490559050610a3782826110f1565b60408051848152602081018390526001600160a01b0384168183015290517ffd51d5a3232267986482b6be627e03dabfb0a2ce2025276823100423b5f558679181900360600190a192915050565b606060018054610499906119ad565b610a9f33838361110b565b5050565b6008546001600160a01b031615610b105760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030333a42554e444c455f4d4f44554c455f414c524560448201526a10511657d111519253915160aa1b60648201526084016105b8565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030343a494e56414c49445f42554e444c455f4d4f4460448201526a554c455f4144445245535360a81b60648201526084016105b8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610ba63383610d8e565b610bc25760405162461bcd60e51b81526004016105b8906118f0565b610bce848484846111da565b50505050565b6060610bdf82610cc1565b6000610bf660408051602081019091526000815290565b90506000815111610c165760405180602001604052806000815250610c41565b80610c208461120d565b604051602001610c3192919061181f565b6040516020818303038152906040525b9392505050565b610c50611045565b6001600160a01b038116610cb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b8565b610cbe8161109f565b50565b6000818152600260205260409020546001600160a01b0316610cbe5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610d558261084a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d9a8361084a565b9050806001600160a01b0316846001600160a01b03161480610de157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610e055750836001600160a01b0316610dfa8461051c565b6001600160a01b0316145b949350505050565b826001600160a01b0316610e208261084a565b6001600160a01b031614610e845760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016105b8565b6001600160a01b038216610ee65760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105b8565b610ef1600082610d20565b6001600160a01b0383166000908152600360205260408120805460019290610f1a90849061196a565b90915550506001600160a01b0382166000908152600360205260408120805460019290610f4890849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4610659565b6000610fb48261084a565b9050610fc1600083610d20565b6001600160a01b0381166000908152600360205260408120805460019290610fea90849061196a565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4610a9f565b6006546001600160a01b031633146109425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b8565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610a9f828260405180602001604052806000815250611328565b816001600160a01b0316836001600160a01b0316141561116d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105b8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6111e5848484610e0d565b6111f18484848461135b565b610bce5760405162461bcd60e51b81526004016105b89061189e565b60608161123257506040805180820190915260018152600360fc1b6020820152610485565b8160005b811561125c5780611246816119e8565b91506112559050600a83611956565b9150611236565b60008167ffffffffffffffff81111561128557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112af576020820181803683370190505b5090505b8415610e05576112c460018361196a565b91506112d1600a86611a03565b6112dc90603061193e565b60f81b8183815181106112ff57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611321600a86611956565b94506112b3565b6113328383611468565b61133f600084848461135b565b6106595760405162461bcd60e51b81526004016105b89061189e565b60006001600160a01b0384163b1561145d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061139f90339089908890889060040161184e565b602060405180830381600087803b1580156113b957600080fd5b505af19250505080156113e9575060408051601f3d908101601f191682019092526113e69181019061179d565b60015b611443573d808015611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50805161143b5760405162461bcd60e51b81526004016105b89061189e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610e05565b506001949350505050565b6001600160a01b0382166114be5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105b8565b6000818152600260205260409020546001600160a01b0316156115235760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105b8565b6001600160a01b038216600090815260036020526040812080546001929061154c90849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4610a9f565b80356001600160a01b038116811461048557600080fd5b6000602082840312156115d3578081fd5b610c41826115ab565b600080604083850312156115ee578081fd5b6115f7836115ab565b9150611605602084016115ab565b90509250929050565b600080600060608486031215611622578081fd5b61162b846115ab565b9250611639602085016115ab565b9150604084013590509250925092565b6000806000806080858703121561165e578081fd5b611667856115ab565b9350611675602086016115ab565b925060408501359150606085013567ffffffffffffffff80821115611698578283fd5b818701915087601f8301126116ab578283fd5b8135818111156116bd576116bd611a43565b604051601f8201601f19908116603f011681019083821181831017156116e5576116e5611a43565b816040528281528a60208487010111156116fd578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215611730578182fd5b611739836115ab565b91506020830135801515811461174d578182fd5b809150509250929050565b6000806040838503121561176a578182fd5b611773836115ab565b946020939093013593505050565b600060208284031215611792578081fd5b8135610c4181611a59565b6000602082840312156117ae578081fd5b8151610c4181611a59565b6000602082840312156117ca578081fd5b5035919050565b600080604083850312156117e3578182fd5b82359150611605602084016115ab565b6000815180845261180b816020860160208601611981565b601f01601f19169290920160200192915050565b60008351611831818460208801611981565b835190830190611845818360208801611981565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611881908301846117f3565b9695505050505050565b600060208252610c4160208301846117f3565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000821982111561195157611951611a17565b500190565b60008261196557611965611a2d565b500490565b60008282101561197c5761197c611a17565b500390565b60005b8381101561199c578181015183820152602001611984565b83811115610bce5750506000910152565b6002810460018216806119c157607f821691505b602082108114156119e257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119fc576119fc611a17565b5060010190565b600082611a1257611a12611a2d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610cbe57600080fdfea264697066735822122032918e0ae1816ccf1a3674eda3a468fbc7e9aedcee3910edd8f9f7aeb8199bcb64736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80636ae9d6e8116100f9578063a38b714c11610097578063c87b56dd11610071578063c87b56dd146103b2578063e985e9c5146103c5578063f2fde38b14610401578063f76f8d7814610414576101a9565b8063a38b714c1461035d578063a3f4df7e14610370578063b88d4fde1461039f576101a9565b80638da5cb5b116100d35780638da5cb5b1461031e57806394bf804d1461032f57806395d89b4114610342578063a22cb4651461034a576101a9565b80636ae9d6e8146102e357806370a0823114610303578063715018a614610316576101a9565b806323b872dd1161016657806342966c681161014057806342966c68146102965780634f558e79146102a95780636352211e146102bf5780636ae73384146102d2576101a9565b806323b872dd1461025057806329a630831461026357806342842e0e14610283576101a9565b806301ffc9a7146101ae57806306fdde03146101d6578063081812fc146101eb578063095ea7b31461021657806318160ddd1461022b57806323250cae1461023d575b600080fd5b6101c16101bc366004611781565b610436565b60405190151581526020015b60405180910390f35b6101de61048a565b6040516101cd919061188b565b6101fe6101f93660046117b9565b61051c565b6040516001600160a01b0390911681526020016101cd565b610229610224366004611758565b610543565b005b6009545b6040519081526020016101cd565b6101c161024b3660046117b9565b61065e565b61022961025e36600461160e565b61068a565b61022f6102713660046117b9565b60009081526007602052604090205490565b61022961029136600461160e565b6106bb565b6102296102a43660046117b9565b6106d6565b6101c16102b73660046117b9565b600954101590565b6101fe6102cd3660046117b9565b61084a565b6008546001600160a01b03166101fe565b61022f6102f13660046117b9565b60076020526000908152604090205481565b61022f6103113660046115c2565b6108aa565b610229610930565b6006546001600160a01b03166101fe565b61022f61033d3660046117d1565b610944565b6101de610a85565b61022961035836600461171e565b610a94565b61022961036b3660046115c2565b610aa3565b6101de6040518060400160405280601081526020016f23a4a310213ab7323632902a37b5b2b760811b81525081565b6102296103ad366004611649565b610b9c565b6101de6103c03660046117b9565b610bd4565b6101c16103d33660046115dc565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61022961040f3660046115c2565b610c48565b6101de6040518060400160405280600381526020016242544b60e81b81525081565b60006001600160e01b031982166380ac58cd60e01b148061046757506001600160e01b03198216635b5e139f60e01b145b8061048257506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b606060008054610499906119ad565b80601f01602080910402602001604051908101604052809291908181526020018280546104c5906119ad565b80156105125780601f106104e757610100808354040283529160200191610512565b820191906000526020600020905b8154815290600101906020018083116104f557829003601f168201915b5050505050905090565b600061052782610cc1565b506000908152600460205260409020546001600160a01b031690565b600061054e8261084a565b9050806001600160a01b0316836001600160a01b031614156105c15760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806105dd57506105dd81336103d3565b61064f5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016105b8565b6106598383610d20565b505050565b600060095482111580156104825750506000908152600260205260409020546001600160a01b03161590565b6106943382610d8e565b6106b05760405162461bcd60e51b81526004016105b8906118f0565b610659838383610e0d565b61065983838360405180602001604052806000815250610b9c565b6008546001600160a01b031661072e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b0316146107915760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b6000818152600260205260409020546001600160a01b03166107f55760405162461bcd60e51b815260206004820152601e60248201527f4552524f523a42544b2d3030353a544f4b454e5f49445f494e56414c4944000060448201526064016105b8565b6107fe81610fa9565b6000818152600760209081526040918290205482519081529081018390527f9b94bd6eee531d53aaede5ff8a93d142b0afb2cf7fbbce1135a75efd7f29cb55910160405180910390a150565b6000818152600260205260408120546001600160a01b0316806104825760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b60006001600160a01b0382166109145760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016105b8565b506001600160a01b031660009081526003602052604090205490565b610938611045565b610942600061109f565b565b6008546000906001600160a01b031661099f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a42544b2d3030313a4e4f545f494e495449414c495a454400000060448201526064016105b8565b6008546001600160a01b0316336001600160a01b031614610a025760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a42544b2d3030323a4e4f545f42554e444c455f4d4f44554c450060448201526064016105b8565b60098054906000610a12836119e8565b909155505060095460008181526007602052604090208490559050610a3782826110f1565b60408051848152602081018390526001600160a01b0384168183015290517ffd51d5a3232267986482b6be627e03dabfb0a2ce2025276823100423b5f558679181900360600190a192915050565b606060018054610499906119ad565b610a9f33838361110b565b5050565b6008546001600160a01b031615610b105760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030333a42554e444c455f4d4f44554c455f414c524560448201526a10511657d111519253915160aa1b60648201526084016105b8565b6001600160a01b038116610b7a5760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a42544b2d3030343a494e56414c49445f42554e444c455f4d4f4460448201526a554c455f4144445245535360a81b60648201526084016105b8565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b610ba63383610d8e565b610bc25760405162461bcd60e51b81526004016105b8906118f0565b610bce848484846111da565b50505050565b6060610bdf82610cc1565b6000610bf660408051602081019091526000815290565b90506000815111610c165760405180602001604052806000815250610c41565b80610c208461120d565b604051602001610c3192919061181f565b6040516020818303038152906040525b9392505050565b610c50611045565b6001600160a01b038116610cb55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105b8565b610cbe8161109f565b50565b6000818152600260205260409020546001600160a01b0316610cbe5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016105b8565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610d558261084a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d9a8361084a565b9050806001600160a01b0316846001600160a01b03161480610de157506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80610e055750836001600160a01b0316610dfa8461051c565b6001600160a01b0316145b949350505050565b826001600160a01b0316610e208261084a565b6001600160a01b031614610e845760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016105b8565b6001600160a01b038216610ee65760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105b8565b610ef1600082610d20565b6001600160a01b0383166000908152600360205260408120805460019290610f1a90849061196a565b90915550506001600160a01b0382166000908152600360205260408120805460019290610f4890849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4610659565b6000610fb48261084a565b9050610fc1600083610d20565b6001600160a01b0381166000908152600360205260408120805460019290610fea90849061196a565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4610a9f565b6006546001600160a01b031633146109425760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105b8565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610a9f828260405180602001604052806000815250611328565b816001600160a01b0316836001600160a01b0316141561116d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016105b8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6111e5848484610e0d565b6111f18484848461135b565b610bce5760405162461bcd60e51b81526004016105b89061189e565b60608161123257506040805180820190915260018152600360fc1b6020820152610485565b8160005b811561125c5780611246816119e8565b91506112559050600a83611956565b9150611236565b60008167ffffffffffffffff81111561128557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112af576020820181803683370190505b5090505b8415610e05576112c460018361196a565b91506112d1600a86611a03565b6112dc90603061193e565b60f81b8183815181106112ff57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350611321600a86611956565b94506112b3565b6113328383611468565b61133f600084848461135b565b6106595760405162461bcd60e51b81526004016105b89061189e565b60006001600160a01b0384163b1561145d57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061139f90339089908890889060040161184e565b602060405180830381600087803b1580156113b957600080fd5b505af19250505080156113e9575060408051601f3d908101601f191682019092526113e69181019061179d565b60015b611443573d808015611417576040519150601f19603f3d011682016040523d82523d6000602084013e61141c565b606091505b50805161143b5760405162461bcd60e51b81526004016105b89061189e565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610e05565b506001949350505050565b6001600160a01b0382166114be5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105b8565b6000818152600260205260409020546001600160a01b0316156115235760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016105b8565b6001600160a01b038216600090815260036020526040812080546001929061154c90849061193e565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4610a9f565b80356001600160a01b038116811461048557600080fd5b6000602082840312156115d3578081fd5b610c41826115ab565b600080604083850312156115ee578081fd5b6115f7836115ab565b9150611605602084016115ab565b90509250929050565b600080600060608486031215611622578081fd5b61162b846115ab565b9250611639602085016115ab565b9150604084013590509250925092565b6000806000806080858703121561165e578081fd5b611667856115ab565b9350611675602086016115ab565b925060408501359150606085013567ffffffffffffffff80821115611698578283fd5b818701915087601f8301126116ab578283fd5b8135818111156116bd576116bd611a43565b604051601f8201601f19908116603f011681019083821181831017156116e5576116e5611a43565b816040528281528a60208487010111156116fd578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215611730578182fd5b611739836115ab565b91506020830135801515811461174d578182fd5b809150509250929050565b6000806040838503121561176a578182fd5b611773836115ab565b946020939093013593505050565b600060208284031215611792578081fd5b8135610c4181611a59565b6000602082840312156117ae578081fd5b8151610c4181611a59565b6000602082840312156117ca578081fd5b5035919050565b600080604083850312156117e3578182fd5b82359150611605602084016115ab565b6000815180845261180b816020860160208601611981565b601f01601f19169290920160200192915050565b60008351611831818460208801611981565b835190830190611845818360208801611981565b01949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611881908301846117f3565b9695505050505050565b600060208252610c4160208301846117f3565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6000821982111561195157611951611a17565b500190565b60008261196557611965611a2d565b500490565b60008282101561197c5761197c611a17565b500390565b60005b8381101561199c578181015183820152602001611984565b83811115610bce5750506000910152565b6002810460018216806119c157607f821691505b602082108114156119e257634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119fc576119fc611a17565b5060010190565b600082611a1257611a12611a2d565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610cbe57600080fdfea264697066735822122032918e0ae1816ccf1a3674eda3a468fbc7e9aedcee3910edd8f9f7aeb8199bcb64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.dbg.json b/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.dbg.json deleted file mode 100644 index bc9529ca..00000000 --- a/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../build-info/599ab32d9f05fdb89405f0e2d60efa8c.json" -} diff --git a/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.json b/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.json deleted file mode 100644 index 99609cfa..00000000 --- a/artifacts/contracts/tokens/RiskpoolToken.sol/RiskpoolToken.json +++ /dev/null @@ -1,312 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "RiskpoolToken", - "sourceName": "contracts/tokens/RiskpoolToken.sol", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SYMBOL", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b8152506040518060400160405280600381526020016214941560ea1b815250816003908051906020019061006e92919061008a565b50805161008290600490602084019061008a565b50505061015e565b82805461009690610123565b90600052602060002090601f0160209004810192826100b857600085556100fe565b82601f106100d157805160ff19168380011785556100fe565b828001600101855582156100fe579182015b828111156100fe5782518255916020019190600101906100e3565b5061010a92915061010e565b5090565b5b8082111561010a576000815560010161010f565b60028104600182168061013757607f821691505b6020821081141561015857634e487b7160e01b600052602260045260246000fd5b50919050565b6108fc8061016d6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101a8578063a9059cbb146101bb578063dd62ed3e146101ce578063f76f8d78146101e1576100cf565b806370a082311461015c57806395d89b411461016f578063a3f4df7e14610177576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610203565b6040516100e99190610814565b60405180910390f35b6101056101003660046107eb565b610295565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107b0565b6102ad565b604051601281526020016100e9565b6101056101573660046107eb565b6102d1565b61011961016a36600461075d565b6102f3565b6100dc610312565b6100dc6040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b81525081565b6101056101b63660046107eb565b610321565b6101056101c93660046107eb565b6103a1565b6101196101dc36600461077e565b6103af565b6100dc6040518060400160405280600381526020016214941560ea1b81525081565b6060600380546102129061088b565b80601f016020809104026020016040519081016040528092919081815260200182805461023e9061088b565b801561028b5780601f106102605761010080835404028352916020019161028b565b820191906000526020600020905b81548152906001019060200180831161026e57829003601f168201915b5050505050905090565b6000336102a38185856103da565b5060019392505050565b6000336102bb8582856104fe565b6102c6858585610578565b506001949350505050565b6000336102a38185856102e483836103af565b6102ee9190610867565b6103da565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102129061088b565b6000338161032f82866103af565b9050838110156103945760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102c682868684036103da565b6000336102a3818585610578565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038b565b6001600160a01b03821661049d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061050a84846103af565b9050600019811461057257818110156105655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038b565b61057284848484036103da565b50505050565b6001600160a01b0383166105dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038b565b6001600160a01b03821661063e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038b565b6001600160a01b038316600090815260208190526040902054818110156106b65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161038b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106ed908490610867565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161073991815260200190565b60405180910390a3610572565b80356001600160a01b038116811461030d57600080fd5b60006020828403121561076e578081fd5b61077782610746565b9392505050565b60008060408385031215610790578081fd5b61079983610746565b91506107a760208401610746565b90509250929050565b6000806000606084860312156107c4578081fd5b6107cd84610746565b92506107db60208501610746565b9150604084013590509250925092565b600080604083850312156107fd578182fd5b61080683610746565b946020939093013593505050565b6000602080835283518082850152825b8181101561084057858101830151858201604001528201610824565b818111156108515783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561088657634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061089f57607f821691505b602082108114156108c057634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212200894a2a8aec7d823a7bf129c100a556aaf32c5c98f4e46c38df545cdf613f4dd64736f6c63430008020033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c578063a457c2d711610066578063a457c2d7146101a8578063a9059cbb146101bb578063dd62ed3e146101ce578063f76f8d78146101e1576100cf565b806370a082311461015c57806395d89b411461016f578063a3f4df7e14610177576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a5780633950935114610149575b600080fd5b6100dc610203565b6040516100e99190610814565b60405180910390f35b6101056101003660046107eb565b610295565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107b0565b6102ad565b604051601281526020016100e9565b6101056101573660046107eb565b6102d1565b61011961016a36600461075d565b6102f3565b6100dc610312565b6100dc6040518060400160405280601281526020017123a4a3102934b9b5b837b7b6102a37b5b2b760711b81525081565b6101056101b63660046107eb565b610321565b6101056101c93660046107eb565b6103a1565b6101196101dc36600461077e565b6103af565b6100dc6040518060400160405280600381526020016214941560ea1b81525081565b6060600380546102129061088b565b80601f016020809104026020016040519081016040528092919081815260200182805461023e9061088b565b801561028b5780601f106102605761010080835404028352916020019161028b565b820191906000526020600020905b81548152906001019060200180831161026e57829003601f168201915b5050505050905090565b6000336102a38185856103da565b5060019392505050565b6000336102bb8582856104fe565b6102c6858585610578565b506001949350505050565b6000336102a38185856102e483836103af565b6102ee9190610867565b6103da565b6001600160a01b0381166000908152602081905260409020545b919050565b6060600480546102129061088b565b6000338161032f82866103af565b9050838110156103945760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6102c682868684036103da565b6000336102a3818585610578565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161038b565b6001600160a01b03821661049d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161038b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061050a84846103af565b9050600019811461057257818110156105655760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038b565b61057284848484036103da565b50505050565b6001600160a01b0383166105dc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161038b565b6001600160a01b03821661063e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161038b565b6001600160a01b038316600090815260208190526040902054818110156106b65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161038b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906106ed908490610867565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161073991815260200190565b60405180910390a3610572565b80356001600160a01b038116811461030d57600080fd5b60006020828403121561076e578081fd5b61077782610746565b9392505050565b60008060408385031215610790578081fd5b61079983610746565b91506107a760208401610746565b90509250929050565b6000806000606084860312156107c4578081fd5b6107cd84610746565b92506107db60208501610746565b9150604084013590509250925092565b600080604083850312156107fd578182fd5b61080683610746565b946020939093013593505050565b6000602080835283518082850152825b8181101561084057858101830151858201604001528201610824565b818111156108515783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111561088657634e487b7160e01b81526011600452602481fd5b500190565b60028104600182168061089f57607f821691505b602082108114156108c057634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212200894a2a8aec7d823a7bf129c100a556aaf32c5c98f4e46c38df545cdf613f4dd64736f6c63430008020033", - "linkReferences": {}, - "deployedLinkReferences": {} -} From 1d9ed5035b0487fbd8fb0265dc24d07d7416f549 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Wed, 7 Jun 2023 16:31:06 +0000 Subject: [PATCH 07/29] add solidity-docgen dev dependency --- package-lock.json | 698 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 4 +- 2 files changed, 692 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 20f99e03..0b21498b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,9 @@ "dependencies": { "@chainlink/contracts": "0.4.1", "@etherisc/gif-interface": "2.0.0-rc.1-0", - "@openzeppelin/contracts": "4.7.3", + "@openzeppelin/contracts": "4.7.3" + }, + "devDependencies": { "solidity-docgen": "^0.6.0-beta.35" } }, @@ -24,12 +26,14 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==", + "dev": true, "peer": true }, "node_modules/@chainsafe/persistent-merkle-tree": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz", "integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==", + "dev": true, "peer": true, "dependencies": { "@chainsafe/as-sha256": "^0.3.1" @@ -39,6 +43,7 @@ "version": "0.9.4", "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz", "integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==", + "dev": true, "peer": true, "dependencies": { "@chainsafe/as-sha256": "^0.3.1", @@ -58,6 +63,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "dev": true, "funding": [ { "type": "individual", @@ -85,6 +91,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "dev": true, "funding": [ { "type": "individual", @@ -110,6 +117,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "dev": true, "funding": [ { "type": "individual", @@ -133,6 +141,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "dev": true, "funding": [ { "type": "individual", @@ -156,6 +165,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "dev": true, "funding": [ { "type": "individual", @@ -175,6 +185,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "dev": true, "funding": [ { "type": "individual", @@ -195,6 +206,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "dev": true, "funding": [ { "type": "individual", @@ -216,6 +228,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "dev": true, "funding": [ { "type": "individual", @@ -235,6 +248,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "dev": true, "funding": [ { "type": "individual", @@ -254,6 +268,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "dev": true, "funding": [ { "type": "individual", @@ -282,6 +297,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "dev": true, "funding": [ { "type": "individual", @@ -309,6 +325,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "dev": true, "funding": [ { "type": "individual", @@ -339,6 +356,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "dev": true, "funding": [ { "type": "individual", @@ -370,6 +388,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "dev": true, "funding": [ { "type": "individual", @@ -390,6 +409,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "dev": true, "funding": [ { "type": "individual", @@ -406,6 +426,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "dev": true, "funding": [ { "type": "individual", @@ -425,6 +446,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "dev": true, "funding": [ { "type": "individual", @@ -445,6 +467,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "dev": true, "funding": [ { "type": "individual", @@ -464,6 +487,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "dev": true, "funding": [ { "type": "individual", @@ -502,6 +526,7 @@ "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, "peer": true, "engines": { "node": ">=8.3.0" @@ -523,6 +548,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "dev": true, "funding": [ { "type": "individual", @@ -543,6 +569,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "dev": true, "funding": [ { "type": "individual", @@ -563,6 +590,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "dev": true, "funding": [ { "type": "individual", @@ -584,6 +612,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "dev": true, "funding": [ { "type": "individual", @@ -608,6 +637,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "dev": true, "funding": [ { "type": "individual", @@ -632,6 +662,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "dev": true, "funding": [ { "type": "individual", @@ -653,6 +684,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "dev": true, "funding": [ { "type": "individual", @@ -680,6 +712,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "dev": true, "funding": [ { "type": "individual", @@ -701,6 +734,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "dev": true, "funding": [ { "type": "individual", @@ -734,6 +768,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "dev": true, "funding": [ { "type": "individual", @@ -757,6 +792,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "dev": true, "funding": [ { "type": "individual", @@ -780,6 +816,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dev": true, "peer": true, "dependencies": { "ethereumjs-abi": "^0.6.8", @@ -796,6 +833,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true, "funding": [ { "type": "individual", @@ -808,6 +846,7 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true, "funding": [ { "type": "individual", @@ -820,6 +859,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.1.tgz", "integrity": "sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw==", + "dev": true, "peer": true, "dependencies": { "@nomicfoundation/ethereumjs-common": "4.0.1", @@ -838,6 +878,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", @@ -861,6 +902,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.1.tgz", "integrity": "sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A==", + "dev": true, "peer": true, "dependencies": { "@nomicfoundation/ethereumjs-block": "5.0.1", @@ -885,6 +927,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", @@ -908,6 +951,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.1.tgz", "integrity": "sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g==", + "dev": true, "peer": true, "dependencies": { "@nomicfoundation/ethereumjs-util": "9.0.1", @@ -918,6 +962,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.1.tgz", "integrity": "sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w==", + "dev": true, "peer": true, "dependencies": { "@nomicfoundation/ethereumjs-block": "5.0.1", @@ -935,6 +980,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", @@ -958,6 +1004,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.1.tgz", "integrity": "sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ==", + "dev": true, "peer": true, "dependencies": { "@ethersproject/providers": "^5.7.1", @@ -977,6 +1024,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", @@ -1000,6 +1048,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.1.tgz", "integrity": "sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ==", + "dev": true, "peer": true, "bin": { "rlp": "bin/rlp" @@ -1012,6 +1061,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.1.tgz", "integrity": "sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ==", + "dev": true, "peer": true, "dependencies": { "@nomicfoundation/ethereumjs-common": "4.0.1", @@ -1026,6 +1076,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", @@ -1049,6 +1100,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.1.tgz", "integrity": "sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA==", + "dev": true, "peer": true, "dependencies": { "@nomicfoundation/ethereumjs-rlp": "5.0.1", @@ -1065,6 +1117,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", @@ -1088,6 +1141,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.1.tgz", "integrity": "sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w==", + "dev": true, "peer": true, "dependencies": { "@chainsafe/ssz": "^0.9.2", @@ -1105,6 +1159,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", @@ -1128,6 +1183,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.1.tgz", "integrity": "sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA==", + "dev": true, "peer": true, "dependencies": { "@chainsafe/ssz": "^0.10.0", @@ -1142,6 +1198,7 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz", "integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==", + "dev": true, "peer": true, "dependencies": { "@chainsafe/as-sha256": "^0.3.1" @@ -1151,6 +1208,7 @@ "version": "0.10.2", "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz", "integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==", + "dev": true, "peer": true, "dependencies": { "@chainsafe/as-sha256": "^0.3.1", @@ -1161,6 +1219,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", @@ -1184,6 +1243,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.1.tgz", "integrity": "sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ==", + "dev": true, "peer": true, "dependencies": { "@nomicfoundation/ethereumjs-block": "5.0.1", @@ -1208,6 +1268,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", @@ -1231,6 +1292,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "dev": true, "peer": true, "engines": { "node": ">= 12" @@ -1255,6 +1317,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -1271,6 +1334,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "darwin" @@ -1287,6 +1351,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "freebsd" @@ -1303,6 +1368,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -1319,6 +1385,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -1335,6 +1402,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -1351,6 +1419,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux" @@ -1367,6 +1436,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -1383,6 +1453,7 @@ "cpu": [ "ia32" ], + "dev": true, "optional": true, "os": [ "win32" @@ -1399,6 +1470,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -1417,6 +1489,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", + "dev": true, "funding": [ { "type": "individual", @@ -1429,6 +1502,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "dev": true, "funding": [ { "type": "individual", @@ -1446,6 +1520,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "dev": true, "funding": [ { "type": "individual", @@ -1462,6 +1537,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, "peer": true, "dependencies": { "@sentry/hub": "5.30.0", @@ -1478,6 +1554,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, "peer": true, "dependencies": { "@sentry/types": "5.30.0", @@ -1492,6 +1569,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, "peer": true, "dependencies": { "@sentry/hub": "5.30.0", @@ -1506,6 +1584,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, "peer": true, "dependencies": { "@sentry/core": "5.30.0", @@ -1526,6 +1605,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, "peer": true, "dependencies": { "@sentry/hub": "5.30.0", @@ -1542,6 +1622,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true, "peer": true, "engines": { "node": ">=6" @@ -1551,6 +1632,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, "peer": true, "dependencies": { "@sentry/types": "5.30.0", @@ -1564,6 +1646,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, "peer": true, "dependencies": { "@types/node": "*" @@ -1573,18 +1656,21 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true, "peer": true }, "node_modules/@types/node": { "version": "20.2.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", + "dev": true, "peer": true }, "node_modules/@types/pbkdf2": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dev": true, "peer": true, "dependencies": { "@types/node": "*" @@ -1594,6 +1680,7 @@ "version": "2.3.15", "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "dev": true, "peer": true, "dependencies": { "@types/node": "*", @@ -1604,6 +1691,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "dev": true, "peer": true, "dependencies": { "@types/node": "*" @@ -1613,6 +1701,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, "peer": true, "dependencies": { "event-target-shim": "^5.0.0" @@ -1625,6 +1714,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "dev": true, "peer": true, "dependencies": { "buffer": "^6.0.3", @@ -1643,6 +1733,7 @@ "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, "peer": true, "engines": { "node": ">=0.3.0" @@ -1652,12 +1743,14 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true, "peer": true }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, "peer": true, "dependencies": { "debug": "4" @@ -1670,6 +1763,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, "peer": true, "dependencies": { "clean-stack": "^2.0.0", @@ -1683,6 +1777,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, "peer": true, "engines": { "node": ">=6" @@ -1692,6 +1787,7 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, "peer": true, "dependencies": { "type-fest": "^0.21.3" @@ -1707,6 +1803,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "peer": true, "engines": { "node": ">=8" @@ -1716,6 +1813,7 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "peer": true, "dependencies": { "color-convert": "^1.9.0" @@ -1728,6 +1826,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "peer": true, "dependencies": { "normalize-path": "^3.0.0", @@ -1741,18 +1840,21 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, "peer": true }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, "peer": true }, "node_modules/base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dev": true, "peer": true, "dependencies": { "safe-buffer": "^5.0.1" @@ -1762,6 +1864,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, "funding": [ { "type": "github", @@ -1782,12 +1885,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "dev": true, "peer": true }, "node_modules/bigint-crypto-utils": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.2.2.tgz", "integrity": "sha512-U1RbE3aX9ayCUVcIPHuPDPKcK3SFOXf93J1UK/iHlJuQB7bhagPIX06/CLpLEsDThJ7KA4Dhrnzynl+d2weTiw==", + "dev": true, "peer": true, "engines": { "node": ">=14.0.0" @@ -1797,6 +1902,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, "peer": true, "engines": { "node": ">=8" @@ -1806,18 +1912,21 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "dev": true, "peer": true }, "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true, "peer": true }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -1828,6 +1937,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "peer": true, "dependencies": { "fill-range": "^7.0.1" @@ -1840,12 +1950,14 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true, "peer": true }, "node_modules/browser-level": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "dev": true, "peer": true, "dependencies": { "abstract-level": "^1.0.2", @@ -1858,12 +1970,14 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, "peer": true }, "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, "peer": true, "dependencies": { "buffer-xor": "^1.0.3", @@ -1878,6 +1992,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dev": true, "peer": true, "dependencies": { "base-x": "^3.0.2" @@ -1887,6 +2002,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dev": true, "peer": true, "dependencies": { "bs58": "^4.0.0", @@ -1898,6 +2014,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, "funding": [ { "type": "github", @@ -1922,18 +2039,21 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, "peer": true }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true, "peer": true }, "node_modules/busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, "peer": true, "dependencies": { "streamsearch": "^1.1.0" @@ -1946,6 +2066,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, "peer": true, "engines": { "node": ">= 0.8" @@ -1955,6 +2076,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "peer": true, "dependencies": { "function-bind": "^1.1.1", @@ -1968,6 +2090,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, "peer": true, "engines": { "node": ">=10" @@ -1980,6 +2103,7 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", + "dev": true, "peer": true, "engines": { "node": ">= 0.8.0" @@ -1989,6 +2113,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "dev": true, "peer": true, "engines": { "node": ">=6" @@ -1998,6 +2123,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "peer": true, "dependencies": { "ansi-styles": "^3.2.1", @@ -2012,6 +2138,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "funding": [ { "type": "individual", @@ -2039,12 +2166,14 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true, "peer": true }, "node_modules/cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, "peer": true, "dependencies": { "inherits": "^2.0.1", @@ -2055,6 +2184,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", + "dev": true, "hasInstallScript": true, "peer": true, "dependencies": { @@ -2072,6 +2202,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, "peer": true, "engines": { "node": ">=6" @@ -2081,6 +2212,7 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, "peer": true, "dependencies": { "string-width": "^4.2.0", @@ -2092,6 +2224,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "peer": true, "dependencies": { "color-name": "1.1.3" @@ -2101,30 +2234,35 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, "peer": true }, "node_modules/command-exists": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true, "peer": true }, "node_modules/commander": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true, "peer": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, "peer": true }, "node_modules/cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, "peer": true, "engines": { "node": ">= 0.6" @@ -2134,6 +2272,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true, "peer": true, "bin": { "crc32": "bin/crc32.njs" @@ -2146,6 +2285,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, "peer": true, "dependencies": { "cipher-base": "^1.0.1", @@ -2159,6 +2299,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, "peer": true, "dependencies": { "cipher-base": "^1.0.3", @@ -2173,6 +2314,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "peer": true, "dependencies": { "ms": "2.1.2" @@ -2190,6 +2332,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, "peer": true, "engines": { "node": ">=10" @@ -2202,6 +2345,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, "peer": true, "engines": { "node": ">= 0.8" @@ -2211,6 +2355,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, "peer": true, "engines": { "node": ">=0.3.1" @@ -2220,6 +2365,7 @@ "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, "peer": true, "dependencies": { "bn.js": "^4.11.9", @@ -2235,18 +2381,21 @@ "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, "peer": true }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "peer": true }, "node_modules/enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, "peer": true, "dependencies": { "ansi-colors": "^4.1.1" @@ -2259,6 +2408,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, "peer": true, "engines": { "node": ">=6" @@ -2268,6 +2418,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, "peer": true, "engines": { "node": ">=6" @@ -2277,6 +2428,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, "peer": true, "engines": { "node": ">=0.8.0" @@ -2286,6 +2438,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "dev": true, "peer": true, "dependencies": { "@noble/hashes": "1.2.0", @@ -2298,6 +2451,7 @@ "version": "0.6.8", "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dev": true, "peer": true, "dependencies": { "bn.js": "^4.11.8", @@ -2308,12 +2462,14 @@ "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, "peer": true }, "node_modules/ethereumjs-util": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, "peer": true, "dependencies": { "@types/bn.js": "^4.11.3", @@ -2329,6 +2485,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, "peer": true, "dependencies": { "@types/node": "*" @@ -2338,12 +2495,14 @@ "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, "peer": true }, "node_modules/ethereumjs-util/node_modules/ethereum-cryptography": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "dependencies": { "@types/pbkdf2": "^3.0.0", @@ -2367,6 +2526,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "dev": true, "funding": [ { "type": "individual", @@ -2415,6 +2575,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dev": true, "peer": true, "dependencies": { "is-hex-prefixed": "1.0.0", @@ -2429,6 +2590,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, "peer": true, "engines": { "node": ">=6" @@ -2438,6 +2600,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, "peer": true, "dependencies": { "md5.js": "^1.3.4", @@ -2448,6 +2611,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "peer": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -2460,6 +2624,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, "peer": true, "dependencies": { "locate-path": "^2.0.0" @@ -2472,6 +2637,7 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, "peer": true, "bin": { "flat": "cli.js" @@ -2481,6 +2647,7 @@ "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, "funding": [ { "type": "individual", @@ -2501,12 +2668,14 @@ "version": "1.19.3", "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true, "peer": true }, "node_modules/fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "peer": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -2521,12 +2690,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, "peer": true }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -2541,18 +2712,21 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true, "peer": true }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true, "peer": true }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, "peer": true, "engines": { "node": "6.* || 8.* || >= 10.*" @@ -2562,6 +2736,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, "peer": true, "dependencies": { "function-bind": "^1.1.1", @@ -2577,6 +2752,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, "peer": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -2597,6 +2773,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "peer": true, "dependencies": { "is-glob": "^4.0.1" @@ -2609,12 +2786,14 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, "peer": true }, "node_modules/handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.0", @@ -2635,6 +2814,7 @@ "version": "2.14.1", "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.14.1.tgz", "integrity": "sha512-H3Qp/UKyQGmPDDBSfMoSyH18rRnac90rsb0LNer+sKe6at6rxLe4D5j+M+1icqZQF02iLPjNRwc/PA8OPf757A==", + "dev": true, "peer": true, "dependencies": { "@ethersproject/abi": "^5.1.2", @@ -2711,6 +2891,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "peer": true, "dependencies": { "function-bind": "^1.1.1" @@ -2723,6 +2904,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "peer": true, "engines": { "node": ">=4" @@ -2732,6 +2914,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, "peer": true, "engines": { "node": ">= 0.4" @@ -2744,6 +2927,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, "peer": true, "engines": { "node": ">= 0.4" @@ -2756,6 +2940,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, "peer": true, "dependencies": { "inherits": "^2.0.4", @@ -2770,6 +2955,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -2790,6 +2976,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, "peer": true, "dependencies": { "inherits": "^2.0.3", @@ -2800,6 +2987,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, "peer": true, "bin": { "he": "bin/he" @@ -2809,6 +2997,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, "peer": true, "dependencies": { "hash.js": "^1.0.3", @@ -2820,6 +3009,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, "peer": true, "dependencies": { "depd": "2.0.0", @@ -2836,6 +3026,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, "peer": true, "dependencies": { "agent-base": "6", @@ -2849,6 +3040,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" @@ -2861,6 +3053,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, "funding": [ { "type": "github", @@ -2881,12 +3074,14 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "dev": true, "peer": true }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, "peer": true, "engines": { "node": ">=8" @@ -2896,6 +3091,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "peer": true, "dependencies": { "once": "^1.3.0", @@ -2906,12 +3102,14 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, "peer": true }, "node_modules/io-ts": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, "peer": true, "dependencies": { "fp-ts": "^1.0.0" @@ -2921,6 +3119,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "peer": true, "dependencies": { "binary-extensions": "^2.0.0" @@ -2933,6 +3132,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, "funding": [ { "type": "github", @@ -2956,6 +3156,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "peer": true, "engines": { "node": ">=0.10.0" @@ -2965,6 +3166,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "peer": true, "engines": { "node": ">=8" @@ -2974,6 +3176,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "peer": true, "dependencies": { "is-extglob": "^2.1.1" @@ -2986,6 +3189,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "dev": true, "peer": true, "engines": { "node": ">=6.5.0", @@ -2996,6 +3200,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "peer": true, "engines": { "node": ">=0.12.0" @@ -3005,6 +3210,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, "peer": true, "engines": { "node": ">=8" @@ -3014,6 +3220,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, "peer": true, "engines": { "node": ">=10" @@ -3026,6 +3233,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.1.tgz", "integrity": "sha512-6Gsx8R0RucyePbWqPssR8DyfuXmLBooYN5cZFZKjHGnQuaf7pEzhtpceagJxVu4LqhYY5EYA7nko3FmeHZ1KbA==", + "dev": true, "peer": true, "funding": { "type": "opencollective", @@ -3036,12 +3244,14 @@ "version": "0.8.0", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true, "peer": true }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "peer": true, "dependencies": { "argparse": "^2.0.1" @@ -3054,6 +3264,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, "peer": true, "optionalDependencies": { "graceful-fs": "^4.1.6" @@ -3063,6 +3274,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", + "dev": true, "hasInstallScript": true, "peer": true, "dependencies": { @@ -3078,6 +3290,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "dev": true, "peer": true, "optionalDependencies": { "graceful-fs": "^4.1.9" @@ -3087,6 +3300,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", + "dev": true, "peer": true, "dependencies": { "browser-level": "^1.0.1", @@ -3104,6 +3318,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", + "dev": true, "peer": true, "engines": { "node": ">=12" @@ -3113,6 +3328,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", + "dev": true, "peer": true, "dependencies": { "buffer": "^6.0.3", @@ -3126,6 +3342,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, "peer": true, "dependencies": { "p-locate": "^2.0.0", @@ -3139,12 +3356,14 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, "peer": true }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, "peer": true, "dependencies": { "chalk": "^4.1.0", @@ -3161,6 +3380,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "peer": true, "dependencies": { "color-convert": "^2.0.1" @@ -3176,6 +3396,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "peer": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -3192,6 +3413,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "peer": true, "dependencies": { "color-name": "~1.1.4" @@ -3204,12 +3426,14 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "peer": true }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "peer": true, "engines": { "node": ">=8" @@ -3219,6 +3443,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -3231,12 +3456,14 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true, "peer": true }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "peer": true, "dependencies": { "yallist": "^3.0.2" @@ -3246,6 +3473,7 @@ "version": "0.7.9", "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", + "dev": true, "peer": true, "engines": { "node": ">=8.9.0" @@ -3255,6 +3483,7 @@ "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, "peer": true, "dependencies": { "hash-base": "^3.0.0", @@ -3266,6 +3495,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", + "dev": true, "peer": true, "dependencies": { "abstract-level": "^1.0.0", @@ -3280,6 +3510,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, "peer": true, "engines": { "node": ">= 0.10.0" @@ -3289,18 +3520,21 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, "peer": true }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true, "peer": true }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -3313,6 +3547,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -3321,6 +3556,7 @@ "version": "0.38.5", "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dev": true, "peer": true, "dependencies": { "obliterator": "^2.0.0" @@ -3330,6 +3566,7 @@ "version": "10.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, "peer": true, "dependencies": { "ansi-colors": "4.1.1", @@ -3370,6 +3607,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, "peer": true, "engines": { "node": ">=6" @@ -3379,6 +3617,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "peer": true, "dependencies": { "balanced-match": "^1.0.0" @@ -3388,6 +3627,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "peer": true, "engines": { "node": ">=10" @@ -3400,6 +3640,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "peer": true, "dependencies": { "locate-path": "^6.0.0", @@ -3416,6 +3657,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "peer": true, "engines": { "node": ">=8" @@ -3425,6 +3667,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "peer": true, "dependencies": { "p-locate": "^5.0.0" @@ -3440,6 +3683,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, "peer": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -3452,12 +3696,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "peer": true }, "node_modules/mocha/node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "peer": true, "dependencies": { "yocto-queue": "^0.1.0" @@ -3473,6 +3719,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, "peer": true, "dependencies": { "p-limit": "^3.0.2" @@ -3488,6 +3735,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "peer": true, "engines": { "node": ">=8" @@ -3497,6 +3745,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -3512,6 +3761,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", + "dev": true, "peer": true, "engines": { "node": ">=10" @@ -3521,12 +3771,14 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, "peer": true }, "node_modules/nanoid": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, "peer": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -3539,23 +3791,27 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==", + "dev": true, "peer": true }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true }, "node_modules/node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true, "peer": true }, "node_modules/node-gyp-build": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "dev": true, "peer": true, "bin": { "node-gyp-build": "bin.js", @@ -3567,6 +3823,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "peer": true, "engines": { "node": ">=0.10.0" @@ -3576,6 +3833,7 @@ "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3585,12 +3843,14 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "dev": true, "peer": true }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "peer": true, "dependencies": { "wrappy": "1" @@ -3600,6 +3860,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, "peer": true, "engines": { "node": ">=0.10.0" @@ -3609,6 +3870,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "peer": true, "dependencies": { "p-try": "^1.0.0" @@ -3621,6 +3883,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, "peer": true, "dependencies": { "p-limit": "^1.1.0" @@ -3633,6 +3896,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, "peer": true, "dependencies": { "aggregate-error": "^3.0.0" @@ -3648,6 +3912,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, "peer": true, "engines": { "node": ">=4" @@ -3657,6 +3922,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, "peer": true, "engines": { "node": ">=4" @@ -3666,6 +3932,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "peer": true, "engines": { "node": ">=0.10.0" @@ -3675,12 +3942,14 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, "peer": true }, "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, "peer": true, "dependencies": { "create-hash": "^1.1.2", @@ -3697,6 +3966,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "peer": true, "engines": { "node": ">=8.6" @@ -3709,6 +3979,7 @@ "version": "6.11.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, "peer": true, "dependencies": { "side-channel": "^1.0.4" @@ -3724,6 +3995,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "funding": [ { "type": "github", @@ -3744,6 +4016,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "peer": true, "dependencies": { "safe-buffer": "^5.1.0" @@ -3753,6 +4026,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, "peer": true, "dependencies": { "bytes": "3.1.2", @@ -3768,6 +4042,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "peer": true, "dependencies": { "inherits": "^2.0.3", @@ -3782,6 +4057,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "peer": true, "dependencies": { "picomatch": "^2.2.1" @@ -3794,6 +4070,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, "peer": true, "engines": { "node": ">=0.10.0" @@ -3803,6 +4080,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "peer": true, "engines": { "node": ">=0.10.0" @@ -3812,6 +4090,7 @@ "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, "peer": true, "dependencies": { "path-parse": "^1.0.6" @@ -3824,6 +4103,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "peer": true, "dependencies": { "glob": "^7.1.3" @@ -3836,6 +4116,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, "peer": true, "dependencies": { "hash-base": "^3.0.0", @@ -3846,6 +4127,7 @@ "version": "2.2.7", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dev": true, "peer": true, "dependencies": { "bn.js": "^5.2.0" @@ -3858,6 +4140,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", + "dev": true, "funding": [ { "type": "github", @@ -3881,30 +4164,35 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "dev": true, "peer": true }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, "peer": true }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, "peer": true }, "node_modules/scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true, "peer": true }, "node_modules/secp256k1": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "dev": true, "hasInstallScript": true, "peer": true, "dependencies": { @@ -3920,6 +4208,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "peer": true, "bin": { "semver": "bin/semver.js" @@ -3929,6 +4218,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, "peer": true, "dependencies": { "randombytes": "^2.1.0" @@ -3938,18 +4228,21 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, "peer": true }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, "peer": true }, "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, "peer": true, "dependencies": { "inherits": "^2.0.1", @@ -3963,6 +4256,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, "peer": true, "dependencies": { "call-bind": "^1.0.0", @@ -3977,6 +4271,7 @@ "version": "0.7.3", "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dev": true, "peer": true, "dependencies": { "command-exists": "^1.2.8", @@ -4000,6 +4295,7 @@ "version": "0.30.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "dev": true, "peer": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -4013,6 +4309,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "dev": true, "peer": true, "optionalDependencies": { "graceful-fs": "^4.1.6" @@ -4022,6 +4319,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, "peer": true, "bin": { "semver": "bin/semver" @@ -4030,12 +4328,14 @@ "node_modules/solidity-ast": { "version": "0.4.49", "resolved": "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.49.tgz", - "integrity": "sha512-Pr5sCAj1SFqzwFZw1HPKSq0PehlQNdM8GwKyAVYh2DOn7/cCK8LUKD1HeHnKtTgBW7hi9h4nnnan7hpAg5RhWQ==" + "integrity": "sha512-Pr5sCAj1SFqzwFZw1HPKSq0PehlQNdM8GwKyAVYh2DOn7/cCK8LUKD1HeHnKtTgBW7hi9h4nnnan7hpAg5RhWQ==", + "dev": true }, "node_modules/solidity-docgen": { "version": "0.6.0-beta.35", "resolved": "https://registry.npmjs.org/solidity-docgen/-/solidity-docgen-0.6.0-beta.35.tgz", "integrity": "sha512-9QdwK1THk/MWIdq1PEW/6dvtND0pUqpFTsbKwwU9YQIMYuRhH1lek9SsgnsGGYtdJ0VTrXXcVT30q20a8Y610A==", + "dev": true, "dependencies": { "handlebars": "^4.7.7", "solidity-ast": "^0.4.38" @@ -4048,6 +4348,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -4056,6 +4357,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "peer": true, "dependencies": { "buffer-from": "^1.0.0", @@ -4066,6 +4368,7 @@ "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, "peer": true, "dependencies": { "type-fest": "^0.7.1" @@ -4078,6 +4381,7 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, "peer": true, "engines": { "node": ">=8" @@ -4087,6 +4391,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, "peer": true, "engines": { "node": ">= 0.8" @@ -4096,6 +4401,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, "peer": true, "engines": { "node": ">=10.0.0" @@ -4105,6 +4411,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "peer": true, "dependencies": { "safe-buffer": "~5.2.0" @@ -4114,6 +4421,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -4134,6 +4442,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "peer": true, "dependencies": { "emoji-regex": "^8.0.0", @@ -4148,6 +4457,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "peer": true, "dependencies": { "ansi-regex": "^5.0.1" @@ -4160,6 +4470,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dev": true, "peer": true, "dependencies": { "is-hex-prefixed": "1.0.0" @@ -4173,6 +4484,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "peer": true, "engines": { "node": ">=8" @@ -4185,6 +4497,7 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "peer": true, "dependencies": { "has-flag": "^3.0.0" @@ -4197,6 +4510,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, "peer": true, "dependencies": { "os-tmpdir": "~1.0.2" @@ -4209,6 +4523,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "peer": true, "dependencies": { "is-number": "^7.0.0" @@ -4221,6 +4536,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, "peer": true, "engines": { "node": ">=0.6" @@ -4230,30 +4546,35 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, "peer": true }, "node_modules/tsort": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "dev": true, "peer": true }, "node_modules/tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true, "peer": true }, "node_modules/tweetnacl-util": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true, "peer": true }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, "peer": true, "engines": { "node": ">=10" @@ -4266,6 +4587,7 @@ "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" @@ -4278,6 +4600,7 @@ "version": "5.22.1", "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz", "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==", + "dev": true, "peer": true, "dependencies": { "busboy": "^1.6.0" @@ -4290,6 +4613,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, "peer": true, "engines": { "node": ">= 4.0.0" @@ -4299,6 +4623,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, "peer": true, "engines": { "node": ">= 0.8" @@ -4308,12 +4633,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, "peer": true }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, "peer": true, "bin": { "uuid": "dist/bin/uuid" @@ -4322,18 +4649,21 @@ "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true }, "node_modules/workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true, "peer": true }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "peer": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -4351,6 +4681,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "peer": true, "dependencies": { "color-convert": "^2.0.1" @@ -4366,6 +4697,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "peer": true, "dependencies": { "color-name": "~1.1.4" @@ -4378,18 +4710,21 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "peer": true }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, "peer": true }, "node_modules/ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, "peer": true, "engines": { "node": ">=8.3.0" @@ -4411,6 +4746,7 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, "peer": true, "engines": { "node": ">=10" @@ -4420,12 +4756,14 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, "peer": true }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, "peer": true, "dependencies": { "cliui": "^7.0.2", @@ -4444,6 +4782,7 @@ "version": "20.2.4", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, "peer": true, "engines": { "node": ">=10" @@ -4453,6 +4792,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, "peer": true, "dependencies": { "camelcase": "^6.0.0", @@ -4468,6 +4808,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, "peer": true, "engines": { "node": ">=10" @@ -4487,12 +4828,14 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz", "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==", + "dev": true, "peer": true }, "@chainsafe/persistent-merkle-tree": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz", "integrity": "sha512-lLO3ihKPngXLTus/L7WHKaw9PnNJWizlOF1H9NNzHP6Xvh82vzg9F2bzkXhYIFshMZ2gTCEz8tq6STe7r5NDfQ==", + "dev": true, "peer": true, "requires": { "@chainsafe/as-sha256": "^0.3.1" @@ -4502,6 +4845,7 @@ "version": "0.9.4", "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.9.4.tgz", "integrity": "sha512-77Qtg2N1ayqs4Bg/wvnWfg5Bta7iy7IRh8XqXh7oNMeP2HBbBwx8m6yTpA8p0EHItWPEBkgZd5S5/LSlp3GXuQ==", + "dev": true, "peer": true, "requires": { "@chainsafe/as-sha256": "^0.3.1", @@ -4521,6 +4865,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "dev": true, "peer": true, "requires": { "@ethersproject/address": "^5.7.0", @@ -4538,6 +4883,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "dev": true, "peer": true, "requires": { "@ethersproject/bignumber": "^5.7.0", @@ -4553,6 +4899,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "dev": true, "peer": true, "requires": { "@ethersproject/abstract-provider": "^5.7.0", @@ -4566,6 +4913,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "dev": true, "peer": true, "requires": { "@ethersproject/bignumber": "^5.7.0", @@ -4579,6 +4927,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "dev": true, "peer": true, "requires": { "@ethersproject/bytes": "^5.7.0" @@ -4588,6 +4937,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "dev": true, "peer": true, "requires": { "@ethersproject/bytes": "^5.7.0", @@ -4598,6 +4948,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "dev": true, "peer": true, "requires": { "@ethersproject/bytes": "^5.7.0", @@ -4609,6 +4960,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "dev": true, "peer": true, "requires": { "@ethersproject/logger": "^5.7.0" @@ -4618,6 +4970,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "dev": true, "peer": true, "requires": { "@ethersproject/bignumber": "^5.7.0" @@ -4627,6 +4980,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "dev": true, "peer": true, "requires": { "@ethersproject/abi": "^5.7.0", @@ -4645,6 +4999,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "dev": true, "peer": true, "requires": { "@ethersproject/abstract-signer": "^5.7.0", @@ -4662,6 +5017,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "dev": true, "peer": true, "requires": { "@ethersproject/abstract-signer": "^5.7.0", @@ -4682,6 +5038,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "dev": true, "peer": true, "requires": { "@ethersproject/abstract-signer": "^5.7.0", @@ -4703,6 +5060,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "dev": true, "peer": true, "requires": { "@ethersproject/bytes": "^5.7.0", @@ -4713,12 +5071,14 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "dev": true, "peer": true }, "@ethersproject/networks": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "dev": true, "peer": true, "requires": { "@ethersproject/logger": "^5.7.0" @@ -4728,6 +5088,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "dev": true, "peer": true, "requires": { "@ethersproject/bytes": "^5.7.0", @@ -4738,6 +5099,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "dev": true, "peer": true, "requires": { "@ethersproject/logger": "^5.7.0" @@ -4747,6 +5109,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "dev": true, "peer": true, "requires": { "@ethersproject/abstract-provider": "^5.7.0", @@ -4775,6 +5138,7 @@ "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, "peer": true, "requires": {} } @@ -4784,6 +5148,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "dev": true, "peer": true, "requires": { "@ethersproject/bytes": "^5.7.0", @@ -4794,6 +5159,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "dev": true, "peer": true, "requires": { "@ethersproject/bytes": "^5.7.0", @@ -4804,6 +5170,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "dev": true, "peer": true, "requires": { "@ethersproject/bytes": "^5.7.0", @@ -4815,6 +5182,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "dev": true, "peer": true, "requires": { "@ethersproject/bytes": "^5.7.0", @@ -4829,6 +5197,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "dev": true, "peer": true, "requires": { "@ethersproject/bignumber": "^5.7.0", @@ -4843,6 +5212,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "dev": true, "peer": true, "requires": { "@ethersproject/bytes": "^5.7.0", @@ -4854,6 +5224,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "dev": true, "peer": true, "requires": { "@ethersproject/address": "^5.7.0", @@ -4871,6 +5242,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "dev": true, "peer": true, "requires": { "@ethersproject/bignumber": "^5.7.0", @@ -4882,6 +5254,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "dev": true, "peer": true, "requires": { "@ethersproject/abstract-provider": "^5.7.0", @@ -4905,6 +5278,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "dev": true, "peer": true, "requires": { "@ethersproject/base64": "^5.7.0", @@ -4918,6 +5292,7 @@ "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "dev": true, "peer": true, "requires": { "@ethersproject/bytes": "^5.7.0", @@ -4931,6 +5306,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dev": true, "peer": true, "requires": { "ethereumjs-abi": "^0.6.8", @@ -4944,18 +5320,21 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true, "peer": true }, "@noble/secp256k1": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "dev": true, "peer": true }, "@nomicfoundation/ethereumjs-block": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-5.0.1.tgz", "integrity": "sha512-u1Yioemi6Ckj3xspygu/SfFvm8vZEO8/Yx5a1QLzi6nVU0jz3Pg2OmHKJ5w+D9Ogk1vhwRiqEBAqcb0GVhCyHw==", + "dev": true, "peer": true, "requires": { "@nomicfoundation/ethereumjs-common": "4.0.1", @@ -4971,6 +5350,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "requires": { "@types/pbkdf2": "^3.0.0", @@ -4996,6 +5376,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-7.0.1.tgz", "integrity": "sha512-NhzndlGg829XXbqJEYrF1VeZhAwSPgsK/OB7TVrdzft3y918hW5KNd7gIZ85sn6peDZOdjBsAXIpXZ38oBYE5A==", + "dev": true, "peer": true, "requires": { "@nomicfoundation/ethereumjs-block": "5.0.1", @@ -5017,6 +5398,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "requires": { "@types/pbkdf2": "^3.0.0", @@ -5042,6 +5424,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-4.0.1.tgz", "integrity": "sha512-OBErlkfp54GpeiE06brBW/TTbtbuBJV5YI5Nz/aB2evTDo+KawyEzPjBlSr84z/8MFfj8wS2wxzQX1o32cev5g==", + "dev": true, "peer": true, "requires": { "@nomicfoundation/ethereumjs-util": "9.0.1", @@ -5052,6 +5435,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-3.0.1.tgz", "integrity": "sha512-KDjGIB5igzWOp8Ik5I6QiRH5DH+XgILlplsHR7TEuWANZA759G6krQ6o8bvj+tRUz08YygMQu/sGd9mJ1DYT8w==", + "dev": true, "peer": true, "requires": { "@nomicfoundation/ethereumjs-block": "5.0.1", @@ -5066,6 +5450,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "requires": { "@types/pbkdf2": "^3.0.0", @@ -5091,6 +5476,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-2.0.1.tgz", "integrity": "sha512-oL8vJcnk0Bx/onl+TgQOQ1t/534GKFaEG17fZmwtPFeH8S5soiBYPCLUrvANOl4sCp9elYxIMzIiTtMtNNN8EQ==", + "dev": true, "peer": true, "requires": { "@ethersproject/providers": "^5.7.1", @@ -5107,6 +5493,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "requires": { "@types/pbkdf2": "^3.0.0", @@ -5132,12 +5519,14 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-5.0.1.tgz", "integrity": "sha512-xtxrMGa8kP4zF5ApBQBtjlSbN5E2HI8m8FYgVSYAnO6ssUoY5pVPGy2H8+xdf/bmMa22Ce8nWMH3aEW8CcqMeQ==", + "dev": true, "peer": true }, "@nomicfoundation/ethereumjs-statemanager": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-2.0.1.tgz", "integrity": "sha512-B5ApMOnlruVOR7gisBaYwFX+L/AP7i/2oAahatssjPIBVDF6wTX1K7Qpa39E/nzsH8iYuL3krkYeUFIdO3EMUQ==", + "dev": true, "peer": true, "requires": { "@nomicfoundation/ethereumjs-common": "4.0.1", @@ -5152,6 +5541,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "requires": { "@types/pbkdf2": "^3.0.0", @@ -5177,6 +5567,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-6.0.1.tgz", "integrity": "sha512-A64It/IMpDVODzCgxDgAAla8jNjNtsoQZIzZUfIV5AY6Coi4nvn7+VReBn5itlxMiL2yaTlQr9TRWp3CSI6VoA==", + "dev": true, "peer": true, "requires": { "@nomicfoundation/ethereumjs-rlp": "5.0.1", @@ -5190,6 +5581,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "requires": { "@types/pbkdf2": "^3.0.0", @@ -5215,6 +5607,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-5.0.1.tgz", "integrity": "sha512-0HwxUF2u2hrsIM1fsasjXvlbDOq1ZHFV2dd1yGq8CA+MEYhaxZr8OTScpVkkxqMwBcc5y83FyPl0J9MZn3kY0w==", + "dev": true, "peer": true, "requires": { "@chainsafe/ssz": "^0.9.2", @@ -5229,6 +5622,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "requires": { "@types/pbkdf2": "^3.0.0", @@ -5254,6 +5648,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-9.0.1.tgz", "integrity": "sha512-TwbhOWQ8QoSCFhV/DDfSmyfFIHjPjFBj957219+V3jTZYZ2rf9PmDtNOeZWAE3p3vlp8xb02XGpd0v6nTUPbsA==", + "dev": true, "peer": true, "requires": { "@chainsafe/ssz": "^0.10.0", @@ -5265,6 +5660,7 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.5.0.tgz", "integrity": "sha512-l0V1b5clxA3iwQLXP40zYjyZYospQLZXzBVIhhr9kDg/1qHZfzzHw0jj4VPBijfYCArZDlPkRi1wZaV2POKeuw==", + "dev": true, "peer": true, "requires": { "@chainsafe/as-sha256": "^0.3.1" @@ -5274,6 +5670,7 @@ "version": "0.10.2", "resolved": "https://registry.npmjs.org/@chainsafe/ssz/-/ssz-0.10.2.tgz", "integrity": "sha512-/NL3Lh8K+0q7A3LsiFq09YXS9fPE+ead2rr7vM2QK8PLzrNsw3uqrif9bpRX5UxgeRjM+vYi+boCM3+GM4ovXg==", + "dev": true, "peer": true, "requires": { "@chainsafe/as-sha256": "^0.3.1", @@ -5284,6 +5681,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "requires": { "@types/pbkdf2": "^3.0.0", @@ -5309,6 +5707,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-7.0.1.tgz", "integrity": "sha512-rArhyn0jPsS/D+ApFsz3yVJMQ29+pVzNZ0VJgkzAZ+7FqXSRtThl1C1prhmlVr3YNUlfpZ69Ak+RUT4g7VoOuQ==", + "dev": true, "peer": true, "requires": { "@nomicfoundation/ethereumjs-block": "5.0.1", @@ -5330,6 +5729,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "requires": { "@types/pbkdf2": "^3.0.0", @@ -5355,6 +5755,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.1.tgz", "integrity": "sha512-1LMtXj1puAxyFusBgUIy5pZk3073cNXYnXUpuNKFghHbIit/xZgbk0AokpUADbNm3gyD6bFWl3LRFh3dhVdREg==", + "dev": true, "peer": true, "requires": { "@nomicfoundation/solidity-analyzer-darwin-arm64": "0.1.1", @@ -5373,6 +5774,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.1.tgz", "integrity": "sha512-KcTodaQw8ivDZyF+D76FokN/HdpgGpfjc/gFCImdLUyqB6eSWVaZPazMbeAjmfhx3R0zm/NYVzxwAokFKgrc0w==", + "dev": true, "optional": true, "peer": true }, @@ -5380,6 +5782,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.1.tgz", "integrity": "sha512-XhQG4BaJE6cIbjAVtzGOGbK3sn1BO9W29uhk9J8y8fZF1DYz0Doj8QDMfpMu+A6TjPDs61lbsmeYodIDnfveSA==", + "dev": true, "optional": true, "peer": true }, @@ -5387,6 +5790,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.1.tgz", "integrity": "sha512-GHF1VKRdHW3G8CndkwdaeLkVBi5A9u2jwtlS7SLhBc8b5U/GcoL39Q+1CSO3hYqePNP+eV5YI7Zgm0ea6kMHoA==", + "dev": true, "optional": true, "peer": true }, @@ -5394,6 +5798,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.1.tgz", "integrity": "sha512-g4Cv2fO37ZsUENQ2vwPnZc2zRenHyAxHcyBjKcjaSmmkKrFr64yvzeNO8S3GBFCo90rfochLs99wFVGT/0owpg==", + "dev": true, "optional": true, "peer": true }, @@ -5401,6 +5806,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.1.tgz", "integrity": "sha512-WJ3CE5Oek25OGE3WwzK7oaopY8xMw9Lhb0mlYuJl/maZVo+WtP36XoQTb7bW/i8aAdHW5Z+BqrHMux23pvxG3w==", + "dev": true, "optional": true, "peer": true }, @@ -5408,6 +5814,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.1.tgz", "integrity": "sha512-5WN7leSr5fkUBBjE4f3wKENUy9HQStu7HmWqbtknfXkkil+eNWiBV275IOlpXku7v3uLsXTOKpnnGHJYI2qsdA==", + "dev": true, "optional": true, "peer": true }, @@ -5415,6 +5822,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.1.tgz", "integrity": "sha512-KdYMkJOq0SYPQMmErv/63CwGwMm5XHenEna9X9aB8mQmhDBrYrlAOSsIPgFCUSL0hjxE3xHP65/EPXR/InD2+w==", + "dev": true, "optional": true, "peer": true }, @@ -5422,6 +5830,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.1.tgz", "integrity": "sha512-VFZASBfl4qiBYwW5xeY20exWhmv6ww9sWu/krWSesv3q5hA0o1JuzmPHR4LPN6SUZj5vcqci0O6JOL8BPw+APg==", + "dev": true, "optional": true, "peer": true }, @@ -5429,6 +5838,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.1.tgz", "integrity": "sha512-JnFkYuyCSA70j6Si6cS1A9Gh1aHTEb8kOTBApp/c7NRTFGNMH8eaInKlyuuiIbvYFhlXW4LicqyYuWNNq9hkpQ==", + "dev": true, "optional": true, "peer": true }, @@ -5436,6 +5846,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.1.tgz", "integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==", + "dev": true, "optional": true, "peer": true }, @@ -5448,12 +5859,14 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", + "dev": true, "peer": true }, "@scure/bip32": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz", "integrity": "sha512-XyNh1rB0SkEqd3tXcXMi+Xe1fvg+kUIcoRIEujP1Jgv7DqW2r9lg3Ah0NkFaCs9sTkQAQA8kw7xiRXzENi9Rtw==", + "dev": true, "peer": true, "requires": { "@noble/hashes": "~1.2.0", @@ -5465,6 +5878,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", + "dev": true, "peer": true, "requires": { "@noble/hashes": "~1.2.0", @@ -5475,6 +5889,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz", "integrity": "sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg==", + "dev": true, "peer": true, "requires": { "@sentry/hub": "5.30.0", @@ -5488,6 +5903,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz", "integrity": "sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ==", + "dev": true, "peer": true, "requires": { "@sentry/types": "5.30.0", @@ -5499,6 +5915,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz", "integrity": "sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw==", + "dev": true, "peer": true, "requires": { "@sentry/hub": "5.30.0", @@ -5510,6 +5927,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz", "integrity": "sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg==", + "dev": true, "peer": true, "requires": { "@sentry/core": "5.30.0", @@ -5527,6 +5945,7 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz", "integrity": "sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw==", + "dev": true, "peer": true, "requires": { "@sentry/hub": "5.30.0", @@ -5540,12 +5959,14 @@ "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz", "integrity": "sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw==", + "dev": true, "peer": true }, "@sentry/utils": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz", "integrity": "sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==", + "dev": true, "peer": true, "requires": { "@sentry/types": "5.30.0", @@ -5556,6 +5977,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dev": true, "peer": true, "requires": { "@types/node": "*" @@ -5565,18 +5987,21 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==", + "dev": true, "peer": true }, "@types/node": { "version": "20.2.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.5.tgz", "integrity": "sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==", + "dev": true, "peer": true }, "@types/pbkdf2": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dev": true, "peer": true, "requires": { "@types/node": "*" @@ -5586,6 +6011,7 @@ "version": "2.3.15", "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "dev": true, "peer": true, "requires": { "@types/node": "*", @@ -5596,6 +6022,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "dev": true, "peer": true, "requires": { "@types/node": "*" @@ -5605,6 +6032,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, "peer": true, "requires": { "event-target-shim": "^5.0.0" @@ -5614,6 +6042,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz", "integrity": "sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA==", + "dev": true, "peer": true, "requires": { "buffer": "^6.0.3", @@ -5629,18 +6058,21 @@ "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, "peer": true }, "aes-js": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "dev": true, "peer": true }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, "peer": true, "requires": { "debug": "4" @@ -5650,6 +6082,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, "peer": true, "requires": { "clean-stack": "^2.0.0", @@ -5660,12 +6093,14 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, "peer": true }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, "peer": true, "requires": { "type-fest": "^0.21.3" @@ -5675,12 +6110,14 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "peer": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, "peer": true, "requires": { "color-convert": "^1.9.0" @@ -5690,6 +6127,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "peer": true, "requires": { "normalize-path": "^3.0.0", @@ -5700,18 +6138,21 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, "peer": true }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, "peer": true }, "base-x": { "version": "3.0.9", "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dev": true, "peer": true, "requires": { "safe-buffer": "^5.0.1" @@ -5721,42 +6162,49 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, "peer": true }, "bech32": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "dev": true, "peer": true }, "bigint-crypto-utils": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.2.2.tgz", "integrity": "sha512-U1RbE3aX9ayCUVcIPHuPDPKcK3SFOXf93J1UK/iHlJuQB7bhagPIX06/CLpLEsDThJ7KA4Dhrnzynl+d2weTiw==", + "dev": true, "peer": true }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, "peer": true }, "blakejs": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "dev": true, "peer": true }, "bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true, "peer": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "peer": true, "requires": { "balanced-match": "^1.0.0", @@ -5767,6 +6215,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "peer": true, "requires": { "fill-range": "^7.0.1" @@ -5776,12 +6225,14 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true, "peer": true }, "browser-level": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz", "integrity": "sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ==", + "dev": true, "peer": true, "requires": { "abstract-level": "^1.0.2", @@ -5794,12 +6245,14 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, "peer": true }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, "peer": true, "requires": { "buffer-xor": "^1.0.3", @@ -5814,6 +6267,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dev": true, "peer": true, "requires": { "base-x": "^3.0.2" @@ -5823,6 +6277,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dev": true, "peer": true, "requires": { "bs58": "^4.0.0", @@ -5834,6 +6289,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, "peer": true, "requires": { "base64-js": "^1.3.1", @@ -5844,18 +6300,21 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, "peer": true }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true, "peer": true }, "busboy": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dev": true, "peer": true, "requires": { "streamsearch": "^1.1.0" @@ -5865,12 +6324,14 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, "peer": true }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "peer": true, "requires": { "function-bind": "^1.1.1", @@ -5881,24 +6342,28 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, "peer": true }, "case": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", + "dev": true, "peer": true }, "catering": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz", "integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==", + "dev": true, "peer": true }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "peer": true, "requires": { "ansi-styles": "^3.2.1", @@ -5910,6 +6375,7 @@ "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, "peer": true, "requires": { "anymatch": "~3.1.2", @@ -5926,12 +6392,14 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true, "peer": true }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, "peer": true, "requires": { "inherits": "^2.0.1", @@ -5942,6 +6410,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.3.0.tgz", "integrity": "sha512-iwFAJQYtqRTRM0F6L8h4JCt00ZSGdOyqh7yVrhhjrOpFhmBjNlRUey64MCiyo6UmQHMJ+No3c81nujPv+n9yrg==", + "dev": true, "peer": true, "requires": { "abstract-level": "^1.0.2", @@ -5955,12 +6424,14 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, "peer": true }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, "peer": true, "requires": { "string-width": "^4.2.0", @@ -5972,6 +6443,7 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, "peer": true, "requires": { "color-name": "1.1.3" @@ -5981,42 +6453,49 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, "peer": true }, "command-exists": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true, "peer": true }, "commander": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true, "peer": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, "peer": true }, "cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, "peer": true }, "crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true, "peer": true }, "create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, "peer": true, "requires": { "cipher-base": "^1.0.1", @@ -6030,6 +6509,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, "peer": true, "requires": { "cipher-base": "^1.0.3", @@ -6044,6 +6524,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "peer": true, "requires": { "ms": "2.1.2" @@ -6053,24 +6534,28 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, "peer": true }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, "peer": true }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, "peer": true }, "elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, "peer": true, "requires": { "bn.js": "^4.11.9", @@ -6086,6 +6571,7 @@ "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, "peer": true } } @@ -6094,12 +6580,14 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, "peer": true }, "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, "peer": true, "requires": { "ansi-colors": "^4.1.1" @@ -6109,24 +6597,28 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, "peer": true }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, "peer": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, "peer": true }, "ethereum-cryptography": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", "integrity": "sha512-6yFQC9b5ug6/17CQpCyE3k9eKBMdhyVjzUy1WkiuY/E4vj/SXDBbCw8QEIaXqf0Mf2SnY6RmpDcwlUmBSS0EJw==", + "dev": true, "peer": true, "requires": { "@noble/hashes": "1.2.0", @@ -6139,6 +6631,7 @@ "version": "0.6.8", "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dev": true, "peer": true, "requires": { "bn.js": "^4.11.8", @@ -6149,6 +6642,7 @@ "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, "peer": true } } @@ -6157,6 +6651,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dev": true, "peer": true, "requires": { "@types/bn.js": "^4.11.3", @@ -6172,6 +6667,7 @@ "version": "4.11.6", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dev": true, "peer": true, "requires": { "@types/node": "*" @@ -6181,12 +6677,14 @@ "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true, "peer": true }, "ethereum-cryptography": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dev": true, "peer": true, "requires": { "@types/pbkdf2": "^3.0.0", @@ -6212,6 +6710,7 @@ "version": "5.7.2", "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "dev": true, "peer": true, "requires": { "@ethersproject/abi": "5.7.0", @@ -6250,6 +6749,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dev": true, "peer": true, "requires": { "is-hex-prefixed": "1.0.0", @@ -6260,12 +6760,14 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, "peer": true }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, "peer": true, "requires": { "md5.js": "^1.3.4", @@ -6276,6 +6778,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "peer": true, "requires": { "to-regex-range": "^5.0.1" @@ -6285,6 +6788,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, "peer": true, "requires": { "locate-path": "^2.0.0" @@ -6294,24 +6798,28 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, "peer": true }, "follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "dev": true, "peer": true }, "fp-ts": { "version": "1.19.3", "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz", "integrity": "sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg==", + "dev": true, "peer": true }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "peer": true, "requires": { "graceful-fs": "^4.1.2", @@ -6323,12 +6831,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, "peer": true }, "fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "optional": true, "peer": true }, @@ -6336,24 +6846,28 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true, "peer": true }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true, "peer": true }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, "peer": true }, "get-intrinsic": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, "peer": true, "requires": { "function-bind": "^1.1.1", @@ -6366,6 +6880,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, "peer": true, "requires": { "fs.realpath": "^1.0.0", @@ -6380,6 +6895,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "peer": true, "requires": { "is-glob": "^4.0.1" @@ -6389,12 +6905,14 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, "peer": true }, "handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, "requires": { "minimist": "^1.2.5", "neo-async": "^2.6.0", @@ -6407,6 +6925,7 @@ "version": "2.14.1", "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.14.1.tgz", "integrity": "sha512-H3Qp/UKyQGmPDDBSfMoSyH18rRnac90rsb0LNer+sKe6at6rxLe4D5j+M+1icqZQF02iLPjNRwc/PA8OPf757A==", + "dev": true, "peer": true, "requires": { "@ethersproject/abi": "^5.1.2", @@ -6465,6 +6984,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "peer": true, "requires": { "function-bind": "^1.1.1" @@ -6474,24 +6994,28 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, "peer": true }, "has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, "peer": true }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, "peer": true }, "hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, "peer": true, "requires": { "inherits": "^2.0.4", @@ -6503,6 +7027,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "peer": true } } @@ -6511,6 +7036,7 @@ "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, "peer": true, "requires": { "inherits": "^2.0.3", @@ -6521,12 +7047,14 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, "peer": true }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, "peer": true, "requires": { "hash.js": "^1.0.3", @@ -6538,6 +7066,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, "peer": true, "requires": { "depd": "2.0.0", @@ -6551,6 +7080,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, "peer": true, "requires": { "agent-base": "6", @@ -6561,6 +7091,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "peer": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -6570,24 +7101,28 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, "peer": true }, "immutable": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", + "dev": true, "peer": true }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, "peer": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, "peer": true, "requires": { "once": "^1.3.0", @@ -6598,12 +7133,14 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, "peer": true }, "io-ts": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz", "integrity": "sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g==", + "dev": true, "peer": true, "requires": { "fp-ts": "^1.0.0" @@ -6613,6 +7150,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "peer": true, "requires": { "binary-extensions": "^2.0.0" @@ -6622,24 +7160,28 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "dev": true, "peer": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, "peer": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "peer": true }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, "peer": true, "requires": { "is-extglob": "^2.1.1" @@ -6649,42 +7191,49 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "dev": true, "peer": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, "peer": true }, "is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, "peer": true }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, "peer": true }, "js-sdsl": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.1.tgz", "integrity": "sha512-6Gsx8R0RucyePbWqPssR8DyfuXmLBooYN5cZFZKjHGnQuaf7pEzhtpceagJxVu4LqhYY5EYA7nko3FmeHZ1KbA==", + "dev": true, "peer": true }, "js-sha3": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true, "peer": true }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "peer": true, "requires": { "argparse": "^2.0.1" @@ -6694,6 +7243,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, "peer": true, "requires": { "graceful-fs": "^4.1.6" @@ -6703,6 +7253,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", + "dev": true, "peer": true, "requires": { "node-addon-api": "^2.0.0", @@ -6714,6 +7265,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", + "dev": true, "peer": true, "requires": { "graceful-fs": "^4.1.9" @@ -6723,6 +7275,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/level/-/level-8.0.0.tgz", "integrity": "sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ==", + "dev": true, "peer": true, "requires": { "browser-level": "^1.0.1", @@ -6733,12 +7286,14 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz", "integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==", + "dev": true, "peer": true }, "level-transcoder": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz", "integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==", + "dev": true, "peer": true, "requires": { "buffer": "^6.0.3", @@ -6749,6 +7304,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, "peer": true, "requires": { "p-locate": "^2.0.0", @@ -6759,12 +7315,14 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, "peer": true }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, "peer": true, "requires": { "chalk": "^4.1.0", @@ -6775,6 +7333,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "peer": true, "requires": { "color-convert": "^2.0.1" @@ -6784,6 +7343,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "peer": true, "requires": { "ansi-styles": "^4.1.0", @@ -6794,6 +7354,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "peer": true, "requires": { "color-name": "~1.1.4" @@ -6803,18 +7364,21 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "peer": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "peer": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "peer": true, "requires": { "has-flag": "^4.0.0" @@ -6826,12 +7390,14 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==", + "dev": true, "peer": true }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "peer": true, "requires": { "yallist": "^3.0.2" @@ -6841,12 +7407,14 @@ "version": "0.7.9", "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", "integrity": "sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ==", + "dev": true, "peer": true }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, "peer": true, "requires": { "hash-base": "^3.0.0", @@ -6858,6 +7426,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz", "integrity": "sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og==", + "dev": true, "peer": true, "requires": { "abstract-level": "^1.0.0", @@ -6869,24 +7438,28 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, "peer": true }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, "peer": true }, "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true, "peer": true }, "minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "peer": true, "requires": { "brace-expansion": "^1.1.7" @@ -6895,12 +7468,14 @@ "minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true }, "mnemonist": { "version": "0.38.5", "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz", "integrity": "sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==", + "dev": true, "peer": true, "requires": { "obliterator": "^2.0.0" @@ -6910,6 +7485,7 @@ "version": "10.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, "peer": true, "requires": { "ansi-colors": "4.1.1", @@ -6939,12 +7515,14 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, "peer": true }, "brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "peer": true, "requires": { "balanced-match": "^1.0.0" @@ -6954,12 +7532,14 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "peer": true }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, "peer": true, "requires": { "locate-path": "^6.0.0", @@ -6970,12 +7550,14 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "peer": true }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, "peer": true, "requires": { "p-locate": "^5.0.0" @@ -6985,6 +7567,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, "peer": true, "requires": { "brace-expansion": "^2.0.1" @@ -6994,12 +7577,14 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, "peer": true }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "peer": true, "requires": { "yocto-queue": "^0.1.0" @@ -7009,6 +7594,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, "peer": true, "requires": { "p-limit": "^3.0.2" @@ -7018,12 +7604,14 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "peer": true }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "peer": true, "requires": { "has-flag": "^4.0.0" @@ -7035,65 +7623,76 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz", "integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==", + "dev": true, "peer": true }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, "peer": true }, "nanoid": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, "peer": true }, "napi-macros": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==", + "dev": true, "peer": true }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true }, "node-addon-api": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true, "peer": true }, "node-gyp-build": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "dev": true, "peer": true }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "peer": true }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, "peer": true }, "obliterator": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==", + "dev": true, "peer": true }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "peer": true, "requires": { "wrappy": "1" @@ -7103,12 +7702,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, "peer": true }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, "peer": true, "requires": { "p-try": "^1.0.0" @@ -7118,6 +7719,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, "peer": true, "requires": { "p-limit": "^1.1.0" @@ -7127,6 +7729,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, "peer": true, "requires": { "aggregate-error": "^3.0.0" @@ -7136,30 +7739,35 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, "peer": true }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, "peer": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "peer": true }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, "peer": true }, "pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, "peer": true, "requires": { "create-hash": "^1.1.2", @@ -7173,12 +7781,14 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "peer": true }, "qs": { "version": "6.11.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, "peer": true, "requires": { "side-channel": "^1.0.4" @@ -7188,12 +7798,14 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, "peer": true }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, "peer": true, "requires": { "safe-buffer": "^5.1.0" @@ -7203,6 +7815,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, "peer": true, "requires": { "bytes": "3.1.2", @@ -7215,6 +7828,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, "peer": true, "requires": { "inherits": "^2.0.3", @@ -7226,6 +7840,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "peer": true, "requires": { "picomatch": "^2.2.1" @@ -7235,18 +7850,21 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, "peer": true }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "peer": true }, "resolve": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, "peer": true, "requires": { "path-parse": "^1.0.6" @@ -7256,6 +7874,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, "peer": true, "requires": { "glob": "^7.1.3" @@ -7265,6 +7884,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, "peer": true, "requires": { "hash-base": "^3.0.0", @@ -7275,6 +7895,7 @@ "version": "2.2.7", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dev": true, "peer": true, "requires": { "bn.js": "^5.2.0" @@ -7284,6 +7905,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", + "dev": true, "peer": true, "requires": { "queue-microtask": "^1.2.2" @@ -7293,30 +7915,35 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz", "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA==", + "dev": true, "peer": true }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, "peer": true }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, "peer": true }, "scrypt-js": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "dev": true, "peer": true }, "secp256k1": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "dev": true, "peer": true, "requires": { "elliptic": "^6.5.4", @@ -7328,12 +7955,14 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, "peer": true }, "serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, "peer": true, "requires": { "randombytes": "^2.1.0" @@ -7343,18 +7972,21 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, "peer": true }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true, "peer": true }, "sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, "peer": true, "requires": { "inherits": "^2.0.1", @@ -7365,6 +7997,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, "peer": true, "requires": { "call-bind": "^1.0.0", @@ -7376,6 +8009,7 @@ "version": "0.7.3", "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", + "dev": true, "peer": true, "requires": { "command-exists": "^1.2.8", @@ -7393,6 +8027,7 @@ "version": "0.30.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", + "dev": true, "peer": true, "requires": { "graceful-fs": "^4.1.2", @@ -7406,6 +8041,7 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "dev": true, "peer": true, "requires": { "graceful-fs": "^4.1.6" @@ -7415,6 +8051,7 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, "peer": true } } @@ -7422,12 +8059,14 @@ "solidity-ast": { "version": "0.4.49", "resolved": "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.49.tgz", - "integrity": "sha512-Pr5sCAj1SFqzwFZw1HPKSq0PehlQNdM8GwKyAVYh2DOn7/cCK8LUKD1HeHnKtTgBW7hi9h4nnnan7hpAg5RhWQ==" + "integrity": "sha512-Pr5sCAj1SFqzwFZw1HPKSq0PehlQNdM8GwKyAVYh2DOn7/cCK8LUKD1HeHnKtTgBW7hi9h4nnnan7hpAg5RhWQ==", + "dev": true }, "solidity-docgen": { "version": "0.6.0-beta.35", "resolved": "https://registry.npmjs.org/solidity-docgen/-/solidity-docgen-0.6.0-beta.35.tgz", "integrity": "sha512-9QdwK1THk/MWIdq1PEW/6dvtND0pUqpFTsbKwwU9YQIMYuRhH1lek9SsgnsGGYtdJ0VTrXXcVT30q20a8Y610A==", + "dev": true, "requires": { "handlebars": "^4.7.7", "solidity-ast": "^0.4.38" @@ -7436,12 +8075,14 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "peer": true, "requires": { "buffer-from": "^1.0.0", @@ -7452,6 +8093,7 @@ "version": "0.1.10", "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", + "dev": true, "peer": true, "requires": { "type-fest": "^0.7.1" @@ -7461,6 +8103,7 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, "peer": true } } @@ -7469,18 +8112,21 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, "peer": true }, "streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "dev": true, "peer": true }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "peer": true, "requires": { "safe-buffer": "~5.2.0" @@ -7490,6 +8136,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "peer": true } } @@ -7498,6 +8145,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "peer": true, "requires": { "emoji-regex": "^8.0.0", @@ -7509,6 +8157,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "peer": true, "requires": { "ansi-regex": "^5.0.1" @@ -7518,6 +8167,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dev": true, "peer": true, "requires": { "is-hex-prefixed": "1.0.0" @@ -7527,12 +8177,14 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "peer": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, "peer": true, "requires": { "has-flag": "^3.0.0" @@ -7542,6 +8194,7 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, "peer": true, "requires": { "os-tmpdir": "~1.0.2" @@ -7551,6 +8204,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "peer": true, "requires": { "is-number": "^7.0.0" @@ -7560,48 +8214,56 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, "peer": true }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, "peer": true }, "tsort": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", "integrity": "sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==", + "dev": true, "peer": true }, "tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true, "peer": true }, "tweetnacl-util": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==", + "dev": true, "peer": true }, "type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, "peer": true }, "uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, "optional": true }, "undici": { "version": "5.22.1", "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz", "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==", + "dev": true, "peer": true, "requires": { "busboy": "^1.6.0" @@ -7611,41 +8273,48 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, "peer": true }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, "peer": true }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, "peer": true }, "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, "peer": true }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true }, "workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true, "peer": true }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, "peer": true, "requires": { "ansi-styles": "^4.0.0", @@ -7657,6 +8326,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "peer": true, "requires": { "color-convert": "^2.0.1" @@ -7666,6 +8336,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "peer": true, "requires": { "color-name": "~1.1.4" @@ -7675,6 +8346,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, "peer": true } } @@ -7683,12 +8355,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, "peer": true }, "ws": { "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, "peer": true, "requires": {} }, @@ -7696,18 +8370,21 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, "peer": true }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, "peer": true }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, "peer": true, "requires": { "cliui": "^7.0.2", @@ -7723,12 +8400,14 @@ "version": "20.2.4", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, "peer": true }, "yargs-unparser": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, "peer": true, "requires": { "camelcase": "^6.0.0", @@ -7741,6 +8420,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, "peer": true } } diff --git a/package.json b/package.json index 12a9eeaa..f42cf771 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,9 @@ "dependencies": { "@chainlink/contracts": "0.4.1", "@etherisc/gif-interface": "2.0.0-rc.1-0", - "@openzeppelin/contracts": "4.7.3", + "@openzeppelin/contracts": "4.7.3" + }, + "devDependencies": { "solidity-docgen": "^0.6.0-beta.35" } } From 4c9ec8006db121112e865e213366133426f1b681 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Wed, 7 Jun 2023 16:33:42 +0000 Subject: [PATCH 08/29] add cache/ to .gitignore --- .gitignore | 1 + cache/solidity-files-cache.json | 3950 ------------------------------- 2 files changed, 1 insertion(+), 3950 deletions(-) delete mode 100644 cache/solidity-files-cache.json diff --git a/.gitignore b/.gitignore index af40c2ed..05794bda 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ __pycache__ build/ artifacts/ reports/ +cache/ dump_sources/ node_modules tmp/ diff --git a/cache/solidity-files-cache.json b/cache/solidity-files-cache.json deleted file mode 100644 index 11d1ddbe..00000000 --- a/cache/solidity-files-cache.json +++ /dev/null @@ -1,3950 +0,0 @@ -{ - "_format": "hh-sol-cache-2", - "files": { - "/workspace/contracts/Migrations.sol": { - "lastModificationDate": 1685691172854, - "contentHash": "dd7886c3a085090224dfd91887342aa7", - "sourceName": "contracts/Migrations.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "Migrations" - ] - }, - "/workspace/contracts/examples/AyiiOracle.sol": { - "lastModificationDate": 1685691172867, - "contentHash": "4094bc4bc448fe52882ca53b04cb5d97", - "sourceName": "contracts/examples/AyiiOracle.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./strings.sol", - "@chainlink/contracts/src/v0.8/ChainlinkClient.sol", - "@etherisc/gif-interface/contracts/components/Oracle.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "AyiiOracle" - ] - }, - "/workspace/contracts/examples/strings.sol": { - "lastModificationDate": 1685691172908, - "contentHash": "1e92544a0daa9986f1391c2185095e10", - "sourceName": "contracts/examples/strings.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "strings" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/components/Oracle.sol": { - "lastModificationDate": 1686152143966, - "contentHash": "8845391b0944f24146e94f7ba6a88173", - "sourceName": "@etherisc/gif-interface/contracts/components/Oracle.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IOracle.sol", - "./Component.sol", - "./IComponent.sol", - "../services/IOracleService.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "Oracle" - ] - }, - "/workspace/node_modules/@chainlink/contracts/src/v0.8/ChainlinkClient.sol": { - "lastModificationDate": 1686152162803, - "contentHash": "6af479cbde42f1a7225c9cebc6e32239", - "sourceName": "@chainlink/contracts/src/v0.8/ChainlinkClient.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./Chainlink.sol", - "./interfaces/ENSInterface.sol", - "./interfaces/LinkTokenInterface.sol", - "./interfaces/ChainlinkRequestInterface.sol", - "./interfaces/OperatorInterface.sol", - "./interfaces/PointerInterface.sol", - "./vendor/ENSResolver.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ChainlinkClient" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IOracleService.sol": { - "lastModificationDate": 1686152144102, - "contentHash": "fafbfcf6481ef628ff7094ba0169e9bb", - "sourceName": "@etherisc/gif-interface/contracts/services/IOracleService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IOracleService" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/components/IOracle.sol": { - "lastModificationDate": 1686152143935, - "contentHash": "b557f1ac025a960e6ff4eae868fc5efc", - "sourceName": "@etherisc/gif-interface/contracts/components/IOracle.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IComponent.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IOracle" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/components/IComponent.sol": { - "lastModificationDate": 1686152143927, - "contentHash": "aba57dc8a7e66095134609a0102d35a4", - "sourceName": "@etherisc/gif-interface/contracts/components/IComponent.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../modules/IRegistry.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IComponent" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/components/Component.sol": { - "lastModificationDate": 1686152143920, - "contentHash": "62c9ddd68e91ca675321451c29b8845c", - "sourceName": "@etherisc/gif-interface/contracts/components/Component.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IComponent.sol", - "../modules/IAccess.sol", - "../modules/IComponentEvents.sol", - "../modules/IRegistry.sol", - "../services/IComponentOwnerService.sol", - "../services/IInstanceService.sol", - "@openzeppelin/contracts/access/Ownable.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "Component" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IRegistry.sol": { - "lastModificationDate": 1686152144055, - "contentHash": "dd8885b8654b3ed9f6ae9f7bc7f8d084", - "sourceName": "@etherisc/gif-interface/contracts/modules/IRegistry.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IRegistry" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IAccess.sol": { - "lastModificationDate": 1686152143999, - "contentHash": "5aa52f48a8bb052c193b37cb0af2353a", - "sourceName": "@etherisc/gif-interface/contracts/modules/IAccess.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IAccess" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IComponentEvents.sol": { - "lastModificationDate": 1686152144014, - "contentHash": "d5e239641a931cb9a11e3a01f7cde62e", - "sourceName": "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../components/IComponent.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IComponentEvents" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol": { - "lastModificationDate": 1686152144077, - "contentHash": "083f2d58c53804afa075d8307f2cab00", - "sourceName": "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../components/IComponent.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IComponentOwnerService" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IInstanceService.sol": { - "lastModificationDate": 1686152144092, - "contentHash": "5abe0bc29bff7930f1c43cdb0f8a0ad1", - "sourceName": "@etherisc/gif-interface/contracts/services/IInstanceService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../components/IComponent.sol", - "../modules/IBundle.sol", - "../modules/IPolicy.sol", - "../modules/IPool.sol", - "../tokens/IBundleToken.sol", - "./IComponentOwnerService.sol", - "./IInstanceOperatorService.sol", - "./IOracleService.sol", - "./IProductService.sol", - "./IRiskpoolService.sol", - "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "@openzeppelin/contracts/token/ERC721/IERC721.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IInstanceService" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/access/Ownable.sol": { - "lastModificationDate": 1686152165020, - "contentHash": "e436cea06129be2c73cda4b1acc848b5", - "sourceName": "@openzeppelin/contracts/access/Ownable.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../utils/Context.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Ownable" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IBundle.sol": { - "lastModificationDate": 1686152144006, - "contentHash": "68677aea5cb845c2b76fa976e52f25dd", - "sourceName": "@etherisc/gif-interface/contracts/modules/IBundle.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IBundle" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IPolicy.sol": { - "lastModificationDate": 1686152144029, - "contentHash": "9d8eef00dfe8a413df123a07f77e0395", - "sourceName": "@etherisc/gif-interface/contracts/modules/IPolicy.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IPolicy" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IPool.sol": { - "lastModificationDate": 1686152144041, - "contentHash": "ef91535350407e9f818768413d0401ad", - "sourceName": "@etherisc/gif-interface/contracts/modules/IPool.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IPool" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IProductService.sol": { - "lastModificationDate": 1686152144110, - "contentHash": "4e3074ac5571daac82c55274be1029b8", - "sourceName": "@etherisc/gif-interface/contracts/services/IProductService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IProductService" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IRiskpoolService.sol": { - "lastModificationDate": 1686152144117, - "contentHash": "5f28936f93c0fcd0f218c5be38e49472", - "sourceName": "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IRiskpoolService" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "lastModificationDate": 1686152165849, - "contentHash": "ad7c2d0af148c8f9f097d65deeb4da6b", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC20" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol": { - "lastModificationDate": 1686152144085, - "contentHash": "6d934357002162b8be5598668dd37383", - "sourceName": "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../modules/ITreasury.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IInstanceOperatorService" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { - "lastModificationDate": 1686152165853, - "contentHash": "ec99d946db3685a3630554aa6055bd7f", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../../utils/introspection/IERC165.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC721" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/tokens/IBundleToken.sol": { - "lastModificationDate": 1686152144149, - "contentHash": "965b1a51e2cadca848708cdcc34ce336", - "sourceName": "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC721/IERC721.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IBundleToken" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/ITreasury.sol": { - "lastModificationDate": 1686152144063, - "contentHash": "f06406e9faad6d764ad7a4f1a1c0e13f", - "sourceName": "@etherisc/gif-interface/contracts/modules/ITreasury.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/IERC20.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "ITreasury" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { - "lastModificationDate": 1686152165868, - "contentHash": "03e6768535ac4da0e9756f1d8a4a018a", - "sourceName": "@openzeppelin/contracts/utils/introspection/IERC165.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC165" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/utils/Context.sol": { - "lastModificationDate": 1686152086681, - "contentHash": "5f2c5c4b6af2dd4551027144797bc8be", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Context" - ] - }, - "/workspace/node_modules/@chainlink/contracts/src/v0.8/Chainlink.sol": { - "lastModificationDate": 1686152162795, - "contentHash": "9dc050539cdf1579d5650d41d0df9ec2", - "sourceName": "@chainlink/contracts/src/v0.8/Chainlink.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./vendor/CBORChainlink.sol", - "./vendor/BufferChainlink.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Chainlink" - ] - }, - "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol": { - "lastModificationDate": 1686152163798, - "contentHash": "06b6aefcae95de6d1597ad8e1d73a08b", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/ENSInterface.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ENSInterface" - ] - }, - "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol": { - "lastModificationDate": 1686152163859, - "contentHash": "da5a0c3bd86c896f6a407f909c57edf3", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "LinkTokenInterface" - ] - }, - "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol": { - "lastModificationDate": 1686152163894, - "contentHash": "27da4b2007d200dd5afff31dbf31ac99", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "PointerInterface" - ] - }, - "/workspace/node_modules/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol": { - "lastModificationDate": 1686152164994, - "contentHash": "24a98b0606654e662097eed9ffa91a11", - "sourceName": "@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ENSResolver" - ] - }, - "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol": { - "lastModificationDate": 1686152163869, - "contentHash": "e1822c36361fc3a26b5a68df3ddab15d", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/OperatorInterface.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./OracleInterface.sol", - "./ChainlinkRequestInterface.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "OperatorInterface" - ] - }, - "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol": { - "lastModificationDate": 1686152163790, - "contentHash": "14407a6ead15cff8a0e0a7f8037c68f5", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ChainlinkRequestInterface" - ] - }, - "/workspace/node_modules/@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol": { - "lastModificationDate": 1686152164969, - "contentHash": "52ac6f99fb0635751ae4ed11139878fd", - "sourceName": "@chainlink/contracts/src/v0.8/vendor/BufferChainlink.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "BufferChainlink" - ] - }, - "/workspace/node_modules/@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol": { - "lastModificationDate": 1686152164978, - "contentHash": "99b3ee2c29bc0d1a5cba583d9e8d835e", - "sourceName": "@chainlink/contracts/src/v0.8/vendor/CBORChainlink.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./BufferChainlink.sol" - ], - "versionPragmas": [ - ">=0.4.19" - ], - "artifacts": [ - "CBORChainlink" - ] - }, - "/workspace/node_modules/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol": { - "lastModificationDate": 1686152163876, - "contentHash": "6283e42024961596926c2b5015eef8e0", - "sourceName": "@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "OracleInterface" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": { - "lastModificationDate": 1686152165852, - "contentHash": "79ff1a7eb801a525aa315fb7a679eede", - "sourceName": "@openzeppelin/contracts/token/ERC721/ERC721.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IERC721.sol", - "./IERC721Receiver.sol", - "./extensions/IERC721Metadata.sol", - "../../utils/Address.sol", - "../../utils/Context.sol", - "../../utils/Strings.sol", - "../../utils/introspection/ERC165.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC721" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/utils/Strings.sol": { - "lastModificationDate": 1686152165865, - "contentHash": "cf46906c4035f51639a22265066a9e78", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Strings" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/utils/Address.sol": { - "lastModificationDate": 1686152086476, - "contentHash": "c476b3895a94798b88a4bb97399e6dfe", - "sourceName": "@openzeppelin/contracts/utils/Address.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.1" - ], - "artifacts": [ - "Address" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { - "lastModificationDate": 1686152087503, - "contentHash": "0e7db055ce108f9da7bb6686a00287c0", - "sourceName": "@openzeppelin/contracts/utils/introspection/ERC165.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IERC165.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC165" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { - "lastModificationDate": 1686152165853, - "contentHash": "c22d4395e33763de693fd440c6fd10e1", - "sourceName": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC721Receiver" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { - "lastModificationDate": 1686152165858, - "contentHash": "efbc0d15b80a74e34dbe8da0f3e879bb", - "sourceName": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../IERC721.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC721Metadata" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/components/Riskpool.sol": { - "lastModificationDate": 1686152143985, - "contentHash": "52955296d8bbf5fa605af49491f8bfa8", - "sourceName": "@etherisc/gif-interface/contracts/components/Riskpool.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IRiskpool.sol", - "./Component.sol", - "../modules/IBundle.sol", - "../modules/IPolicy.sol", - "../services/IInstanceService.sol", - "../services/IRiskpoolService.sol", - "@openzeppelin/contracts/token/ERC721/IERC721.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "Riskpool" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/components/IRiskpool.sol": { - "lastModificationDate": 1686152143958, - "contentHash": "df0fcac87a1e8b01750df89e04eda7e1", - "sourceName": "@etherisc/gif-interface/contracts/components/IRiskpool.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IComponent.sol", - "../modules/IBundle.sol", - "../modules/IPolicy.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IRiskpool" - ] - }, - "/workspace/contracts/tokens/BundleToken.sol": { - "lastModificationDate": 1685691173419, - "contentHash": "d0b3e0e55790c8a71fbf2bf78613d8ab", - "sourceName": "contracts/tokens/BundleToken.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@openzeppelin/contracts/access/Ownable.sol", - "@openzeppelin/contracts/token/ERC721/ERC721.sol", - "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "BundleToken" - ] - }, - "/workspace/contracts/services/InstanceOperatorService.sol": { - "lastModificationDate": 1685691173016, - "contentHash": "54dc55ef1cdadcde99d42137b2a59b31", - "sourceName": "contracts/services/InstanceOperatorService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../modules/AccessController.sol", - "../modules/BundleController.sol", - "../modules/ComponentController.sol", - "../modules/PoolController.sol", - "../modules/TreasuryModule.sol", - "../shared/CoreController.sol", - "../test/TestProduct.sol", - "../tokens/BundleToken.sol", - "@etherisc/gif-interface/contracts/components/IComponent.sol", - "@etherisc/gif-interface/contracts/components/IProduct.sol", - "@etherisc/gif-interface/contracts/modules/IQuery.sol", - "@etherisc/gif-interface/contracts/modules/ITreasury.sol", - "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol", - "@openzeppelin/contracts/access/Ownable.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "InstanceOperatorService" - ] - }, - "/workspace/contracts/modules/AccessController.sol": { - "lastModificationDate": 1685974557692, - "contentHash": "e1bf81e63e9c9646fddef72da550d35b", - "sourceName": "contracts/modules/AccessController.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../shared/CoreController.sol", - "@etherisc/gif-interface/contracts/modules/IAccess.sol", - "@openzeppelin/contracts/access/AccessControlEnumerable.sol", - "@openzeppelin/contracts/proxy/utils/Initializable.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "AccessController" - ] - }, - "/workspace/contracts/modules/BundleController.sol": { - "lastModificationDate": 1685974557692, - "contentHash": "b12640f4102845ee376d08cf576de4a1", - "sourceName": "contracts/modules/BundleController.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./PolicyController.sol", - "../shared/CoreController.sol", - "../tokens/BundleToken.sol", - "@etherisc/gif-interface/contracts/components/IProduct.sol", - "@etherisc/gif-interface/contracts/modules/IBundle.sol", - "./PoolController.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "BundleController" - ] - }, - "/workspace/contracts/modules/ComponentController.sol": { - "lastModificationDate": 1685974557686, - "contentHash": "75c0db517fde09239e9f0b2946e00425", - "sourceName": "contracts/modules/ComponentController.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../shared/CoreController.sol", - "@etherisc/gif-interface/contracts/components/IComponent.sol", - "@etherisc/gif-interface/contracts/components/IOracle.sol", - "@etherisc/gif-interface/contracts/components/IProduct.sol", - "@etherisc/gif-interface/contracts/components/IRiskpool.sol", - "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol", - "@openzeppelin/contracts/utils/structs/EnumerableSet.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "ComponentController" - ] - }, - "/workspace/contracts/modules/PoolController.sol": { - "lastModificationDate": 1685974557684, - "contentHash": "cdb8a42a7a94b769ecc8346e6f219630", - "sourceName": "contracts/modules/PoolController.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./ComponentController.sol", - "./PolicyController.sol", - "./BundleController.sol", - "../shared/CoreController.sol", - "@etherisc/gif-interface/contracts/modules/IPool.sol", - "@etherisc/gif-interface/contracts/components/IComponent.sol", - "@etherisc/gif-interface/contracts/components/IRiskpool.sol", - "@openzeppelin/contracts/utils/structs/EnumerableSet.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "PoolController" - ] - }, - "/workspace/contracts/modules/TreasuryModule.sol": { - "lastModificationDate": 1685974550325, - "contentHash": "a93b37ea3d91b871c695395937bbd030", - "sourceName": "contracts/modules/TreasuryModule.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./ComponentController.sol", - "./PolicyController.sol", - "./BundleController.sol", - "./PoolController.sol", - "../shared/CoreController.sol", - "../shared/TransferHelper.sol", - "@etherisc/gif-interface/contracts/components/IComponent.sol", - "@etherisc/gif-interface/contracts/components/IProduct.sol", - "@etherisc/gif-interface/contracts/modules/IPolicy.sol", - "@etherisc/gif-interface/contracts/modules/ITreasury.sol", - "@openzeppelin/contracts/security/Pausable.sol", - "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "@openzeppelin/contracts/utils/Strings.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "TreasuryModule" - ] - }, - "/workspace/contracts/shared/CoreController.sol": { - "lastModificationDate": 1685691173055, - "contentHash": "5ac3ddac3490982db6a3fc511bc50baf", - "sourceName": "contracts/shared/CoreController.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@etherisc/gif-interface/contracts/modules/IAccess.sol", - "@etherisc/gif-interface/contracts/modules/IRegistry.sol", - "@openzeppelin/contracts/proxy/utils/Initializable.sol", - "@openzeppelin/contracts/utils/Context.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "CoreController" - ] - }, - "/workspace/contracts/test/TestProduct.sol": { - "lastModificationDate": 1685691173364, - "contentHash": "f17128df8cd849c356e65fb1eea0f930", - "sourceName": "contracts/test/TestProduct.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@etherisc/gif-interface/contracts/modules/IPolicy.sol", - "@etherisc/gif-interface/contracts/services/IProductService.sol", - "@etherisc/gif-interface/contracts/services/IInstanceService.sol", - "@etherisc/gif-interface/contracts/components/Product.sol", - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "TestProduct" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/components/IProduct.sol": { - "lastModificationDate": 1686152143949, - "contentHash": "401ac666ff832f2cf481662f82a21267", - "sourceName": "@etherisc/gif-interface/contracts/components/IProduct.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IComponent.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IProduct" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/IQuery.sol": { - "lastModificationDate": 1686152144047, - "contentHash": "b4bf82c9ae7eca2d28c04fcb1e61c641", - "sourceName": "@etherisc/gif-interface/contracts/modules/IQuery.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "IQuery" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/access/AccessControlEnumerable.sol": { - "lastModificationDate": 1686152086457, - "contentHash": "b6d9b165dc57e9ad8153bdca05c783a4", - "sourceName": "@openzeppelin/contracts/access/AccessControlEnumerable.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IAccessControlEnumerable.sol", - "./AccessControl.sol", - "../utils/structs/EnumerableSet.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "AccessControlEnumerable" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol": { - "lastModificationDate": 1686152165442, - "contentHash": "bcba485bbfd0aab6b8875b58224f6330", - "sourceName": "@openzeppelin/contracts/proxy/utils/Initializable.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../../utils/Address.sol" - ], - "versionPragmas": [ - "^0.8.2" - ], - "artifacts": [ - "Initializable" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/access/AccessControl.sol": { - "lastModificationDate": 1686152086407, - "contentHash": "e6ef731d275b1e7b2995f00fa56d9dab", - "sourceName": "@openzeppelin/contracts/access/AccessControl.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IAccessControl.sol", - "../utils/Context.sol", - "../utils/Strings.sol", - "../utils/introspection/ERC165.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "AccessControl" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol": { - "lastModificationDate": 1686152087253, - "contentHash": "aec6e37069dfaa5e3d5fd66ef2274b0c", - "sourceName": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "EnumerableSet" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/access/IAccessControlEnumerable.sol": { - "lastModificationDate": 1686152165020, - "contentHash": "4e71cc90682e109e999ce2bd329f6572", - "sourceName": "@openzeppelin/contracts/access/IAccessControlEnumerable.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IAccessControl.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IAccessControlEnumerable" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/access/IAccessControl.sol": { - "lastModificationDate": 1686152165018, - "contentHash": "57c84298234411cea19c7c284d86be8b", - "sourceName": "@openzeppelin/contracts/access/IAccessControl.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IAccessControl" - ] - }, - "/workspace/contracts/modules/PolicyController.sol": { - "lastModificationDate": 1685974557684, - "contentHash": "faa619da5dc0d3245cc15038464574ca", - "sourceName": "contracts/modules/PolicyController.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../shared/CoreController.sol", - "./ComponentController.sol", - "@etherisc/gif-interface/contracts/modules/IPolicy.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "PolicyController" - ] - }, - "/workspace/contracts/shared/TransferHelper.sol": { - "lastModificationDate": 1685691173070, - "contentHash": "cb902ec2d825572ff94e90275d92a4f9", - "sourceName": "contracts/shared/TransferHelper.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/IERC20.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "TransferHelper" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/security/Pausable.sol": { - "lastModificationDate": 1686152165544, - "contentHash": "25c8108f36fdd472bc78d4c4af240c11", - "sourceName": "@openzeppelin/contracts/security/Pausable.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../utils/Context.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Pausable" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { - "lastModificationDate": 1686152087703, - "contentHash": "af7bd64e1cfefbf6cb07f2adc1a25392", - "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IERC20.sol", - "./extensions/IERC20Metadata.sol", - "../../utils/Context.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC20" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/components/Product.sol": { - "lastModificationDate": 1686152143973, - "contentHash": "d69df660fe6a66b68f6de5492eb6e3fe", - "sourceName": "@etherisc/gif-interface/contracts/components/Product.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./IProduct.sol", - "./Component.sol", - "../modules/IPolicy.sol", - "../services/IInstanceService.sol", - "../services/IProductService.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "Product" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { - "lastModificationDate": 1686152165850, - "contentHash": "909ab67fc5c25033fe6cd364f8c056f9", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../IERC20.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC20Metadata" - ] - }, - "/workspace/contracts/services/InstanceService.sol": { - "lastModificationDate": 1685691173023, - "contentHash": "53633366c46da099c167e69e453f519f", - "sourceName": "contracts/services/InstanceService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../modules/ComponentController.sol", - "../modules/BundleController.sol", - "../modules/PolicyController.sol", - "../modules/PoolController.sol", - "../modules/TreasuryModule.sol", - "../shared/CoreController.sol", - "../services/InstanceOperatorService.sol", - "@etherisc/gif-interface/contracts/components/IComponent.sol", - "@etherisc/gif-interface/contracts/components/IOracle.sol", - "@etherisc/gif-interface/contracts/components/IProduct.sol", - "@etherisc/gif-interface/contracts/components/IRiskpool.sol", - "@etherisc/gif-interface/contracts/modules/IPolicy.sol", - "@etherisc/gif-interface/contracts/modules/IRegistry.sol", - "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol", - "@etherisc/gif-interface/contracts/services/IInstanceService.sol", - "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol", - "@etherisc/gif-interface/contracts/services/IOracleService.sol", - "@etherisc/gif-interface/contracts/services/IProductService.sol", - "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol", - "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol", - "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "@openzeppelin/contracts/token/ERC721/IERC721.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "InstanceService" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/components/BasicRiskpool.sol": { - "lastModificationDate": 1686152143912, - "contentHash": "c40a38ffa47bb6f5d4d9b1e3e77e67de", - "sourceName": "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./Riskpool.sol", - "../modules/IBundle.sol", - "../modules/IPolicy.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "BasicRiskpool" - ] - }, - "/workspace/contracts/test/TestRiskpool.sol": { - "lastModificationDate": 1685691173402, - "contentHash": "a71e64f20da33e890c411d56c14115a9", - "sourceName": "contracts/test/TestRiskpool.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol", - "@etherisc/gif-interface/contracts/modules/IBundle.sol", - "@etherisc/gif-interface/contracts/modules/IPolicy.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "TestRiskpool" - ] - }, - "/workspace/contracts/services/RiskpoolService.sol": { - "lastModificationDate": 1685691173043, - "contentHash": "8629073d8ff486b69e1c12d09affa31a", - "sourceName": "contracts/services/RiskpoolService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../modules/BundleController.sol", - "../modules/ComponentController.sol", - "../modules/TreasuryModule.sol", - "../shared/CoreController.sol", - "@etherisc/gif-interface/contracts/components/IComponent.sol", - "@etherisc/gif-interface/contracts/modules/IBundle.sol", - "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "RiskpoolService" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol": { - "lastModificationDate": 1686152087650, - "contentHash": "6baa887a798e95b14f34e093f117e9b2", - "sourceName": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../beacon/IBeacon.sol", - "../../interfaces/draft-IERC1822.sol", - "../../utils/Address.sol", - "../../utils/StorageSlot.sol" - ], - "versionPragmas": [ - "^0.8.2" - ], - "artifacts": [ - "ERC1967Upgrade" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": { - "lastModificationDate": 1686152165865, - "contentHash": "f993f8f50186952a59ee5e3a30b68222", - "sourceName": "@openzeppelin/contracts/utils/StorageSlot.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "StorageSlot" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": { - "lastModificationDate": 1686152087112, - "contentHash": "2858d98e74e67987ec81b39605230b74", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC1822.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC1822Proxiable" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol": { - "lastModificationDate": 1686152165439, - "contentHash": "b6bd23bf19e90b771337037706470933", - "sourceName": "@openzeppelin/contracts/proxy/beacon/IBeacon.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IBeacon" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol": { - "lastModificationDate": 1686152087623, - "contentHash": "3fc3c7c0a2956f36e766691bb9473b06", - "sourceName": "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../Proxy.sol", - "./ERC1967Upgrade.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "ERC1967Proxy" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/proxy/Proxy.sol": { - "lastModificationDate": 1686152165439, - "contentHash": "40b3d81a836d50ff47e03893dcaaf204", - "sourceName": "@openzeppelin/contracts/proxy/Proxy.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "Proxy" - ] - }, - "/workspace/contracts/shared/CoreProxy.sol": { - "lastModificationDate": 1685691173063, - "contentHash": "6c9f1c28205936ec0b1b752c1385cde2", - "sourceName": "contracts/shared/CoreProxy.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@etherisc/gif-interface/contracts/shared/ICoreProxy.sol", - "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "CoreProxy" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/shared/ICoreProxy.sol": { - "lastModificationDate": 1686152144130, - "contentHash": "eae75573fa598f626a54b6ebe69c867e", - "sourceName": "@etherisc/gif-interface/contracts/shared/ICoreProxy.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "ICoreProxy" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": { - "lastModificationDate": 1686152165851, - "contentHash": "3a843b05b85a270e9455e3d2e804e633", - "sourceName": "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../IERC20.sol", - "../extensions/draft-IERC20Permit.sol", - "../../../utils/Address.sol" - ], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "SafeERC20" - ] - }, - "/workspace/node_modules/@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": { - "lastModificationDate": 1686152087116, - "contentHash": "fb77f144244b9ab12533aa6ce85ef8c5", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "^0.8.0" - ], - "artifacts": [ - "IERC20Permit" - ] - }, - "/workspace/contracts/tokens/RiskpoolToken.sol": { - "lastModificationDate": 1685691173427, - "contentHash": "44916e05e084c1996105b26019a87161", - "sourceName": "contracts/tokens/RiskpoolToken.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "RiskpoolToken" - ] - }, - "/workspace/contracts/test/TestCompromisedProduct.sol": { - "lastModificationDate": 1685691173343, - "contentHash": "b77f34d647b284bb67f783c2b2d47e74", - "sourceName": "contracts/test/TestCompromisedProduct.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@etherisc/gif-interface/contracts/components/IComponent.sol", - "@etherisc/gif-interface/contracts/components/IProduct.sol", - "@etherisc/gif-interface/contracts/modules/IAccess.sol", - "@etherisc/gif-interface/contracts/modules/IPolicy.sol", - "@etherisc/gif-interface/contracts/modules/IRegistry.sol", - "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol", - "@etherisc/gif-interface/contracts/services/IProductService.sol", - "@etherisc/gif-interface/contracts/services/IInstanceService.sol", - "@openzeppelin/contracts/access/Ownable.sol", - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "TestCompromisedProduct" - ] - }, - "/workspace/contracts/modules/LicenseController.sol": { - "lastModificationDate": 1685974557686, - "contentHash": "b6dc729091fceba3bf112ea71ca4aee1", - "sourceName": "contracts/modules/LicenseController.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./ComponentController.sol", - "../shared/CoreController.sol", - "@etherisc/gif-interface/contracts/components/IComponent.sol", - "@etherisc/gif-interface/contracts/components/IProduct.sol", - "@etherisc/gif-interface/contracts/modules/ILicense.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "LicenseController" - ] - }, - "/workspace/node_modules/@etherisc/gif-interface/contracts/modules/ILicense.sol": { - "lastModificationDate": 1686152144022, - "contentHash": "fd028b7b240f0e7770453bcb456a1f6a", - "sourceName": "@etherisc/gif-interface/contracts/modules/ILicense.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "ILicense" - ] - }, - "/workspace/contracts/services/ProductService.sol": { - "lastModificationDate": 1685691173037, - "contentHash": "77556c2e86106abb18f7c199cc55d639", - "sourceName": "contracts/services/ProductService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../shared/WithRegistry.sol", - "@etherisc/gif-interface/contracts/modules/ILicense.sol", - "@openzeppelin/contracts/utils/Context.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "ProductService" - ] - }, - "/workspace/contracts/shared/WithRegistry.sol": { - "lastModificationDate": 1685691173076, - "contentHash": "96d8022e284d1acc65f0ea6eccd98f86", - "sourceName": "contracts/shared/WithRegistry.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@etherisc/gif-interface/contracts/modules/IRegistry.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "WithRegistry" - ] - }, - "/workspace/contracts/modules/RegistryController.sol": { - "lastModificationDate": 1685974557684, - "contentHash": "d3b4702df833a7d9a29d696683f5d970", - "sourceName": "contracts/modules/RegistryController.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../shared/CoreController.sol", - "@etherisc/gif-interface/contracts/modules/IRegistry.sol", - "@openzeppelin/contracts/proxy/utils/Initializable.sol", - "@openzeppelin/contracts/utils/Strings.sol", - "@openzeppelin/contracts/utils/structs/EnumerableSet.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "RegistryController" - ] - }, - "/workspace/contracts/test/TestRegistryControllerUpdated.sol": { - "lastModificationDate": 1685691173394, - "contentHash": "70d6f19fd189b4d624f75d21732926be", - "sourceName": "contracts/test/TestRegistryControllerUpdated.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../modules/RegistryController.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "TestRegistryControllerUpdated" - ] - }, - "/workspace/contracts/services/ComponentOwnerService.sol": { - "lastModificationDate": 1685691173009, - "contentHash": "12e2008b93e92eb60ad5a259a0bb59db", - "sourceName": "contracts/services/ComponentOwnerService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../modules/ComponentController.sol", - "../modules/PoolController.sol", - "../shared/CoreController.sol", - "@etherisc/gif-interface/contracts/components/IComponent.sol", - "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "ComponentOwnerService" - ] - }, - "/workspace/contracts/modules/QueryModule.sol": { - "lastModificationDate": 1685974557684, - "contentHash": "5dbf2342023d4243e94b5f427b4eaa85", - "sourceName": "contracts/modules/QueryModule.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "./ComponentController.sol", - "../shared/CoreController.sol", - "@etherisc/gif-interface/contracts/components/IComponent.sol", - "@etherisc/gif-interface/contracts/components/IOracle.sol", - "@etherisc/gif-interface/contracts/modules/IQuery.sol", - "@etherisc/gif-interface/contracts/services/IInstanceService.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "QueryModule" - ] - }, - "/workspace/contracts/services/OracleService.sol": { - "lastModificationDate": 1685691173030, - "contentHash": "9e124d6210e6987368c5ab3a205a34d1", - "sourceName": "contracts/services/OracleService.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../shared/CoreController.sol", - "@etherisc/gif-interface/contracts/modules/IQuery.sol", - "@etherisc/gif-interface/contracts/services/IOracleService.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "OracleService" - ] - }, - "/workspace/contracts/flows/PolicyDefaultFlow.sol": { - "lastModificationDate": 1685691172920, - "contentHash": "cf1ef988b68981752230674e53236069", - "sourceName": "contracts/flows/PolicyDefaultFlow.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../modules/ComponentController.sol", - "../modules/PoolController.sol", - "../modules/PolicyController.sol", - "../modules/QueryModule.sol", - "../modules/TreasuryModule.sol", - "../shared/WithRegistry.sol", - "@etherisc/gif-interface/contracts/modules/IPolicy.sol", - "@etherisc/gif-interface/contracts/modules/IRegistry.sol", - "@etherisc/gif-interface/contracts/modules/IPool.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "PolicyDefaultFlow" - ] - }, - "/workspace/contracts/examples/AyiiProduct.sol": { - "lastModificationDate": 1685691172873, - "contentHash": "155f3ed8fd66fd6a2a5c6c0e51441a31", - "sourceName": "contracts/examples/AyiiProduct.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../shared/TransferHelper.sol", - "@openzeppelin/contracts/access/AccessControl.sol", - "@openzeppelin/contracts/proxy/utils/Initializable.sol", - "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol", - "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", - "@etherisc/gif-interface/contracts/components/Product.sol", - "../modules/PolicyController.sol", - "../modules/AccessController.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "AyiiProduct" - ] - }, - "/workspace/contracts/test/TestTransferFrom.sol": { - "lastModificationDate": 1685691173408, - "contentHash": "aaf2320b5d86f71e8e41426cf9d46d12", - "sourceName": "contracts/test/TestTransferFrom.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "../shared/TransferHelper.sol", - "@openzeppelin/contracts/token/ERC20/IERC20.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "TestTransferFrom" - ] - }, - "/workspace/contracts/examples/AyiiRiskpool.sol": { - "lastModificationDate": 1685691172880, - "contentHash": "e35f9566cbdfa3ef4e131fdab285abc0", - "sourceName": "contracts/examples/AyiiRiskpool.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@openzeppelin/contracts/access/AccessControl.sol", - "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol", - "@etherisc/gif-interface/contracts/modules/IBundle.sol", - "@etherisc/gif-interface/contracts/modules/IPolicy.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "AyiiRiskpool" - ] - }, - "/workspace/contracts/test/TestCoinAlternativeImplementation.sol": { - "lastModificationDate": 1685691173336, - "contentHash": "0c0817956ec384e8d04d23460f176547", - "sourceName": "contracts/test/TestCoinAlternativeImplementation.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "TestCoinAlternativeImplementation" - ] - }, - "/workspace/contracts/test/TestCoin.sol": { - "lastModificationDate": 1685691173103, - "contentHash": "bfd23922a01d38809a98b2123ddf3d1a", - "sourceName": "contracts/test/TestCoin.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "TestCoin", - "TestCoinX" - ] - }, - "/workspace/contracts/examples/mock/ChainlinkToken.sol": { - "lastModificationDate": 1685691172901, - "contentHash": "77acf2ef516bcd8fca65283919b259f3", - "sourceName": "contracts/examples/mock/ChainlinkToken.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@openzeppelin/contracts/token/ERC20/ERC20.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "ChainlinkToken", - "ERC677Receiver" - ] - }, - "/workspace/contracts/examples/mock/ChainlinkOperator.sol": { - "lastModificationDate": 1685691172892, - "contentHash": "39f2a5b7862445bfc6b0be5438776f25", - "sourceName": "contracts/examples/mock/ChainlinkOperator.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@openzeppelin/contracts/access/Ownable.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "ChainlinkOperator" - ] - }, - "/workspace/contracts/test/TestOracle.sol": { - "lastModificationDate": 1685691173356, - "contentHash": "557d61d4001a6a3d913622280bd02c65", - "sourceName": "contracts/test/TestOracle.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [ - "@etherisc/gif-interface/contracts/components/Oracle.sol" - ], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "TestOracle" - ] - }, - "/workspace/contracts/test/TestRegistryCompromisedController.sol": { - "lastModificationDate": 1685691173371, - "contentHash": "544c77171322d2602d52889d353186c6", - "sourceName": "contracts/test/TestRegistryCompromisedController.sol", - "solcConfig": { - "version": "0.8.2", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": [ - "ast" - ] - } - } - } - }, - "imports": [], - "versionPragmas": [ - "0.8.2" - ], - "artifacts": [ - "TestRegistryCompromisedController" - ] - } - } -} From 7c14c9aeb8f9078ea040d31c1da2e323c8d1248b Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Wed, 7 Jun 2023 16:40:11 +0000 Subject: [PATCH 09/29] update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 05794bda..daedaec9 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ tmp/ .vscode/launch.json etherisc*.tgz + From a6edb79160e4e64bd40c96e381b13d2658a9f158 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Wed, 7 Jun 2023 17:12:35 +0000 Subject: [PATCH 10/29] Fix natspec syntax --- contracts/modules/AccessController.sol | 68 ++++++++++---------- contracts/modules/BundleController.sol | 48 +++++++------- contracts/modules/ComponentController.sol | 64 +++++++++---------- contracts/modules/LicenseController.sol | 28 ++++---- contracts/modules/PolicyController.sol | 78 +++++++++++------------ contracts/modules/PoolController.sol | 48 +++++++------- contracts/modules/QueryModule.sol | 46 ++++++------- contracts/modules/RegistryController.sol | 64 +++++++++---------- contracts/modules/TreasuryModule.sol | 60 ++++++++--------- 9 files changed, 253 insertions(+), 251 deletions(-) diff --git a/contracts/modules/AccessController.sol b/contracts/modules/AccessController.sol index 392d2018..b45c98e9 100644 --- a/contracts/modules/AccessController.sol +++ b/contracts/modules/AccessController.sol @@ -9,39 +9,41 @@ import "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; /** -The provided smart contract is called "AccessController" and is written in Solidity. It implements the "IAccess" interface and inherits from the "CoreController" contract and the "AccessControlEnumerable" contract. The contract provides functionalities for access control and role management. - -Roles: -The contract defines three role identifiers as bytes32 constants: -1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. -2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. -3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. - -State Variables: -- `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. -- `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. - -Functions: -- `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. -- `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. -- `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. -- `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract. -- `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract. -- `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract. -- `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping. -- `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping. -- `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role. -- `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE. -- `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE. -- `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE. -- `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. -- `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. - -Modifiers: -- `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. - -Overall, the contract provides a flexible access control mechanism by defining roles and allowing the assignment, revocation, and validation of roles by instance operators. It also sets a default admin role and manages the validity of roles through the `validRole` mapping. -*/ + * @dev The provided smart contract is called "AccessController" and is written in Solidity. It implements the "IAccess" interface and inherits from the "CoreController" contract and the "AccessControlEnumerable" contract. The contract provides functionalities for access control and role management. + * + * Roles: + * The contract defines three role identifiers as bytes32 constants: + * 1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. + * 2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. + * 3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. + * + * State Variables: + * - `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. + * - `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. + * + * Functions: + * - `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. + * - `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. + * - `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. + * - `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract. + * - `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract. + * - `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract. + * - `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping. + * - `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping. + * - `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role. + * - `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE. + * - `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE. + * - `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE. + * - `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. + * - `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. + * + * Modifiers: + * - `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. + * + * Overall, the contract provides a flexible access control mechanism by defining roles and + * allowing the assignment, revocation, and validation of roles by instance operators. + * It also sets a default admin role and manages the validity of roles through the `validRole` mapping. + */ contract AccessController is diff --git a/contracts/modules/BundleController.sol b/contracts/modules/BundleController.sol index f78ab251..ab00c209 100644 --- a/contracts/modules/BundleController.sol +++ b/contracts/modules/BundleController.sol @@ -10,30 +10,30 @@ import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; import "./PoolController.sol"; /** -The smart contract is used to manage bundles, which are collections of policies. - -- The contract imports other Solidity contracts such as `PolicyController.sol`, `CoreController.sol`, and `BundleToken.sol`. -- The contract implements the `IBundle` interface and extends the `CoreController` contract. -- It defines several mappings to store information about bundles, active policies, locked capital per policy, and the number of unburt bundles for each risk pool. -- There is a private variable `_bundleCount` to keep track of the number of bundles created. -- The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`. - -Functions: -- `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment. -- `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token. -- `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance. -- `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle. -- `lock()`: Locks a bundle of assets by changing its state to "Locked." -- `unlock()`: Unlocks a bundle, changing its state back to "Active." -- `close()`: Closes a bundle of policies. -- `burn()`: Burns a bundle, changing its state to "Burned." -- `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. -- `processPremium()`: Processes the premium payment for a given bundle and updates its balance. -- `processPayout()`: Processes a payout for a policy from a bundle. -- `releasePolicy()`: Releases a policy and updates the bundle's capital. - -The contract includes various modifiers and event emitters to enforce access control and emit relevant events. -Overall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle. + * @dev The smart contract is used to manage bundles, which are collections of policies. + * + * - The contract imports other Solidity contracts such as `PolicyController.sol`, `CoreController.sol`, and `BundleToken.sol`. + * - The contract implements the `IBundle` interface and extends the `CoreController` contract. + * - It defines several mappings to store information about bundles, active policies, locked capital per policy, and the number of unburt bundles for each risk pool. + * - There is a private variable `_bundleCount` to keep track of the number of bundles created. + * - The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`. + * + * Functions: + * - `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment. + * - `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token. + * - `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance. + * - `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle. + * - `lock()`: Locks a bundle of assets by changing its state to "Locked." + * - `unlock()`: Unlocks a bundle, changing its state back to "Active." + * - `close()`: Closes a bundle of policies. + * - `burn()`: Burns a bundle, changing its state to "Burned." + * - `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. + * - `processPremium()`: Processes the premium payment for a given bundle and updates its balance. + * - `processPayout()`: Processes a payout for a policy from a bundle. + * - `releasePolicy()`: Releases a policy and updates the bundle's capital. + * + * The contract includes various modifiers and event emitters to enforce access control and emit relevant events. + * Overall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle. */ diff --git a/contracts/modules/ComponentController.sol b/contracts/modules/ComponentController.sol index b9564be8..11e2e600 100644 --- a/contracts/modules/ComponentController.sol +++ b/contracts/modules/ComponentController.sol @@ -10,38 +10,38 @@ import "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol"; import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; /** -The smart contract provides functionality to manage and control components in a system. -The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. -It also includes modifiers to restrict access to certain functions based on the caller's role. - -Functions: -- `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. -- `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. -- `exists()`: Checks if a component with the given ID exists in the system. -- `approve()`: Approves a component with the given ID, changing its state to "Active" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping. -- `decline()`: Changes the state of a component with the given ID to "Declined" and emits an event. It also calls the `declineCallback` function of the component. -- `suspend()`: Suspends a component with the given ID by changing its state to "Suspended" and emitting an event. It also calls the `suspendCallback` function of the component. -- `resume()`: Resumes a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `resumeCallback` function of the component. -- `pause()`: Pauses a component with the given ID by changing its state to "Paused" and emitting an event. It also calls the `pauseCallback` function of the component. -- `unpause()`: Unpauses a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `unpauseCallback` function of the component. -- `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. -- `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. -- `getComponent()`: Retrieves the component with the given ID. -- `getComponentId()`: Retrieves the ID of a registered component given its address. -- `getComponentType()`: Retrieves the component type of a given component ID. -- `getComponentState()`: Retrieves the state of the component with the given ID. -- `getOracleId()`: Retrieves the oracle ID at the specified index. -- `getRiskpoolId()`: Retrieves the risk pool ID at the specified index. -- `getProductId()`: Retrieves the product ID at the specified index. -- `getRequiredRole()`: Retrieves the required role for a given component type. -- `components()`: Returns the number of components currently stored in the contract. -- `products()`: Returns the number of products in the `_products` set. -- `oracles()`: Returns the number of oracles registered in the `_oracles` set. -- `riskpools()`: Returns the number of risk pools in the set. - -The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. - -The contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations. + * @dev The smart contract provides functionality to manage and control components in a system. + * The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. + * It also includes modifiers to restrict access to certain functions based on the caller's role. + * + * Functions: + * - `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. + * - `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. + * - `exists()`: Checks if a component with the given ID exists in the system. + * - `approve()`: Approves a component with the given ID, changing its state to "Active" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping. + * - `decline()`: Changes the state of a component with the given ID to "Declined" and emits an event. It also calls the `declineCallback` function of the component. + * - `suspend()`: Suspends a component with the given ID by changing its state to "Suspended" and emitting an event. It also calls the `suspendCallback` function of the component. + * - `resume()`: Resumes a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `resumeCallback` function of the component. + * - `pause()`: Pauses a component with the given ID by changing its state to "Paused" and emitting an event. It also calls the `pauseCallback` function of the component. + * - `unpause()`: Unpauses a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `unpauseCallback` function of the component. + * - `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. + * - `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. + * - `getComponent()`: Retrieves the component with the given ID. + * - `getComponentId()`: Retrieves the ID of a registered component given its address. + * - `getComponentType()`: Retrieves the component type of a given component ID. + * - `getComponentState()`: Retrieves the state of the component with the given ID. + * - `getOracleId()`: Retrieves the oracle ID at the specified index. + * - `getRiskpoolId()`: Retrieves the risk pool ID at the specified index. + * - `getProductId()`: Retrieves the product ID at the specified index. + * - `getRequiredRole()`: Retrieves the required role for a given component type. + * - `components()`: Returns the number of components currently stored in the contract. + * - `products()`: Returns the number of products in the `_products` set. + * - `oracles()`: Returns the number of oracles registered in the `_oracles` set. + * - `riskpools()`: Returns the number of risk pools in the set. + * + * The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. + * + * The contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations. */ contract ComponentController is diff --git a/contracts/modules/LicenseController.sol b/contracts/modules/LicenseController.sol index ef12bf7e..383a4a9c 100644 --- a/contracts/modules/LicenseController.sol +++ b/contracts/modules/LicenseController.sol @@ -9,20 +9,20 @@ import "@etherisc/gif-interface/contracts/components/IProduct.sol"; import "@etherisc/gif-interface/contracts/modules/ILicense.sol"; /** -The smart contract serves as a controller contract for managing licenses related to products in an insurance ecosystem. -The contract implements the `ILicense` interface and extends the `CoreController` contract. - -The contract imports two other contracts: `ComponentController.sol` and `CoreController.sol`, which are expected to be located in specific file paths. -It also imports several interfaces from the "etherisc/gif-interface" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`. -The contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract. - -Functions: -- `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract. -- `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function. -- `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`. -- `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`. - -Overall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem. + * @dev The smart contract serves as a controller contract for managing licenses related to products in an insurance ecosystem. + * The contract implements the `ILicense` interface and extends the `CoreController` contract. + * + * The contract imports two other contracts: `ComponentController.sol` and `CoreController.sol`, which are expected to be located in specific file paths. + * It also imports several interfaces from the "etherisc/gif-interface" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`. + * The contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract. + * + * Functions: + * - `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract. + * - `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function. + * - `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`. + * - `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`. + * + * Overall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem. */ diff --git a/contracts/modules/PolicyController.sol b/contracts/modules/PolicyController.sol index c8952f5e..7c16df12 100644 --- a/contracts/modules/PolicyController.sol +++ b/contracts/modules/PolicyController.sol @@ -6,45 +6,45 @@ import "./ComponentController.sol"; import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; /** -The smart contract implements functions for policy operations, including creation, update, cancellation, and retrieval. -It also provides functions for claim creation, confirmation, decline, closure, and payout creation. -Additionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy. -The contract inherits from the `IPolicy` interface and the `CoreController` contract. - -1. State Variables: -- `metadata`: A mapping that stores metadata associated with policy flows. -- `applications`: A mapping that stores insurance applications associated with policy flows. -- `policies`: A mapping that stores policies associated with policy flows. -- `claims`: A nested mapping that stores claims associated with policies. -- `payouts`: A nested mapping that stores payouts associated with policies. -- `payoutCount`: A mapping that stores the count of payouts for each policy flow. -- `_assigendProcessIds`: A counter variable for assigning unique process IDs. -- `_component`: A reference to the `ComponentController` contract. - -2. Functions: -- `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization. -- `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data. -- `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data. -- `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount. -- `revokeApplication()`: Revokes an application for a policy flow. -- `underwriteApplication()`: Changes the state of an application to "Underwritten". -- `declineApplication()`: Declines an application for a policy flow. -- `createPolicy()`: Creates a new policy for a given application process ID. -- `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application. -- `expirePolicy()`: Expires a policy with the given process ID. -- `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims. -- `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event. -- `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event. -- `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event. -- `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event. -- `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event. -- `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event. -- `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists. -- `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists. -- `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function. -- `getNumberOfPayouts()`: Returns the number of payouts for a given process ID. - -Overall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract. + * @dev The smart contract implements functions for policy operations, including creation, update, cancellation, and retrieval. + * It also provides functions for claim creation, confirmation, decline, closure, and payout creation. + * Additionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy. + * The contract inherits from the `IPolicy` interface and the `CoreController` contract. + * + * 1. State Variables: + * - `metadata`: A mapping that stores metadata associated with policy flows. + * - `applications`: A mapping that stores insurance applications associated with policy flows. + * - `policies`: A mapping that stores policies associated with policy flows. + * - `claims`: A nested mapping that stores claims associated with policies. + * - `payouts`: A nested mapping that stores payouts associated with policies. + * - `payoutCount`: A mapping that stores the count of payouts for each policy flow. + * - `_assigendProcessIds`: A counter variable for assigning unique process IDs. + * - `_component`: A reference to the `ComponentController` contract. + * + * 2. Functions: + * - `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization. + * - `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data. + * - `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data. + * - `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount. + * - `revokeApplication()`: Revokes an application for a policy flow. + * - `underwriteApplication()`: Changes the state of an application to "Underwritten". + * - `declineApplication()`: Declines an application for a policy flow. + * - `createPolicy()`: Creates a new policy for a given application process ID. + * - `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application. + * - `expirePolicy()`: Expires a policy with the given process ID. + * - `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims. + * - `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event. + * - `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event. + * - `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event. + * - `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event. + * - `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event. + * - `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event. + * - `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists. + * - `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists. + * - `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function. + * - `getNumberOfPayouts()`: Returns the number of payouts for a given process ID. + * + * Overall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract. */ contract PolicyController is diff --git a/contracts/modules/PoolController.sol b/contracts/modules/PoolController.sol index 3f01f412..36db47f1 100644 --- a/contracts/modules/PoolController.sol +++ b/contracts/modules/PoolController.sol @@ -14,30 +14,30 @@ import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; /** -The smart contract manages riskpools, their registration, funding, defunding, collateralization, and other related operations. - -- The contract implements the IPool interface and extends the CoreController contract. -- It imports other contracts such as ComponentController, PolicyController, BundleController, and CoreController. -- It uses the EnumerableSet library from OpenZeppelin for managing sets of bundle IDs. -- The contract defines constants for full collateralization level, collateralization level cap, and default maximum number of active bundles. -- It maintains mappings to store riskpool information, riskpool IDs for products, maximum number of active bundles for riskpools, and active bundle IDs for riskpools. -- The contract has a private array to store riskpool IDs. -- It has references to other contracts: ComponentController, PolicyController, and BundleController. -- The contract defines modifiers for access control to specific functions. - -Functions: -- `_afterInitialize()`: Called after contract initialization to set addresses of other contracts. -- `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration. -- `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID. -- `fund()`: Adds funds to a specific riskpool. -- `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount. -- `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure. -- `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount. -- `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract. -- `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout. -- `release()`: Releases a policy's collateral from the riskpool. - -Overall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations. + * @dev The smart contract manages riskpools, their registration, funding, defunding, collateralization, and other related operations. + * + * - The contract implements the IPool interface and extends the CoreController contract. + * - It imports other contracts such as ComponentController, PolicyController, BundleController, and CoreController. + * - It uses the EnumerableSet library from OpenZeppelin for managing sets of bundle IDs. + * - The contract defines constants for full collateralization level, collateralization level cap, and default maximum number of active bundles. + * - It maintains mappings to store riskpool information, riskpool IDs for products, maximum number of active bundles for riskpools, and active bundle IDs for riskpools. + * - The contract has a private array to store riskpool IDs. + * - It has references to other contracts: ComponentController, PolicyController, and BundleController. + * - The contract defines modifiers for access control to specific functions. + * + * Functions: + * - `_afterInitialize()`: Called after contract initialization to set addresses of other contracts. + * - `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration. + * - `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID. + * - `fund()`: Adds funds to a specific riskpool. + * - `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount. + * - `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure. + * - `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount. + * - `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract. + * - `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout. + * - `release()`: Releases a policy's collateral from the riskpool. + * + * Overall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations. */ contract PoolController is diff --git a/contracts/modules/QueryModule.sol b/contracts/modules/QueryModule.sol index baeaf87a..f54359aa 100644 --- a/contracts/modules/QueryModule.sol +++ b/contracts/modules/QueryModule.sol @@ -10,29 +10,29 @@ import "@etherisc/gif-interface/contracts/modules/IQuery.sol"; import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; /** -The smart contract implements the "IQuery" interface and extends the "CoreController" contract. -The contract imports several external contracts from the "etherisc/gif-interface" repository, including "IComponent.sol", "IOracle.sol", "IQuery.sol", and "IInstanceService.sol". -It also imports two local contracts, "ComponentController.sol" and "CoreController.sol". - -The contract defines a private variable `_component` of type "ComponentController" and an array `_oracleRequests` of type "OracleRequest[]". - -The contract includes two modifiers: -1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the "OracleService" contract address stored in the CoreController. -2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`. - -The contract provides the following functions: -- `_afterInitialize()`: Sets the `_component` variable to the address of the "ComponentController" contract. It is called after contract initialization and only during the initialization phase. -- `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the "Query" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event. -- `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the "OracleService" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event. -- `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the "Query" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event. -- `getProcessId()`: Returns the process ID associated with a given `requestId`. -- `getOracleRequestCount()`: Returns the number of oracle requests made. -- `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component. - -The contract emits the following events: -1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID. -2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status. -3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID. + * @dev The smart contract implements the "IQuery" interface and extends the "CoreController" contract. + * The contract imports several external contracts from the "etherisc/gif-interface" repository, including "IComponent.sol", "IOracle.sol", "IQuery.sol", and "IInstanceService.sol". + * It also imports two local contracts, "ComponentController.sol" and "CoreController.sol". + * + * The contract defines a private variable `_component` of type "ComponentController" and an array `_oracleRequests` of type "OracleRequest[]". + * + * The contract includes two modifiers: + * 1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the "OracleService" contract address stored in the CoreController. + * 2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`. + * + * The contract provides the following functions: + * - `_afterInitialize()`: Sets the `_component` variable to the address of the "ComponentController" contract. It is called after contract initialization and only during the initialization phase. + * - `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the "Query" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event. + * - `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the "OracleService" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event. + * - `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the "Query" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event. + * - `getProcessId()`: Returns the process ID associated with a given `requestId`. + * - `getOracleRequestCount()`: Returns the number of oracle requests made. + * - `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component. + * + * The contract emits the following events: + * 1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID. + * 2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status. + * 3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID. */ diff --git a/contracts/modules/RegistryController.sol b/contracts/modules/RegistryController.sol index edb0b0c4..1464fa3b 100644 --- a/contracts/modules/RegistryController.sol +++ b/contracts/modules/RegistryController.sol @@ -10,38 +10,38 @@ import "@openzeppelin/contracts/utils/Strings.sol"; import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; /** -The smart contract implements the `IRegistry` interface and inherits from the `CoreController` contract. -The contract provides functionality for registering, deregistering, and accessing contracts within different releases. It maintains mappings and sets to store contract names and addresses in different releases. - -- `MAX_CONTRACTS`: A constant variable set to 100, representing the maximum number of contracts allowed in a release. -- `release`: A bytes32 variable representing the current release identifier. -- `startBlock`: An unsigned integer storing the block number at which the contract was deployed. -- `_contracts`: A nested mapping that stores contract addresses based on the release and contract name. -- `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release. -- `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release. - -Functions: -- `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs. -- `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release. -- `getRelease()`: Returns the current release identifier. -- `getContract()`: Returns the address of a contract by its name in the current release. -- `register()`: Registers a contract with a given name and address in the current release. -- `deregister()`: Deregisters a contract from the current release. -- `getContractInRelease()`: Returns the address of a specific contract within a given release. -- `registerInRelease()`: Registers a contract in a specific release. -- `deregisterInRelease()`: Deregisters a contract name from a specific release. -- `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one. -- `contracts()`: Returns the number of contracts in the current release. -- `contractName()`: Returns the name of the contract at the specified index in the contractNames set. - -Internal functions: -- `_getContractInRelease()`: Returns the address of a contract in a specific release. -- `_registerInRelease()`: Registers a contract in a release. -- `_deregisterInRelease()`: Deregisters a contract in a specific release. - -The contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered. - -Overall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts. + * @dev The smart contract implements the `IRegistry` interface and inherits from the `CoreController` contract. + * The contract provides functionality for registering, deregistering, and accessing contracts within different releases. It maintains mappings and sets to store contract names and addresses in different releases. + * + * - `MAX_CONTRACTS`: A constant variable set to 100, representing the maximum number of contracts allowed in a release. + * - `release`: A bytes32 variable representing the current release identifier. + * - `startBlock`: An unsigned integer storing the block number at which the contract was deployed. + * - `_contracts`: A nested mapping that stores contract addresses based on the release and contract name. + * - `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release. + * - `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release. + * + * Functions: + * - `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs. + * - `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release. + * - `getRelease()`: Returns the current release identifier. + * - `getContract()`: Returns the address of a contract by its name in the current release. + * - `register()`: Registers a contract with a given name and address in the current release. + * - `deregister()`: Deregisters a contract from the current release. + * - `getContractInRelease()`: Returns the address of a specific contract within a given release. + * - `registerInRelease()`: Registers a contract in a specific release. + * - `deregisterInRelease()`: Deregisters a contract name from a specific release. + * - `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one. + * - `contracts()`: Returns the number of contracts in the current release. + * - `contractName()`: Returns the name of the contract at the specified index in the contractNames set. + * + * Internal functions: + * - `_getContractInRelease()`: Returns the address of a contract in a specific release. + * - `_registerInRelease()`: Registers a contract in a release. + * - `_deregisterInRelease()`: Deregisters a contract in a specific release. + * + * The contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered. + * + * Overall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts. */ diff --git a/contracts/modules/TreasuryModule.sol b/contracts/modules/TreasuryModule.sol index c71f9210..3ee8241b 100644 --- a/contracts/modules/TreasuryModule.sol +++ b/contracts/modules/TreasuryModule.sol @@ -18,36 +18,36 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/utils/Strings.sol"; /** -The smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts. -The contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the "etherisc/gif-interface" and "openzeppelin/contracts" libraries. - -The contract defines several state variables, including: -- FRACTION_FULL_UNIT: a constant representing the full unit value (10^18). -- FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%). -- event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation. -- event LogTransferHelperInputValidation2Failed: an event that logs a failed input validation. -- event LogTransferHelperCallFailed: an event that logs a failed external call. -- _instanceWalletAddress: a private variable representing the address of the instance wallet. -- _riskpoolWallet: a mapping of riskpool IDs to wallet addresses. -- _fees: a mapping of component IDs to FeeSpecification structs. -- _componentToken: a mapping of product IDs/riskpool IDs to ERC20 token addresses. -- _bundle: an instance of the BundleController contract. -- _component: an instance of the ComponentController contract. -- _policy: an instance of the PolicyController contract. -- _pool: an instance of the PoolController contract. - -The contract includes several modifiers that enforce certain conditions on function execution, such as the instanceWalletDefined modifier, which requires the instance wallet address to be defined; -the riskpoolWalletDefinedForProcess modifier, which requires the riskpool wallet address to be defined for a given process ID; -the riskpoolWalletDefinedForBundle modifier, which requires the riskpool wallet address to be defined for a given bundle ID; -the whenNotSuspended modifier, which requires the contract to not be paused; and the onlyRiskpoolService modifier, which restricts access to the RiskpoolService contract. - -The contract contains various functions for managing the treasury, such as setting the product token address, setting the instance wallet address, setting the riskpool wallet address, creating fee specifications, and setting premium and capital fees for components. -There are also functions for suspending and resuming the treasury contract. - -The contract includes a function to calculate the fee amount and net amount for a given component ID and amount. -It also includes functions to process premium payments for policies, either for the remaining premium amount or for a specific amount. - -Overall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system. + * @dev The smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts. + * The contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the "etherisc/gif-interface" and "openzeppelin/contracts" libraries. + * + * The contract defines several state variables, including: + * - FRACTION_FULL_UNIT: a constant representing the full unit value (10^18). + * - FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%). + * - event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation. + * - event LogTransferHelperInputValidation2Failed: an event that logs a failed input validation. + * - event LogTransferHelperCallFailed: an event that logs a failed external call. + * - _instanceWalletAddress: a private variable representing the address of the instance wallet. + * - _riskpoolWallet: a mapping of riskpool IDs to wallet addresses. + * - _fees: a mapping of component IDs to FeeSpecification structs. + * - _componentToken: a mapping of product IDs/riskpool IDs to ERC20 token addresses. + * - _bundle: an instance of the BundleController contract. + * - _component: an instance of the ComponentController contract. + * - _policy: an instance of the PolicyController contract. + * - _pool: an instance of the PoolController contract. + * + * The contract includes several modifiers that enforce certain conditions on function execution, such as the instanceWalletDefined modifier, which requires the instance wallet address to be defined; + * the riskpoolWalletDefinedForProcess modifier, which requires the riskpool wallet address to be defined for a given process ID; + * the riskpoolWalletDefinedForBundle modifier, which requires the riskpool wallet address to be defined for a given bundle ID; + * the whenNotSuspended modifier, which requires the contract to not be paused; and the onlyRiskpoolService modifier, which restricts access to the RiskpoolService contract. + * + * The contract contains various functions for managing the treasury, such as setting the product token address, setting the instance wallet address, setting the riskpool wallet address, creating fee specifications, and setting premium and capital fees for components. + * There are also functions for suspending and resuming the treasury contract. + * + * The contract includes a function to calculate the fee amount and net amount for a given component ID and amount. + * It also includes functions to process premium payments for policies, either for the remaining premium amount or for a specific amount. + * + * Overall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system. */ contract TreasuryModule is From bad8168db3ad0eb9546211013282c3cc23b9f4b9 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Thu, 8 Jun 2023 11:54:50 +0000 Subject: [PATCH 11/29] Add README.adoc to every contract subfolder --- contracts/flows/README.adoc | 8 + contracts/modules/README.adoc | 25 ++ contracts/services/README.adoc | 18 + contracts/shared/README.adoc | 14 + contracts/test/README.adoc | 24 ++ contracts/tokens/README.adoc | 10 + docs/modules/api/pages/flows.adoc | 50 --- docs/modules/api/pages/modules.adoc | 601 ++++++++++++--------------- docs/modules/api/pages/services.adoc | 226 +--------- docs/modules/api/pages/shared.adoc | 26 -- docs/modules/api/pages/test.adoc | 148 ------- docs/modules/api/pages/tokens.adoc | 20 - hardhat.config.js | 9 +- package-lock.json | 316 +++++++++++++- package.json | 4 +- 15 files changed, 696 insertions(+), 803 deletions(-) create mode 100644 contracts/flows/README.adoc create mode 100644 contracts/modules/README.adoc create mode 100644 contracts/services/README.adoc create mode 100644 contracts/shared/README.adoc create mode 100644 contracts/test/README.adoc create mode 100644 contracts/tokens/README.adoc diff --git a/contracts/flows/README.adoc b/contracts/flows/README.adoc new file mode 100644 index 00000000..20c8056f --- /dev/null +++ b/contracts/flows/README.adoc @@ -0,0 +1,8 @@ += Flows + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/flows + +== Contracts + +{{PolicyDefaultFlow}} \ No newline at end of file diff --git a/contracts/modules/README.adoc b/contracts/modules/README.adoc new file mode 100644 index 00000000..5bc9cc2a --- /dev/null +++ b/contracts/modules/README.adoc @@ -0,0 +1,25 @@ += Modules + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/modules + +== Contracts + +{{AccessController}} + +{{BundleController}} + +{{ComponentController}} + +{{LicenseController}} + +{{PolicyController}} + +{{PoolController}} + +{{QueryModule}} + +{{RegistryController}} + +{{TreasuryModule}} + diff --git a/contracts/services/README.adoc b/contracts/services/README.adoc new file mode 100644 index 00000000..3cbee757 --- /dev/null +++ b/contracts/services/README.adoc @@ -0,0 +1,18 @@ += Services + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/services + +== Contracts + +{{ComponentOwnerService}} + +{{InstanceOperatorService}} + +{{InstanceService}} + +{{OracleService}} + +{{ProductService}} + +{{RiskpoolService}} diff --git a/contracts/shared/README.adoc b/contracts/shared/README.adoc new file mode 100644 index 00000000..edbed26c --- /dev/null +++ b/contracts/shared/README.adoc @@ -0,0 +1,14 @@ += Shared + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/shared + +== Contracts + +{{CoreController}} + +{{CoreProxy}} + +{{TransferHelper}} + +{{WithRegistry}} diff --git a/contracts/test/README.adoc b/contracts/test/README.adoc new file mode 100644 index 00000000..d48cc873 --- /dev/null +++ b/contracts/test/README.adoc @@ -0,0 +1,24 @@ += Test + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/test + +== Contracts + +{{TestCoin}} + +{{TestCoinAlternativeImplementation}} + +{{TestCompromisedProduct}} + +{{TestOracle}} + +{{TestProduct}} + +{{TestRegistryCompromisedController}} + +{{TestRegistryControllerUpdated}} + +{{TestRiskpool}} + +{{TestTransferFrom}} \ No newline at end of file diff --git a/contracts/tokens/README.adoc b/contracts/tokens/README.adoc new file mode 100644 index 00000000..16591ee8 --- /dev/null +++ b/contracts/tokens/README.adoc @@ -0,0 +1,10 @@ += Tokens + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/tokens + +== Contracts + +{{BundleToken}} + +{{RiskpoolToken}} \ No newline at end of file diff --git a/docs/modules/api/pages/flows.adoc b/docs/modules/api/pages/flows.adoc index a744f41d..ee910b2c 100644 --- a/docs/modules/api/pages/flows.adoc +++ b/docs/modules/api/pages/flows.adoc @@ -151,149 +151,99 @@ import "@etherisc/gif-contracts/contracts/flows/PolicyDefaultFlow.sol"; [[PolicyDefaultFlow-constructor-address-]] ==== `[.contract-item-name]#++constructor++#++(address _registry)++` [.item-kind]#public# -Constructor function that initializes the contract with a given registry address. - [.contract-item] [[PolicyDefaultFlow-newApplication-address-uint256-uint256-bytes-bytes-]] ==== `[.contract-item-name]#++newApplication++#++(address owner, uint256 premiumAmount, uint256 sumInsuredAmount, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# -Creates a new insurance application and returns the process ID. - [.contract-item] [[PolicyDefaultFlow-revoke-bytes32-]] ==== `[.contract-item-name]#++revoke++#++(bytes32 processId)++` [.item-kind]#external# -Revokes an application for a specific processId. - [.contract-item] [[PolicyDefaultFlow-underwrite-bytes32-]] ==== `[.contract-item-name]#++underwrite++#++(bytes32 processId) → bool success++` [.item-kind]#external# -Attempts to get the collateral to secure the policy. - [.contract-item] [[PolicyDefaultFlow-collectPremium-bytes32-uint256-]] ==== `[.contract-item-name]#++collectPremium++#++(bytes32 processId, uint256 amount) → bool success, uint256 feeAmount, uint256 netPremiumAmount++` [.item-kind]#public# -Collects the premium for a given policy and updates the book keeping of the policy and the risk pool. - [.contract-item] [[PolicyDefaultFlow-adjustPremiumSumInsured-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++adjustPremiumSumInsured++#++(bytes32 processId, uint256 expectedPremiumAmount, uint256 sumInsuredAmount)++` [.item-kind]#external# -Adjusts the premium and sum insured amounts of a policy. - [.contract-item] [[PolicyDefaultFlow-decline-bytes32-]] ==== `[.contract-item-name]#++decline++#++(bytes32 processId)++` [.item-kind]#external# -Allows the responsible product to decline an application for a policy. - [.contract-item] [[PolicyDefaultFlow-expire-bytes32-]] ==== `[.contract-item-name]#++expire++#++(bytes32 processId)++` [.item-kind]#external# -Expire the policy identified by the given process ID. - [.contract-item] [[PolicyDefaultFlow-close-bytes32-]] ==== `[.contract-item-name]#++close++#++(bytes32 processId)++` [.item-kind]#external# -Closes a policy and releases the corresponding funds from the pool. - [.contract-item] [[PolicyDefaultFlow-newClaim-bytes32-uint256-bytes-]] ==== `[.contract-item-name]#++newClaim++#++(bytes32 processId, uint256 claimAmount, bytes data) → uint256 claimId++` [.item-kind]#external# -Creates a new claim for a given process ID, claim amount and data. - [.contract-item] [[PolicyDefaultFlow-confirmClaim-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++confirmClaim++#++(bytes32 processId, uint256 claimId, uint256 confirmedAmount)++` [.item-kind]#external# -Confirms a claim for a specific process and claim ID, updating the confirmed amount. - [.contract-item] [[PolicyDefaultFlow-declineClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++declineClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# -Allows the responsible product to decline a claim. - [.contract-item] [[PolicyDefaultFlow-closeClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++closeClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# -Closes a claim for a specific process and claim ID. - [.contract-item] [[PolicyDefaultFlow-newPayout-bytes32-uint256-uint256-bytes-]] ==== `[.contract-item-name]#++newPayout++#++(bytes32 processId, uint256 claimId, uint256 amount, bytes data) → uint256 payoutId++` [.item-kind]#external# -Creates a new payout for a specific claim. - [.contract-item] [[PolicyDefaultFlow-processPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 payoutId) → bool success, uint256 feeAmount, uint256 netPayoutAmount++` [.item-kind]#external# -Processes a payout for a specific process and payout ID. - [.contract-item] [[PolicyDefaultFlow-request-bytes32-bytes-string-address-uint256-]] ==== `[.contract-item-name]#++request++#++(bytes32 processId, bytes _input, string _callbackMethodName, address _callbackContractAddress, uint256 _responsibleOracleId) → uint256 _requestId++` [.item-kind]#external# -Sends a request to the query contract to initiate a new process. - [.contract-item] [[PolicyDefaultFlow-cancelRequest-uint256-]] ==== `[.contract-item-name]#++cancelRequest++#++(uint256 requestId)++` [.item-kind]#external# -Cancels a request with the given requestId. - [.contract-item] [[PolicyDefaultFlow-getApplicationData-bytes32-]] ==== `[.contract-item-name]#++getApplicationData++#++(bytes32 processId) → bytes++` [.item-kind]#external# -Returns the application data associated with the given process ID. - [.contract-item] [[PolicyDefaultFlow-getClaimData-bytes32-uint256-]] ==== `[.contract-item-name]#++getClaimData++#++(bytes32 processId, uint256 claimId) → bytes++` [.item-kind]#external# -Returns the claim data of a specific claim for a given process ID. - [.contract-item] [[PolicyDefaultFlow-getPayoutData-bytes32-uint256-]] ==== `[.contract-item-name]#++getPayoutData++#++(bytes32 processId, uint256 payoutId) → bytes++` [.item-kind]#external# -Returns the payout data for a given process and payout ID. - [.contract-item] [[PolicyDefaultFlow-getComponentContract--]] ==== `[.contract-item-name]#++getComponentContract++#++() → contract ComponentController++` [.item-kind]#internal# -Returns the ComponentController contract instance. - [.contract-item] [[PolicyDefaultFlow-getPoolContract--]] ==== `[.contract-item-name]#++getPoolContract++#++() → contract PoolController++` [.item-kind]#internal# -Returns the PoolController contract instance from the registry. - [.contract-item] [[PolicyDefaultFlow-getPolicyContract--]] ==== `[.contract-item-name]#++getPolicyContract++#++() → contract PolicyController++` [.item-kind]#internal# -Returns the PolicyController contract instance from the registry. - [.contract-item] [[PolicyDefaultFlow-getQueryContract--]] ==== `[.contract-item-name]#++getQueryContract++#++() → contract QueryModule++` [.item-kind]#internal# -Returns the QueryModule contract instance from the registry. - [.contract-item] [[PolicyDefaultFlow-getTreasuryContract--]] ==== `[.contract-item-name]#++getTreasuryContract++#++() → contract TreasuryModule++` [.item-kind]#internal# -Retrieves the TreasuryModule contract instance. - diff --git a/docs/modules/api/pages/modules.adoc b/docs/modules/api/pages/modules.adoc index fbc56911..d77ac59d 100644 --- a/docs/modules/api/pages/modules.adoc +++ b/docs/modules/api/pages/modules.adoc @@ -243,6 +243,41 @@ NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/ import "@etherisc/gif-contracts/contracts/modules/AccessController.sol"; ``` +The provided smart contract is called "AccessController" and is written in Solidity. It implements the "IAccess" interface and inherits from the "CoreController" contract and the "AccessControlEnumerable" contract. The contract provides functionalities for access control and role management. + +Roles: +The contract defines three role identifiers as bytes32 constants: +1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. +2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. +3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. + +State Variables: +- `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. +- `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. + +Functions: +- `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. +- `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. +- `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. +- `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract. +- `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract. +- `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract. +- `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping. +- `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping. +- `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role. +- `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE. +- `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE. +- `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE. +- `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. +- `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. + +Modifiers: +- `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. + +Overall, the contract provides a flexible access control mechanism by defining roles and +allowing the assignment, revocation, and validation of roles by instance operators. +It also sets a default admin role and manages the validity of roles through the `validRole` mapping. + [.contract-index] .Functions -- @@ -347,80 +382,54 @@ import "@etherisc/gif-contracts/contracts/modules/AccessController.sol"; [[AccessController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -This function is called after contract initialization and adds the product owner, oracle provider, and riskpool keeper roles. - [.contract-item] [[AccessController-_getName--]] ==== `[.contract-item-name]#++_getName++#++() → bytes32++` [.item-kind]#internal# -Returns the name of the contract. - [.contract-item] [[AccessController-setDefaultAdminRole-address-]] ==== `[.contract-item-name]#++setDefaultAdminRole++#++(address defaultAdmin)++` [.item-kind]#external# -Sets the default admin role for the Access Control List (ACL). - [.contract-item] [[AccessController-grantRole-bytes32-address-]] ==== `[.contract-item-name]#++grantRole++#++(bytes32 role, address principal)++` [.item-kind]#public# -Grants a role to a principal. - [.contract-item] [[AccessController-revokeRole-bytes32-address-]] ==== `[.contract-item-name]#++revokeRole++#++(bytes32 role, address principal)++` [.item-kind]#public# -Revokes the specified role from the specified principal. - [.contract-item] [[AccessController-renounceRole-bytes32-address-]] ==== `[.contract-item-name]#++renounceRole++#++(bytes32 role, address principal)++` [.item-kind]#public# -Removes the specified `principal` from the `role` in the access control list (ACL) of the contract. - [.contract-item] [[AccessController-addRole-bytes32-]] ==== `[.contract-item-name]#++addRole++#++(bytes32 role)++` [.item-kind]#public# -Adds a new role to the Access Control List. - [.contract-item] [[AccessController-invalidateRole-bytes32-]] ==== `[.contract-item-name]#++invalidateRole++#++(bytes32 role)++` [.item-kind]#public# -Invalidates a role. - [.contract-item] [[AccessController-hasRole-bytes32-address-]] ==== `[.contract-item-name]#++hasRole++#++(bytes32 role, address principal) → bool++` [.item-kind]#public# -Checks if a given principal has a specific role. - [.contract-item] [[AccessController-getDefaultAdminRole--]] ==== `[.contract-item-name]#++getDefaultAdminRole++#++() → bytes32++` [.item-kind]#public# -Returns the default admin role. - [.contract-item] [[AccessController-getProductOwnerRole--]] ==== `[.contract-item-name]#++getProductOwnerRole++#++() → bytes32++` [.item-kind]#public# -Returns the bytes32 value of the PRODUCT_OWNER_ROLE. - [.contract-item] [[AccessController-getOracleProviderRole--]] ==== `[.contract-item-name]#++getOracleProviderRole++#++() → bytes32++` [.item-kind]#public# -Returns the bytes32 identifier of the Oracle Provider role. - [.contract-item] [[AccessController-getRiskpoolKeeperRole--]] ==== `[.contract-item-name]#++getRiskpoolKeeperRole++#++() → bytes32++` [.item-kind]#public# -Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. - :onlyRiskpoolService: pass:normal[xref:#BundleController-onlyRiskpoolService--[`++onlyRiskpoolService++`]] :onlyFundableBundle: pass:normal[xref:#BundleController-onlyFundableBundle-uint256-[`++onlyFundableBundle++`]] :_afterInitialize: pass:normal[xref:#BundleController-_afterInitialize--[`++_afterInitialize++`]] @@ -459,6 +468,31 @@ Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. import "@etherisc/gif-contracts/contracts/modules/BundleController.sol"; ``` +The smart contract is used to manage bundles, which are collections of policies. + +- The contract imports other Solidity contracts such as `PolicyController.sol`, `CoreController.sol`, and `BundleToken.sol`. +- The contract implements the `IBundle` interface and extends the `CoreController` contract. +- It defines several mappings to store information about bundles, active policies, locked capital per policy, and the number of unburt bundles for each risk pool. +- There is a private variable `_bundleCount` to keep track of the number of bundles created. +- The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`. + +Functions: +- `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment. +- `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token. +- `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance. +- `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle. +- `lock()`: Locks a bundle of assets by changing its state to "Locked." +- `unlock()`: Unlocks a bundle, changing its state back to "Active." +- `close()`: Closes a bundle of policies. +- `burn()`: Burns a bundle, changing its state to "Burned." +- `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. +- `processPremium()`: Processes the premium payment for a given bundle and updates its balance. +- `processPayout()`: Processes a payout for a policy from a bundle. +- `releasePolicy()`: Releases a policy and updates the bundle's capital. + +The contract includes various modifiers and event emitters to enforce access control and emit relevant events. +Overall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle. + [.contract-index] .Modifiers -- @@ -546,158 +580,106 @@ import "@etherisc/gif-contracts/contracts/modules/BundleController.sol"; [[BundleController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -Performs internal operations after the contract initialization. - [.contract-item] [[BundleController-create-address-uint256-bytes-uint256-]] ==== `[.contract-item-name]#++create++#++(address owner_, uint256 riskpoolId_, bytes filter_, uint256 amount_) → uint256 bundleId++` [.item-kind]#external# -Creates a new bundle and mints a corresponding NFT token. Only callable by the RiskpoolService contract. - [.contract-item] [[BundleController-fund-uint256-uint256-]] ==== `[.contract-item-name]#++fund++#++(uint256 bundleId, uint256 amount)++` [.item-kind]#external# -Adds funds to a bundle's capital and balance. - [.contract-item] [[BundleController-defund-uint256-uint256-]] ==== `[.contract-item-name]#++defund++#++(uint256 bundleId, uint256 amount)++` [.item-kind]#external# -Allows the Riskpool service to withdraw `amount` from the `bundleId` Bundle. - [.contract-item] [[BundleController-lock-uint256-]] ==== `[.contract-item-name]#++lock++#++(uint256 bundleId)++` [.item-kind]#external# -Locks a bundle of assets. - [.contract-item] [[BundleController-unlock-uint256-]] ==== `[.contract-item-name]#++unlock++#++(uint256 bundleId)++` [.item-kind]#external# -Unlocks a bundle, changing its state to active. - [.contract-item] [[BundleController-close-uint256-]] ==== `[.contract-item-name]#++close++#++(uint256 bundleId)++` [.item-kind]#external# -Closes a bundle of policies. - [.contract-item] [[BundleController-burn-uint256-]] ==== `[.contract-item-name]#++burn++#++(uint256 bundleId)++` [.item-kind]#external# -Burns a bundle and changes its state to Burned. - [.contract-item] [[BundleController-collateralizePolicy-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++collateralizePolicy++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# -Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. - [.contract-item] [[BundleController-processPremium-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++processPremium++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# -Process the premium payment for a given bundle and update its balance. - [.contract-item] [[BundleController-processPayout-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# -Processes a payout for a policy from a bundle. - [.contract-item] [[BundleController-releasePolicy-uint256-bytes32-]] ==== `[.contract-item-name]#++releasePolicy++#++(uint256 bundleId, bytes32 processId) → uint256 remainingCollateralAmount++` [.item-kind]#external# -Release a policy and update the bundle capital. - [.contract-item] [[BundleController-getOwner-uint256-]] ==== `[.contract-item-name]#++getOwner++#++(uint256 bundleId) → address++` [.item-kind]#public# -Returns the address of the owner of the token associated with the given bundle ID. - [.contract-item] [[BundleController-getState-uint256-]] ==== `[.contract-item-name]#++getState++#++(uint256 bundleId) → enum IBundle.BundleState++` [.item-kind]#public# -Returns the state of the bundle with the given ID. - [.contract-item] [[BundleController-getFilter-uint256-]] ==== `[.contract-item-name]#++getFilter++#++(uint256 bundleId) → bytes++` [.item-kind]#public# -Returns the filter of a given bundle. - [.contract-item] [[BundleController-getCapacity-uint256-]] ==== `[.contract-item-name]#++getCapacity++#++(uint256 bundleId) → uint256++` [.item-kind]#public# -Returns the available capacity of a bundle. - [.contract-item] [[BundleController-getTotalValueLocked-uint256-]] ==== `[.contract-item-name]#++getTotalValueLocked++#++(uint256 bundleId) → uint256++` [.item-kind]#public# -Returns the total value locked in a particular bundle. - [.contract-item] [[BundleController-getBalance-uint256-]] ==== `[.contract-item-name]#++getBalance++#++(uint256 bundleId) → uint256++` [.item-kind]#public# -Returns the balance of a specific bundle. - [.contract-item] [[BundleController-getToken--]] ==== `[.contract-item-name]#++getToken++#++() → contract BundleToken++` [.item-kind]#external# -Returns the BundleToken contract instance. - [.contract-item] [[BundleController-getBundle-uint256-]] ==== `[.contract-item-name]#++getBundle++#++(uint256 bundleId) → struct IBundle.Bundle++` [.item-kind]#public# -Returns the bundle with the specified bundle ID. - [.contract-item] [[BundleController-bundles--]] ==== `[.contract-item-name]#++bundles++#++() → uint256++` [.item-kind]#public# -Returns the number of bundles created. - [.contract-item] [[BundleController-unburntBundles-uint256-]] ==== `[.contract-item-name]#++unburntBundles++#++(uint256 riskpoolId) → uint256++` [.item-kind]#external# -Returns the number of unburnt bundles for a given riskpool ID. - [.contract-item] [[BundleController-_getPoolController--]] ==== `[.contract-item-name]#++_getPoolController++#++() → contract PoolController _poolController++` [.item-kind]#internal# -Returns the pool controller contract instance. - [.contract-item] [[BundleController-_changeState-uint256-enum-IBundle-BundleState-]] ==== `[.contract-item-name]#++_changeState++#++(uint256 bundleId, enum IBundle.BundleState newState)++` [.item-kind]#internal# -Changes the state of a bundle. - [.contract-item] [[BundleController-_setState-uint256-enum-IBundle-BundleState-]] ==== `[.contract-item-name]#++_setState++#++(uint256 bundleId, enum IBundle.BundleState newState)++` [.item-kind]#internal# -Sets the state and updated timestamp of a given bundle. - [.contract-item] [[BundleController-_checkStateTransition-enum-IBundle-BundleState-enum-IBundle-BundleState-]] ==== `[.contract-item-name]#++_checkStateTransition++#++(enum IBundle.BundleState oldState, enum IBundle.BundleState newState)++` [.item-kind]#internal# -Checks if a state transition is valid. - :onlyComponentOwnerService: pass:normal[xref:#ComponentController-onlyComponentOwnerService--[`++onlyComponentOwnerService++`]] :onlyInstanceOperatorService: pass:normal[xref:#ComponentController-onlyInstanceOperatorService--[`++onlyInstanceOperatorService++`]] :propose: pass:normal[xref:#ComponentController-propose-contract-IComponent-[`++propose++`]] @@ -739,6 +721,39 @@ Checks if a state transition is valid. import "@etherisc/gif-contracts/contracts/modules/ComponentController.sol"; ``` +The smart contract provides functionality to manage and control components in a system. +The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. +It also includes modifiers to restrict access to certain functions based on the caller's role. + +Functions: +- `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. +- `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. +- `exists()`: Checks if a component with the given ID exists in the system. +- `approve()`: Approves a component with the given ID, changing its state to "Active" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping. +- `decline()`: Changes the state of a component with the given ID to "Declined" and emits an event. It also calls the `declineCallback` function of the component. +- `suspend()`: Suspends a component with the given ID by changing its state to "Suspended" and emitting an event. It also calls the `suspendCallback` function of the component. +- `resume()`: Resumes a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `resumeCallback` function of the component. +- `pause()`: Pauses a component with the given ID by changing its state to "Paused" and emitting an event. It also calls the `pauseCallback` function of the component. +- `unpause()`: Unpauses a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `unpauseCallback` function of the component. +- `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. +- `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. +- `getComponent()`: Retrieves the component with the given ID. +- `getComponentId()`: Retrieves the ID of a registered component given its address. +- `getComponentType()`: Retrieves the component type of a given component ID. +- `getComponentState()`: Retrieves the state of the component with the given ID. +- `getOracleId()`: Retrieves the oracle ID at the specified index. +- `getRiskpoolId()`: Retrieves the risk pool ID at the specified index. +- `getProductId()`: Retrieves the product ID at the specified index. +- `getRequiredRole()`: Retrieves the required role for a given component type. +- `components()`: Returns the number of components currently stored in the contract. +- `products()`: Returns the number of products in the `_products` set. +- `oracles()`: Returns the number of oracles registered in the `_oracles` set. +- `riskpools()`: Returns the number of risk pools in the set. + +The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. + +The contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations. + [.contract-index] .Modifiers -- @@ -832,187 +847,118 @@ import "@etherisc/gif-contracts/contracts/modules/ComponentController.sol"; [[ComponentController-propose-contract-IComponent-]] ==== `[.contract-item-name]#++propose++#++(contract IComponent component)++` [.item-kind]#external# -Proposes a new component to the system. - [.contract-item] [[ComponentController-_persistComponent-contract-IComponent-]] ==== `[.contract-item-name]#++_persistComponent++#++(contract IComponent component) → uint256 id++` [.item-kind]#internal# -Persists a new component into the system. - [.contract-item] [[ComponentController-exists-uint256-]] ==== `[.contract-item-name]#++exists++#++(uint256 id) → bool++` [.item-kind]#public# -Checks if a component with the given ID exists. - [.contract-item] [[ComponentController-approve-uint256-]] ==== `[.contract-item-name]#++approve++#++(uint256 id)++` [.item-kind]#external# -Approves a component with the given id. - [.contract-item] [[ComponentController-decline-uint256-]] ==== `[.contract-item-name]#++decline++#++(uint256 id)++` [.item-kind]#external# -Changes the state of a component with the given ID to "Declined" and emits a LogComponentDeclined event. - Calls the declineCallback function of the component with the given ID. - [.contract-item] [[ComponentController-suspend-uint256-]] ==== `[.contract-item-name]#++suspend++#++(uint256 id)++` [.item-kind]#external# -Suspends a component with the given ID. - [.contract-item] [[ComponentController-resume-uint256-]] ==== `[.contract-item-name]#++resume++#++(uint256 id)++` [.item-kind]#external# -Resumes a component by changing its state to Active and emitting an event. - It also calls the resumeCallback() function of the component to inform it about the resuming. - [.contract-item] [[ComponentController-pause-uint256-]] ==== `[.contract-item-name]#++pause++#++(uint256 id)++` [.item-kind]#external# -Pauses the component with the given ID. - [.contract-item] [[ComponentController-unpause-uint256-]] ==== `[.contract-item-name]#++unpause++#++(uint256 id)++` [.item-kind]#external# -Unpauses a component with the given id. - [.contract-item] [[ComponentController-archiveFromComponentOwner-uint256-]] ==== `[.contract-item-name]#++archiveFromComponentOwner++#++(uint256 id)++` [.item-kind]#external# -Archives a component with the given ID, changing its state to "Archived" and emitting a LogComponentArchived event. - Also calls the archiveCallback function of the component with the given ID, informing it about the archiving. - [.contract-item] [[ComponentController-archiveFromInstanceOperator-uint256-]] ==== `[.contract-item-name]#++archiveFromInstanceOperator++#++(uint256 id)++` [.item-kind]#external# -Archives a component instance with the given ID. - [.contract-item] [[ComponentController-getComponent-uint256-]] ==== `[.contract-item-name]#++getComponent++#++(uint256 id) → contract IComponent component++` [.item-kind]#public# -Returns the component with the given ID. - [.contract-item] [[ComponentController-getComponentId-address-]] ==== `[.contract-item-name]#++getComponentId++#++(address componentAddress) → uint256 id++` [.item-kind]#public# -Returns the ID of a registered component given its address. - [.contract-item] [[ComponentController-getComponentType-uint256-]] ==== `[.contract-item-name]#++getComponentType++#++(uint256 id) → enum IComponent.ComponentType componentType++` [.item-kind]#public# -Returns the component type of a given component ID. - [.contract-item] [[ComponentController-getComponentState-uint256-]] ==== `[.contract-item-name]#++getComponentState++#++(uint256 id) → enum IComponent.ComponentState componentState++` [.item-kind]#public# -Returns the state of the component with the given ID. - [.contract-item] [[ComponentController-getOracleId-uint256-]] ==== `[.contract-item-name]#++getOracleId++#++(uint256 idx) → uint256 oracleId++` [.item-kind]#public# -Returns the oracle ID at the given index. - [.contract-item] [[ComponentController-getRiskpoolId-uint256-]] ==== `[.contract-item-name]#++getRiskpoolId++#++(uint256 idx) → uint256 riskpoolId++` [.item-kind]#public# -Returns the riskpool ID at the specified index. - [.contract-item] [[ComponentController-getProductId-uint256-]] ==== `[.contract-item-name]#++getProductId++#++(uint256 idx) → uint256 productId++` [.item-kind]#public# -Returns the product ID at the given index in the _products set. - [.contract-item] [[ComponentController-getRequiredRole-enum-IComponent-ComponentType-]] ==== `[.contract-item-name]#++getRequiredRole++#++(enum IComponent.ComponentType componentType) → bytes32++` [.item-kind]#external# -Returns the required role for a given component type. - [.contract-item] [[ComponentController-components--]] ==== `[.contract-item-name]#++components++#++() → uint256 count++` [.item-kind]#public# -Returns the number of components currently stored in the contract. - [.contract-item] [[ComponentController-products--]] ==== `[.contract-item-name]#++products++#++() → uint256 count++` [.item-kind]#public# -Returns the number of products in the set '_products'. - [.contract-item] [[ComponentController-oracles--]] ==== `[.contract-item-name]#++oracles++#++() → uint256 count++` [.item-kind]#public# -Returns the number of oracles registered in the _oracles set. - [.contract-item] [[ComponentController-riskpools--]] ==== `[.contract-item-name]#++riskpools++#++() → uint256 count++` [.item-kind]#public# -Returns the number of risk pools in the EnumerableSet. - [.contract-item] [[ComponentController-isProduct-uint256-]] ==== `[.contract-item-name]#++isProduct++#++(uint256 id) → bool++` [.item-kind]#public# -Check if a product exists in the set of products. - [.contract-item] [[ComponentController-isOracle-uint256-]] ==== `[.contract-item-name]#++isOracle++#++(uint256 id) → bool++` [.item-kind]#public# -Checks if an oracle with a given ID exists. - [.contract-item] [[ComponentController-isRiskpool-uint256-]] ==== `[.contract-item-name]#++isRiskpool++#++(uint256 id) → bool++` [.item-kind]#public# -Checks if a given ID is a riskpool. - [.contract-item] [[ComponentController-getPolicyFlow-uint256-]] ==== `[.contract-item-name]#++getPolicyFlow++#++(uint256 productId) → address _policyFlow++` [.item-kind]#public# -Returns the address of the policy flow for a given product ID. - [.contract-item] [[ComponentController-_changeState-uint256-enum-IComponent-ComponentState-]] ==== `[.contract-item-name]#++_changeState++#++(uint256 componentId, enum IComponent.ComponentState newState)++` [.item-kind]#internal# -Changes the state of a component. - [.contract-item] [[ComponentController-_checkStateTransition-enum-IComponent-ComponentState-enum-IComponent-ComponentState-]] ==== `[.contract-item-name]#++_checkStateTransition++#++(enum IComponent.ComponentState oldState, enum IComponent.ComponentState newState)++` [.item-kind]#internal# -Checks if the state transition is valid. -Throws an error if the newState is the same as the oldState. -Throws an error if the transition from Created state is not to Proposed state. -Throws an error if the transition from Proposed state is not to Active or Declined state. -Throws an error if the transition from Declined state is attempted. -Throws an error if the transition from Active state is not to Paused or Suspended state. -Throws an error if the transition from Paused state is not to Active or Archived state. -Throws an error if the transition from Suspended state is not to Active or Archived state. -Throws an error if the initial state is not handled. - :_afterInitialize: pass:normal[xref:#LicenseController-_afterInitialize--[`++_afterInitialize++`]] :getAuthorizationStatus: pass:normal[xref:#LicenseController-getAuthorizationStatus-address-[`++getAuthorizationStatus++`]] :_isValidCall: pass:normal[xref:#LicenseController-_isValidCall-uint256-[`++_isValidCall++`]] @@ -1027,6 +973,21 @@ Throws an error if the initial state is not handled. import "@etherisc/gif-contracts/contracts/modules/LicenseController.sol"; ``` +The smart contract serves as a controller contract for managing licenses related to products in an insurance ecosystem. +The contract implements the `ILicense` interface and extends the `CoreController` contract. + +The contract imports two other contracts: `ComponentController.sol` and `CoreController.sol`, which are expected to be located in specific file paths. +It also imports several interfaces from the "etherisc/gif-interface" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`. +The contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract. + +Functions: +- `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract. +- `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function. +- `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`. +- `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`. + +Overall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem. + [.contract-index] .Functions -- @@ -1070,26 +1031,18 @@ import "@etherisc/gif-contracts/contracts/modules/LicenseController.sol"; [[LicenseController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -This function is called after the contract is initialized and sets the `_component` variable to the address of the `ComponentController` contract. - [.contract-item] [[LicenseController-getAuthorizationStatus-address-]] ==== `[.contract-item-name]#++getAuthorizationStatus++#++(address productAddress) → uint256 productId, bool isAuthorized, address policyFlow++` [.item-kind]#public# -Returns the authorization status of a given product address. - [.contract-item] [[LicenseController-_isValidCall-uint256-]] ==== `[.contract-item-name]#++_isValidCall++#++(uint256 productId) → bool++` [.item-kind]#internal# -Checks if a product is currently active. - [.contract-item] [[LicenseController-_getProduct-uint256-]] ==== `[.contract-item-name]#++_getProduct++#++(uint256 id) → contract IProduct product++` [.item-kind]#internal# -Returns the product associated with the given ID. - :metadata: pass:normal[xref:#PolicyController-metadata-mapping-bytes32----struct-IPolicy-Metadata-[`++metadata++`]] :applications: pass:normal[xref:#PolicyController-applications-mapping-bytes32----struct-IPolicy-Application-[`++applications++`]] :policies: pass:normal[xref:#PolicyController-policies-mapping-bytes32----struct-IPolicy-Policy-[`++policies++`]] @@ -1131,6 +1084,46 @@ Returns the product associated with the given ID. import "@etherisc/gif-contracts/contracts/modules/PolicyController.sol"; ``` +The smart contract implements functions for policy operations, including creation, update, cancellation, and retrieval. +It also provides functions for claim creation, confirmation, decline, closure, and payout creation. +Additionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy. +The contract inherits from the `IPolicy` interface and the `CoreController` contract. + +1. State Variables: +- `metadata`: A mapping that stores metadata associated with policy flows. +- `applications`: A mapping that stores insurance applications associated with policy flows. +- `policies`: A mapping that stores policies associated with policy flows. +- `claims`: A nested mapping that stores claims associated with policies. +- `payouts`: A nested mapping that stores payouts associated with policies. +- `payoutCount`: A mapping that stores the count of payouts for each policy flow. +- `_assigendProcessIds`: A counter variable for assigning unique process IDs. +- `_component`: A reference to the `ComponentController` contract. + +2. Functions: +- `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization. +- `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data. +- `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data. +- `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount. +- `revokeApplication()`: Revokes an application for a policy flow. +- `underwriteApplication()`: Changes the state of an application to "Underwritten". +- `declineApplication()`: Declines an application for a policy flow. +- `createPolicy()`: Creates a new policy for a given application process ID. +- `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application. +- `expirePolicy()`: Expires a policy with the given process ID. +- `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims. +- `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event. +- `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event. +- `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event. +- `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event. +- `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event. +- `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event. +- `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists. +- `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists. +- `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function. +- `getNumberOfPayouts()`: Returns the number of payouts for a given process ID. + +Overall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract. + [.contract-index] .Functions -- @@ -1214,152 +1207,102 @@ import "@etherisc/gif-contracts/contracts/modules/PolicyController.sol"; [[PolicyController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -Internal function that sets the _component variable to the address of the ComponentController contract. - [.contract-item] [[PolicyController-createPolicyFlow-address-uint256-bytes-]] ==== `[.contract-item-name]#++createPolicyFlow++#++(address owner, uint256 productId, bytes data) → bytes32 processId++` [.item-kind]#external# -Creates a new policy flow for a given owner and product. - [.contract-item] [[PolicyController-createApplication-bytes32-uint256-uint256-bytes-]] ==== `[.contract-item-name]#++createApplication++#++(bytes32 processId, uint256 premiumAmount, uint256 sumInsuredAmount, bytes data)++` [.item-kind]#external# -Creates a new insurance application for a given process ID. - [.contract-item] [[PolicyController-collectPremium-bytes32-uint256-]] ==== `[.contract-item-name]#++collectPremium++#++(bytes32 processId, uint256 amount)++` [.item-kind]#external# -Collects premium for a policy. - [.contract-item] [[PolicyController-revokeApplication-bytes32-]] ==== `[.contract-item-name]#++revokeApplication++#++(bytes32 processId)++` [.item-kind]#external# -Revokes an application with the given process ID. - [.contract-item] [[PolicyController-underwriteApplication-bytes32-]] ==== `[.contract-item-name]#++underwriteApplication++#++(bytes32 processId)++` [.item-kind]#external# -Changes the state of an application to underwritten. - [.contract-item] [[PolicyController-declineApplication-bytes32-]] ==== `[.contract-item-name]#++declineApplication++#++(bytes32 processId)++` [.item-kind]#external# -Declines an application for a policy flow. - [.contract-item] [[PolicyController-createPolicy-bytes32-]] ==== `[.contract-item-name]#++createPolicy++#++(bytes32 processId)++` [.item-kind]#external# -Creates a new policy for a given application process ID. - [.contract-item] [[PolicyController-adjustPremiumSumInsured-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++adjustPremiumSumInsured++#++(bytes32 processId, uint256 expectedPremiumAmount, uint256 sumInsuredAmount)++` [.item-kind]#external# -This function adjusts the premium and sum insured amount of an insurance policy application. - [.contract-item] [[PolicyController-expirePolicy-bytes32-]] ==== `[.contract-item-name]#++expirePolicy++#++(bytes32 processId)++` [.item-kind]#external# -This function expires a policy with the given process ID. - [.contract-item] [[PolicyController-closePolicy-bytes32-]] ==== `[.contract-item-name]#++closePolicy++#++(bytes32 processId)++` [.item-kind]#external# -Closes a policy that has expired and has no open claims. - [.contract-item] [[PolicyController-createClaim-bytes32-uint256-bytes-]] ==== `[.contract-item-name]#++createClaim++#++(bytes32 processId, uint256 claimAmount, bytes data) → uint256 claimId++` [.item-kind]#external# -Creates a new claim for a given policy. - [.contract-item] [[PolicyController-confirmClaim-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++confirmClaim++#++(bytes32 processId, uint256 claimId, uint256 confirmedAmount)++` [.item-kind]#external# -Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. - [.contract-item] [[PolicyController-declineClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++declineClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# -This function allows the Policy contract to decline a claim. - [.contract-item] [[PolicyController-closeClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++closeClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# -Closes a claim for a given policy. - [.contract-item] [[PolicyController-createPayout-bytes32-uint256-uint256-bytes-]] ==== `[.contract-item-name]#++createPayout++#++(bytes32 processId, uint256 claimId, uint256 payoutAmount, bytes data) → uint256 payoutId++` [.item-kind]#external# -Creates a new payout for a confirmed claim in a policy. - [.contract-item] [[PolicyController-processPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 payoutId)++` [.item-kind]#external# -Processes a payout for a policy and claim. - [.contract-item] [[PolicyController-getMetadata-bytes32-]] ==== `[.contract-item-name]#++getMetadata++#++(bytes32 processId) → struct IPolicy.Metadata _metadata++` [.item-kind]#public# -Returns the metadata for the given process ID. - [.contract-item] [[PolicyController-getApplication-bytes32-]] ==== `[.contract-item-name]#++getApplication++#++(bytes32 processId) → struct IPolicy.Application application++` [.item-kind]#public# -Returns the application associated with the provided process ID. - [.contract-item] [[PolicyController-getNumberOfClaims-bytes32-]] ==== `[.contract-item-name]#++getNumberOfClaims++#++(bytes32 processId) → uint256 numberOfClaims++` [.item-kind]#external# -Returns the number of claims associated with a given process ID. - [.contract-item] [[PolicyController-getNumberOfPayouts-bytes32-]] ==== `[.contract-item-name]#++getNumberOfPayouts++#++(bytes32 processId) → uint256 numberOfPayouts++` [.item-kind]#external# -Returns the number of payouts for a given process ID. - [.contract-item] [[PolicyController-getPolicy-bytes32-]] ==== `[.contract-item-name]#++getPolicy++#++(bytes32 processId) → struct IPolicy.Policy policy++` [.item-kind]#public# -Returns the policy associated with the given process ID. - [.contract-item] [[PolicyController-getClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++getClaim++#++(bytes32 processId, uint256 claimId) → struct IPolicy.Claim claim++` [.item-kind]#public# -Returns the claim with the given ID for the specified process. - [.contract-item] [[PolicyController-getPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++getPayout++#++(bytes32 processId, uint256 payoutId) → struct IPolicy.Payout payout++` [.item-kind]#public# -Retrieves a specific payout from a process. - [.contract-item] [[PolicyController-processIds--]] ==== `[.contract-item-name]#++processIds++#++() → uint256++` [.item-kind]#external# -Returns the number of process IDs that have been assigned. - :FULL_COLLATERALIZATION_LEVEL: pass:normal[xref:#PoolController-FULL_COLLATERALIZATION_LEVEL-uint256[`++FULL_COLLATERALIZATION_LEVEL++`]] :COLLATERALIZATION_LEVEL_CAP: pass:normal[xref:#PoolController-COLLATERALIZATION_LEVEL_CAP-uint256[`++COLLATERALIZATION_LEVEL_CAP++`]] :DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES: pass:normal[xref:#PoolController-DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES-uint256[`++DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES++`]] @@ -1399,6 +1342,31 @@ Returns the number of process IDs that have been assigned. import "@etherisc/gif-contracts/contracts/modules/PoolController.sol"; ``` +The smart contract manages riskpools, their registration, funding, defunding, collateralization, and other related operations. + +- The contract implements the IPool interface and extends the CoreController contract. +- It imports other contracts such as ComponentController, PolicyController, BundleController, and CoreController. +- It uses the EnumerableSet library from OpenZeppelin for managing sets of bundle IDs. +- The contract defines constants for full collateralization level, collateralization level cap, and default maximum number of active bundles. +- It maintains mappings to store riskpool information, riskpool IDs for products, maximum number of active bundles for riskpools, and active bundle IDs for riskpools. +- The contract has a private array to store riskpool IDs. +- It has references to other contracts: ComponentController, PolicyController, and BundleController. +- The contract defines modifiers for access control to specific functions. + +Functions: +- `_afterInitialize()`: Called after contract initialization to set addresses of other contracts. +- `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration. +- `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID. +- `fund()`: Adds funds to a specific riskpool. +- `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount. +- `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure. +- `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount. +- `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract. +- `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout. +- `release()`: Releases a policy's collateral from the riskpool. + +Overall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations. + [.contract-index] .Modifiers -- @@ -1490,134 +1458,90 @@ import "@etherisc/gif-contracts/contracts/modules/PoolController.sol"; [[PoolController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -This function is called after the contract is initialized and sets the addresses of the ComponentController, PolicyController, and BundleController contracts. - [.contract-item] [[PoolController-registerRiskpool-uint256-address-address-uint256-uint256-]] ==== `[.contract-item-name]#++registerRiskpool++#++(uint256 riskpoolId, address wallet, address erc20Token, uint256 collateralizationLevel, uint256 sumOfSumInsuredCap)++` [.item-kind]#external# -Registers a new riskpool with the given parameters. - [.contract-item] [[PoolController-setRiskpoolForProduct-uint256-uint256-]] ==== `[.contract-item-name]#++setRiskpoolForProduct++#++(uint256 productId, uint256 riskpoolId)++` [.item-kind]#external# -Sets the riskpool ID for a given product ID. - [.contract-item] [[PoolController-fund-uint256-uint256-]] ==== `[.contract-item-name]#++fund++#++(uint256 riskpoolId, uint256 amount)++` [.item-kind]#external# -Adds funds to a specific riskpool. - [.contract-item] [[PoolController-defund-uint256-uint256-]] ==== `[.contract-item-name]#++defund++#++(uint256 riskpoolId, uint256 amount)++` [.item-kind]#external# -Allows the Riskpool service to defund the specified Riskpool by the given amount. - [.contract-item] [[PoolController-underwrite-bytes32-]] ==== `[.contract-item-name]#++underwrite++#++(bytes32 processId) → bool success++` [.item-kind]#external# -Underwrites a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. - [.contract-item] [[PoolController-calculateCollateral-uint256-uint256-]] ==== `[.contract-item-name]#++calculateCollateral++#++(uint256 riskpoolId, uint256 sumInsuredAmount) → uint256 collateralAmount++` [.item-kind]#public# -Calculates the required collateral amount for a given riskpool and sum insured amount. - [.contract-item] [[PoolController-processPremium-bytes32-uint256-]] ==== `[.contract-item-name]#++processPremium++#++(bytes32 processId, uint256 amount)++` [.item-kind]#external# -Processes the premium payment for a policy. - [.contract-item] [[PoolController-processPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 amount)++` [.item-kind]#external# -Process a payout for a policy flow in the Pool. - [.contract-item] [[PoolController-release-bytes32-]] ==== `[.contract-item-name]#++release++#++(bytes32 processId)++` [.item-kind]#external# -Releases a policy's collateral from the riskpool. - [.contract-item] [[PoolController-setMaximumNumberOfActiveBundles-uint256-uint256-]] ==== `[.contract-item-name]#++setMaximumNumberOfActiveBundles++#++(uint256 riskpoolId, uint256 maxNumberOfActiveBundles)++` [.item-kind]#external# -Sets the maximum number of active bundles for a given riskpool ID. - [.contract-item] [[PoolController-getMaximumNumberOfActiveBundles-uint256-]] ==== `[.contract-item-name]#++getMaximumNumberOfActiveBundles++#++(uint256 riskpoolId) → uint256 maximumNumberOfActiveBundles++` [.item-kind]#public# -Returns the maximum number of active bundles for a given riskpool ID. - [.contract-item] [[PoolController-riskpools--]] ==== `[.contract-item-name]#++riskpools++#++() → uint256 idx++` [.item-kind]#external# -Returns the number of risk pools created. - [.contract-item] [[PoolController-getRiskpool-uint256-]] ==== `[.contract-item-name]#++getRiskpool++#++(uint256 riskpoolId) → struct IPool.Pool riskPool++` [.item-kind]#public# -Returns the risk pool data for a given risk pool ID. - [.contract-item] [[PoolController-getRiskPoolForProduct-uint256-]] ==== `[.contract-item-name]#++getRiskPoolForProduct++#++(uint256 productId) → uint256 riskpoolId++` [.item-kind]#external# -Returns the risk pool ID associated with the given product ID. - [.contract-item] [[PoolController-activeBundles-uint256-]] ==== `[.contract-item-name]#++activeBundles++#++(uint256 riskpoolId) → uint256 numberOfActiveBundles++` [.item-kind]#external# -Returns the number of active bundles for a given risk pool ID. - [.contract-item] [[PoolController-getActiveBundleId-uint256-uint256-]] ==== `[.contract-item-name]#++getActiveBundleId++#++(uint256 riskpoolId, uint256 bundleIdx) → uint256 bundleId++` [.item-kind]#external# -Returns the active bundle ID at the specified index for the given risk pool ID. - [.contract-item] [[PoolController-addBundleIdToActiveSet-uint256-uint256-]] ==== `[.contract-item-name]#++addBundleIdToActiveSet++#++(uint256 riskpoolId, uint256 bundleId)++` [.item-kind]#external# -Adds a bundle ID to the active set for a specific riskpool ID. - [.contract-item] [[PoolController-removeBundleIdFromActiveSet-uint256-uint256-]] ==== `[.contract-item-name]#++removeBundleIdFromActiveSet++#++(uint256 riskpoolId, uint256 bundleId)++` [.item-kind]#external# -Removes a bundle ID from the active set for a given risk pool ID. - [.contract-item] [[PoolController-getFullCollateralizationLevel--]] ==== `[.contract-item-name]#++getFullCollateralizationLevel++#++() → uint256++` [.item-kind]#external# -Returns the full collateralization level of the contract. - [.contract-item] [[PoolController-_getRiskpoolComponent-struct-IPolicy-Metadata-]] ==== `[.contract-item-name]#++_getRiskpoolComponent++#++(struct IPolicy.Metadata metadata) → contract IRiskpool riskpool++` [.item-kind]#internal# -Returns the Riskpool contract instance associated with the given policy metadata. - [.contract-item] [[PoolController-_getRiskpoolForId-uint256-]] ==== `[.contract-item-name]#++_getRiskpoolForId++#++(uint256 riskpoolId) → contract IRiskpool riskpool++` [.item-kind]#internal# -Returns the Riskpool contract instance for a given riskpoolId. - :onlyOracleService: pass:normal[xref:#QueryModule-onlyOracleService--[`++onlyOracleService++`]] :onlyResponsibleOracle: pass:normal[xref:#QueryModule-onlyResponsibleOracle-uint256-address-[`++onlyResponsibleOracle++`]] :_afterInitialize: pass:normal[xref:#QueryModule-_afterInitialize--[`++_afterInitialize++`]] @@ -1637,6 +1561,30 @@ Returns the Riskpool contract instance for a given riskpoolId. import "@etherisc/gif-contracts/contracts/modules/QueryModule.sol"; ``` +The smart contract implements the "IQuery" interface and extends the "CoreController" contract. +The contract imports several external contracts from the "etherisc/gif-interface" repository, including "IComponent.sol", "IOracle.sol", "IQuery.sol", and "IInstanceService.sol". +It also imports two local contracts, "ComponentController.sol" and "CoreController.sol". + +The contract defines a private variable `_component` of type "ComponentController" and an array `_oracleRequests` of type "OracleRequest[]". + +The contract includes two modifiers: +1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the "OracleService" contract address stored in the CoreController. +2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`. + +The contract provides the following functions: +- `_afterInitialize()`: Sets the `_component` variable to the address of the "ComponentController" contract. It is called after contract initialization and only during the initialization phase. +- `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the "Query" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event. +- `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the "OracleService" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event. +- `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the "Query" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event. +- `getProcessId()`: Returns the process ID associated with a given `requestId`. +- `getOracleRequestCount()`: Returns the number of oracle requests made. +- `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component. + +The contract emits the following events: +1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID. +2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status. +3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID. + [.contract-index] .Modifiers -- @@ -1701,44 +1649,30 @@ import "@etherisc/gif-contracts/contracts/modules/QueryModule.sol"; [[QueryModule-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -Internal function that sets the `_component` variable to the `ComponentController` contract address. - [.contract-item] [[QueryModule-request-bytes32-bytes-string-address-uint256-]] ==== `[.contract-item-name]#++request++#++(bytes32 processId, bytes input, string callbackMethodName, address callbackContractAddress, uint256 responsibleOracleId) → uint256 requestId++` [.item-kind]#external# -Creates a new oracle request for a given process with the specified input data and callback information. - [.contract-item] [[QueryModule-respond-uint256-address-bytes-]] ==== `[.contract-item-name]#++respond++#++(uint256 requestId, address responder, bytes data)++` [.item-kind]#external# -Responds to an oracle request with the given requestId, responder address, and data. - [.contract-item] [[QueryModule-cancel-uint256-]] ==== `[.contract-item-name]#++cancel++#++(uint256 requestId)++` [.item-kind]#external# -Cancels an oracle request. - [.contract-item] [[QueryModule-getProcessId-uint256-]] ==== `[.contract-item-name]#++getProcessId++#++(uint256 requestId) → bytes32 processId++` [.item-kind]#external# -Returns the process ID associated with a given request ID. - [.contract-item] [[QueryModule-getOracleRequestCount--]] ==== `[.contract-item-name]#++getOracleRequestCount++#++() → uint256 _count++` [.item-kind]#public# -Returns the number of oracle requests made. - [.contract-item] [[QueryModule-_getOracle-uint256-]] ==== `[.contract-item-name]#++_getOracle++#++(uint256 id) → contract IOracle oracle++` [.item-kind]#internal# -Returns the Oracle component with the specified ID. - :MAX_CONTRACTS: pass:normal[xref:#RegistryController-MAX_CONTRACTS-uint256[`++MAX_CONTRACTS++`]] :release: pass:normal[xref:#RegistryController-release-bytes32[`++release++`]] :startBlock: pass:normal[xref:#RegistryController-startBlock-uint256[`++startBlock++`]] @@ -1769,6 +1703,39 @@ Returns the Oracle component with the specified ID. import "@etherisc/gif-contracts/contracts/modules/RegistryController.sol"; ``` +The smart contract implements the `IRegistry` interface and inherits from the `CoreController` contract. +The contract provides functionality for registering, deregistering, and accessing contracts within different releases. It maintains mappings and sets to store contract names and addresses in different releases. + +- `MAX_CONTRACTS`: A constant variable set to 100, representing the maximum number of contracts allowed in a release. +- `release`: A bytes32 variable representing the current release identifier. +- `startBlock`: An unsigned integer storing the block number at which the contract was deployed. +- `_contracts`: A nested mapping that stores contract addresses based on the release and contract name. +- `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release. +- `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release. + +Functions: +- `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs. +- `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release. +- `getRelease()`: Returns the current release identifier. +- `getContract()`: Returns the address of a contract by its name in the current release. +- `register()`: Registers a contract with a given name and address in the current release. +- `deregister()`: Deregisters a contract from the current release. +- `getContractInRelease()`: Returns the address of a specific contract within a given release. +- `registerInRelease()`: Registers a contract in a specific release. +- `deregisterInRelease()`: Deregisters a contract name from a specific release. +- `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one. +- `contracts()`: Returns the number of contracts in the current release. +- `contractName()`: Returns the name of the contract at the specified index in the contractNames set. + +Internal functions: +- `_getContractInRelease()`: Returns the address of a contract in a specific release. +- `_registerInRelease()`: Registers a contract in a release. +- `_deregisterInRelease()`: Deregisters a contract in a specific release. + +The contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered. + +Overall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts. + [.contract-index] .Functions -- @@ -1827,91 +1794,81 @@ import "@etherisc/gif-contracts/contracts/modules/RegistryController.sol"; [[RegistryController-initializeRegistry-bytes32-]] ==== `[.contract-item-name]#++initializeRegistry++#++(bytes32 _initialRelease)++` [.item-kind]#public# -Initializes the GIF registry with an initial release and sets the deployment block for reading logs. - [.contract-item] [[RegistryController-ensureSender-address-bytes32-]] ==== `[.contract-item-name]#++ensureSender++#++(address sender, bytes32 _contractName) → bool _senderMatches++` [.item-kind]#external# -Verifies if the provided 'sender' address matches the address of the contract with the given '_contractName' in the current release. - [.contract-item] [[RegistryController-getRelease--]] ==== `[.contract-item-name]#++getRelease++#++() → bytes32 _release++` [.item-kind]#external# -Returns the current release identifier. +get current release [.contract-item] [[RegistryController-getContract-bytes32-]] ==== `[.contract-item-name]#++getContract++#++(bytes32 _contractName) → address _addr++` [.item-kind]#public# -Returns the address of a contract by its name. +Get contract's address in the current release [.contract-item] [[RegistryController-register-bytes32-address-]] ==== `[.contract-item-name]#++register++#++(bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# -Registers a contract with a given name and address. +Register contract in the current release [.contract-item] [[RegistryController-deregister-bytes32-]] ==== `[.contract-item-name]#++deregister++#++(bytes32 _contractName)++` [.item-kind]#external# -Deregisters a contract from the current release. +Deregister contract in the current release [.contract-item] [[RegistryController-getContractInRelease-bytes32-bytes32-]] ==== `[.contract-item-name]#++getContractInRelease++#++(bytes32 _release, bytes32 _contractName) → address _addr++` [.item-kind]#external# -Returns the address of a specific contract within a given release. +Get contract's address in certain release [.contract-item] [[RegistryController-registerInRelease-bytes32-bytes32-address-]] ==== `[.contract-item-name]#++registerInRelease++#++(bytes32 _release, bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# -Registers a contract in a specific release. +Register contract in certain release [.contract-item] [[RegistryController-deregisterInRelease-bytes32-bytes32-]] ==== `[.contract-item-name]#++deregisterInRelease++#++(bytes32 _release, bytes32 _contractName)++` [.item-kind]#external# -Deregisters a contract name from a specific release. - [.contract-item] [[RegistryController-prepareRelease-bytes32-]] ==== `[.contract-item-name]#++prepareRelease++#++(bytes32 _newRelease)++` [.item-kind]#external# -Prepares a new release by copying all contracts from the current release to the new one. +Create new release, copy contracts from previous release [.contract-item] [[RegistryController-contracts--]] ==== `[.contract-item-name]#++contracts++#++() → uint256 _numberOfContracts++` [.item-kind]#external# -Returns the number of contracts in the current release. - [.contract-item] [[RegistryController-contractName-uint256-]] ==== `[.contract-item-name]#++contractName++#++(uint256 idx) → bytes32 _contractName++` [.item-kind]#external# -Returns the name of the contract at the specified index in the contractNames set. - [.contract-item] [[RegistryController-_getContractInRelease-bytes32-bytes32-]] ==== `[.contract-item-name]#++_getContractInRelease++#++(bytes32 _release, bytes32 _contractName) → address _addr++` [.item-kind]#internal# -Returns the address of a contract in a specific release. +Get contract's address in certain release [.contract-item] [[RegistryController-_registerInRelease-bytes32-bool-bytes32-address-]] ==== `[.contract-item-name]#++_registerInRelease++#++(bytes32 _release, bool isNewRelease, bytes32 _contractName, address _contractAddress)++` [.item-kind]#internal# -Registers a contract in a release. +Register contract in certain release [.contract-item] [[RegistryController-_deregisterInRelease-bytes32-bytes32-]] ==== `[.contract-item-name]#++_deregisterInRelease++#++(bytes32 _release, bytes32 _contractName)++` [.item-kind]#internal# -Internal function to deregister a contract in a specific release. +Deregister contract in certain release :FRACTION_FULL_UNIT: pass:normal[xref:#TreasuryModule-FRACTION_FULL_UNIT-uint256[`++FRACTION_FULL_UNIT++`]] :FRACTIONAL_FEE_MAX: pass:normal[xref:#TreasuryModule-FRACTIONAL_FEE_MAX-uint256[`++FRACTIONAL_FEE_MAX++`]] @@ -1956,6 +1913,37 @@ Internal function to deregister a contract in a specific release. import "@etherisc/gif-contracts/contracts/modules/TreasuryModule.sol"; ``` +The smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts. +The contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the "etherisc/gif-interface" and "openzeppelin/contracts" libraries. + +The contract defines several state variables, including: +- FRACTION_FULL_UNIT: a constant representing the full unit value (10^18). +- FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%). +- event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation. +- event LogTransferHelperInputValidation2Failed: an event that logs a failed input validation. +- event LogTransferHelperCallFailed: an event that logs a failed external call. +- _instanceWalletAddress: a private variable representing the address of the instance wallet. +- _riskpoolWallet: a mapping of riskpool IDs to wallet addresses. +- _fees: a mapping of component IDs to FeeSpecification structs. +- _componentToken: a mapping of product IDs/riskpool IDs to ERC20 token addresses. +- _bundle: an instance of the BundleController contract. +- _component: an instance of the ComponentController contract. +- _policy: an instance of the PolicyController contract. +- _pool: an instance of the PoolController contract. + +The contract includes several modifiers that enforce certain conditions on function execution, such as the instanceWalletDefined modifier, which requires the instance wallet address to be defined; +the riskpoolWalletDefinedForProcess modifier, which requires the riskpool wallet address to be defined for a given process ID; +the riskpoolWalletDefinedForBundle modifier, which requires the riskpool wallet address to be defined for a given bundle ID; +the whenNotSuspended modifier, which requires the contract to not be paused; and the onlyRiskpoolService modifier, which restricts access to the RiskpoolService contract. + +The contract contains various functions for managing the treasury, such as setting the product token address, setting the instance wallet address, setting the riskpool wallet address, creating fee specifications, and setting premium and capital fees for components. +There are also functions for suspending and resuming the treasury contract. + +The contract includes a function to calculate the fee amount and net amount for a given component ID and amount. +It also includes functions to process premium payments for policies, either for the remaining premium amount or for a specific amount. + +Overall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system. + [.contract-index] .Modifiers -- @@ -2080,141 +2068,94 @@ import "@etherisc/gif-contracts/contracts/modules/TreasuryModule.sol"; [[TreasuryModule-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -Sets the addresses of the BundleController, ComponentController, PolicyController, and PoolController contracts. - [.contract-item] [[TreasuryModule-suspend--]] ==== `[.contract-item-name]#++suspend++#++()++` [.item-kind]#external# -Suspends the treasury contract, preventing any further transfers or withdrawals. - Can only be called by the instance operator. - [.contract-item] [[TreasuryModule-resume--]] ==== `[.contract-item-name]#++resume++#++()++` [.item-kind]#external# -Resumes the treasury contract after it has been paused. - [.contract-item] [[TreasuryModule-setProductToken-uint256-address-]] ==== `[.contract-item-name]#++setProductToken++#++(uint256 productId, address erc20Address)++` [.item-kind]#external# -Sets the ERC20 token address for a given product ID and its associated risk pool. - [.contract-item] [[TreasuryModule-setInstanceWallet-address-]] ==== `[.contract-item-name]#++setInstanceWallet++#++(address instanceWalletAddress)++` [.item-kind]#external# -Sets the address of the instance wallet. - [.contract-item] [[TreasuryModule-setRiskpoolWallet-uint256-address-]] ==== `[.contract-item-name]#++setRiskpoolWallet++#++(uint256 riskpoolId, address riskpoolWalletAddress)++` [.item-kind]#external# -Sets the wallet address for a specific riskpool. - [.contract-item] [[TreasuryModule-createFeeSpecification-uint256-uint256-uint256-bytes-]] ==== `[.contract-item-name]#++createFeeSpecification++#++(uint256 componentId, uint256 fixedFee, uint256 fractionalFee, bytes feeCalculationData) → struct ITreasury.FeeSpecification++` [.item-kind]#external# -Creates a fee specification for a given component. - [.contract-item] [[TreasuryModule-setPremiumFees-struct-ITreasury-FeeSpecification-]] ==== `[.contract-item-name]#++setPremiumFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# -Sets the premium fees for a specific component. - [.contract-item] [[TreasuryModule-setCapitalFees-struct-ITreasury-FeeSpecification-]] ==== `[.contract-item-name]#++setCapitalFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# -Sets the fee specification for a given component, which includes the fixed and fractional fees. - [.contract-item] [[TreasuryModule-calculateFee-uint256-uint256-]] ==== `[.contract-item-name]#++calculateFee++#++(uint256 componentId, uint256 amount) → uint256 feeAmount, uint256 netAmount++` [.item-kind]#public# -Calculates the fee amount and net amount for a given component ID and amount. - [.contract-item] [[TreasuryModule-processPremium-bytes32-]] ==== `[.contract-item-name]#++processPremium++#++(bytes32 processId) → bool success, uint256 feeAmount, uint256 netPremiumAmount++` [.item-kind]#external# -Processes the premium for a given policy process ID. - [.contract-item] [[TreasuryModule-processPremium-bytes32-uint256-]] ==== `[.contract-item-name]#++processPremium++#++(bytes32 processId, uint256 amount) → bool success, uint256 feeAmount, uint256 netAmount++` [.item-kind]#public# -Processes a premium payment for a policy. - [.contract-item] [[TreasuryModule-processPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 payoutId) → uint256 feeAmount, uint256 netPayoutAmount++` [.item-kind]#external# -Processes a payout for a specific process and payout ID. - [.contract-item] [[TreasuryModule-processCapital-uint256-uint256-]] ==== `[.contract-item-name]#++processCapital++#++(uint256 bundleId, uint256 capitalAmount) → uint256 feeAmount, uint256 netCapitalAmount++` [.item-kind]#external# -Processes capital for a given bundle ID and calculates fees. Transfers fees to the instance wallet and net capital to the riskpool wallet. - [.contract-item] [[TreasuryModule-processWithdrawal-uint256-uint256-]] ==== `[.contract-item-name]#++processWithdrawal++#++(uint256 bundleId, uint256 amount) → uint256 feeAmount, uint256 netAmount++` [.item-kind]#external# -Processes a withdrawal of a specified amount from a bundle, transferring the funds to the bundle owner's wallet. - [.contract-item] [[TreasuryModule-getComponentToken-uint256-]] ==== `[.contract-item-name]#++getComponentToken++#++(uint256 componentId) → contract IERC20 token++` [.item-kind]#public# -Returns the ERC20 token address associated with the given component ID. - [.contract-item] [[TreasuryModule-getFeeSpecification-uint256-]] ==== `[.contract-item-name]#++getFeeSpecification++#++(uint256 componentId) → struct ITreasury.FeeSpecification++` [.item-kind]#public# -Returns the fee specification of a given component. - [.contract-item] [[TreasuryModule-getFractionFullUnit--]] ==== `[.contract-item-name]#++getFractionFullUnit++#++() → uint256++` [.item-kind]#public# -Returns the value of the constant FRACTION_FULL_UNIT. - [.contract-item] [[TreasuryModule-getInstanceWallet--]] ==== `[.contract-item-name]#++getInstanceWallet++#++() → address++` [.item-kind]#public# -Returns the address of the instance wallet. - [.contract-item] [[TreasuryModule-getRiskpoolWallet-uint256-]] ==== `[.contract-item-name]#++getRiskpoolWallet++#++(uint256 riskpoolId) → address++` [.item-kind]#public# -Returns the wallet address of the specified risk pool. - [.contract-item] [[TreasuryModule-_calculatePremiumFee-struct-ITreasury-FeeSpecification-bytes32-]] ==== `[.contract-item-name]#++_calculatePremiumFee++#++(struct ITreasury.FeeSpecification feeSpec, bytes32 processId) → struct IPolicy.Application application, uint256 feeAmount++` [.item-kind]#internal# -Calculates the premium fee for a given fee specification and process ID. - [.contract-item] [[TreasuryModule-_calculateFee-struct-ITreasury-FeeSpecification-uint256-]] ==== `[.contract-item-name]#++_calculateFee++#++(struct ITreasury.FeeSpecification feeSpec, uint256 amount) → uint256 feeAmount++` [.item-kind]#internal# -Calculates the fee amount based on the given fee specification and the transaction amount. - [.contract-item] [[TreasuryModule-_getRiskpoolWallet-bytes32-]] ==== `[.contract-item-name]#++_getRiskpoolWallet++#++(bytes32 processId) → uint256 riskpoolId, address riskpoolWalletAddress++` [.item-kind]#internal# -Returns the riskpool ID and wallet address for a given process ID. - [.contract-item] [[TreasuryModule-LogTransferHelperInputValidation1Failed-bool-address-address-]] ==== `[.contract-item-name]#++LogTransferHelperInputValidation1Failed++#++(bool tokenIsContract, address from, address to)++` [.item-kind]#event# diff --git a/docs/modules/api/pages/services.adoc b/docs/modules/api/pages/services.adoc index 923835ba..056b0f8b 100644 --- a/docs/modules/api/pages/services.adoc +++ b/docs/modules/api/pages/services.adoc @@ -220,44 +220,30 @@ import "@etherisc/gif-contracts/contracts/services/ComponentOwnerService.sol"; [[ComponentOwnerService-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -This function is called after the contract is initialized and can only be called once. It sets the component controller contract address. - [.contract-item] [[ComponentOwnerService-propose-contract-IComponent-]] ==== `[.contract-item-name]#++propose++#++(contract IComponent component)++` [.item-kind]#external# -Propose a new component to be added to the system. - [.contract-item] [[ComponentOwnerService-stake-uint256-]] ==== `[.contract-item-name]#++stake++#++(uint256 id)++` [.item-kind]#external# -Stake function allows the owner to stake a specific id. - [.contract-item] [[ComponentOwnerService-withdraw-uint256-]] ==== `[.contract-item-name]#++withdraw++#++(uint256 id)++` [.item-kind]#external# -Allows the owner to withdraw a specific asset by its ID. - [.contract-item] [[ComponentOwnerService-pause-uint256-]] ==== `[.contract-item-name]#++pause++#++(uint256 id)++` [.item-kind]#external# -Pauses a specific component with the given ID. - [.contract-item] [[ComponentOwnerService-unpause-uint256-]] ==== `[.contract-item-name]#++unpause++#++(uint256 id)++` [.item-kind]#external# -Unpauses a component with the specified ID. - [.contract-item] [[ComponentOwnerService-archive-uint256-]] ==== `[.contract-item-name]#++archive++#++(uint256 id)++` [.item-kind]#external# -Archives a component with the given ID from the component owner's inventory. - :onlyInstanceOperatorAddress: pass:normal[xref:#InstanceOperatorService-onlyInstanceOperatorAddress--[`++onlyInstanceOperatorAddress++`]] :_afterInitialize: pass:normal[xref:#InstanceOperatorService-_afterInitialize--[`++_afterInitialize++`]] :prepareRelease: pass:normal[xref:#InstanceOperatorService-prepareRelease-bytes32-[`++prepareRelease++`]] @@ -380,156 +366,102 @@ import "@etherisc/gif-contracts/contracts/services/InstanceOperatorService.sol"; [[InstanceOperatorService-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -Performs the necessary setup after contract initialization. - - Sets the component, pool, and treasury contracts. - - Transfers ownership to the message sender. - - Links the bundle module to the bundle token. - - Sets the default admin role. - [.contract-item] [[InstanceOperatorService-prepareRelease-bytes32-]] ==== `[.contract-item-name]#++prepareRelease++#++(bytes32 _newRelease)++` [.item-kind]#external# -Prepares a new release by calling the prepareRelease function from the Registry contract. - [.contract-item] [[InstanceOperatorService-register-bytes32-address-]] ==== `[.contract-item-name]#++register++#++(bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# -Registers a contract in the registry. - [.contract-item] [[InstanceOperatorService-deregister-bytes32-]] ==== `[.contract-item-name]#++deregister++#++(bytes32 _contractName)++` [.item-kind]#external# -Deregisters a contract from the registry. - [.contract-item] [[InstanceOperatorService-registerInRelease-bytes32-bytes32-address-]] ==== `[.contract-item-name]#++registerInRelease++#++(bytes32 _release, bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# -Registers a contract in a specific release. - [.contract-item] [[InstanceOperatorService-deregisterInRelease-bytes32-bytes32-]] ==== `[.contract-item-name]#++deregisterInRelease++#++(bytes32 _release, bytes32 _contractName)++` [.item-kind]#external# -Deregisters a contract from a specific release in the registry. - [.contract-item] [[InstanceOperatorService-createRole-bytes32-]] ==== `[.contract-item-name]#++createRole++#++(bytes32 _role)++` [.item-kind]#external# -Adds a new role to the access control contract. - [.contract-item] [[InstanceOperatorService-invalidateRole-bytes32-]] ==== `[.contract-item-name]#++invalidateRole++#++(bytes32 _role)++` [.item-kind]#external# -Invalidates a role. - [.contract-item] [[InstanceOperatorService-grantRole-bytes32-address-]] ==== `[.contract-item-name]#++grantRole++#++(bytes32 role, address principal)++` [.item-kind]#external# -Grants a role to a principal. - [.contract-item] [[InstanceOperatorService-revokeRole-bytes32-address-]] ==== `[.contract-item-name]#++revokeRole++#++(bytes32 role, address principal)++` [.item-kind]#external# -Revokes a role from a principal. - [.contract-item] [[InstanceOperatorService-approve-uint256-]] ==== `[.contract-item-name]#++approve++#++(uint256 id)++` [.item-kind]#external# -Approves a component with the given ID and sets its corresponding riskpool ID in the pool contract. - [.contract-item] [[InstanceOperatorService-decline-uint256-]] ==== `[.contract-item-name]#++decline++#++(uint256 id)++` [.item-kind]#external# -Declines a component with the specified ID. - [.contract-item] [[InstanceOperatorService-suspend-uint256-]] ==== `[.contract-item-name]#++suspend++#++(uint256 id)++` [.item-kind]#external# -Suspends the component with the given ID. - [.contract-item] [[InstanceOperatorService-resume-uint256-]] ==== `[.contract-item-name]#++resume++#++(uint256 id)++` [.item-kind]#external# -Resumes the execution of a paused component instance. - [.contract-item] [[InstanceOperatorService-archive-uint256-]] ==== `[.contract-item-name]#++archive++#++(uint256 id)++` [.item-kind]#external# -Archives a component with the given ID from the instance operator's address. - [.contract-item] [[InstanceOperatorService-setDefaultStaking-uint16-bytes-]] ==== `[.contract-item-name]#++setDefaultStaking++#++(uint16 componentType, bytes data)++` [.item-kind]#external# -Sets the default staking for a specific component type. - [.contract-item] [[InstanceOperatorService-adjustStakingRequirements-uint256-bytes-]] ==== `[.contract-item-name]#++adjustStakingRequirements++#++(uint256 id, bytes data)++` [.item-kind]#external# -Adjusts the staking requirements for a specific instance operator by providing the operator ID and the new staking requirements. - [.contract-item] [[InstanceOperatorService-suspendTreasury--]] ==== `[.contract-item-name]#++suspendTreasury++#++()++` [.item-kind]#external# -Suspends the treasury functionality. - [.contract-item] [[InstanceOperatorService-resumeTreasury--]] ==== `[.contract-item-name]#++resumeTreasury++#++()++` [.item-kind]#external# -Resumes the treasury contract. - [.contract-item] [[InstanceOperatorService-setInstanceWallet-address-]] ==== `[.contract-item-name]#++setInstanceWallet++#++(address walletAddress)++` [.item-kind]#external# -Sets the wallet address of the instance operator. - [.contract-item] [[InstanceOperatorService-setRiskpoolWallet-uint256-address-]] ==== `[.contract-item-name]#++setRiskpoolWallet++#++(uint256 riskpoolId, address riskpoolWalletAddress)++` [.item-kind]#external# -Sets the wallet address for a specific risk pool. - [.contract-item] [[InstanceOperatorService-setProductToken-uint256-address-]] ==== `[.contract-item-name]#++setProductToken++#++(uint256 productId, address erc20Address)++` [.item-kind]#external# -Sets the ERC20 token address for a given product ID. - [.contract-item] [[InstanceOperatorService-createFeeSpecification-uint256-uint256-uint256-bytes-]] ==== `[.contract-item-name]#++createFeeSpecification++#++(uint256 componentId, uint256 fixedFee, uint256 fractionalFee, bytes feeCalculationData) → struct ITreasury.FeeSpecification++` [.item-kind]#external# -Returns a FeeSpecification object created with the given parameters. - [.contract-item] [[InstanceOperatorService-setPremiumFees-struct-ITreasury-FeeSpecification-]] ==== `[.contract-item-name]#++setPremiumFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# -Sets the premium fees for the treasury. - [.contract-item] [[InstanceOperatorService-setCapitalFees-struct-ITreasury-FeeSpecification-]] ==== `[.contract-item-name]#++setCapitalFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# -Sets the fee specification for capital fees in the treasury contract. - :BUNDLE_NAME: pass:normal[xref:#InstanceService-BUNDLE_NAME-bytes32[`++BUNDLE_NAME++`]] :COMPONENT_NAME: pass:normal[xref:#InstanceService-COMPONENT_NAME-bytes32[`++COMPONENT_NAME++`]] :POLICY_NAME: pass:normal[xref:#InstanceService-POLICY_NAME-bytes32[`++POLICY_NAME++`]] @@ -707,346 +639,230 @@ import "@etherisc/gif-contracts/contracts/services/InstanceService.sol"; [[InstanceService-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -Internal function that is called after initialization is complete. It sets the bundle, component, policy, pool, and treasury controllers by retrieving their contract addresses. It also sets the chain names. - [.contract-item] [[InstanceService-_setChainNames--]] ==== `[.contract-item-name]#++_setChainNames++#++()++` [.item-kind]#internal# -Sets the names for several blockchain networks by assigning them to their respective chain IDs. - -Sets the names for the Ethereum Mainnet/ETH, Goerli/ETH, Ganache, Gnosis/xDai, Sokol/SPOA, Polygon Mainnet/MATIC, Mumbai/MATIC, Avalanche C-Chain/AVAX and Avalanche Fuji Testnet/AVAX blockchain networks by assigning them to their respective chain IDs. - [.contract-item] [[InstanceService-getChainId--]] ==== `[.contract-item-name]#++getChainId++#++() → uint256 chainId++` [.item-kind]#public# -Returns the chain ID of the current blockchain. - [.contract-item] [[InstanceService-getChainName--]] ==== `[.contract-item-name]#++getChainName++#++() → string chainName++` [.item-kind]#public# -Returns the name of the chain based on its ID. - [.contract-item] [[InstanceService-getInstanceId--]] ==== `[.contract-item-name]#++getInstanceId++#++() → bytes32 instanceId++` [.item-kind]#public# -Returns the instance ID of the contract, which is a hash of the chain ID and the registry address. - [.contract-item] [[InstanceService-getInstanceOperator--]] ==== `[.contract-item-name]#++getInstanceOperator++#++() → address++` [.item-kind]#external# -Returns the address of the current instance operator. - [.contract-item] [[InstanceService-getComponentOwnerService--]] ==== `[.contract-item-name]#++getComponentOwnerService++#++() → contract IComponentOwnerService service++` [.item-kind]#external# -Returns the address of the Component Owner Service contract. - [.contract-item] [[InstanceService-getInstanceOperatorService--]] ==== `[.contract-item-name]#++getInstanceOperatorService++#++() → contract IInstanceOperatorService service++` [.item-kind]#external# -Returns the instance operator service contract address. - [.contract-item] [[InstanceService-getOracleService--]] ==== `[.contract-item-name]#++getOracleService++#++() → contract IOracleService service++` [.item-kind]#external# -Returns the Oracle Service contract instance. - [.contract-item] [[InstanceService-getProductService--]] ==== `[.contract-item-name]#++getProductService++#++() → contract IProductService service++` [.item-kind]#external# -Returns the address of the Product Service contract. - [.contract-item] [[InstanceService-getRiskpoolService--]] ==== `[.contract-item-name]#++getRiskpoolService++#++() → contract IRiskpoolService service++` [.item-kind]#external# -Returns the IRiskpoolService contract instance. - [.contract-item] [[InstanceService-getRegistry--]] ==== `[.contract-item-name]#++getRegistry++#++() → contract IRegistry service++` [.item-kind]#external# -Returns the current instance of the IRegistry contract. - [.contract-item] [[InstanceService-contracts--]] ==== `[.contract-item-name]#++contracts++#++() → uint256 numberOfContracts++` [.item-kind]#external# -Returns the number of contracts registered in the registry. - [.contract-item] [[InstanceService-contractName-uint256-]] ==== `[.contract-item-name]#++contractName++#++(uint256 idx) → bytes32 name++` [.item-kind]#external# -Returns the name of the contract at the specified index in the registry. - [.contract-item] [[InstanceService-getDefaultAdminRole--]] ==== `[.contract-item-name]#++getDefaultAdminRole++#++() → bytes32++` [.item-kind]#external# -Returns the default admin role for the AccessControl contract. - [.contract-item] [[InstanceService-getProductOwnerRole--]] ==== `[.contract-item-name]#++getProductOwnerRole++#++() → bytes32++` [.item-kind]#external# -Returns the role identifier of the product owner role. - [.contract-item] [[InstanceService-getOracleProviderRole--]] ==== `[.contract-item-name]#++getOracleProviderRole++#++() → bytes32++` [.item-kind]#external# -Returns the role identifier for the oracle provider role. - [.contract-item] [[InstanceService-getRiskpoolKeeperRole--]] ==== `[.contract-item-name]#++getRiskpoolKeeperRole++#++() → bytes32++` [.item-kind]#external# -Returns the role identifier for the Riskpool Keeper role. - [.contract-item] [[InstanceService-hasRole-bytes32-address-]] ==== `[.contract-item-name]#++hasRole++#++(bytes32 role, address principal) → bool++` [.item-kind]#external# -Checks if an address has a specific role. - [.contract-item] [[InstanceService-products--]] ==== `[.contract-item-name]#++products++#++() → uint256++` [.item-kind]#external# -Returns the number of products in the component contract. - [.contract-item] [[InstanceService-oracles--]] ==== `[.contract-item-name]#++oracles++#++() → uint256++` [.item-kind]#external# -Returns the number of oracles registered in the component. - [.contract-item] [[InstanceService-riskpools--]] ==== `[.contract-item-name]#++riskpools++#++() → uint256++` [.item-kind]#external# -Returns the number of risk pools in the component. - [.contract-item] [[InstanceService-getComponentId-address-]] ==== `[.contract-item-name]#++getComponentId++#++(address componentAddress) → uint256 componentId++` [.item-kind]#external# -Returns the component ID of a given component address. - [.contract-item] [[InstanceService-getComponentType-uint256-]] ==== `[.contract-item-name]#++getComponentType++#++(uint256 componentId) → enum IComponent.ComponentType componentType++` [.item-kind]#external# -Returns the type of a component given its ID. - [.contract-item] [[InstanceService-getComponentState-uint256-]] ==== `[.contract-item-name]#++getComponentState++#++(uint256 componentId) → enum IComponent.ComponentState componentState++` [.item-kind]#external# -Returns the current state of a specific component. - [.contract-item] [[InstanceService-getComponent-uint256-]] ==== `[.contract-item-name]#++getComponent++#++(uint256 id) → contract IComponent++` [.item-kind]#external# -Returns the component with the specified ID. - [.contract-item] [[InstanceService-getOracleId-uint256-]] ==== `[.contract-item-name]#++getOracleId++#++(uint256 idx) → uint256 oracleId++` [.item-kind]#public# -Returns the oracle ID at the specified index. - [.contract-item] [[InstanceService-getRiskpoolId-uint256-]] ==== `[.contract-item-name]#++getRiskpoolId++#++(uint256 idx) → uint256 riskpoolId++` [.item-kind]#public# -Returns the riskpool ID for the given index. - [.contract-item] [[InstanceService-getProductId-uint256-]] ==== `[.contract-item-name]#++getProductId++#++(uint256 idx) → uint256 productId++` [.item-kind]#public# -Returns the product ID of the component at the given index. - [.contract-item] [[InstanceService-getStakingRequirements-uint256-]] ==== `[.contract-item-name]#++getStakingRequirements++#++(uint256 id) → bytes data++` [.item-kind]#external# -Returns the staking requirements for a specific ID. - [.contract-item] [[InstanceService-getStakedAssets-uint256-]] ==== `[.contract-item-name]#++getStakedAssets++#++(uint256 id) → bytes data++` [.item-kind]#external# -Returns the staked assets for a given ID. - [.contract-item] [[InstanceService-processIds--]] ==== `[.contract-item-name]#++processIds++#++() → uint256 numberOfProcessIds++` [.item-kind]#external# -Returns the number of process IDs in the policy contract. - [.contract-item] [[InstanceService-getMetadata-bytes32-]] ==== `[.contract-item-name]#++getMetadata++#++(bytes32 bpKey) → struct IPolicy.Metadata metadata++` [.item-kind]#external# -Returns the metadata associated with a given business process key. - [.contract-item] [[InstanceService-getApplication-bytes32-]] ==== `[.contract-item-name]#++getApplication++#++(bytes32 processId) → struct IPolicy.Application application++` [.item-kind]#external# -Returns the application data associated with the given process ID. - [.contract-item] [[InstanceService-getPolicy-bytes32-]] ==== `[.contract-item-name]#++getPolicy++#++(bytes32 processId) → struct IPolicy.Policy policy++` [.item-kind]#external# -Returns the policy associated with the given process ID. - [.contract-item] [[InstanceService-claims-bytes32-]] ==== `[.contract-item-name]#++claims++#++(bytes32 processId) → uint256 numberOfClaims++` [.item-kind]#external# -Returns the number of claims associated with a given process ID. - [.contract-item] [[InstanceService-payouts-bytes32-]] ==== `[.contract-item-name]#++payouts++#++(bytes32 processId) → uint256 numberOfPayouts++` [.item-kind]#external# -Returns the number of payouts for a given processId. - [.contract-item] [[InstanceService-getClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++getClaim++#++(bytes32 processId, uint256 claimId) → struct IPolicy.Claim claim++` [.item-kind]#external# -Returns the claim with the given claimId for the specified processId. - [.contract-item] [[InstanceService-getPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++getPayout++#++(bytes32 processId, uint256 payoutId) → struct IPolicy.Payout payout++` [.item-kind]#external# -Returns the information of a specific payout. - [.contract-item] [[InstanceService-getRiskpool-uint256-]] ==== `[.contract-item-name]#++getRiskpool++#++(uint256 riskpoolId) → struct IPool.Pool riskPool++` [.item-kind]#external# -Returns the risk pool with the given ID. - [.contract-item] [[InstanceService-getFullCollateralizationLevel--]] ==== `[.contract-item-name]#++getFullCollateralizationLevel++#++() → uint256++` [.item-kind]#external# -Returns the full collateralization level of the pool. - [.contract-item] [[InstanceService-getCapital-uint256-]] ==== `[.contract-item-name]#++getCapital++#++(uint256 riskpoolId) → uint256 capitalAmount++` [.item-kind]#external# -Returns the capital amount of a given risk pool. - [.contract-item] [[InstanceService-getTotalValueLocked-uint256-]] ==== `[.contract-item-name]#++getTotalValueLocked++#++(uint256 riskpoolId) → uint256 totalValueLockedAmount++` [.item-kind]#external# -Returns the total value locked in a specific risk pool. - [.contract-item] [[InstanceService-getCapacity-uint256-]] ==== `[.contract-item-name]#++getCapacity++#++(uint256 riskpoolId) → uint256 capacityAmount++` [.item-kind]#external# -Returns the available capacity of a risk pool. - [.contract-item] [[InstanceService-getBalance-uint256-]] ==== `[.contract-item-name]#++getBalance++#++(uint256 riskpoolId) → uint256 balanceAmount++` [.item-kind]#external# -Returns the balance amount of a specific risk pool. - [.contract-item] [[InstanceService-activeBundles-uint256-]] ==== `[.contract-item-name]#++activeBundles++#++(uint256 riskpoolId) → uint256 numberOfActiveBundles++` [.item-kind]#external# -Returns the number of active bundles for a given risk pool. - [.contract-item] [[InstanceService-getActiveBundleId-uint256-uint256-]] ==== `[.contract-item-name]#++getActiveBundleId++#++(uint256 riskpoolId, uint256 bundleIdx) → uint256 bundleId++` [.item-kind]#external# -Returns the active bundle ID for a given risk pool and bundle index. - [.contract-item] [[InstanceService-getMaximumNumberOfActiveBundles-uint256-]] ==== `[.contract-item-name]#++getMaximumNumberOfActiveBundles++#++(uint256 riskpoolId) → uint256 maximumNumberOfActiveBundles++` [.item-kind]#external# -Returns the maximum number of active bundles for a given risk pool ID. - [.contract-item] [[InstanceService-getBundleToken--]] ==== `[.contract-item-name]#++getBundleToken++#++() → contract IBundleToken token++` [.item-kind]#external# -Returns the bundle token contract address. - [.contract-item] [[InstanceService-getBundle-uint256-]] ==== `[.contract-item-name]#++getBundle++#++(uint256 bundleId) → struct IBundle.Bundle bundle++` [.item-kind]#external# -Returns the bundle with the given ID. - [.contract-item] [[InstanceService-bundles--]] ==== `[.contract-item-name]#++bundles++#++() → uint256++` [.item-kind]#external# -Returns the number of bundles in the `_bundle` contract. - [.contract-item] [[InstanceService-unburntBundles-uint256-]] ==== `[.contract-item-name]#++unburntBundles++#++(uint256 riskpoolId) → uint256 numberOfUnburntBundles++` [.item-kind]#external# -Returns the number of unburnt bundles for a given risk pool ID. - [.contract-item] [[InstanceService-getTreasuryAddress--]] ==== `[.contract-item-name]#++getTreasuryAddress++#++() → address++` [.item-kind]#external# -Returns the address of the treasury contract. - [.contract-item] [[InstanceService-getInstanceWallet--]] ==== `[.contract-item-name]#++getInstanceWallet++#++() → address++` [.item-kind]#external# -Returns the address of the instance wallet associated with the treasury. - [.contract-item] [[InstanceService-getRiskpoolWallet-uint256-]] ==== `[.contract-item-name]#++getRiskpoolWallet++#++(uint256 riskpoolId) → address++` [.item-kind]#external# -Returns the wallet address of the specified riskpool. - [.contract-item] [[InstanceService-getComponentToken-uint256-]] ==== `[.contract-item-name]#++getComponentToken++#++(uint256 componentId) → contract IERC20++` [.item-kind]#external# -Returns the IERC20 token associated with the given component ID. - [.contract-item] [[InstanceService-getFeeFractionFullUnit--]] ==== `[.contract-item-name]#++getFeeFractionFullUnit++#++() → uint256++` [.item-kind]#external# -Returns the fraction of the treasury fee expressed in full units. - :_afterInitialize: pass:normal[xref:#OracleService-_afterInitialize--[`++_afterInitialize++`]] :respond: pass:normal[xref:#OracleService-respond-uint256-bytes-[`++respond++`]] @@ -1100,14 +916,10 @@ import "@etherisc/gif-contracts/contracts/services/OracleService.sol"; [[OracleService-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -Sets the `_query` variable to an instance of the `IQuery` contract. - [.contract-item] [[OracleService-respond-uint256-bytes-]] ==== `[.contract-item-name]#++respond++#++(uint256 _requestId, bytes _data)++` [.item-kind]#external# -Allows a registered oracle to respond to a data request. - :NAME: pass:normal[xref:#ProductService-NAME-bytes32[`++NAME++`]] :constructor: pass:normal[xref:#ProductService-constructor-address-[`++constructor++`]] :fallback: pass:normal[xref:#ProductService-fallback--[`++fallback++`]] @@ -1143,26 +955,24 @@ import "@etherisc/gif-contracts/contracts/services/ProductService.sol"; [[ProductService-constructor-address-]] ==== `[.contract-item-name]#++constructor++#++(address _registry)++` [.item-kind]#public# -Constructor function that initializes the contract with a registry address. - [.contract-item] [[ProductService-fallback--]] ==== `[.contract-item-name]#++fallback++#++()++` [.item-kind]#external# -Fallback function that ensures the caller is a registered product and authorized to execute the delegated policy flow. - [.contract-item] [[ProductService-_delegate-address-]] ==== `[.contract-item-name]#++_delegate++#++(address implementation)++` [.item-kind]#internal# Delegates the current call to `implementation`. +This function does not return to its internal call site, it will return directly to the external caller. +This function is a 1:1 copy of _delegate from +https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.6/contracts/proxy/Proxy.sol + [.contract-item] [[ProductService-_license--]] ==== `[.contract-item-name]#++_license++#++() → contract ILicense++` [.item-kind]#internal# -Returns the instance of the License contract. - :RISKPOOL_NAME: pass:normal[xref:#RiskpoolService-RISKPOOL_NAME-bytes32[`++RISKPOOL_NAME++`]] :onlyProposedRiskpool: pass:normal[xref:#RiskpoolService-onlyProposedRiskpool--[`++onlyProposedRiskpool++`]] :onlyActiveRiskpool: pass:normal[xref:#RiskpoolService-onlyActiveRiskpool--[`++onlyActiveRiskpool++`]] @@ -1270,83 +1080,55 @@ import "@etherisc/gif-contracts/contracts/services/RiskpoolService.sol"; [[RiskpoolService-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -Sets the addresses of the BundleController, ComponentController, PoolController, and TreasuryModule contracts. - [.contract-item] [[RiskpoolService-registerRiskpool-address-address-uint256-uint256-]] ==== `[.contract-item-name]#++registerRiskpool++#++(address wallet, address erc20Token, uint256 collateralizationLevel, uint256 sumOfSumInsuredCap)++` [.item-kind]#external# -Registers a new risk pool with the given parameters. - [.contract-item] [[RiskpoolService-createBundle-address-bytes-uint256-]] ==== `[.contract-item-name]#++createBundle++#++(address owner, bytes filter, uint256 initialCapital) → uint256 bundleId++` [.item-kind]#external# -Creates a new bundle with the given parameters and adds it to the active set of the riskpool. - [.contract-item] [[RiskpoolService-fundBundle-uint256-uint256-]] ==== `[.contract-item-name]#++fundBundle++#++(uint256 bundleId, uint256 amount) → uint256 netAmount++` [.item-kind]#external# -This function allows a user to fund a bundle with a specified amount. - [.contract-item] [[RiskpoolService-defundBundle-uint256-uint256-]] ==== `[.contract-item-name]#++defundBundle++#++(uint256 bundleId, uint256 amount) → uint256 netAmount++` [.item-kind]#external# -Defunds a bundle by withdrawing a specified amount of tokens from it. - [.contract-item] [[RiskpoolService-lockBundle-uint256-]] ==== `[.contract-item-name]#++lockBundle++#++(uint256 bundleId)++` [.item-kind]#external# -Locks a bundle, preventing it from being traded or redeemed. - [.contract-item] [[RiskpoolService-unlockBundle-uint256-]] ==== `[.contract-item-name]#++unlockBundle++#++(uint256 bundleId)++` [.item-kind]#external# -Unlocks a bundle for trading by adding its ID to the active set of a risk pool and unlocking the bundle. - [.contract-item] [[RiskpoolService-closeBundle-uint256-]] ==== `[.contract-item-name]#++closeBundle++#++(uint256 bundleId)++` [.item-kind]#external# -Closes a bundle and removes it from the active set of the owning riskpool. - [.contract-item] [[RiskpoolService-burnBundle-uint256-]] ==== `[.contract-item-name]#++burnBundle++#++(uint256 bundleId)++` [.item-kind]#external# -Burns a closed bundle, withdrawing its remaining balance and defunding it from the riskpool and the pool. - [.contract-item] [[RiskpoolService-collateralizePolicy-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++collateralizePolicy++#++(uint256 bundleId, bytes32 processId, uint256 collateralAmount)++` [.item-kind]#external# -Collateralizes a policy by locking a specified amount of collateral for a given bundle and process ID. - [.contract-item] [[RiskpoolService-processPremium-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++processPremium++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# -Processes a premium payment for a specific bundle. - [.contract-item] [[RiskpoolService-processPayout-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# -Processes a payout for a specific bundle. - [.contract-item] [[RiskpoolService-releasePolicy-uint256-bytes32-]] ==== `[.contract-item-name]#++releasePolicy++#++(uint256 bundleId, bytes32 processId) → uint256 collateralAmount++` [.item-kind]#external# -Releases a policy for a given bundle and process ID. - [.contract-item] [[RiskpoolService-setMaximumNumberOfActiveBundles-uint256-uint256-]] ==== `[.contract-item-name]#++setMaximumNumberOfActiveBundles++#++(uint256 riskpoolId, uint256 maxNumberOfActiveBundles)++` [.item-kind]#external# -Sets the maximum number of active bundles for a given riskpool. - diff --git a/docs/modules/api/pages/shared.adoc b/docs/modules/api/pages/shared.adoc index 2b07069d..cf8510b5 100644 --- a/docs/modules/api/pages/shared.adoc +++ b/docs/modules/api/pages/shared.adoc @@ -92,32 +92,22 @@ import "@etherisc/gif-contracts/contracts/shared/CoreController.sol"; [[CoreController-constructor--]] ==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# -Constructor function that disables initializers. - [.contract-item] [[CoreController-initialize-address-]] ==== `[.contract-item-name]#++initialize++#++(address registry)++` [.item-kind]#public# -Initializes the contract with the provided registry address. - [.contract-item] [[CoreController-_getName--]] ==== `[.contract-item-name]#++_getName++#++() → bytes32++` [.item-kind]#internal# -Returns the name of the contract. - [.contract-item] [[CoreController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# -This function is called after the contract is initialized and can be used to perform additional setup. - [.contract-item] [[CoreController-_getContractAddress-bytes32-]] ==== `[.contract-item-name]#++_getContractAddress++#++(bytes32 contractName) → address contractAddress++` [.item-kind]#internal# -Returns the address of a registered contract by its name. - :onlyAdmin: pass:normal[xref:#CoreProxy-onlyAdmin--[`++onlyAdmin++`]] :constructor: pass:normal[xref:#CoreProxy-constructor-address-bytes-[`++constructor++`]] :implementation: pass:normal[xref:#CoreProxy-implementation--[`++implementation++`]] @@ -203,20 +193,14 @@ import "@etherisc/gif-contracts/contracts/shared/CoreProxy.sol"; [[CoreProxy-constructor-address-bytes-]] ==== `[.contract-item-name]#++constructor++#++(address _controller, bytes encoded_initializer)++` [.item-kind]#public# -Constructor function that creates a new instance of the contract. - [.contract-item] [[CoreProxy-implementation--]] ==== `[.contract-item-name]#++implementation++#++() → address++` [.item-kind]#external# -Returns the address of the current implementation contract. - [.contract-item] [[CoreProxy-upgradeToAndCall-address-bytes-]] ==== `[.contract-item-name]#++upgradeToAndCall++#++(address newImplementation, bytes data)++` [.item-kind]#external# -Upgrades the contract to a new implementation and forwards a function call to it. - :LogTransferHelperInputValidation1Failed: pass:normal[xref:#TransferHelper-LogTransferHelperInputValidation1Failed-bool-address-address-[`++LogTransferHelperInputValidation1Failed++`]] :LogTransferHelperInputValidation2Failed: pass:normal[xref:#TransferHelper-LogTransferHelperInputValidation2Failed-uint256-uint256-[`++LogTransferHelperInputValidation2Failed++`]] :LogTransferHelperCallFailed: pass:normal[xref:#TransferHelper-LogTransferHelperCallFailed-bool-uint256-bytes-[`++LogTransferHelperCallFailed++`]] @@ -251,8 +235,6 @@ import "@etherisc/gif-contracts/contracts/shared/TransferHelper.sol"; [[TransferHelper-unifiedTransferFrom-contract-IERC20-address-address-uint256-]] ==== `[.contract-item-name]#++unifiedTransferFrom++#++(contract IERC20 token, address from, address to, uint256 value) → bool success++` [.item-kind]#internal# -Executes a transferFrom function call on an ERC20 token contract, after performing input validation. - [.contract-item] [[TransferHelper-LogTransferHelperInputValidation1Failed-bool-address-address-]] ==== `[.contract-item-name]#++LogTransferHelperInputValidation1Failed++#++(bool tokenIsContract, address from, address to)++` [.item-kind]#event# @@ -323,23 +305,15 @@ import "@etherisc/gif-contracts/contracts/shared/WithRegistry.sol"; [[WithRegistry-constructor-address-]] ==== `[.contract-item-name]#++constructor++#++(address _registry)++` [.item-kind]#public# -Constructor function that sets the address of the registry contract. - [.contract-item] [[WithRegistry-getContractFromRegistry-bytes32-]] ==== `[.contract-item-name]#++getContractFromRegistry++#++(bytes32 _contractName) → address _addr++` [.item-kind]#public# -Returns the address of a contract registered in the registry by its name. - [.contract-item] [[WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32-]] ==== `[.contract-item-name]#++getContractInReleaseFromRegistry++#++(bytes32 _release, bytes32 _contractName) → address _addr++` [.item-kind]#internal# -Returns the address of a contract with a given name in a specific release of the registry. - [.contract-item] [[WithRegistry-getReleaseFromRegistry--]] ==== `[.contract-item-name]#++getReleaseFromRegistry++#++() → bytes32 _release++` [.item-kind]#internal# -Returns the current release identifier from the registry. - diff --git a/docs/modules/api/pages/test.adoc b/docs/modules/api/pages/test.adoc index 932f3cbd..f8f12efb 100644 --- a/docs/modules/api/pages/test.adoc +++ b/docs/modules/api/pages/test.adoc @@ -172,8 +172,6 @@ import "@etherisc/gif-contracts/contracts/test/TestCoin.sol"; [[TestCoin-constructor--]] ==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# -Constructor function that initializes the ERC20 token with a given name, symbol, and initial supply. - :NAME: pass:normal[xref:#TestCoinAlternativeImplementation-NAME-string[`++NAME++`]] :SYMBOL: pass:normal[xref:#TestCoinAlternativeImplementation-SYMBOL-string[`++SYMBOL++`]] :INITIAL_SUPPLY: pass:normal[xref:#TestCoinAlternativeImplementation-INITIAL_SUPPLY-uint256[`++INITIAL_SUPPLY++`]] @@ -244,14 +242,10 @@ import "@etherisc/gif-contracts/contracts/test/TestCoinAlternativeImplementation [[TestCoinAlternativeImplementation-constructor--]] ==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# -Constructor function that creates a new ERC20 token with the given name and symbol, and mints the initial supply to the sender. - [.contract-item] [[TestCoinAlternativeImplementation-transferFrom-address-address-uint256-]] ==== `[.contract-item-name]#++transferFrom++#++(address _from, address _to, uint256 _value) → bool++` [.item-kind]#public# -Transfer tokens from one address to another. - :FAKE_STATE: pass:normal[xref:#TestCompromisedProduct-FAKE_STATE-enum-IComponent-ComponentState[`++FAKE_STATE++`]] :POLICY_FLOW: pass:normal[xref:#TestCompromisedProduct-POLICY_FLOW-bytes32[`++POLICY_FLOW++`]] :onlyPolicyHolder: pass:normal[xref:#TestCompromisedProduct-onlyPolicyHolder-bytes32-[`++onlyPolicyHolder++`]] @@ -378,178 +372,118 @@ import "@etherisc/gif-contracts/contracts/test/TestCompromisedProduct.sol"; [[TestCompromisedProduct-constructor-bytes32-address-uint256-uint256-address-]] ==== `[.contract-item-name]#++constructor++#++(bytes32 fakeProductName, address tokenAddress, uint256 fakeComponentId, uint256 fakeRiskpoolId, address registryAddress)++` [.item-kind]#public# -Constructor function to initialize the component with the given parameters. - [.contract-item] [[TestCompromisedProduct-applyForPolicy-uint256-uint256-bytes-bytes-]] ==== `[.contract-item-name]#++applyForPolicy++#++(uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# -Allows a policy holder to apply for a new policy by submitting an application with the specified premium, sum insured, metaData, and applicationData. - [.contract-item] [[TestCompromisedProduct-collectPremium-bytes32-]] ==== `[.contract-item-name]#++collectPremium++#++(bytes32 policyId)++` [.item-kind]#external# -Collects the premium for a given policy. - [.contract-item] [[TestCompromisedProduct-submitClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++submitClaim++#++(bytes32 policyId, uint256 claimAmount)++` [.item-kind]#external# -Allows a policy holder to submit a claim for the specified policy. - [.contract-item] [[TestCompromisedProduct-getToken--]] ==== `[.contract-item-name]#++getToken++#++() → address token++` [.item-kind]#external# -Returns the address of the token used by this contract. - [.contract-item] [[TestCompromisedProduct-getPolicyFlow--]] ==== `[.contract-item-name]#++getPolicyFlow++#++() → address policyFlow++` [.item-kind]#external# -Returns the address of the policy flow contract. - [.contract-item] [[TestCompromisedProduct-getRiskpoolId--]] ==== `[.contract-item-name]#++getRiskpoolId++#++() → uint256 riskpoolId++` [.item-kind]#external# -Returns the ID of the risk pool. - [.contract-item] [[TestCompromisedProduct-getApplicationDataStructure--]] ==== `[.contract-item-name]#++getApplicationDataStructure++#++() → string dataStructure++` [.item-kind]#external# -Returns the data structure of the application. - [.contract-item] [[TestCompromisedProduct-getClaimDataStructure--]] ==== `[.contract-item-name]#++getClaimDataStructure++#++() → string dataStructure++` [.item-kind]#external# -Returns the data structure of the claim data. - [.contract-item] [[TestCompromisedProduct-getPayoutDataStructure--]] ==== `[.contract-item-name]#++getPayoutDataStructure++#++() → string dataStructure++` [.item-kind]#external# -Returns the data structure of the payout information. - [.contract-item] [[TestCompromisedProduct-riskPoolCapacityCallback-uint256-]] ==== `[.contract-item-name]#++riskPoolCapacityCallback++#++(uint256 capacity)++` [.item-kind]#external# -Callback function to update the risk pool's capacity. - [.contract-item] [[TestCompromisedProduct-setId-uint256-]] ==== `[.contract-item-name]#++setId++#++(uint256 id)++` [.item-kind]#external# -Sets the ID of the contract. - [.contract-item] [[TestCompromisedProduct-getName--]] ==== `[.contract-item-name]#++getName++#++() → bytes32++` [.item-kind]#external# -Returns the name of the component. - [.contract-item] [[TestCompromisedProduct-getId--]] ==== `[.contract-item-name]#++getId++#++() → uint256++` [.item-kind]#external# -Returns the ID of the component. - [.contract-item] [[TestCompromisedProduct-getType--]] ==== `[.contract-item-name]#++getType++#++() → enum IComponent.ComponentType++` [.item-kind]#external# -Returns the ComponentType of the product. - [.contract-item] [[TestCompromisedProduct-getState--]] ==== `[.contract-item-name]#++getState++#++() → enum IComponent.ComponentState++` [.item-kind]#external# -Returns the current state of the component. - [.contract-item] [[TestCompromisedProduct-getOwner--]] ==== `[.contract-item-name]#++getOwner++#++() → address++` [.item-kind]#external# -Returns the address of the contract owner. - [.contract-item] [[TestCompromisedProduct-getRegistry--]] ==== `[.contract-item-name]#++getRegistry++#++() → contract IRegistry++` [.item-kind]#external# -Returns the current registry contract instance. - [.contract-item] [[TestCompromisedProduct-isProduct--]] ==== `[.contract-item-name]#++isProduct++#++() → bool++` [.item-kind]#public# -Checks if the contract is a product. - [.contract-item] [[TestCompromisedProduct-isOracle--]] ==== `[.contract-item-name]#++isOracle++#++() → bool++` [.item-kind]#public# -Returns a boolean value indicating whether the contract is an oracle. - [.contract-item] [[TestCompromisedProduct-isRiskpool--]] ==== `[.contract-item-name]#++isRiskpool++#++() → bool++` [.item-kind]#public# -Check if the contract is a risk pool. - [.contract-item] [[TestCompromisedProduct-proposalCallback--]] ==== `[.contract-item-name]#++proposalCallback++#++()++` [.item-kind]#external# -This function is a callback function for proposals. - -Returns: None - [.contract-item] [[TestCompromisedProduct-approvalCallback--]] ==== `[.contract-item-name]#++approvalCallback++#++()++` [.item-kind]#external# -This function is a callback function that is called after an approval has been made. - [.contract-item] [[TestCompromisedProduct-declineCallback--]] ==== `[.contract-item-name]#++declineCallback++#++()++` [.item-kind]#external# -This function is called when a user declines a transaction in the dApp. - [.contract-item] [[TestCompromisedProduct-suspendCallback--]] ==== `[.contract-item-name]#++suspendCallback++#++()++` [.item-kind]#external# -Suspends the callback function. - [.contract-item] [[TestCompromisedProduct-resumeCallback--]] ==== `[.contract-item-name]#++resumeCallback++#++()++` [.item-kind]#external# -This function is a callback function that is triggered when a paused contract is resumed. - [.contract-item] [[TestCompromisedProduct-pauseCallback--]] ==== `[.contract-item-name]#++pauseCallback++#++()++` [.item-kind]#external# -Callback function that is called when the contract is paused. This function does not take any parameters. - [.contract-item] [[TestCompromisedProduct-unpauseCallback--]] ==== `[.contract-item-name]#++unpauseCallback++#++()++` [.item-kind]#external# -This function is called by the owner of the contract to unpause the contract after it has been paused. - [.contract-item] [[TestCompromisedProduct-archiveCallback--]] ==== `[.contract-item-name]#++archiveCallback++#++()++` [.item-kind]#external# -This function is a callback function that is executed when a contract is archived. - :constructor: pass:normal[xref:#TestOracle-constructor-bytes32-address-[`++constructor++`]] :request: pass:normal[xref:#TestOracle-request-uint256-bytes-[`++request++`]] :cancel: pass:normal[xref:#TestOracle-cancel-uint256-[`++cancel++`]] @@ -673,32 +607,22 @@ import "@etherisc/gif-contracts/contracts/test/TestOracle.sol"; [[TestOracle-constructor-bytes32-address-]] ==== `[.contract-item-name]#++constructor++#++(bytes32 oracleName, address registry)++` [.item-kind]#public# -Constructor function for creating an Oracle contract. - [.contract-item] [[TestOracle-request-uint256-bytes-]] ==== `[.contract-item-name]#++request++#++(uint256 requestId, bytes input)++` [.item-kind]#external# -Requests data from the oracle contract. - [.contract-item] [[TestOracle-cancel-uint256-]] ==== `[.contract-item-name]#++cancel++#++(uint256 requestId)++` [.item-kind]#external# -Cancels a Chainlink request. - [.contract-item] [[TestOracle-respond-uint256-bool-]] ==== `[.contract-item-name]#++respond++#++(uint256 requestId, bool isLossEvent)++` [.item-kind]#public# -Responds to an oracle request with a boolean value indicating whether a loss event occurred. - [.contract-item] [[TestOracle-_oracleCalculation-uint256-]] ==== `[.contract-item-name]#++_oracleCalculation++#++(uint256 counter) → bool isLossEvent++` [.item-kind]#internal# -Performs an oracle calculation to determine if a loss event occurred. - :POLICY_FLOW: pass:normal[xref:#TestProduct-POLICY_FLOW-bytes32[`++POLICY_FLOW++`]] :ORACLE_CALLBACK_METHOD_NAME: pass:normal[xref:#TestProduct-ORACLE_CALLBACK_METHOD_NAME-string[`++ORACLE_CALLBACK_METHOD_NAME++`]] :LogTestProductFundingReceived: pass:normal[xref:#TestProduct-LogTestProductFundingReceived-address-uint256-[`++LogTestProductFundingReceived++`]] @@ -900,166 +824,110 @@ import "@etherisc/gif-contracts/contracts/test/TestProduct.sol"; [[TestProduct-constructor-bytes32-address-address-uint256-uint256-address-]] ==== `[.contract-item-name]#++constructor++#++(bytes32 productName, address tokenAddress, address capitalOwner, uint256 oracleId, uint256 riskpoolId, address registryAddress)++` [.item-kind]#public# -Constructor function for creating a new instance of the Product contract. - [.contract-item] [[TestProduct-applyForPolicy-uint256-uint256-bytes-bytes-]] ==== `[.contract-item-name]#++applyForPolicy++#++(uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# -Allows a policy holder to apply for a new insurance policy by submitting an application with the specified premium, sum insured, metadata and application data. - [.contract-item] [[TestProduct-applyForPolicy-address-payable-uint256-uint256-bytes-bytes-]] ==== `[.contract-item-name]#++applyForPolicy++#++(address payable policyHolder, uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# -Creates a new insurance application and underwrites it if possible. - [.contract-item] [[TestProduct-newAppliation-uint256-uint256-bytes-bytes-]] ==== `[.contract-item-name]#++newAppliation++#++(uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# -Creates a new insurance application. - [.contract-item] [[TestProduct-revoke-bytes32-]] ==== `[.contract-item-name]#++revoke++#++(bytes32 processId)++` [.item-kind]#external# -Revokes a process identified by its processId. Only the policy holder can revoke a process. - [.contract-item] [[TestProduct-decline-bytes32-]] ==== `[.contract-item-name]#++decline++#++(bytes32 processId)++` [.item-kind]#external# -Declines a specific process by its ID. - [.contract-item] [[TestProduct-underwrite-bytes32-]] ==== `[.contract-item-name]#++underwrite++#++(bytes32 processId)++` [.item-kind]#external# -Underwrites a policy for a given process ID. - [.contract-item] [[TestProduct-collectPremium-bytes32-]] ==== `[.contract-item-name]#++collectPremium++#++(bytes32 policyId) → bool success, uint256 fee, uint256 netPremium++` [.item-kind]#external# -Collects the premium for a specific policy. - [.contract-item] [[TestProduct-collectPremium-bytes32-uint256-]] ==== `[.contract-item-name]#++collectPremium++#++(bytes32 policyId, uint256 amount) → bool success, uint256 fee, uint256 netPremium++` [.item-kind]#external# -Collects the premium for a specific policy. - [.contract-item] [[TestProduct-adjustPremiumSumInsured-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++adjustPremiumSumInsured++#++(bytes32 processId, uint256 expectedPremiumAmount, uint256 sumInsuredAmount)++` [.item-kind]#external# -Adjusts the premium and sum insured amounts for a given process ID. - [.contract-item] [[TestProduct-expire-bytes32-]] ==== `[.contract-item-name]#++expire++#++(bytes32 policyId)++` [.item-kind]#external# -Expire a policy by its ID. - [.contract-item] [[TestProduct-close-bytes32-]] ==== `[.contract-item-name]#++close++#++(bytes32 policyId)++` [.item-kind]#external# -Closes a policy with the given ID. - [.contract-item] [[TestProduct-submitClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++submitClaim++#++(bytes32 policyId, uint256 claimAmount) → uint256 claimId++` [.item-kind]#external# -Allows a policy holder to submit a claim for a specific policy. - [.contract-item] [[TestProduct-submitClaimNoOracle-bytes32-uint256-]] ==== `[.contract-item-name]#++submitClaimNoOracle++#++(bytes32 policyId, uint256 claimAmount) → uint256 claimId++` [.item-kind]#external# -Allows a policy holder to submit a claim without the need for an oracle. - [.contract-item] [[TestProduct-submitClaimWithDeferredResponse-bytes32-uint256-]] ==== `[.contract-item-name]#++submitClaimWithDeferredResponse++#++(bytes32 policyId, uint256 claimAmount) → uint256 claimId, uint256 requestId++` [.item-kind]#external# -Submits a claim for a specific policy with a deferred response from the oracle. -Increases the claims counter and creates a new claim application. -Then, requests a response from the oracle via an external call with encoded query data. - [.contract-item] [[TestProduct-confirmClaim-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++confirmClaim++#++(bytes32 policyId, uint256 claimId, uint256 confirmedAmount)++` [.item-kind]#external# -Confirms the amount to be paid out for a specific claim. - [.contract-item] [[TestProduct-declineClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++declineClaim++#++(bytes32 policyId, uint256 claimId)++` [.item-kind]#external# -Allows the owner of the contract to decline a claim. - [.contract-item] [[TestProduct-closeClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++closeClaim++#++(bytes32 policyId, uint256 claimId)++` [.item-kind]#external# -Closes a specific claim for a given policy. - [.contract-item] [[TestProduct-createPayout-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++createPayout++#++(bytes32 policyId, uint256 claimId, uint256 payoutAmount) → uint256 payoutId++` [.item-kind]#external# -Creates a new payout for a specific policy and claim. - [.contract-item] [[TestProduct-newPayout-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++newPayout++#++(bytes32 policyId, uint256 claimId, uint256 payoutAmount) → uint256 payoutId++` [.item-kind]#external# -Creates a new payout for a claim under a policy. - [.contract-item] [[TestProduct-processPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(bytes32 policyId, uint256 payoutId)++` [.item-kind]#external# -Processes a payout for a specific policy. - [.contract-item] [[TestProduct-oracleCallback-uint256-bytes32-bytes-]] ==== `[.contract-item-name]#++oracleCallback++#++(uint256 requestId, bytes32 policyId, bytes responseData)++` [.item-kind]#external# -This function is called by the oracle to provide the response data for a specified policy ID and request ID. - [.contract-item] [[TestProduct-getClaimId-bytes32-]] ==== `[.contract-item-name]#++getClaimId++#++(bytes32 policyId) → uint256++` [.item-kind]#external# -Returns the claim ID associated with a given policy ID. - [.contract-item] [[TestProduct-getPayoutId-bytes32-]] ==== `[.contract-item-name]#++getPayoutId++#++(bytes32 policyId) → uint256++` [.item-kind]#external# -Returns the payout ID associated with a given policy ID. - [.contract-item] [[TestProduct-applications--]] ==== `[.contract-item-name]#++applications++#++() → uint256++` [.item-kind]#external# -Returns the number of applications that have been submitted. - [.contract-item] [[TestProduct-policies--]] ==== `[.contract-item-name]#++policies++#++() → uint256++` [.item-kind]#external# -Returns the number of policies in the _policies array. - [.contract-item] [[TestProduct-claims--]] ==== `[.contract-item-name]#++claims++#++() → uint256++` [.item-kind]#external# -Returns the number of claims made by users. - [.contract-item] [[TestProduct-LogTestProductFundingReceived-address-uint256-]] ==== `[.contract-item-name]#++LogTestProductFundingReceived++#++(address sender, uint256 amount)++` [.item-kind]#event# @@ -1095,14 +963,10 @@ import "@etherisc/gif-contracts/contracts/test/TestRegistryCompromisedController [[TestRegistryCompromisedController-getContract-bytes32-]] ==== `[.contract-item-name]#++getContract++#++(bytes32 contractName) → address moduleAddress++` [.item-kind]#external# -Returns the address of a registered contract. - [.contract-item] [[TestRegistryCompromisedController-upgradeToV2-address-address-]] ==== `[.contract-item-name]#++upgradeToV2++#++(address compromisedPolicyModuleAddress, address originalQueryModuleAddress)++` [.item-kind]#public# -Upgrades the Policy Manager contract to version 2. - :message: pass:normal[xref:#TestRegistryControllerUpdated-message-string[`++message++`]] :upgradeV2: pass:normal[xref:#TestRegistryControllerUpdated-upgradeV2-bool[`++upgradeV2++`]] :setMessage: pass:normal[xref:#TestRegistryControllerUpdated-setMessage-string-[`++setMessage++`]] @@ -1185,20 +1049,14 @@ import "@etherisc/gif-contracts/contracts/test/TestRegistryControllerUpdated.sol [[TestRegistryControllerUpdated-setMessage-string-]] ==== `[.contract-item-name]#++setMessage++#++(string _message)++` [.item-kind]#public# -Sets the message variable to a given string. - [.contract-item] [[TestRegistryControllerUpdated-getMessage--]] ==== `[.contract-item-name]#++getMessage++#++() → string++` [.item-kind]#public# -Returns the current message stored in the contract. - [.contract-item] [[TestRegistryControllerUpdated-upgradeToV2-string-]] ==== `[.contract-item-name]#++upgradeToV2++#++(string _message)++` [.item-kind]#public# -Upgrades the contract to version 2. - :SUM_OF_SUM_INSURED_CAP: pass:normal[xref:#TestRiskpool-SUM_OF_SUM_INSURED_CAP-uint256[`++SUM_OF_SUM_INSURED_CAP++`]] :constructor: pass:normal[xref:#TestRiskpool-constructor-bytes32-uint256-address-address-address-[`++constructor++`]] :bundleMatchesApplication: pass:normal[xref:#TestRiskpool-bundleMatchesApplication-struct-IBundle-Bundle-struct-IPolicy-Application-[`++bundleMatchesApplication++`]] @@ -1361,14 +1219,10 @@ import "@etherisc/gif-contracts/contracts/test/TestRiskpool.sol"; [[TestRiskpool-constructor-bytes32-uint256-address-address-address-]] ==== `[.contract-item-name]#++constructor++#++(bytes32 name, uint256 collateralization, address erc20Token, address wallet, address registry)++` [.item-kind]#public# -Constructor function for the Riskpool contract. - [.contract-item] [[TestRiskpool-bundleMatchesApplication-struct-IBundle-Bundle-struct-IPolicy-Application-]] ==== `[.contract-item-name]#++bundleMatchesApplication++#++(struct IBundle.Bundle bundle, struct IPolicy.Application application) → bool isMatching++` [.item-kind]#public# -This function checks if a given bundle matches a given application. - :LogTransferHelperInputValidation1Failed: pass:normal[xref:#TestTransferFrom-LogTransferHelperInputValidation1Failed-bool-address-address-[`++LogTransferHelperInputValidation1Failed++`]] :LogTransferHelperInputValidation2Failed: pass:normal[xref:#TestTransferFrom-LogTransferHelperInputValidation2Failed-uint256-uint256-[`++LogTransferHelperInputValidation2Failed++`]] :LogTransferHelperCallFailed: pass:normal[xref:#TestTransferFrom-LogTransferHelperCallFailed-bool-uint256-bytes-[`++LogTransferHelperCallFailed++`]] @@ -1403,8 +1257,6 @@ import "@etherisc/gif-contracts/contracts/test/TestTransferFrom.sol"; [[TestTransferFrom-unifiedTransferFrom-contract-IERC20-address-address-uint256-]] ==== `[.contract-item-name]#++unifiedTransferFrom++#++(contract IERC20 token, address from, address to, uint256 amount) → bool++` [.item-kind]#external# -Transfers tokens from a specified address to another specified address using the TransferHelper library. - [.contract-item] [[TestTransferFrom-LogTransferHelperInputValidation1Failed-bool-address-address-]] ==== `[.contract-item-name]#++LogTransferHelperInputValidation1Failed++#++(bool tokenIsContract, address from, address to)++` [.item-kind]#event# diff --git a/docs/modules/api/pages/tokens.adoc b/docs/modules/api/pages/tokens.adoc index f9a54584..60b0f226 100644 --- a/docs/modules/api/pages/tokens.adoc +++ b/docs/modules/api/pages/tokens.adoc @@ -155,56 +155,38 @@ import "@etherisc/gif-contracts/contracts/tokens/BundleToken.sol"; [[BundleToken-constructor--]] ==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# -Constructor function for the ERC721 token contract. It sets the name and symbol of the token and initializes the Ownable contract. - [.contract-item] [[BundleToken-setBundleModule-address-]] ==== `[.contract-item-name]#++setBundleModule++#++(address bundleModule)++` [.item-kind]#external# -Sets the bundle module address. - [.contract-item] [[BundleToken-mint-uint256-address-]] ==== `[.contract-item-name]#++mint++#++(uint256 bundleId, address to) → uint256 tokenId++` [.item-kind]#external# -Mints a new bundle token and assigns ownership to the specified address. - [.contract-item] [[BundleToken-burn-uint256-]] ==== `[.contract-item-name]#++burn++#++(uint256 tokenId)++` [.item-kind]#external# -Burns a bundle token. - [.contract-item] [[BundleToken-burned-uint256-]] ==== `[.contract-item-name]#++burned++#++(uint256 tokenId) → bool isBurned++` [.item-kind]#external# -Checks if a token has been burned. - [.contract-item] [[BundleToken-getBundleId-uint256-]] ==== `[.contract-item-name]#++getBundleId++#++(uint256 tokenId) → uint256++` [.item-kind]#external# -Returns the bundle ID associated with a given token ID. - [.contract-item] [[BundleToken-getBundleModuleAddress--]] ==== `[.contract-item-name]#++getBundleModuleAddress++#++() → address++` [.item-kind]#external# -Returns the address of the bundle module. - [.contract-item] [[BundleToken-exists-uint256-]] ==== `[.contract-item-name]#++exists++#++(uint256 tokenId) → bool++` [.item-kind]#external# -Checks if a given token ID exists. - [.contract-item] [[BundleToken-totalSupply--]] ==== `[.contract-item-name]#++totalSupply++#++() → uint256 tokenCount++` [.item-kind]#external# -Returns the total number of tokens in circulation. - :NAME: pass:normal[xref:#RiskpoolToken-NAME-string[`++NAME++`]] :SYMBOL: pass:normal[xref:#RiskpoolToken-SYMBOL-string[`++SYMBOL++`]] :constructor: pass:normal[xref:#RiskpoolToken-constructor--[`++constructor++`]] @@ -273,5 +255,3 @@ import "@etherisc/gif-contracts/contracts/tokens/RiskpoolToken.sol"; [[RiskpoolToken-constructor--]] ==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# -Constructor function that sets the name and symbol of the ERC20 token. - diff --git a/hardhat.config.js b/hardhat.config.js index 13011b17..4fadd05b 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -1,13 +1,11 @@ -// Minimum Hardhat config for solidity-docgen to work +const fs = require('fs'); +const path = require('path'); require('solidity-docgen'); -/** - * @type import('hardhat/config').HardhatUserConfig - */ module.exports = { solidity: { - version: "0.8.2", + version: '0.8.2', settings: { optimizer: { enabled: true, @@ -17,3 +15,4 @@ module.exports = { }, docgen: require('./docs/config'), }; + diff --git a/package-lock.json b/package-lock.json index 0b21498b..34022171 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,9 @@ "@openzeppelin/contracts": "4.7.3" }, "devDependencies": { - "solidity-docgen": "^0.6.0-beta.35" + "solidity-docgen": "^0.6.0-beta.35", + "ts-node": "^10.9.1", + "typescript": "^5.1.3" } }, "node_modules/@chainlink/contracts": { @@ -51,6 +53,18 @@ "case": "^1.6.3" } }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@etherisc/gif-interface": { "version": "2.0.0-rc.1-0", "resolved": "https://registry.npmjs.org/@etherisc/gif-interface/-/gif-interface-2.0.0-rc.1-0.tgz", @@ -812,6 +826,31 @@ "@ethersproject/strings": "^5.7.0" } }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@metamask/eth-sig-util": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", @@ -1642,6 +1681,30 @@ "node": ">=6" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, "node_modules/@types/bn.js": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", @@ -1729,6 +1792,27 @@ "node": ">=12" } }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", @@ -1836,6 +1920,12 @@ "node": ">= 8" } }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2310,6 +2400,12 @@ "sha.js": "^2.4.8" } }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -3469,6 +3565,12 @@ "yallist": "^3.0.2" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "node_modules/mcl-wasm": { "version": "0.7.9", "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", @@ -4542,6 +4644,58 @@ "node": ">=0.6" } }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -4583,6 +4737,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typescript": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", + "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", @@ -4646,6 +4813,12 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -4804,6 +4977,15 @@ "node": ">=10" } }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -4853,6 +5035,15 @@ "case": "^1.6.3" } }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, "@etherisc/gif-interface": { "version": "2.0.0-rc.1-0", "resolved": "https://registry.npmjs.org/@etherisc/gif-interface/-/gif-interface-2.0.0-rc.1-0.tgz", @@ -5302,6 +5493,28 @@ "@ethersproject/strings": "^5.7.0" } }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "@metamask/eth-sig-util": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", @@ -5973,6 +6186,30 @@ "tslib": "^1.9.3" } }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, "@types/bn.js": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", @@ -6054,6 +6291,18 @@ "queue-microtask": "^1.2.3" } }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, "adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", @@ -6134,6 +6383,12 @@ "picomatch": "^2.0.4" } }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -6520,6 +6775,12 @@ "sha.js": "^2.4.8" } }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -7403,6 +7664,12 @@ "yallist": "^3.0.2" } }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, "mcl-wasm": { "version": "0.7.9", "resolved": "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz", @@ -8217,6 +8484,35 @@ "dev": true, "peer": true }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + } + } + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -8252,6 +8548,12 @@ "dev": true, "peer": true }, + "typescript": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.3.tgz", + "integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==", + "dev": true + }, "uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", @@ -8297,6 +8599,12 @@ "dev": true, "peer": true }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -8416,6 +8724,12 @@ "is-plain-obj": "^2.1.0" } }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index f42cf771..8c7c67b5 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,8 @@ "@openzeppelin/contracts": "4.7.3" }, "devDependencies": { - "solidity-docgen": "^0.6.0-beta.35" + "solidity-docgen": "^0.6.0-beta.35", + "ts-node": "^10.9.1", + "typescript": "^5.1.3" } } From 094647c741b08951940d9ab447ae9865fa42dfb5 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Thu, 8 Jun 2023 16:02:31 +0000 Subject: [PATCH 12/29] Update list formatting --- contracts/modules/AccessController.sol | 100 ++--- contracts/modules/BundleController.sol | 295 ++++++++----- contracts/modules/ComponentController.sol | 263 ++++++----- contracts/modules/LicenseController.sol | 30 +- contracts/modules/PolicyController.sol | 410 ++++++++++------- contracts/modules/PoolController.sol | 347 +++++++++------ contracts/modules/QueryModule.sol | 101 ++--- contracts/modules/RegistryController.sol | 178 ++++---- contracts/modules/TreasuryModule.sol | 509 +++++++++++++--------- 9 files changed, 1314 insertions(+), 919 deletions(-) diff --git a/contracts/modules/AccessController.sol b/contracts/modules/AccessController.sol index b45c98e9..d70bcbfe 100644 --- a/contracts/modules/AccessController.sol +++ b/contracts/modules/AccessController.sol @@ -10,18 +10,21 @@ import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; /** * @dev The provided smart contract is called "AccessController" and is written in Solidity. It implements the "IAccess" interface and inherits from the "CoreController" contract and the "AccessControlEnumerable" contract. The contract provides functionalities for access control and role management. - * + * * Roles: + * * The contract defines three role identifiers as bytes32 constants: * 1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. * 2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. * 3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. - * + * * State Variables: + * * - `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. * - `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. - * + * * Functions: + * * - `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. * - `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. * - `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. @@ -36,30 +39,28 @@ import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; * - `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE. * - `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. * - `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. - * + * * Modifiers: + * * - `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. - * - * Overall, the contract provides a flexible access control mechanism by defining roles and - * allowing the assignment, revocation, and validation of roles by instance operators. + * + * Overall, the contract provides a flexible access control mechanism by defining roles and + * allowing the assignment, revocation, and validation of roles by instance operators. * It also sets a default admin role and manages the validity of roles through the `validRole` mapping. */ - -contract AccessController is - IAccess, - CoreController, - AccessControlEnumerable - { - +contract AccessController is IAccess, CoreController, AccessControlEnumerable { // 0xe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd - bytes32 public constant PRODUCT_OWNER_ROLE = keccak256("PRODUCT_OWNER_ROLE"); + bytes32 public constant PRODUCT_OWNER_ROLE = + keccak256("PRODUCT_OWNER_ROLE"); // 0xd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa2 - bytes32 public constant ORACLE_PROVIDER_ROLE = keccak256("ORACLE_PROVIDER_ROLE"); + bytes32 public constant ORACLE_PROVIDER_ROLE = + keccak256("ORACLE_PROVIDER_ROLE"); // 0x3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd - bytes32 public constant RISKPOOL_KEEPER_ROLE = keccak256("RISKPOOL_KEEPER_ROLE"); + bytes32 public constant RISKPOOL_KEEPER_ROLE = + keccak256("RISKPOOL_KEEPER_ROLE"); mapping(bytes32 => bool) public validRole; @@ -70,15 +71,15 @@ contract AccessController is _populateValidRoles(); } - function _getName() internal override pure returns(bytes32) { return "Access"; } + function _getName() internal pure override returns (bytes32) { + return "Access"; + } // IMPORTANT check the setting of the default admin role // after the deployment of a GIF instance. // this method is called in the deployment of - // the instance operator proxy/controller - function setDefaultAdminRole(address defaultAdmin) - external - { + // the instance operator proxy/controller + function setDefaultAdminRole(address defaultAdmin) external { require(!_defaultAdminSet, "ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET"); _defaultAdminSet = true; @@ -86,68 +87,59 @@ contract AccessController is } //--- manage role ownership ---------------------------------------------// - function grantRole(bytes32 role, address principal) - public - override(IAccessControl, IAccess) - onlyInstanceOperator - { + function grantRole( + bytes32 role, + address principal + ) public override(IAccessControl, IAccess) onlyInstanceOperator { require(validRole[role], "ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID"); AccessControl.grantRole(role, principal); } - function revokeRole(bytes32 role, address principal) - public - override(IAccessControl, IAccess) - onlyInstanceOperator - { + function revokeRole( + bytes32 role, + address principal + ) public override(IAccessControl, IAccess) onlyInstanceOperator { AccessControl.revokeRole(role, principal); } - function renounceRole(bytes32 role, address principal) - public - override(IAccessControl, IAccess) - { + function renounceRole( + bytes32 role, + address principal + ) public override(IAccessControl, IAccess) { AccessControl.renounceRole(role, principal); } - + //--- manage roles ------------------------------------------------------// - function addRole(bytes32 role) - public override - onlyInstanceOperator - { + function addRole(bytes32 role) public override onlyInstanceOperator { require(!validRole[role], "ERROR:ACL-003:ROLE_EXISTING_AND_VALID"); validRole[role] = true; } - function invalidateRole(bytes32 role) - public override - onlyInstanceOperator - { + function invalidateRole(bytes32 role) public override onlyInstanceOperator { require(validRole[role], "ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID"); validRole[role] = false; } - function hasRole(bytes32 role, address principal) - public view - override(IAccessControl, IAccess) - returns(bool) - { + function hasRole( + bytes32 role, + address principal + ) public view override(IAccessControl, IAccess) returns (bool) { return super.hasRole(role, principal); } - function getDefaultAdminRole() public pure override returns(bytes32) { + function getDefaultAdminRole() public pure override returns (bytes32) { return DEFAULT_ADMIN_ROLE; } - function getProductOwnerRole() public pure override returns(bytes32) { + function getProductOwnerRole() public pure override returns (bytes32) { return PRODUCT_OWNER_ROLE; } - function getOracleProviderRole() public pure override returns(bytes32) { + function getOracleProviderRole() public pure override returns (bytes32) { return ORACLE_PROVIDER_ROLE; } - function getRiskpoolKeeperRole() public pure override returns(bytes32) { + function getRiskpoolKeeperRole() public pure override returns (bytes32) { return RISKPOOL_KEEPER_ROLE; } diff --git a/contracts/modules/BundleController.sol b/contracts/modules/BundleController.sol index ab00c209..86062849 100644 --- a/contracts/modules/BundleController.sol +++ b/contracts/modules/BundleController.sol @@ -11,14 +11,15 @@ import "./PoolController.sol"; /** * @dev The smart contract is used to manage bundles, which are collections of policies. - * + * * - The contract imports other Solidity contracts such as `PolicyController.sol`, `CoreController.sol`, and `BundleToken.sol`. * - The contract implements the `IBundle` interface and extends the `CoreController` contract. * - It defines several mappings to store information about bundles, active policies, locked capital per policy, and the number of unburt bundles for each risk pool. * - There is a private variable `_bundleCount` to keep track of the number of bundles created. * - The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`. - * - * Functions: + * + * Functions: + * * - `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment. * - `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token. * - `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance. @@ -31,25 +32,22 @@ import "./PoolController.sol"; * - `processPremium()`: Processes the premium payment for a given bundle and updates its balance. * - `processPayout()`: Processes a payout for a policy from a bundle. * - `releasePolicy()`: Releases a policy and updates the bundle's capital. - * + * * The contract includes various modifiers and event emitters to enforce access control and emit relevant events. * Overall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle. */ - -contract BundleController is - IBundle, - CoreController -{ - +contract BundleController is IBundle, CoreController { PolicyController private _policy; - BundleToken private _token; + BundleToken private _token; mapping(uint256 /* bundleId */ => Bundle /* Bundle */) private _bundles; - mapping(uint256 /* bundleId */ => uint256 /* activePolicyCount */) private _activePolicies; - mapping(uint256 /* bundleId */ => mapping(bytes32 /* processId */ => uint256 /* lockedCapitalAmount */)) private _valueLockedPerPolicy; - mapping(uint256 /* riskpoolId */ => uint256 /* numberOfUnburntBundles */) private _unburntBundlesForRiskpoolId; - + mapping(uint256 /* bundleId */ => uint256 /* activePolicyCount */) + private _activePolicies; + mapping(uint256 /* bundleId */ => mapping(bytes32 /* processId */ => uint256 /* lockedCapitalAmount */)) + private _valueLockedPerPolicy; + mapping(uint256 /* riskpoolId */ => uint256 /* numberOfUnburntBundles */) + private _unburntBundlesForRiskpoolId; uint256 private _bundleCount; @@ -65,8 +63,9 @@ contract BundleController is Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST"); require( - bundle.state != IBundle.BundleState.Burned - && bundle.state != IBundle.BundleState.Closed, "ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED" + bundle.state != IBundle.BundleState.Burned && + bundle.state != IBundle.BundleState.Closed, + "ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED" ); _; } @@ -76,11 +75,12 @@ contract BundleController is _token = BundleToken(_getContractAddress("BundleToken")); } - function create(address owner_, uint riskpoolId_, bytes calldata filter_, uint256 amount_) - external override - onlyRiskpoolService - returns(uint256 bundleId) - { + function create( + address owner_, + uint riskpoolId_, + bytes calldata filter_, + uint256 amount_ + ) external override onlyRiskpoolService returns (uint256 bundleId) { // will start with bundleId 1. // this helps in maps where a bundleId equals a non-existing entry bundleId = _bundleCount + 1; @@ -104,77 +104,91 @@ contract BundleController is _bundleCount++; _unburntBundlesForRiskpoolId[riskpoolId_]++; - emit LogBundleCreated(bundle.id, riskpoolId_, owner_, bundle.state, bundle.capital); + emit LogBundleCreated( + bundle.id, + riskpoolId_, + owner_, + bundle.state, + bundle.capital + ); } - - function fund(uint256 bundleId, uint256 amount) - external override - onlyRiskpoolService - { + function fund( + uint256 bundleId, + uint256 amount + ) external override onlyRiskpoolService { Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST"); - require(bundle.state != IBundle.BundleState.Closed, "ERROR:BUC-012:BUNDLE_CLOSED"); + require( + bundle.state != IBundle.BundleState.Closed, + "ERROR:BUC-012:BUNDLE_CLOSED" + ); bundle.capital += amount; bundle.balance += amount; bundle.updatedAt = block.timestamp; uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundleCapitalProvided(bundleId, _msgSender(), amount, capacityAmount); + emit LogBundleCapitalProvided( + bundleId, + _msgSender(), + amount, + capacityAmount + ); } - - function defund(uint256 bundleId, uint256 amount) - external override - onlyRiskpoolService - { + function defund( + uint256 bundleId, + uint256 amount + ) external override onlyRiskpoolService { Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST"); require( - bundle.capital >= bundle.lockedCapital + amount - || (bundle.lockedCapital == 0 && bundle.balance >= amount), + bundle.capital >= bundle.lockedCapital + amount || + (bundle.lockedCapital == 0 && bundle.balance >= amount), "ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW" ); - if (bundle.capital >= amount) { bundle.capital -= amount; } - else { bundle.capital = 0; } + if (bundle.capital >= amount) { + bundle.capital -= amount; + } else { + bundle.capital = 0; + } bundle.balance -= amount; bundle.updatedAt = block.timestamp; uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundleCapitalWithdrawn(bundleId, _msgSender(), amount, capacityAmount); + emit LogBundleCapitalWithdrawn( + bundleId, + _msgSender(), + amount, + capacityAmount + ); } - function lock(uint256 bundleId) - external override - onlyRiskpoolService - { + function lock(uint256 bundleId) external override onlyRiskpoolService { _changeState(bundleId, BundleState.Locked); } - function unlock(uint256 bundleId) - external override - onlyRiskpoolService - { + function unlock(uint256 bundleId) external override onlyRiskpoolService { _changeState(bundleId, BundleState.Active); } - function close(uint256 bundleId) - external override - onlyRiskpoolService - { - require(_activePolicies[bundleId] == 0, "ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES"); + function close(uint256 bundleId) external override onlyRiskpoolService { + require( + _activePolicies[bundleId] == 0, + "ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES" + ); _changeState(bundleId, BundleState.Closed); } - function burn(uint256 bundleId) - external override - onlyRiskpoolService - { + function burn(uint256 bundleId) external override onlyRiskpoolService { Bundle storage bundle = _bundles[bundleId]; - require(bundle.state == BundleState.Closed, "ERROR:BUC-016:BUNDLE_NOT_CLOSED"); + require( + bundle.state == BundleState.Closed, + "ERROR:BUC-016:BUNDLE_NOT_CLOSED" + ); require(bundle.balance == 0, "ERROR:BUC-017:BUNDLE_HAS_BALANCE"); // burn corresponding nft -> as a result bundle looses its owner @@ -184,19 +198,33 @@ contract BundleController is _changeState(bundleId, BundleState.Burned); } - function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 amount) - external override - onlyRiskpoolService - { + function collateralizePolicy( + uint256 bundleId, + bytes32 processId, + uint256 amount + ) external override onlyRiskpoolService { IPolicy.Metadata memory metadata = _policy.getMetadata(processId); Bundle storage bundle = _bundles[bundleId]; - require(bundle.riskpoolId == _getPoolController().getRiskPoolForProduct(metadata.productId), "ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL"); + require( + bundle.riskpoolId == + _getPoolController().getRiskPoolForProduct(metadata.productId), + "ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL" + ); require(bundle.createdAt > 0, "ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST"); - require(bundle.state == IBundle.BundleState.Active, "ERROR:BUC-021:BUNDLE_NOT_ACTIVE"); - require(bundle.capital >= bundle.lockedCapital + amount, "ERROR:BUC-022:CAPACITY_TOO_LOW"); + require( + bundle.state == IBundle.BundleState.Active, + "ERROR:BUC-021:BUNDLE_NOT_ACTIVE" + ); + require( + bundle.capital >= bundle.lockedCapital + amount, + "ERROR:BUC-022:CAPACITY_TOO_LOW" + ); // might need to be added in a future relase - require(_valueLockedPerPolicy[bundleId][processId] == 0, "ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED"); + require( + _valueLockedPerPolicy[bundleId][processId] == 0, + "ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED" + ); bundle.lockedCapital += amount; bundle.updatedAt = block.timestamp; @@ -205,15 +233,19 @@ contract BundleController is _valueLockedPerPolicy[bundleId][processId] = amount; uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundlePolicyCollateralized(bundleId, processId, amount, capacityAmount); + emit LogBundlePolicyCollateralized( + bundleId, + processId, + amount, + capacityAmount + ); } - - function processPremium(uint256 bundleId, bytes32 processId, uint256 amount) - external override - onlyRiskpoolService - onlyFundableBundle(bundleId) - { + function processPremium( + uint256 bundleId, + bytes32 processId, + uint256 amount + ) external override onlyRiskpoolService onlyFundableBundle(bundleId) { IPolicy.Policy memory policy = _policy.getPolicy(processId); require( policy.state != IPolicy.PolicyState.Closed, @@ -222,16 +254,16 @@ contract BundleController is Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST"); - + bundle.balance += amount; bundle.updatedAt = block.timestamp; // solhint-disable-line } - - function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) - external override - onlyRiskpoolService - { + function processPayout( + uint256 bundleId, + bytes32 processId, + uint256 amount + ) external override onlyRiskpoolService { IPolicy.Policy memory policy = _policy.getPolicy(processId); require( policy.state != IPolicy.PolicyState.Closed, @@ -239,18 +271,28 @@ contract BundleController is ); // check there are policies and there is sufficient locked capital for policy - require(_activePolicies[bundleId] > 0, "ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE"); - require(_valueLockedPerPolicy[bundleId][processId] >= amount, "ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY"); + require( + _activePolicies[bundleId] > 0, + "ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE" + ); + require( + _valueLockedPerPolicy[bundleId][processId] >= amount, + "ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY" + ); // make sure bundle exists and is not yet closed Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST"); require( - bundle.state == IBundle.BundleState.Active - || bundle.state == IBundle.BundleState.Locked, - "ERROR:BUC-044:BUNDLE_STATE_INVALID"); + bundle.state == IBundle.BundleState.Active || + bundle.state == IBundle.BundleState.Locked, + "ERROR:BUC-044:BUNDLE_STATE_INVALID" + ); require(bundle.capital >= amount, "ERROR:BUC-045:CAPITAL_TOO_LOW"); - require(bundle.lockedCapital >= amount, "ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW"); + require( + bundle.lockedCapital >= amount, + "ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW" + ); require(bundle.balance >= amount, "ERROR:BUC-047:BALANCE_TOO_LOW"); _valueLockedPerPolicy[bundleId][processId] -= amount; @@ -262,11 +304,14 @@ contract BundleController is emit LogBundlePayoutProcessed(bundleId, processId, amount); } - - function releasePolicy(uint256 bundleId, bytes32 processId) - external override + function releasePolicy( + uint256 bundleId, + bytes32 processId + ) + external + override onlyRiskpoolService - returns(uint256 remainingCollateralAmount) + returns (uint256 remainingCollateralAmount) { IPolicy.Policy memory policy = _policy.getPolicy(processId); require( @@ -277,9 +322,14 @@ contract BundleController is // make sure bundle exists and is not yet closed Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST"); - require(_activePolicies[bundleId] > 0, "ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE"); + require( + _activePolicies[bundleId] > 0, + "ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE" + ); - uint256 lockedForPolicyAmount = _valueLockedPerPolicy[bundleId][processId]; + uint256 lockedForPolicyAmount = _valueLockedPerPolicy[bundleId][ + processId + ]; // this should never ever fail ... require( bundle.lockedCapital >= lockedForPolicyAmount, @@ -295,54 +345,67 @@ contract BundleController is bundle.updatedAt = block.timestamp; // solhint-disable-line uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundlePolicyReleased(bundleId, processId, lockedForPolicyAmount, capacityAmount); + emit LogBundlePolicyReleased( + bundleId, + processId, + lockedForPolicyAmount, + capacityAmount + ); } - function getOwner(uint256 bundleId) public view returns(address) { + function getOwner(uint256 bundleId) public view returns (address) { uint256 tokenId = getBundle(bundleId).tokenId; - return _token.ownerOf(tokenId); + return _token.ownerOf(tokenId); } - function getState(uint256 bundleId) public view returns(BundleState) { - return getBundle(bundleId).state; + function getState(uint256 bundleId) public view returns (BundleState) { + return getBundle(bundleId).state; } - function getFilter(uint256 bundleId) public view returns(bytes memory) { + function getFilter(uint256 bundleId) public view returns (bytes memory) { return getBundle(bundleId).filter; - } + } - function getCapacity(uint256 bundleId) public view returns(uint256) { + function getCapacity(uint256 bundleId) public view returns (uint256) { Bundle memory bundle = getBundle(bundleId); return bundle.capital - bundle.lockedCapital; } - function getTotalValueLocked(uint256 bundleId) public view returns(uint256) { - return getBundle(bundleId).lockedCapital; + function getTotalValueLocked( + uint256 bundleId + ) public view returns (uint256) { + return getBundle(bundleId).lockedCapital; } - function getBalance(uint256 bundleId) public view returns(uint256) { - return getBundle(bundleId).balance; + function getBalance(uint256 bundleId) public view returns (uint256) { + return getBundle(bundleId).balance; } - function getToken() external view returns(BundleToken) { + function getToken() external view returns (BundleToken) { return _token; } - function getBundle(uint256 bundleId) public view returns(Bundle memory) { + function getBundle(uint256 bundleId) public view returns (Bundle memory) { Bundle memory bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST"); return bundle; } - function bundles() public view returns(uint256) { + function bundles() public view returns (uint256) { return _bundleCount; } - function unburntBundles(uint256 riskpoolId) external view returns(uint256) { + function unburntBundles( + uint256 riskpoolId + ) external view returns (uint256) { return _unburntBundlesForRiskpoolId[riskpoolId]; } - function _getPoolController() internal view returns (PoolController _poolController) { + function _getPoolController() + internal + view + returns (PoolController _poolController) + { _poolController = PoolController(_getContractAddress("Pool")); } @@ -361,23 +424,25 @@ contract BundleController is _bundles[bundleId].updatedAt = block.timestamp; } - function _checkStateTransition(BundleState oldState, BundleState newState) - internal - pure - { + function _checkStateTransition( + BundleState oldState, + BundleState newState + ) internal pure { if (oldState == BundleState.Active) { require( - newState == BundleState.Locked || newState == BundleState.Closed, + newState == BundleState.Locked || + newState == BundleState.Closed, "ERROR:BUC-070:ACTIVE_INVALID_TRANSITION" ); } else if (oldState == BundleState.Locked) { require( - newState == BundleState.Active || newState == BundleState.Closed, + newState == BundleState.Active || + newState == BundleState.Closed, "ERROR:BUC-071:LOCKED_INVALID_TRANSITION" ); } else if (oldState == BundleState.Closed) { require( - newState == BundleState.Burned, + newState == BundleState.Burned, "ERROR:BUC-072:CLOSED_INVALID_TRANSITION" ); } else if (oldState == BundleState.Burned) { diff --git a/contracts/modules/ComponentController.sol b/contracts/modules/ComponentController.sol index 11e2e600..6aa63240 100644 --- a/contracts/modules/ComponentController.sol +++ b/contracts/modules/ComponentController.sol @@ -13,8 +13,9 @@ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; * @dev The smart contract provides functionality to manage and control components in a system. * The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. * It also includes modifiers to restrict access to certain functions based on the caller's role. - * + * * Functions: + * * - `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. * - `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. * - `exists()`: Checks if a component with the given ID exists in the system. @@ -38,16 +39,13 @@ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; * - `products()`: Returns the number of products in the `_products` set. * - `oracles()`: Returns the number of oracles registered in the `_oracles` set. * - `riskpools()`: Returns the number of risk pools in the set. - * + * * The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. - * + * * The contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations. */ -contract ComponentController is - IComponentEvents, - CoreController - { +contract ComponentController is IComponentEvents, CoreController { using EnumerableSet for EnumerableSet.UintSet; mapping(uint256 => IComponent) private _componentById; @@ -61,29 +59,35 @@ contract ComponentController is EnumerableSet.UintSet private _riskpools; uint256 private _componentCount; - mapping(uint256 /* product id */ => address /* policy flow address */) private _policyFlowByProductId; + mapping(uint256 /* product id */ => address /* policy flow address */) + private _policyFlowByProductId; modifier onlyComponentOwnerService() { require( _msgSender() == _getContractAddress("ComponentOwnerService"), - "ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE"); + "ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE" + ); _; } modifier onlyInstanceOperatorService() { require( _msgSender() == _getContractAddress("InstanceOperatorService"), - "ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE"); + "ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE" + ); _; } - function propose(IComponent component) - external - onlyComponentOwnerService - { + function propose(IComponent component) external onlyComponentOwnerService { // input validation - require(_componentIdByAddress[address(component)] == 0, "ERROR:CCR-003:COMPONENT_ALREADY_EXISTS"); - require(_componentIdByName[component.getName()] == 0, "ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS"); + require( + _componentIdByAddress[address(component)] == 0, + "ERROR:CCR-003:COMPONENT_ALREADY_EXISTS" + ); + require( + _componentIdByName[component.getName()] == 0, + "ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS" + ); // assigning id and persisting component uint256 id = _persistComponent(component); @@ -93,16 +97,16 @@ contract ComponentController is component.getName(), component.getType(), address(component), - id); - + id + ); + // inform component about successful proposal component.proposalCallback(); } - function _persistComponent(IComponent component) - internal - returns(uint256 id) - { + function _persistComponent( + IComponent component + ) internal returns (uint256 id) { // fetch next component id _componentCount++; id = _componentCount; @@ -117,130 +121,127 @@ contract ComponentController is _componentIdByAddress[address(component)] = id; // type specific book keeping - if (component.isProduct()) { EnumerableSet.add(_products, id); } - else if (component.isOracle()) { EnumerableSet.add(_oracles, id); } - else if (component.isRiskpool()) { EnumerableSet.add(_riskpools, id); } + if (component.isProduct()) { + EnumerableSet.add(_products, id); + } else if (component.isOracle()) { + EnumerableSet.add(_oracles, id); + } else if (component.isRiskpool()) { + EnumerableSet.add(_riskpools, id); + } } - function exists(uint256 id) public view returns(bool) { + function exists(uint256 id) public view returns (bool) { IComponent component = _componentById[id]; return (address(component) != address(0)); } - function approve(uint256 id) - external - onlyInstanceOperatorService - { + function approve(uint256 id) external onlyInstanceOperatorService { _changeState(id, IComponent.ComponentState.Active); IComponent component = getComponent(id); if (isProduct(id)) { - _policyFlowByProductId[id] = IProduct(address(component)).getPolicyFlow(); + _policyFlowByProductId[id] = IProduct(address(component)) + .getPolicyFlow(); } emit LogComponentApproved(id); - + // inform component about successful approval component.approvalCallback(); } - function decline(uint256 id) - external - onlyInstanceOperatorService - { + function decline(uint256 id) external onlyInstanceOperatorService { _changeState(id, IComponent.ComponentState.Declined); emit LogComponentDeclined(id); - + // inform component about decline IComponent component = getComponent(id); component.declineCallback(); } - function suspend(uint256 id) - external - onlyInstanceOperatorService - { + function suspend(uint256 id) external onlyInstanceOperatorService { _changeState(id, IComponent.ComponentState.Suspended); emit LogComponentSuspended(id); - + // inform component about suspending IComponent component = getComponent(id); component.suspendCallback(); } - function resume(uint256 id) - external - onlyInstanceOperatorService - { + function resume(uint256 id) external onlyInstanceOperatorService { _changeState(id, IComponent.ComponentState.Active); emit LogComponentResumed(id); - + // inform component about resuming IComponent component = getComponent(id); component.resumeCallback(); } - function pause(uint256 id) - external - onlyComponentOwnerService - { + function pause(uint256 id) external onlyComponentOwnerService { _changeState(id, IComponent.ComponentState.Paused); emit LogComponentPaused(id); - + // inform component about pausing IComponent component = getComponent(id); component.pauseCallback(); } - function unpause(uint256 id) - external - onlyComponentOwnerService - { + function unpause(uint256 id) external onlyComponentOwnerService { _changeState(id, IComponent.ComponentState.Active); emit LogComponentUnpaused(id); - + // inform component about unpausing IComponent component = getComponent(id); component.unpauseCallback(); } - function archiveFromComponentOwner(uint256 id) - external - onlyComponentOwnerService - { + function archiveFromComponentOwner( + uint256 id + ) external onlyComponentOwnerService { _changeState(id, IComponent.ComponentState.Archived); emit LogComponentArchived(id); - + // inform component about archiving IComponent component = getComponent(id); component.archiveCallback(); } - function archiveFromInstanceOperator(uint256 id) - external - onlyInstanceOperatorService - { + function archiveFromInstanceOperator( + uint256 id + ) external onlyInstanceOperatorService { _changeState(id, IComponent.ComponentState.Archived); emit LogComponentArchived(id); - + // inform component about archiving IComponent component = getComponent(id); component.archiveCallback(); } - function getComponent(uint256 id) public view returns (IComponent component) { + function getComponent( + uint256 id + ) public view returns (IComponent component) { component = _componentById[id]; - require(address(component) != address(0), "ERROR:CCR-005:INVALID_COMPONENT_ID"); + require( + address(component) != address(0), + "ERROR:CCR-005:INVALID_COMPONENT_ID" + ); } - function getComponentId(address componentAddress) public view returns (uint256 id) { - require(componentAddress != address(0), "ERROR:CCR-006:COMPONENT_ADDRESS_ZERO"); + function getComponentId( + address componentAddress + ) public view returns (uint256 id) { + require( + componentAddress != address(0), + "ERROR:CCR-006:COMPONENT_ADDRESS_ZERO" + ); id = _componentIdByAddress[componentAddress]; require(id > 0, "ERROR:CCR-007:COMPONENT_UNKNOWN"); } - function getComponentType(uint256 id) public view returns (IComponent.ComponentType componentType) { + function getComponentType( + uint256 id + ) public view returns (IComponent.ComponentType componentType) { if (EnumerableSet.contains(_products, id)) { return IComponent.ComponentType.Product; } else if (EnumerableSet.contains(_oracles, id)) { @@ -252,7 +253,9 @@ contract ComponentController is } } - function getComponentState(uint256 id) public view returns (IComponent.ComponentState componentState) { + function getComponentState( + uint256 id + ) public view returns (IComponent.ComponentState componentState) { return _componentState[id]; } @@ -260,7 +263,9 @@ contract ComponentController is return EnumerableSet.at(_oracles, idx); } - function getRiskpoolId(uint256 idx) public view returns (uint256 riskpoolId) { + function getRiskpoolId( + uint256 idx + ) public view returns (uint256 riskpoolId) { return EnumerableSet.at(_riskpools, idx); } @@ -268,30 +273,59 @@ contract ComponentController is return EnumerableSet.at(_products, idx); } - function getRequiredRole(IComponent.ComponentType componentType) external view returns (bytes32) { - if (componentType == IComponent.ComponentType.Product) { return _access.getProductOwnerRole(); } - else if (componentType == IComponent.ComponentType.Oracle) { return _access.getOracleProviderRole(); } - else if (componentType == IComponent.ComponentType.Riskpool) { return _access.getRiskpoolKeeperRole(); } - else { revert("ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN"); } + function getRequiredRole( + IComponent.ComponentType componentType + ) external view returns (bytes32) { + if (componentType == IComponent.ComponentType.Product) { + return _access.getProductOwnerRole(); + } else if (componentType == IComponent.ComponentType.Oracle) { + return _access.getOracleProviderRole(); + } else if (componentType == IComponent.ComponentType.Riskpool) { + return _access.getRiskpoolKeeperRole(); + } else { + revert("ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN"); + } + } + + function components() public view returns (uint256 count) { + return _componentCount; + } + + function products() public view returns (uint256 count) { + return EnumerableSet.length(_products); + } + + function oracles() public view returns (uint256 count) { + return EnumerableSet.length(_oracles); } - function components() public view returns (uint256 count) { return _componentCount; } - function products() public view returns (uint256 count) { return EnumerableSet.length(_products); } - function oracles() public view returns (uint256 count) { return EnumerableSet.length(_oracles); } - function riskpools() public view returns (uint256 count) { return EnumerableSet.length(_riskpools); } + function riskpools() public view returns (uint256 count) { + return EnumerableSet.length(_riskpools); + } - function isProduct(uint256 id) public view returns (bool) { return EnumerableSet.contains(_products, id); } + function isProduct(uint256 id) public view returns (bool) { + return EnumerableSet.contains(_products, id); + } - function isOracle(uint256 id) public view returns (bool) { return EnumerableSet.contains(_oracles, id); } + function isOracle(uint256 id) public view returns (bool) { + return EnumerableSet.contains(_oracles, id); + } - function isRiskpool(uint256 id) public view returns (bool) { return EnumerableSet.contains(_riskpools, id); } + function isRiskpool(uint256 id) public view returns (bool) { + return EnumerableSet.contains(_riskpools, id); + } - function getPolicyFlow(uint256 productId) public view returns (address _policyFlow) { + function getPolicyFlow( + uint256 productId + ) public view returns (address _policyFlow) { require(isProduct(productId), "ERROR:CCR-011:UNKNOWN_PRODUCT_ID"); _policyFlow = _policyFlowByProductId[productId]; } - function _changeState(uint256 componentId, IComponent.ComponentState newState) internal { + function _changeState( + uint256 componentId, + IComponent.ComponentState newState + ) internal { IComponent.ComponentState oldState = _componentState[componentId]; _checkStateTransition(oldState, newState); @@ -302,36 +336,45 @@ contract ComponentController is } function _checkStateTransition( - IComponent.ComponentState oldState, + IComponent.ComponentState oldState, IComponent.ComponentState newState - ) - internal - pure - { - require(newState != oldState, - "ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL"); - + ) internal pure { + require( + newState != oldState, + "ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL" + ); + if (oldState == IComponent.ComponentState.Created) { - require(newState == IComponent.ComponentState.Proposed, - "ERROR:CCR-021:CREATED_INVALID_TRANSITION"); + require( + newState == IComponent.ComponentState.Proposed, + "ERROR:CCR-021:CREATED_INVALID_TRANSITION" + ); } else if (oldState == IComponent.ComponentState.Proposed) { - require(newState == IComponent.ComponentState.Active - || newState == IComponent.ComponentState.Declined, - "ERROR:CCR-22:PROPOSED_INVALID_TRANSITION"); + require( + newState == IComponent.ComponentState.Active || + newState == IComponent.ComponentState.Declined, + "ERROR:CCR-22:PROPOSED_INVALID_TRANSITION" + ); } else if (oldState == IComponent.ComponentState.Declined) { revert("ERROR:CCR-023:DECLINED_IS_FINAL_STATE"); } else if (oldState == IComponent.ComponentState.Active) { - require(newState == IComponent.ComponentState.Paused - || newState == IComponent.ComponentState.Suspended, - "ERROR:CCR-024:ACTIVE_INVALID_TRANSITION"); + require( + newState == IComponent.ComponentState.Paused || + newState == IComponent.ComponentState.Suspended, + "ERROR:CCR-024:ACTIVE_INVALID_TRANSITION" + ); } else if (oldState == IComponent.ComponentState.Paused) { - require(newState == IComponent.ComponentState.Active - || newState == IComponent.ComponentState.Archived, - "ERROR:CCR-025:PAUSED_INVALID_TRANSITION"); + require( + newState == IComponent.ComponentState.Active || + newState == IComponent.ComponentState.Archived, + "ERROR:CCR-025:PAUSED_INVALID_TRANSITION" + ); } else if (oldState == IComponent.ComponentState.Suspended) { - require(newState == IComponent.ComponentState.Active - || newState == IComponent.ComponentState.Archived, - "ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION"); + require( + newState == IComponent.ComponentState.Active || + newState == IComponent.ComponentState.Archived, + "ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION" + ); } else { revert("ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED"); } diff --git a/contracts/modules/LicenseController.sol b/contracts/modules/LicenseController.sol index 383a4a9c..15f37dee 100644 --- a/contracts/modules/LicenseController.sol +++ b/contracts/modules/LicenseController.sol @@ -11,26 +11,22 @@ import "@etherisc/gif-interface/contracts/modules/ILicense.sol"; /** * @dev The smart contract serves as a controller contract for managing licenses related to products in an insurance ecosystem. * The contract implements the `ILicense` interface and extends the `CoreController` contract. - * + * * The contract imports two other contracts: `ComponentController.sol` and `CoreController.sol`, which are expected to be located in specific file paths. * It also imports several interfaces from the "etherisc/gif-interface" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`. * The contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract. - * + * * Functions: + * * - `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract. * - `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function. * - `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`. * - `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`. - * + * * Overall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem. */ - -contract LicenseController is - ILicense, - CoreController -{ - +contract LicenseController is ILicense, CoreController { ComponentController private _component; function _afterInitialize() internal override onlyInitializing { @@ -38,9 +34,12 @@ contract LicenseController is } // ensures that calling component (productAddress) is a product - function getAuthorizationStatus(address productAddress) - public override + function getAuthorizationStatus( + address productAddress + ) + public view + override returns (uint256 productId, bool isAuthorized, address policyFlow) { productId = _component.getComponentId(productAddress); @@ -49,11 +48,16 @@ contract LicenseController is } function _isValidCall(uint256 productId) internal view returns (bool) { - return _component.getComponentState(productId) == IComponent.ComponentState.Active; + return + _component.getComponentState(productId) == + IComponent.ComponentState.Active; } function _getProduct(uint256 id) internal view returns (IProduct product) { - require(_component.isProduct(id), "ERROR:LIC-001:COMPONENT_NOT_PRODUCT"); + require( + _component.isProduct(id), + "ERROR:LIC-001:COMPONENT_NOT_PRODUCT" + ); IComponent cmp = _component.getComponent(id); product = IProduct(address(cmp)); } diff --git a/contracts/modules/PolicyController.sol b/contracts/modules/PolicyController.sol index 7c16df12..44de75fe 100644 --- a/contracts/modules/PolicyController.sol +++ b/contracts/modules/PolicyController.sol @@ -10,8 +10,9 @@ import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; * It also provides functions for claim creation, confirmation, decline, closure, and payout creation. * Additionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy. * The contract inherits from the `IPolicy` interface and the `CoreController` contract. - * + * * 1. State Variables: + * * - `metadata`: A mapping that stores metadata associated with policy flows. * - `applications`: A mapping that stores insurance applications associated with policy flows. * - `policies`: A mapping that stores policies associated with policy flows. @@ -20,8 +21,9 @@ import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; * - `payoutCount`: A mapping that stores the count of payouts for each policy flow. * - `_assigendProcessIds`: A counter variable for assigning unique process IDs. * - `_component`: A reference to the `ComponentController` contract. - * + * * 2. Functions: + * * - `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization. * - `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data. * - `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data. @@ -43,14 +45,11 @@ import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; * - `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists. * - `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function. * - `getNumberOfPayouts()`: Returns the number of payouts for a given process ID. - * + * * Overall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract. */ -contract PolicyController is - IPolicy, - CoreController -{ +contract PolicyController is IPolicy, CoreController { // bytes32 public constant NAME = "PolicyController"; // Metadata @@ -63,10 +62,12 @@ contract PolicyController is mapping(bytes32 /* processId */ => Policy) public policies; // Claims - mapping(bytes32 /* processId */ => mapping(uint256 /* claimId */ => Claim)) public claims; + mapping(bytes32 /* processId */ => mapping(uint256 /* claimId */ => Claim)) + public claims; // Payouts - mapping(bytes32 /* processId */ => mapping(uint256 /* payoutId */ => Payout)) public payouts; + mapping(bytes32 /* processId */ => mapping(uint256 /* payoutId */ => Payout)) + public payouts; mapping(bytes32 /* processId */ => uint256) public payoutCount; // counter for assigned processIds, used to ensure unique processIds @@ -83,16 +84,19 @@ contract PolicyController is address owner, uint256 productId, bytes calldata data - ) - external override - onlyPolicyFlow("Policy") - returns(bytes32 processId) - { + ) external override onlyPolicyFlow("Policy") returns (bytes32 processId) { require(owner != address(0), "ERROR:POL-001:INVALID_OWNER"); - require(_component.isProduct(productId), "ERROR:POL-002:INVALID_PRODUCT"); - require(_component.getComponentState(productId) == IComponent.ComponentState.Active, "ERROR:POL-003:PRODUCT_NOT_ACTIVE"); - + require( + _component.isProduct(productId), + "ERROR:POL-002:INVALID_PRODUCT" + ); + require( + _component.getComponentState(productId) == + IComponent.ComponentState.Active, + "ERROR:POL-003:PRODUCT_NOT_ACTIVE" + ); + processId = _generateNextProcessId(); Metadata storage meta = metadata[processId]; require(meta.createdAt == 0, "ERROR:POC-004:METADATA_ALREADY_EXISTS"); @@ -104,27 +108,35 @@ contract PolicyController is meta.createdAt = block.timestamp; // solhint-disable-line meta.updatedAt = block.timestamp; // solhint-disable-line - emit LogMetadataCreated(owner, processId, productId, PolicyFlowState.Started); + emit LogMetadataCreated( + owner, + processId, + productId, + PolicyFlowState.Started + ); } /* Application */ function createApplication( - bytes32 processId, + bytes32 processId, uint256 premiumAmount, uint256 sumInsuredAmount, bytes calldata data - ) - external override - onlyPolicyFlow("Policy") - { + ) external override onlyPolicyFlow("Policy") { Metadata storage meta = metadata[processId]; require(meta.createdAt > 0, "ERROR:POC-010:METADATA_DOES_NOT_EXIST"); Application storage application = applications[processId]; - require(application.createdAt == 0, "ERROR:POC-011:APPLICATION_ALREADY_EXISTS"); + require( + application.createdAt == 0, + "ERROR:POC-011:APPLICATION_ALREADY_EXISTS" + ); require(premiumAmount > 0, "ERROR:POC-012:PREMIUM_AMOUNT_ZERO"); - require(sumInsuredAmount > premiumAmount, "ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL"); + require( + sumInsuredAmount > premiumAmount, + "ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL" + ); application.state = ApplicationState.Applied; application.premiumAmount = premiumAmount; @@ -140,29 +152,38 @@ contract PolicyController is emit LogApplicationCreated(processId, premiumAmount, sumInsuredAmount); } - function collectPremium(bytes32 processId, uint256 amount) - external override - { + function collectPremium( + bytes32 processId, + uint256 amount + ) external override { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-110:POLICY_DOES_NOT_EXIST"); - require(policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, "ERROR:POC-111:AMOUNT_TOO_BIG"); + require( + policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, + "ERROR:POC-111:AMOUNT_TOO_BIG" + ); policy.premiumPaidAmount += amount; policy.updatedAt = block.timestamp; // solhint-disable-line - + emit LogPremiumCollected(processId, amount); } - - function revokeApplication(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { + + function revokeApplication( + bytes32 processId + ) external override onlyPolicyFlow("Policy") { Metadata storage meta = metadata[processId]; require(meta.createdAt > 0, "ERROR:POC-014:METADATA_DOES_NOT_EXIST"); Application storage application = applications[processId]; - require(application.createdAt > 0, "ERROR:POC-015:APPLICATION_DOES_NOT_EXIST"); - require(application.state == ApplicationState.Applied, "ERROR:POC-016:APPLICATION_STATE_INVALID"); + require( + application.createdAt > 0, + "ERROR:POC-015:APPLICATION_DOES_NOT_EXIST" + ); + require( + application.state == ApplicationState.Applied, + "ERROR:POC-016:APPLICATION_STATE_INVALID" + ); application.state = ApplicationState.Revoked; application.updatedAt = block.timestamp; // solhint-disable-line @@ -174,13 +195,18 @@ contract PolicyController is emit LogApplicationRevoked(processId); } - function underwriteApplication(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { + function underwriteApplication( + bytes32 processId + ) external override onlyPolicyFlow("Policy") { Application storage application = applications[processId]; - require(application.createdAt > 0, "ERROR:POC-017:APPLICATION_DOES_NOT_EXIST"); - require(application.state == ApplicationState.Applied, "ERROR:POC-018:APPLICATION_STATE_INVALID"); + require( + application.createdAt > 0, + "ERROR:POC-017:APPLICATION_DOES_NOT_EXIST" + ); + require( + application.state == ApplicationState.Applied, + "ERROR:POC-018:APPLICATION_STATE_INVALID" + ); application.state = ApplicationState.Underwritten; application.updatedAt = block.timestamp; // solhint-disable-line @@ -188,16 +214,21 @@ contract PolicyController is emit LogApplicationUnderwritten(processId); } - function declineApplication(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { + function declineApplication( + bytes32 processId + ) external override onlyPolicyFlow("Policy") { Metadata storage meta = metadata[processId]; require(meta.createdAt > 0, "ERROR:POC-019:METADATA_DOES_NOT_EXIST"); Application storage application = applications[processId]; - require(application.createdAt > 0, "ERROR:POC-020:APPLICATION_DOES_NOT_EXIST"); - require(application.state == ApplicationState.Applied, "ERROR:POC-021:APPLICATION_STATE_INVALID"); + require( + application.createdAt > 0, + "ERROR:POC-020:APPLICATION_DOES_NOT_EXIST" + ); + require( + application.state == ApplicationState.Applied, + "ERROR:POC-021:APPLICATION_STATE_INVALID" + ); application.state = ApplicationState.Declined; application.updatedAt = block.timestamp; // solhint-disable-line @@ -210,12 +241,15 @@ contract PolicyController is } /* Policy */ - function createPolicy(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { + function createPolicy( + bytes32 processId + ) external override onlyPolicyFlow("Policy") { Application memory application = applications[processId]; - require(application.createdAt > 0 && application.state == ApplicationState.Underwritten, "ERROR:POC-022:APPLICATION_ACCESS_INVALID"); + require( + application.createdAt > 0 && + application.state == ApplicationState.Underwritten, + "ERROR:POC-022:APPLICATION_ACCESS_INVALID" + ); Policy storage policy = policies[processId]; require(policy.createdAt == 0, "ERROR:POC-023:POLICY_ALREADY_EXISTS"); @@ -230,37 +264,41 @@ contract PolicyController is } function adjustPremiumSumInsured( - bytes32 processId, + bytes32 processId, uint256 expectedPremiumAmount, uint256 sumInsuredAmount - ) - external override - onlyPolicyFlow("Policy") - { + ) external override onlyPolicyFlow("Policy") { Application storage application = applications[processId]; require( - application.createdAt > 0 - && application.state == ApplicationState.Underwritten, - "ERROR:POC-024:APPLICATION_ACCESS_INVALID"); + application.createdAt > 0 && + application.state == ApplicationState.Underwritten, + "ERROR:POC-024:APPLICATION_ACCESS_INVALID" + ); require( - sumInsuredAmount <= application.sumInsuredAmount, - "ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID"); + sumInsuredAmount <= application.sumInsuredAmount, + "ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID" + ); Policy storage policy = policies[processId]; require( - policy.createdAt > 0 - && policy.state == IPolicy.PolicyState.Active, - "ERROR:POC-027:POLICY_ACCESS_INVALID"); - + policy.createdAt > 0 && policy.state == IPolicy.PolicyState.Active, + "ERROR:POC-027:POLICY_ACCESS_INVALID" + ); + require( - expectedPremiumAmount > 0 - && expectedPremiumAmount >= policy.premiumPaidAmount - && expectedPremiumAmount < sumInsuredAmount, - "ERROR:POC-025:APPLICATION_PREMIUM_INVALID"); + expectedPremiumAmount > 0 && + expectedPremiumAmount >= policy.premiumPaidAmount && + expectedPremiumAmount < sumInsuredAmount, + "ERROR:POC-025:APPLICATION_PREMIUM_INVALID" + ); if (sumInsuredAmount != application.sumInsuredAmount) { - emit LogApplicationSumInsuredAdjusted(processId, application.sumInsuredAmount, sumInsuredAmount); + emit LogApplicationSumInsuredAdjusted( + processId, + application.sumInsuredAmount, + sumInsuredAmount + ); application.sumInsuredAmount = sumInsuredAmount; application.updatedAt = block.timestamp; // solhint-disable-line @@ -269,23 +307,33 @@ contract PolicyController is } if (expectedPremiumAmount != application.premiumAmount) { - emit LogApplicationPremiumAdjusted(processId, application.premiumAmount, expectedPremiumAmount); + emit LogApplicationPremiumAdjusted( + processId, + application.premiumAmount, + expectedPremiumAmount + ); application.premiumAmount = expectedPremiumAmount; application.updatedAt = block.timestamp; // solhint-disable-line - emit LogPolicyPremiumAdjusted(processId, policy.premiumExpectedAmount, expectedPremiumAmount); + emit LogPolicyPremiumAdjusted( + processId, + policy.premiumExpectedAmount, + expectedPremiumAmount + ); policy.premiumExpectedAmount = expectedPremiumAmount; policy.updatedAt = block.timestamp; // solhint-disable-line } } - function expirePolicy(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { + function expirePolicy( + bytes32 processId + ) external override onlyPolicyFlow("Policy") { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-028:POLICY_DOES_NOT_EXIST"); - require(policy.state == PolicyState.Active, "ERROR:POC-029:APPLICATION_STATE_INVALID"); + require( + policy.state == PolicyState.Active, + "ERROR:POC-029:APPLICATION_STATE_INVALID" + ); policy.state = PolicyState.Expired; policy.updatedAt = block.timestamp; // solhint-disable-line @@ -293,17 +341,22 @@ contract PolicyController is emit LogPolicyExpired(processId); } - function closePolicy(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { + function closePolicy( + bytes32 processId + ) external override onlyPolicyFlow("Policy") { Metadata storage meta = metadata[processId]; require(meta.createdAt > 0, "ERROR:POC-030:METADATA_DOES_NOT_EXIST"); Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-031:POLICY_DOES_NOT_EXIST"); - require(policy.state == PolicyState.Expired, "ERROR:POC-032:POLICY_STATE_INVALID"); - require(policy.openClaimsCount == 0, "ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS"); + require( + policy.state == PolicyState.Expired, + "ERROR:POC-032:POLICY_STATE_INVALID" + ); + require( + policy.openClaimsCount == 0, + "ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS" + ); policy.state = PolicyState.Closed; policy.updatedAt = block.timestamp; // solhint-disable-line @@ -317,20 +370,22 @@ contract PolicyController is /* Claim */ function createClaim( - bytes32 processId, + bytes32 processId, uint256 claimAmount, bytes calldata data - ) - external override - onlyPolicyFlow("Policy") - returns (uint256 claimId) - { + ) external override onlyPolicyFlow("Policy") returns (uint256 claimId) { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-040:POLICY_DOES_NOT_EXIST"); - require(policy.state == IPolicy.PolicyState.Active, "ERROR:POC-041:POLICY_NOT_ACTIVE"); - // no validation of claimAmount > 0 here to explicitly allow claims with amount 0. This can be useful for parametric insurance + require( + policy.state == IPolicy.PolicyState.Active, + "ERROR:POC-041:POLICY_NOT_ACTIVE" + ); + // no validation of claimAmount > 0 here to explicitly allow claims with amount 0. This can be useful for parametric insurance // to have proof that the claim calculation was executed without entitlement to payment. - require(policy.payoutAmount + claimAmount <= policy.payoutMaxAmount, "ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT"); + require( + policy.payoutAmount + claimAmount <= policy.payoutMaxAmount, + "ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT" + ); claimId = policy.claimsCount; Claim storage claim = claims[processId][claimId]; @@ -353,19 +408,25 @@ contract PolicyController is bytes32 processId, uint256 claimId, uint256 confirmedAmount - ) - external override - onlyPolicyFlow("Policy") - { + ) external override onlyPolicyFlow("Policy") { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-050:POLICY_DOES_NOT_EXIST"); - require(policy.openClaimsCount > 0, "ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS"); - // no validation of claimAmount > 0 here as is it possible to have claims with amount 0 (see createClaim()). - require(policy.payoutAmount + confirmedAmount <= policy.payoutMaxAmount, "ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED"); + require( + policy.openClaimsCount > 0, + "ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS" + ); + // no validation of claimAmount > 0 here as is it possible to have claims with amount 0 (see createClaim()). + require( + policy.payoutAmount + confirmedAmount <= policy.payoutMaxAmount, + "ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED" + ); Claim storage claim = claims[processId][claimId]; require(claim.createdAt > 0, "ERROR:POC-053:CLAIM_DOES_NOT_EXIST"); - require(claim.state == ClaimState.Applied, "ERROR:POC-054:CLAIM_STATE_INVALID"); + require( + claim.state == ClaimState.Applied, + "ERROR:POC-054:CLAIM_STATE_INVALID" + ); claim.state = ClaimState.Confirmed; claim.claimAmount = confirmedAmount; @@ -377,17 +438,23 @@ contract PolicyController is emit LogClaimConfirmed(processId, claimId, confirmedAmount); } - function declineClaim(bytes32 processId, uint256 claimId) - external override - onlyPolicyFlow("Policy") - { + function declineClaim( + bytes32 processId, + uint256 claimId + ) external override onlyPolicyFlow("Policy") { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-060:POLICY_DOES_NOT_EXIST"); - require(policy.openClaimsCount > 0, "ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS"); + require( + policy.openClaimsCount > 0, + "ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS" + ); Claim storage claim = claims[processId][claimId]; require(claim.createdAt > 0, "ERROR:POC-062:CLAIM_DOES_NOT_EXIST"); - require(claim.state == ClaimState.Applied, "ERROR:POC-063:CLAIM_STATE_INVALID"); + require( + claim.state == ClaimState.Applied, + "ERROR:POC-063:CLAIM_STATE_INVALID" + ); claim.state = ClaimState.Declined; claim.updatedAt = block.timestamp; // solhint-disable-line @@ -397,24 +464,29 @@ contract PolicyController is emit LogClaimDeclined(processId, claimId); } - function closeClaim(bytes32 processId, uint256 claimId) - external override - onlyPolicyFlow("Policy") - { + function closeClaim( + bytes32 processId, + uint256 claimId + ) external override onlyPolicyFlow("Policy") { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-070:POLICY_DOES_NOT_EXIST"); - require(policy.openClaimsCount > 0, "ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS"); + require( + policy.openClaimsCount > 0, + "ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS" + ); Claim storage claim = claims[processId][claimId]; require(claim.createdAt > 0, "ERROR:POC-072:CLAIM_DOES_NOT_EXIST"); require( - claim.state == ClaimState.Confirmed - || claim.state == ClaimState.Declined, - "ERROR:POC-073:CLAIM_STATE_INVALID"); + claim.state == ClaimState.Confirmed || + claim.state == ClaimState.Declined, + "ERROR:POC-073:CLAIM_STATE_INVALID" + ); require( - (claim.state == ClaimState.Confirmed && claim.claimAmount == claim.paidAmount) - || (claim.state == ClaimState.Declined), + (claim.state == ClaimState.Confirmed && + claim.claimAmount == claim.paidAmount) || + (claim.state == ClaimState.Declined), "ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS" ); @@ -433,17 +505,16 @@ contract PolicyController is uint256 claimId, uint256 payoutAmount, bytes calldata data - ) - external override - onlyPolicyFlow("Policy") - returns (uint256 payoutId) - { + ) external override onlyPolicyFlow("Policy") returns (uint256 payoutId) { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-080:POLICY_DOES_NOT_EXIST"); Claim storage claim = claims[processId][claimId]; require(claim.createdAt > 0, "ERROR:POC-081:CLAIM_DOES_NOT_EXIST"); - require(claim.state == IPolicy.ClaimState.Confirmed, "ERROR:POC-082:CLAIM_NOT_CONFIRMED"); + require( + claim.state == IPolicy.ClaimState.Confirmed, + "ERROR:POC-082:CLAIM_NOT_CONFIRMED" + ); require(payoutAmount > 0, "ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID"); require( claim.paidAmount + payoutAmount <= claim.claimAmount, @@ -470,17 +541,20 @@ contract PolicyController is function processPayout( bytes32 processId, uint256 payoutId - ) - external override - onlyPolicyFlow("Policy") - { + ) external override onlyPolicyFlow("Policy") { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-090:POLICY_DOES_NOT_EXIST"); - require(policy.openClaimsCount > 0, "ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS"); + require( + policy.openClaimsCount > 0, + "ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS" + ); Payout storage payout = payouts[processId][payoutId]; require(payout.createdAt > 0, "ERROR:POC-092:PAYOUT_DOES_NOT_EXIST"); - require(payout.state == PayoutState.Expected, "ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT"); + require( + payout.state == PayoutState.Expected, + "ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT" + ); payout.state = IPolicy.PayoutState.PaidOut; payout.updatedAt = block.timestamp; // solhint-disable-line @@ -502,72 +576,74 @@ contract PolicyController is } } - function getMetadata(bytes32 processId) - public - view - returns (IPolicy.Metadata memory _metadata) - { + function getMetadata( + bytes32 processId + ) public view returns (IPolicy.Metadata memory _metadata) { _metadata = metadata[processId]; - require(_metadata.createdAt > 0, "ERROR:POC-100:METADATA_DOES_NOT_EXIST"); + require( + _metadata.createdAt > 0, + "ERROR:POC-100:METADATA_DOES_NOT_EXIST" + ); } - function getApplication(bytes32 processId) - public - view - returns (IPolicy.Application memory application) - { + function getApplication( + bytes32 processId + ) public view returns (IPolicy.Application memory application) { application = applications[processId]; - require(application.createdAt > 0, "ERROR:POC-101:APPLICATION_DOES_NOT_EXIST"); + require( + application.createdAt > 0, + "ERROR:POC-101:APPLICATION_DOES_NOT_EXIST" + ); } - function getNumberOfClaims(bytes32 processId) external view returns(uint256 numberOfClaims) { + function getNumberOfClaims( + bytes32 processId + ) external view returns (uint256 numberOfClaims) { numberOfClaims = getPolicy(processId).claimsCount; } - - function getNumberOfPayouts(bytes32 processId) external view returns(uint256 numberOfPayouts) { + + function getNumberOfPayouts( + bytes32 processId + ) external view returns (uint256 numberOfPayouts) { numberOfPayouts = payoutCount[processId]; } - function getPolicy(bytes32 processId) - public - view - returns (IPolicy.Policy memory policy) - { + function getPolicy( + bytes32 processId + ) public view returns (IPolicy.Policy memory policy) { policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-102:POLICY_DOES_NOT_EXIST"); + require(policy.createdAt > 0, "ERROR:POC-102:POLICY_DOES_NOT_EXIST"); } - function getClaim(bytes32 processId, uint256 claimId) - public - view - returns (IPolicy.Claim memory claim) - { + function getClaim( + bytes32 processId, + uint256 claimId + ) public view returns (IPolicy.Claim memory claim) { claim = claims[processId][claimId]; - require(claim.createdAt > 0, "ERROR:POC-103:CLAIM_DOES_NOT_EXIST"); + require(claim.createdAt > 0, "ERROR:POC-103:CLAIM_DOES_NOT_EXIST"); } - function getPayout(bytes32 processId, uint256 payoutId) - public - view - returns (IPolicy.Payout memory payout) - { + function getPayout( + bytes32 processId, + uint256 payoutId + ) public view returns (IPolicy.Payout memory payout) { payout = payouts[processId][payoutId]; - require(payout.createdAt > 0, "ERROR:POC-104:PAYOUT_DOES_NOT_EXIST"); + require(payout.createdAt > 0, "ERROR:POC-104:PAYOUT_DOES_NOT_EXIST"); } function processIds() external view returns (uint256) { return _assigendProcessIds; } - function _generateNextProcessId() private returns(bytes32 processId) { + function _generateNextProcessId() private returns (bytes32 processId) { _assigendProcessIds++; processId = keccak256( abi.encodePacked( - block.chainid, + block.chainid, address(_registry), _assigendProcessIds ) ); - } + } } diff --git a/contracts/modules/PoolController.sol b/contracts/modules/PoolController.sol index 36db47f1..cb3bed58 100644 --- a/contracts/modules/PoolController.sol +++ b/contracts/modules/PoolController.sol @@ -10,12 +10,11 @@ import "@etherisc/gif-interface/contracts/modules/IPool.sol"; import "@etherisc/gif-interface/contracts/components/IComponent.sol"; import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; - import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; /** * @dev The smart contract manages riskpools, their registration, funding, defunding, collateralization, and other related operations. - * + * * - The contract implements the IPool interface and extends the CoreController contract. * - It imports other contracts such as ComponentController, PolicyController, BundleController, and CoreController. * - It uses the EnumerableSet library from OpenZeppelin for managing sets of bundle IDs. @@ -24,8 +23,9 @@ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; * - The contract has a private array to store riskpool IDs. * - It has references to other contracts: ComponentController, PolicyController, and BundleController. * - The contract defines modifiers for access control to specific functions. - * + * * Functions: + * * - `_afterInitialize()`: Called after contract initialization to set addresses of other contracts. * - `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration. * - `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID. @@ -36,38 +36,39 @@ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; * - `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract. * - `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout. * - `release()`: Releases a policy's collateral from the riskpool. - * + * * Overall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations. */ -contract PoolController is - IPool, - CoreController -{ - +contract PoolController is IPool, CoreController { using EnumerableSet for EnumerableSet.UintSet; // used for representation of collateralization - // collateralization between 0 and 1 (1=100%) + // collateralization between 0 and 1 (1=100%) // value might be larger when overcollateralization - uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10**18; + uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10 ** 18; - // upper limit for overcollateralization at 200% - uint256 public constant COLLATERALIZATION_LEVEL_CAP = 2 * FULL_COLLATERALIZATION_LEVEL; + // upper limit for overcollateralization at 200% + uint256 public constant COLLATERALIZATION_LEVEL_CAP = + 2 * FULL_COLLATERALIZATION_LEVEL; uint256 public constant DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES = 1; - mapping(bytes32 /* processId */ => uint256 /* collateralAmount*/ ) private _collateralAmount; + mapping(bytes32 /* processId */ => uint256 /* collateralAmount*/) + private _collateralAmount; - mapping(uint256 /* productId */ => uint256 /* riskpoolId */) private _riskpoolIdForProductId; + mapping(uint256 /* productId */ => uint256 /* riskpoolId */) + private _riskpoolIdForProductId; - mapping(uint256 /* riskpoolId */ => IPool.Pool) private _riskpools; + mapping(uint256 /* riskpoolId */ => IPool.Pool) private _riskpools; - mapping(uint256 /* riskpoolId */ => uint256 /* maxmimumNumberOfActiveBundles */) private _maxmimumNumberOfActiveBundlesForRiskpoolId; + mapping(uint256 /* riskpoolId */ => uint256 /* maxmimumNumberOfActiveBundles */) + private _maxmimumNumberOfActiveBundlesForRiskpoolId; - mapping(uint256 /* riskpoolId */ => EnumerableSet.UintSet /* active bundle id set */) private _activeBundleIdsForRiskpoolId; - - uint256 [] private _riskpoolIds; + mapping(uint256 /* riskpoolId */ => EnumerableSet.UintSet /* active bundle id set */) + private _activeBundleIdsForRiskpoolId; + + uint256[] private _riskpoolIds; ComponentController private _component; PolicyController private _policy; @@ -91,7 +92,8 @@ contract PoolController is modifier onlyActivePool(uint256 riskpoolId) { require( - _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, + _component.getComponentState(riskpoolId) == + IComponent.ComponentState.Active, "ERROR:POL-003:RISKPOOL_NOT_ACTIVE" ); _; @@ -101,7 +103,8 @@ contract PoolController is IPolicy.Metadata memory metadata = _policy.getMetadata(processId); uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; require( - _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, + _component.getComponentState(riskpoolId) == + IComponent.ComponentState.Active, "ERROR:POL-004:RISKPOOL_NOT_ACTIVE" ); _; @@ -113,31 +116,38 @@ contract PoolController is _bundle = BundleController(_getContractAddress("Bundle")); } - function registerRiskpool( - uint256 riskpoolId, + uint256 riskpoolId, address wallet, address erc20Token, - uint256 collateralizationLevel, + uint256 collateralizationLevel, uint256 sumOfSumInsuredCap - ) - external override - onlyRiskpoolService - { + ) external override onlyRiskpoolService { IPool.Pool storage pool = _riskpools[riskpoolId]; _riskpoolIds.push(riskpoolId); - _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES; - - require(pool.createdAt == 0, "ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED"); + _maxmimumNumberOfActiveBundlesForRiskpoolId[ + riskpoolId + ] = DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES; + + require( + pool.createdAt == 0, + "ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED" + ); require(wallet != address(0), "ERROR:POL-006:WALLET_ADDRESS_ZERO"); require(erc20Token != address(0), "ERROR:POL-007:ERC20_ADDRESS_ZERO"); - require(collateralizationLevel <= COLLATERALIZATION_LEVEL_CAP, "ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH"); - require(sumOfSumInsuredCap > 0, "ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO"); + require( + collateralizationLevel <= COLLATERALIZATION_LEVEL_CAP, + "ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH" + ); + require( + sumOfSumInsuredCap > 0, + "ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO" + ); - pool.id = riskpoolId; - pool.wallet = wallet; - pool.erc20Token = erc20Token; + pool.id = riskpoolId; + pool.wallet = wallet; + pool.erc20Token = erc20Token; pool.collateralizationLevel = collateralizationLevel; pool.sumOfSumInsuredCap = sumOfSumInsuredCap; @@ -149,53 +159,71 @@ contract PoolController is pool.createdAt = block.timestamp; pool.updatedAt = block.timestamp; - emit LogRiskpoolRegistered(riskpoolId, wallet, erc20Token, collateralizationLevel, sumOfSumInsuredCap); + emit LogRiskpoolRegistered( + riskpoolId, + wallet, + erc20Token, + collateralizationLevel, + sumOfSumInsuredCap + ); } - function setRiskpoolForProduct(uint256 productId, uint256 riskpoolId) - external override - onlyInstanceOperatorService - { + function setRiskpoolForProduct( + uint256 productId, + uint256 riskpoolId + ) external override onlyInstanceOperatorService { require(_component.isProduct(productId), "ERROR:POL-010:NOT_PRODUCT"); - require(_component.isRiskpool(riskpoolId), "ERROR:POL-011:NOT_RISKPOOL"); - require(_riskpoolIdForProductId[productId] == 0, "ERROR:POL-012:RISKPOOL_ALREADY_SET"); - + require( + _component.isRiskpool(riskpoolId), + "ERROR:POL-011:NOT_RISKPOOL" + ); + require( + _riskpoolIdForProductId[productId] == 0, + "ERROR:POL-012:RISKPOOL_ALREADY_SET" + ); + _riskpoolIdForProductId[productId] = riskpoolId; } - function fund(uint256 riskpoolId, uint256 amount) - external - onlyRiskpoolService - onlyActivePool(riskpoolId) - { + function fund( + uint256 riskpoolId, + uint256 amount + ) external onlyRiskpoolService onlyActivePool(riskpoolId) { IPool.Pool storage pool = _riskpools[riskpoolId]; pool.capital += amount; pool.balance += amount; pool.updatedAt = block.timestamp; } - function defund(uint256 riskpoolId, uint256 amount) - external - onlyRiskpoolService - onlyActivePool(riskpoolId) - { + function defund( + uint256 riskpoolId, + uint256 amount + ) external onlyRiskpoolService onlyActivePool(riskpoolId) { IPool.Pool storage pool = _riskpools[riskpoolId]; - if (pool.capital >= amount) { pool.capital -= amount; } - else { pool.capital = 0; } + if (pool.capital >= amount) { + pool.capital -= amount; + } else { + pool.capital = 0; + } pool.balance -= amount; pool.updatedAt = block.timestamp; } - function underwrite(bytes32 processId) - external override + function underwrite( + bytes32 processId + ) + external + override onlyPolicyFlow("Pool") onlyActivePoolForProcess(processId) - returns(bool success) + returns (bool success) { // check that application is in applied state - IPolicy.Application memory application = _policy.getApplication(processId); + IPolicy.Application memory application = _policy.getApplication( + processId + ); require( application.state == IPolicy.ApplicationState.Applied, "ERROR:POL-020:APPLICATION_STATE_INVALID" @@ -207,15 +235,23 @@ contract PoolController is // calculate required collateral amount uint256 sumInsuredAmount = application.sumInsuredAmount; - uint256 collateralAmount = calculateCollateral(riskpoolId, sumInsuredAmount); + uint256 collateralAmount = calculateCollateral( + riskpoolId, + sumInsuredAmount + ); _collateralAmount[processId] = collateralAmount; - emit LogRiskpoolRequiredCollateral(processId, sumInsuredAmount, collateralAmount); + emit LogRiskpoolRequiredCollateral( + processId, + sumInsuredAmount, + collateralAmount + ); - // check that riskpool stays inside sum insured cap when underwriting this application + // check that riskpool stays inside sum insured cap when underwriting this application IPool.Pool storage pool = _riskpools[riskpoolId]; require( - pool.sumOfSumInsuredCap >= pool.sumOfSumInsuredAtRisk + sumInsuredAmount, + pool.sumOfSumInsuredCap >= + pool.sumOfSumInsuredAtRisk + sumInsuredAmount, "ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED" ); @@ -228,26 +264,35 @@ contract PoolController is pool.lockedCapital += collateralAmount; pool.updatedAt = block.timestamp; - emit LogRiskpoolCollateralizationSucceeded(riskpoolId, processId, sumInsuredAmount); + emit LogRiskpoolCollateralizationSucceeded( + riskpoolId, + processId, + sumInsuredAmount + ); } else { - emit LogRiskpoolCollateralizationFailed(riskpoolId, processId, sumInsuredAmount); + emit LogRiskpoolCollateralizationFailed( + riskpoolId, + processId, + sumInsuredAmount + ); } } - - function calculateCollateral(uint256 riskpoolId, uint256 sumInsuredAmount) - public - view - returns (uint256 collateralAmount) - { - uint256 collateralization = getRiskpool(riskpoolId).collateralizationLevel; + function calculateCollateral( + uint256 riskpoolId, + uint256 sumInsuredAmount + ) public view returns (uint256 collateralAmount) { + uint256 collateralization = getRiskpool(riskpoolId) + .collateralizationLevel; // fully collateralized case if (collateralization == FULL_COLLATERALIZATION_LEVEL) { collateralAmount = sumInsuredAmount; - // over or under collateralized case + // over or under collateralized case } else if (collateralization > 0) { - collateralAmount = (collateralization * sumInsuredAmount) / FULL_COLLATERALIZATION_LEVEL; + collateralAmount = + (collateralization * sumInsuredAmount) / + FULL_COLLATERALIZATION_LEVEL; } // collateralization == 0, eg complete risk coverd by re insurance outside gif else { @@ -255,9 +300,12 @@ contract PoolController is } } - - function processPremium(bytes32 processId, uint256 amount) - external override + function processPremium( + bytes32 processId, + uint256 amount + ) + external + override onlyPolicyFlow("Pool") onlyActivePoolForProcess(processId) { @@ -271,9 +319,12 @@ contract PoolController is pool.updatedAt = block.timestamp; } - - function processPayout(bytes32 processId, uint256 amount) - external override + function processPayout( + bytes32 processId, + uint256 amount + ) + external + override onlyPolicyFlow("Pool") onlyActivePoolForProcess(processId) { @@ -282,7 +333,10 @@ contract PoolController is IPool.Pool storage pool = _riskpools[riskpoolId]; require(pool.createdAt > 0, "ERROR:POL-026:RISKPOOL_ID_INVALID"); require(pool.capital >= amount, "ERROR:POL-027:CAPITAL_TOO_LOW"); - require(pool.lockedCapital >= amount, "ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW"); + require( + pool.lockedCapital >= amount, + "ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW" + ); require(pool.balance >= amount, "ERROR:POL-029:BALANCE_TOO_LOW"); pool.capital -= amount; @@ -294,11 +348,9 @@ contract PoolController is riskpool.processPolicyPayout(processId, amount); } - - function release(bytes32 processId) - external override - onlyPolicyFlow("Pool") - { + function release( + bytes32 processId + ) external override onlyPolicyFlow("Pool") { IPolicy.Policy memory policy = _policy.getPolicy(processId); require( policy.state == IPolicy.PolicyState.Closed, @@ -309,11 +361,14 @@ contract PoolController is IRiskpool riskpool = _getRiskpoolComponent(metadata); riskpool.releasePolicy(processId); - IPolicy.Application memory application = _policy.getApplication(processId); + IPolicy.Application memory application = _policy.getApplication( + processId + ); uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; IPool.Pool storage pool = _riskpools[riskpoolId]; - uint256 remainingCollateralAmount = _collateralAmount[processId] - policy.payoutAmount; + uint256 remainingCollateralAmount = _collateralAmount[processId] - + policy.payoutAmount; pool.sumOfSumInsuredAtRisk -= application.sumInsuredAmount; pool.lockedCapital -= remainingCollateralAmount; @@ -321,88 +376,134 @@ contract PoolController is // free memory delete _collateralAmount[processId]; - emit LogRiskpoolCollateralReleased(riskpoolId, processId, remainingCollateralAmount); + emit LogRiskpoolCollateralReleased( + riskpoolId, + processId, + remainingCollateralAmount + ); } - function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles) - external - onlyRiskpoolService - { - require(maxNumberOfActiveBundles > 0, "ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID"); - _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = maxNumberOfActiveBundles; + function setMaximumNumberOfActiveBundles( + uint256 riskpoolId, + uint256 maxNumberOfActiveBundles + ) external onlyRiskpoolService { + require( + maxNumberOfActiveBundles > 0, + "ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID" + ); + _maxmimumNumberOfActiveBundlesForRiskpoolId[ + riskpoolId + ] = maxNumberOfActiveBundles; } - function getMaximumNumberOfActiveBundles(uint256 riskpoolId) public view returns(uint256 maximumNumberOfActiveBundles) { + function getMaximumNumberOfActiveBundles( + uint256 riskpoolId + ) public view returns (uint256 maximumNumberOfActiveBundles) { return _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId]; } - - function riskpools() external view returns(uint256 idx) { return _riskpoolIds.length; } + function riskpools() external view returns (uint256 idx) { + return _riskpoolIds.length; + } - function getRiskpool(uint256 riskpoolId) public view returns(IPool.Pool memory riskPool) { + function getRiskpool( + uint256 riskpoolId + ) public view returns (IPool.Pool memory riskPool) { riskPool = _riskpools[riskpoolId]; - require(riskPool.createdAt > 0, "ERROR:POL-040:RISKPOOL_NOT_REGISTERED"); + require( + riskPool.createdAt > 0, + "ERROR:POL-040:RISKPOOL_NOT_REGISTERED" + ); } - function getRiskPoolForProduct(uint256 productId) external view returns (uint256 riskpoolId) { + function getRiskPoolForProduct( + uint256 productId + ) external view returns (uint256 riskpoolId) { return _riskpoolIdForProductId[productId]; } - function activeBundles(uint256 riskpoolId) external view returns(uint256 numberOfActiveBundles) { + function activeBundles( + uint256 riskpoolId + ) external view returns (uint256 numberOfActiveBundles) { return EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]); } - function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external view returns(uint256 bundleId) { + function getActiveBundleId( + uint256 riskpoolId, + uint256 bundleIdx + ) external view returns (uint256 bundleId) { require( - bundleIdx < EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]), + bundleIdx < + EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]), "ERROR:POL-041:BUNDLE_IDX_TOO_LARGE" ); - return EnumerableSet.at(_activeBundleIdsForRiskpoolId[riskpoolId], bundleIdx); + return + EnumerableSet.at( + _activeBundleIdsForRiskpoolId[riskpoolId], + bundleIdx + ); } - function addBundleIdToActiveSet(uint256 riskpoolId, uint256 bundleId) - external - onlyRiskpoolService - { + function addBundleIdToActiveSet( + uint256 riskpoolId, + uint256 bundleId + ) external onlyRiskpoolService { require( - !EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), + !EnumerableSet.contains( + _activeBundleIdsForRiskpoolId[riskpoolId], + bundleId + ), "ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET" ); require( - EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]) < _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId], + EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]) < + _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId], "ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED" ); EnumerableSet.add(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId); } - function removeBundleIdFromActiveSet(uint256 riskpoolId, uint256 bundleId) - external - onlyRiskpoolService - { + function removeBundleIdFromActiveSet( + uint256 riskpoolId, + uint256 bundleId + ) external onlyRiskpoolService { require( - EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), + EnumerableSet.contains( + _activeBundleIdsForRiskpoolId[riskpoolId], + bundleId + ), "ERROR:POL-044:BUNDLE_ID_NOT_IN_SET" ); - EnumerableSet.remove(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId); + EnumerableSet.remove( + _activeBundleIdsForRiskpoolId[riskpoolId], + bundleId + ); } function getFullCollateralizationLevel() external pure returns (uint256) { return FULL_COLLATERALIZATION_LEVEL; } - function _getRiskpoolComponent(IPolicy.Metadata memory metadata) internal view returns (IRiskpool riskpool) { + function _getRiskpoolComponent( + IPolicy.Metadata memory metadata + ) internal view returns (IRiskpool riskpool) { uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; require(riskpoolId > 0, "ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST"); riskpool = _getRiskpoolForId(riskpoolId); } - function _getRiskpoolForId(uint256 riskpoolId) internal view returns (IRiskpool riskpool) { - require(_component.isRiskpool(riskpoolId), "ERROR:POL-046:COMPONENT_NOT_RISKPOOL"); - + function _getRiskpoolForId( + uint256 riskpoolId + ) internal view returns (IRiskpool riskpool) { + require( + _component.isRiskpool(riskpoolId), + "ERROR:POL-046:COMPONENT_NOT_RISKPOOL" + ); + IComponent cmp = _component.getComponent(riskpoolId); riskpool = IRiskpool(address(cmp)); } diff --git a/contracts/modules/QueryModule.sol b/contracts/modules/QueryModule.sol index f54359aa..e894e0f6 100644 --- a/contracts/modules/QueryModule.sol +++ b/contracts/modules/QueryModule.sol @@ -13,14 +13,16 @@ import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; * @dev The smart contract implements the "IQuery" interface and extends the "CoreController" contract. * The contract imports several external contracts from the "etherisc/gif-interface" repository, including "IComponent.sol", "IOracle.sol", "IQuery.sol", and "IInstanceService.sol". * It also imports two local contracts, "ComponentController.sol" and "CoreController.sol". - * + * * The contract defines a private variable `_component` of type "ComponentController" and an array `_oracleRequests` of type "OracleRequest[]". - * + * * The contract includes two modifiers: + * * 1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the "OracleService" contract address stored in the CoreController. * 2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`. - * + * * The contract provides the following functions: + * * - `_afterInitialize()`: Sets the `_component` variable to the address of the "ComponentController" contract. It is called after contract initialization and only during the initialization phase. * - `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the "Query" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event. * - `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the "OracleService" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event. @@ -28,18 +30,15 @@ import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; * - `getProcessId()`: Returns the process ID associated with a given `requestId`. * - `getOracleRequestCount()`: Returns the number of oracle requests made. * - `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component. - * + * * The contract emits the following events: + * * 1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID. * 2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status. * 3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID. */ - -contract QueryModule is - IQuery, - CoreController -{ +contract QueryModule is IQuery, CoreController { ComponentController private _component; OracleRequest[] private _oracleRequests; @@ -82,18 +81,15 @@ contract QueryModule is string calldata callbackMethodName, address callbackContractAddress, uint256 responsibleOracleId - ) - external - override - onlyPolicyFlow("Query") - returns (uint256 requestId) - { - uint256 componentId = _component.getComponentId(callbackContractAddress); + ) external override onlyPolicyFlow("Query") returns (uint256 requestId) { + uint256 componentId = _component.getComponentId( + callbackContractAddress + ); require( _component.isProduct(componentId), "ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT" ); - + requestId = _oracleRequests.length; _oracleRequests.push(); @@ -107,45 +103,40 @@ contract QueryModule is req.responsibleOracleId = responsibleOracleId; req.createdAt = block.timestamp; // solhint-disable-line - _getOracle(responsibleOracleId).request( - requestId, - input - ); + _getOracle(responsibleOracleId).request(requestId, input); emit LogOracleRequested(processId, requestId, responsibleOracleId); } /* Oracle Response */ // respond only works for active oracles - // modifier onlyResponsibleOracle contains a function call to _getOracle + // modifier onlyResponsibleOracle contains a function call to _getOracle // which reverts if oracle is not active // as a result, all response calls by oracles that are not active will revert function respond( uint256 requestId, address responder, bytes calldata data - ) - external override - onlyOracleService - onlyResponsibleOracle(requestId, responder) + ) + external + override + onlyOracleService + onlyResponsibleOracle(requestId, responder) { OracleRequest storage req = _oracleRequests[requestId]; string memory functionSignature = string( - abi.encodePacked( - req.callbackMethodName, - "(uint256,bytes32,bytes)" - )); + abi.encodePacked(req.callbackMethodName, "(uint256,bytes32,bytes)") + ); bytes32 processId = req.processId; - (bool success, ) = - req.callbackContractAddress.call( - abi.encodeWithSignature( - functionSignature, - requestId, - processId, - data - ) - ); + (bool success, ) = req.callbackContractAddress.call( + abi.encodeWithSignature( + functionSignature, + requestId, + processId, + data + ) + ); require(success, "ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL"); delete _oracleRequests[requestId]; @@ -155,28 +146,29 @@ contract QueryModule is emit LogOracleResponded(processId, requestId, responder, success); } - function cancel(uint256 requestId) - external override - onlyPolicyFlow("Query") - { + function cancel( + uint256 requestId + ) external override onlyPolicyFlow("Query") { OracleRequest storage oracleRequest = _oracleRequests[requestId]; - require(oracleRequest.createdAt > 0, "ERROR:QUC-030:REQUEST_ID_INVALID"); + require( + oracleRequest.createdAt > 0, + "ERROR:QUC-030:REQUEST_ID_INVALID" + ); delete _oracleRequests[requestId]; emit LogOracleCanceled(requestId); } - - function getProcessId(uint256 requestId) - external - view - returns(bytes32 processId) - { + function getProcessId( + uint256 requestId + ) external view returns (bytes32 processId) { OracleRequest memory oracleRequest = _oracleRequests[requestId]; - require(oracleRequest.createdAt > 0, "ERROR:QUC-040:REQUEST_ID_INVALID"); + require( + oracleRequest.createdAt > 0, + "ERROR:QUC-040:REQUEST_ID_INVALID" + ); return oracleRequest.processId; } - function getOracleRequestCount() public view returns (uint256 _count) { return _oracleRequests.length; } @@ -186,12 +178,13 @@ contract QueryModule is oracle = IOracle(address(cmp)); require( - _component.getComponentType(id) == IComponent.ComponentType.Oracle, + _component.getComponentType(id) == IComponent.ComponentType.Oracle, "ERROR:QUC-041:COMPONENT_NOT_ORACLE" ); require( - _component.getComponentState(id) == IComponent.ComponentState.Active, + _component.getComponentState(id) == + IComponent.ComponentState.Active, "ERROR:QUC-042:ORACLE_NOT_ACTIVE" ); } diff --git a/contracts/modules/RegistryController.sol b/contracts/modules/RegistryController.sol index 1464fa3b..b1fa2811 100644 --- a/contracts/modules/RegistryController.sol +++ b/contracts/modules/RegistryController.sol @@ -12,15 +12,16 @@ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; /** * @dev The smart contract implements the `IRegistry` interface and inherits from the `CoreController` contract. * The contract provides functionality for registering, deregistering, and accessing contracts within different releases. It maintains mappings and sets to store contract names and addresses in different releases. - * + * * - `MAX_CONTRACTS`: A constant variable set to 100, representing the maximum number of contracts allowed in a release. * - `release`: A bytes32 variable representing the current release identifier. * - `startBlock`: An unsigned integer storing the block number at which the contract was deployed. * - `_contracts`: A nested mapping that stores contract addresses based on the release and contract name. * - `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release. * - `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release. - * + * * Functions: + * * - `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs. * - `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release. * - `getRelease()`: Returns the current release identifier. @@ -33,22 +34,19 @@ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; * - `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one. * - `contracts()`: Returns the number of contracts in the current release. * - `contractName()`: Returns the name of the contract at the specified index in the contractNames set. - * + * * Internal functions: + * * - `_getContractInRelease()`: Returns the address of a contract in a specific release. * - `_registerInRelease()`: Registers a contract in a release. * - `_deregisterInRelease()`: Deregisters a contract in a specific release. - * + * * The contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered. - * + * * Overall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts. */ - -contract RegistryController is - IRegistry, - CoreController -{ +contract RegistryController is IRegistry, CoreController { using EnumerableSet for EnumerableSet.Bytes32Set; /** @@ -62,12 +60,15 @@ contract RegistryController is * We use semantic versioning. */ bytes32 public release; - + uint256 public startBlock; - mapping(bytes32 /* release */ => mapping(bytes32 /* contract name */ => address /* contract address */)) public _contracts; - mapping(bytes32 /* release */ => uint256 /* number of contracts in release */) public _contractsInRelease; - mapping(bytes32 /* release */ => EnumerableSet.Bytes32Set /* contract names */) private _contractNames; + mapping(bytes32 /* release */ => mapping(bytes32 /* contract name */ => address /* contract address */)) + public _contracts; + mapping(bytes32 /* release */ => uint256 /* number of contracts in release */) + public _contractsInRelease; + mapping(bytes32 /* release */ => EnumerableSet.Bytes32Set /* contract names */) + private _contractNames; function initializeRegistry(bytes32 _initialRelease) public initializer { // _setupRegistry(address(this)); @@ -75,99 +76,94 @@ contract RegistryController is // this is a temporary assignment and must only be used // during the intial setup of a gif instance - // at execution time _msgSender is the address of the + // at execution time _msgSender is the address of the // registry proxy. release = _initialRelease; _contracts[release]["InstanceOperatorService"] = _msgSender(); EnumerableSet.add(_contractNames[release], "InstanceOperatorService"); _contractsInRelease[release] = 1; - // register the deployment block for reading logs startBlock = block.number; } - function ensureSender(address sender, bytes32 _contractName) - external view override - returns(bool _senderMatches) - { - _senderMatches = (sender == _getContractInRelease(release, _contractName)); + function ensureSender( + address sender, + bytes32 _contractName + ) external view override returns (bool _senderMatches) { + _senderMatches = (sender == + _getContractInRelease(release, _contractName)); } /** * @dev get current release */ - function getRelease() - external override view - returns (bytes32 _release) - { + function getRelease() external view override returns (bytes32 _release) { _release = release; } /** * @dev Get contract's address in the current release */ - function getContract(bytes32 _contractName) - public override view - returns (address _addr) - { + function getContract( + bytes32 _contractName + ) public view override returns (address _addr) { _addr = _getContractInRelease(release, _contractName); } /** * @dev Register contract in the current release */ - function register(bytes32 _contractName, address _contractAddress) - external override - onlyInstanceOperator - { + function register( + bytes32 _contractName, + address _contractAddress + ) external override onlyInstanceOperator { _registerInRelease(release, false, _contractName, _contractAddress); } /** * @dev Deregister contract in the current release */ - function deregister(bytes32 _contractName) - external override - onlyInstanceOperator - { + function deregister( + bytes32 _contractName + ) external override onlyInstanceOperator { _deregisterInRelease(release, _contractName); } /** * @dev Get contract's address in certain release */ - function getContractInRelease(bytes32 _release, bytes32 _contractName) - external override view - returns (address _addr) - { + function getContractInRelease( + bytes32 _release, + bytes32 _contractName + ) external view override returns (address _addr) { _addr = _getContractInRelease(_release, _contractName); } /** * @dev Register contract in certain release */ - function registerInRelease(bytes32 _release, bytes32 _contractName, address _contractAddress) - external override - onlyInstanceOperator - { + function registerInRelease( + bytes32 _release, + bytes32 _contractName, + address _contractAddress + ) external override onlyInstanceOperator { _registerInRelease(_release, false, _contractName, _contractAddress); } - function deregisterInRelease(bytes32 _release, bytes32 _contractName) - external override - onlyInstanceOperator - { + function deregisterInRelease( + bytes32 _release, + bytes32 _contractName + ) external override onlyInstanceOperator { _deregisterInRelease(_release, _contractName); } /** * @dev Create new release, copy contracts from previous release */ - function prepareRelease(bytes32 _newRelease) - external override - onlyInstanceOperator - { + function prepareRelease( + bytes32 _newRelease + ) external override onlyInstanceOperator { uint256 countContracts = _contractsInRelease[release]; require(countContracts > 0, "ERROR:REC-001:EMPTY_RELEASE"); @@ -192,21 +188,28 @@ contract RegistryController is emit LogReleasePrepared(release); } - function contracts() external override view returns (uint256 _numberOfContracts) { + function contracts() + external + view + override + returns (uint256 _numberOfContracts) + { _numberOfContracts = EnumerableSet.length(_contractNames[release]); } - function contractName(uint256 idx) external override view returns (bytes32 _contractName) { + function contractName( + uint256 idx + ) external view override returns (bytes32 _contractName) { _contractName = EnumerableSet.at(_contractNames[release], idx); } /** * @dev Get contract's address in certain release */ - function _getContractInRelease(bytes32 _release, bytes32 _contractName) - internal view - returns (address _addr) - { + function _getContractInRelease( + bytes32 _release, + bytes32 _contractName + ) internal view returns (address _addr) { _addr = _contracts[_release][_contractName]; } @@ -218,9 +221,7 @@ contract RegistryController is bool isNewRelease, bytes32 _contractName, address _contractAddress - ) - internal - { + ) internal { bool isNew = false; require( @@ -228,16 +229,26 @@ contract RegistryController is "ERROR:REC-010:MAX_CONTRACTS_LIMIT" ); - // during `prepareRelease` the _release is not yet known, so check should not fail in this case - require(_contractsInRelease[_release] > 0 || isNewRelease, "ERROR:REC-011:RELEASE_UNKNOWN"); + // during `prepareRelease` the _release is not yet known, so check should not fail in this case + require( + _contractsInRelease[_release] > 0 || isNewRelease, + "ERROR:REC-011:RELEASE_UNKNOWN" + ); require(_contractName != 0x00, "ERROR:REC-012:CONTRACT_NAME_EMPTY"); require( - (! EnumerableSet.contains(_contractNames[_release], _contractName) ) - // the contract 'InstanceOperatorService' is initially registered with the owner address (see method initializeRegistry()); - // due to this this special check is required - || (_contractName == "InstanceOperatorService" && _contracts[_release][_contractName] == _msgSender()), - "ERROR:REC-013:CONTRACT_NAME_EXISTS"); - require(_contractAddress != address(0), "ERROR:REC-014:CONTRACT_ADDRESS_ZERO"); + ( + !EnumerableSet.contains(_contractNames[_release], _contractName) + ) || + // the contract 'InstanceOperatorService' is initially registered with the owner address (see method initializeRegistry()); + // due to this this special check is required + (_contractName == "InstanceOperatorService" && + _contracts[_release][_contractName] == _msgSender()), + "ERROR:REC-013:CONTRACT_NAME_EXISTS" + ); + require( + _contractAddress != address(0), + "ERROR:REC-014:CONTRACT_ADDRESS_ZERO" + ); if (_contracts[_release][_contractName] == address(0)) { EnumerableSet.add(_contractNames[_release], _contractName); @@ -247,7 +258,8 @@ contract RegistryController is _contracts[_release][_contractName] = _contractAddress; require( - _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]), + _contractsInRelease[_release] == + EnumerableSet.length(_contractNames[_release]), "ERROR:REC-015:CONTRACT_NUMBER_MISMATCH" ); @@ -259,24 +271,28 @@ contract RegistryController is ); } - /** * @dev Deregister contract in certain release */ - function _deregisterInRelease(bytes32 _release, bytes32 _contractName) - internal - onlyInstanceOperator - { - require(EnumerableSet.contains(_contractNames[_release], _contractName), "ERROR:REC-020:CONTRACT_UNKNOWN"); + function _deregisterInRelease( + bytes32 _release, + bytes32 _contractName + ) internal onlyInstanceOperator { + require( + EnumerableSet.contains(_contractNames[_release], _contractName), + "ERROR:REC-020:CONTRACT_UNKNOWN" + ); EnumerableSet.remove(_contractNames[_release], _contractName); _contractsInRelease[_release] -= 1; delete _contracts[_release][_contractName]; - + require( - _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]), - "ERROR:REC-021:CONTRACT_NUMBER_MISMATCH"); - emit LogContractDeregistered(_release, _contractName); + _contractsInRelease[_release] == + EnumerableSet.length(_contractNames[_release]), + "ERROR:REC-021:CONTRACT_NUMBER_MISMATCH" + ); + emit LogContractDeregistered(_release, _contractName); } } diff --git a/contracts/modules/TreasuryModule.sol b/contracts/modules/TreasuryModule.sol index 3ee8241b..28bc54ae 100644 --- a/contracts/modules/TreasuryModule.sol +++ b/contracts/modules/TreasuryModule.sol @@ -20,8 +20,9 @@ import "@openzeppelin/contracts/utils/Strings.sol"; /** * @dev The smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts. * The contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the "etherisc/gif-interface" and "openzeppelin/contracts" libraries. - * + * * The contract defines several state variables, including: + * * - FRACTION_FULL_UNIT: a constant representing the full unit value (10^18). * - FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%). * - event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation. @@ -35,32 +36,39 @@ import "@openzeppelin/contracts/utils/Strings.sol"; * - _component: an instance of the ComponentController contract. * - _policy: an instance of the PolicyController contract. * - _pool: an instance of the PoolController contract. - * + * * The contract includes several modifiers that enforce certain conditions on function execution, such as the instanceWalletDefined modifier, which requires the instance wallet address to be defined; * the riskpoolWalletDefinedForProcess modifier, which requires the riskpool wallet address to be defined for a given process ID; * the riskpoolWalletDefinedForBundle modifier, which requires the riskpool wallet address to be defined for a given bundle ID; * the whenNotSuspended modifier, which requires the contract to not be paused; and the onlyRiskpoolService modifier, which restricts access to the RiskpoolService contract. - * + * * The contract contains various functions for managing the treasury, such as setting the product token address, setting the instance wallet address, setting the riskpool wallet address, creating fee specifications, and setting premium and capital fees for components. * There are also functions for suspending and resuming the treasury contract. - * + * * The contract includes a function to calculate the fee amount and net amount for a given component ID and amount. * It also includes functions to process premium payments for policies, either for the remaining premium amount or for a specific amount. - * + * * Overall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system. */ -contract TreasuryModule is - ITreasury, - CoreController, - Pausable -{ - uint256 public constant FRACTION_FULL_UNIT = 10**18; +contract TreasuryModule is ITreasury, CoreController, Pausable { + uint256 public constant FRACTION_FULL_UNIT = 10 ** 18; uint256 public constant FRACTIONAL_FEE_MAX = FRACTION_FULL_UNIT / 4; // max frctional fee is 25% - event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); - event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); - event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); + event LogTransferHelperInputValidation1Failed( + bool tokenIsContract, + address from, + address to + ); + event LogTransferHelperInputValidation2Failed( + uint256 balance, + uint256 allowance + ); + event LogTransferHelperCallFailed( + bool callSuccess, + uint256 returnDataLength, + bytes returnData + ); address private _instanceWalletAddress; mapping(uint256 => address) private _riskpoolWallet; // riskpoolId => walletAddress @@ -75,15 +83,19 @@ contract TreasuryModule is modifier instanceWalletDefined() { require( _instanceWalletAddress != address(0), - "ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED"); + "ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED" + ); _; } modifier riskpoolWalletDefinedForProcess(bytes32 processId) { - (uint256 riskpoolId, address walletAddress) = _getRiskpoolWallet(processId); + (uint256 riskpoolId, address walletAddress) = _getRiskpoolWallet( + processId + ); require( walletAddress != address(0), - "ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED"); + "ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED" + ); _; } @@ -91,7 +103,8 @@ contract TreasuryModule is IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); require( getRiskpoolWallet(bundle.riskpoolId) != address(0), - "ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED"); + "ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED" + ); _; } @@ -116,70 +129,77 @@ contract TreasuryModule is _pool = PoolController(_getContractAddress("Pool")); } - function suspend() - external - onlyInstanceOperator - { + function suspend() external onlyInstanceOperator { _pause(); emit LogTreasurySuspended(); } - function resume() - external - onlyInstanceOperator - { + function resume() external onlyInstanceOperator { _unpause(); emit LogTreasuryResumed(); } - function setProductToken(uint256 productId, address erc20Address) - external override - whenNotSuspended - onlyInstanceOperator - { + function setProductToken( + uint256 productId, + address erc20Address + ) external override whenNotSuspended onlyInstanceOperator { require(erc20Address != address(0), "ERROR:TRS-010:TOKEN_ADDRESS_ZERO"); require(_component.isProduct(productId), "ERROR:TRS-011:NOT_PRODUCT"); - require(address(_componentToken[productId]) == address(0), "ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET"); - + require( + address(_componentToken[productId]) == address(0), + "ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET" + ); + IComponent component = _component.getComponent(productId); - require(address(IProduct(address(component)).getToken()) == erc20Address, "ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING"); + require( + address(IProduct(address(component)).getToken()) == erc20Address, + "ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING" + ); uint256 riskpoolId = _pool.getRiskPoolForProduct(productId); // require if riskpool token is already set and product token does match riskpool token - require(address(_componentToken[riskpoolId]) == address(0) - || address(_componentToken[riskpoolId]) == erc20Address, - "ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING"); - + require( + address(_componentToken[riskpoolId]) == address(0) || + address(_componentToken[riskpoolId]) == erc20Address, + "ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING" + ); + _componentToken[productId] = IERC20(erc20Address); _componentToken[riskpoolId] = IERC20(erc20Address); emit LogTreasuryProductTokenSet(productId, riskpoolId, erc20Address); } - function setInstanceWallet(address instanceWalletAddress) - external override - whenNotSuspended - onlyInstanceOperator - { - require(instanceWalletAddress != address(0), "ERROR:TRS-015:WALLET_ADDRESS_ZERO"); + function setInstanceWallet( + address instanceWalletAddress + ) external override whenNotSuspended onlyInstanceOperator { + require( + instanceWalletAddress != address(0), + "ERROR:TRS-015:WALLET_ADDRESS_ZERO" + ); _instanceWalletAddress = instanceWalletAddress; - emit LogTreasuryInstanceWalletSet (instanceWalletAddress); + emit LogTreasuryInstanceWalletSet(instanceWalletAddress); } - function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) - external override - whenNotSuspended - onlyInstanceOperator - { + function setRiskpoolWallet( + uint256 riskpoolId, + address riskpoolWalletAddress + ) external override whenNotSuspended onlyInstanceOperator { IComponent component = _component.getComponent(riskpoolId); - require(_component.isRiskpool(riskpoolId), "ERROR:TRS-016:NOT_RISKPOOL"); - require(riskpoolWalletAddress != address(0), "ERROR:TRS-017:WALLET_ADDRESS_ZERO"); + require( + _component.isRiskpool(riskpoolId), + "ERROR:TRS-016:NOT_RISKPOOL" + ); + require( + riskpoolWalletAddress != address(0), + "ERROR:TRS-017:WALLET_ADDRESS_ZERO" + ); _riskpoolWallet[riskpoolId] = riskpoolWalletAddress; - emit LogTreasuryRiskpoolWalletSet (riskpoolId, riskpoolWalletAddress); + emit LogTreasuryRiskpoolWalletSet(riskpoolId, riskpoolWalletAddress); } function createFeeSpecification( @@ -187,32 +207,37 @@ contract TreasuryModule is uint256 fixedFee, uint256 fractionalFee, bytes calldata feeCalculationData - ) - external override - view - returns(FeeSpecification memory) - { - require(_component.isProduct(componentId) || _component.isRiskpool(componentId), "ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL"); - require(fractionalFee <= FRACTIONAL_FEE_MAX, "ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG"); - - return FeeSpecification( - componentId, - fixedFee, - fractionalFee, - feeCalculationData, - block.timestamp, // solhint-disable-line - block.timestamp // solhint-disable-line - ); + ) external view override returns (FeeSpecification memory) { + require( + _component.isProduct(componentId) || + _component.isRiskpool(componentId), + "ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL" + ); + require( + fractionalFee <= FRACTIONAL_FEE_MAX, + "ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG" + ); + + return + FeeSpecification( + componentId, + fixedFee, + fractionalFee, + feeCalculationData, + block.timestamp, // solhint-disable-line + block.timestamp // solhint-disable-line + ); } - function setPremiumFees(FeeSpecification calldata feeSpec) - external override - whenNotSuspended - onlyInstanceOperator - { - require(_component.isProduct(feeSpec.componentId), "ERROR:TRS-022:NOT_PRODUCT"); - - // record original creation timestamp + function setPremiumFees( + FeeSpecification calldata feeSpec + ) external override whenNotSuspended onlyInstanceOperator { + require( + _component.isProduct(feeSpec.componentId), + "ERROR:TRS-022:NOT_PRODUCT" + ); + + // record original creation timestamp uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt; _fees[feeSpec.componentId] = feeSpec; @@ -221,21 +246,22 @@ contract TreasuryModule is _fees[feeSpec.componentId].createdAt = originalCreatedAt; } - emit LogTreasuryPremiumFeesSet ( + emit LogTreasuryPremiumFeesSet( feeSpec.componentId, - feeSpec.fixedFee, - feeSpec.fractionalFee); + feeSpec.fixedFee, + feeSpec.fractionalFee + ); } + function setCapitalFees( + FeeSpecification calldata feeSpec + ) external override whenNotSuspended onlyInstanceOperator { + require( + _component.isRiskpool(feeSpec.componentId), + "ERROR:TRS-023:NOT_RISKPOOL" + ); - function setCapitalFees(FeeSpecification calldata feeSpec) - external override - whenNotSuspended - onlyInstanceOperator - { - require(_component.isRiskpool(feeSpec.componentId), "ERROR:TRS-023:NOT_RISKPOOL"); - - // record original creation timestamp + // record original creation timestamp uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt; _fees[feeSpec.componentId] = feeSpec; @@ -244,74 +270,72 @@ contract TreasuryModule is _fees[feeSpec.componentId].createdAt = originalCreatedAt; } - emit LogTreasuryCapitalFeesSet ( + emit LogTreasuryCapitalFeesSet( feeSpec.componentId, - feeSpec.fixedFee, - feeSpec.fractionalFee); + feeSpec.fixedFee, + feeSpec.fractionalFee + ); } - - function calculateFee(uint256 componentId, uint256 amount) - public - view - returns(uint256 feeAmount, uint256 netAmount) - { + function calculateFee( + uint256 componentId, + uint256 amount + ) public view returns (uint256 feeAmount, uint256 netAmount) { FeeSpecification memory feeSpec = getFeeSpecification(componentId); require(feeSpec.createdAt > 0, "ERROR:TRS-024:FEE_SPEC_UNDEFINED"); feeAmount = _calculateFee(feeSpec, amount); netAmount = amount - feeAmount; } - /* - * Process the remaining premium by calculating the remaining amount, the fees for that amount and - * then transfering the fees to the instance wallet and the net premium remaining to the riskpool. - * This will revert if no fee structure is defined. + * Process the remaining premium by calculating the remaining amount, the fees for that amount and + * then transfering the fees to the instance wallet and the net premium remaining to the riskpool. + * This will revert if no fee structure is defined. */ - function processPremium(bytes32 processId) - external override + function processPremium( + bytes32 processId + ) + external + override whenNotSuspended onlyPolicyFlow("Treasury") - returns( - bool success, - uint256 feeAmount, - uint256 netPremiumAmount - ) + returns (bool success, uint256 feeAmount, uint256 netPremiumAmount) { - IPolicy.Policy memory policy = _policy.getPolicy(processId); + IPolicy.Policy memory policy = _policy.getPolicy(processId); if (policy.premiumPaidAmount < policy.premiumExpectedAmount) { - (success, feeAmount, netPremiumAmount) - = processPremium(processId, policy.premiumExpectedAmount - policy.premiumPaidAmount); + (success, feeAmount, netPremiumAmount) = processPremium( + processId, + policy.premiumExpectedAmount - policy.premiumPaidAmount + ); } } /* - * Process the premium by calculating the fees for the amount and - * then transfering the fees to the instance wallet and the net premium to the riskpool. - * This will revert if no fee structure is defined. + * Process the premium by calculating the fees for the amount and + * then transfering the fees to the instance wallet and the net premium to the riskpool. + * This will revert if no fee structure is defined. */ - function processPremium(bytes32 processId, uint256 amount) - public override + function processPremium( + bytes32 processId, + uint256 amount + ) + public + override whenNotSuspended instanceWalletDefined riskpoolWalletDefinedForProcess(processId) onlyPolicyFlow("Treasury") - returns( - bool success, - uint256 feeAmount, - uint256 netAmount - ) + returns (bool success, uint256 feeAmount, uint256 netAmount) { - IPolicy.Policy memory policy = _policy.getPolicy(processId); + IPolicy.Policy memory policy = _policy.getPolicy(processId); require( - policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, + policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, "ERROR:TRS-030:AMOUNT_TOO_BIG" ); IPolicy.Metadata memory metadata = _policy.getMetadata(processId); - (feeAmount, netAmount) - = calculateFee(metadata.productId, amount); + (feeAmount, netAmount) = calculateFee(metadata.productId, amount); // check if allowance covers requested amount IERC20 token = getComponentToken(metadata.productId); @@ -321,74 +345,115 @@ contract TreasuryModule is } // collect premium fees - success = TransferHelper.unifiedTransferFrom(token, metadata.owner, _instanceWalletAddress, feeAmount); - emit LogTreasuryFeesTransferred(metadata.owner, _instanceWalletAddress, feeAmount); + success = TransferHelper.unifiedTransferFrom( + token, + metadata.owner, + _instanceWalletAddress, + feeAmount + ); + emit LogTreasuryFeesTransferred( + metadata.owner, + _instanceWalletAddress, + feeAmount + ); require(success, "ERROR:TRS-031:FEE_TRANSFER_FAILED"); // transfer premium net amount to riskpool for product // actual transfer of net premium to riskpool - (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId); - success = TransferHelper.unifiedTransferFrom(token, metadata.owner, riskpoolWalletAddress, netAmount); + ( + uint256 riskpoolId, + address riskpoolWalletAddress + ) = _getRiskpoolWallet(processId); + success = TransferHelper.unifiedTransferFrom( + token, + metadata.owner, + riskpoolWalletAddress, + netAmount + ); - emit LogTreasuryPremiumTransferred(metadata.owner, riskpoolWalletAddress, netAmount); + emit LogTreasuryPremiumTransferred( + metadata.owner, + riskpoolWalletAddress, + netAmount + ); require(success, "ERROR:TRS-032:PREMIUM_TRANSFER_FAILED"); emit LogTreasuryPremiumProcessed(processId, amount); } - - function processPayout(bytes32 processId, uint256 payoutId) - external override + function processPayout( + bytes32 processId, + uint256 payoutId + ) + external + override whenNotSuspended instanceWalletDefined riskpoolWalletDefinedForProcess(processId) onlyPolicyFlow("Treasury") - returns( - uint256 feeAmount, - uint256 netPayoutAmount - ) + returns (uint256 feeAmount, uint256 netPayoutAmount) { IPolicy.Metadata memory metadata = _policy.getMetadata(processId); IERC20 token = getComponentToken(metadata.productId); - (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId); + ( + uint256 riskpoolId, + address riskpoolWalletAddress + ) = _getRiskpoolWallet(processId); - IPolicy.Payout memory payout = _policy.getPayout(processId, payoutId); + IPolicy.Payout memory payout = _policy.getPayout(processId, payoutId); require( - token.balanceOf(riskpoolWalletAddress) >= payout.amount, + token.balanceOf(riskpoolWalletAddress) >= payout.amount, "ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL" ); require( - token.allowance(riskpoolWalletAddress, address(this)) >= payout.amount, + token.allowance(riskpoolWalletAddress, address(this)) >= + payout.amount, "ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL" ); // actual payout to policy holder - bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWalletAddress, metadata.owner, payout.amount); + bool success = TransferHelper.unifiedTransferFrom( + token, + riskpoolWalletAddress, + metadata.owner, + payout.amount + ); feeAmount = 0; netPayoutAmount = payout.amount; - emit LogTreasuryPayoutTransferred(riskpoolWalletAddress, metadata.owner, payout.amount); + emit LogTreasuryPayoutTransferred( + riskpoolWalletAddress, + metadata.owner, + payout.amount + ); require(success, "ERROR:TRS-044:PAYOUT_TRANSFER_FAILED"); - emit LogTreasuryPayoutProcessed(riskpoolId, metadata.owner, payout.amount); + emit LogTreasuryPayoutProcessed( + riskpoolId, + metadata.owner, + payout.amount + ); } - function processCapital(uint256 bundleId, uint256 capitalAmount) - external override + function processCapital( + uint256 bundleId, + uint256 capitalAmount + ) + external + override whenNotSuspended instanceWalletDefined riskpoolWalletDefinedForBundle(bundleId) onlyRiskpoolService - returns( - uint256 feeAmount, - uint256 netCapitalAmount - ) + returns (uint256 feeAmount, uint256 netCapitalAmount) { // obtain relevant fee specification IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); address bundleOwner = _bundle.getOwner(bundleId); - FeeSpecification memory feeSpec = getFeeSpecification(bundle.riskpoolId); + FeeSpecification memory feeSpec = getFeeSpecification( + bundle.riskpoolId + ); require(feeSpec.createdAt > 0, "ERROR:TRS-050:FEE_SPEC_UNDEFINED"); // obtain relevant token for product/riskpool pair @@ -399,40 +464,69 @@ contract TreasuryModule is netCapitalAmount = capitalAmount - feeAmount; // check balance and allowance before starting any transfers - require(token.balanceOf(bundleOwner) >= capitalAmount, "ERROR:TRS-052:BALANCE_TOO_SMALL"); - require(token.allowance(bundleOwner, address(this)) >= capitalAmount, "ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL"); + require( + token.balanceOf(bundleOwner) >= capitalAmount, + "ERROR:TRS-052:BALANCE_TOO_SMALL" + ); + require( + token.allowance(bundleOwner, address(this)) >= capitalAmount, + "ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL" + ); - bool success = TransferHelper.unifiedTransferFrom(token, bundleOwner, _instanceWalletAddress, feeAmount); + bool success = TransferHelper.unifiedTransferFrom( + token, + bundleOwner, + _instanceWalletAddress, + feeAmount + ); - emit LogTreasuryFeesTransferred(bundleOwner, _instanceWalletAddress, feeAmount); + emit LogTreasuryFeesTransferred( + bundleOwner, + _instanceWalletAddress, + feeAmount + ); require(success, "ERROR:TRS-054:FEE_TRANSFER_FAILED"); // transfer net capital address riskpoolWallet = getRiskpoolWallet(bundle.riskpoolId); - success = TransferHelper.unifiedTransferFrom(token, bundleOwner, riskpoolWallet, netCapitalAmount); + success = TransferHelper.unifiedTransferFrom( + token, + bundleOwner, + riskpoolWallet, + netCapitalAmount + ); - emit LogTreasuryCapitalTransferred(bundleOwner, riskpoolWallet, netCapitalAmount); + emit LogTreasuryCapitalTransferred( + bundleOwner, + riskpoolWallet, + netCapitalAmount + ); require(success, "ERROR:TRS-055:CAPITAL_TRANSFER_FAILED"); - emit LogTreasuryCapitalProcessed(bundle.riskpoolId, bundleId, capitalAmount); + emit LogTreasuryCapitalProcessed( + bundle.riskpoolId, + bundleId, + capitalAmount + ); } - function processWithdrawal(uint256 bundleId, uint256 amount) - external override + function processWithdrawal( + uint256 bundleId, + uint256 amount + ) + external + override whenNotSuspended instanceWalletDefined riskpoolWalletDefinedForBundle(bundleId) onlyRiskpoolService - returns( - uint256 feeAmount, - uint256 netAmount - ) + returns (uint256 feeAmount, uint256 netAmount) { // obtain relevant bundle info IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); require( - bundle.capital >= bundle.lockedCapital + amount - || (bundle.lockedCapital == 0 && bundle.balance >= amount), + bundle.capital >= bundle.lockedCapital + amount || + (bundle.lockedCapital == 0 && bundle.balance >= amount), "ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL" ); @@ -442,11 +536,11 @@ contract TreasuryModule is IERC20 token = _componentToken[bundle.riskpoolId]; require( - token.balanceOf(riskpoolWallet) >= amount, + token.balanceOf(riskpoolWallet) >= amount, "ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL" ); require( - token.allowance(riskpoolWallet, address(this)) >= amount, + token.allowance(riskpoolWallet, address(this)) >= amount, "ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL" ); @@ -454,65 +548,74 @@ contract TreasuryModule is // ideally symmetrical reusing capital fee spec for riskpool feeAmount = 0; netAmount = amount; - bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWallet, bundleOwner, netAmount); + bool success = TransferHelper.unifiedTransferFrom( + token, + riskpoolWallet, + bundleOwner, + netAmount + ); - emit LogTreasuryWithdrawalTransferred(riskpoolWallet, bundleOwner, netAmount); + emit LogTreasuryWithdrawalTransferred( + riskpoolWallet, + bundleOwner, + netAmount + ); require(success, "ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED"); - emit LogTreasuryWithdrawalProcessed(bundle.riskpoolId, bundleId, netAmount); + emit LogTreasuryWithdrawalProcessed( + bundle.riskpoolId, + bundleId, + netAmount + ); } - - function getComponentToken(uint256 componentId) - public override - view - returns(IERC20 token) - { - require(_component.isProduct(componentId) || _component.isRiskpool(componentId), "ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL"); + function getComponentToken( + uint256 componentId + ) public view override returns (IERC20 token) { + require( + _component.isProduct(componentId) || + _component.isRiskpool(componentId), + "ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL" + ); return _componentToken[componentId]; } - function getFeeSpecification(uint256 componentId) public override view returns(FeeSpecification memory) { + function getFeeSpecification( + uint256 componentId + ) public view override returns (FeeSpecification memory) { return _fees[componentId]; } - function getFractionFullUnit() public override pure returns(uint256) { - return FRACTION_FULL_UNIT; + function getFractionFullUnit() public pure override returns (uint256) { + return FRACTION_FULL_UNIT; } - function getInstanceWallet() public override view returns(address) { - return _instanceWalletAddress; + function getInstanceWallet() public view override returns (address) { + return _instanceWalletAddress; } - function getRiskpoolWallet(uint256 riskpoolId) public override view returns(address) { + function getRiskpoolWallet( + uint256 riskpoolId + ) public view override returns (address) { return _riskpoolWallet[riskpoolId]; } - function _calculatePremiumFee( - FeeSpecification memory feeSpec, + FeeSpecification memory feeSpec, bytes32 processId ) internal view - returns ( - IPolicy.Application memory application, - uint256 feeAmount - ) + returns (IPolicy.Application memory application, uint256 feeAmount) { - application = _policy.getApplication(processId); + application = _policy.getApplication(processId); feeAmount = _calculateFee(feeSpec, application.premiumAmount); - } - + } function _calculateFee( - FeeSpecification memory feeSpec, + FeeSpecification memory feeSpec, uint256 amount - ) - internal - pure - returns (uint256 feeAmount) - { + ) internal pure returns (uint256 feeAmount) { if (feeSpec.feeCalculationData.length > 0) { revert("ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED"); } @@ -527,12 +630,14 @@ contract TreasuryModule is // require that fee is smaller than amount require(feeAmount < amount, "ERROR:TRS-091:FEE_TOO_BIG"); - } + } - function _getRiskpoolWallet(bytes32 processId) + function _getRiskpoolWallet( + bytes32 processId + ) internal view - returns(uint256 riskpoolId, address riskpoolWalletAddress) + returns (uint256 riskpoolId, address riskpoolWalletAddress) { IPolicy.Metadata memory metadata = _policy.getMetadata(processId); riskpoolId = _pool.getRiskPoolForProduct(metadata.productId); From 2e367d2dceb5ba83e183bd36fb0b25c965f8b25a Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Thu, 8 Jun 2023 16:04:11 +0000 Subject: [PATCH 13/29] Rerun docgen --- docs/modules/api/pages/modules.adoc | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/docs/modules/api/pages/modules.adoc b/docs/modules/api/pages/modules.adoc index d77ac59d..accc2f23 100644 --- a/docs/modules/api/pages/modules.adoc +++ b/docs/modules/api/pages/modules.adoc @@ -246,16 +246,19 @@ import "@etherisc/gif-contracts/contracts/modules/AccessController.sol"; The provided smart contract is called "AccessController" and is written in Solidity. It implements the "IAccess" interface and inherits from the "CoreController" contract and the "AccessControlEnumerable" contract. The contract provides functionalities for access control and role management. Roles: + The contract defines three role identifiers as bytes32 constants: 1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. 2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. 3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. State Variables: + - `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. - `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. Functions: + - `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. - `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. - `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. @@ -272,10 +275,11 @@ Functions: - `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. Modifiers: + - `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. -Overall, the contract provides a flexible access control mechanism by defining roles and -allowing the assignment, revocation, and validation of roles by instance operators. +Overall, the contract provides a flexible access control mechanism by defining roles and +allowing the assignment, revocation, and validation of roles by instance operators. It also sets a default admin role and manages the validity of roles through the `validRole` mapping. [.contract-index] @@ -476,7 +480,8 @@ The smart contract is used to manage bundles, which are collections of policies. - There is a private variable `_bundleCount` to keep track of the number of bundles created. - The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`. -Functions: +Functions: + - `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment. - `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token. - `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance. @@ -726,6 +731,7 @@ The contract defines several mappings and sets to store information about compon It also includes modifiers to restrict access to certain functions based on the caller's role. Functions: + - `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. - `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. - `exists()`: Checks if a component with the given ID exists in the system. @@ -981,6 +987,7 @@ It also imports several interfaces from the "etherisc/gif-interface" library, in The contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract. Functions: + - `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract. - `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function. - `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`. @@ -1090,6 +1097,7 @@ Additionally, it includes functions to process payouts, retrieve metadata and ap The contract inherits from the `IPolicy` interface and the `CoreController` contract. 1. State Variables: + - `metadata`: A mapping that stores metadata associated with policy flows. - `applications`: A mapping that stores insurance applications associated with policy flows. - `policies`: A mapping that stores policies associated with policy flows. @@ -1100,6 +1108,7 @@ The contract inherits from the `IPolicy` interface and the `CoreController` cont - `_component`: A reference to the `ComponentController` contract. 2. Functions: + - `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization. - `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data. - `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data. @@ -1354,6 +1363,7 @@ The smart contract manages riskpools, their registration, funding, defunding, co - The contract defines modifiers for access control to specific functions. Functions: + - `_afterInitialize()`: Called after contract initialization to set addresses of other contracts. - `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration. - `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID. @@ -1568,10 +1578,12 @@ It also imports two local contracts, "ComponentController.sol" and "CoreControll The contract defines a private variable `_component` of type "ComponentController" and an array `_oracleRequests` of type "OracleRequest[]". The contract includes two modifiers: + 1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the "OracleService" contract address stored in the CoreController. 2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`. The contract provides the following functions: + - `_afterInitialize()`: Sets the `_component` variable to the address of the "ComponentController" contract. It is called after contract initialization and only during the initialization phase. - `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the "Query" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event. - `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the "OracleService" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event. @@ -1581,6 +1593,7 @@ The contract provides the following functions: - `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component. The contract emits the following events: + 1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID. 2. `LogOracleResponded`: Indicates the response to an oracle request and includes the process ID, request ID, responder address, and success status. 3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID. @@ -1714,6 +1727,7 @@ The contract provides functionality for registering, deregistering, and accessin - `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release. Functions: + - `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs. - `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release. - `getRelease()`: Returns the current release identifier. @@ -1728,6 +1742,7 @@ Functions: - `contractName()`: Returns the name of the contract at the specified index in the contractNames set. Internal functions: + - `_getContractInRelease()`: Returns the address of a contract in a specific release. - `_registerInRelease()`: Registers a contract in a release. - `_deregisterInRelease()`: Deregisters a contract in a specific release. @@ -1917,6 +1932,7 @@ The smart contract implements the ITreasury interface and inherits from the Core The contract imports several other contracts and interfaces, including ComponentController.sol, PolicyController.sol, BundleController.sol, PoolController.sol, CoreController.sol, TransferHelper.sol, and various interfaces from the "etherisc/gif-interface" and "openzeppelin/contracts" libraries. The contract defines several state variables, including: + - FRACTION_FULL_UNIT: a constant representing the full unit value (10^18). - FRACTIONAL_FEE_MAX: a constant representing the maximum fractional fee value (25%). - event LogTransferHelperInputValidation1Failed: an event that logs a failed input validation. From e509a29369db0ac20f5d4e99a66783d1e573104e Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Fri, 9 Jun 2023 15:47:54 +0000 Subject: [PATCH 14/29] Error Codes --- docs/modules/ROOT/pages/errorCodes.adoc | 283 ++++++++++++++++++++++++ docs/modules/ROOT/pages/index.adoc | 5 + 2 files changed, 288 insertions(+) create mode 100644 docs/modules/ROOT/pages/errorCodes.adoc diff --git a/docs/modules/ROOT/pages/errorCodes.adoc b/docs/modules/ROOT/pages/errorCodes.adoc new file mode 100644 index 00000000..7229a795 --- /dev/null +++ b/docs/modules/ROOT/pages/errorCodes.adoc @@ -0,0 +1,283 @@ +[cols=] +|=== +|Errorcode|File| +|ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET|contracts/modules/AccessController.sol| +|ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID|contracts/modules/AccessController.sol| +|ERROR:ACL-003:ROLE_EXISTING_AND_VALID|contracts/modules/AccessController.sol| +|ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID|contracts/modules/AccessController.sol| +|ERROR:ACM-001:NOT_INSTANCE_OPERATOR|contracts/shared/WithRegistry.sol| +|ERROR:ACM-004:NOT_ORACLE_SERVICE|contracts/shared/WithRegistry.sol| +|ERROR:ACM-005:NOT_ORACLE_OWNER|contracts/shared/WithRegistry.sol| +|ERROR:ACM-006:NOT_PRODUCT_OWNER|contracts/shared/WithRegistry.sol| +|ERROR:AYI-001:RISK_ALREADY_EXISTS|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-002:RISK_UNKNOWN|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-004:RISK_UNDEFINED|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-005:POLICY_HOLDER_ZERO|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-010:RISK_UNDEFINED|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-011:ORACLE_ALREADY_RESPONDED|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-012:RISK_UNDEFINED|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-014:EXISTING_CALLBACK|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-020:RISK_ID_MISMATCH|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-021:RISK_UNDEFINED|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-022:REQUEST_ID_MISMATCH|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-023:EXISTING_CALLBACK|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-024:AAAY_INVALID|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-030:ORACLE_RESPONSE_MISSING|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-031:RISK_ID_INVALID|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-032:ORACLE_RESPONSE_MISSING|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-042:RISK_EXIT_TOO_LARGE|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-043:RISK_TSI_TOO_SMALL|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-044:RISK_TSI_TOO_LARGE|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-046:RISK_APH_ZERO_INVALID|contracts/examples/AyiiProduct.sol| +|ERROR:AYI-047:RISK_APH_TOO_LARGE|contracts/examples/AyiiProduct.sol| +|ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED|contracts/modules/BundleController.sol| +|ERROR:BTK-001:NOT_INITIALIZED|contracts/tokens/BundleToken.sol| +|ERROR:BTK-002:NOT_BUNDLE_MODULE|contracts/tokens/BundleToken.sol| +|ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED|contracts/tokens/BundleToken.sol| +|ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS|contracts/tokens/BundleToken.sol| +|ERROR:BTK-005:TOKEN_ID_INVALID|contracts/tokens/BundleToken.sol| +|ERROR:BUC-001:NOT_RISKPOOL_SERVICE|contracts/modules/BundleController.sol| +|ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| +|ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED|contracts/modules/BundleController.sol| +|ERROR:BUC-010:BUNDLE_ALREADY_EXISTS|contracts/modules/BundleController.sol| +|ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| +|ERROR:BUC-012:BUNDLE_CLOSED|contracts/modules/BundleController.sol| +|ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| +|ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW|contracts/modules/BundleController.sol| +|ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES|contracts/modules/BundleController.sol| +|ERROR:BUC-016:BUNDLE_NOT_CLOSED|contracts/modules/BundleController.sol| +|ERROR:BUC-017:BUNDLE_HAS_BALANCE|contracts/modules/BundleController.sol| +|ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL|contracts/modules/BundleController.sol| +|ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| +|ERROR:BUC-021:BUNDLE_NOT_ACTIVE|contracts/modules/BundleController.sol| +|ERROR:BUC-022:CAPACITY_TOO_LOW|contracts/modules/BundleController.sol| +|ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED|contracts/modules/BundleController.sol| +|ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| +|ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE|contracts/modules/BundleController.sol| +|ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY|contracts/modules/BundleController.sol| +|ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| +|ERROR:BUC-044:BUNDLE_STATE_INVALID|contracts/modules/BundleController.sol| +|ERROR:BUC-045:CAPITAL_TOO_LOW|contracts/modules/BundleController.sol| +|ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW|contracts/modules/BundleController.sol| +|ERROR:BUC-047:BALANCE_TOO_LOW|contracts/modules/BundleController.sol| +|ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| +|ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE|contracts/modules/BundleController.sol| +|ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| +|ERROR:BUC-070:ACTIVE_INVALID_TRANSITION|contracts/modules/BundleController.sol| +|ERROR:BUC-071:LOCKED_INVALID_TRANSITION|contracts/modules/BundleController.sol| +|ERROR:BUC-072:CLOSED_INVALID_TRANSITION|contracts/modules/BundleController.sol| +|ERROR:BUC-073:BURNED_IS_FINAL_STATE|contracts/modules/BundleController.sol| +|ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE|contracts/modules/ComponentController.sol| +|ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE|contracts/modules/ComponentController.sol| +|ERROR:CCR-003:COMPONENT_ALREADY_EXISTS|contracts/modules/ComponentController.sol| +|ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS|contracts/modules/ComponentController.sol| +|ERROR:CCR-005:INVALID_COMPONENT_ID|contracts/modules/ComponentController.sol| +|ERROR:CCR-006:COMPONENT_ADDRESS_ZERO|contracts/modules/ComponentController.sol| +|ERROR:CCR-007:COMPONENT_UNKNOWN|contracts/modules/ComponentController.sol| +|ERROR:CCR-008:INVALID_COMPONENT_ID|contracts/modules/ComponentController.sol| +|ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN|contracts/modules/ComponentController.sol| +|ERROR:CCR-011:UNKNOWN_PRODUCT_ID|contracts/modules/ComponentController.sol| +|ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL|contracts/modules/ComponentController.sol| +|ERROR:CCR-021:CREATED_INVALID_TRANSITION|contracts/modules/ComponentController.sol| +|ERROR:CCR-023:DECLINED_IS_FINAL_STATE|contracts/modules/ComponentController.sol| +|ERROR:CCR-024:ACTIVE_INVALID_TRANSITION|contracts/modules/ComponentController.sol| +|ERROR:CCR-025:PAUSED_INVALID_TRANSITION|contracts/modules/ComponentController.sol| +|ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION|contracts/modules/ComponentController.sol| +|ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED|contracts/modules/ComponentController.sol| +|ERROR:CCR-22:PROPOSED_INVALID_TRANSITION|contracts/modules/ComponentController.sol| +|ERROR:COS-001:NOT_OWNER|contracts/services/ComponentOwnerService.sol| +|ERROR:COS-002:REQUIRED_ROLE_MISSING|contracts/services/ComponentOwnerService.sol| +|ERROR:COS-003:COMPONENT_ID_INVALID|contracts/services/ComponentOwnerService.sol| +|ERROR:COS-004:NOT_OWNER|contracts/services/ComponentOwnerService.sol| +|ERROR:COS-005:REQUIRED_ROLE_MISSING|contracts/services/ComponentOwnerService.sol| +|ERROR:COS-006:IMPLEMENATION_MISSING|contracts/services/ComponentOwnerService.sol| +|ERROR:COS-007:IMPLEMENATION_MISSING|contracts/services/ComponentOwnerService.sol| +|ERROR:CRC-001:NOT_INSTANCE_OPERATOR|contracts/shared/CoreController.sol| +|ERROR:CRC-001:NOT_ORACLE_SERVICE|contracts/modules/QueryModule.sol| +|ERROR:CRC-002:NOT_ON_STORAGE|contracts/shared/CoreController.sol| +|ERROR:CRC-003:NOT_PRODUCT_SERVICE|contracts/shared/CoreController.sol| +|ERROR:CRC-004:CONTRACT_NOT_REGISTERED|contracts/shared/CoreController.sol| +|ERROR:CRP-001:NOT_ADMIN|contracts/shared/CoreProxy.sol| +|ERROR:IOS-001:NOT_INSTANCE_OPERATOR|contracts/services/InstanceOperatorService.sol| +|ERROR:IOS-010:IMPLEMENATION_MISSING|contracts/services/InstanceOperatorService.sol| +|ERROR:IOS-011:IMPLEMENATION_MISSING|contracts/services/InstanceOperatorService.sol| +|ERROR:IS-001:IMPLEMENATION_MISSING|contracts/services/InstanceService.sol| +|ERROR:IS-002:IMPLEMENATION_MISSING|contracts/services/InstanceService.sol| +|ERROR:LIC-001:COMPONENT_NOT_PRODUCT|contracts/modules/LicenseController.sol| +|ERROR:PFD-001:POLICY_NOT_ACTIVE|contracts/flows/PolicyDefaultFlow.sol| +|ERROR:PFD-002:POLICY_NOT_EXPIRED|contracts/flows/PolicyDefaultFlow.sol| +|ERROR:PFD-003:POLICY_CLOSED|contracts/flows/PolicyDefaultFlow.sol| +|ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH|contracts/flows/PolicyDefaultFlow.sol| +|ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH|contracts/flows/PolicyDefaultFlow.sol| +|ERROR:POC-004:METADATA_ALREADY_EXISTS|contracts/modules/PolicyController.sol| +|ERROR:POC-010:METADATA_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-011:APPLICATION_ALREADY_EXISTS|contracts/modules/PolicyController.sol| +|ERROR:POC-012:PREMIUM_AMOUNT_ZERO|contracts/modules/PolicyController.sol| +|ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL|contracts/modules/PolicyController.sol| +|ERROR:POC-014:METADATA_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-015:APPLICATION_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-016:APPLICATION_STATE_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-017:APPLICATION_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-018:APPLICATION_STATE_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-019:METADATA_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-020:APPLICATION_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-021:APPLICATION_STATE_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-022:APPLICATION_ACCESS_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-023:POLICY_ALREADY_EXISTS|contracts/modules/PolicyController.sol| +|ERROR:POC-024:APPLICATION_ACCESS_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-025:APPLICATION_PREMIUM_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-027:POLICY_ACCESS_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-028:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-029:APPLICATION_STATE_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-030:METADATA_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-031:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-032:POLICY_STATE_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS|contracts/modules/PolicyController.sol| +|ERROR:POC-040:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-041:POLICY_NOT_ACTIVE|contracts/modules/PolicyController.sol| +|ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT|contracts/modules/PolicyController.sol| +|ERROR:POC-043:CLAIM_ALREADY_EXISTS|contracts/modules/PolicyController.sol| +|ERROR:POC-050:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS|contracts/modules/PolicyController.sol| +|ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED|contracts/modules/PolicyController.sol| +|ERROR:POC-053:CLAIM_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-054:CLAIM_STATE_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-060:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS|contracts/modules/PolicyController.sol| +|ERROR:POC-062:CLAIM_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-063:CLAIM_STATE_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-070:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS|contracts/modules/PolicyController.sol| +|ERROR:POC-072:CLAIM_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-073:CLAIM_STATE_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS|contracts/modules/PolicyController.sol| +|ERROR:POC-080:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-081:CLAIM_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-082:CLAIM_NOT_CONFIRMED|contracts/modules/PolicyController.sol| +|ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID|contracts/modules/PolicyController.sol| +|ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG|contracts/modules/PolicyController.sol| +|ERROR:POC-085:PAYOUT_ALREADY_EXISTS|contracts/modules/PolicyController.sol| +|ERROR:POC-090:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS|contracts/modules/PolicyController.sol| +|ERROR:POC-092:PAYOUT_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT|contracts/modules/PolicyController.sol| +|ERROR:POC-100:METADATA_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-101:APPLICATION_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-102:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-103:CLAIM_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-104:PAYOUT_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-110:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| +|ERROR:POC-111:AMOUNT_TOO_BIG|contracts/modules/PolicyController.sol| +|ERROR:POL-001:INVALID_OWNER|contracts/modules/PolicyController.sol| +|ERROR:POL-001:NOT_INSTANCE_OPERATOR|contracts/modules/PoolController.sol| +|ERROR:POL-002:INVALID_PRODUCT|contracts/modules/PolicyController.sol| +|ERROR:POL-002:NOT_RISKPOOL_SERVICE|contracts/modules/PoolController.sol| +|ERROR:POL-003:PRODUCT_NOT_ACTIVE|contracts/modules/PolicyController.sol| +|ERROR:POL-003:RISKPOOL_NOT_ACTIVE|contracts/modules/PoolController.sol| +|ERROR:POL-004:RISKPOOL_NOT_ACTIVE|contracts/modules/PoolController.sol| +|ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED|contracts/modules/PoolController.sol| +|ERROR:POL-006:WALLET_ADDRESS_ZERO|contracts/modules/PoolController.sol| +|ERROR:POL-007:ERC20_ADDRESS_ZERO|contracts/modules/PoolController.sol| +|ERROR:POL-008:COLLATERALIZATION_|contracts/modules/PoolController.sol| +|ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO|contracts/modules/PoolController.sol| +|ERROR:POL-010:NOT_PRODUCT|contracts/modules/PoolController.sol| +|ERROR:POL-011:NOT_RISKPOOL|contracts/modules/PoolController.sol| +|ERROR:POL-012:RISKPOOL_ALREADY_SET|contracts/modules/PoolController.sol| +|ERROR:POL-020:APPLICATION_STATE_INVALID|contracts/modules/PoolController.sol| +|ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED|contracts/modules/PoolController.sol| +|ERROR:POL-025:POLICY_STATE_INVALID|contracts/modules/PoolController.sol| +|ERROR:POL-026:RISKPOOL_ID_INVALID|contracts/modules/PoolController.sol| +|ERROR:POL-027:CAPITAL_TOO_LOW|contracts/modules/PoolController.sol| +|ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW|contracts/modules/PoolController.sol| +|ERROR:POL-029:BALANCE_TOO_LOW|contracts/modules/PoolController.sol| +|ERROR:POL-030:POLICY_STATE_INVALID|contracts/modules/BundleController.sol| +|ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID|contracts/modules/PoolController.sol| +|ERROR:POL-040:POLICY_STATE_INVALID|contracts/modules/BundleController.sol| +|ERROR:POL-040:RISKPOOL_NOT_REGISTERED|contracts/modules/PoolController.sol| +|ERROR:POL-041:BUNDLE_IDX_TOO_LARGE|contracts/modules/PoolController.sol| +|ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET|contracts/modules/PoolController.sol| +|ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED|contracts/modules/PoolController.sol| +|ERROR:POL-044:BUNDLE_ID_NOT_IN_SET|contracts/modules/PoolController.sol| +|ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST|contracts/modules/PoolController.sol| +|ERROR:POL-046:COMPONENT_NOT_RISKPOOL|contracts/modules/PoolController.sol| +|ERROR:POL-050:POLICY_STATE_INVALID|contracts/modules/BundleController.sol| +|ERROR:PRS-001:NOT_AUTHORIZED|contracts/services/ProductService.sol| +|ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED|contracts/services/ProductService.sol| +|ERROR:QUC-002:REQUEST_ID_INVALID|contracts/modules/QueryModule.sol| +|ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE|contracts/modules/QueryModule.sol| +|ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT|contracts/modules/QueryModule.sol| +|ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL|contracts/modules/QueryModule.sol| +|ERROR:QUC-030:REQUEST_ID_INVALID|contracts/modules/QueryModule.sol| +|ERROR:QUC-040:REQUEST_ID_INVALID|contracts/modules/QueryModule.sol| +|ERROR:QUC-041:COMPONENT_NOT_ORACLE|contracts/modules/QueryModule.sol| +|ERROR:QUC-042:ORACLE_NOT_ACTIVE|contracts/modules/QueryModule.sol| +|ERROR:REC-001:EMPTY_RELEASE|contracts/modules/RegistryController.sol| +|ERROR:REC-002:NEW_RELEASE_NOT_EMPTY|contracts/modules/RegistryController.sol| +|ERROR:REC-010:MAX_CONTRACTS_LIMIT|contracts/modules/RegistryController.sol| +|ERROR:REC-011:RELEASE_UNKNOWN|contracts/modules/RegistryController.sol| +|ERROR:REC-012:CONTRACT_NAME_EMPTY|contracts/modules/RegistryController.sol| +|ERROR:REC-013:CONTRACT_NAME_EXISTS|contracts/modules/RegistryController.sol| +|ERROR:REC-014:CONTRACT_ADDRESS_ZERO|contracts/modules/RegistryController.sol| +|ERROR:REC-015:CONTRACT_NUMBER_MISMATCH|contracts/modules/RegistryController.sol| +|ERROR:REC-020:CONTRACT_UNKNOWN|contracts/modules/RegistryController.sol| +|ERROR:REC-021:CONTRACT_NUMBER_MISMATCH|contracts/modules/RegistryController.sol| +|ERROR:REC-102:UPGRADE_ONCE_OMLY|contracts/test/TestRegistryControllerUpdated.sol| +|ERROR:RPS-001:SENDER_NOT_RISKPOOL|contracts/services/RiskpoolService.sol| +|ERROR:RPS-002:RISKPOOL_NOT_PROPOSED|contracts/services/RiskpoolService.sol| +|ERROR:RPS-003:SENDER_NOT_RISKPOOL|contracts/services/RiskpoolService.sol| +|ERROR:RPS-004:RISKPOOL_NOT_ACTIVE|contracts/services/RiskpoolService.sol| +|ERROR:RPS-005:SENDER_NOT_RISKPOOL|contracts/services/RiskpoolService.sol| +|ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH|contracts/services/RiskpoolService.sol| +|ERROR:RPS-007:RISKPOOL_NOT_ACTIVE|contracts/services/RiskpoolService.sol| +|ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL|contracts/services/RiskpoolService.sol| +|ERROR:RPS-009:RISKPOOL_NOT_ACTIVE|contracts/services/RiskpoolService.sol| +|ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED|contracts/services/RiskpoolService.sol| +|ERROR:RPS-011:BUNDLE_BURNED|contracts/services/RiskpoolService.sol| +|ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION|contracts/services/RiskpoolService.sol| +|ERROR:RPS-020:BUNDLE_NOT_CLOSED|contracts/services/RiskpoolService.sol| +|ERROR:TCP-1:INVALID_POLICY_OR_HOLDER|contracts/test/TestCompromisedProduct.sol| +|ERROR:TI-2:TOKEN_ADDRESS_ZERO|contracts/test/TestProduct.sol| +|ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-004:TREASURY_SUSPENDED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-005:NOT_RISKPOOL_SERVICE|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-010:TOKEN_ADDRESS_ZERO|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-011:NOT_PRODUCT|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-015:WALLET_ADDRESS_ZERO|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-016:NOT_RISKPOOL|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-017:WALLET_ADDRESS_ZERO|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-022:NOT_PRODUCT|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-023:NOT_RISKPOOL|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-024:FEE_SPEC_UNDEFINED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-030:AMOUNT_TOO_BIG|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-031:FEE_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-032:PREMIUM_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-044:PAYOUT_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-050:FEE_SPEC_UNDEFINED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-052:BALANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-054:FEE_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-055:CAPITAL_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-091:FEE_TOO_BIG|contracts/modules/TreasuryModule.sol| +|ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL|contracts/modules/TreasuryModule.sol| \ No newline at end of file diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 3106b163..692f80f0 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -52,6 +52,11 @@ to learn about creating a new project and compiling your contracts. To keep your system secure, you should **always** use the installed code as-is, and neither copy-paste it from online sources, nor modify it yourself. The library is designed so that only the contracts and functions you use are deployed, so you don't need to worry about it needlessly increasing gas costs. +== Error Codes + +Each error has a 7-letter identifier of the form `XXX-\###`. The first three letters indicate the component where the error occurred, and the last three letters indicate the error number within that component. +A list of the error codes with explanations / conditions is available in the xref:errors.adoc[Errors] section. + [[next-steps]] == Learn More From 2a591becd72d21e61944649378de347518334111 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Fri, 9 Jun 2023 15:48:13 +0000 Subject: [PATCH 15/29] Format error codes --- docs/modules/ROOT/pages/errorCodes.adoc | 1298 ++++++++++++++++++----- 1 file changed, 1016 insertions(+), 282 deletions(-) diff --git a/docs/modules/ROOT/pages/errorCodes.adoc b/docs/modules/ROOT/pages/errorCodes.adoc index 7229a795..781dc077 100644 --- a/docs/modules/ROOT/pages/errorCodes.adoc +++ b/docs/modules/ROOT/pages/errorCodes.adoc @@ -1,283 +1,1017 @@ -[cols=] + |=== -|Errorcode|File| -|ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET|contracts/modules/AccessController.sol| -|ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID|contracts/modules/AccessController.sol| -|ERROR:ACL-003:ROLE_EXISTING_AND_VALID|contracts/modules/AccessController.sol| -|ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID|contracts/modules/AccessController.sol| -|ERROR:ACM-001:NOT_INSTANCE_OPERATOR|contracts/shared/WithRegistry.sol| -|ERROR:ACM-004:NOT_ORACLE_SERVICE|contracts/shared/WithRegistry.sol| -|ERROR:ACM-005:NOT_ORACLE_OWNER|contracts/shared/WithRegistry.sol| -|ERROR:ACM-006:NOT_PRODUCT_OWNER|contracts/shared/WithRegistry.sol| -|ERROR:AYI-001:RISK_ALREADY_EXISTS|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-002:RISK_UNKNOWN|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-004:RISK_UNDEFINED|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-005:POLICY_HOLDER_ZERO|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-010:RISK_UNDEFINED|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-011:ORACLE_ALREADY_RESPONDED|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-012:RISK_UNDEFINED|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-014:EXISTING_CALLBACK|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-020:RISK_ID_MISMATCH|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-021:RISK_UNDEFINED|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-022:REQUEST_ID_MISMATCH|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-023:EXISTING_CALLBACK|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-024:AAAY_INVALID|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-030:ORACLE_RESPONSE_MISSING|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-031:RISK_ID_INVALID|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-032:ORACLE_RESPONSE_MISSING|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-042:RISK_EXIT_TOO_LARGE|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-043:RISK_TSI_TOO_SMALL|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-044:RISK_TSI_TOO_LARGE|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-046:RISK_APH_ZERO_INVALID|contracts/examples/AyiiProduct.sol| -|ERROR:AYI-047:RISK_APH_TOO_LARGE|contracts/examples/AyiiProduct.sol| -|ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED|contracts/modules/BundleController.sol| -|ERROR:BTK-001:NOT_INITIALIZED|contracts/tokens/BundleToken.sol| -|ERROR:BTK-002:NOT_BUNDLE_MODULE|contracts/tokens/BundleToken.sol| -|ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED|contracts/tokens/BundleToken.sol| -|ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS|contracts/tokens/BundleToken.sol| -|ERROR:BTK-005:TOKEN_ID_INVALID|contracts/tokens/BundleToken.sol| -|ERROR:BUC-001:NOT_RISKPOOL_SERVICE|contracts/modules/BundleController.sol| -|ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| -|ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED|contracts/modules/BundleController.sol| -|ERROR:BUC-010:BUNDLE_ALREADY_EXISTS|contracts/modules/BundleController.sol| -|ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| -|ERROR:BUC-012:BUNDLE_CLOSED|contracts/modules/BundleController.sol| -|ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| -|ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW|contracts/modules/BundleController.sol| -|ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES|contracts/modules/BundleController.sol| -|ERROR:BUC-016:BUNDLE_NOT_CLOSED|contracts/modules/BundleController.sol| -|ERROR:BUC-017:BUNDLE_HAS_BALANCE|contracts/modules/BundleController.sol| -|ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL|contracts/modules/BundleController.sol| -|ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| -|ERROR:BUC-021:BUNDLE_NOT_ACTIVE|contracts/modules/BundleController.sol| -|ERROR:BUC-022:CAPACITY_TOO_LOW|contracts/modules/BundleController.sol| -|ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED|contracts/modules/BundleController.sol| -|ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| -|ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE|contracts/modules/BundleController.sol| -|ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY|contracts/modules/BundleController.sol| -|ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| -|ERROR:BUC-044:BUNDLE_STATE_INVALID|contracts/modules/BundleController.sol| -|ERROR:BUC-045:CAPITAL_TOO_LOW|contracts/modules/BundleController.sol| -|ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW|contracts/modules/BundleController.sol| -|ERROR:BUC-047:BALANCE_TOO_LOW|contracts/modules/BundleController.sol| -|ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| -|ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE|contracts/modules/BundleController.sol| -|ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST|contracts/modules/BundleController.sol| -|ERROR:BUC-070:ACTIVE_INVALID_TRANSITION|contracts/modules/BundleController.sol| -|ERROR:BUC-071:LOCKED_INVALID_TRANSITION|contracts/modules/BundleController.sol| -|ERROR:BUC-072:CLOSED_INVALID_TRANSITION|contracts/modules/BundleController.sol| -|ERROR:BUC-073:BURNED_IS_FINAL_STATE|contracts/modules/BundleController.sol| -|ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE|contracts/modules/ComponentController.sol| -|ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE|contracts/modules/ComponentController.sol| -|ERROR:CCR-003:COMPONENT_ALREADY_EXISTS|contracts/modules/ComponentController.sol| -|ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS|contracts/modules/ComponentController.sol| -|ERROR:CCR-005:INVALID_COMPONENT_ID|contracts/modules/ComponentController.sol| -|ERROR:CCR-006:COMPONENT_ADDRESS_ZERO|contracts/modules/ComponentController.sol| -|ERROR:CCR-007:COMPONENT_UNKNOWN|contracts/modules/ComponentController.sol| -|ERROR:CCR-008:INVALID_COMPONENT_ID|contracts/modules/ComponentController.sol| -|ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN|contracts/modules/ComponentController.sol| -|ERROR:CCR-011:UNKNOWN_PRODUCT_ID|contracts/modules/ComponentController.sol| -|ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL|contracts/modules/ComponentController.sol| -|ERROR:CCR-021:CREATED_INVALID_TRANSITION|contracts/modules/ComponentController.sol| -|ERROR:CCR-023:DECLINED_IS_FINAL_STATE|contracts/modules/ComponentController.sol| -|ERROR:CCR-024:ACTIVE_INVALID_TRANSITION|contracts/modules/ComponentController.sol| -|ERROR:CCR-025:PAUSED_INVALID_TRANSITION|contracts/modules/ComponentController.sol| -|ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION|contracts/modules/ComponentController.sol| -|ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED|contracts/modules/ComponentController.sol| -|ERROR:CCR-22:PROPOSED_INVALID_TRANSITION|contracts/modules/ComponentController.sol| -|ERROR:COS-001:NOT_OWNER|contracts/services/ComponentOwnerService.sol| -|ERROR:COS-002:REQUIRED_ROLE_MISSING|contracts/services/ComponentOwnerService.sol| -|ERROR:COS-003:COMPONENT_ID_INVALID|contracts/services/ComponentOwnerService.sol| -|ERROR:COS-004:NOT_OWNER|contracts/services/ComponentOwnerService.sol| -|ERROR:COS-005:REQUIRED_ROLE_MISSING|contracts/services/ComponentOwnerService.sol| -|ERROR:COS-006:IMPLEMENATION_MISSING|contracts/services/ComponentOwnerService.sol| -|ERROR:COS-007:IMPLEMENATION_MISSING|contracts/services/ComponentOwnerService.sol| -|ERROR:CRC-001:NOT_INSTANCE_OPERATOR|contracts/shared/CoreController.sol| -|ERROR:CRC-001:NOT_ORACLE_SERVICE|contracts/modules/QueryModule.sol| -|ERROR:CRC-002:NOT_ON_STORAGE|contracts/shared/CoreController.sol| -|ERROR:CRC-003:NOT_PRODUCT_SERVICE|contracts/shared/CoreController.sol| -|ERROR:CRC-004:CONTRACT_NOT_REGISTERED|contracts/shared/CoreController.sol| -|ERROR:CRP-001:NOT_ADMIN|contracts/shared/CoreProxy.sol| -|ERROR:IOS-001:NOT_INSTANCE_OPERATOR|contracts/services/InstanceOperatorService.sol| -|ERROR:IOS-010:IMPLEMENATION_MISSING|contracts/services/InstanceOperatorService.sol| -|ERROR:IOS-011:IMPLEMENATION_MISSING|contracts/services/InstanceOperatorService.sol| -|ERROR:IS-001:IMPLEMENATION_MISSING|contracts/services/InstanceService.sol| -|ERROR:IS-002:IMPLEMENATION_MISSING|contracts/services/InstanceService.sol| -|ERROR:LIC-001:COMPONENT_NOT_PRODUCT|contracts/modules/LicenseController.sol| -|ERROR:PFD-001:POLICY_NOT_ACTIVE|contracts/flows/PolicyDefaultFlow.sol| -|ERROR:PFD-002:POLICY_NOT_EXPIRED|contracts/flows/PolicyDefaultFlow.sol| -|ERROR:PFD-003:POLICY_CLOSED|contracts/flows/PolicyDefaultFlow.sol| -|ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH|contracts/flows/PolicyDefaultFlow.sol| -|ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH|contracts/flows/PolicyDefaultFlow.sol| -|ERROR:POC-004:METADATA_ALREADY_EXISTS|contracts/modules/PolicyController.sol| -|ERROR:POC-010:METADATA_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-011:APPLICATION_ALREADY_EXISTS|contracts/modules/PolicyController.sol| -|ERROR:POC-012:PREMIUM_AMOUNT_ZERO|contracts/modules/PolicyController.sol| -|ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL|contracts/modules/PolicyController.sol| -|ERROR:POC-014:METADATA_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-015:APPLICATION_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-016:APPLICATION_STATE_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-017:APPLICATION_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-018:APPLICATION_STATE_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-019:METADATA_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-020:APPLICATION_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-021:APPLICATION_STATE_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-022:APPLICATION_ACCESS_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-023:POLICY_ALREADY_EXISTS|contracts/modules/PolicyController.sol| -|ERROR:POC-024:APPLICATION_ACCESS_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-025:APPLICATION_PREMIUM_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-027:POLICY_ACCESS_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-028:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-029:APPLICATION_STATE_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-030:METADATA_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-031:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-032:POLICY_STATE_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS|contracts/modules/PolicyController.sol| -|ERROR:POC-040:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-041:POLICY_NOT_ACTIVE|contracts/modules/PolicyController.sol| -|ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT|contracts/modules/PolicyController.sol| -|ERROR:POC-043:CLAIM_ALREADY_EXISTS|contracts/modules/PolicyController.sol| -|ERROR:POC-050:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS|contracts/modules/PolicyController.sol| -|ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED|contracts/modules/PolicyController.sol| -|ERROR:POC-053:CLAIM_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-054:CLAIM_STATE_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-060:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS|contracts/modules/PolicyController.sol| -|ERROR:POC-062:CLAIM_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-063:CLAIM_STATE_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-070:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS|contracts/modules/PolicyController.sol| -|ERROR:POC-072:CLAIM_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-073:CLAIM_STATE_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS|contracts/modules/PolicyController.sol| -|ERROR:POC-080:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-081:CLAIM_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-082:CLAIM_NOT_CONFIRMED|contracts/modules/PolicyController.sol| -|ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID|contracts/modules/PolicyController.sol| -|ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG|contracts/modules/PolicyController.sol| -|ERROR:POC-085:PAYOUT_ALREADY_EXISTS|contracts/modules/PolicyController.sol| -|ERROR:POC-090:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS|contracts/modules/PolicyController.sol| -|ERROR:POC-092:PAYOUT_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT|contracts/modules/PolicyController.sol| -|ERROR:POC-100:METADATA_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-101:APPLICATION_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-102:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-103:CLAIM_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-104:PAYOUT_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-110:POLICY_DOES_NOT_EXIST|contracts/modules/PolicyController.sol| -|ERROR:POC-111:AMOUNT_TOO_BIG|contracts/modules/PolicyController.sol| -|ERROR:POL-001:INVALID_OWNER|contracts/modules/PolicyController.sol| -|ERROR:POL-001:NOT_INSTANCE_OPERATOR|contracts/modules/PoolController.sol| -|ERROR:POL-002:INVALID_PRODUCT|contracts/modules/PolicyController.sol| -|ERROR:POL-002:NOT_RISKPOOL_SERVICE|contracts/modules/PoolController.sol| -|ERROR:POL-003:PRODUCT_NOT_ACTIVE|contracts/modules/PolicyController.sol| -|ERROR:POL-003:RISKPOOL_NOT_ACTIVE|contracts/modules/PoolController.sol| -|ERROR:POL-004:RISKPOOL_NOT_ACTIVE|contracts/modules/PoolController.sol| -|ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED|contracts/modules/PoolController.sol| -|ERROR:POL-006:WALLET_ADDRESS_ZERO|contracts/modules/PoolController.sol| -|ERROR:POL-007:ERC20_ADDRESS_ZERO|contracts/modules/PoolController.sol| -|ERROR:POL-008:COLLATERALIZATION_|contracts/modules/PoolController.sol| -|ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO|contracts/modules/PoolController.sol| -|ERROR:POL-010:NOT_PRODUCT|contracts/modules/PoolController.sol| -|ERROR:POL-011:NOT_RISKPOOL|contracts/modules/PoolController.sol| -|ERROR:POL-012:RISKPOOL_ALREADY_SET|contracts/modules/PoolController.sol| -|ERROR:POL-020:APPLICATION_STATE_INVALID|contracts/modules/PoolController.sol| -|ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED|contracts/modules/PoolController.sol| -|ERROR:POL-025:POLICY_STATE_INVALID|contracts/modules/PoolController.sol| -|ERROR:POL-026:RISKPOOL_ID_INVALID|contracts/modules/PoolController.sol| -|ERROR:POL-027:CAPITAL_TOO_LOW|contracts/modules/PoolController.sol| -|ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW|contracts/modules/PoolController.sol| -|ERROR:POL-029:BALANCE_TOO_LOW|contracts/modules/PoolController.sol| -|ERROR:POL-030:POLICY_STATE_INVALID|contracts/modules/BundleController.sol| -|ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID|contracts/modules/PoolController.sol| -|ERROR:POL-040:POLICY_STATE_INVALID|contracts/modules/BundleController.sol| -|ERROR:POL-040:RISKPOOL_NOT_REGISTERED|contracts/modules/PoolController.sol| -|ERROR:POL-041:BUNDLE_IDX_TOO_LARGE|contracts/modules/PoolController.sol| -|ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET|contracts/modules/PoolController.sol| -|ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED|contracts/modules/PoolController.sol| -|ERROR:POL-044:BUNDLE_ID_NOT_IN_SET|contracts/modules/PoolController.sol| -|ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST|contracts/modules/PoolController.sol| -|ERROR:POL-046:COMPONENT_NOT_RISKPOOL|contracts/modules/PoolController.sol| -|ERROR:POL-050:POLICY_STATE_INVALID|contracts/modules/BundleController.sol| -|ERROR:PRS-001:NOT_AUTHORIZED|contracts/services/ProductService.sol| -|ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED|contracts/services/ProductService.sol| -|ERROR:QUC-002:REQUEST_ID_INVALID|contracts/modules/QueryModule.sol| -|ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE|contracts/modules/QueryModule.sol| -|ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT|contracts/modules/QueryModule.sol| -|ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL|contracts/modules/QueryModule.sol| -|ERROR:QUC-030:REQUEST_ID_INVALID|contracts/modules/QueryModule.sol| -|ERROR:QUC-040:REQUEST_ID_INVALID|contracts/modules/QueryModule.sol| -|ERROR:QUC-041:COMPONENT_NOT_ORACLE|contracts/modules/QueryModule.sol| -|ERROR:QUC-042:ORACLE_NOT_ACTIVE|contracts/modules/QueryModule.sol| -|ERROR:REC-001:EMPTY_RELEASE|contracts/modules/RegistryController.sol| -|ERROR:REC-002:NEW_RELEASE_NOT_EMPTY|contracts/modules/RegistryController.sol| -|ERROR:REC-010:MAX_CONTRACTS_LIMIT|contracts/modules/RegistryController.sol| -|ERROR:REC-011:RELEASE_UNKNOWN|contracts/modules/RegistryController.sol| -|ERROR:REC-012:CONTRACT_NAME_EMPTY|contracts/modules/RegistryController.sol| -|ERROR:REC-013:CONTRACT_NAME_EXISTS|contracts/modules/RegistryController.sol| -|ERROR:REC-014:CONTRACT_ADDRESS_ZERO|contracts/modules/RegistryController.sol| -|ERROR:REC-015:CONTRACT_NUMBER_MISMATCH|contracts/modules/RegistryController.sol| -|ERROR:REC-020:CONTRACT_UNKNOWN|contracts/modules/RegistryController.sol| -|ERROR:REC-021:CONTRACT_NUMBER_MISMATCH|contracts/modules/RegistryController.sol| -|ERROR:REC-102:UPGRADE_ONCE_OMLY|contracts/test/TestRegistryControllerUpdated.sol| -|ERROR:RPS-001:SENDER_NOT_RISKPOOL|contracts/services/RiskpoolService.sol| -|ERROR:RPS-002:RISKPOOL_NOT_PROPOSED|contracts/services/RiskpoolService.sol| -|ERROR:RPS-003:SENDER_NOT_RISKPOOL|contracts/services/RiskpoolService.sol| -|ERROR:RPS-004:RISKPOOL_NOT_ACTIVE|contracts/services/RiskpoolService.sol| -|ERROR:RPS-005:SENDER_NOT_RISKPOOL|contracts/services/RiskpoolService.sol| -|ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH|contracts/services/RiskpoolService.sol| -|ERROR:RPS-007:RISKPOOL_NOT_ACTIVE|contracts/services/RiskpoolService.sol| -|ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL|contracts/services/RiskpoolService.sol| -|ERROR:RPS-009:RISKPOOL_NOT_ACTIVE|contracts/services/RiskpoolService.sol| -|ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED|contracts/services/RiskpoolService.sol| -|ERROR:RPS-011:BUNDLE_BURNED|contracts/services/RiskpoolService.sol| -|ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION|contracts/services/RiskpoolService.sol| -|ERROR:RPS-020:BUNDLE_NOT_CLOSED|contracts/services/RiskpoolService.sol| -|ERROR:TCP-1:INVALID_POLICY_OR_HOLDER|contracts/test/TestCompromisedProduct.sol| -|ERROR:TI-2:TOKEN_ADDRESS_ZERO|contracts/test/TestProduct.sol| -|ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-004:TREASURY_SUSPENDED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-005:NOT_RISKPOOL_SERVICE|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-010:TOKEN_ADDRESS_ZERO|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-011:NOT_PRODUCT|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-015:WALLET_ADDRESS_ZERO|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-016:NOT_RISKPOOL|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-017:WALLET_ADDRESS_ZERO|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-022:NOT_PRODUCT|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-023:NOT_RISKPOOL|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-024:FEE_SPEC_UNDEFINED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-030:AMOUNT_TOO_BIG|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-031:FEE_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-032:PREMIUM_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-044:PAYOUT_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-050:FEE_SPEC_UNDEFINED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-052:BALANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-054:FEE_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-055:CAPITAL_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-091:FEE_TOO_BIG|contracts/modules/TreasuryModule.sol| -|ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL|contracts/modules/TreasuryModule.sol| \ No newline at end of file +| Errorcode | File | Meaning + +| `ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET` +| modules/AccessController.sol +| Thrown if you try to set the admin role twice. + +| `ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID` +| modules/AccessController.sol +| Thrown if + +| `ERROR:ACL-003:ROLE_EXISTING_AND_VALID` +| modules/AccessController.sol +| Thrown if + +| `ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID` +| modules/AccessController.sol +| Thrown if + +| `ERROR:ACM-001:NOT_INSTANCE_OPERATOR` +| shared/WithRegistry.sol +| Thrown if + +| `ERROR:ACM-004:NOT_ORACLE_SERVICE` +| shared/WithRegistry.sol +| Thrown if + +| `ERROR:ACM-005:NOT_ORACLE_OWNER` +| shared/WithRegistry.sol +| Thrown if + +| `ERROR:ACM-006:NOT_PRODUCT_OWNER` +| shared/WithRegistry.sol +| Thrown if + + +| `ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BTK-001:NOT_INITIALIZED` +| tokens/BundleToken.sol +| Thrown if + +| `ERROR:BTK-002:NOT_BUNDLE_MODULE` +| tokens/BundleToken.sol +| Thrown if + +| `ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED` +| tokens/BundleToken.sol +| Thrown if + +| `ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS` +| tokens/BundleToken.sol +| Thrown if + +| `ERROR:BTK-005:TOKEN_ID_INVALID` +| tokens/BundleToken.sol +| Thrown if + +| `ERROR:BUC-001:NOT_RISKPOOL_SERVICE` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-010:BUNDLE_ALREADY_EXISTS` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-012:BUNDLE_CLOSED` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-016:BUNDLE_NOT_CLOSED` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-017:BUNDLE_HAS_BALANCE` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-021:BUNDLE_NOT_ACTIVE` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-022:CAPACITY_TOO_LOW` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-044:BUNDLE_STATE_INVALID` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-045:CAPITAL_TOO_LOW` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-047:BALANCE_TOO_LOW` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST` +| modules/BundleController.sol +| Thrown if you ... and bundle doesn't exist + +| `ERROR:BUC-070:ACTIVE_INVALID_TRANSITION` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-071:LOCKED_INVALID_TRANSITION` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-072:CLOSED_INVALID_TRANSITION` +| modules/BundleController.sol +| Thrown if + +| `ERROR:BUC-073:BURNED_IS_FINAL_STATE` +| modules/BundleController.sol +| Thrown if + +| `ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-003:COMPONENT_ALREADY_EXISTS` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-005:INVALID_COMPONENT_ID` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-006:COMPONENT_ADDRESS_ZERO` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-007:COMPONENT_UNKNOWN` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-008:INVALID_COMPONENT_ID` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-011:UNKNOWN_PRODUCT_ID` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-021:CREATED_INVALID_TRANSITION` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-023:DECLINED_IS_FINAL_STATE` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-024:ACTIVE_INVALID_TRANSITION` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-025:PAUSED_INVALID_TRANSITION` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:CCR-22:PROPOSED_INVALID_TRANSITION` +| modules/ComponentController.sol +| Thrown if + +| `ERROR:COS-001:NOT_OWNER` +| services/ComponentOwnerService.sol +| Thrown if + +| `ERROR:COS-002:REQUIRED_ROLE_MISSING` +| services/ComponentOwnerService.sol +| Thrown if + +| `ERROR:COS-003:COMPONENT_ID_INVALID` +| services/ComponentOwnerService.sol +| Thrown if + +| `ERROR:COS-004:NOT_OWNER` +| services/ComponentOwnerService.sol +| Thrown if + +| `ERROR:COS-005:REQUIRED_ROLE_MISSING` +| services/ComponentOwnerService.sol +| Thrown if + +| `ERROR:COS-006:IMPLEMENATION_MISSING` +| services/ComponentOwnerService.sol +| Thrown if + +| `ERROR:COS-007:IMPLEMENATION_MISSING` +| services/ComponentOwnerService.sol +| Thrown if + +| `ERROR:CRC-001:NOT_INSTANCE_OPERATOR` +| shared/CoreController.sol +| Thrown if + +| `ERROR:CRC-001:NOT_ORACLE_SERVICE` +| modules/QueryModule.sol +| Thrown if + +| `ERROR:CRC-002:NOT_ON_STORAGE` +| shared/CoreController.sol +| Thrown if + +| `ERROR:CRC-003:NOT_PRODUCT_SERVICE` +| shared/CoreController.sol +| Thrown if + +| `ERROR:CRC-004:CONTRACT_NOT_REGISTERED` +| shared/CoreController.sol +| Thrown if + +| `ERROR:CRP-001:NOT_ADMIN` +| shared/CoreProxy.sol +| Thrown if + +| `ERROR:IOS-001:NOT_INSTANCE_OPERATOR` +| services/InstanceOperatorService.sol +| Thrown if + +| `ERROR:IOS-010:IMPLEMENATION_MISSING` +| services/InstanceOperatorService.sol +| Thrown if + +| `ERROR:IOS-011:IMPLEMENATION_MISSING` +| services/InstanceOperatorService.sol +| Thrown if + +| `ERROR:IS-001:IMPLEMENATION_MISSING` +| services/InstanceService.sol +| Thrown if + +| `ERROR:IS-002:IMPLEMENATION_MISSING` +| services/InstanceService.sol +| Thrown if + +| `ERROR:LIC-001:COMPONENT_NOT_PRODUCT` +| modules/LicenseController.sol +| Thrown if + +| `ERROR:PFD-001:POLICY_NOT_ACTIVE` +| flows/PolicyDefaultFlow.sol +| Thrown if + +| `ERROR:PFD-002:POLICY_NOT_EXPIRED` +| flows/PolicyDefaultFlow.sol +| Thrown if + +| `ERROR:PFD-003:POLICY_CLOSED` +| flows/PolicyDefaultFlow.sol +| Thrown if + +| `ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH` +| flows/PolicyDefaultFlow.sol +| Thrown if + +| `ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH` +| flows/PolicyDefaultFlow.sol +| Thrown if + +| `ERROR:POC-004:METADATA_ALREADY_EXISTS` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-010:METADATA_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-011:APPLICATION_ALREADY_EXISTS` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-012:PREMIUM_AMOUNT_ZERO` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-014:METADATA_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-015:APPLICATION_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-016:APPLICATION_STATE_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-017:APPLICATION_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-018:APPLICATION_STATE_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-019:METADATA_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-020:APPLICATION_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-021:APPLICATION_STATE_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-022:APPLICATION_ACCESS_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-023:POLICY_ALREADY_EXISTS` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-024:APPLICATION_ACCESS_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-025:APPLICATION_PREMIUM_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-027:POLICY_ACCESS_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-028:POLICY_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-029:APPLICATION_STATE_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-030:METADATA_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-031:POLICY_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-032:POLICY_STATE_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-040:POLICY_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-041:POLICY_NOT_ACTIVE` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-043:CLAIM_ALREADY_EXISTS` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-050:POLICY_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-053:CLAIM_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-054:CLAIM_STATE_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-060:POLICY_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-062:CLAIM_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-063:CLAIM_STATE_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-070:POLICY_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-072:CLAIM_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-073:CLAIM_STATE_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-080:POLICY_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-081:CLAIM_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-082:CLAIM_NOT_CONFIRMED` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-085:PAYOUT_ALREADY_EXISTS` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-090:POLICY_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-092:PAYOUT_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-100:METADATA_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-101:APPLICATION_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-102:POLICY_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-103:CLAIM_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-104:PAYOUT_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-110:POLICY_DOES_NOT_EXIST` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POC-111:AMOUNT_TOO_BIG` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POL-001:INVALID_OWNER` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POL-001:NOT_INSTANCE_OPERATOR` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-002:INVALID_PRODUCT` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POL-002:NOT_RISKPOOL_SERVICE` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-003:PRODUCT_NOT_ACTIVE` +| modules/PolicyController.sol +| Thrown if + +| `ERROR:POL-003:RISKPOOL_NOT_ACTIVE` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-004:RISKPOOL_NOT_ACTIVE` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-006:WALLET_ADDRESS_ZERO` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-007:ERC20_ADDRESS_ZERO` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-008:COLLATERALIZATION_` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-010:NOT_PRODUCT` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-011:NOT_RISKPOOL` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-012:RISKPOOL_ALREADY_SET` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-020:APPLICATION_STATE_INVALID` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-025:POLICY_STATE_INVALID` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-026:RISKPOOL_ID_INVALID` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-027:CAPITAL_TOO_LOW` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-029:BALANCE_TOO_LOW` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-030:POLICY_STATE_INVALID` +| modules/BundleController.sol +| Thrown if + +| `ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-040:POLICY_STATE_INVALID` +| modules/BundleController.sol +| Thrown if + +| `ERROR:POL-040:RISKPOOL_NOT_REGISTERED` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-041:BUNDLE_IDX_TOO_LARGE` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-044:BUNDLE_ID_NOT_IN_SET` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-046:COMPONENT_NOT_RISKPOOL` +| modules/PoolController.sol +| Thrown if + +| `ERROR:POL-050:POLICY_STATE_INVALID` +| modules/BundleController.sol +| Thrown if + +| `ERROR:PRS-001:NOT_AUTHORIZED` +| services/ProductService.sol +| Thrown if + +| `ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED` +| services/ProductService.sol +| Thrown if + +| `ERROR:QUC-002:REQUEST_ID_INVALID` +| modules/QueryModule.sol +| Thrown if + +| `ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE` +| modules/QueryModule.sol +| Thrown if + +| `ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT` +| modules/QueryModule.sol +| Thrown if + +| `ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL` +| modules/QueryModule.sol +| Thrown if + +| `ERROR:QUC-030:REQUEST_ID_INVALID` +| modules/QueryModule.sol +| Thrown if + +| `ERROR:QUC-040:REQUEST_ID_INVALID` +| modules/QueryModule.sol +| Thrown if + +| `ERROR:QUC-041:COMPONENT_NOT_ORACLE` +| modules/QueryModule.sol +| Thrown if + +| `ERROR:QUC-042:ORACLE_NOT_ACTIVE` +| modules/QueryModule.sol +| Thrown if + +| `ERROR:REC-001:EMPTY_RELEASE` +| modules/RegistryController.sol +| Thrown if + +| `ERROR:REC-002:NEW_RELEASE_NOT_EMPTY` +| modules/RegistryController.sol +| Thrown if + +| `ERROR:REC-010:MAX_CONTRACTS_LIMIT` +| modules/RegistryController.sol +| Thrown if + +| `ERROR:REC-011:RELEASE_UNKNOWN` +| modules/RegistryController.sol +| Thrown if + +| `ERROR:REC-012:CONTRACT_NAME_EMPTY` +| modules/RegistryController.sol +| Thrown if + +| `ERROR:REC-013:CONTRACT_NAME_EXISTS` +| modules/RegistryController.sol +| Thrown if + +| `ERROR:REC-014:CONTRACT_ADDRESS_ZERO` +| modules/RegistryController.sol +| Thrown if + +| `ERROR:REC-015:CONTRACT_NUMBER_MISMATCH` +| modules/RegistryController.sol +| Thrown if + +| `ERROR:REC-020:CONTRACT_UNKNOWN` +| modules/RegistryController.sol +| Thrown if + +| `ERROR:REC-021:CONTRACT_NUMBER_MISMATCH` +| modules/RegistryController.sol +| Thrown if + +| `ERROR:REC-102:UPGRADE_ONCE_OMLY` +| test/TestRegistryControllerUpdated.sol +| Thrown if + +| `ERROR:RPS-001:SENDER_NOT_RISKPOOL` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-002:RISKPOOL_NOT_PROPOSED` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-003:SENDER_NOT_RISKPOOL` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-004:RISKPOOL_NOT_ACTIVE` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-005:SENDER_NOT_RISKPOOL` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-007:RISKPOOL_NOT_ACTIVE` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-009:RISKPOOL_NOT_ACTIVE` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-011:BUNDLE_BURNED` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:RPS-020:BUNDLE_NOT_CLOSED` +| services/RiskpoolService.sol +| Thrown if + +| `ERROR:TCP-1:INVALID_POLICY_OR_HOLDER` +| test/TestCompromisedProduct.sol +| Thrown if + +| `ERROR:TI-2:TOKEN_ADDRESS_ZERO` +| test/TestProduct.sol +| Thrown if + +| `ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-004:TREASURY_SUSPENDED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-005:NOT_RISKPOOL_SERVICE` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-010:TOKEN_ADDRESS_ZERO` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-011:NOT_PRODUCT` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-015:WALLET_ADDRESS_ZERO` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-016:NOT_RISKPOOL` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-017:WALLET_ADDRESS_ZERO` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-022:NOT_PRODUCT` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-023:NOT_RISKPOOL` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-024:FEE_SPEC_UNDEFINED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-030:AMOUNT_TOO_BIG` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-031:FEE_TRANSFER_FAILED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-032:PREMIUM_TRANSFER_FAILED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-044:PAYOUT_TRANSFER_FAILED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-050:FEE_SPEC_UNDEFINED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-052:BALANCE_TOO_SMALL` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-054:FEE_TRANSFER_FAILED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-055:CAPITAL_TRANSFER_FAILED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-091:FEE_TOO_BIG` +| modules/TreasuryModule.sol +| Thrown if + +| `ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL` +| modules/TreasuryModule.sol +| Thrown if +|===== \ No newline at end of file From ffdefb82f8f246afe71b0fc80cfe7f81ba985503 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Fri, 9 Jun 2023 15:49:43 +0000 Subject: [PATCH 16/29] Fix link --- docs/modules/ROOT/pages/index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 692f80f0..caea2420 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -55,7 +55,7 @@ To keep your system secure, you should **always** use the installed code as-is, == Error Codes Each error has a 7-letter identifier of the form `XXX-\###`. The first three letters indicate the component where the error occurred, and the last three letters indicate the error number within that component. -A list of the error codes with explanations / conditions is available in the xref:errors.adoc[Errors] section. +A list of the error codes with explanations / conditions is available in the xref:errorCodes.adoc[Errors] section. [[next-steps]] == Learn More From ae27dbae6e64491b090a976fca4046986962c1d8 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Fri, 9 Jun 2023 15:58:43 +0000 Subject: [PATCH 17/29] Reformat --- docs/modules/ROOT/pages/errorCodes.adoc | 1779 +++++++++++++---------- 1 file changed, 1017 insertions(+), 762 deletions(-) diff --git a/docs/modules/ROOT/pages/errorCodes.adoc b/docs/modules/ROOT/pages/errorCodes.adoc index 781dc077..7fdc3364 100644 --- a/docs/modules/ROOT/pages/errorCodes.adoc +++ b/docs/modules/ROOT/pages/errorCodes.adoc @@ -1,1017 +1,1272 @@ +// [.contract-item] +// [[AccessController-addRole-bytes32-]] +// ==== `[.contract-item-name]#++addRole++#++(bytes32 role)++` [.item-kind]#public# +// -|=== -| Errorcode | File | Meaning -| `ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET` -| modules/AccessController.sol -| Thrown if you try to set the admin role twice. +==== `[.contract-item-name]#+++ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET+++ ` +Contract: modules/AccessController.sol -| `ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID` -| modules/AccessController.sol -| Thrown if +Thrown if you try to set the admin role twice. -| `ERROR:ACL-003:ROLE_EXISTING_AND_VALID` -| modules/AccessController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID+++ ` +Contract: modules/AccessController.sol -| `ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID` -| modules/AccessController.sol -| Thrown if +Thrown if -| `ERROR:ACM-001:NOT_INSTANCE_OPERATOR` -| shared/WithRegistry.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:ACL-003:ROLE_EXISTING_AND_VALID+++ ` +Contract: modules/AccessController.sol -| `ERROR:ACM-004:NOT_ORACLE_SERVICE` -| shared/WithRegistry.sol -| Thrown if +Thrown if -| `ERROR:ACM-005:NOT_ORACLE_OWNER` -| shared/WithRegistry.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID+++ ` +Contract: modules/AccessController.sol -| `ERROR:ACM-006:NOT_PRODUCT_OWNER` -| shared/WithRegistry.sol -| Thrown if +Thrown if +==== `[.contract-item-name]#+++ERROR:ACM-001:NOT_INSTANCE_OPERATOR+++ ` +Contract: shared/WithRegistry.sol -| `ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BTK-001:NOT_INITIALIZED` -| tokens/BundleToken.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:ACM-004:NOT_ORACLE_SERVICE+++ ` +Contract: shared/WithRegistry.sol -| `ERROR:BTK-002:NOT_BUNDLE_MODULE` -| tokens/BundleToken.sol -| Thrown if +Thrown if -| `ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED` -| tokens/BundleToken.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:ACM-005:NOT_ORACLE_OWNER+++ ` +Contract: shared/WithRegistry.sol -| `ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS` -| tokens/BundleToken.sol -| Thrown if +Thrown if -| `ERROR:BTK-005:TOKEN_ID_INVALID` -| tokens/BundleToken.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:ACM-006:NOT_PRODUCT_OWNER+++ ` +Contract: shared/WithRegistry.sol -| `ERROR:BUC-001:NOT_RISKPOOL_SERVICE` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST` -| modules/BundleController.sol -| Thrown if -| `ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED+++ ` +Contract: modules/BundleController.sol -| `ERROR:BUC-010:BUNDLE_ALREADY_EXISTS` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BTK-001:NOT_INITIALIZED+++ ` +Contract: tokens/BundleToken.sol -| `ERROR:BUC-012:BUNDLE_CLOSED` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BTK-002:NOT_BUNDLE_MODULE+++ ` +Contract: tokens/BundleToken.sol -| `ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED+++ ` +Contract: tokens/BundleToken.sol -| `ERROR:BUC-016:BUNDLE_NOT_CLOSED` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-017:BUNDLE_HAS_BALANCE` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS+++ ` +Contract: tokens/BundleToken.sol -| `ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BTK-005:TOKEN_ID_INVALID+++ ` +Contract: tokens/BundleToken.sol -| `ERROR:BUC-021:BUNDLE_NOT_ACTIVE` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-022:CAPACITY_TOO_LOW` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-001:NOT_RISKPOOL_SERVICE+++ ` +Contract: modules/BundleController.sol -| `ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST+++ ` +Contract: modules/BundleController.sol -| `ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED+++ ` +Contract: modules/BundleController.sol -| `ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-044:BUNDLE_STATE_INVALID` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-010:BUNDLE_ALREADY_EXISTS+++ ` +Contract: modules/BundleController.sol -| `ERROR:BUC-045:CAPITAL_TOO_LOW` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST+++ ` +Contract: modules/BundleController.sol -| `ERROR:BUC-047:BALANCE_TOO_LOW` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-012:BUNDLE_CLOSED+++ ` +Contract: modules/BundleController.sol -| `ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST` -| modules/BundleController.sol -| Thrown if you ... and bundle doesn't exist +==== `[.contract-item-name]#+++ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST+++ ` +Contract: modules/BundleController.sol -| `ERROR:BUC-070:ACTIVE_INVALID_TRANSITION` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-071:LOCKED_INVALID_TRANSITION` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW+++ ` +Contract: modules/BundleController.sol -| `ERROR:BUC-072:CLOSED_INVALID_TRANSITION` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:BUC-073:BURNED_IS_FINAL_STATE` -| modules/BundleController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES+++ ` +Contract: modules/BundleController.sol -| `ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE` -| modules/ComponentController.sol -| Thrown if +Thrown if -| `ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE` -| modules/ComponentController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-016:BUNDLE_NOT_CLOSED+++ ` +Contract: modules/BundleController.sol -| `ERROR:CCR-003:COMPONENT_ALREADY_EXISTS` -| modules/ComponentController.sol -| Thrown if +Thrown if -| `ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS` -| modules/ComponentController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-017:BUNDLE_HAS_BALANCE+++ ` +Contract: modules/BundleController.sol -| `ERROR:CCR-005:INVALID_COMPONENT_ID` -| modules/ComponentController.sol -| Thrown if +Thrown if -| `ERROR:CCR-006:COMPONENT_ADDRESS_ZERO` -| modules/ComponentController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL+++ ` +Contract: modules/BundleController.sol -| `ERROR:CCR-007:COMPONENT_UNKNOWN` -| modules/ComponentController.sol -| Thrown if +Thrown if -| `ERROR:CCR-008:INVALID_COMPONENT_ID` -| modules/ComponentController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST+++ ` +Contract: modules/BundleController.sol -| `ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN` -| modules/ComponentController.sol -| Thrown if +Thrown if -| `ERROR:CCR-011:UNKNOWN_PRODUCT_ID` -| modules/ComponentController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-021:BUNDLE_NOT_ACTIVE+++ ` +Contract: modules/BundleController.sol -| `ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL` -| modules/ComponentController.sol -| Thrown if +Thrown if -| `ERROR:CCR-021:CREATED_INVALID_TRANSITION` -| modules/ComponentController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-022:CAPACITY_TOO_LOW+++ ` +Contract: modules/BundleController.sol -| `ERROR:CCR-023:DECLINED_IS_FINAL_STATE` -| modules/ComponentController.sol -| Thrown if +Thrown if -| `ERROR:CCR-024:ACTIVE_INVALID_TRANSITION` -| modules/ComponentController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED+++ ` +Contract: modules/BundleController.sol -| `ERROR:CCR-025:PAUSED_INVALID_TRANSITION` -| modules/ComponentController.sol -| Thrown if +Thrown if -| `ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION` -| modules/ComponentController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST+++ ` +Contract: modules/BundleController.sol -| `ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED` -| modules/ComponentController.sol -| Thrown if +Thrown if -| `ERROR:CCR-22:PROPOSED_INVALID_TRANSITION` -| modules/ComponentController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE+++ ` +Contract: modules/BundleController.sol -| `ERROR:COS-001:NOT_OWNER` -| services/ComponentOwnerService.sol -| Thrown if +Thrown if -| `ERROR:COS-002:REQUIRED_ROLE_MISSING` -| services/ComponentOwnerService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY+++ ` +Contract: modules/BundleController.sol -| `ERROR:COS-003:COMPONENT_ID_INVALID` -| services/ComponentOwnerService.sol -| Thrown if +Thrown if -| `ERROR:COS-004:NOT_OWNER` -| services/ComponentOwnerService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST+++ ` +Contract: modules/BundleController.sol -| `ERROR:COS-005:REQUIRED_ROLE_MISSING` -| services/ComponentOwnerService.sol -| Thrown if +Thrown if -| `ERROR:COS-006:IMPLEMENATION_MISSING` -| services/ComponentOwnerService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-044:BUNDLE_STATE_INVALID+++ ` +Contract: modules/BundleController.sol -| `ERROR:COS-007:IMPLEMENATION_MISSING` -| services/ComponentOwnerService.sol -| Thrown if +Thrown if -| `ERROR:CRC-001:NOT_INSTANCE_OPERATOR` -| shared/CoreController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-045:CAPITAL_TOO_LOW+++ ` +Contract: modules/BundleController.sol -| `ERROR:CRC-001:NOT_ORACLE_SERVICE` -| modules/QueryModule.sol -| Thrown if +Thrown if -| `ERROR:CRC-002:NOT_ON_STORAGE` -| shared/CoreController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW+++ ` +Contract: modules/BundleController.sol -| `ERROR:CRC-003:NOT_PRODUCT_SERVICE` -| shared/CoreController.sol -| Thrown if +Thrown if -| `ERROR:CRC-004:CONTRACT_NOT_REGISTERED` -| shared/CoreController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-047:BALANCE_TOO_LOW+++ ` +Contract: modules/BundleController.sol -| `ERROR:CRP-001:NOT_ADMIN` -| shared/CoreProxy.sol -| Thrown if +Thrown if -| `ERROR:IOS-001:NOT_INSTANCE_OPERATOR` -| services/InstanceOperatorService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST+++ ` +Contract: modules/BundleController.sol -| `ERROR:IOS-010:IMPLEMENATION_MISSING` -| services/InstanceOperatorService.sol -| Thrown if +Thrown if -| `ERROR:IOS-011:IMPLEMENATION_MISSING` -| services/InstanceOperatorService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE+++ ` +Contract: modules/BundleController.sol -| `ERROR:IS-001:IMPLEMENATION_MISSING` -| services/InstanceService.sol -| Thrown if +Thrown if -| `ERROR:IS-002:IMPLEMENATION_MISSING` -| services/InstanceService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST+++ ` +Contract: modules/BundleController.sol -| `ERROR:LIC-001:COMPONENT_NOT_PRODUCT` -| modules/LicenseController.sol -| Thrown if +Thrown if you ... and bundle doesn't exist -| `ERROR:PFD-001:POLICY_NOT_ACTIVE` -| flows/PolicyDefaultFlow.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-070:ACTIVE_INVALID_TRANSITION+++ ` +Contract: modules/BundleController.sol -| `ERROR:PFD-002:POLICY_NOT_EXPIRED` -| flows/PolicyDefaultFlow.sol -| Thrown if +Thrown if -| `ERROR:PFD-003:POLICY_CLOSED` -| flows/PolicyDefaultFlow.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-071:LOCKED_INVALID_TRANSITION+++ ` +Contract: modules/BundleController.sol -| `ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH` -| flows/PolicyDefaultFlow.sol -| Thrown if +Thrown if -| `ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH` -| flows/PolicyDefaultFlow.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-072:CLOSED_INVALID_TRANSITION+++ ` +Contract: modules/BundleController.sol -| `ERROR:POC-004:METADATA_ALREADY_EXISTS` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-010:METADATA_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:BUC-073:BURNED_IS_FINAL_STATE+++ ` +Contract: modules/BundleController.sol -| `ERROR:POC-011:APPLICATION_ALREADY_EXISTS` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-012:PREMIUM_AMOUNT_ZERO` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-014:METADATA_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-015:APPLICATION_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-016:APPLICATION_STATE_INVALID` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-003:COMPONENT_ALREADY_EXISTS+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-017:APPLICATION_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-018:APPLICATION_STATE_INVALID` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-019:METADATA_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-020:APPLICATION_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-005:INVALID_COMPONENT_ID+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-021:APPLICATION_STATE_INVALID` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-022:APPLICATION_ACCESS_INVALID` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-006:COMPONENT_ADDRESS_ZERO+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-023:POLICY_ALREADY_EXISTS` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-024:APPLICATION_ACCESS_INVALID` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-007:COMPONENT_UNKNOWN+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-025:APPLICATION_PREMIUM_INVALID` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-008:INVALID_COMPONENT_ID+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-027:POLICY_ACCESS_INVALID` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-028:POLICY_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-029:APPLICATION_STATE_INVALID` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-030:METADATA_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-011:UNKNOWN_PRODUCT_ID+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-031:POLICY_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-032:POLICY_STATE_INVALID` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-040:POLICY_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-021:CREATED_INVALID_TRANSITION+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-041:POLICY_NOT_ACTIVE` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-023:DECLINED_IS_FINAL_STATE+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-043:CLAIM_ALREADY_EXISTS` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-050:POLICY_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-024:ACTIVE_INVALID_TRANSITION+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-025:PAUSED_INVALID_TRANSITION+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-053:CLAIM_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-054:CLAIM_STATE_INVALID` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-060:POLICY_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-062:CLAIM_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-063:CLAIM_STATE_INVALID` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CCR-22:PROPOSED_INVALID_TRANSITION+++ ` +Contract: modules/ComponentController.sol -| `ERROR:POC-070:POLICY_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:COS-001:NOT_OWNER+++ ` +Contract: services/ComponentOwnerService.sol -| `ERROR:POC-072:CLAIM_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-073:CLAIM_STATE_INVALID` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:COS-002:REQUIRED_ROLE_MISSING+++ ` +Contract: services/ComponentOwnerService.sol -| `ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-080:POLICY_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:COS-003:COMPONENT_ID_INVALID+++ ` +Contract: services/ComponentOwnerService.sol -| `ERROR:POC-081:CLAIM_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-082:CLAIM_NOT_CONFIRMED` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:COS-004:NOT_OWNER+++ ` +Contract: services/ComponentOwnerService.sol -| `ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:COS-005:REQUIRED_ROLE_MISSING+++ ` +Contract: services/ComponentOwnerService.sol -| `ERROR:POC-085:PAYOUT_ALREADY_EXISTS` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-090:POLICY_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:COS-006:IMPLEMENATION_MISSING+++ ` +Contract: services/ComponentOwnerService.sol -| `ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-092:PAYOUT_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:COS-007:IMPLEMENATION_MISSING+++ ` +Contract: services/ComponentOwnerService.sol -| `ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-100:METADATA_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CRC-001:NOT_INSTANCE_OPERATOR+++ ` +Contract: shared/CoreController.sol -| `ERROR:POC-101:APPLICATION_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-102:POLICY_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CRC-001:NOT_ORACLE_SERVICE+++ ` +Contract: modules/QueryModule.sol -| `ERROR:POC-103:CLAIM_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-104:PAYOUT_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CRC-002:NOT_ON_STORAGE+++ ` +Contract: shared/CoreController.sol -| `ERROR:POC-110:POLICY_DOES_NOT_EXIST` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POC-111:AMOUNT_TOO_BIG` -| modules/PolicyController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CRC-003:NOT_PRODUCT_SERVICE+++ ` +Contract: shared/CoreController.sol -| `ERROR:POL-001:INVALID_OWNER` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POL-001:NOT_INSTANCE_OPERATOR` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CRC-004:CONTRACT_NOT_REGISTERED+++ ` +Contract: shared/CoreController.sol -| `ERROR:POL-002:INVALID_PRODUCT` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POL-002:NOT_RISKPOOL_SERVICE` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:CRP-001:NOT_ADMIN+++ ` +Contract: shared/CoreProxy.sol -| `ERROR:POL-003:PRODUCT_NOT_ACTIVE` -| modules/PolicyController.sol -| Thrown if +Thrown if -| `ERROR:POL-003:RISKPOOL_NOT_ACTIVE` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:IOS-001:NOT_INSTANCE_OPERATOR+++ ` +Contract: services/InstanceOperatorService.sol -| `ERROR:POL-004:RISKPOOL_NOT_ACTIVE` -| modules/PoolController.sol -| Thrown if +Thrown if -| `ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:IOS-010:IMPLEMENATION_MISSING+++ ` +Contract: services/InstanceOperatorService.sol -| `ERROR:POL-006:WALLET_ADDRESS_ZERO` -| modules/PoolController.sol -| Thrown if +Thrown if -| `ERROR:POL-007:ERC20_ADDRESS_ZERO` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:IOS-011:IMPLEMENATION_MISSING+++ ` +Contract: services/InstanceOperatorService.sol -| `ERROR:POL-008:COLLATERALIZATION_` -| modules/PoolController.sol -| Thrown if +Thrown if -| `ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:IS-001:IMPLEMENATION_MISSING+++ ` +Contract: services/InstanceService.sol -| `ERROR:POL-010:NOT_PRODUCT` -| modules/PoolController.sol -| Thrown if +Thrown if -| `ERROR:POL-011:NOT_RISKPOOL` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:IS-002:IMPLEMENATION_MISSING+++ ` +Contract: services/InstanceService.sol -| `ERROR:POL-012:RISKPOOL_ALREADY_SET` -| modules/PoolController.sol -| Thrown if +Thrown if -| `ERROR:POL-020:APPLICATION_STATE_INVALID` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:LIC-001:COMPONENT_NOT_PRODUCT+++ ` +Contract: modules/LicenseController.sol -| `ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED` -| modules/PoolController.sol -| Thrown if +Thrown if -| `ERROR:POL-025:POLICY_STATE_INVALID` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:PFD-001:POLICY_NOT_ACTIVE+++ ` +Contract: flows/PolicyDefaultFlow.sol -| `ERROR:POL-026:RISKPOOL_ID_INVALID` -| modules/PoolController.sol -| Thrown if +Thrown if -| `ERROR:POL-027:CAPITAL_TOO_LOW` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:PFD-002:POLICY_NOT_EXPIRED+++ ` +Contract: flows/PolicyDefaultFlow.sol -| `ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW` -| modules/PoolController.sol -| Thrown if +Thrown if -| `ERROR:POL-029:BALANCE_TOO_LOW` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:PFD-003:POLICY_CLOSED+++ ` +Contract: flows/PolicyDefaultFlow.sol -| `ERROR:POL-030:POLICY_STATE_INVALID` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH+++ ` +Contract: flows/PolicyDefaultFlow.sol -| `ERROR:POL-040:POLICY_STATE_INVALID` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:POL-040:RISKPOOL_NOT_REGISTERED` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH+++ ` +Contract: flows/PolicyDefaultFlow.sol -| `ERROR:POL-041:BUNDLE_IDX_TOO_LARGE` -| modules/PoolController.sol -| Thrown if +Thrown if -| `ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-004:METADATA_ALREADY_EXISTS+++ ` +Contract: modules/PolicyController.sol -| `ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED` -| modules/PoolController.sol -| Thrown if +Thrown if -| `ERROR:POL-044:BUNDLE_ID_NOT_IN_SET` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-010:METADATA_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST` -| modules/PoolController.sol -| Thrown if +Thrown if -| `ERROR:POL-046:COMPONENT_NOT_RISKPOOL` -| modules/PoolController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-011:APPLICATION_ALREADY_EXISTS+++ ` +Contract: modules/PolicyController.sol -| `ERROR:POL-050:POLICY_STATE_INVALID` -| modules/BundleController.sol -| Thrown if +Thrown if -| `ERROR:PRS-001:NOT_AUTHORIZED` -| services/ProductService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-012:PREMIUM_AMOUNT_ZERO+++ ` +Contract: modules/PolicyController.sol -| `ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED` -| services/ProductService.sol -| Thrown if +Thrown if -| `ERROR:QUC-002:REQUEST_ID_INVALID` -| modules/QueryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL+++ ` +Contract: modules/PolicyController.sol -| `ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE` -| modules/QueryModule.sol -| Thrown if +Thrown if -| `ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT` -| modules/QueryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-014:METADATA_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL` -| modules/QueryModule.sol -| Thrown if +Thrown if -| `ERROR:QUC-030:REQUEST_ID_INVALID` -| modules/QueryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-015:APPLICATION_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:QUC-040:REQUEST_ID_INVALID` -| modules/QueryModule.sol -| Thrown if +Thrown if -| `ERROR:QUC-041:COMPONENT_NOT_ORACLE` -| modules/QueryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-016:APPLICATION_STATE_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:QUC-042:ORACLE_NOT_ACTIVE` -| modules/QueryModule.sol -| Thrown if +Thrown if -| `ERROR:REC-001:EMPTY_RELEASE` -| modules/RegistryController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-017:APPLICATION_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:REC-002:NEW_RELEASE_NOT_EMPTY` -| modules/RegistryController.sol -| Thrown if +Thrown if -| `ERROR:REC-010:MAX_CONTRACTS_LIMIT` -| modules/RegistryController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-018:APPLICATION_STATE_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:REC-011:RELEASE_UNKNOWN` -| modules/RegistryController.sol -| Thrown if +Thrown if -| `ERROR:REC-012:CONTRACT_NAME_EMPTY` -| modules/RegistryController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-019:METADATA_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:REC-013:CONTRACT_NAME_EXISTS` -| modules/RegistryController.sol -| Thrown if +Thrown if -| `ERROR:REC-014:CONTRACT_ADDRESS_ZERO` -| modules/RegistryController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-020:APPLICATION_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:REC-015:CONTRACT_NUMBER_MISMATCH` -| modules/RegistryController.sol -| Thrown if +Thrown if -| `ERROR:REC-020:CONTRACT_UNKNOWN` -| modules/RegistryController.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-021:APPLICATION_STATE_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:REC-021:CONTRACT_NUMBER_MISMATCH` -| modules/RegistryController.sol -| Thrown if +Thrown if -| `ERROR:REC-102:UPGRADE_ONCE_OMLY` -| test/TestRegistryControllerUpdated.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-022:APPLICATION_ACCESS_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:RPS-001:SENDER_NOT_RISKPOOL` -| services/RiskpoolService.sol -| Thrown if +Thrown if -| `ERROR:RPS-002:RISKPOOL_NOT_PROPOSED` -| services/RiskpoolService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-023:POLICY_ALREADY_EXISTS+++ ` +Contract: modules/PolicyController.sol -| `ERROR:RPS-003:SENDER_NOT_RISKPOOL` -| services/RiskpoolService.sol -| Thrown if +Thrown if -| `ERROR:RPS-004:RISKPOOL_NOT_ACTIVE` -| services/RiskpoolService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-024:APPLICATION_ACCESS_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:RPS-005:SENDER_NOT_RISKPOOL` -| services/RiskpoolService.sol -| Thrown if +Thrown if -| `ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH` -| services/RiskpoolService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-025:APPLICATION_PREMIUM_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:RPS-007:RISKPOOL_NOT_ACTIVE` -| services/RiskpoolService.sol -| Thrown if +Thrown if -| `ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL` -| services/RiskpoolService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:RPS-009:RISKPOOL_NOT_ACTIVE` -| services/RiskpoolService.sol -| Thrown if +Thrown if -| `ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED` -| services/RiskpoolService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-027:POLICY_ACCESS_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:RPS-011:BUNDLE_BURNED` -| services/RiskpoolService.sol -| Thrown if +Thrown if -| `ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION` -| services/RiskpoolService.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-028:POLICY_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:RPS-020:BUNDLE_NOT_CLOSED` -| services/RiskpoolService.sol -| Thrown if +Thrown if -| `ERROR:TCP-1:INVALID_POLICY_OR_HOLDER` -| test/TestCompromisedProduct.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-029:APPLICATION_STATE_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TI-2:TOKEN_ADDRESS_ZERO` -| test/TestProduct.sol -| Thrown if +Thrown if -| `ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-030:METADATA_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-031:POLICY_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-004:TREASURY_SUSPENDED` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-005:NOT_RISKPOOL_SERVICE` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-032:POLICY_STATE_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-010:TOKEN_ADDRESS_ZERO` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-011:NOT_PRODUCT` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-040:POLICY_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-015:WALLET_ADDRESS_ZERO` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-041:POLICY_NOT_ACTIVE+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-016:NOT_RISKPOOL` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-017:WALLET_ADDRESS_ZERO` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-043:CLAIM_ALREADY_EXISTS+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-022:NOT_PRODUCT` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-023:NOT_RISKPOOL` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-050:POLICY_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-024:FEE_SPEC_UNDEFINED` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-030:AMOUNT_TOO_BIG` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-031:FEE_TRANSFER_FAILED` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-032:PREMIUM_TRANSFER_FAILED` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-053:CLAIM_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-044:PAYOUT_TRANSFER_FAILED` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-050:FEE_SPEC_UNDEFINED` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-054:CLAIM_STATE_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-052:BALANCE_TOO_SMALL` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-060:POLICY_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-054:FEE_TRANSFER_FAILED` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-055:CAPITAL_TRANSFER_FAILED` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-062:CLAIM_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-063:CLAIM_STATE_INVALID+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED` -| modules/TreasuryModule.sol -| Thrown if +==== `[.contract-item-name]#+++ERROR:POC-070:POLICY_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol -| `ERROR:TRS-091:FEE_TOO_BIG` -| modules/TreasuryModule.sol -| Thrown if +Thrown if -| `ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL` -| modules/TreasuryModule.sol -| Thrown if -|===== \ No newline at end of file +==== `[.contract-item-name]#+++ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-072:CLAIM_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-073:CLAIM_STATE_INVALID+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-080:POLICY_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-081:CLAIM_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-082:CLAIM_NOT_CONFIRMED+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-085:PAYOUT_ALREADY_EXISTS+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-090:POLICY_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-092:PAYOUT_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-100:METADATA_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-101:APPLICATION_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-102:POLICY_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-103:CLAIM_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-104:PAYOUT_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-110:POLICY_DOES_NOT_EXIST+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POC-111:AMOUNT_TOO_BIG+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-001:INVALID_OWNER+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-001:NOT_INSTANCE_OPERATOR+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-002:INVALID_PRODUCT+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-002:NOT_RISKPOOL_SERVICE+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-003:PRODUCT_NOT_ACTIVE+++ ` +Contract: modules/PolicyController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-003:RISKPOOL_NOT_ACTIVE+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-004:RISKPOOL_NOT_ACTIVE+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-006:WALLET_ADDRESS_ZERO+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-007:ERC20_ADDRESS_ZERO+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-008:COLLATERALIZATION_+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-010:NOT_PRODUCT+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-011:NOT_RISKPOOL+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-012:RISKPOOL_ALREADY_SET+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-020:APPLICATION_STATE_INVALID+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-025:POLICY_STATE_INVALID+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-026:RISKPOOL_ID_INVALID+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-027:CAPITAL_TOO_LOW+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-029:BALANCE_TOO_LOW+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-030:POLICY_STATE_INVALID+++ ` +Contract: modules/BundleController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-040:POLICY_STATE_INVALID+++ ` +Contract: modules/BundleController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-040:RISKPOOL_NOT_REGISTERED+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-041:BUNDLE_IDX_TOO_LARGE+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-044:BUNDLE_ID_NOT_IN_SET+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-046:COMPONENT_NOT_RISKPOOL+++ ` +Contract: modules/PoolController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:POL-050:POLICY_STATE_INVALID+++ ` +Contract: modules/BundleController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:PRS-001:NOT_AUTHORIZED+++ ` +Contract: services/ProductService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED+++ ` +Contract: services/ProductService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:QUC-002:REQUEST_ID_INVALID+++ ` +Contract: modules/QueryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE+++ ` +Contract: modules/QueryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT+++ ` +Contract: modules/QueryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL+++ ` +Contract: modules/QueryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:QUC-030:REQUEST_ID_INVALID+++ ` +Contract: modules/QueryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:QUC-040:REQUEST_ID_INVALID+++ ` +Contract: modules/QueryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:QUC-041:COMPONENT_NOT_ORACLE+++ ` +Contract: modules/QueryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:QUC-042:ORACLE_NOT_ACTIVE+++ ` +Contract: modules/QueryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:REC-001:EMPTY_RELEASE+++ ` +Contract: modules/RegistryController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:REC-002:NEW_RELEASE_NOT_EMPTY+++ ` +Contract: modules/RegistryController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:REC-010:MAX_CONTRACTS_LIMIT+++ ` +Contract: modules/RegistryController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:REC-011:RELEASE_UNKNOWN+++ ` +Contract: modules/RegistryController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:REC-012:CONTRACT_NAME_EMPTY+++ ` +Contract: modules/RegistryController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:REC-013:CONTRACT_NAME_EXISTS+++ ` +Contract: modules/RegistryController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:REC-014:CONTRACT_ADDRESS_ZERO+++ ` +Contract: modules/RegistryController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:REC-015:CONTRACT_NUMBER_MISMATCH+++ ` +Contract: modules/RegistryController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:REC-020:CONTRACT_UNKNOWN+++ ` +Contract: modules/RegistryController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:REC-021:CONTRACT_NUMBER_MISMATCH+++ ` +Contract: modules/RegistryController.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:REC-102:UPGRADE_ONCE_OMLY+++ ` +Contract: test/TestRegistryControllerUpdated.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-001:SENDER_NOT_RISKPOOL+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-002:RISKPOOL_NOT_PROPOSED+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-003:SENDER_NOT_RISKPOOL+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-004:RISKPOOL_NOT_ACTIVE+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-005:SENDER_NOT_RISKPOOL+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-007:RISKPOOL_NOT_ACTIVE+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-009:RISKPOOL_NOT_ACTIVE+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-011:BUNDLE_BURNED+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:RPS-020:BUNDLE_NOT_CLOSED+++ ` +Contract: services/RiskpoolService.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TCP-1:INVALID_POLICY_OR_HOLDER+++ ` +Contract: test/TestCompromisedProduct.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TI-2:TOKEN_ADDRESS_ZERO+++ ` +Contract: test/TestProduct.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-004:TREASURY_SUSPENDED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-005:NOT_RISKPOOL_SERVICE+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-010:TOKEN_ADDRESS_ZERO+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-011:NOT_PRODUCT+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-015:WALLET_ADDRESS_ZERO+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-016:NOT_RISKPOOL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-017:WALLET_ADDRESS_ZERO+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-022:NOT_PRODUCT+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-023:NOT_RISKPOOL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-024:FEE_SPEC_UNDEFINED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-030:AMOUNT_TOO_BIG+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-031:FEE_TRANSFER_FAILED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-032:PREMIUM_TRANSFER_FAILED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-044:PAYOUT_TRANSFER_FAILED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-050:FEE_SPEC_UNDEFINED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-052:BALANCE_TOO_SMALL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-054:FEE_TRANSFER_FAILED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-055:CAPITAL_TRANSFER_FAILED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-091:FEE_TOO_BIG+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if + +==== `[.contract-item-name]#+++ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL+++ ` +Contract: modules/TreasuryModule.sol + +Thrown if +Contract: ===== \ No newline at end of file From 66a7fccd495130368589c043d0a8b33619d48909 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Fri, 9 Jun 2023 16:02:05 +0000 Subject: [PATCH 18/29] Fix format --- docs/modules/ROOT/pages/errorCodes.adoc | 4 + docs/modules/api/pages/modules.adoc | 138 ++++++++++++------------ 2 files changed, 73 insertions(+), 69 deletions(-) diff --git a/docs/modules/ROOT/pages/errorCodes.adoc b/docs/modules/ROOT/pages/errorCodes.adoc index 7fdc3364..52bac9cc 100644 --- a/docs/modules/ROOT/pages/errorCodes.adoc +++ b/docs/modules/ROOT/pages/errorCodes.adoc @@ -2,6 +2,10 @@ // [[AccessController-addRole-bytes32-]] // ==== `[.contract-item-name]#++addRole++#++(bytes32 role)++` [.item-kind]#public# // += Error Codes +== Error Codes +=== Error Codes +[.hljs-theme-light.nopadding] ==== `[.contract-item-name]#+++ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET+++ ` diff --git a/docs/modules/api/pages/modules.adoc b/docs/modules/api/pages/modules.adoc index accc2f23..12e44043 100644 --- a/docs/modules/api/pages/modules.adoc +++ b/docs/modules/api/pages/modules.adoc @@ -243,43 +243,43 @@ NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/ import "@etherisc/gif-contracts/contracts/modules/AccessController.sol"; ``` -The provided smart contract is called "AccessController" and is written in Solidity. It implements the "IAccess" interface and inherits from the "CoreController" contract and the "AccessControlEnumerable" contract. The contract provides functionalities for access control and role management. - -Roles: - -The contract defines three role identifiers as bytes32 constants: -1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. -2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. -3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. - -State Variables: - -- `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. -- `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. - -Functions: - -- `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. -- `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. -- `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. -- `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract. -- `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract. -- `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract. -- `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping. -- `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping. -- `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role. -- `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE. -- `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE. -- `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE. -- `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. -- `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. - -Modifiers: - -- `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. - -Overall, the contract provides a flexible access control mechanism by defining roles and -allowing the assignment, revocation, and validation of roles by instance operators. +The provided smart contract is called "AccessController" and is written in Solidity. It implements the "IAccess" interface and inherits from the "CoreController" contract and the "AccessControlEnumerable" contract. The contract provides functionalities for access control and role management. + +Roles: + +The contract defines three role identifiers as bytes32 constants: +1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. +2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. +3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. + +State Variables: + +- `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. +- `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. + +Functions: + +- `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. +- `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. +- `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. +- `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract. +- `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract. +- `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract. +- `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping. +- `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping. +- `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role. +- `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE. +- `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE. +- `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE. +- `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. +- `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. + +Modifiers: + +- `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. + +Overall, the contract provides a flexible access control mechanism by defining roles and +allowing the assignment, revocation, and validation of roles by instance operators. It also sets a default admin role and manages the validity of roles through the `validRole` mapping. [.contract-index] @@ -726,38 +726,38 @@ Overall, the `BundleController` contract provides functionality to manage bundle import "@etherisc/gif-contracts/contracts/modules/ComponentController.sol"; ``` -The smart contract provides functionality to manage and control components in a system. -The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. -It also includes modifiers to restrict access to certain functions based on the caller's role. - -Functions: - -- `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. -- `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. -- `exists()`: Checks if a component with the given ID exists in the system. -- `approve()`: Approves a component with the given ID, changing its state to "Active" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping. -- `decline()`: Changes the state of a component with the given ID to "Declined" and emits an event. It also calls the `declineCallback` function of the component. -- `suspend()`: Suspends a component with the given ID by changing its state to "Suspended" and emitting an event. It also calls the `suspendCallback` function of the component. -- `resume()`: Resumes a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `resumeCallback` function of the component. -- `pause()`: Pauses a component with the given ID by changing its state to "Paused" and emitting an event. It also calls the `pauseCallback` function of the component. -- `unpause()`: Unpauses a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `unpauseCallback` function of the component. -- `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. -- `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. -- `getComponent()`: Retrieves the component with the given ID. -- `getComponentId()`: Retrieves the ID of a registered component given its address. -- `getComponentType()`: Retrieves the component type of a given component ID. -- `getComponentState()`: Retrieves the state of the component with the given ID. -- `getOracleId()`: Retrieves the oracle ID at the specified index. -- `getRiskpoolId()`: Retrieves the risk pool ID at the specified index. -- `getProductId()`: Retrieves the product ID at the specified index. -- `getRequiredRole()`: Retrieves the required role for a given component type. -- `components()`: Returns the number of components currently stored in the contract. -- `products()`: Returns the number of products in the `_products` set. -- `oracles()`: Returns the number of oracles registered in the `_oracles` set. -- `riskpools()`: Returns the number of risk pools in the set. - -The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. - +The smart contract provides functionality to manage and control components in a system. +The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. +It also includes modifiers to restrict access to certain functions based on the caller's role. + +Functions: + +- `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. +- `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. +- `exists()`: Checks if a component with the given ID exists in the system. +- `approve()`: Approves a component with the given ID, changing its state to "Active" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping. +- `decline()`: Changes the state of a component with the given ID to "Declined" and emits an event. It also calls the `declineCallback` function of the component. +- `suspend()`: Suspends a component with the given ID by changing its state to "Suspended" and emitting an event. It also calls the `suspendCallback` function of the component. +- `resume()`: Resumes a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `resumeCallback` function of the component. +- `pause()`: Pauses a component with the given ID by changing its state to "Paused" and emitting an event. It also calls the `pauseCallback` function of the component. +- `unpause()`: Unpauses a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `unpauseCallback` function of the component. +- `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. +- `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. +- `getComponent()`: Retrieves the component with the given ID. +- `getComponentId()`: Retrieves the ID of a registered component given its address. +- `getComponentType()`: Retrieves the component type of a given component ID. +- `getComponentState()`: Retrieves the state of the component with the given ID. +- `getOracleId()`: Retrieves the oracle ID at the specified index. +- `getRiskpoolId()`: Retrieves the risk pool ID at the specified index. +- `getProductId()`: Retrieves the product ID at the specified index. +- `getRequiredRole()`: Retrieves the required role for a given component type. +- `components()`: Returns the number of components currently stored in the contract. +- `products()`: Returns the number of products in the `_products` set. +- `oracles()`: Returns the number of oracles registered in the `_oracles` set. +- `riskpools()`: Returns the number of risk pools in the set. + +The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. + The contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations. [.contract-index] From 79a4676d9fdb1a8168eae8a8da78913314962e6e Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Fri, 9 Jun 2023 16:04:16 +0000 Subject: [PATCH 19/29] Fix heading --- docs/modules/ROOT/pages/errorCodes.adoc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/modules/ROOT/pages/errorCodes.adoc b/docs/modules/ROOT/pages/errorCodes.adoc index 52bac9cc..ec0f4787 100644 --- a/docs/modules/ROOT/pages/errorCodes.adoc +++ b/docs/modules/ROOT/pages/errorCodes.adoc @@ -3,10 +3,14 @@ // ==== `[.contract-item-name]#++addRole++#++(bytes32 role)++` [.item-kind]#public# // = Error Codes + == Error Codes -=== Error Codes -[.hljs-theme-light.nopadding] +Test + +=== Test + +Test ==== `[.contract-item-name]#+++ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET+++ ` Contract: modules/AccessController.sol From 33239fa376332c3274f3c0e98b6313d354cd50e5 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Fri, 9 Jun 2023 16:31:55 +0000 Subject: [PATCH 20/29] Fix format... --- docs/modules/ROOT/pages/errorCodes.adoc | 517 ++++++++++++------------ 1 file changed, 263 insertions(+), 254 deletions(-) diff --git a/docs/modules/ROOT/pages/errorCodes.adoc b/docs/modules/ROOT/pages/errorCodes.adoc index ec0f4787..7c104556 100644 --- a/docs/modules/ROOT/pages/errorCodes.adoc +++ b/docs/modules/ROOT/pages/errorCodes.adoc @@ -10,1271 +10,1280 @@ Test === Test +[.hljs-theme-light.nopadding] + Test -==== `[.contract-item-name]#+++ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET+++ ` +-- + + +[.contract-item] +==== `[.contract-item-name]#++ERRORACL-001ADMIN_ROLE_ALREADY_SET++ `# Contract: modules/AccessController.sol Thrown if you try to set the admin role twice. -==== `[.contract-item-name]#+++ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID+++ ` +[.contract-item] +==== `[.contract-item-name]#+++ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID+++ `# Contract: modules/AccessController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACL-003:ROLE_EXISTING_AND_VALID+++ ` +==== `[.contract-item-name]#+++ERROR:ACL-003:ROLE_EXISTING_AND_VALID+++ `# Contract: modules/AccessController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID+++ `# Contract: modules/AccessController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACM-001:NOT_INSTANCE_OPERATOR+++ ` +==== `[.contract-item-name]#+++ERROR:ACM-001:NOT_INSTANCE_OPERATOR+++ `# Contract: shared/WithRegistry.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACM-004:NOT_ORACLE_SERVICE+++ ` +==== `[.contract-item-name]#+++ERROR:ACM-004:NOT_ORACLE_SERVICE+++ `# Contract: shared/WithRegistry.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACM-005:NOT_ORACLE_OWNER+++ ` +==== `[.contract-item-name]#+++ERROR:ACM-005:NOT_ORACLE_OWNER+++ `# Contract: shared/WithRegistry.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACM-006:NOT_PRODUCT_OWNER+++ ` +==== `[.contract-item-name]#+++ERROR:ACM-006:NOT_PRODUCT_OWNER+++ `# Contract: shared/WithRegistry.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED+++ ` +==== `[.contract-item-name]#+++ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BTK-001:NOT_INITIALIZED+++ ` +==== `[.contract-item-name]#+++ERROR:BTK-001:NOT_INITIALIZED+++ `# Contract: tokens/BundleToken.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BTK-002:NOT_BUNDLE_MODULE+++ ` +==== `[.contract-item-name]#+++ERROR:BTK-002:NOT_BUNDLE_MODULE+++ `# Contract: tokens/BundleToken.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED+++ ` +==== `[.contract-item-name]#+++ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED+++ `# Contract: tokens/BundleToken.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS+++ ` +==== `[.contract-item-name]#+++ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS+++ `# Contract: tokens/BundleToken.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BTK-005:TOKEN_ID_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:BTK-005:TOKEN_ID_INVALID+++ `# Contract: tokens/BundleToken.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-001:NOT_RISKPOOL_SERVICE+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-001:NOT_RISKPOOL_SERVICE+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-010:BUNDLE_ALREADY_EXISTS+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-010:BUNDLE_ALREADY_EXISTS+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-012:BUNDLE_CLOSED+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-012:BUNDLE_CLOSED+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-016:BUNDLE_NOT_CLOSED+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-016:BUNDLE_NOT_CLOSED+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-017:BUNDLE_HAS_BALANCE+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-017:BUNDLE_HAS_BALANCE+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-021:BUNDLE_NOT_ACTIVE+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-021:BUNDLE_NOT_ACTIVE+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-022:CAPACITY_TOO_LOW+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-022:CAPACITY_TOO_LOW+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-044:BUNDLE_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-044:BUNDLE_STATE_INVALID+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-045:CAPITAL_TOO_LOW+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-045:CAPITAL_TOO_LOW+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-047:BALANCE_TOO_LOW+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-047:BALANCE_TOO_LOW+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST+++ `# Contract: modules/BundleController.sol Thrown if you ... and bundle doesn't exist -==== `[.contract-item-name]#+++ERROR:BUC-070:ACTIVE_INVALID_TRANSITION+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-070:ACTIVE_INVALID_TRANSITION+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-071:LOCKED_INVALID_TRANSITION+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-071:LOCKED_INVALID_TRANSITION+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-072:CLOSED_INVALID_TRANSITION+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-072:CLOSED_INVALID_TRANSITION+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-073:BURNED_IS_FINAL_STATE+++ ` +==== `[.contract-item-name]#+++ERROR:BUC-073:BURNED_IS_FINAL_STATE+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-003:COMPONENT_ALREADY_EXISTS+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-003:COMPONENT_ALREADY_EXISTS+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-005:INVALID_COMPONENT_ID+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-005:INVALID_COMPONENT_ID+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-006:COMPONENT_ADDRESS_ZERO+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-006:COMPONENT_ADDRESS_ZERO+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-007:COMPONENT_UNKNOWN+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-007:COMPONENT_UNKNOWN+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-008:INVALID_COMPONENT_ID+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-008:INVALID_COMPONENT_ID+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-011:UNKNOWN_PRODUCT_ID+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-011:UNKNOWN_PRODUCT_ID+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-021:CREATED_INVALID_TRANSITION+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-021:CREATED_INVALID_TRANSITION+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-023:DECLINED_IS_FINAL_STATE+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-023:DECLINED_IS_FINAL_STATE+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-024:ACTIVE_INVALID_TRANSITION+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-024:ACTIVE_INVALID_TRANSITION+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-025:PAUSED_INVALID_TRANSITION+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-025:PAUSED_INVALID_TRANSITION+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-22:PROPOSED_INVALID_TRANSITION+++ ` +==== `[.contract-item-name]#+++ERROR:CCR-22:PROPOSED_INVALID_TRANSITION+++ `# Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-001:NOT_OWNER+++ ` +==== `[.contract-item-name]#+++ERROR:COS-001:NOT_OWNER+++ `# Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-002:REQUIRED_ROLE_MISSING+++ ` +==== `[.contract-item-name]#+++ERROR:COS-002:REQUIRED_ROLE_MISSING+++ `# Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-003:COMPONENT_ID_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:COS-003:COMPONENT_ID_INVALID+++ `# Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-004:NOT_OWNER+++ ` +==== `[.contract-item-name]#+++ERROR:COS-004:NOT_OWNER+++ `# Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-005:REQUIRED_ROLE_MISSING+++ ` +==== `[.contract-item-name]#+++ERROR:COS-005:REQUIRED_ROLE_MISSING+++ `# Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-006:IMPLEMENATION_MISSING+++ ` +==== `[.contract-item-name]#+++ERROR:COS-006:IMPLEMENATION_MISSING+++ `# Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-007:IMPLEMENATION_MISSING+++ ` +==== `[.contract-item-name]#+++ERROR:COS-007:IMPLEMENATION_MISSING+++ `# Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRC-001:NOT_INSTANCE_OPERATOR+++ ` +==== `[.contract-item-name]#+++ERROR:CRC-001:NOT_INSTANCE_OPERATOR+++ `# Contract: shared/CoreController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRC-001:NOT_ORACLE_SERVICE+++ ` +==== `[.contract-item-name]#+++ERROR:CRC-001:NOT_ORACLE_SERVICE+++ `# Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRC-002:NOT_ON_STORAGE+++ ` +==== `[.contract-item-name]#+++ERROR:CRC-002:NOT_ON_STORAGE+++ `# Contract: shared/CoreController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRC-003:NOT_PRODUCT_SERVICE+++ ` +==== `[.contract-item-name]#+++ERROR:CRC-003:NOT_PRODUCT_SERVICE+++ `# Contract: shared/CoreController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRC-004:CONTRACT_NOT_REGISTERED+++ ` +==== `[.contract-item-name]#+++ERROR:CRC-004:CONTRACT_NOT_REGISTERED+++ `# Contract: shared/CoreController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRP-001:NOT_ADMIN+++ ` +==== `[.contract-item-name]#+++ERROR:CRP-001:NOT_ADMIN+++ `# Contract: shared/CoreProxy.sol Thrown if -==== `[.contract-item-name]#+++ERROR:IOS-001:NOT_INSTANCE_OPERATOR+++ ` +==== `[.contract-item-name]#+++ERROR:IOS-001:NOT_INSTANCE_OPERATOR+++ `# Contract: services/InstanceOperatorService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:IOS-010:IMPLEMENATION_MISSING+++ ` +==== `[.contract-item-name]#+++ERROR:IOS-010:IMPLEMENATION_MISSING+++ `# Contract: services/InstanceOperatorService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:IOS-011:IMPLEMENATION_MISSING+++ ` +==== `[.contract-item-name]#+++ERROR:IOS-011:IMPLEMENATION_MISSING+++ `# Contract: services/InstanceOperatorService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:IS-001:IMPLEMENATION_MISSING+++ ` +==== `[.contract-item-name]#+++ERROR:IS-001:IMPLEMENATION_MISSING+++ `# Contract: services/InstanceService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:IS-002:IMPLEMENATION_MISSING+++ ` +==== `[.contract-item-name]#+++ERROR:IS-002:IMPLEMENATION_MISSING+++ `# Contract: services/InstanceService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:LIC-001:COMPONENT_NOT_PRODUCT+++ ` +==== `[.contract-item-name]#+++ERROR:LIC-001:COMPONENT_NOT_PRODUCT+++ `# Contract: modules/LicenseController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PFD-001:POLICY_NOT_ACTIVE+++ ` +==== `[.contract-item-name]#+++ERROR:PFD-001:POLICY_NOT_ACTIVE+++ `# Contract: flows/PolicyDefaultFlow.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PFD-002:POLICY_NOT_EXPIRED+++ ` +==== `[.contract-item-name]#+++ERROR:PFD-002:POLICY_NOT_EXPIRED+++ `# Contract: flows/PolicyDefaultFlow.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PFD-003:POLICY_CLOSED+++ ` +==== `[.contract-item-name]#+++ERROR:PFD-003:POLICY_CLOSED+++ `# Contract: flows/PolicyDefaultFlow.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH+++ ` +==== `[.contract-item-name]#+++ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH+++ `# Contract: flows/PolicyDefaultFlow.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH+++ ` +==== `[.contract-item-name]#+++ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH+++ `# Contract: flows/PolicyDefaultFlow.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-004:METADATA_ALREADY_EXISTS+++ ` +==== `[.contract-item-name]#+++ERROR:POC-004:METADATA_ALREADY_EXISTS+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-010:METADATA_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-010:METADATA_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-011:APPLICATION_ALREADY_EXISTS+++ ` +==== `[.contract-item-name]#+++ERROR:POC-011:APPLICATION_ALREADY_EXISTS+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-012:PREMIUM_AMOUNT_ZERO+++ ` +==== `[.contract-item-name]#+++ERROR:POC-012:PREMIUM_AMOUNT_ZERO+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL+++ ` +==== `[.contract-item-name]#+++ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-014:METADATA_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-014:METADATA_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-015:APPLICATION_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-015:APPLICATION_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-016:APPLICATION_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-016:APPLICATION_STATE_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-017:APPLICATION_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-017:APPLICATION_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-018:APPLICATION_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-018:APPLICATION_STATE_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-019:METADATA_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-019:METADATA_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-020:APPLICATION_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-020:APPLICATION_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-021:APPLICATION_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-021:APPLICATION_STATE_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-022:APPLICATION_ACCESS_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-022:APPLICATION_ACCESS_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-023:POLICY_ALREADY_EXISTS+++ ` +==== `[.contract-item-name]#+++ERROR:POC-023:POLICY_ALREADY_EXISTS+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-024:APPLICATION_ACCESS_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-024:APPLICATION_ACCESS_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-025:APPLICATION_PREMIUM_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-025:APPLICATION_PREMIUM_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-027:POLICY_ACCESS_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-027:POLICY_ACCESS_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-028:POLICY_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-028:POLICY_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-029:APPLICATION_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-029:APPLICATION_STATE_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-030:METADATA_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-030:METADATA_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-031:POLICY_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-031:POLICY_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-032:POLICY_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-032:POLICY_STATE_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS+++ ` +==== `[.contract-item-name]#+++ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-040:POLICY_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-040:POLICY_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-041:POLICY_NOT_ACTIVE+++ ` +==== `[.contract-item-name]#+++ERROR:POC-041:POLICY_NOT_ACTIVE+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT+++ ` +==== `[.contract-item-name]#+++ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-043:CLAIM_ALREADY_EXISTS+++ ` +==== `[.contract-item-name]#+++ERROR:POC-043:CLAIM_ALREADY_EXISTS+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-050:POLICY_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-050:POLICY_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS+++ ` +==== `[.contract-item-name]#+++ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED+++ ` +==== `[.contract-item-name]#+++ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-053:CLAIM_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-053:CLAIM_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-054:CLAIM_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-054:CLAIM_STATE_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-060:POLICY_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-060:POLICY_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS+++ ` +==== `[.contract-item-name]#+++ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-062:CLAIM_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-062:CLAIM_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-063:CLAIM_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-063:CLAIM_STATE_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-070:POLICY_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-070:POLICY_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS+++ ` +==== `[.contract-item-name]#+++ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-072:CLAIM_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-072:CLAIM_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-073:CLAIM_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-073:CLAIM_STATE_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS+++ ` +==== `[.contract-item-name]#+++ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-080:POLICY_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-080:POLICY_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-081:CLAIM_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-081:CLAIM_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-082:CLAIM_NOT_CONFIRMED+++ ` +==== `[.contract-item-name]#+++ERROR:POC-082:CLAIM_NOT_CONFIRMED+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG+++ ` +==== `[.contract-item-name]#+++ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-085:PAYOUT_ALREADY_EXISTS+++ ` +==== `[.contract-item-name]#+++ERROR:POC-085:PAYOUT_ALREADY_EXISTS+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-090:POLICY_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-090:POLICY_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS+++ ` +==== `[.contract-item-name]#+++ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-092:PAYOUT_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-092:PAYOUT_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT+++ ` +==== `[.contract-item-name]#+++ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-100:METADATA_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-100:METADATA_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-101:APPLICATION_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-101:APPLICATION_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-102:POLICY_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-102:POLICY_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-103:CLAIM_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-103:CLAIM_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-104:PAYOUT_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-104:PAYOUT_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-110:POLICY_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POC-110:POLICY_DOES_NOT_EXIST+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-111:AMOUNT_TOO_BIG+++ ` +==== `[.contract-item-name]#+++ERROR:POC-111:AMOUNT_TOO_BIG+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-001:INVALID_OWNER+++ ` +==== `[.contract-item-name]#+++ERROR:POL-001:INVALID_OWNER+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-001:NOT_INSTANCE_OPERATOR+++ ` +==== `[.contract-item-name]#+++ERROR:POL-001:NOT_INSTANCE_OPERATOR+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-002:INVALID_PRODUCT+++ ` +==== `[.contract-item-name]#+++ERROR:POL-002:INVALID_PRODUCT+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-002:NOT_RISKPOOL_SERVICE+++ ` +==== `[.contract-item-name]#+++ERROR:POL-002:NOT_RISKPOOL_SERVICE+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-003:PRODUCT_NOT_ACTIVE+++ ` +==== `[.contract-item-name]#+++ERROR:POL-003:PRODUCT_NOT_ACTIVE+++ `# Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-003:RISKPOOL_NOT_ACTIVE+++ ` +==== `[.contract-item-name]#+++ERROR:POL-003:RISKPOOL_NOT_ACTIVE+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-004:RISKPOOL_NOT_ACTIVE+++ ` +==== `[.contract-item-name]#+++ERROR:POL-004:RISKPOOL_NOT_ACTIVE+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED+++ ` +==== `[.contract-item-name]#+++ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-006:WALLET_ADDRESS_ZERO+++ ` +==== `[.contract-item-name]#+++ERROR:POL-006:WALLET_ADDRESS_ZERO+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-007:ERC20_ADDRESS_ZERO+++ ` +==== `[.contract-item-name]#+++ERROR:POL-007:ERC20_ADDRESS_ZERO+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-008:COLLATERALIZATION_+++ ` +==== `[.contract-item-name]#+++ERROR:POL-008:COLLATERALIZATION_+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO+++ ` +==== `[.contract-item-name]#+++ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-010:NOT_PRODUCT+++ ` +==== `[.contract-item-name]#+++ERROR:POL-010:NOT_PRODUCT+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-011:NOT_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:POL-011:NOT_RISKPOOL+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-012:RISKPOOL_ALREADY_SET+++ ` +==== `[.contract-item-name]#+++ERROR:POL-012:RISKPOOL_ALREADY_SET+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-020:APPLICATION_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POL-020:APPLICATION_STATE_INVALID+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED+++ ` +==== `[.contract-item-name]#+++ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-025:POLICY_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POL-025:POLICY_STATE_INVALID+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-026:RISKPOOL_ID_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POL-026:RISKPOOL_ID_INVALID+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-027:CAPITAL_TOO_LOW+++ ` +==== `[.contract-item-name]#+++ERROR:POL-027:CAPITAL_TOO_LOW+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW+++ ` +==== `[.contract-item-name]#+++ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-029:BALANCE_TOO_LOW+++ ` +==== `[.contract-item-name]#+++ERROR:POL-029:BALANCE_TOO_LOW+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-030:POLICY_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POL-030:POLICY_STATE_INVALID+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-040:POLICY_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POL-040:POLICY_STATE_INVALID+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-040:RISKPOOL_NOT_REGISTERED+++ ` +==== `[.contract-item-name]#+++ERROR:POL-040:RISKPOOL_NOT_REGISTERED+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-041:BUNDLE_IDX_TOO_LARGE+++ ` +==== `[.contract-item-name]#+++ERROR:POL-041:BUNDLE_IDX_TOO_LARGE+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET+++ ` +==== `[.contract-item-name]#+++ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED+++ ` +==== `[.contract-item-name]#+++ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-044:BUNDLE_ID_NOT_IN_SET+++ ` +==== `[.contract-item-name]#+++ERROR:POL-044:BUNDLE_ID_NOT_IN_SET+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST+++ ` +==== `[.contract-item-name]#+++ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-046:COMPONENT_NOT_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:POL-046:COMPONENT_NOT_RISKPOOL+++ `# Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-050:POLICY_STATE_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:POL-050:POLICY_STATE_INVALID+++ `# Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PRS-001:NOT_AUTHORIZED+++ ` +==== `[.contract-item-name]#+++ERROR:PRS-001:NOT_AUTHORIZED+++ `# Contract: services/ProductService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED+++ ` +==== `[.contract-item-name]#+++ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED+++ `# Contract: services/ProductService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-002:REQUEST_ID_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:QUC-002:REQUEST_ID_INVALID+++ `# Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE+++ ` +==== `[.contract-item-name]#+++ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE+++ `# Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT+++ ` +==== `[.contract-item-name]#+++ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT+++ `# Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL+++ ` +==== `[.contract-item-name]#+++ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL+++ `# Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-030:REQUEST_ID_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:QUC-030:REQUEST_ID_INVALID+++ `# Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-040:REQUEST_ID_INVALID+++ ` +==== `[.contract-item-name]#+++ERROR:QUC-040:REQUEST_ID_INVALID+++ `# Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-041:COMPONENT_NOT_ORACLE+++ ` +==== `[.contract-item-name]#+++ERROR:QUC-041:COMPONENT_NOT_ORACLE+++ `# Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-042:ORACLE_NOT_ACTIVE+++ ` +==== `[.contract-item-name]#+++ERROR:QUC-042:ORACLE_NOT_ACTIVE+++ `# Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-001:EMPTY_RELEASE+++ ` +==== `[.contract-item-name]#+++ERROR:REC-001:EMPTY_RELEASE+++ `# Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-002:NEW_RELEASE_NOT_EMPTY+++ ` +==== `[.contract-item-name]#+++ERROR:REC-002:NEW_RELEASE_NOT_EMPTY+++ `# Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-010:MAX_CONTRACTS_LIMIT+++ ` +==== `[.contract-item-name]#+++ERROR:REC-010:MAX_CONTRACTS_LIMIT+++ `# Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-011:RELEASE_UNKNOWN+++ ` +==== `[.contract-item-name]#+++ERROR:REC-011:RELEASE_UNKNOWN+++ `# Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-012:CONTRACT_NAME_EMPTY+++ ` +==== `[.contract-item-name]#+++ERROR:REC-012:CONTRACT_NAME_EMPTY+++ `# Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-013:CONTRACT_NAME_EXISTS+++ ` +==== `[.contract-item-name]#+++ERROR:REC-013:CONTRACT_NAME_EXISTS+++ `# Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-014:CONTRACT_ADDRESS_ZERO+++ ` +==== `[.contract-item-name]#+++ERROR:REC-014:CONTRACT_ADDRESS_ZERO+++ `# Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-015:CONTRACT_NUMBER_MISMATCH+++ ` +==== `[.contract-item-name]#+++ERROR:REC-015:CONTRACT_NUMBER_MISMATCH+++ `# Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-020:CONTRACT_UNKNOWN+++ ` +==== `[.contract-item-name]#+++ERROR:REC-020:CONTRACT_UNKNOWN+++ `# Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-021:CONTRACT_NUMBER_MISMATCH+++ ` +==== `[.contract-item-name]#+++ERROR:REC-021:CONTRACT_NUMBER_MISMATCH+++ `# Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-102:UPGRADE_ONCE_OMLY+++ ` +==== `[.contract-item-name]#+++ERROR:REC-102:UPGRADE_ONCE_OMLY+++ `# Contract: test/TestRegistryControllerUpdated.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-001:SENDER_NOT_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-001:SENDER_NOT_RISKPOOL+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-002:RISKPOOL_NOT_PROPOSED+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-002:RISKPOOL_NOT_PROPOSED+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-003:SENDER_NOT_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-003:SENDER_NOT_RISKPOOL+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-004:RISKPOOL_NOT_ACTIVE+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-004:RISKPOOL_NOT_ACTIVE+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-005:SENDER_NOT_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-005:SENDER_NOT_RISKPOOL+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-007:RISKPOOL_NOT_ACTIVE+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-007:RISKPOOL_NOT_ACTIVE+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-009:RISKPOOL_NOT_ACTIVE+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-009:RISKPOOL_NOT_ACTIVE+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-011:BUNDLE_BURNED+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-011:BUNDLE_BURNED+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-020:BUNDLE_NOT_CLOSED+++ ` +==== `[.contract-item-name]#+++ERROR:RPS-020:BUNDLE_NOT_CLOSED+++ `# Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TCP-1:INVALID_POLICY_OR_HOLDER+++ ` +==== `[.contract-item-name]#+++ERROR:TCP-1:INVALID_POLICY_OR_HOLDER+++ `# Contract: test/TestCompromisedProduct.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TI-2:TOKEN_ADDRESS_ZERO+++ ` +==== `[.contract-item-name]#+++ERROR:TI-2:TOKEN_ADDRESS_ZERO+++ `# Contract: test/TestProduct.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-004:TREASURY_SUSPENDED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-004:TREASURY_SUSPENDED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-005:NOT_RISKPOOL_SERVICE+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-005:NOT_RISKPOOL_SERVICE+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-010:TOKEN_ADDRESS_ZERO+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-010:TOKEN_ADDRESS_ZERO+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-011:NOT_PRODUCT+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-011:NOT_PRODUCT+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-015:WALLET_ADDRESS_ZERO+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-015:WALLET_ADDRESS_ZERO+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-016:NOT_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-016:NOT_RISKPOOL+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-017:WALLET_ADDRESS_ZERO+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-017:WALLET_ADDRESS_ZERO+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-022:NOT_PRODUCT+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-022:NOT_PRODUCT+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-023:NOT_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-023:NOT_RISKPOOL+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-024:FEE_SPEC_UNDEFINED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-024:FEE_SPEC_UNDEFINED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-030:AMOUNT_TOO_BIG+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-030:AMOUNT_TOO_BIG+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-031:FEE_TRANSFER_FAILED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-031:FEE_TRANSFER_FAILED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-032:PREMIUM_TRANSFER_FAILED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-032:PREMIUM_TRANSFER_FAILED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-044:PAYOUT_TRANSFER_FAILED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-044:PAYOUT_TRANSFER_FAILED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-050:FEE_SPEC_UNDEFINED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-050:FEE_SPEC_UNDEFINED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-052:BALANCE_TOO_SMALL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-052:BALANCE_TOO_SMALL+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-054:FEE_TRANSFER_FAILED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-054:FEE_TRANSFER_FAILED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-055:CAPITAL_TRANSFER_FAILED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-055:CAPITAL_TRANSFER_FAILED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-091:FEE_TOO_BIG+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-091:FEE_TOO_BIG+++ `# Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL+++ ` +==== `[.contract-item-name]#+++ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL+++ `# Contract: modules/TreasuryModule.sol Thrown if -Contract: ===== \ No newline at end of file +Contract: + +-- \ No newline at end of file From 330f64f91f0fb60ff65e8e7fd82e8abf9226eeef Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Fri, 9 Jun 2023 16:33:45 +0000 Subject: [PATCH 21/29] fix format.... --- docs/modules/ROOT/pages/errorCodes.adoc | 506 ++++++++++++------------ 1 file changed, 253 insertions(+), 253 deletions(-) diff --git a/docs/modules/ROOT/pages/errorCodes.adoc b/docs/modules/ROOT/pages/errorCodes.adoc index 7c104556..1083b138 100644 --- a/docs/modules/ROOT/pages/errorCodes.adoc +++ b/docs/modules/ROOT/pages/errorCodes.adoc @@ -18,1269 +18,1269 @@ Test [.contract-item] -==== `[.contract-item-name]#++ERRORACL-001ADMIN_ROLE_ALREADY_SET++ `# +==== `[.contract-item-name]#++ERRORACL-001ADMIN_ROLE_ALREADY_SET++ `### Contract: modules/AccessController.sol Thrown if you try to set the admin role twice. [.contract-item] -==== `[.contract-item-name]#+++ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID+++ `### Contract: modules/AccessController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACL-003:ROLE_EXISTING_AND_VALID+++ `# +==== `[.contract-item-name]#+++ERROR:ACL-003:ROLE_EXISTING_AND_VALID+++ `### Contract: modules/AccessController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID+++ `### Contract: modules/AccessController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACM-001:NOT_INSTANCE_OPERATOR+++ `# +==== `[.contract-item-name]#+++ERROR:ACM-001:NOT_INSTANCE_OPERATOR+++ `### Contract: shared/WithRegistry.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACM-004:NOT_ORACLE_SERVICE+++ `# +==== `[.contract-item-name]#+++ERROR:ACM-004:NOT_ORACLE_SERVICE+++ `### Contract: shared/WithRegistry.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACM-005:NOT_ORACLE_OWNER+++ `# +==== `[.contract-item-name]#+++ERROR:ACM-005:NOT_ORACLE_OWNER+++ `### Contract: shared/WithRegistry.sol Thrown if -==== `[.contract-item-name]#+++ERROR:ACM-006:NOT_PRODUCT_OWNER+++ `# +==== `[.contract-item-name]#+++ERROR:ACM-006:NOT_PRODUCT_OWNER+++ `### Contract: shared/WithRegistry.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED+++ `# +==== `[.contract-item-name]#+++ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BTK-001:NOT_INITIALIZED+++ `# +==== `[.contract-item-name]#+++ERROR:BTK-001:NOT_INITIALIZED+++ `### Contract: tokens/BundleToken.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BTK-002:NOT_BUNDLE_MODULE+++ `# +==== `[.contract-item-name]#+++ERROR:BTK-002:NOT_BUNDLE_MODULE+++ `### Contract: tokens/BundleToken.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED+++ `# +==== `[.contract-item-name]#+++ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED+++ `### Contract: tokens/BundleToken.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS+++ `# +==== `[.contract-item-name]#+++ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS+++ `### Contract: tokens/BundleToken.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BTK-005:TOKEN_ID_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:BTK-005:TOKEN_ID_INVALID+++ `### Contract: tokens/BundleToken.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-001:NOT_RISKPOOL_SERVICE+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-001:NOT_RISKPOOL_SERVICE+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-010:BUNDLE_ALREADY_EXISTS+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-010:BUNDLE_ALREADY_EXISTS+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-012:BUNDLE_CLOSED+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-012:BUNDLE_CLOSED+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-016:BUNDLE_NOT_CLOSED+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-016:BUNDLE_NOT_CLOSED+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-017:BUNDLE_HAS_BALANCE+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-017:BUNDLE_HAS_BALANCE+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-021:BUNDLE_NOT_ACTIVE+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-021:BUNDLE_NOT_ACTIVE+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-022:CAPACITY_TOO_LOW+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-022:CAPACITY_TOO_LOW+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-044:BUNDLE_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-044:BUNDLE_STATE_INVALID+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-045:CAPITAL_TOO_LOW+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-045:CAPITAL_TOO_LOW+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-047:BALANCE_TOO_LOW+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-047:BALANCE_TOO_LOW+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST+++ `### Contract: modules/BundleController.sol Thrown if you ... and bundle doesn't exist -==== `[.contract-item-name]#+++ERROR:BUC-070:ACTIVE_INVALID_TRANSITION+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-070:ACTIVE_INVALID_TRANSITION+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-071:LOCKED_INVALID_TRANSITION+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-071:LOCKED_INVALID_TRANSITION+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-072:CLOSED_INVALID_TRANSITION+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-072:CLOSED_INVALID_TRANSITION+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:BUC-073:BURNED_IS_FINAL_STATE+++ `# +==== `[.contract-item-name]#+++ERROR:BUC-073:BURNED_IS_FINAL_STATE+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-003:COMPONENT_ALREADY_EXISTS+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-003:COMPONENT_ALREADY_EXISTS+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-005:INVALID_COMPONENT_ID+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-005:INVALID_COMPONENT_ID+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-006:COMPONENT_ADDRESS_ZERO+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-006:COMPONENT_ADDRESS_ZERO+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-007:COMPONENT_UNKNOWN+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-007:COMPONENT_UNKNOWN+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-008:INVALID_COMPONENT_ID+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-008:INVALID_COMPONENT_ID+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-011:UNKNOWN_PRODUCT_ID+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-011:UNKNOWN_PRODUCT_ID+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-021:CREATED_INVALID_TRANSITION+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-021:CREATED_INVALID_TRANSITION+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-023:DECLINED_IS_FINAL_STATE+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-023:DECLINED_IS_FINAL_STATE+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-024:ACTIVE_INVALID_TRANSITION+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-024:ACTIVE_INVALID_TRANSITION+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-025:PAUSED_INVALID_TRANSITION+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-025:PAUSED_INVALID_TRANSITION+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CCR-22:PROPOSED_INVALID_TRANSITION+++ `# +==== `[.contract-item-name]#+++ERROR:CCR-22:PROPOSED_INVALID_TRANSITION+++ `### Contract: modules/ComponentController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-001:NOT_OWNER+++ `# +==== `[.contract-item-name]#+++ERROR:COS-001:NOT_OWNER+++ `### Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-002:REQUIRED_ROLE_MISSING+++ `# +==== `[.contract-item-name]#+++ERROR:COS-002:REQUIRED_ROLE_MISSING+++ `### Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-003:COMPONENT_ID_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:COS-003:COMPONENT_ID_INVALID+++ `### Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-004:NOT_OWNER+++ `# +==== `[.contract-item-name]#+++ERROR:COS-004:NOT_OWNER+++ `### Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-005:REQUIRED_ROLE_MISSING+++ `# +==== `[.contract-item-name]#+++ERROR:COS-005:REQUIRED_ROLE_MISSING+++ `### Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-006:IMPLEMENATION_MISSING+++ `# +==== `[.contract-item-name]#+++ERROR:COS-006:IMPLEMENATION_MISSING+++ `### Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:COS-007:IMPLEMENATION_MISSING+++ `# +==== `[.contract-item-name]#+++ERROR:COS-007:IMPLEMENATION_MISSING+++ `### Contract: services/ComponentOwnerService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRC-001:NOT_INSTANCE_OPERATOR+++ `# +==== `[.contract-item-name]#+++ERROR:CRC-001:NOT_INSTANCE_OPERATOR+++ `### Contract: shared/CoreController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRC-001:NOT_ORACLE_SERVICE+++ `# +==== `[.contract-item-name]#+++ERROR:CRC-001:NOT_ORACLE_SERVICE+++ `### Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRC-002:NOT_ON_STORAGE+++ `# +==== `[.contract-item-name]#+++ERROR:CRC-002:NOT_ON_STORAGE+++ `### Contract: shared/CoreController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRC-003:NOT_PRODUCT_SERVICE+++ `# +==== `[.contract-item-name]#+++ERROR:CRC-003:NOT_PRODUCT_SERVICE+++ `### Contract: shared/CoreController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRC-004:CONTRACT_NOT_REGISTERED+++ `# +==== `[.contract-item-name]#+++ERROR:CRC-004:CONTRACT_NOT_REGISTERED+++ `### Contract: shared/CoreController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:CRP-001:NOT_ADMIN+++ `# +==== `[.contract-item-name]#+++ERROR:CRP-001:NOT_ADMIN+++ `### Contract: shared/CoreProxy.sol Thrown if -==== `[.contract-item-name]#+++ERROR:IOS-001:NOT_INSTANCE_OPERATOR+++ `# +==== `[.contract-item-name]#+++ERROR:IOS-001:NOT_INSTANCE_OPERATOR+++ `### Contract: services/InstanceOperatorService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:IOS-010:IMPLEMENATION_MISSING+++ `# +==== `[.contract-item-name]#+++ERROR:IOS-010:IMPLEMENATION_MISSING+++ `### Contract: services/InstanceOperatorService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:IOS-011:IMPLEMENATION_MISSING+++ `# +==== `[.contract-item-name]#+++ERROR:IOS-011:IMPLEMENATION_MISSING+++ `### Contract: services/InstanceOperatorService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:IS-001:IMPLEMENATION_MISSING+++ `# +==== `[.contract-item-name]#+++ERROR:IS-001:IMPLEMENATION_MISSING+++ `### Contract: services/InstanceService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:IS-002:IMPLEMENATION_MISSING+++ `# +==== `[.contract-item-name]#+++ERROR:IS-002:IMPLEMENATION_MISSING+++ `### Contract: services/InstanceService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:LIC-001:COMPONENT_NOT_PRODUCT+++ `# +==== `[.contract-item-name]#+++ERROR:LIC-001:COMPONENT_NOT_PRODUCT+++ `### Contract: modules/LicenseController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PFD-001:POLICY_NOT_ACTIVE+++ `# +==== `[.contract-item-name]#+++ERROR:PFD-001:POLICY_NOT_ACTIVE+++ `### Contract: flows/PolicyDefaultFlow.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PFD-002:POLICY_NOT_EXPIRED+++ `# +==== `[.contract-item-name]#+++ERROR:PFD-002:POLICY_NOT_EXPIRED+++ `### Contract: flows/PolicyDefaultFlow.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PFD-003:POLICY_CLOSED+++ `# +==== `[.contract-item-name]#+++ERROR:PFD-003:POLICY_CLOSED+++ `### Contract: flows/PolicyDefaultFlow.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH+++ `# +==== `[.contract-item-name]#+++ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH+++ `### Contract: flows/PolicyDefaultFlow.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH+++ `# +==== `[.contract-item-name]#+++ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH+++ `### Contract: flows/PolicyDefaultFlow.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-004:METADATA_ALREADY_EXISTS+++ `# +==== `[.contract-item-name]#+++ERROR:POC-004:METADATA_ALREADY_EXISTS+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-010:METADATA_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-010:METADATA_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-011:APPLICATION_ALREADY_EXISTS+++ `# +==== `[.contract-item-name]#+++ERROR:POC-011:APPLICATION_ALREADY_EXISTS+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-012:PREMIUM_AMOUNT_ZERO+++ `# +==== `[.contract-item-name]#+++ERROR:POC-012:PREMIUM_AMOUNT_ZERO+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL+++ `# +==== `[.contract-item-name]#+++ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-014:METADATA_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-014:METADATA_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-015:APPLICATION_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-015:APPLICATION_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-016:APPLICATION_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-016:APPLICATION_STATE_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-017:APPLICATION_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-017:APPLICATION_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-018:APPLICATION_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-018:APPLICATION_STATE_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-019:METADATA_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-019:METADATA_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-020:APPLICATION_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-020:APPLICATION_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-021:APPLICATION_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-021:APPLICATION_STATE_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-022:APPLICATION_ACCESS_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-022:APPLICATION_ACCESS_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-023:POLICY_ALREADY_EXISTS+++ `# +==== `[.contract-item-name]#+++ERROR:POC-023:POLICY_ALREADY_EXISTS+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-024:APPLICATION_ACCESS_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-024:APPLICATION_ACCESS_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-025:APPLICATION_PREMIUM_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-025:APPLICATION_PREMIUM_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-027:POLICY_ACCESS_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-027:POLICY_ACCESS_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-028:POLICY_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-028:POLICY_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-029:APPLICATION_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-029:APPLICATION_STATE_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-030:METADATA_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-030:METADATA_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-031:POLICY_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-031:POLICY_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-032:POLICY_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-032:POLICY_STATE_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS+++ `# +==== `[.contract-item-name]#+++ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-040:POLICY_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-040:POLICY_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-041:POLICY_NOT_ACTIVE+++ `# +==== `[.contract-item-name]#+++ERROR:POC-041:POLICY_NOT_ACTIVE+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT+++ `# +==== `[.contract-item-name]#+++ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-043:CLAIM_ALREADY_EXISTS+++ `# +==== `[.contract-item-name]#+++ERROR:POC-043:CLAIM_ALREADY_EXISTS+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-050:POLICY_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-050:POLICY_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS+++ `# +==== `[.contract-item-name]#+++ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED+++ `# +==== `[.contract-item-name]#+++ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-053:CLAIM_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-053:CLAIM_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-054:CLAIM_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-054:CLAIM_STATE_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-060:POLICY_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-060:POLICY_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS+++ `# +==== `[.contract-item-name]#+++ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-062:CLAIM_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-062:CLAIM_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-063:CLAIM_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-063:CLAIM_STATE_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-070:POLICY_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-070:POLICY_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS+++ `# +==== `[.contract-item-name]#+++ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-072:CLAIM_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-072:CLAIM_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-073:CLAIM_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-073:CLAIM_STATE_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS+++ `# +==== `[.contract-item-name]#+++ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-080:POLICY_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-080:POLICY_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-081:CLAIM_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-081:CLAIM_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-082:CLAIM_NOT_CONFIRMED+++ `# +==== `[.contract-item-name]#+++ERROR:POC-082:CLAIM_NOT_CONFIRMED+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG+++ `# +==== `[.contract-item-name]#+++ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-085:PAYOUT_ALREADY_EXISTS+++ `# +==== `[.contract-item-name]#+++ERROR:POC-085:PAYOUT_ALREADY_EXISTS+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-090:POLICY_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-090:POLICY_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS+++ `# +==== `[.contract-item-name]#+++ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-092:PAYOUT_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-092:PAYOUT_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT+++ `# +==== `[.contract-item-name]#+++ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-100:METADATA_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-100:METADATA_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-101:APPLICATION_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-101:APPLICATION_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-102:POLICY_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-102:POLICY_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-103:CLAIM_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-103:CLAIM_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-104:PAYOUT_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-104:PAYOUT_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-110:POLICY_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POC-110:POLICY_DOES_NOT_EXIST+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POC-111:AMOUNT_TOO_BIG+++ `# +==== `[.contract-item-name]#+++ERROR:POC-111:AMOUNT_TOO_BIG+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-001:INVALID_OWNER+++ `# +==== `[.contract-item-name]#+++ERROR:POL-001:INVALID_OWNER+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-001:NOT_INSTANCE_OPERATOR+++ `# +==== `[.contract-item-name]#+++ERROR:POL-001:NOT_INSTANCE_OPERATOR+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-002:INVALID_PRODUCT+++ `# +==== `[.contract-item-name]#+++ERROR:POL-002:INVALID_PRODUCT+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-002:NOT_RISKPOOL_SERVICE+++ `# +==== `[.contract-item-name]#+++ERROR:POL-002:NOT_RISKPOOL_SERVICE+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-003:PRODUCT_NOT_ACTIVE+++ `# +==== `[.contract-item-name]#+++ERROR:POL-003:PRODUCT_NOT_ACTIVE+++ `### Contract: modules/PolicyController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-003:RISKPOOL_NOT_ACTIVE+++ `# +==== `[.contract-item-name]#+++ERROR:POL-003:RISKPOOL_NOT_ACTIVE+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-004:RISKPOOL_NOT_ACTIVE+++ `# +==== `[.contract-item-name]#+++ERROR:POL-004:RISKPOOL_NOT_ACTIVE+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED+++ `# +==== `[.contract-item-name]#+++ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-006:WALLET_ADDRESS_ZERO+++ `# +==== `[.contract-item-name]#+++ERROR:POL-006:WALLET_ADDRESS_ZERO+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-007:ERC20_ADDRESS_ZERO+++ `# +==== `[.contract-item-name]#+++ERROR:POL-007:ERC20_ADDRESS_ZERO+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-008:COLLATERALIZATION_+++ `# +==== `[.contract-item-name]#+++ERROR:POL-008:COLLATERALIZATION_+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO+++ `# +==== `[.contract-item-name]#+++ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-010:NOT_PRODUCT+++ `# +==== `[.contract-item-name]#+++ERROR:POL-010:NOT_PRODUCT+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-011:NOT_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:POL-011:NOT_RISKPOOL+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-012:RISKPOOL_ALREADY_SET+++ `# +==== `[.contract-item-name]#+++ERROR:POL-012:RISKPOOL_ALREADY_SET+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-020:APPLICATION_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POL-020:APPLICATION_STATE_INVALID+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED+++ `# +==== `[.contract-item-name]#+++ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-025:POLICY_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POL-025:POLICY_STATE_INVALID+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-026:RISKPOOL_ID_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POL-026:RISKPOOL_ID_INVALID+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-027:CAPITAL_TOO_LOW+++ `# +==== `[.contract-item-name]#+++ERROR:POL-027:CAPITAL_TOO_LOW+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW+++ `# +==== `[.contract-item-name]#+++ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-029:BALANCE_TOO_LOW+++ `# +==== `[.contract-item-name]#+++ERROR:POL-029:BALANCE_TOO_LOW+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-030:POLICY_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POL-030:POLICY_STATE_INVALID+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-040:POLICY_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POL-040:POLICY_STATE_INVALID+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-040:RISKPOOL_NOT_REGISTERED+++ `# +==== `[.contract-item-name]#+++ERROR:POL-040:RISKPOOL_NOT_REGISTERED+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-041:BUNDLE_IDX_TOO_LARGE+++ `# +==== `[.contract-item-name]#+++ERROR:POL-041:BUNDLE_IDX_TOO_LARGE+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET+++ `# +==== `[.contract-item-name]#+++ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED+++ `# +==== `[.contract-item-name]#+++ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-044:BUNDLE_ID_NOT_IN_SET+++ `# +==== `[.contract-item-name]#+++ERROR:POL-044:BUNDLE_ID_NOT_IN_SET+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST+++ `# +==== `[.contract-item-name]#+++ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-046:COMPONENT_NOT_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:POL-046:COMPONENT_NOT_RISKPOOL+++ `### Contract: modules/PoolController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:POL-050:POLICY_STATE_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:POL-050:POLICY_STATE_INVALID+++ `### Contract: modules/BundleController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PRS-001:NOT_AUTHORIZED+++ `# +==== `[.contract-item-name]#+++ERROR:PRS-001:NOT_AUTHORIZED+++ `### Contract: services/ProductService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED+++ `# +==== `[.contract-item-name]#+++ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED+++ `### Contract: services/ProductService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-002:REQUEST_ID_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:QUC-002:REQUEST_ID_INVALID+++ `### Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE+++ `# +==== `[.contract-item-name]#+++ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE+++ `### Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT+++ `# +==== `[.contract-item-name]#+++ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT+++ `### Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL+++ `# +==== `[.contract-item-name]#+++ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL+++ `### Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-030:REQUEST_ID_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:QUC-030:REQUEST_ID_INVALID+++ `### Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-040:REQUEST_ID_INVALID+++ `# +==== `[.contract-item-name]#+++ERROR:QUC-040:REQUEST_ID_INVALID+++ `### Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-041:COMPONENT_NOT_ORACLE+++ `# +==== `[.contract-item-name]#+++ERROR:QUC-041:COMPONENT_NOT_ORACLE+++ `### Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:QUC-042:ORACLE_NOT_ACTIVE+++ `# +==== `[.contract-item-name]#+++ERROR:QUC-042:ORACLE_NOT_ACTIVE+++ `### Contract: modules/QueryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-001:EMPTY_RELEASE+++ `# +==== `[.contract-item-name]#+++ERROR:REC-001:EMPTY_RELEASE+++ `### Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-002:NEW_RELEASE_NOT_EMPTY+++ `# +==== `[.contract-item-name]#+++ERROR:REC-002:NEW_RELEASE_NOT_EMPTY+++ `### Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-010:MAX_CONTRACTS_LIMIT+++ `# +==== `[.contract-item-name]#+++ERROR:REC-010:MAX_CONTRACTS_LIMIT+++ `### Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-011:RELEASE_UNKNOWN+++ `# +==== `[.contract-item-name]#+++ERROR:REC-011:RELEASE_UNKNOWN+++ `### Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-012:CONTRACT_NAME_EMPTY+++ `# +==== `[.contract-item-name]#+++ERROR:REC-012:CONTRACT_NAME_EMPTY+++ `### Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-013:CONTRACT_NAME_EXISTS+++ `# +==== `[.contract-item-name]#+++ERROR:REC-013:CONTRACT_NAME_EXISTS+++ `### Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-014:CONTRACT_ADDRESS_ZERO+++ `# +==== `[.contract-item-name]#+++ERROR:REC-014:CONTRACT_ADDRESS_ZERO+++ `### Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-015:CONTRACT_NUMBER_MISMATCH+++ `# +==== `[.contract-item-name]#+++ERROR:REC-015:CONTRACT_NUMBER_MISMATCH+++ `### Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-020:CONTRACT_UNKNOWN+++ `# +==== `[.contract-item-name]#+++ERROR:REC-020:CONTRACT_UNKNOWN+++ `### Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-021:CONTRACT_NUMBER_MISMATCH+++ `# +==== `[.contract-item-name]#+++ERROR:REC-021:CONTRACT_NUMBER_MISMATCH+++ `### Contract: modules/RegistryController.sol Thrown if -==== `[.contract-item-name]#+++ERROR:REC-102:UPGRADE_ONCE_OMLY+++ `# +==== `[.contract-item-name]#+++ERROR:REC-102:UPGRADE_ONCE_OMLY+++ `### Contract: test/TestRegistryControllerUpdated.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-001:SENDER_NOT_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-001:SENDER_NOT_RISKPOOL+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-002:RISKPOOL_NOT_PROPOSED+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-002:RISKPOOL_NOT_PROPOSED+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-003:SENDER_NOT_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-003:SENDER_NOT_RISKPOOL+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-004:RISKPOOL_NOT_ACTIVE+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-004:RISKPOOL_NOT_ACTIVE+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-005:SENDER_NOT_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-005:SENDER_NOT_RISKPOOL+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-007:RISKPOOL_NOT_ACTIVE+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-007:RISKPOOL_NOT_ACTIVE+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-009:RISKPOOL_NOT_ACTIVE+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-009:RISKPOOL_NOT_ACTIVE+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-011:BUNDLE_BURNED+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-011:BUNDLE_BURNED+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:RPS-020:BUNDLE_NOT_CLOSED+++ `# +==== `[.contract-item-name]#+++ERROR:RPS-020:BUNDLE_NOT_CLOSED+++ `### Contract: services/RiskpoolService.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TCP-1:INVALID_POLICY_OR_HOLDER+++ `# +==== `[.contract-item-name]#+++ERROR:TCP-1:INVALID_POLICY_OR_HOLDER+++ `### Contract: test/TestCompromisedProduct.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TI-2:TOKEN_ADDRESS_ZERO+++ `# +==== `[.contract-item-name]#+++ERROR:TI-2:TOKEN_ADDRESS_ZERO+++ `### Contract: test/TestProduct.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-004:TREASURY_SUSPENDED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-004:TREASURY_SUSPENDED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-005:NOT_RISKPOOL_SERVICE+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-005:NOT_RISKPOOL_SERVICE+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-010:TOKEN_ADDRESS_ZERO+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-010:TOKEN_ADDRESS_ZERO+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-011:NOT_PRODUCT+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-011:NOT_PRODUCT+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-015:WALLET_ADDRESS_ZERO+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-015:WALLET_ADDRESS_ZERO+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-016:NOT_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-016:NOT_RISKPOOL+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-017:WALLET_ADDRESS_ZERO+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-017:WALLET_ADDRESS_ZERO+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-022:NOT_PRODUCT+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-022:NOT_PRODUCT+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-023:NOT_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-023:NOT_RISKPOOL+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-024:FEE_SPEC_UNDEFINED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-024:FEE_SPEC_UNDEFINED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-030:AMOUNT_TOO_BIG+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-030:AMOUNT_TOO_BIG+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-031:FEE_TRANSFER_FAILED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-031:FEE_TRANSFER_FAILED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-032:PREMIUM_TRANSFER_FAILED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-032:PREMIUM_TRANSFER_FAILED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-044:PAYOUT_TRANSFER_FAILED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-044:PAYOUT_TRANSFER_FAILED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-050:FEE_SPEC_UNDEFINED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-050:FEE_SPEC_UNDEFINED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-052:BALANCE_TOO_SMALL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-052:BALANCE_TOO_SMALL+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-054:FEE_TRANSFER_FAILED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-054:FEE_TRANSFER_FAILED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-055:CAPITAL_TRANSFER_FAILED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-055:CAPITAL_TRANSFER_FAILED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-091:FEE_TOO_BIG+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-091:FEE_TOO_BIG+++ `### Contract: modules/TreasuryModule.sol Thrown if -==== `[.contract-item-name]#+++ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL+++ `# +==== `[.contract-item-name]#+++ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL+++ `### Contract: modules/TreasuryModule.sol Thrown if From 105fb82aeeecbe31b3a9770608b67908a4599ced Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Fri, 9 Jun 2023 17:29:17 +0000 Subject: [PATCH 22/29] test new format --- docs/modules/ROOT/pages/errorCodes.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/ROOT/pages/errorCodes.adoc b/docs/modules/ROOT/pages/errorCodes.adoc index 1083b138..9172878a 100644 --- a/docs/modules/ROOT/pages/errorCodes.adoc +++ b/docs/modules/ROOT/pages/errorCodes.adoc @@ -18,7 +18,7 @@ Test [.contract-item] -==== `[.contract-item-name]#++ERRORACL-001ADMIN_ROLE_ALREADY_SET++ `### +==== `[.contract-item-name]#++ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET++ `#x#x# Contract: modules/AccessController.sol Thrown if you try to set the admin role twice. From ab8f62d89d879090ae5eb9596ffb0f0973103715 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Mon, 12 Jun 2023 08:33:12 +0200 Subject: [PATCH 23/29] zwischenstand --- contracts-christoph2806/Migrations.sol | 35 + .../examples/AyiiOracle.sol | 214 +++++ .../examples/AyiiProduct.sol | 829 ++++++++++++++++++ .../examples/AyiiRiskpool.sol | 87 ++ .../examples/mock/ChainlinkOperator.sol | 379 ++++++++ .../examples/mock/ChainlinkToken.sol | 63 ++ contracts-christoph2806/examples/strings.sol | 137 +++ .../flows/PolicyDefaultFlow.sol | 499 +++++++++++ contracts-christoph2806/flows/README.adoc | 8 + .../modules/AccessController.sol | 192 ++++ .../modules/BundleController.sol | 544 ++++++++++++ .../modules/ComponentController.sol | 501 +++++++++++ .../modules/LicenseController.sol | 64 ++ .../modules/PolicyController.sol | 814 +++++++++++++++++ .../modules/PoolController.sol | 529 +++++++++++ .../modules/QueryModule.sol | 218 +++++ contracts-christoph2806/modules/README.adoc | 25 + .../modules/RegistryController.sol | 355 ++++++++ .../modules/TreasuryModule.sol | 728 +++++++++++++++ .../services/ComponentOwnerService.sol | 113 +++ .../services/InstanceOperatorService.sol | 393 +++++++++ .../services/InstanceService.sol | 597 +++++++++++++ .../services/OracleService.sol | 32 + .../services/ProductService.sol | 83 ++ contracts-christoph2806/services/README.adoc | 18 + .../services/RiskpoolService.sol | 340 +++++++ .../shared/CoreController.sol | 81 ++ contracts-christoph2806/shared/CoreProxy.sol | 59 ++ contracts-christoph2806/shared/README.adoc | 14 + .../shared/TransferHelper.sol | 76 ++ .../shared/WithRegistry.sol | 93 ++ contracts-christoph2806/test/README.adoc | 24 + contracts-christoph2806/test/TestCoin.sol | 44 + .../TestCoinAlternativeImplementation.sol | 54 ++ .../test/TestCompromisedProduct.sol | 327 +++++++ contracts-christoph2806/test/TestOracle.sol | 86 ++ contracts-christoph2806/test/TestProduct.sol | 535 +++++++++++ .../TestRegistryCompromisedController.sol | 38 + .../test/TestRegistryControllerUpdated.sol | 33 + contracts-christoph2806/test/TestRiskpool.sol | 48 + .../test/TestTransferFrom.sol | 34 + .../tokens/BundleToken.sol | 126 +++ contracts-christoph2806/tokens/README.adoc | 10 + .../tokens/RiskpoolToken.sol | 20 + 44 files changed, 9499 insertions(+) create mode 100644 contracts-christoph2806/Migrations.sol create mode 100644 contracts-christoph2806/examples/AyiiOracle.sol create mode 100644 contracts-christoph2806/examples/AyiiProduct.sol create mode 100644 contracts-christoph2806/examples/AyiiRiskpool.sol create mode 100644 contracts-christoph2806/examples/mock/ChainlinkOperator.sol create mode 100644 contracts-christoph2806/examples/mock/ChainlinkToken.sol create mode 100644 contracts-christoph2806/examples/strings.sol create mode 100644 contracts-christoph2806/flows/PolicyDefaultFlow.sol create mode 100644 contracts-christoph2806/flows/README.adoc create mode 100644 contracts-christoph2806/modules/AccessController.sol create mode 100644 contracts-christoph2806/modules/BundleController.sol create mode 100644 contracts-christoph2806/modules/ComponentController.sol create mode 100644 contracts-christoph2806/modules/LicenseController.sol create mode 100644 contracts-christoph2806/modules/PolicyController.sol create mode 100644 contracts-christoph2806/modules/PoolController.sol create mode 100644 contracts-christoph2806/modules/QueryModule.sol create mode 100644 contracts-christoph2806/modules/README.adoc create mode 100644 contracts-christoph2806/modules/RegistryController.sol create mode 100644 contracts-christoph2806/modules/TreasuryModule.sol create mode 100644 contracts-christoph2806/services/ComponentOwnerService.sol create mode 100644 contracts-christoph2806/services/InstanceOperatorService.sol create mode 100644 contracts-christoph2806/services/InstanceService.sol create mode 100644 contracts-christoph2806/services/OracleService.sol create mode 100644 contracts-christoph2806/services/ProductService.sol create mode 100644 contracts-christoph2806/services/README.adoc create mode 100644 contracts-christoph2806/services/RiskpoolService.sol create mode 100644 contracts-christoph2806/shared/CoreController.sol create mode 100644 contracts-christoph2806/shared/CoreProxy.sol create mode 100644 contracts-christoph2806/shared/README.adoc create mode 100644 contracts-christoph2806/shared/TransferHelper.sol create mode 100644 contracts-christoph2806/shared/WithRegistry.sol create mode 100644 contracts-christoph2806/test/README.adoc create mode 100644 contracts-christoph2806/test/TestCoin.sol create mode 100644 contracts-christoph2806/test/TestCoinAlternativeImplementation.sol create mode 100644 contracts-christoph2806/test/TestCompromisedProduct.sol create mode 100644 contracts-christoph2806/test/TestOracle.sol create mode 100644 contracts-christoph2806/test/TestProduct.sol create mode 100644 contracts-christoph2806/test/TestRegistryCompromisedController.sol create mode 100644 contracts-christoph2806/test/TestRegistryControllerUpdated.sol create mode 100644 contracts-christoph2806/test/TestRiskpool.sol create mode 100644 contracts-christoph2806/test/TestTransferFrom.sol create mode 100644 contracts-christoph2806/tokens/BundleToken.sol create mode 100644 contracts-christoph2806/tokens/README.adoc create mode 100644 contracts-christoph2806/tokens/RiskpoolToken.sol diff --git a/contracts-christoph2806/Migrations.sol b/contracts-christoph2806/Migrations.sol new file mode 100644 index 00000000..e57c581e --- /dev/null +++ b/contracts-christoph2806/Migrations.sol @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +contract Migrations { + address public owner; + uint256 public last_completed_migration; // solhint-disable-line + + /** + * @dev Constructor function that sets the contract owner to the address of the sender. + */ + constructor() { + owner = msg.sender; + } + + modifier restricted() { + if (msg.sender == owner) _; + } + + /** + * @dev Sets the value of the last completed migration to the given value. + * @param _completed The new value for the last completed migration. + */ + function setCompleted(uint256 _completed) public restricted { + last_completed_migration = _completed; + } + + /** + * @dev Upgrades the Migrations contract to a new address. + * @param _newAddress The address of the new Migrations contract. + */ + function upgrade(address _newAddress) public restricted { + Migrations upgraded = Migrations(_newAddress); + upgraded.setCompleted(last_completed_migration); + } +} diff --git a/contracts-christoph2806/examples/AyiiOracle.sol b/contracts-christoph2806/examples/AyiiOracle.sol new file mode 100644 index 00000000..8b33bd12 --- /dev/null +++ b/contracts-christoph2806/examples/AyiiOracle.sol @@ -0,0 +1,214 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.2; + +import "./strings.sol"; + +import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol"; +import "@etherisc/gif-interface/contracts/components/Oracle.sol"; + +contract AyiiOracle is + Oracle, ChainlinkClient +{ + using strings for bytes32; + using Chainlink for Chainlink.Request; + + mapping(bytes32 /* Chainlink request ID */ => uint256 /* GIF request ID */) public gifRequests; + bytes32 public jobId; + uint256 public payment; + + event LogAyiiRequest(uint256 requestId, bytes32 chainlinkRequestId); + + event LogAyiiFulfill( + uint256 requestId, + bytes32 chainlinkRequestId, + bytes32 projectId, + bytes32 uaiId, + bytes32 cropId, + uint256 aaay + ); + + /** + * @dev Constructor function for the ChainlinkOracle contract. + * @param _name The name of the oracle contract. + * @param _registry The address of the oracle registry contract. + * @param _chainLinkToken The address of the Chainlink token contract. + * @param _chainLinkOperator The address of the Chainlink oracle operator. + * @param _jobId The ID of the Chainlink job to be used. + * @param _payment The payment amount to be sent to the Chainlink oracle operator. + */ + constructor( + bytes32 _name, + address _registry, + address _chainLinkToken, + address _chainLinkOperator, + bytes32 _jobId, + uint256 _payment + ) + Oracle(_name, _registry) + { + updateRequestDetails( + _chainLinkToken, + _chainLinkOperator, + _jobId, + _payment); + } + + /** + * @dev Update request details for Chainlink oracle job. + * @param _chainLinkToken The address of the Chainlink token contract. + * @param _chainLinkOperator The address of the Chainlink oracle operator. + * @param _jobId The job ID for the Chainlink oracle job. + * @param _payment The payment amount for the Chainlink oracle job. + */ + function updateRequestDetails( + address _chainLinkToken, + address _chainLinkOperator, + bytes32 _jobId, + uint256 _payment + ) + public + onlyOwner + { + if (_chainLinkToken != address(0)) { setChainlinkToken(_chainLinkToken); } + if (_chainLinkOperator != address(0)) { setChainlinkOracle(_chainLinkOperator); } + + jobId = _jobId; + payment = _payment; + } + + /** + * @dev Sends a Chainlink request to retrieve data for a specific GIF request. + * @param gifRequestId The ID of the GIF request. + * @param input The encoded input data containing the project ID, UAI ID, and crop ID. + * The input must be in the following format: abi.encode([bytes32 projectId, bytes32 uaiId, bytes32 cropId]). + * @notice This function emits 1 events: + * - LogAyiiRequest + */ + function request(uint256 gifRequestId, bytes calldata input) + external override + onlyQuery + { + Chainlink.Request memory request_ = buildChainlinkRequest( + jobId, + address(this), + this.fulfill.selector + ); + + ( + bytes32 projectId, + bytes32 uaiId, + bytes32 cropId + ) = abi.decode(input, (bytes32, bytes32, bytes32)); + + request_.add("projectId", projectId.toB32String()); + request_.add("uaiId", uaiId.toB32String()); + request_.add("cropId", cropId.toB32String()); + + bytes32 chainlinkRequestId = sendChainlinkRequest(request_, payment); + + gifRequests[chainlinkRequestId] = gifRequestId; + emit LogAyiiRequest(gifRequestId, chainlinkRequestId); + } + + /** + * @dev This function is used to fulfill a Chainlink request for the given parameters. + * @param chainlinkRequestId The ID of the Chainlink request to fulfill. + * @param projectId The ID of the project. + * @param uaiId The ID of the UAI. + * @param cropId The ID of the crop. + * @param aaay The amount of AAAY. + * @notice This function emits 1 events: + * - LogAyiiFulfill + */ + function fulfill( + bytes32 chainlinkRequestId, + bytes32 projectId, + bytes32 uaiId, + bytes32 cropId, + uint256 aaay + ) + public recordChainlinkFulfillment(chainlinkRequestId) + { + uint256 gifRequest = gifRequests[chainlinkRequestId]; + bytes memory data = abi.encode(projectId, uaiId, cropId, aaay); + _respond(gifRequest, data); + + delete gifRequests[chainlinkRequestId]; + emit LogAyiiFulfill(gifRequest, chainlinkRequestId, projectId, uaiId, cropId, aaay); + } + + /** + * @dev Cancels a Chainlink request. + * @param requestId The ID of the request to cancel. + */ + function cancel(uint256 requestId) + external override + onlyOwner + { + // TODO mid/low priority + // cancelChainlinkRequest(_requestId, _payment, _callbackFunctionId, _expiration); + } + + // only used for testing of chainlink operator + /** + * @dev Encodes the parameters required for a Chainlink request fulfillment. + * @param chainlinkRequestId The ID of the Chainlink request. + * @param projectId The ID of the project. + * @param uaiId The ID of the UAI. + * @param cropId The ID of the crop. + * @param aaay The value of aaay. + * @return parameterData The encoded parameter data. + */ + function encodeFulfillParameters( + bytes32 chainlinkRequestId, + bytes32 projectId, + bytes32 uaiId, + bytes32 cropId, + uint256 aaay + ) + external + pure + returns(bytes memory parameterData) + { + return abi.encode( + chainlinkRequestId, + projectId, + uaiId, + cropId, + aaay + ); + } + + /** + * @dev Returns the Chainlink Job ID associated with this contract. + * @return chainlinkJobId The Chainlink Job ID as a bytes32 variable. + */ + function getChainlinkJobId() external view returns(bytes32 chainlinkJobId) { + return jobId; + } + + /** + * @dev Returns the payment amount for a Chainlink oracle request. + * @return paymentAmount The payment amount in uint256. + */ + function getChainlinkPayment() external view returns(uint256 paymentAmount) { + return payment; + } + + /** + * @dev Returns the address of the Chainlink token. + * @return linkTokenAddress The address of the Chainlink token. + */ + function getChainlinkToken() external view returns(address linkTokenAddress) { + return chainlinkTokenAddress(); + } + + /** + * @dev Returns the address of the Chainlink operator. + * @return operator The address of the Chainlink operator. + */ + function getChainlinkOperator() external view returns(address operator) { + return chainlinkOracleAddress(); + } +} + diff --git a/contracts-christoph2806/examples/AyiiProduct.sol b/contracts-christoph2806/examples/AyiiProduct.sol new file mode 100644 index 00000000..8f3925fd --- /dev/null +++ b/contracts-christoph2806/examples/AyiiProduct.sol @@ -0,0 +1,829 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.2; + +import "../shared/TransferHelper.sol"; + +import "@openzeppelin/contracts/access/AccessControl.sol"; +import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; + +import "@etherisc/gif-interface/contracts/components/Product.sol"; +import "../modules/PolicyController.sol"; + +import "../modules/AccessController.sol"; + +contract AyiiProduct is + Product, + AccessControl, + Initializable +{ + using EnumerableSet for EnumerableSet.Bytes32Set; + + bytes32 public constant NAME = "AreaYieldIndexProduct"; + bytes32 public constant VERSION = "0.1"; + bytes32 public constant POLICY_FLOW = "PolicyDefaultFlow"; + + bytes32 public constant INSURER_ROLE = keccak256("INSURER"); + + uint256 public constant PERCENTAGE_MULTIPLIER = 2**24; + + uint256 public constant AAAY_MIN = 0; + uint256 public constant AAAY_MAX = 15; + + uint256 public constant RISK_APH_MAX = 15 * PERCENTAGE_MULTIPLIER; + uint256 public constant RISK_EXIT_MAX = PERCENTAGE_MULTIPLIER / 5; + uint256 public constant RISK_TSI_AT_EXIT_MIN = PERCENTAGE_MULTIPLIER / 2; + + // group policy data structure + struct Risk { + bytes32 id; // hash over projectId, uaiId, cropId + bytes32 projectId; // assumption: this makes risk unique over aggregarors/customers/seasons + bytes32 uaiId; // region id + bytes32 cropId; // crop id + uint256 trigger; // at and above this harvest ratio no payout is made + uint256 exit; // at and below this harvest ration the max payout is made + uint256 tsi; // total sum insured at exit: max . payout percentage at exit + uint256 aph; // average historical area yield for this crop and region + uint256 requestId; + bool requestTriggered; + uint256 responseAt; + uint256 aaay; // average area yield for current season for this crop and region + uint256 payoutPercentage; // payout percentage for this year for this crop and region + uint256 createdAt; + uint256 updatedAt; + } + + uint256 private _oracleId; + IERC20 private _token; + + bytes32 [] private _riskIds; + mapping(bytes32 /* riskId */ => Risk) private _risks; + mapping(bytes32 /* riskId */ => EnumerableSet.Bytes32Set /* processIds */) private _policies; + bytes32 [] private _applications; // useful for debugging, might need to get rid of this + + event LogAyiiPolicyApplicationCreated(bytes32 policyId, address policyHolder, uint256 premiumAmount, uint256 sumInsuredAmount); + event LogAyiiPolicyCreated(bytes32 policyId, address policyHolder, uint256 premiumAmount, uint256 sumInsuredAmount); + event LogAyiiRiskDataCreated(bytes32 riskId, bytes32 productId, bytes32 uaiId, bytes32 cropId); + event LogAyiiRiskDataBeforeAdjustment(bytes32 riskId, uint256 trigger, uint256 exit, uint256 tsi, uint aph); + event LogAyiiRiskDataAfterAdjustment(bytes32 riskId, uint256 trigger, uint256 exit, uint256 tsi, uint aph); + event LogAyiiRiskDataRequested(uint256 requestId, bytes32 riskId, bytes32 projectId, bytes32 uaiId, bytes32 cropId); + event LogAyiiRiskDataReceived(uint256 requestId, bytes32 riskId, uint256 aaay); + event LogAyiiRiskDataRequestCancelled(bytes32 processId, uint256 requestId); + event LogAyiiRiskProcessed(bytes32 riskId, uint256 policies); + event LogAyiiPolicyProcessed(bytes32 policyId); + event LogAyiiClaimCreated(bytes32 policyId, uint256 claimId, uint256 payoutAmount); + event LogAyiiPayoutCreated(bytes32 policyId, uint256 payoutAmount); + + event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); + event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); + event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); + + /** + * @dev Constructor function for creating a new instance of a Product contract. + * @param productName Name of the product. + * @param registry Address of the registry contract. + * @param token Address of the token contract. + * @param oracleId ID of the oracle. + * @param riskpoolId ID of the risk pool. + * @param insurer Address of the insurer. + */ + constructor( + bytes32 productName, + address registry, + address token, + uint256 oracleId, + uint256 riskpoolId, + address insurer + ) + Product(productName, token, POLICY_FLOW, riskpoolId, registry) + { + _token = IERC20(token); + _oracleId = oracleId; + + _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); + _setupRole(INSURER_ROLE, insurer); + } + + /** + * @dev Creates a new risk for a project, UAI and crop with the specified parameters. + * @param projectId The ID of the project associated with the risk. + * @param uaiId The ID of the UAI associated with the risk. + * @param cropId The ID of the crop associated with the risk. + * @param trigger The trigger value for the risk. + * @param exit The exit value for the risk. + * @param tsi The total sum insured for the risk. + * @param aph The area per hectare for the crop. + * @return riskId The ID of the newly created risk. + * @notice This function emits 1 events: + * - LogAyiiRiskDataCreated + */ + function createRisk( + bytes32 projectId, + bytes32 uaiId, + bytes32 cropId, + uint256 trigger, + uint256 exit, + uint256 tsi, + uint256 aph + ) + external + onlyRole(INSURER_ROLE) + returns(bytes32 riskId) + { + _validateRiskParameters(trigger, exit, tsi, aph); + + riskId = getRiskId(projectId, uaiId, cropId); + _riskIds.push(riskId); + + Risk storage risk = _risks[riskId]; + require(risk.createdAt == 0, "ERROR:AYI-001:RISK_ALREADY_EXISTS"); + + risk.id = riskId; + risk.projectId = projectId; + risk.uaiId = uaiId; + risk.cropId = cropId; + risk.trigger = trigger; + risk.exit = exit; + risk.tsi = tsi; + risk.aph = aph; + risk.createdAt = block.timestamp; // solhint-disable-line + risk.updatedAt = block.timestamp; // solhint-disable-line + + emit LogAyiiRiskDataCreated( + risk.id, + risk.projectId, + risk.uaiId, + risk.cropId); + } + + /** + * @dev Allows the insurer to adjust the parameters of an existing risk. + * @param riskId The ID of the risk to be adjusted. + * @param trigger The new trigger value for the risk. + * @param exit The new exit value for the risk. + * @param tsi The new total sum insured value for the risk. + * @param aph The new annual premium value for the risk. + * + * Emits a LogAyiiRiskDataBeforeAdjustment event with the risk's data before adjustment. + * Emits a LogAyiiRiskDataAfterAdjustment event with the risk's data after adjustment. + * + * Requirements: + * - The caller must have the INSURER_ROLE. + * - The risk must exist. + * - The risk must have no policies associated with it. + * @notice This function emits 2 events: + * - LogAyiiRiskDataAfterAdjustment + * - LogAyiiRiskDataBeforeAdjustment + */ + function adjustRisk( + bytes32 riskId, + uint256 trigger, + uint256 exit, + uint256 tsi, + uint256 aph + ) + external + onlyRole(INSURER_ROLE) + { + _validateRiskParameters(trigger, exit, tsi, aph); + + Risk storage risk = _risks[riskId]; + require(risk.createdAt > 0, "ERROR:AYI-002:RISK_UNKNOWN"); + require(EnumerableSet.length(_policies[riskId]) == 0, "ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE"); + + emit LogAyiiRiskDataBeforeAdjustment( + risk.id, + risk.trigger, + risk.exit, + risk.tsi, + risk.aph); + + risk.trigger = trigger; + risk.exit = exit; + risk.tsi = tsi; + risk.aph = aph; + + emit LogAyiiRiskDataAfterAdjustment( + risk.id, + risk.trigger, + risk.exit, + risk.tsi, + risk.aph); + } + + /** + * @dev Calculates the unique risk ID for a project, UAI and crop. + * @param projectId The bytes32 ID of the project. + * @param uaiId The bytes32 ID of the UAI. + * @param cropId The bytes32 ID of the crop. + * @return riskId The bytes32 ID of the unique risk. + */ + function getRiskId( + bytes32 projectId, + bytes32 uaiId, + bytes32 cropId + ) + public + pure + returns(bytes32 riskId) + { + riskId = keccak256(abi.encode(projectId, uaiId, cropId)); + } + + + /** + * @dev Creates a new policy application for a given policy holder and risk. + * @param policyHolder The address of the policy holder. + * @param premium The amount of premium to be paid for the policy. + * @param sumInsured The amount of coverage provided by the policy. + * @param riskId The unique identifier of the risk associated with the policy. + * @return processId The unique identifier of the newly created policy application. + * @notice This function emits 2 events: + * - LogAyiiPolicyApplicationCreated + * - LogAyiiPolicyCreated + */ + function applyForPolicy( + address policyHolder, + uint256 premium, + uint256 sumInsured, + bytes32 riskId + ) + external + onlyRole(INSURER_ROLE) + returns(bytes32 processId) + { + Risk storage risk = _risks[riskId]; + require(risk.createdAt > 0, "ERROR:AYI-004:RISK_UNDEFINED"); + require(policyHolder != address(0), "ERROR:AYI-005:POLICY_HOLDER_ZERO"); + + bytes memory metaData = ""; + bytes memory applicationData = abi.encode(riskId); + + processId = _newApplication( + policyHolder, + premium, + sumInsured, + metaData, + applicationData); + + _applications.push(processId); + + emit LogAyiiPolicyApplicationCreated( + processId, + policyHolder, + premium, + sumInsured); + + bool success = _underwrite(processId); + + if (success) { + EnumerableSet.add(_policies[riskId], processId); + + emit LogAyiiPolicyCreated( + processId, + policyHolder, + premium, + sumInsured); + } + } + + /** + * @dev Allows the INSURER_ROLE to underwrite an insurance application for a given processId. + * @param processId The unique identifier of the insurance application. + * @return success A boolean indicating whether the underwriting process was successful or not. + * + * Emits a LogAyiiPolicyCreated event if the underwriting process is successful, containing the processId, the owner of the application, the premium amount and the sum insured amount. + * @notice This function emits 1 events: + * - LogAyiiPolicyCreated + */ + function underwrite( + bytes32 processId + ) + external + onlyRole(INSURER_ROLE) + returns(bool success) + { + // ensure the application for processId exists + _getApplication(processId); + success = _underwrite(processId); + + if (success) { + IPolicy.Application memory application = _getApplication(processId); + IPolicy.Metadata memory metadata = _getMetadata(processId); + emit LogAyiiPolicyCreated( + processId, + metadata.owner, + application.premiumAmount, + application.sumInsuredAmount); + } + } + + /** + * @dev Collects the premium for a specific policy. + * @param policyId The ID of the policy for which to collect the premium. + * @return success A boolean indicating whether the premium was collected successfully. + * @return fee The fee collected by the insurer. + * @return netPremium The net premium collected by the insurer after deducting the fee. + */ + function collectPremium(bytes32 policyId) + external + onlyRole(INSURER_ROLE) + returns(bool success, uint256 fee, uint256 netPremium) + { + (success, fee, netPremium) = _collectPremium(policyId); + } + + /* premium collection always moves funds from the customers wallet to the riskpool wallet. + * to stick to this principle: this method implements a two part transferFrom. + * the 1st transfer moves the specified amount from the 'from' sender address to the customer + * the 2nd transfer transfers the amount from the customer to the riskpool wallet (and some + * fees to the instance wallet) + */ + /** + * @dev Collects premium from a policyholder for a specific policy. + * @param policyId The ID of the policy for which premium is being collected. + * @param from The address of the policyholder from whom the premium is being collected. + * @param amount The amount of premium being collected. + * @return success A boolean indicating whether the premium collection was successful or not. + * @return fee The fee charged for the premium collection. + * @return netPremium The net premium collected after deducting the fee. + */ + function collectPremium(bytes32 policyId, address from, uint256 amount) + external + onlyRole(INSURER_ROLE) + returns(bool success, uint256 fee, uint256 netPremium) + { + IPolicy.Metadata memory metadata = _getMetadata(policyId); + + if (from != metadata.owner) { + bool transferSuccessful = TransferHelper.unifiedTransferFrom(_token, from, metadata.owner, amount); + + if (!transferSuccessful) { + return (transferSuccessful, 0, amount); + } + } + + (success, fee, netPremium) = _collectPremium(policyId, amount); + } + + /** + * @dev Adjusts the premium and sum insured amounts for a given insurance process. + * @param processId The unique identifier of the insurance process. + * @param expectedPremiumAmount The expected premium amount for the insurance process. + * @param sumInsuredAmount The sum insured amount for the insurance process. + */ + function adjustPremiumSumInsured( + bytes32 processId, + uint256 expectedPremiumAmount, + uint256 sumInsuredAmount + ) + external + onlyRole(INSURER_ROLE) + { + _adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount); + } + + /** + * @dev Triggers an oracle request for a specific process ID. + * @param processId The ID of the process to trigger the oracle request for. + * @return requestId The ID of the oracle request triggered. + * + * Emits a LogAyiiRiskDataRequested event with the requestId, risk ID, project ID, UAI ID and crop ID. + * + * Requirements: + * - Caller must have the INSURER_ROLE. + * - The risk must be defined. + * - The oracle must not have already responded to the request. + * @notice This function emits 1 events: + * - LogAyiiRiskDataRequested + */ + function triggerOracle(bytes32 processId) + external + onlyRole(INSURER_ROLE) + returns(uint256 requestId) + { + Risk storage risk = _risks[_getRiskId(processId)]; + require(risk.createdAt > 0, "ERROR:AYI-010:RISK_UNDEFINED"); + require(risk.responseAt == 0, "ERROR:AYI-011:ORACLE_ALREADY_RESPONDED"); + + bytes memory queryData = abi.encode( + risk.projectId, + risk.uaiId, + risk.cropId + ); + + requestId = _request( + processId, + queryData, + "oracleCallback", + _oracleId + ); + + risk.requestId = requestId; + risk.requestTriggered = true; + risk.updatedAt = block.timestamp; // solhint-disable-line + + emit LogAyiiRiskDataRequested( + risk.requestId, + risk.id, + risk.projectId, + risk.uaiId, + risk.cropId); + } + + /** + * @dev Allows the insurer to cancel a specific oracle request for a given process ID. + * @param processId The unique process ID associated with the risk. + * + * Emits a LogAyiiRiskDataRequestCancelled event indicating the cancellation of the oracle request. + * + * Requirements: + * - The caller must have the INSURER_ROLE. + * - The risk must exist in the _risks mapping. + * - The oracle request must have been triggered for the risk. + * - There must not be an existing callback for the oracle request. + * @notice This function emits 1 events: + * - LogAyiiRiskDataRequestCancelled + */ + function cancelOracleRequest(bytes32 processId) + external + onlyRole(INSURER_ROLE) + { + Risk storage risk = _risks[_getRiskId(processId)]; + require(risk.createdAt > 0, "ERROR:AYI-012:RISK_UNDEFINED"); + require(risk.requestTriggered, "ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND"); + require(risk.responseAt == 0, "ERROR:AYI-014:EXISTING_CALLBACK"); + + _cancelRequest(risk.requestId); + + // reset request id to allow to trigger again + risk.requestTriggered = false; + risk.updatedAt = block.timestamp; // solhint-disable-line + + emit LogAyiiRiskDataRequestCancelled(processId, risk.requestId); + } + + /** + * @dev Callback function for the oracle to update the risk data for a project. + * @param requestId The ID of the oracle request. + * @param processId The ID of the oracle process. + * @param responseData The response data from the oracle, which is expected to be an ABI-encoded tuple containing the following fields: + * - projectId: The ID of the project. + * - uaiId: The ID of the UAI. + * - cropId: The ID of the crop. + * - aaay: The AAAY value for the project. + * @notice This function emits 1 events: + * - LogAyiiRiskDataReceived + */ + function oracleCallback( + uint256 requestId, + bytes32 processId, + bytes calldata responseData + ) + external + onlyOracle + { + ( + bytes32 projectId, + bytes32 uaiId, + bytes32 cropId, + uint256 aaay + ) = abi.decode(responseData, (bytes32, bytes32, bytes32, uint256)); + + bytes32 riskId = _getRiskId(processId); + require(riskId == getRiskId(projectId, uaiId, cropId), "ERROR:AYI-020:RISK_ID_MISMATCH"); + + Risk storage risk = _risks[riskId]; + require(risk.createdAt > 0, "ERROR:AYI-021:RISK_UNDEFINED"); + require(risk.requestId == requestId, "ERROR:AYI-022:REQUEST_ID_MISMATCH"); + require(risk.responseAt == 0, "ERROR:AYI-023:EXISTING_CALLBACK"); + + require(aaay >= (AAAY_MIN * PERCENTAGE_MULTIPLIER) + && aaay < (AAAY_MAX * PERCENTAGE_MULTIPLIER), + "ERROR:AYI-024:AAAY_INVALID"); + + // update risk using aaay info + risk.aaay = aaay; + risk.payoutPercentage = calculatePayoutPercentage( + risk.tsi, + risk.trigger, + risk.exit, + risk.aph, + risk.aaay + ); + + risk.responseAt = block.timestamp; // solhint-disable-line + risk.updatedAt = block.timestamp; // solhint-disable-line + + emit LogAyiiRiskDataReceived( + requestId, + riskId, + aaay); + } + + /** + * @dev Process a batch of policies for a given risk. + * @param riskId ID of the risk to process policies for. + * @param batchSize Number of policies to process in a single batch. + * @return processedPolicies An array of policy IDs that were processed. + * Emits a LogAyiiRiskProcessed event with the processed batch size. + * Requirements: + * - Caller must have the INSURER_ROLE. + * - The risk must have a response from the oracle. + * - The policies set for the given risk must not be empty. + * - If batchSize is 0, processes all policies in a single batch. + * - If batchSize is greater than the number of policies, processes all policies in a single batch. + * - If batchSize is less than the number of policies, processes batchSize policies in a single batch. + * @notice This function emits 2 events: + * - LogAyiiRiskProcessed + * - LogAyiiRiskProcessed + */ + function processPoliciesForRisk(bytes32 riskId, uint256 batchSize) + external + onlyRole(INSURER_ROLE) + returns(bytes32 [] memory processedPolicies) + { + Risk memory risk = _risks[riskId]; + require(risk.responseAt > 0, "ERROR:AYI-030:ORACLE_RESPONSE_MISSING"); + + uint256 elements = EnumerableSet.length(_policies[riskId]); + if (elements == 0) { + emit LogAyiiRiskProcessed(riskId, 0); + return new bytes32[](0); + } + + if (batchSize == 0) { batchSize = elements; } + else { batchSize = min(batchSize, elements); } + + processedPolicies = new bytes32[](batchSize); + uint256 elementIdx = elements - 1; + + for (uint256 i = 0; i < batchSize; i++) { + // grab and process the last policy + bytes32 policyId = EnumerableSet.at(_policies[riskId], elementIdx - i); + processPolicy(policyId); + processedPolicies[i] = policyId; + } + + emit LogAyiiRiskProcessed(riskId, batchSize); + } + + /** + * @dev Processes a policy by calculating the claim amount, creating a new claim, and emitting events for the claim and payout. + * @param policyId The ID of the policy to be processed. + * @notice This function emits 3 events: + * - LogAyiiPayoutCreated + * - LogAyiiClaimCreated + * - LogAyiiPolicyProcessed + */ + function processPolicy(bytes32 policyId) + public + onlyRole(INSURER_ROLE) + { + IPolicy.Application memory application = _getApplication(policyId); + bytes32 riskId = abi.decode(application.data, (bytes32)); + Risk memory risk = _risks[riskId]; + + require(risk.id == riskId, "ERROR:AYI-031:RISK_ID_INVALID"); + require(risk.responseAt > 0, "ERROR:AYI-032:ORACLE_RESPONSE_MISSING"); + require(EnumerableSet.contains(_policies[riskId], policyId), "ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN"); + + EnumerableSet.remove(_policies[riskId], policyId); + + + uint256 claimAmount = calculatePayout( + risk.payoutPercentage, + application.sumInsuredAmount); + + uint256 claimId = _newClaim(policyId, claimAmount, ""); + emit LogAyiiClaimCreated(policyId, claimId, claimAmount); + + if (claimAmount > 0) { + uint256 payoutAmount = claimAmount; + _confirmClaim(policyId, claimId, payoutAmount); + + uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, ""); + _processPayout(policyId, payoutId); + + emit LogAyiiPayoutCreated(policyId, payoutAmount); + } + else { + _declineClaim(policyId, claimId); + _closeClaim(policyId, claimId); + } + + _expire(policyId); + _close(policyId); + + emit LogAyiiPolicyProcessed(policyId); + } + + /** + * @dev Calculates the payout amount based on the payout percentage and sum insured amount. + * @param payoutPercentage The percentage of the sum insured amount that will be paid out. + * @param sumInsuredAmount The total amount that is insured. + * @return payoutAmount The calculated payout amount. + */ + function calculatePayout(uint256 payoutPercentage, uint256 sumInsuredAmount) + public + pure + returns(uint256 payoutAmount) + { + payoutAmount = payoutPercentage * sumInsuredAmount / PERCENTAGE_MULTIPLIER; + } + + /** + * @dev Calculates the payout percentage based on the given parameters. + * @param tsi The maximum payout percentage. + * @param trigger The harvest ratio at and above which no payout is made. + * @param exit The harvest ratio at and below which the maximum payout is made. + * @param aph The average historical yield. + * @param aaay This season's yield. + * @return payoutPercentage The calculated payout percentage. + */ + function calculatePayoutPercentage( + uint256 tsi, // max payout percentage + uint256 trigger,// at and above this harvest ratio no payout is made + uint256 exit, // at and below this harvest ration the max payout is made + uint256 aph, // average historical yield + uint256 aaay // this season's yield + ) + public + pure + returns(uint256 payoutPercentage) + { + // this year's harvest at or above threshold for any payouts + if (aaay * PERCENTAGE_MULTIPLIER >= aph * trigger) { + return 0; + } + + // this year's harvest at or below threshold for maximal payout + if (aaay * PERCENTAGE_MULTIPLIER <= aph * exit) { + return tsi; + } + + // calculated payout between exit and trigger + uint256 harvestRatio = PERCENTAGE_MULTIPLIER * aaay / aph; + payoutPercentage = tsi * (trigger - harvestRatio) / (trigger - exit); + } + + /** + * @dev Returns the percentage multiplier used in calculations. + * @return multiplier The value of the percentage multiplier. + */ + function getPercentageMultiplier() external pure returns(uint256 multiplier) { + return PERCENTAGE_MULTIPLIER; + } + + /** + * @dev Returns the minimum value between two uint256 numbers. + * @param a The first uint256 number to compare. + * @param b The second uint256 number to compare. + * @return The minimum value between a and b. + */ + function min(uint256 a, uint256 b) private pure returns (uint256) { + return a <= b ? a : b; + } + + + /** + * @dev Returns the number of risk ids in the _riskIds array. + * @return The length of the _riskIds array. + */ + function risks() external view returns(uint256) { return _riskIds.length; } + /** + * @dev Returns the risk ID at the given index. + * @param idx The index of the risk ID to retrieve. + * @return riskId The risk ID at the given index. + */ + function getRiskId(uint256 idx) external view returns(bytes32 riskId) { return _riskIds[idx]; } + /** + * @dev Returns the Risk struct associated with the given riskId. + * @param riskId The unique identifier of the Risk to retrieve. + * @return risk The Risk struct containing the details of the requested risk. + */ + function getRisk(bytes32 riskId) external view returns(Risk memory risk) { return _risks[riskId]; } + + /** + * @dev Returns the number of applications submitted. + * @return applicationCount The number of applications submitted. + */ + function applications() external view returns(uint256 applicationCount) { + return _applications.length; + } + + /** + * @dev Returns the process ID of a specific application. + * @param applicationIdx The index of the application in the array. + * @return processId The process ID of the application. + */ + function getApplicationId(uint256 applicationIdx) external view returns(bytes32 processId) { + return _applications[applicationIdx]; + } + + /** + * @dev Returns the number of policies for a given risk ID. + * @param riskId The ID of the risk. + * @return policyCount The number of policies for the given risk ID. + */ + function policies(bytes32 riskId) external view returns(uint256 policyCount) { + return EnumerableSet.length(_policies[riskId]); + } + + /** + * @dev Returns the processId of the policy at the specified index in the list of policies associated with the given riskId. + * @param riskId The unique identifier of the risk. + * @param policyIdx The index of the policy in the list of policies associated with the given riskId. + * @return processId The unique identifier of the process associated with the policy at the specified index. + */ + function getPolicyId(bytes32 riskId, uint256 policyIdx) external view returns(bytes32 processId) { + return EnumerableSet.at(_policies[riskId], policyIdx); + } + + /** + * @dev Returns the data structure of the application. + * @return dataStructure A string representing the data structure of the application, which consists of a single parameter: + * - riskId: A bytes32 value representing the unique identifier of the risk. + */ + function getApplicationDataStructure() external override pure returns(string memory dataStructure) { + return "(bytes32 riskId)"; + } + + + /** + * @dev Validates the risk parameters for a new position. + * @param trigger The trigger percentage for the new position. + * @param exit The exit percentage for the new position. + * @param tsi The TSI (Time Since Inception) for the new position. + * @param aph The APH (Annual Premium Hours) for the new position. + * + */ + function _validateRiskParameters( + uint256 trigger, + uint256 exit, + uint256 tsi, + uint256 aph + ) + internal + { + require(trigger <= PERCENTAGE_MULTIPLIER, "ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE"); + require(trigger > exit, "ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT"); + require(exit <= RISK_EXIT_MAX, "ERROR:AYI-042:RISK_EXIT_TOO_LARGE"); + require(tsi >= RISK_TSI_AT_EXIT_MIN , "ERROR:AYI-043:RISK_TSI_TOO_SMALL"); + require(tsi <= PERCENTAGE_MULTIPLIER , "ERROR:AYI-044:RISK_TSI_TOO_LARGE"); + require(tsi + exit <= PERCENTAGE_MULTIPLIER, "ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE"); + require(aph > 0, "ERROR:AYI-046:RISK_APH_ZERO_INVALID"); + require(aph <= RISK_APH_MAX, "ERROR:AYI-047:RISK_APH_TOO_LARGE"); + } + + /** + * @dev Processes a policy by calculating the claim amount, creating a claim, confirming it, creating a payout, processing it, and emitting events accordingly. + * @param policyId The ID of the policy to be processed. + * @param risk The Risk struct containing the payout percentage. + * @notice This function emits 3 events: + * - LogAyiiPolicyProcessed + * - LogAyiiPayoutCreated + * - LogAyiiClaimCreated + */ + function _processPolicy(bytes32 policyId, Risk memory risk) + internal + { + IPolicy.Application memory application + = _getApplication(policyId); + + uint256 claimAmount = calculatePayout( + risk.payoutPercentage, + application.sumInsuredAmount); + + uint256 claimId = _newClaim(policyId, claimAmount, ""); + emit LogAyiiClaimCreated(policyId, claimId, claimAmount); + + if (claimAmount > 0) { + uint256 payoutAmount = claimAmount; + _confirmClaim(policyId, claimId, payoutAmount); + + uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, ""); + _processPayout(policyId, payoutId); + + emit LogAyiiPayoutCreated(policyId, payoutAmount); + } + else { + _declineClaim(policyId, claimId); + _closeClaim(policyId, claimId); + } + + emit LogAyiiPolicyProcessed(policyId); + } + + /** + * @dev Returns the risk ID associated with a given process ID. + * @param processId The process ID for which to retrieve the risk ID. + * @return riskId The risk ID associated with the given process ID. + */ + function _getRiskId(bytes32 processId) private view returns(bytes32 riskId) { + IPolicy.Application memory application = _getApplication(processId); + (riskId) = abi.decode(application.data, (bytes32)); + } +} \ No newline at end of file diff --git a/contracts-christoph2806/examples/AyiiRiskpool.sol b/contracts-christoph2806/examples/AyiiRiskpool.sol new file mode 100644 index 00000000..87385ca7 --- /dev/null +++ b/contracts-christoph2806/examples/AyiiRiskpool.sol @@ -0,0 +1,87 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@openzeppelin/contracts/access/AccessControl.sol"; + +import "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol"; +import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; + +contract AyiiRiskpool is + BasicRiskpool, + AccessControl +{ + // 0x5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d935 + bytes32 public constant INVESTOR_ROLE = keccak256("INVESTOR"); + + // restricts the maximal sum of sum insured that are secured by gthe riskpool + uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24; + + /** + * @dev Constructor for creating a new Riskpool with the given parameters. + * @param name The name of the Riskpool. + * @param collateralization The collateralization percentage of the Riskpool. + * @param erc20Token The address of the ERC20 token used for collateral. + * @param wallet The address of the wallet where the collateral will be held. + * @param registry The address of the registry contract. + */ + constructor( + bytes32 name, + uint256 collateralization, + address erc20Token, + address wallet, + address registry + ) + BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry) + { + + _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); + } + + + /** + * @dev Grants the INVESTOR_ROLE to the specified address. + * @param investor The address to grant the INVESTOR_ROLE to. + */ + function grantInvestorRole(address investor) + external + onlyOwner + { + _setupRole(INVESTOR_ROLE, investor); + } + + + /** + * @dev Creates a new bundle with the specified filter and initial amount. + * @param filter The filter to be applied to the bundle. + * @param initialAmount The initial amount of tokens to be deposited into the bundle. + * @return bundleId The ID of the newly created bundle. + */ + function createBundle(bytes memory filter, uint256 initialAmount) + public override + onlyRole(INVESTOR_ROLE) + returns(uint256 bundleId) + { + bundleId = super.createBundle(filter, initialAmount); + } + + + // trivial implementation that matches every application + /** + * @dev Checks if a given bundle matches a given application. + * @param bundle The bundle to check. + * @param application The application to match against. + * @return isMatching Returns true if the bundle matches the application. + */ + function bundleMatchesApplication( + IBundle.Bundle memory bundle, + IPolicy.Application memory application + ) + public override + pure + returns(bool isMatching) + { + isMatching = true; + } + +} \ No newline at end of file diff --git a/contracts-christoph2806/examples/mock/ChainlinkOperator.sol b/contracts-christoph2806/examples/mock/ChainlinkOperator.sol new file mode 100644 index 00000000..9acc9a0a --- /dev/null +++ b/contracts-christoph2806/examples/mock/ChainlinkOperator.sol @@ -0,0 +1,379 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.2; + +import "@openzeppelin/contracts/access/Ownable.sol"; + +contract ChainlinkOperator is + Ownable +{ + + struct Commitment { + bytes31 paramsHash; + uint8 dataVersion; + } + + uint256 public constant getExpiryTime = 5 minutes; + uint256 private constant MAXIMUM_DATA_VERSION = 256; + uint256 private constant MINIMUM_CONSUMER_GAS_LIMIT = 400000; + + event AuthorizedSendersChanged(address[] senders, address changedBy); + + event OracleRequest( + bytes32 indexed specId, + address requester, + bytes32 requestId, + uint256 payment, + address callbackAddr, + bytes4 callbackFunctionId, + uint256 cancelExpiration, + uint256 dataVersion, + bytes data + ); + + event CancelOracleRequest(bytes32 indexed requestId); + + event OracleResponse(bytes32 indexed requestId); + + // contract variables + mapping(address => bool) private s_authorizedSenders; + address[] private s_authorizedSenderList; + + mapping(bytes32 => Commitment) private s_commitments; + + /** + * @notice prevents non-authorized addresses from calling this method + */ + modifier validateAuthorizedSenderSetter() { + require(_canSetAuthorizedSenders(), "Cannot set authorized senders"); + _; + } + + /** + * @dev Constructor function that inherits from the Ownable contract. + */ + constructor() Ownable() { } + + /** + * @notice Sets the fulfillment permission for a given node. Use `true` to allow, `false` to disallow. + * @param senders The addresses of the authorized Chainlink node + */ + /** + * @dev Sets the authorized senders for the contract. Only the authorized sender setter can call this function. + * @param senders An array of addresses to be set as authorized senders. + * + * Requirements: + * - The length of the senders array must be greater than 0. + * + * Emits an {AuthorizedSendersChanged} event indicating the updated list of authorized senders and the address of the sender who called the function. + * @notice This function emits 1 events: + * - AuthorizedSendersChanged + */ + function setAuthorizedSenders(address[] calldata senders) + external + validateAuthorizedSenderSetter + { + require(senders.length > 0, "Must have at least 1 authorized sender"); + // Set previous authorized senders to false + uint256 authorizedSendersLength = s_authorizedSenderList.length; + for (uint256 i = 0; i < authorizedSendersLength; i++) { + s_authorizedSenders[s_authorizedSenderList[i]] = false; + } + // Set new to true + for (uint256 i = 0; i < senders.length; i++) { + s_authorizedSenders[senders[i]] = true; + } + // Replace list + s_authorizedSenderList = senders; + emit AuthorizedSendersChanged(senders, msg.sender); + } + + + /** + * @dev Returns an array of authorized senders. + * @return An array of addresses representing the authorized senders. + */ + function getAuthorizedSenders() + external + view + returns(address [] memory) + { + return s_authorizedSenderList; + } + + /** + * @notice Called when LINK is sent to the contract via `transferAndCall` + * @dev The data payload's first 2 words will be overwritten by the `sender` and `amount` + * values to ensure correctness. Calls oracleRequest. + * @param sender Address of the sender + * @param amount Amount of LINK sent (specified in wei) + * @param data Payload of the transaction + */ + /** + * @dev This function is called when a token transfer occurs. It ensures that the correct sender and amount are passed in the data parameter, and then calls the oracleRequest function via delegatecall. + * @param sender The address of the token sender. + * @param amount The amount of tokens being sent. + * @param data The data payload for the token transfer, which must include the oracleRequest function signature and any additional data required for the function. + */ + function onTokenTransfer( + address sender, + uint256 amount, + bytes memory data + ) + public + // validateFromLINK + // permittedFunctionsForLINK(data) + { + assembly { + // solhint-disable-next-line avoid-low-level-calls + mstore(add(data, 36), sender) // ensure correct sender is passed + // solhint-disable-next-line avoid-low-level-calls + mstore(add(data, 68), amount) // ensure correct amount is passed + } + // solhint-disable-next-line avoid-low-level-calls + (bool success, ) = address(this).delegatecall(data); // calls oracleRequest + require(success, "Unable to create request"); + } + + + /** + * @notice Creates the Chainlink request. This is a backwards compatible API + * with the Oracle.sol contract, but the behavior changes because + * callbackAddress is assumed to be the same as the request sender. + * @param callbackAddress The consumer of the request + * @param payment The amount of payment given (specified in wei) + * @param specId The Job Specification ID + * @param callbackAddress The address the oracle data will be sent to + * @param callbackFunctionId The callback function ID for the response + * @param nonce The nonce sent by the requester + * @param dataVersion The specified data version + * @param data The extra request parameters + */ + /** + * @dev Sends an oracle request with specified parameters to the oracle contract. + * @param sender The address of the requester. + * @param payment The amount of LINK sent as payment for the request. + * @param specId The ID of the job specification for the request. + * @param callbackAddress The address of the contract that will receive the response. + * @param callbackFunctionId The function ID of the function that will receive the response. + * @param nonce A unique identifier for the request. + * @param dataVersion The version of the data schema being used. + * @param data The data being sent as part of the request. + * @notice This function emits 1 events: + * - OracleRequest + */ + function oracleRequest( + address sender, + uint256 payment, + bytes32 specId, + address callbackAddress, + bytes4 callbackFunctionId, + uint256 nonce, + uint256 dataVersion, + bytes calldata data + ) + external + // override + // validateFromLINK + { + (bytes32 requestId, uint256 expiration) = _verifyAndProcessOracleRequest( + sender, + payment, + callbackAddress, + callbackFunctionId, + nonce, + dataVersion + ); + emit OracleRequest(specId, sender, requestId, payment, sender, callbackFunctionId, expiration, dataVersion, data); + } + + + /** + * @notice Called by the Chainlink node to fulfill requests with multi-word support + * @dev Given params must hash back to the commitment stored from `oracleRequest`. + * Will call the callback address' callback function without bubbling up error + * checking in a `require` so that the node can get paid. + * @param requestId The fulfillment request ID that must match the requester's + * @param payment The payment amount that will be released for the oracle (specified in wei) + * @param callbackAddress The callback address to call for fulfillment + * @param callbackFunctionId The callback function ID to use for fulfillment + * @param expiration The expiration that the node should respond by before the requester can cancel + * @param data The data to return to the consuming contract + * @return Status if the external call was successful + */ + /** + * @dev Fulfill an oracle request by verifying it and processing the payment. Then emit an `OracleResponse` event. + * The function also checks if the consumer provided enough gas and calls the callback function. + * @param requestId The ID of the oracle request. + * @param payment The payment amount for the oracle request. + * @param callbackAddress The address of the contract to be called back. + * @param callbackFunctionId The function signature of the callback function. + * @param expiration The expiration time of the oracle request. + * @param data The data to be sent to the callback function. + * @return success A boolean value indicating whether the callback function was successfully called or not. + * @notice This function emits 1 events: + * - OracleResponse + */ + function fulfillOracleRequest2( + bytes32 requestId, + uint256 payment, + address callbackAddress, + bytes4 callbackFunctionId, + uint256 expiration, + bytes calldata data + ) + external + // override + // validateAuthorizedSender + // validateRequestId(requestId) + // validateCallbackAddress(callbackAddress) + // validateMultiWordResponseId(requestId, data) + returns (bool) + { + _verifyOracleRequestAndProcessPayment(requestId, payment, callbackAddress, callbackFunctionId, expiration, 2); + + emit OracleResponse(requestId); + require(gasleft() >= MINIMUM_CONSUMER_GAS_LIMIT, "Must provide consumer enough gas"); + + // All updates to the oracle's fulfillment should come before calling the + // callback(addr+functionId) as it is untrusted. + // See: https://solidity.readthedocs.io/en/develop/security-considerations.html#use-the-checks-effects-interactions-pattern + (bool success, ) = callbackAddress.call(abi.encodePacked(callbackFunctionId, data)); // solhint-disable-line avoid-low-level-calls + return success; + } + + + /** + * @notice Verify the Oracle Request and record necessary information + * @param sender The sender of the request + * @param payment The amount of payment given (specified in wei) + * @param callbackAddress The callback address for the response + * @param callbackFunctionId The callback function ID for the response + * @param nonce The nonce sent by the requester + */ + /** + * @dev Verifies and processes an oracle request. + * @param sender The address of the sender making the request. + * @param payment The amount of payment to be made for the request. + * @param callbackAddress The address of the contract to receive the callback. + * @param callbackFunctionId The function signature of the callback function. + * @param nonce A unique identifier for the request. + * @param dataVersion The version of the data being requested. + * @return requestId The unique identifier for the request. + * @return expiration The expiration time for the request. + */ + function _verifyAndProcessOracleRequest( + address sender, + uint256 payment, + address callbackAddress, + bytes4 callbackFunctionId, + uint256 nonce, + uint256 dataVersion + ) + private + // validateNotToLINK(callbackAddress) + returns (bytes32 requestId, uint256 expiration) + { + requestId = keccak256(abi.encodePacked(sender, nonce)); + require(s_commitments[requestId].paramsHash == 0, "Must use a unique ID"); + // solhint-disable-next-line not-rely-on-time + // expiration = block.timestamp.add(getExpiryTime); + expiration = block.timestamp + getExpiryTime; + bytes31 paramsHash = _buildParamsHash(payment, callbackAddress, callbackFunctionId, expiration); + s_commitments[requestId] = Commitment(paramsHash, _safeCastToUint8(dataVersion)); + // s_tokensInEscrow = s_tokensInEscrow.add(payment); + return (requestId, expiration); + } + + + /** + * @notice Verify the Oracle request and unlock escrowed payment + * @param requestId The fulfillment request ID that must match the requester's + * @param payment The payment amount that will be released for the oracle (specified in wei) + * @param callbackAddress The callback address to call for fulfillment + * @param callbackFunctionId The callback function ID to use for fulfillment + * @param expiration The expiration that the node should respond by before the requester can cancel + */ + /** + * @dev Verifies the oracle request and processes the payment. + * @param requestId The ID of the request. + * @param payment The amount of payment to be processed. + * @param callbackAddress The address of the callback function. + * @param callbackFunctionId The function ID of the callback function. + * @param expiration The expiration time of the request. + * @param dataVersion The version of the data. + */ + function _verifyOracleRequestAndProcessPayment( + bytes32 requestId, + uint256 payment, + address callbackAddress, + bytes4 callbackFunctionId, + uint256 expiration, + uint256 dataVersion + ) + internal + { + bytes31 paramsHash = _buildParamsHash(payment, callbackAddress, callbackFunctionId, expiration); + require(s_commitments[requestId].paramsHash == paramsHash, "Params do not match request ID"); + require(s_commitments[requestId].dataVersion <= _safeCastToUint8(dataVersion), "Data versions must match"); + // s_tokensInEscrow = s_tokensInEscrow.sub(payment); + delete s_commitments[requestId]; + } + + + /** + * @notice Build the bytes31 hash from the payment, callback and expiration. + * @param payment The payment amount that will be released for the oracle (specified in wei) + * @param callbackAddress The callback address to call for fulfillment + * @param callbackFunctionId The callback function ID to use for fulfillment + * @param expiration The expiration that the node should respond by before the requester can cancel + * @return hash bytes31 + */ + /** + * @dev Generates a hash value based on the function parameters. + * @param payment The payment amount to be included in the hash. + * @param callbackAddress The address to be called back after the transaction. + * @param callbackFunctionId The function ID to be called back after the transaction. + * @param expiration The expiration time for the transaction. + * @return Hash value generated from the function parameters. + */ + function _buildParamsHash( + uint256 payment, + address callbackAddress, + bytes4 callbackFunctionId, + uint256 expiration + ) internal pure returns (bytes31) { + return bytes31(keccak256(abi.encodePacked(payment, callbackAddress, callbackFunctionId, expiration))); + } + + + /** + * @notice Safely cast uint256 to uint8 + * @param number uint256 + * @return uint8 number + */ + /** + * @dev Safely casts a uint256 to a uint8. + * @param number The uint256 number to cast. + * @return The uint8 representation of the number. + * + * Requirements: + * - number must be less than MAXIMUM_DATA_VERSION. + */ + function _safeCastToUint8(uint256 number) internal pure returns (uint8) { + require(number < MAXIMUM_DATA_VERSION, "number too big to cast"); + return uint8(number); + } + + /** + * @notice concrete implementation of AuthorizedReceiver + * @return bool of whether sender is authorized + */ + /** + * @dev Checks if the caller is the owner of the contract and can set authorized senders. + * @return A boolean indicating whether the caller is the owner of the contract. + */ + function _canSetAuthorizedSenders() internal view returns (bool) { + return owner() == msg.sender; + } + +} diff --git a/contracts-christoph2806/examples/mock/ChainlinkToken.sol b/contracts-christoph2806/examples/mock/ChainlinkToken.sol new file mode 100644 index 00000000..967dfc21 --- /dev/null +++ b/contracts-christoph2806/examples/mock/ChainlinkToken.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.2; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +abstract contract ERC677Receiver { + /** + * @dev This function is called when tokens are transferred to this contract. + * @param _sender The address of the sender. + * @param _value The amount of tokens being transferred. + * @param _data Additional data with no specified format. + */ + function onTokenTransfer (address _sender, uint _value, bytes calldata _data) public virtual; +} + +contract ChainlinkToken is ERC20 { + /** + * @dev Constructor function to initialize the Chainlink Dummy Token with the given owner and supply. + * @param owner The address of the owner of the token. + * @param supply The initial supply of the token. + */ + constructor(address owner, uint256 supply) ERC20("Chainlink Dummy Token", "CDT"){ + _mint(owner, supply); + } + + /** + * @dev Transfers tokens to a specified address and calls the recipient's function. + * @param _to The address of the recipient. + * @param _value The amount of tokens to send. + * @param _data Additional data to send to the recipient's function. + * @return success Returns true if the transfer was successful. + */ + function transferAndCall(address _to, uint _value, bytes calldata _data) public returns (bool success){ + super.transfer(_to, _value); + // Transfer(msg.sender, _to, _value, _data); + if (isContract(_to)) { + contractFallback(_to, _value, _data); + } + return true; + } + + /** + * @dev Executes a contract fallback function. + * @param _to The address of the contract to execute the fallback function on. + * @param _value The amount of tokens being transferred. + * @param _data Additional data to be passed to the fallback function. + */ + function contractFallback(address _to, uint _value, bytes calldata _data) private { + ERC677Receiver receiver = ERC677Receiver(_to); + receiver.onTokenTransfer(msg.sender, _value, _data); + } + + /** + * @dev Checks if the given address contains code. + * @param _addr The address to check. + * @return hasCode A boolean indicating whether the address contains code or not. + */ + function isContract(address _addr) private view returns (bool hasCode) { + uint length; + assembly { length := extcodesize(_addr) } + return length > 0; + } +} diff --git a/contracts-christoph2806/examples/strings.sol b/contracts-christoph2806/examples/strings.sol new file mode 100644 index 00000000..0e7c636d --- /dev/null +++ b/contracts-christoph2806/examples/strings.sol @@ -0,0 +1,137 @@ +// SPDX-License-Identifier: Apache2 + +// source: https://github.com/Arachnid/solidity-stringutils +/* + * @title String & slice utility library for Solidity contracts. + * @author Nick Johnson + * + * @dev Functionality in this library is largely implemented using an + * abstraction called a 'slice'. A slice represents a part of a string - + * anything from the entire string to a single character, or even no + * characters at all (a 0-length slice). Since a slice only has to specify + * an offset and a length, copying and manipulating slices is a lot less + * expensive than copying and manipulating the strings they reference. + * + * To further reduce gas costs, most functions on slice that need to return + * a slice modify the original one instead of allocating a new one; for + * instance, `s.split(".")` will return the text up to the first '.', + * modifying s to only contain the remainder of the string after the '.'. + * In situations where you do not want to modify the original slice, you + * can make a copy first with `.copy()`, for example: + * `s.copy().split(".")`. Try and avoid using this idiom in loops; since + * Solidity has no memory management, it will result in allocating many + * short-lived slices that are later discarded. + * + * Functions that return two slices come in two versions: a non-allocating + * version that takes the second slice as an argument, modifying it in + * place, and an allocating version that allocates and returns the second + * slice; see `nextRune` for example. + * + * Functions that have to copy string data will return strings rather than + * slices; these can be cast back to slices for further processing if + * required. + * + * For convenience, some functions are provided with non-modifying + * variants that create a new slice and return both; for instance, + * `s.splitNew('.')` leaves s unmodified, and returns two values + * corresponding to the left and right parts of the string. + */ +pragma solidity 0.8.2; + +library strings { + + struct slice { + uint _len; + uint _ptr; + } + + /** + * @dev Copies a specified number of bytes from one memory address to another. + * @param dest The destination memory address to copy to. + * @param src The source memory address to copy from. + * @param len_ The number of bytes to copy. + */ + function memcpy(uint dest, uint src, uint len_) private pure { + // Copy word-length chunks while possible + for(; len_ >= 32; len_ -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = type(uint).max; + if (len_ > 0) { + mask = 256 ** (32 - len_) - 1; + } + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } + + /* + * @dev Returns the length of a null-terminated bytes32 string. + * @param self The value to find the length of. + * @return The length of the string, from 0 to 32. + */ + /** + * @dev Calculates the length of a bytes32 variable. + * @param self The bytes32 variable to calculate the length of. + * @return ret The length of the bytes32 variable. + */ + function len(bytes32 self) internal pure returns (uint) { + uint ret; + if (self == 0) + return 0; + if (uint(self) & type(uint128).max == 0) { + ret += 16; + self = bytes32(uint(self) / 0x100000000000000000000000000000000); + } + if (uint(self) & type(uint64).max == 0) { + ret += 8; + self = bytes32(uint(self) / 0x10000000000000000); + } + if (uint(self) & type(uint32).max == 0) { + ret += 4; + self = bytes32(uint(self) / 0x100000000); + } + if (uint(self) & type(uint16).max == 0) { + ret += 2; + self = bytes32(uint(self) / 0x10000); + } + if (uint(self) & type(uint8).max == 0) { + ret += 1; + } + return 32 - ret; + } + + // merge of toSliceB32 and toString of strings library + /** + * @dev Converts a bytes32 value to a string. + * @param self The bytes32 value to be converted. + * @return ret The resulting string value. + * + * Converts a bytes32 value to a string by creating a slice of the bytes32 value and then copying it to a new string. + * The resulting string is then returned as the output of the function. + */ + function toB32String(bytes32 self) internal pure returns (string memory) { + slice memory slc; + assembly { + let ptr := mload(0x40) + mstore(0x40, add(ptr, 0x20)) + mstore(ptr, self) + mstore(add(slc, 0x20), ptr) + } + slc._len = len(self); + + string memory ret = new string(slc._len); + uint retptr; + assembly { retptr := add(ret, 32) } + memcpy(retptr, slc._ptr, slc._len); + return ret; + } +} \ No newline at end of file diff --git a/contracts-christoph2806/flows/PolicyDefaultFlow.sol b/contracts-christoph2806/flows/PolicyDefaultFlow.sol new file mode 100644 index 00000000..f430c8ad --- /dev/null +++ b/contracts-christoph2806/flows/PolicyDefaultFlow.sol @@ -0,0 +1,499 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../modules/ComponentController.sol"; +import "../modules/PoolController.sol"; +import "../modules/PolicyController.sol"; +import "../modules/QueryModule.sol"; +import "../modules/TreasuryModule.sol"; +import "../shared/WithRegistry.sol"; + +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; +// import "@etherisc/gif-interface/contracts/modules/IQuery.sol"; +import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; +import "@etherisc/gif-interface/contracts/modules/IPool.sol"; + + +contract PolicyDefaultFlow is + WithRegistry +{ + bytes32 public constant NAME = "PolicyDefaultFlow"; + + modifier onlyActivePolicy(bytes32 processId) { + PolicyController policy = getPolicyContract(); + require( + policy.getPolicy(processId).state == IPolicy.PolicyState.Active, + "ERROR:PFD-001:POLICY_NOT_ACTIVE" + ); + _; + } + + modifier onlyExpiredPolicy(bytes32 processId) { + PolicyController policy = getPolicyContract(); + require( + policy.getPolicy(processId).state == IPolicy.PolicyState.Expired, + "ERROR:PFD-002:POLICY_NOT_EXPIRED" + ); + _; + } + + modifier notClosedPolicy(bytes32 processId) { + PolicyController policy = getPolicyContract(); + require( + policy.getPolicy(processId).state != IPolicy.PolicyState.Closed, + "ERROR:PFD-003:POLICY_CLOSED" + ); + _; + } + + modifier onlyResponsibleProduct(bytes32 processId) { + PolicyController policy = getPolicyContract(); + IPolicy.Metadata memory metadata = policy.getMetadata(processId); + ComponentController component = ComponentController(getContractFromRegistry("Component")); + require(metadata.productId == component.getComponentId(address(msg.sender)), "ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH"); + _; + } + + modifier onlyMatchingProduct(uint256 requestId) { + QueryModule query = getQueryContract(); + bytes32 processId = getQueryContract().getProcessId(requestId); + PolicyController policy = getPolicyContract(); + IPolicy.Metadata memory metadata = policy.getMetadata(processId); + ComponentController component = ComponentController(getContractFromRegistry("Component")); + require(metadata.productId == component.getComponentId(address(msg.sender)), "ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH"); + _; + } + + // ComponentController private _component; + + // solhint-disable-next-line no-empty-blocks + /** + * @dev Constructor function that initializes the contract with a given registry address. + * @param _registry The address of the registry contract. + */ + constructor(address _registry) + WithRegistry(_registry) + { + } + + /** + * @dev Creates a new insurance application and returns the process ID. + * @param owner The address of the owner of the new application. + * @param premiumAmount The amount of premium to be paid for the application. + * @param sumInsuredAmount The amount of insurance coverage requested for the application. + * @param metaData Additional metadata for the application. + * @param applicationData Additional data for the application. + * @return processId The unique process ID of the created application. + */ + function newApplication( + address owner, + uint256 premiumAmount, + uint256 sumInsuredAmount, + bytes calldata metaData, + bytes calldata applicationData + ) + external + returns(bytes32 processId) + { + ComponentController component = getComponentContract(); + uint256 productId = component.getComponentId(msg.sender); + + IPolicy policy = getPolicyContract(); + processId = policy.createPolicyFlow(owner, productId, metaData); + policy.createApplication( + processId, + premiumAmount, + sumInsuredAmount, + applicationData); + } + + /** + * @dev Revokes an application for a specific processId. + * @param processId The unique identifier of the process. + */ + function revoke(bytes32 processId) + external + onlyResponsibleProduct(processId) + { + IPolicy policy = getPolicyContract(); + policy.revokeApplication(processId); + } + + /* success implies the successful creation of a policy */ + /** + * @dev Attempts to get the collateral to secure the policy. + * @param processId The unique identifier of the underwriting process. + * @return success A boolean indicating whether the underwriting was successful. + * + * If successful, creates a policy and transfers the premium amount. + * The premium collection part is a TODO and should be implemented on the product level. + * This function should only be called by a responsible product. + * */ + function underwrite(bytes32 processId) + external + onlyResponsibleProduct(processId) + returns(bool success) + { + // attempt to get the collateral to secure the policy + PoolController pool = getPoolContract(); + success = pool.underwrite(processId); + + // TODO remove premium collection part below + // this should be implemented on the prduct level + // it's too much magic in the platform and not transparent enough + // also, bad naming: the function name is 'underwrite? and not + // 'underwriteAndIfSuccessfulCollectPremiumToo' + if (success) { + PolicyController policyController = getPolicyContract(); + policyController.underwriteApplication(processId); + policyController.createPolicy(processId); + + // transfer premium amount + IPolicy.Policy memory policy = policyController.getPolicy(processId); + collectPremium(processId, policy.premiumExpectedAmount); + } + } + + /* success implies the successful collection of the amount for the policy. + * valid amounts need to be > 0 up to the full premium amount + * if no fee structure is defined for the policy, this call will revert. + */ + /** + * @dev Collects the premium for a given policy and updates the book keeping of the policy and the risk pool. + * @param processId The ID of the premium payment process. + * @param amount The amount of premium to be collected. + * @return success A boolean indicating whether the premium collection was successful or not. + * @return feeAmount The amount of fee collected by the treasury module. + * @return netPremiumAmount The net amount of premium collected after deducting the fee. + */ + function collectPremium(bytes32 processId, uint256 amount) + public + notClosedPolicy(processId) + onlyResponsibleProduct(processId) + returns( + bool success, + uint256 feeAmount, + uint256 netPremiumAmount + ) + { + TreasuryModule treasury = getTreasuryContract(); + PolicyController policy = getPolicyContract(); + + (success, feeAmount, netPremiumAmount) = treasury.processPremium(processId, amount); + + // if premium collected: update book keeping of policy and riskpool + if (success) { + policy.collectPremium(processId, netPremiumAmount + feeAmount); + + PoolController pool = getPoolContract(); + pool.processPremium(processId, netPremiumAmount); + } + } + + /** + * @dev Adjusts the premium and sum insured amounts of a policy. + * @param processId The ID of the policy process. + * @param expectedPremiumAmount The expected premium amount. + * @param sumInsuredAmount The sum insured amount. + */ + function adjustPremiumSumInsured( + bytes32 processId, + uint256 expectedPremiumAmount, + uint256 sumInsuredAmount + ) + external + notClosedPolicy(processId) + onlyResponsibleProduct(processId) + { + PolicyController policy = getPolicyContract(); + policy.adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount); + } + + + /** + * @dev Allows the responsible product to decline an application for a policy. + * @param processId The unique identifier of the application process. + */ + function decline(bytes32 processId) + onlyResponsibleProduct(processId) + external + { + IPolicy policy = getPolicyContract(); + policy.declineApplication(processId); + } + + /** + * @dev Expire the policy identified by the given process ID. + * @param processId The ID of the process corresponding to the policy to be expired. + */ + function expire(bytes32 processId) + external + onlyActivePolicy(processId) + onlyResponsibleProduct(processId) + { + IPolicy policy = getPolicyContract(); + policy.expirePolicy(processId); + } + + /** + * @dev Closes a policy and releases the corresponding funds from the pool. + * @param processId The ID of the policy to be closed. + */ + function close(bytes32 processId) + external + onlyExpiredPolicy(processId) + onlyResponsibleProduct(processId) + { + IPolicy policy = getPolicyContract(); + policy.closePolicy(processId); + + IPool pool = getPoolContract(); + pool.release(processId); + } + + /** + * @dev Creates a new claim for a given process ID, claim amount and data. + * @param processId The ID of the process to create the claim for. + * @param claimAmount The amount of the claim to be created. + * @param data Additional data to be included with the claim. + * @return claimId The ID of the newly created claim. + */ + function newClaim( + bytes32 processId, + uint256 claimAmount, + bytes calldata data + ) + external + onlyActivePolicy(processId) + onlyResponsibleProduct(processId) + returns (uint256 claimId) + { + claimId = getPolicyContract().createClaim( + processId, + claimAmount, + data); + } + + /** + * @dev Confirms a claim for a specific process and claim ID, updating the confirmed amount. + * @param processId The ID of the process where the claim was made. + * @param claimId The ID of the claim to be confirmed. + * @param confirmedAmount The amount confirmed for the claim. + */ + function confirmClaim( + bytes32 processId, + uint256 claimId, + uint256 confirmedAmount + ) + external + onlyResponsibleProduct(processId) + { + PolicyController policy = getPolicyContract(); + policy.confirmClaim(processId, claimId, confirmedAmount); + } + + /** + * @dev Allows the responsible product to decline a claim. + * @param processId The unique identifier of the claim process. + * @param claimId The unique identifier of the claim to be declined. + */ + function declineClaim(bytes32 processId, uint256 claimId) + external + onlyResponsibleProduct(processId) + { + PolicyController policy = getPolicyContract(); + policy.declineClaim(processId, claimId); + } + + /** + * @dev Closes a claim for a specific process and claim ID. + * @param processId The ID of the process to which the claim belongs. + * @param claimId The ID of the claim to be closed. + */ + function closeClaim(bytes32 processId, uint256 claimId) + external + onlyResponsibleProduct(processId) + { + PolicyController policy = getPolicyContract(); + policy.closeClaim(processId, claimId); + } + + /** + * @dev Creates a new payout for a specific claim. + * @param processId The ID of the process associated with the claim. + * @param claimId The ID of the claim for which the payout is being created. + * @param amount The amount of the payout to be created. + * @param data Additional data related to the payout. + * @return payoutId The ID of the newly created payout. + */ + function newPayout( + bytes32 processId, + uint256 claimId, + uint256 amount, + bytes calldata data + ) + external + onlyResponsibleProduct(processId) + returns(uint256 payoutId) + { + payoutId = getPolicyContract() + .createPayout(processId, claimId, amount, data); + } + + /** + * @dev Processes a payout for a specific process and payout ID. + * @param processId The ID of the process for which the payout is being processed. + * @param payoutId The ID of the payout being processed. + * @return success A boolean indicating whether the payout was successfully processed. + * @return feeAmount The amount of fees deducted from the payout. + * @return netPayoutAmount The net amount paid out to the policyholder after deducting fees. + */ + function processPayout( + bytes32 processId, + uint256 payoutId + ) + external + onlyResponsibleProduct(processId) + returns( + bool success, + uint256 feeAmount, + uint256 netPayoutAmount + ) + { + TreasuryModule treasury = getTreasuryContract(); + (feeAmount, netPayoutAmount) = treasury.processPayout(processId, payoutId); + + // if payout successful: update book keeping of policy and riskpool + IPolicy policy = getPolicyContract(); + policy.processPayout(processId, payoutId); + + PoolController pool = getPoolContract(); + pool.processPayout(processId, netPayoutAmount + feeAmount); + } + + /** + * @dev Sends a request to the query contract to initiate a new process. + * @param processId The ID of the process to be initiated. + * @param _input The input data for the process. + * @param _callbackMethodName The name of the callback method in the callback contract. + * @param _callbackContractAddress The address of the callback contract. + * @param _responsibleOracleId The ID of the oracle responsible for handling the request. + * @return _requestId The ID of the new request. + */ + function request( + bytes32 processId, + bytes calldata _input, + string calldata _callbackMethodName, + address _callbackContractAddress, + uint256 _responsibleOracleId + ) + external + onlyResponsibleProduct(processId) + returns (uint256 _requestId) + { + _requestId = getQueryContract().request( + processId, + _input, + _callbackMethodName, + _callbackContractAddress, + _responsibleOracleId + ); + } + + /** + * @dev Cancels a request with the given requestId. + * @param requestId The ID of the request to be cancelled. + */ + function cancelRequest( + uint256 requestId + ) + external + onlyMatchingProduct(requestId) + { + getQueryContract().cancel(requestId); + } + + /** + * @dev Returns the application data associated with the given process ID. + * @param processId The ID of the process. + * @return data The application data as bytes. + */ + function getApplicationData(bytes32 processId) + external + view + returns (bytes memory) + { + PolicyController policy = getPolicyContract(); + return policy.getApplication(processId).data; + } + + /** + * @dev Returns the claim data of a specific claim for a given process ID. + * @param processId The ID of the process the claim belongs to. + * @param claimId The ID of the claim. + * @return data The claim data as bytes. + */ + function getClaimData(bytes32 processId, uint256 claimId) + external + view + returns (bytes memory) + { + PolicyController policy = getPolicyContract(); + return policy.getClaim(processId, claimId).data; + } + + /** + * @dev Returns the payout data for a given process and payout ID. + * @param processId The ID of the process. + * @param payoutId The ID of the payout. + * @return data The payout data as a bytes array. + */ + function getPayoutData(bytes32 processId, uint256 payoutId) + external + view + returns (bytes memory) + { + PolicyController policy = getPolicyContract(); + return policy.getPayout(processId, payoutId).data; + } + + /** + * @dev Returns the ComponentController contract instance. + * @return The ComponentController contract instance. + */ + function getComponentContract() internal view returns (ComponentController) { + return ComponentController(getContractFromRegistry("Component")); + } + + /** + * @dev Returns the PoolController contract instance from the registry. + * @return poolController The PoolController contract instance. + */ + function getPoolContract() internal view returns (PoolController) { + return PoolController(getContractFromRegistry("Pool")); + } + + /** + * @dev Returns the PolicyController contract instance from the registry. + * @return The PolicyController contract instance. + */ + function getPolicyContract() internal view returns (PolicyController) { + return PolicyController(getContractFromRegistry("Policy")); + } + + /** + * @dev Returns the QueryModule contract instance from the registry. + * @return QueryModule instance. + */ + function getQueryContract() internal view returns (QueryModule) { + return QueryModule(getContractFromRegistry("Query")); + } + + /** + * @dev Retrieves the TreasuryModule contract instance. + * @return The instance of the TreasuryModule contract. + */ + function getTreasuryContract() internal view returns (TreasuryModule) { + return TreasuryModule(getContractFromRegistry("Treasury")); + } +} diff --git a/contracts-christoph2806/flows/README.adoc b/contracts-christoph2806/flows/README.adoc new file mode 100644 index 00000000..20c8056f --- /dev/null +++ b/contracts-christoph2806/flows/README.adoc @@ -0,0 +1,8 @@ += Flows + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/flows + +== Contracts + +{{PolicyDefaultFlow}} \ No newline at end of file diff --git a/contracts-christoph2806/modules/AccessController.sol b/contracts-christoph2806/modules/AccessController.sol new file mode 100644 index 00000000..5c7bbe08 --- /dev/null +++ b/contracts-christoph2806/modules/AccessController.sol @@ -0,0 +1,192 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../shared/CoreController.sol"; + +import "@etherisc/gif-interface/contracts/modules/IAccess.sol"; + +import "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; +import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; + + +contract AccessController is + IAccess, + CoreController, + AccessControlEnumerable + { + + // 0xe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd + bytes32 public constant PRODUCT_OWNER_ROLE = keccak256("PRODUCT_OWNER_ROLE"); + + // 0xd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa2 + bytes32 public constant ORACLE_PROVIDER_ROLE = keccak256("ORACLE_PROVIDER_ROLE"); + + // 0x3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd + bytes32 public constant RISKPOOL_KEEPER_ROLE = keccak256("RISKPOOL_KEEPER_ROLE"); + + mapping(bytes32 => bool) public validRole; + + bool private _defaultAdminSet; + + /** + * @dev This function is called after contract initialization and adds the product owner, oracle provider, and riskpool keeper roles. + */ + function _afterInitialize() internal override { + // add product owner, oracle provider and riskpool keeper roles + _populateValidRoles(); + } + + /** + * @dev Returns the name of the contract. + * @return The name of the contract as a bytes32 value. + */ + function _getName() internal override pure returns(bytes32) { return "Access"; } + + // IMPORTANT check the setting of the default admin role + // after the deployment of a GIF instance. + // this method is called in the deployment of + // the instance operator proxy/controller + /** + * @dev Sets the default admin role for the Access Control List (ACL). + * @param defaultAdmin The address of the account to be set as the default admin role. + * + * Requirements: + * - The default admin role must not have been set before. + * + * Emits a {RoleGranted} event. + */ + function setDefaultAdminRole(address defaultAdmin) + external + { + require(!_defaultAdminSet, "ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET"); + _defaultAdminSet = true; + + _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin); + } + + //--- manage role ownership ---------------------------------------------// + /** + * @dev Grants a role to a principal. + * @param role The bytes32 identifier of the role to grant. + * @param principal The address of the principal to grant the role to. + * + * Requirements: + * - `role` must be a valid role identifier. + * - The caller must be an instance operator. + */ + function grantRole(bytes32 role, address principal) + public + override(IAccessControl, IAccess) + onlyInstanceOperator + { + require(validRole[role], "ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID"); + AccessControl.grantRole(role, principal); + } + + /** + * @dev Revokes the specified role from the specified principal. + * @param role The bytes32 identifier of the role to revoke. + * @param principal The address of the principal to revoke the role from. + */ + function revokeRole(bytes32 role, address principal) + public + override(IAccessControl, IAccess) + onlyInstanceOperator + { + AccessControl.revokeRole(role, principal); + } + + /** + * @dev Removes the specified `principal` from the `role` in the access control list (ACL) of the contract. + * @param role The bytes32 identifier of the role to remove the `principal` from. + * @param principal The address of the principal to remove from the `role`. + */ + function renounceRole(bytes32 role, address principal) + public + override(IAccessControl, IAccess) + { + AccessControl.renounceRole(role, principal); + } + + //--- manage roles ------------------------------------------------------// + /** + * @dev Adds a new role to the Access Control List. + * @param role The role to be added. + */ + function addRole(bytes32 role) + public override + onlyInstanceOperator + { + require(!validRole[role], "ERROR:ACL-003:ROLE_EXISTING_AND_VALID"); + validRole[role] = true; + } + + /** + * @dev Invalidates a role. + * @param role The role to invalidate. + */ + function invalidateRole(bytes32 role) + public override + onlyInstanceOperator + { + require(validRole[role], "ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID"); + validRole[role] = false; + } + + /** + * @dev Checks if a given principal has a specific role. + * @param role The bytes32 representation of the role to check. + * @param principal The address of the principal to check. + * @return Returns true if the principal has the specified role, false otherwise. + */ + function hasRole(bytes32 role, address principal) + public view + override(IAccessControl, IAccess) + returns(bool) + { + return super.hasRole(role, principal); + } + + /** + * @dev Returns the default admin role. + * @return The DEFAULT_ADMIN_ROLE. + */ + function getDefaultAdminRole() public pure override returns(bytes32) { + return DEFAULT_ADMIN_ROLE; + } + + /** + * @dev Returns the bytes32 value of the PRODUCT_OWNER_ROLE. + * @return PRODUCT_OWNER_ROLE The bytes32 value of the PRODUCT_OWNER_ROLE. + */ + function getProductOwnerRole() public pure override returns(bytes32) { + return PRODUCT_OWNER_ROLE; + } + + /** + * @dev Returns the bytes32 identifier of the Oracle Provider role. + * @return ORACLE_PROVIDER_ROLE The bytes32 identifier of the Oracle Provider role. + */ + function getOracleProviderRole() public pure override returns(bytes32) { + return ORACLE_PROVIDER_ROLE; + } + + /** + * @dev Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. + * @return RISKPOOL_KEEPER_ROLE The bytes32 value of the RISKPOOL_KEEPER_ROLE. + */ + function getRiskpoolKeeperRole() public pure override returns(bytes32) { + return RISKPOOL_KEEPER_ROLE; + } + + /** + * @dev Populates the validRole mapping with the roles that are considered valid for the contract. + * + * + */ + function _populateValidRoles() private { + validRole[PRODUCT_OWNER_ROLE] = true; + validRole[ORACLE_PROVIDER_ROLE] = true; + validRole[RISKPOOL_KEEPER_ROLE] = true; + } +} diff --git a/contracts-christoph2806/modules/BundleController.sol b/contracts-christoph2806/modules/BundleController.sol new file mode 100644 index 00000000..d70d5df2 --- /dev/null +++ b/contracts-christoph2806/modules/BundleController.sol @@ -0,0 +1,544 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "./PolicyController.sol"; +import "../shared/CoreController.sol"; +import "../tokens/BundleToken.sol"; + +import "@etherisc/gif-interface/contracts/components/IProduct.sol"; +import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; +import "./PoolController.sol"; + + +contract BundleController is + IBundle, + CoreController +{ + + PolicyController private _policy; + BundleToken private _token; + + mapping(uint256 /* bundleId */ => Bundle /* Bundle */) private _bundles; + mapping(uint256 /* bundleId */ => uint256 /* activePolicyCount */) private _activePolicies; + mapping(uint256 /* bundleId */ => mapping(bytes32 /* processId */ => uint256 /* lockedCapitalAmount */)) private _valueLockedPerPolicy; + mapping(uint256 /* riskpoolId */ => uint256 /* numberOfUnburntBundles */) private _unburntBundlesForRiskpoolId; + + + uint256 private _bundleCount; + + modifier onlyRiskpoolService() { + require( + _msgSender() == _getContractAddress("RiskpoolService"), + "ERROR:BUC-001:NOT_RISKPOOL_SERVICE" + ); + _; + } + + modifier onlyFundableBundle(uint256 bundleId) { + Bundle storage bundle = _bundles[bundleId]; + require(bundle.createdAt > 0, "ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST"); + require( + bundle.state != IBundle.BundleState.Burned + && bundle.state != IBundle.BundleState.Closed, "ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED" + ); + _; + } + + /** + * @dev Performs internal operations after the contract initialization. + * + * + */ + function _afterInitialize() internal override onlyInitializing { + _policy = PolicyController(_getContractAddress("Policy")); + _token = BundleToken(_getContractAddress("BundleToken")); + } + + /** + * @dev Creates a new bundle and mints a corresponding NFT token. Only callable by the RiskpoolService contract. + * @param owner_ The address of the bundle owner. + * @param riskpoolId_ The ID of the riskpool associated with the bundle. + * @param filter_ The filter used for the bundle. + * @param amount_ The amount of capital allocated to the bundle. + * @return bundleId The ID of the newly created bundle. + * @notice This function emits 1 events: + * - LogBundleCreated + */ + function create(address owner_, uint riskpoolId_, bytes calldata filter_, uint256 amount_) + external override + onlyRiskpoolService + returns(uint256 bundleId) + { + // will start with bundleId 1. + // this helps in maps where a bundleId equals a non-existing entry + bundleId = _bundleCount + 1; + Bundle storage bundle = _bundles[bundleId]; + require(bundle.createdAt == 0, "ERROR:BUC-010:BUNDLE_ALREADY_EXISTS"); + + // mint corresponding nft with bundleId as nft + uint256 tokenId = _token.mint(bundleId, owner_); + + bundle.id = bundleId; + bundle.tokenId = tokenId; + bundle.riskpoolId = riskpoolId_; + bundle.state = BundleState.Active; + bundle.filter = filter_; + bundle.capital = amount_; + bundle.balance = amount_; + bundle.createdAt = block.timestamp; + bundle.updatedAt = block.timestamp; + + // update bundle count + _bundleCount++; + _unburntBundlesForRiskpoolId[riskpoolId_]++; + + emit LogBundleCreated(bundle.id, riskpoolId_, owner_, bundle.state, bundle.capital); + } + + + /** + * @dev Adds funds to a bundle's capital and balance. + * @param bundleId The ID of the bundle to add funds to. + * @param amount The amount of funds to add to the bundle. + * @notice This function emits 1 events: + * - LogBundleCapitalProvided + */ + function fund(uint256 bundleId, uint256 amount) + external override + onlyRiskpoolService + { + Bundle storage bundle = _bundles[bundleId]; + require(bundle.createdAt > 0, "ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST"); + require(bundle.state != IBundle.BundleState.Closed, "ERROR:BUC-012:BUNDLE_CLOSED"); + + bundle.capital += amount; + bundle.balance += amount; + bundle.updatedAt = block.timestamp; + + uint256 capacityAmount = bundle.capital - bundle.lockedCapital; + emit LogBundleCapitalProvided(bundleId, _msgSender(), amount, capacityAmount); + } + + + /** + * @dev Allows the Riskpool service to withdraw `amount` from the `bundleId` Bundle. + * @param bundleId The ID of the Bundle to be defunded. + * @param amount The amount of tokens to be withdrawn. + * @notice This function emits 1 events: + * - LogBundleCapitalWithdrawn + */ + function defund(uint256 bundleId, uint256 amount) + external override + onlyRiskpoolService + { + Bundle storage bundle = _bundles[bundleId]; + require(bundle.createdAt > 0, "ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST"); + require( + bundle.capital >= bundle.lockedCapital + amount + || (bundle.lockedCapital == 0 && bundle.balance >= amount), + "ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW" + ); + + if (bundle.capital >= amount) { bundle.capital -= amount; } + else { bundle.capital = 0; } + + bundle.balance -= amount; + bundle.updatedAt = block.timestamp; + + uint256 capacityAmount = bundle.capital - bundle.lockedCapital; + emit LogBundleCapitalWithdrawn(bundleId, _msgSender(), amount, capacityAmount); + } + + /** + * @dev Locks a bundle of assets. + * @param bundleId The ID of the bundle to be locked. + */ + function lock(uint256 bundleId) + external override + onlyRiskpoolService + { + _changeState(bundleId, BundleState.Locked); + } + + /** + * @dev Unlocks a bundle, changing its state to active. + * @param bundleId The ID of the bundle to be unlocked. + */ + function unlock(uint256 bundleId) + external override + onlyRiskpoolService + { + _changeState(bundleId, BundleState.Active); + } + + /** + * @dev Closes a bundle of policies. + * @param bundleId The ID of the bundle to close. + */ + function close(uint256 bundleId) + external override + onlyRiskpoolService + { + require(_activePolicies[bundleId] == 0, "ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES"); + _changeState(bundleId, BundleState.Closed); + } + + /** + * @dev Burns a bundle and changes its state to Burned. + * @param bundleId The ID of the bundle to be burned. + * + * Requirements: + * - The bundle must be in the Closed state. + * - The bundle must have a balance of 0. + * + * Emits a {BundleStateChanged} event with BundleState.Burned. + */ + function burn(uint256 bundleId) + external override + onlyRiskpoolService + { + Bundle storage bundle = _bundles[bundleId]; + require(bundle.state == BundleState.Closed, "ERROR:BUC-016:BUNDLE_NOT_CLOSED"); + require(bundle.balance == 0, "ERROR:BUC-017:BUNDLE_HAS_BALANCE"); + + // burn corresponding nft -> as a result bundle looses its owner + _token.burn(bundleId); + _unburntBundlesForRiskpoolId[bundle.riskpoolId] -= 1; + + _changeState(bundleId, BundleState.Burned); + } + + /** + * @dev Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. + * @param bundleId The ID of the bundle to collateralize. + * @param processId The ID of the policy to collateralize. + * @param amount The amount of capital to lock in the bundle. + * + * Requirements: + * - Caller must be the riskpool service. + * - The bundle must belong to the riskpool that controls the product of the policy. + * - The bundle must exist and be in an active state. + * - The capacity of the bundle must be enough to lock the amount of capital. + * - The policy must not have been previously collateralized. + * + * Emits a {LogBundlePolicyCollateralized} event with the bundle ID, policy ID, amount of capital locked, and the remaining capacity of the bundle. + * @notice This function emits 1 events: + * - LogBundlePolicyCollateralized + */ + function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 amount) + external override + onlyRiskpoolService + { + IPolicy.Metadata memory metadata = _policy.getMetadata(processId); + Bundle storage bundle = _bundles[bundleId]; + require(bundle.riskpoolId == _getPoolController().getRiskPoolForProduct(metadata.productId), "ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL"); + require(bundle.createdAt > 0, "ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST"); + require(bundle.state == IBundle.BundleState.Active, "ERROR:BUC-021:BUNDLE_NOT_ACTIVE"); + require(bundle.capital >= bundle.lockedCapital + amount, "ERROR:BUC-022:CAPACITY_TOO_LOW"); + + // might need to be added in a future relase + require(_valueLockedPerPolicy[bundleId][processId] == 0, "ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED"); + + bundle.lockedCapital += amount; + bundle.updatedAt = block.timestamp; + + _activePolicies[bundleId] += 1; + _valueLockedPerPolicy[bundleId][processId] = amount; + + uint256 capacityAmount = bundle.capital - bundle.lockedCapital; + emit LogBundlePolicyCollateralized(bundleId, processId, amount, capacityAmount); + } + + + /** + * @dev Process the premium payment for a given bundle and update its balance. + * @param bundleId The ID of the bundle to process the premium payment for. + * @param processId The ID of the process associated with the policy. + * @param amount The amount of premium to be processed. + * + * Requirements: + * - The caller must be the riskpool service. + * - The bundle must exist and be fundable. + * - The policy associated with the process must not be closed. + * - The bundle must exist. + * + * Effects: + * - Increases the balance of the bundle by the amount processed. + * - Updates the updatedAt timestamp of the bundle. + */ + function processPremium(uint256 bundleId, bytes32 processId, uint256 amount) + external override + onlyRiskpoolService + onlyFundableBundle(bundleId) + { + IPolicy.Policy memory policy = _policy.getPolicy(processId); + require( + policy.state != IPolicy.PolicyState.Closed, + "ERROR:POL-030:POLICY_STATE_INVALID" + ); + + Bundle storage bundle = _bundles[bundleId]; + require(bundle.createdAt > 0, "ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST"); + + bundle.balance += amount; + bundle.updatedAt = block.timestamp; // solhint-disable-line + } + + + /** + * @dev Processes a payout for a policy from a bundle. + * @param bundleId The ID of the bundle. + * @param processId The ID of the policy process. + * @param amount The amount of the payout. + * + * Emits a LogBundlePayoutProcessed event. + * @notice This function emits 1 events: + * - LogBundlePayoutProcessed + */ + function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) + external override + onlyRiskpoolService + { + IPolicy.Policy memory policy = _policy.getPolicy(processId); + require( + policy.state != IPolicy.PolicyState.Closed, + "ERROR:POL-040:POLICY_STATE_INVALID" + ); + + // check there are policies and there is sufficient locked capital for policy + require(_activePolicies[bundleId] > 0, "ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE"); + require(_valueLockedPerPolicy[bundleId][processId] >= amount, "ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY"); + + // make sure bundle exists and is not yet closed + Bundle storage bundle = _bundles[bundleId]; + require(bundle.createdAt > 0, "ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST"); + require( + bundle.state == IBundle.BundleState.Active + || bundle.state == IBundle.BundleState.Locked, + "ERROR:BUC-044:BUNDLE_STATE_INVALID"); + require(bundle.capital >= amount, "ERROR:BUC-045:CAPITAL_TOO_LOW"); + require(bundle.lockedCapital >= amount, "ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW"); + require(bundle.balance >= amount, "ERROR:BUC-047:BALANCE_TOO_LOW"); + + _valueLockedPerPolicy[bundleId][processId] -= amount; + bundle.capital -= amount; + bundle.lockedCapital -= amount; + bundle.balance -= amount; + bundle.updatedAt = block.timestamp; // solhint-disable-line + + emit LogBundlePayoutProcessed(bundleId, processId, amount); + } + + + /** + * @dev Release a policy and update the bundle capital. + * @param bundleId The ID of the bundle. + * @param processId The ID of the process. + * @return remainingCollateralAmount The remaining collateral amount after releasing the policy. + * @notice This function emits 1 events: + * - LogBundlePolicyReleased + */ + function releasePolicy(uint256 bundleId, bytes32 processId) + external override + onlyRiskpoolService + returns(uint256 remainingCollateralAmount) + { + IPolicy.Policy memory policy = _policy.getPolicy(processId); + require( + policy.state == IPolicy.PolicyState.Closed, + "ERROR:POL-050:POLICY_STATE_INVALID" + ); + + // make sure bundle exists and is not yet closed + Bundle storage bundle = _bundles[bundleId]; + require(bundle.createdAt > 0, "ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST"); + require(_activePolicies[bundleId] > 0, "ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE"); + + uint256 lockedForPolicyAmount = _valueLockedPerPolicy[bundleId][processId]; + // this should never ever fail ... + require( + bundle.lockedCapital >= lockedForPolicyAmount, + "PANIC:BUC-053:UNLOCK_CAPITAL_TOO_BIG" + ); + + // policy no longer relevant for bundle + _activePolicies[bundleId] -= 1; + delete _valueLockedPerPolicy[bundleId][processId]; + + // update bundle capital + bundle.lockedCapital -= lockedForPolicyAmount; + bundle.updatedAt = block.timestamp; // solhint-disable-line + + uint256 capacityAmount = bundle.capital - bundle.lockedCapital; + emit LogBundlePolicyReleased(bundleId, processId, lockedForPolicyAmount, capacityAmount); + } + + /** + * @dev Returns the address of the owner of the token associated with the given bundle ID. + * @param bundleId The ID of the bundle. + * @return The address of the owner of the token. + */ + function getOwner(uint256 bundleId) public view returns(address) { + uint256 tokenId = getBundle(bundleId).tokenId; + return _token.ownerOf(tokenId); + } + + /** + * @dev Returns the state of the bundle with the given ID. + * @param bundleId The ID of the bundle to retrieve the state from. + * @return The state of the bundle with the given ID. + */ + function getState(uint256 bundleId) public view returns(BundleState) { + return getBundle(bundleId).state; + } + + /** + * @dev Returns the filter of a given bundle. + * @param bundleId The ID of the bundle to get the filter from. + * @return The filter of the bundle as a bytes array. + */ + function getFilter(uint256 bundleId) public view returns(bytes memory) { + return getBundle(bundleId).filter; + } + + /** + * @dev Returns the available capacity of a bundle. + * @param bundleId The ID of the bundle to get the capacity from. + * @return The available capacity of the bundle. + */ + function getCapacity(uint256 bundleId) public view returns(uint256) { + Bundle memory bundle = getBundle(bundleId); + return bundle.capital - bundle.lockedCapital; + } + + /** + * @dev Returns the total value locked in a particular bundle. + * @param bundleId The ID of the bundle. + * @return lockedCapital The total value locked in the bundle. + */ + function getTotalValueLocked(uint256 bundleId) public view returns(uint256) { + return getBundle(bundleId).lockedCapital; + } + + /** + * @dev Returns the balance of a specific bundle. + * @param bundleId The ID of the bundle to query. + * @return The balance of the specified bundle. + */ + function getBalance(uint256 bundleId) public view returns(uint256) { + return getBundle(bundleId).balance; + } + + /** + * @dev Returns the BundleToken contract instance. + * @return _token The BundleToken contract instance. + */ + function getToken() external view returns(BundleToken) { + return _token; + } + + /** + * @dev Returns the bundle with the specified bundle ID. + * @param bundleId The ID of the bundle to retrieve. + * @return bundle The bundle with the specified ID. + */ + function getBundle(uint256 bundleId) public view returns(Bundle memory) { + Bundle memory bundle = _bundles[bundleId]; + require(bundle.createdAt > 0, "ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST"); + return bundle; + } + + /** + * @dev Returns the number of bundles created. + * @return _bundleCount The number of bundles created. + */ + function bundles() public view returns(uint256) { + return _bundleCount; + } + + /** + * @dev Returns the number of unburnt bundles for a given riskpool ID. + * @param riskpoolId The ID of the riskpool. + * @return The number of unburnt bundles for the given riskpool ID. + */ + function unburntBundles(uint256 riskpoolId) external view returns(uint256) { + return _unburntBundlesForRiskpoolId[riskpoolId]; + } + + /** + * @dev Returns the pool controller contract instance. + * @return _poolController The pool controller contract instance. + */ + function _getPoolController() internal view returns (PoolController _poolController) { + _poolController = PoolController(_getContractAddress("Pool")); + } + + /** + * @dev Changes the state of a bundle. + * @param bundleId The ID of the bundle to change the state of. + * @param newState The new state to set for the bundle. + * @notice This function emits 1 events: + * - LogBundleStateChanged + */ + function _changeState(uint256 bundleId, BundleState newState) internal { + BundleState oldState = getState(bundleId); + + _checkStateTransition(oldState, newState); + _setState(bundleId, newState); + + // log entry for successful state change + emit LogBundleStateChanged(bundleId, oldState, newState); + } + + /** + * @dev Sets the state and updated timestamp of a given bundle. + * @param bundleId The ID of the bundle to update. + * @param newState The new state of the bundle. + */ + function _setState(uint256 bundleId, BundleState newState) internal { + _bundles[bundleId].state = newState; + _bundles[bundleId].updatedAt = block.timestamp; + } + + /** + * @dev Checks if a state transition is valid. + * @param oldState The previous state of the bundle. + * @param newState The new state of the bundle. + * + * Requirements: + * - The oldState must be Active, Locked, Closed, or Burned. + * - The newState must be Locked, Active, Closed, or Burned, depending on the oldState. + * + * Error messages: + * - ERROR:BUC-070:ACTIVE_INVALID_TRANSITION if the oldState is Active and the newState is not Locked or Closed. + * - ERROR:BUC-071:LOCKED_INVALID_TRANSITION if the oldState is Locked and the newState is not Active or Closed. + * - ERROR:BUC-072:CLOSED_INVALID_TRANSITION if the oldState is Closed and the newState is not Burned. + * - ERROR:BUC-073:BURNED_IS_FINAL_STATE if the oldState is Burned. + * - ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED if the oldState is not Active, Locked, Closed, or Burned. + */ + function _checkStateTransition(BundleState oldState, BundleState newState) + internal + pure + { + if (oldState == BundleState.Active) { + require( + newState == BundleState.Locked || newState == BundleState.Closed, + "ERROR:BUC-070:ACTIVE_INVALID_TRANSITION" + ); + } else if (oldState == BundleState.Locked) { + require( + newState == BundleState.Active || newState == BundleState.Closed, + "ERROR:BUC-071:LOCKED_INVALID_TRANSITION" + ); + } else if (oldState == BundleState.Closed) { + require( + newState == BundleState.Burned, + "ERROR:BUC-072:CLOSED_INVALID_TRANSITION" + ); + } else if (oldState == BundleState.Burned) { + revert("ERROR:BUC-073:BURNED_IS_FINAL_STATE"); + } else { + revert("ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED"); + } + } +} diff --git a/contracts-christoph2806/modules/ComponentController.sol b/contracts-christoph2806/modules/ComponentController.sol new file mode 100644 index 00000000..639ab783 --- /dev/null +++ b/contracts-christoph2806/modules/ComponentController.sol @@ -0,0 +1,501 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../shared/CoreController.sol"; +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/components/IOracle.sol"; +import "@etherisc/gif-interface/contracts/components/IProduct.sol"; +import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; +import "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol"; +import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; + +contract ComponentController is + IComponentEvents, + CoreController + { + using EnumerableSet for EnumerableSet.UintSet; + + mapping(uint256 => IComponent) private _componentById; + mapping(bytes32 => uint256) private _componentIdByName; + mapping(address => uint256) private _componentIdByAddress; + + mapping(uint256 => IComponent.ComponentState) private _componentState; + + EnumerableSet.UintSet private _products; + EnumerableSet.UintSet private _oracles; + EnumerableSet.UintSet private _riskpools; + uint256 private _componentCount; + + mapping(uint256 /* product id */ => address /* policy flow address */) private _policyFlowByProductId; + + modifier onlyComponentOwnerService() { + require( + _msgSender() == _getContractAddress("ComponentOwnerService"), + "ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE"); + _; + } + + modifier onlyInstanceOperatorService() { + require( + _msgSender() == _getContractAddress("InstanceOperatorService"), + "ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE"); + _; + } + + /** + * @dev Proposes a new component to the system. + * @param component The component to be proposed. + * + * Emits a LogComponentProposed event with the name, type, address and id of the proposed component. + * Calls the proposalCallback function of the proposed component to inform it about the successful proposal. + * + * Requirements: + * - The caller must be the owner service of the component. + * - The component must not already exist in the system. + * - The component name must not already exist in the system. + * @notice This function emits 1 events: + * - LogComponentProposed + */ + function propose(IComponent component) + external + onlyComponentOwnerService + { + // input validation + require(_componentIdByAddress[address(component)] == 0, "ERROR:CCR-003:COMPONENT_ALREADY_EXISTS"); + require(_componentIdByName[component.getName()] == 0, "ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS"); + + // assigning id and persisting component + uint256 id = _persistComponent(component); + + // log entry for successful proposal + emit LogComponentProposed( + component.getName(), + component.getType(), + address(component), + id); + + // inform component about successful proposal + component.proposalCallback(); + } + + /** + * @dev Persists a new component into the system. + * @param component The component to be persisted. + * @return id The id of the newly persisted component. + * + * - Fetches the next component id. + * - Updates component state to Proposed. + * - Sets the id of the component. + * - Updates controller book keeping with the new component id. + * - Updates type specific book keeping. + */ + function _persistComponent(IComponent component) + internal + returns(uint256 id) + { + // fetch next component id + _componentCount++; + id = _componentCount; + + // update component state + _changeState(id, IComponent.ComponentState.Proposed); + component.setId(id); + + // update controller book keeping + _componentById[id] = component; + _componentIdByName[component.getName()] = id; + _componentIdByAddress[address(component)] = id; + + // type specific book keeping + if (component.isProduct()) { EnumerableSet.add(_products, id); } + else if (component.isOracle()) { EnumerableSet.add(_oracles, id); } + else if (component.isRiskpool()) { EnumerableSet.add(_riskpools, id); } + } + + /** + * @dev Checks if a component with the given ID exists. + * @param id The ID of the component to check. + * @return True if a component with the given ID exists, false otherwise. + */ + function exists(uint256 id) public view returns(bool) { + IComponent component = _componentById[id]; + return (address(component) != address(0)); + } + + /** + * @dev Approves a component with the given id. + * @param id The id of the component to be approved. + * + * Emits a LogComponentApproved event and informs the component about the successful approval by calling the approvalCallback function. + * If the component is a product, sets the policy flow in the _policyFlowByProductId mapping. + * @notice This function emits 1 events: + * - LogComponentApproved + */ + function approve(uint256 id) + external + onlyInstanceOperatorService + { + _changeState(id, IComponent.ComponentState.Active); + IComponent component = getComponent(id); + + if (isProduct(id)) { + _policyFlowByProductId[id] = IProduct(address(component)).getPolicyFlow(); + } + + emit LogComponentApproved(id); + + // inform component about successful approval + component.approvalCallback(); + } + + /** + * @dev Changes the state of a component with the given ID to "Declined" and emits a LogComponentDeclined event. + * Calls the declineCallback function of the component with the given ID. + * + * @param id The ID of the component to decline. + * @notice This function emits 1 events: + * - LogComponentDeclined + */ + function decline(uint256 id) + external + onlyInstanceOperatorService + { + _changeState(id, IComponent.ComponentState.Declined); + emit LogComponentDeclined(id); + + // inform component about decline + IComponent component = getComponent(id); + component.declineCallback(); + } + + /** + * @dev Suspends a component with the given ID. + * + * @param id The ID of the component to suspend. + * + * @notice This function emits 1 events: + * - LogComponentSuspended + */ + function suspend(uint256 id) + external + onlyInstanceOperatorService + { + _changeState(id, IComponent.ComponentState.Suspended); + emit LogComponentSuspended(id); + + // inform component about suspending + IComponent component = getComponent(id); + component.suspendCallback(); + } + + /** + * @dev Resumes a component by changing its state to Active and emitting an event. + * It also calls the resumeCallback() function of the component to inform it about the resuming. + * + * @param id The ID of the component to be resumed. + * @notice This function emits 1 events: + * - LogComponentResumed + */ + function resume(uint256 id) + external + onlyInstanceOperatorService + { + _changeState(id, IComponent.ComponentState.Active); + emit LogComponentResumed(id); + + // inform component about resuming + IComponent component = getComponent(id); + component.resumeCallback(); + } + + /** + * @dev Pauses the component with the given ID. + * @param id The ID of the component to be paused. + * @notice This function emits 1 events: + * - LogComponentPaused + */ + function pause(uint256 id) + external + onlyComponentOwnerService + { + _changeState(id, IComponent.ComponentState.Paused); + emit LogComponentPaused(id); + + // inform component about pausing + IComponent component = getComponent(id); + component.pauseCallback(); + } + + /** + * @dev Unpauses a component with the given id. + * + * @param id The id of the component to unpause. + * + * @notice This function emits 1 events: + * - LogComponentUnpaused + */ + function unpause(uint256 id) + external + onlyComponentOwnerService + { + _changeState(id, IComponent.ComponentState.Active); + emit LogComponentUnpaused(id); + + // inform component about unpausing + IComponent component = getComponent(id); + component.unpauseCallback(); + } + + /** + * @dev Archives a component with the given ID, changing its state to "Archived" and emitting a LogComponentArchived event. + * Also calls the archiveCallback function of the component with the given ID, informing it about the archiving. + * + * @param id The ID of the component to be archived. + * @notice This function emits 1 events: + * - LogComponentArchived + */ + function archiveFromComponentOwner(uint256 id) + external + onlyComponentOwnerService + { + _changeState(id, IComponent.ComponentState.Archived); + emit LogComponentArchived(id); + + // inform component about archiving + IComponent component = getComponent(id); + component.archiveCallback(); + } + + /** + * @dev Archives a component instance with the given ID. + * @param id The ID of the component instance to be archived. + * + * @notice This function emits 1 events: + * - LogComponentArchived + */ + function archiveFromInstanceOperator(uint256 id) + external + onlyInstanceOperatorService + { + _changeState(id, IComponent.ComponentState.Archived); + emit LogComponentArchived(id); + + // inform component about archiving + IComponent component = getComponent(id); + component.archiveCallback(); + } + + /** + * @dev Returns the component with the given ID. + * @param id The ID of the component to retrieve. + * @return component The component with the given ID. + */ + function getComponent(uint256 id) public view returns (IComponent component) { + component = _componentById[id]; + require(address(component) != address(0), "ERROR:CCR-005:INVALID_COMPONENT_ID"); + } + + /** + * @dev Returns the ID of a registered component given its address. + * @param componentAddress The address of the component. + * @return id The ID of the component. + */ + function getComponentId(address componentAddress) public view returns (uint256 id) { + require(componentAddress != address(0), "ERROR:CCR-006:COMPONENT_ADDRESS_ZERO"); + id = _componentIdByAddress[componentAddress]; + + require(id > 0, "ERROR:CCR-007:COMPONENT_UNKNOWN"); + } + + /** + * @dev Returns the component type of a given component ID. + * @param id The ID of the component. + * @return componentType The type of the component (Product, Oracle or Riskpool). + * @notice If the component ID is not found, reverts with an error message. + */ + function getComponentType(uint256 id) public view returns (IComponent.ComponentType componentType) { + if (EnumerableSet.contains(_products, id)) { + return IComponent.ComponentType.Product; + } else if (EnumerableSet.contains(_oracles, id)) { + return IComponent.ComponentType.Oracle; + } else if (EnumerableSet.contains(_riskpools, id)) { + return IComponent.ComponentType.Riskpool; + } else { + revert("ERROR:CCR-008:INVALID_COMPONENT_ID"); + } + } + + /** + * @dev Returns the state of the component with the given ID. + * @param id The ID of the component. + * @return componentState The state of the component. + */ + function getComponentState(uint256 id) public view returns (IComponent.ComponentState componentState) { + return _componentState[id]; + } + + /** + * @dev Returns the oracle ID at the given index. + * @param idx The index of the oracle ID to retrieve. + * @return oracleId The oracle ID at the given index. + */ + function getOracleId(uint256 idx) public view returns (uint256 oracleId) { + return EnumerableSet.at(_oracles, idx); + } + + /** + * @dev Returns the riskpool ID at the specified index. + * @param idx The index of the riskpool ID to retrieve. + * @return riskpoolId The ID of the riskpool at the specified index. + */ + function getRiskpoolId(uint256 idx) public view returns (uint256 riskpoolId) { + return EnumerableSet.at(_riskpools, idx); + } + + /** + * @dev Returns the product ID at the given index in the _products set. + * @param idx The index of the product ID to retrieve. + * @return productId The product ID at the given index. + */ + function getProductId(uint256 idx) public view returns (uint256 productId) { + return EnumerableSet.at(_products, idx); + } + + /** + * @dev Returns the required role for a given component type. + * @param componentType The type of component for which to retrieve the required role. + * @return The required role as a bytes32 value. + * + * Requirements: + * - The component type must be a valid value from the IComponent.ComponentType enum. + * - If the component type is not recognized, the function reverts with an error message. + */ + function getRequiredRole(IComponent.ComponentType componentType) external view returns (bytes32) { + if (componentType == IComponent.ComponentType.Product) { return _access.getProductOwnerRole(); } + else if (componentType == IComponent.ComponentType.Oracle) { return _access.getOracleProviderRole(); } + else if (componentType == IComponent.ComponentType.Riskpool) { return _access.getRiskpoolKeeperRole(); } + else { revert("ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN"); } + } + + /** + * @dev Returns the number of components currently stored in the contract. + * @return count The number of components stored. + */ + function components() public view returns (uint256 count) { return _componentCount; } + /** + * @dev Returns the number of products in the set '_products'. + * @return count The number of products in the set '_products'. + */ + function products() public view returns (uint256 count) { return EnumerableSet.length(_products); } + /** + * @dev Returns the number of oracles registered in the _oracles set. + * @return count The number of oracles registered in the _oracles set. + */ + function oracles() public view returns (uint256 count) { return EnumerableSet.length(_oracles); } + /** + * @dev Returns the number of risk pools in the EnumerableSet. + * @return count The number of risk pools in the EnumerableSet. + */ + function riskpools() public view returns (uint256 count) { return EnumerableSet.length(_riskpools); } + + /** + * @dev Check if a product exists in the set of products. + * @param id The ID of the product to check. + * @return Returns true if the product exists in the set, false otherwise. + */ + function isProduct(uint256 id) public view returns (bool) { return EnumerableSet.contains(_products, id); } + + /** + * @dev Checks if an oracle with a given ID exists. + * @param id The ID of the oracle to check. + * @return A boolean indicating whether the oracle exists or not. + */ + function isOracle(uint256 id) public view returns (bool) { return EnumerableSet.contains(_oracles, id); } + + /** + * @dev Checks if a given ID is a riskpool. + * @param id The ID to check. + * @return A boolean value indicating if the given ID is a riskpool. + */ + function isRiskpool(uint256 id) public view returns (bool) { return EnumerableSet.contains(_riskpools, id); } + + /** + * @dev Returns the address of the policy flow for a given product ID. + * @param productId The ID of the product to retrieve the policy flow for. + * @return _policyFlow The address of the policy flow for the given product ID. + */ + function getPolicyFlow(uint256 productId) public view returns (address _policyFlow) { + require(isProduct(productId), "ERROR:CCR-011:UNKNOWN_PRODUCT_ID"); + _policyFlow = _policyFlowByProductId[productId]; + } + + /** + * @dev Changes the state of a component. + * @param componentId The ID of the component to change the state of. + * @param newState The new state to set for the component. + * + * Emits a LogComponentStateChanged event upon successful state change. + * @notice This function emits 1 events: + * - LogComponentStateChanged + */ + function _changeState(uint256 componentId, IComponent.ComponentState newState) internal { + IComponent.ComponentState oldState = _componentState[componentId]; + + _checkStateTransition(oldState, newState); + _componentState[componentId] = newState; + + // log entry for successful component state change + emit LogComponentStateChanged(componentId, oldState, newState); + } + + /** + * @dev Checks if the state transition is valid. + * @param oldState The current state of the component. + * @param newState The state to which the component will transition. + * + * + * @dev Throws an error if the newState is the same as the oldState. + * @dev Throws an error if the transition from Created state is not to Proposed state. + * @dev Throws an error if the transition from Proposed state is not to Active or Declined state. + * @dev Throws an error if the transition from Declined state is attempted. + * @dev Throws an error if the transition from Active state is not to Paused or Suspended state. + * @dev Throws an error if the transition from Paused state is not to Active or Archived state. + * @dev Throws an error if the transition from Suspended state is not to Active or Archived state. + * @dev Throws an error if the initial state is not handled. + */ + function _checkStateTransition( + IComponent.ComponentState oldState, + IComponent.ComponentState newState + ) + internal + pure + { + require(newState != oldState, + "ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL"); + + if (oldState == IComponent.ComponentState.Created) { + require(newState == IComponent.ComponentState.Proposed, + "ERROR:CCR-021:CREATED_INVALID_TRANSITION"); + } else if (oldState == IComponent.ComponentState.Proposed) { + require(newState == IComponent.ComponentState.Active + || newState == IComponent.ComponentState.Declined, + "ERROR:CCR-22:PROPOSED_INVALID_TRANSITION"); + } else if (oldState == IComponent.ComponentState.Declined) { + revert("ERROR:CCR-023:DECLINED_IS_FINAL_STATE"); + } else if (oldState == IComponent.ComponentState.Active) { + require(newState == IComponent.ComponentState.Paused + || newState == IComponent.ComponentState.Suspended, + "ERROR:CCR-024:ACTIVE_INVALID_TRANSITION"); + } else if (oldState == IComponent.ComponentState.Paused) { + require(newState == IComponent.ComponentState.Active + || newState == IComponent.ComponentState.Archived, + "ERROR:CCR-025:PAUSED_INVALID_TRANSITION"); + } else if (oldState == IComponent.ComponentState.Suspended) { + require(newState == IComponent.ComponentState.Active + || newState == IComponent.ComponentState.Archived, + "ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION"); + } else { + revert("ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED"); + } + } +} diff --git a/contracts-christoph2806/modules/LicenseController.sol b/contracts-christoph2806/modules/LicenseController.sol new file mode 100644 index 00000000..8e81d495 --- /dev/null +++ b/contracts-christoph2806/modules/LicenseController.sol @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "./ComponentController.sol"; +import "../shared/CoreController.sol"; + +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/components/IProduct.sol"; +import "@etherisc/gif-interface/contracts/modules/ILicense.sol"; + + +contract LicenseController is + ILicense, + CoreController +{ + + ComponentController private _component; + + /** + * @dev This function is called after the contract is initialized and sets the `_component` variable to the address of the `ComponentController` contract. + * + */ + function _afterInitialize() internal override onlyInitializing { + _component = ComponentController(_getContractAddress("Component")); + } + + // ensures that calling component (productAddress) is a product + /** + * @dev Returns the authorization status of a given product address. + * @param productAddress The address of the product to check authorization status for. + * @return productId The ID of the product. + * @return isAuthorized A boolean indicating whether the product is authorized or not. + * @return policyFlow The address of the policy flow associated with the product. + */ + function getAuthorizationStatus(address productAddress) + public override + view + returns (uint256 productId, bool isAuthorized, address policyFlow) + { + productId = _component.getComponentId(productAddress); + isAuthorized = _isValidCall(productId); + policyFlow = _component.getPolicyFlow(productId); + } + + /** + * @dev Checks if a product is currently active. + * @param productId The ID of the product to check. + * @return A boolean indicating if the product is active or not. + */ + function _isValidCall(uint256 productId) internal view returns (bool) { + return _component.getComponentState(productId) == IComponent.ComponentState.Active; + } + + /** + * @dev Returns the product associated with the given ID. + * @param id The ID of the product to retrieve. + * @return product The product associated with the given ID. + */ + function _getProduct(uint256 id) internal view returns (IProduct product) { + require(_component.isProduct(id), "ERROR:LIC-001:COMPONENT_NOT_PRODUCT"); + IComponent cmp = _component.getComponent(id); + product = IProduct(address(cmp)); + } +} diff --git a/contracts-christoph2806/modules/PolicyController.sol b/contracts-christoph2806/modules/PolicyController.sol new file mode 100644 index 00000000..43ef1707 --- /dev/null +++ b/contracts-christoph2806/modules/PolicyController.sol @@ -0,0 +1,814 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../shared/CoreController.sol"; +import "./ComponentController.sol"; +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; + +contract PolicyController is + IPolicy, + CoreController +{ + // bytes32 public constant NAME = "PolicyController"; + + // Metadata + mapping(bytes32 /* processId */ => Metadata) public metadata; + + // Applications + mapping(bytes32 /* processId */ => Application) public applications; + + // Policies + mapping(bytes32 /* processId */ => Policy) public policies; + + // Claims + mapping(bytes32 /* processId */ => mapping(uint256 /* claimId */ => Claim)) public claims; + + // Payouts + mapping(bytes32 /* processId */ => mapping(uint256 /* payoutId */ => Payout)) public payouts; + mapping(bytes32 /* processId */ => uint256) public payoutCount; + + // counter for assigned processIds, used to ensure unique processIds + uint256 private _assigendProcessIds; + + ComponentController private _component; + + /** + * @dev Internal function that sets the _component variable to the address of the ComponentController contract. + * + */ + function _afterInitialize() internal override onlyInitializing { + _component = ComponentController(_getContractAddress("Component")); + } + + /* Metadata */ + /** + * @dev Creates a new policy flow for a given owner and product. + * @param owner The address of the owner of the policy flow. + * @param productId The ID of the product associated with the policy flow. + * @param data Additional data associated with the policy flow. + * @return processId The ID of the newly created policy flow. + * @notice This function emits 1 events: + * - LogMetadataCreated + */ + function createPolicyFlow( + address owner, + uint256 productId, + bytes calldata data + ) + external override + onlyPolicyFlow("Policy") + returns(bytes32 processId) + { + require(owner != address(0), "ERROR:POL-001:INVALID_OWNER"); + + require(_component.isProduct(productId), "ERROR:POL-002:INVALID_PRODUCT"); + require(_component.getComponentState(productId) == IComponent.ComponentState.Active, "ERROR:POL-003:PRODUCT_NOT_ACTIVE"); + + processId = _generateNextProcessId(); + Metadata storage meta = metadata[processId]; + require(meta.createdAt == 0, "ERROR:POC-004:METADATA_ALREADY_EXISTS"); + + meta.owner = owner; + meta.productId = productId; + meta.state = PolicyFlowState.Started; + meta.data = data; + meta.createdAt = block.timestamp; // solhint-disable-line + meta.updatedAt = block.timestamp; // solhint-disable-line + + emit LogMetadataCreated(owner, processId, productId, PolicyFlowState.Started); + } + + /* Application */ + /** + * @dev Creates a new insurance application for a given process ID. + * @param processId The unique process ID associated with the insurance application. + * @param premiumAmount The amount of premium to be paid for the insurance. + * @param sumInsuredAmount The amount of coverage provided by the insurance. + * @param data Additional data associated with the insurance application. + * + * Emits a LogApplicationCreated event with the process ID, premium amount, and sum insured amount. + * + * Requirements: + * - The metadata for the process ID must exist. + * - An application for the process ID must not already exist. + * - The premium amount must be greater than zero. + * - The sum insured amount must be greater than the premium amount. + * - Only the PolicyFlow contract can call this function. + * @notice This function emits 2 events: + * - LogApplicationCreated + * - LogMetadataStateChanged + */ + function createApplication( + bytes32 processId, + uint256 premiumAmount, + uint256 sumInsuredAmount, + bytes calldata data + ) + external override + onlyPolicyFlow("Policy") + { + Metadata storage meta = metadata[processId]; + require(meta.createdAt > 0, "ERROR:POC-010:METADATA_DOES_NOT_EXIST"); + + Application storage application = applications[processId]; + require(application.createdAt == 0, "ERROR:POC-011:APPLICATION_ALREADY_EXISTS"); + + require(premiumAmount > 0, "ERROR:POC-012:PREMIUM_AMOUNT_ZERO"); + require(sumInsuredAmount > premiumAmount, "ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL"); + + application.state = ApplicationState.Applied; + application.premiumAmount = premiumAmount; + application.sumInsuredAmount = sumInsuredAmount; + application.data = data; + application.createdAt = block.timestamp; // solhint-disable-line + application.updatedAt = block.timestamp; // solhint-disable-line + + meta.state = PolicyFlowState.Active; + meta.updatedAt = block.timestamp; // solhint-disable-line + emit LogMetadataStateChanged(processId, meta.state); + + emit LogApplicationCreated(processId, premiumAmount, sumInsuredAmount); + } + + /** + * @dev Collects premium for a policy. + * @param processId The unique identifier of the policy. + * @param amount The amount of premium to be collected. + * + * Requirements: + * - The policy must exist. + * - The amount to be collected must not exceed the expected premium amount. + * + * Emits a {LogPremiumCollected} event. + * @notice This function emits 1 events: + * - LogPremiumCollected + */ + function collectPremium(bytes32 processId, uint256 amount) + external override + { + Policy storage policy = policies[processId]; + require(policy.createdAt > 0, "ERROR:POC-110:POLICY_DOES_NOT_EXIST"); + require(policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, "ERROR:POC-111:AMOUNT_TOO_BIG"); + + policy.premiumPaidAmount += amount; + policy.updatedAt = block.timestamp; // solhint-disable-line + + emit LogPremiumCollected(processId, amount); + } + + /** + * @dev Revokes an application with the given process ID. + * @param processId The process ID of the application to be revoked. + * @notice This function emits 2 events: + * - LogApplicationRevoked + * - LogMetadataStateChanged + */ + function revokeApplication(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { + Metadata storage meta = metadata[processId]; + require(meta.createdAt > 0, "ERROR:POC-014:METADATA_DOES_NOT_EXIST"); + + Application storage application = applications[processId]; + require(application.createdAt > 0, "ERROR:POC-015:APPLICATION_DOES_NOT_EXIST"); + require(application.state == ApplicationState.Applied, "ERROR:POC-016:APPLICATION_STATE_INVALID"); + + application.state = ApplicationState.Revoked; + application.updatedAt = block.timestamp; // solhint-disable-line + + meta.state = PolicyFlowState.Finished; + meta.updatedAt = block.timestamp; // solhint-disable-line + emit LogMetadataStateChanged(processId, meta.state); + + emit LogApplicationRevoked(processId); + } + + /** + * @dev Changes the state of an application to underwritten. + * @param processId The unique ID of the application process. + * + * Emits a LogApplicationUnderwritten event. + * @notice This function emits 1 events: + * - LogApplicationUnderwritten + */ + function underwriteApplication(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { + Application storage application = applications[processId]; + require(application.createdAt > 0, "ERROR:POC-017:APPLICATION_DOES_NOT_EXIST"); + require(application.state == ApplicationState.Applied, "ERROR:POC-018:APPLICATION_STATE_INVALID"); + + application.state = ApplicationState.Underwritten; + application.updatedAt = block.timestamp; // solhint-disable-line + + emit LogApplicationUnderwritten(processId); + } + + /** + * @dev Declines an application for a policy flow. + * @param processId The unique identifier of the policy flow process. + * + * + * Emits a LogMetadataStateChanged event with the updated metadata state. + * Emits a LogApplicationDeclined event with the declined application's process ID. + * + * Requirements: + * - The function can only be called by a "Policy" policy flow. + * - The metadata for the given process ID must exist. + * - The application for the given process ID must exist and be in the "Applied" state. + * + * Effects: + * - Updates the state of the application to "Declined". + * - Updates the state of the metadata to "Finished". + * - Updates the updatedAt timestamps for both the application and metadata. + * @notice This function emits 2 events: + * - LogApplicationDeclined + * - LogMetadataStateChanged + */ + function declineApplication(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { + Metadata storage meta = metadata[processId]; + require(meta.createdAt > 0, "ERROR:POC-019:METADATA_DOES_NOT_EXIST"); + + Application storage application = applications[processId]; + require(application.createdAt > 0, "ERROR:POC-020:APPLICATION_DOES_NOT_EXIST"); + require(application.state == ApplicationState.Applied, "ERROR:POC-021:APPLICATION_STATE_INVALID"); + + application.state = ApplicationState.Declined; + application.updatedAt = block.timestamp; // solhint-disable-line + + meta.state = PolicyFlowState.Finished; + meta.updatedAt = block.timestamp; // solhint-disable-line + emit LogMetadataStateChanged(processId, meta.state); + + emit LogApplicationDeclined(processId); + } + + /* Policy */ + /** + * @dev Creates a new policy for a given application process ID. + * @param processId The ID of the application process. + * + * + * Emits a `LogPolicyCreated` event. + * + * Requirements: + * - The caller must have the 'Policy' role. + * - The application must exist and be in the 'Underwritten' state. + * - The policy must not already exist for the given process ID. + * @notice This function emits 1 events: + * - LogPolicyCreated + */ + function createPolicy(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { + Application memory application = applications[processId]; + require(application.createdAt > 0 && application.state == ApplicationState.Underwritten, "ERROR:POC-022:APPLICATION_ACCESS_INVALID"); + + Policy storage policy = policies[processId]; + require(policy.createdAt == 0, "ERROR:POC-023:POLICY_ALREADY_EXISTS"); + + policy.state = PolicyState.Active; + policy.premiumExpectedAmount = application.premiumAmount; + policy.payoutMaxAmount = application.sumInsuredAmount; + policy.createdAt = block.timestamp; // solhint-disable-line + policy.updatedAt = block.timestamp; // solhint-disable-line + + emit LogPolicyCreated(processId); + } + + /** + * @dev This function adjusts the premium and sum insured amount of an insurance policy application. + * @param processId The unique identifier of the insurance policy application. + * @param expectedPremiumAmount The expected premium amount for the insurance policy. + * @param sumInsuredAmount The sum insured amount for the insurance policy. + * + * @notice This function emits 3 events: + * - LogApplicationPremiumAdjusted + * - LogPolicyPremiumAdjusted + * - LogApplicationSumInsuredAdjusted + */ + function adjustPremiumSumInsured( + bytes32 processId, + uint256 expectedPremiumAmount, + uint256 sumInsuredAmount + ) + external override + onlyPolicyFlow("Policy") + { + Application storage application = applications[processId]; + require( + application.createdAt > 0 + && application.state == ApplicationState.Underwritten, + "ERROR:POC-024:APPLICATION_ACCESS_INVALID"); + + require( + sumInsuredAmount <= application.sumInsuredAmount, + "ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID"); + + Policy storage policy = policies[processId]; + require( + policy.createdAt > 0 + && policy.state == IPolicy.PolicyState.Active, + "ERROR:POC-027:POLICY_ACCESS_INVALID"); + + require( + expectedPremiumAmount > 0 + && expectedPremiumAmount >= policy.premiumPaidAmount + && expectedPremiumAmount < sumInsuredAmount, + "ERROR:POC-025:APPLICATION_PREMIUM_INVALID"); + + if (sumInsuredAmount != application.sumInsuredAmount) { + emit LogApplicationSumInsuredAdjusted(processId, application.sumInsuredAmount, sumInsuredAmount); + application.sumInsuredAmount = sumInsuredAmount; + application.updatedAt = block.timestamp; // solhint-disable-line + + policy.payoutMaxAmount = sumInsuredAmount; + policy.updatedAt = block.timestamp; // solhint-disable-line + } + + if (expectedPremiumAmount != application.premiumAmount) { + emit LogApplicationPremiumAdjusted(processId, application.premiumAmount, expectedPremiumAmount); + application.premiumAmount = expectedPremiumAmount; + application.updatedAt = block.timestamp; // solhint-disable-line + + emit LogPolicyPremiumAdjusted(processId, policy.premiumExpectedAmount, expectedPremiumAmount); + policy.premiumExpectedAmount = expectedPremiumAmount; + policy.updatedAt = block.timestamp; // solhint-disable-line + } + } + + /** + * @dev This function expires a policy with the given process ID. + * + * @param processId The process ID of the policy to be expired. + * + * @notice This function emits 1 events: + * - LogPolicyExpired + */ + function expirePolicy(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { + Policy storage policy = policies[processId]; + require(policy.createdAt > 0, "ERROR:POC-028:POLICY_DOES_NOT_EXIST"); + require(policy.state == PolicyState.Active, "ERROR:POC-029:APPLICATION_STATE_INVALID"); + + policy.state = PolicyState.Expired; + policy.updatedAt = block.timestamp; // solhint-disable-line + + emit LogPolicyExpired(processId); + } + + /** + * @dev Closes a policy that has expired and has no open claims. + * @param processId The unique identifier of the policy. + * + * + * Emits a LogMetadataStateChanged event with the updated metadata state. + * Emits a LogPolicyClosed event with the unique identifier of the closed policy. + * + * Requirements: + * - The metadata for the given processId must exist. + * - The policy for the given processId must exist. + * - The state of the policy must be 'Expired'. + * - The policy must have no open claims. + * @notice This function emits 2 events: + * - LogMetadataStateChanged + * - LogPolicyClosed + */ + function closePolicy(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { + Metadata storage meta = metadata[processId]; + require(meta.createdAt > 0, "ERROR:POC-030:METADATA_DOES_NOT_EXIST"); + + Policy storage policy = policies[processId]; + require(policy.createdAt > 0, "ERROR:POC-031:POLICY_DOES_NOT_EXIST"); + require(policy.state == PolicyState.Expired, "ERROR:POC-032:POLICY_STATE_INVALID"); + require(policy.openClaimsCount == 0, "ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS"); + + policy.state = PolicyState.Closed; + policy.updatedAt = block.timestamp; // solhint-disable-line + + meta.state = PolicyFlowState.Finished; + meta.updatedAt = block.timestamp; // solhint-disable-line + emit LogMetadataStateChanged(processId, meta.state); + + emit LogPolicyClosed(processId); + } + + /* Claim */ + /** + * @dev Creates a new claim for a given policy. + * @param processId The ID of the policy. + * @param claimAmount The amount of the claim. + * @param data Additional data related to the claim. + * @return claimId The ID of the newly created claim. + * + * Emits a LogClaimCreated event. + * + * Requirements: + * - The caller must be authorized to create claims for the policy. + * - The policy must exist and be in an active state. + * - The sum of the payout amount and the claim amount must not exceed the maximum payout amount. + * - The claim must not already exist. + * + * Note: The function allows claims with amount 0 to be created, which can be useful for parametric insurance. + * @notice This function emits 1 events: + * - LogClaimCreated + */ + function createClaim( + bytes32 processId, + uint256 claimAmount, + bytes calldata data + ) + external override + onlyPolicyFlow("Policy") + returns (uint256 claimId) + { + Policy storage policy = policies[processId]; + require(policy.createdAt > 0, "ERROR:POC-040:POLICY_DOES_NOT_EXIST"); + require(policy.state == IPolicy.PolicyState.Active, "ERROR:POC-041:POLICY_NOT_ACTIVE"); + // no validation of claimAmount > 0 here to explicitly allow claims with amount 0. This can be useful for parametric insurance + // to have proof that the claim calculation was executed without entitlement to payment. + require(policy.payoutAmount + claimAmount <= policy.payoutMaxAmount, "ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT"); + + claimId = policy.claimsCount; + Claim storage claim = claims[processId][claimId]; + require(claim.createdAt == 0, "ERROR:POC-043:CLAIM_ALREADY_EXISTS"); + + claim.state = ClaimState.Applied; + claim.claimAmount = claimAmount; + claim.data = data; + claim.createdAt = block.timestamp; // solhint-disable-line + claim.updatedAt = block.timestamp; // solhint-disable-line + + policy.claimsCount++; + policy.openClaimsCount++; + policy.updatedAt = block.timestamp; // solhint-disable-line + + emit LogClaimCreated(processId, claimId, claimAmount); + } + + /** + * @dev Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. + * @param processId The ID of the policy the claim belongs to. + * @param claimId The ID of the claim to confirm. + * @param confirmedAmount The amount to confirm for the claim. + * + * Requirements: + * - Only the Policy contract can call this function. + * - The policy must exist. + * - The policy must have at least one open claim. + * - The sum of the policy's payout amount and the confirmed amount must not exceed the policy's maximum payout amount. + * - The claim must exist. + * - The claim state must be Applied. + * + * Emits a LogClaimConfirmed event with the process ID, claim ID, and confirmed amount. + * @notice This function emits 1 events: + * - LogClaimConfirmed + */ + function confirmClaim( + bytes32 processId, + uint256 claimId, + uint256 confirmedAmount + ) + external override + onlyPolicyFlow("Policy") + { + Policy storage policy = policies[processId]; + require(policy.createdAt > 0, "ERROR:POC-050:POLICY_DOES_NOT_EXIST"); + require(policy.openClaimsCount > 0, "ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS"); + // no validation of claimAmount > 0 here as is it possible to have claims with amount 0 (see createClaim()). + require(policy.payoutAmount + confirmedAmount <= policy.payoutMaxAmount, "ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED"); + + Claim storage claim = claims[processId][claimId]; + require(claim.createdAt > 0, "ERROR:POC-053:CLAIM_DOES_NOT_EXIST"); + require(claim.state == ClaimState.Applied, "ERROR:POC-054:CLAIM_STATE_INVALID"); + + claim.state = ClaimState.Confirmed; + claim.claimAmount = confirmedAmount; + claim.updatedAt = block.timestamp; // solhint-disable-line + + policy.payoutAmount += confirmedAmount; + policy.updatedAt = block.timestamp; // solhint-disable-line + + emit LogClaimConfirmed(processId, claimId, confirmedAmount); + } + + /** + * @dev This function allows the Policy contract to decline a claim. + * @param processId The ID of the process to which the policy belongs. + * @param claimId The ID of the claim to be declined. + * + * Emits a LogClaimDeclined event. + * @notice This function emits 1 events: + * - LogClaimDeclined + */ + function declineClaim(bytes32 processId, uint256 claimId) + external override + onlyPolicyFlow("Policy") + { + Policy storage policy = policies[processId]; + require(policy.createdAt > 0, "ERROR:POC-060:POLICY_DOES_NOT_EXIST"); + require(policy.openClaimsCount > 0, "ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS"); + + Claim storage claim = claims[processId][claimId]; + require(claim.createdAt > 0, "ERROR:POC-062:CLAIM_DOES_NOT_EXIST"); + require(claim.state == ClaimState.Applied, "ERROR:POC-063:CLAIM_STATE_INVALID"); + + claim.state = ClaimState.Declined; + claim.updatedAt = block.timestamp; // solhint-disable-line + + policy.updatedAt = block.timestamp; // solhint-disable-line + + emit LogClaimDeclined(processId, claimId); + } + + /** + * @dev Closes a claim for a given policy. + * @param processId The ID of the policy process. + * @param claimId The ID of the claim to be closed. + * + * @notice This function emits 1 events: + * - LogClaimClosed + */ + function closeClaim(bytes32 processId, uint256 claimId) + external override + onlyPolicyFlow("Policy") + { + Policy storage policy = policies[processId]; + require(policy.createdAt > 0, "ERROR:POC-070:POLICY_DOES_NOT_EXIST"); + require(policy.openClaimsCount > 0, "ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS"); + + Claim storage claim = claims[processId][claimId]; + require(claim.createdAt > 0, "ERROR:POC-072:CLAIM_DOES_NOT_EXIST"); + require( + claim.state == ClaimState.Confirmed + || claim.state == ClaimState.Declined, + "ERROR:POC-073:CLAIM_STATE_INVALID"); + + require( + (claim.state == ClaimState.Confirmed && claim.claimAmount == claim.paidAmount) + || (claim.state == ClaimState.Declined), + "ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS" + ); + + claim.state = ClaimState.Closed; + claim.updatedAt = block.timestamp; // solhint-disable-line + + policy.openClaimsCount--; + policy.updatedAt = block.timestamp; // solhint-disable-line + + emit LogClaimClosed(processId, claimId); + } + + /* Payout */ + /** + * @dev Creates a new payout for a confirmed claim in a policy. + * @param processId The ID of the policy. + * @param claimId The ID of the claim associated with the payout. + * @param payoutAmount The amount of the payout. + * @param data Additional data related to the payout. + * @return payoutId The ID of the newly created payout. + * + * Emits a LogPayoutCreated event with the processId, claimId, payoutId, and payoutAmount. + * + * Requirements: + * - The caller must have the onlyPolicyFlow modifier with "Policy" as the argument. + * - The policy with the given processId must exist. + * - The claim with the given claimId must exist and be in the Confirmed state. + * - The payoutAmount must be greater than zero. + * - The sum of the paidAmount of the claim and the payoutAmount must not exceed the claimAmount of the claim. + * - A payout with the given processId and payoutId must not already exist. + * @notice This function emits 1 events: + * - LogPayoutCreated + */ + function createPayout( + bytes32 processId, + uint256 claimId, + uint256 payoutAmount, + bytes calldata data + ) + external override + onlyPolicyFlow("Policy") + returns (uint256 payoutId) + { + Policy storage policy = policies[processId]; + require(policy.createdAt > 0, "ERROR:POC-080:POLICY_DOES_NOT_EXIST"); + + Claim storage claim = claims[processId][claimId]; + require(claim.createdAt > 0, "ERROR:POC-081:CLAIM_DOES_NOT_EXIST"); + require(claim.state == IPolicy.ClaimState.Confirmed, "ERROR:POC-082:CLAIM_NOT_CONFIRMED"); + require(payoutAmount > 0, "ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID"); + require( + claim.paidAmount + payoutAmount <= claim.claimAmount, + "ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG" + ); + + payoutId = payoutCount[processId]; + Payout storage payout = payouts[processId][payoutId]; + require(payout.createdAt == 0, "ERROR:POC-085:PAYOUT_ALREADY_EXISTS"); + + payout.claimId = claimId; + payout.amount = payoutAmount; + payout.data = data; + payout.state = PayoutState.Expected; + payout.createdAt = block.timestamp; // solhint-disable-line + payout.updatedAt = block.timestamp; // solhint-disable-line + + payoutCount[processId]++; + policy.updatedAt = block.timestamp; // solhint-disable-line + + emit LogPayoutCreated(processId, claimId, payoutId, payoutAmount); + } + + /** + * @dev Processes a payout for a policy and claim. + * @param processId The ID of the policy to process the payout for. + * @param payoutId The ID of the payout to process. + * + * Emits a LogPayoutProcessed event. + * If the claim is fully paid, emits a LogClaimClosed event. + * + * Requirements: + * - The caller must have the onlyPolicyFlow modifier with the "Policy" role. + * - The policy with the given processId must exist. + * - The policy with the given processId must have at least one open claim. + * - The payout with the given payoutId must exist. + * - The payout with the given payoutId must be in the Expected state. + * + * Effects: + * - Changes the state of the payout to PaidOut. + * - Updates the updatedAt timestamp of the payout. + * - Increases the paidAmount of the claim associated with the payout. + * - Updates the updatedAt timestamp of the claim. + * - If the claim is fully paid, changes the state of the claim to Closed. + * - Decreases the openClaimsCount of the policy associated with the claim. + * - Updates the updatedAt timestamp of the policy. + * @notice This function emits 2 events: + * - LogClaimClosed + * - LogPayoutProcessed + */ + function processPayout( + bytes32 processId, + uint256 payoutId + ) + external override + onlyPolicyFlow("Policy") + { + Policy storage policy = policies[processId]; + require(policy.createdAt > 0, "ERROR:POC-090:POLICY_DOES_NOT_EXIST"); + require(policy.openClaimsCount > 0, "ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS"); + + Payout storage payout = payouts[processId][payoutId]; + require(payout.createdAt > 0, "ERROR:POC-092:PAYOUT_DOES_NOT_EXIST"); + require(payout.state == PayoutState.Expected, "ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT"); + + payout.state = IPolicy.PayoutState.PaidOut; + payout.updatedAt = block.timestamp; // solhint-disable-line + + emit LogPayoutProcessed(processId, payoutId); + + Claim storage claim = claims[processId][payout.claimId]; + claim.paidAmount += payout.amount; + claim.updatedAt = block.timestamp; // solhint-disable-line + + // check if claim can be closed + if (claim.claimAmount == claim.paidAmount) { + claim.state = IPolicy.ClaimState.Closed; + + policy.openClaimsCount -= 1; + policy.updatedAt = block.timestamp; // solhint-disable-line + + emit LogClaimClosed(processId, payout.claimId); + } + } + + /** + * @dev Returns the metadata for the given process ID. + * @param processId The ID of the process to retrieve metadata for. + * @return _metadata The metadata information for the given process ID. + * + * Requirements: + * - The metadata for the given process ID must exist. + */ + function getMetadata(bytes32 processId) + public + view + returns (IPolicy.Metadata memory _metadata) + { + _metadata = metadata[processId]; + require(_metadata.createdAt > 0, "ERROR:POC-100:METADATA_DOES_NOT_EXIST"); + } + + /** + * @dev Returns the application associated with the provided process ID. + * @param processId The ID of the process for which to retrieve the application. + * @return application The application associated with the provided process ID. + */ + function getApplication(bytes32 processId) + public + view + returns (IPolicy.Application memory application) + { + application = applications[processId]; + require(application.createdAt > 0, "ERROR:POC-101:APPLICATION_DOES_NOT_EXIST"); + } + + /** + * @dev Returns the number of claims associated with a given process ID. + * @param processId The ID of the process for which to retrieve the number of claims. + * @return numberOfClaims The number of claims associated with the given process ID. + */ + function getNumberOfClaims(bytes32 processId) external view returns(uint256 numberOfClaims) { + numberOfClaims = getPolicy(processId).claimsCount; + } + + /** + * @dev Returns the number of payouts for a given process ID. + * @param processId The ID of the process. + * @return numberOfPayouts The number of payouts for the given process ID. + */ + function getNumberOfPayouts(bytes32 processId) external view returns(uint256 numberOfPayouts) { + numberOfPayouts = payoutCount[processId]; + } + + /** + * @dev Returns the policy associated with the given process ID. + * @param processId The ID of the process for which to retrieve the policy. + * @return policy The policy object associated with the given process ID. + */ + function getPolicy(bytes32 processId) + public + view + returns (IPolicy.Policy memory policy) + { + policy = policies[processId]; + require(policy.createdAt > 0, "ERROR:POC-102:POLICY_DOES_NOT_EXIST"); + } + + /** + * @dev Returns the claim with the given ID for the specified process. + * @param processId The ID of the process. + * @param claimId The ID of the claim. + * @return claim The claim object with the given ID. + * @notice This function can only be called in read-only mode. + * @notice Throws an error if the claim with the given ID does not exist. + */ + function getClaim(bytes32 processId, uint256 claimId) + public + view + returns (IPolicy.Claim memory claim) + { + claim = claims[processId][claimId]; + require(claim.createdAt > 0, "ERROR:POC-103:CLAIM_DOES_NOT_EXIST"); + } + + /** + * @dev Retrieves a specific payout from a process. + * @param processId The ID of the process. + * @param payoutId The ID of the payout to retrieve. + * @return payout The payout object with the specified ID. + * @notice Throws an error if the payout does not exist. + */ + function getPayout(bytes32 processId, uint256 payoutId) + public + view + returns (IPolicy.Payout memory payout) + { + payout = payouts[processId][payoutId]; + require(payout.createdAt > 0, "ERROR:POC-104:PAYOUT_DOES_NOT_EXIST"); + } + + /** + * @dev Returns the number of process IDs that have been assigned. + * @return _assigendProcessIds The number of process IDs that have been assigned. + */ + function processIds() external view returns (uint256) { + return _assigendProcessIds; + } + + /** + * @dev Generates a unique process ID for the next process. + * @return processId The generated process ID. + */ + function _generateNextProcessId() private returns(bytes32 processId) { + _assigendProcessIds++; + + processId = keccak256( + abi.encodePacked( + block.chainid, + address(_registry), + _assigendProcessIds + ) + ); + } +} diff --git a/contracts-christoph2806/modules/PoolController.sol b/contracts-christoph2806/modules/PoolController.sol new file mode 100644 index 00000000..e3ee0e77 --- /dev/null +++ b/contracts-christoph2806/modules/PoolController.sol @@ -0,0 +1,529 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "./ComponentController.sol"; +import "./PolicyController.sol"; +import "./BundleController.sol"; +import "../shared/CoreController.sol"; + +import "@etherisc/gif-interface/contracts/modules/IPool.sol"; +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; + + +import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; + +contract PoolController is + IPool, + CoreController +{ + + using EnumerableSet for EnumerableSet.UintSet; + + // used for representation of collateralization + // collateralization between 0 and 1 (1=100%) + // value might be larger when overcollateralization + uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10**18; + + // upper limit for overcollateralization at 200% + uint256 public constant COLLATERALIZATION_LEVEL_CAP = 2 * FULL_COLLATERALIZATION_LEVEL; + + uint256 public constant DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES = 1; + + mapping(bytes32 /* processId */ => uint256 /* collateralAmount*/ ) private _collateralAmount; + + mapping(uint256 /* productId */ => uint256 /* riskpoolId */) private _riskpoolIdForProductId; + + mapping(uint256 /* riskpoolId */ => IPool.Pool) private _riskpools; + + mapping(uint256 /* riskpoolId */ => uint256 /* maxmimumNumberOfActiveBundles */) private _maxmimumNumberOfActiveBundlesForRiskpoolId; + + mapping(uint256 /* riskpoolId */ => EnumerableSet.UintSet /* active bundle id set */) private _activeBundleIdsForRiskpoolId; + + uint256 [] private _riskpoolIds; + + ComponentController private _component; + PolicyController private _policy; + BundleController private _bundle; + + modifier onlyInstanceOperatorService() { + require( + _msgSender() == _getContractAddress("InstanceOperatorService"), + "ERROR:POL-001:NOT_INSTANCE_OPERATOR" + ); + _; + } + + modifier onlyRiskpoolService() { + require( + _msgSender() == _getContractAddress("RiskpoolService"), + "ERROR:POL-002:NOT_RISKPOOL_SERVICE" + ); + _; + } + + modifier onlyActivePool(uint256 riskpoolId) { + require( + _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, + "ERROR:POL-003:RISKPOOL_NOT_ACTIVE" + ); + _; + } + + modifier onlyActivePoolForProcess(bytes32 processId) { + IPolicy.Metadata memory metadata = _policy.getMetadata(processId); + uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; + require( + _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, + "ERROR:POL-004:RISKPOOL_NOT_ACTIVE" + ); + _; + } + + /** + * @dev This function is called after the contract is initialized and sets the addresses of the ComponentController, PolicyController, and BundleController contracts. + * + * + */ + function _afterInitialize() internal override onlyInitializing { + _component = ComponentController(_getContractAddress("Component")); + _policy = PolicyController(_getContractAddress("Policy")); + _bundle = BundleController(_getContractAddress("Bundle")); + } + + + /** + * @dev Registers a new riskpool with the given parameters. + * @param riskpoolId The ID of the riskpool to be registered. + * @param wallet The address of the wallet associated with the riskpool. + * @param erc20Token The address of the ERC20 token associated with the riskpool. + * @param collateralizationLevel The collateralization level of the riskpool. + * @param sumOfSumInsuredCap The sum of sum insured cap of the riskpool. + * @notice This function emits 1 events: + * - LogRiskpoolRegistered + */ + function registerRiskpool( + uint256 riskpoolId, + address wallet, + address erc20Token, + uint256 collateralizationLevel, + uint256 sumOfSumInsuredCap + ) + external override + onlyRiskpoolService + { + IPool.Pool storage pool = _riskpools[riskpoolId]; + _riskpoolIds.push(riskpoolId); + _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES; + + require(pool.createdAt == 0, "ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED"); + + require(wallet != address(0), "ERROR:POL-006:WALLET_ADDRESS_ZERO"); + require(erc20Token != address(0), "ERROR:POL-007:ERC20_ADDRESS_ZERO"); + require(collateralizationLevel <= COLLATERALIZATION_LEVEL_CAP, "ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH"); + require(sumOfSumInsuredCap > 0, "ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO"); + + pool.id = riskpoolId; + pool.wallet = wallet; + pool.erc20Token = erc20Token; + pool.collateralizationLevel = collateralizationLevel; + pool.sumOfSumInsuredCap = sumOfSumInsuredCap; + + pool.sumOfSumInsuredAtRisk = 0; + pool.capital = 0; + pool.lockedCapital = 0; + pool.balance = 0; + + pool.createdAt = block.timestamp; + pool.updatedAt = block.timestamp; + + emit LogRiskpoolRegistered(riskpoolId, wallet, erc20Token, collateralizationLevel, sumOfSumInsuredCap); + } + + /** + * @dev Sets the riskpool ID for a given product ID. + * @param productId The ID of the product. + * @param riskpoolId The ID of the riskpool to be set for the product. + * + * Emits a {RiskpoolForProductSet} event indicating the riskpool has been set for the product. + * Requirements: + * - The caller must have the `INSTANCE_OPERATOR` permission. + * - The product ID must exist. + * - The riskpool ID must exist. + * - The riskpool ID must not have already been set for the product. + */ + function setRiskpoolForProduct(uint256 productId, uint256 riskpoolId) + external override + onlyInstanceOperatorService + { + require(_component.isProduct(productId), "ERROR:POL-010:NOT_PRODUCT"); + require(_component.isRiskpool(riskpoolId), "ERROR:POL-011:NOT_RISKPOOL"); + require(_riskpoolIdForProductId[productId] == 0, "ERROR:POL-012:RISKPOOL_ALREADY_SET"); + + _riskpoolIdForProductId[productId] = riskpoolId; + } + + /** + * @dev Adds funds to a specific riskpool. + * @param riskpoolId The ID of the riskpool that will receive the funds. + * @param amount The amount of funds to be added to the riskpool. + */ + function fund(uint256 riskpoolId, uint256 amount) + external + onlyRiskpoolService + onlyActivePool(riskpoolId) + { + IPool.Pool storage pool = _riskpools[riskpoolId]; + pool.capital += amount; + pool.balance += amount; + pool.updatedAt = block.timestamp; + } + + /** + * @dev Allows the Riskpool service to defund the specified Riskpool by the given amount. + * @param riskpoolId The ID of the Riskpool to defund. + * @param amount The amount of funds to be defunded from the Riskpool. + */ + function defund(uint256 riskpoolId, uint256 amount) + external + onlyRiskpoolService + onlyActivePool(riskpoolId) + { + IPool.Pool storage pool = _riskpools[riskpoolId]; + + if (pool.capital >= amount) { pool.capital -= amount; } + else { pool.capital = 0; } + + pool.balance -= amount; + pool.updatedAt = block.timestamp; + } + + /** + * @dev Underwrites a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. + * @param processId The ID of the policy application process. + * @return success A boolean indicating whether the collateralization process was successful or not. + * + * Emits a LogRiskpoolRequiredCollateral event with the sum insured amount and calculated collateral amount. + * Throws an error if the application state is not "Applied" or if the riskpool's sum insured cap would be exceeded by underwriting this application. + * Emits a LogRiskpoolCollateralizationSucceeded event if the collateralization process was successful, and a LogRiskpoolCollateralizationFailed event otherwise. + * @notice This function emits 3 events: + * - LogRiskpoolCollateralizationFailed + * - LogRiskpoolCollateralizationSucceeded + * - LogRiskpoolRequiredCollateral + */ + function underwrite(bytes32 processId) + external override + onlyPolicyFlow("Pool") + onlyActivePoolForProcess(processId) + returns(bool success) + { + // check that application is in applied state + IPolicy.Application memory application = _policy.getApplication(processId); + require( + application.state == IPolicy.ApplicationState.Applied, + "ERROR:POL-020:APPLICATION_STATE_INVALID" + ); + + // determine riskpool responsible for application + IPolicy.Metadata memory metadata = _policy.getMetadata(processId); + uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; + + // calculate required collateral amount + uint256 sumInsuredAmount = application.sumInsuredAmount; + uint256 collateralAmount = calculateCollateral(riskpoolId, sumInsuredAmount); + _collateralAmount[processId] = collateralAmount; + + emit LogRiskpoolRequiredCollateral(processId, sumInsuredAmount, collateralAmount); + + // check that riskpool stays inside sum insured cap when underwriting this application + IPool.Pool storage pool = _riskpools[riskpoolId]; + require( + pool.sumOfSumInsuredCap >= pool.sumOfSumInsuredAtRisk + sumInsuredAmount, + "ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED" + ); + + // ask riskpool to secure application + IRiskpool riskpool = _getRiskpoolComponent(metadata); + success = riskpool.collateralizePolicy(processId, collateralAmount); + + if (success) { + pool.sumOfSumInsuredAtRisk += sumInsuredAmount; + pool.lockedCapital += collateralAmount; + pool.updatedAt = block.timestamp; + + emit LogRiskpoolCollateralizationSucceeded(riskpoolId, processId, sumInsuredAmount); + } else { + emit LogRiskpoolCollateralizationFailed(riskpoolId, processId, sumInsuredAmount); + } + } + + + /** + * @dev Calculates the required collateral amount for a given riskpool and sum insured amount. + * @param riskpoolId The ID of the riskpool. + * @param sumInsuredAmount The sum insured amount. + * @return collateralAmount The required collateral amount. + */ + function calculateCollateral(uint256 riskpoolId, uint256 sumInsuredAmount) + public + view + returns (uint256 collateralAmount) + { + uint256 collateralization = getRiskpool(riskpoolId).collateralizationLevel; + + // fully collateralized case + if (collateralization == FULL_COLLATERALIZATION_LEVEL) { + collateralAmount = sumInsuredAmount; + // over or under collateralized case + } else if (collateralization > 0) { + collateralAmount = (collateralization * sumInsuredAmount) / FULL_COLLATERALIZATION_LEVEL; + } + // collateralization == 0, eg complete risk coverd by re insurance outside gif + else { + collateralAmount = 0; + } + } + + + /** + * @dev Processes the premium payment for a policy. + * @param processId The ID of the process. + * @param amount The amount of premium paid. + */ + function processPremium(bytes32 processId, uint256 amount) + external override + onlyPolicyFlow("Pool") + onlyActivePoolForProcess(processId) + { + IPolicy.Metadata memory metadata = _policy.getMetadata(processId); + IRiskpool riskpool = _getRiskpoolComponent(metadata); + riskpool.processPolicyPremium(processId, amount); + + uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; + IPool.Pool storage pool = _riskpools[riskpoolId]; + pool.balance += amount; + pool.updatedAt = block.timestamp; + } + + + /** + * @dev Process a payout for a policy flow in the Pool. + * @param processId The ID of the process to be paid out. + * @param amount The amount to be paid out. + * + * Emits a {PolicyPayoutProcessed} event. + * + * Requirements: + * - Caller must be the Pool contract. + * - Pool must be active for the given process. + * - Riskpool ID must be valid. + * - Pool capital must be greater than or equal to the payout amount. + * - Pool locked capital must be greater than or equal to the payout amount. + * - Pool balance must be greater than or equal to the payout amount. + * + */ + function processPayout(bytes32 processId, uint256 amount) + external override + onlyPolicyFlow("Pool") + onlyActivePoolForProcess(processId) + { + IPolicy.Metadata memory metadata = _policy.getMetadata(processId); + uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; + IPool.Pool storage pool = _riskpools[riskpoolId]; + require(pool.createdAt > 0, "ERROR:POL-026:RISKPOOL_ID_INVALID"); + require(pool.capital >= amount, "ERROR:POL-027:CAPITAL_TOO_LOW"); + require(pool.lockedCapital >= amount, "ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW"); + require(pool.balance >= amount, "ERROR:POL-029:BALANCE_TOO_LOW"); + + pool.capital -= amount; + pool.lockedCapital -= amount; + pool.balance -= amount; + pool.updatedAt = block.timestamp; // solhint-disable-line + + IRiskpool riskpool = _getRiskpoolComponent(metadata); + riskpool.processPolicyPayout(processId, amount); + } + + + /** + * @dev Releases a policy's collateral from the riskpool. + * @param processId The unique identifier of the policy. + * + * + * Emits a LogRiskpoolCollateralReleased event. + * @notice This function emits 1 events: + * - LogRiskpoolCollateralReleased + */ + function release(bytes32 processId) + external override + onlyPolicyFlow("Pool") + { + IPolicy.Policy memory policy = _policy.getPolicy(processId); + require( + policy.state == IPolicy.PolicyState.Closed, + "ERROR:POL-025:POLICY_STATE_INVALID" + ); + + IPolicy.Metadata memory metadata = _policy.getMetadata(processId); + IRiskpool riskpool = _getRiskpoolComponent(metadata); + riskpool.releasePolicy(processId); + + IPolicy.Application memory application = _policy.getApplication(processId); + + uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; + IPool.Pool storage pool = _riskpools[riskpoolId]; + uint256 remainingCollateralAmount = _collateralAmount[processId] - policy.payoutAmount; + + pool.sumOfSumInsuredAtRisk -= application.sumInsuredAmount; + pool.lockedCapital -= remainingCollateralAmount; + pool.updatedAt = block.timestamp; // solhint-disable-line + + // free memory + delete _collateralAmount[processId]; + emit LogRiskpoolCollateralReleased(riskpoolId, processId, remainingCollateralAmount); + } + + /** + * @dev Sets the maximum number of active bundles for a given riskpool ID. + * @param riskpoolId The ID of the riskpool. + * @param maxNumberOfActiveBundles The maximum number of active bundles to be set. + */ + function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles) + external + onlyRiskpoolService + { + require(maxNumberOfActiveBundles > 0, "ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID"); + _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = maxNumberOfActiveBundles; + } + + /** + * @dev Returns the maximum number of active bundles for a given riskpool ID. + * @param riskpoolId The ID of the riskpool. + * @return maximumNumberOfActiveBundles The maximum number of active bundles for the given riskpool ID. + */ + function getMaximumNumberOfActiveBundles(uint256 riskpoolId) public view returns(uint256 maximumNumberOfActiveBundles) { + return _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId]; + } + + /** + * @dev Returns the number of risk pools created. + * @return idx The number of risk pools as a uint256. + */ + function riskpools() external view returns(uint256 idx) { return _riskpoolIds.length; } + + + /** + * @dev Returns the risk pool data for a given risk pool ID. + * @param riskpoolId The ID of the risk pool to retrieve. + * @return riskPool The risk pool data, returned as a Pool struct. + * + * Throws a POL-040 error if the risk pool is not registered. + */ + function getRiskpool(uint256 riskpoolId) public view returns(IPool.Pool memory riskPool) { + riskPool = _riskpools[riskpoolId]; + require(riskPool.createdAt > 0, "ERROR:POL-040:RISKPOOL_NOT_REGISTERED"); + } + + /** + * @dev Returns the risk pool ID associated with the given product ID. + * @param productId The ID of the product for which to retrieve the risk pool ID. + * @return riskpoolId The ID of the risk pool associated with the given product ID. + */ + function getRiskPoolForProduct(uint256 productId) external view returns (uint256 riskpoolId) { + return _riskpoolIdForProductId[productId]; + } + + /** + * @dev Returns the number of active bundles for a given risk pool ID. + * @param riskpoolId The ID of the risk pool to get the number of active bundles for. + * @return numberOfActiveBundles The number of active bundles for the given risk pool ID. + */ + function activeBundles(uint256 riskpoolId) external view returns(uint256 numberOfActiveBundles) { + return EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]); + } + + /** + * @dev Returns the active bundle ID at the specified index for the given risk pool ID. + * @param riskpoolId The ID of the risk pool. + * @param bundleIdx The index of the active bundle ID to be returned. + * @return bundleId The active bundle ID at the specified index. + */ + function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external view returns(uint256 bundleId) { + require( + bundleIdx < EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]), + "ERROR:POL-041:BUNDLE_IDX_TOO_LARGE" + ); + + return EnumerableSet.at(_activeBundleIdsForRiskpoolId[riskpoolId], bundleIdx); + } + + /** + * @dev Adds a bundle ID to the active set for a specific riskpool ID. + * @param riskpoolId The ID of the riskpool. + * @param bundleId The ID of the bundle to be added to the active set. + */ + function addBundleIdToActiveSet(uint256 riskpoolId, uint256 bundleId) + external + onlyRiskpoolService + { + require( + !EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), + "ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET" + ); + require( + EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]) < _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId], + "ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED" + ); + + EnumerableSet.add(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId); + } + + /** + * @dev Removes a bundle ID from the active set for a given risk pool ID. + * @param riskpoolId The ID of the risk pool. + * @param bundleId The ID of the bundle to be removed from the active set. + */ + function removeBundleIdFromActiveSet(uint256 riskpoolId, uint256 bundleId) + external + onlyRiskpoolService + { + require( + EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), + "ERROR:POL-044:BUNDLE_ID_NOT_IN_SET" + ); + + EnumerableSet.remove(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId); + } + + /** + * @dev Returns the full collateralization level of the contract. + * @return FULL_COLLATERALIZATION_LEVEL The full collateralization level of the contract. + */ + function getFullCollateralizationLevel() external pure returns (uint256) { + return FULL_COLLATERALIZATION_LEVEL; + } + + /** + * @dev Returns the Riskpool contract instance associated with the given policy metadata. + * @param metadata The metadata of the policy. + * @return riskpool The Riskpool contract instance. + */ + function _getRiskpoolComponent(IPolicy.Metadata memory metadata) internal view returns (IRiskpool riskpool) { + uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; + require(riskpoolId > 0, "ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST"); + + riskpool = _getRiskpoolForId(riskpoolId); + } + + /** + * @dev Returns the Riskpool contract instance for a given riskpoolId. + * @param riskpoolId The ID of the riskpool to retrieve the Riskpool contract instance for. + * @return riskpool The Riskpool contract instance. + */ + function _getRiskpoolForId(uint256 riskpoolId) internal view returns (IRiskpool riskpool) { + require(_component.isRiskpool(riskpoolId), "ERROR:POL-046:COMPONENT_NOT_RISKPOOL"); + + IComponent cmp = _component.getComponent(riskpoolId); + riskpool = IRiskpool(address(cmp)); + } +} diff --git a/contracts-christoph2806/modules/QueryModule.sol b/contracts-christoph2806/modules/QueryModule.sol new file mode 100644 index 00000000..29388a23 --- /dev/null +++ b/contracts-christoph2806/modules/QueryModule.sol @@ -0,0 +1,218 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "./ComponentController.sol"; +import "../shared/CoreController.sol"; + +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/components/IOracle.sol"; +import "@etherisc/gif-interface/contracts/modules/IQuery.sol"; +import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; + + +contract QueryModule is + IQuery, + CoreController +{ + ComponentController private _component; + OracleRequest[] private _oracleRequests; + + modifier onlyOracleService() { + require( + _msgSender() == _getContractAddress("OracleService"), + "ERROR:CRC-001:NOT_ORACLE_SERVICE" + ); + _; + } + + modifier onlyResponsibleOracle(uint256 requestId, address responder) { + OracleRequest memory oracleRequest = _oracleRequests[requestId]; + + require( + oracleRequest.createdAt > 0, + "ERROR:QUC-002:REQUEST_ID_INVALID" + ); + + uint256 oracleId = oracleRequest.responsibleOracleId; + address oracleAddress = address(_getOracle(oracleId)); + require( + oracleAddress == responder, + "ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE" + ); + _; + } + + /** + * @dev Internal function that sets the `_component` variable to the `ComponentController` contract address. + * + */ + function _afterInitialize() internal override onlyInitializing { + _component = ComponentController(_getContractAddress("Component")); + } + + /* Oracle Request */ + // request only works for active oracles + // function call _getOracle reverts if oracle is not active + // as a result all request call on oracles that are not active will revert + /** + * @dev Creates a new oracle request for a given process with the specified input data and callback information. + * @param processId The ID of the process. + * @param input The input data for the request. + * @param callbackMethodName The name of the callback method to be called upon completion of the request. + * @param callbackContractAddress The address of the contract to be called upon completion of the request. + * @param responsibleOracleId The ID of the oracle responsible for handling the request. + * @return requestId The ID of the newly created oracle request. + * @notice This function emits 1 events: + * - LogOracleRequested + */ + function request( + bytes32 processId, + bytes calldata input, + string calldata callbackMethodName, + address callbackContractAddress, + uint256 responsibleOracleId + ) + external + override + onlyPolicyFlow("Query") + returns (uint256 requestId) + { + uint256 componentId = _component.getComponentId(callbackContractAddress); + require( + _component.isProduct(componentId), + "ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT" + ); + + requestId = _oracleRequests.length; + _oracleRequests.push(); + + // TODO: get token from product + + OracleRequest storage req = _oracleRequests[requestId]; + req.processId = processId; + req.data = input; + req.callbackMethodName = callbackMethodName; + req.callbackContractAddress = callbackContractAddress; + req.responsibleOracleId = responsibleOracleId; + req.createdAt = block.timestamp; // solhint-disable-line + + _getOracle(responsibleOracleId).request( + requestId, + input + ); + + emit LogOracleRequested(processId, requestId, responsibleOracleId); + } + + /* Oracle Response */ + // respond only works for active oracles + // modifier onlyResponsibleOracle contains a function call to _getOracle + // which reverts if oracle is not active + // as a result, all response calls by oracles that are not active will revert + /** + * @dev Responds to an oracle request with the given requestId, responder address, and data. + * @param requestId The ID of the oracle request. + * @param responder The address of the oracle responder. + * @param data The data to be sent to the oracle contract. + * @notice This function emits 1 events: + * - LogOracleResponded + */ + function respond( + uint256 requestId, + address responder, + bytes calldata data + ) + external override + onlyOracleService + onlyResponsibleOracle(requestId, responder) + { + OracleRequest storage req = _oracleRequests[requestId]; + string memory functionSignature = string( + abi.encodePacked( + req.callbackMethodName, + "(uint256,bytes32,bytes)" + )); + bytes32 processId = req.processId; + + (bool success, ) = + req.callbackContractAddress.call( + abi.encodeWithSignature( + functionSignature, + requestId, + processId, + data + ) + ); + + require(success, "ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL"); + delete _oracleRequests[requestId]; + + // TODO implement reward payment + + emit LogOracleResponded(processId, requestId, responder, success); + } + + /** + * @dev Cancels an oracle request. + * @param requestId The ID of the oracle request to be canceled. + * @notice This function emits 1 events: + * - LogOracleCanceled + */ + function cancel(uint256 requestId) + external override + onlyPolicyFlow("Query") + { + OracleRequest storage oracleRequest = _oracleRequests[requestId]; + require(oracleRequest.createdAt > 0, "ERROR:QUC-030:REQUEST_ID_INVALID"); + delete _oracleRequests[requestId]; + emit LogOracleCanceled(requestId); + } + + + /** + * @dev Returns the process ID associated with a given request ID. + * @param requestId The ID of the request to retrieve the process ID for. + * @return processId The process ID associated with the given request ID. + */ + function getProcessId(uint256 requestId) + external + view + returns(bytes32 processId) + { + OracleRequest memory oracleRequest = _oracleRequests[requestId]; + require(oracleRequest.createdAt > 0, "ERROR:QUC-040:REQUEST_ID_INVALID"); + return oracleRequest.processId; + } + + + /** + * @dev Returns the number of oracle requests made. + * @return _count The number of oracle requests made. + */ + function getOracleRequestCount() public view returns (uint256 _count) { + return _oracleRequests.length; + } + + /** + * @dev Returns the Oracle component with the specified ID. + * @param id The ID of the Oracle component to retrieve. + * @return oracle The Oracle component retrieved. + * + * Throws a 'COMPONENT_NOT_ORACLE' error if the component with the specified ID is not an Oracle component. + * Throws an 'ORACLE_NOT_ACTIVE' error if the retrieved Oracle component is not in an active state. + */ + function _getOracle(uint256 id) internal view returns (IOracle oracle) { + IComponent cmp = _component.getComponent(id); + oracle = IOracle(address(cmp)); + + require( + _component.getComponentType(id) == IComponent.ComponentType.Oracle, + "ERROR:QUC-041:COMPONENT_NOT_ORACLE" + ); + + require( + _component.getComponentState(id) == IComponent.ComponentState.Active, + "ERROR:QUC-042:ORACLE_NOT_ACTIVE" + ); + } +} diff --git a/contracts-christoph2806/modules/README.adoc b/contracts-christoph2806/modules/README.adoc new file mode 100644 index 00000000..5bc9cc2a --- /dev/null +++ b/contracts-christoph2806/modules/README.adoc @@ -0,0 +1,25 @@ += Modules + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/modules + +== Contracts + +{{AccessController}} + +{{BundleController}} + +{{ComponentController}} + +{{LicenseController}} + +{{PolicyController}} + +{{PoolController}} + +{{QueryModule}} + +{{RegistryController}} + +{{TreasuryModule}} + diff --git a/contracts-christoph2806/modules/RegistryController.sol b/contracts-christoph2806/modules/RegistryController.sol new file mode 100644 index 00000000..734db4ef --- /dev/null +++ b/contracts-christoph2806/modules/RegistryController.sol @@ -0,0 +1,355 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../shared/CoreController.sol"; + +import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; + +import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import "@openzeppelin/contracts/utils/Strings.sol"; +import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; + + +contract RegistryController is + IRegistry, + CoreController +{ + using EnumerableSet for EnumerableSet.Bytes32Set; + + /** + * @dev Save number of items to iterate through + * Currently we have < 20 contracts. + */ + uint256 public constant MAX_CONTRACTS = 100; + + /** + * @dev Current release + * We use semantic versioning. + */ + bytes32 public release; + + uint256 public startBlock; + + mapping(bytes32 /* release */ => mapping(bytes32 /* contract name */ => address /* contract address */)) public _contracts; + mapping(bytes32 /* release */ => uint256 /* number of contracts in release */) public _contractsInRelease; + mapping(bytes32 /* release */ => EnumerableSet.Bytes32Set /* contract names */) private _contractNames; + + /** + * @dev Initializes the GIF registry with an initial release and sets the deployment block for reading logs. + * @param _initialRelease The initial release of the GIF instance. + */ + function initializeRegistry(bytes32 _initialRelease) public initializer { + // _setupRegistry(address(this)); + _registry = this; + + // this is a temporary assignment and must only be used + // during the intial setup of a gif instance + // at execution time _msgSender is the address of the + // registry proxy. + release = _initialRelease; + _contracts[release]["InstanceOperatorService"] = _msgSender(); + EnumerableSet.add(_contractNames[release], "InstanceOperatorService"); + _contractsInRelease[release] = 1; + + + // register the deployment block for reading logs + startBlock = block.number; + } + + /** + * @dev Verifies if the provided 'sender' address matches the address of the contract with the given '_contractName' in the current release. + * @param sender The address to be verified. + * @param _contractName The name of the contract to compare the 'sender' address with. + * @return _senderMatches A boolean indicating whether the 'sender' address matches the address of the contract with the given '_contractName'. + */ + function ensureSender(address sender, bytes32 _contractName) + external view override + returns(bool _senderMatches) + { + _senderMatches = (sender == _getContractInRelease(release, _contractName)); + } + + /** + * @dev get current release + */ + /** + * @dev Returns the current release identifier. + * @return _release The release identifier. + */ + function getRelease() + external override view + returns (bytes32 _release) + { + _release = release; + } + + /** + * @dev Get contract's address in the current release + */ + /** + * @dev Returns the address of a contract by its name. + * @param _contractName The name of the contract. + * @return _addr The address of the contract. + */ + function getContract(bytes32 _contractName) + public override view + returns (address _addr) + { + _addr = _getContractInRelease(release, _contractName); + } + + /** + * @dev Register contract in the current release + */ + /** + * @dev Registers a contract with a given name and address. + * + * @param _contractName The name of the contract to register. + * @param _contractAddress The address of the contract to register. + */ + function register(bytes32 _contractName, address _contractAddress) + external override + onlyInstanceOperator + { + _registerInRelease(release, false, _contractName, _contractAddress); + } + + /** + * @dev Deregister contract in the current release + */ + /** + * @dev Deregisters a contract from the current release. + * @param _contractName The name of the contract to be deregistered. + */ + function deregister(bytes32 _contractName) + external override + onlyInstanceOperator + { + _deregisterInRelease(release, _contractName); + } + + /** + * @dev Get contract's address in certain release + */ + /** + * @dev Returns the address of a specific contract within a given release. + * @param _release The release identifier. + * @param _contractName The name of the contract to retrieve. + * @return _addr The address of the contract. + */ + function getContractInRelease(bytes32 _release, bytes32 _contractName) + external override view + returns (address _addr) + { + _addr = _getContractInRelease(_release, _contractName); + } + + /** + * @dev Register contract in certain release + */ + /** + * @dev Registers a contract in a specific release. + * @param _release The release identifier. + * @param _contractName The name of the contract to register. + * @param _contractAddress The address of the contract to register. + */ + function registerInRelease(bytes32 _release, bytes32 _contractName, address _contractAddress) + external override + onlyInstanceOperator + { + _registerInRelease(_release, false, _contractName, _contractAddress); + } + + /** + * @dev Deregisters a contract name from a specific release. + * @param _release The release from which to deregister the contract name. + * @param _contractName The contract name to deregister. + */ + function deregisterInRelease(bytes32 _release, bytes32 _contractName) + external override + onlyInstanceOperator + { + _deregisterInRelease(_release, _contractName); + } + + /** + * @dev Create new release, copy contracts from previous release + */ + /** + * @dev Prepares a new release by copying all contracts from the current release to the new one. + * @param _newRelease The name of the new release. + * + * Requirements: + * - The current release must not be empty. + * - The new release must be empty. + * + * Emits a {LogReleasePrepared} event. + * @notice This function emits 1 events: + * - LogReleasePrepared + */ + function prepareRelease(bytes32 _newRelease) + external override + onlyInstanceOperator + { + uint256 countContracts = _contractsInRelease[release]; + + require(countContracts > 0, "ERROR:REC-001:EMPTY_RELEASE"); + require( + _contractsInRelease[_newRelease] == 0, + "ERROR:REC-002:NEW_RELEASE_NOT_EMPTY" + ); + + // TODO think about how to avoid this loop + for (uint256 i = 0; i < countContracts; i += 1) { + bytes32 name = EnumerableSet.at(_contractNames[release], i); + _registerInRelease( + _newRelease, + true, + name, + _contracts[release][name] + ); + } + + release = _newRelease; + + emit LogReleasePrepared(release); + } + + /** + * @dev Returns the number of contracts in the current release. + * + * @return _numberOfContracts The total number of contracts in the current release. + */ + function contracts() external override view returns (uint256 _numberOfContracts) { + _numberOfContracts = EnumerableSet.length(_contractNames[release]); + } + + /** + * @dev Returns the name of the contract at the specified index in the contractNames set. + * @param idx The index of the contract name to retrieve. + * @return _contractName The name of the contract at the specified index in the contractNames set. + */ + function contractName(uint256 idx) external override view returns (bytes32 _contractName) { + _contractName = EnumerableSet.at(_contractNames[release], idx); + } + + /** + * @dev Get contract's address in certain release + */ + /** + * @dev Returns the address of a contract in a specific release. + * @param _release The release identifier. + * @param _contractName The name of the contract to retrieve. + * @return _addr The address of the requested contract. + */ + function _getContractInRelease(bytes32 _release, bytes32 _contractName) + internal view + returns (address _addr) + { + _addr = _contracts[_release][_contractName]; + } + + /** + * @dev Register contract in certain release + */ + /** + * @dev Registers a contract in a release. + * @param _release The release identifier. + * @param isNewRelease True if the release is new, false otherwise. + * @param _contractName The name of the contract. + * @param _contractAddress The address of the contract. + * + * Requirements: + * - The number of registered contracts must be less than MAX_CONTRACTS. + * - The release must be known, unless it is a new release. + * - The contract name must not be empty. + * - The contract name must not already exist in the release, unless it is the 'InstanceOperatorService' contract and it is registered with the owner address. + * - The contract address must not be zero. + * - The number of registered contracts must match the number of contract names in the release. + * + * Emits a LogContractRegistered event with the release identifier, contract name, contract address and a boolean indicating if the contract is new. + * @notice This function emits 1 events: + * - LogContractRegistered + */ + function _registerInRelease( + bytes32 _release, + bool isNewRelease, + bytes32 _contractName, + address _contractAddress + ) + internal + { + bool isNew = false; + + require( + EnumerableSet.length(_contractNames[_release]) < MAX_CONTRACTS, + "ERROR:REC-010:MAX_CONTRACTS_LIMIT" + ); + + // during `prepareRelease` the _release is not yet known, so check should not fail in this case + require(_contractsInRelease[_release] > 0 || isNewRelease, "ERROR:REC-011:RELEASE_UNKNOWN"); + require(_contractName != 0x00, "ERROR:REC-012:CONTRACT_NAME_EMPTY"); + require( + (! EnumerableSet.contains(_contractNames[_release], _contractName) ) + // the contract 'InstanceOperatorService' is initially registered with the owner address (see method initializeRegistry()); + // due to this this special check is required + || (_contractName == "InstanceOperatorService" && _contracts[_release][_contractName] == _msgSender()), + "ERROR:REC-013:CONTRACT_NAME_EXISTS"); + require(_contractAddress != address(0), "ERROR:REC-014:CONTRACT_ADDRESS_ZERO"); + + if (_contracts[_release][_contractName] == address(0)) { + EnumerableSet.add(_contractNames[_release], _contractName); + _contractsInRelease[_release]++; + isNew = true; + } + + _contracts[_release][_contractName] = _contractAddress; + require( + _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]), + "ERROR:REC-015:CONTRACT_NUMBER_MISMATCH" + ); + + emit LogContractRegistered( + _release, + _contractName, + _contractAddress, + isNew + ); + } + + + /** + * @dev Deregister contract in certain release + */ + /** + * @dev Internal function to deregister a contract in a specific release. + * @param _release The release identifier. + * @param _contractName The name of the contract to be deregistered. + * + * Requirements: + * - The function can only be called by the instance operator. + * - The contract to be deregistered must exist in the specified release. + * + * Removes the contract name from the set of contract names in the specified release, + * removes the contract from the mapping of contracts in the specified release, + * and emits a LogContractDeregistered event. + * @notice This function emits 1 events: + * - LogContractDeregistered + */ + function _deregisterInRelease(bytes32 _release, bytes32 _contractName) + internal + onlyInstanceOperator + { + require(EnumerableSet.contains(_contractNames[_release], _contractName), "ERROR:REC-020:CONTRACT_UNKNOWN"); + + EnumerableSet.remove(_contractNames[_release], _contractName); + + _contractsInRelease[_release] -= 1; + delete _contracts[_release][_contractName]; + + require( + _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]), + "ERROR:REC-021:CONTRACT_NUMBER_MISMATCH"); + emit LogContractDeregistered(_release, _contractName); + } +} diff --git a/contracts-christoph2806/modules/TreasuryModule.sol b/contracts-christoph2806/modules/TreasuryModule.sol new file mode 100644 index 00000000..5276cab3 --- /dev/null +++ b/contracts-christoph2806/modules/TreasuryModule.sol @@ -0,0 +1,728 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "./ComponentController.sol"; +import "./PolicyController.sol"; +import "./BundleController.sol"; +import "./PoolController.sol"; +import "../shared/CoreController.sol"; +import "../shared/TransferHelper.sol"; + +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/components/IProduct.sol"; +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; +import "@etherisc/gif-interface/contracts/modules/ITreasury.sol"; + +import "@openzeppelin/contracts/security/Pausable.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/utils/Strings.sol"; + +contract TreasuryModule is + ITreasury, + CoreController, + Pausable +{ + uint256 public constant FRACTION_FULL_UNIT = 10**18; + uint256 public constant FRACTIONAL_FEE_MAX = FRACTION_FULL_UNIT / 4; // max frctional fee is 25% + + event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); + event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); + event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); + + address private _instanceWalletAddress; + mapping(uint256 => address) private _riskpoolWallet; // riskpoolId => walletAddress + mapping(uint256 => FeeSpecification) private _fees; // componentId => fee specification + mapping(uint256 => IERC20) private _componentToken; // productId/riskpoolId => erc20Address + + BundleController private _bundle; + ComponentController private _component; + PolicyController private _policy; + PoolController private _pool; + + modifier instanceWalletDefined() { + require( + _instanceWalletAddress != address(0), + "ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED"); + _; + } + + modifier riskpoolWalletDefinedForProcess(bytes32 processId) { + (uint256 riskpoolId, address walletAddress) = _getRiskpoolWallet(processId); + require( + walletAddress != address(0), + "ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED"); + _; + } + + modifier riskpoolWalletDefinedForBundle(uint256 bundleId) { + IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); + require( + getRiskpoolWallet(bundle.riskpoolId) != address(0), + "ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED"); + _; + } + + // surrogate modifier for whenNotPaused to create treasury specific error message + modifier whenNotSuspended() { + require(!paused(), "ERROR:TRS-004:TREASURY_SUSPENDED"); + _; + } + + modifier onlyRiskpoolService() { + require( + _msgSender() == _getContractAddress("RiskpoolService"), + "ERROR:TRS-005:NOT_RISKPOOL_SERVICE" + ); + _; + } + + /** + * @dev Sets the addresses of the BundleController, ComponentController, PolicyController, and PoolController contracts. + * + * + */ + function _afterInitialize() internal override onlyInitializing { + _bundle = BundleController(_getContractAddress("Bundle")); + _component = ComponentController(_getContractAddress("Component")); + _policy = PolicyController(_getContractAddress("Policy")); + _pool = PoolController(_getContractAddress("Pool")); + } + + /** + * @dev Suspends the treasury contract, preventing any further transfers or withdrawals. + * Can only be called by the instance operator. + * + * @notice This function emits 1 events: + * - LogTreasurySuspended + */ + function suspend() + external + onlyInstanceOperator + { + _pause(); + emit LogTreasurySuspended(); + } + + /** + * @dev Resumes the treasury contract after it has been paused. + * + * + * @notice This function emits 1 events: + * - LogTreasuryResumed + */ + function resume() + external + onlyInstanceOperator + { + _unpause(); + emit LogTreasuryResumed(); + } + + /** + * @dev Sets the ERC20 token address for a given product ID and its associated risk pool. + * @param productId The ID of the product for which the token address is being set. + * @param erc20Address The address of the ERC20 token to be set. + * + * Emits a LogTreasuryProductTokenSet event with the product ID, risk pool ID, and ERC20 token address. + * + * Requirements: + * - The ERC20 token address must not be zero. + * - The product must exist. + * - The product token must not have already been set. + * - The product token address must match the token address of the corresponding product. + * - If the risk pool token address has already been set, it must match the product token address. + * @notice This function emits 1 events: + * - LogTreasuryProductTokenSet + */ + function setProductToken(uint256 productId, address erc20Address) + external override + whenNotSuspended + onlyInstanceOperator + { + require(erc20Address != address(0), "ERROR:TRS-010:TOKEN_ADDRESS_ZERO"); + + require(_component.isProduct(productId), "ERROR:TRS-011:NOT_PRODUCT"); + require(address(_componentToken[productId]) == address(0), "ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET"); + + IComponent component = _component.getComponent(productId); + require(address(IProduct(address(component)).getToken()) == erc20Address, "ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING"); + + uint256 riskpoolId = _pool.getRiskPoolForProduct(productId); + + // require if riskpool token is already set and product token does match riskpool token + require(address(_componentToken[riskpoolId]) == address(0) + || address(_componentToken[riskpoolId]) == erc20Address, + "ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING"); + + _componentToken[productId] = IERC20(erc20Address); + _componentToken[riskpoolId] = IERC20(erc20Address); + + emit LogTreasuryProductTokenSet(productId, riskpoolId, erc20Address); + } + + /** + * @dev Sets the address of the instance wallet. + * @param instanceWalletAddress The address of the instance wallet to be set. + * + * Emits a LogTreasuryInstanceWalletSet event. + * @notice This function emits 1 events: + * - LogTreasuryInstanceWalletSet + */ + function setInstanceWallet(address instanceWalletAddress) + external override + whenNotSuspended + onlyInstanceOperator + { + require(instanceWalletAddress != address(0), "ERROR:TRS-015:WALLET_ADDRESS_ZERO"); + _instanceWalletAddress = instanceWalletAddress; + + emit LogTreasuryInstanceWalletSet (instanceWalletAddress); + } + + /** + * @dev Sets the wallet address for a specific riskpool. + * @param riskpoolId The ID of the riskpool. + * @param riskpoolWalletAddress The wallet address to set for the riskpool. + * + * Requirements: + * - The caller must be the instance operator. + * - The riskpool must exist. + * - The wallet address cannot be the zero address. + * + * Emits a {LogTreasuryRiskpoolWalletSet} event. + * @notice This function emits 1 events: + * - LogTreasuryRiskpoolWalletSet + */ + function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) + external override + whenNotSuspended + onlyInstanceOperator + { + IComponent component = _component.getComponent(riskpoolId); + require(_component.isRiskpool(riskpoolId), "ERROR:TRS-016:NOT_RISKPOOL"); + require(riskpoolWalletAddress != address(0), "ERROR:TRS-017:WALLET_ADDRESS_ZERO"); + _riskpoolWallet[riskpoolId] = riskpoolWalletAddress; + + emit LogTreasuryRiskpoolWalletSet (riskpoolId, riskpoolWalletAddress); + } + + /** + * @dev Creates a fee specification for a given component. + * @param componentId The ID of the component for which to create the fee specification. + * @param fixedFee The fixed fee amount in wei. + * @param fractionalFee The fractional fee amount as a percentage of the total value. + * @param feeCalculationData Additional data required for calculating the fee. + * @return Returns a FeeSpecification struct containing the fee details. + */ + function createFeeSpecification( + uint256 componentId, + uint256 fixedFee, + uint256 fractionalFee, + bytes calldata feeCalculationData + ) + external override + view + returns(FeeSpecification memory) + { + require(_component.isProduct(componentId) || _component.isRiskpool(componentId), "ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL"); + require(fractionalFee <= FRACTIONAL_FEE_MAX, "ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG"); + + return FeeSpecification( + componentId, + fixedFee, + fractionalFee, + feeCalculationData, + block.timestamp, // solhint-disable-line + block.timestamp // solhint-disable-line + ); + } + + /** + * @dev Sets the premium fees for a specific component. + * @param feeSpec The fee specification for the component. + * Includes the component ID, fixed fee, and fractional fee. + * + * Emits a LogTreasuryPremiumFeesSet event with the following parameters: + * - componentId: The ID of the component for which the fees were set. + * - fixedFee: The fixed fee for the component. + * - fractionalFee: The fractional fee for the component. + * + * Requirements: + * - The caller must be the instance operator. + * - The component ID must correspond to a valid product. + * - The contract must not be suspended. + * @notice This function emits 1 events: + * - LogTreasuryPremiumFeesSet + */ + function setPremiumFees(FeeSpecification calldata feeSpec) + external override + whenNotSuspended + onlyInstanceOperator + { + require(_component.isProduct(feeSpec.componentId), "ERROR:TRS-022:NOT_PRODUCT"); + + // record original creation timestamp + uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt; + _fees[feeSpec.componentId] = feeSpec; + + // set original creation timestamp if fee spec already existed + if (originalCreatedAt > 0) { + _fees[feeSpec.componentId].createdAt = originalCreatedAt; + } + + emit LogTreasuryPremiumFeesSet ( + feeSpec.componentId, + feeSpec.fixedFee, + feeSpec.fractionalFee); + } + + + /** + * @dev Sets the fee specification for a given component, which includes the fixed and fractional fees. + * @param feeSpec The fee specification struct containing the component ID, fixed fee, and fractional fee. + * + * Emits a {LogTreasuryCapitalFeesSet} event with the component ID, fixed fee, and fractional fee. + * @notice This function emits 1 events: + * - LogTreasuryCapitalFeesSet + */ + function setCapitalFees(FeeSpecification calldata feeSpec) + external override + whenNotSuspended + onlyInstanceOperator + { + require(_component.isRiskpool(feeSpec.componentId), "ERROR:TRS-023:NOT_RISKPOOL"); + + // record original creation timestamp + uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt; + _fees[feeSpec.componentId] = feeSpec; + + // set original creation timestamp if fee spec already existed + if (originalCreatedAt > 0) { + _fees[feeSpec.componentId].createdAt = originalCreatedAt; + } + + emit LogTreasuryCapitalFeesSet ( + feeSpec.componentId, + feeSpec.fixedFee, + feeSpec.fractionalFee); + } + + + /** + * @dev Calculates the fee amount and net amount for a given component ID and amount. + * @param componentId The ID of the component for which the fee is being calculated. + * @param amount The amount for which the fee is being calculated. + * @return feeAmount The amount of the fee calculated. + * @return netAmount The net amount after the fee has been deducted. + */ + function calculateFee(uint256 componentId, uint256 amount) + public + view + returns(uint256 feeAmount, uint256 netAmount) + { + FeeSpecification memory feeSpec = getFeeSpecification(componentId); + require(feeSpec.createdAt > 0, "ERROR:TRS-024:FEE_SPEC_UNDEFINED"); + feeAmount = _calculateFee(feeSpec, amount); + netAmount = amount - feeAmount; + } + + + /* + * Process the remaining premium by calculating the remaining amount, the fees for that amount and + * then transfering the fees to the instance wallet and the net premium remaining to the riskpool. + * This will revert if no fee structure is defined. + */ + /** + * @dev Processes the premium for a given policy process ID. + * @param processId The process ID of the policy to process the premium for. + * @return success A boolean indicating whether the premium was successfully processed or not. + * @return feeAmount The amount of fees charged for processing the premium. + * @return netPremiumAmount The net amount of premium received after deducting fees. + */ + function processPremium(bytes32 processId) + external override + whenNotSuspended + onlyPolicyFlow("Treasury") + returns( + bool success, + uint256 feeAmount, + uint256 netPremiumAmount + ) + { + IPolicy.Policy memory policy = _policy.getPolicy(processId); + + if (policy.premiumPaidAmount < policy.premiumExpectedAmount) { + (success, feeAmount, netPremiumAmount) + = processPremium(processId, policy.premiumExpectedAmount - policy.premiumPaidAmount); + } + } + + /* + * Process the premium by calculating the fees for the amount and + * then transfering the fees to the instance wallet and the net premium to the riskpool. + * This will revert if no fee structure is defined. + */ + /** + * @dev Processes a premium payment for a policy. + * @param processId The ID of the policy process. + * @param amount The amount of premium to be processed. + * @return success A boolean indicating whether the premium payment was successful or not. + * @return feeAmount The amount of fees collected from the premium payment. + * @return netAmount The net amount of premium transferred to the riskpool wallet. + * + * Requirements: + * - The policy process must exist. + * - The premium payment amount must not exceed the expected premium amount. + * - The caller must have sufficient allowance to transfer the requested amount of tokens. + * - The instance wallet and riskpool wallet must be defined for the policy process. + * - The caller must be authorized to perform the action. + * + * Emits: + * - LogTreasuryFeesTransferred: When the fees are successfully transferred to the instance wallet. + * - LogTreasuryPremiumTransferred: When the net premium amount is successfully transferred to the riskpool wallet. + * - LogTreasuryPremiumProcessed: When the premium payment is successfully processed. + * + * Throws: + * - "ERROR:TRS-030:AMOUNT_TOO_BIG": If the premium payment amount exceeds the expected premium amount. + * - "ERROR:TRS-031:FEE_TRANSFER_FAILED": If the transfer of fees to the instance wallet fails. + * - "ERROR:TRS-032:PREMIUM_TRANSFER_FAILED": If the transfer of net premium to the riskpool wallet fails. + * @notice This function emits 3 events: + * - LogTreasuryPremiumProcessed + * - LogTreasuryPremiumTransferred + * - LogTreasuryFeesTransferred + */ + function processPremium(bytes32 processId, uint256 amount) + public override + whenNotSuspended + instanceWalletDefined + riskpoolWalletDefinedForProcess(processId) + onlyPolicyFlow("Treasury") + returns( + bool success, + uint256 feeAmount, + uint256 netAmount + ) + { + IPolicy.Policy memory policy = _policy.getPolicy(processId); + require( + policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, + "ERROR:TRS-030:AMOUNT_TOO_BIG" + ); + + IPolicy.Metadata memory metadata = _policy.getMetadata(processId); + (feeAmount, netAmount) + = calculateFee(metadata.productId, amount); + + // check if allowance covers requested amount + IERC20 token = getComponentToken(metadata.productId); + if (token.allowance(metadata.owner, address(this)) < amount) { + success = false; + return (success, feeAmount, netAmount); + } + + // collect premium fees + success = TransferHelper.unifiedTransferFrom(token, metadata.owner, _instanceWalletAddress, feeAmount); + emit LogTreasuryFeesTransferred(metadata.owner, _instanceWalletAddress, feeAmount); + require(success, "ERROR:TRS-031:FEE_TRANSFER_FAILED"); + + // transfer premium net amount to riskpool for product + // actual transfer of net premium to riskpool + (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId); + success = TransferHelper.unifiedTransferFrom(token, metadata.owner, riskpoolWalletAddress, netAmount); + + emit LogTreasuryPremiumTransferred(metadata.owner, riskpoolWalletAddress, netAmount); + require(success, "ERROR:TRS-032:PREMIUM_TRANSFER_FAILED"); + + emit LogTreasuryPremiumProcessed(processId, amount); + } + + + /** + * @dev Processes a payout for a specific process and payout ID. + * @param processId The ID of the process for which the payout is being processed. + * @param payoutId The ID of the payout being processed. + * @return feeAmount The amount of fees deducted from the payout. + * @return netPayoutAmount The net payout amount after fees have been deducted. + * @notice This function emits 2 events: + * - LogTreasuryPayoutTransferred + * - LogTreasuryPayoutProcessed + */ + function processPayout(bytes32 processId, uint256 payoutId) + external override + whenNotSuspended + instanceWalletDefined + riskpoolWalletDefinedForProcess(processId) + onlyPolicyFlow("Treasury") + returns( + uint256 feeAmount, + uint256 netPayoutAmount + ) + { + IPolicy.Metadata memory metadata = _policy.getMetadata(processId); + IERC20 token = getComponentToken(metadata.productId); + (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId); + + IPolicy.Payout memory payout = _policy.getPayout(processId, payoutId); + require( + token.balanceOf(riskpoolWalletAddress) >= payout.amount, + "ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL" + ); + require( + token.allowance(riskpoolWalletAddress, address(this)) >= payout.amount, + "ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL" + ); + + // actual payout to policy holder + bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWalletAddress, metadata.owner, payout.amount); + feeAmount = 0; + netPayoutAmount = payout.amount; + + emit LogTreasuryPayoutTransferred(riskpoolWalletAddress, metadata.owner, payout.amount); + require(success, "ERROR:TRS-044:PAYOUT_TRANSFER_FAILED"); + + emit LogTreasuryPayoutProcessed(riskpoolId, metadata.owner, payout.amount); + } + + /** + * @dev Processes capital for a given bundle ID and calculates fees. Transfers fees to the instance wallet and net capital to the riskpool wallet. + * @param bundleId The ID of the bundle for which to process capital. + * @param capitalAmount The amount of capital to be processed. + * @return feeAmount The amount of fees calculated and transferred to the instance wallet. + * @return netCapitalAmount The amount of net capital transferred to the riskpool wallet. + * @notice This function emits 3 events: + * - LogTreasuryFeesTransferred + * - LogTreasuryCapitalProcessed + * - LogTreasuryCapitalTransferred + */ + function processCapital(uint256 bundleId, uint256 capitalAmount) + external override + whenNotSuspended + instanceWalletDefined + riskpoolWalletDefinedForBundle(bundleId) + onlyRiskpoolService + returns( + uint256 feeAmount, + uint256 netCapitalAmount + ) + { + // obtain relevant fee specification + IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); + address bundleOwner = _bundle.getOwner(bundleId); + + FeeSpecification memory feeSpec = getFeeSpecification(bundle.riskpoolId); + require(feeSpec.createdAt > 0, "ERROR:TRS-050:FEE_SPEC_UNDEFINED"); + + // obtain relevant token for product/riskpool pair + IERC20 token = _componentToken[bundle.riskpoolId]; + + // calculate fees and net capital + feeAmount = _calculateFee(feeSpec, capitalAmount); + netCapitalAmount = capitalAmount - feeAmount; + + // check balance and allowance before starting any transfers + require(token.balanceOf(bundleOwner) >= capitalAmount, "ERROR:TRS-052:BALANCE_TOO_SMALL"); + require(token.allowance(bundleOwner, address(this)) >= capitalAmount, "ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL"); + + bool success = TransferHelper.unifiedTransferFrom(token, bundleOwner, _instanceWalletAddress, feeAmount); + + emit LogTreasuryFeesTransferred(bundleOwner, _instanceWalletAddress, feeAmount); + require(success, "ERROR:TRS-054:FEE_TRANSFER_FAILED"); + + // transfer net capital + address riskpoolWallet = getRiskpoolWallet(bundle.riskpoolId); + success = TransferHelper.unifiedTransferFrom(token, bundleOwner, riskpoolWallet, netCapitalAmount); + + emit LogTreasuryCapitalTransferred(bundleOwner, riskpoolWallet, netCapitalAmount); + require(success, "ERROR:TRS-055:CAPITAL_TRANSFER_FAILED"); + + emit LogTreasuryCapitalProcessed(bundle.riskpoolId, bundleId, capitalAmount); + } + + /** + * @dev Processes a withdrawal of a specified amount from a bundle, transferring the funds to the bundle owner's wallet. + * @param bundleId The ID of the bundle from which the withdrawal is made. + * @param amount The amount of tokens to withdraw. + * @return feeAmount The amount of fees charged for the withdrawal. + * @return netAmount The net amount of tokens transferred to the bundle owner's wallet. + * + * Requirements: + * - The function can only be called when the contract is not suspended. + * - The instance wallet must be defined. + * - The riskpool wallet must be defined for the specified bundle. + * - Only the riskpool service can call this function. + * - The bundle must have sufficient capacity or balance to cover the withdrawal. + * - The riskpool wallet must have sufficient balance of the token to cover the withdrawal. + * - The contract must have sufficient allowance to withdraw the token from the riskpool wallet. + * - The withdrawal transfer must be successful. + * + * Emits a {LogTreasuryWithdrawalTransferred} event indicating the transfer of the withdrawn tokens to the bundle owner's wallet. + * Emits a {LogTreasuryWithdrawalProcessed} event indicating the successful processing of the withdrawal. + * @notice This function emits 2 events: + * - LogTreasuryWithdrawalTransferred + * - LogTreasuryWithdrawalProcessed + */ + function processWithdrawal(uint256 bundleId, uint256 amount) + external override + whenNotSuspended + instanceWalletDefined + riskpoolWalletDefinedForBundle(bundleId) + onlyRiskpoolService + returns( + uint256 feeAmount, + uint256 netAmount + ) + { + // obtain relevant bundle info + IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); + require( + bundle.capital >= bundle.lockedCapital + amount + || (bundle.lockedCapital == 0 && bundle.balance >= amount), + "ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL" + ); + + // obtain relevant token for product/riskpool pair + address riskpoolWallet = getRiskpoolWallet(bundle.riskpoolId); + address bundleOwner = _bundle.getOwner(bundleId); + IERC20 token = _componentToken[bundle.riskpoolId]; + + require( + token.balanceOf(riskpoolWallet) >= amount, + "ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL" + ); + require( + token.allowance(riskpoolWallet, address(this)) >= amount, + "ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL" + ); + + // TODO consider to introduce withdrawal fees + // ideally symmetrical reusing capital fee spec for riskpool + feeAmount = 0; + netAmount = amount; + bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWallet, bundleOwner, netAmount); + + emit LogTreasuryWithdrawalTransferred(riskpoolWallet, bundleOwner, netAmount); + require(success, "ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED"); + + emit LogTreasuryWithdrawalProcessed(bundle.riskpoolId, bundleId, netAmount); + } + + + /** + * @dev Returns the ERC20 token address associated with the given component ID. + * @param componentId The ID of the component to retrieve the token address for. + * @return token The ERC20 token address associated with the component ID. + */ + function getComponentToken(uint256 componentId) + public override + view + returns(IERC20 token) + { + require(_component.isProduct(componentId) || _component.isRiskpool(componentId), "ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL"); + return _componentToken[componentId]; + } + + /** + * @dev Returns the fee specification of a given component. + * @param componentId The ID of the component. + * @return fees The fee specification of the component. + */ + function getFeeSpecification(uint256 componentId) public override view returns(FeeSpecification memory) { + return _fees[componentId]; + } + + /** + * @dev Returns the value of the constant FRACTION_FULL_UNIT. + * @return The value of FRACTION_FULL_UNIT as an unsigned integer. + */ + function getFractionFullUnit() public override pure returns(uint256) { + return FRACTION_FULL_UNIT; + } + + /** + * @dev Returns the address of the instance wallet. + * @return The address of the instance wallet. + */ + function getInstanceWallet() public override view returns(address) { + return _instanceWalletAddress; + } + + /** + * @dev Returns the wallet address of the specified risk pool. + * @param riskpoolId The unique identifier of the risk pool. + * @return The wallet address associated with the specified risk pool. + */ + function getRiskpoolWallet(uint256 riskpoolId) public override view returns(address) { + return _riskpoolWallet[riskpoolId]; + } + + + /** + * @dev Calculates the premium fee for a given fee specification and process ID. + * @param feeSpec The fee specification to be used for the calculation. + * @param processId The process ID of the application for which the fee is being calculated. + * @return application The application object retrieved from the policy contract. + * @return feeAmount The amount of the premium fee calculated based on the fee specification and premium amount of the application. + */ + function _calculatePremiumFee( + FeeSpecification memory feeSpec, + bytes32 processId + ) + internal + view + returns ( + IPolicy.Application memory application, + uint256 feeAmount + ) + { + application = _policy.getApplication(processId); + feeAmount = _calculateFee(feeSpec, application.premiumAmount); + } + + + /** + * @dev Calculates the fee amount based on the given fee specification and the transaction amount. + * @param feeSpec The fee specification in the form of a FeeSpecification struct. + * @param amount The transaction amount to calculate the fee for. + * @return feeAmount The calculated fee amount. + */ + function _calculateFee( + FeeSpecification memory feeSpec, + uint256 amount + ) + internal + pure + returns (uint256 feeAmount) + { + if (feeSpec.feeCalculationData.length > 0) { + revert("ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED"); + } + + // start with fixed fee + feeAmount = feeSpec.fixedFee; + + // add fractional fee on top + if (feeSpec.fractionalFee > 0) { + feeAmount += (feeSpec.fractionalFee * amount) / FRACTION_FULL_UNIT; + } + + // require that fee is smaller than amount + require(feeAmount < amount, "ERROR:TRS-091:FEE_TOO_BIG"); + } + + /** + * @dev Returns the riskpool ID and wallet address for a given process ID. + * @param processId The ID of the process. + * @return riskpoolId The ID of the riskpool associated with the process. + * @return riskpoolWalletAddress The wallet address of the riskpool associated with the process. + */ + function _getRiskpoolWallet(bytes32 processId) + internal + view + returns(uint256 riskpoolId, address riskpoolWalletAddress) + { + IPolicy.Metadata memory metadata = _policy.getMetadata(processId); + riskpoolId = _pool.getRiskPoolForProduct(metadata.productId); + require(riskpoolId > 0, "ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL"); + riskpoolWalletAddress = _riskpoolWallet[riskpoolId]; + } +} diff --git a/contracts-christoph2806/services/ComponentOwnerService.sol b/contracts-christoph2806/services/ComponentOwnerService.sol new file mode 100644 index 00000000..1d1faa4c --- /dev/null +++ b/contracts-christoph2806/services/ComponentOwnerService.sol @@ -0,0 +1,113 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../modules/ComponentController.sol"; +// TODO ComponentOwnerService should not know of the PoolController - if we have a better idea how to build this, it should be changed. +import "../modules/PoolController.sol"; +import "../shared/CoreController.sol"; + +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol"; + +contract ComponentOwnerService is + IComponentOwnerService, + CoreController +{ + ComponentController private _component; + + modifier onlyOwnerWithRoleFromComponent(IComponent component) { + address owner = component.getOwner(); + bytes32 requiredRole = _component.getRequiredRole(component.getType()); + require(_msgSender() == owner, "ERROR:COS-001:NOT_OWNER"); + require(_access.hasRole(requiredRole, owner), "ERROR:COS-002:REQUIRED_ROLE_MISSING"); + _; + } + + modifier onlyOwnerWithRole(uint256 id) { + IComponent component = _component.getComponent(id); + require(address(component) != address(0), "ERROR:COS-003:COMPONENT_ID_INVALID"); + + address owner = component.getOwner(); + bytes32 requiredRole = _component.getRequiredRole(_component.getComponentType(id)); + + require(_msgSender() == owner, "ERROR:COS-004:NOT_OWNER"); + require(_access.hasRole(requiredRole, owner), "ERROR:COS-005:REQUIRED_ROLE_MISSING"); + _; + } + + /** + * @dev This function is called after the contract is initialized and can only be called once. It sets the component controller contract address. + */ + function _afterInitialize() internal override onlyInitializing { + _component = ComponentController(_getContractAddress("Component")); + } + + /** + * @dev Propose a new component to be added to the system. + * @param component The component to be proposed. + */ + function propose(IComponent component) + external override + onlyOwnerWithRoleFromComponent(component) + { + _component.propose(component); + } + + /** + * @dev Stake function allows the owner to stake a specific id. + * + * @param id The id of the stake. + * + */ + function stake(uint256 id) + external override + onlyOwnerWithRole(id) + { + revert("ERROR:COS-006:IMPLEMENATION_MISSING"); + } + + /** + * @dev Allows the owner to withdraw a specific asset by its ID. + * @param id The ID of the asset to be withdrawn. + */ + function withdraw(uint256 id) + external override + onlyOwnerWithRole(id) + { + revert("ERROR:COS-007:IMPLEMENATION_MISSING"); + } + + + /** + * @dev Pauses a specific component with the given ID. + * @param id The ID of the component to be paused. + */ + function pause(uint256 id) + external override + onlyOwnerWithRole(id) + { + _component.pause(id); + } + + /** + * @dev Unpauses a component with the specified ID. + * @param id The ID of the component to unpause. + */ + function unpause(uint256 id) + external override + onlyOwnerWithRole(id) + { + _component.unpause(id); + } + + /** + * @dev Archives a component with the given ID from the component owner's inventory. + * @param id The ID of the component to be archived. + */ + function archive(uint256 id) + external override + onlyOwnerWithRole(id) + { + _component.archiveFromComponentOwner(id); + } +} \ No newline at end of file diff --git a/contracts-christoph2806/services/InstanceOperatorService.sol b/contracts-christoph2806/services/InstanceOperatorService.sol new file mode 100644 index 00000000..70c9ae56 --- /dev/null +++ b/contracts-christoph2806/services/InstanceOperatorService.sol @@ -0,0 +1,393 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../modules/AccessController.sol"; +import "../modules/BundleController.sol"; +import "../modules/ComponentController.sol"; +import "../modules/PoolController.sol"; +import "../modules/TreasuryModule.sol"; +import "../shared/CoreController.sol"; +import "../test/TestProduct.sol"; +import "../tokens/BundleToken.sol"; + +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/components/IProduct.sol"; +import "@etherisc/gif-interface/contracts/modules/IQuery.sol"; +import "@etherisc/gif-interface/contracts/modules/ITreasury.sol"; +import "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol"; + +import "@openzeppelin/contracts/access/Ownable.sol"; + +contract InstanceOperatorService is + IInstanceOperatorService, + CoreController, + Ownable +{ + ComponentController private _component; + PoolController private _pool; + TreasuryModule private _treasury; + + modifier onlyInstanceOperatorAddress() { + require(owner() == _msgSender(), "ERROR:IOS-001:NOT_INSTANCE_OPERATOR"); + _; + } + + /** + * @dev Performs the necessary setup after contract initialization. + * - Sets the component, pool, and treasury contracts. + * - Transfers ownership to the message sender. + * - Links the bundle module to the bundle token. + * - Sets the default admin role. + */ + function _afterInitialize() internal override onlyInitializing { + _component = ComponentController(_getContractAddress("Component")); + _pool = PoolController(_getContractAddress("Pool")); + _treasury = TreasuryModule(_getContractAddress("Treasury")); + + _transferOwnership(_msgSender()); + _linkBundleModuleToBundleToken(); + _setDefaultAdminRole(); + } + + /** + * @dev Sets the default admin role for the contract calling this function. + * + * + */ + function _setDefaultAdminRole() private { + AccessController access = AccessController(_getContractAddress("Access")); + access.setDefaultAdminRole(address(this)); + } + + /** + * @dev Links the Bundle module to the BundleToken contract. + */ + function _linkBundleModuleToBundleToken() private { + BundleToken token = BundleToken(_getContractAddress("BundleToken")); + address bundleAddress = _getContractAddress("Bundle"); + token.setBundleModule(bundleAddress); + } + + /* registry */ + /** + * @dev Prepares a new release by calling the prepareRelease function from the Registry contract. + * @param _newRelease The hash of the new release. + * + * Requirements: + * - Caller must be the instance operator address. + */ + function prepareRelease(bytes32 _newRelease) + external override + onlyInstanceOperatorAddress + { + _registry.prepareRelease(_newRelease); + } + + /** + * @dev Registers a contract in the registry. + * @param _contractName The name of the contract to be registered. + * @param _contractAddress The address of the contract to be registered. + */ + function register(bytes32 _contractName, address _contractAddress) + external override + onlyInstanceOperatorAddress + { + _registry.register(_contractName, _contractAddress); + } + + /** + * @dev Deregisters a contract from the registry. + * @param _contractName The name of the contract to be deregistered. + */ + function deregister(bytes32 _contractName) + external override + onlyInstanceOperatorAddress + { + _registry.deregister(_contractName); + } + + /** + * @dev Registers a contract in a specific release. + * @param _release The release identifier where the contract will be registered. + * @param _contractName The name of the contract to be registered. + * @param _contractAddress The address of the contract to be registered. + */ + function registerInRelease( + bytes32 _release, + bytes32 _contractName, + address _contractAddress + ) + external override + onlyInstanceOperatorAddress + { + _registry.registerInRelease(_release, _contractName, _contractAddress); + } + + /** + * @dev Deregisters a contract from a specific release in the registry. + * @param _release The identifier of the release to deregister the contract from. + * @param _contractName The name of the contract to be deregistered. + */ + function deregisterInRelease(bytes32 _release, bytes32 _contractName) + external override + onlyInstanceOperatorAddress + { + _registry.deregisterInRelease(_release, _contractName); + } + + /* access */ + /** + * @dev Adds a new role to the access control contract. + * @param _role The name of the new role to be added. + */ + function createRole(bytes32 _role) + external override + onlyInstanceOperatorAddress + { + _access.addRole(_role); + } + + /** + * @dev Invalidates a role. + * @param _role The role to invalidate. + */ + function invalidateRole(bytes32 _role) + external override + onlyInstanceOperatorAddress + { + _access.invalidateRole(_role); + } + + /** + * @dev Grants a role to a principal. + * @param role The role to be granted. + * @param principal The address of the principal to whom the role is granted. + */ + function grantRole(bytes32 role, address principal) + external override + onlyInstanceOperatorAddress + { + _access.grantRole(role, principal); + } + + /** + * @dev Revokes a role from a principal. + * @param role The role to revoke. + * @param principal The address of the principal to revoke the role from. + */ + function revokeRole(bytes32 role, address principal) + external override + onlyInstanceOperatorAddress + { + _access.revokeRole(role, principal); + } + + /* component */ + /** + * @dev Approves a component with the given ID and sets its corresponding riskpool ID in the pool contract. + * @param id The ID of the component to be approved. + */ + function approve(uint256 id) + external override + onlyInstanceOperatorAddress + { + _component.approve(id); + + if (_component.isProduct(id)) { + IComponent component = _component.getComponent(id); + IProduct product = IProduct(address(component)); + + _pool.setRiskpoolForProduct( + id, + product.getRiskpoolId()); + } + } + + /** + * @dev Declines a component with the specified ID. + * @param id The ID of the component to decline. + */ + function decline(uint256 id) + external override + onlyInstanceOperatorAddress + { + _component.decline(id); + } + + /** + * @dev Suspends the component with the given ID. + * @param id The ID of the component to be suspended. + */ + function suspend(uint256 id) + external override + onlyInstanceOperatorAddress + { + _component.suspend(id); + } + + /** + * @dev Resumes the execution of a paused component instance. + * @param id The ID of the component instance to be resumed. + */ + function resume(uint256 id) + external override + onlyInstanceOperatorAddress + { + _component.resume(id); + } + + /** + * @dev Archives a component with the given ID from the instance operator's address. + * @param id The ID of the component to be archived. + */ + function archive(uint256 id) + external override + onlyInstanceOperatorAddress + { + _component.archiveFromInstanceOperator(id); + } + + // service staking + // TODO implement setDefaultStaking staking + /** + * @dev Sets the default staking for a specific component type. + * @param componentType The type of component to set the default staking for. + * @param data The data containing the default staking information. + */ + function setDefaultStaking( + uint16 componentType, + bytes calldata data + ) + external override + onlyInstanceOperatorAddress + { + revert("ERROR:IOS-010:IMPLEMENATION_MISSING"); + } + + // TODO implement adjustStakingRequirements staking + /** + * @dev Adjusts the staking requirements for a specific instance operator by providing the operator ID and the new staking requirements. + * @param id The ID of the instance operator whose staking requirements are being adjusted. + * @param data The new staking requirements encoded as bytes. + */ + function adjustStakingRequirements( + uint256 id, + bytes calldata data + ) + external override + onlyInstanceOperatorAddress + { + revert("ERROR:IOS-011:IMPLEMENATION_MISSING"); + } + + /* treasury */ + /** + * @dev Suspends the treasury functionality. + * + * + */ + function suspendTreasury() + external override + onlyInstanceOperatorAddress + { + _treasury.suspend(); + } + + /** + * @dev Resumes the treasury contract. + * + * + */ + function resumeTreasury() + external override + onlyInstanceOperatorAddress + { + _treasury.resume(); + } + + /** + * @dev Sets the wallet address of the instance operator. + * @param walletAddress The address of the wallet to be set. + */ + function setInstanceWallet(address walletAddress) + external override + onlyInstanceOperatorAddress + { + _treasury.setInstanceWallet(walletAddress); + } + + /** + * @dev Sets the wallet address for a specific risk pool. + * @param riskpoolId The ID of the risk pool to set the wallet address for. + * @param riskpoolWalletAddress The address of the wallet to set for the specified risk pool. + */ + function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) + external override + onlyInstanceOperatorAddress + { + _treasury.setRiskpoolWallet(riskpoolId, riskpoolWalletAddress); + } + + /** + * @dev Sets the ERC20 token address for a given product ID. + * @param productId The ID of the product to set the token address for. + * @param erc20Address The address of the ERC20 token to set. + */ + function setProductToken(uint256 productId, address erc20Address) + external override + onlyInstanceOperatorAddress + { + _treasury.setProductToken(productId, erc20Address); + } + + /** + * @dev Returns a FeeSpecification object created with the given parameters. + * @param componentId The ID of the component for which the fee is being created. + * @param fixedFee The fixed fee amount to be charged for the component. + * @param fractionalFee The fractional fee to be charged for the component. + * @param feeCalculationData The data required for calculating the fee. + * @return Returns a FeeSpecification object with the given parameters. + */ + function createFeeSpecification( + uint256 componentId, + uint256 fixedFee, + uint256 fractionalFee, + bytes calldata feeCalculationData + ) + external override + view + returns(ITreasury.FeeSpecification memory) + { + return _treasury.createFeeSpecification( + componentId, + fixedFee, + fractionalFee, + feeCalculationData + ); + } + + /** + * @dev Sets the premium fees for the treasury. + * @param feeSpec The fee specification struct containing the following parameters: + * - feeType: The type of fee (e.g. premium fee). + * - numerator: The numerator of the fee percentage. + * - denominator: The denominator of the fee percentage. + */ + function setPremiumFees(ITreasury.FeeSpecification calldata feeSpec) + external override + onlyInstanceOperatorAddress + { + _treasury.setPremiumFees(feeSpec); + } + + /** + * @dev Sets the fee specification for capital fees in the treasury contract. + * @param feeSpec The fee specification struct containing the details of the capital fees. + */ + function setCapitalFees(ITreasury.FeeSpecification calldata feeSpec) + external override + onlyInstanceOperatorAddress + { + _treasury.setCapitalFees(feeSpec); + } +} diff --git a/contracts-christoph2806/services/InstanceService.sol b/contracts-christoph2806/services/InstanceService.sol new file mode 100644 index 00000000..4a273735 --- /dev/null +++ b/contracts-christoph2806/services/InstanceService.sol @@ -0,0 +1,597 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../modules/ComponentController.sol"; +import "../modules/BundleController.sol"; +import "../modules/PolicyController.sol"; +import "../modules/PoolController.sol"; +import "../modules/TreasuryModule.sol"; +import "../shared/CoreController.sol"; +import "../services/InstanceOperatorService.sol"; + +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/components/IOracle.sol"; +import "@etherisc/gif-interface/contracts/components/IProduct.sol"; +import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; +import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; +import "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol"; +import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; +import "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol"; +import "@etherisc/gif-interface/contracts/services/IOracleService.sol"; +import "@etherisc/gif-interface/contracts/services/IProductService.sol"; +import "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol"; +import "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol"; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; + +contract InstanceService is + IInstanceService, + CoreController +{ + bytes32 public constant BUNDLE_NAME = "Bundle"; + bytes32 public constant COMPONENT_NAME = "Component"; + bytes32 public constant POLICY_NAME = "Policy"; + bytes32 public constant POOL_NAME = "Pool"; + bytes32 public constant TREASURY_NAME = "Treasury"; + + bytes32 public constant COMPONENT_OWNER_SERVICE_NAME = "ComponentOwnerService"; + bytes32 public constant INSTANCE_OPERATOR_SERVICE_NAME = "InstanceOperatorService"; + bytes32 public constant ORACLE_SERVICE_NAME = "OracleService"; + bytes32 public constant PRODUCT_SERVICE_NAME = "ProductService"; + bytes32 public constant RISKPOOL_SERVICE_NAME = "RiskpoolService"; + + BundleController _bundle; + ComponentController _component; + PolicyController _policy; + PoolController _pool; + TreasuryModule private _treasury; + + mapping(uint256 /* chain id */ => string /* chain name */) private _chainName; + + /** + * @dev Internal function that is called after initialization is complete. It sets the bundle, component, policy, pool, and treasury controllers by retrieving their contract addresses. It also sets the chain names. + * + */ + function _afterInitialize() internal override onlyInitializing { + _bundle = BundleController(_getContractAddress(BUNDLE_NAME)); + _component = ComponentController(_getContractAddress(COMPONENT_NAME)); + _policy = PolicyController(_getContractAddress(POLICY_NAME)); + _pool = PoolController(_getContractAddress(POOL_NAME)); + _treasury = TreasuryModule(_getContractAddress(TREASURY_NAME)); + + _setChainNames(); + } + + /** + * @dev Sets the names for several blockchain networks by assigning them to their respective chain IDs. + * + * Sets the names for the Ethereum Mainnet/ETH, Goerli/ETH, Ganache, Gnosis/xDai, Sokol/SPOA, Polygon Mainnet/MATIC, Mumbai/MATIC, Avalanche C-Chain/AVAX and Avalanche Fuji Testnet/AVAX blockchain networks by assigning them to their respective chain IDs. + */ + function _setChainNames() internal { + _chainName[1] = "Ethereum Mainnet/ETH"; + _chainName[5] = "Goerli/ETH"; + _chainName[1337] = "Ganache"; + _chainName[100] = "Gnosis/xDai"; + _chainName[77] = "Sokol/SPOA"; + _chainName[137] = "Polygon Mainnet/MATIC"; + _chainName[8001] = "Mumbai/MATIC"; + _chainName[43114] = "Avalanche C-Chain/AVAX"; + _chainName[43113] = "Avalanche Fuji Testnet/AVAX"; + } + + /* instance service */ + /** + * @dev Returns the chain ID of the current blockchain. + * @return chainId The ID of the current blockchain. + */ + function getChainId() public override view returns(uint256 chainId) { + chainId = block.chainid; + } + + /** + * @dev Returns the name of the chain based on its ID. + * + * @return chainName The name of the chain as a string. + */ + function getChainName() public override view returns(string memory chainName) { + chainName = _chainName[block.chainid]; + } + + /** + * @dev Returns the instance ID of the contract, which is a hash of the chain ID and the registry address. + * + * @return instanceId The instance ID of the contract. + */ + function getInstanceId() public override view returns(bytes32 instanceId) { + instanceId = keccak256( + abi.encodePacked( + block.chainid, + address(_registry))); + } + + /** + * @dev Returns the address of the current instance operator. + * @return The address of the instance operator. + */ + function getInstanceOperator() external override view returns(address) { + InstanceOperatorService ios = InstanceOperatorService(_getContractAddress(INSTANCE_OPERATOR_SERVICE_NAME)); + return ios.owner(); + } + + /* registry */ + /** + * @dev Returns the address of the Component Owner Service contract. + * @return service The Component Owner Service contract address. + */ + function getComponentOwnerService() external override view returns(IComponentOwnerService service) { + return IComponentOwnerService(_getContractAddress(COMPONENT_OWNER_SERVICE_NAME)); + } + + /** + * @dev Returns the instance operator service contract address. + * @return service The instance operator service contract address. + */ + function getInstanceOperatorService() external override view returns(IInstanceOperatorService service) { + return IInstanceOperatorService(_getContractAddress(INSTANCE_OPERATOR_SERVICE_NAME)); + } + + /** + * @dev Returns the Oracle Service contract instance. + * @return service The instance of the Oracle Service contract. + */ + function getOracleService() external override view returns(IOracleService service) { + return IOracleService(_getContractAddress(ORACLE_SERVICE_NAME)); + } + + /** + * @dev Returns the address of the Product Service contract. + * @return service The Product Service contract address. + */ + function getProductService() external override view returns(IProductService service) { + return IProductService(_getContractAddress(PRODUCT_SERVICE_NAME)); + } + + /** + * @dev Returns the IRiskpoolService contract instance. + * @return service The IRiskpoolService contract instance. + */ + function getRiskpoolService() external override view returns(IRiskpoolService service) { + return IRiskpoolService(_getContractAddress(RISKPOOL_SERVICE_NAME)); + } + + /* registry */ + /** + * @dev Returns the current instance of the IRegistry contract. + * @return service The IRegistry contract instance. + */ + function getRegistry() external view returns(IRegistry service) { + return _registry; + } + + /** + * @dev Returns the number of contracts registered in the registry. + * @return numberOfContracts The total number of contracts registered in the registry. + */ + function contracts() external view override returns (uint256 numberOfContracts) { + numberOfContracts = _registry.contracts(); + } + + /** + * @dev Returns the name of the contract at the specified index in the registry. + * @param idx The index of the contract. + * @return name The name of the contract as a bytes32 value. + */ + function contractName(uint256 idx) external view override returns (bytes32 name) { + name = _registry.contractName(idx); + } + + /* access */ + /** + * @dev Returns the default admin role for the AccessControl contract. + * + * @return The default admin role as a bytes32 value. + */ + function getDefaultAdminRole() external override view returns(bytes32) { + return _access.getDefaultAdminRole(); + } + + /** + * @dev Returns the role identifier of the product owner role. + * @return The role identifier of the product owner role. + */ + function getProductOwnerRole() external override view returns(bytes32) { + return _access.getProductOwnerRole(); + } + + /** + * @dev Returns the role identifier for the oracle provider role. + * @return The role identifier for the oracle provider role. + */ + function getOracleProviderRole() external override view returns(bytes32) { + return _access.getOracleProviderRole(); + } + + /** + * @dev Returns the role identifier for the Riskpool Keeper role. + * @return The role identifier for the Riskpool Keeper role as a bytes32 value. + */ + function getRiskpoolKeeperRole() external override view returns(bytes32) { + return _access.getRiskpoolKeeperRole(); + } + + /** + * @dev Checks if an address has a specific role. + * @param role The bytes32 identifier of the role being checked. + * @param principal The address of the account being checked for the role. + * @return A boolean indicating whether the address has the specified role or not. + */ + function hasRole(bytes32 role, address principal) + external override view + returns(bool) + { + return _access.hasRole(role, principal); + } + + /* component */ + /** + * @dev Returns the number of products in the component contract. + * @return products The number of products in the component contract. + */ + function products() external override view returns(uint256) { + return _component.products(); + } + + /** + * @dev Returns the number of oracles registered in the component. + * @return The number of oracles registered in the component. + */ + function oracles() external override view returns(uint256) { + return _component.oracles(); + } + + /** + * @dev Returns the number of risk pools in the component. + * @return The number of risk pools as an unsigned integer. + */ + function riskpools() external override view returns(uint256) { + return _component.riskpools(); + } + + /** + * @dev Returns the component ID of a given component address. + * @param componentAddress The address of the component. + * @return componentId The ID of the component. + */ + function getComponentId(address componentAddress) external override view returns(uint256 componentId) { + return _component.getComponentId(componentAddress); + } + + /** + * @dev Returns the type of a component given its ID. + * @param componentId The ID of the component. + * @return componentType The type of the component. + */ + function getComponentType(uint256 componentId) + external override + view + returns(IComponent.ComponentType componentType) + { + return _component.getComponentType(componentId); + } + + /** + * @dev Returns the current state of a specific component. + * @param componentId The ID of the component to retrieve the state for. + * @return componentState The current state of the specified component. + */ + function getComponentState(uint256 componentId) + external override + view + returns(IComponent.ComponentState componentState) + { + componentState = _component.getComponentState(componentId); + } + + /** + * @dev Returns the component with the specified ID. + * @param id The ID of the component to retrieve. + * @return The component with the specified ID. + */ + function getComponent(uint256 id) external override view returns(IComponent) { + return _component.getComponent(id); + } + + /** + * @dev Returns the oracle ID at the specified index. + * @param idx The index of the oracle ID to retrieve. + * @return oracleId The ID of the oracle at the specified index. + */ + function getOracleId(uint256 idx) public view returns (uint256 oracleId) { + return _component.getOracleId(idx); + } + + /** + * @dev Returns the riskpool ID for the given index. + * @param idx The index of the riskpool ID to retrieve. + * @return riskpoolId The ID of the riskpool. + */ + function getRiskpoolId(uint256 idx) public view returns (uint256 riskpoolId) { + return _component.getRiskpoolId(idx); + } + + /** + * @dev Returns the product ID of the component at the given index. + * @param idx The index of the component. + * @return productId The product ID of the component. + */ + function getProductId(uint256 idx) public view returns (uint256 productId) { + return _component.getProductId(idx); + } + + /* service staking */ + /** + * @dev Returns the staking requirements for a specific ID. + * @param id The ID of the staking requirements to retrieve. + * @return data The staking requirements data as a bytes array. + */ + function getStakingRequirements(uint256 id) + external override + pure + returns(bytes memory data) + { + revert("ERROR:IS-001:IMPLEMENATION_MISSING"); + } + + /** + * @dev Returns the staked assets for a given ID. + * @param id The ID of the staked assets. + * @return data The staked assets data in bytes format. + */ + function getStakedAssets(uint256 id) + external override + pure + returns(bytes memory data) + { + revert("ERROR:IS-002:IMPLEMENATION_MISSING"); + } + + /* policy */ + /** + * @dev Returns the number of process IDs in the policy contract. + * @return numberOfProcessIds The number of process IDs. + */ + function processIds() external override view returns(uint256 numberOfProcessIds) { + numberOfProcessIds = _policy.processIds(); + } + + /** + * @dev Returns the metadata associated with a given business process key. + * @param bpKey The business process key for which to retrieve the metadata. + * @return metadata The metadata associated with the given business process key. + */ + function getMetadata(bytes32 bpKey) external override view returns(IPolicy.Metadata memory metadata) { + metadata = _policy.getMetadata(bpKey); + } + + /** + * @dev Returns the application data associated with the given process ID. + * @param processId The ID of the process to retrieve the application data for. + * @return application The application data associated with the given process ID. + */ + function getApplication(bytes32 processId) external override view returns(IPolicy.Application memory application) { + application = _policy.getApplication(processId); + } + + /** + * @dev Returns the policy associated with the given process ID. + * @param processId The ID of the process. + * @return policy The policy associated with the given process ID. + */ + function getPolicy(bytes32 processId) external override view returns(IPolicy.Policy memory policy) { + policy = _policy.getPolicy(processId); + } + + /** + * @dev Returns the number of claims associated with a given process ID. + * @param processId The ID of the process to retrieve the number of claims for. + * @return numberOfClaims The number of claims associated with the given process ID. + */ + function claims(bytes32 processId) external override view returns(uint256 numberOfClaims) { + numberOfClaims = _policy.getNumberOfClaims(processId); + } + + /** + * @dev Returns the number of payouts for a given processId. + * @param processId The unique identifier of the process. + * @return numberOfPayouts The total number of payouts for the given processId. + */ + function payouts(bytes32 processId) external override view returns(uint256 numberOfPayouts) { + numberOfPayouts = _policy.getNumberOfPayouts(processId); + } + + /** + * @dev Returns the claim with the given claimId for the specified processId. + * @param processId The unique identifier of the process. + * @param claimId The unique identifier of the claim. + * @return claim The claim data, including the claimId, processId, claimant, amount, and status. + */ + function getClaim(bytes32 processId, uint256 claimId) external override view returns (IPolicy.Claim memory claim) { + claim = _policy.getClaim(processId, claimId); + } + + /** + * @dev Returns the information of a specific payout. + * @param processId The ID of the process. + * @param payoutId The ID of the payout. + * @return payout The payout information, including the ID, amount, and recipient. + */ + function getPayout(bytes32 processId, uint256 payoutId) external override view returns (IPolicy.Payout memory payout) { + payout = _policy.getPayout(processId, payoutId); + } + + /* riskpool */ + /** + * @dev Returns the risk pool with the given ID. + * @param riskpoolId The ID of the risk pool to retrieve. + * @return riskPool The risk pool with the given ID. + */ + function getRiskpool(uint256 riskpoolId) external override view returns(IPool.Pool memory riskPool) { + return _pool.getRiskpool(riskpoolId); + } + + /** + * @dev Returns the full collateralization level of the pool. + * @return The full collateralization level as a uint256 value. + */ + function getFullCollateralizationLevel() external override view returns (uint256) { + return _pool.getFullCollateralizationLevel(); + } + + /** + * @dev Returns the capital amount of a given risk pool. + * @param riskpoolId The ID of the risk pool to retrieve the capital amount from. + * @return capitalAmount The amount of capital in the risk pool. + */ + function getCapital(uint256 riskpoolId) external override view returns(uint256 capitalAmount) { + return _pool.getRiskpool(riskpoolId).capital; + } + + /** + * @dev Returns the total value locked in a specific risk pool. + * @param riskpoolId The ID of the risk pool to query. + * @return totalValueLockedAmount The amount of tokens locked in the specified risk pool. + */ + function getTotalValueLocked(uint256 riskpoolId) external override view returns(uint256 totalValueLockedAmount) { + return _pool.getRiskpool(riskpoolId).lockedCapital; + } + + /** + * @dev Returns the available capacity of a risk pool. + * @param riskpoolId The ID of the risk pool to get the capacity for. + * @return capacityAmount The available capacity of the risk pool. + */ + function getCapacity(uint256 riskpoolId) external override view returns(uint256 capacityAmount) { + IPool.Pool memory pool = _pool.getRiskpool(riskpoolId); + return pool.capital - pool.lockedCapital; + } + + /** + * @dev Returns the balance amount of a specific risk pool. + * @param riskpoolId The ID of the risk pool to get the balance amount from. + * @return balanceAmount The balance amount of the specified risk pool. + */ + function getBalance(uint256 riskpoolId) external override view returns(uint256 balanceAmount) { + return _pool.getRiskpool(riskpoolId).balance; + } + + /** + * @dev Returns the number of active bundles for a given risk pool. + * @param riskpoolId The ID of the risk pool. + * @return numberOfActiveBundles The number of active bundles for the specified risk pool. + */ + function activeBundles(uint256 riskpoolId) external override view returns(uint256 numberOfActiveBundles) { + return _pool.activeBundles(riskpoolId); + } + + /** + * @dev Returns the active bundle ID for a given risk pool and bundle index. + * @param riskpoolId The ID of the risk pool. + * @param bundleIdx The index of the bundle within the risk pool. + * @return bundleId The ID of the active bundle. + */ + function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external override view returns(uint256 bundleId) { + return _pool.getActiveBundleId(riskpoolId, bundleIdx); + } + /** + * @dev Returns the maximum number of active bundles for a given risk pool ID. + * @param riskpoolId The ID of the risk pool to query. + * @return maximumNumberOfActiveBundles The maximum number of active bundles for the given risk pool ID. + */ + function getMaximumNumberOfActiveBundles(uint256 riskpoolId) external override view returns(uint256 maximumNumberOfActiveBundles) { + return _pool.getMaximumNumberOfActiveBundles(riskpoolId); + } + + /* bundle */ + /** + * @dev Returns the bundle token contract address. + * @return token The bundle token contract address. + */ + function getBundleToken() external override view returns(IBundleToken token) { + BundleToken bundleToken = _bundle.getToken(); + token = IBundleToken(bundleToken); + } + + /** + * @dev Returns the bundle with the given ID. + * @param bundleId The ID of the bundle to retrieve. + * @return bundle The bundle with the given ID. + */ + function getBundle(uint256 bundleId) external override view returns (IBundle.Bundle memory bundle) { + bundle = _bundle.getBundle(bundleId); + } + + /** + * @dev Returns the number of bundles in the `_bundle` contract. + * @return The number of bundles as a uint256 value. + */ + function bundles() external override view returns (uint256) { + return _bundle.bundles(); + } + + /** + * @dev Returns the number of unburnt bundles for a given risk pool ID. + * @param riskpoolId The ID of the risk pool to check. + * @return numberOfUnburntBundles The number of unburnt bundles for the given risk pool ID. + */ + function unburntBundles(uint256 riskpoolId) external override view returns(uint256 numberOfUnburntBundles) { + numberOfUnburntBundles = _bundle.unburntBundles(riskpoolId); + } + + /* treasury */ + /** + * @dev Returns the address of the treasury contract. + * + * @return The address of the treasury contract. + */ + function getTreasuryAddress() external override view returns(address) { + return address(_treasury); + } + + /** + * @dev Returns the address of the instance wallet associated with the treasury. + * + * @return The address of the instance wallet. + */ + function getInstanceWallet() external override view returns(address) { + return _treasury.getInstanceWallet(); + } + + /** + * @dev Returns the wallet address of the specified riskpool. + * @param riskpoolId The ID of the riskpool to retrieve the wallet address for. + * @return The address of the wallet associated with the specified riskpool. + */ + function getRiskpoolWallet(uint256 riskpoolId) external override view returns(address) { + return _treasury.getRiskpoolWallet(riskpoolId); + } + + /** + * @dev Returns the IERC20 token associated with the given component ID. + * @param componentId The ID of the component for which to get the associated token. + * @return The IERC20 token associated with the given component ID. + */ + function getComponentToken(uint256 componentId) external override view returns(IERC20) { + return _treasury.getComponentToken(componentId); + } + + /** + * @dev Returns the fraction of the treasury fee expressed in full units. + * + * @return The fraction of the treasury fee expressed in full units. + */ + function getFeeFractionFullUnit() external override view returns(uint256) { + return _treasury.getFractionFullUnit(); + } +} diff --git a/contracts-christoph2806/services/OracleService.sol b/contracts-christoph2806/services/OracleService.sol new file mode 100644 index 00000000..96ae5fe1 --- /dev/null +++ b/contracts-christoph2806/services/OracleService.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../shared/CoreController.sol"; + +import "@etherisc/gif-interface/contracts/modules/IQuery.sol"; +import "@etherisc/gif-interface/contracts/services/IOracleService.sol"; + + +contract OracleService is + IOracleService, + CoreController +{ + IQuery private _query; + + /** + * @dev Sets the `_query` variable to an instance of the `IQuery` contract. + */ + function _afterInitialize() internal override onlyInitializing { + _query = IQuery(_getContractAddress("Query")); + } + + /** + * @dev Allows a registered oracle to respond to a data request. + * @param _requestId The ID of the data request. + * @param _data The data requested by the smart contract. + */ + function respond(uint256 _requestId, bytes calldata _data) external override { + // function below enforces msg.sender to be a registered oracle + _query.respond(_requestId, _msgSender(), _data); + } +} diff --git a/contracts-christoph2806/services/ProductService.sol b/contracts-christoph2806/services/ProductService.sol new file mode 100644 index 00000000..8478edde --- /dev/null +++ b/contracts-christoph2806/services/ProductService.sol @@ -0,0 +1,83 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../shared/WithRegistry.sol"; +// import "../shared/CoreController.sol"; +import "@etherisc/gif-interface/contracts/modules/ILicense.sol"; + +import "@openzeppelin/contracts/utils/Context.sol"; + +contract ProductService is + WithRegistry, + // CoreController + Context + { + bytes32 public constant NAME = "ProductService"; + + // solhint-disable-next-line no-empty-blocks + /** + * @dev Constructor function that initializes the contract with a registry address. + * @param _registry The address of the registry contract. + */ + constructor(address _registry) WithRegistry(_registry) {} + + /** + * @dev Fallback function that ensures the caller is a registered product and authorized to execute the delegated policy flow. + */ + fallback() external { + // getAuthorizationStatus enforces msg.sender to be a registered product + (,bool isAuthorized, address policyFlow) = _license().getAuthorizationStatus(_msgSender()); + + require(isAuthorized, "ERROR:PRS-001:NOT_AUTHORIZED"); + require(policyFlow != address(0),"ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED"); + + _delegate(policyFlow); + } + + + /** + * @dev Delegates the current call to `implementation`. + * + * This function does not return to its internal call site, it will return directly to the external caller. + * This function is a 1:1 copy of _delegate from + * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.6/contracts/proxy/Proxy.sol + */ + /** + * @dev Delegates the current call to `implementation`. + * @param implementation Address of the contract to delegatecall. + */ + function _delegate(address implementation) internal { + assembly { + // Copy msg.data. We take full control of memory in this inline assembly + // block because it will not return to Solidity code. We overwrite the + // Solidity scratch pad at memory position 0. + calldatacopy(0, 0, calldatasize()) + + // Call the implementation. + // out and outsize are 0 because we don't know the size yet. + let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) + + // Copy the returned data. + returndatacopy(0, 0, returndatasize()) + + switch result + // delegatecall returns 0 on error. + case 0 { + revert(0, returndatasize()) + } + default { + return(0, returndatasize()) + } + } + } + + /** + * @dev Returns the instance of the License contract. + * + * @return license An instance of the ILicense interface representing the License contract. + */ + function _license() internal view returns (ILicense) { + return ILicense(registry.getContract("License")); + } + +} diff --git a/contracts-christoph2806/services/README.adoc b/contracts-christoph2806/services/README.adoc new file mode 100644 index 00000000..3cbee757 --- /dev/null +++ b/contracts-christoph2806/services/README.adoc @@ -0,0 +1,18 @@ += Services + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/services + +== Contracts + +{{ComponentOwnerService}} + +{{InstanceOperatorService}} + +{{InstanceService}} + +{{OracleService}} + +{{ProductService}} + +{{RiskpoolService}} diff --git a/contracts-christoph2806/services/RiskpoolService.sol b/contracts-christoph2806/services/RiskpoolService.sol new file mode 100644 index 00000000..42edf50d --- /dev/null +++ b/contracts-christoph2806/services/RiskpoolService.sol @@ -0,0 +1,340 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../modules/BundleController.sol"; +import "../modules/ComponentController.sol"; +import "../modules/TreasuryModule.sol"; +import "../shared/CoreController.sol"; + +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; +import "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol"; + +contract RiskpoolService is + IRiskpoolService, + CoreController +{ + bytes32 public constant RISKPOOL_NAME = "Riskpool"; + + ComponentController private _component; + BundleController private _bundle; + PoolController private _pool; + TreasuryModule private _treasury; + + modifier onlyProposedRiskpool() { + uint256 componentId = _component.getComponentId(_msgSender()); + require( + _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool, + "ERROR:RPS-001:SENDER_NOT_RISKPOOL" + ); + require( + _component.getComponentState(componentId) == IComponent.ComponentState.Proposed, + "ERROR:RPS-002:RISKPOOL_NOT_PROPOSED" + ); + _; + } + + modifier onlyActiveRiskpool() { + uint256 componentId = _component.getComponentId(_msgSender()); + require( + _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool, + "ERROR:RPS-003:SENDER_NOT_RISKPOOL" + ); + require( + _component.getComponentState(componentId) == IComponent.ComponentState.Active, + "ERROR:RPS-004:RISKPOOL_NOT_ACTIVE" + ); + _; + } + + modifier onlyOwningRiskpool(uint256 bundleId, bool mustBeActive) { + uint256 componentId = _component.getComponentId(_msgSender()); + bool isRiskpool = _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool; + IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); + require( + isRiskpool, + "ERROR:RPS-005:SENDER_NOT_RISKPOOL" + ); + require( + componentId == bundle.riskpoolId, + "ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH" + ); + if (mustBeActive) { + require( + _component.getComponentState(componentId) == IComponent.ComponentState.Active, + "ERROR:RPS-007:RISKPOOL_NOT_ACTIVE" + ); + } + _; + } + + modifier onlyOwningRiskpoolId(uint256 riskpoolId, bool mustBeActive) { + uint256 componentId = _component.getComponentId(_msgSender()); + bool isRiskpool = _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool; + require( + isRiskpool && componentId == riskpoolId, + "ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL" + ); + if (mustBeActive) { + require( + _component.getComponentState(componentId) == IComponent.ComponentState.Active, + "ERROR:RPS-009:RISKPOOL_NOT_ACTIVE" + ); + } + _; + } + + + /** + * @dev Sets the addresses of the BundleController, ComponentController, PoolController, and TreasuryModule contracts. + * + * + */ + function _afterInitialize() + internal override + onlyInitializing + { + _bundle = BundleController(_getContractAddress("Bundle")); + _component = ComponentController(_getContractAddress("Component")); + _pool = PoolController(_getContractAddress("Pool")); + _treasury = TreasuryModule(_getContractAddress("Treasury")); + } + + + /** + * @dev Registers a new risk pool with the given parameters. + * @param wallet The address of the wallet that will hold the collateral for the risk pool. + * @param erc20Token The address of the ERC20 token that will be used as collateral. + * @param collateralizationLevel The percentage of collateral required for the risk pool. + * @param sumOfSumInsuredCap The maximum sum of all insured amounts for the risk pool. + */ + function registerRiskpool( + address wallet, + address erc20Token, + uint256 collateralizationLevel, + uint256 sumOfSumInsuredCap + ) + external override + onlyProposedRiskpool + { + uint256 riskpoolId = _component.getComponentId(_msgSender()); + _pool.registerRiskpool( + riskpoolId, + wallet, + erc20Token, + collateralizationLevel, + sumOfSumInsuredCap + ); + } + + /** + * @dev Creates a new bundle with the given parameters and adds it to the active set of the riskpool. + * @param owner The address of the owner of the bundle. + * @param filter The filter applied to the bundle. + * @param initialCapital The initial capital of the bundle. + * @return bundleId The ID of the newly created bundle. + */ + function createBundle( + address owner, + bytes calldata filter, + uint256 initialCapital + ) + external override + onlyActiveRiskpool + returns(uint256 bundleId) + { + uint256 riskpoolId = _component.getComponentId(_msgSender()); + bundleId = _bundle.create(owner, riskpoolId, filter, 0); + + _pool.addBundleIdToActiveSet(riskpoolId, bundleId); + + (uint256 fee, uint256 netCapital) = _treasury.processCapital(bundleId, initialCapital); + + _bundle.fund(bundleId, netCapital); + _pool.fund(riskpoolId, netCapital); + } + + + /** + * @dev This function allows a user to fund a bundle with a specified amount. + * @param bundleId The ID of the bundle to be funded. + * @param amount The amount of tokens to be funded. + * @return netAmount The net amount of tokens that were funded after deducting fees. + */ + function fundBundle(uint256 bundleId, uint256 amount) + external override + onlyOwningRiskpool(bundleId, true) + returns( uint256 netAmount) + { + IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); + require( + bundle.state != IBundle.BundleState.Closed + && bundle.state != IBundle.BundleState.Burned, + "ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED" + ); + + uint256 feeAmount; + (feeAmount, netAmount) = _treasury.processCapital(bundleId, amount); + + _bundle.fund(bundleId, netAmount); + _pool.fund(bundle.riskpoolId, netAmount); + } + + + /** + * @dev Defunds a bundle by withdrawing a specified amount of tokens from it. + * @param bundleId The ID of the bundle to be defunded. + * @param amount The amount of tokens to be withdrawn from the bundle. + * @return netAmount The net amount of tokens withdrawn from the bundle after deducting any fees. + */ + function defundBundle(uint256 bundleId, uint256 amount) + external override + onlyOwningRiskpool(bundleId, true) + returns(uint256 netAmount) + { + IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); + require( + bundle.state != IBundle.BundleState.Burned, + "ERROR:RPS-011:BUNDLE_BURNED" + ); + + uint256 feeAmount; + (feeAmount, netAmount) = _treasury.processWithdrawal(bundleId, amount); + require(netAmount == amount, "ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION"); + + _bundle.defund(bundleId, amount); + _pool.defund(bundle.riskpoolId, netAmount); + } + + + /** + * @dev Locks a bundle, preventing it from being traded or redeemed. + * @param bundleId The ID of the bundle to be locked. + */ + function lockBundle(uint256 bundleId) + external override + onlyOwningRiskpool(bundleId, true) + { + uint256 riskpoolId = _component.getComponentId(_msgSender()); + _pool.removeBundleIdFromActiveSet(riskpoolId, bundleId); + _bundle.lock(bundleId); + } + + + /** + * @dev Unlocks a bundle for trading by adding its ID to the active set of a risk pool and unlocking the bundle. + * @param bundleId The ID of the bundle to be unlocked. + */ + function unlockBundle(uint256 bundleId) + external override + onlyOwningRiskpool(bundleId, true) + { + uint256 riskpoolId = _component.getComponentId(_msgSender()); + _pool.addBundleIdToActiveSet(riskpoolId, bundleId); + _bundle.unlock(bundleId); + } + + + /** + * @dev Closes a bundle and removes it from the active set of the owning riskpool. + * @param bundleId The ID of the bundle to be closed. + */ + function closeBundle(uint256 bundleId) + external override + onlyOwningRiskpool(bundleId, true) + { + uint256 riskpoolId = _component.getComponentId(_msgSender()); + + if (_bundle.getState(bundleId) == IBundle.BundleState.Active) { + _pool.removeBundleIdFromActiveSet(riskpoolId, bundleId); + } + + _bundle.close(bundleId); + } + + /** + * @dev Burns a closed bundle, withdrawing its remaining balance and defunding it from the riskpool and the pool. + * @param bundleId The ID of the bundle to burn. + */ + function burnBundle(uint256 bundleId) + external override + onlyOwningRiskpool(bundleId, true) + { + // ensure bundle is closed + IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); + require(bundle.state == IBundle.BundleState.Closed, "ERROR:RPS-020:BUNDLE_NOT_CLOSED"); + + // withdraw remaining balance + (uint256 feeAmount, uint256 netAmount) = _treasury.processWithdrawal(bundleId, bundle.balance); + + _bundle.defund(bundleId, netAmount); + _pool.defund(bundle.riskpoolId, netAmount); + + _bundle.burn(bundleId); + } + + /** + * @dev Collateralizes a policy by locking a specified amount of collateral for a given bundle and process ID. + * @param bundleId The ID of the bundle to which the policy belongs. + * @param processId The ID of the process associated with the policy. + * @param collateralAmount The amount of collateral to be locked for the policy. + */ + function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 collateralAmount) + external override + onlyOwningRiskpool(bundleId, true) + { + _bundle.collateralizePolicy(bundleId, processId, collateralAmount); + } + + /** + * @dev Processes a premium payment for a specific bundle. + * @param bundleId The ID of the bundle for which the premium is being paid. + * @param processId The ID of the premium payment process. + * @param amount The amount of the premium payment in wei. + */ + function processPremium(uint256 bundleId, bytes32 processId, uint256 amount) + external override + onlyOwningRiskpool(bundleId, true) + { + _bundle.processPremium(bundleId, processId, amount); + } + + /** + * @dev Processes a payout for a specific bundle. + * @param bundleId The ID of the bundle for which to process the payout. + * @param processId The ID of the payout process. + * @param amount The amount to be paid out. + */ + function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) + external override + onlyOwningRiskpool(bundleId, true) + { + _bundle.processPayout(bundleId, processId, amount); + } + + /** + * @dev Releases a policy for a given bundle and process ID. + * @param bundleId The ID of the bundle containing the policy to be released. + * @param processId The ID of the process associated with the policy to be released. + * @return collateralAmount The amount of collateral released for the policy. + */ + function releasePolicy(uint256 bundleId, bytes32 processId) + external override + onlyOwningRiskpool(bundleId, false) + returns(uint256 collateralAmount) + { + collateralAmount = _bundle.releasePolicy(bundleId, processId); + } + + /** + * @dev Sets the maximum number of active bundles for a given riskpool. + * @param riskpoolId The ID of the riskpool. + * @param maxNumberOfActiveBundles The maximum number of active bundles to be set. + */ + function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles) + external override + onlyOwningRiskpoolId(riskpoolId, true) + { + _pool.setMaximumNumberOfActiveBundles(riskpoolId, maxNumberOfActiveBundles); + } +} diff --git a/contracts-christoph2806/shared/CoreController.sol b/contracts-christoph2806/shared/CoreController.sol new file mode 100644 index 00000000..fa115f43 --- /dev/null +++ b/contracts-christoph2806/shared/CoreController.sol @@ -0,0 +1,81 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@etherisc/gif-interface/contracts/modules/IAccess.sol"; +import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; + +import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; +import "@openzeppelin/contracts/utils/Context.sol"; + +contract CoreController is + Context, + Initializable +{ + IRegistry internal _registry; + IAccess internal _access; + + /** + * @dev Constructor function that disables initializers. + */ + constructor () { + _disableInitializers(); + } + + modifier onlyInstanceOperator() { + require( + _registry.ensureSender(_msgSender(), "InstanceOperatorService"), + "ERROR:CRC-001:NOT_INSTANCE_OPERATOR"); + _; + } + + modifier onlyPolicyFlow(bytes32 module) { + // Allow only from delegator + require( + address(this) == _getContractAddress(module), + "ERROR:CRC-002:NOT_ON_STORAGE" + ); + + // Allow only ProductService (it delegates to PolicyFlow) + require( + _msgSender() == _getContractAddress("ProductService"), + "ERROR:CRC-003:NOT_PRODUCT_SERVICE" + ); + _; + } + + /** + * @dev Initializes the contract with the provided registry address. + * @param registry The address of the registry contract. + */ + function initialize(address registry) public initializer { + _registry = IRegistry(registry); + if (_getName() != "Access") { _access = IAccess(_getContractAddress("Access")); } + + _afterInitialize(); + } + + /** + * @dev Returns the name of the contract. + * @return name The name of the contract as a bytes32 value. + */ + function _getName() internal virtual pure returns(bytes32) { return ""; } + + /** + * @dev This function is called after the contract is initialized and can be used to perform additional setup. + * @notice This function should only be called internally by the contract during initialization. + */ + function _afterInitialize() internal virtual onlyInitializing {} + + /** + * @dev Returns the address of a registered contract by its name. + * @param contractName The name of the contract to retrieve. + * @return contractAddress The address of the requested contract. + */ + function _getContractAddress(bytes32 contractName) internal view returns (address contractAddress) { + contractAddress = _registry.getContract(contractName); + require( + contractAddress != address(0), + "ERROR:CRC-004:CONTRACT_NOT_REGISTERED" + ); + } +} diff --git a/contracts-christoph2806/shared/CoreProxy.sol b/contracts-christoph2806/shared/CoreProxy.sol new file mode 100644 index 00000000..b096c295 --- /dev/null +++ b/contracts-christoph2806/shared/CoreProxy.sol @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + + +import "@etherisc/gif-interface/contracts/shared/ICoreProxy.sol"; +import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; + +contract CoreProxy is + ICoreProxy, + ERC1967Proxy +{ + + modifier onlyAdmin() { + require( + msg.sender == _getAdmin(), + "ERROR:CRP-001:NOT_ADMIN"); + _; + } + + /** + * @dev Constructor function that creates a new instance of the contract. + * @param _controller The address of the controller contract. + * @param encoded_initializer The encoded initializer data. + */ + constructor(address _controller, bytes memory encoded_initializer) + ERC1967Proxy(_controller, encoded_initializer) + { + _changeAdmin(msg.sender); + } + + /** + * @dev Returns the address of the current implementation contract. + * @return implementation The address of the current implementation contract. + */ + function implementation() external view returns (address) { + return _implementation(); + } + + /** + * @dev Upgrades the contract to a new implementation and forwards a function call to it. + * @param newImplementation The address of the new implementation contract. + * @param data The data payload to be forwarded to the new implementation. + * @notice This function emits 1 events: + * - LogCoreContractUpgraded + */ + function upgradeToAndCall(address newImplementation, bytes calldata data) + external + payable + onlyAdmin + { + address oldImplementation = _implementation(); + + _upgradeToAndCall(newImplementation, data, true); + + emit LogCoreContractUpgraded( + oldImplementation, + newImplementation); + } +} diff --git a/contracts-christoph2806/shared/README.adoc b/contracts-christoph2806/shared/README.adoc new file mode 100644 index 00000000..edbed26c --- /dev/null +++ b/contracts-christoph2806/shared/README.adoc @@ -0,0 +1,14 @@ += Shared + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/shared + +== Contracts + +{{CoreController}} + +{{CoreProxy}} + +{{TransferHelper}} + +{{WithRegistry}} diff --git a/contracts-christoph2806/shared/TransferHelper.sol b/contracts-christoph2806/shared/TransferHelper.sol new file mode 100644 index 00000000..a405673a --- /dev/null +++ b/contracts-christoph2806/shared/TransferHelper.sol @@ -0,0 +1,76 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +// inspired/informed by +// https://soliditydeveloper.com/safe-erc20 +// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/token/ERC20/ERC20.sol +// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/token/ERC20/utils/SafeERC20.sol +// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/utils/Address.sol +// https://github.com/Uniswap/solidity-lib/blob/master/contracts/libraries/TransferHelper.sol +library TransferHelper { + + event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); + event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); + event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); + + /** + * @dev Executes a transferFrom function call on an ERC20 token contract, after performing input validation. + * @param token The ERC20 token contract to transfer from. + * @param from The address to transfer tokens from. + * @param to The address to transfer tokens to. + * @param value The amount of tokens to transfer. + * @return success A boolean indicating whether the transfer was successful or not. + * + * Emits a LogTransferHelperInputValidation1Failed event if the input validation step 1 fails. + * Emits a LogTransferHelperInputValidation2Failed event if the input validation step 2 fails. + * Emits a LogTransferHelperCallFailed event if the low-level call to transferFrom fails. + * @notice This function emits 3 events: + * - LogTransferHelperInputValidation1Failed + * - LogTransferHelperInputValidation2Failed + * - LogTransferHelperCallFailed + */ + function unifiedTransferFrom( + IERC20 token, + address from, + address to, + uint256 value + ) + internal + returns(bool success) + { + // input validation step 1 + address tokenAddress = address(token); + bool tokenIsContract = (tokenAddress.code.length > 0); + if (from == address(0) || to == address (0) || !tokenIsContract) { + emit LogTransferHelperInputValidation1Failed(tokenIsContract, from, to); + return false; + } + + // input validation step 2 + uint256 balance = token.balanceOf(from); + uint256 allowance = token.allowance(from, address(this)); + if (balance < value || allowance < value) { + emit LogTransferHelperInputValidation2Failed(balance, allowance); + return false; + } + + // low-level call to transferFrom + // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); + (bool callSuccess, bytes memory data) = address(token).call( + abi.encodeWithSelector( + 0x23b872dd, + from, + to, + value)); + + success = callSuccess && (false + || data.length == 0 + || (data.length == 32 && abi.decode(data, (bool)))); + + if (!success) { + emit LogTransferHelperCallFailed(callSuccess, data.length, data); + } + } +} \ No newline at end of file diff --git a/contracts-christoph2806/shared/WithRegistry.sol b/contracts-christoph2806/shared/WithRegistry.sol new file mode 100644 index 00000000..cb8561a9 --- /dev/null +++ b/contracts-christoph2806/shared/WithRegistry.sol @@ -0,0 +1,93 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; + +contract WithRegistry { + +/* + * We can consider the registry address as immutable here as it contains the + * root data structure for the whole GIF Instance. + * We can therefore ensure that a policy flow cannot overwrite the address + * neither by chance nor by intention. + */ + IRegistry public immutable registry; + + modifier onlyInstanceOperator() { + require( + msg.sender == getContractFromRegistry("InstanceOperatorService"), + "ERROR:ACM-001:NOT_INSTANCE_OPERATOR" + ); + _; + } + + modifier onlyOracleService() { + require( + msg.sender == getContractFromRegistry("OracleService"), + "ERROR:ACM-004:NOT_ORACLE_SERVICE" + ); + _; + } + + modifier onlyOracleOwner() { + require( + msg.sender == getContractFromRegistry("OracleOwnerService"), + "ERROR:ACM-005:NOT_ORACLE_OWNER" + ); + _; + } + + modifier onlyProductOwner() { + require( + msg.sender == getContractFromRegistry("ProductOwnerService"), + "ERROR:ACM-006:NOT_PRODUCT_OWNER" + ); + _; + } + + /** + * @dev Constructor function that sets the address of the registry contract. + * @param _registry The address of the registry contract. + */ + constructor(address _registry) { + registry = IRegistry(_registry); + } + + /** + * @dev Returns the address of a contract registered in the registry by its name. + * + * @param _contractName The name of the contract to retrieve. + * + * @return _addr The address of the contract. + */ + function getContractFromRegistry(bytes32 _contractName) + public + // override + view + returns (address _addr) + { + _addr = registry.getContract(_contractName); + } + + /** + * @dev Returns the address of a contract with a given name in a specific release of the registry. + * @param _release The release version of the registry where the contract is stored. + * @param _contractName The name of the contract to retrieve. + * @return _addr The address of the contract in the given release. + */ + function getContractInReleaseFromRegistry(bytes32 _release, bytes32 _contractName) + internal + view + returns (address _addr) + { + _addr = registry.getContractInRelease(_release, _contractName); + } + + /** + * @dev Returns the current release identifier from the registry. + * @return _release The release identifier as a bytes32 value. + */ + function getReleaseFromRegistry() internal view returns (bytes32 _release) { + _release = registry.getRelease(); + } +} diff --git a/contracts-christoph2806/test/README.adoc b/contracts-christoph2806/test/README.adoc new file mode 100644 index 00000000..d48cc873 --- /dev/null +++ b/contracts-christoph2806/test/README.adoc @@ -0,0 +1,24 @@ += Test + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/test + +== Contracts + +{{TestCoin}} + +{{TestCoinAlternativeImplementation}} + +{{TestCompromisedProduct}} + +{{TestOracle}} + +{{TestProduct}} + +{{TestRegistryCompromisedController}} + +{{TestRegistryControllerUpdated}} + +{{TestRiskpool}} + +{{TestTransferFrom}} \ No newline at end of file diff --git a/contracts-christoph2806/test/TestCoin.sol b/contracts-christoph2806/test/TestCoin.sol new file mode 100644 index 00000000..7fab36f3 --- /dev/null +++ b/contracts-christoph2806/test/TestCoin.sol @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract TestCoin is ERC20 { + + string public constant NAME = "Test Dummy"; + string public constant SYMBOL = "TDY"; + + uint256 public constant INITIAL_SUPPLY = 10**24; + + /** + * @dev Constructor function that initializes the ERC20 token with a given name, symbol, and initial supply. + */ + constructor() + ERC20(NAME, SYMBOL) + { + _mint( + _msgSender(), + INITIAL_SUPPLY + ); + } +} + +contract TestCoinX is ERC20 { + + string public constant NAME = "Test Dummy X"; + string public constant SYMBOL = "TDX"; + + uint256 public constant INITIAL_SUPPLY = 10**24; + + /** + * @dev Constructor function that creates a new instance of the ERC20 token with the given name and symbol. It also mints the initial supply and assigns it to the deployer's address. + */ + constructor() + ERC20(NAME, SYMBOL) + { + _mint( + _msgSender(), + INITIAL_SUPPLY + ); + } +} diff --git a/contracts-christoph2806/test/TestCoinAlternativeImplementation.sol b/contracts-christoph2806/test/TestCoinAlternativeImplementation.sol new file mode 100644 index 00000000..36b21f28 --- /dev/null +++ b/contracts-christoph2806/test/TestCoinAlternativeImplementation.sol @@ -0,0 +1,54 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract TestCoinAlternativeImplementation is ERC20 { + + string public constant NAME = "Test Alternative Coin"; + string public constant SYMBOL = "TAC"; + + uint256 public constant INITIAL_SUPPLY = 10**24; + + /** + * @dev Constructor function that creates a new ERC20 token with the given name and symbol, and mints the initial supply to the sender. + */ + constructor() + ERC20(NAME, SYMBOL) + { + _mint( + _msgSender(), + INITIAL_SUPPLY + ); + } + + // inspired by ZRX transfer implementation + // see https://soliditydeveloper.com/safe-erc20 + /** + * @dev Transfer tokens from one address to another. + * @param _from The address from which to transfer the tokens. + * @param _to The address to which to transfer the tokens. + * @param _value The amount of tokens to transfer. + * @return A boolean value indicating whether the transfer was successful or not. + * + * Requirements: + * - The sender must have a balance of at least `_value`. + * - The sender must have allowance for `_spender`'s tokens of at least `_value`. + * - The balance of `_to` must not be less than the sum of the balance and `_value`. + * - Neither `_from` nor `_to` can be the zero address. + */ + function transferFrom(address _from, address _to, uint _value) + public virtual override returns (bool) + { + if (balanceOf(_from) >= _value // check sufficient balance + && allowance(_from, msg.sender) >= _value // check sufficient allowance + && balanceOf(_to) + _value >= balanceOf(_to) // check overflow + && _from != address(0) // sender not zero address + && _to != address(0)) // recipient not zero address + { + return super.transferFrom(_from, _to, _value); // should never fail now + } else { + return false; + } + } +} diff --git a/contracts-christoph2806/test/TestCompromisedProduct.sol b/contracts-christoph2806/test/TestCompromisedProduct.sol new file mode 100644 index 00000000..754a7ed7 --- /dev/null +++ b/contracts-christoph2806/test/TestCompromisedProduct.sol @@ -0,0 +1,327 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/components/IProduct.sol"; + +import "@etherisc/gif-interface/contracts/modules/IAccess.sol"; +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; +import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; + +import "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol"; +import "@etherisc/gif-interface/contracts/services/IProductService.sol"; +import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; + +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +/* +the TestCompromisedProduct claims to be an existing product that connects to an existing +riskpool with the goal to create fraud claims that lead to fraud payouts whith the intention +to drain the riskpool. + +for this the compromised product claims +- to be a product +- to be in state active (independent of an approval step by the instance operator) +*/ +contract TestCompromisedProduct is + IProduct, + Ownable +{ + IComponent.ComponentState public constant FAKE_STATE = IComponent.ComponentState.Active; + + bytes32 public constant POLICY_FLOW = "PolicyDefaultFlow"; + + bytes32 private _componentName; + address private _tokenAddress; + uint256 private _componentId; + uint256 private _riskpoolId; + + IRegistry private _registry; + IAccess private _access; + IComponentOwnerService private _componentOwnerService; + IInstanceService private _instanceService; + address private _policyFlow; + IProductService private _productService; + + uint256 private _policies; + uint256 private _claims; + + modifier onlyPolicyHolder(bytes32 policyId) { + address policyHolder = _instanceService.getMetadata(policyId).owner; + require( + _msgSender() == policyHolder, + "ERROR:TCP-1:INVALID_POLICY_OR_HOLDER" + ); + _; + } + + /** + * @dev Constructor function to initialize the component with the given parameters. + * @param fakeProductName The name of the component. + * @param tokenAddress The address of the token used for the component. + * @param fakeComponentId The ID of the component. + * @param fakeRiskpoolId The ID of the risk pool associated with the component. + * @param registryAddress The address of the registry contract. + */ + constructor( + bytes32 fakeProductName, + address tokenAddress, + uint256 fakeComponentId, + uint256 fakeRiskpoolId, + address registryAddress + ) + Ownable() + { + _componentName = fakeProductName; + _tokenAddress = tokenAddress; + _componentId = fakeComponentId; + _riskpoolId = fakeRiskpoolId; + + _registry = IRegistry(registryAddress); + _access = _getAccess(); + _componentOwnerService = _getComponentOwnerService(); + _instanceService = _getInstanceService(); + _policyFlow = _getContractAddress(POLICY_FLOW); + _productService = _getProductService(); + } + + /** + * @dev Allows a policy holder to apply for a new policy by submitting an application with the specified premium, sum insured, metaData, and applicationData. + * @param premium The amount of premium to be paid for the policy. + * @param sumInsured The amount of coverage provided by the policy. + * @param metaData Additional metadata related to the policy application. + * @param applicationData Additional data related to the policy application. + * @return processId The process ID of the new policy application. + */ + function applyForPolicy( + uint256 premium, + uint256 sumInsured, + bytes calldata metaData, + bytes calldata applicationData + ) + external + payable + returns (bytes32 processId) + { + address payable policyHolder = payable(_msgSender()); + + // Create and underwrite new application + processId = _productService.newApplication( + policyHolder, + premium, + sumInsured, + metaData, + applicationData); + + _productService.underwrite(processId); + } + + /** + * @dev Collects the premium for a given policy. + * @param policyId The ID of the policy to collect the premium for. + */ + function collectPremium(bytes32 policyId) + external + { + IPolicy.Policy memory policy = _instanceService.getPolicy(policyId); + _productService.collectPremium(policyId, policy.premiumExpectedAmount); + } + + /** + * @dev Allows a policy holder to submit a claim for the specified policy. + * @param policyId The ID of the policy for which the claim is being submitted. + * @param claimAmount The amount of the claim being submitted. + * + * Emits a ClaimSubmitted event and creates a new claim and payout record. + */ + function submitClaim(bytes32 policyId, uint256 claimAmount) + external + onlyPolicyHolder(policyId) + { + // increase claims counter + _claims += 1; + + // create claim and confirm it + uint256 claimId = _productService.newClaim(policyId, claimAmount, abi.encode(0)); + _productService.confirmClaim(policyId, claimId, claimAmount); + + // create payout record + uint256 payoutId = _productService.newPayout(policyId, claimId, claimAmount, abi.encode(0)); + _productService.processPayout(policyId, payoutId); + } + + //--- product service access --------------------------------------------// + + //--- iproduct ----------------------------------------------------------// + /** + * @dev Returns the address of the token used by this contract. + * @return token The address of the token used by this contract. + */ + function getToken() external override view returns(address token) { return _tokenAddress; } + /** + * @dev Returns the address of the policy flow contract. + * @return policyFlow The address of the policy flow contract. + */ + function getPolicyFlow() external override view returns(address policyFlow) { return _getContractAddress(POLICY_FLOW); } + /** + * @dev Returns the ID of the risk pool. + * @return riskpoolId The ID of the risk pool. + */ + function getRiskpoolId() external override view returns(uint256 riskpoolId) { return _riskpoolId; } + + /** + * @dev Returns the data structure of the application. + * @return dataStructure The string representing the data structure of the application. + */ + function getApplicationDataStructure() external override view returns(string memory dataStructure) { return ""; } + /** + * @dev Returns the data structure of the claim data. + * @return dataStructure The data structure of the claim data as a string. + */ + function getClaimDataStructure() external override view returns(string memory dataStructure) { return ""; } + /** + * @dev Returns the data structure of the payout information. + * @return dataStructure The string representation of the payout data structure. + */ + function getPayoutDataStructure() external override view returns(string memory dataStructure) { return ""; } + + /** + * @dev Callback function to update the risk pool's capacity. + * @param capacity The new capacity of the risk pool. + */ + function riskPoolCapacityCallback(uint256 capacity) external override {} + + //--- icomponent --------------------------------------------------------// + /** + * @dev Sets the ID of the contract. + * @param id The ID to be set. + */ + function setId(uint256 id) external override {} // does not care about id + + /** + * @dev Returns the name of the component. + * @return _componentName The name of the component as a bytes32 value. + */ + function getName() external override view returns(bytes32) { return _componentName; } + /** + * @dev Returns the ID of the component. + * @return The ID of the component as a uint256 value. + */ + function getId() external override view returns(uint256) { return _componentId; } + /** + * @dev Returns the ComponentType of the product. + * @return The ComponentType of the product. + */ + function getType() external override view returns(ComponentType) { return IComponent.ComponentType.Product; } + /** + * @dev Returns the current state of the component. + * @return state The current state of the component as a ComponentState enum value. + */ + function getState() external override view returns(ComponentState) { return IComponent.ComponentState.Active; } + /** + * @dev Returns the address of the contract owner. + * @return The address of the contract owner. + */ + function getOwner() external override view returns(address) { return owner(); } + /** + * @dev Returns the current registry contract instance. + * @return _registry The current registry contract instance. + */ + function getRegistry() external override view returns(IRegistry) { return _registry; } + + /** + * @dev Checks if the contract is a product. + * @return Returns a boolean value indicating if the contract is a product. + */ + function isProduct() public override view returns(bool) { return true; } + /** + * @dev Returns a boolean value indicating whether the contract is an oracle. + * @return A boolean value indicating whether the contract is an oracle. + */ + function isOracle() public override view returns(bool) { return false; } + /** + * @dev Check if the contract is a risk pool. + * @return {bool} Returns a boolean indicating if the contract is a risk pool. + */ + function isRiskpool() public override view returns(bool) { return false; } + + /** + * @dev This function is a callback function for proposals. + * + * Returns: None + */ + function proposalCallback() external override {} + /** + * @dev This function is a callback function that is called after an approval has been made. + */ + function approvalCallback() external override {} + /** + * @dev This function is called when a user declines a transaction in the dApp. + */ + function declineCallback() external override {} + /** + * @dev Suspends the callback function. + */ + function suspendCallback() external override {} + /** + * @dev This function is a callback function that is triggered when a paused contract is resumed. + * + */ + function resumeCallback() external override {} + /** + * @dev Callback function that is called when the contract is paused. This function does not take any parameters. + */ + function pauseCallback() external override {} + /** + * @dev This function is called by the owner of the contract to unpause the contract after it has been paused. + */ + function unpauseCallback() external override {} + /** + * @dev This function is a callback function that is executed when a contract is archived. + * + */ + function archiveCallback() external override {} + + /** + * @dev Returns the instance of the IAccess contract. + * @return access Returns the instance of the IAccess contract. + */ + function _getAccess() private view returns (IAccess) { + return IAccess(_getContractAddress("Access")); + } + + /** + * @dev Returns the instance service contract. + * @return instanceService The instance service contract. + */ + function _getInstanceService() private view returns (IInstanceService) { + return IInstanceService(_getContractAddress("InstanceService")); + } + + /** + * @dev Returns the instance of the ComponentOwnerService contract. + * @return The ComponentOwnerService contract instance. + */ + function _getComponentOwnerService() private view returns (IComponentOwnerService) { + return IComponentOwnerService(_getContractAddress("ComponentOwnerService")); + } + + /** + * @dev Returns the ProductService contract instance. + * @return productService The ProductService contract instance. + */ + function _getProductService() private view returns (IProductService) { + return IProductService(_getContractAddress("ProductService")); + } + + /** + * @dev Returns the address of a registered contract with the given name. + * @param contractName The name of the contract to retrieve the address for. + * @return The address of the registered contract with the given name. + */ + function _getContractAddress(bytes32 contractName) private view returns (address) { + return _registry.getContract(contractName); + } + +} \ No newline at end of file diff --git a/contracts-christoph2806/test/TestOracle.sol b/contracts-christoph2806/test/TestOracle.sol new file mode 100644 index 00000000..490cc5d4 --- /dev/null +++ b/contracts-christoph2806/test/TestOracle.sol @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@etherisc/gif-interface/contracts/components/Oracle.sol"; + +contract TestOracle is Oracle { + + /** + * @dev Constructor function for creating an Oracle contract. + * @param oracleName The name of the Oracle contract. + * @param registry The address of the registry contract. + */ + constructor( + bytes32 oracleName, + address registry + ) + Oracle(oracleName, registry) + { } + + /** + * @dev Requests data from the oracle contract. + * @param requestId The unique identifier of the request. + * @param input The input data to be decoded by the oracle. + * It is a tuple containing a uint256 counter and a bool immediateResponse. + * + * This function decodes the input data and calls the _oracleCalculation function + * to obtain data from the oracle given the request data (counter). + * If immediateResponse is true, the function responds with the result obtained from the oracle. + * Otherwise, the response is handled outside the function in a separate asynchronous transaction. + * The response is sent back to the contract through the respond function. + */ + function request(uint256 requestId, bytes calldata input) external override onlyQuery { + // decode oracle input data + (uint256 counter, bool immediateResponse) = abi.decode(input, (uint256, bool)); + + if (immediateResponse) { + // obtain data from oracle given the request data (counter) + // for off chain oracles this happens outside the request + // call in a separate asynchronous transaction + bool isLossEvent = _oracleCalculation(counter); + respond(requestId, isLossEvent); + } + } + + /** + * @dev Cancels a Chainlink request. + * @param requestId The ID of the Chainlink request to be cancelled. + */ + function cancel(uint256 requestId) + external override + onlyOwner + { + // TODO mid/low priority + // cancelChainlinkRequest(_requestId, _payment, _callbackFunctionId, _expiration); + } + + // usually called by off-chain oracle (and not internally) + // in which case the function modifier should be changed + // to external + /** + * @dev Responds to an oracle request with a boolean value indicating whether a loss event occurred. + * @param requestId The ID of the oracle request being responded to. + * @param isLossEvent A boolean value indicating whether a loss event occurred. + */ + function respond(uint256 requestId, bool isLossEvent) + public + { + // encode data obtained from oracle + bytes memory output = abi.encode(bool(isLossEvent)); + + // trigger inherited response handling + _respond(requestId, output); + } + + // dummy implementation + // "real" oracles will get the output from some off-chain + // component providing the outcome of the business logic + /** + * @dev Performs an oracle calculation to determine if a loss event occurred. + * @param counter The counter value used in the calculation. + * @return isLossEvent A boolean indicating if a loss event occurred. + */ + function _oracleCalculation(uint256 counter) internal returns (bool isLossEvent) { + isLossEvent = (counter % 2 == 1); + } +} \ No newline at end of file diff --git a/contracts-christoph2806/test/TestProduct.sol b/contracts-christoph2806/test/TestProduct.sol new file mode 100644 index 00000000..d3acf0f9 --- /dev/null +++ b/contracts-christoph2806/test/TestProduct.sol @@ -0,0 +1,535 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; +import "@etherisc/gif-interface/contracts/services/IProductService.sol"; +import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; +import "@etherisc/gif-interface/contracts/components/Product.sol"; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract TestProduct is + Product +{ + bytes32 public constant POLICY_FLOW = "PolicyDefaultFlow"; + string public constant ORACLE_CALLBACK_METHOD_NAME = "oracleCallback"; + + address private _capitalOwner; + uint256 private _testOracleId; + uint256 private _testRiskpoolId; + + bytes32 [] private _applications; + bytes32 [] private _policies; + uint256 private _claims; + + mapping(bytes32 => uint256) private _policyIdToClaimId; + mapping(bytes32 => uint256) private _policyIdToPayoutId; + + event LogTestProductFundingReceived(address sender, uint256 amount); + event LogTestOracleCallbackReceived(uint256 requestId, bytes32 policyId, bytes response); + + /** + * @dev Constructor function for creating a new instance of the Product contract. + * @param productName The name of the product. + * @param tokenAddress The address of the token used for the product. + * @param capitalOwner The address of the capital owner. + * @param oracleId The ID of the oracle used for the product. + * @param riskpoolId The ID of the riskpool used for the product. + * @param registryAddress The address of the registry contract. + */ + constructor( + bytes32 productName, + address tokenAddress, + address capitalOwner, + uint256 oracleId, + uint256 riskpoolId, + address registryAddress + ) + Product(productName, tokenAddress, POLICY_FLOW, riskpoolId, registryAddress) + { + require(tokenAddress != address(0), "ERROR:TI-2:TOKEN_ADDRESS_ZERO"); + _capitalOwner = capitalOwner; + _testOracleId = oracleId; + _testRiskpoolId = riskpoolId; + } + + /** + * @dev Allows a policy holder to apply for a new insurance policy by submitting an application with the specified premium, sum insured, metadata and application data. + * @param premium The amount of premium to be paid by the policy holder. + * @param sumInsured The sum insured for the new policy. + * @param metaData Additional metadata associated with the application. + * @param applicationData Additional application data. + * @return processId The unique identifier of the new policy application process. + */ + function applyForPolicy( + uint256 premium, + uint256 sumInsured, + bytes calldata metaData, + bytes calldata applicationData + ) + external + payable + returns (bytes32 processId) + { + address payable policyHolder = payable(_msgSender()); + + processId = _newApplication( + policyHolder, + premium, + sumInsured, + metaData, + applicationData); + + _applications.push(processId); + + bool success = _underwrite(processId); + if (success) { + _policies.push(processId); + } + } + + /** + * @dev Creates a new insurance application and underwrites it if possible. + * @param policyHolder The address of the policy holder. + * @param premium The amount of premium paid by the policy holder. + * @param sumInsured The amount of coverage requested by the policy holder. + * @param metaData Additional metadata associated with the application. + * @param applicationData The application data submitted by the policy holder. + * @return processId The identifier of the new insurance application. + */ + function applyForPolicy( + address payable policyHolder, + uint256 premium, + uint256 sumInsured, + bytes calldata metaData, + bytes calldata applicationData + ) + external + payable + returns (bytes32 processId) + { + processId = _newApplication( + policyHolder, + premium, + sumInsured, + metaData, + applicationData); + + _applications.push(processId); + + bool success = _underwrite(processId); + if (success) { + _policies.push(processId); + } + } + + + /** + * @dev Creates a new insurance application. + * @param premium The amount of premium to be paid for the insurance policy. + * @param sumInsured The amount of coverage for the insurance policy. + * @param metaData Metadata to be associated with the application. + * @param applicationData Additional data related to the application. + * @return processId The unique identifier for the new application process. + */ + function newAppliation( + uint256 premium, + uint256 sumInsured, + bytes calldata metaData, + bytes calldata applicationData + ) + external + payable + returns (bytes32 processId) + { + address payable policyHolder = payable(_msgSender()); + + processId = _newApplication( + policyHolder, + premium, + sumInsured, + metaData, + applicationData); + + _applications.push(processId); + } + + + /** + * @dev Revokes a process identified by its processId. Only the policy holder can revoke a process. + * @param processId The unique identifier of the process to be revoked. + */ + function revoke(bytes32 processId) external onlyPolicyHolder(processId) { + _revoke(processId); + } + + /** + * @dev Declines a specific process by its ID. + * @param processId The ID of the process to be declined. + */ + function decline(bytes32 processId) external onlyOwner { + _decline(processId); + } + + /** + * @dev Underwrites a policy for a given process ID. + * @param processId The ID of the process to underwrite a policy for. + */ + function underwrite(bytes32 processId) external onlyOwner { + bool success = _underwrite(processId); + if (success) { + _policies.push(processId); + } + } + + /** + * @dev Collects the premium for a specific policy. + * @param policyId The ID of the policy for which the premium will be collected. + * @return success A boolean indicating whether the premium collection was successful. + * @return fee The amount of fee collected by the insurer. + * @return netPremium The net amount of premium collected by the insurer after deducting the fee. + */ + function collectPremium(bytes32 policyId) + external onlyOwner + returns(bool success, uint256 fee, uint256 netPremium) + { + (success, fee, netPremium) = _collectPremium(policyId); + } + + /** + * @dev Collects the premium for a specific policy. + * @param policyId The unique identifier of the policy. + * @param amount The amount of the premium to be collected. + * @return success A boolean indicating whether the premium collection was successful. + * @return fee The fee charged for collecting the premium. + * @return netPremium The net amount of premium collected after deducting the fee. + */ + function collectPremium(bytes32 policyId, uint256 amount) + external onlyOwner + returns(bool success, uint256 fee, uint256 netPremium) + { + (success, fee, netPremium) = _collectPremium(policyId, amount); + } + + /** + * @dev Adjusts the premium and sum insured amounts for a given process ID. + * @param processId The ID of the process to adjust. + * @param expectedPremiumAmount The expected premium amount for the process. + * @param sumInsuredAmount The sum insured amount for the process. + */ + function adjustPremiumSumInsured( + bytes32 processId, + uint256 expectedPremiumAmount, + uint256 sumInsuredAmount + ) + external + { + _adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount); + } + + /** + * @dev Expire a policy by its ID. + * @param policyId The ID of the policy to expire. + */ + function expire(bytes32 policyId) external onlyOwner { + _expire(policyId); + } + + /** + * @dev Closes a policy with the given ID. + * @param policyId The ID of the policy to be closed. + */ + function close(bytes32 policyId) external onlyOwner { + _close(policyId); + } + + /** + * @dev Allows a policy holder to submit a claim for a specific policy. + * @param policyId The ID of the policy for which the claim is being submitted. + * @param claimAmount The amount of the claim being submitted. + * @return claimId The ID of the submitted claim. + * + * Increases the claims counter and creates a new claim application. + * The oracle business logic will use the claims counter value to determine if the claim is linked to a loss event or not. + * The function also requests a response to the greeting via oracle call. + */ + function submitClaim(bytes32 policyId, uint256 claimAmount) + external + onlyPolicyHolder(policyId) + returns(uint256 claimId) + { + + // increase claims counter + // the oracle business logic will use this counter value + // to determine if the claim is linked to a loss event or not + _claims++; + + // claim application + claimId = _newClaim(policyId, claimAmount, ""); + _policyIdToClaimId[policyId] = claimId; + + // Request response to greeting via oracle call + bool immediateResponse = true; + bytes memory queryData = abi.encode(_claims, immediateResponse); + _request( + policyId, + queryData, + ORACLE_CALLBACK_METHOD_NAME, + _testOracleId + ); + } + + /** + * @dev Allows a policy holder to submit a claim without the need for an oracle. + * @param policyId The ID of the policy for which the claim is being submitted. + * @param claimAmount The amount being claimed by the policy holder. + * @return claimId The ID of the claim created. + */ + function submitClaimNoOracle(bytes32 policyId, uint256 claimAmount) + external + onlyPolicyHolder(policyId) + returns(uint256 claimId) + { + + // increase claims counter + // the oracle business logic will use this counter value + // to determine if the claim is linked to a loss event or not + _claims++; + + // claim application + claimId = _newClaim(policyId, claimAmount, ""); + _policyIdToClaimId[policyId] = claimId; + } + + /** + * @dev Submits a claim for a specific policy with a deferred response from the oracle. + * Increases the claims counter and creates a new claim application. + * Then, requests a response from the oracle via an external call with encoded query data. + * @param policyId The ID of the policy the claim is being made against. + * @param claimAmount The amount of the claim being made. + * @return claimId The ID of the newly created claim. + * @return requestId The ID of the oracle request made to retrieve the response. + */ + function submitClaimWithDeferredResponse(bytes32 policyId, uint256 claimAmount) + external + onlyPolicyHolder(policyId) + returns(uint256 claimId, uint256 requestId) + { + + // increase claims counter + // the oracle business logic will use this counter value + // to determine if the claim is linked to a loss event or not + _claims++; + + // claim application + claimId = _newClaim(policyId, claimAmount, ""); + _policyIdToClaimId[policyId] = claimId; + + // Request response to greeting via oracle call + bool immediateResponse = false; + bytes memory queryData = abi.encode(_claims, immediateResponse); + requestId = _request( + policyId, + queryData, + ORACLE_CALLBACK_METHOD_NAME, + _testOracleId + ); + } + + /** + * @dev Confirms the amount to be paid out for a specific claim. + * @param policyId The ID of the policy the claim belongs to. + * @param claimId The ID of the claim to be confirmed. + * @param confirmedAmount The amount to be paid out for the claim. + */ + function confirmClaim( + bytes32 policyId, + uint256 claimId, + uint256 confirmedAmount + ) + external + onlyOwner + { + _confirmClaim(policyId, claimId, confirmedAmount); + } + + /** + * @dev Allows the owner of the contract to decline a claim. + * @param policyId The ID of the policy related to the claim. + * @param claimId The ID of the claim to be declined. + */ + function declineClaim( + bytes32 policyId, + uint256 claimId + ) + external + onlyOwner + { + _declineClaim(policyId, claimId); + } + + /** + * @dev Closes a specific claim for a given policy. + * @param policyId The ID of the policy the claim belongs to. + * @param claimId The ID of the claim to be closed. + */ + function closeClaim( + bytes32 policyId, + uint256 claimId + ) + external + onlyOwner + { + _closeClaim(policyId, claimId); + } + + /** + * @dev Creates a new payout for a specific policy and claim. + * @param policyId The ID of the policy associated with the payout. + * @param claimId The ID of the claim associated with the payout. + * @param payoutAmount The amount of the payout to be created. + * @return payoutId The ID of the newly created payout. + */ + function createPayout( + bytes32 policyId, + uint256 claimId, + uint256 payoutAmount + ) + external + onlyOwner + returns(uint256 payoutId) + { + payoutId = _newPayout( + policyId, + claimId, + payoutAmount, + abi.encode(0)); + + _processPayout(policyId, payoutId); + } + + /** + * @dev Creates a new payout for a claim under a policy. + * @param policyId The ID of the policy. + * @param claimId The ID of the claim. + * @param payoutAmount The amount to be paid out for the claim. + * @return payoutId The ID of the newly created payout. + */ + function newPayout( + bytes32 policyId, + uint256 claimId, + uint256 payoutAmount + ) + external + onlyOwner + returns(uint256 payoutId) + { + payoutId = _newPayout( + policyId, + claimId, + payoutAmount, + abi.encode(0)); + } + + /** + * @dev Processes a payout for a specific policy. + * @param policyId The ID of the policy to process the payout for. + * @param payoutId The ID of the payout to process. + */ + function processPayout( + bytes32 policyId, + uint256 payoutId + ) + external + onlyOwner + { + _processPayout(policyId, payoutId); + } + + /** + * @dev This function is called by the oracle to provide the response data for a specified policy ID and request ID. + * @param requestId The ID of the request made by the oracle. + * @param policyId The ID of the policy associated with the oracle request. + * @param responseData The response data provided by the oracle. + * + * Emits a LogTestOracleCallbackReceived event with the provided request ID, policy ID, and response data. + * + * Decodes the response data to obtain the isLossEvent boolean value and the claim ID associated with the policy ID. + * + * If the event is a loss event, retrieves the policy and claim information, confirms the claim, creates a payout record, and processes the payout. + * + * If the event is not a loss event, declines the claim. + * @notice This function emits 1 events: + * - LogTestOracleCallbackReceived + */ + function oracleCallback( + uint256 requestId, + bytes32 policyId, + bytes calldata responseData + ) + external + onlyOracle + { + emit LogTestOracleCallbackReceived(requestId, policyId, responseData); + + // get oracle response data + (bool isLossEvent) = abi.decode(responseData, (bool)); + uint256 claimId = _policyIdToClaimId[policyId]; + + // claim handling if there is a loss + if (isLossEvent) { + // get policy and claims info for oracle response + _getApplication(policyId); + + IPolicy.Claim memory claim + = _getClaim(policyId, claimId); + + // specify payout data + uint256 confirmedAmount = claim.claimAmount; + _confirmClaim(policyId, claimId, confirmedAmount); + + // create payout record + uint256 payoutAmount = confirmedAmount; + bytes memory payoutData = abi.encode(0); + uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, payoutData); + _policyIdToPayoutId[policyId] = payoutId; + + _processPayout(policyId, payoutId); + + // TODO refactor to payout using erc-20 token + // actual transfer of funds for payout of claim + // failing requires not visible when called via .call in querycontroller + // policyHolder.transfer(payoutAmount); + } else { + _declineClaim(policyId, claimId); + } + } + + /** + * @dev Returns the claim ID associated with a given policy ID. + * @param policyId The policy ID for which the claim ID is requested. + * @return The claim ID associated with the given policy ID. + */ + function getClaimId(bytes32 policyId) external view returns (uint256) { return _policyIdToClaimId[policyId]; } + /** + * @dev Returns the payout ID associated with a given policy ID. + * @param policyId The ID of the policy. + * @return The payout ID associated with the given policy ID. + */ + function getPayoutId(bytes32 policyId) external view returns (uint256) { return _policyIdToPayoutId[policyId]; } + /** + * @dev Returns the number of applications that have been submitted. + * @return The number of applications as a uint256 value. + */ + function applications() external view returns (uint256) { return _applications.length; } + /** + * @dev Returns the number of policies in the _policies array. + * @return The length of the _policies array. + */ + function policies() external view returns (uint256) { return _policies.length; } + /** + * @dev Returns the number of claims made by users. + * @return _claims The total number of claims made by users. + */ + function claims() external view returns (uint256) { return _claims; } +} \ No newline at end of file diff --git a/contracts-christoph2806/test/TestRegistryCompromisedController.sol b/contracts-christoph2806/test/TestRegistryCompromisedController.sol new file mode 100644 index 00000000..9f5168ec --- /dev/null +++ b/contracts-christoph2806/test/TestRegistryCompromisedController.sol @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +contract TestRegistryCompromisedController { + + bytes32 public constant POLICY = bytes32("Policy"); + bytes32 public constant QUERY = bytes32("Query"); + + mapping(bytes32 => address) public contracts; + + /** + * @dev Returns the address of a registered contract. + * @param contractName The name of the contract to retrieve. + * @return moduleAddress The address of the requested contract. + */ + function getContract(bytes32 contractName) + external + view + returns (address moduleAddress) + { + moduleAddress = contracts[contractName]; + } + + /** + * @dev Upgrades the Policy Manager contract to version 2. + * @param compromisedPolicyModuleAddress The new address of the compromised policy module. + * @param originalQueryModuleAddress The new address of the original query module. + */ + function upgradeToV2( + address compromisedPolicyModuleAddress, + address originalQueryModuleAddress + ) + public + { + contracts[POLICY] = compromisedPolicyModuleAddress; + contracts[QUERY] = originalQueryModuleAddress; + } +} diff --git a/contracts-christoph2806/test/TestRegistryControllerUpdated.sol b/contracts-christoph2806/test/TestRegistryControllerUpdated.sol new file mode 100644 index 00000000..1a897c94 --- /dev/null +++ b/contracts-christoph2806/test/TestRegistryControllerUpdated.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../modules/RegistryController.sol"; + + +contract TestRegistryControllerUpdated is RegistryController { + + string message; + bool upgradeV2; + + /** + * @dev Sets the message variable to a given string. + * @param _message The string to be set as the message. + */ + function setMessage(string memory _message) public onlyInstanceOperator { message = _message; } + /** + * @dev Returns the current message stored in the contract. + * @return message The current message stored in the contract. + */ + function getMessage() public view returns (string memory) { return message; } + + /** + * @dev Upgrades the contract to version 2. + * @param _message The message to set for the upgraded contract. + */ + function upgradeToV2(string memory _message) public { + require(!upgradeV2, "ERROR:REC-102:UPGRADE_ONCE_OMLY"); + upgradeV2 = true; + + setMessage(_message); + } +} diff --git a/contracts-christoph2806/test/TestRiskpool.sol b/contracts-christoph2806/test/TestRiskpool.sol new file mode 100644 index 00000000..3c88f9d8 --- /dev/null +++ b/contracts-christoph2806/test/TestRiskpool.sol @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol"; +import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; + +contract TestRiskpool is BasicRiskpool { + + uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24; + + /** + * @dev Constructor function for the Riskpool contract. + * @param name The name of the Riskpool. + * @param collateralization The collateralization ratio for the Riskpool. + * @param erc20Token The address of the ERC20 token used for collateral. + * @param wallet The address of the wallet that holds the collateral. + * @param registry The address of the registry contract. + */ + constructor( + bytes32 name, + uint256 collateralization, + address erc20Token, + address wallet, + address registry + ) + BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry) + { } + + // trivial implementation that matches every application + /** + * @dev This function checks if a given bundle matches a given application. + * @param bundle The bundle to check. + * @param application The application to check against. + * @return isMatching A boolean indicating whether the bundle matches the application. + */ + function bundleMatchesApplication( + IBundle.Bundle memory bundle, + IPolicy.Application memory application + ) + public override + pure + returns(bool isMatching) + { + isMatching = true; + } + +} \ No newline at end of file diff --git a/contracts-christoph2806/test/TestTransferFrom.sol b/contracts-christoph2806/test/TestTransferFrom.sol new file mode 100644 index 00000000..da135fcf --- /dev/null +++ b/contracts-christoph2806/test/TestTransferFrom.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../shared/TransferHelper.sol"; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +contract TestTransferFrom { + + event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); + event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); + event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); + + /** + * @dev Transfers tokens from a specified address to another specified address using the TransferHelper library. + * @param token The address of the ERC20 token to transfer. + * @param from The address from which to transfer tokens. + * @param to The address to which to transfer tokens. + * @param amount The amount of tokens to transfer. + * @return Returns a boolean indicating whether the transfer was successful or not. + */ + function unifiedTransferFrom( + IERC20 token, + address from, + address to, + uint256 amount + ) + external + returns(bool) + { + return TransferHelper.unifiedTransferFrom(token, from, to, amount); + } + +} diff --git a/contracts-christoph2806/tokens/BundleToken.sol b/contracts-christoph2806/tokens/BundleToken.sol new file mode 100644 index 00000000..1798089e --- /dev/null +++ b/contracts-christoph2806/tokens/BundleToken.sol @@ -0,0 +1,126 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; + +import "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol"; + +contract BundleToken is + IBundleToken, + ERC721, + Ownable +{ + string public constant NAME = "GIF Bundle Token"; + string public constant SYMBOL = "BTK"; + + mapping(uint256 /** tokenId */ => uint256 /** bundleId */) public bundleIdForTokenId; + address private _bundleModule; + uint256 private _totalSupply; + + modifier onlyBundleModule() { + require(_bundleModule != address(0), "ERROR:BTK-001:NOT_INITIALIZED"); + require(_msgSender() == _bundleModule, "ERROR:BTK-002:NOT_BUNDLE_MODULE"); + _; + } + + /** + * @dev Constructor function for the ERC721 token contract. It sets the name and symbol of the token and initializes the Ownable contract. + */ + constructor() ERC721(NAME, SYMBOL) Ownable() { } + + /** + * @dev Sets the bundle module address. + * @param bundleModule The address of the bundle module to be set. + * + * Emits a {BundleModuleSet} event. + * + * Requirements: + * - The bundle module address must not have already been set. + * - The bundle module address must not be the zero address. + */ + function setBundleModule(address bundleModule) + external + { + require(_bundleModule == address(0), "ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED"); + require(bundleModule != address(0), "ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS"); + _bundleModule = bundleModule; + } + + + /** + * @dev Mints a new bundle token and assigns ownership to the specified address. + * @param bundleId The ID of the bundle to which the token belongs. + * @param to The address that will receive ownership of the newly minted token. + * @return tokenId The ID of the newly minted token. + * @notice This function emits 1 events: + * - LogBundleTokenMinted + */ + function mint(uint256 bundleId, address to) + external + onlyBundleModule + returns(uint256 tokenId) + { + _totalSupply++; + tokenId = _totalSupply; + bundleIdForTokenId[tokenId] = bundleId; + + _safeMint(to, tokenId); + + emit LogBundleTokenMinted(bundleId, tokenId, to); + } + + + /** + * @dev Burns a bundle token. + * @param tokenId The ID of the token to be burned. + * @notice This function emits 1 events: + * - LogBundleTokenBurned + */ + function burn(uint256 tokenId) + external + onlyBundleModule + { + require(_exists(tokenId), "ERROR:BTK-005:TOKEN_ID_INVALID"); + _burn(tokenId); + + emit LogBundleTokenBurned(bundleIdForTokenId[tokenId], tokenId); + } + + /** + * @dev Checks if a token has been burned. + * @param tokenId The ID of the token to check. + * @return isBurned Returns true if the token has been burned, false otherwise. + */ + function burned(uint tokenId) + external override + view + returns(bool isBurned) + { + isBurned = tokenId <= _totalSupply && !_exists(tokenId); + } + + /** + * @dev Returns the bundle ID associated with a given token ID. + * @param tokenId The ID of the token to query. + * @return The bundle ID associated with the given token ID. + */ + function getBundleId(uint256 tokenId) external override view returns(uint256) { return bundleIdForTokenId[tokenId]; } + /** + * @dev Returns the address of the bundle module. + * @return _bundleModule The address of the bundle module. + */ + function getBundleModuleAddress() external view returns(address) { return _bundleModule; } + + /** + * @dev Checks if a given token ID exists. + * @param tokenId The ID of the token to check. + * @return A boolean indicating whether the token exists or not. + */ + function exists(uint256 tokenId) external override view returns(bool) { return tokenId <= _totalSupply; } + /** + * @dev Returns the total number of tokens in circulation. + * @return tokenCount The total number of tokens in circulation. + */ + function totalSupply() external override view returns(uint256 tokenCount) { return _totalSupply; } +} diff --git a/contracts-christoph2806/tokens/README.adoc b/contracts-christoph2806/tokens/README.adoc new file mode 100644 index 00000000..16591ee8 --- /dev/null +++ b/contracts-christoph2806/tokens/README.adoc @@ -0,0 +1,10 @@ += Tokens + +[.readme-notice] +NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/tokens + +== Contracts + +{{BundleToken}} + +{{RiskpoolToken}} \ No newline at end of file diff --git a/contracts-christoph2806/tokens/RiskpoolToken.sol b/contracts-christoph2806/tokens/RiskpoolToken.sol new file mode 100644 index 00000000..e7b7a11e --- /dev/null +++ b/contracts-christoph2806/tokens/RiskpoolToken.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract RiskpoolToken is + ERC20 +{ + string public constant NAME = "GIF Riskpool Token"; + string public constant SYMBOL = "RPT"; + + /** + * @dev Constructor function that sets the name and symbol of the ERC20 token. + */ + constructor() + ERC20(NAME, SYMBOL) + { + + } +} From 9c88a8eb9bbd8bc210c4917500c0e635257a4f6b Mon Sep 17 00:00:00 2001 From: lydiamussenbrock Date: Mon, 12 Jun 2023 10:24:26 +0000 Subject: [PATCH 24/29] Docs update --- contracts/modules/AccessController.sol | 367 +++++---- contracts/modules/BundleController.sol | 483 +++++++----- contracts/modules/ComponentController.sol | 895 +++++++++++++--------- contracts/modules/LicenseController.sol | 52 +- contracts/modules/PolicyController.sol | 712 ++++++++++------- contracts/modules/PoolController.sol | 504 ++++++------ contracts/modules/QueryModule.sol | 146 ++-- contracts/modules/RegistryController.sol | 295 ++++--- contracts/modules/TreasuryModule.sol | 717 +++++++++-------- 9 files changed, 2467 insertions(+), 1704 deletions(-) diff --git a/contracts/modules/AccessController.sol b/contracts/modules/AccessController.sol index d70bcbfe..5b459e06 100644 --- a/contracts/modules/AccessController.sol +++ b/contracts/modules/AccessController.sol @@ -1,151 +1,216 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../shared/CoreController.sol"; - -import "@etherisc/gif-interface/contracts/modules/IAccess.sol"; - -import "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; -import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; - -/** - * @dev The provided smart contract is called "AccessController" and is written in Solidity. It implements the "IAccess" interface and inherits from the "CoreController" contract and the "AccessControlEnumerable" contract. The contract provides functionalities for access control and role management. - * - * Roles: - * - * The contract defines three role identifiers as bytes32 constants: - * 1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. - * 2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. - * 3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. - * - * State Variables: - * - * - `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. - * - `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. - * - * Functions: - * - * - `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. - * - `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. - * - `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. - * - `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract. - * - `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract. - * - `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract. - * - `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping. - * - `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping. - * - `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role. - * - `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE. - * - `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE. - * - `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE. - * - `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. - * - `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. - * - * Modifiers: - * - * - `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. - * - * Overall, the contract provides a flexible access control mechanism by defining roles and - * allowing the assignment, revocation, and validation of roles by instance operators. - * It also sets a default admin role and manages the validity of roles through the `validRole` mapping. - */ - -contract AccessController is IAccess, CoreController, AccessControlEnumerable { - // 0xe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd - bytes32 public constant PRODUCT_OWNER_ROLE = - keccak256("PRODUCT_OWNER_ROLE"); - - // 0xd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa2 - bytes32 public constant ORACLE_PROVIDER_ROLE = - keccak256("ORACLE_PROVIDER_ROLE"); - - // 0x3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd - bytes32 public constant RISKPOOL_KEEPER_ROLE = - keccak256("RISKPOOL_KEEPER_ROLE"); - - mapping(bytes32 => bool) public validRole; - - bool private _defaultAdminSet; - - function _afterInitialize() internal override { - // add product owner, oracle provider and riskpool keeper roles - _populateValidRoles(); - } - - function _getName() internal pure override returns (bytes32) { - return "Access"; - } - - // IMPORTANT check the setting of the default admin role - // after the deployment of a GIF instance. - // this method is called in the deployment of - // the instance operator proxy/controller - function setDefaultAdminRole(address defaultAdmin) external { - require(!_defaultAdminSet, "ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET"); - _defaultAdminSet = true; - - _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin); - } - - //--- manage role ownership ---------------------------------------------// - function grantRole( - bytes32 role, - address principal - ) public override(IAccessControl, IAccess) onlyInstanceOperator { - require(validRole[role], "ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID"); - AccessControl.grantRole(role, principal); - } - - function revokeRole( - bytes32 role, - address principal - ) public override(IAccessControl, IAccess) onlyInstanceOperator { - AccessControl.revokeRole(role, principal); - } - - function renounceRole( - bytes32 role, - address principal - ) public override(IAccessControl, IAccess) { - AccessControl.renounceRole(role, principal); - } - - //--- manage roles ------------------------------------------------------// - function addRole(bytes32 role) public override onlyInstanceOperator { - require(!validRole[role], "ERROR:ACL-003:ROLE_EXISTING_AND_VALID"); - validRole[role] = true; - } - - function invalidateRole(bytes32 role) public override onlyInstanceOperator { - require(validRole[role], "ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID"); - validRole[role] = false; - } - - function hasRole( - bytes32 role, - address principal - ) public view override(IAccessControl, IAccess) returns (bool) { - return super.hasRole(role, principal); - } - - function getDefaultAdminRole() public pure override returns (bytes32) { - return DEFAULT_ADMIN_ROLE; - } - - function getProductOwnerRole() public pure override returns (bytes32) { - return PRODUCT_OWNER_ROLE; - } - - function getOracleProviderRole() public pure override returns (bytes32) { - return ORACLE_PROVIDER_ROLE; - } - - function getRiskpoolKeeperRole() public pure override returns (bytes32) { - return RISKPOOL_KEEPER_ROLE; - } - - function _populateValidRoles() private { - validRole[PRODUCT_OWNER_ROLE] = true; - validRole[ORACLE_PROVIDER_ROLE] = true; - validRole[RISKPOOL_KEEPER_ROLE] = true; - } -} +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../shared/CoreController.sol"; + +import "@etherisc/gif-interface/contracts/modules/IAccess.sol"; + +import "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; +import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; + +/** + * @dev The provided smart contract is called "AccessController" and is written in Solidity. It implements the "IAccess" interface and inherits from the "CoreController" contract and the "AccessControlEnumerable" contract. The contract provides functionalities for access control and role management. + * + * Roles: + * + * The contract defines three role identifiers as bytes32 constants: + * 1. PRODUCT_OWNER_ROLE: Represents the role of a product owner. + * 2. ORACLE_PROVIDER_ROLE: Represents the role of an oracle provider. + * 3. RISKPOOL_KEEPER_ROLE: Represents the role of a risk pool keeper. + * + * State Variables: + * + * - `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. + * - `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. + * + * Modifiers: + * + * - `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. + * + * Overall, the contract provides a flexible access control mechanism by defining roles and + * allowing the assignment, revocation, and validation of roles by instance operators. + * It also sets a default admin role and manages the validity of roles through the `validRole` mapping. + */ + + +contract AccessController is + IAccess, + CoreController, + AccessControlEnumerable + { + + // 0xe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd + bytes32 public constant PRODUCT_OWNER_ROLE = keccak256("PRODUCT_OWNER_ROLE"); + + // 0xd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa2 + bytes32 public constant ORACLE_PROVIDER_ROLE = keccak256("ORACLE_PROVIDER_ROLE"); + + // 0x3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd + bytes32 public constant RISKPOOL_KEEPER_ROLE = keccak256("RISKPOOL_KEEPER_ROLE"); + + mapping(bytes32 => bool) public validRole; + + bool private _defaultAdminSet; + + /** + * @dev This function is called after contract initialization and adds the product owner, oracle provider, and riskpool keeper roles. + */ + function _afterInitialize() internal override { + // add product owner, oracle provider and riskpool keeper roles + _populateValidRoles(); + } + + /** + * @dev Returns the name of the contract. + * @return The name of the contract as a bytes32 value. + */ + function _getName() internal override pure returns(bytes32) { return "Access"; } + + // IMPORTANT check the setting of the default admin role + // after the deployment of a GIF instance. + // this method is called in the deployment of + // the instance operator proxy/controller + /** + * @dev Sets the default admin role for the Access Control List (ACL). + * @param defaultAdmin The address of the account to be set as the default admin role. + * + * Requirements: + * - The default admin role must not have been set before. + * + * Emits a {RoleGranted} event. + */ + function setDefaultAdminRole(address defaultAdmin) + external + { + require(!_defaultAdminSet, "ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET"); + _defaultAdminSet = true; + + _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin); + } + + //--- manage role ownership ---------------------------------------------// + /** + * @dev Grants a role to a principal. + * @param role The bytes32 identifier of the role to grant. + * @param principal The address of the principal to grant the role to. + * + * Requirements: + * - `role` must be a valid role identifier. + * - The caller must be an instance operator. + */ + function grantRole(bytes32 role, address principal) + public + override(IAccessControl, IAccess) + onlyInstanceOperator + { + require(validRole[role], "ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID"); + AccessControl.grantRole(role, principal); + } + + /** + * @dev Revokes the specified role from the specified principal. + * @param role The bytes32 identifier of the role to revoke. + * @param principal The address of the principal to revoke the role from. + */ + function revokeRole(bytes32 role, address principal) + public + override(IAccessControl, IAccess) + onlyInstanceOperator + { + AccessControl.revokeRole(role, principal); + } + + /** + * @dev Removes the specified `principal` from the `role` in the access control list (ACL) of the contract. + * @param role The bytes32 identifier of the role to remove the `principal` from. + * @param principal The address of the principal to remove from the `role`. + */ + function renounceRole(bytes32 role, address principal) + public + override(IAccessControl, IAccess) + { + AccessControl.renounceRole(role, principal); + } + + //--- manage roles ------------------------------------------------------// + /** + * @dev Adds a new role to the Access Control List. + * @param role The role to be added. + */ + function addRole(bytes32 role) + public override + onlyInstanceOperator + { + require(!validRole[role], "ERROR:ACL-003:ROLE_EXISTING_AND_VALID"); + validRole[role] = true; + } + + /** + * @dev Invalidates a role. + * @param role The role to invalidate. + */ + function invalidateRole(bytes32 role) + public override + onlyInstanceOperator + { + require(validRole[role], "ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID"); + validRole[role] = false; + } + + /** + * @dev Checks if a given principal has a specific role. + * @param role The bytes32 representation of the role to check. + * @param principal The address of the principal to check. + * @return Returns true if the principal has the specified role, false otherwise. + */ + function hasRole(bytes32 role, address principal) + public view + override(IAccessControl, IAccess) + returns(bool) + { + return super.hasRole(role, principal); + } + + /** + * @dev Returns the default admin role. + * @return The DEFAULT_ADMIN_ROLE. + */ + function getDefaultAdminRole() public pure override returns(bytes32) { + return DEFAULT_ADMIN_ROLE; + } + + /** + * @dev Returns the bytes32 value of the PRODUCT_OWNER_ROLE. + * @return PRODUCT_OWNER_ROLE The bytes32 value of the PRODUCT_OWNER_ROLE. + */ + function getProductOwnerRole() public pure override returns(bytes32) { + return PRODUCT_OWNER_ROLE; + } + + /** + * @dev Returns the bytes32 identifier of the Oracle Provider role. + * @return ORACLE_PROVIDER_ROLE The bytes32 identifier of the Oracle Provider role. + */ + function getOracleProviderRole() public pure override returns(bytes32) { + return ORACLE_PROVIDER_ROLE; + } + + /** + * @dev Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. + * @return RISKPOOL_KEEPER_ROLE The bytes32 value of the RISKPOOL_KEEPER_ROLE. + */ + function getRiskpoolKeeperRole() public pure override returns(bytes32) { + return RISKPOOL_KEEPER_ROLE; + } + + /** + * @dev Populates the validRole mapping with the roles that are considered valid for the contract. + * + * + */ + function _populateValidRoles() private { + validRole[PRODUCT_OWNER_ROLE] = true; + validRole[ORACLE_PROVIDER_ROLE] = true; + validRole[RISKPOOL_KEEPER_ROLE] = true; + } +} diff --git a/contracts/modules/BundleController.sol b/contracts/modules/BundleController.sol index 86062849..7ca278e7 100644 --- a/contracts/modules/BundleController.sol +++ b/contracts/modules/BundleController.sol @@ -18,36 +18,22 @@ import "./PoolController.sol"; * - There is a private variable `_bundleCount` to keep track of the number of bundles created. * - The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`. * - * Functions: - * - * - `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment. - * - `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token. - * - `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance. - * - `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle. - * - `lock()`: Locks a bundle of assets by changing its state to "Locked." - * - `unlock()`: Unlocks a bundle, changing its state back to "Active." - * - `close()`: Closes a bundle of policies. - * - `burn()`: Burns a bundle, changing its state to "Burned." - * - `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. - * - `processPremium()`: Processes the premium payment for a given bundle and updates its balance. - * - `processPayout()`: Processes a payout for a policy from a bundle. - * - `releasePolicy()`: Releases a policy and updates the bundle's capital. - * * The contract includes various modifiers and event emitters to enforce access control and emit relevant events. * Overall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle. */ +contract BundleController is + IBundle, + CoreController +{ -contract BundleController is IBundle, CoreController { PolicyController private _policy; - BundleToken private _token; + BundleToken private _token; mapping(uint256 /* bundleId */ => Bundle /* Bundle */) private _bundles; - mapping(uint256 /* bundleId */ => uint256 /* activePolicyCount */) - private _activePolicies; - mapping(uint256 /* bundleId */ => mapping(bytes32 /* processId */ => uint256 /* lockedCapitalAmount */)) - private _valueLockedPerPolicy; - mapping(uint256 /* riskpoolId */ => uint256 /* numberOfUnburntBundles */) - private _unburntBundlesForRiskpoolId; + mapping(uint256 /* bundleId */ => uint256 /* activePolicyCount */) private _activePolicies; + mapping(uint256 /* bundleId */ => mapping(bytes32 /* processId */ => uint256 /* lockedCapitalAmount */)) private _valueLockedPerPolicy; + mapping(uint256 /* riskpoolId */ => uint256 /* numberOfUnburntBundles */) private _unburntBundlesForRiskpoolId; + uint256 private _bundleCount; @@ -63,24 +49,37 @@ contract BundleController is IBundle, CoreController { Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST"); require( - bundle.state != IBundle.BundleState.Burned && - bundle.state != IBundle.BundleState.Closed, - "ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED" + bundle.state != IBundle.BundleState.Burned + && bundle.state != IBundle.BundleState.Closed, "ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED" ); _; } + /** + * @dev Performs internal operations after the contract initialization. + * + * + */ function _afterInitialize() internal override onlyInitializing { _policy = PolicyController(_getContractAddress("Policy")); _token = BundleToken(_getContractAddress("BundleToken")); } - function create( - address owner_, - uint riskpoolId_, - bytes calldata filter_, - uint256 amount_ - ) external override onlyRiskpoolService returns (uint256 bundleId) { + /** + * @dev Creates a new bundle and mints a corresponding NFT token. Only callable by the RiskpoolService contract. + * @param owner_ The address of the bundle owner. + * @param riskpoolId_ The ID of the riskpool associated with the bundle. + * @param filter_ The filter used for the bundle. + * @param amount_ The amount of capital allocated to the bundle. + * @return bundleId The ID of the newly created bundle. + * @notice This function emits 1 events: + * - LogBundleCreated + */ + function create(address owner_, uint riskpoolId_, bytes calldata filter_, uint256 amount_) + external override + onlyRiskpoolService + returns(uint256 bundleId) + { // will start with bundleId 1. // this helps in maps where a bundleId equals a non-existing entry bundleId = _bundleCount + 1; @@ -104,91 +103,113 @@ contract BundleController is IBundle, CoreController { _bundleCount++; _unburntBundlesForRiskpoolId[riskpoolId_]++; - emit LogBundleCreated( - bundle.id, - riskpoolId_, - owner_, - bundle.state, - bundle.capital - ); + emit LogBundleCreated(bundle.id, riskpoolId_, owner_, bundle.state, bundle.capital); } - function fund( - uint256 bundleId, - uint256 amount - ) external override onlyRiskpoolService { + + /** + * @dev Adds funds to a bundle's capital and balance. + * @param bundleId The ID of the bundle to add funds to. + * @param amount The amount of funds to add to the bundle. + * @notice This function emits 1 events: + * - LogBundleCapitalProvided + */ + function fund(uint256 bundleId, uint256 amount) + external override + onlyRiskpoolService + { Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST"); - require( - bundle.state != IBundle.BundleState.Closed, - "ERROR:BUC-012:BUNDLE_CLOSED" - ); + require(bundle.state != IBundle.BundleState.Closed, "ERROR:BUC-012:BUNDLE_CLOSED"); bundle.capital += amount; bundle.balance += amount; bundle.updatedAt = block.timestamp; uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundleCapitalProvided( - bundleId, - _msgSender(), - amount, - capacityAmount - ); + emit LogBundleCapitalProvided(bundleId, _msgSender(), amount, capacityAmount); } - function defund( - uint256 bundleId, - uint256 amount - ) external override onlyRiskpoolService { + + /** + * @dev Allows the Riskpool service to withdraw `amount` from the `bundleId` Bundle. + * @param bundleId The ID of the Bundle to be defunded. + * @param amount The amount of tokens to be withdrawn. + * @notice This function emits 1 events: + * - LogBundleCapitalWithdrawn + */ + function defund(uint256 bundleId, uint256 amount) + external override + onlyRiskpoolService + { Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST"); require( - bundle.capital >= bundle.lockedCapital + amount || - (bundle.lockedCapital == 0 && bundle.balance >= amount), + bundle.capital >= bundle.lockedCapital + amount + || (bundle.lockedCapital == 0 && bundle.balance >= amount), "ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW" ); - if (bundle.capital >= amount) { - bundle.capital -= amount; - } else { - bundle.capital = 0; - } + if (bundle.capital >= amount) { bundle.capital -= amount; } + else { bundle.capital = 0; } bundle.balance -= amount; bundle.updatedAt = block.timestamp; uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundleCapitalWithdrawn( - bundleId, - _msgSender(), - amount, - capacityAmount - ); + emit LogBundleCapitalWithdrawn(bundleId, _msgSender(), amount, capacityAmount); } - function lock(uint256 bundleId) external override onlyRiskpoolService { + /** + * @dev Locks a bundle of assets. + * @param bundleId The ID of the bundle to be locked. + */ + function lock(uint256 bundleId) + external override + onlyRiskpoolService + { _changeState(bundleId, BundleState.Locked); } - function unlock(uint256 bundleId) external override onlyRiskpoolService { + /** + * @dev Unlocks a bundle, changing its state to active. + * @param bundleId The ID of the bundle to be unlocked. + */ + function unlock(uint256 bundleId) + external override + onlyRiskpoolService + { _changeState(bundleId, BundleState.Active); } - function close(uint256 bundleId) external override onlyRiskpoolService { - require( - _activePolicies[bundleId] == 0, - "ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES" - ); + /** + * @dev Closes a bundle of policies. + * @param bundleId The ID of the bundle to close. + */ + function close(uint256 bundleId) + external override + onlyRiskpoolService + { + require(_activePolicies[bundleId] == 0, "ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES"); _changeState(bundleId, BundleState.Closed); } - function burn(uint256 bundleId) external override onlyRiskpoolService { + /** + * @dev Burns a bundle and changes its state to Burned. + * @param bundleId The ID of the bundle to be burned. + * + * Requirements: + * - The bundle must be in the Closed state. + * - The bundle must have a balance of 0. + * + * Emits a {BundleStateChanged} event with BundleState.Burned. + */ + function burn(uint256 bundleId) + external override + onlyRiskpoolService + { Bundle storage bundle = _bundles[bundleId]; - require( - bundle.state == BundleState.Closed, - "ERROR:BUC-016:BUNDLE_NOT_CLOSED" - ); + require(bundle.state == BundleState.Closed, "ERROR:BUC-016:BUNDLE_NOT_CLOSED"); require(bundle.balance == 0, "ERROR:BUC-017:BUNDLE_HAS_BALANCE"); // burn corresponding nft -> as a result bundle looses its owner @@ -198,33 +219,36 @@ contract BundleController is IBundle, CoreController { _changeState(bundleId, BundleState.Burned); } - function collateralizePolicy( - uint256 bundleId, - bytes32 processId, - uint256 amount - ) external override onlyRiskpoolService { + /** + * @dev Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. + * @param bundleId The ID of the bundle to collateralize. + * @param processId The ID of the policy to collateralize. + * @param amount The amount of capital to lock in the bundle. + * + * Requirements: + * - Caller must be the riskpool service. + * - The bundle must belong to the riskpool that controls the product of the policy. + * - The bundle must exist and be in an active state. + * - The capacity of the bundle must be enough to lock the amount of capital. + * - The policy must not have been previously collateralized. + * + * Emits a {LogBundlePolicyCollateralized} event with the bundle ID, policy ID, amount of capital locked, and the remaining capacity of the bundle. + * @notice This function emits 1 events: + * - LogBundlePolicyCollateralized + */ + function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 amount) + external override + onlyRiskpoolService + { IPolicy.Metadata memory metadata = _policy.getMetadata(processId); Bundle storage bundle = _bundles[bundleId]; - require( - bundle.riskpoolId == - _getPoolController().getRiskPoolForProduct(metadata.productId), - "ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL" - ); + require(bundle.riskpoolId == _getPoolController().getRiskPoolForProduct(metadata.productId), "ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL"); require(bundle.createdAt > 0, "ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST"); - require( - bundle.state == IBundle.BundleState.Active, - "ERROR:BUC-021:BUNDLE_NOT_ACTIVE" - ); - require( - bundle.capital >= bundle.lockedCapital + amount, - "ERROR:BUC-022:CAPACITY_TOO_LOW" - ); + require(bundle.state == IBundle.BundleState.Active, "ERROR:BUC-021:BUNDLE_NOT_ACTIVE"); + require(bundle.capital >= bundle.lockedCapital + amount, "ERROR:BUC-022:CAPACITY_TOO_LOW"); // might need to be added in a future relase - require( - _valueLockedPerPolicy[bundleId][processId] == 0, - "ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED" - ); + require(_valueLockedPerPolicy[bundleId][processId] == 0, "ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED"); bundle.lockedCapital += amount; bundle.updatedAt = block.timestamp; @@ -233,19 +257,31 @@ contract BundleController is IBundle, CoreController { _valueLockedPerPolicy[bundleId][processId] = amount; uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundlePolicyCollateralized( - bundleId, - processId, - amount, - capacityAmount - ); + emit LogBundlePolicyCollateralized(bundleId, processId, amount, capacityAmount); } - function processPremium( - uint256 bundleId, - bytes32 processId, - uint256 amount - ) external override onlyRiskpoolService onlyFundableBundle(bundleId) { + + /** + * @dev Process the premium payment for a given bundle and update its balance. + * @param bundleId The ID of the bundle to process the premium payment for. + * @param processId The ID of the process associated with the policy. + * @param amount The amount of premium to be processed. + * + * Requirements: + * - The caller must be the riskpool service. + * - The bundle must exist and be fundable. + * - The policy associated with the process must not be closed. + * - The bundle must exist. + * + * Effects: + * - Increases the balance of the bundle by the amount processed. + * - Updates the updatedAt timestamp of the bundle. + */ + function processPremium(uint256 bundleId, bytes32 processId, uint256 amount) + external override + onlyRiskpoolService + onlyFundableBundle(bundleId) + { IPolicy.Policy memory policy = _policy.getPolicy(processId); require( policy.state != IPolicy.PolicyState.Closed, @@ -254,16 +290,26 @@ contract BundleController is IBundle, CoreController { Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST"); - + bundle.balance += amount; bundle.updatedAt = block.timestamp; // solhint-disable-line } - function processPayout( - uint256 bundleId, - bytes32 processId, - uint256 amount - ) external override onlyRiskpoolService { + + /** + * @dev Processes a payout for a policy from a bundle. + * @param bundleId The ID of the bundle. + * @param processId The ID of the policy process. + * @param amount The amount of the payout. + * + * Emits a LogBundlePayoutProcessed event. + * @notice This function emits 1 events: + * - LogBundlePayoutProcessed + */ + function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) + external override + onlyRiskpoolService + { IPolicy.Policy memory policy = _policy.getPolicy(processId); require( policy.state != IPolicy.PolicyState.Closed, @@ -271,28 +317,18 @@ contract BundleController is IBundle, CoreController { ); // check there are policies and there is sufficient locked capital for policy - require( - _activePolicies[bundleId] > 0, - "ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE" - ); - require( - _valueLockedPerPolicy[bundleId][processId] >= amount, - "ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY" - ); + require(_activePolicies[bundleId] > 0, "ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE"); + require(_valueLockedPerPolicy[bundleId][processId] >= amount, "ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY"); // make sure bundle exists and is not yet closed Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST"); require( - bundle.state == IBundle.BundleState.Active || - bundle.state == IBundle.BundleState.Locked, - "ERROR:BUC-044:BUNDLE_STATE_INVALID" - ); + bundle.state == IBundle.BundleState.Active + || bundle.state == IBundle.BundleState.Locked, + "ERROR:BUC-044:BUNDLE_STATE_INVALID"); require(bundle.capital >= amount, "ERROR:BUC-045:CAPITAL_TOO_LOW"); - require( - bundle.lockedCapital >= amount, - "ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW" - ); + require(bundle.lockedCapital >= amount, "ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW"); require(bundle.balance >= amount, "ERROR:BUC-047:BALANCE_TOO_LOW"); _valueLockedPerPolicy[bundleId][processId] -= amount; @@ -304,14 +340,19 @@ contract BundleController is IBundle, CoreController { emit LogBundlePayoutProcessed(bundleId, processId, amount); } - function releasePolicy( - uint256 bundleId, - bytes32 processId - ) - external - override + + /** + * @dev Release a policy and update the bundle capital. + * @param bundleId The ID of the bundle. + * @param processId The ID of the process. + * @return remainingCollateralAmount The remaining collateral amount after releasing the policy. + * @notice This function emits 1 events: + * - LogBundlePolicyReleased + */ + function releasePolicy(uint256 bundleId, bytes32 processId) + external override onlyRiskpoolService - returns (uint256 remainingCollateralAmount) + returns(uint256 remainingCollateralAmount) { IPolicy.Policy memory policy = _policy.getPolicy(processId); require( @@ -322,14 +363,9 @@ contract BundleController is IBundle, CoreController { // make sure bundle exists and is not yet closed Bundle storage bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST"); - require( - _activePolicies[bundleId] > 0, - "ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE" - ); + require(_activePolicies[bundleId] > 0, "ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE"); - uint256 lockedForPolicyAmount = _valueLockedPerPolicy[bundleId][ - processId - ]; + uint256 lockedForPolicyAmount = _valueLockedPerPolicy[bundleId][processId]; // this should never ever fail ... require( bundle.lockedCapital >= lockedForPolicyAmount, @@ -345,70 +381,116 @@ contract BundleController is IBundle, CoreController { bundle.updatedAt = block.timestamp; // solhint-disable-line uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundlePolicyReleased( - bundleId, - processId, - lockedForPolicyAmount, - capacityAmount - ); + emit LogBundlePolicyReleased(bundleId, processId, lockedForPolicyAmount, capacityAmount); } - function getOwner(uint256 bundleId) public view returns (address) { + /** + * @dev Returns the address of the owner of the token associated with the given bundle ID. + * @param bundleId The ID of the bundle. + * @return The address of the owner of the token. + */ + function getOwner(uint256 bundleId) public view returns(address) { uint256 tokenId = getBundle(bundleId).tokenId; - return _token.ownerOf(tokenId); + return _token.ownerOf(tokenId); } - function getState(uint256 bundleId) public view returns (BundleState) { - return getBundle(bundleId).state; + /** + * @dev Returns the state of the bundle with the given ID. + * @param bundleId The ID of the bundle to retrieve the state from. + * @return The state of the bundle with the given ID. + */ + function getState(uint256 bundleId) public view returns(BundleState) { + return getBundle(bundleId).state; } - function getFilter(uint256 bundleId) public view returns (bytes memory) { + /** + * @dev Returns the filter of a given bundle. + * @param bundleId The ID of the bundle to get the filter from. + * @return The filter of the bundle as a bytes array. + */ + function getFilter(uint256 bundleId) public view returns(bytes memory) { return getBundle(bundleId).filter; - } - - function getCapacity(uint256 bundleId) public view returns (uint256) { + } + + /** + * @dev Returns the available capacity of a bundle. + * @param bundleId The ID of the bundle to get the capacity from. + * @return The available capacity of the bundle. + */ + function getCapacity(uint256 bundleId) public view returns(uint256) { Bundle memory bundle = getBundle(bundleId); return bundle.capital - bundle.lockedCapital; } - function getTotalValueLocked( - uint256 bundleId - ) public view returns (uint256) { - return getBundle(bundleId).lockedCapital; + /** + * @dev Returns the total value locked in a particular bundle. + * @param bundleId The ID of the bundle. + * @return lockedCapital The total value locked in the bundle. + */ + function getTotalValueLocked(uint256 bundleId) public view returns(uint256) { + return getBundle(bundleId).lockedCapital; } - function getBalance(uint256 bundleId) public view returns (uint256) { - return getBundle(bundleId).balance; + /** + * @dev Returns the balance of a specific bundle. + * @param bundleId The ID of the bundle to query. + * @return The balance of the specified bundle. + */ + function getBalance(uint256 bundleId) public view returns(uint256) { + return getBundle(bundleId).balance; } - function getToken() external view returns (BundleToken) { + /** + * @dev Returns the BundleToken contract instance. + * @return _token The BundleToken contract instance. + */ + function getToken() external view returns(BundleToken) { return _token; } - function getBundle(uint256 bundleId) public view returns (Bundle memory) { + /** + * @dev Returns the bundle with the specified bundle ID. + * @param bundleId The ID of the bundle to retrieve. + * @return bundle The bundle with the specified ID. + */ + function getBundle(uint256 bundleId) public view returns(Bundle memory) { Bundle memory bundle = _bundles[bundleId]; require(bundle.createdAt > 0, "ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST"); return bundle; } - function bundles() public view returns (uint256) { + /** + * @dev Returns the number of bundles created. + * @return _bundleCount The number of bundles created. + */ + function bundles() public view returns(uint256) { return _bundleCount; } - function unburntBundles( - uint256 riskpoolId - ) external view returns (uint256) { + /** + * @dev Returns the number of unburnt bundles for a given riskpool ID. + * @param riskpoolId The ID of the riskpool. + * @return The number of unburnt bundles for the given riskpool ID. + */ + function unburntBundles(uint256 riskpoolId) external view returns(uint256) { return _unburntBundlesForRiskpoolId[riskpoolId]; } - function _getPoolController() - internal - view - returns (PoolController _poolController) - { + /** + * @dev Returns the pool controller contract instance. + * @return _poolController The pool controller contract instance. + */ + function _getPoolController() internal view returns (PoolController _poolController) { _poolController = PoolController(_getContractAddress("Pool")); } + /** + * @dev Changes the state of a bundle. + * @param bundleId The ID of the bundle to change the state of. + * @param newState The new state to set for the bundle. + * @notice This function emits 1 events: + * - LogBundleStateChanged + */ function _changeState(uint256 bundleId, BundleState newState) internal { BundleState oldState = getState(bundleId); @@ -419,30 +501,49 @@ contract BundleController is IBundle, CoreController { emit LogBundleStateChanged(bundleId, oldState, newState); } + /** + * @dev Sets the state and updated timestamp of a given bundle. + * @param bundleId The ID of the bundle to update. + * @param newState The new state of the bundle. + */ function _setState(uint256 bundleId, BundleState newState) internal { _bundles[bundleId].state = newState; _bundles[bundleId].updatedAt = block.timestamp; } - function _checkStateTransition( - BundleState oldState, - BundleState newState - ) internal pure { + /** + * @dev Checks if a state transition is valid. + * @param oldState The previous state of the bundle. + * @param newState The new state of the bundle. + * + * Requirements: + * - The oldState must be Active, Locked, Closed, or Burned. + * - The newState must be Locked, Active, Closed, or Burned, depending on the oldState. + * + * Error messages: + * - ERROR:BUC-070:ACTIVE_INVALID_TRANSITION if the oldState is Active and the newState is not Locked or Closed. + * - ERROR:BUC-071:LOCKED_INVALID_TRANSITION if the oldState is Locked and the newState is not Active or Closed. + * - ERROR:BUC-072:CLOSED_INVALID_TRANSITION if the oldState is Closed and the newState is not Burned. + * - ERROR:BUC-073:BURNED_IS_FINAL_STATE if the oldState is Burned. + * - ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED if the oldState is not Active, Locked, Closed, or Burned. + */ + function _checkStateTransition(BundleState oldState, BundleState newState) + internal + pure + { if (oldState == BundleState.Active) { require( - newState == BundleState.Locked || - newState == BundleState.Closed, + newState == BundleState.Locked || newState == BundleState.Closed, "ERROR:BUC-070:ACTIVE_INVALID_TRANSITION" ); } else if (oldState == BundleState.Locked) { require( - newState == BundleState.Active || - newState == BundleState.Closed, + newState == BundleState.Active || newState == BundleState.Closed, "ERROR:BUC-071:LOCKED_INVALID_TRANSITION" ); } else if (oldState == BundleState.Closed) { require( - newState == BundleState.Burned, + newState == BundleState.Burned, "ERROR:BUC-072:CLOSED_INVALID_TRANSITION" ); } else if (oldState == BundleState.Burned) { diff --git a/contracts/modules/ComponentController.sol b/contracts/modules/ComponentController.sol index 6aa63240..0646bc13 100644 --- a/contracts/modules/ComponentController.sol +++ b/contracts/modules/ComponentController.sol @@ -1,382 +1,513 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../shared/CoreController.sol"; -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/components/IOracle.sol"; -import "@etherisc/gif-interface/contracts/components/IProduct.sol"; -import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; -import "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol"; -import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; - -/** - * @dev The smart contract provides functionality to manage and control components in a system. - * The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. - * It also includes modifiers to restrict access to certain functions based on the caller's role. - * - * Functions: - * - * - `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. - * - `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. - * - `exists()`: Checks if a component with the given ID exists in the system. - * - `approve()`: Approves a component with the given ID, changing its state to "Active" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping. - * - `decline()`: Changes the state of a component with the given ID to "Declined" and emits an event. It also calls the `declineCallback` function of the component. - * - `suspend()`: Suspends a component with the given ID by changing its state to "Suspended" and emitting an event. It also calls the `suspendCallback` function of the component. - * - `resume()`: Resumes a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `resumeCallback` function of the component. - * - `pause()`: Pauses a component with the given ID by changing its state to "Paused" and emitting an event. It also calls the `pauseCallback` function of the component. - * - `unpause()`: Unpauses a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `unpauseCallback` function of the component. - * - `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. - * - `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. - * - `getComponent()`: Retrieves the component with the given ID. - * - `getComponentId()`: Retrieves the ID of a registered component given its address. - * - `getComponentType()`: Retrieves the component type of a given component ID. - * - `getComponentState()`: Retrieves the state of the component with the given ID. - * - `getOracleId()`: Retrieves the oracle ID at the specified index. - * - `getRiskpoolId()`: Retrieves the risk pool ID at the specified index. - * - `getProductId()`: Retrieves the product ID at the specified index. - * - `getRequiredRole()`: Retrieves the required role for a given component type. - * - `components()`: Returns the number of components currently stored in the contract. - * - `products()`: Returns the number of products in the `_products` set. - * - `oracles()`: Returns the number of oracles registered in the `_oracles` set. - * - `riskpools()`: Returns the number of risk pools in the set. - * - * The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. - * - * The contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations. - */ - -contract ComponentController is IComponentEvents, CoreController { - using EnumerableSet for EnumerableSet.UintSet; - - mapping(uint256 => IComponent) private _componentById; - mapping(bytes32 => uint256) private _componentIdByName; - mapping(address => uint256) private _componentIdByAddress; - - mapping(uint256 => IComponent.ComponentState) private _componentState; - - EnumerableSet.UintSet private _products; - EnumerableSet.UintSet private _oracles; - EnumerableSet.UintSet private _riskpools; - uint256 private _componentCount; - - mapping(uint256 /* product id */ => address /* policy flow address */) - private _policyFlowByProductId; - - modifier onlyComponentOwnerService() { - require( - _msgSender() == _getContractAddress("ComponentOwnerService"), - "ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE" - ); - _; - } - - modifier onlyInstanceOperatorService() { - require( - _msgSender() == _getContractAddress("InstanceOperatorService"), - "ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE" - ); - _; - } - - function propose(IComponent component) external onlyComponentOwnerService { - // input validation - require( - _componentIdByAddress[address(component)] == 0, - "ERROR:CCR-003:COMPONENT_ALREADY_EXISTS" - ); - require( - _componentIdByName[component.getName()] == 0, - "ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS" - ); - - // assigning id and persisting component - uint256 id = _persistComponent(component); - - // log entry for successful proposal - emit LogComponentProposed( - component.getName(), - component.getType(), - address(component), - id - ); - - // inform component about successful proposal - component.proposalCallback(); - } - - function _persistComponent( - IComponent component - ) internal returns (uint256 id) { - // fetch next component id - _componentCount++; - id = _componentCount; - - // update component state - _changeState(id, IComponent.ComponentState.Proposed); - component.setId(id); - - // update controller book keeping - _componentById[id] = component; - _componentIdByName[component.getName()] = id; - _componentIdByAddress[address(component)] = id; - - // type specific book keeping - if (component.isProduct()) { - EnumerableSet.add(_products, id); - } else if (component.isOracle()) { - EnumerableSet.add(_oracles, id); - } else if (component.isRiskpool()) { - EnumerableSet.add(_riskpools, id); - } - } - - function exists(uint256 id) public view returns (bool) { - IComponent component = _componentById[id]; - return (address(component) != address(0)); - } - - function approve(uint256 id) external onlyInstanceOperatorService { - _changeState(id, IComponent.ComponentState.Active); - IComponent component = getComponent(id); - - if (isProduct(id)) { - _policyFlowByProductId[id] = IProduct(address(component)) - .getPolicyFlow(); - } - - emit LogComponentApproved(id); - - // inform component about successful approval - component.approvalCallback(); - } - - function decline(uint256 id) external onlyInstanceOperatorService { - _changeState(id, IComponent.ComponentState.Declined); - emit LogComponentDeclined(id); - - // inform component about decline - IComponent component = getComponent(id); - component.declineCallback(); - } - - function suspend(uint256 id) external onlyInstanceOperatorService { - _changeState(id, IComponent.ComponentState.Suspended); - emit LogComponentSuspended(id); - - // inform component about suspending - IComponent component = getComponent(id); - component.suspendCallback(); - } - - function resume(uint256 id) external onlyInstanceOperatorService { - _changeState(id, IComponent.ComponentState.Active); - emit LogComponentResumed(id); - - // inform component about resuming - IComponent component = getComponent(id); - component.resumeCallback(); - } - - function pause(uint256 id) external onlyComponentOwnerService { - _changeState(id, IComponent.ComponentState.Paused); - emit LogComponentPaused(id); - - // inform component about pausing - IComponent component = getComponent(id); - component.pauseCallback(); - } - - function unpause(uint256 id) external onlyComponentOwnerService { - _changeState(id, IComponent.ComponentState.Active); - emit LogComponentUnpaused(id); - - // inform component about unpausing - IComponent component = getComponent(id); - component.unpauseCallback(); - } - - function archiveFromComponentOwner( - uint256 id - ) external onlyComponentOwnerService { - _changeState(id, IComponent.ComponentState.Archived); - emit LogComponentArchived(id); - - // inform component about archiving - IComponent component = getComponent(id); - component.archiveCallback(); - } - - function archiveFromInstanceOperator( - uint256 id - ) external onlyInstanceOperatorService { - _changeState(id, IComponent.ComponentState.Archived); - emit LogComponentArchived(id); - - // inform component about archiving - IComponent component = getComponent(id); - component.archiveCallback(); - } - - function getComponent( - uint256 id - ) public view returns (IComponent component) { - component = _componentById[id]; - require( - address(component) != address(0), - "ERROR:CCR-005:INVALID_COMPONENT_ID" - ); - } - - function getComponentId( - address componentAddress - ) public view returns (uint256 id) { - require( - componentAddress != address(0), - "ERROR:CCR-006:COMPONENT_ADDRESS_ZERO" - ); - id = _componentIdByAddress[componentAddress]; - - require(id > 0, "ERROR:CCR-007:COMPONENT_UNKNOWN"); - } - - function getComponentType( - uint256 id - ) public view returns (IComponent.ComponentType componentType) { - if (EnumerableSet.contains(_products, id)) { - return IComponent.ComponentType.Product; - } else if (EnumerableSet.contains(_oracles, id)) { - return IComponent.ComponentType.Oracle; - } else if (EnumerableSet.contains(_riskpools, id)) { - return IComponent.ComponentType.Riskpool; - } else { - revert("ERROR:CCR-008:INVALID_COMPONENT_ID"); - } - } - - function getComponentState( - uint256 id - ) public view returns (IComponent.ComponentState componentState) { - return _componentState[id]; - } - - function getOracleId(uint256 idx) public view returns (uint256 oracleId) { - return EnumerableSet.at(_oracles, idx); - } - - function getRiskpoolId( - uint256 idx - ) public view returns (uint256 riskpoolId) { - return EnumerableSet.at(_riskpools, idx); - } - - function getProductId(uint256 idx) public view returns (uint256 productId) { - return EnumerableSet.at(_products, idx); - } - - function getRequiredRole( - IComponent.ComponentType componentType - ) external view returns (bytes32) { - if (componentType == IComponent.ComponentType.Product) { - return _access.getProductOwnerRole(); - } else if (componentType == IComponent.ComponentType.Oracle) { - return _access.getOracleProviderRole(); - } else if (componentType == IComponent.ComponentType.Riskpool) { - return _access.getRiskpoolKeeperRole(); - } else { - revert("ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN"); - } - } - - function components() public view returns (uint256 count) { - return _componentCount; - } - - function products() public view returns (uint256 count) { - return EnumerableSet.length(_products); - } - - function oracles() public view returns (uint256 count) { - return EnumerableSet.length(_oracles); - } - - function riskpools() public view returns (uint256 count) { - return EnumerableSet.length(_riskpools); - } - - function isProduct(uint256 id) public view returns (bool) { - return EnumerableSet.contains(_products, id); - } - - function isOracle(uint256 id) public view returns (bool) { - return EnumerableSet.contains(_oracles, id); - } - - function isRiskpool(uint256 id) public view returns (bool) { - return EnumerableSet.contains(_riskpools, id); - } - - function getPolicyFlow( - uint256 productId - ) public view returns (address _policyFlow) { - require(isProduct(productId), "ERROR:CCR-011:UNKNOWN_PRODUCT_ID"); - _policyFlow = _policyFlowByProductId[productId]; - } - - function _changeState( - uint256 componentId, - IComponent.ComponentState newState - ) internal { - IComponent.ComponentState oldState = _componentState[componentId]; - - _checkStateTransition(oldState, newState); - _componentState[componentId] = newState; - - // log entry for successful component state change - emit LogComponentStateChanged(componentId, oldState, newState); - } - - function _checkStateTransition( - IComponent.ComponentState oldState, - IComponent.ComponentState newState - ) internal pure { - require( - newState != oldState, - "ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL" - ); - - if (oldState == IComponent.ComponentState.Created) { - require( - newState == IComponent.ComponentState.Proposed, - "ERROR:CCR-021:CREATED_INVALID_TRANSITION" - ); - } else if (oldState == IComponent.ComponentState.Proposed) { - require( - newState == IComponent.ComponentState.Active || - newState == IComponent.ComponentState.Declined, - "ERROR:CCR-22:PROPOSED_INVALID_TRANSITION" - ); - } else if (oldState == IComponent.ComponentState.Declined) { - revert("ERROR:CCR-023:DECLINED_IS_FINAL_STATE"); - } else if (oldState == IComponent.ComponentState.Active) { - require( - newState == IComponent.ComponentState.Paused || - newState == IComponent.ComponentState.Suspended, - "ERROR:CCR-024:ACTIVE_INVALID_TRANSITION" - ); - } else if (oldState == IComponent.ComponentState.Paused) { - require( - newState == IComponent.ComponentState.Active || - newState == IComponent.ComponentState.Archived, - "ERROR:CCR-025:PAUSED_INVALID_TRANSITION" - ); - } else if (oldState == IComponent.ComponentState.Suspended) { - require( - newState == IComponent.ComponentState.Active || - newState == IComponent.ComponentState.Archived, - "ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION" - ); - } else { - revert("ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED"); - } - } -} +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../shared/CoreController.sol"; +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/components/IOracle.sol"; +import "@etherisc/gif-interface/contracts/components/IProduct.sol"; +import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; +import "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol"; +import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; + +/** + * @dev The smart contract provides functionality to manage and control components in a system. + * The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. + * It also includes modifiers to restrict access to certain functions based on the caller's role. + * + * The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. + * + * The contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations. + */ + + + +contract ComponentController is + IComponentEvents, + CoreController + { + using EnumerableSet for EnumerableSet.UintSet; + + mapping(uint256 => IComponent) private _componentById; + mapping(bytes32 => uint256) private _componentIdByName; + mapping(address => uint256) private _componentIdByAddress; + + mapping(uint256 => IComponent.ComponentState) private _componentState; + + EnumerableSet.UintSet private _products; + EnumerableSet.UintSet private _oracles; + EnumerableSet.UintSet private _riskpools; + uint256 private _componentCount; + + mapping(uint256 /* product id */ => address /* policy flow address */) private _policyFlowByProductId; + + modifier onlyComponentOwnerService() { + require( + _msgSender() == _getContractAddress("ComponentOwnerService"), + "ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE"); + _; + } + + modifier onlyInstanceOperatorService() { + require( + _msgSender() == _getContractAddress("InstanceOperatorService"), + "ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE"); + _; + } + + /** + * @dev Proposes a new component to the system. + * @param component The component to be proposed. + * + * Emits a LogComponentProposed event with the name, type, address and id of the proposed component. + * Calls the proposalCallback function of the proposed component to inform it about the successful proposal. + * + * Requirements: + * - The caller must be the owner service of the component. + * - The component must not already exist in the system. + * - The component name must not already exist in the system. + * @notice This function emits 1 events: + * - LogComponentProposed + */ + function propose(IComponent component) + external + onlyComponentOwnerService + { + // input validation + require(_componentIdByAddress[address(component)] == 0, "ERROR:CCR-003:COMPONENT_ALREADY_EXISTS"); + require(_componentIdByName[component.getName()] == 0, "ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS"); + + // assigning id and persisting component + uint256 id = _persistComponent(component); + + // log entry for successful proposal + emit LogComponentProposed( + component.getName(), + component.getType(), + address(component), + id); + + // inform component about successful proposal + component.proposalCallback(); + } + + /** + * @dev Persists a new component into the system. + * @param component The component to be persisted. + * @return id The id of the newly persisted component. + * + * - Fetches the next component id. + * - Updates component state to Proposed. + * - Sets the id of the component. + * - Updates controller book keeping with the new component id. + * - Updates type specific book keeping. + */ + function _persistComponent(IComponent component) + internal + returns(uint256 id) + { + // fetch next component id + _componentCount++; + id = _componentCount; + + // update component state + _changeState(id, IComponent.ComponentState.Proposed); + component.setId(id); + + // update controller book keeping + _componentById[id] = component; + _componentIdByName[component.getName()] = id; + _componentIdByAddress[address(component)] = id; + + // type specific book keeping + if (component.isProduct()) { EnumerableSet.add(_products, id); } + else if (component.isOracle()) { EnumerableSet.add(_oracles, id); } + else if (component.isRiskpool()) { EnumerableSet.add(_riskpools, id); } + } + + /** + * @dev Checks if a component with the given ID exists. + * @param id The ID of the component to check. + * @return True if a component with the given ID exists, false otherwise. + */ + function exists(uint256 id) public view returns(bool) { + IComponent component = _componentById[id]; + return (address(component) != address(0)); + } + + /** + * @dev Approves a component with the given id. + * @param id The id of the component to be approved. + * + * Emits a LogComponentApproved event and informs the component about the successful approval by calling the approvalCallback function. + * If the component is a product, sets the policy flow in the _policyFlowByProductId mapping. + * @notice This function emits 1 events: + * - LogComponentApproved + */ + function approve(uint256 id) + external + onlyInstanceOperatorService + { + _changeState(id, IComponent.ComponentState.Active); + IComponent component = getComponent(id); + + if (isProduct(id)) { + _policyFlowByProductId[id] = IProduct(address(component)).getPolicyFlow(); + } + + emit LogComponentApproved(id); + + // inform component about successful approval + component.approvalCallback(); + } + + /** + * @dev Changes the state of a component with the given ID to "Declined" and emits a LogComponentDeclined event. + * Calls the declineCallback function of the component with the given ID. + * + * @param id The ID of the component to decline. + * @notice This function emits 1 events: + * - LogComponentDeclined + */ + function decline(uint256 id) + external + onlyInstanceOperatorService + { + _changeState(id, IComponent.ComponentState.Declined); + emit LogComponentDeclined(id); + + // inform component about decline + IComponent component = getComponent(id); + component.declineCallback(); + } + + /** + * @dev Suspends a component with the given ID. + * + * @param id The ID of the component to suspend. + * + * @notice This function emits 1 events: + * - LogComponentSuspended + */ + function suspend(uint256 id) + external + onlyInstanceOperatorService + { + _changeState(id, IComponent.ComponentState.Suspended); + emit LogComponentSuspended(id); + + // inform component about suspending + IComponent component = getComponent(id); + component.suspendCallback(); + } + + /** + * @dev Resumes a component by changing its state to Active and emitting an event. + * It also calls the resumeCallback() function of the component to inform it about the resuming. + * + * @param id The ID of the component to be resumed. + * @notice This function emits 1 events: + * - LogComponentResumed + */ + function resume(uint256 id) + external + onlyInstanceOperatorService + { + _changeState(id, IComponent.ComponentState.Active); + emit LogComponentResumed(id); + + // inform component about resuming + IComponent component = getComponent(id); + component.resumeCallback(); + } + + /** + * @dev Pauses the component with the given ID. + * @param id The ID of the component to be paused. + * @notice This function emits 1 events: + * - LogComponentPaused + */ + function pause(uint256 id) + external + onlyComponentOwnerService + { + _changeState(id, IComponent.ComponentState.Paused); + emit LogComponentPaused(id); + + // inform component about pausing + IComponent component = getComponent(id); + component.pauseCallback(); + } + + /** + * @dev Unpauses a component with the given id. + * + * @param id The id of the component to unpause. + * + * @notice This function emits 1 events: + * - LogComponentUnpaused + */ + function unpause(uint256 id) + external + onlyComponentOwnerService + { + _changeState(id, IComponent.ComponentState.Active); + emit LogComponentUnpaused(id); + + // inform component about unpausing + IComponent component = getComponent(id); + component.unpauseCallback(); + } + + /** + * @dev Archives a component with the given ID, changing its state to "Archived" and emitting a LogComponentArchived event. + * Also calls the archiveCallback function of the component with the given ID, informing it about the archiving. + * + * @param id The ID of the component to be archived. + * @notice This function emits 1 events: + * - LogComponentArchived + */ + function archiveFromComponentOwner(uint256 id) + external + onlyComponentOwnerService + { + _changeState(id, IComponent.ComponentState.Archived); + emit LogComponentArchived(id); + + // inform component about archiving + IComponent component = getComponent(id); + component.archiveCallback(); + } + + /** + * @dev Archives a component instance with the given ID. + * @param id The ID of the component instance to be archived. + * + * @notice This function emits 1 events: + * - LogComponentArchived + */ + function archiveFromInstanceOperator(uint256 id) + external + onlyInstanceOperatorService + { + _changeState(id, IComponent.ComponentState.Archived); + emit LogComponentArchived(id); + + // inform component about archiving + IComponent component = getComponent(id); + component.archiveCallback(); + } + + /** + * @dev Returns the component with the given ID. + * @param id The ID of the component to retrieve. + * @return component The component with the given ID. + */ + function getComponent(uint256 id) public view returns (IComponent component) { + component = _componentById[id]; + require(address(component) != address(0), "ERROR:CCR-005:INVALID_COMPONENT_ID"); + } + + /** + * @dev Returns the ID of a registered component given its address. + * @param componentAddress The address of the component. + * @return id The ID of the component. + */ + function getComponentId(address componentAddress) public view returns (uint256 id) { + require(componentAddress != address(0), "ERROR:CCR-006:COMPONENT_ADDRESS_ZERO"); + id = _componentIdByAddress[componentAddress]; + + require(id > 0, "ERROR:CCR-007:COMPONENT_UNKNOWN"); + } + + /** + * @dev Returns the component type of a given component ID. + * @param id The ID of the component. + * @return componentType The type of the component (Product, Oracle or Riskpool). + * @notice If the component ID is not found, reverts with an error message. + */ + function getComponentType(uint256 id) public view returns (IComponent.ComponentType componentType) { + if (EnumerableSet.contains(_products, id)) { + return IComponent.ComponentType.Product; + } else if (EnumerableSet.contains(_oracles, id)) { + return IComponent.ComponentType.Oracle; + } else if (EnumerableSet.contains(_riskpools, id)) { + return IComponent.ComponentType.Riskpool; + } else { + revert("ERROR:CCR-008:INVALID_COMPONENT_ID"); + } + } + + /** + * @dev Returns the state of the component with the given ID. + * @param id The ID of the component. + * @return componentState The state of the component. + */ + function getComponentState(uint256 id) public view returns (IComponent.ComponentState componentState) { + return _componentState[id]; + } + + /** + * @dev Returns the oracle ID at the given index. + * @param idx The index of the oracle ID to retrieve. + * @return oracleId The oracle ID at the given index. + */ + function getOracleId(uint256 idx) public view returns (uint256 oracleId) { + return EnumerableSet.at(_oracles, idx); + } + + /** + * @dev Returns the riskpool ID at the specified index. + * @param idx The index of the riskpool ID to retrieve. + * @return riskpoolId The ID of the riskpool at the specified index. + */ + function getRiskpoolId(uint256 idx) public view returns (uint256 riskpoolId) { + return EnumerableSet.at(_riskpools, idx); + } + + /** + * @dev Returns the product ID at the given index in the _products set. + * @param idx The index of the product ID to retrieve. + * @return productId The product ID at the given index. + */ + function getProductId(uint256 idx) public view returns (uint256 productId) { + return EnumerableSet.at(_products, idx); + } + + /** + * @dev Returns the required role for a given component type. + * @param componentType The type of component for which to retrieve the required role. + * @return The required role as a bytes32 value. + * + * Requirements: + * - The component type must be a valid value from the IComponent.ComponentType enum. + * - If the component type is not recognized, the function reverts with an error message. + */ + function getRequiredRole(IComponent.ComponentType componentType) external view returns (bytes32) { + if (componentType == IComponent.ComponentType.Product) { return _access.getProductOwnerRole(); } + else if (componentType == IComponent.ComponentType.Oracle) { return _access.getOracleProviderRole(); } + else if (componentType == IComponent.ComponentType.Riskpool) { return _access.getRiskpoolKeeperRole(); } + else { revert("ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN"); } + } + + /** + * @dev Returns the number of components currently stored in the contract. + * @return count The number of components stored. + */ + function components() public view returns (uint256 count) { return _componentCount; } + /** + * @dev Returns the number of products in the set '_products'. + * @return count The number of products in the set '_products'. + */ + function products() public view returns (uint256 count) { return EnumerableSet.length(_products); } + /** + * @dev Returns the number of oracles registered in the _oracles set. + * @return count The number of oracles registered in the _oracles set. + */ + function oracles() public view returns (uint256 count) { return EnumerableSet.length(_oracles); } + /** + * @dev Returns the number of risk pools in the EnumerableSet. + * @return count The number of risk pools in the EnumerableSet. + */ + function riskpools() public view returns (uint256 count) { return EnumerableSet.length(_riskpools); } + + /** + * @dev Check if a product exists in the set of products. + * @param id The ID of the product to check. + * @return Returns true if the product exists in the set, false otherwise. + */ + function isProduct(uint256 id) public view returns (bool) { return EnumerableSet.contains(_products, id); } + + /** + * @dev Checks if an oracle with a given ID exists. + * @param id The ID of the oracle to check. + * @return A boolean indicating whether the oracle exists or not. + */ + function isOracle(uint256 id) public view returns (bool) { return EnumerableSet.contains(_oracles, id); } + + /** + * @dev Checks if a given ID is a riskpool. + * @param id The ID to check. + * @return A boolean value indicating if the given ID is a riskpool. + */ + function isRiskpool(uint256 id) public view returns (bool) { return EnumerableSet.contains(_riskpools, id); } + + /** + * @dev Returns the address of the policy flow for a given product ID. + * @param productId The ID of the product to retrieve the policy flow for. + * @return _policyFlow The address of the policy flow for the given product ID. + */ + function getPolicyFlow(uint256 productId) public view returns (address _policyFlow) { + require(isProduct(productId), "ERROR:CCR-011:UNKNOWN_PRODUCT_ID"); + _policyFlow = _policyFlowByProductId[productId]; + } + + /** + * @dev Changes the state of a component. + * @param componentId The ID of the component to change the state of. + * @param newState The new state to set for the component. + * + * Emits a LogComponentStateChanged event upon successful state change. + * @notice This function emits 1 events: + * - LogComponentStateChanged + */ + function _changeState(uint256 componentId, IComponent.ComponentState newState) internal { + IComponent.ComponentState oldState = _componentState[componentId]; + + _checkStateTransition(oldState, newState); + _componentState[componentId] = newState; + + // log entry for successful component state change + emit LogComponentStateChanged(componentId, oldState, newState); + } + + /** + * @dev Checks if the state transition is valid. + * @param oldState The current state of the component. + * @param newState The state to which the component will transition. + * + * + * @dev Throws an error if the newState is the same as the oldState. + * @dev Throws an error if the transition from Created state is not to Proposed state. + * @dev Throws an error if the transition from Proposed state is not to Active or Declined state. + * @dev Throws an error if the transition from Declined state is attempted. + * @dev Throws an error if the transition from Active state is not to Paused or Suspended state. + * @dev Throws an error if the transition from Paused state is not to Active or Archived state. + * @dev Throws an error if the transition from Suspended state is not to Active or Archived state. + * @dev Throws an error if the initial state is not handled. + */ + function _checkStateTransition( + IComponent.ComponentState oldState, + IComponent.ComponentState newState + ) + internal + pure + { + require(newState != oldState, + "ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL"); + + if (oldState == IComponent.ComponentState.Created) { + require(newState == IComponent.ComponentState.Proposed, + "ERROR:CCR-021:CREATED_INVALID_TRANSITION"); + } else if (oldState == IComponent.ComponentState.Proposed) { + require(newState == IComponent.ComponentState.Active + || newState == IComponent.ComponentState.Declined, + "ERROR:CCR-22:PROPOSED_INVALID_TRANSITION"); + } else if (oldState == IComponent.ComponentState.Declined) { + revert("ERROR:CCR-023:DECLINED_IS_FINAL_STATE"); + } else if (oldState == IComponent.ComponentState.Active) { + require(newState == IComponent.ComponentState.Paused + || newState == IComponent.ComponentState.Suspended, + "ERROR:CCR-024:ACTIVE_INVALID_TRANSITION"); + } else if (oldState == IComponent.ComponentState.Paused) { + require(newState == IComponent.ComponentState.Active + || newState == IComponent.ComponentState.Archived, + "ERROR:CCR-025:PAUSED_INVALID_TRANSITION"); + } else if (oldState == IComponent.ComponentState.Suspended) { + require(newState == IComponent.ComponentState.Active + || newState == IComponent.ComponentState.Archived, + "ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION"); + } else { + revert("ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED"); + } + } +} diff --git a/contracts/modules/LicenseController.sol b/contracts/modules/LicenseController.sol index 15f37dee..eb399a98 100644 --- a/contracts/modules/LicenseController.sol +++ b/contracts/modules/LicenseController.sol @@ -16,30 +16,37 @@ import "@etherisc/gif-interface/contracts/modules/ILicense.sol"; * It also imports several interfaces from the "etherisc/gif-interface" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`. * The contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract. * - * Functions: - * - * - `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract. - * - `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function. - * - `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`. - * - `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`. - * * Overall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem. */ -contract LicenseController is ILicense, CoreController { + + +contract LicenseController is + ILicense, + CoreController +{ + ComponentController private _component; + /** + * @dev This function is called after the contract is initialized and sets the `_component` variable to the address of the `ComponentController` contract. + * + */ function _afterInitialize() internal override onlyInitializing { _component = ComponentController(_getContractAddress("Component")); } // ensures that calling component (productAddress) is a product - function getAuthorizationStatus( - address productAddress - ) - public + /** + * @dev Returns the authorization status of a given product address. + * @param productAddress The address of the product to check authorization status for. + * @return productId The ID of the product. + * @return isAuthorized A boolean indicating whether the product is authorized or not. + * @return policyFlow The address of the policy flow associated with the product. + */ + function getAuthorizationStatus(address productAddress) + public override view - override returns (uint256 productId, bool isAuthorized, address policyFlow) { productId = _component.getComponentId(productAddress); @@ -47,17 +54,22 @@ contract LicenseController is ILicense, CoreController { policyFlow = _component.getPolicyFlow(productId); } + /** + * @dev Checks if a product is currently active. + * @param productId The ID of the product to check. + * @return A boolean indicating if the product is active or not. + */ function _isValidCall(uint256 productId) internal view returns (bool) { - return - _component.getComponentState(productId) == - IComponent.ComponentState.Active; + return _component.getComponentState(productId) == IComponent.ComponentState.Active; } + /** + * @dev Returns the product associated with the given ID. + * @param id The ID of the product to retrieve. + * @return product The product associated with the given ID. + */ function _getProduct(uint256 id) internal view returns (IProduct product) { - require( - _component.isProduct(id), - "ERROR:LIC-001:COMPONENT_NOT_PRODUCT" - ); + require(_component.isProduct(id), "ERROR:LIC-001:COMPONENT_NOT_PRODUCT"); IComponent cmp = _component.getComponent(id); product = IProduct(address(cmp)); } diff --git a/contracts/modules/PolicyController.sol b/contracts/modules/PolicyController.sol index 44de75fe..39e95204 100644 --- a/contracts/modules/PolicyController.sol +++ b/contracts/modules/PolicyController.sol @@ -11,7 +11,7 @@ import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; * Additionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy. * The contract inherits from the `IPolicy` interface and the `CoreController` contract. * - * 1. State Variables: + * State Variables: * * - `metadata`: A mapping that stores metadata associated with policy flows. * - `applications`: A mapping that stores insurance applications associated with policy flows. @@ -22,34 +22,14 @@ import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; * - `_assigendProcessIds`: A counter variable for assigning unique process IDs. * - `_component`: A reference to the `ComponentController` contract. * - * 2. Functions: - * - * - `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization. - * - `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data. - * - `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data. - * - `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount. - * - `revokeApplication()`: Revokes an application for a policy flow. - * - `underwriteApplication()`: Changes the state of an application to "Underwritten". - * - `declineApplication()`: Declines an application for a policy flow. - * - `createPolicy()`: Creates a new policy for a given application process ID. - * - `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application. - * - `expirePolicy()`: Expires a policy with the given process ID. - * - `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims. - * - `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event. - * - `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event. - * - `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event. - * - `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event. - * - `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event. - * - `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event. - * - `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists. - * - `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists. - * - `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function. - * - `getNumberOfPayouts()`: Returns the number of payouts for a given process ID. - * * Overall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract. */ -contract PolicyController is IPolicy, CoreController { + +contract PolicyController is + IPolicy, + CoreController +{ // bytes32 public constant NAME = "PolicyController"; // Metadata @@ -62,12 +42,10 @@ contract PolicyController is IPolicy, CoreController { mapping(bytes32 /* processId */ => Policy) public policies; // Claims - mapping(bytes32 /* processId */ => mapping(uint256 /* claimId */ => Claim)) - public claims; + mapping(bytes32 /* processId */ => mapping(uint256 /* claimId */ => Claim)) public claims; // Payouts - mapping(bytes32 /* processId */ => mapping(uint256 /* payoutId */ => Payout)) - public payouts; + mapping(bytes32 /* processId */ => mapping(uint256 /* payoutId */ => Payout)) public payouts; mapping(bytes32 /* processId */ => uint256) public payoutCount; // counter for assigned processIds, used to ensure unique processIds @@ -75,28 +53,38 @@ contract PolicyController is IPolicy, CoreController { ComponentController private _component; + /** + * @dev Internal function that sets the _component variable to the address of the ComponentController contract. + * + */ function _afterInitialize() internal override onlyInitializing { _component = ComponentController(_getContractAddress("Component")); } /* Metadata */ + /** + * @dev Creates a new policy flow for a given owner and product. + * @param owner The address of the owner of the policy flow. + * @param productId The ID of the product associated with the policy flow. + * @param data Additional data associated with the policy flow. + * @return processId The ID of the newly created policy flow. + * @notice This function emits 1 events: + * - LogMetadataCreated + */ function createPolicyFlow( address owner, uint256 productId, bytes calldata data - ) external override onlyPolicyFlow("Policy") returns (bytes32 processId) { + ) + external override + onlyPolicyFlow("Policy") + returns(bytes32 processId) + { require(owner != address(0), "ERROR:POL-001:INVALID_OWNER"); - require( - _component.isProduct(productId), - "ERROR:POL-002:INVALID_PRODUCT" - ); - require( - _component.getComponentState(productId) == - IComponent.ComponentState.Active, - "ERROR:POL-003:PRODUCT_NOT_ACTIVE" - ); - + require(_component.isProduct(productId), "ERROR:POL-002:INVALID_PRODUCT"); + require(_component.getComponentState(productId) == IComponent.ComponentState.Active, "ERROR:POL-003:PRODUCT_NOT_ACTIVE"); + processId = _generateNextProcessId(); Metadata storage meta = metadata[processId]; require(meta.createdAt == 0, "ERROR:POC-004:METADATA_ALREADY_EXISTS"); @@ -108,35 +96,46 @@ contract PolicyController is IPolicy, CoreController { meta.createdAt = block.timestamp; // solhint-disable-line meta.updatedAt = block.timestamp; // solhint-disable-line - emit LogMetadataCreated( - owner, - processId, - productId, - PolicyFlowState.Started - ); + emit LogMetadataCreated(owner, processId, productId, PolicyFlowState.Started); } /* Application */ + /** + * @dev Creates a new insurance application for a given process ID. + * @param processId The unique process ID associated with the insurance application. + * @param premiumAmount The amount of premium to be paid for the insurance. + * @param sumInsuredAmount The amount of coverage provided by the insurance. + * @param data Additional data associated with the insurance application. + * + * Emits a LogApplicationCreated event with the process ID, premium amount, and sum insured amount. + * + * Requirements: + * - The metadata for the process ID must exist. + * - An application for the process ID must not already exist. + * - The premium amount must be greater than zero. + * - The sum insured amount must be greater than the premium amount. + * - Only the PolicyFlow contract can call this function. + * @notice This function emits 2 events: + * - LogApplicationCreated + * - LogMetadataStateChanged + */ function createApplication( - bytes32 processId, + bytes32 processId, uint256 premiumAmount, uint256 sumInsuredAmount, bytes calldata data - ) external override onlyPolicyFlow("Policy") { + ) + external override + onlyPolicyFlow("Policy") + { Metadata storage meta = metadata[processId]; require(meta.createdAt > 0, "ERROR:POC-010:METADATA_DOES_NOT_EXIST"); Application storage application = applications[processId]; - require( - application.createdAt == 0, - "ERROR:POC-011:APPLICATION_ALREADY_EXISTS" - ); + require(application.createdAt == 0, "ERROR:POC-011:APPLICATION_ALREADY_EXISTS"); require(premiumAmount > 0, "ERROR:POC-012:PREMIUM_AMOUNT_ZERO"); - require( - sumInsuredAmount > premiumAmount, - "ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL" - ); + require(sumInsuredAmount > premiumAmount, "ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL"); application.state = ApplicationState.Applied; application.premiumAmount = premiumAmount; @@ -152,38 +151,49 @@ contract PolicyController is IPolicy, CoreController { emit LogApplicationCreated(processId, premiumAmount, sumInsuredAmount); } - function collectPremium( - bytes32 processId, - uint256 amount - ) external override { + /** + * @dev Collects premium for a policy. + * @param processId The unique identifier of the policy. + * @param amount The amount of premium to be collected. + * + * Requirements: + * - The policy must exist. + * - The amount to be collected must not exceed the expected premium amount. + * + * Emits a {LogPremiumCollected} event. + * @notice This function emits 1 events: + * - LogPremiumCollected + */ + function collectPremium(bytes32 processId, uint256 amount) + external override + { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-110:POLICY_DOES_NOT_EXIST"); - require( - policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, - "ERROR:POC-111:AMOUNT_TOO_BIG" - ); + require(policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, "ERROR:POC-111:AMOUNT_TOO_BIG"); policy.premiumPaidAmount += amount; policy.updatedAt = block.timestamp; // solhint-disable-line - + emit LogPremiumCollected(processId, amount); } - - function revokeApplication( - bytes32 processId - ) external override onlyPolicyFlow("Policy") { + + /** + * @dev Revokes an application with the given process ID. + * @param processId The process ID of the application to be revoked. + * @notice This function emits 2 events: + * - LogApplicationRevoked + * - LogMetadataStateChanged + */ + function revokeApplication(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { Metadata storage meta = metadata[processId]; require(meta.createdAt > 0, "ERROR:POC-014:METADATA_DOES_NOT_EXIST"); Application storage application = applications[processId]; - require( - application.createdAt > 0, - "ERROR:POC-015:APPLICATION_DOES_NOT_EXIST" - ); - require( - application.state == ApplicationState.Applied, - "ERROR:POC-016:APPLICATION_STATE_INVALID" - ); + require(application.createdAt > 0, "ERROR:POC-015:APPLICATION_DOES_NOT_EXIST"); + require(application.state == ApplicationState.Applied, "ERROR:POC-016:APPLICATION_STATE_INVALID"); application.state = ApplicationState.Revoked; application.updatedAt = block.timestamp; // solhint-disable-line @@ -195,18 +205,21 @@ contract PolicyController is IPolicy, CoreController { emit LogApplicationRevoked(processId); } - function underwriteApplication( - bytes32 processId - ) external override onlyPolicyFlow("Policy") { + /** + * @dev Changes the state of an application to underwritten. + * @param processId The unique ID of the application process. + * + * Emits a LogApplicationUnderwritten event. + * @notice This function emits 1 events: + * - LogApplicationUnderwritten + */ + function underwriteApplication(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { Application storage application = applications[processId]; - require( - application.createdAt > 0, - "ERROR:POC-017:APPLICATION_DOES_NOT_EXIST" - ); - require( - application.state == ApplicationState.Applied, - "ERROR:POC-018:APPLICATION_STATE_INVALID" - ); + require(application.createdAt > 0, "ERROR:POC-017:APPLICATION_DOES_NOT_EXIST"); + require(application.state == ApplicationState.Applied, "ERROR:POC-018:APPLICATION_STATE_INVALID"); application.state = ApplicationState.Underwritten; application.updatedAt = block.timestamp; // solhint-disable-line @@ -214,21 +227,37 @@ contract PolicyController is IPolicy, CoreController { emit LogApplicationUnderwritten(processId); } - function declineApplication( - bytes32 processId - ) external override onlyPolicyFlow("Policy") { + /** + * @dev Declines an application for a policy flow. + * @param processId The unique identifier of the policy flow process. + * + * + * Emits a LogMetadataStateChanged event with the updated metadata state. + * Emits a LogApplicationDeclined event with the declined application's process ID. + * + * Requirements: + * - The function can only be called by a "Policy" policy flow. + * - The metadata for the given process ID must exist. + * - The application for the given process ID must exist and be in the "Applied" state. + * + * Effects: + * - Updates the state of the application to "Declined". + * - Updates the state of the metadata to "Finished". + * - Updates the updatedAt timestamps for both the application and metadata. + * @notice This function emits 2 events: + * - LogApplicationDeclined + * - LogMetadataStateChanged + */ + function declineApplication(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { Metadata storage meta = metadata[processId]; require(meta.createdAt > 0, "ERROR:POC-019:METADATA_DOES_NOT_EXIST"); Application storage application = applications[processId]; - require( - application.createdAt > 0, - "ERROR:POC-020:APPLICATION_DOES_NOT_EXIST" - ); - require( - application.state == ApplicationState.Applied, - "ERROR:POC-021:APPLICATION_STATE_INVALID" - ); + require(application.createdAt > 0, "ERROR:POC-020:APPLICATION_DOES_NOT_EXIST"); + require(application.state == ApplicationState.Applied, "ERROR:POC-021:APPLICATION_STATE_INVALID"); application.state = ApplicationState.Declined; application.updatedAt = block.timestamp; // solhint-disable-line @@ -241,15 +270,26 @@ contract PolicyController is IPolicy, CoreController { } /* Policy */ - function createPolicy( - bytes32 processId - ) external override onlyPolicyFlow("Policy") { + /** + * @dev Creates a new policy for a given application process ID. + * @param processId The ID of the application process. + * + * + * Emits a `LogPolicyCreated` event. + * + * Requirements: + * - The caller must have the 'Policy' role. + * - The application must exist and be in the 'Underwritten' state. + * - The policy must not already exist for the given process ID. + * @notice This function emits 1 events: + * - LogPolicyCreated + */ + function createPolicy(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { Application memory application = applications[processId]; - require( - application.createdAt > 0 && - application.state == ApplicationState.Underwritten, - "ERROR:POC-022:APPLICATION_ACCESS_INVALID" - ); + require(application.createdAt > 0 && application.state == ApplicationState.Underwritten, "ERROR:POC-022:APPLICATION_ACCESS_INVALID"); Policy storage policy = policies[processId]; require(policy.createdAt == 0, "ERROR:POC-023:POLICY_ALREADY_EXISTS"); @@ -263,42 +303,49 @@ contract PolicyController is IPolicy, CoreController { emit LogPolicyCreated(processId); } + /** + * @dev This function adjusts the premium and sum insured amount of an insurance policy application. + * @param processId The unique identifier of the insurance policy application. + * @param expectedPremiumAmount The expected premium amount for the insurance policy. + * @param sumInsuredAmount The sum insured amount for the insurance policy. + * + * @notice This function emits 3 events: + * - LogApplicationPremiumAdjusted + * - LogPolicyPremiumAdjusted + * - LogApplicationSumInsuredAdjusted + */ function adjustPremiumSumInsured( - bytes32 processId, + bytes32 processId, uint256 expectedPremiumAmount, uint256 sumInsuredAmount - ) external override onlyPolicyFlow("Policy") { + ) + external override + onlyPolicyFlow("Policy") + { Application storage application = applications[processId]; require( - application.createdAt > 0 && - application.state == ApplicationState.Underwritten, - "ERROR:POC-024:APPLICATION_ACCESS_INVALID" - ); + application.createdAt > 0 + && application.state == ApplicationState.Underwritten, + "ERROR:POC-024:APPLICATION_ACCESS_INVALID"); require( - sumInsuredAmount <= application.sumInsuredAmount, - "ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID" - ); + sumInsuredAmount <= application.sumInsuredAmount, + "ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID"); Policy storage policy = policies[processId]; require( - policy.createdAt > 0 && policy.state == IPolicy.PolicyState.Active, - "ERROR:POC-027:POLICY_ACCESS_INVALID" - ); - + policy.createdAt > 0 + && policy.state == IPolicy.PolicyState.Active, + "ERROR:POC-027:POLICY_ACCESS_INVALID"); + require( - expectedPremiumAmount > 0 && - expectedPremiumAmount >= policy.premiumPaidAmount && - expectedPremiumAmount < sumInsuredAmount, - "ERROR:POC-025:APPLICATION_PREMIUM_INVALID" - ); + expectedPremiumAmount > 0 + && expectedPremiumAmount >= policy.premiumPaidAmount + && expectedPremiumAmount < sumInsuredAmount, + "ERROR:POC-025:APPLICATION_PREMIUM_INVALID"); if (sumInsuredAmount != application.sumInsuredAmount) { - emit LogApplicationSumInsuredAdjusted( - processId, - application.sumInsuredAmount, - sumInsuredAmount - ); + emit LogApplicationSumInsuredAdjusted(processId, application.sumInsuredAmount, sumInsuredAmount); application.sumInsuredAmount = sumInsuredAmount; application.updatedAt = block.timestamp; // solhint-disable-line @@ -307,33 +354,31 @@ contract PolicyController is IPolicy, CoreController { } if (expectedPremiumAmount != application.premiumAmount) { - emit LogApplicationPremiumAdjusted( - processId, - application.premiumAmount, - expectedPremiumAmount - ); + emit LogApplicationPremiumAdjusted(processId, application.premiumAmount, expectedPremiumAmount); application.premiumAmount = expectedPremiumAmount; application.updatedAt = block.timestamp; // solhint-disable-line - emit LogPolicyPremiumAdjusted( - processId, - policy.premiumExpectedAmount, - expectedPremiumAmount - ); + emit LogPolicyPremiumAdjusted(processId, policy.premiumExpectedAmount, expectedPremiumAmount); policy.premiumExpectedAmount = expectedPremiumAmount; policy.updatedAt = block.timestamp; // solhint-disable-line } } - function expirePolicy( - bytes32 processId - ) external override onlyPolicyFlow("Policy") { + /** + * @dev This function expires a policy with the given process ID. + * + * @param processId The process ID of the policy to be expired. + * + * @notice This function emits 1 events: + * - LogPolicyExpired + */ + function expirePolicy(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-028:POLICY_DOES_NOT_EXIST"); - require( - policy.state == PolicyState.Active, - "ERROR:POC-029:APPLICATION_STATE_INVALID" - ); + require(policy.state == PolicyState.Active, "ERROR:POC-029:APPLICATION_STATE_INVALID"); policy.state = PolicyState.Expired; policy.updatedAt = block.timestamp; // solhint-disable-line @@ -341,22 +386,34 @@ contract PolicyController is IPolicy, CoreController { emit LogPolicyExpired(processId); } - function closePolicy( - bytes32 processId - ) external override onlyPolicyFlow("Policy") { + /** + * @dev Closes a policy that has expired and has no open claims. + * @param processId The unique identifier of the policy. + * + * + * Emits a LogMetadataStateChanged event with the updated metadata state. + * Emits a LogPolicyClosed event with the unique identifier of the closed policy. + * + * Requirements: + * - The metadata for the given processId must exist. + * - The policy for the given processId must exist. + * - The state of the policy must be 'Expired'. + * - The policy must have no open claims. + * @notice This function emits 2 events: + * - LogMetadataStateChanged + * - LogPolicyClosed + */ + function closePolicy(bytes32 processId) + external override + onlyPolicyFlow("Policy") + { Metadata storage meta = metadata[processId]; require(meta.createdAt > 0, "ERROR:POC-030:METADATA_DOES_NOT_EXIST"); Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-031:POLICY_DOES_NOT_EXIST"); - require( - policy.state == PolicyState.Expired, - "ERROR:POC-032:POLICY_STATE_INVALID" - ); - require( - policy.openClaimsCount == 0, - "ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS" - ); + require(policy.state == PolicyState.Expired, "ERROR:POC-032:POLICY_STATE_INVALID"); + require(policy.openClaimsCount == 0, "ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS"); policy.state = PolicyState.Closed; policy.updatedAt = block.timestamp; // solhint-disable-line @@ -369,23 +426,40 @@ contract PolicyController is IPolicy, CoreController { } /* Claim */ + /** + * @dev Creates a new claim for a given policy. + * @param processId The ID of the policy. + * @param claimAmount The amount of the claim. + * @param data Additional data related to the claim. + * @return claimId The ID of the newly created claim. + * + * Emits a LogClaimCreated event. + * + * Requirements: + * - The caller must be authorized to create claims for the policy. + * - The policy must exist and be in an active state. + * - The sum of the payout amount and the claim amount must not exceed the maximum payout amount. + * - The claim must not already exist. + * + * Note: The function allows claims with amount 0 to be created, which can be useful for parametric insurance. + * @notice This function emits 1 events: + * - LogClaimCreated + */ function createClaim( - bytes32 processId, + bytes32 processId, uint256 claimAmount, bytes calldata data - ) external override onlyPolicyFlow("Policy") returns (uint256 claimId) { + ) + external override + onlyPolicyFlow("Policy") + returns (uint256 claimId) + { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-040:POLICY_DOES_NOT_EXIST"); - require( - policy.state == IPolicy.PolicyState.Active, - "ERROR:POC-041:POLICY_NOT_ACTIVE" - ); - // no validation of claimAmount > 0 here to explicitly allow claims with amount 0. This can be useful for parametric insurance + require(policy.state == IPolicy.PolicyState.Active, "ERROR:POC-041:POLICY_NOT_ACTIVE"); + // no validation of claimAmount > 0 here to explicitly allow claims with amount 0. This can be useful for parametric insurance // to have proof that the claim calculation was executed without entitlement to payment. - require( - policy.payoutAmount + claimAmount <= policy.payoutMaxAmount, - "ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT" - ); + require(policy.payoutAmount + claimAmount <= policy.payoutMaxAmount, "ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT"); claimId = policy.claimsCount; Claim storage claim = claims[processId][claimId]; @@ -404,29 +478,41 @@ contract PolicyController is IPolicy, CoreController { emit LogClaimCreated(processId, claimId, claimAmount); } + /** + * @dev Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. + * @param processId The ID of the policy the claim belongs to. + * @param claimId The ID of the claim to confirm. + * @param confirmedAmount The amount to confirm for the claim. + * + * Requirements: + * - Only the Policy contract can call this function. + * - The policy must exist. + * - The policy must have at least one open claim. + * - The sum of the policy's payout amount and the confirmed amount must not exceed the policy's maximum payout amount. + * - The claim must exist. + * - The claim state must be Applied. + * + * Emits a LogClaimConfirmed event with the process ID, claim ID, and confirmed amount. + * @notice This function emits 1 events: + * - LogClaimConfirmed + */ function confirmClaim( bytes32 processId, uint256 claimId, uint256 confirmedAmount - ) external override onlyPolicyFlow("Policy") { + ) + external override + onlyPolicyFlow("Policy") + { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-050:POLICY_DOES_NOT_EXIST"); - require( - policy.openClaimsCount > 0, - "ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS" - ); - // no validation of claimAmount > 0 here as is it possible to have claims with amount 0 (see createClaim()). - require( - policy.payoutAmount + confirmedAmount <= policy.payoutMaxAmount, - "ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED" - ); + require(policy.openClaimsCount > 0, "ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS"); + // no validation of claimAmount > 0 here as is it possible to have claims with amount 0 (see createClaim()). + require(policy.payoutAmount + confirmedAmount <= policy.payoutMaxAmount, "ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED"); Claim storage claim = claims[processId][claimId]; require(claim.createdAt > 0, "ERROR:POC-053:CLAIM_DOES_NOT_EXIST"); - require( - claim.state == ClaimState.Applied, - "ERROR:POC-054:CLAIM_STATE_INVALID" - ); + require(claim.state == ClaimState.Applied, "ERROR:POC-054:CLAIM_STATE_INVALID"); claim.state = ClaimState.Confirmed; claim.claimAmount = confirmedAmount; @@ -438,23 +524,26 @@ contract PolicyController is IPolicy, CoreController { emit LogClaimConfirmed(processId, claimId, confirmedAmount); } - function declineClaim( - bytes32 processId, - uint256 claimId - ) external override onlyPolicyFlow("Policy") { + /** + * @dev This function allows the Policy contract to decline a claim. + * @param processId The ID of the process to which the policy belongs. + * @param claimId The ID of the claim to be declined. + * + * Emits a LogClaimDeclined event. + * @notice This function emits 1 events: + * - LogClaimDeclined + */ + function declineClaim(bytes32 processId, uint256 claimId) + external override + onlyPolicyFlow("Policy") + { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-060:POLICY_DOES_NOT_EXIST"); - require( - policy.openClaimsCount > 0, - "ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS" - ); + require(policy.openClaimsCount > 0, "ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS"); Claim storage claim = claims[processId][claimId]; require(claim.createdAt > 0, "ERROR:POC-062:CLAIM_DOES_NOT_EXIST"); - require( - claim.state == ClaimState.Applied, - "ERROR:POC-063:CLAIM_STATE_INVALID" - ); + require(claim.state == ClaimState.Applied, "ERROR:POC-063:CLAIM_STATE_INVALID"); claim.state = ClaimState.Declined; claim.updatedAt = block.timestamp; // solhint-disable-line @@ -464,29 +553,32 @@ contract PolicyController is IPolicy, CoreController { emit LogClaimDeclined(processId, claimId); } - function closeClaim( - bytes32 processId, - uint256 claimId - ) external override onlyPolicyFlow("Policy") { + /** + * @dev Closes a claim for a given policy. + * @param processId The ID of the policy process. + * @param claimId The ID of the claim to be closed. + * + * @notice This function emits 1 events: + * - LogClaimClosed + */ + function closeClaim(bytes32 processId, uint256 claimId) + external override + onlyPolicyFlow("Policy") + { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-070:POLICY_DOES_NOT_EXIST"); - require( - policy.openClaimsCount > 0, - "ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS" - ); + require(policy.openClaimsCount > 0, "ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS"); Claim storage claim = claims[processId][claimId]; require(claim.createdAt > 0, "ERROR:POC-072:CLAIM_DOES_NOT_EXIST"); require( - claim.state == ClaimState.Confirmed || - claim.state == ClaimState.Declined, - "ERROR:POC-073:CLAIM_STATE_INVALID" - ); + claim.state == ClaimState.Confirmed + || claim.state == ClaimState.Declined, + "ERROR:POC-073:CLAIM_STATE_INVALID"); require( - (claim.state == ClaimState.Confirmed && - claim.claimAmount == claim.paidAmount) || - (claim.state == ClaimState.Declined), + (claim.state == ClaimState.Confirmed && claim.claimAmount == claim.paidAmount) + || (claim.state == ClaimState.Declined), "ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS" ); @@ -500,21 +592,42 @@ contract PolicyController is IPolicy, CoreController { } /* Payout */ + /** + * @dev Creates a new payout for a confirmed claim in a policy. + * @param processId The ID of the policy. + * @param claimId The ID of the claim associated with the payout. + * @param payoutAmount The amount of the payout. + * @param data Additional data related to the payout. + * @return payoutId The ID of the newly created payout. + * + * Emits a LogPayoutCreated event with the processId, claimId, payoutId, and payoutAmount. + * + * Requirements: + * - The caller must have the onlyPolicyFlow modifier with "Policy" as the argument. + * - The policy with the given processId must exist. + * - The claim with the given claimId must exist and be in the Confirmed state. + * - The payoutAmount must be greater than zero. + * - The sum of the paidAmount of the claim and the payoutAmount must not exceed the claimAmount of the claim. + * - A payout with the given processId and payoutId must not already exist. + * @notice This function emits 1 events: + * - LogPayoutCreated + */ function createPayout( bytes32 processId, uint256 claimId, uint256 payoutAmount, bytes calldata data - ) external override onlyPolicyFlow("Policy") returns (uint256 payoutId) { + ) + external override + onlyPolicyFlow("Policy") + returns (uint256 payoutId) + { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-080:POLICY_DOES_NOT_EXIST"); Claim storage claim = claims[processId][claimId]; require(claim.createdAt > 0, "ERROR:POC-081:CLAIM_DOES_NOT_EXIST"); - require( - claim.state == IPolicy.ClaimState.Confirmed, - "ERROR:POC-082:CLAIM_NOT_CONFIRMED" - ); + require(claim.state == IPolicy.ClaimState.Confirmed, "ERROR:POC-082:CLAIM_NOT_CONFIRMED"); require(payoutAmount > 0, "ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID"); require( claim.paidAmount + payoutAmount <= claim.claimAmount, @@ -538,23 +651,47 @@ contract PolicyController is IPolicy, CoreController { emit LogPayoutCreated(processId, claimId, payoutId, payoutAmount); } + /** + * @dev Processes a payout for a policy and claim. + * @param processId The ID of the policy to process the payout for. + * @param payoutId The ID of the payout to process. + * + * Emits a LogPayoutProcessed event. + * If the claim is fully paid, emits a LogClaimClosed event. + * + * Requirements: + * - The caller must have the onlyPolicyFlow modifier with the "Policy" role. + * - The policy with the given processId must exist. + * - The policy with the given processId must have at least one open claim. + * - The payout with the given payoutId must exist. + * - The payout with the given payoutId must be in the Expected state. + * + * Effects: + * - Changes the state of the payout to PaidOut. + * - Updates the updatedAt timestamp of the payout. + * - Increases the paidAmount of the claim associated with the payout. + * - Updates the updatedAt timestamp of the claim. + * - If the claim is fully paid, changes the state of the claim to Closed. + * - Decreases the openClaimsCount of the policy associated with the claim. + * - Updates the updatedAt timestamp of the policy. + * @notice This function emits 2 events: + * - LogClaimClosed + * - LogPayoutProcessed + */ function processPayout( bytes32 processId, uint256 payoutId - ) external override onlyPolicyFlow("Policy") { + ) + external override + onlyPolicyFlow("Policy") + { Policy storage policy = policies[processId]; require(policy.createdAt > 0, "ERROR:POC-090:POLICY_DOES_NOT_EXIST"); - require( - policy.openClaimsCount > 0, - "ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS" - ); + require(policy.openClaimsCount > 0, "ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS"); Payout storage payout = payouts[processId][payoutId]; require(payout.createdAt > 0, "ERROR:POC-092:PAYOUT_DOES_NOT_EXIST"); - require( - payout.state == PayoutState.Expected, - "ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT" - ); + require(payout.state == PayoutState.Expected, "ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT"); payout.state = IPolicy.PayoutState.PaidOut; payout.updatedAt = block.timestamp; // solhint-disable-line @@ -576,74 +713,123 @@ contract PolicyController is IPolicy, CoreController { } } - function getMetadata( - bytes32 processId - ) public view returns (IPolicy.Metadata memory _metadata) { + /** + * @dev Returns the metadata for the given process ID. + * @param processId The ID of the process to retrieve metadata for. + * @return _metadata The metadata information for the given process ID. + * + * Requirements: + * - The metadata for the given process ID must exist. + */ + function getMetadata(bytes32 processId) + public + view + returns (IPolicy.Metadata memory _metadata) + { _metadata = metadata[processId]; - require( - _metadata.createdAt > 0, - "ERROR:POC-100:METADATA_DOES_NOT_EXIST" - ); + require(_metadata.createdAt > 0, "ERROR:POC-100:METADATA_DOES_NOT_EXIST"); } - function getApplication( - bytes32 processId - ) public view returns (IPolicy.Application memory application) { + /** + * @dev Returns the application associated with the provided process ID. + * @param processId The ID of the process for which to retrieve the application. + * @return application The application associated with the provided process ID. + */ + function getApplication(bytes32 processId) + public + view + returns (IPolicy.Application memory application) + { application = applications[processId]; - require( - application.createdAt > 0, - "ERROR:POC-101:APPLICATION_DOES_NOT_EXIST" - ); + require(application.createdAt > 0, "ERROR:POC-101:APPLICATION_DOES_NOT_EXIST"); } - function getNumberOfClaims( - bytes32 processId - ) external view returns (uint256 numberOfClaims) { + /** + * @dev Returns the number of claims associated with a given process ID. + * @param processId The ID of the process for which to retrieve the number of claims. + * @return numberOfClaims The number of claims associated with the given process ID. + */ + function getNumberOfClaims(bytes32 processId) external view returns(uint256 numberOfClaims) { numberOfClaims = getPolicy(processId).claimsCount; } - - function getNumberOfPayouts( - bytes32 processId - ) external view returns (uint256 numberOfPayouts) { + + /** + * @dev Returns the number of payouts for a given process ID. + * @param processId The ID of the process. + * @return numberOfPayouts The number of payouts for the given process ID. + */ + function getNumberOfPayouts(bytes32 processId) external view returns(uint256 numberOfPayouts) { numberOfPayouts = payoutCount[processId]; } - function getPolicy( - bytes32 processId - ) public view returns (IPolicy.Policy memory policy) { + /** + * @dev Returns the policy associated with the given process ID. + * @param processId The ID of the process for which to retrieve the policy. + * @return policy The policy object associated with the given process ID. + */ + function getPolicy(bytes32 processId) + public + view + returns (IPolicy.Policy memory policy) + { policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-102:POLICY_DOES_NOT_EXIST"); + require(policy.createdAt > 0, "ERROR:POC-102:POLICY_DOES_NOT_EXIST"); } - function getClaim( - bytes32 processId, - uint256 claimId - ) public view returns (IPolicy.Claim memory claim) { + /** + * @dev Returns the claim with the given ID for the specified process. + * @param processId The ID of the process. + * @param claimId The ID of the claim. + * @return claim The claim object with the given ID. + * @notice This function can only be called in read-only mode. + * @notice Throws an error if the claim with the given ID does not exist. + */ + function getClaim(bytes32 processId, uint256 claimId) + public + view + returns (IPolicy.Claim memory claim) + { claim = claims[processId][claimId]; - require(claim.createdAt > 0, "ERROR:POC-103:CLAIM_DOES_NOT_EXIST"); + require(claim.createdAt > 0, "ERROR:POC-103:CLAIM_DOES_NOT_EXIST"); } - function getPayout( - bytes32 processId, - uint256 payoutId - ) public view returns (IPolicy.Payout memory payout) { + /** + * @dev Retrieves a specific payout from a process. + * @param processId The ID of the process. + * @param payoutId The ID of the payout to retrieve. + * @return payout The payout object with the specified ID. + * @notice Throws an error if the payout does not exist. + */ + function getPayout(bytes32 processId, uint256 payoutId) + public + view + returns (IPolicy.Payout memory payout) + { payout = payouts[processId][payoutId]; - require(payout.createdAt > 0, "ERROR:POC-104:PAYOUT_DOES_NOT_EXIST"); + require(payout.createdAt > 0, "ERROR:POC-104:PAYOUT_DOES_NOT_EXIST"); } + /** + * @dev Returns the number of process IDs that have been assigned. + * @return _assigendProcessIds The number of process IDs that have been assigned. + */ function processIds() external view returns (uint256) { return _assigendProcessIds; } - function _generateNextProcessId() private returns (bytes32 processId) { + /** + * @dev Generates a unique process ID for the next process. + * @return processId The generated process ID. + */ + function _generateNextProcessId() private returns(bytes32 processId) { _assigendProcessIds++; processId = keccak256( abi.encodePacked( - block.chainid, + block.chainid, address(_registry), _assigendProcessIds ) ); - } + } } diff --git a/contracts/modules/PoolController.sol b/contracts/modules/PoolController.sol index cb3bed58..f7dac98c 100644 --- a/contracts/modules/PoolController.sol +++ b/contracts/modules/PoolController.sol @@ -10,6 +10,7 @@ import "@etherisc/gif-interface/contracts/modules/IPool.sol"; import "@etherisc/gif-interface/contracts/components/IComponent.sol"; import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; + import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; /** @@ -24,51 +25,37 @@ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; * - It has references to other contracts: ComponentController, PolicyController, and BundleController. * - The contract defines modifiers for access control to specific functions. * - * Functions: - * - * - `_afterInitialize()`: Called after contract initialization to set addresses of other contracts. - * - `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration. - * - `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID. - * - `fund()`: Adds funds to a specific riskpool. - * - `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount. - * - `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure. - * - `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount. - * - `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract. - * - `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout. - * - `release()`: Releases a policy's collateral from the riskpool. - * * Overall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations. */ -contract PoolController is IPool, CoreController { +contract PoolController is + IPool, + CoreController +{ + using EnumerableSet for EnumerableSet.UintSet; // used for representation of collateralization - // collateralization between 0 and 1 (1=100%) + // collateralization between 0 and 1 (1=100%) // value might be larger when overcollateralization - uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10 ** 18; + uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10**18; - // upper limit for overcollateralization at 200% - uint256 public constant COLLATERALIZATION_LEVEL_CAP = - 2 * FULL_COLLATERALIZATION_LEVEL; + // upper limit for overcollateralization at 200% + uint256 public constant COLLATERALIZATION_LEVEL_CAP = 2 * FULL_COLLATERALIZATION_LEVEL; uint256 public constant DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES = 1; - mapping(bytes32 /* processId */ => uint256 /* collateralAmount*/) - private _collateralAmount; + mapping(bytes32 /* processId */ => uint256 /* collateralAmount*/ ) private _collateralAmount; - mapping(uint256 /* productId */ => uint256 /* riskpoolId */) - private _riskpoolIdForProductId; + mapping(uint256 /* productId */ => uint256 /* riskpoolId */) private _riskpoolIdForProductId; - mapping(uint256 /* riskpoolId */ => IPool.Pool) private _riskpools; + mapping(uint256 /* riskpoolId */ => IPool.Pool) private _riskpools; - mapping(uint256 /* riskpoolId */ => uint256 /* maxmimumNumberOfActiveBundles */) - private _maxmimumNumberOfActiveBundlesForRiskpoolId; + mapping(uint256 /* riskpoolId */ => uint256 /* maxmimumNumberOfActiveBundles */) private _maxmimumNumberOfActiveBundlesForRiskpoolId; - mapping(uint256 /* riskpoolId */ => EnumerableSet.UintSet /* active bundle id set */) - private _activeBundleIdsForRiskpoolId; - - uint256[] private _riskpoolIds; + mapping(uint256 /* riskpoolId */ => EnumerableSet.UintSet /* active bundle id set */) private _activeBundleIdsForRiskpoolId; + + uint256 [] private _riskpoolIds; ComponentController private _component; PolicyController private _policy; @@ -92,8 +79,7 @@ contract PoolController is IPool, CoreController { modifier onlyActivePool(uint256 riskpoolId) { require( - _component.getComponentState(riskpoolId) == - IComponent.ComponentState.Active, + _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, "ERROR:POL-003:RISKPOOL_NOT_ACTIVE" ); _; @@ -103,51 +89,58 @@ contract PoolController is IPool, CoreController { IPolicy.Metadata memory metadata = _policy.getMetadata(processId); uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; require( - _component.getComponentState(riskpoolId) == - IComponent.ComponentState.Active, + _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, "ERROR:POL-004:RISKPOOL_NOT_ACTIVE" ); _; } + /** + * @dev This function is called after the contract is initialized and sets the addresses of the ComponentController, PolicyController, and BundleController contracts. + * + * + */ function _afterInitialize() internal override onlyInitializing { _component = ComponentController(_getContractAddress("Component")); _policy = PolicyController(_getContractAddress("Policy")); _bundle = BundleController(_getContractAddress("Bundle")); } + + /** + * @dev Registers a new riskpool with the given parameters. + * @param riskpoolId The ID of the riskpool to be registered. + * @param wallet The address of the wallet associated with the riskpool. + * @param erc20Token The address of the ERC20 token associated with the riskpool. + * @param collateralizationLevel The collateralization level of the riskpool. + * @param sumOfSumInsuredCap The sum of sum insured cap of the riskpool. + * @notice This function emits 1 events: + * - LogRiskpoolRegistered + */ function registerRiskpool( - uint256 riskpoolId, + uint256 riskpoolId, address wallet, address erc20Token, - uint256 collateralizationLevel, + uint256 collateralizationLevel, uint256 sumOfSumInsuredCap - ) external override onlyRiskpoolService { + ) + external override + onlyRiskpoolService + { IPool.Pool storage pool = _riskpools[riskpoolId]; _riskpoolIds.push(riskpoolId); - _maxmimumNumberOfActiveBundlesForRiskpoolId[ - riskpoolId - ] = DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES; - - require( - pool.createdAt == 0, - "ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED" - ); + _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES; + + require(pool.createdAt == 0, "ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED"); require(wallet != address(0), "ERROR:POL-006:WALLET_ADDRESS_ZERO"); require(erc20Token != address(0), "ERROR:POL-007:ERC20_ADDRESS_ZERO"); - require( - collateralizationLevel <= COLLATERALIZATION_LEVEL_CAP, - "ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH" - ); - require( - sumOfSumInsuredCap > 0, - "ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO" - ); + require(collateralizationLevel <= COLLATERALIZATION_LEVEL_CAP, "ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH"); + require(sumOfSumInsuredCap > 0, "ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO"); - pool.id = riskpoolId; - pool.wallet = wallet; - pool.erc20Token = erc20Token; + pool.id = riskpoolId; + pool.wallet = wallet; + pool.erc20Token = erc20Token; pool.collateralizationLevel = collateralizationLevel; pool.sumOfSumInsuredCap = sumOfSumInsuredCap; @@ -159,71 +152,88 @@ contract PoolController is IPool, CoreController { pool.createdAt = block.timestamp; pool.updatedAt = block.timestamp; - emit LogRiskpoolRegistered( - riskpoolId, - wallet, - erc20Token, - collateralizationLevel, - sumOfSumInsuredCap - ); + emit LogRiskpoolRegistered(riskpoolId, wallet, erc20Token, collateralizationLevel, sumOfSumInsuredCap); } - function setRiskpoolForProduct( - uint256 productId, - uint256 riskpoolId - ) external override onlyInstanceOperatorService { + /** + * @dev Sets the riskpool ID for a given product ID. + * @param productId The ID of the product. + * @param riskpoolId The ID of the riskpool to be set for the product. + * + * Emits a {RiskpoolForProductSet} event indicating the riskpool has been set for the product. + * Requirements: + * - The caller must have the `INSTANCE_OPERATOR` permission. + * - The product ID must exist. + * - The riskpool ID must exist. + * - The riskpool ID must not have already been set for the product. + */ + function setRiskpoolForProduct(uint256 productId, uint256 riskpoolId) + external override + onlyInstanceOperatorService + { require(_component.isProduct(productId), "ERROR:POL-010:NOT_PRODUCT"); - require( - _component.isRiskpool(riskpoolId), - "ERROR:POL-011:NOT_RISKPOOL" - ); - require( - _riskpoolIdForProductId[productId] == 0, - "ERROR:POL-012:RISKPOOL_ALREADY_SET" - ); - + require(_component.isRiskpool(riskpoolId), "ERROR:POL-011:NOT_RISKPOOL"); + require(_riskpoolIdForProductId[productId] == 0, "ERROR:POL-012:RISKPOOL_ALREADY_SET"); + _riskpoolIdForProductId[productId] = riskpoolId; } - function fund( - uint256 riskpoolId, - uint256 amount - ) external onlyRiskpoolService onlyActivePool(riskpoolId) { + /** + * @dev Adds funds to a specific riskpool. + * @param riskpoolId The ID of the riskpool that will receive the funds. + * @param amount The amount of funds to be added to the riskpool. + */ + function fund(uint256 riskpoolId, uint256 amount) + external + onlyRiskpoolService + onlyActivePool(riskpoolId) + { IPool.Pool storage pool = _riskpools[riskpoolId]; pool.capital += amount; pool.balance += amount; pool.updatedAt = block.timestamp; } - function defund( - uint256 riskpoolId, - uint256 amount - ) external onlyRiskpoolService onlyActivePool(riskpoolId) { + /** + * @dev Allows the Riskpool service to defund the specified Riskpool by the given amount. + * @param riskpoolId The ID of the Riskpool to defund. + * @param amount The amount of funds to be defunded from the Riskpool. + */ + function defund(uint256 riskpoolId, uint256 amount) + external + onlyRiskpoolService + onlyActivePool(riskpoolId) + { IPool.Pool storage pool = _riskpools[riskpoolId]; - if (pool.capital >= amount) { - pool.capital -= amount; - } else { - pool.capital = 0; - } + if (pool.capital >= amount) { pool.capital -= amount; } + else { pool.capital = 0; } pool.balance -= amount; pool.updatedAt = block.timestamp; } - function underwrite( - bytes32 processId - ) - external - override + /** + * @dev Underwrites a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. + * @param processId The ID of the policy application process. + * @return success A boolean indicating whether the collateralization process was successful or not. + * + * Emits a LogRiskpoolRequiredCollateral event with the sum insured amount and calculated collateral amount. + * Throws an error if the application state is not "Applied" or if the riskpool's sum insured cap would be exceeded by underwriting this application. + * Emits a LogRiskpoolCollateralizationSucceeded event if the collateralization process was successful, and a LogRiskpoolCollateralizationFailed event otherwise. + * @notice This function emits 3 events: + * - LogRiskpoolCollateralizationFailed + * - LogRiskpoolCollateralizationSucceeded + * - LogRiskpoolRequiredCollateral + */ + function underwrite(bytes32 processId) + external override onlyPolicyFlow("Pool") onlyActivePoolForProcess(processId) - returns (bool success) + returns(bool success) { // check that application is in applied state - IPolicy.Application memory application = _policy.getApplication( - processId - ); + IPolicy.Application memory application = _policy.getApplication(processId); require( application.state == IPolicy.ApplicationState.Applied, "ERROR:POL-020:APPLICATION_STATE_INVALID" @@ -235,23 +245,15 @@ contract PoolController is IPool, CoreController { // calculate required collateral amount uint256 sumInsuredAmount = application.sumInsuredAmount; - uint256 collateralAmount = calculateCollateral( - riskpoolId, - sumInsuredAmount - ); + uint256 collateralAmount = calculateCollateral(riskpoolId, sumInsuredAmount); _collateralAmount[processId] = collateralAmount; - emit LogRiskpoolRequiredCollateral( - processId, - sumInsuredAmount, - collateralAmount - ); + emit LogRiskpoolRequiredCollateral(processId, sumInsuredAmount, collateralAmount); - // check that riskpool stays inside sum insured cap when underwriting this application + // check that riskpool stays inside sum insured cap when underwriting this application IPool.Pool storage pool = _riskpools[riskpoolId]; require( - pool.sumOfSumInsuredCap >= - pool.sumOfSumInsuredAtRisk + sumInsuredAmount, + pool.sumOfSumInsuredCap >= pool.sumOfSumInsuredAtRisk + sumInsuredAmount, "ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED" ); @@ -264,35 +266,32 @@ contract PoolController is IPool, CoreController { pool.lockedCapital += collateralAmount; pool.updatedAt = block.timestamp; - emit LogRiskpoolCollateralizationSucceeded( - riskpoolId, - processId, - sumInsuredAmount - ); + emit LogRiskpoolCollateralizationSucceeded(riskpoolId, processId, sumInsuredAmount); } else { - emit LogRiskpoolCollateralizationFailed( - riskpoolId, - processId, - sumInsuredAmount - ); + emit LogRiskpoolCollateralizationFailed(riskpoolId, processId, sumInsuredAmount); } } - function calculateCollateral( - uint256 riskpoolId, - uint256 sumInsuredAmount - ) public view returns (uint256 collateralAmount) { - uint256 collateralization = getRiskpool(riskpoolId) - .collateralizationLevel; + + /** + * @dev Calculates the required collateral amount for a given riskpool and sum insured amount. + * @param riskpoolId The ID of the riskpool. + * @param sumInsuredAmount The sum insured amount. + * @return collateralAmount The required collateral amount. + */ + function calculateCollateral(uint256 riskpoolId, uint256 sumInsuredAmount) + public + view + returns (uint256 collateralAmount) + { + uint256 collateralization = getRiskpool(riskpoolId).collateralizationLevel; // fully collateralized case if (collateralization == FULL_COLLATERALIZATION_LEVEL) { collateralAmount = sumInsuredAmount; - // over or under collateralized case + // over or under collateralized case } else if (collateralization > 0) { - collateralAmount = - (collateralization * sumInsuredAmount) / - FULL_COLLATERALIZATION_LEVEL; + collateralAmount = (collateralization * sumInsuredAmount) / FULL_COLLATERALIZATION_LEVEL; } // collateralization == 0, eg complete risk coverd by re insurance outside gif else { @@ -300,12 +299,14 @@ contract PoolController is IPool, CoreController { } } - function processPremium( - bytes32 processId, - uint256 amount - ) - external - override + + /** + * @dev Processes the premium payment for a policy. + * @param processId The ID of the process. + * @param amount The amount of premium paid. + */ + function processPremium(bytes32 processId, uint256 amount) + external override onlyPolicyFlow("Pool") onlyActivePoolForProcess(processId) { @@ -319,12 +320,25 @@ contract PoolController is IPool, CoreController { pool.updatedAt = block.timestamp; } - function processPayout( - bytes32 processId, - uint256 amount - ) - external - override + + /** + * @dev Process a payout for a policy flow in the Pool. + * @param processId The ID of the process to be paid out. + * @param amount The amount to be paid out. + * + * Emits a {PolicyPayoutProcessed} event. + * + * Requirements: + * - Caller must be the Pool contract. + * - Pool must be active for the given process. + * - Riskpool ID must be valid. + * - Pool capital must be greater than or equal to the payout amount. + * - Pool locked capital must be greater than or equal to the payout amount. + * - Pool balance must be greater than or equal to the payout amount. + * + */ + function processPayout(bytes32 processId, uint256 amount) + external override onlyPolicyFlow("Pool") onlyActivePoolForProcess(processId) { @@ -333,10 +347,7 @@ contract PoolController is IPool, CoreController { IPool.Pool storage pool = _riskpools[riskpoolId]; require(pool.createdAt > 0, "ERROR:POL-026:RISKPOOL_ID_INVALID"); require(pool.capital >= amount, "ERROR:POL-027:CAPITAL_TOO_LOW"); - require( - pool.lockedCapital >= amount, - "ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW" - ); + require(pool.lockedCapital >= amount, "ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW"); require(pool.balance >= amount, "ERROR:POL-029:BALANCE_TOO_LOW"); pool.capital -= amount; @@ -348,9 +359,20 @@ contract PoolController is IPool, CoreController { riskpool.processPolicyPayout(processId, amount); } - function release( - bytes32 processId - ) external override onlyPolicyFlow("Pool") { + + /** + * @dev Releases a policy's collateral from the riskpool. + * @param processId The unique identifier of the policy. + * + * + * Emits a LogRiskpoolCollateralReleased event. + * @notice This function emits 1 events: + * - LogRiskpoolCollateralReleased + */ + function release(bytes32 processId) + external override + onlyPolicyFlow("Pool") + { IPolicy.Policy memory policy = _policy.getPolicy(processId); require( policy.state == IPolicy.PolicyState.Closed, @@ -361,14 +383,11 @@ contract PoolController is IPool, CoreController { IRiskpool riskpool = _getRiskpoolComponent(metadata); riskpool.releasePolicy(processId); - IPolicy.Application memory application = _policy.getApplication( - processId - ); + IPolicy.Application memory application = _policy.getApplication(processId); uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; IPool.Pool storage pool = _riskpools[riskpoolId]; - uint256 remainingCollateralAmount = _collateralAmount[processId] - - policy.payoutAmount; + uint256 remainingCollateralAmount = _collateralAmount[processId] - policy.payoutAmount; pool.sumOfSumInsuredAtRisk -= application.sumInsuredAmount; pool.lockedCapital -= remainingCollateralAmount; @@ -376,134 +395,149 @@ contract PoolController is IPool, CoreController { // free memory delete _collateralAmount[processId]; - emit LogRiskpoolCollateralReleased( - riskpoolId, - processId, - remainingCollateralAmount - ); + emit LogRiskpoolCollateralReleased(riskpoolId, processId, remainingCollateralAmount); } - function setMaximumNumberOfActiveBundles( - uint256 riskpoolId, - uint256 maxNumberOfActiveBundles - ) external onlyRiskpoolService { - require( - maxNumberOfActiveBundles > 0, - "ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID" - ); - _maxmimumNumberOfActiveBundlesForRiskpoolId[ - riskpoolId - ] = maxNumberOfActiveBundles; + /** + * @dev Sets the maximum number of active bundles for a given riskpool ID. + * @param riskpoolId The ID of the riskpool. + * @param maxNumberOfActiveBundles The maximum number of active bundles to be set. + */ + function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles) + external + onlyRiskpoolService + { + require(maxNumberOfActiveBundles > 0, "ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID"); + _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = maxNumberOfActiveBundles; } - function getMaximumNumberOfActiveBundles( - uint256 riskpoolId - ) public view returns (uint256 maximumNumberOfActiveBundles) { + /** + * @dev Returns the maximum number of active bundles for a given riskpool ID. + * @param riskpoolId The ID of the riskpool. + * @return maximumNumberOfActiveBundles The maximum number of active bundles for the given riskpool ID. + */ + function getMaximumNumberOfActiveBundles(uint256 riskpoolId) public view returns(uint256 maximumNumberOfActiveBundles) { return _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId]; } - - function riskpools() external view returns (uint256 idx) { - return _riskpoolIds.length; - } - - function getRiskpool( - uint256 riskpoolId - ) public view returns (IPool.Pool memory riskPool) { + + /** + * @dev Returns the number of risk pools created. + * @return idx The number of risk pools as a uint256. + */ + function riskpools() external view returns(uint256 idx) { return _riskpoolIds.length; } + + + /** + * @dev Returns the risk pool data for a given risk pool ID. + * @param riskpoolId The ID of the risk pool to retrieve. + * @return riskPool The risk pool data, returned as a Pool struct. + * + * Throws a POL-040 error if the risk pool is not registered. + */ + function getRiskpool(uint256 riskpoolId) public view returns(IPool.Pool memory riskPool) { riskPool = _riskpools[riskpoolId]; - require( - riskPool.createdAt > 0, - "ERROR:POL-040:RISKPOOL_NOT_REGISTERED" - ); + require(riskPool.createdAt > 0, "ERROR:POL-040:RISKPOOL_NOT_REGISTERED"); } - function getRiskPoolForProduct( - uint256 productId - ) external view returns (uint256 riskpoolId) { + /** + * @dev Returns the risk pool ID associated with the given product ID. + * @param productId The ID of the product for which to retrieve the risk pool ID. + * @return riskpoolId The ID of the risk pool associated with the given product ID. + */ + function getRiskPoolForProduct(uint256 productId) external view returns (uint256 riskpoolId) { return _riskpoolIdForProductId[productId]; } - function activeBundles( - uint256 riskpoolId - ) external view returns (uint256 numberOfActiveBundles) { + /** + * @dev Returns the number of active bundles for a given risk pool ID. + * @param riskpoolId The ID of the risk pool to get the number of active bundles for. + * @return numberOfActiveBundles The number of active bundles for the given risk pool ID. + */ + function activeBundles(uint256 riskpoolId) external view returns(uint256 numberOfActiveBundles) { return EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]); } - function getActiveBundleId( - uint256 riskpoolId, - uint256 bundleIdx - ) external view returns (uint256 bundleId) { + /** + * @dev Returns the active bundle ID at the specified index for the given risk pool ID. + * @param riskpoolId The ID of the risk pool. + * @param bundleIdx The index of the active bundle ID to be returned. + * @return bundleId The active bundle ID at the specified index. + */ + function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external view returns(uint256 bundleId) { require( - bundleIdx < - EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]), + bundleIdx < EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]), "ERROR:POL-041:BUNDLE_IDX_TOO_LARGE" ); - return - EnumerableSet.at( - _activeBundleIdsForRiskpoolId[riskpoolId], - bundleIdx - ); + return EnumerableSet.at(_activeBundleIdsForRiskpoolId[riskpoolId], bundleIdx); } - function addBundleIdToActiveSet( - uint256 riskpoolId, - uint256 bundleId - ) external onlyRiskpoolService { + /** + * @dev Adds a bundle ID to the active set for a specific riskpool ID. + * @param riskpoolId The ID of the riskpool. + * @param bundleId The ID of the bundle to be added to the active set. + */ + function addBundleIdToActiveSet(uint256 riskpoolId, uint256 bundleId) + external + onlyRiskpoolService + { require( - !EnumerableSet.contains( - _activeBundleIdsForRiskpoolId[riskpoolId], - bundleId - ), + !EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), "ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET" ); require( - EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]) < - _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId], + EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]) < _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId], "ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED" ); EnumerableSet.add(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId); } - function removeBundleIdFromActiveSet( - uint256 riskpoolId, - uint256 bundleId - ) external onlyRiskpoolService { + /** + * @dev Removes a bundle ID from the active set for a given risk pool ID. + * @param riskpoolId The ID of the risk pool. + * @param bundleId The ID of the bundle to be removed from the active set. + */ + function removeBundleIdFromActiveSet(uint256 riskpoolId, uint256 bundleId) + external + onlyRiskpoolService + { require( - EnumerableSet.contains( - _activeBundleIdsForRiskpoolId[riskpoolId], - bundleId - ), + EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), "ERROR:POL-044:BUNDLE_ID_NOT_IN_SET" ); - EnumerableSet.remove( - _activeBundleIdsForRiskpoolId[riskpoolId], - bundleId - ); + EnumerableSet.remove(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId); } + /** + * @dev Returns the full collateralization level of the contract. + * @return FULL_COLLATERALIZATION_LEVEL The full collateralization level of the contract. + */ function getFullCollateralizationLevel() external pure returns (uint256) { return FULL_COLLATERALIZATION_LEVEL; } - function _getRiskpoolComponent( - IPolicy.Metadata memory metadata - ) internal view returns (IRiskpool riskpool) { + /** + * @dev Returns the Riskpool contract instance associated with the given policy metadata. + * @param metadata The metadata of the policy. + * @return riskpool The Riskpool contract instance. + */ + function _getRiskpoolComponent(IPolicy.Metadata memory metadata) internal view returns (IRiskpool riskpool) { uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; require(riskpoolId > 0, "ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST"); riskpool = _getRiskpoolForId(riskpoolId); } - function _getRiskpoolForId( - uint256 riskpoolId - ) internal view returns (IRiskpool riskpool) { - require( - _component.isRiskpool(riskpoolId), - "ERROR:POL-046:COMPONENT_NOT_RISKPOOL" - ); - + /** + * @dev Returns the Riskpool contract instance for a given riskpoolId. + * @param riskpoolId The ID of the riskpool to retrieve the Riskpool contract instance for. + * @return riskpool The Riskpool contract instance. + */ + function _getRiskpoolForId(uint256 riskpoolId) internal view returns (IRiskpool riskpool) { + require(_component.isRiskpool(riskpoolId), "ERROR:POL-046:COMPONENT_NOT_RISKPOOL"); + IComponent cmp = _component.getComponent(riskpoolId); riskpool = IRiskpool(address(cmp)); } diff --git a/contracts/modules/QueryModule.sol b/contracts/modules/QueryModule.sol index e894e0f6..b6ad1629 100644 --- a/contracts/modules/QueryModule.sol +++ b/contracts/modules/QueryModule.sol @@ -21,16 +21,6 @@ import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; * 1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the "OracleService" contract address stored in the CoreController. * 2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`. * - * The contract provides the following functions: - * - * - `_afterInitialize()`: Sets the `_component` variable to the address of the "ComponentController" contract. It is called after contract initialization and only during the initialization phase. - * - `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the "Query" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event. - * - `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the "OracleService" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event. - * - `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the "Query" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event. - * - `getProcessId()`: Returns the process ID associated with a given `requestId`. - * - `getOracleRequestCount()`: Returns the number of oracle requests made. - * - `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component. - * * The contract emits the following events: * * 1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID. @@ -38,7 +28,11 @@ import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; * 3. `LogOracleCanceled`: Indicates the cancellation of an oracle request and includes the request ID. */ -contract QueryModule is IQuery, CoreController { + +contract QueryModule is + IQuery, + CoreController +{ ComponentController private _component; OracleRequest[] private _oracleRequests; @@ -67,6 +61,10 @@ contract QueryModule is IQuery, CoreController { _; } + /** + * @dev Internal function that sets the `_component` variable to the `ComponentController` contract address. + * + */ function _afterInitialize() internal override onlyInitializing { _component = ComponentController(_getContractAddress("Component")); } @@ -75,21 +73,35 @@ contract QueryModule is IQuery, CoreController { // request only works for active oracles // function call _getOracle reverts if oracle is not active // as a result all request call on oracles that are not active will revert + /** + * @dev Creates a new oracle request for a given process with the specified input data and callback information. + * @param processId The ID of the process. + * @param input The input data for the request. + * @param callbackMethodName The name of the callback method to be called upon completion of the request. + * @param callbackContractAddress The address of the contract to be called upon completion of the request. + * @param responsibleOracleId The ID of the oracle responsible for handling the request. + * @return requestId The ID of the newly created oracle request. + * @notice This function emits 1 events: + * - LogOracleRequested + */ function request( bytes32 processId, bytes calldata input, string calldata callbackMethodName, address callbackContractAddress, uint256 responsibleOracleId - ) external override onlyPolicyFlow("Query") returns (uint256 requestId) { - uint256 componentId = _component.getComponentId( - callbackContractAddress - ); + ) + external + override + onlyPolicyFlow("Query") + returns (uint256 requestId) + { + uint256 componentId = _component.getComponentId(callbackContractAddress); require( _component.isProduct(componentId), "ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT" ); - + requestId = _oracleRequests.length; _oracleRequests.push(); @@ -103,40 +115,53 @@ contract QueryModule is IQuery, CoreController { req.responsibleOracleId = responsibleOracleId; req.createdAt = block.timestamp; // solhint-disable-line - _getOracle(responsibleOracleId).request(requestId, input); + _getOracle(responsibleOracleId).request( + requestId, + input + ); emit LogOracleRequested(processId, requestId, responsibleOracleId); } /* Oracle Response */ // respond only works for active oracles - // modifier onlyResponsibleOracle contains a function call to _getOracle + // modifier onlyResponsibleOracle contains a function call to _getOracle // which reverts if oracle is not active // as a result, all response calls by oracles that are not active will revert + /** + * @dev Responds to an oracle request with the given requestId, responder address, and data. + * @param requestId The ID of the oracle request. + * @param responder The address of the oracle responder. + * @param data The data to be sent to the oracle contract. + * @notice This function emits 1 events: + * - LogOracleResponded + */ function respond( uint256 requestId, address responder, bytes calldata data - ) - external - override - onlyOracleService - onlyResponsibleOracle(requestId, responder) + ) + external override + onlyOracleService + onlyResponsibleOracle(requestId, responder) { OracleRequest storage req = _oracleRequests[requestId]; string memory functionSignature = string( - abi.encodePacked(req.callbackMethodName, "(uint256,bytes32,bytes)") - ); + abi.encodePacked( + req.callbackMethodName, + "(uint256,bytes32,bytes)" + )); bytes32 processId = req.processId; - (bool success, ) = req.callbackContractAddress.call( - abi.encodeWithSignature( - functionSignature, - requestId, - processId, - data - ) - ); + (bool success, ) = + req.callbackContractAddress.call( + abi.encodeWithSignature( + functionSignature, + requestId, + processId, + data + ) + ); require(success, "ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL"); delete _oracleRequests[requestId]; @@ -146,45 +171,66 @@ contract QueryModule is IQuery, CoreController { emit LogOracleResponded(processId, requestId, responder, success); } - function cancel( - uint256 requestId - ) external override onlyPolicyFlow("Query") { + /** + * @dev Cancels an oracle request. + * @param requestId The ID of the oracle request to be canceled. + * @notice This function emits 1 events: + * - LogOracleCanceled + */ + function cancel(uint256 requestId) + external override + onlyPolicyFlow("Query") + { OracleRequest storage oracleRequest = _oracleRequests[requestId]; - require( - oracleRequest.createdAt > 0, - "ERROR:QUC-030:REQUEST_ID_INVALID" - ); + require(oracleRequest.createdAt > 0, "ERROR:QUC-030:REQUEST_ID_INVALID"); delete _oracleRequests[requestId]; emit LogOracleCanceled(requestId); } - function getProcessId( - uint256 requestId - ) external view returns (bytes32 processId) { + + /** + * @dev Returns the process ID associated with a given request ID. + * @param requestId The ID of the request to retrieve the process ID for. + * @return processId The process ID associated with the given request ID. + */ + function getProcessId(uint256 requestId) + external + view + returns(bytes32 processId) + { OracleRequest memory oracleRequest = _oracleRequests[requestId]; - require( - oracleRequest.createdAt > 0, - "ERROR:QUC-040:REQUEST_ID_INVALID" - ); + require(oracleRequest.createdAt > 0, "ERROR:QUC-040:REQUEST_ID_INVALID"); return oracleRequest.processId; } + + /** + * @dev Returns the number of oracle requests made. + * @return _count The number of oracle requests made. + */ function getOracleRequestCount() public view returns (uint256 _count) { return _oracleRequests.length; } + /** + * @dev Returns the Oracle component with the specified ID. + * @param id The ID of the Oracle component to retrieve. + * @return oracle The Oracle component retrieved. + * + * Throws a 'COMPONENT_NOT_ORACLE' error if the component with the specified ID is not an Oracle component. + * Throws an 'ORACLE_NOT_ACTIVE' error if the retrieved Oracle component is not in an active state. + */ function _getOracle(uint256 id) internal view returns (IOracle oracle) { IComponent cmp = _component.getComponent(id); oracle = IOracle(address(cmp)); require( - _component.getComponentType(id) == IComponent.ComponentType.Oracle, + _component.getComponentType(id) == IComponent.ComponentType.Oracle, "ERROR:QUC-041:COMPONENT_NOT_ORACLE" ); require( - _component.getComponentState(id) == - IComponent.ComponentState.Active, + _component.getComponentState(id) == IComponent.ComponentState.Active, "ERROR:QUC-042:ORACLE_NOT_ACTIVE" ); } diff --git a/contracts/modules/RegistryController.sol b/contracts/modules/RegistryController.sol index b1fa2811..43ad95db 100644 --- a/contracts/modules/RegistryController.sol +++ b/contracts/modules/RegistryController.sol @@ -20,33 +20,16 @@ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; * - `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release. * - `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release. * - * Functions: - * - * - `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs. - * - `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release. - * - `getRelease()`: Returns the current release identifier. - * - `getContract()`: Returns the address of a contract by its name in the current release. - * - `register()`: Registers a contract with a given name and address in the current release. - * - `deregister()`: Deregisters a contract from the current release. - * - `getContractInRelease()`: Returns the address of a specific contract within a given release. - * - `registerInRelease()`: Registers a contract in a specific release. - * - `deregisterInRelease()`: Deregisters a contract name from a specific release. - * - `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one. - * - `contracts()`: Returns the number of contracts in the current release. - * - `contractName()`: Returns the name of the contract at the specified index in the contractNames set. - * - * Internal functions: - * - * - `_getContractInRelease()`: Returns the address of a contract in a specific release. - * - `_registerInRelease()`: Registers a contract in a release. - * - `_deregisterInRelease()`: Deregisters a contract in a specific release. - * * The contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered. * * Overall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts. */ -contract RegistryController is IRegistry, CoreController { + +contract RegistryController is + IRegistry, + CoreController +{ using EnumerableSet for EnumerableSet.Bytes32Set; /** @@ -60,110 +43,170 @@ contract RegistryController is IRegistry, CoreController { * We use semantic versioning. */ bytes32 public release; - + uint256 public startBlock; - mapping(bytes32 /* release */ => mapping(bytes32 /* contract name */ => address /* contract address */)) - public _contracts; - mapping(bytes32 /* release */ => uint256 /* number of contracts in release */) - public _contractsInRelease; - mapping(bytes32 /* release */ => EnumerableSet.Bytes32Set /* contract names */) - private _contractNames; + mapping(bytes32 /* release */ => mapping(bytes32 /* contract name */ => address /* contract address */)) public _contracts; + mapping(bytes32 /* release */ => uint256 /* number of contracts in release */) public _contractsInRelease; + mapping(bytes32 /* release */ => EnumerableSet.Bytes32Set /* contract names */) private _contractNames; + /** + * @dev Initializes the GIF registry with an initial release and sets the deployment block for reading logs. + * @param _initialRelease The initial release of the GIF instance. + */ function initializeRegistry(bytes32 _initialRelease) public initializer { // _setupRegistry(address(this)); _registry = this; // this is a temporary assignment and must only be used // during the intial setup of a gif instance - // at execution time _msgSender is the address of the + // at execution time _msgSender is the address of the // registry proxy. release = _initialRelease; _contracts[release]["InstanceOperatorService"] = _msgSender(); EnumerableSet.add(_contractNames[release], "InstanceOperatorService"); _contractsInRelease[release] = 1; + // register the deployment block for reading logs startBlock = block.number; } - function ensureSender( - address sender, - bytes32 _contractName - ) external view override returns (bool _senderMatches) { - _senderMatches = (sender == - _getContractInRelease(release, _contractName)); + /** + * @dev Verifies if the provided 'sender' address matches the address of the contract with the given '_contractName' in the current release. + * @param sender The address to be verified. + * @param _contractName The name of the contract to compare the 'sender' address with. + * @return _senderMatches A boolean indicating whether the 'sender' address matches the address of the contract with the given '_contractName'. + */ + function ensureSender(address sender, bytes32 _contractName) + external view override + returns(bool _senderMatches) + { + _senderMatches = (sender == _getContractInRelease(release, _contractName)); } /** * @dev get current release */ - function getRelease() external view override returns (bytes32 _release) { + /** + * @dev Returns the current release identifier. + * @return _release The release identifier. + */ + function getRelease() + external override view + returns (bytes32 _release) + { _release = release; } /** * @dev Get contract's address in the current release */ - function getContract( - bytes32 _contractName - ) public view override returns (address _addr) { + /** + * @dev Returns the address of a contract by its name. + * @param _contractName The name of the contract. + * @return _addr The address of the contract. + */ + function getContract(bytes32 _contractName) + public override view + returns (address _addr) + { _addr = _getContractInRelease(release, _contractName); } /** * @dev Register contract in the current release */ - function register( - bytes32 _contractName, - address _contractAddress - ) external override onlyInstanceOperator { + /** + * @dev Registers a contract with a given name and address. + * + * @param _contractName The name of the contract to register. + * @param _contractAddress The address of the contract to register. + */ + function register(bytes32 _contractName, address _contractAddress) + external override + onlyInstanceOperator + { _registerInRelease(release, false, _contractName, _contractAddress); } /** * @dev Deregister contract in the current release */ - function deregister( - bytes32 _contractName - ) external override onlyInstanceOperator { + /** + * @dev Deregisters a contract from the current release. + * @param _contractName The name of the contract to be deregistered. + */ + function deregister(bytes32 _contractName) + external override + onlyInstanceOperator + { _deregisterInRelease(release, _contractName); } /** * @dev Get contract's address in certain release */ - function getContractInRelease( - bytes32 _release, - bytes32 _contractName - ) external view override returns (address _addr) { + /** + * @dev Returns the address of a specific contract within a given release. + * @param _release The release identifier. + * @param _contractName The name of the contract to retrieve. + * @return _addr The address of the contract. + */ + function getContractInRelease(bytes32 _release, bytes32 _contractName) + external override view + returns (address _addr) + { _addr = _getContractInRelease(_release, _contractName); } /** * @dev Register contract in certain release */ - function registerInRelease( - bytes32 _release, - bytes32 _contractName, - address _contractAddress - ) external override onlyInstanceOperator { + /** + * @dev Registers a contract in a specific release. + * @param _release The release identifier. + * @param _contractName The name of the contract to register. + * @param _contractAddress The address of the contract to register. + */ + function registerInRelease(bytes32 _release, bytes32 _contractName, address _contractAddress) + external override + onlyInstanceOperator + { _registerInRelease(_release, false, _contractName, _contractAddress); } - function deregisterInRelease( - bytes32 _release, - bytes32 _contractName - ) external override onlyInstanceOperator { + /** + * @dev Deregisters a contract name from a specific release. + * @param _release The release from which to deregister the contract name. + * @param _contractName The contract name to deregister. + */ + function deregisterInRelease(bytes32 _release, bytes32 _contractName) + external override + onlyInstanceOperator + { _deregisterInRelease(_release, _contractName); } /** * @dev Create new release, copy contracts from previous release */ - function prepareRelease( - bytes32 _newRelease - ) external override onlyInstanceOperator { + /** + * @dev Prepares a new release by copying all contracts from the current release to the new one. + * @param _newRelease The name of the new release. + * + * Requirements: + * - The current release must not be empty. + * - The new release must be empty. + * + * Emits a {LogReleasePrepared} event. + * @notice This function emits 1 events: + * - LogReleasePrepared + */ + function prepareRelease(bytes32 _newRelease) + external override + onlyInstanceOperator + { uint256 countContracts = _contractsInRelease[release]; require(countContracts > 0, "ERROR:REC-001:EMPTY_RELEASE"); @@ -188,40 +231,70 @@ contract RegistryController is IRegistry, CoreController { emit LogReleasePrepared(release); } - function contracts() - external - view - override - returns (uint256 _numberOfContracts) - { + /** + * @dev Returns the number of contracts in the current release. + * + * @return _numberOfContracts The total number of contracts in the current release. + */ + function contracts() external override view returns (uint256 _numberOfContracts) { _numberOfContracts = EnumerableSet.length(_contractNames[release]); } - function contractName( - uint256 idx - ) external view override returns (bytes32 _contractName) { + /** + * @dev Returns the name of the contract at the specified index in the contractNames set. + * @param idx The index of the contract name to retrieve. + * @return _contractName The name of the contract at the specified index in the contractNames set. + */ + function contractName(uint256 idx) external override view returns (bytes32 _contractName) { _contractName = EnumerableSet.at(_contractNames[release], idx); } /** * @dev Get contract's address in certain release */ - function _getContractInRelease( - bytes32 _release, - bytes32 _contractName - ) internal view returns (address _addr) { + /** + * @dev Returns the address of a contract in a specific release. + * @param _release The release identifier. + * @param _contractName The name of the contract to retrieve. + * @return _addr The address of the requested contract. + */ + function _getContractInRelease(bytes32 _release, bytes32 _contractName) + internal view + returns (address _addr) + { _addr = _contracts[_release][_contractName]; } /** * @dev Register contract in certain release */ + /** + * @dev Registers a contract in a release. + * @param _release The release identifier. + * @param isNewRelease True if the release is new, false otherwise. + * @param _contractName The name of the contract. + * @param _contractAddress The address of the contract. + * + * Requirements: + * - The number of registered contracts must be less than MAX_CONTRACTS. + * - The release must be known, unless it is a new release. + * - The contract name must not be empty. + * - The contract name must not already exist in the release, unless it is the 'InstanceOperatorService' contract and it is registered with the owner address. + * - The contract address must not be zero. + * - The number of registered contracts must match the number of contract names in the release. + * + * Emits a LogContractRegistered event with the release identifier, contract name, contract address and a boolean indicating if the contract is new. + * @notice This function emits 1 events: + * - LogContractRegistered + */ function _registerInRelease( bytes32 _release, bool isNewRelease, bytes32 _contractName, address _contractAddress - ) internal { + ) + internal + { bool isNew = false; require( @@ -229,26 +302,16 @@ contract RegistryController is IRegistry, CoreController { "ERROR:REC-010:MAX_CONTRACTS_LIMIT" ); - // during `prepareRelease` the _release is not yet known, so check should not fail in this case - require( - _contractsInRelease[_release] > 0 || isNewRelease, - "ERROR:REC-011:RELEASE_UNKNOWN" - ); + // during `prepareRelease` the _release is not yet known, so check should not fail in this case + require(_contractsInRelease[_release] > 0 || isNewRelease, "ERROR:REC-011:RELEASE_UNKNOWN"); require(_contractName != 0x00, "ERROR:REC-012:CONTRACT_NAME_EMPTY"); require( - ( - !EnumerableSet.contains(_contractNames[_release], _contractName) - ) || - // the contract 'InstanceOperatorService' is initially registered with the owner address (see method initializeRegistry()); - // due to this this special check is required - (_contractName == "InstanceOperatorService" && - _contracts[_release][_contractName] == _msgSender()), - "ERROR:REC-013:CONTRACT_NAME_EXISTS" - ); - require( - _contractAddress != address(0), - "ERROR:REC-014:CONTRACT_ADDRESS_ZERO" - ); + (! EnumerableSet.contains(_contractNames[_release], _contractName) ) + // the contract 'InstanceOperatorService' is initially registered with the owner address (see method initializeRegistry()); + // due to this this special check is required + || (_contractName == "InstanceOperatorService" && _contracts[_release][_contractName] == _msgSender()), + "ERROR:REC-013:CONTRACT_NAME_EXISTS"); + require(_contractAddress != address(0), "ERROR:REC-014:CONTRACT_ADDRESS_ZERO"); if (_contracts[_release][_contractName] == address(0)) { EnumerableSet.add(_contractNames[_release], _contractName); @@ -258,8 +321,7 @@ contract RegistryController is IRegistry, CoreController { _contracts[_release][_contractName] = _contractAddress; require( - _contractsInRelease[_release] == - EnumerableSet.length(_contractNames[_release]), + _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]), "ERROR:REC-015:CONTRACT_NUMBER_MISMATCH" ); @@ -271,28 +333,39 @@ contract RegistryController is IRegistry, CoreController { ); } + /** * @dev Deregister contract in certain release */ - function _deregisterInRelease( - bytes32 _release, - bytes32 _contractName - ) internal onlyInstanceOperator { - require( - EnumerableSet.contains(_contractNames[_release], _contractName), - "ERROR:REC-020:CONTRACT_UNKNOWN" - ); + /** + * @dev Internal function to deregister a contract in a specific release. + * @param _release The release identifier. + * @param _contractName The name of the contract to be deregistered. + * + * Requirements: + * - The function can only be called by the instance operator. + * - The contract to be deregistered must exist in the specified release. + * + * Removes the contract name from the set of contract names in the specified release, + * removes the contract from the mapping of contracts in the specified release, + * and emits a LogContractDeregistered event. + * @notice This function emits 1 events: + * - LogContractDeregistered + */ + function _deregisterInRelease(bytes32 _release, bytes32 _contractName) + internal + onlyInstanceOperator + { + require(EnumerableSet.contains(_contractNames[_release], _contractName), "ERROR:REC-020:CONTRACT_UNKNOWN"); EnumerableSet.remove(_contractNames[_release], _contractName); _contractsInRelease[_release] -= 1; delete _contracts[_release][_contractName]; - + require( - _contractsInRelease[_release] == - EnumerableSet.length(_contractNames[_release]), - "ERROR:REC-021:CONTRACT_NUMBER_MISMATCH" - ); - emit LogContractDeregistered(_release, _contractName); + _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]), + "ERROR:REC-021:CONTRACT_NUMBER_MISMATCH"); + emit LogContractDeregistered(_release, _contractName); } } diff --git a/contracts/modules/TreasuryModule.sol b/contracts/modules/TreasuryModule.sol index 28bc54ae..c0da0ea9 100644 --- a/contracts/modules/TreasuryModule.sol +++ b/contracts/modules/TreasuryModule.sol @@ -51,24 +51,17 @@ import "@openzeppelin/contracts/utils/Strings.sol"; * Overall, the TreasuryModule contract provides functionality for managing fees, processing premium payments, and interacting with other controllers and contracts in the system. */ -contract TreasuryModule is ITreasury, CoreController, Pausable { - uint256 public constant FRACTION_FULL_UNIT = 10 ** 18; +contract TreasuryModule is + ITreasury, + CoreController, + Pausable +{ + uint256 public constant FRACTION_FULL_UNIT = 10**18; uint256 public constant FRACTIONAL_FEE_MAX = FRACTION_FULL_UNIT / 4; // max frctional fee is 25% - event LogTransferHelperInputValidation1Failed( - bool tokenIsContract, - address from, - address to - ); - event LogTransferHelperInputValidation2Failed( - uint256 balance, - uint256 allowance - ); - event LogTransferHelperCallFailed( - bool callSuccess, - uint256 returnDataLength, - bytes returnData - ); + event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); + event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); + event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); address private _instanceWalletAddress; mapping(uint256 => address) private _riskpoolWallet; // riskpoolId => walletAddress @@ -83,19 +76,15 @@ contract TreasuryModule is ITreasury, CoreController, Pausable { modifier instanceWalletDefined() { require( _instanceWalletAddress != address(0), - "ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED" - ); + "ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED"); _; } modifier riskpoolWalletDefinedForProcess(bytes32 processId) { - (uint256 riskpoolId, address walletAddress) = _getRiskpoolWallet( - processId - ); + (uint256 riskpoolId, address walletAddress) = _getRiskpoolWallet(processId); require( walletAddress != address(0), - "ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED" - ); + "ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED"); _; } @@ -103,8 +92,7 @@ contract TreasuryModule is ITreasury, CoreController, Pausable { IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); require( getRiskpoolWallet(bundle.riskpoolId) != address(0), - "ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED" - ); + "ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED"); _; } @@ -122,6 +110,11 @@ contract TreasuryModule is ITreasury, CoreController, Pausable { _; } + /** + * @dev Sets the addresses of the BundleController, ComponentController, PolicyController, and PoolController contracts. + * + * + */ function _afterInitialize() internal override onlyInitializing { _bundle = BundleController(_getContractAddress("Bundle")); _component = ComponentController(_getContractAddress("Component")); @@ -129,115 +122,180 @@ contract TreasuryModule is ITreasury, CoreController, Pausable { _pool = PoolController(_getContractAddress("Pool")); } - function suspend() external onlyInstanceOperator { + /** + * @dev Suspends the treasury contract, preventing any further transfers or withdrawals. + * Can only be called by the instance operator. + * + * @notice This function emits 1 events: + * - LogTreasurySuspended + */ + function suspend() + external + onlyInstanceOperator + { _pause(); emit LogTreasurySuspended(); } - function resume() external onlyInstanceOperator { + /** + * @dev Resumes the treasury contract after it has been paused. + * + * + * @notice This function emits 1 events: + * - LogTreasuryResumed + */ + function resume() + external + onlyInstanceOperator + { _unpause(); emit LogTreasuryResumed(); } - function setProductToken( - uint256 productId, - address erc20Address - ) external override whenNotSuspended onlyInstanceOperator { + /** + * @dev Sets the ERC20 token address for a given product ID and its associated risk pool. + * @param productId The ID of the product for which the token address is being set. + * @param erc20Address The address of the ERC20 token to be set. + * + * Emits a LogTreasuryProductTokenSet event with the product ID, risk pool ID, and ERC20 token address. + * + * Requirements: + * - The ERC20 token address must not be zero. + * - The product must exist. + * - The product token must not have already been set. + * - The product token address must match the token address of the corresponding product. + * - If the risk pool token address has already been set, it must match the product token address. + * @notice This function emits 1 events: + * - LogTreasuryProductTokenSet + */ + function setProductToken(uint256 productId, address erc20Address) + external override + whenNotSuspended + onlyInstanceOperator + { require(erc20Address != address(0), "ERROR:TRS-010:TOKEN_ADDRESS_ZERO"); require(_component.isProduct(productId), "ERROR:TRS-011:NOT_PRODUCT"); - require( - address(_componentToken[productId]) == address(0), - "ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET" - ); - + require(address(_componentToken[productId]) == address(0), "ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET"); + IComponent component = _component.getComponent(productId); - require( - address(IProduct(address(component)).getToken()) == erc20Address, - "ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING" - ); + require(address(IProduct(address(component)).getToken()) == erc20Address, "ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING"); uint256 riskpoolId = _pool.getRiskPoolForProduct(productId); // require if riskpool token is already set and product token does match riskpool token - require( - address(_componentToken[riskpoolId]) == address(0) || - address(_componentToken[riskpoolId]) == erc20Address, - "ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING" - ); - + require(address(_componentToken[riskpoolId]) == address(0) + || address(_componentToken[riskpoolId]) == erc20Address, + "ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING"); + _componentToken[productId] = IERC20(erc20Address); _componentToken[riskpoolId] = IERC20(erc20Address); emit LogTreasuryProductTokenSet(productId, riskpoolId, erc20Address); } - function setInstanceWallet( - address instanceWalletAddress - ) external override whenNotSuspended onlyInstanceOperator { - require( - instanceWalletAddress != address(0), - "ERROR:TRS-015:WALLET_ADDRESS_ZERO" - ); + /** + * @dev Sets the address of the instance wallet. + * @param instanceWalletAddress The address of the instance wallet to be set. + * + * Emits a LogTreasuryInstanceWalletSet event. + * @notice This function emits 1 events: + * - LogTreasuryInstanceWalletSet + */ + function setInstanceWallet(address instanceWalletAddress) + external override + whenNotSuspended + onlyInstanceOperator + { + require(instanceWalletAddress != address(0), "ERROR:TRS-015:WALLET_ADDRESS_ZERO"); _instanceWalletAddress = instanceWalletAddress; - emit LogTreasuryInstanceWalletSet(instanceWalletAddress); + emit LogTreasuryInstanceWalletSet (instanceWalletAddress); } - function setRiskpoolWallet( - uint256 riskpoolId, - address riskpoolWalletAddress - ) external override whenNotSuspended onlyInstanceOperator { + /** + * @dev Sets the wallet address for a specific riskpool. + * @param riskpoolId The ID of the riskpool. + * @param riskpoolWalletAddress The wallet address to set for the riskpool. + * + * Requirements: + * - The caller must be the instance operator. + * - The riskpool must exist. + * - The wallet address cannot be the zero address. + * + * Emits a {LogTreasuryRiskpoolWalletSet} event. + * @notice This function emits 1 events: + * - LogTreasuryRiskpoolWalletSet + */ + function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) + external override + whenNotSuspended + onlyInstanceOperator + { IComponent component = _component.getComponent(riskpoolId); - require( - _component.isRiskpool(riskpoolId), - "ERROR:TRS-016:NOT_RISKPOOL" - ); - require( - riskpoolWalletAddress != address(0), - "ERROR:TRS-017:WALLET_ADDRESS_ZERO" - ); + require(_component.isRiskpool(riskpoolId), "ERROR:TRS-016:NOT_RISKPOOL"); + require(riskpoolWalletAddress != address(0), "ERROR:TRS-017:WALLET_ADDRESS_ZERO"); _riskpoolWallet[riskpoolId] = riskpoolWalletAddress; - emit LogTreasuryRiskpoolWalletSet(riskpoolId, riskpoolWalletAddress); + emit LogTreasuryRiskpoolWalletSet (riskpoolId, riskpoolWalletAddress); } + /** + * @dev Creates a fee specification for a given component. + * @param componentId The ID of the component for which to create the fee specification. + * @param fixedFee The fixed fee amount in wei. + * @param fractionalFee The fractional fee amount as a percentage of the total value. + * @param feeCalculationData Additional data required for calculating the fee. + * @return Returns a FeeSpecification struct containing the fee details. + */ function createFeeSpecification( uint256 componentId, uint256 fixedFee, uint256 fractionalFee, bytes calldata feeCalculationData - ) external view override returns (FeeSpecification memory) { - require( - _component.isProduct(componentId) || - _component.isRiskpool(componentId), - "ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL" - ); - require( - fractionalFee <= FRACTIONAL_FEE_MAX, - "ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG" - ); - - return - FeeSpecification( - componentId, - fixedFee, - fractionalFee, - feeCalculationData, - block.timestamp, // solhint-disable-line - block.timestamp // solhint-disable-line - ); + ) + external override + view + returns(FeeSpecification memory) + { + require(_component.isProduct(componentId) || _component.isRiskpool(componentId), "ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL"); + require(fractionalFee <= FRACTIONAL_FEE_MAX, "ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG"); + + return FeeSpecification( + componentId, + fixedFee, + fractionalFee, + feeCalculationData, + block.timestamp, // solhint-disable-line + block.timestamp // solhint-disable-line + ); } - function setPremiumFees( - FeeSpecification calldata feeSpec - ) external override whenNotSuspended onlyInstanceOperator { - require( - _component.isProduct(feeSpec.componentId), - "ERROR:TRS-022:NOT_PRODUCT" - ); - - // record original creation timestamp + /** + * @dev Sets the premium fees for a specific component. + * @param feeSpec The fee specification for the component. + * Includes the component ID, fixed fee, and fractional fee. + * + * Emits a LogTreasuryPremiumFeesSet event with the following parameters: + * - componentId: The ID of the component for which the fees were set. + * - fixedFee: The fixed fee for the component. + * - fractionalFee: The fractional fee for the component. + * + * Requirements: + * - The caller must be the instance operator. + * - The component ID must correspond to a valid product. + * - The contract must not be suspended. + * @notice This function emits 1 events: + * - LogTreasuryPremiumFeesSet + */ + function setPremiumFees(FeeSpecification calldata feeSpec) + external override + whenNotSuspended + onlyInstanceOperator + { + require(_component.isProduct(feeSpec.componentId), "ERROR:TRS-022:NOT_PRODUCT"); + + // record original creation timestamp uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt; _fees[feeSpec.componentId] = feeSpec; @@ -246,22 +304,29 @@ contract TreasuryModule is ITreasury, CoreController, Pausable { _fees[feeSpec.componentId].createdAt = originalCreatedAt; } - emit LogTreasuryPremiumFeesSet( + emit LogTreasuryPremiumFeesSet ( feeSpec.componentId, - feeSpec.fixedFee, - feeSpec.fractionalFee - ); + feeSpec.fixedFee, + feeSpec.fractionalFee); } - function setCapitalFees( - FeeSpecification calldata feeSpec - ) external override whenNotSuspended onlyInstanceOperator { - require( - _component.isRiskpool(feeSpec.componentId), - "ERROR:TRS-023:NOT_RISKPOOL" - ); - // record original creation timestamp + /** + * @dev Sets the fee specification for a given component, which includes the fixed and fractional fees. + * @param feeSpec The fee specification struct containing the component ID, fixed fee, and fractional fee. + * + * Emits a {LogTreasuryCapitalFeesSet} event with the component ID, fixed fee, and fractional fee. + * @notice This function emits 1 events: + * - LogTreasuryCapitalFeesSet + */ + function setCapitalFees(FeeSpecification calldata feeSpec) + external override + whenNotSuspended + onlyInstanceOperator + { + require(_component.isRiskpool(feeSpec.componentId), "ERROR:TRS-023:NOT_RISKPOOL"); + + // record original creation timestamp uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt; _fees[feeSpec.componentId] = feeSpec; @@ -270,72 +335,117 @@ contract TreasuryModule is ITreasury, CoreController, Pausable { _fees[feeSpec.componentId].createdAt = originalCreatedAt; } - emit LogTreasuryCapitalFeesSet( + emit LogTreasuryCapitalFeesSet ( feeSpec.componentId, - feeSpec.fixedFee, - feeSpec.fractionalFee - ); + feeSpec.fixedFee, + feeSpec.fractionalFee); } - function calculateFee( - uint256 componentId, - uint256 amount - ) public view returns (uint256 feeAmount, uint256 netAmount) { + + /** + * @dev Calculates the fee amount and net amount for a given component ID and amount. + * @param componentId The ID of the component for which the fee is being calculated. + * @param amount The amount for which the fee is being calculated. + * @return feeAmount The amount of the fee calculated. + * @return netAmount The net amount after the fee has been deducted. + */ + function calculateFee(uint256 componentId, uint256 amount) + public + view + returns(uint256 feeAmount, uint256 netAmount) + { FeeSpecification memory feeSpec = getFeeSpecification(componentId); require(feeSpec.createdAt > 0, "ERROR:TRS-024:FEE_SPEC_UNDEFINED"); feeAmount = _calculateFee(feeSpec, amount); netAmount = amount - feeAmount; } + /* - * Process the remaining premium by calculating the remaining amount, the fees for that amount and - * then transfering the fees to the instance wallet and the net premium remaining to the riskpool. - * This will revert if no fee structure is defined. + * Process the remaining premium by calculating the remaining amount, the fees for that amount and + * then transfering the fees to the instance wallet and the net premium remaining to the riskpool. + * This will revert if no fee structure is defined. */ - function processPremium( - bytes32 processId - ) - external - override + /** + * @dev Processes the premium for a given policy process ID. + * @param processId The process ID of the policy to process the premium for. + * @return success A boolean indicating whether the premium was successfully processed or not. + * @return feeAmount The amount of fees charged for processing the premium. + * @return netPremiumAmount The net amount of premium received after deducting fees. + */ + function processPremium(bytes32 processId) + external override whenNotSuspended onlyPolicyFlow("Treasury") - returns (bool success, uint256 feeAmount, uint256 netPremiumAmount) + returns( + bool success, + uint256 feeAmount, + uint256 netPremiumAmount + ) { - IPolicy.Policy memory policy = _policy.getPolicy(processId); + IPolicy.Policy memory policy = _policy.getPolicy(processId); if (policy.premiumPaidAmount < policy.premiumExpectedAmount) { - (success, feeAmount, netPremiumAmount) = processPremium( - processId, - policy.premiumExpectedAmount - policy.premiumPaidAmount - ); + (success, feeAmount, netPremiumAmount) + = processPremium(processId, policy.premiumExpectedAmount - policy.premiumPaidAmount); } } /* - * Process the premium by calculating the fees for the amount and - * then transfering the fees to the instance wallet and the net premium to the riskpool. - * This will revert if no fee structure is defined. + * Process the premium by calculating the fees for the amount and + * then transfering the fees to the instance wallet and the net premium to the riskpool. + * This will revert if no fee structure is defined. */ - function processPremium( - bytes32 processId, - uint256 amount - ) - public - override + /** + * @dev Processes a premium payment for a policy. + * @param processId The ID of the policy process. + * @param amount The amount of premium to be processed. + * @return success A boolean indicating whether the premium payment was successful or not. + * @return feeAmount The amount of fees collected from the premium payment. + * @return netAmount The net amount of premium transferred to the riskpool wallet. + * + * Requirements: + * - The policy process must exist. + * - The premium payment amount must not exceed the expected premium amount. + * - The caller must have sufficient allowance to transfer the requested amount of tokens. + * - The instance wallet and riskpool wallet must be defined for the policy process. + * - The caller must be authorized to perform the action. + * + * Emits: + * - LogTreasuryFeesTransferred: When the fees are successfully transferred to the instance wallet. + * - LogTreasuryPremiumTransferred: When the net premium amount is successfully transferred to the riskpool wallet. + * - LogTreasuryPremiumProcessed: When the premium payment is successfully processed. + * + * Throws: + * - "ERROR:TRS-030:AMOUNT_TOO_BIG": If the premium payment amount exceeds the expected premium amount. + * - "ERROR:TRS-031:FEE_TRANSFER_FAILED": If the transfer of fees to the instance wallet fails. + * - "ERROR:TRS-032:PREMIUM_TRANSFER_FAILED": If the transfer of net premium to the riskpool wallet fails. + * @notice This function emits 3 events: + * - LogTreasuryPremiumProcessed + * - LogTreasuryPremiumTransferred + * - LogTreasuryFeesTransferred + */ + function processPremium(bytes32 processId, uint256 amount) + public override whenNotSuspended instanceWalletDefined riskpoolWalletDefinedForProcess(processId) onlyPolicyFlow("Treasury") - returns (bool success, uint256 feeAmount, uint256 netAmount) + returns( + bool success, + uint256 feeAmount, + uint256 netAmount + ) { - IPolicy.Policy memory policy = _policy.getPolicy(processId); + IPolicy.Policy memory policy = _policy.getPolicy(processId); require( - policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, + policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, "ERROR:TRS-030:AMOUNT_TOO_BIG" ); IPolicy.Metadata memory metadata = _policy.getMetadata(processId); - (feeAmount, netAmount) = calculateFee(metadata.productId, amount); + (feeAmount, netAmount) + = calculateFee(metadata.productId, amount); // check if allowance covers requested amount IERC20 token = getComponentToken(metadata.productId); @@ -345,115 +455,95 @@ contract TreasuryModule is ITreasury, CoreController, Pausable { } // collect premium fees - success = TransferHelper.unifiedTransferFrom( - token, - metadata.owner, - _instanceWalletAddress, - feeAmount - ); - emit LogTreasuryFeesTransferred( - metadata.owner, - _instanceWalletAddress, - feeAmount - ); + success = TransferHelper.unifiedTransferFrom(token, metadata.owner, _instanceWalletAddress, feeAmount); + emit LogTreasuryFeesTransferred(metadata.owner, _instanceWalletAddress, feeAmount); require(success, "ERROR:TRS-031:FEE_TRANSFER_FAILED"); // transfer premium net amount to riskpool for product // actual transfer of net premium to riskpool - ( - uint256 riskpoolId, - address riskpoolWalletAddress - ) = _getRiskpoolWallet(processId); - success = TransferHelper.unifiedTransferFrom( - token, - metadata.owner, - riskpoolWalletAddress, - netAmount - ); + (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId); + success = TransferHelper.unifiedTransferFrom(token, metadata.owner, riskpoolWalletAddress, netAmount); - emit LogTreasuryPremiumTransferred( - metadata.owner, - riskpoolWalletAddress, - netAmount - ); + emit LogTreasuryPremiumTransferred(metadata.owner, riskpoolWalletAddress, netAmount); require(success, "ERROR:TRS-032:PREMIUM_TRANSFER_FAILED"); emit LogTreasuryPremiumProcessed(processId, amount); } - function processPayout( - bytes32 processId, - uint256 payoutId - ) - external - override + + /** + * @dev Processes a payout for a specific process and payout ID. + * @param processId The ID of the process for which the payout is being processed. + * @param payoutId The ID of the payout being processed. + * @return feeAmount The amount of fees deducted from the payout. + * @return netPayoutAmount The net payout amount after fees have been deducted. + * @notice This function emits 2 events: + * - LogTreasuryPayoutTransferred + * - LogTreasuryPayoutProcessed + */ + function processPayout(bytes32 processId, uint256 payoutId) + external override whenNotSuspended instanceWalletDefined riskpoolWalletDefinedForProcess(processId) onlyPolicyFlow("Treasury") - returns (uint256 feeAmount, uint256 netPayoutAmount) + returns( + uint256 feeAmount, + uint256 netPayoutAmount + ) { IPolicy.Metadata memory metadata = _policy.getMetadata(processId); IERC20 token = getComponentToken(metadata.productId); - ( - uint256 riskpoolId, - address riskpoolWalletAddress - ) = _getRiskpoolWallet(processId); + (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId); - IPolicy.Payout memory payout = _policy.getPayout(processId, payoutId); + IPolicy.Payout memory payout = _policy.getPayout(processId, payoutId); require( - token.balanceOf(riskpoolWalletAddress) >= payout.amount, + token.balanceOf(riskpoolWalletAddress) >= payout.amount, "ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL" ); require( - token.allowance(riskpoolWalletAddress, address(this)) >= - payout.amount, + token.allowance(riskpoolWalletAddress, address(this)) >= payout.amount, "ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL" ); // actual payout to policy holder - bool success = TransferHelper.unifiedTransferFrom( - token, - riskpoolWalletAddress, - metadata.owner, - payout.amount - ); + bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWalletAddress, metadata.owner, payout.amount); feeAmount = 0; netPayoutAmount = payout.amount; - emit LogTreasuryPayoutTransferred( - riskpoolWalletAddress, - metadata.owner, - payout.amount - ); + emit LogTreasuryPayoutTransferred(riskpoolWalletAddress, metadata.owner, payout.amount); require(success, "ERROR:TRS-044:PAYOUT_TRANSFER_FAILED"); - emit LogTreasuryPayoutProcessed( - riskpoolId, - metadata.owner, - payout.amount - ); + emit LogTreasuryPayoutProcessed(riskpoolId, metadata.owner, payout.amount); } - function processCapital( - uint256 bundleId, - uint256 capitalAmount - ) - external - override + /** + * @dev Processes capital for a given bundle ID and calculates fees. Transfers fees to the instance wallet and net capital to the riskpool wallet. + * @param bundleId The ID of the bundle for which to process capital. + * @param capitalAmount The amount of capital to be processed. + * @return feeAmount The amount of fees calculated and transferred to the instance wallet. + * @return netCapitalAmount The amount of net capital transferred to the riskpool wallet. + * @notice This function emits 3 events: + * - LogTreasuryFeesTransferred + * - LogTreasuryCapitalProcessed + * - LogTreasuryCapitalTransferred + */ + function processCapital(uint256 bundleId, uint256 capitalAmount) + external override whenNotSuspended instanceWalletDefined riskpoolWalletDefinedForBundle(bundleId) onlyRiskpoolService - returns (uint256 feeAmount, uint256 netCapitalAmount) + returns( + uint256 feeAmount, + uint256 netCapitalAmount + ) { // obtain relevant fee specification IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); address bundleOwner = _bundle.getOwner(bundleId); - FeeSpecification memory feeSpec = getFeeSpecification( - bundle.riskpoolId - ); + FeeSpecification memory feeSpec = getFeeSpecification(bundle.riskpoolId); require(feeSpec.createdAt > 0, "ERROR:TRS-050:FEE_SPEC_UNDEFINED"); // obtain relevant token for product/riskpool pair @@ -464,69 +554,63 @@ contract TreasuryModule is ITreasury, CoreController, Pausable { netCapitalAmount = capitalAmount - feeAmount; // check balance and allowance before starting any transfers - require( - token.balanceOf(bundleOwner) >= capitalAmount, - "ERROR:TRS-052:BALANCE_TOO_SMALL" - ); - require( - token.allowance(bundleOwner, address(this)) >= capitalAmount, - "ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL" - ); + require(token.balanceOf(bundleOwner) >= capitalAmount, "ERROR:TRS-052:BALANCE_TOO_SMALL"); + require(token.allowance(bundleOwner, address(this)) >= capitalAmount, "ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL"); - bool success = TransferHelper.unifiedTransferFrom( - token, - bundleOwner, - _instanceWalletAddress, - feeAmount - ); + bool success = TransferHelper.unifiedTransferFrom(token, bundleOwner, _instanceWalletAddress, feeAmount); - emit LogTreasuryFeesTransferred( - bundleOwner, - _instanceWalletAddress, - feeAmount - ); + emit LogTreasuryFeesTransferred(bundleOwner, _instanceWalletAddress, feeAmount); require(success, "ERROR:TRS-054:FEE_TRANSFER_FAILED"); // transfer net capital address riskpoolWallet = getRiskpoolWallet(bundle.riskpoolId); - success = TransferHelper.unifiedTransferFrom( - token, - bundleOwner, - riskpoolWallet, - netCapitalAmount - ); + success = TransferHelper.unifiedTransferFrom(token, bundleOwner, riskpoolWallet, netCapitalAmount); - emit LogTreasuryCapitalTransferred( - bundleOwner, - riskpoolWallet, - netCapitalAmount - ); + emit LogTreasuryCapitalTransferred(bundleOwner, riskpoolWallet, netCapitalAmount); require(success, "ERROR:TRS-055:CAPITAL_TRANSFER_FAILED"); - emit LogTreasuryCapitalProcessed( - bundle.riskpoolId, - bundleId, - capitalAmount - ); + emit LogTreasuryCapitalProcessed(bundle.riskpoolId, bundleId, capitalAmount); } - function processWithdrawal( - uint256 bundleId, - uint256 amount - ) - external - override + /** + * @dev Processes a withdrawal of a specified amount from a bundle, transferring the funds to the bundle owner's wallet. + * @param bundleId The ID of the bundle from which the withdrawal is made. + * @param amount The amount of tokens to withdraw. + * @return feeAmount The amount of fees charged for the withdrawal. + * @return netAmount The net amount of tokens transferred to the bundle owner's wallet. + * + * Requirements: + * - The function can only be called when the contract is not suspended. + * - The instance wallet must be defined. + * - The riskpool wallet must be defined for the specified bundle. + * - Only the riskpool service can call this function. + * - The bundle must have sufficient capacity or balance to cover the withdrawal. + * - The riskpool wallet must have sufficient balance of the token to cover the withdrawal. + * - The contract must have sufficient allowance to withdraw the token from the riskpool wallet. + * - The withdrawal transfer must be successful. + * + * Emits a {LogTreasuryWithdrawalTransferred} event indicating the transfer of the withdrawn tokens to the bundle owner's wallet. + * Emits a {LogTreasuryWithdrawalProcessed} event indicating the successful processing of the withdrawal. + * @notice This function emits 2 events: + * - LogTreasuryWithdrawalTransferred + * - LogTreasuryWithdrawalProcessed + */ + function processWithdrawal(uint256 bundleId, uint256 amount) + external override whenNotSuspended instanceWalletDefined riskpoolWalletDefinedForBundle(bundleId) onlyRiskpoolService - returns (uint256 feeAmount, uint256 netAmount) + returns( + uint256 feeAmount, + uint256 netAmount + ) { // obtain relevant bundle info IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); require( - bundle.capital >= bundle.lockedCapital + amount || - (bundle.lockedCapital == 0 && bundle.balance >= amount), + bundle.capital >= bundle.lockedCapital + amount + || (bundle.lockedCapital == 0 && bundle.balance >= amount), "ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL" ); @@ -536,11 +620,11 @@ contract TreasuryModule is ITreasury, CoreController, Pausable { IERC20 token = _componentToken[bundle.riskpoolId]; require( - token.balanceOf(riskpoolWallet) >= amount, + token.balanceOf(riskpoolWallet) >= amount, "ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL" ); require( - token.allowance(riskpoolWallet, address(this)) >= amount, + token.allowance(riskpoolWallet, address(this)) >= amount, "ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL" ); @@ -548,74 +632,101 @@ contract TreasuryModule is ITreasury, CoreController, Pausable { // ideally symmetrical reusing capital fee spec for riskpool feeAmount = 0; netAmount = amount; - bool success = TransferHelper.unifiedTransferFrom( - token, - riskpoolWallet, - bundleOwner, - netAmount - ); + bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWallet, bundleOwner, netAmount); - emit LogTreasuryWithdrawalTransferred( - riskpoolWallet, - bundleOwner, - netAmount - ); + emit LogTreasuryWithdrawalTransferred(riskpoolWallet, bundleOwner, netAmount); require(success, "ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED"); - emit LogTreasuryWithdrawalProcessed( - bundle.riskpoolId, - bundleId, - netAmount - ); + emit LogTreasuryWithdrawalProcessed(bundle.riskpoolId, bundleId, netAmount); } - function getComponentToken( - uint256 componentId - ) public view override returns (IERC20 token) { - require( - _component.isProduct(componentId) || - _component.isRiskpool(componentId), - "ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL" - ); + + /** + * @dev Returns the ERC20 token address associated with the given component ID. + * @param componentId The ID of the component to retrieve the token address for. + * @return token The ERC20 token address associated with the component ID. + */ + function getComponentToken(uint256 componentId) + public override + view + returns(IERC20 token) + { + require(_component.isProduct(componentId) || _component.isRiskpool(componentId), "ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL"); return _componentToken[componentId]; } - function getFeeSpecification( - uint256 componentId - ) public view override returns (FeeSpecification memory) { + /** + * @dev Returns the fee specification of a given component. + * @param componentId The ID of the component. + * @return fees The fee specification of the component. + */ + function getFeeSpecification(uint256 componentId) public override view returns(FeeSpecification memory) { return _fees[componentId]; } - function getFractionFullUnit() public pure override returns (uint256) { - return FRACTION_FULL_UNIT; + /** + * @dev Returns the value of the constant FRACTION_FULL_UNIT. + * @return The value of FRACTION_FULL_UNIT as an unsigned integer. + */ + function getFractionFullUnit() public override pure returns(uint256) { + return FRACTION_FULL_UNIT; } - function getInstanceWallet() public view override returns (address) { - return _instanceWalletAddress; + /** + * @dev Returns the address of the instance wallet. + * @return The address of the instance wallet. + */ + function getInstanceWallet() public override view returns(address) { + return _instanceWalletAddress; } - function getRiskpoolWallet( - uint256 riskpoolId - ) public view override returns (address) { + /** + * @dev Returns the wallet address of the specified risk pool. + * @param riskpoolId The unique identifier of the risk pool. + * @return The wallet address associated with the specified risk pool. + */ + function getRiskpoolWallet(uint256 riskpoolId) public override view returns(address) { return _riskpoolWallet[riskpoolId]; } + + /** + * @dev Calculates the premium fee for a given fee specification and process ID. + * @param feeSpec The fee specification to be used for the calculation. + * @param processId The process ID of the application for which the fee is being calculated. + * @return application The application object retrieved from the policy contract. + * @return feeAmount The amount of the premium fee calculated based on the fee specification and premium amount of the application. + */ function _calculatePremiumFee( - FeeSpecification memory feeSpec, + FeeSpecification memory feeSpec, bytes32 processId ) internal view - returns (IPolicy.Application memory application, uint256 feeAmount) + returns ( + IPolicy.Application memory application, + uint256 feeAmount + ) { - application = _policy.getApplication(processId); + application = _policy.getApplication(processId); feeAmount = _calculateFee(feeSpec, application.premiumAmount); - } + } + + /** + * @dev Calculates the fee amount based on the given fee specification and the transaction amount. + * @param feeSpec The fee specification in the form of a FeeSpecification struct. + * @param amount The transaction amount to calculate the fee for. + * @return feeAmount The calculated fee amount. + */ function _calculateFee( - FeeSpecification memory feeSpec, + FeeSpecification memory feeSpec, uint256 amount - ) internal pure returns (uint256 feeAmount) { + ) + internal + pure + returns (uint256 feeAmount) + { if (feeSpec.feeCalculationData.length > 0) { revert("ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED"); } @@ -630,14 +741,18 @@ contract TreasuryModule is ITreasury, CoreController, Pausable { // require that fee is smaller than amount require(feeAmount < amount, "ERROR:TRS-091:FEE_TOO_BIG"); - } + } - function _getRiskpoolWallet( - bytes32 processId - ) + /** + * @dev Returns the riskpool ID and wallet address for a given process ID. + * @param processId The ID of the process. + * @return riskpoolId The ID of the riskpool associated with the process. + * @return riskpoolWalletAddress The wallet address of the riskpool associated with the process. + */ + function _getRiskpoolWallet(bytes32 processId) internal view - returns (uint256 riskpoolId, address riskpoolWalletAddress) + returns(uint256 riskpoolId, address riskpoolWalletAddress) { IPolicy.Metadata memory metadata = _policy.getMetadata(processId); riskpoolId = _pool.getRiskPoolForProduct(metadata.productId); From 60372ce7e26d69e8ac721b59590caf11b1738211 Mon Sep 17 00:00:00 2001 From: lydiamussenbrock Date: Thu, 15 Jun 2023 06:49:25 +0000 Subject: [PATCH 25/29] Docs update --- contracts-christoph2806/Migrations.sol | 35 - .../examples/AyiiOracle.sol | 214 ----- .../examples/AyiiProduct.sol | 829 ---------------- .../examples/AyiiRiskpool.sol | 87 -- .../examples/mock/ChainlinkOperator.sol | 379 -------- .../examples/mock/ChainlinkToken.sol | 63 -- contracts-christoph2806/examples/strings.sol | 137 --- .../flows/PolicyDefaultFlow.sol | 499 ---------- contracts-christoph2806/flows/README.adoc | 8 - .../modules/AccessController.sol | 192 ---- .../modules/BundleController.sol | 544 ----------- .../modules/ComponentController.sol | 501 ---------- .../modules/LicenseController.sol | 64 -- .../modules/PolicyController.sol | 814 ---------------- .../modules/PoolController.sol | 529 ----------- .../modules/QueryModule.sol | 218 ----- contracts-christoph2806/modules/README.adoc | 25 - .../modules/RegistryController.sol | 355 ------- .../modules/TreasuryModule.sol | 728 -------------- .../services/ComponentOwnerService.sol | 113 --- .../services/InstanceOperatorService.sol | 393 -------- .../services/InstanceService.sol | 597 ------------ .../services/OracleService.sol | 32 - .../services/ProductService.sol | 83 -- contracts-christoph2806/services/README.adoc | 18 - .../services/RiskpoolService.sol | 340 ------- .../shared/CoreController.sol | 81 -- contracts-christoph2806/shared/CoreProxy.sol | 59 -- contracts-christoph2806/shared/README.adoc | 14 - .../shared/TransferHelper.sol | 76 -- .../shared/WithRegistry.sol | 93 -- contracts-christoph2806/test/README.adoc | 24 - contracts-christoph2806/test/TestCoin.sol | 44 - .../TestCoinAlternativeImplementation.sol | 54 -- .../test/TestCompromisedProduct.sol | 327 ------- contracts-christoph2806/test/TestOracle.sol | 86 -- contracts-christoph2806/test/TestProduct.sol | 535 ----------- .../TestRegistryCompromisedController.sol | 38 - .../test/TestRegistryControllerUpdated.sol | 33 - contracts-christoph2806/test/TestRiskpool.sol | 48 - .../test/TestTransferFrom.sol | 34 - .../tokens/BundleToken.sol | 126 --- contracts-christoph2806/tokens/README.adoc | 10 - .../tokens/RiskpoolToken.sol | 20 - contracts/Migrations.sol | 11 + contracts/examples/AyiiOracle.sol | 63 ++ contracts/examples/AyiiProduct.sol | 241 +++++ contracts/examples/AyiiRiskpool.sol | 148 +-- contracts/examples/mock/ChainlinkOperator.sol | 90 ++ contracts/examples/mock/ChainlinkToken.sol | 29 + contracts/examples/strings.sol | 253 ++--- contracts/flows/PolicyDefaultFlow.sol | 141 +++ contracts/services/ComponentOwnerService.sol | 195 ++-- .../services/InstanceOperatorService.sol | 133 +++ contracts/services/InstanceService.sol | 269 ++++++ contracts/services/OracleService.sol | 8 + contracts/services/ProductService.sol | 16 + contracts/services/RiskpoolService.sol | 76 ++ contracts/shared/CoreController.sol | 20 + contracts/shared/CoreProxy.sol | 102 +- contracts/shared/TransferHelper.sol | 16 + contracts/shared/WithRegistry.sol | 21 + contracts/test/TestCoin.sol | 82 +- .../TestCoinAlternativeImplementation.sol | 92 +- contracts/test/TestCompromisedProduct.sol | 508 ++++++---- contracts/test/TestOracle.sol | 139 +-- contracts/test/TestProduct.sol | 895 +++++++++++------- .../TestRegistryCompromisedController.sol | 66 +- .../test/TestRegistryControllerUpdated.sol | 54 +- contracts/test/TestRiskpool.sol | 80 +- contracts/test/TestTransferFrom.sol | 60 +- contracts/tokens/BundleToken.sol | 50 + contracts/tokens/RiskpoolToken.sol | 3 + 73 files changed, 2775 insertions(+), 10585 deletions(-) delete mode 100644 contracts-christoph2806/Migrations.sol delete mode 100644 contracts-christoph2806/examples/AyiiOracle.sol delete mode 100644 contracts-christoph2806/examples/AyiiProduct.sol delete mode 100644 contracts-christoph2806/examples/AyiiRiskpool.sol delete mode 100644 contracts-christoph2806/examples/mock/ChainlinkOperator.sol delete mode 100644 contracts-christoph2806/examples/mock/ChainlinkToken.sol delete mode 100644 contracts-christoph2806/examples/strings.sol delete mode 100644 contracts-christoph2806/flows/PolicyDefaultFlow.sol delete mode 100644 contracts-christoph2806/flows/README.adoc delete mode 100644 contracts-christoph2806/modules/AccessController.sol delete mode 100644 contracts-christoph2806/modules/BundleController.sol delete mode 100644 contracts-christoph2806/modules/ComponentController.sol delete mode 100644 contracts-christoph2806/modules/LicenseController.sol delete mode 100644 contracts-christoph2806/modules/PolicyController.sol delete mode 100644 contracts-christoph2806/modules/PoolController.sol delete mode 100644 contracts-christoph2806/modules/QueryModule.sol delete mode 100644 contracts-christoph2806/modules/README.adoc delete mode 100644 contracts-christoph2806/modules/RegistryController.sol delete mode 100644 contracts-christoph2806/modules/TreasuryModule.sol delete mode 100644 contracts-christoph2806/services/ComponentOwnerService.sol delete mode 100644 contracts-christoph2806/services/InstanceOperatorService.sol delete mode 100644 contracts-christoph2806/services/InstanceService.sol delete mode 100644 contracts-christoph2806/services/OracleService.sol delete mode 100644 contracts-christoph2806/services/ProductService.sol delete mode 100644 contracts-christoph2806/services/README.adoc delete mode 100644 contracts-christoph2806/services/RiskpoolService.sol delete mode 100644 contracts-christoph2806/shared/CoreController.sol delete mode 100644 contracts-christoph2806/shared/CoreProxy.sol delete mode 100644 contracts-christoph2806/shared/README.adoc delete mode 100644 contracts-christoph2806/shared/TransferHelper.sol delete mode 100644 contracts-christoph2806/shared/WithRegistry.sol delete mode 100644 contracts-christoph2806/test/README.adoc delete mode 100644 contracts-christoph2806/test/TestCoin.sol delete mode 100644 contracts-christoph2806/test/TestCoinAlternativeImplementation.sol delete mode 100644 contracts-christoph2806/test/TestCompromisedProduct.sol delete mode 100644 contracts-christoph2806/test/TestOracle.sol delete mode 100644 contracts-christoph2806/test/TestProduct.sol delete mode 100644 contracts-christoph2806/test/TestRegistryCompromisedController.sol delete mode 100644 contracts-christoph2806/test/TestRegistryControllerUpdated.sol delete mode 100644 contracts-christoph2806/test/TestRiskpool.sol delete mode 100644 contracts-christoph2806/test/TestTransferFrom.sol delete mode 100644 contracts-christoph2806/tokens/BundleToken.sol delete mode 100644 contracts-christoph2806/tokens/README.adoc delete mode 100644 contracts-christoph2806/tokens/RiskpoolToken.sol diff --git a/contracts-christoph2806/Migrations.sol b/contracts-christoph2806/Migrations.sol deleted file mode 100644 index e57c581e..00000000 --- a/contracts-christoph2806/Migrations.sol +++ /dev/null @@ -1,35 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -contract Migrations { - address public owner; - uint256 public last_completed_migration; // solhint-disable-line - - /** - * @dev Constructor function that sets the contract owner to the address of the sender. - */ - constructor() { - owner = msg.sender; - } - - modifier restricted() { - if (msg.sender == owner) _; - } - - /** - * @dev Sets the value of the last completed migration to the given value. - * @param _completed The new value for the last completed migration. - */ - function setCompleted(uint256 _completed) public restricted { - last_completed_migration = _completed; - } - - /** - * @dev Upgrades the Migrations contract to a new address. - * @param _newAddress The address of the new Migrations contract. - */ - function upgrade(address _newAddress) public restricted { - Migrations upgraded = Migrations(_newAddress); - upgraded.setCompleted(last_completed_migration); - } -} diff --git a/contracts-christoph2806/examples/AyiiOracle.sol b/contracts-christoph2806/examples/AyiiOracle.sol deleted file mode 100644 index 8b33bd12..00000000 --- a/contracts-christoph2806/examples/AyiiOracle.sol +++ /dev/null @@ -1,214 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.2; - -import "./strings.sol"; - -import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol"; -import "@etherisc/gif-interface/contracts/components/Oracle.sol"; - -contract AyiiOracle is - Oracle, ChainlinkClient -{ - using strings for bytes32; - using Chainlink for Chainlink.Request; - - mapping(bytes32 /* Chainlink request ID */ => uint256 /* GIF request ID */) public gifRequests; - bytes32 public jobId; - uint256 public payment; - - event LogAyiiRequest(uint256 requestId, bytes32 chainlinkRequestId); - - event LogAyiiFulfill( - uint256 requestId, - bytes32 chainlinkRequestId, - bytes32 projectId, - bytes32 uaiId, - bytes32 cropId, - uint256 aaay - ); - - /** - * @dev Constructor function for the ChainlinkOracle contract. - * @param _name The name of the oracle contract. - * @param _registry The address of the oracle registry contract. - * @param _chainLinkToken The address of the Chainlink token contract. - * @param _chainLinkOperator The address of the Chainlink oracle operator. - * @param _jobId The ID of the Chainlink job to be used. - * @param _payment The payment amount to be sent to the Chainlink oracle operator. - */ - constructor( - bytes32 _name, - address _registry, - address _chainLinkToken, - address _chainLinkOperator, - bytes32 _jobId, - uint256 _payment - ) - Oracle(_name, _registry) - { - updateRequestDetails( - _chainLinkToken, - _chainLinkOperator, - _jobId, - _payment); - } - - /** - * @dev Update request details for Chainlink oracle job. - * @param _chainLinkToken The address of the Chainlink token contract. - * @param _chainLinkOperator The address of the Chainlink oracle operator. - * @param _jobId The job ID for the Chainlink oracle job. - * @param _payment The payment amount for the Chainlink oracle job. - */ - function updateRequestDetails( - address _chainLinkToken, - address _chainLinkOperator, - bytes32 _jobId, - uint256 _payment - ) - public - onlyOwner - { - if (_chainLinkToken != address(0)) { setChainlinkToken(_chainLinkToken); } - if (_chainLinkOperator != address(0)) { setChainlinkOracle(_chainLinkOperator); } - - jobId = _jobId; - payment = _payment; - } - - /** - * @dev Sends a Chainlink request to retrieve data for a specific GIF request. - * @param gifRequestId The ID of the GIF request. - * @param input The encoded input data containing the project ID, UAI ID, and crop ID. - * The input must be in the following format: abi.encode([bytes32 projectId, bytes32 uaiId, bytes32 cropId]). - * @notice This function emits 1 events: - * - LogAyiiRequest - */ - function request(uint256 gifRequestId, bytes calldata input) - external override - onlyQuery - { - Chainlink.Request memory request_ = buildChainlinkRequest( - jobId, - address(this), - this.fulfill.selector - ); - - ( - bytes32 projectId, - bytes32 uaiId, - bytes32 cropId - ) = abi.decode(input, (bytes32, bytes32, bytes32)); - - request_.add("projectId", projectId.toB32String()); - request_.add("uaiId", uaiId.toB32String()); - request_.add("cropId", cropId.toB32String()); - - bytes32 chainlinkRequestId = sendChainlinkRequest(request_, payment); - - gifRequests[chainlinkRequestId] = gifRequestId; - emit LogAyiiRequest(gifRequestId, chainlinkRequestId); - } - - /** - * @dev This function is used to fulfill a Chainlink request for the given parameters. - * @param chainlinkRequestId The ID of the Chainlink request to fulfill. - * @param projectId The ID of the project. - * @param uaiId The ID of the UAI. - * @param cropId The ID of the crop. - * @param aaay The amount of AAAY. - * @notice This function emits 1 events: - * - LogAyiiFulfill - */ - function fulfill( - bytes32 chainlinkRequestId, - bytes32 projectId, - bytes32 uaiId, - bytes32 cropId, - uint256 aaay - ) - public recordChainlinkFulfillment(chainlinkRequestId) - { - uint256 gifRequest = gifRequests[chainlinkRequestId]; - bytes memory data = abi.encode(projectId, uaiId, cropId, aaay); - _respond(gifRequest, data); - - delete gifRequests[chainlinkRequestId]; - emit LogAyiiFulfill(gifRequest, chainlinkRequestId, projectId, uaiId, cropId, aaay); - } - - /** - * @dev Cancels a Chainlink request. - * @param requestId The ID of the request to cancel. - */ - function cancel(uint256 requestId) - external override - onlyOwner - { - // TODO mid/low priority - // cancelChainlinkRequest(_requestId, _payment, _callbackFunctionId, _expiration); - } - - // only used for testing of chainlink operator - /** - * @dev Encodes the parameters required for a Chainlink request fulfillment. - * @param chainlinkRequestId The ID of the Chainlink request. - * @param projectId The ID of the project. - * @param uaiId The ID of the UAI. - * @param cropId The ID of the crop. - * @param aaay The value of aaay. - * @return parameterData The encoded parameter data. - */ - function encodeFulfillParameters( - bytes32 chainlinkRequestId, - bytes32 projectId, - bytes32 uaiId, - bytes32 cropId, - uint256 aaay - ) - external - pure - returns(bytes memory parameterData) - { - return abi.encode( - chainlinkRequestId, - projectId, - uaiId, - cropId, - aaay - ); - } - - /** - * @dev Returns the Chainlink Job ID associated with this contract. - * @return chainlinkJobId The Chainlink Job ID as a bytes32 variable. - */ - function getChainlinkJobId() external view returns(bytes32 chainlinkJobId) { - return jobId; - } - - /** - * @dev Returns the payment amount for a Chainlink oracle request. - * @return paymentAmount The payment amount in uint256. - */ - function getChainlinkPayment() external view returns(uint256 paymentAmount) { - return payment; - } - - /** - * @dev Returns the address of the Chainlink token. - * @return linkTokenAddress The address of the Chainlink token. - */ - function getChainlinkToken() external view returns(address linkTokenAddress) { - return chainlinkTokenAddress(); - } - - /** - * @dev Returns the address of the Chainlink operator. - * @return operator The address of the Chainlink operator. - */ - function getChainlinkOperator() external view returns(address operator) { - return chainlinkOracleAddress(); - } -} - diff --git a/contracts-christoph2806/examples/AyiiProduct.sol b/contracts-christoph2806/examples/AyiiProduct.sol deleted file mode 100644 index 8f3925fd..00000000 --- a/contracts-christoph2806/examples/AyiiProduct.sol +++ /dev/null @@ -1,829 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.2; - -import "../shared/TransferHelper.sol"; - -import "@openzeppelin/contracts/access/AccessControl.sol"; -import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; -import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; - -import "@etherisc/gif-interface/contracts/components/Product.sol"; -import "../modules/PolicyController.sol"; - -import "../modules/AccessController.sol"; - -contract AyiiProduct is - Product, - AccessControl, - Initializable -{ - using EnumerableSet for EnumerableSet.Bytes32Set; - - bytes32 public constant NAME = "AreaYieldIndexProduct"; - bytes32 public constant VERSION = "0.1"; - bytes32 public constant POLICY_FLOW = "PolicyDefaultFlow"; - - bytes32 public constant INSURER_ROLE = keccak256("INSURER"); - - uint256 public constant PERCENTAGE_MULTIPLIER = 2**24; - - uint256 public constant AAAY_MIN = 0; - uint256 public constant AAAY_MAX = 15; - - uint256 public constant RISK_APH_MAX = 15 * PERCENTAGE_MULTIPLIER; - uint256 public constant RISK_EXIT_MAX = PERCENTAGE_MULTIPLIER / 5; - uint256 public constant RISK_TSI_AT_EXIT_MIN = PERCENTAGE_MULTIPLIER / 2; - - // group policy data structure - struct Risk { - bytes32 id; // hash over projectId, uaiId, cropId - bytes32 projectId; // assumption: this makes risk unique over aggregarors/customers/seasons - bytes32 uaiId; // region id - bytes32 cropId; // crop id - uint256 trigger; // at and above this harvest ratio no payout is made - uint256 exit; // at and below this harvest ration the max payout is made - uint256 tsi; // total sum insured at exit: max . payout percentage at exit - uint256 aph; // average historical area yield for this crop and region - uint256 requestId; - bool requestTriggered; - uint256 responseAt; - uint256 aaay; // average area yield for current season for this crop and region - uint256 payoutPercentage; // payout percentage for this year for this crop and region - uint256 createdAt; - uint256 updatedAt; - } - - uint256 private _oracleId; - IERC20 private _token; - - bytes32 [] private _riskIds; - mapping(bytes32 /* riskId */ => Risk) private _risks; - mapping(bytes32 /* riskId */ => EnumerableSet.Bytes32Set /* processIds */) private _policies; - bytes32 [] private _applications; // useful for debugging, might need to get rid of this - - event LogAyiiPolicyApplicationCreated(bytes32 policyId, address policyHolder, uint256 premiumAmount, uint256 sumInsuredAmount); - event LogAyiiPolicyCreated(bytes32 policyId, address policyHolder, uint256 premiumAmount, uint256 sumInsuredAmount); - event LogAyiiRiskDataCreated(bytes32 riskId, bytes32 productId, bytes32 uaiId, bytes32 cropId); - event LogAyiiRiskDataBeforeAdjustment(bytes32 riskId, uint256 trigger, uint256 exit, uint256 tsi, uint aph); - event LogAyiiRiskDataAfterAdjustment(bytes32 riskId, uint256 trigger, uint256 exit, uint256 tsi, uint aph); - event LogAyiiRiskDataRequested(uint256 requestId, bytes32 riskId, bytes32 projectId, bytes32 uaiId, bytes32 cropId); - event LogAyiiRiskDataReceived(uint256 requestId, bytes32 riskId, uint256 aaay); - event LogAyiiRiskDataRequestCancelled(bytes32 processId, uint256 requestId); - event LogAyiiRiskProcessed(bytes32 riskId, uint256 policies); - event LogAyiiPolicyProcessed(bytes32 policyId); - event LogAyiiClaimCreated(bytes32 policyId, uint256 claimId, uint256 payoutAmount); - event LogAyiiPayoutCreated(bytes32 policyId, uint256 payoutAmount); - - event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); - event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); - event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); - - /** - * @dev Constructor function for creating a new instance of a Product contract. - * @param productName Name of the product. - * @param registry Address of the registry contract. - * @param token Address of the token contract. - * @param oracleId ID of the oracle. - * @param riskpoolId ID of the risk pool. - * @param insurer Address of the insurer. - */ - constructor( - bytes32 productName, - address registry, - address token, - uint256 oracleId, - uint256 riskpoolId, - address insurer - ) - Product(productName, token, POLICY_FLOW, riskpoolId, registry) - { - _token = IERC20(token); - _oracleId = oracleId; - - _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); - _setupRole(INSURER_ROLE, insurer); - } - - /** - * @dev Creates a new risk for a project, UAI and crop with the specified parameters. - * @param projectId The ID of the project associated with the risk. - * @param uaiId The ID of the UAI associated with the risk. - * @param cropId The ID of the crop associated with the risk. - * @param trigger The trigger value for the risk. - * @param exit The exit value for the risk. - * @param tsi The total sum insured for the risk. - * @param aph The area per hectare for the crop. - * @return riskId The ID of the newly created risk. - * @notice This function emits 1 events: - * - LogAyiiRiskDataCreated - */ - function createRisk( - bytes32 projectId, - bytes32 uaiId, - bytes32 cropId, - uint256 trigger, - uint256 exit, - uint256 tsi, - uint256 aph - ) - external - onlyRole(INSURER_ROLE) - returns(bytes32 riskId) - { - _validateRiskParameters(trigger, exit, tsi, aph); - - riskId = getRiskId(projectId, uaiId, cropId); - _riskIds.push(riskId); - - Risk storage risk = _risks[riskId]; - require(risk.createdAt == 0, "ERROR:AYI-001:RISK_ALREADY_EXISTS"); - - risk.id = riskId; - risk.projectId = projectId; - risk.uaiId = uaiId; - risk.cropId = cropId; - risk.trigger = trigger; - risk.exit = exit; - risk.tsi = tsi; - risk.aph = aph; - risk.createdAt = block.timestamp; // solhint-disable-line - risk.updatedAt = block.timestamp; // solhint-disable-line - - emit LogAyiiRiskDataCreated( - risk.id, - risk.projectId, - risk.uaiId, - risk.cropId); - } - - /** - * @dev Allows the insurer to adjust the parameters of an existing risk. - * @param riskId The ID of the risk to be adjusted. - * @param trigger The new trigger value for the risk. - * @param exit The new exit value for the risk. - * @param tsi The new total sum insured value for the risk. - * @param aph The new annual premium value for the risk. - * - * Emits a LogAyiiRiskDataBeforeAdjustment event with the risk's data before adjustment. - * Emits a LogAyiiRiskDataAfterAdjustment event with the risk's data after adjustment. - * - * Requirements: - * - The caller must have the INSURER_ROLE. - * - The risk must exist. - * - The risk must have no policies associated with it. - * @notice This function emits 2 events: - * - LogAyiiRiskDataAfterAdjustment - * - LogAyiiRiskDataBeforeAdjustment - */ - function adjustRisk( - bytes32 riskId, - uint256 trigger, - uint256 exit, - uint256 tsi, - uint256 aph - ) - external - onlyRole(INSURER_ROLE) - { - _validateRiskParameters(trigger, exit, tsi, aph); - - Risk storage risk = _risks[riskId]; - require(risk.createdAt > 0, "ERROR:AYI-002:RISK_UNKNOWN"); - require(EnumerableSet.length(_policies[riskId]) == 0, "ERROR:AYI-003:RISK_WITH_POLICIES_NOT_ADJUSTABLE"); - - emit LogAyiiRiskDataBeforeAdjustment( - risk.id, - risk.trigger, - risk.exit, - risk.tsi, - risk.aph); - - risk.trigger = trigger; - risk.exit = exit; - risk.tsi = tsi; - risk.aph = aph; - - emit LogAyiiRiskDataAfterAdjustment( - risk.id, - risk.trigger, - risk.exit, - risk.tsi, - risk.aph); - } - - /** - * @dev Calculates the unique risk ID for a project, UAI and crop. - * @param projectId The bytes32 ID of the project. - * @param uaiId The bytes32 ID of the UAI. - * @param cropId The bytes32 ID of the crop. - * @return riskId The bytes32 ID of the unique risk. - */ - function getRiskId( - bytes32 projectId, - bytes32 uaiId, - bytes32 cropId - ) - public - pure - returns(bytes32 riskId) - { - riskId = keccak256(abi.encode(projectId, uaiId, cropId)); - } - - - /** - * @dev Creates a new policy application for a given policy holder and risk. - * @param policyHolder The address of the policy holder. - * @param premium The amount of premium to be paid for the policy. - * @param sumInsured The amount of coverage provided by the policy. - * @param riskId The unique identifier of the risk associated with the policy. - * @return processId The unique identifier of the newly created policy application. - * @notice This function emits 2 events: - * - LogAyiiPolicyApplicationCreated - * - LogAyiiPolicyCreated - */ - function applyForPolicy( - address policyHolder, - uint256 premium, - uint256 sumInsured, - bytes32 riskId - ) - external - onlyRole(INSURER_ROLE) - returns(bytes32 processId) - { - Risk storage risk = _risks[riskId]; - require(risk.createdAt > 0, "ERROR:AYI-004:RISK_UNDEFINED"); - require(policyHolder != address(0), "ERROR:AYI-005:POLICY_HOLDER_ZERO"); - - bytes memory metaData = ""; - bytes memory applicationData = abi.encode(riskId); - - processId = _newApplication( - policyHolder, - premium, - sumInsured, - metaData, - applicationData); - - _applications.push(processId); - - emit LogAyiiPolicyApplicationCreated( - processId, - policyHolder, - premium, - sumInsured); - - bool success = _underwrite(processId); - - if (success) { - EnumerableSet.add(_policies[riskId], processId); - - emit LogAyiiPolicyCreated( - processId, - policyHolder, - premium, - sumInsured); - } - } - - /** - * @dev Allows the INSURER_ROLE to underwrite an insurance application for a given processId. - * @param processId The unique identifier of the insurance application. - * @return success A boolean indicating whether the underwriting process was successful or not. - * - * Emits a LogAyiiPolicyCreated event if the underwriting process is successful, containing the processId, the owner of the application, the premium amount and the sum insured amount. - * @notice This function emits 1 events: - * - LogAyiiPolicyCreated - */ - function underwrite( - bytes32 processId - ) - external - onlyRole(INSURER_ROLE) - returns(bool success) - { - // ensure the application for processId exists - _getApplication(processId); - success = _underwrite(processId); - - if (success) { - IPolicy.Application memory application = _getApplication(processId); - IPolicy.Metadata memory metadata = _getMetadata(processId); - emit LogAyiiPolicyCreated( - processId, - metadata.owner, - application.premiumAmount, - application.sumInsuredAmount); - } - } - - /** - * @dev Collects the premium for a specific policy. - * @param policyId The ID of the policy for which to collect the premium. - * @return success A boolean indicating whether the premium was collected successfully. - * @return fee The fee collected by the insurer. - * @return netPremium The net premium collected by the insurer after deducting the fee. - */ - function collectPremium(bytes32 policyId) - external - onlyRole(INSURER_ROLE) - returns(bool success, uint256 fee, uint256 netPremium) - { - (success, fee, netPremium) = _collectPremium(policyId); - } - - /* premium collection always moves funds from the customers wallet to the riskpool wallet. - * to stick to this principle: this method implements a two part transferFrom. - * the 1st transfer moves the specified amount from the 'from' sender address to the customer - * the 2nd transfer transfers the amount from the customer to the riskpool wallet (and some - * fees to the instance wallet) - */ - /** - * @dev Collects premium from a policyholder for a specific policy. - * @param policyId The ID of the policy for which premium is being collected. - * @param from The address of the policyholder from whom the premium is being collected. - * @param amount The amount of premium being collected. - * @return success A boolean indicating whether the premium collection was successful or not. - * @return fee The fee charged for the premium collection. - * @return netPremium The net premium collected after deducting the fee. - */ - function collectPremium(bytes32 policyId, address from, uint256 amount) - external - onlyRole(INSURER_ROLE) - returns(bool success, uint256 fee, uint256 netPremium) - { - IPolicy.Metadata memory metadata = _getMetadata(policyId); - - if (from != metadata.owner) { - bool transferSuccessful = TransferHelper.unifiedTransferFrom(_token, from, metadata.owner, amount); - - if (!transferSuccessful) { - return (transferSuccessful, 0, amount); - } - } - - (success, fee, netPremium) = _collectPremium(policyId, amount); - } - - /** - * @dev Adjusts the premium and sum insured amounts for a given insurance process. - * @param processId The unique identifier of the insurance process. - * @param expectedPremiumAmount The expected premium amount for the insurance process. - * @param sumInsuredAmount The sum insured amount for the insurance process. - */ - function adjustPremiumSumInsured( - bytes32 processId, - uint256 expectedPremiumAmount, - uint256 sumInsuredAmount - ) - external - onlyRole(INSURER_ROLE) - { - _adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount); - } - - /** - * @dev Triggers an oracle request for a specific process ID. - * @param processId The ID of the process to trigger the oracle request for. - * @return requestId The ID of the oracle request triggered. - * - * Emits a LogAyiiRiskDataRequested event with the requestId, risk ID, project ID, UAI ID and crop ID. - * - * Requirements: - * - Caller must have the INSURER_ROLE. - * - The risk must be defined. - * - The oracle must not have already responded to the request. - * @notice This function emits 1 events: - * - LogAyiiRiskDataRequested - */ - function triggerOracle(bytes32 processId) - external - onlyRole(INSURER_ROLE) - returns(uint256 requestId) - { - Risk storage risk = _risks[_getRiskId(processId)]; - require(risk.createdAt > 0, "ERROR:AYI-010:RISK_UNDEFINED"); - require(risk.responseAt == 0, "ERROR:AYI-011:ORACLE_ALREADY_RESPONDED"); - - bytes memory queryData = abi.encode( - risk.projectId, - risk.uaiId, - risk.cropId - ); - - requestId = _request( - processId, - queryData, - "oracleCallback", - _oracleId - ); - - risk.requestId = requestId; - risk.requestTriggered = true; - risk.updatedAt = block.timestamp; // solhint-disable-line - - emit LogAyiiRiskDataRequested( - risk.requestId, - risk.id, - risk.projectId, - risk.uaiId, - risk.cropId); - } - - /** - * @dev Allows the insurer to cancel a specific oracle request for a given process ID. - * @param processId The unique process ID associated with the risk. - * - * Emits a LogAyiiRiskDataRequestCancelled event indicating the cancellation of the oracle request. - * - * Requirements: - * - The caller must have the INSURER_ROLE. - * - The risk must exist in the _risks mapping. - * - The oracle request must have been triggered for the risk. - * - There must not be an existing callback for the oracle request. - * @notice This function emits 1 events: - * - LogAyiiRiskDataRequestCancelled - */ - function cancelOracleRequest(bytes32 processId) - external - onlyRole(INSURER_ROLE) - { - Risk storage risk = _risks[_getRiskId(processId)]; - require(risk.createdAt > 0, "ERROR:AYI-012:RISK_UNDEFINED"); - require(risk.requestTriggered, "ERROR:AYI-013:ORACLE_REQUEST_NOT_FOUND"); - require(risk.responseAt == 0, "ERROR:AYI-014:EXISTING_CALLBACK"); - - _cancelRequest(risk.requestId); - - // reset request id to allow to trigger again - risk.requestTriggered = false; - risk.updatedAt = block.timestamp; // solhint-disable-line - - emit LogAyiiRiskDataRequestCancelled(processId, risk.requestId); - } - - /** - * @dev Callback function for the oracle to update the risk data for a project. - * @param requestId The ID of the oracle request. - * @param processId The ID of the oracle process. - * @param responseData The response data from the oracle, which is expected to be an ABI-encoded tuple containing the following fields: - * - projectId: The ID of the project. - * - uaiId: The ID of the UAI. - * - cropId: The ID of the crop. - * - aaay: The AAAY value for the project. - * @notice This function emits 1 events: - * - LogAyiiRiskDataReceived - */ - function oracleCallback( - uint256 requestId, - bytes32 processId, - bytes calldata responseData - ) - external - onlyOracle - { - ( - bytes32 projectId, - bytes32 uaiId, - bytes32 cropId, - uint256 aaay - ) = abi.decode(responseData, (bytes32, bytes32, bytes32, uint256)); - - bytes32 riskId = _getRiskId(processId); - require(riskId == getRiskId(projectId, uaiId, cropId), "ERROR:AYI-020:RISK_ID_MISMATCH"); - - Risk storage risk = _risks[riskId]; - require(risk.createdAt > 0, "ERROR:AYI-021:RISK_UNDEFINED"); - require(risk.requestId == requestId, "ERROR:AYI-022:REQUEST_ID_MISMATCH"); - require(risk.responseAt == 0, "ERROR:AYI-023:EXISTING_CALLBACK"); - - require(aaay >= (AAAY_MIN * PERCENTAGE_MULTIPLIER) - && aaay < (AAAY_MAX * PERCENTAGE_MULTIPLIER), - "ERROR:AYI-024:AAAY_INVALID"); - - // update risk using aaay info - risk.aaay = aaay; - risk.payoutPercentage = calculatePayoutPercentage( - risk.tsi, - risk.trigger, - risk.exit, - risk.aph, - risk.aaay - ); - - risk.responseAt = block.timestamp; // solhint-disable-line - risk.updatedAt = block.timestamp; // solhint-disable-line - - emit LogAyiiRiskDataReceived( - requestId, - riskId, - aaay); - } - - /** - * @dev Process a batch of policies for a given risk. - * @param riskId ID of the risk to process policies for. - * @param batchSize Number of policies to process in a single batch. - * @return processedPolicies An array of policy IDs that were processed. - * Emits a LogAyiiRiskProcessed event with the processed batch size. - * Requirements: - * - Caller must have the INSURER_ROLE. - * - The risk must have a response from the oracle. - * - The policies set for the given risk must not be empty. - * - If batchSize is 0, processes all policies in a single batch. - * - If batchSize is greater than the number of policies, processes all policies in a single batch. - * - If batchSize is less than the number of policies, processes batchSize policies in a single batch. - * @notice This function emits 2 events: - * - LogAyiiRiskProcessed - * - LogAyiiRiskProcessed - */ - function processPoliciesForRisk(bytes32 riskId, uint256 batchSize) - external - onlyRole(INSURER_ROLE) - returns(bytes32 [] memory processedPolicies) - { - Risk memory risk = _risks[riskId]; - require(risk.responseAt > 0, "ERROR:AYI-030:ORACLE_RESPONSE_MISSING"); - - uint256 elements = EnumerableSet.length(_policies[riskId]); - if (elements == 0) { - emit LogAyiiRiskProcessed(riskId, 0); - return new bytes32[](0); - } - - if (batchSize == 0) { batchSize = elements; } - else { batchSize = min(batchSize, elements); } - - processedPolicies = new bytes32[](batchSize); - uint256 elementIdx = elements - 1; - - for (uint256 i = 0; i < batchSize; i++) { - // grab and process the last policy - bytes32 policyId = EnumerableSet.at(_policies[riskId], elementIdx - i); - processPolicy(policyId); - processedPolicies[i] = policyId; - } - - emit LogAyiiRiskProcessed(riskId, batchSize); - } - - /** - * @dev Processes a policy by calculating the claim amount, creating a new claim, and emitting events for the claim and payout. - * @param policyId The ID of the policy to be processed. - * @notice This function emits 3 events: - * - LogAyiiPayoutCreated - * - LogAyiiClaimCreated - * - LogAyiiPolicyProcessed - */ - function processPolicy(bytes32 policyId) - public - onlyRole(INSURER_ROLE) - { - IPolicy.Application memory application = _getApplication(policyId); - bytes32 riskId = abi.decode(application.data, (bytes32)); - Risk memory risk = _risks[riskId]; - - require(risk.id == riskId, "ERROR:AYI-031:RISK_ID_INVALID"); - require(risk.responseAt > 0, "ERROR:AYI-032:ORACLE_RESPONSE_MISSING"); - require(EnumerableSet.contains(_policies[riskId], policyId), "ERROR:AYI-033:POLICY_FOR_RISK_UNKNOWN"); - - EnumerableSet.remove(_policies[riskId], policyId); - - - uint256 claimAmount = calculatePayout( - risk.payoutPercentage, - application.sumInsuredAmount); - - uint256 claimId = _newClaim(policyId, claimAmount, ""); - emit LogAyiiClaimCreated(policyId, claimId, claimAmount); - - if (claimAmount > 0) { - uint256 payoutAmount = claimAmount; - _confirmClaim(policyId, claimId, payoutAmount); - - uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, ""); - _processPayout(policyId, payoutId); - - emit LogAyiiPayoutCreated(policyId, payoutAmount); - } - else { - _declineClaim(policyId, claimId); - _closeClaim(policyId, claimId); - } - - _expire(policyId); - _close(policyId); - - emit LogAyiiPolicyProcessed(policyId); - } - - /** - * @dev Calculates the payout amount based on the payout percentage and sum insured amount. - * @param payoutPercentage The percentage of the sum insured amount that will be paid out. - * @param sumInsuredAmount The total amount that is insured. - * @return payoutAmount The calculated payout amount. - */ - function calculatePayout(uint256 payoutPercentage, uint256 sumInsuredAmount) - public - pure - returns(uint256 payoutAmount) - { - payoutAmount = payoutPercentage * sumInsuredAmount / PERCENTAGE_MULTIPLIER; - } - - /** - * @dev Calculates the payout percentage based on the given parameters. - * @param tsi The maximum payout percentage. - * @param trigger The harvest ratio at and above which no payout is made. - * @param exit The harvest ratio at and below which the maximum payout is made. - * @param aph The average historical yield. - * @param aaay This season's yield. - * @return payoutPercentage The calculated payout percentage. - */ - function calculatePayoutPercentage( - uint256 tsi, // max payout percentage - uint256 trigger,// at and above this harvest ratio no payout is made - uint256 exit, // at and below this harvest ration the max payout is made - uint256 aph, // average historical yield - uint256 aaay // this season's yield - ) - public - pure - returns(uint256 payoutPercentage) - { - // this year's harvest at or above threshold for any payouts - if (aaay * PERCENTAGE_MULTIPLIER >= aph * trigger) { - return 0; - } - - // this year's harvest at or below threshold for maximal payout - if (aaay * PERCENTAGE_MULTIPLIER <= aph * exit) { - return tsi; - } - - // calculated payout between exit and trigger - uint256 harvestRatio = PERCENTAGE_MULTIPLIER * aaay / aph; - payoutPercentage = tsi * (trigger - harvestRatio) / (trigger - exit); - } - - /** - * @dev Returns the percentage multiplier used in calculations. - * @return multiplier The value of the percentage multiplier. - */ - function getPercentageMultiplier() external pure returns(uint256 multiplier) { - return PERCENTAGE_MULTIPLIER; - } - - /** - * @dev Returns the minimum value between two uint256 numbers. - * @param a The first uint256 number to compare. - * @param b The second uint256 number to compare. - * @return The minimum value between a and b. - */ - function min(uint256 a, uint256 b) private pure returns (uint256) { - return a <= b ? a : b; - } - - - /** - * @dev Returns the number of risk ids in the _riskIds array. - * @return The length of the _riskIds array. - */ - function risks() external view returns(uint256) { return _riskIds.length; } - /** - * @dev Returns the risk ID at the given index. - * @param idx The index of the risk ID to retrieve. - * @return riskId The risk ID at the given index. - */ - function getRiskId(uint256 idx) external view returns(bytes32 riskId) { return _riskIds[idx]; } - /** - * @dev Returns the Risk struct associated with the given riskId. - * @param riskId The unique identifier of the Risk to retrieve. - * @return risk The Risk struct containing the details of the requested risk. - */ - function getRisk(bytes32 riskId) external view returns(Risk memory risk) { return _risks[riskId]; } - - /** - * @dev Returns the number of applications submitted. - * @return applicationCount The number of applications submitted. - */ - function applications() external view returns(uint256 applicationCount) { - return _applications.length; - } - - /** - * @dev Returns the process ID of a specific application. - * @param applicationIdx The index of the application in the array. - * @return processId The process ID of the application. - */ - function getApplicationId(uint256 applicationIdx) external view returns(bytes32 processId) { - return _applications[applicationIdx]; - } - - /** - * @dev Returns the number of policies for a given risk ID. - * @param riskId The ID of the risk. - * @return policyCount The number of policies for the given risk ID. - */ - function policies(bytes32 riskId) external view returns(uint256 policyCount) { - return EnumerableSet.length(_policies[riskId]); - } - - /** - * @dev Returns the processId of the policy at the specified index in the list of policies associated with the given riskId. - * @param riskId The unique identifier of the risk. - * @param policyIdx The index of the policy in the list of policies associated with the given riskId. - * @return processId The unique identifier of the process associated with the policy at the specified index. - */ - function getPolicyId(bytes32 riskId, uint256 policyIdx) external view returns(bytes32 processId) { - return EnumerableSet.at(_policies[riskId], policyIdx); - } - - /** - * @dev Returns the data structure of the application. - * @return dataStructure A string representing the data structure of the application, which consists of a single parameter: - * - riskId: A bytes32 value representing the unique identifier of the risk. - */ - function getApplicationDataStructure() external override pure returns(string memory dataStructure) { - return "(bytes32 riskId)"; - } - - - /** - * @dev Validates the risk parameters for a new position. - * @param trigger The trigger percentage for the new position. - * @param exit The exit percentage for the new position. - * @param tsi The TSI (Time Since Inception) for the new position. - * @param aph The APH (Annual Premium Hours) for the new position. - * - */ - function _validateRiskParameters( - uint256 trigger, - uint256 exit, - uint256 tsi, - uint256 aph - ) - internal - { - require(trigger <= PERCENTAGE_MULTIPLIER, "ERROR:AYI-040:RISK_TRIGGER_TOO_LARGE"); - require(trigger > exit, "ERROR:AYI-041:RISK_TRIGGER_NOT_LARGER_THAN_EXIT"); - require(exit <= RISK_EXIT_MAX, "ERROR:AYI-042:RISK_EXIT_TOO_LARGE"); - require(tsi >= RISK_TSI_AT_EXIT_MIN , "ERROR:AYI-043:RISK_TSI_TOO_SMALL"); - require(tsi <= PERCENTAGE_MULTIPLIER , "ERROR:AYI-044:RISK_TSI_TOO_LARGE"); - require(tsi + exit <= PERCENTAGE_MULTIPLIER, "ERROR:AYI-045:RISK_TSI_EXIT_SUM_TOO_LARGE"); - require(aph > 0, "ERROR:AYI-046:RISK_APH_ZERO_INVALID"); - require(aph <= RISK_APH_MAX, "ERROR:AYI-047:RISK_APH_TOO_LARGE"); - } - - /** - * @dev Processes a policy by calculating the claim amount, creating a claim, confirming it, creating a payout, processing it, and emitting events accordingly. - * @param policyId The ID of the policy to be processed. - * @param risk The Risk struct containing the payout percentage. - * @notice This function emits 3 events: - * - LogAyiiPolicyProcessed - * - LogAyiiPayoutCreated - * - LogAyiiClaimCreated - */ - function _processPolicy(bytes32 policyId, Risk memory risk) - internal - { - IPolicy.Application memory application - = _getApplication(policyId); - - uint256 claimAmount = calculatePayout( - risk.payoutPercentage, - application.sumInsuredAmount); - - uint256 claimId = _newClaim(policyId, claimAmount, ""); - emit LogAyiiClaimCreated(policyId, claimId, claimAmount); - - if (claimAmount > 0) { - uint256 payoutAmount = claimAmount; - _confirmClaim(policyId, claimId, payoutAmount); - - uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, ""); - _processPayout(policyId, payoutId); - - emit LogAyiiPayoutCreated(policyId, payoutAmount); - } - else { - _declineClaim(policyId, claimId); - _closeClaim(policyId, claimId); - } - - emit LogAyiiPolicyProcessed(policyId); - } - - /** - * @dev Returns the risk ID associated with a given process ID. - * @param processId The process ID for which to retrieve the risk ID. - * @return riskId The risk ID associated with the given process ID. - */ - function _getRiskId(bytes32 processId) private view returns(bytes32 riskId) { - IPolicy.Application memory application = _getApplication(processId); - (riskId) = abi.decode(application.data, (bytes32)); - } -} \ No newline at end of file diff --git a/contracts-christoph2806/examples/AyiiRiskpool.sol b/contracts-christoph2806/examples/AyiiRiskpool.sol deleted file mode 100644 index 87385ca7..00000000 --- a/contracts-christoph2806/examples/AyiiRiskpool.sol +++ /dev/null @@ -1,87 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@openzeppelin/contracts/access/AccessControl.sol"; - -import "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol"; -import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; - -contract AyiiRiskpool is - BasicRiskpool, - AccessControl -{ - // 0x5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d935 - bytes32 public constant INVESTOR_ROLE = keccak256("INVESTOR"); - - // restricts the maximal sum of sum insured that are secured by gthe riskpool - uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24; - - /** - * @dev Constructor for creating a new Riskpool with the given parameters. - * @param name The name of the Riskpool. - * @param collateralization The collateralization percentage of the Riskpool. - * @param erc20Token The address of the ERC20 token used for collateral. - * @param wallet The address of the wallet where the collateral will be held. - * @param registry The address of the registry contract. - */ - constructor( - bytes32 name, - uint256 collateralization, - address erc20Token, - address wallet, - address registry - ) - BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry) - { - - _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); - } - - - /** - * @dev Grants the INVESTOR_ROLE to the specified address. - * @param investor The address to grant the INVESTOR_ROLE to. - */ - function grantInvestorRole(address investor) - external - onlyOwner - { - _setupRole(INVESTOR_ROLE, investor); - } - - - /** - * @dev Creates a new bundle with the specified filter and initial amount. - * @param filter The filter to be applied to the bundle. - * @param initialAmount The initial amount of tokens to be deposited into the bundle. - * @return bundleId The ID of the newly created bundle. - */ - function createBundle(bytes memory filter, uint256 initialAmount) - public override - onlyRole(INVESTOR_ROLE) - returns(uint256 bundleId) - { - bundleId = super.createBundle(filter, initialAmount); - } - - - // trivial implementation that matches every application - /** - * @dev Checks if a given bundle matches a given application. - * @param bundle The bundle to check. - * @param application The application to match against. - * @return isMatching Returns true if the bundle matches the application. - */ - function bundleMatchesApplication( - IBundle.Bundle memory bundle, - IPolicy.Application memory application - ) - public override - pure - returns(bool isMatching) - { - isMatching = true; - } - -} \ No newline at end of file diff --git a/contracts-christoph2806/examples/mock/ChainlinkOperator.sol b/contracts-christoph2806/examples/mock/ChainlinkOperator.sol deleted file mode 100644 index 9acc9a0a..00000000 --- a/contracts-christoph2806/examples/mock/ChainlinkOperator.sol +++ /dev/null @@ -1,379 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.2; - -import "@openzeppelin/contracts/access/Ownable.sol"; - -contract ChainlinkOperator is - Ownable -{ - - struct Commitment { - bytes31 paramsHash; - uint8 dataVersion; - } - - uint256 public constant getExpiryTime = 5 minutes; - uint256 private constant MAXIMUM_DATA_VERSION = 256; - uint256 private constant MINIMUM_CONSUMER_GAS_LIMIT = 400000; - - event AuthorizedSendersChanged(address[] senders, address changedBy); - - event OracleRequest( - bytes32 indexed specId, - address requester, - bytes32 requestId, - uint256 payment, - address callbackAddr, - bytes4 callbackFunctionId, - uint256 cancelExpiration, - uint256 dataVersion, - bytes data - ); - - event CancelOracleRequest(bytes32 indexed requestId); - - event OracleResponse(bytes32 indexed requestId); - - // contract variables - mapping(address => bool) private s_authorizedSenders; - address[] private s_authorizedSenderList; - - mapping(bytes32 => Commitment) private s_commitments; - - /** - * @notice prevents non-authorized addresses from calling this method - */ - modifier validateAuthorizedSenderSetter() { - require(_canSetAuthorizedSenders(), "Cannot set authorized senders"); - _; - } - - /** - * @dev Constructor function that inherits from the Ownable contract. - */ - constructor() Ownable() { } - - /** - * @notice Sets the fulfillment permission for a given node. Use `true` to allow, `false` to disallow. - * @param senders The addresses of the authorized Chainlink node - */ - /** - * @dev Sets the authorized senders for the contract. Only the authorized sender setter can call this function. - * @param senders An array of addresses to be set as authorized senders. - * - * Requirements: - * - The length of the senders array must be greater than 0. - * - * Emits an {AuthorizedSendersChanged} event indicating the updated list of authorized senders and the address of the sender who called the function. - * @notice This function emits 1 events: - * - AuthorizedSendersChanged - */ - function setAuthorizedSenders(address[] calldata senders) - external - validateAuthorizedSenderSetter - { - require(senders.length > 0, "Must have at least 1 authorized sender"); - // Set previous authorized senders to false - uint256 authorizedSendersLength = s_authorizedSenderList.length; - for (uint256 i = 0; i < authorizedSendersLength; i++) { - s_authorizedSenders[s_authorizedSenderList[i]] = false; - } - // Set new to true - for (uint256 i = 0; i < senders.length; i++) { - s_authorizedSenders[senders[i]] = true; - } - // Replace list - s_authorizedSenderList = senders; - emit AuthorizedSendersChanged(senders, msg.sender); - } - - - /** - * @dev Returns an array of authorized senders. - * @return An array of addresses representing the authorized senders. - */ - function getAuthorizedSenders() - external - view - returns(address [] memory) - { - return s_authorizedSenderList; - } - - /** - * @notice Called when LINK is sent to the contract via `transferAndCall` - * @dev The data payload's first 2 words will be overwritten by the `sender` and `amount` - * values to ensure correctness. Calls oracleRequest. - * @param sender Address of the sender - * @param amount Amount of LINK sent (specified in wei) - * @param data Payload of the transaction - */ - /** - * @dev This function is called when a token transfer occurs. It ensures that the correct sender and amount are passed in the data parameter, and then calls the oracleRequest function via delegatecall. - * @param sender The address of the token sender. - * @param amount The amount of tokens being sent. - * @param data The data payload for the token transfer, which must include the oracleRequest function signature and any additional data required for the function. - */ - function onTokenTransfer( - address sender, - uint256 amount, - bytes memory data - ) - public - // validateFromLINK - // permittedFunctionsForLINK(data) - { - assembly { - // solhint-disable-next-line avoid-low-level-calls - mstore(add(data, 36), sender) // ensure correct sender is passed - // solhint-disable-next-line avoid-low-level-calls - mstore(add(data, 68), amount) // ensure correct amount is passed - } - // solhint-disable-next-line avoid-low-level-calls - (bool success, ) = address(this).delegatecall(data); // calls oracleRequest - require(success, "Unable to create request"); - } - - - /** - * @notice Creates the Chainlink request. This is a backwards compatible API - * with the Oracle.sol contract, but the behavior changes because - * callbackAddress is assumed to be the same as the request sender. - * @param callbackAddress The consumer of the request - * @param payment The amount of payment given (specified in wei) - * @param specId The Job Specification ID - * @param callbackAddress The address the oracle data will be sent to - * @param callbackFunctionId The callback function ID for the response - * @param nonce The nonce sent by the requester - * @param dataVersion The specified data version - * @param data The extra request parameters - */ - /** - * @dev Sends an oracle request with specified parameters to the oracle contract. - * @param sender The address of the requester. - * @param payment The amount of LINK sent as payment for the request. - * @param specId The ID of the job specification for the request. - * @param callbackAddress The address of the contract that will receive the response. - * @param callbackFunctionId The function ID of the function that will receive the response. - * @param nonce A unique identifier for the request. - * @param dataVersion The version of the data schema being used. - * @param data The data being sent as part of the request. - * @notice This function emits 1 events: - * - OracleRequest - */ - function oracleRequest( - address sender, - uint256 payment, - bytes32 specId, - address callbackAddress, - bytes4 callbackFunctionId, - uint256 nonce, - uint256 dataVersion, - bytes calldata data - ) - external - // override - // validateFromLINK - { - (bytes32 requestId, uint256 expiration) = _verifyAndProcessOracleRequest( - sender, - payment, - callbackAddress, - callbackFunctionId, - nonce, - dataVersion - ); - emit OracleRequest(specId, sender, requestId, payment, sender, callbackFunctionId, expiration, dataVersion, data); - } - - - /** - * @notice Called by the Chainlink node to fulfill requests with multi-word support - * @dev Given params must hash back to the commitment stored from `oracleRequest`. - * Will call the callback address' callback function without bubbling up error - * checking in a `require` so that the node can get paid. - * @param requestId The fulfillment request ID that must match the requester's - * @param payment The payment amount that will be released for the oracle (specified in wei) - * @param callbackAddress The callback address to call for fulfillment - * @param callbackFunctionId The callback function ID to use for fulfillment - * @param expiration The expiration that the node should respond by before the requester can cancel - * @param data The data to return to the consuming contract - * @return Status if the external call was successful - */ - /** - * @dev Fulfill an oracle request by verifying it and processing the payment. Then emit an `OracleResponse` event. - * The function also checks if the consumer provided enough gas and calls the callback function. - * @param requestId The ID of the oracle request. - * @param payment The payment amount for the oracle request. - * @param callbackAddress The address of the contract to be called back. - * @param callbackFunctionId The function signature of the callback function. - * @param expiration The expiration time of the oracle request. - * @param data The data to be sent to the callback function. - * @return success A boolean value indicating whether the callback function was successfully called or not. - * @notice This function emits 1 events: - * - OracleResponse - */ - function fulfillOracleRequest2( - bytes32 requestId, - uint256 payment, - address callbackAddress, - bytes4 callbackFunctionId, - uint256 expiration, - bytes calldata data - ) - external - // override - // validateAuthorizedSender - // validateRequestId(requestId) - // validateCallbackAddress(callbackAddress) - // validateMultiWordResponseId(requestId, data) - returns (bool) - { - _verifyOracleRequestAndProcessPayment(requestId, payment, callbackAddress, callbackFunctionId, expiration, 2); - - emit OracleResponse(requestId); - require(gasleft() >= MINIMUM_CONSUMER_GAS_LIMIT, "Must provide consumer enough gas"); - - // All updates to the oracle's fulfillment should come before calling the - // callback(addr+functionId) as it is untrusted. - // See: https://solidity.readthedocs.io/en/develop/security-considerations.html#use-the-checks-effects-interactions-pattern - (bool success, ) = callbackAddress.call(abi.encodePacked(callbackFunctionId, data)); // solhint-disable-line avoid-low-level-calls - return success; - } - - - /** - * @notice Verify the Oracle Request and record necessary information - * @param sender The sender of the request - * @param payment The amount of payment given (specified in wei) - * @param callbackAddress The callback address for the response - * @param callbackFunctionId The callback function ID for the response - * @param nonce The nonce sent by the requester - */ - /** - * @dev Verifies and processes an oracle request. - * @param sender The address of the sender making the request. - * @param payment The amount of payment to be made for the request. - * @param callbackAddress The address of the contract to receive the callback. - * @param callbackFunctionId The function signature of the callback function. - * @param nonce A unique identifier for the request. - * @param dataVersion The version of the data being requested. - * @return requestId The unique identifier for the request. - * @return expiration The expiration time for the request. - */ - function _verifyAndProcessOracleRequest( - address sender, - uint256 payment, - address callbackAddress, - bytes4 callbackFunctionId, - uint256 nonce, - uint256 dataVersion - ) - private - // validateNotToLINK(callbackAddress) - returns (bytes32 requestId, uint256 expiration) - { - requestId = keccak256(abi.encodePacked(sender, nonce)); - require(s_commitments[requestId].paramsHash == 0, "Must use a unique ID"); - // solhint-disable-next-line not-rely-on-time - // expiration = block.timestamp.add(getExpiryTime); - expiration = block.timestamp + getExpiryTime; - bytes31 paramsHash = _buildParamsHash(payment, callbackAddress, callbackFunctionId, expiration); - s_commitments[requestId] = Commitment(paramsHash, _safeCastToUint8(dataVersion)); - // s_tokensInEscrow = s_tokensInEscrow.add(payment); - return (requestId, expiration); - } - - - /** - * @notice Verify the Oracle request and unlock escrowed payment - * @param requestId The fulfillment request ID that must match the requester's - * @param payment The payment amount that will be released for the oracle (specified in wei) - * @param callbackAddress The callback address to call for fulfillment - * @param callbackFunctionId The callback function ID to use for fulfillment - * @param expiration The expiration that the node should respond by before the requester can cancel - */ - /** - * @dev Verifies the oracle request and processes the payment. - * @param requestId The ID of the request. - * @param payment The amount of payment to be processed. - * @param callbackAddress The address of the callback function. - * @param callbackFunctionId The function ID of the callback function. - * @param expiration The expiration time of the request. - * @param dataVersion The version of the data. - */ - function _verifyOracleRequestAndProcessPayment( - bytes32 requestId, - uint256 payment, - address callbackAddress, - bytes4 callbackFunctionId, - uint256 expiration, - uint256 dataVersion - ) - internal - { - bytes31 paramsHash = _buildParamsHash(payment, callbackAddress, callbackFunctionId, expiration); - require(s_commitments[requestId].paramsHash == paramsHash, "Params do not match request ID"); - require(s_commitments[requestId].dataVersion <= _safeCastToUint8(dataVersion), "Data versions must match"); - // s_tokensInEscrow = s_tokensInEscrow.sub(payment); - delete s_commitments[requestId]; - } - - - /** - * @notice Build the bytes31 hash from the payment, callback and expiration. - * @param payment The payment amount that will be released for the oracle (specified in wei) - * @param callbackAddress The callback address to call for fulfillment - * @param callbackFunctionId The callback function ID to use for fulfillment - * @param expiration The expiration that the node should respond by before the requester can cancel - * @return hash bytes31 - */ - /** - * @dev Generates a hash value based on the function parameters. - * @param payment The payment amount to be included in the hash. - * @param callbackAddress The address to be called back after the transaction. - * @param callbackFunctionId The function ID to be called back after the transaction. - * @param expiration The expiration time for the transaction. - * @return Hash value generated from the function parameters. - */ - function _buildParamsHash( - uint256 payment, - address callbackAddress, - bytes4 callbackFunctionId, - uint256 expiration - ) internal pure returns (bytes31) { - return bytes31(keccak256(abi.encodePacked(payment, callbackAddress, callbackFunctionId, expiration))); - } - - - /** - * @notice Safely cast uint256 to uint8 - * @param number uint256 - * @return uint8 number - */ - /** - * @dev Safely casts a uint256 to a uint8. - * @param number The uint256 number to cast. - * @return The uint8 representation of the number. - * - * Requirements: - * - number must be less than MAXIMUM_DATA_VERSION. - */ - function _safeCastToUint8(uint256 number) internal pure returns (uint8) { - require(number < MAXIMUM_DATA_VERSION, "number too big to cast"); - return uint8(number); - } - - /** - * @notice concrete implementation of AuthorizedReceiver - * @return bool of whether sender is authorized - */ - /** - * @dev Checks if the caller is the owner of the contract and can set authorized senders. - * @return A boolean indicating whether the caller is the owner of the contract. - */ - function _canSetAuthorizedSenders() internal view returns (bool) { - return owner() == msg.sender; - } - -} diff --git a/contracts-christoph2806/examples/mock/ChainlinkToken.sol b/contracts-christoph2806/examples/mock/ChainlinkToken.sol deleted file mode 100644 index 967dfc21..00000000 --- a/contracts-christoph2806/examples/mock/ChainlinkToken.sol +++ /dev/null @@ -1,63 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.2; - -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - -abstract contract ERC677Receiver { - /** - * @dev This function is called when tokens are transferred to this contract. - * @param _sender The address of the sender. - * @param _value The amount of tokens being transferred. - * @param _data Additional data with no specified format. - */ - function onTokenTransfer (address _sender, uint _value, bytes calldata _data) public virtual; -} - -contract ChainlinkToken is ERC20 { - /** - * @dev Constructor function to initialize the Chainlink Dummy Token with the given owner and supply. - * @param owner The address of the owner of the token. - * @param supply The initial supply of the token. - */ - constructor(address owner, uint256 supply) ERC20("Chainlink Dummy Token", "CDT"){ - _mint(owner, supply); - } - - /** - * @dev Transfers tokens to a specified address and calls the recipient's function. - * @param _to The address of the recipient. - * @param _value The amount of tokens to send. - * @param _data Additional data to send to the recipient's function. - * @return success Returns true if the transfer was successful. - */ - function transferAndCall(address _to, uint _value, bytes calldata _data) public returns (bool success){ - super.transfer(_to, _value); - // Transfer(msg.sender, _to, _value, _data); - if (isContract(_to)) { - contractFallback(_to, _value, _data); - } - return true; - } - - /** - * @dev Executes a contract fallback function. - * @param _to The address of the contract to execute the fallback function on. - * @param _value The amount of tokens being transferred. - * @param _data Additional data to be passed to the fallback function. - */ - function contractFallback(address _to, uint _value, bytes calldata _data) private { - ERC677Receiver receiver = ERC677Receiver(_to); - receiver.onTokenTransfer(msg.sender, _value, _data); - } - - /** - * @dev Checks if the given address contains code. - * @param _addr The address to check. - * @return hasCode A boolean indicating whether the address contains code or not. - */ - function isContract(address _addr) private view returns (bool hasCode) { - uint length; - assembly { length := extcodesize(_addr) } - return length > 0; - } -} diff --git a/contracts-christoph2806/examples/strings.sol b/contracts-christoph2806/examples/strings.sol deleted file mode 100644 index 0e7c636d..00000000 --- a/contracts-christoph2806/examples/strings.sol +++ /dev/null @@ -1,137 +0,0 @@ -// SPDX-License-Identifier: Apache2 - -// source: https://github.com/Arachnid/solidity-stringutils -/* - * @title String & slice utility library for Solidity contracts. - * @author Nick Johnson - * - * @dev Functionality in this library is largely implemented using an - * abstraction called a 'slice'. A slice represents a part of a string - - * anything from the entire string to a single character, or even no - * characters at all (a 0-length slice). Since a slice only has to specify - * an offset and a length, copying and manipulating slices is a lot less - * expensive than copying and manipulating the strings they reference. - * - * To further reduce gas costs, most functions on slice that need to return - * a slice modify the original one instead of allocating a new one; for - * instance, `s.split(".")` will return the text up to the first '.', - * modifying s to only contain the remainder of the string after the '.'. - * In situations where you do not want to modify the original slice, you - * can make a copy first with `.copy()`, for example: - * `s.copy().split(".")`. Try and avoid using this idiom in loops; since - * Solidity has no memory management, it will result in allocating many - * short-lived slices that are later discarded. - * - * Functions that return two slices come in two versions: a non-allocating - * version that takes the second slice as an argument, modifying it in - * place, and an allocating version that allocates and returns the second - * slice; see `nextRune` for example. - * - * Functions that have to copy string data will return strings rather than - * slices; these can be cast back to slices for further processing if - * required. - * - * For convenience, some functions are provided with non-modifying - * variants that create a new slice and return both; for instance, - * `s.splitNew('.')` leaves s unmodified, and returns two values - * corresponding to the left and right parts of the string. - */ -pragma solidity 0.8.2; - -library strings { - - struct slice { - uint _len; - uint _ptr; - } - - /** - * @dev Copies a specified number of bytes from one memory address to another. - * @param dest The destination memory address to copy to. - * @param src The source memory address to copy from. - * @param len_ The number of bytes to copy. - */ - function memcpy(uint dest, uint src, uint len_) private pure { - // Copy word-length chunks while possible - for(; len_ >= 32; len_ -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = type(uint).max; - if (len_ > 0) { - mask = 256 ** (32 - len_) - 1; - } - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } - - /* - * @dev Returns the length of a null-terminated bytes32 string. - * @param self The value to find the length of. - * @return The length of the string, from 0 to 32. - */ - /** - * @dev Calculates the length of a bytes32 variable. - * @param self The bytes32 variable to calculate the length of. - * @return ret The length of the bytes32 variable. - */ - function len(bytes32 self) internal pure returns (uint) { - uint ret; - if (self == 0) - return 0; - if (uint(self) & type(uint128).max == 0) { - ret += 16; - self = bytes32(uint(self) / 0x100000000000000000000000000000000); - } - if (uint(self) & type(uint64).max == 0) { - ret += 8; - self = bytes32(uint(self) / 0x10000000000000000); - } - if (uint(self) & type(uint32).max == 0) { - ret += 4; - self = bytes32(uint(self) / 0x100000000); - } - if (uint(self) & type(uint16).max == 0) { - ret += 2; - self = bytes32(uint(self) / 0x10000); - } - if (uint(self) & type(uint8).max == 0) { - ret += 1; - } - return 32 - ret; - } - - // merge of toSliceB32 and toString of strings library - /** - * @dev Converts a bytes32 value to a string. - * @param self The bytes32 value to be converted. - * @return ret The resulting string value. - * - * Converts a bytes32 value to a string by creating a slice of the bytes32 value and then copying it to a new string. - * The resulting string is then returned as the output of the function. - */ - function toB32String(bytes32 self) internal pure returns (string memory) { - slice memory slc; - assembly { - let ptr := mload(0x40) - mstore(0x40, add(ptr, 0x20)) - mstore(ptr, self) - mstore(add(slc, 0x20), ptr) - } - slc._len = len(self); - - string memory ret = new string(slc._len); - uint retptr; - assembly { retptr := add(ret, 32) } - memcpy(retptr, slc._ptr, slc._len); - return ret; - } -} \ No newline at end of file diff --git a/contracts-christoph2806/flows/PolicyDefaultFlow.sol b/contracts-christoph2806/flows/PolicyDefaultFlow.sol deleted file mode 100644 index f430c8ad..00000000 --- a/contracts-christoph2806/flows/PolicyDefaultFlow.sol +++ /dev/null @@ -1,499 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../modules/ComponentController.sol"; -import "../modules/PoolController.sol"; -import "../modules/PolicyController.sol"; -import "../modules/QueryModule.sol"; -import "../modules/TreasuryModule.sol"; -import "../shared/WithRegistry.sol"; - -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; -// import "@etherisc/gif-interface/contracts/modules/IQuery.sol"; -import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; -import "@etherisc/gif-interface/contracts/modules/IPool.sol"; - - -contract PolicyDefaultFlow is - WithRegistry -{ - bytes32 public constant NAME = "PolicyDefaultFlow"; - - modifier onlyActivePolicy(bytes32 processId) { - PolicyController policy = getPolicyContract(); - require( - policy.getPolicy(processId).state == IPolicy.PolicyState.Active, - "ERROR:PFD-001:POLICY_NOT_ACTIVE" - ); - _; - } - - modifier onlyExpiredPolicy(bytes32 processId) { - PolicyController policy = getPolicyContract(); - require( - policy.getPolicy(processId).state == IPolicy.PolicyState.Expired, - "ERROR:PFD-002:POLICY_NOT_EXPIRED" - ); - _; - } - - modifier notClosedPolicy(bytes32 processId) { - PolicyController policy = getPolicyContract(); - require( - policy.getPolicy(processId).state != IPolicy.PolicyState.Closed, - "ERROR:PFD-003:POLICY_CLOSED" - ); - _; - } - - modifier onlyResponsibleProduct(bytes32 processId) { - PolicyController policy = getPolicyContract(); - IPolicy.Metadata memory metadata = policy.getMetadata(processId); - ComponentController component = ComponentController(getContractFromRegistry("Component")); - require(metadata.productId == component.getComponentId(address(msg.sender)), "ERROR:PFD-004:PROCESSID_PRODUCT_MISMATCH"); - _; - } - - modifier onlyMatchingProduct(uint256 requestId) { - QueryModule query = getQueryContract(); - bytes32 processId = getQueryContract().getProcessId(requestId); - PolicyController policy = getPolicyContract(); - IPolicy.Metadata memory metadata = policy.getMetadata(processId); - ComponentController component = ComponentController(getContractFromRegistry("Component")); - require(metadata.productId == component.getComponentId(address(msg.sender)), "ERROR:PFD-005:REQUESTID_PRODUCT_MISMATCH"); - _; - } - - // ComponentController private _component; - - // solhint-disable-next-line no-empty-blocks - /** - * @dev Constructor function that initializes the contract with a given registry address. - * @param _registry The address of the registry contract. - */ - constructor(address _registry) - WithRegistry(_registry) - { - } - - /** - * @dev Creates a new insurance application and returns the process ID. - * @param owner The address of the owner of the new application. - * @param premiumAmount The amount of premium to be paid for the application. - * @param sumInsuredAmount The amount of insurance coverage requested for the application. - * @param metaData Additional metadata for the application. - * @param applicationData Additional data for the application. - * @return processId The unique process ID of the created application. - */ - function newApplication( - address owner, - uint256 premiumAmount, - uint256 sumInsuredAmount, - bytes calldata metaData, - bytes calldata applicationData - ) - external - returns(bytes32 processId) - { - ComponentController component = getComponentContract(); - uint256 productId = component.getComponentId(msg.sender); - - IPolicy policy = getPolicyContract(); - processId = policy.createPolicyFlow(owner, productId, metaData); - policy.createApplication( - processId, - premiumAmount, - sumInsuredAmount, - applicationData); - } - - /** - * @dev Revokes an application for a specific processId. - * @param processId The unique identifier of the process. - */ - function revoke(bytes32 processId) - external - onlyResponsibleProduct(processId) - { - IPolicy policy = getPolicyContract(); - policy.revokeApplication(processId); - } - - /* success implies the successful creation of a policy */ - /** - * @dev Attempts to get the collateral to secure the policy. - * @param processId The unique identifier of the underwriting process. - * @return success A boolean indicating whether the underwriting was successful. - * - * If successful, creates a policy and transfers the premium amount. - * The premium collection part is a TODO and should be implemented on the product level. - * This function should only be called by a responsible product. - * */ - function underwrite(bytes32 processId) - external - onlyResponsibleProduct(processId) - returns(bool success) - { - // attempt to get the collateral to secure the policy - PoolController pool = getPoolContract(); - success = pool.underwrite(processId); - - // TODO remove premium collection part below - // this should be implemented on the prduct level - // it's too much magic in the platform and not transparent enough - // also, bad naming: the function name is 'underwrite? and not - // 'underwriteAndIfSuccessfulCollectPremiumToo' - if (success) { - PolicyController policyController = getPolicyContract(); - policyController.underwriteApplication(processId); - policyController.createPolicy(processId); - - // transfer premium amount - IPolicy.Policy memory policy = policyController.getPolicy(processId); - collectPremium(processId, policy.premiumExpectedAmount); - } - } - - /* success implies the successful collection of the amount for the policy. - * valid amounts need to be > 0 up to the full premium amount - * if no fee structure is defined for the policy, this call will revert. - */ - /** - * @dev Collects the premium for a given policy and updates the book keeping of the policy and the risk pool. - * @param processId The ID of the premium payment process. - * @param amount The amount of premium to be collected. - * @return success A boolean indicating whether the premium collection was successful or not. - * @return feeAmount The amount of fee collected by the treasury module. - * @return netPremiumAmount The net amount of premium collected after deducting the fee. - */ - function collectPremium(bytes32 processId, uint256 amount) - public - notClosedPolicy(processId) - onlyResponsibleProduct(processId) - returns( - bool success, - uint256 feeAmount, - uint256 netPremiumAmount - ) - { - TreasuryModule treasury = getTreasuryContract(); - PolicyController policy = getPolicyContract(); - - (success, feeAmount, netPremiumAmount) = treasury.processPremium(processId, amount); - - // if premium collected: update book keeping of policy and riskpool - if (success) { - policy.collectPremium(processId, netPremiumAmount + feeAmount); - - PoolController pool = getPoolContract(); - pool.processPremium(processId, netPremiumAmount); - } - } - - /** - * @dev Adjusts the premium and sum insured amounts of a policy. - * @param processId The ID of the policy process. - * @param expectedPremiumAmount The expected premium amount. - * @param sumInsuredAmount The sum insured amount. - */ - function adjustPremiumSumInsured( - bytes32 processId, - uint256 expectedPremiumAmount, - uint256 sumInsuredAmount - ) - external - notClosedPolicy(processId) - onlyResponsibleProduct(processId) - { - PolicyController policy = getPolicyContract(); - policy.adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount); - } - - - /** - * @dev Allows the responsible product to decline an application for a policy. - * @param processId The unique identifier of the application process. - */ - function decline(bytes32 processId) - onlyResponsibleProduct(processId) - external - { - IPolicy policy = getPolicyContract(); - policy.declineApplication(processId); - } - - /** - * @dev Expire the policy identified by the given process ID. - * @param processId The ID of the process corresponding to the policy to be expired. - */ - function expire(bytes32 processId) - external - onlyActivePolicy(processId) - onlyResponsibleProduct(processId) - { - IPolicy policy = getPolicyContract(); - policy.expirePolicy(processId); - } - - /** - * @dev Closes a policy and releases the corresponding funds from the pool. - * @param processId The ID of the policy to be closed. - */ - function close(bytes32 processId) - external - onlyExpiredPolicy(processId) - onlyResponsibleProduct(processId) - { - IPolicy policy = getPolicyContract(); - policy.closePolicy(processId); - - IPool pool = getPoolContract(); - pool.release(processId); - } - - /** - * @dev Creates a new claim for a given process ID, claim amount and data. - * @param processId The ID of the process to create the claim for. - * @param claimAmount The amount of the claim to be created. - * @param data Additional data to be included with the claim. - * @return claimId The ID of the newly created claim. - */ - function newClaim( - bytes32 processId, - uint256 claimAmount, - bytes calldata data - ) - external - onlyActivePolicy(processId) - onlyResponsibleProduct(processId) - returns (uint256 claimId) - { - claimId = getPolicyContract().createClaim( - processId, - claimAmount, - data); - } - - /** - * @dev Confirms a claim for a specific process and claim ID, updating the confirmed amount. - * @param processId The ID of the process where the claim was made. - * @param claimId The ID of the claim to be confirmed. - * @param confirmedAmount The amount confirmed for the claim. - */ - function confirmClaim( - bytes32 processId, - uint256 claimId, - uint256 confirmedAmount - ) - external - onlyResponsibleProduct(processId) - { - PolicyController policy = getPolicyContract(); - policy.confirmClaim(processId, claimId, confirmedAmount); - } - - /** - * @dev Allows the responsible product to decline a claim. - * @param processId The unique identifier of the claim process. - * @param claimId The unique identifier of the claim to be declined. - */ - function declineClaim(bytes32 processId, uint256 claimId) - external - onlyResponsibleProduct(processId) - { - PolicyController policy = getPolicyContract(); - policy.declineClaim(processId, claimId); - } - - /** - * @dev Closes a claim for a specific process and claim ID. - * @param processId The ID of the process to which the claim belongs. - * @param claimId The ID of the claim to be closed. - */ - function closeClaim(bytes32 processId, uint256 claimId) - external - onlyResponsibleProduct(processId) - { - PolicyController policy = getPolicyContract(); - policy.closeClaim(processId, claimId); - } - - /** - * @dev Creates a new payout for a specific claim. - * @param processId The ID of the process associated with the claim. - * @param claimId The ID of the claim for which the payout is being created. - * @param amount The amount of the payout to be created. - * @param data Additional data related to the payout. - * @return payoutId The ID of the newly created payout. - */ - function newPayout( - bytes32 processId, - uint256 claimId, - uint256 amount, - bytes calldata data - ) - external - onlyResponsibleProduct(processId) - returns(uint256 payoutId) - { - payoutId = getPolicyContract() - .createPayout(processId, claimId, amount, data); - } - - /** - * @dev Processes a payout for a specific process and payout ID. - * @param processId The ID of the process for which the payout is being processed. - * @param payoutId The ID of the payout being processed. - * @return success A boolean indicating whether the payout was successfully processed. - * @return feeAmount The amount of fees deducted from the payout. - * @return netPayoutAmount The net amount paid out to the policyholder after deducting fees. - */ - function processPayout( - bytes32 processId, - uint256 payoutId - ) - external - onlyResponsibleProduct(processId) - returns( - bool success, - uint256 feeAmount, - uint256 netPayoutAmount - ) - { - TreasuryModule treasury = getTreasuryContract(); - (feeAmount, netPayoutAmount) = treasury.processPayout(processId, payoutId); - - // if payout successful: update book keeping of policy and riskpool - IPolicy policy = getPolicyContract(); - policy.processPayout(processId, payoutId); - - PoolController pool = getPoolContract(); - pool.processPayout(processId, netPayoutAmount + feeAmount); - } - - /** - * @dev Sends a request to the query contract to initiate a new process. - * @param processId The ID of the process to be initiated. - * @param _input The input data for the process. - * @param _callbackMethodName The name of the callback method in the callback contract. - * @param _callbackContractAddress The address of the callback contract. - * @param _responsibleOracleId The ID of the oracle responsible for handling the request. - * @return _requestId The ID of the new request. - */ - function request( - bytes32 processId, - bytes calldata _input, - string calldata _callbackMethodName, - address _callbackContractAddress, - uint256 _responsibleOracleId - ) - external - onlyResponsibleProduct(processId) - returns (uint256 _requestId) - { - _requestId = getQueryContract().request( - processId, - _input, - _callbackMethodName, - _callbackContractAddress, - _responsibleOracleId - ); - } - - /** - * @dev Cancels a request with the given requestId. - * @param requestId The ID of the request to be cancelled. - */ - function cancelRequest( - uint256 requestId - ) - external - onlyMatchingProduct(requestId) - { - getQueryContract().cancel(requestId); - } - - /** - * @dev Returns the application data associated with the given process ID. - * @param processId The ID of the process. - * @return data The application data as bytes. - */ - function getApplicationData(bytes32 processId) - external - view - returns (bytes memory) - { - PolicyController policy = getPolicyContract(); - return policy.getApplication(processId).data; - } - - /** - * @dev Returns the claim data of a specific claim for a given process ID. - * @param processId The ID of the process the claim belongs to. - * @param claimId The ID of the claim. - * @return data The claim data as bytes. - */ - function getClaimData(bytes32 processId, uint256 claimId) - external - view - returns (bytes memory) - { - PolicyController policy = getPolicyContract(); - return policy.getClaim(processId, claimId).data; - } - - /** - * @dev Returns the payout data for a given process and payout ID. - * @param processId The ID of the process. - * @param payoutId The ID of the payout. - * @return data The payout data as a bytes array. - */ - function getPayoutData(bytes32 processId, uint256 payoutId) - external - view - returns (bytes memory) - { - PolicyController policy = getPolicyContract(); - return policy.getPayout(processId, payoutId).data; - } - - /** - * @dev Returns the ComponentController contract instance. - * @return The ComponentController contract instance. - */ - function getComponentContract() internal view returns (ComponentController) { - return ComponentController(getContractFromRegistry("Component")); - } - - /** - * @dev Returns the PoolController contract instance from the registry. - * @return poolController The PoolController contract instance. - */ - function getPoolContract() internal view returns (PoolController) { - return PoolController(getContractFromRegistry("Pool")); - } - - /** - * @dev Returns the PolicyController contract instance from the registry. - * @return The PolicyController contract instance. - */ - function getPolicyContract() internal view returns (PolicyController) { - return PolicyController(getContractFromRegistry("Policy")); - } - - /** - * @dev Returns the QueryModule contract instance from the registry. - * @return QueryModule instance. - */ - function getQueryContract() internal view returns (QueryModule) { - return QueryModule(getContractFromRegistry("Query")); - } - - /** - * @dev Retrieves the TreasuryModule contract instance. - * @return The instance of the TreasuryModule contract. - */ - function getTreasuryContract() internal view returns (TreasuryModule) { - return TreasuryModule(getContractFromRegistry("Treasury")); - } -} diff --git a/contracts-christoph2806/flows/README.adoc b/contracts-christoph2806/flows/README.adoc deleted file mode 100644 index 20c8056f..00000000 --- a/contracts-christoph2806/flows/README.adoc +++ /dev/null @@ -1,8 +0,0 @@ -= Flows - -[.readme-notice] -NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/flows - -== Contracts - -{{PolicyDefaultFlow}} \ No newline at end of file diff --git a/contracts-christoph2806/modules/AccessController.sol b/contracts-christoph2806/modules/AccessController.sol deleted file mode 100644 index 5c7bbe08..00000000 --- a/contracts-christoph2806/modules/AccessController.sol +++ /dev/null @@ -1,192 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../shared/CoreController.sol"; - -import "@etherisc/gif-interface/contracts/modules/IAccess.sol"; - -import "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; -import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; - - -contract AccessController is - IAccess, - CoreController, - AccessControlEnumerable - { - - // 0xe984cfd1d1fa34f80e24ddb2a60c8300359d79eee44555bc35c106eb020394cd - bytes32 public constant PRODUCT_OWNER_ROLE = keccak256("PRODUCT_OWNER_ROLE"); - - // 0xd26b4cd59ffa91e4599f3d18b02fcd5ffb06e03216f3ee5f25f68dc75cbbbaa2 - bytes32 public constant ORACLE_PROVIDER_ROLE = keccak256("ORACLE_PROVIDER_ROLE"); - - // 0x3c4cdb47519f2f89924ebeb1ee7a8a43b8b00120826915726460bb24576012fd - bytes32 public constant RISKPOOL_KEEPER_ROLE = keccak256("RISKPOOL_KEEPER_ROLE"); - - mapping(bytes32 => bool) public validRole; - - bool private _defaultAdminSet; - - /** - * @dev This function is called after contract initialization and adds the product owner, oracle provider, and riskpool keeper roles. - */ - function _afterInitialize() internal override { - // add product owner, oracle provider and riskpool keeper roles - _populateValidRoles(); - } - - /** - * @dev Returns the name of the contract. - * @return The name of the contract as a bytes32 value. - */ - function _getName() internal override pure returns(bytes32) { return "Access"; } - - // IMPORTANT check the setting of the default admin role - // after the deployment of a GIF instance. - // this method is called in the deployment of - // the instance operator proxy/controller - /** - * @dev Sets the default admin role for the Access Control List (ACL). - * @param defaultAdmin The address of the account to be set as the default admin role. - * - * Requirements: - * - The default admin role must not have been set before. - * - * Emits a {RoleGranted} event. - */ - function setDefaultAdminRole(address defaultAdmin) - external - { - require(!_defaultAdminSet, "ERROR:ACL-001:ADMIN_ROLE_ALREADY_SET"); - _defaultAdminSet = true; - - _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin); - } - - //--- manage role ownership ---------------------------------------------// - /** - * @dev Grants a role to a principal. - * @param role The bytes32 identifier of the role to grant. - * @param principal The address of the principal to grant the role to. - * - * Requirements: - * - `role` must be a valid role identifier. - * - The caller must be an instance operator. - */ - function grantRole(bytes32 role, address principal) - public - override(IAccessControl, IAccess) - onlyInstanceOperator - { - require(validRole[role], "ERROR:ACL-002:ROLE_UNKNOWN_OR_INVALID"); - AccessControl.grantRole(role, principal); - } - - /** - * @dev Revokes the specified role from the specified principal. - * @param role The bytes32 identifier of the role to revoke. - * @param principal The address of the principal to revoke the role from. - */ - function revokeRole(bytes32 role, address principal) - public - override(IAccessControl, IAccess) - onlyInstanceOperator - { - AccessControl.revokeRole(role, principal); - } - - /** - * @dev Removes the specified `principal` from the `role` in the access control list (ACL) of the contract. - * @param role The bytes32 identifier of the role to remove the `principal` from. - * @param principal The address of the principal to remove from the `role`. - */ - function renounceRole(bytes32 role, address principal) - public - override(IAccessControl, IAccess) - { - AccessControl.renounceRole(role, principal); - } - - //--- manage roles ------------------------------------------------------// - /** - * @dev Adds a new role to the Access Control List. - * @param role The role to be added. - */ - function addRole(bytes32 role) - public override - onlyInstanceOperator - { - require(!validRole[role], "ERROR:ACL-003:ROLE_EXISTING_AND_VALID"); - validRole[role] = true; - } - - /** - * @dev Invalidates a role. - * @param role The role to invalidate. - */ - function invalidateRole(bytes32 role) - public override - onlyInstanceOperator - { - require(validRole[role], "ERROR:ACL-004:ROLE_UNKNOWN_OR_INVALID"); - validRole[role] = false; - } - - /** - * @dev Checks if a given principal has a specific role. - * @param role The bytes32 representation of the role to check. - * @param principal The address of the principal to check. - * @return Returns true if the principal has the specified role, false otherwise. - */ - function hasRole(bytes32 role, address principal) - public view - override(IAccessControl, IAccess) - returns(bool) - { - return super.hasRole(role, principal); - } - - /** - * @dev Returns the default admin role. - * @return The DEFAULT_ADMIN_ROLE. - */ - function getDefaultAdminRole() public pure override returns(bytes32) { - return DEFAULT_ADMIN_ROLE; - } - - /** - * @dev Returns the bytes32 value of the PRODUCT_OWNER_ROLE. - * @return PRODUCT_OWNER_ROLE The bytes32 value of the PRODUCT_OWNER_ROLE. - */ - function getProductOwnerRole() public pure override returns(bytes32) { - return PRODUCT_OWNER_ROLE; - } - - /** - * @dev Returns the bytes32 identifier of the Oracle Provider role. - * @return ORACLE_PROVIDER_ROLE The bytes32 identifier of the Oracle Provider role. - */ - function getOracleProviderRole() public pure override returns(bytes32) { - return ORACLE_PROVIDER_ROLE; - } - - /** - * @dev Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. - * @return RISKPOOL_KEEPER_ROLE The bytes32 value of the RISKPOOL_KEEPER_ROLE. - */ - function getRiskpoolKeeperRole() public pure override returns(bytes32) { - return RISKPOOL_KEEPER_ROLE; - } - - /** - * @dev Populates the validRole mapping with the roles that are considered valid for the contract. - * - * - */ - function _populateValidRoles() private { - validRole[PRODUCT_OWNER_ROLE] = true; - validRole[ORACLE_PROVIDER_ROLE] = true; - validRole[RISKPOOL_KEEPER_ROLE] = true; - } -} diff --git a/contracts-christoph2806/modules/BundleController.sol b/contracts-christoph2806/modules/BundleController.sol deleted file mode 100644 index d70d5df2..00000000 --- a/contracts-christoph2806/modules/BundleController.sol +++ /dev/null @@ -1,544 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "./PolicyController.sol"; -import "../shared/CoreController.sol"; -import "../tokens/BundleToken.sol"; - -import "@etherisc/gif-interface/contracts/components/IProduct.sol"; -import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; -import "./PoolController.sol"; - - -contract BundleController is - IBundle, - CoreController -{ - - PolicyController private _policy; - BundleToken private _token; - - mapping(uint256 /* bundleId */ => Bundle /* Bundle */) private _bundles; - mapping(uint256 /* bundleId */ => uint256 /* activePolicyCount */) private _activePolicies; - mapping(uint256 /* bundleId */ => mapping(bytes32 /* processId */ => uint256 /* lockedCapitalAmount */)) private _valueLockedPerPolicy; - mapping(uint256 /* riskpoolId */ => uint256 /* numberOfUnburntBundles */) private _unburntBundlesForRiskpoolId; - - - uint256 private _bundleCount; - - modifier onlyRiskpoolService() { - require( - _msgSender() == _getContractAddress("RiskpoolService"), - "ERROR:BUC-001:NOT_RISKPOOL_SERVICE" - ); - _; - } - - modifier onlyFundableBundle(uint256 bundleId) { - Bundle storage bundle = _bundles[bundleId]; - require(bundle.createdAt > 0, "ERROR:BUC-002:BUNDLE_DOES_NOT_EXIST"); - require( - bundle.state != IBundle.BundleState.Burned - && bundle.state != IBundle.BundleState.Closed, "ERROR:BUC-003:BUNDLE_BURNED_OR_CLOSED" - ); - _; - } - - /** - * @dev Performs internal operations after the contract initialization. - * - * - */ - function _afterInitialize() internal override onlyInitializing { - _policy = PolicyController(_getContractAddress("Policy")); - _token = BundleToken(_getContractAddress("BundleToken")); - } - - /** - * @dev Creates a new bundle and mints a corresponding NFT token. Only callable by the RiskpoolService contract. - * @param owner_ The address of the bundle owner. - * @param riskpoolId_ The ID of the riskpool associated with the bundle. - * @param filter_ The filter used for the bundle. - * @param amount_ The amount of capital allocated to the bundle. - * @return bundleId The ID of the newly created bundle. - * @notice This function emits 1 events: - * - LogBundleCreated - */ - function create(address owner_, uint riskpoolId_, bytes calldata filter_, uint256 amount_) - external override - onlyRiskpoolService - returns(uint256 bundleId) - { - // will start with bundleId 1. - // this helps in maps where a bundleId equals a non-existing entry - bundleId = _bundleCount + 1; - Bundle storage bundle = _bundles[bundleId]; - require(bundle.createdAt == 0, "ERROR:BUC-010:BUNDLE_ALREADY_EXISTS"); - - // mint corresponding nft with bundleId as nft - uint256 tokenId = _token.mint(bundleId, owner_); - - bundle.id = bundleId; - bundle.tokenId = tokenId; - bundle.riskpoolId = riskpoolId_; - bundle.state = BundleState.Active; - bundle.filter = filter_; - bundle.capital = amount_; - bundle.balance = amount_; - bundle.createdAt = block.timestamp; - bundle.updatedAt = block.timestamp; - - // update bundle count - _bundleCount++; - _unburntBundlesForRiskpoolId[riskpoolId_]++; - - emit LogBundleCreated(bundle.id, riskpoolId_, owner_, bundle.state, bundle.capital); - } - - - /** - * @dev Adds funds to a bundle's capital and balance. - * @param bundleId The ID of the bundle to add funds to. - * @param amount The amount of funds to add to the bundle. - * @notice This function emits 1 events: - * - LogBundleCapitalProvided - */ - function fund(uint256 bundleId, uint256 amount) - external override - onlyRiskpoolService - { - Bundle storage bundle = _bundles[bundleId]; - require(bundle.createdAt > 0, "ERROR:BUC-011:BUNDLE_DOES_NOT_EXIST"); - require(bundle.state != IBundle.BundleState.Closed, "ERROR:BUC-012:BUNDLE_CLOSED"); - - bundle.capital += amount; - bundle.balance += amount; - bundle.updatedAt = block.timestamp; - - uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundleCapitalProvided(bundleId, _msgSender(), amount, capacityAmount); - } - - - /** - * @dev Allows the Riskpool service to withdraw `amount` from the `bundleId` Bundle. - * @param bundleId The ID of the Bundle to be defunded. - * @param amount The amount of tokens to be withdrawn. - * @notice This function emits 1 events: - * - LogBundleCapitalWithdrawn - */ - function defund(uint256 bundleId, uint256 amount) - external override - onlyRiskpoolService - { - Bundle storage bundle = _bundles[bundleId]; - require(bundle.createdAt > 0, "ERROR:BUC-013:BUNDLE_DOES_NOT_EXIST"); - require( - bundle.capital >= bundle.lockedCapital + amount - || (bundle.lockedCapital == 0 && bundle.balance >= amount), - "ERROR:BUC-014:CAPACITY_OR_BALANCE_TOO_LOW" - ); - - if (bundle.capital >= amount) { bundle.capital -= amount; } - else { bundle.capital = 0; } - - bundle.balance -= amount; - bundle.updatedAt = block.timestamp; - - uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundleCapitalWithdrawn(bundleId, _msgSender(), amount, capacityAmount); - } - - /** - * @dev Locks a bundle of assets. - * @param bundleId The ID of the bundle to be locked. - */ - function lock(uint256 bundleId) - external override - onlyRiskpoolService - { - _changeState(bundleId, BundleState.Locked); - } - - /** - * @dev Unlocks a bundle, changing its state to active. - * @param bundleId The ID of the bundle to be unlocked. - */ - function unlock(uint256 bundleId) - external override - onlyRiskpoolService - { - _changeState(bundleId, BundleState.Active); - } - - /** - * @dev Closes a bundle of policies. - * @param bundleId The ID of the bundle to close. - */ - function close(uint256 bundleId) - external override - onlyRiskpoolService - { - require(_activePolicies[bundleId] == 0, "ERROR:BUC-015:BUNDLE_WITH_ACTIVE_POLICIES"); - _changeState(bundleId, BundleState.Closed); - } - - /** - * @dev Burns a bundle and changes its state to Burned. - * @param bundleId The ID of the bundle to be burned. - * - * Requirements: - * - The bundle must be in the Closed state. - * - The bundle must have a balance of 0. - * - * Emits a {BundleStateChanged} event with BundleState.Burned. - */ - function burn(uint256 bundleId) - external override - onlyRiskpoolService - { - Bundle storage bundle = _bundles[bundleId]; - require(bundle.state == BundleState.Closed, "ERROR:BUC-016:BUNDLE_NOT_CLOSED"); - require(bundle.balance == 0, "ERROR:BUC-017:BUNDLE_HAS_BALANCE"); - - // burn corresponding nft -> as a result bundle looses its owner - _token.burn(bundleId); - _unburntBundlesForRiskpoolId[bundle.riskpoolId] -= 1; - - _changeState(bundleId, BundleState.Burned); - } - - /** - * @dev Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. - * @param bundleId The ID of the bundle to collateralize. - * @param processId The ID of the policy to collateralize. - * @param amount The amount of capital to lock in the bundle. - * - * Requirements: - * - Caller must be the riskpool service. - * - The bundle must belong to the riskpool that controls the product of the policy. - * - The bundle must exist and be in an active state. - * - The capacity of the bundle must be enough to lock the amount of capital. - * - The policy must not have been previously collateralized. - * - * Emits a {LogBundlePolicyCollateralized} event with the bundle ID, policy ID, amount of capital locked, and the remaining capacity of the bundle. - * @notice This function emits 1 events: - * - LogBundlePolicyCollateralized - */ - function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 amount) - external override - onlyRiskpoolService - { - IPolicy.Metadata memory metadata = _policy.getMetadata(processId); - Bundle storage bundle = _bundles[bundleId]; - require(bundle.riskpoolId == _getPoolController().getRiskPoolForProduct(metadata.productId), "ERROR:BUC-019:BUNDLE_NOT_IN_RISKPOOL"); - require(bundle.createdAt > 0, "ERROR:BUC-020:BUNDLE_DOES_NOT_EXIST"); - require(bundle.state == IBundle.BundleState.Active, "ERROR:BUC-021:BUNDLE_NOT_ACTIVE"); - require(bundle.capital >= bundle.lockedCapital + amount, "ERROR:BUC-022:CAPACITY_TOO_LOW"); - - // might need to be added in a future relase - require(_valueLockedPerPolicy[bundleId][processId] == 0, "ERROR:BUC-023:INCREMENTAL_COLLATERALIZATION_NOT_IMPLEMENTED"); - - bundle.lockedCapital += amount; - bundle.updatedAt = block.timestamp; - - _activePolicies[bundleId] += 1; - _valueLockedPerPolicy[bundleId][processId] = amount; - - uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundlePolicyCollateralized(bundleId, processId, amount, capacityAmount); - } - - - /** - * @dev Process the premium payment for a given bundle and update its balance. - * @param bundleId The ID of the bundle to process the premium payment for. - * @param processId The ID of the process associated with the policy. - * @param amount The amount of premium to be processed. - * - * Requirements: - * - The caller must be the riskpool service. - * - The bundle must exist and be fundable. - * - The policy associated with the process must not be closed. - * - The bundle must exist. - * - * Effects: - * - Increases the balance of the bundle by the amount processed. - * - Updates the updatedAt timestamp of the bundle. - */ - function processPremium(uint256 bundleId, bytes32 processId, uint256 amount) - external override - onlyRiskpoolService - onlyFundableBundle(bundleId) - { - IPolicy.Policy memory policy = _policy.getPolicy(processId); - require( - policy.state != IPolicy.PolicyState.Closed, - "ERROR:POL-030:POLICY_STATE_INVALID" - ); - - Bundle storage bundle = _bundles[bundleId]; - require(bundle.createdAt > 0, "ERROR:BUC-031:BUNDLE_DOES_NOT_EXIST"); - - bundle.balance += amount; - bundle.updatedAt = block.timestamp; // solhint-disable-line - } - - - /** - * @dev Processes a payout for a policy from a bundle. - * @param bundleId The ID of the bundle. - * @param processId The ID of the policy process. - * @param amount The amount of the payout. - * - * Emits a LogBundlePayoutProcessed event. - * @notice This function emits 1 events: - * - LogBundlePayoutProcessed - */ - function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) - external override - onlyRiskpoolService - { - IPolicy.Policy memory policy = _policy.getPolicy(processId); - require( - policy.state != IPolicy.PolicyState.Closed, - "ERROR:POL-040:POLICY_STATE_INVALID" - ); - - // check there are policies and there is sufficient locked capital for policy - require(_activePolicies[bundleId] > 0, "ERROR:BUC-041:NO_ACTIVE_POLICIES_FOR_BUNDLE"); - require(_valueLockedPerPolicy[bundleId][processId] >= amount, "ERROR:BUC-042:COLLATERAL_INSUFFICIENT_FOR_POLICY"); - - // make sure bundle exists and is not yet closed - Bundle storage bundle = _bundles[bundleId]; - require(bundle.createdAt > 0, "ERROR:BUC-043:BUNDLE_DOES_NOT_EXIST"); - require( - bundle.state == IBundle.BundleState.Active - || bundle.state == IBundle.BundleState.Locked, - "ERROR:BUC-044:BUNDLE_STATE_INVALID"); - require(bundle.capital >= amount, "ERROR:BUC-045:CAPITAL_TOO_LOW"); - require(bundle.lockedCapital >= amount, "ERROR:BUC-046:LOCKED_CAPITAL_TOO_LOW"); - require(bundle.balance >= amount, "ERROR:BUC-047:BALANCE_TOO_LOW"); - - _valueLockedPerPolicy[bundleId][processId] -= amount; - bundle.capital -= amount; - bundle.lockedCapital -= amount; - bundle.balance -= amount; - bundle.updatedAt = block.timestamp; // solhint-disable-line - - emit LogBundlePayoutProcessed(bundleId, processId, amount); - } - - - /** - * @dev Release a policy and update the bundle capital. - * @param bundleId The ID of the bundle. - * @param processId The ID of the process. - * @return remainingCollateralAmount The remaining collateral amount after releasing the policy. - * @notice This function emits 1 events: - * - LogBundlePolicyReleased - */ - function releasePolicy(uint256 bundleId, bytes32 processId) - external override - onlyRiskpoolService - returns(uint256 remainingCollateralAmount) - { - IPolicy.Policy memory policy = _policy.getPolicy(processId); - require( - policy.state == IPolicy.PolicyState.Closed, - "ERROR:POL-050:POLICY_STATE_INVALID" - ); - - // make sure bundle exists and is not yet closed - Bundle storage bundle = _bundles[bundleId]; - require(bundle.createdAt > 0, "ERROR:BUC-051:BUNDLE_DOES_NOT_EXIST"); - require(_activePolicies[bundleId] > 0, "ERROR:BUC-052:NO_ACTIVE_POLICIES_FOR_BUNDLE"); - - uint256 lockedForPolicyAmount = _valueLockedPerPolicy[bundleId][processId]; - // this should never ever fail ... - require( - bundle.lockedCapital >= lockedForPolicyAmount, - "PANIC:BUC-053:UNLOCK_CAPITAL_TOO_BIG" - ); - - // policy no longer relevant for bundle - _activePolicies[bundleId] -= 1; - delete _valueLockedPerPolicy[bundleId][processId]; - - // update bundle capital - bundle.lockedCapital -= lockedForPolicyAmount; - bundle.updatedAt = block.timestamp; // solhint-disable-line - - uint256 capacityAmount = bundle.capital - bundle.lockedCapital; - emit LogBundlePolicyReleased(bundleId, processId, lockedForPolicyAmount, capacityAmount); - } - - /** - * @dev Returns the address of the owner of the token associated with the given bundle ID. - * @param bundleId The ID of the bundle. - * @return The address of the owner of the token. - */ - function getOwner(uint256 bundleId) public view returns(address) { - uint256 tokenId = getBundle(bundleId).tokenId; - return _token.ownerOf(tokenId); - } - - /** - * @dev Returns the state of the bundle with the given ID. - * @param bundleId The ID of the bundle to retrieve the state from. - * @return The state of the bundle with the given ID. - */ - function getState(uint256 bundleId) public view returns(BundleState) { - return getBundle(bundleId).state; - } - - /** - * @dev Returns the filter of a given bundle. - * @param bundleId The ID of the bundle to get the filter from. - * @return The filter of the bundle as a bytes array. - */ - function getFilter(uint256 bundleId) public view returns(bytes memory) { - return getBundle(bundleId).filter; - } - - /** - * @dev Returns the available capacity of a bundle. - * @param bundleId The ID of the bundle to get the capacity from. - * @return The available capacity of the bundle. - */ - function getCapacity(uint256 bundleId) public view returns(uint256) { - Bundle memory bundle = getBundle(bundleId); - return bundle.capital - bundle.lockedCapital; - } - - /** - * @dev Returns the total value locked in a particular bundle. - * @param bundleId The ID of the bundle. - * @return lockedCapital The total value locked in the bundle. - */ - function getTotalValueLocked(uint256 bundleId) public view returns(uint256) { - return getBundle(bundleId).lockedCapital; - } - - /** - * @dev Returns the balance of a specific bundle. - * @param bundleId The ID of the bundle to query. - * @return The balance of the specified bundle. - */ - function getBalance(uint256 bundleId) public view returns(uint256) { - return getBundle(bundleId).balance; - } - - /** - * @dev Returns the BundleToken contract instance. - * @return _token The BundleToken contract instance. - */ - function getToken() external view returns(BundleToken) { - return _token; - } - - /** - * @dev Returns the bundle with the specified bundle ID. - * @param bundleId The ID of the bundle to retrieve. - * @return bundle The bundle with the specified ID. - */ - function getBundle(uint256 bundleId) public view returns(Bundle memory) { - Bundle memory bundle = _bundles[bundleId]; - require(bundle.createdAt > 0, "ERROR:BUC-060:BUNDLE_DOES_NOT_EXIST"); - return bundle; - } - - /** - * @dev Returns the number of bundles created. - * @return _bundleCount The number of bundles created. - */ - function bundles() public view returns(uint256) { - return _bundleCount; - } - - /** - * @dev Returns the number of unburnt bundles for a given riskpool ID. - * @param riskpoolId The ID of the riskpool. - * @return The number of unburnt bundles for the given riskpool ID. - */ - function unburntBundles(uint256 riskpoolId) external view returns(uint256) { - return _unburntBundlesForRiskpoolId[riskpoolId]; - } - - /** - * @dev Returns the pool controller contract instance. - * @return _poolController The pool controller contract instance. - */ - function _getPoolController() internal view returns (PoolController _poolController) { - _poolController = PoolController(_getContractAddress("Pool")); - } - - /** - * @dev Changes the state of a bundle. - * @param bundleId The ID of the bundle to change the state of. - * @param newState The new state to set for the bundle. - * @notice This function emits 1 events: - * - LogBundleStateChanged - */ - function _changeState(uint256 bundleId, BundleState newState) internal { - BundleState oldState = getState(bundleId); - - _checkStateTransition(oldState, newState); - _setState(bundleId, newState); - - // log entry for successful state change - emit LogBundleStateChanged(bundleId, oldState, newState); - } - - /** - * @dev Sets the state and updated timestamp of a given bundle. - * @param bundleId The ID of the bundle to update. - * @param newState The new state of the bundle. - */ - function _setState(uint256 bundleId, BundleState newState) internal { - _bundles[bundleId].state = newState; - _bundles[bundleId].updatedAt = block.timestamp; - } - - /** - * @dev Checks if a state transition is valid. - * @param oldState The previous state of the bundle. - * @param newState The new state of the bundle. - * - * Requirements: - * - The oldState must be Active, Locked, Closed, or Burned. - * - The newState must be Locked, Active, Closed, or Burned, depending on the oldState. - * - * Error messages: - * - ERROR:BUC-070:ACTIVE_INVALID_TRANSITION if the oldState is Active and the newState is not Locked or Closed. - * - ERROR:BUC-071:LOCKED_INVALID_TRANSITION if the oldState is Locked and the newState is not Active or Closed. - * - ERROR:BUC-072:CLOSED_INVALID_TRANSITION if the oldState is Closed and the newState is not Burned. - * - ERROR:BUC-073:BURNED_IS_FINAL_STATE if the oldState is Burned. - * - ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED if the oldState is not Active, Locked, Closed, or Burned. - */ - function _checkStateTransition(BundleState oldState, BundleState newState) - internal - pure - { - if (oldState == BundleState.Active) { - require( - newState == BundleState.Locked || newState == BundleState.Closed, - "ERROR:BUC-070:ACTIVE_INVALID_TRANSITION" - ); - } else if (oldState == BundleState.Locked) { - require( - newState == BundleState.Active || newState == BundleState.Closed, - "ERROR:BUC-071:LOCKED_INVALID_TRANSITION" - ); - } else if (oldState == BundleState.Closed) { - require( - newState == BundleState.Burned, - "ERROR:BUC-072:CLOSED_INVALID_TRANSITION" - ); - } else if (oldState == BundleState.Burned) { - revert("ERROR:BUC-073:BURNED_IS_FINAL_STATE"); - } else { - revert("ERROR:BOC-074:INITIAL_STATE_NOT_HANDLED"); - } - } -} diff --git a/contracts-christoph2806/modules/ComponentController.sol b/contracts-christoph2806/modules/ComponentController.sol deleted file mode 100644 index 639ab783..00000000 --- a/contracts-christoph2806/modules/ComponentController.sol +++ /dev/null @@ -1,501 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../shared/CoreController.sol"; -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/components/IOracle.sol"; -import "@etherisc/gif-interface/contracts/components/IProduct.sol"; -import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; -import "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol"; -import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; - -contract ComponentController is - IComponentEvents, - CoreController - { - using EnumerableSet for EnumerableSet.UintSet; - - mapping(uint256 => IComponent) private _componentById; - mapping(bytes32 => uint256) private _componentIdByName; - mapping(address => uint256) private _componentIdByAddress; - - mapping(uint256 => IComponent.ComponentState) private _componentState; - - EnumerableSet.UintSet private _products; - EnumerableSet.UintSet private _oracles; - EnumerableSet.UintSet private _riskpools; - uint256 private _componentCount; - - mapping(uint256 /* product id */ => address /* policy flow address */) private _policyFlowByProductId; - - modifier onlyComponentOwnerService() { - require( - _msgSender() == _getContractAddress("ComponentOwnerService"), - "ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE"); - _; - } - - modifier onlyInstanceOperatorService() { - require( - _msgSender() == _getContractAddress("InstanceOperatorService"), - "ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE"); - _; - } - - /** - * @dev Proposes a new component to the system. - * @param component The component to be proposed. - * - * Emits a LogComponentProposed event with the name, type, address and id of the proposed component. - * Calls the proposalCallback function of the proposed component to inform it about the successful proposal. - * - * Requirements: - * - The caller must be the owner service of the component. - * - The component must not already exist in the system. - * - The component name must not already exist in the system. - * @notice This function emits 1 events: - * - LogComponentProposed - */ - function propose(IComponent component) - external - onlyComponentOwnerService - { - // input validation - require(_componentIdByAddress[address(component)] == 0, "ERROR:CCR-003:COMPONENT_ALREADY_EXISTS"); - require(_componentIdByName[component.getName()] == 0, "ERROR:CCR-004:COMPONENT_NAME_ALREADY_EXISTS"); - - // assigning id and persisting component - uint256 id = _persistComponent(component); - - // log entry for successful proposal - emit LogComponentProposed( - component.getName(), - component.getType(), - address(component), - id); - - // inform component about successful proposal - component.proposalCallback(); - } - - /** - * @dev Persists a new component into the system. - * @param component The component to be persisted. - * @return id The id of the newly persisted component. - * - * - Fetches the next component id. - * - Updates component state to Proposed. - * - Sets the id of the component. - * - Updates controller book keeping with the new component id. - * - Updates type specific book keeping. - */ - function _persistComponent(IComponent component) - internal - returns(uint256 id) - { - // fetch next component id - _componentCount++; - id = _componentCount; - - // update component state - _changeState(id, IComponent.ComponentState.Proposed); - component.setId(id); - - // update controller book keeping - _componentById[id] = component; - _componentIdByName[component.getName()] = id; - _componentIdByAddress[address(component)] = id; - - // type specific book keeping - if (component.isProduct()) { EnumerableSet.add(_products, id); } - else if (component.isOracle()) { EnumerableSet.add(_oracles, id); } - else if (component.isRiskpool()) { EnumerableSet.add(_riskpools, id); } - } - - /** - * @dev Checks if a component with the given ID exists. - * @param id The ID of the component to check. - * @return True if a component with the given ID exists, false otherwise. - */ - function exists(uint256 id) public view returns(bool) { - IComponent component = _componentById[id]; - return (address(component) != address(0)); - } - - /** - * @dev Approves a component with the given id. - * @param id The id of the component to be approved. - * - * Emits a LogComponentApproved event and informs the component about the successful approval by calling the approvalCallback function. - * If the component is a product, sets the policy flow in the _policyFlowByProductId mapping. - * @notice This function emits 1 events: - * - LogComponentApproved - */ - function approve(uint256 id) - external - onlyInstanceOperatorService - { - _changeState(id, IComponent.ComponentState.Active); - IComponent component = getComponent(id); - - if (isProduct(id)) { - _policyFlowByProductId[id] = IProduct(address(component)).getPolicyFlow(); - } - - emit LogComponentApproved(id); - - // inform component about successful approval - component.approvalCallback(); - } - - /** - * @dev Changes the state of a component with the given ID to "Declined" and emits a LogComponentDeclined event. - * Calls the declineCallback function of the component with the given ID. - * - * @param id The ID of the component to decline. - * @notice This function emits 1 events: - * - LogComponentDeclined - */ - function decline(uint256 id) - external - onlyInstanceOperatorService - { - _changeState(id, IComponent.ComponentState.Declined); - emit LogComponentDeclined(id); - - // inform component about decline - IComponent component = getComponent(id); - component.declineCallback(); - } - - /** - * @dev Suspends a component with the given ID. - * - * @param id The ID of the component to suspend. - * - * @notice This function emits 1 events: - * - LogComponentSuspended - */ - function suspend(uint256 id) - external - onlyInstanceOperatorService - { - _changeState(id, IComponent.ComponentState.Suspended); - emit LogComponentSuspended(id); - - // inform component about suspending - IComponent component = getComponent(id); - component.suspendCallback(); - } - - /** - * @dev Resumes a component by changing its state to Active and emitting an event. - * It also calls the resumeCallback() function of the component to inform it about the resuming. - * - * @param id The ID of the component to be resumed. - * @notice This function emits 1 events: - * - LogComponentResumed - */ - function resume(uint256 id) - external - onlyInstanceOperatorService - { - _changeState(id, IComponent.ComponentState.Active); - emit LogComponentResumed(id); - - // inform component about resuming - IComponent component = getComponent(id); - component.resumeCallback(); - } - - /** - * @dev Pauses the component with the given ID. - * @param id The ID of the component to be paused. - * @notice This function emits 1 events: - * - LogComponentPaused - */ - function pause(uint256 id) - external - onlyComponentOwnerService - { - _changeState(id, IComponent.ComponentState.Paused); - emit LogComponentPaused(id); - - // inform component about pausing - IComponent component = getComponent(id); - component.pauseCallback(); - } - - /** - * @dev Unpauses a component with the given id. - * - * @param id The id of the component to unpause. - * - * @notice This function emits 1 events: - * - LogComponentUnpaused - */ - function unpause(uint256 id) - external - onlyComponentOwnerService - { - _changeState(id, IComponent.ComponentState.Active); - emit LogComponentUnpaused(id); - - // inform component about unpausing - IComponent component = getComponent(id); - component.unpauseCallback(); - } - - /** - * @dev Archives a component with the given ID, changing its state to "Archived" and emitting a LogComponentArchived event. - * Also calls the archiveCallback function of the component with the given ID, informing it about the archiving. - * - * @param id The ID of the component to be archived. - * @notice This function emits 1 events: - * - LogComponentArchived - */ - function archiveFromComponentOwner(uint256 id) - external - onlyComponentOwnerService - { - _changeState(id, IComponent.ComponentState.Archived); - emit LogComponentArchived(id); - - // inform component about archiving - IComponent component = getComponent(id); - component.archiveCallback(); - } - - /** - * @dev Archives a component instance with the given ID. - * @param id The ID of the component instance to be archived. - * - * @notice This function emits 1 events: - * - LogComponentArchived - */ - function archiveFromInstanceOperator(uint256 id) - external - onlyInstanceOperatorService - { - _changeState(id, IComponent.ComponentState.Archived); - emit LogComponentArchived(id); - - // inform component about archiving - IComponent component = getComponent(id); - component.archiveCallback(); - } - - /** - * @dev Returns the component with the given ID. - * @param id The ID of the component to retrieve. - * @return component The component with the given ID. - */ - function getComponent(uint256 id) public view returns (IComponent component) { - component = _componentById[id]; - require(address(component) != address(0), "ERROR:CCR-005:INVALID_COMPONENT_ID"); - } - - /** - * @dev Returns the ID of a registered component given its address. - * @param componentAddress The address of the component. - * @return id The ID of the component. - */ - function getComponentId(address componentAddress) public view returns (uint256 id) { - require(componentAddress != address(0), "ERROR:CCR-006:COMPONENT_ADDRESS_ZERO"); - id = _componentIdByAddress[componentAddress]; - - require(id > 0, "ERROR:CCR-007:COMPONENT_UNKNOWN"); - } - - /** - * @dev Returns the component type of a given component ID. - * @param id The ID of the component. - * @return componentType The type of the component (Product, Oracle or Riskpool). - * @notice If the component ID is not found, reverts with an error message. - */ - function getComponentType(uint256 id) public view returns (IComponent.ComponentType componentType) { - if (EnumerableSet.contains(_products, id)) { - return IComponent.ComponentType.Product; - } else if (EnumerableSet.contains(_oracles, id)) { - return IComponent.ComponentType.Oracle; - } else if (EnumerableSet.contains(_riskpools, id)) { - return IComponent.ComponentType.Riskpool; - } else { - revert("ERROR:CCR-008:INVALID_COMPONENT_ID"); - } - } - - /** - * @dev Returns the state of the component with the given ID. - * @param id The ID of the component. - * @return componentState The state of the component. - */ - function getComponentState(uint256 id) public view returns (IComponent.ComponentState componentState) { - return _componentState[id]; - } - - /** - * @dev Returns the oracle ID at the given index. - * @param idx The index of the oracle ID to retrieve. - * @return oracleId The oracle ID at the given index. - */ - function getOracleId(uint256 idx) public view returns (uint256 oracleId) { - return EnumerableSet.at(_oracles, idx); - } - - /** - * @dev Returns the riskpool ID at the specified index. - * @param idx The index of the riskpool ID to retrieve. - * @return riskpoolId The ID of the riskpool at the specified index. - */ - function getRiskpoolId(uint256 idx) public view returns (uint256 riskpoolId) { - return EnumerableSet.at(_riskpools, idx); - } - - /** - * @dev Returns the product ID at the given index in the _products set. - * @param idx The index of the product ID to retrieve. - * @return productId The product ID at the given index. - */ - function getProductId(uint256 idx) public view returns (uint256 productId) { - return EnumerableSet.at(_products, idx); - } - - /** - * @dev Returns the required role for a given component type. - * @param componentType The type of component for which to retrieve the required role. - * @return The required role as a bytes32 value. - * - * Requirements: - * - The component type must be a valid value from the IComponent.ComponentType enum. - * - If the component type is not recognized, the function reverts with an error message. - */ - function getRequiredRole(IComponent.ComponentType componentType) external view returns (bytes32) { - if (componentType == IComponent.ComponentType.Product) { return _access.getProductOwnerRole(); } - else if (componentType == IComponent.ComponentType.Oracle) { return _access.getOracleProviderRole(); } - else if (componentType == IComponent.ComponentType.Riskpool) { return _access.getRiskpoolKeeperRole(); } - else { revert("ERROR:CCR-010:COMPONENT_TYPE_UNKNOWN"); } - } - - /** - * @dev Returns the number of components currently stored in the contract. - * @return count The number of components stored. - */ - function components() public view returns (uint256 count) { return _componentCount; } - /** - * @dev Returns the number of products in the set '_products'. - * @return count The number of products in the set '_products'. - */ - function products() public view returns (uint256 count) { return EnumerableSet.length(_products); } - /** - * @dev Returns the number of oracles registered in the _oracles set. - * @return count The number of oracles registered in the _oracles set. - */ - function oracles() public view returns (uint256 count) { return EnumerableSet.length(_oracles); } - /** - * @dev Returns the number of risk pools in the EnumerableSet. - * @return count The number of risk pools in the EnumerableSet. - */ - function riskpools() public view returns (uint256 count) { return EnumerableSet.length(_riskpools); } - - /** - * @dev Check if a product exists in the set of products. - * @param id The ID of the product to check. - * @return Returns true if the product exists in the set, false otherwise. - */ - function isProduct(uint256 id) public view returns (bool) { return EnumerableSet.contains(_products, id); } - - /** - * @dev Checks if an oracle with a given ID exists. - * @param id The ID of the oracle to check. - * @return A boolean indicating whether the oracle exists or not. - */ - function isOracle(uint256 id) public view returns (bool) { return EnumerableSet.contains(_oracles, id); } - - /** - * @dev Checks if a given ID is a riskpool. - * @param id The ID to check. - * @return A boolean value indicating if the given ID is a riskpool. - */ - function isRiskpool(uint256 id) public view returns (bool) { return EnumerableSet.contains(_riskpools, id); } - - /** - * @dev Returns the address of the policy flow for a given product ID. - * @param productId The ID of the product to retrieve the policy flow for. - * @return _policyFlow The address of the policy flow for the given product ID. - */ - function getPolicyFlow(uint256 productId) public view returns (address _policyFlow) { - require(isProduct(productId), "ERROR:CCR-011:UNKNOWN_PRODUCT_ID"); - _policyFlow = _policyFlowByProductId[productId]; - } - - /** - * @dev Changes the state of a component. - * @param componentId The ID of the component to change the state of. - * @param newState The new state to set for the component. - * - * Emits a LogComponentStateChanged event upon successful state change. - * @notice This function emits 1 events: - * - LogComponentStateChanged - */ - function _changeState(uint256 componentId, IComponent.ComponentState newState) internal { - IComponent.ComponentState oldState = _componentState[componentId]; - - _checkStateTransition(oldState, newState); - _componentState[componentId] = newState; - - // log entry for successful component state change - emit LogComponentStateChanged(componentId, oldState, newState); - } - - /** - * @dev Checks if the state transition is valid. - * @param oldState The current state of the component. - * @param newState The state to which the component will transition. - * - * - * @dev Throws an error if the newState is the same as the oldState. - * @dev Throws an error if the transition from Created state is not to Proposed state. - * @dev Throws an error if the transition from Proposed state is not to Active or Declined state. - * @dev Throws an error if the transition from Declined state is attempted. - * @dev Throws an error if the transition from Active state is not to Paused or Suspended state. - * @dev Throws an error if the transition from Paused state is not to Active or Archived state. - * @dev Throws an error if the transition from Suspended state is not to Active or Archived state. - * @dev Throws an error if the initial state is not handled. - */ - function _checkStateTransition( - IComponent.ComponentState oldState, - IComponent.ComponentState newState - ) - internal - pure - { - require(newState != oldState, - "ERROR:CCR-020:SOURCE_AND_TARGET_STATE_IDENTICAL"); - - if (oldState == IComponent.ComponentState.Created) { - require(newState == IComponent.ComponentState.Proposed, - "ERROR:CCR-021:CREATED_INVALID_TRANSITION"); - } else if (oldState == IComponent.ComponentState.Proposed) { - require(newState == IComponent.ComponentState.Active - || newState == IComponent.ComponentState.Declined, - "ERROR:CCR-22:PROPOSED_INVALID_TRANSITION"); - } else if (oldState == IComponent.ComponentState.Declined) { - revert("ERROR:CCR-023:DECLINED_IS_FINAL_STATE"); - } else if (oldState == IComponent.ComponentState.Active) { - require(newState == IComponent.ComponentState.Paused - || newState == IComponent.ComponentState.Suspended, - "ERROR:CCR-024:ACTIVE_INVALID_TRANSITION"); - } else if (oldState == IComponent.ComponentState.Paused) { - require(newState == IComponent.ComponentState.Active - || newState == IComponent.ComponentState.Archived, - "ERROR:CCR-025:PAUSED_INVALID_TRANSITION"); - } else if (oldState == IComponent.ComponentState.Suspended) { - require(newState == IComponent.ComponentState.Active - || newState == IComponent.ComponentState.Archived, - "ERROR:CCR-026:SUSPENDED_INVALID_TRANSITION"); - } else { - revert("ERROR:CCR-027:INITIAL_STATE_NOT_HANDLED"); - } - } -} diff --git a/contracts-christoph2806/modules/LicenseController.sol b/contracts-christoph2806/modules/LicenseController.sol deleted file mode 100644 index 8e81d495..00000000 --- a/contracts-christoph2806/modules/LicenseController.sol +++ /dev/null @@ -1,64 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "./ComponentController.sol"; -import "../shared/CoreController.sol"; - -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/components/IProduct.sol"; -import "@etherisc/gif-interface/contracts/modules/ILicense.sol"; - - -contract LicenseController is - ILicense, - CoreController -{ - - ComponentController private _component; - - /** - * @dev This function is called after the contract is initialized and sets the `_component` variable to the address of the `ComponentController` contract. - * - */ - function _afterInitialize() internal override onlyInitializing { - _component = ComponentController(_getContractAddress("Component")); - } - - // ensures that calling component (productAddress) is a product - /** - * @dev Returns the authorization status of a given product address. - * @param productAddress The address of the product to check authorization status for. - * @return productId The ID of the product. - * @return isAuthorized A boolean indicating whether the product is authorized or not. - * @return policyFlow The address of the policy flow associated with the product. - */ - function getAuthorizationStatus(address productAddress) - public override - view - returns (uint256 productId, bool isAuthorized, address policyFlow) - { - productId = _component.getComponentId(productAddress); - isAuthorized = _isValidCall(productId); - policyFlow = _component.getPolicyFlow(productId); - } - - /** - * @dev Checks if a product is currently active. - * @param productId The ID of the product to check. - * @return A boolean indicating if the product is active or not. - */ - function _isValidCall(uint256 productId) internal view returns (bool) { - return _component.getComponentState(productId) == IComponent.ComponentState.Active; - } - - /** - * @dev Returns the product associated with the given ID. - * @param id The ID of the product to retrieve. - * @return product The product associated with the given ID. - */ - function _getProduct(uint256 id) internal view returns (IProduct product) { - require(_component.isProduct(id), "ERROR:LIC-001:COMPONENT_NOT_PRODUCT"); - IComponent cmp = _component.getComponent(id); - product = IProduct(address(cmp)); - } -} diff --git a/contracts-christoph2806/modules/PolicyController.sol b/contracts-christoph2806/modules/PolicyController.sol deleted file mode 100644 index 43ef1707..00000000 --- a/contracts-christoph2806/modules/PolicyController.sol +++ /dev/null @@ -1,814 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../shared/CoreController.sol"; -import "./ComponentController.sol"; -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; - -contract PolicyController is - IPolicy, - CoreController -{ - // bytes32 public constant NAME = "PolicyController"; - - // Metadata - mapping(bytes32 /* processId */ => Metadata) public metadata; - - // Applications - mapping(bytes32 /* processId */ => Application) public applications; - - // Policies - mapping(bytes32 /* processId */ => Policy) public policies; - - // Claims - mapping(bytes32 /* processId */ => mapping(uint256 /* claimId */ => Claim)) public claims; - - // Payouts - mapping(bytes32 /* processId */ => mapping(uint256 /* payoutId */ => Payout)) public payouts; - mapping(bytes32 /* processId */ => uint256) public payoutCount; - - // counter for assigned processIds, used to ensure unique processIds - uint256 private _assigendProcessIds; - - ComponentController private _component; - - /** - * @dev Internal function that sets the _component variable to the address of the ComponentController contract. - * - */ - function _afterInitialize() internal override onlyInitializing { - _component = ComponentController(_getContractAddress("Component")); - } - - /* Metadata */ - /** - * @dev Creates a new policy flow for a given owner and product. - * @param owner The address of the owner of the policy flow. - * @param productId The ID of the product associated with the policy flow. - * @param data Additional data associated with the policy flow. - * @return processId The ID of the newly created policy flow. - * @notice This function emits 1 events: - * - LogMetadataCreated - */ - function createPolicyFlow( - address owner, - uint256 productId, - bytes calldata data - ) - external override - onlyPolicyFlow("Policy") - returns(bytes32 processId) - { - require(owner != address(0), "ERROR:POL-001:INVALID_OWNER"); - - require(_component.isProduct(productId), "ERROR:POL-002:INVALID_PRODUCT"); - require(_component.getComponentState(productId) == IComponent.ComponentState.Active, "ERROR:POL-003:PRODUCT_NOT_ACTIVE"); - - processId = _generateNextProcessId(); - Metadata storage meta = metadata[processId]; - require(meta.createdAt == 0, "ERROR:POC-004:METADATA_ALREADY_EXISTS"); - - meta.owner = owner; - meta.productId = productId; - meta.state = PolicyFlowState.Started; - meta.data = data; - meta.createdAt = block.timestamp; // solhint-disable-line - meta.updatedAt = block.timestamp; // solhint-disable-line - - emit LogMetadataCreated(owner, processId, productId, PolicyFlowState.Started); - } - - /* Application */ - /** - * @dev Creates a new insurance application for a given process ID. - * @param processId The unique process ID associated with the insurance application. - * @param premiumAmount The amount of premium to be paid for the insurance. - * @param sumInsuredAmount The amount of coverage provided by the insurance. - * @param data Additional data associated with the insurance application. - * - * Emits a LogApplicationCreated event with the process ID, premium amount, and sum insured amount. - * - * Requirements: - * - The metadata for the process ID must exist. - * - An application for the process ID must not already exist. - * - The premium amount must be greater than zero. - * - The sum insured amount must be greater than the premium amount. - * - Only the PolicyFlow contract can call this function. - * @notice This function emits 2 events: - * - LogApplicationCreated - * - LogMetadataStateChanged - */ - function createApplication( - bytes32 processId, - uint256 premiumAmount, - uint256 sumInsuredAmount, - bytes calldata data - ) - external override - onlyPolicyFlow("Policy") - { - Metadata storage meta = metadata[processId]; - require(meta.createdAt > 0, "ERROR:POC-010:METADATA_DOES_NOT_EXIST"); - - Application storage application = applications[processId]; - require(application.createdAt == 0, "ERROR:POC-011:APPLICATION_ALREADY_EXISTS"); - - require(premiumAmount > 0, "ERROR:POC-012:PREMIUM_AMOUNT_ZERO"); - require(sumInsuredAmount > premiumAmount, "ERROR:POC-013:SUM_INSURED_AMOUNT_TOO_SMALL"); - - application.state = ApplicationState.Applied; - application.premiumAmount = premiumAmount; - application.sumInsuredAmount = sumInsuredAmount; - application.data = data; - application.createdAt = block.timestamp; // solhint-disable-line - application.updatedAt = block.timestamp; // solhint-disable-line - - meta.state = PolicyFlowState.Active; - meta.updatedAt = block.timestamp; // solhint-disable-line - emit LogMetadataStateChanged(processId, meta.state); - - emit LogApplicationCreated(processId, premiumAmount, sumInsuredAmount); - } - - /** - * @dev Collects premium for a policy. - * @param processId The unique identifier of the policy. - * @param amount The amount of premium to be collected. - * - * Requirements: - * - The policy must exist. - * - The amount to be collected must not exceed the expected premium amount. - * - * Emits a {LogPremiumCollected} event. - * @notice This function emits 1 events: - * - LogPremiumCollected - */ - function collectPremium(bytes32 processId, uint256 amount) - external override - { - Policy storage policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-110:POLICY_DOES_NOT_EXIST"); - require(policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, "ERROR:POC-111:AMOUNT_TOO_BIG"); - - policy.premiumPaidAmount += amount; - policy.updatedAt = block.timestamp; // solhint-disable-line - - emit LogPremiumCollected(processId, amount); - } - - /** - * @dev Revokes an application with the given process ID. - * @param processId The process ID of the application to be revoked. - * @notice This function emits 2 events: - * - LogApplicationRevoked - * - LogMetadataStateChanged - */ - function revokeApplication(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { - Metadata storage meta = metadata[processId]; - require(meta.createdAt > 0, "ERROR:POC-014:METADATA_DOES_NOT_EXIST"); - - Application storage application = applications[processId]; - require(application.createdAt > 0, "ERROR:POC-015:APPLICATION_DOES_NOT_EXIST"); - require(application.state == ApplicationState.Applied, "ERROR:POC-016:APPLICATION_STATE_INVALID"); - - application.state = ApplicationState.Revoked; - application.updatedAt = block.timestamp; // solhint-disable-line - - meta.state = PolicyFlowState.Finished; - meta.updatedAt = block.timestamp; // solhint-disable-line - emit LogMetadataStateChanged(processId, meta.state); - - emit LogApplicationRevoked(processId); - } - - /** - * @dev Changes the state of an application to underwritten. - * @param processId The unique ID of the application process. - * - * Emits a LogApplicationUnderwritten event. - * @notice This function emits 1 events: - * - LogApplicationUnderwritten - */ - function underwriteApplication(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { - Application storage application = applications[processId]; - require(application.createdAt > 0, "ERROR:POC-017:APPLICATION_DOES_NOT_EXIST"); - require(application.state == ApplicationState.Applied, "ERROR:POC-018:APPLICATION_STATE_INVALID"); - - application.state = ApplicationState.Underwritten; - application.updatedAt = block.timestamp; // solhint-disable-line - - emit LogApplicationUnderwritten(processId); - } - - /** - * @dev Declines an application for a policy flow. - * @param processId The unique identifier of the policy flow process. - * - * - * Emits a LogMetadataStateChanged event with the updated metadata state. - * Emits a LogApplicationDeclined event with the declined application's process ID. - * - * Requirements: - * - The function can only be called by a "Policy" policy flow. - * - The metadata for the given process ID must exist. - * - The application for the given process ID must exist and be in the "Applied" state. - * - * Effects: - * - Updates the state of the application to "Declined". - * - Updates the state of the metadata to "Finished". - * - Updates the updatedAt timestamps for both the application and metadata. - * @notice This function emits 2 events: - * - LogApplicationDeclined - * - LogMetadataStateChanged - */ - function declineApplication(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { - Metadata storage meta = metadata[processId]; - require(meta.createdAt > 0, "ERROR:POC-019:METADATA_DOES_NOT_EXIST"); - - Application storage application = applications[processId]; - require(application.createdAt > 0, "ERROR:POC-020:APPLICATION_DOES_NOT_EXIST"); - require(application.state == ApplicationState.Applied, "ERROR:POC-021:APPLICATION_STATE_INVALID"); - - application.state = ApplicationState.Declined; - application.updatedAt = block.timestamp; // solhint-disable-line - - meta.state = PolicyFlowState.Finished; - meta.updatedAt = block.timestamp; // solhint-disable-line - emit LogMetadataStateChanged(processId, meta.state); - - emit LogApplicationDeclined(processId); - } - - /* Policy */ - /** - * @dev Creates a new policy for a given application process ID. - * @param processId The ID of the application process. - * - * - * Emits a `LogPolicyCreated` event. - * - * Requirements: - * - The caller must have the 'Policy' role. - * - The application must exist and be in the 'Underwritten' state. - * - The policy must not already exist for the given process ID. - * @notice This function emits 1 events: - * - LogPolicyCreated - */ - function createPolicy(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { - Application memory application = applications[processId]; - require(application.createdAt > 0 && application.state == ApplicationState.Underwritten, "ERROR:POC-022:APPLICATION_ACCESS_INVALID"); - - Policy storage policy = policies[processId]; - require(policy.createdAt == 0, "ERROR:POC-023:POLICY_ALREADY_EXISTS"); - - policy.state = PolicyState.Active; - policy.premiumExpectedAmount = application.premiumAmount; - policy.payoutMaxAmount = application.sumInsuredAmount; - policy.createdAt = block.timestamp; // solhint-disable-line - policy.updatedAt = block.timestamp; // solhint-disable-line - - emit LogPolicyCreated(processId); - } - - /** - * @dev This function adjusts the premium and sum insured amount of an insurance policy application. - * @param processId The unique identifier of the insurance policy application. - * @param expectedPremiumAmount The expected premium amount for the insurance policy. - * @param sumInsuredAmount The sum insured amount for the insurance policy. - * - * @notice This function emits 3 events: - * - LogApplicationPremiumAdjusted - * - LogPolicyPremiumAdjusted - * - LogApplicationSumInsuredAdjusted - */ - function adjustPremiumSumInsured( - bytes32 processId, - uint256 expectedPremiumAmount, - uint256 sumInsuredAmount - ) - external override - onlyPolicyFlow("Policy") - { - Application storage application = applications[processId]; - require( - application.createdAt > 0 - && application.state == ApplicationState.Underwritten, - "ERROR:POC-024:APPLICATION_ACCESS_INVALID"); - - require( - sumInsuredAmount <= application.sumInsuredAmount, - "ERROR:POC-026:APPLICATION_SUM_INSURED_INCREASE_INVALID"); - - Policy storage policy = policies[processId]; - require( - policy.createdAt > 0 - && policy.state == IPolicy.PolicyState.Active, - "ERROR:POC-027:POLICY_ACCESS_INVALID"); - - require( - expectedPremiumAmount > 0 - && expectedPremiumAmount >= policy.premiumPaidAmount - && expectedPremiumAmount < sumInsuredAmount, - "ERROR:POC-025:APPLICATION_PREMIUM_INVALID"); - - if (sumInsuredAmount != application.sumInsuredAmount) { - emit LogApplicationSumInsuredAdjusted(processId, application.sumInsuredAmount, sumInsuredAmount); - application.sumInsuredAmount = sumInsuredAmount; - application.updatedAt = block.timestamp; // solhint-disable-line - - policy.payoutMaxAmount = sumInsuredAmount; - policy.updatedAt = block.timestamp; // solhint-disable-line - } - - if (expectedPremiumAmount != application.premiumAmount) { - emit LogApplicationPremiumAdjusted(processId, application.premiumAmount, expectedPremiumAmount); - application.premiumAmount = expectedPremiumAmount; - application.updatedAt = block.timestamp; // solhint-disable-line - - emit LogPolicyPremiumAdjusted(processId, policy.premiumExpectedAmount, expectedPremiumAmount); - policy.premiumExpectedAmount = expectedPremiumAmount; - policy.updatedAt = block.timestamp; // solhint-disable-line - } - } - - /** - * @dev This function expires a policy with the given process ID. - * - * @param processId The process ID of the policy to be expired. - * - * @notice This function emits 1 events: - * - LogPolicyExpired - */ - function expirePolicy(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { - Policy storage policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-028:POLICY_DOES_NOT_EXIST"); - require(policy.state == PolicyState.Active, "ERROR:POC-029:APPLICATION_STATE_INVALID"); - - policy.state = PolicyState.Expired; - policy.updatedAt = block.timestamp; // solhint-disable-line - - emit LogPolicyExpired(processId); - } - - /** - * @dev Closes a policy that has expired and has no open claims. - * @param processId The unique identifier of the policy. - * - * - * Emits a LogMetadataStateChanged event with the updated metadata state. - * Emits a LogPolicyClosed event with the unique identifier of the closed policy. - * - * Requirements: - * - The metadata for the given processId must exist. - * - The policy for the given processId must exist. - * - The state of the policy must be 'Expired'. - * - The policy must have no open claims. - * @notice This function emits 2 events: - * - LogMetadataStateChanged - * - LogPolicyClosed - */ - function closePolicy(bytes32 processId) - external override - onlyPolicyFlow("Policy") - { - Metadata storage meta = metadata[processId]; - require(meta.createdAt > 0, "ERROR:POC-030:METADATA_DOES_NOT_EXIST"); - - Policy storage policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-031:POLICY_DOES_NOT_EXIST"); - require(policy.state == PolicyState.Expired, "ERROR:POC-032:POLICY_STATE_INVALID"); - require(policy.openClaimsCount == 0, "ERROR:POC-033:POLICY_HAS_OPEN_CLAIMS"); - - policy.state = PolicyState.Closed; - policy.updatedAt = block.timestamp; // solhint-disable-line - - meta.state = PolicyFlowState.Finished; - meta.updatedAt = block.timestamp; // solhint-disable-line - emit LogMetadataStateChanged(processId, meta.state); - - emit LogPolicyClosed(processId); - } - - /* Claim */ - /** - * @dev Creates a new claim for a given policy. - * @param processId The ID of the policy. - * @param claimAmount The amount of the claim. - * @param data Additional data related to the claim. - * @return claimId The ID of the newly created claim. - * - * Emits a LogClaimCreated event. - * - * Requirements: - * - The caller must be authorized to create claims for the policy. - * - The policy must exist and be in an active state. - * - The sum of the payout amount and the claim amount must not exceed the maximum payout amount. - * - The claim must not already exist. - * - * Note: The function allows claims with amount 0 to be created, which can be useful for parametric insurance. - * @notice This function emits 1 events: - * - LogClaimCreated - */ - function createClaim( - bytes32 processId, - uint256 claimAmount, - bytes calldata data - ) - external override - onlyPolicyFlow("Policy") - returns (uint256 claimId) - { - Policy storage policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-040:POLICY_DOES_NOT_EXIST"); - require(policy.state == IPolicy.PolicyState.Active, "ERROR:POC-041:POLICY_NOT_ACTIVE"); - // no validation of claimAmount > 0 here to explicitly allow claims with amount 0. This can be useful for parametric insurance - // to have proof that the claim calculation was executed without entitlement to payment. - require(policy.payoutAmount + claimAmount <= policy.payoutMaxAmount, "ERROR:POC-042:CLAIM_AMOUNT_EXCEEDS_MAX_PAYOUT"); - - claimId = policy.claimsCount; - Claim storage claim = claims[processId][claimId]; - require(claim.createdAt == 0, "ERROR:POC-043:CLAIM_ALREADY_EXISTS"); - - claim.state = ClaimState.Applied; - claim.claimAmount = claimAmount; - claim.data = data; - claim.createdAt = block.timestamp; // solhint-disable-line - claim.updatedAt = block.timestamp; // solhint-disable-line - - policy.claimsCount++; - policy.openClaimsCount++; - policy.updatedAt = block.timestamp; // solhint-disable-line - - emit LogClaimCreated(processId, claimId, claimAmount); - } - - /** - * @dev Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. - * @param processId The ID of the policy the claim belongs to. - * @param claimId The ID of the claim to confirm. - * @param confirmedAmount The amount to confirm for the claim. - * - * Requirements: - * - Only the Policy contract can call this function. - * - The policy must exist. - * - The policy must have at least one open claim. - * - The sum of the policy's payout amount and the confirmed amount must not exceed the policy's maximum payout amount. - * - The claim must exist. - * - The claim state must be Applied. - * - * Emits a LogClaimConfirmed event with the process ID, claim ID, and confirmed amount. - * @notice This function emits 1 events: - * - LogClaimConfirmed - */ - function confirmClaim( - bytes32 processId, - uint256 claimId, - uint256 confirmedAmount - ) - external override - onlyPolicyFlow("Policy") - { - Policy storage policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-050:POLICY_DOES_NOT_EXIST"); - require(policy.openClaimsCount > 0, "ERROR:POC-051:POLICY_WITHOUT_OPEN_CLAIMS"); - // no validation of claimAmount > 0 here as is it possible to have claims with amount 0 (see createClaim()). - require(policy.payoutAmount + confirmedAmount <= policy.payoutMaxAmount, "ERROR:POC-052:PAYOUT_MAX_AMOUNT_EXCEEDED"); - - Claim storage claim = claims[processId][claimId]; - require(claim.createdAt > 0, "ERROR:POC-053:CLAIM_DOES_NOT_EXIST"); - require(claim.state == ClaimState.Applied, "ERROR:POC-054:CLAIM_STATE_INVALID"); - - claim.state = ClaimState.Confirmed; - claim.claimAmount = confirmedAmount; - claim.updatedAt = block.timestamp; // solhint-disable-line - - policy.payoutAmount += confirmedAmount; - policy.updatedAt = block.timestamp; // solhint-disable-line - - emit LogClaimConfirmed(processId, claimId, confirmedAmount); - } - - /** - * @dev This function allows the Policy contract to decline a claim. - * @param processId The ID of the process to which the policy belongs. - * @param claimId The ID of the claim to be declined. - * - * Emits a LogClaimDeclined event. - * @notice This function emits 1 events: - * - LogClaimDeclined - */ - function declineClaim(bytes32 processId, uint256 claimId) - external override - onlyPolicyFlow("Policy") - { - Policy storage policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-060:POLICY_DOES_NOT_EXIST"); - require(policy.openClaimsCount > 0, "ERROR:POC-061:POLICY_WITHOUT_OPEN_CLAIMS"); - - Claim storage claim = claims[processId][claimId]; - require(claim.createdAt > 0, "ERROR:POC-062:CLAIM_DOES_NOT_EXIST"); - require(claim.state == ClaimState.Applied, "ERROR:POC-063:CLAIM_STATE_INVALID"); - - claim.state = ClaimState.Declined; - claim.updatedAt = block.timestamp; // solhint-disable-line - - policy.updatedAt = block.timestamp; // solhint-disable-line - - emit LogClaimDeclined(processId, claimId); - } - - /** - * @dev Closes a claim for a given policy. - * @param processId The ID of the policy process. - * @param claimId The ID of the claim to be closed. - * - * @notice This function emits 1 events: - * - LogClaimClosed - */ - function closeClaim(bytes32 processId, uint256 claimId) - external override - onlyPolicyFlow("Policy") - { - Policy storage policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-070:POLICY_DOES_NOT_EXIST"); - require(policy.openClaimsCount > 0, "ERROR:POC-071:POLICY_WITHOUT_OPEN_CLAIMS"); - - Claim storage claim = claims[processId][claimId]; - require(claim.createdAt > 0, "ERROR:POC-072:CLAIM_DOES_NOT_EXIST"); - require( - claim.state == ClaimState.Confirmed - || claim.state == ClaimState.Declined, - "ERROR:POC-073:CLAIM_STATE_INVALID"); - - require( - (claim.state == ClaimState.Confirmed && claim.claimAmount == claim.paidAmount) - || (claim.state == ClaimState.Declined), - "ERROR:POC-074:CLAIM_WITH_UNPAID_PAYOUTS" - ); - - claim.state = ClaimState.Closed; - claim.updatedAt = block.timestamp; // solhint-disable-line - - policy.openClaimsCount--; - policy.updatedAt = block.timestamp; // solhint-disable-line - - emit LogClaimClosed(processId, claimId); - } - - /* Payout */ - /** - * @dev Creates a new payout for a confirmed claim in a policy. - * @param processId The ID of the policy. - * @param claimId The ID of the claim associated with the payout. - * @param payoutAmount The amount of the payout. - * @param data Additional data related to the payout. - * @return payoutId The ID of the newly created payout. - * - * Emits a LogPayoutCreated event with the processId, claimId, payoutId, and payoutAmount. - * - * Requirements: - * - The caller must have the onlyPolicyFlow modifier with "Policy" as the argument. - * - The policy with the given processId must exist. - * - The claim with the given claimId must exist and be in the Confirmed state. - * - The payoutAmount must be greater than zero. - * - The sum of the paidAmount of the claim and the payoutAmount must not exceed the claimAmount of the claim. - * - A payout with the given processId and payoutId must not already exist. - * @notice This function emits 1 events: - * - LogPayoutCreated - */ - function createPayout( - bytes32 processId, - uint256 claimId, - uint256 payoutAmount, - bytes calldata data - ) - external override - onlyPolicyFlow("Policy") - returns (uint256 payoutId) - { - Policy storage policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-080:POLICY_DOES_NOT_EXIST"); - - Claim storage claim = claims[processId][claimId]; - require(claim.createdAt > 0, "ERROR:POC-081:CLAIM_DOES_NOT_EXIST"); - require(claim.state == IPolicy.ClaimState.Confirmed, "ERROR:POC-082:CLAIM_NOT_CONFIRMED"); - require(payoutAmount > 0, "ERROR:POC-083:PAYOUT_AMOUNT_ZERO_INVALID"); - require( - claim.paidAmount + payoutAmount <= claim.claimAmount, - "ERROR:POC-084:PAYOUT_AMOUNT_TOO_BIG" - ); - - payoutId = payoutCount[processId]; - Payout storage payout = payouts[processId][payoutId]; - require(payout.createdAt == 0, "ERROR:POC-085:PAYOUT_ALREADY_EXISTS"); - - payout.claimId = claimId; - payout.amount = payoutAmount; - payout.data = data; - payout.state = PayoutState.Expected; - payout.createdAt = block.timestamp; // solhint-disable-line - payout.updatedAt = block.timestamp; // solhint-disable-line - - payoutCount[processId]++; - policy.updatedAt = block.timestamp; // solhint-disable-line - - emit LogPayoutCreated(processId, claimId, payoutId, payoutAmount); - } - - /** - * @dev Processes a payout for a policy and claim. - * @param processId The ID of the policy to process the payout for. - * @param payoutId The ID of the payout to process. - * - * Emits a LogPayoutProcessed event. - * If the claim is fully paid, emits a LogClaimClosed event. - * - * Requirements: - * - The caller must have the onlyPolicyFlow modifier with the "Policy" role. - * - The policy with the given processId must exist. - * - The policy with the given processId must have at least one open claim. - * - The payout with the given payoutId must exist. - * - The payout with the given payoutId must be in the Expected state. - * - * Effects: - * - Changes the state of the payout to PaidOut. - * - Updates the updatedAt timestamp of the payout. - * - Increases the paidAmount of the claim associated with the payout. - * - Updates the updatedAt timestamp of the claim. - * - If the claim is fully paid, changes the state of the claim to Closed. - * - Decreases the openClaimsCount of the policy associated with the claim. - * - Updates the updatedAt timestamp of the policy. - * @notice This function emits 2 events: - * - LogClaimClosed - * - LogPayoutProcessed - */ - function processPayout( - bytes32 processId, - uint256 payoutId - ) - external override - onlyPolicyFlow("Policy") - { - Policy storage policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-090:POLICY_DOES_NOT_EXIST"); - require(policy.openClaimsCount > 0, "ERROR:POC-091:POLICY_WITHOUT_OPEN_CLAIMS"); - - Payout storage payout = payouts[processId][payoutId]; - require(payout.createdAt > 0, "ERROR:POC-092:PAYOUT_DOES_NOT_EXIST"); - require(payout.state == PayoutState.Expected, "ERROR:POC-093:PAYOUT_ALREADY_PAIDOUT"); - - payout.state = IPolicy.PayoutState.PaidOut; - payout.updatedAt = block.timestamp; // solhint-disable-line - - emit LogPayoutProcessed(processId, payoutId); - - Claim storage claim = claims[processId][payout.claimId]; - claim.paidAmount += payout.amount; - claim.updatedAt = block.timestamp; // solhint-disable-line - - // check if claim can be closed - if (claim.claimAmount == claim.paidAmount) { - claim.state = IPolicy.ClaimState.Closed; - - policy.openClaimsCount -= 1; - policy.updatedAt = block.timestamp; // solhint-disable-line - - emit LogClaimClosed(processId, payout.claimId); - } - } - - /** - * @dev Returns the metadata for the given process ID. - * @param processId The ID of the process to retrieve metadata for. - * @return _metadata The metadata information for the given process ID. - * - * Requirements: - * - The metadata for the given process ID must exist. - */ - function getMetadata(bytes32 processId) - public - view - returns (IPolicy.Metadata memory _metadata) - { - _metadata = metadata[processId]; - require(_metadata.createdAt > 0, "ERROR:POC-100:METADATA_DOES_NOT_EXIST"); - } - - /** - * @dev Returns the application associated with the provided process ID. - * @param processId The ID of the process for which to retrieve the application. - * @return application The application associated with the provided process ID. - */ - function getApplication(bytes32 processId) - public - view - returns (IPolicy.Application memory application) - { - application = applications[processId]; - require(application.createdAt > 0, "ERROR:POC-101:APPLICATION_DOES_NOT_EXIST"); - } - - /** - * @dev Returns the number of claims associated with a given process ID. - * @param processId The ID of the process for which to retrieve the number of claims. - * @return numberOfClaims The number of claims associated with the given process ID. - */ - function getNumberOfClaims(bytes32 processId) external view returns(uint256 numberOfClaims) { - numberOfClaims = getPolicy(processId).claimsCount; - } - - /** - * @dev Returns the number of payouts for a given process ID. - * @param processId The ID of the process. - * @return numberOfPayouts The number of payouts for the given process ID. - */ - function getNumberOfPayouts(bytes32 processId) external view returns(uint256 numberOfPayouts) { - numberOfPayouts = payoutCount[processId]; - } - - /** - * @dev Returns the policy associated with the given process ID. - * @param processId The ID of the process for which to retrieve the policy. - * @return policy The policy object associated with the given process ID. - */ - function getPolicy(bytes32 processId) - public - view - returns (IPolicy.Policy memory policy) - { - policy = policies[processId]; - require(policy.createdAt > 0, "ERROR:POC-102:POLICY_DOES_NOT_EXIST"); - } - - /** - * @dev Returns the claim with the given ID for the specified process. - * @param processId The ID of the process. - * @param claimId The ID of the claim. - * @return claim The claim object with the given ID. - * @notice This function can only be called in read-only mode. - * @notice Throws an error if the claim with the given ID does not exist. - */ - function getClaim(bytes32 processId, uint256 claimId) - public - view - returns (IPolicy.Claim memory claim) - { - claim = claims[processId][claimId]; - require(claim.createdAt > 0, "ERROR:POC-103:CLAIM_DOES_NOT_EXIST"); - } - - /** - * @dev Retrieves a specific payout from a process. - * @param processId The ID of the process. - * @param payoutId The ID of the payout to retrieve. - * @return payout The payout object with the specified ID. - * @notice Throws an error if the payout does not exist. - */ - function getPayout(bytes32 processId, uint256 payoutId) - public - view - returns (IPolicy.Payout memory payout) - { - payout = payouts[processId][payoutId]; - require(payout.createdAt > 0, "ERROR:POC-104:PAYOUT_DOES_NOT_EXIST"); - } - - /** - * @dev Returns the number of process IDs that have been assigned. - * @return _assigendProcessIds The number of process IDs that have been assigned. - */ - function processIds() external view returns (uint256) { - return _assigendProcessIds; - } - - /** - * @dev Generates a unique process ID for the next process. - * @return processId The generated process ID. - */ - function _generateNextProcessId() private returns(bytes32 processId) { - _assigendProcessIds++; - - processId = keccak256( - abi.encodePacked( - block.chainid, - address(_registry), - _assigendProcessIds - ) - ); - } -} diff --git a/contracts-christoph2806/modules/PoolController.sol b/contracts-christoph2806/modules/PoolController.sol deleted file mode 100644 index e3ee0e77..00000000 --- a/contracts-christoph2806/modules/PoolController.sol +++ /dev/null @@ -1,529 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "./ComponentController.sol"; -import "./PolicyController.sol"; -import "./BundleController.sol"; -import "../shared/CoreController.sol"; - -import "@etherisc/gif-interface/contracts/modules/IPool.sol"; -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; - - -import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; - -contract PoolController is - IPool, - CoreController -{ - - using EnumerableSet for EnumerableSet.UintSet; - - // used for representation of collateralization - // collateralization between 0 and 1 (1=100%) - // value might be larger when overcollateralization - uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10**18; - - // upper limit for overcollateralization at 200% - uint256 public constant COLLATERALIZATION_LEVEL_CAP = 2 * FULL_COLLATERALIZATION_LEVEL; - - uint256 public constant DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES = 1; - - mapping(bytes32 /* processId */ => uint256 /* collateralAmount*/ ) private _collateralAmount; - - mapping(uint256 /* productId */ => uint256 /* riskpoolId */) private _riskpoolIdForProductId; - - mapping(uint256 /* riskpoolId */ => IPool.Pool) private _riskpools; - - mapping(uint256 /* riskpoolId */ => uint256 /* maxmimumNumberOfActiveBundles */) private _maxmimumNumberOfActiveBundlesForRiskpoolId; - - mapping(uint256 /* riskpoolId */ => EnumerableSet.UintSet /* active bundle id set */) private _activeBundleIdsForRiskpoolId; - - uint256 [] private _riskpoolIds; - - ComponentController private _component; - PolicyController private _policy; - BundleController private _bundle; - - modifier onlyInstanceOperatorService() { - require( - _msgSender() == _getContractAddress("InstanceOperatorService"), - "ERROR:POL-001:NOT_INSTANCE_OPERATOR" - ); - _; - } - - modifier onlyRiskpoolService() { - require( - _msgSender() == _getContractAddress("RiskpoolService"), - "ERROR:POL-002:NOT_RISKPOOL_SERVICE" - ); - _; - } - - modifier onlyActivePool(uint256 riskpoolId) { - require( - _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, - "ERROR:POL-003:RISKPOOL_NOT_ACTIVE" - ); - _; - } - - modifier onlyActivePoolForProcess(bytes32 processId) { - IPolicy.Metadata memory metadata = _policy.getMetadata(processId); - uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; - require( - _component.getComponentState(riskpoolId) == IComponent.ComponentState.Active, - "ERROR:POL-004:RISKPOOL_NOT_ACTIVE" - ); - _; - } - - /** - * @dev This function is called after the contract is initialized and sets the addresses of the ComponentController, PolicyController, and BundleController contracts. - * - * - */ - function _afterInitialize() internal override onlyInitializing { - _component = ComponentController(_getContractAddress("Component")); - _policy = PolicyController(_getContractAddress("Policy")); - _bundle = BundleController(_getContractAddress("Bundle")); - } - - - /** - * @dev Registers a new riskpool with the given parameters. - * @param riskpoolId The ID of the riskpool to be registered. - * @param wallet The address of the wallet associated with the riskpool. - * @param erc20Token The address of the ERC20 token associated with the riskpool. - * @param collateralizationLevel The collateralization level of the riskpool. - * @param sumOfSumInsuredCap The sum of sum insured cap of the riskpool. - * @notice This function emits 1 events: - * - LogRiskpoolRegistered - */ - function registerRiskpool( - uint256 riskpoolId, - address wallet, - address erc20Token, - uint256 collateralizationLevel, - uint256 sumOfSumInsuredCap - ) - external override - onlyRiskpoolService - { - IPool.Pool storage pool = _riskpools[riskpoolId]; - _riskpoolIds.push(riskpoolId); - _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES; - - require(pool.createdAt == 0, "ERROR:POL-005:RISKPOOL_ALREADY_REGISTERED"); - - require(wallet != address(0), "ERROR:POL-006:WALLET_ADDRESS_ZERO"); - require(erc20Token != address(0), "ERROR:POL-007:ERC20_ADDRESS_ZERO"); - require(collateralizationLevel <= COLLATERALIZATION_LEVEL_CAP, "ERROR:POL-008:COLLATERALIZATION_lEVEl_TOO_HIGH"); - require(sumOfSumInsuredCap > 0, "ERROR:POL-009:SUM_OF_SUM_INSURED_CAP_ZERO"); - - pool.id = riskpoolId; - pool.wallet = wallet; - pool.erc20Token = erc20Token; - pool.collateralizationLevel = collateralizationLevel; - pool.sumOfSumInsuredCap = sumOfSumInsuredCap; - - pool.sumOfSumInsuredAtRisk = 0; - pool.capital = 0; - pool.lockedCapital = 0; - pool.balance = 0; - - pool.createdAt = block.timestamp; - pool.updatedAt = block.timestamp; - - emit LogRiskpoolRegistered(riskpoolId, wallet, erc20Token, collateralizationLevel, sumOfSumInsuredCap); - } - - /** - * @dev Sets the riskpool ID for a given product ID. - * @param productId The ID of the product. - * @param riskpoolId The ID of the riskpool to be set for the product. - * - * Emits a {RiskpoolForProductSet} event indicating the riskpool has been set for the product. - * Requirements: - * - The caller must have the `INSTANCE_OPERATOR` permission. - * - The product ID must exist. - * - The riskpool ID must exist. - * - The riskpool ID must not have already been set for the product. - */ - function setRiskpoolForProduct(uint256 productId, uint256 riskpoolId) - external override - onlyInstanceOperatorService - { - require(_component.isProduct(productId), "ERROR:POL-010:NOT_PRODUCT"); - require(_component.isRiskpool(riskpoolId), "ERROR:POL-011:NOT_RISKPOOL"); - require(_riskpoolIdForProductId[productId] == 0, "ERROR:POL-012:RISKPOOL_ALREADY_SET"); - - _riskpoolIdForProductId[productId] = riskpoolId; - } - - /** - * @dev Adds funds to a specific riskpool. - * @param riskpoolId The ID of the riskpool that will receive the funds. - * @param amount The amount of funds to be added to the riskpool. - */ - function fund(uint256 riskpoolId, uint256 amount) - external - onlyRiskpoolService - onlyActivePool(riskpoolId) - { - IPool.Pool storage pool = _riskpools[riskpoolId]; - pool.capital += amount; - pool.balance += amount; - pool.updatedAt = block.timestamp; - } - - /** - * @dev Allows the Riskpool service to defund the specified Riskpool by the given amount. - * @param riskpoolId The ID of the Riskpool to defund. - * @param amount The amount of funds to be defunded from the Riskpool. - */ - function defund(uint256 riskpoolId, uint256 amount) - external - onlyRiskpoolService - onlyActivePool(riskpoolId) - { - IPool.Pool storage pool = _riskpools[riskpoolId]; - - if (pool.capital >= amount) { pool.capital -= amount; } - else { pool.capital = 0; } - - pool.balance -= amount; - pool.updatedAt = block.timestamp; - } - - /** - * @dev Underwrites a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. - * @param processId The ID of the policy application process. - * @return success A boolean indicating whether the collateralization process was successful or not. - * - * Emits a LogRiskpoolRequiredCollateral event with the sum insured amount and calculated collateral amount. - * Throws an error if the application state is not "Applied" or if the riskpool's sum insured cap would be exceeded by underwriting this application. - * Emits a LogRiskpoolCollateralizationSucceeded event if the collateralization process was successful, and a LogRiskpoolCollateralizationFailed event otherwise. - * @notice This function emits 3 events: - * - LogRiskpoolCollateralizationFailed - * - LogRiskpoolCollateralizationSucceeded - * - LogRiskpoolRequiredCollateral - */ - function underwrite(bytes32 processId) - external override - onlyPolicyFlow("Pool") - onlyActivePoolForProcess(processId) - returns(bool success) - { - // check that application is in applied state - IPolicy.Application memory application = _policy.getApplication(processId); - require( - application.state == IPolicy.ApplicationState.Applied, - "ERROR:POL-020:APPLICATION_STATE_INVALID" - ); - - // determine riskpool responsible for application - IPolicy.Metadata memory metadata = _policy.getMetadata(processId); - uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; - - // calculate required collateral amount - uint256 sumInsuredAmount = application.sumInsuredAmount; - uint256 collateralAmount = calculateCollateral(riskpoolId, sumInsuredAmount); - _collateralAmount[processId] = collateralAmount; - - emit LogRiskpoolRequiredCollateral(processId, sumInsuredAmount, collateralAmount); - - // check that riskpool stays inside sum insured cap when underwriting this application - IPool.Pool storage pool = _riskpools[riskpoolId]; - require( - pool.sumOfSumInsuredCap >= pool.sumOfSumInsuredAtRisk + sumInsuredAmount, - "ERROR:POL-022:RISKPOOL_SUM_INSURED_CAP_EXCEEDED" - ); - - // ask riskpool to secure application - IRiskpool riskpool = _getRiskpoolComponent(metadata); - success = riskpool.collateralizePolicy(processId, collateralAmount); - - if (success) { - pool.sumOfSumInsuredAtRisk += sumInsuredAmount; - pool.lockedCapital += collateralAmount; - pool.updatedAt = block.timestamp; - - emit LogRiskpoolCollateralizationSucceeded(riskpoolId, processId, sumInsuredAmount); - } else { - emit LogRiskpoolCollateralizationFailed(riskpoolId, processId, sumInsuredAmount); - } - } - - - /** - * @dev Calculates the required collateral amount for a given riskpool and sum insured amount. - * @param riskpoolId The ID of the riskpool. - * @param sumInsuredAmount The sum insured amount. - * @return collateralAmount The required collateral amount. - */ - function calculateCollateral(uint256 riskpoolId, uint256 sumInsuredAmount) - public - view - returns (uint256 collateralAmount) - { - uint256 collateralization = getRiskpool(riskpoolId).collateralizationLevel; - - // fully collateralized case - if (collateralization == FULL_COLLATERALIZATION_LEVEL) { - collateralAmount = sumInsuredAmount; - // over or under collateralized case - } else if (collateralization > 0) { - collateralAmount = (collateralization * sumInsuredAmount) / FULL_COLLATERALIZATION_LEVEL; - } - // collateralization == 0, eg complete risk coverd by re insurance outside gif - else { - collateralAmount = 0; - } - } - - - /** - * @dev Processes the premium payment for a policy. - * @param processId The ID of the process. - * @param amount The amount of premium paid. - */ - function processPremium(bytes32 processId, uint256 amount) - external override - onlyPolicyFlow("Pool") - onlyActivePoolForProcess(processId) - { - IPolicy.Metadata memory metadata = _policy.getMetadata(processId); - IRiskpool riskpool = _getRiskpoolComponent(metadata); - riskpool.processPolicyPremium(processId, amount); - - uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; - IPool.Pool storage pool = _riskpools[riskpoolId]; - pool.balance += amount; - pool.updatedAt = block.timestamp; - } - - - /** - * @dev Process a payout for a policy flow in the Pool. - * @param processId The ID of the process to be paid out. - * @param amount The amount to be paid out. - * - * Emits a {PolicyPayoutProcessed} event. - * - * Requirements: - * - Caller must be the Pool contract. - * - Pool must be active for the given process. - * - Riskpool ID must be valid. - * - Pool capital must be greater than or equal to the payout amount. - * - Pool locked capital must be greater than or equal to the payout amount. - * - Pool balance must be greater than or equal to the payout amount. - * - */ - function processPayout(bytes32 processId, uint256 amount) - external override - onlyPolicyFlow("Pool") - onlyActivePoolForProcess(processId) - { - IPolicy.Metadata memory metadata = _policy.getMetadata(processId); - uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; - IPool.Pool storage pool = _riskpools[riskpoolId]; - require(pool.createdAt > 0, "ERROR:POL-026:RISKPOOL_ID_INVALID"); - require(pool.capital >= amount, "ERROR:POL-027:CAPITAL_TOO_LOW"); - require(pool.lockedCapital >= amount, "ERROR:POL-028:LOCKED_CAPITAL_TOO_LOW"); - require(pool.balance >= amount, "ERROR:POL-029:BALANCE_TOO_LOW"); - - pool.capital -= amount; - pool.lockedCapital -= amount; - pool.balance -= amount; - pool.updatedAt = block.timestamp; // solhint-disable-line - - IRiskpool riskpool = _getRiskpoolComponent(metadata); - riskpool.processPolicyPayout(processId, amount); - } - - - /** - * @dev Releases a policy's collateral from the riskpool. - * @param processId The unique identifier of the policy. - * - * - * Emits a LogRiskpoolCollateralReleased event. - * @notice This function emits 1 events: - * - LogRiskpoolCollateralReleased - */ - function release(bytes32 processId) - external override - onlyPolicyFlow("Pool") - { - IPolicy.Policy memory policy = _policy.getPolicy(processId); - require( - policy.state == IPolicy.PolicyState.Closed, - "ERROR:POL-025:POLICY_STATE_INVALID" - ); - - IPolicy.Metadata memory metadata = _policy.getMetadata(processId); - IRiskpool riskpool = _getRiskpoolComponent(metadata); - riskpool.releasePolicy(processId); - - IPolicy.Application memory application = _policy.getApplication(processId); - - uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; - IPool.Pool storage pool = _riskpools[riskpoolId]; - uint256 remainingCollateralAmount = _collateralAmount[processId] - policy.payoutAmount; - - pool.sumOfSumInsuredAtRisk -= application.sumInsuredAmount; - pool.lockedCapital -= remainingCollateralAmount; - pool.updatedAt = block.timestamp; // solhint-disable-line - - // free memory - delete _collateralAmount[processId]; - emit LogRiskpoolCollateralReleased(riskpoolId, processId, remainingCollateralAmount); - } - - /** - * @dev Sets the maximum number of active bundles for a given riskpool ID. - * @param riskpoolId The ID of the riskpool. - * @param maxNumberOfActiveBundles The maximum number of active bundles to be set. - */ - function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles) - external - onlyRiskpoolService - { - require(maxNumberOfActiveBundles > 0, "ERROR:POL-032:MAX_NUMBER_OF_ACTIVE_BUNDLES_INVALID"); - _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId] = maxNumberOfActiveBundles; - } - - /** - * @dev Returns the maximum number of active bundles for a given riskpool ID. - * @param riskpoolId The ID of the riskpool. - * @return maximumNumberOfActiveBundles The maximum number of active bundles for the given riskpool ID. - */ - function getMaximumNumberOfActiveBundles(uint256 riskpoolId) public view returns(uint256 maximumNumberOfActiveBundles) { - return _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId]; - } - - /** - * @dev Returns the number of risk pools created. - * @return idx The number of risk pools as a uint256. - */ - function riskpools() external view returns(uint256 idx) { return _riskpoolIds.length; } - - - /** - * @dev Returns the risk pool data for a given risk pool ID. - * @param riskpoolId The ID of the risk pool to retrieve. - * @return riskPool The risk pool data, returned as a Pool struct. - * - * Throws a POL-040 error if the risk pool is not registered. - */ - function getRiskpool(uint256 riskpoolId) public view returns(IPool.Pool memory riskPool) { - riskPool = _riskpools[riskpoolId]; - require(riskPool.createdAt > 0, "ERROR:POL-040:RISKPOOL_NOT_REGISTERED"); - } - - /** - * @dev Returns the risk pool ID associated with the given product ID. - * @param productId The ID of the product for which to retrieve the risk pool ID. - * @return riskpoolId The ID of the risk pool associated with the given product ID. - */ - function getRiskPoolForProduct(uint256 productId) external view returns (uint256 riskpoolId) { - return _riskpoolIdForProductId[productId]; - } - - /** - * @dev Returns the number of active bundles for a given risk pool ID. - * @param riskpoolId The ID of the risk pool to get the number of active bundles for. - * @return numberOfActiveBundles The number of active bundles for the given risk pool ID. - */ - function activeBundles(uint256 riskpoolId) external view returns(uint256 numberOfActiveBundles) { - return EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]); - } - - /** - * @dev Returns the active bundle ID at the specified index for the given risk pool ID. - * @param riskpoolId The ID of the risk pool. - * @param bundleIdx The index of the active bundle ID to be returned. - * @return bundleId The active bundle ID at the specified index. - */ - function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external view returns(uint256 bundleId) { - require( - bundleIdx < EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]), - "ERROR:POL-041:BUNDLE_IDX_TOO_LARGE" - ); - - return EnumerableSet.at(_activeBundleIdsForRiskpoolId[riskpoolId], bundleIdx); - } - - /** - * @dev Adds a bundle ID to the active set for a specific riskpool ID. - * @param riskpoolId The ID of the riskpool. - * @param bundleId The ID of the bundle to be added to the active set. - */ - function addBundleIdToActiveSet(uint256 riskpoolId, uint256 bundleId) - external - onlyRiskpoolService - { - require( - !EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), - "ERROR:POL-042:BUNDLE_ID_ALREADY_IN_SET" - ); - require( - EnumerableSet.length(_activeBundleIdsForRiskpoolId[riskpoolId]) < _maxmimumNumberOfActiveBundlesForRiskpoolId[riskpoolId], - "ERROR:POL-043:MAXIMUM_NUMBER_OF_ACTIVE_BUNDLES_REACHED" - ); - - EnumerableSet.add(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId); - } - - /** - * @dev Removes a bundle ID from the active set for a given risk pool ID. - * @param riskpoolId The ID of the risk pool. - * @param bundleId The ID of the bundle to be removed from the active set. - */ - function removeBundleIdFromActiveSet(uint256 riskpoolId, uint256 bundleId) - external - onlyRiskpoolService - { - require( - EnumerableSet.contains(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId), - "ERROR:POL-044:BUNDLE_ID_NOT_IN_SET" - ); - - EnumerableSet.remove(_activeBundleIdsForRiskpoolId[riskpoolId], bundleId); - } - - /** - * @dev Returns the full collateralization level of the contract. - * @return FULL_COLLATERALIZATION_LEVEL The full collateralization level of the contract. - */ - function getFullCollateralizationLevel() external pure returns (uint256) { - return FULL_COLLATERALIZATION_LEVEL; - } - - /** - * @dev Returns the Riskpool contract instance associated with the given policy metadata. - * @param metadata The metadata of the policy. - * @return riskpool The Riskpool contract instance. - */ - function _getRiskpoolComponent(IPolicy.Metadata memory metadata) internal view returns (IRiskpool riskpool) { - uint256 riskpoolId = _riskpoolIdForProductId[metadata.productId]; - require(riskpoolId > 0, "ERROR:POL-045:RISKPOOL_DOES_NOT_EXIST"); - - riskpool = _getRiskpoolForId(riskpoolId); - } - - /** - * @dev Returns the Riskpool contract instance for a given riskpoolId. - * @param riskpoolId The ID of the riskpool to retrieve the Riskpool contract instance for. - * @return riskpool The Riskpool contract instance. - */ - function _getRiskpoolForId(uint256 riskpoolId) internal view returns (IRiskpool riskpool) { - require(_component.isRiskpool(riskpoolId), "ERROR:POL-046:COMPONENT_NOT_RISKPOOL"); - - IComponent cmp = _component.getComponent(riskpoolId); - riskpool = IRiskpool(address(cmp)); - } -} diff --git a/contracts-christoph2806/modules/QueryModule.sol b/contracts-christoph2806/modules/QueryModule.sol deleted file mode 100644 index 29388a23..00000000 --- a/contracts-christoph2806/modules/QueryModule.sol +++ /dev/null @@ -1,218 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "./ComponentController.sol"; -import "../shared/CoreController.sol"; - -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/components/IOracle.sol"; -import "@etherisc/gif-interface/contracts/modules/IQuery.sol"; -import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; - - -contract QueryModule is - IQuery, - CoreController -{ - ComponentController private _component; - OracleRequest[] private _oracleRequests; - - modifier onlyOracleService() { - require( - _msgSender() == _getContractAddress("OracleService"), - "ERROR:CRC-001:NOT_ORACLE_SERVICE" - ); - _; - } - - modifier onlyResponsibleOracle(uint256 requestId, address responder) { - OracleRequest memory oracleRequest = _oracleRequests[requestId]; - - require( - oracleRequest.createdAt > 0, - "ERROR:QUC-002:REQUEST_ID_INVALID" - ); - - uint256 oracleId = oracleRequest.responsibleOracleId; - address oracleAddress = address(_getOracle(oracleId)); - require( - oracleAddress == responder, - "ERROR:QUC-003:ORACLE_NOT_RESPONSIBLE" - ); - _; - } - - /** - * @dev Internal function that sets the `_component` variable to the `ComponentController` contract address. - * - */ - function _afterInitialize() internal override onlyInitializing { - _component = ComponentController(_getContractAddress("Component")); - } - - /* Oracle Request */ - // request only works for active oracles - // function call _getOracle reverts if oracle is not active - // as a result all request call on oracles that are not active will revert - /** - * @dev Creates a new oracle request for a given process with the specified input data and callback information. - * @param processId The ID of the process. - * @param input The input data for the request. - * @param callbackMethodName The name of the callback method to be called upon completion of the request. - * @param callbackContractAddress The address of the contract to be called upon completion of the request. - * @param responsibleOracleId The ID of the oracle responsible for handling the request. - * @return requestId The ID of the newly created oracle request. - * @notice This function emits 1 events: - * - LogOracleRequested - */ - function request( - bytes32 processId, - bytes calldata input, - string calldata callbackMethodName, - address callbackContractAddress, - uint256 responsibleOracleId - ) - external - override - onlyPolicyFlow("Query") - returns (uint256 requestId) - { - uint256 componentId = _component.getComponentId(callbackContractAddress); - require( - _component.isProduct(componentId), - "ERROR:QUC-010:CALLBACK_ADDRESS_IS_NOT_PRODUCT" - ); - - requestId = _oracleRequests.length; - _oracleRequests.push(); - - // TODO: get token from product - - OracleRequest storage req = _oracleRequests[requestId]; - req.processId = processId; - req.data = input; - req.callbackMethodName = callbackMethodName; - req.callbackContractAddress = callbackContractAddress; - req.responsibleOracleId = responsibleOracleId; - req.createdAt = block.timestamp; // solhint-disable-line - - _getOracle(responsibleOracleId).request( - requestId, - input - ); - - emit LogOracleRequested(processId, requestId, responsibleOracleId); - } - - /* Oracle Response */ - // respond only works for active oracles - // modifier onlyResponsibleOracle contains a function call to _getOracle - // which reverts if oracle is not active - // as a result, all response calls by oracles that are not active will revert - /** - * @dev Responds to an oracle request with the given requestId, responder address, and data. - * @param requestId The ID of the oracle request. - * @param responder The address of the oracle responder. - * @param data The data to be sent to the oracle contract. - * @notice This function emits 1 events: - * - LogOracleResponded - */ - function respond( - uint256 requestId, - address responder, - bytes calldata data - ) - external override - onlyOracleService - onlyResponsibleOracle(requestId, responder) - { - OracleRequest storage req = _oracleRequests[requestId]; - string memory functionSignature = string( - abi.encodePacked( - req.callbackMethodName, - "(uint256,bytes32,bytes)" - )); - bytes32 processId = req.processId; - - (bool success, ) = - req.callbackContractAddress.call( - abi.encodeWithSignature( - functionSignature, - requestId, - processId, - data - ) - ); - - require(success, "ERROR:QUC-020:PRODUCT_CALLBACK_UNSUCCESSFUL"); - delete _oracleRequests[requestId]; - - // TODO implement reward payment - - emit LogOracleResponded(processId, requestId, responder, success); - } - - /** - * @dev Cancels an oracle request. - * @param requestId The ID of the oracle request to be canceled. - * @notice This function emits 1 events: - * - LogOracleCanceled - */ - function cancel(uint256 requestId) - external override - onlyPolicyFlow("Query") - { - OracleRequest storage oracleRequest = _oracleRequests[requestId]; - require(oracleRequest.createdAt > 0, "ERROR:QUC-030:REQUEST_ID_INVALID"); - delete _oracleRequests[requestId]; - emit LogOracleCanceled(requestId); - } - - - /** - * @dev Returns the process ID associated with a given request ID. - * @param requestId The ID of the request to retrieve the process ID for. - * @return processId The process ID associated with the given request ID. - */ - function getProcessId(uint256 requestId) - external - view - returns(bytes32 processId) - { - OracleRequest memory oracleRequest = _oracleRequests[requestId]; - require(oracleRequest.createdAt > 0, "ERROR:QUC-040:REQUEST_ID_INVALID"); - return oracleRequest.processId; - } - - - /** - * @dev Returns the number of oracle requests made. - * @return _count The number of oracle requests made. - */ - function getOracleRequestCount() public view returns (uint256 _count) { - return _oracleRequests.length; - } - - /** - * @dev Returns the Oracle component with the specified ID. - * @param id The ID of the Oracle component to retrieve. - * @return oracle The Oracle component retrieved. - * - * Throws a 'COMPONENT_NOT_ORACLE' error if the component with the specified ID is not an Oracle component. - * Throws an 'ORACLE_NOT_ACTIVE' error if the retrieved Oracle component is not in an active state. - */ - function _getOracle(uint256 id) internal view returns (IOracle oracle) { - IComponent cmp = _component.getComponent(id); - oracle = IOracle(address(cmp)); - - require( - _component.getComponentType(id) == IComponent.ComponentType.Oracle, - "ERROR:QUC-041:COMPONENT_NOT_ORACLE" - ); - - require( - _component.getComponentState(id) == IComponent.ComponentState.Active, - "ERROR:QUC-042:ORACLE_NOT_ACTIVE" - ); - } -} diff --git a/contracts-christoph2806/modules/README.adoc b/contracts-christoph2806/modules/README.adoc deleted file mode 100644 index 5bc9cc2a..00000000 --- a/contracts-christoph2806/modules/README.adoc +++ /dev/null @@ -1,25 +0,0 @@ -= Modules - -[.readme-notice] -NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/modules - -== Contracts - -{{AccessController}} - -{{BundleController}} - -{{ComponentController}} - -{{LicenseController}} - -{{PolicyController}} - -{{PoolController}} - -{{QueryModule}} - -{{RegistryController}} - -{{TreasuryModule}} - diff --git a/contracts-christoph2806/modules/RegistryController.sol b/contracts-christoph2806/modules/RegistryController.sol deleted file mode 100644 index 734db4ef..00000000 --- a/contracts-christoph2806/modules/RegistryController.sol +++ /dev/null @@ -1,355 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../shared/CoreController.sol"; - -import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; - -import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; -import "@openzeppelin/contracts/utils/Strings.sol"; -import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; - - -contract RegistryController is - IRegistry, - CoreController -{ - using EnumerableSet for EnumerableSet.Bytes32Set; - - /** - * @dev Save number of items to iterate through - * Currently we have < 20 contracts. - */ - uint256 public constant MAX_CONTRACTS = 100; - - /** - * @dev Current release - * We use semantic versioning. - */ - bytes32 public release; - - uint256 public startBlock; - - mapping(bytes32 /* release */ => mapping(bytes32 /* contract name */ => address /* contract address */)) public _contracts; - mapping(bytes32 /* release */ => uint256 /* number of contracts in release */) public _contractsInRelease; - mapping(bytes32 /* release */ => EnumerableSet.Bytes32Set /* contract names */) private _contractNames; - - /** - * @dev Initializes the GIF registry with an initial release and sets the deployment block for reading logs. - * @param _initialRelease The initial release of the GIF instance. - */ - function initializeRegistry(bytes32 _initialRelease) public initializer { - // _setupRegistry(address(this)); - _registry = this; - - // this is a temporary assignment and must only be used - // during the intial setup of a gif instance - // at execution time _msgSender is the address of the - // registry proxy. - release = _initialRelease; - _contracts[release]["InstanceOperatorService"] = _msgSender(); - EnumerableSet.add(_contractNames[release], "InstanceOperatorService"); - _contractsInRelease[release] = 1; - - - // register the deployment block for reading logs - startBlock = block.number; - } - - /** - * @dev Verifies if the provided 'sender' address matches the address of the contract with the given '_contractName' in the current release. - * @param sender The address to be verified. - * @param _contractName The name of the contract to compare the 'sender' address with. - * @return _senderMatches A boolean indicating whether the 'sender' address matches the address of the contract with the given '_contractName'. - */ - function ensureSender(address sender, bytes32 _contractName) - external view override - returns(bool _senderMatches) - { - _senderMatches = (sender == _getContractInRelease(release, _contractName)); - } - - /** - * @dev get current release - */ - /** - * @dev Returns the current release identifier. - * @return _release The release identifier. - */ - function getRelease() - external override view - returns (bytes32 _release) - { - _release = release; - } - - /** - * @dev Get contract's address in the current release - */ - /** - * @dev Returns the address of a contract by its name. - * @param _contractName The name of the contract. - * @return _addr The address of the contract. - */ - function getContract(bytes32 _contractName) - public override view - returns (address _addr) - { - _addr = _getContractInRelease(release, _contractName); - } - - /** - * @dev Register contract in the current release - */ - /** - * @dev Registers a contract with a given name and address. - * - * @param _contractName The name of the contract to register. - * @param _contractAddress The address of the contract to register. - */ - function register(bytes32 _contractName, address _contractAddress) - external override - onlyInstanceOperator - { - _registerInRelease(release, false, _contractName, _contractAddress); - } - - /** - * @dev Deregister contract in the current release - */ - /** - * @dev Deregisters a contract from the current release. - * @param _contractName The name of the contract to be deregistered. - */ - function deregister(bytes32 _contractName) - external override - onlyInstanceOperator - { - _deregisterInRelease(release, _contractName); - } - - /** - * @dev Get contract's address in certain release - */ - /** - * @dev Returns the address of a specific contract within a given release. - * @param _release The release identifier. - * @param _contractName The name of the contract to retrieve. - * @return _addr The address of the contract. - */ - function getContractInRelease(bytes32 _release, bytes32 _contractName) - external override view - returns (address _addr) - { - _addr = _getContractInRelease(_release, _contractName); - } - - /** - * @dev Register contract in certain release - */ - /** - * @dev Registers a contract in a specific release. - * @param _release The release identifier. - * @param _contractName The name of the contract to register. - * @param _contractAddress The address of the contract to register. - */ - function registerInRelease(bytes32 _release, bytes32 _contractName, address _contractAddress) - external override - onlyInstanceOperator - { - _registerInRelease(_release, false, _contractName, _contractAddress); - } - - /** - * @dev Deregisters a contract name from a specific release. - * @param _release The release from which to deregister the contract name. - * @param _contractName The contract name to deregister. - */ - function deregisterInRelease(bytes32 _release, bytes32 _contractName) - external override - onlyInstanceOperator - { - _deregisterInRelease(_release, _contractName); - } - - /** - * @dev Create new release, copy contracts from previous release - */ - /** - * @dev Prepares a new release by copying all contracts from the current release to the new one. - * @param _newRelease The name of the new release. - * - * Requirements: - * - The current release must not be empty. - * - The new release must be empty. - * - * Emits a {LogReleasePrepared} event. - * @notice This function emits 1 events: - * - LogReleasePrepared - */ - function prepareRelease(bytes32 _newRelease) - external override - onlyInstanceOperator - { - uint256 countContracts = _contractsInRelease[release]; - - require(countContracts > 0, "ERROR:REC-001:EMPTY_RELEASE"); - require( - _contractsInRelease[_newRelease] == 0, - "ERROR:REC-002:NEW_RELEASE_NOT_EMPTY" - ); - - // TODO think about how to avoid this loop - for (uint256 i = 0; i < countContracts; i += 1) { - bytes32 name = EnumerableSet.at(_contractNames[release], i); - _registerInRelease( - _newRelease, - true, - name, - _contracts[release][name] - ); - } - - release = _newRelease; - - emit LogReleasePrepared(release); - } - - /** - * @dev Returns the number of contracts in the current release. - * - * @return _numberOfContracts The total number of contracts in the current release. - */ - function contracts() external override view returns (uint256 _numberOfContracts) { - _numberOfContracts = EnumerableSet.length(_contractNames[release]); - } - - /** - * @dev Returns the name of the contract at the specified index in the contractNames set. - * @param idx The index of the contract name to retrieve. - * @return _contractName The name of the contract at the specified index in the contractNames set. - */ - function contractName(uint256 idx) external override view returns (bytes32 _contractName) { - _contractName = EnumerableSet.at(_contractNames[release], idx); - } - - /** - * @dev Get contract's address in certain release - */ - /** - * @dev Returns the address of a contract in a specific release. - * @param _release The release identifier. - * @param _contractName The name of the contract to retrieve. - * @return _addr The address of the requested contract. - */ - function _getContractInRelease(bytes32 _release, bytes32 _contractName) - internal view - returns (address _addr) - { - _addr = _contracts[_release][_contractName]; - } - - /** - * @dev Register contract in certain release - */ - /** - * @dev Registers a contract in a release. - * @param _release The release identifier. - * @param isNewRelease True if the release is new, false otherwise. - * @param _contractName The name of the contract. - * @param _contractAddress The address of the contract. - * - * Requirements: - * - The number of registered contracts must be less than MAX_CONTRACTS. - * - The release must be known, unless it is a new release. - * - The contract name must not be empty. - * - The contract name must not already exist in the release, unless it is the 'InstanceOperatorService' contract and it is registered with the owner address. - * - The contract address must not be zero. - * - The number of registered contracts must match the number of contract names in the release. - * - * Emits a LogContractRegistered event with the release identifier, contract name, contract address and a boolean indicating if the contract is new. - * @notice This function emits 1 events: - * - LogContractRegistered - */ - function _registerInRelease( - bytes32 _release, - bool isNewRelease, - bytes32 _contractName, - address _contractAddress - ) - internal - { - bool isNew = false; - - require( - EnumerableSet.length(_contractNames[_release]) < MAX_CONTRACTS, - "ERROR:REC-010:MAX_CONTRACTS_LIMIT" - ); - - // during `prepareRelease` the _release is not yet known, so check should not fail in this case - require(_contractsInRelease[_release] > 0 || isNewRelease, "ERROR:REC-011:RELEASE_UNKNOWN"); - require(_contractName != 0x00, "ERROR:REC-012:CONTRACT_NAME_EMPTY"); - require( - (! EnumerableSet.contains(_contractNames[_release], _contractName) ) - // the contract 'InstanceOperatorService' is initially registered with the owner address (see method initializeRegistry()); - // due to this this special check is required - || (_contractName == "InstanceOperatorService" && _contracts[_release][_contractName] == _msgSender()), - "ERROR:REC-013:CONTRACT_NAME_EXISTS"); - require(_contractAddress != address(0), "ERROR:REC-014:CONTRACT_ADDRESS_ZERO"); - - if (_contracts[_release][_contractName] == address(0)) { - EnumerableSet.add(_contractNames[_release], _contractName); - _contractsInRelease[_release]++; - isNew = true; - } - - _contracts[_release][_contractName] = _contractAddress; - require( - _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]), - "ERROR:REC-015:CONTRACT_NUMBER_MISMATCH" - ); - - emit LogContractRegistered( - _release, - _contractName, - _contractAddress, - isNew - ); - } - - - /** - * @dev Deregister contract in certain release - */ - /** - * @dev Internal function to deregister a contract in a specific release. - * @param _release The release identifier. - * @param _contractName The name of the contract to be deregistered. - * - * Requirements: - * - The function can only be called by the instance operator. - * - The contract to be deregistered must exist in the specified release. - * - * Removes the contract name from the set of contract names in the specified release, - * removes the contract from the mapping of contracts in the specified release, - * and emits a LogContractDeregistered event. - * @notice This function emits 1 events: - * - LogContractDeregistered - */ - function _deregisterInRelease(bytes32 _release, bytes32 _contractName) - internal - onlyInstanceOperator - { - require(EnumerableSet.contains(_contractNames[_release], _contractName), "ERROR:REC-020:CONTRACT_UNKNOWN"); - - EnumerableSet.remove(_contractNames[_release], _contractName); - - _contractsInRelease[_release] -= 1; - delete _contracts[_release][_contractName]; - - require( - _contractsInRelease[_release] == EnumerableSet.length(_contractNames[_release]), - "ERROR:REC-021:CONTRACT_NUMBER_MISMATCH"); - emit LogContractDeregistered(_release, _contractName); - } -} diff --git a/contracts-christoph2806/modules/TreasuryModule.sol b/contracts-christoph2806/modules/TreasuryModule.sol deleted file mode 100644 index 5276cab3..00000000 --- a/contracts-christoph2806/modules/TreasuryModule.sol +++ /dev/null @@ -1,728 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "./ComponentController.sol"; -import "./PolicyController.sol"; -import "./BundleController.sol"; -import "./PoolController.sol"; -import "../shared/CoreController.sol"; -import "../shared/TransferHelper.sol"; - -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/components/IProduct.sol"; -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; -import "@etherisc/gif-interface/contracts/modules/ITreasury.sol"; - -import "@openzeppelin/contracts/security/Pausable.sol"; -import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "@openzeppelin/contracts/utils/Strings.sol"; - -contract TreasuryModule is - ITreasury, - CoreController, - Pausable -{ - uint256 public constant FRACTION_FULL_UNIT = 10**18; - uint256 public constant FRACTIONAL_FEE_MAX = FRACTION_FULL_UNIT / 4; // max frctional fee is 25% - - event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); - event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); - event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); - - address private _instanceWalletAddress; - mapping(uint256 => address) private _riskpoolWallet; // riskpoolId => walletAddress - mapping(uint256 => FeeSpecification) private _fees; // componentId => fee specification - mapping(uint256 => IERC20) private _componentToken; // productId/riskpoolId => erc20Address - - BundleController private _bundle; - ComponentController private _component; - PolicyController private _policy; - PoolController private _pool; - - modifier instanceWalletDefined() { - require( - _instanceWalletAddress != address(0), - "ERROR:TRS-001:INSTANCE_WALLET_UNDEFINED"); - _; - } - - modifier riskpoolWalletDefinedForProcess(bytes32 processId) { - (uint256 riskpoolId, address walletAddress) = _getRiskpoolWallet(processId); - require( - walletAddress != address(0), - "ERROR:TRS-002:RISKPOOL_WALLET_UNDEFINED"); - _; - } - - modifier riskpoolWalletDefinedForBundle(uint256 bundleId) { - IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); - require( - getRiskpoolWallet(bundle.riskpoolId) != address(0), - "ERROR:TRS-003:RISKPOOL_WALLET_UNDEFINED"); - _; - } - - // surrogate modifier for whenNotPaused to create treasury specific error message - modifier whenNotSuspended() { - require(!paused(), "ERROR:TRS-004:TREASURY_SUSPENDED"); - _; - } - - modifier onlyRiskpoolService() { - require( - _msgSender() == _getContractAddress("RiskpoolService"), - "ERROR:TRS-005:NOT_RISKPOOL_SERVICE" - ); - _; - } - - /** - * @dev Sets the addresses of the BundleController, ComponentController, PolicyController, and PoolController contracts. - * - * - */ - function _afterInitialize() internal override onlyInitializing { - _bundle = BundleController(_getContractAddress("Bundle")); - _component = ComponentController(_getContractAddress("Component")); - _policy = PolicyController(_getContractAddress("Policy")); - _pool = PoolController(_getContractAddress("Pool")); - } - - /** - * @dev Suspends the treasury contract, preventing any further transfers or withdrawals. - * Can only be called by the instance operator. - * - * @notice This function emits 1 events: - * - LogTreasurySuspended - */ - function suspend() - external - onlyInstanceOperator - { - _pause(); - emit LogTreasurySuspended(); - } - - /** - * @dev Resumes the treasury contract after it has been paused. - * - * - * @notice This function emits 1 events: - * - LogTreasuryResumed - */ - function resume() - external - onlyInstanceOperator - { - _unpause(); - emit LogTreasuryResumed(); - } - - /** - * @dev Sets the ERC20 token address for a given product ID and its associated risk pool. - * @param productId The ID of the product for which the token address is being set. - * @param erc20Address The address of the ERC20 token to be set. - * - * Emits a LogTreasuryProductTokenSet event with the product ID, risk pool ID, and ERC20 token address. - * - * Requirements: - * - The ERC20 token address must not be zero. - * - The product must exist. - * - The product token must not have already been set. - * - The product token address must match the token address of the corresponding product. - * - If the risk pool token address has already been set, it must match the product token address. - * @notice This function emits 1 events: - * - LogTreasuryProductTokenSet - */ - function setProductToken(uint256 productId, address erc20Address) - external override - whenNotSuspended - onlyInstanceOperator - { - require(erc20Address != address(0), "ERROR:TRS-010:TOKEN_ADDRESS_ZERO"); - - require(_component.isProduct(productId), "ERROR:TRS-011:NOT_PRODUCT"); - require(address(_componentToken[productId]) == address(0), "ERROR:TRS-012:PRODUCT_TOKEN_ALREADY_SET"); - - IComponent component = _component.getComponent(productId); - require(address(IProduct(address(component)).getToken()) == erc20Address, "ERROR:TRS-013:PRODUCT_TOKEN_ADDRESS_NOT_MATCHING"); - - uint256 riskpoolId = _pool.getRiskPoolForProduct(productId); - - // require if riskpool token is already set and product token does match riskpool token - require(address(_componentToken[riskpoolId]) == address(0) - || address(_componentToken[riskpoolId]) == erc20Address, - "ERROR:TRS-014:RISKPOOL_TOKEN_ADDRESS_NOT_MACHING"); - - _componentToken[productId] = IERC20(erc20Address); - _componentToken[riskpoolId] = IERC20(erc20Address); - - emit LogTreasuryProductTokenSet(productId, riskpoolId, erc20Address); - } - - /** - * @dev Sets the address of the instance wallet. - * @param instanceWalletAddress The address of the instance wallet to be set. - * - * Emits a LogTreasuryInstanceWalletSet event. - * @notice This function emits 1 events: - * - LogTreasuryInstanceWalletSet - */ - function setInstanceWallet(address instanceWalletAddress) - external override - whenNotSuspended - onlyInstanceOperator - { - require(instanceWalletAddress != address(0), "ERROR:TRS-015:WALLET_ADDRESS_ZERO"); - _instanceWalletAddress = instanceWalletAddress; - - emit LogTreasuryInstanceWalletSet (instanceWalletAddress); - } - - /** - * @dev Sets the wallet address for a specific riskpool. - * @param riskpoolId The ID of the riskpool. - * @param riskpoolWalletAddress The wallet address to set for the riskpool. - * - * Requirements: - * - The caller must be the instance operator. - * - The riskpool must exist. - * - The wallet address cannot be the zero address. - * - * Emits a {LogTreasuryRiskpoolWalletSet} event. - * @notice This function emits 1 events: - * - LogTreasuryRiskpoolWalletSet - */ - function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) - external override - whenNotSuspended - onlyInstanceOperator - { - IComponent component = _component.getComponent(riskpoolId); - require(_component.isRiskpool(riskpoolId), "ERROR:TRS-016:NOT_RISKPOOL"); - require(riskpoolWalletAddress != address(0), "ERROR:TRS-017:WALLET_ADDRESS_ZERO"); - _riskpoolWallet[riskpoolId] = riskpoolWalletAddress; - - emit LogTreasuryRiskpoolWalletSet (riskpoolId, riskpoolWalletAddress); - } - - /** - * @dev Creates a fee specification for a given component. - * @param componentId The ID of the component for which to create the fee specification. - * @param fixedFee The fixed fee amount in wei. - * @param fractionalFee The fractional fee amount as a percentage of the total value. - * @param feeCalculationData Additional data required for calculating the fee. - * @return Returns a FeeSpecification struct containing the fee details. - */ - function createFeeSpecification( - uint256 componentId, - uint256 fixedFee, - uint256 fractionalFee, - bytes calldata feeCalculationData - ) - external override - view - returns(FeeSpecification memory) - { - require(_component.isProduct(componentId) || _component.isRiskpool(componentId), "ERROR:TRS-020:ID_NOT_PRODUCT_OR_RISKPOOL"); - require(fractionalFee <= FRACTIONAL_FEE_MAX, "ERROR:TRS-021:FRACIONAL_FEE_TOO_BIG"); - - return FeeSpecification( - componentId, - fixedFee, - fractionalFee, - feeCalculationData, - block.timestamp, // solhint-disable-line - block.timestamp // solhint-disable-line - ); - } - - /** - * @dev Sets the premium fees for a specific component. - * @param feeSpec The fee specification for the component. - * Includes the component ID, fixed fee, and fractional fee. - * - * Emits a LogTreasuryPremiumFeesSet event with the following parameters: - * - componentId: The ID of the component for which the fees were set. - * - fixedFee: The fixed fee for the component. - * - fractionalFee: The fractional fee for the component. - * - * Requirements: - * - The caller must be the instance operator. - * - The component ID must correspond to a valid product. - * - The contract must not be suspended. - * @notice This function emits 1 events: - * - LogTreasuryPremiumFeesSet - */ - function setPremiumFees(FeeSpecification calldata feeSpec) - external override - whenNotSuspended - onlyInstanceOperator - { - require(_component.isProduct(feeSpec.componentId), "ERROR:TRS-022:NOT_PRODUCT"); - - // record original creation timestamp - uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt; - _fees[feeSpec.componentId] = feeSpec; - - // set original creation timestamp if fee spec already existed - if (originalCreatedAt > 0) { - _fees[feeSpec.componentId].createdAt = originalCreatedAt; - } - - emit LogTreasuryPremiumFeesSet ( - feeSpec.componentId, - feeSpec.fixedFee, - feeSpec.fractionalFee); - } - - - /** - * @dev Sets the fee specification for a given component, which includes the fixed and fractional fees. - * @param feeSpec The fee specification struct containing the component ID, fixed fee, and fractional fee. - * - * Emits a {LogTreasuryCapitalFeesSet} event with the component ID, fixed fee, and fractional fee. - * @notice This function emits 1 events: - * - LogTreasuryCapitalFeesSet - */ - function setCapitalFees(FeeSpecification calldata feeSpec) - external override - whenNotSuspended - onlyInstanceOperator - { - require(_component.isRiskpool(feeSpec.componentId), "ERROR:TRS-023:NOT_RISKPOOL"); - - // record original creation timestamp - uint256 originalCreatedAt = _fees[feeSpec.componentId].createdAt; - _fees[feeSpec.componentId] = feeSpec; - - // set original creation timestamp if fee spec already existed - if (originalCreatedAt > 0) { - _fees[feeSpec.componentId].createdAt = originalCreatedAt; - } - - emit LogTreasuryCapitalFeesSet ( - feeSpec.componentId, - feeSpec.fixedFee, - feeSpec.fractionalFee); - } - - - /** - * @dev Calculates the fee amount and net amount for a given component ID and amount. - * @param componentId The ID of the component for which the fee is being calculated. - * @param amount The amount for which the fee is being calculated. - * @return feeAmount The amount of the fee calculated. - * @return netAmount The net amount after the fee has been deducted. - */ - function calculateFee(uint256 componentId, uint256 amount) - public - view - returns(uint256 feeAmount, uint256 netAmount) - { - FeeSpecification memory feeSpec = getFeeSpecification(componentId); - require(feeSpec.createdAt > 0, "ERROR:TRS-024:FEE_SPEC_UNDEFINED"); - feeAmount = _calculateFee(feeSpec, amount); - netAmount = amount - feeAmount; - } - - - /* - * Process the remaining premium by calculating the remaining amount, the fees for that amount and - * then transfering the fees to the instance wallet and the net premium remaining to the riskpool. - * This will revert if no fee structure is defined. - */ - /** - * @dev Processes the premium for a given policy process ID. - * @param processId The process ID of the policy to process the premium for. - * @return success A boolean indicating whether the premium was successfully processed or not. - * @return feeAmount The amount of fees charged for processing the premium. - * @return netPremiumAmount The net amount of premium received after deducting fees. - */ - function processPremium(bytes32 processId) - external override - whenNotSuspended - onlyPolicyFlow("Treasury") - returns( - bool success, - uint256 feeAmount, - uint256 netPremiumAmount - ) - { - IPolicy.Policy memory policy = _policy.getPolicy(processId); - - if (policy.premiumPaidAmount < policy.premiumExpectedAmount) { - (success, feeAmount, netPremiumAmount) - = processPremium(processId, policy.premiumExpectedAmount - policy.premiumPaidAmount); - } - } - - /* - * Process the premium by calculating the fees for the amount and - * then transfering the fees to the instance wallet and the net premium to the riskpool. - * This will revert if no fee structure is defined. - */ - /** - * @dev Processes a premium payment for a policy. - * @param processId The ID of the policy process. - * @param amount The amount of premium to be processed. - * @return success A boolean indicating whether the premium payment was successful or not. - * @return feeAmount The amount of fees collected from the premium payment. - * @return netAmount The net amount of premium transferred to the riskpool wallet. - * - * Requirements: - * - The policy process must exist. - * - The premium payment amount must not exceed the expected premium amount. - * - The caller must have sufficient allowance to transfer the requested amount of tokens. - * - The instance wallet and riskpool wallet must be defined for the policy process. - * - The caller must be authorized to perform the action. - * - * Emits: - * - LogTreasuryFeesTransferred: When the fees are successfully transferred to the instance wallet. - * - LogTreasuryPremiumTransferred: When the net premium amount is successfully transferred to the riskpool wallet. - * - LogTreasuryPremiumProcessed: When the premium payment is successfully processed. - * - * Throws: - * - "ERROR:TRS-030:AMOUNT_TOO_BIG": If the premium payment amount exceeds the expected premium amount. - * - "ERROR:TRS-031:FEE_TRANSFER_FAILED": If the transfer of fees to the instance wallet fails. - * - "ERROR:TRS-032:PREMIUM_TRANSFER_FAILED": If the transfer of net premium to the riskpool wallet fails. - * @notice This function emits 3 events: - * - LogTreasuryPremiumProcessed - * - LogTreasuryPremiumTransferred - * - LogTreasuryFeesTransferred - */ - function processPremium(bytes32 processId, uint256 amount) - public override - whenNotSuspended - instanceWalletDefined - riskpoolWalletDefinedForProcess(processId) - onlyPolicyFlow("Treasury") - returns( - bool success, - uint256 feeAmount, - uint256 netAmount - ) - { - IPolicy.Policy memory policy = _policy.getPolicy(processId); - require( - policy.premiumPaidAmount + amount <= policy.premiumExpectedAmount, - "ERROR:TRS-030:AMOUNT_TOO_BIG" - ); - - IPolicy.Metadata memory metadata = _policy.getMetadata(processId); - (feeAmount, netAmount) - = calculateFee(metadata.productId, amount); - - // check if allowance covers requested amount - IERC20 token = getComponentToken(metadata.productId); - if (token.allowance(metadata.owner, address(this)) < amount) { - success = false; - return (success, feeAmount, netAmount); - } - - // collect premium fees - success = TransferHelper.unifiedTransferFrom(token, metadata.owner, _instanceWalletAddress, feeAmount); - emit LogTreasuryFeesTransferred(metadata.owner, _instanceWalletAddress, feeAmount); - require(success, "ERROR:TRS-031:FEE_TRANSFER_FAILED"); - - // transfer premium net amount to riskpool for product - // actual transfer of net premium to riskpool - (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId); - success = TransferHelper.unifiedTransferFrom(token, metadata.owner, riskpoolWalletAddress, netAmount); - - emit LogTreasuryPremiumTransferred(metadata.owner, riskpoolWalletAddress, netAmount); - require(success, "ERROR:TRS-032:PREMIUM_TRANSFER_FAILED"); - - emit LogTreasuryPremiumProcessed(processId, amount); - } - - - /** - * @dev Processes a payout for a specific process and payout ID. - * @param processId The ID of the process for which the payout is being processed. - * @param payoutId The ID of the payout being processed. - * @return feeAmount The amount of fees deducted from the payout. - * @return netPayoutAmount The net payout amount after fees have been deducted. - * @notice This function emits 2 events: - * - LogTreasuryPayoutTransferred - * - LogTreasuryPayoutProcessed - */ - function processPayout(bytes32 processId, uint256 payoutId) - external override - whenNotSuspended - instanceWalletDefined - riskpoolWalletDefinedForProcess(processId) - onlyPolicyFlow("Treasury") - returns( - uint256 feeAmount, - uint256 netPayoutAmount - ) - { - IPolicy.Metadata memory metadata = _policy.getMetadata(processId); - IERC20 token = getComponentToken(metadata.productId); - (uint256 riskpoolId, address riskpoolWalletAddress) = _getRiskpoolWallet(processId); - - IPolicy.Payout memory payout = _policy.getPayout(processId, payoutId); - require( - token.balanceOf(riskpoolWalletAddress) >= payout.amount, - "ERROR:TRS-042:RISKPOOL_WALLET_BALANCE_TOO_SMALL" - ); - require( - token.allowance(riskpoolWalletAddress, address(this)) >= payout.amount, - "ERROR:TRS-043:PAYOUT_ALLOWANCE_TOO_SMALL" - ); - - // actual payout to policy holder - bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWalletAddress, metadata.owner, payout.amount); - feeAmount = 0; - netPayoutAmount = payout.amount; - - emit LogTreasuryPayoutTransferred(riskpoolWalletAddress, metadata.owner, payout.amount); - require(success, "ERROR:TRS-044:PAYOUT_TRANSFER_FAILED"); - - emit LogTreasuryPayoutProcessed(riskpoolId, metadata.owner, payout.amount); - } - - /** - * @dev Processes capital for a given bundle ID and calculates fees. Transfers fees to the instance wallet and net capital to the riskpool wallet. - * @param bundleId The ID of the bundle for which to process capital. - * @param capitalAmount The amount of capital to be processed. - * @return feeAmount The amount of fees calculated and transferred to the instance wallet. - * @return netCapitalAmount The amount of net capital transferred to the riskpool wallet. - * @notice This function emits 3 events: - * - LogTreasuryFeesTransferred - * - LogTreasuryCapitalProcessed - * - LogTreasuryCapitalTransferred - */ - function processCapital(uint256 bundleId, uint256 capitalAmount) - external override - whenNotSuspended - instanceWalletDefined - riskpoolWalletDefinedForBundle(bundleId) - onlyRiskpoolService - returns( - uint256 feeAmount, - uint256 netCapitalAmount - ) - { - // obtain relevant fee specification - IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); - address bundleOwner = _bundle.getOwner(bundleId); - - FeeSpecification memory feeSpec = getFeeSpecification(bundle.riskpoolId); - require(feeSpec.createdAt > 0, "ERROR:TRS-050:FEE_SPEC_UNDEFINED"); - - // obtain relevant token for product/riskpool pair - IERC20 token = _componentToken[bundle.riskpoolId]; - - // calculate fees and net capital - feeAmount = _calculateFee(feeSpec, capitalAmount); - netCapitalAmount = capitalAmount - feeAmount; - - // check balance and allowance before starting any transfers - require(token.balanceOf(bundleOwner) >= capitalAmount, "ERROR:TRS-052:BALANCE_TOO_SMALL"); - require(token.allowance(bundleOwner, address(this)) >= capitalAmount, "ERROR:TRS-053:CAPITAL_TRANSFER_ALLOWANCE_TOO_SMALL"); - - bool success = TransferHelper.unifiedTransferFrom(token, bundleOwner, _instanceWalletAddress, feeAmount); - - emit LogTreasuryFeesTransferred(bundleOwner, _instanceWalletAddress, feeAmount); - require(success, "ERROR:TRS-054:FEE_TRANSFER_FAILED"); - - // transfer net capital - address riskpoolWallet = getRiskpoolWallet(bundle.riskpoolId); - success = TransferHelper.unifiedTransferFrom(token, bundleOwner, riskpoolWallet, netCapitalAmount); - - emit LogTreasuryCapitalTransferred(bundleOwner, riskpoolWallet, netCapitalAmount); - require(success, "ERROR:TRS-055:CAPITAL_TRANSFER_FAILED"); - - emit LogTreasuryCapitalProcessed(bundle.riskpoolId, bundleId, capitalAmount); - } - - /** - * @dev Processes a withdrawal of a specified amount from a bundle, transferring the funds to the bundle owner's wallet. - * @param bundleId The ID of the bundle from which the withdrawal is made. - * @param amount The amount of tokens to withdraw. - * @return feeAmount The amount of fees charged for the withdrawal. - * @return netAmount The net amount of tokens transferred to the bundle owner's wallet. - * - * Requirements: - * - The function can only be called when the contract is not suspended. - * - The instance wallet must be defined. - * - The riskpool wallet must be defined for the specified bundle. - * - Only the riskpool service can call this function. - * - The bundle must have sufficient capacity or balance to cover the withdrawal. - * - The riskpool wallet must have sufficient balance of the token to cover the withdrawal. - * - The contract must have sufficient allowance to withdraw the token from the riskpool wallet. - * - The withdrawal transfer must be successful. - * - * Emits a {LogTreasuryWithdrawalTransferred} event indicating the transfer of the withdrawn tokens to the bundle owner's wallet. - * Emits a {LogTreasuryWithdrawalProcessed} event indicating the successful processing of the withdrawal. - * @notice This function emits 2 events: - * - LogTreasuryWithdrawalTransferred - * - LogTreasuryWithdrawalProcessed - */ - function processWithdrawal(uint256 bundleId, uint256 amount) - external override - whenNotSuspended - instanceWalletDefined - riskpoolWalletDefinedForBundle(bundleId) - onlyRiskpoolService - returns( - uint256 feeAmount, - uint256 netAmount - ) - { - // obtain relevant bundle info - IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); - require( - bundle.capital >= bundle.lockedCapital + amount - || (bundle.lockedCapital == 0 && bundle.balance >= amount), - "ERROR:TRS-060:CAPACITY_OR_BALANCE_SMALLER_THAN_WITHDRAWAL" - ); - - // obtain relevant token for product/riskpool pair - address riskpoolWallet = getRiskpoolWallet(bundle.riskpoolId); - address bundleOwner = _bundle.getOwner(bundleId); - IERC20 token = _componentToken[bundle.riskpoolId]; - - require( - token.balanceOf(riskpoolWallet) >= amount, - "ERROR:TRS-061:RISKPOOL_WALLET_BALANCE_TOO_SMALL" - ); - require( - token.allowance(riskpoolWallet, address(this)) >= amount, - "ERROR:TRS-062:WITHDRAWAL_ALLOWANCE_TOO_SMALL" - ); - - // TODO consider to introduce withdrawal fees - // ideally symmetrical reusing capital fee spec for riskpool - feeAmount = 0; - netAmount = amount; - bool success = TransferHelper.unifiedTransferFrom(token, riskpoolWallet, bundleOwner, netAmount); - - emit LogTreasuryWithdrawalTransferred(riskpoolWallet, bundleOwner, netAmount); - require(success, "ERROR:TRS-063:WITHDRAWAL_TRANSFER_FAILED"); - - emit LogTreasuryWithdrawalProcessed(bundle.riskpoolId, bundleId, netAmount); - } - - - /** - * @dev Returns the ERC20 token address associated with the given component ID. - * @param componentId The ID of the component to retrieve the token address for. - * @return token The ERC20 token address associated with the component ID. - */ - function getComponentToken(uint256 componentId) - public override - view - returns(IERC20 token) - { - require(_component.isProduct(componentId) || _component.isRiskpool(componentId), "ERROR:TRS-070:NOT_PRODUCT_OR_RISKPOOL"); - return _componentToken[componentId]; - } - - /** - * @dev Returns the fee specification of a given component. - * @param componentId The ID of the component. - * @return fees The fee specification of the component. - */ - function getFeeSpecification(uint256 componentId) public override view returns(FeeSpecification memory) { - return _fees[componentId]; - } - - /** - * @dev Returns the value of the constant FRACTION_FULL_UNIT. - * @return The value of FRACTION_FULL_UNIT as an unsigned integer. - */ - function getFractionFullUnit() public override pure returns(uint256) { - return FRACTION_FULL_UNIT; - } - - /** - * @dev Returns the address of the instance wallet. - * @return The address of the instance wallet. - */ - function getInstanceWallet() public override view returns(address) { - return _instanceWalletAddress; - } - - /** - * @dev Returns the wallet address of the specified risk pool. - * @param riskpoolId The unique identifier of the risk pool. - * @return The wallet address associated with the specified risk pool. - */ - function getRiskpoolWallet(uint256 riskpoolId) public override view returns(address) { - return _riskpoolWallet[riskpoolId]; - } - - - /** - * @dev Calculates the premium fee for a given fee specification and process ID. - * @param feeSpec The fee specification to be used for the calculation. - * @param processId The process ID of the application for which the fee is being calculated. - * @return application The application object retrieved from the policy contract. - * @return feeAmount The amount of the premium fee calculated based on the fee specification and premium amount of the application. - */ - function _calculatePremiumFee( - FeeSpecification memory feeSpec, - bytes32 processId - ) - internal - view - returns ( - IPolicy.Application memory application, - uint256 feeAmount - ) - { - application = _policy.getApplication(processId); - feeAmount = _calculateFee(feeSpec, application.premiumAmount); - } - - - /** - * @dev Calculates the fee amount based on the given fee specification and the transaction amount. - * @param feeSpec The fee specification in the form of a FeeSpecification struct. - * @param amount The transaction amount to calculate the fee for. - * @return feeAmount The calculated fee amount. - */ - function _calculateFee( - FeeSpecification memory feeSpec, - uint256 amount - ) - internal - pure - returns (uint256 feeAmount) - { - if (feeSpec.feeCalculationData.length > 0) { - revert("ERROR:TRS-090:FEE_CALCULATION_DATA_NOT_SUPPORTED"); - } - - // start with fixed fee - feeAmount = feeSpec.fixedFee; - - // add fractional fee on top - if (feeSpec.fractionalFee > 0) { - feeAmount += (feeSpec.fractionalFee * amount) / FRACTION_FULL_UNIT; - } - - // require that fee is smaller than amount - require(feeAmount < amount, "ERROR:TRS-091:FEE_TOO_BIG"); - } - - /** - * @dev Returns the riskpool ID and wallet address for a given process ID. - * @param processId The ID of the process. - * @return riskpoolId The ID of the riskpool associated with the process. - * @return riskpoolWalletAddress The wallet address of the riskpool associated with the process. - */ - function _getRiskpoolWallet(bytes32 processId) - internal - view - returns(uint256 riskpoolId, address riskpoolWalletAddress) - { - IPolicy.Metadata memory metadata = _policy.getMetadata(processId); - riskpoolId = _pool.getRiskPoolForProduct(metadata.productId); - require(riskpoolId > 0, "ERROR:TRS-092:PRODUCT_WITHOUT_RISKPOOL"); - riskpoolWalletAddress = _riskpoolWallet[riskpoolId]; - } -} diff --git a/contracts-christoph2806/services/ComponentOwnerService.sol b/contracts-christoph2806/services/ComponentOwnerService.sol deleted file mode 100644 index 1d1faa4c..00000000 --- a/contracts-christoph2806/services/ComponentOwnerService.sol +++ /dev/null @@ -1,113 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../modules/ComponentController.sol"; -// TODO ComponentOwnerService should not know of the PoolController - if we have a better idea how to build this, it should be changed. -import "../modules/PoolController.sol"; -import "../shared/CoreController.sol"; - -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol"; - -contract ComponentOwnerService is - IComponentOwnerService, - CoreController -{ - ComponentController private _component; - - modifier onlyOwnerWithRoleFromComponent(IComponent component) { - address owner = component.getOwner(); - bytes32 requiredRole = _component.getRequiredRole(component.getType()); - require(_msgSender() == owner, "ERROR:COS-001:NOT_OWNER"); - require(_access.hasRole(requiredRole, owner), "ERROR:COS-002:REQUIRED_ROLE_MISSING"); - _; - } - - modifier onlyOwnerWithRole(uint256 id) { - IComponent component = _component.getComponent(id); - require(address(component) != address(0), "ERROR:COS-003:COMPONENT_ID_INVALID"); - - address owner = component.getOwner(); - bytes32 requiredRole = _component.getRequiredRole(_component.getComponentType(id)); - - require(_msgSender() == owner, "ERROR:COS-004:NOT_OWNER"); - require(_access.hasRole(requiredRole, owner), "ERROR:COS-005:REQUIRED_ROLE_MISSING"); - _; - } - - /** - * @dev This function is called after the contract is initialized and can only be called once. It sets the component controller contract address. - */ - function _afterInitialize() internal override onlyInitializing { - _component = ComponentController(_getContractAddress("Component")); - } - - /** - * @dev Propose a new component to be added to the system. - * @param component The component to be proposed. - */ - function propose(IComponent component) - external override - onlyOwnerWithRoleFromComponent(component) - { - _component.propose(component); - } - - /** - * @dev Stake function allows the owner to stake a specific id. - * - * @param id The id of the stake. - * - */ - function stake(uint256 id) - external override - onlyOwnerWithRole(id) - { - revert("ERROR:COS-006:IMPLEMENATION_MISSING"); - } - - /** - * @dev Allows the owner to withdraw a specific asset by its ID. - * @param id The ID of the asset to be withdrawn. - */ - function withdraw(uint256 id) - external override - onlyOwnerWithRole(id) - { - revert("ERROR:COS-007:IMPLEMENATION_MISSING"); - } - - - /** - * @dev Pauses a specific component with the given ID. - * @param id The ID of the component to be paused. - */ - function pause(uint256 id) - external override - onlyOwnerWithRole(id) - { - _component.pause(id); - } - - /** - * @dev Unpauses a component with the specified ID. - * @param id The ID of the component to unpause. - */ - function unpause(uint256 id) - external override - onlyOwnerWithRole(id) - { - _component.unpause(id); - } - - /** - * @dev Archives a component with the given ID from the component owner's inventory. - * @param id The ID of the component to be archived. - */ - function archive(uint256 id) - external override - onlyOwnerWithRole(id) - { - _component.archiveFromComponentOwner(id); - } -} \ No newline at end of file diff --git a/contracts-christoph2806/services/InstanceOperatorService.sol b/contracts-christoph2806/services/InstanceOperatorService.sol deleted file mode 100644 index 70c9ae56..00000000 --- a/contracts-christoph2806/services/InstanceOperatorService.sol +++ /dev/null @@ -1,393 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../modules/AccessController.sol"; -import "../modules/BundleController.sol"; -import "../modules/ComponentController.sol"; -import "../modules/PoolController.sol"; -import "../modules/TreasuryModule.sol"; -import "../shared/CoreController.sol"; -import "../test/TestProduct.sol"; -import "../tokens/BundleToken.sol"; - -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/components/IProduct.sol"; -import "@etherisc/gif-interface/contracts/modules/IQuery.sol"; -import "@etherisc/gif-interface/contracts/modules/ITreasury.sol"; -import "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol"; - -import "@openzeppelin/contracts/access/Ownable.sol"; - -contract InstanceOperatorService is - IInstanceOperatorService, - CoreController, - Ownable -{ - ComponentController private _component; - PoolController private _pool; - TreasuryModule private _treasury; - - modifier onlyInstanceOperatorAddress() { - require(owner() == _msgSender(), "ERROR:IOS-001:NOT_INSTANCE_OPERATOR"); - _; - } - - /** - * @dev Performs the necessary setup after contract initialization. - * - Sets the component, pool, and treasury contracts. - * - Transfers ownership to the message sender. - * - Links the bundle module to the bundle token. - * - Sets the default admin role. - */ - function _afterInitialize() internal override onlyInitializing { - _component = ComponentController(_getContractAddress("Component")); - _pool = PoolController(_getContractAddress("Pool")); - _treasury = TreasuryModule(_getContractAddress("Treasury")); - - _transferOwnership(_msgSender()); - _linkBundleModuleToBundleToken(); - _setDefaultAdminRole(); - } - - /** - * @dev Sets the default admin role for the contract calling this function. - * - * - */ - function _setDefaultAdminRole() private { - AccessController access = AccessController(_getContractAddress("Access")); - access.setDefaultAdminRole(address(this)); - } - - /** - * @dev Links the Bundle module to the BundleToken contract. - */ - function _linkBundleModuleToBundleToken() private { - BundleToken token = BundleToken(_getContractAddress("BundleToken")); - address bundleAddress = _getContractAddress("Bundle"); - token.setBundleModule(bundleAddress); - } - - /* registry */ - /** - * @dev Prepares a new release by calling the prepareRelease function from the Registry contract. - * @param _newRelease The hash of the new release. - * - * Requirements: - * - Caller must be the instance operator address. - */ - function prepareRelease(bytes32 _newRelease) - external override - onlyInstanceOperatorAddress - { - _registry.prepareRelease(_newRelease); - } - - /** - * @dev Registers a contract in the registry. - * @param _contractName The name of the contract to be registered. - * @param _contractAddress The address of the contract to be registered. - */ - function register(bytes32 _contractName, address _contractAddress) - external override - onlyInstanceOperatorAddress - { - _registry.register(_contractName, _contractAddress); - } - - /** - * @dev Deregisters a contract from the registry. - * @param _contractName The name of the contract to be deregistered. - */ - function deregister(bytes32 _contractName) - external override - onlyInstanceOperatorAddress - { - _registry.deregister(_contractName); - } - - /** - * @dev Registers a contract in a specific release. - * @param _release The release identifier where the contract will be registered. - * @param _contractName The name of the contract to be registered. - * @param _contractAddress The address of the contract to be registered. - */ - function registerInRelease( - bytes32 _release, - bytes32 _contractName, - address _contractAddress - ) - external override - onlyInstanceOperatorAddress - { - _registry.registerInRelease(_release, _contractName, _contractAddress); - } - - /** - * @dev Deregisters a contract from a specific release in the registry. - * @param _release The identifier of the release to deregister the contract from. - * @param _contractName The name of the contract to be deregistered. - */ - function deregisterInRelease(bytes32 _release, bytes32 _contractName) - external override - onlyInstanceOperatorAddress - { - _registry.deregisterInRelease(_release, _contractName); - } - - /* access */ - /** - * @dev Adds a new role to the access control contract. - * @param _role The name of the new role to be added. - */ - function createRole(bytes32 _role) - external override - onlyInstanceOperatorAddress - { - _access.addRole(_role); - } - - /** - * @dev Invalidates a role. - * @param _role The role to invalidate. - */ - function invalidateRole(bytes32 _role) - external override - onlyInstanceOperatorAddress - { - _access.invalidateRole(_role); - } - - /** - * @dev Grants a role to a principal. - * @param role The role to be granted. - * @param principal The address of the principal to whom the role is granted. - */ - function grantRole(bytes32 role, address principal) - external override - onlyInstanceOperatorAddress - { - _access.grantRole(role, principal); - } - - /** - * @dev Revokes a role from a principal. - * @param role The role to revoke. - * @param principal The address of the principal to revoke the role from. - */ - function revokeRole(bytes32 role, address principal) - external override - onlyInstanceOperatorAddress - { - _access.revokeRole(role, principal); - } - - /* component */ - /** - * @dev Approves a component with the given ID and sets its corresponding riskpool ID in the pool contract. - * @param id The ID of the component to be approved. - */ - function approve(uint256 id) - external override - onlyInstanceOperatorAddress - { - _component.approve(id); - - if (_component.isProduct(id)) { - IComponent component = _component.getComponent(id); - IProduct product = IProduct(address(component)); - - _pool.setRiskpoolForProduct( - id, - product.getRiskpoolId()); - } - } - - /** - * @dev Declines a component with the specified ID. - * @param id The ID of the component to decline. - */ - function decline(uint256 id) - external override - onlyInstanceOperatorAddress - { - _component.decline(id); - } - - /** - * @dev Suspends the component with the given ID. - * @param id The ID of the component to be suspended. - */ - function suspend(uint256 id) - external override - onlyInstanceOperatorAddress - { - _component.suspend(id); - } - - /** - * @dev Resumes the execution of a paused component instance. - * @param id The ID of the component instance to be resumed. - */ - function resume(uint256 id) - external override - onlyInstanceOperatorAddress - { - _component.resume(id); - } - - /** - * @dev Archives a component with the given ID from the instance operator's address. - * @param id The ID of the component to be archived. - */ - function archive(uint256 id) - external override - onlyInstanceOperatorAddress - { - _component.archiveFromInstanceOperator(id); - } - - // service staking - // TODO implement setDefaultStaking staking - /** - * @dev Sets the default staking for a specific component type. - * @param componentType The type of component to set the default staking for. - * @param data The data containing the default staking information. - */ - function setDefaultStaking( - uint16 componentType, - bytes calldata data - ) - external override - onlyInstanceOperatorAddress - { - revert("ERROR:IOS-010:IMPLEMENATION_MISSING"); - } - - // TODO implement adjustStakingRequirements staking - /** - * @dev Adjusts the staking requirements for a specific instance operator by providing the operator ID and the new staking requirements. - * @param id The ID of the instance operator whose staking requirements are being adjusted. - * @param data The new staking requirements encoded as bytes. - */ - function adjustStakingRequirements( - uint256 id, - bytes calldata data - ) - external override - onlyInstanceOperatorAddress - { - revert("ERROR:IOS-011:IMPLEMENATION_MISSING"); - } - - /* treasury */ - /** - * @dev Suspends the treasury functionality. - * - * - */ - function suspendTreasury() - external override - onlyInstanceOperatorAddress - { - _treasury.suspend(); - } - - /** - * @dev Resumes the treasury contract. - * - * - */ - function resumeTreasury() - external override - onlyInstanceOperatorAddress - { - _treasury.resume(); - } - - /** - * @dev Sets the wallet address of the instance operator. - * @param walletAddress The address of the wallet to be set. - */ - function setInstanceWallet(address walletAddress) - external override - onlyInstanceOperatorAddress - { - _treasury.setInstanceWallet(walletAddress); - } - - /** - * @dev Sets the wallet address for a specific risk pool. - * @param riskpoolId The ID of the risk pool to set the wallet address for. - * @param riskpoolWalletAddress The address of the wallet to set for the specified risk pool. - */ - function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) - external override - onlyInstanceOperatorAddress - { - _treasury.setRiskpoolWallet(riskpoolId, riskpoolWalletAddress); - } - - /** - * @dev Sets the ERC20 token address for a given product ID. - * @param productId The ID of the product to set the token address for. - * @param erc20Address The address of the ERC20 token to set. - */ - function setProductToken(uint256 productId, address erc20Address) - external override - onlyInstanceOperatorAddress - { - _treasury.setProductToken(productId, erc20Address); - } - - /** - * @dev Returns a FeeSpecification object created with the given parameters. - * @param componentId The ID of the component for which the fee is being created. - * @param fixedFee The fixed fee amount to be charged for the component. - * @param fractionalFee The fractional fee to be charged for the component. - * @param feeCalculationData The data required for calculating the fee. - * @return Returns a FeeSpecification object with the given parameters. - */ - function createFeeSpecification( - uint256 componentId, - uint256 fixedFee, - uint256 fractionalFee, - bytes calldata feeCalculationData - ) - external override - view - returns(ITreasury.FeeSpecification memory) - { - return _treasury.createFeeSpecification( - componentId, - fixedFee, - fractionalFee, - feeCalculationData - ); - } - - /** - * @dev Sets the premium fees for the treasury. - * @param feeSpec The fee specification struct containing the following parameters: - * - feeType: The type of fee (e.g. premium fee). - * - numerator: The numerator of the fee percentage. - * - denominator: The denominator of the fee percentage. - */ - function setPremiumFees(ITreasury.FeeSpecification calldata feeSpec) - external override - onlyInstanceOperatorAddress - { - _treasury.setPremiumFees(feeSpec); - } - - /** - * @dev Sets the fee specification for capital fees in the treasury contract. - * @param feeSpec The fee specification struct containing the details of the capital fees. - */ - function setCapitalFees(ITreasury.FeeSpecification calldata feeSpec) - external override - onlyInstanceOperatorAddress - { - _treasury.setCapitalFees(feeSpec); - } -} diff --git a/contracts-christoph2806/services/InstanceService.sol b/contracts-christoph2806/services/InstanceService.sol deleted file mode 100644 index 4a273735..00000000 --- a/contracts-christoph2806/services/InstanceService.sol +++ /dev/null @@ -1,597 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../modules/ComponentController.sol"; -import "../modules/BundleController.sol"; -import "../modules/PolicyController.sol"; -import "../modules/PoolController.sol"; -import "../modules/TreasuryModule.sol"; -import "../shared/CoreController.sol"; -import "../services/InstanceOperatorService.sol"; - -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/components/IOracle.sol"; -import "@etherisc/gif-interface/contracts/components/IProduct.sol"; -import "@etherisc/gif-interface/contracts/components/IRiskpool.sol"; -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; -import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; -import "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol"; -import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; -import "@etherisc/gif-interface/contracts/services/IInstanceOperatorService.sol"; -import "@etherisc/gif-interface/contracts/services/IOracleService.sol"; -import "@etherisc/gif-interface/contracts/services/IProductService.sol"; -import "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol"; -import "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol"; - -import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; - -contract InstanceService is - IInstanceService, - CoreController -{ - bytes32 public constant BUNDLE_NAME = "Bundle"; - bytes32 public constant COMPONENT_NAME = "Component"; - bytes32 public constant POLICY_NAME = "Policy"; - bytes32 public constant POOL_NAME = "Pool"; - bytes32 public constant TREASURY_NAME = "Treasury"; - - bytes32 public constant COMPONENT_OWNER_SERVICE_NAME = "ComponentOwnerService"; - bytes32 public constant INSTANCE_OPERATOR_SERVICE_NAME = "InstanceOperatorService"; - bytes32 public constant ORACLE_SERVICE_NAME = "OracleService"; - bytes32 public constant PRODUCT_SERVICE_NAME = "ProductService"; - bytes32 public constant RISKPOOL_SERVICE_NAME = "RiskpoolService"; - - BundleController _bundle; - ComponentController _component; - PolicyController _policy; - PoolController _pool; - TreasuryModule private _treasury; - - mapping(uint256 /* chain id */ => string /* chain name */) private _chainName; - - /** - * @dev Internal function that is called after initialization is complete. It sets the bundle, component, policy, pool, and treasury controllers by retrieving their contract addresses. It also sets the chain names. - * - */ - function _afterInitialize() internal override onlyInitializing { - _bundle = BundleController(_getContractAddress(BUNDLE_NAME)); - _component = ComponentController(_getContractAddress(COMPONENT_NAME)); - _policy = PolicyController(_getContractAddress(POLICY_NAME)); - _pool = PoolController(_getContractAddress(POOL_NAME)); - _treasury = TreasuryModule(_getContractAddress(TREASURY_NAME)); - - _setChainNames(); - } - - /** - * @dev Sets the names for several blockchain networks by assigning them to their respective chain IDs. - * - * Sets the names for the Ethereum Mainnet/ETH, Goerli/ETH, Ganache, Gnosis/xDai, Sokol/SPOA, Polygon Mainnet/MATIC, Mumbai/MATIC, Avalanche C-Chain/AVAX and Avalanche Fuji Testnet/AVAX blockchain networks by assigning them to their respective chain IDs. - */ - function _setChainNames() internal { - _chainName[1] = "Ethereum Mainnet/ETH"; - _chainName[5] = "Goerli/ETH"; - _chainName[1337] = "Ganache"; - _chainName[100] = "Gnosis/xDai"; - _chainName[77] = "Sokol/SPOA"; - _chainName[137] = "Polygon Mainnet/MATIC"; - _chainName[8001] = "Mumbai/MATIC"; - _chainName[43114] = "Avalanche C-Chain/AVAX"; - _chainName[43113] = "Avalanche Fuji Testnet/AVAX"; - } - - /* instance service */ - /** - * @dev Returns the chain ID of the current blockchain. - * @return chainId The ID of the current blockchain. - */ - function getChainId() public override view returns(uint256 chainId) { - chainId = block.chainid; - } - - /** - * @dev Returns the name of the chain based on its ID. - * - * @return chainName The name of the chain as a string. - */ - function getChainName() public override view returns(string memory chainName) { - chainName = _chainName[block.chainid]; - } - - /** - * @dev Returns the instance ID of the contract, which is a hash of the chain ID and the registry address. - * - * @return instanceId The instance ID of the contract. - */ - function getInstanceId() public override view returns(bytes32 instanceId) { - instanceId = keccak256( - abi.encodePacked( - block.chainid, - address(_registry))); - } - - /** - * @dev Returns the address of the current instance operator. - * @return The address of the instance operator. - */ - function getInstanceOperator() external override view returns(address) { - InstanceOperatorService ios = InstanceOperatorService(_getContractAddress(INSTANCE_OPERATOR_SERVICE_NAME)); - return ios.owner(); - } - - /* registry */ - /** - * @dev Returns the address of the Component Owner Service contract. - * @return service The Component Owner Service contract address. - */ - function getComponentOwnerService() external override view returns(IComponentOwnerService service) { - return IComponentOwnerService(_getContractAddress(COMPONENT_OWNER_SERVICE_NAME)); - } - - /** - * @dev Returns the instance operator service contract address. - * @return service The instance operator service contract address. - */ - function getInstanceOperatorService() external override view returns(IInstanceOperatorService service) { - return IInstanceOperatorService(_getContractAddress(INSTANCE_OPERATOR_SERVICE_NAME)); - } - - /** - * @dev Returns the Oracle Service contract instance. - * @return service The instance of the Oracle Service contract. - */ - function getOracleService() external override view returns(IOracleService service) { - return IOracleService(_getContractAddress(ORACLE_SERVICE_NAME)); - } - - /** - * @dev Returns the address of the Product Service contract. - * @return service The Product Service contract address. - */ - function getProductService() external override view returns(IProductService service) { - return IProductService(_getContractAddress(PRODUCT_SERVICE_NAME)); - } - - /** - * @dev Returns the IRiskpoolService contract instance. - * @return service The IRiskpoolService contract instance. - */ - function getRiskpoolService() external override view returns(IRiskpoolService service) { - return IRiskpoolService(_getContractAddress(RISKPOOL_SERVICE_NAME)); - } - - /* registry */ - /** - * @dev Returns the current instance of the IRegistry contract. - * @return service The IRegistry contract instance. - */ - function getRegistry() external view returns(IRegistry service) { - return _registry; - } - - /** - * @dev Returns the number of contracts registered in the registry. - * @return numberOfContracts The total number of contracts registered in the registry. - */ - function contracts() external view override returns (uint256 numberOfContracts) { - numberOfContracts = _registry.contracts(); - } - - /** - * @dev Returns the name of the contract at the specified index in the registry. - * @param idx The index of the contract. - * @return name The name of the contract as a bytes32 value. - */ - function contractName(uint256 idx) external view override returns (bytes32 name) { - name = _registry.contractName(idx); - } - - /* access */ - /** - * @dev Returns the default admin role for the AccessControl contract. - * - * @return The default admin role as a bytes32 value. - */ - function getDefaultAdminRole() external override view returns(bytes32) { - return _access.getDefaultAdminRole(); - } - - /** - * @dev Returns the role identifier of the product owner role. - * @return The role identifier of the product owner role. - */ - function getProductOwnerRole() external override view returns(bytes32) { - return _access.getProductOwnerRole(); - } - - /** - * @dev Returns the role identifier for the oracle provider role. - * @return The role identifier for the oracle provider role. - */ - function getOracleProviderRole() external override view returns(bytes32) { - return _access.getOracleProviderRole(); - } - - /** - * @dev Returns the role identifier for the Riskpool Keeper role. - * @return The role identifier for the Riskpool Keeper role as a bytes32 value. - */ - function getRiskpoolKeeperRole() external override view returns(bytes32) { - return _access.getRiskpoolKeeperRole(); - } - - /** - * @dev Checks if an address has a specific role. - * @param role The bytes32 identifier of the role being checked. - * @param principal The address of the account being checked for the role. - * @return A boolean indicating whether the address has the specified role or not. - */ - function hasRole(bytes32 role, address principal) - external override view - returns(bool) - { - return _access.hasRole(role, principal); - } - - /* component */ - /** - * @dev Returns the number of products in the component contract. - * @return products The number of products in the component contract. - */ - function products() external override view returns(uint256) { - return _component.products(); - } - - /** - * @dev Returns the number of oracles registered in the component. - * @return The number of oracles registered in the component. - */ - function oracles() external override view returns(uint256) { - return _component.oracles(); - } - - /** - * @dev Returns the number of risk pools in the component. - * @return The number of risk pools as an unsigned integer. - */ - function riskpools() external override view returns(uint256) { - return _component.riskpools(); - } - - /** - * @dev Returns the component ID of a given component address. - * @param componentAddress The address of the component. - * @return componentId The ID of the component. - */ - function getComponentId(address componentAddress) external override view returns(uint256 componentId) { - return _component.getComponentId(componentAddress); - } - - /** - * @dev Returns the type of a component given its ID. - * @param componentId The ID of the component. - * @return componentType The type of the component. - */ - function getComponentType(uint256 componentId) - external override - view - returns(IComponent.ComponentType componentType) - { - return _component.getComponentType(componentId); - } - - /** - * @dev Returns the current state of a specific component. - * @param componentId The ID of the component to retrieve the state for. - * @return componentState The current state of the specified component. - */ - function getComponentState(uint256 componentId) - external override - view - returns(IComponent.ComponentState componentState) - { - componentState = _component.getComponentState(componentId); - } - - /** - * @dev Returns the component with the specified ID. - * @param id The ID of the component to retrieve. - * @return The component with the specified ID. - */ - function getComponent(uint256 id) external override view returns(IComponent) { - return _component.getComponent(id); - } - - /** - * @dev Returns the oracle ID at the specified index. - * @param idx The index of the oracle ID to retrieve. - * @return oracleId The ID of the oracle at the specified index. - */ - function getOracleId(uint256 idx) public view returns (uint256 oracleId) { - return _component.getOracleId(idx); - } - - /** - * @dev Returns the riskpool ID for the given index. - * @param idx The index of the riskpool ID to retrieve. - * @return riskpoolId The ID of the riskpool. - */ - function getRiskpoolId(uint256 idx) public view returns (uint256 riskpoolId) { - return _component.getRiskpoolId(idx); - } - - /** - * @dev Returns the product ID of the component at the given index. - * @param idx The index of the component. - * @return productId The product ID of the component. - */ - function getProductId(uint256 idx) public view returns (uint256 productId) { - return _component.getProductId(idx); - } - - /* service staking */ - /** - * @dev Returns the staking requirements for a specific ID. - * @param id The ID of the staking requirements to retrieve. - * @return data The staking requirements data as a bytes array. - */ - function getStakingRequirements(uint256 id) - external override - pure - returns(bytes memory data) - { - revert("ERROR:IS-001:IMPLEMENATION_MISSING"); - } - - /** - * @dev Returns the staked assets for a given ID. - * @param id The ID of the staked assets. - * @return data The staked assets data in bytes format. - */ - function getStakedAssets(uint256 id) - external override - pure - returns(bytes memory data) - { - revert("ERROR:IS-002:IMPLEMENATION_MISSING"); - } - - /* policy */ - /** - * @dev Returns the number of process IDs in the policy contract. - * @return numberOfProcessIds The number of process IDs. - */ - function processIds() external override view returns(uint256 numberOfProcessIds) { - numberOfProcessIds = _policy.processIds(); - } - - /** - * @dev Returns the metadata associated with a given business process key. - * @param bpKey The business process key for which to retrieve the metadata. - * @return metadata The metadata associated with the given business process key. - */ - function getMetadata(bytes32 bpKey) external override view returns(IPolicy.Metadata memory metadata) { - metadata = _policy.getMetadata(bpKey); - } - - /** - * @dev Returns the application data associated with the given process ID. - * @param processId The ID of the process to retrieve the application data for. - * @return application The application data associated with the given process ID. - */ - function getApplication(bytes32 processId) external override view returns(IPolicy.Application memory application) { - application = _policy.getApplication(processId); - } - - /** - * @dev Returns the policy associated with the given process ID. - * @param processId The ID of the process. - * @return policy The policy associated with the given process ID. - */ - function getPolicy(bytes32 processId) external override view returns(IPolicy.Policy memory policy) { - policy = _policy.getPolicy(processId); - } - - /** - * @dev Returns the number of claims associated with a given process ID. - * @param processId The ID of the process to retrieve the number of claims for. - * @return numberOfClaims The number of claims associated with the given process ID. - */ - function claims(bytes32 processId) external override view returns(uint256 numberOfClaims) { - numberOfClaims = _policy.getNumberOfClaims(processId); - } - - /** - * @dev Returns the number of payouts for a given processId. - * @param processId The unique identifier of the process. - * @return numberOfPayouts The total number of payouts for the given processId. - */ - function payouts(bytes32 processId) external override view returns(uint256 numberOfPayouts) { - numberOfPayouts = _policy.getNumberOfPayouts(processId); - } - - /** - * @dev Returns the claim with the given claimId for the specified processId. - * @param processId The unique identifier of the process. - * @param claimId The unique identifier of the claim. - * @return claim The claim data, including the claimId, processId, claimant, amount, and status. - */ - function getClaim(bytes32 processId, uint256 claimId) external override view returns (IPolicy.Claim memory claim) { - claim = _policy.getClaim(processId, claimId); - } - - /** - * @dev Returns the information of a specific payout. - * @param processId The ID of the process. - * @param payoutId The ID of the payout. - * @return payout The payout information, including the ID, amount, and recipient. - */ - function getPayout(bytes32 processId, uint256 payoutId) external override view returns (IPolicy.Payout memory payout) { - payout = _policy.getPayout(processId, payoutId); - } - - /* riskpool */ - /** - * @dev Returns the risk pool with the given ID. - * @param riskpoolId The ID of the risk pool to retrieve. - * @return riskPool The risk pool with the given ID. - */ - function getRiskpool(uint256 riskpoolId) external override view returns(IPool.Pool memory riskPool) { - return _pool.getRiskpool(riskpoolId); - } - - /** - * @dev Returns the full collateralization level of the pool. - * @return The full collateralization level as a uint256 value. - */ - function getFullCollateralizationLevel() external override view returns (uint256) { - return _pool.getFullCollateralizationLevel(); - } - - /** - * @dev Returns the capital amount of a given risk pool. - * @param riskpoolId The ID of the risk pool to retrieve the capital amount from. - * @return capitalAmount The amount of capital in the risk pool. - */ - function getCapital(uint256 riskpoolId) external override view returns(uint256 capitalAmount) { - return _pool.getRiskpool(riskpoolId).capital; - } - - /** - * @dev Returns the total value locked in a specific risk pool. - * @param riskpoolId The ID of the risk pool to query. - * @return totalValueLockedAmount The amount of tokens locked in the specified risk pool. - */ - function getTotalValueLocked(uint256 riskpoolId) external override view returns(uint256 totalValueLockedAmount) { - return _pool.getRiskpool(riskpoolId).lockedCapital; - } - - /** - * @dev Returns the available capacity of a risk pool. - * @param riskpoolId The ID of the risk pool to get the capacity for. - * @return capacityAmount The available capacity of the risk pool. - */ - function getCapacity(uint256 riskpoolId) external override view returns(uint256 capacityAmount) { - IPool.Pool memory pool = _pool.getRiskpool(riskpoolId); - return pool.capital - pool.lockedCapital; - } - - /** - * @dev Returns the balance amount of a specific risk pool. - * @param riskpoolId The ID of the risk pool to get the balance amount from. - * @return balanceAmount The balance amount of the specified risk pool. - */ - function getBalance(uint256 riskpoolId) external override view returns(uint256 balanceAmount) { - return _pool.getRiskpool(riskpoolId).balance; - } - - /** - * @dev Returns the number of active bundles for a given risk pool. - * @param riskpoolId The ID of the risk pool. - * @return numberOfActiveBundles The number of active bundles for the specified risk pool. - */ - function activeBundles(uint256 riskpoolId) external override view returns(uint256 numberOfActiveBundles) { - return _pool.activeBundles(riskpoolId); - } - - /** - * @dev Returns the active bundle ID for a given risk pool and bundle index. - * @param riskpoolId The ID of the risk pool. - * @param bundleIdx The index of the bundle within the risk pool. - * @return bundleId The ID of the active bundle. - */ - function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external override view returns(uint256 bundleId) { - return _pool.getActiveBundleId(riskpoolId, bundleIdx); - } - /** - * @dev Returns the maximum number of active bundles for a given risk pool ID. - * @param riskpoolId The ID of the risk pool to query. - * @return maximumNumberOfActiveBundles The maximum number of active bundles for the given risk pool ID. - */ - function getMaximumNumberOfActiveBundles(uint256 riskpoolId) external override view returns(uint256 maximumNumberOfActiveBundles) { - return _pool.getMaximumNumberOfActiveBundles(riskpoolId); - } - - /* bundle */ - /** - * @dev Returns the bundle token contract address. - * @return token The bundle token contract address. - */ - function getBundleToken() external override view returns(IBundleToken token) { - BundleToken bundleToken = _bundle.getToken(); - token = IBundleToken(bundleToken); - } - - /** - * @dev Returns the bundle with the given ID. - * @param bundleId The ID of the bundle to retrieve. - * @return bundle The bundle with the given ID. - */ - function getBundle(uint256 bundleId) external override view returns (IBundle.Bundle memory bundle) { - bundle = _bundle.getBundle(bundleId); - } - - /** - * @dev Returns the number of bundles in the `_bundle` contract. - * @return The number of bundles as a uint256 value. - */ - function bundles() external override view returns (uint256) { - return _bundle.bundles(); - } - - /** - * @dev Returns the number of unburnt bundles for a given risk pool ID. - * @param riskpoolId The ID of the risk pool to check. - * @return numberOfUnburntBundles The number of unburnt bundles for the given risk pool ID. - */ - function unburntBundles(uint256 riskpoolId) external override view returns(uint256 numberOfUnburntBundles) { - numberOfUnburntBundles = _bundle.unburntBundles(riskpoolId); - } - - /* treasury */ - /** - * @dev Returns the address of the treasury contract. - * - * @return The address of the treasury contract. - */ - function getTreasuryAddress() external override view returns(address) { - return address(_treasury); - } - - /** - * @dev Returns the address of the instance wallet associated with the treasury. - * - * @return The address of the instance wallet. - */ - function getInstanceWallet() external override view returns(address) { - return _treasury.getInstanceWallet(); - } - - /** - * @dev Returns the wallet address of the specified riskpool. - * @param riskpoolId The ID of the riskpool to retrieve the wallet address for. - * @return The address of the wallet associated with the specified riskpool. - */ - function getRiskpoolWallet(uint256 riskpoolId) external override view returns(address) { - return _treasury.getRiskpoolWallet(riskpoolId); - } - - /** - * @dev Returns the IERC20 token associated with the given component ID. - * @param componentId The ID of the component for which to get the associated token. - * @return The IERC20 token associated with the given component ID. - */ - function getComponentToken(uint256 componentId) external override view returns(IERC20) { - return _treasury.getComponentToken(componentId); - } - - /** - * @dev Returns the fraction of the treasury fee expressed in full units. - * - * @return The fraction of the treasury fee expressed in full units. - */ - function getFeeFractionFullUnit() external override view returns(uint256) { - return _treasury.getFractionFullUnit(); - } -} diff --git a/contracts-christoph2806/services/OracleService.sol b/contracts-christoph2806/services/OracleService.sol deleted file mode 100644 index 96ae5fe1..00000000 --- a/contracts-christoph2806/services/OracleService.sol +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../shared/CoreController.sol"; - -import "@etherisc/gif-interface/contracts/modules/IQuery.sol"; -import "@etherisc/gif-interface/contracts/services/IOracleService.sol"; - - -contract OracleService is - IOracleService, - CoreController -{ - IQuery private _query; - - /** - * @dev Sets the `_query` variable to an instance of the `IQuery` contract. - */ - function _afterInitialize() internal override onlyInitializing { - _query = IQuery(_getContractAddress("Query")); - } - - /** - * @dev Allows a registered oracle to respond to a data request. - * @param _requestId The ID of the data request. - * @param _data The data requested by the smart contract. - */ - function respond(uint256 _requestId, bytes calldata _data) external override { - // function below enforces msg.sender to be a registered oracle - _query.respond(_requestId, _msgSender(), _data); - } -} diff --git a/contracts-christoph2806/services/ProductService.sol b/contracts-christoph2806/services/ProductService.sol deleted file mode 100644 index 8478edde..00000000 --- a/contracts-christoph2806/services/ProductService.sol +++ /dev/null @@ -1,83 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../shared/WithRegistry.sol"; -// import "../shared/CoreController.sol"; -import "@etherisc/gif-interface/contracts/modules/ILicense.sol"; - -import "@openzeppelin/contracts/utils/Context.sol"; - -contract ProductService is - WithRegistry, - // CoreController - Context - { - bytes32 public constant NAME = "ProductService"; - - // solhint-disable-next-line no-empty-blocks - /** - * @dev Constructor function that initializes the contract with a registry address. - * @param _registry The address of the registry contract. - */ - constructor(address _registry) WithRegistry(_registry) {} - - /** - * @dev Fallback function that ensures the caller is a registered product and authorized to execute the delegated policy flow. - */ - fallback() external { - // getAuthorizationStatus enforces msg.sender to be a registered product - (,bool isAuthorized, address policyFlow) = _license().getAuthorizationStatus(_msgSender()); - - require(isAuthorized, "ERROR:PRS-001:NOT_AUTHORIZED"); - require(policyFlow != address(0),"ERROR:PRS-002:POLICY_FLOW_NOT_RESOLVED"); - - _delegate(policyFlow); - } - - - /** - * @dev Delegates the current call to `implementation`. - * - * This function does not return to its internal call site, it will return directly to the external caller. - * This function is a 1:1 copy of _delegate from - * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.6/contracts/proxy/Proxy.sol - */ - /** - * @dev Delegates the current call to `implementation`. - * @param implementation Address of the contract to delegatecall. - */ - function _delegate(address implementation) internal { - assembly { - // Copy msg.data. We take full control of memory in this inline assembly - // block because it will not return to Solidity code. We overwrite the - // Solidity scratch pad at memory position 0. - calldatacopy(0, 0, calldatasize()) - - // Call the implementation. - // out and outsize are 0 because we don't know the size yet. - let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) - - // Copy the returned data. - returndatacopy(0, 0, returndatasize()) - - switch result - // delegatecall returns 0 on error. - case 0 { - revert(0, returndatasize()) - } - default { - return(0, returndatasize()) - } - } - } - - /** - * @dev Returns the instance of the License contract. - * - * @return license An instance of the ILicense interface representing the License contract. - */ - function _license() internal view returns (ILicense) { - return ILicense(registry.getContract("License")); - } - -} diff --git a/contracts-christoph2806/services/README.adoc b/contracts-christoph2806/services/README.adoc deleted file mode 100644 index 3cbee757..00000000 --- a/contracts-christoph2806/services/README.adoc +++ /dev/null @@ -1,18 +0,0 @@ -= Services - -[.readme-notice] -NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/services - -== Contracts - -{{ComponentOwnerService}} - -{{InstanceOperatorService}} - -{{InstanceService}} - -{{OracleService}} - -{{ProductService}} - -{{RiskpoolService}} diff --git a/contracts-christoph2806/services/RiskpoolService.sol b/contracts-christoph2806/services/RiskpoolService.sol deleted file mode 100644 index 42edf50d..00000000 --- a/contracts-christoph2806/services/RiskpoolService.sol +++ /dev/null @@ -1,340 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../modules/BundleController.sol"; -import "../modules/ComponentController.sol"; -import "../modules/TreasuryModule.sol"; -import "../shared/CoreController.sol"; - -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; -import "@etherisc/gif-interface/contracts/services/IRiskpoolService.sol"; - -contract RiskpoolService is - IRiskpoolService, - CoreController -{ - bytes32 public constant RISKPOOL_NAME = "Riskpool"; - - ComponentController private _component; - BundleController private _bundle; - PoolController private _pool; - TreasuryModule private _treasury; - - modifier onlyProposedRiskpool() { - uint256 componentId = _component.getComponentId(_msgSender()); - require( - _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool, - "ERROR:RPS-001:SENDER_NOT_RISKPOOL" - ); - require( - _component.getComponentState(componentId) == IComponent.ComponentState.Proposed, - "ERROR:RPS-002:RISKPOOL_NOT_PROPOSED" - ); - _; - } - - modifier onlyActiveRiskpool() { - uint256 componentId = _component.getComponentId(_msgSender()); - require( - _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool, - "ERROR:RPS-003:SENDER_NOT_RISKPOOL" - ); - require( - _component.getComponentState(componentId) == IComponent.ComponentState.Active, - "ERROR:RPS-004:RISKPOOL_NOT_ACTIVE" - ); - _; - } - - modifier onlyOwningRiskpool(uint256 bundleId, bool mustBeActive) { - uint256 componentId = _component.getComponentId(_msgSender()); - bool isRiskpool = _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool; - IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); - require( - isRiskpool, - "ERROR:RPS-005:SENDER_NOT_RISKPOOL" - ); - require( - componentId == bundle.riskpoolId, - "ERROR:RPS-006:BUNDLE_RISKPOOL_MISMATCH" - ); - if (mustBeActive) { - require( - _component.getComponentState(componentId) == IComponent.ComponentState.Active, - "ERROR:RPS-007:RISKPOOL_NOT_ACTIVE" - ); - } - _; - } - - modifier onlyOwningRiskpoolId(uint256 riskpoolId, bool mustBeActive) { - uint256 componentId = _component.getComponentId(_msgSender()); - bool isRiskpool = _component.getComponentType(componentId) == IComponent.ComponentType.Riskpool; - require( - isRiskpool && componentId == riskpoolId, - "ERROR:RPS-008:SENDER_NOT_OWNING_RISKPOOL" - ); - if (mustBeActive) { - require( - _component.getComponentState(componentId) == IComponent.ComponentState.Active, - "ERROR:RPS-009:RISKPOOL_NOT_ACTIVE" - ); - } - _; - } - - - /** - * @dev Sets the addresses of the BundleController, ComponentController, PoolController, and TreasuryModule contracts. - * - * - */ - function _afterInitialize() - internal override - onlyInitializing - { - _bundle = BundleController(_getContractAddress("Bundle")); - _component = ComponentController(_getContractAddress("Component")); - _pool = PoolController(_getContractAddress("Pool")); - _treasury = TreasuryModule(_getContractAddress("Treasury")); - } - - - /** - * @dev Registers a new risk pool with the given parameters. - * @param wallet The address of the wallet that will hold the collateral for the risk pool. - * @param erc20Token The address of the ERC20 token that will be used as collateral. - * @param collateralizationLevel The percentage of collateral required for the risk pool. - * @param sumOfSumInsuredCap The maximum sum of all insured amounts for the risk pool. - */ - function registerRiskpool( - address wallet, - address erc20Token, - uint256 collateralizationLevel, - uint256 sumOfSumInsuredCap - ) - external override - onlyProposedRiskpool - { - uint256 riskpoolId = _component.getComponentId(_msgSender()); - _pool.registerRiskpool( - riskpoolId, - wallet, - erc20Token, - collateralizationLevel, - sumOfSumInsuredCap - ); - } - - /** - * @dev Creates a new bundle with the given parameters and adds it to the active set of the riskpool. - * @param owner The address of the owner of the bundle. - * @param filter The filter applied to the bundle. - * @param initialCapital The initial capital of the bundle. - * @return bundleId The ID of the newly created bundle. - */ - function createBundle( - address owner, - bytes calldata filter, - uint256 initialCapital - ) - external override - onlyActiveRiskpool - returns(uint256 bundleId) - { - uint256 riskpoolId = _component.getComponentId(_msgSender()); - bundleId = _bundle.create(owner, riskpoolId, filter, 0); - - _pool.addBundleIdToActiveSet(riskpoolId, bundleId); - - (uint256 fee, uint256 netCapital) = _treasury.processCapital(bundleId, initialCapital); - - _bundle.fund(bundleId, netCapital); - _pool.fund(riskpoolId, netCapital); - } - - - /** - * @dev This function allows a user to fund a bundle with a specified amount. - * @param bundleId The ID of the bundle to be funded. - * @param amount The amount of tokens to be funded. - * @return netAmount The net amount of tokens that were funded after deducting fees. - */ - function fundBundle(uint256 bundleId, uint256 amount) - external override - onlyOwningRiskpool(bundleId, true) - returns( uint256 netAmount) - { - IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); - require( - bundle.state != IBundle.BundleState.Closed - && bundle.state != IBundle.BundleState.Burned, - "ERROR:RPS-010:BUNDLE_CLOSED_OR_BURNED" - ); - - uint256 feeAmount; - (feeAmount, netAmount) = _treasury.processCapital(bundleId, amount); - - _bundle.fund(bundleId, netAmount); - _pool.fund(bundle.riskpoolId, netAmount); - } - - - /** - * @dev Defunds a bundle by withdrawing a specified amount of tokens from it. - * @param bundleId The ID of the bundle to be defunded. - * @param amount The amount of tokens to be withdrawn from the bundle. - * @return netAmount The net amount of tokens withdrawn from the bundle after deducting any fees. - */ - function defundBundle(uint256 bundleId, uint256 amount) - external override - onlyOwningRiskpool(bundleId, true) - returns(uint256 netAmount) - { - IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); - require( - bundle.state != IBundle.BundleState.Burned, - "ERROR:RPS-011:BUNDLE_BURNED" - ); - - uint256 feeAmount; - (feeAmount, netAmount) = _treasury.processWithdrawal(bundleId, amount); - require(netAmount == amount, "ERROR:RPS-013:UNEXPECTED_FEE_SUBTRACTION"); - - _bundle.defund(bundleId, amount); - _pool.defund(bundle.riskpoolId, netAmount); - } - - - /** - * @dev Locks a bundle, preventing it from being traded or redeemed. - * @param bundleId The ID of the bundle to be locked. - */ - function lockBundle(uint256 bundleId) - external override - onlyOwningRiskpool(bundleId, true) - { - uint256 riskpoolId = _component.getComponentId(_msgSender()); - _pool.removeBundleIdFromActiveSet(riskpoolId, bundleId); - _bundle.lock(bundleId); - } - - - /** - * @dev Unlocks a bundle for trading by adding its ID to the active set of a risk pool and unlocking the bundle. - * @param bundleId The ID of the bundle to be unlocked. - */ - function unlockBundle(uint256 bundleId) - external override - onlyOwningRiskpool(bundleId, true) - { - uint256 riskpoolId = _component.getComponentId(_msgSender()); - _pool.addBundleIdToActiveSet(riskpoolId, bundleId); - _bundle.unlock(bundleId); - } - - - /** - * @dev Closes a bundle and removes it from the active set of the owning riskpool. - * @param bundleId The ID of the bundle to be closed. - */ - function closeBundle(uint256 bundleId) - external override - onlyOwningRiskpool(bundleId, true) - { - uint256 riskpoolId = _component.getComponentId(_msgSender()); - - if (_bundle.getState(bundleId) == IBundle.BundleState.Active) { - _pool.removeBundleIdFromActiveSet(riskpoolId, bundleId); - } - - _bundle.close(bundleId); - } - - /** - * @dev Burns a closed bundle, withdrawing its remaining balance and defunding it from the riskpool and the pool. - * @param bundleId The ID of the bundle to burn. - */ - function burnBundle(uint256 bundleId) - external override - onlyOwningRiskpool(bundleId, true) - { - // ensure bundle is closed - IBundle.Bundle memory bundle = _bundle.getBundle(bundleId); - require(bundle.state == IBundle.BundleState.Closed, "ERROR:RPS-020:BUNDLE_NOT_CLOSED"); - - // withdraw remaining balance - (uint256 feeAmount, uint256 netAmount) = _treasury.processWithdrawal(bundleId, bundle.balance); - - _bundle.defund(bundleId, netAmount); - _pool.defund(bundle.riskpoolId, netAmount); - - _bundle.burn(bundleId); - } - - /** - * @dev Collateralizes a policy by locking a specified amount of collateral for a given bundle and process ID. - * @param bundleId The ID of the bundle to which the policy belongs. - * @param processId The ID of the process associated with the policy. - * @param collateralAmount The amount of collateral to be locked for the policy. - */ - function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 collateralAmount) - external override - onlyOwningRiskpool(bundleId, true) - { - _bundle.collateralizePolicy(bundleId, processId, collateralAmount); - } - - /** - * @dev Processes a premium payment for a specific bundle. - * @param bundleId The ID of the bundle for which the premium is being paid. - * @param processId The ID of the premium payment process. - * @param amount The amount of the premium payment in wei. - */ - function processPremium(uint256 bundleId, bytes32 processId, uint256 amount) - external override - onlyOwningRiskpool(bundleId, true) - { - _bundle.processPremium(bundleId, processId, amount); - } - - /** - * @dev Processes a payout for a specific bundle. - * @param bundleId The ID of the bundle for which to process the payout. - * @param processId The ID of the payout process. - * @param amount The amount to be paid out. - */ - function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) - external override - onlyOwningRiskpool(bundleId, true) - { - _bundle.processPayout(bundleId, processId, amount); - } - - /** - * @dev Releases a policy for a given bundle and process ID. - * @param bundleId The ID of the bundle containing the policy to be released. - * @param processId The ID of the process associated with the policy to be released. - * @return collateralAmount The amount of collateral released for the policy. - */ - function releasePolicy(uint256 bundleId, bytes32 processId) - external override - onlyOwningRiskpool(bundleId, false) - returns(uint256 collateralAmount) - { - collateralAmount = _bundle.releasePolicy(bundleId, processId); - } - - /** - * @dev Sets the maximum number of active bundles for a given riskpool. - * @param riskpoolId The ID of the riskpool. - * @param maxNumberOfActiveBundles The maximum number of active bundles to be set. - */ - function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles) - external override - onlyOwningRiskpoolId(riskpoolId, true) - { - _pool.setMaximumNumberOfActiveBundles(riskpoolId, maxNumberOfActiveBundles); - } -} diff --git a/contracts-christoph2806/shared/CoreController.sol b/contracts-christoph2806/shared/CoreController.sol deleted file mode 100644 index fa115f43..00000000 --- a/contracts-christoph2806/shared/CoreController.sol +++ /dev/null @@ -1,81 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@etherisc/gif-interface/contracts/modules/IAccess.sol"; -import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; - -import "@openzeppelin/contracts/proxy/utils/Initializable.sol"; -import "@openzeppelin/contracts/utils/Context.sol"; - -contract CoreController is - Context, - Initializable -{ - IRegistry internal _registry; - IAccess internal _access; - - /** - * @dev Constructor function that disables initializers. - */ - constructor () { - _disableInitializers(); - } - - modifier onlyInstanceOperator() { - require( - _registry.ensureSender(_msgSender(), "InstanceOperatorService"), - "ERROR:CRC-001:NOT_INSTANCE_OPERATOR"); - _; - } - - modifier onlyPolicyFlow(bytes32 module) { - // Allow only from delegator - require( - address(this) == _getContractAddress(module), - "ERROR:CRC-002:NOT_ON_STORAGE" - ); - - // Allow only ProductService (it delegates to PolicyFlow) - require( - _msgSender() == _getContractAddress("ProductService"), - "ERROR:CRC-003:NOT_PRODUCT_SERVICE" - ); - _; - } - - /** - * @dev Initializes the contract with the provided registry address. - * @param registry The address of the registry contract. - */ - function initialize(address registry) public initializer { - _registry = IRegistry(registry); - if (_getName() != "Access") { _access = IAccess(_getContractAddress("Access")); } - - _afterInitialize(); - } - - /** - * @dev Returns the name of the contract. - * @return name The name of the contract as a bytes32 value. - */ - function _getName() internal virtual pure returns(bytes32) { return ""; } - - /** - * @dev This function is called after the contract is initialized and can be used to perform additional setup. - * @notice This function should only be called internally by the contract during initialization. - */ - function _afterInitialize() internal virtual onlyInitializing {} - - /** - * @dev Returns the address of a registered contract by its name. - * @param contractName The name of the contract to retrieve. - * @return contractAddress The address of the requested contract. - */ - function _getContractAddress(bytes32 contractName) internal view returns (address contractAddress) { - contractAddress = _registry.getContract(contractName); - require( - contractAddress != address(0), - "ERROR:CRC-004:CONTRACT_NOT_REGISTERED" - ); - } -} diff --git a/contracts-christoph2806/shared/CoreProxy.sol b/contracts-christoph2806/shared/CoreProxy.sol deleted file mode 100644 index b096c295..00000000 --- a/contracts-christoph2806/shared/CoreProxy.sol +++ /dev/null @@ -1,59 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - - -import "@etherisc/gif-interface/contracts/shared/ICoreProxy.sol"; -import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; - -contract CoreProxy is - ICoreProxy, - ERC1967Proxy -{ - - modifier onlyAdmin() { - require( - msg.sender == _getAdmin(), - "ERROR:CRP-001:NOT_ADMIN"); - _; - } - - /** - * @dev Constructor function that creates a new instance of the contract. - * @param _controller The address of the controller contract. - * @param encoded_initializer The encoded initializer data. - */ - constructor(address _controller, bytes memory encoded_initializer) - ERC1967Proxy(_controller, encoded_initializer) - { - _changeAdmin(msg.sender); - } - - /** - * @dev Returns the address of the current implementation contract. - * @return implementation The address of the current implementation contract. - */ - function implementation() external view returns (address) { - return _implementation(); - } - - /** - * @dev Upgrades the contract to a new implementation and forwards a function call to it. - * @param newImplementation The address of the new implementation contract. - * @param data The data payload to be forwarded to the new implementation. - * @notice This function emits 1 events: - * - LogCoreContractUpgraded - */ - function upgradeToAndCall(address newImplementation, bytes calldata data) - external - payable - onlyAdmin - { - address oldImplementation = _implementation(); - - _upgradeToAndCall(newImplementation, data, true); - - emit LogCoreContractUpgraded( - oldImplementation, - newImplementation); - } -} diff --git a/contracts-christoph2806/shared/README.adoc b/contracts-christoph2806/shared/README.adoc deleted file mode 100644 index edbed26c..00000000 --- a/contracts-christoph2806/shared/README.adoc +++ /dev/null @@ -1,14 +0,0 @@ -= Shared - -[.readme-notice] -NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/shared - -== Contracts - -{{CoreController}} - -{{CoreProxy}} - -{{TransferHelper}} - -{{WithRegistry}} diff --git a/contracts-christoph2806/shared/TransferHelper.sol b/contracts-christoph2806/shared/TransferHelper.sol deleted file mode 100644 index a405673a..00000000 --- a/contracts-christoph2806/shared/TransferHelper.sol +++ /dev/null @@ -1,76 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; - -// inspired/informed by -// https://soliditydeveloper.com/safe-erc20 -// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/token/ERC20/ERC20.sol -// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/token/ERC20/utils/SafeERC20.sol -// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/utils/Address.sol -// https://github.com/Uniswap/solidity-lib/blob/master/contracts/libraries/TransferHelper.sol -library TransferHelper { - - event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); - event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); - event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); - - /** - * @dev Executes a transferFrom function call on an ERC20 token contract, after performing input validation. - * @param token The ERC20 token contract to transfer from. - * @param from The address to transfer tokens from. - * @param to The address to transfer tokens to. - * @param value The amount of tokens to transfer. - * @return success A boolean indicating whether the transfer was successful or not. - * - * Emits a LogTransferHelperInputValidation1Failed event if the input validation step 1 fails. - * Emits a LogTransferHelperInputValidation2Failed event if the input validation step 2 fails. - * Emits a LogTransferHelperCallFailed event if the low-level call to transferFrom fails. - * @notice This function emits 3 events: - * - LogTransferHelperInputValidation1Failed - * - LogTransferHelperInputValidation2Failed - * - LogTransferHelperCallFailed - */ - function unifiedTransferFrom( - IERC20 token, - address from, - address to, - uint256 value - ) - internal - returns(bool success) - { - // input validation step 1 - address tokenAddress = address(token); - bool tokenIsContract = (tokenAddress.code.length > 0); - if (from == address(0) || to == address (0) || !tokenIsContract) { - emit LogTransferHelperInputValidation1Failed(tokenIsContract, from, to); - return false; - } - - // input validation step 2 - uint256 balance = token.balanceOf(from); - uint256 allowance = token.allowance(from, address(this)); - if (balance < value || allowance < value) { - emit LogTransferHelperInputValidation2Failed(balance, allowance); - return false; - } - - // low-level call to transferFrom - // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); - (bool callSuccess, bytes memory data) = address(token).call( - abi.encodeWithSelector( - 0x23b872dd, - from, - to, - value)); - - success = callSuccess && (false - || data.length == 0 - || (data.length == 32 && abi.decode(data, (bool)))); - - if (!success) { - emit LogTransferHelperCallFailed(callSuccess, data.length, data); - } - } -} \ No newline at end of file diff --git a/contracts-christoph2806/shared/WithRegistry.sol b/contracts-christoph2806/shared/WithRegistry.sol deleted file mode 100644 index cb8561a9..00000000 --- a/contracts-christoph2806/shared/WithRegistry.sol +++ /dev/null @@ -1,93 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; - -contract WithRegistry { - -/* - * We can consider the registry address as immutable here as it contains the - * root data structure for the whole GIF Instance. - * We can therefore ensure that a policy flow cannot overwrite the address - * neither by chance nor by intention. - */ - IRegistry public immutable registry; - - modifier onlyInstanceOperator() { - require( - msg.sender == getContractFromRegistry("InstanceOperatorService"), - "ERROR:ACM-001:NOT_INSTANCE_OPERATOR" - ); - _; - } - - modifier onlyOracleService() { - require( - msg.sender == getContractFromRegistry("OracleService"), - "ERROR:ACM-004:NOT_ORACLE_SERVICE" - ); - _; - } - - modifier onlyOracleOwner() { - require( - msg.sender == getContractFromRegistry("OracleOwnerService"), - "ERROR:ACM-005:NOT_ORACLE_OWNER" - ); - _; - } - - modifier onlyProductOwner() { - require( - msg.sender == getContractFromRegistry("ProductOwnerService"), - "ERROR:ACM-006:NOT_PRODUCT_OWNER" - ); - _; - } - - /** - * @dev Constructor function that sets the address of the registry contract. - * @param _registry The address of the registry contract. - */ - constructor(address _registry) { - registry = IRegistry(_registry); - } - - /** - * @dev Returns the address of a contract registered in the registry by its name. - * - * @param _contractName The name of the contract to retrieve. - * - * @return _addr The address of the contract. - */ - function getContractFromRegistry(bytes32 _contractName) - public - // override - view - returns (address _addr) - { - _addr = registry.getContract(_contractName); - } - - /** - * @dev Returns the address of a contract with a given name in a specific release of the registry. - * @param _release The release version of the registry where the contract is stored. - * @param _contractName The name of the contract to retrieve. - * @return _addr The address of the contract in the given release. - */ - function getContractInReleaseFromRegistry(bytes32 _release, bytes32 _contractName) - internal - view - returns (address _addr) - { - _addr = registry.getContractInRelease(_release, _contractName); - } - - /** - * @dev Returns the current release identifier from the registry. - * @return _release The release identifier as a bytes32 value. - */ - function getReleaseFromRegistry() internal view returns (bytes32 _release) { - _release = registry.getRelease(); - } -} diff --git a/contracts-christoph2806/test/README.adoc b/contracts-christoph2806/test/README.adoc deleted file mode 100644 index d48cc873..00000000 --- a/contracts-christoph2806/test/README.adoc +++ /dev/null @@ -1,24 +0,0 @@ -= Test - -[.readme-notice] -NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/test - -== Contracts - -{{TestCoin}} - -{{TestCoinAlternativeImplementation}} - -{{TestCompromisedProduct}} - -{{TestOracle}} - -{{TestProduct}} - -{{TestRegistryCompromisedController}} - -{{TestRegistryControllerUpdated}} - -{{TestRiskpool}} - -{{TestTransferFrom}} \ No newline at end of file diff --git a/contracts-christoph2806/test/TestCoin.sol b/contracts-christoph2806/test/TestCoin.sol deleted file mode 100644 index 7fab36f3..00000000 --- a/contracts-christoph2806/test/TestCoin.sol +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - -contract TestCoin is ERC20 { - - string public constant NAME = "Test Dummy"; - string public constant SYMBOL = "TDY"; - - uint256 public constant INITIAL_SUPPLY = 10**24; - - /** - * @dev Constructor function that initializes the ERC20 token with a given name, symbol, and initial supply. - */ - constructor() - ERC20(NAME, SYMBOL) - { - _mint( - _msgSender(), - INITIAL_SUPPLY - ); - } -} - -contract TestCoinX is ERC20 { - - string public constant NAME = "Test Dummy X"; - string public constant SYMBOL = "TDX"; - - uint256 public constant INITIAL_SUPPLY = 10**24; - - /** - * @dev Constructor function that creates a new instance of the ERC20 token with the given name and symbol. It also mints the initial supply and assigns it to the deployer's address. - */ - constructor() - ERC20(NAME, SYMBOL) - { - _mint( - _msgSender(), - INITIAL_SUPPLY - ); - } -} diff --git a/contracts-christoph2806/test/TestCoinAlternativeImplementation.sol b/contracts-christoph2806/test/TestCoinAlternativeImplementation.sol deleted file mode 100644 index 36b21f28..00000000 --- a/contracts-christoph2806/test/TestCoinAlternativeImplementation.sol +++ /dev/null @@ -1,54 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - -contract TestCoinAlternativeImplementation is ERC20 { - - string public constant NAME = "Test Alternative Coin"; - string public constant SYMBOL = "TAC"; - - uint256 public constant INITIAL_SUPPLY = 10**24; - - /** - * @dev Constructor function that creates a new ERC20 token with the given name and symbol, and mints the initial supply to the sender. - */ - constructor() - ERC20(NAME, SYMBOL) - { - _mint( - _msgSender(), - INITIAL_SUPPLY - ); - } - - // inspired by ZRX transfer implementation - // see https://soliditydeveloper.com/safe-erc20 - /** - * @dev Transfer tokens from one address to another. - * @param _from The address from which to transfer the tokens. - * @param _to The address to which to transfer the tokens. - * @param _value The amount of tokens to transfer. - * @return A boolean value indicating whether the transfer was successful or not. - * - * Requirements: - * - The sender must have a balance of at least `_value`. - * - The sender must have allowance for `_spender`'s tokens of at least `_value`. - * - The balance of `_to` must not be less than the sum of the balance and `_value`. - * - Neither `_from` nor `_to` can be the zero address. - */ - function transferFrom(address _from, address _to, uint _value) - public virtual override returns (bool) - { - if (balanceOf(_from) >= _value // check sufficient balance - && allowance(_from, msg.sender) >= _value // check sufficient allowance - && balanceOf(_to) + _value >= balanceOf(_to) // check overflow - && _from != address(0) // sender not zero address - && _to != address(0)) // recipient not zero address - { - return super.transferFrom(_from, _to, _value); // should never fail now - } else { - return false; - } - } -} diff --git a/contracts-christoph2806/test/TestCompromisedProduct.sol b/contracts-christoph2806/test/TestCompromisedProduct.sol deleted file mode 100644 index 754a7ed7..00000000 --- a/contracts-christoph2806/test/TestCompromisedProduct.sol +++ /dev/null @@ -1,327 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/components/IProduct.sol"; - -import "@etherisc/gif-interface/contracts/modules/IAccess.sol"; -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; -import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; - -import "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol"; -import "@etherisc/gif-interface/contracts/services/IProductService.sol"; -import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; - -import "@openzeppelin/contracts/access/Ownable.sol"; -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - -/* -the TestCompromisedProduct claims to be an existing product that connects to an existing -riskpool with the goal to create fraud claims that lead to fraud payouts whith the intention -to drain the riskpool. - -for this the compromised product claims -- to be a product -- to be in state active (independent of an approval step by the instance operator) -*/ -contract TestCompromisedProduct is - IProduct, - Ownable -{ - IComponent.ComponentState public constant FAKE_STATE = IComponent.ComponentState.Active; - - bytes32 public constant POLICY_FLOW = "PolicyDefaultFlow"; - - bytes32 private _componentName; - address private _tokenAddress; - uint256 private _componentId; - uint256 private _riskpoolId; - - IRegistry private _registry; - IAccess private _access; - IComponentOwnerService private _componentOwnerService; - IInstanceService private _instanceService; - address private _policyFlow; - IProductService private _productService; - - uint256 private _policies; - uint256 private _claims; - - modifier onlyPolicyHolder(bytes32 policyId) { - address policyHolder = _instanceService.getMetadata(policyId).owner; - require( - _msgSender() == policyHolder, - "ERROR:TCP-1:INVALID_POLICY_OR_HOLDER" - ); - _; - } - - /** - * @dev Constructor function to initialize the component with the given parameters. - * @param fakeProductName The name of the component. - * @param tokenAddress The address of the token used for the component. - * @param fakeComponentId The ID of the component. - * @param fakeRiskpoolId The ID of the risk pool associated with the component. - * @param registryAddress The address of the registry contract. - */ - constructor( - bytes32 fakeProductName, - address tokenAddress, - uint256 fakeComponentId, - uint256 fakeRiskpoolId, - address registryAddress - ) - Ownable() - { - _componentName = fakeProductName; - _tokenAddress = tokenAddress; - _componentId = fakeComponentId; - _riskpoolId = fakeRiskpoolId; - - _registry = IRegistry(registryAddress); - _access = _getAccess(); - _componentOwnerService = _getComponentOwnerService(); - _instanceService = _getInstanceService(); - _policyFlow = _getContractAddress(POLICY_FLOW); - _productService = _getProductService(); - } - - /** - * @dev Allows a policy holder to apply for a new policy by submitting an application with the specified premium, sum insured, metaData, and applicationData. - * @param premium The amount of premium to be paid for the policy. - * @param sumInsured The amount of coverage provided by the policy. - * @param metaData Additional metadata related to the policy application. - * @param applicationData Additional data related to the policy application. - * @return processId The process ID of the new policy application. - */ - function applyForPolicy( - uint256 premium, - uint256 sumInsured, - bytes calldata metaData, - bytes calldata applicationData - ) - external - payable - returns (bytes32 processId) - { - address payable policyHolder = payable(_msgSender()); - - // Create and underwrite new application - processId = _productService.newApplication( - policyHolder, - premium, - sumInsured, - metaData, - applicationData); - - _productService.underwrite(processId); - } - - /** - * @dev Collects the premium for a given policy. - * @param policyId The ID of the policy to collect the premium for. - */ - function collectPremium(bytes32 policyId) - external - { - IPolicy.Policy memory policy = _instanceService.getPolicy(policyId); - _productService.collectPremium(policyId, policy.premiumExpectedAmount); - } - - /** - * @dev Allows a policy holder to submit a claim for the specified policy. - * @param policyId The ID of the policy for which the claim is being submitted. - * @param claimAmount The amount of the claim being submitted. - * - * Emits a ClaimSubmitted event and creates a new claim and payout record. - */ - function submitClaim(bytes32 policyId, uint256 claimAmount) - external - onlyPolicyHolder(policyId) - { - // increase claims counter - _claims += 1; - - // create claim and confirm it - uint256 claimId = _productService.newClaim(policyId, claimAmount, abi.encode(0)); - _productService.confirmClaim(policyId, claimId, claimAmount); - - // create payout record - uint256 payoutId = _productService.newPayout(policyId, claimId, claimAmount, abi.encode(0)); - _productService.processPayout(policyId, payoutId); - } - - //--- product service access --------------------------------------------// - - //--- iproduct ----------------------------------------------------------// - /** - * @dev Returns the address of the token used by this contract. - * @return token The address of the token used by this contract. - */ - function getToken() external override view returns(address token) { return _tokenAddress; } - /** - * @dev Returns the address of the policy flow contract. - * @return policyFlow The address of the policy flow contract. - */ - function getPolicyFlow() external override view returns(address policyFlow) { return _getContractAddress(POLICY_FLOW); } - /** - * @dev Returns the ID of the risk pool. - * @return riskpoolId The ID of the risk pool. - */ - function getRiskpoolId() external override view returns(uint256 riskpoolId) { return _riskpoolId; } - - /** - * @dev Returns the data structure of the application. - * @return dataStructure The string representing the data structure of the application. - */ - function getApplicationDataStructure() external override view returns(string memory dataStructure) { return ""; } - /** - * @dev Returns the data structure of the claim data. - * @return dataStructure The data structure of the claim data as a string. - */ - function getClaimDataStructure() external override view returns(string memory dataStructure) { return ""; } - /** - * @dev Returns the data structure of the payout information. - * @return dataStructure The string representation of the payout data structure. - */ - function getPayoutDataStructure() external override view returns(string memory dataStructure) { return ""; } - - /** - * @dev Callback function to update the risk pool's capacity. - * @param capacity The new capacity of the risk pool. - */ - function riskPoolCapacityCallback(uint256 capacity) external override {} - - //--- icomponent --------------------------------------------------------// - /** - * @dev Sets the ID of the contract. - * @param id The ID to be set. - */ - function setId(uint256 id) external override {} // does not care about id - - /** - * @dev Returns the name of the component. - * @return _componentName The name of the component as a bytes32 value. - */ - function getName() external override view returns(bytes32) { return _componentName; } - /** - * @dev Returns the ID of the component. - * @return The ID of the component as a uint256 value. - */ - function getId() external override view returns(uint256) { return _componentId; } - /** - * @dev Returns the ComponentType of the product. - * @return The ComponentType of the product. - */ - function getType() external override view returns(ComponentType) { return IComponent.ComponentType.Product; } - /** - * @dev Returns the current state of the component. - * @return state The current state of the component as a ComponentState enum value. - */ - function getState() external override view returns(ComponentState) { return IComponent.ComponentState.Active; } - /** - * @dev Returns the address of the contract owner. - * @return The address of the contract owner. - */ - function getOwner() external override view returns(address) { return owner(); } - /** - * @dev Returns the current registry contract instance. - * @return _registry The current registry contract instance. - */ - function getRegistry() external override view returns(IRegistry) { return _registry; } - - /** - * @dev Checks if the contract is a product. - * @return Returns a boolean value indicating if the contract is a product. - */ - function isProduct() public override view returns(bool) { return true; } - /** - * @dev Returns a boolean value indicating whether the contract is an oracle. - * @return A boolean value indicating whether the contract is an oracle. - */ - function isOracle() public override view returns(bool) { return false; } - /** - * @dev Check if the contract is a risk pool. - * @return {bool} Returns a boolean indicating if the contract is a risk pool. - */ - function isRiskpool() public override view returns(bool) { return false; } - - /** - * @dev This function is a callback function for proposals. - * - * Returns: None - */ - function proposalCallback() external override {} - /** - * @dev This function is a callback function that is called after an approval has been made. - */ - function approvalCallback() external override {} - /** - * @dev This function is called when a user declines a transaction in the dApp. - */ - function declineCallback() external override {} - /** - * @dev Suspends the callback function. - */ - function suspendCallback() external override {} - /** - * @dev This function is a callback function that is triggered when a paused contract is resumed. - * - */ - function resumeCallback() external override {} - /** - * @dev Callback function that is called when the contract is paused. This function does not take any parameters. - */ - function pauseCallback() external override {} - /** - * @dev This function is called by the owner of the contract to unpause the contract after it has been paused. - */ - function unpauseCallback() external override {} - /** - * @dev This function is a callback function that is executed when a contract is archived. - * - */ - function archiveCallback() external override {} - - /** - * @dev Returns the instance of the IAccess contract. - * @return access Returns the instance of the IAccess contract. - */ - function _getAccess() private view returns (IAccess) { - return IAccess(_getContractAddress("Access")); - } - - /** - * @dev Returns the instance service contract. - * @return instanceService The instance service contract. - */ - function _getInstanceService() private view returns (IInstanceService) { - return IInstanceService(_getContractAddress("InstanceService")); - } - - /** - * @dev Returns the instance of the ComponentOwnerService contract. - * @return The ComponentOwnerService contract instance. - */ - function _getComponentOwnerService() private view returns (IComponentOwnerService) { - return IComponentOwnerService(_getContractAddress("ComponentOwnerService")); - } - - /** - * @dev Returns the ProductService contract instance. - * @return productService The ProductService contract instance. - */ - function _getProductService() private view returns (IProductService) { - return IProductService(_getContractAddress("ProductService")); - } - - /** - * @dev Returns the address of a registered contract with the given name. - * @param contractName The name of the contract to retrieve the address for. - * @return The address of the registered contract with the given name. - */ - function _getContractAddress(bytes32 contractName) private view returns (address) { - return _registry.getContract(contractName); - } - -} \ No newline at end of file diff --git a/contracts-christoph2806/test/TestOracle.sol b/contracts-christoph2806/test/TestOracle.sol deleted file mode 100644 index 490cc5d4..00000000 --- a/contracts-christoph2806/test/TestOracle.sol +++ /dev/null @@ -1,86 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@etherisc/gif-interface/contracts/components/Oracle.sol"; - -contract TestOracle is Oracle { - - /** - * @dev Constructor function for creating an Oracle contract. - * @param oracleName The name of the Oracle contract. - * @param registry The address of the registry contract. - */ - constructor( - bytes32 oracleName, - address registry - ) - Oracle(oracleName, registry) - { } - - /** - * @dev Requests data from the oracle contract. - * @param requestId The unique identifier of the request. - * @param input The input data to be decoded by the oracle. - * It is a tuple containing a uint256 counter and a bool immediateResponse. - * - * This function decodes the input data and calls the _oracleCalculation function - * to obtain data from the oracle given the request data (counter). - * If immediateResponse is true, the function responds with the result obtained from the oracle. - * Otherwise, the response is handled outside the function in a separate asynchronous transaction. - * The response is sent back to the contract through the respond function. - */ - function request(uint256 requestId, bytes calldata input) external override onlyQuery { - // decode oracle input data - (uint256 counter, bool immediateResponse) = abi.decode(input, (uint256, bool)); - - if (immediateResponse) { - // obtain data from oracle given the request data (counter) - // for off chain oracles this happens outside the request - // call in a separate asynchronous transaction - bool isLossEvent = _oracleCalculation(counter); - respond(requestId, isLossEvent); - } - } - - /** - * @dev Cancels a Chainlink request. - * @param requestId The ID of the Chainlink request to be cancelled. - */ - function cancel(uint256 requestId) - external override - onlyOwner - { - // TODO mid/low priority - // cancelChainlinkRequest(_requestId, _payment, _callbackFunctionId, _expiration); - } - - // usually called by off-chain oracle (and not internally) - // in which case the function modifier should be changed - // to external - /** - * @dev Responds to an oracle request with a boolean value indicating whether a loss event occurred. - * @param requestId The ID of the oracle request being responded to. - * @param isLossEvent A boolean value indicating whether a loss event occurred. - */ - function respond(uint256 requestId, bool isLossEvent) - public - { - // encode data obtained from oracle - bytes memory output = abi.encode(bool(isLossEvent)); - - // trigger inherited response handling - _respond(requestId, output); - } - - // dummy implementation - // "real" oracles will get the output from some off-chain - // component providing the outcome of the business logic - /** - * @dev Performs an oracle calculation to determine if a loss event occurred. - * @param counter The counter value used in the calculation. - * @return isLossEvent A boolean indicating if a loss event occurred. - */ - function _oracleCalculation(uint256 counter) internal returns (bool isLossEvent) { - isLossEvent = (counter % 2 == 1); - } -} \ No newline at end of file diff --git a/contracts-christoph2806/test/TestProduct.sol b/contracts-christoph2806/test/TestProduct.sol deleted file mode 100644 index d3acf0f9..00000000 --- a/contracts-christoph2806/test/TestProduct.sol +++ /dev/null @@ -1,535 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; -import "@etherisc/gif-interface/contracts/services/IProductService.sol"; -import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; -import "@etherisc/gif-interface/contracts/components/Product.sol"; - -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - -contract TestProduct is - Product -{ - bytes32 public constant POLICY_FLOW = "PolicyDefaultFlow"; - string public constant ORACLE_CALLBACK_METHOD_NAME = "oracleCallback"; - - address private _capitalOwner; - uint256 private _testOracleId; - uint256 private _testRiskpoolId; - - bytes32 [] private _applications; - bytes32 [] private _policies; - uint256 private _claims; - - mapping(bytes32 => uint256) private _policyIdToClaimId; - mapping(bytes32 => uint256) private _policyIdToPayoutId; - - event LogTestProductFundingReceived(address sender, uint256 amount); - event LogTestOracleCallbackReceived(uint256 requestId, bytes32 policyId, bytes response); - - /** - * @dev Constructor function for creating a new instance of the Product contract. - * @param productName The name of the product. - * @param tokenAddress The address of the token used for the product. - * @param capitalOwner The address of the capital owner. - * @param oracleId The ID of the oracle used for the product. - * @param riskpoolId The ID of the riskpool used for the product. - * @param registryAddress The address of the registry contract. - */ - constructor( - bytes32 productName, - address tokenAddress, - address capitalOwner, - uint256 oracleId, - uint256 riskpoolId, - address registryAddress - ) - Product(productName, tokenAddress, POLICY_FLOW, riskpoolId, registryAddress) - { - require(tokenAddress != address(0), "ERROR:TI-2:TOKEN_ADDRESS_ZERO"); - _capitalOwner = capitalOwner; - _testOracleId = oracleId; - _testRiskpoolId = riskpoolId; - } - - /** - * @dev Allows a policy holder to apply for a new insurance policy by submitting an application with the specified premium, sum insured, metadata and application data. - * @param premium The amount of premium to be paid by the policy holder. - * @param sumInsured The sum insured for the new policy. - * @param metaData Additional metadata associated with the application. - * @param applicationData Additional application data. - * @return processId The unique identifier of the new policy application process. - */ - function applyForPolicy( - uint256 premium, - uint256 sumInsured, - bytes calldata metaData, - bytes calldata applicationData - ) - external - payable - returns (bytes32 processId) - { - address payable policyHolder = payable(_msgSender()); - - processId = _newApplication( - policyHolder, - premium, - sumInsured, - metaData, - applicationData); - - _applications.push(processId); - - bool success = _underwrite(processId); - if (success) { - _policies.push(processId); - } - } - - /** - * @dev Creates a new insurance application and underwrites it if possible. - * @param policyHolder The address of the policy holder. - * @param premium The amount of premium paid by the policy holder. - * @param sumInsured The amount of coverage requested by the policy holder. - * @param metaData Additional metadata associated with the application. - * @param applicationData The application data submitted by the policy holder. - * @return processId The identifier of the new insurance application. - */ - function applyForPolicy( - address payable policyHolder, - uint256 premium, - uint256 sumInsured, - bytes calldata metaData, - bytes calldata applicationData - ) - external - payable - returns (bytes32 processId) - { - processId = _newApplication( - policyHolder, - premium, - sumInsured, - metaData, - applicationData); - - _applications.push(processId); - - bool success = _underwrite(processId); - if (success) { - _policies.push(processId); - } - } - - - /** - * @dev Creates a new insurance application. - * @param premium The amount of premium to be paid for the insurance policy. - * @param sumInsured The amount of coverage for the insurance policy. - * @param metaData Metadata to be associated with the application. - * @param applicationData Additional data related to the application. - * @return processId The unique identifier for the new application process. - */ - function newAppliation( - uint256 premium, - uint256 sumInsured, - bytes calldata metaData, - bytes calldata applicationData - ) - external - payable - returns (bytes32 processId) - { - address payable policyHolder = payable(_msgSender()); - - processId = _newApplication( - policyHolder, - premium, - sumInsured, - metaData, - applicationData); - - _applications.push(processId); - } - - - /** - * @dev Revokes a process identified by its processId. Only the policy holder can revoke a process. - * @param processId The unique identifier of the process to be revoked. - */ - function revoke(bytes32 processId) external onlyPolicyHolder(processId) { - _revoke(processId); - } - - /** - * @dev Declines a specific process by its ID. - * @param processId The ID of the process to be declined. - */ - function decline(bytes32 processId) external onlyOwner { - _decline(processId); - } - - /** - * @dev Underwrites a policy for a given process ID. - * @param processId The ID of the process to underwrite a policy for. - */ - function underwrite(bytes32 processId) external onlyOwner { - bool success = _underwrite(processId); - if (success) { - _policies.push(processId); - } - } - - /** - * @dev Collects the premium for a specific policy. - * @param policyId The ID of the policy for which the premium will be collected. - * @return success A boolean indicating whether the premium collection was successful. - * @return fee The amount of fee collected by the insurer. - * @return netPremium The net amount of premium collected by the insurer after deducting the fee. - */ - function collectPremium(bytes32 policyId) - external onlyOwner - returns(bool success, uint256 fee, uint256 netPremium) - { - (success, fee, netPremium) = _collectPremium(policyId); - } - - /** - * @dev Collects the premium for a specific policy. - * @param policyId The unique identifier of the policy. - * @param amount The amount of the premium to be collected. - * @return success A boolean indicating whether the premium collection was successful. - * @return fee The fee charged for collecting the premium. - * @return netPremium The net amount of premium collected after deducting the fee. - */ - function collectPremium(bytes32 policyId, uint256 amount) - external onlyOwner - returns(bool success, uint256 fee, uint256 netPremium) - { - (success, fee, netPremium) = _collectPremium(policyId, amount); - } - - /** - * @dev Adjusts the premium and sum insured amounts for a given process ID. - * @param processId The ID of the process to adjust. - * @param expectedPremiumAmount The expected premium amount for the process. - * @param sumInsuredAmount The sum insured amount for the process. - */ - function adjustPremiumSumInsured( - bytes32 processId, - uint256 expectedPremiumAmount, - uint256 sumInsuredAmount - ) - external - { - _adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount); - } - - /** - * @dev Expire a policy by its ID. - * @param policyId The ID of the policy to expire. - */ - function expire(bytes32 policyId) external onlyOwner { - _expire(policyId); - } - - /** - * @dev Closes a policy with the given ID. - * @param policyId The ID of the policy to be closed. - */ - function close(bytes32 policyId) external onlyOwner { - _close(policyId); - } - - /** - * @dev Allows a policy holder to submit a claim for a specific policy. - * @param policyId The ID of the policy for which the claim is being submitted. - * @param claimAmount The amount of the claim being submitted. - * @return claimId The ID of the submitted claim. - * - * Increases the claims counter and creates a new claim application. - * The oracle business logic will use the claims counter value to determine if the claim is linked to a loss event or not. - * The function also requests a response to the greeting via oracle call. - */ - function submitClaim(bytes32 policyId, uint256 claimAmount) - external - onlyPolicyHolder(policyId) - returns(uint256 claimId) - { - - // increase claims counter - // the oracle business logic will use this counter value - // to determine if the claim is linked to a loss event or not - _claims++; - - // claim application - claimId = _newClaim(policyId, claimAmount, ""); - _policyIdToClaimId[policyId] = claimId; - - // Request response to greeting via oracle call - bool immediateResponse = true; - bytes memory queryData = abi.encode(_claims, immediateResponse); - _request( - policyId, - queryData, - ORACLE_CALLBACK_METHOD_NAME, - _testOracleId - ); - } - - /** - * @dev Allows a policy holder to submit a claim without the need for an oracle. - * @param policyId The ID of the policy for which the claim is being submitted. - * @param claimAmount The amount being claimed by the policy holder. - * @return claimId The ID of the claim created. - */ - function submitClaimNoOracle(bytes32 policyId, uint256 claimAmount) - external - onlyPolicyHolder(policyId) - returns(uint256 claimId) - { - - // increase claims counter - // the oracle business logic will use this counter value - // to determine if the claim is linked to a loss event or not - _claims++; - - // claim application - claimId = _newClaim(policyId, claimAmount, ""); - _policyIdToClaimId[policyId] = claimId; - } - - /** - * @dev Submits a claim for a specific policy with a deferred response from the oracle. - * Increases the claims counter and creates a new claim application. - * Then, requests a response from the oracle via an external call with encoded query data. - * @param policyId The ID of the policy the claim is being made against. - * @param claimAmount The amount of the claim being made. - * @return claimId The ID of the newly created claim. - * @return requestId The ID of the oracle request made to retrieve the response. - */ - function submitClaimWithDeferredResponse(bytes32 policyId, uint256 claimAmount) - external - onlyPolicyHolder(policyId) - returns(uint256 claimId, uint256 requestId) - { - - // increase claims counter - // the oracle business logic will use this counter value - // to determine if the claim is linked to a loss event or not - _claims++; - - // claim application - claimId = _newClaim(policyId, claimAmount, ""); - _policyIdToClaimId[policyId] = claimId; - - // Request response to greeting via oracle call - bool immediateResponse = false; - bytes memory queryData = abi.encode(_claims, immediateResponse); - requestId = _request( - policyId, - queryData, - ORACLE_CALLBACK_METHOD_NAME, - _testOracleId - ); - } - - /** - * @dev Confirms the amount to be paid out for a specific claim. - * @param policyId The ID of the policy the claim belongs to. - * @param claimId The ID of the claim to be confirmed. - * @param confirmedAmount The amount to be paid out for the claim. - */ - function confirmClaim( - bytes32 policyId, - uint256 claimId, - uint256 confirmedAmount - ) - external - onlyOwner - { - _confirmClaim(policyId, claimId, confirmedAmount); - } - - /** - * @dev Allows the owner of the contract to decline a claim. - * @param policyId The ID of the policy related to the claim. - * @param claimId The ID of the claim to be declined. - */ - function declineClaim( - bytes32 policyId, - uint256 claimId - ) - external - onlyOwner - { - _declineClaim(policyId, claimId); - } - - /** - * @dev Closes a specific claim for a given policy. - * @param policyId The ID of the policy the claim belongs to. - * @param claimId The ID of the claim to be closed. - */ - function closeClaim( - bytes32 policyId, - uint256 claimId - ) - external - onlyOwner - { - _closeClaim(policyId, claimId); - } - - /** - * @dev Creates a new payout for a specific policy and claim. - * @param policyId The ID of the policy associated with the payout. - * @param claimId The ID of the claim associated with the payout. - * @param payoutAmount The amount of the payout to be created. - * @return payoutId The ID of the newly created payout. - */ - function createPayout( - bytes32 policyId, - uint256 claimId, - uint256 payoutAmount - ) - external - onlyOwner - returns(uint256 payoutId) - { - payoutId = _newPayout( - policyId, - claimId, - payoutAmount, - abi.encode(0)); - - _processPayout(policyId, payoutId); - } - - /** - * @dev Creates a new payout for a claim under a policy. - * @param policyId The ID of the policy. - * @param claimId The ID of the claim. - * @param payoutAmount The amount to be paid out for the claim. - * @return payoutId The ID of the newly created payout. - */ - function newPayout( - bytes32 policyId, - uint256 claimId, - uint256 payoutAmount - ) - external - onlyOwner - returns(uint256 payoutId) - { - payoutId = _newPayout( - policyId, - claimId, - payoutAmount, - abi.encode(0)); - } - - /** - * @dev Processes a payout for a specific policy. - * @param policyId The ID of the policy to process the payout for. - * @param payoutId The ID of the payout to process. - */ - function processPayout( - bytes32 policyId, - uint256 payoutId - ) - external - onlyOwner - { - _processPayout(policyId, payoutId); - } - - /** - * @dev This function is called by the oracle to provide the response data for a specified policy ID and request ID. - * @param requestId The ID of the request made by the oracle. - * @param policyId The ID of the policy associated with the oracle request. - * @param responseData The response data provided by the oracle. - * - * Emits a LogTestOracleCallbackReceived event with the provided request ID, policy ID, and response data. - * - * Decodes the response data to obtain the isLossEvent boolean value and the claim ID associated with the policy ID. - * - * If the event is a loss event, retrieves the policy and claim information, confirms the claim, creates a payout record, and processes the payout. - * - * If the event is not a loss event, declines the claim. - * @notice This function emits 1 events: - * - LogTestOracleCallbackReceived - */ - function oracleCallback( - uint256 requestId, - bytes32 policyId, - bytes calldata responseData - ) - external - onlyOracle - { - emit LogTestOracleCallbackReceived(requestId, policyId, responseData); - - // get oracle response data - (bool isLossEvent) = abi.decode(responseData, (bool)); - uint256 claimId = _policyIdToClaimId[policyId]; - - // claim handling if there is a loss - if (isLossEvent) { - // get policy and claims info for oracle response - _getApplication(policyId); - - IPolicy.Claim memory claim - = _getClaim(policyId, claimId); - - // specify payout data - uint256 confirmedAmount = claim.claimAmount; - _confirmClaim(policyId, claimId, confirmedAmount); - - // create payout record - uint256 payoutAmount = confirmedAmount; - bytes memory payoutData = abi.encode(0); - uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, payoutData); - _policyIdToPayoutId[policyId] = payoutId; - - _processPayout(policyId, payoutId); - - // TODO refactor to payout using erc-20 token - // actual transfer of funds for payout of claim - // failing requires not visible when called via .call in querycontroller - // policyHolder.transfer(payoutAmount); - } else { - _declineClaim(policyId, claimId); - } - } - - /** - * @dev Returns the claim ID associated with a given policy ID. - * @param policyId The policy ID for which the claim ID is requested. - * @return The claim ID associated with the given policy ID. - */ - function getClaimId(bytes32 policyId) external view returns (uint256) { return _policyIdToClaimId[policyId]; } - /** - * @dev Returns the payout ID associated with a given policy ID. - * @param policyId The ID of the policy. - * @return The payout ID associated with the given policy ID. - */ - function getPayoutId(bytes32 policyId) external view returns (uint256) { return _policyIdToPayoutId[policyId]; } - /** - * @dev Returns the number of applications that have been submitted. - * @return The number of applications as a uint256 value. - */ - function applications() external view returns (uint256) { return _applications.length; } - /** - * @dev Returns the number of policies in the _policies array. - * @return The length of the _policies array. - */ - function policies() external view returns (uint256) { return _policies.length; } - /** - * @dev Returns the number of claims made by users. - * @return _claims The total number of claims made by users. - */ - function claims() external view returns (uint256) { return _claims; } -} \ No newline at end of file diff --git a/contracts-christoph2806/test/TestRegistryCompromisedController.sol b/contracts-christoph2806/test/TestRegistryCompromisedController.sol deleted file mode 100644 index 9f5168ec..00000000 --- a/contracts-christoph2806/test/TestRegistryCompromisedController.sol +++ /dev/null @@ -1,38 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -contract TestRegistryCompromisedController { - - bytes32 public constant POLICY = bytes32("Policy"); - bytes32 public constant QUERY = bytes32("Query"); - - mapping(bytes32 => address) public contracts; - - /** - * @dev Returns the address of a registered contract. - * @param contractName The name of the contract to retrieve. - * @return moduleAddress The address of the requested contract. - */ - function getContract(bytes32 contractName) - external - view - returns (address moduleAddress) - { - moduleAddress = contracts[contractName]; - } - - /** - * @dev Upgrades the Policy Manager contract to version 2. - * @param compromisedPolicyModuleAddress The new address of the compromised policy module. - * @param originalQueryModuleAddress The new address of the original query module. - */ - function upgradeToV2( - address compromisedPolicyModuleAddress, - address originalQueryModuleAddress - ) - public - { - contracts[POLICY] = compromisedPolicyModuleAddress; - contracts[QUERY] = originalQueryModuleAddress; - } -} diff --git a/contracts-christoph2806/test/TestRegistryControllerUpdated.sol b/contracts-christoph2806/test/TestRegistryControllerUpdated.sol deleted file mode 100644 index 1a897c94..00000000 --- a/contracts-christoph2806/test/TestRegistryControllerUpdated.sol +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../modules/RegistryController.sol"; - - -contract TestRegistryControllerUpdated is RegistryController { - - string message; - bool upgradeV2; - - /** - * @dev Sets the message variable to a given string. - * @param _message The string to be set as the message. - */ - function setMessage(string memory _message) public onlyInstanceOperator { message = _message; } - /** - * @dev Returns the current message stored in the contract. - * @return message The current message stored in the contract. - */ - function getMessage() public view returns (string memory) { return message; } - - /** - * @dev Upgrades the contract to version 2. - * @param _message The message to set for the upgraded contract. - */ - function upgradeToV2(string memory _message) public { - require(!upgradeV2, "ERROR:REC-102:UPGRADE_ONCE_OMLY"); - upgradeV2 = true; - - setMessage(_message); - } -} diff --git a/contracts-christoph2806/test/TestRiskpool.sol b/contracts-christoph2806/test/TestRiskpool.sol deleted file mode 100644 index 3c88f9d8..00000000 --- a/contracts-christoph2806/test/TestRiskpool.sol +++ /dev/null @@ -1,48 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol"; -import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; - -contract TestRiskpool is BasicRiskpool { - - uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24; - - /** - * @dev Constructor function for the Riskpool contract. - * @param name The name of the Riskpool. - * @param collateralization The collateralization ratio for the Riskpool. - * @param erc20Token The address of the ERC20 token used for collateral. - * @param wallet The address of the wallet that holds the collateral. - * @param registry The address of the registry contract. - */ - constructor( - bytes32 name, - uint256 collateralization, - address erc20Token, - address wallet, - address registry - ) - BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry) - { } - - // trivial implementation that matches every application - /** - * @dev This function checks if a given bundle matches a given application. - * @param bundle The bundle to check. - * @param application The application to check against. - * @return isMatching A boolean indicating whether the bundle matches the application. - */ - function bundleMatchesApplication( - IBundle.Bundle memory bundle, - IPolicy.Application memory application - ) - public override - pure - returns(bool isMatching) - { - isMatching = true; - } - -} \ No newline at end of file diff --git a/contracts-christoph2806/test/TestTransferFrom.sol b/contracts-christoph2806/test/TestTransferFrom.sol deleted file mode 100644 index da135fcf..00000000 --- a/contracts-christoph2806/test/TestTransferFrom.sol +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../shared/TransferHelper.sol"; - -import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; - -contract TestTransferFrom { - - event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); - event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); - event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); - - /** - * @dev Transfers tokens from a specified address to another specified address using the TransferHelper library. - * @param token The address of the ERC20 token to transfer. - * @param from The address from which to transfer tokens. - * @param to The address to which to transfer tokens. - * @param amount The amount of tokens to transfer. - * @return Returns a boolean indicating whether the transfer was successful or not. - */ - function unifiedTransferFrom( - IERC20 token, - address from, - address to, - uint256 amount - ) - external - returns(bool) - { - return TransferHelper.unifiedTransferFrom(token, from, to, amount); - } - -} diff --git a/contracts-christoph2806/tokens/BundleToken.sol b/contracts-christoph2806/tokens/BundleToken.sol deleted file mode 100644 index 1798089e..00000000 --- a/contracts-christoph2806/tokens/BundleToken.sol +++ /dev/null @@ -1,126 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@openzeppelin/contracts/access/Ownable.sol"; -import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; - -import "@etherisc/gif-interface/contracts/tokens/IBundleToken.sol"; - -contract BundleToken is - IBundleToken, - ERC721, - Ownable -{ - string public constant NAME = "GIF Bundle Token"; - string public constant SYMBOL = "BTK"; - - mapping(uint256 /** tokenId */ => uint256 /** bundleId */) public bundleIdForTokenId; - address private _bundleModule; - uint256 private _totalSupply; - - modifier onlyBundleModule() { - require(_bundleModule != address(0), "ERROR:BTK-001:NOT_INITIALIZED"); - require(_msgSender() == _bundleModule, "ERROR:BTK-002:NOT_BUNDLE_MODULE"); - _; - } - - /** - * @dev Constructor function for the ERC721 token contract. It sets the name and symbol of the token and initializes the Ownable contract. - */ - constructor() ERC721(NAME, SYMBOL) Ownable() { } - - /** - * @dev Sets the bundle module address. - * @param bundleModule The address of the bundle module to be set. - * - * Emits a {BundleModuleSet} event. - * - * Requirements: - * - The bundle module address must not have already been set. - * - The bundle module address must not be the zero address. - */ - function setBundleModule(address bundleModule) - external - { - require(_bundleModule == address(0), "ERROR:BTK-003:BUNDLE_MODULE_ALREADY_DEFINED"); - require(bundleModule != address(0), "ERROR:BTK-004:INVALID_BUNDLE_MODULE_ADDRESS"); - _bundleModule = bundleModule; - } - - - /** - * @dev Mints a new bundle token and assigns ownership to the specified address. - * @param bundleId The ID of the bundle to which the token belongs. - * @param to The address that will receive ownership of the newly minted token. - * @return tokenId The ID of the newly minted token. - * @notice This function emits 1 events: - * - LogBundleTokenMinted - */ - function mint(uint256 bundleId, address to) - external - onlyBundleModule - returns(uint256 tokenId) - { - _totalSupply++; - tokenId = _totalSupply; - bundleIdForTokenId[tokenId] = bundleId; - - _safeMint(to, tokenId); - - emit LogBundleTokenMinted(bundleId, tokenId, to); - } - - - /** - * @dev Burns a bundle token. - * @param tokenId The ID of the token to be burned. - * @notice This function emits 1 events: - * - LogBundleTokenBurned - */ - function burn(uint256 tokenId) - external - onlyBundleModule - { - require(_exists(tokenId), "ERROR:BTK-005:TOKEN_ID_INVALID"); - _burn(tokenId); - - emit LogBundleTokenBurned(bundleIdForTokenId[tokenId], tokenId); - } - - /** - * @dev Checks if a token has been burned. - * @param tokenId The ID of the token to check. - * @return isBurned Returns true if the token has been burned, false otherwise. - */ - function burned(uint tokenId) - external override - view - returns(bool isBurned) - { - isBurned = tokenId <= _totalSupply && !_exists(tokenId); - } - - /** - * @dev Returns the bundle ID associated with a given token ID. - * @param tokenId The ID of the token to query. - * @return The bundle ID associated with the given token ID. - */ - function getBundleId(uint256 tokenId) external override view returns(uint256) { return bundleIdForTokenId[tokenId]; } - /** - * @dev Returns the address of the bundle module. - * @return _bundleModule The address of the bundle module. - */ - function getBundleModuleAddress() external view returns(address) { return _bundleModule; } - - /** - * @dev Checks if a given token ID exists. - * @param tokenId The ID of the token to check. - * @return A boolean indicating whether the token exists or not. - */ - function exists(uint256 tokenId) external override view returns(bool) { return tokenId <= _totalSupply; } - /** - * @dev Returns the total number of tokens in circulation. - * @return tokenCount The total number of tokens in circulation. - */ - function totalSupply() external override view returns(uint256 tokenCount) { return _totalSupply; } -} diff --git a/contracts-christoph2806/tokens/README.adoc b/contracts-christoph2806/tokens/README.adoc deleted file mode 100644 index 16591ee8..00000000 --- a/contracts-christoph2806/tokens/README.adoc +++ /dev/null @@ -1,10 +0,0 @@ -= Tokens - -[.readme-notice] -NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/tokens - -== Contracts - -{{BundleToken}} - -{{RiskpoolToken}} \ No newline at end of file diff --git a/contracts-christoph2806/tokens/RiskpoolToken.sol b/contracts-christoph2806/tokens/RiskpoolToken.sol deleted file mode 100644 index e7b7a11e..00000000 --- a/contracts-christoph2806/tokens/RiskpoolToken.sol +++ /dev/null @@ -1,20 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - -contract RiskpoolToken is - ERC20 -{ - string public constant NAME = "GIF Riskpool Token"; - string public constant SYMBOL = "RPT"; - - /** - * @dev Constructor function that sets the name and symbol of the ERC20 token. - */ - constructor() - ERC20(NAME, SYMBOL) - { - - } -} diff --git a/contracts/Migrations.sol b/contracts/Migrations.sol index 4e0c8ad9..e57c581e 100644 --- a/contracts/Migrations.sol +++ b/contracts/Migrations.sol @@ -5,6 +5,9 @@ contract Migrations { address public owner; uint256 public last_completed_migration; // solhint-disable-line + /** + * @dev Constructor function that sets the contract owner to the address of the sender. + */ constructor() { owner = msg.sender; } @@ -13,10 +16,18 @@ contract Migrations { if (msg.sender == owner) _; } + /** + * @dev Sets the value of the last completed migration to the given value. + * @param _completed The new value for the last completed migration. + */ function setCompleted(uint256 _completed) public restricted { last_completed_migration = _completed; } + /** + * @dev Upgrades the Migrations contract to a new address. + * @param _newAddress The address of the new Migrations contract. + */ function upgrade(address _newAddress) public restricted { Migrations upgraded = Migrations(_newAddress); upgraded.setCompleted(last_completed_migration); diff --git a/contracts/examples/AyiiOracle.sol b/contracts/examples/AyiiOracle.sol index c6f60494..8b33bd12 100644 --- a/contracts/examples/AyiiOracle.sol +++ b/contracts/examples/AyiiOracle.sol @@ -27,6 +27,15 @@ contract AyiiOracle is uint256 aaay ); + /** + * @dev Constructor function for the ChainlinkOracle contract. + * @param _name The name of the oracle contract. + * @param _registry The address of the oracle registry contract. + * @param _chainLinkToken The address of the Chainlink token contract. + * @param _chainLinkOperator The address of the Chainlink oracle operator. + * @param _jobId The ID of the Chainlink job to be used. + * @param _payment The payment amount to be sent to the Chainlink oracle operator. + */ constructor( bytes32 _name, address _registry, @@ -44,6 +53,13 @@ contract AyiiOracle is _payment); } + /** + * @dev Update request details for Chainlink oracle job. + * @param _chainLinkToken The address of the Chainlink token contract. + * @param _chainLinkOperator The address of the Chainlink oracle operator. + * @param _jobId The job ID for the Chainlink oracle job. + * @param _payment The payment amount for the Chainlink oracle job. + */ function updateRequestDetails( address _chainLinkToken, address _chainLinkOperator, @@ -60,6 +76,14 @@ contract AyiiOracle is payment = _payment; } + /** + * @dev Sends a Chainlink request to retrieve data for a specific GIF request. + * @param gifRequestId The ID of the GIF request. + * @param input The encoded input data containing the project ID, UAI ID, and crop ID. + * The input must be in the following format: abi.encode([bytes32 projectId, bytes32 uaiId, bytes32 cropId]). + * @notice This function emits 1 events: + * - LogAyiiRequest + */ function request(uint256 gifRequestId, bytes calldata input) external override onlyQuery @@ -86,6 +110,16 @@ contract AyiiOracle is emit LogAyiiRequest(gifRequestId, chainlinkRequestId); } + /** + * @dev This function is used to fulfill a Chainlink request for the given parameters. + * @param chainlinkRequestId The ID of the Chainlink request to fulfill. + * @param projectId The ID of the project. + * @param uaiId The ID of the UAI. + * @param cropId The ID of the crop. + * @param aaay The amount of AAAY. + * @notice This function emits 1 events: + * - LogAyiiFulfill + */ function fulfill( bytes32 chainlinkRequestId, bytes32 projectId, @@ -103,6 +137,10 @@ contract AyiiOracle is emit LogAyiiFulfill(gifRequest, chainlinkRequestId, projectId, uaiId, cropId, aaay); } + /** + * @dev Cancels a Chainlink request. + * @param requestId The ID of the request to cancel. + */ function cancel(uint256 requestId) external override onlyOwner @@ -112,6 +150,15 @@ contract AyiiOracle is } // only used for testing of chainlink operator + /** + * @dev Encodes the parameters required for a Chainlink request fulfillment. + * @param chainlinkRequestId The ID of the Chainlink request. + * @param projectId The ID of the project. + * @param uaiId The ID of the UAI. + * @param cropId The ID of the crop. + * @param aaay The value of aaay. + * @return parameterData The encoded parameter data. + */ function encodeFulfillParameters( bytes32 chainlinkRequestId, bytes32 projectId, @@ -132,18 +179,34 @@ contract AyiiOracle is ); } + /** + * @dev Returns the Chainlink Job ID associated with this contract. + * @return chainlinkJobId The Chainlink Job ID as a bytes32 variable. + */ function getChainlinkJobId() external view returns(bytes32 chainlinkJobId) { return jobId; } + /** + * @dev Returns the payment amount for a Chainlink oracle request. + * @return paymentAmount The payment amount in uint256. + */ function getChainlinkPayment() external view returns(uint256 paymentAmount) { return payment; } + /** + * @dev Returns the address of the Chainlink token. + * @return linkTokenAddress The address of the Chainlink token. + */ function getChainlinkToken() external view returns(address linkTokenAddress) { return chainlinkTokenAddress(); } + /** + * @dev Returns the address of the Chainlink operator. + * @return operator The address of the Chainlink operator. + */ function getChainlinkOperator() external view returns(address operator) { return chainlinkOracleAddress(); } diff --git a/contracts/examples/AyiiProduct.sol b/contracts/examples/AyiiProduct.sol index 1f6b0e5b..8f3925fd 100644 --- a/contracts/examples/AyiiProduct.sol +++ b/contracts/examples/AyiiProduct.sol @@ -80,6 +80,15 @@ contract AyiiProduct is event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); + /** + * @dev Constructor function for creating a new instance of a Product contract. + * @param productName Name of the product. + * @param registry Address of the registry contract. + * @param token Address of the token contract. + * @param oracleId ID of the oracle. + * @param riskpoolId ID of the risk pool. + * @param insurer Address of the insurer. + */ constructor( bytes32 productName, address registry, @@ -97,6 +106,19 @@ contract AyiiProduct is _setupRole(INSURER_ROLE, insurer); } + /** + * @dev Creates a new risk for a project, UAI and crop with the specified parameters. + * @param projectId The ID of the project associated with the risk. + * @param uaiId The ID of the UAI associated with the risk. + * @param cropId The ID of the crop associated with the risk. + * @param trigger The trigger value for the risk. + * @param exit The exit value for the risk. + * @param tsi The total sum insured for the risk. + * @param aph The area per hectare for the crop. + * @return riskId The ID of the newly created risk. + * @notice This function emits 1 events: + * - LogAyiiRiskDataCreated + */ function createRisk( bytes32 projectId, bytes32 uaiId, @@ -136,6 +158,25 @@ contract AyiiProduct is risk.cropId); } + /** + * @dev Allows the insurer to adjust the parameters of an existing risk. + * @param riskId The ID of the risk to be adjusted. + * @param trigger The new trigger value for the risk. + * @param exit The new exit value for the risk. + * @param tsi The new total sum insured value for the risk. + * @param aph The new annual premium value for the risk. + * + * Emits a LogAyiiRiskDataBeforeAdjustment event with the risk's data before adjustment. + * Emits a LogAyiiRiskDataAfterAdjustment event with the risk's data after adjustment. + * + * Requirements: + * - The caller must have the INSURER_ROLE. + * - The risk must exist. + * - The risk must have no policies associated with it. + * @notice This function emits 2 events: + * - LogAyiiRiskDataAfterAdjustment + * - LogAyiiRiskDataBeforeAdjustment + */ function adjustRisk( bytes32 riskId, uint256 trigger, @@ -172,6 +213,13 @@ contract AyiiProduct is risk.aph); } + /** + * @dev Calculates the unique risk ID for a project, UAI and crop. + * @param projectId The bytes32 ID of the project. + * @param uaiId The bytes32 ID of the UAI. + * @param cropId The bytes32 ID of the crop. + * @return riskId The bytes32 ID of the unique risk. + */ function getRiskId( bytes32 projectId, bytes32 uaiId, @@ -185,6 +233,17 @@ contract AyiiProduct is } + /** + * @dev Creates a new policy application for a given policy holder and risk. + * @param policyHolder The address of the policy holder. + * @param premium The amount of premium to be paid for the policy. + * @param sumInsured The amount of coverage provided by the policy. + * @param riskId The unique identifier of the risk associated with the policy. + * @return processId The unique identifier of the newly created policy application. + * @notice This function emits 2 events: + * - LogAyiiPolicyApplicationCreated + * - LogAyiiPolicyCreated + */ function applyForPolicy( address policyHolder, uint256 premium, @@ -230,6 +289,15 @@ contract AyiiProduct is } } + /** + * @dev Allows the INSURER_ROLE to underwrite an insurance application for a given processId. + * @param processId The unique identifier of the insurance application. + * @return success A boolean indicating whether the underwriting process was successful or not. + * + * Emits a LogAyiiPolicyCreated event if the underwriting process is successful, containing the processId, the owner of the application, the premium amount and the sum insured amount. + * @notice This function emits 1 events: + * - LogAyiiPolicyCreated + */ function underwrite( bytes32 processId ) @@ -252,6 +320,13 @@ contract AyiiProduct is } } + /** + * @dev Collects the premium for a specific policy. + * @param policyId The ID of the policy for which to collect the premium. + * @return success A boolean indicating whether the premium was collected successfully. + * @return fee The fee collected by the insurer. + * @return netPremium The net premium collected by the insurer after deducting the fee. + */ function collectPremium(bytes32 policyId) external onlyRole(INSURER_ROLE) @@ -266,6 +341,15 @@ contract AyiiProduct is * the 2nd transfer transfers the amount from the customer to the riskpool wallet (and some * fees to the instance wallet) */ + /** + * @dev Collects premium from a policyholder for a specific policy. + * @param policyId The ID of the policy for which premium is being collected. + * @param from The address of the policyholder from whom the premium is being collected. + * @param amount The amount of premium being collected. + * @return success A boolean indicating whether the premium collection was successful or not. + * @return fee The fee charged for the premium collection. + * @return netPremium The net premium collected after deducting the fee. + */ function collectPremium(bytes32 policyId, address from, uint256 amount) external onlyRole(INSURER_ROLE) @@ -284,6 +368,12 @@ contract AyiiProduct is (success, fee, netPremium) = _collectPremium(policyId, amount); } + /** + * @dev Adjusts the premium and sum insured amounts for a given insurance process. + * @param processId The unique identifier of the insurance process. + * @param expectedPremiumAmount The expected premium amount for the insurance process. + * @param sumInsuredAmount The sum insured amount for the insurance process. + */ function adjustPremiumSumInsured( bytes32 processId, uint256 expectedPremiumAmount, @@ -295,6 +385,20 @@ contract AyiiProduct is _adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount); } + /** + * @dev Triggers an oracle request for a specific process ID. + * @param processId The ID of the process to trigger the oracle request for. + * @return requestId The ID of the oracle request triggered. + * + * Emits a LogAyiiRiskDataRequested event with the requestId, risk ID, project ID, UAI ID and crop ID. + * + * Requirements: + * - Caller must have the INSURER_ROLE. + * - The risk must be defined. + * - The oracle must not have already responded to the request. + * @notice This function emits 1 events: + * - LogAyiiRiskDataRequested + */ function triggerOracle(bytes32 processId) external onlyRole(INSURER_ROLE) @@ -329,6 +433,20 @@ contract AyiiProduct is risk.cropId); } + /** + * @dev Allows the insurer to cancel a specific oracle request for a given process ID. + * @param processId The unique process ID associated with the risk. + * + * Emits a LogAyiiRiskDataRequestCancelled event indicating the cancellation of the oracle request. + * + * Requirements: + * - The caller must have the INSURER_ROLE. + * - The risk must exist in the _risks mapping. + * - The oracle request must have been triggered for the risk. + * - There must not be an existing callback for the oracle request. + * @notice This function emits 1 events: + * - LogAyiiRiskDataRequestCancelled + */ function cancelOracleRequest(bytes32 processId) external onlyRole(INSURER_ROLE) @@ -347,6 +465,18 @@ contract AyiiProduct is emit LogAyiiRiskDataRequestCancelled(processId, risk.requestId); } + /** + * @dev Callback function for the oracle to update the risk data for a project. + * @param requestId The ID of the oracle request. + * @param processId The ID of the oracle process. + * @param responseData The response data from the oracle, which is expected to be an ABI-encoded tuple containing the following fields: + * - projectId: The ID of the project. + * - uaiId: The ID of the UAI. + * - cropId: The ID of the crop. + * - aaay: The AAAY value for the project. + * @notice This function emits 1 events: + * - LogAyiiRiskDataReceived + */ function oracleCallback( uint256 requestId, bytes32 processId, @@ -393,6 +523,23 @@ contract AyiiProduct is aaay); } + /** + * @dev Process a batch of policies for a given risk. + * @param riskId ID of the risk to process policies for. + * @param batchSize Number of policies to process in a single batch. + * @return processedPolicies An array of policy IDs that were processed. + * Emits a LogAyiiRiskProcessed event with the processed batch size. + * Requirements: + * - Caller must have the INSURER_ROLE. + * - The risk must have a response from the oracle. + * - The policies set for the given risk must not be empty. + * - If batchSize is 0, processes all policies in a single batch. + * - If batchSize is greater than the number of policies, processes all policies in a single batch. + * - If batchSize is less than the number of policies, processes batchSize policies in a single batch. + * @notice This function emits 2 events: + * - LogAyiiRiskProcessed + * - LogAyiiRiskProcessed + */ function processPoliciesForRisk(bytes32 riskId, uint256 batchSize) external onlyRole(INSURER_ROLE) @@ -423,6 +570,14 @@ contract AyiiProduct is emit LogAyiiRiskProcessed(riskId, batchSize); } + /** + * @dev Processes a policy by calculating the claim amount, creating a new claim, and emitting events for the claim and payout. + * @param policyId The ID of the policy to be processed. + * @notice This function emits 3 events: + * - LogAyiiPayoutCreated + * - LogAyiiClaimCreated + * - LogAyiiPolicyProcessed + */ function processPolicy(bytes32 policyId) public onlyRole(INSURER_ROLE) @@ -465,6 +620,12 @@ contract AyiiProduct is emit LogAyiiPolicyProcessed(policyId); } + /** + * @dev Calculates the payout amount based on the payout percentage and sum insured amount. + * @param payoutPercentage The percentage of the sum insured amount that will be paid out. + * @param sumInsuredAmount The total amount that is insured. + * @return payoutAmount The calculated payout amount. + */ function calculatePayout(uint256 payoutPercentage, uint256 sumInsuredAmount) public pure @@ -473,6 +634,15 @@ contract AyiiProduct is payoutAmount = payoutPercentage * sumInsuredAmount / PERCENTAGE_MULTIPLIER; } + /** + * @dev Calculates the payout percentage based on the given parameters. + * @param tsi The maximum payout percentage. + * @param trigger The harvest ratio at and above which no payout is made. + * @param exit The harvest ratio at and below which the maximum payout is made. + * @param aph The average historical yield. + * @param aaay This season's yield. + * @return payoutPercentage The calculated payout percentage. + */ function calculatePayoutPercentage( uint256 tsi, // max payout percentage uint256 trigger,// at and above this harvest ratio no payout is made @@ -499,40 +669,97 @@ contract AyiiProduct is payoutPercentage = tsi * (trigger - harvestRatio) / (trigger - exit); } + /** + * @dev Returns the percentage multiplier used in calculations. + * @return multiplier The value of the percentage multiplier. + */ function getPercentageMultiplier() external pure returns(uint256 multiplier) { return PERCENTAGE_MULTIPLIER; } + /** + * @dev Returns the minimum value between two uint256 numbers. + * @param a The first uint256 number to compare. + * @param b The second uint256 number to compare. + * @return The minimum value between a and b. + */ function min(uint256 a, uint256 b) private pure returns (uint256) { return a <= b ? a : b; } + /** + * @dev Returns the number of risk ids in the _riskIds array. + * @return The length of the _riskIds array. + */ function risks() external view returns(uint256) { return _riskIds.length; } + /** + * @dev Returns the risk ID at the given index. + * @param idx The index of the risk ID to retrieve. + * @return riskId The risk ID at the given index. + */ function getRiskId(uint256 idx) external view returns(bytes32 riskId) { return _riskIds[idx]; } + /** + * @dev Returns the Risk struct associated with the given riskId. + * @param riskId The unique identifier of the Risk to retrieve. + * @return risk The Risk struct containing the details of the requested risk. + */ function getRisk(bytes32 riskId) external view returns(Risk memory risk) { return _risks[riskId]; } + /** + * @dev Returns the number of applications submitted. + * @return applicationCount The number of applications submitted. + */ function applications() external view returns(uint256 applicationCount) { return _applications.length; } + /** + * @dev Returns the process ID of a specific application. + * @param applicationIdx The index of the application in the array. + * @return processId The process ID of the application. + */ function getApplicationId(uint256 applicationIdx) external view returns(bytes32 processId) { return _applications[applicationIdx]; } + /** + * @dev Returns the number of policies for a given risk ID. + * @param riskId The ID of the risk. + * @return policyCount The number of policies for the given risk ID. + */ function policies(bytes32 riskId) external view returns(uint256 policyCount) { return EnumerableSet.length(_policies[riskId]); } + /** + * @dev Returns the processId of the policy at the specified index in the list of policies associated with the given riskId. + * @param riskId The unique identifier of the risk. + * @param policyIdx The index of the policy in the list of policies associated with the given riskId. + * @return processId The unique identifier of the process associated with the policy at the specified index. + */ function getPolicyId(bytes32 riskId, uint256 policyIdx) external view returns(bytes32 processId) { return EnumerableSet.at(_policies[riskId], policyIdx); } + /** + * @dev Returns the data structure of the application. + * @return dataStructure A string representing the data structure of the application, which consists of a single parameter: + * - riskId: A bytes32 value representing the unique identifier of the risk. + */ function getApplicationDataStructure() external override pure returns(string memory dataStructure) { return "(bytes32 riskId)"; } + /** + * @dev Validates the risk parameters for a new position. + * @param trigger The trigger percentage for the new position. + * @param exit The exit percentage for the new position. + * @param tsi The TSI (Time Since Inception) for the new position. + * @param aph The APH (Annual Premium Hours) for the new position. + * + */ function _validateRiskParameters( uint256 trigger, uint256 exit, @@ -551,6 +778,15 @@ contract AyiiProduct is require(aph <= RISK_APH_MAX, "ERROR:AYI-047:RISK_APH_TOO_LARGE"); } + /** + * @dev Processes a policy by calculating the claim amount, creating a claim, confirming it, creating a payout, processing it, and emitting events accordingly. + * @param policyId The ID of the policy to be processed. + * @param risk The Risk struct containing the payout percentage. + * @notice This function emits 3 events: + * - LogAyiiPolicyProcessed + * - LogAyiiPayoutCreated + * - LogAyiiClaimCreated + */ function _processPolicy(bytes32 policyId, Risk memory risk) internal { @@ -581,6 +817,11 @@ contract AyiiProduct is emit LogAyiiPolicyProcessed(policyId); } + /** + * @dev Returns the risk ID associated with a given process ID. + * @param processId The process ID for which to retrieve the risk ID. + * @return riskId The risk ID associated with the given process ID. + */ function _getRiskId(bytes32 processId) private view returns(bytes32 riskId) { IPolicy.Application memory application = _getApplication(processId); (riskId) = abi.decode(application.data, (bytes32)); diff --git a/contracts/examples/AyiiRiskpool.sol b/contracts/examples/AyiiRiskpool.sol index 292fa598..87385ca7 100644 --- a/contracts/examples/AyiiRiskpool.sol +++ b/contracts/examples/AyiiRiskpool.sol @@ -1,63 +1,87 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@openzeppelin/contracts/access/AccessControl.sol"; - -import "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol"; -import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; - -contract AyiiRiskpool is - BasicRiskpool, - AccessControl -{ - // 0x5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d935 - bytes32 public constant INVESTOR_ROLE = keccak256("INVESTOR"); - - // restricts the maximal sum of sum insured that are secured by gthe riskpool - uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24; - - constructor( - bytes32 name, - uint256 collateralization, - address erc20Token, - address wallet, - address registry - ) - BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry) - { - - _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); - } - - - function grantInvestorRole(address investor) - external - onlyOwner - { - _setupRole(INVESTOR_ROLE, investor); - } - - - function createBundle(bytes memory filter, uint256 initialAmount) - public override - onlyRole(INVESTOR_ROLE) - returns(uint256 bundleId) - { - bundleId = super.createBundle(filter, initialAmount); - } - - - // trivial implementation that matches every application - function bundleMatchesApplication( - IBundle.Bundle memory bundle, - IPolicy.Application memory application - ) - public override - pure - returns(bool isMatching) - { - isMatching = true; - } - +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@openzeppelin/contracts/access/AccessControl.sol"; + +import "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol"; +import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; + +contract AyiiRiskpool is + BasicRiskpool, + AccessControl +{ + // 0x5614e11ca6d7673c9c8dcec913465d676494aad1151bb2c1cf40b9d99be4d935 + bytes32 public constant INVESTOR_ROLE = keccak256("INVESTOR"); + + // restricts the maximal sum of sum insured that are secured by gthe riskpool + uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24; + + /** + * @dev Constructor for creating a new Riskpool with the given parameters. + * @param name The name of the Riskpool. + * @param collateralization The collateralization percentage of the Riskpool. + * @param erc20Token The address of the ERC20 token used for collateral. + * @param wallet The address of the wallet where the collateral will be held. + * @param registry The address of the registry contract. + */ + constructor( + bytes32 name, + uint256 collateralization, + address erc20Token, + address wallet, + address registry + ) + BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry) + { + + _setupRole(DEFAULT_ADMIN_ROLE, _msgSender()); + } + + + /** + * @dev Grants the INVESTOR_ROLE to the specified address. + * @param investor The address to grant the INVESTOR_ROLE to. + */ + function grantInvestorRole(address investor) + external + onlyOwner + { + _setupRole(INVESTOR_ROLE, investor); + } + + + /** + * @dev Creates a new bundle with the specified filter and initial amount. + * @param filter The filter to be applied to the bundle. + * @param initialAmount The initial amount of tokens to be deposited into the bundle. + * @return bundleId The ID of the newly created bundle. + */ + function createBundle(bytes memory filter, uint256 initialAmount) + public override + onlyRole(INVESTOR_ROLE) + returns(uint256 bundleId) + { + bundleId = super.createBundle(filter, initialAmount); + } + + + // trivial implementation that matches every application + /** + * @dev Checks if a given bundle matches a given application. + * @param bundle The bundle to check. + * @param application The application to match against. + * @return isMatching Returns true if the bundle matches the application. + */ + function bundleMatchesApplication( + IBundle.Bundle memory bundle, + IPolicy.Application memory application + ) + public override + pure + returns(bool isMatching) + { + isMatching = true; + } + } \ No newline at end of file diff --git a/contracts/examples/mock/ChainlinkOperator.sol b/contracts/examples/mock/ChainlinkOperator.sol index 0b3f65da..9acc9a0a 100644 --- a/contracts/examples/mock/ChainlinkOperator.sol +++ b/contracts/examples/mock/ChainlinkOperator.sol @@ -48,12 +48,26 @@ contract ChainlinkOperator is _; } + /** + * @dev Constructor function that inherits from the Ownable contract. + */ constructor() Ownable() { } /** * @notice Sets the fulfillment permission for a given node. Use `true` to allow, `false` to disallow. * @param senders The addresses of the authorized Chainlink node */ + /** + * @dev Sets the authorized senders for the contract. Only the authorized sender setter can call this function. + * @param senders An array of addresses to be set as authorized senders. + * + * Requirements: + * - The length of the senders array must be greater than 0. + * + * Emits an {AuthorizedSendersChanged} event indicating the updated list of authorized senders and the address of the sender who called the function. + * @notice This function emits 1 events: + * - AuthorizedSendersChanged + */ function setAuthorizedSenders(address[] calldata senders) external validateAuthorizedSenderSetter @@ -74,6 +88,10 @@ contract ChainlinkOperator is } + /** + * @dev Returns an array of authorized senders. + * @return An array of addresses representing the authorized senders. + */ function getAuthorizedSenders() external view @@ -90,6 +108,12 @@ contract ChainlinkOperator is * @param amount Amount of LINK sent (specified in wei) * @param data Payload of the transaction */ + /** + * @dev This function is called when a token transfer occurs. It ensures that the correct sender and amount are passed in the data parameter, and then calls the oracleRequest function via delegatecall. + * @param sender The address of the token sender. + * @param amount The amount of tokens being sent. + * @param data The data payload for the token transfer, which must include the oracleRequest function signature and any additional data required for the function. + */ function onTokenTransfer( address sender, uint256 amount, @@ -124,6 +148,19 @@ contract ChainlinkOperator is * @param dataVersion The specified data version * @param data The extra request parameters */ + /** + * @dev Sends an oracle request with specified parameters to the oracle contract. + * @param sender The address of the requester. + * @param payment The amount of LINK sent as payment for the request. + * @param specId The ID of the job specification for the request. + * @param callbackAddress The address of the contract that will receive the response. + * @param callbackFunctionId The function ID of the function that will receive the response. + * @param nonce A unique identifier for the request. + * @param dataVersion The version of the data schema being used. + * @param data The data being sent as part of the request. + * @notice This function emits 1 events: + * - OracleRequest + */ function oracleRequest( address sender, uint256 payment, @@ -163,6 +200,19 @@ contract ChainlinkOperator is * @param data The data to return to the consuming contract * @return Status if the external call was successful */ + /** + * @dev Fulfill an oracle request by verifying it and processing the payment. Then emit an `OracleResponse` event. + * The function also checks if the consumer provided enough gas and calls the callback function. + * @param requestId The ID of the oracle request. + * @param payment The payment amount for the oracle request. + * @param callbackAddress The address of the contract to be called back. + * @param callbackFunctionId The function signature of the callback function. + * @param expiration The expiration time of the oracle request. + * @param data The data to be sent to the callback function. + * @return success A boolean value indicating whether the callback function was successfully called or not. + * @notice This function emits 1 events: + * - OracleResponse + */ function fulfillOracleRequest2( bytes32 requestId, uint256 payment, @@ -200,6 +250,17 @@ contract ChainlinkOperator is * @param callbackFunctionId The callback function ID for the response * @param nonce The nonce sent by the requester */ + /** + * @dev Verifies and processes an oracle request. + * @param sender The address of the sender making the request. + * @param payment The amount of payment to be made for the request. + * @param callbackAddress The address of the contract to receive the callback. + * @param callbackFunctionId The function signature of the callback function. + * @param nonce A unique identifier for the request. + * @param dataVersion The version of the data being requested. + * @return requestId The unique identifier for the request. + * @return expiration The expiration time for the request. + */ function _verifyAndProcessOracleRequest( address sender, uint256 payment, @@ -232,6 +293,15 @@ contract ChainlinkOperator is * @param callbackFunctionId The callback function ID to use for fulfillment * @param expiration The expiration that the node should respond by before the requester can cancel */ + /** + * @dev Verifies the oracle request and processes the payment. + * @param requestId The ID of the request. + * @param payment The amount of payment to be processed. + * @param callbackAddress The address of the callback function. + * @param callbackFunctionId The function ID of the callback function. + * @param expiration The expiration time of the request. + * @param dataVersion The version of the data. + */ function _verifyOracleRequestAndProcessPayment( bytes32 requestId, uint256 payment, @@ -258,6 +328,14 @@ contract ChainlinkOperator is * @param expiration The expiration that the node should respond by before the requester can cancel * @return hash bytes31 */ + /** + * @dev Generates a hash value based on the function parameters. + * @param payment The payment amount to be included in the hash. + * @param callbackAddress The address to be called back after the transaction. + * @param callbackFunctionId The function ID to be called back after the transaction. + * @param expiration The expiration time for the transaction. + * @return Hash value generated from the function parameters. + */ function _buildParamsHash( uint256 payment, address callbackAddress, @@ -273,6 +351,14 @@ contract ChainlinkOperator is * @param number uint256 * @return uint8 number */ + /** + * @dev Safely casts a uint256 to a uint8. + * @param number The uint256 number to cast. + * @return The uint8 representation of the number. + * + * Requirements: + * - number must be less than MAXIMUM_DATA_VERSION. + */ function _safeCastToUint8(uint256 number) internal pure returns (uint8) { require(number < MAXIMUM_DATA_VERSION, "number too big to cast"); return uint8(number); @@ -282,6 +368,10 @@ contract ChainlinkOperator is * @notice concrete implementation of AuthorizedReceiver * @return bool of whether sender is authorized */ + /** + * @dev Checks if the caller is the owner of the contract and can set authorized senders. + * @return A boolean indicating whether the caller is the owner of the contract. + */ function _canSetAuthorizedSenders() internal view returns (bool) { return owner() == msg.sender; } diff --git a/contracts/examples/mock/ChainlinkToken.sol b/contracts/examples/mock/ChainlinkToken.sol index efc43cf6..967dfc21 100644 --- a/contracts/examples/mock/ChainlinkToken.sol +++ b/contracts/examples/mock/ChainlinkToken.sol @@ -4,14 +4,32 @@ pragma solidity 0.8.2; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; abstract contract ERC677Receiver { + /** + * @dev This function is called when tokens are transferred to this contract. + * @param _sender The address of the sender. + * @param _value The amount of tokens being transferred. + * @param _data Additional data with no specified format. + */ function onTokenTransfer (address _sender, uint _value, bytes calldata _data) public virtual; } contract ChainlinkToken is ERC20 { + /** + * @dev Constructor function to initialize the Chainlink Dummy Token with the given owner and supply. + * @param owner The address of the owner of the token. + * @param supply The initial supply of the token. + */ constructor(address owner, uint256 supply) ERC20("Chainlink Dummy Token", "CDT"){ _mint(owner, supply); } + /** + * @dev Transfers tokens to a specified address and calls the recipient's function. + * @param _to The address of the recipient. + * @param _value The amount of tokens to send. + * @param _data Additional data to send to the recipient's function. + * @return success Returns true if the transfer was successful. + */ function transferAndCall(address _to, uint _value, bytes calldata _data) public returns (bool success){ super.transfer(_to, _value); // Transfer(msg.sender, _to, _value, _data); @@ -21,11 +39,22 @@ contract ChainlinkToken is ERC20 { return true; } + /** + * @dev Executes a contract fallback function. + * @param _to The address of the contract to execute the fallback function on. + * @param _value The amount of tokens being transferred. + * @param _data Additional data to be passed to the fallback function. + */ function contractFallback(address _to, uint _value, bytes calldata _data) private { ERC677Receiver receiver = ERC677Receiver(_to); receiver.onTokenTransfer(msg.sender, _value, _data); } + /** + * @dev Checks if the given address contains code. + * @param _addr The address to check. + * @return hasCode A boolean indicating whether the address contains code or not. + */ function isContract(address _addr) private view returns (bool hasCode) { uint length; assembly { length := extcodesize(_addr) } diff --git a/contracts/examples/strings.sol b/contracts/examples/strings.sol index 42c12ef0..0e7c636d 100644 --- a/contracts/examples/strings.sol +++ b/contracts/examples/strings.sol @@ -1,118 +1,137 @@ -// SPDX-License-Identifier: Apache2 - -// source: https://github.com/Arachnid/solidity-stringutils -/* - * @title String & slice utility library for Solidity contracts. - * @author Nick Johnson - * - * @dev Functionality in this library is largely implemented using an - * abstraction called a 'slice'. A slice represents a part of a string - - * anything from the entire string to a single character, or even no - * characters at all (a 0-length slice). Since a slice only has to specify - * an offset and a length, copying and manipulating slices is a lot less - * expensive than copying and manipulating the strings they reference. - * - * To further reduce gas costs, most functions on slice that need to return - * a slice modify the original one instead of allocating a new one; for - * instance, `s.split(".")` will return the text up to the first '.', - * modifying s to only contain the remainder of the string after the '.'. - * In situations where you do not want to modify the original slice, you - * can make a copy first with `.copy()`, for example: - * `s.copy().split(".")`. Try and avoid using this idiom in loops; since - * Solidity has no memory management, it will result in allocating many - * short-lived slices that are later discarded. - * - * Functions that return two slices come in two versions: a non-allocating - * version that takes the second slice as an argument, modifying it in - * place, and an allocating version that allocates and returns the second - * slice; see `nextRune` for example. - * - * Functions that have to copy string data will return strings rather than - * slices; these can be cast back to slices for further processing if - * required. - * - * For convenience, some functions are provided with non-modifying - * variants that create a new slice and return both; for instance, - * `s.splitNew('.')` leaves s unmodified, and returns two values - * corresponding to the left and right parts of the string. - */ -pragma solidity 0.8.2; - -library strings { - - struct slice { - uint _len; - uint _ptr; - } - - function memcpy(uint dest, uint src, uint len_) private pure { - // Copy word-length chunks while possible - for(; len_ >= 32; len_ -= 32) { - assembly { - mstore(dest, mload(src)) - } - dest += 32; - src += 32; - } - - // Copy remaining bytes - uint mask = type(uint).max; - if (len_ > 0) { - mask = 256 ** (32 - len_) - 1; - } - assembly { - let srcpart := and(mload(src), not(mask)) - let destpart := and(mload(dest), mask) - mstore(dest, or(destpart, srcpart)) - } - } - - /* - * @dev Returns the length of a null-terminated bytes32 string. - * @param self The value to find the length of. - * @return The length of the string, from 0 to 32. - */ - function len(bytes32 self) internal pure returns (uint) { - uint ret; - if (self == 0) - return 0; - if (uint(self) & type(uint128).max == 0) { - ret += 16; - self = bytes32(uint(self) / 0x100000000000000000000000000000000); - } - if (uint(self) & type(uint64).max == 0) { - ret += 8; - self = bytes32(uint(self) / 0x10000000000000000); - } - if (uint(self) & type(uint32).max == 0) { - ret += 4; - self = bytes32(uint(self) / 0x100000000); - } - if (uint(self) & type(uint16).max == 0) { - ret += 2; - self = bytes32(uint(self) / 0x10000); - } - if (uint(self) & type(uint8).max == 0) { - ret += 1; - } - return 32 - ret; - } - - // merge of toSliceB32 and toString of strings library - function toB32String(bytes32 self) internal pure returns (string memory) { - slice memory slc; - assembly { - let ptr := mload(0x40) - mstore(0x40, add(ptr, 0x20)) - mstore(ptr, self) - mstore(add(slc, 0x20), ptr) - } - slc._len = len(self); - - string memory ret = new string(slc._len); - uint retptr; - assembly { retptr := add(ret, 32) } - memcpy(retptr, slc._ptr, slc._len); - return ret; - } +// SPDX-License-Identifier: Apache2 + +// source: https://github.com/Arachnid/solidity-stringutils +/* + * @title String & slice utility library for Solidity contracts. + * @author Nick Johnson + * + * @dev Functionality in this library is largely implemented using an + * abstraction called a 'slice'. A slice represents a part of a string - + * anything from the entire string to a single character, or even no + * characters at all (a 0-length slice). Since a slice only has to specify + * an offset and a length, copying and manipulating slices is a lot less + * expensive than copying and manipulating the strings they reference. + * + * To further reduce gas costs, most functions on slice that need to return + * a slice modify the original one instead of allocating a new one; for + * instance, `s.split(".")` will return the text up to the first '.', + * modifying s to only contain the remainder of the string after the '.'. + * In situations where you do not want to modify the original slice, you + * can make a copy first with `.copy()`, for example: + * `s.copy().split(".")`. Try and avoid using this idiom in loops; since + * Solidity has no memory management, it will result in allocating many + * short-lived slices that are later discarded. + * + * Functions that return two slices come in two versions: a non-allocating + * version that takes the second slice as an argument, modifying it in + * place, and an allocating version that allocates and returns the second + * slice; see `nextRune` for example. + * + * Functions that have to copy string data will return strings rather than + * slices; these can be cast back to slices for further processing if + * required. + * + * For convenience, some functions are provided with non-modifying + * variants that create a new slice and return both; for instance, + * `s.splitNew('.')` leaves s unmodified, and returns two values + * corresponding to the left and right parts of the string. + */ +pragma solidity 0.8.2; + +library strings { + + struct slice { + uint _len; + uint _ptr; + } + + /** + * @dev Copies a specified number of bytes from one memory address to another. + * @param dest The destination memory address to copy to. + * @param src The source memory address to copy from. + * @param len_ The number of bytes to copy. + */ + function memcpy(uint dest, uint src, uint len_) private pure { + // Copy word-length chunks while possible + for(; len_ >= 32; len_ -= 32) { + assembly { + mstore(dest, mload(src)) + } + dest += 32; + src += 32; + } + + // Copy remaining bytes + uint mask = type(uint).max; + if (len_ > 0) { + mask = 256 ** (32 - len_) - 1; + } + assembly { + let srcpart := and(mload(src), not(mask)) + let destpart := and(mload(dest), mask) + mstore(dest, or(destpart, srcpart)) + } + } + + /* + * @dev Returns the length of a null-terminated bytes32 string. + * @param self The value to find the length of. + * @return The length of the string, from 0 to 32. + */ + /** + * @dev Calculates the length of a bytes32 variable. + * @param self The bytes32 variable to calculate the length of. + * @return ret The length of the bytes32 variable. + */ + function len(bytes32 self) internal pure returns (uint) { + uint ret; + if (self == 0) + return 0; + if (uint(self) & type(uint128).max == 0) { + ret += 16; + self = bytes32(uint(self) / 0x100000000000000000000000000000000); + } + if (uint(self) & type(uint64).max == 0) { + ret += 8; + self = bytes32(uint(self) / 0x10000000000000000); + } + if (uint(self) & type(uint32).max == 0) { + ret += 4; + self = bytes32(uint(self) / 0x100000000); + } + if (uint(self) & type(uint16).max == 0) { + ret += 2; + self = bytes32(uint(self) / 0x10000); + } + if (uint(self) & type(uint8).max == 0) { + ret += 1; + } + return 32 - ret; + } + + // merge of toSliceB32 and toString of strings library + /** + * @dev Converts a bytes32 value to a string. + * @param self The bytes32 value to be converted. + * @return ret The resulting string value. + * + * Converts a bytes32 value to a string by creating a slice of the bytes32 value and then copying it to a new string. + * The resulting string is then returned as the output of the function. + */ + function toB32String(bytes32 self) internal pure returns (string memory) { + slice memory slc; + assembly { + let ptr := mload(0x40) + mstore(0x40, add(ptr, 0x20)) + mstore(ptr, self) + mstore(add(slc, 0x20), ptr) + } + slc._len = len(self); + + string memory ret = new string(slc._len); + uint retptr; + assembly { retptr := add(ret, 32) } + memcpy(retptr, slc._ptr, slc._len); + return ret; + } } \ No newline at end of file diff --git a/contracts/flows/PolicyDefaultFlow.sol b/contracts/flows/PolicyDefaultFlow.sol index 931758cf..f430c8ad 100644 --- a/contracts/flows/PolicyDefaultFlow.sol +++ b/contracts/flows/PolicyDefaultFlow.sol @@ -67,11 +67,24 @@ contract PolicyDefaultFlow is // ComponentController private _component; // solhint-disable-next-line no-empty-blocks + /** + * @dev Constructor function that initializes the contract with a given registry address. + * @param _registry The address of the registry contract. + */ constructor(address _registry) WithRegistry(_registry) { } + /** + * @dev Creates a new insurance application and returns the process ID. + * @param owner The address of the owner of the new application. + * @param premiumAmount The amount of premium to be paid for the application. + * @param sumInsuredAmount The amount of insurance coverage requested for the application. + * @param metaData Additional metadata for the application. + * @param applicationData Additional data for the application. + * @return processId The unique process ID of the created application. + */ function newApplication( address owner, uint256 premiumAmount, @@ -94,6 +107,10 @@ contract PolicyDefaultFlow is applicationData); } + /** + * @dev Revokes an application for a specific processId. + * @param processId The unique identifier of the process. + */ function revoke(bytes32 processId) external onlyResponsibleProduct(processId) @@ -103,6 +120,15 @@ contract PolicyDefaultFlow is } /* success implies the successful creation of a policy */ + /** + * @dev Attempts to get the collateral to secure the policy. + * @param processId The unique identifier of the underwriting process. + * @return success A boolean indicating whether the underwriting was successful. + * + * If successful, creates a policy and transfers the premium amount. + * The premium collection part is a TODO and should be implemented on the product level. + * This function should only be called by a responsible product. + * */ function underwrite(bytes32 processId) external onlyResponsibleProduct(processId) @@ -132,6 +158,14 @@ contract PolicyDefaultFlow is * valid amounts need to be > 0 up to the full premium amount * if no fee structure is defined for the policy, this call will revert. */ + /** + * @dev Collects the premium for a given policy and updates the book keeping of the policy and the risk pool. + * @param processId The ID of the premium payment process. + * @param amount The amount of premium to be collected. + * @return success A boolean indicating whether the premium collection was successful or not. + * @return feeAmount The amount of fee collected by the treasury module. + * @return netPremiumAmount The net amount of premium collected after deducting the fee. + */ function collectPremium(bytes32 processId, uint256 amount) public notClosedPolicy(processId) @@ -156,6 +190,12 @@ contract PolicyDefaultFlow is } } + /** + * @dev Adjusts the premium and sum insured amounts of a policy. + * @param processId The ID of the policy process. + * @param expectedPremiumAmount The expected premium amount. + * @param sumInsuredAmount The sum insured amount. + */ function adjustPremiumSumInsured( bytes32 processId, uint256 expectedPremiumAmount, @@ -170,6 +210,10 @@ contract PolicyDefaultFlow is } + /** + * @dev Allows the responsible product to decline an application for a policy. + * @param processId The unique identifier of the application process. + */ function decline(bytes32 processId) onlyResponsibleProduct(processId) external @@ -178,6 +222,10 @@ contract PolicyDefaultFlow is policy.declineApplication(processId); } + /** + * @dev Expire the policy identified by the given process ID. + * @param processId The ID of the process corresponding to the policy to be expired. + */ function expire(bytes32 processId) external onlyActivePolicy(processId) @@ -187,6 +235,10 @@ contract PolicyDefaultFlow is policy.expirePolicy(processId); } + /** + * @dev Closes a policy and releases the corresponding funds from the pool. + * @param processId The ID of the policy to be closed. + */ function close(bytes32 processId) external onlyExpiredPolicy(processId) @@ -199,6 +251,13 @@ contract PolicyDefaultFlow is pool.release(processId); } + /** + * @dev Creates a new claim for a given process ID, claim amount and data. + * @param processId The ID of the process to create the claim for. + * @param claimAmount The amount of the claim to be created. + * @param data Additional data to be included with the claim. + * @return claimId The ID of the newly created claim. + */ function newClaim( bytes32 processId, uint256 claimAmount, @@ -215,6 +274,12 @@ contract PolicyDefaultFlow is data); } + /** + * @dev Confirms a claim for a specific process and claim ID, updating the confirmed amount. + * @param processId The ID of the process where the claim was made. + * @param claimId The ID of the claim to be confirmed. + * @param confirmedAmount The amount confirmed for the claim. + */ function confirmClaim( bytes32 processId, uint256 claimId, @@ -227,6 +292,11 @@ contract PolicyDefaultFlow is policy.confirmClaim(processId, claimId, confirmedAmount); } + /** + * @dev Allows the responsible product to decline a claim. + * @param processId The unique identifier of the claim process. + * @param claimId The unique identifier of the claim to be declined. + */ function declineClaim(bytes32 processId, uint256 claimId) external onlyResponsibleProduct(processId) @@ -235,6 +305,11 @@ contract PolicyDefaultFlow is policy.declineClaim(processId, claimId); } + /** + * @dev Closes a claim for a specific process and claim ID. + * @param processId The ID of the process to which the claim belongs. + * @param claimId The ID of the claim to be closed. + */ function closeClaim(bytes32 processId, uint256 claimId) external onlyResponsibleProduct(processId) @@ -243,6 +318,14 @@ contract PolicyDefaultFlow is policy.closeClaim(processId, claimId); } + /** + * @dev Creates a new payout for a specific claim. + * @param processId The ID of the process associated with the claim. + * @param claimId The ID of the claim for which the payout is being created. + * @param amount The amount of the payout to be created. + * @param data Additional data related to the payout. + * @return payoutId The ID of the newly created payout. + */ function newPayout( bytes32 processId, uint256 claimId, @@ -257,6 +340,14 @@ contract PolicyDefaultFlow is .createPayout(processId, claimId, amount, data); } + /** + * @dev Processes a payout for a specific process and payout ID. + * @param processId The ID of the process for which the payout is being processed. + * @param payoutId The ID of the payout being processed. + * @return success A boolean indicating whether the payout was successfully processed. + * @return feeAmount The amount of fees deducted from the payout. + * @return netPayoutAmount The net amount paid out to the policyholder after deducting fees. + */ function processPayout( bytes32 processId, uint256 payoutId @@ -280,6 +371,15 @@ contract PolicyDefaultFlow is pool.processPayout(processId, netPayoutAmount + feeAmount); } + /** + * @dev Sends a request to the query contract to initiate a new process. + * @param processId The ID of the process to be initiated. + * @param _input The input data for the process. + * @param _callbackMethodName The name of the callback method in the callback contract. + * @param _callbackContractAddress The address of the callback contract. + * @param _responsibleOracleId The ID of the oracle responsible for handling the request. + * @return _requestId The ID of the new request. + */ function request( bytes32 processId, bytes calldata _input, @@ -300,6 +400,10 @@ contract PolicyDefaultFlow is ); } + /** + * @dev Cancels a request with the given requestId. + * @param requestId The ID of the request to be cancelled. + */ function cancelRequest( uint256 requestId ) @@ -309,6 +413,11 @@ contract PolicyDefaultFlow is getQueryContract().cancel(requestId); } + /** + * @dev Returns the application data associated with the given process ID. + * @param processId The ID of the process. + * @return data The application data as bytes. + */ function getApplicationData(bytes32 processId) external view @@ -318,6 +427,12 @@ contract PolicyDefaultFlow is return policy.getApplication(processId).data; } + /** + * @dev Returns the claim data of a specific claim for a given process ID. + * @param processId The ID of the process the claim belongs to. + * @param claimId The ID of the claim. + * @return data The claim data as bytes. + */ function getClaimData(bytes32 processId, uint256 claimId) external view @@ -327,6 +442,12 @@ contract PolicyDefaultFlow is return policy.getClaim(processId, claimId).data; } + /** + * @dev Returns the payout data for a given process and payout ID. + * @param processId The ID of the process. + * @param payoutId The ID of the payout. + * @return data The payout data as a bytes array. + */ function getPayoutData(bytes32 processId, uint256 payoutId) external view @@ -336,22 +457,42 @@ contract PolicyDefaultFlow is return policy.getPayout(processId, payoutId).data; } + /** + * @dev Returns the ComponentController contract instance. + * @return The ComponentController contract instance. + */ function getComponentContract() internal view returns (ComponentController) { return ComponentController(getContractFromRegistry("Component")); } + /** + * @dev Returns the PoolController contract instance from the registry. + * @return poolController The PoolController contract instance. + */ function getPoolContract() internal view returns (PoolController) { return PoolController(getContractFromRegistry("Pool")); } + /** + * @dev Returns the PolicyController contract instance from the registry. + * @return The PolicyController contract instance. + */ function getPolicyContract() internal view returns (PolicyController) { return PolicyController(getContractFromRegistry("Policy")); } + /** + * @dev Returns the QueryModule contract instance from the registry. + * @return QueryModule instance. + */ function getQueryContract() internal view returns (QueryModule) { return QueryModule(getContractFromRegistry("Query")); } + /** + * @dev Retrieves the TreasuryModule contract instance. + * @return The instance of the TreasuryModule contract. + */ function getTreasuryContract() internal view returns (TreasuryModule) { return TreasuryModule(getContractFromRegistry("Treasury")); } diff --git a/contracts/services/ComponentOwnerService.sol b/contracts/services/ComponentOwnerService.sol index 9adb2d54..1d1faa4c 100644 --- a/contracts/services/ComponentOwnerService.sol +++ b/contracts/services/ComponentOwnerService.sol @@ -1,84 +1,113 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../modules/ComponentController.sol"; -// TODO ComponentOwnerService should not know of the PoolController - if we have a better idea how to build this, it should be changed. -import "../modules/PoolController.sol"; -import "../shared/CoreController.sol"; - -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol"; - -contract ComponentOwnerService is - IComponentOwnerService, - CoreController -{ - ComponentController private _component; - - modifier onlyOwnerWithRoleFromComponent(IComponent component) { - address owner = component.getOwner(); - bytes32 requiredRole = _component.getRequiredRole(component.getType()); - require(_msgSender() == owner, "ERROR:COS-001:NOT_OWNER"); - require(_access.hasRole(requiredRole, owner), "ERROR:COS-002:REQUIRED_ROLE_MISSING"); - _; - } - - modifier onlyOwnerWithRole(uint256 id) { - IComponent component = _component.getComponent(id); - require(address(component) != address(0), "ERROR:COS-003:COMPONENT_ID_INVALID"); - - address owner = component.getOwner(); - bytes32 requiredRole = _component.getRequiredRole(_component.getComponentType(id)); - - require(_msgSender() == owner, "ERROR:COS-004:NOT_OWNER"); - require(_access.hasRole(requiredRole, owner), "ERROR:COS-005:REQUIRED_ROLE_MISSING"); - _; - } - - function _afterInitialize() internal override onlyInitializing { - _component = ComponentController(_getContractAddress("Component")); - } - - function propose(IComponent component) - external override - onlyOwnerWithRoleFromComponent(component) - { - _component.propose(component); - } - - function stake(uint256 id) - external override - onlyOwnerWithRole(id) - { - revert("ERROR:COS-006:IMPLEMENATION_MISSING"); - } - - function withdraw(uint256 id) - external override - onlyOwnerWithRole(id) - { - revert("ERROR:COS-007:IMPLEMENATION_MISSING"); - } - - - function pause(uint256 id) - external override - onlyOwnerWithRole(id) - { - _component.pause(id); - } - - function unpause(uint256 id) - external override - onlyOwnerWithRole(id) - { - _component.unpause(id); - } - - function archive(uint256 id) - external override - onlyOwnerWithRole(id) - { - _component.archiveFromComponentOwner(id); - } +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../modules/ComponentController.sol"; +// TODO ComponentOwnerService should not know of the PoolController - if we have a better idea how to build this, it should be changed. +import "../modules/PoolController.sol"; +import "../shared/CoreController.sol"; + +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol"; + +contract ComponentOwnerService is + IComponentOwnerService, + CoreController +{ + ComponentController private _component; + + modifier onlyOwnerWithRoleFromComponent(IComponent component) { + address owner = component.getOwner(); + bytes32 requiredRole = _component.getRequiredRole(component.getType()); + require(_msgSender() == owner, "ERROR:COS-001:NOT_OWNER"); + require(_access.hasRole(requiredRole, owner), "ERROR:COS-002:REQUIRED_ROLE_MISSING"); + _; + } + + modifier onlyOwnerWithRole(uint256 id) { + IComponent component = _component.getComponent(id); + require(address(component) != address(0), "ERROR:COS-003:COMPONENT_ID_INVALID"); + + address owner = component.getOwner(); + bytes32 requiredRole = _component.getRequiredRole(_component.getComponentType(id)); + + require(_msgSender() == owner, "ERROR:COS-004:NOT_OWNER"); + require(_access.hasRole(requiredRole, owner), "ERROR:COS-005:REQUIRED_ROLE_MISSING"); + _; + } + + /** + * @dev This function is called after the contract is initialized and can only be called once. It sets the component controller contract address. + */ + function _afterInitialize() internal override onlyInitializing { + _component = ComponentController(_getContractAddress("Component")); + } + + /** + * @dev Propose a new component to be added to the system. + * @param component The component to be proposed. + */ + function propose(IComponent component) + external override + onlyOwnerWithRoleFromComponent(component) + { + _component.propose(component); + } + + /** + * @dev Stake function allows the owner to stake a specific id. + * + * @param id The id of the stake. + * + */ + function stake(uint256 id) + external override + onlyOwnerWithRole(id) + { + revert("ERROR:COS-006:IMPLEMENATION_MISSING"); + } + + /** + * @dev Allows the owner to withdraw a specific asset by its ID. + * @param id The ID of the asset to be withdrawn. + */ + function withdraw(uint256 id) + external override + onlyOwnerWithRole(id) + { + revert("ERROR:COS-007:IMPLEMENATION_MISSING"); + } + + + /** + * @dev Pauses a specific component with the given ID. + * @param id The ID of the component to be paused. + */ + function pause(uint256 id) + external override + onlyOwnerWithRole(id) + { + _component.pause(id); + } + + /** + * @dev Unpauses a component with the specified ID. + * @param id The ID of the component to unpause. + */ + function unpause(uint256 id) + external override + onlyOwnerWithRole(id) + { + _component.unpause(id); + } + + /** + * @dev Archives a component with the given ID from the component owner's inventory. + * @param id The ID of the component to be archived. + */ + function archive(uint256 id) + external override + onlyOwnerWithRole(id) + { + _component.archiveFromComponentOwner(id); + } } \ No newline at end of file diff --git a/contracts/services/InstanceOperatorService.sol b/contracts/services/InstanceOperatorService.sol index debe06f3..70c9ae56 100644 --- a/contracts/services/InstanceOperatorService.sol +++ b/contracts/services/InstanceOperatorService.sol @@ -32,6 +32,13 @@ contract InstanceOperatorService is _; } + /** + * @dev Performs the necessary setup after contract initialization. + * - Sets the component, pool, and treasury contracts. + * - Transfers ownership to the message sender. + * - Links the bundle module to the bundle token. + * - Sets the default admin role. + */ function _afterInitialize() internal override onlyInitializing { _component = ComponentController(_getContractAddress("Component")); _pool = PoolController(_getContractAddress("Pool")); @@ -42,11 +49,19 @@ contract InstanceOperatorService is _setDefaultAdminRole(); } + /** + * @dev Sets the default admin role for the contract calling this function. + * + * + */ function _setDefaultAdminRole() private { AccessController access = AccessController(_getContractAddress("Access")); access.setDefaultAdminRole(address(this)); } + /** + * @dev Links the Bundle module to the BundleToken contract. + */ function _linkBundleModuleToBundleToken() private { BundleToken token = BundleToken(_getContractAddress("BundleToken")); address bundleAddress = _getContractAddress("Bundle"); @@ -54,6 +69,13 @@ contract InstanceOperatorService is } /* registry */ + /** + * @dev Prepares a new release by calling the prepareRelease function from the Registry contract. + * @param _newRelease The hash of the new release. + * + * Requirements: + * - Caller must be the instance operator address. + */ function prepareRelease(bytes32 _newRelease) external override onlyInstanceOperatorAddress @@ -61,6 +83,11 @@ contract InstanceOperatorService is _registry.prepareRelease(_newRelease); } + /** + * @dev Registers a contract in the registry. + * @param _contractName The name of the contract to be registered. + * @param _contractAddress The address of the contract to be registered. + */ function register(bytes32 _contractName, address _contractAddress) external override onlyInstanceOperatorAddress @@ -68,6 +95,10 @@ contract InstanceOperatorService is _registry.register(_contractName, _contractAddress); } + /** + * @dev Deregisters a contract from the registry. + * @param _contractName The name of the contract to be deregistered. + */ function deregister(bytes32 _contractName) external override onlyInstanceOperatorAddress @@ -75,6 +106,12 @@ contract InstanceOperatorService is _registry.deregister(_contractName); } + /** + * @dev Registers a contract in a specific release. + * @param _release The release identifier where the contract will be registered. + * @param _contractName The name of the contract to be registered. + * @param _contractAddress The address of the contract to be registered. + */ function registerInRelease( bytes32 _release, bytes32 _contractName, @@ -86,6 +123,11 @@ contract InstanceOperatorService is _registry.registerInRelease(_release, _contractName, _contractAddress); } + /** + * @dev Deregisters a contract from a specific release in the registry. + * @param _release The identifier of the release to deregister the contract from. + * @param _contractName The name of the contract to be deregistered. + */ function deregisterInRelease(bytes32 _release, bytes32 _contractName) external override onlyInstanceOperatorAddress @@ -94,6 +136,10 @@ contract InstanceOperatorService is } /* access */ + /** + * @dev Adds a new role to the access control contract. + * @param _role The name of the new role to be added. + */ function createRole(bytes32 _role) external override onlyInstanceOperatorAddress @@ -101,6 +147,10 @@ contract InstanceOperatorService is _access.addRole(_role); } + /** + * @dev Invalidates a role. + * @param _role The role to invalidate. + */ function invalidateRole(bytes32 _role) external override onlyInstanceOperatorAddress @@ -108,6 +158,11 @@ contract InstanceOperatorService is _access.invalidateRole(_role); } + /** + * @dev Grants a role to a principal. + * @param role The role to be granted. + * @param principal The address of the principal to whom the role is granted. + */ function grantRole(bytes32 role, address principal) external override onlyInstanceOperatorAddress @@ -115,6 +170,11 @@ contract InstanceOperatorService is _access.grantRole(role, principal); } + /** + * @dev Revokes a role from a principal. + * @param role The role to revoke. + * @param principal The address of the principal to revoke the role from. + */ function revokeRole(bytes32 role, address principal) external override onlyInstanceOperatorAddress @@ -123,6 +183,10 @@ contract InstanceOperatorService is } /* component */ + /** + * @dev Approves a component with the given ID and sets its corresponding riskpool ID in the pool contract. + * @param id The ID of the component to be approved. + */ function approve(uint256 id) external override onlyInstanceOperatorAddress @@ -139,6 +203,10 @@ contract InstanceOperatorService is } } + /** + * @dev Declines a component with the specified ID. + * @param id The ID of the component to decline. + */ function decline(uint256 id) external override onlyInstanceOperatorAddress @@ -146,6 +214,10 @@ contract InstanceOperatorService is _component.decline(id); } + /** + * @dev Suspends the component with the given ID. + * @param id The ID of the component to be suspended. + */ function suspend(uint256 id) external override onlyInstanceOperatorAddress @@ -153,6 +225,10 @@ contract InstanceOperatorService is _component.suspend(id); } + /** + * @dev Resumes the execution of a paused component instance. + * @param id The ID of the component instance to be resumed. + */ function resume(uint256 id) external override onlyInstanceOperatorAddress @@ -160,6 +236,10 @@ contract InstanceOperatorService is _component.resume(id); } + /** + * @dev Archives a component with the given ID from the instance operator's address. + * @param id The ID of the component to be archived. + */ function archive(uint256 id) external override onlyInstanceOperatorAddress @@ -169,6 +249,11 @@ contract InstanceOperatorService is // service staking // TODO implement setDefaultStaking staking + /** + * @dev Sets the default staking for a specific component type. + * @param componentType The type of component to set the default staking for. + * @param data The data containing the default staking information. + */ function setDefaultStaking( uint16 componentType, bytes calldata data @@ -180,6 +265,11 @@ contract InstanceOperatorService is } // TODO implement adjustStakingRequirements staking + /** + * @dev Adjusts the staking requirements for a specific instance operator by providing the operator ID and the new staking requirements. + * @param id The ID of the instance operator whose staking requirements are being adjusted. + * @param data The new staking requirements encoded as bytes. + */ function adjustStakingRequirements( uint256 id, bytes calldata data @@ -191,6 +281,11 @@ contract InstanceOperatorService is } /* treasury */ + /** + * @dev Suspends the treasury functionality. + * + * + */ function suspendTreasury() external override onlyInstanceOperatorAddress @@ -198,6 +293,11 @@ contract InstanceOperatorService is _treasury.suspend(); } + /** + * @dev Resumes the treasury contract. + * + * + */ function resumeTreasury() external override onlyInstanceOperatorAddress @@ -205,6 +305,10 @@ contract InstanceOperatorService is _treasury.resume(); } + /** + * @dev Sets the wallet address of the instance operator. + * @param walletAddress The address of the wallet to be set. + */ function setInstanceWallet(address walletAddress) external override onlyInstanceOperatorAddress @@ -212,6 +316,11 @@ contract InstanceOperatorService is _treasury.setInstanceWallet(walletAddress); } + /** + * @dev Sets the wallet address for a specific risk pool. + * @param riskpoolId The ID of the risk pool to set the wallet address for. + * @param riskpoolWalletAddress The address of the wallet to set for the specified risk pool. + */ function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) external override onlyInstanceOperatorAddress @@ -219,6 +328,11 @@ contract InstanceOperatorService is _treasury.setRiskpoolWallet(riskpoolId, riskpoolWalletAddress); } + /** + * @dev Sets the ERC20 token address for a given product ID. + * @param productId The ID of the product to set the token address for. + * @param erc20Address The address of the ERC20 token to set. + */ function setProductToken(uint256 productId, address erc20Address) external override onlyInstanceOperatorAddress @@ -226,6 +340,14 @@ contract InstanceOperatorService is _treasury.setProductToken(productId, erc20Address); } + /** + * @dev Returns a FeeSpecification object created with the given parameters. + * @param componentId The ID of the component for which the fee is being created. + * @param fixedFee The fixed fee amount to be charged for the component. + * @param fractionalFee The fractional fee to be charged for the component. + * @param feeCalculationData The data required for calculating the fee. + * @return Returns a FeeSpecification object with the given parameters. + */ function createFeeSpecification( uint256 componentId, uint256 fixedFee, @@ -244,6 +366,13 @@ contract InstanceOperatorService is ); } + /** + * @dev Sets the premium fees for the treasury. + * @param feeSpec The fee specification struct containing the following parameters: + * - feeType: The type of fee (e.g. premium fee). + * - numerator: The numerator of the fee percentage. + * - denominator: The denominator of the fee percentage. + */ function setPremiumFees(ITreasury.FeeSpecification calldata feeSpec) external override onlyInstanceOperatorAddress @@ -251,6 +380,10 @@ contract InstanceOperatorService is _treasury.setPremiumFees(feeSpec); } + /** + * @dev Sets the fee specification for capital fees in the treasury contract. + * @param feeSpec The fee specification struct containing the details of the capital fees. + */ function setCapitalFees(ITreasury.FeeSpecification calldata feeSpec) external override onlyInstanceOperatorAddress diff --git a/contracts/services/InstanceService.sol b/contracts/services/InstanceService.sol index 29b21378..4a273735 100644 --- a/contracts/services/InstanceService.sol +++ b/contracts/services/InstanceService.sol @@ -50,6 +50,10 @@ contract InstanceService is mapping(uint256 /* chain id */ => string /* chain name */) private _chainName; + /** + * @dev Internal function that is called after initialization is complete. It sets the bundle, component, policy, pool, and treasury controllers by retrieving their contract addresses. It also sets the chain names. + * + */ function _afterInitialize() internal override onlyInitializing { _bundle = BundleController(_getContractAddress(BUNDLE_NAME)); _component = ComponentController(_getContractAddress(COMPONENT_NAME)); @@ -60,6 +64,11 @@ contract InstanceService is _setChainNames(); } + /** + * @dev Sets the names for several blockchain networks by assigning them to their respective chain IDs. + * + * Sets the names for the Ethereum Mainnet/ETH, Goerli/ETH, Ganache, Gnosis/xDai, Sokol/SPOA, Polygon Mainnet/MATIC, Mumbai/MATIC, Avalanche C-Chain/AVAX and Avalanche Fuji Testnet/AVAX blockchain networks by assigning them to their respective chain IDs. + */ function _setChainNames() internal { _chainName[1] = "Ethereum Mainnet/ETH"; _chainName[5] = "Goerli/ETH"; @@ -73,14 +82,28 @@ contract InstanceService is } /* instance service */ + /** + * @dev Returns the chain ID of the current blockchain. + * @return chainId The ID of the current blockchain. + */ function getChainId() public override view returns(uint256 chainId) { chainId = block.chainid; } + /** + * @dev Returns the name of the chain based on its ID. + * + * @return chainName The name of the chain as a string. + */ function getChainName() public override view returns(string memory chainName) { chainName = _chainName[block.chainid]; } + /** + * @dev Returns the instance ID of the contract, which is a hash of the chain ID and the registry address. + * + * @return instanceId The instance ID of the contract. + */ function getInstanceId() public override view returns(bytes32 instanceId) { instanceId = keccak256( abi.encodePacked( @@ -88,62 +111,122 @@ contract InstanceService is address(_registry))); } + /** + * @dev Returns the address of the current instance operator. + * @return The address of the instance operator. + */ function getInstanceOperator() external override view returns(address) { InstanceOperatorService ios = InstanceOperatorService(_getContractAddress(INSTANCE_OPERATOR_SERVICE_NAME)); return ios.owner(); } /* registry */ + /** + * @dev Returns the address of the Component Owner Service contract. + * @return service The Component Owner Service contract address. + */ function getComponentOwnerService() external override view returns(IComponentOwnerService service) { return IComponentOwnerService(_getContractAddress(COMPONENT_OWNER_SERVICE_NAME)); } + /** + * @dev Returns the instance operator service contract address. + * @return service The instance operator service contract address. + */ function getInstanceOperatorService() external override view returns(IInstanceOperatorService service) { return IInstanceOperatorService(_getContractAddress(INSTANCE_OPERATOR_SERVICE_NAME)); } + /** + * @dev Returns the Oracle Service contract instance. + * @return service The instance of the Oracle Service contract. + */ function getOracleService() external override view returns(IOracleService service) { return IOracleService(_getContractAddress(ORACLE_SERVICE_NAME)); } + /** + * @dev Returns the address of the Product Service contract. + * @return service The Product Service contract address. + */ function getProductService() external override view returns(IProductService service) { return IProductService(_getContractAddress(PRODUCT_SERVICE_NAME)); } + /** + * @dev Returns the IRiskpoolService contract instance. + * @return service The IRiskpoolService contract instance. + */ function getRiskpoolService() external override view returns(IRiskpoolService service) { return IRiskpoolService(_getContractAddress(RISKPOOL_SERVICE_NAME)); } /* registry */ + /** + * @dev Returns the current instance of the IRegistry contract. + * @return service The IRegistry contract instance. + */ function getRegistry() external view returns(IRegistry service) { return _registry; } + /** + * @dev Returns the number of contracts registered in the registry. + * @return numberOfContracts The total number of contracts registered in the registry. + */ function contracts() external view override returns (uint256 numberOfContracts) { numberOfContracts = _registry.contracts(); } + /** + * @dev Returns the name of the contract at the specified index in the registry. + * @param idx The index of the contract. + * @return name The name of the contract as a bytes32 value. + */ function contractName(uint256 idx) external view override returns (bytes32 name) { name = _registry.contractName(idx); } /* access */ + /** + * @dev Returns the default admin role for the AccessControl contract. + * + * @return The default admin role as a bytes32 value. + */ function getDefaultAdminRole() external override view returns(bytes32) { return _access.getDefaultAdminRole(); } + /** + * @dev Returns the role identifier of the product owner role. + * @return The role identifier of the product owner role. + */ function getProductOwnerRole() external override view returns(bytes32) { return _access.getProductOwnerRole(); } + /** + * @dev Returns the role identifier for the oracle provider role. + * @return The role identifier for the oracle provider role. + */ function getOracleProviderRole() external override view returns(bytes32) { return _access.getOracleProviderRole(); } + /** + * @dev Returns the role identifier for the Riskpool Keeper role. + * @return The role identifier for the Riskpool Keeper role as a bytes32 value. + */ function getRiskpoolKeeperRole() external override view returns(bytes32) { return _access.getRiskpoolKeeperRole(); } + /** + * @dev Checks if an address has a specific role. + * @param role The bytes32 identifier of the role being checked. + * @param principal The address of the account being checked for the role. + * @return A boolean indicating whether the address has the specified role or not. + */ function hasRole(bytes32 role, address principal) external override view returns(bool) @@ -152,22 +235,44 @@ contract InstanceService is } /* component */ + /** + * @dev Returns the number of products in the component contract. + * @return products The number of products in the component contract. + */ function products() external override view returns(uint256) { return _component.products(); } + /** + * @dev Returns the number of oracles registered in the component. + * @return The number of oracles registered in the component. + */ function oracles() external override view returns(uint256) { return _component.oracles(); } + /** + * @dev Returns the number of risk pools in the component. + * @return The number of risk pools as an unsigned integer. + */ function riskpools() external override view returns(uint256) { return _component.riskpools(); } + /** + * @dev Returns the component ID of a given component address. + * @param componentAddress The address of the component. + * @return componentId The ID of the component. + */ function getComponentId(address componentAddress) external override view returns(uint256 componentId) { return _component.getComponentId(componentAddress); } + /** + * @dev Returns the type of a component given its ID. + * @param componentId The ID of the component. + * @return componentType The type of the component. + */ function getComponentType(uint256 componentId) external override view @@ -176,6 +281,11 @@ contract InstanceService is return _component.getComponentType(componentId); } + /** + * @dev Returns the current state of a specific component. + * @param componentId The ID of the component to retrieve the state for. + * @return componentState The current state of the specified component. + */ function getComponentState(uint256 componentId) external override view @@ -184,23 +294,48 @@ contract InstanceService is componentState = _component.getComponentState(componentId); } + /** + * @dev Returns the component with the specified ID. + * @param id The ID of the component to retrieve. + * @return The component with the specified ID. + */ function getComponent(uint256 id) external override view returns(IComponent) { return _component.getComponent(id); } + /** + * @dev Returns the oracle ID at the specified index. + * @param idx The index of the oracle ID to retrieve. + * @return oracleId The ID of the oracle at the specified index. + */ function getOracleId(uint256 idx) public view returns (uint256 oracleId) { return _component.getOracleId(idx); } + /** + * @dev Returns the riskpool ID for the given index. + * @param idx The index of the riskpool ID to retrieve. + * @return riskpoolId The ID of the riskpool. + */ function getRiskpoolId(uint256 idx) public view returns (uint256 riskpoolId) { return _component.getRiskpoolId(idx); } + /** + * @dev Returns the product ID of the component at the given index. + * @param idx The index of the component. + * @return productId The product ID of the component. + */ function getProductId(uint256 idx) public view returns (uint256 productId) { return _component.getProductId(idx); } /* service staking */ + /** + * @dev Returns the staking requirements for a specific ID. + * @param id The ID of the staking requirements to retrieve. + * @return data The staking requirements data as a bytes array. + */ function getStakingRequirements(uint256 id) external override pure @@ -209,6 +344,11 @@ contract InstanceService is revert("ERROR:IS-001:IMPLEMENATION_MISSING"); } + /** + * @dev Returns the staked assets for a given ID. + * @param id The ID of the staked assets. + * @return data The staked assets data in bytes format. + */ function getStakedAssets(uint256 id) external override pure @@ -218,110 +358,239 @@ contract InstanceService is } /* policy */ + /** + * @dev Returns the number of process IDs in the policy contract. + * @return numberOfProcessIds The number of process IDs. + */ function processIds() external override view returns(uint256 numberOfProcessIds) { numberOfProcessIds = _policy.processIds(); } + /** + * @dev Returns the metadata associated with a given business process key. + * @param bpKey The business process key for which to retrieve the metadata. + * @return metadata The metadata associated with the given business process key. + */ function getMetadata(bytes32 bpKey) external override view returns(IPolicy.Metadata memory metadata) { metadata = _policy.getMetadata(bpKey); } + /** + * @dev Returns the application data associated with the given process ID. + * @param processId The ID of the process to retrieve the application data for. + * @return application The application data associated with the given process ID. + */ function getApplication(bytes32 processId) external override view returns(IPolicy.Application memory application) { application = _policy.getApplication(processId); } + /** + * @dev Returns the policy associated with the given process ID. + * @param processId The ID of the process. + * @return policy The policy associated with the given process ID. + */ function getPolicy(bytes32 processId) external override view returns(IPolicy.Policy memory policy) { policy = _policy.getPolicy(processId); } + /** + * @dev Returns the number of claims associated with a given process ID. + * @param processId The ID of the process to retrieve the number of claims for. + * @return numberOfClaims The number of claims associated with the given process ID. + */ function claims(bytes32 processId) external override view returns(uint256 numberOfClaims) { numberOfClaims = _policy.getNumberOfClaims(processId); } + /** + * @dev Returns the number of payouts for a given processId. + * @param processId The unique identifier of the process. + * @return numberOfPayouts The total number of payouts for the given processId. + */ function payouts(bytes32 processId) external override view returns(uint256 numberOfPayouts) { numberOfPayouts = _policy.getNumberOfPayouts(processId); } + /** + * @dev Returns the claim with the given claimId for the specified processId. + * @param processId The unique identifier of the process. + * @param claimId The unique identifier of the claim. + * @return claim The claim data, including the claimId, processId, claimant, amount, and status. + */ function getClaim(bytes32 processId, uint256 claimId) external override view returns (IPolicy.Claim memory claim) { claim = _policy.getClaim(processId, claimId); } + /** + * @dev Returns the information of a specific payout. + * @param processId The ID of the process. + * @param payoutId The ID of the payout. + * @return payout The payout information, including the ID, amount, and recipient. + */ function getPayout(bytes32 processId, uint256 payoutId) external override view returns (IPolicy.Payout memory payout) { payout = _policy.getPayout(processId, payoutId); } /* riskpool */ + /** + * @dev Returns the risk pool with the given ID. + * @param riskpoolId The ID of the risk pool to retrieve. + * @return riskPool The risk pool with the given ID. + */ function getRiskpool(uint256 riskpoolId) external override view returns(IPool.Pool memory riskPool) { return _pool.getRiskpool(riskpoolId); } + /** + * @dev Returns the full collateralization level of the pool. + * @return The full collateralization level as a uint256 value. + */ function getFullCollateralizationLevel() external override view returns (uint256) { return _pool.getFullCollateralizationLevel(); } + /** + * @dev Returns the capital amount of a given risk pool. + * @param riskpoolId The ID of the risk pool to retrieve the capital amount from. + * @return capitalAmount The amount of capital in the risk pool. + */ function getCapital(uint256 riskpoolId) external override view returns(uint256 capitalAmount) { return _pool.getRiskpool(riskpoolId).capital; } + /** + * @dev Returns the total value locked in a specific risk pool. + * @param riskpoolId The ID of the risk pool to query. + * @return totalValueLockedAmount The amount of tokens locked in the specified risk pool. + */ function getTotalValueLocked(uint256 riskpoolId) external override view returns(uint256 totalValueLockedAmount) { return _pool.getRiskpool(riskpoolId).lockedCapital; } + /** + * @dev Returns the available capacity of a risk pool. + * @param riskpoolId The ID of the risk pool to get the capacity for. + * @return capacityAmount The available capacity of the risk pool. + */ function getCapacity(uint256 riskpoolId) external override view returns(uint256 capacityAmount) { IPool.Pool memory pool = _pool.getRiskpool(riskpoolId); return pool.capital - pool.lockedCapital; } + /** + * @dev Returns the balance amount of a specific risk pool. + * @param riskpoolId The ID of the risk pool to get the balance amount from. + * @return balanceAmount The balance amount of the specified risk pool. + */ function getBalance(uint256 riskpoolId) external override view returns(uint256 balanceAmount) { return _pool.getRiskpool(riskpoolId).balance; } + /** + * @dev Returns the number of active bundles for a given risk pool. + * @param riskpoolId The ID of the risk pool. + * @return numberOfActiveBundles The number of active bundles for the specified risk pool. + */ function activeBundles(uint256 riskpoolId) external override view returns(uint256 numberOfActiveBundles) { return _pool.activeBundles(riskpoolId); } + /** + * @dev Returns the active bundle ID for a given risk pool and bundle index. + * @param riskpoolId The ID of the risk pool. + * @param bundleIdx The index of the bundle within the risk pool. + * @return bundleId The ID of the active bundle. + */ function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external override view returns(uint256 bundleId) { return _pool.getActiveBundleId(riskpoolId, bundleIdx); } + /** + * @dev Returns the maximum number of active bundles for a given risk pool ID. + * @param riskpoolId The ID of the risk pool to query. + * @return maximumNumberOfActiveBundles The maximum number of active bundles for the given risk pool ID. + */ function getMaximumNumberOfActiveBundles(uint256 riskpoolId) external override view returns(uint256 maximumNumberOfActiveBundles) { return _pool.getMaximumNumberOfActiveBundles(riskpoolId); } /* bundle */ + /** + * @dev Returns the bundle token contract address. + * @return token The bundle token contract address. + */ function getBundleToken() external override view returns(IBundleToken token) { BundleToken bundleToken = _bundle.getToken(); token = IBundleToken(bundleToken); } + /** + * @dev Returns the bundle with the given ID. + * @param bundleId The ID of the bundle to retrieve. + * @return bundle The bundle with the given ID. + */ function getBundle(uint256 bundleId) external override view returns (IBundle.Bundle memory bundle) { bundle = _bundle.getBundle(bundleId); } + /** + * @dev Returns the number of bundles in the `_bundle` contract. + * @return The number of bundles as a uint256 value. + */ function bundles() external override view returns (uint256) { return _bundle.bundles(); } + /** + * @dev Returns the number of unburnt bundles for a given risk pool ID. + * @param riskpoolId The ID of the risk pool to check. + * @return numberOfUnburntBundles The number of unburnt bundles for the given risk pool ID. + */ function unburntBundles(uint256 riskpoolId) external override view returns(uint256 numberOfUnburntBundles) { numberOfUnburntBundles = _bundle.unburntBundles(riskpoolId); } /* treasury */ + /** + * @dev Returns the address of the treasury contract. + * + * @return The address of the treasury contract. + */ function getTreasuryAddress() external override view returns(address) { return address(_treasury); } + /** + * @dev Returns the address of the instance wallet associated with the treasury. + * + * @return The address of the instance wallet. + */ function getInstanceWallet() external override view returns(address) { return _treasury.getInstanceWallet(); } + /** + * @dev Returns the wallet address of the specified riskpool. + * @param riskpoolId The ID of the riskpool to retrieve the wallet address for. + * @return The address of the wallet associated with the specified riskpool. + */ function getRiskpoolWallet(uint256 riskpoolId) external override view returns(address) { return _treasury.getRiskpoolWallet(riskpoolId); } + /** + * @dev Returns the IERC20 token associated with the given component ID. + * @param componentId The ID of the component for which to get the associated token. + * @return The IERC20 token associated with the given component ID. + */ function getComponentToken(uint256 componentId) external override view returns(IERC20) { return _treasury.getComponentToken(componentId); } + /** + * @dev Returns the fraction of the treasury fee expressed in full units. + * + * @return The fraction of the treasury fee expressed in full units. + */ function getFeeFractionFullUnit() external override view returns(uint256) { return _treasury.getFractionFullUnit(); } diff --git a/contracts/services/OracleService.sol b/contracts/services/OracleService.sol index 00125225..96ae5fe1 100644 --- a/contracts/services/OracleService.sol +++ b/contracts/services/OracleService.sol @@ -13,10 +13,18 @@ contract OracleService is { IQuery private _query; + /** + * @dev Sets the `_query` variable to an instance of the `IQuery` contract. + */ function _afterInitialize() internal override onlyInitializing { _query = IQuery(_getContractAddress("Query")); } + /** + * @dev Allows a registered oracle to respond to a data request. + * @param _requestId The ID of the data request. + * @param _data The data requested by the smart contract. + */ function respond(uint256 _requestId, bytes calldata _data) external override { // function below enforces msg.sender to be a registered oracle _query.respond(_requestId, _msgSender(), _data); diff --git a/contracts/services/ProductService.sol b/contracts/services/ProductService.sol index cbdf790d..8478edde 100644 --- a/contracts/services/ProductService.sol +++ b/contracts/services/ProductService.sol @@ -15,8 +15,15 @@ contract ProductService is bytes32 public constant NAME = "ProductService"; // solhint-disable-next-line no-empty-blocks + /** + * @dev Constructor function that initializes the contract with a registry address. + * @param _registry The address of the registry contract. + */ constructor(address _registry) WithRegistry(_registry) {} + /** + * @dev Fallback function that ensures the caller is a registered product and authorized to execute the delegated policy flow. + */ fallback() external { // getAuthorizationStatus enforces msg.sender to be a registered product (,bool isAuthorized, address policyFlow) = _license().getAuthorizationStatus(_msgSender()); @@ -35,6 +42,10 @@ contract ProductService is * This function is a 1:1 copy of _delegate from * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.6/contracts/proxy/Proxy.sol */ + /** + * @dev Delegates the current call to `implementation`. + * @param implementation Address of the contract to delegatecall. + */ function _delegate(address implementation) internal { assembly { // Copy msg.data. We take full control of memory in this inline assembly @@ -60,6 +71,11 @@ contract ProductService is } } + /** + * @dev Returns the instance of the License contract. + * + * @return license An instance of the ILicense interface representing the License contract. + */ function _license() internal view returns (ILicense) { return ILicense(registry.getContract("License")); } diff --git a/contracts/services/RiskpoolService.sol b/contracts/services/RiskpoolService.sol index bd0aaafa..42edf50d 100644 --- a/contracts/services/RiskpoolService.sol +++ b/contracts/services/RiskpoolService.sol @@ -85,6 +85,11 @@ contract RiskpoolService is } + /** + * @dev Sets the addresses of the BundleController, ComponentController, PoolController, and TreasuryModule contracts. + * + * + */ function _afterInitialize() internal override onlyInitializing @@ -96,6 +101,13 @@ contract RiskpoolService is } + /** + * @dev Registers a new risk pool with the given parameters. + * @param wallet The address of the wallet that will hold the collateral for the risk pool. + * @param erc20Token The address of the ERC20 token that will be used as collateral. + * @param collateralizationLevel The percentage of collateral required for the risk pool. + * @param sumOfSumInsuredCap The maximum sum of all insured amounts for the risk pool. + */ function registerRiskpool( address wallet, address erc20Token, @@ -115,6 +127,13 @@ contract RiskpoolService is ); } + /** + * @dev Creates a new bundle with the given parameters and adds it to the active set of the riskpool. + * @param owner The address of the owner of the bundle. + * @param filter The filter applied to the bundle. + * @param initialCapital The initial capital of the bundle. + * @return bundleId The ID of the newly created bundle. + */ function createBundle( address owner, bytes calldata filter, @@ -136,6 +155,12 @@ contract RiskpoolService is } + /** + * @dev This function allows a user to fund a bundle with a specified amount. + * @param bundleId The ID of the bundle to be funded. + * @param amount The amount of tokens to be funded. + * @return netAmount The net amount of tokens that were funded after deducting fees. + */ function fundBundle(uint256 bundleId, uint256 amount) external override onlyOwningRiskpool(bundleId, true) @@ -156,6 +181,12 @@ contract RiskpoolService is } + /** + * @dev Defunds a bundle by withdrawing a specified amount of tokens from it. + * @param bundleId The ID of the bundle to be defunded. + * @param amount The amount of tokens to be withdrawn from the bundle. + * @return netAmount The net amount of tokens withdrawn from the bundle after deducting any fees. + */ function defundBundle(uint256 bundleId, uint256 amount) external override onlyOwningRiskpool(bundleId, true) @@ -176,6 +207,10 @@ contract RiskpoolService is } + /** + * @dev Locks a bundle, preventing it from being traded or redeemed. + * @param bundleId The ID of the bundle to be locked. + */ function lockBundle(uint256 bundleId) external override onlyOwningRiskpool(bundleId, true) @@ -186,6 +221,10 @@ contract RiskpoolService is } + /** + * @dev Unlocks a bundle for trading by adding its ID to the active set of a risk pool and unlocking the bundle. + * @param bundleId The ID of the bundle to be unlocked. + */ function unlockBundle(uint256 bundleId) external override onlyOwningRiskpool(bundleId, true) @@ -196,6 +235,10 @@ contract RiskpoolService is } + /** + * @dev Closes a bundle and removes it from the active set of the owning riskpool. + * @param bundleId The ID of the bundle to be closed. + */ function closeBundle(uint256 bundleId) external override onlyOwningRiskpool(bundleId, true) @@ -209,6 +252,10 @@ contract RiskpoolService is _bundle.close(bundleId); } + /** + * @dev Burns a closed bundle, withdrawing its remaining balance and defunding it from the riskpool and the pool. + * @param bundleId The ID of the bundle to burn. + */ function burnBundle(uint256 bundleId) external override onlyOwningRiskpool(bundleId, true) @@ -226,6 +273,12 @@ contract RiskpoolService is _bundle.burn(bundleId); } + /** + * @dev Collateralizes a policy by locking a specified amount of collateral for a given bundle and process ID. + * @param bundleId The ID of the bundle to which the policy belongs. + * @param processId The ID of the process associated with the policy. + * @param collateralAmount The amount of collateral to be locked for the policy. + */ function collateralizePolicy(uint256 bundleId, bytes32 processId, uint256 collateralAmount) external override onlyOwningRiskpool(bundleId, true) @@ -233,6 +286,12 @@ contract RiskpoolService is _bundle.collateralizePolicy(bundleId, processId, collateralAmount); } + /** + * @dev Processes a premium payment for a specific bundle. + * @param bundleId The ID of the bundle for which the premium is being paid. + * @param processId The ID of the premium payment process. + * @param amount The amount of the premium payment in wei. + */ function processPremium(uint256 bundleId, bytes32 processId, uint256 amount) external override onlyOwningRiskpool(bundleId, true) @@ -240,6 +299,12 @@ contract RiskpoolService is _bundle.processPremium(bundleId, processId, amount); } + /** + * @dev Processes a payout for a specific bundle. + * @param bundleId The ID of the bundle for which to process the payout. + * @param processId The ID of the payout process. + * @param amount The amount to be paid out. + */ function processPayout(uint256 bundleId, bytes32 processId, uint256 amount) external override onlyOwningRiskpool(bundleId, true) @@ -247,6 +312,12 @@ contract RiskpoolService is _bundle.processPayout(bundleId, processId, amount); } + /** + * @dev Releases a policy for a given bundle and process ID. + * @param bundleId The ID of the bundle containing the policy to be released. + * @param processId The ID of the process associated with the policy to be released. + * @return collateralAmount The amount of collateral released for the policy. + */ function releasePolicy(uint256 bundleId, bytes32 processId) external override onlyOwningRiskpool(bundleId, false) @@ -255,6 +326,11 @@ contract RiskpoolService is collateralAmount = _bundle.releasePolicy(bundleId, processId); } + /** + * @dev Sets the maximum number of active bundles for a given riskpool. + * @param riskpoolId The ID of the riskpool. + * @param maxNumberOfActiveBundles The maximum number of active bundles to be set. + */ function setMaximumNumberOfActiveBundles(uint256 riskpoolId, uint256 maxNumberOfActiveBundles) external override onlyOwningRiskpoolId(riskpoolId, true) diff --git a/contracts/shared/CoreController.sol b/contracts/shared/CoreController.sol index ef1ce491..fa115f43 100644 --- a/contracts/shared/CoreController.sol +++ b/contracts/shared/CoreController.sol @@ -14,6 +14,9 @@ contract CoreController is IRegistry internal _registry; IAccess internal _access; + /** + * @dev Constructor function that disables initializers. + */ constructor () { _disableInitializers(); } @@ -40,6 +43,10 @@ contract CoreController is _; } + /** + * @dev Initializes the contract with the provided registry address. + * @param registry The address of the registry contract. + */ function initialize(address registry) public initializer { _registry = IRegistry(registry); if (_getName() != "Access") { _access = IAccess(_getContractAddress("Access")); } @@ -47,10 +54,23 @@ contract CoreController is _afterInitialize(); } + /** + * @dev Returns the name of the contract. + * @return name The name of the contract as a bytes32 value. + */ function _getName() internal virtual pure returns(bytes32) { return ""; } + /** + * @dev This function is called after the contract is initialized and can be used to perform additional setup. + * @notice This function should only be called internally by the contract during initialization. + */ function _afterInitialize() internal virtual onlyInitializing {} + /** + * @dev Returns the address of a registered contract by its name. + * @param contractName The name of the contract to retrieve. + * @return contractAddress The address of the requested contract. + */ function _getContractAddress(bytes32 contractName) internal view returns (address contractAddress) { contractAddress = _registry.getContract(contractName); require( diff --git a/contracts/shared/CoreProxy.sol b/contracts/shared/CoreProxy.sol index c5ffae26..b096c295 100644 --- a/contracts/shared/CoreProxy.sol +++ b/contracts/shared/CoreProxy.sol @@ -1,43 +1,59 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - - -import "@etherisc/gif-interface/contracts/shared/ICoreProxy.sol"; -import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; - -contract CoreProxy is - ICoreProxy, - ERC1967Proxy -{ - - modifier onlyAdmin() { - require( - msg.sender == _getAdmin(), - "ERROR:CRP-001:NOT_ADMIN"); - _; - } - - constructor(address _controller, bytes memory encoded_initializer) - ERC1967Proxy(_controller, encoded_initializer) - { - _changeAdmin(msg.sender); - } - - function implementation() external view returns (address) { - return _implementation(); - } - - function upgradeToAndCall(address newImplementation, bytes calldata data) - external - payable - onlyAdmin - { - address oldImplementation = _implementation(); - - _upgradeToAndCall(newImplementation, data, true); - - emit LogCoreContractUpgraded( - oldImplementation, - newImplementation); - } -} +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + + +import "@etherisc/gif-interface/contracts/shared/ICoreProxy.sol"; +import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; + +contract CoreProxy is + ICoreProxy, + ERC1967Proxy +{ + + modifier onlyAdmin() { + require( + msg.sender == _getAdmin(), + "ERROR:CRP-001:NOT_ADMIN"); + _; + } + + /** + * @dev Constructor function that creates a new instance of the contract. + * @param _controller The address of the controller contract. + * @param encoded_initializer The encoded initializer data. + */ + constructor(address _controller, bytes memory encoded_initializer) + ERC1967Proxy(_controller, encoded_initializer) + { + _changeAdmin(msg.sender); + } + + /** + * @dev Returns the address of the current implementation contract. + * @return implementation The address of the current implementation contract. + */ + function implementation() external view returns (address) { + return _implementation(); + } + + /** + * @dev Upgrades the contract to a new implementation and forwards a function call to it. + * @param newImplementation The address of the new implementation contract. + * @param data The data payload to be forwarded to the new implementation. + * @notice This function emits 1 events: + * - LogCoreContractUpgraded + */ + function upgradeToAndCall(address newImplementation, bytes calldata data) + external + payable + onlyAdmin + { + address oldImplementation = _implementation(); + + _upgradeToAndCall(newImplementation, data, true); + + emit LogCoreContractUpgraded( + oldImplementation, + newImplementation); + } +} diff --git a/contracts/shared/TransferHelper.sol b/contracts/shared/TransferHelper.sol index 558e1dd7..a405673a 100644 --- a/contracts/shared/TransferHelper.sol +++ b/contracts/shared/TransferHelper.sol @@ -15,6 +15,22 @@ library TransferHelper { event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); + /** + * @dev Executes a transferFrom function call on an ERC20 token contract, after performing input validation. + * @param token The ERC20 token contract to transfer from. + * @param from The address to transfer tokens from. + * @param to The address to transfer tokens to. + * @param value The amount of tokens to transfer. + * @return success A boolean indicating whether the transfer was successful or not. + * + * Emits a LogTransferHelperInputValidation1Failed event if the input validation step 1 fails. + * Emits a LogTransferHelperInputValidation2Failed event if the input validation step 2 fails. + * Emits a LogTransferHelperCallFailed event if the low-level call to transferFrom fails. + * @notice This function emits 3 events: + * - LogTransferHelperInputValidation1Failed + * - LogTransferHelperInputValidation2Failed + * - LogTransferHelperCallFailed + */ function unifiedTransferFrom( IERC20 token, address from, diff --git a/contracts/shared/WithRegistry.sol b/contracts/shared/WithRegistry.sol index 831b6c88..cb8561a9 100644 --- a/contracts/shared/WithRegistry.sol +++ b/contracts/shared/WithRegistry.sol @@ -45,10 +45,21 @@ contract WithRegistry { _; } + /** + * @dev Constructor function that sets the address of the registry contract. + * @param _registry The address of the registry contract. + */ constructor(address _registry) { registry = IRegistry(_registry); } + /** + * @dev Returns the address of a contract registered in the registry by its name. + * + * @param _contractName The name of the contract to retrieve. + * + * @return _addr The address of the contract. + */ function getContractFromRegistry(bytes32 _contractName) public // override @@ -58,6 +69,12 @@ contract WithRegistry { _addr = registry.getContract(_contractName); } + /** + * @dev Returns the address of a contract with a given name in a specific release of the registry. + * @param _release The release version of the registry where the contract is stored. + * @param _contractName The name of the contract to retrieve. + * @return _addr The address of the contract in the given release. + */ function getContractInReleaseFromRegistry(bytes32 _release, bytes32 _contractName) internal view @@ -66,6 +83,10 @@ contract WithRegistry { _addr = registry.getContractInRelease(_release, _contractName); } + /** + * @dev Returns the current release identifier from the registry. + * @return _release The release identifier as a bytes32 value. + */ function getReleaseFromRegistry() internal view returns (bytes32 _release) { _release = registry.getRelease(); } diff --git a/contracts/test/TestCoin.sol b/contracts/test/TestCoin.sol index 460d58fe..7fab36f3 100644 --- a/contracts/test/TestCoin.sol +++ b/contracts/test/TestCoin.sol @@ -1,38 +1,44 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - -contract TestCoin is ERC20 { - - string public constant NAME = "Test Dummy"; - string public constant SYMBOL = "TDY"; - - uint256 public constant INITIAL_SUPPLY = 10**24; - - constructor() - ERC20(NAME, SYMBOL) - { - _mint( - _msgSender(), - INITIAL_SUPPLY - ); - } -} - -contract TestCoinX is ERC20 { - - string public constant NAME = "Test Dummy X"; - string public constant SYMBOL = "TDX"; - - uint256 public constant INITIAL_SUPPLY = 10**24; - - constructor() - ERC20(NAME, SYMBOL) - { - _mint( - _msgSender(), - INITIAL_SUPPLY - ); - } -} +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract TestCoin is ERC20 { + + string public constant NAME = "Test Dummy"; + string public constant SYMBOL = "TDY"; + + uint256 public constant INITIAL_SUPPLY = 10**24; + + /** + * @dev Constructor function that initializes the ERC20 token with a given name, symbol, and initial supply. + */ + constructor() + ERC20(NAME, SYMBOL) + { + _mint( + _msgSender(), + INITIAL_SUPPLY + ); + } +} + +contract TestCoinX is ERC20 { + + string public constant NAME = "Test Dummy X"; + string public constant SYMBOL = "TDX"; + + uint256 public constant INITIAL_SUPPLY = 10**24; + + /** + * @dev Constructor function that creates a new instance of the ERC20 token with the given name and symbol. It also mints the initial supply and assigns it to the deployer's address. + */ + constructor() + ERC20(NAME, SYMBOL) + { + _mint( + _msgSender(), + INITIAL_SUPPLY + ); + } +} diff --git a/contracts/test/TestCoinAlternativeImplementation.sol b/contracts/test/TestCoinAlternativeImplementation.sol index 5d444416..36b21f28 100644 --- a/contracts/test/TestCoinAlternativeImplementation.sol +++ b/contracts/test/TestCoinAlternativeImplementation.sol @@ -1,38 +1,54 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - -contract TestCoinAlternativeImplementation is ERC20 { - - string public constant NAME = "Test Alternative Coin"; - string public constant SYMBOL = "TAC"; - - uint256 public constant INITIAL_SUPPLY = 10**24; - - constructor() - ERC20(NAME, SYMBOL) - { - _mint( - _msgSender(), - INITIAL_SUPPLY - ); - } - - // inspired by ZRX transfer implementation - // see https://soliditydeveloper.com/safe-erc20 - function transferFrom(address _from, address _to, uint _value) - public virtual override returns (bool) - { - if (balanceOf(_from) >= _value // check sufficient balance - && allowance(_from, msg.sender) >= _value // check sufficient allowance - && balanceOf(_to) + _value >= balanceOf(_to) // check overflow - && _from != address(0) // sender not zero address - && _to != address(0)) // recipient not zero address - { - return super.transferFrom(_from, _to, _value); // should never fail now - } else { - return false; - } - } -} +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract TestCoinAlternativeImplementation is ERC20 { + + string public constant NAME = "Test Alternative Coin"; + string public constant SYMBOL = "TAC"; + + uint256 public constant INITIAL_SUPPLY = 10**24; + + /** + * @dev Constructor function that creates a new ERC20 token with the given name and symbol, and mints the initial supply to the sender. + */ + constructor() + ERC20(NAME, SYMBOL) + { + _mint( + _msgSender(), + INITIAL_SUPPLY + ); + } + + // inspired by ZRX transfer implementation + // see https://soliditydeveloper.com/safe-erc20 + /** + * @dev Transfer tokens from one address to another. + * @param _from The address from which to transfer the tokens. + * @param _to The address to which to transfer the tokens. + * @param _value The amount of tokens to transfer. + * @return A boolean value indicating whether the transfer was successful or not. + * + * Requirements: + * - The sender must have a balance of at least `_value`. + * - The sender must have allowance for `_spender`'s tokens of at least `_value`. + * - The balance of `_to` must not be less than the sum of the balance and `_value`. + * - Neither `_from` nor `_to` can be the zero address. + */ + function transferFrom(address _from, address _to, uint _value) + public virtual override returns (bool) + { + if (balanceOf(_from) >= _value // check sufficient balance + && allowance(_from, msg.sender) >= _value // check sufficient allowance + && balanceOf(_to) + _value >= balanceOf(_to) // check overflow + && _from != address(0) // sender not zero address + && _to != address(0)) // recipient not zero address + { + return super.transferFrom(_from, _to, _value); // should never fail now + } else { + return false; + } + } +} diff --git a/contracts/test/TestCompromisedProduct.sol b/contracts/test/TestCompromisedProduct.sol index 6d2ecbc2..754a7ed7 100644 --- a/contracts/test/TestCompromisedProduct.sol +++ b/contracts/test/TestCompromisedProduct.sol @@ -1,183 +1,327 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@etherisc/gif-interface/contracts/components/IComponent.sol"; -import "@etherisc/gif-interface/contracts/components/IProduct.sol"; - -import "@etherisc/gif-interface/contracts/modules/IAccess.sol"; -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; -import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; - -import "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol"; -import "@etherisc/gif-interface/contracts/services/IProductService.sol"; -import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; - -import "@openzeppelin/contracts/access/Ownable.sol"; -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - -/* -the TestCompromisedProduct claims to be an existing product that connects to an existing -riskpool with the goal to create fraud claims that lead to fraud payouts whith the intention -to drain the riskpool. - -for this the compromised product claims -- to be a product -- to be in state active (independent of an approval step by the instance operator) -*/ -contract TestCompromisedProduct is - IProduct, - Ownable -{ - IComponent.ComponentState public constant FAKE_STATE = IComponent.ComponentState.Active; - - bytes32 public constant POLICY_FLOW = "PolicyDefaultFlow"; - - bytes32 private _componentName; - address private _tokenAddress; - uint256 private _componentId; - uint256 private _riskpoolId; - - IRegistry private _registry; - IAccess private _access; - IComponentOwnerService private _componentOwnerService; - IInstanceService private _instanceService; - address private _policyFlow; - IProductService private _productService; - - uint256 private _policies; - uint256 private _claims; - - modifier onlyPolicyHolder(bytes32 policyId) { - address policyHolder = _instanceService.getMetadata(policyId).owner; - require( - _msgSender() == policyHolder, - "ERROR:TCP-1:INVALID_POLICY_OR_HOLDER" - ); - _; - } - - constructor( - bytes32 fakeProductName, - address tokenAddress, - uint256 fakeComponentId, - uint256 fakeRiskpoolId, - address registryAddress - ) - Ownable() - { - _componentName = fakeProductName; - _tokenAddress = tokenAddress; - _componentId = fakeComponentId; - _riskpoolId = fakeRiskpoolId; - - _registry = IRegistry(registryAddress); - _access = _getAccess(); - _componentOwnerService = _getComponentOwnerService(); - _instanceService = _getInstanceService(); - _policyFlow = _getContractAddress(POLICY_FLOW); - _productService = _getProductService(); - } - - function applyForPolicy( - uint256 premium, - uint256 sumInsured, - bytes calldata metaData, - bytes calldata applicationData - ) - external - payable - returns (bytes32 processId) - { - address payable policyHolder = payable(_msgSender()); - - // Create and underwrite new application - processId = _productService.newApplication( - policyHolder, - premium, - sumInsured, - metaData, - applicationData); - - _productService.underwrite(processId); - } - - function collectPremium(bytes32 policyId) - external - { - IPolicy.Policy memory policy = _instanceService.getPolicy(policyId); - _productService.collectPremium(policyId, policy.premiumExpectedAmount); - } - - function submitClaim(bytes32 policyId, uint256 claimAmount) - external - onlyPolicyHolder(policyId) - { - // increase claims counter - _claims += 1; - - // create claim and confirm it - uint256 claimId = _productService.newClaim(policyId, claimAmount, abi.encode(0)); - _productService.confirmClaim(policyId, claimId, claimAmount); - - // create payout record - uint256 payoutId = _productService.newPayout(policyId, claimId, claimAmount, abi.encode(0)); - _productService.processPayout(policyId, payoutId); - } - - //--- product service access --------------------------------------------// - - //--- iproduct ----------------------------------------------------------// - function getToken() external override view returns(address token) { return _tokenAddress; } - function getPolicyFlow() external override view returns(address policyFlow) { return _getContractAddress(POLICY_FLOW); } - function getRiskpoolId() external override view returns(uint256 riskpoolId) { return _riskpoolId; } - - function getApplicationDataStructure() external override view returns(string memory dataStructure) { return ""; } - function getClaimDataStructure() external override view returns(string memory dataStructure) { return ""; } - function getPayoutDataStructure() external override view returns(string memory dataStructure) { return ""; } - - function riskPoolCapacityCallback(uint256 capacity) external override {} - - //--- icomponent --------------------------------------------------------// - function setId(uint256 id) external override {} // does not care about id - - function getName() external override view returns(bytes32) { return _componentName; } - function getId() external override view returns(uint256) { return _componentId; } - function getType() external override view returns(ComponentType) { return IComponent.ComponentType.Product; } - function getState() external override view returns(ComponentState) { return IComponent.ComponentState.Active; } - function getOwner() external override view returns(address) { return owner(); } - function getRegistry() external override view returns(IRegistry) { return _registry; } - - function isProduct() public override view returns(bool) { return true; } - function isOracle() public override view returns(bool) { return false; } - function isRiskpool() public override view returns(bool) { return false; } - - function proposalCallback() external override {} - function approvalCallback() external override {} - function declineCallback() external override {} - function suspendCallback() external override {} - function resumeCallback() external override {} - function pauseCallback() external override {} - function unpauseCallback() external override {} - function archiveCallback() external override {} - - function _getAccess() private view returns (IAccess) { - return IAccess(_getContractAddress("Access")); - } - - function _getInstanceService() private view returns (IInstanceService) { - return IInstanceService(_getContractAddress("InstanceService")); - } - - function _getComponentOwnerService() private view returns (IComponentOwnerService) { - return IComponentOwnerService(_getContractAddress("ComponentOwnerService")); - } - - function _getProductService() private view returns (IProductService) { - return IProductService(_getContractAddress("ProductService")); - } - - function _getContractAddress(bytes32 contractName) private view returns (address) { - return _registry.getContract(contractName); - } - +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@etherisc/gif-interface/contracts/components/IComponent.sol"; +import "@etherisc/gif-interface/contracts/components/IProduct.sol"; + +import "@etherisc/gif-interface/contracts/modules/IAccess.sol"; +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; +import "@etherisc/gif-interface/contracts/modules/IRegistry.sol"; + +import "@etherisc/gif-interface/contracts/services/IComponentOwnerService.sol"; +import "@etherisc/gif-interface/contracts/services/IProductService.sol"; +import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; + +import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +/* +the TestCompromisedProduct claims to be an existing product that connects to an existing +riskpool with the goal to create fraud claims that lead to fraud payouts whith the intention +to drain the riskpool. + +for this the compromised product claims +- to be a product +- to be in state active (independent of an approval step by the instance operator) +*/ +contract TestCompromisedProduct is + IProduct, + Ownable +{ + IComponent.ComponentState public constant FAKE_STATE = IComponent.ComponentState.Active; + + bytes32 public constant POLICY_FLOW = "PolicyDefaultFlow"; + + bytes32 private _componentName; + address private _tokenAddress; + uint256 private _componentId; + uint256 private _riskpoolId; + + IRegistry private _registry; + IAccess private _access; + IComponentOwnerService private _componentOwnerService; + IInstanceService private _instanceService; + address private _policyFlow; + IProductService private _productService; + + uint256 private _policies; + uint256 private _claims; + + modifier onlyPolicyHolder(bytes32 policyId) { + address policyHolder = _instanceService.getMetadata(policyId).owner; + require( + _msgSender() == policyHolder, + "ERROR:TCP-1:INVALID_POLICY_OR_HOLDER" + ); + _; + } + + /** + * @dev Constructor function to initialize the component with the given parameters. + * @param fakeProductName The name of the component. + * @param tokenAddress The address of the token used for the component. + * @param fakeComponentId The ID of the component. + * @param fakeRiskpoolId The ID of the risk pool associated with the component. + * @param registryAddress The address of the registry contract. + */ + constructor( + bytes32 fakeProductName, + address tokenAddress, + uint256 fakeComponentId, + uint256 fakeRiskpoolId, + address registryAddress + ) + Ownable() + { + _componentName = fakeProductName; + _tokenAddress = tokenAddress; + _componentId = fakeComponentId; + _riskpoolId = fakeRiskpoolId; + + _registry = IRegistry(registryAddress); + _access = _getAccess(); + _componentOwnerService = _getComponentOwnerService(); + _instanceService = _getInstanceService(); + _policyFlow = _getContractAddress(POLICY_FLOW); + _productService = _getProductService(); + } + + /** + * @dev Allows a policy holder to apply for a new policy by submitting an application with the specified premium, sum insured, metaData, and applicationData. + * @param premium The amount of premium to be paid for the policy. + * @param sumInsured The amount of coverage provided by the policy. + * @param metaData Additional metadata related to the policy application. + * @param applicationData Additional data related to the policy application. + * @return processId The process ID of the new policy application. + */ + function applyForPolicy( + uint256 premium, + uint256 sumInsured, + bytes calldata metaData, + bytes calldata applicationData + ) + external + payable + returns (bytes32 processId) + { + address payable policyHolder = payable(_msgSender()); + + // Create and underwrite new application + processId = _productService.newApplication( + policyHolder, + premium, + sumInsured, + metaData, + applicationData); + + _productService.underwrite(processId); + } + + /** + * @dev Collects the premium for a given policy. + * @param policyId The ID of the policy to collect the premium for. + */ + function collectPremium(bytes32 policyId) + external + { + IPolicy.Policy memory policy = _instanceService.getPolicy(policyId); + _productService.collectPremium(policyId, policy.premiumExpectedAmount); + } + + /** + * @dev Allows a policy holder to submit a claim for the specified policy. + * @param policyId The ID of the policy for which the claim is being submitted. + * @param claimAmount The amount of the claim being submitted. + * + * Emits a ClaimSubmitted event and creates a new claim and payout record. + */ + function submitClaim(bytes32 policyId, uint256 claimAmount) + external + onlyPolicyHolder(policyId) + { + // increase claims counter + _claims += 1; + + // create claim and confirm it + uint256 claimId = _productService.newClaim(policyId, claimAmount, abi.encode(0)); + _productService.confirmClaim(policyId, claimId, claimAmount); + + // create payout record + uint256 payoutId = _productService.newPayout(policyId, claimId, claimAmount, abi.encode(0)); + _productService.processPayout(policyId, payoutId); + } + + //--- product service access --------------------------------------------// + + //--- iproduct ----------------------------------------------------------// + /** + * @dev Returns the address of the token used by this contract. + * @return token The address of the token used by this contract. + */ + function getToken() external override view returns(address token) { return _tokenAddress; } + /** + * @dev Returns the address of the policy flow contract. + * @return policyFlow The address of the policy flow contract. + */ + function getPolicyFlow() external override view returns(address policyFlow) { return _getContractAddress(POLICY_FLOW); } + /** + * @dev Returns the ID of the risk pool. + * @return riskpoolId The ID of the risk pool. + */ + function getRiskpoolId() external override view returns(uint256 riskpoolId) { return _riskpoolId; } + + /** + * @dev Returns the data structure of the application. + * @return dataStructure The string representing the data structure of the application. + */ + function getApplicationDataStructure() external override view returns(string memory dataStructure) { return ""; } + /** + * @dev Returns the data structure of the claim data. + * @return dataStructure The data structure of the claim data as a string. + */ + function getClaimDataStructure() external override view returns(string memory dataStructure) { return ""; } + /** + * @dev Returns the data structure of the payout information. + * @return dataStructure The string representation of the payout data structure. + */ + function getPayoutDataStructure() external override view returns(string memory dataStructure) { return ""; } + + /** + * @dev Callback function to update the risk pool's capacity. + * @param capacity The new capacity of the risk pool. + */ + function riskPoolCapacityCallback(uint256 capacity) external override {} + + //--- icomponent --------------------------------------------------------// + /** + * @dev Sets the ID of the contract. + * @param id The ID to be set. + */ + function setId(uint256 id) external override {} // does not care about id + + /** + * @dev Returns the name of the component. + * @return _componentName The name of the component as a bytes32 value. + */ + function getName() external override view returns(bytes32) { return _componentName; } + /** + * @dev Returns the ID of the component. + * @return The ID of the component as a uint256 value. + */ + function getId() external override view returns(uint256) { return _componentId; } + /** + * @dev Returns the ComponentType of the product. + * @return The ComponentType of the product. + */ + function getType() external override view returns(ComponentType) { return IComponent.ComponentType.Product; } + /** + * @dev Returns the current state of the component. + * @return state The current state of the component as a ComponentState enum value. + */ + function getState() external override view returns(ComponentState) { return IComponent.ComponentState.Active; } + /** + * @dev Returns the address of the contract owner. + * @return The address of the contract owner. + */ + function getOwner() external override view returns(address) { return owner(); } + /** + * @dev Returns the current registry contract instance. + * @return _registry The current registry contract instance. + */ + function getRegistry() external override view returns(IRegistry) { return _registry; } + + /** + * @dev Checks if the contract is a product. + * @return Returns a boolean value indicating if the contract is a product. + */ + function isProduct() public override view returns(bool) { return true; } + /** + * @dev Returns a boolean value indicating whether the contract is an oracle. + * @return A boolean value indicating whether the contract is an oracle. + */ + function isOracle() public override view returns(bool) { return false; } + /** + * @dev Check if the contract is a risk pool. + * @return {bool} Returns a boolean indicating if the contract is a risk pool. + */ + function isRiskpool() public override view returns(bool) { return false; } + + /** + * @dev This function is a callback function for proposals. + * + * Returns: None + */ + function proposalCallback() external override {} + /** + * @dev This function is a callback function that is called after an approval has been made. + */ + function approvalCallback() external override {} + /** + * @dev This function is called when a user declines a transaction in the dApp. + */ + function declineCallback() external override {} + /** + * @dev Suspends the callback function. + */ + function suspendCallback() external override {} + /** + * @dev This function is a callback function that is triggered when a paused contract is resumed. + * + */ + function resumeCallback() external override {} + /** + * @dev Callback function that is called when the contract is paused. This function does not take any parameters. + */ + function pauseCallback() external override {} + /** + * @dev This function is called by the owner of the contract to unpause the contract after it has been paused. + */ + function unpauseCallback() external override {} + /** + * @dev This function is a callback function that is executed when a contract is archived. + * + */ + function archiveCallback() external override {} + + /** + * @dev Returns the instance of the IAccess contract. + * @return access Returns the instance of the IAccess contract. + */ + function _getAccess() private view returns (IAccess) { + return IAccess(_getContractAddress("Access")); + } + + /** + * @dev Returns the instance service contract. + * @return instanceService The instance service contract. + */ + function _getInstanceService() private view returns (IInstanceService) { + return IInstanceService(_getContractAddress("InstanceService")); + } + + /** + * @dev Returns the instance of the ComponentOwnerService contract. + * @return The ComponentOwnerService contract instance. + */ + function _getComponentOwnerService() private view returns (IComponentOwnerService) { + return IComponentOwnerService(_getContractAddress("ComponentOwnerService")); + } + + /** + * @dev Returns the ProductService contract instance. + * @return productService The ProductService contract instance. + */ + function _getProductService() private view returns (IProductService) { + return IProductService(_getContractAddress("ProductService")); + } + + /** + * @dev Returns the address of a registered contract with the given name. + * @param contractName The name of the contract to retrieve the address for. + * @return The address of the registered contract with the given name. + */ + function _getContractAddress(bytes32 contractName) private view returns (address) { + return _registry.getContract(contractName); + } + } \ No newline at end of file diff --git a/contracts/test/TestOracle.sol b/contracts/test/TestOracle.sol index aed410a4..490cc5d4 100644 --- a/contracts/test/TestOracle.sol +++ b/contracts/test/TestOracle.sol @@ -1,55 +1,86 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@etherisc/gif-interface/contracts/components/Oracle.sol"; - -contract TestOracle is Oracle { - - constructor( - bytes32 oracleName, - address registry - ) - Oracle(oracleName, registry) - { } - - function request(uint256 requestId, bytes calldata input) external override onlyQuery { - // decode oracle input data - (uint256 counter, bool immediateResponse) = abi.decode(input, (uint256, bool)); - - if (immediateResponse) { - // obtain data from oracle given the request data (counter) - // for off chain oracles this happens outside the request - // call in a separate asynchronous transaction - bool isLossEvent = _oracleCalculation(counter); - respond(requestId, isLossEvent); - } - } - - function cancel(uint256 requestId) - external override - onlyOwner - { - // TODO mid/low priority - // cancelChainlinkRequest(_requestId, _payment, _callbackFunctionId, _expiration); - } - - // usually called by off-chain oracle (and not internally) - // in which case the function modifier should be changed - // to external - function respond(uint256 requestId, bool isLossEvent) - public - { - // encode data obtained from oracle - bytes memory output = abi.encode(bool(isLossEvent)); - - // trigger inherited response handling - _respond(requestId, output); - } - - // dummy implementation - // "real" oracles will get the output from some off-chain - // component providing the outcome of the business logic - function _oracleCalculation(uint256 counter) internal returns (bool isLossEvent) { - isLossEvent = (counter % 2 == 1); - } +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@etherisc/gif-interface/contracts/components/Oracle.sol"; + +contract TestOracle is Oracle { + + /** + * @dev Constructor function for creating an Oracle contract. + * @param oracleName The name of the Oracle contract. + * @param registry The address of the registry contract. + */ + constructor( + bytes32 oracleName, + address registry + ) + Oracle(oracleName, registry) + { } + + /** + * @dev Requests data from the oracle contract. + * @param requestId The unique identifier of the request. + * @param input The input data to be decoded by the oracle. + * It is a tuple containing a uint256 counter and a bool immediateResponse. + * + * This function decodes the input data and calls the _oracleCalculation function + * to obtain data from the oracle given the request data (counter). + * If immediateResponse is true, the function responds with the result obtained from the oracle. + * Otherwise, the response is handled outside the function in a separate asynchronous transaction. + * The response is sent back to the contract through the respond function. + */ + function request(uint256 requestId, bytes calldata input) external override onlyQuery { + // decode oracle input data + (uint256 counter, bool immediateResponse) = abi.decode(input, (uint256, bool)); + + if (immediateResponse) { + // obtain data from oracle given the request data (counter) + // for off chain oracles this happens outside the request + // call in a separate asynchronous transaction + bool isLossEvent = _oracleCalculation(counter); + respond(requestId, isLossEvent); + } + } + + /** + * @dev Cancels a Chainlink request. + * @param requestId The ID of the Chainlink request to be cancelled. + */ + function cancel(uint256 requestId) + external override + onlyOwner + { + // TODO mid/low priority + // cancelChainlinkRequest(_requestId, _payment, _callbackFunctionId, _expiration); + } + + // usually called by off-chain oracle (and not internally) + // in which case the function modifier should be changed + // to external + /** + * @dev Responds to an oracle request with a boolean value indicating whether a loss event occurred. + * @param requestId The ID of the oracle request being responded to. + * @param isLossEvent A boolean value indicating whether a loss event occurred. + */ + function respond(uint256 requestId, bool isLossEvent) + public + { + // encode data obtained from oracle + bytes memory output = abi.encode(bool(isLossEvent)); + + // trigger inherited response handling + _respond(requestId, output); + } + + // dummy implementation + // "real" oracles will get the output from some off-chain + // component providing the outcome of the business logic + /** + * @dev Performs an oracle calculation to determine if a loss event occurred. + * @param counter The counter value used in the calculation. + * @return isLossEvent A boolean indicating if a loss event occurred. + */ + function _oracleCalculation(uint256 counter) internal returns (bool isLossEvent) { + isLossEvent = (counter % 2 == 1); + } } \ No newline at end of file diff --git a/contracts/test/TestProduct.sol b/contracts/test/TestProduct.sol index c020bea8..d3acf0f9 100644 --- a/contracts/test/TestProduct.sol +++ b/contracts/test/TestProduct.sol @@ -1,362 +1,535 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; -import "@etherisc/gif-interface/contracts/services/IProductService.sol"; -import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; -import "@etherisc/gif-interface/contracts/components/Product.sol"; - -import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - -contract TestProduct is - Product -{ - bytes32 public constant POLICY_FLOW = "PolicyDefaultFlow"; - string public constant ORACLE_CALLBACK_METHOD_NAME = "oracleCallback"; - - address private _capitalOwner; - uint256 private _testOracleId; - uint256 private _testRiskpoolId; - - bytes32 [] private _applications; - bytes32 [] private _policies; - uint256 private _claims; - - mapping(bytes32 => uint256) private _policyIdToClaimId; - mapping(bytes32 => uint256) private _policyIdToPayoutId; - - event LogTestProductFundingReceived(address sender, uint256 amount); - event LogTestOracleCallbackReceived(uint256 requestId, bytes32 policyId, bytes response); - - constructor( - bytes32 productName, - address tokenAddress, - address capitalOwner, - uint256 oracleId, - uint256 riskpoolId, - address registryAddress - ) - Product(productName, tokenAddress, POLICY_FLOW, riskpoolId, registryAddress) - { - require(tokenAddress != address(0), "ERROR:TI-2:TOKEN_ADDRESS_ZERO"); - _capitalOwner = capitalOwner; - _testOracleId = oracleId; - _testRiskpoolId = riskpoolId; - } - - function applyForPolicy( - uint256 premium, - uint256 sumInsured, - bytes calldata metaData, - bytes calldata applicationData - ) - external - payable - returns (bytes32 processId) - { - address payable policyHolder = payable(_msgSender()); - - processId = _newApplication( - policyHolder, - premium, - sumInsured, - metaData, - applicationData); - - _applications.push(processId); - - bool success = _underwrite(processId); - if (success) { - _policies.push(processId); - } - } - - function applyForPolicy( - address payable policyHolder, - uint256 premium, - uint256 sumInsured, - bytes calldata metaData, - bytes calldata applicationData - ) - external - payable - returns (bytes32 processId) - { - processId = _newApplication( - policyHolder, - premium, - sumInsured, - metaData, - applicationData); - - _applications.push(processId); - - bool success = _underwrite(processId); - if (success) { - _policies.push(processId); - } - } - - - function newAppliation( - uint256 premium, - uint256 sumInsured, - bytes calldata metaData, - bytes calldata applicationData - ) - external - payable - returns (bytes32 processId) - { - address payable policyHolder = payable(_msgSender()); - - processId = _newApplication( - policyHolder, - premium, - sumInsured, - metaData, - applicationData); - - _applications.push(processId); - } - - - function revoke(bytes32 processId) external onlyPolicyHolder(processId) { - _revoke(processId); - } - - function decline(bytes32 processId) external onlyOwner { - _decline(processId); - } - - function underwrite(bytes32 processId) external onlyOwner { - bool success = _underwrite(processId); - if (success) { - _policies.push(processId); - } - } - - function collectPremium(bytes32 policyId) - external onlyOwner - returns(bool success, uint256 fee, uint256 netPremium) - { - (success, fee, netPremium) = _collectPremium(policyId); - } - - function collectPremium(bytes32 policyId, uint256 amount) - external onlyOwner - returns(bool success, uint256 fee, uint256 netPremium) - { - (success, fee, netPremium) = _collectPremium(policyId, amount); - } - - function adjustPremiumSumInsured( - bytes32 processId, - uint256 expectedPremiumAmount, - uint256 sumInsuredAmount - ) - external - { - _adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount); - } - - function expire(bytes32 policyId) external onlyOwner { - _expire(policyId); - } - - function close(bytes32 policyId) external onlyOwner { - _close(policyId); - } - - function submitClaim(bytes32 policyId, uint256 claimAmount) - external - onlyPolicyHolder(policyId) - returns(uint256 claimId) - { - - // increase claims counter - // the oracle business logic will use this counter value - // to determine if the claim is linked to a loss event or not - _claims++; - - // claim application - claimId = _newClaim(policyId, claimAmount, ""); - _policyIdToClaimId[policyId] = claimId; - - // Request response to greeting via oracle call - bool immediateResponse = true; - bytes memory queryData = abi.encode(_claims, immediateResponse); - _request( - policyId, - queryData, - ORACLE_CALLBACK_METHOD_NAME, - _testOracleId - ); - } - - function submitClaimNoOracle(bytes32 policyId, uint256 claimAmount) - external - onlyPolicyHolder(policyId) - returns(uint256 claimId) - { - - // increase claims counter - // the oracle business logic will use this counter value - // to determine if the claim is linked to a loss event or not - _claims++; - - // claim application - claimId = _newClaim(policyId, claimAmount, ""); - _policyIdToClaimId[policyId] = claimId; - } - - function submitClaimWithDeferredResponse(bytes32 policyId, uint256 claimAmount) - external - onlyPolicyHolder(policyId) - returns(uint256 claimId, uint256 requestId) - { - - // increase claims counter - // the oracle business logic will use this counter value - // to determine if the claim is linked to a loss event or not - _claims++; - - // claim application - claimId = _newClaim(policyId, claimAmount, ""); - _policyIdToClaimId[policyId] = claimId; - - // Request response to greeting via oracle call - bool immediateResponse = false; - bytes memory queryData = abi.encode(_claims, immediateResponse); - requestId = _request( - policyId, - queryData, - ORACLE_CALLBACK_METHOD_NAME, - _testOracleId - ); - } - - function confirmClaim( - bytes32 policyId, - uint256 claimId, - uint256 confirmedAmount - ) - external - onlyOwner - { - _confirmClaim(policyId, claimId, confirmedAmount); - } - - function declineClaim( - bytes32 policyId, - uint256 claimId - ) - external - onlyOwner - { - _declineClaim(policyId, claimId); - } - - function closeClaim( - bytes32 policyId, - uint256 claimId - ) - external - onlyOwner - { - _closeClaim(policyId, claimId); - } - - function createPayout( - bytes32 policyId, - uint256 claimId, - uint256 payoutAmount - ) - external - onlyOwner - returns(uint256 payoutId) - { - payoutId = _newPayout( - policyId, - claimId, - payoutAmount, - abi.encode(0)); - - _processPayout(policyId, payoutId); - } - - function newPayout( - bytes32 policyId, - uint256 claimId, - uint256 payoutAmount - ) - external - onlyOwner - returns(uint256 payoutId) - { - payoutId = _newPayout( - policyId, - claimId, - payoutAmount, - abi.encode(0)); - } - - function processPayout( - bytes32 policyId, - uint256 payoutId - ) - external - onlyOwner - { - _processPayout(policyId, payoutId); - } - - function oracleCallback( - uint256 requestId, - bytes32 policyId, - bytes calldata responseData - ) - external - onlyOracle - { - emit LogTestOracleCallbackReceived(requestId, policyId, responseData); - - // get oracle response data - (bool isLossEvent) = abi.decode(responseData, (bool)); - uint256 claimId = _policyIdToClaimId[policyId]; - - // claim handling if there is a loss - if (isLossEvent) { - // get policy and claims info for oracle response - _getApplication(policyId); - - IPolicy.Claim memory claim - = _getClaim(policyId, claimId); - - // specify payout data - uint256 confirmedAmount = claim.claimAmount; - _confirmClaim(policyId, claimId, confirmedAmount); - - // create payout record - uint256 payoutAmount = confirmedAmount; - bytes memory payoutData = abi.encode(0); - uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, payoutData); - _policyIdToPayoutId[policyId] = payoutId; - - _processPayout(policyId, payoutId); - - // TODO refactor to payout using erc-20 token - // actual transfer of funds for payout of claim - // failing requires not visible when called via .call in querycontroller - // policyHolder.transfer(payoutAmount); - } else { - _declineClaim(policyId, claimId); - } - } - - function getClaimId(bytes32 policyId) external view returns (uint256) { return _policyIdToClaimId[policyId]; } - function getPayoutId(bytes32 policyId) external view returns (uint256) { return _policyIdToPayoutId[policyId]; } - function applications() external view returns (uint256) { return _applications.length; } - function policies() external view returns (uint256) { return _policies.length; } - function claims() external view returns (uint256) { return _claims; } +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; +import "@etherisc/gif-interface/contracts/services/IProductService.sol"; +import "@etherisc/gif-interface/contracts/services/IInstanceService.sol"; +import "@etherisc/gif-interface/contracts/components/Product.sol"; + +import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; + +contract TestProduct is + Product +{ + bytes32 public constant POLICY_FLOW = "PolicyDefaultFlow"; + string public constant ORACLE_CALLBACK_METHOD_NAME = "oracleCallback"; + + address private _capitalOwner; + uint256 private _testOracleId; + uint256 private _testRiskpoolId; + + bytes32 [] private _applications; + bytes32 [] private _policies; + uint256 private _claims; + + mapping(bytes32 => uint256) private _policyIdToClaimId; + mapping(bytes32 => uint256) private _policyIdToPayoutId; + + event LogTestProductFundingReceived(address sender, uint256 amount); + event LogTestOracleCallbackReceived(uint256 requestId, bytes32 policyId, bytes response); + + /** + * @dev Constructor function for creating a new instance of the Product contract. + * @param productName The name of the product. + * @param tokenAddress The address of the token used for the product. + * @param capitalOwner The address of the capital owner. + * @param oracleId The ID of the oracle used for the product. + * @param riskpoolId The ID of the riskpool used for the product. + * @param registryAddress The address of the registry contract. + */ + constructor( + bytes32 productName, + address tokenAddress, + address capitalOwner, + uint256 oracleId, + uint256 riskpoolId, + address registryAddress + ) + Product(productName, tokenAddress, POLICY_FLOW, riskpoolId, registryAddress) + { + require(tokenAddress != address(0), "ERROR:TI-2:TOKEN_ADDRESS_ZERO"); + _capitalOwner = capitalOwner; + _testOracleId = oracleId; + _testRiskpoolId = riskpoolId; + } + + /** + * @dev Allows a policy holder to apply for a new insurance policy by submitting an application with the specified premium, sum insured, metadata and application data. + * @param premium The amount of premium to be paid by the policy holder. + * @param sumInsured The sum insured for the new policy. + * @param metaData Additional metadata associated with the application. + * @param applicationData Additional application data. + * @return processId The unique identifier of the new policy application process. + */ + function applyForPolicy( + uint256 premium, + uint256 sumInsured, + bytes calldata metaData, + bytes calldata applicationData + ) + external + payable + returns (bytes32 processId) + { + address payable policyHolder = payable(_msgSender()); + + processId = _newApplication( + policyHolder, + premium, + sumInsured, + metaData, + applicationData); + + _applications.push(processId); + + bool success = _underwrite(processId); + if (success) { + _policies.push(processId); + } + } + + /** + * @dev Creates a new insurance application and underwrites it if possible. + * @param policyHolder The address of the policy holder. + * @param premium The amount of premium paid by the policy holder. + * @param sumInsured The amount of coverage requested by the policy holder. + * @param metaData Additional metadata associated with the application. + * @param applicationData The application data submitted by the policy holder. + * @return processId The identifier of the new insurance application. + */ + function applyForPolicy( + address payable policyHolder, + uint256 premium, + uint256 sumInsured, + bytes calldata metaData, + bytes calldata applicationData + ) + external + payable + returns (bytes32 processId) + { + processId = _newApplication( + policyHolder, + premium, + sumInsured, + metaData, + applicationData); + + _applications.push(processId); + + bool success = _underwrite(processId); + if (success) { + _policies.push(processId); + } + } + + + /** + * @dev Creates a new insurance application. + * @param premium The amount of premium to be paid for the insurance policy. + * @param sumInsured The amount of coverage for the insurance policy. + * @param metaData Metadata to be associated with the application. + * @param applicationData Additional data related to the application. + * @return processId The unique identifier for the new application process. + */ + function newAppliation( + uint256 premium, + uint256 sumInsured, + bytes calldata metaData, + bytes calldata applicationData + ) + external + payable + returns (bytes32 processId) + { + address payable policyHolder = payable(_msgSender()); + + processId = _newApplication( + policyHolder, + premium, + sumInsured, + metaData, + applicationData); + + _applications.push(processId); + } + + + /** + * @dev Revokes a process identified by its processId. Only the policy holder can revoke a process. + * @param processId The unique identifier of the process to be revoked. + */ + function revoke(bytes32 processId) external onlyPolicyHolder(processId) { + _revoke(processId); + } + + /** + * @dev Declines a specific process by its ID. + * @param processId The ID of the process to be declined. + */ + function decline(bytes32 processId) external onlyOwner { + _decline(processId); + } + + /** + * @dev Underwrites a policy for a given process ID. + * @param processId The ID of the process to underwrite a policy for. + */ + function underwrite(bytes32 processId) external onlyOwner { + bool success = _underwrite(processId); + if (success) { + _policies.push(processId); + } + } + + /** + * @dev Collects the premium for a specific policy. + * @param policyId The ID of the policy for which the premium will be collected. + * @return success A boolean indicating whether the premium collection was successful. + * @return fee The amount of fee collected by the insurer. + * @return netPremium The net amount of premium collected by the insurer after deducting the fee. + */ + function collectPremium(bytes32 policyId) + external onlyOwner + returns(bool success, uint256 fee, uint256 netPremium) + { + (success, fee, netPremium) = _collectPremium(policyId); + } + + /** + * @dev Collects the premium for a specific policy. + * @param policyId The unique identifier of the policy. + * @param amount The amount of the premium to be collected. + * @return success A boolean indicating whether the premium collection was successful. + * @return fee The fee charged for collecting the premium. + * @return netPremium The net amount of premium collected after deducting the fee. + */ + function collectPremium(bytes32 policyId, uint256 amount) + external onlyOwner + returns(bool success, uint256 fee, uint256 netPremium) + { + (success, fee, netPremium) = _collectPremium(policyId, amount); + } + + /** + * @dev Adjusts the premium and sum insured amounts for a given process ID. + * @param processId The ID of the process to adjust. + * @param expectedPremiumAmount The expected premium amount for the process. + * @param sumInsuredAmount The sum insured amount for the process. + */ + function adjustPremiumSumInsured( + bytes32 processId, + uint256 expectedPremiumAmount, + uint256 sumInsuredAmount + ) + external + { + _adjustPremiumSumInsured(processId, expectedPremiumAmount, sumInsuredAmount); + } + + /** + * @dev Expire a policy by its ID. + * @param policyId The ID of the policy to expire. + */ + function expire(bytes32 policyId) external onlyOwner { + _expire(policyId); + } + + /** + * @dev Closes a policy with the given ID. + * @param policyId The ID of the policy to be closed. + */ + function close(bytes32 policyId) external onlyOwner { + _close(policyId); + } + + /** + * @dev Allows a policy holder to submit a claim for a specific policy. + * @param policyId The ID of the policy for which the claim is being submitted. + * @param claimAmount The amount of the claim being submitted. + * @return claimId The ID of the submitted claim. + * + * Increases the claims counter and creates a new claim application. + * The oracle business logic will use the claims counter value to determine if the claim is linked to a loss event or not. + * The function also requests a response to the greeting via oracle call. + */ + function submitClaim(bytes32 policyId, uint256 claimAmount) + external + onlyPolicyHolder(policyId) + returns(uint256 claimId) + { + + // increase claims counter + // the oracle business logic will use this counter value + // to determine if the claim is linked to a loss event or not + _claims++; + + // claim application + claimId = _newClaim(policyId, claimAmount, ""); + _policyIdToClaimId[policyId] = claimId; + + // Request response to greeting via oracle call + bool immediateResponse = true; + bytes memory queryData = abi.encode(_claims, immediateResponse); + _request( + policyId, + queryData, + ORACLE_CALLBACK_METHOD_NAME, + _testOracleId + ); + } + + /** + * @dev Allows a policy holder to submit a claim without the need for an oracle. + * @param policyId The ID of the policy for which the claim is being submitted. + * @param claimAmount The amount being claimed by the policy holder. + * @return claimId The ID of the claim created. + */ + function submitClaimNoOracle(bytes32 policyId, uint256 claimAmount) + external + onlyPolicyHolder(policyId) + returns(uint256 claimId) + { + + // increase claims counter + // the oracle business logic will use this counter value + // to determine if the claim is linked to a loss event or not + _claims++; + + // claim application + claimId = _newClaim(policyId, claimAmount, ""); + _policyIdToClaimId[policyId] = claimId; + } + + /** + * @dev Submits a claim for a specific policy with a deferred response from the oracle. + * Increases the claims counter and creates a new claim application. + * Then, requests a response from the oracle via an external call with encoded query data. + * @param policyId The ID of the policy the claim is being made against. + * @param claimAmount The amount of the claim being made. + * @return claimId The ID of the newly created claim. + * @return requestId The ID of the oracle request made to retrieve the response. + */ + function submitClaimWithDeferredResponse(bytes32 policyId, uint256 claimAmount) + external + onlyPolicyHolder(policyId) + returns(uint256 claimId, uint256 requestId) + { + + // increase claims counter + // the oracle business logic will use this counter value + // to determine if the claim is linked to a loss event or not + _claims++; + + // claim application + claimId = _newClaim(policyId, claimAmount, ""); + _policyIdToClaimId[policyId] = claimId; + + // Request response to greeting via oracle call + bool immediateResponse = false; + bytes memory queryData = abi.encode(_claims, immediateResponse); + requestId = _request( + policyId, + queryData, + ORACLE_CALLBACK_METHOD_NAME, + _testOracleId + ); + } + + /** + * @dev Confirms the amount to be paid out for a specific claim. + * @param policyId The ID of the policy the claim belongs to. + * @param claimId The ID of the claim to be confirmed. + * @param confirmedAmount The amount to be paid out for the claim. + */ + function confirmClaim( + bytes32 policyId, + uint256 claimId, + uint256 confirmedAmount + ) + external + onlyOwner + { + _confirmClaim(policyId, claimId, confirmedAmount); + } + + /** + * @dev Allows the owner of the contract to decline a claim. + * @param policyId The ID of the policy related to the claim. + * @param claimId The ID of the claim to be declined. + */ + function declineClaim( + bytes32 policyId, + uint256 claimId + ) + external + onlyOwner + { + _declineClaim(policyId, claimId); + } + + /** + * @dev Closes a specific claim for a given policy. + * @param policyId The ID of the policy the claim belongs to. + * @param claimId The ID of the claim to be closed. + */ + function closeClaim( + bytes32 policyId, + uint256 claimId + ) + external + onlyOwner + { + _closeClaim(policyId, claimId); + } + + /** + * @dev Creates a new payout for a specific policy and claim. + * @param policyId The ID of the policy associated with the payout. + * @param claimId The ID of the claim associated with the payout. + * @param payoutAmount The amount of the payout to be created. + * @return payoutId The ID of the newly created payout. + */ + function createPayout( + bytes32 policyId, + uint256 claimId, + uint256 payoutAmount + ) + external + onlyOwner + returns(uint256 payoutId) + { + payoutId = _newPayout( + policyId, + claimId, + payoutAmount, + abi.encode(0)); + + _processPayout(policyId, payoutId); + } + + /** + * @dev Creates a new payout for a claim under a policy. + * @param policyId The ID of the policy. + * @param claimId The ID of the claim. + * @param payoutAmount The amount to be paid out for the claim. + * @return payoutId The ID of the newly created payout. + */ + function newPayout( + bytes32 policyId, + uint256 claimId, + uint256 payoutAmount + ) + external + onlyOwner + returns(uint256 payoutId) + { + payoutId = _newPayout( + policyId, + claimId, + payoutAmount, + abi.encode(0)); + } + + /** + * @dev Processes a payout for a specific policy. + * @param policyId The ID of the policy to process the payout for. + * @param payoutId The ID of the payout to process. + */ + function processPayout( + bytes32 policyId, + uint256 payoutId + ) + external + onlyOwner + { + _processPayout(policyId, payoutId); + } + + /** + * @dev This function is called by the oracle to provide the response data for a specified policy ID and request ID. + * @param requestId The ID of the request made by the oracle. + * @param policyId The ID of the policy associated with the oracle request. + * @param responseData The response data provided by the oracle. + * + * Emits a LogTestOracleCallbackReceived event with the provided request ID, policy ID, and response data. + * + * Decodes the response data to obtain the isLossEvent boolean value and the claim ID associated with the policy ID. + * + * If the event is a loss event, retrieves the policy and claim information, confirms the claim, creates a payout record, and processes the payout. + * + * If the event is not a loss event, declines the claim. + * @notice This function emits 1 events: + * - LogTestOracleCallbackReceived + */ + function oracleCallback( + uint256 requestId, + bytes32 policyId, + bytes calldata responseData + ) + external + onlyOracle + { + emit LogTestOracleCallbackReceived(requestId, policyId, responseData); + + // get oracle response data + (bool isLossEvent) = abi.decode(responseData, (bool)); + uint256 claimId = _policyIdToClaimId[policyId]; + + // claim handling if there is a loss + if (isLossEvent) { + // get policy and claims info for oracle response + _getApplication(policyId); + + IPolicy.Claim memory claim + = _getClaim(policyId, claimId); + + // specify payout data + uint256 confirmedAmount = claim.claimAmount; + _confirmClaim(policyId, claimId, confirmedAmount); + + // create payout record + uint256 payoutAmount = confirmedAmount; + bytes memory payoutData = abi.encode(0); + uint256 payoutId = _newPayout(policyId, claimId, payoutAmount, payoutData); + _policyIdToPayoutId[policyId] = payoutId; + + _processPayout(policyId, payoutId); + + // TODO refactor to payout using erc-20 token + // actual transfer of funds for payout of claim + // failing requires not visible when called via .call in querycontroller + // policyHolder.transfer(payoutAmount); + } else { + _declineClaim(policyId, claimId); + } + } + + /** + * @dev Returns the claim ID associated with a given policy ID. + * @param policyId The policy ID for which the claim ID is requested. + * @return The claim ID associated with the given policy ID. + */ + function getClaimId(bytes32 policyId) external view returns (uint256) { return _policyIdToClaimId[policyId]; } + /** + * @dev Returns the payout ID associated with a given policy ID. + * @param policyId The ID of the policy. + * @return The payout ID associated with the given policy ID. + */ + function getPayoutId(bytes32 policyId) external view returns (uint256) { return _policyIdToPayoutId[policyId]; } + /** + * @dev Returns the number of applications that have been submitted. + * @return The number of applications as a uint256 value. + */ + function applications() external view returns (uint256) { return _applications.length; } + /** + * @dev Returns the number of policies in the _policies array. + * @return The length of the _policies array. + */ + function policies() external view returns (uint256) { return _policies.length; } + /** + * @dev Returns the number of claims made by users. + * @return _claims The total number of claims made by users. + */ + function claims() external view returns (uint256) { return _claims; } } \ No newline at end of file diff --git a/contracts/test/TestRegistryCompromisedController.sol b/contracts/test/TestRegistryCompromisedController.sol index 2587773c..9f5168ec 100644 --- a/contracts/test/TestRegistryCompromisedController.sol +++ b/contracts/test/TestRegistryCompromisedController.sol @@ -1,28 +1,38 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -contract TestRegistryCompromisedController { - - bytes32 public constant POLICY = bytes32("Policy"); - bytes32 public constant QUERY = bytes32("Query"); - - mapping(bytes32 => address) public contracts; - - function getContract(bytes32 contractName) - external - view - returns (address moduleAddress) - { - moduleAddress = contracts[contractName]; - } - - function upgradeToV2( - address compromisedPolicyModuleAddress, - address originalQueryModuleAddress - ) - public - { - contracts[POLICY] = compromisedPolicyModuleAddress; - contracts[QUERY] = originalQueryModuleAddress; - } -} +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +contract TestRegistryCompromisedController { + + bytes32 public constant POLICY = bytes32("Policy"); + bytes32 public constant QUERY = bytes32("Query"); + + mapping(bytes32 => address) public contracts; + + /** + * @dev Returns the address of a registered contract. + * @param contractName The name of the contract to retrieve. + * @return moduleAddress The address of the requested contract. + */ + function getContract(bytes32 contractName) + external + view + returns (address moduleAddress) + { + moduleAddress = contracts[contractName]; + } + + /** + * @dev Upgrades the Policy Manager contract to version 2. + * @param compromisedPolicyModuleAddress The new address of the compromised policy module. + * @param originalQueryModuleAddress The new address of the original query module. + */ + function upgradeToV2( + address compromisedPolicyModuleAddress, + address originalQueryModuleAddress + ) + public + { + contracts[POLICY] = compromisedPolicyModuleAddress; + contracts[QUERY] = originalQueryModuleAddress; + } +} diff --git a/contracts/test/TestRegistryControllerUpdated.sol b/contracts/test/TestRegistryControllerUpdated.sol index c194d4b1..1a897c94 100644 --- a/contracts/test/TestRegistryControllerUpdated.sol +++ b/contracts/test/TestRegistryControllerUpdated.sol @@ -1,21 +1,33 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../modules/RegistryController.sol"; - - -contract TestRegistryControllerUpdated is RegistryController { - - string message; - bool upgradeV2; - - function setMessage(string memory _message) public onlyInstanceOperator { message = _message; } - function getMessage() public view returns (string memory) { return message; } - - function upgradeToV2(string memory _message) public { - require(!upgradeV2, "ERROR:REC-102:UPGRADE_ONCE_OMLY"); - upgradeV2 = true; - - setMessage(_message); - } -} +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../modules/RegistryController.sol"; + + +contract TestRegistryControllerUpdated is RegistryController { + + string message; + bool upgradeV2; + + /** + * @dev Sets the message variable to a given string. + * @param _message The string to be set as the message. + */ + function setMessage(string memory _message) public onlyInstanceOperator { message = _message; } + /** + * @dev Returns the current message stored in the contract. + * @return message The current message stored in the contract. + */ + function getMessage() public view returns (string memory) { return message; } + + /** + * @dev Upgrades the contract to version 2. + * @param _message The message to set for the upgraded contract. + */ + function upgradeToV2(string memory _message) public { + require(!upgradeV2, "ERROR:REC-102:UPGRADE_ONCE_OMLY"); + upgradeV2 = true; + + setMessage(_message); + } +} diff --git a/contracts/test/TestRiskpool.sol b/contracts/test/TestRiskpool.sol index 26acd259..3c88f9d8 100644 --- a/contracts/test/TestRiskpool.sol +++ b/contracts/test/TestRiskpool.sol @@ -1,34 +1,48 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol"; -import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; -import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; - -contract TestRiskpool is BasicRiskpool { - - uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24; - - constructor( - bytes32 name, - uint256 collateralization, - address erc20Token, - address wallet, - address registry - ) - BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry) - { } - - // trivial implementation that matches every application - function bundleMatchesApplication( - IBundle.Bundle memory bundle, - IPolicy.Application memory application - ) - public override - pure - returns(bool isMatching) - { - isMatching = true; - } - +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "@etherisc/gif-interface/contracts/components/BasicRiskpool.sol"; +import "@etherisc/gif-interface/contracts/modules/IBundle.sol"; +import "@etherisc/gif-interface/contracts/modules/IPolicy.sol"; + +contract TestRiskpool is BasicRiskpool { + + uint256 public constant SUM_OF_SUM_INSURED_CAP = 10**24; + + /** + * @dev Constructor function for the Riskpool contract. + * @param name The name of the Riskpool. + * @param collateralization The collateralization ratio for the Riskpool. + * @param erc20Token The address of the ERC20 token used for collateral. + * @param wallet The address of the wallet that holds the collateral. + * @param registry The address of the registry contract. + */ + constructor( + bytes32 name, + uint256 collateralization, + address erc20Token, + address wallet, + address registry + ) + BasicRiskpool(name, collateralization, SUM_OF_SUM_INSURED_CAP, erc20Token, wallet, registry) + { } + + // trivial implementation that matches every application + /** + * @dev This function checks if a given bundle matches a given application. + * @param bundle The bundle to check. + * @param application The application to check against. + * @return isMatching A boolean indicating whether the bundle matches the application. + */ + function bundleMatchesApplication( + IBundle.Bundle memory bundle, + IPolicy.Application memory application + ) + public override + pure + returns(bool isMatching) + { + isMatching = true; + } + } \ No newline at end of file diff --git a/contracts/test/TestTransferFrom.sol b/contracts/test/TestTransferFrom.sol index 28b6dbcc..da135fcf 100644 --- a/contracts/test/TestTransferFrom.sol +++ b/contracts/test/TestTransferFrom.sol @@ -1,26 +1,34 @@ -// SPDX-License-Identifier: Apache-2.0 -pragma solidity 0.8.2; - -import "../shared/TransferHelper.sol"; - -import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; - -contract TestTransferFrom { - - event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); - event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); - event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); - - function unifiedTransferFrom( - IERC20 token, - address from, - address to, - uint256 amount - ) - external - returns(bool) - { - return TransferHelper.unifiedTransferFrom(token, from, to, amount); - } - -} +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.2; + +import "../shared/TransferHelper.sol"; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +contract TestTransferFrom { + + event LogTransferHelperInputValidation1Failed(bool tokenIsContract, address from, address to); + event LogTransferHelperInputValidation2Failed(uint256 balance, uint256 allowance); + event LogTransferHelperCallFailed(bool callSuccess, uint256 returnDataLength, bytes returnData); + + /** + * @dev Transfers tokens from a specified address to another specified address using the TransferHelper library. + * @param token The address of the ERC20 token to transfer. + * @param from The address from which to transfer tokens. + * @param to The address to which to transfer tokens. + * @param amount The amount of tokens to transfer. + * @return Returns a boolean indicating whether the transfer was successful or not. + */ + function unifiedTransferFrom( + IERC20 token, + address from, + address to, + uint256 amount + ) + external + returns(bool) + { + return TransferHelper.unifiedTransferFrom(token, from, to, amount); + } + +} diff --git a/contracts/tokens/BundleToken.sol b/contracts/tokens/BundleToken.sol index 3e0283a9..1798089e 100644 --- a/contracts/tokens/BundleToken.sol +++ b/contracts/tokens/BundleToken.sol @@ -24,8 +24,21 @@ contract BundleToken is _; } + /** + * @dev Constructor function for the ERC721 token contract. It sets the name and symbol of the token and initializes the Ownable contract. + */ constructor() ERC721(NAME, SYMBOL) Ownable() { } + /** + * @dev Sets the bundle module address. + * @param bundleModule The address of the bundle module to be set. + * + * Emits a {BundleModuleSet} event. + * + * Requirements: + * - The bundle module address must not have already been set. + * - The bundle module address must not be the zero address. + */ function setBundleModule(address bundleModule) external { @@ -35,6 +48,14 @@ contract BundleToken is } + /** + * @dev Mints a new bundle token and assigns ownership to the specified address. + * @param bundleId The ID of the bundle to which the token belongs. + * @param to The address that will receive ownership of the newly minted token. + * @return tokenId The ID of the newly minted token. + * @notice This function emits 1 events: + * - LogBundleTokenMinted + */ function mint(uint256 bundleId, address to) external onlyBundleModule @@ -50,6 +71,12 @@ contract BundleToken is } + /** + * @dev Burns a bundle token. + * @param tokenId The ID of the token to be burned. + * @notice This function emits 1 events: + * - LogBundleTokenBurned + */ function burn(uint256 tokenId) external onlyBundleModule @@ -60,6 +87,11 @@ contract BundleToken is emit LogBundleTokenBurned(bundleIdForTokenId[tokenId], tokenId); } + /** + * @dev Checks if a token has been burned. + * @param tokenId The ID of the token to check. + * @return isBurned Returns true if the token has been burned, false otherwise. + */ function burned(uint tokenId) external override view @@ -68,9 +100,27 @@ contract BundleToken is isBurned = tokenId <= _totalSupply && !_exists(tokenId); } + /** + * @dev Returns the bundle ID associated with a given token ID. + * @param tokenId The ID of the token to query. + * @return The bundle ID associated with the given token ID. + */ function getBundleId(uint256 tokenId) external override view returns(uint256) { return bundleIdForTokenId[tokenId]; } + /** + * @dev Returns the address of the bundle module. + * @return _bundleModule The address of the bundle module. + */ function getBundleModuleAddress() external view returns(address) { return _bundleModule; } + /** + * @dev Checks if a given token ID exists. + * @param tokenId The ID of the token to check. + * @return A boolean indicating whether the token exists or not. + */ function exists(uint256 tokenId) external override view returns(bool) { return tokenId <= _totalSupply; } + /** + * @dev Returns the total number of tokens in circulation. + * @return tokenCount The total number of tokens in circulation. + */ function totalSupply() external override view returns(uint256 tokenCount) { return _totalSupply; } } diff --git a/contracts/tokens/RiskpoolToken.sol b/contracts/tokens/RiskpoolToken.sol index c3ebde2d..e7b7a11e 100644 --- a/contracts/tokens/RiskpoolToken.sol +++ b/contracts/tokens/RiskpoolToken.sol @@ -9,6 +9,9 @@ contract RiskpoolToken is string public constant NAME = "GIF Riskpool Token"; string public constant SYMBOL = "RPT"; + /** + * @dev Constructor function that sets the name and symbol of the ERC20 token. + */ constructor() ERC20(NAME, SYMBOL) { From fa3c77c8a28b336cbe60adfae25bb338aa762c84 Mon Sep 17 00:00:00 2001 From: lydiamussenbrock Date: Thu, 15 Jun 2023 07:07:50 +0000 Subject: [PATCH 26/29] Update adocs --- docs/modules/api/pages/flows.adoc | 50 +++ docs/modules/api/pages/modules.adoc | 475 +++++++++++++++++++-------- docs/modules/api/pages/services.adoc | 226 ++++++++++++- docs/modules/api/pages/shared.adoc | 26 ++ docs/modules/api/pages/test.adoc | 148 +++++++++ docs/modules/api/pages/tokens.adoc | 20 ++ 6 files changed, 797 insertions(+), 148 deletions(-) diff --git a/docs/modules/api/pages/flows.adoc b/docs/modules/api/pages/flows.adoc index ee910b2c..a744f41d 100644 --- a/docs/modules/api/pages/flows.adoc +++ b/docs/modules/api/pages/flows.adoc @@ -151,99 +151,149 @@ import "@etherisc/gif-contracts/contracts/flows/PolicyDefaultFlow.sol"; [[PolicyDefaultFlow-constructor-address-]] ==== `[.contract-item-name]#++constructor++#++(address _registry)++` [.item-kind]#public# +Constructor function that initializes the contract with a given registry address. + [.contract-item] [[PolicyDefaultFlow-newApplication-address-uint256-uint256-bytes-bytes-]] ==== `[.contract-item-name]#++newApplication++#++(address owner, uint256 premiumAmount, uint256 sumInsuredAmount, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# +Creates a new insurance application and returns the process ID. + [.contract-item] [[PolicyDefaultFlow-revoke-bytes32-]] ==== `[.contract-item-name]#++revoke++#++(bytes32 processId)++` [.item-kind]#external# +Revokes an application for a specific processId. + [.contract-item] [[PolicyDefaultFlow-underwrite-bytes32-]] ==== `[.contract-item-name]#++underwrite++#++(bytes32 processId) → bool success++` [.item-kind]#external# +Attempts to get the collateral to secure the policy. + [.contract-item] [[PolicyDefaultFlow-collectPremium-bytes32-uint256-]] ==== `[.contract-item-name]#++collectPremium++#++(bytes32 processId, uint256 amount) → bool success, uint256 feeAmount, uint256 netPremiumAmount++` [.item-kind]#public# +Collects the premium for a given policy and updates the book keeping of the policy and the risk pool. + [.contract-item] [[PolicyDefaultFlow-adjustPremiumSumInsured-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++adjustPremiumSumInsured++#++(bytes32 processId, uint256 expectedPremiumAmount, uint256 sumInsuredAmount)++` [.item-kind]#external# +Adjusts the premium and sum insured amounts of a policy. + [.contract-item] [[PolicyDefaultFlow-decline-bytes32-]] ==== `[.contract-item-name]#++decline++#++(bytes32 processId)++` [.item-kind]#external# +Allows the responsible product to decline an application for a policy. + [.contract-item] [[PolicyDefaultFlow-expire-bytes32-]] ==== `[.contract-item-name]#++expire++#++(bytes32 processId)++` [.item-kind]#external# +Expire the policy identified by the given process ID. + [.contract-item] [[PolicyDefaultFlow-close-bytes32-]] ==== `[.contract-item-name]#++close++#++(bytes32 processId)++` [.item-kind]#external# +Closes a policy and releases the corresponding funds from the pool. + [.contract-item] [[PolicyDefaultFlow-newClaim-bytes32-uint256-bytes-]] ==== `[.contract-item-name]#++newClaim++#++(bytes32 processId, uint256 claimAmount, bytes data) → uint256 claimId++` [.item-kind]#external# +Creates a new claim for a given process ID, claim amount and data. + [.contract-item] [[PolicyDefaultFlow-confirmClaim-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++confirmClaim++#++(bytes32 processId, uint256 claimId, uint256 confirmedAmount)++` [.item-kind]#external# +Confirms a claim for a specific process and claim ID, updating the confirmed amount. + [.contract-item] [[PolicyDefaultFlow-declineClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++declineClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# +Allows the responsible product to decline a claim. + [.contract-item] [[PolicyDefaultFlow-closeClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++closeClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# +Closes a claim for a specific process and claim ID. + [.contract-item] [[PolicyDefaultFlow-newPayout-bytes32-uint256-uint256-bytes-]] ==== `[.contract-item-name]#++newPayout++#++(bytes32 processId, uint256 claimId, uint256 amount, bytes data) → uint256 payoutId++` [.item-kind]#external# +Creates a new payout for a specific claim. + [.contract-item] [[PolicyDefaultFlow-processPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 payoutId) → bool success, uint256 feeAmount, uint256 netPayoutAmount++` [.item-kind]#external# +Processes a payout for a specific process and payout ID. + [.contract-item] [[PolicyDefaultFlow-request-bytes32-bytes-string-address-uint256-]] ==== `[.contract-item-name]#++request++#++(bytes32 processId, bytes _input, string _callbackMethodName, address _callbackContractAddress, uint256 _responsibleOracleId) → uint256 _requestId++` [.item-kind]#external# +Sends a request to the query contract to initiate a new process. + [.contract-item] [[PolicyDefaultFlow-cancelRequest-uint256-]] ==== `[.contract-item-name]#++cancelRequest++#++(uint256 requestId)++` [.item-kind]#external# +Cancels a request with the given requestId. + [.contract-item] [[PolicyDefaultFlow-getApplicationData-bytes32-]] ==== `[.contract-item-name]#++getApplicationData++#++(bytes32 processId) → bytes++` [.item-kind]#external# +Returns the application data associated with the given process ID. + [.contract-item] [[PolicyDefaultFlow-getClaimData-bytes32-uint256-]] ==== `[.contract-item-name]#++getClaimData++#++(bytes32 processId, uint256 claimId) → bytes++` [.item-kind]#external# +Returns the claim data of a specific claim for a given process ID. + [.contract-item] [[PolicyDefaultFlow-getPayoutData-bytes32-uint256-]] ==== `[.contract-item-name]#++getPayoutData++#++(bytes32 processId, uint256 payoutId) → bytes++` [.item-kind]#external# +Returns the payout data for a given process and payout ID. + [.contract-item] [[PolicyDefaultFlow-getComponentContract--]] ==== `[.contract-item-name]#++getComponentContract++#++() → contract ComponentController++` [.item-kind]#internal# +Returns the ComponentController contract instance. + [.contract-item] [[PolicyDefaultFlow-getPoolContract--]] ==== `[.contract-item-name]#++getPoolContract++#++() → contract PoolController++` [.item-kind]#internal# +Returns the PoolController contract instance from the registry. + [.contract-item] [[PolicyDefaultFlow-getPolicyContract--]] ==== `[.contract-item-name]#++getPolicyContract++#++() → contract PolicyController++` [.item-kind]#internal# +Returns the PolicyController contract instance from the registry. + [.contract-item] [[PolicyDefaultFlow-getQueryContract--]] ==== `[.contract-item-name]#++getQueryContract++#++() → contract QueryModule++` [.item-kind]#internal# +Returns the QueryModule contract instance from the registry. + [.contract-item] [[PolicyDefaultFlow-getTreasuryContract--]] ==== `[.contract-item-name]#++getTreasuryContract++#++() → contract TreasuryModule++` [.item-kind]#internal# +Retrieves the TreasuryModule contract instance. + diff --git a/docs/modules/api/pages/modules.adoc b/docs/modules/api/pages/modules.adoc index 12e44043..6835576b 100644 --- a/docs/modules/api/pages/modules.adoc +++ b/docs/modules/api/pages/modules.adoc @@ -257,23 +257,6 @@ State Variables: - `validRole`: A mapping that stores the validity of each role. It maps a role identifier (bytes32) to a boolean value indicating whether the role is valid. - `_defaultAdminSet`: A boolean flag indicating whether the default admin role has been set. -Functions: - -- `_afterInitialize()`: Internal function called after contract initialization, which adds the product owner, oracle provider, and risk pool keeper roles. It calls the `_populateValidRoles()` function. -- `_getName()`: Internal pure function that returns the name of the contract as a bytes32 value. -- `setDefaultAdminRole(address defaultAdmin)`: Sets the default admin role for the Access Control List (ACL) by granting the DEFAULT_ADMIN_ROLE to the specified address. It can only be called once, and emits a `RoleGranted` event. -- `grantRole(bytes32 role, address principal)`: Grants a specific role to a principal (address). The caller must be an instance operator. It checks the validity of the role and calls the `grantRole()` function from the `AccessControl` contract. -- `revokeRole(bytes32 role, address principal)`: Revokes a specific role from a principal. The caller must be an instance operator. It calls the `revokeRole()` function from the `AccessControl` contract. -- `renounceRole(bytes32 role, address principal)`: Removes a principal from a specific role in the access control list (ACL) of the contract. It calls the `renounceRole()` function from the `AccessControl` contract. -- `addRole(bytes32 role)`: Adds a new role to the Access Control List. The caller must be an instance operator. It checks if the role is already valid and adds it to the `validRole` mapping. -- `invalidateRole(bytes32 role)`: Invalidates a role by marking it as not valid. The caller must be an instance operator. It checks if the role is valid and updates the `validRole` mapping. -- `hasRole(bytes32 role, address principal)`: Checks if a given principal has a specific role. It returns a boolean value indicating whether the principal has the specified role. -- `getDefaultAdminRole()`: Returns the bytes32 value of the DEFAULT_ADMIN_ROLE. -- `getProductOwnerRole()`: Returns the bytes32 value of the PRODUCT_OWNER_ROLE. -- `getOracleProviderRole()`: Returns the bytes32 value of the ORACLE_PROVIDER_ROLE. -- `getRiskpoolKeeperRole()`: Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. -- `_populateValidRoles()`: Internal function that populates the `validRole` mapping with the roles considered valid for the contract. It sets the validity of the predefined roles to true. - Modifiers: - `onlyInstanceOperator`: A modifier that restricts access to functions to only instance operators. @@ -386,54 +369,80 @@ It also sets a default admin role and manages the validity of roles through the [[AccessController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +This function is called after contract initialization and adds the product owner, oracle provider, and riskpool keeper roles. + [.contract-item] [[AccessController-_getName--]] ==== `[.contract-item-name]#++_getName++#++() → bytes32++` [.item-kind]#internal# +Returns the name of the contract. + [.contract-item] [[AccessController-setDefaultAdminRole-address-]] ==== `[.contract-item-name]#++setDefaultAdminRole++#++(address defaultAdmin)++` [.item-kind]#external# +Sets the default admin role for the Access Control List (ACL). + [.contract-item] [[AccessController-grantRole-bytes32-address-]] ==== `[.contract-item-name]#++grantRole++#++(bytes32 role, address principal)++` [.item-kind]#public# +Grants a role to a principal. + [.contract-item] [[AccessController-revokeRole-bytes32-address-]] ==== `[.contract-item-name]#++revokeRole++#++(bytes32 role, address principal)++` [.item-kind]#public# +Revokes the specified role from the specified principal. + [.contract-item] [[AccessController-renounceRole-bytes32-address-]] ==== `[.contract-item-name]#++renounceRole++#++(bytes32 role, address principal)++` [.item-kind]#public# +Removes the specified `principal` from the `role` in the access control list (ACL) of the contract. + [.contract-item] [[AccessController-addRole-bytes32-]] ==== `[.contract-item-name]#++addRole++#++(bytes32 role)++` [.item-kind]#public# +Adds a new role to the Access Control List. + [.contract-item] [[AccessController-invalidateRole-bytes32-]] ==== `[.contract-item-name]#++invalidateRole++#++(bytes32 role)++` [.item-kind]#public# +Invalidates a role. + [.contract-item] [[AccessController-hasRole-bytes32-address-]] ==== `[.contract-item-name]#++hasRole++#++(bytes32 role, address principal) → bool++` [.item-kind]#public# +Checks if a given principal has a specific role. + [.contract-item] [[AccessController-getDefaultAdminRole--]] ==== `[.contract-item-name]#++getDefaultAdminRole++#++() → bytes32++` [.item-kind]#public# +Returns the default admin role. + [.contract-item] [[AccessController-getProductOwnerRole--]] ==== `[.contract-item-name]#++getProductOwnerRole++#++() → bytes32++` [.item-kind]#public# +Returns the bytes32 value of the PRODUCT_OWNER_ROLE. + [.contract-item] [[AccessController-getOracleProviderRole--]] ==== `[.contract-item-name]#++getOracleProviderRole++#++() → bytes32++` [.item-kind]#public# +Returns the bytes32 identifier of the Oracle Provider role. + [.contract-item] [[AccessController-getRiskpoolKeeperRole--]] ==== `[.contract-item-name]#++getRiskpoolKeeperRole++#++() → bytes32++` [.item-kind]#public# +Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. + :onlyRiskpoolService: pass:normal[xref:#BundleController-onlyRiskpoolService--[`++onlyRiskpoolService++`]] :onlyFundableBundle: pass:normal[xref:#BundleController-onlyFundableBundle-uint256-[`++onlyFundableBundle++`]] :_afterInitialize: pass:normal[xref:#BundleController-_afterInitialize--[`++_afterInitialize++`]] @@ -480,21 +489,6 @@ The smart contract is used to manage bundles, which are collections of policies. - There is a private variable `_bundleCount` to keep track of the number of bundles created. - The contract includes modifiers to restrict access to certain functions, such as `onlyRiskpoolService` and `onlyFundableBundle`. -Functions: - -- `_afterInitialize()`: Internal function that initializes references to other contracts after contract deployment. -- `create()`: Allows the RiskpoolService contract to create a new bundle and mint a corresponding NFT token. -- `fund()`: Enables the RiskpoolService contract to add funds to a bundle's capital and balance. -- `defund()`: Allows the RiskpoolService contract to withdraw funds from a bundle. -- `lock()`: Locks a bundle of assets by changing its state to "Locked." -- `unlock()`: Unlocks a bundle, changing its state back to "Active." -- `close()`: Closes a bundle of policies. -- `burn()`: Burns a bundle, changing its state to "Burned." -- `collateralizePolicy()`: Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. -- `processPremium()`: Processes the premium payment for a given bundle and updates its balance. -- `processPayout()`: Processes a payout for a policy from a bundle. -- `releasePolicy()`: Releases a policy and updates the bundle's capital. - The contract includes various modifiers and event emitters to enforce access control and emit relevant events. Overall, the `BundleController` contract provides functionality to manage bundles and their associated policies, including creating, funding, locking, unlocking, closing, burning, collateralizing, and releasing policies within a bundle. @@ -585,106 +579,158 @@ Overall, the `BundleController` contract provides functionality to manage bundle [[BundleController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +Performs internal operations after the contract initialization. + [.contract-item] [[BundleController-create-address-uint256-bytes-uint256-]] ==== `[.contract-item-name]#++create++#++(address owner_, uint256 riskpoolId_, bytes filter_, uint256 amount_) → uint256 bundleId++` [.item-kind]#external# +Creates a new bundle and mints a corresponding NFT token. Only callable by the RiskpoolService contract. + [.contract-item] [[BundleController-fund-uint256-uint256-]] ==== `[.contract-item-name]#++fund++#++(uint256 bundleId, uint256 amount)++` [.item-kind]#external# +Adds funds to a bundle's capital and balance. + [.contract-item] [[BundleController-defund-uint256-uint256-]] ==== `[.contract-item-name]#++defund++#++(uint256 bundleId, uint256 amount)++` [.item-kind]#external# +Allows the Riskpool service to withdraw `amount` from the `bundleId` Bundle. + [.contract-item] [[BundleController-lock-uint256-]] ==== `[.contract-item-name]#++lock++#++(uint256 bundleId)++` [.item-kind]#external# +Locks a bundle of assets. + [.contract-item] [[BundleController-unlock-uint256-]] ==== `[.contract-item-name]#++unlock++#++(uint256 bundleId)++` [.item-kind]#external# +Unlocks a bundle, changing its state to active. + [.contract-item] [[BundleController-close-uint256-]] ==== `[.contract-item-name]#++close++#++(uint256 bundleId)++` [.item-kind]#external# +Closes a bundle of policies. + [.contract-item] [[BundleController-burn-uint256-]] ==== `[.contract-item-name]#++burn++#++(uint256 bundleId)++` [.item-kind]#external# +Burns a bundle and changes its state to Burned. + [.contract-item] [[BundleController-collateralizePolicy-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++collateralizePolicy++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# +Collateralizes a policy by locking a specific amount of capital in the corresponding bundle. + [.contract-item] [[BundleController-processPremium-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++processPremium++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# +Process the premium payment for a given bundle and update its balance. + [.contract-item] [[BundleController-processPayout-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# +Processes a payout for a policy from a bundle. + [.contract-item] [[BundleController-releasePolicy-uint256-bytes32-]] ==== `[.contract-item-name]#++releasePolicy++#++(uint256 bundleId, bytes32 processId) → uint256 remainingCollateralAmount++` [.item-kind]#external# +Release a policy and update the bundle capital. + [.contract-item] [[BundleController-getOwner-uint256-]] ==== `[.contract-item-name]#++getOwner++#++(uint256 bundleId) → address++` [.item-kind]#public# +Returns the address of the owner of the token associated with the given bundle ID. + [.contract-item] [[BundleController-getState-uint256-]] ==== `[.contract-item-name]#++getState++#++(uint256 bundleId) → enum IBundle.BundleState++` [.item-kind]#public# +Returns the state of the bundle with the given ID. + [.contract-item] [[BundleController-getFilter-uint256-]] ==== `[.contract-item-name]#++getFilter++#++(uint256 bundleId) → bytes++` [.item-kind]#public# +Returns the filter of a given bundle. + [.contract-item] [[BundleController-getCapacity-uint256-]] ==== `[.contract-item-name]#++getCapacity++#++(uint256 bundleId) → uint256++` [.item-kind]#public# +Returns the available capacity of a bundle. + [.contract-item] [[BundleController-getTotalValueLocked-uint256-]] ==== `[.contract-item-name]#++getTotalValueLocked++#++(uint256 bundleId) → uint256++` [.item-kind]#public# +Returns the total value locked in a particular bundle. + [.contract-item] [[BundleController-getBalance-uint256-]] ==== `[.contract-item-name]#++getBalance++#++(uint256 bundleId) → uint256++` [.item-kind]#public# +Returns the balance of a specific bundle. + [.contract-item] [[BundleController-getToken--]] ==== `[.contract-item-name]#++getToken++#++() → contract BundleToken++` [.item-kind]#external# +Returns the BundleToken contract instance. + [.contract-item] [[BundleController-getBundle-uint256-]] ==== `[.contract-item-name]#++getBundle++#++(uint256 bundleId) → struct IBundle.Bundle++` [.item-kind]#public# +Returns the bundle with the specified bundle ID. + [.contract-item] [[BundleController-bundles--]] ==== `[.contract-item-name]#++bundles++#++() → uint256++` [.item-kind]#public# +Returns the number of bundles created. + [.contract-item] [[BundleController-unburntBundles-uint256-]] ==== `[.contract-item-name]#++unburntBundles++#++(uint256 riskpoolId) → uint256++` [.item-kind]#external# +Returns the number of unburnt bundles for a given riskpool ID. + [.contract-item] [[BundleController-_getPoolController--]] ==== `[.contract-item-name]#++_getPoolController++#++() → contract PoolController _poolController++` [.item-kind]#internal# +Returns the pool controller contract instance. + [.contract-item] [[BundleController-_changeState-uint256-enum-IBundle-BundleState-]] ==== `[.contract-item-name]#++_changeState++#++(uint256 bundleId, enum IBundle.BundleState newState)++` [.item-kind]#internal# +Changes the state of a bundle. + [.contract-item] [[BundleController-_setState-uint256-enum-IBundle-BundleState-]] ==== `[.contract-item-name]#++_setState++#++(uint256 bundleId, enum IBundle.BundleState newState)++` [.item-kind]#internal# +Sets the state and updated timestamp of a given bundle. + [.contract-item] [[BundleController-_checkStateTransition-enum-IBundle-BundleState-enum-IBundle-BundleState-]] ==== `[.contract-item-name]#++_checkStateTransition++#++(enum IBundle.BundleState oldState, enum IBundle.BundleState newState)++` [.item-kind]#internal# +Checks if a state transition is valid. + :onlyComponentOwnerService: pass:normal[xref:#ComponentController-onlyComponentOwnerService--[`++onlyComponentOwnerService++`]] :onlyInstanceOperatorService: pass:normal[xref:#ComponentController-onlyInstanceOperatorService--[`++onlyInstanceOperatorService++`]] :propose: pass:normal[xref:#ComponentController-propose-contract-IComponent-[`++propose++`]] @@ -730,32 +776,6 @@ The smart contract provides functionality to manage and control components in a The contract defines several mappings and sets to store information about components, such as their addresses, IDs, states, and types. It also includes modifiers to restrict access to certain functions based on the caller's role. -Functions: - -- `propose()`: Allows the owner service of a component to propose a new component to the system. It verifies that the component and its name do not already exist and emits an event indicating the successful proposal. -- `_persistComponent()`: Persists a new component into the system by assigning it an ID and updating the necessary mappings and sets. -- `exists()`: Checks if a component with the given ID exists in the system. -- `approve()`: Approves a component with the given ID, changing its state to "Active" and emitting an event. If the component is a product, it sets the policy flow in the `_policyFlowByProductId` mapping. -- `decline()`: Changes the state of a component with the given ID to "Declined" and emits an event. It also calls the `declineCallback` function of the component. -- `suspend()`: Suspends a component with the given ID by changing its state to "Suspended" and emitting an event. It also calls the `suspendCallback` function of the component. -- `resume()`: Resumes a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `resumeCallback` function of the component. -- `pause()`: Pauses a component with the given ID by changing its state to "Paused" and emitting an event. It also calls the `pauseCallback` function of the component. -- `unpause()`: Unpauses a component with the given ID by changing its state to "Active" and emitting an event. It also calls the `unpauseCallback` function of the component. -- `archiveFromComponentOwner()`: Archives a component with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. -- `archiveFromInstanceOperator()`: Archives a component instance with the given ID by changing its state to "Archived" and emitting an event. It also calls the `archiveCallback` function of the component. -- `getComponent()`: Retrieves the component with the given ID. -- `getComponentId()`: Retrieves the ID of a registered component given its address. -- `getComponentType()`: Retrieves the component type of a given component ID. -- `getComponentState()`: Retrieves the state of the component with the given ID. -- `getOracleId()`: Retrieves the oracle ID at the specified index. -- `getRiskpoolId()`: Retrieves the risk pool ID at the specified index. -- `getProductId()`: Retrieves the product ID at the specified index. -- `getRequiredRole()`: Retrieves the required role for a given component type. -- `components()`: Returns the number of components currently stored in the contract. -- `products()`: Returns the number of products in the `_products` set. -- `oracles()`: Returns the number of oracles registered in the `_oracles` set. -- `riskpools()`: Returns the number of risk pools in the set. - The contract also includes various modifiers (`onlyComponentOwnerService` and `onlyInstanceOperatorService`) to ensure that only authorized callers can access certain functions. The contract imports several Solidity files from external dependencies and uses the `EnumerableSet` library from the OpenZeppelin library for set operations. @@ -853,118 +873,187 @@ The contract imports several Solidity files from external dependencies and uses [[ComponentController-propose-contract-IComponent-]] ==== `[.contract-item-name]#++propose++#++(contract IComponent component)++` [.item-kind]#external# +Proposes a new component to the system. + [.contract-item] [[ComponentController-_persistComponent-contract-IComponent-]] ==== `[.contract-item-name]#++_persistComponent++#++(contract IComponent component) → uint256 id++` [.item-kind]#internal# +Persists a new component into the system. + [.contract-item] [[ComponentController-exists-uint256-]] ==== `[.contract-item-name]#++exists++#++(uint256 id) → bool++` [.item-kind]#public# +Checks if a component with the given ID exists. + [.contract-item] [[ComponentController-approve-uint256-]] ==== `[.contract-item-name]#++approve++#++(uint256 id)++` [.item-kind]#external# +Approves a component with the given id. + [.contract-item] [[ComponentController-decline-uint256-]] ==== `[.contract-item-name]#++decline++#++(uint256 id)++` [.item-kind]#external# +Changes the state of a component with the given ID to "Declined" and emits a LogComponentDeclined event. + Calls the declineCallback function of the component with the given ID. + [.contract-item] [[ComponentController-suspend-uint256-]] ==== `[.contract-item-name]#++suspend++#++(uint256 id)++` [.item-kind]#external# +Suspends a component with the given ID. + [.contract-item] [[ComponentController-resume-uint256-]] ==== `[.contract-item-name]#++resume++#++(uint256 id)++` [.item-kind]#external# +Resumes a component by changing its state to Active and emitting an event. + It also calls the resumeCallback() function of the component to inform it about the resuming. + [.contract-item] [[ComponentController-pause-uint256-]] ==== `[.contract-item-name]#++pause++#++(uint256 id)++` [.item-kind]#external# +Pauses the component with the given ID. + [.contract-item] [[ComponentController-unpause-uint256-]] ==== `[.contract-item-name]#++unpause++#++(uint256 id)++` [.item-kind]#external# +Unpauses a component with the given id. + [.contract-item] [[ComponentController-archiveFromComponentOwner-uint256-]] ==== `[.contract-item-name]#++archiveFromComponentOwner++#++(uint256 id)++` [.item-kind]#external# +Archives a component with the given ID, changing its state to "Archived" and emitting a LogComponentArchived event. + Also calls the archiveCallback function of the component with the given ID, informing it about the archiving. + [.contract-item] [[ComponentController-archiveFromInstanceOperator-uint256-]] ==== `[.contract-item-name]#++archiveFromInstanceOperator++#++(uint256 id)++` [.item-kind]#external# +Archives a component instance with the given ID. + [.contract-item] [[ComponentController-getComponent-uint256-]] ==== `[.contract-item-name]#++getComponent++#++(uint256 id) → contract IComponent component++` [.item-kind]#public# +Returns the component with the given ID. + [.contract-item] [[ComponentController-getComponentId-address-]] ==== `[.contract-item-name]#++getComponentId++#++(address componentAddress) → uint256 id++` [.item-kind]#public# +Returns the ID of a registered component given its address. + [.contract-item] [[ComponentController-getComponentType-uint256-]] ==== `[.contract-item-name]#++getComponentType++#++(uint256 id) → enum IComponent.ComponentType componentType++` [.item-kind]#public# +Returns the component type of a given component ID. + [.contract-item] [[ComponentController-getComponentState-uint256-]] ==== `[.contract-item-name]#++getComponentState++#++(uint256 id) → enum IComponent.ComponentState componentState++` [.item-kind]#public# +Returns the state of the component with the given ID. + [.contract-item] [[ComponentController-getOracleId-uint256-]] ==== `[.contract-item-name]#++getOracleId++#++(uint256 idx) → uint256 oracleId++` [.item-kind]#public# +Returns the oracle ID at the given index. + [.contract-item] [[ComponentController-getRiskpoolId-uint256-]] ==== `[.contract-item-name]#++getRiskpoolId++#++(uint256 idx) → uint256 riskpoolId++` [.item-kind]#public# +Returns the riskpool ID at the specified index. + [.contract-item] [[ComponentController-getProductId-uint256-]] ==== `[.contract-item-name]#++getProductId++#++(uint256 idx) → uint256 productId++` [.item-kind]#public# +Returns the product ID at the given index in the _products set. + [.contract-item] [[ComponentController-getRequiredRole-enum-IComponent-ComponentType-]] ==== `[.contract-item-name]#++getRequiredRole++#++(enum IComponent.ComponentType componentType) → bytes32++` [.item-kind]#external# +Returns the required role for a given component type. + [.contract-item] [[ComponentController-components--]] ==== `[.contract-item-name]#++components++#++() → uint256 count++` [.item-kind]#public# +Returns the number of components currently stored in the contract. + [.contract-item] [[ComponentController-products--]] ==== `[.contract-item-name]#++products++#++() → uint256 count++` [.item-kind]#public# +Returns the number of products in the set '_products'. + [.contract-item] [[ComponentController-oracles--]] ==== `[.contract-item-name]#++oracles++#++() → uint256 count++` [.item-kind]#public# +Returns the number of oracles registered in the _oracles set. + [.contract-item] [[ComponentController-riskpools--]] ==== `[.contract-item-name]#++riskpools++#++() → uint256 count++` [.item-kind]#public# +Returns the number of risk pools in the EnumerableSet. + [.contract-item] [[ComponentController-isProduct-uint256-]] ==== `[.contract-item-name]#++isProduct++#++(uint256 id) → bool++` [.item-kind]#public# +Check if a product exists in the set of products. + [.contract-item] [[ComponentController-isOracle-uint256-]] ==== `[.contract-item-name]#++isOracle++#++(uint256 id) → bool++` [.item-kind]#public# +Checks if an oracle with a given ID exists. + [.contract-item] [[ComponentController-isRiskpool-uint256-]] ==== `[.contract-item-name]#++isRiskpool++#++(uint256 id) → bool++` [.item-kind]#public# +Checks if a given ID is a riskpool. + [.contract-item] [[ComponentController-getPolicyFlow-uint256-]] ==== `[.contract-item-name]#++getPolicyFlow++#++(uint256 productId) → address _policyFlow++` [.item-kind]#public# +Returns the address of the policy flow for a given product ID. + [.contract-item] [[ComponentController-_changeState-uint256-enum-IComponent-ComponentState-]] ==== `[.contract-item-name]#++_changeState++#++(uint256 componentId, enum IComponent.ComponentState newState)++` [.item-kind]#internal# +Changes the state of a component. + [.contract-item] [[ComponentController-_checkStateTransition-enum-IComponent-ComponentState-enum-IComponent-ComponentState-]] ==== `[.contract-item-name]#++_checkStateTransition++#++(enum IComponent.ComponentState oldState, enum IComponent.ComponentState newState)++` [.item-kind]#internal# +Checks if the state transition is valid. +Throws an error if the newState is the same as the oldState. +Throws an error if the transition from Created state is not to Proposed state. +Throws an error if the transition from Proposed state is not to Active or Declined state. +Throws an error if the transition from Declined state is attempted. +Throws an error if the transition from Active state is not to Paused or Suspended state. +Throws an error if the transition from Paused state is not to Active or Archived state. +Throws an error if the transition from Suspended state is not to Active or Archived state. +Throws an error if the initial state is not handled. + :_afterInitialize: pass:normal[xref:#LicenseController-_afterInitialize--[`++_afterInitialize++`]] :getAuthorizationStatus: pass:normal[xref:#LicenseController-getAuthorizationStatus-address-[`++getAuthorizationStatus++`]] :_isValidCall: pass:normal[xref:#LicenseController-_isValidCall-uint256-[`++_isValidCall++`]] @@ -986,13 +1075,6 @@ The contract imports two other contracts: `ComponentController.sol` and `CoreCon It also imports several interfaces from the "etherisc/gif-interface" library, including `IComponent.sol`, `IProduct.sol`, and `ILicense.sol`. The contract includes a private variable `_component` of type `ComponentController`, which is used to interact with the `ComponentController` contract. -Functions: - -- `_afterInitialize()`: Called after the contract is initialized. This function sets the `_component` variable to the address of the `ComponentController` contract. -- `getAuthorizationStatus(address productAddress)`: Takes a product address as input and returns the authorization status of the product. It retrieves the product's ID using the `_component.getComponentId(productAddress)` function, checks if the product is authorized by calling the internal `_isValidCall(productId)` function, and retrieves the associated policy flow address using the `_component.getPolicyFlow(productId)` function. -- `_isValidCall(uint256 productId)`: Checks if a product with the given ID is currently active. It does this by calling `_component.getComponentState(productId)` and comparing the returned value to `IComponent.ComponentState.Active`. -- `_getProduct(uint256 id)`: Retrieves the product associated with the given ID. It checks if the ID corresponds to a valid product using `_component.isProduct(id)` and then retrieves the product using `_component.getComponent(id)`. - Overall, the `LicenseController` contract serves as a controller for managing licenses and provides functions to check the authorization status and activity of products within an insurance ecosystem. [.contract-index] @@ -1038,18 +1120,26 @@ Overall, the `LicenseController` contract serves as a controller for managing li [[LicenseController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +This function is called after the contract is initialized and sets the `_component` variable to the address of the `ComponentController` contract. + [.contract-item] [[LicenseController-getAuthorizationStatus-address-]] ==== `[.contract-item-name]#++getAuthorizationStatus++#++(address productAddress) → uint256 productId, bool isAuthorized, address policyFlow++` [.item-kind]#public# +Returns the authorization status of a given product address. + [.contract-item] [[LicenseController-_isValidCall-uint256-]] ==== `[.contract-item-name]#++_isValidCall++#++(uint256 productId) → bool++` [.item-kind]#internal# +Checks if a product is currently active. + [.contract-item] [[LicenseController-_getProduct-uint256-]] ==== `[.contract-item-name]#++_getProduct++#++(uint256 id) → contract IProduct product++` [.item-kind]#internal# +Returns the product associated with the given ID. + :metadata: pass:normal[xref:#PolicyController-metadata-mapping-bytes32----struct-IPolicy-Metadata-[`++metadata++`]] :applications: pass:normal[xref:#PolicyController-applications-mapping-bytes32----struct-IPolicy-Application-[`++applications++`]] :policies: pass:normal[xref:#PolicyController-policies-mapping-bytes32----struct-IPolicy-Policy-[`++policies++`]] @@ -1096,7 +1186,7 @@ It also provides functions for claim creation, confirmation, decline, closure, a Additionally, it includes functions to process payouts, retrieve metadata and application information, and get the number of claims and payouts associated with a policy. The contract inherits from the `IPolicy` interface and the `CoreController` contract. -1. State Variables: +State Variables: - `metadata`: A mapping that stores metadata associated with policy flows. - `applications`: A mapping that stores insurance applications associated with policy flows. @@ -1107,30 +1197,6 @@ The contract inherits from the `IPolicy` interface and the `CoreController` cont - `_assigendProcessIds`: A counter variable for assigning unique process IDs. - `_component`: A reference to the `ComponentController` contract. -2. Functions: - -- `_afterInitialize()`: An internal function that sets the `_component` variable during contract initialization. -- `createPolicyFlow()`: Creates a new policy flow with the given owner, product ID, and additional data. -- `createApplication()`: Creates a new insurance application for a policy flow with the specified process ID, premium amount, sum insured amount, and additional data. -- `collectPremium()`: Collects premium for a policy by adding the specified amount to the paid premium amount. -- `revokeApplication()`: Revokes an application for a policy flow. -- `underwriteApplication()`: Changes the state of an application to "Underwritten". -- `declineApplication()`: Declines an application for a policy flow. -- `createPolicy()`: Creates a new policy for a given application process ID. -- `adjustPremiumSumInsured()`: Adjusts the premium and sum insured amount of an insurance policy application. -- `expirePolicy()`: Expires a policy with the given process ID. -- `closeExpiredPolicy()`: Closes a policy that has expired and has no open claims. -- `createClaim()`: Creates a new claim for a given policy. It checks the authorization of the caller, ensures the policy is active, validates the claim amount, and creates the claim. It emits a `LogClaimCreated` event. -- `confirmClaim()`: Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. It is called by the Policy contract and validates the policy, open claims, claim amount, and updates the claim and policy state. It emits a `LogClaimConfirmed` event. -- `declineClaim()`: Allows the Policy contract to decline a claim. It validates the policy, open claims, and claim state, updates the claim state to Declined, and emits a `LogClaimDeclined` event. -- `closeClaim()`: Closes a claim for a given policy. It validates the policy, open claims, claim state, and unpaid payouts. If the claim is fully paid, it changes the claim state to Closed and emits a `LogClaimClosed` event. -- `createPayout()`: Creates a new payout for a confirmed claim in a policy. It validates the policy, claim, payout amount, and creates the payout. It emits a `LogPayoutCreated` event. -- `processPayout()`: Processes a payout for a policy and claim. It validates the policy, open claims, payout state, updates the payout state, and updates the claim state and policy state if the claim is fully paid. It emits a `LogPayoutProcessed` event and potentially a `LogClaimClosed` event. -- `getMetadata()`: Returns the metadata for a given process ID. It retrieves the metadata and ensures it exists. -- `getApplication()`: Returns the application associated with a provided process ID. It retrieves the application and ensures it exists. -- `getNumberOfClaims()`: Returns the number of claims associated with a given process ID by calling the `getPolicy` function. -- `getNumberOfPayouts()`: Returns the number of payouts for a given process ID. - Overall, these functions provide functionality for creating, managing, and processing claims and payouts within the insurance policy contract. [.contract-index] @@ -1216,102 +1282,152 @@ Overall, these functions provide functionality for creating, managing, and proce [[PolicyController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +Internal function that sets the _component variable to the address of the ComponentController contract. + [.contract-item] [[PolicyController-createPolicyFlow-address-uint256-bytes-]] ==== `[.contract-item-name]#++createPolicyFlow++#++(address owner, uint256 productId, bytes data) → bytes32 processId++` [.item-kind]#external# +Creates a new policy flow for a given owner and product. + [.contract-item] [[PolicyController-createApplication-bytes32-uint256-uint256-bytes-]] ==== `[.contract-item-name]#++createApplication++#++(bytes32 processId, uint256 premiumAmount, uint256 sumInsuredAmount, bytes data)++` [.item-kind]#external# +Creates a new insurance application for a given process ID. + [.contract-item] [[PolicyController-collectPremium-bytes32-uint256-]] ==== `[.contract-item-name]#++collectPremium++#++(bytes32 processId, uint256 amount)++` [.item-kind]#external# +Collects premium for a policy. + [.contract-item] [[PolicyController-revokeApplication-bytes32-]] ==== `[.contract-item-name]#++revokeApplication++#++(bytes32 processId)++` [.item-kind]#external# +Revokes an application with the given process ID. + [.contract-item] [[PolicyController-underwriteApplication-bytes32-]] ==== `[.contract-item-name]#++underwriteApplication++#++(bytes32 processId)++` [.item-kind]#external# +Changes the state of an application to underwritten. + [.contract-item] [[PolicyController-declineApplication-bytes32-]] ==== `[.contract-item-name]#++declineApplication++#++(bytes32 processId)++` [.item-kind]#external# +Declines an application for a policy flow. + [.contract-item] [[PolicyController-createPolicy-bytes32-]] ==== `[.contract-item-name]#++createPolicy++#++(bytes32 processId)++` [.item-kind]#external# +Creates a new policy for a given application process ID. + [.contract-item] [[PolicyController-adjustPremiumSumInsured-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++adjustPremiumSumInsured++#++(bytes32 processId, uint256 expectedPremiumAmount, uint256 sumInsuredAmount)++` [.item-kind]#external# +This function adjusts the premium and sum insured amount of an insurance policy application. + [.contract-item] [[PolicyController-expirePolicy-bytes32-]] ==== `[.contract-item-name]#++expirePolicy++#++(bytes32 processId)++` [.item-kind]#external# +This function expires a policy with the given process ID. + [.contract-item] [[PolicyController-closePolicy-bytes32-]] ==== `[.contract-item-name]#++closePolicy++#++(bytes32 processId)++` [.item-kind]#external# +Closes a policy that has expired and has no open claims. + [.contract-item] [[PolicyController-createClaim-bytes32-uint256-bytes-]] ==== `[.contract-item-name]#++createClaim++#++(bytes32 processId, uint256 claimAmount, bytes data) → uint256 claimId++` [.item-kind]#external# +Creates a new claim for a given policy. + [.contract-item] [[PolicyController-confirmClaim-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++confirmClaim++#++(bytes32 processId, uint256 claimId, uint256 confirmedAmount)++` [.item-kind]#external# +Confirms a claim for a policy, updating the claim state to Confirmed and setting the confirmed amount. + [.contract-item] [[PolicyController-declineClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++declineClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# +This function allows the Policy contract to decline a claim. + [.contract-item] [[PolicyController-closeClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++closeClaim++#++(bytes32 processId, uint256 claimId)++` [.item-kind]#external# +Closes a claim for a given policy. + [.contract-item] [[PolicyController-createPayout-bytes32-uint256-uint256-bytes-]] ==== `[.contract-item-name]#++createPayout++#++(bytes32 processId, uint256 claimId, uint256 payoutAmount, bytes data) → uint256 payoutId++` [.item-kind]#external# +Creates a new payout for a confirmed claim in a policy. + [.contract-item] [[PolicyController-processPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 payoutId)++` [.item-kind]#external# +Processes a payout for a policy and claim. + [.contract-item] [[PolicyController-getMetadata-bytes32-]] ==== `[.contract-item-name]#++getMetadata++#++(bytes32 processId) → struct IPolicy.Metadata _metadata++` [.item-kind]#public# +Returns the metadata for the given process ID. + [.contract-item] [[PolicyController-getApplication-bytes32-]] ==== `[.contract-item-name]#++getApplication++#++(bytes32 processId) → struct IPolicy.Application application++` [.item-kind]#public# +Returns the application associated with the provided process ID. + [.contract-item] [[PolicyController-getNumberOfClaims-bytes32-]] ==== `[.contract-item-name]#++getNumberOfClaims++#++(bytes32 processId) → uint256 numberOfClaims++` [.item-kind]#external# +Returns the number of claims associated with a given process ID. + [.contract-item] [[PolicyController-getNumberOfPayouts-bytes32-]] ==== `[.contract-item-name]#++getNumberOfPayouts++#++(bytes32 processId) → uint256 numberOfPayouts++` [.item-kind]#external# +Returns the number of payouts for a given process ID. + [.contract-item] [[PolicyController-getPolicy-bytes32-]] ==== `[.contract-item-name]#++getPolicy++#++(bytes32 processId) → struct IPolicy.Policy policy++` [.item-kind]#public# +Returns the policy associated with the given process ID. + [.contract-item] [[PolicyController-getClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++getClaim++#++(bytes32 processId, uint256 claimId) → struct IPolicy.Claim claim++` [.item-kind]#public# +Returns the claim with the given ID for the specified process. + [.contract-item] [[PolicyController-getPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++getPayout++#++(bytes32 processId, uint256 payoutId) → struct IPolicy.Payout payout++` [.item-kind]#public# +Retrieves a specific payout from a process. + [.contract-item] [[PolicyController-processIds--]] ==== `[.contract-item-name]#++processIds++#++() → uint256++` [.item-kind]#external# +Returns the number of process IDs that have been assigned. + :FULL_COLLATERALIZATION_LEVEL: pass:normal[xref:#PoolController-FULL_COLLATERALIZATION_LEVEL-uint256[`++FULL_COLLATERALIZATION_LEVEL++`]] :COLLATERALIZATION_LEVEL_CAP: pass:normal[xref:#PoolController-COLLATERALIZATION_LEVEL_CAP-uint256[`++COLLATERALIZATION_LEVEL_CAP++`]] :DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES: pass:normal[xref:#PoolController-DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES-uint256[`++DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES++`]] @@ -1362,19 +1478,6 @@ The smart contract manages riskpools, their registration, funding, defunding, co - It has references to other contracts: ComponentController, PolicyController, and BundleController. - The contract defines modifiers for access control to specific functions. -Functions: - -- `_afterInitialize()`: Called after contract initialization to set addresses of other contracts. -- `registerRiskpool()`: Allows the registration of a new riskpool with the specified parameters. It emits an event upon successful registration. -- `setRiskpoolForProduct()`: Sets the riskpool ID for a given product ID. -- `fund()`: Adds funds to a specific riskpool. -- `defund()`: Allows the Riskpool service to defund a riskpool by a specified amount. -- `underwrite()`: Collateralizes a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. It emits events related to collateralization process success or failure. -- `calculateCollateral()`: Calculates the required collateral amount for a given riskpool and sum insured amount. -- `processPremium()`: Processes the premium payment for a policy by calling the corresponding function in the riskpool contract. -- `processPayout()`: Processes a payout for a policy in the Pool. It verifies the availability of sufficient capital, locked capital, and balance in the riskpool before processing the payout. -- `release()`: Releases a policy's collateral from the riskpool. - Overall, the PoolController contract provides functionality to manage riskpools, register riskpools, collateralize policies, process premium payments, process payouts, and release collaterals. It acts as an intermediary between the PolicyController, ComponentController, and BundleController contracts to coordinate these operations. [.contract-index] @@ -1468,90 +1571,134 @@ Overall, the PoolController contract provides functionality to manage riskpools, [[PoolController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +This function is called after the contract is initialized and sets the addresses of the ComponentController, PolicyController, and BundleController contracts. + [.contract-item] [[PoolController-registerRiskpool-uint256-address-address-uint256-uint256-]] ==== `[.contract-item-name]#++registerRiskpool++#++(uint256 riskpoolId, address wallet, address erc20Token, uint256 collateralizationLevel, uint256 sumOfSumInsuredCap)++` [.item-kind]#external# +Registers a new riskpool with the given parameters. + [.contract-item] [[PoolController-setRiskpoolForProduct-uint256-uint256-]] ==== `[.contract-item-name]#++setRiskpoolForProduct++#++(uint256 productId, uint256 riskpoolId)++` [.item-kind]#external# +Sets the riskpool ID for a given product ID. + [.contract-item] [[PoolController-fund-uint256-uint256-]] ==== `[.contract-item-name]#++fund++#++(uint256 riskpoolId, uint256 amount)++` [.item-kind]#external# +Adds funds to a specific riskpool. + [.contract-item] [[PoolController-defund-uint256-uint256-]] ==== `[.contract-item-name]#++defund++#++(uint256 riskpoolId, uint256 amount)++` [.item-kind]#external# +Allows the Riskpool service to defund the specified Riskpool by the given amount. + [.contract-item] [[PoolController-underwrite-bytes32-]] ==== `[.contract-item-name]#++underwrite++#++(bytes32 processId) → bool success++` [.item-kind]#external# +Underwrites a policy application by calculating the required collateral amount and asking the responsible riskpool to secure the application. + [.contract-item] [[PoolController-calculateCollateral-uint256-uint256-]] ==== `[.contract-item-name]#++calculateCollateral++#++(uint256 riskpoolId, uint256 sumInsuredAmount) → uint256 collateralAmount++` [.item-kind]#public# +Calculates the required collateral amount for a given riskpool and sum insured amount. + [.contract-item] [[PoolController-processPremium-bytes32-uint256-]] ==== `[.contract-item-name]#++processPremium++#++(bytes32 processId, uint256 amount)++` [.item-kind]#external# +Processes the premium payment for a policy. + [.contract-item] [[PoolController-processPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 amount)++` [.item-kind]#external# +Process a payout for a policy flow in the Pool. + [.contract-item] [[PoolController-release-bytes32-]] ==== `[.contract-item-name]#++release++#++(bytes32 processId)++` [.item-kind]#external# +Releases a policy's collateral from the riskpool. + [.contract-item] [[PoolController-setMaximumNumberOfActiveBundles-uint256-uint256-]] ==== `[.contract-item-name]#++setMaximumNumberOfActiveBundles++#++(uint256 riskpoolId, uint256 maxNumberOfActiveBundles)++` [.item-kind]#external# +Sets the maximum number of active bundles for a given riskpool ID. + [.contract-item] [[PoolController-getMaximumNumberOfActiveBundles-uint256-]] ==== `[.contract-item-name]#++getMaximumNumberOfActiveBundles++#++(uint256 riskpoolId) → uint256 maximumNumberOfActiveBundles++` [.item-kind]#public# +Returns the maximum number of active bundles for a given riskpool ID. + [.contract-item] [[PoolController-riskpools--]] ==== `[.contract-item-name]#++riskpools++#++() → uint256 idx++` [.item-kind]#external# +Returns the number of risk pools created. + [.contract-item] [[PoolController-getRiskpool-uint256-]] ==== `[.contract-item-name]#++getRiskpool++#++(uint256 riskpoolId) → struct IPool.Pool riskPool++` [.item-kind]#public# +Returns the risk pool data for a given risk pool ID. + [.contract-item] [[PoolController-getRiskPoolForProduct-uint256-]] ==== `[.contract-item-name]#++getRiskPoolForProduct++#++(uint256 productId) → uint256 riskpoolId++` [.item-kind]#external# +Returns the risk pool ID associated with the given product ID. + [.contract-item] [[PoolController-activeBundles-uint256-]] ==== `[.contract-item-name]#++activeBundles++#++(uint256 riskpoolId) → uint256 numberOfActiveBundles++` [.item-kind]#external# +Returns the number of active bundles for a given risk pool ID. + [.contract-item] [[PoolController-getActiveBundleId-uint256-uint256-]] ==== `[.contract-item-name]#++getActiveBundleId++#++(uint256 riskpoolId, uint256 bundleIdx) → uint256 bundleId++` [.item-kind]#external# +Returns the active bundle ID at the specified index for the given risk pool ID. + [.contract-item] [[PoolController-addBundleIdToActiveSet-uint256-uint256-]] ==== `[.contract-item-name]#++addBundleIdToActiveSet++#++(uint256 riskpoolId, uint256 bundleId)++` [.item-kind]#external# +Adds a bundle ID to the active set for a specific riskpool ID. + [.contract-item] [[PoolController-removeBundleIdFromActiveSet-uint256-uint256-]] ==== `[.contract-item-name]#++removeBundleIdFromActiveSet++#++(uint256 riskpoolId, uint256 bundleId)++` [.item-kind]#external# +Removes a bundle ID from the active set for a given risk pool ID. + [.contract-item] [[PoolController-getFullCollateralizationLevel--]] ==== `[.contract-item-name]#++getFullCollateralizationLevel++#++() → uint256++` [.item-kind]#external# +Returns the full collateralization level of the contract. + [.contract-item] [[PoolController-_getRiskpoolComponent-struct-IPolicy-Metadata-]] ==== `[.contract-item-name]#++_getRiskpoolComponent++#++(struct IPolicy.Metadata metadata) → contract IRiskpool riskpool++` [.item-kind]#internal# +Returns the Riskpool contract instance associated with the given policy metadata. + [.contract-item] [[PoolController-_getRiskpoolForId-uint256-]] ==== `[.contract-item-name]#++_getRiskpoolForId++#++(uint256 riskpoolId) → contract IRiskpool riskpool++` [.item-kind]#internal# +Returns the Riskpool contract instance for a given riskpoolId. + :onlyOracleService: pass:normal[xref:#QueryModule-onlyOracleService--[`++onlyOracleService++`]] :onlyResponsibleOracle: pass:normal[xref:#QueryModule-onlyResponsibleOracle-uint256-address-[`++onlyResponsibleOracle++`]] :_afterInitialize: pass:normal[xref:#QueryModule-_afterInitialize--[`++_afterInitialize++`]] @@ -1582,16 +1729,6 @@ The contract includes two modifiers: 1. `onlyOracleService`: It requires that the caller must be the contract with the address specified by the "OracleService" contract address stored in the CoreController. 2. `onlyResponsibleOracle`: It checks if the oracle specified by the `responder` address is responsible for the given `requestId`. -The contract provides the following functions: - -- `_afterInitialize()`: Sets the `_component` variable to the address of the "ComponentController" contract. It is called after contract initialization and only during the initialization phase. -- `request()`: Allows the creation of a new oracle request with the specified parameters. It requires the caller to have the "Query" policy flow. The function validates the callback contract address to ensure it corresponds to a product. It creates a new oracle request in the `_oracleRequests` array, initializes its fields, and calls the `request()` function on the responsible oracle. It emits a `LogOracleRequested` event. -- `respond()`: Enables an oracle to respond to a specific oracle request. The caller must be the contract specified by the "OracleService" address. The function verifies that the responding oracle is responsible for the given request and then calls the callback method on the callback contract. It emits a `LogOracleResponded` event. -- `cancel()`: Cancels an oracle request with the given `requestId`. The caller must have the "Query" policy flow. It removes the request from the `_oracleRequests` array and emits a `LogOracleCanceled` event. -- `getProcessId()`: Returns the process ID associated with a given `requestId`. -- `getOracleRequestCount()`: Returns the number of oracle requests made. -- `_getOracle()`: Retrieves the Oracle component with the specified ID. It checks if the component is an Oracle component and if it is in an active state. If the checks pass, it returns the Oracle component. - The contract emits the following events: 1. `LogOracleRequested`: Indicates the creation of a new oracle request and includes the process ID, request ID, and responsible oracle ID. @@ -1662,30 +1799,44 @@ The contract emits the following events: [[QueryModule-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +Internal function that sets the `_component` variable to the `ComponentController` contract address. + [.contract-item] [[QueryModule-request-bytes32-bytes-string-address-uint256-]] ==== `[.contract-item-name]#++request++#++(bytes32 processId, bytes input, string callbackMethodName, address callbackContractAddress, uint256 responsibleOracleId) → uint256 requestId++` [.item-kind]#external# +Creates a new oracle request for a given process with the specified input data and callback information. + [.contract-item] [[QueryModule-respond-uint256-address-bytes-]] ==== `[.contract-item-name]#++respond++#++(uint256 requestId, address responder, bytes data)++` [.item-kind]#external# +Responds to an oracle request with the given requestId, responder address, and data. + [.contract-item] [[QueryModule-cancel-uint256-]] ==== `[.contract-item-name]#++cancel++#++(uint256 requestId)++` [.item-kind]#external# +Cancels an oracle request. + [.contract-item] [[QueryModule-getProcessId-uint256-]] ==== `[.contract-item-name]#++getProcessId++#++(uint256 requestId) → bytes32 processId++` [.item-kind]#external# +Returns the process ID associated with a given request ID. + [.contract-item] [[QueryModule-getOracleRequestCount--]] ==== `[.contract-item-name]#++getOracleRequestCount++#++() → uint256 _count++` [.item-kind]#public# +Returns the number of oracle requests made. + [.contract-item] [[QueryModule-_getOracle-uint256-]] ==== `[.contract-item-name]#++_getOracle++#++(uint256 id) → contract IOracle oracle++` [.item-kind]#internal# +Returns the Oracle component with the specified ID. + :MAX_CONTRACTS: pass:normal[xref:#RegistryController-MAX_CONTRACTS-uint256[`++MAX_CONTRACTS++`]] :release: pass:normal[xref:#RegistryController-release-bytes32[`++release++`]] :startBlock: pass:normal[xref:#RegistryController-startBlock-uint256[`++startBlock++`]] @@ -1726,27 +1877,6 @@ The contract provides functionality for registering, deregistering, and accessin - `_contractsInRelease`: A mapping that keeps track of the number of contracts in each release. - `_contractNames`: A private EnumerableSet that stores the names of contracts in a specific release. -Functions: - -- `initializeRegistry()`: Initializes the registry with an initial release and sets the deployment block for reading logs. -- `ensureSender()`: Verifies if the provided sender address matches the address of the contract with the given contract name in the current release. -- `getRelease()`: Returns the current release identifier. -- `getContract()`: Returns the address of a contract by its name in the current release. -- `register()`: Registers a contract with a given name and address in the current release. -- `deregister()`: Deregisters a contract from the current release. -- `getContractInRelease()`: Returns the address of a specific contract within a given release. -- `registerInRelease()`: Registers a contract in a specific release. -- `deregisterInRelease()`: Deregisters a contract name from a specific release. -- `prepareRelease()`: Prepares a new release by copying all contracts from the current release to the new one. -- `contracts()`: Returns the number of contracts in the current release. -- `contractName()`: Returns the name of the contract at the specified index in the contractNames set. - -Internal functions: - -- `_getContractInRelease()`: Returns the address of a contract in a specific release. -- `_registerInRelease()`: Registers a contract in a release. -- `_deregisterInRelease()`: Deregisters a contract in a specific release. - The contract emits various events such as `LogContractRegistered` and `LogContractDeregistered` to notify when contracts are registered or deregistered. Overall, the `RegistryController` contract provides a mechanism to manage and track contracts within different releases, allowing for controlled registration and deregistration of contracts. @@ -1809,81 +1939,91 @@ Overall, the `RegistryController` contract provides a mechanism to manage and tr [[RegistryController-initializeRegistry-bytes32-]] ==== `[.contract-item-name]#++initializeRegistry++#++(bytes32 _initialRelease)++` [.item-kind]#public# +Initializes the GIF registry with an initial release and sets the deployment block for reading logs. + [.contract-item] [[RegistryController-ensureSender-address-bytes32-]] ==== `[.contract-item-name]#++ensureSender++#++(address sender, bytes32 _contractName) → bool _senderMatches++` [.item-kind]#external# +Verifies if the provided 'sender' address matches the address of the contract with the given '_contractName' in the current release. + [.contract-item] [[RegistryController-getRelease--]] ==== `[.contract-item-name]#++getRelease++#++() → bytes32 _release++` [.item-kind]#external# -get current release +Returns the current release identifier. [.contract-item] [[RegistryController-getContract-bytes32-]] ==== `[.contract-item-name]#++getContract++#++(bytes32 _contractName) → address _addr++` [.item-kind]#public# -Get contract's address in the current release +Returns the address of a contract by its name. [.contract-item] [[RegistryController-register-bytes32-address-]] ==== `[.contract-item-name]#++register++#++(bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# -Register contract in the current release +Registers a contract with a given name and address. [.contract-item] [[RegistryController-deregister-bytes32-]] ==== `[.contract-item-name]#++deregister++#++(bytes32 _contractName)++` [.item-kind]#external# -Deregister contract in the current release +Deregisters a contract from the current release. [.contract-item] [[RegistryController-getContractInRelease-bytes32-bytes32-]] ==== `[.contract-item-name]#++getContractInRelease++#++(bytes32 _release, bytes32 _contractName) → address _addr++` [.item-kind]#external# -Get contract's address in certain release +Returns the address of a specific contract within a given release. [.contract-item] [[RegistryController-registerInRelease-bytes32-bytes32-address-]] ==== `[.contract-item-name]#++registerInRelease++#++(bytes32 _release, bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# -Register contract in certain release +Registers a contract in a specific release. [.contract-item] [[RegistryController-deregisterInRelease-bytes32-bytes32-]] ==== `[.contract-item-name]#++deregisterInRelease++#++(bytes32 _release, bytes32 _contractName)++` [.item-kind]#external# +Deregisters a contract name from a specific release. + [.contract-item] [[RegistryController-prepareRelease-bytes32-]] ==== `[.contract-item-name]#++prepareRelease++#++(bytes32 _newRelease)++` [.item-kind]#external# -Create new release, copy contracts from previous release +Prepares a new release by copying all contracts from the current release to the new one. [.contract-item] [[RegistryController-contracts--]] ==== `[.contract-item-name]#++contracts++#++() → uint256 _numberOfContracts++` [.item-kind]#external# +Returns the number of contracts in the current release. + [.contract-item] [[RegistryController-contractName-uint256-]] ==== `[.contract-item-name]#++contractName++#++(uint256 idx) → bytes32 _contractName++` [.item-kind]#external# +Returns the name of the contract at the specified index in the contractNames set. + [.contract-item] [[RegistryController-_getContractInRelease-bytes32-bytes32-]] ==== `[.contract-item-name]#++_getContractInRelease++#++(bytes32 _release, bytes32 _contractName) → address _addr++` [.item-kind]#internal# -Get contract's address in certain release +Returns the address of a contract in a specific release. [.contract-item] [[RegistryController-_registerInRelease-bytes32-bool-bytes32-address-]] ==== `[.contract-item-name]#++_registerInRelease++#++(bytes32 _release, bool isNewRelease, bytes32 _contractName, address _contractAddress)++` [.item-kind]#internal# -Register contract in certain release +Registers a contract in a release. [.contract-item] [[RegistryController-_deregisterInRelease-bytes32-bytes32-]] ==== `[.contract-item-name]#++_deregisterInRelease++#++(bytes32 _release, bytes32 _contractName)++` [.item-kind]#internal# -Deregister contract in certain release +Internal function to deregister a contract in a specific release. :FRACTION_FULL_UNIT: pass:normal[xref:#TreasuryModule-FRACTION_FULL_UNIT-uint256[`++FRACTION_FULL_UNIT++`]] :FRACTIONAL_FEE_MAX: pass:normal[xref:#TreasuryModule-FRACTIONAL_FEE_MAX-uint256[`++FRACTIONAL_FEE_MAX++`]] @@ -2084,94 +2224,141 @@ Overall, the TreasuryModule contract provides functionality for managing fees, p [[TreasuryModule-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +Sets the addresses of the BundleController, ComponentController, PolicyController, and PoolController contracts. + [.contract-item] [[TreasuryModule-suspend--]] ==== `[.contract-item-name]#++suspend++#++()++` [.item-kind]#external# +Suspends the treasury contract, preventing any further transfers or withdrawals. + Can only be called by the instance operator. + [.contract-item] [[TreasuryModule-resume--]] ==== `[.contract-item-name]#++resume++#++()++` [.item-kind]#external# +Resumes the treasury contract after it has been paused. + [.contract-item] [[TreasuryModule-setProductToken-uint256-address-]] ==== `[.contract-item-name]#++setProductToken++#++(uint256 productId, address erc20Address)++` [.item-kind]#external# +Sets the ERC20 token address for a given product ID and its associated risk pool. + [.contract-item] [[TreasuryModule-setInstanceWallet-address-]] ==== `[.contract-item-name]#++setInstanceWallet++#++(address instanceWalletAddress)++` [.item-kind]#external# +Sets the address of the instance wallet. + [.contract-item] [[TreasuryModule-setRiskpoolWallet-uint256-address-]] ==== `[.contract-item-name]#++setRiskpoolWallet++#++(uint256 riskpoolId, address riskpoolWalletAddress)++` [.item-kind]#external# +Sets the wallet address for a specific riskpool. + [.contract-item] [[TreasuryModule-createFeeSpecification-uint256-uint256-uint256-bytes-]] ==== `[.contract-item-name]#++createFeeSpecification++#++(uint256 componentId, uint256 fixedFee, uint256 fractionalFee, bytes feeCalculationData) → struct ITreasury.FeeSpecification++` [.item-kind]#external# +Creates a fee specification for a given component. + [.contract-item] [[TreasuryModule-setPremiumFees-struct-ITreasury-FeeSpecification-]] ==== `[.contract-item-name]#++setPremiumFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# +Sets the premium fees for a specific component. + [.contract-item] [[TreasuryModule-setCapitalFees-struct-ITreasury-FeeSpecification-]] ==== `[.contract-item-name]#++setCapitalFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# +Sets the fee specification for a given component, which includes the fixed and fractional fees. + [.contract-item] [[TreasuryModule-calculateFee-uint256-uint256-]] ==== `[.contract-item-name]#++calculateFee++#++(uint256 componentId, uint256 amount) → uint256 feeAmount, uint256 netAmount++` [.item-kind]#public# +Calculates the fee amount and net amount for a given component ID and amount. + [.contract-item] [[TreasuryModule-processPremium-bytes32-]] ==== `[.contract-item-name]#++processPremium++#++(bytes32 processId) → bool success, uint256 feeAmount, uint256 netPremiumAmount++` [.item-kind]#external# +Processes the premium for a given policy process ID. + [.contract-item] [[TreasuryModule-processPremium-bytes32-uint256-]] ==== `[.contract-item-name]#++processPremium++#++(bytes32 processId, uint256 amount) → bool success, uint256 feeAmount, uint256 netAmount++` [.item-kind]#public# +Processes a premium payment for a policy. + [.contract-item] [[TreasuryModule-processPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(bytes32 processId, uint256 payoutId) → uint256 feeAmount, uint256 netPayoutAmount++` [.item-kind]#external# +Processes a payout for a specific process and payout ID. + [.contract-item] [[TreasuryModule-processCapital-uint256-uint256-]] ==== `[.contract-item-name]#++processCapital++#++(uint256 bundleId, uint256 capitalAmount) → uint256 feeAmount, uint256 netCapitalAmount++` [.item-kind]#external# +Processes capital for a given bundle ID and calculates fees. Transfers fees to the instance wallet and net capital to the riskpool wallet. + [.contract-item] [[TreasuryModule-processWithdrawal-uint256-uint256-]] ==== `[.contract-item-name]#++processWithdrawal++#++(uint256 bundleId, uint256 amount) → uint256 feeAmount, uint256 netAmount++` [.item-kind]#external# +Processes a withdrawal of a specified amount from a bundle, transferring the funds to the bundle owner's wallet. + [.contract-item] [[TreasuryModule-getComponentToken-uint256-]] ==== `[.contract-item-name]#++getComponentToken++#++(uint256 componentId) → contract IERC20 token++` [.item-kind]#public# +Returns the ERC20 token address associated with the given component ID. + [.contract-item] [[TreasuryModule-getFeeSpecification-uint256-]] ==== `[.contract-item-name]#++getFeeSpecification++#++(uint256 componentId) → struct ITreasury.FeeSpecification++` [.item-kind]#public# +Returns the fee specification of a given component. + [.contract-item] [[TreasuryModule-getFractionFullUnit--]] ==== `[.contract-item-name]#++getFractionFullUnit++#++() → uint256++` [.item-kind]#public# +Returns the value of the constant FRACTION_FULL_UNIT. + [.contract-item] [[TreasuryModule-getInstanceWallet--]] ==== `[.contract-item-name]#++getInstanceWallet++#++() → address++` [.item-kind]#public# +Returns the address of the instance wallet. + [.contract-item] [[TreasuryModule-getRiskpoolWallet-uint256-]] ==== `[.contract-item-name]#++getRiskpoolWallet++#++(uint256 riskpoolId) → address++` [.item-kind]#public# +Returns the wallet address of the specified risk pool. + [.contract-item] [[TreasuryModule-_calculatePremiumFee-struct-ITreasury-FeeSpecification-bytes32-]] ==== `[.contract-item-name]#++_calculatePremiumFee++#++(struct ITreasury.FeeSpecification feeSpec, bytes32 processId) → struct IPolicy.Application application, uint256 feeAmount++` [.item-kind]#internal# +Calculates the premium fee for a given fee specification and process ID. + [.contract-item] [[TreasuryModule-_calculateFee-struct-ITreasury-FeeSpecification-uint256-]] ==== `[.contract-item-name]#++_calculateFee++#++(struct ITreasury.FeeSpecification feeSpec, uint256 amount) → uint256 feeAmount++` [.item-kind]#internal# +Calculates the fee amount based on the given fee specification and the transaction amount. + [.contract-item] [[TreasuryModule-_getRiskpoolWallet-bytes32-]] ==== `[.contract-item-name]#++_getRiskpoolWallet++#++(bytes32 processId) → uint256 riskpoolId, address riskpoolWalletAddress++` [.item-kind]#internal# +Returns the riskpool ID and wallet address for a given process ID. + [.contract-item] [[TreasuryModule-LogTransferHelperInputValidation1Failed-bool-address-address-]] ==== `[.contract-item-name]#++LogTransferHelperInputValidation1Failed++#++(bool tokenIsContract, address from, address to)++` [.item-kind]#event# diff --git a/docs/modules/api/pages/services.adoc b/docs/modules/api/pages/services.adoc index 056b0f8b..923835ba 100644 --- a/docs/modules/api/pages/services.adoc +++ b/docs/modules/api/pages/services.adoc @@ -220,30 +220,44 @@ import "@etherisc/gif-contracts/contracts/services/ComponentOwnerService.sol"; [[ComponentOwnerService-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +This function is called after the contract is initialized and can only be called once. It sets the component controller contract address. + [.contract-item] [[ComponentOwnerService-propose-contract-IComponent-]] ==== `[.contract-item-name]#++propose++#++(contract IComponent component)++` [.item-kind]#external# +Propose a new component to be added to the system. + [.contract-item] [[ComponentOwnerService-stake-uint256-]] ==== `[.contract-item-name]#++stake++#++(uint256 id)++` [.item-kind]#external# +Stake function allows the owner to stake a specific id. + [.contract-item] [[ComponentOwnerService-withdraw-uint256-]] ==== `[.contract-item-name]#++withdraw++#++(uint256 id)++` [.item-kind]#external# +Allows the owner to withdraw a specific asset by its ID. + [.contract-item] [[ComponentOwnerService-pause-uint256-]] ==== `[.contract-item-name]#++pause++#++(uint256 id)++` [.item-kind]#external# +Pauses a specific component with the given ID. + [.contract-item] [[ComponentOwnerService-unpause-uint256-]] ==== `[.contract-item-name]#++unpause++#++(uint256 id)++` [.item-kind]#external# +Unpauses a component with the specified ID. + [.contract-item] [[ComponentOwnerService-archive-uint256-]] ==== `[.contract-item-name]#++archive++#++(uint256 id)++` [.item-kind]#external# +Archives a component with the given ID from the component owner's inventory. + :onlyInstanceOperatorAddress: pass:normal[xref:#InstanceOperatorService-onlyInstanceOperatorAddress--[`++onlyInstanceOperatorAddress++`]] :_afterInitialize: pass:normal[xref:#InstanceOperatorService-_afterInitialize--[`++_afterInitialize++`]] :prepareRelease: pass:normal[xref:#InstanceOperatorService-prepareRelease-bytes32-[`++prepareRelease++`]] @@ -366,102 +380,156 @@ import "@etherisc/gif-contracts/contracts/services/InstanceOperatorService.sol"; [[InstanceOperatorService-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +Performs the necessary setup after contract initialization. + - Sets the component, pool, and treasury contracts. + - Transfers ownership to the message sender. + - Links the bundle module to the bundle token. + - Sets the default admin role. + [.contract-item] [[InstanceOperatorService-prepareRelease-bytes32-]] ==== `[.contract-item-name]#++prepareRelease++#++(bytes32 _newRelease)++` [.item-kind]#external# +Prepares a new release by calling the prepareRelease function from the Registry contract. + [.contract-item] [[InstanceOperatorService-register-bytes32-address-]] ==== `[.contract-item-name]#++register++#++(bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# +Registers a contract in the registry. + [.contract-item] [[InstanceOperatorService-deregister-bytes32-]] ==== `[.contract-item-name]#++deregister++#++(bytes32 _contractName)++` [.item-kind]#external# +Deregisters a contract from the registry. + [.contract-item] [[InstanceOperatorService-registerInRelease-bytes32-bytes32-address-]] ==== `[.contract-item-name]#++registerInRelease++#++(bytes32 _release, bytes32 _contractName, address _contractAddress)++` [.item-kind]#external# +Registers a contract in a specific release. + [.contract-item] [[InstanceOperatorService-deregisterInRelease-bytes32-bytes32-]] ==== `[.contract-item-name]#++deregisterInRelease++#++(bytes32 _release, bytes32 _contractName)++` [.item-kind]#external# +Deregisters a contract from a specific release in the registry. + [.contract-item] [[InstanceOperatorService-createRole-bytes32-]] ==== `[.contract-item-name]#++createRole++#++(bytes32 _role)++` [.item-kind]#external# +Adds a new role to the access control contract. + [.contract-item] [[InstanceOperatorService-invalidateRole-bytes32-]] ==== `[.contract-item-name]#++invalidateRole++#++(bytes32 _role)++` [.item-kind]#external# +Invalidates a role. + [.contract-item] [[InstanceOperatorService-grantRole-bytes32-address-]] ==== `[.contract-item-name]#++grantRole++#++(bytes32 role, address principal)++` [.item-kind]#external# +Grants a role to a principal. + [.contract-item] [[InstanceOperatorService-revokeRole-bytes32-address-]] ==== `[.contract-item-name]#++revokeRole++#++(bytes32 role, address principal)++` [.item-kind]#external# +Revokes a role from a principal. + [.contract-item] [[InstanceOperatorService-approve-uint256-]] ==== `[.contract-item-name]#++approve++#++(uint256 id)++` [.item-kind]#external# +Approves a component with the given ID and sets its corresponding riskpool ID in the pool contract. + [.contract-item] [[InstanceOperatorService-decline-uint256-]] ==== `[.contract-item-name]#++decline++#++(uint256 id)++` [.item-kind]#external# +Declines a component with the specified ID. + [.contract-item] [[InstanceOperatorService-suspend-uint256-]] ==== `[.contract-item-name]#++suspend++#++(uint256 id)++` [.item-kind]#external# +Suspends the component with the given ID. + [.contract-item] [[InstanceOperatorService-resume-uint256-]] ==== `[.contract-item-name]#++resume++#++(uint256 id)++` [.item-kind]#external# +Resumes the execution of a paused component instance. + [.contract-item] [[InstanceOperatorService-archive-uint256-]] ==== `[.contract-item-name]#++archive++#++(uint256 id)++` [.item-kind]#external# +Archives a component with the given ID from the instance operator's address. + [.contract-item] [[InstanceOperatorService-setDefaultStaking-uint16-bytes-]] ==== `[.contract-item-name]#++setDefaultStaking++#++(uint16 componentType, bytes data)++` [.item-kind]#external# +Sets the default staking for a specific component type. + [.contract-item] [[InstanceOperatorService-adjustStakingRequirements-uint256-bytes-]] ==== `[.contract-item-name]#++adjustStakingRequirements++#++(uint256 id, bytes data)++` [.item-kind]#external# +Adjusts the staking requirements for a specific instance operator by providing the operator ID and the new staking requirements. + [.contract-item] [[InstanceOperatorService-suspendTreasury--]] ==== `[.contract-item-name]#++suspendTreasury++#++()++` [.item-kind]#external# +Suspends the treasury functionality. + [.contract-item] [[InstanceOperatorService-resumeTreasury--]] ==== `[.contract-item-name]#++resumeTreasury++#++()++` [.item-kind]#external# +Resumes the treasury contract. + [.contract-item] [[InstanceOperatorService-setInstanceWallet-address-]] ==== `[.contract-item-name]#++setInstanceWallet++#++(address walletAddress)++` [.item-kind]#external# +Sets the wallet address of the instance operator. + [.contract-item] [[InstanceOperatorService-setRiskpoolWallet-uint256-address-]] ==== `[.contract-item-name]#++setRiskpoolWallet++#++(uint256 riskpoolId, address riskpoolWalletAddress)++` [.item-kind]#external# +Sets the wallet address for a specific risk pool. + [.contract-item] [[InstanceOperatorService-setProductToken-uint256-address-]] ==== `[.contract-item-name]#++setProductToken++#++(uint256 productId, address erc20Address)++` [.item-kind]#external# +Sets the ERC20 token address for a given product ID. + [.contract-item] [[InstanceOperatorService-createFeeSpecification-uint256-uint256-uint256-bytes-]] ==== `[.contract-item-name]#++createFeeSpecification++#++(uint256 componentId, uint256 fixedFee, uint256 fractionalFee, bytes feeCalculationData) → struct ITreasury.FeeSpecification++` [.item-kind]#external# +Returns a FeeSpecification object created with the given parameters. + [.contract-item] [[InstanceOperatorService-setPremiumFees-struct-ITreasury-FeeSpecification-]] ==== `[.contract-item-name]#++setPremiumFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# +Sets the premium fees for the treasury. + [.contract-item] [[InstanceOperatorService-setCapitalFees-struct-ITreasury-FeeSpecification-]] ==== `[.contract-item-name]#++setCapitalFees++#++(struct ITreasury.FeeSpecification feeSpec)++` [.item-kind]#external# +Sets the fee specification for capital fees in the treasury contract. + :BUNDLE_NAME: pass:normal[xref:#InstanceService-BUNDLE_NAME-bytes32[`++BUNDLE_NAME++`]] :COMPONENT_NAME: pass:normal[xref:#InstanceService-COMPONENT_NAME-bytes32[`++COMPONENT_NAME++`]] :POLICY_NAME: pass:normal[xref:#InstanceService-POLICY_NAME-bytes32[`++POLICY_NAME++`]] @@ -639,230 +707,346 @@ import "@etherisc/gif-contracts/contracts/services/InstanceService.sol"; [[InstanceService-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +Internal function that is called after initialization is complete. It sets the bundle, component, policy, pool, and treasury controllers by retrieving their contract addresses. It also sets the chain names. + [.contract-item] [[InstanceService-_setChainNames--]] ==== `[.contract-item-name]#++_setChainNames++#++()++` [.item-kind]#internal# +Sets the names for several blockchain networks by assigning them to their respective chain IDs. + +Sets the names for the Ethereum Mainnet/ETH, Goerli/ETH, Ganache, Gnosis/xDai, Sokol/SPOA, Polygon Mainnet/MATIC, Mumbai/MATIC, Avalanche C-Chain/AVAX and Avalanche Fuji Testnet/AVAX blockchain networks by assigning them to their respective chain IDs. + [.contract-item] [[InstanceService-getChainId--]] ==== `[.contract-item-name]#++getChainId++#++() → uint256 chainId++` [.item-kind]#public# +Returns the chain ID of the current blockchain. + [.contract-item] [[InstanceService-getChainName--]] ==== `[.contract-item-name]#++getChainName++#++() → string chainName++` [.item-kind]#public# +Returns the name of the chain based on its ID. + [.contract-item] [[InstanceService-getInstanceId--]] ==== `[.contract-item-name]#++getInstanceId++#++() → bytes32 instanceId++` [.item-kind]#public# +Returns the instance ID of the contract, which is a hash of the chain ID and the registry address. + [.contract-item] [[InstanceService-getInstanceOperator--]] ==== `[.contract-item-name]#++getInstanceOperator++#++() → address++` [.item-kind]#external# +Returns the address of the current instance operator. + [.contract-item] [[InstanceService-getComponentOwnerService--]] ==== `[.contract-item-name]#++getComponentOwnerService++#++() → contract IComponentOwnerService service++` [.item-kind]#external# +Returns the address of the Component Owner Service contract. + [.contract-item] [[InstanceService-getInstanceOperatorService--]] ==== `[.contract-item-name]#++getInstanceOperatorService++#++() → contract IInstanceOperatorService service++` [.item-kind]#external# +Returns the instance operator service contract address. + [.contract-item] [[InstanceService-getOracleService--]] ==== `[.contract-item-name]#++getOracleService++#++() → contract IOracleService service++` [.item-kind]#external# +Returns the Oracle Service contract instance. + [.contract-item] [[InstanceService-getProductService--]] ==== `[.contract-item-name]#++getProductService++#++() → contract IProductService service++` [.item-kind]#external# +Returns the address of the Product Service contract. + [.contract-item] [[InstanceService-getRiskpoolService--]] ==== `[.contract-item-name]#++getRiskpoolService++#++() → contract IRiskpoolService service++` [.item-kind]#external# +Returns the IRiskpoolService contract instance. + [.contract-item] [[InstanceService-getRegistry--]] ==== `[.contract-item-name]#++getRegistry++#++() → contract IRegistry service++` [.item-kind]#external# +Returns the current instance of the IRegistry contract. + [.contract-item] [[InstanceService-contracts--]] ==== `[.contract-item-name]#++contracts++#++() → uint256 numberOfContracts++` [.item-kind]#external# +Returns the number of contracts registered in the registry. + [.contract-item] [[InstanceService-contractName-uint256-]] ==== `[.contract-item-name]#++contractName++#++(uint256 idx) → bytes32 name++` [.item-kind]#external# +Returns the name of the contract at the specified index in the registry. + [.contract-item] [[InstanceService-getDefaultAdminRole--]] ==== `[.contract-item-name]#++getDefaultAdminRole++#++() → bytes32++` [.item-kind]#external# +Returns the default admin role for the AccessControl contract. + [.contract-item] [[InstanceService-getProductOwnerRole--]] ==== `[.contract-item-name]#++getProductOwnerRole++#++() → bytes32++` [.item-kind]#external# +Returns the role identifier of the product owner role. + [.contract-item] [[InstanceService-getOracleProviderRole--]] ==== `[.contract-item-name]#++getOracleProviderRole++#++() → bytes32++` [.item-kind]#external# +Returns the role identifier for the oracle provider role. + [.contract-item] [[InstanceService-getRiskpoolKeeperRole--]] ==== `[.contract-item-name]#++getRiskpoolKeeperRole++#++() → bytes32++` [.item-kind]#external# +Returns the role identifier for the Riskpool Keeper role. + [.contract-item] [[InstanceService-hasRole-bytes32-address-]] ==== `[.contract-item-name]#++hasRole++#++(bytes32 role, address principal) → bool++` [.item-kind]#external# +Checks if an address has a specific role. + [.contract-item] [[InstanceService-products--]] ==== `[.contract-item-name]#++products++#++() → uint256++` [.item-kind]#external# +Returns the number of products in the component contract. + [.contract-item] [[InstanceService-oracles--]] ==== `[.contract-item-name]#++oracles++#++() → uint256++` [.item-kind]#external# +Returns the number of oracles registered in the component. + [.contract-item] [[InstanceService-riskpools--]] ==== `[.contract-item-name]#++riskpools++#++() → uint256++` [.item-kind]#external# +Returns the number of risk pools in the component. + [.contract-item] [[InstanceService-getComponentId-address-]] ==== `[.contract-item-name]#++getComponentId++#++(address componentAddress) → uint256 componentId++` [.item-kind]#external# +Returns the component ID of a given component address. + [.contract-item] [[InstanceService-getComponentType-uint256-]] ==== `[.contract-item-name]#++getComponentType++#++(uint256 componentId) → enum IComponent.ComponentType componentType++` [.item-kind]#external# +Returns the type of a component given its ID. + [.contract-item] [[InstanceService-getComponentState-uint256-]] ==== `[.contract-item-name]#++getComponentState++#++(uint256 componentId) → enum IComponent.ComponentState componentState++` [.item-kind]#external# +Returns the current state of a specific component. + [.contract-item] [[InstanceService-getComponent-uint256-]] ==== `[.contract-item-name]#++getComponent++#++(uint256 id) → contract IComponent++` [.item-kind]#external# +Returns the component with the specified ID. + [.contract-item] [[InstanceService-getOracleId-uint256-]] ==== `[.contract-item-name]#++getOracleId++#++(uint256 idx) → uint256 oracleId++` [.item-kind]#public# +Returns the oracle ID at the specified index. + [.contract-item] [[InstanceService-getRiskpoolId-uint256-]] ==== `[.contract-item-name]#++getRiskpoolId++#++(uint256 idx) → uint256 riskpoolId++` [.item-kind]#public# +Returns the riskpool ID for the given index. + [.contract-item] [[InstanceService-getProductId-uint256-]] ==== `[.contract-item-name]#++getProductId++#++(uint256 idx) → uint256 productId++` [.item-kind]#public# +Returns the product ID of the component at the given index. + [.contract-item] [[InstanceService-getStakingRequirements-uint256-]] ==== `[.contract-item-name]#++getStakingRequirements++#++(uint256 id) → bytes data++` [.item-kind]#external# +Returns the staking requirements for a specific ID. + [.contract-item] [[InstanceService-getStakedAssets-uint256-]] ==== `[.contract-item-name]#++getStakedAssets++#++(uint256 id) → bytes data++` [.item-kind]#external# +Returns the staked assets for a given ID. + [.contract-item] [[InstanceService-processIds--]] ==== `[.contract-item-name]#++processIds++#++() → uint256 numberOfProcessIds++` [.item-kind]#external# +Returns the number of process IDs in the policy contract. + [.contract-item] [[InstanceService-getMetadata-bytes32-]] ==== `[.contract-item-name]#++getMetadata++#++(bytes32 bpKey) → struct IPolicy.Metadata metadata++` [.item-kind]#external# +Returns the metadata associated with a given business process key. + [.contract-item] [[InstanceService-getApplication-bytes32-]] ==== `[.contract-item-name]#++getApplication++#++(bytes32 processId) → struct IPolicy.Application application++` [.item-kind]#external# +Returns the application data associated with the given process ID. + [.contract-item] [[InstanceService-getPolicy-bytes32-]] ==== `[.contract-item-name]#++getPolicy++#++(bytes32 processId) → struct IPolicy.Policy policy++` [.item-kind]#external# +Returns the policy associated with the given process ID. + [.contract-item] [[InstanceService-claims-bytes32-]] ==== `[.contract-item-name]#++claims++#++(bytes32 processId) → uint256 numberOfClaims++` [.item-kind]#external# +Returns the number of claims associated with a given process ID. + [.contract-item] [[InstanceService-payouts-bytes32-]] ==== `[.contract-item-name]#++payouts++#++(bytes32 processId) → uint256 numberOfPayouts++` [.item-kind]#external# +Returns the number of payouts for a given processId. + [.contract-item] [[InstanceService-getClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++getClaim++#++(bytes32 processId, uint256 claimId) → struct IPolicy.Claim claim++` [.item-kind]#external# +Returns the claim with the given claimId for the specified processId. + [.contract-item] [[InstanceService-getPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++getPayout++#++(bytes32 processId, uint256 payoutId) → struct IPolicy.Payout payout++` [.item-kind]#external# +Returns the information of a specific payout. + [.contract-item] [[InstanceService-getRiskpool-uint256-]] ==== `[.contract-item-name]#++getRiskpool++#++(uint256 riskpoolId) → struct IPool.Pool riskPool++` [.item-kind]#external# +Returns the risk pool with the given ID. + [.contract-item] [[InstanceService-getFullCollateralizationLevel--]] ==== `[.contract-item-name]#++getFullCollateralizationLevel++#++() → uint256++` [.item-kind]#external# +Returns the full collateralization level of the pool. + [.contract-item] [[InstanceService-getCapital-uint256-]] ==== `[.contract-item-name]#++getCapital++#++(uint256 riskpoolId) → uint256 capitalAmount++` [.item-kind]#external# +Returns the capital amount of a given risk pool. + [.contract-item] [[InstanceService-getTotalValueLocked-uint256-]] ==== `[.contract-item-name]#++getTotalValueLocked++#++(uint256 riskpoolId) → uint256 totalValueLockedAmount++` [.item-kind]#external# +Returns the total value locked in a specific risk pool. + [.contract-item] [[InstanceService-getCapacity-uint256-]] ==== `[.contract-item-name]#++getCapacity++#++(uint256 riskpoolId) → uint256 capacityAmount++` [.item-kind]#external# +Returns the available capacity of a risk pool. + [.contract-item] [[InstanceService-getBalance-uint256-]] ==== `[.contract-item-name]#++getBalance++#++(uint256 riskpoolId) → uint256 balanceAmount++` [.item-kind]#external# +Returns the balance amount of a specific risk pool. + [.contract-item] [[InstanceService-activeBundles-uint256-]] ==== `[.contract-item-name]#++activeBundles++#++(uint256 riskpoolId) → uint256 numberOfActiveBundles++` [.item-kind]#external# +Returns the number of active bundles for a given risk pool. + [.contract-item] [[InstanceService-getActiveBundleId-uint256-uint256-]] ==== `[.contract-item-name]#++getActiveBundleId++#++(uint256 riskpoolId, uint256 bundleIdx) → uint256 bundleId++` [.item-kind]#external# +Returns the active bundle ID for a given risk pool and bundle index. + [.contract-item] [[InstanceService-getMaximumNumberOfActiveBundles-uint256-]] ==== `[.contract-item-name]#++getMaximumNumberOfActiveBundles++#++(uint256 riskpoolId) → uint256 maximumNumberOfActiveBundles++` [.item-kind]#external# +Returns the maximum number of active bundles for a given risk pool ID. + [.contract-item] [[InstanceService-getBundleToken--]] ==== `[.contract-item-name]#++getBundleToken++#++() → contract IBundleToken token++` [.item-kind]#external# +Returns the bundle token contract address. + [.contract-item] [[InstanceService-getBundle-uint256-]] ==== `[.contract-item-name]#++getBundle++#++(uint256 bundleId) → struct IBundle.Bundle bundle++` [.item-kind]#external# +Returns the bundle with the given ID. + [.contract-item] [[InstanceService-bundles--]] ==== `[.contract-item-name]#++bundles++#++() → uint256++` [.item-kind]#external# +Returns the number of bundles in the `_bundle` contract. + [.contract-item] [[InstanceService-unburntBundles-uint256-]] ==== `[.contract-item-name]#++unburntBundles++#++(uint256 riskpoolId) → uint256 numberOfUnburntBundles++` [.item-kind]#external# +Returns the number of unburnt bundles for a given risk pool ID. + [.contract-item] [[InstanceService-getTreasuryAddress--]] ==== `[.contract-item-name]#++getTreasuryAddress++#++() → address++` [.item-kind]#external# +Returns the address of the treasury contract. + [.contract-item] [[InstanceService-getInstanceWallet--]] ==== `[.contract-item-name]#++getInstanceWallet++#++() → address++` [.item-kind]#external# +Returns the address of the instance wallet associated with the treasury. + [.contract-item] [[InstanceService-getRiskpoolWallet-uint256-]] ==== `[.contract-item-name]#++getRiskpoolWallet++#++(uint256 riskpoolId) → address++` [.item-kind]#external# +Returns the wallet address of the specified riskpool. + [.contract-item] [[InstanceService-getComponentToken-uint256-]] ==== `[.contract-item-name]#++getComponentToken++#++(uint256 componentId) → contract IERC20++` [.item-kind]#external# +Returns the IERC20 token associated with the given component ID. + [.contract-item] [[InstanceService-getFeeFractionFullUnit--]] ==== `[.contract-item-name]#++getFeeFractionFullUnit++#++() → uint256++` [.item-kind]#external# +Returns the fraction of the treasury fee expressed in full units. + :_afterInitialize: pass:normal[xref:#OracleService-_afterInitialize--[`++_afterInitialize++`]] :respond: pass:normal[xref:#OracleService-respond-uint256-bytes-[`++respond++`]] @@ -916,10 +1100,14 @@ import "@etherisc/gif-contracts/contracts/services/OracleService.sol"; [[OracleService-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +Sets the `_query` variable to an instance of the `IQuery` contract. + [.contract-item] [[OracleService-respond-uint256-bytes-]] ==== `[.contract-item-name]#++respond++#++(uint256 _requestId, bytes _data)++` [.item-kind]#external# +Allows a registered oracle to respond to a data request. + :NAME: pass:normal[xref:#ProductService-NAME-bytes32[`++NAME++`]] :constructor: pass:normal[xref:#ProductService-constructor-address-[`++constructor++`]] :fallback: pass:normal[xref:#ProductService-fallback--[`++fallback++`]] @@ -955,24 +1143,26 @@ import "@etherisc/gif-contracts/contracts/services/ProductService.sol"; [[ProductService-constructor-address-]] ==== `[.contract-item-name]#++constructor++#++(address _registry)++` [.item-kind]#public# +Constructor function that initializes the contract with a registry address. + [.contract-item] [[ProductService-fallback--]] ==== `[.contract-item-name]#++fallback++#++()++` [.item-kind]#external# +Fallback function that ensures the caller is a registered product and authorized to execute the delegated policy flow. + [.contract-item] [[ProductService-_delegate-address-]] ==== `[.contract-item-name]#++_delegate++#++(address implementation)++` [.item-kind]#internal# Delegates the current call to `implementation`. -This function does not return to its internal call site, it will return directly to the external caller. -This function is a 1:1 copy of _delegate from -https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.6/contracts/proxy/Proxy.sol - [.contract-item] [[ProductService-_license--]] ==== `[.contract-item-name]#++_license++#++() → contract ILicense++` [.item-kind]#internal# +Returns the instance of the License contract. + :RISKPOOL_NAME: pass:normal[xref:#RiskpoolService-RISKPOOL_NAME-bytes32[`++RISKPOOL_NAME++`]] :onlyProposedRiskpool: pass:normal[xref:#RiskpoolService-onlyProposedRiskpool--[`++onlyProposedRiskpool++`]] :onlyActiveRiskpool: pass:normal[xref:#RiskpoolService-onlyActiveRiskpool--[`++onlyActiveRiskpool++`]] @@ -1080,55 +1270,83 @@ import "@etherisc/gif-contracts/contracts/services/RiskpoolService.sol"; [[RiskpoolService-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +Sets the addresses of the BundleController, ComponentController, PoolController, and TreasuryModule contracts. + [.contract-item] [[RiskpoolService-registerRiskpool-address-address-uint256-uint256-]] ==== `[.contract-item-name]#++registerRiskpool++#++(address wallet, address erc20Token, uint256 collateralizationLevel, uint256 sumOfSumInsuredCap)++` [.item-kind]#external# +Registers a new risk pool with the given parameters. + [.contract-item] [[RiskpoolService-createBundle-address-bytes-uint256-]] ==== `[.contract-item-name]#++createBundle++#++(address owner, bytes filter, uint256 initialCapital) → uint256 bundleId++` [.item-kind]#external# +Creates a new bundle with the given parameters and adds it to the active set of the riskpool. + [.contract-item] [[RiskpoolService-fundBundle-uint256-uint256-]] ==== `[.contract-item-name]#++fundBundle++#++(uint256 bundleId, uint256 amount) → uint256 netAmount++` [.item-kind]#external# +This function allows a user to fund a bundle with a specified amount. + [.contract-item] [[RiskpoolService-defundBundle-uint256-uint256-]] ==== `[.contract-item-name]#++defundBundle++#++(uint256 bundleId, uint256 amount) → uint256 netAmount++` [.item-kind]#external# +Defunds a bundle by withdrawing a specified amount of tokens from it. + [.contract-item] [[RiskpoolService-lockBundle-uint256-]] ==== `[.contract-item-name]#++lockBundle++#++(uint256 bundleId)++` [.item-kind]#external# +Locks a bundle, preventing it from being traded or redeemed. + [.contract-item] [[RiskpoolService-unlockBundle-uint256-]] ==== `[.contract-item-name]#++unlockBundle++#++(uint256 bundleId)++` [.item-kind]#external# +Unlocks a bundle for trading by adding its ID to the active set of a risk pool and unlocking the bundle. + [.contract-item] [[RiskpoolService-closeBundle-uint256-]] ==== `[.contract-item-name]#++closeBundle++#++(uint256 bundleId)++` [.item-kind]#external# +Closes a bundle and removes it from the active set of the owning riskpool. + [.contract-item] [[RiskpoolService-burnBundle-uint256-]] ==== `[.contract-item-name]#++burnBundle++#++(uint256 bundleId)++` [.item-kind]#external# +Burns a closed bundle, withdrawing its remaining balance and defunding it from the riskpool and the pool. + [.contract-item] [[RiskpoolService-collateralizePolicy-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++collateralizePolicy++#++(uint256 bundleId, bytes32 processId, uint256 collateralAmount)++` [.item-kind]#external# +Collateralizes a policy by locking a specified amount of collateral for a given bundle and process ID. + [.contract-item] [[RiskpoolService-processPremium-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++processPremium++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# +Processes a premium payment for a specific bundle. + [.contract-item] [[RiskpoolService-processPayout-uint256-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(uint256 bundleId, bytes32 processId, uint256 amount)++` [.item-kind]#external# +Processes a payout for a specific bundle. + [.contract-item] [[RiskpoolService-releasePolicy-uint256-bytes32-]] ==== `[.contract-item-name]#++releasePolicy++#++(uint256 bundleId, bytes32 processId) → uint256 collateralAmount++` [.item-kind]#external# +Releases a policy for a given bundle and process ID. + [.contract-item] [[RiskpoolService-setMaximumNumberOfActiveBundles-uint256-uint256-]] ==== `[.contract-item-name]#++setMaximumNumberOfActiveBundles++#++(uint256 riskpoolId, uint256 maxNumberOfActiveBundles)++` [.item-kind]#external# +Sets the maximum number of active bundles for a given riskpool. + diff --git a/docs/modules/api/pages/shared.adoc b/docs/modules/api/pages/shared.adoc index cf8510b5..2b07069d 100644 --- a/docs/modules/api/pages/shared.adoc +++ b/docs/modules/api/pages/shared.adoc @@ -92,22 +92,32 @@ import "@etherisc/gif-contracts/contracts/shared/CoreController.sol"; [[CoreController-constructor--]] ==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# +Constructor function that disables initializers. + [.contract-item] [[CoreController-initialize-address-]] ==== `[.contract-item-name]#++initialize++#++(address registry)++` [.item-kind]#public# +Initializes the contract with the provided registry address. + [.contract-item] [[CoreController-_getName--]] ==== `[.contract-item-name]#++_getName++#++() → bytes32++` [.item-kind]#internal# +Returns the name of the contract. + [.contract-item] [[CoreController-_afterInitialize--]] ==== `[.contract-item-name]#++_afterInitialize++#++()++` [.item-kind]#internal# +This function is called after the contract is initialized and can be used to perform additional setup. + [.contract-item] [[CoreController-_getContractAddress-bytes32-]] ==== `[.contract-item-name]#++_getContractAddress++#++(bytes32 contractName) → address contractAddress++` [.item-kind]#internal# +Returns the address of a registered contract by its name. + :onlyAdmin: pass:normal[xref:#CoreProxy-onlyAdmin--[`++onlyAdmin++`]] :constructor: pass:normal[xref:#CoreProxy-constructor-address-bytes-[`++constructor++`]] :implementation: pass:normal[xref:#CoreProxy-implementation--[`++implementation++`]] @@ -193,14 +203,20 @@ import "@etherisc/gif-contracts/contracts/shared/CoreProxy.sol"; [[CoreProxy-constructor-address-bytes-]] ==== `[.contract-item-name]#++constructor++#++(address _controller, bytes encoded_initializer)++` [.item-kind]#public# +Constructor function that creates a new instance of the contract. + [.contract-item] [[CoreProxy-implementation--]] ==== `[.contract-item-name]#++implementation++#++() → address++` [.item-kind]#external# +Returns the address of the current implementation contract. + [.contract-item] [[CoreProxy-upgradeToAndCall-address-bytes-]] ==== `[.contract-item-name]#++upgradeToAndCall++#++(address newImplementation, bytes data)++` [.item-kind]#external# +Upgrades the contract to a new implementation and forwards a function call to it. + :LogTransferHelperInputValidation1Failed: pass:normal[xref:#TransferHelper-LogTransferHelperInputValidation1Failed-bool-address-address-[`++LogTransferHelperInputValidation1Failed++`]] :LogTransferHelperInputValidation2Failed: pass:normal[xref:#TransferHelper-LogTransferHelperInputValidation2Failed-uint256-uint256-[`++LogTransferHelperInputValidation2Failed++`]] :LogTransferHelperCallFailed: pass:normal[xref:#TransferHelper-LogTransferHelperCallFailed-bool-uint256-bytes-[`++LogTransferHelperCallFailed++`]] @@ -235,6 +251,8 @@ import "@etherisc/gif-contracts/contracts/shared/TransferHelper.sol"; [[TransferHelper-unifiedTransferFrom-contract-IERC20-address-address-uint256-]] ==== `[.contract-item-name]#++unifiedTransferFrom++#++(contract IERC20 token, address from, address to, uint256 value) → bool success++` [.item-kind]#internal# +Executes a transferFrom function call on an ERC20 token contract, after performing input validation. + [.contract-item] [[TransferHelper-LogTransferHelperInputValidation1Failed-bool-address-address-]] ==== `[.contract-item-name]#++LogTransferHelperInputValidation1Failed++#++(bool tokenIsContract, address from, address to)++` [.item-kind]#event# @@ -305,15 +323,23 @@ import "@etherisc/gif-contracts/contracts/shared/WithRegistry.sol"; [[WithRegistry-constructor-address-]] ==== `[.contract-item-name]#++constructor++#++(address _registry)++` [.item-kind]#public# +Constructor function that sets the address of the registry contract. + [.contract-item] [[WithRegistry-getContractFromRegistry-bytes32-]] ==== `[.contract-item-name]#++getContractFromRegistry++#++(bytes32 _contractName) → address _addr++` [.item-kind]#public# +Returns the address of a contract registered in the registry by its name. + [.contract-item] [[WithRegistry-getContractInReleaseFromRegistry-bytes32-bytes32-]] ==== `[.contract-item-name]#++getContractInReleaseFromRegistry++#++(bytes32 _release, bytes32 _contractName) → address _addr++` [.item-kind]#internal# +Returns the address of a contract with a given name in a specific release of the registry. + [.contract-item] [[WithRegistry-getReleaseFromRegistry--]] ==== `[.contract-item-name]#++getReleaseFromRegistry++#++() → bytes32 _release++` [.item-kind]#internal# +Returns the current release identifier from the registry. + diff --git a/docs/modules/api/pages/test.adoc b/docs/modules/api/pages/test.adoc index f8f12efb..932f3cbd 100644 --- a/docs/modules/api/pages/test.adoc +++ b/docs/modules/api/pages/test.adoc @@ -172,6 +172,8 @@ import "@etherisc/gif-contracts/contracts/test/TestCoin.sol"; [[TestCoin-constructor--]] ==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# +Constructor function that initializes the ERC20 token with a given name, symbol, and initial supply. + :NAME: pass:normal[xref:#TestCoinAlternativeImplementation-NAME-string[`++NAME++`]] :SYMBOL: pass:normal[xref:#TestCoinAlternativeImplementation-SYMBOL-string[`++SYMBOL++`]] :INITIAL_SUPPLY: pass:normal[xref:#TestCoinAlternativeImplementation-INITIAL_SUPPLY-uint256[`++INITIAL_SUPPLY++`]] @@ -242,10 +244,14 @@ import "@etherisc/gif-contracts/contracts/test/TestCoinAlternativeImplementation [[TestCoinAlternativeImplementation-constructor--]] ==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# +Constructor function that creates a new ERC20 token with the given name and symbol, and mints the initial supply to the sender. + [.contract-item] [[TestCoinAlternativeImplementation-transferFrom-address-address-uint256-]] ==== `[.contract-item-name]#++transferFrom++#++(address _from, address _to, uint256 _value) → bool++` [.item-kind]#public# +Transfer tokens from one address to another. + :FAKE_STATE: pass:normal[xref:#TestCompromisedProduct-FAKE_STATE-enum-IComponent-ComponentState[`++FAKE_STATE++`]] :POLICY_FLOW: pass:normal[xref:#TestCompromisedProduct-POLICY_FLOW-bytes32[`++POLICY_FLOW++`]] :onlyPolicyHolder: pass:normal[xref:#TestCompromisedProduct-onlyPolicyHolder-bytes32-[`++onlyPolicyHolder++`]] @@ -372,118 +378,178 @@ import "@etherisc/gif-contracts/contracts/test/TestCompromisedProduct.sol"; [[TestCompromisedProduct-constructor-bytes32-address-uint256-uint256-address-]] ==== `[.contract-item-name]#++constructor++#++(bytes32 fakeProductName, address tokenAddress, uint256 fakeComponentId, uint256 fakeRiskpoolId, address registryAddress)++` [.item-kind]#public# +Constructor function to initialize the component with the given parameters. + [.contract-item] [[TestCompromisedProduct-applyForPolicy-uint256-uint256-bytes-bytes-]] ==== `[.contract-item-name]#++applyForPolicy++#++(uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# +Allows a policy holder to apply for a new policy by submitting an application with the specified premium, sum insured, metaData, and applicationData. + [.contract-item] [[TestCompromisedProduct-collectPremium-bytes32-]] ==== `[.contract-item-name]#++collectPremium++#++(bytes32 policyId)++` [.item-kind]#external# +Collects the premium for a given policy. + [.contract-item] [[TestCompromisedProduct-submitClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++submitClaim++#++(bytes32 policyId, uint256 claimAmount)++` [.item-kind]#external# +Allows a policy holder to submit a claim for the specified policy. + [.contract-item] [[TestCompromisedProduct-getToken--]] ==== `[.contract-item-name]#++getToken++#++() → address token++` [.item-kind]#external# +Returns the address of the token used by this contract. + [.contract-item] [[TestCompromisedProduct-getPolicyFlow--]] ==== `[.contract-item-name]#++getPolicyFlow++#++() → address policyFlow++` [.item-kind]#external# +Returns the address of the policy flow contract. + [.contract-item] [[TestCompromisedProduct-getRiskpoolId--]] ==== `[.contract-item-name]#++getRiskpoolId++#++() → uint256 riskpoolId++` [.item-kind]#external# +Returns the ID of the risk pool. + [.contract-item] [[TestCompromisedProduct-getApplicationDataStructure--]] ==== `[.contract-item-name]#++getApplicationDataStructure++#++() → string dataStructure++` [.item-kind]#external# +Returns the data structure of the application. + [.contract-item] [[TestCompromisedProduct-getClaimDataStructure--]] ==== `[.contract-item-name]#++getClaimDataStructure++#++() → string dataStructure++` [.item-kind]#external# +Returns the data structure of the claim data. + [.contract-item] [[TestCompromisedProduct-getPayoutDataStructure--]] ==== `[.contract-item-name]#++getPayoutDataStructure++#++() → string dataStructure++` [.item-kind]#external# +Returns the data structure of the payout information. + [.contract-item] [[TestCompromisedProduct-riskPoolCapacityCallback-uint256-]] ==== `[.contract-item-name]#++riskPoolCapacityCallback++#++(uint256 capacity)++` [.item-kind]#external# +Callback function to update the risk pool's capacity. + [.contract-item] [[TestCompromisedProduct-setId-uint256-]] ==== `[.contract-item-name]#++setId++#++(uint256 id)++` [.item-kind]#external# +Sets the ID of the contract. + [.contract-item] [[TestCompromisedProduct-getName--]] ==== `[.contract-item-name]#++getName++#++() → bytes32++` [.item-kind]#external# +Returns the name of the component. + [.contract-item] [[TestCompromisedProduct-getId--]] ==== `[.contract-item-name]#++getId++#++() → uint256++` [.item-kind]#external# +Returns the ID of the component. + [.contract-item] [[TestCompromisedProduct-getType--]] ==== `[.contract-item-name]#++getType++#++() → enum IComponent.ComponentType++` [.item-kind]#external# +Returns the ComponentType of the product. + [.contract-item] [[TestCompromisedProduct-getState--]] ==== `[.contract-item-name]#++getState++#++() → enum IComponent.ComponentState++` [.item-kind]#external# +Returns the current state of the component. + [.contract-item] [[TestCompromisedProduct-getOwner--]] ==== `[.contract-item-name]#++getOwner++#++() → address++` [.item-kind]#external# +Returns the address of the contract owner. + [.contract-item] [[TestCompromisedProduct-getRegistry--]] ==== `[.contract-item-name]#++getRegistry++#++() → contract IRegistry++` [.item-kind]#external# +Returns the current registry contract instance. + [.contract-item] [[TestCompromisedProduct-isProduct--]] ==== `[.contract-item-name]#++isProduct++#++() → bool++` [.item-kind]#public# +Checks if the contract is a product. + [.contract-item] [[TestCompromisedProduct-isOracle--]] ==== `[.contract-item-name]#++isOracle++#++() → bool++` [.item-kind]#public# +Returns a boolean value indicating whether the contract is an oracle. + [.contract-item] [[TestCompromisedProduct-isRiskpool--]] ==== `[.contract-item-name]#++isRiskpool++#++() → bool++` [.item-kind]#public# +Check if the contract is a risk pool. + [.contract-item] [[TestCompromisedProduct-proposalCallback--]] ==== `[.contract-item-name]#++proposalCallback++#++()++` [.item-kind]#external# +This function is a callback function for proposals. + +Returns: None + [.contract-item] [[TestCompromisedProduct-approvalCallback--]] ==== `[.contract-item-name]#++approvalCallback++#++()++` [.item-kind]#external# +This function is a callback function that is called after an approval has been made. + [.contract-item] [[TestCompromisedProduct-declineCallback--]] ==== `[.contract-item-name]#++declineCallback++#++()++` [.item-kind]#external# +This function is called when a user declines a transaction in the dApp. + [.contract-item] [[TestCompromisedProduct-suspendCallback--]] ==== `[.contract-item-name]#++suspendCallback++#++()++` [.item-kind]#external# +Suspends the callback function. + [.contract-item] [[TestCompromisedProduct-resumeCallback--]] ==== `[.contract-item-name]#++resumeCallback++#++()++` [.item-kind]#external# +This function is a callback function that is triggered when a paused contract is resumed. + [.contract-item] [[TestCompromisedProduct-pauseCallback--]] ==== `[.contract-item-name]#++pauseCallback++#++()++` [.item-kind]#external# +Callback function that is called when the contract is paused. This function does not take any parameters. + [.contract-item] [[TestCompromisedProduct-unpauseCallback--]] ==== `[.contract-item-name]#++unpauseCallback++#++()++` [.item-kind]#external# +This function is called by the owner of the contract to unpause the contract after it has been paused. + [.contract-item] [[TestCompromisedProduct-archiveCallback--]] ==== `[.contract-item-name]#++archiveCallback++#++()++` [.item-kind]#external# +This function is a callback function that is executed when a contract is archived. + :constructor: pass:normal[xref:#TestOracle-constructor-bytes32-address-[`++constructor++`]] :request: pass:normal[xref:#TestOracle-request-uint256-bytes-[`++request++`]] :cancel: pass:normal[xref:#TestOracle-cancel-uint256-[`++cancel++`]] @@ -607,22 +673,32 @@ import "@etherisc/gif-contracts/contracts/test/TestOracle.sol"; [[TestOracle-constructor-bytes32-address-]] ==== `[.contract-item-name]#++constructor++#++(bytes32 oracleName, address registry)++` [.item-kind]#public# +Constructor function for creating an Oracle contract. + [.contract-item] [[TestOracle-request-uint256-bytes-]] ==== `[.contract-item-name]#++request++#++(uint256 requestId, bytes input)++` [.item-kind]#external# +Requests data from the oracle contract. + [.contract-item] [[TestOracle-cancel-uint256-]] ==== `[.contract-item-name]#++cancel++#++(uint256 requestId)++` [.item-kind]#external# +Cancels a Chainlink request. + [.contract-item] [[TestOracle-respond-uint256-bool-]] ==== `[.contract-item-name]#++respond++#++(uint256 requestId, bool isLossEvent)++` [.item-kind]#public# +Responds to an oracle request with a boolean value indicating whether a loss event occurred. + [.contract-item] [[TestOracle-_oracleCalculation-uint256-]] ==== `[.contract-item-name]#++_oracleCalculation++#++(uint256 counter) → bool isLossEvent++` [.item-kind]#internal# +Performs an oracle calculation to determine if a loss event occurred. + :POLICY_FLOW: pass:normal[xref:#TestProduct-POLICY_FLOW-bytes32[`++POLICY_FLOW++`]] :ORACLE_CALLBACK_METHOD_NAME: pass:normal[xref:#TestProduct-ORACLE_CALLBACK_METHOD_NAME-string[`++ORACLE_CALLBACK_METHOD_NAME++`]] :LogTestProductFundingReceived: pass:normal[xref:#TestProduct-LogTestProductFundingReceived-address-uint256-[`++LogTestProductFundingReceived++`]] @@ -824,110 +900,166 @@ import "@etherisc/gif-contracts/contracts/test/TestProduct.sol"; [[TestProduct-constructor-bytes32-address-address-uint256-uint256-address-]] ==== `[.contract-item-name]#++constructor++#++(bytes32 productName, address tokenAddress, address capitalOwner, uint256 oracleId, uint256 riskpoolId, address registryAddress)++` [.item-kind]#public# +Constructor function for creating a new instance of the Product contract. + [.contract-item] [[TestProduct-applyForPolicy-uint256-uint256-bytes-bytes-]] ==== `[.contract-item-name]#++applyForPolicy++#++(uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# +Allows a policy holder to apply for a new insurance policy by submitting an application with the specified premium, sum insured, metadata and application data. + [.contract-item] [[TestProduct-applyForPolicy-address-payable-uint256-uint256-bytes-bytes-]] ==== `[.contract-item-name]#++applyForPolicy++#++(address payable policyHolder, uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# +Creates a new insurance application and underwrites it if possible. + [.contract-item] [[TestProduct-newAppliation-uint256-uint256-bytes-bytes-]] ==== `[.contract-item-name]#++newAppliation++#++(uint256 premium, uint256 sumInsured, bytes metaData, bytes applicationData) → bytes32 processId++` [.item-kind]#external# +Creates a new insurance application. + [.contract-item] [[TestProduct-revoke-bytes32-]] ==== `[.contract-item-name]#++revoke++#++(bytes32 processId)++` [.item-kind]#external# +Revokes a process identified by its processId. Only the policy holder can revoke a process. + [.contract-item] [[TestProduct-decline-bytes32-]] ==== `[.contract-item-name]#++decline++#++(bytes32 processId)++` [.item-kind]#external# +Declines a specific process by its ID. + [.contract-item] [[TestProduct-underwrite-bytes32-]] ==== `[.contract-item-name]#++underwrite++#++(bytes32 processId)++` [.item-kind]#external# +Underwrites a policy for a given process ID. + [.contract-item] [[TestProduct-collectPremium-bytes32-]] ==== `[.contract-item-name]#++collectPremium++#++(bytes32 policyId) → bool success, uint256 fee, uint256 netPremium++` [.item-kind]#external# +Collects the premium for a specific policy. + [.contract-item] [[TestProduct-collectPremium-bytes32-uint256-]] ==== `[.contract-item-name]#++collectPremium++#++(bytes32 policyId, uint256 amount) → bool success, uint256 fee, uint256 netPremium++` [.item-kind]#external# +Collects the premium for a specific policy. + [.contract-item] [[TestProduct-adjustPremiumSumInsured-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++adjustPremiumSumInsured++#++(bytes32 processId, uint256 expectedPremiumAmount, uint256 sumInsuredAmount)++` [.item-kind]#external# +Adjusts the premium and sum insured amounts for a given process ID. + [.contract-item] [[TestProduct-expire-bytes32-]] ==== `[.contract-item-name]#++expire++#++(bytes32 policyId)++` [.item-kind]#external# +Expire a policy by its ID. + [.contract-item] [[TestProduct-close-bytes32-]] ==== `[.contract-item-name]#++close++#++(bytes32 policyId)++` [.item-kind]#external# +Closes a policy with the given ID. + [.contract-item] [[TestProduct-submitClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++submitClaim++#++(bytes32 policyId, uint256 claimAmount) → uint256 claimId++` [.item-kind]#external# +Allows a policy holder to submit a claim for a specific policy. + [.contract-item] [[TestProduct-submitClaimNoOracle-bytes32-uint256-]] ==== `[.contract-item-name]#++submitClaimNoOracle++#++(bytes32 policyId, uint256 claimAmount) → uint256 claimId++` [.item-kind]#external# +Allows a policy holder to submit a claim without the need for an oracle. + [.contract-item] [[TestProduct-submitClaimWithDeferredResponse-bytes32-uint256-]] ==== `[.contract-item-name]#++submitClaimWithDeferredResponse++#++(bytes32 policyId, uint256 claimAmount) → uint256 claimId, uint256 requestId++` [.item-kind]#external# +Submits a claim for a specific policy with a deferred response from the oracle. +Increases the claims counter and creates a new claim application. +Then, requests a response from the oracle via an external call with encoded query data. + [.contract-item] [[TestProduct-confirmClaim-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++confirmClaim++#++(bytes32 policyId, uint256 claimId, uint256 confirmedAmount)++` [.item-kind]#external# +Confirms the amount to be paid out for a specific claim. + [.contract-item] [[TestProduct-declineClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++declineClaim++#++(bytes32 policyId, uint256 claimId)++` [.item-kind]#external# +Allows the owner of the contract to decline a claim. + [.contract-item] [[TestProduct-closeClaim-bytes32-uint256-]] ==== `[.contract-item-name]#++closeClaim++#++(bytes32 policyId, uint256 claimId)++` [.item-kind]#external# +Closes a specific claim for a given policy. + [.contract-item] [[TestProduct-createPayout-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++createPayout++#++(bytes32 policyId, uint256 claimId, uint256 payoutAmount) → uint256 payoutId++` [.item-kind]#external# +Creates a new payout for a specific policy and claim. + [.contract-item] [[TestProduct-newPayout-bytes32-uint256-uint256-]] ==== `[.contract-item-name]#++newPayout++#++(bytes32 policyId, uint256 claimId, uint256 payoutAmount) → uint256 payoutId++` [.item-kind]#external# +Creates a new payout for a claim under a policy. + [.contract-item] [[TestProduct-processPayout-bytes32-uint256-]] ==== `[.contract-item-name]#++processPayout++#++(bytes32 policyId, uint256 payoutId)++` [.item-kind]#external# +Processes a payout for a specific policy. + [.contract-item] [[TestProduct-oracleCallback-uint256-bytes32-bytes-]] ==== `[.contract-item-name]#++oracleCallback++#++(uint256 requestId, bytes32 policyId, bytes responseData)++` [.item-kind]#external# +This function is called by the oracle to provide the response data for a specified policy ID and request ID. + [.contract-item] [[TestProduct-getClaimId-bytes32-]] ==== `[.contract-item-name]#++getClaimId++#++(bytes32 policyId) → uint256++` [.item-kind]#external# +Returns the claim ID associated with a given policy ID. + [.contract-item] [[TestProduct-getPayoutId-bytes32-]] ==== `[.contract-item-name]#++getPayoutId++#++(bytes32 policyId) → uint256++` [.item-kind]#external# +Returns the payout ID associated with a given policy ID. + [.contract-item] [[TestProduct-applications--]] ==== `[.contract-item-name]#++applications++#++() → uint256++` [.item-kind]#external# +Returns the number of applications that have been submitted. + [.contract-item] [[TestProduct-policies--]] ==== `[.contract-item-name]#++policies++#++() → uint256++` [.item-kind]#external# +Returns the number of policies in the _policies array. + [.contract-item] [[TestProduct-claims--]] ==== `[.contract-item-name]#++claims++#++() → uint256++` [.item-kind]#external# +Returns the number of claims made by users. + [.contract-item] [[TestProduct-LogTestProductFundingReceived-address-uint256-]] ==== `[.contract-item-name]#++LogTestProductFundingReceived++#++(address sender, uint256 amount)++` [.item-kind]#event# @@ -963,10 +1095,14 @@ import "@etherisc/gif-contracts/contracts/test/TestRegistryCompromisedController [[TestRegistryCompromisedController-getContract-bytes32-]] ==== `[.contract-item-name]#++getContract++#++(bytes32 contractName) → address moduleAddress++` [.item-kind]#external# +Returns the address of a registered contract. + [.contract-item] [[TestRegistryCompromisedController-upgradeToV2-address-address-]] ==== `[.contract-item-name]#++upgradeToV2++#++(address compromisedPolicyModuleAddress, address originalQueryModuleAddress)++` [.item-kind]#public# +Upgrades the Policy Manager contract to version 2. + :message: pass:normal[xref:#TestRegistryControllerUpdated-message-string[`++message++`]] :upgradeV2: pass:normal[xref:#TestRegistryControllerUpdated-upgradeV2-bool[`++upgradeV2++`]] :setMessage: pass:normal[xref:#TestRegistryControllerUpdated-setMessage-string-[`++setMessage++`]] @@ -1049,14 +1185,20 @@ import "@etherisc/gif-contracts/contracts/test/TestRegistryControllerUpdated.sol [[TestRegistryControllerUpdated-setMessage-string-]] ==== `[.contract-item-name]#++setMessage++#++(string _message)++` [.item-kind]#public# +Sets the message variable to a given string. + [.contract-item] [[TestRegistryControllerUpdated-getMessage--]] ==== `[.contract-item-name]#++getMessage++#++() → string++` [.item-kind]#public# +Returns the current message stored in the contract. + [.contract-item] [[TestRegistryControllerUpdated-upgradeToV2-string-]] ==== `[.contract-item-name]#++upgradeToV2++#++(string _message)++` [.item-kind]#public# +Upgrades the contract to version 2. + :SUM_OF_SUM_INSURED_CAP: pass:normal[xref:#TestRiskpool-SUM_OF_SUM_INSURED_CAP-uint256[`++SUM_OF_SUM_INSURED_CAP++`]] :constructor: pass:normal[xref:#TestRiskpool-constructor-bytes32-uint256-address-address-address-[`++constructor++`]] :bundleMatchesApplication: pass:normal[xref:#TestRiskpool-bundleMatchesApplication-struct-IBundle-Bundle-struct-IPolicy-Application-[`++bundleMatchesApplication++`]] @@ -1219,10 +1361,14 @@ import "@etherisc/gif-contracts/contracts/test/TestRiskpool.sol"; [[TestRiskpool-constructor-bytes32-uint256-address-address-address-]] ==== `[.contract-item-name]#++constructor++#++(bytes32 name, uint256 collateralization, address erc20Token, address wallet, address registry)++` [.item-kind]#public# +Constructor function for the Riskpool contract. + [.contract-item] [[TestRiskpool-bundleMatchesApplication-struct-IBundle-Bundle-struct-IPolicy-Application-]] ==== `[.contract-item-name]#++bundleMatchesApplication++#++(struct IBundle.Bundle bundle, struct IPolicy.Application application) → bool isMatching++` [.item-kind]#public# +This function checks if a given bundle matches a given application. + :LogTransferHelperInputValidation1Failed: pass:normal[xref:#TestTransferFrom-LogTransferHelperInputValidation1Failed-bool-address-address-[`++LogTransferHelperInputValidation1Failed++`]] :LogTransferHelperInputValidation2Failed: pass:normal[xref:#TestTransferFrom-LogTransferHelperInputValidation2Failed-uint256-uint256-[`++LogTransferHelperInputValidation2Failed++`]] :LogTransferHelperCallFailed: pass:normal[xref:#TestTransferFrom-LogTransferHelperCallFailed-bool-uint256-bytes-[`++LogTransferHelperCallFailed++`]] @@ -1257,6 +1403,8 @@ import "@etherisc/gif-contracts/contracts/test/TestTransferFrom.sol"; [[TestTransferFrom-unifiedTransferFrom-contract-IERC20-address-address-uint256-]] ==== `[.contract-item-name]#++unifiedTransferFrom++#++(contract IERC20 token, address from, address to, uint256 amount) → bool++` [.item-kind]#external# +Transfers tokens from a specified address to another specified address using the TransferHelper library. + [.contract-item] [[TestTransferFrom-LogTransferHelperInputValidation1Failed-bool-address-address-]] ==== `[.contract-item-name]#++LogTransferHelperInputValidation1Failed++#++(bool tokenIsContract, address from, address to)++` [.item-kind]#event# diff --git a/docs/modules/api/pages/tokens.adoc b/docs/modules/api/pages/tokens.adoc index 60b0f226..f9a54584 100644 --- a/docs/modules/api/pages/tokens.adoc +++ b/docs/modules/api/pages/tokens.adoc @@ -155,38 +155,56 @@ import "@etherisc/gif-contracts/contracts/tokens/BundleToken.sol"; [[BundleToken-constructor--]] ==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# +Constructor function for the ERC721 token contract. It sets the name and symbol of the token and initializes the Ownable contract. + [.contract-item] [[BundleToken-setBundleModule-address-]] ==== `[.contract-item-name]#++setBundleModule++#++(address bundleModule)++` [.item-kind]#external# +Sets the bundle module address. + [.contract-item] [[BundleToken-mint-uint256-address-]] ==== `[.contract-item-name]#++mint++#++(uint256 bundleId, address to) → uint256 tokenId++` [.item-kind]#external# +Mints a new bundle token and assigns ownership to the specified address. + [.contract-item] [[BundleToken-burn-uint256-]] ==== `[.contract-item-name]#++burn++#++(uint256 tokenId)++` [.item-kind]#external# +Burns a bundle token. + [.contract-item] [[BundleToken-burned-uint256-]] ==== `[.contract-item-name]#++burned++#++(uint256 tokenId) → bool isBurned++` [.item-kind]#external# +Checks if a token has been burned. + [.contract-item] [[BundleToken-getBundleId-uint256-]] ==== `[.contract-item-name]#++getBundleId++#++(uint256 tokenId) → uint256++` [.item-kind]#external# +Returns the bundle ID associated with a given token ID. + [.contract-item] [[BundleToken-getBundleModuleAddress--]] ==== `[.contract-item-name]#++getBundleModuleAddress++#++() → address++` [.item-kind]#external# +Returns the address of the bundle module. + [.contract-item] [[BundleToken-exists-uint256-]] ==== `[.contract-item-name]#++exists++#++(uint256 tokenId) → bool++` [.item-kind]#external# +Checks if a given token ID exists. + [.contract-item] [[BundleToken-totalSupply--]] ==== `[.contract-item-name]#++totalSupply++#++() → uint256 tokenCount++` [.item-kind]#external# +Returns the total number of tokens in circulation. + :NAME: pass:normal[xref:#RiskpoolToken-NAME-string[`++NAME++`]] :SYMBOL: pass:normal[xref:#RiskpoolToken-SYMBOL-string[`++SYMBOL++`]] :constructor: pass:normal[xref:#RiskpoolToken-constructor--[`++constructor++`]] @@ -255,3 +273,5 @@ import "@etherisc/gif-contracts/contracts/tokens/RiskpoolToken.sol"; [[RiskpoolToken-constructor--]] ==== `[.contract-item-name]#++constructor++#++()++` [.item-kind]#public# +Constructor function that sets the name and symbol of the ERC20 token. + From 966efcb3368b0b459373657acddd2329ba88c6e6 Mon Sep 17 00:00:00 2001 From: lydiamussenbrock Date: Thu, 15 Jun 2023 11:25:56 +0000 Subject: [PATCH 27/29] Updated ReadMe comments --- contracts/modules/README.adoc | 61 +++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/contracts/modules/README.adoc b/contracts/modules/README.adoc index 5bc9cc2a..ee1a849b 100644 --- a/contracts/modules/README.adoc +++ b/contracts/modules/README.adoc @@ -6,20 +6,81 @@ NOTE: This document is better viewed at https://docs.etherisc.com/contracts/api/ == Contracts {{AccessController}} +The "AccessController" smart contract is a Solidity implementation that provides access control and role management functionalities. +It inherits from other contracts and implements the "IAccess" interface. +It defines three role identifiers: PRODUCT_OWNER_ROLE, ORACLE_PROVIDER_ROLE, and RISKPOOL_KEEPER_ROLE. +The contract has state variables to store role validity and a flag to indicate if the default admin role is set. +It includes functions to grant, revoke, and renounce roles, as well as add and invalidate roles. +t also has functions to check role membership and retrieve role identifiers. +The contract ensures that only instance operators can access certain functions. +Overall, it offers a flexible access control mechanism for managing roles and permissions. + {{BundleController}} +The "BundleController" smart contract is designed to manage bundles, which are collections of policies. +It imports other Solidity contracts, implements the "IBundle" interface, and extends the "CoreController" contract. +The contract includes mappings to store information about bundles, active policies, locked capital, and unburt bundles. +It has functions to create bundles, fund and defund them, lock and unlock assets, close and burn bundles, and collateralize and release policies. +The contract includes modifiers and event emitters for access control and important events. +Overall, it provides comprehensive functionality for managing bundles and their associated policies. + {{ComponentController}} +The "Component Controller" smart contract provides functionality to manage and control components within a system. +It includes mappings and sets to store information about components, such as addresses, IDs, states, and types. +The contract allows component owners to propose new components, and the contract owner can approve, decline, suspend, resume, pause, unpause, or archive components. +Functions are available to retrieve component information, such as ID, type, state, and required role. +The contract includes modifiers to restrict access to authorized callers, and it utilizes external dependencies and libraries for set operations. +Overall, the contract enables efficient management and control of components in a system. + {{LicenseController}} +The "LicenseController" smart contract serves as a controller for managing licenses in an insurance ecosystem. +It implements the ILicense interface and extends the CoreController contract. +The contract interacts with the ComponentController contract to retrieve information about products and their authorization status. +Functions are available to check the authorization status of a product, validate if a product is active, and retrieve product information. +The contract plays a crucial role in managing licenses within the insurance ecosystem. + {{PolicyController}} +The "PolicyController" smart contract implements functions for policy operations, such as creation, update, cancellation, and retrieval. +It also handles claim creation, confirmation, decline, closure, and payout creation. +The contract includes mappings to store policies, claims, payouts, and metadata associated with policy flows. +It inherits from the IPolicy interface and the CoreController contract. +The functions validate inputs, update states, and emit events to manage the lifecycle of policies, claims, and payouts. +The contract provides comprehensive functionality for managing insurance policies and associated operations. + {{PoolController}} +The "PoolController" smart contract manages riskpools and their operations, including registration, funding, defunding, collateralization, and more. +It interacts with other contracts such as ComponentController, PolicyController, and BundleController. +The contract maintains mappings to store riskpool information and handles functions for funding, defunding, underwriting, calculating collateral, processing premiums and payouts, and releasing collateral. +It ensures access control through modifiers and emits events to track the success or failure of operations. +The PoolController contract acts as a central component for coordinating riskpool-related operations within the ecosystem. + {{QueryModule}} +The "QueryModule" smart contract implements the IQuery interface and extends the CoreController contract. +It interacts with external contracts such as IComponent.sol, IOracle.sol, IQuery.sol, and IInstanceService.sol. +The contract allows the creation of oracle requests, enables oracles to respond to requests, cancels requests, and provides functions to retrieve information about requests and oracles. +It ensures access control through modifiers and emits events to track the creation, response, and cancellation of oracle requests. +The QueryModule contract acts as a module for managing oracle queries within the ecosystem. + {{RegistryController}} +The "RegistryController" smart contract implements the IRegistry interface and inherits from the CoreController contract. +It facilitates the registration, deregistration, and access of contracts within different releases. +The contract maintains mappings and sets to store contract names and addresses in various releases. +It provides functions to register and deregister contracts, retrieve contract addresses, and manage releases. +The contract ensures sender verification and emits events to track contract registration and deregistration. +The RegistryController contract serves as a centralized registry for managing contracts in different releases within the ecosystem. {{TreasuryModule}} +The "TreasuryModule" smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts. +It imports various contracts and interfaces to handle treasury operations. +The contract defines state variables, including constants, wallet addresses, fee specifications, and instances of other contracts. +It includes modifiers to enforce conditions for function execution. +The contract provides functions to set token and wallet addresses, create fee specifications, process premium payments, and manage suspension/resumption. +It also calculates fee amounts and net amounts. +The TreasuryModule contract serves as a central component for managing fees and treasury operations, interacting with other controllers and contracts within the system. From e3cbd7609eea559ec5d219cfa706d20e0be85326 Mon Sep 17 00:00:00 2001 From: Marc Doerflinger Date: Thu, 15 Jun 2023 11:43:28 +0000 Subject: [PATCH 28/29] only validate and list error codes surrounded by quotes --- .github/workflows/scripts/list_all_errorcodes.sh | 2 +- .github/workflows/scripts/validate_errorcodes.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scripts/list_all_errorcodes.sh b/.github/workflows/scripts/list_all_errorcodes.sh index 97319187..9f354ccb 100755 --- a/.github/workflows/scripts/list_all_errorcodes.sh +++ b/.github/workflows/scripts/list_all_errorcodes.sh @@ -1,4 +1,4 @@ #!/bin/bash printf "|Errorcode|File|\n|:--|:--|\n" -egrep -or "(ERROR\:[A-Z0-9_-]+\:[A-Z0-9_-]+)" contracts/* | sed -E "s/([^\:]+)\:(.+)/|\2|\1|/g" | sort +egrep -or "\"(ERROR\:[A-Z0-9_-]+\:[A-Z0-9_-]+)\"" contracts/* | sed -E "s/([^\:]+)\:\"(.+)\"/|\2|\1|/g" | sort diff --git a/.github/workflows/scripts/validate_errorcodes.sh b/.github/workflows/scripts/validate_errorcodes.sh index b0f076cc..f80e4809 100755 --- a/.github/workflows/scripts/validate_errorcodes.sh +++ b/.github/workflows/scripts/validate_errorcodes.sh @@ -1,6 +1,6 @@ #!/bin/bash -DUPES=`egrep -or "(ERROR\:[A-Z0-9_-]+)" contracts/* | sort | uniq -cd` +DUPES=`egrep -or "\"(ERROR\:[A-Z0-9_-]+)\"" contracts/* | sort | uniq -cd` if [ -z "$DUPES" ]; then echo "No duplicate error codes found" From a91d3ce60f5981a819a5e6a713d4abf12b1175a9 Mon Sep 17 00:00:00 2001 From: lydiamussenbrock Date: Thu, 15 Jun 2023 12:11:34 +0000 Subject: [PATCH 29/29] ReadMe.adoc updates --- docs/modules/api/pages/modules.adoc | 63 +++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/docs/modules/api/pages/modules.adoc b/docs/modules/api/pages/modules.adoc index 6835576b..3d8fa051 100644 --- a/docs/modules/api/pages/modules.adoc +++ b/docs/modules/api/pages/modules.adoc @@ -443,6 +443,15 @@ Returns the bytes32 identifier of the Oracle Provider role. Returns the bytes32 value of the RISKPOOL_KEEPER_ROLE. +The "AccessController" smart contract is a Solidity implementation that provides access control and role management functionalities. +It inherits from other contracts and implements the "IAccess" interface. +It defines three role identifiers: PRODUCT_OWNER_ROLE, ORACLE_PROVIDER_ROLE, and RISKPOOL_KEEPER_ROLE. +The contract has state variables to store role validity and a flag to indicate if the default admin role is set. +It includes functions to grant, revoke, and renounce roles, as well as add and invalidate roles. +t also has functions to check role membership and retrieve role identifiers. +The contract ensures that only instance operators can access certain functions. +Overall, it offers a flexible access control mechanism for managing roles and permissions. + :onlyRiskpoolService: pass:normal[xref:#BundleController-onlyRiskpoolService--[`++onlyRiskpoolService++`]] :onlyFundableBundle: pass:normal[xref:#BundleController-onlyFundableBundle-uint256-[`++onlyFundableBundle++`]] :_afterInitialize: pass:normal[xref:#BundleController-_afterInitialize--[`++_afterInitialize++`]] @@ -731,6 +740,13 @@ Sets the state and updated timestamp of a given bundle. Checks if a state transition is valid. +The "BundleController" smart contract is designed to manage bundles, which are collections of policies. +It imports other Solidity contracts, implements the "IBundle" interface, and extends the "CoreController" contract. +The contract includes mappings to store information about bundles, active policies, locked capital, and unburt bundles. +It has functions to create bundles, fund and defund them, lock and unlock assets, close and burn bundles, and collateralize and release policies. +The contract includes modifiers and event emitters for access control and important events. +Overall, it provides comprehensive functionality for managing bundles and their associated policies. + :onlyComponentOwnerService: pass:normal[xref:#ComponentController-onlyComponentOwnerService--[`++onlyComponentOwnerService++`]] :onlyInstanceOperatorService: pass:normal[xref:#ComponentController-onlyInstanceOperatorService--[`++onlyInstanceOperatorService++`]] :propose: pass:normal[xref:#ComponentController-propose-contract-IComponent-[`++propose++`]] @@ -1054,6 +1070,13 @@ Throws an error if the transition from Paused state is not to Active or Archived Throws an error if the transition from Suspended state is not to Active or Archived state. Throws an error if the initial state is not handled. +The "Component Controller" smart contract provides functionality to manage and control components within a system. +It includes mappings and sets to store information about components, such as addresses, IDs, states, and types. +The contract allows component owners to propose new components, and the contract owner can approve, decline, suspend, resume, pause, unpause, or archive components. +Functions are available to retrieve component information, such as ID, type, state, and required role. +The contract includes modifiers to restrict access to authorized callers, and it utilizes external dependencies and libraries for set operations. +Overall, the contract enables efficient management and control of components in a system. + :_afterInitialize: pass:normal[xref:#LicenseController-_afterInitialize--[`++_afterInitialize++`]] :getAuthorizationStatus: pass:normal[xref:#LicenseController-getAuthorizationStatus-address-[`++getAuthorizationStatus++`]] :_isValidCall: pass:normal[xref:#LicenseController-_isValidCall-uint256-[`++_isValidCall++`]] @@ -1140,6 +1163,12 @@ Checks if a product is currently active. Returns the product associated with the given ID. +The "LicenseController" smart contract serves as a controller for managing licenses in an insurance ecosystem. +It implements the ILicense interface and extends the CoreController contract. +The contract interacts with the ComponentController contract to retrieve information about products and their authorization status. +Functions are available to check the authorization status of a product, validate if a product is active, and retrieve product information. +The contract plays a crucial role in managing licenses within the insurance ecosystem. + :metadata: pass:normal[xref:#PolicyController-metadata-mapping-bytes32----struct-IPolicy-Metadata-[`++metadata++`]] :applications: pass:normal[xref:#PolicyController-applications-mapping-bytes32----struct-IPolicy-Application-[`++applications++`]] :policies: pass:normal[xref:#PolicyController-policies-mapping-bytes32----struct-IPolicy-Policy-[`++policies++`]] @@ -1428,6 +1457,13 @@ Retrieves a specific payout from a process. Returns the number of process IDs that have been assigned. +The "PolicyController" smart contract implements functions for policy operations, such as creation, update, cancellation, and retrieval. +It also handles claim creation, confirmation, decline, closure, and payout creation. +The contract includes mappings to store policies, claims, payouts, and metadata associated with policy flows. +It inherits from the IPolicy interface and the CoreController contract. +The functions validate inputs, update states, and emit events to manage the lifecycle of policies, claims, and payouts. +The contract provides comprehensive functionality for managing insurance policies and associated operations. + :FULL_COLLATERALIZATION_LEVEL: pass:normal[xref:#PoolController-FULL_COLLATERALIZATION_LEVEL-uint256[`++FULL_COLLATERALIZATION_LEVEL++`]] :COLLATERALIZATION_LEVEL_CAP: pass:normal[xref:#PoolController-COLLATERALIZATION_LEVEL_CAP-uint256[`++COLLATERALIZATION_LEVEL_CAP++`]] :DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES: pass:normal[xref:#PoolController-DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES-uint256[`++DEFAULT_MAX_NUMBER_OF_ACTIVE_BUNDLES++`]] @@ -1699,6 +1735,12 @@ Returns the Riskpool contract instance associated with the given policy metadata Returns the Riskpool contract instance for a given riskpoolId. +The "PoolController" smart contract manages riskpools and their operations, including registration, funding, defunding, collateralization, and more. +It interacts with other contracts such as ComponentController, PolicyController, and BundleController. +The contract maintains mappings to store riskpool information and handles functions for funding, defunding, underwriting, calculating collateral, processing premiums and payouts, and releasing collateral. +It ensures access control through modifiers and emits events to track the success or failure of operations. +The PoolController contract acts as a central component for coordinating riskpool-related operations within the ecosystem. + :onlyOracleService: pass:normal[xref:#QueryModule-onlyOracleService--[`++onlyOracleService++`]] :onlyResponsibleOracle: pass:normal[xref:#QueryModule-onlyResponsibleOracle-uint256-address-[`++onlyResponsibleOracle++`]] :_afterInitialize: pass:normal[xref:#QueryModule-_afterInitialize--[`++_afterInitialize++`]] @@ -1837,6 +1879,12 @@ Returns the number of oracle requests made. Returns the Oracle component with the specified ID. +The "QueryModule" smart contract implements the IQuery interface and extends the CoreController contract. +It interacts with external contracts such as IComponent.sol, IOracle.sol, IQuery.sol, and IInstanceService.sol. +The contract allows the creation of oracle requests, enables oracles to respond to requests, cancels requests, and provides functions to retrieve information about requests and oracles. +It ensures access control through modifiers and emits events to track the creation, response, and cancellation of oracle requests. +The QueryModule contract acts as a module for managing oracle queries within the ecosystem. + :MAX_CONTRACTS: pass:normal[xref:#RegistryController-MAX_CONTRACTS-uint256[`++MAX_CONTRACTS++`]] :release: pass:normal[xref:#RegistryController-release-bytes32[`++release++`]] :startBlock: pass:normal[xref:#RegistryController-startBlock-uint256[`++startBlock++`]] @@ -2025,6 +2073,13 @@ Registers a contract in a release. Internal function to deregister a contract in a specific release. +The "RegistryController" smart contract implements the IRegistry interface and inherits from the CoreController contract. +It facilitates the registration, deregistration, and access of contracts within different releases. +The contract maintains mappings and sets to store contract names and addresses in various releases. +It provides functions to register and deregister contracts, retrieve contract addresses, and manage releases. +The contract ensures sender verification and emits events to track contract registration and deregistration. +The RegistryController contract serves as a centralized registry for managing contracts in different releases within the ecosystem. + :FRACTION_FULL_UNIT: pass:normal[xref:#TreasuryModule-FRACTION_FULL_UNIT-uint256[`++FRACTION_FULL_UNIT++`]] :FRACTIONAL_FEE_MAX: pass:normal[xref:#TreasuryModule-FRACTIONAL_FEE_MAX-uint256[`++FRACTIONAL_FEE_MAX++`]] :LogTransferHelperInputValidation1Failed: pass:normal[xref:#TreasuryModule-LogTransferHelperInputValidation1Failed-bool-address-address-[`++LogTransferHelperInputValidation1Failed++`]] @@ -2371,3 +2426,11 @@ Returns the riskpool ID and wallet address for a given process ID. [[TreasuryModule-LogTransferHelperCallFailed-bool-uint256-bytes-]] ==== `[.contract-item-name]#++LogTransferHelperCallFailed++#++(bool callSuccess, uint256 returnDataLength, bytes returnData)++` [.item-kind]#event# +The "TreasuryModule" smart contract implements the ITreasury interface and inherits from the CoreController and Pausable contracts. +It imports various contracts and interfaces to handle treasury operations. +The contract defines state variables, including constants, wallet addresses, fee specifications, and instances of other contracts. +It includes modifiers to enforce conditions for function execution. +The contract provides functions to set token and wallet addresses, create fee specifications, process premium payments, and manage suspension/resumption. +It also calculates fee amounts and net amounts. +The TreasuryModule contract serves as a central component for managing fees and treasury operations, interacting with other controllers and contracts within the system. +